移動端人臉風(fēng)格化技術(shù)的應(yīng)用
前言
隨著元宇宙、數(shù)字人、虛擬形象等概念的爆發(fā),各種數(shù)字化協(xié)同互動的泛娛樂應(yīng)用也在不斷的落地。例如,在一些游戲中,玩家成為虛擬藝人參與到高還原度的現(xiàn)實藝人日常工作中,并會在特定情況下,與虛擬藝人在人臉表情等層面上形成強映射提升參與感。而由阿里巴巴天貓推出的超寫實數(shù)字人AYAYI和井柏然聯(lián)合“帶逛”的雜志《MO Magazine》,則打破傳統(tǒng)的平面閱讀體驗,以虛實結(jié)合的形式讓讀者獲得沉浸式體驗。
而在這些泛娛樂應(yīng)用場景中,“人”必然是首要考慮的一步。而人工設(shè)計的數(shù)字、動畫形象,存在過于“抽象”、代價高昂、缺乏個性化等問題。因此在人臉數(shù)字化上,我們通過研發(fā)具有良好控制感、ID感、風(fēng)格化程度的人臉風(fēng)格化技術(shù),實現(xiàn)風(fēng)格定制化的人臉形象切換。該項技術(shù)不僅可以在直播、短視頻等娛樂消費場景下作為氛圍營造、提高觀感的有效手段,也可在買家秀等圖文場景下起到人臉隱私保護、增添樂趣等作用。更進一步的想象,若不同的用戶聚集在某個數(shù)字社區(qū)內(nèi),用該社區(qū)風(fēng)格的數(shù)字形象聊天社交(例如“雙城之戰(zhàn)吧”的用戶在元宇宙內(nèi)用雙城之戰(zhàn)風(fēng)格化形象友好交流),那是多具有代入感的事情。
雙城之戰(zhàn)動畫
左圖為原始AYAYI的形象,右圖為風(fēng)格化后的形象。
而為了將人臉風(fēng)格化這項技術(shù)落地到我們的直播、買家秀、賣家秀等不同的泛娛樂業(yè)務(wù)場景,我們做到了:
- 低成本生產(chǎn)不同人臉風(fēng)格化編輯的模型(本文所展示的所有效果均在沒有任何設(shè)計資源的投入下實現(xiàn)的);
- 適當(dāng)進行風(fēng)格編輯以配合設(shè)計、產(chǎn)品、運營進行風(fēng)格選型;
- 能夠在人臉I(yè)D感和風(fēng)格化程度之間做傾斜與平衡;
- 保證模型的泛化性,以適用于不同的人臉、角度、場景環(huán)境;
- 在保證清晰度等效果的前提下,降低模型對算力的要求。
接下來,我們先看一下demo,然后再介紹我們整個技術(shù)流程:感謝我們的產(chǎn)品mm——多菲~
我們的整體算法方案采用三個階段:
- 階段一:基于StyleGAN的風(fēng)格化數(shù)據(jù)生成;
- 階段二:非監(jiān)督圖像翻譯生成配對圖像;
- 階段三:使用配對圖像進行移動端有監(jiān)督圖像翻譯模型的訓(xùn)練。
人臉風(fēng)格化編輯整體算法方案
當(dāng)然,也可以用二階段方案:StyleGAN制作pair圖像對,然后直接訓(xùn)練有監(jiān)督小模型。但增加非監(jiān)督圖像翻譯階段,可以將風(fēng)格化數(shù)據(jù)生產(chǎn)和配對圖像數(shù)據(jù)制作兩個任務(wù)解耦開來,通過對階段內(nèi)算法、階段間數(shù)據(jù)的優(yōu)化改進,結(jié)合移動端有監(jiān)督小模型訓(xùn)練,最終解決低成本的風(fēng)格化模型生產(chǎn)、風(fēng)格的編輯及選型、ID感及風(fēng)格化的傾斜、部署模型的輕量化等問題。
基于StyleGAN的數(shù)據(jù)生成
使用StyleGAN算法進行數(shù)據(jù)生成的工作上,主要針對3個問題的解決:
- 提升模型的生成數(shù)據(jù)豐富度和風(fēng)格化程度:例如生成CG臉更像CG,且各個角度、表情、發(fā)型等形象更豐富;
- 提升數(shù)據(jù)生成效率:生成的數(shù)據(jù)良率高、分布更加可控;
- 風(fēng)格編輯及選型:例如修改CG臉的眼睛大小。
下面我們針對這三方面展開。
? 豐富度和風(fēng)格化
基于StyleGAN2-ADA的遷移學(xué)習(xí)遇到的第一個重要問題就是:模型的豐富度和模型的風(fēng)格化程度之間的trade-off。使用訓(xùn)練集進行遷移學(xué)習(xí)時,受訓(xùn)練集數(shù)據(jù)的豐富度影響,遷移后的模型在人臉表情、人臉角度、人臉元素等方面的豐富度也會受損;同時,隨著遷移訓(xùn)練的迭代代數(shù)增加、模型風(fēng)格化程度/FID的提升,模型豐富度也會越低。這會使得后續(xù)應(yīng)用模型生成的風(fēng)格化數(shù)據(jù)集分布過于單調(diào),不利于U-GAT-IT的訓(xùn)練。
為了提升模型的豐富度,我們進行了如下改進:
- 調(diào)整、優(yōu)化訓(xùn)練數(shù)據(jù)集的數(shù)據(jù)分布;
- 模型融合:因為源模型在大量數(shù)據(jù)上進行訓(xùn)練,所以源模型的生成空間具有非常高的豐富度;如果將遷移模型低分辨率層的權(quán)重替換為源模型對應(yīng)層權(quán)重得到融合模型,則可使得新模型的生成圖像在大的元素/特征上的分布與源模型一致,從而在低分辨率特征上獲得與源模型一致的豐富度;
融合方式:Swap layer直接交換不同層的參數(shù),容易造成生成圖像的不協(xié)調(diào)、細節(jié)bad cases;而通過平滑的模型插值,可以獲得更好的生成效果(下面的圖示皆由插值融合方式的融合模型生成的)
- 對不同層的學(xué)習(xí)率以及特征進行約束、優(yōu)化調(diào)整;
- 迭代優(yōu)化:人工篩選新生產(chǎn)的數(shù)據(jù),添加到原風(fēng)格化數(shù)據(jù)集中以提升豐富度,然后在迭代訓(xùn)練優(yōu)化直到得到一個能生成較高豐富度、滿意風(fēng)格化程度的模型。
?原圖,遷移模型,融合模型
? 數(shù)據(jù)生成效率
如果我們擁有一個豐富度高的StyleGAN2模型,那如何生成一個具有豐富分布的風(fēng)格數(shù)據(jù)集呢?有兩個做法:
- 隨機采樣隱變量,生成隨機風(fēng)格數(shù)據(jù)集;
- 使用StyleGAN inversion,輸入符合一定分布的人臉數(shù)據(jù),制作對應(yīng)的風(fēng)格數(shù)據(jù)集。
做法1可以提供更豐富的風(fēng)格化數(shù)據(jù)(特別是背景的豐富度),而做法2可以提高生成數(shù)據(jù)的有效性和提供一定程度的分布控制,提升風(fēng)格化數(shù)據(jù)生產(chǎn)效率。
原始圖像,StyleGAN Inversion得到的隱向量送入“高級臉風(fēng)格/動畫風(fēng)格” StyleGAN2生成器得到的圖像
? 風(fēng)格編輯及選型
原始風(fēng)格不太好看是就沒法用了
遷移訓(xùn)練后的模型風(fēng)格就沒法改了
No No No,每一個模型不止可以用來生成數(shù)據(jù),也可沉淀為一個基礎(chǔ)組件、基礎(chǔ)能力。不止是想在原始風(fēng)格上做微調(diào)、優(yōu)化,甚至是想創(chuàng)造新的風(fēng)格,都是可以的:
- 模型融合:通過融合多個模型、設(shè)置不同的融合參數(shù)/層數(shù)、使用不同的融合方式等,可以實現(xiàn)對劣勢風(fēng)格模型做優(yōu)化,也可實現(xiàn)風(fēng)格的調(diào)整;
- 模型套娃:將不同風(fēng)格的模型串聯(lián),使得最終輸出的風(fēng)格攜帶了中間模型的一些五官、色調(diào)等風(fēng)格特征。
融合過程中實現(xiàn)對漫畫風(fēng)格的微調(diào)(瞳孔顏色、嘴唇、膚色色調(diào)等)
通過風(fēng)格創(chuàng)造及微調(diào),可以實現(xiàn)不同風(fēng)格的模型,從而實現(xiàn)不同風(fēng)格人臉數(shù)據(jù)的生產(chǎn)。
通過基于StyleGAN的遷移學(xué)習(xí)、風(fēng)格編輯優(yōu)化、數(shù)據(jù)生成,我們便可以獲得我們的第一桶金??:具有較高豐富度的、1024×1024分辨率的、風(fēng)格選型后的風(fēng)格化數(shù)據(jù)集。
基于非監(jiān)督圖像翻譯的配對數(shù)據(jù)制作
非監(jiān)督圖像翻譯技術(shù)通過學(xué)習(xí)兩個域之間的映射關(guān)系,可以將一個域的圖像轉(zhuǎn)換到另一個域上,從而提供制作圖像對的可能。例如該領(lǐng)域出名的CycleGAN具有如下的結(jié)構(gòu):
CycleGAN主要框架
我在上文討論“模型豐富度”的時候說過:
這(低豐富度)會使得后續(xù)應(yīng)用模型生成的風(fēng)格化數(shù)據(jù)集分布過于單調(diào),不利于U-GAT-IT的訓(xùn)練。
這是為什么么?因為CycleGAN的框架要求兩個域的數(shù)據(jù)要基本符合雙射關(guān)系,否則域翻譯到域
后,就很容易發(fā)生語義丟失。而StyleGAN2 inversion生成的圖像存在一個問題,就是大部分的背景信息會丟失,變成簡單的、模糊的背景(當(dāng)然,有一些最新的論文極大緩解了這個問題,例如騰訊AI Lab的High-Fidelity GAN Inversion)。如果使用數(shù)據(jù)集
和真實人臉數(shù)據(jù)集
直接訓(xùn)練U-GAT-IT,就很容易發(fā)生數(shù)據(jù)集
生成的對應(yīng)圖像
的背景丟失大量語義信息,導(dǎo)致很難形成有效的圖像對。
于是針對此提出了改進U-GAT-IT以實現(xiàn)固定背景的兩種方式:基于增加背景約束的Region-based U-GAT-IT算法改進,基于增加掩膜分支的Mask U-GAT-IT算法改進。這兩種方式存在ID感和風(fēng)格化程度強弱和均衡的差異,結(jié)合超參的調(diào)整,為我們的ID感和風(fēng)格化提供了一個控制余地。同時,我們也進行網(wǎng)絡(luò)結(jié)構(gòu)改進、模型EMA、邊緣提升等手段進一步提升生成效果。
左為原圖,中間和右邊是非監(jiān)督圖像翻譯的生成效果,差異在于對算法進行了ID感和風(fēng)格化程度的控制
最終,使用訓(xùn)練好的生成模型對真人圖像數(shù)據(jù)集進行推理翻譯得到對應(yīng)的配對風(fēng)格化數(shù)據(jù)集。
有監(jiān)督圖像翻譯
基于MNN不同算子及模塊在移動端上的計算效率的研究,進行 移動端模型結(jié)構(gòu)設(shè)計 及 模型計算量分檔,并結(jié)合對CartoonGAN、AnimeGAN、pix2pix等研究的改進,最終得到了 輕量、高清晰度、高風(fēng)格化程度的移動端模型:
模型 | 清晰度↑ | FID↓ |
Pixel-wise Loss | 3.44 | 32.53 |
+Perceptual loss + GAN Loss | 6.03 | 8.36 |
+Edge-promoting | 6.24 | 8.09 |
+Data Augmentation | 6.57 | 8.26 |
*清晰度使用 拉普拉斯梯度值求和 作為統(tǒng)計指標(biāo)
有監(jiān)督圖像翻譯模型整體訓(xùn)練框架
在移動端上實現(xiàn)實時的變臉效果:
展望
- 優(yōu)化數(shù)據(jù)集:不同角度圖像數(shù)據(jù)、質(zhì)量優(yōu)化;
- 整體鏈路的優(yōu)化、改進、重設(shè)計;
- 更好的數(shù)據(jù)生成:StyleGAN3、Inversion算法、模型融合、風(fēng)格編輯/創(chuàng)造、few-shot;
- 非監(jiān)督兩域翻譯:利用較高匹配度的生成數(shù)據(jù)對做半監(jiān)督,生成模型結(jié)構(gòu)優(yōu)化(例如引入傅里葉卷積);
- 有監(jiān)督兩域翻譯:vid2vid 、幀間穩(wěn)定性提升、極限場景的優(yōu)化、細節(jié)的穩(wěn)定性;
- 全圖風(fēng)格化/數(shù)字創(chuàng)作:disco diffusion、dalle2,style transfer。