最近看了兩篇 Video-based 的 ReID 文章,做下筆記簡單對比下:

第一篇CVPR2018 [1]:先對每幀的深度特徵進行 空間Attention,讓網路自主發現對分類任務更有幫助的人體parts;然後對每Part各自進行多幀 時間Attention,讓網路自動評價每幀中的parts特徵的質量好壞(如下圖最後一行 SK,網路關注的part=黑色小包包區域,對於第1幀,全被遮擋,質量權值為0)

Spatio-temporal Attention

第二篇AAAI2019 [2]:Refining Recurrent Unit (RRU) 對多幀的歷史特徵,進行時空交互提煉更新,輸出更新後的多幀特徵; Spatial-Temporal clues Integration Module (STIM) 對多幀特徵進行時空卷積整合。

不得不說,繼17年18年單幀ReID後,現在基於視頻的ReID陸陸續續火起來。什麼叫火?就是演算法不需要特別大的創新,針對視頻特性來解決單幀中難以解決的問題,最後性能超SOTA,就可以發頂會了~~哈哈,純屬娛樂,火應該定義為當下對學術界有研究意義,而對工業界產品預研方向起到作用的topic。

-----------------------------------------------------------------

Diversity Regularized Spatiotemporal Attention[1],CVPR2018

演算法流程:

1.首先類似TSN對視頻進行下採樣,得到 N 幀。

2. 對每幀進行 Multiple Spatial Attention , 得到 K 個attention於不同parts 且 part間重疊盡量少的特徵圖。

3.對每個part類別中的N個特徵圖進行 temporal attention,權值疊加。

4.最後把K個part特徵 Concat 起來,進行分類。

那麼問題來了,怎麼才能讓網路自主去關注 multiple spatial attention parts?當然可以使用輔助監督的方法,比如給定人體某些 keypoint 對應的熱圖,來讓網路刻意學對應的區域特徵。文中作者使用的是無監督的方法,訓練 multiple attention model 去關注 multiple parts,具體的網路模塊如下:

Multiple Spatial Attentions

既然每個Spatial Attention Model都是相同的架構(Conv+ReLU+Conv+Softmax),怎麼才能保證每個model訓練出來關注不同的 parts?這就是本文的 main contribution:使用 Diversity Regularization 來約束不同model出來的Attention map感受野重疊的部分盡量小,即IoU盡量小。作者發現使用 Kullback-Leibler divergence 訓練起來可能不穩定,因為有 log()項 會使Softmax出來的大部分小值更小;故最後使用 Hellinger distance 作為度量來約束,即最大化model出來的Attention maps的 Hellinger distance。

假定models個數=6,即希望關注6個不同parts (knee, hip, foot, arm, neck, waist),加上Diversity Regularization後效果如下:

Learned Spatial Attention Models

對於 Temporal Attention 也是簡單的 softmax of a linear response function 即可。

Temporal Aggregation

總結:

最後再反觀來看,文中的主思路更像是在 tracking 特定 parts 的時空特徵,而由於每幀中人的姿態不同,受遮擋程度不同,如何給時空中元素打分,就純靠網路學習得來。更進一步來說,multiple attention model+diversity regularization思想跟清華那篇PCB-RPP[3]也類似,只不過後者的 RPP 是建立在 PCB part-based預訓練的模型基礎上微調,其實就是一個6 parts 的 diversity regularization。

當然文中也有不足的地方:

1.基本上沒有使用全局特徵(person-based的),也沒有建立起parts間的關係,等於丟失了大部分有用的空間信息。

2.Temporal信息的利用只放在最後評價每幀中parts的質量,也是可惜。

-------------------------------------------------------------------

RRU+STIM[2],AAAI2019

先來一覽總框架圖:

RRU+STIM總框架圖

看圖說話,main contribution就是 RRU 和 STIM 模塊,不過後者簡直是醉了:STIM = 1x1x1卷積+3x3x3卷積+AVGpooling,等於把每幀時空refined好的特徵再進行時空聚合。

來看看RRU做了什麼:

1.由於是想設計類似RNN的 recurrent unit的結構,利用上一個時刻的輸出很有必要,故RRU的輸入為 當前幀,上一幀的 raw feature X_{i,k,t}, X_{i,k,t-1} 和上一幀的 refined feature S_{i,k,t-1}

2.使用 (X_{i,k,t}-S_{i,k,t-1}) 來模擬外觀差異,使用 (X_{i,k,t}-X_{i,k,t-1}) 來捕捉動作上下文信息,將這兩項concat一起作為 Update gate g 的輸入。

3.gate g 首先對輸入特徵進行聚合降維(過渡層),接著分別進行 channel attention 和 Spatial attention,然後將兩個attention結果進行 element-wise 相乘,過Sigmoid函數,得到對當前幀 raw feature X_{i,k,t} 的更新權重 z ,以及上一幀refined feature S_{i,k,t-1}的更新權值 1-z

4.最後更新得到當前幀的refined feature:

S_{i,k,t}=(1-z)odot S_{i,k,t-1}+zodot X_{i,k,t}

循環計算clip中每一幀的refined feature,最後把T幀特徵stack起來。

(a) RRU, (b) update gate g

文中的story講得非常細膩有趣,生動地描述了RRU設計的初衷以及與普通RNN的本質區別:

1.不同幀間的部分人體區域會遭受 遮擋/不同姿態/抖動 影響,為了更好地恢復幀內區域的丟失的信息,設計了RRU(通過參考過去幀的外觀和動作信息,來去掉雜訊和恢復丟失信息)

2.RRU通過參考過去幀時空信息來更新 frame-level feature,而傳統的RNN模塊是從temporal features來提取新特徵;即前者輸入與輸出共享同樣feature space,而後者的hidden state已經是不同的feature space。這可以應用到每個time step,來減少空間雜訊,改善特徵質量?

X為raw feature,S為RRU後refined feature

Loss function由三部分組成:

STIM後的softmax CE loss + STIM後的video-level的 triplet loss + RRU後的part-based triplet loss

實驗結果:

文中設置 T=8,即每次對8幀進行操作;有點失望,文中沒有給出超參T的對比實驗,還想看看RRU的 short-term 和 Long-term 特性如何。

RRU+STIM的ablation study

從上圖可以看到兩個有趣的點:

1.從第一個block結果可見,使用temporal信息未必能帶來性能提升,比如使用LSTM,反而性能下降了;而STIM,用3D卷積的形式,能提升性能。這跟 @高繼揚 BMVC[4]文章得出的結論神同步。

2.從第二個block結果可見,RRU中每個小模塊都對feature起著不同程度的改善作用。但是最終只加複雜RRU的性能還不如簡單STIM,可見在 top 層使用 temporal 卷積的強大威力。

與SOTA性能對比

倒數第三行的 DRSTA 就是第一篇文章[1]的結果。

可見在大規模數據集MARS下,本文的方法性能比DRSTA高了足足7個點(mAP)。。。無力吐槽的是,這文用的backbone是Inception-v3,每幀resize到299 × 299,這不好比。

總結與展望:

文中通過RRU和STIM來整合時空信息,雖然創新性不是很強,但簡潔有效,也方便大家復現。其中RRU使用歷史幀特徵來更新當前幀特徵的模塊構造,非常有啟發性,大家可以思考:如何構造對特定的任務的 RNN模塊纔是最有效的?而不是想都不想直接用 LSTM, GRU,convLSTM, convGRU來序列建模~~

--------------------------------

RRU的論文代碼鏈接如下:

https://github.com/yolomax/rru-reid?

github.com
圖標

Reference:

[1]Shuang Li et al., Diversity Regularized Spatiotemporal Attention for Video-based Person Re-identification, CVPR2018

[2]Yiheng Liu et al., Spatial and Temporal Mutual Promotion for Video-based Person Re-identification, AAAI2019

[3]Yifan Sun et al., Beyond Part Models: Person Retrieval with Refined Part Pooling, ECCV2018

[4]Jiyang Gao and Ram Nevatia, Revisiting Temporal Modeling for Video-based Person ReID,BMVC2018

推薦閱讀:

相關文章