李倩倩,張恩寶,孫 敏,余大為,李 旸
(安徽農(nóng)業(yè)大學 信息與計算機學院,安徽 合肥 230036)
隨著計算機技術(shù)的迅速發(fā)展,借助計算機手段對花卉等植物進行分類的方法應運而生[1]。Guyer[2]在20世紀90年代首先對四十多種植物進行了科學分類。隨后,Chai等[3]通過對密集的SIFT特征、興趣點和整幅圖的Lab特征進行提取,最后選擇使用SVM分類器實現(xiàn)了圖片分類的效果。Nils back等[4]通過對花冠的顏色、形狀和紋理等方面的視覺詞袋的描述,也獲得了較好的識別準確率。柯逍等[5]通過標記矩陣與RGB相結(jié)合的方法實現(xiàn)了圖像分割,并使用SVM分類器對花卉圖像進行識別。張娟等[6]通過對梅花的外觀紋理和表面形狀特征進行提取,提出了一種識別梅花種類的方式,但識別方式不能通用于所有花卉,存在一定的局限性。白帆等[7]提出了一種基于花卉特征編碼分類的方式識別植物種類,但該方式對花卉的花蕊區(qū)域無法識別,也存在局限性。此外,張寧的K近鄰判別方法[8]、李萍的最近鄰準則[9]等方法都對植物分類的準確率有了顯著的提高。
為了進一步提高花卉種類識別的準確率,首先通過使用Gabor濾波器對圖片進行預處理操作。為了對同一張花卉圖片進行特征提取并對提取到的特征進行融合,使用卷積神經(jīng)網(wǎng)絡(luò)中的LeNet-5模型和GoogLeNet模型進行模擬試驗。最后,為了對花卉進行種類識別以及模型訓練,采用了SoftMax多分類器方法。
為了充分處理圖片中花卉的特征,采取混合卷積神經(jīng)網(wǎng)絡(luò)對圖片對象進行特征提取,具體流程如圖1所示。其中:卷積神經(jīng)網(wǎng)絡(luò)1是在傳統(tǒng)的LeNet-5模型[10]基礎(chǔ)上進行重新設(shè)計的,交叉連接是將網(wǎng)絡(luò)的第一池層向后連接,并與完全連接的層連接,輸出層由SoftMax分類器分類網(wǎng)絡(luò),輸入32×32像素的圖片。改進LeNet-5結(jié)構(gòu)的具體參數(shù)描述如表1所示,包括每層的類型(Type)、卷積核大小(Patch Size)、步長(Stride)以及每層輸出的大小(Output Size)。卷積神經(jīng)網(wǎng)絡(luò)2是為了對花卉圖像進行特征提取而采用的GoogLeNet網(wǎng)絡(luò)[11]中的Inception結(jié)構(gòu)。Inception的具體結(jié)構(gòu)如圖2所示。
Inception Module是GoogLeNet的核心組成單元,有多種嵌套結(jié)構(gòu)。通過多個卷積核提取圖像不同尺度的信息,最后進行融合,可以得到圖像更好的表征。低維嵌套主要采用的是一種濃密且壓縮的信息形式,本文的表達方式更加稀疏。
圖1 混合卷積神經(jīng)網(wǎng)絡(luò)框架
表1 改進的LeNet-5網(wǎng)絡(luò)參數(shù)
圖2 Inception結(jié)構(gòu)
當信號聚集時才會進行壓縮操作,本文采用1×1卷積、3×3卷積、5×5卷積和3×3最大池化。在這些卷積操作前需要對1×1卷積進行降維處理,1×1卷積中引入了ReLU非線性激活。因此,通過上述結(jié)構(gòu)可以提取到更多的特征信息且具有較好的稀疏性[12]。在獲得Inception結(jié)構(gòu)的結(jié)果后對其進行一次卷積和下采樣處理后輸入到全連接層,降維后得到一個與花卉特征1維數(shù)相同的特征向量即花卉特征2。
在提取到的兩個特征之后,需要將其融合在一起。從計算機的視角來說,深度學習算法會表現(xiàn)出局部極小的現(xiàn)象,這些現(xiàn)象對應的泛化性能較差,多特征融合可以降低陷入糟糕局部極小點的概率[13]。
通常情況下,在使用神經(jīng)網(wǎng)絡(luò)進行訓練時,大多數(shù)激活函數(shù)用于非線性因素,旨在提高線性模型的表達能力。但是,由于網(wǎng)絡(luò)層深度的變化,此方法導致輸入值在更改非線性變化之前發(fā)生,這將導致非線性函數(shù)的分布值范圍接近兩端,并且下端由于神經(jīng)網(wǎng)絡(luò)的灰度等級低,會降低訓練速度并導致結(jié)果難以收斂。BN算法使用標準化運算來處理輸入值并且發(fā)生在進行非線性更改之前,更改為標準正態(tài)分布。轉(zhuǎn)換后的輸入值將位于非線性轉(zhuǎn)換函數(shù)的范圍內(nèi),不僅能避免梯度丟失也有助于加快訓練速度。具體算法如下:
(1)以n個樣本為批次計算u個批次和批次變體σ的平均值[14]
(1)
(2)
(2)數(shù)據(jù)標準化處理
(3)
當獲得新數(shù)據(jù)Xi(平均值0,方差1)時,需要設(shè)置常數(shù)∈以防止批次方差σ從0開始。
(3)為了不破壞原始數(shù)據(jù)的特征分布,將數(shù)據(jù)進行歸一化處理,并進行重構(gòu)變換
yi=γixi+βi
(4)
(5)
βi=E[x]
(6)
式中:Var代表方差函數(shù);E代表平均值函數(shù)。
通過以上網(wǎng)絡(luò)訓練可得到γi與βi,從而恢復原始數(shù)據(jù)。
定義[15]:在非極限狀態(tài)下有一個常數(shù)為C的激活函數(shù),當該激活函數(shù)的一階導數(shù)大于或小于常數(shù)C且恒定為零時,該激活函數(shù)為飽和函數(shù),否則為軟飽和函數(shù)。
由于在進行BP算法(誤差逆?zhèn)鞑ニ惴?權(quán)重等參數(shù)更新時應用了卷積神經(jīng)網(wǎng)絡(luò),可證明產(chǎn)生梯度彌散問題的原因是飽和函數(shù)會導致卷積神經(jīng)網(wǎng)絡(luò)的性能大幅下降。目前大多采用的sigmod和tanh等激活函數(shù)都存在飽和問題。
Swish是Google在2017年10月提出的一種新型激活函數(shù),其原始公式為:
f(x)=xsigmod(x)
(7)
(8)
由公式(7)和公式(8)可得其圖像和導函數(shù)特性,如圖3所示。由圖3知,Swish函數(shù)具有有上界而無下界的特點,與多數(shù)激活函數(shù)一樣具有特殊的非單調(diào)性。同時,其一階導數(shù)具有平滑特性,避免了存在飽和的問題,明顯提高了卷積神經(jīng)網(wǎng)絡(luò)的性能。
圖3 Swish函數(shù)特性
為了提升花卉分類的準確率,采取偶對稱Gabor濾波器[16]對花卉圖像進行預處理,其一般形式如下:
(9)
(10)
式中:θ為濾波器的方向;f為花卉輪廓的頻率;[aθ,bθ]表示坐標軸[a,b]逆時針轉(zhuǎn)角度θ;δa和δb分別是沿著a和b軸的高斯包絡(luò)常量[17]。
由于Gabor函數(shù)與哺乳動物的視覺感受野相當吻合,且具有頻率和方向的選擇性。因此,通過Gabor濾波器處理后的圖像,不僅可以去除噪聲,還可以將圖像中的邊緣輪廓等特征不失真的保留下來,更有益于CNN模型的識別。
混合卷積神經(jīng)網(wǎng)絡(luò)模型在一個包含了5種花卉的圖片數(shù)據(jù)集上進行訓練和測試。該數(shù)據(jù)集包含了雛菊、玫瑰、向日葵、郁金香和蒲公英等5種花卉共約6 000幅多姿態(tài)、多光照的圖像,每種花卉具有約1 000張不同姿態(tài)、不同角度和不同光照條件的圖像,每幅圖片具有不同的尺寸。在卷積神經(jīng)網(wǎng)絡(luò)進行特征提取前,會將圖片尺寸統(tǒng)一為100×100,通過Gabor濾波器[18]對圖像進行預處理,如圖4所示。
圖4 原始數(shù)據(jù)集圖像與預處理后的數(shù)據(jù)集圖像
實驗模型由兩個特征提取層構(gòu)成,具體結(jié)構(gòu)如圖5所示。其中:第一個特征提取層由4層卷積池化層組成,并在池化層之后加入了BN層來進一步對輸入圖像進行特征向量的提取和優(yōu)化;第二個特征提取層沿用傳統(tǒng)的GoogLeNet中的Inception結(jié)構(gòu)對輸入圖像進行特征提取。實驗中的激活函數(shù)使用了最新的Swish激活函數(shù),可以有效避免神經(jīng)網(wǎng)絡(luò)陷入局部極值的情況。在得到兩個不同的特征向量后對其進行融合,本文使用了加權(quán)平均法的融合策略。由于在實際仿真中GoogLeNet模型的泛化性能略高于LeNet-5模型,設(shè)置GoogLeNet模型的權(quán)重為0.6、LeNet-5模型的權(quán)重為0.4,即最后將加權(quán)求和后得到的特征向量輸入到多分類器中進行花卉種類的識別和分類。
圖5 混合卷積神經(jīng)網(wǎng)絡(luò)模型
為了確保公平的衡量混合卷積神經(jīng)網(wǎng)絡(luò)模型的優(yōu)劣,單獨對傳統(tǒng)的GoogleNet模型和LeNet-5模型進行了仿真實驗。各模型均在迭代次數(shù)相同的情況下進行參數(shù)訓練,并設(shè)置在測試集上的兩個參數(shù)來衡量模型的優(yōu)劣,分別是準確率(train acc)和驗證集上的擬合率(val acc),具體數(shù)據(jù)如圖6和表2所示。其中:train acc和 val acc表示混合卷積神經(jīng)網(wǎng)絡(luò)模型的擬合和泛化能力;train acc2和val acc2表示GoogLeNet模型的擬合和泛化能力。
圖6 混合卷積神經(jīng)網(wǎng)絡(luò)與GoogLeNet模型的性能比較
從圖6和2表可以看出,優(yōu)化后的混合卷積神經(jīng)網(wǎng)絡(luò)模型在收斂速度上有了明顯提高,準確率達到96.8%,在象征泛化能力的擬合率上也提高了16個百分點。對于采用相同網(wǎng)絡(luò)結(jié)構(gòu)的GoogLeNet模型,優(yōu)化后的混合卷積神經(jīng)網(wǎng)絡(luò)模型在準確率上提高15個百分點,在擬合能力上達到了0.73,比GoogLeNet模型的泛化能力提高了4個百分點。
表2 混合卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的精度比較
在GoogLeNet和LeNet-5神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,對卷積神經(jīng)網(wǎng)絡(luò)進行重構(gòu)和設(shè)計優(yōu)化,提出了一種適用于花卉種類識別的混合卷積神經(jīng)網(wǎng)絡(luò)模型。實驗結(jié)果表明混合卷積神經(jīng)網(wǎng)絡(luò)在擬合能力方面比單一的LeNet-5模型和GoogLeNet模型分別提高了16和11個百分點達到了96.8%,泛化能力分別提高了16和4個百分點,有較好的識別效果,具有一定的應用和實踐價值。