王春艷,劉正熙
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
隨著深度學(xué)習(xí)技術(shù)的普及,使得圖形圖像領(lǐng)域的各項(xiàng)研究取得了一定的進(jìn)步,同時(shí)帶動(dòng)了多目標(biāo)跟蹤領(lǐng)域的進(jìn)一步發(fā)展。視頻多目標(biāo)在線跟蹤可應(yīng)用于交通實(shí)時(shí)監(jiān)測(cè)、人機(jī)交互、安防和無(wú)人駕駛等益于人們社會(huì)生活的眾多領(lǐng)域,所以仍然是計(jì)算機(jī)視覺(jué)中的研究熱點(diǎn),且富有挑戰(zhàn)性。目標(biāo)跟蹤算法的性能好壞受到所使用的檢測(cè)算法,用于匹配區(qū)分的特征以及數(shù)據(jù)關(guān)聯(lián)算法的影響。針對(duì)跟蹤算法中常見(jiàn)的諸如小目標(biāo)易漏檢、目標(biāo)間相互遮擋、光照變化引起跟蹤不穩(wěn)定等研究問(wèn)題,眾學(xué)者都在嘗試解決改進(jìn)。傳統(tǒng)的基于混合高斯背景建模的前景檢測(cè)方法(Gaussian Mixture Model,GMM)[1],利用多個(gè)高斯分布去表示背景像素的分布規(guī)律,可以在一定程度上減少動(dòng)態(tài)背景的干擾問(wèn)題,但計(jì)算復(fù)雜對(duì)光照敏感。基于目標(biāo)建模的傳統(tǒng)目標(biāo)檢測(cè)方法中最具代表性的工作主要有Dalal等人提出的梯度直方圖(Histogram of Oriented Gradients,HOG)[2]特征和P.Felzenszwalb等人提出的可形變部件模型(Deformable Part Based Model,DPM)[3]。HOG 通過(guò)統(tǒng)計(jì)目標(biāo)圖像局部區(qū)域的梯度和邊緣信息映射成梯度直方圖,形成局部區(qū)域的特征描述子,再把這些描述子串聯(lián)起來(lái)形成整體圖像的特征,HOG特征結(jié)合SVM分類器廣泛用于行人檢測(cè)。DPM使用了改進(jìn)后的HOG特征,使用多個(gè)組件模型來(lái)描述目標(biāo)的局部信息,使用全局模型來(lái)描述目標(biāo)的全局信息,DPM是基于傳統(tǒng)特征的目標(biāo)檢測(cè)中效果最好的算法之一,但是DPM特征計(jì)算復(fù)雜,計(jì)算速度慢;其次,人工特征對(duì)于旋轉(zhuǎn)、拉伸、視角變化的物體檢測(cè)效果差。Bar-Shalom等學(xué)者提出了聯(lián)合概率數(shù)據(jù)關(guān)聯(lián)算法(Joint Probabilistic Data Association,JPDA)[4-5],主要思想是認(rèn)為當(dāng)前掃描周期的量測(cè)和目標(biāo)是一一對(duì)應(yīng)的關(guān)聯(lián)關(guān)系,通過(guò)計(jì)算每一個(gè)量測(cè)與其可能源于的所有目標(biāo)的關(guān)聯(lián)概率,視概率最高的量測(cè)為成功匹配。JPDA算法實(shí)際運(yùn)用中計(jì)算量較大,且當(dāng)目標(biāo)平行運(yùn)動(dòng)或者發(fā)生小角度交叉運(yùn)動(dòng)時(shí),容易產(chǎn)生軌跡合并問(wèn)題。Donald B.Reid在1979年發(fā)表的文獻(xiàn)中提出多假設(shè)跟蹤算法(Multiple Hypothesis Tracking,MHT)[6-8],是一種在數(shù)據(jù)關(guān)聯(lián)發(fā)生沖突時(shí),形成多種假設(shè)并將假設(shè)傳遞以延遲做決定,利用后續(xù)量測(cè)數(shù)據(jù)解決不確定性的的方案。MHT算法在量測(cè)分配期間也是運(yùn)算量過(guò)大,當(dāng)目標(biāo)數(shù)較多時(shí),假設(shè)數(shù)量和計(jì)算量將呈指數(shù)型增長(zhǎng)。針對(duì)傳統(tǒng)方法所述缺點(diǎn),本文提出一種跟蹤方法,基于tracking-by-detection跟蹤框架,利用深度學(xué)習(xí)技術(shù),使用表現(xiàn)突出的基于深度學(xué)習(xí)的 YOLOv3(You Only Look Once version 3)檢測(cè)器檢測(cè)目標(biāo),卡爾曼濾波(Kalman Filter)算法[9]預(yù)測(cè)運(yùn)動(dòng)目標(biāo),結(jié)合深度神經(jīng)網(wǎng)絡(luò)提取出的外觀特征,逐幀用匈牙利算法(Hungarian Algorithm)[10]匹配關(guān)聯(lián)。
基于檢測(cè)的跟蹤中,一個(gè)好的檢測(cè)器對(duì)于最終跟蹤效果的影響不容小覷,本文方法中的檢測(cè)器是基于YOLOv3微調(diào)而來(lái)。近幾年,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)領(lǐng)域的研究逐步取得顯著性成果,當(dāng)下主流算法基本分為兩類,一類是two-stage的R-CNN(R-CNN、Fast R-CNN、Faster R-CNN)系列算法[11-13],另一類是以 Single Shot multibox Detector(SSD)[14]、YOLO 為首的 onestage算法[15-18]。相比而言,前者處理速度慢于后者,但結(jié)果平均準(zhǔn)確度高于后者。YOLO不同于R-CNN系列的先生成推薦區(qū)域(Region Proposal),然后在Region Proposal上進(jìn)行分類預(yù)測(cè)與回歸這種解決方案,而是采用一個(gè)統(tǒng)一的端到端的設(shè)計(jì)框架,一次性遍歷整個(gè)輸入圖像,很好地利用了圖像的全局信息輔助檢測(cè),這種方法使得YOLO算法速度快于R-CNN系列,也不容易將背景誤檢。隨著YOLO原作者的嘗試與改進(jìn),現(xiàn)已經(jīng)衍生出第三個(gè)版本,該系列算法的基礎(chǔ)思想是:其CNN網(wǎng)絡(luò)將輸入圖像分割成SxS個(gè)單元網(wǎng)格,每個(gè)單元格(cell)負(fù)責(zé)檢測(cè)那些中心點(diǎn)落在該cell內(nèi)的目標(biāo),每個(gè)單元格會(huì)預(yù)測(cè)B個(gè)邊界框(Bounding Box,BBox)以及邊界框的置信度(Confidence Score),置信度有兩層含義,一是對(duì)這個(gè)邊界框包含有目標(biāo)的可能性大小度量,二是對(duì)這個(gè)邊界框的準(zhǔn)確度量化,因此,對(duì)于邊界框可以用(x,y,w,h,c)這5個(gè)元素來(lái)表達(dá),(x,y)為目標(biāo)中心點(diǎn)相對(duì)于cell左上角的偏移位置,而w和h則是目標(biāo)寬和高與整張圖像的寬高比。同時(shí),該cell還要預(yù)測(cè)可能包含C個(gè)類別的各類概率值,綜上,每個(gè)單元格需要預(yù)測(cè)(B*5+C)個(gè)值。
相比于前兩個(gè)版本,YOLOv3最明顯的改進(jìn)是采用了類似Feature Pyramid Networks for Object Detection(FPN)架構(gòu)來(lái)實(shí)現(xiàn)多尺度預(yù)測(cè)(YOLOv3預(yù)測(cè)3種不同尺度的框),除此之外,還改進(jìn)了基礎(chǔ)網(wǎng)絡(luò),混合殘差網(wǎng)絡(luò),并使用連續(xù)的3×3和1×1卷積,設(shè)計(jì)了一個(gè)包含53個(gè)卷積層的更深的網(wǎng)絡(luò)DarkNet-53。由于新的多尺度預(yù)測(cè)方法的運(yùn)用,YOLOv3在小目標(biāo)的檢測(cè)上表現(xiàn)比以往有明顯改進(jìn),雖然該網(wǎng)絡(luò)更大,但是速度依然很快,準(zhǔn)確度也可觀。如圖1所示,是YOLOv3檢測(cè)器與SSD等檢測(cè)器的速度與精度對(duì)比效果,可以看到,YOLOv3的運(yùn)行速度明顯快于其他具有可比性能的檢測(cè)方法,且準(zhǔn)確度也相差不大。
網(wǎng)絡(luò)訓(xùn)練過(guò)程中,由于我們的研究主要是針對(duì)行人目標(biāo),所以在基于ImageNet預(yù)訓(xùn)練基礎(chǔ)之上,我們使用Caltech行人數(shù)據(jù)庫(kù)對(duì)模型進(jìn)行微調(diào),得到合適的模型。該數(shù)據(jù)庫(kù)是目前規(guī)模較大且應(yīng)用教廣的行人數(shù)據(jù)庫(kù),采用車(chē)載攝像頭拍攝,視頻分辨率為640×480,幀率為30FPS,共對(duì)250,000幀圖像進(jìn)行標(biāo)注,包含350000個(gè)矩形框和2300個(gè)行人,還對(duì)遮擋的情況進(jìn)行了標(biāo)注。經(jīng)多次實(shí)驗(yàn),最后在訓(xùn)練中將參數(shù)權(quán)重衰減因子設(shè)為0.0005,動(dòng)量系數(shù)設(shè)為0.9,訓(xùn)練批次取64。
圖1 YOLOv3檢測(cè)器與其他經(jīng)典檢測(cè)器的對(duì)比效果
目標(biāo)的不同特征在不同場(chǎng)景下對(duì)于區(qū)分目標(biāo)產(chǎn)生的效果影響各異,在稍復(fù)雜的實(shí)際場(chǎng)景中,綜合考慮各種因素,最有效的辦法是融合各種特征一起用于識(shí)別區(qū)分目標(biāo)。本實(shí)驗(yàn)中,是以深度外觀特征為主,形狀特征為輔實(shí)現(xiàn)目標(biāo)匹配區(qū)分。使用卷積網(wǎng)絡(luò)提取目標(biāo)的外觀特征有兩點(diǎn)好處,第一是因?yàn)榫矸e網(wǎng)絡(luò)可以從圖像原像素中提取目標(biāo)的深層語(yǔ)義特征,所提取的目標(biāo)特征具有非常強(qiáng)大的表達(dá)能力。第二是因?yàn)橥ㄟ^(guò)卷積網(wǎng)絡(luò)提取深度特征不需要依靠先驗(yàn)知識(shí)提前設(shè)計(jì),而是讓卷積網(wǎng)絡(luò)從海量的數(shù)據(jù)集中自動(dòng)學(xué)習(xí)特征,免去了手動(dòng)選取特征的復(fù)雜步驟,使得特征提取工作變得簡(jiǎn)單有效。對(duì)于深度特征的提取,我們?cè)贑affeNet上進(jìn)行微調(diào),首先用ImageNet數(shù)據(jù)集預(yù)訓(xùn)練模型初始化網(wǎng)絡(luò)權(quán)值,再結(jié)合行人重識(shí)別數(shù)據(jù)集[19]對(duì)網(wǎng)絡(luò)進(jìn)行離線微調(diào)。行人重識(shí)別數(shù)據(jù)集有1501個(gè)不同的人,每個(gè)人至少有2張不同的照片,總共涉及32668個(gè)包圍框。該網(wǎng)絡(luò)包含5層卷積層和3層全連接層,接受的輸入尺寸是227×227,第一個(gè)卷積層的卷積核大小為11×11,第 2層為5×5,后3層都是3×3的大小,最后全連接層得到4096維目標(biāo)特征,同一幀中目標(biāo)深度外觀特征相似度表示為:
其中 featdeti表示第i個(gè)檢測(cè)框的深度特征向量,feattrkj為跟蹤器 j的深度特征向量,cos表示對(duì)兩個(gè)向量進(jìn)行余弦距離運(yùn)算。Sapp值越大,說(shuō)明兩個(gè)目標(biāo)是同一目標(biāo)的概率越大。而形狀相似度則表示為:
其中Wdeti和Hdeti為檢測(cè)響應(yīng)矩形框的寬和高,Wtrkj和Htrkj為跟蹤對(duì)象的寬和高。Sshp(deti,trkj)的值越大說(shuō)明相似度越高,反之越小。
在目標(biāo)跟蹤部分,本文實(shí)驗(yàn)中采用卡爾曼濾波算法進(jìn)行目標(biāo)運(yùn)動(dòng)軌跡預(yù)測(cè),使用匈牙利算法對(duì)數(shù)據(jù)進(jìn)行關(guān)聯(lián)??柭鼮V波算法是一種利用線性系統(tǒng)狀態(tài)方程,針對(duì)觀測(cè)值(經(jīng)驗(yàn)知識(shí)推算)的不確定性,以及測(cè)量值(由于受到相關(guān)因素干擾,很可能導(dǎo)致測(cè)量數(shù)據(jù)發(fā)生偏差)的誤差,進(jìn)行加權(quán)求和,對(duì)預(yù)測(cè)值進(jìn)行修正,從而得到一個(gè)最優(yōu)解的算法,運(yùn)算速度快,效果卓越,目前被廣泛用于通信系統(tǒng)、航空航天、工業(yè)控制、圖像處理等眾多領(lǐng)域??柭鼮V波主要包含兩個(gè)步驟:預(yù)測(cè)和更新。在多目標(biāo)跟蹤系統(tǒng)中,預(yù)測(cè)指的是卡爾曼濾波器根據(jù)目標(biāo)的上一幀的狀態(tài)信息估計(jì)目標(biāo)在當(dāng)前幀的狀態(tài)信息,更新指的是卡爾曼濾波器根據(jù)目標(biāo)檢測(cè)器提供的觀測(cè)值矯正目標(biāo)在當(dāng)前幀的最優(yōu)值。數(shù)據(jù)關(guān)聯(lián)本質(zhì)上是一種多對(duì)多的線性指派問(wèn)題,我們使用匈牙利算法解決該類指派問(wèn)題,其核心是不斷尋找增廣路徑,可用于二分圖匹配、得到最小點(diǎn)覆蓋集或者最大獨(dú)立集,能在O(n3)的時(shí)間復(fù)雜度內(nèi)得到最優(yōu)解,其中n為檢測(cè)響應(yīng)和目標(biāo)跟蹤器的較大值,因此適用于對(duì)時(shí)間要求較高的實(shí)時(shí)跟蹤系統(tǒng)中。該算法求解過(guò)程包括以下步驟:
(1)找到每一行中值最小的元素,然后使該行的所有元素減去該最小值。
(2)找到每一列中值最小的元素,然后使該列的所有元素減去該最小值。
(3)用橫線或者豎線覆蓋矩陣中的所有0元素,并且使得直線的數(shù)量盡量少。若此時(shí)直線總數(shù)等于矩陣的行數(shù)或者列數(shù),則指派成功,否則執(zhí)行下一步。
(4)找到未被直線覆蓋的元素的最小值,所有未被直線覆蓋的行的元素減去該最小值,所有被直線覆蓋的列的元素加上該最小值,并轉(zhuǎn)步驟(3)。
匈牙利算法旨在得到一個(gè)全局最優(yōu)的結(jié)果集,然而在實(shí)際的目標(biāo)跟蹤視頻中,可能會(huì)出現(xiàn)運(yùn)動(dòng)目標(biāo)間相互遮擋、被其他靜止物遮擋,或者目標(biāo)外觀發(fā)生變化等情況,導(dǎo)致檢測(cè)效果不理性,從而影響最終跟蹤效果。針對(duì)這個(gè)問(wèn)題,我們將數(shù)據(jù)關(guān)聯(lián)部分分為兩層進(jìn)行:第一層匹配當(dāng)前幀的檢測(cè)集目標(biāo)和上一幀的穩(wěn)定的跟蹤集目標(biāo),所謂穩(wěn)定的跟蹤集,是指在最近連續(xù)的幾幀中都有被成功跟蹤的目標(biāo)集合,當(dāng)目標(biāo)外觀沒(méi)有發(fā)生較大變化,且沒(méi)有被其他物體遮擋時(shí),相鄰幀中屬于同一個(gè)目標(biāo)的候選對(duì)象外觀相似度值會(huì)非常大,這時(shí)我們僅使用深度外觀相似度就能取得好的關(guān)聯(lián)結(jié)果;第二層則匹配第一步中未分配出去的剩余檢測(cè)集目標(biāo)和目標(biāo),所謂臨時(shí)丟失的跟蹤集,是指由于長(zhǎng)期遮擋等問(wèn)題造成跟蹤丟失的連續(xù)幀數(shù)達(dá)到閾值K(一般取35左右)的跟蹤目標(biāo)集合,當(dāng)外觀發(fā)生變化或者發(fā)生遮擋時(shí),相鄰幀中的同一個(gè)目標(biāo)的外觀相似度可能會(huì)變得很小,這時(shí)我們就要引入形狀特征來(lái)輔助判斷相鄰幀目標(biāo)的相似性。
我們?nèi)OT16的7個(gè)測(cè)試數(shù)據(jù)集作為輸入,經(jīng)本文跟蹤系統(tǒng)處理后的輸出結(jié)果提交至MOT Challenge官網(wǎng),與其他公開(kāi)方法進(jìn)行比較,本文僅選取與幾個(gè)經(jīng)典方法的對(duì)比結(jié)果進(jìn)行展示說(shuō)明,具體數(shù)據(jù)如表1所示。其中,Avg Rank指標(biāo)表示經(jīng)過(guò)當(dāng)前所采用的所有評(píng)價(jià)指標(biāo)度量后的一個(gè)平均度量值,MOTA表示目標(biāo)跟蹤的精確度,該指標(biāo)是綜合考慮誤檢、漏檢和身份交換三個(gè)方面而得到,MT表示目標(biāo)被成功跟蹤的軌跡與真實(shí)軌跡的占比,ML表示目標(biāo)被跟丟的軌跡與真實(shí)軌跡的占比,F(xiàn)P表示目標(biāo)誤檢數(shù)量,F(xiàn)N表示目標(biāo)漏檢數(shù)量,ID Sw表示跟蹤過(guò)程中目標(biāo)發(fā)生身份交換的總數(shù)量,向上箭頭↑表示該指標(biāo)對(duì)應(yīng)的值越大越好,向下箭頭↓則表示對(duì)應(yīng)的值越小越好。從表中可以看到,本文方法在大部分指標(biāo)中都相對(duì)表現(xiàn)較好,在其他指標(biāo)上也具有一定可比性。
表1 與其他方法的對(duì)比結(jié)果
基于OpenCV庫(kù)、CUDA庫(kù)、Caffe深度學(xué)習(xí)框架和Darknet深度學(xué)習(xí)框架,在英偉達(dá)1060顯卡以及Win10系統(tǒng)支持,我們使用C++語(yǔ)言集成實(shí)現(xiàn)整個(gè)跟蹤系統(tǒng)。本文方法的最終運(yùn)行效果如圖2所示,圖片左下角的數(shù)字為視頻序列幀號(hào),從圖中可以看到10號(hào)目標(biāo)和11號(hào)目標(biāo)在被0號(hào)和5號(hào)目標(biāo)全遮擋后重新出現(xiàn)時(shí)能被正確關(guān)聯(lián),且圖中的小朋友即1號(hào)目標(biāo)能夠被正確檢測(cè)和跟蹤。實(shí)驗(yàn)證明,本文方法在一定程度上解決了跟蹤中存在的目標(biāo)遮擋問(wèn)題,具有一定實(shí)用價(jià)值和研究?jī)r(jià)值。
圖2 實(shí)驗(yàn)結(jié)果展示
本文的跟蹤方法中,重點(diǎn)在于研究高性能檢測(cè)器對(duì)于跟蹤的影響,以及盡可能合理利用提取的深度特征和形狀特征對(duì)目標(biāo)進(jìn)行分層關(guān)聯(lián),一定程度上解決了由于遮擋等問(wèn)題對(duì)目標(biāo)跟蹤造成的干擾,且對(duì)小目標(biāo)的跟蹤表現(xiàn)可觀。在接下來(lái)的研究中,我們會(huì)繼續(xù)改進(jìn)。