家里沒(méi)有王位繼承?沒(méi)關(guān)系,有人用AI打造了一個(gè)童話魔法世界
家里沒(méi)礦、沒(méi)王位,但誰(shuí)還沒(méi)有個(gè)王子、公主夢(mèng)?
最近,機(jī)器之心收留了一批「在逃王子」。


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