本發(fā)明屬于計算機(jī)視覺中的運(yùn)動目標(biāo)跟蹤領(lǐng)域,特別涉及一種基于視頻在線學(xué)習(xí)的跟蹤方法和裝置。
背景技術(shù):
運(yùn)動目標(biāo)跟蹤是計算機(jī)視覺中的核心課題之一,也是非常具有挑戰(zhàn)性的課題。它融合了自動控制、信號處理、神經(jīng)生物學(xué)、圖像處理、模式識別、機(jī)器學(xué)習(xí)及人工智能等眾多先進(jìn)技術(shù)。運(yùn)動目標(biāo)跟蹤技術(shù)主要集中于對運(yùn)動物體的連續(xù)跟蹤,其具體來說,就是目標(biāo)提前標(biāo)明,第一幀已給出的情況下,在接下來的圖像序列中找到目標(biāo)物體的確切位置進(jìn)行標(biāo)記并反饋給系統(tǒng),以便進(jìn)行后續(xù)對視頻中的行為動作的分析和理解。
目前,處理運(yùn)動目標(biāo)跟蹤問題的算法思想有兩種,分別是生成類的算法和判別類的算法。生成類的算法通過搜索和目標(biāo)最相似的區(qū)域來處理跟蹤問題,判別類的方法將跟蹤問題變?yōu)槎诸悊栴},其核心就是訓(xùn)練出一個分類器,把目標(biāo)物體和背景中區(qū)分開。隨著機(jī)器學(xué)習(xí)的快速發(fā)展和應(yīng)用,用判別類的方法處理運(yùn)動目標(biāo)跟蹤問題取得了很多突破,得到了更廣泛的采用。在判別類方法中,大多是基于檢測機(jī)制的跟蹤算法框架,即使用目標(biāo)物體和附近的環(huán)境訓(xùn)練出一個在線的分類器,這是當(dāng)前跟蹤算法的熱點(diǎn)研究趨勢。
tld(tracking-learning-detection)算法能夠?qū)︽i定的目標(biāo)進(jìn)行不斷的學(xué)習(xí),以獲取目標(biāo)最新的外觀特征,從而及時完善跟蹤,以達(dá)到最佳的狀態(tài)。tld算法包括三部分:跟蹤器、學(xué)習(xí)模塊和檢測器;其利用跟蹤器和檢測器同時工作的思想,共同確立跟蹤目標(biāo)框,并且利用二分類的學(xué)習(xí)機(jī)制反饋給檢測器和跟蹤器,更新分類器得到較高的跟蹤效率。
現(xiàn)有tld算法中的跟蹤模塊通常使用lucas-kanada(lk)光流法,實(shí)現(xiàn)遞歸跟蹤,首先,在圖像的目標(biāo)區(qū)域中構(gòu)造距離相等的點(diǎn)集,通過lk光流法估計這些點(diǎn)的光流,如果這些點(diǎn)為圖像的特征點(diǎn)或角點(diǎn),則該方法有很高的可靠性;但若圖像區(qū)域特征較少,即目標(biāo)與背景沒有明顯區(qū)別則無法很好的實(shí)現(xiàn)跟蹤。其次,光流法是基于場景中的亮度是恒定和目標(biāo)的運(yùn)動是小而連貫的,現(xiàn)但實(shí)際中很少有滿足這種假設(shè)的場景與運(yùn)動,這就意味著當(dāng)有光照變化、背景干擾、發(fā)生遮擋,運(yùn)動目標(biāo)突然提速等快速變化時,則很容易導(dǎo)致跟蹤失敗。另外,lk光流法處理過程慢,導(dǎo)致其跟蹤速度慢,無法滿足實(shí)時性的要求。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供一種能夠適應(yīng)光暗變化,且能快速準(zhǔn)確、實(shí)時地跟蹤運(yùn)動目標(biāo)的方法及裝置。
本發(fā)明提供一種基于視頻在線學(xué)習(xí)的跟蹤方法,該方法包括如下步驟:a1.經(jīng)初始化后,將視頻幀送入檢測模塊,由檢測模塊檢測運(yùn)動目標(biāo),產(chǎn)生樣本,生成樣本集;同時,跟蹤模塊和檢測模塊并行進(jìn)行,跟蹤模塊估計運(yùn)動目標(biāo)出現(xiàn)的坐標(biāo),生成運(yùn)動軌跡;其中,跟蹤模塊包括mosse(minimumoutputsumofsquarederror)濾波器;a2.將樣本集和運(yùn)動軌跡輸入p-n學(xué)習(xí)模塊,由p-n學(xué)習(xí)模塊進(jìn)行評估和校正,把置信度最高的記為正樣本,其余作為負(fù)樣本,生成訓(xùn)練數(shù)據(jù);a3.p-n學(xué)習(xí)模塊評估得到當(dāng)前幀運(yùn)動目標(biāo)出現(xiàn)的最可信的一個位置,作為跟蹤的結(jié)果進(jìn)行跟蹤;同時p-n學(xué)習(xí)模塊利用生成的正負(fù)樣本和新坐標(biāo),反作用于跟蹤模塊和檢測模塊,更新檢測模塊的樣本集和跟蹤模塊的濾波模型。
優(yōu)選地,所述步驟a1的由檢測模塊檢測運(yùn)動目標(biāo)包括如下步驟:a11.通過前景檢測,得到運(yùn)動目標(biāo)的前景圖像塊,在前景圖像塊的區(qū)域內(nèi)用滑窗法產(chǎn)生一系列優(yōu)化的圖像塊;a12.對優(yōu)化的圖像塊提取特征,輸入到隨機(jī)蕨分類器中,產(chǎn)生正樣本,經(jīng)分類產(chǎn)生樣本集。
進(jìn)一步地優(yōu)選,所述步驟a11中前景檢測包括幀間差分法;更進(jìn)一步地優(yōu)選,所述幀間差分法為三幀差法。
進(jìn)一步地優(yōu)選,所述步驟a12中對優(yōu)化的圖像塊提取特征包括對優(yōu)化的圖像塊提取2bitbp的特征。
優(yōu)選地,所述步驟a3中的濾波模型表達(dá)為如下的公式:
ht=(1-η)ht-1+ηh*
其中,ht表示第t幀中,實(shí)際要使用的濾波模型;ht-1表示第t-1幀中實(shí)際使用的濾波模型;h*表示根據(jù)計算求得的第t幀濾波模型;η表示可控的學(xué)習(xí)率參數(shù)。
本發(fā)明還提供一種基于視頻在線學(xué)習(xí)的跟蹤裝置,包括學(xué)習(xí)模塊、檢測模塊和跟蹤模塊;所述檢測模塊用于檢測運(yùn)動目標(biāo),產(chǎn)生正樣本,生成樣本集;所述跟蹤模塊包括mosse濾波器,用于估計運(yùn)動目標(biāo)出現(xiàn)的新坐標(biāo),生成運(yùn)動軌跡;所述學(xué)習(xí)模塊采用p-n學(xué)習(xí)機(jī)制,根據(jù)輸入的樣本集和新坐標(biāo)生成訓(xùn)練數(shù)據(jù),再反作用于跟蹤模塊和檢測模塊,更新檢測模塊的樣本集和跟蹤模塊的濾波模型。
本發(fā)明的有益效果為:在跟蹤模塊中采用mosse濾波器,避免了lk光流法中矩陣的卷積和求逆運(yùn)算,而將運(yùn)算放在傅里葉域進(jìn)行,變成對應(yīng)元素之間的點(diǎn)乘,提高了處理速度和運(yùn)算效率的同時,滿足實(shí)時性的要求,保證適用性和準(zhǔn)確率。另外,mosse濾波器為相干濾波器,它不依賴于光照信息,對光照變化和噪聲不敏感,減少了光照變化等引發(fā)跟蹤失敗的幾率,更具有魯棒性。
優(yōu)選的方案還具有如下的有益效果:對mosse濾波器的更新機(jī)制進(jìn)行改進(jìn),這種更新方式能節(jié)省計算復(fù)雜度,提高運(yùn)算效率;在檢測模塊中采用效果更好的前景檢測技術(shù),得到運(yùn)動目標(biāo)的前景目標(biāo),再通過滑窗法使其可以直接在前景目標(biāo)上產(chǎn)生圖像塊,輸入進(jìn)隨機(jī)蕨分類器,使得樣本提取時不必再作窮舉搜索,極大節(jié)省運(yùn)算資源。
附圖說明
圖1為本發(fā)明實(shí)施例針對車輛的視頻跟蹤的應(yīng)用場景圖。
圖2為本發(fā)明實(shí)施例模塊框架結(jié)構(gòu)圖。
圖3為本發(fā)明實(shí)施例的學(xué)習(xí)模塊流程圖。
圖4為本發(fā)明實(shí)施例的檢測模塊流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式并對照附圖對本發(fā)明作進(jìn)一步詳細(xì)說明,應(yīng)該強(qiáng)調(diào)的是,下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。
本發(fā)明提出的基于視頻在線學(xué)習(xí)的跟蹤方法是在tld算法構(gòu)架的基礎(chǔ)上進(jìn)行改進(jìn)的方法。
單一的跟蹤模塊方法都是利用短期的跟蹤器,由于逐幀的誤差積累,產(chǎn)生目標(biāo)丟失或者漂移問題后,無法進(jìn)行實(shí)時地后續(xù)處理,一旦跟蹤失敗后,該方法就失去作用。單一的檢測模塊方法,雖然在每一幀中是獨(dú)立進(jìn)行預(yù)測目標(biāo)位置的,但需要已知樣本進(jìn)行訓(xùn)練,其速度方面根本不能滿足要求。而基于tld算法的方法,將檢測模塊、跟蹤模塊與學(xué)習(xí)模塊結(jié)合使用,能長期對運(yùn)動目標(biāo)進(jìn)行跟蹤,在跟蹤失敗后通過快速處理手段能繼續(xù)跟蹤。
本實(shí)施例提供針對車輛的基于視頻在線學(xué)習(xí)的跟蹤方法,其應(yīng)用場景如圖1所示,該方法包括如下步驟:a1.經(jīng)初始化后,將視頻幀送入檢測模塊,由檢測模塊檢測運(yùn)動目標(biāo),產(chǎn)生樣本,生成樣本集;同時,跟蹤模塊并行進(jìn)行,跟蹤模塊估計運(yùn)動目標(biāo)出現(xiàn)的坐標(biāo),生成運(yùn)動軌跡;其中,跟蹤模塊包括mosse(minimumoutputsumofsquarederror)濾波器;a2.將樣本集和運(yùn)動軌跡輸入p-n學(xué)習(xí)模塊,由p-n學(xué)習(xí)模塊進(jìn)行評估和校正,把置信度最高的記為正樣本,其余作為負(fù)樣本,生成訓(xùn)練數(shù)據(jù);a3.p-n學(xué)習(xí)模塊評估得到當(dāng)前幀運(yùn)動目標(biāo)出現(xiàn)的最可信的一個位置,作為跟蹤的結(jié)果進(jìn)行跟蹤;同時p-n學(xué)習(xí)模塊利用生成的正負(fù)樣本和新坐標(biāo),反作用于跟蹤模塊和檢測模塊,更新檢測模塊的樣本集和跟蹤模塊的濾波模型。
基于該方法的跟蹤裝置,包括學(xué)習(xí)模塊、檢測模塊和跟蹤模塊,其模塊框架圖如圖2所示。
學(xué)習(xí)模塊
學(xué)習(xí)模塊是運(yùn)動目標(biāo)跟蹤算法的大腦,采用tld算法中的p-n學(xué)習(xí)機(jī)制,學(xué)習(xí)模塊包括四個部分:(1)樣本集:已標(biāo)記的樣本,包括正樣本和負(fù)樣本;(2)迭代訓(xùn)練:從訓(xùn)練樣本集中訓(xùn)練分類器的方法,(3)p-nexperts:在學(xué)習(xí)過程中用于產(chǎn)生正樣本和負(fù)樣本的表達(dá)函數(shù);(4)待學(xué)習(xí)的分類器。
學(xué)習(xí)模塊使用p-n學(xué)習(xí)機(jī)制的步驟包括:(1)利用已標(biāo)記的樣本訓(xùn)練出一個初始分類器。(2)利用訓(xùn)練得到的初始分類器,對所有未標(biāo)記的樣本進(jìn)行分類,標(biāo)記為正樣本和負(fù)樣本;(3)用p-nexperts對那些標(biāo)記與條件約束相違背的樣本進(jìn)行重新標(biāo)記,p-expert識別被誤檢為負(fù)樣本的樣本集,n-expert確認(rèn)出被誤檢為負(fù)樣本的樣本集,重新添加到訓(xùn)練樣本集當(dāng)中。p-expert利用時間上的結(jié)構(gòu)性,根據(jù)跟蹤模塊預(yù)測到的運(yùn)動目標(biāo)要出現(xiàn)的位置,如果被檢測模塊判斷為負(fù)樣本,則把它糾正成樣本集;n-expert利用空間上的結(jié)構(gòu)性,分析檢測模塊和跟蹤模塊在當(dāng)前幀上給出的所有響應(yīng),選擇一個置信度最大的,將其標(biāo)記為正樣本,其它的標(biāo)記為負(fù)樣本。(4)將重新標(biāo)記的樣本加入樣本集中,重新訓(xùn)練分類器。其學(xué)習(xí)模塊的流程圖如圖3所示。
p-expert可以讓模型更加魯棒,而n-expert可以提高分類器的判別能力。經(jīng)過這樣反復(fù)的迭代訓(xùn)練,盡管存在誤差,但通過數(shù)學(xué)證明,只要錯誤率不超過0.5,分類器的性能就可以得到改善。
檢測模塊
檢測模塊用來檢測運(yùn)動目標(biāo)的各種外觀,必要時用來幫助跟蹤模塊重新初始化,避免跟蹤失敗。檢測模塊主要包括前景檢測和隨機(jī)蕨分類器兩層結(jié)構(gòu),其檢測模塊流程圖如圖4所示。
首先,輸入連續(xù)幀圖片,用三幀差法得到前景目標(biāo),即是對相鄰的三幀圖像進(jìn)行差分,通過差值圖像可以檢測出一系列連續(xù)幀的圖像中運(yùn)動物體的運(yùn)動范圍。該方法不需要建模,速度也很快,可以得到運(yùn)動目標(biāo)的前景圖像塊,在前景圖像塊的區(qū)域內(nèi)用滑窗法產(chǎn)生一系列優(yōu)化的圖像塊。其次,對這些優(yōu)化的圖像塊提取2bitbp特征,將這些樣本輸入到隨機(jī)蕨分類器中。2bitbp,就是任意取兩個點(diǎn),比較它們灰度值的大小關(guān)系,取值只有0和1,這樣就可以將特征變成0和1組成的向量。而隨機(jī)蕨分類器,它的每層節(jié)點(diǎn)使用同一種判斷準(zhǔn)則,通過對樣本特征值的判斷進(jìn)行分類,并利用很多個蕨對同一樣本進(jìn)行分類,使用投票原則,票數(shù)最大的類就作為新樣本的分類。檢測模塊最終的輸出是一系列的正負(fù)樣本。
檢測模塊的兩層結(jié)構(gòu),第一層可以減少滑窗法產(chǎn)生的無效樣本,簡化檢測模塊所耗用的運(yùn)算資源,第二層通過一個良好的分類器對樣本進(jìn)行分類。
檢測模塊中運(yùn)用前景檢測,使其可以直接在前景上產(chǎn)生圖像塊,輸入進(jìn)隨機(jī)蕨分類器,使得樣本提取時不必再作窮舉搜索,在極大節(jié)省運(yùn)算資源的同時,提高了運(yùn)算效率。
跟蹤模塊
跟蹤模塊用于一幀接一幀的跟隨目標(biāo)物體,產(chǎn)生運(yùn)動軌跡。本實(shí)施例中跟蹤模塊采用mosse濾波器,它運(yùn)用快速傅立葉變換(fft),避免了時域上的矩陣的乘法、卷積、求逆等運(yùn)算,在傅里葉域進(jìn)行對角化和對應(yīng)點(diǎn)的乘除法,極大地提高運(yùn)算效率,簡化跟蹤模塊的運(yùn)算資源,處理速度方面表現(xiàn)驚人。
mosse濾波器,它運(yùn)用信號處理中衡量兩個信號相似度的原理,通過設(shè)計出的濾波模型來求響應(yīng)輸出,既目標(biāo)所在位置。也就是說,把跟蹤模型概括為響應(yīng)輸出等于輸入圖像與濾波模型的卷積,要獲得最大的響應(yīng)輸出,關(guān)鍵是確定出合適的濾波模型。其公式表達(dá)為:
其中,f表示輸入圖像塊的矩陣,g表示相應(yīng)的輸出函數(shù)矩陣,h*表示所求濾波模型。
由于目標(biāo)模型有各種外觀的變化,模型采用一系列的訓(xùn)練樣本,多個圖像作為輸入,而模型中的訓(xùn)練輸出的形狀可以自由選擇,我們采用以輸入圖像的中心為峰值的高斯函數(shù),獲得一系列的訓(xùn)練輸出。其公式表達(dá)為:
其中,fi表示一系列訓(xùn)練輸入,gi表示相應(yīng)的訓(xùn)練輸出,h*表示所求濾波模型,即將最優(yōu)化的問題轉(zhuǎn)化為最小化平方誤差輸出和的問題。
這樣就可以計算求得濾波模型的表達(dá)式為:
但是這樣的濾波模型通過訓(xùn)練產(chǎn)生,是不變的,考慮到有遮擋,背景干擾,光照變化以及目標(biāo)物體的外形變化,需要使用一個更新模型,使濾波模型隨著幀數(shù)發(fā)生變化,適應(yīng)目標(biāo)物體的最新外觀。
在mosse濾波器中,一般使用的更新模型公式如下:
其中,a和b分別表示濾波模型的分子和分母部分,η表示可控的學(xué)習(xí)率參數(shù),i表示當(dāng)前幀數(shù)。
mosse濾波器,通過使用更新模型,在處理光線變化,快速運(yùn)動和目標(biāo)形變方面表現(xiàn)得更好。
我們對更新模型進(jìn)行改進(jìn),不再對分子分母分別進(jìn)行更新,而是在每一幀求解后進(jìn)行更新,其公式表達(dá)為:#
ht=(1-η)ht-1+ηh*公式(7)
其中,ht表示第t幀中,實(shí)際要使用的濾波模型;ht-1表示第t-1幀中實(shí)際使用的濾波模型h*表示根據(jù)公式(3)計算求得的第t幀濾波模型。這種更新模型的使用,使的對于臨近幀的圖像權(quán)重的賦予更加靈活,可以距當(dāng)前幀比較久的圖像的影響以指數(shù)形式衰減,更適合tld的框架;此外,這種更新方式,很大程度上節(jié)省了計算復(fù)雜度,提高了運(yùn)算效率。
在確定濾波模型后,我們可以將前一幀確定的運(yùn)動目標(biāo)的圖像作為下一幀的輸入,這樣一幀接一幀的找出目標(biāo)。在實(shí)際的運(yùn)算處理中,矩陣的卷積運(yùn)算都放在傅里葉域進(jìn)行,變成對應(yīng)元素之間的點(diǎn)乘,這樣極大的簡化了計算機(jī)的運(yùn)算量和運(yùn)算時間。
以上內(nèi)容是結(jié)合具體/優(yōu)選的實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,其還可以對這些已描述的實(shí)施方式做出若干替代或變型,而這些替代或變型方式都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。