天天看點

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

隊伍介紹

隊名:CASIA-AIRIA。

隊員:史磊(博士在讀),程科(博士在讀)。

指導教師:張一帆副研究員。

機關:中國科學院自動化研究所,中國科學院自動化研究所南京人工智能晶片創新研究院。

競賽介紹 [1]

今年 5 月,美圖公司聯合中國模式識别與計算機視覺學術會議(PRCV2018)共同舉辦的 PRCV2018「美圖短視訊實時分類挑戰賽」正式開賽。來自中科院自動化所、中科院自動化所南京人工智能晶片創研院的史磊、程科在張一帆副研究員的指導下獲得了 PRCV2018「美圖短視訊實時分類挑戰賽」冠軍。不同于以往隻關注分類精度的比賽,本競賽綜合考察「算法準确率」和「實時分類」兩個方面,将運作時間作為重要名額參與評估,将促進視訊分類算法在工業界的應用。以下是冠軍團隊對本次挑戰賽的技術分享總結:

資料集介紹

本次競賽使用的短視訊資料集(MTSVRC 資料集)一共有 100,000 個視訊,其中訓練集有 50,000 個視訊,驗證集和測試集分别有 25,000 個視訊。視訊主要以短視訊為主,長度約為 5 - 15s。資料集包含 50 個分類,視訊類别包括舞蹈、唱歌、手工、健身等熱門短視訊類型,除了包含與人相關的一些行為類别,還有一些風景,寵物等類别。圖檔 1 展示了一些資料樣例:

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 1 資料樣例

由于這些資料的主要來源為手機拍攝的日常視訊,視訊的大小,形狀以及拍攝條件(例如光照,景深)等都不統一,造成了很大的類間差異與類内差異。同時,由于後期處理,視訊經常會有一些特效和與類别無關的文字,也增加了視訊識别的難度。圖檔 2 展示了一些困難樣例,這些樣例對模型的設計帶來了很大的挑戰。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 2 困難樣例

評測方法

由于競賽同時考慮時間和精度,是以以往的分類誤差不足以評測模型性能。圖檔 3 展示了此次競賽所用的評測方法。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 3 評測方法

其中橙色的三角形是官方提供的基準時間和誤差,隻有優于基準方法的成績才被視為有效成績,而其他成績(黑色三角)則被視為無效成績。時間和誤差會根據基準成績歸一化到 0-1 之間。在有效成績中,會找出最小誤差和最短時間的兩個成績(綠色三角形和紅色三角形),然後最小誤差和最短時間會組成一個參考點(藍色圓圈)。最終所有的有效成績都會和參考點計算距離,距離最短的方法視為優勝。從評測方法分析,時間和精度都是很重要的因素。而時間和精度往往是沖突的,是以必須進行一定的取舍。

視訊解碼

因為時間是一個很重要的因素,而視訊解碼又是一個很費時間的過程,是以如何設計解碼子產品是本次競賽中的一個關鍵。我們采用了多線程軟解提取關鍵幀的方法。

主流的視訊編碼方式中,每個視訊主要包含三種圖檔幀,分别叫做:Intra-coded frame(I 幀),Predictive frame(P 幀)和 Bi-Predictive frame(B 幀)。其中 I 幀是一張完整的圖檔。P 幀記錄了與之前的幀的差别,是以在解碼 P 幀時必須要參考之前的圖檔幀。而 B 幀不僅需要參考之前的圖檔幀,還需要參考之後的圖檔幀才能完整解碼。圖檔 4 闡明了這三個概念 [2]。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 4 I 幀,P 幀與 B 幀

顯而易見,P 幀和 B 幀的解碼是相對較慢的,而直接解碼 I 幀則可以獲得更快的速度。同時,由于我們需要解碼不止一幀,是以我們采用了多線程的方式,每一個線程負責解碼一個關鍵幀。整個解碼過程使用 FFmpeg 實作。

模型設計

解決了解碼問題後,接下來的問題在于如何用所得的多幀來進行分類。

主流方法

目前主流的視訊分類的方法有三大類:基于 LSTM 的方法,基于 3D 卷積的方法和基于雙流的方法。圖檔 5 展示了這三種架構的大體結構 [3]。

基于 LSTM 的方法将視訊的每一幀用卷積網絡提取出每一幀的特征,然後将每一個特征作為一個時間點,依次輸入到 LSTM 中。由于 LSTM 并不限制序列的長度,是以這種方法可以處理任意長度的視訊。但同時,因為 LSTM 本身有梯度消失和爆炸的問題,往往難以訓練出令人滿意的效果。而且,由于 LSTM 需要一幀一幀得進行輸入,是以速度也比不上其他的方法。

基于 3D 卷積的方法将原始的 2D 卷積核擴充到 3D。類似于 2D 卷積在空間次元的作用方式,它可以在時間次元自底向上地提取特征。基于 3D 卷積的方法往往能得到不錯的分類精度。但是,由于卷積核由 2D 擴充到了 3D,其參數量也成倍得增加了,是以網絡的速度也會相應下降。

基于雙流網絡的方法會将網絡分成兩支。其中一支使用 2D 卷積網絡來對稀疏采樣的圖檔幀進行分類,另一支會提取采樣點周圍幀的光流場資訊,然後使用一個光流網絡來對其進行分類。兩支網絡的結果會進行融合進而得到最終的類标。基于雙流的方法可以很好地利用已有的 2D 卷積網絡來進行預訓練,同時光流又可以模組化運動資訊,是以精度往往也很高。但是由于光流的提取過程很慢,是以整體上制約了這一方法的速度。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 5 主流的視訊分類的方法

綜上所述,主流的方法都不太适用于短視訊實時分類的任務,是以我們特别設計了一個适用于短視訊實時分類的架構。

我們的方法

圖檔 4 展示了我們的解決方案的整體架構:給定一個視訊,我們首先會從中稀疏采樣固定數量的圖檔幀,然後将這些幀組成一個 batch,送入到一個 BaseNet 中。這個 BaseNet 是在已有的 2D 卷積網絡基礎上優化改進得到的,具有較強的特征提取能力。BaseNet 輸出的高層的特征往往具有很強的語義資訊,但是卻沒有時間上的融合。是以我們特别設計了一個基于幀間注意力機制的融合模型,将 BaseNet 提取的不同幀的特征作為一個輸入送入融合模型中,最終由融合模型得到預測的結果。由于融合模型比較小,推理速度很快,而且參數量較少,也比較容易訓練。整個模型在 mxnet 上進行建構和訓練。基于這樣的設計,我們的模型可以得到很快的推理速度,同時又不會損失太多精度。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 6 整體架構

模型壓縮

當有了訓練好的模型後,為了進一步提高速度,模型壓縮是必不可少的。因為計算平台是 GPU,是以我們使用了兩種比較适用于 GPU 的方法:剪枝和量化。

模型剪枝

由于需要在 GPU 上運算,這裡我們主要考慮在通道次元的剪枝。假設卷積的參數是具有稀疏性的,我們剪掉其中一些不重要的參數,網絡仍然可以達到之前的精度。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 7 剪枝

剪枝過程分為兩步:首先,我們會基于 LASSO 回歸來找到每一層中最具代表性的通道,然後将沒用的通道去掉,再使用平方差損失微調剪枝後的網絡來最小化重構誤差。這樣的操作會對每一層分别進行,經過幾輪疊代後便可以達到不錯的壓縮效果,同時還可以保證精度不會損失太多。

模型量化

由于比賽提供的 GPU 是支援 int8 計算的,是以我們考慮将原來的基于 float32 資料類型訓練的模型轉換為 int8 的資料形式進行推斷,也就是量化操作。這裡我們采用的比較簡單的線性量化,也是 TensorRt 中使用的方法 [4]。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 8 線性量化

假設每個張量的資料符合均勻分布,那麼其中的每一個元素就可以表示為一個 int8 數和一個 float32 的比例因子相乘的結果。比例因子是對于整個數組共享的。這樣在張量間進行相乘運算時就可以先進行 int8 的計算,最後再統一乘上比例因子,進而加快運算。那麼接下來的問題在于如何确定比例因子,比例因子的作用是将原始張量的數值範圍映射到-127 到 127(int8 的數值範圍)。由于大多數情況資料并不是完全的均勻分布,是以直接映射會造成精度損失。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

圖檔 9 基于門檻值的線性映射

為了解決這個問題,TensorRt 中會對每一層的資料分布進行統計,然後根據得到的分布确定一個門檻值(如圖檔 9)。在映射的過程中,門檻值之外的數會被統一映射到-127 和 127 之 間,門檻值之内的資料會假設為一個均勻分布然後進行映射。這樣就可以保證在加快速度的同時也不至于有較大的精度損失。

總結

我們的解決方案可以歸納為三個部分:視訊解碼部分,我們采用了多線程提取 I 幀的方式。模型設計部分,我們采用了稀疏采樣與幀間注意力融合的方法。模型壓縮部分,我們采用了通道剪枝和量化的方法。最終我們的解決方案在測試集上的速度為平均每個視訊 58.9ms,精度為 87.9%。

參考文獻

[1] 「AI Challenge | Introduction.」[Online]. Available: https://challenge.ai.meitu.com/mtsvrc2018/introduction.html. [Accessed: 21-Nov-2018].

[2] 「視訊壓縮圖像類型,」維基百科,自由的百科全書. 08-Jul-2018.

[3] J. Carreira and A. Zisserman,「Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset,」in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.

[4] S. Migacz,「8-bit Inference with TensorRT.」[Online]. Available: http://on-demand.gputechconf.com/gtc/2017/presentation/s7310-8-bit-inference-with-tensorrt.pdf.雷鋒網雷鋒網雷鋒網(公衆号:雷鋒網)

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

PRCV2018 美圖短視訊實時分類挑戰賽第一名解決方案介紹

繼續閱讀