繼圖片之後,視訊結構化成為了深度學習領域又一個熱點。相比圖片,視訊內容無疑具有更大的複雜性。面對不同場景的視訊結構化需求,需要採用什麼策略才能取得最大化的效果? AI 視訊結構化對於網際網路、廣電等行業的變革又有什麼樣的價值?
在 4 月 20 日 QCon 全球軟體開發大會上,七牛雲人工智慧實驗室首席架構師姚唐仁分享了在深度學習視訊結構化的實踐經驗。
1. 人工視訊摘要與 AI 視訊結構化的優勢
根據哈佛商學院的研究,視覺是人獲取資訊最主要的方式,佔全部感官的 83%。因為通過圖片和視訊的載體,我們能獲得的資訊量是最大的。相比靜態的圖片,動態的視訊增加了時間的維度,擁有更豐富的組合性。根據目前網路視訊的情況,整個國內視訊規模依舊保持高速增長。
其實,視訊規模增長不僅限於網際網路行業。**許多行業可能存有更多視訊資料,廣電行業就是其中之一。**廣電行業不僅面臨視訊資料的爆發式增長,更多情況下還受困於存量視訊資料的管理。面對海量的存量和增量視訊資料,傳統的手工視訊摘要方法就會暴露出以下缺陷:
- 內容不完整:當看到一個視訊的時候,每個人都會有自己的關注點。而對於關注點外的內容就會有不同程度的忽視。每個視訊忽視一部分累積起來就會造成巨大的資訊缺失。
- 依賴經驗:人工視訊摘要在很大程度上會依賴稽核人員的經驗,描述結果往往就是相應人員對於這個視訊的理解。而當稽核團隊中加入了許多新手後,描述可能就不夠精準、豐富。
- 實時性差:人工稽核只能在事件發生後很長一段。面對突然爆發的資料增長,人工幾乎不可能做到實時稽核、標註,造成實時性較低的結果。
- 時效性差:當某些特定事件(明星醜聞、事件反轉)發生時,同一視訊在事件前後會帶有不同的標籤(例如:某當紅藝人,在發生涉毒醜聞後,被列為「劣跡藝人」)人工標註很難根據突發情況快速批量上線或下架相關視訊。
面對視訊處理過程中這麼多的問題,用人力結局顯然會造成巨大的成本。這個時候,AI 視訊結構化就是最好的解決方案。
 優勢 1:識別範圍廣 人摘要時,關注點非常有限,機器沒有這個問題。利用機器學習進行識別的**第一個優勢在於能夠不斷增加識別的廣度。**可能最初的模型識別的內容不夠多,但隨著機器學習模型的不斷迭代,識別的內容和準確性也都會隨之大幅提高。
優勢 2:效率高 GPU 機器的效率遠超過人的效率,而且機器可以持續執行,人摘要視訊受限於物理播放的時間,而機器可以隨著物理計算能力和模型效率的提高來提升結構化速率。
優勢 3:可迭代 我們通過模型的迭代能夠不斷優化內容識別的準確性。
優勢 4:創新基礎
有了這樣一個高效的方式,而不是差異化對內容的認知,這樣的方式可以對業務帶來很多的創新。
- 內容稽核:隨著圖片和視訊取代文字成為主流的傳播方式,針對圖片和視訊的內容稽核正變得越來越重要。比如說藝人發生了劣跡行為,需要立即對他封禁。如果我們完成了內容視訊結構化,就非常容易找到與他相關的視訊。另外,還可以對視訊的內容進行檢索、編目,這些都是廣編裡面需要的功能。
- 廣告植入:當我們進行廣告投放的時候,能夠實現廣告定向投放。比如在視訊中所有易拉罐的罐身上都打上想要的內容,完成廣告植入。
- 熱點預測:比如當一些熱點事件發生時,我們能分析出這個事件的特徵標籤,並且把相關標籤相關的視訊進行關聯和推薦。類似的功能對於網際網路運營具有極大的價值。
2. AI 視訊結構化的實現步驟
2.1 視訊的分解
首先,一個視訊裡面我們首先要分解的不同場景,不同的鏡頭,再對裡面的內容進行識別。 例中是我們的一個視訊分類的標註系統,其實這個標註的系統過程,其實也是我們對這個內容的理解,怎麼去做結構化的識別方向。
從模型角度講,我們對內容的識別要做哪些方面?首先第一個我們要進行分割,分割是鏡頭的拆割。拆割之後要理解一段鏡頭所表達的主題,進一步根據幀來識別裡面的內容,按照人、物、場景的維度來做。
2.2 視訊結構化描述
舉個例子,當我們要描述一個足球視訊的時候,會把它分成三級。
- 第一級是視訊中的基本元素:球員、足球、草坪、文字。同時,草坪不是普通的草坪,是足球場;文字不是無意義的文字,是場邊廣告牌。
- 第二級是視訊中的場景:巴塞羅那隊參加的一場西甲聯賽。
- 第三級是一個完整的故事:體育新聞正在報導一場球賽,巴塞羅那隊的梅西率隊贏得了比賽。
拿到一段棒球視訊,可以這麼來處理:
- 第一步是將它截幀,進行幀的內容識別。
- 第二步要做一些光流,目的是獲取運動資訊。視訊裡面運動資訊比較複雜,而做了光流之後就更易於描述前後幀之間位置的變化,這樣就能描述一個運動。描述出運動之後,通過運動資訊場景進行關聯,判斷這是棒球比賽。
- 第三步是藉助聲音輔助判斷,可以根據語音中識別到的資訊,對畫面資訊進行補充。
- 最後是利用視訊畫面中其他的資訊,例如周邊廣告、字幕、臺標等相關資訊輔助判斷。通過這些資訊,我們能知道這個場景屬於哪個分類,是綜藝還是新聞。
2.3 深度學習訓練平臺
模型訓練是很重要的關節,而且視訊的資料量非常大,需要一個高效的深度學習平臺來支撐模型訓練、視訊分析的前提。為了能夠提高學習的效率,七牛雲深度學習平臺從資料的收集、標註、清洗、過濾,到訓練、推理、上線,完成了整個流水線的搭建,並且不斷進行迭代。
面對數量龐大、格式各異的視訊,我們將整個過程進行解耦。以分散式佇列的方式進行模型訓練,還需要對模型進行融合,取得更好的效果。
我們視訊結構化的策略,是先將視訊按鏡頭分拆,並根據主題分類,將視訊裡面的人、物、場景進行解讀之後,與影象、聲音和文字進行關聯。
這裡講到特徵提取,對於不同資料的提取是有差異的特徵是每種網路對資料的提取是有差異的。這時候我們就多端網路進行提取,然後進行融合。可以看到示例中網路提取的特徵對狗的運動資訊特徵表達明顯。
在視訊做主題分類的時候,我們一開始通過 LSTM,把一幀一幀進行串起來,進行 LSTM 網路模型訓練。後來,我們採用了 3D 轉接的方式,但是由於它的通道是幾何級的運算,就會造成巨大的計算量,第三種方法就是先將圖片和光流進行融合,再做模型融合。
在模型融合的時候有兩種做法,前融合和後融合,前融合是指不同方法提取的特徵進行融合。後融合是指網路連線輸出之後進行的融合。
剛才講到提取它的一些特徵,但是如果對一個視訊抽幀度過高的話,計算量就會變得非常大。目前,我們通常採用一個場景用前面、中間、後面三段視訊的做法。抽幀之後再進行融合,這樣從效果和計算量來講,是一個比較平衡有效的做法。
3. 視訊結構化注意點和實踐經驗
3.1 人物資訊結構化
人物的關鍵是在人臉的識別上。在視訊裡面我們連續幀的播放,每一幀裡面臉是在變化,所以我們不僅要檢測到人臉,還要對臉進行評價:包括人臉角度、眼鏡等遮擋物。最後就是人臉跟蹤。比如轉向、點頭等。
有時候,當人臉跟蹤的時候移動到了後腦勺,或者側角比較高的時候,往往會很難保證較高的準確率。但是,在人臉跟蹤的過程中,其實只要抓到評價點,就能知道整個過程跟蹤的是同一個物件資料,就能基於此進行評價。**基於評價點完成了評價之後,這一段跟蹤的人,就會呈現比較高的特徵。**另外,如果我們將人臉與場景關聯之後再進行比對,效果就會更好。
人物資訊結構化的實踐 在進行人臉關聯的時候,還可以藉助與之相關的關係圖譜。關係圖譜是整個視訊結構化的過程中,非常重要的一點。
舉個例子,假設我們在分析一段梅西的比賽視訊,但在視訊中他的正臉並未面對鏡頭,只有側臉。這個時候,我們通過場景分析得出這是一場球賽,通過隊服知道比賽雙方是誰。我們可以通過在網上獲取的資訊,知道梅西的球隊、教練、隊友是誰,並且建立關係圖譜。
這個時候就可以將梅西的側臉和側臉庫中的資料進行比對,比如Top 10 或者Top 20 相比,有了關係圖譜之後,這個準確度就能大幅提高。只是側臉置信度和誤點率非常高。
除此之外,我們還可以根據球衣號識別梅西的隊友。所以看似是一個比較簡單的人臉描述,但是在不同的場景下,就可以更多的進行深度挖掘去描述它。否則機器只是認臉了之後,由於資料資訊量不足,跟真實的結果差距非常大。
實踐中的注意點
在實踐中,我們會發現很多問題。比如這是一個新聞中的投票視訊,有許多人在投票箱前依次投票,投票人不停地在更換。這個時候,如果用位置比較跟蹤,由於在同位置的識別框中一直有人進行投票,結果很有可能會判斷始終是同一個人在投票。如果我們能夠先根據人物的動作和周圍場景,識別出這是一個投票活動,不採取跟蹤而是檢測。
這是我們視訊結構化的 demo。在這段視訊裡,我們可以所有人物出現的時間軸連線起來。這樣在搜尋人物的時候,通過視訊結構化識別很輕易的能找到相關的內容。
3.2 物體資訊結構化
和人不一樣,物體識別的時候沒有人臉這樣明顯的特徵。這個時候,就可以直接用模型在不同地方進行檢測,檢測準確度依賴於模型,模型需要較強的泛化能力,能夠檢測出物體不同角度。
物體資訊結構化的實踐
這時候,我們就需要將物體出現的時間進行區間合併。比如視訊中有一個歌手,他手中的話筒在視訊中反覆出現,由於話筒在視訊中出現的時段不是連續的,我們就需要找到一個比較好的閥值對他進行識別。在新聞、電影等不同的主題中,不同內容的合併有不同的手段。
與人臉一樣,物體結構化也需要和場景相關聯。就像足球案例一樣,檢測到草坪後,通用的識別裡面就是一個草坪,但是通過這個場景判斷是在踢球。這個時候輸出物體是輸出球場,這就是場景上下文之間的關係。
實踐中的注意點 在實踐中,我們在決定檢測幀密度的時候,做過許多嘗試。直觀上,我們肯定認為是密度越高效果越好。我們選了幾個值進行測試:0.1 秒、0.2 秒、0.5 秒、1 秒和 2 秒。經過實踐,1 秒時一個比較合適的值。
雖然理論上說檢測幀的密度越高越好,但是會帶來一些計算量的代價。檢測密度為 0.1 秒的時候,計算量就是 1 秒的 10 倍。我們推測一下 1 秒比較合適的原因:大部分視訊描述的時候,場景切換不會特別頻繁,1 秒以內快速反覆切換場景不會帶來太好的觀看體驗,所以在物體檢測的時候,以 1 秒為檢測密度即可。
3.3 場景識別
當描述這樣一張場景照片時,我們第一眼就能看到這個圖片能包含什麼的內容,動物海星,海浪、室外,海灘。但是在輸出標籤的時候,我們會輸出兩個場景標籤。為什麼標兩個?因為物體本身在不同場景中的時候,場景表現不一樣。
在這張圖片裡可以看到,有山、河流,這些元素構成了一個自然景觀,同時自然景觀從屬於室外的範圍。這樣構建的原因是在結構化的之後,在你搜尋的時候會有會有很多作用。比如搜尋開會的場景,也可以搜尋室內;搜尋一座山的時候,也可能搜尋景觀。通過不同的標籤,都能搜到同一個內容。同一個內容,既屬於自然景觀,但在更大的範圍裡屬於室外的範疇。
實踐中的注意點
這是一個體育新聞的案例,我們首先要確定場景的主題,是電視娛樂廳、娛樂室還是遊戲廳。確定了主題之後,就切入不同的鏡頭,之後再進行關聯檢測到分類的時候,才能更準確地描述。
3.4 聲音對於識別的幫助
聲音在視訊中是有用的資訊,對於聲音內容,我們要分兩類處理。
第一類,是聲音轉文字,我們可以根據視訊中的內容,提取主題。所以聲音中提取的文字能夠輔助確定這樣一個主題的。這是我們一般能想到的。
第二類是聲紋特徵,比如某些場景是沒有文字的,比如一個人在那裡尖叫或者一個人在那裡痛苦,我們就能通過聲紋特徵來進行識別場景。
這是整個的視訊結構化的檢視。最底層我們需要一些基礎模型,用來識別我們來識別對每個東西對它的場景是什麼,物體是什麼,它的人臉是什麼,還有相關的屬性是什麼,這個是最基礎的模型。 這個模型實踐下來,在視訊的維度就會有一些特徵,視訊的幀,光流,還有持續的關係。再往上走,在利用模型和特徵,還有實踐的時候,怎麼來構建結構化的平臺?這個平臺就是我們要對事件進行描述,最早是去分割視訊,然後也通過知識圖譜,這個平臺就是這麼來利用這些東西。
要分割,建立知識圖譜,再後來通過底下的模型描述事件。最上層應用是什麼,可能是進行內容稽核,當然也可能是廣告植入,這是一些應用方式的整合。
我覺得視訊這個領域的結構化真正來落地也是剛剛開始,也需要更多的人來實踐,更多的人來探索。視訊時間維度帶來的變化很豐富,比如下面的兩個例子,一個是反時序,一個是片段化的視訊看不出真正的主題,這些方面的問題需要我們持續探索和實踐。