本發(fā)明涉及深度學(xué)習(xí)、目標(biāo)跟蹤、目標(biāo)檢測(cè)、圖像預(yù)處理、特征表達(dá)等技術(shù),屬于計(jì)算機(jī)視覺跟蹤技術(shù)領(lǐng)域。
背景技術(shù):
視覺跟蹤任務(wù)是計(jì)算機(jī)視覺領(lǐng)域中一個(gè)非常基礎(chǔ)且重要的問題,受到越來越多的科研工作者的關(guān)注。視覺跟蹤任務(wù)的要求是對(duì)于給定的一段視頻片段,給出要跟蹤對(duì)象在視頻第一幀中的位置坐標(biāo),然后要求在隨后的視頻序列中能夠自動(dòng)的識(shí)別出要跟蹤的目標(biāo)對(duì)象,并將其在視頻中的位置標(biāo)出(用一個(gè)框框住目標(biāo))。由于要跟蹤的目標(biāo)對(duì)象的外觀受到運(yùn)動(dòng)突變、形變、遮擋、光照變化等因素帶來的影響,使得視覺跟蹤任務(wù)依然是一個(gè)很具有挑戰(zhàn)性的問題。之前的一些方法大多是利用手工提取的特征來描述目標(biāo)對(duì)象,這在一定程度上解決了一些視覺跟蹤的問題。但是由于這些手工特征是針對(duì)特定的問題而設(shè)計(jì)的,不能夠很好的提取到目標(biāo)對(duì)象的高層的語義信息,導(dǎo)致了它的泛化性能很差,而這往往會(huì)導(dǎo)致跟蹤效果不理想甚至跟蹤失敗。因此,亟需一種高效的、泛化性能好的跟蹤器來解決這些問題。
隨著近年來機(jī)器學(xué)習(xí)、深度學(xué)習(xí)技術(shù)的不斷發(fā)展,深度學(xué)習(xí)技術(shù)應(yīng)用到越來越多的計(jì)算機(jī)視覺任務(wù)中。其中卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)應(yīng)用的最為廣泛,CNN廣泛應(yīng)用在圖像分類、圖像識(shí)別、圖像分割和目標(biāo)檢測(cè)等計(jì)算機(jī)視覺領(lǐng)域,取得了不錯(cuò)的效果。CNN所表現(xiàn)出來的出色的性能歸功于它對(duì)視覺任務(wù)數(shù)據(jù)的強(qiáng)大的表達(dá)和描述能力。CNN的分層結(jié)構(gòu),使得它能夠從原始的數(shù)據(jù)中學(xué)習(xí)到目標(biāo)的不同層次的特征表達(dá),靠近底層提取到的是目標(biāo)的一些結(jié)構(gòu)化的信息,而高層提取到的是目標(biāo)的一些語義信息。這些經(jīng)過CNN提取到的特征相對(duì)于之前人們手工設(shè)計(jì)的特征具有更好的魯棒性,使得在處理計(jì)算機(jī)視覺任務(wù)上表現(xiàn)出較好的性能。
傳統(tǒng)的目標(biāo)跟蹤算法是基于產(chǎn)生式和判別式的方式。產(chǎn)生式的方式利用一個(gè)生成模型來描述目標(biāo)的外觀,然后搜索候選區(qū)域中和當(dāng)前目標(biāo)最相似的目標(biāo)。判別式的方法是建立一個(gè)區(qū)分目標(biāo)和背景的模型,它的目的是將目標(biāo)從背景中有效的區(qū)分開來。而在這兩種方法中通常使用的特征都是一些手工提取的特征,這些低層的手工特征往往對(duì)于光照變化、遮擋、形變等動(dòng)態(tài)情景是十分的不魯棒的。
技術(shù)實(shí)現(xiàn)要素:
對(duì)于單目標(biāo)跟蹤來說,首先要知道跟蹤的目標(biāo)對(duì)象是什么,有哪些特點(diǎn),然后在隨后的視頻中找到與之對(duì)應(yīng)的目標(biāo)對(duì)象。早期的基于手工特征的判別式模型只能夠提取到目標(biāo)對(duì)象的一些淺層的特征,并不能夠很好的描述目標(biāo)對(duì)象的本質(zhì)。而卷積神經(jīng)網(wǎng)絡(luò)通過一個(gè)分層的結(jié)構(gòu),可以學(xué)習(xí)到目標(biāo)對(duì)象不同層次的特征表達(dá)。底層能夠?qū)W習(xí)到目標(biāo)對(duì)象的一些結(jié)構(gòu)特征,而高層則可以學(xué)習(xí)到目標(biāo)對(duì)象的一些語義信息,而這些信息能夠很好的描述目標(biāo)對(duì)象。本發(fā)明的目的在于利用CNN強(qiáng)大的特征提取能力,提取到更加魯棒的特征,使得能夠更好的描述要跟蹤的目標(biāo)對(duì)象,然后使用一個(gè)判別式的模型,從視頻序列中把要跟蹤的目標(biāo)找出來并標(biāo)記目標(biāo)的坐標(biāo)位置,從而提高模型對(duì)于動(dòng)態(tài)情景的魯棒性。
本發(fā)明采用的技術(shù)方案為一種基于卷積神經(jīng)網(wǎng)絡(luò)的單目標(biāo)跟蹤方法。構(gòu)建并訓(xùn)練網(wǎng)絡(luò)模型;微調(diào)網(wǎng)絡(luò)模型;提取候選區(qū)域塊并計(jì)算跟蹤結(jié)果;后處理優(yōu)化跟蹤結(jié)果;更新網(wǎng)絡(luò)模型。
根據(jù)上述主要思路,本方法的具體實(shí)施包括以下幾個(gè)步驟:
(一)構(gòu)建并訓(xùn)練網(wǎng)絡(luò)模型;
步驟一:準(zhǔn)備訓(xùn)練數(shù)據(jù)集,本方法中使用的數(shù)據(jù)集包括Object Tracking Benchmark(OTB)數(shù)據(jù)集和Visual Object Tracking(VOT)數(shù)據(jù)集;
步驟二:準(zhǔn)備預(yù)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型并利用預(yù)訓(xùn)練的模型參數(shù)來初始化新構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)的模型的初始參數(shù);
步驟三:訓(xùn)練網(wǎng)絡(luò)模型。網(wǎng)絡(luò)模型參數(shù)初始化完畢之后,利用訓(xùn)練數(shù)據(jù)集訓(xùn)練整個(gè)網(wǎng)絡(luò)模型,直到網(wǎng)絡(luò)收斂;
(二)微調(diào)網(wǎng)絡(luò)模型并訓(xùn)練Bounding Box回歸模型;
步驟四:跟蹤測(cè)試時(shí),首先根據(jù)視頻第一幀圖像中的ground-truth提取正、負(fù)樣本,將正、負(fù)樣本輸入網(wǎng)絡(luò)中,微調(diào)網(wǎng)絡(luò)模型參數(shù),使其適應(yīng)當(dāng)前跟蹤的視頻序列;
步驟五:利用提取到的正樣本的卷積層特征訓(xùn)練一個(gè)針對(duì)當(dāng)前目標(biāo)的Bounding Box回歸模型,該Bounding Box回歸模型用于對(duì)跟蹤結(jié)果的精確化處理;
(三)提取候選區(qū)域塊并計(jì)算跟蹤結(jié)果;
步驟六:根據(jù)前一幀目標(biāo)所處位置的坐標(biāo)信息,以其坐標(biāo)位置為中心,根據(jù)高斯分布模型在其周圍提取適量的目標(biāo)對(duì)象候選塊;
步驟七:將提取到的目標(biāo)對(duì)象候選塊依次輸入網(wǎng)絡(luò)模型中,分別計(jì)算每一個(gè)候選塊的得分,選取得分高于預(yù)先設(shè)定閾值的候選塊作為最終的跟蹤結(jié)果,即當(dāng)前目標(biāo)所在的位置;
(四)后處理優(yōu)化跟蹤結(jié)果;
步驟八:利用步驟五中訓(xùn)練好的Bounding Box回歸模型對(duì)跟蹤結(jié)果進(jìn)行回歸操作,得到目標(biāo)更加精確的位置;
步驟九:根據(jù)當(dāng)前跟蹤的結(jié)果,根據(jù)高斯分布模型收集一定數(shù)量的正、負(fù)樣本數(shù)據(jù),收集到的正、負(fù)樣本數(shù)據(jù)用來更新網(wǎng)絡(luò)模型;
(五)更新網(wǎng)絡(luò)模型;
步驟十:利用收集到的正、負(fù)樣本數(shù)據(jù)適時(shí)、適當(dāng)?shù)馗戮W(wǎng)絡(luò)模型參數(shù),使其能夠持久的保持良好的跟蹤性能。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):
本發(fā)明方法應(yīng)用CNN來提取目標(biāo)對(duì)象的特征,使得能夠更好的表達(dá)目標(biāo),提高了目標(biāo)表述的魯棒性。在網(wǎng)絡(luò)結(jié)構(gòu)上,因?yàn)閜ooling操作的使用,會(huì)使物體丟失一些結(jié)構(gòu)上的信息,本發(fā)明將原有的pooling層的大小變得更小(kernel size 2x2),這樣能夠提高目標(biāo)定位的精度。同時(shí),本發(fā)明在跟蹤框架的基礎(chǔ)上添加了一個(gè)用于檢測(cè)目標(biāo)的模塊,在跟蹤失敗的時(shí)候,利用該模塊在當(dāng)前幀上對(duì)目標(biāo)進(jìn)行重檢測(cè),提高了跟蹤器對(duì)于遮擋等動(dòng)態(tài)情景的魯棒性,從而提高了跟蹤的準(zhǔn)確率。
附圖說明
圖1是本發(fā)明所涉及的方法的整體流程示意圖;
圖2是訓(xùn)練階段的流程圖
圖3是測(cè)試階段的流程圖
圖4是網(wǎng)絡(luò)模型的整體框架圖
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步的說明。
(一)構(gòu)建并訓(xùn)練網(wǎng)絡(luò)模型
本方法是預(yù)先利用標(biāo)注的數(shù)據(jù)集在線下預(yù)訓(xùn)練一個(gè)網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)模型的作用是將每一個(gè)輸入網(wǎng)絡(luò)的候選區(qū)域進(jìn)行特征提取、匹配,計(jì)算出每一個(gè)候選區(qū)域的得分,從而判別出輸入的候選區(qū)域哪些是目標(biāo)對(duì)象、哪些不是目標(biāo)對(duì)象。然后在實(shí)際跟蹤測(cè)試的時(shí)候,首先利用當(dāng)前跟蹤的視頻信息在線微調(diào)網(wǎng)絡(luò),使其達(dá)到能夠很好的適應(yīng)跟蹤當(dāng)前目標(biāo)的效果。
步驟一,首先準(zhǔn)備線下預(yù)訓(xùn)練網(wǎng)絡(luò)模型時(shí)要使用的數(shù)據(jù)集,本方法的測(cè)試數(shù)據(jù)集是OTB50數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集是VOT數(shù)據(jù)集。OTB是一個(gè)標(biāo)準(zhǔn)的跟蹤基準(zhǔn)數(shù)據(jù)集,它包含50個(gè)全部標(biāo)注的視頻序列,視頻的長(zhǎng)度在幾百幀到上千幀之間,這些視頻拍攝于不同的場(chǎng)景,內(nèi)容相差較大。VOT數(shù)據(jù)集是一個(gè)視覺挑戰(zhàn)賽使用的數(shù)據(jù)集,一共包含58個(gè)和OTB50中不同的視頻序列。這些視頻序列有光照變化、遮擋、形變、分辨率、運(yùn)動(dòng)模糊、快速移動(dòng)、背景干擾等不同干擾因素。
步驟二,準(zhǔn)備好訓(xùn)練數(shù)據(jù)集之后,需要構(gòu)建網(wǎng)絡(luò)模型。本方法使用的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示,它是一個(gè)含有三個(gè)卷積層和三個(gè)全連接層的卷積神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)各層的參數(shù)設(shè)置如表1中所示。首先利用在ImageNet分類數(shù)據(jù)集上預(yù)訓(xùn)練好的網(wǎng)絡(luò)模型參數(shù)對(duì)新構(gòu)建的網(wǎng)絡(luò)模型進(jìn)行參數(shù)初始化,這樣做節(jié)省網(wǎng)絡(luò)訓(xùn)練的時(shí)間,從而達(dá)到快速收斂的效果。
表1
步驟三,初始化網(wǎng)絡(luò)模型參數(shù)后,利用標(biāo)注好的VOT數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在每一幀中收集50個(gè)正樣本數(shù)據(jù)和200個(gè)負(fù)樣本數(shù)據(jù),這些樣本數(shù)據(jù)的提取規(guī)則是,當(dāng)提取的塊跟Ground-truth的重合率大于0.7的時(shí)候,認(rèn)為是正樣本數(shù)據(jù),當(dāng)提取的塊跟Ground-truth的重合率小于0.5的時(shí)候,認(rèn)為是負(fù)樣本數(shù)據(jù)。
此訓(xùn)練過程是一個(gè)分領(lǐng)域的分步訓(xùn)練,將每一段視頻序列看作是一個(gè)獨(dú)立的領(lǐng)域,用其單獨(dú)訓(xùn)練一個(gè)分類器,之后對(duì)于每一段輸入的訓(xùn)練視頻,首先重新初始化倒數(shù)第二層和最后一層的網(wǎng)絡(luò)連接參數(shù),即重新初始化一個(gè)分類節(jié)點(diǎn),然后訓(xùn)練這個(gè)對(duì)應(yīng)的分類器,使其能夠正確的區(qū)分當(dāng)前視頻序列中的目標(biāo)和背景。當(dāng)輸入的圖片中是目標(biāo)對(duì)象時(shí),網(wǎng)絡(luò)的輸出為1,當(dāng)輸入的圖片為背景時(shí),網(wǎng)絡(luò)的輸出為0。所有視頻序列一次訓(xùn)練完成算作是一個(gè)大的迭代完成。然后重復(fù)迭代訓(xùn)練,直到網(wǎng)絡(luò)收斂,本發(fā)明的實(shí)驗(yàn)中迭代訓(xùn)練100次后網(wǎng)絡(luò)收斂。
訓(xùn)練完成后,將網(wǎng)絡(luò)最后一層的所有分領(lǐng)域的分類節(jié)點(diǎn)去掉,并重新初始化一個(gè)新的二分類節(jié)點(diǎn),同時(shí)重新初始化其與前一層的連接參數(shù),保存好訓(xùn)練的網(wǎng)絡(luò)模型。
(二)微調(diào)網(wǎng)絡(luò)模型并訓(xùn)練Bounding Box回歸模型
步驟四,測(cè)試時(shí),首先加載訓(xùn)練好的模型,然后根據(jù)要跟蹤的視頻第一幀中給出的目標(biāo)對(duì)象的Ground-truth的位置坐標(biāo),利用一個(gè)高斯分布模型以該位置坐標(biāo)為中心,在其周圍提取一些正、負(fù)訓(xùn)練樣本數(shù)據(jù)集。微調(diào)網(wǎng)絡(luò)時(shí),在第一幀圖像上分別收集500個(gè)正樣本和5000個(gè)負(fù)樣本進(jìn)行微調(diào)網(wǎng)絡(luò)操作,這些樣本的提取規(guī)則是,當(dāng)提取的塊跟Ground-truth的重合率大于0.7的時(shí)候,則認(rèn)為是正樣本數(shù)據(jù),當(dāng)提取的塊跟Ground-truth的重合率小于0.3的時(shí)候,則認(rèn)為是負(fù)樣本。
測(cè)試階段微調(diào)網(wǎng)絡(luò)參數(shù)時(shí),將這些訓(xùn)練樣本數(shù)據(jù)集依次輸入網(wǎng)絡(luò)中,固定網(wǎng)絡(luò)模型的卷積層參數(shù)不動(dòng),只對(duì)網(wǎng)絡(luò)的后面三個(gè)全連接層的參數(shù)進(jìn)行微調(diào)訓(xùn)練。這個(gè)微調(diào)訓(xùn)練的目的是使該網(wǎng)絡(luò)模型能夠更好的適應(yīng)當(dāng)前跟蹤的視頻序列,即能夠很好的區(qū)分當(dāng)前視頻序列中的目標(biāo)和背景。同時(shí)在網(wǎng)絡(luò)的最后接一個(gè)檢測(cè)模塊,在跟蹤出現(xiàn)錯(cuò)誤或者目標(biāo)跟蹤丟失的時(shí)候,利用該檢測(cè)模塊對(duì)當(dāng)前幀進(jìn)行目標(biāo)重檢測(cè),重新檢測(cè)到目標(biāo),然后對(duì)目標(biāo)位置進(jìn)行重新初始化,進(jìn)而進(jìn)行準(zhǔn)確、長(zhǎng)時(shí)間的跟蹤。這個(gè)檢測(cè)模塊是基于RPN網(wǎng)絡(luò)模型在當(dāng)前幀上提取候選塊,然后將這些候選塊重新輸入網(wǎng)絡(luò)模型進(jìn)行特征提取、匹配,判別出屬于目標(biāo)對(duì)象的候選塊,然后使用這個(gè)檢測(cè)到的目標(biāo)候選塊重新初始化目標(biāo)的位置,將這個(gè)目標(biāo)的位置當(dāng)做下一幀提取候選塊的中心位置,進(jìn)行候選塊的提取。
步驟五,網(wǎng)絡(luò)微調(diào)訓(xùn)練完畢后,再利用高斯分布模型在Ground-truth的目標(biāo)周圍采取一些正樣本,本方法中使用1000個(gè)訓(xùn)練樣本,然后將這些正樣本依次輸入網(wǎng)絡(luò),提取這些正樣本的最后一個(gè)卷積層的特征,利用這些卷積層的特征訓(xùn)練一個(gè)Bounding Box回歸模型。對(duì)一幀視頻跟蹤完成后,利用預(yù)訓(xùn)練的Bounding Box回歸模型對(duì)跟蹤的結(jié)果進(jìn)行更加精細(xì)的調(diào)優(yōu),使跟蹤框能夠更加緊致的框住目標(biāo)對(duì)象,從而使跟蹤結(jié)果更加精確。
(三)提取候選區(qū)域塊并計(jì)算跟蹤結(jié)果
步驟六,根據(jù)前一幀跟蹤的結(jié)果,以前一幀視頻的跟蹤結(jié)果的坐標(biāo)位置為中心,利用高斯分布模型進(jìn)行候選塊采樣,提取一定數(shù)量的目標(biāo)候選塊。本方法中對(duì)于每一幀提取256個(gè)候選塊。由于視頻相鄰幀中的目標(biāo)對(duì)象的位置變化相對(duì)來說很小,所以,該采樣的結(jié)果基本能夠涵蓋目標(biāo)對(duì)象的可能出現(xiàn)的位置,即采樣的候選塊中包含下一幀目標(biāo)出現(xiàn)的位置。
步驟七,將上述采樣得到的目標(biāo)候選塊依次輸入網(wǎng)絡(luò)中,計(jì)算得到每一個(gè)候選塊對(duì)應(yīng)的輸出得分,然后將這些候選塊的得分按照降序的順序排列,選取得分最高的目標(biāo)候選塊,并將該目標(biāo)候選塊的得分和預(yù)先設(shè)置的閾值進(jìn)行比較,如果該得分大于預(yù)先設(shè)置的閾值0.5,則認(rèn)為目標(biāo)跟蹤正確,將對(duì)應(yīng)的目標(biāo)候選塊的位置坐標(biāo)保存在跟蹤結(jié)果中;否則,則認(rèn)為目標(biāo)跟蹤失敗,此時(shí)利用檢測(cè)模塊對(duì)該幀圖像進(jìn)行目標(biāo)重檢測(cè),利用RPN網(wǎng)絡(luò)模型在整個(gè)圖像范圍內(nèi)生成目標(biāo)候選塊,將提取的目標(biāo)候選塊依次輸入原網(wǎng)絡(luò)模型中進(jìn)行得分計(jì)算,并進(jìn)行得分比較,從而得到跟蹤的結(jié)果。
(四)后處理跟蹤結(jié)果
步驟八,對(duì)于步驟七中得到的跟蹤結(jié)果,對(duì)于能夠正確跟蹤的結(jié)果,利用步驟五中預(yù)訓(xùn)練的Bounding Box回歸模型對(duì)其進(jìn)行回歸操作,使得目標(biāo)對(duì)象候選塊的框能夠更加緊致的框住目標(biāo)對(duì)象,從而使得跟蹤的結(jié)果能夠更加精確的趨近于Ground-truth,達(dá)到精確定位跟蹤目標(biāo)的目的。當(dāng)跟蹤的結(jié)果不正確時(shí),即跟蹤結(jié)果的得分小于閾值,則不再使用Bounding Box回歸模型對(duì)跟蹤結(jié)果進(jìn)行回歸操作。
步驟九,確定成功的跟蹤結(jié)果之后,然后以該目標(biāo)的位置坐標(biāo)為中心,利用高斯分布模型在其周圍提取一定數(shù)量的正樣本和一定數(shù)量的負(fù)樣本,本方法中第一幀收集的樣本數(shù)量分別為正樣本500個(gè),負(fù)樣本5000個(gè)。其余幀中收集的樣本數(shù)量分別為正樣本50個(gè),負(fù)樣本200個(gè)。并將它們分別加入正、負(fù)樣本訓(xùn)練集中,該數(shù)據(jù)集用于對(duì)網(wǎng)絡(luò)模型的更新訓(xùn)練。
(五)更新網(wǎng)絡(luò)模型
步驟十,更新模型分為兩種更新的方式,一種是定期更新模式,一種是隨時(shí)更新模式。定期更新模式是設(shè)定一個(gè)規(guī)定的時(shí)間間隔(例如每間隔10幀),利用收集到的正、負(fù)樣本數(shù)據(jù)微調(diào)網(wǎng)絡(luò)模型,微調(diào)網(wǎng)絡(luò)時(shí)只更新網(wǎng)絡(luò)結(jié)構(gòu)的后面三個(gè)全連接層的權(quán)值參數(shù),卷積層的權(quán)值參數(shù)固定不動(dòng)。在本發(fā)明中,定期更新的時(shí)間間隔是10幀,即每個(gè)十幀更新一次網(wǎng)絡(luò)參數(shù),用到的數(shù)據(jù)集為距離當(dāng)前時(shí)刻100幀以內(nèi)所收集的樣本數(shù)據(jù)。
隨時(shí)更新模式是當(dāng)跟蹤器跟蹤目標(biāo)失敗的時(shí)候,就立即利用訓(xùn)練數(shù)據(jù)集更新網(wǎng)絡(luò)模型,更新的方式也是只更新網(wǎng)絡(luò)結(jié)構(gòu)的后面三個(gè)全連接層的權(quán)值參數(shù),卷積層的權(quán)值參數(shù)固定不變。通過網(wǎng)絡(luò)模型的更新操作,使其能夠更好的適應(yīng)當(dāng)前跟蹤的視頻序列的變化,從而達(dá)到更加魯棒的跟蹤效果。在本方法中,隨時(shí)更新用到的數(shù)據(jù)集為距離當(dāng)前時(shí)刻20幀以內(nèi)所收集的樣本數(shù)據(jù)。