沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 周志海 郝向凱 劉 智 顧凈鑫 楊大為
傳統(tǒng)的目標(biāo)跟蹤算法很難實(shí)現(xiàn)行人多目標(biāo)的在線跟蹤,并且在于目標(biāo)遮擋方面有很大問題,針對(duì)該問題,本文提出一種在線實(shí)時(shí)多目標(biāo)跟蹤算法,即使用Faster R-CNN系列檢測(cè)器得到檢測(cè)結(jié)果。根據(jù)卡爾曼濾波通過檢測(cè)框進(jìn)行預(yù)測(cè)、更新得到預(yù)測(cè)框。將得到的預(yù)測(cè)框與檢測(cè)框通過IOU(交并比)算法,進(jìn)行目標(biāo)消失與新目標(biāo)出現(xiàn)的確定,再使用匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián)。本文所提出的算法可以很大程度的提高多目標(biāo)追蹤與遮擋問題的實(shí)時(shí)性、準(zhǔn)確性。
在大部分應(yīng)用計(jì)算機(jī)視覺領(lǐng)域以及圖像處理的場(chǎng)景中,運(yùn)動(dòng)目標(biāo)跟蹤MOT(Moving Object Tracking)都是其不可或缺的一部分。目前單目標(biāo)跟蹤技術(shù)已然趨于成熟,而多目標(biāo)跟蹤還有很大的發(fā)展空間,且目前仍處在不斷發(fā)展的階段。多目標(biāo)跟蹤還需要解決以下幾個(gè)問題:多個(gè)目標(biāo)之間的重疊與遮擋;目標(biāo)的運(yùn)動(dòng)檢測(cè)與相似度判別;目標(biāo)的自動(dòng)初始化與自動(dòng)終止;目標(biāo)跟丟后的再識(shí)別等問題。
數(shù)據(jù)關(guān)聯(lián)算法將目標(biāo)跟蹤看做數(shù)據(jù)關(guān)聯(lián)問題,對(duì)鄰幀間的檢測(cè)和軌跡進(jìn)行連接,從而使軌跡有更長(zhǎng)的連續(xù)。根據(jù)C.Huang等人提出觀點(diǎn),即可將MOT問題轉(zhuǎn)化為三層逐步細(xì)化的數(shù)據(jù)關(guān)聯(lián)問題逐步解決。
近年來,深度學(xué)習(xí)被應(yīng)用于基于檢測(cè)的數(shù)據(jù)集實(shí)現(xiàn)的多目標(biāo)跟蹤中,從而使后續(xù)的跟蹤效果更為準(zhǔn)確。目前較為普遍的檢測(cè)器分為兩種,分別是以YOLO為代表的one-stage的檢測(cè)算法和以Faster R-CNN為代表的two-stage檢測(cè)算法。目前國內(nèi)的研究人員大多使用R-CNN系列檢測(cè)算法或是YOLO系列檢測(cè)算法與跟蹤算法相結(jié)合的目標(biāo)跟蹤方法。比如Wang Chun-yan等人采用YOLOv3檢測(cè)算法檢測(cè)目標(biāo),再使用卡爾曼濾波算法根據(jù)檢測(cè)結(jié)果預(yù)測(cè)目標(biāo)的運(yùn)動(dòng)軌跡,最后使用匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián),對(duì)每個(gè)候選目標(biāo)進(jìn)行匹配。
考慮到計(jì)算復(fù)雜性以及內(nèi)存限制,本文使用較為經(jīng)典的在線跟蹤處理模式,tracking-by-detectiong策略,以便于提高多目標(biāo)跟蹤算法的實(shí)時(shí)性。以Faster R-CNN為檢測(cè)算法,提出一種在線實(shí)時(shí)多目標(biāo)跟蹤算法,即在檢測(cè)過程中,使用Faster R-CNN檢測(cè)算法得到檢測(cè)結(jié)果,在跟蹤過程中,使用卡爾曼濾波算法根據(jù)通過檢測(cè)器檢測(cè)出來的檢測(cè)框進(jìn)行預(yù)測(cè)、更新得到跟蹤目標(biāo)的運(yùn)動(dòng)軌跡(預(yù)測(cè)框),最后在數(shù)據(jù)關(guān)聯(lián)過程中,將得到的預(yù)測(cè)框與檢測(cè)框通過IOU算法,判斷舊目標(biāo)是否有消失與是否有新目標(biāo)的出現(xiàn),再使用匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián)。
在本文提出的算法中,使用FrRCNN為檢測(cè)器進(jìn)行目標(biāo)檢測(cè)網(wǎng)絡(luò)的建立,利用FrRCNN所建立的多尺度預(yù)測(cè)機(jī)制對(duì)大小不同的目標(biāo)行人進(jìn)行檢測(cè)。并根據(jù)一些目標(biāo)狀態(tài)量對(duì)目標(biāo)進(jìn)行表達(dá),建立合理的目標(biāo)模型,即目標(biāo)的表示及用于傳播目標(biāo)標(biāo)識(shí)進(jìn)入下一幀的運(yùn)動(dòng)模型。然后使用卡爾曼濾波結(jié)合上一幀的跟蹤結(jié)果預(yù)測(cè)跟蹤目標(biāo)的下一幀位置,對(duì)預(yù)測(cè)框和檢測(cè)框交并比進(jìn)行計(jì)算。然后根據(jù)匈牙利算法得分進(jìn)行最佳匹配,在一次次的迭代中獲得跟蹤軌跡。針對(duì)目標(biāo)遮擋問題,當(dāng)目標(biāo)被遮擋住時(shí),檢測(cè)框消失,目標(biāo)跟蹤判斷容易出現(xiàn)錯(cuò)誤,本文采用基于區(qū)域的質(zhì)量評(píng)估網(wǎng)絡(luò)(RQEN)技術(shù),再聯(lián)合多個(gè)幀的檢測(cè)結(jié)果用加權(quán)的形式恢復(fù)被遮擋部分,提高跟蹤結(jié)果的準(zhǔn)確率。
本文采用先進(jìn)行目標(biāo)檢測(cè)后進(jìn)行目標(biāo)跟蹤的基本框架。FrRCNN包含了兩個(gè)階段,第一階段為特征抽取階段,第二階段為將特征進(jìn)行區(qū)域分類。該框架的優(yōu)點(diǎn)是兩個(gè)階段的參數(shù)是共享的,從而得到了一個(gè)有效的檢測(cè)框架。
FrRCNN檢測(cè)框架檢測(cè)到的結(jié)果包括圖像的幀號(hào)、目標(biāo)的id、目標(biāo)位置、檢測(cè)目標(biāo)的置信度信息、以及實(shí)際行人目標(biāo)的3D坐標(biāo)等信息。
卡爾曼濾波主要用來處理目標(biāo)的運(yùn)動(dòng)預(yù)測(cè)問題,算法通過本幀匹配到的目標(biāo)檢測(cè)box來更新卡爾曼跟蹤器,并不斷重新計(jì)算卡爾曼增益來進(jìn)行狀態(tài)更新和協(xié)方差更新,最終輸出得到最符合本幀觀測(cè)情況的跟蹤box。
在進(jìn)行卡爾曼濾波狀態(tài)預(yù)測(cè)時(shí),設(shè)上一狀態(tài)為xk-1=(Pk-1,vk-1),其中包含的目標(biāo)狀態(tài)量分別為位置和速度,在高斯分布狀態(tài)下進(jìn)行研究時(shí),往往需要引入兩個(gè)常量均值和協(xié)方差,用和Pk-1表示,并在考慮到外部控制量和外部噪音干擾問題,可得到下面關(guān)于卡爾曼濾波的狀態(tài)控制方程,如下式:
其中FK為運(yùn)動(dòng)系數(shù)矩陣;BK為控制矩陣,uK為外部控制量,QK為協(xié)方差矩陣,用來表示外部的噪聲。此時(shí)可以看出最優(yōu)的估計(jì)是由上一幀的最優(yōu)估計(jì)值結(jié)合對(duì)外部控制量進(jìn)行預(yù)測(cè)得到的,而系統(tǒng)中的不確定行由上一次預(yù)測(cè)的不確定性加之外部噪音的干擾而得到??柭鼮V波器的原理圖如圖1所示。
圖1 卡爾曼濾波器原理圖
在本文算法的具體實(shí)踐中,對(duì)卡爾曼濾波算法的一些參數(shù)進(jìn)行了更新,以追求更高的實(shí)時(shí)性和魯棒性,然后進(jìn)入下一個(gè)預(yù)測(cè)方程和更新方程中不斷迭代進(jìn)行跟蹤。
數(shù)據(jù)關(guān)聯(lián)的目的是實(shí)現(xiàn)當(dāng)前幀的觀測(cè)值與前者可能的跟蹤目標(biāo)之間的多個(gè)目標(biāo)的匹配。數(shù)據(jù)關(guān)聯(lián)的方法基本采用運(yùn)籌學(xué)方法,比如匈牙利算法和KM算法等,本文進(jìn)行數(shù)據(jù)關(guān)聯(lián)所采用的算法是匈牙利算法。
匈牙利算法是部分圖匹配最常見的算法,其核心是尋找增廣路徑,利用增廣路徑求二分圖最大匹配的算法。
匈牙利算法其根源,實(shí)際上可以說是一個(gè)遞歸的算法,盡量使鄰幀之間單獨(dú)匹配。該算法最好由置信度較高的邊開始匹配,才能更快更準(zhǔn)地得到結(jié)果,而本文所用的FrRCNN檢測(cè)器,剛好滿足這一點(diǎn),故而選擇匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián)。
多目標(biāo)跟蹤中不可避免會(huì)存在目標(biāo)進(jìn)入和離開畫面的情況。本文通過質(zhì)量評(píng)估網(wǎng)絡(luò),可以補(bǔ)全遮擋信息,更有效識(shí)別目標(biāo)狀態(tài)。
輸入網(wǎng)絡(luò)的是一組集合,按兩種方式處理,一種依靠全卷積神經(jīng)網(wǎng)絡(luò)形成輪廓的描繪;另外通過關(guān)鍵點(diǎn)檢測(cè)人體的關(guān)鍵點(diǎn),根據(jù)關(guān)鍵點(diǎn)劃分幾個(gè)區(qū)域。質(zhì)量預(yù)測(cè)器對(duì)中間表示的不同區(qū)域的質(zhì)量“打分”,各區(qū)域同時(shí)會(huì)提取出具有代表性的特征值。網(wǎng)絡(luò)通過訓(xùn)練,能自提取特征、分辨人像完整的區(qū)域給予高分,即分配較高的權(quán)值,之后線性疊加各區(qū)域,補(bǔ)充被遮擋的部分。
為了驗(yàn)證算法的有效性,做了實(shí)驗(yàn)分析,部分實(shí)驗(yàn)結(jié)果如圖2所示。行人在各種動(dòng)作,如行走,轉(zhuǎn)身,都可以被準(zhǔn)確捕捉;當(dāng)行人為兒童或是成人時(shí),也都可捕捉到;當(dāng)行人被遮擋,僅部分身體露出時(shí),本文算法也可通過前幾幀來預(yù)測(cè)當(dāng)前幀行人位置,實(shí)現(xiàn)準(zhǔn)確跟蹤。
圖2 行人多目標(biāo)跟蹤結(jié)果
為驗(yàn)證跟蹤行人的準(zhǔn)確率,本次測(cè)試從3段視頻中檢測(cè)跟蹤行人,且?guī)瑪?shù)與行人數(shù)量遞增,檢測(cè)的詳細(xì)數(shù)據(jù)如表1所示。
表1 測(cè)試結(jié)果
本文算法能跟蹤檢測(cè)到的人數(shù)明顯大于實(shí)際人數(shù),原因是,同一行人由于遮擋等因素影響,在未來幾幀都沒有檢測(cè)到,當(dāng)丟失的幀過多超過閾值后,當(dāng)該行人再度出現(xiàn)時(shí),本算法會(huì)判定該人為新出現(xiàn)目標(biāo),從而導(dǎo)致檢測(cè)到的人數(shù)高于實(shí)際人數(shù)。
結(jié)語:本文提出了一種在線實(shí)時(shí)行人多目標(biāo)跟蹤算法,可以在實(shí)時(shí)在線應(yīng)用程序中關(guān)聯(lián)目標(biāo)對(duì)象發(fā)揮更有效的作用。使用FrRCNN檢測(cè)器來檢測(cè)當(dāng)前幀的跟蹤目標(biāo)位置,根據(jù)當(dāng)前幀的位置利用卡爾曼濾波來預(yù)測(cè)下一幀位置。使用匈牙利算法,根據(jù)檢測(cè)的目標(biāo)位置和預(yù)測(cè)的目標(biāo)位置方框位置的交并比進(jìn)行數(shù)據(jù)關(guān)聯(lián)和目標(biāo)匹配,在不同目標(biāo)的出現(xiàn)與消失期間使用了質(zhì)量評(píng)估網(wǎng)絡(luò)恢復(fù)被遮擋部分來提高跟蹤的準(zhǔn)確率,從而完成在線的實(shí)時(shí)跟蹤。