王春艷,劉正熙
(四川大學計算機學院,成都 610065)
隨著深度學習技術的普及,使得圖形圖像領域的各項研究取得了一定的進步,同時帶動了多目標跟蹤領域的進一步發展。視頻多目標在線跟蹤可應用于交通實時監測、人機交互、安防和無人駕駛等益于人們社會生活的眾多領域,所以仍然是計算機視覺中的研究熱點,且富有挑戰性。目標跟蹤算法的性能好壞受到所使用的檢測算法,用于匹配區分的特征以及數據關聯算法的影響。針對跟蹤算法中常見的諸如小目標易漏檢、目標間相互遮擋、光照變化引起跟蹤不穩定等研究問題,眾學者都在嘗試解決改進。傳統的基于混合高斯背景建模的前景檢測方法(Gaussian Mixture Model,GMM)[1],利用多個高斯分布去表示背景像素的分布規律,可以在一定程度上減少動態背景的干擾問題,但計算復雜對光照敏感。基于目標建模的傳統目標檢測方法中最具代表性的工作主要有Dalal等人提出的梯度直方圖(Histogram of Oriented Gradients,HOG)[2]特征和P.Felzenszwalb等人提出的可形變部件模型(Deformable Part Based Model,DPM)[3]。HOG 通過統計目標圖像局部區域的梯度和邊緣信息映射成梯度直方圖,形成局部區域的特征描述子,再把這些描述子串聯起來形成整體圖像的特征,HOG特征結合SVM分類器廣泛用于行人檢測。DPM使用了改進后的HOG特征,使用多個組件模型來描述目標的局部信息,使用全局模型來描述目標的全局信息,DPM是基于傳統特征的目標檢測中效果最好的算法之一,但是DPM特征計算復雜,計算速度慢;其次,人工特征對于旋轉、拉伸、視角變化的物體檢測效果差。Bar-Shalom等學者提出了聯合概率數據關聯算法(Joint Probabilistic Data Association,JPDA)[4-5],主要思想是認為當前掃描周期的量測和目標是一一對應的關聯關系,通過計算每一個量測與其可能源于的所有目標的關聯概率,視概率最高的量測為成功匹配。JPDA算法實際運用中計算量較大,且當目標平行運動或者發生小角度交叉運動時,容易產生軌跡合并問題。Donald B.Reid在1979年發表的文獻中提出多假設跟蹤算法(Multiple Hypothesis Tracking,MHT)[6-8],是一種在數據關聯發生沖突時,形成多種假設并將假設傳遞以延遲做決定,利用后續量測數據解決不確定性的的方案。MHT算法在量測分配期間也是運算量過大,當目標數較多時,假設數量和計算量將呈指數型增長。針對傳統方法所述缺點,本文提出一種跟蹤方法,基于tracking-by-detection跟蹤框架,利用深度學習技術,使用表現突出的基于深度學習的 YOLOv3(You Only Look Once version 3)檢測器檢測目標,卡爾曼濾波(Kalman Filter)算法[9]預測運動目標,結合深度神經網絡提取出的外觀特征,逐幀用匈牙利算法(Hungarian Algorithm)[10]匹配關聯。
基于檢測的跟蹤中,一個好的檢測器對于最終跟蹤效果的影響不容小覷,本文方法中的檢測器是基于YOLOv3微調而來。近幾年,基于深度學習的目標檢測領域的研究逐步取得顯著性成果,當下主流算法基本分為兩類,一類是two-stage的R-CNN(R-CNN、Fast R-CNN、Faster R-CNN)系列算法[11-13],另一類是以 Single Shot multibox Detector(SSD)[14]、YOLO 為首的 onestage算法[15-18]。相比而言,前者處理速度慢于后者,但結果平均準確度高于后者。YOLO不同于R-CNN系列的先生成推薦區域(Region Proposal),然后在Region Proposal上進行分類預測與回歸這種解決方案,而是采用一個統一的端到端的設計框架,一次性遍歷整個輸入圖像,很好地利用了圖像的全局信息輔助檢測,這種方法使得YOLO算法速度快于R-CNN系列,也不容易將背景誤檢。隨著YOLO原作者的嘗試與改進,現已經衍生出第三個版本,該系列算法的基礎思想是:其CNN網絡將輸入圖像分割成SxS個單元網格,每個單元格(cell)負責檢測那些中心點落在該cell內的目標,每個單元格會預測B個邊界框(Bounding Box,BBox)以及邊界框的置信度(Confidence Score),置信度有兩層含義,一是對這個邊界框包含有目標的可能性大小度量,二是對這個邊界框的準確度量化,因此,對于邊界框可以用(x,y,w,h,c)這5個元素來表達,(x,y)為目標中心點相對于cell左上角的偏移位置,而w和h則是目標寬和高與整張圖像的寬高比。同時,該cell還要預測可能包含C個類別的各類概率值,綜上,每個單元格需要預測(B*5+C)個值。
相比于前兩個版本,YOLOv3最明顯的改進是采用了類似Feature Pyramid Networks for Object Detection(FPN)架構來實現多尺度預測(YOLOv3預測3種不同尺度的框),除此之外,還改進了基礎網絡,混合殘差網絡,并使用連續的3×3和1×1卷積,設計了一個包含53個卷積層的更深的網絡DarkNet-53。由于新的多尺度預測方法的運用,YOLOv3在小目標的檢測上表現比以往有明顯改進,雖然該網絡更大,但是速度依然很快,準確度也可觀。如圖1所示,是YOLOv3檢測器與SSD等檢測器的速度與精度對比效果,可以看到,YOLOv3的運行速度明顯快于其他具有可比性能的檢測方法,且準確度也相差不大。
網絡訓練過程中,由于我們的研究主要是針對行人目標,所以在基于ImageNet預訓練基礎之上,我們使用Caltech行人數據庫對模型進行微調,得到合適的模型。該數據庫是目前規模較大且應用教廣的行人數據庫,采用車載攝像頭拍攝,視頻分辨率為640×480,幀率為30FPS,共對250,000幀圖像進行標注,包含350000個矩形框和2300個行人,還對遮擋的情況進行了標注。經多次實驗,最后在訓練中將參數權重衰減因子設為0.0005,動量系數設為0.9,訓練批次取64。

圖1 YOLOv3檢測器與其他經典檢測器的對比效果
目標的不同特征在不同場景下對于區分目標產生的效果影響各異,在稍復雜的實際場景中,綜合考慮各種因素,最有效的辦法是融合各種特征一起用于識別區分目標。本實驗中,是以深度外觀特征為主,形狀特征為輔實現目標匹配區分。使用卷積網絡提取目標的外觀特征有兩點好處,第一是因為卷積網絡可以從圖像原像素中提取目標的深層語義特征,所提取的目標特征具有非常強大的表達能力。第二是因為通過卷積網絡提取深度特征不需要依靠先驗知識提前設計,而是讓卷積網絡從海量的數據集中自動學習特征,免去了手動選取特征的復雜步驟,使得特征提取工作變得簡單有效。對于深度特征的提取,我們在CaffeNet上進行微調,首先用ImageNet數據集預訓練模型初始化網絡權值,再結合行人重識別數據集[19]對網絡進行離線微調。行人重識別數據集有1501個不同的人,每個人至少有2張不同的照片,總共涉及32668個包圍框。該網絡包含5層卷積層和3層全連接層,接受的輸入尺寸是227×227,第一個卷積層的卷積核大小為11×11,第 2層為5×5,后3層都是3×3的大小,最后全連接層得到4096維目標特征,同一幀中目標深度外觀特征相似度表示為:

其中 featdeti表示第i個檢測框的深度特征向量,feattrkj為跟蹤器 j的深度特征向量,cos表示對兩個向量進行余弦距離運算。Sapp值越大,說明兩個目標是同一目標的概率越大。而形狀相似度則表示為:

其中Wdeti和Hdeti為檢測響應矩形框的寬和高,Wtrkj和Htrkj為跟蹤對象的寬和高。Sshp(deti,trkj)的值越大說明相似度越高,反之越小。
在目標跟蹤部分,本文實驗中采用卡爾曼濾波算法進行目標運動軌跡預測,使用匈牙利算法對數據進行關聯。卡爾曼濾波算法是一種利用線性系統狀態方程,針對觀測值(經驗知識推算)的不確定性,以及測量值(由于受到相關因素干擾,很可能導致測量數據發生偏差)的誤差,進行加權求和,對預測值進行修正,從而得到一個最優解的算法,運算速度快,效果卓越,目前被廣泛用于通信系統、航空航天、工業控制、圖像處理等眾多領域。卡爾曼濾波主要包含兩個步驟:預測和更新。在多目標跟蹤系統中,預測指的是卡爾曼濾波器根據目標的上一幀的狀態信息估計目標在當前幀的狀態信息,更新指的是卡爾曼濾波器根據目標檢測器提供的觀測值矯正目標在當前幀的最優值。數據關聯本質上是一種多對多的線性指派問題,我們使用匈牙利算法解決該類指派問題,其核心是不斷尋找增廣路徑,可用于二分圖匹配、得到最小點覆蓋集或者最大獨立集,能在O(n3)的時間復雜度內得到最優解,其中n為檢測響應和目標跟蹤器的較大值,因此適用于對時間要求較高的實時跟蹤系統中。該算法求解過程包括以下步驟:
(1)找到每一行中值最小的元素,然后使該行的所有元素減去該最小值。
(2)找到每一列中值最小的元素,然后使該列的所有元素減去該最小值。
(3)用橫線或者豎線覆蓋矩陣中的所有0元素,并且使得直線的數量盡量少。若此時直線總數等于矩陣的行數或者列數,則指派成功,否則執行下一步。
(4)找到未被直線覆蓋的元素的最小值,所有未被直線覆蓋的行的元素減去該最小值,所有被直線覆蓋的列的元素加上該最小值,并轉步驟(3)。
匈牙利算法旨在得到一個全局最優的結果集,然而在實際的目標跟蹤視頻中,可能會出現運動目標間相互遮擋、被其他靜止物遮擋,或者目標外觀發生變化等情況,導致檢測效果不理性,從而影響最終跟蹤效果。針對這個問題,我們將數據關聯部分分為兩層進行:第一層匹配當前幀的檢測集目標和上一幀的穩定的跟蹤集目標,所謂穩定的跟蹤集,是指在最近連續的幾幀中都有被成功跟蹤的目標集合,當目標外觀沒有發生較大變化,且沒有被其他物體遮擋時,相鄰幀中屬于同一個目標的候選對象外觀相似度值會非常大,這時我們僅使用深度外觀相似度就能取得好的關聯結果;第二層則匹配第一步中未分配出去的剩余檢測集目標和目標,所謂臨時丟失的跟蹤集,是指由于長期遮擋等問題造成跟蹤丟失的連續幀數達到閾值K(一般取35左右)的跟蹤目標集合,當外觀發生變化或者發生遮擋時,相鄰幀中的同一個目標的外觀相似度可能會變得很小,這時我們就要引入形狀特征來輔助判斷相鄰幀目標的相似性。
我們取MOT16的7個測試數據集作為輸入,經本文跟蹤系統處理后的輸出結果提交至MOT Challenge官網,與其他公開方法進行比較,本文僅選取與幾個經典方法的對比結果進行展示說明,具體數據如表1所示。其中,Avg Rank指標表示經過當前所采用的所有評價指標度量后的一個平均度量值,MOTA表示目標跟蹤的精確度,該指標是綜合考慮誤檢、漏檢和身份交換三個方面而得到,MT表示目標被成功跟蹤的軌跡與真實軌跡的占比,ML表示目標被跟丟的軌跡與真實軌跡的占比,FP表示目標誤檢數量,FN表示目標漏檢數量,ID Sw表示跟蹤過程中目標發生身份交換的總數量,向上箭頭↑表示該指標對應的值越大越好,向下箭頭↓則表示對應的值越小越好。從表中可以看到,本文方法在大部分指標中都相對表現較好,在其他指標上也具有一定可比性。

表1 與其他方法的對比結果
基于OpenCV庫、CUDA庫、Caffe深度學習框架和Darknet深度學習框架,在英偉達1060顯卡以及Win10系統支持,我們使用C++語言集成實現整個跟蹤系統。本文方法的最終運行效果如圖2所示,圖片左下角的數字為視頻序列幀號,從圖中可以看到10號目標和11號目標在被0號和5號目標全遮擋后重新出現時能被正確關聯,且圖中的小朋友即1號目標能夠被正確檢測和跟蹤。實驗證明,本文方法在一定程度上解決了跟蹤中存在的目標遮擋問題,具有一定實用價值和研究價值。

圖2 實驗結果展示
本文的跟蹤方法中,重點在于研究高性能檢測器對于跟蹤的影響,以及盡可能合理利用提取的深度特征和形狀特征對目標進行分層關聯,一定程度上解決了由于遮擋等問題對目標跟蹤造成的干擾,且對小目標的跟蹤表現可觀。在接下來的研究中,我們會繼續改進。