<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) ![](https://i.imgur.com/JDHBICN.png =70%x70%) 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 ![](https://i.imgur.com/YKfJVyx.png =60%x60%) 由上圖我們可以看到有四種 case 而 R 列代表 Representation Flow, T 代表 Temporal Flow,F1~F8 分別代表第幾個 Frame。 由上圖可以清楚的看出 T 帶有偏移量,正是 Temporal Flow 被學到的證明,而 R 就是單純的當下的圖片特徵。 ### Overlap Coherence Training Scheme ![](https://i.imgur.com/fRmaMYi.png =60%x60%) 如上圖,正常的訓練方式就像最上面的圖一樣直接將所有的 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。 ![](https://i.imgur.com/chGnMkk.png =50%x50%) #### 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 ![](https://i.imgur.com/pC9Z4JJ.png =60%x60%) Use UCF-101 as Dataset ![](https://i.imgur.com/QHvOZcP.png =60%x60%) 使用 17 層的 CBM 與當前做 Action Recognition 的方法做比較,Representation flow 的部分採用 ResNet-18。(Shallow 部分跟上面的準確度不一樣) ![](https://i.imgur.com/TQEG7M0.png =60%x60%) ### 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 ![](https://i.imgur.com/ZPwlUvm.png =60%x60%) ### Video Future Prediction MCnet 是目前做 Video Future Prediction 問題 state-of-the-art 的方法,利用前 10 個 frames 預測未來的 20 個 frames,作者將其中的一層的 Conv-LSTM 替換成 15 層的 CBM。 利用 PSNR 及 SSIM 來測量預測圖片的品質。 ![](https://i.imgur.com/5j7qqXD.png) ## 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}]"}
    199 views