《基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)8200字(論文)》_第1頁
《基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)8200字(論文)》_第2頁
《基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)8200字(論文)》_第3頁
《基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)8200字(論文)》_第4頁
《基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)8200字(論文)》_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于支持向量機(SVM)算法的手寫數(shù)字識別系統(tǒng)的實現(xiàn)摘要在銀行、稅務(wù)、財政、金融等領(lǐng)域,每天會產(chǎn)生大量的手寫數(shù)字,人工錄入工作量過大且無法保證準(zhǔn)確率,需要機器及時準(zhǔn)確地識別,因此研究高效率且高準(zhǔn)確率的手寫數(shù)字識別方式是非常有必要的。相較于其他手寫文字,手寫阿拉伯?dāng)?shù)字因為具有國際通用性,所以研究手寫數(shù)字識別方法易推廣且具有廣泛的應(yīng)用前景和理論意義??捎糜谑謱憯?shù)字識別的算法很多,本課題在分析了卷積神經(jīng)網(wǎng)絡(luò)(CNN)和支持向量機(SVM)算法后選擇了SVM算法,且選用了在手寫數(shù)字識別時經(jīng)常對算法準(zhǔn)確度進(jìn)行測試的MNIST數(shù)據(jù)集測試算法,在MATLAB開發(fā)環(huán)境中進(jìn)行編程,通過處理MNIST數(shù)據(jù)集,灰度化、二值化,HOG特征提取,訓(xùn)練和評估SVM分類器,使SVM算法在手寫數(shù)字識別上達(dá)到了接近99%的準(zhǔn)確度。并且利用了GUI面板,演示了手寫數(shù)字的識別,準(zhǔn)確預(yù)測了結(jié)果。證明了SVM算法作為機器學(xué)習(xí)中非常經(jīng)典的算法,對于復(fù)雜程度不高、數(shù)據(jù)量也相對較少的識別任務(wù),亦可以很好地完成。關(guān)鍵詞:手寫數(shù)字識別;CNN;SVM;MNIST數(shù)據(jù)集目錄TOC\o"1-3"\h\u3820第一章引言 引言1、研究背景及意義手寫數(shù)字識別研究的目的是設(shè)計一種有效的方法,用來識別用戶通過數(shù)字設(shè)備提交的手寫數(shù)字,本課題要求對目前的手寫識別技術(shù)進(jìn)行研究,設(shè)計實現(xiàn)手寫數(shù)字識別。生活中很多場合都會涉及到大量手寫數(shù)字,如在人口普查、財務(wù)報表等應(yīng)用中,均會產(chǎn)生大量的數(shù)據(jù)需要統(tǒng)計輸入,如果只靠人工錄入,不僅準(zhǔn)確率無法保證,時間成本和人力成本都會大大增加,所以研究一種高效準(zhǔn)確的機器識別方法是非常有必要的。隨著社會的發(fā)展,快遞郵件分揀等領(lǐng)域利用手寫數(shù)字識別+人工輔助識別的識別方法將會越來越普遍,大大提高生產(chǎn)生活效率。手寫數(shù)字識別的研究成果不僅可以在現(xiàn)實生活中得到廣泛的應(yīng)用,解決很多問題,在理論研究方面也有重要意義。阿拉伯?dāng)?shù)字是唯一全球通用的數(shù)字語言,對其研究得出的方法具有通用性,研究成果也可以相互借鑒啟發(fā),雖然經(jīng)過多年研究后手寫數(shù)字識別的原理已經(jīng)不算神秘和復(fù)雜,但其研究方法有助于深入分析及驗證一些新的理論,也可推廣到其他字符的識別問題。。2、研究現(xiàn)狀文字識別的研究起源于二十世紀(jì)六十年代,主要由美國的IBM公司負(fù)責(zé)該工作。我國在手寫體數(shù)字識別的研究方面雖然沒有走在最前沿,也取得了一定的成果。如婁正良等人提出了一種新的基于小波變換和局部傅立葉變換的脫機手寫數(shù)字特征提取方法,在MNIST數(shù)據(jù)集中該方法取得了較好的識別效果。常見的手寫數(shù)字識別方法有卷積神經(jīng)網(wǎng)絡(luò)、支持向量機、貝葉斯算法、近鄰算法、人工神經(jīng)網(wǎng)絡(luò)等。第一章CNN、SVM算法原理1.1卷積神經(jīng)網(wǎng)絡(luò)1.1.1卷積神經(jīng)網(wǎng)絡(luò)概述手寫數(shù)字識別一直是機器學(xué)習(xí)、深度學(xué)習(xí)的一個研究熱點,目前卷積神經(jīng)網(wǎng)絡(luò)(CNN)因為識別準(zhǔn)確率高、算法較為先進(jìn)而被廣泛應(yīng)用。卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)處理方式和數(shù)學(xué)中的卷積類似,因此得名,是一種前饋型神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò),CNN模型眾多,LeNet5就是一個經(jīng)典的CNN模型,也是此后其他CNN模型的基本組成部分。卷積神經(jīng)網(wǎng)絡(luò)組成部分有:輸入層、卷積層、池化層、全連接層。這些層使CNN具有局部連接、權(quán)重共享、空間上的下采樣等特點。對于大數(shù)據(jù)量的圖片,處理的成本會很大,效率也低,卷積神經(jīng)網(wǎng)絡(luò)可以很好地將其降維成小數(shù)據(jù)量。圖像在數(shù)字化的過程中容易丟失特征,卷積神經(jīng)網(wǎng)絡(luò)可以有效保留圖片特征。局部連接:指在卷積層輸入特征圖和輸出特征圖的神經(jīng)元是局部相連的,然后經(jīng)過卷積核運算學(xué)習(xí)輸入特征圖的局部特征。卷積神經(jīng)網(wǎng)絡(luò)中如果一個神經(jīng)元對圖像上的每個像素點都卷積一遍,產(chǎn)生的數(shù)據(jù)量過大,處理起來也會十分復(fù)雜,所以神經(jīng)元只需要感知局部關(guān)聯(lián)性較大的像素點即可,最后通過神經(jīng)元得到全部感知。權(quán)值共享:指在提取圖像的同一種特征時共享同一卷積核,這樣可以減少參數(shù)量并且提高抗形變能力。下采樣:指卷積層的輸出特征圖需要經(jīng)池化層進(jìn)行二次提取,這樣大大降低了數(shù)據(jù)的維度,而且可以有效避免過擬合現(xiàn)象。1.1.2LetNet-5模型CNN架構(gòu)的基本組件非常相似,LeNet-5模型是經(jīng)典模型,因此對LetNet-5進(jìn)行分析,圖1-1是LetNet-5模型用于處理手寫數(shù)字識別的結(jié)構(gòu)圖SEQ圖\*ARABIC1-1LetNet-5模型輸入層:輸入數(shù)據(jù),對原始數(shù)據(jù)進(jìn)行預(yù)處理,包括去均值、歸一化、PCA/白化。本設(shè)計中需要識別的是手寫數(shù)字圖片,數(shù)字特征較少且簡單,圖片分辨率不需要太大,28*28的像素即可,MNIST數(shù)據(jù)集便可滿足此要求,輸入的二維圖像包含像素的灰度信息和位置信息。卷積層C1:特征的提取和映射需要用到卷積核,卷積層有6個不同的卷積核,尺寸為5×5。在卷積層中,輸入的二維圖像分別與若干個卷積核做卷積運算來實現(xiàn)特征提取。卷積后還需要經(jīng)過偏置值和激活函數(shù),其中通過激活函數(shù)得到的特征圖才是最終的輸出特征圖。池化層S1:也稱為下采樣層,經(jīng)過卷積層輸入的特征圖仍然較為復(fù)雜,為了較少數(shù)據(jù)的數(shù)量,池化層主要是對特征圖進(jìn)行壓縮,減少模型過擬合的可能。池化層雖然壓縮了數(shù)據(jù),但不會改變輸出特征圖的數(shù)目,并且其輸出特征圖與上一個卷積層的輸出特征圖一一對應(yīng)。一般情況下,池化層的輸入圖像會被分割為不重疊的2×2像素塊,池化操作步長為2。卷積層C2:是該模型的第二個卷積層。其每個輸出特征圖同時對應(yīng)6個輸入特征圖,因此對于6×12個的卷積核可提取出12個不同的輸出特征圖。池化層S2:是該模型的第二個池化層,操作和池化層S1相類似。全連接層:通常在卷積神經(jīng)網(wǎng)絡(luò)的最后,負(fù)責(zé)對之前得到的數(shù)據(jù)重新進(jìn)行非線性擬合,圖像的特征信息在之前一系列操作中必然會丟失一部分,全連接層的目的便是盡量減少特征信息的損失。池化層S2的輸出特征圖按照列順序展開然后輸入全連接層,并且與分類神經(jīng)元通過全連接形成單層感知機網(wǎng)絡(luò)。分類神經(jīng)元數(shù)目需要根據(jù)類別要求進(jìn)行設(shè)置。1.1.3卷積神經(jīng)網(wǎng)絡(luò)識別手寫數(shù)字流程卷積神經(jīng)網(wǎng)絡(luò)模型首先將原始圖片輸入,再將原本分開進(jìn)行的特征提取、分類器等步驟集合在一個密閉網(wǎng)絡(luò)里,通過構(gòu)建及優(yōu)化不同的網(wǎng)絡(luò)模型來學(xué)習(xí)原始圖像有效的特征表達(dá),流程如圖1-2所示。傳統(tǒng)識別方法不僅特征提取和重建等工作繁瑣,還需要進(jìn)行圖像預(yù)處理,卷積神經(jīng)網(wǎng)絡(luò)簡化了這些步驟,使得工作量大大減小。圖SEQ圖1-2\*ARABIC1-2卷積神經(jīng)網(wǎng)絡(luò)識別手寫數(shù)字流程圖1.2支持向量機1.2.1支持向量機簡介SVM是非常經(jīng)典的一種機器學(xué)習(xí)算法,在深度學(xué)習(xí)出現(xiàn)之前因為其優(yōu)秀的學(xué)習(xí)和泛化能力成為了機器學(xué)習(xí)中最成功的算法。支持向量機方法屬于經(jīng)典的有監(jiān)督機器學(xué)習(xí)方法,可用來解決二分類的相關(guān)問題,將實例的特征向量映射為空間中的一些點,為了最好地區(qū)分這兩類點,需要畫一條線,如果以后有了新的點,這條線也能做出很好的分類。如圖1-3中的實心點和空心點就是兩種不同類型的點,可以對樣本點進(jìn)行區(qū)分的線有無數(shù)條,每條線均可叫做一個劃分超平面,因為樣本特征可能是高維的,這時就不能用線劃分樣本空間了。區(qū)別就在于區(qū)分效果的好壞,比如圖中H1,H2,H3三條線,可看出H3的劃分效果顯然優(yōu)于另外兩條。圖1-3劃分超平面圖對于任意一個劃分超平面,均會將數(shù)據(jù)點分割為兩片區(qū)域,其兩側(cè)數(shù)據(jù)點都距離它有一個最小距離即垂直距離,間隔(margin)就是這兩個最小距離的和。比如圖1-4兩條虛線構(gòu)成的帶狀區(qū)域就是間隔,虛線是由距離中央實線最近的兩個點所確定出來的(也就是由支持向量決定)。如果用圖1-5的方式畫,和圖1-4相比間隔明顯變大也更接近目標(biāo),更大的間隔代表犯錯幾率會更小,即更魯棒。SVM將會尋找可以區(qū)分兩個類別并且能使間隔最大的劃分超平面。樣本不是一成不變的,選擇一個比較好的劃分超平面,樣本局部擾動時對它的影響最小、產(chǎn)生的分類結(jié)果魯棒性最好、對未知樣本的置信風(fēng)險越小,置信風(fēng)險可以簡單理解為分類器在未知樣本方面可信程度的大小。從圖中可以看出,虛線上的點到劃分超平面的距離都是一樣的,超平面的位置也是由這幾個點共同確定的,因此被稱作“支持向量”,“支持向量機”也是由此而來的。圖1-4劃分超平面間隔圖圖1-5劃分超平面間隔圖1.2.2支持向量機分類SVM是二分類的機器學(xué)習(xí)算法,分類結(jié)果只有A或者B兩種,即正類和負(fù)類,但實際遇到的問題大多都是多分類的,為了解決這個問題需要將二分類轉(zhuǎn)換為多分類。有一種看起來似乎可以完美解決多分類問題的方法,如圖1-5所示,所有的樣本都有自己的分類,要想做到這一點,需要一次性考慮所有樣本,求得多個劃分超平面,這便成了多目標(biāo)函數(shù)的優(yōu)化問題,但這種方法計算量過大了,實際操作中根本不現(xiàn)實。因此為了解決這個問題一般有兩種方法:一對一(OVO)或者一對多(OVR),OVO是通過一個優(yōu)化的公式來優(yōu)化所有類別的參數(shù);OVR是通過組合多個SVM分類來解決多分類的問題。OVR所需要的分類時間比OVO要多一些,因為OVR訓(xùn)練時需要考慮所有的樣本,即使分類器比OVO少,總體也會較慢。圖1-6樣本分類圖1.2.3支持向量機優(yōu)點支持向量機優(yōu)點包括:(1)支持向量機的基本思想是求得一個分類效果最好的劃分超平面,滿足間隔的最大化,這使得支持向量機避免了因數(shù)據(jù)分布位置,數(shù)據(jù)規(guī)模大小改變對分類效果造成大的影響,針對小樣本的機器學(xué)習(xí)問題有較好的效果,不過這里的小樣本并不意味著樣本的絕對數(shù)量少,而是說對于一個復(fù)雜的問題,SVM算法所需要的樣本數(shù)量相對較少。(2)SVM將低維的特征維數(shù)空間轉(zhuǎn)化為高維維數(shù)空間,樣本的維數(shù)很高,一般情況下很容易認(rèn)為低維到高維將問題復(fù)雜化了,但將分類任務(wù)的非線性問題轉(zhuǎn)化為了線性問題,實際上是簡化了問題。支持向量的個數(shù)決定了SVM訓(xùn)練好的模型算法復(fù)雜度,由于模型只依賴支持向量,因此如果去掉訓(xùn)練集中的非支持向量,再重復(fù)一遍訓(xùn)練過程,還是會得到和之前一樣的模型。這里可以引入VC維這一概念表示問題復(fù)雜度,VC維越高問題越復(fù)雜,因為之前提到的SVM算法模型和樣本的維數(shù)沒有直接關(guān)系,因此SVM可將問題簡單化。(3)所有算法都不可能確保得到的結(jié)果是最完美的那一個,機器學(xué)習(xí)本身就是在努力無限接近真實模型,不過理論上支持向量機得到的結(jié)果為全局最優(yōu)解,基本不會存在像其他方法一樣產(chǎn)生過擬合和局部最小的問題。此外SVM具有較好的魯棒性,優(yōu)秀的泛化能力和學(xué)習(xí)能力。第二章手寫數(shù)字識別的設(shè)計2.1開發(fā)環(huán)境的選擇通過查閱資料,了解到Python和Matlab均可以完成課題所需功能,Python是一種面向?qū)ο蟮?、解釋型的、通用的、開源的腳本編程語言,是當(dāng)前非常流行的編程語言。Python有眾多的庫,包括標(biāo)準(zhǔn)庫和第三庫,既可以開發(fā)些小工具應(yīng)用,也可以開發(fā)大型的企業(yè)級應(yīng)用,功能十分強大。Python相較于傳統(tǒng)語言,語法相對簡單,對代碼格式的要求不是十分嚴(yán)格。Python是開源且免費的,這使其很受人們的歡迎,應(yīng)用范圍也更廣泛。Matlab又名矩陣實驗室,因此掌握好矩陣的知識在使用Matlab時有很大幫助。Matlab在計算和仿真方面表現(xiàn)十分優(yōu)越,主要功能有:對大量數(shù)據(jù)進(jìn)行分析處理,模擬各種物理模型;具有強大的3D繪圖功能,繪圖時可以調(diào)用Matlab中眾多的工具箱,極大地減輕了繪圖工作量;數(shù)學(xué)中常見的符號的運算如積分和微分也可以利用Matlab進(jìn)行運算,Matlab中有很多現(xiàn)成的常用的數(shù)值計算方法。Python和Matlab都可以實現(xiàn)本次課程設(shè)計的功能,其中Matlab是大學(xué)課程中的一門,對其有一定的了解且有使用的經(jīng)驗,因此選擇了Matlab作為本次課程設(shè)計的開發(fā)環(huán)境。2.2MNIST數(shù)據(jù)集MNIST數(shù)據(jù)集由250人手寫的7萬張不同的手寫數(shù)字圖像構(gòu)成,每張圖像均為黑底白字,分辨率為28×28,灰度等級為8。它將手寫數(shù)字分為十類,分別表示數(shù)字0~9,包括訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,其中6萬張手寫數(shù)字圖像組成訓(xùn)練集,1萬張組成測試集,數(shù)據(jù)集中還包括訓(xùn)練數(shù)據(jù)集標(biāo)簽和測試數(shù)據(jù)集標(biāo)簽,標(biāo)簽標(biāo)記了同一個數(shù)字由多人寫出的不同形態(tài),可以作為驗證算法的基準(zhǔn)。如圖2-1為MNIST數(shù)據(jù)集中部分手寫數(shù)字樣本。圖2-1MNIST數(shù)據(jù)集部分樣本圖2.3基于SVM算法實現(xiàn)手寫數(shù)字識別基本方法2.3.1算法流程圖圖2-2算法流程圖2.3.2劃分?jǐn)?shù)據(jù)集數(shù)據(jù)集并不可以直接使用,應(yīng)該是一部分用于訓(xùn)練,一部分用于測試,所以進(jìn)行圖像預(yù)處理之前首先需要利用函數(shù)把數(shù)據(jù)集合理劃分成訓(xùn)練集和測試集,如果不分開,可能在訓(xùn)練中產(chǎn)生過擬合或欠擬合的問題,導(dǎo)致最終識別準(zhǔn)確率降低。2.3.3圖像預(yù)處理因為需要識別的圖像中并不是所有內(nèi)容都是必要的,所以為了簡化識別內(nèi)容,提高最終的識別準(zhǔn)確度,需要對圖像進(jìn)行預(yù)處理。預(yù)處理包括對圖像進(jìn)行歸一化、二值化、去噪等操作。歸一化是將圖像可用部分裁剪出來后把圖片縮放為規(guī)定大小,輸入一張有數(shù)字的圖片,因為只有數(shù)字是需要識別的內(nèi)容,所以要將圖像區(qū)和非圖像區(qū)分開,區(qū)分后求得圖像中的數(shù)字上、下、左、右四個邊界點,通過剪裁只留下有數(shù)字的圖像區(qū)域,求出待識別數(shù)字的高度和寬度,然后將圖像統(tǒng)一縮放為n*n像素,如在本課題中應(yīng)該縮放為28*28像素。接著對圖像二值化,將提取后的灰度數(shù)字圖像二值化,即把n*n像素圖像中的每一個像素點的0-255灰度值轉(zhuǎn)化為0或1。預(yù)處理最后一步是去噪,圖片中除數(shù)字以外的噪點可能干擾到特征向量的提取,進(jìn)而影響數(shù)字的識別的準(zhǔn)確率,因此需要將噪點去除。2.3.4特征提取本次課題設(shè)計使用了方向梯度直方圖(HOG)技術(shù)進(jìn)行特征提取,此技術(shù)最開始是用于圖像中的人體檢測,HOG技術(shù)類似于邊緣方向直方圖,但是HOG分析中涉及的計算基于利用均勻間隔的單元的密集網(wǎng)格以及重疊的局部對比度歸一化來獲得更好的性能。HOG技術(shù)利用了邊緣方向的特性,即局部定向測量結(jié)果,該測量結(jié)果攜帶了有關(guān)物體形狀和形狀的有用信息,因此,HOG描述符可用于對象和形狀的識別和分類。HOG描述符已使用合成數(shù)據(jù)集應(yīng)用于數(shù)字識別,基于HOG描述符的分類和識別任務(wù)對相關(guān)計算所需的像元大小敏感,尋找合適的像元大小來計算HOG描述符在分類性能中起著至關(guān)重要的作用,使用新的多小區(qū)大?。∕CS)概念來計算HOG描述符,可以較好的形成用于分類的特征向量。2.3.5訓(xùn)練與測試提取的HOG特征將用于訓(xùn)練支持向量機模型,不過訓(xùn)練前要對整個的訓(xùn)練數(shù)據(jù)集提取HOG特征并組合。所提取的特征向量可能線性不可分,不可以用來訓(xùn)練模型,應(yīng)轉(zhuǎn)化為線性可分,轉(zhuǎn)化時要用到核函數(shù)。隨后利用最大間隔超平面的原理,求出支持向量,進(jìn)而求得最大間隔超平面方程和決策函數(shù),SVM模型便訓(xùn)練完成。手寫數(shù)字識別是多分類問題,識別0-9這10個數(shù)字需要多個SVM模型,將測試集應(yīng)用于訓(xùn)練之后的SVM模型集合中,數(shù)據(jù)集中不僅有數(shù)據(jù)圖像,還有數(shù)據(jù)自帶的標(biāo)簽,因此分類完成得出結(jié)果以后與數(shù)據(jù)自帶的標(biāo)簽做對比看是否一致,便可知訓(xùn)練效果如何且得出識別準(zhǔn)確度,如果準(zhǔn)確度較高說明訓(xùn)練出的模型識別效果較好,如果精度不夠高則對訓(xùn)練過程進(jìn)行調(diào)整后再次測試,直到精確度達(dá)到一個較高的數(shù)值。2.3.6分類過程訓(xùn)練出多個SVM模型后依次輸入待分類的數(shù)據(jù)集,整合每個SVM決策函數(shù)的結(jié)果,仲裁該樣本的具體類別。第三章手寫數(shù)字識別的識別3.1訓(xùn)練和測試SVM算法3.1.1處理MNIST數(shù)據(jù)集圖3-1處理MNIST數(shù)據(jù)集流程圖MNIST數(shù)據(jù)集中存入的原始文件不可以直接使用,需要先將這幾個文件轉(zhuǎn)化為mat文件,然后逐一讀取轉(zhuǎn)換為圖像矩陣并保存為圖片文件。建立train和test即訓(xùn)練和測試文件夾,因為MNIST數(shù)據(jù)集中有數(shù)據(jù)的標(biāo)簽,所以需要在訓(xùn)練和測試文件夾中創(chuàng)建名為0-9的10個文件夾,按照數(shù)據(jù)的標(biāo)簽放入對應(yīng)文件夾。圖3-2為建立的訓(xùn)練集和測試集文件夾:圖3-2訓(xùn)練集和數(shù)據(jù)集文件夾為了之后可以評估算法準(zhǔn)確率,數(shù)據(jù)集圖片需要按標(biāo)簽存入對應(yīng)文件夾,讀取原始數(shù)據(jù)并轉(zhuǎn)存后的數(shù)據(jù)集便是mat文件,MNIST數(shù)據(jù)集中圖片的尺寸是28×28,所以可以先通過reshape恢復(fù)數(shù)據(jù)尺寸,然后利用imwrite函數(shù)寫入文件中(路徑為對應(yīng)標(biāo)簽的子文件夾)。每個子文件夾的名字和其中存放的數(shù)字圖像對應(yīng),其中存放數(shù)字7的文件夾的截圖如圖3-3所示:圖3-3數(shù)字7不同形態(tài)圖準(zhǔn)備完數(shù)據(jù)集以后可以通過文件夾讀取圖片。為了將訓(xùn)練和測試數(shù)據(jù)集分別被存放在trainSet、testSet變量中,需要用到imageDatastore函數(shù)批量讀取圖片集,具體操作為通過遞歸掃描文件夾目錄,將每個文件夾名稱自動作為圖像的標(biāo)簽,可以簡單查看訓(xùn)練和測試集每類標(biāo)簽的樣本個數(shù)如圖3-4。圖3-4訓(xùn)練集和測試集樣本個數(shù)圖圖3-5為讀取的訓(xùn)練集和測試集的圖片,第一行為訓(xùn)練圖片,第二行為測試圖片。圖3-5訓(xùn)練圖和測試圖3.1.2灰度化、二值化對圖片特征提取之前需要進(jìn)行一項必要的操作:灰度化和二值化,為了方便比較,可以將原始圖像和二值化后的圖像在一個窗口同時顯示,如圖3-6對比結(jié)果:圖3-6原始圖像和二值化圖像對比圖3.1.3HOG特征提取圖3-7HOG特征提取流程圖圖片在經(jīng)過特征提取后得到特征向量才可以用于訓(xùn)練分類器,本課題使用的是HOG特征提取,即方向梯度直方圖。正確提取出HOG特征對于后續(xù)工作非常重要,可以利用MATLAB自帶的函數(shù)extractHOGFeatures進(jìn)行HOG特征提取,除了提取HOG特征這一基本功能,此函數(shù)還可以顯示特征的可視化結(jié)果??梢栽O(shè)置多種尺寸對圖片進(jìn)行特征提取,設(shè)置方法是改變細(xì)胞單元尺寸,提取了2×2、4×4、8×8三種尺寸的HOG特征進(jìn)行可視化的結(jié)果如圖3-8,從可視化的結(jié)果中可以明顯看出不同的尺寸所包含的信息量也是不同的。圖3-8不同尺寸HOG特征提取可視化圖三種尺寸的可視化結(jié)果中,可以明顯看出細(xì)胞尺寸為2×2的特征提取圖所含有的形狀信息量是最多的,8×8的細(xì)胞尺寸得到的特征量最少,長度數(shù)據(jù)也可以證明這一點。形狀信息量的多少直接影響了HOG特征向量的維數(shù),維數(shù)過大不易處理數(shù)據(jù),過小可能降低使識別結(jié)果的準(zhǔn)確率。細(xì)胞尺寸是一個需要調(diào)試的參數(shù),一方面應(yīng)該對足夠的空間信息進(jìn)行編碼,另一方面需要減少HOG特征向量的維數(shù),尺寸過大和過小均不合適,因此可以選擇4×4的細(xì)胞尺寸。不過4×4的細(xì)胞尺寸也不是固定的,在之后的分類器訓(xùn)練和測試過程中,如果發(fā)現(xiàn)效果不理想,可以不斷調(diào)整HOG特征的相關(guān)參數(shù),以實現(xiàn)最佳參數(shù)設(shè)置。3.1.4訓(xùn)練和評估SVM分類器圖3-9訓(xùn)練評估SVM分類器流程圖訓(xùn)練支持向量機時需要使用之前提取的HOG特征,要對整個訓(xùn)練數(shù)據(jù)集提取HOG特征并組合,除了訓(xùn)練集,測試集也需要進(jìn)行特征提取,進(jìn)而方便之后的性能評估。構(gòu)建支持向量機模型,利用提取的訓(xùn)練集特征進(jìn)行訓(xùn)練,訓(xùn)練完后使用訓(xùn)練好的分類器進(jìn)行預(yù)測,這里先利用測試集評估模型并計算分類評價指標(biāo)得到了預(yù)測結(jié)果,可以使用混淆矩陣評估結(jié)果,將結(jié)果打印出來,但混淆矩陣的結(jié)果可能還不夠直觀,下面繪制混淆矩陣圖幫助更好了解模型性能,運行代碼后顯示混淆矩陣圖如圖3-10所示,對角線上的綠色網(wǎng)格中顯示了0-9

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論