【論文閱讀】Learning Spatiotemporal Features with 3D Convolutional Networks
【論文閱讀】Learning Spatiotemporal Features with 3D Convolutional Networks
這是一篇15年ICCV的論文,本篇論文提出的C3D卷積網路是3D卷積網路的里程碑,以3D卷積核為基礎的3D卷積網路從此發展起來。
論文地址:下載地址
基於pytorch的c3d模型程式碼:下載地址
簡介
文章認為一個有效的視訊描述子應該具備以下特點:
- 良好的泛化性(generic)
- 壓縮性好(compact)
- 計算效率高(efficient)
- 計算方法簡單(simple)
本文首先通過實驗說明了3D卷積網路在視訊的時空特徵提取方面是有效的,然後探索了最優的3D卷積核結構為3x3x3,提出了C3D卷積網路結構,最後在標準資料集上與其他方法做了比較。
正文
3D卷積與2D卷積的區別:
首先論文介紹了3D卷積與2D卷積的區別,如圖所示:
從上圖中可以看到,圖中省略了特徵圖的channel,所以2D卷積的結果是一張特徵圖,只包含高和寬,而3D卷積的結果是一個立方體,除了高和寬之外,還包含有時間維度。但是上圖沒有反映兩種卷積核內部的區別,我自己畫了下圖來更清晰地表達這兩種卷積核的內部結構的區別。
從上圖中可以看到,對於2D卷積核,其大小為:
,其中
表示卷積核的通道數,
和
表示卷積核的高和寬。而對於3D卷積核,其大小為:
,其中
為3D卷積核的時間長度。所以3D卷積核與2D卷積核相比,其多了時間維度的卷積。
最優的3D卷積核尺寸:
然後文章通過實驗探索了最優的3D卷積核的尺寸,因為在[1]中表明,當時
尺寸的2D卷積核取得了非常好的效果,所以文章就將3D卷積核的高和寬定位
,通過實驗探索卷積核最優的時間深度。同時作者設計了另一個實驗:為了設計能更好地組合時間資訊的3D卷積網路,作者改變3D卷積網路中不同層的卷積核的時間深度,實驗結果如下:
上圖是在UCF101上的實驗結果,首先看左圖,為探索3D卷積核時間深度的實驗結果。可以看到作者設定了4種固定尺寸的3D卷積核,分別為 , , , ,實驗表明 尺寸的卷積核取得了最優的結果。然後看右圖,作者設定3種對比的網路結構,不同層的3D卷積核的時間深度分別為時間深度不變: ,時間深度遞增: ,時間深度遞減: 。實驗結果表明當卷積網路中所有的3D卷積核的時間深度一致,尺寸都為 時,得到的效果最好。
C3D的網路結構
受到當時GPU視訊記憶體的限制,作者設計了C3D網路結構,如下圖所示:
該網路包含8個卷積層,5個池化層,2個全連線層和1個softmax輸出層。所有層的3D卷積核的尺寸為
,步長為
。第一層池化層的尺寸為
,步長為
,其餘池化層的尺寸為
,步長為
。文章認為不那麼過早地池化時間資訊,可以在早期階段保留更多的時間資訊。網路的輸入的視訊長度為16幀,輸入的視訊幀尺寸為
。
訓練細節
在sports-1M資料集上訓練時,首先從每一個視訊中隨機抽取5個2秒長的視訊段,然後視訊段的每一幀的尺寸被歸一化為 ,然後該視訊段被隨機地裁剪為 作為網路的輸入。使用了0.5機率隨機水平翻轉的資料增強的方法,使用隨機梯度下降法來優化,batch size設定為30,初始學習率為0.003,每經過150K次迭代學習率除以2,在第1.9M次迭代(大約13個epoch)的時候停止。
探索性的實驗分析
3D卷積網路的反捲積視覺化
文章首先根據[2]中提出的反捲積方法,將C3D第5層卷積層得到的feature map 反捲積視覺化,如下圖所示。
從上圖可以看到,文章認為在視訊的前幾幀,C3D主要關注的是視訊幀中的顯著性區域,在之後的幾幀中會跟蹤這些顯著變化的區域。其實[3]中也對3D卷積網路的feature map進行了反捲積視覺化,可以兩個結果對比著看。
個人目前的觀點:目前我感覺3D卷積網路對視訊中的運動變化區域敏感,但是容易受到複雜影響的干擾,所以需要大量的訓練資料使其對object的變化響應。自己的理解也可能有誤,如果你有自己的想法和觀點,歡迎一起討論。
C3D描述子
所謂的C3D描述子,就是C3D網路第一個全連線層輸出的特徵經過L2歸一化後的結果,文章對該描述子的做了實驗,表明該描述子有良好的壓縮性和泛化性。
壓縮性
作者使用PCA降維的方法對C3D描述子進行了降維,並與Imagenet特徵[4]和iDT特徵[5]做了比較,實驗結果如下圖所示。
可以發現C3D描述子還是由很好的壓縮性的,這對大規模快速視訊檢索很有幫助。
泛化性
這裡沒完全看明白,我的理解是從UCF101資料集中隨機抽取100K個視訊段,然後提取這些視訊段的Imagenet特徵和C3D特徵,對這些特徵使用t-SNE降維視覺化的方法,如下圖所示。
從上圖可以看出,C3D特徵相同類的特徵更加聚集,更容易區分,所以其泛化性更好。
其他
作者技術水平有限,可能會出現一些疏漏,如果您有任何疑問,請聯絡我。
[1] Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014).
[2] Zeiler, Matthew D., and Rob Fergus. “Visualizing and understanding convolutional networks.” In European conference on computer vision, pp. 818-833. Springer, Cham, 2014.
[3] Varol, Gül, Ivan Laptev, and Cordelia Schmid. “Long-term temporal convolutions for action recognition.” IEEE transactions on pattern analysis and machine intelligence 40, no. 6 (2018): 1510-1517.
[4]Donahue, Jeff, Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, and T. Darrell. “A deep convolutional activation feature for generic visual recognition. arXiv preprint.” arXiv preprint arXiv:1310.1531 (2013).
[5]Wang, Heng, and Cordelia Schmid. “Action recognition with improved trajectories.” In Proceedings of the IEEE international conference on computer vision, pp. 3551-3558. 2013.