郭 輝 陳海洋 高國民 周 偉 武天倫 邱兆鑫
(新疆農業大學機電工程學院, 烏魯木齊 830052)
紅花是一種集藥用、油料為一體的特種經濟作物,我國紅花產地主要分布在新疆,占全國80%左右[1-3]。由于紅花花球多批次開花,花冠高低不一,采用傳統機械化采收比較困難[4-5]。人工采摘成本在紅花產收成本中占比最大[6-7]。而紅花采摘機器人可有效解決上述問題。由于紅花生長環境為非結構化環境[8],且花冠小、姿態朝向各異,不易識別,因此紅花花冠的目標檢測與定位成為紅花采摘機器人的關鍵技術。
目前針對花朵的目標檢測大多采用傳統目標檢測方法,即利用花朵的顏色以及形狀信息,通過人為提取圖像特征完成花朵圖像的分割[9-10]。崔明等[11]針對草莓花朵圖像特點,采用改進K均值聚類方法完成圖像的分割,并利用形態學處理和連通區域特征分析提取花朵區域目標,完成對草莓花朵的識別。JASON等[12]采用遠近識別相結合的方法,使用相機對目標區域進行識別,根據花朵顏色特征利用分類器提取圖像中可能存在花朵區域,再用遷移學習的方法判斷在此區域中是否存在花朵目標。在近距離識別中使用RGB-D相機(深度相機)以及實時定位與地圖構建技術(Simultaneous localization and mapping,SLAM)對植株進行重構,再用分類算法對重構的植株圖像中的花朵進行識別,總體準確率達到78.6%。
近幾年,隨著深度學習技術的快速發展,基于深度學習的目標檢測方法在花朵目標檢測領域中的應用也十分廣泛。WILLIAMS等[13]采用深度學習方法,通過Faster R-CNN網絡算法對獼猴桃花朵數據集進行訓練,模型平均精度為85.3%。DIAS等[14]采用一種對雜亂和光照條件變化具有魯棒性的花卉識別技術,對深度卷積神經網絡進行調整,訓練得到的模型準確率和召回率都高于90.0%。TIAN等[15]采用多類別單次檢測(Single shot multibox detector,SSD)深度學習方法,利用牛津大學出版的花卉數據集VOC2007和VOC2012進行訓練,前者平均準確率為83.6%,后者平均準確率為87.0%,并可以檢測多個目標花卉。趙春江等[16]提出一種基于級聯卷積神經網絡的番茄花期識別檢測方法,在玻璃溫室環境下準確率為76.67%。熊俊濤等[17]通過深度語義分割算法對荔枝花識別與分割,平均檢測精度為87%。
針對紅花檢測,張天勇等[18]通過對比花絲顏色特征,運用色差法分析。選用最大類間方差法提取花絲輪廓,并通過紅花絲團簇狀特征,提出改進的形態學處理方法。最后結合改進質心法和最大內切圓法,確定花絲二維中心點坐標。在盛花期檢測準確度為93.3%,在敗花期檢測準確度為53.3%。綜上所述,傳統目標檢測方法提取的花朵特征有限,識別精度較低,適用性較差,且傳統目標檢測方法缺乏學習能力,不能根據圖像的變化進行自動調整。本文提出一種基于深度學習的移動式紅花目標檢測定位算法(Mobile safflower detection and position network,MSDP-Net)。該算法主要由紅花花冠目標檢測算法以及紅花花冠空間定位算法兩部分組成,以期能夠準確地檢測出盛花期紅花花冠,并輸出其三維空間坐標。
2022年7月在新疆維吾爾自治區昌吉回族自治州吉木薩爾縣紅旗農場采集紅花圖像共計3 200幅,并采用隨機角度旋轉、隨機縮放、加入隨機噪點等數據增強方法,將紅花圖像數據集擴展至6 400幅,并將其按照比例7∶2∶1隨機劃分為訓練集、測試集和驗證集,其中訓練集4 480幅、驗證集1 280幅、測試集640幅。李彤彤[6]將紅花開花過程分為4個階段,分別為花蕾期、初花期、盛花期和敗花期,如圖1所示。盛花期為符合本機器人采摘條件和經濟效益的最佳時期[19-20]。在不錯標、不重標、不漏標的原則下,使用Make Sense[21]工具對每幅圖像的盛花期紅花花冠進行標注,得到其對應的標簽文件,從而完成數據集建立。

圖1 4種不同花期的紅花花冠
本文基于YOLO v5算法[22-23],提出一種改進的YOLO v5算法,用于紅花花冠的目標檢測。利用同一紅花數據集對YOLO v5的6種架構[24]進行訓練,得到YOLO v5-Lite、YOLO v5s、YOLO v5n、YOLO v5m、YOLO v5l以及YOLO v5x 6種模型,并采用準確率(Precision,P)、召回率(Recall,R)、平均精度均值(Mean average precision,mAP)、幀速率(Frames per second,FPS)和模型內存占用量(Model size,Ms)作為衡量模型性能的主要指標,模型各項指標對比結果如表1所示。

表1 模型性能指標對比
為了對以上6種模型進行更準確的性能評估,首先對各模型的指標進行歸一化處理,以消除不同度量之間的量綱差異。采用Min-Max歸一化方法[25],將每個指標映射到0~1之間。其次根據實際應用場景以及研究目標為各項指標分配以下權重:WPrecision=0.2;WRecall=0.3;WmAP=0.2;WFPS=0.2;WModel size=-0.1(負權重,較小的模型在實際應用中更具優勢)。根據上述權重分配計算每個模型的加權得分,計算式為
(1)
YOLO v5 6種模型的綜合加權得分結果如表2所示。

表2 6種模型的綜合加權得分
根據表2可知,YOLO v5m的綜合加權得分在6種模型中最高。因此YOLO v5m針對紅花花冠的目標檢測更具有優勢。
為了進一步提升對紅花花冠的檢測精度,對YOLO v5m模型引入卷積塊注意力模塊(CBAM)[26-27]。CBAM模塊可以自適應地對輸入的特征圖進行調整,從而提升網絡的性能和泛化能力[28]。CBAM模塊由通道注意力模塊(CAM)以及空間注意力模塊(SAM)兩部分組成,其結構示意如圖2所示。

圖2 CBAM模塊結構示意圖
通道注意力模塊利用通道之間的關聯性來提取圖像的重要特征,從而更好地區分不同的目標。該模塊先對卷積層的輸出進行全局平均池化和全局最大池化,得到每個通道的全局特征圖,然后將其輸入到2個全連接層中,分別學習每個通道的權重,最后將權重應用到每個通道的特征圖上,從而得到加權后的特征圖,如圖3所示。

圖3 通道注意力模塊結構示意圖
空間注意力模塊利用空間之間的關聯性來提取圖像的重要特征。該模塊的實現方式類似于通道注意力模塊,但是在全連接層中需要學習每個空間位置的權重,最后將權重應用到每個空間位置的通道上,從而得到加權后的特征圖,如圖4所示。

圖4 空間注意力模塊結構示意圖
將CBAM模塊插入到主干網絡的最后1個卷積層和頸部網絡的第1個卷積層之間以及頸部網絡的最后1個卷積層之后,分別用于增強特征圖的表達能力以及增強輸出特征圖的判別能力。改進后的C-YOLO v5m網絡結構如圖5所示。

圖5 C-YOLO v5m網絡結構示意圖
采用雙目視覺技術來對紅花花冠進行空間定位,雙目相機選用Stereolabs公司生產的ZED2雙目相機[29]。將雙目相機連接在由步進電機驅動的滾珠絲桿平移臺上,使其能夠在采摘機器人左右方向上移動,如圖6所示。紅花花冠空間定位流程如圖7所示。

圖6 目標檢測定位系統位置結構示意圖

圖7 紅花花冠空間定位流程圖
系統上電后機器人移動到待作業區域,同時目標檢測定位系統歸零,進入待機狀態。開始作業后判斷當前檢測區域內是否有紅花花冠,如沒有,則平移臺帶動雙目相機移動到下一塊檢測區域,并重新進行判斷,雙目相機移動示意如圖8所示。

圖8 雙目相機移動示意圖
如檢測到紅花花冠,則將紅花花冠二維檢測框中心點坐標(X,Y)輸入到ZED2雙目相機的深度感知Stereo Vision算法[30]中,得到二維檢測框中心點的深度Z。將紅花花冠三維空間坐標(X,Y,Z)通過CAN總線發送至機器人采摘機械臂分控制器中,完成此檢測區域的采摘工作。當完成所有4個檢測區域采摘工作后,機器人向前行進至下一片作業區域,并判斷是否到達壟行盡頭的轉向點,如到達轉向點,則機器人轉向后重新移動到待作業區域并重復以上步驟。如沒有到達轉向點,則判斷機器人是否到達結束點,如沒有到達結束點,則目標檢測定位系統重新進入待機狀態并重復以上步驟。如到達結束點,則結束紅花花冠目標檢測與定位并退出。
通過標定雙目相機內參來得到圖像像素坐標系到相機坐標系的轉換關系。采用張正友標定法[31]標定雙目相機內參,標定結果如表3所示。

表3 ZED2雙目相機內參
圖像像素坐標系到相機坐標系的轉換關系為
(2)
式中 (u,v)——像素坐標系下坐標,像素
fx、fy——等效焦距,mm
(u0,v0)——圖像中心像素坐標,像素
(X,Y,Z)——相機坐標系下坐標,mm
為了使得到的圖像坐標更為準確,需要消除由于透鏡成像和安裝誤差產生的畸變,即
Xc=X(1+k1r2+k2r4+k3r6)+2p1XY+p2(r2+2X2)
(3)
Yc=Y(1+k1r2+k2r4+k3r6)+2p1XY+p2(r2+2Y2)
(4)
其中r2=X2+Y2
式中 (X,Y)——校正前坐標,mm
(Xc,Yc)——校正后坐標,mm
k1、k2、k3——徑向畸變系數
p1、p2——切向畸變系數
在實際雙目相機使用過程中,除了標定雙目相機的內參外,還需要標定雙目相機的外參來獲取相機坐標系到機械臂坐標系的轉換關系。雙目相機坐標系定義其坐標原點位于左目相機光心Oc處,Z軸指向相機正前方,X軸與基線平行指向右側鏡頭,左手大拇指指向Z軸,X軸沿四指方向旋轉90°為Y軸正方向。機械臂坐標系定義其坐標原點位于機械臂靜平臺中心點Ov處,Z軸垂直地面指向正下方,Y軸平行于地面指向機器人前進方向,X軸平行于地面指向機器人的右側,如圖9所示。

圖9 相機坐標系和機械臂坐標系示意圖
相機坐標系到機械臂坐標系繞X、Y、Z軸旋轉的角度α、θ、β用1個3×3的旋轉矩陣R來表示。相機坐標系原點到機械臂坐標系原點沿X、Y、Z軸平移的距離Δx、Δy、Δz用一個3×1的平移向量T來表示,相機坐標系到機械臂坐標系轉換的數學模型為
(5)
式中 (Xv,Yv,Zv)——機械臂坐標系坐標,mm
(Xc,Yc,Zc)——相機坐標系坐標,mm
將相關參數代入式(5),可得
(6)
式中θ——相機坐標系繞Yc軸旋轉角,取180°
t——相機坐標系原點Oc沿Xc軸的平移向量偏差
針對在目標檢測過程中的遮擋問題,將雙目相機安裝在平移臺上,以最大程度消除在目標檢測中機器零部件對花冠的遮擋、紅花植株對花冠的遮擋以及花冠與花冠之間的遮擋,如圖10所示。

圖10 目標檢測過程中的遮擋
讀取步進電機控制器在運行過程中的脈沖數來計算出相機的移動距離,完成在移動定位時的坐標轉換。本文帶動滾珠絲桿的步進電機的控制器選用Arduino UNO[32]單片機;步進電機為57系兩相步進電機,步距角為1.8°;步進電機驅動器為普菲德TB6600(默認細分1);滾珠絲桿導程Ph為4 mm,總長為1 070 mm,左限位開關到右限位開關的距離為1 000 mm,相機移動距離計算式為
(7)
式中l——相機的移動距離,mm
N——脈沖數,個
|t|=500-l,通過替換式(6)中的|t|,可得
(8)
整合紅花花冠目標檢測算法和紅花花冠空間定位算法,得到MSDP-Net算法。該算法能夠從復雜背景中檢測出紅花花冠并獲取其二維檢測框,并對檢測出的紅花花冠進行空間定位,經坐標轉換后輸出紅花花冠的三維空間坐標。MSDP-Net算法原理如圖11所示。

圖11 MSDP-Net算法原理圖
將MSDP-Net算法和相機移動式定位方法應用于自主研發的紅花采摘機器人控制系統中,完成對紅花花冠的目標檢測和空間定位,控制機械臂依據定位信息完成采摘作業。
模型訓練的硬件環境采用的CPU為13th Gen Intel(R)Core(TM)i9-13900KF@3.00 GHz,GPU為NVIDIA GeForce RTX 4090 24 GB,內存為Kingston DDR5 5600 MHz(16 GB×4),操作系統為Windows 11,網絡訓練框架選用Pytorch,并配有并行計算平臺CUDA 11.1以及CUDA深度神經網絡加速庫cuDNN v8.0.5。訓練輪數為300,批次大小為16,圖像尺寸為640像素×480像素進行訓練。
試驗于2022年7月3—10日在新疆維吾爾自治區昌吉回族自治州吉木薩爾縣紅旗農場二分場紅花種植基地(44.294 13°N,89.011 20°E)進行試驗,試驗地壟寬1 m,壟距0.5 m,紅花植株高度分布在350~750 mm之間。
采用準確率、召回率、平均精度均值、每秒傳輸幀數和模型內存占用量作為衡量目標檢測模型性能的指標。在相同條件下,分別對優化前和優化后的YOLO v5m模型性能進行了試驗,用兩種模型對紅花花冠圖像驗證集進行檢測。檢測效果如圖12所示,圖中檢測框上方的saf表示類別名稱,名稱后方的數字表示該類別的置信度。試驗結果如表4所示。

表4 優化前后模型各項指標

圖12 優化前后檢測效果對比
根據表4可知,優化后的YOLO v5m模型準確率、召回率以及平均精度均值都有不同程度的提升,準確率從90.22%增加至95.20%,提高4.98個百分點,召回率從89.81%增加至94.11%,提高4.3個百分點,平均精度均值從91.23%增加至96.73%,提高5.5個百分點,每秒傳輸幀數沒有變化,模型內存占用量有小幅度增加。總體來說,YOLO v5m網絡引入CBAM模塊有效地提高了模型性能,增加了目標檢測算法魯棒性。
為突出MSDP-Net算法的優越性,在相同條件下對Faster R-CNN、YOLO v3、YOLO v4、YOLO v6和YOLO v7 5種經典目標檢測算法的性能進行測試,并與MSDP-Net算法進行對比,結果如表5所示。

表5 經典目標檢測算法性能對比
根據表5可知,相較于其他5種經典目標檢測算法,本文提出的MSDP-Net算法檢測準確率高、檢測速度快、占用內存小,表現出優異的檢測性能,滿足采摘機器人要求。
為驗證紅花花冠空間定位的性能,隨機選取1壟紅花,在壟長3 m范圍內共計161朵盛花期紅花花冠。分別采用固定相機式和移動相機式定位方法對區域內161朵花冠進行空間定位。采用5線激光水平儀和瑞士Dimetix AG公司生產的DAN-10-150型激光測距儀(精度±0.5 mm),測量出每朵花冠的真實坐標,將空間定位算法得到的輸出坐標與真實坐標進行對比,輸出坐標與真實坐標在X、Y、Z任意一個方向上的偏差大于5 mm就認為該朵花冠定位失敗。試驗結果如表6所示,2種定位方法分別在X、Y、Z軸方向上的偏差分布示意如圖13所示。

表6 空間定位試驗結果

圖13 2種定位方法分別在X、Y、Z軸方向上的偏差分布示意
根據圖13可以看出,滿足機器人采摘條件的最大偏差為5 mm,輸出坐標在X、Y、Z任意1個方向上的偏差大于5 mm都會導致機器人采摘失敗。由于相機透鏡成像的影響,固定相機式定位方法只在畫面中心區域有較高的精度,越靠近畫面邊緣精度越低,輸出坐標與真實坐標之間的偏差也就越大。而移動相機式定位方法很好地克服了這一不足,其在畫面任意位置都能保持最佳精度,且在X、Y、Z軸方向上的輸出坐標與真實坐標之間的平均偏差小于3 mm,滿足采摘機器人的精度要求。
將提出的MSDP-Net算法以及移動式檢測定位方法應用于自主研發的紅花采摘機器人上,在實驗室環境下對盆栽紅花進行采摘試驗,實驗室作業場景如圖14所示,試驗結果如表7所示。

表7 采摘試驗結果

圖14 實驗室作業場景
根據表7可以得出,在500次采摘試驗中,成功采摘紅花花冠451朵,漏采49朵,采摘成功率90.20%。
為測試實際環境下機器人的采摘性能,在紅花種植區域中隨機選取一壟紅花,在壟長15 m范圍內進行采摘試驗,田間采摘試驗結果表明,盛花期紅花花冠采摘成功率大于90%,田間作業場景如圖15所示。

圖15 田間作業場景
(1)針對紅花花冠目標檢測,提出了一種改進的YOLO v5m模型C-YOLO v5m,對YOLO v5m模型引入卷積塊注意力模塊CBAM,使得模型的準確率、召回率以及平均精度均值分別提高4.98、4.3、5.5個百分點,減少了紅花花冠漏檢、誤檢等情況。
(2)針對紅花花冠的空間定位,提出了一種移動相機式定位方法,并通過和固定相機式進行對比來驗證其有效性。試驗結果表明,固定相機式定位成功率為84.47%,移動相機式定位成功率為93.79%,且移動相機式定位方法在X、Y、Z方向上的平均偏差小于3 mm,滿足采摘機器人的精度要求。
(3)將MSDP-Net算法與目前主流目標檢測算法進行對比。結果表明,本文提出的MSDP-Net算法的綜合性能均優于其他5種目標檢測算法,在紅花花冠檢測方面更具優勢。
(4)將MSDP-Net算法和相機移動式定位方法應用于自主研發的紅花采摘機器人,進行紅花采摘試驗。實驗室試驗結果表明,在500次重復試驗中,成功采摘451朵,漏采49朵,采摘成功率90.20%。田間試驗結果表明,在實際作業場景中,盛花期紅花花冠采摘成功率大于90%,驗證了MSDP-Net算法以及相機移動式定位方法的有效性。