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