天天看點

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

開啟人像區域彈幕屏蔽的《中國好聲音》

熱門視訊裡,「彈幕蓋臉」幾乎是必然事件,然而這個視訊裡,密密麻麻的彈幕都仿佛被李健老師的氣場所折服,非常準确地「繞開」了他英俊的臉。偶爾還會有一些小失誤,但這樣的失誤反而顯得更像是算法而不是人工做出來的。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

稍微失手的人像屏蔽

在學界,一個衆所周知的事實是,盡管在目标檢測任務裡,數家巨頭研究團隊都在論文中報告出了「超越人類」的結果,圖像分割任務似乎仍然給研究者們留下了不小的進步空間。谷歌今年 2 月發表的

DeepLabv3+

,在利用 3 億張内部資料做預訓練的前提下,在 PASCAL VOC 2012 資料分割資料集上拿到了目前的最佳效果(state-of-the-art),IOU 89%。在 Cityscapes 資料集上,這個數字僅僅是 82.1%。

給定這樣的研究水準,圖像分割技術已經可以用于業界了嗎?愛奇藝應用裡看起來非常可觀的「人臉與背景分割」,究竟是基于人工智能還是基于人工?帶着全編輯部的一籮筐問題,我們一路輾轉,聯系到了愛奇藝技術産品中心,并且捉到了這項名為「AI 彈幕蒙版」項目的算法負責人,愛奇藝技術産品中心研究員,馮巍。他給了我們非常詳盡的答案。

問題一:是不是分割?是什麼分割?

首先是我們最關心的問題還是:這個「彈幕蒙版」究竟是人工智能還是人工:

是不是圖像分割?是!是哪一種圖像分割?語義分割(semantic segmentation)!

更确切地說,是一個有兩個類别的語義分割:圖像裡每一個像素都會被配置設定到「前景」類别或者「背景」類别,然後系統會基于分割結果生成對應的蒙版檔案。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

原圖,分割結果(蒙版檔案可視化),以及蒙版效果

算法正是基于谷歌 DeepLabv3 模型,技術團隊也嘗試過 FCN 等其他分割模型,但是 DeepLab 的模型效果确實有突破。

馮巍也向我們展示了一些在綜藝和影視劇場景下的分類結果。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐
點選檢視原視訊連結

中國新說唱彈幕蒙版效果

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

延禧攻略彈幕蒙版效果

為什麼會想要用圖像分割做「彈幕蒙版」?

愛奇藝團隊的圖像分割技術作為技術儲備已經儲備了相當長時間了,初衷是想用于短視訊的背景替換。

所謂背景替換,就是把使用者錄制的短視訊裡的人像摳出來,換到另一個不同的背景裡。但是從技術角度來講,單張圖像分割效果合格不等于視訊分割效果合格:分割結果在視訊前後幾幀圖像中稍有不連續,就會造成幀間分割邊緣不停地抖動,而這樣的分割不連貫是非常影響使用者體驗的。

那麼有沒有要求比背景替換低一點的場景?有,比如那就是保留原始背景,在原始背景和分割出來的人像層中間插入動态背景。這樣分割邊緣和原始背景仍然在一起,誤差就不那麼明顯。這也是彈幕蒙版的來源了。

「技術 ready 了之後我們就一直在不同業務部門 demo 自己的各種能力,這樣産品的同學就能想出很多好的點子。」馮巍說。

實際上,彈幕蒙版裡用到的深度學習模型不隻是分割,還有識别。在對視訊進行分割前,「景别識别模型」會先對每一幀圖像進行一次識别,判斷目前幀屬于近景還是遠景。

這個景别識别任務,目的是判斷圖像是否是特寫或近景鏡頭畫面,這樣的圖像才會進入到分割模型中生成蒙版,而遠景畫面則不會生成蒙版,彈幕會像原來一樣覆寫整個畫面。這樣一來,幀間蒙版抖動的問題就得到了很好的解決。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

不需要生成蒙版的遠景和需要生成蒙版的近景

值得一提的是,這個景别識别分類器也是一個已有技術積累換了個場景再利用的例子:之前這個分類器主要用于愛奇藝的智能輔助後期制作等功能。

分割結束之後,系統會進一步利用「腐蝕」和「膨脹」等圖像形态學處理算法對分割子產品輸出的前景區域進行精細的剪裁,并根據應用場景的需要删掉畫面占比小的前景區域。

經過這一系列的處理之後,才進入到蒙版檔案的生成、壓縮等生産流程。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

愛奇藝彈幕蒙版系統流程圖

問題二:需不需要自己标資料?标了多少資料?

答案是需要!标了數萬張。

通用的分割模型都是用 MS COCO 等通用資料集進行的訓練,直接用在綜藝場景上效果就非常一般了。

「場景切換和舞台光是兩個通用分割模型很難處理好的問題。是以我們自己挑了數萬張典型場景的圖像,标注團隊前後花了三周時間。」馮巍說。

訓練集和測試集的分布一緻性也得到了很好的保證:「我們第一個上線彈幕蒙版功能的節目是《中國新說唱第二季》,是以我們就用《中國新說唱第一季》以及同一個拍攝團隊創作的《熱血街舞團》做了訓練集。」

值得一提的是,因為系統最終并不需要蒙版的分割「精細到頭發絲」,是以标注工作也相對于一般的語義分割标注也更為容易一些,馮巍展示了一些補充訓練集裡的樣例,「并不需要精細到像素,用直線把人物部分框出來就行了」。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

與街景分割相比,精細度要求下調許多的人物分割

通用語義分割模型使用專用資料集做了全盤精調之後,IOU 從 87.6% 提升到 93.6%。

問題三:效率怎麼樣?快嗎?貴嗎?

推理階段,一台 GPU 分割 1 分鐘的視訊,大約需要數分鐘,仍然在 O(1) 時間之内。

實際生産中,系統也經常遇到比較嚴苛的時間需求。「《中國新說唱》的制作團隊有一定的保密要求,比如節目周六八點要上線,我們可能四點鐘才能拿到片子。是以我們通過視訊分片數來控制生産服務的并發,并在所有分片完成後再通過消息隊列通知業務層,每個分片的生産有單獨的狀态監控和重試機制。最終系統同時使用了 多台 GPU,處理一段 90 分鐘的視訊大概需要 40 分鐘。」

團隊也在測試将彈幕蒙版用于晚會直播等實時場景中了。

問題四:有什麼「更新」打算?除了防止「彈幕蓋臉」之外還能做什麼?

首先,防止「彈幕蓋臉」也存在更新版,比如從語義分割更新到執行個體分割,把「所有人的防擋彈幕」變成「你愛豆的專屬防擋光環」。

圖像分割任務也分為好幾種,語義分割隻要求系統把所有圖像裡的「人」都分到「類别人」裡就好。除此之外,還有需要将不同人物分入不同類别的「執行個體分割」(instance segmentation)以及連背景都不放過的「全景分割」(panoptic segmentation)。

愛奇藝蒙版AI:彈幕穿人過,愛豆心中坐

原圖、語義分割、執行個體分割和全景分割

愛奇藝的技術團隊也在研究基于 MaskRCNN 的執行個體分割,輔以愛奇藝的長項:明星人臉識别,嘗試做「粉絲專屬彈幕蒙版」。

「舉個例子,如果你喜歡吳亦凡,那麼其他明星出來的時候,彈幕還是會把他們擋住,隻有吳亦凡出來的時候,彈幕會繞過他。」聽起來是非常符合粉絲心理學的設計了。

還有一種是拓展一下語義分割裡類别的邊界。比如,能不能分出鏡頭焦距内的像素和焦距外的像素。

這個想法也來自于實際需求:「《延禧攻略》裡,分割模型不光會識别出占了鏡頭主要位置的主角,和主角一起出現的、角落裡一個在焦外的、完全虛化了的小太監的背影也會被分割出來。而其實後面這部分是不需要的,分出來反而影響使用者體驗。」換言之,系統真正想要分割的是鏡頭的「焦内」和「焦外」,但是因為現在并沒有進行這一類特定分割任務的模型,是以就用「有人物出現的部分」作為「焦内」的指代了。那些指代得沒那麼好的情況,也仍然是一個需要解決的問題,開發一些新的分割門類,或許是一個解決方案,但是這就不是數萬張精調資料能夠就解決的問題了。

而就算是語義分割本身,也還能拓展出很多不一樣的應用場景,例如,商品的識别,也大有用處。

「比如一個手機廠商贊助了某一個節目,但是它并不是我們平台的贊助商,我們就需要把商标打碼,或者把商品抽取出來替換掉。這個工作現在還是編輯手工完成的。」

除此之外,還有跟蹤算法和分割算法的結合、用于移動端的模型加速與模型壓縮等等……聽起來,技術産品中心的研究員們的工作排期已經排到 8102 年了!

回到編輯部和小夥伴們交流完愛奇藝的做法,一點共同的體會是:彈幕蒙版的最終産品效果非常好,一言以蔽之,可以說是擺正對模型效果的期望,「量力而行」。

盡管分割模型還隻是個正确率 80% 左右的「寶寶」,但是如果不刻意「刁難」它,而是選擇一些不精細分割到頭發絲也不影響使用的簡單場景,再輔以一系列工程化的做法(例如用識别模型排除場景裡困難的情況、通過圖形學方法進一步優化分割效果),最終系統仍然能有上佳的成品效果。

雖然深度學習的思想是端到端的,但是需要正視的問題是,現實永遠比訓練集更複雜,在「一步登天」的模型出現之前,把「登天」的過程像「把大象放進冰箱」一樣分成三步,拿到一個可用的版本後再用疊代的方法解決新問題,是不是也是一個不錯的選擇?

繼續閱讀