薛鴻翔 沈明霞 劉龍申 陳金鑫 單武鵬 孫玉文
(1.南京農業大學工學院, 南京 210031; 2.農業農村部養殖裝備重點實驗室, 南京 210031;3.南京農業大學人工智能學院, 南京 210031; 4.南京農業大學動物科技學院, 南京 210095)
能繁母豬的存欄量直接關系到我國生豬養殖產業的發展,發情檢測是能繁母豬繁殖工作的重要技術環節。提高發情檢測的及時性和準確性,確保發情母豬能夠適時配種,減少空懷母豬數量,提高能繁母豬的利用率,是提升豬場生產效益的關鍵[1-3]。
目前,母豬發情檢測主要采取人工試情法,通過刺激母豬肋部、腹部、外陰部,對母豬的靜立反應狀態進行人工判斷,該方法費時費力,并且嚴重依賴于配種人員的查情經驗[4-6],難以滿足規模化養殖對母豬發情狀態實時檢測的需求。
自動檢測母豬發情狀態已逐漸成為研究熱點,OSTERSEN等[7]采用射頻識別技術統計母豬通過“瞭望窗”接觸公豬的頻率,以24 h作為識別時間,發情檢測的錯誤率為95.0%,靈敏度為60.7%,特異性為98.8%。CORNOU等[8]采用自動飼喂器統計母豬的采食頻次,建立單變量動態線性模型,采用此方法識別母豬發情的靈敏度為75.0%,特異性為95.4%。莊晏榕等[9]根據大白母豬試情時雙耳豎立的特征,建立基于卷積神經網絡(CNN)的大白豬發情行為識別方法,并設定發情時雙耳豎立時間閾值,以鑒定母豬是否發情,但該方法需要公豬試情,實現自動化檢測難度較大。LEI等[10]將母豬雙耳豎立時間、母豬和假豬鼻的交互行為作為發情特征,利用神經網絡模型對大白母豬發情行為進行分類。現有的發情檢測方法大都需要公豬參與,且存在檢測耗時長、錯誤率高、靈敏性低等問題,難以滿足實際養殖的管理需求。
為進一步提高經產母豬發情自動檢測速度和準確率,本文提出一種基于改進YOLO v5s的母豬發情檢測方法。首先,對獲取的仿生公豬試情的數據進行處理,建立經產母豬發情檢測數據集;其次,通過稀疏訓練、迭代通道剪枝、模型微調等方式重構模型,實現模型壓縮與加速;最后,構建基于改進YOLO v5s的母豬交互行為識別模型,以此模型為基礎,對仿生公豬試情的視頻數據進行分類,以期實現養殖環境下母豬發情狀態的精準檢測。
經產母豬視頻數據于2021年9月15日—11月12日在江蘇省鹽城市射陽縣黃沙港鎮尚寶牧業第三畜牧場內采集。本研究的實驗對象為36頭體況相近、繁殖胎次相同的經產大長母豬(大約克公豬與長白母豬雜交所繁育的二元母豬),經產母豬在哺乳期結束后由產床轉移至限位欄內。母豬妊娠舍內部環境溫度范圍為24~27℃,相對濕度66%~82%,濕簾與風機保持24 h常開。連續采集7 d視頻數據,實驗期間上下午各進行一次人工查情,并測定母豬的雌二醇與孕酮激素含量變化情況[11]。
數據采集系統主要由仿生公豬、巡檢設備、網絡傳輸模塊與數據存儲模塊4部分組成,如圖1所示。巡檢設備搭載分辨率為2 560像素×1 440像素的??低暭t外攝像頭(DS-2CD3346WD-I型),攝像頭距地高度2.3 m,仿生公豬搭載公豬氣味劑釋放設備(內置Boarmate公豬信息素)和公豬發聲器[12],每次試情時間為3 min,攝像頭采集的視頻通過網絡傳輸模塊、??低暰W絡硬盤錄像機(DS-8832N-K8-8×6T型)等設備存儲至硬盤,可通過服務器端實時查看。

圖1 視頻采集示意圖Fig.1 Sketch of video acquisition
實驗數據集的制作包括圖像獲取、圖像篩選、圖像標注、Mosaic數據增強、數據集格式化等過程[13]。
(1)圖像獲?。簭木W絡硬盤錄像機中截取仿生公豬3 min試情的監控視頻片段,采用Python腳本文件將視頻截取為.jpg格式的圖像,所截圖像的時間間隔為1 s。
(2)圖像篩選:剔除質量較差的圖像,此類圖像多拍攝于極端惡劣天氣,同時刪除相似度過高的圖像,最終得到9 820幅有效圖像。
(3)圖像標注:使用開源軟件LabelImg對目標區域進行人工標注,標注的類別包括“sow”、“boar”、“contact”3類。標注完成后,保存成后綴名為.xml格式的文件,文件名與圖像名保持一致。
(4)Mosaic數據增強:根據母豬與仿生公豬交互行為在圖像中出現位置的不確定性以及交互區域光照變化的特點,為減輕過擬合,擴大模型的應用場景,增強模型魯棒性,采用Mosaic數據增強方式將原始圖像進行數據擴充,本文采用幾何變形、隨機剪接、光照與色彩調節等方式,并隨機添加邊緣空白,Mosaic數據增強后的效果如圖2所示[14]。

圖2 Mosaic數據增強效果Fig.2 Mosaic data augment effect
(5)數據集格式化:以PASCAL VOC標準格式對數據集進行格式化,將原圖置于images目錄下,將相應的標簽文件置于Labels文件夾下,運行voc-YOLOv5.py腳本文件在文件夾Main目錄下生成包含圖像名稱的Train.txt、Test.txt文件,按8∶1∶1將標注好的數據隨機分配至訓練集、測試集和驗證集中[15]。
母豬與仿生公豬交互行為的準確識別是判定母豬是否發情的關鍵。由于母豬與仿生公豬交互行為發生區域相比于整幅圖像較小,且后期模型需應用于規?;i場,綜合考慮模型檢測速度與精度,本文以YOLO v5算法作為網絡基準模型,對其進行優化,將優化后的模型作為母豬發情檢測模型。 YOLO v5目標檢測算法的主要過程如圖3所示。

圖3 YOLO v5算法目標檢測示意圖Fig.3 Schematic of object detection based on YOLO v5 algorithm
YOLO v5算法是一種基于YOLO v3-SPP和YOLO v4的網絡框架,包含YOLO v5s、YOLO v5m、YOLO v5x、YOLO v5l 4個版本[16]。YOLO v5網絡模型主要由Input、Backbone、Neck、Prediction 4個模塊組成,Input模塊用于實現交互行為圖像的輸入、Backbone模塊用于實現交互行為圖像特征提取、Neck模塊用于實現交互行為圖像特征融合、Prediction模塊用于實現交互行為位置預測[17]。YOLO v5網絡結構示意圖如圖4所示。

圖4 YOLO v5網絡結構示意圖Fig.4 YOLO v5 network model structural sketch
在輸入端,通過使用Mosaic數據增強方法豐富數據表征,采用GIOU損失函數(Generalized_IOU_NM)預測篩選框,并引入含有Focus結構和CSP結構的基準網絡[18]。其中,Focus結構主要用于完成切片操作,使交互行為特征提取更加充分,有效減少下采樣過程數據的丟失[19]。CSP結構主要用以降低計算瓶頸和內存開銷,利用CSP優化核心網絡可提高模型檢測性能,增強卷積神經網絡的學習能力,充分減少計算量和推理時間。在Backbone層和末端Neck輸出層之間引入FPN+PAN結構,可有效提升推理速度[20]。
考慮到豬場實際生產條件的限制,為便于經產母豬發情行為識別所需的軟硬件部署。本研究在YOLO v5s網絡的基礎上,對模型進行結構化剪枝,以充分降低模型的復雜度,在保證模型識別精度的同時,提高模型的識別速度[21]。模型通道剪枝流程如圖5所示,主要包括稀疏訓練、通道剪枝、模型微調3個過程[22]。

圖5 模型通道剪枝流程 Fig.5 Channel level pruning of model
為了縮短卷積神經網絡的訓練時間,在較短的時間內得到最佳模型,本文在YOLO v5s網絡的批量歸一化層(Batch normalization, BN)加入超參數γ和ρ[23],采用縮放與平移兩種操作對通道數據進行歸一化處理,以學習神經網絡的特征分布,其計算方法為
(1)
式中Sin——BN層輸入
Sout——BN層輸出
μA——樣本數據的均值
σA——樣本數據的標準差
p——避免除數為0時所使用的微小正數
在BN層的各通道加入尺寸因子,同時在損失函數中引入懲罰項,與網絡權重聯合訓練得到稀疏網絡的尺寸因子γ[24],其計算公式為
(2)
式中L——添加正則化懲罰項的損失函數
l1——原始網絡的損失函數
λ——平衡因子
g(γ)——縮放因子的損失函數
u——所有剪枝通道的集合
式(2)第2項為L1正則化(L1-Normalization),用于降低模型的復雜度。當網絡權值W接近0時,即得到稀疏網絡,最后進行模型微調,目的是挖掘神經網絡的潛在性能[25]。BN層調整流程如圖6所示。

圖6 BN層通道剪枝示意圖Fig.6 Diagram of batch normalization layer channel sparse
在仿生公豬試情場景下,當母豬接近仿生公豬或母豬部分遮擋公豬時,由于交并比(Intersection over union,IOU)較大,經過非極大抑制處理后,只剩下單一檢測框,在一定程度上增加了漏檢概率[26]。針對以上問題,本文在非極大值抑制(Non-maximum suppression,NMS)部分,采用DIOU非極大值抑制(Distance_IOU_NMS)代替GIOU非極大值抑制(Generalized_IOU_NMS),在預測框與真實框重疊區域的判定基礎上,增加對目標框中心點歐氏距離的計算。當仿生公豬與母豬目標框出現IOU較大、中心距離也較大時,判定為兩個目標,以提升模型的檢測精度[27]。其中,DIOU計算公式為
(3)
式中DIOU——距離交并比
IOU——交并比
d——目標框之間的中心距
c——目標框最小外接矩形的對角距離
DIOU_NMS的處理邏輯為
(4)
式中si——分類評價得分
ε——非極大值抑制閾值
DIOU_NMS能夠將重疊面積與目標預測框中心距綜合考慮,可較為精確地篩選目標框。
本文評價指標分為2部分,第1部分為交互行為識別結果評價,使用模型大小、模型訓練時間、平均精確率、召回率、F1值、單幅圖像平均檢測時間、單幀視頻平均檢測時間等指標評估模型的檢測性能[28]。第2部分為發情檢測結果評價,使用錯誤率、靈敏度、特異性、準確率4個指標評估發情測試試驗效果[29]。
在完成網絡的調整后,將建立的數據集輸入至優化后的網絡進行訓練,并采用圖像批量檢測與視頻檢測兩種方式對訓練完成的模型進行測試。
3.1.1試驗平臺
模型依賴于Pytorch 1.6深度學習框架,試驗平臺處理器型號為Intel CoreTM i7-11700k,顯卡型號為NVIDIA GTX3090,顯卡內存為24 GB,在Ubuntu 18.04操作系統上配置Python 3.8、CUDA 11.4、OpenCV 4.5.1等深度學習環境。
3.1.2模型訓練
在模型訓練前,統一各個網絡模型的參數,其中迭代輪次設置為160個,批量大小設置為16,初始學習率設置為0.01,循環學習率設置為0.1,初始沖量設置為0.98,初始權重衰減系數設置為0.000 5,每個迭代周期保存一次模型,選取最優的模型作為交互行為識別模型。訓練160個迭代輪次的分類損失值、邊框損失值和目標損失值曲線如圖7所示。

圖7 分類損失值、邊框損失值和目標損失值曲線Fig.7 Results of classification loss, bounding box loss and object loss
由圖7可知,優化后的模型YOLO v5gs收斂速度較YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5x 4個模型更快, 160個迭代輪次的時間開銷較YOLO v5s模型縮短36 min,較YOLO v5x模型縮短164 min,改進后的模型內存占用量僅5.7 MB,較改進前縮小60%,更易于部署與使用。優化后的模型與原始模型的精確率、召回率、平均精度均值(mAP)曲線如圖8所示。

圖8 模型測試效果Fig.8 Results of model tested
圖8中,平均精度均值(mAP)表示所有類別平均精度的平均值,本文類別數為3。mAP0.5表示交并比閾值為0.5時的平均精度均值,mAP0.5∶0.95表示交并比閾值在[0.5,0.95]之間每隔0.05取1次mAP,然后取得的平均值。由圖7、8可知,模型輕量化后,在保證精度基本不下降的同時,能夠有效提高檢測速度,選取160個迭代輪次中最優權重模型作為發情行為識別模型。
3.1.3模型測試
采用圖像批量檢測與視頻檢測兩種方式對模型進行測試。選取978幅圖像進行檢測,改進后的模型圖像平均檢測時間僅為2 ms,檢測速度較YOLO v5s提升15%,推理時間縮短0.3 ms。為進一步說明改進后的模型在交互行為識別的適用性,本文將改進后的模型與同為單次目標檢測器(one stage)的EfficientDet-D0目標檢測算法以及兩階段目標檢測器(two stage)的Faster R-CNN進行對比,交并比閾值均設置為0.5,模型效果如 表1 所示,根據對比,改進后的模型識別效果優于上述兩種算法。

表1 模型效果對比Tab.1 Comparison of model effect
選取9月28日15:08—15:11的視頻數據檢測該模型的識別性能。模型對視頻數據檢測實際上是對連續圖像序列進行檢測,模型默認每25 ms獲取視頻流中圖像,然后讀取每一幀要檢測的圖像,將圖像轉化為OpenCV可顯示的BGR格式,然后再輸入模型進行檢測,導致視頻檢測速度比圖像檢測速度慢,單幀圖像檢測時間為6 ms。結合豬場實際應用場景,此模型的檢測速度能夠滿足實時檢測的要求,視頻數據的檢測結果如圖9所示,可實時顯示檢測進度、圖像尺寸、目標類別、檢測耗時等信息。

圖9 母豬交互行為視頻檢測結果Fig.9 Recognition results of video of sows’ interactive behavior
受舍內光線變化影響,存在極少量的漏檢和誤檢(約0.5%),如圖10所示。由圖10可以看出,模型能夠對母豬目標準確識別,但由于曝光不足、過度曝光等原因,造成部分仿生公豬目標和交互行為未識別,但該情況一般出現因光線變化,導致圖像在三通道與單通道短暫過渡期間。研究進一步將篩選出的900幅光照較差的圖像進行測試,交互行為準確率較正常光線條件下低1.5個百分點,由此可見,光線對模型檢測交互行為的影響較小。

圖10 模型性能的影響因素Fig.10 Influencing factors of model performance
根據檢測模型輸出的各個時刻的交互狀態,對經產母豬的交互頻率進行分析。交互時長統計 3 min 內每頭母豬發情期與非發情期交互時長,計算36頭母豬發情期與非發情期的平均交互頻率。
從表2可知,母豬發情期與非發情期與仿生公豬的交互頻率和交互時長均發生顯著的變化。當母豬由非發情期進入發情期時,平均交互時長普遍增加3.2~4.4倍,發情時每分鐘平均交互時長高達17.21 s;交互頻率普遍增加2.3~3.7倍,發情時平均交互頻率高達5.61次/min,利用SPSS軟件對交互時長和頻率進行克魯斯卡爾-沃利斯檢驗,均表現出顯著性差異(P<0.001)[30]。

表2 發情期與非發情期交互行為分析Tab.2 Analysis of interaction between estrus and non-estrus
通過計算交互時長和頻率的皮爾遜相關系數可知,兩者具有極強相關關系(R=0.86)。本文選用交互時長對母豬發情行為進行研究,選取96個視頻片段,視頻時長均為3 min,其中包含46組非發情期
母豬行為數據和50組發情期母豬行為數據,模型對行為數據每秒檢測1次,單個視頻母豬交互時間統計結果如圖11所示。

圖11 交互時間統計結果Fig.11 Time statistics of interactive behavior
根據圖11的統計分布結果,分別以交互時間11、14、17、20、23 s作為是否發情的判定閾值,計算發情識別結果,以錯誤率、靈敏度、特異性、準確率作為評價指標,其中錯誤率用以估算未發情的母豬被錯誤識別為發情母豬的比率,數值越小,表示假報警的次數越少;靈敏度指從發情樣本中檢出的發情母豬的比率,數值越高,發情檢測效果越好;特異性指從未發情樣本中檢出的未發情母豬的比率,數值越高,發情檢測效果越好,由表3可知,以20 s作為發情檢測閾值時,發情檢測錯誤率為10.0%,靈敏度為90.0%,特異性為89.1%,準確率為89.6%。

表3 不同判定時間測試結果Tab.3 Test results of different judgment times %
為進一步測試該閾值下光照條件對發情檢測的影響,試驗挑選包含12組(4組發情期、8組非發情期)存在光照較差的3 min視頻數據,并與人工測試結果對比,測試結果表明:以20 s作為發情檢測閾值時,模型判定結果與人工檢測發情結果相同,研究表明:由光線導致的交互行為誤檢與漏檢對發情判定影響較小。
(1)采用深度學習的方法識別檢測母豬與仿生公豬的交互行為,平均精確率達97.8%,單幅圖像檢測時間僅1.7 ms,單幀視頻檢測時間為6.0 ms,可避免人工查情對母豬所造成的應激,為后續母豬發情檢測奠定基礎。
(2)以20 s作為發情判定標準時,發情檢測錯誤率為10.0%、靈敏度為90.0%、特異性為89.1%、準確率為89.6%。在保證高靈敏度的同時,降低了檢測的錯誤率,提高了檢測的特異性和準確率。