版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中南大學(xué) 本科生畢業(yè)論文〔設(shè)計(jì)〕題目基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄摘要ⅠABSTRACTⅡ第一章緒論11.1手寫體數(shù)字識別研究的開展及研究現(xiàn)狀11.2神經(jīng)網(wǎng)絡(luò)在手寫體數(shù)字識別中的應(yīng)用21.3論文結(jié)構(gòu)簡介3第二章手寫體數(shù)字識別42.1手寫體數(shù)字識別的一般方法及難點(diǎn)42.2圖像預(yù)處理概述52.3圖像預(yù)處理的處理步驟52.3.1圖像的平滑去噪52.3.2二值話處理62.3.3歸一化72.3.4細(xì)化82.4小結(jié)9第三章特征提取103.1特征提取的概述103.2統(tǒng)計(jì)特征103.3結(jié)構(gòu)特征113.3.1結(jié)構(gòu)特征提取113.3.2筆劃特征的提取113.3.3數(shù)字的特征向量說明123.3知識庫的建立12第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用144.1神經(jīng)網(wǎng)絡(luò)簡介及其工作原理14神經(jīng)網(wǎng)絡(luò)概述[14]14神經(jīng)網(wǎng)絡(luò)的工作原理144.2神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練[15]154.3BP神經(jīng)網(wǎng)絡(luò)164.3.1BP算法164.3.2BP網(wǎng)絡(luò)的一般學(xué)習(xí)算法164.3.3BP網(wǎng)絡(luò)的設(shè)計(jì)184.4BP學(xué)習(xí)算法的局限性與對策204.5對BP算法的改良21第五章系統(tǒng)的實(shí)現(xiàn)與結(jié)果分析235.1軟件開發(fā)平臺235.1.1MATLAB簡介235.1.2MATLAB的特點(diǎn)235.1.3使用MATLAB的優(yōu)勢235.2系統(tǒng)設(shè)計(jì)思路245.3系統(tǒng)流程圖245.4MATLAB程序設(shè)計(jì)245.5實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析26結(jié)論27參考文獻(xiàn)28致謝30附錄31摘要手寫體數(shù)字識別是模式識別中一個非常重要和活潑的研究領(lǐng)域,數(shù)字識別也不是一項(xiàng)孤立的技術(shù),它所涉及的問題是模式識別的其他領(lǐng)域都無法回避的;應(yīng)用上,作為一種信息處理手段,字符識別有廣闊的應(yīng)用背景和巨大的市場需求。因此,對數(shù)字識別的研究具有理論和應(yīng)用的雙重意義。人工神經(jīng)網(wǎng)絡(luò)識別方法是近年該研究領(lǐng)域的一種新方法,該方法具有一些傳統(tǒng)技術(shù)所沒有的優(yōu)點(diǎn):良好的容錯能力、分類能力強(qiáng)、并行處理和自學(xué)習(xí)能力,并且是離線訓(xùn)練和在線識別的。這些優(yōu)點(diǎn)使它在手寫體字符的識別中能對大量數(shù)據(jù)進(jìn)行快速實(shí)時處理,并到達(dá)良好的識別效果。由于手寫體數(shù)字識別難于建立精確的數(shù)學(xué)模型,所以本文采用BP神經(jīng)網(wǎng)絡(luò)對這一問題進(jìn)行處理。神經(jīng)網(wǎng)絡(luò)模式識別的一個關(guān)鍵步驟是預(yù)處理和特征提取,對于手寫體數(shù)字識別,本文采用了一種基于結(jié)構(gòu)特征和統(tǒng)計(jì)特征的提取方法,并用程序?qū)崿F(xiàn)了這一特征提取過程。通過測試,本識別系統(tǒng)對于較標(biāo)準(zhǔn)的手寫體數(shù)字的識別到達(dá)了很好的識別效果。關(guān)鍵詞:手寫體數(shù)字識別,特征提取,人工神經(jīng)網(wǎng)絡(luò),MATLABABSTRACTHandwrittencharacterrecognitionisaveryimportantandactiveresearchinpatternrecognition.Theoretically,itisnotanisolatedtechnique.Itconcernswiththeproblemthatalltheotherareasofpatternrecognitionmustconfronted;practically,beingakindofinformationprocessingmeasured,characterrecognitionhasaverybroadapplicationbackgroundandvastneedofmarket.Thus,itisofboththeoreticalandpracticalsignificance.Artificialneuralnetworkrecognitionmethodisanewmethodoftheresearchfieldinrecentyears,andthismethodhassomemeritthattraditionaltechniquedonothave;goodtoleranceforerror,strongsortingability,strongparallelhandlingabilityandstrongself-learningabilityaswellasitsoff-linetrainingandon-linerecognizing.Allthesemeritscontributeitsperfectperformanceinhandlingvastdatasetandhandlingintimelymanner.It’sdifficulttomakeaccuratemathematicsmodelforhandwrittennumeralrecognition,soBPneuralnetworksisusedhere.Thekeystepsofneuralnetworkspatternrecognitionarepreprocessingandfeaturesubsetselection.Inthispaper,algorithmoffeaturesubsetselectionbasingonstructuralcharacteristicsandstatisticalcharacteristicshasbeenadoptedinhandwrittennumeralrecognition,andtheprocessoffeaturesubsetselectionhadbeenrealizedinprogram.Recognitionsysteminthispaperhasachievedagoodrateofrecognitioninrandomhandwrittennumeralbytest.Keyword:handwrittennumeralrecognition,featureextraction,artificialneuralnetwork,MATLAB第一章緒論1.1手寫體數(shù)字識別研究的開展及研究現(xiàn)狀模式識別[2]是六十年代初迅速開展起來的一門學(xué)科。由于它研究的是如何用機(jī)器來實(shí)現(xiàn)人(及某些動物)對事物的學(xué)習(xí)、識別和判斷能力,因而受到了很多科技領(lǐng)域研究人員的注意,成為人工智能研究的一個重要方面。一個模式識別系統(tǒng)的根本職能是對系統(tǒng)所要處理的模式歸屬于哪一類做出判別,從該系統(tǒng)的模式輸入到系統(tǒng)做出判別之間,主要包括信息檢測、預(yù)處理、特征提取和分類幾大環(huán)節(jié)。字符識別是模式識別領(lǐng)域中的一個非?;顫姷姆种?。一方面是由于問題本身的難度使之成為一個極具挑戰(zhàn)性的課題;另一方面,是因?yàn)樽址R別不是一項(xiàng)孤立的應(yīng)用技術(shù),其中包含的模式識別領(lǐng)域中其他分支都會遇到的一些根本和共性的問題。從50年代開始,許多的研究者就在這一研究領(lǐng)域開展了廣泛的探索并為模式識別的開展產(chǎn)生了積極的影響。字符識別,從采用的輸入設(shè)備來分,可分為脫機(jī)識別〔又稱為光學(xué)字符識別OpticalCharacterRecognition,OCR〕和聯(lián)機(jī)識別,脫機(jī)字符又分為印刷體和手寫字符識別,從對書寫者要求來分,手寫字符又分為限制性和非限制性的手寫字符識別。在聯(lián)機(jī)手寫字符識別中,計(jì)算機(jī)能夠通過與計(jì)算機(jī)相連的手寫輸入設(shè)備獲得輸入字符筆劃的順序、筆劃的方向以及字符的形狀,所以相對OCR來說它更容易識別一些。但聯(lián)機(jī)字符識別有一個重要的缺乏就是要求輸入者必須在指定的設(shè)備上書寫,然而人們在生活中大局部的書寫情況是不滿足這一要求的,比方人們填寫各種表格資料,開具支票等。如果需要計(jì)算機(jī)去認(rèn)識這些已經(jīng)成為文字的東西,就需要OCR技術(shù)。比起聯(lián)機(jī)字符識別來,OCR不要求書寫者在特定輸入設(shè)備上書寫,它可以與平常一樣書寫,所以O(shè)CR的應(yīng)用更為廣泛。OCR所使用的輸入設(shè)備可以是任何一種圖像采集設(shè)備,如掃描儀、數(shù)字相機(jī)等。通過使用這類采集設(shè)備,OCR系統(tǒng)將書寫者已經(jīng)寫好的文字作為圖像輸入到計(jì)算機(jī)中,然后由計(jì)算機(jī)去識別。由于OCR的輸入只是簡單的一副圖像,它就不能像聯(lián)機(jī)輸入那樣比擬容易的從物理上獲得字符筆劃的順序信息,因此OCR是一個更具挑戰(zhàn)性的問題。脫機(jī)字符識別〔OCR〕分為印刷體OCR和手寫OCR。印刷體字符比手寫體字符少了隨機(jī)性,它的識別相對容易些,難點(diǎn)已經(jīng)不在識別環(huán)節(jié),而在于字符的分割上。印刷體識別的錯誤絕大多數(shù)都是錯誤的分割引起的[3]。對于手寫體OCR,無論是聯(lián)機(jī)還是脫機(jī)識別,手寫體的識別都要經(jīng)歷由限制性手寫體識別到非限制性手寫體識別兩個階段。本文將以手寫體數(shù)字為代表,討論非限制性手寫體字符的識別。脫機(jī)字符識別的研究最早始于上個世紀(jì)六十年代,是為了應(yīng)付漢英翻譯的需要。八十年代后的研究重心轉(zhuǎn)移到脫機(jī)手寫字符的識別上。對于小類別數(shù)的字符集如數(shù)字、字母的識別,已經(jīng)可以做到對書寫不加任何的限制。非限制性手寫OCR的研究始終以阿拉伯?dāng)?shù)字為主導(dǎo)。這事因?yàn)?,第一,十個阿拉伯?dāng)?shù)字是全世界的一套通用字符。第二,在數(shù)字的許多應(yīng)用場合,如報(bào)表、賬單、支票等,手寫體還難以被印刷體所替代,而且對識別的可靠性要求極高。三,由于類別數(shù)少,所以模式識別中的許多方法研究均可以以數(shù)字識別作為實(shí)驗(yàn)背景。對脫機(jī)手寫體字符的研究,人們由簡單集成筆畫密度、筆畫方向和背景特征方法過渡到特征匹配方法,進(jìn)而過渡到結(jié)合神經(jīng)網(wǎng)絡(luò)方法,隨著對識別可靠性要求的提高,九十年代以后,多分類器集成方法成為了一個研究重點(diǎn)。1.2神經(jīng)網(wǎng)絡(luò)在手寫體數(shù)字識別中的應(yīng)用目前,隨著計(jì)算機(jī)的迅速開展,性能價格比的不斷提高,模式識別技術(shù)已經(jīng)從理論探討為主開展到大量的實(shí)際應(yīng)用,人們將更多的注意力開始轉(zhuǎn)向那些用于語音、圖像、機(jī)器人以及人工智能等的模式識別實(shí)際問題。解決這些問題的關(guān)鍵是需要進(jìn)行復(fù)雜而龐大的實(shí)時數(shù)據(jù)處理,而現(xiàn)有計(jì)算機(jī)的存貯容量及計(jì)算復(fù)雜性的局限,使得真正實(shí)時化的應(yīng)用受阻。這種面向?qū)崟r應(yīng)用的模式識別問題促使人們開始將并行處理的神經(jīng)網(wǎng)絡(luò)[4]應(yīng)用到模式識別,而神經(jīng)網(wǎng)絡(luò)模式識別技術(shù)又將模式識別實(shí)時應(yīng)用推進(jìn)了一大步,手寫體數(shù)字識別就是這種應(yīng)用的一個很重要的領(lǐng)域。手寫體數(shù)字識別是一項(xiàng)極具研究價值的課題,隨著神經(jīng)網(wǎng)絡(luò)[1]和模糊邏輯技術(shù)的開展,人們對這一問題的研究又采用了許多新的方法和手段,也使得這一古老的課題煥發(fā)出新的生命力[5]。目前國際上有相當(dāng)多的學(xué)者在研究這一課題,它包括了模式識別領(lǐng)域中所有典型的問題:數(shù)據(jù)的采集、處理及選擇、輸入樣本表達(dá)的選擇、模式識別分類器的選擇以及用樣本集對識別器的有指導(dǎo)的訓(xùn)練。人工神經(jīng)網(wǎng)絡(luò)為手寫體數(shù)字識別提供了新的手段。正是神經(jīng)網(wǎng)絡(luò)所具有的這種自組織自學(xué)習(xí)能力、推廣能力、非線性和運(yùn)算高度并行的能力使得模式識別成為目前神經(jīng)網(wǎng)絡(luò)最為成功的應(yīng)用領(lǐng)域。二十多年來,人們在數(shù)字識別領(lǐng)域做了大量的研究工作,所提出的各種方法在印刷體和手寫印刷體數(shù)字識別方面已經(jīng)取得了較好的成績,識別率穩(wěn)定在96%左右。但是自由手寫體數(shù)字的識別工作目前并不成熟,仍舊是文字識別中最有挑戰(zhàn)性的課題之一。字符識別長期以來都是采用傳統(tǒng)的識別方法,對印刷體字符的識別率一般只是穩(wěn)定在96%左右,不能進(jìn)一步提高;而對手寫體字符的識別,其研究還處于探索階段,其識別率還相當(dāng)?shù)?,因此,為了提高識別率,就必須尋求新的方法和途徑。進(jìn)入九十年代以來,人工神經(jīng)網(wǎng)絡(luò)〔ANN〕技術(shù)開展十分迅速,它具有模擬人類局部形象思維的能力,是一種模仿人腦學(xué)習(xí)、記憶、推理等認(rèn)知功能的新方法。特別是它的信息并行分布式處理能力和自學(xué)習(xí)功能等顯著優(yōu)點(diǎn),更是激起了人們對它的極大的興趣。人工神經(jīng)網(wǎng)絡(luò)是由一些類似人腦神經(jīng)元的簡單處理單元相互連接而成的復(fù)雜網(wǎng)絡(luò)。已涌現(xiàn)出許多不同類型的ANN及相應(yīng)的學(xué)習(xí)算法,其中BP〔或EBP-ErrorBackPropagation〕網(wǎng)絡(luò)及學(xué)習(xí)算法得到了廣泛關(guān)注和研究,并在數(shù)字識別方面取得了許多有意義的應(yīng)用成果。1.3論文結(jié)構(gòu)簡介本畢業(yè)設(shè)計(jì)主要解決以圖像形式存在的手寫體數(shù)字識別的問題。整體分為三個局部,第一局部是圖像預(yù)處理,第二局部是對手寫體數(shù)字的結(jié)構(gòu)特征的提取,第三局部是設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)并對前面得到的樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)和訓(xùn)練。本文通過圖像預(yù)處理和數(shù)字特征提取以后基于神經(jīng)網(wǎng)絡(luò)的判別方法,然后結(jié)合使用了MATLAB工具箱中提供的人工神經(jīng)網(wǎng)絡(luò)函數(shù)設(shè)計(jì)了一種手寫數(shù)字識別的新方法。實(shí)驗(yàn)說明,該方法可以獲得較好的識別率。第二章手寫體數(shù)字識別2.1手寫體數(shù)字識別的一般方法及難點(diǎn)字符識別問題的研究已有幾十年的歷史了,但時至今日,字符識別的研究成果遠(yuǎn)未到達(dá)人們所期望的,這其中有理論研究和技術(shù)實(shí)現(xiàn)等多方面因素.在理論方面,我們對人類的視覺認(rèn)知機(jī)理的研究還只是初步的,遠(yuǎn)未到達(dá)深入和透徹的水平。在技術(shù)方面,我們使用的計(jì)算機(jī)的運(yùn)算水平和存儲能力,比起人腦的信息存儲和處理能力有很大差距.因此,目前的文字識別只能建立在現(xiàn)有的理論根底上,使用現(xiàn)有的技術(shù)來研究和解決問題。手寫體數(shù)字識別是字符識別的一個分支,問題雖然簡單,但卻有較大的實(shí)用價值。數(shù)字的類別雖然只有十種,筆劃又簡單,其識別問題外表上是一個較簡單的分類問題。但實(shí)際上,雖然各種新的識別算法不斷的推出。其識別率和誤識率仍距實(shí)用有相當(dāng)距離。手寫阿拉伯?dāng)?shù)字具有變形多差異大的特點(diǎn),字形與書寫人的職業(yè)、文化程度、書寫習(xí)慣以及所使用筆墨紙張所處環(huán)境等都有關(guān),所以手寫體數(shù)字變形多、規(guī)律復(fù)雜。具體地說有兩個:一是0~9十個數(shù)字中,其中的一些數(shù)字字形相差不大,使得準(zhǔn)確區(qū)分某些數(shù)字相當(dāng)困難;二是數(shù)字雖然只有十種,但同一數(shù)字寫法千差萬別。不同的人寫出的同一個數(shù)字都有差異,即使同一個人在不同的時候也會有不同的寫法。筆劃的書寫順序經(jīng)常發(fā)生變化,因此極大地增加了匹配的難度。一般人寫字時都不會一筆一劃的書寫,為了節(jié)省時間,連筆字是自然而然的事情,對于結(jié)構(gòu)識別而言,連筆一方面使筆劃種類大大增加,甚至到達(dá)難以歸納的程度;另一方面,連筆又使得筆段抽取難度大增,因?yàn)檫B筆會增加一些冗余筆段,連筆造成的畸變又會使筆段方向嚴(yán)重離散。總之,連筆不管對于基于哪種基元的結(jié)構(gòu)識別都是嚴(yán)峻的挑戰(zhàn)。這是造成手寫數(shù)字識別過程復(fù)雜、到達(dá)較高識別率困難的根本原因。如圖2.1各種各樣的手寫體數(shù)字。圖2.1各種各樣的手寫體數(shù)字2.2圖像預(yù)處理概述預(yù)處理[6]是字符識別重要的一環(huán),它把原始的圖像轉(zhuǎn)換成識別器所能接受的二進(jìn)制形式。要識別手寫體數(shù)字首先要對其字符圖像進(jìn)行預(yù)處理。預(yù)處理的主要目的是去除字符圖像中的噪聲、壓縮冗余信息,得到標(biāo)準(zhǔn)化的點(diǎn)陣,為識別做好準(zhǔn)備。這就要求預(yù)處理在消除圖像中與識別無關(guān)的因素時盡量保持原圖像的字符特征。手寫體數(shù)字圖像預(yù)處理的過程,就一般情況而言,主要經(jīng)過如圖2.2所示的幾個步驟。不同的識別方法對預(yù)處理的工程和要求有所不同。如結(jié)構(gòu)識別方法[7],對字符標(biāo)準(zhǔn)化可以從簡,甚至不需要。有的識別方法對細(xì)化要求很高,有的那么不需要細(xì)化。本章中將分別對平滑去噪、二值化、歸一化和細(xì)化分小節(jié)討論。原始圖像原始圖像平滑去噪二值化歸一化細(xì)化圖2.2圖像預(yù)處理的根本流程2.3圖像預(yù)處理的處理步驟2.3.手寫體數(shù)字由于其隨機(jī)性大,斷筆,連筆、飛白狀況時常發(fā)生,為了減少灰度圖像的一些不該出現(xiàn)的黑白噪聲,可以采用圖像的平滑去噪技術(shù)。進(jìn)行圖像平滑處理的是一種空域?yàn)V波器[8],空域?yàn)V波器一般可分為線性濾波和非線性濾波兩類。線性濾波器的設(shè)計(jì)?;趯Ω盗⑷~變換的分析,如均值濾波器;非線性濾波器那么一般直接對鄰域進(jìn)行操作,如中值濾波器。以下為采用中值濾波對圖像進(jìn)行平滑處理的局部代碼[9]:fori=2:175;forj=2:259Xtemp=0;form=1:3forn=1:3Xtemp=Xtemp+X2(i+m.2,j+n.2);endendXtemp=Xtemp/9;X3(i,j)=Xtemp;endend2.3.2二值化圖像的二值化就是把圖像中的像素根據(jù)一定的標(biāo)準(zhǔn)劃分成兩種顏色。在這個系統(tǒng)中就是根據(jù)像素的灰度值處理成黑白兩種顏色。對數(shù)字字符圖像二值化后要能真實(shí)的再現(xiàn)原數(shù)字,其根本要求為:筆畫中不出現(xiàn)空白點(diǎn),二值化的筆畫根本保持原來文字的結(jié)構(gòu)特征。圖像二值化的關(guān)鍵在于閾值的選擇。圖像的二值化有很多成熟的算法,有整體閾值二值化法、局部閾值二值化法、動態(tài)閾值二值化法等。二值化的關(guān)鍵在于閾值的選取,閾值選取主要分為整體閾值法、局部閾值法和動態(tài)閾值法。三類閾值的選擇是一個比擬復(fù)雜的問題,有的可以由計(jì)算機(jī)自動選擇,有的需人工干預(yù)?;谧址R別掃描得到的圖像目標(biāo)與背景的灰度級有明顯的差異,字符圖像的二值化可采用整體閾值法中的雙峰法,該方法簡單易行,針對目標(biāo)與背景的灰度級有明顯差異的圖像,其灰度直方圖的分布呈雙峰狀,兩個波峰分別與圖像中的目標(biāo)和背景相對應(yīng),波谷與圖像邊緣相對,應(yīng)當(dāng)在分割閾值位于谷底時,圖像分割可取得最好的效果。下面給出我在設(shè)計(jì)過程中二值化以后的效果圖如圖2.3。圖2.3二值化處理2.3.3歸一化本文使用的數(shù)字圖像都是在WindowsXP畫圖板中手寫輸入的。由于10×14像素圖像〔10是圖像寬度,14是圖像高度〕較小,書寫時難度較大。我們希望書寫時盡量不限制圖像的大小,然后通過計(jì)算統(tǒng)一尺寸,使之具有同一高度,同一寬度,稱之為歸一化[10]。在數(shù)字圖像處理中有一些比擬成熟的縮放圖像的算法,例如MATLAB使用imresize函數(shù)來改變圖像的大小。它的調(diào)用格式為I2=imresize(I,rate),I存儲的是原始圖像的數(shù)組,rate是變化率,I2存儲的是改變后圖像的數(shù)組。例如rate=0.5時,高度和寬度都將縮小一半,原始圖像也就縮小了一半。這一算法的缺點(diǎn)是只能將原始圖像的高度和寬度同時變化相同的比例,如果我們希望將原始圖像變成10×14像素的圖像,該算法就無法解決了。顯然這種算法不適合解決我們面臨的問題。本文提出了一種新的歸一化算法,可以將不同尺寸的二值圖像統(tǒng)一為10×14像素的圖像。具體算法是:先得到原始圖像的高度和寬度,分別與系統(tǒng)要求得到的高度和寬度作比擬,得出要變換的系數(shù),然后根據(jù)得到的系數(shù)計(jì)算每一個原始像素點(diǎn)歸一化后在新圖像中的位置,最后計(jì)算新圖像中每個像素點(diǎn)的值,方法是:求出原始像素點(diǎn)及其周圍三個點(diǎn)的像素值的平均值,最后用函數(shù)floor.m取整,調(diào)用格式為B=floor(A),B取小于或者等于A的整數(shù)。歸一化算法程序代碼如下:ans=imread('0.bmp');%讀入圖片0.bmp,28×28像素圖像imshow(ans)[r,c]=size(ans);%r是原圖像的高度,c是寬度fori=2:(r-1)forj=2:(c-1)n=i/(r/14);n=ceil(n);m=j/(c/10);m=ceil(m);M(n,m)=(ans(i,j)+ans(i,j+1)+ans(i,j-1)+ans(i-1,j))/4;N(n,m)=floor(M(n,m));endendimshow(N)例如,數(shù)字圖像“0.bmp〞經(jīng)該歸一化算法計(jì)算得到矩陣M,MATLAB運(yùn)行結(jié)果如圖2.4所示。圖2.4歸一化處理2.3.4許多字符識別方法在預(yù)處理中都很重視對二值化字符的細(xì)化處理。直觀來說,細(xì)化就是將二值化字符點(diǎn)陣逐層剝?nèi)ポ喞系狞c(diǎn),變成筆畫寬度只有一個像素寬度的字符骨架圖形。之所以需要細(xì)化處理,是因?yàn)槎祷c(diǎn)陣圖形中,對識別有價值的文字特征信息主要集中在字符骨架上,細(xì)化后的字符骨架既保存了原字符的絕大局部的特征,又利于特征提取。細(xì)化后骨架的存儲量比原來的二值化字符點(diǎn)陣要少得多,降低了處理工作量。手寫體數(shù)字細(xì)化的根本要求如下:第一、保持原有字符筆畫的連續(xù)性,不能由于細(xì)化造成筆畫斷裂。第二、要細(xì)化為單線,即筆畫寬度為一個像素。第三、細(xì)化后的骨架應(yīng)盡量是原來筆畫的中心線。2.4小結(jié)預(yù)處理是手寫數(shù)字識別中不可缺少的組成局部,對圖像預(yù)處理的好壞直接影響到識別的結(jié)果,關(guān)系到識別算法的好壞。文中首先對待識別數(shù)字的預(yù)處理進(jìn)行了介紹,包括平滑去噪、二值化、歸一化、細(xì)化等圖像處理方法,經(jīng)過這些預(yù)處理步驟,對圖像中局部變形信息進(jìn)行了修正,消除圖像中與識別無關(guān)的因素,而且盡量保持原圖像的字符特征,在實(shí)驗(yàn)中提高了數(shù)字識別網(wǎng)絡(luò)的性能。第三章特征提取3.1特征提取的概述模式識別使用特征來區(qū)分不同的種類。因此,特征提取是模式識別系統(tǒng)的關(guān)鍵局部。特征提取的目標(biāo)是找到某種變換,將N維或N*N維的模式類別空間轉(zhuǎn)換到維數(shù)小得多的M維特征空間,并同時保存模式識別所需要的大局部信息。通過特征提取,模式分類可以在維數(shù)低得多的空間上進(jìn)行,從而降低了計(jì)算的復(fù)雜度。而且,對給定的訓(xùn)練樣本進(jìn)行特征提取可以獲得更精確的分類函數(shù)的描述,以構(gòu)造更可靠的分類規(guī)那么。同樣對于手寫體數(shù)字的識別,特征提取可以降低字符信息量、去除無用的冗余信息,提高識別系統(tǒng)效率,一直是字符識別領(lǐng)域中的關(guān)鍵點(diǎn)。特征提取的目的是從原始數(shù)據(jù)中抽取出用于區(qū)分不同類型的本質(zhì)特征。無論是識別過程還是學(xué)習(xí)過程,都要對研究對象固有的、本質(zhì)的重要特征或?qū)傩赃M(jìn)行量測并將結(jié)果數(shù)值化,形成特征矢量。手寫體數(shù)字的識別中,常用的特征有結(jié)構(gòu)特征和統(tǒng)計(jì)特征。結(jié)構(gòu)特征和統(tǒng)計(jì)特征各有其優(yōu)點(diǎn):結(jié)構(gòu)特征能描述字符的結(jié)構(gòu),對于不同人書寫的字符,形體不同,但結(jié)構(gòu)都是一致的,所以結(jié)構(gòu)特征能克服手寫字體因人而引起的畸變;統(tǒng)計(jì)特征最大的優(yōu)點(diǎn)是對環(huán)境噪音不敏感,如假設(shè)字符的背景噪音通常都是呈高斯分布,用統(tǒng)計(jì)特征進(jìn)行識別可對此影響忽略不計(jì)。本章將用兩小節(jié)分別對結(jié)構(gòu)特征和統(tǒng)計(jì)特征進(jìn)行論述。3.2統(tǒng)計(jì)特征對復(fù)雜圖像信號作小波變換[11],進(jìn)行多分辨率分析,已經(jīng)成為圖像信號分析和處理的常用方法。由于小波變換的結(jié)果表達(dá)為大量的小波分解系數(shù),這些系數(shù)包含了系統(tǒng)或信號本身大量和多樣的特征信息。如果圖像信號的主要信息能以一個或一組特征量來表征,我們就可以更加直觀、有效和方便地對各種隨機(jī)信號進(jìn)行信息提取、信號檢測、特征識別。統(tǒng)計(jì)特征分為宏觀特征信息和局部特征信息。宏觀特征信息是需要在整幅圖像上獲取的特征信息。傳統(tǒng)的全局特征主要包括:全局變換特征〔對字符圖像進(jìn)行各種變換,利用變換系數(shù)作為特征向量,常用的變換有Fourier變換、K-L變換、小波變換等〕、不變矩特征、全局筆劃方向特征等;常用的局部統(tǒng)計(jì)特征有:局部筆劃方向特征、Gabor特征等。統(tǒng)計(jì)特征對微小的畸變不敏感,但區(qū)分相似的能力較差。以下為程序設(shè)計(jì)中對小波分析提取低頻局部的統(tǒng)計(jì)特征的實(shí)例:f=imread('sample.bmp');輸入圖像[c,s]=wavedec2(h,3,'db2');對人臉圖像進(jìn)行3階小波分解,并提取小波系數(shù)wave2gray(c,s,8);顯示小波分解后各子圖y=wavecopy('a',c,s)figure,imshow(mat2gray(y));提取主要特征3.3結(jié)構(gòu)特征采用結(jié)構(gòu)特征[12]對字符進(jìn)行結(jié)構(gòu)分析從而到達(dá)識別目的,是一種非常直觀的方法。字符由各個子部件構(gòu)成,逐級分析字符圖像的結(jié)構(gòu),根據(jù)各元素的屬性、數(shù)量及其相互關(guān)系,便可判定待識字符。與統(tǒng)計(jì)方法相比,結(jié)構(gòu)分析不注重特征的絕對位置,只考慮特征的相對關(guān)系,因而對書寫風(fēng)格的變化不敏感,其缺點(diǎn)在于特征提取和模板的建立都十分困難,匹配算法也比擬復(fù)雜,神經(jīng)網(wǎng)絡(luò)的應(yīng)用彌補(bǔ)了這個缺點(diǎn),只要提取出適當(dāng)?shù)慕Y(jié)構(gòu)向量作為神經(jīng)網(wǎng)絡(luò)的輸入向量,會得到令人滿意的識別輸出結(jié)果。以下詳細(xì)介紹。3.3.1首先對經(jīng)預(yù)處理后的圖像進(jìn)行分割,如圖3.1所示。圖3.1圖像分割對圖像分割后,結(jié)構(gòu)特征提取的算法如下:(1)對細(xì)化后的數(shù)字圖像取豎直的三條直線,分別取在5/12,1/2,7/12處,記下這三條豎直直線與數(shù)字筆段的交點(diǎn)數(shù)。(2)再取水平三條直線,分別取在1/3,1/2,2/3處,分別記下這三條水平直線與數(shù)字筆段的交點(diǎn)數(shù)。(3)再取對角兩條直線,分別記下這兩條對角直線與數(shù)字筆段的交點(diǎn)數(shù)。3.3.2經(jīng)細(xì)化后的數(shù)字圖像其特征較為穩(wěn)定,且筆劃簡單,因此對其抽取的根本結(jié)構(gòu)組件能反映數(shù)字的本質(zhì)特征,從而可快速有效地識別數(shù)字,并到達(dá)較好的分類效果。數(shù)字端點(diǎn)如圖3.2所示。圖3.2數(shù)字端點(diǎn)對圖像分割后,結(jié)構(gòu)特征提取的算法如下:(1)按從上到下,從左到右的順序掃描預(yù)處理后圖像并選擇黑像素點(diǎn)P;(2)計(jì)算像素P的8-鄰域之和N;(3)假設(shè)N=1,那么像素P為端點(diǎn),端點(diǎn)計(jì)數(shù)器加一;(4)重復(fù)步驟(1)-(3),直到遍歷整個圖像。3.3.3依據(jù)上述特征提取方法,本系統(tǒng)中的特征矢量由9個分量組成,其排列如下所示:DATA=[豎直中線交點(diǎn)數(shù),豎直5/12處,豎直7/12處,水平中線交點(diǎn)數(shù) ,水平1/3處交點(diǎn)數(shù),水平2/3處交點(diǎn)數(shù),左對角線交點(diǎn)數(shù),右對角線交點(diǎn)數(shù),端點(diǎn)數(shù)];3.3知識庫的建立由于本文采用的是基于模式知識庫的識別方法,所以對字符的結(jié)構(gòu)特征的分析以及字符模型的構(gòu)造是一個十分重要的環(huán)節(jié),圖3.3就是對識別數(shù)字的標(biāo)準(zhǔn)形態(tài)進(jìn)行具體分析而構(gòu)造的模板。圖3.3標(biāo)準(zhǔn)手寫體數(shù)字形態(tài)以下為標(biāo)準(zhǔn)手寫體數(shù)字形態(tài)的特征向量:DATA01=[2,2,2,2,2,2,2,2,0];DATA11=[1,0,0,1,1,1,1,1,2];DATA21=[3,3,3,1,1,1,1,1,3];DATA31=[3,2,3,1,1,1,2,2,3];DATA41=[1,1,1,2,2,1,3,2,4];DATA51=[3,3,3,1,1,1,2,2,4];DATA61=[3,3,2,1,1,2,3,2,1];DATA71=[2,2,2,1,1,1,1,1,2];DATA81=[4,4,4,2,2,2,2,2,0];DATA91=[3,3,3,1,2,1,3,1,1]。由于本系統(tǒng)是對自由手寫體進(jìn)行識別,因而要考慮數(shù)字書寫體的多變性。通過對圖3.4所示的數(shù)字變體的分析來對知識庫進(jìn)行補(bǔ)充。圖3.4手寫體數(shù)字變體以下為手寫體數(shù)字變體形態(tài)的特征向量:DATA02=[1,1,2,2,2,2,1,2,2];DATA22=[3,2,2,1,1,1,1,3,2];DATA32=[3,1,4,2,1,1,2,2,3];DATA42=[1,2,2,3,3,1,2,2,2];DATA52=[3,3,3,1,1,1,2,2,4];DATA62=[3,1,3,1,1,2,2,2,2];DATA82=[4,4,4,2,1,2,1,2,2];DATA92=[3,2,3,2,1,1,3,1,3]。最后得到的知識庫由上述兩套模板所組成。第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別的應(yīng)用4.1神經(jīng)網(wǎng)絡(luò)簡介及其工作原理人的智能來自于大腦,大腦是由大量的神經(jīng)細(xì)胞或神經(jīng)元組成的。每個神經(jīng)元可以看作為一個小的處理單元,這些神經(jīng)元按照某種方式互相連接起來,構(gòu)成了大腦內(nèi)部的生理神經(jīng)元網(wǎng)絡(luò)。他們中各神經(jīng)元之間連接的強(qiáng)弱,按照外部的鼓勵信號作自適應(yīng)變化,而每個神經(jīng)元又隨著接收到的多個鼓勵信號的綜合大小呈現(xiàn)興奮或抑制狀態(tài)。神經(jīng)網(wǎng)絡(luò)概述人工神經(jīng)元網(wǎng)絡(luò)是生理學(xué)上的真實(shí)人腦神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能,以及假設(shè)干根本特性的某種理論抽象、簡化和模擬而構(gòu)成的一種信息處理系統(tǒng)。從系統(tǒng)觀點(diǎn)看,人工神經(jīng)元網(wǎng)絡(luò)是由大量神經(jīng)元通過極其豐富和完善的聯(lián)接而構(gòu)成的自適應(yīng)非線性動態(tài)系統(tǒng)。由于神經(jīng)元之間有著不同的連接方式,所以組成不同結(jié)構(gòu)形態(tài)的神經(jīng)網(wǎng)絡(luò)[14]系統(tǒng)是可能的。據(jù)現(xiàn)在的了解,大腦的學(xué)習(xí)過程就是神經(jīng)元之間連接強(qiáng)度隨外部鼓勵信息做自適應(yīng)變化的過程,大腦處理信息的結(jié)果確由神經(jīng)元的狀態(tài)表現(xiàn)出來。顯然,神經(jīng)元是信息處理系統(tǒng)的最小單元。雖然神經(jīng)元的類型有很多種,但其根本結(jié)構(gòu)相似。神經(jīng)網(wǎng)絡(luò)的工作原理人工神經(jīng)網(wǎng)絡(luò)首先要以一定的學(xué)習(xí)準(zhǔn)那么進(jìn)行學(xué)習(xí),然后才能工作。現(xiàn)以人工神經(jīng)網(wǎng)絡(luò)對手寫“A〞、“B〞兩個字母的識別為例進(jìn)行說明,規(guī)定當(dāng)“A〞輸入網(wǎng)絡(luò)時,應(yīng)該輸出“1〞,而當(dāng)輸入為“B〞時,輸出為“0〞。所以網(wǎng)絡(luò)學(xué)習(xí)的準(zhǔn)那么應(yīng)該是:如果網(wǎng)絡(luò)做出錯誤的判決,那么通過網(wǎng)絡(luò)的學(xué)習(xí),應(yīng)使得網(wǎng)絡(luò)減少下次犯同樣錯誤的可能性。首先,給網(wǎng)絡(luò)的各連接權(quán)值賦予(0,1)區(qū)間內(nèi)的隨機(jī)值,將“A〞所對應(yīng)的圖像模式輸入給網(wǎng)絡(luò),網(wǎng)絡(luò)將輸入模式加權(quán)求和、與門限比擬、再進(jìn)行非線性運(yùn)算,得到網(wǎng)絡(luò)的輸出。在此情況下,網(wǎng)絡(luò)輸出為“1〞和“0〞的概率各為50%,也就是說是完全隨機(jī)的。這時如果輸出為“1〞(結(jié)果正確),那么使連接權(quán)值增大,以便使網(wǎng)絡(luò)再次遇到“A〞模式輸入時,仍然能做出正確的判斷。如果輸出為“0〞(即為結(jié)果錯誤),那么把網(wǎng)絡(luò)連接權(quán)值朝著減小綜合輸入加權(quán)值的方向調(diào)整,其目的在于使網(wǎng)絡(luò)下次再遇到“A〞模式輸入時,減小犯同樣錯誤的可能性。如此操作調(diào)整,當(dāng)給網(wǎng)絡(luò)輪番輸入假設(shè)干個手寫字母“A〞、“B〞后,經(jīng)過網(wǎng)絡(luò)按以上學(xué)習(xí)方法進(jìn)行假設(shè)干次學(xué)習(xí)后,網(wǎng)絡(luò)判斷的正確率將大大提高。這說明網(wǎng)絡(luò)對這兩個模式的學(xué)習(xí)已經(jīng)獲得了成功,它已將這兩個模式分布地記憶在網(wǎng)絡(luò)的各個連接權(quán)值上。當(dāng)網(wǎng)絡(luò)再次遇到其中任何一個模式時,能夠做出迅速、準(zhǔn)確的判斷和識別。一般說來,網(wǎng)絡(luò)中所含的神經(jīng)元個數(shù)越多,那么它能記憶、識別的模式也就越多。4.2神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練人腦中一個典型神經(jīng)元通過許多樹突的精細(xì)結(jié)構(gòu),收集來自其它神經(jīng)元的信息,神經(jīng)元又通過軸突的一條長而細(xì)的軸突發(fā)出電活性脈沖。軸突分裂上千條分支,在每條分支末端,通過突觸的結(jié)構(gòu)把來自軸突的電活性變?yōu)殡娮饔?,從而使與之相連的各種神經(jīng)元的活性受到抑制或興奮。當(dāng)一個神經(jīng)元收到興奮輸入,而興奮輸入又比神經(jīng)元的抑制輸入足夠大時,神經(jīng)元把電活性脈沖向下傳到它的軸突,改變軸突的有效性,從而使一個神經(jīng)元對另一個神經(jīng)元的影響改變,便發(fā)生了學(xué)習(xí)行為。因此,可以認(rèn)為神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的本質(zhì)特征在于神經(jīng)細(xì)胞特殊的突觸結(jié)構(gòu)所具有的可塑性連接,而如何調(diào)整連接權(quán)重就構(gòu)成了不同的學(xué)習(xí)算法。通過向環(huán)境學(xué)習(xí)獲取知識并改良自身性能是NN的一個重要特點(diǎn)。在一般情況下,性能的改善是按某種預(yù)定的度量通過調(diào)節(jié)自身參數(shù)〔如權(quán)值〕隨時間逐步到達(dá)的。學(xué)習(xí)方式[15](按照環(huán)境提供信息量的多少)有三種:1.監(jiān)督學(xué)習(xí)〔有教師學(xué)習(xí)〕為了使神經(jīng)網(wǎng)絡(luò)在實(shí)際應(yīng)用中解決各種問題,必須對它進(jìn)行訓(xùn)練,就是從應(yīng)用環(huán)境中選出一些樣本數(shù)據(jù),通過不斷地調(diào)整權(quán)矩陣,直到得到適宜的輸入輸出關(guān)系為止,這個過程就是對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,這種訓(xùn)練的過程需要有教師示教,提供訓(xùn)練數(shù)據(jù),又稱樣本數(shù)據(jù)。在訓(xùn)練過程中又需教師的監(jiān)督,故這種有教師的學(xué)習(xí)又稱為監(jiān)督式學(xué)習(xí)。有教師學(xué)習(xí)方法雖然簡單,但是要求教師對環(huán)境和網(wǎng)絡(luò)的結(jié)構(gòu)應(yīng)該比擬熟悉,當(dāng)系統(tǒng)復(fù)雜,環(huán)境變化時,就變得困難。為了適應(yīng)環(huán)境變化就要重新調(diào)整加權(quán)值,這樣,當(dāng)學(xué)習(xí)到新知識的同時,也容易忘掉已學(xué)過的舊知識,這一些是有教師學(xué)習(xí)方法的缺點(diǎn)。2.非監(jiān)督學(xué)習(xí)〔無教師學(xué)習(xí)〕非監(jiān)督學(xué)習(xí)時不存在外部教師,學(xué)習(xí)系統(tǒng)完全按照環(huán)境提供數(shù)據(jù)的某些統(tǒng)計(jì)規(guī)律來調(diào)節(jié)自身參數(shù)或結(jié)構(gòu)〔這是一種自組織過程〕,以表示出外部輸入的某種固有特性〔如聚類或某種統(tǒng)計(jì)上的分布特征〕。無教師學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集中,只有輸入而沒有目標(biāo)輸出,訓(xùn)練過程神經(jīng)網(wǎng)絡(luò)自動地將各輸入數(shù)據(jù)的特征提取出來,并將其分成假設(shè)干類。經(jīng)過訓(xùn)練好的網(wǎng)絡(luò)能夠識別訓(xùn)練數(shù)據(jù)集以外的新的輸入類別,并相應(yīng)獲得不同的輸出。顯然,無教師的訓(xùn)練方式可使網(wǎng)絡(luò)具有自組織和自學(xué)習(xí)的功能。3.再勵學(xué)習(xí)〔強(qiáng)化學(xué)習(xí)〕這種學(xué)習(xí)介于上述兩種情況之間,外部環(huán)境對系統(tǒng)輸出結(jié)果只給出評價信息〔獎或懲〕而不是給出正確答案。學(xué)習(xí)系統(tǒng)通過強(qiáng)化那些受獎的動作來改善自身的性能。4.3BP神經(jīng)網(wǎng)絡(luò)4.3.1自1985年Rumelhart提出BP算法[16]以來,神經(jīng)網(wǎng)絡(luò)的研究和應(yīng)用已經(jīng)迅速開展并滲透到各個學(xué)科,神經(jīng)網(wǎng)絡(luò)算法已不再是只供研究,而在實(shí)際的生產(chǎn)中開始了廣泛的應(yīng)用。如:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)挖掘、產(chǎn)品的自動分撿系統(tǒng)的圖像識別等。對應(yīng)地在計(jì)算機(jī)輔助設(shè)計(jì)的軟件開發(fā)中,神經(jīng)網(wǎng)絡(luò)算法的設(shè)計(jì)也越來越多。神經(jīng)網(wǎng)絡(luò)以其快速的并行處理能力和其強(qiáng)有力的學(xué)習(xí)能力而獲得越來越廣泛的重視,其中應(yīng)用最多的是BP神經(jīng)網(wǎng)絡(luò)。BP學(xué)習(xí)算法,即反向傳播〔backpropagation〕學(xué)習(xí)算法是一種有導(dǎo)師的例如學(xué)習(xí)算法。這種學(xué)習(xí)算法在模式識別領(lǐng)域中,尤其在字符識別的研究中被廣泛使用。其原因是BP算法學(xué)習(xí)規(guī)那么的堅(jiān)韌性和學(xué)習(xí)能力很強(qiáng),當(dāng)給定模式與BP網(wǎng)絡(luò)學(xué)會的模式很相似時,BP網(wǎng)絡(luò)能很好的完成識別任務(wù)。BP算法是一種有監(jiān)督式的學(xué)習(xí)算法。其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,通過誤差的反向傳播,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。BP算法由兩局部組成:信息的正向傳遞與誤差的反向傳播。在正向傳播過程中,輸入信息從輸入層經(jīng)過隱含層逐層計(jì)算傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層沒有得到期望的輸出,那么計(jì)算輸出層的誤差變化值,然后轉(zhuǎn)向反向傳播,通過網(wǎng)絡(luò)將誤差信號沿著原來的連接通路反傳回來,通過修改各層神經(jīng)元的權(quán)值使得誤差減小,直至到達(dá)期望目標(biāo)。4.3.2BP網(wǎng)絡(luò)是一種有監(jiān)督的前饋運(yùn)行的神經(jīng)網(wǎng)絡(luò),它由輸入層i、隱含層h、輸出層k以及各層之間的節(jié)點(diǎn)的連接權(quán)所組成。它又分為正向和反向傳播兩種,以下對各層進(jìn)行詳細(xì)介紹。1、正向傳播過程輸入層輸入值一般為樣本各分量輸入值,輸出值一般等于輸入值。隱含層對于節(jié)點(diǎn)j,其輸入值為其前一層各節(jié)點(diǎn)輸出值的加權(quán)和:(4.1)輸出值(4.2)式中稱為鼓勵函數(shù)或者作用函數(shù)。一般采用sigmoid函數(shù):(4.3)式中稱為闕值,λ稱為溫度系數(shù)。隱含層可為一層或者多層,但是隨著隱含層的增多,網(wǎng)格的復(fù)雜程度也隨之增加,學(xué)習(xí)速度減慢,另外網(wǎng)絡(luò)的推導(dǎo)能力也有可能下降,即所謂的“overfitting〞現(xiàn)象。網(wǎng)絡(luò)隱含層以及節(jié)點(diǎn)數(shù)目的選取是BP網(wǎng)絡(luò)學(xué)習(xí)算法有待解決的一個問題。輸出層輸出層的輸入與輸出與隱含層類似,分別為:(4.4)(4.5)2、反向傳播過程BP學(xué)習(xí)算法的誤差函數(shù)一般定義為實(shí)際輸出與期望輸出的均方誤差和。通過使誤差函數(shù)最小化的過程不斷的改變權(quán)重,完成從輸入到輸出的非線性映射。設(shè)網(wǎng)絡(luò)輸入模式樣本為,期望輸出為,均方誤差函數(shù)為:(4.6)而對于所有的學(xué)習(xí)樣本,系統(tǒng)的均方誤差為:(4.7)為了到達(dá)學(xué)習(xí)目的,要根據(jù)誤差函數(shù)來相應(yīng)地調(diào)整網(wǎng)絡(luò)間的連接權(quán)值。一般來說經(jīng)典的BP學(xué)習(xí)算法采用最快速梯度下降法調(diào)整權(quán)值,每次調(diào)整的增量為:(4.8)式中0<η<1稱為學(xué)習(xí)率。從(4.8)式可推出以下連接權(quán)值的修正量公式(4.9)對于輸出節(jié)點(diǎn):(4.10)對于隱節(jié)點(diǎn):(4.11)4.3.3BP網(wǎng)絡(luò)的設(shè)計(jì)主要包括輸入層,隱層,輸出層及各層之間的傳輸函數(shù)幾個方面。1、網(wǎng)絡(luò)層數(shù)大多數(shù)通用的神經(jīng)網(wǎng)絡(luò)都預(yù)先預(yù)定了網(wǎng)絡(luò)的層數(shù),而BP網(wǎng)絡(luò)可以包含不同的隱層。對多層BP神經(jīng)網(wǎng)絡(luò),隱層層數(shù)至少為1層或1層以上,每個隱層的神經(jīng)元個數(shù)至少為1個或1個以上,否那么與多層網(wǎng)絡(luò)的命題矛盾而不成立。2、輸入層的節(jié)點(diǎn)數(shù)網(wǎng)絡(luò)的輸入個數(shù)應(yīng)等于應(yīng)用問題的輸入數(shù),MATLAB的BP網(wǎng)絡(luò)的建立是通過函數(shù)newff或newcf實(shí)現(xiàn)的.如圖4.1所示的程序設(shè)計(jì)截圖。圖4.1使用newff函數(shù)建立一個新的BP神經(jīng)網(wǎng)絡(luò)3、網(wǎng)絡(luò)數(shù)據(jù)的預(yù)處理[17]預(yù)處理方法有歸一化處理、標(biāo)準(zhǔn)化處理和主成分分析。常采用的是歸一化處理,即將輸入、輸出數(shù)據(jù)映射到[-1,1]范圍內(nèi),訓(xùn)練結(jié)束后再反映射到原數(shù)據(jù)范圍。4、輸出層的節(jié)點(diǎn)數(shù)輸出層節(jié)點(diǎn)數(shù)取決于兩個方面,輸出數(shù)據(jù)類型和表示該類型所需要的數(shù)據(jù)大小。5、隱層的節(jié)點(diǎn)數(shù)根據(jù)經(jīng)驗(yàn),可以參考以下公式進(jìn)行設(shè)計(jì):或者(4.12)(1)式中:n為隱層節(jié)點(diǎn)數(shù);為輸入節(jié)點(diǎn)數(shù);為輸出節(jié)點(diǎn)數(shù);a為1~10之間的常數(shù)。(2)改變n,用同一樣本集訓(xùn)練,從中確定網(wǎng)絡(luò)誤差最小時對應(yīng)的隱層節(jié)點(diǎn)數(shù)。6、傳輸函數(shù)BP網(wǎng)絡(luò)中傳輸函數(shù)常采用S(sigmoid)型函數(shù).在某些特定情況下,還可能采用純線性(Pureline)函數(shù)。7、訓(xùn)練方法及其參數(shù)選擇[18]net.trainParam.show=;%顯示訓(xùn)練結(jié)果的間隔步數(shù)=;%最大訓(xùn)練步數(shù)=;%訓(xùn)練目標(biāo)誤差net.trainParam.mu=;%學(xué)習(xí)系數(shù)的初始值,Marquardt調(diào)整參數(shù)net.trainParam.mu_dec=;%學(xué)習(xí)系數(shù)的下降因子net.trainParam.mu_inc=;%學(xué)習(xí)系數(shù)的上升因子net.trainParam.mu_max=;%學(xué)習(xí)系數(shù)的最大值net.trainParam.min_grad=;%訓(xùn)練中最小允許梯度值如圖4.2本例中所用參數(shù)。圖4.2本例所用參數(shù)通過以上處理后,將得到的特征向量輸入到設(shè)計(jì)好的神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,下面的圖4.3和4.4分別給出了網(wǎng)絡(luò)的某次訓(xùn)練過程及結(jié)果,由圖可以看出結(jié)果還是很令人滿意的。圖4.3BP網(wǎng)絡(luò)的訓(xùn)練過程圖4.4BP網(wǎng)絡(luò)的訓(xùn)練結(jié)果4.4BP學(xué)習(xí)算法的局限性與對策BP學(xué)習(xí)算法解決了多層前饋網(wǎng)絡(luò)的訓(xùn)練與非線性映射問題,在實(shí)際應(yīng)用中具有重大意義,在應(yīng)用BP學(xué)習(xí)算法的過程中,人們逐漸發(fā)現(xiàn)它存在的某些缺陷,存在局部極小值、學(xué)習(xí)速度慢、網(wǎng)絡(luò)隱節(jié)點(diǎn)和初始權(quán)值的選取只能憑經(jīng)驗(yàn)、新參加的樣本要影響已經(jīng)學(xué)完的樣本,并且每個樣本的輸入樣本的特征數(shù)目也要求必須相同;學(xué)習(xí)過程能否收斂,什么時候收斂已經(jīng)學(xué)習(xí)后所生成的權(quán)重空間的分布狀況等,這些至今還是一個未知數(shù)。BP學(xué)習(xí)算法存在的局限性BP學(xué)習(xí)算法存在的局限性總結(jié)如下:(1)歸納能力基于BP學(xué)習(xí)算法的神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的歸納能力。這里,歸納是指當(dāng)用一組同類型的樣本集訓(xùn)練時,BP網(wǎng)絡(luò)能將一些不相關(guān)的信息忽略掉,而學(xué)習(xí)樣本集中共同的特征,通過這樣的學(xué)習(xí),BP網(wǎng)絡(luò)很容易記住了這一類型的樣本。然而,BP學(xué)習(xí)算法對不同類型微小特征差異的樣本缺乏足夠的歸納能力。(2)外推能力和歸納能力相對,BP網(wǎng)絡(luò)的外推能力是指BP網(wǎng)絡(luò)對一類樣本訓(xùn)練完后,對其它非訓(xùn)練樣本測試其識別能力。實(shí)驗(yàn)結(jié)果說明,外推能力與訓(xùn)練樣本的種類和數(shù)量有關(guān)。只有將各種不同類型的充足的樣本訓(xùn)練后,才能對各種樣本的測試到達(dá)較好的推廣能力。(3)學(xué)習(xí)速度BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程是一種超大規(guī)模的反復(fù)的浮點(diǎn)數(shù)值運(yùn)算過程,因此,無論從學(xué)習(xí)算法本身考慮,還是從使用的微機(jī)設(shè)備上考慮,學(xué)習(xí)速度一般是較慢的。(4)收斂性BP學(xué)習(xí)算法的收斂性至今沒能用完整的理論來證明它。網(wǎng)絡(luò)學(xué)習(xí)過程中極易陷入局部極小點(diǎn)。一旦網(wǎng)絡(luò)的權(quán)重陷入一個極小點(diǎn),無論是全局極小點(diǎn)還是局部極小點(diǎn),學(xué)習(xí)均告終止。如果在該點(diǎn)的狀態(tài)下所要求的問題解是正確的,那么,該點(diǎn)是局部的還是全局的極小點(diǎn)就顯得不那么重要了。但假設(shè)所求問題的解是不正確的,那么只有再次調(diào)整權(quán)值,直到找到另一個極小點(diǎn)對所求問題的解是正確時為止,即要逃離原來的局部極小點(diǎn)。(5)解釋能力神經(jīng)網(wǎng)絡(luò)對自身解決問題的方式不能形成一個標(biāo)準(zhǔn)的推導(dǎo)過程。它通過學(xué)習(xí)所形成的“自我認(rèn)識〞對人來說是透明的。這對有導(dǎo)師訓(xùn)練的BP學(xué)習(xí)算法而言,大大阻礙了指導(dǎo)人與被指導(dǎo)對象的交流。4.5對BP算法的改良經(jīng)典的BP算法采用梯度下降法。當(dāng)誤差曲面為窄長型時,該算法在谷的兩壁跳來跳去,影響了網(wǎng)絡(luò)的收斂速度。最普通的改良方法為附加動量法,將公式(4.9)改為:(4.13)式中稱為動量因子。利用附加的動量項(xiàng)可以起到平滑梯度方向的劇烈變化。更進(jìn)一步可以在學(xué)習(xí)過程中動態(tài)地調(diào)整η和α的值,使η隨系統(tǒng)總誤差E不斷的變化,以防止出現(xiàn)W取值過小,尤其是在接近系統(tǒng)最小值的時候。實(shí)驗(yàn)中發(fā)現(xiàn),η越大,學(xué)習(xí)速度會越快,但過大時會引起振蕩效應(yīng);而α取的過大可能導(dǎo)致發(fā)散,過小那么收斂速度太慢;η取0.2~0.5,α取0.90~0.98時有較快的收斂速度。動態(tài)調(diào)整η和α值,收到良好效果。根據(jù)優(yōu)化理論還有很多種優(yōu)化方法。這些方法一般都可以應(yīng)用到改良BP算法中。例如同倫方法、梯度法、共軛梯度法以及牛頓法。事實(shí)證明采用較好的優(yōu)化方法可以提高網(wǎng)絡(luò)的收斂速度、防止陷入局部極小。尋求一種適合BP算法使用的新的優(yōu)化算法也是一個很有價值的研究課題。利用附加的動量項(xiàng)可以起到平滑梯度方向的劇烈變化。更進(jìn)一步可以在學(xué)習(xí)過程中動態(tài)地調(diào)整η和α的值,使η隨系統(tǒng)總誤差E不斷的變化,以防止出現(xiàn)W取值過小,尤其是在接近系統(tǒng)最小值的時候。實(shí)驗(yàn)中發(fā)現(xiàn),η越大,學(xué)習(xí)速度會越快,但過大時會引起振蕩效應(yīng);而α取的過大可能導(dǎo)致發(fā)散,過小那么收斂速度太慢;η取0.2~0.5,α取0.90~0.98時有較快的收斂速度。動態(tài)調(diào)整η和α值,收到良好效果。根據(jù)優(yōu)化理論還有很多種優(yōu)化方法。這些方法一般都可以應(yīng)用到改良BP算法中。例如同倫方法、梯度法、共軛梯度法以及牛頓法。事實(shí)證明采用較好的優(yōu)化方法可以提高網(wǎng)絡(luò)的收斂速度、防止陷入局部極小。尋求一種適合BP算法使用的新的優(yōu)化算法也是一個很有價值的研究課題。第五章系統(tǒng)的實(shí)現(xiàn)與結(jié)果分析5.1軟件開發(fā)平臺5.1.MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大局部。MATLAB是矩陣實(shí)驗(yàn)室〔MatrixLaboratory〕的簡稱,和Mathematical、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)立用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的應(yīng)用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計(jì)、測試和測量、財(cái)務(wù)建模和分析以及計(jì)算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱〔單獨(dú)提供的專用MATLAB函數(shù)集〕擴(kuò)展了MATLAB環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。5.1.(1)此高級語言可用于技術(shù)計(jì)算(2)此開發(fā)環(huán)境可對代碼、文件和數(shù)據(jù)進(jìn)行管理(3)交互式工具可以按迭代的方式探查、設(shè)計(jì)及求解問題(4)數(shù)學(xué)函數(shù)可用于線性代數(shù)、統(tǒng)計(jì)、傅立葉分析、篩選、優(yōu)化以及數(shù)值積分等二維和三維圖形函數(shù)可用于可視化數(shù)據(jù)(5)各種工具可用于構(gòu)建自定義的圖形用戶界面(6)各種函數(shù)可將基于MATLAB的算法與外部應(yīng)用程序和語言〔如C、C++、Fortran、Java、COM以及MicrosoftExcel〕集成5.1.3(1)友好的工作平臺和編程環(huán)境(2)簡單易用的程序語言(3)強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力(4)出色的圖形處理功能(5)應(yīng)用廣泛的模塊集合工具箱(6)實(shí)用的程序接口和發(fā)布平臺(7)應(yīng)用軟件開發(fā)〔包括用戶界面〕5.2系統(tǒng)設(shè)計(jì)思路本設(shè)計(jì)主要分為三大步驟:第一階段,圖像預(yù)處理;第二階段,特征提??;第三階段,設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)并對輸入樣本進(jìn)行訓(xùn)練和測試。具體分為以下五步:(1)對手寫體數(shù)字圖像進(jìn)行預(yù)處理,包括去噪、二值化、歸一化、細(xì)化等;(2)對手寫體數(shù)字圖像進(jìn)行小波分解,對分解的系數(shù)進(jìn)行分析;(3)特征提取,采用統(tǒng)計(jì)特征、結(jié)構(gòu)特征和筆畫特征提取,取得輸入樣本;(4)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)并對樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)和訓(xùn)練;(5)對構(gòu)建好的人工神經(jīng)網(wǎng)絡(luò)對性測試和分析。5.3系統(tǒng)流程圖該系統(tǒng)分為識別過程和訓(xùn)練過程,這兩個過程又都包括圖像預(yù)處理、特征提取和分類識別。如圖5.1是本系統(tǒng)的流程圖。圖5.1系統(tǒng)流程圖5.4MATLAB程序設(shè)計(jì)本次設(shè)計(jì)使用MATLAB語言實(shí)現(xiàn)該系統(tǒng),其用戶界面分別介紹如下。讀入圖像,這里有多組測試圖片可以用來測試,選擇其中一張,讀入圖像的用戶界面如圖5.2所示。圖5.2讀入測試圖片然后用MATLAB中圖象處理工具箱讀入bmp文件,并將其轉(zhuǎn)化為二值數(shù)據(jù),其中使用imread,im2double,rgb2gray,mat2gray,im2bw等函數(shù)。之后取得單個的數(shù)字圖像文件,使用imcrop函數(shù)進(jìn)行剪裁。選取圖片中的任意數(shù)字:比方5,如圖5.3。圖5.3選取數(shù)字5進(jìn)行各種操作經(jīng)過平滑去噪、二值化、標(biāo)準(zhǔn)化、細(xì)化等過程預(yù)處理以后,識別出選取的數(shù)字,如圖5.4。圖5.4識別出數(shù)字55.5實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析實(shí)驗(yàn)數(shù)據(jù)局部綜合了十張不同的測試圖像,每張圖像分別有五個0-9,并對每個數(shù)字進(jìn)行識別,如表格5-5是實(shí)驗(yàn)數(shù)據(jù)的記錄表。表格5-5實(shí)驗(yàn)數(shù)據(jù)數(shù)字0數(shù)字1數(shù)字2數(shù)字3數(shù)字4數(shù)字5數(shù)字6數(shù)字7數(shù)字8數(shù)字9識為040122113223識為114010200421識為221353131321識為301034042213識為412122911132識為510332372012識為630017236012識為703510103502識為801120131372識為921223022132正確40403534293736353732正確率80%80%70%68%58%74%72%70%74%64%由表格可以看到,數(shù)字“0〞和“1〞的識別結(jié)果最好,都到達(dá)了80%;其次,數(shù)字“2〞,“5〞,“6〞“7〞和“8〞的識別精度也都到達(dá)70%以上;數(shù)字“4〞的識別結(jié)果不理想,識別精度不到60%,4被誤識為6的次數(shù)較多。所有測試樣本的平均識別正確率為71%。結(jié)論神經(jīng)網(wǎng)絡(luò)是性能良好的特征識別器,它與正確的特征提取方法相結(jié)合,會到達(dá)讓人滿意的識別效果。本文對手寫體數(shù)字識別的根本原理及方法作了介紹,設(shè)計(jì)的時候使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)和訓(xùn)練,并用MATLAB工具實(shí)現(xiàn)了自由手寫體數(shù)字識別系統(tǒng)。實(shí)驗(yàn)結(jié)果說明,基于所用結(jié)構(gòu)模型和知識庫的識別方法對標(biāo)準(zhǔn)手寫體數(shù)字是可行的,也可以識別一定條件下的自由手寫體數(shù)字。為了提高識別率和可靠性,除了要增強(qiáng)對噪聲的濾除能力外,還要增大知識庫,以解決細(xì)化中出現(xiàn)的結(jié)構(gòu)畸變問題,這些都有待我們進(jìn)一步的研究。另外,針對BP網(wǎng)絡(luò)收斂速度慢,計(jì)算量大等缺點(diǎn),改良了網(wǎng)絡(luò)的初始值,保證網(wǎng)絡(luò)穩(wěn)定快速收斂。還介紹了一種BP神經(jīng)網(wǎng)絡(luò)的改良訓(xùn)練算法,利用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱提供的豐富的訓(xùn)練函數(shù),對幾種典型的BP網(wǎng)絡(luò)訓(xùn)練算法的訓(xùn)練速度進(jìn)行了比擬。仿真結(jié)果說明本文提出的用于手寫體數(shù)字識別的BP神經(jīng)網(wǎng)絡(luò)模型具有一定的識別能力,其算法可操作性強(qiáng),只要相關(guān)參數(shù)選擇得當(dāng),系統(tǒng)就能夠得到較好的識別效果。本文的手寫體數(shù)字識別正確率為71%。今后工作展望:手寫體數(shù)字的特征提取是一個非常復(fù)雜的問題,可以考慮先用比擬適合于特征提取的自組織特征映射網(wǎng)絡(luò)提取樣本特征,然后再用BP神經(jīng)網(wǎng)絡(luò)完成分類,充分利用兩種網(wǎng)絡(luò)的優(yōu)點(diǎn)可能到達(dá)更好的識別效果。參考文獻(xiàn)[1]YangJM,KaoCY,Arobustevolutionaryalgorithmfortrainingneuralnetworks.NeuralComputingandApplication[M],2001.10214~230.[2]CiaccioE.J.,DunnS.M,AkayM,BinominalPatternRecognitionandinterpretationSystems(ReviewofApplications),IEEEEngineeringinMedicineandBiologyMagazine[M],1994,13.2:269~273,283.[3]吳佑壽,丁曉青.漢字識別原理方法與實(shí)現(xiàn)[M].北京:高等教育出版社,1992.105~121.[4]張立明.人工神經(jīng)網(wǎng)絡(luò)的模型及其應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,1992.156~170.[5]蔡元明.神經(jīng)網(wǎng)絡(luò)識別手寫體數(shù)字預(yù)處理后樣本空間凸集性研究,中國科學(xué)院半導(dǎo)體所碩士學(xué)位論文[D].保存地點(diǎn):華中科技大學(xué)圖書館,1995.6.[6]崔屹.圖像處理與分析--數(shù)學(xué)形態(tài)學(xué)方法及應(yīng)用[M].北京:科學(xué)出版社,2002.[7]金忠等.手寫體數(shù)字有效鑒別特征的抽取與識別,計(jì)算機(jī)研究與開展,36(12),1999,1484~1489.[8]飛思科技產(chǎn)品研發(fā)中心.MATLAB6.5輔助圖像處理.北京:電子工業(yè)出版社,2002.212~220.[9]飛思科技產(chǎn)品研發(fā)中心.MATLAB6.5輔助小波分析與應(yīng)用.北京:電子工業(yè)出版社,2002.[10]胡小峰.四維科技.VisualC++/MATLAB圖像處理與識別實(shí)用案例精選.北京:人民郵電出版社,2004:32~35.[11]MATLAB,信號處理的小波導(dǎo)引.北京:機(jī)械工業(yè)出版社,2002:58~59.[12]孫即祥等.模式識別中的特征提取與計(jì)算機(jī)視覺不變量.國防工業(yè)出版社,2001.9:115~140.[13]黃心嘩,王茂祥,富煌清,陸估人.基于結(jié)構(gòu)分析的手寫體數(shù)字識別算法.電子工程師[J],1999年第11期.[14]BernhardR.C,ShiY,Evolvingartificialneuralnetworks,In:Procof1998Int'lConf.onneuralnetworksandbrainpp.PL5-PL13.Beijing,P.R.China,1998.[15]Hu,J.,Yan,H.,Amodel-basedsegmentationmethodforhandwrittennumeralstrings,ComputerVisionandImageUnderstanding[N],70(3),1998,383~403.[16]從爽.面向MATLAB工具箱的神經(jīng)網(wǎng)絡(luò)理論與應(yīng)用.中國科學(xué)技術(shù)大學(xué)出版社[M],2003:19~35.[17]飛思科技產(chǎn)品研發(fā)中心,神經(jīng)網(wǎng)絡(luò)理論與MATLAB7實(shí)現(xiàn).北京:電子工業(yè)出版社[M],2005:42~51.致謝經(jīng)過半年的忙碌和工作,本次畢業(yè)論文設(shè)計(jì)已經(jīng)接近尾聲,作為一個本科生的畢業(yè)論文,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的催促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個設(shè)計(jì)是難以想象的。在論文寫作過程中,得到了李利明老師的親切關(guān)心和悉心指導(dǎo)。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,深深的感染著我。從課題的選擇到工程的最終完成,李老師都給了我很大的幫助,尤其是在最后的定稿階段,李老師不斷的給我提出珍貴的修改意見,才使得我這篇論文得以順利完成。再次向您表達(dá)我深深的感謝之情。另外,還要感謝四年來培養(yǎng)我的各位老師,感謝和我朝夕相處了四年的同學(xué),我的每一次成功都離不開你們的關(guān)心和幫助。衷心的謝謝你們!附錄附錄1預(yù)處理%%數(shù)字識別(I):ImagePre-processing%%ManualCroppingimg=imread('sample.bmp');imshow(img)imgGray=rgb2gray(img);imgCrop=imcrop(imgGray);imshow(imgCrop)imgLGE=imresize(imgCrop,5,'bicubic');imshow(imgLGE)imgRTE=imrotate(imgLGE,35);imshow(imgRTE)imgBW=im2bw(imgLGE,0.90455);imshow(imgBW)附錄2%%數(shù)字識別(II):AutomatingImagePre-processingI=imread('sample.bmp');imshow(I)pause;Igray=rgb2gray(I);imshow(Igray)pause;Ibw=im2bw(Igray,graythresh(Igray));imshow(Ibw)pause;Iedge=edge(uint8(Ibw));imshow(Iedge)pause;se=strel('square',2);Iedge2=imdilate(Iedge,se);imshow(Iedge2);pause;Ifill=imfill(Iedge2,'holes');imshow(Ifill)pause;[Ilabelnum]=bwlabel(Ifill);disp(num);Iprops=regionprops(Ilabel);Ibox=[Iprops.BoundingBox];Ibox=reshape(Ibox,[450]);imshow(I)pause;holdon;forcnt=1:50rectangle('position',Ibox(:,cnt),'edgecolor','r');end附錄3%%神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)與訓(xùn)練iningaSimpleNNfor%%classificationI=imread('sample.bmp');img=edu_imgpreprocess(I);forcnt=1:50bw2=edu_imgcrop(img{cnt});charvec=edu_imgresize(bw2);out(:,cnt)=charvec;endP=out(:,1:40);T=[eye(10)eye(10)eye(10)eye(10)];Ptest=out(:,41:50);net=edu_createnn(P,T);[a,b]=max(sim(net,Ptest));disp(b);附錄4%%圖形界面functionvarargout=charGUI(varargin)%CHARGUIM-fileforcharGUI.fig%CHARGUI,byitself,createsanewCHARGUIorraisestheexisting%singleton*.%H=CHARGUIreturnsthehandletoanewCHARGUIorthehandleto%theexistingsingleton*.%CHARGUI('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinCHARGUI.Mwiththegiveninputarguments.%CHARGUI('Property','Value',...)createsanewCHARGUIorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforecharGUI_OpeningFunctiongetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.AllinputsarepassedtocharGUI_OpeningFcnviavarargin.%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone%instancetorun(singleton)".%Seealso:GUIDE,GUIDATA,GUIHANDLES%EdittheabovetexttomodifytheresponsetohelpcharGUI%LastModifiedbyGUIDEv2.503-Jul-202317:55:35%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@charGUI_OpeningFcn,...'gui_OutputFcn',@charGUI_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%ExecutesjustbeforecharGUIismadevisible.functioncharGUI_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstocharGUI(seeVARARGIN)loaddata;assignin('base','net',net);%ChoosedefaultcommandlineoutputforcharGUIhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakescharGUIwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=charGUI_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%ExecutesonbuttonpressinpbLoad.functionpbLoad_Callback(hObject,eventdata,handles)%hObjecthandletopbLoad(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)[filename,pathname]=uigetfile({'*.bmp';'*.jpg';'*.gif';'*.*'},'PickanImageFile');S=imread([pathname,filename]);axes(handles.axes1);imshow(S);handles.S=S;guidata(hObject,handles);%ExecutesonbuttonpressinpbSelect.functionpbSelect_Callback(hObject,eventdata,handles)%hObjecthandletopbSelect(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)S=handles.S;axes(handles.axes1);img_crop=imcrop(S);axes(handles.axes2);imshow(img_crop);handles.img_crop=img_crop;guidata(hObject,handles);%ExecutesonbuttonpressinpbPreprocess.functionpbPreprocess_Callback(hObject,eventdata,handles)%hObjecthandletopbPreprocess(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)img_crop=handles.img_crop;imgGray=rgb2gray(img_crop);bw=im2bw(img_crop,graythresh(imgGray));axes(handles.axes3);imshow(bw);bw2=edu_imgcrop(bw);axes(handles.axes4);imshow(bw2);handles.bw2=bw2;guidata(hObject,handles);%ExecutesonbuttonpressinpbExtract.functionpbExtract_Callback(hObject,eventdata,handles)%hObjecthandletopbExtract(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)bw2=handles.bw2;charvec=edu_imgresize(bw2);axes(handles.axes5);plotchar(charvec);handles.charvec=charvec;guidata(hObject,handles);%ExecutesonbuttonpressinpbRecognize.functionpbRecognize_Callback(hObject,eventdata,handles)%hObjecthandletopbRecognize(seeGCBO)%ev
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度土方運(yùn)輸服務(wù)與建筑垃圾處理設(shè)施建設(shè)協(xié)議3篇
- 整流器設(shè)計(jì)課程設(shè)計(jì)
- 真空旋片泵課程設(shè)計(jì)
- 2024年網(wǎng)紅餐飲門面獨(dú)家轉(zhuǎn)讓合同協(xié)議3篇
- 數(shù)電課程設(shè)計(jì)模板
- 2024年度智能交通指示燈箱廣告設(shè)計(jì)與安裝合同9篇
- 校內(nèi)交通課程設(shè)計(jì)
- 2024年茶具品牌宣傳與廣告協(xié)議3篇
- 2024年溫室大棚蔬菜種植與農(nóng)業(yè)信息化建設(shè)服務(wù)合同3篇
- 2024年汽車租賃合同(含司機(jī)及個性化服務(wù))3篇
- 水性聚氨酯生產(chǎn)加工項(xiàng)目規(guī)劃設(shè)計(jì)方案
- 2024新版高考志愿填報(bào)協(xié)議書
- 園林綠化工程分部(子分部)工程、分項(xiàng)工程劃分
- 對初高中數(shù)學(xué)銜接問題進(jìn)行探究與實(shí)踐
- 新時代中國特色社會主義理論與實(shí)踐智慧樹知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學(xué)
- 2024中國私募股權(quán)市場出資人解讀報(bào)告-執(zhí)中+招商銀行+財(cái)聯(lián)社
- 中國續(xù)斷行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報(bào)告2024-2034版
- 詢價單模板范本
- 基于微信小程序的運(yùn)動健身管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 國標(biāo)《電化學(xué)儲能電站生產(chǎn)安全應(yīng)急預(yù)案編制導(dǎo)則》
- 施工升降機(jī)安裝方案
評論
0/150
提交評論