崔家梁, 馮朝暉, 李芹, 趙紅穎
(北京大學(xué) 地球與空間科學(xué)學(xué)院, 北京 100871)
目標(biāo)跟蹤是一項(xiàng)重要的視頻處理功能.視頻目標(biāo)跟蹤主要指計(jì)算機(jī)利用視頻目標(biāo)跟蹤模型對視頻中的目標(biāo)進(jìn)行持續(xù)定位的過程.視頻目標(biāo)跟蹤算法主要包含初始化跟蹤場景和后續(xù)跟蹤兩個過程.初始化即跟蹤模型是根據(jù)一些初始信息啟動整個跟蹤的步驟.后續(xù)的跟蹤是跟蹤模型持續(xù)維持跟蹤信息,并用跟蹤信息和新的視頻內(nèi)容產(chǎn)生新的目標(biāo)位置與新的跟蹤信息的過程.
得益于基于光學(xué)的分辨率較高的視頻傳感器,理想的像素級目標(biāo)跟蹤算法從視頻中提取到的結(jié)果的定位精度將遠(yuǎn)大于全球衛(wèi)星導(dǎo)航系統(tǒng)(GNSS)獲取的結(jié)果.結(jié)合視頻目標(biāo)跟蹤與GNSS的定位方法將是解決定位精確度問題的重要途徑.但由于視頻處理硬件能力與算法的落后,現(xiàn)有的視覺目標(biāo)跟蹤算法很難直接工業(yè)化應(yīng)用,算法優(yōu)化研究迫在眉睫.
相比于圖像目標(biāo)檢測識別、圖像分類等圖像處理應(yīng)用,視頻目標(biāo)跟蹤由于同時面臨時間和空間緯度的大量數(shù)據(jù),單位時間接受到的信息量極大,冗余度極高,處理起來顯然更困難.目前的各種跟蹤方式的研究一直在追求從大量、高維的信息中提取出最有效的少量信息.深度學(xué)習(xí)技術(shù)是目前最有希望解決這一點(diǎn)的途徑.
視頻跟蹤算法可以根據(jù)獲取跟蹤目標(biāo)的方式分為產(chǎn)生式模型和判別式模型.產(chǎn)生式模型基于前一段時間的目標(biāo)狀態(tài),結(jié)合新加入的幀的視頻內(nèi)容,直接用預(yù)測模型產(chǎn)生一個新的跟蹤目標(biāo).判別式模型先利用提取特征的方法,將新幀做圖像特征提取運(yùn)算,再結(jié)合提取出的特征和之前的跟蹤結(jié)果,在提取出的特征中選擇出要跟蹤的目標(biāo).早期的跟蹤模型[1-2]大多是產(chǎn)生式模型.當(dāng)前階段由于深度學(xué)習(xí)提取特征方面的優(yōu)勢,判別式模型較為占優(yōu).
目前主流的視頻目標(biāo)跟蹤方法都是在解決矩形框跟蹤問題,即最終的輸出結(jié)果是目標(biāo)的外包矩形,并不是目標(biāo)本身的形狀.像素級(Pixel-wise)的目標(biāo)跟蹤算法需要得到一副和原圖同樣大小的圖片,并在像素級別區(qū)分目標(biāo)與背景.圖形處理領(lǐng)域已經(jīng)完成過應(yīng)用于圖像分割的像素級算法研究[3-4].近年來像素級目標(biāo)跟蹤算法也有過研究,HUA等[5]在2006年的研究使用非深度學(xué)習(xí)的傳統(tǒng)方法建模,嘗試了像素級目標(biāo)跟蹤,由于傳統(tǒng)方法的模型擬合度限制,使用了很復(fù)雜的模型也無法達(dá)到更好的普適性. SONG等[6]在2017年的研究使用深度學(xué)習(xí)的圖像分割Conv-LSTM方法建立本地模型、實(shí)現(xiàn)了像素級的跟蹤并得出了實(shí)驗(yàn)結(jié)果,但跟蹤模型較簡單,僅在單尺度下進(jìn)行了卷積.且該模型需要借助預(yù)先訓(xùn)練好的圖像分類模型才能實(shí)現(xiàn),這種遷移學(xué)習(xí)會帶來信息冗余與不穩(wěn)定,不利于工業(yè)化.
本文將提出一種像素級目標(biāo)跟蹤算法.結(jié)合圖像分割算法最新的研究成果與跟蹤算法,本文提出的算法將把多尺度思想引入跟蹤模型,獲得理論創(chuàng)新,同時實(shí)現(xiàn)端到端的訓(xùn)練嘗試,試圖得到更接近工業(yè)化的結(jié)果.
本文提出的視頻目標(biāo)跟蹤模型是一個結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的多尺度模型.其中CNN處理空間維度,RNN處理時間維度.CNN與RNN結(jié)合成CRNN單元進(jìn)行時空處理,處理空間維度的CNN結(jié)構(gòu)大致如圖1所示.
圖1 基于CNN和RNN的像素級跟蹤模型的空間尺度處理
本模型的輸入是視頻,實(shí)際上是一幀幀圖像組成的圖像序列.本模型的輸出是像素級的跟蹤結(jié)果,即一幀幀黑白圖像序列,高亮部分代表跟蹤目標(biāo).由于使用了濾波方法處理圖像,本模型會丟失一少部分圖像邊緣信息,得到結(jié)果的圖幅會比輸入小一些.
本模型在跟蹤過程中需要用RNN結(jié)構(gòu)保存并維護(hù)一定的跟蹤信息,這些信息蘊(yùn)含著跟蹤目標(biāo)一直以來的狀態(tài).后續(xù)的跟蹤過程需要根據(jù)這些信息進(jìn)行.
判別式模型由于需要依賴一個并非以最終的跟蹤為目的目標(biāo)生成階段,其最終效果不得不依賴特征提取或目標(biāo)檢測等一些技術(shù)手段,實(shí)現(xiàn)方法將很復(fù)雜,效果也將打折扣.本模型試圖嘗試一種產(chǎn)生式跟蹤方法,直接根據(jù)輸入視頻得到跟蹤目標(biāo),避免過多中間步驟.
單幀圖片即空間維度的處理,本模型使用深度學(xué)習(xí)中處理圖像的手段CNN.在CNN結(jié)構(gòu)中,本文模型參考了圖像分割的U-Net的做法[3],運(yùn)用加密-解碼思想.該思想為了得到最終與原圖大小相同的圖片設(shè)計(jì)了加密、解碼階段:在加密階段,將‘CNN處理>降采樣’的模塊重復(fù)多次,每次處理后得到的信息更加宏觀,細(xì)節(jié)更少.在解碼階段,將‘升采樣,拼接>CNN處理’的模塊重復(fù)和解碼階段相同的次數(shù).其中升采樣部分?jǐn)y帶宏觀信息,拼接部分?jǐn)y帶微觀信息,結(jié)合后得到綜合宏觀信息和微觀信息的結(jié)果.另外,為了更好地獲取與利用全局信息,本模型除了加密-解碼結(jié)構(gòu)還有一個CNN+LSTM&FC結(jié)構(gòu),直接用多級CNN提取特征以描述全局信息,具體結(jié)構(gòu)如圖2所示.
圖2 CNN+LSTM&FC結(jié)構(gòu)
本模型使用RNN處理時間維度,并存儲跟蹤信息.本模型使用的RNN結(jié)構(gòu)是長短時記憶(LSTM)結(jié)構(gòu)[7],該結(jié)構(gòu)是使用基于遺忘設(shè)計(jì)的用于語義處理的結(jié)構(gòu),同樣適用于視頻目標(biāo)跟蹤.實(shí)際應(yīng)用時根據(jù)效果也可嘗試替換成GRU或普通RNN.不同于以往的先用CNN處理空間維度,再用RNN處理得到信息的跟蹤模型,本文的RNN被插入了CNN的每個階段.在加密-解碼過程的每一個重復(fù)單元,CNN得到的結(jié)果都將進(jìn)行RNN處理.即存在多個RNN,每個RNN處理加密-解碼的某一個階段,如小尺度加密的信息.淺層的RNN處理細(xì)節(jié),并記錄視頻細(xì)節(jié)隨時間的變化.深層的RNN與CNN+LSTM&FC處理宏觀信息,記錄整個視野的情況與變化.每個插入RNN的處理單元稱為CRNN,用相同參數(shù)的RNN對圖像每個像元進(jìn)行處理.該插入結(jié)構(gòu)是本模型實(shí)現(xiàn)多尺度理論突破的關(guān)鍵.
跟蹤信息指在跟蹤系統(tǒng)處理了一些幀后,其保留在系統(tǒng)內(nèi)部的,將在處理接下來的幀的過程中用到的信息.跟蹤信息的物理含義是跟蹤目標(biāo)與環(huán)境在這一時刻的狀態(tài).
主流的非深度學(xué)習(xí)的跟蹤算法一般會規(guī)定一些跟蹤信息的形式,如平移、仿射等.本模型的跟蹤信息將完全存儲在RNN的狀態(tài)向量中.與傳統(tǒng)研究不同的是,這樣直接存儲在RNN的狀態(tài)向量中的存儲方式不需要人為定義跟蹤目標(biāo)與環(huán)境所處狀態(tài),避免了人為考慮導(dǎo)致的稀疏表達(dá)問題.由于存在多級加密-解碼結(jié)構(gòu),加密與解碼中的每一級都將記錄一個跟蹤信息.這個跟蹤信息的存在形式是一個多波段的圖像,圖像的大小跟級別深度成正比.在較深的層級,一個像素可能代表著之前很大的一片區(qū)域的信息.CONV-FC&LSTM結(jié)構(gòu)的跟蹤信息則代表最為全局的信息.
初始化是目標(biāo)跟蹤中的一個重要步驟,是跟蹤模型根據(jù)一個初始的內(nèi)容開啟整個跟蹤的過程.初始化將根據(jù)一些初始條件獲取最初的跟蹤信息.本模型跟蹤信息的初始化使用第一幀圖像和第一幀的標(biāo)記作為輸入,用一個靜態(tài)的多層CNN進(jìn)行算法處理.處理結(jié)構(gòu)大致如圖3所示.該網(wǎng)絡(luò)的參數(shù)將在訓(xùn)練跟蹤模型時通過聯(lián)合訓(xùn)練得到.由于結(jié)構(gòu)接近,這種初始化方法將適配后續(xù)的跟蹤算法.
圖3 時間維度的處理
1.1節(jié)中已介紹過,本模型的輸出將是一系列黑白圖像組成的視頻,高亮區(qū)域代表目標(biāo).該結(jié)果實(shí)際是Sigmoid層[8]得到的(圖1中有標(biāo)識),該層將像素級的多波段卷積結(jié)果先線性組合成單波段結(jié)果,再用Sigmoid函數(shù)轉(zhuǎn)化成(0,1)之間的結(jié)果.每個像素的結(jié)果代表該像素是目標(biāo)的概率,實(shí)際跟蹤應(yīng)用中可以選擇一個閾值,認(rèn)為大于該閾值的區(qū)域是目標(biāo).后續(xù)的結(jié)果展示中,跟蹤結(jié)果將以概率圖的形式展示.
本研究在設(shè)計(jì)出模型后,對所提出模型進(jìn)行了實(shí)現(xiàn)與實(shí)驗(yàn).整個實(shí)驗(yàn)過程包括數(shù)據(jù)準(zhǔn)備、模型程序編寫、模型訓(xùn)練、測試、結(jié)果評估.
本文使用VOT2016公開的像素級別跟蹤數(shù)據(jù)集[9]作為訓(xùn)練、測試數(shù)據(jù).VOT2016的像素級別數(shù)據(jù)包括60個視頻序列,包括20 000多張圖片組成的幾個序列.實(shí)際使用過程中,由于本模型每次訓(xùn)練的序列較短,60個視頻序列會被切成更多的序列使用.
本實(shí)驗(yàn)需要先對彩色圖片進(jìn)行歸一化,將彩色圖片三個波段的(0,255)范圍內(nèi)的輸入值分別歸一化到(0,1)的區(qū)間.本文使用的是直接線性拉伸歸一化方法.本實(shí)驗(yàn)使用的訓(xùn)練與測試數(shù)據(jù)均需要進(jìn)行目標(biāo)標(biāo)記.這里使用1和0分別標(biāo)記目標(biāo)區(qū)域和非目標(biāo)區(qū)域.目標(biāo)標(biāo)記得到的二值標(biāo)簽視頻將用于訓(xùn)練和測試.
為了保證實(shí)驗(yàn)效率,防止內(nèi)存溢出,本實(shí)驗(yàn)實(shí)際執(zhí)行時還將較大的圖片進(jìn)行降采樣壓縮.實(shí)際執(zhí)行中將所有的圖片分辨率壓縮至128×128.
本實(shí)驗(yàn)在Tensorflow平臺[10]上進(jìn)行,使用Python語言作為主要編程語言.本實(shí)驗(yàn)的模型訓(xùn)練與評估主要在一臺配置著24 GB內(nèi)存,GTX1070圖形處理器,英特爾i7中央處理器的普通筆記本電腦上進(jìn)行.
本實(shí)驗(yàn)使用隨機(jī)正交初始化模型的參數(shù).需要注意的是,將神經(jīng)網(wǎng)絡(luò)參數(shù)初始化為0會導(dǎo)致后續(xù)無法訓(xùn)練,而普通的隨機(jī)初始化會導(dǎo)致訓(xùn)練效果不穩(wěn)定.本文實(shí)驗(yàn)將神經(jīng)網(wǎng)絡(luò)參數(shù)中的w初始化到中心為0的正態(tài)分布后,將輸入進(jìn)行類似尺度的歸一化以利于得到全局統(tǒng)一的梯度.本文提出的深度神經(jīng)網(wǎng)絡(luò)將使用Adam訓(xùn)練方法訓(xùn)練.實(shí)際上各種訓(xùn)練方法在表現(xiàn)上區(qū)別不大.本文使用GPU進(jìn)行深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練.但由于本文使用的方法需要大量地將不同尺度圖像進(jìn)行拼接操作,GPU的提升并不明顯.
本模型的訓(xùn)練目標(biāo)是最小化得到的概率圖與標(biāo)記的對數(shù)損失.由于數(shù)據(jù)集中跟蹤目標(biāo)較小而背景較大,為防止數(shù)據(jù)嚴(yán)重偏斜導(dǎo)致的擬合失敗,本實(shí)驗(yàn)取對數(shù)損失時在背景像素上乘了較小的權(quán)重,使所有背景和目標(biāo)的權(quán)重基本相當(dāng).
本實(shí)驗(yàn)訓(xùn)練與評估過程中對數(shù)據(jù)的使用如圖4所示,將數(shù)據(jù)切分為訓(xùn)練集與測試集,用相同的結(jié)構(gòu)先訓(xùn)練,再測試.
圖4 跟蹤模型訓(xùn)練與評估
由于像素級的目標(biāo)跟蹤研究較少,對于跟蹤結(jié)果的評估暫未形成統(tǒng)一、權(quán)威的指標(biāo).本實(shí)驗(yàn)采用了二分類問題的評價指標(biāo)-AUC作為評價跟蹤結(jié)果的指標(biāo).AUC的物理含義即模型認(rèn)為一個正例(目標(biāo))比一個負(fù)例(背景)更像目標(biāo)的概率.AUC是結(jié)合了精確率和準(zhǔn)確率的一種評價指標(biāo),適合本實(shí)驗(yàn)這樣的樣本偏斜的二分類題.
經(jīng)過實(shí)驗(yàn)測試,本算法在VOT2016數(shù)據(jù)集的各個數(shù)據(jù)序列上都實(shí)現(xiàn)了基本的跟蹤.在某些數(shù)據(jù)序列,如bag數(shù)據(jù)序列,如圖5所示,算法近乎完美地實(shí)現(xiàn)了像素級跟蹤.但由于部分?jǐn)?shù)據(jù)序列場景較復(fù)雜,如圖6所示的tiger序列的預(yù)測AUC在80%左右,這意味著大約只有80%概率認(rèn)為目標(biāo)像素相比于背景更像目標(biāo).更多的序列預(yù)測統(tǒng)計(jì)結(jié)構(gòu)如圖7所示,總體上本模型還是實(shí)現(xiàn)了跟蹤基本的形態(tài).
圖5 跟蹤結(jié)果1: VOT2016的bag序列
本文提出了一種基于CNN和RNN 的像素級目標(biāo)跟蹤模型.為避免判別式模型的繁瑣過程,我們直接采用了產(chǎn)生式模型思想.為了描述復(fù)雜的蘊(yùn)含幾何變化的跟蹤信息,采用了深度學(xué)習(xí)向量表示法.為了獲取多尺度跟蹤結(jié)果,采用了加密、解碼結(jié)構(gòu)實(shí)現(xiàn)宏觀、細(xì)節(jié)的處理.由于像素級別目標(biāo)跟蹤問題本身的難度,本實(shí)驗(yàn)得到的結(jié)果不是完美.相比于SONF等在2017年的研究,本研究提出的模型進(jìn)一步探究了多尺度下Conv-LSTM的表現(xiàn),并能進(jìn)行端到端的訓(xùn)練,直接得到跟蹤目標(biāo)的概率圖,為后續(xù)的像素級研究與應(yīng)用提供了基礎(chǔ).