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