張文靜,趙性祥,丁睿柔,張 澤,姜紅花*,王 東
1.山東農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院,山東 泰安 271018
2.西北農(nóng)林科技大學(xué)農(nóng)學(xué)院,陜西 楊凌 712100
番茄是我國的重要蔬菜作物,我國每年都要消耗大量的人力、財(cái)力對成熟番茄進(jìn)行采摘,蔬菜采摘機(jī)器人是解放勞動力的有效途徑。國內(nèi)外對采摘機(jī)器人已有近20 年研究、歐美等西方發(fā)達(dá)國家相繼研究出草莓、柑橘等采摘機(jī)器人[1,2],我國也成功實(shí)現(xiàn)對番茄、櫻桃等采摘機(jī)器人的設(shè)計(jì)與應(yīng)用[3,4]。果蔬的準(zhǔn)確定位和識別是實(shí)現(xiàn)果蔬智能采摘的先決條件。孫建桐等[5]對RGB 番茄圖像進(jìn)行Canny 邊緣檢測操作,獲得果實(shí)邊緣輪廓點(diǎn),對果實(shí)邊緣輪廓點(diǎn)進(jìn)行基于幾何形態(tài)學(xué)的處理,獲得果實(shí)輪廓點(diǎn),最后對果實(shí)輪廓點(diǎn)分組處理后,通過迭代隨機(jī)圓處理,得到果實(shí)識別結(jié)果。黃玉萍等[6]利用空間分辨光譜和單點(diǎn)可見/近紅外光譜對番茄顏色進(jìn)行識別。項(xiàng)榮等[7]基于OTSU 法進(jìn)行番茄圖像分割,利用Canny 算子進(jìn)行邊緣檢測,并從中識別出重疊邊緣,進(jìn)一步基于重疊邊緣應(yīng)用一種距離就近法判斷重疊番茄前后位置關(guān)系,最后基于圓擬合對重疊番茄中前未被遮擋番茄進(jìn)行識別。但上述基于傳統(tǒng)機(jī)器視覺的方法易受光照、圖像分辨率變化等因素影響,導(dǎo)致不能準(zhǔn)確提取受遮擋的果實(shí)局部特征信息,造成定位識別具有誤差,給采摘機(jī)器人造成誤導(dǎo),影響采摘進(jìn)度。
目前,基于深度學(xué)習(xí)的機(jī)器視覺在圖像檢測領(lǐng)域取得了巨大進(jìn)展,利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像多尺度特征信息,其檢測識別效果顯著,可很好解決在自然環(huán)境下檢測、識別物體泛化性弱的問題。周云成等[8]在VGGNet 基礎(chǔ)上,通過結(jié)構(gòu)優(yōu)化調(diào)整,構(gòu)建了番茄器官分類網(wǎng)絡(luò)模型。許童羽等[9]提出了基于雙卷積鏈的Fast R-CNN,該方法融合自動提取的RGB 和灰度圖像特征,由全連接層對Selective Search 算法生成的候選區(qū)域進(jìn)行分類識。周云成等[10]提出一種基于面向通道分組卷積網(wǎng)絡(luò)的番茄主要器官實(shí)時識別網(wǎng)絡(luò)模型,該模型直接用特征圖預(yù)測番茄器官目標(biāo)邊界和類型。以上學(xué)者的研究為卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于果實(shí)的識別檢測提供了可行性依據(jù),學(xué)者的研究表明使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測識別可以克服傳統(tǒng)機(jī)器視覺算法的弊端。
本文在采集大量番茄圖像數(shù)據(jù)集的基礎(chǔ)上,使用卷積神經(jīng)網(wǎng)絡(luò)AlexNet 結(jié)構(gòu)模型,用區(qū)域建議網(wǎng)絡(luò)(Region proposal network,RPN)[11]和非極大值抑制算法(Non maximum suppression,NMS)[12]篩選出番茄目標(biāo)預(yù)選區(qū)域,最后計(jì)算番茄預(yù)選區(qū)域的分類回歸損失,實(shí)現(xiàn)對番茄的識別檢測。本文搭建了基于Faster R-CNN 的果園番茄識別檢測模型,來克服遮擋情況下果實(shí)不能準(zhǔn)確識別定位的弊端,以實(shí)現(xiàn)復(fù)雜背景下番茄的快速識別檢測。
試驗(yàn)圖像于2019 年03 月采集于山東省濟(jì)陽區(qū)溫室大棚,選用番茄品種為桃番茄,使用Intel RealSense Depth Camera D435 相機(jī)對番茄進(jìn)行多方位、多距離拍攝,共采集番茄圖像1800 幅,圖像格式為JPEG,圖像分辨率為640×480,番茄數(shù)據(jù)集圖像如圖1 所示,使用LabelImg 工具對番茄數(shù)據(jù)集進(jìn)行圖像標(biāo)注,制作數(shù)據(jù)集樣本標(biāo)簽,番茄數(shù)據(jù)集標(biāo)簽分為成熟番茄、綠色番茄,為構(gòu)建番茄識別檢測模型做準(zhǔn)備。
圖1 番茄數(shù)據(jù)集樣本圖像Fig.1 Sample images of tomato dataset
為了滿足番茄自動采摘的需要,實(shí)現(xiàn)番茄的精準(zhǔn)檢測識別,本文提出了基于Faster R-CNN 的番茄識別檢測方法,實(shí)現(xiàn)復(fù)雜背景下番茄的檢測與識別。該模型的框架圖如圖2 所示。該方法由特征提取網(wǎng)絡(luò)、區(qū)域建議網(wǎng)絡(luò)、區(qū)域特征聚集方法(RoI Pooling)[11]三部分組成:特征提取網(wǎng)絡(luò),利用預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)提取含番茄語義、空間信息的特征圖;區(qū)域建議網(wǎng)絡(luò),將番茄特征圖按比例映射到番茄原始圖像,使用錨點(diǎn)在目標(biāo)區(qū)域產(chǎn)生預(yù)選框(Bounding Box,BBox),根據(jù)預(yù)選框與真實(shí)框的重疊度(Intersection over Union,IoU),選出正樣本、負(fù)樣本,使用正負(fù)樣本進(jìn)行分類回歸訓(xùn)練,使用非極大值抑制算法篩選預(yù)選框,計(jì)算得到番茄的預(yù)選區(qū)域;輸出模塊:區(qū)域特征聚集方法(RoI Pooling)將番茄特征圖的預(yù)選區(qū)域轉(zhuǎn)化為固定尺寸的特征圖,之后將特征圖添加分類識別分支,進(jìn)行分類、回歸訓(xùn)練,實(shí)現(xiàn)番茄的識別檢測。
圖2 Faster R-CNN 識別檢測模型Fig.2 Faster R-CNN identification and detection model
本文使用卷積神經(jīng)網(wǎng)絡(luò)AlexNet 模型[13]提取圖像的特征信息,AlexNet 網(wǎng)絡(luò)使用(11×11、5×5、3×3)的卷積核,其結(jié)構(gòu)簡單,可以快速的提取圖像的多維度空間語義信息,其特征可視化圖如圖3所示。卷積神經(jīng)網(wǎng)絡(luò)的卷積函數(shù)為其中Xl表示(l)層特性輸入,Xl+1表示(l)層特性輸出。當(dāng)(l)為0 時,X0是原始圖像。Wl是(l)層權(quán)值矩陣,bl是(l)層的偏移向量,act 是激活函數(shù)(Relu),輸入特征與卷積核權(quán)重的卷積乘積。
圖3 AlexNet 特征可視化圖Fig.3 AlexNet feature visualization diagra m
區(qū)域建議網(wǎng)絡(luò)的目標(biāo)是計(jì)算圖像目標(biāo)區(qū)域的預(yù)選框,2.1 中已經(jīng)用AlexNet 網(wǎng)絡(luò)獲得了番茄圖像的特征圖,區(qū)域建議網(wǎng)絡(luò)在番茄特征圖上用3×3 滑動窗口進(jìn)行全圖的滑動生成,然后用兩個1×1 的卷積層分為兩個分支:(1)邊框回歸層reg-layer,用于計(jì)算預(yù)選區(qū)域(Bounding box,Bbox)的中心坐標(biāo)x、y以及寬高w、h(BBox 坐標(biāo)是在原圖上的坐標(biāo)偏移);(2)目標(biāo)分類層cls-layer,用于判斷該區(qū)域是否包含目標(biāo)。將特征圖的錨點(diǎn)映射到原圖像,進(jìn)行錨點(diǎn)跟期望區(qū)域重疊度(Intersection over union,IoU)[14]的計(jì)算,IoU 大于0.7 時為正樣本,IoU 小于0.3 時為負(fù)樣本,其余不計(jì)算,經(jīng)過迭代訓(xùn)練產(chǎn)生一定數(shù)量的BBox,使用NMS 去除重疊的BBox,得出番茄的預(yù)選區(qū)域。結(jié)合2.1跟區(qū)域建議網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4 所示。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 Network structure diagram
其中區(qū)域建議網(wǎng)絡(luò)的損失函數(shù)如式1 所示:
式中,i:樣本是否包括目標(biāo)的概率,取值0 或1,分別表示該樣本為負(fù)或者正;ti:錨點(diǎn)平移和縮放變換操作,ti*:樣本到真值窗口需要的變換計(jì)算,Lcls:樣本分類中的損失函數(shù),Lreg:樣本回歸損失函數(shù)。其中ti,ti*分別表達(dá)為:
式中x、y、w、h——預(yù)測邊界框的中心坐標(biāo)及寬、高,xa、ya、wa、ha——錨點(diǎn)邊界框的中心坐標(biāo)及寬、高,x*、y*、w*、h*——真值邊界框的中心坐標(biāo)及寬、高。
式中,pu:分類器預(yù)測到真值的概率,smoothL1:魯棒L1 范式損失函數(shù),比L2 范式具有更強(qiáng)的適應(yīng)性。
2.2中已經(jīng)計(jì)算得出番茄的預(yù)選區(qū)域,使用區(qū)域特征聚集方法將番茄特征圖的預(yù)選區(qū)域轉(zhuǎn)化為固定尺寸的特征圖,使用兩個卷積核大小為1×1 的卷積層對特征圖卷積計(jì)算,特征圖劃分為兩個分支,第一個分支用于計(jì)算預(yù)選區(qū)域的類別,第二個分支計(jì)算預(yù)選區(qū)域的位置偏移,損失函數(shù)如公式(1)所示,使用公式(1)計(jì)算損失函數(shù)時,與2.1 區(qū)別在于,Lcls判斷預(yù)選區(qū)域的類別分類,而2.1 中判斷預(yù)選區(qū)域有無目標(biāo)。
本文試驗(yàn)使用TensorFlow-GPU 構(gòu)建了基于Faster R-CNN 的果園番茄識別檢測模型,硬件環(huán)境為:GeForce GTX1080 TiGPU,IntelXeonE5-2630@2.20GHz×20CPU,在番茄數(shù)據(jù)集對該方法進(jìn)行了訓(xùn)練,選用1500 幅番茄圖像進(jìn)行訓(xùn)練,學(xué)習(xí)率設(shè)為0.0001,每次迭代的Batch Size 設(shè)為32,IoU 選用0.5 為閾值評估得分,模型一共迭代30000 步,保存訓(xùn)練模型。
本文使用mAP(mean Average Precision)作為番茄分割的評估指標(biāo),每一個類別都可以根據(jù)召回率(Recall)和精確率(Precision)繪制一條曲線,AP值就是該曲線下的面積。mAP則是對全部類別AP值求平均值得到,其計(jì)算公式如下:
式中,P:精確率,R:召回率,TP:正樣本預(yù)測為正樣本,F(xiàn)P:負(fù)樣本被預(yù)測為正樣本,F(xiàn)N:正樣本被預(yù)測為負(fù)樣本,n:類別數(shù)目。
為了驗(yàn)證所提出的基于Faster R-CNN 的番茄檢測模型的有效性,使用300 幅番茄圖像作為測試集對Faster R-CNN 算法模型進(jìn)行評估,經(jīng)測試集統(tǒng)計(jì),300 幅番茄圖像中,由于每幅圖像中的番茄個數(shù)不同,經(jīng)統(tǒng)計(jì)成熟番茄共有875 個,綠色番茄有325 個,F(xiàn)aster R-CNN 模型的測試結(jié)果如表1所示,模型對成熟番茄、綠色番茄的識別準(zhǔn)確率分別為94.8%、95.6%,當(dāng)IoU 取值0.5 時,成熟番茄與綠色番茄的AP值分別為0.832,0.846,模型的mAP值為0.839,這可滿足番茄檢測的控制要求,可為番茄自動采摘提供參考。模型對成熟番茄、綠色番茄以及遮擋番茄的部分檢測識別樣例如圖5所示,可見,該模型可有效識別出遮擋番茄。
表1 Faster R-CNN 模型測試結(jié)果Table 1 Faster R-CNN model test results
圖5 Faster R-CNN 番茄識別樣例Fig.5 Faster R-CNN tomato identification sample
為了驗(yàn)證所提出的基于Faster R-CNN 的番茄識別檢測方法的有效性,使用Yolov3 方法[15]進(jìn)行對比測試。Yolov3 方法將目標(biāo)檢測問題轉(zhuǎn)化為回歸問題,使用卷積神經(jīng)網(wǎng)絡(luò)獲取圖像的特征圖,針對小目標(biāo)的淺層信息進(jìn)行多尺度特征融合,提高圖像中小目標(biāo)的檢測效果。通過一系列的上采樣、下采樣計(jì)算,獲得3 個不同尺寸的特征圖,小特征圖對應(yīng)大錨點(diǎn),大特征圖對應(yīng)小錨點(diǎn),實(shí)現(xiàn)目標(biāo)的多尺度檢測。使用4.1 中的測試集,對Yolov3 算法模型進(jìn)行評估,模型的測試如表2 所示,模型對成熟番茄、綠色番茄的正確識別率分別為93.1%、92.9%,IoU 取值0.5 時,成熟番茄與綠色番茄的AP值分別為0.795,0.813,模型的mAP值為0.804。模型對成熟、綠色番茄的部分檢測識別樣例如圖6 所示,可以看出Yolov3 算法對番茄的檢測框效果低于Faster R-CNN,可見Faster R-CNN 的識別檢測要優(yōu)于Yolov3 算法。
表2 Yolov3 模型測試結(jié)果Table 2 Yolov3 model test results
圖6 Yolov3 番茄檢測結(jié)果Fig.6 Yolov3 detection results from tomato samples
為了進(jìn)一步驗(yàn)證提出的基于Faster R-CNN 的番茄識別檢測方法的有效性,使用SSD 方法[16]進(jìn)行對比測試。SSD 算法使用單一深度神經(jīng)網(wǎng)絡(luò)檢測圖像目標(biāo),網(wǎng)絡(luò)結(jié)合不同分辨率的多個特征圖進(jìn)行預(yù)測,以適應(yīng)不同大小對象的檢測。使用4.1 中的測試集,對SSD 算法模型進(jìn)行評估,模型的測試如表3 所示,模型對成熟番茄、綠色番茄的正確識別率分別為92.1%、90.4%,IoU 取值0.5 時,成熟番茄與綠色番茄的AP值分別為0.762,0.784,模型的mAP值為0.773。模型對成熟、綠色番茄的部分檢測識別樣例如圖7 所示,可以看出SSD 算法的檢測效果要低于Faster R-CNN、Yolov3 算法,再一次驗(yàn)證了Faster R-CNN 算法的優(yōu)越性。
表3 SSD 模型測試結(jié)果Table 3 SSD model test results
圖7 SSD 番茄檢測結(jié)果Fig.7 SSD detection results from tomato samples
本文選用300 幅番茄圖像作為測試集,使用本文模型Faster R-CNN 與Yolov3、SSD 方法對測試集進(jìn)行測試評估,評估結(jié)果如表4 所示。本文模型Faster R-CNN 算法對測試集的平均正確識別率為95.2%,mAP值為0.839,單樣本圖像樣本運(yùn)行時間為245 ms。通過測試結(jié)果發(fā)現(xiàn),F(xiàn)aster R-CNN 算法對番茄的平均正確識別率、mAP值要高于Yolov3、SSD 兩種算法,F(xiàn)aster R-CNN 算法雖然單樣本耗時較長,但取得了準(zhǔn)確率的明顯提高。本文Faster R-CNN 算法表現(xiàn)的測試結(jié)果,可實(shí)現(xiàn)番茄的實(shí)時檢測,可為番茄采摘機(jī)器人實(shí)時采摘提供參考。
表4 Faster R-CNN、Yolov3、SSD 算法測試結(jié)果Table 4 Faster R-CNN,Yolov3 and SSD test results
為進(jìn)一步提高番茄的檢測精度,縮短運(yùn)行時間,探索具有實(shí)際應(yīng)用能力的更強(qiáng)番茄檢測新方法以推動智能化采摘方式的發(fā)展,本文提出了基于Faster R-CNN 的果園番茄識別檢測方法。
(1)該方法使用AlexNet 網(wǎng)絡(luò)提取番茄的特征圖,將特征圖放入RPN 網(wǎng)絡(luò)篩選出預(yù)選區(qū)域,使用區(qū)域特征聚集方法將預(yù)選區(qū)域轉(zhuǎn)化為固定大小的特征圖,并通過輸出模塊分類、回歸預(yù)測候選區(qū)域的類別、坐標(biāo),實(shí)現(xiàn)番茄的檢測及雜草輪廓的分割;
(2)本方法在番茄數(shù)據(jù)集上的正確識別準(zhǔn)確率為95.2%,mAP值為0.839。該方法相比Yolov3、SSD 算法具有更好的檢測識別效果,該方法的單樣本圖像耗時為245 ms。這可滿足果園番茄檢測的實(shí)時控制要求;
(3)在番茄數(shù)據(jù)集上識別檢測測試,結(jié)果表明該方法可準(zhǔn)確的識別檢測出成熟、綠色番茄的標(biāo)簽及位置,可滿足果園番茄檢測的實(shí)時控制要求。