徐 樂,蔡永華,龐智恒,王宇寧
(1.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430070;2.武漢理工大學(xué) 汽車零部件技術(shù)湖北省協(xié)同創(chuàng)新中心,湖北 武漢 430070;3.武漢理工大學(xué) 汽車工程學(xué)院,湖北 武漢 430070)
目標(biāo)跟蹤為在一個連續(xù)的視頻流中自動跟蹤感興趣的目標(biāo)位置,從而形成目標(biāo)運(yùn)動軌跡[1]。目標(biāo)跟蹤廣泛應(yīng)用于智能交通、機(jī)器人導(dǎo)航及智能監(jiān)控等領(lǐng)域[2]。
目標(biāo)跟蹤算法主要分為判別式和生成式兩類,判別式跟蹤算法采用在線訓(xùn)練的方法將跟蹤問題轉(zhuǎn)換為二分類問題,利用機(jī)器學(xué)習(xí)方法區(qū)分背景和前景,由于其考慮了背景信息,使得跟蹤準(zhǔn)確性更高,成為近幾年的研究熱點(diǎn)[3]。Kalal等[4]提出TLD(tracking learning dection)跟蹤算法,引入重檢測機(jī)制,將檢測與跟蹤有效地結(jié)合起來,實(shí)現(xiàn)對單目標(biāo)的長時跟蹤。Hare等[5]為了降低跟蹤過程中的累積誤差,提出了基于結(jié)構(gòu)化輸出預(yù)測的自適應(yīng)跟蹤框架,提升了跟蹤性能,但該算法對于目標(biāo)遮擋等情況適應(yīng)能力差?;谙嚓P(guān)濾波跟蹤算法,如MOSSE(minimum output sum of squared error filter)[6]、KCF(kernel correlation filter)[7]等,實(shí)時性優(yōu)勢大,但對復(fù)雜交通場景的目標(biāo)跟蹤魯棒性差,如車輛、行人跟蹤等。
近年來,相關(guān)學(xué)者將神經(jīng)網(wǎng)絡(luò)引入目標(biāo)跟蹤領(lǐng)域,借助傳統(tǒng)在線訓(xùn)練跟蹤框架完成跟蹤任務(wù)。然而,在線訓(xùn)練神經(jīng)網(wǎng)絡(luò)實(shí)時性能差,且未充分利用神經(jīng)網(wǎng)絡(luò)在大數(shù)據(jù)集上的優(yōu)勢,因此,基于深度學(xué)習(xí)的在線訓(xùn)練跟蹤算法很難勝任實(shí)際應(yīng)用[8]。目前,基于深度學(xué)習(xí)的離線訓(xùn)練目標(biāo)檢測方法已經(jīng)取得了巨大成功,無論基于兩階段的RCNN(region with CNN)系列[9],還是基于單階段的SSD(sum of square difference)、YOLO(you only look once)系列[10-11],實(shí)時性和準(zhǔn)確性上均達(dá)到了較高水平。其中Redmon等[12]提出的YOLOv2算法表現(xiàn)最佳,其深層次的特征提取結(jié)構(gòu)提高了圖像的特征表達(dá)能力,并且使用了基于網(wǎng)格劃分生成候選區(qū)域的方法。為了解決基于深度學(xué)習(xí)的在線訓(xùn)練跟蹤算法實(shí)時性問題,Redmon等[13]提出GOTURN(generic object tracking using regression network)算法,采用離線訓(xùn)練方式大幅度提升了跟蹤速度達(dá)100 fps,但該算法跟蹤精度低。
筆者在GOTURN算法離線訓(xùn)練框架基礎(chǔ)上提出了一種基于YOLOv2的車輛跟蹤算法YOLOv2-tracker。①采用YOLOv2的網(wǎng)絡(luò)結(jié)構(gòu)作為跟蹤算法的主體結(jié)構(gòu),用于特征提取與位置預(yù)測,將兩階段的跟蹤問題簡化為單階段跟蹤問題;②采用YOLOv2的網(wǎng)格劃分方法,顯著改善候選搜索區(qū)域的生成質(zhì)量;③提出掩膜處理方法用于標(biāo)記跟蹤目標(biāo),該處理可以保留目標(biāo)的位置信息,提高跟蹤魯棒性;④針對跟蹤過程中存在的誤跟蹤與跟丟問題,提出加強(qiáng)目標(biāo)特征信息的方法以解決誤跟蹤問題,并利用動態(tài)保存的方法重新找回目標(biāo);⑤針對缺乏大量的車輛跟蹤數(shù)據(jù)集用于離線訓(xùn)練的問題,采集了330組城市交通場景視頻制作數(shù)據(jù)集,用于此跟蹤算法的訓(xùn)練及測試。
GOTURN算法采用離線訓(xùn)練的方式,學(xué)習(xí)到目標(biāo)運(yùn)動與目標(biāo)外形之間的通用關(guān)系,使得該算法可以跟蹤在數(shù)據(jù)集中沒有出現(xiàn)的目標(biāo)。其算法流程如圖1所示。在測試時,首先輸入兩幅連續(xù)的圖像,在前一幀裁剪出要跟蹤的目標(biāo),而當(dāng)前幀根據(jù)前一幀目標(biāo)的位置確定搜索區(qū)域;然后將跟蹤目標(biāo)和搜索區(qū)域分別送入兩個并行的深度為5的卷積層提取圖像特征;最后將卷積層的輸出送入深度為3的全連接層,該層的目的是比較跟蹤目標(biāo)和搜索區(qū)域的圖像特征,進(jìn)而找到當(dāng)前幀的跟蹤目標(biāo)。在訓(xùn)練時,利用全連接層輸出的預(yù)測框和標(biāo)定框間的L1正則化損失,并使用SGD(stochastic gradient descent)算法訓(xùn)練網(wǎng)絡(luò)。
圖1 GOTURN算法流程
(1)YOLOv2網(wǎng)絡(luò)結(jié)構(gòu)。與GOTURN算法的5層卷積層相比,YOLOv2以Darknet-19作為基礎(chǔ)模型,采用了22層卷積層提高了特征提取能力。每層卷積層后都加入批標(biāo)準(zhǔn)化處理。
圖2 圖像劃分網(wǎng)格
圖3 n個anchor box
(2)YOLOv2基本原理。如圖2所示,YOLOv2將輸入圖像劃分為S×S網(wǎng)格,根據(jù)每個網(wǎng)格的中心設(shè)定n個不同大小的anchor box,其中,n和anchor box通過對訓(xùn)練集中目標(biāo)長寬比進(jìn)行K均值k-means聚類得到,如圖3所示。同時,每個anchor box對應(yīng)5個偏移量(tx,ty,tw,th,to),其中,前4個為4個坐標(biāo)補(bǔ)償值,to為檢測置信度。每個網(wǎng)格單元的輸出神經(jīng)元個數(shù)為n×(1+4+c),c為類別數(shù),如圖4所示。然后,對每個建議框利用式(1)進(jìn)行位置修正:
圖4 輸出神經(jīng)元
bw=pwetw,bh=pheth
Pr(object)*IoU(b,object)=σ(to)
(1)
式中:pw、ph為K-均值聚類得到的先驗(yàn)框的寬和高;bx、by、bw、bh為修正后區(qū)域建議框的質(zhì)心坐標(biāo)及相應(yīng)的寬和高;σ為sigmiod函數(shù),其作用是限制修正因子的大??;(cx,cy)為每個網(wǎng)格的尺度,Pr(object)表示目標(biāo)落于網(wǎng)格單元時概率為1,否則為0;IoU(b,object)為區(qū)域建議框與標(biāo)準(zhǔn)框的交并比;σ(to)為預(yù)測目標(biāo)的置信值。最后,得到每個區(qū)域建議框的位置信息及置信分?jǐn)?shù),再利用非極大值抑制及置信分?jǐn)?shù)找到最優(yōu)目標(biāo)框,作為最終檢測結(jié)果。
筆者采用GOTURN網(wǎng)絡(luò)結(jié)構(gòu)的搭建思想,并將YOLOv2的網(wǎng)絡(luò)結(jié)構(gòu)巧妙地融合到筆者的跟蹤網(wǎng)絡(luò)中,提出了YOLOv2-tracker算法。
(1)YOLOv2-tracker算法中的掩膜處理。在訓(xùn)練時,首先標(biāo)定目標(biāo)車輛,采用如圖5所示的掩膜處理方法,類似于GOTURN算法中的對連續(xù)兩幀圖像進(jìn)行裁剪的作用。與傳統(tǒng)的裁剪方法相比,掩膜處理具有兩個優(yōu)點(diǎn):①保留了目標(biāo)物體在
整張圖像上的位置信息。②在訓(xùn)練過程和測試過程中,圖像中目標(biāo)車輛的大小會發(fā)生改變,但整張圖像的大小卻可以保持不變,因此便于將圖像輸入網(wǎng)絡(luò)進(jìn)行特征提取。
圖5 掩膜處理過程
(2)YOLOv2-tracker算法的單雙網(wǎng)絡(luò)結(jié)構(gòu)?;贒arknet-19網(wǎng)絡(luò)框架通過修改輸入輸出層,筆者提出了YOLOv2-tracker算法的單雙網(wǎng)絡(luò)兩種結(jié)構(gòu),雙網(wǎng)絡(luò)類似于GOTURN算法結(jié)構(gòu),如圖6所示。首先對第一幀圖像進(jìn)行掩膜處理以標(biāo)記跟蹤目標(biāo)。然后將該掩膜圖像與第二幀圖像分別輸入YOLOv2的卷積層進(jìn)行特征提取,其中,第二幀圖像的搜索區(qū)域由YOLOv2算法的網(wǎng)格劃分方法產(chǎn)生。最后,將卷積層的輸出結(jié)果輸入到Y(jié)OLOv2輸出層,并預(yù)測第二幀中跟蹤目標(biāo)的位置,依次規(guī)律完成其他幀的預(yù)測。而如圖7所示的單網(wǎng)絡(luò)結(jié)構(gòu),不同于雙網(wǎng)絡(luò)結(jié)構(gòu),它直接將掩膜圖像與第二幀圖像疊加形成6通道的輸入,之后一起輸入YOLOv2卷積網(wǎng)絡(luò)進(jìn)行跟蹤目標(biāo)預(yù)測。單網(wǎng)絡(luò)與雙網(wǎng)絡(luò)相比,其網(wǎng)絡(luò)結(jié)構(gòu)更簡單,參數(shù)更少,訓(xùn)練和測試耗時更低。
圖6 雙網(wǎng)絡(luò)結(jié)構(gòu)方案
圖7 單網(wǎng)絡(luò)結(jié)構(gòu)方案
如圖8所示,由于掩膜處理保存了車輛的位置信息,當(dāng)網(wǎng)絡(luò)對位置較為敏感時,即使目標(biāo)車輛離開視頻,網(wǎng)絡(luò)仍然會在目標(biāo)車輛離開的附近區(qū)域預(yù)測車輛,即出現(xiàn)誤跟現(xiàn)象。
圖8 誤跟蹤現(xiàn)象
針對此問題,提出一種如圖9所示的特征信
息加強(qiáng)的優(yōu)化方案,即加強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)目標(biāo)車輛特征的能力。在訓(xùn)練過程中,除將連續(xù)兩幀圖像輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,還將取自兩個視頻組的圖像輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練產(chǎn)生負(fù)樣本,即網(wǎng)絡(luò)輸出層中全部的置信度神經(jīng)元預(yù)測值為0。
由于目標(biāo)快速移動、遮擋等問題,導(dǎo)致缺少當(dāng)前幀圖像中目標(biāo)車輛的位置信息,使得掩膜處理過程不能連續(xù),最終導(dǎo)致跟丟目標(biāo)。為了使算法在跟丟目標(biāo)后能重新找回目標(biāo),提出了一種基于動態(tài)保存的優(yōu)化方案。該方案動態(tài)保存最新一幀的掩膜處理所得的目標(biāo)車輛標(biāo)記圖,當(dāng)目標(biāo)車輛跟丟時,用已保存的最新目標(biāo)車輛標(biāo)記圖代替當(dāng)前幀中失效的掩膜標(biāo)記圖,從而使算法重新找回跟蹤目標(biāo),實(shí)現(xiàn)車輛長時間跟蹤。
圖9 加強(qiáng)的優(yōu)化方案特征信息
實(shí)驗(yàn)使用硬件配置為i5處理器、Nvidia Geforece GTX1080顯卡及32 G內(nèi)存的計(jì)算機(jī),操作系統(tǒng)為Ubuntu16.04 64位,深度學(xué)習(xí)框架為Caffe。
跟蹤數(shù)據(jù)集是筆者通過行車記錄儀采集的330組交通視頻制作而成,將其分為280組訓(xùn)練集,50組測試集。并人工標(biāo)記每一幀圖像中車輛的位置。圖10為該數(shù)據(jù)集的部分?jǐn)?shù)據(jù),其中,方框?yàn)槿斯?biāo)記的車輛位置。
圖10 部分?jǐn)?shù)據(jù)集
為避免算法在訓(xùn)練過程中產(chǎn)生過擬合,通過4種方法擴(kuò)充數(shù)據(jù)集。分別為:①光照、對比度及飽和度隨機(jī)變化;②隨機(jī)抖動,將掩膜處理的圖像隨機(jī)添加抖動;③在訓(xùn)練過程中對選取的連續(xù)兩幀圖像,隨機(jī)改變其先后順序;④隨機(jī)間隔n幀(n小于10)選取兩幀用于訓(xùn)練。
采用OTB數(shù)據(jù)集[14-15]中的成功率及空間魯棒性作為評價標(biāo)準(zhǔn),其中,成功率表示OP(重疊率)大于某個閾值的視頻幀數(shù)占視頻總幀數(shù)的百分比;OP為跟蹤預(yù)測目標(biāo)框與標(biāo)定目標(biāo)框的重疊區(qū)域占兩者交集的百分比,即:
(2)
式中:rt為第t幀的預(yù)測目標(biāo)框;rlabel為第t幀標(biāo)定的目標(biāo)框。
空間魯棒性方法,主要通過修改起始幀的標(biāo)簽位置完成算法的空間魯棒性評價。例如,將起始幀中跟蹤目標(biāo)的參考標(biāo)準(zhǔn)框的位置移動10%,或者縮小、放大10%等。同時,實(shí)時性也是跟蹤算法的一項(xiàng)重要指標(biāo),以每秒能處理的圖像幀數(shù)來表示算法的實(shí)時性能。
此外,由于采集的數(shù)據(jù)集里部分視頻中的目標(biāo)車輛離開視頻畫面后,視頻仍未結(jié)束,性能優(yōu)越的跟蹤算法不應(yīng)該在隨后的視頻圖像中標(biāo)記出“目標(biāo)”。因此,需要增加一個額外的評價因子,即當(dāng)目標(biāo)離開視頻畫面后,算法若沒有預(yù)測出“目標(biāo)”,則表示當(dāng)前幀跟蹤成功,反之則否。
(1)網(wǎng)絡(luò)訓(xùn)練。整個訓(xùn)練過程使用SGD算法學(xué)習(xí)參數(shù),且除輸出層外,所有卷積層都使用批標(biāo)準(zhǔn)化處理,損失函數(shù)采用了YOLOv2算法的聯(lián)合損失函數(shù),其定義為:
lossbikl+losscikl)
(3)
式中:lossaikl為評價置信度神經(jīng)元損失函數(shù);lossbikl為坐標(biāo)補(bǔ)償值神經(jīng)元損失函數(shù);losscikl為類別神經(jīng)元組損失函數(shù),它們分別定義為:
lossaikl=λobjΨi(σ(poi)-1)2+
λnoobj(1-Ψi)(σ(poi)-0)2
(4)
lossbikl=λcoorψi[(σ(pxi)+cx-tx)2+
(σ(pyi)+cy-ty)2+
(cwepi-tw)2+(chephi-th)2]
(5)
(6)
式中:n為每個網(wǎng)格的anchor box數(shù);S2為圖片劃分的網(wǎng)格數(shù);B為小批量大小;Ψi為第i個anchor box,為正時取1,否則取0;poi為第i個anchor box對應(yīng)的置信度神經(jīng)元的預(yù)測值,λobj、λnoobj、λcoor分別為對應(yīng)損失的權(quán)重值;σ為sigmoid函數(shù);c為anchor box;t為參考標(biāo)準(zhǔn)框,x、y、w、h分別為anchor box的位置信息;m為類別數(shù),即類別神經(jīng)元組中神經(jīng)元個數(shù);pcij為類別神經(jīng)元組中第j個神經(jīng)元的預(yù)測值;tci為類別神經(jīng)元組中第j類神經(jīng)元的目標(biāo)值。
由于僅有目標(biāo)車輛(單類別)的跟蹤,筆者采用與文獻(xiàn)[11]和文獻(xiàn)[13]相同的訓(xùn)練方法精調(diào)網(wǎng)絡(luò),具體的訓(xùn)練參數(shù)值如表1所示。
YOLOv2-tracker算法使用數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)訓(xùn)練,其訓(xùn)練結(jié)果如圖11所示,從圖中可知,單、雙網(wǎng)絡(luò)的總損失函數(shù)均隨著訓(xùn)練次
數(shù)的增加而呈現(xiàn)總體下降趨勢,最終趨于收斂,說明該網(wǎng)絡(luò)訓(xùn)練有效,可用于測試。
表1 訓(xùn)練參數(shù)設(shè)置
圖11 YOLOv2-tracker算法訓(xùn)練結(jié)果
(2)網(wǎng)絡(luò)測試。利用50組測試集進(jìn)行網(wǎng)絡(luò)測試,具體評價指標(biāo)參數(shù)為:①重合率的閾值為0.5(記為OP0.5);②空間魯棒性,即初始幀標(biāo)簽隨機(jī)平移10%(記為shift10%)和隨機(jī)縮放10%(記為scale10%);③跟蹤速度。測試結(jié)果如表2所示。
由表2可知,單網(wǎng)絡(luò)與雙網(wǎng)絡(luò)的重合率、空間魯棒性較為接近,而單網(wǎng)絡(luò)算法的跟蹤速度與雙網(wǎng)絡(luò)算法相比優(yōu)勢明顯,約達(dá)2倍的速度。因而選擇單網(wǎng)絡(luò)作為最終網(wǎng)絡(luò)框架,其部分跟蹤結(jié)果如圖12所示,從圖12中看出,在背景復(fù)雜的交通環(huán)境中,跟蹤算法都能快速地跟蹤上目標(biāo),且跟蹤精度高。
表2 單、雙網(wǎng)絡(luò)測試結(jié)果
圖12 部分跟蹤結(jié)果
將本文算法實(shí)時性與在線訓(xùn)練算法[3,16,17]對比,結(jié)果如表3所示。對比可知該算法實(shí)時性遠(yuǎn)優(yōu)于一般在線訓(xùn)練算法。這主要因?yàn)閅OLOv2-tracker算法在有效的數(shù)據(jù)集上使用了離線訓(xùn)練方法,具備較強(qiáng)的特征提取能力及合理的候選區(qū)域生成方法。
表3 實(shí)時性對比
為了測試提出的特征信息加強(qiáng)優(yōu)化方案的有效性,分別將測試集分為“目標(biāo)離開”及“目標(biāo)未離開”兩組測試集,并分別使用優(yōu)化前后的單網(wǎng)絡(luò)進(jìn)行測試,測試結(jié)果如表4所示。
表4 優(yōu)化前后單網(wǎng)絡(luò)測試結(jié)果
從表4可知,在“目標(biāo)離開”組中,經(jīng)過優(yōu)化的網(wǎng)絡(luò)跟蹤精度大幅提升,達(dá)86.7%,與未優(yōu)化網(wǎng)絡(luò)的精度相比,提升了4.7%,與“目標(biāo)未離開”組的87.5%的跟蹤精度很接近。而“目標(biāo)未離開”組,網(wǎng)絡(luò)優(yōu)化前后,跟蹤精度相差不大。因此,通過特征信息加強(qiáng)的方法,可以促使網(wǎng)絡(luò)偏向于學(xué)習(xí)目標(biāo)車輛的特征信息,從而減小誤跟現(xiàn)象。
此外,使用的動態(tài)保存優(yōu)化方案可以有效地解決目標(biāo)跟丟問題。如圖13所示在第125幀時,跟蹤的目標(biāo)車輛被其他目標(biāo)遮擋,導(dǎo)致跟蹤目標(biāo)短時跟丟,而由于本文的跟蹤算法保留了相鄰幀間的上下文掩模圖像信息,可有效地找回跟蹤目標(biāo),因此,在之后的第142幀目標(biāo)已經(jīng)被重新跟蹤。
圖13 車輛跟丟部分結(jié)果
筆者提出了一種基于YOLOv2的車輛跟蹤算法YOLOv2-tracker,在復(fù)雜交通場景下跟蹤算法準(zhǔn)確率可達(dá)86%以上。在未來的工作中將繼續(xù)從以下幾方面研究以提高準(zhǔn)確率。①進(jìn)一步擴(kuò)大實(shí)驗(yàn)數(shù)據(jù)集用于訓(xùn)練更優(yōu)的模型;②使用車牌等先驗(yàn)知識,將車輛號牌識別技術(shù)應(yīng)用于本研究;③利用顏色信息建立目標(biāo)與背景區(qū)域的顏色直方圖,有效地抑制背景干擾,同時顏色直方圖忽略每個像素點(diǎn)的位置信息,可以減少目標(biāo)形變問題;④加入視頻幀間的運(yùn)動信息,如光流等,進(jìn)一步提高目標(biāo)的特征表達(dá)。