<style>
*, h1, h2, h3, h4, h5, h6 {
font-family: "文泉驛微米黑";
}
</style>
###### tags: `Machine Learning` `Study` `Computer Vision` `Paper`
# Deep RNN Framework for Visual Sequential Application
## Outline
- Introduction
- Challenges
- Contributions
- Method
- Context Bridge Module (CBM)
- Overlap Coherence Training Scheme
- Experiments
- Video Action Recognition and Anticipation
- Polygon-RNN on Cityscapes
- Video Future Prediction
- Conclusion
## Introduction
本論文目的在於利用 RNN 善於分析時序資訊的特性及 DNN 適合用來擷取高維資料特性,結合兩者優點並利用於影片問題。
### Challenges
想在影像問題上使用 Deep RNN,若單純堆疊 RNN 層數會遇到下列問題
1. RNN 重點考慮時序維度資料,空間資料容易被忽略。
2. 影像資料有時序資料 (Temporal Flow) 跟 空間資料 (Representation Flow),而這兩者的資料又是會互相影響的,會造成模型收斂困難。
3. 由於 RNN 需要展開與時間長度一樣的次數,因此若深度加深,會大幅影響到運算效率。
### Contributions
本論文提出了兩個設計來解決上述問題
1. Context Bridge Module (CBM)
利用兩個不同的運算單元來分別計算 Representation Flow 及 Temporal Flow (解決 2),這個 Module 中還有 Temporal Dropout(TD) 用來減少時序資料的影響 (解決 1)。
2. Overlap Coherence Training Scheme
可用來解決影像序列過長,加深 RNN 會造成運算複雜度過高的問題 (解決 3)。
## Method
### Context Bridge Module (CBM)

CBM 架構如上圖所示,藍線代表 Representation Flow,紅線代表 Temporal Flow,虛線則為 Temporal Dropout。
內部的參數如下:
\begin{align}
& R: \text{ 提取 Representation Flow 特徵使用 } ReLU(Conv(\cdot))\\
& T: \text{ 提取 Temporal Flow 特徵使用 } Sigmoid(Conv(\cdot))\\
& \zeta: \text{ 將 R, T 結果合併本論文使用 Element-wise production}\\
& o^\prime_{i, t} = R(o_{i-1, t}; \psi_i) \text{ } \psi_i\text{ 是第 i 層的參數}\\
& c_{i, t} = T(c_{i, t-1}, o_{i-1}; \phi_i) \text{ } \phi_i\text{ 是第 i 層的參數}\\
& o_{i, t} = \zeta(o^\prime_{i, t}, c_{i, t})
\end{align}
1. R 的部分是利用每個 sequence 的 frame 去做 conv2d 然後利用 ReLU 做 activation 再丟到下一層做運算,所以基本上取出特徵的方法就是單純利用 CNN。
2. T 的部分我們可以看到 c~i,t~ 是利用上一層的 c 跟 o 帶入 T 中做運算,c 是為 memory state 用來記錄上一層 rnn 得到的結果
3. 最後我們將前兩步得到的結果做點乘當作下一層 Representation Flow 的輸入。
#### Temporal Dropout (TD)
作者在 CBM 中引入 TD 目的就是為了降低複雜度,讓兩個 flow 學得更好,並且他認為在一開始給定一個較高的TD Rate,並慢慢調升 TD Rate 大幅度減少了 Backpropagation 的運算並讓模型更好的學到兩個 Flow 的資訊。 (一開始先學 Representation flow 後面再慢慢加入 temporal flow 去學)(不要讓 temporal 掌控整個結果)
#### Toy Experiment

由上圖我們可以看到有四種 case 而 R 列代表 Representation Flow, T 代表 Temporal Flow,F1~F8 分別代表第幾個 Frame。
由上圖可以清楚的看出 T 帶有偏移量,正是 Temporal Flow 被學到的證明,而 R 就是單純的當下的圖片特徵。
### Overlap Coherence Training Scheme

如上圖,正常的訓練方式就像最上面的圖一樣直接將所有的 Sequence 丟入訓練,但這種訓練方式在增加深度時會造成運算複雜度暴增,而目前常用的改進方式如第二張圖,將 Sequence 切開訓練,讓長度不要過長以減少加深深度造成的複雜度上升,但這種訓練方式卻有著矛盾點,反而會造成有些重要的 temporal information 丟失。
因此,作者提出第三張圖的方法,將 Sequence 隨機切開,但會保留一些部分重疊,作者認為這樣能讓連接部分更加平滑,有助改上第二個的缺點。
然而,這個訓練方式也有一個顯而易見的缺點,就是在訓練時,兩個重疊片段的 output 絕對不會相同,而作者也為此提出了一個改善方案, Overlap Coherence Loss。
#### Loss Function
為了解決上述缺點,作者提出 Overlap Coherence Loss 讓兩個相同的片段盡量趨於相同。
\begin{align}
& \Sigma_{i=1}^N L_r(s_i) + \lambda \Sigma_{(v, u) \in \omega} L_d(v, u)\\
& s_i \text{ 為第 i 個片段}\\
& \omega \text{ 為重複片段 output 的 pairs}\\
& L_r \text{ 代表原來任務的 loss function}\\
& L_d \text{ 代表 Overlap Coherence Loss 使用 MSE}\\
& \lambda \text{ 用來調整 Loss 的權重}
\end{align}
## Experiments
實驗部分作者使用常用的 LSTM 來做為 baseline 比對。
### Video Action Recognition and Anticipation
在動作辨識及動作預測的部分,作者分別比較單層 LSTM 與 15 層 ConvLSTM 與 CBM 的差別,還有兩者加與不加 Backbone 的差別(架構如下圖)。 其 Backbone 是利用 VGG 及 InceptionV1 在 ImageNet pretrain 好的 model。

#### Other Settings
- 取 Frame 短邊 resize 成 368 再隨機 crop 出 224 x 224 的區域
- 對區域做 color augmentation
- 每層 conv 後加上 Batch Normalization
- RNN 使用 Xavier initialization 做初始化
- 淺層 network 用 64 mini-batch,深層用 16 mini-batch
#### Results
用 VGG 當作 BackBone,在深層網路中有使用 Overlap Coherence Scheme

Use UCF-101 as Dataset

使用 17 層的 CBM 與當前做 Action Recognition 的方法做比較,Representation flow 的部分採用 ResNet-18。(Shallow 部分跟上面的準確度不一樣)

### Polygon-RNN on Cityscapes
Polygon-RNN 用來輔助標記及做 instance segmentation,利用 VGG 先提取特徵然後特徵值進入兩層的 Conv-LSTM 做運算來預測多邊形的 vertex。而這個實驗就是將 Conv-LSTM 的部分替換為 CBM 來測試效能。
Polygon-RNN++ 為 Polygon-RNN + EN(Evaluator Network) + attention + RL(Reinforcement Learning) + GGNN
IoU 指標是用來計算 Ground Truth 區域與預測出來的區域的重疊率,常用來評估預測範圍任務的模型。
#### Results

### Video Future Prediction
MCnet 是目前做 Video Future Prediction 問題 state-of-the-art 的方法,利用前 10 個 frames 預測未來的 20 個 frames,作者將其中的一層的 Conv-LSTM 替換成 15 層的 CBM。
利用 PSNR 及 SSIM 來測量預測圖片的品質。

## Conclusion
這篇論文提供了一個新的 Deep RNN 架構,解決了堆疊 RNN 的許多問題,並在跟原本的淺層 RNN 時有了顯著的提升,不論是在 action recognition, action anticipation 等問題上都有助於提升 RNN model 的效能。
{"metaMigratedAt":"2023-06-15T01:11:09.738Z","metaMigratedFrom":"Content","title":"Deep RNN Framework for Visual Sequential Application","breaks":true,"contributors":"[{\"id\":\"49e01fc8-c6f8-4503-a772-a18660fbfaa1\",\"add\":6744,\"del\":2056}]"}