張宏鳴 李永恒 周利香 汪 潤 李書琴 王紅艷
(1.西北農(nóng)林科技大學(xué)信息工程學(xué)院, 陜西楊凌 712100; 2.寧夏智慧農(nóng)業(yè)產(chǎn)業(yè)技術(shù)協(xié)同創(chuàng)新中心, 銀川 750004;3.西部電子商務(wù)股份有限公司, 銀川 750004)
牛的行為影響著牛的健康和產(chǎn)出[1-4]。通過骨架提取可以獲知牛的姿態(tài),為牛的反芻、運動、進(jìn)食、站立、臥倒等行為識別[5-10]提供信息支持?;陴B(yǎng)殖場的監(jiān)控視頻進(jìn)行的多牛骨架提取,對大型肉牛養(yǎng)殖場的精細(xì)化管理與精準(zhǔn)化飼喂具有重要意義。
多目標(biāo)骨架提取[11-12]是多牛姿態(tài)信息獲取的重要方法?;谏疃葘W(xué)習(xí)的多目標(biāo)骨架提取方法[13-14]分為自上而下和自下而上兩類[15-16]。自上而下包括:CHEN等[17]在目標(biāo)檢測器后連接基于GlobalNet和RefineNet的級聯(lián)金字塔網(wǎng)絡(luò)(Cascaded pyramid network,CPN)模型進(jìn)行多目標(biāo)骨架提取;FANG等[18]提出了一種由SSTN(Symmetric spatial transformer network)、NMS(Non-maximum-suppression)和PGPG(Pose-guided proposals generator)組成的RMPE(Regional multi-person pose estimation)框架用于多目標(biāo)骨架提取;PAPANDREOU等[19]以Faster RCNN作為目標(biāo)檢測器,使用ResNet檢測目標(biāo)的熱圖和偏移量,最后將二者融合得到關(guān)鍵點位置。
自下而上包括:CAO等[20]提出了PAFs(Part affinity fields)方法學(xué)習(xí)身體部位和對應(yīng)個體之間的關(guān)聯(lián)用于多人骨架提?。籆HENG等[21]提出了HigherHRNet方法進(jìn)行人體多目標(biāo)骨架提取,緩解了傳統(tǒng)的自下向上方法對于小尺度人體骨架提取錯誤率較高問題;PISHCHULIN等[22]提出的DeepCut方法首先提取關(guān)鍵點候選區(qū)域,對關(guān)鍵點進(jìn)行分類,在人體多目標(biāo)骨架提取任務(wù)中表現(xiàn)良好。
人體的多目標(biāo)骨架提取技術(shù)已經(jīng)相當(dāng)成熟[23-24],但對于大型動物如肉牛的多目標(biāo)骨架提取技術(shù)報道相對少見。在大型動物的多目標(biāo)骨架提取方面,宋懷波等[25]基于自下而上的思路,提出了基于PAFs的奶牛骨架提取模型。該模型的置信度在單目標(biāo)方面為78.90%;雙目標(biāo)方面為67.94%;3個及以上目標(biāo)方面為48.59%。該模型在多目標(biāo)方面的骨架提取精度較低,有待進(jìn)一步改進(jìn)。
本文提出一種基于YOLO v3[26-28]和SH(Stacked Hourglass)[29]的自上而下肉牛多目標(biāo)骨架提取算法,解決在一定目標(biāo)數(shù)量范圍內(nèi)隨著目標(biāo)數(shù)量的增加模型精度急劇降低的問題。利用真實大型牛場監(jiān)控視頻,提取關(guān)鍵幀構(gòu)建目標(biāo)檢測數(shù)據(jù)集和骨架提取數(shù)據(jù)集;設(shè)計16個關(guān)鍵點全面標(biāo)識肉牛姿態(tài)情況;使用改進(jìn)YOLO v3算法構(gòu)建目標(biāo)檢測模型并結(jié)合骨架提取模型實現(xiàn)肉牛的多目標(biāo)骨架提取,將為肉牛的精準(zhǔn)化養(yǎng)殖提供技術(shù)支持。
(1)實驗數(shù)據(jù)
選用某肉牛養(yǎng)殖場棚內(nèi)和場外兩種不同環(huán)境下的西門塔爾牛和安格斯牛實際監(jiān)控視頻為實驗數(shù)據(jù),攝像頭位于養(yǎng)殖大棚上,以斜向下角度拍攝,拍攝范圍為整個肉牛場地。每段肉牛視頻長35 min,格式為mp4,分辨率為1 920像素×1 080像素,幀率為24 f/s。
(2)實驗環(huán)境
本文使用CentOS 7系統(tǒng)服務(wù)器,其硬件配置為Intel Xeon E5-2650 v4 CPU 2.20 GHz處理器和NVIDIA Corporation GP100GL[Tesla P100 PCIe 16GB] (rev a1)顯卡,軟件配置為Python 3.7.5編程語言、Pytorch 1.2.0深度學(xué)習(xí)框架和Cuda 10.0加速程序。
本研究旨在使用深度學(xué)習(xí)的方法,通過處理肉牛監(jiān)控視頻獲得肉牛骨架,加以分析進(jìn)而對肉牛的站立和臥倒兩種行為進(jìn)行識別。技術(shù)路線如圖1所示,包括4個環(huán)節(jié):①數(shù)據(jù)集構(gòu)建。從采集的視頻中提取關(guān)鍵幀,對關(guān)鍵幀進(jìn)行標(biāo)注和剪裁,構(gòu)建目標(biāo)檢測、骨架提取和多目標(biāo)骨架提取數(shù)據(jù)集。②目標(biāo)檢測模型訓(xùn)練。利用目標(biāo)檢測數(shù)據(jù)集訓(xùn)練YOLO v3和NC-YOLO v3模型,進(jìn)行評估對比。③骨架提取模型訓(xùn)練。利用骨架提取數(shù)據(jù)集正常訓(xùn)練和多尺度訓(xùn)練骨架提取模型,進(jìn)行評估對比。④多目標(biāo)骨架提取模型構(gòu)建。結(jié)合目標(biāo)檢測和骨架提取最優(yōu)模型,實現(xiàn)肉牛的多目標(biāo)骨架提取。
圖1 技術(shù)路線圖Fig.1 Technology road map
1.2.1數(shù)據(jù)集構(gòu)建
(1)數(shù)據(jù)預(yù)處理
對視頻進(jìn)行篩選,去掉夜間、無牛等情況的視頻。由于視頻中相鄰幀具有很高的重合度,為避免數(shù)據(jù)的重復(fù)性,提取出視頻中較為清晰、目標(biāo)分明、內(nèi)容差異較大的幀。最后共形成10 804幅肉牛圖像。
(2)肉牛體框標(biāo)注
對9 786幅圖像中所有需要檢測的肉牛標(biāo)注覆蓋全身的體框,如圖2a所示。
圖2 數(shù)據(jù)標(biāo)注Fig.2 Data annotations
(3)肉牛體框和關(guān)鍵點標(biāo)注
對1 018幅圖像標(biāo)注肉牛體框,對標(biāo)注出體框的每頭肉牛進(jìn)行關(guān)鍵點標(biāo)注(圖2b)??紤]到肉牛的頭部、四肢和脊椎位置是肉牛姿態(tài)情況的重要組成部分,本研究著重對這3部分進(jìn)行標(biāo)注。在肉牛頭部于脖子、眉間設(shè)置2個關(guān)鍵點,在肢體部分3個關(guān)節(jié)設(shè)置3個關(guān)鍵點,在脊椎的椎首和椎尾設(shè)置2個關(guān)鍵點,共計16個關(guān)鍵點表示肉牛姿態(tài)情況。具體關(guān)鍵點標(biāo)注如圖3所示。
圖3 關(guān)鍵點設(shè)置Fig.3 Key point setting1.眉間 2.脖子 3.椎首 4.椎尾 5.前左腿根 6.前左膝 7.前左蹄 8.后左腿根 9.后左膝 10.后左蹄 11.前右腿根 12.前右膝 13.前右蹄 14.后右腿根 15.后右膝 16.后右蹄
(4)標(biāo)注數(shù)據(jù)的處理
將僅標(biāo)注體框的肉牛圖像制作為COCO格式的目標(biāo)檢測數(shù)據(jù)集,訓(xùn)練目標(biāo)檢測模型。將918幅標(biāo)注體框和關(guān)鍵點的肉牛圖像進(jìn)行裁剪,制作為共有3 414幅單牛圖像的骨架提取數(shù)據(jù)集,訓(xùn)練骨架提取模型。將100幅標(biāo)注體框和關(guān)鍵點的肉牛圖像制作為多目標(biāo)骨架提取數(shù)據(jù)集,進(jìn)行多目標(biāo)骨架提取模型的評估。為了驗證目標(biāo)數(shù)量對檢測精度的影響,制作20幅單牛、雙牛、4牛、6牛、10牛和15牛及以上數(shù)量的多目標(biāo)骨架提取數(shù)據(jù)集,多目標(biāo)骨架提取數(shù)據(jù)集共220幅。3種數(shù)據(jù)集名稱、圖像數(shù)量等如表1所示。
表1 數(shù)據(jù)集圖像數(shù)量分布Tab.1 Data set image distribution
1.2.2目標(biāo)檢測模型訓(xùn)練
本研究選用YOLO v3算法作為目標(biāo)檢測器。YOLO v3是一步產(chǎn)生目標(biāo)位置坐標(biāo)和類別概率的單階段目標(biāo)檢測算法,使用Darknet53深度神經(jīng)網(wǎng)絡(luò)作為主干部分,提取尺寸為Y×Y的特征圖。特征圖中每個單元格負(fù)責(zé)檢測落于此位置目標(biāo)的A個體框坐標(biāo)和類別概率。體框坐標(biāo)是5維向量(x,y,w,h,conf),其中,x、y、w、h、conf分別對應(yīng)體框中心點x坐標(biāo)、y坐標(biāo)、體框?qū)挾?、體框高度和物體置信度。類別概率是介于0與1之間的n(類別總數(shù))維向量,因此特征圖維度為A×Y×Y×(5+n)。Darknet53輸出3種不同尺寸的特征圖,利用3個YOLO層分別處理,實現(xiàn)圖像的多尺度檢測,具有優(yōu)秀的檢測能力和準(zhǔn)確度。由于養(yǎng)殖場肉牛數(shù)量密集互相遮擋,某些肉牛身體部分被遮擋導(dǎo)致露出部分較為分散,且監(jiān)控畫面中某些肉牛因距離攝像頭太近而尺寸太大,模型感受野不足將會導(dǎo)致檢測未被完全遮擋和太大尺寸肉牛的效果較差。傳統(tǒng)的目標(biāo)檢測具有提取目標(biāo)位置和對目標(biāo)分類兩種功能,而養(yǎng)殖場通常只存在一種養(yǎng)殖動物,因此,本文所用目標(biāo)檢測器可以不必對目標(biāo)進(jìn)行分類。為了加強模型的感受野和特征提取能力,同時提高目標(biāo)檢測效率和減小網(wǎng)絡(luò)參數(shù)量,對YOLO v3模型做了如下改進(jìn):
(1)在Darknet53后引入RFB模塊[30]。RFB通過模擬人類視覺的感受野以擴大模型的感受野,提高對部分遮擋和較大尺寸肉牛的檢測精度。RFB由多分支卷積和空洞卷積構(gòu)成,基于SSD提出的RFBNet的平均精度均值(mAP)達(dá)到82.20%。 RFB模塊如圖4所示。
圖4 RFB結(jié)構(gòu)圖Fig.4 RFB structure diagram
(2)去除網(wǎng)絡(luò)分類功能提高目標(biāo)檢測效率,減小網(wǎng)絡(luò)參數(shù)量。
改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。訓(xùn)練改進(jìn)前的YOLO v3和改進(jìn)后的NC-YOLO v3目標(biāo)檢測模型,學(xué)習(xí)率均為1×10-5,數(shù)據(jù)處理批次均為16,均采用多尺度訓(xùn)練。
圖5 YOLO v3改進(jìn)前、后結(jié)構(gòu)圖Fig.5 Structure diagrams before and after improvement of YOLO v3
目標(biāo)檢測模型參數(shù)設(shè)置如下:非最大性抑制閾值設(shè)為0.5,物體置信度設(shè)為0.5,數(shù)據(jù)處理批次設(shè)為1,圖像尺寸設(shè)為416像素×416像素。通過訓(xùn)練過程中的損失、平均精度變化情況和目標(biāo)檢測多種評價指標(biāo),對YOLO v3和NC-YOLO v3模型進(jìn)行評估對比。
1.2.3骨架提取模型訓(xùn)練
骨架提取是通過檢測目標(biāo)身體關(guān)鍵點,然后將關(guān)鍵點依序連接進(jìn)而形成骨架信息。本研究選用SH算法作為關(guān)鍵點檢測器。SH算法在MPII數(shù)據(jù)集上的正確關(guān)鍵點比例(Percentage of correct key points,PCK)達(dá)到99.00%,基于頭部長度的正確關(guān)鍵點比例(Percentage of correct key points based on
head length,PCKh)達(dá)到90.90%,在單目標(biāo)關(guān)鍵點檢測方面的準(zhǔn)確度較高。其由全卷積網(wǎng)絡(luò)構(gòu)成,初級模塊為殘差網(wǎng)絡(luò),具有高效的特征提取能力。SH可由多個Hourglass網(wǎng)絡(luò)堆疊而成,前一個Hourglass的輸出作為后一個的輸入,可以對關(guān)鍵點相對位置特征進(jìn)行提取。由于肉牛的毛色復(fù)雜多樣、所處環(huán)境復(fù)雜多變、四肢高度相似、遮擋嚴(yán)重,數(shù)量較少的堆疊Hourglass網(wǎng)絡(luò)對于細(xì)節(jié)特征感知能力較差,通過單牛圖像預(yù)測關(guān)鍵點位置較為困難。本文采用8層堆疊的Hourglass(8SH)網(wǎng)絡(luò)進(jìn)行關(guān)鍵點檢測,構(gòu)建骨架提取模型。其模型結(jié)構(gòu)如圖6所示。
圖6 8SH結(jié)構(gòu)圖Fig.6 8SH structure diagram
設(shè)置濾除置信度濾除最大置信度較小的關(guān)鍵點。模型輸出熱圖中的最大值大于此置信度,則表示該熱圖所預(yù)測的關(guān)鍵點可見,反之,則其不可見,并將其濾除。
正常訓(xùn)練和多尺度訓(xùn)練骨架提取模型。訓(xùn)練所用數(shù)據(jù)處理批次為4,學(xué)習(xí)率為1×10-5。正常訓(xùn)練所用圖像尺寸為256像素×256像素,多尺度訓(xùn)練每個數(shù)據(jù)處理批次圖像尺寸不同,從192像素×192像素、256像素×256像素、320像素×320像素3種尺寸中隨機選擇。
骨架提取模型參數(shù)設(shè)置如下:數(shù)據(jù)處理批次設(shè)為1,關(guān)鍵點濾除置信度設(shè)為0.5,圖像尺寸設(shè)為256像素×256像素。通過訓(xùn)練過程中的損失變化情況和骨架提取評價指標(biāo)對2種不同訓(xùn)練方式下訓(xùn)練的模型進(jìn)行評估對比。
1.2.4多目標(biāo)骨架提取模型構(gòu)建
本文基于自上而下的思路實現(xiàn)肉牛的多目標(biāo)骨架提取。訓(xùn)練目標(biāo)檢測和骨架提取模型后,經(jīng)過選擇得到兩個最優(yōu)模型,進(jìn)而基于最優(yōu)模型構(gòu)建多目標(biāo)骨架提取模型。多目標(biāo)骨架提取模型主要包含4個步驟,模型流程如圖7所示。①通過目標(biāo)檢測模型檢測輸入圖像肉牛體框。②從原圖中根據(jù)肉牛體框裁剪出單牛圖像。③通過骨架提取模型檢測單牛圖像的關(guān)鍵點。④將單牛圖像關(guān)鍵點映射至原圖像所在位置,依序連接關(guān)鍵點進(jìn)而形成多牛骨架。
圖7 多目標(biāo)骨架提取模型流程圖Fig.7 Flow chart of multi-target skeleton extraction model
使用多目標(biāo)骨架提取數(shù)據(jù)集,對以最優(yōu)YOLO v3模型構(gòu)建的多目標(biāo)骨架提取模型和以最優(yōu)NC-YOLO v3模型構(gòu)建的多目標(biāo)骨架提取模型根據(jù)評價指標(biāo)進(jìn)行對比。根據(jù)單牛、雙牛、4牛、6牛、10牛和15牛及以上數(shù)量的數(shù)據(jù)對最優(yōu)多目標(biāo)骨架提取模型按照評價指標(biāo)進(jìn)行對比。采用非最大性抑制閾值0.5、物體置信度0.5、數(shù)據(jù)處理批次1和圖像尺寸416像素×416像素進(jìn)行目標(biāo)檢測。采用數(shù)據(jù)處理批次1、關(guān)鍵點濾除置信度0.5和圖像尺寸256像素×256像素進(jìn)行骨架提取。
衡量一個目標(biāo)檢測算法,通常根據(jù)其目標(biāo)檢測的準(zhǔn)確度、分類的正確率和檢測的目標(biāo)數(shù)量進(jìn)行評估。本文所用目標(biāo)檢測模型不需要進(jìn)行分類,因此只需依據(jù)其目標(biāo)檢測的準(zhǔn)確度和檢測目標(biāo)數(shù)量進(jìn)行評估。
模型的輸出為一系列的目標(biāo)體框坐標(biāo),需要將其與真實坐標(biāo)進(jìn)行對比,得到其準(zhǔn)確率。使用計算模型輸出的體框坐標(biāo)與真實體框坐標(biāo)的交并比(Intersection over union, IoU)評價兩者之間的相似程度。利用交并比判斷模型檢測結(jié)果的正確性。本文在評估目標(biāo)檢測模型時,設(shè)置交并比閾值為0.5,即交并比大于0.5的預(yù)測結(jié)果認(rèn)為是正確預(yù)測,反之,則認(rèn)為是錯誤的預(yù)測結(jié)果。精度(Precision,P)即為正確的預(yù)測占所有預(yù)測的百分比,值越大說明輸出越準(zhǔn)確。召回率(Recall,R)即為正確的預(yù)測占所有真實框的百分比,值越大說明檢測覆蓋程度越好。
使用Precision-recall(PR)曲線計算平均精度(Average precision,AP)。AP即PR曲線與坐標(biāo)軸所圍的面積。AP調(diào)和了準(zhǔn)確率和召回率,對目標(biāo)檢測模型進(jìn)行綜合衡量。在此,不需要計算目標(biāo)檢測的mAP。mAP為多個類別AP的平均值,本文所使用目標(biāo)檢測模塊已經(jīng)剔除了分類功能。
將目標(biāo)檢測模型的運行時間和模型參數(shù)文件所占存儲空間作為評價指標(biāo)。
骨架提取模型的評估主要是評估關(guān)鍵點的相似度。本文中的骨架提取模型輸出16幅熱圖,經(jīng)過處理后得到16個關(guān)鍵點坐標(biāo),將其與真實坐標(biāo)進(jìn)行對比,評估骨架提取模型的效果。物體關(guān)鍵點相似度(Object key point similarity,OKS)是常用的骨骼關(guān)鍵點檢測算法的評估指標(biāo)。其計算公式為
(1)
式中Oks——骨架提取中關(guān)鍵點相似度
δ——關(guān)鍵點的可見程度,0表示不可見,1表示可見
S——單目標(biāo)圖像像素面積,像素
di——關(guān)鍵點i真實坐標(biāo)與預(yù)測坐標(biāo)的歐氏距離
σi——關(guān)鍵點i的歸一化因子
將測試集輸入模型后計算OKS,得到所有圖像的OKS,人工給定一個閾值,計算出AP。
給AP設(shè)置不同閾值,得到多個AP,對多個AP求平均,最終獲得mAP。
使用OKS計算的mAP衡量肉牛多目標(biāo)骨架提取模型,mAP從關(guān)鍵點的相似度和召回率綜合評價多目標(biāo)骨架提取模型的精度水平。
假設(shè)一幅圖像中共有M頭牛,多牛骨架提取模型預(yù)測出N頭牛。將M頭牛與預(yù)測出的N頭牛計算關(guān)鍵點相似度,得到了一個M×N的OKS矩陣。找出矩陣中每一行的最大值作為當(dāng)前真實肉牛關(guān)鍵點的OKS,最終每一頭真實肉牛都會得到一個OKS,設(shè)置不同閾值計算AP,最后得出mAP。
在測試數(shù)據(jù)集上,取IoU為0.5,YOLO v3與NC-YOLO v3在評價指標(biāo)上的對比如表2所示。
表2 不同目標(biāo)檢測算法效果對比Tab.2 Comparison of different target detection algorithms
NC-YOLO v3的平均精度、精度、召回率分別比YOLO v3高4.13、5.68、3.44個百分點,時間比YOLO v3短16.30 ms,召回率可達(dá)99.00%,精度可達(dá)97.80%,平均精度可達(dá)97.18%。本文提出的NC-YOLO v3算法比YOLO v3算法效果更好。
由于添加了RFB模塊,導(dǎo)致改進(jìn)后模型參數(shù)量增加。改進(jìn)前后模型參數(shù)量如表3所示。去除模型的分類功能后可使模型參數(shù)量減小13.81 MB,便于模型的存儲。
表3 改進(jìn)前后模型參數(shù)量Tab.3 Model parameters before and after improvement
損失值和平均精度變化曲線如圖8所示。由圖8a可知,NC-YOLO v3的損失值收斂速度快于YOLO v3,并且收斂后的損失值小于YOLO v3。由圖8b可知,NC-YOLO v3的平均精度收斂值高于YOLO v3。
圖8 目標(biāo)檢測損失值和平均精度變化曲線Fig.8 Target detection loss curves and average precision curves
實驗結(jié)果表明,NC-YOLO v3在YOLO v3的基礎(chǔ)上提高了檢測精度和檢測效率,并減小了網(wǎng)絡(luò)參數(shù)量,適合作為本文的多目標(biāo)骨架提取算法的目標(biāo)檢測模型。
兩種訓(xùn)練方式的損失值曲線如圖9所示。
圖9 骨架提取損失值變化曲線Fig.9 Skeleton extraction loss value change curves
由圖9a可知,模型訓(xùn)練時在第25次迭代開始收斂,其收斂損失值維持在25左右。由圖9b可知,模型訓(xùn)練在第600次才開始收斂,其收斂損失值維持在5左右,表明多尺度訓(xùn)練模型相對于正常訓(xùn)練模型具有較高的精度。
在骨架提取測試數(shù)據(jù)集上,取0.42~0.60之間共10個閾值,計算mAP,結(jié)果如表4所示。
表4 不同訓(xùn)練方式下模型的平均精度對比Tab.4 Comparison of model average precision under different training methods %
實驗結(jié)果表明,多尺度訓(xùn)練下的模型,其mAP可達(dá)90.75%,高于正常訓(xùn)練下的模型。在測試集數(shù)據(jù)上取得了較好的結(jié)果,適合作為本文多目標(biāo)骨架提取算法的單牛骨架提取模塊。將一幅單牛圖像輸入骨架提取模型,結(jié)果如圖10所示。
圖10 單牛骨架提取結(jié)果Fig.10 Results of single cattle skeleton extraction
取0.42~0.60之間共10個閾值計算mAP,原始模型和改進(jìn)模型對比結(jié)果如表5所示。
表5 不同模型的平均精度對比Tab.5 Comparison of model average precision of different algorithms %
NC-YOLO v3模型的mAP比YOLO v3提高了4.11個百分點,達(dá)到了66.05%。
在目標(biāo)數(shù)量為1、2、4、6、10、大于等于15的情況下,NC-YOLO v3構(gòu)建的多牛骨架提取模型平均精度均值分別為69.25%、70.45%、69.21%、68.49%、56.31%、49.02%。目標(biāo)數(shù)量從1提升至6時,模型精度波動幅度較小,說明在這個區(qū)間內(nèi)目標(biāo)數(shù)量對模型精度影響較小。目標(biāo)數(shù)量增至10頭直至大于15頭時,模型精度大幅降低,這是由目標(biāo)太過密集導(dǎo)致遮擋嚴(yán)重、目標(biāo)檢測算法精度急劇下降所導(dǎo)致。
將相同的3幅圖像用兩種不同算法進(jìn)行多目標(biāo)骨架提取,結(jié)果如圖11所示。白色方框代表誤檢,黃色方框代表漏檢。由此可見,本文算法對于被遮擋目標(biāo)的檢測體框更容易覆蓋全身(如圖11a白色方框所示)且更逼近目標(biāo)輪廓,漏檢目標(biāo)更少。因此本文算法更適用于肉牛多目標(biāo)骨架提取。
圖11 多目標(biāo)骨架提取結(jié)果Fig.11 Multi-target skeleton extraction results
對肉牛多目標(biāo)骨架提取模型檢測出的肉牛骨架數(shù)據(jù)進(jìn)行分析,實現(xiàn)肉牛的臥倒和站立行為的識別。
利用統(tǒng)計學(xué)方法,對臥倒與站立行為的肉牛關(guān)鍵點分布進(jìn)行統(tǒng)計,共統(tǒng)計處于臥倒和站立行為肉牛各50頭,統(tǒng)計數(shù)據(jù)如表6所示。
識別角度是肉牛身體關(guān)鍵點所對應(yīng)的骨架夾角,從表6可以發(fā)現(xiàn)8個識別角度對肉牛的臥倒和站立行為的影響較大。由于模型檢測存在一定誤差,根據(jù)一個或幾個識別角度判斷肉牛行為,會導(dǎo)致誤差擴大,因此設(shè)計如下步驟對肉牛行為進(jìn)行識別:
表6 關(guān)鍵點分布統(tǒng)計Tab.6 Key point distribution statistics (°)
①濾除由于相關(guān)關(guān)鍵點不存在而導(dǎo)致無法計算的識別角度。②計算識別角度,若不存在可計算的識別角度,則無法識別。③若識別角度大于或等于135°的關(guān)鍵點數(shù)目大于識別角度小于135°的數(shù)目,則認(rèn)定肉牛處于站立行為,反之,則認(rèn)定肉牛處于臥倒行為。
識別結(jié)果如圖12所示,綠色方框表示肉牛處于站立狀態(tài),紅色方框表示肉牛處于臥倒?fàn)顟B(tài),黑色方框是由于多目標(biāo)骨架提取模型檢測出的關(guān)鍵點不足而導(dǎo)致無法通過此算法檢測肉牛行為。由圖12可知,通過分析多目標(biāo)骨架提取模型檢測出的肉牛骨架數(shù)據(jù),可實現(xiàn)對肉牛站立與臥倒行為的識別。
圖12 肉牛行為識別結(jié)果Fig.12 Results of beef cattle behavior recognition
(1)利用養(yǎng)殖場監(jiān)控視頻,建立了肉牛目標(biāo)檢測數(shù)據(jù)集、肉牛單目標(biāo)骨架提取數(shù)據(jù)集、肉牛多目標(biāo)骨架提取測試數(shù)據(jù)集。通過對YOLO v3添加RFB、剔除分類功能,建立了NC-YOLO v3模型。實驗結(jié)果表明,在肉牛目標(biāo)檢測數(shù)據(jù)集上,NC-YOLO v3比YOLO v3具有更高的檢測精度。結(jié)合NC-YOLO v3模型與多尺度訓(xùn)練的8SH模型建立了肉牛多目標(biāo)骨架提取模型。驗證了本文模型在一定的目標(biāo)數(shù)量內(nèi),隨著目標(biāo)數(shù)量的增多,模型精度不會大幅降低,而是小幅度波動。
(2)通過對肉牛關(guān)鍵點分布信息進(jìn)行統(tǒng)計,得出了肉牛處于站立狀態(tài)與臥倒?fàn)顟B(tài)下其識別角度的特征。通過肉牛多目標(biāo)骨架提取模型檢測出的肉牛骨架,計算識別角度,分析其特征進(jìn)而可以識別其站立與臥倒行為。實驗結(jié)果表明,本文模型可以為肉牛行為識別提供技術(shù)支持。