家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

機器之心發表於2020-11-29

最近,機器之心收留了一批「在逃王子」。 

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界


這些王子雖然來自不同的王國,但服化道都來自同一家公司——快手。

這是快手新推出的「童話魔法」特效。除了王子之外,你也可以過一把當公主的癮。各路明星紛紛曬出了自己的公主特效形象:
 

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

楊冪

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

迪麗熱巴

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

 婁藝瀟

「童話魔法」是一項基於生成式演算法的影片特效技術,可以讓使用者在手機端實時預覽自己變身公主、王子的神奇效果。生成的影像不僅有著濃濃的童話風格,而且還保留了使用者自身的容貌特點,帶給使用者新奇的拍攝體驗。

目前,這套「童話魔法」有冰雪公主、夢幻城堡、童話公主和童話王子等數種畫風的變身特效。

不僅如此,使用者還能根據自身喜好進一步細化變身後的人物特效,新增風格多樣的美妝、美體、濾鏡以及封面文字等,還可以更換配樂,或者自己配音並轉換成小黃人、機器人、蘿莉、大叔等不同風格。

「童話魔法」背後的快手黑科技

真人秒變卡通圖早已不是新鮮事。此前,韓國遊戲公司 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 結構。在使用更少計算量的情況下,這一改進對特徵細節部分的增強和對整體形變情況的適應能力都更強,能夠達到更好的生成效果。

在模型訓練方面,快手針對實時風格化任務中的各種效果問題,有針對性地做了調整:

  1. 透過混合訓練的方式,加強對風格特徵的學習,增強最終模型生成的風格感;

  2. 針對模型金字塔中不同解析度的特徵,設計多工多尺度的監督,加快模型收斂,提升生成質量與魯棒性;

  3. 對抗訓練階段中引入預訓練特徵以提升判別器對細節紋理的判斷能力,同時穩定判別器的訓練過程,最終強化模型對細節紋理的生成能力。


特效雖好,如何適配手機端所有機型?

特效雖好用,但面對手機端種類繁多的機型、配置,如何實現裝置算力與模型效果的最優適配,進而提供最佳使用者體驗呢?

快手首先進行了細緻的算力分級

由於當前移動端硬體種類繁多,碎片化嚴重,算力分級面臨橫向、縱向挑戰。橫向挑戰:裝置大類上可分為 CPU、GPU、DSP、NPU 幾類,各類之間的算力有所差異,大體上算力等級 NPU≥GPU≥DSP≥CPU,但實際情況中各級算力會有 overlap 甚至反轉。縱向挑戰:以 CPU 為例,廠商有 Apple、高通、華為、MTK 等,不同廠商、不同型號的 CPU 效能差異很大;GPU 也存在類似情況,如 Adreno 與 Mali 系列。

將碎片化的裝置橫向與縱向鋪展開來會形成一個複雜的算力矩陣,快手自研的深度學習推理引擎 YCNN 配合極致最佳化的各後端程式碼在多種模型上進行了理論和實踐的充分測試,最終結合快手使用者群設計了一套詳細的分級方案。

以這一套算力分級策略為指導,快手進行了模型結構、計算量的調整,設計不同計算量的模型。比如為 CPU 設計了效果較好的中等計算量模型,而像 NPU、GPU、DSP 這種適合大算力的裝置則可以執行計算量更大、效果更好的模型。

另外,實際應用中多個模型會帶來資源包過大、載入過慢的問題,為此快手引入了型伺服器分級下發機制。根據終端硬體資訊進行裝置分級、下發和載入對應模型,充分利用裝置算力同時給所有快手使用者帶來極致的效果體驗。

家裡沒有王位繼承?沒關係,有人用AI打造了一個童話魔法世界

YCNN 整體架構
 
針對不同的硬體進行分級模型設計,利用其自研演算法壓縮模型和 YCNN 引擎,快手讓每個使用者都能玩轉「童話魔法」。

讓每個人擁有舞臺,每個人都擁有「變身」的可能性,這正是快手追求技術突破以及堅持使用者導向的體現。

相關文章