邵良玉
(200082 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
花卉分類識(shí)別是植物識(shí)別領(lǐng)域的研究熱點(diǎn)之一,隨著人們生活水平的提高,花卉圖像的識(shí)別與分類能滿足非專業(yè)人員對(duì)花卉的認(rèn)知需求。目前針對(duì)花卉圖像分類識(shí)別的方法主要有2 種,一是基于手工特征的傳統(tǒng)方法,二是基于深度學(xué)習(xí)的方法。手工提取特征的傳統(tǒng)方法,指人為手動(dòng)設(shè)計(jì)一些算法,提取花卉的顏色、形狀、紋理等,通常分為4大類:閾值分割方法、邊緣分割方法、區(qū)域分割法、特定的理論工具,如基于模式識(shí)別和小波分析。NILSBACK 和 ZISSERAMAN[1]提出將花卉圖像的SIFT 特征和HOG 特征融合,使用支持向量機(jī) SVM進(jìn)行花卉分類識(shí)別,分類準(zhǔn)確率達(dá)76.3%;謝曉東[2]提出基于顯著性檢測(cè)圖像分割法,采用特征融合的方法對(duì)花卉分類。
近幾年,隨著科學(xué)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)出現(xiàn)了史無(wú)前例的技術(shù)革新。其中郭子琰[3]等基于卷積神經(jīng)網(wǎng)絡(luò)模型,并選用ReLU 激活函數(shù)代替?zhèn)鹘y(tǒng)的 Sigmoid 函數(shù),提高識(shí)別率。沈萍[4]等基于多隱層的深度卷積神經(jīng)網(wǎng)絡(luò),對(duì)花卉進(jìn)行識(shí)別分類。對(duì)于大量的圖片數(shù)據(jù),任意平[5]等基于改進(jìn)后的Alexnet 的花卉識(shí)別網(wǎng)絡(luò),效果良好。
本文提出基于VGG19 網(wǎng)絡(luò)模型,進(jìn)行對(duì)花卉的遷移學(xué)習(xí),通過(guò)對(duì)網(wǎng)絡(luò)的參數(shù)遷移,保留底層卷積,池化,對(duì)相關(guān)參數(shù)進(jìn)行微調(diào),構(gòu)建適合研究的花卉識(shí)別方法。實(shí)驗(yàn)表明,與未遷移的卷積神經(jīng)網(wǎng)絡(luò)相比,識(shí)別效果有明顯提升。
本文所用到的圖像數(shù)據(jù)來(lái)自于中國(guó)植物主題數(shù)據(jù)庫(kù),以5 種常見花卉作為研究對(duì)象,分別是雛菊、蒲公英、玫瑰花、向日葵和郁金香。5 類花卉試驗(yàn)樣本圖像共采集3 670 張,其中雛菊633 張,蒲公英898 張,玫瑰花641 張,向日葵699 張,郁金香799 張。
因數(shù)據(jù)數(shù)量較小,需要對(duì)原始數(shù)據(jù)進(jìn)行增加。使用keras 中的ImageDataGenerator 函數(shù)對(duì)圖片進(jìn)行水平翻轉(zhuǎn),隨機(jī)縮放,隨機(jī)剪切,對(duì)數(shù)據(jù)進(jìn)行擴(kuò)增,從而避免訓(xùn)練過(guò)擬合。共11 010 張圖片,其中2 000張作為測(cè)試集樣本,9 010張作為訓(xùn)練樣本,如圖1 所示。
圖1 花卉數(shù)據(jù)集Fig.1 Flower data set
2.1.1 VGGNet
VGG16net 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。包括16 個(gè)隱藏層(13 個(gè)卷積層和3 個(gè)全連接層)。從模塊1到模塊5 的卷積核數(shù)目分別是64,128,256,512和512,所有卷積核大小為 3×3,步長(zhǎng)為 1。共有5 個(gè)大小都為 2×2 的最大池化層,步長(zhǎng)為 2。共有3 個(gè)全連接層,前2 個(gè)全連接層都有 4 096 輸出節(jié)點(diǎn),第3 個(gè)全連接層共 1 000 輸出節(jié)點(diǎn)。最后一層為softmax 層。所有隱藏層后都帶有 ReLU 非線性激活函數(shù)。通過(guò)網(wǎng)絡(luò)層數(shù)和通道加深,VGGNet 可以提取更多的圖像信息。
圖2 VGG16 網(wǎng)絡(luò)模型Fig.2 VGG16 network model
2.1.2 VGG16 遷移學(xué)習(xí)與模型構(gòu)建
(1)實(shí)驗(yàn)1
利用 ImageNet 上預(yù)先訓(xùn)練好的VGG16 模型[8],去掉已有的全連接層和 Softmax 層部分,輸入層、池化層和13 個(gè)卷積層都保留,并且保留其輸入圖像格式 150×150,保留其權(quán)重。將卷積和池化層遷移到花卉圖像分類模型上,并在模型后面添加3層全連接層,每層的激活函數(shù)是ReLU 函數(shù);最后一層全連接,激活函數(shù)采用softmax 函數(shù),得到5種花卉的分類。最后將預(yù)訓(xùn)練好的網(wǎng)絡(luò)去微調(diào)花卉數(shù)據(jù)庫(kù)的訓(xùn)練,采用隨機(jī)梯度下降法對(duì)樣本進(jìn)行優(yōu)化,如圖3 所示。
圖3 花卉圖像分類遷移學(xué)習(xí)模型圖Fig.3 Flower image classification transfer learning model
(2)實(shí)驗(yàn)2
將原始圖片繼續(xù)數(shù)據(jù)增強(qiáng)。在實(shí)驗(yàn)1 的基礎(chǔ)上,先對(duì)整個(gè)卷積層進(jìn)行“凍結(jié)”,再對(duì)部分卷積層進(jìn)行“解凍”[9],使解凍的卷積層的權(quán)重發(fā)生改變,然后再進(jìn)行全連接層的訓(xùn)練,進(jìn)行微調(diào),重新驗(yàn)證訓(xùn)練,得出實(shí)驗(yàn)結(jié)果,如圖4 所示。
圖4 “解凍”卷積層示意圖Fig.4 Schematic diagram of "thawing" convolution layer
2.1.3 模型分類器參數(shù)設(shè)置
本文使用ReLU 激活函數(shù)為網(wǎng)絡(luò)添加非線性因素,計(jì)算速度快,公式為:
最后一層采用Softmax[10],它是全連接層后接的常用激活函數(shù),其函數(shù)是Sigmoid 函數(shù)的改進(jìn)。此函數(shù)主要用于多分類,公式為:
從式(2)可知,Softmax 函數(shù)計(jì)算出每個(gè)值所占比率,保證總和為 1,輸出向量即為各類的概率,可以對(duì)所有函數(shù)做歸一化。
由于批量梯度下降法實(shí)驗(yàn)過(guò)程較慢,所有本研究采用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)法,隨著權(quán)值ω迭代到最優(yōu)解,如式(3)所示,避免多個(gè)極小值的出現(xiàn)。
式中:h(x)——要擬合的函數(shù);J(ω)——損失函數(shù);m——條數(shù)記錄;i——參數(shù)的個(gè)數(shù)。
訓(xùn)練環(huán)境為Windows10 系統(tǒng),計(jì)算機(jī)配置為Intel(R)Core(TM)i5-9400 CPU @ 4.00 GHz,內(nèi)存16 GB,顯卡為NVIDIA GeForce 1650,訓(xùn)練使用的深度學(xué)習(xí)框架為Tensorflow 2.3.0,編程語(yǔ)言為Python3.7.4。
3.2.1 實(shí)驗(yàn)1 訓(xùn)練結(jié)果
首先下載ImageNet 上訓(xùn)練過(guò)的VGG16 模型,將模型的全連接層替換為適合本研究的5 分類的分類層,加載卷積的權(quán)重參數(shù)保持不變,不加載全連接層。將圖片批量放進(jìn)模型,采用平移、裁剪和亮度調(diào)整等方法進(jìn)行圖像歸一化和圖像增強(qiáng),采用隨機(jī)取樣的方法,將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,比例8∶2,保存結(jié)果。模型設(shè)置初始學(xué)習(xí)率設(shè)置為0.001,動(dòng)量為0.9,迭代次數(shù)為20 次,輸入批量大小為64。得到訓(xùn)練集的準(zhǔn)確率為96.75%,驗(yàn)證集的準(zhǔn)確率為80.15%。實(shí)驗(yàn)結(jié)果如圖5 所示。
由圖5 可知,圖片只進(jìn)行數(shù)據(jù)增強(qiáng)操作,然后利用VGG16 網(wǎng)絡(luò)卷積基進(jìn)行特征提取,再對(duì)新添加的全連接層進(jìn)行訓(xùn)練,從而導(dǎo)致訓(xùn)練層的增加,使代碼更加復(fù)雜,導(dǎo)致出現(xiàn)過(guò)擬合情況,無(wú)法提高驗(yàn)證準(zhǔn)確率。
圖5 實(shí)驗(yàn)1 結(jié)果Fig.5 Results of Experiment 1
3.2.2 實(shí)驗(yàn)2 訓(xùn)練結(jié)果
為提高訓(xùn)練準(zhǔn)確率,降低訓(xùn)練過(guò)程中的過(guò)擬合,仍選擇實(shí)驗(yàn)一中的預(yù)處理模型,接著對(duì)前10層卷積層進(jìn)行“凍結(jié)”,其余的層保證參數(shù)不變,同樣保證全連接層和優(yōu)化器的參數(shù)不變,迭代50次,得到的訓(xùn)練集的準(zhǔn)確率為99.56%,驗(yàn)證集的準(zhǔn)確率為89.1%。實(shí)驗(yàn)結(jié)果如圖6 所示。
圖6 實(shí)驗(yàn)2 結(jié)果Fig.6 Results of Experiment 2
由圖6 可知,通過(guò)對(duì)部分卷積層的“凍結(jié)”,使網(wǎng)絡(luò)結(jié)構(gòu)得到優(yōu)化,不僅提高了網(wǎng)絡(luò)模型的性能,而且驗(yàn)證準(zhǔn)確率也得到大幅提升,在小規(guī)模圖像集上也可以取得較好的識(shí)別效率,使遷移學(xué)習(xí)確實(shí)對(duì)小樣本識(shí)別分類具有可行性。
3.2.3 不同分類算法實(shí)驗(yàn)對(duì)比
本研究采用的圖像數(shù)據(jù)來(lái)自中國(guó)植物主題數(shù)據(jù)庫(kù),選取的訓(xùn)練樣本占80%。實(shí)驗(yàn)發(fā)現(xiàn),用本文的測(cè)試方法具有較高的識(shí)別率,達(dá)到89.1%。具體實(shí)驗(yàn)結(jié)果見表1。
表1 不同算法的實(shí)驗(yàn)結(jié)果對(duì)比Tab.1 Comparison of experimental results of different algorithms
本文提出一種遷移學(xué)習(xí)模型的花卉圖像識(shí)別分類方法,構(gòu)建了VGG16 的花卉遷移學(xué)習(xí)識(shí)別模型,并且進(jìn)行微調(diào)實(shí)驗(yàn),構(gòu)建新的全連接層,進(jìn)行訓(xùn)練驗(yàn)證,得到新的識(shí)別模型。實(shí)驗(yàn)結(jié)果表明,將ImageNet 數(shù)據(jù)集得到1 000 類的訓(xùn)練模型遷移到小規(guī)模圖像集中分類得到5 種花卉的識(shí)別,再進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)微調(diào),從而得到良好的訓(xùn)練結(jié)果,驗(yàn)證方法可行。這種方法不僅避免訓(xùn)練模型的不足,而且節(jié)省了大量時(shí)間,得到良好的結(jié)果。本文僅提出一種模型的遷移學(xué)習(xí)對(duì)5 種花卉進(jìn)行識(shí)別,是否能在其他數(shù)據(jù)集中也能達(dá)到良好效果,下一步的工作,應(yīng)該應(yīng)用到其他種類的數(shù)據(jù)集,增加樣本集種類和數(shù)量,提高分類識(shí)別率。