陳 偉,張春雨*,朱超冉
(1.安徽科技學(xué)院 機(jī)械工程學(xué)院,安徽 鳳陽 233100;2.安徽工程大學(xué) 機(jī)械工程學(xué)院,安徽 蕪湖 241000)
番茄是我國設(shè)施栽培面積最大的蔬菜作物,如此大體量的蔬菜,采摘尤為關(guān)鍵。番茄采摘機(jī)器人對減少生產(chǎn)成本、降低勞動強(qiáng)度、提高作業(yè)效率具有重要意義。設(shè)計(jì)采摘機(jī)器人的難點(diǎn)在于定位和識別,這兩點(diǎn)關(guān)系到采摘機(jī)器人的工作效率。自然環(huán)境下番茄果實(shí)的生長狀態(tài)各不相同,果實(shí)之間重疊,枝葉、枝干等對果實(shí)遮擋嚴(yán)重,光照環(huán)境復(fù)雜,這些因素都會影響到采摘機(jī)器人的識別結(jié)果。因此,實(shí)現(xiàn)對復(fù)雜自然環(huán)境下的番茄果實(shí)快速、精確識別是研發(fā)番茄采摘機(jī)器人的關(guān)鍵[1]。
近年來,番茄成熟度識別算法受到了廣泛關(guān)注,張亞麗等[2]將極端學(xué)習(xí)機(jī)引入番茄成熟度識別,番茄成熟度判斷正確率達(dá)到92.7%。王紅珠等[3]將HSI模型引入番茄成熟度識別,總的判斷正確率為65%。伍鎣芮等[4]將RGB三分量閾值分割引入番茄成熟度識別中,整體判斷正確率為85%。綜上,已應(yīng)用的識別算法在番茄成熟度識別中無法得到較高的精度和正確率,并且現(xiàn)有的研究大多沒有考慮復(fù)雜環(huán)境下的影響因素,適應(yīng)性較差,無法滿足番茄采摘時的復(fù)雜環(huán)境條件。YOLO系列算法是一類典型的one-stage目標(biāo)檢測算法,利用anchor box將分類與目標(biāo)定位的回歸問題結(jié)合起來,從而做到了高效、靈活和泛化性能好。YOLOv5算法是2020年提出的最新一代目標(biāo)檢測算法,其精度和檢測速度與上一代相比得到大大提升。
為了進(jìn)一步提高復(fù)雜環(huán)境下番茄成熟度識別的正確率,本研究提出將YOLOv5s算法應(yīng)用到番茄采摘機(jī)器人系統(tǒng)對番茄成熟度的識別中。針對番茄成熟度等級劃分進(jìn)行研究。將番茄果實(shí)分3個階段:“成熟”“半成熟”和“未成熟”。這樣可以按照市場實(shí)際需求進(jìn)行分期采摘,減少番茄腐爛的損失,從而降低成本,提高生產(chǎn)效率[5-6]。
運(yùn)用深度學(xué)習(xí)框架進(jìn)行番茄成熟度的檢測,自然環(huán)境下番茄果實(shí)的成熟度分為3類,即成熟、半成熟、未成熟果實(shí)。
番茄圖像采集于銅陵星火家庭農(nóng)場,拍攝當(dāng)天為晴天,共采集原始圖片169張,圖片以.jpg格式保存。
運(yùn)用labelImg將采集到的番茄圖片進(jìn)行Voc格式的相應(yīng)標(biāo)注,得到.xml文件。過少的圖片數(shù)據(jù)會使最后的試驗(yàn)結(jié)果準(zhǔn)確率大大降低,所以需要將采集到的圖片運(yùn)用旋轉(zhuǎn)、平移、縮放、鏡像等方式進(jìn)行數(shù)據(jù)增強(qiáng),并對增強(qiáng)后的圖片進(jìn)行標(biāo)注。數(shù)據(jù)增強(qiáng)后的照片總量為1 200張(圖1),按照8∶2的比例隨機(jī)分為訓(xùn)練集(960張)、測試集(240張)[7]。
圖1 3種成熟度的番茄果實(shí)Fig.1 3 tomato fruits with different ripeness
YOLOv5算法是現(xiàn)階段工業(yè)上常用的一種目標(biāo)檢測算法,包括4個版本,分別是YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s。為滿足輕量化要求,本研究使用復(fù)雜度較低的 YOLOv5s 檢測模型,以減小模型存儲占用,提高識別速度。YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)一般分為4個部分:輸入端、主干網(wǎng)絡(luò)、頸部、輸出端[8]。
輸入端:一是采用Mosaic數(shù)據(jù)增強(qiáng)采用4張圖片,隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接,合成一副圖像進(jìn)行后續(xù)訓(xùn)練,目的是豐富數(shù)據(jù)集并縮短訓(xùn)練時長。二是自適應(yīng)錨框計(jì)算,在訓(xùn)練中,網(wǎng)絡(luò)在初始錨框的基礎(chǔ)上輸出預(yù)測框,進(jìn)而和真實(shí)框進(jìn)行比對,計(jì)算二者差距,再反向更新,迭代網(wǎng)絡(luò)參數(shù)。三是自適圖像縮放,輸入圖像的尺寸是不一樣的,在YOLOv5中常用的尺寸有416×416、608×608、640×640等,通過等比縮放并用黑邊填充,得到尺寸統(tǒng)一的輸入圖像。
主干網(wǎng)絡(luò):在骨干段網(wǎng)絡(luò)采取Focus結(jié)構(gòu),將數(shù)據(jù)切分為4份,每份數(shù)據(jù)都相當(dāng)于在2倍下采樣得到,在縱向通道進(jìn)行拼接,再進(jìn)行卷積運(yùn)算。以YOLOv5s為例,原始的640×640×3的圖像經(jīng)過切片操作后,變成320×320×12的特征圖,再經(jīng)過32個卷積核的卷積運(yùn)算,得到320×320×32的特征圖。
頸部:采用FPN+PAN的結(jié)構(gòu),在FPN的基礎(chǔ)上增加一條自底向上的信息流通路,縮短了信息傳輸路徑,旨在使準(zhǔn)確的底層定位信息能夠增強(qiáng)到整個特征提取網(wǎng)絡(luò)。
輸出端:損失函數(shù)的選取對評判結(jié)果準(zhǔn)確性非常重要,早期交并比損失函數(shù)(IoU Loss)比較簡單,不能反映真實(shí)情況,加入中心點(diǎn)距離和長寬比之后得到完全CIOU_Loss[9]。
本試驗(yàn)在Pycharm 2021,Python3.8軟件環(huán)境下完成。硬件環(huán)境CPU采用Intel(R) Xeon(R) W-2255,主頻3.70 GHz;GPU采用Nvidia GeForce GTX A4000,64 GB顯存。
每批樣本數(shù)為16,將全部采集的圖片進(jìn)行1次訓(xùn)練稱為1次迭代,1次訓(xùn)練的樣本數(shù)為100,采用YOLOv5s算法模型,初始學(xué)習(xí)率設(shè)置為0.01,動量因子為0.937。
對于番茄果實(shí)成熟度的識別,采用平均精度、精確率、召回率等性能指標(biāo)進(jìn)行評測。
圖2所示是試驗(yàn)得出的整體精確率、召回率、平均精度、IoU閾值(0.5~0.95)平均精度的數(shù)據(jù)圖。隨著迭代次數(shù)的增加,每項(xiàng)的數(shù)值都逐步提高并趨近于平穩(wěn),精確率、召回率、平均精度最后都達(dá)到95%,IoU閾值(0.5~0.95)平均精度也是達(dá)到70%以上,從第2張圖片可以看出IoU閾值(0.5~0.95)平均精度仍然有上升的趨勢,數(shù)據(jù)整理后得到表1。
圖2 YOLOv5s檢測結(jié)果圖Fig.2 YOLOv5s test results
表1 YOLOv5s檢測算法結(jié)果Table 1 YOLOv5s detection algorithm results
圖3為測試結(jié)果圖,可以看出,大多數(shù)成熟果實(shí)的識別精確率為70%,有的達(dá)到了100%識別,少部分成熟果實(shí)識別精確率低于70%,不成熟果實(shí)的識別準(zhǔn)確率高于80%,半成熟果實(shí)的識別精確率為70%。由此得出,本試驗(yàn)YOLOv5s算法的識別精確率達(dá)到較高水平。
圖3 測試結(jié)果Fig.3 Test results
本研究用YOLOv5s算法得出的試驗(yàn)結(jié)果與現(xiàn)有的檢測算法結(jié)果[2-4]進(jìn)行對比,如表2所示,YOLOv5s算法識別精確率高于其他檢測算法,識別精確率最高,識別效果最好。
表2 4種檢測算法識別精確率Table 2 Recognition accuracy of four detection algorithms
對番茄圖像進(jìn)行預(yù)處理,運(yùn)用YOLOv5s檢測算法對番茄圖像進(jìn)行識別,得出整體識別精確率為95%,與極端學(xué)習(xí)機(jī)、RGB模型、HIS模型得出的結(jié)果相比,YOLOv5s算法識別效果最好,此算法用于番茄果實(shí)機(jī)械化采摘,以提升采摘機(jī)器人識別番茄成熟果實(shí)的準(zhǔn)確率,從而降低勞動強(qiáng)度,提高作業(yè)效率。