翟超飛,馬宇亮,趙德金
(延邊大學(xué)工學(xué)院,吉林 延邊 133000)
近年來,卷積神經(jīng)網(wǎng)絡(luò)(CNN)發(fā)展迅速,極大地推動了計算機視覺領(lǐng)域的前進步伐。通過局部連接和共享權(quán)值,卷積神經(jīng)網(wǎng)絡(luò)不僅降低了權(quán)值的數(shù)目,也出色地減少了過擬合現(xiàn)象[1]。憑借泛化能力優(yōu)異這一特點,卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于物品分類、目標檢測、目標識別等。與全連接網(wǎng)絡(luò)比較,卷積神經(jīng)網(wǎng)絡(luò)減少了參數(shù)量,可以預(yù)防過擬合,且擁有平移不變性,在輸入的圖像為多維時,此圖像能夠直接成為網(wǎng)絡(luò)的輸入。近年來,水果分類領(lǐng)域涌現(xiàn)了許多機器學(xué)習(xí)技術(shù),但其大多在特征選取與圖像的預(yù)處理階段進行了復(fù)雜耗時的工作[2]。和傳統(tǒng)的圖像識別技術(shù)相比,卷積神經(jīng)網(wǎng)絡(luò)具有不俗的容錯率、杰出的并行處理能力以及強大的自學(xué)能力,并且自適應(yīng)性能好,分辨率優(yōu)異[3]。本文利用卷積神經(jīng)網(wǎng)絡(luò)提出了一個對蘋果、香蕉、檸檬、西瓜、橘子進行識別的卷積模型。
如圖1為經(jīng)典的LeNet-5的模型結(jié)構(gòu),共由2個卷積層、2個池化層與3個全連接層組成,且每個特征平面共用一組權(quán)值。
圖1 LeNet-5 模型結(jié)構(gòu)
由于數(shù)據(jù)量較小,本文卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在借鑒LeNet模型的基礎(chǔ)上,采用2 個卷積層、2 個池化層、2 個全連接層以及一個Softmax 層和激活函數(shù)(ReLU)構(gòu)成[4]。輸入圖片大小為100×100,通道數(shù)為3。第一層卷積層Conv1 采用5×5 的卷積核,步長為1,緊跟著最大池化層進行下采樣,步長為2,第二層卷積層Conv1 采用3×3 的卷積核,步長為1,緊跟著最大池化層,步長為2,池化之后將數(shù)據(jù)壓平,通過兩個神經(jīng)元數(shù)分別為1 024、256 的全連接層,再通過Softmax 層輸出類別,以實現(xiàn)水果的分類。圖2 為本文所使用的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
圖2 本文選用的卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
網(wǎng)絡(luò)的具體結(jié)構(gòu)參數(shù)如表1所示。
表1 網(wǎng)格參數(shù)
激活函數(shù)為卷積神經(jīng)網(wǎng)絡(luò)的非線性層,為網(wǎng)絡(luò)引入非線性能力,可以在連續(xù)的兩次線性的卷積操作或全連接操作間進行一次非線性的變換[5]。本文所用模型選擇ReLU函數(shù),因為ReLU函數(shù)比起sigmoid、雙曲正切函數(shù)等收斂速度快,計算簡便,且在反向傳播時可防止梯度消失。
其解析式如下:
損失函數(shù)的選用是為了測度模型的預(yù)測值與真實值的差值,本文損失函數(shù)選擇交叉熵損失函數(shù),因其求導(dǎo)簡單、避免了梯度彌散且會加快權(quán)重矩陣的更新[6]。交叉熵損失計算公式如下:
為了通過更新網(wǎng)絡(luò)參數(shù),而使損失函數(shù)最小,需選用合適的優(yōu)化器,本文選擇Adam 優(yōu)化器。Adam 優(yōu)化算法結(jié)合了 AdaGrad 和 RMSProp 算法的性能,計算高效,內(nèi)存需求小,在處理稀疏梯度和非平穩(wěn)目標時有良好效果,經(jīng)過偏置校正之后,會讓參數(shù)變得更加地平穩(wěn)。常用的梯度下降算法對所有的權(quán)重更新使用單一的學(xué)習(xí)速率,且很難選擇出合適的學(xué)習(xí)率,而Adam優(yōu)化算法計算梯度的一階矩估計和二階矩,為不同參數(shù)計算自適應(yīng)學(xué)習(xí)率[7]。Adam 優(yōu)化器更新參數(shù)方式如下:
池化層篩選提取的特征,壓縮數(shù)據(jù)、減少參數(shù)數(shù)量,簡化數(shù)據(jù)的復(fù)雜度,實現(xiàn)特征降維,提高計算速度,在一定程度上防止過擬合,提高魯棒性。通常在一個或者幾個卷積層后面會有一個池化層。池化沒有需要學(xué)習(xí)的參數(shù),僅計算神經(jīng)網(wǎng)絡(luò)某一層的靜態(tài)屬性。本文采用最大池化法,以增強模型的泛化能力。
本文所用數(shù)據(jù)集為fruit-360 數(shù)據(jù)集中蘋果、香蕉、檸檬、芒果、橘子共五種常見水果圖片,每一幅圖像均為100×100 的三通道圖片。為增加樣本數(shù)量,對數(shù)據(jù)集進行增廣,對其隨機進行水平與豎直鏡像翻轉(zhuǎn),共得到4 443 張訓(xùn)練集和1 470 張測試集。將訓(xùn)練圖片的批量設(shè)置為64 并進行訓(xùn)練,再通過可視化工具得到隨迭代次數(shù)的增加下訓(xùn)練集與測試集上的準確率變化如下。
從圖3 和圖4 可以看出,在訓(xùn)練前期步數(shù)較少時,訓(xùn)練集與測試集上的識別準確率都快速上升,在訓(xùn)練中期及后期準確率則在較高水平上穩(wěn)定下來,而二者損失率也隨著訓(xùn)練進行在不斷下降,并且在后期損失率變化極小,模型在此時已收斂。最終得到訓(xùn)練集與測試集上的準確率分別為99.22%與97.66%,說明此網(wǎng)絡(luò)模型的性能較好,能出色完成水果分類。
圖3 在訓(xùn)練集上的準確率
圖4 在測試集上的準確率
本文在LeNet-5模型的基礎(chǔ)上,提出了一種卷積神經(jīng)網(wǎng)絡(luò)識別結(jié)構(gòu),以完成對于水果圖像明顯特征與隱含特征的提取與選擇,進而實現(xiàn)對水果種類的識別,實驗結(jié)果表明此模型在水果的識別方面有很高的精確度,與傳統(tǒng)的識別算法相比,此模型適應(yīng)能力更強,效率更快,泛化能力優(yōu)異。