廖明霜 羅遠遠
(塔里木大學信息工程學院,新疆 阿拉爾 843300)
鮮花在生活中很常見[1],中華民族對鮮花的喜愛淵源流長,鮮花承載著中華的文化禮儀,有人喜歡浪漫的玫瑰,有人喜歡誓言滿滿的紫羅蘭,有人喜歡百合的財富與富貴[2],還有很多鮮花[3],大多數人很難區分,需要通過經驗人介紹或者上網搜尋對比才能得到答案。隨著深度學習的發展[4-6],人工神經網絡是近些年研究的前沿課題,同時在生物功能的啟發下,模擬神經網絡,采用大量的神經元組成,在人臉識別領域、缺陷檢測領域得到了較好的應用[7],人工神經網絡具有很強的適應性和學習性、非線性的魯棒能力、糾偏能力。通過深度學習方法自動識別花卉圖像信息是一種行之有效的方法。
國內外開展了很多關于花的識別研究,其方法大多數是基于顏色特征、超聲波、人工經驗識別。劉浩洲等[8]提出了一種基于K-means聚類算法的獼猴桃花朵識別方法,利用K-means聚類分割得到包含花蕊在內的4個類別圖像,并利用CNN網絡實現了獼猴桃花朵的檢測,檢測成功率為92.5%。Shi L等[9]設計了一種基于深度學習的花卉自動識別系統,將花卉圖像上傳到算法系統進行訓練并識別,識別準確率達100%;尚鈺瑩等基于YOLOv5s深度學習,將自然場景蘋果花朵檢測中的應用223發送至FLOWERS32數據集上預先訓練好的CNN系統進行識別,在測試集上的準確率為95.00%。楊雅靜等[10]使用BP網絡神經對花朵進行多品種的識別,采用了relu激活函數,準確率為85%。苗芃等[11]提出針對植物圖像無法大規模的收集,數據量偏少的情況下,使用遷移學習的方法,不僅降低了訓練的規模,而且提升了識別精度。崔明等[12]在草莓花朵識別算法研究中,利用形態學方法和連通管區域特征方式分析提取花朵區域特征。張怡等[13]使用ResNet對植物綠茶進行特征提取,從識別模型的預測能力、收斂速度、模型大小和識別均衡性等角度探索了不同網絡深度和不同優化算法的建模效果,為茶葉種類識別提供了一種快捷而高效的新方法。周俊博等[14]使用BP網絡神經方法,設計了3層BP神經網絡結構,實現了鳶尾花的分類,加入了L1正則化損失防止過擬合的現象,最終得到的效果接近100%,實驗表明,使用BP網絡能夠有效提高植物分類,對植物分類研究具有重要的意義。
本文采用深度學習的方法,在經典的ResNet模型上進行改進,對圖像進行增強,也是對圖像進行擴充數量,提升模型在復雜場景下具有較高的泛化能力;對原始ResNet模型做改進,主要方法是將大卷積核替換成小卷積核,增加卷積次數,緩和由大卷積核跨度大而帶來的特征提取信息丟失;將1×1卷積核替代經典的池化層,因為池化層在一定區域內會丟失信息。通過訓練花卉數據模型能夠學到不同的花卉特征信息,進而識別花朵。
本文從網絡上下載了牛津大學的102類別的花卉數據,在新疆阿拉爾本地采集2類花朵;根據花朵的性質類別,進行分類做標簽和分類,并做數據增強,增加了圖片數量,在此基礎上設計并實現ResNet花卉識別模型。得到花朵識別在836張圖片中的測試結果,并給出了各個步驟的分析原因。
結合花卉的基本情況,為了滿足人們對圖像識別出花朵種類需求,本文主要在ResNet模型上做改進實驗,采用減少參數量并且提升特征的方法,保證花卉識別正常的運行,提升人們對花朵的認知。
卷積網絡(convolutional neural network,CNN)是一種局部連接、權值共享的前饋式多層神經網絡,是為識別二維形狀而特殊設計的一種多層感知器,具有對平移、比例縮放、傾斜或其他形式的變形不變性的特點,然而深度學習的最初框架來源于BP神經網絡,經過知識的沉淀,學者門研發出基本的深度學習架構:輸入層、卷積層、池化層、全鏈接層、輸出層。最重要的是在卷積層不斷提取特征的過程,從而得到對某個事件的預測。卷積也叫作特征提取層,就是把卷積核中n×n個元素和原特征圖進行相乘然后再做加法,得到新值,在此過程中,不斷將重要的信息提取出來,將不重要的信息弱化。全連接層可以包含多個全連接層,實際上就是普通神經網絡層的隱藏層部分,全連接層的每個神經節點都和前一層的每個神經節點連接,同一層的神經節點沒有連接,每一層的神經節點通過連接線上的權值進行前向傳播加權和計算得到下一層神經節點的輸入。通過不斷的迭代,并且利用損失函數反向傳播更新學習,以控制神經網絡學習得到本文所期望的特征。
ResNet的基本組成是由卷積層、池化層、歸一化層組成一個單元模塊,淺層的網絡難以對復雜背景的花卉進行特征提取以及建立映射關系,深度殘差網絡ResNet模型在傳統的深度學習基礎上引入了殘差模塊,通過多個網絡的輸入輸出,對一個單元模塊進行跳躍拼接,在特征提取的同時疊加上一步的信息,該方法很大程度上緩解了因網絡深度的增加而出現的梯度消失、網格退化等問題,加深了對目標信息的完整,其深層次的原因是融合了上一層的卷積網絡,這樣達到的效果在一定程度上不會比原來的差。
在深度學習中,大的卷積核雖然能一步提取小卷積核,提取到更復雜的信息,但是存在計算量過大的問題,導致運算時間過長,不適合移動端的花卉識別研究。本文采用小卷積核替換大卷積核,如圖1所示,為了盡量減少卷積核過小帶來的特征提取下降問題,選擇將原始的7×7卷積核換成5×5卷積核,將原始的5×5卷積核替換成3×3卷積核,平衡模型參數和特征提取。以輸入256維的數為例,在使用過程中所需參數量為1179648;如果使用改進后的殘差結構進行特征提取,所需參數量僅為69632。由數據對比結果可知,本文改進的殘差塊結構特征提取過程所需的參數量相比原有殘差結構降低94%。改進后的殘差塊結構計算量顯著降低,有利于模型訓練速度的提高、模型大小的壓縮和泛化性能的提高。

圖1 網絡修改前VS網絡修改后
雖然多次的小卷積核在一定程度上減小了感受野,對小目標的特征能力較少,但是殘差網絡的復用特征方式,在一定程度上減少了感受野變小的影響。對于常見的花朵一般是常規物體,所以小目標提取不是本次的研究點。
1×1卷積和池化的本質是壓縮特征,在池化的過程中是不斷地在丟失非重要的信息,然而池化所保留的特征,不一定是本文想要的特征值,因此需要使用1×1卷積在達到此效果的同時,又保留一些次重要的特征,從而達到充分提取特征的效果。如圖2的池化過程從(1,0,2,1)這個小區域中值保留一個最大值特征2,其余的特征直接被丟棄掉,顯然不符合這個特征提取的有效性。在圖2的1×1卷積核的通道卷積過程中通過卷積不斷地訓練和反向傳播迭代,不斷優化原始的卷積核的特征提取,這樣得到的效果不容易盲目的丟失,更符合特征提取的有效性。

圖2 池化過程VS通道卷積過程
本文數據主要來源于牛津大學的102種花卉種類部分圖像,如圖3所示。另外2種數據來源于新疆阿拉爾地區改良的花朵。采用的設備是OPPO PEQM00型號,攝像頭為2420萬像素,在晴天、陰天下進行采集,后增圖像共1620張。對花卉圖像進行預處理操作,按照7∶2∶1的比例分為訓練集、測試集、驗證集,通過驗證集來了解在每次迭代的過程中,訓練效果趨勢。在測試集中,加載訓練集的模型給每張圖片做出結果判斷,最終得到模型的準確度。

圖3 花卉種類示意圖
通過水平翻轉、旋轉90°、隨機剪裁,亮度增加、亮度減少、高斯噪點、椒鹽噪點等7種方式對所有樣本進行數據預處理,見圖4。最后將所有圖像調整尺寸為224像素×n像素并統一將原圖裁剪為224像素×224像素。

圖4 數據增廣的方式圖
本實驗為了達到最優的實驗效果,在訓練過程中取最優的實驗參數,基本參數:輸入模型的批量尺寸為16,迭代次數epoch=50,學習率配置設置為30、60、90 3個階段,優化器采用隨機梯度下降SGD(Stochastic Gradient Descent),優化器的權重設置為0.00001,在最優的動量基礎上選取尺度0.05、0.005、0.0005 3種學習率。在訓練過程中將隨機殺死神經元的方法設置為0.1,抑制神經元過擬合。工作線程設置為2,在訓練進行每迭代1次驗證1次,驗證的指標為“accuracy”,為防止打標簽錯誤和學習太過呆板,設置平滑標簽為0.2。
訓練的硬件平臺:linux操作系統,cpu為Intel(R)Xeon(R)CPU E5-2678 v3@2.50GHz,配備的固態硬盤為512GB和8TB機械硬盤,GPU為GeForce RTX 2080 Ti,python版本為3.7,深度學習框架為Pytorch1.11、CUDA11.6。python庫使用Anaconda3進行管理。
改進的ResNet模型在Stage1、Stage2、Stage3、Stage4將大模型替換成5×5卷積或者3×3卷積的方式,并在池化層替換成1×1卷積達到相同的特征傳遞,見圖5。在數據預處階段加入水平翻轉、旋轉90°、隨機剪裁、亮度增加、亮度減少、高斯噪點、椒鹽噪點等數據增強手段。與原始的ResNet模型相比,本文提出的方法有效提升了識別效率。主要是因為數據增強的方式能夠使模型具有泛化性,在復雜背景下也能夠識別得較好。在小卷積核方面,雖然大卷積核能夠一次提取到想要的特征圖大小,但是本文使用的小卷積核經過多次的提取特征也能達到想要的特征大小,在此階段中由于小卷積核迭代次數加深,對一些弱相關的特征進行了保留,這大大加強了特征描述,從而進一步提升網絡分類精度。

圖5 訓練的精度圖
為了驗證本文方法的有效性,本實驗在836張圖像上進行測試結果,見表1,并使用accuracy_top1、accuracy_top5、recall 3個評價指標。從表1可以看出,與原始ResNet方法對比,分別提升了7.58%、7.26%、5.51%。改進后的ResNet對照片的識別率會更高。

表1 測試結果圖
針對花卉識別檢測精度低、人工記憶模糊等情況,本文提出一種基于深度學習小卷積核花卉識別算法研究,提升ResNet基礎網絡模型識別精度。并對圖像進行數據增廣、提升泛化能力,實驗有效提升了花卉分類的精度。主要結論如下。
利用數據增廣的方法和對數據進行預處理,如隨機剪裁、隨機噪點、隨機翻轉等,同時增加了數據集的數量,在一定程度上增加了模型的泛化能力,提升了模型的訓練精度。通過比對圖發現,僅利用數據增廣,識別精度就分別提升了6.36%、6.16%、3.6%。
將原始7×7的卷積核使用小卷積核5×5卷積核替代,將原始的5×5卷積核使用3×3的卷積核替代,并在池化的過程中,使用1×1卷積核來替代。這些手段主要目的是提升特征提取的能力,緩解特征在提取過程中丟失或者將不重要的噪點信息轉換成主要特征的錯誤傾向。在測試集上,小特征在數據增廣的基礎上,識別精度分別提升了1.22%、1.1%、1.91%。
本文提出的方法基于數據增廣和小卷積核對原始的殘差網絡進行修改,有效提升了花朵的識別精度,接下來會進一步研究和探討深度學習網絡模型的輕量化方向,以期模型能夠更好地在移動端使用。同時,小卷積核造成的網絡過深在一定程度上對小目標的特征提取不友好,接下來會繼續做增強小目標提取能力的工作,提升其網絡使用價值。