本發(fā)明屬計(jì)算機(jī)視覺領(lǐng)域,涉及一種目標(biāo)跟蹤方法,具體涉及一種基于卷積特征和全局搜索檢測的長時遮擋魯棒跟蹤方法。
背景技術(shù):
目標(biāo)跟蹤的主要任務(wù)是獲取視頻序列中特定目標(biāo)的位置與運(yùn)動信息,在視頻監(jiān)控、人機(jī)交互等領(lǐng)域具有廣泛的應(yīng)用。跟蹤過程中,光照變化、背景復(fù)雜、目標(biāo)發(fā)生旋轉(zhuǎn)或縮放等因素都會增加目標(biāo)跟蹤問題的復(fù)雜性,尤其是當(dāng)目標(biāo)被長時遮擋時,則更容易導(dǎo)致跟蹤失敗。
文獻(xiàn)“tracking-learning-detection,ieeetransactionsonpatternanalysisandmachineintelligence,2012,34(7):1409-1422”提出的跟蹤方法(簡稱tld)首次將傳統(tǒng)的跟蹤算法和檢測算法結(jié)合起來,利用檢測結(jié)果完善跟蹤結(jié)果,提高了系統(tǒng)的可靠性和魯棒性。其跟蹤算法基于光流法,檢測算法產(chǎn)生大量的檢測窗口,對于每個檢測窗口,都必須被三個檢測器接受才能成為最后的檢測結(jié)果。針對遮擋問題,tld提供了一個切實(shí)有效的解決思路,能夠?qū)δ繕?biāo)進(jìn)行長時跟蹤(long-termtracking)。但是,tld使用的是淺層的人工特征,對目標(biāo)的表征能力有限,且檢測算法的設(shè)計(jì)也較為復(fù)雜,有一定的改進(jìn)空間。
技術(shù)實(shí)現(xiàn)要素:
要解決的技術(shù)問題
為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提出一種基于卷積特征和全局搜索檢測的長時遮擋魯棒跟蹤方法,解決視頻運(yùn)動目標(biāo)在跟蹤過程中由于長時遮擋或目標(biāo)平移出視野之外等因素造成外觀模型漂移,從而易導(dǎo)致跟蹤失敗的問題。
技術(shù)方案
一種基于卷積特征和全局搜索檢測的長時遮擋魯棒跟蹤方法,其特征在于步驟如下:
步驟1讀取視頻中第一幀圖像數(shù)據(jù)以及目標(biāo)所在的初始位置信息[x,y,w,h],其中x,y表示目標(biāo)中心的橫坐標(biāo)和縱坐標(biāo),w,h表示目標(biāo)的寬和高。將(x,y)對應(yīng)的坐標(biāo)點(diǎn)記為p,以p為中心,大小為w×h的目標(biāo)初始區(qū)域記為rinit,再將目標(biāo)的尺度記為scale,初始化為1。
步驟2以p為中心,確定一個包含目標(biāo)及背景信息的區(qū)域rbkg,rbkg的大小為m×n,m=2w,n=2h。采用vggnet-19作為cnn模型,在第5層卷積層(conv5-4)對r'提取卷積特征圖ztarget_init。然后根據(jù)ztarget_init構(gòu)建跟蹤模塊的目標(biāo)模型
其中,大寫的變量為相應(yīng)的小寫變量在頻域上的表示,高斯濾波模板
步驟3以p為中心,提取s個不同尺度的圖像子塊,s設(shè)定為33。每個子塊的大小為w×h×s,變量s為圖像子塊的尺度因子,s∈[0.7,1.4]。然后分別提取每個圖像子塊的hog特征,合并后成為一個s維的hog特征向量,這里將其命名為尺度特征向量,記為zscale_init。再根據(jù)zscale_init構(gòu)建跟蹤模塊的尺度模型wscale,計(jì)算方法與步驟2中計(jì)算
其中,
步驟4對目標(biāo)初始區(qū)域rinit提取灰度特征,得到的灰度特征表示是一個二維矩陣,這里將該矩陣命名為目標(biāo)外觀表示矩陣,記為ak,下標(biāo)k表示當(dāng)前幀數(shù),初始時k=1。然后將檢測模塊的濾波模型d初始化為a1,即d=a1,再初始化歷史目標(biāo)表示矩陣集合ahis。ahis的作用是存儲當(dāng)前及之前每一幀的目標(biāo)外觀表示矩陣,即ahis={a1,a2,...,ak},初始時ahis={a1}。
步驟5讀取下一幀圖像,仍然以p為中心,提取大小為rbkg×scale的經(jīng)過尺度縮放后的目標(biāo)搜索區(qū)域。然后通過步驟2中的cnn網(wǎng)絡(luò)提取目標(biāo)搜索區(qū)域的卷積特征,并以雙邊插值的方式采樣到rbkg的大小得到當(dāng)前幀的卷積特征圖ztarget_cur,再利用目標(biāo)模型
其中,
步驟6以p為中心,提取s個不同尺度的圖像子塊,然后分別提取每個圖像子塊的hog特征,合并后得到當(dāng)前幀的尺度特征向量zscale_cur(同步驟3中zscale_init的計(jì)算方法)。再利用尺度模型wscale計(jì)算尺度置信圖:
最后更新目標(biāo)的尺度scale,計(jì)算方法如下:
至此,可以得到跟蹤模塊在當(dāng)前幀(第k幀)的輸出:以坐標(biāo)為(x,y)的p為中心,大小為rinit×scale的圖像子塊tpatchk。另外,將已經(jīng)計(jì)算完成的ftarget中的最大響應(yīng)值簡記為tpeakk,即tpeakk=ftarget(x,y)。
步驟7檢測模塊以全局搜索的方式將濾波模型d與當(dāng)前幀的整幅圖像進(jìn)行卷積,計(jì)算濾波模型d與當(dāng)前幀各個位置的相似程度。取響應(yīng)度最高的前j個值(j設(shè)定為10),并分別以這j個值對應(yīng)的位置點(diǎn)為中心,提取大小為rinit×scale的j個圖像子塊。將這j個圖像子塊作為元素,生成一個圖像子塊集合dpatchesk,即檢測模塊在第k幀的輸出。
步驟8對檢測模塊輸出的集合dpatchesk中各圖像子塊,分別計(jì)算其與跟蹤模塊輸出的tpatchk之間的像素重疊率,可以得到j(luò)個值,將其中最高的值記為
步驟9根據(jù)dpatchesk中各圖像子塊的中心,分別提取大小為rbkg×scale的j個目標(biāo)搜索區(qū)域,按照步驟5中的方法對每一個目標(biāo)搜索區(qū)域提取卷積特征圖并計(jì)算目標(biāo)置信圖,可以得到j(luò)個目標(biāo)搜索區(qū)域上的最大響應(yīng)值。在這j個響應(yīng)值中再進(jìn)行比較,將最大的值記為dpeakk。如果dpeakk大于tpeakk,則再次更新p的坐標(biāo),將(x,y)修正為dpeakk所對應(yīng)的坐標(biāo)。并重新計(jì)算目標(biāo)尺度特征向量和目標(biāo)尺度scale(同步驟6中的計(jì)算方式)。
步驟10目標(biāo)在當(dāng)前幀最優(yōu)的位置中心確定為p,最優(yōu)尺度確定為scale。在圖像中標(biāo)示出新的目標(biāo)區(qū)域rnew,即以p為中心,寬和高分別為w×scale、h×scale的矩形框。另外,將已經(jīng)計(jì)算完成、并且能夠得到最優(yōu)目標(biāo)位置中心p的卷積特征圖簡記為ztarget;同樣,將能夠得到最優(yōu)目標(biāo)尺度scale的尺度特征向量簡記為zscale。
步驟11利用ztarget、zscale,以及上一幀建立的跟蹤模塊中的目標(biāo)模型
其中,β為步驟8計(jì)算后的學(xué)習(xí)率。
步驟12對新的目標(biāo)區(qū)域rnew提取灰度特征后得到當(dāng)前幀的目標(biāo)外觀表示矩陣ak,將ak加入到歷史目標(biāo)表示矩陣集合ahis。如果集合ahis中元素個數(shù)大于c(c設(shè)定為20),則從ahis中隨機(jī)選擇c個元素生成一個三維矩陣ck,ck(:,i)對應(yīng)的是ahis中任意一個元素(即二維矩陣ak);否則用ahis中所有元素生成矩陣ck。然后對ck進(jìn)行平均化得到二維矩陣,將這個二維矩陣作為檢測模塊新的濾波模型d,計(jì)算方法如下:
步驟13判斷是否處理完視頻中所有的圖像幀,若處理完則算法結(jié)束,否則轉(zhuǎn)步驟5繼續(xù)執(zhí)行。
有益效果
本發(fā)明提出的一種基于卷積特征和全局搜索檢測的長時遮擋魯棒跟蹤方法,分別設(shè)計(jì)了跟蹤模塊和檢測模塊,跟蹤過程中,兩個模塊協(xié)同工作:跟蹤模塊主要利用卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetwork,cnn)提取目標(biāo)的卷積特征用于構(gòu)建魯棒的目標(biāo)模型,并通過方向梯度直方圖(histogramoforientedgradient,hog)特征構(gòu)建尺度模型,結(jié)合相關(guān)濾波方法來分別確定目標(biāo)的位置中心和尺度;檢測模塊提取灰度特征構(gòu)建目標(biāo)的濾波模型,采用全局搜索的方式在整幅圖像中對目標(biāo)進(jìn)行快速檢測并判斷遮擋的發(fā)生,一旦目標(biāo)被完全遮擋(或其它因素導(dǎo)致目標(biāo)外觀劇烈變化),檢測模塊利用檢測結(jié)果修正跟蹤目標(biāo)的位置,并抑制跟蹤模塊的模型更新,防止引入不必要的噪聲從而導(dǎo)致模型漂移和跟蹤失敗。
優(yōu)越性:通過在跟蹤模塊中使用卷積特征和多尺度相關(guān)濾波方法,增強(qiáng)了跟蹤目標(biāo)外觀模型的特征表達(dá)能力,使得跟蹤結(jié)果對于光照變化、目標(biāo)尺度變化、目標(biāo)旋轉(zhuǎn)等因素具有很強(qiáng)的魯棒性;又通過引入的全局搜索檢測機(jī)制,使得當(dāng)目標(biāo)被長時遮擋導(dǎo)致跟蹤失敗時,檢測模塊可以再次檢測到目標(biāo),使跟蹤模塊從錯誤中恢復(fù)過來,這樣即使在目標(biāo)外觀變化的情況下,也能夠被長時間持續(xù)地跟蹤。
附圖說明
圖1:基于卷積特征和全局搜索檢測的長時遮擋魯棒跟蹤方法流程圖
具體實(shí)施方式
現(xiàn)結(jié)合實(shí)施例、附圖對本發(fā)明作進(jìn)一步描述:
步驟1讀取視頻中第一幀圖像數(shù)據(jù)以及目標(biāo)所在的初始位置信息[x,y,w,h],其中x,y表示目標(biāo)中心的橫坐標(biāo)和縱坐標(biāo),w,h表示目標(biāo)的寬和高。將(x,y)對應(yīng)的坐標(biāo)點(diǎn)記為p,以p為中心,大小為w×h的目標(biāo)初始區(qū)域記為rinit,再將目標(biāo)的尺度記為scale,初始化為1。
步驟2以p為中心,確定一個包含目標(biāo)及背景信息的區(qū)域rbkg,rbkg的大小為m×n,m=2w,n=2h。采用vggnet-19作為cnn模型,在第5層卷積層(conv5-4)對r'提取卷積特征圖ztarget_init。然后根據(jù)ztarget_init構(gòu)建跟蹤模塊的目標(biāo)模型
其中,大寫的變量為相應(yīng)的小寫變量在頻域上的表示,高斯濾波模板
步驟3以p為中心,提取s個不同尺度的圖像子塊,s設(shè)定為33。每個子塊的大小為w×h×s,變量s為圖像子塊的尺度因子,s∈[0.7,1.4]。然后分別提取每個圖像子塊的hog特征,合并后成為一個s維的hog特征向量,這里將其命名為尺度特征向量,記為zscale_init。再根據(jù)zscale_init構(gòu)建跟蹤模塊的尺度模型wscale,計(jì)算方法與步驟2中計(jì)算
其中,
步驟4對目標(biāo)初始區(qū)域rinit提取灰度特征,得到的灰度特征表示是一個二維矩陣,這里將該矩陣命名為目標(biāo)外觀表示矩陣,記為ak,下標(biāo)k表示當(dāng)前幀數(shù),初始時k=1。然后將檢測模塊的濾波模型d初始化為a1,即d=a1,再初始化歷史目標(biāo)表示矩陣集合ahis。ahis的作用是存儲當(dāng)前及之前每一幀的目標(biāo)外觀表示矩陣,即ahis={a1,a2,...,ak},初始時ahis={a1}。
步驟5讀取下一幀圖像,仍然以p為中心,提取大小為rbkg×scale的經(jīng)過尺度縮放后的目標(biāo)搜索區(qū)域。然后通過步驟2中的cnn網(wǎng)絡(luò)提取目標(biāo)搜索區(qū)域的卷積特征,并以雙邊插值的方式采樣到rbkg的大小得到當(dāng)前幀的卷積特征圖ztarget_cur,再利用目標(biāo)模型
其中,
步驟6以p為中心,提取s個不同尺度的圖像子塊,然后分別提取每個圖像子塊的hog特征,合并后得到當(dāng)前幀的尺度特征向量zscale_cur(同步驟3中zscale_init的計(jì)算方法)。再利用尺度模型wscale計(jì)算尺度置信圖:
最后更新目標(biāo)的尺度scale,計(jì)算方法如下:
至此,可以得到跟蹤模塊在當(dāng)前幀(第k幀)的輸出:以坐標(biāo)為(x,y)的p為中心,大小為rinit×scale的圖像子塊tpatchk。另外,將已經(jīng)計(jì)算完成的ftarget中的最大響應(yīng)值簡記為tpeakk,即tpeakk=ftarget(x,y)。
步驟7檢測模塊以全局搜索的方式將濾波模型d與當(dāng)前幀的整幅圖像進(jìn)行卷積,計(jì)算濾波模型d與當(dāng)前幀各個位置的相似程度。取響應(yīng)度最高的前j個值(j設(shè)定為10),并分別以這j個值對應(yīng)的位置點(diǎn)為中心,提取大小為rinit×scale的j個圖像子塊。將這j個圖像子塊作為元素,生成一個圖像子塊集合dpatchesk,即檢測模塊在第k幀的輸出。
步驟8對檢測模塊輸出的集合dpatchesk中各圖像子塊,分別計(jì)算其與跟蹤模塊輸出的tpatchk之間的像素重疊率,可以得到j(luò)個值,將其中最高的值記為
步驟9根據(jù)dpatchesk中各圖像子塊的中心,分別提取大小為rbkg×scale的j個目標(biāo)搜索區(qū)域,按照步驟5中的方法對每一個目標(biāo)搜索區(qū)域提取卷積特征圖并計(jì)算目標(biāo)置信圖,可以得到j(luò)個目標(biāo)搜索區(qū)域上的最大響應(yīng)值。在這j個響應(yīng)值中再進(jìn)行比較,將最大的值記為dpeakk。如果dpeakk大于tpeakk,則再次更新p的坐標(biāo),將(x,y)修正為dpeakk所對應(yīng)的坐標(biāo)。并重新計(jì)算目標(biāo)尺度特征向量和目標(biāo)尺度scale(同步驟6中的計(jì)算方式)。
步驟10目標(biāo)在當(dāng)前幀最優(yōu)的位置中心確定為p,最優(yōu)尺度確定為scale。在圖像中標(biāo)示出新的目標(biāo)區(qū)域rnew,即以p為中心,寬和高分別為w×scale、h×scale的矩形框。另外,將已經(jīng)計(jì)算完成、并且能夠得到最優(yōu)目標(biāo)位置中心p的卷積特征圖簡記為ztarget;同樣,將能夠得到最優(yōu)目標(biāo)尺度scale的尺度特征向量簡記為zscale。
步驟11利用ztarget、zscale,以及上一幀建立的跟蹤模塊中的目標(biāo)模型
其中,β為步驟8計(jì)算后的學(xué)習(xí)率。
步驟12對新的目標(biāo)區(qū)域rnew提取灰度特征后得到當(dāng)前幀的目標(biāo)外觀表示矩陣ak,將ak加入到歷史目標(biāo)表示矩陣集合ahis。如果集合ahis中元素個數(shù)大于c(c設(shè)定為20),則從ahis中隨機(jī)選擇c個元素生成一個三維矩陣ck,ck(:,i)對應(yīng)的是ahis中任意一個元素(即二維矩陣ak);否則用ahis中所有元素生成矩陣ck。然后對ck進(jìn)行平均化得到二維矩陣,將這個二維矩陣作為檢測模塊新的濾波模型d,計(jì)算方法如下:
步驟13判斷是否處理完視頻中所有的圖像幀,若處理完則算法結(jié)束,否則轉(zhuǎn)步驟5繼續(xù)執(zhí)行。