薛鴻翔 沈明霞 劉龍申 陳金鑫 單武鵬 孫玉文
(1.南京農(nóng)業(yè)大學(xué)工學(xué)院, 南京 210031; 2.農(nóng)業(yè)農(nóng)村部養(yǎng)殖裝備重點實驗室, 南京 210031;3.南京農(nóng)業(yè)大學(xué)人工智能學(xué)院, 南京 210031; 4.南京農(nóng)業(yè)大學(xué)動物科技學(xué)院, 南京 210095)
能繁母豬的存欄量直接關(guān)系到我國生豬養(yǎng)殖產(chǎn)業(yè)的發(fā)展,發(fā)情檢測是能繁母豬繁殖工作的重要技術(shù)環(huán)節(jié)。提高發(fā)情檢測的及時性和準確性,確保發(fā)情母豬能夠適時配種,減少空懷母豬數(shù)量,提高能繁母豬的利用率,是提升豬場生產(chǎn)效益的關(guān)鍵[1-3]。
目前,母豬發(fā)情檢測主要采取人工試情法,通過刺激母豬肋部、腹部、外陰部,對母豬的靜立反應(yīng)狀態(tài)進行人工判斷,該方法費時費力,并且嚴重依賴于配種人員的查情經(jīng)驗[4-6],難以滿足規(guī)模化養(yǎng)殖對母豬發(fā)情狀態(tài)實時檢測的需求。
自動檢測母豬發(fā)情狀態(tài)已逐漸成為研究熱點,OSTERSEN等[7]采用射頻識別技術(shù)統(tǒng)計母豬通過“瞭望窗”接觸公豬的頻率,以24 h作為識別時間,發(fā)情檢測的錯誤率為95.0%,靈敏度為60.7%,特異性為98.8%。CORNOU等[8]采用自動飼喂器統(tǒng)計母豬的采食頻次,建立單變量動態(tài)線性模型,采用此方法識別母豬發(fā)情的靈敏度為75.0%,特異性為95.4%。莊晏榕等[9]根據(jù)大白母豬試情時雙耳豎立的特征,建立基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的大白豬發(fā)情行為識別方法,并設(shè)定發(fā)情時雙耳豎立時間閾值,以鑒定母豬是否發(fā)情,但該方法需要公豬試情,實現(xiàn)自動化檢測難度較大。LEI等[10]將母豬雙耳豎立時間、母豬和假豬鼻的交互行為作為發(fā)情特征,利用神經(jīng)網(wǎng)絡(luò)模型對大白母豬發(fā)情行為進行分類?,F(xiàn)有的發(fā)情檢測方法大都需要公豬參與,且存在檢測耗時長、錯誤率高、靈敏性低等問題,難以滿足實際養(yǎng)殖的管理需求。
為進一步提高經(jīng)產(chǎn)母豬發(fā)情自動檢測速度和準確率,本文提出一種基于改進YOLO v5s的母豬發(fā)情檢測方法。首先,對獲取的仿生公豬試情的數(shù)據(jù)進行處理,建立經(jīng)產(chǎn)母豬發(fā)情檢測數(shù)據(jù)集;其次,通過稀疏訓(xùn)練、迭代通道剪枝、模型微調(diào)等方式重構(gòu)模型,實現(xiàn)模型壓縮與加速;最后,構(gòu)建基于改進YOLO v5s的母豬交互行為識別模型,以此模型為基礎(chǔ),對仿生公豬試情的視頻數(shù)據(jù)進行分類,以期實現(xiàn)養(yǎng)殖環(huán)境下母豬發(fā)情狀態(tài)的精準檢測。
經(jīng)產(chǎn)母豬視頻數(shù)據(jù)于2021年9月15日—11月12日在江蘇省鹽城市射陽縣黃沙港鎮(zhèn)尚寶牧業(yè)第三畜牧場內(nèi)采集。本研究的實驗對象為36頭體況相近、繁殖胎次相同的經(jīng)產(chǎn)大長母豬(大約克公豬與長白母豬雜交所繁育的二元母豬),經(jīng)產(chǎn)母豬在哺乳期結(jié)束后由產(chǎn)床轉(zhuǎn)移至限位欄內(nèi)。母豬妊娠舍內(nèi)部環(huán)境溫度范圍為24~27℃,相對濕度66%~82%,濕簾與風機保持24 h常開。連續(xù)采集7 d視頻數(shù)據(jù),實驗期間上下午各進行一次人工查情,并測定母豬的雌二醇與孕酮激素含量變化情況[11]。
數(shù)據(jù)采集系統(tǒng)主要由仿生公豬、巡檢設(shè)備、網(wǎng)絡(luò)傳輸模塊與數(shù)據(jù)存儲模塊4部分組成,如圖1所示。巡檢設(shè)備搭載分辨率為2 560像素×1 440像素的??低暭t外攝像頭(DS-2CD3346WD-I型),攝像頭距地高度2.3 m,仿生公豬搭載公豬氣味劑釋放設(shè)備(內(nèi)置Boarmate公豬信息素)和公豬發(fā)聲器[12],每次試情時間為3 min,攝像頭采集的視頻通過網(wǎng)絡(luò)傳輸模塊、海康威視網(wǎng)絡(luò)硬盤錄像機(DS-8832N-K8-8×6T型)等設(shè)備存儲至硬盤,可通過服務(wù)器端實時查看。
圖1 視頻采集示意圖Fig.1 Sketch of video acquisition
實驗數(shù)據(jù)集的制作包括圖像獲取、圖像篩選、圖像標注、Mosaic數(shù)據(jù)增強、數(shù)據(jù)集格式化等過程[13]。
(1)圖像獲?。簭木W(wǎng)絡(luò)硬盤錄像機中截取仿生公豬3 min試情的監(jiān)控視頻片段,采用Python腳本文件將視頻截取為.jpg格式的圖像,所截圖像的時間間隔為1 s。
(2)圖像篩選:剔除質(zhì)量較差的圖像,此類圖像多拍攝于極端惡劣天氣,同時刪除相似度過高的圖像,最終得到9 820幅有效圖像。
(3)圖像標注:使用開源軟件LabelImg對目標區(qū)域進行人工標注,標注的類別包括“sow”、“boar”、“contact”3類。標注完成后,保存成后綴名為.xml格式的文件,文件名與圖像名保持一致。
(4)Mosaic數(shù)據(jù)增強:根據(jù)母豬與仿生公豬交互行為在圖像中出現(xiàn)位置的不確定性以及交互區(qū)域光照變化的特點,為減輕過擬合,擴大模型的應(yīng)用場景,增強模型魯棒性,采用Mosaic數(shù)據(jù)增強方式將原始圖像進行數(shù)據(jù)擴充,本文采用幾何變形、隨機剪接、光照與色彩調(diào)節(jié)等方式,并隨機添加邊緣空白,Mosaic數(shù)據(jù)增強后的效果如圖2所示[14]。
圖2 Mosaic數(shù)據(jù)增強效果Fig.2 Mosaic data augment effect
(5)數(shù)據(jù)集格式化:以PASCAL VOC標準格式對數(shù)據(jù)集進行格式化,將原圖置于images目錄下,將相應(yīng)的標簽文件置于Labels文件夾下,運行voc-YOLOv5.py腳本文件在文件夾Main目錄下生成包含圖像名稱的Train.txt、Test.txt文件,按8∶1∶1將標注好的數(shù)據(jù)隨機分配至訓(xùn)練集、測試集和驗證集中[15]。
母豬與仿生公豬交互行為的準確識別是判定母豬是否發(fā)情的關(guān)鍵。由于母豬與仿生公豬交互行為發(fā)生區(qū)域相比于整幅圖像較小,且后期模型需應(yīng)用于規(guī)?;i場,綜合考慮模型檢測速度與精度,本文以YOLO v5算法作為網(wǎng)絡(luò)基準模型,對其進行優(yōu)化,將優(yōu)化后的模型作為母豬發(fā)情檢測模型。 YOLO v5目標檢測算法的主要過程如圖3所示。
圖3 YOLO v5算法目標檢測示意圖Fig.3 Schematic of object detection based on YOLO v5 algorithm
YOLO v5算法是一種基于YOLO v3-SPP和YOLO v4的網(wǎng)絡(luò)框架,包含YOLO v5s、YOLO v5m、YOLO v5x、YOLO v5l 4個版本[16]。YOLO v5網(wǎng)絡(luò)模型主要由Input、Backbone、Neck、Prediction 4個模塊組成,Input模塊用于實現(xiàn)交互行為圖像的輸入、Backbone模塊用于實現(xiàn)交互行為圖像特征提取、Neck模塊用于實現(xiàn)交互行為圖像特征融合、Prediction模塊用于實現(xiàn)交互行為位置預(yù)測[17]。YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖4所示。
圖4 YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 YOLO v5 network model structural sketch
在輸入端,通過使用Mosaic數(shù)據(jù)增強方法豐富數(shù)據(jù)表征,采用GIOU損失函數(shù)(Generalized_IOU_NM)預(yù)測篩選框,并引入含有Focus結(jié)構(gòu)和CSP結(jié)構(gòu)的基準網(wǎng)絡(luò)[18]。其中,F(xiàn)ocus結(jié)構(gòu)主要用于完成切片操作,使交互行為特征提取更加充分,有效減少下采樣過程數(shù)據(jù)的丟失[19]。CSP結(jié)構(gòu)主要用以降低計算瓶頸和內(nèi)存開銷,利用CSP優(yōu)化核心網(wǎng)絡(luò)可提高模型檢測性能,增強卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習能力,充分減少計算量和推理時間。在Backbone層和末端Neck輸出層之間引入FPN+PAN結(jié)構(gòu),可有效提升推理速度[20]。
考慮到豬場實際生產(chǎn)條件的限制,為便于經(jīng)產(chǎn)母豬發(fā)情行為識別所需的軟硬件部署。本研究在YOLO v5s網(wǎng)絡(luò)的基礎(chǔ)上,對模型進行結(jié)構(gòu)化剪枝,以充分降低模型的復(fù)雜度,在保證模型識別精度的同時,提高模型的識別速度[21]。模型通道剪枝流程如圖5所示,主要包括稀疏訓(xùn)練、通道剪枝、模型微調(diào)3個過程[22]。
圖5 模型通道剪枝流程 Fig.5 Channel level pruning of model
為了縮短卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間,在較短的時間內(nèi)得到最佳模型,本文在YOLO v5s網(wǎng)絡(luò)的批量歸一化層(Batch normalization, BN)加入超參數(shù)γ和ρ[23],采用縮放與平移兩種操作對通道數(shù)據(jù)進行歸一化處理,以學(xué)習神經(jīng)網(wǎng)絡(luò)的特征分布,其計算方法為
(1)
式中Sin——BN層輸入
Sout——BN層輸出
μA——樣本數(shù)據(jù)的均值
σA——樣本數(shù)據(jù)的標準差
p——避免除數(shù)為0時所使用的微小正數(shù)
在BN層的各通道加入尺寸因子,同時在損失函數(shù)中引入懲罰項,與網(wǎng)絡(luò)權(quán)重聯(lián)合訓(xùn)練得到稀疏網(wǎng)絡(luò)的尺寸因子γ[24],其計算公式為
(2)
式中L——添加正則化懲罰項的損失函數(shù)
l1——原始網(wǎng)絡(luò)的損失函數(shù)
λ——平衡因子
g(γ)——縮放因子的損失函數(shù)
u——所有剪枝通道的集合
式(2)第2項為L1正則化(L1-Normalization),用于降低模型的復(fù)雜度。當網(wǎng)絡(luò)權(quán)值W接近0時,即得到稀疏網(wǎng)絡(luò),最后進行模型微調(diào),目的是挖掘神經(jīng)網(wǎng)絡(luò)的潛在性能[25]。BN層調(diào)整流程如圖6所示。
圖6 BN層通道剪枝示意圖Fig.6 Diagram of batch normalization layer channel sparse
在仿生公豬試情場景下,當母豬接近仿生公豬或母豬部分遮擋公豬時,由于交并比(Intersection over union,IOU)較大,經(jīng)過非極大抑制處理后,只剩下單一檢測框,在一定程度上增加了漏檢概率[26]。針對以上問題,本文在非極大值抑制(Non-maximum suppression,NMS)部分,采用DIOU非極大值抑制(Distance_IOU_NMS)代替GIOU非極大值抑制(Generalized_IOU_NMS),在預(yù)測框與真實框重疊區(qū)域的判定基礎(chǔ)上,增加對目標框中心點歐氏距離的計算。當仿生公豬與母豬目標框出現(xiàn)IOU較大、中心距離也較大時,判定為兩個目標,以提升模型的檢測精度[27]。其中,DIOU計算公式為
(3)
式中DIOU——距離交并比
IOU——交并比
d——目標框之間的中心距
c——目標框最小外接矩形的對角距離
DIOU_NMS的處理邏輯為
(4)
式中si——分類評價得分
ε——非極大值抑制閾值
DIOU_NMS能夠?qū)⒅丿B面積與目標預(yù)測框中心距綜合考慮,可較為精確地篩選目標框。
本文評價指標分為2部分,第1部分為交互行為識別結(jié)果評價,使用模型大小、模型訓(xùn)練時間、平均精確率、召回率、F1值、單幅圖像平均檢測時間、單幀視頻平均檢測時間等指標評估模型的檢測性能[28]。第2部分為發(fā)情檢測結(jié)果評價,使用錯誤率、靈敏度、特異性、準確率4個指標評估發(fā)情測試試驗效果[29]。
在完成網(wǎng)絡(luò)的調(diào)整后,將建立的數(shù)據(jù)集輸入至優(yōu)化后的網(wǎng)絡(luò)進行訓(xùn)練,并采用圖像批量檢測與視頻檢測兩種方式對訓(xùn)練完成的模型進行測試。
3.1.1試驗平臺
模型依賴于Pytorch 1.6深度學(xué)習框架,試驗平臺處理器型號為Intel CoreTM i7-11700k,顯卡型號為NVIDIA GTX3090,顯卡內(nèi)存為24 GB,在Ubuntu 18.04操作系統(tǒng)上配置Python 3.8、CUDA 11.4、OpenCV 4.5.1等深度學(xué)習環(huán)境。
3.1.2模型訓(xùn)練
在模型訓(xùn)練前,統(tǒng)一各個網(wǎng)絡(luò)模型的參數(shù),其中迭代輪次設(shè)置為160個,批量大小設(shè)置為16,初始學(xué)習率設(shè)置為0.01,循環(huán)學(xué)習率設(shè)置為0.1,初始沖量設(shè)置為0.98,初始權(quán)重衰減系數(shù)設(shè)置為0.000 5,每個迭代周期保存一次模型,選取最優(yōu)的模型作為交互行為識別模型。訓(xùn)練160個迭代輪次的分類損失值、邊框損失值和目標損失值曲線如圖7所示。
圖7 分類損失值、邊框損失值和目標損失值曲線Fig.7 Results of classification loss, bounding box loss and object loss
由圖7可知,優(yōu)化后的模型YOLO v5gs收斂速度較YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5x 4個模型更快, 160個迭代輪次的時間開銷較YOLO v5s模型縮短36 min,較YOLO v5x模型縮短164 min,改進后的模型內(nèi)存占用量僅5.7 MB,較改進前縮小60%,更易于部署與使用。優(yōu)化后的模型與原始模型的精確率、召回率、平均精度均值(mAP)曲線如圖8所示。
圖8 模型測試效果Fig.8 Results of model tested
圖8中,平均精度均值(mAP)表示所有類別平均精度的平均值,本文類別數(shù)為3。mAP0.5表示交并比閾值為0.5時的平均精度均值,mAP0.5∶0.95表示交并比閾值在[0.5,0.95]之間每隔0.05取1次mAP,然后取得的平均值。由圖7、8可知,模型輕量化后,在保證精度基本不下降的同時,能夠有效提高檢測速度,選取160個迭代輪次中最優(yōu)權(quán)重模型作為發(fā)情行為識別模型。
3.1.3模型測試
采用圖像批量檢測與視頻檢測兩種方式對模型進行測試。選取978幅圖像進行檢測,改進后的模型圖像平均檢測時間僅為2 ms,檢測速度較YOLO v5s提升15%,推理時間縮短0.3 ms。為進一步說明改進后的模型在交互行為識別的適用性,本文將改進后的模型與同為單次目標檢測器(one stage)的EfficientDet-D0目標檢測算法以及兩階段目標檢測器(two stage)的Faster R-CNN進行對比,交并比閾值均設(shè)置為0.5,模型效果如 表1 所示,根據(jù)對比,改進后的模型識別效果優(yōu)于上述兩種算法。
表1 模型效果對比Tab.1 Comparison of model effect
選取9月28日15:08—15:11的視頻數(shù)據(jù)檢測該模型的識別性能。模型對視頻數(shù)據(jù)檢測實際上是對連續(xù)圖像序列進行檢測,模型默認每25 ms獲取視頻流中圖像,然后讀取每一幀要檢測的圖像,將圖像轉(zhuǎn)化為OpenCV可顯示的BGR格式,然后再輸入模型進行檢測,導(dǎo)致視頻檢測速度比圖像檢測速度慢,單幀圖像檢測時間為6 ms。結(jié)合豬場實際應(yīng)用場景,此模型的檢測速度能夠滿足實時檢測的要求,視頻數(shù)據(jù)的檢測結(jié)果如圖9所示,可實時顯示檢測進度、圖像尺寸、目標類別、檢測耗時等信息。
圖9 母豬交互行為視頻檢測結(jié)果Fig.9 Recognition results of video of sows’ interactive behavior
受舍內(nèi)光線變化影響,存在極少量的漏檢和誤檢(約0.5%),如圖10所示。由圖10可以看出,模型能夠?qū)δ肛i目標準確識別,但由于曝光不足、過度曝光等原因,造成部分仿生公豬目標和交互行為未識別,但該情況一般出現(xiàn)因光線變化,導(dǎo)致圖像在三通道與單通道短暫過渡期間。研究進一步將篩選出的900幅光照較差的圖像進行測試,交互行為準確率較正常光線條件下低1.5個百分點,由此可見,光線對模型檢測交互行為的影響較小。
圖10 模型性能的影響因素Fig.10 Influencing factors of model performance
根據(jù)檢測模型輸出的各個時刻的交互狀態(tài),對經(jīng)產(chǎn)母豬的交互頻率進行分析。交互時長統(tǒng)計 3 min 內(nèi)每頭母豬發(fā)情期與非發(fā)情期交互時長,計算36頭母豬發(fā)情期與非發(fā)情期的平均交互頻率。
從表2可知,母豬發(fā)情期與非發(fā)情期與仿生公豬的交互頻率和交互時長均發(fā)生顯著的變化。當母豬由非發(fā)情期進入發(fā)情期時,平均交互時長普遍增加3.2~4.4倍,發(fā)情時每分鐘平均交互時長高達17.21 s;交互頻率普遍增加2.3~3.7倍,發(fā)情時平均交互頻率高達5.61次/min,利用SPSS軟件對交互時長和頻率進行克魯斯卡爾-沃利斯檢驗,均表現(xiàn)出顯著性差異(P<0.001)[30]。
表2 發(fā)情期與非發(fā)情期交互行為分析Tab.2 Analysis of interaction between estrus and non-estrus
通過計算交互時長和頻率的皮爾遜相關(guān)系數(shù)可知,兩者具有極強相關(guān)關(guān)系(R=0.86)。本文選用交互時長對母豬發(fā)情行為進行研究,選取96個視頻片段,視頻時長均為3 min,其中包含46組非發(fā)情期
母豬行為數(shù)據(jù)和50組發(fā)情期母豬行為數(shù)據(jù),模型對行為數(shù)據(jù)每秒檢測1次,單個視頻母豬交互時間統(tǒng)計結(jié)果如圖11所示。
圖11 交互時間統(tǒng)計結(jié)果Fig.11 Time statistics of interactive behavior
根據(jù)圖11的統(tǒng)計分布結(jié)果,分別以交互時間11、14、17、20、23 s作為是否發(fā)情的判定閾值,計算發(fā)情識別結(jié)果,以錯誤率、靈敏度、特異性、準確率作為評價指標,其中錯誤率用以估算未發(fā)情的母豬被錯誤識別為發(fā)情母豬的比率,數(shù)值越小,表示假報警的次數(shù)越少;靈敏度指從發(fā)情樣本中檢出的發(fā)情母豬的比率,數(shù)值越高,發(fā)情檢測效果越好;特異性指從未發(fā)情樣本中檢出的未發(fā)情母豬的比率,數(shù)值越高,發(fā)情檢測效果越好,由表3可知,以20 s作為發(fā)情檢測閾值時,發(fā)情檢測錯誤率為10.0%,靈敏度為90.0%,特異性為89.1%,準確率為89.6%。
表3 不同判定時間測試結(jié)果Tab.3 Test results of different judgment times %
為進一步測試該閾值下光照條件對發(fā)情檢測的影響,試驗挑選包含12組(4組發(fā)情期、8組非發(fā)情期)存在光照較差的3 min視頻數(shù)據(jù),并與人工測試結(jié)果對比,測試結(jié)果表明:以20 s作為發(fā)情檢測閾值時,模型判定結(jié)果與人工檢測發(fā)情結(jié)果相同,研究表明:由光線導(dǎo)致的交互行為誤檢與漏檢對發(fā)情判定影響較小。
(1)采用深度學(xué)習的方法識別檢測母豬與仿生公豬的交互行為,平均精確率達97.8%,單幅圖像檢測時間僅1.7 ms,單幀視頻檢測時間為6.0 ms,可避免人工查情對母豬所造成的應(yīng)激,為后續(xù)母豬發(fā)情檢測奠定基礎(chǔ)。
(2)以20 s作為發(fā)情判定標準時,發(fā)情檢測錯誤率為10.0%、靈敏度為90.0%、特異性為89.1%、準確率為89.6%。在保證高靈敏度的同時,降低了檢測的錯誤率,提高了檢測的特異性和準確率。