崔家梁, 馮朝暉, 李芹, 趙紅穎
(北京大學 地球與空間科學學院, 北京 100871)
目標跟蹤是一項重要的視頻處理功能.視頻目標跟蹤主要指計算機利用視頻目標跟蹤模型對視頻中的目標進行持續定位的過程.視頻目標跟蹤算法主要包含初始化跟蹤場景和后續跟蹤兩個過程.初始化即跟蹤模型是根據一些初始信息啟動整個跟蹤的步驟.后續的跟蹤是跟蹤模型持續維持跟蹤信息,并用跟蹤信息和新的視頻內容產生新的目標位置與新的跟蹤信息的過程.
得益于基于光學的分辨率較高的視頻傳感器,理想的像素級目標跟蹤算法從視頻中提取到的結果的定位精度將遠大于全球衛星導航系統(GNSS)獲取的結果.結合視頻目標跟蹤與GNSS的定位方法將是解決定位精確度問題的重要途徑.但由于視頻處理硬件能力與算法的落后,現有的視覺目標跟蹤算法很難直接工業化應用,算法優化研究迫在眉睫.
相比于圖像目標檢測識別、圖像分類等圖像處理應用,視頻目標跟蹤由于同時面臨時間和空間緯度的大量數據,單位時間接受到的信息量極大,冗余度極高,處理起來顯然更困難.目前的各種跟蹤方式的研究一直在追求從大量、高維的信息中提取出最有效的少量信息.深度學習技術是目前最有希望解決這一點的途徑.
視頻跟蹤算法可以根據獲取跟蹤目標的方式分為產生式模型和判別式模型.產生式模型基于前一段時間的目標狀態,結合新加入的幀的視頻內容,直接用預測模型產生一個新的跟蹤目標.判別式模型先利用提取特征的方法,將新幀做圖像特征提取運算,再結合提取出的特征和之前的跟蹤結果,在提取出的特征中選擇出要跟蹤的目標.早期的跟蹤模型[1-2]大多是產生式模型.當前階段由于深度學習提取特征方面的優勢,判別式模型較為占優.
目前主流的視頻目標跟蹤方法都是在解決矩形框跟蹤問題,即最終的輸出結果是目標的外包矩形,并不是目標本身的形狀.像素級(Pixel-wise)的目標跟蹤算法需要得到一副和原圖同樣大小的圖片,并在像素級別區分目標與背景.圖形處理領域已經完成過應用于圖像分割的像素級算法研究[3-4].近年來像素級目標跟蹤算法也有過研究,HUA等[5]在2006年的研究使用非深度學習的傳統方法建模,嘗試了像素級目標跟蹤,由于傳統方法的模型擬合度限制,使用了很復雜的模型也無法達到更好的普適性. SONG等[6]在2017年的研究使用深度學習的圖像分割Conv-LSTM方法建立本地模型、實現了像素級的跟蹤并得出了實驗結果,但跟蹤模型較簡單,僅在單尺度下進行了卷積.且該模型需要借助預先訓練好的圖像分類模型才能實現,這種遷移學習會帶來信息冗余與不穩定,不利于工業化.
本文將提出一種像素級目標跟蹤算法.結合圖像分割算法最新的研究成果與跟蹤算法,本文提出的算法將把多尺度思想引入跟蹤模型,獲得理論創新,同時實現端到端的訓練嘗試,試圖得到更接近工業化的結果.
本文提出的視頻目標跟蹤模型是一個結合卷積神經網絡(CNN)和循環神經網絡(RNN)的多尺度模型.其中CNN處理空間維度,RNN處理時間維度.CNN與RNN結合成CRNN單元進行時空處理,處理空間維度的CNN結構大致如圖1所示.

圖1 基于CNN和RNN的像素級跟蹤模型的空間尺度處理
本模型的輸入是視頻,實際上是一幀幀圖像組成的圖像序列.本模型的輸出是像素級的跟蹤結果,即一幀幀黑白圖像序列,高亮部分代表跟蹤目標.由于使用了濾波方法處理圖像,本模型會丟失一少部分圖像邊緣信息,得到結果的圖幅會比輸入小一些.
本模型在跟蹤過程中需要用RNN結構保存并維護一定的跟蹤信息,這些信息蘊含著跟蹤目標一直以來的狀態.后續的跟蹤過程需要根據這些信息進行.
判別式模型由于需要依賴一個并非以最終的跟蹤為目的目標生成階段,其最終效果不得不依賴特征提取或目標檢測等一些技術手段,實現方法將很復雜,效果也將打折扣.本模型試圖嘗試一種產生式跟蹤方法,直接根據輸入視頻得到跟蹤目標,避免過多中間步驟.
單幀圖片即空間維度的處理,本模型使用深度學習中處理圖像的手段CNN.在CNN結構中,本文模型參考了圖像分割的U-Net的做法[3],運用加密-解碼思想.該思想為了得到最終與原圖大小相同的圖片設計了加密、解碼階段:在加密階段,將‘CNN處理>降采樣’的模塊重復多次,每次處理后得到的信息更加宏觀,細節更少.在解碼階段,將‘升采樣,拼接>CNN處理’的模塊重復和解碼階段相同的次數.其中升采樣部分攜帶宏觀信息,拼接部分攜帶微觀信息,結合后得到綜合宏觀信息和微觀信息的結果.另外,為了更好地獲取與利用全局信息,本模型除了加密-解碼結構還有一個CNN+LSTM&FC結構,直接用多級CNN提取特征以描述全局信息,具體結構如圖2所示.

圖2 CNN+LSTM&FC結構
本模型使用RNN處理時間維度,并存儲跟蹤信息.本模型使用的RNN結構是長短時記憶(LSTM)結構[7],該結構是使用基于遺忘設計的用于語義處理的結構,同樣適用于視頻目標跟蹤.實際應用時根據效果也可嘗試替換成GRU或普通RNN.不同于以往的先用CNN處理空間維度,再用RNN處理得到信息的跟蹤模型,本文的RNN被插入了CNN的每個階段.在加密-解碼過程的每一個重復單元,CNN得到的結果都將進行RNN處理.即存在多個RNN,每個RNN處理加密-解碼的某一個階段,如小尺度加密的信息.淺層的RNN處理細節,并記錄視頻細節隨時間的變化.深層的RNN與CNN+LSTM&FC處理宏觀信息,記錄整個視野的情況與變化.每個插入RNN的處理單元稱為CRNN,用相同參數的RNN對圖像每個像元進行處理.該插入結構是本模型實現多尺度理論突破的關鍵.
跟蹤信息指在跟蹤系統處理了一些幀后,其保留在系統內部的,將在處理接下來的幀的過程中用到的信息.跟蹤信息的物理含義是跟蹤目標與環境在這一時刻的狀態.
主流的非深度學習的跟蹤算法一般會規定一些跟蹤信息的形式,如平移、仿射等.本模型的跟蹤信息將完全存儲在RNN的狀態向量中.與傳統研究不同的是,這樣直接存儲在RNN的狀態向量中的存儲方式不需要人為定義跟蹤目標與環境所處狀態,避免了人為考慮導致的稀疏表達問題.由于存在多級加密-解碼結構,加密與解碼中的每一級都將記錄一個跟蹤信息.這個跟蹤信息的存在形式是一個多波段的圖像,圖像的大小跟級別深度成正比.在較深的層級,一個像素可能代表著之前很大的一片區域的信息.CONV-FC&LSTM結構的跟蹤信息則代表最為全局的信息.
初始化是目標跟蹤中的一個重要步驟,是跟蹤模型根據一個初始的內容開啟整個跟蹤的過程.初始化將根據一些初始條件獲取最初的跟蹤信息.本模型跟蹤信息的初始化使用第一幀圖像和第一幀的標記作為輸入,用一個靜態的多層CNN進行算法處理.處理結構大致如圖3所示.該網絡的參數將在訓練跟蹤模型時通過聯合訓練得到.由于結構接近,這種初始化方法將適配后續的跟蹤算法.

圖3 時間維度的處理
1.1節中已介紹過,本模型的輸出將是一系列黑白圖像組成的視頻,高亮區域代表目標.該結果實際是Sigmoid層[8]得到的(圖1中有標識),該層將像素級的多波段卷積結果先線性組合成單波段結果,再用Sigmoid函數轉化成(0,1)之間的結果.每個像素的結果代表該像素是目標的概率,實際跟蹤應用中可以選擇一個閾值,認為大于該閾值的區域是目標.后續的結果展示中,跟蹤結果將以概率圖的形式展示.
本研究在設計出模型后,對所提出模型進行了實現與實驗.整個實驗過程包括數據準備、模型程序編寫、模型訓練、測試、結果評估.
本文使用VOT2016公開的像素級別跟蹤數據集[9]作為訓練、測試數據.VOT2016的像素級別數據包括60個視頻序列,包括20 000多張圖片組成的幾個序列.實際使用過程中,由于本模型每次訓練的序列較短,60個視頻序列會被切成更多的序列使用.
本實驗需要先對彩色圖片進行歸一化,將彩色圖片三個波段的(0,255)范圍內的輸入值分別歸一化到(0,1)的區間.本文使用的是直接線性拉伸歸一化方法.本實驗使用的訓練與測試數據均需要進行目標標記.這里使用1和0分別標記目標區域和非目標區域.目標標記得到的二值標簽視頻將用于訓練和測試.
為了保證實驗效率,防止內存溢出,本實驗實際執行時還將較大的圖片進行降采樣壓縮.實際執行中將所有的圖片分辨率壓縮至128×128.
本實驗在Tensorflow平臺[10]上進行,使用Python語言作為主要編程語言.本實驗的模型訓練與評估主要在一臺配置著24 GB內存,GTX1070圖形處理器,英特爾i7中央處理器的普通筆記本電腦上進行.
本實驗使用隨機正交初始化模型的參數.需要注意的是,將神經網絡參數初始化為0會導致后續無法訓練,而普通的隨機初始化會導致訓練效果不穩定.本文實驗將神經網絡參數中的w初始化到中心為0的正態分布后,將輸入進行類似尺度的歸一化以利于得到全局統一的梯度.本文提出的深度神經網絡將使用Adam訓練方法訓練.實際上各種訓練方法在表現上區別不大.本文使用GPU進行深度神經網絡的訓練.但由于本文使用的方法需要大量地將不同尺度圖像進行拼接操作,GPU的提升并不明顯.
本模型的訓練目標是最小化得到的概率圖與標記的對數損失.由于數據集中跟蹤目標較小而背景較大,為防止數據嚴重偏斜導致的擬合失敗,本實驗取對數損失時在背景像素上乘了較小的權重,使所有背景和目標的權重基本相當.
本實驗訓練與評估過程中對數據的使用如圖4所示,將數據切分為訓練集與測試集,用相同的結構先訓練,再測試.

圖4 跟蹤模型訓練與評估
由于像素級的目標跟蹤研究較少,對于跟蹤結果的評估暫未形成統一、權威的指標.本實驗采用了二分類問題的評價指標-AUC作為評價跟蹤結果的指標.AUC的物理含義即模型認為一個正例(目標)比一個負例(背景)更像目標的概率.AUC是結合了精確率和準確率的一種評價指標,適合本實驗這樣的樣本偏斜的二分類題.
經過實驗測試,本算法在VOT2016數據集的各個數據序列上都實現了基本的跟蹤.在某些數據序列,如bag數據序列,如圖5所示,算法近乎完美地實現了像素級跟蹤.但由于部分數據序列場景較復雜,如圖6所示的tiger序列的預測AUC在80%左右,這意味著大約只有80%概率認為目標像素相比于背景更像目標.更多的序列預測統計結構如圖7所示,總體上本模型還是實現了跟蹤基本的形態.

圖5 跟蹤結果1: VOT2016的bag序列
本文提出了一種基于CNN和RNN 的像素級目標跟蹤模型.為避免判別式模型的繁瑣過程,我們直接采用了產生式模型思想.為了描述復雜的蘊含幾何變化的跟蹤信息,采用了深度學習向量表示法.為了獲取多尺度跟蹤結果,采用了加密、解碼結構實現宏觀、細節的處理.由于像素級別目標跟蹤問題本身的難度,本實驗得到的結果不是完美.相比于SONF等在2017年的研究,本研究提出的模型進一步探究了多尺度下Conv-LSTM的表現,并能進行端到端的訓練,直接得到跟蹤目標的概率圖,為后續的像素級研究與應用提供了基礎.