陳向陽,周揚,楊文柱
(河北大學(xué) 網(wǎng)絡(luò)空間安全與計算機學(xué)院,河北機器視覺工程研究中心,河北 保定 071000)
行人追蹤是計算機視覺領(lǐng)域中的一個重要研究方向,有著廣泛的應(yīng)用,如:視頻監(jiān)控、人機交互、行人流量觀測、無人駕駛等.實際上追蹤是通過確定某個特定的行人在視頻每一幀中的位置來實現(xiàn)的.行人追蹤的方法有基于神經(jīng)網(wǎng)絡(luò)的方法和傳統(tǒng)的基于模板匹配的方法.主流的基于神經(jīng)網(wǎng)絡(luò)的方法是使用基于RPN(region proposal network)[1]的孿生神經(jīng)網(wǎng)絡(luò)[2]來進(jìn)行追蹤,Li和Yan提出的SiamRPN[3],不同于標(biāo)準(zhǔn)的RPN,SiamRPN在相關(guān)特征圖譜上提取候選區(qū)域,然后把模板分支上的目標(biāo)外觀信息編碼到RPN特征中來判別前景和背景.但SiamRPN模型還是很難區(qū)分圖像中對象相似的情況.針對模型不更新以及抑制干擾物的問題,Zhu和Wang提出了干擾物識別模型DASiamRPN[4],并在檢測過程中引入新樣本實時更新模板,能有效地解決SiamRPN模型中存在的問題.在基于模板匹配的行人追蹤方法中,可以使用SIFT(scale-invariant feature transform)特征[5]來確定行人的特征,把該特征作為模板,通過對下一幀的視頻圖像進(jìn)行滑動窗口的匹配來確定行人的位置.Henriques提出了核相關(guān)濾波算法KCF[6]用于行人追蹤,KCF算法使用行人圖像信息和周圍背景圖像信息訓(xùn)練一個目標(biāo)檢測器,用于判斷行人在下一幀中的位置.但KCF算法存在著3個缺陷:1)尺度自適應(yīng)問題.目標(biāo)檢測器的大小不變,在視頻中行人由于距離攝像頭的遠(yuǎn)近不同,會導(dǎo)致行人目標(biāo)大小的變化,最終導(dǎo)致目標(biāo)檢測框?qū)δ繕?biāo)追蹤的不準(zhǔn)確.2)KCF使用的HOG特征[7]存在缺陷.HOG特征使用梯度特征表示,所以對行人的姿勢改變和顏色信息不敏感,從而導(dǎo)致追蹤過程中出現(xiàn)追蹤錯誤或者追蹤丟失的問題.3)遮擋問題.檢測器在行人目標(biāo)被遮擋的情況下,沒有辦法在視頻下一幀中給出行人目標(biāo)的準(zhǔn)確位置.
針對KCF算法的缺陷,設(shè)計了一種融合深度特征的改進(jìn)KCF模型.使用用于目標(biāo)識別的神經(jīng)網(wǎng)絡(luò)框架YOLO v3[8]來進(jìn)行行人檢測,結(jié)合KCF的預(yù)測位置,得到KCF新的模板,從而解決了KCF檢測器不能隨著目標(biāo)尺度變化而變化的問題.在HOG特征不足以區(qū)分行人的特征時,融合了深度特征的度量方式來確定行人目標(biāo)的位置.當(dāng)行人被遮擋時,使用卷積神經(jīng)網(wǎng)絡(luò)獲得被遮擋之前目標(biāo)的深度特征并保留,將后續(xù)視頻中出現(xiàn)的目標(biāo)與保留的目標(biāo)深度特征進(jìn)行對比,如果相似度大于設(shè)定的閾值,則可以確定被遮擋的追蹤目標(biāo)重新出現(xiàn).
KCF全稱為Kernel Correlation Filter 核相關(guān)濾波算法.自從2014年由Henriques等提出以后,由于其良好的追蹤效果和追蹤速度,引起了人們大量的關(guān)注.KCF算法引入多通道特征,利用追蹤目標(biāo)區(qū)域的圖像提取出多通道HOG特征,然后對目標(biāo)附近區(qū)域的圖像采樣,將采樣作為訓(xùn)練樣本,訓(xùn)練目標(biāo)檢測器.目標(biāo)檢測器訓(xùn)練好后,在下一幀中計算目標(biāo)周圍圖像樣本的HOG特征,使用高斯核函數(shù)計算樣本和追蹤目標(biāo)圖像HOG特征的相關(guān)性響應(yīng),響應(yīng)值最大的圖像就是追蹤目標(biāo)在該圖像中的最新位置圖像,之后在該圖像中使用響應(yīng)最大的圖像重新訓(xùn)練目標(biāo)檢測器,使用離散傅里葉變換將上述過程從時域轉(zhuǎn)為頻域后,大大降低了計算量.
KCF算法采用式(1)的嶺回歸的方法來訓(xùn)練追蹤器
(1)
其中,(f(xi)-yi)2為損失函數(shù),λ為正則化參數(shù),防止出現(xiàn)過擬合.
ω=(XTX+λI)-1XTy,
(2)
其中,X是一個矩陣,由采樣數(shù)據(jù)向量xi組成,每一行代表一個樣本;向量y由標(biāo)簽數(shù)據(jù)yi組成;I是單位矩陣.
在求解非線性函數(shù)中的ω時,由于不易確定非線性函數(shù)的形式,因此將xi映射到高維空間,就能將非線性問題求解轉(zhuǎn)換為線性求解,因此ω可以用式(3)表示.
ω=∑iαiφ(xi),
(3)
將其帶入線性回歸函數(shù)f(z)中可以得到
(4)
其中,k表示核函數(shù),KCF算法中使用的是高斯核函數(shù).所以求得最小情況下的ω值,也就變成了求α的值.
通過核函數(shù)的嶺回歸算法對分類器建模,利用循環(huán)矩陣的傅里葉對角化對模型進(jìn)行優(yōu)化,實現(xiàn)了快速高效的追蹤.
KCF的追蹤效果和追蹤速度雖然不錯,但當(dāng)追蹤目標(biāo)尺度發(fā)生變化時,可能會丟失追蹤目標(biāo).在KCF算法中,每次提取追蹤目標(biāo)圖像的尺度始終不變,都是最開始的追蹤目標(biāo)的尺度大小,所以如果目標(biāo)的運動導(dǎo)致離攝像頭的距離發(fā)生變化,目標(biāo)在圖像中的相對尺度大小就會變化.如果目標(biāo)框的大小不變,可能會導(dǎo)致提取的特征不完全,或者引入了變化的背景信息,從而導(dǎo)致追蹤的失敗.
針對KCF預(yù)測框不能隨著目標(biāo)尺度變化而變化的問題,引入與目標(biāo)檢測模型相結(jié)合的追蹤方法,使KCF具有尺度自適應(yīng)能力.因為目標(biāo)追蹤過程中,相鄰圖像幀中,追蹤目標(biāo)尺度變化幅度不會太大,這樣就可以在新的一幀圖像中,使用KCF預(yù)測出的新的目標(biāo)坐標(biāo),結(jié)合目標(biāo)檢測模型,得出尺度大小符合追蹤目標(biāo)大小的新的目標(biāo)框,使用新的目標(biāo)框作為KCF目標(biāo)檢測器的訓(xùn)練模板,這樣就實現(xiàn)了KCF的尺度自適應(yīng).流程如圖1所示.
圖1 KCF尺度自適應(yīng)流程Fig.1 KCF scale adaptive process
使用改進(jìn)的YOLOv3提取圖像特征進(jìn)行目標(biāo)檢測.YOLOv3是一個以darknet-53作為主框架的神經(jīng)網(wǎng)絡(luò),由于darknet-53每個網(wǎng)絡(luò)層的感受野不同,可以分別從它的不同網(wǎng)絡(luò)層提取不同尺度的目標(biāo),總共識別了3個尺度大小,并默認(rèn)使用MS-COCO數(shù)據(jù)集[9]來訓(xùn)練網(wǎng)絡(luò).
分別用52×52、26×26和13×13等3種不同尺度,將檢測圖像劃分為3種大小不同的區(qū)域,每個區(qū)域作為1個錨點,在錨點處識別出3個不同形狀的目標(biāo)窗口.其中最小尺度的識別融合了中等尺度和最大尺度的識別所用到的特征圖,從而增加了最小尺度識別的精確度.這樣從3個尺度來識別,就可以實現(xiàn)了目標(biāo)識別的尺度變化,類似于特征金字塔網(wǎng)絡(luò)[10].
新尺度的圖像目標(biāo)框通過計算KCF預(yù)測框和YOLOv3檢測框的交并比來確定
MR=argmaxRi{Pi|Pi=M?Ri,Ri∈R},
(5)
其中,MR為新尺度的圖像目標(biāo)框,M為原KCF的預(yù)測框,R為圖像中所有目標(biāo)的檢測框集合,Ri為集合R中的一個目標(biāo)檢測框,?為交并比運算.
KCF尺度可變的原理如圖2所示,圖2a中,在一個行人檢測的視頻中,KCF檢測出來的行人目標(biāo)框用紅色框標(biāo)出,在下一幀中,也就是圖2b中所預(yù)測的位置依然用紅色標(biāo)出,但是由于2幀圖像之間攝像機進(jìn)行了放大操作拉近了鏡頭,導(dǎo)致行人相對于圖像的尺度發(fā)生了變化,而KCF檢測框的尺度沒有發(fā)生變化,導(dǎo)致不能完全覆蓋目標(biāo),所以隨著鏡頭的拉近,目標(biāo)的尺度不斷相對變大,繼續(xù)使用KCF會導(dǎo)致追蹤目標(biāo)的丟失.這時候使用改進(jìn)的YOLOv3模型檢測出目標(biāo)中的人物坐標(biāo),也就是藍(lán)色框標(biāo)出的目標(biāo).由于圖像中可能出現(xiàn)多個行人目標(biāo),所以通過計算藍(lán)色框和紅色框的交并比大小,選擇其中交并比最大的一個藍(lán)色框作為新的目標(biāo)檢測器去訓(xùn)練KCF的目標(biāo)分類器.
a.KCF檢測的行人目標(biāo);b.YOLOv3檢測的行人目標(biāo)圖2 KCF尺度可變原理Fig.2 KCF scale variable schematic
KCF使用HOG特征,通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構(gòu)成特征,這種特征提取存在著很大的缺陷,如果行人的姿勢改變,HOG特征將無法區(qū)分,而且對顏色信息不敏感,對噪點卻很敏感,從而導(dǎo)致追蹤過程中追蹤錯誤或者追蹤丟失.
為了彌補HOG特征對噪點敏感、形狀改變時難以識別和無法感知顏色特征的缺陷,設(shè)計訓(xùn)練了一個卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)和提取行人目標(biāo)的深度特征.不像HOG特征,是人為選取的某些方面的特征,通過卷積神經(jīng)網(wǎng)絡(luò)提取的目標(biāo)深度特征,具有更本質(zhì)、更全面的特征表示,能利用顏色等其他特征綜合識別,從而克服目標(biāo)姿勢的改變和噪點對目標(biāo)識別的影響.
該網(wǎng)絡(luò)是一個9層的卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,由于整個網(wǎng)絡(luò)很小,可以快速提取圖像的深度特征.網(wǎng)絡(luò)使用了大小為3×3,步長為1的卷積核,把YOLOv3識別的行人圖像尺寸縮放為128×64的像素大小,并以RGB三通道的圖像作為了整個網(wǎng)絡(luò)的輸入圖像.網(wǎng)絡(luò)使用了Adam下降算法[11],每一層都使用了L2正則化和縱向歸一化.而且每一層都使用了ELU(exponential linear units)作為激活函數(shù),使得收斂速度快,加快訓(xùn)練速度.
表1 深度特征提取的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
該神經(jīng)網(wǎng)絡(luò)設(shè)計的層數(shù),是根據(jù)感受野計算公式得出.使用神經(jīng)網(wǎng)絡(luò)計算提取行人特征,主要提取具有明顯區(qū)別性的紋理特征.通過觀察大概20×20像素的紋理特征就可以明顯區(qū)別出不同穿著打扮的人,由于輸入行人圖像的大小為128×64像素,依照所需要的感受野大小和感受野計算公式,計算出網(wǎng)絡(luò)的層數(shù)為8層,最后再加上一個全連接層計算出一個128維的特征向量.
感受野公式如下:
(6)
其中,Lk-1是第k-1層的感受野大小;Fk是當(dāng)前的卷積核大小;Si是第i層的步長.
根據(jù)感受野公式,在第7層時,感受野大小為24×24像素.在第7層卷積層計算之后,得出了大小為32×16的特征圖,之后使用一個4×4的池化層進(jìn)一步去掉冗余的信息,同時減少了計算量,將特征圖變?yōu)?×4的大小,最后使用一個全連接層提取出一個128維的特征向量作為行人目標(biāo)的特征表示.
當(dāng)存在長期遮擋問題時,KCF算法會丟失追蹤的行人目標(biāo).此時如果保留丟失的行人目標(biāo)的深度特征,在接下來的圖像中,對比新出現(xiàn)的行人目標(biāo)的深度特征,如果相似度大于設(shè)定的閾值,就可以認(rèn)為遮擋后的目標(biāo)重新出現(xiàn)了,從而可以對其進(jìn)行再次追蹤.所以融合了尺度自適應(yīng)和深度特征對比的KCF追蹤方法,即IKCFMDF,可以解決KCF在遮擋情況下丟失行人目標(biāo)的問題.
在得到計算深度特征的神經(jīng)網(wǎng)絡(luò)后,將追蹤目標(biāo)和行人目標(biāo)之間深度特征的置信度和KCF預(yù)測位置的置信度相融合,就可以更準(zhǔn)確的追蹤行人的位置.其中融合的度量公式如下:
C=λCkcf+(1-λ)Dnetwork,
(7)
其中,Ckcf是KCF預(yù)測位置的置信度;Dnetwork是神經(jīng)網(wǎng)絡(luò)識別出的置信度,存在鏡頭晃動的時候λ取0即可.
IKCFMDF算法追蹤示例如圖3所示,圖3a帶有紅色邊框的人是追蹤目標(biāo),用神經(jīng)網(wǎng)絡(luò)提取了他的128維向量的深度特征并存儲,因為他的奔跑速度慢,在圖3b中相對攝像機視角逐漸向左移動.圖3c中,追蹤目標(biāo)完全不在攝影機視線范圍內(nèi),KCF完全丟失了追蹤目標(biāo),IKCFMDF此時將目標(biāo)的深度特征與其他人進(jìn)行比較,但沒有找到匹配的對象.因此,在圖3c中,目標(biāo)丟失并且沒有標(biāo)記紅色邊界框.圖3d中,目標(biāo)重新出現(xiàn),IKCFMDF將恢復(fù)的目標(biāo)向量與新出現(xiàn)的人進(jìn)行比較,然后再次找到目標(biāo),因此相應(yīng)的邊界框用紅色標(biāo)記.
a.跟蹤目標(biāo)標(biāo)有紅色邊框;b.攝像機視圖逐漸丟失目標(biāo);c.攝像機完全丟失了跟蹤目標(biāo);d.算法重新找到跟蹤目標(biāo)圖3 算法追蹤示例Fig.3 Diagram IKCFMDF algorithm tracking example
使用market1501數(shù)據(jù)集[12]來訓(xùn)練行人圖像特征提取的神經(jīng)網(wǎng)絡(luò).數(shù)據(jù)集包含了1 501個行人32 668張圖像.每個行人至少由2個攝像頭拍攝,每個攝像頭會拍攝有多張行人圖片.
由于神經(jīng)網(wǎng)絡(luò)計算得出的是一個特征向量,所以訓(xùn)練使用了triplet loss[13]作為訓(xùn)練損失函數(shù).
L=max(d(a,p)-d(a,n)+margin,0),
(8)
其中,L為訓(xùn)練的損失函數(shù),a、p、n分別是作為訓(xùn)練數(shù)據(jù)的行人圖像,a是一個人的訓(xùn)練圖像,p是與a同一個人的不同拍攝角度的樣本圖像,n是其他人的樣本圖像.
d(a,p)是a和p的行人圖像經(jīng)過神經(jīng)網(wǎng)絡(luò)計算出深度特征后的歐氏距離,d(a,n)是a和n的行人圖像經(jīng)過神經(jīng)網(wǎng)絡(luò)計算出深度特征后的歐式距離.
實驗結(jié)果如圖4所示,對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,在30 000次迭代之后就達(dá)到了98%的準(zhǔn)確度.
圖4 行人圖像特征提取網(wǎng)絡(luò)的訓(xùn)練準(zhǔn)確率Fig.4 Training accuracy of pedestrian image feature extraction network
模型使用OTB-100數(shù)據(jù)集[14]來測試準(zhǔn)確度,由于是行人追蹤,所以選擇了其中幾個包含有行人的視頻來測試,包括了human6視頻,woman視頻和girl2視頻.這些視頻中有很多干擾因素,如追蹤目標(biāo)尺度有變化、追蹤目標(biāo)被遮擋或消失、追蹤目標(biāo)非剛性形變和光照變化等等,因此增大了追蹤的難度.測試中,判斷標(biāo)準(zhǔn)是當(dāng)模型預(yù)測的交并比為0.5時即為正確追蹤,對比的算法有KCF、ASLA(adaptive structural local sparse appearance model)[15]、TLD(tracking learning detection)[16]、DASiamRPN、SiamRPN.對于融合的度量方式,其中的λ設(shè)置為0.2,YOLOv3的行人檢測置信度設(shè)置為了0.4,實驗對比結(jié)果如圖5所示.
圖5 幾種跟蹤算法在OTB-100數(shù)據(jù)集的幾個行人視頻中的跟蹤成功率Fig.5 Tracking success of several tracking algorithms in several pedestrian videos from the OTB-100 dataset
從圖5中可以看出本文提出的模型追蹤成功率比KCF、ASLA、TLD傳統(tǒng)算法有著很大的提升,對于DASiamRPN、SiamRPN基于神經(jīng)網(wǎng)絡(luò)的方法也有部分提升.
KCF、ASLA 和 TLD 方法盡管運行速度很快,但提取的特征對行人姿勢的改變不敏感,在復(fù)雜情況下追蹤效果并不好,本文模型使用神經(jīng)網(wǎng)絡(luò)提取深層特征,降低了噪點和動作改變的敏感性,與這些使用傳統(tǒng)特征追蹤的算法相比,具有更高的性能.
在Human 6 視頻中,本文模型的效果比SiamRPN的效果有較大提升,是因為 Human 6 視頻中行人的顏色更像背景,而其他視頻中則沒有這種情況.
本文模型與DASiamRPN相比,在3個視頻集中的追蹤效果差異均不大,因為DASiamRPN是基于SiamRPN的網(wǎng)絡(luò),其將distractor-aware模塊添加到了DASiamRPN中,并且在追蹤過程中,DASiamRPN還使用新樣本實時更新了框架.
針對行人追蹤中,KCF無法尺度自適應(yīng)和不能解決目標(biāo)遮擋問題,提出了融合深度特征的改進(jìn)KCF行人追蹤算法IKCFMDF.通過引入目標(biāo)檢測算法和深度特征,解決了追蹤過程中目標(biāo)尺度變化和HOG特征對顏色和姿勢改變不敏感的問題,以及由于遮擋或者攝像視角改變引起的目標(biāo)丟失問題,最終提升了追蹤算法的準(zhǔn)確度.
IKCFMDF算法還有很大的提升空間,其中的行人目標(biāo)檢測框架YOLOv3還可以換成未來更高效的檢測框架,或在行人特征明顯的環(huán)境下使用基于MobileNet網(wǎng)絡(luò)[17]、YOLO-lite[18]、ShuffleNet[19]、FBNet[20]的目標(biāo)檢測網(wǎng)絡(luò)用來減少計算量,提取深度特征的神經(jīng)網(wǎng)絡(luò)也可以換成其他高效的行人重識別算法,在保證追蹤準(zhǔn)確度的情況下,提升追蹤速度.