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