張揚虎,白 琳,2**,陳峰練,張 茜,李淘深,2
(1.廣西大學(xué)計算機與電子信息學(xué)院,廣西南寧 530004; 2.廣西高校并行與分布式計算技術(shù)重點實驗室,廣西南寧 530004; 3.廣西醫(yī)科大學(xué)第一附屬醫(yī)院,廣西南寧 530021)
棉花生產(chǎn)關(guān)系到國家發(fā)展的點點滴滴,棉花不僅是人民穿著的重要材料來源,而且在疫情期間,口罩、防護服等醫(yī)護用品的需求劇增,棉花的供給變得更為重要。棉花打頂作為棉花生產(chǎn)工作中的一個重要環(huán)節(jié),整體機械化低下,導(dǎo)致棉花生產(chǎn)的人工成本居高不下。打頂一般在植物的枝條修剪定型期進行,及時打頂既能消除棉花頂芽的生長優(yōu)勢特性,還能調(diào)節(jié)棉花內(nèi)部的養(yǎng)分配比,使棉鈴獲取更多的養(yǎng)分,增加鈴重。另外打頂還有控制植株高度,改善生產(chǎn)基地的植株光照情況,以達到增產(chǎn)增收的作用。目前,我國對棉花的機械打頂主要采用“一刀切”的方法,這種方式對棉株的棉鈴、花蕾造成損傷,影響棉花的產(chǎn)量。因此,提高棉花打頂技術(shù),實現(xiàn)棉花頂芽檢測和識別的機械化、智能化,具有很強的現(xiàn)實意義。
目前,我國機械打頂常用的機器視覺技術(shù)主要有3種:基于BP神經(jīng)網(wǎng)絡(luò)的機器視覺技術(shù)[1]、基于機器視覺技術(shù)的棉株識別定位算法[2]、雙目視覺技術(shù)[3]。近年來,隨著計算機硬件的升級換代及性能大幅提升,機器學(xué)習(xí)領(lǐng)域得到飛速發(fā)展,而機器學(xué)習(xí)對于改進農(nóng)業(yè)生產(chǎn)具有重大的助力作用。深度學(xué)習(xí)(Deep Learning,DL)是機器學(xué)習(xí)領(lǐng)域中一個新的研究方向[4]。2014年,Huo等[5]提出一種基于區(qū)域偏好和深度卷積運算的目標(biāo)檢測算法(Regions with CNN features,RCNN)。這一創(chuàng)新打破了目標(biāo)檢測技術(shù)的僵局,掀起深度學(xué)習(xí)機制下如何實施更優(yōu)良的目標(biāo)檢測的新研究熱潮。感興趣區(qū)域?qū)τ谀繕?biāo)提取的途徑是解析圖像中存在的各種信息,如圖形紋理、物體邊緣、特征大小等,同時標(biāo)記盡可能少的窗口,來找到所有可能包含所需目標(biāo)的區(qū)域。這不但要保證較高的召回率,還要盡可能地降低時間復(fù)雜度。目前基于深度學(xué)習(xí)的目標(biāo)檢測算法的研究主要分為兩種方向:一種是通過感興趣區(qū)域提取特征的算法,例如RCNN、SPP-net[6]、Fast RCNN、Mask RCNN[7]和R-FCN-3000[8]等;另一種是基于回歸計算的算法,例如YOLO[9]、YOLOv2[10]、YOLOv3[11]、YOLOv4[12]和SSD[13]。
經(jīng)過RCNN和Fast RCNN[14]的積累,Girshick[15]在2016年提出新的算法模型Faster RCNN,在結(jié)構(gòu)上,F(xiàn)aster RCNN將特征提取、感興趣區(qū)域提取、邊框回歸、分類集成到一個網(wǎng)絡(luò)中,通過構(gòu)建一個RPN網(wǎng)絡(luò),使得產(chǎn)生候選建議框的速度大幅提升。
本研究將農(nóng)業(yè)生產(chǎn)實踐與深度學(xué)習(xí)算法結(jié)合,使用深度卷積神經(jīng)網(wǎng)絡(luò)技術(shù),通過在Faster RCNN模型中融入多種深度網(wǎng)絡(luò)模型,提出一種性能更好的改進深度學(xué)習(xí)模型。旨在將該模型用于農(nóng)業(yè)自動化檢測和識別棉花頂芽,減少人工重復(fù)的復(fù)雜田間勞動,提高棉花勞作工作效率,對促進棉花科學(xué)種植,棉花生產(chǎn)機械化自動化,提高棉花產(chǎn)量,提高棉農(nóng)和相關(guān)企業(yè)收益,保證國家棉紡織業(yè)原材料穩(wěn)定來源,維護國家穩(wěn)定具有重要意義。
本研究提出的改進深度學(xué)習(xí)模型,以最新的深度卷積神經(jīng)網(wǎng)絡(luò)算法為基礎(chǔ),將深度網(wǎng)絡(luò)模型ResNet融入到Faster RCNN網(wǎng)絡(luò)模型中。改進深度學(xué)習(xí)模型在網(wǎng)絡(luò)的高層涵蓋多種網(wǎng)絡(luò)模型的優(yōu)點,獲得信息量更豐富,得到對于棉花頂芽檢測與識別更為有益的圖像特征,從理論上保證更優(yōu)異的棉花頂芽的檢測與識別結(jié)果。
1.1.1 Faster RCNN模型概述
Faster RCNN是目標(biāo)檢測算法模型中較早提出來的兩階段模型,框架整體分為4個部分:
①Conv layers提取特征圖。作為一種CNN網(wǎng)絡(luò)系列目標(biāo)檢測方法,F(xiàn)aster RCNN首先使用一組基礎(chǔ)的conv+relu+pooling層提取輸入圖像的圖片特征,用于后續(xù)的RPN層和全連接層。
②區(qū)域提案網(wǎng)絡(luò)(Region Proposal Network,RPN)。RPN網(wǎng)絡(luò)主要用于生成候選區(qū)域(Region proposals),首先生成一堆錨框(Anchor box),對其進行裁剪過濾后通過softmax函數(shù)判斷錨框?qū)儆谇熬?Foreground)或者后景(Background),即是物體或者不是物體,所以這是一個二分類,最后形成較精確的候選框(Proposals)。
③ROI池化層。該層利用RPN生成的proposals和圖片特征,得到固定大小的候選框特征圖,可利用全連接操作來進行目標(biāo)識別和定位。
④Classifier。會將ROI池化層形成固定大小的特征圖進行全連接操作,利用softmax進行具體類別的分類,同時獲得物體的精確位置。
1.1.2 ResNet模型概述
ResNet于2015年提出,特別深的神經(jīng)網(wǎng)絡(luò)是很難訓(xùn)練的,因為存在梯度消失和梯度爆炸問題。傳統(tǒng)對應(yīng)的解決方案是數(shù)據(jù)的初始化(Normlized initializatiton)和正則化(Batch normlization),這兩種方案雖然解決了梯度的問題,但同時帶來另外的問題,就是網(wǎng)絡(luò)性能的退化和錯誤率上升。而殘差設(shè)計用來解決退化問題,同時也解決了梯度問題。ResNet是由殘差塊(Residual block)構(gòu)建的,如公式(1)(2)所示。式(1)是殘差模塊中的基本形式,是恒等映射,F(xiàn)是網(wǎng)絡(luò)中的變化,式(2)是對于疊加之后值的變換,在原始殘差模塊中是relu函數(shù),網(wǎng)絡(luò)通過學(xué)習(xí)F的參數(shù)來減小損失值。
yl=h(xl)+F(xl,Wl),
(1)
xl+1=f(yl)。
(2)
改進深度學(xué)習(xí)模型的整體架構(gòu)如圖1所示,模型基于深度網(wǎng)絡(luò)架構(gòu)進行關(guān)鍵區(qū)域選取、特征學(xué)習(xí),以及目標(biāo)識別與分類的過程如①-④所示:
圖1 改進深度學(xué)習(xí)模型框架
①獲取圖片特征。使用預(yù)訓(xùn)練好的ResNet-101網(wǎng)絡(luò)提取圖片特征,通過網(wǎng)絡(luò)的進一步處理得到下一部分區(qū)域提案網(wǎng)絡(luò)(Region Proposal Network,RPN)需要的圖片特征(conv5_3)。
②使用ResNet-101模型與RPN網(wǎng)絡(luò)獲取待檢測棉花頂芽的候選框Proposal,算法具體流程如算法1-1所示。
算法1-1候選框Proposal生成算法:
輸入:圖片特征conv5_3
輸出:候選框proposals
Step 1:首先將圖片特征conv5_3輸入卷積層conv(3,3,512,1,1),輸出的圖片特征rpn_conv/3×3尺寸和通道數(shù)均保持不變。
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得到候選識別區(qū)域rois,即RPN網(wǎng)絡(luò)最終輸出的proposals。
每一個卷積層都能使用經(jīng)過訓(xùn)練的卷積核,從前面的池化層中學(xué)習(xí)更高級、不變性更強的特征信息,如下面公式所示:
(3)
③通過ROI池化層得到綜合的proposals特征。將rois和conv5_3輸入給roi_pool得到pool_5,關(guān)于roi_pool的輸入,尺寸大小是任意的,但輸出的特征都是長度為固定的。
池化層將采用平均運算子,對前一個卷積映射層學(xué)習(xí)到的數(shù)據(jù)特征進行聚合收攏,把重要的特征保留加強,噪聲和無用特征濾除。計算推理公式為
(4)
④根據(jù)poposals特征進行框回歸和物體分類,算法具體流程如算法1-2所示。
算法1-2類別預(yù)測框回歸算法:
輸入:proposals特征pool_5
輸出:物體的邊框bbox_pred和物體的類別cls_prob
Step 1:將pool_5連續(xù)輸入兩個全連接層得到fc_7。
Step 2:將fc_7輸入全連接層得到bbox_pred,得到最終的proposals。
Step 3:將fc輸入全連接層得到物體類別得分cls_score。
Step 4:將cls_score經(jīng)過softmax層得到cls_prob,即proposal屬于各個物體的概率。
在softmax層中,假定訓(xùn)練集如下:
{(x(1),y(1)),…,(x(m),y(m))},
(5)
y由0或1擴大到{1,2,3,…,k}共有k類。
對于測試輸入x則需要利用如下計算輸入每個類別的j的條件概率值為
(6)
假設(shè)函數(shù)如(7)式輸出一個k維的向量,那么每一維的向量分量則代表此類別j下的p值,同時全部向量的元素條件概率之和等于1,而θ是模型訓(xùn)練更新的參數(shù):
(7)
Softmax回歸的代價函數(shù)在定義示性函數(shù)為1{·}(大括號中表達式若真結(jié)果則為1,若假結(jié)果則為0)后,為了防止參數(shù)冗余導(dǎo)致計算誤差,還會加入權(quán)重衰減策略:
J(θ)=
(8)
而對于式(8)的最小化問題,通常采用梯度下降求偏導(dǎo)進行迭代優(yōu)化,得到一個相對準(zhǔn)確的值。那么梯度公式則可表示為
p(y(i)=j|x(i);θ))]+λθj。
(9)
由于RPN和Faster RCNN兩個網(wǎng)絡(luò)獨立運行,所以本研究通過共享卷積特征的方法,將兩種深度學(xué)習(xí)方法融合構(gòu)建出改進深度學(xué)習(xí)模型架構(gòu),訓(xùn)練方式有以下兩種:
①交替訓(xùn)練。首先進行網(wǎng)絡(luò)參數(shù)初始化,接著利用預(yù)處理模型訓(xùn)練RPN網(wǎng)絡(luò),下一步再把RPN網(wǎng)絡(luò)的輸出輸入到Faster RCNN目標(biāo)檢測網(wǎng)絡(luò)中,然后在訓(xùn)練中更新權(quán)重參數(shù),并對RPN網(wǎng)絡(luò)進行更新迭代,最后不斷重復(fù)上述步驟,得到一個訓(xùn)練好的改進網(wǎng)絡(luò)模型。
②近似聯(lián)合訓(xùn)練。將RPN網(wǎng)絡(luò)和Faster RCNN目標(biāo)檢測網(wǎng)絡(luò)合二為一,正向傳播時正常進行,反向傳播則合并兩個網(wǎng)絡(luò)在共享層的所有損失。這種方法忽視了感興趣區(qū)域計算出坐標(biāo)預(yù)測梯度值,所以稱作近似聯(lián)合訓(xùn)練。
本研究所用到的棉花頂芽圖片數(shù)據(jù),是由新疆棉花產(chǎn)地的生產(chǎn)員拍攝獲取,部分圖片如圖2所示。棉花頂芽位于棉花主莖的頂端,周圍常生長繁茂的主莖葉,如圖2紅框所示。頂芽的生長占據(jù)優(yōu)勢,同時抑制鄰近側(cè)芽的生長,使側(cè)芽處于休眠狀態(tài),這種現(xiàn)象也叫做頂端優(yōu)勢。摘除頂芽,便可消除頂端優(yōu)勢,以促使側(cè)芽萌發(fā)、增加側(cè)枝數(shù)目,達到增產(chǎn)和控制花木株型的目的。
圖2 棉花頂芽
棉花是成行種植的,但是隨著植株的生長,相鄰植株的莖葉會爭搶生長空間,同時由于相鄰植株生長態(tài)勢的差異性,會造成相鄰植株的莖葉高低錯落地遮擋、掩蓋,另外還存在一些雜草和植株纏繞生長。這些因素造成圖像空間背景的復(fù)雜性,因此棉花雜質(zhì)探測模型要有很高的準(zhǔn)確率。
本研究獲取的2 000張棉花開花的圖片,需要進行前期數(shù)據(jù)預(yù)處理,清除不良模糊的圖片;接著對圖片數(shù)量進行數(shù)據(jù)增強增加訓(xùn)練樣本,同時按照PASCAL VOC2007所要求的數(shù)據(jù)集命名存放格式進行整理。數(shù)據(jù)集訓(xùn)練樣本標(biāo)注通過標(biāo)簽(Labelimg)制作完成,具體過程如下:
①進行完數(shù)據(jù)預(yù)處理后對剩余圖片進行數(shù)據(jù)增強,翻轉(zhuǎn)復(fù)制。
②對4 000余張圖片按照PASCAL VOC2007所要求的命名格式進行批量命名,以便后期對棉花頂芽數(shù)據(jù)集進行訓(xùn)練。
③利用Labelimg圖片標(biāo)注工具對每張棉花頂芽圖片進行目標(biāo)框標(biāo)注,同時剔除不良圖片,并將標(biāo)注的棉花頂芽的位置信息以xml數(shù)據(jù)格式保存
④根據(jù)標(biāo)注生成的xml文件,利用Python語言隨機生成棉花頂芽圖片數(shù)據(jù)集的4個測試訓(xùn)練txt后綴文件:test.txt是測試集,train.txt是訓(xùn)練集,val.txt是驗證集,trainval.txt是訓(xùn)練和驗證集。
⑤將整理好的棉花頂芽數(shù)據(jù)集圖片生成xml文件,同時將txt文件按照PASCAL VOC2007提供文件存放位置,分別放入JPEGImages文件夾、Annotations文件夾和ImagesSets的Main子文件夾中。
本研究設(shè)計了3組Faster RCNN模型和改進深度學(xué)習(xí)模型的對比實驗。
實驗一:在相同迭代次數(shù)下,對棉花頂芽數(shù)據(jù)集的訓(xùn)練時間長短進行對比;
實驗二:在相同迭代次數(shù)下,對棉花頂芽數(shù)據(jù)集的平均精度(Average Precision,AP)進行對比;
實驗三:在相同數(shù)量、相同內(nèi)容圖片的測試中,對單張圖片的平均探測識別時間的長短以及檢測的具體驗證效果進行對比。
為更系統(tǒng)地評估本研究提出的模型,本實驗將使用平均精度進行對比分析。計算公式如式(10)。
目前已設(shè)立的16個廢舊農(nóng)膜回收網(wǎng)點基本都分布在鎮(zhèn)上,距離鎮(zhèn)較遠的村農(nóng)民交售仍然不方便,而回收網(wǎng)點對于廢舊農(nóng)膜回收缺乏積極性,因成本原因不能主動上門回收廢舊農(nóng)膜,挫傷了農(nóng)民撿拾廢舊農(nóng)膜的積極性,致使農(nóng)民將清理出來的廢舊農(nóng)膜堆砌在田間地頭。
(10)
(11)
(12)
式中TP (True Positives)表示真正例,指被標(biāo)注的棉花頂芽被正確的檢測出來;TN (True Negatives)表示真負例,指為正確地識別出的非棉花頂芽候選框;FP (False Positives)表示假正例,指被標(biāo)注的棉花頂芽未被正確的檢測出來;FN(False Negatives)表示假負例,是沒有被檢測識別出來的非棉花頂芽。
分別在Faster RCNN模型上和改進深度學(xué)習(xí)模型上進行40 000次迭代,對棉花頂芽數(shù)據(jù)集的訓(xùn)練時間長短檢測結(jié)果如圖3中藍色柱所示。雖然改進深度學(xué)習(xí)模型中的ResNet-101的網(wǎng)絡(luò)層次是Faster RCNN模型中VGG-16網(wǎng)絡(luò)深度的6倍左右,但是兩種模型的訓(xùn)練花費時間分別是10 h和19 h,這是因為ResNet-101網(wǎng)絡(luò)引入了跳躍連接,這可以使上一個殘差塊的信息沒有阻礙地流入到下一個殘差塊,提高了信息流通。
圖3 Faster RCNN模型和改進深度學(xué)習(xí)模型的實驗結(jié)果對比
圖4展示兩種模型對比的精確度-召回率曲線,兩條曲線直觀地展示出兩個模型在精確度和召回率統(tǒng)計分析指標(biāo)上的表現(xiàn),具體數(shù)值對比如圖3中橙色柱所示,改進深度學(xué)習(xí)模型和Faster RCNN模型的精確率分別是77.5%和76.2%。從圖4可知Faster RCNN模型的精確率很高,隨著召回率的增大,下滑速率逐漸加快;而改進深度學(xué)習(xí)模型,初始精確度一般,但是下滑速率卻比Faster RCNN模型要小。圖4中存在改進深度學(xué)習(xí)模型曲線隨著召回率的增大,下滑速率逐漸加快的現(xiàn)象,原因是在數(shù)據(jù)集預(yù)處理階段沒有考慮到其他近似分類項的標(biāo)記處理,只進行了單分類標(biāo)記。改進深度學(xué)習(xí)模型提高了棉花頂芽數(shù)據(jù)集的AP值,保證模型可以達到最優(yōu)檢測和識別性能,實際生產(chǎn)中,有利于減少棉花頂芽探測的遺漏,提高生產(chǎn)效益。
圖4 Faster RCNN模型和改進深度學(xué)習(xí)模型的AP對比
在提供相同數(shù)量、相同內(nèi)容圖片的測試中,兩種模型對于圖片的平均探測識別時間的長短對比實驗效果如圖3中柱狀圖灰色柱所示。從圖3中可以直觀地看到改進模型探測時間是127 ms,而Faster RCNN模型的時間高達220 ms,F(xiàn)aster RCNN模型對于單張圖片平均花費的探測識別時間遠比改進深度學(xué)習(xí)模型要長。原因是ResNet網(wǎng)絡(luò)的跳躍連接提高了信息流通,這與實驗一的結(jié)果分析相同。隨機選取原始標(biāo)定框圖5,兩種模型對圖5的探測具體識別效果如圖6和圖7所示,可以發(fā)現(xiàn)改進深度學(xué)習(xí)模型能做到很好的高精度識別,同時還對原始標(biāo)定框以外的疑似目標(biāo)進行框定。實際生產(chǎn)中,有利于保證棉花頂芽探測的全面性,提升經(jīng)濟效益。Faster RCNN模型識別精度也挺高,但還是存在一定的低精度識別。改進深度學(xué)習(xí)模型通過犧牲大量訓(xùn)練時間和增加識別時間達到更高精度的識別效果。相比于Faster RCNN模型而言, 如果在處理好數(shù)據(jù)集樣本進行更多分類樣本標(biāo)定的情況下,改進深度學(xué)習(xí)模型的檢測識別效果可以大幅度提高。
圖5 原始標(biāo)定框圖
圖6 Faster RCNN模型檢測圖
圖7 改進深度學(xué)習(xí)模型檢測圖