《Towards Good Practices for Very Deep Two-Stream ConvNets》閱讀筆記
作者資訊:Limin Wang, Yuanjun Xiong, Zhe Wang, Yu Qiao,
摘要
深度卷積神經網路在靜止影象的目標識別取得了巨大的成功,但是在視訊的行為識別領域,深度學習提升的效果並不是很顯著,主要的原因有兩點:
- 相對於影象識別,視訊的行為識別所使用的卷積網路結構深度太淺,因此模型的擬合能力因為深度受到限制。
- 第二點可能更為重要,主要是用於行為識別的視訊資料集規模相對於ImageNet太小,因此在訓練集上很容易導致嚴重的過擬合現象發生。
為了解決上述問題,採用了very deep two-stream網路用於行為識別,將當前流行的深度結構應用於視訊領域。但是由於視訊行為識別的規模較小,這種擴充套件並不容易。我們設計了多種實踐應用於very deep two_stream 的訓練,如下:
在時域網路和空間網路預訓練
更小的學習速率
- 更多的影象增強技術
- high drop out 係數
與此同時,將Caffe 工具箱延伸到多GPU環境,從而有更高的計算效率,更少的記憶體消耗。very deep two_stream方法在UCF-101資料集上取得了91.4%的識別精度。
1.引言
近幾年視訊片段的行為識別取得了巨大的進步,這些方法可以分為兩類:
- 人工繪製的區域性特徵和視覺詞袋錶示。
- 最成功的方法是提取 提升的軌跡特徵,並且使用Fisher vector 表示
- 採用深度卷積神經網路從原始資料中(RGB影象和光流方程)來學習視訊表示,以端到端的方式訓練識別系統。
然而,不像影象分類,深度卷積神經網路相對於傳統方法並沒有產生很好的提升效果。我們認為主要的原因有兩點:
- 行為的概念比目標更為複雜,並且與其他高層次的視覺概念相關聯,例如互動目標,場景內容,人體姿態等。因此,更加複雜的問題需要高複雜性的模型擬合能力。然而,當前two-stream卷積網路的深度相對較淺(5層卷積層,3層全連線層)。
- 相對於影象識別領域的ImageNet資料集,行為識別的視訊資料集相對規模較小。例如UCF-101資料集只有13320個視訊片段。
2.Very Deep Two-stream ConNets
2.1 網路結構
在過去幾年,提出了很多流行的網路結構,例如AlexNet,ClarifaiNet,GoogLeNet,VGGNet等等。這些網路結構特點的趨勢主要有:更小的卷積核尺寸,更小的卷積步長,更深的網路結構。這些趨勢證明了在提升識別效能上是有效的。
- GoogLeNet
代號為:Inception,其基本的思想是Hebbian 原則和多尺度處理。
每個Inception 模組是由多個不同尺度的卷積濾波器組成,這樣可以增強網路的適應能力。
1×1 1\times 1卷積操作可以進行特徵降維,從而加快計算效率。
GoogLeNet由22層的Inception模組堆疊組成,以及可選的max-pooling層將影象對比度減少一半。 - VGGNet
它是一個新的卷積神經網路結構,擁有更小的卷積尺寸(3×3 3\times3),更小的卷積步長(1×1 1\times 1),更小的下采樣視窗(2×2 2\times 2),更深的結構(19層)
VGGNet主要研究網路結構的深度對識別效能的影響。
VGGNet-16:13層卷積層,3層全連線層
VGGNet-19:16層卷積層,3層全連線層 - Very Deep Two-stream ConvNets
單幀影象(224×224×3 224\times 224 \times 3)
時域輸入為10幀光流場(224×224×20 224\times 224\times 20),因此第一層卷積濾波操作和影象分類模型不一樣
2.2網路訓練
該部分主要介紹very deep two-stream卷積網路如何在UCF-101資料集進行訓練。
UCF-101:13320 視訊,提供3中分割方式評價。每一種模式,10000個視訊用於訓練,3300個視訊用於測試。由於資料集規模較小,而且行為的內容相對複雜,所以訓練深度two-stream網路比較複雜。 Pre−trainingforTwo−streamConvNets. \color{red}{Pre-training for Two-stream ConvNets.}當訓練的資料集規模較小,預訓練在網路的初始化方面已經被證明很有效果。對於空域網路,採用ImageNet訓練的模型來初始化。對於時域網路,雖然它的輸入是光流影象,攜帶的是運動資訊,但是使用ImageNet網路模型仍然可以很好工作。
為了使ImageNet預訓練模型合理,我們在光流場和ImageNet模型上做了一些修改。
第一步,從每一個視訊提取光流場,並且通過線性變換離散化到間隔[0,255]中;
第二步,時域網路的通道數為20(空域是3),在所有通道上,對ImageNet模型濾波器的第一層求平均值,然後將結果複製20次作為時域網路的初始化值。更小的學習速率 \color{red}{更小的學習速率}
- 對於時域網路,學習速率開始為0.005,每10000次迭代下降為它的1/10,迭代30000次結束。
- 對於空域網路,學習速率開始為0.001,每4000次迭代後下降為1/10,迭代10000次結束。
學習速率共下降3次,與此同時我們發現迭代的次數更少,可能的原因在於我們使用了ImageNet模型預訓練了網路。
-更多的增強技術. \color{red}{更多的增強技術.}
研究表明,隨機裁剪和水平翻轉在防止過擬合的問題上非常有效。我們嘗試了兩種新的有效的影象增強技術用於訓練Two-stream ConvNets. - 設計了角落裁剪策略,我們只裁剪影象的4個角落和1箇中間區域。 隨機裁剪裁剪的區域容易接近影象中間區域,訓練損失下降很快,但是容易導致過擬合問題。如果我們明確地限制裁剪的區域為4個角落和中間區域,網路的輸入的變化(影象差異性較大)會增加,這種策略可以減少過擬合的影響。
- 使用多尺度的裁剪方法來訓練very deep Two-stream ConvNets.
多尺度的方法在ImageNet資料集上進行目標識別非常有效,我們將其應用到行為識別。將輸入影象的尺寸修正為256\times 340.從以下尺寸{256,224,192,168}隨機取樣裁剪寬和高,之後改變裁剪區域的尺寸為224\times 224.這種裁剪策略不僅引進了多尺度增強,同時增加了長寬比。
Highdropout系數. \color {red} {High dropout 係數.}
- 對時域網路,在全連線層,設定了較高的隨機失活係數,設定的係數為0.9和0.8。
- 對空域網路,在全連線層,設定的係數為0.9和0.9
多GPU訓練. \color{red}{多GPU訓練.}
深度學習模型應用到視訊的行為識別最大的障礙是它的長訓練時間,多幀的輸入增加了記憶體消耗來。
解決方法使用多GPU採用並行資料進行訓練,使用caffe和OpenMPI實施。
- 4GPU,3.7x faster for VGGNET-16,4x faster for GoogLeNet
- 每個GPU 4x less 記憶體消耗。
2.3網路測試
測試階段,取樣25幀影象或者光流影象分別測試空域和時域網路。
對每一個選擇的幀影象,獲取10(4個角落,1箇中間區域,以及它們的水平翻轉)個輸入。
從取樣的幀中和裁剪區域獲得最後的預測分數。
為了空域網路和時域網路的融合,對它們的預測分數採用加權求和,時域權重為2,空域權重為1.
3.實驗
- 資料集實施細節
- 在UCF-101上驗證演算法,UCF-101包含101個行為類別,每個類別至少100個視訊片段,整個資料集包括13320個視訊,每個行為類別被分為25組。
- 光流場的提取採用TDD的方法,使用TVL1光流演算法。具體地,我們使用OpenCV方案,主要因為它在精度和效率的平衡。
- 結果.
- 比較了三種不同的網路結構,ClarifaiNet,GoogLeNet,VGGNet-16.
從結果可以看出,更深的網路獲得效能更好。
在空域,VGGNet-16的效能相對於淺層網路提升了5%。
在時域,VGGNet-16的效能提升了4%。
Very deep Two-stream ConvNets 相對於原始的Two-Stream ConvNets提升了3.4%。 - 在THUMOS15驗證集上,未使用提出好的訓練方法,表現結果如下:
可以發現,在時域上,Very deep Two-stream ConvNets效果不是最好的。我們推測我們提出的方法實 踐 (practices) 在避免過擬合的問題上有很好的效果,主要的原因在於
- 使用ImageNet模型預訓練時域網路。
- 使用了更多的影象增強技術。
- 比較了三種不同的網路結構,ClarifaiNet,GoogLeNet,VGGNet-16.
Comparison.將我們的方法與最近流行的視訊行為識別方法進行了對比,結果如下:
- 首先比較了人工特徵和fisher vector表示的方法,如IDT演算法; 深度學習特徵的方法,比如軌跡池化-深度卷積描述符(TDD).我們的方法比所有的Fisher Vector都要好;
- 其次,比較我們的方法與其他深度網路的方法如DeepNet及基於迴圈神經網路的Two-stream方法。我們的方法比他們最好的方法提升了2.8%
4.結論
論文中主要提出了Very deep two-stream ConvNets方法,由於資料集規模較小,我們提出了一些好的實踐來訓練Very deep two-Stream 網路。基於這些訓練方法和技巧,Very deep two-stream ConvNets在UCF-101資料集上獲得了91.4%的精度。與此同時,我們擴充套件了Caffe 工具箱到多GPU方案中,從而獲得了更高的效率和更少的記憶體消耗。
Reference.
[1] J. Deng, W. Dong, R. Socher, L. Li, K. Li, and F. Li.
ImageNet: A large-scale hierarchical image database.
In CVPR, pages 248–255, 2009. 1
[2] A. Gorban, H. Idrees, Y.-G. Jiang, A. Roshan Zamir,
I. Laptev, M. Shah, and R. Sukthankar. THUMOS
challenge: Action recognition with a large number of
classes. http://www.thumos.info/, 2015. 3,
4
[3] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep
into rectifiers: Surpassing human-level performance
on imagenet classification. CoRR, abs/1502.01852,
2015. 3
[4] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long,
R. B. Girshick, S. Guadarrama, and T. Darrell. Caffe:
Convolutional architecture for fast feature embedding.
CoRR, abs/1408.5093. 1, 3
[5] Y.-G. Jiang, J. Liu, A. Roshan Zamir, I. Laptev,
M. Piccardi, M. Shah, and R. Sukthankar. THUMOS
challenge: Action recognition with a large number of
classes, 2013. 3
[6] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar,
and L. Fei-Fei. Large-scale video classification
with convolutional neural networks. In CVPR,
pages 1725–1732, 2014. 4
[7] A. Krizhevsky, I. Sutskever, and G. E. Hinton. ImageNet
classification with deep convolutional neural
networks. In NIPS, pages 1106–1114, 2012. 1, 2
[8] Z. Lan, M. Lin, X. Li, A. G. Hauptmann, and B. Raj.
Beyond gaussian pyramid: Multi-skip feature stacking
for action recognition. In CVPR, pages 204–212,
2015. 1, 4
[9] J. Y.-H. Ng, M. Hausknecht, S. Vijayanarasimhan,
O. Vinyals, R. Monga, and G. Toderici. Beyond short
snippets: Deep networks for video classification. In
CVPR, pages 4694–4702, 2015. 1, 4
[10] X. Peng, L. Wang, X. Wang, and Y. Qiao. Bag of
visual words and fusion methods for action recognition:
Comprehensive study and good practice. CoRR,
abs/1405.4506, 2014. 4
[11] J. S´anchez, F. Perronnin, T. Mensink, and J. J. Verbeek.
Image classification with the fisher vector: Theory
and practice. International Journal of Computer
Vision, 105(3):222–245, 2013. 1
[12] K. Simonyan and A. Zisserman. Two-stream convolutional
networks for action recognition in videos. In
NIPS, pages 568–576, 2014. 1, 2, 3, 4
[13] K. Simonyan and A. Zisserman. Very deep convolutional
networks for large-scale image recognition.
CoRR, abs/1409.1556, 2014. 1, 2, 3
[14] K. Soomro, A. R. Zamir, and M. Shah. UCF101: A
dataset of 101 human actions classes from videos in
the wild. CoRR, abs/1212.0402, 2012. 1, 3
[15] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed,
D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich.
Going deeper with convolutions. CoRR,
abs/1409.4842, 2014. 1, 2
[16] H. Wang and C. Schmid. Action recognition with improved
trajectories. In ICCV, pages 3551–3558, 2013.
1, 4
[17] L. Wang, Y. Qiao, and X. Tang. Mining motion atoms
and phrases for complex action recognition. In ICCV,
pages 2680–2687, 2013. 1
[18] L.Wang, Y. Qiao, and X. Tang. Motionlets: Mid-level
3D parts for human motion recognition. In CVPR,
pages 2674–2681, 2013. 1
[19] L. Wang, Y. Qiao, and X. Tang. Action recognition
with trajectory-pooled deep-convolutional descriptors.
In CVPR, pages 4305–4314, 2015. 1, 3, 4
[20] L. Wang, Z. Wang, Y. Xiong, and Y. Qiao.
CUHK&SIAT submission for THUMOS15 action
recognition challenge. In THUMOS’15 Action Recognition
Challenge, 2015. 3, 4
[21] C. Zach, T. Pock, and H. Bischof. A duality based approach
for realtime tv-L1 optical flow. In 29th DAGM
Symposium on Pattern Recognition, 2007. 3
[22] M. D. Zeiler and R. Fergus. Visualizing and understanding
convolutional networks. In ECCV, pages
818–833, 2014. 2
相關文章
- 《Docker Deep Dive》閱讀筆記(一)Docker筆記
- Deep Transfer Learning綜述閱讀筆記筆記
- [論文閱讀筆記] Structural Deep Network Embedding筆記Struct
- 六年級數學期中考試只考了88分, 但試卷被老師寫下:Good! very good!! very very good!!!Go
- 閱讀筆記筆記
- Spatio-Temporal Representation With Deep Neural Recurrent Network in MIMO CSI Feedback閱讀筆記筆記
- 《A Discriminative Feature Learning Approach for Deep Face Recognition》閱讀筆記APP筆記
- 【閱讀筆記:字典】筆記
- gdbOF閱讀筆記筆記
- 閱讀筆記5筆記
- 閱讀筆記4筆記
- 閱讀筆記3筆記
- 閱讀筆記2筆記
- 閱讀筆記7筆記
- 閱讀筆記03筆記
- 閱讀筆記02筆記
- 閱讀筆記8筆記
- 閱讀筆記1筆記
- 閱讀筆記(Communication-Efficient Learning of Deep Networks from Decentralized Data)筆記Zed
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- 《Clean Code》閱讀筆記筆記
- Dependencies for Graphs 閱讀筆記筆記
- javascript閱讀筆記01JavaScript筆記
- #EffectiveJava筆記#閱讀心得Java筆記
- 閱讀影片方法筆記筆記
- 《快速閱讀術》讀書筆記筆記
- JDK原始碼閱讀(5):HashTable類閱讀筆記JDK原始碼筆記
- JDK原始碼閱讀(4):HashMap類閱讀筆記JDK原始碼HashMap筆記
- JDK原始碼閱讀:String類閱讀筆記JDK原始碼筆記
- MapReduce 論文閱讀筆記筆記
- ArrayList原始碼閱讀筆記原始碼筆記
- CopyOnWriteArrayList原始碼閱讀筆記原始碼筆記
- SiamRPN++閱讀筆記筆記
- Raft: 一點閱讀筆記Raft筆記
- 《思維力量》閱讀筆記筆記
- Flownet 2.0 閱讀筆記筆記
- Koa 原始碼閱讀筆記原始碼筆記
- Keys for graphs閱讀筆記筆記