谷歌、馬薩諸塞大學安姆斯特分校和麻省理工學院的研究者提出了一種基於卷積神經網路的人臉影象合成方法,可用各種光照、姿勢和表情的照片合成中性表情的正臉影象。
論文地址:https://arxiv.org/abs/1701.04851
1.引言
這篇論文提出了一種方法,可根據給定的輸入人臉照片合成該人的正面的中性表情影象。這種方法是通過使用人臉識別網路提取出的特徵來學習生成人臉特徵標識和紋理。
新提出的方法在很大程度上不受原輸入影象的光照、姿勢和麵部表情的影響,因為解碼器網路是僅使用正面的中性表情的照片訓練的。
輸出的影象有很多應用場景,比如分析面部屬性、調整曝光和白平衡、建立 3D 頭像等。
圖注:使用一個人臉識別網路將輸入照片(頂行)編碼成 1024 維特徵向量,然後使用我們的解碼器網路將其解碼成人臉影象(中行)。編碼器網路不受姿勢、光照和表情影響的性質能讓解碼器得到規範化的人臉影象。所得到的影象可以輕鬆地擬合成 3D 模型(下行)。該方法甚至可以基於黑白照片和人臉畫像實現可信的人臉重建。
2 方法
2.1 預處理
假設:訓練集是一組正臉的中性表情的訓練影象。
使用現成可用的特徵點檢測工具和 warping 技術將每張影象分解成一種紋理 T 和一組特徵標識 L。
2.2 編碼器
使用一個引數固定的預訓練 FaceNet 來從輸入影象 I 中提取 F 維的特徵向量 F。這個專案使用了 FaceNet 的最低層的輸出,它不會隨空間變化,具有 1024 個維度。在這層之上還訓練了一個從 1024 到 f 維的全連線層。
2.3 解碼器
特徵 F 分別與特徵標識 L 和紋理 T 進行對映,最後的結果使用 warping 進行渲染。
L 是使用淺的多層感知器,通過將 ReLU 施加於 F 上生成的。T 是使用一個深度 CNN 生成的。解碼器通過可微分的 warping 技術將紋理和特徵標識結合到一起。
2.4 訓練損失
- 第一項懲罰所預測的特徵標識和基本真值特徵標識之間的均方誤差。
- 第二項懲罰所預測的紋理和基本真值紋理之間的平均絕對誤差。
- 第三項使用負餘弦相似度懲罰輸入和輸出影象的 FaceNet 嵌入之間的不相似度。
圖注:訓練計算圖:每條虛線都連線了損失函式中作比較的兩項。紋理使用平均絕對誤差進行比較,特徵標識使用均方誤差進行比較,FaceNet 嵌入則使用了負餘弦相似度。
3 技巧
可微分的影象 warping
首先,使用樣條插值根據在參考點定義的稀疏未定點構建一個密集的流場。
然後,使用可微分的雙線性插值將該流場應用到 I0(原來的影象)上,進而得到 I1(扭曲後的影象)。
可微分的樣條插值
這個專案使用了多調和插值(polyharmonic interpolation)。選擇線性插值的原因是其比薄板樣條(thin-plate spline)對過調(overshooting)問題更穩健,而且在最後的紋理中線性化的偽影難以檢測。
基於變形的資料增強
產生隨機人臉變形:給定一張種子人臉 A,研究者首先通過從 A 的 k=200 最近鄰中隨機選出一個作為目標人臉。給定 A 和隨機近鄰 B,它們的特徵標識和紋理分別獨立進行線性插值,其中的插值權重從 [0,1] 區間均勻取出。
梯度域合成:為了使增強後的影象更有真實感,他們使用一種梯度域編輯技術將變形後的人臉貼上在了原來的背景上。
4 實驗和結果
4.1 收集照片
這個專案從 VGG Face 資料集選擇了大約 12000 張影象作為訓練資料集。這些影象經過了對齊處理,以撤銷各種滾動變換,並且還進行了縮放,將雙眼之間的距離控制在了 55 個畫素,然後這些影象被裁剪成了 224×224 畫素大小。每一個人都有多張影象。所以資料集中最終有大約 1000 個不同的人,每個人都有 3 張或更多影象。每個人的所有影象都通過變形進行了平均。某些具有高噪聲的背景被以人工的方式移除了。測試資料集來自 Wild 資料集。
4.2 模型穩健性
人臉的形狀和膚色在姿勢和照明強度不同時是穩定的,但輸出影象中會出現不同的髮型和髮色。
圖注:儘管該模型僅使用了自然影象進行訓練,但在應用於不清晰的照片和光照不好的照片時,該模型也能穩健地進行處理。第 1 列:輸入影象;第 2 列:生成的 2D 影象;第 3 和 4 列:兩個不同角度的 3D 重建影象
4.3 應用
3D 模型擬合:這個擬合過程可以得到很好對齊的 3D 人臉網格,可被直接用作 3D 虛擬現實頭像或者用作進一步處理的初始步驟,比如用在視訊中跟蹤人臉幾何特徵。
自動照片調整:該演算法能夠平衡人臉,無論其對影象其它區域的影響如何,能夠根據同一個人的不同照片得到更加一致性的結果。
5 結論
5.1 優點
- 這個專案使用了卷積神經網路,能夠穩健地應對輸入中的變化,比如光照、姿勢和表情。
- 這個方法能提供各種下平衡的影象和自定義的 3D 頭像。
- 神經網路中使用了樣條插值作為微分模組,這是一種全新的想法。結果有助於這一技術的進一步應用。
5.2 未來研究
- 生成的影象的整體質量還有進一步提升的空間。
- 噪聲偽影仍然很多,尤其是在背景中。該模型可以在更加廣泛的影象上進行訓練,以全面規避畫素層面的損失。
6 分析師簡評
這篇論文提出的方法可能在邏輯上是有效的。該方法使用了卷積神經網路以使整個模型能穩健應對光照、姿勢和麵部細節的變化,這是與之前的正臉化方法之間的關鍵差異,但同時這也會在輸出影象的背景中產生更多噪聲。這種方法使用了特徵標識和樣條插值來使結果更具真實感。但相比於之前的方法,這種方法究竟能為後續任務帶來多少改善?這一點還沒有得到充分的證明或展現。
這篇論文可能存在的問題:
- 從 FaceNet 特徵向量到人臉影象的對映的限定條件太少。研究者認為從特徵向量到“規範化”人臉影象的對映在直觀上看是一對一的,但這篇論文沒有給出數學證明。
- 這個神經網路中有三個損失項。研究者僅比較了“有 FaceNet 損失”和“無 FaceNet 損失”的結果,但沒有提及“特徵標識損失”的必要性。
- 在評估這個專案所生成的結果上還缺乏一個更客觀的指標。這篇論文給出的方法是在這些條件上從視覺上看優於之前的正臉化方法,這個評估方式是主觀的。
- 正臉化方法通常用於預處理人臉影象,以使後續的任務(比如 3D 模型擬合)更高效更準確。但這篇論文沒有充分提及使用這種方法能為後續任務帶來多少提升。