视频行为理解
from:https://x-algo.cn/index.php/2019/08/31/3220/
行為識別是用來識別“人自身”、“人和人”、“人和物”的“行為”。比如“抽煙”,“打架”。這個任務有好幾個數據集,接下來先介紹一下各個數據集。
數據集
HMDB-51(2011)
- 其中包含51 action,7k clips;
- 這個數據集合包含不同種類的視頻(camera motion, viewpoint, video quality and?occlusion)
- 和以往的數據集比較,這個視頻數據更加真實,并且會有遮擋機位變化等。
- 當前數據集通過靜態的人體關節變化不能識別對應的行為
- 51個action中,每一個至少包含101個clip
下圖為和其他數據集的對比:
和其他數據集合的對比
數據樣例:點擊我;
包含的行為種類有:
51個種類的分組
論文:H. Kuehne, et al. HMDB: A large video database for human motion recognition. In ICCV, pages 2556-2563, 2011.
UCF-101(2012)
- 101類別,13k樣本,27小時時長
- 整個數據可以分為五類,每一類數據都會有25個元數據(不同的 background or actors ):
- 人物交互:呼啦圈,雜耍球,跳繩
- 單人行為:開合跳:弓步壓腿,引體向上
- 多人行為 :軍事游行,雙人舞蹈,樂隊前進
- 演奏樂器:吉他,鋼琴
- 運動:棒球投球,籃球投球
數據整體情況
論文:K. Soomro, et al. UCF101: A dataset of 101 human action classes from videos in the wild. CoRR, abs/1212.0402, 2012.
Sports-1M(2014)
- 487 classes,1 millionYouTube videos
- 數據并不是通過人工標注的,而是通過視頻的文本信息標注,會有一定的錯誤率
論文:A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and F.-F. Li. Large-scale video classification with convolutional neural networks. In CVPR, pages 1725-1732, 2014.
ActivityNet v1.3(2015)
- 203類,28k個視頻,平均每個類有137個untrimmed視頻,每個視頻平均1.41個行為
- 提供三個場景的行為理解:
- 沒有剪輯的視頻分類
- 剪輯之后的行為分類
- 剪輯之后的行為檢測(detection)
- 層級結構標注,例如: /家庭行為/家務/內部清潔/擦窗,別的數據集一般是兩層結構,后期不好維護和擴展
- 樣本為覆蓋人們日常高頻行為而設計
一個四層的例子
論文:B. G. F. C. Heilbron, V. Escorcia, B. Ghanem, J. C. Niebles. ActivityNet: A large-scale video benchmark for human activity understanding. In CVPR, pages 961-970, 2015.
Charades(2016)
- 157 類action,46類object,15個場景,9848個視頻,平均長度12秒,2.7w描述
- Charades是非常真實的生活化的視頻,這些視頻往往不會出現在movie、TV、YouTuBe上面,嘗試用關鍵詞搜索在網上也不會找到這些視頻,因為這些視頻多數都是生活中非常“無聊”的場景
- Hollywood in Homes,其實就是在自己家里“演戲”,然后采集樣本。數據集主打 daily activities
- 數據集地址:https://allenai.org/plato/charades/
看書、喝水、開冰箱的動作在生活中,和在youtube上面的差異非常大,youtube上面多數是娛樂類的非典型的視頻,如下圖:
和其他的數據集的比較:
Charades和其他數據集的比較
論文:Hollywood in Homes: Crowdsourcing Data Collection?for Activity Understanding Gunnar Sigurdsson, Gül Varol, Xiaolong Wang, Ali Farhadi, Ivan Laptev,?Abhinav GuptaYouTube-8M(2016)
- 4800類(visual entity),8百萬視頻,500k小時,一個視頻可以有多個類別實體
- 嘗試使用實體標簽對視頻主要內容描述
- 機器打的分類,通過元信息和點擊數據校驗,類別均為圖譜中的實體且視覺可識別,實體包括:
- 活動(體育運動,游戲)
- 物體(汽車,食物,產品)
- 場景(旅行)
- 事件
- 提供1.9 billion frame feature下載,特征提取器是Inception網絡
- Sports-1M專注于運動,ActivityNet專注于行為,不夠多樣性和通用;在遷移學習場景YouTube-8M比前兩者更加具有優勢
數據級別的分布:
S. Abu-El-Haija, N. Kothari, J. Lee, P. Natsev, G. Toderici, B. Varadarajan, and S. Vijayanarasimhan. YouTube-8M: A large-scale video classification benchmark. CoRR, abs/1609.08675, 2016.Kinetics (2017)
- ?動機:構造large scale、high quality、challenging enough的數據集
- 僅僅用于分類,每一個片段大概10秒,包含語音信息,都是剪輯過的視頻。不能用于temporal localization
- 自稱為HMDB-51和UCF-101的繼任者,前兩者類別少、樣本少、多樣性少
- 類別是一個兩層結構,包括下面幾類行為:
- 單人:畫圖、喝水、笑、壓腿
- 人和人之間:接吻、握手、擁抱
- 人和物:打開盒子、洗盤子、修剪草坪
- 一個clip只會有一個action分類,但是實際中會有多個行為(一邊刷牙一邊跳舞、一邊發短信一邊開車)
Kinetics數據對比
W. Kay, J. Carreira, K. Simonyan, B. Zhang, C. Hillier, S. Vijayanarasimhan, F. Viola, T. Green, T. Back, P. Natsev, M. Suleyman, and A. Zisserman. The Kinetics human action video dataset. CoRR, abs/1705.06950, 2017.
常用模型
深度學習之前常用模型
一般是三步走:
DT:https://hal.inria.fr/hal-00725627v2/document
iDT:https://hal.inria.fr/hal-00873267v2/document
3D卷積和2D卷積
如下圖:來自知乎我不壞
2D卷積
3D卷積
?
?
?
?
?
?
?
?最初的探索(2014)
文章嘗試在時序維度做不同的組合,所有的模型最后都是通過加權平均進行分類:
- 探索目標:
- 什么樣的時序cnn結構可以更好的對局部動作建模
- 什么樣的動作信息會影響性能,以及影響的量
- 加速方法:兩路處理
- 一路在低分辨率處理;
- 一路在高分辨率處理,但是只處理中間一部分
提出時序模型Fusion的集中方式:
兩路融合:
輸入是178*178的大小,一路是全局的89*89,一路是中心的89*89,輸入像素個數是原來的一半。具體如下圖:
雙路采樣
并未在視頻行為識別的任務上打敗手工設計特征的方法
Large-scale Video Classification with Convolutional Neural Networks(2014)
Two-Stream ConvNet(2014)
- 使用RGB+光流作為模型輸入
- RGB對場景、物體建模
- 光流對相機運動、物體運動建模
- 嘗試對光流的加工:
- 原始光流
- 軌跡(累計求和)
- 雙向光流
- 平均光流(相機運動)
- 網絡并未對時序建模
模型的整體結構如下圖,兩路模型最后的輸出都是softmax
在第二路的輸入中是光流的信息,那么輸入的光流其實是可以有不同的形式的,一種就是兩幀之間的位移,一種是多幀之間的位移,也就是從開始幀到t幀之間的軌跡,如下圖:
左邊為兩幀之間光流,右邊為軌跡
Two-Stream Convolutional Networks for Action Recognition in Videos
LRCN(2014)
使用LSTM進行上層的融合,LRCN( LONG-TERM RECURRENT CONVOLUTIONAL NETWORK)屬于late-fusion,論文中output為分類結果,后面在加一層求平均就可以得到最終輸出,模型的缺點是采樣不夠的話會導致區分不出來開門還是關門:
基礎結構
可以用到的更多的場景
Long-term recurrent convolutional networks for visual?recognition and description
Pooling位置探索(2015)
- 更多的上層融合方式的探索
- 更長的融合長度(120幀)
- RGB和光流分別預測,然后融合
- Feature Pooling都使用Max-pooling,效果較好的原因是對分類影響比較大的是幾個稀疏的關鍵幀
對各種Pooling的探索,maxpooling/藍色,全連接/黃色,3d卷積/綠色
不同的pooling方式效果
Beyond Short Snippets: Deep Networks for Video Classification
Rank-Pooling?(2016)
- 在最后一層融合的時候,采用pooling的方式直接融合
- 增加后面幀的重要性
?
Learning End-to-end Video Classification with Rank-PoolingTSN(2016)
TSN(Temporal Segments Network)特點:
- 長序列建模的框架
- Two-Stream的處理的是單幀輸入+多幀光流,無法對長視頻很好建模
- 模型流程:
- 長視頻均勻切為K段
- 從每一段選擇一個子片段送入模型
- 模型進行前向傳播,每一個片段得到自己對應的分類結果
- 對分類結果融合(本論文是求平均)并輸出結果
TRN(2018)
Temporal Relation Network
- ?不同粒度抽幀,不同采樣步長模型的ensemble,是對TSN的一種升級版
- 多幀融合采用兩層的MLP,不同的步長的模型MLP不共享
Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
C3D(2015)
模型簡稱為C3D,提出了一個結構簡單的end2end的處理視頻的模型
- 對各種超參數的探索,3D卷積更加適合捕獲時序特征
- 所有層都是可用3x3x3 kernel和 2x2的pooling可以得到最好性能
- C3D可以對視頻提取好特征,然后使用線性分類器就可以得到很好的性能
- 訓練速度快,容易收斂,訓練Sports-1M的時候抽取5個2秒的視頻片段
Learning Spatiotemporal Features with 3D Convolutional Networks(2015)
P3D(2017)
- C3D太耗費資源,嘗試分解3x3x3卷積進行加速
- 在時間維度進行分解下圖中S=1x3x3,T=3x1x1
- 把層數擴展到199層
P3D 不同種類的block
Learning Spatio-Temporal Representation with Pseudo-3D Residual NetworksI3D(2017)
Inflated 3D ConvNet?:- 本文驚艷之處在于提出一種將2D卷積膨脹為3D的方法,可以更好的利用ImageNet模型積累
- 通過對膨脹的卷積權重除以膨脹長度,實現從2D到3D權重的初始化且等同訓練boring視頻,boring視頻的定義是在時間維度重復一張圖片生成的視頻,這里還是為了更好的繼承InceptionV1
- 下圖中,前三種是已有的模型,后兩種(主要是最后一種)是提出來的I3D模型
- 膨脹之后三個維度的感受野計算如下圖
- e方案是最優的方案,分別對RGB和光流進行3D卷積。然后bagging到一起
InceptionV1
左圖為膨脹之后的結構
Quo Vadis, Action Recognition? A New Model and the Kinetics DatasetSlowFast Network(2018)
- Slow 一秒采2幀,側重單幀理解
- Fast 一秒采8幀,側重時序理解
- Fast部分雖然處理的圖片多,但是計算量只有整體的20%,減少模型的參數量(卷積個數)
- 不在時間維度進行pooling,time維度的卷積stride=1
- HW維度卷積大小和stride都一致,SlowFast融合的時候就是在T和C之間轉換
- Fast的作用類似光流,好處是不用以來外部方法提取特征了
參考
https://zhuanlan.zhihu.com/p/36330561總結
- 上一篇: 添加Graphic Drivers PP
- 下一篇: Linux下的各种文件阅读器