劉亞楠,沈明霞,劉龍申,陳佳,張偉
(南京農(nóng)業(yè)大學(xué)工學(xué)院/江蘇智慧牧業(yè)裝備科技創(chuàng)新中心,江蘇 南京 210031)
隨著生豬規(guī)?;B(yǎng)殖的發(fā)展,母豬哺乳行為時(shí)長(zhǎng)監(jiān)測(cè)已成為研究熱點(diǎn)。實(shí)時(shí)監(jiān)測(cè)母豬的哺乳行為,精確記錄仔豬的哺乳時(shí)間段和哺乳仔豬數(shù)量,不僅能提高仔豬的成活率,而且能反映母豬的體況和后續(xù)繁育能力[1]。甘海明等[2]通過 Mask R-CNN和ResNet101+FPN網(wǎng)絡(luò)輸入圖像序列,識(shí)別母豬姿態(tài),確定母豬關(guān)鍵點(diǎn)并根據(jù)關(guān)鍵點(diǎn)框選哺乳行為感興趣區(qū)域,結(jié)合時(shí)空特征信息進(jìn)行母豬哺乳行為的識(shí)別。薛月菊等[3]運(yùn)用光流法,結(jié)合DeepLab卷積網(wǎng)絡(luò)對(duì)提取的視頻關(guān)鍵幀進(jìn)行分割,定位母豬哺乳感興趣區(qū)間,設(shè)置識(shí)別單元提取仔豬運(yùn)動(dòng)分布指數(shù)和仔豬運(yùn)動(dòng)特征等,實(shí)現(xiàn)母豬哺乳行為的自動(dòng)識(shí)別。機(jī)器視覺多運(yùn)用在監(jiān)測(cè)豬只生理情況[4-7],評(píng)價(jià)豬只福利水平[8-11]方面。Lao等[12]獲取哺乳母豬圖像的深度數(shù)據(jù),運(yùn)用像素平均值的方法,提取出目標(biāo)哺乳母豬,將其身體劃分為不同區(qū)域,通過計(jì)算區(qū)域深度平均值,達(dá)到識(shí)別哺乳母豬姿態(tài)(站、坐、跪和臥等)的目的。Nasirahmadi等[13]利用背景減法將目標(biāo)豬只從二維圖像提取出,通過對(duì)豬只邊界和凸包的定位與計(jì)算,將側(cè)臥和胸臥兩種姿態(tài)的邊界和凸包面積周長(zhǎng)輸入線性SVM分類器,對(duì)豬只姿態(tài)進(jìn)行監(jiān)測(cè)識(shí)別,自動(dòng)評(píng)分分類準(zhǔn)確度達(dá)94%以上,監(jiān)測(cè)準(zhǔn)確度達(dá)94%。Zhang等[14]將SSD和MobileNet進(jìn)行結(jié)合,研究出一種基于深度學(xué)習(xí)的母豬行為實(shí)時(shí)監(jiān)測(cè)算法SBDA-DL,該算法通過刪除SSD網(wǎng)絡(luò)模型的最后2個(gè)卷積層,將模型冗余網(wǎng)絡(luò)部分壓縮,在對(duì)母豬飲水、排尿和爬跨3種行為識(shí)別的準(zhǔn)確率不變的前提下,監(jiān)測(cè)速度達(dá)每秒7幀,平均精度均值(mean average precision,mAP)綜合可達(dá) 94.76%,符合生產(chǎn)所需精確性和實(shí)時(shí)性。
YOLOv5靈活更高,v5.0版本相較于上一版本增加了一個(gè)輸出層P6,新增檢驗(yàn)層可通過訓(xùn)練獲得更高的精度。YOLOv5的Bottleneck數(shù)決定其版本,采用了類似EfficienctNet的channel和layer控制因子來(lái)實(shí)現(xiàn)版本的變化,能夠根據(jù)應(yīng)用場(chǎng)景選取合適大小的模型[15-16]。因此根據(jù)豬廠試驗(yàn)環(huán)境與背景,此次研究選擇YOLOv5m版本,更加適合模型在規(guī)?;i廠的落地。
仔豬在母豬乳房的拱乳行為會(huì)刺激母豬的哺乳區(qū)域快速、節(jié)律性抽動(dòng),同時(shí)帶動(dòng)母豬四肢節(jié)律性抽動(dòng),進(jìn)而母豬放乳完成哺乳行為。實(shí)踐與研究證明,母豬的側(cè)臥姿態(tài)、四肢節(jié)律性快速抽動(dòng)以及仔豬的數(shù)量、仔豬與母豬間的距離、吃奶仔豬數(shù)量比例是母豬哺乳的5個(gè)判別關(guān)鍵點(diǎn),具備通過機(jī)器視覺監(jiān)測(cè)母豬哺乳行為及時(shí)間段的可行性,提高仔豬存活率與健康值。監(jiān)測(cè)數(shù)據(jù)還可側(cè)面反映母豬母性、哺乳意愿及產(chǎn)后狀況,對(duì)其后續(xù)飼喂和配種等生長(zhǎng)繁育提供指導(dǎo)意見。
1.1.1 數(shù)據(jù)采集試驗(yàn)在江蘇省宿遷市正邦豬場(chǎng)進(jìn)行,選取17 m × 19 m的母豬產(chǎn)房2間,每間產(chǎn)房放置2.2 m × 1.8 m的分娩欄6個(gè)。每個(gè)限位欄內(nèi)1頭母豬、8~13頭仔豬。每個(gè)分娩欄正上方約2.8 m處安裝1個(gè)??低晹z像頭(DS-2CD3135F-l 型),分辨率為2 048像素 × 1 536像素,攝像機(jī)拍攝到的畫面能覆蓋整個(gè)母豬限位欄,拍攝到的視頻數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)硬盤錄像機(jī)中。視頻數(shù)據(jù)自母豬分娩結(jié)束立刻采集,24 h 持續(xù)錄制,仔豬保溫箱內(nèi)保育燈白天部分開啟,夜晚全部開啟,采集數(shù)據(jù)均為3通道彩色圖像。
1.1.2 數(shù)據(jù)樣本庫(kù)建立將數(shù)據(jù)集中的母豬姿態(tài)劃分為側(cè)臥、站立和坐立,每種姿態(tài)有3種燈光數(shù)據(jù)類型(圖1);對(duì)于仔豬類內(nèi)粘連,采用貝葉斯錯(cuò)誤率作為指標(biāo)[17],根據(jù)人眼可識(shí)別的標(biāo)準(zhǔn),標(biāo)注圖片內(nèi)仔豬;限位欄遮擋仔豬部分軀干,但從頭尾可識(shí)別出自同一頭仔豬,將頭尾進(jìn)行框選;保育箱或限位欄遮擋頭或尾致一方不可見,則框選出仔豬可見部分。母豬的3種姿態(tài)[18]、放乳特征、哺乳行為[19]的定義見表1。
表1 母豬3種姿態(tài)、放乳特征、哺乳行為定義
圖1 3種燈光數(shù)據(jù)類型
1.1.3 數(shù)據(jù)集制作1)編寫python腳本文件將采集到的視頻數(shù)據(jù)每隔2 s截取1張圖片保存為.jpg格式,清洗數(shù)據(jù)集,刪除豬只遮擋嚴(yán)重、攝像頭有異物等無(wú)效數(shù)據(jù),得到有效圖片7 564張;2)使用開源標(biāo)注軟件LabelImg對(duì)圖片內(nèi)仔豬和母豬進(jìn)行框選標(biāo)注,生成對(duì)應(yīng).xml文件進(jìn)行保存;3)為減輕過擬合,增加模型魯棒性,將已標(biāo)注過的圖片進(jìn)行數(shù)據(jù)增強(qiáng)(data augmentation),采用反轉(zhuǎn)、平移和一定范圍內(nèi)對(duì)飽和度、曝光度進(jìn)行調(diào)節(jié)的處理,得到母豬側(cè)臥姿態(tài)4 884張(含標(biāo)注仔豬),站立、坐立姿態(tài)各4 883張(含標(biāo)注仔豬);4)將標(biāo)注完成的圖片按照8∶1∶1[20-21]的比例劃分為3個(gè)數(shù)據(jù)集,分別為訓(xùn)練集11 720張、驗(yàn)證集 1 465 張、測(cè)試集1 465張。依次用于對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練的訓(xùn)練集,擬合數(shù)據(jù)樣本,確保訓(xùn)練集
數(shù)據(jù)量充足,增加模型魯棒性;驗(yàn)證集用于一定范圍內(nèi)調(diào)整模型超參數(shù),及時(shí)調(diào)整模型出現(xiàn)的異?,F(xiàn)象;測(cè)試集用來(lái)測(cè)試訓(xùn)練完成后的模型對(duì)新數(shù)據(jù)的預(yù)測(cè)能力,評(píng)估模型的泛化性。
1.2.1 模型網(wǎng)絡(luò)結(jié)構(gòu)采用YOLOv5目標(biāo)監(jiān)測(cè)網(wǎng)絡(luò)模型(圖2),改進(jìn)特征提取網(wǎng)絡(luò)與Neck部分,根據(jù)預(yù)測(cè)端網(wǎng)格大小劃分圖像,輸入端采用Mosaic豐富檢測(cè)背景,且自適應(yīng)的計(jì)算最佳毛框值大大提升推理速度[22]。
圖2 YOLOv5網(wǎng)絡(luò)模型架構(gòu)圖
1.2.2 模型訓(xùn)練與測(cè)試訓(xùn)練共迭代30 000次;將batch值設(shè)置為64,使用隨機(jī)梯度下降法mini-batch訓(xùn)練模型;初始學(xué)習(xí)率為0.001,學(xué)習(xí)策略為步進(jìn)型,動(dòng)量值為0.9,權(quán)值衰減速率設(shè)為0.000 5。迭代學(xué)習(xí)率衰減公式為:
(1)
式中:lrn代表第n次迭代的學(xué)習(xí)率;lrinitial代表學(xué)習(xí)率初始值;decay代表衰減因子。
1.2.3 模型評(píng)價(jià)本文結(jié)合精確率(precision,P)、召回率(recall,R)、精度均值(average precision,AP)和平均精度均值(mean average precision,mAP)4項(xiàng)指標(biāo),綜合對(duì)模型進(jìn)行評(píng)價(jià)。P評(píng)價(jià)模型對(duì)仔豬(正樣本)的識(shí)別能力;R評(píng)價(jià)模型對(duì)仔豬的涵蓋能力;AP評(píng)價(jià)模型對(duì)監(jiān)測(cè)目標(biāo)的識(shí)別能力和涵蓋能力,是對(duì)PR曲線求積分過程;mAP評(píng)價(jià)模型對(duì)所有類別的監(jiān)測(cè)性能。計(jì)算公式如下:
(2)
(3)
(4)
(5)
式中:TP為真正樣本(真陽(yáng)性)數(shù);FP為假正樣本(假陽(yáng)性)數(shù);FN為假負(fù)樣本(假陰性)數(shù);C為所測(cè)目標(biāo)類別數(shù);k為類別序號(hào)。
1.2.4 讀取感興趣區(qū)域面積和位置在識(shí)別出母豬姿態(tài)為側(cè)臥時(shí),結(jié)合母豬預(yù)測(cè)框面積變化大小和四肢抽動(dòng)頻率、母豬與仔豬的坐標(biāo)值和閾值內(nèi)仔豬數(shù)量,確定母豬哺乳行為的發(fā)生。預(yù)測(cè)邊框的輸出公式[23]為:
(6)
式中:bx、by、bw、bh為預(yù)測(cè)邊界框在特征圖(feature map)的中心點(diǎn)坐標(biāo)和寬高;tx、ty、tw、th為相對(duì)于先驗(yàn)框的偏移量,即預(yù)測(cè)輸出;(cx,cy)為柵格坐標(biāo);pw、py為先驗(yàn)框相對(duì)于特征圖的寬、高。通過母豬和仔豬的預(yù)測(cè)框中心點(diǎn)坐標(biāo)值,計(jì)算母豬與仔豬之間的距離,輸出小于設(shè)定的距離閾值的仔豬數(shù)量。
小波變換擅長(zhǎng)分析瞬時(shí)時(shí)變信號(hào),允許更加精確地局部描述以及信號(hào)特征的分離,適用于大部分信號(hào),尤其是瞬時(shí)信號(hào),符合母豬預(yù)測(cè)框面積變化的特點(diǎn)。
圖3中L[n]是低通濾波器(low pass filter)系數(shù),H[n] 是高通濾波器(high pass filter)系數(shù)。
圖3 離散小波變換的濾波器分解
根據(jù)小波特性,本研究選擇Daubechies小波族的db4小波,利用低通濾波器L[n]對(duì)輸入信號(hào)f[n]進(jìn)行卷積,得到輸出序列LO[n],將高通濾波器H[n]作用在輸入離散信號(hào)序列f[n]上,即將f[n]與H[n]進(jìn)行卷積操作,得到HO[n]即:
LO[n]=f[n]*L[n]
(7)
HO[n]=f[n]*H[n]
(8)
式中:符號(hào)*表示卷積運(yùn)算符,f[n]*L[n]和f[n]*H[n]的定義如下:
(9)
(10)
公式(10)物理含義為濾波器L[n]和H[n]對(duì)輸入離散信號(hào)序列f[n]的響應(yīng)LO[n]和HO[n],等于每一樣值產(chǎn)生的響應(yīng)之和在各處由f(m)進(jìn)行加權(quán)。
模型訓(xùn)練為臺(tái)式機(jī),搭載2塊 Xeon Gold 5118 CPU,主頻 2.3 GHz,內(nèi)存 64 G,顯卡配置為 NVIDIA Quadro P4000,內(nèi)存為8 GB,操作系統(tǒng)為 Ubuntu16.04,模型訓(xùn)練時(shí)間約78 h。
2.2.1 YOLOv5判定哺乳時(shí)長(zhǎng)試驗(yàn)訓(xùn)練迭代35 000次,在30 000次模型收斂效果最佳。在測(cè)試集上對(duì)方法的有效性進(jìn)行驗(yàn)證,測(cè)試集包括母豬、母豬3種姿態(tài)和仔豬,各類別AP均超過87%,識(shí)別性能良好。對(duì)于仔豬的識(shí)別,由于仔豬趨暖避寒、親母等生存習(xí)性,堆疊現(xiàn)象嚴(yán)重,而且初生仔豬個(gè)頭較小,趴臥在母豬乳房附近易埋于母豬的四肢,攝像頭安裝于限位欄正上方,造成仔豬的硬性遮擋等,導(dǎo)致仔豬的誤監(jiān)測(cè),降低其AP。迭代30 000次各類別精度均值如表2所示。
表2 YOLOv5數(shù)據(jù)集識(shí)別效果
為確定母豬哺乳標(biāo)志各參數(shù),進(jìn)而擬合哺乳時(shí)間段。隨機(jī)選擇6頭母豬的6段測(cè)試視頻數(shù)據(jù)輸入模型,輸出每段測(cè)試視頻中母豬預(yù)測(cè)框面積和對(duì)應(yīng)的仔豬的數(shù)量、位置及距離母豬規(guī)定閾值內(nèi)的仔豬數(shù)比例離散圖,并轉(zhuǎn)化為數(shù)據(jù)表格,同時(shí)增設(shè)人工觀察記錄每段視頻母豬哺乳時(shí)間段進(jìn)行統(tǒng)計(jì),如表3所示。測(cè)試視頻段02輸出的離散圖如圖4所示。
表3 測(cè)試視頻中哺乳行為判別點(diǎn)統(tǒng)計(jì)(母豬姿態(tài):側(cè)臥)
圖4 02號(hào)測(cè)試視頻的哺乳判別關(guān)鍵點(diǎn)
綜合母豬預(yù)測(cè)框面積、母豬姿態(tài)(坐立、側(cè)臥、站立)、仔豬數(shù)量、距離母豬閾值內(nèi)仔豬數(shù)及其比例5個(gè)要素。當(dāng)母豬姿態(tài)為側(cè)臥,如圖5-A所示,選取適當(dāng)直線對(duì)輸出的母豬預(yù)測(cè)框面積圖進(jìn)行擬合,如圖5-B所示,建立母豬側(cè)臥時(shí)預(yù)測(cè)框面積圖與直線的對(duì)應(yīng)關(guān)系,超出2條直線外的部分定義為疑似哺乳行為帶動(dòng)四肢抽動(dòng)導(dǎo)致的預(yù)測(cè)框面積變化,反之,為母豬側(cè)臥時(shí)非哺乳的正?;顒?dòng)情況。
經(jīng)試驗(yàn),取直線l=s2±2s,確定閾值范圍,根據(jù)直線截取范圍繪制對(duì)應(yīng)的區(qū)間分布圖,判斷母豬哺乳行為的發(fā)生,將離散圖的幀率換算為時(shí)間輸出母豬哺乳時(shí)間段,如圖5-C所示。
圖5 哺乳時(shí)間段區(qū)間擬合過程
2.2.2 YOLOv5結(jié)合db4小波判定哺乳時(shí)長(zhǎng)利用高通濾波器H[n]和低通濾波器L[n]對(duì)輸出的母豬預(yù)測(cè)框(圖4)序列進(jìn)行卷積,對(duì)輸出序列依次進(jìn)行降采樣,得到對(duì)應(yīng)的低頻分量圖6-A和高頻分量圖6-B。直線定義為l=s2±2s,超出閾值范圍以外的部分定義為疑似哺乳行為帶動(dòng)四肢抽動(dòng)導(dǎo)致的預(yù)測(cè)框面積變化,反之,為母豬側(cè)臥時(shí)非哺乳的正?;顒?dòng)情況。由圖6-B得到對(duì)應(yīng)的哺乳時(shí)間段預(yù)測(cè)分布圖7-A,由母豬哺乳定義可知,一次哺乳行為最短持續(xù)60 s,合并60 s內(nèi)的哺乳時(shí)間段,對(duì)圖7-A中的哺乳時(shí)間段進(jìn)行合并優(yōu)化,得到并輸出圖7-B的哺乳監(jiān)測(cè)時(shí)間段。
圖6 母豬預(yù)測(cè)框面積低頻(A)和高頻(B)分量折線
圖7 母豬哺乳時(shí)間段預(yù)測(cè)(A)和優(yōu)化(B)
2.2.3 結(jié)合小波變換前、后對(duì)比YOLOv5模型在監(jiān)測(cè)母豬、母豬姿態(tài)和仔豬方面達(dá)到較為理想的效果,但由于將母豬預(yù)測(cè)框面積作為主要分析來(lái)源,離散信號(hào)復(fù)雜程度高,圖5-B中閾值的設(shè)定受基線影響頗大,基線的浮動(dòng)導(dǎo)致均值方差共同變化,使設(shè)定的閾值波動(dòng),影響輸出哺乳時(shí)間段的科學(xué)性,單一憑借此方法缺少說(shuō)服力。
為解決圖5-B中基線的上下浮動(dòng)對(duì)均值方差的影響,采用小波變換中的高低頻濾波器對(duì)YOLOv5輸出的母豬預(yù)測(cè)框面積信號(hào)折線圖進(jìn)行濾波處理,避免使用直接采集的原始數(shù)據(jù)造成的數(shù)據(jù)噪聲處理復(fù)雜,影響監(jiān)測(cè)實(shí)時(shí)等問題,減少分析難度,提高監(jiān)測(cè)速度與精確度。
低頻分量圖6-A是對(duì)整幅圖像強(qiáng)度的綜合度量,在此次研究中更適合描述母豬輪廓的變換趨勢(shì);高頻分量圖6-B對(duì)應(yīng)圖像變化劇烈的部分,也就是圖像的邊緣(輪廓)或者噪聲以及細(xì)節(jié)部分,更適合描述母豬預(yù)測(cè)框面積的變化細(xì)節(jié),因不受基線的影響(基線趨近于固定值0),閾值穩(wěn)定,哺乳時(shí)間段的推理更加精準(zhǔn)。表4為結(jié)合小波變換后哺乳時(shí)間段準(zhǔn)確度對(duì)比。
表4 db4小波變換前、后母豬哺乳時(shí)長(zhǎng)監(jiān)測(cè)結(jié)果對(duì)比
1)本文基于機(jī)器視覺提出一種母豬哺乳行為和時(shí)長(zhǎng)的自動(dòng)監(jiān)測(cè)模型算法,利用小波變換的高頻分量,準(zhǔn)確、快速地監(jiān)測(cè)母豬的哺乳行為、哺乳時(shí)間段、哺乳時(shí)長(zhǎng)及吃奶仔豬數(shù)量。
2)單一以YOLOv5識(shí)別母豬哺乳行為和時(shí)長(zhǎng)的平均準(zhǔn)確率為93.52%,對(duì)清晰度為720P的視頻平均監(jiān)測(cè)速度為23.89 f·s-1;加入db4小波后的模型識(shí)別平均準(zhǔn)確率為96.04%,提高2.52%,對(duì)清晰度為720P的視頻平均監(jiān)測(cè)速度為19.35 f·s-1,對(duì)比未加入db4小波前視頻監(jiān)測(cè)速度稍有下降,但均可滿足豬場(chǎng)監(jiān)測(cè)需求。
3)非洲豬瘟的蔓延導(dǎo)致養(yǎng)殖場(chǎng)防疫嚴(yán)格,對(duì)試驗(yàn)的數(shù)據(jù)采集造成不可忽視的影響。為增強(qiáng)模型的泛化性與魯棒性,還需進(jìn)行不同環(huán)境場(chǎng)景下模型的訓(xùn)練,以提升模型多場(chǎng)景下的應(yīng)用價(jià)值。