尚永生,李奇林
(1.山東師范大學(xué) 物理與電子科學(xué)學(xué)院,山東 濟(jì)南 250358;2.北京神州綠盟信息安全科技股份有限公司,北京 100089)
所謂視頻行人跟蹤,即指在視頻序列中檢測(cè)并追隨行人,在人體信息提取和三維重建中起主導(dǎo)作用。行人跟蹤一直是計(jì)算機(jī)視覺(jué)領(lǐng)域需要攻克的難點(diǎn)之一。由于人體尺度變化、物體遮擋、光照變化等因素的存在,目標(biāo)行人的長(zhǎng)時(shí)跟蹤需深入研究。TLD算法[1]作為一種優(yōu)秀的通用型單目標(biāo)長(zhǎng)時(shí)跟蹤算法,具有良好的魯棒性和抗形變能力,在實(shí)踐應(yīng)用中顯示出良好的特性。因此,將TLD算法應(yīng)用到行人跟蹤中,能夠很好地推動(dòng)行人跟蹤的發(fā)展,實(shí)現(xiàn)對(duì)目標(biāo)行人的長(zhǎng)時(shí)跟蹤。
本文將對(duì)原TLD目標(biāo)跟蹤算法進(jìn)行改進(jìn)和優(yōu)化,在其檢測(cè)模塊中引入SVM分類器[2]和HOG特征,使得檢測(cè)模塊能夠更好地檢測(cè)到目標(biāo)行人。通過(guò)對(duì)算法內(nèi)部模塊進(jìn)行有針對(duì)性的優(yōu)化,在目標(biāo)行人的整體和局部跟蹤方面獲得了良好效果。
TLD算法于2012年被Zdenek Kalal提出。該算法在目標(biāo)跟蹤方面表現(xiàn)出良好的跟蹤特性,受到了國(guó)內(nèi)外相關(guān)研究人員的密切關(guān)注。近幾年,取得了較多該算法改進(jìn)和應(yīng)用的研究成果。可見(jiàn),TLD的出現(xiàn)對(duì)目標(biāo)跟蹤的發(fā)展具有至關(guān)重要的推動(dòng)作用。
Kalal與其研發(fā)團(tuán)隊(duì)[3]在TLD1.0發(fā)布后,又對(duì)其進(jìn)行了一定改進(jìn),先后發(fā)布了TLD2.0和TLD3.0版本。與TLD1.0相比,TLD2.0的運(yùn)算速度有了大幅度提高,實(shí)現(xiàn)了對(duì)多目標(biāo)的實(shí)時(shí)跟蹤,且可以保存訓(xùn)練好的學(xué)習(xí)模型。TLD3.0是在原來(lái)二維基礎(chǔ)上增加了空間維度,實(shí)現(xiàn)了對(duì)三維目標(biāo)的準(zhǔn)確跟蹤。
我國(guó)科研人員對(duì)TLD算法也進(jìn)行了分析研究,在原TLD的基礎(chǔ)上提出了相應(yīng)的改進(jìn)方案。周鑫、錢秋朦等人[4]在TLD檢測(cè)模塊引入Kalman濾波器和基于馬爾可夫模型的方向預(yù)測(cè)器,提高了檢測(cè)模塊的處理速度和辨識(shí)能力。江偉堅(jiān)等人[5]提出了基于Sliding-windows的局部搜索和全局搜索,采用積分直方圖和隨機(jī)Haar-like塊特征濾波器解決了在復(fù)雜環(huán)境下的跟蹤精度不足問(wèn)題。金龍等人[6]在TLD的檢測(cè)模塊引入Meanshift與Kalman濾波,對(duì)當(dāng)前幀目標(biāo)區(qū)域進(jìn)行評(píng)估,同時(shí)采用顏色特征分類器,提高了對(duì)目標(biāo)的識(shí)別性能和跟蹤的成功率。金哲等[7]提出了一種ATLD算法,在檢測(cè)模塊引入基于灰色預(yù)測(cè)模型的目標(biāo)位置估計(jì)和檢測(cè)區(qū)域設(shè)置,運(yùn)用基于NCC距離的圖像檢索方法管理正負(fù)樣本,在此基礎(chǔ)上實(shí)現(xiàn)了多目標(biāo)跟蹤。童源等人[8]通過(guò)對(duì)圖像分辨率進(jìn)行動(dòng)態(tài)調(diào)整,在目標(biāo)鄰近區(qū)域掃描生成樣本,縮小檢測(cè)范圍,同時(shí)更換檢測(cè)部分中分類器模板匹配方法,實(shí)現(xiàn)了快速匹配,提高了算法運(yùn)行速度。
TLD是一種半監(jiān)督學(xué)習(xí)的單目標(biāo)長(zhǎng)時(shí)跟蹤算法,主要包括跟蹤模塊、檢測(cè)模塊和學(xué)習(xí)模塊。在整個(gè)跟蹤過(guò)程中,三大模塊既相互獨(dú)立又相互作用,對(duì)視頻序列中的每一幀同時(shí)進(jìn)行處理。跟蹤模塊的作用是對(duì)連續(xù)幀間的運(yùn)動(dòng)進(jìn)行跟蹤。在整個(gè)跟蹤過(guò)程中,只有當(dāng)物體始終可見(jiàn),跟蹤模塊才會(huì)有效。檢測(cè)模塊的作用是估計(jì)跟蹤模塊的誤差,當(dāng)誤差過(guò)大時(shí),糾正跟蹤模塊的結(jié)果。學(xué)習(xí)模塊會(huì)根據(jù)以上兩模塊產(chǎn)生的正負(fù)樣本迭代訓(xùn)練分類器,改善檢測(cè)模塊的精度。
由于行人外觀具有顯著變化的特殊性,目前許多行人跟蹤算法難以做到長(zhǎng)時(shí)間的準(zhǔn)確跟蹤。TLD算法在針對(duì)形變目標(biāo)長(zhǎng)時(shí)間跟蹤方面具有一定優(yōu)勢(shì),因此可以作為解決行人跟蹤難題的一種方法。
本文算法以TLD算法作為基礎(chǔ)框架,由檢測(cè)模塊、跟蹤模塊、學(xué)習(xí)模塊和綜合模塊4部分組成。將SVM分類器和HOG特征[9]引入檢測(cè)模塊,可實(shí)現(xiàn)對(duì)行人目標(biāo)的準(zhǔn)確持續(xù)跟蹤,算法如圖1所示。
圖1 本文算法框架
本文算法中,跟蹤模塊和檢測(cè)模塊對(duì)輸入視頻幀序列進(jìn)行平行運(yùn)算,對(duì)序列中的行人目標(biāo)做出檢測(cè),判斷是否存在目標(biāo)行人。將檢測(cè)結(jié)果傳遞給學(xué)習(xí)模塊進(jìn)行在線學(xué)習(xí),對(duì)訓(xùn)練器進(jìn)行迭代訓(xùn)練,根據(jù)學(xué)習(xí)結(jié)果分別對(duì)跟蹤模塊和檢測(cè)模塊進(jìn)行反饋,更新兩模塊參數(shù)和模型,從而使得該算法能夠更好地適應(yīng)行人跟蹤,達(dá)到良好的跟蹤效果[10]。
算法中,跟蹤模塊采用光流法,根據(jù)圖像之間的像素對(duì)應(yīng)關(guān)系確定人體運(yùn)動(dòng)信息,利用多個(gè)光流模塊協(xié)同工作,全面處理各光流模塊的輸出結(jié)果。運(yùn)用分集思想可以很好地解決局部遮擋對(duì)目標(biāo)行人跟蹤效果的影響,表現(xiàn)出良好的跟蹤特性。檢測(cè)模塊是主要通過(guò)方差分類器、集合分類器、最近鄰分類器和SVM分類器協(xié)同完成對(duì)候選框的判別工作。只有當(dāng)四個(gè)分類器的檢測(cè)結(jié)果全部為“真”時(shí),才會(huì)判定該候選框?yàn)槟繕?biāo)區(qū)域。學(xué)習(xí)模塊使用P-N專家不斷更新跟蹤模塊和檢測(cè)模塊跟蹤結(jié)果,通過(guò)在線學(xué)習(xí)選取正負(fù)樣本供分類器使用,改善分類器的檢測(cè)功能,提高跟蹤效果。綜合模塊是對(duì)以上三個(gè)模塊的輸出結(jié)果進(jìn)行綜合調(diào)整,完成邏輯實(shí)現(xiàn)和基本判決功能,實(shí)現(xiàn)對(duì)行人的跟蹤任務(wù)。
候選框依次通過(guò)檢測(cè)、跟蹤、綜合模塊來(lái)檢測(cè)候選框內(nèi)是否含有目標(biāo)區(qū)域,將含有目標(biāo)區(qū)域的候選框傳遞給SVM分類器,計(jì)算HOG特征。HOG特征主要對(duì)候選框局部區(qū)域進(jìn)行計(jì)算,可以很好地解決人體形變、光照變化等因素的干擾。SVM分類器的學(xué)習(xí)過(guò)程是一種凸優(yōu)化問(wèn)題求解過(guò)程,相比于其他采用貪心算法的分類算法,SVM分類器避開(kāi)了局部最小化陷阱。將提取的HOG特征不斷傳遞給SVM分類器進(jìn)行在線學(xué)習(xí),可使SVM分類器能夠更好地適應(yīng)行人目標(biāo)檢測(cè)任務(wù)。
本文算法實(shí)驗(yàn)使用C++與Matlab編程語(yǔ)言,以O(shè)penTLD-master即TLD1.0為基礎(chǔ)進(jìn)行改進(jìn)工作。測(cè)試用例選取了2組比較典型的數(shù)據(jù)集,第1組數(shù)據(jù)集是Visual Tracker Benchmark上The rest of TB-100 Sequences中的Human2,該數(shù)據(jù)集包含1 128幀圖片。在整個(gè)視頻序列中,目標(biāo)行人身體出現(xiàn)轉(zhuǎn)身、遮擋、抖動(dòng)等現(xiàn)象,利用該數(shù)據(jù)集測(cè)試算法對(duì)行人的整體跟蹤效果。第2組數(shù)據(jù)集是TB-50 Sequences中的David,該數(shù)據(jù)集包含770幀圖片。數(shù)據(jù)集中的行人具有面部表情、裝飾物變化以及場(chǎng)景光照強(qiáng)度變化等情景,利用該數(shù)據(jù)集測(cè)試算法對(duì)行人的局部跟蹤效果。
算法測(cè)試遵循OTB結(jié)構(gòu)化評(píng)估標(biāo)準(zhǔn),采用中心距離、重疊率和偏移率等三個(gè)指標(biāo)。
(1)中心距離L(Oo,Or)[11],即標(biāo)注目標(biāo)中心點(diǎn)坐標(biāo)(Oox,Orx)與算法輸出中心點(diǎn)坐標(biāo)(Ooy,Ory)之間的距離。該指標(biāo)能夠直觀表達(dá)兩者之間的歐氏距離,是衡量本文算法優(yōu)越性的重要指標(biāo)之一。中心距離數(shù)值越小,說(shuō)明跟蹤效果越好,計(jì)算公式為:
(2)偏移率Offset[12],即(Oo,Or)與標(biāo)注目標(biāo)區(qū)域?qū)蔷€長(zhǎng)度之比。偏移率越小,說(shuō)明跟蹤效果越好,計(jì)算公式為:
式(2)中,Ax、Ay、Bx、By分別是標(biāo)注目標(biāo)區(qū)域左上角的橫縱坐標(biāo)與右下角的橫縱坐標(biāo)。
(3)重疊率Overlap[13],即標(biāo)注目標(biāo)區(qū)域與算法輸出區(qū)域重疊面積占整個(gè)標(biāo)注區(qū)域的比例。該指標(biāo)能夠準(zhǔn)確表達(dá)跟蹤結(jié)果與標(biāo)注結(jié)果的重合程度。值越大,說(shuō)明重合程度越高,跟蹤效果越好,計(jì)算公式為:
式(3)中,Scover表示標(biāo)注目標(biāo)區(qū)域與算法輸出目標(biāo)區(qū)域重疊面積。
對(duì)于實(shí)驗(yàn)結(jié)果,將會(huì)從定性與定量?jī)煞矫鎭?lái)展示本文算法的跟蹤效果。
3.3.1 定性結(jié)果
Human2和David測(cè)試集視頻序列部分跟蹤截圖,如圖2、圖3所示。
圖2 Human2第50、100、195、271、389幀跟蹤效果
圖3 David第256、350、415、605幀跟蹤效果
在圖2、圖3中,矩形表示目標(biāo)行人的實(shí)時(shí)跟蹤位置,左上角小窗口是被跟蹤的目標(biāo)畫(huà)面,畫(huà)面左右兩側(cè)分別為采集到的正樣本和負(fù)樣本。正負(fù)樣本會(huì)隨著跟蹤的持續(xù)不斷增加。
圖2是目標(biāo)行人整體形態(tài)發(fā)生變化,包括大幅度的抖動(dòng)、轉(zhuǎn)身等情況。從跟蹤效果來(lái)看,整個(gè)過(guò)程沒(méi)有丟失現(xiàn)象。在第195幀,即使出現(xiàn)局部遮擋,本文算法依然能夠?qū)π腥藴?zhǔn)確跟蹤。圖3是目標(biāo)行人從光線弱的地方到光線較強(qiáng)的區(qū)域。整個(gè)過(guò)程中,行人的面部表情和裝飾物都發(fā)生了改變,但行人頭部始終保持在黃色矩形框以內(nèi),跟蹤效果很好。
3.3.2 定量結(jié)果
對(duì)兩組數(shù)據(jù)集前360幀視頻序列的中心距離、偏移率、重疊率進(jìn)行計(jì)算,結(jié)果如圖4、圖5和圖6所示。
圖4 中心距離變化趨勢(shì)
圖5 偏移率變化趨勢(shì)
圖6 重疊率變化趨勢(shì)
由圖4、圖5和圖6可得,Huamn2數(shù)據(jù)集的中心距離均保持在8.5以下,David數(shù)據(jù)集的中心距離均保持在5.8以下。Human2的偏移率均保持在3.5%以下,David的偏移率均保持在8.9%以下。Human2的重疊率在85%左右浮動(dòng),當(dāng)跟蹤到第202幀時(shí),跟蹤效果有所降低,但隨著算法的在線學(xué)習(xí),及時(shí)糾正跟蹤誤差,后續(xù)跟蹤過(guò)程中表現(xiàn)出很好的跟蹤效果。David的重疊率大部分保持在80%以上,在第320幀到360幀期間,跟蹤效果略有降低。
從以上數(shù)據(jù)分析可得,本文算法對(duì)行人的整體和局部跟蹤都表現(xiàn)出良好的跟蹤效果,能夠很好地處理目標(biāo)行人環(huán)境帶來(lái)的干擾問(wèn)題,實(shí)現(xiàn)對(duì)目標(biāo)行人的持續(xù)跟蹤,具有良好的魯棒性。
為驗(yàn)證本文算法的有效性,分別與TLD1.0算法和KCF算法進(jìn)行效果對(duì)比,用成功率圖來(lái)測(cè)量視頻序列的跟蹤性能,即當(dāng)算法跟蹤結(jié)果與實(shí)際結(jié)果的中心距離不超過(guò)該閾值時(shí),表示跟蹤成功,否則判定為跟蹤失敗。
KCF(Kernel Correlation Filter) 算 法 由 Joao F. Henriques、Rui Caseiro、Pedro Martins和 Jorge Batista[14]提出,是一種鑒別式跟蹤算法。在跟蹤過(guò)程中訓(xùn)練一個(gè)目標(biāo)檢測(cè)器,使用該檢測(cè)器檢測(cè)下一幀是否存在目標(biāo),然后根據(jù)檢測(cè)結(jié)果更新該檢測(cè)器,是一種優(yōu)秀的短時(shí)跟蹤算法。
本文算法與TLD1.0和KCF算法的效果對(duì)比如圖7所示。
圖7 本文算法與TLD1.0和KCF算法的對(duì)比
由圖7分析可得,本文算法表現(xiàn)出的成功率整體優(yōu)于TLD1.0和KCF算法,且隨著中心距離閾值的不斷增加,本文算法的優(yōu)勢(shì)逐漸顯現(xiàn)并不斷增大。因此,本文算法的長(zhǎng)時(shí)跟蹤效果要優(yōu)于TLD1.0和KCF算法。
TLD算法是對(duì)單目標(biāo)長(zhǎng)時(shí)間跟蹤表現(xiàn)出良好的優(yōu)越性,只需少量的先驗(yàn)知識(shí)就能夠?qū)崿F(xiàn)在線跟蹤,并且能夠很好地適應(yīng)目標(biāo)遮擋、光照變化、尺度變化等因素的影響。本文在原TLD算法的基礎(chǔ)上,在檢測(cè)單元引入了SVM分類器和HOG特征,并優(yōu)化調(diào)整了算法中的相關(guān)參數(shù)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的算法較原TLD算法在精度方面有很大的提高,能夠?qū)崿F(xiàn)對(duì)目標(biāo)的長(zhǎng)時(shí)跟蹤,且對(duì)不同場(chǎng)景下的目標(biāo)行人表現(xiàn)出良好的跟蹤效果,具有良好的魯棒性和適應(yīng)性。