沈陽理工大學信息科學與工程學院 周志海 郝向凱 劉 智 顧凈鑫 楊大為
傳統的目標跟蹤算法很難實現行人多目標的在線跟蹤,并且在于目標遮擋方面有很大問題,針對該問題,本文提出一種在線實時多目標跟蹤算法,即使用Faster R-CNN系列檢測器得到檢測結果。根據卡爾曼濾波通過檢測框進行預測、更新得到預測框。將得到的預測框與檢測框通過IOU(交并比)算法,進行目標消失與新目標出現的確定,再使用匈牙利算法進行數據關聯。本文所提出的算法可以很大程度的提高多目標追蹤與遮擋問題的實時性、準確性。
在大部分應用計算機視覺領域以及圖像處理的場景中,運動目標跟蹤MOT(Moving Object Tracking)都是其不可或缺的一部分。目前單目標跟蹤技術已然趨于成熟,而多目標跟蹤還有很大的發展空間,且目前仍處在不斷發展的階段。多目標跟蹤還需要解決以下幾個問題:多個目標之間的重疊與遮擋;目標的運動檢測與相似度判別;目標的自動初始化與自動終止;目標跟丟后的再識別等問題。
數據關聯算法將目標跟蹤看做數據關聯問題,對鄰幀間的檢測和軌跡進行連接,從而使軌跡有更長的連續。根據C.Huang等人提出觀點,即可將MOT問題轉化為三層逐步細化的數據關聯問題逐步解決。
近年來,深度學習被應用于基于檢測的數據集實現的多目標跟蹤中,從而使后續的跟蹤效果更為準確。目前較為普遍的檢測器分為兩種,分別是以YOLO為代表的one-stage的檢測算法和以Faster R-CNN為代表的two-stage檢測算法。目前國內的研究人員大多使用R-CNN系列檢測算法或是YOLO系列檢測算法與跟蹤算法相結合的目標跟蹤方法。比如Wang Chun-yan等人采用YOLOv3檢測算法檢測目標,再使用卡爾曼濾波算法根據檢測結果預測目標的運動軌跡,最后使用匈牙利算法進行數據關聯,對每個候選目標進行匹配。
考慮到計算復雜性以及內存限制,本文使用較為經典的在線跟蹤處理模式,tracking-by-detectiong策略,以便于提高多目標跟蹤算法的實時性。以Faster R-CNN為檢測算法,提出一種在線實時多目標跟蹤算法,即在檢測過程中,使用Faster R-CNN檢測算法得到檢測結果,在跟蹤過程中,使用卡爾曼濾波算法根據通過檢測器檢測出來的檢測框進行預測、更新得到跟蹤目標的運動軌跡(預測框),最后在數據關聯過程中,將得到的預測框與檢測框通過IOU算法,判斷舊目標是否有消失與是否有新目標的出現,再使用匈牙利算法進行數據關聯。
在本文提出的算法中,使用FrRCNN為檢測器進行目標檢測網絡的建立,利用FrRCNN所建立的多尺度預測機制對大小不同的目標行人進行檢測。并根據一些目標狀態量對目標進行表達,建立合理的目標模型,即目標的表示及用于傳播目標標識進入下一幀的運動模型。然后使用卡爾曼濾波結合上一幀的跟蹤結果預測跟蹤目標的下一幀位置,對預測框和檢測框交并比進行計算。然后根據匈牙利算法得分進行最佳匹配,在一次次的迭代中獲得跟蹤軌跡。針對目標遮擋問題,當目標被遮擋住時,檢測框消失,目標跟蹤判斷容易出現錯誤,本文采用基于區域的質量評估網絡(RQEN)技術,再聯合多個幀的檢測結果用加權的形式恢復被遮擋部分,提高跟蹤結果的準確率。
本文采用先進行目標檢測后進行目標跟蹤的基本框架。FrRCNN包含了兩個階段,第一階段為特征抽取階段,第二階段為將特征進行區域分類。該框架的優點是兩個階段的參數是共享的,從而得到了一個有效的檢測框架。
FrRCNN檢測框架檢測到的結果包括圖像的幀號、目標的id、目標位置、檢測目標的置信度信息、以及實際行人目標的3D坐標等信息。
卡爾曼濾波主要用來處理目標的運動預測問題,算法通過本幀匹配到的目標檢測box來更新卡爾曼跟蹤器,并不斷重新計算卡爾曼增益來進行狀態更新和協方差更新,最終輸出得到最符合本幀觀測情況的跟蹤box。
在進行卡爾曼濾波狀態預測時,設上一狀態為xk-1=(Pk-1,vk-1),其中包含的目標狀態量分別為位置和速度,在高斯分布狀態下進行研究時,往往需要引入兩個常量均值和協方差,用和Pk-1表示,并在考慮到外部控制量和外部噪音干擾問題,可得到下面關于卡爾曼濾波的狀態控制方程,如下式:

其中FK為運動系數矩陣;BK為控制矩陣,uK為外部控制量,QK為協方差矩陣,用來表示外部的噪聲。此時可以看出最優的估計是由上一幀的最優估計值結合對外部控制量進行預測得到的,而系統中的不確定行由上一次預測的不確定性加之外部噪音的干擾而得到。卡爾曼濾波器的原理圖如圖1所示。

圖1 卡爾曼濾波器原理圖
在本文算法的具體實踐中,對卡爾曼濾波算法的一些參數進行了更新,以追求更高的實時性和魯棒性,然后進入下一個預測方程和更新方程中不斷迭代進行跟蹤。
數據關聯的目的是實現當前幀的觀測值與前者可能的跟蹤目標之間的多個目標的匹配。數據關聯的方法基本采用運籌學方法,比如匈牙利算法和KM算法等,本文進行數據關聯所采用的算法是匈牙利算法。
匈牙利算法是部分圖匹配最常見的算法,其核心是尋找增廣路徑,利用增廣路徑求二分圖最大匹配的算法。
匈牙利算法其根源,實際上可以說是一個遞歸的算法,盡量使鄰幀之間單獨匹配。該算法最好由置信度較高的邊開始匹配,才能更快更準地得到結果,而本文所用的FrRCNN檢測器,剛好滿足這一點,故而選擇匈牙利算法進行數據關聯。
多目標跟蹤中不可避免會存在目標進入和離開畫面的情況。本文通過質量評估網絡,可以補全遮擋信息,更有效識別目標狀態。
輸入網絡的是一組集合,按兩種方式處理,一種依靠全卷積神經網絡形成輪廓的描繪;另外通過關鍵點檢測人體的關鍵點,根據關鍵點劃分幾個區域。質量預測器對中間表示的不同區域的質量“打分”,各區域同時會提取出具有代表性的特征值。網絡通過訓練,能自提取特征、分辨人像完整的區域給予高分,即分配較高的權值,之后線性疊加各區域,補充被遮擋的部分。
為了驗證算法的有效性,做了實驗分析,部分實驗結果如圖2所示。行人在各種動作,如行走,轉身,都可以被準確捕捉;當行人為兒童或是成人時,也都可捕捉到;當行人被遮擋,僅部分身體露出時,本文算法也可通過前幾幀來預測當前幀行人位置,實現準確跟蹤。

圖2 行人多目標跟蹤結果
為驗證跟蹤行人的準確率,本次測試從3段視頻中檢測跟蹤行人,且幀數與行人數量遞增,檢測的詳細數據如表1所示。

表1 測試結果
本文算法能跟蹤檢測到的人數明顯大于實際人數,原因是,同一行人由于遮擋等因素影響,在未來幾幀都沒有檢測到,當丟失的幀過多超過閾值后,當該行人再度出現時,本算法會判定該人為新出現目標,從而導致檢測到的人數高于實際人數。
結語:本文提出了一種在線實時行人多目標跟蹤算法,可以在實時在線應用程序中關聯目標對象發揮更有效的作用。使用FrRCNN檢測器來檢測當前幀的跟蹤目標位置,根據當前幀的位置利用卡爾曼濾波來預測下一幀位置。使用匈牙利算法,根據檢測的目標位置和預測的目標位置方框位置的交并比進行數據關聯和目標匹配,在不同目標的出現與消失期間使用了質量評估網絡恢復被遮擋部分來提高跟蹤的準確率,從而完成在線的實時跟蹤。