張磊,劉琪芳,聶紅玫,王晨,牛帆
(1. 山西農(nóng)業(yè)大學信息科學與工程學院,山西太谷,030801; 2. 山西農(nóng)業(yè)大學園藝學院,山西太谷,030801)
近年來隨著人工智能技術(shù)的發(fā)展,果實采摘機器人的應用研究已日新月異,機器視覺作為采摘機器人中的重要核心內(nèi)容,對目標檢測的準確率及果實定位都有重要的影響。
目前,國內(nèi)外研究學者對番茄果實識別檢測開展了初步研究。趙杰文等[1]提出利用成熟番茄、未成熟番茄和葉子HIS圖像顏色灰度分布,采用閾值分割法實現(xiàn)田間成熟番茄之間相互分離。王玉飛等[2]通過提取番茄和枯葉等干擾物子圖像形狀和紋理特征參數(shù),實現(xiàn)生長狀態(tài)相互分離的成熟番茄快速識別。Chen等[3]利用YUV顏色空間的V分量從背景中分離出成熟番茄的ROI,提取一定半徑范圍內(nèi)的弧形邊緣計算出每個成熟番茄的中心點和重疊面積以確定兩個重疊成熟番茄的深度排序,為溫室中成熟的番茄采摘提供了實用的機器人視覺方案。Iwasaki等[4]提出一種基于色相信息和曲率的魯棒迷你番茄遮擋識別方法,該方法根據(jù)源圖像色相信息檢測紅色區(qū)域,在區(qū)域中利用輪廓跟蹤法實現(xiàn)番茄輪廓和曲率的識別檢測。馬翠花等[5-6]提出基于密集和稀疏重構(gòu)的番茄顯著性檢測方法,番茄DSR灰度圖經(jīng)過OTSU算法進行分割和去噪處理,最終使用改進隨機Hough變換(Randomized Hough Transform,RHT)圓檢測方法識別番茄果簇中的單果。方政等提出了以HSI模型中的色調(diào)分量為基礎,采用最大方差自動取閾值法和Hough變換法進行圖像分割、輪廓提取,實現(xiàn)成熟番茄果實不同遮掩度下的識別。孫建桐等[7]提出先對采集圖像進行Canny邊緣檢測操作獲得果實邊緣輪廓點并采用基于幾何形態(tài)學的處理獲得果實輪廓點,然后對果實輪廓點分組處理和進行迭代隨機圓的處理得到果實識別結(jié)果?,F(xiàn)有的研究方法主要利用色調(diào)分量、邊緣輪廓進行番茄檢測,相對于在復雜環(huán)境下的番茄采摘檢測研究較少。本文提出一種基于改進YOLOv4網(wǎng)絡模型與遷移學習相結(jié)合的檢測方法,實現(xiàn)復雜背景下番茄果實采摘識別應用研究。
番茄圖像數(shù)據(jù)采集于山西省晉中市太谷縣陽邑鄉(xiāng)農(nóng)業(yè)蔬菜溫室大棚,采集設備為100°無畸變HBV-1780便攜式雙目攝像頭和Carkoci-Capture2云臺,視頻圖像分辨率為2 560像素×720像素。為避免網(wǎng)絡模型過擬合情況,采集圖像樣本時分別從遠景與近景多角度拍攝,且因番茄不同生長周期的因素,導致樣本中數(shù)據(jù)的成熟度各不相同,增加了樣本的復雜性。
本文采用均值濾波與高斯濾波對圖像進行處理,以減少采摘光線對模型識別精度影響。從圖1可以看出,經(jīng)過高斯濾波處理后的圖像有效抑制了高斯噪聲與椒鹽噪聲,實現(xiàn)對樣本圖像的增強。
圖1 空域處理
利用labelImg標注工具對處理圖像標注分類,并注釋為PASCAL VOC格式的XML文件[8]。經(jīng)過上述處理后,共得到標注圖像2 500張,按照數(shù)據(jù)集劃分策略,將標注完成的數(shù)據(jù)樣本集圖像分為訓練集1 750張(有7 234個帶邊界標記的樣本),驗證集250張(有1 238個帶邊界標記的樣本),測試集500張(有2 045個帶邊界標記的樣本),且按番茄果實不同生長狀態(tài)分類,測試集還被分為A、B、C、D、E、F六個部分,分別包含標注樣本308個、324個、471個、402個、501個、725個。數(shù)據(jù)集樣本個數(shù)對照表如表1所示。
表1 數(shù)據(jù)集樣本分類Tab. 1 Data sets and size
YOLO網(wǎng)絡模型是基于回歸問題檢測算法的模型,它主要由CSPDarknet53骨干網(wǎng)絡,空間金字塔池化模塊(Spatial Pyramid Pooling,SPP)與路徑聚合網(wǎng)絡(Path Aggregation Network,PAN)和YOLO Head構(gòu)成模型整體架構(gòu)[9-11]。其中,CSP模塊主要通過跨階段層次結(jié)構(gòu)將其合并,保證了準確率的同時減少了計算量,由5個CSP模塊組成,共包括72層卷積核,用于提取特征;SSP是將特征圖經(jīng)過13×13、9×9、5×5三層最大池化得到不同維度的特征;PAN網(wǎng)絡模型在特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN)下采樣模塊后添加了上采樣模塊,增強了由底向上的信息獲取,改善網(wǎng)絡感受域大小,使池化得到的特征圖拼接后獲得更多的局部信息與語義特征;YOLO head模塊主要存放目標類別標簽和網(wǎng)絡訓練權(quán)重,以保證網(wǎng)絡模型的訓練精確度[12-14]。
本文在數(shù)據(jù)處理方面采用YOLOv4網(wǎng)絡的Mosaic數(shù)據(jù)增強方法,利用兩張圖片進行拼接,對4張圖片進行翻轉(zhuǎn)、縮放、色域變化等操作,結(jié)果如圖2所示。
圖2 Mosaic數(shù)據(jù)增強圖
改進模型主要分為兩部分:預訓練網(wǎng)絡和遷移網(wǎng)絡。預訓練模型利用VGG網(wǎng)絡訓練ImageNet數(shù)據(jù)集,獲得模型初始化參數(shù);遷移網(wǎng)絡基于YOLOv4改進模型實現(xiàn)番茄果實識別。采用遷移學習的方法可以減少番茄果實網(wǎng)絡模型的訓練結(jié)果泛化現(xiàn)象,提高模型的訓練速度和性能[15-16]。而VGG網(wǎng)絡通過使用較小的濾波器達到了增加網(wǎng)絡深度的目的,同時避免了參數(shù)過度膨脹的問題,VGG網(wǎng)絡模型結(jié)構(gòu)其中共有16個卷積層,5個池化層位于第2、4、8、12和16卷積層后面;3個連接層神經(jīng)元,分別為4 096、4 096和1 000 個。如圖3所示,本試驗中的改進模型首先將ImageNet數(shù)據(jù)集在去除全連接層以及softmax層的VGG19網(wǎng)絡上進行模型初始化參數(shù)預訓練,然后將訓練好的模型參數(shù)遷移至以VGG19網(wǎng)絡卷積層作為主干網(wǎng)絡的改進網(wǎng)絡模型中作為初始值,經(jīng)全連接層和分類層進行番茄圖像識別分類。
圖3 改進模型框架示意圖
圖4、圖5為改進前后的網(wǎng)絡結(jié)構(gòu)圖與主干層次對比圖,可以看到改進前后的模型結(jié)構(gòu)中輸入大小均為416像素×416像素×3通道的番茄果實圖像。
圖4 改進前后網(wǎng)絡結(jié)構(gòu)對比圖
(a) 改進前主干網(wǎng)絡層次圖
(b) 改進后主干網(wǎng)絡層次圖
在神經(jīng)網(wǎng)絡結(jié)構(gòu)中Conv為卷積層,BN為批標準化操作,Pool表示池化層,maxPool表示最大池化層,Concat用于融合網(wǎng)絡模型特征。改進后的網(wǎng)絡模型的主干網(wǎng)絡模型,從下到上的特征向量提取架構(gòu)具體表現(xiàn)為:每個階段的輸入均為前一階段的特征映射。注意到改進模型主干網(wǎng)絡中包括block1_conv、block2_conv、block3_conv、block4_conv、block5_conv共5個卷積塊,卷積塊中卷積層的數(shù)目分別為2、2、4、4、4,每個卷積塊后連接一層池化層,即共包含16層卷積層與5層池化層,原始圖片大小為416像素×416像素×3通道,在網(wǎng)絡中一共經(jīng)過5次特征向量提取,特征圖分辨率依次下降:416×416×3→416×416×64→208×208×128→104×104×256→52×52×512→26×26×512→13×13×512,可以看到特征圖分辨率下降會導致通道數(shù)翻倍增長,進而逐漸將圖像紋理特征組合成類別特征。特征圖分辨率降為13×13×512后開始進入特征池化SSP模塊,SSP模塊主要用于收集特征層上的候選區(qū)域,以避免隨機分配并恢復候選區(qū)域和所有特征層之間的受損信息路徑,其中包含3個最大池化層max_pooling2d、max_pooling2d_1、max_pooling2d_2;通過SSP模塊后經(jīng)過3層卷積進入PANet模塊,當特征圖分辨率分別降為52×52×512、26×26×512時也進入PANet模塊,PANet模塊具有對特征提取強化的作用,對模型識別的優(yōu)良性;最后進入YOLO Head模塊,YOLO Head模塊用于存放預測分類和目標的邊界框的,且不會降低準確度。
本文中所有訓練和測試均在配置為AMD Ryzen 5 3600X 6-Core Processor 3.80 GHz、32 GB運行內(nèi)存及NVIDIA RTX 2700 GPU顯卡的電腦上完成。程序編譯環(huán)境為:Ubuntu16.04系統(tǒng)、python 3.7、CUDA 10.1、Cudnn庫7.6.2、OpenCV庫3.4。模型訓練參數(shù)設定為:批訓練樣本數(shù)為64,圖像大小為416×416,動量為0.949,權(quán)值衰減為5×10-4,初始學習率為0.001,最大迭代次數(shù)為6 000,衰減次數(shù)設置為最大迭代數(shù)的80%和90%。
本文引入精確率—召回率(Precision-Recall,P-R)曲線、綜合評價指標F1分數(shù)以及平均檢測精度(mean Average Precision,mAP)作為評價指標衡量模型對番茄目標識別的檢測性能[17-18]。
(1)
(2)
(3)
式中:C——類別數(shù)量;
N——閾值數(shù)量;
k——閾值;
P(k)——第k個圖片的識別準確率;
ΔR(k)——從k-1變化到k時的召回率變化情況。
本文以單個、一簇、順光、逆光、重疊、遮擋6種不同生長狀態(tài)的番茄果實試驗數(shù)據(jù)為處理對象,設置相同的模型訓練參數(shù),對比分析改進模型與YOLOv4、YOLOv4-Tiny、Faster RCNN網(wǎng)絡模型的檢測結(jié)果[19],結(jié)果如圖6、圖7、表2所示。
(a) 單個
(b) 一簇
(c) 順光
(d) 逆光
(e) 重疊
(f) 遮擋
(a) 成熟期番茄檢測精度
(b) 半成熟期番茄檢測精度
(c) 未成熟期番茄檢測精度
(d) 平均番茄檢測精度
表2 不同網(wǎng)絡模型檢測精度比較Tab. 2 Comparison of detection accuracy between different network models
從圖6、圖7可知,在番茄果實數(shù)量為單個時,由于番茄果實圖像中果實大小的尺寸與遠景近景的區(qū)別,導致番茄果實數(shù)量在單個時識別度高,且改進模型比YOLOv4網(wǎng)絡、YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高8.87%、10.13%、9.57%;在番茄果實數(shù)量為一簇時識別度低,改進模型比YOLOv4網(wǎng)絡與YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高6.03%、6.32%、7.6%;當番茄果實表面出現(xiàn)由順光照射產(chǎn)生的白色曝光,會使得番茄果實的識別難度提高,且改進模型比YOLOv4網(wǎng)絡、YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高6.07%、11.94%、18.72%;表面出現(xiàn)由逆光產(chǎn)生的陰影時,雖難以區(qū)分未成熟果實與果葉,但成熟果實尤為突出,且改進模型比YOLOv4網(wǎng)絡與YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高1.25%、3.83%、13.66%;當番茄果實重疊時會出現(xiàn)幾乎完全重疊、半重疊與少量重疊的狀況,導致不能很好地識別出被檢測類別,增加番茄果實識別的難度,這時改進模型比YOLOv4網(wǎng)絡與YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高7.02%、5.88%、11.73%;當番茄果實發(fā)生遮擋的狀況時,會導致成熟果實容易被遮蓋,而未成熟番茄被果葉遮蓋容易導致其因顏色一致出現(xiàn)錯檢,使識別難度明顯提高,且改進模型比YOLOv4網(wǎng)絡、YOLOv4-Tiny網(wǎng)絡、Faster RCNN網(wǎng)絡的平均檢測精度分別高4.44%、11.1%、14.84%。
由表2與圖8可知,不同成熟度的番茄果實在多種復雜環(huán)境下的AP值均在60%以上,且模型的P-R曲線覆蓋整個坐標系。其中,改進模型的P-R曲線在最上方,優(yōu)于其他三種檢測網(wǎng)絡模型。
(a) 成熟期番茄
(b) 半成熟期番茄
(c) 未成熟期番茄
結(jié)合圖9和表3可以看出,對于綜合評價指標F1分數(shù)值而言,如果將Score_Threhold調(diào)至0.5,在番茄果實成熟度為成熟時,改進模型與YOLOv4-Tiny網(wǎng)絡的評價檢測結(jié)果一樣,但高于YOLOv4網(wǎng)絡3%,高于Faster RCNN網(wǎng)絡1%;在番茄果實成熟度為半成熟時,改進模型高于YOLOv4-Tiny網(wǎng)絡1%,高于YOLOv4網(wǎng)絡4%,高于Faster RCNN網(wǎng)絡5%;在番茄果實成熟度為未成熟時,改進模型高于YOLOv4-Tiny網(wǎng)絡3%,高于YOLOv4網(wǎng)絡5%,高于Faster RCNN網(wǎng)絡21%。
(a) 成熟期番茄
(b) 半成熟期番茄
(c) 未成熟期番茄
從表4中可以看出,本文采用的4種番茄果實檢測網(wǎng)絡的速率結(jié)果為YOLOv4-Tiny網(wǎng)絡的FPS是最高的,YOLOv4與改進模型的FPS為中等偏上,F(xiàn)aster RCNN網(wǎng)絡的FPS為最低。
表3 綜合評價F1分數(shù)值Tab. 3 Comprehensive evaluation of F1 score values
表4 不同網(wǎng)絡模型速率結(jié)果Tab. 4 Different network model rate results
綜上所述,本文提出的改進模型在保持FPS優(yōu)良的情況下,對比分析評價指標mAP、P-R曲線與綜合評價指標F1分數(shù),明顯優(yōu)于其他3種網(wǎng)絡模型。
1) 本文提出一種基于改進YOLOv4網(wǎng)絡模型與遷移學習相結(jié)合的番茄果實識別方法,先利用ImageNet數(shù)據(jù)集在VGG網(wǎng)絡模型卷積層進行模型參數(shù)預訓練,然后將訓練的模型參數(shù)遷移至改進網(wǎng)絡模型中作為初始值,獲得最優(yōu)權(quán)重實現(xiàn)對復雜環(huán)境下的番茄果實進行檢測。結(jié)果表明這種方法的檢測精度和綜合評價比優(yōu)良,并能夠?qū)崟r有效地檢測出番茄果實,且效果明顯優(yōu)于未改進的同類型YOLOv4網(wǎng)絡和YOLOv4-Tiny網(wǎng)絡模型以及主流檢測模型Faster RCNN。
2) 針對測試集數(shù)據(jù)中不同成熟度番茄在不同閾值下的綜合評價F1分數(shù)值分析顯示,番茄果實成熟時本文改進模型高于YOLOv4網(wǎng)絡3%,與YOLOv4-Tiny網(wǎng)絡相同,高于Faster RCNN網(wǎng)絡1%;番茄果實半成熟時分別高于其他3種模型4%、1%、5%;番茄果實未成熟時,分別高于其他3種模型5%、3%、21%,表明模型實用性較強。
3) 通過應用本文的番茄識別網(wǎng)絡模型,能夠解決傳統(tǒng)圖像檢測方法在處理環(huán)境光暗、葉枝遮擋、果實重疊圖像定位檢測精度低的問題,可為之后的研究過程提供更好的技術(shù)支撐。