大規模機器學習在愛奇藝視訊分析理解中的實踐

weixin_33806914發表於2019-03-08

視訊包含了影像、聲音、文字等多種資訊,可以表達生動、豐富的內容。隨著AI時代的帶來,網際網路視訊應用高速發展,視訊更成為一種人人可生成的內容,資料量暴漲。如何利用機器學習將海量的視訊內容充分利用起來,成為 AI 領域研究人員和企業開發應用的重要課題。本文,我們將分享愛奇藝資深科學家王濤在 AICon 上的精彩演講,介紹愛奇藝在大規模視訊分析理解方面的實踐探索。

我會從以下幾個方面給大家分享,愛奇藝在網際網路視訊AI方面的實踐工作。

演講大綱:

  • 網際網路視訊發展現狀

  • 視訊理解應用場景

  • 深度學習核心演算法

  • 實驗結果分析

  • 總結與展望

網際網路視訊發展現狀

\"image\"

首先,網際網路視訊行業的使用者和資料量正在飛速增長。中國線上視訊使用者超過6億,佔全國網際網路使用者的75%。僅在愛奇藝視訊平臺,使用者月觀看時長超過60億小時,接近甚至超過了美國Youtube的觀看時長。愛奇藝有十幾萬部PGC專業影視劇,千萬級的UGC使用者生成短視訊,視訊資料量巨大。此外,傳遞視訊的網路頻寬巨大,愛奇藝的總頻寬達到 49TB。海量使用者、視訊和頻寬,對我們的工作帶來巨大的挑戰,必須要藉助AI進行有效的分析處理,才能夠提高使用者體驗和生產運營效率。

下面介紹我們這個行業在做什麼事。愛奇藝視訊是一個蘋果園生態,核心是提供視訊內容給使用者觀看,上游有文學、漫畫,下游有票務、商城、遊戲、直播等內容衍生品,圍繞IP打造成了一個從創作,觀看,到消費變現的閉環生態系統,為使用者提供全方位的娛樂服務。這其中最重要的是IP,通過IP內容連線人與服務,通過AI提升極致的視聽體驗效果和各環節的生產運營效率。

視訊理解應用場景

\"image\"

AI在網際網路視訊行業的成功應用,主要依賴以下幾方面的核心要素:

(1)可供訓練的大資料。

(2)精準演算法,如正在進行的視訊分析識別與語義理解等演算法。

(3)計算晶片,需要非常強大的計算力。

(4)好的落地場景,更便捷的服務。

\"image\"

如上圖所示,愛奇藝從創作、生產、分發、變現,到客戶體驗的每個環節,都有了AI的用武之地。

智慧創作

\"image\"

這是 AI 在視訊創作中應用,利用AI演算法,可以生成特定風格化的視訊,比如漫畫風格等,還可以智慧化新增虛擬道具和特效,讓使用者拍攝的短視訊更加酷炫有趣。AI還可以自動生成背景音樂,根據視訊內容的特點生成不同風格的配曲。

智慧生產

\"image\"

接下來是AI在生產流程裡的應用。首先是是智慧拆條,視訊進來之後,把片頭、片尾和廣告去掉,其次是標註,就像把所有的商品打上標籤一樣,根據這個標籤進行推薦和搜尋。然後是稽核,過濾盜版、情色等內容。最後是播放處理,比如自動生成封面和動態海報圖,幫助對剪輯不熟悉的自媒體使用者選取魅力封面圖,也提高了海量視訊的分發效率。目前愛奇藝首屏的每一欄目左上角都有動態的海報圖,AI 會把視訊的精彩的片段識別出來進行播放,幫助使用者更好地選擇視訊內容。

\"image\"

視訊標註為視訊打上時間-語義標籤,是AI視訊理解的關鍵。標籤有不同類別、層次和粒度,例如識別不同人物、行為、場景、物品等等,還可以用於對內容和使用者的精細化分析,例如年齡、表情、服裝款式,手機品牌等,更好地進行搜尋推薦,實現精準的內容分發。

\"image\"

AI可用於人物識別,實現使用者僅觀看喜歡演員片段的“只看TA”應用。在著名的Labeled Faces in the Wild(LFW)等圖片資料集上,人臉識別精度達99%,超過了人類的識別能力。但在真實視訊場景中,由於解析度,姿態,表情,還有化妝等干擾因素給人物識別任務帶來巨大挑戰,仍然有很多研究工作急需突破。愛奇藝釋出的全球最大的明星影視劇視訊資料集(iQIYI-VID)上,一般技術僅達到 80%左右的識別精度,現在全球通過人臉特徵做得最好的精度是 88%,愛奇藝通過人臉,頭部和音訊等多特徵融合方法獲得89%精度。更進一步,我們除了識別人,還要識別人體姿勢、行為,穿的什麼衣服、鞋子等屬性資訊,用於以圖搜劇和情景廣告等應用。

\"image\"

AI應用在文字識別,可以對字幕進行文字識別和語義理解,對稽核圖片、視訊中的不合規文字資訊進行識別和反垃圾過濾。文字識別主要用的技術是雙向LSTM加上CTC,在網上有很多開源,大家可以找到。文字識別在黑白文件中可以達到98%的識別率,但在視訊中同樣有很多挑戰,比如影視劇的字幕比黑白文件更難識別,因為字幕不但背景複雜,而且字型多樣,有很多裝飾的效果,每個字的間距可能擠在一起。而在內容稽核任務中,使用者為了反機器識別,圖片文字甚至已經不是橫著寫了,有時候斜著寫,甚至彎曲著寫,手寫體的草書,中英文數字混寫,大大提高了識別的難度。

\"image\"

AI還可以用於視訊質量評估,包括黑邊檢測、模糊檢測、馬賽克檢測、音訊一致性檢測等,保證釋出視訊的質量。比如選擇視訊海報圖,需要自動選擇無黑邊、清晰、美觀的圖片釋出。再比如,多個使用者上傳了多個版本但解析度和質量不同的視訊內容,通過內容質量評價選出清晰度和色彩質量最好的視訊給使用者觀看。模糊檢測也不是那麼容易,如果是區域性模糊,比如說目標的臉部不清楚,但是背景很清楚,這就是聚焦錯誤的模糊圖片,不是清晰的圖片,我們要把這些特殊因素考慮進去。

\"image\"

AI用於視訊內容評價,簡單理解就是在視訊中找到精彩的片段,給予評分。這裡需要機器去識別什麼是精彩片段? 比如評價畫面如何精美,劇情如何精彩,動作如何緊張,和音樂如何浪漫。機器篩選出精彩片段後,可用於長視訊的內容拆條,生成精彩看點短視訊,滿足使用者對碎片化視訊內容的觀看需要。

智慧播放

\"image\"

接下來介紹一下我們在視訊播放方面做的工作。第一個是 ZoomAI 超分辨。上圖為80年代非常火爆的電視劇《渴望》,但是現在你把這個片源拿出來在大螢幕上觀看,會發現很多噪音、抖動,而且解析度特別低。為了提高觀看體驗,我們研發了視訊超分辨技術,通過深度學習把低分辨的視訊恢復成高分辨的視訊。另外還有畫面破損修復的問題,上面左圖有劃痕、抖動,我們利用多幀圖片的資訊,通過多幀預測當前幀的圖片,最後做一個融合,修復畫面。上圖左邊的字邊界比較模糊,右邊的不但字很清楚,邊界也特別清楚,這裡我們不但考慮了兩張影像之間的畫素灰度值損失最小,而且還要加上梯度損失最小,從而優化了視訊的紋理和邊緣細節。

\"image\"

AI蒙版彈幕,是一個神奇的應用。相比於普通彈幕,能夠避免密集彈幕文字對近景人物區域的遮擋,降低了彈幕對使用者觀看視訊畫面的干擾。我們使用了基於深度學習的語義分割技術,引入鏡頭型別識別演算法,識別出當前幀的場景型別,無明顯人像主體型別的畫面中不生成蒙版;而在特寫、近景、中景等鏡頭畫面中,生成人體掩碼蒙版。播放時,隨視訊同步傳輸的蒙版檔案“認為”是背景的影像區域上才會覆蓋彈幕,因此彈幕不會覆蓋到畫面中的主體人像,提高了使用者觀看彈幕的體驗。

智慧變現

\"image\"

AI還可以用於視訊內容變現,將使用者觀看流量最後轉化為商業價值。比如情景廣告,根據畫面中的明星、臺詞、場景等類別,推薦與內容匹配的廣告,提高廣告投放關聯性效果與使用者觀看的趣味性。如左圖所示,系統識別了人物的京戲服裝,推薦了京繡裝的特倫蘇牛奶。右圖中,進行情景識別出皇上生氣、魏瓔珞嚇得腿軟的鏡頭,所以它的廣告詞配的特別有趣:腿軟了,隨時“脈動”向前,給使用者展示脈動飲料來鼓勁。

深度學習核心演算法

代表性網路結構

大家對這些應用背後是怎麼做到的也非常感興趣,下面簡單介紹一下深度學習的核心演算法,包括代表性的2D、3D卷積神經網路和常用的loss函式。

\"image\"

深度學習最重要的功能是分類器。比較有代表性的像 Inception Model V3模型,具有非常好的圖片分類效能,谷歌推出的Youtube8M視訊競賽資料集用的就是InceptionV3模型提取的影像特徵。Inception Model有V1、V2、V3和V4 版本,V1首次使用了Inception概念。它類似於電影《盜夢空間》中一層層的深入空間,當你進入一層夢境時,還有更深入的一層空間,再進去可能還有更深一層的世界。深度學習本來是個網路模型,進到每層節點後,節點內又是個展開的網路。它就相當於把一個網路節點變為網中網,裡面橫向用很多組卷積濾波器,縱向有好幾層組成,讓這個網路更加有寬度,更加有深度。V2版在卷積後做了一個batch Normalization歸一化,避免梯度消失的問題。V3版把5×5的卷積分解成若干個卷積,比如V2版的兩個3×3卷積,到V3變成3×1和1×3兩個卷積來代替1個5×5的卷積。它的好處是減少引數並提高計算速度。引數少就好小樣本學習,層數多更利於提取出高層語義特徵。

\"image\"

第二個代表性網路結構是 MobileNet V2,用於提高手機上執行模型的速度。這裡主要用了兩個技術,一個叫反向殘差模組Inverted Residual block,一個叫深度分離卷積depthwise conv。如中間圖所示,Depthwise Separable Convolutions的基本思想是,把標準的卷積運算(每個卷積核的通道數與輸入的通道數都相同),分解為兩個步驟,第一步是depthwise convolution,它對每個輸入的通道應用單獨的卷積濾波器(單通道卷積核),第二層是pointwise convolution,使用1*1的卷積核,對輸入特徵的channels進行線性組合為新的特徵。

\"image\"

對於視訊輸入,3D卷積可以提取視訊的空間和時間特徵。圖中的C3D (Convolutional 3D)是代表性的3D卷積網路,使用d×k×k(例如,3×3×3)的卷積核,d是卷積核的時間維度的深度,k是卷積核的空間size。與2D卷積相比,標準的3D卷積不但要做空間卷積,還要做時域的卷積,計算量很大。

\"image\"

為了解決提高速度,微軟團隊提出了 P3D 模型。如前面提到的,3D 卷積核為 d × k × k大小,d 是卷積核在時間維度上的深度,k 是卷積核的空間上的寬/高。對於3×3×3的3D卷積濾波器,可以將其解耦為1×3×3的卷積濾波器和3×1×1的卷積濾波器,前者等同於空間域的2D CNN,後者看成是時間域的1D CNN,這種處理就是Pseudo 3D CNN的思想。P3D有三種結構,S代表空間維度(spatial dimension)的2D filters,T代表時間維度(temporal domain)的1D filters,第一種是T序列級聯在S的後面,第二種是T和S並行,第三種是前兩種結構的折中或綜合。

\"image\"

還有I3D模型,整個網路中的某一個模組,把Inc.的模組用中間這張圖的Inception結構塞進去,從而把這個網變得更寬更深。

\"image\"

更復雜的網路組合結構,就是把2D卷積網路、3D卷積網路、LSTM長短時記憶迴圈神經網路等這些不同的網路模組組合起來使用。比如把ConvNet放到LSTM裡,把不同path的網路進行匯合。這是大概的網路設計思路,大家可嘗試不同的網路結構來改進效能。

Loss損失函式

\"image\"

另外,除了網路結構之外, 收斂最優化的準則Loss 函式也很重要。通常有 均方差MSE Loss,還有交叉熵Loss,交叉熵主要是衡量預測的置信度概率分佈與真實概率分佈間的差異。在做影像分類時,每類別的樣本數目不同,各類別的權重和預測精度也不一樣。為了改進識別精度低、樣本數比較小的樣本,何愷明提出了Focal loss方法。這跟cross_entropy有什麼差別?為什麼要加這項(1-qi)r?qi是分類器輸出的第i類的概率,如果這個概率很低的話,那麼1-qi很大,相當於把這一個樣本的精度權重貢獻加大,ai用於調整樣本數目的權重,通過這個方法來提高判定函式的整體識別精度。

Focal loss的提出為了處理檢測任務中的正、負樣本不均衡問題,大多數的負樣本容易區分,Focal loss會一定程素削減容易樣本的權重。Focal loss的公式不侷限於檢測中的兩類別,可以推廣到多類別分類問題中。

短視訊分類實踐

深度學習、機器學習要解決的根本問題就是分類。檢測也是在測試不同的區域,並判斷這個區域是否包含指定類別。分類是最基本的一個問題,下面通過案例說明短視訊分類中不同方法的實驗效能。

\"image\"

首先介紹視訊分類的幾個重要資料集。這些資料集大部分是公開的,大家都可以用。第一個資料集是谷歌YouTube8M,資料量百萬級非常大,視訊長度2分鐘到6分鐘左右,有3800多個類別,大家可以嘗試一下。

\"image\"

第二個資料集Moments in Time,這個資料集有339個類別,每條視訊3秒左右。短時長有什麼好處?可以方便大家訓練,時間長的問題就是資料量大,而且長視訊標籤,不一定能充滿整個視訊片段,會帶來一些噪音片段。

\"image\"

第三個是ActivityNet資料集,該競賽定義了人物相關的事件定位、事件分類、事件描述等識別任務,有二百個類別,每個類大概有一百個視訊,時長 648 個小時。

\"image\"

最後是美圖短時頻分類mtsvrc2018資料集,是UGC短視訊實際應用非常有代表性的資料集,有50個類,10萬個短視訊,50個標籤。下面我們將在mtsvrc2018資料集上,進行短視訊分類方向的資料分析、實驗比較。在mtsvrc2018資料集上,實驗的評價指標,第一個是精度要高,第二個,速度要快。最終評論指標看提交的演算法效能點和藍色參考點的距離長短,越靠近藍色原點,表示效能越好。

\"image\"

我們針對美圖短視訊分類資料集做了一些實驗。演算法流程上,首先把視訊的圖片解碼出第二,湊齊N幀,保證每個視訊有相同的取樣幀。第三,提取特徵,第四,融合多張圖片的分類結果。想要要提高速度,每個模組速度都要快,要提高精度,可以在資料的預處理、模型訓練,還有後處理融合這幾塊來下工夫。

\"image\"

這是使用Inceotion模型的初始分類結果,橫軸是50個類別,縱軸是精度。可以看到不同類別的精度波動非常大,好的到90%,差的只有30%-40%的精度。有的類別精度為什麼很低?有兩部分原因,第一,這個類別很難識別,比如裡面定義了風土人情和風景,這兩個類別非常相似。風土人情中的賽龍州,它屬於風土人情的人文活動,但是龍舟之外還會拍到兩岸的景色,這很容易混淆。第二,這個類別的樣本數也非常少,我們畫了一張圖,發現精度比較低的類別都是樣本非常少的類別。這張圖還比較了兩個演算法, Inception V3橙色曲線的精度比BNInception模型的藍色曲線精度更高一些。

實驗結果分析

我們做了一些實驗,通過實踐證明哪個方法是有效的,哪些沒有效果,以及效果有多好。包括抽幀階段的補幀、如何選擇卷積網路、是否使用預訓練模型等等。

\"image\"

首先就是抽幀,每個視訊裡關鍵幀 i 幀這個數目是不同的,我們也畫了個分佈。比如說如果一個視訊只有四幀,我們如何取八幀,怎麼再湊足這個八幀。有兩個方法,第一個辦法是再補尾幀,後面重複實現。還有一個辦法是均勻插幀,11,22,33,把紅色的幀插進去。經評測,均勻補幀比插尾幀效果好很多,因為插尾幀的時候,相當於把最後第四幀插了很多幀無效的資訊。如果第四幀是黑幀,或者是無意義的幀,它會帶來負面的影響。

\"image\"

第二是選模型,選模型就是選擇用來特徵提取的神經網路。Github上有個公開的模型效能評測,如上圖所示,橫軸代表了乘加計算量,縱軸代表精度,大家看到最好的模型是NasNet、Inception、ResNet等,優於mobileNet,VGG-16等。

我們做了一個實驗,對經過和未經過imageNet預訓練的Mnasnet模型進行驗證集準確率對比。一開始就用美圖資料集做訓練不行,我們要把在imageNet資料集上的預訓練模型拿過來,再在美圖的資料去訓練,結果顯示精度提高 7%,精度提高非常大,一個好的預訓練模型非常重要。

\"image\"

剛才的圖有很多模型,它們在短視訊分類的精度到底怎麼樣,我們做了一個實驗比較。大家可以看到,因為驗證集每類樣本數不同,按類別平均的精度比按照個數平均的精度,與測試集的結果更加接近。MobileNetV2精度大概是82%,InceptionV3達到86%,Resnet也是86%,這說明什麼?MobileNet雖然模型小、速度快,但精度與複雜模型相比降了4%。所以說大家要慎重使用小模型,因為精度確實較低。到底選擇哪個模型,還得看它的價效比。

最後一列表示耗時,MobileNetV2是 6ms,V3大概25毫秒,多花20毫秒能提高4個百分點精度,這個代價在比賽中還是非常值得的。最底下兩行代表三維卷積,剛才介紹視訊需要使用時空資訊,結果怎麼樣呢?我們做了P3D,精度大概87%,這裡並沒有比Inception模型精度高。I3D方法理論上很好,但是它沒有預訓練模型,比有預訓練模型的P3D低10%,這就說明,預訓練模型很重要,3D卷積也不一定總是很有用,因為對於短視訊分類任務來說,好多不是事件,不是連續動作,給一張圖,就可以分出類別,所以說在這個任務上耗時的3D卷積方法並不適用於提高精度。

\"image\"

增加樣本數目,可以提高分類精度。但在給定的資料集上調整樣本取樣率,能否提高精度?左圖畫了一個樣本的分佈,樣本最多的類別有五千個,最低大約三百個樣本。對小樣本類別提高取樣率,使每類有相同數目的樣本進行訓練。右圖的實驗表明增加小樣本取樣率,沒有效能改進。即使通過線性內插方法生成更多的樣本,因為沒有增加資訊量擴大樣本特徵空間範圍,效能也不會提高。

\"image\"

對於小樣本和易錯分的類別,Focal loss是不是很有用,我們也做了實驗。第一行表示沒用Focal loss,第二行是用Focal loss,按個數平均的精度沒提高,反而降了0.3%,但是按類平均精度提高了 0.06%, 所以說Focal loss調整能力對解決這個問題效果很有限,僅微小的提高了分類器的推廣效能。

\"image\"

下面介紹基於多個子資料集的融合實驗和基於多個卷積網路結構的融合實驗。我們採用了融合的辦法,第一個就是資料集融合。把一個資料集隨機抽了5份。在測試集上,每個模型比驗證集的精度還低,因為它的分佈是不一致的。在測試集上,精度大概在82%-83%之間,經過把這5個資料集訓練得到的5個分類模型進行融合,準確率為 84.4%,這個子資料集融合方案可以把精度提高 1%。

\"image\"

另外我們還使用了多模型融合的方法,在相同資料集上訓練了多個模型,將4個模型進行融合後精度從84%提高到86.5%,5個模型融合起來可以達到精度87%,這個精度已經達到了第一名的成績。但速度還是有差距的,第一名的速度非常快,我們如果使用5個模型,要多花5倍的時間,除非讓5個模型並行,才能達到很好的速度。

總結與展望

\"image\"

最後,我們來做個總結和展望。上面介紹了網際網路AI視訊中的一些應用,也通過具體的案例實驗給大家分析了不同方法的效能。在具體的工作中,比如說要訓練一個模型,肯定也會碰到類似的這些問題,那怎麼把速度和效能提上去呢?這裡總結一下:

第一,為了提高速度,處理視訊的時候要快速解碼,為了更快速地處理,可以只處理關鍵幀i幀,因為i幀不需要做前項後項預測的恢復,解碼非常快可以提高10倍。原來要解碼需要兩百毫秒,但是優化之後只要20毫秒左右,就可以把視訊的i幀解完。

第二,學前輔導。好的預訓練模型非常重要,能夠輕鬆提高7%以上的精度。

第三,單兵作戰,增加網路寬度、深度、迴路等方法的複雜大模型通常比簡單輕模型精度更高,更穩定。在選擇模型的時候,要根據具體場景慎重考慮精度與速度間的折衷。

最後,協同作戰,通過子資料集融合和多模型融合,效能可以穩步提高1%到2%以上的精度。

發現的潛在問題,也是整個業界有待解決的研究問題。第一個是髒資料問題。因為易混淆樣本,人工標註的資料質量不可能很準。人可以通過不斷總結,不斷重複找到正確規律,但是深度學習能否從含有噪聲的髒資料中找到真相?第二點,推廣性問題。訓練時,訓練集收斂精度達到99%,但是驗證集精度是88%-90%,下降了10%,而測試集的精度又下降4個點,到了82%左右。由於訓練集的過擬合、訓練、測試不同資料集之間分佈不同,模型推廣到陌生資料集後效能差異很大。增加訓練的資料集大小,推廣性更好。複雜模型的推廣性通常比簡單模型的效能要更加穩定。但是對於給定的訓練和驗證資料集,如何有效提高推廣性?第三個是小樣本數目不均衡問題。調整各類樣本的取樣率,不能提高精度。調整類別權值的focal loss效果還不理想。

AI視訊的未來

\"image\"

最後展望一下 AI 視訊的未來。可以從三個層面來說。

第一是智慧,未來,人工智慧一定會越來越聰明。AI機器將能夠有很好的感知能力,能識字,能圖,說話。從感知智慧到認知智慧,理解語義,藉助知識庫和記憶進行精確推理。

第二是互動。人和機器間的自然互動,機器會善解人意;VR在視覺、聽覺展現上的互動, 讓人身臨其境。

最後一個是開放。網際網路AI時代為什麼發展這麼迅速?其實就是因為開放,有很多大牛把自己的平臺,模型演算法和程式碼無私的分享出來,其他人在這個基礎上繼續做,加速了整個AI技術的發展。同時,人人皆是媒體,每個人可以創作內容,分享內容,創造巨大的資料量和需求。還有透明互信,有很多開放內容,通過區塊鏈技術,建立可信、有價值的存證和交易網路。AI,網際網路、物聯網、5G、端到端邊緣計算把人、機器、智慧家居、智慧城市、智慧娛樂等資訊連線起來,實現整個智慧資訊的空間進行互動,那麼我想,未來發展一定會更加彭勃,充滿生機。

作者介紹

王濤博士,愛奇藝公司資深科學家,中國計算機學會(CCF)理事,傑出會員,計算機視覺專委會副主任,YOCSEF榮譽委員,全國信標委計算機視覺標準組副組長。2003年博士畢業於清華大學計算機系後,加入英特爾中國研究院,任高階研究員。2014年加入愛奇藝公司,主要從事多媒體智慧分析,計算機視覺、模式識別、虛擬現實、資料探勘、AI視訊雲等相關技術的研究,領導並參與了愛奇藝隨視購、視訊拆條、視訊稽核、以圖搜劇、對白搜尋、場景看點、音訊水印、VR渲染直播、區塊鏈等專案。在IJCV、CVPR、ACM MMSJ、ACM Multimedia等國際期刊和會議上發表論文六十餘篇,申請四十多項專利,翻譯《軟體優化技術》著作一本。

\"image\"

相關文章