作者:ANKIT SACHAN來(lái)源:AI公園 -ronghuaiyang
導(dǎo)讀
從目標(biāo)跟蹤的應(yīng)用場(chǎng)景,底層模型,組件,類型和具體算法幾個(gè)方面對(duì)目標(biāo)跟蹤做了全方面的介紹,非常好的入門文章。
在今天的文章中,我們將深入研究視頻目標(biāo)跟蹤。我們從基礎(chǔ)開(kāi)始,了解目標(biāo)跟蹤的需求,然后了解視覺(jué)目標(biāo)跟蹤的挑戰(zhàn)和算法模型,最后,我們將介紹最流行的基于深度學(xué)習(xí)的目標(biāo)跟蹤方法,包括MDNET, GOTURN, ROLO等。本文希望你了解目標(biāo)檢測(cè)。
目標(biāo)跟蹤是在視頻中隨著時(shí)間的推移定位移動(dòng)目標(biāo)的過(guò)程。我們可以簡(jiǎn)單地問(wèn),為什么我們不能在整個(gè)視頻的每一幀中使用目標(biāo)檢測(cè),然后我們可以再去跟蹤目標(biāo)。這會(huì)有一些問(wèn)題。如果圖像有多個(gè)物體,那么我們就無(wú)法將當(dāng)前幀中的物體鏈接到前一幀中。如果你跟蹤的物體有幾幀不在鏡頭里,然后重新又出現(xiàn),我們無(wú)法知道它是否是同一物體。本質(zhì)上,在檢測(cè)過(guò)程中,我們一次只處理一張圖像,我們不知道物體的運(yùn)動(dòng)和過(guò)去的運(yùn)動(dòng),所以我們不能在視頻中唯一地跟蹤物體。目標(biāo)跟蹤在計(jì)算機(jī)視覺(jué)中有著廣泛的應(yīng)用,如監(jiān)視、人機(jī)交互、醫(yī)學(xué)成像、交通流監(jiān)測(cè)、人類活動(dòng)識(shí)別等。比如FBI想用全市的監(jiān)控?cái)z像頭追蹤一名駕車逃跑的罪犯?;蛘哂幸粋€(gè)需要分析足球比賽的體育分析軟件。或者你想在購(gòu)物中心的入口處安裝一個(gè)攝像頭,然后計(jì)算每個(gè)小時(shí)有多少人進(jìn)出,你不僅要對(duì)人進(jìn)行跟蹤,還要為每個(gè)人創(chuàng)建路徑,如下所示。
當(dāng)檢測(cè)失敗的時(shí)候,跟蹤可以接替工作
當(dāng)視頻中有一個(gè)移動(dòng)的物體時(shí),在某些情況下,物體的視覺(jué)外觀并不清楚。在所有這些情況下,檢測(cè)都會(huì)失敗而跟蹤會(huì)成功,因?yàn)樗灿形矬w的運(yùn)動(dòng)模型和歷史記錄。下面是一些例子,其中有目標(biāo)跟蹤在工作和目標(biāo)檢測(cè)失敗的情況:
- 遮擋:所述目標(biāo)被部分或完全遮擋
- 身份切換:兩個(gè)目標(biāo)交叉后,你如何知道哪個(gè)是哪個(gè)。
- 運(yùn)動(dòng)模糊:物體由于物體或相機(jī)的運(yùn)動(dòng)而被模糊。因此,從視覺(jué)上看,物體看起來(lái)不再一樣了。
- 視點(diǎn)變化:一個(gè)物體的不同視點(diǎn)在視覺(jué)上可能看起來(lái)非常不同,如果沒(méi)有上下文,僅使用視覺(jué)檢測(cè)就很難識(shí)別該物體。
- 尺度變化:物體尺度變化過(guò)大可能導(dǎo)致檢測(cè)失敗。
- 背景雜亂:目標(biāo)附近的背景與目標(biāo)有相似的顏色或紋理。因此,從背景中分離物體會(huì)變得更加困難。
- 光照變化:目標(biāo)物體附近的光照顯著改變。因此,從視覺(jué)上識(shí)別它可能會(huì)變得更加困難。
低分辨率:當(dāng)ground truth包圍框內(nèi)的像素點(diǎn)非常少時(shí),可能會(huì)在視覺(jué)上難以檢測(cè)到目標(biāo)。
底層模型
目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)中一個(gè)古老而又困難的問(wèn)題。有各種各樣的技術(shù)和算法試圖用各種不同的方式來(lái)解決這個(gè)問(wèn)題。然而,大多數(shù)的技術(shù)依賴于兩個(gè)關(guān)鍵的東西:
1. 運(yùn)動(dòng)模型
一個(gè)好的跟蹤器的關(guān)鍵部件之一是理解和建模目標(biāo)的運(yùn)動(dòng)的能力。因此,一個(gè)運(yùn)動(dòng)模型被開(kāi)發(fā)來(lái)捕捉一個(gè)物體的動(dòng)態(tài)行為。預(yù)測(cè)物體在未來(lái)幀中的潛在位置,從而減少搜索空間。然而,只有運(yùn)動(dòng)模型可能會(huì)失敗,因?yàn)槲矬w可能會(huì)不在視頻中,或者方向和速度發(fā)生突變。早期的一些方法試圖了解物體的運(yùn)動(dòng)模式并預(yù)測(cè)它。然而,這些方法的問(wèn)題是,他們不能預(yù)測(cè)突然的運(yùn)動(dòng)和方向變化。這些技術(shù)的例子有光流,卡爾曼濾波,kanad-lucas-tomashi (KLT)特征跟蹤,mean shift跟蹤。
2. 視覺(jué)外觀模型
大多數(shù)高度精確的跟蹤器需要了解他們正在跟蹤的目標(biāo)的外觀。最重要的是,他們需要學(xué)會(huì)從背景中辨別物體。在單目標(biāo)跟蹤器中,僅視覺(jué)外觀就足以跨幀跟蹤目標(biāo),而在多目標(biāo)跟蹤器中,僅視覺(jué)外觀是不夠的。
跟蹤算法的幾個(gè)組件
一般來(lái)說(shuō),目標(biāo)跟蹤過(guò)程由四個(gè)模塊組成:
1、目標(biāo)初始化:在此階段,我們需要通過(guò)在目標(biāo)周圍繪制一個(gè)邊框來(lái)定義目標(biāo)的初始狀態(tài)。我們的想法是在視頻的初始幀中繪制目標(biāo)的邊界框,跟蹤器需要估計(jì)目標(biāo)在視頻剩余幀中的位置。
2、外觀建模:現(xiàn)在需要使用學(xué)習(xí)技術(shù)學(xué)習(xí)目標(biāo)的視覺(jué)外觀。在這個(gè)階段,我們需要建模并了解物體在運(yùn)動(dòng)時(shí)的視覺(jué)特征、包括在各種視點(diǎn)、尺度、光照的情況下。
3、運(yùn)動(dòng)估計(jì):運(yùn)動(dòng)估計(jì)的目的是學(xué)習(xí)預(yù)測(cè)后續(xù)幀中目標(biāo)最有可能出現(xiàn)的區(qū)域。
4、目標(biāo)定位:運(yùn)動(dòng)估計(jì)給出了目標(biāo)可能出現(xiàn)的區(qū)域,我們使用視覺(jué)模型掃描該區(qū)域鎖定目標(biāo)的確切位置。一般來(lái)說(shuō),跟蹤算法不會(huì)嘗試學(xué)習(xí)目標(biāo)的所有變化。因此,大多數(shù)跟蹤算法都比目標(biāo)檢測(cè)快得多。
跟蹤算法的類型
1. 基于檢測(cè)與不需要檢測(cè)的跟蹤器
1.1 基于檢測(cè)的跟蹤:將連續(xù)的視頻幀給一個(gè)預(yù)先訓(xùn)練好的目標(biāo)檢測(cè)器,該檢測(cè)器給出檢測(cè)假設(shè),然后用檢測(cè)假設(shè)形成跟蹤軌跡。它更受歡迎,因?yàn)榭梢詸z測(cè)到新的目標(biāo),消失的目標(biāo)會(huì)自動(dòng)終止。在這些方法中,跟蹤器用于目標(biāo)檢測(cè)失敗的時(shí)候。在另一種方法中,目標(biāo)檢測(cè)器對(duì)每n幀運(yùn)行,其余的預(yù)測(cè)使用跟蹤器完成。這是一種非常適合長(zhǎng)時(shí)間跟蹤的方法。1.2 不需要檢測(cè)的跟蹤:不需要檢測(cè)的跟蹤需要手動(dòng)初始化第一幀中固定數(shù)量的目標(biāo)。然后在后續(xù)的幀中定位這些目標(biāo)。它不能處理新目標(biāo)出現(xiàn)在中間幀中的情況。
2. 單目標(biāo)和多目標(biāo)跟蹤器
2.1 單目標(biāo)跟蹤:即使環(huán)境中有多個(gè)目標(biāo),也只跟蹤一個(gè)目標(biāo)。要跟蹤的目標(biāo)由第一幀的初始化確定。2.2 多目標(biāo)跟蹤:對(duì)環(huán)境中存在的所有目標(biāo)進(jìn)行跟蹤。如果使用基于檢測(cè)的跟蹤器,它甚至可以跟蹤視頻中間出現(xiàn)的新目標(biāo)。
3. 在線和離線跟蹤器
3.1 離線跟蹤器:當(dāng)你需要跟蹤已記錄流中的物體時(shí),使用離線跟蹤器。例如,如果你錄制了對(duì)手球隊(duì)的足球比賽視頻,需要進(jìn)行戰(zhàn)略分析。在這種情況下,你不僅可以使用過(guò)去的幀,還可以使用未來(lái)的幀來(lái)進(jìn)行更準(zhǔn)確的跟蹤預(yù)測(cè)。3.2 在線跟蹤器:在線跟蹤器用于即時(shí)預(yù)測(cè),因此,他們不能使用未來(lái)幀來(lái)改善結(jié)果。
4. 基于學(xué)習(xí)和基于訓(xùn)練的策略
4.1 在線學(xué)習(xí)跟蹤器:這些跟蹤器通常使用初始化幀和少量后續(xù)幀來(lái)了解要跟蹤的目標(biāo)。這些跟蹤器更通用因?yàn)槟憧梢栽谌魏文繕?biāo)周圍畫(huà)一個(gè)框并跟蹤它。例如,如果你想在機(jī)場(chǎng)跟蹤一個(gè)穿紅襯衫的人,你可以在一個(gè)或幾個(gè)幀內(nèi),在這個(gè)人周圍畫(huà)一個(gè)邊界框,跟蹤器通過(guò)這些框架了解目標(biāo)物體,并繼續(xù)跟蹤那個(gè)人。
在線學(xué)習(xí)跟蹤器的核心思想是:中心的紅色方框由用戶指定,以它為正樣本,所有圍繞著目標(biāo)的方框作為負(fù)樣本,訓(xùn)練一個(gè)分類器,學(xué)習(xí)如何將目標(biāo)從背景中區(qū)分出來(lái)。
4.2 離線學(xué)習(xí)跟蹤器:這些跟蹤器的訓(xùn)練只在離線進(jìn)行。與在線學(xué)習(xí)跟蹤器不同,這些跟蹤器在運(yùn)行時(shí)不學(xué)習(xí)任何東西。這些跟蹤器在線下學(xué)習(xí)完整的概念,也就是說(shuō),我們可以訓(xùn)練跟蹤器來(lái)識(shí)別人。然后這些跟蹤器可以用來(lái)連續(xù)跟蹤視頻流中的所有人。
流行的跟蹤算法
OpenCV的跟蹤API中集成了很多傳統(tǒng)的(非深度學(xué)習(xí)的)跟蹤算法。相對(duì)而言,大多數(shù)跟蹤器都不是很準(zhǔn)確。但是,有時(shí)它們?cè)谫Y源有限的環(huán)境(如嵌入式系統(tǒng))中運(yùn)行會(huì)很有用。如果你不得不使用一個(gè),我建議使用核相關(guān)過(guò)濾器(KCF)跟蹤器。然而,在實(shí)踐中,基于深度學(xué)習(xí)的跟蹤器在準(zhǔn)確性方面遠(yuǎn)遠(yuǎn)領(lǐng)先于傳統(tǒng)跟蹤器。因此,在這篇文章中,我將討論用于構(gòu)建基于AI的跟蹤器的三種關(guān)鍵方法。
1. 基于卷積神經(jīng)網(wǎng)絡(luò)的離線訓(xùn)練跟蹤器
這是早期的一系列跟蹤器之一,它將卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別能力應(yīng)用于視覺(jué)目標(biāo)跟蹤任務(wù)。GOTURN就是一種基于卷積神經(jīng)網(wǎng)絡(luò)的離線學(xué)習(xí)跟蹤器,它根本不用在線學(xué)習(xí)。首先,跟蹤器使用成千上萬(wàn)的視頻訓(xùn)練一般目標(biāo)的跟蹤?,F(xiàn)在,這個(gè)跟蹤器可以用來(lái)毫無(wú)問(wèn)題地跟蹤大多數(shù)目標(biāo)即使這些目標(biāo)不屬于訓(xùn)練集。
GOTURN可以在GPU驅(qū)動(dòng)的機(jī)器上運(yùn)行非???,即100fps。GOTURN已經(jīng)集成到OpenCV跟蹤API(contrib部分)中。在下面的視頻鏈接中,原作者展示了GOTURN的能力。
2. 基于卷積神經(jīng)網(wǎng)絡(luò)的在線訓(xùn)練跟蹤器
這些是使用卷積神經(jīng)網(wǎng)絡(luò)的在線訓(xùn)練跟蹤器。其中一個(gè)例子就是多域網(wǎng)絡(luò)(MDNet),它是VOT2015挑戰(zhàn)賽的獲勝者。由于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練在計(jì)算上非常昂貴,所以這些方法在部署期間必須使用較小的網(wǎng)絡(luò)以快速訓(xùn)練。然而,較小的網(wǎng)絡(luò)并沒(méi)有太多的區(qū)分能力。一種選擇是我們訓(xùn)練整個(gè)網(wǎng)絡(luò),但在推理過(guò)程中,我們使用前幾層作為特征提取器,也就是說(shuō),我們只改變?cè)诰€訓(xùn)練的最后幾層的權(quán)值。因此,我們用CNN作為特征提取器,最后幾層可以快速在線訓(xùn)練。本質(zhì)上,我們的目標(biāo)是訓(xùn)練一個(gè)能區(qū)分目標(biāo)和背景的通用多域CNN。然而,這在訓(xùn)練中帶來(lái)了一個(gè)問(wèn)題,一個(gè)視頻的目標(biāo)可能是另一個(gè)視頻的背景,這只會(huì)讓我們的卷積神經(jīng)網(wǎng)絡(luò)混淆。因此,MDNet做了一些聰明的事情。它將網(wǎng)絡(luò)重新安排為兩部分:第一部分是共享部分,然后有一部分是獨(dú)立于每個(gè)域的。每個(gè)域意味著一個(gè)獨(dú)立的訓(xùn)練視頻。首先在k個(gè)域上迭代訓(xùn)練網(wǎng)絡(luò),每個(gè)域都在目標(biāo)和背景之間進(jìn)行分類。這有助于我們提取獨(dú)立于視頻的信息,以便更好地學(xué)習(xí)跟蹤器的通用表示。
經(jīng)過(guò)訓(xùn)練,去除領(lǐng)域特定的二分類層,我們得到了一個(gè)特征提取器(上文共享網(wǎng)絡(luò)),它可以以通用的方式區(qū)分任何目標(biāo)和背景。在推理(生產(chǎn))過(guò)程中,最初的共享部分被用作特征提取器,刪除特定的領(lǐng)域?qū)?,并在特征提取器之上添加二分類層。這個(gè)二分類層是在線訓(xùn)練的。在每一步中,通過(guò)隨機(jī)抽樣的方式搜索前一個(gè)目標(biāo)狀態(tài)周圍的區(qū)域來(lái)尋找目標(biāo)。MDNet是一種最精確的基于深度學(xué)習(xí)的在線訓(xùn)練,不需要檢測(cè),單目標(biāo)跟蹤。
3. 基于LSTM+ CNN的基于視頻的目標(biāo)跟蹤器
另一類目標(biāo)跟蹤器非常流行,因?yàn)樗鼈兪褂瞄L(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)來(lái)完成視覺(jué)目標(biāo)跟蹤的任。循環(huán)YOLO (ROLO)就是這樣一種單目標(biāo)、在線、基于檢測(cè)的跟蹤算法。該算法使用YOLO網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè),使用LSTM網(wǎng)絡(luò)進(jìn)行目標(biāo)軌跡檢測(cè)。LSTM與CNN的結(jié)合是厲害的,原因有二。a) LSTM網(wǎng)絡(luò)特別擅長(zhǎng)歷史模式的學(xué)習(xí),特別適合于視覺(jué)目標(biāo)跟蹤。b) LSTM網(wǎng)絡(luò)的計(jì)算成本不是很高,因此可以構(gòu)建非??焖俚恼鎸?shí)世界跟蹤器。
YOLO INPUT – 原始輸入幀
YOLO OUTPUT– 輸入幀中包圍框坐標(biāo)的特征向量
LSTM INPUT – 拼接(圖像特征,包圍框坐標(biāo))
LSTM OUTPUT– 被跟蹤目標(biāo)的包圍框坐標(biāo)上面的圖我們這樣理解:
- 輸入幀通過(guò)YOLO網(wǎng)絡(luò)。
- 從YOLO網(wǎng)絡(luò)得到兩個(gè)不同的輸出(圖像特征和邊界框坐標(biāo))
- 這兩個(gè)輸出送到LSTM網(wǎng)絡(luò)
LSTM輸出被跟蹤目標(biāo)的軌跡,即包圍框
初步的位置推斷(來(lái)自YOLO)幫助LSTM注意某些視覺(jué)元素。ROLO探索了時(shí)空上的歷史,即除了地理位置的歷史,ROLO還探索了視覺(jué)特征的歷史。即使當(dāng)YOLO的檢測(cè)是有缺陷的,比如運(yùn)動(dòng)模糊,ROLO也能保持穩(wěn)定跟蹤。此外,當(dāng)目標(biāo)物體被遮擋時(shí),這樣的跟蹤器不太會(huì)失敗。最近,有更多基于LSTM的目標(biāo)跟蹤器,它們通過(guò)許多改進(jìn)比ROLO好得多。但是,我們?cè)谶@里選擇了ROLO,因?yàn)樗?jiǎn)單且容易理解。希望這篇文章能讓你對(duì)視覺(jué)目標(biāo)跟蹤有一個(gè)很好的理解,并對(duì)一些成功的關(guān)鍵目標(biāo)跟蹤方法有一些見(jiàn)解。
英文原文:https://cv-tricks.com/object-tracking/quick-guide-mdnet-goturn-rolo/
-
視頻
+關(guān)注
關(guān)注
6文章
1949瀏覽量
73003 -
目標(biāo)跟蹤
+關(guān)注
關(guān)注
2文章
88瀏覽量
14898 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5509瀏覽量
121323
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論