王 川,趙恒濱,2,李國強,張建濤,高桐梅,趙巧麗,鄭國清
(1. 河南師范大學 計算機與信息工程學院,河南 新鄉(xiāng) 453007;2. 河南省農(nóng)業(yè)科學院 農(nóng)業(yè)經(jīng)濟與信息研究所/河南省智慧農(nóng)業(yè)工程技術(shù)研究中心,河南 鄭州 450002;3. 農(nóng)業(yè)農(nóng)村部黃淮海智慧農(nóng)業(yè)技術(shù)重點實驗室,河南 鄭州 450002;4. 河南省農(nóng)業(yè)科學院 芝麻研究中心,河南 鄭州 450002)
芝麻是我國重要的油料作物之一,是農(nóng)業(yè)結(jié)構(gòu)調(diào)整的優(yōu)勢作物,也是傳統(tǒng)的出口創(chuàng)匯作物[1-3]。我國芝麻常年種植面積在60 萬hm2左右,總產(chǎn)60 萬~70 萬t,其總產(chǎn)和單產(chǎn)均居世界首位[4-5]。精確預估籽粒產(chǎn)量是芝麻育種和栽培生產(chǎn)的重要環(huán)節(jié)。在實際應(yīng)用中,田間估產(chǎn)主要依據(jù)單位面積株數(shù)、單株蒴果數(shù)、蒴果粒數(shù)和千粒質(zhì)量。目前,單株蒴果數(shù)的獲取主要依靠手工統(tǒng)計,費時費力。因此,快速精確識別芝麻蒴果,將有助于提高芝麻考種效率和估產(chǎn)精度。
近年來,國內(nèi)外學者利用機器視覺和圖像處理技術(shù),開展了不同農(nóng)作物果實目標檢測研究。PAYNE等[6]提出基于顏色空間特征和相鄰像素紋理特征的分割方法,實現(xiàn)芒果果實的識別和產(chǎn)量預估,準確率達到74%。ZHANG 等[7]提出基于多特征融合和支持向量機(SVM)的檢測方法,實現(xiàn)對石榴果實的識別,檢測準確率為78.15%。李寒等[8]提出基于RGB-D 圖像和K-means 優(yōu)化相結(jié)合的自組織映射神經(jīng)網(wǎng)絡(luò),實現(xiàn)番茄果實的識別與定位,準確率達到87.2%。LIU 等[9]提出基于顏色與形狀特征的圖像分割方法,實現(xiàn)對蘋果果實的檢測,召回率為85%。上述方法利用果實的顏色、形狀、紋理等不同尺度特征進行識別檢測,但是在果實間粘連重疊、枝葉遮擋等情況下的檢測準確率并不高。
隨著計算機視覺和深度學習等人工智能技術(shù)的快速發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)(Deep convolutional neural networks,DCNN)比傳統(tǒng)目標檢測方法更有優(yōu)勢?;谏疃葘W習的目標檢測分為兩類:一類是以R-CNN[10]、Fast R-CNN[11]、Faster R-CNN[12]為代表的雙階段算法,另外一類是以SSD[13]、YOLO[14]、Retina Net[15]為代表的單階段算法。張文靜等[16]通過改進Faster R-CNN 網(wǎng)絡(luò)模型實現(xiàn)番茄果實的識別,檢測準確率為83.9%。張伏等[17]通過改進輕量型YOLOv4 神經(jīng)網(wǎng)絡(luò),實現(xiàn)密集圣女果的識別定位,網(wǎng)絡(luò)召回率達到97.10%。劉天真等[18]提出一種基于SE Net 的YOLOv3 網(wǎng)絡(luò)模型,實現(xiàn)自然場景下冬棗果實的檢測識別,檢測準確率為82.01%。郭瑞等[19]通過融合K-means 聚類算法與優(yōu)化的注意力機制模塊改進YOLOv4 檢測算法,對大豆單株豆莢數(shù)檢測準確率為84.3%。由上可知,DCNN 用于檢測圣女果、冬棗、大豆豆莢等,具有較好的精度。而針對芝麻蒴果識別的研究未見報道,且針對此類尺寸更小、重疊遮擋嚴重,且密集度高的情景也少見報道。為此,以芝麻蒴果為檢測目標,以YOLOX 為基準網(wǎng)絡(luò)模型,通過改進優(yōu)化路徑聚合網(wǎng)絡(luò)PANet 和引入注意力機制CBAM模塊,提出基于YOLOX模型的芝麻蒴果檢測方法,以實現(xiàn)密集場景下芝麻單株蒴果的準確檢測,為高通量獲取芝麻表型提供理論依據(jù)。
2020—2021 年于芝麻生長季,在河南省農(nóng)業(yè)科學院農(nóng)業(yè)科技試驗基地(113°57′E,35°3′N),利用數(shù)碼相機(佳能Canon Power Shot G1),從植株的正面、側(cè)面和仰拍等角度,拍攝芝麻蒴果照片。所拍攝的圖片尺寸為2 448×4 352(像素),從原始圖片中篩選出300張,包含順光、背光、遮擋、粘連等各種芝麻蒴果田間生長圖像。然后將采集圖像統(tǒng)一裁剪為512×512(像素),經(jīng)過篩選和預處理后獲得芝麻蒴果高清圖像數(shù)據(jù)集500張。
為提高訓練模型的泛化能力,利用Pytorch框架中的Opencv軟件對數(shù)據(jù)集進行數(shù)據(jù)增強,對采集數(shù)據(jù)進行明暗度變化、加入高斯噪聲、50%概率水平翻轉(zhuǎn)以及-45°~45°方向的隨機旋轉(zhuǎn)。增強后得到的數(shù)據(jù)集包含4 362 張圖像。利用標注工具Labelimg,按照Pascal VOC 數(shù)據(jù)集的格式要求,對數(shù)據(jù)集進行人工標注,生成.xml 類型的標注文件。將數(shù)據(jù)集按照9∶1 比例劃分,其中90%部分再按照9∶1 比例分為訓練集和驗證集,10%部分作為測試集。最終得到訓練集、驗證集和測試集的樣本數(shù)量分別為3 532、393、437張。
YOLOX 網(wǎng)絡(luò)結(jié)構(gòu)主要包括CSPDarknet-53 主干網(wǎng)絡(luò)、路徑聚合網(wǎng)絡(luò)(Path aggregation network,PANet)和預測頭(Prediction head),如圖1 所示。CSPDarknet53 為模型主干特征提取部分,由Focus、CSP1 和CSP2 三種模塊組成。路徑聚合網(wǎng)絡(luò)PANet為自頂向下和自底向上的雙向融合骨干網(wǎng)絡(luò),由特征金字塔FPN[20](Feature pyramid networks)和PAN(Path aggregation network)兩部分構(gòu)成。FPN 將主干網(wǎng)絡(luò)提取的特征自頂向下進行特征融合,然后由PAN 自底向上進行路徑增強。預測頭用于檢測目標的分類和回歸,不同級別的任務(wù)需要不同的預測頭。在預測頭部分中,3 個平行分支分別用于預測框回歸、類別劃分和判斷是否包含物體。
圖1 YOLOX網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.1 Structure of YOLOX network model
由于芝麻蒴果尺寸較小,且互相遮擋,因此,直接利用YOLOX 模型檢測芝麻蒴果時,會出現(xiàn)一定數(shù)量的錯檢、漏檢等問題,不能很好地擬合蒴果檢測任務(wù)。據(jù)此,將以YOLOX 模型為基準,重點優(yōu)化細粒度特征信息和準確空間位置信息的提取性能。將改進后的模型稱為CE-YOLOX 模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 CE-YOLOX網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 Structure of CE-YOLOX network model
1.4.1 PANet模塊改進 在YOLOX 模型中,經(jīng)過主干網(wǎng)絡(luò)得到13×13(特征層P5)、26×26(特征層P4)、52×52(特征層P3)3 種不同尺度的特征層。P5、P4依次經(jīng)過CSP2-1、CBS 和Upsample 操作后,獲得與其下一層相同尺寸和通道數(shù)的特征圖,然后通過級聯(lián)向下傳遞。PAN 模塊將FPN 融合后得到的特征圖依次經(jīng)過CSP2-1 和CBS 模塊降維,再與其上層特征圖級聯(lián),最后輸出P5′、P4′、P3′3 種特征層。改進前的PANet模塊見圖3a。
主干網(wǎng)絡(luò)中的大尺度特征層具有豐富的細粒度特征信息,更加有利于小尺寸目標的檢測[21]。通過引入大尺度特征層,融合深層特征的語義信息和淺層特征的細粒度信息,充分保留小目標細節(jié)特征,可有效提高芝麻蒴果的檢測精度。據(jù)此,經(jīng)主干網(wǎng)CSPDarknet的CSP1-1模塊,獲取104×104大尺度特征層,加入PANet中。改進后的PANet模塊(圖3b)保留了原模塊中的P5、P4、P3 特征層,新增大尺度104×104(特征層P2)。特征層P3 經(jīng)過CSP2-1、CBS 和Upsample 操作后,與特征層P2 融合,獲得具有豐富語義信息和大量細節(jié)信息的特征圖。然后又經(jīng)過CBAM、CSP2-1 和CBS 模塊進行特征強化和降維,隨后與P3 級聯(lián)并向上傳遞。為避免網(wǎng)絡(luò)冗余,經(jīng)過PAN 模塊后,輸出特征層P5′、P4′、P3′,不再輸出104×104特征層。
圖3 改進的PANet結(jié)構(gòu)圖Fig.3 Structure diagram of improved PANet
1.4.2 引入CBAM 注意力機制 CBAM 注意力機制是一種結(jié)合空間和通道的卷積注意力機制模塊[22]。由通道注意力CAM 模塊和空間注意力SAM 模塊組成。通道注意力模塊用于提取檢測目標的重要輪廓特征,獲取檢測目標的主要內(nèi)容。而空間注意力模塊用于獲取檢測目標的空間位置信息,來實現(xiàn)對檢測目標的精準定位。為了提高芝麻蒴果的檢測效果,在CBS 模塊后加入CBAM 模塊(圖2)。CBAM模塊將對3種不同尺度輸入特征圖進行自適應(yīng)特征細化,從而提高模型檢測準確率。
1.4.3 引入Soft-NMS 算法 由于芝麻蒴果具有較高重疊度,采用傳統(tǒng)NMS 非極大值抑制算法,將直接刪除重合面積過大的先驗框,造成部分有效先驗框的損失,影響部分蒴果的檢測效果。而Soft-NMS在進行非極大值抑制時,將同時考慮置信度和邊框之間的重合程度[23],采用加權(quán)方式降低重疊度大于一定閾值的先驗框置信度,并實時更新閾值,有效避免剔除正確先驗框。因此,在CE-YOLOX 模型后處理階段,本研究將NMS非極大值抑制算法替換為Soft-NMS非極大值抑制算法。
1.5.1 試驗環(huán)境與參數(shù)設(shè)置 采用的硬件設(shè)備配置:Core i7-10700kf 3.9GHz 處理器,16 GB 運行內(nèi)存,英偉達RTX 3080 10 GB 顯卡。軟件試驗環(huán)境:Win10 操作系統(tǒng),環(huán)境配置為pytorch 1.8.1、CUDA 11.1、cudnn 11.2 和Python 3.8。在CE-YOLOX 模型訓練時,輸入圖片尺寸為416×416(像素),優(yōu)化器采用Adam[24],初始學習率為0.001,動量因子為0.92,單次送入網(wǎng)絡(luò)的樣本數(shù)為4,設(shè)置總迭代次數(shù)為200次,每訓練5次保存模型,最終選擇在驗證集上損失最小的模型為本研究試驗模型[25]。
1.5.2 模型評價指標 為客觀衡量網(wǎng)絡(luò)模型對芝麻蒴果的檢測效果,采用準確率(Precision,P)、召回率(Recall,R)、平均精度(Mean average precision,mAP)、調(diào)和均值F1(F1score)和誤檢率作為評價指標。計算公式分別為:
式中:TP為目標被正確識別的數(shù)量;FP為未識別或錯誤識別的正樣本數(shù)量;FN為目標被錯誤劃分到負樣本的數(shù)量;P(R)為以召回率R為參數(shù)的函數(shù)。
將改進后的CE-YOLOX 網(wǎng)絡(luò)模型在芝麻蒴果數(shù)據(jù)集上進行訓練,模型的損失值變化曲線如圖4a所示。在前50次迭代,訓練集和驗證集損失值雖有不同程度振蕩現(xiàn)象,但總體都呈現(xiàn)快速下降趨勢,此時模型處于快速學習狀態(tài);在第50 次迭代之后,驗證集和訓練集損失值變化趨于平穩(wěn),模型達到收斂狀態(tài)。
圖4 損失值變化曲線(a)與PR曲線(b)Fig.4 Curves of loss value(a)and PR(b)
CE-YOLOX 模型的PR 曲線如圖4b 所示,橫軸為模型召回率,縱軸為準確率,曲線與坐標軸所圍的面積為平均精度,PR 曲線在平衡點(準確率=召回率)時接近于坐標點(1,1),CE-YOLOX 模型的平均精度為99.71%。
為驗證所采用不同改進方法的有效性,設(shè)計了消融試驗進行對比。方法1 為YOLOX 模型,方法2為加入CBAM 注意力機制后的模型,方法3 為將104×104 特征層引入PANet 模塊后得到的模型,方法4 為本研究模型。采用相同訓練數(shù)據(jù)集和參數(shù),分別訓練4種模型,結(jié)果如表1所示。
由表1 可知,方法2 相較于YOLOX 模型平均精度提高1.25 個百分點,F(xiàn)1值提高0.01,權(quán)重增加0.94 MB,參數(shù)量增加0.37%。這說明引入CBAM 注意力機制能夠抑制無用特征,保留更有效的輪廓特征和空間位置信息。方法3 相較于YOLOX 模型平均精度提高1.59 個百分點,F(xiàn)1值提高0.01,權(quán)重增加1.35 MB,參數(shù)量增加0.74%,這說明引入104×104 大尺度特征層,能更好地提取出蒴果目標的細粒度特征信息,有效提升模型對小目標的檢測性能。方法4相較于YOLOX模型平均精度提高3.28個百分點,F(xiàn)1值提高0.05,權(quán)重增加2.29 MB,參數(shù)量增加1.11%,檢測時間增加0.002 s。雖然模型4的參數(shù)量和檢測時間略有增加,但平均精度明顯提高??芍?,將2種改進方法同時融合到Y(jié)OLOX 模型中,能提升對芝麻蒴果識別與定位的精確性,由此也驗證了CEYOLOX模型改進方法的有效性。
表1 不同改進方法檢測結(jié)果Tab.1 Detection results of different improved structures
為進一步對比不同檢測模型對芝麻蒴果的識別性能,在相同試驗平臺上用相同數(shù)據(jù)集分別在Faster R-CNN、YOLOv3[26]、YOLOv4[27]和YOLOX[28]4 種模型上進行同批次的訓練。檢測結(jié)果如表2 所示。由表2 可知,在5 種檢測模型中,YOLOv3 和Faster R-CNN 模型的平均精度低于其他3 種模型,說明YOLOv3 對密集、小尺寸蒴果檢測效果較差,F(xiàn)aster R-CNN 模型檢測精度雖接近于YOLOv4 和YOLOX模型,但其召回率和檢測速度低于這2 種模型。相比而言,CE-YOLOX 模型檢測效果最好,其中,平均精度比YOLOv3、Faster R-CNN、YOLOv4、YOLOX 模型分別提高7.94、5.31、4.61、3.28 個百分點;召回率分別提高14.20、15.46、9.00、6.27 個百分點;F1值分別提高0.11、0.12、0.08、0.05。從檢測時間來看,CE-YOLOX 模型的檢測時間雖高于YOLOX 和YOLOv3,但與Faster R-CNN 和YOLOv4相比具有良好的檢測速度,以犧牲少量計算成本為代價,獲得更高檢測精度,因此,改進后模型更適用于密集、小尺寸芝麻蒴果的檢測。
表2 不同網(wǎng)絡(luò)模型檢測結(jié)果Tab.2 Detection results of different network models
圖5 對比了5 種不同模型對芝麻蒴果的識別結(jié)果,圖5a 和b 中共含有73 個蒴果目標。YOLOv3 模型正確檢出45 個蒴果,漏檢25 個,誤檢3 個。Faster R-CNN 模型正確檢出48 個蒴果,漏檢23 個,誤檢2個。YOLOv4 模型正確檢出57 個蒴果,漏檢15 個,誤檢1 個。YOLOX 模型正確檢出65 個蒴果,漏檢8個。CE-YOLOX 模型正確檢出72 個蒴果,誤檢1個??芍?,YOLOv3、Faster R-CNN 和YOLOv4 3種模型均出現(xiàn)不同程度的漏檢和誤檢,對于遮擋嚴重的蒴果檢測時漏檢較多;YOLOX模型并沒有出現(xiàn)誤檢情況,但對較小尺寸蒴果也存在漏檢情況;CE-YOLOX 模型也存在誤檢,但正確檢出率高于上述4種模型。
圖5 5種不同網(wǎng)絡(luò)模型效果對比Fig.5 Comparison of the effects of five different network models
為進一步對比不同模型對芝麻蒴果的檢測效果,隨機選取100張測試集圖片進行計數(shù)統(tǒng)計,人工統(tǒng)計共有總蒴果數(shù)2 879個。如表3所示,通過與其他4 種檢測模型對比,可以看出,CE-YOLOX 模型檢測計數(shù)準確率最高,正確檢測出蒴果數(shù)2 788 個,漏檢48 個,誤檢43 個,準確率為96.84%,誤檢率為1.49%。相比其他4種檢測模型誤差最低,具有較強檢測性能,更適用于實際情況下的芝麻蒴果檢測任務(wù)。
表3 不同網(wǎng)絡(luò)模型計數(shù)結(jié)果Tab.3 Counting results of different network models
針對芝麻蒴果尺寸小且存在互相遮擋情況,本研究提出了一種密集場景下芝麻蒴果檢測模型CE-YOLOX。在YOLOX 模型基礎(chǔ)上,首先優(yōu)化PANet 網(wǎng)絡(luò),增加104×104 大尺度特征層,以提高小目標蒴果特征信息的提取效率;然后通過加入CBAM 模塊,抑制無用特征信息,獲取檢測目標重要的輪廓特征和空間位置信息;最后,在后處理階段,將NMS 非極大值抑制算法替換為Soft-NMS 非極大值抑制算法,以降低檢測目標的漏檢率。CEYOLOX 模型對芝麻蒴果檢測的平均精度為99.71%,與原模型相比提高了3.28 個百分點,模型對單幅蒴果圖片測試時間為0.021 s。在相同測試集上進行計數(shù)試驗,CE-YOLOX 模型的計數(shù)準確率為96.84%。表明,對高度重疊、粘連遮擋的芝麻蒴果,CE-YOLOX 模型擁有高識別率、強魯棒性和良好的泛化性能。