【目標跟蹤】MemTrack:Learning Dynamic Memory Networks for Object Tracking
ECCV2018一篇用LSTM做tracking的文章,文章連結:MemTrack
Motivation:
作者主要是想解決基於模板匹配類演算法對目標形變的適應性問題。 典型的模板匹配演算法比如Siamese通常採用第一幀或者上一幀目標特徵作為模板。採用第一幀為模板難以適應目標的形狀變化,而直接用前一幀的目標特徵作為模板又很容易因為累積性的誤差導致跟蹤漂移。所以作者提出用一個動態記憶網路來適應目標的形態變化,同時採用LSTM網路來控制目標特徵的讀取。
Contribution
- 提出了一個動態記憶網路(dynamic memory network)來適應外觀的變化
- 提出了一個門控殘差模板學習策略(gated residual template learning)來控制最終模板的生成,能夠在初始特徵之上新增適當的特徵變化量。
Method
先來看看MemTrack的網路結構
兩個主要的模組記憶模組和LSTM模組我分別用藍色和綠色框表示了出來。記憶模組用來儲存目標的外形特徵,LSTM模組用來輸出一系列的控制訊號。整個的流程大概是:
候選區輸入 特徵提取 LSTM讀控制訊號 讀取記憶模組特徵 與原始特徵模板融合生成最終模板 模板匹配目標 邊界框迴歸 提取目標特徵 LSTM寫控制訊號 存入新的目標特徵 提取下一幀候選區
LSTM控制模組
這幅圖詳細的描述了LSTM和記憶模組的互動結構,當前幀的特徵向量 和上一幀的隱藏狀態 輸入到LSTM,輸出當前幀的隱藏狀態 ,然後用 計算一系列的控制訊號
讀控制訊號
LSTM產生讀控制訊號用來將儲存區內的不同特徵加權求和,對於儲存區 N表示儲存的feature map 的數量,每個feature map 尺寸是 , c是通道數。
LSTM通過 計算祕鑰和強度:
其中 表示對應的權值矩陣和偏移量。
用來匹配儲存區的內容, 表示生成的祕鑰的可信度。通過這兩個引數,可以求得權重
表示對應特徵 的祕鑰, 是一個餘弦函式,用來度量 和 的相似度。 表示儲存區內第 j 個特徵在t幀的加權權重。最終,可以得到模板:
寫控制訊號 當得到了新的目標時,就需要考慮更新儲存區的特徵了。對於當前幀的模板,有三種可能情況:
- 當新的模板不可靠,選擇不更新儲存區的特徵
- 當目標在當前幀外形變化不大,選擇更新儲存區特徵
- 當目標在當前幀存在很大的外形變化,選擇將當前幀的特徵儲存在一個儲存槽內。
為了解決這三種case,作者提出了一種計算寫權重的公式:
分別表示讀取的權重和分配一個新空間的權重。三個門訊號 由LSTM控制器生成:
分配權重 是這麼定義的:
其中 表示訪問向量:
表示對應特徵被讀取的頻繁程度,越大,表示該特徵與當前的目標越像,而太小,則可能會被新的特徵直接覆蓋。最終,每個槽內的特徵用以下公式更新:
表示一個擦除因子,用來控制槽內的特徵更新或者直接重寫。
殘差模板學習(Residual Template Learning)
作者提出一個殘差模板學習的策略,使得最終的模板更夠適應目標實時的變化,又不會完全受上一幀的影響而導致跟蹤漂移。
是最終的模板, 是初始模板, 是一個LSTM生成的殘差門控制引數,用來控制不同通道中模板的學習率。
Experiment
ablation study
左邊是不同components的漲點情況,右邊是不同儲存容量下的效能,在容量為8時達到飽和。
OTB2015
點不算很高,但考慮到速度(~50)和novelty,算是一個比較solid的工作。