譚 芳, 穆平安, 馬忠雪
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093)
行人目標(biāo)的檢測與跟蹤在交通、安防等領(lǐng)域具有重要的實(shí)用價(jià)值,一直都是計(jì)算機(jī)視覺與圖像處理領(lǐng)域的研究熱點(diǎn)。傳統(tǒng)的行人目標(biāo)跟蹤算法主要分為判別類算法和生成類算法?;跈z測的判別類算法主要有背景差法、閾值分割法、幀差法、光流法以及HOG特征結(jié)合SVM分類器等方法[1~4]。這些方法中有些算法計(jì)算量較大,實(shí)時(shí)性較差(如背景差法、光流法、HOG+SVM);有些算法雖然計(jì)算速度快,但檢測效果易受到光照變化、噪聲干擾、目標(biāo)形變的影響,導(dǎo)致行人目標(biāo)檢測精度低(如幀差法、閾值分割法)。而基于概率統(tǒng)計(jì)的生成類算法主要有卡爾曼濾波(Kalman filter)、粒子濾波、均值漂移(meanshift)等方法[5~8]。雖然其實(shí)時(shí)性強(qiáng),但由于目標(biāo)快速移動及誤差累計(jì)造成的目標(biāo)漂移,大大降低了跟蹤的準(zhǔn)確率。
針對這些傳統(tǒng)算法中的缺點(diǎn),本文將結(jié)合深度學(xué)習(xí)與行人目標(biāo)特征展開行人間的多目標(biāo)跟蹤研究。首先采用YOLOv3算法在Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)下訓(xùn)練行人目標(biāo)檢測模型,獲得一個(gè)精度與速度優(yōu)良的YOLOv3檢測器,然后結(jié)合FAST角點(diǎn)檢測算法和BRISK算法對檢測到的行人目標(biāo)進(jìn)行特征點(diǎn)提取與匹配,最終實(shí)現(xiàn)行人目標(biāo)在背光、快速移動、部分遮擋等各種復(fù)雜情況下良好的跟蹤效果。將YOLOv3算法、FAST 角點(diǎn)檢測算法以及BRISK 特征匹配方法相結(jié)合,有效提升了傳統(tǒng)多目標(biāo)跟蹤算法的性能及魯棒性。
基于檢測的行人目標(biāo)跟蹤中,優(yōu)良的檢測器對最終的跟蹤效果有著至關(guān)重要的影響。目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩類:一類是one-stage的YOLO(YOLO、YOLO9000、YOLOv3)[9~11]和SSD(SSD、DSSD、DSOD)系列算法[12];另一類是two-stage 的R-CNN(R-CNN、Faster R-CNN、Mask-RCNN)系列算法[13~15]。前者在處理速度上雖快于后者,但平均準(zhǔn)確率卻低于后者。其中YOLO系列算法經(jīng)過不斷改良,最新版本的YOLOv3在COCO數(shù)據(jù)集上,精度達(dá)到與R-CNN系列相當(dāng)?shù)耐瑫r(shí),速度卻快了好幾倍。YOLOv3與其他基于深度學(xué)習(xí)的檢測器在COCO數(shù)據(jù)集上測試速度和精度的對比見表1所示。
表1 YOLOv3檢測器與其它深度學(xué)習(xí)檢測器的性能對比Tab.1 Comparison of the performance of the YOLOv3 detector with other deep learning detectors
YOLOv3采用新的網(wǎng)絡(luò)結(jié)構(gòu)Darknet-53,借鑒殘差網(wǎng)絡(luò)塊構(gòu)成的全卷積網(wǎng)絡(luò)作為骨干架構(gòu),在層與層之間設(shè)置快捷鏈路,以形成更深的網(wǎng)絡(luò)層次。利用多尺度特征進(jìn)行目標(biāo)檢測,以提升小目標(biāo)檢測的精度。同時(shí)采用多標(biāo)簽的Logistic取代了Softmax單標(biāo)簽方式,減少了檢測目標(biāo)的重疊情況。YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)模型見圖1所示。
網(wǎng)絡(luò)訓(xùn)練時(shí),在ImageNet 預(yù)訓(xùn)練好的權(quán)重基礎(chǔ)上,使用USC行人數(shù)據(jù)庫訓(xùn)練行人目標(biāo)檢測模型。將該數(shù)據(jù)庫提供的XML格式標(biāo)注信息轉(zhuǎn)換為YOLO格式的TXT文件,將YOLOv3.cfg文件中的識別類別改為1。通過實(shí)驗(yàn)分析,將權(quán)重衰減因子設(shè)為0.000 5,學(xué)習(xí)率設(shè)為0.001,動量參數(shù)設(shè)為0.95,訓(xùn)練批次取64。用訓(xùn)練好的YOLOv3檢測器對一個(gè)時(shí)長8 s, 24幀/s,尺寸640×480像素的行人視頻進(jìn)行測試。截取部分幀行人檢測效果見圖2所示。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)模型Fig.1 YOLOv3 network structure model
圖2 第37幀到第45幀的行人檢測結(jié)果Fig.2 Pedestrian detection results at frames 37 to 45
測試集視頻共導(dǎo)出192張圖片,由于只考慮部分遮擋的行人目標(biāo)檢測,未對遮擋超過60%的行人目標(biāo)進(jìn)行大量訓(xùn)練,所以將遮擋超過60%的行人目標(biāo)認(rèn)為是無效目標(biāo),檢測結(jié)果統(tǒng)計(jì)見表2所示。
表2 YOLOv3檢測器測試結(jié)果Tab.2 YOLOv3 detector test results
將訓(xùn)練好的YOLOv3檢測器用于各種復(fù)雜情況下的行人目標(biāo)檢測,根據(jù)YOLOv3檢測器檢測的結(jié)果,對檢測出的行人目標(biāo)進(jìn)行特征點(diǎn)提取與描述,然后將前后兩幀中的行人目標(biāo)進(jìn)行特征點(diǎn)匹配以達(dá)到多目標(biāo)跟蹤的目的。如果當(dāng)前幀檢測到的目標(biāo)無法與上一幀中目標(biāo)匹配,則判定此目標(biāo)為新目標(biāo),在下一幀中繼續(xù)進(jìn)行檢測跟蹤,直到無可匹配目標(biāo)為止。多目標(biāo)跟蹤算法總流程見圖3。
圖3 多目標(biāo)跟蹤算法流程圖Fig.3 Flow chart of multi-target tracking algorithm
FAST角點(diǎn)的定義為:若某像素點(diǎn)與其周圍鄰域內(nèi)足夠多的像素點(diǎn)相差較大,則該像素可能是角點(diǎn)[16](特征點(diǎn))。
如圖4所示,以某一點(diǎn)p為圓心,以3個(gè)像素點(diǎn)距離為半徑,得到像素點(diǎn)p1,p2,…,p16。根據(jù)情況設(shè)定一個(gè)閾值,特征點(diǎn)必須順序滿足下面3個(gè)條件,否則舍棄。
1) 計(jì)算p1,p9與中心p的像素差值,絕對值都大于閾值;
2) 計(jì)算p1,p9,p5,p13與中心p的像素差值,絕對值有至少3個(gè)超過閾值;
3) 計(jì)算p1~p16這16個(gè)點(diǎn)與中心p的像素差值,絕對值有至少9個(gè)超過閾值。
圖4 FAST特征點(diǎn)Fig.4 FAST feature points
4) 對圖像進(jìn)行NMS(非極大值抑制),消除緊挨在一起的角點(diǎn)。在特征點(diǎn)p為中心的一個(gè)鄰域內(nèi),計(jì)算FAST特征點(diǎn)的得分值(16個(gè)點(diǎn)與中心差值的絕對值總和)。若p的響應(yīng)值在該鄰域內(nèi)的特征點(diǎn)中最大,保留該特征點(diǎn),否則舍棄。若鄰域內(nèi)只有一個(gè)角點(diǎn)(特征點(diǎn)),則保留。計(jì)算得分公式為如式(1)所示(其中v表示FAST特征點(diǎn)的得分,pv為像素點(diǎn)灰度值)。
v=max∑|pv-p|
(1)
通常將閾值設(shè)為50,利用FAST算法快速得到圖像的特征點(diǎn)。截取視頻中的相鄰2幀見圖5所示。
圖5 特征點(diǎn)提取Fig.5 Extraction of feature point
在得到特征點(diǎn)之后,選擇在尺度不變性、旋轉(zhuǎn)不變性、魯棒性方面表現(xiàn)較好的BRISK算法得到特征點(diǎn)的描述子,然后利用PROSAC算法比較特征點(diǎn)之間的描述子,將特征點(diǎn)進(jìn)行匹配。
首先利用圖像金字塔對原圖像進(jìn)行多尺度表達(dá)(見圖6),構(gòu)造n個(gè)octave層(用ci表示)和n個(gè)intra-octave層(用di表示),n=4,i={0,1…n-1}。假設(shè)有圖像I,c0層為原圖像,c1層通過對c0層的2倍下采樣生成,c2層通過對c1層的2倍下采樣生成,以此類推產(chǎn)生octave層。而d0層通過對圖像I的1.5倍下采樣生成,d1層通過對d0層的2倍下采樣生成,d2層通過對d1層的2倍下采樣生成,以此類推產(chǎn)生intra-octave層[18,19]。
然后對每層圖像進(jìn)行空間上的NMS:特征點(diǎn)在尺度空間(上下層2×9個(gè)點(diǎn))和位置空間(8鄰域點(diǎn)),共26個(gè)鄰域點(diǎn)的FAST得分值要最大,否則舍棄。
圖6 尺度空間特征點(diǎn)檢測Fig.6 Feature point detection in scale space
對極值點(diǎn)的所在層和相鄰上下層之中對應(yīng)的像素點(diǎn)的FAST得分值作二維二次函數(shù)插值,得到極值點(diǎn)的坐標(biāo)位置;在尺度方向上進(jìn)行一維插值,得到極值點(diǎn)所對應(yīng)的特征尺度。
以特征點(diǎn)為圓心,做半徑不同的同心圓,在每個(gè)圓上獲得一定數(shù)目等間隔采樣點(diǎn),并對同心圓上采樣點(diǎn)進(jìn)行高斯濾波。高斯濾波的中心為采樣點(diǎn),方差設(shè)置為δ,濾波半徑與高斯方差成正比,最終使用的N個(gè)(N一般設(shè)為60)采樣點(diǎn)是經(jīng)過高斯平滑后的采樣點(diǎn)。采樣點(diǎn)兩兩一對,所有組合方式通過下面的集合表示:
A={(pi,pj)|i (2) 用I(pi,σi)、I(pj,σj)表示不同采樣點(diǎn)對在不同尺度的像素灰度值,σ表示尺度,g(pi,pj)表示局部梯度集合,則有: (3) 短距離點(diǎn)對和長距離點(diǎn)對的定義: (4) (5) 特征點(diǎn)主方向的獲得: (6) α=arctan 2(gy,gx) (7) 旋轉(zhuǎn)特征點(diǎn)周圍的采樣區(qū)域至主方向,對新的采樣區(qū)域進(jìn)行采樣。BRISK算法獲得的特征描述子為二進(jìn)制描述子,上述過程得到的長、短距離子集,考慮其中短距離子集的512個(gè)短距離點(diǎn)對,進(jìn)行二進(jìn)制編碼: (8) (9) PROSAC算法對特征點(diǎn)與模型之間的匹配質(zhì)量進(jìn)行衡量。利用PROSAC算法進(jìn)行特征點(diǎn)提純(見圖7),有效提高了匹配精度。 圖7 利用PROSAC剔除誤匹配點(diǎn)對提純前后Fig.7 Before and after purification by removing mismatched point pairs with PROSAC 本文實(shí)驗(yàn)配置環(huán)境基于英偉達(dá)1080 Ti、CUDA9.0以及Win10系統(tǒng),算法開發(fā)基于Python語言和Darknet-53深度學(xué)習(xí)框架,跟蹤可視化基于OpenCV。實(shí)驗(yàn)樣本選自洛桑聯(lián)邦理工學(xué)院CVLAB數(shù)據(jù)庫,分別為露臺、樓前廣場2個(gè)場景。本文僅選取與幾個(gè)經(jīng)典的方法進(jìn)行對比分析,具體數(shù)據(jù)如表3所示??梢钥闯?傳統(tǒng)基于HOG+SVM和光流法的行人目標(biāo)跟蹤模型,雖然取得了不錯的平均精度,但較大計(jì)算量加上復(fù)雜的測試場景,造成了實(shí)時(shí)性不理想。露臺測試場景中的背光視頻,導(dǎo)致了基于顏色直方圖的MeanShift行人目標(biāo)跟蹤模型的平均精度受到較大影響?;贙alman濾波的行人目標(biāo)跟蹤模型,雖能克服光照變化的影響,但對于行人間的遮擋和行人快速移動會出現(xiàn)目標(biāo)跟蹤丟失的情況。不同復(fù)雜環(huán)境下,本文跟蹤算法模型在精度和速度上表現(xiàn)都相對優(yōu)越。截取本文跟蹤算法部分幀不同環(huán)境下跟蹤效果見圖8~圖10,實(shí)驗(yàn)結(jié)果表明本文算法在背光、行人目標(biāo)快速移動、部分遮擋等條件下均能實(shí)現(xiàn)較好的跟蹤。 表3 與不同經(jīng)典行人目標(biāo)跟蹤模型性能對比Tab.3 Performance comparison with different classical pedestrian target tracking models 圖8 背光條件下行人目標(biāo)跟蹤結(jié)果Fig.8 Pedestrian target tracking results under backlight conditions 圖8為露臺場景第1074幀至第1079幀背光下行人目標(biāo)跟蹤結(jié)果。露臺場景由于攝像機(jī)角度的問題,視頻背光嚴(yán)重,行人目標(biāo)的顏色信息丟失嚴(yán)重,傳統(tǒng)的基于顏色特征的跟蹤算法就會受到很大的影響。但是由于本文跟蹤算法中YOLOv3檢測器對行人目標(biāo)檢測主要基于深度學(xué)習(xí)的方法,后續(xù)的行人目標(biāo)匹配采用了行人的邊緣輪廓信息,從而克服了顏色丟失這一問題,取得了較好的跟蹤結(jié)果。 圖9 快速移動行人目標(biāo)跟蹤結(jié)果Fig.9 Tracking results of fast moving pedestrian target 圖9為樓前廣場第1678幀至第1683幀快速移動行人目標(biāo)跟蹤效果,由于行人目標(biāo)較快速跑步進(jìn)入視頻采集區(qū)域,產(chǎn)生了一定的拖尾現(xiàn)象,造成行人目標(biāo)模糊不清。但檢測速度達(dá)到35幀/s的YOLOv3檢測器能迅速地捕捉到快速移動的行人目標(biāo),防止了行人檢測目標(biāo)丟失的情況發(fā)生。 圖10 部分遮擋行人目標(biāo)跟蹤結(jié)果Fig.10 Partially obscures pedestrian target tracking results 圖10為露臺場景中第1087幀至第1092幀存在部分遮擋時(shí)的行人目標(biāo)跟蹤效果??梢钥吹?person1逐漸被person2遮擋。當(dāng)遮擋低于60%時(shí),行人目標(biāo)的跟蹤是沒有受到影響的。只有當(dāng)遮擋超過60%以上時(shí),才出現(xiàn)了行人目標(biāo)的跟蹤丟失。結(jié)果證明本文的跟蹤算法對于處理行人目標(biāo)部分遮擋時(shí)具有一定的魯棒性。 本文通過YOLOv3算法快速檢測行人目標(biāo),確定目標(biāo)框,再結(jié)合FAST和BRISK算法對前后兩幀中的行人目標(biāo)進(jìn)行特征點(diǎn)提取與匹配以達(dá)到跟蹤的效果。實(shí)驗(yàn)證明算法在背光、行人目標(biāo)快速移動、行人部分遮擋等條件下均能實(shí)現(xiàn)較好的跟蹤。但在檢測過程中,由于目標(biāo)遮擋較大的問題造成后續(xù)目標(biāo)跟蹤的準(zhǔn)確率有所降低,未來可在網(wǎng)絡(luò)訓(xùn)練中增加60%以上遮擋的行人圖片樣本,以提高算法的魯棒性。4 實(shí)驗(yàn)結(jié)果與分析
5 結(jié) 論