趙華民,LAWAL Olarewaju,許德芳
(1.山西農(nóng)業(yè)大學(xué)農(nóng)業(yè)工程學(xué)院,山西 太谷 030801;2.呂梁學(xué)院經(jīng)濟(jì)管理系,山西 呂梁 033001)
【研究意義】甜瓜(Cucumis meloL.)在我國種植廣泛,是一種深受大眾喜愛的夏季水果[1]。目前甜瓜以溫室種植較多,其成熟期溫室內(nèi)溫濕度較高,且藤蔓及果實上遍布絨毛,人工采摘環(huán)境較差[2]。隨著智能農(nóng)機(jī)迅速發(fā)展,采摘機(jī)器人成為研究熱點。采摘機(jī)器人作業(yè)的首要步驟是快速準(zhǔn)確地對目標(biāo)進(jìn)行識別和定位。甜瓜采收期枝葉繁茂,目標(biāo)果實大多被葉片和藤蔓遮擋,溫室內(nèi)光照變化等對甜瓜 的自動化采摘目標(biāo)識別帶來很大挑戰(zhàn)。建立YOLOResNet70 模型,使甜瓜在光照變化和葉片藤蔓遮擋嚴(yán)重情況下自動采摘快速識別,并結(jié)合RGB-D 視覺傳感器實現(xiàn)目標(biāo)的空間定位具有重要意義。
【前人研究進(jìn)展】基于機(jī)器視覺的目標(biāo)檢測和識別技術(shù)近年來發(fā)展迅速,深度學(xué)習(xí)的突破性進(jìn)展為計算機(jī)視覺技術(shù)在農(nóng)業(yè)視覺任務(wù)中的應(yīng)用鋪平道路[3-5],如卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以自動直接從輸入圖像中提取復(fù)雜特征[6]。目前常用的目標(biāo)檢測網(wǎng)絡(luò)分為以Faster R-CNN 為代表的Two-stage 檢測網(wǎng)絡(luò)和以YOLO 為代表的Onestage 兩 種。Inkyu 等[7]采 用Faster R-CNN 對 哈密瓜等水果的RGB 圖像和近紅外信號進(jìn)行混合檢測,取得良好的檢測效果,F(xiàn)1值達(dá)到84.8%,但是對于小目標(biāo)的檢測速度需要提升。Bargoti等[8]同樣基于Faster R-CNN 方法研究果園水果檢測,F(xiàn)1值超過90%,但對密集型水果的檢測有遺漏。雖然Two-stage 檢測方法效果較好,但是相比One-stage 檢測方法,其速度遠(yuǎn)不能滿足移動設(shè)備的需求。YOLOv3 是最流行的One-stage 目標(biāo)檢測方法之一,與Two-stage 的目標(biāo)檢測方法相比,其可在一個網(wǎng)絡(luò)中直接預(yù)測目標(biāo)的邊界及其相應(yīng)類別,速度大幅提升[9]。YOLOv3 使用DarkNet53(1,2,8,8,4殘差塊排列方式)為主干網(wǎng)絡(luò),并在3 個不同尺度上預(yù)測對象〔類似于特征金字塔網(wǎng)絡(luò)(FPN)[10]〕,其改進(jìn)版為YOLOv4。YOLOv4 的AP 比YOLOv3 和檢測速度(FPS,幀/s)分別提高10%和12%,由CSPDarknet53 主干網(wǎng)、空間金字塔池化(SPP)[11]、作為Neck的路徑聚合網(wǎng)絡(luò)(PANet)和YOLOv3 頭部組成。CSPDarknet53 主干網(wǎng)通過Mish 增強(qiáng)CNN 的學(xué)習(xí)能力[12]。在不降低網(wǎng)絡(luò)運(yùn)行速度的前提下,加入SPP 可以顯著增加接收野,分離出最重要的上下文特征。在YOLOv4 中,PANet 代替YOLOv3中使用的FPN來收集不同比例的特征。Jocher等[13]提出的YOLOv5 采用CSPNet 主干進(jìn)行特征提取,PANet 得到特征金字塔,YOLOv3 頭部進(jìn)行最終檢測,比YOLOv4訓(xùn)練時間短,檢測速度大幅提升,但其精度較YOLOv4 稍差。目前部分學(xué)者已將YOLO 模型應(yīng)用于水果采摘目標(biāo)檢測,如Koirala等[14]采用改進(jìn)的YOLOv3進(jìn)行芒果實時檢測研究,F(xiàn)1值達(dá)到96.8%,AP 達(dá)98.3%,但其速度只有14 FPS;Zheng 等[15]應(yīng)用深度學(xué)習(xí)在大量水果數(shù)據(jù)集上進(jìn)行分類和目標(biāo)檢測研究,分類準(zhǔn)確率達(dá)99%以上,檢測準(zhǔn)確率達(dá)92%以上,并且針對溫室端到端的檢測任務(wù),從速度、準(zhǔn)確性和魯棒性3 個方面對YOLOv3 網(wǎng)絡(luò)進(jìn)行了改進(jìn),其中針對甜瓜的檢測在速度為40 FPS 時AP 達(dá)到87.36%,但是其數(shù)據(jù)集針對的是沒有遮擋的甜瓜的檢測。Rahnemoonfar 等[16]提出一種改進(jìn)的inception-ResNet 網(wǎng)絡(luò)用于水果計數(shù),該方法對圖像的精度可以達(dá)到91%。另外,Liu 等[17]提出一種采用圓形邊界框代替矩形邊界框的YOLO-tomato 模型,該模型以YOLOv3 為主框架,采用DenseNet為主干網(wǎng)絡(luò),AP 達(dá)到93.91%,但由于其權(quán)重文件太大導(dǎo)致檢測速度過慢。Lawal 等[18]同樣提出基于YOLOv3 的西紅柿檢測模型,AP 可以達(dá)到99.3%。武星等[19]研究基于輕量化YOLOv3的蘋果檢測方法。在目標(biāo)空間定位研究方面,孫力等[20]研究了基于TOF 成像技術(shù)的柑橘實時識別與定位,自然生長狀態(tài)下柑橘的識別正確率達(dá)86.7%。王玲等[21]研究了基于結(jié)構(gòu)光SR300 深度相機(jī)的褐蘑菇原位測量技術(shù)。馮青青等[22]、程偉[23]分別研究了采用結(jié)構(gòu)光視覺傳感器的果實定位技術(shù)?!颈狙芯壳腥朦c】從以上研究可以發(fā)現(xiàn),對YOLO 模型的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行針對特定檢測目標(biāo)的優(yōu)化可以大幅度提高檢測精度,并且采用基于結(jié)構(gòu)光的深度攝像頭能夠?qū)崿F(xiàn)采摘目標(biāo)的空間定位。截至目前,很少學(xué)者對甜瓜的檢測進(jìn)行研究,特別是在葉片藤蔓遮擋嚴(yán)重情況下的檢測模型未見報道?!緮M解決的關(guān)鍵問題】本研究基于改進(jìn)的YOLOv3 模型,提出一種魯棒性好、精度高、速度快的YOLOResNet70 模型用于溫室復(fù)雜光照和枝葉遮擋情況下的甜瓜檢測,并且研究將模型與結(jié)構(gòu)光傳感器融合實現(xiàn)甜瓜空間定位的算法,為甜瓜采摘機(jī)器人的研究提供理論和技術(shù)支持。
數(shù)據(jù)集圖像采自山西省太谷縣侯城鄉(xiāng)侯城村甜瓜種植溫室。采用華為Mate10pro 拍攝,分辨率為3 968×2 976。選擇不同光照強(qiáng)度、不同時段進(jìn)行拍照,以保證數(shù)據(jù)集更具有隨機(jī)性,訓(xùn)練模型對光照魯棒性更好。圖1 展示了不同情況下的數(shù)據(jù)集圖像,共810 張,分別按照75%、15%、10%劃分為訓(xùn)練集、驗證集和測試集。采用labelImg 標(biāo)注成YOLO 格式的數(shù)據(jù)集[24],類別為一個甜瓜類,共得到2 562 個目標(biāo)邊界框,標(biāo)注后的數(shù)據(jù)集圖像如圖2 所示。模型訓(xùn)練和測試采用的計算機(jī)配置如下:AMD Ryzen 5 3600x CPU,32 GB RAM,NVIDIA GeForce GTX 1080Ti GPU,CUDA v10.2,cuDNN v7.6.5,OpenCV v4.2.0。YOLOv5 采用PyTorch 平臺,其他模型在DarkNet 平臺上實現(xiàn)。
圖1 不同光照和遮擋環(huán)境下的甜瓜Fig.1 Muskmelons under different illumination and occlusion
圖2 LabelImg 標(biāo)注后的甜瓜數(shù)據(jù)集圖像Fig.2 Image of muskmelon data set after LabelImg annotation
One-stage 檢測模型一般由主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)和頭部(Head)3部分網(wǎng)絡(luò)組成。主干網(wǎng)絡(luò)從輸入圖片中提取重要特征,頸部網(wǎng)絡(luò)生成特征金字塔來識別不同大小和尺度的同一目標(biāo),頭部網(wǎng)絡(luò)完成最終檢測。常用的主干網(wǎng)絡(luò)有VGG、ResNet、SqueezeNet、DenseNet 等,其中ResNet 是由He 等[25]提出。ResNet 引入如圖3 所示的快捷連接(Short cut),以解決CNN 層數(shù)增加時的網(wǎng)絡(luò)退化問題,將1×1 卷積層添加到網(wǎng)絡(luò)的開始和結(jié)束,從而減少網(wǎng)絡(luò)參數(shù),而不會降低網(wǎng)絡(luò)性能,其優(yōu)秀的性能使ResNet50 和ResNet101 等網(wǎng)絡(luò)在目標(biāo)檢測模型中得到廣泛應(yīng)用,本檢測網(wǎng)絡(luò)同樣采用ResNet的網(wǎng)絡(luò)結(jié)構(gòu)。頸部網(wǎng)絡(luò)FPN、BiFPN[26](Bidirectional feature pyramid network)、PANet 等 是不同類型的特征金字塔技術(shù)。FPN 是一種簡單有效、自頂向下的通道,PANet 提供自底向上的路徑,BiFPN 允許自頂向下和自底向上連接。研究表明,不同的主干網(wǎng)絡(luò)與頸部網(wǎng)絡(luò)搭配對檢測網(wǎng)絡(luò)的準(zhǔn)確率有很大影響[26],因此研究不同主干網(wǎng)絡(luò)和頸部網(wǎng)絡(luò)的結(jié)合對探測器具有重要意義。不同的激活函數(shù)對網(wǎng)絡(luò)性能也有影響,目前最先進(jìn)的激活函數(shù)是Leaky ReLU 和Mish,同樣需要根據(jù)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。根據(jù)Huang 等[27]研究,SPP 是一個特征增強(qiáng)模塊,提取特征圖的主要信息并進(jìn)行拼接,該SPP 網(wǎng)絡(luò)有助于提取同一檢測階段的多尺度全局特征和局部特征,如果提取的特征圖形狀被模糊,目標(biāo)甜瓜的位置信息將變得不準(zhǔn)確甚至丟失。為避免漏檢和降低檢測精度,采用SPP 網(wǎng)絡(luò)。數(shù)據(jù)集中的甜瓜存在多個重合的情況,需要采用GreedyNMS 進(jìn)行候選框合并,從多個重疊候選框中選擇一個最佳候選框,因此將GreedyNMS 應(yīng)用到檢測網(wǎng)絡(luò)中。
圖3 ResNet 網(wǎng)絡(luò)的Shortcut 鏈接結(jié)構(gòu)Fig.3 Shortcut link structure of the ResNet network
主干網(wǎng)絡(luò)的選擇方面,首先根據(jù)DarkNet53殘差塊排列形式,結(jié)合ResNet 網(wǎng)絡(luò)結(jié)構(gòu),提出ResNet70 代替YOLOv3網(wǎng)絡(luò)的DarkNet53,網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。ResNet70 網(wǎng)絡(luò)的殘差塊的排列采用與DarkNet53 相同的1,2,8,8,4 布置形式,加上最后的全連接層共70 層。通過將ResNet 架構(gòu)引入檢測模型能夠訓(xùn)練更深入的網(wǎng)絡(luò),解決網(wǎng)絡(luò)退化問題,加快網(wǎng)絡(luò)收斂速度,實現(xiàn)更深層次的網(wǎng)絡(luò)和豐富的信息特征提取。因為主干網(wǎng)絡(luò)為ResNet70,基于YOLOV3 進(jìn)行優(yōu)化,所以命名為YOLOResNet70。為提高檢測速度,YOLOResNet70 模型將YOLOv3 原有的6 個檢測層裁剪為4 層,并通過13×13、26×26、52×52 特征向量對3 個檢測尺度進(jìn)行反饋。在YOLOResNet70 中,使用FPN 作為Neck來獲得特征金字塔模型,Neck 接收了主干網(wǎng)絡(luò)生成的特征向量,使模型能更好地進(jìn)行對象縮放。為優(yōu)化網(wǎng)絡(luò)檢測性能,通過對比檢測模型的主干網(wǎng)絡(luò)、激活函數(shù)、SPP、頸部網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)來優(yōu)化最佳網(wǎng)絡(luò)結(jié)構(gòu),并與YOLOv3、YOLOv4、YOLOv5 進(jìn)行比較,訓(xùn)練和測試結(jié)果如表1 所示。
圖4 YOLOResNet70 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 YOLOResNet70 network structure
表1 不同檢測模型的網(wǎng)絡(luò)結(jié)構(gòu)Table 1 Network structure of different detection models
模型錨框(Anchor)的大小是在模型訓(xùn)練前通過甜瓜數(shù)據(jù)集中計算得出。采用k 均值聚類算法生成9個錨框,并根據(jù)檢測層的3 個尺度嵌入模型中。為改進(jìn)甜瓜檢測模型,將9 個錨框按第1 個尺度到第3 個尺度的降序分別分配到其他模型配置文件中。模型接收416×416 像素的輸入圖像,學(xué)習(xí)率為0.001,迭代數(shù)設(shè)置為4000;batch 和subdivision 分別設(shè)置為64 和32,以減少內(nèi)存使用;動量和衰減分別設(shè)為0.9 和0.0005。YOLOv5使用auto-anchor 生成,訓(xùn)練300 個epoch,初始學(xué)習(xí)率為0.01,動量為0.937,權(quán)重衰減為0.0005。同時,使用隨機(jī)初始化方法初始化訓(xùn)練YOLOResNet70 和YOLOResNet50(主干網(wǎng)絡(luò)為ResNet50)模型的權(quán)值,使用官方預(yù)訓(xùn)練權(quán)值訓(xùn)練YOLOv3、YOLOv4 和YOLOv5 模型。
模型性能采用精確率(Precision)、召回率(Recall)、F1分?jǐn)?shù)和AP(Average Precision)進(jìn)行評估。精確率是正確檢測到的甜瓜數(shù)量與檢測到的甜瓜總數(shù)量之比,召回率是正確檢測到的甜瓜數(shù)量與數(shù)據(jù)集中甜瓜總數(shù)量之比,F(xiàn)1分?jǐn)?shù)同時兼顧精確率和召回率,能顯示訓(xùn)練模型的綜合性能。各參數(shù)計算公式如下:
式中,TP 為正確檢測甜瓜數(shù),F(xiàn)N 為漏檢甜瓜數(shù),F(xiàn)P 為錯誤檢測甜瓜數(shù)。平均精度AP 描述了模型在不同置信閾值下的整體性能,定義如下式所示:
不同網(wǎng)絡(luò)結(jié)構(gòu)的YOLOResNet70 模型性能如表2 所示。通過更換模型的主干網(wǎng)絡(luò),SPP 等部分對比得出最佳的模型網(wǎng)絡(luò)結(jié)構(gòu)。由表2 可知,SPP 和PANet 兩部分網(wǎng)絡(luò)對模型的權(quán)重大小影響明顯,未添加SPP 的YOLOResNetA 和YOLOResNetC 的模型大小為164 MB,添加SPP的YOLOResNetB 和YOLOResNetD 的模型大小為188 MB;加 入PANet 的YOLOResNetE 和 加入BiFPN 的YOLOResNetF,其模型大小分別增加到227 MB 和223 MB,表明PANet 對模型尺寸的貢獻(xiàn)大于FPN 和BiFPN。表2 中幾種優(yōu)化下的模型交并比(IOU)均大于50%,表明模型預(yù)測結(jié)果較好,然而它們之間性能也有差異,使用SPP 的YOLOResNetB 和YOLOResNetC 模型相比較A 和D,其F1分?jǐn)?shù)分別從79%和84%上升到85%,說明SPP[11]對模型性能提升作用明顯。SPP 網(wǎng)絡(luò)從ResNet70 骨干網(wǎng)中分離出最重要的特性。與YOLOResNetB 和YOLOResNetD 相比,YOLOResNetE 和YOLOResNetF 的F1評分最低,表明本模型FPN 比PANet 和BiFPN 對模型性能提升更有效。
表2 不同網(wǎng)絡(luò)結(jié)構(gòu)的YOLOResNet70 性能Table 2 YOLOResNet70 performance of different network structures
由表2 可知,對比F1分?jǐn)?shù),YOLOResNetC和YOLOResNetD 的Mish 激活函數(shù)優(yōu)于YOLOResNetA 和YOLOResNetB 的Leaky 激活函數(shù),但在AP 指標(biāo)下Leaky 優(yōu)于Mish 激活函數(shù)。AP 被認(rèn)為比F1分?jǐn)?shù)更準(zhǔn)確,因為其從全局顯示精確率和召回率(P-R)關(guān)系。圖5 為6 個網(wǎng)絡(luò)將IOU 閾值設(shè)置為50%時的P-R 曲線,性能較好的模型其P-R 曲線應(yīng)具有較大的曲線下面積(AUC),因此YOLOResNetB 的性能優(yōu)于其他模型。
圖5 不同網(wǎng)絡(luò)結(jié)構(gòu)的YOLOResNet70 網(wǎng)絡(luò)P-R 曲線Fig.5 P-R curves of YOLOResNet70 networks of different network structures
模型的檢測速度以FPS 衡量,與權(quán)重文件的大小成反比,權(quán)重文件越大,檢測深度越慢。在沒有SPP 的情況下,YOLOResNetA 的64.9 FPS 和YOLOResNetC 的66.6 FPS 均比YOLOResNetB(61.8 FPS)、YOLOResNetD(62.1 FPS)、YoloResnetE(54.7 FPS) 和YOLOResNetF(49.3 FPS) 快,且?guī)в蠵ANet 的YOLOResNetE 的檢測速度比嵌入BiFPN 的YOLOResNetF 快。以速度指標(biāo)衡量時,采用Mish 激活函數(shù)的模型比Leaky 激活的模型表現(xiàn)更好,表明在本模型中Leaky 激活對檢測精度有較好效果,Mish 激活函數(shù)對檢測速度有較好效果。此外,與文獻(xiàn)中FPN、PANet 和BiFPN 影響模型檢測性能[26]的結(jié)論不同,應(yīng)用FPN 的YOLOResNet70 模型其檢測性能優(yōu)于PANet 和BiFPN。綜合考慮AP 和檢測速度,由于YOLOResNetB 和YOLOResNetD 的AP 和FPS 差異分別為1.2%和-0.4%,因此得出YOLOResNetB模型為最佳模型,命名為YOLOResNet70,由Leaky 激活函數(shù)、SPP 網(wǎng)絡(luò)和FPN 組成。
YOLOResNet70 與現(xiàn)有模型對甜瓜的檢測性能比較結(jié)果(表3、圖6)顯示,YOLOv5 權(quán)重文件最小、檢測速度最快,但其準(zhǔn)確性較低;YOLOv4 的AP 性能優(yōu)于YOLOv3、YOLOResNet70和YOLOv5,主要是由于CSPDarknet53 骨干網(wǎng)絡(luò)深度更深,但其檢測速度不如YOLOResNet70和YOLOv5。由表3 可知,在檢測速度方面,YOLOv5 系列中以YOLOv5s 最快,YOLOResNet50次 之,隨后是YOLOResNet70,YOLOResNet70比YOLOv3 和YOLOv4 約快14%。雖然YOLOv4在AP 方面大于YOLOResNet70,但兩者差異(1.6%)非常??;YOLOResNet50 檢測速度較快,但AP 較YOLOv4 低5.1%。綜合檢測速度和AP,YOLOResNet70 檢測速度比YOLOv4 快14%,AP比YOLOv5 提升7.4%,擁有較好的檢測性能。從圖6 可以看出,YOLOv4 的P-R 曲線略優(yōu)于YOLOResNet70,而YOLOResNet70 的P-R 曲 線優(yōu)于YOLOv3 和YOLOv5。
表3 YOLOResNet70 及現(xiàn)有網(wǎng)絡(luò)的性能比較Table 3 Performance comparison between YOLOResNet70 and existing networks
圖6 YOLOResNet70、YOLOv3、YOLOv4 和YOLOv5s 的P-R 曲線Fig.6 P-R curves of YOLOResNet70,YOLOv3,YOLOv4 and YOLOv5s
甜瓜檢測過程中葉片和藤蔓遮擋、光照變化會影響檢測結(jié)果的準(zhǔn)確性[18]。為驗證YOLOResNet70 模型魯棒性,本研究從測試集中選取29 張?zhí)鸸蠄D片,其中包含葉片遮擋和藤蔓遮擋等情況的甜瓜共100 個,并采用曝光增強(qiáng)和曝光減弱的方法進(jìn)行圖像增強(qiáng)[28],然后進(jìn)行測試,并與YOLOv3、YOLOv4 和YOLOv5s 檢測結(jié)果進(jìn)行對比,采用精度(Precision)、Rcall 和F1分?jǐn)?shù)進(jìn)行評價。
由表4 可知,YOLOv3 漏檢個數(shù)為15 個,而YOLOResNet70 是6 個、YOLOv4 為5 個、YOLOv5s 為8 個,這是由于YOLOv3 模型中沒有SPP 網(wǎng)絡(luò),其F1分?jǐn)?shù)的排序也與前文相同。本節(jié)中測試圖片中的甜瓜大部分被葉片和藤蔓嚴(yán)重遮擋,因此對模型的檢測能力要求更高。圖7 中紅色橢圓標(biāo)出的甜瓜為YOLOResNet70 和YOLOv4漏檢的甜瓜,其被遮擋面積超過50%;藍(lán)色橢圓標(biāo)出的甜瓜被YOLOResNet70 檢測到,其他模型都未檢測到。
圖7 YOLOResNet 70(A)和YOLOv4(B)模型漏檢甜瓜Fig.7 Muskmelon missed detection in YOLOResNet 70 and YOLOv4 models
表4 未進(jìn)行圖像增強(qiáng)數(shù)據(jù)集檢測結(jié)果Table 4 Detection results of data sets without image enhancement
經(jīng)數(shù)據(jù)增強(qiáng)后圖像的檢測結(jié)果見表5、表6。對比表5 結(jié)果,YOLOResNet70 的F1分?jǐn)?shù)在兩種情況下僅分別降低0.8、1.8 個百分點,且F1值比YOLOv4 高0.5 個百分點,表明其魯棒性良好;YOLOv3、YOLOv5 模型正確檢測個數(shù)下降明顯,表明其魯棒性稍差。圖8 為YOLOResNet70 模型檢測結(jié)果。YOLOResNet70 對數(shù)據(jù)增強(qiáng)后的部分圖像檢測結(jié)果如圖9 所示。
表6 曝光降低后數(shù)據(jù)集檢測結(jié)果Table 6 Data set detection results after exposure reduction
圖8 未增強(qiáng)數(shù)據(jù)集YOLOResNet70 檢測結(jié)果Fig.8 Detection results of YOLOResNet70 without enhanced data set
圖9 曝光增強(qiáng)和降低后數(shù)據(jù)集YOLOResNet70 檢測結(jié)果Fig.9 Detection results of YOLOResNet70 with enhanced data set and reducted data set
表5 曝光增強(qiáng)后數(shù)據(jù)集檢測結(jié)果Table 5 Data set detection results after exposure enhancement
通過采用YOLOResNet70 模型,得到甜瓜在圖像中的X 和Y 坐標(biāo),但如果需要機(jī)械手進(jìn)行采摘,還需獲取甜瓜的實際坐標(biāo),因此需要采用深度攝像頭與YOLO 算法進(jìn)行融合,將圖中的像素坐標(biāo)轉(zhuǎn)換為實際坐標(biāo),并且通過深度攝像頭的深度測量得到甜瓜距離攝像頭的實際距離(即Z 坐標(biāo))。本研究選擇基于結(jié)構(gòu)光原理的Intel RealSense D435i 作為測距攝像頭。Intel RealSense D435i 可以通過識別目標(biāo)的像素坐標(biāo)和深度值獲取目標(biāo)點的真實坐標(biāo),其具體原理如圖10 所示,其 中Target_xy_pixe l[x]、Target_xy_pixel[y]表示檢測物體在圖中的像素坐標(biāo),Target_xy_true[x]、Target_xy_true[y]表示被測物體的實際坐標(biāo),ppx、ppy 為相 機(jī)的基本內(nèi)部參數(shù),可以通過cvsprofile.get_intrinsics()命令獲取。坐標(biāo)計算公式如下:
圖10 物體實際深度和實際坐標(biāo)計算示意圖Fig.10 Schematic diagram of actual depth and coordinate calculation
式中,Target_xy_pixel[x]、Target_xy_pixel[y]可通過目標(biāo)檢測模型獲取,相機(jī)可以采用 get_distance(Target_xy_pixel[0]、Target_xy_pixel[y])計算得到物體的Target_depth,最后計 算Target_xy_true[x]、Target_xy_true[y],即可求出物體的實際X、Y、Z 坐標(biāo),以便后期通過機(jī)械臂進(jìn)行采摘。
2.4.1 Intel RealSense D435i 距離檢測實驗 根據(jù)前文原理分析,本研究通過將英特爾RealSense SDK2.0 的Python 包裝程序pyRealsense2 集成進(jìn)YOLO 測試程序,采用YOLOResNet70 模型進(jìn)行甜瓜實際距離檢測實驗,研究算法的可靠性。實驗設(shè)備圖如圖11 所示,通過檢測程序控制深度攝像頭檢測掛在對面的仿真甜瓜及藤蔓,根據(jù)實際采摘機(jī)械臂長度設(shè)置藤蔓距離攝像頭的距離500 mm 和700 mm。由于甜瓜藤蔓吊掛后,上面的甜瓜錯落排列在不同平面上,因此通過移動掛甜瓜藤的不銹鋼架來改變距離,測試兩種距離下攝像頭及算法的檢測準(zhǔn)確性和檢測能力。
圖11 甜瓜深度距離測試實驗設(shè)備Fig.11 Experimental equipment for measurement of muskmelon depth distance
實驗中首先將攝像頭紅外光線發(fā)射面與不銹鋼架距離500 mm,然后開啟檢測程序,運(yùn)行后檢測截圖如圖12 所示。從圖12 可以看出,由于距離較近,攝像頭視野較小,只有3 個甜瓜在攝像頭視野內(nèi)并被成功識別;在檢測界面右下角,不斷輸出3 個檢測框中心像素的實際坐標(biāo)和實際距離。實際距離測量方式如圖13 所示,每個瓜的測量距離量距離為甜瓜預(yù)測框中心點到攝像頭紅外光發(fā)射面的垂直距離。
圖12 仿真距離500 mm 時檢測截圖Fig.12 Detection screenshot at 500 mm of simulation distance
圖13 實際距離測量示意圖Fig.13 Diagram of actual distance measurement
從攝像頭距離支架500 mm 時的甜瓜檢測和距離測試結(jié)果(表7)可以看出,手動測量距離與攝像頭測量的距離差距很小。表8 和圖14 為支架距離攝像頭700 mm 時檢測結(jié)果,由于甜瓜和藤蔓相對架子的平面凸出,因此檢測到的甜瓜距離比架子距離小。由表8、表9 可知,程序控制深度攝像頭測定距離準(zhǔn)確,能夠達(dá)到實際應(yīng)用的要求。
表7 仿真距離500 mm 時檢測目標(biāo)實際距離和實際坐標(biāo)Table 7 Actual distances and coordinates of the targets detected at 500 mm of simulation distance
表8 仿真距離700 mm 時檢測目標(biāo)實際距離和實際坐標(biāo)Table 8 Actual distances and coordinates of the targets detected at 700 mm of simulation distance
圖14 仿真距離700 mm 時檢測截圖Fig.14 Detection screenshot at 700 mm of simulation distance
2.4.2 遮擋目標(biāo)距離檢測 甜瓜采摘時葉片遮擋嚴(yán)重,為研究甜瓜被葉片遮擋時的距離測量問題,設(shè)計甜瓜被葉片遮擋時的距離測量實驗。如圖15所示,實驗設(shè)計3 個被葉片遮擋的甜瓜,從左起第2、3、6 號甜瓜,其中2、3 號檢測卡中心點在甜瓜上,而6 號甜瓜其檢測框中心點在葉片上。檢測結(jié)果(表9)顯示,2 號和3 號甜瓜雖然被遮擋,但是其目標(biāo)框中心點仍在甜瓜上,因此深度攝像頭測量的距離為到甜瓜的距離,而6 號甜瓜其遮擋葉片正好在目標(biāo)識別框的中心點上,因此深度攝像頭測量的距離為到此葉片的距離,與到甜瓜的距離有一定差距,需要繼續(xù)改進(jìn)檢測程序。
圖15 葉片遮擋時測距實驗截圖Fig.15 Screenshot of distance measurement experiment with leaves block muskmelons
表9 目標(biāo)遮擋實驗檢測數(shù)據(jù)Table 9 Detection data of object occlusion experiment
采摘目標(biāo)的精確快速識別和定位是自動采摘機(jī)器人采摘成功的基礎(chǔ)。本研究基于YOLOv3 模型,在對比采用不同主干網(wǎng)絡(luò)、FPN、激活函數(shù)和是否采用SPP 等不同組成結(jié)構(gòu)的基礎(chǔ)上,得出最佳YOLOResNet70 網(wǎng)絡(luò)模型結(jié)構(gòu)。該模型采用ResNet70 網(wǎng)絡(luò)作為主干,以Leaky ReLU 作為激活函數(shù),用SPP 避免漏檢和減少誤差,以FPN 作為頸部網(wǎng)絡(luò)用于獲取特征金字塔,GreedyNMS 用來提升檢測效率和準(zhǔn)確度,采用CIoU 損失函數(shù)時為最佳的檢測網(wǎng)絡(luò)結(jié)構(gòu)。表明通過對檢測模型的不同部分進(jìn)行調(diào)整、組合可以實現(xiàn)更好的目標(biāo)檢測結(jié)果,這也是目前基于深度學(xué)習(xí)的目標(biāo)檢測網(wǎng)絡(luò)的重要優(yōu)化措施,本研究的優(yōu)化措施可為其他果實采摘目標(biāo)檢測網(wǎng)絡(luò)的優(yōu)化提供重要借鑒。
本研究得出的檢測模型專門針對不同光照強(qiáng)度和不同遮擋情況采集數(shù)據(jù)集進(jìn)行訓(xùn)練優(yōu)化,通過不同模型的魯棒性檢測對比,發(fā)現(xiàn)該模型在不同光照環(huán)境下對嚴(yán)重遮擋的甜瓜檢測F1分?jǐn)?shù)優(yōu)于YOLOv3 和YOLOv5 模型,與YOLOv4模型相似,表明本研究提出的模型在不同情況下對溫室甜瓜檢測都具有良好的穩(wěn)定性。與其他已發(fā)表的研究結(jié)果相比,盡管數(shù)據(jù)集甜瓜遮擋較嚴(yán)重,但YOLOResNet70 模型的性能相比YOLOv3-DarkNet53(AP 為88.93%,40 FPS)在CropDeep[15]數(shù)據(jù)集和RetNet-ResNet50(AP 為87.36%,13 FPS)在Deepfruits[7]數(shù)據(jù)集上對哈密瓜的檢測性能分別提升0.47%和2.04%。
通過將YOLOResNet70 模型與RealSense D435i深度視覺傳感器融合實現(xiàn)對目標(biāo)真實坐標(biāo)的準(zhǔn)確定位。但是對葉片遮擋甜瓜的定位會產(chǎn)生一定誤差,需要提高檢測精度,可采用雙攝像頭從不同角度檢測,以彌補(bǔ)單攝像頭的不足,這是本課題需要繼續(xù)研究的一個關(guān)鍵問題。
本研究僅針對眾多甜瓜中一種薄皮甜瓜的目標(biāo)檢測模型進(jìn)行了參數(shù)優(yōu)化,對其他品種甜瓜的檢測結(jié)果還有待驗證和繼續(xù)研究,未來研究中可以繼續(xù)采集不同品種的甜瓜圖像,并針對多個甜瓜品種優(yōu)化得出更具有通用性的目標(biāo)檢測模型,以適應(yīng)所有甜瓜的采摘目標(biāo)檢測需求。采集全部品種的甜瓜圖像形成完整的甜瓜數(shù)據(jù)集也是另一項需要繼續(xù)深入的工作,能為未來其他學(xué)者的研究提供數(shù)據(jù)集支持,為甜瓜自動采摘設(shè)備早日成型、減輕農(nóng)民的勞動強(qiáng)度提供支持。
本研究針對甜瓜溫室復(fù)雜光影和遮擋生長條件下甜瓜果實檢測困難的問題,優(yōu)化得出一種YOLOResNet70 模型。與目前主流網(wǎng)絡(luò)結(jié)構(gòu)相比,YOLOResNet70 網(wǎng)絡(luò)比Faster R-CNN、YOLOv3、YOLOv4 和YOLOv5 網(wǎng)絡(luò)具有明顯的速度優(yōu)勢,檢測速度比YOLOv4 提升14%,精度比YOLOv5提升7.4%,更加利于在低功率移動設(shè)備上使用。模型具有較好的魯棒性,在不同光照強(qiáng)度下都具有良好的檢測穩(wěn)定性。對曝光增強(qiáng)和曝光降低的圖像,其檢測F1分?jǐn)?shù)值分別達(dá)95.8%和94.8%,表明模型能適應(yīng)溫室復(fù)雜的光照環(huán)境。優(yōu)化得到的模型與Intel RealSense D435i 攝像頭結(jié)合能夠?qū)崿F(xiàn)檢測目標(biāo)的空間定位,且距離定位準(zhǔn)確、誤差小,能夠達(dá)到實際使用需求。