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

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

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

圖2 行人多目標(biāo)跟蹤結(jié)果
為驗證跟蹤行人的準(zhǔn)確率,本次測試從3段視頻中檢測跟蹤行人,且?guī)瑪?shù)與行人數(shù)量遞增,檢測的詳細數(shù)據(jù)如表1所示。

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