Video++張奕:人工智慧在消費級視頻場景中的應用丨硬創公開課(附PPT)
雷鋒網按:視頻直播行業在前幾年迎來了井噴式爆發,隨著人工智慧技術的逐漸成熟,視頻的解決方案也在不斷完善,例如大數據、智能追蹤、直播互動、廣告精準推薦等,這些都在潛移默化中提升視頻的用戶體驗,並且也給視頻行業帶來了新的商業模式。
那麼人工智慧在視頻應用場景中究竟能發揮哪些作用?二者結合能帶來哪些新的商業應用?
本期硬創公開課,雷鋒網(公眾號:雷鋒網)邀請到了Video++人工智慧事業部研發Team Leader張奕為大家講解人工智慧在消費級視頻場景中的應用。
嘉賓簡介
張奕:Video++人工智慧事業部研發 Team Leader,中科院博士,研究領域包括深度學習、多媒體、計算機視覺、模式識別及視頻處理,原美國Autodesk研究院計算機視覺專家,擁有數項技術發明專利,在ICPR、ICVR等知名國際會議及Journal of Multimedia等國際期刊中發布過數篇論文。
Video++專註於消費級視頻大流量場景的AI科技公司,以視覺識別和大數據為基礎,實現視頻場景匹配和廣告自動投放,實現在視頻中的購物,百科,虛擬植入,卡牌互動,投票,發紅包等互動功能,為觀眾提供新型的互動體驗。
截至日前,服務的10000多家企業包括樂視視頻、芒果TV、愛奇藝、風行網、浙江衛視中國藍等綜合平台,鬥魚直播、戰旗直播、熊貓直播等直播平台,以及Zealer、日日煮、小李子足球等垂直網站和社區,每月為平台提供超過101億次的服務。
以下內容整理自本期公開課,雷鋒網做了不改變原意的編輯:
大家好,我是來自Video++團隊的張奕。Video++成立2年多來,一直致力於消費級視頻領域的技術產品的研發,利用人工智慧技術實現視頻內容的分析和識別。今天就給大家分享一下Video++團隊利用人工智慧技術在消費級視頻垂直領域的應用的技術和心得。
一、消費級視頻的特點
消費級視頻作為視頻的一個子類,當然具有相對於靜態圖像所具有的特點。即在時間維度上,能夠對內容識別提供重要的幫助,是統計演算法斟酌如何有效利用的重要因素。具體有以下特點:
數據量大
類別多樣
場景複雜
一般而言,視頻一般分為兩大類:消費級視頻和工業級視頻。工業級視頻指的是利用固定設備在固定條件、固定場景下拍攝的視頻。常見的有安防視頻。很顯然,消費級視頻相對於前者而言更加複雜。下面就來看一下其相對於其他視頻產品的不同。
1、數據量大
這是消費級視頻的第一個特點。隨著互聯網的發展壯大,很多產品的數據都通過互聯網和雲端進行傳輸和存儲。數據量大也使得消費級視頻的商業價值的潛力變得巨大,與此同時這也給人工智慧演算法處理提出了更高的要求。演算法運行時,必須考慮到計算的速度,且要在合理的時間裡對大量的數據進行分析和處理。
2、類別多樣
再來看消費級視頻的第二個特點。其實其本身可分為很多種類,如電影、綜藝、體育和廣告,還有這兩年非常火的直播、短視頻等等。這些子類的消費者視頻的內容形式之間又存在著很大的差異,所以也給不同子類的通用演算法提出巨大的挑戰。
3、場景複雜
上文也提到,工業級視頻由於條件固定,所以場景單一,而消費者視頻則來源多樣,後期還有很多加工,從而場景更加複雜。在消費者視頻里,經常能看到場景的切換、縮放和拼接,還有字幕,淡入淡出等功效設置。在很多消費者視頻中,如舞台綜藝節目的頻繁移動,交接的改變,都會對整體或者局部產生模糊。以上因素都會對人工智慧分析視頻內容產生一定程度的干擾,這就要求人工智慧演算法需要具備更高的魯棒性,以減少這些因素帶來的干擾。
二、人工智慧的發展與消費級視頻的分析
再來了解一下人工智慧技術在消費級視頻領域的應用,以及過去、現在和將來會達到什麼程度。
人工智慧在消費級視頻中最重要的功能是目標追蹤、檢測和識別。與工業級視頻相比,消費級視頻最大的區別在於其需要編輯、策劃和互動,這是我們可以介入的地方。像娛樂綜藝、在線直播等還有很大的剩餘價值有待開發。利用人工智慧技術對物體、人臉、場景、品牌進行系列結構篩選後,就能得到這個視頻里在何時何地出現了什麼人物、物體、場景和品牌的信息。然後再在這一基礎上對物體進行結構化,就能產生極大的商業價值。
目前來看,在視頻中加入廣告等都需要人工操作,如果採用人工智慧技術來完成這些工作,則能很大程度節省時間,降低成本。建立視頻結構化資料庫以後,經過關鍵詞的篩選,用戶可以批量化、精準化地進行廣告投放,這套系統就能將應用市場、廣告電商和消費者關聯起來,實現視頻商業的結構。
從以上可以看出,人工智慧在消費級視頻領域具有巨大的商業價值。但是,要實現以上的應用設計,還必須依賴技術的發展。人工智慧技術從上世紀30年代伊始,至今已有80年的發展歷程,也經歷了好幾次的技術飛躍。具體如上表所示,其中最近也是最重要的一次飛躍是在2010年——深度學習技術在識別中的應用。
在深度學習技術應用之前,人工智慧識別技術也在不斷發展,但是在實際應用中,演算法準確率與產品商業化要求之間還存在較大的差距。深度學習技術的出現,極大的提升了演算法的準確率,拉低了其與產品商業化要求的差距,使得人們看到了人工智慧技術近年來在消費級視頻等相關領域應用的希望。
三、如何構建基於深度學習的消費級視頻分析系統
在這一部分,我將從Video++在消費級視頻領域運用人工智慧技術的相關實例和心得為大家講述如何構建基於深度學習的消費級視頻分析系統。
大體來看,構建這一系統需要設計演算法框架和工程化框架。其中,演算法框架是基礎。
1、構建基於深度學習的消費級視頻分析系統的要素
構建基於深度學習的消費級視頻分析系統主要包括三種演算法。
首先第一個是深度學習演算法。如圖所示,其中就包括樣本的選擇、識別和標註,模型的設計以及訓練測量。
其次是計算機視覺&圖像處理。因為這裡涉及消費級視頻領域,所以必須藉助這一演算法對視頻進行必要的預處理,從而為深度學習做儲備。那麼這其中就包括目標檢測、跟蹤和圖像變換。
此外還包括其他一些演算法,如統計模型等。
以上演算法都是涉及構建消費級視頻分析系統需要藉助的基礎演算法,那麼,選擇演算法的標準又是什麼?主要與以下兩個因素有關:
準確率
速度
消費級視頻分析系統除了對準確率要求高之外,由於要分析規模龐大的數據,對處理速度要求也非常的高。不過,這兩項指標本身是存在衝突的。因為準確率更高的系統通常需要消耗更高的計算時間,而處理速度快的演算法相對而言準確率會更低,所以在設計演算法框架時需要在二者之間找到最優的平衡點。
下面我將從深度學習演算法框架開始,具體談談這個演算法中的設計要點。
1)深度學習:樣本採集和標註
在研究深度學習演算法中,往往最主要關注深度神經網路模型的設計,而訓練和測試樣本一般是採用公共的數據集,以便和其他的演算法進行比較。所以訓練樣本的採集和標註也不是那麼的重要。但是在消費級視頻分析系統運用到具體場景的應用中,訓練樣本的採集和選擇就顯得尤為重要。這是由深度學習的特點來決定的。
訓練一個深度學習模型,需要大量經過良好訓練標註的樣本。這些樣本的質量直接決定了訓練所得到的模型的泛化的程度。沒有足夠多的標註的數據,即使有好的網路模型,也是巧婦難為無米之炊,無法訓練出好的結果。
Video++在數據收集和標註上積累了大量的數據。數據的收集包括兩類重要的方式,一是由專業的團隊進行離線的數據收集和標註,作為初始模型的訓練數據。二是由離線收集的訓練數據得到初始模型,然後在線上測試得到反饋數據,從中挑選錯分的樣本,再經過人工的標註後,將其加入訓練數據集裡面,對模型模型進行持續的訓練和分析。我們認為在不久的將來,待標註的數據將成為一項技術壁壘,因為它直接決定了訓練模型得到的數據的準確率。
樣本的收集中還有一個值得注意的問題採集的訓練樣本必須與應用環境中的樣本分布盡量保持一致。以消費級視頻分析為例,訓練樣本必須盡量從消費級視頻里收集,最大限度地使訓練樣本與應用環境樣本分布保持一致。如果從其他數據源,如工業級視頻或靜態圖像中獲取訓練樣本,則會降低在消費級視頻的測試的準確率。
2)深度學習:模型的選擇與設計
標註樣本數據之後,我們就要針對應用的類別和樣本的特點選擇對應的模型類型和訓練方式。如單禎的分類應用通常選擇卷積神經網路模型,時間序列建模相關的分類應用則選擇遞歸神經網路模型。選定模型類別之後,根據應用的複雜程度和訓練樣本的大小選擇模型的深度。
原則上來說,越深的模型應用效果更好,但前提是要有足夠多的樣本來支持。另外,更深的模型也會對硬體容量大小提出更高的要求。對於硬體愛好者或者創業初期的公司來說,硬體條件也是選擇訓練模型的深度需要考量的一個因素。
而訓練方式中面臨的一個困難選擇在於,是用訓練樣本從頭開始訓練模型,還是在大規模訓練集上得到的通用訓練模型的基礎之上,再用樣本進行數據的微調。這個微調是由訓練收集的樣本大小來決定的。如果訓練樣本規模不足,那麼可以考慮採用以通用模型作為初始化參數,然後再在收集的樣本上進行數據微調的方案。具體有哪些層的參數可以進行微調呢?也是由訓練樣本規模和應用問題來決定的。
2、視頻分析演算法總體框架的設計
在訓練好了深度學習模型之後,我們並不能完整解決消費級視頻的問題。一個端到端的視頻分析系統,必須需要計算機視覺和深度學習識別技術的配合。
計算機視覺演算法主要負責視頻的預處理,包括
視頻結構的分割
目標軌跡的提取
目標圖像的處理
識別結果的處理
這些工作為深度學習網路模型提供數據輸入、計算機視覺和統計演算法,還負責對深度網路模型輸出的結構進行後處理,生成最真的視頻分析結果。
3、工程化
在有了演算法架構之後,已經能夠實現應用所要求的功能,做成演示系統,但要滿足產品化的要求還需要精心設計後的工程構架。工程化的構架所要解決的問題是讓演算法在生產的高密髮狀態下生成快速的運行,提供穩定的服務。為了達到這一目的,工程化可以從以下方面進行優化:
首先是演算法的並行化。這其中就包括單一演算法內部代碼的優化和多演算法模塊之間的並行化。
此外,為了處理高並發,需要設置有效的分散式系統和多任務調度系統。
由於不同的演算法模塊對GPU/CPU的計算資源分配不同,需要對演算法模塊進行分割,分配不同的GPU/CPU資源。
最後還要還需要設置合理的任務優先順序處理程序,對高優先順序的任務進行及時的相應。
4、以消費級視頻中的人臉識別為例
前面談到了很多設計思路,下面我想要藉助消費級視頻中的人臉識別技術來說明下前面提到的設計原則是如何在場景具體應用的。
我們在拿到一個具體應用中,需要明確系統的「輸入」和「輸出」。其實「輸入」很簡單,就是消費級視頻具有場景多樣、數據量大等特點,系統的「輸出」是視頻結構化的信息,結構化的基準是人臉的軌跡和軌跡識別標籤。整個輸出是整個人臉的一個列表,列表中的每一個元素就是一條人臉軌跡。每條人臉軌跡可用一系列的標籤來描述,如起始禎號、軌跡長度、人臉坐標列表、識別結果標籤和識別結果置信度等。總結這些屬性,總共包括兩方面。一是軌跡出現的位置和時間,第二是軌跡識別的標籤。
由此我們可以想到,一個初步的演算法設計框架,由計算機視覺的人臉檢測跟蹤演算法來獲得人臉軌跡的位置時間信息,再由深度學習神經網路來識別人臉的標籤。
在開始演算法設計前,需要牢記消費級視頻場景負責、數據量大、類別多樣的特點,以及識別準確率和處理速度的要求。
1)模塊一:視頻結構化,將視頻用鏡頭分割
對於消費級視頻而言,鏡頭的切換非常頻繁,而任何軌跡目標的提取都應該在單一鏡頭裡面進行的。所以鏡頭分割成為一項重要的預處理環節。在設計鏡頭分割模塊演算法的時候,我們依然要權衡準確率和處理數據速度的指標。
在這一環節中,通常採用全局特徵和局部特徵相結合的方法。全局特徵檢測全局顏色的分布突變,然後借用局部特徵獲得的人臉識別的跟蹤結果、跟蹤軌跡的斷續來判斷視頻是否具有鏡頭切換。跟蹤來判斷鏡頭切換有一個很大的優點,因為後續的步驟也會採用相似的演算法,所以這一步驟所需的演算法是可以重複使用的。
2)模塊二:人臉軌跡提取
完成了鏡頭分割以後,就可以分割好的單一鏡頭裡進行人臉軌跡提取。在軌跡提取的演算法上,同樣要考慮準確率和速度的指標。要實現速度和準確率的平衡,可以有以下兩種途徑:
1. 間隔採樣 or 逐幀處理
2. 檢測 & 跟蹤的配合
間隔採樣僅僅需要處理時間點上的幀,這樣就能大大降低處理的數據量,從而提升處理的速度。但是這一方法也同時丟失了時間序列的前後幀的關聯信息,會影響後續視頻的準確率。由於消費級視頻場景複雜的特點,單幀圖像的質量往往比較差,所以我們摒棄了提取關鍵幀作為識別依據的做法,所以我們採用檢測跟蹤和逐幀的處理整條人臉軌跡進行分析。
我們的設計思路是盡量獲得更多的幀,來彌補單禎質量的不足。而在逐幀處理的策略下,我們採用的是跟蹤模塊,能夠最大限度地利用時間信息來降低獲取人臉位置的開銷。因為跟蹤比檢測的計算量要小很多。
接下來,我們設計了檢測和跟蹤演算法的配合策略,同樣是為了實現準確率和速度的平衡。在等間隔時間等量進行人臉的檢測,以發現新出現的人臉目標,然後對其進行跟蹤。在跟蹤的時候,會在跟蹤框周圍進行簡單的檢測,用檢測框對檢測結果進行修正,提高檢測的準確度。從而在這一情況下實現速度和準確率的平衡的目標。
然而,在人臉軌跡提取中還存在一些複雜情況。一個是多目標,另一個是要注意尺度的變化。這些情況在消費級視頻中還挺常見,需要額外的計算開銷,這也是在演算法設計中需要權衡的變化。
3)模塊三:人臉識別
有了人臉軌跡之後,我們就可以開始進行人臉的識別了。但是在將人臉數據輸入深度網路之前,還需要對其進行必要的變換和處理。其中一部分變換在針對人臉這一部分非常重要,尤其是在消費級視頻里,那就是人臉的對齊。人臉對齊是利用人臉的特徵點檢測定位,將各種姿勢的人臉圖像還原矯正為正臉的過程。這需要對齊的原因是,人臉識別的模型是從人的正臉圖片訓練得到的。為了讓訓練模型保持和應用的一致性,人臉對齊在消費級視頻里是必不可少的步驟。
在識別之前,對人臉數據的預處理還包括人臉質量的評估。這一模塊的設計也是與消費級視頻的特點息息相關的。由於消費級視頻里的圖片同樣出現參差不齊的現象,所以一些低質量的人臉識別的結果是不可信的,這將干擾最終的視頻結果。因此我們在演算法框架中,加入了人臉質量評估的演算法,以過濾低質量的人臉圖片,保證人臉數據的準確率。
傳統的人臉質量評估,包括客觀評價指標和主觀評價指標。就此,我們採用深度學習神經網路來進行評估。主要分為三個步驟。
標註人臉數據。從互聯網獲取到有信息量的圖片,截取出人臉框,根據角度、旋轉、尺度、光照等因素對樣本的質量進行打分,記錄分值,並將人臉截圖和分值配對,建立訓練處理集。
利用標註的人臉數據離線訓練深度學習神經網路,網路的輸入是人臉框,輸出是質量評估分值。神經網路採用後續可以使用人臉識別相同的結果,這樣可以共享部分的權值。
將每一張待輸入的人臉圖片直接輸入到質量評估網路里,再把網路的輸出作為該圖片的質量評分。這一評分可用於後續人臉識別樣本的過濾和置信度的參考。
經過一系列的人臉識別和變換,現在可以開始訓練人臉識別模型。樣本的準備依然是模型訓練最基礎也是最重要的一個環節。
針對消費級視頻里的女性識別這一應用,我們徵集了超過6000位女性一共50萬張圖片進行標註。另外還採用了公開人臉數據集,大約涉及1萬人,50萬樣本,總的數據規模超過100萬張。根據不同的應用要求,選擇不同的卷積神經網路模型,以平衡計算的難度和精確度。
由於新的樣本達到了足夠的規模,可以採用直接訓練的方式。Video++利用訓練得到的模型對人臉樣本進行特徵提取,在測試的時候,在視頻中檢測到的人臉後,同樣將其輸入到生成的特徵向量里,與人臉互動的特徵向量進行匹配,從而找到在特徵空間中最接近的一個樣本。
4)模塊四:識別結果融合
以上提到的人臉識別都是針對單幀識別的圖片而言的,之前說到的系統識別結果都是針對整個人臉軌跡而言。因此,最後需要將人臉識別的結果與整條人臉軌跡融合起來,得到整個軌跡的識別結果。
識別結果的融合策略也有很多。簡單的有投票策略,即將尾幀的識別結果是為一票,識別結果票數最高者則為軌跡的最終識別結果。也有用神經網路來實現這一融合,可以訓練一個時間維度上的神經,將每一幀識別出的特徵向量作為網路的輸入,經過在時間維度上的一系列的參數變換得到最終的特徵向量。
總結各個模塊,可以得到消費級視頻中明星產品——人臉識別的總體框架。總而言之,可有四個步驟:
視頻結構的預處理,目的是把視頻按鏡頭瓜分;
人臉軌跡的生成。用監測跟蹤結合的策略生成單一鏡頭內人臉的軌跡;
人臉的識別。人臉圖像經過對齊、質量評估後,輸入人臉識別網路,生成單幀識別的結果;
對軌跡上各幀的識別結果進行融合,得到軌跡的最終識別結果。
(關於技術講解的部分就到這裡,下面第四部分的內容則由Video++視頻產品負責人魏傳勇先生來為大家分享)
四、基於人工智慧的消費級視頻分析產品
Video++在技術領域已經投入了很多,也有了一定的研發實力,所以給大家分享一下我們團隊已經商業化的AI產品。
Video++現在的AI應用主要集中在一些國內主流的視頻平台,像芒果TV、樂視TV、搜狐視頻等,也有一些直播平台,如鬥魚、熊貓等。
如張奕博士在前文提及到的,Video++團隊在消費級視頻里借用人工智慧技術,通過對人臉進行識別以及跟蹤監測,從而將廣告與視頻建立起相應的關聯性,算出廣告插入的最佳時間以及位置,從而增加用戶對該品牌的好感度。
這是Video++本次分享帶來的第一個產品——「劇情卡牌」。該產品利用人工智慧技術對視頻中的場景、物體等進行辨識,然後去抓住與場景節點可以結合的點去設置劇情任務。
如這張圖片所示,該視頻中顯現的是一個辦公場景,所以「劇情卡牌」可能會從場景中挑選出現在鏡頭裡的某個品牌的產品,設置一個與大家生活契合的主題,擬三個簡單的問題以供用戶作答。
以該視頻中某個鏡頭舉例,有一個場景是女主角在下雨天邊講電話邊撐傘奔跑,那麼「劇情卡牌」就會針對女主角手中的手機作為任務問題,讓用戶答題。事實上,該手機品牌正是Video++服務的一家企業。
上圖演示的即為Video++的產品——關聯雲圖。簡單來說,就是關聯視頻內容推出與之匹配的動態效果廣告,以可視的方式告知用戶其使用該品牌商的產品,可以在哪些場景下使用。
「穿屏貼」也同樣是一則與消費級視頻的廣告投放相關的AI產品。即將物品與視頻內容建立關聯性,從而推送動效廣告,點擊後可觀看小窗貼片。用戶在觀看視頻的過程中,看見這樣的廣告可能不致於反感,還能建立相關的趣味性。
此外,「情境中插」也是與前面提到的案例相似的產品。不同的在於,其能同時分析影視劇與TVC,在匹配度最高的節點播放中插入廣告。
Video++視頻還有一個產品,名為「關聯海報」。意如其名,關聯視頻內容推送提示窗,點擊提示窗可觀看窗口貼片和品牌信息。
精彩問答
Q1:Video++有開放SDK嗎?
答:Video++的AI產品其實分為兩部分。一部分是對場景的辨識,這一塊是不需要SDK的,只需要達到用戶能夠辨識的使用程度。還有就是可以在播放器上增加可預選的信息,同時提供更新的服務。另一方面就是SDK,這一部分可以實現各種各樣的開源信息。
Q2:演算法現在只是針對GPU和CPU進行優化嗎?
答:現在不僅僅是針對GPU和CPU優化。我們需要在線上的基礎上建立多方面的提取,所以不僅要優化GPU和CPU的訂單,還要處理各個集群之間的內容,還有任務之間的調配。
Q3:老師提到,採集的訓練樣本必須要與應用環境中的樣本分布盡量保持一致,但深度學習的訓練需要採集大量的數據,那麼在數據收集方面您有哪些好的建議?
答:由於針對某一具體應用,我們不可能收集到大量的訓練樣本,所以在這種情況下就可以採用一個有效的方式:在一個基礎的訓練之上,首先訓練一個基礎模型,然後再去收集跟你應用相關的數據,再在這一訓練模型上利用相關數據進行參數微調。這樣就能用少量的標註樣本達到目的。
Q4:Video++現在的人臉識別的準確率能達到多少?
答:70%左右。包括人臉對齊,人臉檢測的多個環節。
Q5:Video++除了廣告推薦以外,還有其他的產品嗎?
答:廣告推薦是我們的一個方向,因為現在一些產品在這一領域的商業化也比較成熟。未來還會往新的方向去研究。
Q6:Video++支持多個人臉識別嗎?那這一塊的準確率是多少呢?
答:Video++本身設計的就是以多人臉識別的演算法。如前文提到的,準確率在70%左右。
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。
推薦閱讀:
※如何成為一名全棧語音識別工程師?
※邏輯與神經之間的橋 (2.0版)
※H3智能健康體脂秤評測:功能多樣,性價比高
※年度AI跳槽指南 | CV公司哪家強?人生巔峰怎麼上?(真題第二彈)
※圖解Keras等8個深度學習庫(下載)