摘 ?要:圖像識(shí)別領(lǐng)域作為深度學(xué)習(xí)研究應(yīng)用的初衷,如何能夠快速準(zhǔn)確地對(duì)圖像進(jìn)行識(shí)別一直以來(lái)都是眾多研究人員的研究重點(diǎn)。而水果圖像識(shí)別作為圖像識(shí)別應(yīng)用中很重要的一部分,在實(shí)際生活中能夠高效地實(shí)現(xiàn)水果圖像的正確識(shí)別具有非常重要的地位。本文在深入地研究深度學(xué)習(xí)尤其是卷積神經(jīng)網(wǎng)絡(luò)理論的基礎(chǔ)上,依據(jù)經(jīng)典人工神經(jīng)網(wǎng)絡(luò)模型Alexnet進(jìn)行改進(jìn),使之可以進(jìn)行水果圖像識(shí)別,并借助TensorFlow函數(shù)庫(kù)通過(guò)Python編程語(yǔ)言構(gòu)造了新的卷積神經(jīng)網(wǎng)絡(luò)模型,最后結(jié)合樹(shù)莓派成功實(shí)現(xiàn)了對(duì)于水果(香蕉)圖像的識(shí)別。
關(guān)鍵詞:水果圖像識(shí)別;卷積神經(jīng)網(wǎng)絡(luò);樹(shù)莓派;TensorFlow
中圖分類(lèi)號(hào):TP751.1????文獻(xiàn)標(biāo)識(shí)碼:A ???文章編號(hào):1671-2064(2019)17-0000-00
0 引言
隨著我國(guó)農(nóng)業(yè)生產(chǎn)的快速發(fā)展和深度學(xué)習(xí)在諸多領(lǐng)域的廣泛應(yīng)用,研究人員也開(kāi)始思考將二者結(jié)合起來(lái)以加快現(xiàn)代化智慧產(chǎn)業(yè)發(fā)展。水果圖像識(shí)別是我國(guó)現(xiàn)代智慧農(nóng)業(yè)發(fā)展過(guò)程中十分關(guān)鍵的一環(huán),能夠?qū)崿F(xiàn)對(duì)水果圖像快速準(zhǔn)確高效的識(shí)別是我們一切工作的前提條件。
本次設(shè)計(jì)是在樹(shù)莓派平臺(tái)上利用TensorFlow實(shí)現(xiàn)水果識(shí)別任務(wù),事實(shí)上,樹(shù)莓派僅僅作為程序的載體,更重要的是選擇合適的人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)高效準(zhǔn)確的水果圖像識(shí)別。為了滿足水果圖像識(shí)別性能和實(shí)時(shí)性的需求,采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)水果圖像進(jìn)行識(shí)別,并且依據(jù)不同的經(jīng)典網(wǎng)絡(luò):LeNet-5[1]和AlexNet[2],設(shè)計(jì)了不同的網(wǎng)絡(luò)模型分別進(jìn)行訓(xùn)練,最后對(duì)比訓(xùn)練結(jié)果選出最優(yōu)網(wǎng)絡(luò)拷貝到樹(shù)莓派上并完成水果識(shí)別任務(wù)。
1 水果識(shí)別研究現(xiàn)狀
隨著我國(guó)水果產(chǎn)業(yè)的快速崛起和深度學(xué)習(xí)在諸多領(lǐng)域的廣泛應(yīng)用,研究人員也開(kāi)始思考將二者結(jié)合起來(lái)以加快產(chǎn)業(yè)發(fā)展。其中比較具有代表性的有:利用BP神經(jīng)網(wǎng)絡(luò)作為分類(lèi)器的呂秋霞[3]等人,雖然識(shí)別率可以達(dá)到95%以上,但是存在復(fù)雜的人造特征過(guò)程和網(wǎng)絡(luò)訓(xùn)練不足的問(wèn)題;利用預(yù)處理消除水果圖像灰度分布不均勻和光照變化問(wèn)題,再通過(guò)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別的陳源[4]等人,雖然識(shí)別率可以達(dá)到98.6%,但是仍然存在預(yù)處理過(guò)多和樣本種類(lèi)過(guò)少的局限;利用一系列預(yù)處理工作實(shí)現(xiàn)對(duì)水果尺寸,顏色和形狀特征的提取,再利用SVM分類(lèi)器完成對(duì)水果特征的組合識(shí)別,最后準(zhǔn)確率達(dá)到95.33%[5]。
通過(guò)查閱以往文獻(xiàn)可以發(fā)現(xiàn),水果識(shí)別系統(tǒng)的設(shè)計(jì)按照傳統(tǒng)的方法流程一般如圖1,圖像預(yù)處理和特征提取是主要任務(wù),并且在實(shí)驗(yàn)過(guò)程中所用到的水果圖片均是在有著嚴(yán)格限定的環(huán)境中拍攝的,這大大減少了外界環(huán)境的影響,因而當(dāng)識(shí)別系統(tǒng)被應(yīng)用到實(shí)際中時(shí),我們所得到的識(shí)別準(zhǔn)確率往往不盡如人意。此外,在傳統(tǒng)的水果識(shí)別系統(tǒng)設(shè)計(jì)過(guò)程中,我們通常是對(duì)水果的形狀,顏色,紋理等特征進(jìn)行提取和識(shí)別,但是水果在不同的地理環(huán)境下會(huì)引起其個(gè)體的形狀,顏色及紋理等特征的不同,在拍攝過(guò)程中光照的影響也會(huì)造成這些特征的變化,因此會(huì)降低識(shí)別系統(tǒng)的準(zhǔn)確性?;谝陨戏N種,我們需要更加復(fù)雜的識(shí)別算法來(lái)解決這些問(wèn)題。
2 基于TensorFlow實(shí)現(xiàn)水果圖像識(shí)別的人工神經(jīng)網(wǎng)絡(luò)
TensorFlow是由Google Brain團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)開(kāi)源軟件庫(kù),使用TensorFlow實(shí)現(xiàn)水果識(shí)別,實(shí)質(zhì)上就是利用深度學(xué)習(xí)的相關(guān)知識(shí),通過(guò)對(duì)人工神經(jīng)網(wǎng)絡(luò)進(jìn)行有監(jiān)督的訓(xùn)練,從而實(shí)現(xiàn)計(jì)算機(jī)對(duì)于水果圖像的成功識(shí)別。
本節(jié)將采用經(jīng)典Alexnet網(wǎng)絡(luò)模型進(jìn)行水果圖像的識(shí)別研究,并通過(guò)搭建具體的卷積神經(jīng)網(wǎng)絡(luò)[6]結(jié)構(gòu)來(lái)分析其對(duì)水果圖像識(shí)別結(jié)果的影響,并對(duì)網(wǎng)絡(luò)模型進(jìn)行改進(jìn)提高識(shí)別準(zhǔn)確率,以便于下一步實(shí)驗(yàn)設(shè)計(jì)的進(jìn)行。
2.1數(shù)據(jù)集的構(gòu)建
構(gòu)建數(shù)據(jù)集,最主要的就是采集相關(guān)水果圖像,依據(jù)圖像識(shí)別任務(wù)的不同需要選擇不同拍攝設(shè)備,以便進(jìn)行所需圖像的攝影采集。本次圖像采集設(shè)備均為拍攝像素為八百萬(wàn)的手機(jī)攝像頭,而且因?yàn)楸敬卧O(shè)計(jì)選擇香蕉作為目標(biāo)水果,所以選取香蕉,桃子,梨,草莓,芒果,鳳梨和黃檸檬七種水果從各種不同角度進(jìn)行了拍攝。
在圖像采集完成后,先分別篩選出拍攝質(zhì)量較高的四百?gòu)埜鞣N角度的香蕉圖片和四百?gòu)埐煌嵌鹊姆窍憬额?lèi)水果圖片,并對(duì)這些彩色圖片進(jìn)行批量修改使其尺寸格式統(tǒng)一。目前默認(rèn)將其像素尺寸修改為100*100,之后對(duì)彩色圖片進(jìn)行分類(lèi)和數(shù)據(jù)標(biāo)注,形成本次設(shè)計(jì)所需要的訓(xùn)練數(shù)據(jù)集,與此同時(shí),再分別選出一百?gòu)埻瑯犹幚硗瓿傻牟煌嵌鹊南憬额?lèi)和非香蕉類(lèi)圖片作為測(cè)試數(shù)據(jù)集。
2.2基于經(jīng)典Alexnet網(wǎng)絡(luò)模型的改進(jìn)網(wǎng)絡(luò)模型
2.2.1三維卷積設(shè)計(jì)
在傳統(tǒng)的圖像識(shí)別神經(jīng)網(wǎng)絡(luò)模型中,一般均采用將彩色圖像轉(zhuǎn)化為灰度圖像,對(duì)灰度圖像進(jìn)行二維卷積的方法。這種方法需要對(duì)所有圖片均進(jìn)行復(fù)雜的預(yù)處理過(guò)程,包括整理使其成為統(tǒng)一尺寸格式和灰度化處理等。為了能夠簡(jiǎn)化預(yù)處理過(guò)程,降低計(jì)算成本,在本次設(shè)計(jì)中,利用三維卷積直接對(duì)彩色圖像進(jìn)行操作提取局部特征后完成識(shí)別。
2.2.2 基于Alexnet網(wǎng)絡(luò)模型的改進(jìn)網(wǎng)絡(luò)
(1)預(yù)處理:從計(jì)算成本和神經(jīng)網(wǎng)絡(luò)承受能力兩個(gè)角度考慮,設(shè)計(jì)將之前處理過(guò)得到的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集樣本進(jìn)行尺寸和格式的再次統(tǒng)一,因?yàn)橛?xùn)練的網(wǎng)絡(luò)層數(shù)較淺,且利用筆記本電腦CPU進(jìn)行訓(xùn)練,故將圖片的像素尺寸設(shè)定為100*100*3,而非原文中的224*224*3。
(2)輸入層Input:因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)一般受到輸入圖像像素尺寸的影響,而且其深度在很大程度上決定著最后分類(lèi)效果的優(yōu)劣,綜上,本次網(wǎng)絡(luò)模型選擇像素尺寸大小為100*100*3的水果彩色圖像矩陣作為輸入矩陣。
(3)卷積層C1:C1神經(jīng)網(wǎng)絡(luò)層是對(duì)從輸入層傳入的彩色圖像像素矩陣?yán)迷S多不同的立體卷積濾波器進(jìn)行卷積計(jì)算從而得到不同的特征圖像。本次卷積濾波器設(shè)計(jì)卷積核尺寸大小為3*3*3,共計(jì)使用16個(gè)相同尺寸的卷積濾波器,除此之外,設(shè)定卷積濾波器每次向各個(gè)方向的移動(dòng)步長(zhǎng)均為1。本次卷積操作后還要將所得特征圖像輸入ReLU單元進(jìn)行激活處理,得到激活像素層。
(4)池化層P1:P1神經(jīng)網(wǎng)絡(luò)層對(duì)C1卷積網(wǎng)絡(luò)層中輸出的十六個(gè)特征圖像進(jìn)行最大池化操作處理后得到新的特征圖像。池化處理利用的是由人類(lèi)觀察圖像時(shí)局部感受野延伸出的圖像局部具有相關(guān)性的原理,對(duì)輸入的特征圖像再次進(jìn)行卷積抽樣,可以減少數(shù)據(jù)中的冗余信息同時(shí)降低所需要的參數(shù)規(guī)模。設(shè)計(jì)卷積核尺寸為3*3,假設(shè)卷積窗口每次移動(dòng)步長(zhǎng)為2。在池化操作完成后,對(duì)像素層進(jìn)行歸一化處理,此時(shí)運(yùn)算的尺寸仍為3*3,歸一化運(yùn)算后的像素層尺寸規(guī)模無(wú)變化。
(5)卷積層C2:C2對(duì)P1池化層中輸出的十六個(gè)特征圖像采用與C1卷積層相似的方式進(jìn)行卷積計(jì)算。本次卷積濾波器設(shè)計(jì)卷積核尺寸大小為3*3*16,共計(jì)使用16個(gè)相同尺寸的卷積濾波器,設(shè)定卷積濾波器每次向各個(gè)方向的移動(dòng)步長(zhǎng)均為1。激活函數(shù)仍為ReLU非線性不飽和激活函數(shù)。
(6)池化層P2:P2對(duì)C2卷積層中輸出的十六個(gè)特征圖像進(jìn)行最大池化操作處理后得到新的特征圖像。設(shè)計(jì)卷積核尺寸為3*3,假設(shè)卷積窗口每次移動(dòng)步長(zhǎng)為1。在池化操作完成后,對(duì)像素層進(jìn)行歸一化處理。
(7)全連接層FC1:全連接神經(jīng)網(wǎng)絡(luò)層與P2池化神經(jīng)網(wǎng)絡(luò)層的連接方式顧名思義,就是選用全連接的方式進(jìn)行的。將P2池化神經(jīng)網(wǎng)絡(luò)層中的輸出作為本次全連接層的輸入,將像素層矩陣全部展開(kāi)轉(zhuǎn)化為各個(gè)獨(dú)立的神經(jīng)元后同樣經(jīng)過(guò)ReLU非線性不飽和函數(shù)激活后進(jìn)行輸出。
(8)全連接層FC2:具體處理操作方式與FC1全連接神經(jīng)網(wǎng)絡(luò)層類(lèi)似。
(9)輸出層Output:輸出層output選擇softmax回歸分類(lèi)器,將上一神經(jīng)網(wǎng)絡(luò)層中的輸出所有神經(jīng)元輸入多分類(lèi)邏輯回歸分類(lèi)器進(jìn)行分類(lèi)識(shí)別,判斷是否為香蕉,并輸出判斷結(jié)果。
3 通過(guò)樹(shù)莓派實(shí)現(xiàn)水果識(shí)別的系統(tǒng)設(shè)計(jì)
卷積神經(jīng)網(wǎng)絡(luò)代碼編寫(xiě)到樹(shù)莓派上后發(fā)現(xiàn)因?yàn)闃?shù)莓派自身內(nèi)存不夠,每次只要開(kāi)始訓(xùn)練,就會(huì)出現(xiàn)進(jìn)程被殺掉的報(bào)錯(cuò),所以樹(shù)莓派實(shí)際上并不能訓(xùn)練神經(jīng)網(wǎng)絡(luò)。為此我想出的解決方案是:在發(fā)現(xiàn)不能訓(xùn)練網(wǎng)絡(luò)后,轉(zhuǎn)而選擇在筆記本電腦上訓(xùn)練該神經(jīng)網(wǎng)絡(luò),訓(xùn)練成功后將其模型文件傳輸?shù)綐?shù)莓派上,直接利用模型文件進(jìn)行測(cè)試。
本次系統(tǒng)設(shè)計(jì)選擇樹(shù)莓派作為程序載體,因?yàn)樗哂衅渌布O(shè)備所缺少的便攜性和可操作性,對(duì)于Python開(kāi)發(fā)相關(guān)軟件具有很好的環(huán)境適應(yīng)性。本設(shè)計(jì)系統(tǒng)框圖如圖2所示。
樹(shù)莓派實(shí)現(xiàn)水果識(shí)別的流程設(shè)計(jì):(1)搭建并訓(xùn)練基于Alexnet神經(jīng)網(wǎng)絡(luò)模型的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu);(2)對(duì)所設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行測(cè)試,測(cè)試成功則進(jìn)行下一步驟;(3)將訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型移植到樹(shù)莓派硬件上;(4)通過(guò)樹(shù)莓派運(yùn)行網(wǎng)絡(luò)模型,實(shí)現(xiàn)水果識(shí)別的目標(biāo)。
經(jīng)過(guò)多次測(cè)試,可以觀察到卷積神經(jīng)網(wǎng)絡(luò)模型移植到樹(shù)莓派硬件平臺(tái)上后其測(cè)試準(zhǔn)確率并無(wú)明顯變化,仍然穩(wěn)定在98%左右。
4 算法改進(jìn)及實(shí)驗(yàn)分析
本次設(shè)計(jì)是在Intel core i5,2.5GHz CPU,4G內(nèi)存的Windows操作系統(tǒng),Python操作平臺(tái)以及TensorFlow開(kāi)源庫(kù)的環(huán)境下進(jìn)行的。
4.1算法改進(jìn)
(1)三維卷積計(jì)算的應(yīng)用。為了簡(jiǎn)化預(yù)處理過(guò)程,進(jìn)一步提高圖像識(shí)別的效率,引入采用了三維卷積的Alexnet卷積神經(jīng)網(wǎng)絡(luò)模型,在傳統(tǒng)的Lenet-5網(wǎng)絡(luò)模型和Alexnet網(wǎng)絡(luò)模型關(guān)于水果圖像識(shí)別訓(xùn)練準(zhǔn)確率的對(duì)比下,如圖3所示。
Alexnet模型訓(xùn)練準(zhǔn)確率高于Lenet-5模型,故本次設(shè)計(jì)選擇采用Alexnet卷積神經(jīng)網(wǎng)絡(luò)模型,同時(shí)對(duì)其進(jìn)行了改進(jìn)使其更適應(yīng)于本設(shè)計(jì)任務(wù)。
(2)激活函數(shù)的改進(jìn)。搭建模型過(guò)程中,在卷積層采用了不同的激活函數(shù),主要在于比較原文中使用的sigmoid函數(shù)與近幾年較為流行的ReLU函數(shù)及Leakly ReLU函數(shù)的識(shí)別錯(cuò)誤率差別,事實(shí)上,在訓(xùn)練網(wǎng)絡(luò)時(shí)其錯(cuò)誤率差別對(duì)比如圖4所示。
從圖4可以看出,橫坐標(biāo)代表迭代次數(shù),縱坐標(biāo)代表圖像識(shí)別的錯(cuò)誤率。經(jīng)過(guò)訓(xùn)練后,分別以Sigmoid非線性飽和函數(shù)、ReLU非線性不飽和函數(shù)和 Leaky ReLU非線性不飽和函數(shù)作為激活函數(shù)的Alexnet改進(jìn)神經(jīng)網(wǎng)絡(luò)模型的水果圖像識(shí)別錯(cuò)誤率分別大約為 2.20%、0.90%和 0.80%。綜上,在本次訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)中使用非線性不飽和修正函數(shù)作為隱含層中的激活函數(shù)得到的水果圖像識(shí)別錯(cuò)誤率明顯大幅度低于使用Sigmoid非線性飽和函數(shù)作為激活函數(shù)的識(shí)別錯(cuò)誤率。除此以外,ReLU非線性激活函數(shù)相比于 Sigmoid 非線性激活函數(shù),可以極大的提高訓(xùn)練時(shí)的收斂速度,收斂速度至少可以提高5倍以上。而Leaky ReLU 非線性不飽和函數(shù)作為ReLU非線性不飽和函數(shù)的變形,在訓(xùn)練實(shí)驗(yàn)迭代 200 次后的圖像識(shí)別錯(cuò)誤率相比于 ReLU 非線性不飽和激活函數(shù)稍有下降,并且可以提高卷積神經(jīng)網(wǎng)絡(luò)模型的魯棒性,所以在最終搭建改進(jìn)神經(jīng)網(wǎng)絡(luò)模型時(shí)選取Leaky ReLU非線性不飽和激活函數(shù)作為本次卷積神經(jīng)網(wǎng)絡(luò)的激活函數(shù)。
4.2設(shè)計(jì)及實(shí)驗(yàn)結(jié)果分析
在將卷積神經(jīng)網(wǎng)絡(luò)移植到樹(shù)莓派上進(jìn)行訓(xùn)練時(shí),因?yàn)闃?shù)莓派自身內(nèi)存不足,一旦開(kāi)始訓(xùn)練就會(huì)出現(xiàn)報(bào)錯(cuò),提示進(jìn)程已經(jīng)被停止。所以實(shí)際上,樹(shù)莓派本身并不能獨(dú)立地對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。故本次設(shè)計(jì)選擇先在筆記本電腦上訓(xùn)練該神經(jīng)網(wǎng)絡(luò),成功后將其模型文件傳輸?shù)綐?shù)莓派上,直接利用模型文件進(jìn)行水果圖像識(shí)別。
通過(guò)樹(shù)莓派攝像頭對(duì)水果圖片進(jìn)行拍攝保存,利用已經(jīng)訓(xùn)練移植好的神經(jīng)網(wǎng)絡(luò)模型對(duì)此圖像進(jìn)行識(shí)別,識(shí)別結(jié)果如圖5所示,其中紅色方框標(biāo)出部分表明對(duì)于上述拍攝圖片成功進(jìn)行了識(shí)別:這是香蕉的概率為99.99%。這說(shuō)明對(duì)于香蕉這一水果,本神經(jīng)網(wǎng)絡(luò)能夠成功識(shí)別。
5 結(jié)語(yǔ)
隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,現(xiàn)代農(nóng)業(yè)技術(shù)已經(jīng)十分發(fā)達(dá),水果圖像識(shí)別技術(shù)作為未來(lái)智慧農(nóng)業(yè)發(fā)展的一個(gè)重要技術(shù)方向,將深度學(xué)習(xí)和實(shí)際應(yīng)用緊密的結(jié)合起來(lái),能夠大大降低人力水果分類(lèi)的成本,取得良好的效果。
參考文獻(xiàn)
[1]王水平,唐振民,范春年等.基于?SVM 的水果分類(lèi)算法研究[J].武漢理工大學(xué)學(xué)報(bào),2010,8,32(16):44-47.
[2]Krizhevsky A , Sutskever I , Hinton G . ImageNet Classification with Deep Convolutional Neural Networks[C]// NIPS. Curran Associates Inc.2012.
[3]呂秋霞,張景鴻.基于卷積神經(jīng)網(wǎng)絡(luò)的水果自動(dòng)分類(lèi)系統(tǒng)設(shè)計(jì)[J].安徽農(nóng)業(yè)科學(xué),2009,35(37):17392-17394.
[4]陳源,張長(zhǎng)江.水果自動(dòng)識(shí)別的 BP 神經(jīng)網(wǎng)絡(luò)方法[J].圖形、圖像與多媒體,2010,29(22):40-43.
[5]王水平,唐振民,范春年,裴曉芳,謝永華.基于SVM的水果分類(lèi)算法研究[J].武漢理工大學(xué)學(xué)報(bào),2010,32(16):44-47.
[6]BENGIO Y.Learning deep architectures for AI[J].Foundations and Trends in Machine Learning,2009,2(1):1-12.
收稿日期:2019-08-01
作者簡(jiǎn)介:劉潤(rùn)洲,男,北京人,研究方向:機(jī)器學(xué)習(xí)(圖像識(shí)別)。