機器之心報道
機器之心編輯部
家裏沒礦、沒王位,但誰還沒有個王子、公主夢?
最近,機器之心收留了一批「在逃王子」。
這些王子雖然來自不同的王國,但服化道都來自同一家公司——快手。
這是快手新推出的「童話魔法」特效。除了王子之外,你也可以過一把當公主的癮。各路明星紛紛曬出了自己的公主特效形象:
楊冪
迪麗熱巴
婁藝瀟
「童話魔法」是一項基於生成式算法的視頻特效技術,可以讓用户在手機端實時預覽自己變身公主、王子的神奇效果。生成的圖像不僅有着濃濃的童話風格,而且還保留了用户自身的容貌特點,帶給用户新奇的拍攝體驗。
目前,這套「童話魔法」有冰雪公主、夢幻城堡、童話公主和童話王子等數種畫風的變身特效。
不僅如此,用户還能根據自身喜好進一步細化變身後的人物特效,添加風格多樣的美妝、美體、濾鏡以及封面文字等,還可以更換配樂,或者自己配音並轉換成小黃人、機器人、蘿莉、大叔等不同風格。
「童話魔法」背後的快手黑科技
真人秒變卡通圖早已不是新鮮事。此前,韓國遊戲公司 NCSOFT 開發的無監督圖像轉換算法 U-GAT-IT,通過引入可學習的 ILN 層和注意力機制,成功將人臉圖像轉換為日漫二次元圖像,在業界引起不小的關注。
但是日漫和童話風格差別還是很大的。要想完成童話風格的圖像轉換,生成的圖像既要保留用户原本的容貌特點,還要具備動畫的 3D 人像風格,同時還要面臨目標風格數據多樣性不足的問題,因此 U-GAT-IT 無法滿足需求。
而之前名噪一時的 Toonify 似乎也不夠用。Toonify 雖然能夠完成真人到動畫電影角色的轉換,但由於該方法直接從微調 StyleGAN 模型中提取低分辨率層,只保留原始 StyleGAN 中的高分辨率層,因此轉換得到的圖像與原始人臉相比存在形變,不能完全保留原始人臉本身的容貌特點。另外,該方法生成的部分圖像面部存在色調變化等問題,且不能進行實時處理,無法滿足工業界產品上線的要求。
針對以上這些難題,快手 Y-tech 團隊的 AI 工程師採用了自研的 KStyleGAN 結構,在 3D 空間中表徵人臉結構、進行風格映射,並採用神經網絡渲染來精細控制結果圖的質感,有效克服了常規基於 2D 表徵的 StyleGAN 方法的缺陷,並在移動端上落地了實時特效。
在模型結構方面,針對移動端和服務端的不同計算硬件,通過半自動網絡架構搜索(NAS)得到高效的網絡結構,並在此基礎上進行諸多創新。
一方面,快手設計了一種 pixel 級別的注意力機制——STA module(風格遷移注意力模塊),來改進淺層和深層特徵融合方式。常見的特徵融合方式包括淺層與深層特徵的直接相加、concat 之後進行多次卷積操作等。在風格遷移類任務中,由於原圖和目標圖的差別較大,這些常見的融合方式往往會導致原圖信息的丟失、生成質量不佳或風格感降低等問題。而 STA module 通過少量計算,在 pixel 級別利用注意力引導淺層和深層特徵的融合過程,在風格感不變的同時保留更多原圖的細節,提升生成圖像的質感。
另一方面,快手構建多分支、多深度的 FS block(特徵增強模塊)來替代傳統的 Resnet block 結構。在使用更少計算量的情況下,這一改進對特徵細節部分的增強和對整體形變情況的適應能力都更強,能夠達到更好的生成效果。
在模型訓練方面,快手針對實時風格化任務中的各種效果問題,有針對性地做了調整:
通過混合訓練的方式,加強對風格特徵的學習,增強最終模型生成的風格感;
針對模型金字塔中不同分辨率的特徵,設計多任務多尺度的監督,加快模型收斂,提升生成質量與魯棒性;
在對抗訓練階段中引入預訓練特徵以提升判別器對細節紋理的判斷能力,同時穩定判別器的訓練過程,最終強化模型對細節紋理的生成能力。
特效雖好,如何適配手機端所有機型?
特效雖好用,但面對手機端種類繁多的機型、配置,如何實現設備算力與模型效果的最優適配,進而提供最佳用户體驗呢?
快手首先進行了細緻的算力分級。
由於當前移動端硬件種類繁多,碎片化嚴重,算力分級面臨橫向、縱向挑戰。橫向挑戰:設備大類上可分為 CPU、GPU、DSP、NPU 幾類,各類之間的算力有所差異,大體上算力等級 NPU≥GPU≥DSP≥CPU,但實際情況中各級算力會有 overlap 甚至反轉。縱向挑戰:以 CPU 為例,廠商有 Apple、高通、華為、MTK 等,不同廠商、不同型號的 CPU 性能差異很大;GPU 也存在類似情況,如 Adreno 與 Mali 系列。
將碎片化的設備橫向與縱向鋪展開來會形成一個複雜的算力矩陣,快手自研的深度學習推理引擎 YCNN 配合極致優化的各後端代碼在多種模型上進行了理論和實踐的充分測試,最終結合快手用户羣設計了一套詳細的分級方案。
以這一套算力分級策略為指導,快手進行了模型結構、計算量的調整,設計不同計算量的模型。比如為 CPU 設計了效果較好的中等計算量模型,而像 NPU、GPU、DSP 這種適合大算力的設備則可以運行計算量更大、效果更好的模型。
另外,實際應用中多個模型會帶來資源包過大、加載過慢的問題,為此快手引入了模型服務器分級下發機制。根據終端硬件信息進行設備分級、下發和加載對應模型,充分利用設備算力同時給所有快手用户帶來極致的效果體驗。
YCNN 整體架構
針對不同的硬件進行分級模型設計,利用其自研算法壓縮模型和 YCNN 引擎,快手讓每個用户都能玩轉「童話魔法」。
讓每個人擁有舞台,每個人都擁有「變身」的可能性,這正是快手追求技術突破以及堅持用户導向的體現。