李慶旭 王巧華,2 肖仕杰 顧 偉 馬美湖
(1.華中農業大學工學院, 武漢 430070; 2.農業農村部長江中下游農業裝備重點實驗室, 武漢 430070;3.國家蛋品研發中心, 武漢 430070)
目前,我國禽蛋孵化產業自動化程度較低,主要采用人工照蛋方式剔除無精蛋。人工照蛋方式準確率低、速度慢,且影響到孵化飼養健康,亟需相關自動化裝置代替人工,對無精蛋進行快速、精確檢測及剔除[1]。針對此問題,研究者提出了機器視覺[2-3]、光譜[4-5]、敲擊振動[6]等方法,對禽蛋的受精信息進行無損檢測,均取得了較好的檢測效果。但這些方法均針對單枚種蛋,檢測效率較低,很難應用于實際生產中。因此,對整盤群體禽蛋中受精蛋的精準識別是解決該問題的關鍵。 文獻[7]利用稱量法結合機器視覺對群體種雞蛋中的受精蛋進行檢測,對孵化7 d的種雞蛋檢測精度為96.7%,由于需要每天對種蛋進行稱量,故實際生產難度依然很大。
整盤群體禽蛋中受精蛋的檢測難點在于群蛋的圖像分割,特別是在群蛋中無精蛋較多的情況下。近些年,深度學習已成功應用于機器視覺領域,R-CNN[8]、YOLO[9]、SSD[10]等基于深度學習的目標檢測算法有效地解決了復雜背景下的圖像分割和圖像識別問題?;谏疃葘W習的目標檢測算法在農業領域已被廣泛使用[11-15]。
將深度學習引入機器視覺中,對群體種鴨蛋中受精蛋進行精準識別,并且檢測出受精蛋的位置信息,可為后續相關機器人和機械手的研發提供技術支持。因此,本文以孵化5 d的群體種鴨蛋為研究對象,在常用的SSD-MobileNet[16]目標檢測算法的基礎上,提出一種以MobileNetV3[17]作為SSD特征提取網絡的群體種鴨蛋受精信息檢測方法。
為采集大量圖像數據,選取湖北省神丹種鴨養殖基地的縉云麻鴨種蛋7 776枚作為試驗材料,進行3次試驗,每次試驗條件與試驗方法完全相同。將種鴨蛋用酒精擦拭消毒并編號后放入智能孵化箱內孵化。為了模型后續部署實際生產時具有較好的泛化能力,模擬實際生產環境搭建了一套由CCD相機、整盤照蛋器、計算機、暗箱、LED光源、蛋盤等構成的圖像采集裝置,如圖1所示。每隔24 h采集一次圖像,種鴨蛋豎直放置于蛋盤,對應種鴨蛋的編號在圖像中的位置均有記錄。共采集獲得324幅圖像,每幅圖像含有種鴨蛋24枚。在孵化15 d后對鴨蛋進行破殼處理,獲得精準的受精結果,作為后續評價模型判別性能的真實依據。
采集得到的原始圖像如圖2所示,圖像尺寸為1 634像素×1 234像素。隨著孵化時間的增加受精蛋內受精卵會形成血管,同時蛋白粘度也發生變化[18],孵化5 d的群體種鴨蛋在功率為10 W的LED光源透射下,受精蛋的顏色呈暗紅色,無精蛋顏色則較為明亮。差異較為明顯,為使用SSD目標檢測算法實現受精蛋和無精蛋的識別提供了可能性。
使用SSD目標檢測算法訓練前,需要對采集的原始圖像進行人工標注。選擇當前常用的LabelImage標注工具,對群體種鴨蛋圖像中的受精蛋和無精蛋進行人工標注,標注完成后自動生成含有類別和位置信息的xml文件。標注完成后將324幅圖像劃分為訓練集、測試集和驗證集,其中訓練集210幅圖像、測試集90幅圖像、驗證集24幅圖像。雖然圖像數量相對較少,但是每幅圖像含有24個種鴨蛋樣本,324幅圖像中含邊框標注樣本個數為7 776(其中受精蛋和無精蛋比例約為1∶1),訓練集中受精蛋2 700枚,測試集中受精蛋927枚,驗證集中受精蛋261枚,基本能夠滿足深度學習樣本數量要求,故不再對數據進行擴增。最終將數據按照PASCAL VOC 數據集的格式存儲。

SSD-MobileNet網絡將經典SSD的基礎網絡由VGG網絡替換為MobileNet網絡,作為圖像的特征提取網絡。SSD-MobileNet網絡結構如圖4所示,網絡的前端為MobileNet網絡,后端為SSD輔助網絡。從圖4可以看出,SSD-MobileNet的Conv11、Conv13、Conv14-2、Conv15-2、Conv16-2、Conv17-2特征層的每個單元產生的默認框個數分別為3、6、6、6、6、6,每個類別生成1 917個默認框。默認框中含有位置和類別信息,與人工標注的真實目標的位置和類別信息相比會有一定誤差。檢測框架需要同時進行位置和類別預測,最后通過非極大值抑制方法得到檢測結果。訓練的過程是使檢測框架預測值與真實值誤差不斷減小的過程,使用位置損失和置信損失(分類損失)的加權和作為總體目標損失函數
(1)
(2)
(3)
(4)
式中N——匹配默認框的數量
l——預測邊框坐標
g——真實邊框坐標
c——Softmax函數對每個類別的置信度
x——真實邊框與預測邊框匹配標志
SL1——預測位置與真實位置的平滑L1損失
α——權重系數Lloc——位置損失
Lconf——分類損失
pos——正樣本集合
neg——負樣本集合
box——預測框中心坐標及其高和寬的集合
MobileNet網絡中用深度可分離卷積代替了標準卷積(Convolution,Conv2d),同時引入了寬度因子和分辨率因子,極大地減少了參數量和計算量。但寬度因子和分辨率因子的引入會丟失大量特征,且MobileNet網絡前向傳播過程中存在ReLU非線性變換,ReLU激活函數在提取高維空間的特征時能有效增加非線性,但是在提取低維空間時會破壞特征的非線性,導致MobileNet網絡在訓練過程中存在線性瓶頸[21]。為此文獻[22]結合深度可分離卷積在逆殘差結構的基礎上提出了MobileNetV2網絡,增強了梯度的傳播,保留了更多的特征。逆殘差結構(Inverse residual structure,IRS)如圖5所示,通過先升維再卷積后降維的操作有效地豐富了特征數量,同時使用ReLU6代替ReLU函數作為激活函數,提升了網絡的魯棒性[23]。ReLU6函數的實現公式為
Y=min(max(X,0),6)
(5)
式中Y——函數輸出X——輸入特征
為了進一步提升網絡的檢測速度、減小網絡的參數量,文獻[17]在MobileNetV2網絡基礎上提出了MobileNetV3網絡。MobileNetV3網絡引入了注意力機制模塊(Squeeze-and-Excitation blocks)改進逆殘差結構,引入注意力機制的逆殘差模塊(SE inverse residual convolution structure,SE IRS)如圖6所示;同時使用H-Swish函數作為激活函數
(6)
式中y——H-Swish函數輸出x——輸入
最后利用資源受限的NAS(platform-aware NAS)與NetAdapt網絡搜索技術確定網絡結構,使得模型的檢測精度和檢測速度都有了提升。
MobileNetV3網絡分為large和small 2個版本,兩者僅在通道數和網絡層數上有所不同。MobileNetV3_large網絡參數如表1所示,共19層網絡,包括標準卷積、逆殘差卷積、注意力機制逆殘差卷積及池化(Pool)等操作。針對群體種鴨蛋中受精蛋與無精蛋差異較為明顯,為了進一步減少模型的參數量從而提高模型的檢測速度,本文對常用的SSD-MobileNet網絡改進如下:①將去掉分類層和輸出層的MobileNetV3_large網絡代替MobileNet作為SSD的基礎網絡。②利用逆殘差結構代替SSD輔助網絡中的標準卷積。③將網絡的輸入由300×300×3改為320×320×3,增加網絡的預測精度。改進后的SSD網絡結構如圖7所示,每類生成2 034個默認框,然后經過檢測框架進行預測,最后通過非極大值抑制算法得到種鴨蛋的位置和類別。改進后的SSD網絡參數如表2所示。

表1 MobileNetV3_large網絡參數Tab.1 MobileNetV3_large network parameters

表2 基于MobileNetV3_large的改進SSD網絡參數Tab.2 SSD network parameters after improvement based on MobileNetV3_large
MobileNetV3網絡的small版本為更加輕量化的網絡。為了進一步提升模型的檢測速度,利用MobileNetV3_small版本代替改進SSD群體種蛋檢測網絡中的基礎網絡。MobileNetV3_small網絡與large版本相比,只是對網絡層數和通道數進行了調整,減少了網絡的參數量和計算量,其網絡參數如表3所示,共15層網絡。

表3 MobileNetV3_small網絡參數Tab.3 MobileNetV3_small network parameters
本文利用MobileNetV3_small網絡代替改進SSD群體種蛋檢測網絡中的MobileNetV3_large網絡,網絡輸入尺寸為320×320×3,網絡結構如圖8所示。利用MobileNetV3_small網絡的前13層作為SSD的基礎網絡,其他部分與基于MobileNetV3_large網絡改進的SSD群體種蛋檢測網絡相同,網絡參數如表4所示,每類生成2 034個默認框,經過檢測框架進行預測,最后通過非極大值抑制算法獲取種鴨蛋的位置和類別信息。
在深度學習領域中,遷移學習是一種常用的模型訓練手段。避免了隨機初始化網絡權重和偏置等參數導致的模型收斂速度慢和網絡的不穩定[24]。利用大數據集下已經訓練好的預訓練模型,通過共享網絡前端的權值參數,微調網絡后端的參數,從而使新任務下的模型訓練能夠迅速收斂,即使在小數據集下也只需要少量的訓練時間和計算資源開銷便可以實現對新任務的適應。本文利用COCO數據集下預訓練好的模型權重初始化SSD網絡的權重,通過訓練對SSD網絡參數進行微調,進一步減少了模型的訓練時間與資源。

表4 基于MobileNetV3_small改進的SSD網絡參數Tab.4 SSD network parameters after improvement based on MobileNetV3_small
采用AMD銳龍 Threadripper 2920X型CPU;NIVIDIA GeForce RTX 2080Ti 型GPU,11 GB顯存;128 GB內存;操作系統為Windows 10的硬件訓練平臺。深度學習框架使用Tensorflow-GPU 1.14.0,CUDA 9.2版本的并行計算框架,深度神經網絡加速庫選擇CUDNN v7.6版本。本文的SSD目標檢測模型的訓練與測試均在Python 3.7版本下完成。
模型訓練的過程是模型不斷調整自身參數,使得預測值與真實值不斷接近的過程,訓練過程中使用的目標損失函數為式(1),與SSD-MobileNet相同?;贛obileNetV3的large和small網絡改進的SSD模型底層權重均使用遷移學習的方法進行初始化,其余權重采用均值為0、方差為0.03的高斯分布進行隨機初始化。梯度更新是訓練過程中不斷調整權重和偏置的方法,從而使模型性能不斷優化,本文使用批量隨機梯度下降算法尋找梯度下降方向。初始學習率設置為0.04,學習率衰減方法為指數衰減法,衰減率設置為0.97。訓練的批次圖像數量(Batchsize)設置為16,最大訓練次數設置為4×104,單步訓練時間約為2 s,每訓練10 min保存一次模型的參數。以基于MobileNetV3_large網絡改進的SSD群體種鴨蛋檢測網絡的訓練過程為例,改進前和small版本訓練過程與之類似。圖9為使用了遷移學習(Transfer learning-loss)及未使用遷移學習(Normal loss)的損失函數變化曲線。從圖9可以看出,基于MobileNetV3_large改進的SSD網絡在使用遷移學習進行訓練1 000次后迅速收斂,訓練6 000次后維持在較低水平小幅度振蕩;而未使用遷移學習的基于MobileNetV3_large改進的SSD網絡在訓練4 000次后才開始迅速收斂,訓練9 000次后維持在較低水平,說明使用遷移學習可以加快模型的收斂速度。
3.3.1評價指標
目前評價基于深度學習的目標檢測模型性能的主要手段是測試模型在驗證集數據上的檢測效果。常用的技術指標有準確率、召回率、漏檢率、檢測速度和模型占用內存。本文利用訓練好的SSD-MobileNet模型和改進后 SSD模型分別對驗證集24幅圖像(含576個種鴨蛋)進行測試,用上述5個評價指標對比兩者的優劣。漏檢率M定義為
(7)
式中A——鴨蛋總數量
B——誤把鴨蛋當作背景的數量
3.3.2測試結果及分析
對孵化5 d后的24幅群體種鴨蛋圖像的測試結果進行統計,包括準確率、召回率、漏檢率、檢測速度和模型占用內存5項評價指標。共576枚種鴨蛋,SSD-MobileNet錯判了18枚種鴨蛋(其中將無精蛋判為受精蛋10枚,將受精蛋判為無精蛋2枚,漏檢6枚),基于MobileNetV3_large改進的SSD錯判了11枚種鴨蛋(其中將無精蛋判為受精蛋7枚,將受精蛋判為無精蛋4枚,漏檢0枚),基于MobileNetV3_small改進的SSD錯判了20枚種鴨蛋(其中將無精蛋判為受精蛋9枚,將受精蛋判為無精蛋3枚,漏檢8枚),統計結果如表5所示。
通過表5可以發現,基于MobileNetV3_large改進的SSD模型在精度和速度方面均優于改進前的SSD-MobileNet網絡,基于MobileNetV3_small改進的SSD模型檢測速度最快,但精度相比改進前的SSD-MobileNet網絡未有提升。綜合考慮檢測精度和速度,基于MobileNetV3_large改進的SSD模型對群體種鴨蛋的識別效果最佳。基于MobileNetV3_large改進的SSD模型的檢測速度可以達到68 f/s,遠快于改進前的45 f/s,且模型占用內存僅為9.10 MB,滿足部署到嵌入式系統的模型參數要求。此外漏檢率是衡量模型可靠性的重要指標,改進后SSD模型的漏檢率為0,說明模型的可靠性遠高于SSD-MobileNet網絡和基于MobileNetV3_small改進的SSD網絡。圖10為同一幅群體種鴨蛋圖像SSD-MobileNet模型、基于MobileNetV3_large改進的SSD模型和基于MobileNetV3_small改進的SSD模型的檢測結果。

表5 模型測試結果Tab.5 Model test results
(1)運用MobileNetV3_large網絡代替MobileNet網絡作為SSD的基礎網絡,并使用逆殘差結構代替SSD輔助網絡中的標準卷積,對群體種鴨蛋中受精蛋和無精蛋的識別性能最佳,準確率和召回率分別為98.09%、97.32%,漏檢率為0。模型占用內存僅為9.10 MB,檢測速度可達到68 f/s,具有很好的魯棒性,可滿足實際生產要求。
(2)通過遷移學習,將COCO大數據集下預訓練好的模型權重遷移到群體種鴨蛋中受精蛋和無精蛋的檢測任務下,加速了模型的收斂速度,節約了訓練成本。
(3)將群體種蛋中的個體單獨分割出來,對每個種蛋進行受精識別,解決了群體種蛋圖像難以分割的問題。利用卷積神經網絡端對端的特點,輸入一幅群體種鴨蛋圖像可直接檢測出種蛋的類別和位置信息,為群體種蛋受精信息檢測提供了一種思路,加速了禽蛋孵化行業的智能化,也為后續研發相關自動化設備提供了技術支持。