李 琦,尚絳嵐,李寶山
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
近年來,目標(biāo)跟蹤技術(shù)應(yīng)用于牲畜養(yǎng)殖方面得到越來越廣泛的關(guān)注。目前,基于判別模型的目標(biāo)跟蹤算法占據(jù)主流地位,主要表現(xiàn)為基于相關(guān)濾波的跟蹤算法以及基于深度學(xué)習(xí)的跟蹤算法。在基于相關(guān)濾波的跟蹤算法應(yīng)用方面,國內(nèi)外相關(guān)研究已經(jīng)取得很多成果[1~5],并廣泛應(yīng)用于牲畜養(yǎng)殖中。李億楊等人[6]將顏色特征與目標(biāo)輪廓形心特征融合,基于粒子濾波算法實現(xiàn)生豬采食行為跟蹤。曹潔等人[7]提出一種抗遮擋的雞群優(yōu)化粒子濾波跟蹤方法。楊東海等人[8]采用增強的核相關(guān)濾波跟蹤算法,對青鳉游泳軌跡進行跟蹤研究?;谙嚓P(guān)濾波的跟蹤算法對于不同種類的動物都呈現(xiàn)出了較好的效果。然而,由于系統(tǒng)應(yīng)用牧場的占地面積較大、草原?;顒臃秶鷱V、牧場環(huán)境惡劣,在自然環(huán)境下對草原牛的檢測跟蹤具有極大的難度?;谏疃葘W(xué)習(xí)的目標(biāo)跟蹤算法可以更好地提取目標(biāo)的特征,對目標(biāo)進行更好的表達,跟蹤效果更準(zhǔn)確。將深度學(xué)習(xí)算法應(yīng)用于草原牛檢測跟蹤方面,有助于推進我國規(guī)?;B(yǎng)殖的發(fā)展,極大地方便牧民了解牧場實時情況以及提高我國的健康養(yǎng)殖水平,并為后期牲畜行為分析提供技術(shù)支持。
本文設(shè)計了一種基于深度學(xué)習(xí)算法的草原牛檢測跟蹤系統(tǒng),采用深度學(xué)習(xí)YOLOv3目標(biāo)檢測算法與Deep SORT目標(biāo)跟蹤算法對草原牛進行檢測跟蹤。并結(jié)合比例—積分—微分(proportional-integral-differential,PID)算法穩(wěn)定控制攝像頭跟隨草原牛轉(zhuǎn)動,監(jiān)控草原牛的采食、生長狀況以及運動位置,替代傳統(tǒng)監(jiān)控系統(tǒng)中手動操作控制攝像頭云臺的方法。
圖1為系統(tǒng)總體流程圖。首先,將攝像頭視頻圖像序列送入YOLOv3結(jié)合Deep SORT的跟蹤模型獲取跟蹤目標(biāo)草原牛的ID以及位置信息;然后,根據(jù)跟蹤目標(biāo)框在視頻圖像中的位置信息確定云臺移動方向;最后,為確保攝像頭穩(wěn)定跟隨草原牛移動,加入PID算法控制云臺移動速度。
圖1 系統(tǒng)總體流程
本文采用的攝像頭為??低暽a(chǎn)的DS—2DC4420IW—D型400萬像素4寸紅外網(wǎng)絡(luò)高清智能球機,分辨率為1 280像素×720像素;硬件環(huán)境配置采用Intel E5—2680的CPU以及Nvidia 1080Ti的顯卡搭建服務(wù)器;數(shù)據(jù)集來源于內(nèi)蒙古蘇尼特左旗牧場,將采集的5 687張(1 920像素×1 080像素)草原牛圖像通過LabelImg標(biāo)注工具進行標(biāo)注,制作成PASCAL VOC標(biāo)準(zhǔn)數(shù)據(jù)集格式的數(shù)據(jù),按照4︰1的比例劃分為訓(xùn)練集和測試集。
系統(tǒng)目標(biāo)檢測部分采用YOLOv3[9]檢測算法。其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示,由Darknet—53特征提取網(wǎng)絡(luò)和多尺度預(yù)測網(wǎng)絡(luò)兩部分組成。
圖2 YOLOv3模型結(jié)構(gòu)
首先,將圖像縮放到416像素×416像素,采用Darknet—53特征提取網(wǎng)絡(luò)提取特征。Darknet—53網(wǎng)絡(luò)借鑒深度殘差網(wǎng)絡(luò)[10]的思想,添加殘差塊,避免在網(wǎng)絡(luò)層數(shù)過深時發(fā)生梯度爆炸。然后借鑒特征金字塔網(wǎng)絡(luò)(feature pyramid network,FPN)[11]的思想,采用(13×13),(26×26),(52×52)三種不同尺度的特征圖進行預(yù)測。利用Anchor機制對每個網(wǎng)格單元預(yù)測3個邊界框,每個邊界框?qū)?yīng)C+5個值,C為檢測物體的類別總數(shù),5表示邊界框的5個基本參數(shù)(x,y,w,h,Sconfidence),其中(x,y)表示候選框的坐標(biāo),(w,h)表示候選框的尺寸,以及Sconfidence表示候選框的置信得分。最后使用非極大值抑制(non-maxima suppression,NMS算法)篩選出得分Sconfidence較高的候選框為檢測框。
系統(tǒng)目標(biāo)跟蹤部分采用Deep SORT[12]跟蹤算法。以YOLOv3的草原牛目標(biāo)檢測結(jié)果作為輸入,利用Kalman濾波對檢測結(jié)果進行預(yù)測。使用運動匹配和外觀匹配兩種度量方式的線性加權(quán)作為最終的度量方式對草原牛檢測結(jié)果與預(yù)測結(jié)果進行匹配。并引入級聯(lián)匹配,優(yōu)先匹配消失時長較小的目標(biāo)軌跡,解決目標(biāo)長時遮擋問題。
運動匹配是利用馬氏空間距離計算Kalman濾波的預(yù)測位置和檢測位置的運動匹配程度,其公式為
(1)
式中d(1)(i,j)為第j個檢測和第i條軌跡之間的運動匹配度;Si為軌跡由卡爾曼(Kalman)濾波預(yù)測得到的在當(dāng)前時刻觀測空間的協(xié)方差矩陣,yi為第i個追蹤器對目標(biāo)的預(yù)測位置,dj為第j個檢測框的位置。當(dāng)馬氏距離小于閾值,則認(rèn)為匹配成功。
外觀匹配是利用最小余弦距離計算當(dāng)前幀的所有草原牛目標(biāo)檢測框的特征向量與歷史軌跡中的所有檢測框集合的特征向量之間的外觀相似度,其公式為
(2)
本文首先采用PR曲線(以召回率作為橫坐標(biāo),精度作為縱坐標(biāo))和平均精度AP(式(3))作為檢測性能指標(biāo),對訓(xùn)練集訓(xùn)練的YOLOv3模型與原始VOC數(shù)據(jù)集的YOLOv3模型的檢測性能進行對比,針對采集的測試集數(shù)據(jù)繪制PR曲線,結(jié)果如圖3所示。式(3)如下
圖3 PR曲線對比
(3)
根據(jù)式(3)計算AP值,式中,P表示Precision(精度);R表示Recall(召回率)。通過計算,本文訓(xùn)練的YOLOv3模型對測試集的AP值為90.8 %,原始VOC數(shù)據(jù)集的YOLOv3模型對測試集的AP值為79.4 %。可以看出,使用本文自制數(shù)據(jù)集訓(xùn)練的權(quán)重進行測試的準(zhǔn)確率比較理想,故本文使用自制數(shù)據(jù)集訓(xùn)練的YOLOv3模型作為Deep SORT跟蹤算法的檢測模型來實現(xiàn)對草原牛的跟蹤。本文草原牛目標(biāo)檢測結(jié)果如圖4所示。
圖4 部分草原牛檢測結(jié)果
為了評估系統(tǒng)在草原牛跟蹤上的有效性,本文采用跟蹤成功率和中心點誤差這兩個指標(biāo)來分析系統(tǒng)的效果。跟蹤成功率是檢測框和真實框的交疊率,判斷算法在某時刻是否檢測到草原牛。中心點誤差是衡量算法在某時刻目標(biāo)跟蹤的準(zhǔn)確性,誤差越小準(zhǔn)確度越高。
本文選擇某天 09:00~09:30,14:00~14:30,17:00~17:30的3段視頻對比分析了本文YOLOv3結(jié)合Deep SORT跟蹤的方法與Deep SORT算法的平均跟蹤成功率和平均中心點誤差。結(jié)果如表1所示。
表1 草原牛跟蹤對比結(jié)果
根據(jù)表1可知,本文算法的平均跟蹤成功率高于Deep SORT算法,說明本文算法對草原牛的跟蹤效果優(yōu)于Deep SORT算法。本文算法的平均中心點平均誤差低于Deep SORT算法,說明本文算法在草原牛目標(biāo)跟蹤上具有比Deep SORT算法更高的準(zhǔn)確度。結(jié)合跟蹤成功率和中心點誤差的分析,說明本文算法在草原牛跟蹤上有效且穩(wěn)定。
系統(tǒng)在完成對視頻圖像中草原牛的跟蹤后,提取跟蹤草原牛目標(biāo)框的中心坐標(biāo),分析中心坐標(biāo)與圖像中心位置的關(guān)系,啟動云臺,控制攝像頭跟隨草原牛運動。
當(dāng)云臺攝像頭畫面內(nèi)未檢測出草原牛時,調(diào)用云臺攝像頭自動巡航接口,控制云臺攝像頭自動巡航。當(dāng)云臺攝像頭畫面中檢測出草原牛時,提取所有草原牛目標(biāo)框的中心坐標(biāo),計算整體目標(biāo)框的質(zhì)心坐標(biāo)。若質(zhì)心的橫坐標(biāo)大于攝像頭中心的橫坐標(biāo),則控制云臺向右移動,否則向左移動,若質(zhì)心的縱坐標(biāo)大于攝像頭中心的橫坐標(biāo),則控制云臺向下移動,否則向上移動,從而使所有目標(biāo)草原牛處于攝像頭中心位置附近。
由于攝像頭在跟隨草原牛的移動過程中,攝像頭的移動速度需要根據(jù)跟蹤質(zhì)心與攝像頭圖像中心的距離改變,距離越小,移動速度越慢,因此云臺的移動速度需要得到調(diào)控。本文采用PID控制算法控制云臺移動速度。若質(zhì)心在云臺攝像頭畫面中心限定范圍外,調(diào)用云臺攝像頭轉(zhuǎn)動接口以及PID算法,控制云臺攝像頭跟隨草原牛轉(zhuǎn)動,直至質(zhì)心在云臺攝像頭畫面中心限定范圍內(nèi)。在云臺跟隨草原牛轉(zhuǎn)動的基礎(chǔ)上,增加鼠標(biāo)點擊觸發(fā)事件,通過鼠標(biāo)點擊單只草原牛并獲取ID,控制云臺攝像頭跟隨指定草原牛。
為確保系統(tǒng)可以落地實施,在內(nèi)蒙古蘇尼特左旗牧場進行現(xiàn)場實驗測試。實驗結(jié)果如圖5所示。可見:1)草原牛跟蹤系統(tǒng)未檢測到草原牛時啟動自動巡航功能,直至檢測到草原牛后自動跟蹤(視頻1);2)當(dāng)系統(tǒng)檢測跟蹤到多只草原牛時,為使多只草原牛質(zhì)心一直處于畫面中心范圍,調(diào)用PID算法控制攝像頭穩(wěn)定跟隨草原牛運動(視頻2);3)為方便觀察單只草原牛行為,并為后期牲畜行為分析提供技術(shù)支持,本文設(shè)計了對指定草原牛的檢測跟蹤功能(視頻3)。
圖5 現(xiàn)場實驗效果
本文結(jié)合深度學(xué)習(xí)YOLOv3檢測算法、Deep SORT跟蹤算法以及PID云臺控制算法,實現(xiàn)了草原牛檢測跟蹤系統(tǒng)的三個功能,未檢測到草原牛時自動巡航,對多只草原牛自動跟蹤,指定跟蹤單只草原牛。通過現(xiàn)場實驗結(jié)果表明:本系統(tǒng)可以極大地提高對草原牛跟蹤的穩(wěn)定性,實現(xiàn)對草原牛的實時檢測跟蹤。