快手Y-tech:GAN在短視頻中的AI特效實踐
導讀

近年來,以GAN為代表的生成式技術在學術界取得蓬勃發(fā)展。在工業(yè)界,基于生成式技術的真實感效果也引領了一批爆款特效和應用。快手Y-tech在國內(nèi)率先將GAN落地于短視頻特效制作,并積累了豐富的實踐經(jīng)驗,為快手各類人臉爆款特效提供有力技術支持。本文主要介紹快手在高精度人臉屬性編輯方面的實踐,包括性別、年齡、頭發(fā)、表情等的生成。
文章來源 快手Ytech 編輯 智東西公開課
背景介紹

人臉特效是輔助短視頻內(nèi)容生產(chǎn)的重要組成部分,生動好玩的特效有利于促進短視頻內(nèi)容的消費。傳統(tǒng)的人臉特效主要依賴于人臉二維和三維的語義理解,并結合圖形圖像處理、優(yōu)秀的產(chǎn)品設計達到吸引用戶的目的,但該特效制作存在真實感缺失的局限。
近些年,生成式技術如VAE、GAN、AutoRegressive Model、Normalizing Flow Model等[1]在學術界取得了蓬勃發(fā)展。在這其中,GAN[2]是杰出的代表,GAN通過生成器和判別器的相互博弈,使得生成器生成的數(shù)據(jù)分布接近真實數(shù)據(jù)分布。自2014年GAN提出以來,GAN生成效果逐漸逼真和高清,廣泛應用于圖像翻譯、圖像修復和增強、圖像和視頻合成等領域[1]。

GAN技術對于特效生產(chǎn)具有重要意義。第一,GAN生成效果真實感強、清晰度高,可以做到傳統(tǒng)特效無法實現(xiàn)的效果。第二, GAN是端到端的效果輸出,可節(jié)約特效制作成本。第三,GAN可進一步實現(xiàn)自動化的圖片和視頻生產(chǎn),降低短視頻生產(chǎn)的門檻。
在工業(yè)界,GAN技術造就一批爆款特效和應用,海外如FaceAPP的變老、Snapchat的變性別,在國內(nèi),快手是最早將GAN落地于短視頻特效制作的公司,本文從高精度人臉屬性編輯方面介紹GAN在快手的實踐工作,如性別、年齡、頭發(fā)、表情等的生成和變化。
業(yè)務應用

目前,生成式技術在高精度人臉屬性方面,主要應用于快手、一甜相機等App的特效模塊。
第一,快手魔表。在快手手機端魔表拍攝功能上,我們自2019年8月陸續(xù)推出多款魔表,如變小孩、我的一生、變性別、大笑嘟嘴等表情, 給大家?guī)硇缕骟w驗。

變小孩

我的一生

變性別
表情套系
第二,一甜相機的服務端頭發(fā)自然生長。發(fā)型對于人的美感及形象是至關重要的。與臉型和五官適配的發(fā)型可以修飾面部的缺陷,提高一個人的氣質(zhì)與魅力。但是,人們往往沒辦法很快的改變自己的發(fā)型,比如自己本身是短發(fā),想看看變成長發(fā)是否能為自己的形象氣質(zhì)加分,那就需要等待數(shù)月來讓頭發(fā)長長。傳統(tǒng)特效采用假發(fā)貼片效果很假,側臉角度容易露怯,利用生成式技術可實現(xiàn)高精度的真實感頭發(fā)生成。


(a) 原圖 (b) faceapp結果 (c) 快手結果
問題分析

在落地實踐中, 需要解決如下幾個關鍵問題。
第一,GAN訓練不穩(wěn)定,容易出現(xiàn)斑點、偽影、局部區(qū)域扭曲等問題。在落地過程中,我們將GAN模型分為兩個階段,分別為造數(shù)據(jù)模型和pixel2pixel模型。GAN訓練不穩(wěn)定會導致造數(shù)據(jù)階段生成的配對數(shù)據(jù)失敗率高,無法造出大量合格數(shù)據(jù)提供給后續(xù)的pixeltopixel模型,影響了項目的整體進度。
第二,不同落地終端和場景對效果要求不一。
(1)服務端。服務端算力足,可采用離線處理方式,時延要求不高。但服務端上傳用戶圖片清晰度和分辨率不一、光照角度等復雜性高。故服務端方案需要做到高清、魯棒性好。
(2)手機端。從算力角度看,手機端算力不一,算法需跨越幾百塊手機到上萬塊手機性能,需解決低延遲和算力低的矛盾。從拍攝場景看,大部分是近距離、正常光照、小角度自拍。故需設計不同機型的細分方案,保證效果的良好體驗。
第三,用戶體驗決定算法目標和優(yōu)先級。特效最終服務于用戶,拍攝體驗決定算法優(yōu)化方案的目標和優(yōu)先級,比如頭發(fā)生長需要考慮頭發(fā)蓬松度和長度,變老需要考慮真實感和美觀度的統(tǒng)一。
技術實踐

接下來我們介紹具體落地環(huán)節(jié)遇到的難點和解決方案。特效生產(chǎn)涉及到數(shù)據(jù)準備、算法開發(fā)、工程部署、素材設計和制作、產(chǎn)品玩法包裝、運營推廣等各方面,參與環(huán)節(jié)多,需整體考慮各環(huán)節(jié)對用戶體驗影響。
第一,數(shù)據(jù)準備。在實踐過程中,我們無法收集到合理的配對數(shù)據(jù),比如一個人從小到老的相同pose下的圖片,同一個男性變成女性的照片,大部分人臉屬性的變化只能收集到非配對的數(shù)據(jù)。數(shù)據(jù)收集的質(zhì)量、多樣性、數(shù)量影響了最終的效果。以頭發(fā)生成為例, 收集頭發(fā)圖片的清晰度和美感等質(zhì)量決定生成效果的理論上限。用戶頭發(fā)的長度、顏色、走向、厚薄、彎曲程度等都不一樣,要求收集數(shù)據(jù)需涵蓋各種發(fā)型,否則模型泛化性效果較差。數(shù)據(jù)的數(shù)量也影響了造數(shù)據(jù)模型的泛化性。在該環(huán)節(jié)中,需多方聯(lián)合把控數(shù)據(jù)的整體質(zhì)量。作為算法人員,需要關注數(shù)據(jù)分布情況是否能涵蓋實際落地場景,可使用數(shù)據(jù)擴增、StyleGAN[3]產(chǎn)生的虛擬數(shù)據(jù)等方式擴充數(shù)據(jù)的多樣性和數(shù)量,有效利用數(shù)據(jù)增強、人工修圖等多種方式提升數(shù)據(jù)質(zhì)量。
非配對人臉數(shù)據(jù)收集

非配對頭發(fā)數(shù)據(jù)收集
第二, 造數(shù)據(jù)模型生產(chǎn)效率和成品率提升, 經(jīng)過人工審核后得到合格配對數(shù)據(jù)。人臉屬性變化本質(zhì)上是圖像翻譯的問題,在拿到unpairs數(shù)據(jù)后, 我們有三種方式生成pairs數(shù)據(jù)。
(1)domain translation methods,常見如cyclegan[4]、MUNIT[5]、ugatit[6]、starganV2[7]等,此類技術將數(shù)據(jù)劃分為不同的domain,通過對每個domain設計單獨的生成器、單獨的style、單獨的分支等來實現(xiàn)domain之間的變換,比如可實現(xiàn)性別變換、季節(jié)變換等。該方法相對成熟,在實踐中,我們針對人臉和頭發(fā)生成項目做了一系列改進。
在人臉變化上,引入自適應空間注意力機制,讓模型更關注變化區(qū)域,引入人工篩選得到合格pairs數(shù)據(jù),半監(jiān)督自循環(huán)訓練模型,提升模型的收斂速度、訓練穩(wěn)定性和成品率。
在固定發(fā)型生成上,頭發(fā)的多樣性以及缺乏準確的參數(shù)化描述方式使得想要精細控制生成的頭發(fā)比較困難,但是如果不能精細控制頭發(fā)的形狀、顏色、發(fā)絲走向,那么在實時拍攝時生成的頭發(fā)就會抖動,缺乏真實性。我們提出了相應的解決方案,引入了設計師繪制的3D發(fā)型模板,并將3D發(fā)型抽象為代表形狀的mask、代表發(fā)絲走向的edge,通過將這些抽象的信息與真實圖像進行融合來達到控制生成頭發(fā)的目的。在該方案中,我們通過deform操作來改善生成頭發(fā)與臉部的貼合度,并通過高低頻分離的方式將紋理與顏色解耦,從而保證了實時情況下生成頭發(fā)的紋理與顏色都是穩(wěn)定的,該方法可以擴展至多種應用,詳情可見我們的論文[8]。
在頭發(fā)自然生長上,我們將頭發(fā)數(shù)據(jù)劃分為短發(fā)和長發(fā)兩個domain,每個domain有自己的style code,并利用其來控制StyleGAN,從而得到對應domain的輸出圖像。在該方案中,我們采用了局部-全局優(yōu)化策略實現(xiàn)了人臉與頭發(fā)解耦,保證頭發(fā)生長的同時臉部不發(fā)生變化;使用了multi-scale的生成器來得到細致的頭發(fā)紋理;采用半監(jiān)督訓練提升了數(shù)據(jù)成品率。

(2)基于StyleGAN的隱變量操控方法,如論文[9-11]通過在stylegan中對隱變量施加相關人臉屬性控制,使得生成圖片滿足指定的屬性變化?;诖祟惙椒?,我們自研了基于視頻的可微分3DMM,更好解耦表情參數(shù)和人臉形狀參數(shù),并加入StyleGAN隱變量控制中,實現(xiàn)各種表情的生成。

(3)Mask guided methods:這類方法主要有MaskGAN[12],SEAN[13],MichiGAN[14]等,他們的核心是用mask限定了待編輯區(qū)域的范圍,以SEAN為例,其對一張圖像的五官及頭發(fā)分區(qū)域提取style得到style matrix,并將其與各區(qū)域的mask作為semantic region-adaptive normalization模塊的輸入,從而達到分區(qū)域控制生成結果的目的。

第三,基于合格的配對數(shù)據(jù)訓練pixel2pixel模型。利用知識蒸餾思想,將unpairs模型轉(zhuǎn)化為pairs模型,模型效果更穩(wěn)定和魯棒。為保證模型能在不同算力手機的實時效果,我們做了如下優(yōu)化。
(1)基于自研的ycnn手機端高效推理引擎,針對不同底層架構如NPU、METAL、DSP、OpenCL、NEON等適配高效網(wǎng)絡結構模型。
(2)提升判別器效果:在對抗訓練階段中引入預訓練特征以提升判別器對細節(jié)紋理的判斷能力,同時穩(wěn)定判別器的訓練過程,最終強化模型對細節(jié)紋理的生成能力;采用多尺度、全局-局部判別器進一步優(yōu)化局部清晰度。(3)設計計算高效的逐像素空間注意力機制, 改進生成器網(wǎng)絡的淺層和深層特征融合方式,在領域特征變化的同時保留更多原圖細節(jié)特征。

第四,模型部署和素材制作。素材制作可使用輕量級的操作讓模型的最終效果更上一層樓,比如美顏、美型、美妝、銳化、氛圍添加等常見操作,提升用戶對美的感受。素材操作可以是落地的最后一環(huán),也可以作為造數(shù)據(jù)模型的必要環(huán)節(jié),提升造數(shù)據(jù)階段的數(shù)據(jù)質(zhì)量。比如,在變小孩造數(shù)據(jù)階段引入美型可以降低圖像翻譯過程中的形變帶來的學習困難,提升造數(shù)據(jù)成功率。
總結

近年來,GAN在人臉屬性變化上的研究眾多,似乎GAN對于人臉屬性的變換和生成是一個已解決的問題,但在實際應用過程中,要想在有限的項目周期內(nèi)達到極致的用戶體驗還有很多技術挑戰(zhàn)。在算法方面,我們持續(xù)研發(fā)基于少量數(shù)據(jù)的StyleGAN屬性操控方案,進一步縮短算法研發(fā)周期。在用戶體驗方面,我們使用超分、美顏、多模型融合等方法提升數(shù)據(jù)質(zhì)量,使用合理的數(shù)據(jù)擴增和訓練方式提升低畫質(zhì)生成效果。在有限算力和內(nèi)存情況下,我們緊密結合工程和模型設計,提升低算力設備的性能和效果體驗。未來, 這些方面都需要我們緊跟學術發(fā)展,持續(xù)的創(chuàng)新和認真細致的努力, 創(chuàng)作更優(yōu)質(zhì)和有吸引力的短視頻內(nèi)容。
引用
猜您喜歡:
附下載 | 經(jīng)典《Think Python》中文版
附下載 |《TensorFlow 2.0 深度學習算法實戰(zhàn)》





