崔永杰 高宗斌 劉浩洲 李 凱 傅隆生,3
(1.西北農(nóng)林科技大學機械與電子工程學院, 陜西楊凌 712100; 2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點實驗室, 陜西楊凌 712100;3.陜西省農(nóng)業(yè)信息感知與智能服務重點實驗室, 陜西楊凌 712100)
獼猴桃果園采用棚架栽培模式,冠層遮蔽易導致GPS信號衰減,無法滿足采摘機器人[1]的精確導航需求,故采用雷達[2-3]或視覺方法[4]實現(xiàn)導航。文獻[5-6]利用傳統(tǒng)圖像處理算法對所采集圖像中的樹干、地壟等進行識別,實現(xiàn)導航,但識別精度不高。近年來,基于卷積神經(jīng)網(wǎng)絡的目標檢測算法已應用于畜牧[7-8]、水產(chǎn)[9-10]和林果[11-12]等諸多領域,相比傳統(tǒng)圖像處理算法,卷積神經(jīng)網(wǎng)絡在識別精度上有所提高。因此,利用卷積神經(jīng)網(wǎng)絡識別樹干,對提高采摘機器人視覺導航精度有重要意義。
在已有對果園環(huán)境下的目標檢測研究中,目標檢測算法[13-15]以輸出目標邊界框的方式識別各類果實。成熟的蘋果[16]、柑橘[17]以及多類水果[18]等通用目標均有較為明顯的顏色特征和邊緣特征,目標檢測算法以果實輪廓的最小外接矩形輸出邊界框,識別精度較高;綠色柑橘[19]、綠色蘋果[20]顏色特征與背景接近,但仍可根據(jù)果實輪廓輸出邊界框;獼猴桃果實[21]受遮擋因素影響較為嚴重,但可依靠部分未遮擋果實輪廓輸出邊界框;以上果實最小外接矩形均近似為正方形,而芒果[22]最小外接矩形為長方形,標注樣本時邊界框內(nèi)包含較多背景信息,通過人工去除背景后,可提高識別精度。本文所識別對象為獼猴桃樹干,無最小外接矩形,邊界框內(nèi)除獼猴桃樹干外還包含輸水管等特征,故需研究邊界框內(nèi)不同特征對識別結果的影響。
卷積神經(jīng)網(wǎng)絡的深度決定了映射性能和運算成本,因此,針對具體問題選擇合適的網(wǎng)絡深度尤為重要。HINTON等[23]提出多隱層的神經(jīng)網(wǎng)絡擁有更加優(yōu)異的特征提取能力,卷積神經(jīng)網(wǎng)絡的發(fā)展也遵循這一規(guī)律。2個卷積層的LeNet[24]、5個卷積層的Alexnet[25]、13個卷積層的Vgg-16[26]以及規(guī)模更龐大的Inception[27]和Resnet[28],圖像分類精度會隨卷積層數(shù)量的增加以及網(wǎng)絡規(guī)模的增大而不斷提高,但并沒有較為嚴謹?shù)睦碚撟C明網(wǎng)絡深度與其性能的關系。因此,有學者就卷積神經(jīng)網(wǎng)絡的深度、通道數(shù)量等與其精度的關系進行了試驗。CHEN[29]使用9種結構的卷積神經(jīng)網(wǎng)絡對中文手寫體進行識別,發(fā)現(xiàn)增加網(wǎng)絡的深度和通道數(shù)量均能提高精度;HE等[30]在ImageNet數(shù)據(jù)集上測試了網(wǎng)絡深度和卷積核尺寸與精度的關系,結果表明:擁有小卷積核的深層網(wǎng)絡性能優(yōu)于大卷積核的淺層網(wǎng)絡,此結果與提出Vgg-16[26]時的結論一致。BENGIO等[31]指出,深層網(wǎng)絡表達高級特征,并促進特征的重復利用。綜上,深層網(wǎng)絡擁有更優(yōu)異的性能,并可從輸入的原始圖像中挖掘抽象的特征表示[32]。本文從可視化角度出發(fā),以獼猴桃樹干為提取對象,對比淺層網(wǎng)絡提取的底層特征與深層網(wǎng)絡的高級抽象特征,研究卷積層深度對獼猴桃樹干提取特征的影響,為選擇網(wǎng)絡深度提供參考依據(jù)。
在2018年5月獼猴桃開花期、9月獼猴桃結果期,晴天09:00—19:00于陜西省眉縣獼猴桃試驗站進行圖像采集。利用大疆御 Mavic Air型無人機拍攝視頻,定高飛行距離為0.5 m。視頻編碼格式為mp4、碼率為5 217 kb/s、幀率為30 f/s、分辨率為1 280像素×720像素??紤]到視頻在時間序列上的相似性,選取所有幀作為數(shù)據(jù)集易造成過擬合,故每隔30幀取1幀圖像構建數(shù)據(jù)集。圖1為視頻分幀處理生成的jpg格式圖像,獼猴桃果園開花期圖像輸水管與樹干交叉,結果期圖像無輸水管。
圖1 不同生長季節(jié)圖像樣本Fig.1 Image samples for different seasons1.輸水管 2、4.支撐鋼管 3、5.樹干
獼猴桃樹干無最小外接矩形,需人為制定規(guī)則將獼猴桃樹干與背景進行區(qū)分。
1.2.1圖像分類
獼猴桃果園開花期兩側樹干與輸水管交叉部位形狀相對統(tǒng)一,以輸水管上部至樹干基部的“十字交叉”區(qū)域為識別對象。為減輕人工截圖的工作量,定義一種批量截圖方法。如圖2所示,根據(jù)所拍攝圖像特點,在左右兩側選取兩個可包絡樹干底部的區(qū)域(紅色虛線框),在此區(qū)域中定義3個水平方向固定、豎直方向(藍色箭頭方向)可調(diào)整的截取框。選取截取框豎直方向位置后進行批量剪切,而后通過人工分選,將剪切后的圖像分為兩類(綠色矩形為正樣本、紅色矩形為負樣本)。分選規(guī)則:①擁有完整樹干與輸水管交叉特征的圖像劃分為正樣本。②只擁有部分樹干特征的圖像不對其進行劃分。③支撐鋼管與輸水管交叉區(qū)域劃分為正樣本。④輸水管特征劃分為負樣本。⑤周圍景物(地壟、雜草等)劃分為負樣本。
圖2 批量截圖方法Fig.2 Batch screenshot method
結果期圖像無輸水管,因此擁有完整樹干或支撐鋼管特征的圖像劃分為正樣本;擁有部分樹干或支撐鋼管特征的圖像不進行劃分;周圍景物劃分為負樣本。
1.2.2目標檢測
不同于大多數(shù)目標檢測對象,獼猴桃樹干無最小外接矩形,因此本文選取樹干底部與輸水管交叉區(qū)域為識別對象,并對數(shù)據(jù)集標注做如下規(guī)定:①矩形框以樹干和輸水管交叉處為中心,下部包絡樹干基部。②將支撐鋼管和輸水管交叉區(qū)域與其余目標歸為一類,統(tǒng)一標記為“tree”。③獼猴桃樹干分叉生長情況下,只標注一個矩形框。④目標由近及遠逐漸減小并模糊,左右兩側均標注最近4個目標。⑤對出現(xiàn)遮擋等影響交叉部分特征的目標放棄標注。
在標注結果期圖像時,由于沒有輸水管作為參照,標注時盡量保證與開花期邊界框大小一致。使用Matlab 2018a Image Labeler APP進行標注,標注示例如圖3所示。
圖3 Image Labeler標注示例Fig.3 Image Labeler labeling example
利用1.2.1節(jié)方法截取開花期16 834幅圖像作為正樣本,15 688幅圖像作為負樣本;截取結果期5 000幅圖像作為正樣本,5 000幅圖像作為負樣本。開花期圖像隨機取70%作為訓練集,30%作為驗證集,結果期所有圖像均作為驗證集。所有圖像樣本尺寸為224像素×224像素。
利用1.2.2節(jié)方法標注開花期7 200幅圖像,結果期2 100幅圖像;開花期圖像隨機取70%作為訓練集,30%作為驗證集。結果期所有圖像均作為驗證集。目標檢測所有圖像樣本尺寸為640像素×360像素。
本文分別針對圖像分類與目標檢測建立的數(shù)據(jù)集均有1個訓練集和2個獨立的驗證集(表1)。訓練集由開花期圖像樣本構成,由開花期和結果期圖像樣本分別構成驗證集。
表1 數(shù)據(jù)集圖像數(shù)量Tab.1 Number of dataset images
選取3類經(jīng)典網(wǎng)絡結構LeNet、Alexnet、Vgg-16,并定義3類淺層結構。卷積層數(shù)分別為2、3、4,分別記為Conv2、Conv3、Conv4。第1層卷積層通道數(shù)設置為64,卷積層通道數(shù)量按倍數(shù)增加可更有效地利用計算資源[33],后續(xù)每一層卷積層通道數(shù)量為前一層的2倍,第2層為128,第3層為256,第4層為512。Alexnet由大尺寸卷積核(11×11、5×5)到小尺寸(3×3)過渡,擁有5層卷積結構; Vgg-16由多個小尺寸卷積核(3×3)堆疊,形成13層卷積結構,與其對比,3類淺層網(wǎng)絡結構均采用更為廣泛的小尺寸卷積核(3×3),步長取1。3類淺層網(wǎng)絡結構按照卷積、ReLU、Maxpooling為基礎組成部分,分別疊加2~4次,通過全連接層輸入Softmax分類器進行圖像二分類。相關參數(shù)如表2所示。
表2 6類網(wǎng)絡結構參數(shù)Tab.2 Six types of network structure parameters
圖像在輸入卷積神經(jīng)網(wǎng)絡向后傳播的過程中,每一個卷積層都會產(chǎn)生卷積運算后的三維數(shù)據(jù)塊,本文將這些三維數(shù)據(jù)塊整體稱作特征圖,而特征圖是由不同卷積核卷積運算得到的二維數(shù)據(jù)堆疊在一起組成,有學者將其稱為特征面[32]或與前者統(tǒng)稱為特征圖。本文將這些二維數(shù)據(jù)及可視化處理后的結果統(tǒng)稱為激活映射圖與其區(qū)分。激活映射圖的計算公式為
圖4 激活映射圖可視化流程Fig.4 Visualization process of activation map
(1)
(2)
可視化流程如圖4所示,其中Conv.1為第1次卷積運算,ReLU.1為第1次ReLU運算,ReLU.n為第n次ReLU運算,Maxpool.1為第1次Maxpooling運算。將測試圖像輸入已訓練的模型做前向推導,依據(jù)每層特征圖長度L、寬度W和通道數(shù)量M,在需要可視化的當前層構建大小為L×W×M的三維矩陣,保存當前的特征圖數(shù)據(jù)。由于各個神經(jīng)元的激活程度不同導致卷積運算后的激活映射圖數(shù)據(jù)范圍不固定,不同通道的激活映射圖數(shù)值范圍波動較大,為進行可視化,對M個L×W二維矩陣做歸一化處理,即
(3)
激活映射圖長度L與寬度W隨Maxpooling增多而不斷減小,對激活映射圖直接進行可視化會產(chǎn)生像素級別的顯示。為與原測試圖像進行對比,將激活映射圖調(diào)整為原始尺寸。采用雙三次插值方法,不僅考慮相鄰的像素數(shù)值,也考慮各像素值之間變化率的影響,構造BiCubic函數(shù)
(4)
用于計算所構建的新像素值在原激活映射圖對應位置周圍16個像素值的權重,最后通過加權平均得到新構建的像素值。新構建的像素值為
(5)
式中W(i)——水平方向BiCubic函數(shù)
W(j)——豎直方向BiCubic函數(shù)
圖5 LeNet激活映射圖可視化結果Fig.5 LeNet activation map of visualization results
通過構建三維矩陣提取激活映射圖,歸一化激活映射圖取值范圍,利用雙三次插值對激活映射圖尺寸進行調(diào)整,最終可生成M個灰度圖像,完成當前層M個通道的可視化。
選用懇泰深度學習計算平臺訓練模型,Intel Xeon E5-1650 v4處理器,主頻3.6 GHz,32 GB內(nèi)存,Nvidia Titan XP顯卡,12 GB顯示存儲。開發(fā)環(huán)境Matlab 2018a,Deep learning toolbox。
將所有圖像分類數(shù)據(jù)集正樣本標記為0,負樣本標記為1,制作對應的Excel文件作為標簽文件。將22 765幅訓練集圖像與對應的標簽文件輸入1.4節(jié)6類不同深度的網(wǎng)絡進行訓練。每類模型全連接層最后2個神經(jīng)元分別對應正樣本和負樣本,輸出0或1,將獼猴桃樹干圖像與背景圖像進行區(qū)分。超參數(shù)設定:隨機梯度下降(sgdm)、動量設置為0.9、MiniBatchSize為10、學習率為0.000 1。每類網(wǎng)絡訓練后,保存對應的權重,生成圖像分類模型。利用可視化方法獲得測試圖像在不同深度模型中的特征提取結果, 對比6類不同深度網(wǎng)絡對獼猴桃樹干的特征提取差異。
圖5為LeNet兩層卷積及ReLU激活后的可視化結果,綠色方框提取目標區(qū)域,紅色方框提取背景,黃色方框不提取任何特征。每層通道數(shù)量分別為6和16,與可視化后激活映射圖數(shù)量一致。圖5a為輸入的測試圖像。圖5b為6類不同的卷積核提取的不同激活映射圖,灰度較大的部分代表激活程度較大的區(qū)域,灰度較小的部分激活程度較小。圖5c通過ReLU函數(shù)將圖5b中所有小于0的信息剔除,呈現(xiàn)黑色。除黑色以外其他信息被保留并進行下一次卷積運算。圖5d、5e中灰度較大的部分是最終作用于分類的特征,例如:綠色方框中的激活映射圖保留了樹干、輸水管、部分地壟等區(qū)域,將剩余大部分背景剔除,有效地提取到樹干與輸水管交叉區(qū)域信息;紅色方框則與其完全相反,樹干與輸水管等區(qū)域被剔除,呈現(xiàn)黑色,保留土壤等背景區(qū)域信息。二者從兩個完全相反的角度提取了測試圖像中的特征。黃色方框中所有像素值均小于0,ReLU函數(shù)可視化后所有區(qū)域均為黑色,不對后續(xù)的分類結果產(chǎn)生影響。LeNet從多個完全不同甚至相反的角度提取特征。
最后一層卷積層及ReLU函數(shù)激活后的特征是圖像分類的依據(jù),因此提取剩余5類模型最后一層激活映射圖,圖6各分圖左側圖像為卷積運算后的可視化結果,右側圖像為ReLU函數(shù)運算后的可視化結果(由于通道數(shù)量較多,所有模型僅展示前128幅可視化結果)。圖6a是Conv2第2個卷積層的可視化結果,相比LeNet增加了通道數(shù)量,但大部分激活映射圖類型與LeNet保持一致:綠色方框提取樹干等區(qū)域、紅色方框保留背景、黃色方框所有信息均被剔除。圖6b為Conv3可視化結果,部分激活映射圖保留的特征與Conv2保持一致,出現(xiàn)如綠色方框標記的提取樹干或輸水管等邊緣特征的激活映射圖。相比圖6b,圖6c對邊緣特征的激活程度更高。圖6d為Alexnet提取結果,原測試圖像中邊緣等底層特征消失,大部分激活映射圖無規(guī)律地激活了一些抽象的特征區(qū)域,少部分諸如綠色方框標記的激活映射圖則精準地提取到原始圖像中樹干或部分樹干區(qū)域,所有通道的激活映射圖均剔除完整的輸水管與地壟等特征。圖6e為Vgg-16提取結果,相比于圖6d中Alexnet提取結果,綠色方框標記的樹干區(qū)域激活程度更高,保留樹干區(qū)域的激活映射圖數(shù)量增多,類似黃色方框的被完全剔除的激活映射圖數(shù)量增多,除樹干之外的特征減少。Vgg-16較為精確地保留了大量樹干信息。
圖6 不同深度模型最后一層卷積層及ReLU激活后的可視化結果Fig.6 Visualization of last layer of convolutional layers and ReLU activation in different depth models
圖7更換兩幅測試圖像,選取圖6中綠色方框標記的具有代表性的激活映射圖,其中上側圖像為卷積運算后的可視化結果,下側圖像為ReLU運算后的可視化結果,分析可得:淺層模型(Conv2、Conv3、Conv4)提取特征時更多的依賴圖像的顏色、邊緣等底層特征,提取測試圖像中包括樹干、支撐鋼管、輸水管等較為明顯的特征。Alexnet與Vgg-16只保留樹干、支撐鋼管或二者的部分特征。
圖7 不同深度模型目標區(qū)域可視化結果Fig.7 Visualization results of object regions in different depth models
分類試驗正樣本中包含了樹干、支撐鋼管、輸水管、地壟、土壤; 負樣本包括輸水管、地壟、土壤。正負樣本的差異為樹干和支撐鋼管特征。通過觀察激活映射圖:Alexnet與Vgg-16模型較為準確地提取了樹干或支撐鋼管區(qū)域,剔除了有明顯輪廓和顏色特征的輸水管特征; 所有淺層模型則從不同角度提取了測試圖像中所有較為明顯的底層特征信息。淺層模型提取底層特征,而較深的模型提取高級的抽象特征,更有效地進行區(qū)分。網(wǎng)絡結構越深,越能反映所識別對象區(qū)別于背景的特點,提取的特征對原測試圖像更具代表性。
2.2.1驗證方法
獼猴桃果園開花期圖像輸水管貫穿兩側樹干,與樹干形成交叉特征,而結果期圖像沒有輸水管,并隨時間推移與開花期圖像存在許多細節(jié)差異。用開花期數(shù)據(jù)集訓練模型后,用開花期和結果期兩個驗證集對模型進行評價。淺層模型在提取目標區(qū)域時保留了輸水管特征,而Alexnet與Vgg-16模型只提取到樹干和支撐鋼管特征,可知:在沒有將結果期樣本輸入網(wǎng)絡訓練的情況下,因圖像細節(jié)差異,6類模型在結果期驗證精度相比開花期會存在不同程度的下降,而所有淺層模型會因輸水管特征的消失產(chǎn)生更大幅度的下降。
2.2.2圖像分類驗證
分類精度評價標準為Vgg-16[26]評價標準top-1 error對應的精度。如表3所示,開花期精度均為100%,結果期精度均發(fā)生不同程度的下降。4類淺層模型下降幅度較大,范圍為15.90個百分點至18.98個百分點;兩類經(jīng)典模型Alexnet與Vgg-16下降幅度較小,其中網(wǎng)絡深度最大的Vgg-16取得了較為理想的泛化效果,精度下降幅度僅為2.08個百分點。圖像分類驗證與可視化結果保持一致。
表3 圖像分類模型不同季節(jié)驗證精度Tab.3 Image classification model verification accuracy in different seasons %
2.2.3目標檢測驗證
Faster R-CNN模型采用四步訓練法,初始超參數(shù)設置:學習率為0.001,動量為0.9,Mini-BatchSize為128,MaxEpochs分別為45、60、45、60。經(jīng)過多次超參數(shù)調(diào)整,選擇較優(yōu)模型。模型識別精度評價標準采用Faster R-CNN評價標準[13]。如表4所示,在開花期驗證結果中,精度并沒有隨卷積層數(shù)增加實現(xiàn)遞增,卷積層數(shù)量為4層的Conv4取得了最高的精度,13層的Vgg-16次之,5層的Alexnet驗證精度較低,為66.86%,僅高于卷積層數(shù)為2層的Conv2,網(wǎng)絡規(guī)模最小的LeNet模型失效。6類模型在結果期精度產(chǎn)生不同程度的下降,淺層模型下降幅度較大,超過49.77個百分點;而Alexnet模型雖然在開花期驗證精度低于淺層模型,但結果期驗證精度高于淺層模型,下降幅度較小,為22.53個百分點;Vgg-16下降幅度最小,為20.54個百分點。相比圖像分類問題,目標檢測更為復雜,所有淺層模型精度下降幅度較大,而較深的網(wǎng)絡結構擁有更加優(yōu)異的泛化性能。
表4 目標檢測模型不同季節(jié)驗證精度Tab.4 Verification accuracy of target detection model in different seasons %
圖8為Faster R-CNN模型對獼猴桃樹干目標的識別結果,模型由開花期數(shù)據(jù)集進行訓練,所有模型在開花期的識別結果較準確,但淺層模型在結果期的誤識別較為嚴重。深層模型提取邊界框內(nèi)具有代表性的樹干和支撐鋼管特征作為識別依據(jù),在沒有將結果期數(shù)據(jù)集輸入模型訓練的情況下,依賴從開花期數(shù)據(jù)集所提取的特征依然在結果期取得較好的識別結果。開花期黑色輸水管特征對深層模型在結果期的識別結果影響較小。
圖8 Faster R-CNN模型識別結果Fig.8 Faster R-CNN model recognition results
淺層模型在圖像分類問題中取得的結果優(yōu)于目標檢測,淺層網(wǎng)絡結構對復雜問題的映射能力較弱,因此可針對不同的應用場合和實際問題選擇不同深度的網(wǎng)絡結構。利用Alexnet和Vgg-16識別樹干時,連續(xù)的輸水管特征對于識別的貢獻較低,后續(xù)研究中應當以樹干或支撐鋼管為主要目標,而非“十字交叉”特征的提取,圖像分選規(guī)則和標注方法并不完全適用。
(1)利用可視化方法對比了6類不同深度的卷積神經(jīng)網(wǎng)絡特征提取差異,從可視化角度解釋了深層網(wǎng)絡結構性能的優(yōu)越性:Alexnet與Vgg-16提取的樹干特征對原始圖像有更準確的代表性,可與背景進行更有效的區(qū)分;淺層模型更偏向提取底層特征,只在開花期數(shù)據(jù)集取得較好的驗證精度,其泛化性能受到制約。
(2)通過開花期和結果期兩個數(shù)據(jù)集對可視化結果進行驗證,所有淺層模型因所提取輸水管等特征的改變,精度產(chǎn)生較大幅度的下降,圖像分類問題中下降幅度不小于15.90個百分點,目標檢測問題中下降幅度不小于49.77個百分點,而提取樹干特征的深層模型Alexnet與Vgg-16下降幅度較小。精度下降趨勢與可視化結果一致。