廖明霜 羅遠(yuǎn)遠(yuǎn)
(塔里木大學(xué)信息工程學(xué)院,新疆 阿拉爾 843300)
鮮花在生活中很常見[1],中華民族對鮮花的喜愛淵源流長,鮮花承載著中華的文化禮儀,有人喜歡浪漫的玫瑰,有人喜歡誓言滿滿的紫羅蘭,有人喜歡百合的財(cái)富與富貴[2],還有很多鮮花[3],大多數(shù)人很難區(qū)分,需要通過經(jīng)驗(yàn)人介紹或者上網(wǎng)搜尋對比才能得到答案。隨著深度學(xué)習(xí)的發(fā)展[4-6],人工神經(jīng)網(wǎng)絡(luò)是近些年研究的前沿課題,同時(shí)在生物功能的啟發(fā)下,模擬神經(jīng)網(wǎng)絡(luò),采用大量的神經(jīng)元組成,在人臉識別領(lǐng)域、缺陷檢測領(lǐng)域得到了較好的應(yīng)用[7],人工神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的適應(yīng)性和學(xué)習(xí)性、非線性的魯棒能力、糾偏能力。通過深度學(xué)習(xí)方法自動識別花卉圖像信息是一種行之有效的方法。
國內(nèi)外開展了很多關(guān)于花的識別研究,其方法大多數(shù)是基于顏色特征、超聲波、人工經(jīng)驗(yàn)識別。劉浩洲等[8]提出了一種基于K-means聚類算法的獼猴桃花朵識別方法,利用K-means聚類分割得到包含花蕊在內(nèi)的4個類別圖像,并利用CNN網(wǎng)絡(luò)實(shí)現(xiàn)了獼猴桃花朵的檢測,檢測成功率為92.5%。Shi L等[9]設(shè)計(jì)了一種基于深度學(xué)習(xí)的花卉自動識別系統(tǒng),將花卉圖像上傳到算法系統(tǒng)進(jìn)行訓(xùn)練并識別,識別準(zhǔn)確率達(dá)100%;尚鈺瑩等基于YOLOv5s深度學(xué)習(xí),將自然場景蘋果花朵檢測中的應(yīng)用223發(fā)送至FLOWERS32數(shù)據(jù)集上預(yù)先訓(xùn)練好的CNN系統(tǒng)進(jìn)行識別,在測試集上的準(zhǔn)確率為95.00%。楊雅靜等[10]使用BP網(wǎng)絡(luò)神經(jīng)對花朵進(jìn)行多品種的識別,采用了relu激活函數(shù),準(zhǔn)確率為85%。苗芃等[11]提出針對植物圖像無法大規(guī)模的收集,數(shù)據(jù)量偏少的情況下,使用遷移學(xué)習(xí)的方法,不僅降低了訓(xùn)練的規(guī)模,而且提升了識別精度。崔明等[12]在草莓花朵識別算法研究中,利用形態(tài)學(xué)方法和連通管區(qū)域特征方式分析提取花朵區(qū)域特征。張怡等[13]使用ResNet對植物綠茶進(jìn)行特征提取,從識別模型的預(yù)測能力、收斂速度、模型大小和識別均衡性等角度探索了不同網(wǎng)絡(luò)深度和不同優(yōu)化算法的建模效果,為茶葉種類識別提供了一種快捷而高效的新方法。周俊博等[14]使用BP網(wǎng)絡(luò)神經(jīng)方法,設(shè)計(jì)了3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)了鳶尾花的分類,加入了L1正則化損失防止過擬合的現(xiàn)象,最終得到的效果接近100%,實(shí)驗(yàn)表明,使用BP網(wǎng)絡(luò)能夠有效提高植物分類,對植物分類研究具有重要的意義。
本文采用深度學(xué)習(xí)的方法,在經(jīng)典的ResNet模型上進(jìn)行改進(jìn),對圖像進(jìn)行增強(qiáng),也是對圖像進(jìn)行擴(kuò)充數(shù)量,提升模型在復(fù)雜場景下具有較高的泛化能力;對原始ResNet模型做改進(jìn),主要方法是將大卷積核替換成小卷積核,增加卷積次數(shù),緩和由大卷積核跨度大而帶來的特征提取信息丟失;將1×1卷積核替代經(jīng)典的池化層,因?yàn)槌鼗瘜釉谝欢▍^(qū)域內(nèi)會丟失信息。通過訓(xùn)練花卉數(shù)據(jù)模型能夠?qū)W到不同的花卉特征信息,進(jìn)而識別花朵。
本文從網(wǎng)絡(luò)上下載了牛津大學(xué)的102類別的花卉數(shù)據(jù),在新疆阿拉爾本地采集2類花朵;根據(jù)花朵的性質(zhì)類別,進(jìn)行分類做標(biāo)簽和分類,并做數(shù)據(jù)增強(qiáng),增加了圖片數(shù)量,在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)ResNet花卉識別模型。得到花朵識別在836張圖片中的測試結(jié)果,并給出了各個步驟的分析原因。
結(jié)合花卉的基本情況,為了滿足人們對圖像識別出花朵種類需求,本文主要在ResNet模型上做改進(jìn)實(shí)驗(yàn),采用減少參數(shù)量并且提升特征的方法,保證花卉識別正常的運(yùn)行,提升人們對花朵的認(rèn)知。
卷積網(wǎng)絡(luò)(convolutional neural network,CNN)是一種局部連接、權(quán)值共享的前饋式多層神經(jīng)網(wǎng)絡(luò),是為識別二維形狀而特殊設(shè)計(jì)的一種多層感知器,具有對平移、比例縮放、傾斜或其他形式的變形不變性的特點(diǎn),然而深度學(xué)習(xí)的最初框架來源于BP神經(jīng)網(wǎng)絡(luò),經(jīng)過知識的沉淀,學(xué)者門研發(fā)出基本的深度學(xué)習(xí)架構(gòu):輸入層、卷積層、池化層、全鏈接層、輸出層。最重要的是在卷積層不斷提取特征的過程,從而得到對某個事件的預(yù)測。卷積也叫作特征提取層,就是把卷積核中n×n個元素和原特征圖進(jìn)行相乘然后再做加法,得到新值,在此過程中,不斷將重要的信息提取出來,將不重要的信息弱化。全連接層可以包含多個全連接層,實(shí)際上就是普通神經(jīng)網(wǎng)絡(luò)層的隱藏層部分,全連接層的每個神經(jīng)節(jié)點(diǎn)都和前一層的每個神經(jīng)節(jié)點(diǎn)連接,同一層的神經(jīng)節(jié)點(diǎn)沒有連接,每一層的神經(jīng)節(jié)點(diǎn)通過連接線上的權(quán)值進(jìn)行前向傳播加權(quán)和計(jì)算得到下一層神經(jīng)節(jié)點(diǎn)的輸入。通過不斷的迭代,并且利用損失函數(shù)反向傳播更新學(xué)習(xí),以控制神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到本文所期望的特征。
ResNet的基本組成是由卷積層、池化層、歸一化層組成一個單元模塊,淺層的網(wǎng)絡(luò)難以對復(fù)雜背景的花卉進(jìn)行特征提取以及建立映射關(guān)系,深度殘差網(wǎng)絡(luò)ResNet模型在傳統(tǒng)的深度學(xué)習(xí)基礎(chǔ)上引入了殘差模塊,通過多個網(wǎng)絡(luò)的輸入輸出,對一個單元模塊進(jìn)行跳躍拼接,在特征提取的同時(shí)疊加上一步的信息,該方法很大程度上緩解了因網(wǎng)絡(luò)深度的增加而出現(xiàn)的梯度消失、網(wǎng)格退化等問題,加深了對目標(biāo)信息的完整,其深層次的原因是融合了上一層的卷積網(wǎng)絡(luò),這樣達(dá)到的效果在一定程度上不會比原來的差。
在深度學(xué)習(xí)中,大的卷積核雖然能一步提取小卷積核,提取到更復(fù)雜的信息,但是存在計(jì)算量過大的問題,導(dǎo)致運(yùn)算時(shí)間過長,不適合移動端的花卉識別研究。本文采用小卷積核替換大卷積核,如圖1所示,為了盡量減少卷積核過小帶來的特征提取下降問題,選擇將原始的7×7卷積核換成5×5卷積核,將原始的5×5卷積核替換成3×3卷積核,平衡模型參數(shù)和特征提取。以輸入256維的數(shù)為例,在使用過程中所需參數(shù)量為1179648;如果使用改進(jìn)后的殘差結(jié)構(gòu)進(jìn)行特征提取,所需參數(shù)量僅為69632。由數(shù)據(jù)對比結(jié)果可知,本文改進(jìn)的殘差塊結(jié)構(gòu)特征提取過程所需的參數(shù)量相比原有殘差結(jié)構(gòu)降低94%。改進(jìn)后的殘差塊結(jié)構(gòu)計(jì)算量顯著降低,有利于模型訓(xùn)練速度的提高、模型大小的壓縮和泛化性能的提高。
圖1 網(wǎng)絡(luò)修改前VS網(wǎng)絡(luò)修改后
雖然多次的小卷積核在一定程度上減小了感受野,對小目標(biāo)的特征能力較少,但是殘差網(wǎng)絡(luò)的復(fù)用特征方式,在一定程度上減少了感受野變小的影響。對于常見的花朵一般是常規(guī)物體,所以小目標(biāo)提取不是本次的研究點(diǎn)。
1×1卷積和池化的本質(zhì)是壓縮特征,在池化的過程中是不斷地在丟失非重要的信息,然而池化所保留的特征,不一定是本文想要的特征值,因此需要使用1×1卷積在達(dá)到此效果的同時(shí),又保留一些次重要的特征,從而達(dá)到充分提取特征的效果。如圖2的池化過程從(1,0,2,1)這個小區(qū)域中值保留一個最大值特征2,其余的特征直接被丟棄掉,顯然不符合這個特征提取的有效性。在圖2的1×1卷積核的通道卷積過程中通過卷積不斷地訓(xùn)練和反向傳播迭代,不斷優(yōu)化原始的卷積核的特征提取,這樣得到的效果不容易盲目的丟失,更符合特征提取的有效性。
圖2 池化過程VS通道卷積過程
本文數(shù)據(jù)主要來源于牛津大學(xué)的102種花卉種類部分圖像,如圖3所示。另外2種數(shù)據(jù)來源于新疆阿拉爾地區(qū)改良的花朵。采用的設(shè)備是OPPO PEQM00型號,攝像頭為2420萬像素,在晴天、陰天下進(jìn)行采集,后增圖像共1620張。對花卉圖像進(jìn)行預(yù)處理操作,按照7∶2∶1的比例分為訓(xùn)練集、測試集、驗(yàn)證集,通過驗(yàn)證集來了解在每次迭代的過程中,訓(xùn)練效果趨勢。在測試集中,加載訓(xùn)練集的模型給每張圖片做出結(jié)果判斷,最終得到模型的準(zhǔn)確度。
圖3 花卉種類示意圖
通過水平翻轉(zhuǎn)、旋轉(zhuǎn)90°、隨機(jī)剪裁,亮度增加、亮度減少、高斯噪點(diǎn)、椒鹽噪點(diǎn)等7種方式對所有樣本進(jìn)行數(shù)據(jù)預(yù)處理,見圖4。最后將所有圖像調(diào)整尺寸為224像素×n像素并統(tǒng)一將原圖裁剪為224像素×224像素。
圖4 數(shù)據(jù)增廣的方式圖
本實(shí)驗(yàn)為了達(dá)到最優(yōu)的實(shí)驗(yàn)效果,在訓(xùn)練過程中取最優(yōu)的實(shí)驗(yàn)參數(shù),基本參數(shù):輸入模型的批量尺寸為16,迭代次數(shù)epoch=50,學(xué)習(xí)率配置設(shè)置為30、60、90 3個階段,優(yōu)化器采用隨機(jī)梯度下降SGD(Stochastic Gradient Descent),優(yōu)化器的權(quán)重設(shè)置為0.00001,在最優(yōu)的動量基礎(chǔ)上選取尺度0.05、0.005、0.0005 3種學(xué)習(xí)率。在訓(xùn)練過程中將隨機(jī)殺死神經(jīng)元的方法設(shè)置為0.1,抑制神經(jīng)元過擬合。工作線程設(shè)置為2,在訓(xùn)練進(jìn)行每迭代1次驗(yàn)證1次,驗(yàn)證的指標(biāo)為“accuracy”,為防止打標(biāo)簽錯誤和學(xué)習(xí)太過呆板,設(shè)置平滑標(biāo)簽為0.2。
訓(xùn)練的硬件平臺:linux操作系統(tǒng),cpu為Intel(R)Xeon(R)CPU E5-2678 v3@2.50GHz,配備的固態(tài)硬盤為512GB和8TB機(jī)械硬盤,GPU為GeForce RTX 2080 Ti,python版本為3.7,深度學(xué)習(xí)框架為Pytorch1.11、CUDA11.6。python庫使用Anaconda3進(jìn)行管理。
改進(jìn)的ResNet模型在Stage1、Stage2、Stage3、Stage4將大模型替換成5×5卷積或者3×3卷積的方式,并在池化層替換成1×1卷積達(dá)到相同的特征傳遞,見圖5。在數(shù)據(jù)預(yù)處階段加入水平翻轉(zhuǎn)、旋轉(zhuǎn)90°、隨機(jī)剪裁、亮度增加、亮度減少、高斯噪點(diǎn)、椒鹽噪點(diǎn)等數(shù)據(jù)增強(qiáng)手段。與原始的ResNet模型相比,本文提出的方法有效提升了識別效率。主要是因?yàn)閿?shù)據(jù)增強(qiáng)的方式能夠使模型具有泛化性,在復(fù)雜背景下也能夠識別得較好。在小卷積核方面,雖然大卷積核能夠一次提取到想要的特征圖大小,但是本文使用的小卷積核經(jīng)過多次的提取特征也能達(dá)到想要的特征大小,在此階段中由于小卷積核迭代次數(shù)加深,對一些弱相關(guān)的特征進(jìn)行了保留,這大大加強(qiáng)了特征描述,從而進(jìn)一步提升網(wǎng)絡(luò)分類精度。
圖5 訓(xùn)練的精度圖
為了驗(yàn)證本文方法的有效性,本實(shí)驗(yàn)在836張圖像上進(jìn)行測試結(jié)果,見表1,并使用accuracy_top1、accuracy_top5、recall 3個評價(jià)指標(biāo)。從表1可以看出,與原始ResNet方法對比,分別提升了7.58%、7.26%、5.51%。改進(jìn)后的ResNet對照片的識別率會更高。
表1 測試結(jié)果圖
針對花卉識別檢測精度低、人工記憶模糊等情況,本文提出一種基于深度學(xué)習(xí)小卷積核花卉識別算法研究,提升ResNet基礎(chǔ)網(wǎng)絡(luò)模型識別精度。并對圖像進(jìn)行數(shù)據(jù)增廣、提升泛化能力,實(shí)驗(yàn)有效提升了花卉分類的精度。主要結(jié)論如下。
利用數(shù)據(jù)增廣的方法和對數(shù)據(jù)進(jìn)行預(yù)處理,如隨機(jī)剪裁、隨機(jī)噪點(diǎn)、隨機(jī)翻轉(zhuǎn)等,同時(shí)增加了數(shù)據(jù)集的數(shù)量,在一定程度上增加了模型的泛化能力,提升了模型的訓(xùn)練精度。通過比對圖發(fā)現(xiàn),僅利用數(shù)據(jù)增廣,識別精度就分別提升了6.36%、6.16%、3.6%。
將原始7×7的卷積核使用小卷積核5×5卷積核替代,將原始的5×5卷積核使用3×3的卷積核替代,并在池化的過程中,使用1×1卷積核來替代。這些手段主要目的是提升特征提取的能力,緩解特征在提取過程中丟失或者將不重要的噪點(diǎn)信息轉(zhuǎn)換成主要特征的錯誤傾向。在測試集上,小特征在數(shù)據(jù)增廣的基礎(chǔ)上,識別精度分別提升了1.22%、1.1%、1.91%。
本文提出的方法基于數(shù)據(jù)增廣和小卷積核對原始的殘差網(wǎng)絡(luò)進(jìn)行修改,有效提升了花朵的識別精度,接下來會進(jìn)一步研究和探討深度學(xué)習(xí)網(wǎng)絡(luò)模型的輕量化方向,以期模型能夠更好地在移動端使用。同時(shí),小卷積核造成的網(wǎng)絡(luò)過深在一定程度上對小目標(biāo)的特征提取不友好,接下來會繼續(xù)做增強(qiáng)小目標(biāo)提取能力的工作,提升其網(wǎng)絡(luò)使用價(jià)值。