李 泊 沈明霞 劉龍申 陸明洲 孫玉文
(南京農(nóng)業(yè)大學(xué)工學(xué)院, 南京 210031)
智能視頻監(jiān)控技術(shù)在生豬養(yǎng)殖中的應(yīng)用日趨廣泛,利用計(jì)算機(jī)視覺技術(shù)提高生豬行為監(jiān)測(cè)水平已成為農(nóng)業(yè)工程領(lǐng)域的研究熱點(diǎn)之一[1-3]。要實(shí)現(xiàn)視頻圖像中群養(yǎng)豬只的自動(dòng)行為監(jiān)測(cè),準(zhǔn)確的豬只定位是系統(tǒng)必不可少的環(huán)節(jié)[4-6]。隨著研究的深入,僅獲得整體豬只的位置已不能完全滿足精準(zhǔn)監(jiān)測(cè)的需求。例如在豬只飲水、采食、爬胯等行為的監(jiān)測(cè)識(shí)別過程中,相比于整體豬只的位置,利用頭部或尾部等部位信息明顯更加合理[7-11]。因此,準(zhǔn)確獲取豬只的頭部和尾部等關(guān)鍵部位信息對(duì)于提高豬只的行為監(jiān)測(cè)水平具有重要意義。
近年來,對(duì)于圖像中的豬只檢測(cè)問題國內(nèi)外有許多深入研究,旨在不斷提高豬只檢測(cè)的精度[12-15]。而關(guān)于豬只頭尾辨別問題的研究相對(duì)較少,并且大部分情況下僅將此問題作為整個(gè)系統(tǒng)的一個(gè)簡單操作進(jìn)行處理,因此采用方法都較為基礎(chǔ)。KASHIHA等[8]通過分析豬只輪廓各點(diǎn)到質(zhì)心距離曲線的整體趨勢(shì)來判斷頭部位置。NASIRAHMADI等[9]利用擬合橢圓的長軸與豬體輪廓的交點(diǎn)判斷頭尾位置,但并未分辨出頭部和尾部。楊心等[16]在通過橢圓擬合及豬體身長截取出豬體兩端的輪廓后,利用廣義Hough聚類的方法識(shí)別輪廓屬于頭部或尾部。高云等[17]在此方法的基礎(chǔ)上增加了對(duì)輪廓圓度的考慮,進(jìn)一步提高了頭尾判別的精度。上述方法需要建立在豬只個(gè)體分割及其輪廓提取均正確的基礎(chǔ)上,而在光照不均、豬只嚴(yán)重密集等復(fù)雜情況下很難保證輪廓提取的精度。不同于上述方法,文獻(xiàn)[10-11]利用快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast region-based convolutional neural networks, Fast R-CNN)模型直接訓(xùn)練豬只頭部檢測(cè)器,取得了較高的檢測(cè)精度。但這種方法無法處理由于遮擋、強(qiáng)光等因素導(dǎo)致頭部不可見的情況,并且該方法對(duì)頭部與豬只整體分開進(jìn)行檢測(cè),需要對(duì)頭部和其所屬豬只進(jìn)行關(guān)聯(lián),但文中對(duì)此考慮較為簡單,無法處理復(fù)雜情況。
鑒于豬只頭部和尾部在判斷豬只行為中的重要作用,并且二者可以基本確定豬只身體方向,本文選取豬只頭部和尾部為兩類關(guān)鍵部位,從群養(yǎng)豬只的監(jiān)控視頻中自動(dòng)獲取準(zhǔn)確的豬只及其頭尾位置信息,提出一種豬只檢測(cè)及頭尾辨別方法,以提高群養(yǎng)豬只自動(dòng)行為識(shí)別及監(jiān)測(cè)水平。
本文的實(shí)驗(yàn)圖像均采集于南京農(nóng)業(yè)大學(xué)江浦農(nóng)場(chǎng)生豬養(yǎng)殖基地。所選取的實(shí)驗(yàn)豬舍面積約為3.8 m×3.2 m,豬舍中央安裝的鐵欄桿將整個(gè)豬舍分割為兩個(gè)獨(dú)立的小型豬舍,每個(gè)小型豬舍中飼養(yǎng)4頭保育期豬只。監(jiān)控?cái)z像機(jī)安裝于實(shí)驗(yàn)豬舍中心位置的天花板處,近似位于鐵欄桿的正上方,高度約2.5 m。監(jiān)控?cái)z像機(jī)以俯視的角度進(jìn)行拍攝。選用鏡頭焦距為4 mm的??低旸S-2CD3335-I型紅外攝像機(jī)。由于受豬舍高度及攝像機(jī)鏡頭焦距限制,攝像機(jī)所能拍攝到的監(jiān)控畫面并不能完整覆蓋整個(gè)豬舍,因此靠近畫面上側(cè)與左側(cè)豬舍邊緣處的豬只可能會(huì)出現(xiàn)整體或部分身體超出攝像機(jī)成像范圍的情況。
實(shí)驗(yàn)期間攝像機(jī)連續(xù)采集5 d豬只活動(dòng)視頻??紤]到夜晚時(shí)段的豬只多處于睡眠狀態(tài),因此僅選取每日08:00—17:00間豬只較活躍時(shí)段的視頻作為實(shí)驗(yàn)素材。攝像機(jī)工作過程中,監(jiān)控視頻存儲(chǔ)于硬盤錄像機(jī)中,幀率為12 f/s。視頻采集完成后,以20 s間隔從視頻中抽取540幅圖像作為圖像數(shù)據(jù)集,圖像分辨率為2 048像素×1 536像素。從540幅圖像中隨機(jī)選取300幅圖像作為訓(xùn)練集,其余240幅圖像作為測(cè)試集。本文僅關(guān)注圖像中頭尾均完整可見的豬只目標(biāo)。在訓(xùn)練集和測(cè)試集中完整豬只分別為1 956頭和1 584頭。在圖像中用矩形框人工標(biāo)注出所有完整豬只個(gè)體的身體、頭部、尾部,便于后續(xù)的模型訓(xùn)練和測(cè)試。由于所有的實(shí)驗(yàn)圖像數(shù)據(jù)均采集于自然環(huán)境下的群養(yǎng)圈舍,圖像中呈現(xiàn)的許多特點(diǎn)反映了實(shí)際生產(chǎn)環(huán)境的特點(diǎn),例如不均勻的光照、圖像中央的欄桿、多變的豬只姿態(tài),這些因素提高了豬只檢測(cè)和頭尾辨別的難度,因此該圖像測(cè)試集可用于客觀評(píng)價(jià)本文方法在實(shí)際生產(chǎn)應(yīng)用中的性能。
本文提出了一種在群養(yǎng)豬只的監(jiān)控圖像中檢測(cè)豬只目標(biāo)并辨別其頭尾位置的方法。該方法借鑒了計(jì)算機(jī)視覺中研究人體檢測(cè)及姿態(tài)估計(jì)問題的一種思路,即引入基于部位的模型(Part-based model)[18-19],將豬只看作由關(guān)鍵部位按一定空間關(guān)系組合成的目標(biāo)。本文方法流程如圖1所示。
圖1 本文方法流程圖Fig.1 Flow chart of proposed method
首先,在輸入圖像中檢測(cè)豬只整體、豬只頭部、豬只尾部3種目標(biāo)位置,作為進(jìn)一步分析的基礎(chǔ)。綜合考慮檢測(cè)精度及運(yùn)行速度,選擇基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型YOLO v3(You only look once v3)[20]作為目標(biāo)檢測(cè)器,檢測(cè)結(jié)果在圖像中用矩形框表示。接下來,逐個(gè)提取豬只整體的檢測(cè)矩形框判斷其內(nèi)部的部位情況。統(tǒng)計(jì)矩形框中心處于整體豬只矩形框內(nèi)部的頭部和尾部數(shù)目,分別用Nhead和Ntail表示。根據(jù)Nhead和Ntail的取值,分為以下3種情況:
(1)Nhead≥1且Ntail≥1,即豬只整體矩形框內(nèi)部檢測(cè)到頭尾兩種部位,但可能出現(xiàn)多種頭尾組合方法。這種情況下,利用預(yù)先建立好的圖結(jié)構(gòu)模型(Pictorial structure models)[21]對(duì)每種可能的頭尾組合計(jì)算其組合得分,最后選取得分最高且超過閾值tscore的頭尾組合作為當(dāng)前豬只的頭尾位置。
(2)Nhead≥1、Ntail=0或Nhead=0、Ntail≥1,即豬只整體矩形框內(nèi)部僅檢測(cè)到頭部或尾部一種部位。這種情況下需要根據(jù)當(dāng)前圖像的特征推理出缺失部位的位置。獲得推理的部位位置后,接下來的處理方式與情況(1)相同。
(3)Nhead=0且Ntail=0,即豬只整體矩形框內(nèi)未檢測(cè)到任何部位。此時(shí)根據(jù)文獻(xiàn)[16]中基于廣義Hough聚類的方法作為一種彌補(bǔ)措施,辨別出頭部和尾部的位置。同時(shí),當(dāng)前兩種情況下無得分超過閾值的部位組合時(shí),也利用該方法確定頭尾的位置。
通過上述3種處理方式,可以對(duì)檢測(cè)到的每頭豬只目標(biāo)辨別出其頭部和尾部的位置。
YOLO[22]是基于卷積神經(jīng)網(wǎng)絡(luò)的通用目標(biāo)檢測(cè)模型,該模型的特點(diǎn)是在進(jìn)行檢測(cè)時(shí)使用回歸思路預(yù)測(cè)所檢測(cè)目標(biāo)的矩形框,因此與其他需要先進(jìn)行選擇性搜索提取大量候選區(qū)域的檢測(cè)方法相比,能夠大大提高計(jì)算效率。YOLO v3是YOLO系列模型的最新版本,借鑒了殘差網(wǎng)絡(luò)形成更深的網(wǎng)絡(luò)層次,還融合特征金字塔網(wǎng)絡(luò)改善了目標(biāo)檢測(cè)的性能,尤其適于小目標(biāo)的檢測(cè)。因此,從檢測(cè)精度和效率兩方面綜合考慮,本文選用YOLO v3模型檢測(cè)豬只整體和頭尾部位。
一般深度學(xué)習(xí)模型需要大量訓(xùn)練樣本,而本文為了適應(yīng)有限的訓(xùn)練樣本,在模型訓(xùn)練時(shí)使用遷移學(xué)習(xí)的策略,引入在VOC數(shù)據(jù)集上預(yù)訓(xùn)練好的模型。在預(yù)訓(xùn)練模型的基礎(chǔ)上,使用本文訓(xùn)練集中的標(biāo)注數(shù)據(jù)進(jìn)行模型參數(shù)微調(diào),最終獲得訓(xùn)練好的檢測(cè)模型。該模型具有從輸入圖像中檢測(cè)豬只整體及其頭部、尾部3類目標(biāo)的矩形框坐標(biāo)及置信度的功能。
圖2為測(cè)試集中豬只整體及部位檢測(cè)結(jié)果示例。圖中豬只整體檢測(cè)結(jié)果用紅色矩形框標(biāo)示,頭部和尾部檢測(cè)結(jié)果分別用藍(lán)色和綠色矩形框標(biāo)示。為了方便敘述,對(duì)圖像中的豬只標(biāo)記了序號(hào)。由于YOLO v3模型的檢測(cè)精度較高,圖像中的大部分豬只及其部位都能被準(zhǔn)確檢測(cè)到。但在某些特殊情況,如遮擋、快速運(yùn)動(dòng)模糊等因素的影響下,仍然會(huì)存在一些部位漏檢的情況。如圖2中2號(hào)豬只的尾部由于被1號(hào)豬只遮擋而未能檢測(cè)到。另外,即使頭尾能夠被準(zhǔn)確檢測(cè),但如何實(shí)現(xiàn)頭尾與豬只整體間的正確關(guān)聯(lián)也是一個(gè)重要的問題。如3~6號(hào)豬只的檢測(cè)矩形框內(nèi)除了含有相應(yīng)序號(hào)豬只的部位外,還包含了其他豬只的部位。因此,還需要對(duì)部位檢測(cè)結(jié)果進(jìn)行進(jìn)一步分析,才能夠最終確定豬只頭尾位置及其正確關(guān)聯(lián)的整體豬只。
圖2 豬只整體及部位檢測(cè)結(jié)果示例Fig.2 Example of detection results for pig and their parts based on YOLO v3
若從俯視角度觀察豬只,會(huì)發(fā)現(xiàn)其頭部和尾部具有一定的幾何約束關(guān)系。這種約束可以作為一種先驗(yàn)知識(shí),用于衡量頭部和尾部的組合方式屬于同一頭豬的可信度。本文引入圖結(jié)構(gòu)模型來實(shí)現(xiàn)部位組合的功能。圖結(jié)構(gòu)模型是用一組部位和它們之間的聯(lián)系來描述整體目標(biāo)內(nèi)部位組合關(guān)系的模型,廣泛用于人臉、人體等可用不同部位的組合來描述的對(duì)象[23-24]。圖結(jié)構(gòu)模型中的部位代表了整體目標(biāo)的局部視覺特征,部位的選取通常符合目標(biāo)的語義分割方式,如將人體劃分為頭部、軀干、四肢等部位。而部位間用類似彈簧的模型描述部位間的形變特性,將部位的空間組合特征定義為一種形變配置(Deformable configuration)。這樣,圖結(jié)構(gòu)模型就可以靈活表示各種形變配置情況下的整體目標(biāo)。
本文所構(gòu)建的豬只圖結(jié)構(gòu)模型如圖3所示。整個(gè)模型的結(jié)構(gòu)可看作一個(gè)簡單的無向圖,由3種類型的結(jié)點(diǎn)組成:整體豬只結(jié)點(diǎn)Vp、頭部結(jié)點(diǎn)Vh、尾部結(jié)點(diǎn)Vt。每個(gè)結(jié)點(diǎn)的配置信息由其圖像坐標(biāo)決定。在已知3種結(jié)點(diǎn)的圖像坐標(biāo)后,可按圖3的方式構(gòu)造同樣結(jié)構(gòu)的無向圖,并定義得分函數(shù)ψ(Vp,Vh,Vt)計(jì)算當(dāng)前圖結(jié)構(gòu)與預(yù)先建立的圖結(jié)構(gòu)模型的匹配程度。匹配得分為頭尾部位的局部外觀特征得分與部位之間幾何約束得分的加權(quán)疊加。
圖3 豬只圖結(jié)構(gòu)模型示意圖Fig.3 Pictorial structure model for pigs
(1)
φa(Vh,Vt)=(c(Vh)+c(Vt))/2
(2)
φg(Vp,Vh,Vt)=whpN(dhp_norm;μhp,σhp)+
wtpN(dtp_norm;μtp,σtp)+wθN(θht;μθ,σθ)
(3)
(4)
式中φa(·)——部位外觀特征得分函數(shù)
φg(·)——部位間幾何約束得分函數(shù)
wa、wg——部位外觀特征得分、部位間幾何約束得分權(quán)值
c(·)——部位的檢測(cè)置信度,由YOLO v3模型輸出,取值為[0,1]
N(·)——高斯概率密度函數(shù)
dhp_norm——頭部與豬只中心點(diǎn)間的歸一化距離
dtp_norm——尾部與豬只中心點(diǎn)間的歸一化距離
不能在市場(chǎng)經(jīng)濟(jì)的浪潮中立足和發(fā)展的工匠精神是不可取的。工匠精神所依附的事業(yè)如果不能發(fā)展,那么再美好的工匠精神也只是鏡花水月甚至是自我陶醉。
θht——頭、尾部與豬只中心連線形成的夾角
μhp、μtp、μθ——高斯分布均值
σhp、σtp、σθ——高斯分布的標(biāo)準(zhǔn)差
whp、wtp、wθ——3項(xiàng)得分對(duì)應(yīng)的權(quán)值
dhp——頭部與豬只中心點(diǎn)之間的歐氏距離
dtp——尾部與豬只中心點(diǎn)之間的歐氏距離
dht——頭部與尾部間的歐氏距離
頭尾部位的外觀特征得分φa表示頭尾結(jié)點(diǎn)檢測(cè)置信度的平均值。部位間的幾何約束得分為3項(xiàng)得分的加權(quán)求和:頭部與豬只中心點(diǎn)之間的距離約束得分;尾部與豬只中心點(diǎn)之間的距離約束得分;頭部、尾部與豬只中心點(diǎn)之間的方向約束得分。為了靈活描述圖結(jié)構(gòu)模型中部位間的空間形變約束,幾何約束得分中的3個(gè)得分項(xiàng)均采用高斯概率密度函數(shù)計(jì)算部位組合的得分。高斯分布的參數(shù)由豬只先驗(yàn)結(jié)構(gòu)知識(shí)與訓(xùn)練集中參數(shù)的統(tǒng)計(jì)規(guī)律綜合確定。為了保證高斯概率密度函數(shù)的參數(shù)不受豬只尺寸的影響,將豬只頭尾距離進(jìn)行歸一化。
當(dāng)確定豬只檢測(cè)矩形框內(nèi)的頭尾組合方式后,利用式(1)可計(jì)算當(dāng)前組合得分,得分反映了部位配置與預(yù)先建立的圖結(jié)構(gòu)模型的匹配程度。當(dāng)整體豬只檢測(cè)矩形框內(nèi)包含多種可能的頭尾組合時(shí),可通過不同組合方式的得分確定正確關(guān)聯(lián)的頭尾位置。以圖2中的4號(hào)豬只為例,其檢測(cè)矩形框中包含2個(gè)頭部檢測(cè)結(jié)果,因此可形成兩種頭尾組合方式,如圖4所示。利用式(1)進(jìn)行計(jì)算,圖4a的頭尾組合得分為0.875 1,而圖4b的頭尾組合得分為0.374 6,因此判定圖4a的組合方式為最終確定的頭尾位置。
圖4 同一檢測(cè)矩形框內(nèi)的2種頭尾組合示例Fig.4 Examples for two combinations of heads and tails in one detection bounding box of a pig
1.4節(jié)中的部位組合方法要求豬只整體檢測(cè)矩形框內(nèi)同時(shí)存在頭部和尾部兩種部位。當(dāng)其中一種類型的部位缺失時(shí),需要推理出缺失部位的位置才能構(gòu)建出完整的圖結(jié)構(gòu)。因此,本文提出了一種利用豬只身體的灰度特性與形狀特性推理缺失部位位置的方法,方法流程如圖5所示。
圖5 缺失部位推理流程圖Fig.5 Flow chart of missing part inference
首先,提取豬只檢測(cè)矩形框內(nèi)的圖像,使用最大熵閾值分割法[25]對(duì)該圖像進(jìn)行二值化操作。最大熵閾值分割法可以根據(jù)圖像中像素灰度的統(tǒng)計(jì)特性自動(dòng)確定閾值,無需設(shè)定參數(shù)即可分割出具有較亮灰度的前景像素。然后,進(jìn)行形態(tài)學(xué)開運(yùn)算操作,目的是去除前景中小面積的連通分量區(qū)域,且盡可能將粘連區(qū)域分割。接下來,選出圖像中面積最大且面積超過一定閾值的連通分量區(qū)域,即滿足
Amax≥αWimgHimg
(5)
式中Amax——連通分量區(qū)域的最大面積
α——最大面積閾值
Wimg——整體豬只圖像的寬度
Himg——整體豬只圖像的高度
若存在滿足面積約束條件的連通分量,則對(duì)該區(qū)域進(jìn)行橢圓擬合,獲取擬合橢圓的各項(xiàng)參數(shù)。根據(jù)豬只的身體形狀特點(diǎn),理想情況下豬只的頭部和尾部應(yīng)該處于擬合橢圓長軸的兩端。因此,在已知橢圓中心點(diǎn)坐標(biāo)(x0,y0)、長軸長度a、橢圓傾斜角φ的條件下,根據(jù)
(6)
(7)
式中 (x1,y1)——推斷頭部中心點(diǎn)坐標(biāo)
(x2,y2)——推斷尾部中心點(diǎn)坐標(biāo)
β——頭尾位置分割橢圓長軸的比例,為常數(shù)
θe——橢圓長軸與水平方向的夾角
推斷出兩個(gè)備選部位中心點(diǎn)(x1,y1)和(x2,y2)。最后,選取兩個(gè)備選部位點(diǎn)中距已知所檢測(cè)到的部位較遠(yuǎn)的點(diǎn)為推理結(jié)果。部位推理結(jié)果與所檢測(cè)到的部位一同構(gòu)成一種頭尾組合,當(dāng)存在多種頭尾組合時(shí)可利用1.3節(jié)的方法選取最優(yōu)的組合方式作為頭尾辨別的結(jié)果。
以圖2中的2號(hào)豬只為例,圖6展示了尾部推理過程。圖中推理出的部位中心點(diǎn)用虛線框標(biāo)記,可以看到被遮擋的尾部能夠被正確推理。
圖6 部位推理過程示例Fig.6 Example for process of part inference
經(jīng)過上述方法的處理,圖2中的豬只均能正確分辨其頭尾位置,結(jié)果如圖7所示。
圖7 對(duì)圖2中所檢測(cè)到豬只的頭尾辨別結(jié)果Fig.7 Head/tail identification results for Fig.2
實(shí)驗(yàn)所用的硬件處理平臺(tái)為臺(tái)式計(jì)算機(jī),配置為Intel i7-8700K 3.7 GHz CPU,GPU為GTX1080Ti,帶有11 GB獨(dú)立顯存和16 GB內(nèi)存。實(shí)驗(yàn)中YOLO v3模型的學(xué)習(xí)和測(cè)試部分在開源的Darknet框架下使用GPU運(yùn)行,對(duì)部位檢測(cè)結(jié)果的處理分析,如計(jì)算頭尾組合得分、部位推理等操作則在Matlab平臺(tái)上運(yùn)行。實(shí)驗(yàn)中的關(guān)鍵參數(shù)如表1所示。
表1 實(shí)驗(yàn)中的關(guān)鍵參數(shù)Tab.1 Settings of important parameters in experiments
使用精確率(Precision)和召回率(Recall)兩個(gè)指標(biāo)衡量豬只整體及部位的定位精度。需要注意的是,對(duì)豬只整體來說,若檢測(cè)矩形框與預(yù)先標(biāo)定的真實(shí)矩形框的交并比(Intersection over union)大于0.5,則定義為檢測(cè)正確;而對(duì)于檢測(cè)或推理獲得的頭尾位置,其中心點(diǎn)處于預(yù)先標(biāo)記的真實(shí)頭尾矩形框范圍內(nèi),則認(rèn)為部位定位正確。另一評(píng)價(jià)指標(biāo)為豬只頭尾辨別的精確率,即計(jì)算頭尾與豬只整體正確關(guān)聯(lián)且頭尾位置均準(zhǔn)確的豬只占所有檢測(cè)到豬只的比例。
為了驗(yàn)證本文方法的有效性,本文在測(cè)試集上進(jìn)行了實(shí)驗(yàn)。表2為直接利用YOLO v3模型檢測(cè)豬只整體及部位的結(jié)果和在此基礎(chǔ)上進(jìn)一步利用圖結(jié)構(gòu)模型進(jìn)行部位組合和部位推理后的結(jié)果。從表2可以看出,YOLO v3模型在檢測(cè)豬只整體方面可以獲得較理想的結(jié)果。但由于頭、尾部位的圖像尺寸較小,使得圖像中包含的視覺特征不足,頭部和尾部檢測(cè)的精確率和召回率均低于整體豬只的檢測(cè)精度。同時(shí)也注意到,尾部檢測(cè)的精確率和召回率略低于頭部,這也符合圖像的特點(diǎn),即尾部圖像相對(duì)于頭部圖像更缺乏明顯的視覺特征,且相對(duì)于頭部更容易因擁擠被遮擋,導(dǎo)致尾部檢測(cè)的漏檢增多。表2說明經(jīng)過部位組合和部位推理等操作后,頭部和尾部檢測(cè)的精確率和召回率都有明顯提升。一方面是因?yàn)槌晒ν评沓隽瞬糠秩笔Р课唬硪环矫媸怯捎谝恍┎课粰z測(cè)虛警(False alarms),未能與整體豬只相關(guān)聯(lián)而被去除。由于部位組合后每頭豬只整體都能確認(rèn)一對(duì)頭尾組合,因此漏檢部位數(shù)與虛警部位數(shù)是相同的,這時(shí)精確率與召回率相等。
表2 部位組合及推理前后豬只整體和部位的檢測(cè)結(jié)果Tab.2 Detection results for pigs and their parts before and after part assemble and inference %
本文方法、文獻(xiàn)[10]方法、文獻(xiàn)[16]方法的豬只頭尾辨別精確率分別為96.22%、91.53%、79.41%。需要注意文獻(xiàn)[10]方法僅實(shí)現(xiàn)了頭部與整體的關(guān)聯(lián),且使用的檢測(cè)模型為Fast R-CNN。為了便于比較,在實(shí)驗(yàn)中將尾部也用同樣的方法與整體豬只相關(guān)聯(lián),且將檢測(cè)模型替換為YOLO v3,這樣更能在同等條件下證明本文所提出的圖結(jié)構(gòu)模型與部位推理方法的作用及意義。另外,實(shí)驗(yàn)中使用文獻(xiàn)[16]的方法時(shí),利用了本文的部位推理方法獲取擬合橢圓,然后將橢圓長軸兩端的前景區(qū)域作為豬只身體兩端的輪廓,用于計(jì)算廣義Hough聚類的結(jié)果。這里與原文的輪廓提取方法有細(xì)微差別。本文方法相對(duì)于另外兩種對(duì)比方法在頭尾辨別精確率上具有明顯優(yōu)勢(shì)。相對(duì)于文獻(xiàn)[10]中的方法,本文方法的優(yōu)勢(shì)在于增加了構(gòu)建圖結(jié)構(gòu)模型計(jì)算頭尾組合得分及部位推理兩部分,因此可以處理豬只整體矩形框內(nèi)存在多種頭尾組合方式或部位漏檢等特殊情況,而文獻(xiàn)[16]的方法需要在頭尾輪廓準(zhǔn)確提取的基礎(chǔ)上實(shí)現(xiàn)。本文實(shí)驗(yàn)的測(cè)試圖像拍攝于光照不均勻、背景干擾復(fù)雜的圈舍環(huán)境下,使用閾值分割方法很難獲得完全精確的豬只前景區(qū)域,因此依靠前景輪廓判斷頭尾也很難獲得準(zhǔn)確結(jié)果。圖8為測(cè)試集中豬只頭尾辨別結(jié)果示例。圖8中左圖為本文方法辨別頭尾的結(jié)果,右圖為文獻(xiàn)[16]方法的辨別結(jié)果,其中藍(lán)色和綠色框分別為頭部和尾部的辨別結(jié)果。圖8a和圖8c為檢測(cè)部位缺失時(shí)的情況,圖8b和圖8d為整體豬只矩形框內(nèi)存在多種部位組合的情況。從圖8中可直觀感受到本文方法相對(duì)于其他兩種方法的優(yōu)勢(shì)。需要注意的是,本文在豬只整體矩形框內(nèi)沒有檢測(cè)到任何部位時(shí),使用文獻(xiàn)[16]中的方法作為補(bǔ)償方案。由于這種情況非常少見,因此少量的精度損失是可接受的。
圖8 頭尾辨別結(jié)果示例Fig.8 Examples of pig head/tail identification
本文所提出的豬只頭尾辨別方法是建立在對(duì)豬只整體及其頭尾準(zhǔn)確定位的基礎(chǔ)上,即確保YOLO v3模型的檢測(cè)精度。作為一個(gè)深度神經(jīng)網(wǎng)絡(luò)模型,決定YOLO v3模型檢測(cè)性能的重要因素為訓(xùn)練樣本的質(zhì)量。因此,若要將本文方法推廣應(yīng)用到其他俯視拍攝的視頻監(jiān)控場(chǎng)景中,只需將該場(chǎng)景下的豬只樣本圖像進(jìn)行標(biāo)記,并用其對(duì)YOLO v3模型進(jìn)行參數(shù)微調(diào)即可。圖9為另一個(gè)場(chǎng)景中,對(duì)YOLO v3模型進(jìn)行參數(shù)微調(diào)并結(jié)合圖結(jié)構(gòu)模型對(duì)豬只頭尾辨別的結(jié)果。從圖9中可以看出,本文方法依然能正確辨別出豬只頭尾位置,證明了本文方法具有良好的泛化性能。
圖9 另一場(chǎng)景下的豬只頭尾辨別結(jié)果示例Fig.9 Examples of pig head/tail identification results in another scene
雖然本文方法取得了可靠的豬只頭尾辨別效果,但依然存在一定的缺點(diǎn)。首先,本文方法必須建立在豬只整體正確檢測(cè)的基礎(chǔ)上,且最終頭尾辨別的正確率高度依賴頭尾檢測(cè)的精度。若部位漏檢率較高,或存在大量的虛警目標(biāo),會(huì)降低頭尾辨別的精度。其次,本文方法限定一個(gè)豬只整體檢測(cè)矩形框內(nèi)僅存在一種正確的頭尾組合,若豬只過于密集,導(dǎo)致一個(gè)矩形框內(nèi)存在兩個(gè)完整的豬只身體時(shí),本文無法辨別兩只豬各自的頭尾組合。另外,本文所用的部位推理方法依然較為基礎(chǔ),雖然目前作為一種彌補(bǔ)手段暫時(shí)可行,但若希望繼續(xù)提高算法精度,仍需要進(jìn)行更深入的考慮。
提出了一種基于YOLO v3與圖結(jié)構(gòu)模型的群養(yǎng)豬只頭尾辨別方法。在實(shí)際圈舍群養(yǎng)環(huán)境下的監(jiān)控圖像集上進(jìn)行了實(shí)驗(yàn),結(jié)果表明,本文方法比YOLO v3模型在頭尾定位的精確率和召回率上均有明顯提高,本文方法的頭尾辨別精確率可達(dá)96.22%,優(yōu)于文獻(xiàn)[10]和文獻(xiàn)[16]的方法。因此,本文方法可有效實(shí)現(xiàn)群養(yǎng)豬只的準(zhǔn)確檢測(cè)及頭尾辨別,受光照、豬只頭數(shù)、姿態(tài)等干擾因素的影響較小。