支持向量機(jī)的手寫數(shù)字識(shí)別_第1頁
支持向量機(jī)的手寫數(shù)字識(shí)別_第2頁
支持向量機(jī)的手寫數(shù)字識(shí)別_第3頁
支持向量機(jī)的手寫數(shù)字識(shí)別_第4頁
支持向量機(jī)的手寫數(shù)字識(shí)別_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、學(xué)院(部)數(shù)學(xué)科學(xué)學(xué)院題 目基于向量機(jī)的手寫數(shù)字識(shí)別目 錄摘 要1Abstract1第1章 緒論21.1 研究的動(dòng)機(jī)和目的21.2 研究的背景31.3 研究的內(nèi)容3第2章 系統(tǒng)理論42.1數(shù)字識(shí)別42.1.1簡介42.1.2識(shí)別難點(diǎn)52.1.3支持向量機(jī)(SVM)62.1.4支持向量機(jī)的優(yōu)缺點(diǎn)72.2 MATLAB編程82.2.1 matlab簡介82.2.2 計(jì)算機(jī)圖像存儲(chǔ)8第3章 識(shí)別分析93.1特征向量選擇93.2文件介紹93.3流程概述93.4 訓(xùn)練用例9第4章 識(shí)別演示10蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)4.1 代碼函數(shù)引用流程圖104.1.1 數(shù)據(jù)處理引用104.1.2 函數(shù)調(diào)用引用

2、104.2 代碼介紹114.2.1 main文件114.2.2 inputvar函數(shù)124.2.3 featureextract文件-見附錄134.2.4 svmTest函數(shù)134.2.5 svmTrain函數(shù)144.2.6 kernel函數(shù)144.3 識(shí)別效果分析154.4 課題展望18第5章 總結(jié)195.1分類總結(jié)195.2整體總結(jié)19參考文獻(xiàn)21致謝22用戶手冊23 摘要本論文主要介紹了基于向量機(jī)的手寫數(shù)字識(shí)別,實(shí)現(xiàn)通過輸入一部分手寫數(shù)字的訓(xùn)練集訓(xùn)練向量機(jī)以識(shí)別手寫數(shù)字。其中識(shí)別主要應(yīng)用了Matlab編程,實(shí)現(xiàn)圖像讀取與訓(xùn)練向量機(jī)。AbstractThis paper mainly in

3、troduces the recognition of handwritten numerals based on support vector machine, and realizes the recognition of handwritten numerals by training a training set of a part of handwritten numerals. Among them, recognition mainly applies Matlab programming to realize image reading and training vector

4、machine.關(guān)鍵詞:SVM、支持向量機(jī)、圖像識(shí)別、決策樹第一章緒論1.1研究的動(dòng)機(jī)和目的數(shù)字識(shí)別可要用于很多地方,最常用的莫過于驗(yàn)證碼識(shí)別生成、手寫數(shù)字識(shí)別等等。數(shù)字識(shí)別是文字識(shí)別的一種分類。通過實(shí)現(xiàn)數(shù)字識(shí)別有助于自動(dòng)話,對于人工智能、大數(shù)據(jù)分析的基礎(chǔ)數(shù)據(jù)提取、數(shù)據(jù)倉庫的搭建存儲(chǔ)有著不可或缺的重要作用。由于經(jīng)濟(jì)的發(fā)展,金融市場化進(jìn)程的日益加快,而目前,票據(jù)錄入等依然是人工處理方式如果可以通過訓(xùn)練向量機(jī),將訓(xùn)練后的支持向量存儲(chǔ),無疑可以實(shí)現(xiàn)脫機(jī)的數(shù)字識(shí)別,這樣大大有利于減少人工的處理,以便于效率的提高。因此手寫數(shù)字的識(shí)別研究有著十分重要的意義和價(jià)值。此外,數(shù)字識(shí)別可以推廣的英文字母的識(shí)別、漢

5、字拼音的識(shí)別,因此數(shù)字識(shí)別逐漸是模式識(shí)別的一個(gè)熱門分支。從很久以前,就不斷有學(xué)者在研究,并做出了很多重要的貢獻(xiàn)和很多良好算法的分享。目前手寫數(shù)字識(shí)別主要的應(yīng)用領(lǐng)域有:(1)數(shù)字識(shí)別被應(yīng)用在大規(guī)模數(shù)據(jù)統(tǒng)計(jì)中。例如,人口普查、成績單錄入、行業(yè)年檢、財(cái)務(wù)報(bào)表錄入等應(yīng)用中,需要輸入大量的數(shù)據(jù),以前完全靠手工輸入,很耗費(fèi)人力物力,如果用計(jì)算機(jī)能自動(dòng)話識(shí)別將減少人力財(cái)力。(2)手寫數(shù)字識(shí)別被應(yīng)用在財(cái)務(wù)、稅務(wù)、金融領(lǐng)域應(yīng)用。但是因?yàn)榻鹑谛袠I(yè)要求很好,錯(cuò)一點(diǎn)損失將十分巨大,對于手寫數(shù)字識(shí)別的效率準(zhǔn)確性將要求很高,就必須要有一個(gè)很好的識(shí)別器。(3)手寫數(shù)字識(shí)別被應(yīng)用到郵件分揀系統(tǒng)中。1.2 研究的背景利用計(jì)算機(jī)

6、自動(dòng)識(shí)別手寫數(shù)字,是模式識(shí)別應(yīng)用的一個(gè)重要領(lǐng)域。人們在生產(chǎn)和生活中,要處理大量的文字、報(bào)表和文本。為了提高處理效率,從上世紀(jì)開始探討一般文字識(shí)別方法。60年代后出現(xiàn)了手寫體文字識(shí)別機(jī),其識(shí)別精度和機(jī)器性能都基本上能滿足要求。因此,開始逐漸提高識(shí)別要求,從最簡單的識(shí)別到后來70年代,主要研究文字識(shí)別的基本理論和研制高性能的文字識(shí)別機(jī),并著重于漢字識(shí)別的研究。以至與現(xiàn)在對于人臉、汽車等圖片的識(shí)別。因此就文字識(shí)別中的數(shù)字識(shí)別進(jìn)行研究。1.3研究內(nèi)容1.Matlab編程1)讀取圖像2)訓(xùn)練向量機(jī)3)驗(yàn)證手寫數(shù)字識(shí)別效果2.原理解釋1) SVM向量機(jī)算法2) 計(jì)算機(jī)圖像存儲(chǔ)第二章系統(tǒng)理論2.1數(shù)字識(shí)別2

7、.1.1簡介圖像識(shí)別,是指利用計(jì)算機(jī)對圖像進(jìn)行數(shù)據(jù)讀取,分析其特征、進(jìn)行模式識(shí)別的方法?,F(xiàn)有的圖像分割的方法有許多種,譬如有閾值分割,邊緣檢測,區(qū)域提取等。通過對手寫數(shù)字圖片的灰度處理,可以減少圖片噪音的污染。從圖像的類型來分有:灰度圖像分割和紋理圖像分割等。通過邊緣檢測可以區(qū)分手寫數(shù)字的邊緣,增加訓(xùn)練的特征信息量。數(shù)字識(shí)別屬于圖像識(shí)別的一個(gè)分支。因此,本文將依次介紹圖像識(shí)別、數(shù)字識(shí)別的概念。對于數(shù)字識(shí)別有多種方式算法,例如神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等。本文采用基于向量機(jī)的圖像識(shí)別技術(shù),因此需要著重介紹研究SVM的概念與算法。SVM的研究國內(nèi)外有很大的研究,對于數(shù)字識(shí)別有很多介紹。也有

8、很多開源的訓(xùn)練集,方便于算法的實(shí)現(xiàn)。2.1.2識(shí)別難點(diǎn)一般情況下,當(dāng)涉及到數(shù)字識(shí)別時(shí),人們往往要求識(shí)別系統(tǒng)有很高的識(shí)別精度,特別是金額的數(shù)字識(shí)別時(shí),更是如此。因此針對這類問題,就要求手寫數(shù)字識(shí)別系統(tǒng)具有高可靠性和高識(shí)別率,因此其難點(diǎn)主要在于以下幾方面: 1)數(shù)字的字形信息量很小,對于手寫數(shù)字圖片,如果尺寸過小,而且根據(jù)其提取特征向量方式不同,會(huì)在訓(xùn)練數(shù)據(jù)時(shí)就開始產(chǎn)生會(huì)差。此外,不同數(shù)字寫法字形相差又不大,使得準(zhǔn)確區(qū)分某些數(shù)字相當(dāng)困難。 2)數(shù)字雖然只有0-9的10種,而且筆劃簡單,但書寫上帶有明顯的地域特性,同一數(shù)字寫法千差萬別,不同地域的人寫法也不相同,很難做到通用的特征向量提取方式,以便于

9、訓(xùn)練。3)在實(shí)際應(yīng)用中,相比有語義、復(fù)雜的文字來說,對數(shù)字的單字識(shí)別正確率的要求高很多。文字組合一般都存在上下文關(guān)系,但數(shù)字很少?zèng)]有上下文關(guān)系,所以每個(gè)孤立數(shù)字的識(shí)別都至關(guān)重要。此外數(shù)字識(shí)別經(jīng)常涉及的財(cái)會(huì)、金融領(lǐng)域,對手寫數(shù)字識(shí)別系統(tǒng)的要求不僅僅是單純的高正確率。 如果沒法達(dá)成,還是需要人工進(jìn)行輔助,效率并不會(huì)增加很多。4)由于脫機(jī)手寫數(shù)字的輸入只是簡單的一副圖像,它缺少了手寫筆畫的信息,在缺乏信息的基礎(chǔ)上進(jìn)行識(shí)別更增加了難度。2.1.3支持向量機(jī)(SVM)支持向量機(jī)是Cortes和Vapnik于1995年首先提出的。它在解決小樣本、非線性及高維模式識(shí)別中表現(xiàn)出優(yōu)勢,并能夠推廣應(yīng)用到函數(shù)擬合等

10、其他機(jī)器學(xué)習(xí)問題中。VC維是一種度量,即為數(shù)據(jù)問題的復(fù)雜程度。SVM解決問題的時(shí)候,和樣本的維數(shù)是無關(guān)的(甚至測試數(shù)據(jù)是上萬維的都可以,但是這使得本質(zhì)上使用二次規(guī)劃的SVM處理效率很低下,對于高位數(shù)據(jù)還是適合用神經(jīng)網(wǎng)絡(luò)來動(dòng)態(tài)處理。當(dāng)然的,對于大多數(shù)問題,SVM還是很適合用來解決文本分類的問題。對于高維度的也可以通過引用核函數(shù)進(jìn)行降維處理)。統(tǒng)計(jì)學(xué)習(xí)的目標(biāo)從測試數(shù)據(jù)中,帶入相應(yīng)公式計(jì)算。得出在相應(yīng)損失函數(shù)下誤差最小的參數(shù)值,SVM正是這樣一種努力最小化結(jié)構(gòu)風(fēng)險(xiǎn)的算法。小樣本的小并非數(shù)量少(更多的樣本幾乎總是能帶來更好的效果),而是說與問題的復(fù)雜度比起來。SVM因?yàn)槭嵌我?guī)劃處理,因此數(shù)據(jù)太多只會(huì)

11、導(dǎo)致算法復(fù)雜,換句話說算法要求的樣本數(shù)是相對比較少的。非線性,是指SVM擅長應(yīng)付樣本數(shù)據(jù)線性不可分的情況,主要通過松弛變量(也有人叫懲罰變量)和核函數(shù)技術(shù)來實(shí)現(xiàn)。將高維不可分的轉(zhuǎn)為其他空間,使得可用超平面分割。線性分類器是最簡單也很有效的分類器形式??梢詮拇送频絊VM的核心算法。用一個(gè)二維空間里僅有兩類樣本的分類問題來舉個(gè)小例子。如圖所示,對于兩類數(shù)據(jù)可以很輕松的用一條直線將他們分割開來。圖2-1   SVM簡單二位分類示意圖SVM它本質(zhì)上即是一個(gè)分類方法,求解過程中會(huì)涉及到一系列最優(yōu)化或凸二次規(guī)劃等問題。至于核函數(shù),是為處理非線性情況,若直接映射到高維計(jì)算恐維度爆炸,故在

12、低維計(jì)算,等效高維表現(xiàn)。最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘,計(jì)算誤差,不斷擬合并使得這些數(shù)據(jù)與實(shí)際數(shù)據(jù)之間誤差的平方和為最小。常常將最小二乘最為損失函數(shù),取其誤差最為判斷標(biāo)準(zhǔn)。 2.1.4SVM的優(yōu)缺點(diǎn)優(yōu)點(diǎn):1)SVM本質(zhì)上是一種非線性映射,對于高維看上去沒有辦法的數(shù)據(jù),提高合適的映射,用內(nèi)積核函數(shù)替代高維空間的非線性映射,可以減少維度災(zāi)難,實(shí)現(xiàn)數(shù)據(jù)的分類。2) SVM目標(biāo)就是在特征空間中尋找到最有超平面,通過損失函數(shù),最大化分類邊際實(shí)現(xiàn)數(shù)據(jù)的劃分處理。3)支持向量是SVM的訓(xùn)練結(jié)果,在SVM分類決策中起決定性作用。SVM算法魯棒性強(qiáng),僅

13、僅需要存儲(chǔ)支持向量,需要的空間小。缺點(diǎn):1) SVM算法對大規(guī)模訓(xùn)練樣本難以實(shí)施。同時(shí),SVM是一種二次規(guī)劃求解支持向量,如果訓(xùn)練樣本維度數(shù)目過大,求解二次規(guī)劃因?yàn)槭瞧椒郊?jí)的運(yùn)算時(shí)間和存儲(chǔ)規(guī)模,將很難計(jì)算。2) 用SVM解決多分類問題存在困難。因?yàn)镾VM是0、1的劃分,對于大規(guī)模分類將運(yùn)算復(fù)雜。因?yàn)槭謱憯?shù)字僅僅設(shè)計(jì)10個(gè)數(shù)字,最多需要訓(xùn)練10個(gè)向量機(jī),因此還可以,但是對于例如人臉識(shí)別,因?yàn)榭赡艿姆N類太多,將無法使用。2.2Matlab編程2.2.1Matlab簡介MATLAB作為數(shù)學(xué)專業(yè)常用的一款軟件。其功能在普通變成、矩陣處理、圖像處理、神經(jīng)網(wǎng)絡(luò)訓(xùn)練,甚至包括可視化編程、仿真訓(xùn)練等方面均具有

14、不可忽視的地位。Matlab的基本單位是矩陣,其編程語言的表達(dá)時(shí)偏向python、js這種,不需要預(yù)先定義變量。指令表達(dá)式很像數(shù)學(xué)符號(hào),因此對于相關(guān)專業(yè)的來說,很容易上手。而且因?yàn)閙atlab自帶編譯器的強(qiáng)大和help命令的完善文檔(雖然是英文),以及豐富工具箱,對于新手也能很好的入門。不光如此,matlab利用接口,可要實(shí)現(xiàn)對于其他語音的支持與調(diào)用。例如java、c、Fortran的語言支持,很好的彌補(bǔ)了自身的不足。因?yàn)閙atlab的使用廣泛,在網(wǎng)絡(luò)上有很多開源的資源,可以供我們研究很下載。不光如此,這些工具包的代碼是開源的(當(dāng)然不能用于商業(yè)目的),對于學(xué)歷資深、編程水平很高的人來說,可以自

15、由研究修改這些源代碼,具有極大的自由度和操縱感。2.2.2計(jì)算機(jī)圖像存儲(chǔ) 圖片在計(jì)算機(jī)中以最小單元像素的方式進(jìn)行存儲(chǔ)。由于手寫數(shù)字識(shí)別不涉及顏色,因此采用灰度圖片(256級(jí)灰度,對于黑色的標(biāo)記為255,對于白色的標(biāo)記0)。如果手寫數(shù)字不是灰度的,可以通過相應(yīng)算法,例如整數(shù)方法移位方法等將其轉(zhuǎn)為灰度照片。對于訓(xùn)練集也是采用灰度進(jìn)行存儲(chǔ)。對于手寫數(shù)字主要注重的是數(shù)字圖片的輪廓。因?yàn)榕臄z光線等誤差,對于背景可能不是純白色,因此對于圖像將判斷灰度大于130的即視為黑色(手寫數(shù)字的繪制線)。第三章 識(shí)別分析31 特征向量選擇1)因?yàn)槭謱憯?shù)字識(shí)別相對較為簡單,只有0-9,因此采用將圖片分為8個(gè)區(qū)域,計(jì)算每

16、個(gè)區(qū)域的密度作為特征向量的維度3.2文件介紹1)main文件,讀取圖片的特征向量,依次進(jìn)行訓(xùn)練測試2)inputvar函數(shù),提取圖片特征3)featureextract將一些列圖片轉(zhuǎn)為特征向量存儲(chǔ)到本地中4)svmTrain輸入特征向量,訓(xùn)練0-9的10個(gè)svm,保存向量機(jī)的參數(shù)5)svmTest測試向量機(jī),依次用上面得到的10個(gè)svm測試,分析結(jié)果6)kernel向量機(jī)的核函數(shù)3.3流程概述1)讀取BMP圖像格式文件,提取圖片特征2)讀取圖片特征訓(xùn)練向量機(jī)3)測試向量機(jī)3.4 訓(xùn)練用例圖3-1  用于訓(xùn)練向量機(jī)的部分?jǐn)?shù)字圖片 第四章 識(shí)別演示4.1 函數(shù)引用流程圖4.1.

17、1數(shù)據(jù)處理引用Featureextra文件讀取圖片數(shù)據(jù)提取圖片特征Inputvar函數(shù)去讀圖片數(shù)據(jù),保存到本地P:訓(xùn)練圖片特征向量T:訓(xùn)練圖片的表示符號(hào)代表數(shù)字0-9RP: 測試圖片特征向量RT: 測試圖片的表示符號(hào)代表數(shù)字0-94.1.2函數(shù)調(diào)用引用Main文件作為入口svmTrain提取圖片訓(xùn)練向量機(jī),得到0-9的10個(gè)數(shù)字的10類向量機(jī)SvmTest,測試SVM的10個(gè)向量機(jī),根據(jù)不同測試特征向量帶入到10個(gè)向量機(jī)中看識(shí)別效果4.2 代碼介紹4.2.1 main文件按照識(shí)別分析中的依次調(diào)用流程。%主函數(shù)clear all;close all;C = 10;kertype = 'r

18、bf'%訓(xùn)練樣本load featureextract; epsilon=3;%依次訓(xùn)練10個(gè)svmfor i=0:9 X=p;%訓(xùn)練樣本d*n矩陣,n為樣本個(gè)數(shù),d為特征向量個(gè)數(shù) Y=r; %訓(xùn)練目標(biāo)1*n矩陣,n為樣本個(gè)數(shù),值為+1或-1 for ii=1:size(Y,2) if(Y(ii)=i) Y(ii)=1; else Y(ii)=-1; end end svm = svmTrain(X,Y,kertype,C,epsilon); SVM(i+1)=svm; %plot(svm.Xsv(1,:),svm.Xsv(2,:),'ro');%支持向量end %測試

19、,tp、tr測試數(shù)據(jù)集raccuracy=zeros(size(tp,2),10);rY=zeros(size(tp,2),10);rscore=zeros(size(tp,2),10);for i=1:size(tp,2) tX=tp(:,i); tY=1; for S=0:9 svm=SVM(S+1); result(i,S+1) = svmTest(svm, tX, tY, kertype); raccuracy(i,S+1)=result(i,S+1).accuracy; rY(i,S+1)=result(i,S+1).Y; rscore(i,S+1)=result(i,S+1).sc

20、ore; endend%繪制誤差for i=1:size(tp,2) hold on; d=i-1; if(mod(i-1,2)=0) d=d-1; end plot(d-1)/2,max(rscore(i,:),'ro'); text(d-1)/2+0.3,max(rscore(i,:),num2str(find(rscore(i,:)=max(rscore(i,:)-1); plot(d-1)/2,min(rscore(i,:),'g+'); text(d-1)/2+0.3,min(rscore(i,:),num2str(find(rscore(i,:)=m

21、in(rscore(i,:)-1);endtitle('誤差');4.2.2 inputvar函數(shù)function y=inputvar(I)% inputvar 特征提取 % 參數(shù)說明:% 輸入 長16像素寬8像素的手寫數(shù)字圖片% 輸出 該圖片的特征向量b = find(I>130);%I:讀入的待辨認(rèn)的數(shù)字圖片,find(I>130):找出I中大于130的坐標(biāo),返回的是線性索引 I(b) = 1; % 對數(shù)字圖片進(jìn)行二值化處理,減少數(shù)字圖片的噪音污染。m,n = size(I);%獲取圖片尺寸,m=16,n=8p = zeros(1,17); for k=1:4

22、 for i=1+(k-1)*4:m/4+(k-1)*4 for j=1:n/2 if I(i,j)=0 p(k) = p(k)+1; else p(k) = p(k); end end for j=n/2+1:n if I(i,j)=0 p(k+4) = p(k+4)+1; else p(k+4) = p(k+4); end end endendp(9) = p(1)+p(2);p(10) = p(3)+p(4);p(11) = p(5)+p(6);p(12) = p(7)+p(8);p(13) = p(1)+p(5);p(14) = p(2)+p(6);p(15) = p(3)+p(7);

23、p(16) = p(4)+p(8);p(17) = p(9)+p(10)+p(11)+p(12);y = p/128; 4.2.3 featureextract文件-見附錄4.2.4 svmTrain函數(shù)function svm = svmTrain (X,Y,ketype,C)% 訓(xùn)練向量機(jī)函數(shù)% 參數(shù)說明% 輸入: X:特征向量,Y:1和-1的標(biāo)識(shí)符,kertype:核函數(shù)標(biāo)識(shí)符liner或rbf,C:最大約束% 輸出:訓(xùn)練好的向量機(jī)svm,struct數(shù)據(jù),內(nèi)含向量機(jī)的參數(shù)options = optimset; options.LargeScale = 'off'opti

24、ons.Display = 'off' n = length(Y);H = (Y'*Y).*kernel(X,X,ketype);f = -ones(n,1); A = ;b = ;Aeq = Y;beq = 0;lb = zeros(n,1); ub = C *ones(n,1);a0 = zeros(n,1); a,fval,eXitflag,output,lambda = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); e= 1e-8; sv_label = find(abs(a)>e); %0<a<a(m

25、ax)則認(rèn)為x為支持向量 svm.a = a(sv_label);svm.Xsv = X(:,sv_label);svm.Ysv = Y(sv_label);svm.svnum = length(sv_label);4.2.5 svmTest函數(shù)function result = svmTest(svm, Xt, Yt, kertype)% 訓(xùn)練向量機(jī)函數(shù)% 參數(shù)說明% 輸入: X:特征向量,Y:1和-1的標(biāo)識(shí)符,kertype:核函數(shù)的標(biāo)識(shí)符或rbf% 輸出:訓(xùn)練好的向量機(jī)svm,struct數(shù)據(jù),內(nèi)含向量機(jī)的參數(shù)temp = (svm.a'.*svm.Ysv)*kernel(svm

26、.Xsv,svm.Xsv,kertype);total_b = svm.Ysv-temp;b = mean(total_b);w = (svm.a'.*svm.Ysv)*kernel(svm.Xsv,Xt,kertype);result.score = w + b;Y = sign(w+b);result.Y = Y;result.accuracy = size(find(Y=Yt)/size(Yt);4.2.6 kernel函數(shù)function K = kernel(X,Y,type)% 訓(xùn)練向量機(jī)函數(shù)% 參數(shù)說明% 輸入: X:特征向量,Y:1和-1的標(biāo)識(shí)符,type:核函數(shù)標(biāo)識(shí)符

27、% 輸出:核函數(shù)映射矩陣switch typecase 'linear' K = X'*Y;case 'rbf' delta = 5; delta = delta*delta; XX = sum(X'.*X',2); YY = sum(Y'.*Y',2); XY = X'*Y; K = abs(repmat(XX,1 size(YY,1) + repmat(YY',size(XX,1) 1) - 2*XY); K = exp(-K./delta);end4.3識(shí)別效果分析(1)訓(xùn)練向量機(jī)圖4-1 

28、 支持向量圖片備注:紅色的點(diǎn)表示支持向量(2)測試向量機(jī),對每個(gè)數(shù)字進(jìn)行0-9的向量機(jī)分類,得到誤差顯示,繪制,選取最小誤差作為測試結(jié)果(3)調(diào)整圖片備注:1:橫坐標(biāo)依次表示0-9的向量機(jī)識(shí)別結(jié)果,縱坐標(biāo)每兩個(gè)依次代表數(shù)字0-9。0表示相應(yīng)向量機(jī)識(shí)別不出該數(shù)字,1表示相應(yīng)向量機(jī)判斷該圖片為對應(yīng)的手寫數(shù)字。2':對于下文圖片坐標(biāo)(x,y),x表示第x號(hào)訓(xùn)練的向量機(jī)(代表識(shí)別數(shù)字x-1),y代表測試集的數(shù)字索引。因?yàn)?-9一共10個(gè)數(shù)字,每個(gè)數(shù)字有2個(gè)測試集,所以一共20位。將y/2-0.5再向下取整,即為代表的數(shù)字。3核函數(shù)為linear代表線性核函數(shù),rbf代表高斯核函數(shù)&#

29、160;1)當(dāng)刪選支持向量誤差epsilon較小時(shí),將無法區(qū)分圖4-2 epsilon小于2時(shí),核函數(shù)為rbf解釋:0表示未被識(shí)別出來,所有數(shù)字測試集均未被識(shí)別出來2)提高誤差比較epsilon的大小??梢钥闯龃藭r(shí)還只能識(shí)別出少量數(shù)字,其中對于數(shù)字1和數(shù)字7出現(xiàn)了誤差,數(shù)字7被識(shí)別成了數(shù)字1。圖4-3  epsilon等于3時(shí),核函數(shù)為rbf解釋:0表示未被識(shí)別出來,(2,3)、(2,15)、(2,16)為1表示數(shù)字1、7被2號(hào)向量機(jī)(代表數(shù)字1)識(shí)別出來。3)改變核函數(shù)為線性??梢园l(fā)現(xiàn)識(shí)別效果好了很多,但是也可以發(fā)現(xiàn)對于數(shù)字0被識(shí)別成了數(shù)字3,以及數(shù)字8被識(shí)別成

30、了數(shù)字3、數(shù)字8和數(shù)字9。數(shù)字1被很好的識(shí)別出來了。圖4-4  epsilon等于3時(shí),核函數(shù)為linear解釋:(2,3)、(2,15)、(2,16)代表數(shù)字1的訓(xùn)練向量機(jī)識(shí)別出了數(shù)字1和7。(4,2)、(4,17)、(4,18)表示數(shù)字3的向量機(jī)識(shí)別出數(shù)字0和數(shù)字8.(9,17)、(9,18)、(10,17)、(10,18)分別表示數(shù)字8和9的向量機(jī)識(shí)別出數(shù)字8和94)結(jié)果比較,線性核函數(shù)識(shí)別效果較好,因此重新設(shè)置誤差epsilon比較??梢园l(fā)現(xiàn)數(shù)字8被很好的識(shí)別出來了圖4-5  epsilon小于2時(shí),核函數(shù)為linear解釋:(9,17)、(9,

31、18)表示數(shù)字8被代表數(shù)字8的9號(hào)向量機(jī)很好的識(shí)別了出來 5)當(dāng)誤差提高時(shí),能識(shí)別的較多,但是誤差也出現(xiàn)得更大。與核函數(shù)沒有關(guān)系,誤差依舊出現(xiàn)了。圖4-6  epsilon等于3時(shí),核函數(shù)為linear6)繼續(xù)增加誤差。所以數(shù)字均可能被識(shí)別成7圖4-7  epsilon大于等于5時(shí),核函數(shù)為linear 7)增加訓(xùn)練集數(shù)量,結(jié)果會(huì)更加好4.4 課題展望數(shù)字識(shí)別,在很多領(lǐng)域例如超市、銀行等顯得非常重要。一個(gè)好的識(shí)別器,優(yōu)秀的算法,可以提高識(shí)別效率,更方便人類的使用,減少機(jī)械重復(fù)的工作,實(shí)現(xiàn)自動(dòng)化、全自動(dòng)。通過對于數(shù)字識(shí)別的研究分析,可以拓展到對于圖片、對于

32、文字、對于人臉的識(shí)別分析。這些在現(xiàn)在以及未來都有著極大的應(yīng)用市場。從最初的神經(jīng)網(wǎng)絡(luò)、到向量機(jī)、再到卷積神經(jīng)網(wǎng)絡(luò),基于圖像識(shí)別的算法越來越多、越來越好。隨著量子計(jì)算機(jī)的發(fā)展,一些高緯難解的特征向量將可以被提取使用,隨著科技的發(fā)展,數(shù)字識(shí)別、圖像識(shí)別,將會(huì)進(jìn)入極大的發(fā)展之中。雖然本論文是數(shù)字識(shí)別,但是完全可要擴(kuò)展到圖像識(shí)別。現(xiàn)在大數(shù)據(jù)的發(fā)達(dá),有充足的數(shù)據(jù)便于神經(jīng)網(wǎng)絡(luò)、向量機(jī)等的訓(xùn)練與提高,必將提高自動(dòng)化識(shí)別效率。隨著自動(dòng)話識(shí)別能力的提高,當(dāng)下很火的人工智能、自動(dòng)化汽車,還是3D游戲領(lǐng)域,均將隨之不如極大的發(fā)展中。相信手寫數(shù)字識(shí)別只是剛剛?cè)腴T的契機(jī),之后還需要對于圖像領(lǐng)域做出更大的研究與貢獻(xiàn)。第五章

33、總結(jié)5.1 分類總結(jié)通過分析,我們可以知道,對于手寫數(shù)字來說,核函數(shù)應(yīng)該采用線性的即可,過于復(fù)雜的核函數(shù)映射反而會(huì)導(dǎo)致分類誤差。對于訓(xùn)練向量機(jī),訓(xùn)練集的大小十分重要。本文僅有40個(gè)訓(xùn)練圖片,其中還有部分區(qū)別不大,導(dǎo)致在設(shè)定較小誤差和線性核函數(shù)下,只有數(shù)字8能被完美識(shí)別出來。本文采用的特征是將原本圖片分為8個(gè)部分,提取密度。如果采用卷積神經(jīng)網(wǎng)絡(luò),可以對特征進(jìn)一步提取,抑或是通過圖像分割,獲取數(shù)字的連通分量作為一個(gè)關(guān)鍵的特征向量,相信結(jié)果會(huì)更加好。本文的處理還有很大發(fā)展的空間與技術(shù)。有如下幾個(gè)關(guān)鍵點(diǎn):1)訓(xùn)練的數(shù)目2)訓(xùn)練的圖片的質(zhì)量好壞3)圖片特征向量的提取方法4)訓(xùn)練向量機(jī)的數(shù)目5)每一個(gè)關(guān)鍵

34、點(diǎn)均有不同程度的算法存在,選取好的算法將極大的優(yōu)化訓(xùn)練效果。5.2 整體總結(jié)這次畢業(yè)課題的設(shè)計(jì)包括畢業(yè)論文的寫作和圖象讀取數(shù)字識(shí)別分類的開發(fā)。通過畢業(yè)設(shè)計(jì),我不光對向量機(jī)有了詳細(xì)的理解,更是對于數(shù)據(jù)處理有了很大的認(rèn)識(shí)。從最初的算法,到后續(xù)提取特征向量,再到最后代碼實(shí)現(xiàn),其中經(jīng)歷了很多不知辛苦,但是還是,最終吧書中的理論運(yùn)用到了實(shí)踐中。相信這對我以后的工作學(xué)習(xí)將具有重要意義。 在這次畢業(yè)設(shè)計(jì)的整個(gè)過程中,我有以下幾點(diǎn)體會(huì):1) 一定要做好計(jì)劃,不然很容易亂成一團(tuán)沒有章法。2) 不光需要注意理論的學(xué)習(xí),還必須得提高動(dòng)手能力以便于代碼、檢測的最后完成3) 雖然編程語言很多,設(shè)計(jì)圖像處理有python

35、、有matlab、有c+等等,也有大量開源的庫和函數(shù),但是他們核心的思想是沒有變化的都是其相應(yīng)的核心算法。4) 對于畢業(yè)設(shè)計(jì)中的問題需要不斷思考反省、才能不斷進(jìn)步,對于挫折不應(yīng)該選擇逃避,而是迎難而上。5) 虛心向老師,同學(xué)請教,在設(shè)計(jì)過程中,對于支持向量機(jī)的算法與代碼最初不是很熟悉,后來也是通過不斷學(xué)習(xí)不斷研究前人的知識(shí)才得以完成。通過對他們的學(xué)習(xí),得以不斷完善自我,不斷提高,不斷進(jìn)步。參考文獻(xiàn)1 李慧穎,傅德勝. 微機(jī)指紋自動(dòng)識(shí)別系統(tǒng)軟件設(shè)計(jì)J. 計(jì)算機(jī)應(yīng)用研究. 2000(12)2 葉衛(wèi)東,李冠英. 自由手寫體數(shù)字識(shí)別的一種方法J. 現(xiàn)代計(jì)算機(jī). 1998(10)3 王雯,施鵬飛. 多層分組神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識(shí)別J. 上海交通大學(xué)學(xué)報(bào). 1998(09)4 朱學(xué)芳,石青云,程民德. 無限制手寫數(shù)字自動(dòng)識(shí)別系統(tǒng)的研究J. 高技術(shù)通訊. 1998(03)5 杜敏,辛大欣. 基于混合特征提取的手寫體數(shù)字識(shí)別方法的研究J. 西安交通大學(xué)學(xué)報(bào). 1996(09)6 張平,潘保昌,汪同慶,鄭勝林,李健. 一種自由手寫體數(shù)字識(shí)別方法研究J. 光電工程. 1995(03)7 譚鶴良,謝兵兵,陳明武. 自由手寫阿拉伯?dāng)?shù)字識(shí)別方法與系統(tǒng)J. 中文信息學(xué)報(bào). 1993(04)8 陳汗青,萬艷玲

溫馨提示

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

評論

0/150

提交評論