趙 赫, 李衛(wèi)國, 楊止謙
(內(nèi)蒙古工業(yè)大學(xué)機(jī)械工程學(xué)院,內(nèi)蒙古呼和浩特 010000)
番茄作為日常生活主要的蔬菜之一,在我國得到了廣泛的種植。隨著農(nóng)業(yè)智能技術(shù)[1]的不斷推進(jìn),采摘機(jī)器人被越來越多地應(yīng)用在作物果實(shí)采摘的場景中。視覺系統(tǒng)和末端采摘系統(tǒng)作為機(jī)器人系統(tǒng)的重要組成部分,協(xié)同完成番茄果實(shí)采摘工作。因此,具有高魯棒性且適用于嵌入式開發(fā)環(huán)境的視覺系統(tǒng)是整個(gè)采摘過程的關(guān)鍵。
在傳統(tǒng)的目標(biāo)檢測(cè)研究中,更多的是采用對(duì)果實(shí)顏色和形狀進(jìn)行提取的方式,如Canny算法[2]、支持向量機(jī)(SVM)分類器[3],利用色差模型對(duì)番茄的成熟果實(shí)進(jìn)行顏色特征的提取[4]。由于傳統(tǒng)視覺檢測(cè)方法在對(duì)不同果實(shí)識(shí)別需要進(jìn)行不同的設(shè)計(jì),并且計(jì)算量過大導(dǎo)致的實(shí)時(shí)性差使其不再適合部署在移動(dòng)開發(fā)環(huán)境中。相比之下,基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)越性便體現(xiàn)了出來,其中廣泛應(yīng)用的有2類檢測(cè)方法,第1類是兩階段(two-stage)目標(biāo)檢測(cè),代表算法有RCNN[5]、Fast R-CNN[6]和Faster-RCNN[7],這一類算法是先基于建議區(qū)域,再通過該區(qū)域完成識(shí)別分類。第2類是單階段(one-stage)目標(biāo)檢測(cè),代表算法有YOLOv3[8]、YOLOv4[9]、SSD[10],這一類算法無需基于建議區(qū)域而是通過卷積神經(jīng)網(wǎng)絡(luò)直接完成目標(biāo)的位置及分類識(shí)別。其中YOLOv4作為一種優(yōu)秀的檢測(cè)算法,仍然具有網(wǎng)絡(luò)結(jié)構(gòu)龐大的缺點(diǎn),為了保證機(jī)器人的目標(biāo)識(shí)別實(shí)時(shí)性,本研究在原YOLOv4網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行輕量化改進(jìn),并采用雨紋渲染清晰圖片模擬降雨天氣的數(shù)據(jù)增強(qiáng)方法,完成模型在惡劣天氣下的果實(shí)識(shí)別任務(wù)。同時(shí),本研究簡化了兩點(diǎn)式抓取表達(dá)法,在完成目標(biāo)識(shí)別的同時(shí)繪制機(jī)器人末端夾持器預(yù)測(cè)抓取點(diǎn)和抓取軌跡。
本研究的研究對(duì)象為成熟紅色番茄果實(shí),考慮到數(shù)據(jù)采集的成本和效率,利用Python語言開發(fā)了圖像爬蟲在互聯(lián)網(wǎng)上批量爬取番茄圖像,再通過去除模糊、重復(fù)和圖片尺寸過小的人工篩選后,得到了220張清晰高質(zhì)量的圖像。
為了擴(kuò)充數(shù)據(jù)集同時(shí)模擬機(jī)器人在果園中檢測(cè)的復(fù)雜場景,本研究通過幾種常用的數(shù)據(jù)增強(qiáng)的方法,包括水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、縮放、高斯擾動(dòng)、旋轉(zhuǎn)、平移等操作,將采集到的220張圖像擴(kuò)張至 2 200 張。
對(duì)于在惡劣天氣下的目標(biāo)檢測(cè),周捷等提出ReBlur算法[11]的判斷步驟,再利用暗涌導(dǎo)先演算法增強(qiáng)惡劣天氣的目標(biāo)檢測(cè)能力,盡管對(duì)遭腐蝕圖像進(jìn)行復(fù)原后得到了一定的檢測(cè)能力,但是其繁瑣的判斷及復(fù)原流程會(huì)增加系統(tǒng)的計(jì)算時(shí)間。本研究提出1種模擬惡劣天氣使用雨紋渲染清晰圖片的數(shù)據(jù)增強(qiáng)方法,在保證機(jī)器人檢測(cè)實(shí)時(shí)性的前提下,提高識(shí)別模型對(duì)于降雨的魯棒性。為了更好地模擬現(xiàn)實(shí)世界的降雨天氣情況,本研究采用了3種不同密度的雨紋隨機(jī)渲染圖片分別代表小雨、中雨、大雨,通過調(diào)整雨紋傾斜角度來模擬不同風(fēng)向的降雨情況,并且將3種不同角度和密度的雨紋分別進(jìn)行混合插入到由普通數(shù)據(jù)增強(qiáng)構(gòu)成的數(shù)據(jù)集中,圖1展示了多種雨紋渲染數(shù)據(jù)增強(qiáng)的效果。
YOLOv4作為一種高效的實(shí)時(shí)檢測(cè)模型,在YOLOv3基礎(chǔ)上很好地結(jié)合了速度和精度,整體檢測(cè)模型的性能得到了顯著提高,其網(wǎng)絡(luò)結(jié)構(gòu)見圖2。
相比于YOLOv3,YOLOv4主要有以下改進(jìn):主干特征提取網(wǎng)絡(luò)(BackBone)主要是如圖3所示的CBM和CSPX模塊疊加組成,使用了CSPNet[12]將Darknet53修改成CSPDarknet53,主干部分仍然保持殘差塊的堆疊,另一部分則采用較大的殘差邊繞過很多殘差結(jié)構(gòu),將殘差塊中提取的高層信息和底層信息融合。
頸部網(wǎng)絡(luò)使用了如圖4所示的空間金字塔池化(spatial pyramid pooling,簡稱SPP)結(jié)構(gòu),在對(duì)CSPDarknet的最后一個(gè)特征層完成3次CBL模塊的卷積后,進(jìn)行4個(gè)不同尺度的最大池化(max pooling)操作,這一操作能夠極大地增加感受野,進(jìn)一步提取和融合特征,卷積核大小分別為(1×1)、(5×5)、(9×9)、(13×13)。
頸部網(wǎng)絡(luò)中使用路徑增強(qiáng)網(wǎng)絡(luò)(path aggregation network,簡稱PANet)作為參數(shù)聚合的方法,在特征金字塔網(wǎng)絡(luò)(feature pyramid networks,簡稱FPNet)從下自上進(jìn)行特征提取的基礎(chǔ)上再增加從上至下的特征提取(圖5),這一操作的特點(diǎn)在于進(jìn)一步的提取、合并特征信息。
MobileNet[13]作為一種由Google提出的一種小巧并且高效的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò),可以很好地應(yīng)用在一些移動(dòng)或嵌入式設(shè)備中,能夠在保持模型性能的前提下提升模型速度、降低模型的大小。在最新一代版本Mobilenet-v3中提出了如圖6所示的bneck結(jié)構(gòu),該結(jié)構(gòu)包含了深度可分離卷積、帶有線性瓶頸的逆殘差結(jié)構(gòu)、輕量級(jí)注意力模型。
帶有線性瓶頸的逆殘差結(jié)構(gòu)與傳統(tǒng)殘差結(jié)構(gòu)的區(qū)別在于,反向殘差網(wǎng)絡(luò)先對(duì)輸入特征使用逐點(diǎn)卷積將其升維,再利用深度卷積進(jìn)行特征提取,最后再使用逐點(diǎn)卷積對(duì)上一步的輸出特征同時(shí)完成線性組合和降維。在低維空間中使用ReLU激活函數(shù)可能會(huì)因?yàn)楹瘮?shù)特性使得負(fù)值歸零,從而導(dǎo)致通道的崩塌。為了解決信息損失問題,在最后一層逐點(diǎn)卷積,特征空間的維數(shù)變小后,使用線性激活函數(shù)Linear替代ReLU函數(shù),形成線性瓶頸結(jié)構(gòu)。
SE模塊(squeeze-and-excitation modular)利用1×1的卷積實(shí)現(xiàn)平均池化的操作,通過調(diào)整每個(gè)通道的權(quán)重使得注意力模型輕量化。
YOLOv4模型雖然性能優(yōu)良,但其主干提取網(wǎng)絡(luò)尺寸和計(jì)算量龐大,不適合一些性能較低的硬件應(yīng)用。考慮到儲(chǔ)存空間和功耗受限的機(jī)器人視覺系統(tǒng)環(huán)境,我們將不再使用YOLOv4模型的特征提取網(wǎng)絡(luò)CSPDarknet53,而是構(gòu)建一個(gè)由多個(gè)bneck結(jié)構(gòu)組成的輕量化特征提取網(wǎng)絡(luò),通過調(diào)整每個(gè)bneck結(jié)構(gòu)的參數(shù)(表1),可以得到高寬與CSPDarknet相同的3個(gè)初步有效特征層, 然后將這3個(gè)特征層輸入加強(qiáng)特征提取網(wǎng)絡(luò)獲得更有效的特征。該輕量化特征提取網(wǎng)絡(luò)的結(jié)構(gòu)如圖9所示,表1中的參數(shù)與圖9中每個(gè)bneck結(jié)構(gòu)一一對(duì)應(yīng)。
表1 bneck結(jié)構(gòu)參數(shù)
在這個(gè)由多個(gè)bneck結(jié)構(gòu)組成的輕量級(jí)特征提取網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)的不斷深入,非線性激活函數(shù)的應(yīng)用會(huì)降低在嵌入式環(huán)境下的成本,減少參數(shù)量,所以在后半部分的bneck結(jié)構(gòu)的構(gòu)件中激活函數(shù)將使用h-swish函數(shù)。同時(shí)為了進(jìn)一步減少整個(gè)網(wǎng)絡(luò)的參數(shù)量,我們將原來YOLOv4所有的普通卷積都換成深度可分離卷積。
在改進(jìn)型YOLOv4模型中損失函數(shù)部分與原YOLOv4模型相同,由回歸損失、置信度損失、分類損失3個(gè)部分組成,與YOLOv3有所區(qū)別的是在回歸損失中采用如圖10所示的CIoU損失函數(shù)進(jìn)行優(yōu)化,使目標(biāo)框回歸得更加穩(wěn)定,其公式如下:
式中:ρ2(b,bgt)分別代表了預(yù)測(cè)框和真實(shí)框的中心點(diǎn)的歐式距離;c代表的是能夠同時(shí)包含預(yù)測(cè)框和真實(shí)框的最小閉包區(qū)域的對(duì)角線距離。α和v的公式如下:
(1)
(2)
其中:w和h分別為預(yù)測(cè)框的寬和高。
優(yōu)化后的回歸損失:
(3)
模型的總體損失函數(shù)如下:
(4)
在上式中S2表示S×S個(gè)網(wǎng)格,每個(gè)網(wǎng)格又生成B個(gè)候選框,每個(gè)候選框通過網(wǎng)絡(luò)得到相應(yīng)的邊界框,最終形成S×S×B個(gè)邊界框。如果得到的盒子中沒有對(duì)象(noobj),則只計(jì)算盒子的置信度損失。置信損失函數(shù)采用交叉熵誤差,分為有目標(biāo)(obj)、無目標(biāo)(noobj)2個(gè)部分。noobj的損失增加了權(quán)重系數(shù)λ,減少了noobj計(jì)算部分的貢獻(xiàn)權(quán)重。分類損失函數(shù)采用了交叉熵誤差。當(dāng)?shù)趇個(gè)網(wǎng)格的第j個(gè)錨框負(fù)責(zé)一定的真實(shí)的有效值(ground truth)時(shí),該錨框產(chǎn)生的邊界框?qū)⒂?jì)算分類損失函數(shù)。
試驗(yàn)地點(diǎn)為筆者所在實(shí)驗(yàn)室搭建的深度學(xué)習(xí)平臺(tái):Windows10系統(tǒng),GPU為NVIDIA GeForce GTX 1650,CUDA和CUDNN版本分別為10.0和7.4.1.5,在Pytorch深度學(xué)習(xí)框架下完成檢測(cè)模型的訓(xùn)練。試驗(yàn)時(shí)間為2021年10月10日,試驗(yàn)對(duì)象來源為圖像爬蟲在互聯(lián)網(wǎng)上批量爬取的番茄圖像。
本研究采用VOC 2007的數(shù)據(jù)集格式,使用Labelimg對(duì)數(shù)據(jù)集中含有的番茄果實(shí)進(jìn)行人工標(biāo)注,得到的真實(shí)框?qū)⒂糜谟?xùn)練,同時(shí)使用Python語言編寫了離線數(shù)據(jù)增強(qiáng)程序,如果增強(qiáng)后的圖像中番茄果實(shí)位置發(fā)生了相對(duì)變化,真實(shí)框的位置也會(huì)隨之變化。
受試驗(yàn)硬件限制,改進(jìn)型YOLOv4的輸入尺寸為416×416×3。在模型訓(xùn)練參數(shù)中,總共的訓(xùn)練世代(epoch)為100,為了加快訓(xùn)練速度,首先會(huì)進(jìn)行凍結(jié)訓(xùn)練,前50個(gè)世代的學(xué)習(xí)速率為1×10-3,batch size為4。解凍訓(xùn)練后的50個(gè)世代的參數(shù)與前50個(gè)相同。
在本試驗(yàn)中的評(píng)價(jià)指標(biāo)由FN、FP、TN、TP等4個(gè)參數(shù)組成。其中FN為預(yù)測(cè)為負(fù)樣本,實(shí)際為正樣本;FP為預(yù)測(cè)為正樣本,實(shí)際為負(fù)樣本;TN為預(yù)測(cè)正確的負(fù)樣本;TP為預(yù)測(cè)正確的正樣本。精準(zhǔn)度(precision,P)代表預(yù)測(cè)正確的正樣本占所有預(yù)測(cè)為正樣本的比例。召回率(recall,R)代表預(yù)測(cè)正確的正樣本占所有實(shí)際為正樣本的比例。單獨(dú)使用這2個(gè)指標(biāo)中的任意1個(gè)來評(píng)價(jià)模型預(yù)測(cè)的好壞具有一定的局限性,科學(xué)的方法是將二者結(jié)合評(píng)價(jià)。每個(gè)類別的平均精度(average precision,簡稱AP)由精準(zhǔn)度和召回率組成的PR曲線下的面積。平均精度均值(mean average precision,簡稱mAP)是將所有類的AP求平均。F1是基于精度和召回率的調(diào)和平均值。以上幾種評(píng)價(jià)指標(biāo)的公式如下:
(5)
(6)
;
(7)
(8)
(9)
其中,p、r分別為PR曲線中P、R的參數(shù)。
為了評(píng)估雨紋渲染數(shù)據(jù)增強(qiáng)方法對(duì)模型的影響,我們通過爬取200張惡劣降雨天氣番茄圖片作為測(cè)試集,再將改進(jìn)的YOLOv4模型分別在普通數(shù)據(jù)增強(qiáng)和雨紋渲染結(jié)合普通數(shù)據(jù)增強(qiáng)的數(shù)據(jù)集共計(jì)2 000張圖片進(jìn)行訓(xùn)練,訓(xùn)練完成后在測(cè)試集上進(jìn)行測(cè)試,得到評(píng)價(jià)指標(biāo)F1得分并統(tǒng)計(jì)(圖11)。
從圖11可以看出,雨紋渲染數(shù)據(jù)增強(qiáng)提升了模型性能,F(xiàn)1得分上升了14%。與普通的數(shù)據(jù)增強(qiáng)方法相比,雨紋渲染數(shù)據(jù)增強(qiáng)會(huì)為圖像增加新的背景和紋理,這不僅提升了模型的學(xué)習(xí)能力,并且增強(qiáng)了模型在降雨惡劣天氣下的魯棒性。
為了驗(yàn)證本研究提出的改進(jìn)YOLOv4模型的表現(xiàn),將其與原YOLOv4模型利用EfficientNet替換darknet作為骨干網(wǎng)絡(luò)的改進(jìn)形YOLOv3模型進(jìn)行比較(表2),以顯示不同模型的檢測(cè)結(jié)果。
表2 不同模型的檢驗(yàn)結(jié)果
從表2可知,在相同條件下,改進(jìn)型YOLOv4在降雨天氣下較YOLOv4和EfficientNet-YOLOv3在F1方面分別提高了1.00%、2.00%,在平均精度方面分別提高了2.50%、2.97%,在準(zhǔn)確率方面分別提高了0.10%、0.15%,在召回率方面分別提高了0.77%、3.43%。在參數(shù)量方面,改進(jìn)后的YOLOv4模型較YOLOv4壓縮了81.69%,較EfficientNet-YOLOv3壓縮了25.95%。試驗(yàn)結(jié)果表明,改進(jìn)后的YOLOv4模型在實(shí)現(xiàn)輕量化更加適合搭載嵌入式設(shè)備的前提下,在降雨天氣下具有更優(yōu)秀的性能。
捏取式抓取不僅是人類日常生活中最常使用的抓取操作,同時(shí)也是機(jī)器人經(jīng)常使用的抓取類型。在這種操作類型中,物體將處于2根手指之間,通過手指和物體之間的擠壓力穩(wěn)定抓取物體。最常見的末端執(zhí)行機(jī)構(gòu)便是平行夾持器,同時(shí)也可以推廣到不同的靈巧手或者欠驅(qū)動(dòng)手中,只要將不同類型的番茄采摘機(jī)器人的采摘執(zhí)行機(jī)構(gòu)按照需求,定義出2個(gè)虛擬手指,就可以滿足對(duì)于番茄的捏取操作。
兩點(diǎn)式抓取表達(dá)法即用目標(biāo)物體上的2個(gè)點(diǎn)表示2根手指的抓取位置的預(yù)測(cè)點(diǎn)(圖12)。目標(biāo)物體的左下右上2個(gè)圓點(diǎn)即為抓持器在進(jìn)行對(duì)于物體進(jìn)行捏持操作時(shí)兩端的抓取位置的預(yù)測(cè)點(diǎn)。中心圓點(diǎn)位于2個(gè)抓取位置預(yù)測(cè)點(diǎn)的連線的中點(diǎn)上。圖12中的4個(gè)參數(shù)x0、y0、θ、d即可以確定2個(gè)抓取點(diǎn)的位置。中心圓點(diǎn)的位置坐標(biāo)由(x0,y0)確定,d為2個(gè)預(yù)抓取點(diǎn)的距離,θ作為抓持器的旋轉(zhuǎn)角,即為抓持器兩端進(jìn)行抓持方向相對(duì)于圖片坐標(biāo)系的夾角。在通過以上4個(gè)參數(shù)得到抓取的位置預(yù)測(cè)點(diǎn)后,通過將其映射至機(jī)器人的三維操作空間,就可以確定機(jī)器人末端夾持器的預(yù)抓取位姿。
考慮到番茄成熟果實(shí)的形狀特殊性,其外形普遍為類球形,在采摘機(jī)器人抓持過程中無需考慮物體形狀多樣性,也無需考慮抓取物體時(shí)末端抓持器的位姿,可以有多種可選擇抓取的位置(圖13),所以只需要確定當(dāng)采摘機(jī)器人的攝像頭反饋回中央控制系統(tǒng)識(shí)別模型的每一幀圖像的預(yù)測(cè)番茄果實(shí)的中心,再將其映射到機(jī)器人的三維操作空間,該中心點(diǎn)可以對(duì)應(yīng)所用末端夾持器的中心點(diǎn)的位置信息,再通過夾持器表面的力傳感器反饋完成穩(wěn)定抓取。
在以往的物體抓取位置研究中[14],往往因?yàn)槲矬w形狀的多樣性和特殊性,需要對(duì)不同的目標(biāo)物進(jìn)行抓取位置采集與標(biāo)注,再將抓取數(shù)據(jù)集輸入抓取檢測(cè)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練??紤]到實(shí)際嵌入式設(shè)備的計(jì)算量和識(shí)別速度,結(jié)合番茄果實(shí)自身的形狀特殊性,本研究采用模型預(yù)測(cè)框的中心點(diǎn)作為抓取中心點(diǎn),并且繪制出一條以該點(diǎn)為中點(diǎn)并且垂直與預(yù)測(cè)框左右兩側(cè)的直線,該直線與預(yù)測(cè)框的相交2點(diǎn)即為抓持器兩端預(yù)測(cè)抓取位置,該直線即為機(jī)器人末端抓持器的捏持軌跡,在生成預(yù)測(cè)框的同時(shí)生成抓取點(diǎn)和抓取軌跡,2種不同角度擺放番茄的簡化兩點(diǎn)抓取表達(dá)法見圖14。
在通過改進(jìn)型YOLOv4在完成目標(biāo)識(shí)別生成預(yù)測(cè)框的同時(shí),繪制出參考抓取點(diǎn)及抓取軌跡效果(圖15)。從圖15可看出,不管在何種角度,簡易兩點(diǎn)式抓取表達(dá)法都可以滿足對(duì)番茄的抓取需求。
(1)本研究提出了一種改進(jìn)型YOLOv4目標(biāo)檢測(cè)模型,利用bneck結(jié)構(gòu)組成的輕量級(jí)特征提取網(wǎng)絡(luò)替換原模型的主干網(wǎng)絡(luò),并將原模型中所有的標(biāo)準(zhǔn)卷積替換為深度可分離卷積。使得改進(jìn)后的模型在參數(shù)量方面壓縮了81.69%,F(xiàn)1提高了1.00%,平均精度提高了2.50%,準(zhǔn)確率提高了0.10%,召回率提高了0.77%,更加輕量化的同時(shí)還保證了整體性能,克服了原YOLOv4模型規(guī)模龐大、計(jì)算量大的缺點(diǎn),更適合部署在嵌入式開發(fā)環(huán)境的采摘機(jī)器人上。(2)模擬了降雨天氣下的番茄的檢測(cè)過程中可能遇到的圖像被雨紋腐蝕的情況,提出了一種雨紋渲染數(shù)據(jù)增強(qiáng)方法,分別將普通數(shù)據(jù)增強(qiáng)和雨紋渲染結(jié)合普通數(shù)據(jù)增強(qiáng)的數(shù)據(jù)集在改進(jìn)YOLOv4模型上進(jìn)行對(duì)比試驗(yàn),試驗(yàn)結(jié)果表明,雨紋渲染數(shù)據(jù)增強(qiáng)能有效提高模型在降雨天氣下的魯棒性。(3)提出了適合番茄類球狀的簡化兩點(diǎn)式抓取表示法,在目標(biāo)檢測(cè)的同時(shí)生成抓取預(yù)測(cè)點(diǎn)及夾取軌跡,檢測(cè)效果顯示可以滿足機(jī)器人抓取需求。