王少華 何東健
(1.西北農(nóng)林科技大學(xué)機(jī)械與電子工程學(xué)院, 陜西楊凌 712100;2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點(diǎn)實(shí)驗(yàn)室, 陜西楊凌 712100)
目前,我國(guó)奶牛養(yǎng)殖場(chǎng)多以傳統(tǒng)養(yǎng)殖方式為主,近年來(lái)隨著牛奶消費(fèi)需求的增加,奶牛養(yǎng)殖規(guī)模和數(shù)量快速增長(zhǎng),奶牛場(chǎng)勞動(dòng)力成本與經(jīng)濟(jì)效益之間的矛盾日益突出,因此迫切需要自動(dòng)化的奶牛養(yǎng)殖管理方法。評(píng)估奶牛發(fā)情狀況是奶牛養(yǎng)殖的重要環(huán)節(jié),奶牛發(fā)情期短,錯(cuò)過(guò)或漏識(shí)別會(huì)給奶牛場(chǎng)造成經(jīng)濟(jì)損失。傳統(tǒng)的奶牛發(fā)情評(píng)估主要依靠人工進(jìn)行觀察,需要投入大量的時(shí)間和精力,因此,研究奶牛發(fā)情行為的自動(dòng)識(shí)別方法具有重要意義。
隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,不少研究者提出了基于視頻圖像分析識(shí)別奶牛發(fā)情的方法[1-8]。近年來(lái),深度學(xué)習(xí)理論和方法得到了極大發(fā)展,研究者基于深度學(xué)習(xí)進(jìn)行了許多精準(zhǔn)養(yǎng)殖方面的研究[9-20]。JIANG等[9]在YOLO v3網(wǎng)絡(luò)中加入由均值濾波算法和帶泄露修正線性單元(Leaky ReLU)構(gòu)成的過(guò)濾層(Filter layer),優(yōu)化訓(xùn)練過(guò)程,提出了一種基于FYOLO的奶牛關(guān)鍵部位識(shí)別方法,識(shí)別準(zhǔn)確率為99.18%。ZHANG等[10]以視頻幀和光流場(chǎng)變化作為網(wǎng)絡(luò)輸入,提出了一種Two-Steam的卷積神經(jīng)網(wǎng)絡(luò)模型,用于自動(dòng)識(shí)別視頻監(jiān)控中的豬只行為,識(shí)別準(zhǔn)確率為98.99%。何東健等[13]通過(guò)優(yōu)化錨點(diǎn)框和改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)提出了一種基于改進(jìn)YOLO v3模型的擠奶奶牛個(gè)體識(shí)別方法,識(shí)別準(zhǔn)確率為95.91%,該方法可實(shí)現(xiàn)復(fù)雜環(huán)境下奶牛個(gè)體的精準(zhǔn)識(shí)別。在奶牛發(fā)情行為識(shí)別方面,PARK等[16]將采集的牛只在不同狀態(tài)和行為時(shí)的叫聲輸入卷積神經(jīng)網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)通過(guò)聲音識(shí)別牛只包括發(fā)情在內(nèi)的不同行為和狀態(tài),識(shí)別準(zhǔn)確率為96.20%,但該聲音采集方法對(duì)環(huán)境要求較高,不適用于奶牛場(chǎng)復(fù)雜的養(yǎng)殖環(huán)境。劉忠超等[17]受LeNet-5啟發(fā),構(gòu)建了一種多層卷積神經(jīng)網(wǎng)絡(luò),并使用奶牛行為圖像樣本訓(xùn)練模型,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的奶牛發(fā)情行為識(shí)別模型,模型識(shí)別準(zhǔn)確率為98.25%,但該模型只能用于識(shí)別已獲取的奶牛行為圖像。王少華等[18]采用改進(jìn)的GMM檢測(cè)運(yùn)動(dòng)奶牛目標(biāo),基于訓(xùn)練好的AlexNet識(shí)別被檢測(cè)奶牛目標(biāo)的行為,提出了一種基于機(jī)器視覺(jué)的奶牛發(fā)情行為自動(dòng)識(shí)別方法,識(shí)別準(zhǔn)確率為100%,召回率為88.24%,但該方法識(shí)別速度較慢。作為一種自主特征學(xué)習(xí)方法,深度學(xué)習(xí)具有自動(dòng)獲取圖像多層次、多維度特征信息的能力,有效克服了人工提取特征向量的局限性,在農(nóng)業(yè)領(lǐng)域具有廣闊的應(yīng)用前景。以YOLO v3模型為代表的端到端的目標(biāo)檢測(cè)方法,具有識(shí)別速度快、識(shí)別準(zhǔn)確率高、模型抗干擾能力強(qiáng)等優(yōu)點(diǎn),具備在復(fù)雜環(huán)境下識(shí)別奶牛發(fā)情行為的潛力。
針對(duì)復(fù)雜環(huán)境下奶牛發(fā)情行為檢測(cè)精度和速度亟待提高的問(wèn)題,本文提出一種基于改進(jìn)YOLO v3模型的奶牛發(fā)情行為識(shí)別方法。在獲取奶牛行為圖像的基礎(chǔ)上,利用LabelImg開(kāi)源工具對(duì)圖像中的爬跨行為進(jìn)行標(biāo)注,構(gòu)建奶牛發(fā)情行為樣本數(shù)據(jù)集;根據(jù)樣本集數(shù)據(jù)特點(diǎn),從錨點(diǎn)框尺寸優(yōu)化、特征提取網(wǎng)絡(luò)改進(jìn)、邊界框損失函數(shù)優(yōu)化3方面對(duì)YOLO v3模型進(jìn)行改進(jìn),并基于TensorFlow和高性能GPU計(jì)算平臺(tái)實(shí)現(xiàn)對(duì)改進(jìn)后模型的訓(xùn)練;最后,利用優(yōu)選的模型,在測(cè)試集上對(duì)模型性能進(jìn)行評(píng)估與分析。
本研究供試視頻采集自陜西省寶雞市扶風(fēng)縣西北農(nóng)林科技大學(xué)畜牧實(shí)驗(yàn)基地的奶牛養(yǎng)殖場(chǎng),通過(guò)調(diào)研發(fā)現(xiàn),奶牛發(fā)情爬跨行為主要發(fā)生在養(yǎng)殖場(chǎng)的奶牛活動(dòng)區(qū),故本研究選擇對(duì)奶牛活動(dòng)區(qū)進(jìn)行視頻采集。奶牛活動(dòng)區(qū)長(zhǎng)30 m,寬18 m,在奶牛活動(dòng)區(qū)的對(duì)角線位置各安裝了2個(gè)分辨率為200萬(wàn)像素的監(jiān)控?cái)z像機(jī)(YW7100HR09-SC62-TA12型,深圳億維銳創(chuàng)科技有限公司),攝像機(jī)安裝高度3.3 m,向下傾斜15.5°,安裝好的攝像機(jī)及視野圖像如圖1所示。視頻采用場(chǎng)邊俯視的角度記錄了56頭具備發(fā)情能力的成年泌乳奶牛的活動(dòng)情況,視頻記錄時(shí)間為2016年12月至2017年4月,共采集到奶牛活動(dòng)視頻3 600段,每段視頻長(zhǎng)10 min,視頻分辨率為1 920像素(水平)×1 080像素(垂直),幀率25 f/s。
奶牛場(chǎng)復(fù)雜的養(yǎng)殖環(huán)境以及視頻圖像生成、傳輸過(guò)程受到干擾,使采集到的視頻圖像中存在噪聲而降低圖像質(zhì)量。為提高后期奶牛發(fā)情行為的識(shí)別效率,對(duì)采集到的視頻圖像進(jìn)行降噪和圖像增強(qiáng)操作。
分析本文視頻圖像噪聲產(chǎn)生原因可知,噪聲類型主要為系統(tǒng)加性高斯噪聲,故可選用高斯濾波或雙邊濾波來(lái)去除。考慮到高斯濾波用加權(quán)平均的方法去除噪聲,會(huì)使圖像邊緣處出現(xiàn)模糊,而雙邊濾波使用與空間距離或灰度距離相關(guān)的高斯函數(shù)相乘作為濾波因子,在濾除噪聲的同時(shí)盡可能地考慮了圖像的邊緣信息,因此,本研究選用雙邊濾波濾除圖像噪聲。
由于本文視頻采集跨度時(shí)間長(zhǎng),當(dāng)夜晚環(huán)境亮度降低時(shí),拍攝到的視頻圖像對(duì)比度會(huì)下降,導(dǎo)致奶牛輪廓與背景區(qū)分不明顯。本文使用分段線性函數(shù)對(duì)圖像進(jìn)行對(duì)比度拉伸,通過(guò)對(duì)比度拉伸可以有目的地增強(qiáng)奶牛像素,使視頻圖像中的奶牛輪廓更加清晰,對(duì)比度拉伸計(jì)算公式為
(1)
式中x——輸入像素f(x)——輸出圖像
a1、a2——感興趣目標(biāo)灰度區(qū)間上、下限閾值,本文a1=50,a2=150
a′1、a′2——感興趣目標(biāo)灰度區(qū)間新映射區(qū)間上、下限閾值,本文a′1=40,a′2=200
其中,a1、a2、a′1和a′2由預(yù)備試驗(yàn)確定。
觀看奶牛活動(dòng)區(qū)監(jiān)控視頻,人工篩選出具有爬跨行為的視頻片段96段,每段長(zhǎng)度 15~80 s不等,利用視頻幀分解技術(shù),每5幀取1幀,得到視頻圖像13 655幅,其中,每幅圖像中既包含有爬跨行為奶牛,也包含有其他行為奶牛,如站立、游走、躺臥等。由于各視頻段圖像數(shù)量并不均等,為避免因樣本量差異對(duì)模型訓(xùn)練結(jié)果產(chǎn)生影響,將各視頻段圖像統(tǒng)一調(diào)整為50幅,最終構(gòu)成樣本集圖像共有4 800幅。為擴(kuò)大樣本量,提高數(shù)據(jù)泛性,根據(jù)奶牛爬跨行為在活動(dòng)區(qū)出現(xiàn)位置的不確定性以及活動(dòng)區(qū)光照變化的特點(diǎn),采用對(duì)樣本圖像水平翻轉(zhuǎn)、±15°旋轉(zhuǎn)、隨機(jī)亮度增強(qiáng)(降低)的方法進(jìn)行數(shù)據(jù)增強(qiáng),最終得到增強(qiáng)后的圖像14 400幅,作為模型的樣本增強(qiáng)數(shù)據(jù)集,經(jīng)增強(qiáng)后的圖像樣例如圖2所示。
按照訓(xùn)練、驗(yàn)證、測(cè)試之比為7∶2∶1,對(duì)樣本增強(qiáng)數(shù)據(jù)集進(jìn)行隨機(jī)劃分后,訓(xùn)練集樣本10 800幅、驗(yàn)證集樣本2 880幅、測(cè)試集樣本1 440幅,各類樣本集間無(wú)數(shù)據(jù)重疊。采用開(kāi)源工具LabelImg對(duì)訓(xùn)練集、驗(yàn)證集樣本進(jìn)行標(biāo)注,標(biāo)記對(duì)象為奶牛爬跨行為,標(biāo)記標(biāo)簽為“mounting”,標(biāo)記文件保存為PascalVOC格式,名稱與圖像名一一對(duì)應(yīng)。
2.1.1特征提取網(wǎng)絡(luò)
YOLO v3模型[21]使用Darknet-53作為其特征提取網(wǎng)絡(luò)。Darknet-53共有53層卷積層,每個(gè)卷積層由1×1 和 3×3的卷積核構(gòu)成,其余為殘差層,均位于卷積層之后,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。Darknet-53引入殘差(Residual)結(jié)構(gòu),可以很好地控制梯度的傳播,使構(gòu)建的網(wǎng)絡(luò)更深,特征學(xué)習(xí)能力更強(qiáng)大。YOLO v3模型的第75層到105層為特征融合層,使用上采樣和多尺度特征融合方法,加強(qiáng)網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)精度。ImageNet數(shù)據(jù)集[22]下,YOLO v3模型特征提取網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的性能對(duì)比試驗(yàn)結(jié)果表明[21],Darknet-53 比Darknet-19[23]速度有所下降,但精度提升,Darknet-53性能優(yōu)于ResNet-101[24],且速度提高了1.3倍,和ResNet-152[24]性能相當(dāng),但速度提高了1.1倍。
2.1.2邊界框分類與預(yù)測(cè)
YOLO v3模型基于錨點(diǎn)框尺寸微調(diào)實(shí)現(xiàn)對(duì)邊界框的預(yù)測(cè),其中9種錨點(diǎn)框尺寸由COCO數(shù)據(jù)集上聚類得到,并分別分配給3種不同的特征圖,用于構(gòu)建模型對(duì)不同大小目標(biāo)的檢測(cè)能力。錨點(diǎn)框尺寸與特征圖對(duì)應(yīng)關(guān)系如表1所示。

表1 錨點(diǎn)框尺寸與特征圖對(duì)應(yīng)關(guān)系
YOLO v3模型采用直接預(yù)測(cè)相對(duì)位置的方法對(duì)邊界框進(jìn)行預(yù)測(cè),它將輸入圖像劃分為S×S個(gè)網(wǎng)格,每個(gè)網(wǎng)格單元負(fù)責(zé)檢查中心位于其內(nèi)的邊界框和置信度,網(wǎng)格單元的具體信息可以表示為(tx,ty,tw,th,C),其中tx、ty表示邊界框的坐標(biāo)偏移量,tw、th表示尺度縮放,C為預(yù)測(cè)結(jié)果置信度。YOLO v3使用tx、ty、tw、th作為學(xué)習(xí)信息,使用預(yù)設(shè)的錨點(diǎn)框尺寸經(jīng)線性回歸微調(diào)(平移加尺度縮放)實(shí)現(xiàn)邊界框的預(yù)測(cè)。模型邊界框預(yù)測(cè)的輸出值(tx,ty,tw,th)為4組偏移量,bx、by、bw、bh的計(jì)算公式為
(2)
式中σ——Sigmoid激活函數(shù)
(cx,cy)——網(wǎng)格單元左上角坐標(biāo)
tx、ty——邊界框中心坐標(biāo)偏移量
tw、th——邊界框?qū)捄透叩目s放尺度
pw、ph——錨點(diǎn)框?qū)捄透咴谔卣鲌D上的特征映射
(bx,by)——邊界框中心坐標(biāo)
bw、bh——邊界框?qū)捄透?/p>
2.2.1錨點(diǎn)框聚類與優(yōu)化
YOLO v3模型的錨點(diǎn)框尺寸由其在COCO數(shù)據(jù)集上聚類得到,與本文需要檢測(cè)的奶牛爬跨行為目標(biāo)尺寸并不一致,為提高模型訓(xùn)練效果,需設(shè)置新的錨點(diǎn)框尺寸。使用K-means算法在已標(biāo)注的樣本集上聚類,得到新的錨點(diǎn)框尺寸為46×47、61×109、76×73、94×150、114×90、136×194、140×118、191×155、232×262。
使用新的錨點(diǎn)框尺寸測(cè)試發(fā)現(xiàn),模型訓(xùn)練效果一般,分析原因?yàn)椋河捎诒疚氖褂玫臉颖緮?shù)據(jù)均為奶牛視頻圖像,樣本類型單一,且樣本中標(biāo)注框尺寸分布集中,導(dǎo)致聚類產(chǎn)生的錨點(diǎn)框尺寸也過(guò)于集中,無(wú)法體現(xiàn)出YOLO v3模型的多尺度檢測(cè)的輸出優(yōu)勢(shì),且本文標(biāo)注框尺寸多大于錨點(diǎn)框,增加了訓(xùn)練開(kāi)銷。為改善訓(xùn)練效果,使用線性擴(kuò)展法對(duì)錨點(diǎn)框尺寸進(jìn)行優(yōu)化,本文使用線性尺度縮放的辦法將錨點(diǎn)框尺寸向兩邊拉伸,線性拉伸表達(dá)式為
(3)
式中α——最小框縮小倍數(shù),經(jīng)預(yù)試驗(yàn)確定α=0.5
β——最大框擴(kuò)大倍數(shù),經(jīng)預(yù)試驗(yàn)確定β=1.5
w——擴(kuò)展前錨點(diǎn)框?qū)挾?/p>
w′——擴(kuò)展后錨點(diǎn)框?qū)挾?/p>
wmin、wmax——擴(kuò)展前錨點(diǎn)框?qū)挾茸钚≈怠⒆畲笾?/p>
w′min、w′max——擴(kuò)展后錨點(diǎn)框?qū)挾茸钚≈怠⒆畲笾?/p>
h——擴(kuò)展前錨點(diǎn)框高度
h′——擴(kuò)展后錨點(diǎn)框高度
優(yōu)化后的錨點(diǎn)框尺寸為23×23、49×87、75×72、106×170、141×111、180×257、187×157、276×224、348×393。可以看出,優(yōu)化后的錨點(diǎn)框尺寸分布更為分散,經(jīng)測(cè)試,使用優(yōu)化后的錨點(diǎn)框訓(xùn)練模型擬合速度更快。最后,將新的錨點(diǎn)框尺寸按感受野大、中、小分為3組,分別替代表1中3種特征圖對(duì)應(yīng)的錨點(diǎn)框。
2.2.2特征提取網(wǎng)絡(luò)的改進(jìn)
本文模型以奶牛發(fā)情爬跨行為作為檢測(cè)目標(biāo),由于奶牛個(gè)體偏大、個(gè)體間差距小,且各行為之間關(guān)聯(lián),較一般的目標(biāo)更難區(qū)分,為使模型取得更好的識(shí)別效果,需對(duì)特征提取網(wǎng)絡(luò)進(jìn)行改進(jìn)。DenseNet[25]網(wǎng)絡(luò)結(jié)構(gòu)更深,對(duì)大目標(biāo)檢測(cè)能力更強(qiáng),受其啟發(fā)本文引入DenseBlock結(jié)構(gòu)與YOLO v3模型特征提取網(wǎng)絡(luò)融合,以提高網(wǎng)絡(luò)大目標(biāo)檢測(cè)性能。
對(duì)于卷積神經(jīng)網(wǎng)絡(luò)H,假設(shè)輸入圖像為m0,經(jīng)過(guò)L層神經(jīng)網(wǎng)絡(luò),每一層都實(shí)現(xiàn)了一個(gè)非線性變換Hi,Hi可以是多種函數(shù)操作的組合,如:批量歸一化、修正線性單元ReLU、上下采樣或卷積等。傳統(tǒng)前饋卷積神經(jīng)網(wǎng)絡(luò)將第i層的輸出作為i+1層的輸入,可以表示為
mi=Hi(mi-1)
(4)
式中mi——第i層輸出的特征映射
ResNet中增加了從輸入到輸出的殘差(Residual)結(jié)構(gòu),可以表示為
mi=Hi(mi-1)+xi-1
(5)
使用ResNet的主要優(yōu)勢(shì)是梯度可以經(jīng)恒等映射到達(dá)前面的層,但ResNet處理恒等映射和非線性輸出的方式是疊加,這在一定程度上破壞了網(wǎng)絡(luò)中的信息流。
為進(jìn)一步優(yōu)化信息流的傳播,HUANG等[25]在設(shè)計(jì)DenseNet網(wǎng)絡(luò)時(shí)提出DenseBlock結(jié)構(gòu),如圖4所示,引入從任何層到后續(xù)層的直接連接,這樣第i層得到了之前所有層的特征映射m0、m1、…、mi-1作為輸入
mi=Hi([m0,m1,…,mi-1])
(6)
在YOLO v3特征提取網(wǎng)絡(luò)后增加2個(gè)DenseBlock結(jié)構(gòu),達(dá)到加深網(wǎng)絡(luò)的目的,增加的DenseBlock結(jié)構(gòu)由4組1×1和3×3卷積層和1層過(guò)渡層(Transition layer)組成。其中,1×1卷積用于降低輸入特征通道數(shù),3×3卷積用于新的特征提取,每層的輸入均是前面所有層的輸出經(jīng)特征通道拼接而來(lái),過(guò)渡層的主要目的是特征融合和改變輸出特征通道數(shù)。使用DenseBlock結(jié)構(gòu)來(lái)增加網(wǎng)絡(luò)深度而不使用殘差結(jié)構(gòu)的原因是DenseBlock結(jié)構(gòu)具有更少的參數(shù)量。例如,對(duì)于通道數(shù)為2 048的輸入特征圖像,使用殘差結(jié)構(gòu)需要1×1和3×3卷積數(shù)量分別為1 024個(gè)和2 048個(gè),而使用DenseBlock結(jié)構(gòu)需要1×1和3×3卷積數(shù)量分別為192個(gè)和48個(gè),此外,隨著網(wǎng)絡(luò)結(jié)構(gòu)的加深,模型的訓(xùn)練更加困難,研究表明[27],在沒(méi)有預(yù)訓(xùn)練的前提下,DenseBlock更易訓(xùn)練,這主要源于該結(jié)構(gòu)密集連接的方式。改進(jìn)后,YOLO v3的特征提取網(wǎng)絡(luò)如圖5所示。
對(duì)于改進(jìn)后的特征提取網(wǎng)絡(luò),若輸入圖像尺寸為512像素×512像素,則由DenseBlock結(jié)構(gòu)輸出的最小特征圖尺寸為4像素×4像素,是輸入圖像的128倍下采樣,由于下采樣倍數(shù)高,特征圖感受野更大,模型對(duì)大目標(biāo)檢測(cè)能力更強(qiáng)。改進(jìn)后的YOLO v3模型使用上采樣構(gòu)造特征金字塔進(jìn)行多尺度特征融合,實(shí)現(xiàn)高低層特征信息共享,以提高模型不同尺度特征圖的上下文語(yǔ)義。
2.2.3邊界框損失函數(shù)優(yōu)化
YOLO v3模型的損失函數(shù)由坐標(biāo)誤差、分類誤差和置信度誤差3部分構(gòu)成,其中坐標(biāo)誤差使用均方差(Mean squared error, MSE)來(lái)度量,但MSE對(duì)目標(biāo)尺度不具有不變性。預(yù)測(cè)框與真實(shí)框的交并比(Intersection over union, IoU)與MSE相比,具有尺度上的魯棒性,但I(xiàn)oU作為損失函數(shù),存在預(yù)測(cè)框與真實(shí)框不重合時(shí)梯度為0,損失函數(shù)無(wú)法優(yōu)化的問(wèn)題。為使IoU適合作為損失函數(shù),本文對(duì)IoU的計(jì)算方法做出調(diào)整,提出FIoU作為邊界框回歸損失函數(shù),其計(jì)算公式為
(7)
式中IIoU——預(yù)測(cè)框與真實(shí)框的交并比
Ac——預(yù)測(cè)框與真實(shí)框的最小閉合區(qū)域面積
U——Ac中不屬于預(yù)測(cè)框和真實(shí)框的面積
FIoU也具有尺度上的魯棒性,由式(7)可知,兩框不重疊時(shí)依然可以計(jì)算出FIoU,解決了兩框不重合梯度為0的問(wèn)題。若將其作為邊界框損失函數(shù),則表示形式為
LIoU=1-FIoU
(8)
式中LIoU——使用FIoU作為度量的邊界框損失函數(shù)
使用LIoU作為邊界框損失函數(shù),需同時(shí)在損失函數(shù)中加入兩框距離的度量,為邊界框的回歸提供移動(dòng)方向。受YOLO v1[26]模型啟發(fā),使用兩框的中心距離Dc作為兩框距離的度量,其計(jì)算公式為
Dc=(x-x′)2+(y-y′)2
(9)
式中 (x,y)——真實(shí)框的中心坐標(biāo)
(x′,y′)——預(yù)測(cè)框的中心坐標(biāo)
Dc——預(yù)測(cè)框與真實(shí)框的中心距離
最終的邊界框損失函數(shù)表達(dá)式為
L=η1Dc+η2LIoU
(10)
式中L——使用FIoU和Dc作為度量的邊界框損失函數(shù)
η1、η2——平衡兩種度量之間數(shù)值差距的權(quán)重系數(shù),經(jīng)預(yù)試驗(yàn)確定η1=10,η2=0.5
本文模型訓(xùn)練及驗(yàn)證在CPU為Intel Core i9-9900KF,內(nèi)存為32 GB,操作系統(tǒng)為Windows 10的服務(wù)器上進(jìn)行,使用TensorFlow在GPU上并行計(jì)算完成,試驗(yàn)使用的GPU配置為Nvidia GeForceRTX 2080Ti,顯存為2 GB,并行計(jì)算環(huán)境為CUDA 10.0和cudnn 7.6.5。試驗(yàn)編程語(yǔ)言為Python 3.6.2。
訓(xùn)練集樣本10 800幅,驗(yàn)證集樣本2 880幅。訓(xùn)練使用的樣本批尺寸(batchsize)為9,每2次迭代更新1次權(quán)重,訓(xùn)練過(guò)程采用小批量梯度下降(Mini-batch gradient descent, MBGD)方法進(jìn)行優(yōu)化,等效批尺寸為18。訓(xùn)練共100個(gè)迭代周期(epoch),每個(gè)周期迭代10 800/9次,共計(jì)迭代1.2×105次。訓(xùn)練的初始學(xué)習(xí)率設(shè)為0.001,學(xué)習(xí)率調(diào)整采用epoch-decay策略,每訓(xùn)練完1個(gè)周期,學(xué)習(xí)率減小為原來(lái)的0.9,最終將學(xué)習(xí)率調(diào)整到0.000 01。
圖6為訓(xùn)練過(guò)程損失值變化曲線,由圖可以看出,模型在前5個(gè)周期迭代中損失值迅速下降,表明模型快速擬合,從第6個(gè)周期到第50個(gè)周期,損失值開(kāi)始緩慢減小,在訓(xùn)練迭代90個(gè)周期后,損失值穩(wěn)定在 5~6之間,只有輕微振蕩,表明模型擬合結(jié)束。
為了防止因迭代次數(shù)過(guò)多而產(chǎn)生過(guò)擬合,在訓(xùn)練迭代75個(gè)周期后,每迭代1個(gè)周期輸出1次權(quán)值模型,共產(chǎn)生25個(gè)模型。采用識(shí)別準(zhǔn)確率P、識(shí)別召回率R、準(zhǔn)確率和召回率綜合評(píng)價(jià)指標(biāo)F1、平均精度均值(Mean average precision, mAP)作為模型性能評(píng)價(jià)指標(biāo)。
在目標(biāo)檢測(cè)中每個(gè)類別都可以根據(jù)準(zhǔn)確率P和召回率R繪制P-R曲線,平均精度(Average precision, AP)是P-R曲線與坐標(biāo)軸所圍面積,而mAP是所有類別平均精度的平均值。本文的目標(biāo)檢測(cè)類別為1,因此AP也等于mAP。
為更好地對(duì)模型性能進(jìn)行評(píng)估,需明確各評(píng)價(jià)指標(biāo)優(yōu)先級(jí)。本文奶牛發(fā)情行為識(shí)別試驗(yàn)中,采用的評(píng)價(jià)指標(biāo)優(yōu)先級(jí)由大到小依次為F1、mAP、P、R。模型訓(xùn)練過(guò)程中,各指標(biāo)隨迭代周期的變化曲線如圖7所示。
由圖7可知,在前80個(gè)周期的訓(xùn)練過(guò)程中,各項(xiàng)指標(biāo)變化幅度較大,但總體趨勢(shì)是增長(zhǎng)的;在后20個(gè)周期的訓(xùn)練中,各項(xiàng)指標(biāo)逐漸趨于穩(wěn)定,在小范圍內(nèi)振蕩。周期為97時(shí),F(xiàn)1有最大值,為98.75%;周期為83時(shí),mAP最大值為98.10%;周期為97時(shí),準(zhǔn)確率P最大值為99.57%;周期為82時(shí),召回率R最大值為97.96%。
綜合考慮F1和其他3項(xiàng)指標(biāo),本文最終選用第97個(gè)周期迭代完成后保存的模型作為奶牛發(fā)情行為識(shí)別模型,此時(shí)模型具有最高的F1和準(zhǔn)確率,也具有較高的mAP和召回率。
用篩選出的模型在測(cè)試集上進(jìn)行試驗(yàn),測(cè)試集包含1 440幅圖像,模型共識(shí)別出1 406幅圖像中的奶牛爬跨行為,經(jīng)人工確認(rèn),其中正確識(shí)別1 394幅,錯(cuò)誤識(shí)別12幅,識(shí)別準(zhǔn)確率為99.15%,有34幅圖像中的爬跨行為未被模型識(shí)別,識(shí)別召回率為97.62%,未被識(shí)別的主要原因?yàn)榇嬖谡趽醯呐揽缧袨橐约吧倭恳归g發(fā)生的爬跨行為,其中存在遮擋的爬跨行為28幅,夜間爬跨行為6幅。
對(duì)奶牛軀干的定位及檢測(cè)精度,最終會(huì)影響模型的識(shí)別準(zhǔn)確率,因此,首先對(duì)模型的奶牛軀干定位及檢測(cè)精準(zhǔn)程度進(jìn)行分析。評(píng)價(jià)目標(biāo)檢測(cè)的效果時(shí)需先區(qū)分前景和背景,本文模型中發(fā)情奶牛軀干為目標(biāo)檢測(cè)的前景,圖像幀的其他區(qū)域?yàn)楸尘啊J褂们熬罢`檢率Vff、背景誤檢率Vbf作為模型檢測(cè)準(zhǔn)確度的評(píng)價(jià)指標(biāo)。
(11)
式中Ap——預(yù)測(cè)框區(qū)域面積
Ab——奶牛軀干最小外接矩形面積
S——預(yù)測(cè)框與奶牛軀干最小外接矩形相交區(qū)域面積
從試驗(yàn)結(jié)果中選取200幅具有有效牛身信息的識(shí)別結(jié)果進(jìn)行統(tǒng)計(jì),并與YOLO v3、Faster R-CNN[27]進(jìn)行對(duì)比,如表2所示。由表2可知,本文模型前景檢測(cè)的誤檢率為13.28%,低于YOLO v3的15.44%和Faster R-CNN的14.67%;背景誤檢率為21.55%,較YOLO v3 降低了2.12個(gè)百分點(diǎn),較Faster R-CNN 降低了1.24個(gè)百分點(diǎn)。前景誤檢率實(shí)際上表達(dá)了模型對(duì)奶牛軀干特征提取的準(zhǔn)確性,試驗(yàn)結(jié)果中本文模型的前景誤檢率和背景誤檢率均低于YOLO v3和Faster R-CNN,表明本文模型對(duì)奶牛軀干和非奶牛軀干特征具有更強(qiáng)的區(qū)分能力,模型提取到的特征更為準(zhǔn)確。

表2 本文模型與其他模型的奶牛軀干檢測(cè)準(zhǔn)確率
為進(jìn)一步評(píng)價(jià)本文模型的識(shí)別效果,使用識(shí)別準(zhǔn)確率P、識(shí)別召回率R以及單幀識(shí)別時(shí)間作為評(píng)價(jià)指標(biāo),并與其他模型進(jìn)行對(duì)比,結(jié)果如表3所示。

表3 本文模型與其他模型對(duì)奶牛爬跨行為的識(shí)別效果
由表3可知,本文模型比YOLO v3模型識(shí)別準(zhǔn)確率提高了2.63個(gè)百分點(diǎn),比YOLO v3模型召回率提高了7.28個(gè)百分點(diǎn);與Faster R-CNN相比,本文模型識(shí)別準(zhǔn)確率雖然降低了0.21個(gè)百分點(diǎn),但召回率提高了8.37個(gè)百分點(diǎn),單幀識(shí)別時(shí)間減少了0.093 s。在識(shí)別對(duì)象相同或相似的情況下,本文模型比文獻(xiàn)[3]模型識(shí)別準(zhǔn)確率降低了0.52個(gè)百分點(diǎn),但本文模型具有較強(qiáng)的遷移性,比文獻(xiàn)[17]的模型準(zhǔn)確率提高了0.90個(gè)百分點(diǎn),單幀識(shí)別時(shí)間減少了0.225 s,本文模型比文獻(xiàn)[19]模型準(zhǔn)確率提高了4.65個(gè)百分點(diǎn)。從識(shí)別速度上看,本文模型平均幀率為31 f/s,滿足對(duì)奶牛發(fā)情行為識(shí)別的實(shí)時(shí)性需求。
本文模型未識(shí)別的34幅圖像中有28幅為奶牛發(fā)情行為存在遮擋的圖像。遮擋會(huì)降低模型識(shí)別召回率的原因?yàn)椋赫趽鯗p少了模型可獲取的發(fā)情爬跨行為特征,遮擋嚴(yán)重時(shí)模型無(wú)法提取到足夠的特征信息來(lái)識(shí)別奶牛發(fā)情行為,從而發(fā)生了漏識(shí)別。圖8為存在不同程度遮擋的奶牛發(fā)情行為識(shí)別結(jié)果,圖8a、8b中存在部分遮擋的發(fā)情行為也能被很好識(shí)別出來(lái),圖8c為重度遮擋的發(fā)情行為,模型無(wú)法識(shí)別出發(fā)情行為。
為了對(duì)本文模型的抗遮擋能力進(jìn)行定量評(píng)估,構(gòu)建存在遮擋的奶牛發(fā)情行為樣本集,樣本集共有120幅存在不同程度遮擋的奶牛發(fā)情爬跨行為圖像,使用樣本集對(duì)本文模型進(jìn)行測(cè)試,并與YOLO v3、Faster R-CNN進(jìn)行對(duì)比,使用F1作為評(píng)價(jià)指標(biāo),測(cè)試結(jié)果為:本文模型為90.23%,YOLO v3為86.56%,F(xiàn)aster R-CNN為88.67%。本文模型抗遮擋能力比YOLO v3模型提高了3.67個(gè)百分點(diǎn),比Faster R-CNN提高了1.56個(gè)百分點(diǎn)。進(jìn)一步分析測(cè)試結(jié)果可知,由于奶牛發(fā)生爬跨行為時(shí)頭部和背脊出現(xiàn)上揚(yáng),當(dāng)圖像中包含爬跨牛只頭部和背脊信息,且爬跨行為被遮擋面積不超過(guò)40%時(shí),則奶牛發(fā)情行為能較好地被本文模型所識(shí)別。
統(tǒng)計(jì)資料顯示,奶牛夜間發(fā)情概率為60%~70%,本文模型對(duì)夜間奶牛發(fā)情也具有較好的識(shí)別效果,但仍有少量夜間發(fā)情行為未能被模型識(shí)別,測(cè)試集共有奶牛夜間發(fā)情行為圖像530幅,其中有6幅圖像未被識(shí)別,本文模型識(shí)別夜間發(fā)情行為的準(zhǔn)確率為98.87%。圖9為奶牛夜間發(fā)情行為識(shí)別結(jié)果,由圖可知,圖9a~9d中模型均能準(zhǔn)確識(shí)別發(fā)生了奶牛爬跨行為,圖9e、9f中模型未識(shí)別出爬跨行為。對(duì)比分析可知,出現(xiàn)這一情況主要是由于夜晚奶牛場(chǎng)光線較暗以及低亮度環(huán)境下相機(jī)記錄的圖像不清晰導(dǎo)致。后期可考慮在奶牛活動(dòng)區(qū)加裝照明設(shè)備或更換具有紅外攝像功能的相機(jī)。
試驗(yàn)結(jié)果表明,本文模型具有較強(qiáng)的多尺度目標(biāo)檢測(cè)能力。這主要得益于特征提取網(wǎng)絡(luò)的加深和多尺度特征融合的網(wǎng)絡(luò)結(jié)構(gòu),本文模型通過(guò)加深特征提取網(wǎng)絡(luò),模型對(duì)大目標(biāo)的檢測(cè)性能得以提升,通過(guò)多尺度特征融合,模型增強(qiáng)了對(duì)不同尺度目標(biāo)的檢測(cè)能力。圖10a為大目標(biāo)尺寸的奶牛爬跨行為,圖10b為目標(biāo)尺寸偏小的奶牛爬跨行為,由圖可知,模型均能準(zhǔn)確識(shí)別出奶牛爬跨行為。
為進(jìn)一步評(píng)價(jià)本文模型對(duì)不同尺寸目標(biāo)的檢測(cè)性能,構(gòu)建多尺寸目標(biāo)測(cè)試集,測(cè)試集共有450幅圖像,其中小尺寸(寬:0~290像素,高:0~150像素)目標(biāo)102幅,中等尺寸(寬:290像素~660像素,高:150像素~380像素)目標(biāo)189幅,大尺寸(寬:660像素~1 000像素,高:380像素~540像素)目標(biāo)159幅。使用測(cè)試集對(duì)本文模型進(jìn)行測(cè)試,與YOLO v3、Faster R-CNN進(jìn)行對(duì)比,以F1作為評(píng)價(jià)指標(biāo),測(cè)試結(jié)果如表4所示。

表4 不同尺寸目標(biāo)的奶牛發(fā)情行為識(shí)別結(jié)果對(duì)比
由表4可知,本文模型多尺度目標(biāo)檢測(cè)性能優(yōu)于YOLO v3、Faster R-CNN,尤其是在大尺寸目標(biāo)檢測(cè)方面,本文模型比YOLO v3提高了5.03個(gè)百分點(diǎn),比Faster R-CNN提高了1.26個(gè)百分點(diǎn)。本文模型識(shí)別中等尺寸目標(biāo)的F1為99.47%,高于Faster R-CNN的96.29%和YOLO v3的97.88%。本文模型識(shí)別小尺寸目標(biāo)的F1為86.27%,分別比YOLO v3和Faster R-CNN提高了1.96個(gè)百分點(diǎn)和0.98個(gè)百分點(diǎn)。3種模型對(duì)小尺寸目標(biāo)識(shí)別的F1都偏低,這是由于小尺寸目標(biāo)距離攝像機(jī)較遠(yuǎn),目標(biāo)可用于提取的特征減少,模型無(wú)法獲得足夠的特征來(lái)識(shí)別發(fā)情行為,從而導(dǎo)致結(jié)果的F1偏低。為克服這一問(wèn)題,進(jìn)一步提高奶牛發(fā)情行為識(shí)別準(zhǔn)確率,在后期研究中可考慮使用頂視角度采集奶牛活動(dòng)視頻。
(1)根據(jù)奶牛發(fā)情行為數(shù)據(jù)集特點(diǎn),對(duì)YOLO v3模型錨點(diǎn)框尺寸進(jìn)行重新聚類和優(yōu)化,同時(shí)引入DenseBlock改進(jìn)特征提取網(wǎng)絡(luò),并使用由FIoU和兩框中心距離Dc作為度量方法的邊界框損失函數(shù),提出了一種基于改進(jìn)YOLO v3模型的奶牛發(fā)情行為識(shí)別方法。
(2)在測(cè)試集上的試驗(yàn)表明,改進(jìn)后的模型識(shí)別準(zhǔn)確率為99.15%、召回率為97.62%,比YOLO v3模型識(shí)別準(zhǔn)確率提高了2.63個(gè)百分點(diǎn)、識(shí)別召回率提高了7.28個(gè)百分點(diǎn),模型識(shí)別的平均幀率為31 f/s,能夠滿足實(shí)際養(yǎng)殖環(huán)境下奶牛發(fā)情行為的實(shí)時(shí)識(shí)別,與現(xiàn)有識(shí)別對(duì)象相同或相似的模型相比,本文模型具有較高的識(shí)別精度和較快的識(shí)別速度。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2021年7期