李菊霞 李艷文 牛 帆 李 榮 張 韜 景 冰
(1.山西農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院,太谷 030801; 2.山西財(cái)貿(mào)職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系,太原 030031)
豬只飲食行為是判斷其健康狀況的重要依據(jù),科學(xué)的豬只飲食管理有利于豬只健康。實(shí)時(shí)、連續(xù)、準(zhǔn)確地監(jiān)測(cè)豬只進(jìn)食、飲水狀況,對(duì)預(yù)防豬只疾病、提高養(yǎng)殖福利具有重要意義[1]。
目前,常見(jiàn)的牲畜進(jìn)食、飲水行為檢測(cè)方法涉及無(wú)線射頻技術(shù)和機(jī)器視覺(jué)技術(shù)。無(wú)線射頻技術(shù)需要給豬只佩戴耳標(biāo)類傳感器,雖然能記錄各項(xiàng)參數(shù),但傳感器容易被動(dòng)物咬食而損壞[2];機(jī)器視覺(jué)技術(shù)具有無(wú)接觸、低成本等優(yōu)點(diǎn),在豬只養(yǎng)殖過(guò)程中得到大量應(yīng)用。隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)的發(fā)展,Mask R-CNN[3]、Faster R-CNN[4]、YOLO、SSD[5]等用于目標(biāo)檢測(cè)的深度學(xué)習(xí)模型在豬只行為檢測(cè)和豬只姿態(tài)檢測(cè)等方面得到廣泛應(yīng)用[6-10]。相較于其他模型,基于回歸思想的YOLO系列[11-13]模型在確保檢測(cè)精度的情況下提升了檢測(cè)速度,適用于規(guī)模化生產(chǎn)環(huán)境,已被應(yīng)用于蘋(píng)果[14]、雞[15]、奶牛[16]等目標(biāo)檢測(cè)。
本文基于不同視角、不同遮擋程度以及不同光照強(qiáng)度的豬只飲食圖像,建立豬只飲食行為的圖像數(shù)據(jù)庫(kù),采用YOLOv4[17]模型對(duì)豬只飲食行為進(jìn)行檢測(cè),將豬只進(jìn)食、飲水行為圖像數(shù)據(jù)輸入到深度學(xué)習(xí)網(wǎng)絡(luò)中,利用YOLOv4網(wǎng)絡(luò)的深層次特征提取、高精度檢測(cè)分類特性,對(duì)豬只飲食行為進(jìn)行準(zhǔn)確檢測(cè)。
實(shí)驗(yàn)數(shù)據(jù)采集于山西省臨汾市汾西縣豬只培育基地,選取4只成年公豬放入約3 m×2.2 m×2.0 m圈養(yǎng)環(huán)境中。于2020年6月25日起,上、下午以及夜間分別拍攝時(shí)長(zhǎng)3 h視頻,連續(xù)拍攝7 d。采用Allied Vision Technologies 的 Manta G-282C型相機(jī)移動(dòng)拍攝。拍攝時(shí),豬只距離鏡頭 0.5~3 m不等,在不同視角、不同遮擋程度和不同位置情況下拍攝視頻。
將采集到的數(shù)據(jù)進(jìn)行篩選、增強(qiáng)和標(biāo)注。
采用KMPlayer軟件進(jìn)行視頻截取,將視頻按1 f/s進(jìn)行JPG格式的圖像提取,將得到的圖像進(jìn)行篩選。為了增加模型訓(xùn)練數(shù)據(jù)的豐富度,所選樣本包含不同時(shí)間段、不同光照強(qiáng)度和不同拍攝視角的樣本,均勻選出2 000幅圖像作為訓(xùn)練和測(cè)試樣本數(shù)據(jù)。將樣本尺寸統(tǒng)一調(diào)整為608像素×608像素,以減少運(yùn)算量,提高模型訓(xùn)練速度。
為了避免本文所選6種模型在訓(xùn)練過(guò)程中出現(xiàn)過(guò)擬合現(xiàn)象,通過(guò)cutout、cutmix、mixup等圖像增強(qiáng)技術(shù)擴(kuò)展樣本圖像,如圖1所示,使正樣本和負(fù)樣本數(shù)量達(dá)到2∶1。在后續(xù)YOLOv4模型訓(xùn)練過(guò)程中并未使用模型自帶的cutmix數(shù)據(jù)增強(qiáng)方法。
對(duì)樣本圖像增強(qiáng)后,使用LabelImg圖像標(biāo)注工具對(duì)豬只的飲食行為進(jìn)行標(biāo)注,如圖2所示。使用PASCAL VOC[18]格式的XML文件注釋。
對(duì)于檢測(cè)模型來(lái)說(shuō),分類最優(yōu)的主干網(wǎng)絡(luò)不一定是最合適的,適用于目標(biāo)檢測(cè)的主干網(wǎng)絡(luò)需滿足:①輸入高分辨率圖像,提高小目標(biāo)的檢測(cè)準(zhǔn)確率。②更多的網(wǎng)絡(luò)層,提高感受域來(lái)適應(yīng)輸入的增加。③更多的參數(shù),提高檢測(cè)多尺寸目標(biāo)的能力。對(duì)比3種主干網(wǎng)絡(luò)的參數(shù),如表1所示,CSPDarknet53的參數(shù)量和傳輸速度優(yōu)于其他主干網(wǎng)絡(luò),因此選擇CSPDarknet53作為YOLOv4主干網(wǎng)絡(luò)。

表1 用于圖像分類的神經(jīng)網(wǎng)絡(luò)參數(shù)對(duì)比Tab.1 Parameters comparison of neural networks for image classification
YOLOv4在CSPDarknet53中引入了空間金字塔池化模塊(Spatial pyramid pooling, SPP)[19],能夠顯著地改善感受域尺寸,將最重要的上下位特征提取出來(lái),網(wǎng)絡(luò)處理速度沒(méi)有明顯下降。此外,YOLOv4還使用路徑聚合網(wǎng)絡(luò)(Path aggregation network, PAN)[20]替換特征金字塔網(wǎng)絡(luò)(Feature pyramid network, FPN)[21]進(jìn)行多通道特征融合。如圖3所示,F(xiàn)PN下方特征信息需要經(jīng)過(guò)多層網(wǎng)絡(luò)才能到達(dá)金字塔上層,途中有可能會(huì)導(dǎo)致信息丟失。PAN網(wǎng)絡(luò)結(jié)構(gòu)中加入了自底向上的路徑增強(qiáng),可避免信息丟失問(wèn)題,經(jīng)過(guò)特征圖拼接后獲得的信息既有底層特征也有語(yǔ)義特征。
最終,選擇了CSPDarknet53作為主干網(wǎng)絡(luò),PAN 路徑聚合網(wǎng)絡(luò)作為頸部,YOLOv3作為頭部,組成了YOLOv4整體結(jié)構(gòu)。
2.2.1空間注意力模塊
空間注意力模塊對(duì)輸入特征圖進(jìn)行最大池化(Max-Pooling)和平均池化(Average-Pooling)操作,從而得到兩個(gè)特征圖集合。將其結(jié)果輸入卷積層,之后再由一個(gè)Sigmoid 函數(shù)創(chuàng)建出空間注意力。YOLOv4對(duì)空間注意力模塊(SAM)進(jìn)行簡(jiǎn)單修改,將空間注意力機(jī)制(Spatial-wise attention)修改為點(diǎn)注意力機(jī)制(Point-wise attention),并將 PAN 中的快捷方式連接替換為串聯(lián),如圖4所示。
2.2.2Box回歸函數(shù)
YOLOv4使用全局交并比(Complete-IoU, CIoU)[22]作為box回歸函數(shù),CIoU可以在矩形框(Bounding-box,Bbox)回歸問(wèn)題上獲得更好的收斂速度和精度。CIoU的懲罰項(xiàng)RCIoU為
(1)
(2)
(3)
式中ρ——兩個(gè)中心點(diǎn)間的歐氏距離
b——預(yù)測(cè)框中心點(diǎn)
bgt——真實(shí)框中心點(diǎn)
c——兩個(gè)中心點(diǎn)最小外接矩的對(duì)角線長(zhǎng)度
a——trade-off的參數(shù)
v——長(zhǎng)寬比的相似性
IoU——預(yù)測(cè)框與真實(shí)框的交并比
wgt——真實(shí)框?qū)挾?/p>
hgt——真實(shí)框高度
w——預(yù)測(cè)框?qū)挾?/p>
h——預(yù)測(cè)框高度
CIoU損失函數(shù)LCIoU定義為
(4)

在機(jī)器學(xué)習(xí)中的目標(biāo)檢測(cè)領(lǐng)域,精確率-召回率(Precision-Recall,P-R)曲線用于衡量目標(biāo)檢測(cè)算法的性能。此外,用于衡量目標(biāo)檢測(cè)算法性能的常用指標(biāo)還有平均檢測(cè)精度(mAP)。檢測(cè)精度(AP)指P-R曲線下方的區(qū)域面積,mAP指同一模型對(duì)豬只進(jìn)食行為和飲水行為的AP平均值。
本文采用P-R曲線以及mAP作為評(píng)價(jià)指標(biāo)來(lái)衡量模型對(duì)豬只飲食行為的檢測(cè)性能。
圖像數(shù)據(jù)集共包括3 000幅圖像。進(jìn)食、飲水行為各1 250幅,其他行為(排泄、休息等)共500幅。從該數(shù)據(jù)集中隨機(jī)選擇進(jìn)食、飲水行為圖像各1 050幅,其他行為數(shù)據(jù)400幅,共2 500幅圖像作為訓(xùn)練集,其余500幅圖像作為測(cè)試集。豬只行為檢測(cè)模型在NVIDIA GTX 1650 GPU上進(jìn)行訓(xùn)練和測(cè)試。
YOLOv4在訓(xùn)練之前需要設(shè)置相關(guān)參數(shù),本實(shí)驗(yàn)將批處理尺寸設(shè)置為4,最大迭代數(shù)設(shè)置為4 000,動(dòng)量為0.949,權(quán)重衰減正則系數(shù)為5×10-4。本文采用學(xué)習(xí)率機(jī)制,初始學(xué)習(xí)率為1×10-3,一旦學(xué)習(xí)停滯,模型學(xué)習(xí)率通常將以2~10倍的速率衰減,衰減次數(shù)設(shè)置為最大迭代數(shù)的80%和90%。即模型迭代到3200次時(shí)學(xué)習(xí)率衰減至原學(xué)習(xí)率的1/10,迭代到3 600次時(shí),學(xué)習(xí)率會(huì)在前一個(gè)學(xué)習(xí)率基礎(chǔ)上繼續(xù)衰減至其1/10。
本文以相同的實(shí)驗(yàn)數(shù)據(jù)分別使用YOLOv4、YOLOv3、Tiny-YOLOv4、Faster R-CNN、RetinaNet和SSD模型進(jìn)行訓(xùn)練,在相同測(cè)試集下進(jìn)行測(cè)試對(duì)比。圖5為部分測(cè)試結(jié)果,紫色框表示進(jìn)食行為,綠色框表示飲水行為。圖5a為側(cè)視光照充足情況下豬只進(jìn)食行為的檢測(cè)結(jié)果,圖5b為側(cè)視光照充足情況下豬只飲水行為的檢測(cè)結(jié)果;圖5c為俯視光照不足情況下豬只進(jìn)食、飲水行為同時(shí)發(fā)生的檢測(cè)結(jié)果;圖5d為俯視光照不足情況下遮擋狀態(tài)豬只發(fā)生進(jìn)食行為的檢測(cè)結(jié)果。
由圖5a、5b可知,6種模型在光照充足的情況下均可以正確檢測(cè)出豬只進(jìn)食、飲水行為。在豬只進(jìn)食行為檢測(cè)結(jié)果中,YOLOv4檢測(cè)結(jié)果的置信度(預(yù)測(cè)類別為真實(shí)類別的概率)最高。在檢測(cè)豬只飲水行為的結(jié)果中,6種模型取得的置信度相差不大。由圖5c可知,在光照不足以及進(jìn)食行為、飲水行為同時(shí)發(fā)生的情況下,YOLOv3、Tiny-YOLOv4以及Faster R-CNN 3種模型只能檢測(cè)出飲水行為,而YOLOv4、RetinaNet、SSD模型對(duì)飲水行為和進(jìn)食行為均能做出正確檢測(cè)。由圖5d可知,YOLOv4可以正確檢測(cè)出被遮擋狀態(tài)的豬只進(jìn)食行為,而其他5種模型均未能檢測(cè)出被遮擋情況下的豬只進(jìn)食行為。
由表2可知,YOLOv4檢測(cè)模型的mAP值高于YOLOv3模型2.8個(gè)百分點(diǎn),高于Tiny-YOLOv4模型3.6個(gè)百分點(diǎn),高于Faster R-CNN模型1.5個(gè)百分點(diǎn),高于RetinaNet模型5.9個(gè)百分點(diǎn),高于SSD模型5個(gè)百分點(diǎn)。YOLOv4對(duì)于豬只進(jìn)食行為的檢測(cè)精度比同系列的YOLOv3、Tiny-YOLOv4分別高4.2、3.6個(gè)百分點(diǎn),對(duì)于飲水行為的檢測(cè)精度則比YOLOv3、Tiny-YOLOv4高1.3、3.5個(gè)百分點(diǎn)。對(duì)比Faster R-CNN,YOLOv4模型對(duì)進(jìn)食行為和飲水行為的檢測(cè)精度分別提升了1.1、1.9個(gè)百分點(diǎn),對(duì)比RetinaNet提升了3.8、7.8個(gè)百分點(diǎn),對(duì)比SSD提升了3.7、6.1個(gè)百分點(diǎn)。

表2 不同模型對(duì)測(cè)試集識(shí)別的AP值和mAP值Tab.2 AP and mAP of test set by different models %
圖6為YOLOv4、YOLOv3、Tiny-YOLOv4、SSD、Faster R-CNN、RetinaNet模型對(duì)豬只飲食行為檢測(cè)的P-R曲線。由表2可知,6種模型對(duì)于進(jìn)食和飲水兩種行為的AP值均在90%左右,P-R曲線基本覆蓋了整個(gè)坐標(biāo)系。相較于其他5種模型的P-R曲線,YOLOv4模型的P-R曲線均位于最上方,優(yōu)于其他5種模型。
除上述實(shí)驗(yàn)外,本文還選取了768幅被遮擋狀態(tài)豬只飲食圖像,利用上述6種模型對(duì)其進(jìn)行豬只飲食行為檢測(cè),實(shí)驗(yàn)結(jié)果如表3所示。
由表3可知,在被遮擋狀態(tài)下,YOLOv4模型對(duì)豬只進(jìn)食行為的檢測(cè)精度達(dá)到85.8%,高于同系列的YOLOv3、Tiny-TOLOv4模型52.5、42.2個(gè)百分點(diǎn),高于Faster R-CNN、RetinaNet、SSD模型24.3、44.8、31.1個(gè)百分點(diǎn)。YOLOv4模型對(duì)于豬只飲水行為的檢測(cè)精度達(dá)到93.8%,高于同系列的YOLOv3、Tiny-TOLOv4模型24.3、4.9個(gè)百分點(diǎn),高于Faster R-CNN、RetinaNet、SSD模型11、63.6、4.6個(gè)百分點(diǎn)。YOLOv4模型的mAP值高于YOLOv3模型38.4個(gè)百分點(diǎn),高于Tiny-YOLOv4模型19個(gè)百分點(diǎn),高于Faster R-CNN模型17.6個(gè)百分點(diǎn),高于RetinaNet模型54.1個(gè)百分點(diǎn),高于SSD模型17.8個(gè)百分點(diǎn)。相較于表2的檢測(cè)精度,被遮擋狀態(tài)下的進(jìn)食、飲水檢測(cè)精度都有明顯下降。這是因?yàn)樵诒徽趽鯛顟B(tài)下,位于檢測(cè)設(shè)備前方的豬只會(huì)遮擋后方豬只的部分行為特征,從而致使檢測(cè)精度下降。在本實(shí)驗(yàn)環(huán)境中,飲水槽位于進(jìn)食槽前方,發(fā)生飲水行為的豬只會(huì)遮擋處于進(jìn)食狀態(tài)的豬只,所以表3中的豬只進(jìn)食行為檢測(cè)精度下降幅度遠(yuǎn)大于飲水行為。實(shí)驗(yàn)結(jié)果表明,YOLOv4模型在被遮擋狀態(tài)下對(duì)豬只飲食行為的檢測(cè)精度遠(yuǎn)優(yōu)于其他5種模型。

表3 被遮擋狀態(tài)測(cè)試集在不同模型下的AP值和mAP值Tab.3 AP and mAP of adhesive state test set by different models %
(1)YOLOv4模型在側(cè)視、俯視、被遮擋狀態(tài)以及光照不足的情況下均能實(shí)時(shí)有效地檢測(cè)豬只飲食行為,檢測(cè)效果優(yōu)于同系列YOLOv3、Tiny-YOLOv4模型,以及主流檢測(cè)模型Faster R-CNN、RetinaNet和SSD。
(2)YOLOv4模型在本文測(cè)試集中平均檢測(cè)精度達(dá)到95.5%,分別高于YOLOv3、Tiny-YOLOv4、Faster R-CNN、RetinaNet、SSD模型2.8、3.6、1.5、5.9、5個(gè)百分點(diǎn)。
(3)YOLOv4模型對(duì)各測(cè)試集的檢測(cè)精度(AP)、平均檢測(cè)精度(mAP)以及P-R曲線均優(yōu)于YOLOv3、Tiny-YOLOv4、SSD、Faster R-CNN和RetinaNet模型。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2021年3期