呂 晨,程德強(qiáng),寇旗旗,莊煥東,李海翔
1 中國(guó)礦業(yè)大學(xué)信息與控制工程學(xué)院,江蘇 徐州 221000;
2 中國(guó)礦業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221000
目標(biāo)跟蹤一直是計(jì)算機(jī)視覺(jué)的重要應(yīng)用領(lǐng)域和研究熱點(diǎn)。隨著硬件設(shè)施的完善和人工智能技術(shù)的發(fā)展,目標(biāo)跟蹤技術(shù)也變得愈發(fā)重要。目前目標(biāo)跟蹤已在智能人機(jī)交互[1]、交通領(lǐng)域和軍事領(lǐng)域占據(jù)重要地位。然而目標(biāo)跟蹤也面臨著外觀形變、光照變化、尺度變化、快速運(yùn)動(dòng)的運(yùn)動(dòng)模糊和目標(biāo)遮擋等[2]導(dǎo)致的目標(biāo)丟失問(wèn)題。
目標(biāo)跟蹤方法就工作原理[3]可分為生成式模型和判別式模型,生成式模型有光流法[4]、粒子濾波[5]、Meanshift[6]算法等,判別式模型包括MIL[7](multiple instance learning)、TLD[8](tracking learning detection)、支持向量機(jī)[9]等經(jīng)典的目標(biāo)跟蹤算法。傳統(tǒng)Meanshift算法采用目標(biāo)的顏色概率直方圖作為搜索特征,通過(guò)不斷迭代Meanshift 向量使得算法收斂于目標(biāo)的真實(shí)位置,因其計(jì)算量不大,具有較好的實(shí)時(shí)性。但由于在跟蹤過(guò)程中窗口尺度保持不變,當(dāng)目標(biāo)尺度有所變化時(shí),跟蹤就會(huì)失敗。ASMS[10](adaptive scale meanshift)算法在經(jīng)典Meanshift 框架下加入了尺度估計(jì),引入尺度不劇變和可能偏最大兩個(gè)先驗(yàn)作為正則項(xiàng),從而實(shí)現(xiàn)了尺度自適應(yīng),同時(shí)增強(qiáng)了算法的魯棒性。但是ASMS 算法仍需手動(dòng)圈取感興趣區(qū)域,屬于半自動(dòng)跟蹤算法且缺失在目標(biāo)丟失后的后續(xù)處理。
為了實(shí)現(xiàn)跟蹤的有效性和魯棒性,深度學(xué)習(xí)算法已廣泛應(yīng)用于目標(biāo)跟蹤領(lǐng)域。常見(jiàn)的算法主要分為兩種,一種是基于候選區(qū)域,這種方法需要先獲取候選區(qū)域,然后進(jìn)行分類,如R-CNN[11](region convolutional neural networks)、Fast R-CNN[12]、Faster R-CNN[13]等算法。另一種是單次目標(biāo)跟蹤算法,該方法直接在網(wǎng)絡(luò)中提取特征來(lái)預(yù)測(cè)物體分類和位置,如YOLO[14](you only look once)和 SSD[15](single shot multibox detector)。相比較于基于候選區(qū)域的算法,單次目標(biāo)跟蹤算法的實(shí)時(shí)性更高,可以避免背景錯(cuò)誤,學(xué)習(xí)到物體的泛化特征。YOLOv3[16](you only look once version 3)是基于YOLOv1 和v2[17]的改進(jìn)版本,采用Darknet-53 作為新的主干網(wǎng)絡(luò),借鑒了ResNet 的殘差結(jié)構(gòu),去掉池化層和全連接層,通過(guò)改變卷積核的步長(zhǎng)來(lái)實(shí)現(xiàn)張量的尺寸變化,在保持速度優(yōu)勢(shì)的前提下,提升了預(yù)測(cè)精度,尤其是加強(qiáng)了對(duì)小物體的識(shí)別能力。在SSD 的基礎(chǔ)上衍生出DSSD[18](deconvolutional single shot detector)和FSSD(feature fusion single shot multibox detector)算法[19]。DSSD 是利用反卷積將特征圖進(jìn)行上采樣,與原始的特征圖進(jìn)行融合,然后混合后的特征圖輸入感知器網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),解決了SSD 對(duì)于小目標(biāo)物體的檢測(cè)效果依然不夠理想的缺點(diǎn)。FSSD算法提出了一種特征融合的方式,利用得到的特征圖重新進(jìn)行下采樣得到不同的特征圖尺度,輸入感知器網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)。
YOLOv3 算法相較DSSD 和FSSD 算法具有更高的精確性和實(shí)時(shí)性,所以本文選擇YOLOv3算法與ASMS算法相結(jié)合,并引入實(shí)時(shí)跟蹤效果判斷機(jī)制,以解決目標(biāo)受到物體遮擋或快速運(yùn)動(dòng)而導(dǎo)致的丟失問(wèn)題。并且為了提升算法運(yùn)行速度,降低算法對(duì)于硬件的要求,對(duì)YOLOv3 進(jìn)行剪枝。
YOLOv3 保留了前兩代算法用網(wǎng)格來(lái)劃分輸入圖片區(qū)域,每塊區(qū)域單獨(dú)檢測(cè)目標(biāo)的思想;延續(xù)了v2版本使用BN(batch normalization)做正則化的方法,把BN 層和LeakyReLU 層連接到每一層卷積層之后;采用端到端訓(xùn)練,省去了在每一個(gè)獨(dú)立學(xué)習(xí)任務(wù)執(zhí)行之前所做的數(shù)據(jù)標(biāo)注。
YOLOv3 的檢測(cè)框架圖如圖1 所示。
圖1 YOLOv3 的檢測(cè)框架圖Fig.1 Block diagram of YOLOv3
YOLOv3 對(duì)邊界框進(jìn)行預(yù)測(cè)時(shí)采用邏輯回歸,在預(yù)測(cè)進(jìn)行之前,對(duì)錨框包圍的部分進(jìn)行一個(gè)目標(biāo)性評(píng)分以去掉不必要的錨框,減少計(jì)算量。
由于在進(jìn)行目標(biāo)跟蹤時(shí),只需要判斷出前景和背景即可,無(wú)需對(duì)目標(biāo)進(jìn)行更進(jìn)一步的種類劃分,所以本文將邏輯回歸Softmax 的輸出由80 個(gè)種類更改為前景和背景兩種。
ASMS 是基于Meanshift 算法的一種改進(jìn)算法,加入了尺度估計(jì),引入尺度不劇變和可能偏最大兩個(gè)先驗(yàn)作為正則項(xiàng),主要解決了Meanshift 預(yù)測(cè)邊框不能自適應(yīng)的問(wèn)題,并且使得范圍估計(jì)更加具有魯棒性。ASMS 算法通過(guò)最小化候選區(qū)域與目標(biāo)區(qū)域顏色特征的Hellinger 距離并使用Meanshift 迭代候選區(qū)域使得兩者匹配從而完成跟蹤。
候選區(qū)域和目標(biāo)區(qū)域的Hellinger 距離計(jì)算如下:
上式中目標(biāo)區(qū)域特征u∈{1,...,m}的概率為候選區(qū)域的特征概率為
本文為了使距離度量結(jié)果更加直觀以及便于對(duì)候選區(qū)域和目標(biāo)區(qū)域的相似度展開(kāi)分析和對(duì)目標(biāo)丟失條件進(jìn)行評(píng)判,使用Bhattacharyya 距離(即上式(2))作為距離度量公式,使式(2)最大化,并通過(guò)Meanshift 迭代得到新的候選區(qū)域坐標(biāo)和邊框尺度。
本文所研究的是在攝像頭和背景均固定的情況下運(yùn)動(dòng)物體的跟蹤問(wèn)題,由YOLOv3 算法檢測(cè)出的前景區(qū)域通過(guò)非極大抑制確定目標(biāo)框,將運(yùn)動(dòng)目標(biāo)直接作為ASMS 算法的初始目標(biāo)區(qū)域,并對(duì)目標(biāo)進(jìn)行跟蹤,即可實(shí)現(xiàn)算法的全自動(dòng)運(yùn)行。在跟蹤過(guò)程中實(shí)時(shí)判斷跟蹤效果,當(dāng)候選區(qū)域與實(shí)際目標(biāo)產(chǎn)生較大偏差或發(fā)生遮擋時(shí),使用YOLOv3 算法對(duì)目標(biāo)進(jìn)行更新從而提升算法跟蹤精度,解決了目標(biāo)丟失的問(wèn)題。在對(duì)YOLOv3 和ASMS 算法進(jìn)行聯(lián)合時(shí),為了提升算法的運(yùn)算速度,實(shí)現(xiàn)實(shí)時(shí)性要求,減少算法的參數(shù)量以及體量,本文對(duì)YOLOv3 算法進(jìn)行模型剪枝。
模型壓縮是一種重新調(diào)整深度模型所需資源消耗的有效工具,該方法可以精簡(jiǎn)網(wǎng)絡(luò)結(jié)構(gòu),減少參數(shù),壓縮網(wǎng)絡(luò)體量,提升算法的運(yùn)行速度。現(xiàn)有的模型壓縮方法主要包括模型剪枝[20-21]、參數(shù)量化[22]、動(dòng)態(tài)計(jì)算[23]等。模型剪枝可在權(quán)重[24]、核、通道和層這些不同級(jí)別實(shí)現(xiàn)。本節(jié)將具體討論YOLOv3 模型剪枝方法。
通道剪枝雖然是一種粗粒度的壓縮方法,但較其他方法來(lái)說(shuō)十分有效且不需要專用的軟件和硬件與之匹配。本文采用該方法來(lái)精簡(jiǎn)網(wǎng)絡(luò),對(duì)YOLOv3 算法進(jìn)行壓縮,直接在批量歸一化(BN)層選用尺度因子作為信道放縮因子并且通過(guò)在這些放縮因子上使用L1正則項(xiàng)訓(xùn)練網(wǎng)絡(luò)以實(shí)現(xiàn)通道稀疏化,減少YOLOv3 模型尺寸及計(jì)算復(fù)雜性。
通過(guò)通道剪枝可得到一個(gè)更緊湊和有效的卷積通道配置,從而減少參數(shù),提升算法運(yùn)行效率。且卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算量主要來(lái)自卷積層,減少卷積層通道可節(jié)約運(yùn)行時(shí)間同時(shí)降低算法對(duì)于硬件的要求。按圖2 所示的步驟獲得剪枝后的YOLOv3。
圖2 通過(guò)稀疏訓(xùn)練和通道剪枝獲得剪枝后的YOLOv3Fig.2 YOLOv3 pruned through sparse training and channel pruning
剪枝主要分為以下幾個(gè)迭代步驟:1) 對(duì)YOLOv3網(wǎng)絡(luò)進(jìn)行稀疏訓(xùn)練;2) 剔除對(duì)模型推理不重要的成分即得分較少的部分,本文使用的方法主要是指卷積層通道;3) 微調(diào)剪枝模型,以彌補(bǔ)潛在的暫時(shí)性能下降。
1) 稀疏訓(xùn)練
為了對(duì)深度模型的通道進(jìn)行剪枝,需要為每個(gè)通道分配一個(gè)放縮因子對(duì)通道進(jìn)行選擇。對(duì)于YOLOv3網(wǎng)絡(luò)而言,除了輸入卷積層沒(méi)有BN 層以外,其他卷積層均包含BN 層,BN 層的計(jì)算式:
其中:μB和σB分別是輸入特征的均值和標(biāo)準(zhǔn)差,γ代表可訓(xùn)練的比例因子,β表示偏差,本文直接將γ參數(shù)作為通道的放縮因子和重要性評(píng)估指標(biāo)。為了更好地判別通道的重要性,本文通過(guò)對(duì)γ使用L1 正則化來(lái)進(jìn)行通道稀疏化訓(xùn)練。稀疏訓(xùn)練的目標(biāo):
式中:Lloss為YOLOv3 網(wǎng)絡(luò)的訓(xùn)練損失函數(shù),α為式(4)前后兩項(xiàng)的平衡因子,f(?)是在放縮因子上的懲罰項(xiàng),本文選擇L1 正則化即選擇次梯度下降法作為L(zhǎng)1 懲罰項(xiàng)的優(yōu)化方法。
2) 通道剪枝
在引入放縮因子正則項(xiàng)進(jìn)行稀疏訓(xùn)練之后,引入全局閾值來(lái)決定需要剪枝哪些特征通道,表示所有縮放因子值的一個(gè)比例,在具體操作中,本文剪枝掉所有小于全局閾值的通道。YOLOv3 中的最大池化層和上采樣層因?yàn)闆](méi)有通道,所以在進(jìn)行網(wǎng)絡(luò)壓縮時(shí)不對(duì)其進(jìn)行考慮。接下來(lái)通過(guò)全局閾值為YOLOv3 網(wǎng)絡(luò)所有卷積層構(gòu)建剪枝掩碼。對(duì)于route 層,將其輸入層的剪枝掩碼按順序拼接,并將拼接后的掩碼作為其剪枝掩碼;對(duì)于shortcut 層,為了與其相連層的通道數(shù)匹配,本文迭代所有和shortcut 相連的卷積層掩碼,并對(duì)其進(jìn)行或計(jì)算從而得到最終的掩碼。
3) 微調(diào)和迭代
為了補(bǔ)償通道剪枝帶來(lái)的算法精度下降,對(duì)剪枝后的網(wǎng)絡(luò)進(jìn)行微調(diào)。為了防止過(guò)度剪枝造成網(wǎng)絡(luò)的退化,本文使用增量剪枝策略。
傳統(tǒng)ASMS 算法在目標(biāo)丟失后無(wú)后續(xù)解決方案,基于此問(wèn)題,本文引入巴氏距離衡量候選區(qū)域與目標(biāo)區(qū)域的相似程度,將巴氏距離作為判斷跟蹤效果和目標(biāo)發(fā)生遮擋丟失的依據(jù),并結(jié)合YOLOv3 算法進(jìn)行目標(biāo)丟失后的重識(shí)別。
在跟蹤時(shí),ASMS 算法以采樣點(diǎn)為中心計(jì)算相鄰區(qū)域的局部顏色概率密度,并沿概率密度梯度方向逼近梯度的最大值,直到移動(dòng)的距離小于閾值,認(rèn)定此時(shí)搜索框的區(qū)域?yàn)楹蜻x區(qū)域。已知候選區(qū)域的顏色概率特征為目標(biāo)區(qū)域的顏色概率特征為計(jì)算候選區(qū)域與目標(biāo)區(qū)域的相似度如式(2),所得結(jié)果越大則表示兩者距離越相近。
對(duì)照跟蹤效果和實(shí)際巴氏距離數(shù)值,當(dāng)巴氏距離>0.8 時(shí)可取得較好跟蹤效果,此時(shí)ASMS 算法跟蹤框能緊密貼合檢測(cè)目標(biāo);當(dāng)巴氏距離<0.5 時(shí)跟蹤框與檢測(cè)目標(biāo)發(fā)生較大偏移或尺度過(guò)大從而包含過(guò)多的背景信息。本文將0.7 作為判斷目標(biāo)丟失的閾值,這樣可以保證較高的跟蹤精度又不會(huì)過(guò)多調(diào)用剪枝后的YOLOv3算法,影響算法實(shí)時(shí)性。當(dāng)時(shí),則判斷在當(dāng)前幀下目標(biāo)跟蹤成功,下一幀繼續(xù)使用ASMS 算法進(jìn)行跟蹤;若則為跟蹤失敗。
考慮到一般情況下目標(biāo)的速度不會(huì)發(fā)生突變,而是處于勻速運(yùn)動(dòng)或勻加速運(yùn)動(dòng)中,利用被遮擋前的序列圖像中目標(biāo)的位置信息可二次擬合出位置和幀數(shù)的關(guān)系,并對(duì)被遮擋的目標(biāo)進(jìn)行位置預(yù)估,與剪枝后的YOLOv3 算法所檢測(cè)的前景進(jìn)行比較進(jìn)而重新定位跟蹤框的位置。
本文提出基于YOLOv3 和ASMS 的跟蹤算法,實(shí)現(xiàn)了ASMS 算法的全自動(dòng)跟蹤,并且解決了目標(biāo)發(fā)生遮擋后丟失的問(wèn)題,提升了ASMS 的跟蹤精度和魯棒性。具體算法步驟如下:
輸入:視頻幀
輸出:目標(biāo)位置
1) 開(kāi)始;
2) 獲取視頻序列幀圖像,并使用剪枝后的YOLOv3 算法對(duì)首幀圖像進(jìn)行前景檢測(cè),將檢測(cè)出的目標(biāo)區(qū)域信息保存;
3) 選取下一幀,執(zhí)行后續(xù)操作;
4) 使用ASMS 算法讀取前景目標(biāo)信息并進(jìn)行目標(biāo)跟蹤,同時(shí)通過(guò)巴氏距離判斷跟蹤效果和目標(biāo)是否發(fā)生遮擋;
5) 判斷巴氏距離計(jì)算結(jié)果是否>=0.7;
6) 如果>=0.7,則認(rèn)為跟蹤成功,讀取下一幀視頻并用ASMS 算法繼續(xù)跟蹤;
7) 若<0.7,則認(rèn)為跟蹤失敗,使用遮擋前的序列圖像中目標(biāo)位置信息二次擬合出位置和幀數(shù)的關(guān)系,并對(duì)被遮擋的目標(biāo)進(jìn)行位置預(yù)估,與剪枝后的YOLOv3 算法所檢測(cè)的前景進(jìn)行比較,重新定位前景區(qū)域并將前景區(qū)域信息傳遞給ASMS 算法進(jìn)行跟蹤;
8) 反復(fù)執(zhí)行3)~7),直到視頻結(jié)束;
9) 結(jié)束。
算法流程圖如圖3 所示。
圖3 基于YOLOv3 和ASMS 的跟蹤算法流程圖Fig.3 The tracking algorithm flow chart based on YOLOv3 and ASMS
實(shí)驗(yàn)硬件平臺(tái)采用Intel(R) Core(TM)i5-7500 3.40 Hz CPU,GPU 為GTX1060,PC 機(jī)內(nèi)存為16 GB。實(shí)驗(yàn)先對(duì)改進(jìn)后的YOLOv3 算法進(jìn)行了驗(yàn)證,通過(guò)對(duì)YOLOv3、YOLOv3-tiny 和剪枝的YOLOv3 算法進(jìn)行對(duì)比,說(shuō)明了改進(jìn)后YOLOv3 算法的優(yōu)越性。之后選用在有遮擋和無(wú)遮擋情況下的視頻進(jìn)行實(shí)驗(yàn)仿真以檢測(cè)聯(lián)合跟蹤算法。在對(duì)比算法方面,本文分別嘗試了YOLOv3、YOLOv3-tiny 和聯(lián)合剪枝YOLOv3 算法與ASMS 算法,并與KCF(kernelized correlation filters)算法[25]、VITAL(visual tracking via adversarial learning)算法[26]和SANet(structure aware network)算法[27]進(jìn)行了對(duì)比。測(cè)試視頻幀率為 30 f/s,視頻幀大小為1960×1080,視頻時(shí)長(zhǎng)均為10 s。實(shí)驗(yàn)結(jié)果將從精確度和實(shí)時(shí)性兩個(gè)方面進(jìn)行量化對(duì)比。
在本實(shí)驗(yàn)中,數(shù)據(jù)庫(kù)采用YOLOv3 作者使用的COCO 數(shù)據(jù)庫(kù)。主要在0.5 交并比(IOU)時(shí)對(duì)YOLOv3、YOLOv3-tiny 和剪枝的YOLOv3 算法針對(duì)目標(biāo)檢測(cè)在精確度、mAP、速度(f/s)方面進(jìn)行了驗(yàn)證,并對(duì)網(wǎng)絡(luò)的體量進(jìn)行比較。本文在對(duì)YOLOv3 進(jìn)行稀疏訓(xùn)練時(shí)迭代次數(shù)設(shè)置為100,平衡因子α的值需由網(wǎng)絡(luò)搜索得到,本文設(shè)置為0.0001。其余超參數(shù)與正常訓(xùn)練無(wú)異,本文選用DarkNet 中的默認(rèn)配置,動(dòng)量參數(shù)設(shè)置為0.9,權(quán)重衰減正則項(xiàng)為0.0005,初始學(xué)習(xí)率為0.001,在40000 到45000 的迭代步驟中衰減10 倍。進(jìn)行剪枝時(shí),分別將?γ設(shè)置為50%、80%和95%對(duì)應(yīng)的剪枝率分別為50%、80%和95%。通過(guò)剪枝得到更緊湊的模型后進(jìn)行微調(diào)[20],本文使用與正常訓(xùn)練相同的超參數(shù)對(duì)剪枝模型再訓(xùn)練,即將迭代次數(shù)設(shè)置為100,動(dòng)量參數(shù)設(shè)置為0.9,權(quán)重衰減正則項(xiàng)為0.0005,初始學(xué)習(xí)率為0.001,在40000 到45000 的迭代步驟中衰減10倍。并將微調(diào)后得到的模型分別稱為YOLOv3-50、YOLOv3-80 和YOLOv3-95(如表1 所示)。
在本文實(shí)驗(yàn)中,分別通過(guò)剪枝得到了YOLOv3-50、YOLOv3-80 和YOLOv3-95,對(duì)應(yīng)剪枝率分別是50%、80%和95%。在只使用CPU 運(yùn)算的情況下,剪枝后的運(yùn)行時(shí)間比YOLOv3 減少了39.7%,42.8%和49.9%。YOLOv3-95 在與YOLOv3 接近的精確度的情況下,實(shí)時(shí)性達(dá)到了27 f/s,是YOLOv3 算法的2倍,在加入GPU 計(jì)算后,YOLOv3-95 達(dá)到了57 f/s,可完全滿足實(shí)時(shí)性的要求,實(shí)現(xiàn)在線檢測(cè)。剪枝后的模型參數(shù)量分別比YOLOv3 減少60.2%、79.7%和92.0%,體量比YOLOv3 減少60.3%、79.8%和91.9%。隨著剪枝率的提升,網(wǎng)絡(luò)的檢測(cè)精確度有一定程度下降,但是 YOLOv3-95 在參數(shù)和體量遠(yuǎn)小于YOLOv3-tiny 的情況下,精確度比其提升51%。由于YOLOv3-tiny 的網(wǎng)絡(luò)較淺,就運(yùn)行時(shí)間來(lái)說(shuō)YOLOv3-tiny 要短。根據(jù)實(shí)驗(yàn)對(duì)比及以上分析,可得出YOLOv3-95 在保證精度基本不下降的情況下,運(yùn)行時(shí)間最短,參數(shù)量和體量最小,剪枝效果達(dá)到最優(yōu),所以本文在下面的實(shí)驗(yàn)中將YOLOv3-95 算法與ASMS算法相結(jié)合以提升聯(lián)合算法的性能。
為了檢測(cè)聯(lián)合算法的效果,采用行人視頻對(duì)不同算法進(jìn)行對(duì)照,本文使用跟蹤區(qū)域與前景目標(biāo)之間的巴氏距離來(lái)表示算法的跟蹤精度,巴氏距離數(shù)值越大說(shuō)明目標(biāo)框圈定區(qū)域與前景目標(biāo)區(qū)域重合度越高,進(jìn)而表明算法的跟蹤準(zhǔn)確率越高,實(shí)時(shí)性通過(guò)有效跟蹤時(shí)間內(nèi)的每幀平均運(yùn)行時(shí)間來(lái)衡量。分別用傳統(tǒng)ASMS 算法、KCF 算法、基于YOLOv3 和ASMS 算法、基于YOLOv3-95 和ASMS 算法共四種算法進(jìn)行實(shí)驗(yàn)。算法均采用矩形框來(lái)對(duì)前景進(jìn)行跟蹤,傳統(tǒng)ASMS 算法和KCF 算法在手動(dòng)圈動(dòng)目標(biāo)后進(jìn)行跟蹤,基于YOLOv3 和ASMS 算法、基于YOLOv3-95 和ASMS 算法可自動(dòng)檢測(cè)前景目標(biāo)進(jìn)行跟蹤。
視頻選取前景無(wú)遮擋的情況,由于實(shí)驗(yàn)各算法均能實(shí)現(xiàn)對(duì)移動(dòng)前景目標(biāo)的實(shí)時(shí)跟蹤,只是在跟蹤過(guò)程中跟蹤框的大小和位置有一定差異,本文僅對(duì)聯(lián)合YOLOv3-95 和ASMS 算法的跟蹤效果進(jìn)行展示。圖4是行人途中無(wú)遮擋視頻序列的第69 幀,104 幀和第239幀(對(duì)應(yīng)圖片從左到右)。
表1 對(duì)比模型和剪枝模型評(píng)價(jià)結(jié)果Table 1 Evaluation results of comparison model and pruning model
傳統(tǒng)ASMS 和KCF 算法跟蹤邊界框選定的范圍更大。由表2 可知,改進(jìn)后的算法較ASMS 算法在跟蹤精度上有一定提升,基于YOLOv3 和ASMS 算法對(duì)于測(cè)試視頻分別提升了2.4%,基于YOLOv3-95 和ASMS算法提升了2.1%,原因是在引入跟蹤效果判斷機(jī)制后,算法對(duì)于出現(xiàn)ASMS 在視頻的某些幀中跟蹤效果不理想,檢測(cè)框與實(shí)際前景目標(biāo)的巴氏距離<0.7 的情況調(diào)用了YOLOv3-95 算法進(jìn)行目標(biāo)重新定位,從而提升了算法的準(zhǔn)確度?;赮OLOv3-95 和ASMS 算法精度比基于YOLOv3 和ASMS 算法略低的原因是:經(jīng)過(guò)剪枝后的YOLOv3-95 雖然運(yùn)行速度提升了兩倍,但對(duì)于目標(biāo)檢測(cè)的精度有所下降,從而導(dǎo)致聯(lián)合算法的平均巴氏距離數(shù)值有所降低。在實(shí)時(shí)性方面,傳統(tǒng)算法的運(yùn)行速度要更快。
圖4 聯(lián)合YOLOv3-95 和ASMS 算法的跟蹤效果Fig.4 The tracking performance of algorithm based on YOLOv3-95 and ASMS
表2 算法對(duì)比表Table 2 Comparison among different algorithms
視頻選取行人、動(dòng)物、小車三種前景有遮擋的情況。分別使用傳統(tǒng)ASMS 算法和KCF 算法、基于YOLOv3 和ASMS 算法、基于YOLOv3-95 和ASMS 算法和近年在遮擋情況下跟蹤效果較優(yōu)的VITAL 算法、SANet 算法進(jìn)行實(shí)驗(yàn)。使用精確度和實(shí)時(shí)性來(lái)評(píng)價(jià)算法性能。行人視頻在159 幀發(fā)生遮擋,到200 幀時(shí)目標(biāo)遮擋結(jié)束。動(dòng)物視頻從103 幀開(kāi)始發(fā)生遮擋,到257幀時(shí)目標(biāo)遮擋結(jié)束。小車實(shí)驗(yàn)視頻在100 幀發(fā)生遮擋,到194 幀時(shí)目標(biāo)遮擋結(jié)束。圖5(a)、6(a)、7(a)分別是行人中途被遮擋視頻序列的第97 幀、201 幀和210 幀。圖5(b)、6(b)、7(b)分別是動(dòng)物中途被遮擋視頻序列的第93 幀、201 幀和277 幀。圖5(c)、6(c)、7(c)分別是小車中途被遮擋視頻序列的第96 幀、173 幀和273 幀。所有的測(cè)試視頻中,傳統(tǒng)ASMS 算法和KCF 算法在目標(biāo)發(fā)生遮擋時(shí)雖仍能進(jìn)行跟蹤,但隨著目標(biāo)遮擋范圍的增加,跟蹤精度直線下降,跟蹤框與實(shí)際目標(biāo)產(chǎn)生較大偏移,匹配程度變差,直到最后徹底丟失目標(biāo)。ASMS 算法在目標(biāo)被遮擋后,雖然跟蹤框進(jìn)行了尺度和位置變換,如圖5 所示,但在目標(biāo)走出遮擋范圍后仍無(wú)法對(duì)其進(jìn)行準(zhǔn)確定位,跟蹤失敗。KCF 算法的情況也是如此。而基于YOLOv3-95 和ASMS 算法能夠在存在遮擋的情況下準(zhǔn)確地實(shí)現(xiàn)前景目標(biāo)的穩(wěn)定跟蹤。在目標(biāo)被遮擋后,通過(guò)計(jì)算巴氏距離判定ASMS 算法跟蹤失敗,采用YOLOv3 算法對(duì)目標(biāo)進(jìn)行重新定位。在目標(biāo)從遮擋區(qū)域走出時(shí),YOLOv3 算法識(shí)別出目標(biāo)并將目標(biāo)區(qū)域傳遞給ASMS 算法并繼續(xù)使用ASMS 算法進(jìn)行跟蹤?;赮OLOv3 和ASMS 算法、VITAL 算法和SANet 算法的方法與基于YOLOv3-95 和ASMS算法的方法從跟蹤效果方面分析相差不大,本文不做贅述。
圖5 傳統(tǒng)ASMS 算法的跟蹤效果。(a) 行人;(b) 動(dòng)物;(c) 小車Fig.5 Tracking performance of the ASMS algorithm.(a) Pedestrian;(b) Animal;(c) Car
圖6 KCF 算法跟蹤效果。(a) 行人;(b) 動(dòng)物;(c) 小車Fig.6 Tracking performance of the KCF algorithm.(a) Pedestrian;(b) Animal;(c) Car
圖7 基于YOLOv3-95 和ASMS 算法的跟蹤效果。(a) 行人;(b) 動(dòng)物;(c) 小車Fig.7 Tracking performance of the algorithm based on YOLOv3-95 and ASMS.(a) Pedestrian;(b) Animal;(c) Car
圖8 為本次實(shí)驗(yàn)行人視頻中,傳統(tǒng)ASMS 算法、KCF 算法,基于YOLOv3-95 和ASMS 算法候選區(qū)域和目標(biāo)區(qū)域巴氏距離的變化曲線圖,其中橫坐標(biāo)為視頻的序列幀數(shù),縱坐標(biāo)為巴氏距離結(jié)果。ASMS 算法和KCF 算法在目標(biāo)發(fā)生遮擋后跟蹤精度驟降,大部分被遮擋后目標(biāo)完全丟失,出現(xiàn)了算法失效的情況。由圖8 可以觀察到在159 幀至200 幀由于目標(biāo)被遮擋從而無(wú)法通過(guò)算法定位。ASMS 算法從159 幀目標(biāo)發(fā)生遮擋開(kāi)始巴氏距離數(shù)值驟減,線段發(fā)生階躍式跌落,在跟蹤了5 幀之后巴氏距離降至最低值,在164 幀時(shí)目標(biāo)徹底丟失。KCF 算法與ASMS 算法情況大致相同,雖較ASMS 算法跟蹤效果有一些增強(qiáng),在目標(biāo)發(fā)生遮擋后,巴氏距離數(shù)值減少比ASMS 算法緩慢一些,但在跟蹤了8 幀之后也丟失了目標(biāo)。聯(lián)合YOLOv3-95和ASMS 算法在目標(biāo)發(fā)生遮擋階段調(diào)用YOLOv3-95算法對(duì)目標(biāo)進(jìn)行檢測(cè),在目標(biāo)有遮擋情況下仍能進(jìn)行較長(zhǎng)時(shí)間跟蹤,且跟蹤精度優(yōu)于ASMS 和KCF 算法,直至目標(biāo)將要完全被遮擋時(shí)才發(fā)生丟失。并在201 幀時(shí)目標(biāo)從遮擋區(qū)域走出后,經(jīng)過(guò)YOLOv3-95 算法的重新定位確定目標(biāo)位置,計(jì)算此時(shí)搜索窗鎖定的區(qū)域與真實(shí)目標(biāo)的巴氏距離并判斷是否超過(guò)閾值,在204 幀時(shí)巴氏距離數(shù)值>0.7,繼續(xù)使用ASMS 算法進(jìn)行跟蹤。而傳統(tǒng)ASMS 算法和KCF 算法目標(biāo)受遮擋丟失,在201 幀目標(biāo)再次出現(xiàn)后也無(wú)后續(xù)解決方案。對(duì)于動(dòng)物和小車改進(jìn)算法也能很好地進(jìn)行目標(biāo)丟失后的重跟蹤,在此不做贅述。
圖8 巴氏系數(shù)的曲線變化圖Fig.8 Bhattacharyya coefficient curves of different algorithms
圖9 為行人視頻中,基于YOLOv3-95 和ASMS算法、VITAL 算法和SANet 算法候選區(qū)域和目標(biāo)區(qū)域巴氏距離的變化曲線圖。由圖9 可以觀察到,三種算法的巴氏距離走向基本一致,在未發(fā)生遮擋時(shí),三種算法均能很好地對(duì)目標(biāo)進(jìn)行跟蹤,當(dāng)目標(biāo)發(fā)生遮擋時(shí),三種算法均有很強(qiáng)的魯棒性,直至目標(biāo)將要被完全遮擋前跟蹤框均能較好地跟蹤目標(biāo)。當(dāng)目標(biāo)走出遮擋區(qū)域,三種算法都能立即識(shí)別并完成跟蹤。
圖9 巴氏系數(shù)的曲線變化圖Fig.9 Bhattacharyya coefficient curves of different algorithms
表3 為各算法的性能對(duì)比,進(jìn)行定量分析可知,在實(shí)時(shí)性方面基于YOLOv3 和ASMS 算法相較于傳統(tǒng)ASMS 和KCF 算法而言運(yùn)行速度較慢,是因?yàn)樗惴ㄌ岢隽诵碌墓δ?,采用巴氏距離判斷和YOLOv3 檢測(cè),算法耗時(shí)主要體現(xiàn)在前景自動(dòng)識(shí)別和在目標(biāo)丟失后通過(guò)YOLOv3 算法對(duì)目標(biāo)的重新定位,所以相較于傳統(tǒng)算法來(lái)說(shuō)聯(lián)合算法的復(fù)雜度更高,單幀處理的耗時(shí)更長(zhǎng),基于YOLOv3 和ASMS 算法三組測(cè)試視頻的平均運(yùn)行速度為16.3 f/s,基于YOLOv3-95 和ASMS 算法的平均運(yùn)行速度為21.4 f/s,比其運(yùn)行速度提升了31.2%,說(shuō)明了剪枝的有效性。VITAL 和SANet 算法三組測(cè)試視頻單幀視頻平均耗時(shí)分別為1.33 s 和1.65 s,耗時(shí)是本文基于YOLOv3-95 和ASMS 算法的26.6倍和33 倍。在精確度方面,本文算法雖稍遜色于VITAL 算法和SITN 算法,但比傳統(tǒng)ASMS 算法和KCF算法在有遮擋的情況下的精確度提升了2 倍,很好地解決了目標(biāo)丟失問(wèn)題。
基于YOLOv3-95和ASMS算法除了可以應(yīng)用于目標(biāo)發(fā)生遮擋情況,對(duì)于目標(biāo)運(yùn)動(dòng)過(guò)快導(dǎo)致目標(biāo)丟失的場(chǎng)景也同樣適用,處理機(jī)制與目標(biāo)被遮擋場(chǎng)景一致。當(dāng)目標(biāo)運(yùn)動(dòng)過(guò)快時(shí),當(dāng)前幀的初始搜索窗口不包含運(yùn)動(dòng)目標(biāo),則ASMS 算法無(wú)法迭代出目標(biāo)的精確位置,這一過(guò)程與目標(biāo)受到遮擋時(shí)的場(chǎng)景類似?;赮OLOv3-95 和ASMS 的算法先使用YOLOv3-95 算法對(duì)下一幀進(jìn)行目標(biāo)重檢測(cè),準(zhǔn)確定位后再將目標(biāo)信息傳遞給ASMS 算法繼續(xù)跟蹤。
表3 算法對(duì)比表Table 3 Comparison among different algorithms
本文針對(duì)傳統(tǒng)算法在目標(biāo)丟失后無(wú)法進(jìn)行后續(xù)跟蹤的問(wèn)題,提出了一種基于YOLOv3 和ASMS 的目標(biāo)跟蹤算法,可應(yīng)用于目標(biāo)受到遮擋或發(fā)生快速運(yùn)動(dòng)導(dǎo)致搜索窗口不包含運(yùn)動(dòng)目標(biāo)等場(chǎng)景。通過(guò)YOLOv3 算法檢測(cè)出前景目標(biāo),然后采用ASMS 算法進(jìn)行后續(xù)跟蹤和更新,但是該算法時(shí)間復(fù)雜度較高,所以本文繼而對(duì)網(wǎng)絡(luò)進(jìn)行剪枝,得到了YOLOv3-50、YOLOv3-80和YOLOv3-95,通過(guò)聯(lián)合YOLOv3-95 和ASMS 最終得到了本文提出的基于YOLOv3 和ASMS 的目標(biāo)跟蹤算法,并將測(cè)試結(jié)果與其他主流算法的結(jié)果進(jìn)行分析和對(duì)比可知,本文算法不僅實(shí)現(xiàn)了全自動(dòng)跟蹤,還解決了跟蹤目標(biāo)丟失問(wèn)題,提升了算法精度和運(yùn)行速度,證明了該算法具有抗干擾能力強(qiáng)、魯棒性高、計(jì)算速度快、效率高、實(shí)時(shí)性好的優(yōu)點(diǎn)。雖然基于YOLOv3和ASMS 的目標(biāo)跟蹤算法能更好地適應(yīng)目標(biāo)跟蹤任務(wù),但是其仍具有只能對(duì)單個(gè)目標(biāo)進(jìn)行跟蹤,且應(yīng)用場(chǎng)景簡(jiǎn)單的缺點(diǎn);未來(lái)將會(huì)重點(diǎn)對(duì)跟蹤算法部分進(jìn)行改進(jìn),以實(shí)現(xiàn)對(duì)多目標(biāo)的精確跟蹤,適用于更為復(fù)雜的場(chǎng)景。