天天看點

基于深度學習技術的視訊内容檢測

1、背景介紹

克拉克拉(KilaKila)是國内專注年輕使用者的娛樂互動内容社群軟體。KilaKila 推出互動語音直播、短視訊、對話小說等功能,滿足當下年輕使用者個性化、碎片化的文娛需求。其中短視訊每天都有海量的視訊素材産生,這對使用者造成了嚴重的資訊過載,難以從中自主挑選感興趣的内容。每一位視訊内容的消費者同時也是生産者,期望自己的作品能夠被更多的志同道合者所看到,獲得最大的曝光度。但短視訊在UGC場景下出現了大量重複視訊内容,該重複視訊被重複曝光、重複觀看,造成了使用者體驗較差甚至于使用者流失。本文重點介紹基于深度學習CNN技術建構視訊重複内容檢測服務并給出該方案的工程架構。該服務上線後,重複檢測準确率80%,視訊内容分發提效20%。

2、圖像特征描述符方法

視訊内容了解的第一步便是對視訊進行片段化視訊幀處理,也就是随機采樣。視訊抽幀指用視訊的關鍵幀表征整個視訊的完整含義,針對不同類型視訊編碼格式、幀速率、比特率、視訊分辨率以及不同種類的視訊,視訊的抽幀大概分為按視訊固定時間間隔抽幀和基于實際圖像内容抽幀,具體可細分為聚類抽幀,基于運動抽幀,基于鏡頭抽幀本文采取深度學習CNN模型架構對圖像進行提取特征,其中并對比了目前主流模型的特征提取能力并針對特征資料進行針對訓練,以便得到更好的模型參數。

傳統的特征描述符方法可以清晰看到特征點的移動,有利于特征點的跟蹤而對于邊 (edge) 、區域 (patch) 等特征則無能為力。深度學習方法可以保留圖像鄰域的聯系和空間的局部特點(CNN)更容易處理高維圖像。對使用者而言無需知道提取的特征有哪些。大量實踐表明,深度學習在提取圖像特征方面有明顯優勢。

基于深度學習技術的視訊内容檢測

圖一:早期判斷圖檔相似的網絡結構

3、深度學習CNN的模型選擇

1)深度學習算法之圖檔提取特征模型(2D-CNN)

FFmpeg按照視訊時間的固定間隔抽取關鍵幀,抽幀間隔靈活選取。利用AlexNe版本的CNN模型處理原始圖檔為1000維的特征向量。輸入的原始資料圖像需要經過深度學習模型提取圖檔特征,以高維資料展示并存取圖檔對應名稱以友善後續操作。

基于深度學習技術的視訊内容檢測

圖二:高維資料

2)深度學習算法之視訊提取特征模型(3D-CNN)

FFmpeg根據視訊相關參數選取合理數量的clip作為單次輸入資料。利用C3D版本CNN模型擷取視訊特征的高維向量表達。對基于視訊分析的問題,2D卷積無法有效擷取時序上的資訊。采用可提取三維圖像特征的3D卷積模型,對clip同時還可以提取時空特征,用高維向量表示。Clip固定幀數的視訊片段。

基于深度學習技術的視訊内容檢測

圖三:2D卷積

基于深度學習技術的視訊内容檢測

圖四:3D卷積

基于深度學習技術的視訊内容檢測

圖五:C3D模型網絡結構

3)深度學習算法之視訊提取特征模型

FFmpeg根據視訊相關參數選取合理數量的clip作為metadata。利用R2Plus1D版本的CNN模型擷取視訊特征的高維向量表達。将3D卷積分解為空間卷積和時間卷積,采用ResNet網絡的基礎block。相比C3D模型在不增加參數量的前提下增強了模型的表達能力。

基于深度學習技術的視訊内容檢測

圖六:a)R3D模型卷積核;b)R2Plus1D模型卷積核;R3D模型和R2Plus1D模型網絡結構

4、檢索方法

1)哈希檢索算法

此部分将CNN模型抽取出的1000維特征向量存入Redis資料庫完成持久化存儲,Redis資料庫動态更新儲存增量資料。為了保證相關特征向量的查詢比對,其中的方案之一便是使用LSH算法,該算法是查詢視訊的高維特征向量再做高維資料空間向量的位置敏感雜湊演算法( Locality-Sensitive Hashing ),即将每個視訊對應的圖檔計算得到的特征向量實作歸一化後得到每張查詢視訊在資料庫中最相似的視訊所對應的特征向量。

2)聚類算法

聚類方法避免對全空間進行搜尋,而是對全空間進行分割,将其分割成若幹小的子空間,在搜尋的時候,鎖定查詢向量應該落入的子空間,在該子空間中做周遊查詢。通過增加索引子類空間的個數提高搜尋的精準度。

基于深度學習技術的視訊内容檢測

圖七:特征向量聚類算法

3)矢量量化方法 (vector quantiation) 是将一個向量空間中的點用一個有限子集來進行編碼表示的過程。典型的有PQ乘積量化 (Product Quantization) 和倒排乘積量化 (IVFPQ) 。PQ乘積量化:本質是一種聚類的方法。

5、視訊重複内容檢測服務的工程架構選擇

1)系統架構,如下:

基于深度學習技術的視訊内容檢測

通過離線訓練模型搭配實時計算,進而完成線上服務。

2)線上服務處理流程:

基于深度學習技術的視訊内容檢測