3D人臉重建:《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》
《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》
目錄
0 前言
本文提出了一種能夠同時完成3D人臉重建和稠密人臉對齊的端對端的方法–位置映射回歸網路(PRN)。主要思想:設計UV位置對映圖,它是一種記錄所有面部點雲3D座標的2D影象,在每個UV多邊形中都保留了語義資訊;然後設計一種加權損失訓練一個簡單的CNN(編碼-解碼)網路,從單張2D人臉影象中回到UV位置對映。
本文方案不僅不依賴任何初始人臉模型,還可根據語義資訊重建整個幾何人臉;整個CNN延續輕量級模式,可達到9.8ms處理單張圖的速度,效能較之前方法高出許多。
1 概述
3D人臉重建和人臉對齊是計算機視覺中兩個基礎且備受關注的2個任務,在過去的10年裡,對這兩個方面的研究也是多不勝數。
早期,人臉對齊主要是針對2D人臉特徵點【1,2,3,4】,因為它是其他任務,如人臉識別【5】、輔助3D人臉重建【6,7】等任務的通用特徵資訊;但是呢?2D人臉對齊在大姿態、遮擋等情況下存在諸多問題【8,9】。
隨著DL的發展,許多研究開始利用CNN估計3DMM(3D Morphable Model)係數【10,11,12,13,14,15】或者3D模型變形函式
最近,2篇端到端方案【18,19】,擺脫了這些限制,在各自任務上取得不錯的成績。【19】訓練了一個相對複雜的網路來回歸單張人臉,68個2D特徵點,但它需要額外的網路來估計深度資訊,且並沒有提供稠密對齊;【18】VRN提出了一種體積表示法(Volumetric representation)3D人臉特徵表示方法,並利用網路對單張人臉進行迴歸,但是,這種表示方法丟失了點的語義意義,並且需要複雜網路來做迴歸整個人臉體積資訊,但人臉只是其中部分,所以這種表示方法將限制重建的解析度,且需要複雜網路來完成迴歸。
本文,我們提出了一種端到端的PRN多工方法,能夠同時完成稠密人臉對齊和3D人臉形狀(3D face shape)重建。主要幾個貢獻:
1)提出了無約束的端到端的人臉對齊和3D人臉重建框架
2)設計了新的3D人臉表示方法,即UV位置對映圖,它記錄人臉的3D點資訊,並提供3D點與UV空間具有語義意義的點之間的稠密關係
3)為Loss Function設計了weight mask,它是為每個點提供權重,可明顯提高網路效能
4)CNN採用輕量級模式,單張人臉任務可達到100FPS
5)在AFLW200-3D和Florence資料集上可達到25%的效能提升,較現有演算法
2 相關工作
2.1 3D 人臉重建
自從【20】1999年提出了3DMM模型,就一直受到單目3D人臉重建任務青睞;
許多早期方法中,研究者們靠重建特殊點與3D均值幾何結構之間關係,如landmarks【21,6,22,7,23,24,25】,區域性特徵【26,27,25】,然後利用非線性優化函式來回歸3DMM係數(3DMM coefficients);但是,這些方法都非常依賴於landmarks或其他特徵點的檢測;
因此,一些方法【28,29】首次利用CNN來學習人臉影象與3D模板之間的稠密對應關係(dense correspondence),然後計算3DMM引數預測稠密約束;
最近,一些工作用CNN直接預測3DMM引數,【10,11,12,13,14】利用級聯CNN結構迴歸3DMM係數,其效率很成問題;【30,31,32,33】提出端到端的CNN結構直接估計3DMM形狀引數(3DMM shape parameters);【34,35】採用無監督方法,能夠迴歸3DMM係數,不需要訓練資料而是利用人臉文理資訊,但是在大姿態和光照不均情況下,效果慘淡;
一些其他方法,不採用3D基礎形狀,但仍然依賴3D人臉模板,【36,37,38,17,39】能夠基於參考3D模型,通過Warping重構3D結構;【16】能夠重建3D人臉,通過學習一個3D TPS wraping 函式,經由深度網路生成3D模型;顯然這些方法都受到參考模型限制。
總之,這些方法主要的缺點是,它們基於基礎模型,導致幾何結構被限制在模型形狀空間,通過後處理從估計引數中生成3D mesh。
最近【18】VRN提出了直接對映完整3D人臉結構(full 3D facial),通過CNN直接回歸(Volumetric regression),該方法不受模型空間限制,但需要複雜網路結構和大量時間來完成Voxel data預測;
本文方法不同於上述方法,本文框架模型自由,採用輕量級模式,能實時直接獲取完整3D人臉幾何結構及其資訊。
2.2 人臉對齊
在計算機視覺任務中,人臉對齊是一個長期存在問題並吸引大家的關注;
在早期,2D人臉對齊方法層出不窮,AMM【40,41,42】 CLM【43,44】,級聯迴歸【45,46】,CNN方法【3,4,19】,然而2D人臉對齊存在很多問題,尤其是大姿態、遮擋、光照不均等;
最近,3D人臉對齊,通過2D人臉影象,【47,11,48】擬合3DMM,【39,49】迴歸3D人臉模板,很明顯,基於模型的三維重建方法可以通過在重構幾何中選擇x、y座標點來輕鬆完成三維面對齊的任務;
實際上,【11,29,32】通過一些特殊設計完成基於均值3DMM擬合3D人臉對齊;【50,19】用另一個深度網路來預測熱力圖,並獲得3D人臉特徵點,取得不錯成績。
因此,由於稀疏的人臉排列任務是通過上述方法完成的,密集的面對齊的任務就開始了;
稠密對齊:需要計算出2D人臉影象與3D人臉參考幾何結構之間對應關係。
【15】利用多約束訓練CNN估計3DMM引數,然後提供3D稠密對齊;【28,29】通過深度網路直接學習2D影象與3D模板之間的關係,但其只是考慮到人臉區域。
相比上述工作,本文方法,通過位置圖,直接完成整張人臉與3D模板之間的稠密關係迴歸;本方法不需要3DMM係數和TPS Warping引數,所以不需要複雜的透視變換和TPS變換計算。
3 詳細思路
3.1 3D Face Representation
我們任務目的是從單2D人臉影象迴歸出人臉3D幾何結構資訊以及它們之間的稠密關係。所有我們需要適合的表示方法,並用一個網路來直接預測;一個簡單且普遍的是用一個1D向量來表示,即將3D點資訊用一個向量來表示,然後用網路預測;然而,這種方法丟失了空間資訊。
相關研究中也提到了類似於3DMM等模型表示,但這些方法太過依賴3DMM模型,並且流程複雜;最近的VRN用Volumetric來表示,成功擺脫了上述問題,但是其網路需要輸出192x192x200的一個Volume,計算量相當大,重建解析度將會受到限制。
針對這些問題,本文設計了UV position map來表示,如下圖:
左圖是輸入影象的3D圖和3D點雲ground-truth;右邊第1行,分別是2D影象,UV文理對映圖,相應的UV位置對映圖;右邊第2行,分別是UV位置對映圖的x,y,z通道。
然而開源資料集,如300W-LP,的ground-truth是沒有用UV表示的,而3DMM,所有我們是基於3DMM建立的UV標籤。3DMM又是依據BFM(Basel Face Model)【20】,所有我們UV還得與BFM建立聯絡,文獻【58】中提到解決辦法(具體細節,待考證)。最終我們選擇256最為UV尺寸,約50K個點來表示Face mesh。
3.2 Network Architecture and Loss Function
有了UV表示方法,我們就可以直接用CNN網路迴歸UV引數,如下圖:
採用encoder-decoder結構,256x256x3的輸入人臉影象,輸出256x256x3的位置對映圖;編碼結構採用10個殘差塊級聯構成,解碼結構有17層反捲積層構成,啟用層採用ReLU,最後輸出層採用Sigmoid啟用函式。
3.3 Loss Function
為了強調重點,優化效能,本文還設計了weight mask形式的Loss function:
其意義在於,不同位置或區域,計算error時權重不一樣,看重或者特殊區域權重給高點,網路就會更關注這塊。總共分為4中不同等級,如下圖:
4等級:特徵點(68點),眼睛、鼻子、嘴巴,其他臉部,臉以外的部分;他們的權重分別比:16:4:3:0