祝志慧 ,何昱廷 ,李沃霖 ,蔡紫荊 ,王巧華 ,馬美湖
(1. 華中農(nóng)業(yè)大學(xué)工學(xué)院,武漢 430070;2. 農(nóng)業(yè)部長(zhǎng)江中下游農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,武漢 430070;3. 華中農(nóng)業(yè)大學(xué)食品科學(xué)技術(shù)學(xué)院,武漢 430070)
中國是世界上最大的水禽生產(chǎn)與消費(fèi)國,其中,鴨的飼養(yǎng)量占中國水禽飼養(yǎng)量70%以上。2021 年中國蛋鴨存欄1.5 億只,鴨蛋產(chǎn)量277.6 萬t,總產(chǎn)值352.2 億元,較2020 年上漲37.1%[1-3],然而,中國蛋鴨養(yǎng)殖總體呈“小規(guī)模、大群體”的特點(diǎn)[4],巡檢和撿蛋均依賴人工,勞動(dòng)強(qiáng)度大、人工成本高、工作環(huán)境差。故迫切需要一種可以代替人工,在鴨場(chǎng)進(jìn)行鴨蛋拾取的機(jī)器人。開發(fā)鴨蛋拾取機(jī)器人的關(guān)鍵技術(shù),是使其能夠在不同干擾、遮擋覆蓋等復(fù)雜環(huán)境下,對(duì)鴨蛋進(jìn)行快速、準(zhǔn)確檢測(cè)和定位。
研究表明,對(duì)于目標(biāo)重疊、遮擋等復(fù)雜環(huán)境導(dǎo)致的識(shí)別困難問題,深度學(xué)習(xí)因其較高的魯棒性、普適性,能夠很好地解決[5-9]。特別是YOLO(you only look once)模型,可根據(jù)待檢測(cè)目標(biāo)特征和應(yīng)用場(chǎng)景做出改進(jìn),以提高模型性能[10-16]。
目前,尚未有對(duì)禽舍中鴨蛋自動(dòng)識(shí)別的報(bào)道,但是針對(duì)番茄花果、芒果、火龍果、蘋果、柑橘等類橢圓的農(nóng)產(chǎn)品,已有學(xué)者提出在遮擋重疊等復(fù)雜環(huán)境的檢測(cè)方法。呂志遠(yuǎn)等[17]采用組合增強(qiáng)的YOLOX-ViT 對(duì)番茄花果進(jìn)行識(shí)別,引入圖像組合增強(qiáng)與前端ViT 分類網(wǎng)絡(luò),得到平均識(shí)別率均值為92.3%的模型。ROY 等[18]在檢測(cè)芒果時(shí),將DenseNet 加入骨干網(wǎng)絡(luò),優(yōu)化模型特征提取,使得檢測(cè)平均精度達(dá)96.2%。龔惟新等[19]為實(shí)現(xiàn)對(duì)獼猴桃花朵的快速準(zhǔn)確檢測(cè),提出基于改進(jìn)YOLOv5s 的獼猴桃花朵檢測(cè)模型,改進(jìn)模型的檢測(cè)精確率為85.21%。王金鵬等[20]為檢測(cè)復(fù)雜自然環(huán)境下多種生長(zhǎng)姿態(tài)的火龍果,基于YOLOv7 模型提出一種多姿態(tài)火龍果檢測(cè)方法,其檢測(cè)準(zhǔn)確率達(dá)83.6%。周桂紅等[21]為解決蘋果果園密植栽培模式,果樹之間相互遮擋導(dǎo)致蘋果果實(shí)識(shí)別效果差的問題,提出一種基于改進(jìn)YOLOv4 和基于閾值的邊界框匹配合并算法的全景圖像蘋果識(shí)別方法,改進(jìn)后的YOLOv4 網(wǎng)絡(luò)模型識(shí)別精確率達(dá)到96.19%。劉潔等[22]提出一種便于遷移與部署的改進(jìn)YOLOv4 模型,實(shí)現(xiàn)對(duì)橙果的檢測(cè),識(shí)別平均精度達(dá)97.24%,為橙果在復(fù)雜場(chǎng)景下采摘提供新的思路。楊堅(jiān)等[23]提出基于改進(jìn)YOLOv4-tiny 模型,將卷積注意力模塊集成到網(wǎng)絡(luò)中,以提高被遮擋番茄的識(shí)別準(zhǔn)確率,平均精度值達(dá)97.9%。XU 等[24]提出一種改進(jìn)的Mask R-CNN 模型,用于對(duì)番茄目標(biāo)的檢測(cè),準(zhǔn)確率達(dá)93.76%。這些方法為鴨蛋識(shí)別與定位提供了參考。
鴨場(chǎng)環(huán)境復(fù)雜惡劣,常有泥土、秸稈等遮擋鴨蛋,同時(shí)亦有大量顏色相近的鴨羽覆蓋,易造成簇?fù)怼⒅丿B、遮擋等現(xiàn)象,目標(biāo)檢測(cè)難度大。因此在識(shí)別過程中需要考慮以下幾個(gè)方面的問題:1)鴨蛋形態(tài)的差異性,鴨蛋的形狀和大小變化較小,因此在目標(biāo)重疊和遮擋的情況下,較難通過目標(biāo)的外形信息來進(jìn)行區(qū)分;2)鴨蛋表面的異質(zhì)性,鴨蛋往往會(huì)因其表面紋理的差異,同時(shí)受到光照、陰影等因素的影響,導(dǎo)致圖像中的鴨蛋出現(xiàn)亮度和顏色變化,進(jìn)而影響識(shí)別結(jié)果;3)鴨蛋背景的復(fù)雜性,鴨蛋識(shí)別的背景往往比較復(fù)雜,存在秸稈和稻殼、分隔網(wǎng)柵、鴨子等干擾信息,使得背景中的紋理和顏色等信息與鴨蛋的信息混淆,干擾識(shí)別的準(zhǔn)確性。由于上述差異,現(xiàn)有的目標(biāo)識(shí)別策略難以直接應(yīng)用于鴨蛋識(shí)別領(lǐng)域。為解決這些問題,本文擬采用YOLOv7 模型作為目標(biāo)檢測(cè)方法并針對(duì)鴨蛋識(shí)別場(chǎng)景進(jìn)行專門研究和算法優(yōu)化。
針對(duì)鴨蛋形狀和大小變化較小,環(huán)境及背景復(fù)雜,存在較多干擾信息等問題,本文在主干網(wǎng)絡(luò)加入卷積注意力模塊(CBAM,convolutional block attention module),加強(qiáng)網(wǎng)絡(luò)信息傳遞,提高模型對(duì)特征的敏感程度,減少復(fù)雜環(huán)境對(duì)鴨蛋識(shí)別干擾。同時(shí),在特征提取網(wǎng)絡(luò)之后引入優(yōu)化的空間金字塔池化結(jié)構(gòu)(SPP,spatial pyramid pooling),將原本分支并行的SPP 結(jié)構(gòu)調(diào)整為串聯(lián)傳遞,在實(shí)現(xiàn)鴨蛋目標(biāo)特征增強(qiáng)的同時(shí),降低一定運(yùn)算成本。最后,為更好地將模型部署到機(jī)器人上構(gòu)建鴨蛋識(shí)別系統(tǒng),利用深度可分離卷積(DSC,depthwise separable convolution)降低模型參數(shù)數(shù)量和運(yùn)算成本,以期實(shí)現(xiàn)在復(fù)雜環(huán)境下,鴨蛋的快速精準(zhǔn)識(shí)別定位,為復(fù)雜環(huán)境中鴨蛋拾取機(jī)器人的智能化精準(zhǔn)識(shí)別提供一定的技術(shù)指導(dǎo)。
1.1.1 數(shù)據(jù)采集與預(yù)處理
試驗(yàn)材料為購自河南商丘的櫻桃谷白殼鴨蛋。為搭建鴨蛋圖像采集平臺(tái),使用羽毛、秸稈、泥沙等材料,模擬鴨舍的復(fù)雜環(huán)境。同時(shí),于武漢余家灣種鴨養(yǎng)殖廠采集實(shí)際場(chǎng)景鴨蛋圖像。模擬場(chǎng)景和實(shí)際場(chǎng)景的鴨蛋圖像采集均使用榮耀HLK-AL10 型相機(jī)。為保證檢測(cè)模型的魯棒性和精確性,所得數(shù)據(jù)中包括多角度、多位置、不同距離、不同遮擋形式的鴨蛋圖像,如圖1 所示。共采集分辨率為4 000× 3 000 像素的JPG 格式圖像2 600 張。
圖1 鴨蛋數(shù)據(jù)圖Fig.1 Duck-eggs data image
使用Make Sense 軟件,對(duì)鴨蛋圖像進(jìn)行標(biāo)注,得到包含鴨蛋中心點(diǎn)坐標(biāo)(x,y),標(biāo)注框?qū)挾?、高度(w,h)信息的txt 文件。本文在標(biāo)注過程中,只將圖像分為鴨蛋目標(biāo)和背景兩類。由于本文僅進(jìn)行鴨蛋目標(biāo)檢測(cè),故僅需標(biāo)注鴨蛋,圖像其他部分由Make Sense 自動(dòng)標(biāo)注為背景。
對(duì)原始圖像采取數(shù)據(jù)增強(qiáng)的方法,增加模型訓(xùn)練的數(shù)據(jù)量,防止模型出現(xiàn)過擬合,泛化性差等問題[25-26]。常用數(shù)據(jù)增強(qiáng)方法包括:旋轉(zhuǎn)、翻轉(zhuǎn)、平移、裁剪、引入噪聲、調(diào)節(jié)亮度等[27]。本文選擇對(duì)原始圖像添加12%的高斯噪聲、2.5%的椒鹽噪聲,通過增加冗余信息,降低圖像平滑性,加入噪聲前后的對(duì)比圖像如圖2a、2b、2c 所示。同時(shí),為模擬鴨場(chǎng)的昏暗環(huán)境,在RGB 通道利用轉(zhuǎn)換公式:
圖2 鴨蛋數(shù)據(jù)增強(qiáng)Fig.2 Duck-eggs data enhancement
式中g(shù)(i,j)為轉(zhuǎn)換后圖像像素灰度;f(i,j)為原始圖像像素灰度;a為圖像增益;b為圖像偏置。
分別設(shè)置a=0.5,b=10;a=0.3,b=10;使得原始圖像亮度降低,有利于提升檢測(cè)模型的魯棒性。轉(zhuǎn)換前后圖像對(duì)比分別如圖2 d、2e、2f 所示。并且,在訓(xùn)練過程中,使用Mosaic 方法[28],將多張圖像隨機(jī)裁剪并拼接,豐富待檢測(cè)物體的背景,該方法能有效提升模型抗擾動(dòng)能力[29],其拼接結(jié)果如圖2 g 所示。
1.1.2 數(shù)據(jù)集劃分
對(duì)采集的原始圖像數(shù)據(jù)(2 600 張)按照6:2:2 劃分為訓(xùn)練集(1 560 張)、驗(yàn)證集(520 張)、測(cè)試集(520 張)。為豐富現(xiàn)有訓(xùn)練集數(shù)據(jù)信息,防止模型出現(xiàn)過擬合等問題,對(duì)訓(xùn)練集樣本使用如下數(shù)據(jù)增強(qiáng)方法:1)添加12%的高斯噪聲。2)添加2.5%的椒鹽噪聲。3)設(shè)置圖像增益a=0.3 及a=0.5,改變圖像亮度。經(jīng)數(shù)據(jù)增強(qiáng)后,共得訓(xùn)練集數(shù)據(jù)7 800 張,同時(shí)為保證模型的準(zhǔn)確性和環(huán)境適應(yīng)性,訓(xùn)練集中包含各類影響識(shí)別的圖像,具體分類見表1。圖像中鴨蛋目標(biāo)數(shù)量為1~5 個(gè)時(shí)屬于稀疏分布,6~10 個(gè)時(shí)屬于中等密集分布,10 個(gè)以上時(shí)屬于簇?fù)矸植?。同時(shí),表中每一類圖像,都分別經(jīng)過添加噪聲(12%高斯噪聲、2.5%椒鹽噪聲)、降低亮度處理(設(shè)置圖像增益a=0.3、a=0.5)。
表1 訓(xùn)練集分類Table 1 Classification of train set
經(jīng)過數(shù)據(jù)增強(qiáng)處理,結(jié)合所標(biāo)注的原始樣本數(shù)據(jù),共得8 840 張圖像。其中訓(xùn)練集為7 800 張,驗(yàn)證集為520 張,測(cè)試集為520 張。
1.1.3 試驗(yàn)平臺(tái)
本文對(duì)鴨蛋檢測(cè)模型的訓(xùn)練和測(cè)試,均在同一環(huán)境下運(yùn)行。硬件配置及軟件環(huán)境如表2 所示。
表2 試驗(yàn)平臺(tái)環(huán)境Table 2 Experiment bed environment
1.2.1 YOLOv7 目標(biāo)檢測(cè)模型
YOLOv7 模型框架主要由輸入端、主干網(wǎng)絡(luò)、特征融合、預(yù)測(cè)頭4 個(gè)模塊組成,是WANG 等[30]為更好實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè),研究更適配邊緣設(shè)備及云端的算法,在YOLOv4、YOLOv5 等的基礎(chǔ)上于2022 年提出。YOLOv7 模型作為單階段目標(biāo)檢測(cè)算法,可以通過直接回歸的方式一次處理并獲得對(duì)應(yīng)物體的目標(biāo)區(qū)域、位置及類別,相較于兩階段目標(biāo)檢測(cè)算法,有著檢測(cè)速度快的優(yōu)點(diǎn),能較好地平衡速度和精度,為實(shí)現(xiàn)實(shí)時(shí)鴨場(chǎng)中復(fù)雜環(huán)境下鴨蛋識(shí)別定位奠定了基礎(chǔ)[31]。
1.2.2 模型改進(jìn)方法
為使模型學(xué)習(xí)到局部和全局信息,并在提高識(shí)別鴨蛋精度和速度的同時(shí),減少漏檢和錯(cuò)檢,本文在YOLOv7模型的基礎(chǔ)上,提出一種融合CBAM、DSC 及優(yōu)化空間金字塔池化結(jié)構(gòu)的改進(jìn)YOLOv7 模型(YOLOv7_CDS),改進(jìn)的模型結(jié)構(gòu)如圖3 所示。
圖3 改進(jìn)模型整體結(jié)構(gòu)Fig.3 Structure of improved model
從以下3 個(gè)方面進(jìn)行改進(jìn):
1)卷積注意力模塊
鴨場(chǎng)中,因?yàn)楣庹铡⒄趽跻约氨尘埃ń斩捄偷練?、鴨子)等因素,?dǎo)致圖片中干擾信息與鴨蛋特征信息混淆,影響識(shí)別的準(zhǔn)確性,出現(xiàn)漏檢和錯(cuò)檢,故為進(jìn)一步解決復(fù)雜環(huán)境中環(huán)境信息對(duì)于鴨蛋特征提取的干擾問題,本文在YOLOv7 主干網(wǎng)絡(luò)中引入CBAM 結(jié)構(gòu),包含通道注意力、空間注意力2 個(gè)模塊[32]。在原網(wǎng)絡(luò)提取特征后,利用CBAM 進(jìn)行通道注意力和空間注意力模塊的串聯(lián),對(duì)原有的鴨蛋特征圖進(jìn)行信息提煉,提升模型在主干網(wǎng)絡(luò)中對(duì)特征提取的準(zhǔn)確性[33-34]。
CBAM 的通道注意力模塊,對(duì)輸入的特征圖(Feature map),分別進(jìn)行全局平均池化和全局最大池化,得到新的特征圖,接著通過σ函數(shù)得到權(quán)重系數(shù),權(quán)重系數(shù)與新的特征圖相乘,最終得到輸出特征圖,其計(jì)算方法如式(2)。
空間注意力模塊,將通道注意力模塊輸出的特征圖作為輸入,進(jìn)行最大池化和平均池化后在通道維度拼接,接著經(jīng)過卷積降為一個(gè)通道,并通過σ函數(shù)生成空間權(quán)重系數(shù),將輸入特征圖與權(quán)重相乘,即得到輸出的特征圖,其計(jì)算方法如式(3)所示。
式中Mc為通道注意力圖,Ms為空間注意力圖;Fm為輸入特征圖;σ為Sigmoid 函數(shù);f7×7為7×7 卷積;MLP為Multilayer Perceptron 神經(jīng)網(wǎng)絡(luò)。
CBAM 中兩個(gè)模塊的串聯(lián)較好地解決了SE(squeezeand-excitation)和ECA(efficient channel attention)僅關(guān)注通道信息的問題。如表3 為YOLOv7 模型分別引入CBAM、SE 和ECA 注意力機(jī)制后的檢測(cè)性能對(duì)比,由表知,YOLOv7+CBAM 的F1 分?jǐn)?shù)分別高出YOLOv7、YOLOv7+SE 和YOLOv7+ECA 模型5.1、3.3 和2.4 個(gè)百分點(diǎn)。CBAM 通過串聯(lián)通道和空間模塊給予鴨蛋特征更多的關(guān)注,使得模型提取的特征指向性更強(qiáng),對(duì)鴨蛋識(shí)別任務(wù)更具優(yōu)越性。圖4 展示了模型引入CBAM 模塊的位置。
表3 模型引入不同注意力機(jī)制的檢測(cè)性能Table 3 Detection performance of models introducing different attention mechanisms%
圖4 CBAM 改進(jìn)位置Fig.4 CBAM improves position
2)深度可分離卷積網(wǎng)絡(luò)
實(shí)現(xiàn)鴨蛋的準(zhǔn)確識(shí)別定位是鴨蛋拾取機(jī)器人的關(guān)鍵技術(shù),需要考慮嵌入式設(shè)備的內(nèi)存及算力限制。在保證良好檢測(cè)精度的前提下,對(duì)模型運(yùn)算量及大小進(jìn)行一定壓縮,提高其對(duì)嵌入式設(shè)備的適用性。本文在YOLOv7模型的ELAN 結(jié)構(gòu)中將3×3 的卷積層替換為深度可分離卷積(DSC,depthwise separable convolution),使得網(wǎng)絡(luò)在保證原有信息傳遞的情況下,減少一定的浮點(diǎn)運(yùn)算量及模型大小。圖5 和表4 為深度可分離卷積應(yīng)用的具體位置。
表4 主干網(wǎng)絡(luò)中深度可分離卷積位置Table 4 Depthwise separable convolution positions in backbone
圖5 深度可分離卷積改進(jìn)位置Fig.5 Depthwise separable convolution improves position
DSC 于2018 年由SANDLER 等[35]提出,其浮點(diǎn)預(yù)算量(FLOPs,floating point operations per second)計(jì)算如式(4)。對(duì)比標(biāo)準(zhǔn)卷積浮點(diǎn)運(yùn)算量[36],計(jì)算如式(5)。
式中Ci、Co分別為輸入、輸出通道數(shù),K為卷積核大小,Ho、Wo分別為輸出特征圖高度、寬度。二者浮點(diǎn)運(yùn)算量之比為:+,當(dāng)Co為4,K為3時(shí),深度可分離卷積浮點(diǎn)運(yùn)算量減少約。
3)空間金字塔池化結(jié)構(gòu)
空間金字塔池化結(jié)構(gòu)(SPP,spatial pyramid pooling)由HE 等[37]提出。該結(jié)構(gòu)能夠提高全局感受野,減少對(duì)空間信息的依賴,幫助模型在復(fù)雜環(huán)境中分離出鴨蛋和背景,通過捕捉不同尺度的鴨蛋信息,較好地解決視場(chǎng)較大、遮擋較多時(shí),鴨蛋遠(yuǎn)近不一、大小不一的問題,提升模型采集有效特征的能力,增強(qiáng)模型對(duì)小目標(biāo)的檢測(cè)能力。本文借鑒快速空間金字塔池化結(jié)構(gòu)(SPPF,spatial pyramid pooling - fast)思想[38],在原YOLOv7 模型中引入改進(jìn)的空間金字塔池化結(jié)構(gòu),改進(jìn)前后的結(jié)構(gòu)分別如圖6a、6b 所示。
原空間金字塔池化結(jié)構(gòu)采用分支并行的方式進(jìn)行不同尺度(5×5、9×9、13×13)的最大池化,并Concat 堆疊通道。本文改進(jìn)的結(jié)構(gòu)采用串聯(lián)3 個(gè)相同尺度(5×5)的最大池化的方法,將每一個(gè)最大池化的輸出進(jìn)行通道堆疊。若輸入特征尺寸為16×16,串聯(lián)的2 個(gè)5×5 的最大池化可以等效于1 個(gè)9×9 的最大池化,二者均輸出尺寸為8×8 的特征。同理,串聯(lián)的3 個(gè)5×5 的最大池化可以等效于1 個(gè)13×13 的最大池化。并且,池化尺度越大所需的計(jì)算成本越大[39],故對(duì)其采用統(tǒng)一尺度串聯(lián)的方式,充分利用每個(gè)池化的輸出,使得模型能在保持原有優(yōu)點(diǎn)的基礎(chǔ)上,提升檢測(cè)效率。
1.2.3 模型評(píng)價(jià)指標(biāo)
為檢驗(yàn)訓(xùn)練好的模型,是否適用于復(fù)雜環(huán)境下鴨蛋的實(shí)時(shí)檢測(cè),本文將從檢測(cè)精度和檢測(cè)速度兩方面的指標(biāo)進(jìn)行評(píng)價(jià)。
1)模型精度指標(biāo):精確度(Precision),評(píng)估模型預(yù)測(cè)是否準(zhǔn)確,計(jì)算式如(6)所示;召回率(Recall),評(píng)估模型檢測(cè)出目標(biāo)數(shù)據(jù)的能力,計(jì)算式如(7)所示;F1 分?jǐn)?shù)(F1 score)是精確度與召回率的調(diào)和平均,是避免精確度或召回率出現(xiàn)單一極大值,用于綜合反映整體的指標(biāo),計(jì)算式如(8)所示;平均精度均值(mAP,mean average precision)是衡量預(yù)測(cè)目標(biāo)位置及類別算法的指標(biāo),對(duì)目標(biāo)檢測(cè)模型評(píng)估有著一定意義。
式中TP為鴨蛋被正確識(shí)別的數(shù)量;FP為將其他物體識(shí)別為鴨蛋的數(shù)量,即錯(cuò)檢;FN為沒有正確識(shí)別出鴨蛋的數(shù)量,即漏檢。
2)模型速度指標(biāo):將模型檢測(cè)1 張圖片的平均用時(shí),作為衡量模型速度指標(biāo)。同時(shí),利用浮點(diǎn)運(yùn)算量(FLOPs,floating point operations per second)、模型占內(nèi)存空間大小兩個(gè)指標(biāo),來衡量模型部署于嵌入式設(shè)備的能力。
本文需要在鴨場(chǎng)復(fù)雜環(huán)境中實(shí)現(xiàn)鴨蛋檢測(cè),為區(qū)別于其他目標(biāo)檢測(cè)任務(wù),本文將對(duì)模型在檢測(cè)中出現(xiàn)的結(jié)果進(jìn)行定義與說明。1)漏檢:鴨蛋存在,但模型將其識(shí)別為背景,未輸出檢測(cè)框。2)誤檢:①將背景識(shí)別為鴨蛋;②將n個(gè)粘連的鴨蛋識(shí)別為1 個(gè)鴨蛋,記為誤檢n個(gè)鴨蛋。另外,模型輸出大小正確的單個(gè)檢測(cè)框,且檢測(cè)框內(nèi)只存在被鴨羽覆蓋的單個(gè)鴨蛋,該情況對(duì)鴨蛋拾取機(jī)器人的拾取過程影響較小,故不將該情況記為漏檢或誤檢。
1.2.4 模型訓(xùn)練參數(shù)
輸入圖片尺寸640× 640 像素,迭代次數(shù)150 輪,訓(xùn)練批次(batch_size)設(shè)置為8。為使模型同時(shí)滿足“快”和“優(yōu)”,并且防止過擬合,設(shè)置初始學(xué)習(xí)率為0.01,學(xué)習(xí)退火參數(shù)為0.1,訓(xùn)練過程中,模型學(xué)習(xí)率從0.01呈余弦變化衰退至0.001。此外,模型訓(xùn)練過程中使用YOLOv7.pt 預(yù)訓(xùn)練權(quán)重文件。
使用相同數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,利用各改進(jìn)方法做消融試驗(yàn),得到消融試驗(yàn)結(jié)果如表5 所示,其中使用CBAM 模塊進(jìn)行改進(jìn)的模型記為YOLOv7_C,使用DSC 模塊進(jìn)行改進(jìn)的模型記為YOLOv7_D,使用優(yōu)化后的空間金字塔池化結(jié)構(gòu)改進(jìn)的記為YOLOv7_S,組合改進(jìn)命名以此類推。從表5 可以看出,經(jīng)過CBAM 模塊對(duì)通道和空間兩個(gè)維度的優(yōu)化,模型提取待檢測(cè)目標(biāo)特征能力有所加強(qiáng),如模型YOLOv7_C 相較YOLOv7 模型,F(xiàn)1分?jǐn)?shù)提高5.1 個(gè)百分點(diǎn);同時(shí),在mAP 上,相較于YOLOv7模型,YOLOv7_C 提升了5.7 個(gè)百分點(diǎn),YOLOv7_CD提升了6.2 個(gè)百分點(diǎn),YOLOv7_CS 提升了7.3 個(gè)百分點(diǎn),YOLOv7_CDS 提升了8.1 個(gè)百分點(diǎn)。由表5 可以看出,相比于YOLOv7 原始模型,單獨(dú)采用深度可分離卷積、單獨(dú)采用空間金字塔池化進(jìn)行改進(jìn)的方法,在F1 分?jǐn)?shù)上提升分別為1.2 個(gè)百分點(diǎn)和2.5 個(gè)百分點(diǎn),在mAP 上提升分別為1.8 個(gè)百分點(diǎn)和4 個(gè)百分點(diǎn),說明單獨(dú)應(yīng)用一種優(yōu)化方法對(duì)鴨蛋數(shù)據(jù)檢測(cè)性能提升有限。
表5 消融試驗(yàn)結(jié)果Table 5 Ablation experiment results
圖7 為改進(jìn)模型的訓(xùn)練損失和驗(yàn)證損失曲線,由圖7 可得,經(jīng)過CBAM 模塊的優(yōu)化,模型的損失振蕩減弱,并快速趨于穩(wěn)定。當(dāng)單獨(dú)使用深度可分離卷積、空間金字塔池化進(jìn)行優(yōu)化時(shí),僅較輕減弱損失振蕩。當(dāng)與CBAM 進(jìn)行結(jié)合使用后,模型的各指標(biāo)均得到較大提升。由其損失曲線能直觀地反映出,YOLOv7_C、YOLOv7_CD、YOLOv7_CS、YOLOv7_CDS 在訓(xùn)練至50 輪后趨于穩(wěn)定,且損失降低至一個(gè)較低值。說明CBAM 模塊、深度可分離卷積和空間金字塔池化結(jié)構(gòu)的結(jié)合對(duì)鴨蛋的識(shí)別定位具有較高效益。
圖7 改進(jìn)模型損失曲線Fig.7 Improved model loss curve
此外,通過調(diào)整深度可分離卷積網(wǎng)絡(luò)、空間金字塔池化結(jié)構(gòu),YOLOv7_CDS 相較于YOLOv7,模型浮點(diǎn)運(yùn)算量(FLOPs)減少7.9 G,模型占內(nèi)存空間大小減少6.1 M。記錄各個(gè)模型在驗(yàn)證集上的檢測(cè)時(shí)間,將每張圖像平均耗時(shí)作為模型檢測(cè)速度,試驗(yàn)結(jié)果如表5 所示。對(duì)于單張圖像,YOLOv7_CDS 模型檢測(cè)平均耗時(shí)0.022 s。試驗(yàn)表明YOLOv7_CDS 模型占空間內(nèi)存較少,在精度和速度方面具有一定優(yōu)越性,可部署于鴨蛋拾取機(jī)器人的嵌入式設(shè)備。
利用處于不同情況的鴨蛋進(jìn)一步對(duì)比改進(jìn)模型的實(shí)際檢測(cè)效果。圖8 展示了YOLOv7 改進(jìn)后實(shí)際檢測(cè)效果對(duì)比。對(duì)于在蛋窩中的堆疊鴨蛋,各模型均無漏檢錯(cuò)檢,改進(jìn)的YOLOv7_CDS 模型其平均置信度達(dá)95.0%,符合預(yù)期。同時(shí),由圖8 知,在視場(chǎng)較大、背景干擾較多、情況較復(fù)雜時(shí),YOLOv7_CDS 模型檢測(cè)效果較優(yōu)。如圖中鴨場(chǎng)無遮擋場(chǎng)景所示,YOLOv7_CDS 無錯(cuò)檢漏檢,平均置信度達(dá)83.3%。而YOLOv7 原始模型錯(cuò)將羽毛識(shí)別為1 個(gè)鴨蛋,并漏檢1 個(gè)。如圖中鴨場(chǎng)復(fù)雜環(huán)境所示,YOLOv7_CDS 漏檢5 個(gè),無錯(cuò)檢。YOLOv7 原始模型僅檢測(cè)出3 個(gè)鴨蛋。其余模型實(shí)際檢測(cè)效果均差于YOLOv7_CDS 模型,如YOLOv7_CS 漏檢11 個(gè),無錯(cuò)檢。試驗(yàn)結(jié)果表明,CBAM 較好地抑制干擾,優(yōu)化模型性能,同時(shí)結(jié)合深度可分離卷積、空間金字塔池化的優(yōu)化方法,可以更好地提升模型對(duì)鴨蛋的檢測(cè)性能。
圖8 YOLOv7 改進(jìn)后檢測(cè)效果對(duì)比Fig.8 Comparison of detection effects after improvement of YOLOv7
將改進(jìn)的YOLOv7 模型,與目前常用的目標(biāo)檢測(cè)模型:SSD、YOLOv4、YOLOv5 進(jìn)行對(duì)比,結(jié)果如表6 所示。由表6 可知,YOLOv5_L、YOLOv7_CDS 具有一定優(yōu)越性,F(xiàn)1 分?jǐn)?shù)都達(dá)到95%以上。在F1 分?jǐn)?shù)上,YOLOv7_CDS 高出SSD 模型8.3 個(gè)百分點(diǎn)、高出YOLOv4 模型10.1 個(gè)百分點(diǎn)、高出YOLOv5_M 模型8.7 個(gè)百分點(diǎn)、高出YOLOv7 模型7.6 個(gè)百分點(diǎn),但是低于YOLOv5_L 模型0.4 個(gè)百分點(diǎn)。這是由于YOLOv5_L 模型的網(wǎng)絡(luò)深度和寬度,分別在C3 模塊和卷積核數(shù)量的影響下,不斷加深、擴(kuò)大,致使其犧牲速度而獲得更高精度。由表6 可知,YOLOv5_L 模型平均精度均值(mAP)高出YOLOv7_CDS 模型1.1 個(gè)百分點(diǎn),但YOLOv7_CDS 占空間大小比YOLOv5_L 減少24.1 M。同時(shí),相較于YOLOv5_L,YOLOv7_CDS 單張圖像檢測(cè)平均用時(shí)減少0.011 s,在速度上具有一定優(yōu)越性,更適于部署在鴨蛋拾取機(jī)器人的嵌入式設(shè)備上。
表6 不同模型的檢測(cè)性能Table 6 Detection performance of different models
2.4.1 遮擋目標(biāo)檢測(cè)對(duì)比
為進(jìn)一步驗(yàn)證YOLOv7_CDS 模型對(duì)解決鴨蛋遮擋問題的能力,將無遮擋、相互遮擋、泥土遮擋、羽毛遮擋4 類圖像輸入模型。圖9 展示了各模型對(duì)4 類情況的檢測(cè)結(jié)果。由圖9 知,在無遮擋的情況下,各模型均準(zhǔn)確檢測(cè)出6 個(gè)目標(biāo),并且平均置信度均達(dá)到90%及以上。當(dāng)鴨蛋相互遮擋時(shí),YOLOv4 出現(xiàn)了誤檢的情況,將背景錯(cuò)誤識(shí)別為鴨蛋,而其他模型均準(zhǔn)確無誤地檢測(cè)出目標(biāo)。鴨蛋被泥土和糞便遮擋是鴨場(chǎng)中經(jīng)常出現(xiàn)的情況,對(duì)于只有10%~20%可見面積的鴨蛋,由圖9 可得,5個(gè)模型都準(zhǔn)確地檢測(cè)出被泥土遮擋的鴨蛋,并且平均置信度都達(dá)90%以上,較好地解決鴨蛋被遮擋覆蓋的檢測(cè)問題。
圖9 不同遮擋情況下各模型檢測(cè)對(duì)比Fig.9 Comparison of different model detection for each obscure situation
鴨子在鴨場(chǎng)中活動(dòng)時(shí)會(huì)散落大量鴨羽,鴨羽覆蓋在鴨蛋上時(shí),因其顏色相近,造成目標(biāo)檢測(cè)困難。圖9 展示了各模型在鴨蛋被鴨羽遮擋時(shí)的檢測(cè)能力(為了更清晰地觀察檢測(cè)結(jié)果,隱藏圖中的鴨蛋標(biāo)簽及置信度)。由圖9 可知,SSD 模型漏檢5 個(gè)鴨蛋,錯(cuò)檢2 個(gè);YOLOv4 模型漏檢5 個(gè)鴨蛋,錯(cuò)檢4 個(gè);YOLOv5_M 模型漏檢2 個(gè)鴨蛋,錯(cuò)檢8 個(gè);YOLOv7_CDS 無漏檢、錯(cuò)檢,以較高的準(zhǔn)確率檢測(cè)出被羽毛遮擋的鴨蛋。表7 為各模型在解決羽毛遮擋問題時(shí),檢測(cè)性能對(duì)比。由表7 可知,改進(jìn)的模型在無漏檢、錯(cuò)檢的情況下,有著較高的平均置信度以及較小的空間大小,表明其可以很好地解決羽毛遮擋時(shí)鴨蛋檢測(cè)問題。
表7 羽毛遮擋情況不同模型檢測(cè)對(duì)比Table 7 Comparison of different models for feather obscuring detection
2.4.2 密集目標(biāo)檢測(cè)對(duì)比
為檢驗(yàn)?zāi)P褪欠窨梢越鉀Q鴨場(chǎng)中鴨蛋密集程度不同導(dǎo)致檢測(cè)困難的問題,將稀疏、中等密集、簇?fù)? 類圖像輸入模型,檢測(cè)結(jié)果如圖10 所示。各模型在稀疏和中等密集情況下,對(duì)鴨蛋的檢測(cè)具有很好的適用性。在簇?fù)砬闆r下,YOLOv5_M、YOLOv4 以及SSD 模型均有較多漏檢和誤檢,無法解決密集目標(biāo)檢測(cè)問題。YOLOv5_L與YOLOv7_CDS 檢測(cè)性能的對(duì)比結(jié)果見表8。由表8 可知,2 個(gè)模型對(duì)于簇?fù)砬闆r的鴨蛋,均無漏檢、誤檢,有較好的適用性。YOLOv7_CDS 平均置信度較YOLOv5_L提高了2.4 個(gè)百分點(diǎn),綜合考慮2 個(gè)模型的模型大小、檢測(cè)平均用時(shí)和平均置信度,本文提出的YOLOv7_CDS模型更適合部署在鴨蛋拾取機(jī)器人上,并為鴨蛋拾取機(jī)器人在鴨場(chǎng)中拾取密集分布的鴨蛋提供技術(shù)支持。
表8 簇?fù)砬闆r不同模型檢測(cè)對(duì)比Table 8 Comparison of different models for clustered detection
圖10 不同密集程度下各模型檢測(cè)對(duì)比Fig.10 Comparison of the detection of each model at different densities
2.4.3 鴨場(chǎng)實(shí)例檢測(cè)結(jié)果
將從鴨場(chǎng)實(shí)地采集的未經(jīng)訓(xùn)練圖像輸入改進(jìn)模型,觀察其在實(shí)際情況下對(duì)鴨蛋的檢測(cè)能力。圖11 為改進(jìn)模型檢測(cè)結(jié)果,對(duì)比左邊原始圖像可以看出,YOLOv7_CDS模型在實(shí)際場(chǎng)景下檢測(cè)性能良好,對(duì)于昏暗、多目標(biāo)、遮擋、大視場(chǎng)等場(chǎng)景,均無錯(cuò)檢,可實(shí)現(xiàn)復(fù)雜環(huán)境中鴨蛋的準(zhǔn)確檢出。
圖11 實(shí)例檢測(cè)Fig.11 Instance detection
為實(shí)現(xiàn)在不同角度、不同干擾等復(fù)雜環(huán)境下,對(duì)鴨蛋的快速準(zhǔn)確檢測(cè),本研究采集模擬環(huán)境和實(shí)際環(huán)境的鴨蛋圖像,以YOLOv7 為基礎(chǔ)算法,引入CBAM 機(jī)制加強(qiáng)模型對(duì)鴨蛋的關(guān)注度,改進(jìn)空間金字塔池化結(jié)構(gòu),并添加DSC 結(jié)構(gòu)提高模型效率。將改進(jìn)的YOLOv7 模型與原模型,以及其他常用算法模型的檢測(cè)結(jié)果進(jìn)行對(duì)比,得出以下結(jié)論:
1)在本文采集的模擬和實(shí)際環(huán)境的鴨蛋數(shù)據(jù)集上,改進(jìn)并訓(xùn)練YOLOv7 模型,得到較優(yōu)檢測(cè)模型YOLOv7_CDS,其F1 分?jǐn)?shù)為95.5%,平均精度均值為85.2%。與原始模型YOLOv7 相比,精確率提高了6.3 個(gè)百分點(diǎn),召回率提高了8.8 個(gè)百分點(diǎn),F(xiàn)1 分?jǐn)?shù)提高了7.6 個(gè)百分點(diǎn),平均精度均值提高了8.1 個(gè)百分點(diǎn)。同時(shí)在實(shí)例檢測(cè)中,無論是堆疊遮擋、還是多干擾等復(fù)雜情況,YOLOv7_CDS 模型均具有一定優(yōu)勢(shì)。
2)與常用目標(biāo)檢測(cè)模型SSD、YOLOv4 以及YOLOv5_M 相比,改進(jìn)后模型YOLOv7_CDS 的F1 分?jǐn)?shù)分別提高了8.3、10.1 和8.7 個(gè)百分點(diǎn);平均精度均值分別提高了15.4、10.7 以及16.4 個(gè)百分點(diǎn)。結(jié)果表明在復(fù)雜環(huán)境中,YOLOv7_CDS 模型進(jìn)行鴨蛋檢測(cè)具有可行性。針對(duì)鴨蛋簇?fù)?、光照昏暗、覆蓋遮擋等復(fù)雜情況時(shí)YOLOv7_CDS 模型具有較高魯棒性,都能達(dá)到較優(yōu)的檢測(cè)效果。
3)YOLOv7_CDS 模型檢測(cè)速度快,對(duì)單張圖片檢測(cè),平均耗時(shí)僅為0.022 s,相比SSD、YOLOv4 以及YOLOv5_L,耗時(shí)分別減少0.073、0.072 以及0.011 s。同時(shí),改進(jìn)的YOLOv7 模型占內(nèi)存空間小,在部署于鴨蛋拾取機(jī)器人的嵌入式設(shè)備具有一定優(yōu)越性,為鴨蛋拾取機(jī)器人在鴨場(chǎng)中拾取鴨蛋提供技術(shù)支持。