韓星爍,林 偉
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350002)
深度卷積神經(jīng)網(wǎng)絡(luò)在圖像識別算法中的研究與實現(xiàn)
韓星爍,林 偉
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州350002)
深度學(xué)習(xí)是近些年來人工智能領(lǐng)域取得的重大突破,深度學(xué)習(xí)與傳統(tǒng)模式識別方法的最大不同在于它所提取的特征是從大數(shù)據(jù)中自動學(xué)習(xí)得到,而非采用手工設(shè)計?,F(xiàn)有的深度學(xué)習(xí)模型屬于神經(jīng)網(wǎng)絡(luò),文章引入深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像識別,該算法在對圖像統(tǒng)一轉(zhuǎn)換成固定尺寸后進(jìn)行處理,具有局部感受野、權(quán)值共享和空間下采樣等特點,可以有效地提取圖像特征。文中使用Python爬蟲技術(shù)采集的993張圖像數(shù)據(jù)集,對該方法進(jìn)行測試,平均識別率達(dá)到92.50%。實驗結(jié)果表明,基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像識別方法是可行的。
卷積神經(jīng)網(wǎng)絡(luò);局部感受野;權(quán)值共享;圖像識別
圖像識別技術(shù)是人工智能領(lǐng)域非常核心的一個方向,在國家安全、公安、交通、金融、工業(yè)化生產(chǎn)線、食品檢測等諸多領(lǐng)域具有廣泛的應(yīng)用前景。
傳統(tǒng)圖像識別算法首先需要對圖像進(jìn)行預(yù)處理,包括圖像分割、圖像增強(qiáng)、二值化細(xì)化等,然后進(jìn)行人工特征提取,建立相對應(yīng)特征的識別模型,比如高斯混合模型、支持向量機(jī)、隱馬爾科夫模型等,然后進(jìn)行判斷匹配。其中手工設(shè)計的特征對于多樣性的變化并沒有很好的魯棒性,提取的方法對圖像中層結(jié)構(gòu)和高層語義信息的表示能力有限[1],并且傳統(tǒng)算法費時費力,很難大規(guī)模地應(yīng)用在實際生產(chǎn)中。
2006年,Hontin等人開創(chuàng)性地提出了深度學(xué)習(xí)的概念[2]。引入無監(jiān)督學(xué)習(xí)的方法訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),使其相比傳統(tǒng)機(jī)器學(xué)習(xí)方法得到的特征更有利于數(shù)據(jù)的分類、回歸分析及可視化,揭示出深度學(xué)習(xí)對于大規(guī)模、高維度數(shù)據(jù)的巨大應(yīng)用潛力。于是,深度學(xué)習(xí)迅速成為機(jī)器學(xué)習(xí)領(lǐng)域中最為熱門的研究方向,并掀起了一場新的研究熱潮。
卷積神經(jīng)網(wǎng)絡(luò)是在多層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上發(fā)展起來的針對圖像分類和識別而特別設(shè)計的一種深度學(xué)習(xí)方法,具有結(jié)構(gòu)簡單、訓(xùn)練參數(shù)少和適應(yīng)性強(qiáng)的特點。所以它的應(yīng)用領(lǐng)域十分廣泛,比如手勢識別[3-4]、人臉識別、虹膜識別[5]、車型識別[6]等。
卷積神經(jīng)網(wǎng)絡(luò)是在多層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上發(fā)展起來的針對圖像分類和識別而特別設(shè)計的一種深度學(xué)習(xí)方法。它是一種前饋神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)是受人體視覺中感受野的機(jī)制影響而提出。比如在人體視覺神經(jīng)系統(tǒng)中,一個神經(jīng)元的感受野是指視網(wǎng)膜上的特定區(qū)域,只有在這個區(qū)域內(nèi)的刺激才能夠激活該神經(jīng)元。卷積神經(jīng)網(wǎng)絡(luò)的最大特點就是局部感受野和權(quán)值共享,圖1為稀疏連接(局部感受野),圖2為權(quán)值共享。稀疏連接和權(quán)值共享可以減少訓(xùn)練參數(shù)和計算復(fù)雜程度。
圖1 稀疏連接
圖2 權(quán)值共享
1.1卷積神經(jīng)層
卷積操作是對圖像和濾波矩陣做內(nèi)積,這也是卷積神經(jīng)網(wǎng)絡(luò)的名字來源。它的核心思想是結(jié)合稀疏連接、權(quán)值共享以及采樣這三種結(jié)構(gòu)得到某種程度的位移、尺度、形變不變性。在圖像中,輸入是width*height的區(qū)域大小的數(shù)據(jù)和一組固定權(quán)重的卷積核做內(nèi)積得到新的二維數(shù)據(jù)。具體操作是一個卷積核(特征矩陣)在輸入的圖像矩陣上按照一定的步長移動,直至覆蓋完整個圖像,然后與矩陣上對應(yīng)位置的元素相乘后再相加得到一個值。移動完畢后生成新的特征圖矩陣。
圖4 本文網(wǎng)絡(luò)結(jié)構(gòu)
在卷積神經(jīng)層中,卷積核的大小影響著圖像特征的抽象效果。一般來說,卷積核越大,效果越好,但是訓(xùn)練參數(shù)多卷積核則越小,訓(xùn)練參數(shù)少處理效果更精細(xì),這需要更多的層數(shù)達(dá)到相同的效果。在本文的結(jié)構(gòu)中,第一個卷積層使用了11×11的卷積核,卷積核較大,雖然能夠達(dá)到比較好的抽象效果,但是處理得比較粗糙,所以在Conv后加入Norm歸一化層,提升主體與其他部分的區(qū)分度。
1.2ReLU激勵層
通常情況下,卷積層和ReLU層是成對出現(xiàn)的。規(guī)范的ReLU激活函數(shù)的表達(dá)式為:y={0,max(x)},當(dāng)輸入x>0時,輸出為x本身;如果輸入小于或等于0,則輸出0。
在卷積神經(jīng)網(wǎng)絡(luò)中,一般情況下,習(xí)慣于用ReLU激勵函數(shù)替代之前的tanh、sigmoid等激活函數(shù),如圖3所示,在x>0時,ReLU函數(shù)的導(dǎo)數(shù)是恒定的,而tanh和sigmoid函數(shù)不是恒定的,所以ReLU函數(shù)避免了tanh和sigmoid函數(shù)在兩端接近目標(biāo)時,導(dǎo)數(shù)變小,導(dǎo)致在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,BP反向傳播誤差而導(dǎo)致收斂減慢。ReLU的優(yōu)點是收斂快,求梯度簡單,并且訓(xùn)練后具有稀疏性,可減少數(shù)據(jù)冗余,增強(qiáng)特區(qū)特征的表達(dá)能力。
圖3 RelU函數(shù)
1.3池化pool層
池化層也叫空間下采樣層,在卷積神經(jīng)網(wǎng)絡(luò)中,池化層一般是在卷積層之后,在圖像卷積之后使用pooling將小鄰域內(nèi)特征點整合之后得到新的特征。通常卷積和池化是以Conv-Pool的形式存在,減少卷積之后造成的信息冗余。pool層也叫降采樣層,一方面是能夠達(dá)到降維的目的,降低上一個卷積層輸出的特征向量的維度。另一方面是能夠減少過擬合。一般情況下pool層分為三種:一般池化、重疊池化和金字塔池化。一般池化中又分為max-pooling、mean-pooling和Stochastic-pooling,本文采用max-pooling降低圖像的噪聲,減少圖像的卷積輸出結(jié)果對于輸入的誤差過于敏感的這種過擬合現(xiàn)象。
本文所采取的max-pooling算法,首先對于圖像來說,這個操作可以保證特征的位置和旋轉(zhuǎn)不變性,這是一種很好的特性,因為不論這個卷積之后得到的有效特征在哪個位置出現(xiàn),都不用考慮其出現(xiàn)位置而能把它提取出來。另外,本文中max-pooling大大減少了模型的參數(shù)數(shù)量,而對于pool層之后的norm層來說,神經(jīng)元的個數(shù)大大減少。
一個典型的卷積神經(jīng)網(wǎng)絡(luò)的分類器結(jié)構(gòu)應(yīng)該包括輸入層、卷積層、池化層、全連接層和輸出層,其中卷積層和池化層交替出現(xiàn)。本文所采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
本文中深度卷積層神經(jīng)網(wǎng)絡(luò)包含5個卷積層(conv),3個池化層(pool),2個LRN層(norm)[7],2個隨機(jī)采樣層(drop),3個全連接層(fc)和1個softmax分類回歸層。
卷積層參數(shù)分別是:conv1、conv2、conv3、conv4、conv5的blob類型分別為[1,96,55,55]、[1,256,27,27]、[1,384,13,13]、[1,384,13,13]和[1,256,13,13],步長分別為4、2、1、1、1。pool層參數(shù)為:pool1:[1,96,27,27],pool2:[1,256,13,13],pool5:[1,256,6,6]。其中,卷積的計算公式為:
(1)
卷積層的輸出維數(shù)的計算公式為:
N2=(N1-F1+2P)/S+1
(2)
其中,輸入圖片的大小為N1×N1,卷積核的大小為F1×F1,步長為S,P表示padding的像素數(shù),即拓展寬度。輸出的圖片大小為N2×N2。
pool池化層的輸出維數(shù)計算公式如下,其中池化pool層的核大小為F2。
N3=(N1-F2)/S+1
(3)
本文的圖像識別和分類算法是在ubuntu14.04環(huán)境下,基于Python語言,采用CNN模型框架[7],Caffe[8]深度學(xué)習(xí)框架提供的Caffenet預(yù)訓(xùn)練模型,Caffe是一種流行的清晰高效的深度學(xué)習(xí)框架,支持Python和MATLAB接口和命令行。
3.1圖像的預(yù)處理
本文在對模型訓(xùn)練之前,使用Python爬蟲技術(shù)獲取10類共993張圖片,分為200張圖片的測試集和793張圖片的訓(xùn)練集。卷積神經(jīng)網(wǎng)絡(luò)對于圖像本身來說可以直接輸入而不用復(fù)雜的預(yù)處理操作,由于硬件條件限制,本文只是對圖像進(jìn)行了分辨率的統(tǒng)一,變換成了256×256,然后將10類中各個類隨機(jī)抽取20張放入測試集,剩余圖片放入訓(xùn)練集,之后使用caffe提供的均值計算文件,將圖片減去均值再進(jìn)行訓(xùn)練,通過計算可以減少圖片數(shù)據(jù)之間的相似性,從而大大提高訓(xùn)練的精度以及速度。
3.2實驗結(jié)果分析
由于硬件條件約束,本文在純CPU下運行深度神經(jīng)網(wǎng)絡(luò),運行時間較長。本文使用anaconda科學(xué)計算環(huán)境,其中可視化工具是anaconda自帶的jupyter notebook工具,使用其來圖形化模型中的一些參數(shù)在整個過程中的變化趨勢。如圖5所示,橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)為損失值和準(zhǔn)確率。
圖5 實驗結(jié)果
本文根據(jù)自己的數(shù)據(jù)集設(shè)定了具體的網(wǎng)絡(luò)參數(shù),圖5為迭代1 000次,每50次迭代就在測試集上測試一次訓(xùn)練學(xué)習(xí)的網(wǎng)絡(luò),輸出損失值和準(zhǔn)確率。對于每200次迭代,取一次當(dāng)前狀態(tài)的快照。經(jīng)過多次修改Batch-Size的值后進(jìn)行多次訓(xùn)練,在Batch-Size設(shè)置為50時達(dá)到最終收斂精度上的最優(yōu),該模型對圖像的平均識別率最高,達(dá)到92.50%。
經(jīng)過分析得出,Batch-Size過小會引起識別率震蕩過大。調(diào)整Batch-Size的值能夠改善識別準(zhǔn)確率的原因在于,在數(shù)據(jù)集較小的情況下,適當(dāng)增大Batch_Size,其確定的下降方向就越準(zhǔn),可以降低訓(xùn)練震蕩,提高CPU利用率,提升大矩陣乘法計算效率。由于最終收斂精度會陷入不同的局部極值,因此Batch_Size增大到某個值時,達(dá)到最終收斂精度上的最優(yōu)。
本文使用深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類和識別,能夠有效提高圖像識別的準(zhǔn)確度,算法的準(zhǔn)確率相對于傳統(tǒng)圖像識別算法有相當(dāng)大的提升。本文針對caffenet網(wǎng)絡(luò)模型進(jìn)行了微調(diào),生成了針對本數(shù)據(jù)集的最優(yōu)識別網(wǎng)絡(luò)模型,而且總結(jié)了深度卷積神經(jīng)網(wǎng)絡(luò)的一些優(yōu)點:去除了傳統(tǒng)圖像識別算法的預(yù)處理環(huán)節(jié),通過卷積層的稀疏連接(局部感受野)和權(quán)值共享大大減少了參數(shù),提升了訓(xùn)練速度,減少了訓(xùn)練時間。本文存在的不足在于硬件環(huán)境較差,樣本較小,但是算法有較強(qiáng)的擴(kuò)展性,下一步可以通過增加樣本的類別和圖片數(shù)量,以及進(jìn)一步優(yōu)化微調(diào)本文的網(wǎng)絡(luò)結(jié)構(gòu)模型,來提升圖像識別的準(zhǔn)確度。
[1] 劉炳源.基于深度學(xué)習(xí)的特征表示和圖像分類方法研究[D].北京:中國科學(xué)院大學(xué),2015.
[2] HINTON G,SALAKHUTDINOV R.Reducing the dimensionality of data with neural networks[J].Science,2006,313(5786): 504-507.
[3] 操小文,薄華.基于卷積神經(jīng)網(wǎng)絡(luò)的手勢識別研究[J] .微型機(jī)與應(yīng)用,2016,35(9):55-57,61.
[4] 王龍,劉輝,王彬,等.結(jié)合膚色模型和卷積神經(jīng)網(wǎng)絡(luò)的手勢識別方法[J].計算機(jī)工程與應(yīng)用,2017,53(6):209-214.
[5] 李志明.基于卷積神經(jīng)網(wǎng)絡(luò)的虹膜活體檢測算法研究[J].計算機(jī)工程,2016,42(5):239-243,248.
[6] 鄧柳,汪子杰.基于深度卷積神經(jīng)網(wǎng)絡(luò)的車型識別研究[J].計算機(jī)應(yīng)用研究,2016,33(3): 930-932.
[7] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.Imagenet classification with deep convolutional neural networks[C].Advances in Neural Information Processing Systems,2012:1006-1114.
[8] JIA Y,SHELHAMER E,DONAHUE J,et al.Caffe: Convolutional architecture for fast feature embedding[C].Proceedings of the 22nd ACM International Conference on Multimedia.ACM,2014: 675-678.
Design and implementation of image recognition based on convolution neural network
Han Xingshuo,Lin Wei
(College of Physics and Information Engineering,F(xiàn)uzhou University,F(xiàn)uzhou 350002,China)
Deep learning is a major breakthrough in recent years in the field of artificial intelligence,the biggest difference between deep learning and traditional pattern recognition method is that the extracted features are learned from large data automatically,rather than artificial design.Existing deep learning model belongs to the neural network.This paper introduced the deep convolution neural network for image recognition,the algorithm for image processing after unified into a fixed size,with the characteristics of local receptive field,the weights of sharing and space sampling,etc,can effectively extract the image feature.This article uses the crawler technology for the 993 images of the data set ,after testing the method,the average recognition rate is 92.50%.The experimental result shows that the proposed method in this paper is feasible.
CNN; local receptive field; weights of sharing; image recognition
TP317.4
A
10.19358/j.issn.1674-7720.2017.21.017
韓星爍,林偉.深度卷積神經(jīng)網(wǎng)絡(luò)在圖像識別算法中的研究與實現(xiàn)J.微型機(jī)與應(yīng)用,2017,36(21):54-56.
2017-04-14)
韓星爍(1992-),男,碩士研究生,主要研究方向:機(jī)器學(xué)習(xí)與深度學(xué)習(xí)、圖像處理。
林偉 (1968-),男,副研究員,碩士生導(dǎo)師,主要研究方向:敏感材料與器件、集成電路設(shè)計等。