張揚虎,白 琳,2**,陳峰練,張 茜,李淘深,2
(1.廣西大學計算機與電子信息學院,廣西南寧 530004; 2.廣西高校并行與分布式計算技術重點實驗室,廣西南寧 530004; 3.廣西醫科大學第一附屬醫院,廣西南寧 530021)
棉花生產關系到國家發展的點點滴滴,棉花不僅是人民穿著的重要材料來源,而且在疫情期間,口罩、防護服等醫護用品的需求劇增,棉花的供給變得更為重要。棉花打頂作為棉花生產工作中的一個重要環節,整體機械化低下,導致棉花生產的人工成本居高不下。打頂一般在植物的枝條修剪定型期進行,及時打頂既能消除棉花頂芽的生長優勢特性,還能調節棉花內部的養分配比,使棉鈴獲取更多的養分,增加鈴重。另外打頂還有控制植株高度,改善生產基地的植株光照情況,以達到增產增收的作用。目前,我國對棉花的機械打頂主要采用“一刀切”的方法,這種方式對棉株的棉鈴、花蕾造成損傷,影響棉花的產量。因此,提高棉花打頂技術,實現棉花頂芽檢測和識別的機械化、智能化,具有很強的現實意義。
目前,我國機械打頂常用的機器視覺技術主要有3種:基于BP神經網絡的機器視覺技術[1]、基于機器視覺技術的棉株識別定位算法[2]、雙目視覺技術[3]。近年來,隨著計算機硬件的升級換代及性能大幅提升,機器學習領域得到飛速發展,而機器學習對于改進農業生產具有重大的助力作用。深度學習(Deep Learning,DL)是機器學習領域中一個新的研究方向[4]。2014年,Huo等[5]提出一種基于區域偏好和深度卷積運算的目標檢測算法(Regions with CNN features,RCNN)。這一創新打破了目標檢測技術的僵局,掀起深度學習機制下如何實施更優良的目標檢測的新研究熱潮。感興趣區域對于目標提取的途徑是解析圖像中存在的各種信息,如圖形紋理、物體邊緣、特征大小等,同時標記盡可能少的窗口,來找到所有可能包含所需目標的區域。這不但要保證較高的召回率,還要盡可能地降低時間復雜度。目前基于深度學習的目標檢測算法的研究主要分為兩種方向:一種是通過感興趣區域提取特征的算法,例如RCNN、SPP-net[6]、Fast RCNN、Mask RCNN[7]和R-FCN-3000[8]等;另一種是基于回歸計算的算法,例如YOLO[9]、YOLOv2[10]、YOLOv3[11]、YOLOv4[12]和SSD[13]。
經過RCNN和Fast RCNN[14]的積累,Girshick[15]在2016年提出新的算法模型Faster RCNN,在結構上,Faster RCNN將特征提取、感興趣區域提取、邊框回歸、分類集成到一個網絡中,通過構建一個RPN網絡,使得產生候選建議框的速度大幅提升。
本研究將農業生產實踐與深度學習算法結合,使用深度卷積神經網絡技術,通過在Faster RCNN模型中融入多種深度網絡模型,提出一種性能更好的改進深度學習模型。旨在將該模型用于農業自動化檢測和識別棉花頂芽,減少人工重復的復雜田間勞動,提高棉花勞作工作效率,對促進棉花科學種植,棉花生產機械化自動化,提高棉花產量,提高棉農和相關企業收益,保證國家棉紡織業原材料穩定來源,維護國家穩定具有重要意義。
本研究提出的改進深度學習模型,以最新的深度卷積神經網絡算法為基礎,將深度網絡模型ResNet融入到Faster RCNN網絡模型中。改進深度學習模型在網絡的高層涵蓋多種網絡模型的優點,獲得信息量更豐富,得到對于棉花頂芽檢測與識別更為有益的圖像特征,從理論上保證更優異的棉花頂芽的檢測與識別結果。
1.1.1 Faster RCNN模型概述
Faster RCNN是目標檢測算法模型中較早提出來的兩階段模型,框架整體分為4個部分:
①Conv layers提取特征圖。作為一種CNN網絡系列目標檢測方法,Faster RCNN首先使用一組基礎的conv+relu+pooling層提取輸入圖像的圖片特征,用于后續的RPN層和全連接層。
②區域提案網絡(Region Proposal Network,RPN)。RPN網絡主要用于生成候選區域(Region proposals),首先生成一堆錨框(Anchor box),對其進行裁剪過濾后通過softmax函數判斷錨框屬于前景(Foreground)或者后景(Background),即是物體或者不是物體,所以這是一個二分類,最后形成較精確的候選框(Proposals)。
③ROI池化層。該層利用RPN生成的proposals和圖片特征,得到固定大小的候選框特征圖,可利用全連接操作來進行目標識別和定位。
④Classifier。會將ROI池化層形成固定大小的特征圖進行全連接操作,利用softmax進行具體類別的分類,同時獲得物體的精確位置。
1.1.2 ResNet模型概述
ResNet于2015年提出,特別深的神經網絡是很難訓練的,因為存在梯度消失和梯度爆炸問題。傳統對應的解決方案是數據的初始化(Normlized initializatiton)和正則化(Batch normlization),這兩種方案雖然解決了梯度的問題,但同時帶來另外的問題,就是網絡性能的退化和錯誤率上升。而殘差設計用來解決退化問題,同時也解決了梯度問題。ResNet是由殘差塊(Residual block)構建的,如公式(1)(2)所示。式(1)是殘差模塊中的基本形式,是恒等映射,F是網絡中的變化,式(2)是對于疊加之后值的變換,在原始殘差模塊中是relu函數,網絡通過學習F的參數來減小損失值。
yl=h(xl)+F(xl,Wl),
(1)
xl+1=f(yl)。
(2)
改進深度學習模型的整體架構如圖1所示,模型基于深度網絡架構進行關鍵區域選取、特征學習,以及目標識別與分類的過程如①-④所示:

圖1 改進深度學習模型框架
①獲取圖片特征。使用預訓練好的ResNet-101網絡提取圖片特征,通過網絡的進一步處理得到下一部分區域提案網絡(Region Proposal Network,RPN)需要的圖片特征(conv5_3)。
②使用ResNet-101模型與RPN網絡獲取待檢測棉花頂芽的候選框Proposal,算法具體流程如算法1-1所示。
算法1-1候選框Proposal生成算法:
輸入:圖片特征conv5_3
輸出:候選框proposals
Step 1:首先將圖片特征conv5_3輸入卷積層conv(3,3,512,1,1),輸出的圖片特征rpn_conv/3×3尺寸和通道數均保持不變。
Step 2:將圖片特征rpn_conv/3×3輸入給卷積層conv(1,1,36,1,1)得到rpn_box_pred。
Step 3:將rpn_conv/3×3輸入給conv(1,1,18,1,1)得到類別得分rpn_cls_score。
Step 4:將rpn_cls_score輸入reshape_layer,softmax,reshape_layer,得到概率rpn_cls_prob_reshap。
Step 5:將rpn_bbox_pred和rpn_cls_prob_reshape以及im_info輸入給proposal_layer得到候選識別區域rois,即RPN網絡最終輸出的proposals。
每一個卷積層都能使用經過訓練的卷積核,從前面的池化層中學習更高級、不變性更強的特征信息,如下面公式所示:
(3)

③通過ROI池化層得到綜合的proposals特征。將rois和conv5_3輸入給roi_pool得到pool_5,關于roi_pool的輸入,尺寸大小是任意的,但輸出的特征都是長度為固定的。
池化層將采用平均運算子,對前一個卷積映射層學習到的數據特征進行聚合收攏,把重要的特征保留加強,噪聲和無用特征濾除。計算推理公式為
(4)

④根據poposals特征進行框回歸和物體分類,算法具體流程如算法1-2所示。
算法1-2類別預測框回歸算法:
輸入:proposals特征pool_5
輸出:物體的邊框bbox_pred和物體的類別cls_prob
Step 1:將pool_5連續輸入兩個全連接層得到fc_7。
Step 2:將fc_7輸入全連接層得到bbox_pred,得到最終的proposals。
Step 3:將fc輸入全連接層得到物體類別得分cls_score。
Step 4:將cls_score經過softmax層得到cls_prob,即proposal屬于各個物體的概率。
在softmax層中,假定訓練集如下:
{(x(1),y(1)),…,(x(m),y(m))},
(5)
y由0或1擴大到{1,2,3,…,k}共有k類。
對于測試輸入x則需要利用如下計算輸入每個類別的j的條件概率值為
(6)
假設函數如(7)式輸出一個k維的向量,那么每一維的向量分量則代表此類別j下的p值,同時全部向量的元素條件概率之和等于1,而θ是模型訓練更新的參數:

(7)
Softmax回歸的代價函數在定義示性函數為1{·}(大括號中表達式若真結果則為1,若假結果則為0)后,為了防止參數冗余導致計算誤差,還會加入權重衰減策略:
J(θ)=
(8)
而對于式(8)的最小化問題,通常采用梯度下降求偏導進行迭代優化,得到一個相對準確的值。那么梯度公式則可表示為
p(y(i)=j|x(i);θ))]+λθj。
(9)
由于RPN和Faster RCNN兩個網絡獨立運行,所以本研究通過共享卷積特征的方法,將兩種深度學習方法融合構建出改進深度學習模型架構,訓練方式有以下兩種:
①交替訓練。首先進行網絡參數初始化,接著利用預處理模型訓練RPN網絡,下一步再把RPN網絡的輸出輸入到Faster RCNN目標檢測網絡中,然后在訓練中更新權重參數,并對RPN網絡進行更新迭代,最后不斷重復上述步驟,得到一個訓練好的改進網絡模型。
②近似聯合訓練。將RPN網絡和Faster RCNN目標檢測網絡合二為一,正向傳播時正常進行,反向傳播則合并兩個網絡在共享層的所有損失。這種方法忽視了感興趣區域計算出坐標預測梯度值,所以稱作近似聯合訓練。
本研究所用到的棉花頂芽圖片數據,是由新疆棉花產地的生產員拍攝獲取,部分圖片如圖2所示。棉花頂芽位于棉花主莖的頂端,周圍常生長繁茂的主莖葉,如圖2紅框所示。頂芽的生長占據優勢,同時抑制鄰近側芽的生長,使側芽處于休眠狀態,這種現象也叫做頂端優勢。摘除頂芽,便可消除頂端優勢,以促使側芽萌發、增加側枝數目,達到增產和控制花木株型的目的。

圖2 棉花頂芽
棉花是成行種植的,但是隨著植株的生長,相鄰植株的莖葉會爭搶生長空間,同時由于相鄰植株生長態勢的差異性,會造成相鄰植株的莖葉高低錯落地遮擋、掩蓋,另外還存在一些雜草和植株纏繞生長。這些因素造成圖像空間背景的復雜性,因此棉花雜質探測模型要有很高的準確率。
本研究獲取的2 000張棉花開花的圖片,需要進行前期數據預處理,清除不良模糊的圖片;接著對圖片數量進行數據增強增加訓練樣本,同時按照PASCAL VOC2007所要求的數據集命名存放格式進行整理。數據集訓練樣本標注通過標簽(Labelimg)制作完成,具體過程如下:
①進行完數據預處理后對剩余圖片進行數據增強,翻轉復制。
②對4 000余張圖片按照PASCAL VOC2007所要求的命名格式進行批量命名,以便后期對棉花頂芽數據集進行訓練。
③利用Labelimg圖片標注工具對每張棉花頂芽圖片進行目標框標注,同時剔除不良圖片,并將標注的棉花頂芽的位置信息以xml數據格式保存
④根據標注生成的xml文件,利用Python語言隨機生成棉花頂芽圖片數據集的4個測試訓練txt后綴文件:test.txt是測試集,train.txt是訓練集,val.txt是驗證集,trainval.txt是訓練和驗證集。
⑤將整理好的棉花頂芽數據集圖片生成xml文件,同時將txt文件按照PASCAL VOC2007提供文件存放位置,分別放入JPEGImages文件夾、Annotations文件夾和ImagesSets的Main子文件夾中。
本研究設計了3組Faster RCNN模型和改進深度學習模型的對比實驗。
實驗一:在相同迭代次數下,對棉花頂芽數據集的訓練時間長短進行對比;
實驗二:在相同迭代次數下,對棉花頂芽數據集的平均精度(Average Precision,AP)進行對比;
實驗三:在相同數量、相同內容圖片的測試中,對單張圖片的平均探測識別時間的長短以及檢測的具體驗證效果進行對比。
為更系統地評估本研究提出的模型,本實驗將使用平均精度進行對比分析。計算公式如式(10)。
目前已設立的16個廢舊農膜回收網點基本都分布在鎮上,距離鎮較遠的村農民交售仍然不方便,而回收網點對于廢舊農膜回收缺乏積極性,因成本原因不能主動上門回收廢舊農膜,挫傷了農民撿拾廢舊農膜的積極性,致使農民將清理出來的廢舊農膜堆砌在田間地頭。

(10)

(11)
(12)
式中TP (True Positives)表示真正例,指被標注的棉花頂芽被正確的檢測出來;TN (True Negatives)表示真負例,指為正確地識別出的非棉花頂芽候選框;FP (False Positives)表示假正例,指被標注的棉花頂芽未被正確的檢測出來;FN(False Negatives)表示假負例,是沒有被檢測識別出來的非棉花頂芽。
分別在Faster RCNN模型上和改進深度學習模型上進行40 000次迭代,對棉花頂芽數據集的訓練時間長短檢測結果如圖3中藍色柱所示。雖然改進深度學習模型中的ResNet-101的網絡層次是Faster RCNN模型中VGG-16網絡深度的6倍左右,但是兩種模型的訓練花費時間分別是10 h和19 h,這是因為ResNet-101網絡引入了跳躍連接,這可以使上一個殘差塊的信息沒有阻礙地流入到下一個殘差塊,提高了信息流通。

圖3 Faster RCNN模型和改進深度學習模型的實驗結果對比
圖4展示兩種模型對比的精確度-召回率曲線,兩條曲線直觀地展示出兩個模型在精確度和召回率統計分析指標上的表現,具體數值對比如圖3中橙色柱所示,改進深度學習模型和Faster RCNN模型的精確率分別是77.5%和76.2%。從圖4可知Faster RCNN模型的精確率很高,隨著召回率的增大,下滑速率逐漸加快;而改進深度學習模型,初始精確度一般,但是下滑速率卻比Faster RCNN模型要小。圖4中存在改進深度學習模型曲線隨著召回率的增大,下滑速率逐漸加快的現象,原因是在數據集預處理階段沒有考慮到其他近似分類項的標記處理,只進行了單分類標記。改進深度學習模型提高了棉花頂芽數據集的AP值,保證模型可以達到最優檢測和識別性能,實際生產中,有利于減少棉花頂芽探測的遺漏,提高生產效益。

圖4 Faster RCNN模型和改進深度學習模型的AP對比
在提供相同數量、相同內容圖片的測試中,兩種模型對于圖片的平均探測識別時間的長短對比實驗效果如圖3中柱狀圖灰色柱所示。從圖3中可以直觀地看到改進模型探測時間是127 ms,而Faster RCNN模型的時間高達220 ms,Faster RCNN模型對于單張圖片平均花費的探測識別時間遠比改進深度學習模型要長。原因是ResNet網絡的跳躍連接提高了信息流通,這與實驗一的結果分析相同。隨機選取原始標定框圖5,兩種模型對圖5的探測具體識別效果如圖6和圖7所示,可以發現改進深度學習模型能做到很好的高精度識別,同時還對原始標定框以外的疑似目標進行框定。實際生產中,有利于保證棉花頂芽探測的全面性,提升經濟效益。Faster RCNN模型識別精度也挺高,但還是存在一定的低精度識別。改進深度學習模型通過犧牲大量訓練時間和增加識別時間達到更高精度的識別效果。相比于Faster RCNN模型而言, 如果在處理好數據集樣本進行更多分類樣本標定的情況下,改進深度學習模型的檢測識別效果可以大幅度提高。

圖5 原始標定框圖

圖6 Faster RCNN模型檢測圖

圖7 改進深度學習模型檢測圖