門 豪,劉 宇,卓奕煒,田澤佳
(1.武漢郵電科學研究院,湖北武漢 430070;2.南京烽火天地通信科技有限公司,江蘇南京 210019)
在計算機視覺領域不僅僅只有人臉的識別還有一個重要的領域就是人臉的重建,在人臉重建領域內又分別分為兩個分支:3D人臉重建和密集對齊。在3D 人臉重建領域的發展中分為三個不同的階段:第一階段,基礎研究階段,在這個階段中人臉的重建僅僅處于理論階段,并沒有很重要的成果出現;第二階段,高潮發展階段,在這個階段中出現了對3D 人臉重建影響深遠的兩個基礎方法,由貝爾胡米爾等提出的FisherFace,首次將線性判別分析(Linear Discriminant Analysis,LDA)納入了人臉識別中,對圖像表觀特征進行降維處理。在此基礎上文獻[1]提出了現代3D人臉重建的基礎模型3DMM,3DMM 首次提出了三維可形變模型,使用了PCA 進行降維分解,簡化了模型的求解方式,也就是對齊方式,使快速生成3D 人臉成為了可能。文獻[2]在2009 年使用激光掃描儀精確掃描了200 個人的人臉數據,得到了Basel Face Model 數據集,這個數據集是首個基于3DMM 的開源數據集;第三階段,深度學習階段,2017 年文獻[3]中提出的VRNet 將3D 人臉帶入了CNN 階段,首次訓練了一個簡單的CNN 網絡,可以直接由2D 圖片回歸3D 面部幾何體積表示。同時在一些文獻[4-7]中開始應用CNNs 來估計3DMM 的參數,以實現密集對齊。2018 年文獻[8]中提出的PRNet 實現了真正意義上的端到端生成3D 人臉,輸入一個2D 圖片,通過UV 位置圖實現密集對齊,直接重建出3D 人臉。
但是這些方法都有一個重要的問題,它們都基于3DMM 的原理,即紋理圖和位置圖的密集對齊,從而生成3D 人臉,在這個過程中如果模型的點云密集程度比較稀疏,就會造成在稀疏區域的3D 人臉生成顏色發生偏移,造成色彩填充的情況,影響3D 人臉生成的質量。
由于點云數據的采集比較繁瑣而且成本很高,需要精密的激光儀器對人臉進行掃描處理,為了避免這個問題,該文通過一種新穎的方式采用RGB 色域分割的方法結合色彩遷移算法局部地將生成質量較差的3D 人臉進行校正,從而在不影響整體3D 人臉輸出的基礎上精確地對出現色彩填充的部分進行遷移糾錯。在相同的數據集中對比不同的算法具有良好的效果表現。
為了解決在低點云質量情況下輸出的3D 人臉質量不佳的情況,該文在輸出紋理圖后添加了一個區域色彩遷移層。該層的作用就是調整輸出的紋理圖色彩,利用RGB 色域分割的原理確定出邊界,在邊界內使用色彩遷移算法矯正顏色具有偏差的部分,從而在不需要改變點云數量的基礎上提升生成3D 人臉的質量。
1)RGB 色域分割
在處理圖片邊緣鋸齒化問題中提到了一種邊緣檢測的方法,例如FXAA[9]就使用了這種邊緣檢測的方式,來確定鋸齒化的邊緣。在確定邊緣的過程中使用了Luma 公式,該公式是由RGB 色彩加權[10]綜合得出的,如式(1)所示:

其中,公式中的系數是由RGB 色域參數得到的。在確定邊緣的過程中,選定兩個像素值,通過公式中L值的大小來確定是否是相近的顏色,如果是相同或者相近的像素點顏色,L值會相等或者成正比,如果像素點顏色不同,那么L值則不同,通過L值的變化即可確定顏色不同的邊界情況。算法流程如圖1 所示。

圖1 Luma公式確定邊界
圖中,1 表示白色,0 表示黑色,兩者值不同則為不同顏色,值相同則為相同顏色。
2)RGB 色域轉換lαβ色域
在完成RGB 色域分割之后,確定了需要進行色彩遷移的邊界,在邊界內需要進行色域的轉換,該文使用的色彩遷移算法為reinhard 色彩遷移算法[11],該算法所使用的色域為lαβ色域,使用這個色域的主要原因是該色彩空間的色彩關聯性不強,可以有效地將圖像的灰度信息和色彩信息分離出來,可以分別對三個顏色通道進行獨立的運算,同時不需要更改另外兩個通道的信息。在輸入圖片進行RGB 色域分割后,將分割區域進行色域轉換,然后再進行色彩遷移,從RGB 色域轉換為lαβ色域[12]需要進行兩步轉換。
①RGB 色域轉CIEXYZ 色域
在色域轉換的過程中,首先需要將RGB 色域轉換為CIEXYZ 色域,RGB 色彩空間是通過使用標準波長為700 nm(紅色)、546.1 nm(綠色)和435.8 nm(藍色)的三種單色原色獲得的[13]。首先將原有的RGB 數據進行歸一化處理,如式(2)所示:

歸一化處理之后即可得到色彩空間中每一個點的值,通過光譜位圖和RGB 色彩系數的性質可以將式(2)簡化為如下方程組:

解這個方程組可以得到三組r、g、b的值,將這三組值代入相應的矩陣中即可得到r、g、b與x、y、z之間的關系矩陣如下:

但這并不是所求的X、Y、Z與RGB 之間的關系,還需要再進行一次矩陣的求逆矩陣過程,并且進行歸一化處理即可得到相應的對應關系矩陣如下:

其中,K為系數常量,式(5)即代表了從RGB 色域轉為CIEXYZ 色域的色彩空間對應關系,通過該矩陣即可將RGB 色域轉換為CIEXYZ 色域。
②CIEXYZ 色域轉lαβ色域
通過觀察式(5)可以發現在系數矩陣中每一行值的和都接近于1,由于RGB 色彩空間的取值范圍為[0,255],如果系數和為1,則X、Y、Z的取值范圍應該與RGB 色彩空間的取值范圍相同,因此可以通過等比修改系數的方式使其系數和為1,這樣就可以使CIEXYZ 色域與RGB 色域在同等范圍內映射,即完成了CIEXYZ 色域的規范化,在與RGB 色域點一一對應的基礎上將其取值范圍規范化為RGB 色域的取值范圍,可以用式(6)完成上述轉換:

其中,X、Y、Z為CIEXYZ 色域空間中的點,Xn、Yn、Zn為CIEXYZ 色域空間中的點集合。式(6)中的f(t)函數如下:

通過該公式可以將CIEXYZ 空間規范化,使其取值范圍規范為[0,255],這個色彩空間即為所求的lαβ色域。
3)色彩遷移
在經過色域轉換之后,將輸入轉化為lαβ色域,就可以進行色彩轉移,色彩轉移的算法主要是通過一個線性變換使目標圖像和源圖像具有相同的均值和方差,從而完成色彩遷移操作。
為了實現色彩遷移,首先要獲得源圖像和目標圖像的均值和方差,假設l、a、b是目標圖像的lαβ通道數據,ml、ma、mb為目標圖像的均值,nl、na、nb為目標圖像的標準差,L、A、B為源圖像的lαβ通道數據;ml′、ma′、mb′為源圖像的均值,nl′、na′、nb′為源圖像的標準差。可以得到源圖像與目標圖像均值與方差之間的關系式方程如下:

通過式(8)可以看出,L、A、B對應的三個式子可以看做是三個線性方程組,斜率為兩幅圖片標準差的比值,均值為截距。這個線性變換保證了目標圖像和源圖像在lαβ色域中具有相同的均值和方差,從而實現色彩的遷移。
該文采用上述區域色彩遷移方法,在紋理圖生成之后,通過色彩遷移層將影響色彩塊遷移為目標色彩塊,從而優化人臉生成質量。PRN 使用UV 空間來表示3D 人臉結構,它是一種記錄所有面部點云3D 坐標的2D 圖像,在每個UV 多邊形中都保留了語義信息,如圖2 所示(左:輸入2D 圖片與3D 點云值之間的真實對應,右:第一行從左至右依次為輸入2D圖片、UV 紋理圖、UV 位置圖,第二行為UV 位置圖對應的x、y、z通道),UV 空間保存的是2D 圖片與點云對應的r、g、b色彩信息和真實的x、y、z位置信息。將真實的位置信息記錄在位置圖中,保留x、y、z通道,將r、g、b通道值替換為對應的x、y、z通道,得到紋理圖,兩者都是經過同一個點云完成對齊,所以生成的紋理圖與位置圖可以直接實現密集對齊。

圖2 UV位置圖
1.2.1 PRN網絡結構優化
該文使用的網絡結構由編解碼模塊和區域色彩遷移層組成,由于該文的思路是將輸入圖片轉化為UV 位置圖映射,使用編解碼結構學習傳遞函數,從而可以在輕量級的CNN 網絡上回歸UV 參數。為了解決論文的主要問題,在輸出紋理圖的后面添加了一個區域色彩遷移層,用來調節由原編解碼結構生成紋理圖時出現的色彩填充情況。然后將色彩遷移后的圖片與網格圖進行關鍵點對齊擬合生成3D 人臉。網絡結構圖如圖3 所示。

圖3 網絡結構圖
1.2.2 損失函數設置
在損失函數設置中,該文使用了權重來構造損失函數。對于人臉中不同的區域給予不同的權重值,其中,人臉的68 個面部關鍵點中給予的權重值最高,用以保證網絡學習關鍵點的準確位置,頸部等部分在3D 人臉生成的過程中關注度較小,則設置權重值為0,從而減小對網絡訓練的干擾。
所以損失函數設置表達式如下:

其中,P(x,y)為位置圖中的x、y像素坐標,為給定的真實地面坐標位置,W(x,y)為給定的權重值。
具體來說,在設置權重時將面部分為4 個子區域,子區域1 為68 個面部關鍵點;子區域2 為鼻子、眼睛、嘴區域;子區域3 為臉頰等其他面部區域;子區域4 為頸部。4 個子區域的權重占比為16∶4∶3∶0。面部權重設置如圖4 所示。

圖4 面部權重設置比重圖
由于該文使用的算法在訓練的過程中要求需要有與輸入2D 圖片相對應并且具有語義信息的3D 點云數據,因此,使用300WLP 作為訓練集。300WLP 包含了不同角度的人臉圖像,并且對3DMM 進行了注釋,可以很便捷的從中恢復點云數據,并通過網絡訓練得出相應的位置圖。
在測試集方面,該文使用了兩個不同的數據集作為測試集,分別為ALFW2000-3D、Florence,其中,ALFW2000-3D 數據集中包含了2 000 幅圖像,并且對臉部68 個關鍵點進行了注釋,Florence 數據集是一個3D 人臉數據集,其中包含53 個受試者,使用高精度的結構光掃描儀器獲得。
在評價標準方面,分為兩個方向作為評價細則,分別為3D 人臉生成質量與3D 人臉生成性能。使用不同算法輸出的3D人臉圖片作為對比,比較生成的3D 人臉質量。使用NME 作為評價指標來比較3D 人臉算法的生成性能。用以證明該文算法可以在不影響3D 人臉生成性能的基礎上提高3D 人臉的生成質量。
該文算法的訓練平臺為Linux 18.04,處理器為Intel Core i7-6700 3.4 GHz,內存24 GB,顯卡為Nvdia GTX 1080。
算法使用的框架為Tensorflow,使用1.2 小節中的網絡模型進行訓練,使用Adam 優化器,學習率從0.000 1 開始,每5 個周期后衰減一半。批量大小設置為16。
在表1中對比了該文方法(以下簡稱PRN_RCM)和其他四種3D 人臉重建及密集對齊方法,實驗在ALFW2000-3D 數據集中進行。

表1 對比實驗結果
由表1 中結果可知,PRN_RCM 與次優方法PRN均有1.2%~5.4%的提升。值得注意的是PRN_RCM與PRN均使用了UV空間中的UV位置圖作為3D人臉的表示方法。所以有理由相信,在更高質量的數據集下PRN_RCM 會有更好的表現。
為了檢測3D 人臉生成的應用情況,使用了Florence 數據集中的不同偏航角度來測試不同姿態下的重建性能,如表2 所示,在所有的測試算法中,正面的重建效果都有很好的表現,但是在生成隨機遮擋的測試下,該文算法PRN_RCM 在遮擋情況下結果增加了0.16 個百分點,但是PRN 兩個數據量分別增長了0.87、0.84 個百分點,這說明在隨機姿態下的人臉生成應用PRN_RCM 也具有較強的魯棒性,并且與PRN 相比有一定的提升。

表2 遮擋情況下的對比實驗結果
最后,為了對比生成3D 人臉的質量,對比了在ALFW2000-3D 數據集下PRN 生成人臉的質量和該文算法PRN_RCM 生成人臉的質量,在相同數據集下,且具有相同的點云數據下,對比耳部、臉頰部分的生成質量情況。
從圖5 和圖6 可以看出在相同的數據集和點云質量的情況下,該文算法PRN_RCM 與PRN 的比較提升很大,PRN 在臉頰部分有明顯的色彩填充,PRN_RCM則在臉頰部分有完整的生成,并出現無色彩填充的情況。這表明PRN_RCM 可以在保證密集對齊以及3D 人臉生成應用有較小提升的情況下,同時可以提升3D人臉的生成質量,具有重要的參考價值。

圖5 PRN生成3D人臉

圖6 PRN_RCM生成3D人臉
在消融實驗模塊設置了是否使用色域分割CGS、是否使用色彩遷移CMN,從這兩個方向來驗證同時使用兩個方式可以得出最優的結果,結果以色彩填充占比為依據,色彩填充占比為臉部色彩填充塊的面積與整體人臉面積的比值。比值越低則表示色彩填充越少,如表3 所示。

表3 消融實驗對比結果
從表3 中的結論(每個類別中的結果數值越低,效果越好。)可以看出,在同時使用CGS 和CMN 的情況下,輸出的結果質量最優。
為了解決在點云數據密度較低的情況下出現顏色填充影響3D 人臉生成質量的問題,該文提出了一種使用區域色彩遷移的方法,在不改變點云質量的情況下有效地提高了3D 人臉的生成質量,并且在3D 人臉的密集對齊和3D 人臉的應用性上也沒有受到影響,這表明該文算法具有較強的魯棒性,在各類場景中均有較強的價值。