李 娜,任昊宇,任振輝
(1.河北農(nóng)業(yè)大學(xué) 機(jī)電工程學(xué)院, 河北 保定 071001;2.河北農(nóng)業(yè)大學(xué) 現(xiàn)代科技學(xué)院,河北 保定 071001)
隨著信息技術(shù)的飛速發(fā)展,畜牧業(yè)也由傳統(tǒng)的養(yǎng)殖管理向著信息化、自動(dòng)化的方向發(fā)展。精準(zhǔn)畜牧業(yè)(Precision livestock farming, PLF)定義為使用過(guò)程工程的原理和技術(shù)應(yīng)用于畜牧業(yè),自動(dòng)監(jiān)測(cè)、建模和管理動(dòng)物生產(chǎn)[1]。其核心是實(shí)時(shí)、自動(dòng)和持續(xù)的監(jiān)測(cè)畜禽的行為,以改善其健康狀況和福利狀況,也為長(zhǎng)期的監(jiān)控產(chǎn)品質(zhì)量提供最好的保證。目前,視頻監(jiān)控越來(lái)越多地應(yīng)用在畜禽養(yǎng)殖中,由于其可以非入侵無(wú)接觸的長(zhǎng)期監(jiān)測(cè)動(dòng)物,與可穿戴設(shè)備如耳標(biāo)、RFID等相比,不會(huì)影響動(dòng)物的活動(dòng),廉價(jià)經(jīng)濟(jì),并且隨著計(jì)算機(jī)視覺(jué)技術(shù)的快速發(fā)展,使得用攝像頭監(jiān)測(cè)動(dòng)物行為、自動(dòng)分析動(dòng)物的福利和健康成為可能[2-5]。
隨著深度學(xué)習(xí)理論的快速發(fā)展,眾多研究者將其應(yīng)用在畜禽養(yǎng)殖中,尤其在復(fù)雜場(chǎng)景下識(shí)別豬、牛的行為,具有良好的性能[6-9]。雞只識(shí)別方面,王娟等[10]基于YOLO v3識(shí)別了本交籠養(yǎng)雞的喝水(86.88%)、站立(94.57%)、吃食(93.10%)、交配(94.72%)、打架(88.67%)和展翅(92.02%)行為?;谏疃葘W(xué)習(xí)理論的畜禽行為識(shí)別應(yīng)用在豬、牛等大型動(dòng)物上較多,由于雞只的個(gè)體小、數(shù)量大,應(yīng)用深度學(xué)習(xí)實(shí)現(xiàn)雞只個(gè)體行為識(shí)別的研究較少。
在眾多深度學(xué)習(xí)算法中,YOLO系列算法[11-12]是目前運(yùn)行速度快、多目標(biāo)檢測(cè)準(zhǔn)確率較高的算法,符合實(shí)時(shí)處理的要求。本試驗(yàn)以YOLO v4目標(biāo)檢測(cè)算法為基礎(chǔ),旨在研究散養(yǎng)雞群在雞舍中的行為,實(shí)現(xiàn)對(duì)雞只采食、站立、趴臥、梳羽、啄羽和打架行為的實(shí)時(shí)、自動(dòng)監(jiān)測(cè)。
本試驗(yàn)于2019年8月27日到12月22日在河北省無(wú)極縣石家莊鑫農(nóng)機(jī)械有限公司河北農(nóng)業(yè)大學(xué)研究生實(shí)踐教育基地進(jìn)行;模擬林下養(yǎng)殖模式,使用1種長(zhǎng)寬高為3 m×1.95 m×1.95 m的可移動(dòng)雞舍,舍外圈定20 m2的戶(hù)外活動(dòng)范圍。研究對(duì)象為同批次3月齡蛋雞20只,飼養(yǎng)于可自由進(jìn)出戶(hù)外活動(dòng)區(qū)的雞舍內(nèi),每日于7:00—8:00、15:00—16:00間進(jìn)行喂食,雞只可自由采食、飲水、活動(dòng)。??低旵5C攝像頭安裝在雞舍內(nèi)屋角頂端,如圖1所示。試驗(yàn)期間攝像頭每天7:00—17:30采集雞群的活動(dòng),視頻分辨率1 920×1 080,幀率15 fps。
YOLO(You only look once)算法是1種 “onestage”的端到端目標(biāo)檢測(cè)算法,與R-CNN系列的“two-stage”相比,YOLO最大的特點(diǎn)是將物體類(lèi)別和物體位置用回歸的方法1次預(yù)測(cè),大大提高運(yùn)行速度,可以滿(mǎn)足實(shí)時(shí)處理的要求。
YOLO v4算法訓(xùn)練時(shí)采用Mosaic數(shù)據(jù)增強(qiáng)的方法,主干網(wǎng)絡(luò)采用全卷積神經(jīng)網(wǎng)絡(luò)CSPDarkNet53提取圖像特征,改進(jìn)的激活函數(shù)為Mish;為了增加網(wǎng)絡(luò)感受視野,Neck網(wǎng)絡(luò)使用SPP-block和PAN收集低級(jí)和高級(jí)特征圖進(jìn)行信息融合;Head仍然采用YOLO算法進(jìn)行物體類(lèi)別和位置的預(yù)測(cè)。此算法對(duì)目前CNN領(lǐng)域的最新算法和優(yōu)化策略做了大量實(shí)驗(yàn),使得使用單個(gè)1080 Ti或2 080 Ti的GPU就可以訓(xùn)練出快速、準(zhǔn)確的目標(biāo)檢測(cè)器,對(duì)于小目標(biāo)檢測(cè)也有不錯(cuò)的效果[13]。
本試驗(yàn)計(jì)算機(jī)配置:CPU Intel Core i7-9700,主頻 3 GHz,內(nèi)存32 GB,顯卡NVIDIA GeForce GTX 2080Ti, CUDA 版本10.1.120,CUDNN版本7.4.1,所有程序在 Windows 10 操作系統(tǒng)下進(jìn)行。
隨機(jī)選取不同日期不同時(shí)間段的7 988幅圖片作為數(shù)據(jù)集。使用LabelImg軟件,對(duì)雞只的采食、站立、趴臥、梳羽、啄羽和打架行為進(jìn)行標(biāo)注。其中包含采食行為32 017個(gè),站立行為42 336個(gè),趴臥行為19 171個(gè),梳羽行為7 414個(gè),啄羽行為566個(gè),打架行為363個(gè)。由于啄羽和打架行為偏少,對(duì)含有該行為的圖片進(jìn)行圖像亮度調(diào)整、剪裁、模糊化處理和添加噪聲等數(shù)據(jù)擴(kuò)充。最終,圖片總數(shù)10 239張,采食行為34 619個(gè),站立行為47 221個(gè),趴臥行為21 885個(gè),梳羽行為8 782個(gè),啄羽行為1 978個(gè),打架行為1 202個(gè),以提高行為檢測(cè)準(zhǔn)確度。
使用YOLO v4進(jìn)行模型訓(xùn)練,圖片resize為608×608,每次迭代訓(xùn)練樣本數(shù)64,批次32,迭代次數(shù)20 000,初始學(xué)習(xí)率0.001,在迭代次數(shù)達(dá)到15 000和18 000時(shí),學(xué)習(xí)率均下降1/10。通過(guò)K-mean算法對(duì)anchors參數(shù)進(jìn)行聚類(lèi),9個(gè)錨框分別為:(29,76),(36,100),(38,60),(40,58),(48,100),(56,146),(64,96),(77,105),(94,150)。
本文使用精確率P(Precision)、召回率R(recall)和F1值(F1-Score)來(lái)衡量模型性能,如公式(1)~(3)所示。
其 中,TP(True Positive):是 正 樣 本 并 且被預(yù)測(cè)為正樣本的個(gè)數(shù);FP(False Positive):是負(fù)樣本但是被預(yù)測(cè)為正樣本的個(gè)數(shù);FN(False Negtive):是正樣本被預(yù)測(cè)為負(fù)樣本的個(gè)數(shù)。
使用測(cè)試集共718幅圖像對(duì)模型進(jìn)行評(píng)估。各行為的PR曲線(xiàn)如圖2所示。
圖2 6種行為的PR曲線(xiàn)Fig.2 PR curves of six behaviors
平均精確率(AP)由高到低分別為采食96.67%,站立90.34%,梳羽82.01%,趴臥78.46%,打架67.14%,啄 羽63.38%,總 體mAP (Mean average precision)為79.67%。模型檢測(cè)置信度閾值為0.25時(shí),典型測(cè)試結(jié)果如圖3所示。
圖3 閾值為0.25時(shí)模型測(cè)試結(jié)果Fig.3 Model test results by 0.25 threshold
圖3(a)中雞群密集度低時(shí),檢測(cè)效果較好;圖3(b)雞群較擁擠時(shí),出現(xiàn)1只雞同時(shí)檢測(cè)出2種行為的情況和漏檢情況。設(shè)置合適的置信度閾值,可以提高模型檢測(cè)精度??疾觳煌撝迪赂餍袨榭偩_度P、召回率R和F1分?jǐn)?shù),測(cè)試結(jié)果見(jiàn)表1??梢?jiàn),隨著閾值的升高,精確率變大,召回率下降。綜合考慮,選擇閾值為0.5。
表1 置信度閾值與模型精度Table 1 Confidence threshold and model precision
在0.5置信度閾值下,測(cè)試得到各行為的精確率P和召回率R如表2所示??芍P蛯?duì)采食行為的判別最好,但是,啄羽行為的召回率偏低,易漏檢。此外,模型的檢測(cè)速度在本實(shí)驗(yàn)計(jì)算機(jī)中達(dá)到45.3 fps,攝像頭視頻幀率15 fps,完全滿(mǎn)足實(shí)時(shí)處理的要求。
表2 各行為預(yù)測(cè)評(píng)價(jià)指標(biāo)Table 2 Evaluation indexes of behaviors
選取5段、每段2 min的含有啄羽行為的視頻進(jìn)行測(cè)試,由于啄羽行為的識(shí)別率較低,不一定每幀圖像都能正確識(shí)別,同時(shí),雞群密集度較高時(shí)也容易錯(cuò)誤識(shí)別,測(cè)試結(jié)果如圖4所示。
圖4 啄羽行為檢測(cè)結(jié)果圖Fig.4 Feather pecking behavior detection results
由于啄羽行為具有一定的時(shí)間連續(xù)性,即會(huì)在連續(xù)的多幀圖像中出現(xiàn),通過(guò)單幀圖像檢測(cè)漏檢率較高。提取每幀圖像的啄羽行為個(gè)數(shù)按時(shí)間順序統(tǒng)計(jì),時(shí)間序列如圖5所示。
圖5 啄羽檢測(cè)時(shí)間序列圖Fig.5 Feather pecking detection time series
結(jié)合視頻和圖5(a)可以看出視頻有非啄羽行為而誤識(shí)別為啄羽行為的情況,但是時(shí)間連續(xù)性差。放大有連續(xù)性的啄羽行為片段如圖5(b)可見(jiàn),不是每幀圖像都能正確識(shí)別啄羽行為,但是一般5幀內(nèi)可以識(shí)別出至少1次。為了剔除漏檢的情況,統(tǒng)計(jì)行為持續(xù)時(shí)長(zhǎng),求取每秒的啄羽行為平均值,形成1個(gè)新的時(shí)間序列,并認(rèn)為5 s內(nèi)發(fā)生2次啄羽行為以上是1個(gè)行為片段,最終得到持續(xù)時(shí)間在30 s以上的啄羽行為片段具體時(shí)間及時(shí)長(zhǎng)。程序流程為:
(1)每連續(xù)15幀(1 s)圖片計(jì)算1次啄羽行為的平均值A(chǔ)VG;
(2)若AVG大于0.1,則該秒鐘有啄羽行為出現(xiàn),記為1,否則記為0;
(3)通過(guò)1個(gè)長(zhǎng)度為4的滑動(dòng)平均濾波器,使2次啄羽行為時(shí)間間隔小于等于3 s間隔的行為認(rèn)為是1個(gè)行為序列;
(4)若該啄羽行為序列持續(xù)時(shí)長(zhǎng)大于等于30 s,記錄啄羽時(shí)刻及持續(xù)時(shí)長(zhǎng)。
時(shí)間序列檢測(cè)結(jié)果如圖5(c)所示,第74、100、181和199幀是錯(cuò)誤檢測(cè)幀,333到380幀雖然具有連續(xù)性,但持續(xù)時(shí)長(zhǎng)不到30 s,所以不予計(jì)算;526到1 800幀為檢測(cè)到的啄羽時(shí)段。在5段視頻中的檢測(cè)結(jié)果如表3所示,該方法解決了啄羽行為漏檢率高的問(wèn)題,提升了檢測(cè)精確度。
表3 5段視頻的時(shí)間序列檢測(cè)結(jié)果Tab.3 Time series detection results of five videos
本試驗(yàn)應(yīng)用YOLO v4實(shí)現(xiàn)群養(yǎng)雞中單只雞只的行為識(shí)別,其中,攝像頭完全覆蓋食槽區(qū),采食時(shí)雞只位置固定,行為識(shí)別精確率最高;在攝像頭下方的雞只站立和趴臥行為易混淆;打架和啄羽行為誤差較大;各行為識(shí)別誤差產(chǎn)生的主要原因有:
(1)雞只個(gè)體相對(duì)較小,數(shù)量較多,且雞群喜聚集,極易出現(xiàn)重疊、遮擋情況,容易漏檢,后續(xù)可提高數(shù)據(jù)集標(biāo)注準(zhǔn)確度、增大數(shù)據(jù)集或改進(jìn)算法來(lái)提高小目標(biāo)識(shí)別精度;
(2)打架和啄羽行為是2只甚至多只雞只的共同行為,且具有時(shí)間持續(xù)性,單張圖片檢測(cè)易誤檢、漏檢;啄羽行為的持續(xù)時(shí)間一般較長(zhǎng),本試驗(yàn)采用了時(shí)間序列分析的方法,提取了大于30 s的啄羽行為,精確度較高,但是小于30 s的啄羽行為沒(méi)有考慮;打架行為持續(xù)時(shí)間較短,不易采用時(shí)間序列分析的方法,后續(xù)可采用追蹤的方法和運(yùn)動(dòng)速度判別以提高行為識(shí)別準(zhǔn)確度。
本試驗(yàn)將YOLO v4算法應(yīng)用于實(shí)時(shí)監(jiān)測(cè)散養(yǎng)雞群在雞舍中的采食、站立、趴臥、梳羽、啄羽和打架行為,平均精確率分別為96.67%、90.34%、78.46%、82.01%、63.38%和67.14%;對(duì)啄羽行為召回率低的情況,提出了基于時(shí)間序列處理算法,大大提高了召回率,可以實(shí)現(xiàn)實(shí)時(shí)處理,為散養(yǎng)雞的精準(zhǔn)養(yǎng)殖提供了可能。