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