人脸照片自动生成游戏角色_ICCV2019论文解析
人臉照片自動生成游戲角色_ICCV2019論文解析
Face-to-Parameter Translation for Game
Character Auto-Creation
論文鏈接:
http://openaccess.thecvf.com/content_ICCV_2019/papers/Shi_Face-to-Parameter_Translation_for_Game_Character_Auto-Creation_ICCV_2019_paper.pdf
摘要
角色定制系統是角色扮演游戲(rpg)的重要組成部分,玩家可以根據自己的喜好而不是使用默認模板來編輯游戲中角色的面部表情。提出了一種根據輸入的人臉照片自動生成游戲角色的方法。通過求解一組具有物理意義的人臉參數的優化問題,在人臉相似性度量和參數搜索范式下,建立了上述“藝術創造”過程。為了有效地最小化創建的面部和真實面部之間的距離,專門設計了兩個丟失功能,即“區分丟失”和“面部內容丟失”。由于游戲引擎的渲染過程是不可微的,因此進一步引入生成網絡作為“仿真器”來模擬游戲引擎的物理行為,使得所提出的方法可以在神經風格的傳輸框架下實現,并且可以通過梯度下降來優化參數。實驗結果表明,該方法在全局外觀和局部細節上都能實現人臉照片和游戲角色之間的高度相似性。我們的方法已經在去年的一個新游戲中部署,現在已經被玩家使用了超過100萬次。
- Introduction
針對上述問題,本文提出了一種根據玩家輸入的人臉照片自動生成游戲中角色的方法,如圖1所示。我們通過求解一組人臉參數的優化問題,在人臉相似性度量和參數搜索范式下,建立了上述“藝術創造”過程。與以往生成三維人臉網格的三維人臉重建方法[2,34,37]不同,我們的方法通過預測一組具有明確物理意義的面部參數來為骨骼驅動的模型創建三維profile。在我們的方法中,每個參數控制每個面部組件的單個屬性,包括位置、方向和比例。更重要的是,我們的方法在創建結果的基礎上支持額外的用戶交互,玩家可以根據自己的需要對自己的產品進行進一步改進。
由于游戲引擎的渲染過程是不可微的,因此設計了一個生成網絡G作為“仿真器”來模擬游戲引擎的物理行為,使得所提出的方法可以在神經風格的傳輸框架下實現,并且可以通過梯度下降來優化面部參數,因此,我們將我們的方法稱為“面對參數(F2P)”轉換方法。
由于本方法中的人臉參數搜索本質上是一個跨域的圖像相似性度量問題,我們利用深度CNN和多任務學習的優勢,具體設計了兩種損失函數,即一個“辨別損失”和一個“面部內容損失”——前者對應于全局面部外觀的相似性度量,后者則更關注局部細節。由于所有的CNN設計,我們的模型可以在統一的端到端框架中優化。這樣,通過最小化被創建的人臉和真實人臉之間的距離,可以將輸入的照片有效地轉換為真實的游戲角色。我們的方法自2018年10月開始在一款新游戲中部署,現在已經提供了超過100萬次的服務。
本文的主要貢獻如下:
1)提出了一種端到端的人臉參數轉換和游戲角色自動生成方法。據我們所知,在這個問題上,以前的工作很少。
2)由于游戲引擎的渲染過程是不可微的,我們通過構造一個深度生成網絡來模擬游戲引擎的行為,從而引入一個仿真器。這樣,梯度可以平滑地反向傳播到輸入端,從而通過梯度下降來更新面部參數。
3)兩個損失函數專門為跨域面部相似性測量而設計。提出的目標可以在多任務學習框架下共同優化。
- Related work
神經風格轉換
從一幅圖像到另一幅圖像的樣式轉換一直是圖像處理領域的一項具有挑戰性的任務[10,11]。近年來,神經風格轉換(NST)在風格轉換任務方面取得了巨大的突破[10-12],其中,深度卷積特征的集成使得從輸入圖像中顯式分離“內容”和“風格”成為可能。大多數最新的NST模型都是為最小化以下目標而設計的:
單目三維人臉重建
單目三維人臉重建的目的是從單個二維人臉圖像中恢復人臉的三維結構。該組的傳統方法是3D變形模型(3DMM)[2]及其變體[3,32],其中3D面部模型首先參數化[14],然后優化以匹配2D面部圖像。近年來,基于深度學習的人臉重建方法已經能夠實現從二維圖像到三維網格的端到端重建[8,34,37–40]。然而,由于這些方法不易在三維網格上編輯,且生成的人臉參數缺乏明確的物理意義,因此不利于用戶交互。與我們類似的工作是Genova的“可微渲染器”[13],他們通過使用可微光柵直接渲染參數化的3D人臉模型。在這篇文章中,我們介紹了一個更加統一的解決方案來區分和模擬一個游戲引擎,不管它的渲染器類型和三維模型結構如何,使用一個CNN模型。
生成性對抗網絡(GAN) 除上述方法外,GAN[15]在圖像生成方面取得了很大的進展[1,30,31,33],并且在圖像樣式傳輸任務方面顯示了巨大的潛力[4,20,28,44,46]。與我們的方法類似的方法是捆綁輸出合成(Tied Output Synthesis,TOS)[41],它利用對抗性訓練創建基于人類照片的參數化化身。然而,這種方法是為了預測離散屬性而不是連續的面部參數。
此外,在RPGs中,學習從2D照片直接預測大量3D面部參數會導致參數模糊的缺陷,因為從2D到3D的內在對應是一對多的映射。因此,我們不再直接學習預測連續的人臉參數,而是在NST框架下,通過優化輸入的人臉參數來最大化所生成的人臉與真實人臉之間的相似度,從而實現人臉生成。
- Method
我們的模型由一個模仿者G(x)和一個特征抽取者F(y)組成,前者的目的是通過接受用戶定制的內容來模擬游戲引擎的行為面部參數x和生成“渲染”面部圖像y,而后者確定可以在其中執行面部相似性測量以優化面部參數的特征空間。我們方法的處理流程如圖2所示。
3.1. Imitator
我們訓練一個卷積神經網絡作為模仿者,以確定游戲引擎的輸入輸出關系,從而使角色定制系統具有可微性。我們在我們的模仿者G(x)中采用了DCGAN[33]的類似網絡配置,它由八個轉置卷積層組成。我們的模仿者的結構如圖3所示。為了簡單起見,我們的模仿者只對面部模型的正面視圖使用相應的面部定制參數。我們將模仿者的學習和預測作為一個標準的基于深度學習的回歸問題,目的是最小化游戲中渲染圖像和生成圖像在原始像素空間中的差異。訓練模仿者的損失函數設計如下:
在訓練過程中,我們隨機生成20000張具有相應面部定制功能的人臉 參數使用游戲引擎“正義”。80%的人臉樣本用于訓練,其余樣本用于驗證。圖4示出了我們的模仿者的“呈現”結果的三個示例。這些圖像的面部參數是手動創建的。由于訓練樣本是從面部參數的單一分布中隨機生成的,因此對于大多數字符來說可能會顯得很奇怪(請參閱我們的補充材料)。盡管如此,從圖4中我們仍然可以看到,生成的面部圖像和渲染的地面真實度具有高度的相似性,甚至在一些具有復雜紋理的區域(例如頭發)中也是如此。這說明我們的模仿者不僅在低維人臉流形中提取訓練數據,而且還學習去耦合不同人臉參數之間的相關性。
3.2. Facial Similarity Measurement
一旦我們得到一個訓練有素的模仿者G,面部參數的生成基本上成為 人臉相似性度量問題。由于輸入的人臉照片和渲染的游戲角色屬于不同的圖像域,為了有效地度量人臉的相似度,我們設計了兩種損失函數作為全局人臉外觀和局部細節的度量。我們沒有直接在原始像素空間計算它們的損失,而是利用神經風格的傳輸框架,在由深層神經網絡學習的特征空間計算損失。參數的生成可以看作是仿真器流形上的一個搜索過程,在此過程中,我們的目標是找到一個最佳點y?=G(x?),使y與參考面照片yr之間的距離最小,如圖5所示。
除了區分損失之外,我們還通過基于從面部語義分割模型中提取的面部特征計算像素級誤差來進一步定義內容損失。人臉內容的丟失可以看作是對兩幅圖像中不同人臉成分(如眼睛、嘴和鼻子)的形狀和位移的約束。由于我們更關心面部內容的建模,而不是日常圖像,因此面部語義分割網絡被專門訓練來提取面部圖像特征,而不是使用在ImageNet數據集上預先訓練的現成模型[7]。我們建立了基于Resnet-50[17]的面部分割模型,在該模型中,我們移除了完全連接的層,并將其輸出分辨率從1/32提高到1/8。我們在著名的Helen人臉語義分割數據集[23]上訓練該模型。為了提高人臉語義特征的位置敏感度,我們進一步利用分割結果(類概率圖)作為特征圖的像素權重來構造位置敏感的內容丟失函數。我們的面部內容缺失定義如下:
3.3. Implementation Details
模仿者
在我們的仿真器中,卷積核大小被設置為4×4,每個轉置卷積層的步長被設置為2,這樣每次卷積后特征映射的大小將加倍。在每個卷積層之后,除了輸出層之外,我們的模擬器中都嵌入了批處理規范化和ReLU激活。此外,我們使用SGD優化器進行訓練,批大小為16,動量為0.9。學習率設為0.01,學習率衰減設為每50學時10%,500學時后停止訓練。
人臉分割網絡
我們使用Resnet-50[17]作為分割網絡的主干,去掉其完全連接的層,并在其頂部添加額外的1×1卷積層。此外,為了提高輸出分辨率,我們將Conv 3和Conv 4的步幅從2改為1。我們的模型在ImageNet[7]上進行了預訓練,然后在Helen人臉語義分割數據集[23]上進行了調整,像素交叉熵損失。我們使用與模仿者相同的訓練配置,只是學習率設置為0.001。
面部參數
面部參數的尺寸D對于“男性”設置為264,對于“女性”設置為310。在這些參數中,208個是連續的值(如眉毛的長度、寬度和厚度),其余的是離散的(如發型、眉毛風格、胡須風格和唇膏風格)。這些離散參數被編碼為一個熱向量,并與連續參數串聯。
優化
至于第二階段的優化,我們設α為0.01,最大迭代次數為50,學習率μ為10,每5次迭代衰減率為20%。
面對齊
在將輸入照片輸入特征提取程序之前,執行面部對齊(使用dlib庫[22])以對齊輸入照片,并且我們使用渲染的“平均面部”作為其參考。
- Experimental Results and Analysis
我們用50張臉部特寫照片構建了一個名人數據集來進行實驗。圖7示出了一些輸入照片和生成的面部參數,從這些參數中,游戲引擎可以在多個視圖中渲染游戲中的角色,并且該角色與輸入照片具有高度的相似性。有關更多生成的示例,請參閱我們的補充材料。
4.1. Ablation Studies
在我們的數據集上進行了融合研究,以分析該框架的每個組成部分的重要性,包括1)辨別損失和2)面部內容損失。
1)鑒別損失
我們在我們的數據集上運行我們的方法w/或w/o,幫助區分損失,并進一步采用Gatys的內容損失[12]作為基線。我們使用人臉識別模型[42]輸出的余弦距離計算每張照片和相應生成結果之間的相似性,如圖8所示。當我們將判別損失結合起來時,我們可以觀察到顯著的相似性改進。
2)面部內容丟失
圖9示出了具有/或不具有幫助面部內容丟失的生成的面部的比較。為了得到更清晰的圖像,提取了人臉的語義圖和人臉成分的邊緣。在圖9中,邊緣地圖的黃色像素對應于參考照片的邊緣,而紅色像素對應于生成的面。當我們應用面部內容丟失時,我們可以觀察到輸入照片和生成的面部之間像素位置的更好的對應關系。
3) 主觀評價
為了定量分析這兩種損失的重要性,我們采用了Wolf等人[41]的主觀評價方法。具體來說,我們首先在我們的數據集上生成50組具有不同相似性度量損失函數配置(僅L1、僅L2和L1+L2)的字符自動創建結果。然后,我們讓15名非專業志愿者在每組中選出最好的作品,其中三個字符是隨機排列的。
最后,輸出字符的選擇率被定義為志愿者選擇該字符作為其組中最佳字符的百分比,并使用總體選擇率來評估結果的質量。統計數據顯示在表1中,這表明這兩項損失對我們的方法都是有利的。
4.2. Comparison with other methods
我們將我們的方法與一些流行的神經風格轉換方法進行了比較:全局風格方法[12]和局部風格方法[16]。雖然這些方法并不是專門為生成3D字符而設計的,但是我們仍然比較因為它們在多個方面與我們的方法相似。
首先,這些方法都是基于深度學習特征來度量兩幅圖像的相似性。
其次,這些方法中的迭代優化算法都是在網絡輸入端進行的。如圖10所示,我們可以看到,通過將圖像樣式與內容分離并重新組織它們,很難生成生動的游戲角色。這是因為生成的圖像并不是完全從游戲角色流形中采樣的,因此很難在RPG環境中應用這些方法。
我們還將我們的方法與流行的單目三維人臉重建方法:3DMM-CNN[39]進行了比較,如圖10的右側所示。我們自動創建的游戲角色與輸入有很高的相似性,而3DMM方法只能生成具有相似面部輪廓的面具。
為了定量評估生成的人臉和游戲中風格參考之間的相似性,我們使用模式得分(MS)[43]和Frechet起始距離(FID)[18]作為度量標準。對于每個測試圖像,我們從模擬訓練集中隨機選擇一個圖像作為參考,并計算整個測試集的平均MS和FID。上述操作重復5次,以計算表中所列最終平均值和標準偏差。表2還記錄每個方法的運行時。與其他方法相比,該方法具有更高的風格相似度和良好的速度性能。
4.3. Robustness and limitation
我們在不同的模糊和光照條件下進一步評估了我們的方法,并且我們的方法對這些變化具有魯棒性,如圖11所示。最后一組給出了我們方法的一個失敗案例。由于L2是基于局部特征的,所以我們的方法對姿態變化很敏感。
4.4. Generation with artistic portraits
不僅限于真實照片,我們的方法還可以為一些藝術肖像生成游戲人物,包括 素描圖像和漫畫。圖12示出了生成結果的一些示例。雖然圖像是從完全不同的分布中收集的,但是由于我們的方法是基于面部語義而不是原始像素來度量相似度,因此仍然可以獲得高質量的結果。
Conclusion
本文提出了一種基于輸入人臉照片的游戲角色自動生成方法。通過求解一組具有物理意義的人臉參數的優化問題,給出了在人臉相似性度量和參數搜索范式下的創建過程。實驗結果表明,該方法在全局外觀和局部細節兩方面都達到了較高的生成相似度和魯棒性。
總結
以上是生活随笔為你收集整理的人脸照片自动生成游戏角色_ICCV2019论文解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国大陆集成电路芯片领域各个细分代表企业
- 下一篇: 人脸标记检测:ICCV2019论文解析