趙 赫, 李衛國, 楊止謙
(內蒙古工業大學機械工程學院,內蒙古呼和浩特 010000)
番茄作為日常生活主要的蔬菜之一,在我國得到了廣泛的種植。隨著農業智能技術[1]的不斷推進,采摘機器人被越來越多地應用在作物果實采摘的場景中。視覺系統和末端采摘系統作為機器人系統的重要組成部分,協同完成番茄果實采摘工作。因此,具有高魯棒性且適用于嵌入式開發環境的視覺系統是整個采摘過程的關鍵。
在傳統的目標檢測研究中,更多的是采用對果實顏色和形狀進行提取的方式,如Canny算法[2]、支持向量機(SVM)分類器[3],利用色差模型對番茄的成熟果實進行顏色特征的提取[4]。由于傳統視覺檢測方法在對不同果實識別需要進行不同的設計,并且計算量過大導致的實時性差使其不再適合部署在移動開發環境中。相比之下,基于深度學習的卷積神經網絡的優越性便體現了出來,其中廣泛應用的有2類檢測方法,第1類是兩階段(two-stage)目標檢測,代表算法有RCNN[5]、Fast R-CNN[6]和Faster-RCNN[7],這一類算法是先基于建議區域,再通過該區域完成識別分類。第2類是單階段(one-stage)目標檢測,代表算法有YOLOv3[8]、YOLOv4[9]、SSD[10],這一類算法無需基于建議區域而是通過卷積神經網絡直接完成目標的位置及分類識別。其中YOLOv4作為一種優秀的檢測算法,仍然具有網絡結構龐大的缺點,為了保證機器人的目標識別實時性,本研究在原YOLOv4網絡基礎上進行輕量化改進,并采用雨紋渲染清晰圖片模擬降雨天氣的數據增強方法,完成模型在惡劣天氣下的果實識別任務。同時,本研究簡化了兩點式抓取表達法,在完成目標識別的同時繪制機器人末端夾持器預測抓取點和抓取軌跡。
本研究的研究對象為成熟紅色番茄果實,考慮到數據采集的成本和效率,利用Python語言開發了圖像爬蟲在互聯網上批量爬取番茄圖像,再通過去除模糊、重復和圖片尺寸過小的人工篩選后,得到了220張清晰高質量的圖像。
為了擴充數據集同時模擬機器人在果園中檢測的復雜場景,本研究通過幾種常用的數據增強的方法,包括水平翻轉、垂直翻轉、縮放、高斯擾動、旋轉、平移等操作,將采集到的220張圖像擴張至 2 200 張。
對于在惡劣天氣下的目標檢測,周捷等提出ReBlur算法[11]的判斷步驟,再利用暗涌導先演算法增強惡劣天氣的目標檢測能力,盡管對遭腐蝕圖像進行復原后得到了一定的檢測能力,但是其繁瑣的判斷及復原流程會增加系統的計算時間。本研究提出1種模擬惡劣天氣使用雨紋渲染清晰圖片的數據增強方法,在保證機器人檢測實時性的前提下,提高識別模型對于降雨的魯棒性。為了更好地模擬現實世界的降雨天氣情況,本研究采用了3種不同密度的雨紋隨機渲染圖片分別代表小雨、中雨、大雨,通過調整雨紋傾斜角度來模擬不同風向的降雨情況,并且將3種不同角度和密度的雨紋分別進行混合插入到由普通數據增強構成的數據集中,圖1展示了多種雨紋渲染數據增強的效果。

YOLOv4作為一種高效的實時檢測模型,在YOLOv3基礎上很好地結合了速度和精度,整體檢測模型的性能得到了顯著提高,其網絡結構見圖2。

相比于YOLOv3,YOLOv4主要有以下改進:主干特征提取網絡(BackBone)主要是如圖3所示的CBM和CSPX模塊疊加組成,使用了CSPNet[12]將Darknet53修改成CSPDarknet53,主干部分仍然保持殘差塊的堆疊,另一部分則采用較大的殘差邊繞過很多殘差結構,將殘差塊中提取的高層信息和底層信息融合。

頸部網絡使用了如圖4所示的空間金字塔池化(spatial pyramid pooling,簡稱SPP)結構,在對CSPDarknet的最后一個特征層完成3次CBL模塊的卷積后,進行4個不同尺度的最大池化(max pooling)操作,這一操作能夠極大地增加感受野,進一步提取和融合特征,卷積核大小分別為(1×1)、(5×5)、(9×9)、(13×13)。

頸部網絡中使用路徑增強網絡(path aggregation network,簡稱PANet)作為參數聚合的方法,在特征金字塔網絡(feature pyramid networks,簡稱FPNet)從下自上進行特征提取的基礎上再增加從上至下的特征提取(圖5),這一操作的特點在于進一步的提取、合并特征信息。

MobileNet[13]作為一種由Google提出的一種小巧并且高效的輕量級卷積神經網絡,可以很好地應用在一些移動或嵌入式設備中,能夠在保持模型性能的前提下提升模型速度、降低模型的大小。在最新一代版本Mobilenet-v3中提出了如圖6所示的bneck結構,該結構包含了深度可分離卷積、帶有線性瓶頸的逆殘差結構、輕量級注意力模型。




帶有線性瓶頸的逆殘差結構與傳統殘差結構的區別在于,反向殘差網絡先對輸入特征使用逐點卷積將其升維,再利用深度卷積進行特征提取,最后再使用逐點卷積對上一步的輸出特征同時完成線性組合和降維。在低維空間中使用ReLU激活函數可能會因為函數特性使得負值歸零,從而導致通道的崩塌。為了解決信息損失問題,在最后一層逐點卷積,特征空間的維數變小后,使用線性激活函數Linear替代ReLU函數,形成線性瓶頸結構。
SE模塊(squeeze-and-excitation modular)利用1×1的卷積實現平均池化的操作,通過調整每個通道的權重使得注意力模型輕量化。
YOLOv4模型雖然性能優良,但其主干提取網絡尺寸和計算量龐大,不適合一些性能較低的硬件應用??紤]到儲存空間和功耗受限的機器人視覺系統環境,我們將不再使用YOLOv4模型的特征提取網絡CSPDarknet53,而是構建一個由多個bneck結構組成的輕量化特征提取網絡,通過調整每個bneck結構的參數(表1),可以得到高寬與CSPDarknet相同的3個初步有效特征層, 然后將這3個特征層輸入加強特征提取網絡獲得更有效的特征。該輕量化特征提取網絡的結構如圖9所示,表1中的參數與圖9中每個bneck結構一一對應。

表1 bneck結構參數
在這個由多個bneck結構組成的輕量級特征提取網絡中,隨著網絡的不斷深入,非線性激活函數的應用會降低在嵌入式環境下的成本,減少參數量,所以在后半部分的bneck結構的構件中激活函數將使用h-swish函數。同時為了進一步減少整個網絡的參數量,我們將原來YOLOv4所有的普通卷積都換成深度可分離卷積。
在改進型YOLOv4模型中損失函數部分與原YOLOv4模型相同,由回歸損失、置信度損失、分類損失3個部分組成,與YOLOv3有所區別的是在回歸損失中采用如圖10所示的CIoU損失函數進行優化,使目標框回歸得更加穩定,其公式如下:
式中:ρ2(b,bgt)分別代表了預測框和真實框的中心點的歐式距離;c代表的是能夠同時包含預測框和真實框的最小閉包區域的對角線距離。α和v的公式如下:
(1)
(2)
其中:w和h分別為預測框的寬和高。


優化后的回歸損失:
(3)
模型的總體損失函數如下:
(4)
在上式中S2表示S×S個網格,每個網格又生成B個候選框,每個候選框通過網絡得到相應的邊界框,最終形成S×S×B個邊界框。如果得到的盒子中沒有對象(noobj),則只計算盒子的置信度損失。置信損失函數采用交叉熵誤差,分為有目標(obj)、無目標(noobj)2個部分。noobj的損失增加了權重系數λ,減少了noobj計算部分的貢獻權重。分類損失函數采用了交叉熵誤差。當第i個網格的第j個錨框負責一定的真實的有效值(ground truth)時,該錨框產生的邊界框將計算分類損失函數。
試驗地點為筆者所在實驗室搭建的深度學習平臺:Windows10系統,GPU為NVIDIA GeForce GTX 1650,CUDA和CUDNN版本分別為10.0和7.4.1.5,在Pytorch深度學習框架下完成檢測模型的訓練。試驗時間為2021年10月10日,試驗對象來源為圖像爬蟲在互聯網上批量爬取的番茄圖像。
本研究采用VOC 2007的數據集格式,使用Labelimg對數據集中含有的番茄果實進行人工標注,得到的真實框將用于訓練,同時使用Python語言編寫了離線數據增強程序,如果增強后的圖像中番茄果實位置發生了相對變化,真實框的位置也會隨之變化。
受試驗硬件限制,改進型YOLOv4的輸入尺寸為416×416×3。在模型訓練參數中,總共的訓練世代(epoch)為100,為了加快訓練速度,首先會進行凍結訓練,前50個世代的學習速率為1×10-3,batch size為4。解凍訓練后的50個世代的參數與前50個相同。
在本試驗中的評價指標由FN、FP、TN、TP等4個參數組成。其中FN為預測為負樣本,實際為正樣本;FP為預測為正樣本,實際為負樣本;TN為預測正確的負樣本;TP為預測正確的正樣本。精準度(precision,P)代表預測正確的正樣本占所有預測為正樣本的比例。召回率(recall,R)代表預測正確的正樣本占所有實際為正樣本的比例。單獨使用這2個指標中的任意1個來評價模型預測的好壞具有一定的局限性,科學的方法是將二者結合評價。每個類別的平均精度(average precision,簡稱AP)由精準度和召回率組成的PR曲線下的面積。平均精度均值(mean average precision,簡稱mAP)是將所有類的AP求平均。F1是基于精度和召回率的調和平均值。以上幾種評價指標的公式如下:
(5)
(6)
;
(7)
(8)
(9)
其中,p、r分別為PR曲線中P、R的參數。
為了評估雨紋渲染數據增強方法對模型的影響,我們通過爬取200張惡劣降雨天氣番茄圖片作為測試集,再將改進的YOLOv4模型分別在普通數據增強和雨紋渲染結合普通數據增強的數據集共計2 000張圖片進行訓練,訓練完成后在測試集上進行測試,得到評價指標F1得分并統計(圖11)。
從圖11可以看出,雨紋渲染數據增強提升了模型性能,F1得分上升了14%。與普通的數據增強方法相比,雨紋渲染數據增強會為圖像增加新的背景和紋理,這不僅提升了模型的學習能力,并且增強了模型在降雨惡劣天氣下的魯棒性。

為了驗證本研究提出的改進YOLOv4模型的表現,將其與原YOLOv4模型利用EfficientNet替換darknet作為骨干網絡的改進形YOLOv3模型進行比較(表2),以顯示不同模型的檢測結果。

表2 不同模型的檢驗結果
從表2可知,在相同條件下,改進型YOLOv4在降雨天氣下較YOLOv4和EfficientNet-YOLOv3在F1方面分別提高了1.00%、2.00%,在平均精度方面分別提高了2.50%、2.97%,在準確率方面分別提高了0.10%、0.15%,在召回率方面分別提高了0.77%、3.43%。在參數量方面,改進后的YOLOv4模型較YOLOv4壓縮了81.69%,較EfficientNet-YOLOv3壓縮了25.95%。試驗結果表明,改進后的YOLOv4模型在實現輕量化更加適合搭載嵌入式設備的前提下,在降雨天氣下具有更優秀的性能。
捏取式抓取不僅是人類日常生活中最常使用的抓取操作,同時也是機器人經常使用的抓取類型。在這種操作類型中,物體將處于2根手指之間,通過手指和物體之間的擠壓力穩定抓取物體。最常見的末端執行機構便是平行夾持器,同時也可以推廣到不同的靈巧手或者欠驅動手中,只要將不同類型的番茄采摘機器人的采摘執行機構按照需求,定義出2個虛擬手指,就可以滿足對于番茄的捏取操作。
兩點式抓取表達法即用目標物體上的2個點表示2根手指的抓取位置的預測點(圖12)。目標物體的左下右上2個圓點即為抓持器在進行對于物體進行捏持操作時兩端的抓取位置的預測點。中心圓點位于2個抓取位置預測點的連線的中點上。圖12中的4個參數x0、y0、θ、d即可以確定2個抓取點的位置。中心圓點的位置坐標由(x0,y0)確定,d為2個預抓取點的距離,θ作為抓持器的旋轉角,即為抓持器兩端進行抓持方向相對于圖片坐標系的夾角。在通過以上4個參數得到抓取的位置預測點后,通過將其映射至機器人的三維操作空間,就可以確定機器人末端夾持器的預抓取位姿。

考慮到番茄成熟果實的形狀特殊性,其外形普遍為類球形,在采摘機器人抓持過程中無需考慮物體形狀多樣性,也無需考慮抓取物體時末端抓持器的位姿,可以有多種可選擇抓取的位置(圖13),所以只需要確定當采摘機器人的攝像頭反饋回中央控制系統識別模型的每一幀圖像的預測番茄果實的中心,再將其映射到機器人的三維操作空間,該中心點可以對應所用末端夾持器的中心點的位置信息,再通過夾持器表面的力傳感器反饋完成穩定抓取。

在以往的物體抓取位置研究中[14],往往因為物體形狀的多樣性和特殊性,需要對不同的目標物進行抓取位置采集與標注,再將抓取數據集輸入抓取檢測卷積神經網絡進行訓練??紤]到實際嵌入式設備的計算量和識別速度,結合番茄果實自身的形狀特殊性,本研究采用模型預測框的中心點作為抓取中心點,并且繪制出一條以該點為中點并且垂直與預測框左右兩側的直線,該直線與預測框的相交2點即為抓持器兩端預測抓取位置,該直線即為機器人末端抓持器的捏持軌跡,在生成預測框的同時生成抓取點和抓取軌跡,2種不同角度擺放番茄的簡化兩點抓取表達法見圖14。

在通過改進型YOLOv4在完成目標識別生成預測框的同時,繪制出參考抓取點及抓取軌跡效果(圖15)。從圖15可看出,不管在何種角度,簡易兩點式抓取表達法都可以滿足對番茄的抓取需求。

(1)本研究提出了一種改進型YOLOv4目標檢測模型,利用bneck結構組成的輕量級特征提取網絡替換原模型的主干網絡,并將原模型中所有的標準卷積替換為深度可分離卷積。使得改進后的模型在參數量方面壓縮了81.69%,F1提高了1.00%,平均精度提高了2.50%,準確率提高了0.10%,召回率提高了0.77%,更加輕量化的同時還保證了整體性能,克服了原YOLOv4模型規模龐大、計算量大的缺點,更適合部署在嵌入式開發環境的采摘機器人上。(2)模擬了降雨天氣下的番茄的檢測過程中可能遇到的圖像被雨紋腐蝕的情況,提出了一種雨紋渲染數據增強方法,分別將普通數據增強和雨紋渲染結合普通數據增強的數據集在改進YOLOv4模型上進行對比試驗,試驗結果表明,雨紋渲染數據增強能有效提高模型在降雨天氣下的魯棒性。(3)提出了適合番茄類球狀的簡化兩點式抓取表示法,在目標檢測的同時生成抓取預測點及夾取軌跡,檢測效果顯示可以滿足機器人抓取需求。