手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)_第1頁
手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)_第2頁
手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)_第3頁
手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)_第4頁
手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、大 學 生 研 究 計 劃 項 目論 文 報 告項目名稱:_手寫體數(shù)字識別系統(tǒng)的設計與實現(xiàn)負責人:_ _學院/專業(yè):_ _學號:_ _申請經(jīng)費:_ _指導教師:_ _項目起止時間:2011年6月-2012年3月摘要手寫體數(shù)字識別系統(tǒng)依托計算機應用軟件為載體,利用C+程序設計的相關知識,運用模塊設計等相關技術,最終完成手寫體設計系統(tǒng)的程序綜合設計。關鍵字:手寫體 數(shù)字處理 模式識別 程序設計一、論題概述 模式識別是六十年代初迅速發(fā)展起來的一門學科。由于它研究的是如何用機器來實現(xiàn)人(及某些動物)對事物的學習、識別和判斷能力,因而受到了很多科技領域研究人員的注意,成為人工智能研究的一個重要方面。字符

2、識別是模式識別的一個傳統(tǒng)研究領域。從50年代開始,許多的研究者就在這一研究領域開展了廣泛的探索,并為模式識別的發(fā)展產(chǎn)生了積極的影響。字符識別一般可以分為兩類:1.聯(lián)機字符識別;2.光學字符識別(Optical Chara- cter Recognition,OCR)或稱離線字符識別。在聯(lián)機字符識別中,計算機能夠通過與計算機相連的輸入設備獲得輸入字符筆劃的順序、筆劃的方向以及字符的形狀,所以相對OCR來說它更容易識別一些。但聯(lián)機字符識別有一個重要的不足就是要求輸入者必須在指定的設備上書寫,然而人們在生活中大部分的書寫情況是不滿足這一要求的,比如人們填寫各種表格資料,開具支票等。如果需要計算機去認

3、識這些己經(jīng)成為文字的東西,就需要OCR技術。比起聯(lián)機字符識別來,OCR不要求書寫者在特定輸入設備上書寫,它可以與平常一樣書寫,所以OCR的應用更為廣泛。OCR所使用的輸入設備可以是任何一種圖像采集設備,如CCD、掃描儀、數(shù)字相機等。通過使用這類采集設備,OCR系統(tǒng)將書寫者已寫好的文字作為圖像輸入到計算機中,然后由計算機去識別。由于OCR的輸入只是簡單的一副圖像,它就不能像聯(lián)機輸入那樣比較容易的從物理特性上獲得字符筆劃的順序信息,因此OCR是一個更具挑戰(zhàn)性的問題。數(shù)字識別是多年來的研究熱點,也是字符識別中的一個特別問題,它是本文研究的重點。數(shù)字識別在特定的環(huán)境下應用特別廣泛,如郵政編碼自動識別系

4、統(tǒng),稅表和銀行支票自動處理系統(tǒng)等。一般情況下,當涉及到數(shù)字識別時,人們往往要求識別器有很高的識別可靠性,特別是有關金額的數(shù)字識別時,如支票中填寫的金額部分,更是如此。因此針對這類問題的處理系統(tǒng)設計的關鍵環(huán)節(jié)之一就是設計出高可靠性和高識別率的數(shù)字識別方法。然而可以說還沒有哪個數(shù)字識別器達到完美的識別效果。在過去的數(shù)十年中,研究者們提出了許許多多的識別方法。按使用的特征不同,這些方法可以分為兩類:基于結構特征的方法和基于統(tǒng)計特征的方法。結構特征通常包括圓、端點、交叉點、筆劃、輪廓等,統(tǒng)計特征通常包括點密度的測量、矩、特征區(qū)域等,一般來說,兩類特征各有優(yōu)勢。例如,使用統(tǒng)計特征的分類器易于訓練,而且對

5、于使用統(tǒng)計特征的分類器,在給定的訓練集上能夠得到相對較高的識別率,而結構特征的主要優(yōu)點之一是能描述字符的結構,在識別過程中能有效地結合幾何和結構的知識,因此能夠得到可靠性較高的識別結果。二、模式識別與BP神經(jīng)網(wǎng)絡在觀察各種事物或接受各種客觀現(xiàn)象時,人們總是不斷地進行模式識別。各種具有相似的特征又不完全相同的事物和現(xiàn)象組成不同的類別。在同一類別中,事物和現(xiàn)象不盡相同,但它們總是表現(xiàn)出某些方面的相近之處。例如,每個人寫出來的數(shù)字“8”可能千差萬別,但它們的共同之處在于,它們都屬于數(shù)字,“8”這個范疇。也就是說,這些千差萬別的數(shù)字“8”的共性是它們具有相同的屬性特征。人的思維可以對初次見到的事物進行

6、分類。比如,即使人們初到一個城市,也可以輕易地辨認出“街道”、“房屋”、“汽車”這樣的事物。同樣,看到另外一種寫法的“8”,人們仍然可以清楚地知道它的含義。正是人腦的這種推廣能力,使得人們利用見到過的有限事物和現(xiàn)象,形成各種事物類別的概念。這些有限的、個別的事物和現(xiàn)象就可以稱為模式,而整個類別的現(xiàn)象和事物則可以稱為模式類,或者簡稱為類。人們根據(jù)所見模式的特性,將其劃歸為某一類的過程,實際上就是模式識別的過程。模式識別這個詞既可以是指人對事物的,一個分析、描述、判斷和識別的過程,也可以是指利用計算機對某些物理對象進行分類的這門學科。模式和集合的概念是分不開的,模式可以看作是集合論中的元素,而類則

7、可以看作是子集。神經(jīng)網(wǎng)絡的概念、原理和設計是受生物、特別是人腦神經(jīng)系統(tǒng)的啟發(fā)提出的. 神經(jīng)網(wǎng)絡由大量簡單的處理單元來模擬真實人腦神經(jīng)網(wǎng)絡的機構和功能以及若干基本特性,是一個高度復雜的非線性自適應動態(tài)處理系統(tǒng).BP網(wǎng)絡是1986年由Rinehart和McCelland為首的科學家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡模型之一. BP網(wǎng)絡能學習和存貯大量的輸入- 輸出模式映射關系,而無需事前揭示描述這種映射關系的數(shù)學方程. 它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調整網(wǎng)絡的權值和閾值,使網(wǎng)絡的誤差平方和最小. BP神經(jīng)網(wǎng)絡模型拓撲結構包括輸入( in

8、put) 、隱層( hide layer)和輸出層(output layer) ,如圖1所示:三、基于BP神經(jīng)網(wǎng)絡的手寫數(shù)字識別(一)輸入向量與目標向量首先對手寫數(shù)字圖像進行預處理,包括二值化、去噪、傾斜校正、歸一化和特征提取,生成BP神經(jīng)網(wǎng)絡的輸入向量Alphabet和目標向量Tar2get. 其中Alphabet選取40 ×10的矩陣,第1列到第10列代表09的數(shù)字. Target為10 ×10的單位矩陣,每個數(shù)字在其所排順序位置輸出1,其他位置輸出0.(二)BP神經(jīng)網(wǎng)絡的構建BP算法由數(shù)據(jù)流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構成. 正向傳播時,傳播方向

9、為輸入層隱層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元. 若在輸出層得不到期望的輸出,則轉向誤差信號的反向傳播流程. 通過這兩個過程的交替進行,在權向量空間執(zhí)行誤差函數(shù)梯度下降策略,動態(tài)迭代搜索一組權向量,使網(wǎng)絡誤差函數(shù)達到最小值,從而完成信息提取和記憶過程.首先考慮正向傳播,設輸入層有n個節(jié)點,隱層有p個節(jié)點,輸出層有q個節(jié)點. 輸入層與隱層之間的權值為vk i, 隱層與輸出層之間的權值為w jk. 隱層的傳遞函數(shù)為f1 ( x) ,輸出層的傳遞函數(shù)為f2 ( x) ,則隱層節(jié)點的輸出為輸出層節(jié)點的輸出為通過式(1) 和(2) 可得BP神經(jīng)網(wǎng)絡完成n維到q維的映射. 其次考慮反向傳播. 在反

10、向傳播中,需要對不理想的權值進行調整, B P神經(jīng)網(wǎng)絡的核心要務即在于調權. 定義誤差函數(shù), 設輸入P個學習樣本,用x1 , x2 , , xp 來表示. 第p個樣本輸入網(wǎng)絡得到輸出ypj ( j = 1, 2, , q) ,其誤差為式中為期望輸出. P個樣本的全局誤差為將式(3) 代入得輸出層權值的變化采用累計誤差BP算法調整wjk 使全局誤差E變小,即式(5) 中為學習率. 現(xiàn)定義誤差信號為將式(3) 代入可得第一項為第二項為輸出層傳遞函數(shù)f2 ( x) 的偏微分將式(7) 和(8) 代入可得誤差信號為則輸出層各神經(jīng)元權值wjk 調整公式將式(9)代入可定義為在得到輸出層權值調整公式后,

11、需要定義隱層權值vk i 調整公式根據(jù)輸出層各神經(jīng)元權值wjk 調整公式推導過程,可得vk i 為四、數(shù)字識別系統(tǒng)的設計與實現(xiàn)(一)設計基本原理程序設計過程,將整個系統(tǒng)問題分割成若干個子問題來做,主要包括圖像數(shù)據(jù)輸入模塊GetDIB()、二值化模塊Threshold()、平滑濾波模塊Smooth()、分割模塊divide()、字符切分模塊CharSegment()、字符識別模塊CharRecognition()。首先分別對每個模塊進行單元測試分析和模塊測試,然后再組合成系統(tǒng),進行系統(tǒng)測試。圖 4-1 系統(tǒng)邏輯模型流程圖此圖為系統(tǒng)邏輯模型流程圖,其中細箭頭代表程序的進程,整個程序就是按上圖所示流

12、程編寫的。(一)數(shù)字識別中的圖像預處理神經(jīng)網(wǎng)絡為數(shù)字識別提供一個強有力的手段。目前,在神經(jīng)網(wǎng)絡模式識別中根據(jù)對輸入樣本的表達方式的選擇有下面兩大類:一類是直接將數(shù)字圖像經(jīng)數(shù)值化處理之后得到的像素點原始樣本作為神經(jīng)網(wǎng)絡的輸入;另一類則是對這種原始像素點構成的原始輸入樣本再作進一步的預處理或變換。雖然,在某些情況下,人們采用第一類樣本表達獲得了較好的識別結果,但這種輸入方式,通常使得網(wǎng)絡分類器結構的復雜程度大大增加,所以,對原始樣本進行預處理,已成為神經(jīng)網(wǎng)絡模式識別成功的一個很重要的方面。對于數(shù)字的預處理,人們己作了許多工作,但歸根結底有下面幾步:首先是將數(shù)字轉化為n*n像素點矩陣形式,再經(jīng)二值化

13、處理,可以得到原始的輸入表達方式。接下來,對原始樣本表達進行一些常規(guī)變換,包括平滑、銳化、規(guī)格化和細化。而本文是通過大量的樣本訓練網(wǎng)絡,以達到預期的識別率。1.數(shù)值化數(shù)字識別時,首先將印在紙上的數(shù)字經(jīng)過光電掃描產(chǎn)生模擬信號,再通過模數(shù)轉換變成表示灰度值的數(shù)字信號輸入計算機。紙張薄厚、潔白度、光潔度、書寫力度和筆劃質量都要造成字形的變化,產(chǎn)生污點、飛白、斷筆、交連等干擾。因此,一般由掃描得到的數(shù)值化的字符還需要多種進一步的處理。2.二值化二值化處理是將數(shù)字圖像轉化為由0和1表示的值像素矩陣形式,最簡單也是最原始的作法是將整個數(shù)字所在區(qū)域用n*n網(wǎng)格劃分,然后將數(shù)字筆劃通過的網(wǎng)格內填1,不通過的網(wǎng)

14、格內填0,這樣就將整個數(shù)字變?yōu)橐粋€由二值構成的矩陣。而在采用光電掃描儀對數(shù)字進行掃描輸入時,通常是將數(shù)字轉換為帶灰度值的數(shù)字信號輸入計算機。因而,二值化的工作不再是簡單的筆劃通過與否。3. 平滑實際獲得的圖像在形成、傳輸、接受和處理的過程中,不可避免地存在著外部干擾和內部干擾,如光點轉換過程中敏感元件靈敏度的不均勻性,數(shù)字化過程的量化噪聲,傳輸過程中的誤差以及人為因素等,均會使圖像質量變差,使圖像模糊。因此,消除噪聲,恢復原始圖像是圖像處理中的一個重要內容。圖像平滑的目的有兩個:改善圖像的質量和抽出對象的特征。平滑的辦法有中值濾波,均值濾波等很多方法,本設計選擇的平滑技術是中值濾波法。4. 銳

15、化圖像的銳化處理主要用于增強圖像中的輪廓邊緣,細化以及灰度跳變部分,形成完整的物體邊界,達到將物體從圖像中分離出來或將表示同一物體表面的區(qū)域檢測出來的目的。它是早期視覺理論和算法中的基本問題,也是中期和后期視覺成敗的重要因素之一。與圖像的平滑處理一樣,圖像的銳化也有很多處理方法,如針對平均或積分運算使圖像模糊,可逆其道而采取微分運算,使用高通濾波器優(yōu)化高頻分量,抑制低頻分量,提高圖像邊界清晰度等。在設計中選擇使用了梯度銳化法.梯度幅度比例于相鄰像素的灰度級差值。在灰度陡變區(qū)域,梯度值大;在灰度相似區(qū)域,梯度值小;在灰度級為常數(shù)的區(qū)域,梯度為0。熟悉梯度的這些性質,根據(jù)不同的目的選擇不同的算法,

16、就能獲得滿意的銳化效果。5. 字符切分數(shù)字識別常用于郵政編碼的自動識別和支票的檢驗等。在這些應用中,給出的數(shù)字往往是互相牽連,并且常帶有覆蓋相交叉,所以為了獲得可以進行識別的輸入樣本表達,必須進行數(shù)字之間的分離,消除不必要的記號和符號。經(jīng)過文字切分得到的一個個獨立的樣本,可以用于進一步的處理。通??梢砸罁?jù)兩種原則進行分割。一是依據(jù)各個象素點的灰度不連續(xù)性進行分割;一是依據(jù)同一區(qū)域具有相似的灰度(或組織特性)這一特征,尋求不同區(qū)域之邊界。前者稱為基于點相關的分割技術,后者稱為基于區(qū)域相關的分割技術。本設計中選擇使用基于灰度閾值的全局閾值化方法.這是一種最常用、同時也是最簡單的分割方法,它特別適用

17、于對象和背景占據(jù)不同灰度級范圍這類圖像。此時,我們只要選取一個適當?shù)幕叶燃夐撝?,然后將每個象素灰度和它進行比較。超過閾值的重新分配以最大灰度(例如255),低于閾值的分配以最小灰度(例如0),那么,我們就可以組成一個新的二值圖像,并成功地把對象從背景中顯露出來。在分割之前進行背景平滑和噪聲消除,常常能改善分割的性能。6. 規(guī)格化由于樣本數(shù)字大小不一,為了便于提取數(shù)字特征,需要對樣本進行尺寸大小規(guī)一化,或者說是將數(shù)字的長度和寬度都調整到充滿整個n*n的網(wǎng)格之中。7. 細化在傳統(tǒng)的模式識別中,對于數(shù)字的特征提取往往是從字形結構的提取入手。因而人們認為在二值化的字符圖像中,對識別有價值的字符特征主要

18、集中在字符的輪廓或者骨架上。基于這種認識,在經(jīng)過以上幾個步驟的處理,得到干凈、平滑、規(guī)范的樣本集合之后,往往要進行細化。即將字符中的粗細不等的筆劃變換成只有一層像素點構成的統(tǒng)一的筆劃。細化的基本原理都是從字的邊界開始逐層移去黑點,直到尋找到一個集合,此集合與其邊界相重合,這種方法被稱為脫殼算法。關于細化及快速細化的算法有許多,比如快速細化算法QA,Rutorit算法(簡稱RA),Hildith算法(簡稱HA)等。經(jīng)過上面幾個步驟的預處理變換,則可以獲得一種簡單像素點輸入樣本表達。對傳統(tǒng)的識別系統(tǒng),這種樣本不能直接進行識別,以上的步驟只是為特征提取選擇打下基礎。而對于神經(jīng)網(wǎng)絡識別系統(tǒng),這種簡單樣

19、本表達可以直接輸入進行模式識別。但是,這種簡單的原始二值表達式在代表數(shù)字時有下面幾點不足:1、樣本維數(shù)很大,而中間許多特征不一定有用;2、沒有將那些真正反映數(shù)字特點的特征突出出來;3、對于不同數(shù)字的外圍或邊緣及主干特征并沒有考慮進去,這樣對一些有相似部分的數(shù)字容易出現(xiàn)誤識。由于上面三方面的原因,在神經(jīng)網(wǎng)絡模式識別中,我們要用帶污染的輸入量去訓練神經(jīng)網(wǎng)絡,使其具有一定的抗干擾能力,這樣對所要識別的數(shù)字,能達到更好的識別率。(二)BP網(wǎng)絡在數(shù)字識別中的應用設計初始化給定輸入向量和目標輸出求隱層、輸出層各單元輸出求實際輸出與目標值的偏差ee滿足要求?計算隱層誤差單元求梯度誤差權值調整全部e滿足?結束

20、BP算法的流程圖如下圖所示。(三)程序設計編寫以VC+為手段,在BP神經(jīng)網(wǎng)絡的基礎上進行編程以實現(xiàn)手寫數(shù)字的識別,以下是部分實驗代碼:/patternView.h:interface of the CPatternView class/#if !defined(AFX_PATTERNVIEW_H_696AB6FA_20EF_46BB_B9DE_8654C84DC5DE_INCLUDED_)#define AFX_PATTERNVIEW_H_696AB6FA_20EF_46BB_B9DE_8654C84DC5DE_INCLUDED_#if _MSC_VER>1000#pragma once

21、#endif /_MSC_VER>1000typedef struct tezhengsigned char value; /數(shù)字值signed char VHDerection15; /水平垂直特征/right-1 down-2 left-3 up-4signed char lenth1; /第一個筆畫長度1-4>4signed char lenth; /最后一個方向的長度1-4(1) >4(2)signed char decon; /有無斷點 等于1有斷點signed char lenfirst;signed char lenend;TEZHENG;class CPatt

22、ernView:public CViewprotected:/create from serialization onlyCPatternView();DECLARE_DYNCREATE(CPatternView)/自己定義的變量public:unsigned char bitgraph1616; /為了以后對擴展時對掃描圖像處理方便int mouseDown;CPoint mypoint100,oldpoint; /模擬手寫板輸入int mytime; /手寫板輸入的時間序列int curvalue; /當前輸入的數(shù)字TEZHENG *mytezheng;CFile cf; /用于保存特征的

23、文件/Attributespublic:CPatternDoc*GetDocument();/Operationspublic:void GetTeZheng(void);void OnStudy(void);void OnRecognize(void);void OnClear(void);void OnMyHelp(void);/Overrides/ClassWizard generated virtual function overrides/AFX_VIRTUAL(CPatternView)public:virtual void OnDraw(CDC* pDC); /overridde

24、n to draw this viewvirtual BOOL PreCreateWindow(CREATESTiRUCT& cs);protected:virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC,CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC,CPrintInfo* pInfo);/AFX_VIRTUAL/Implementationpublic:virtual CPaatternView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論