基於2D-RNN的魯棒行人跟蹤


基於2D-RNN的魯棒行人跟蹤

讀"G.L. Masala, et.al., 2D Recurrent Neural Networks for Robust Visual Tracking of Non-Rigid Bodies, EANN 2016, CCIS 629, 18-34"筆記

首先給一些介紹Recurrent Neural Network比較好的材料:
深度循環神經網絡與LSTM模型
理解LSTM網絡
循環神經網絡
Recurrent Neural Network

需要注意的是
Recurrent Neural Network, RNN, 循環神經網絡
Recursive Neural Network, RNN, 遞歸神經網絡
許多文章這兩個都不加區分,其實還是有所不同的,見:
如何有效的區分和理解RNN循環神經網絡與遞歸神經網絡

循環神經網絡,Recurrent Neural Network,我們下面稱之為RNN,存在一個feed-back的過程,因此很適合處理序列信息,而視頻數據顯然就是典型的序列信息。
可以發現展開的RNN結構和HMM結構非常相似:

enter description here

展開的RNN結構.jpg

enter description here

HMM結構示意.jpg

所以在做跟蹤問題時,RNN可以類似於HMM分為兩個階段 predict和 update

RNN for Tracking

首先,提取目標的特征,可以時表觀、大小、位置等等,然后使用t-k到t幀中的目標預測第t幀中目標的狀態,之后使用交叉相關的方法更新t+1幀中目標的狀態

其過程如下圖:

RNN for Tracking

RNN for Tracking 框架.jpg

文中給出的簡單的RNN框架:

enter description here

RNN框架.jpg

表示輸入層數據,表示隱層輸出數據, 表示輸出層數據,context layer,即記憶層的輸出,那么

其中f是激活函數。

目標函數為:

顯然,其中是目標在t時刻真正的狀態, 是檢測出的狀態,e是目標運動停止時刻。

該網絡可以通過BP算法計算得到,

網絡規模具體設置后面介紹。

不過可以發現一點,RNN的記憶層純粹的使用上一時刻的輸出作為輸出,顯然不大合理,雖然后續使用線性組合和激活函數對該輸出做了一定的變換,但那是和第t時刻輸入一起作用的。為了更好的利用前一時刻的信息,可以對上一時刻的輸出做響應的編碼,然后再和第t時刻的輸入一起進入隱層。這種思想可以在LSTM中見到。

2D-RNN for Tracking

類似於NN->CNN, 2D-RNN相對與RNN而言,輸入數據直接時圖像,而且層與層之間不再是全鏈接的關系,而是使用類似卷積的形式,不過與CNN池化不同的是,輸入是圖像,輸出也是圖像。其結構如下圖所示:

enter description here

2D-RNN結構.jpg

至於連接區域的大小,可以通過訓練過程學習獲得。

顯然該結構的隱層輸出和輸出層輸出分別為

實驗

改論文的實驗數據來自於2012倫敦奧運會三級跳決賽的視頻錄像,其要跟蹤的就是三級跳運動員。
數據包含10段圖像序列,視頻幀率29fps,時長45s左右,圖像大小1280720(實際操作中resize to 12872),每10幀采一幀。每個目標使用50*50的方形框框定(這點我覺得誤差太大,一點都不精確)

簡單RNN: 2500輸入節點、250隱層節點、250記憶節點、2500輸出節點,3層網絡
2D- RNN: 2500輸入節點、2500隱層節點、2500記憶節點、2500輸出節點,3層網絡, k=3

在Intel CoreTM 2 DUO CPU E 8400 @ 3.00 GHz, 4GB RAM機器上使用5-folder cross validation 對比結果如下:

enter description here

RNN和2DRNN對比結果.jpg

其中 SRN 表示 Simple RNN.
連接數的計算SRN: , 2D-RNN:

可以發現連接數少了,學習時間短了許多,而且性能上2DRNN表現也稍微好一點。

下圖給出了RNN和2DRNN預測圖,圖片模糊是因為輸出的是和概率有關的位置分布。

enter description here

1478163693921.jpg

后面和其他方法的比較,就不說了,因為我覺得畢竟不是在同一個數據集上的結果,這么橫向對比意義不大。

Conclusion

  1. 2DRNN方法相對於RNN方法,利用了序列信息的同時保留了部分結構信息,使用卷積的方法,使連接參數的數目明顯減少,降低了模型訓練的復雜度。

  2. 關於性能方面,但從論文提供的數據,並沒有發現2DRNN相比與RNN提高多少。

  3. 論文中的RNN和2DRNN都僅僅使用的是三層網絡結構,可以猜想隨着層數的增加,模型性能會得到一定提高

  4. 模型沒有考慮遮擋的問題

  5. 可以對該模型進行修改,輸入不僅僅時bounding of Box,可以輸入表觀和大小、位置等信息,然后預測目標在下一幀的狀態,接着可以使用KCF進行update,應該能夠滿足實時性要求,而且通過RNN的使用可以緩解KCF中目標旋轉、縮放等局限性。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM