2021-11-05深度学习
?關(guān)注微信公眾號:人工智能技術(shù)與咨詢。了解更多咨詢
基于YOLOv3 和ASMS 的目標(biāo)跟蹤算法
人工智能技術(shù)與咨詢?3天前
本文來自《光電工程》,作者呂晨等
1.?? 引言
目標(biāo)跟蹤一直是計(jì)算機(jī)視覺的重要應(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)動的運(yùn)動模糊和目標(biāo)遮擋等[2]導(dǎo)致的目標(biāo)丟失問題。
目標(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)的顏色概率直方圖作為搜索特征,通過不斷迭代Meanshift向量使得算法收斂于目標(biāo)的真實(shí)位置,因其計(jì)算量不大,具有較好的實(shí)時(shí)性。但由于在跟蹤過程中窗口尺度保持不變,當(dāng)目標(biāo)尺度有所變化時(shí),跟蹤就會失敗。ASMS[10](adaptive scale meanshift)算法在經(jīng)典Meanshift框架下加入了尺度估計(jì),引入尺度不劇變和可能偏最大兩個(gè)先驗(yàn)作為正則項(xiàng),從而實(shí)現(xiàn)了尺度自適應(yīng),同時(shí)增強(qiáng)了算法的魯棒性。但是ASMS算法仍需手動圈取感興趣區(qū)域,屬于半自動跟蹤算法且缺失在目標(biāo)丟失后的后續(xù)處理。
為了實(shí)現(xiàn)跟蹤的有效性和魯棒性,深度學(xué)習(xí)算法已廣泛應(yīng)用于目標(biāo)跟蹤領(lǐng)域。常見的算法主要分為兩種,一種是基于候選區(qū)域,這種方法需要先獲取候選區(qū)域,然后進(jìn)行分類,如R-CNN[11](region convolutional neural networks)、Fast R-CNN[12]、Faster R-CNN[13]等算法。另一種是單次目標(biāo)跟蹤算法,該方法直接在網(wǎng)絡(luò)中提取特征來預(yù)測物體分類和位置,如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),去掉池化層和全連接層,通過改變卷積核的步長來實(shí)現(xiàn)張量的尺寸變化,在保持速度優(yōu)勢的前提下,提升了預(yù)測精度,尤其是加強(qiáng)了對小物體的識別能力。在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ù)測,解決了SSD對于小目標(biāo)物體的檢測效果依然不夠理想的缺點(diǎn)。FSSD算法提出了一種特征融合的方式,利用得到的特征圖重新進(jìn)行下采樣得到不同的特征圖尺度,輸入感知器網(wǎng)絡(luò)進(jìn)行預(yù)測。
YOLOv3算法相較DSSD和FSSD算法具有更高的精確性和實(shí)時(shí)性,所以本文選擇YOLOv3算法與ASMS算法相結(jié)合,并引入實(shí)時(shí)跟蹤效果判斷機(jī)制,以解決目標(biāo)受到物體遮擋或快速運(yùn)動而導(dǎo)致的丟失問題。并且為了提升算法運(yùn)行速度,降低算法對于硬件的要求,對YOLOv3進(jìn)行剪枝。
2.?? 相關(guān)工作
2.1?? YOLOv3前景檢測算法介紹
YOLOv3保留了前兩代算法用網(wǎng)格來劃分輸入圖片區(qū)域,每塊區(qū)域單獨(dú)檢測目標(biāo)的思想;延續(xù)了v2版本使用BN(batch normalization)做正則化的方法,把BN層和LeakyReLU層連接到每一層卷積層之后;采用端到端訓(xùn)練,省去了在每一個(gè)獨(dú)立學(xué)習(xí)任務(wù)執(zhí)行之前所做的數(shù)據(jù)標(biāo)注。
YOLOv3的檢測框架圖如圖 1所示。
圖?1.??YOLOv3的檢測框架圖
Figure?1.??Block diagram of YOLOv3
下載:?全尺寸圖片?幻燈片
YOLOv3對邊界框進(jìn)行預(yù)測時(shí)采用邏輯回歸,在預(yù)測進(jìn)行之前,對錨框包圍的部分進(jìn)行一個(gè)目標(biāo)性評分以去掉不必要的錨框,減少計(jì)算量。
由于在進(jìn)行目標(biāo)跟蹤時(shí),只需要判斷出前景和背景即可,無需對目標(biāo)進(jìn)行更進(jìn)一步的種類劃分,所以本文將邏輯回歸Softmax的輸出由80個(gè)種類更改為前景和背景兩種。
2.2?? ASMS跟蹤算法介紹
ASMS是基于Meanshift算法的一種改進(jìn)算法,加入了尺度估計(jì),引入尺度不劇變和可能偏最大兩個(gè)先驗(yàn)作為正則項(xiàng),主要解決了Meanshift預(yù)測邊框不能自適應(yīng)的問題,并且使得范圍估計(jì)更加具有魯棒性。ASMS算法通過最小化候選區(qū)域與目標(biāo)區(qū)域顏色特征的Hellinger距離并使用Meanshift迭代候選區(qū)域使得兩者匹配從而完成跟蹤。
候選區(qū)域和目標(biāo)區(qū)域的Hellinger距離計(jì)算如下:
| H[p^(y),q^]=1?ρ[p^(y),q^]???????????√,H[p^(y),q^]=1?ρ[p^(y),q^], | (1) |
其中:
| ρ[p^(y),q^]=∑u=1mp^u(y),q^u???????√。ρ[p^(y),q^]=∑u=1mp^u(y),q^u。 | (2) |
上式中目標(biāo)區(qū)域特征u∈{1,...,m}u∈{1,...,m}的概率為q^uq^u,候選區(qū)域的特征概率為p^u(y)p^u(y)。
本文為了使距離度量結(jié)果更加直觀以及便于對候選區(qū)域和目標(biāo)區(qū)域的相似度展開分析和對目標(biāo)丟失條件進(jìn)行評判,使用Bhattacharyya距離(即上式(2))作為距離度量公式,使式(2)最大化,并通過Meanshift迭代得到新的候選區(qū)域坐標(biāo)和邊框尺度。
3.?? 基于YOLOv3和ASMS的目標(biāo)跟蹤算法
本文所研究的是在攝像頭和背景均固定的情況下運(yùn)動物體的跟蹤問題,由YOLOv3算法檢測出的前景區(qū)域通過非極大抑制確定目標(biāo)框,將運(yùn)動目標(biāo)直接作為ASMS算法的初始目標(biāo)區(qū)域,并對目標(biāo)進(jìn)行跟蹤,即可實(shí)現(xiàn)算法的全自動運(yùn)行。在跟蹤過程中實(shí)時(shí)判斷跟蹤效果,當(dāng)候選區(qū)域與實(shí)際目標(biāo)產(chǎn)生較大偏差或發(fā)生遮擋時(shí),使用YOLOv3算法對目標(biāo)進(jìn)行更新從而提升算法跟蹤精度,解決了目標(biāo)丟失的問題。在對YOLOv3和ASMS算法進(jìn)行聯(lián)合時(shí),為了提升算法的運(yùn)算速度,實(shí)現(xiàn)實(shí)時(shí)性要求,減少算法的參數(shù)量以及體量,本文對YOLOv3算法進(jìn)行模型剪枝。
3.1?? YOLOv3剪枝
模型壓縮是一種重新調(diào)整深度模型所需資源消耗的有效工具,該方法可以精簡網(wǎng)絡(luò)結(jié)構(gòu),減少參數(shù), 壓縮網(wǎng)絡(luò)體量,提升算法的運(yùn)行速度。現(xiàn)有的模型壓縮方法主要包括模型剪枝[20-21]、參數(shù)量化[22]、動態(tài)計(jì)算[23]等。模型剪枝可在權(quán)重[24]、核、通道和層這些不同級別實(shí)現(xiàn)。本節(jié)將具體討論YOLOv3模型剪枝方法。
通道剪枝雖然是一種粗粒度的壓縮方法,但較其他方法來說十分有效且不需要專用的軟件和硬件與之匹配。本文采用該方法來精簡網(wǎng)絡(luò),對YOLOv3算法進(jìn)行壓縮,直接在批量歸一化(BN)層選用尺度因子作為信道放縮因子并且通過在這些放縮因子上使用L1正則項(xiàng)訓(xùn)練網(wǎng)絡(luò)以實(shí)現(xiàn)通道稀疏化,減少YOLOv3模型尺寸及計(jì)算復(fù)雜性。
通過通道剪枝可得到一個(gè)更緊湊和有效的卷積通道配置,從而減少參數(shù),提升算法運(yùn)行效率。且卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算量主要來自卷積層,減少卷積層通道可節(jié)約運(yùn)行時(shí)間同時(shí)降低算法對于硬件的要求。按圖 2所示的步驟獲得剪枝后的YOLOv3。
圖?2.??通過稀疏訓(xùn)練和通道剪枝獲得剪枝后的YOLOv3
Figure?2.??YOLOv3 pruned through sparse training and channel pruning
下載:?全尺寸圖片?幻燈片
剪枝主要分為以下幾個(gè)迭代步驟:1) 對YOLOv3網(wǎng)絡(luò)進(jìn)行稀疏訓(xùn)練;2) 剔除對模型推理不重要的成分即得分較少的部分,本文使用的方法主要是指卷積層通道;3) 微調(diào)剪枝模型,以彌補(bǔ)潛在的暫時(shí)性能下降。
1) 稀疏訓(xùn)練
為了對深度模型的通道進(jìn)行剪枝,需要為每個(gè)通道分配一個(gè)放縮因子對通道進(jìn)行選擇。對于YOLOv3網(wǎng)絡(luò)而言,除了輸入卷積層沒有BN層以外,其他卷積層均包含BN層,BN層的計(jì)算式:
| zout=γzin?μBσ2B√+ε+β,zout=γzin?μBσB2+ε+β, | (3) |
其中:μBμB和σBσB分別是輸入特征的均值和標(biāo)準(zhǔn)差,γγ代表可訓(xùn)練的比例因子ββ表示偏差,本文直接將γγ參數(shù)作為通道的放縮因子和重要性評估指標(biāo)。為了更好地判別通道的重要性,本文通過對γγ使用L1正則化來進(jìn)行通道稀疏化訓(xùn)練。稀疏訓(xùn)練的目標(biāo):
| L=Lloss+α∑γ∈Γf(γ),L=Lloss+α∑γ∈Γf(γ), | (4) |
式中:Lloss為YOLOv3網(wǎng)絡(luò)的訓(xùn)練損失函數(shù),αα為式(4)前后兩項(xiàng)的平衡因子,f(?)f(?)是在放縮因子上的懲罰項(xiàng),本文選擇L1正則化即f(γ)=|γ|f(γ)=|γ|,選擇次梯度下降法作為L1懲罰項(xiàng)的優(yōu)化方法。
2) 通道剪枝
在引入放縮因子正則項(xiàng)進(jìn)行稀疏訓(xùn)練之后,引入全局閾值γ^γ^來決定需要剪枝哪些特征通道,γ^γ^表示所有縮放因子值的一個(gè)比例,在具體操作中,本文剪枝掉所有小于全局閾值的通道。YOLOv3中的最大池化層和上采樣層因?yàn)闆]有通道,所以在進(jìn)行網(wǎng)絡(luò)壓縮時(shí)不對其進(jìn)行考慮。接下來通過全局閾值為YOLOv3網(wǎng)絡(luò)所有卷積層構(gòu)建剪枝掩碼。對于route層,將其輸入層的剪枝掩碼按順序拼接,并將拼接后的掩碼作為其剪枝掩碼;對于shortcut層,為了與其相連層的通道數(shù)匹配,本文迭代所有和shortcut相連的卷積層掩碼,并對其進(jìn)行或計(jì)算從而得到最終的掩碼。
3) 微調(diào)和迭代
為了補(bǔ)償通道剪枝帶來的算法精度下降,對剪枝后的網(wǎng)絡(luò)進(jìn)行微調(diào)。為了防止過度剪枝造成網(wǎng)絡(luò)的退化,本文使用增量剪枝策略。
3.2?? 目標(biāo)丟失的判斷和目標(biāo)重識別
傳統(tǒng)ASMS算法在目標(biāo)丟失后無后續(xù)解決方案,基于此問題,本文引入巴氏距離衡量候選區(qū)域與目標(biāo)區(qū)域的相似程度,將巴氏距離作為判斷跟蹤效果和目標(biāo)發(fā)生遮擋丟失的依據(jù),并結(jié)合YOLOv3算法進(jìn)行目標(biāo)丟失后的重識別。
在跟蹤時(shí),ASMS算法以采樣點(diǎn)為中心計(jì)算相鄰區(qū)域的局部顏色概率密度,并沿概率密度梯度方向逼近梯度的最大值,直到移動的距離小于閾值,認(rèn)定此時(shí)搜索框的區(qū)域?yàn)楹蜻x區(qū)域。已知候選區(qū)域的顏色概率特征為{qu}u=1,...,m{qu}u=1,...,m,目標(biāo)區(qū)域的顏色概率特征為{pu}u=1,...,m{pu}u=1,...,m,計(jì)算候選區(qū)域與目標(biāo)區(qū)域的相似度如式(2),所得結(jié)果ρ[p^(y),q^]ρ[p^(y),q^]越大則表示兩者距離越相近。
對照跟蹤效果和實(shí)際巴氏距離數(shù)值,當(dāng)巴氏距離 > 0.8時(shí)可取得較好跟蹤效果,此時(shí)ASMS算法跟蹤框能緊密貼合檢測目標(biāo);當(dāng)巴氏距離 < 0.5時(shí)跟蹤框與檢測目標(biāo)發(fā)生較大偏移或尺度過大從而包含過多的背景信息。本文將0.7作為判斷目標(biāo)丟失的閾值,這樣可以保證較高的跟蹤精度又不會過多調(diào)用剪枝后的YOLOv3算法,影響算法實(shí)時(shí)性。當(dāng)ρ[p^(y),q^]>0.7ρ[p^(y),q^]>0.7時(shí),則判斷在當(dāng)前幀下目標(biāo)跟蹤成功,下一幀繼續(xù)使用ASMS算法進(jìn)行跟蹤;若ρ[p^(y),q^]<0.7ρ[p^(y),q^]<0.7則為跟蹤失敗。
考慮到一般情況下目標(biāo)的速度不會發(fā)生突變,而是處于勻速運(yùn)動或勻加速運(yùn)動中,利用被遮擋前的序列圖像中目標(biāo)的位置信息可二次擬合出位置和幀數(shù)的關(guān)系,并對被遮擋的目標(biāo)進(jìn)行位置預(yù)估,與剪枝后的YOLOv3算法所檢測的前景進(jìn)行比較進(jìn)而重新定位跟蹤框的位置。
3.3?? 算法步驟
本文提出基于YOLOv3和ASMS的跟蹤算法,實(shí)現(xiàn)了ASMS算法的全自動跟蹤,并且解決了目標(biāo)發(fā)生遮擋后丟失的問題,提升了ASMS的跟蹤精度和魯棒性。具體算法步驟如下:
輸入:視頻幀
輸出:目標(biāo)位置
1) 開始;
2) 獲取視頻序列幀圖像,并使用剪枝后的YOLOv3算法對首幀圖像進(jìn)行前景檢測,將檢測出的目標(biāo)區(qū)域信息保存;
3) 選取下一幀,執(zhí)行后續(xù)操作;
4) 使用ASMS算法讀取前景目標(biāo)信息并進(jìn)行目標(biāo)跟蹤,同時(shí)通過巴氏距離判斷跟蹤效果和目標(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)系,并對被遮擋的目標(biāo)進(jìn)行位置預(yù)估,與剪枝后的YOLOv3算法所檢測的前景進(jìn)行比較,重新定位前景區(qū)域并將前景區(qū)域信息傳遞給ASMS算法進(jìn)行跟蹤;
8) 反復(fù)執(zhí)行3)~7),直到視頻結(jié)束;
9) 結(jié)束。
算法流程圖如圖 3所示。
圖?3.??基于YOLOv3和ASMS的跟蹤算法流程圖
Figure?3.??The tracking algorithm flow chart based on YOLOv3 and ASMS
下載:?全尺寸圖片?幻燈片
4.?? 實(shí)驗(yàn)仿真對比
實(shí)驗(yàn)硬件平臺采用Intel(R) Core(TM)i5-7500 3.40 Hz CPU,GPU為GTX1060,PC機(jī)內(nèi)存為16 GB。實(shí)驗(yàn)先對改進(jìn)后的YOLOv3算法進(jìn)行了驗(yàn)證,通過對YOLOv3、YOLOv3-tiny和剪枝的YOLOv3算法進(jìn)行對比,說明了改進(jìn)后YOLOv3算法的優(yōu)越性。之后選用在有遮擋和無遮擋情況下的視頻進(jìn)行實(shí)驗(yàn)仿真以檢測聯(lián)合跟蹤算法。在對比算法方面,本文分別嘗試了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)行了對比。測試視頻幀率為30 f/s,視頻幀大小為1960×1080,視頻時(shí)長均為10 s。實(shí)驗(yàn)結(jié)果將從精確度和實(shí)時(shí)性兩個(gè)方面進(jìn)行量化對比。
4.1?? 實(shí)驗(yàn)1
在本實(shí)驗(yàn)中,數(shù)據(jù)庫采用YOLOv3作者使用的COCO數(shù)據(jù)庫。主要在0.5交并比(IOU)時(shí)對YOLOv3、YOLOv3-tiny和剪枝的YOLOv3算法針對目標(biāo)檢測在精確度、mAP、速度(f/s)方面進(jìn)行了驗(yàn)證,并對網(wǎng)絡(luò)的體量進(jìn)行比較。本文在對YOLOv3進(jìn)行稀疏訓(xùn)練時(shí)迭代次數(shù)設(shè)置為100,平衡因子α的值需由網(wǎng)絡(luò)搜索得到,本文設(shè)置為0.0001。其余超參數(shù)與正常訓(xùn)練無異,本文選用DarkNet中的默認(rèn)配置,動量參數(shù)設(shè)置為0.9,權(quán)重衰減正則項(xiàng)為0.0005,初始學(xué)習(xí)率為0.001,在40000到45000的迭代步驟中衰減10倍。進(jìn)行剪枝時(shí),分別將γ^γ^設(shè)置為50%、80%和95%對應(yīng)的剪枝率分別為50%、80%和95%。通過剪枝得到更緊湊的模型后進(jìn)行微調(diào)[20],本文使用與正常訓(xùn)練相同的超參數(shù)對剪枝模型再訓(xùn)練,即將迭代次數(shù)設(shè)置為100,動量參數(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所示)。
表?1.??對比模型和剪枝模型評價(jià)結(jié)果
Table?1.??Evaluation results of comparison model and pruning model
| 模型 | 精確度 | mAP | 速度/(f/s) | 參數(shù) | 體量 | |
| CPU | GPU | |||||
| YOLOv3-tiny | 32.7 | 24.1 | 48 | 120 | 8.9M | 33.1MB |
| YOLOv3 | 55.8 | 57.9 | 13 | 27 | 60.6M | 231MB |
| YOLOv3-50 | 57.6 | 56.6 | 22 | 48 | 19.8M | 91.7MB |
| YOLOv3-80 | 51.7 | 52.4 | 23 | 50 | 12.3M | 46.6MB |
| YOLOv3-95 | 49.4 | 46.5 | 27 | 57 | 4.8M | 18.7MB |
?|?Show Table
DownLoad:?CSV
在本文實(shí)驗(yàn)中,分別通過剪枝得到了YOLOv3-50、YOLOv3-80和YOLOv3-95,對應(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)在線檢測。剪枝后的模型參數(shù)量分別比YOLOv3減少60.2%、79.7%和92.0%,體量比YOLOv3減少60.3%、79.8%和91.9%。隨著剪枝率的提升,網(wǎng)絡(luò)的檢測精確度有一定程度下降,但是YOLOv3-95在參數(shù)和體量遠(yuǎn)小于YOLOv3-tiny的情況下,精確度比其提升51%。由于YOLOv3-tiny的網(wǎng)絡(luò)較淺,就運(yùn)行時(shí)間來說YOLOv3-tiny要短。根據(jù)實(shí)驗(yàn)對比及以上分析,可得出YOLOv3-95在保證精度基本不下降的情況下,運(yùn)行時(shí)間最短,參數(shù)量和體量最小,剪枝效果達(dá)到最優(yōu),所以本文在下面的實(shí)驗(yàn)中將YOLOv3-95算法與ASMS算法相結(jié)合以提升聯(lián)合算法的性能。
4.2?? 實(shí)驗(yàn)2
為了檢測聯(lián)合算法的效果,采用行人視頻對不同算法進(jìn)行對照,本文使用跟蹤區(qū)域與前景目標(biāo)之間的巴氏距離來表示算法的跟蹤精度,巴氏距離數(shù)值越大說明目標(biāo)框圈定區(qū)域與前景目標(biāo)區(qū)域重合度越高,進(jìn)而表明算法的跟蹤準(zhǔn)確率越高,實(shí)時(shí)性通過有效跟蹤時(shí)間內(nèi)的每幀平均運(yùn)行時(shí)間來衡量。分別用傳統(tǒng)ASMS算法、KCF算法、基于YOLOv3和ASMS算法、基于YOLOv3-95和ASMS算法共四種算法進(jìn)行實(shí)驗(yàn)。算法均采用矩形框來對前景進(jìn)行跟蹤,傳統(tǒng)ASMS算法和KCF算法在手動圈動目標(biāo)后進(jìn)行跟蹤,基于YOLOv3和ASMS算法、基于YOLOv3-95和ASMS算法可自動檢測前景目標(biāo)進(jìn)行跟蹤。
視頻選取前景無遮擋的情況,由于實(shí)驗(yàn)各算法均能實(shí)現(xiàn)對移動前景目標(biāo)的實(shí)時(shí)跟蹤,只是在跟蹤過程中跟蹤框的大小和位置有一定差異,本文僅對聯(lián)合YOLOv3-95和ASMS算法的跟蹤效果進(jìn)行展示。圖 4是行人途中無遮擋視頻序列的第69幀,104幀和第239幀(對應(yīng)圖片從左到右)。
圖?4.??聯(lián)合YOLOv3-95和ASMS算法的跟蹤效果
Figure?4.??The tracking performance of algorithm based on YOLOv3-95 and ASMS
下載:?全尺寸圖片?幻燈片
傳統(tǒng)ASMS和KCF算法跟蹤邊界框選定的范圍更大。由表 2可知,改進(jìn)后的算法較ASMS算法在跟蹤精度上有一定提升,基于YOLOv3和ASMS算法對于測試視頻分別提升了2.4%,基于YOLOv3-95和ASMS算法提升了2.1%,原因是在引入跟蹤效果判斷機(jī)制后,算法對于出現(xiàn)ASMS在視頻的某些幀中跟蹤效果不理想,檢測框與實(shí)際前景目標(biāo)的巴氏距離 < 0.7的情況調(diào)用了YOLOv3-95算法進(jìn)行目標(biāo)重新定位,從而提升了算法的準(zhǔn)確度。基于YOLOv3-95和ASMS算法精度比基于YOLOv3和ASMS算法略低的原因是:經(jīng)過剪枝后的YOLOv3-95雖然運(yùn)行速度提升了兩倍,但對于目標(biāo)檢測的精度有所下降,從而導(dǎo)致聯(lián)合算法的平均巴氏距離數(shù)值有所降低。在實(shí)時(shí)性方面,傳統(tǒng)算法的運(yùn)行速度要更快。
表?2.??算法對比表
Table?2.??Comparison among different algorithms
| 算法 | 平均巴氏距離 | 單幀平均耗時(shí)/s |
| 傳統(tǒng)ASMS算法 | 0.786 | 0.0098 |
| KCF算法 | 0.795 | 0.0073 |
| 基于YOLOv3和ASMS算法 | 0.805 | 0.0631 |
| 基于YOLOv3-95和ASMS算法 | 0.803 | 0.0463 |
?|?Show Table
DownLoad:?CSV
4.3?? 實(shí)驗(yàn)3
視頻選取行人、動物、小車三種前景有遮擋的情況。分別使用傳統(tǒng)ASMS算法和KCF算法、基于YOLOv3和ASMS算法、基于YOLOv3-95和ASMS算法和近年在遮擋情況下跟蹤效果較優(yōu)的VITAL算法、SANet算法進(jìn)行實(shí)驗(yàn)。使用精確度和實(shí)時(shí)性來評價(jià)算法性能。行人視頻在159幀發(fā)生遮擋,到200幀時(shí)目標(biāo)遮擋結(jié)束。動物視頻從103幀開始發(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)分別是動物中途被遮擋視頻序列的第93幀、201幀和277幀。圖 5(c)、6(c)、7(c)分別是小車中途被遮擋視頻序列的第96幀、173幀和273幀。所有的測試視頻中,傳統(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)走出遮擋范圍后仍無法對其進(jìn)行準(zhǔn)確定位,跟蹤失敗。KCF算法的情況也是如此。而基于YOLOv3-95和ASMS算法能夠在存在遮擋的情況下準(zhǔn)確地實(shí)現(xiàn)前景目標(biāo)的穩(wěn)定跟蹤。在目標(biāo)被遮擋后,通過計(jì)算巴氏距離判定ASMS算法跟蹤失敗,采用YOLOv3算法對目標(biāo)進(jìn)行重新定位。在目標(biāo)從遮擋區(qū)域走出時(shí),YOLOv3算法識別出目標(biāo)并將目標(biāo)區(qū)域傳遞給ASMS算法并繼續(xù)使用ASMS算法進(jìn)行跟蹤。基于YOLOv3和ASMS算法、VITAL算法和SANet算法的方法與基于YOLOv3-95和ASMS算法的方法從跟蹤效果方面分析相差不大,本文不做贅述。
圖?5.??傳統(tǒng)ASMS算法的跟蹤效果。(a) 行人;(b) 動物;(c) 小車
Figure?5.??Tracking performance of the ASMS algorithm. (a) Pedestrian; (b) Animal; (c) Car
下載:?全尺寸圖片?幻燈片
圖?6.??KCF算法跟蹤效果。(a) 行人;(b) 動物;(c) 小車
Figure?6.??Tracking performance of the KCF algorithm. (a) Pedestrian; (b) Animal; (c) Car
下載:?全尺寸圖片?幻燈片
圖?7.??基于YOLOv3-95和ASMS算法的跟蹤效果。(a) 行人;(b) 動物;(c) 小車
Figure?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)被遮擋從而無法通過算法定位。ASMS算法從159幀目標(biāo)發(fā)生遮擋開始巴氏距離數(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算法對目標(biāo)進(jìn)行檢測,在目標(biāo)有遮擋情況下仍能進(jìn)行較長時(shí)間跟蹤,且跟蹤精度優(yōu)于ASMS和KCF算法,直至目標(biāo)將要完全被遮擋時(shí)才發(fā)生丟失。并在201幀時(shí)目標(biāo)從遮擋區(qū)域走出后,經(jīng)過YOLOv3-95算法的重新定位確定目標(biāo)位置,計(jì)算此時(shí)搜索窗鎖定的區(qū)域與真實(shí)目標(biāo)的巴氏距離并判斷是否超過閾值,在204幀時(shí)巴氏距離數(shù)值> 0.7,繼續(xù)使用ASMS算法進(jìn)行跟蹤。而傳統(tǒng)ASMS算法和KCF算法目標(biāo)受遮擋丟失,在201幀目標(biāo)再次出現(xiàn)后也無后續(xù)解決方案。對于動物和小車改進(jìn)算法也能很好地進(jìn)行目標(biāo)丟失后的重跟蹤,在此不做贅述。
圖?8.??巴氏系數(shù)的曲線變化圖
Figure?8.??Bhattacharyya coefficient curves of different algorithms
下載:?全尺寸圖片?幻燈片
圖 9為行人視頻中,基于YOLOv3-95和ASMS算法、VITAL算法和SANet算法候選區(qū)域和目標(biāo)區(qū)域巴氏距離的變化曲線圖。由圖 9可以觀察到,三種算法的巴氏距離走向基本一致,在未發(fā)生遮擋時(shí),三種算法均能很好地對目標(biāo)進(jìn)行跟蹤,當(dāng)目標(biāo)發(fā)生遮擋時(shí),三種算法均有很強(qiáng)的魯棒性,直至目標(biāo)將要被完全遮擋前跟蹤框均能較好地跟蹤目標(biāo)。當(dāng)目標(biāo)走出遮擋區(qū)域,三種算法都能立即識別并完成跟蹤。
圖?9.??巴氏系數(shù)的曲線變化圖
Figure?9.??Bhattacharyya coefficient curves of different algorithms
下載:?全尺寸圖片?幻燈片
表 3為各算法的性能對比,進(jìn)行定量分析可知,在實(shí)時(shí)性方面基于YOLOv3和ASMS算法相較于傳統(tǒng)ASMS和KCF算法而言運(yùn)行速度較慢,是因?yàn)樗惴ㄌ岢隽诵碌墓δ?#xff0c;采用巴氏距離判斷和YOLOv3檢測,算法耗時(shí)主要體現(xiàn)在前景自動識別和在目標(biāo)丟失后通過YOLOv3算法對目標(biāo)的重新定位,所以相較于傳統(tǒng)算法來說聯(lián)合算法的復(fù)雜度更高,單幀處理的耗時(shí)更長,基于YOLOv3和ASMS算法三組測試視頻的平均運(yùn)行速度為16.3 f/s,基于YOLOv3-95和ASMS算法的平均運(yùn)行速度為21.4 f/s,比其運(yùn)行速度提升了31.2%,說明了剪枝的有效性。VITAL和SANet算法三組測試視頻單幀視頻平均耗時(shí)分別為1.33 s和1.65 s,耗時(shí)是本文基于YOLOv3-95和ASMS算法的26.6倍和33倍。在精確度方面,本文算法雖稍遜色于VITAL算法和SITN算法,但比傳統(tǒng)ASMS算法和KCF算法在有遮擋的情況下的精確度提升了2倍,很好地解決了目標(biāo)丟失問題。
表?3.??算法對比表
Table?3.??Comparison among different algorithms
| 算法 | 平均巴氏距離 | 單幀平均耗時(shí)/s | |||||
| 行人 | 動物 | 小車 | 行人 | 動物 | 小車 | ||
| ASMS算法 | 0.3128 | 0.2564 | 0.3397 | 0.0093 | 0.0101 | 0.0104 | |
| KCF算法 | 0.3275 | 0.2631 | 0.3463 | 0.0078 | 0.0073 | 0.0085 | |
| 基于YOLOv3和ASMS的算法 | 0.6965 | 0.6700 | 0.7201 | 0.0626 | 0.0611 | 0.0607 | |
| 基于YOLOv3-95和ASMS的算法 | 0.6733 | 0.6574 | 0.7196 | 0.0469 | 0.0460 | 0.0473 | |
| VITAL算法 | 0.7043 | 0.6852 | 0.7253 | 1.6667 | 1.6823 | 1.6295 | |
| SANet算法 | 0.6965 | 0.6700 | 0.7201 | 1.3333 | 1.3478 | 1.3256 | |
?|?Show Table
DownLoad:?CSV
基于YOLOv3-95和ASMS算法除了可以應(yīng)用于目標(biāo)發(fā)生遮擋情況,對于目標(biāo)運(yùn)動過快導(dǎo)致目標(biāo)丟失的場景也同樣適用,處理機(jī)制與目標(biāo)被遮擋場景一致。當(dāng)目標(biāo)運(yùn)動過快時(shí),當(dāng)前幀的初始搜索窗口不包含運(yùn)動目標(biāo),則ASMS算法無法迭代出目標(biāo)的精確位置,這一過程與目標(biāo)受到遮擋時(shí)的場景類似。基于YOLOv3-95和ASMS的算法先使用YOLOv3-95算法對下一幀進(jìn)行目標(biāo)重檢測,準(zhǔn)確定位后再將目標(biāo)信息傳遞給ASMS算法繼續(xù)跟蹤。
5.?? 結(jié)論
本文針對傳統(tǒng)算法在目標(biāo)丟失后無法進(jìn)行后續(xù)跟蹤的問題,提出了一種基于YOLOv3和ASMS的目標(biāo)跟蹤算法,可應(yīng)用于目標(biāo)受到遮擋或發(fā)生快速運(yùn)動導(dǎo)致搜索窗口不包含運(yùn)動目標(biāo)等場景。通過YOLOv3算法檢測出前景目標(biāo),然后采用ASMS算法進(jìn)行后續(xù)跟蹤和更新,但是該算法時(shí)間復(fù)雜度較高,所以本文繼而對網(wǎng)絡(luò)進(jìn)行剪枝,得到了YOLOv3-50、YOLOv3-80和YOLOv3-95,通過聯(lián)合YOLOv3-95和ASMS最終得到了本文提出的基于YOLOv3和ASMS的目標(biāo)跟蹤算法,并將測試結(jié)果與其他主流算法的結(jié)果進(jìn)行分析和對比可知,本文算法不僅實(shí)現(xiàn)了全自動跟蹤,還解決了跟蹤目標(biāo)丟失問題,提升了算法精度和運(yùn)行速度,證明了該算法具有抗干擾能力強(qiáng)、魯棒性高、計(jì)算速度快、效率高、實(shí)時(shí)性好的優(yōu)點(diǎn)。雖然基于YOLOv3和ASMS的目標(biāo)跟蹤算法能更好地適應(yīng)目標(biāo)跟蹤任務(wù),但是其仍具有只能對單個(gè)目標(biāo)進(jìn)行跟蹤,且應(yīng)用場景簡單的缺點(diǎn);未來將會重點(diǎn)對跟蹤算法部分進(jìn)行改進(jìn),以實(shí)現(xiàn)對多目標(biāo)的精確跟蹤,適用于更為復(fù)雜的場景。
【轉(zhuǎn)載聲明】轉(zhuǎn)載目的在于傳遞更多信息。如涉及作品版權(quán)和其它問題,請?jiān)?0日內(nèi)與本號聯(lián)系,我們將在第一時(shí)間刪除!
總結(jié)
以上是生活随笔為你收集整理的2021-11-05深度学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年北京交通大学925数据结构考研
- 下一篇: day35-mysql之表的详细操作