張彩麗, 劉廣文, 詹 旭, 史浩東, 才 華,3, 李英超
(1. 長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院, 長(zhǎng)春 130022; 2. 長(zhǎng)春理工大學(xué) 光電工程學(xué)院, 長(zhǎng)春 130022;3. 長(zhǎng)春中國(guó)光學(xué)科學(xué)技術(shù)館, 長(zhǎng)春 130117)
目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域中的一個(gè)重要研究方向, 在軍事和民用領(lǐng)域應(yīng)用廣泛, 如視頻監(jiān)控、 人機(jī)交互、 無(wú)人駕駛、 虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)及醫(yī)學(xué)圖像處理等. 目標(biāo)跟蹤包括單目標(biāo)跟蹤和多目標(biāo)跟蹤. 單目標(biāo)跟蹤可通過(guò)目標(biāo)的表觀建?;蛘哌\(yùn)動(dòng)建模, 處理光照、 形變、 遮擋等問(wèn)題; 而多目標(biāo)跟蹤問(wèn)題較復(fù)雜, 除單目標(biāo)跟蹤遇到的問(wèn)題外, 還要考慮目標(biāo)間的關(guān)聯(lián)匹配問(wèn)題, 且在多目標(biāo)跟蹤任務(wù)中經(jīng)常會(huì)遇到目標(biāo)的頻繁遮擋、 軌跡開(kāi)始終止時(shí)刻未知、 目標(biāo)過(guò)小、 表觀相似、 目標(biāo)間交互、 低幀率等問(wèn)題.
多目標(biāo)跟蹤主要目的為在給定的圖像序列中, 找到該圖像序列中的運(yùn)動(dòng)物體, 并將不同幀圖像中的運(yùn)動(dòng)物體一一對(duì)應(yīng), 然后給出這些不同物體的運(yùn)動(dòng)軌跡. 根據(jù)是否應(yīng)用檢測(cè)可將多目標(biāo)跟蹤分為基于檢測(cè)的跟蹤與基于首幀圖像框選的跟蹤. 基于首幀圖像框選的跟蹤無(wú)法跟蹤首幀圖像外新出現(xiàn)的目標(biāo), 所以其應(yīng)用場(chǎng)景有限; 隨著近年檢測(cè)技術(shù)的不斷發(fā)展, 檢測(cè)精確度與準(zhǔn)確度都在逐步提高, 從而使基于檢測(cè)的跟蹤成為首選. 如連續(xù)能量函數(shù)最小化算法(MTT)[1], 其從運(yùn)動(dòng)的整體性出發(fā), 將跟蹤問(wèn)題視為一個(gè)能量最小化問(wèn)題, 先結(jié)合檢測(cè)結(jié)果提出一個(gè)較貼合運(yùn)動(dòng)特征的能量函數(shù), 然后求得該能量函數(shù)的最優(yōu)解, 即為跟蹤結(jié)果.
多目標(biāo)跟蹤的目標(biāo)物體可以是任意的, 如行人、 車輛、 運(yùn)動(dòng)員、 各種動(dòng)物等, 而目前研究最多的是行人跟蹤, 所以本文的研究對(duì)象也設(shè)定為行人. 對(duì)于行人多目標(biāo)跟蹤的兩個(gè)重要問(wèn)題為: 行人目標(biāo)可能具有相似性和行人目標(biāo)可能出現(xiàn)被遮擋問(wèn)題. 這兩個(gè)問(wèn)題都可由高準(zhǔn)確率的檢測(cè)器與高準(zhǔn)確率數(shù)據(jù)關(guān)聯(lián)解決.
近年來(lái), 隨著深度學(xué)習(xí)技術(shù)的發(fā)展, 其不僅應(yīng)用于檢測(cè)和識(shí)別中, 而且也越來(lái)越多地應(yīng)用于基于檢測(cè)的跟蹤算法中. 利用深度學(xué)習(xí)得到精確的檢測(cè)結(jié)果, 使最終的跟蹤結(jié)果更準(zhǔn)確. 如Wojke等[2]提出了結(jié)合深度數(shù)據(jù)關(guān)聯(lián)度量方法的簡(jiǎn)易實(shí)時(shí)在線目標(biāo)追蹤算法(DeepSort), 該算法使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取檢測(cè)結(jié)果, 并通過(guò)運(yùn)動(dòng)信息與目標(biāo)外觀信息進(jìn)行數(shù)據(jù)關(guān)聯(lián), 最后利用級(jí)聯(lián)匹配完成長(zhǎng)時(shí)間的多目標(biāo)跟蹤; Voigtlaender等[3]提出了雙匹配注意網(wǎng)絡(luò)在線多目標(biāo)跟蹤算法, 該算法將單目標(biāo)跟蹤與數(shù)據(jù)關(guān)聯(lián)相結(jié)合, 使用時(shí)間注意網(wǎng)絡(luò)對(duì)不同的目標(biāo)分配不同的注意力分?jǐn)?shù), 最后使用空間注意力網(wǎng)絡(luò)處理嘈雜檢測(cè)和遮擋問(wèn)題; 之后, Voigtlaender等[4]又提出了多目標(biāo)跟蹤與分割算法(MOTS), 該算法創(chuàng)建了一個(gè)像素標(biāo)記的跟蹤數(shù)據(jù)集, 并且提出一種新的多目標(biāo)跟蹤度量指標(biāo), 最終使用一種聯(lián)合處理檢測(cè)、 跟蹤和分割與單一卷積網(wǎng)絡(luò)的基線方法, 實(shí)現(xiàn)長(zhǎng)時(shí)間的多目標(biāo)跟蹤. 由于目前的多目標(biāo)跟蹤算法大部分是基于檢測(cè)的跟蹤, 檢測(cè)器和數(shù)據(jù)關(guān)聯(lián)的優(yōu)劣將對(duì)最終跟蹤結(jié)果有重要影響.
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩類: two-stage算法和one-stage算法. 其中, two-stage算法是基于候選區(qū)域的目標(biāo)檢測(cè)算法, 經(jīng)典方法包括R-CNN[5],Fast R-CNN[6],Faster R-CNN[7]和Mask R-CNN[8]等; one-stage算法是基于回歸的端到端目標(biāo)檢測(cè)算法, 主流方法有YOLO[9],SSD[10]和DSOD[11]算法等. 這兩種目標(biāo)檢測(cè)算法之間的主要區(qū)別在于其是否分為兩個(gè)階段進(jìn)行檢測(cè), 前者由檢測(cè)和分類兩個(gè)階段組成, 后者則將這兩個(gè)階段融合到一個(gè)階段進(jìn)行. 在性能上, one-stage網(wǎng)絡(luò)速度快, 但two-stage網(wǎng)絡(luò)準(zhǔn)確率更高. 為了多目標(biāo)跟蹤結(jié)果的準(zhǔn)確性, 本文選用two-stage網(wǎng)絡(luò)中的Mask R-CNN作為檢測(cè)網(wǎng)絡(luò).
數(shù)據(jù)關(guān)聯(lián)優(yōu)化算法可在當(dāng)前幀圖像到來(lái)時(shí)就給出當(dāng)前幀圖像檢測(cè)結(jié)果與已有跟蹤目標(biāo)軌跡的關(guān)聯(lián)匹配結(jié)果, 而不利用未來(lái)幀圖像的信息, 從信號(hào)處理的角度即相當(dāng)于一種濾波操作. 目前常用的目標(biāo)關(guān)聯(lián)方法有最近鄰算法、 概率數(shù)據(jù)關(guān)聯(lián)算法、 多假設(shè)多幀分配算法、 匈牙利算法等. 但這些數(shù)據(jù)關(guān)聯(lián)算法在面對(duì)高相似度和遮擋問(wèn)題時(shí), 效果均不佳, 可能會(huì)出現(xiàn)跟蹤失敗的結(jié)果.
本文采用改進(jìn)匈牙利算法作為數(shù)據(jù)關(guān)聯(lián)算法, 針對(duì)發(fā)生遮擋的物體采用級(jí)聯(lián)匹配方式. 首先使用Mask R-CNN[8]檢測(cè)待跟蹤目標(biāo), 再利用Kalman濾波器預(yù)測(cè)下幀圖像中跟蹤目標(biāo)的位置與邊界框大??; 然后采用改進(jìn)匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián), 確定行人目標(biāo)的運(yùn)動(dòng)軌跡; 最后針對(duì)發(fā)生遮擋的物體加入跟蹤軌跡修正方案.
為提高多目標(biāo)跟蹤的跟蹤準(zhǔn)確度及應(yīng)對(duì)遮擋問(wèn)題時(shí)有較好的跟蹤效果. 本文使用Mask R-CNN作為檢測(cè)器, 檢測(cè)出當(dāng)前幀圖像中不同大小的行人目標(biāo)并確定對(duì)應(yīng)的檢測(cè)框坐標(biāo)及可信度; 將檢測(cè)器檢測(cè)的本幀結(jié)果輸入到Kalman濾波器中預(yù)測(cè)下幀圖像中行人目標(biāo)的位置與邊界框大小; 采用改進(jìn)匈牙利算法利用檢測(cè)結(jié)果與預(yù)測(cè)結(jié)果做數(shù)據(jù)關(guān)聯(lián), 以做到更好的匹配; 針對(duì)發(fā)生遮擋的物體加入跟蹤軌跡修正方案, 以實(shí)現(xiàn)最終有效準(zhǔn)確地跟蹤. 最終實(shí)現(xiàn)了55.1%的跟蹤準(zhǔn)確度且針對(duì)遮擋問(wèn)題效果較好.
Mask R-CNN深度神經(jīng)網(wǎng)絡(luò)由許多基礎(chǔ)網(wǎng)絡(luò)層組成, 主要有卷積層、 池化層、 激活函數(shù)層、 Batch normlization層以及全連接層等.本文選用Mask R-CNN網(wǎng)絡(luò)作為檢測(cè)器, 在Faster R-CNN的基礎(chǔ)上, 加入Mask branch(FCN)用于生成物體的掩模(object mask), 同時(shí)把RoI pooling修改成RoI Align用于處理mask與原圖中物體對(duì)不齊的問(wèn)題. Mask R-CNN整體結(jié)構(gòu)如圖1所示.
圖1 Mask R-CNN整體結(jié)構(gòu)
由圖1可見(jiàn), 卷積神經(jīng)網(wǎng)絡(luò)(CNN)部分使用深度殘差網(wǎng)絡(luò)(ResNet101)進(jìn)行一系列卷積操作提取圖像特征, 與特征金字塔網(wǎng)絡(luò)(FPN)共同構(gòu)成骨干網(wǎng)絡(luò). ResNet有5層特征輸出, FPN的作用是特征融合. 這些不同的組合特征, 一方面經(jīng)過(guò)區(qū)域推薦網(wǎng)絡(luò)(RPN)判斷前景和背景進(jìn)行二值分類并生成候選框, 另一方面結(jié)合生成的候選框通過(guò)RoI Align 操作與特征圖中的像素對(duì)應(yīng), 隨后的一個(gè)分支用于分類和回歸, 另一個(gè)分支用于分割生成掩膜.
Mask R-CNN的損失函數(shù)計(jì)算過(guò)程為
L=Lcls+Lbox+Lmask,
(1)
其中:Lmask為分割誤差;
(2)
(3)
掩膜分支對(duì)于每個(gè)RoI有K個(gè)m×m維的輸出, 編碼了K個(gè)m×m像素的二元掩膜,k為輸入維度, 即類別數(shù). 在每個(gè)維度都采用Sigmoid函數(shù), 將Lmask定義為平均二元交叉熵?fù)p失. 對(duì)于每個(gè)與真實(shí)邊界框相關(guān)聯(lián)的RoI,Lmask僅在第k個(gè)掩膜上定義. 將圖像輸入Mask R-CNN后可得到行人目標(biāo)的位置信息, 包括行人目標(biāo)檢測(cè)框左上角的坐標(biāo)、 檢測(cè)框的長(zhǎng)寬及檢測(cè)框中檢測(cè)物體的置信度, 為下一步跟蹤器提供信息數(shù)據(jù).
當(dāng)用Mask R-CNN獲得每幀圖像中行人目標(biāo)對(duì)應(yīng)的檢測(cè)框坐標(biāo)及可信度后, 需執(zhí)行對(duì)同一行人目標(biāo)的跟蹤操作, 并使其形成軌跡. 本文采用Kalman濾波器[12]預(yù)測(cè)下一幀圖像的目標(biāo)位置, 將Mask R-CNN的檢測(cè)結(jié)果輸入Kalman濾波器, 得到該幀的估計(jì)值; 然后采用改進(jìn)匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián), 利用檢測(cè)框與預(yù)測(cè)框的交并比及顏色直方圖, 確定行人目標(biāo)的運(yùn)動(dòng)軌跡; 最后對(duì)運(yùn)動(dòng)軌跡中發(fā)生遮擋的物體加入跟蹤軌跡修正方案, 從而得到更精準(zhǔn)的跟蹤軌跡.
1.2.1 Kalman濾波
Kalman濾波利用目標(biāo)的動(dòng)態(tài)信息去掉噪聲的影響, 得到一個(gè)關(guān)于目標(biāo)位置的估計(jì)[13]. 通過(guò)遞歸估計(jì)方法, 在已知上幀圖像的估計(jì)值(上幀圖像Kalman濾波所得預(yù)測(cè)結(jié)果)及當(dāng)前幀圖像的觀測(cè)值(當(dāng)前幀圖像的Mask R-CNN檢測(cè)結(jié)果)后, 計(jì)算當(dāng)前幀圖像的估計(jì)值. Kalman濾波算法通常通過(guò)狀態(tài)方程和觀測(cè)方程描述[14]:
xk=Axk-1+Buk-1+ωk-1,
(4)
xk=(xok,vxk,yok,vyk)T,
(5)
zk=Hxk+vk,
(6)
zk=(xok,yok)T.
(7)
式(4)為狀態(tài)方程,xk為第k幀圖像的系統(tǒng)狀態(tài)向量(第k幀圖像估計(jì)值),A和B為狀態(tài)轉(zhuǎn)移矩陣,uk-1為系統(tǒng)控制量,ωk-1是協(xié)方差為Q的零均值高斯噪聲. 由式(5)可知,xk包含x和y方向及位置. 式(6)為觀測(cè)方程,zk為第k幀圖像的系統(tǒng)觀測(cè)向量(第k幀圖像的檢測(cè)值),H為觀測(cè)矩陣,vk是協(xié)方差為R的零均值高斯噪聲. 由式(7)可知,zk包含x和y方向的位置.
Kalman濾波器算法由5個(gè)主要方程組成, 其流程如下:
1) 使用狀態(tài)方程根據(jù)上一幀圖像的狀態(tài)預(yù)測(cè)本幀圖像的狀態(tài). 若令圖像當(dāng)前幀為k, 則用第(k-1)幀狀態(tài), 可預(yù)測(cè)圖像第k幀(本幀)的狀態(tài)為
(8)
2) 完成圖像的本幀狀態(tài)預(yù)測(cè)后, 需更新系統(tǒng)協(xié)方差. 估計(jì)誤差協(xié)方差更新方程為
(9)
3) 通過(guò)1)和2)得到了系統(tǒng)的預(yù)測(cè)值, 整合預(yù)測(cè)值和觀測(cè)值, 第k幀圖像最優(yōu)解的求解方程為
(10)
(11)
(12)
Kalman濾波可去除檢測(cè)結(jié)果中的噪聲部分, 在無(wú)適合匹配檢測(cè)框的情況下, 可使用Kalman濾波預(yù)測(cè)物體的位置. 經(jīng)過(guò)Kalman濾波得到跟蹤預(yù)測(cè)框的位置信息, 可為下一步應(yīng)用匈牙利算法提供信息數(shù)據(jù).
1.2.2 改進(jìn)的匈牙利算法
匈牙利算法本質(zhì)為一個(gè)指派問(wèn)題, 是圖論中尋找最大匹配的算法. 二分圖也稱為二部圖, 是一種特殊模型[15]. 將一個(gè)圖的頂點(diǎn)劃分為兩個(gè)不相交子集, 使得每條邊都分別連接兩個(gè)集合中的頂點(diǎn). 如果存在這樣的劃分, 則該圖為一個(gè)二分圖. 在多目標(biāo)跟蹤中可將二分圖理解為視頻中連續(xù)兩幀圖像中的所有檢測(cè)框, 第一幀圖像所有檢測(cè)框的集合記為U, 第二幀圖像所有檢測(cè)框的集合記為V. 同一幀圖像的不同檢測(cè)框不會(huì)為同一個(gè)目標(biāo), 所以不需要互相關(guān)聯(lián), 相鄰兩幀圖像的檢測(cè)框需要相互聯(lián)通, 最終將相鄰兩幀圖像的檢測(cè)框盡量?jī)蓛善ヅ?
傳統(tǒng)的匈牙利算法是單純基于交并比(iou)的算法, 即求得Mask R-CNN所得檢測(cè)框與Kalman濾波所得預(yù)測(cè)框的iou, 通過(guò)匈牙利算法求得iou最大的匹配. 此時(shí)雖然速度快, 但準(zhǔn)確度較差. 本文在原基于交并比(iou)的匈牙利算法基礎(chǔ)上加入表觀特征的顏色直方圖[16]. 顏色直方圖屬于表觀特征中的目標(biāo)表示, 顏色特征可有效表示全局目標(biāo), 其通過(guò)描述不同色彩在整張圖像中所占的比例表示圖像特征, 且具有不受圖像旋轉(zhuǎn)和平移變化影響的優(yōu)點(diǎn). 一般顏色直方圖在HSV色系下提取.
將HSV的3個(gè)分量進(jìn)行量化, 量化后的取值范圍為{0,1,2,…,LH-1},{0,1,2,…,LS-1},{0,1,2,…,LV-1}, 按(H,S,V)形式排列取值范圍為{0,1,…,LH-1,…,LH+LS-1,…,LH+LS+LV-1}. 設(shè)顏色i的像素點(diǎn)有mi個(gè), 則圖像的像素點(diǎn)總數(shù)為
(13)
顏色i出現(xiàn)的概率為
(14)
pi即為顏色直方圖.
將顏色直方圖應(yīng)用于目標(biāo)跟蹤時(shí), 可采用巴氏距離計(jì)算兩個(gè)直方圖的相似度, 公式如下:
(15)
(16)
(17)
其中ρ(i,j)為兩個(gè)直方圖的巴氏系數(shù),i(k)為Kalman濾波器預(yù)測(cè)目標(biāo)圖像的直方圖,j(k)為Mask R-CNN檢測(cè)目標(biāo)圖像直方圖分布,d(i,j)為兩個(gè)直方圖的巴氏距離, 其值越小則兩個(gè)圖相似度越高,Cappr(i,j)為表觀關(guān)聯(lián)系數(shù).
對(duì)于本文多目標(biāo)跟蹤中的數(shù)據(jù)關(guān)聯(lián), 首先已完成了用Mask R-CNN網(wǎng)絡(luò)檢測(cè)出當(dāng)前幀圖像中的n個(gè)行人目標(biāo)以及邊界框的坐標(biāo)位置, 使用Kalman濾波根據(jù)上幀圖像的跟蹤結(jié)果完成了當(dāng)前幀圖像行人目標(biāo)位置的估計(jì), 得到m個(gè)預(yù)測(cè)結(jié)果, 即m條軌跡. 在已獲得的Mask R-CNN檢測(cè)和Kalman濾波獲得的預(yù)測(cè)結(jié)果后, 先計(jì)算兩者的交并比(iou)[17], 再獲得前后幀目標(biāo)圖像的顏色直方圖, 最后利用iou和直方圖特征加權(quán)構(gòu)造關(guān)聯(lián)矩陣, 表達(dá)式如下:
Cij=αCiou(i,j)+βCappr(i,j),
(18)
其中Ciou(i,j)為檢測(cè)框與預(yù)測(cè)框的面積交并比iou,Cappr(i,j)為表觀關(guān)聯(lián)系數(shù),α,β為歸一化權(quán)重系數(shù). 最后將匈牙利算法的關(guān)聯(lián)結(jié)果與Kalman濾波器預(yù)測(cè)結(jié)果進(jìn)行匹配, 形成最終的多軌跡跟蹤結(jié)果.
1.2.3 異常軌跡修正
圖2 遮擋情況下的行人跟蹤結(jié)果
當(dāng)跟蹤目標(biāo)被部分遮擋時(shí), 利用改進(jìn)匈牙利算法進(jìn)行數(shù)據(jù)關(guān)聯(lián), 雖然可能跟蹤到目標(biāo), 但效果較差. 例如, 一個(gè)行人從開(kāi)始被遮擋到遮擋結(jié)束的過(guò)程如圖2所示. 由圖2可見(jiàn), 遮擋前后跟蹤目標(biāo)的ID發(fā)生了轉(zhuǎn)變, 即跟蹤軌跡有發(fā)生中斷的情況[18]. 針對(duì)該現(xiàn)象, 本文提出軌跡修正算法, 以減少因遮擋出現(xiàn)的軌跡中斷, 即跟蹤目標(biāo)ID變換現(xiàn)象.
本文算法流程如圖3所示. 先采用Mask R-CNN網(wǎng)絡(luò)進(jìn)行檢測(cè)操作, 檢測(cè)出視頻幀圖像中的待跟蹤行人目標(biāo); 然后利用Kalman濾波對(duì)下一幀圖像中行人目標(biāo)的具體位置進(jìn)行估計(jì)和預(yù)測(cè); 最后使用改進(jìn)的匈牙利算法將檢測(cè)與預(yù)測(cè)進(jìn)行匹配, 得到多條長(zhǎng)時(shí)間目標(biāo)跟蹤軌跡.
圖3 本文算法流程
步驟1) 用Mask R-CNN網(wǎng)絡(luò)進(jìn)行檢測(cè), 檢測(cè)出所有圖像中目標(biāo)的坐標(biāo)位置及其置信度;
步驟2) 根據(jù)第一幀圖像的檢測(cè)信息初始化Kalman濾波器, 并預(yù)測(cè)下一幀圖像中各行人目標(biāo)的位置和大小;
步驟3) 讀入下一幀圖像的檢測(cè)結(jié)果, 計(jì)算此幀圖像檢測(cè)結(jié)果與預(yù)測(cè)結(jié)果的iou與顏色直方圖, 計(jì)算加權(quán)關(guān)聯(lián)矩陣, 用改進(jìn)的匈牙利算法完成匹配;
步驟4) 若匹配結(jié)束后存在檢測(cè)目標(biāo)剩余, 則用這些剩余檢測(cè)結(jié)果初始化新的Kalman濾波器; 若匹配結(jié)束后存在預(yù)測(cè)目標(biāo)剩余, 則這些目標(biāo)可能已消失在視野中或發(fā)生了遮擋情況, 用異常軌跡修復(fù)算法修復(fù)軌跡, 記錄此時(shí)圖像目標(biāo)消失的幀數(shù), 當(dāng)圖像目標(biāo)消失幀數(shù)大于10幀時(shí), 將該目標(biāo)認(rèn)定為目標(biāo)已丟失并刪除其對(duì)應(yīng)的Kalman濾波器;
步驟5) 判斷是否已遍歷整個(gè)圖像集, 若已處理全部圖像, 則結(jié)束程序; 否則轉(zhuǎn)步驟3).
本文實(shí)驗(yàn)數(shù)據(jù)集采用MOT16[19], 該數(shù)據(jù)集包括兩部分: 訓(xùn)練集與測(cè)試集. 數(shù)據(jù)集包含多個(gè)行人目標(biāo), 且存在目標(biāo)交互和遮擋現(xiàn)象. 這些數(shù)據(jù)集為攝像頭拍攝的一組連續(xù)圖像, 從第一張圖片到最后一張圖片, 其中包含多個(gè)目標(biāo), 不斷有出有進(jìn), 不斷運(yùn)動(dòng). MOT16訓(xùn)練集與測(cè)試集中各包含7組圖像集. 實(shí)驗(yàn)環(huán)境: 8.00 GB內(nèi)存, 64位操作系統(tǒng), 軟件為Python 3.6.10.
為更好證明本文算法的優(yōu)勢(shì), 采用兩組對(duì)比實(shí)驗(yàn)結(jié)果進(jìn)行系統(tǒng)分析. 第一組為本文算法在MOT16數(shù)據(jù)集不同視頻序列的跟蹤結(jié)果, 分析該算法在不同場(chǎng)景的實(shí)驗(yàn)結(jié)果; 第二組為本文算法與其他4種算法在MOT16數(shù)據(jù)集上跟蹤結(jié)果的對(duì)比, 4種對(duì)照算法為CppSORT[20],HCC[21],MOTDT[22]和MLT[23].
實(shí)驗(yàn)采用綜合評(píng)價(jià)指標(biāo)跟蹤準(zhǔn)確率(MOTA)、 跟蹤精度(MOTP)、 成功跟蹤的目標(biāo)軌跡占真實(shí)目標(biāo)軌跡比例(MT)、 丟失的目標(biāo)軌道占真實(shí)目標(biāo)軌跡比例(ML)、 跟蹤過(guò)程中發(fā)生的目標(biāo)標(biāo)簽切換總數(shù)(ID_SW)、 誤檢目標(biāo)總數(shù)(FP)和漏檢目標(biāo)總數(shù)(FN)進(jìn)行定量分析[24].
2.3.1 第一組實(shí)驗(yàn)結(jié)果及分析
將本文算法在不同視頻序列上的跟蹤量化結(jié)果進(jìn)行對(duì)比. 在MOT16測(cè)試集所有視頻序列上進(jìn)行實(shí)驗(yàn), 所得量化結(jié)果列于表1. 本文主要研究跟蹤準(zhǔn)確度及當(dāng)存在目標(biāo)遮擋情形時(shí)的標(biāo)簽切換問(wèn)題. 本文算法在不同測(cè)試集中的跟蹤準(zhǔn)確度與標(biāo)簽切換總數(shù)的性能分析如圖4所示.
表1 本文算法在MOT16測(cè)試集不同序列上的量化跟蹤結(jié)果
圖4 本文算法在不同測(cè)試集上的性能(標(biāo)記點(diǎn)為MOTA和ID_SW)
由表1可見(jiàn), 綜合各項(xiàng)性能指標(biāo), 本文算法在MOT16-03視頻序列上的跟蹤效果最佳, 在MOT16-14視頻序列上的跟蹤效果最差. 同時(shí)通過(guò)對(duì)圖4中各標(biāo)記點(diǎn)的觀察, 在權(quán)衡MOTA和ID_SW后也可得到上述結(jié)論. 導(dǎo)致這種現(xiàn)象的原因?yàn)镸OT16-03視頻序列背景簡(jiǎn)單, 行人目標(biāo)大小適宜且與背景對(duì)比明顯; MOT16-14原視頻序列背景復(fù)雜, 許多行人目標(biāo)在視野中過(guò)小且與背景對(duì)比不明顯. MOT16-01視頻序列存在待跟蹤行人目標(biāo)過(guò)小的情況, 使得最終跟蹤效果一般; MOT16-06視頻序列的圖像分辨率過(guò)低, 影響了最終的跟蹤效果; MOT16-07視頻序列中存在行人目標(biāo)過(guò)小且在視頻中存在鏡面成像的現(xiàn)象, 這些因素都會(huì)影響最終的跟蹤結(jié)果; MOT16-08視頻序列存在行人目標(biāo)過(guò)小且部分行人目標(biāo)與背景區(qū)分度較低的現(xiàn)象, 影響了跟蹤結(jié)果; MOT16-12視頻序列中出現(xiàn)了相機(jī)晃動(dòng)的現(xiàn)象且背景變化跨度較大, 導(dǎo)致最后跟蹤效果不佳. 因此, 跟蹤效果除與算法自身的性能相關(guān)外, 還與相機(jī)的分辨率、 背景的復(fù)雜度、 行人目標(biāo)的大小等因素密切相關(guān).
2.3.2 第二組實(shí)驗(yàn)結(jié)果及分析
將本文算法與MLT,MOTDT,HCC,CppSORT算法在MOT16數(shù)據(jù)集上的量化跟蹤效果進(jìn)行對(duì)比, 結(jié)果列于表2. 目標(biāo)跟蹤準(zhǔn)確率及標(biāo)簽切換總數(shù)的性能分析如圖5所示.
表2 不同算法在MOT16數(shù)據(jù)集上的量化跟蹤結(jié)果
圖5 不同算法的跟蹤性能(標(biāo)記點(diǎn)為MOTA和ID_SW)
由表2可見(jiàn): 本文算法的MOTA=55.1%, 比排在第二位的MLT算法(MOTA=52.8%)高2.3%; 本文算法的MT=24.6%為5種算法中的最大值, 比排在第二位的MLT算法(MT=21.2%)高3.4%; 且本文算法在數(shù)據(jù)集MOT16中的誤檢數(shù)目和漏檢數(shù)目最少, 為2 992個(gè)和78 187個(gè). 上述結(jié)果證明了本文算法有良好的跟蹤準(zhǔn)確度且可有效解決目標(biāo)被遮擋問(wèn)題的軌跡丟失問(wèn)題及標(biāo)簽切換問(wèn)題. 由圖5可見(jiàn), 本文算法與MLT算法在跟蹤準(zhǔn)確度和遮擋后的標(biāo)簽切換問(wèn)題中均取得了較好效果.
圖6 不同算法在跟蹤目標(biāo)被遮擋情形下的跟蹤效果
為直觀顯示本文算法在處理目標(biāo)遮擋問(wèn)題時(shí)的優(yōu)勢(shì), 在MOT16-01視頻序列上用本文算法與MLT,MOTDT,HCC,CppSORT算法進(jìn)行對(duì)比實(shí)驗(yàn), 部分截圖結(jié)果如圖6所示, 其中: 第一行為第413幀圖像目標(biāo)遮擋發(fā)生前; 第二行為第425幀圖像目標(biāo)遮擋正在發(fā)生; 第三行為第435幀圖像目標(biāo)遮擋已結(jié)束. 對(duì)比5種算法對(duì)同一幀圖像的跟蹤效果可知, 本文算法與MLT算法在如圖6所示的圖像中, 遮擋前后不僅可準(zhǔn)確地跟蹤到行人目標(biāo), 且未發(fā)生標(biāo)簽切換; 而MOTDT算法在第435幀圖像出現(xiàn)了漏檢行人目標(biāo)的問(wèn)題且存在跟蹤到的目標(biāo)出現(xiàn)了標(biāo)簽切換問(wèn)題; HCC算法雖然在如圖6所示的3幀圖像中都框選到了行人目標(biāo), 但存在遮擋前后行人目標(biāo)標(biāo)簽切換問(wèn)題; CppSORT算法在3幀圖像中均出現(xiàn)了漏檢情況, 跟蹤精確度較低. 實(shí)驗(yàn)結(jié)果表明, 本文算法與MLT算法在具有遮擋問(wèn)題的跟蹤實(shí)驗(yàn)中均可很好地恢復(fù)被遮擋目標(biāo)的標(biāo)簽, 完成持續(xù)的跟蹤操作.
為進(jìn)一步對(duì)比本文算法與MLT算法的優(yōu)劣, 對(duì)比分析兩種算法在MOT16-03數(shù)據(jù)集上的跟蹤結(jié)果, 部分截圖結(jié)果如圖7所示. 對(duì)比兩種算法在第670幀、 第1 016幀、 第1 165幀圖像目標(biāo)的跟蹤結(jié)果可知, 當(dāng)行人目標(biāo)存在部分遮擋問(wèn)題、 姿態(tài)問(wèn)題和光線問(wèn)題時(shí), 本文算法的效果更好; 而MLT算法易出現(xiàn)漏檢現(xiàn)象. 實(shí)驗(yàn)結(jié)果表明, 本文算法對(duì)不同姿態(tài)的、 存在部分遮擋的、 存在光線問(wèn)題的目標(biāo)跟蹤均有較好的效果.
圖7 本文算法與MLT算法目標(biāo)跟蹤效果對(duì)比
綜上所述, 本文使用Mask R-CNN作為檢測(cè)器, 實(shí)現(xiàn)了基于檢測(cè)的多目標(biāo)跟蹤. 當(dāng)檢測(cè)結(jié)果輸入跟蹤器后, 通過(guò)Kalman濾波器預(yù)測(cè)下一幀圖像的目標(biāo)位置, 得到先驗(yàn)概率; 在已知檢測(cè)結(jié)果與預(yù)測(cè)結(jié)果的同時(shí), 計(jì)算兩種結(jié)果的交并比及顏色直方圖, 通過(guò)加權(quán)和的形式生成關(guān)聯(lián)矩陣, 然后利用匈牙利算法完成匹配; 最后利用迭代完成對(duì)整個(gè)視頻序列的處理. 針對(duì)待跟蹤視頻序列中的遮擋問(wèn)題引入了異常軌跡修正機(jī)制, 即根據(jù)跟蹤框的高寬及中心位置的對(duì)比, 修正異常跟-蹤軌跡. 實(shí)驗(yàn)結(jié)果表明, 本文算法在MOT16數(shù)據(jù)集上的跟蹤準(zhǔn)確率達(dá)55.1%且減少了標(biāo)簽轉(zhuǎn)換總數(shù). 但由于本文算法基于Mask R-CNN實(shí)現(xiàn), 算法的速度還有待進(jìn)一步提高.