余宗璞,楊懿昕,王儼錚,劉雪巖,周 平,周光泉
(東南大學 生物科學與醫(yī)學工程學院,江蘇 南京 210096)
人臉是現(xiàn)代身份識別技術(shù)的主要檢測特征之一,在檔案管理、安全認證、身份記錄中有著廣泛的應(yīng)用。與指紋、血型、虹膜等生物特征不同,捕捉人臉不需要與用戶接觸以及保持其專注和穩(wěn)定,因而樣本的采集較其他生物特征更加安全與便捷[1]。二維人臉分割與識別已得到廣泛、深入的研究,大量研究成果已成功實現(xiàn)轉(zhuǎn)化。三維人臉測量、分割與識別是目前的熱點研究問題。
人臉區(qū)域分割是指結(jié)合人臉信息,將人臉區(qū)域分割為不同語義標注的部分。除生物識別外,人臉區(qū)域分割在動畫人臉設(shè)計與合成、皮膚美化與虛擬化妝、年齡性別等高等級特征預(yù)測等方面均有較多應(yīng)用[2]。雖然對于人臉的二維圖像分割研究已較為成熟,但二維人臉缺少深度,無法表達完整的人臉信息,像素級分割的準確性仍依賴于人臉姿態(tài)、光照等條件。隨著計算成像的快速發(fā)展,已有多種成像方法用于三維人臉成像,如飛行時間(TOF)法[3-6]、激光掃描法等[6]。飛行時間法是通過激光光源發(fā)射脈沖信號到物體表面后按原路徑返回,由接收器接收,通過激光的傳播時間可以計算得到期望的三維信息[5]。但現(xiàn)有曝光算法對飛行時間測距精度和測量范圍影響較大[4-6]。激光掃描法基于立體視覺原理,通過投射激光條紋以及使用相機同步記錄反射條紋的形狀,計算對應(yīng)點的深度信息來完成三維測量,但激光設(shè)備成本較高,測量速度受限[6]。本文采用基于結(jié)構(gòu)光的三維測量方法,具體采用多頻外差結(jié)合四步相移正弦結(jié)構(gòu)光的方法,實現(xiàn)三維人臉測量。
相較于二維圖像,三維人臉數(shù)據(jù)中包含的幾何信息對光照和姿態(tài)不敏感[7-8],其包含更多人臉區(qū)域分割所需的信息。2017年,Charles 等人提出了直接輸入點云進行分割的深度學習網(wǎng)絡(luò)Pointnet[9]。該網(wǎng)絡(luò)在每個點上獨立學習,解決了三維點云輸入的無序性以及旋轉(zhuǎn)性這2 個關(guān)鍵問題,但其忽略了局部結(jié)構(gòu)。隨后Charles 等人提出Pointnet++解決了局部結(jié)構(gòu)問題[10]。2018年,Su 等人提出了SPLATNet(sparse lattice networks),將輸入點云映射到稀疏晶格上,同樣解決了三維數(shù)據(jù)的無序性和旋轉(zhuǎn)性問題[11]??傮w而言,由于三維數(shù)據(jù)的特殊性,為實現(xiàn)三維數(shù)據(jù)的分割,通常將三維分割模型設(shè)計為多邊形網(wǎng)格形式,用于保存三維數(shù)據(jù)的點云與面片信息。在實際應(yīng)用時,需要在三維分割網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)量和性能之間進行折衷。
針對三維人臉分割問題,本文開發(fā)了一種基于結(jié)構(gòu)光的三維人臉測量系統(tǒng),實現(xiàn)了人臉的三維采集,其數(shù)據(jù)以點云形式存儲。進一步地,首先采用保角變換將三維人臉數(shù)據(jù)預(yù)處理為二維數(shù)據(jù),然后研究了二維卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)了人臉分割,最后將分割后的結(jié)果反映射回三維空間,實現(xiàn)了二維映射-二維網(wǎng)絡(luò)分割-三維逆映射的三維人臉分割方案。
本文開發(fā)的三維人臉測量系統(tǒng)由2 臺相機與1 臺商用投影儀組成,如圖1所示。
圖1 三維人臉測量系統(tǒng)Fig.1 3D face measurement system
對人臉的三維測量采用多頻外差結(jié)合4 步相移正弦結(jié)構(gòu)光的方法,系統(tǒng)標定采用張正友標定法[12]。
依據(jù)張正友標定法,本文將相機的成像過程表述為
式中:(XW,YW,ZW)為待測人臉在世界坐標系下的坐標;(u,v)是待測人臉在相機成像平面投影的像素坐標;dx、dy是像素的物理尺寸;(u0,v0)是相機中心點在成像平面上的像素坐標;f是相機的焦距;R、t是世界坐標系到相機坐標系的3×3 旋轉(zhuǎn)矩陣和3×1 平移矩陣;Zc是待測人臉在相機坐標系下的Z坐標。忽略相機的切向畸變,在(1)式所示的成像模型中引入徑向畸變校正,如(2)式所示:
式中:k1,···,kn是徑向畸變系數(shù);(x′,y′)是實際像平面坐標;(x,y)是理想像平面坐標;r是理想像平面坐標到相機中心像平面坐標的距離。相機參數(shù)可采用張正友標定法計算[12]。根據(jù)光線可逆原理,投影儀可視為反向相機,輔以完成標定的相機,可以實現(xiàn)投影儀的標定[13-14]。最后,根據(jù)對極幾何原理,實現(xiàn)相機與投影儀的聯(lián)合標定[15-16]。
三維人臉測量的關(guān)鍵在于空間中匹配待測點在左右相機中的成像像素點。本文采用多頻外差結(jié)合4 步相移正弦結(jié)構(gòu)光的方法實現(xiàn)上述目標,4 步相移正弦結(jié)構(gòu)光如(3)式所示:
式中:I0(x,y)是平均背景灰度值;I(x,y)是正弦條紋幅值;?(x,y)是相對相位;Ii(x,y)是第i次投影圖像(x,y)處的灰度值。4 步相移法求解得到的表征人臉三維數(shù)據(jù)的相對相位,不具有全局唯一性性質(zhì)。本文采用三頻外差法求解具有全局唯一性性質(zhì)的絕對相位。三頻外差法通過對3 個頻率的正弦結(jié)構(gòu)光圖像進行兩兩相位展開,得到頻率更低的相位圖像。本文選擇的3 個正弦結(jié)構(gòu)光的周期分別為
采用制造精度為5 μm 的標定板對本系統(tǒng)進行評價,本系統(tǒng)三維測量精度為0.5 mm。圖2 為采用本系統(tǒng)進行三維人臉測量的過程。圖2(a)為一幅光柵圖像,光柵頻率為36;圖2(b)與2(c)分別為相對相位與絕對相位圖,絕對相位采用三頻外差法求得[15];圖2(d)為三維人臉測量結(jié)果,因受遮擋等影響,測量結(jié)果中存在一定的孔洞,本文采用孔洞填充算法進行修補[17]。
圖2 三維人臉測量Fig.2 3D face measurement
為解決三維分割網(wǎng)絡(luò)的復(fù)雜性問題,本文采用了迂回策略,即首先采用保角變換將三維人臉數(shù)據(jù)映射為二維數(shù)據(jù),然后采用二維卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)二維人臉分割,最后將二維分割后的結(jié)果逆映射回三維人臉。
在歐式空間中,人臉可視為由多個三維點連接而成的曲面,不具有體積。從微分幾何與拓撲學角度出發(fā),若一個三維人臉數(shù)據(jù)等同于一個虧格為零的曲面,則可映射到一個拓撲球面。Gu 等人證明了拓撲球面可以采用保角變換無損地映射到一個拓撲圓盤上[18],即從歐式空間的三維曲面到二維平面的映射。
根據(jù)保角結(jié)構(gòu)的概念,保角參數(shù)化就是將曲面上局部區(qū)域映射到復(fù)平面上。若采用定義梯度場,采用表示一組閉合曲線,可由這組曲線連續(xù)變換成曲面上所有閉合曲線,求出曲面的同調(diào)基,即可將此曲面沿著同調(diào)基切割到一個拓撲圓盤。對曲面與曲面上的一個三角面片[u,v,w],可用Munkres 提出的方法計算同調(diào)基[18],再將三角面片[u,v,w]的閉合方程寫作:
而對于曲面上的頂點,其梯度場的Laplacian-Beltrami 算子均為0,調(diào)和方程表示為
設(shè)ku,v是每條邊的權(quán)值,若 α與 β是對邊的角,則有:
求解(5)~(7)式可得閉合曲面上三維點的參數(shù)化坐標。曲面是由離散三維點構(gòu)成的多個三角面片,這個曲面是不可微的,但可用有限元分段線性函數(shù)逼近(等價于用有限元法解Riemann-Cauchy 方程)[19]。解得后,可用離散Hodge 算子求解保角梯度場,即實現(xiàn)在一個曲面上求解保角映射[20]。從人臉區(qū)域分割的角度出發(fā),保角變換可以保證映射到二維平面后,人臉曲面上的任意兩條曲線的交角不變[21]。此外,保角變換不受曲面旋轉(zhuǎn)、平移的影響,對不同姿態(tài)的同一人臉曲面,其二維映射圖像中的人臉特征是一致的。因此,保角變換在人臉各個區(qū)域保留了其三維特征。如圖3所示,為零虧格人臉曲面參數(shù)化后的二維平面域的保角變換結(jié)果。本文采用深度學習的方法實現(xiàn)人臉分割,為獲得足夠的數(shù)據(jù)量,使用了與本文三維測量系統(tǒng)輸出數(shù)據(jù)格式相同的BJUT 三維人臉數(shù)據(jù)庫[22],圖3 上方三維人臉數(shù)據(jù)來源于BJUT 數(shù)據(jù)庫,下方數(shù)據(jù)來源于本文系統(tǒng)。
圖3 三維人臉曲面與保角變換圖像Fig.3 3D face surfaces and conformal transformed images
區(qū)別于直接對三維人臉區(qū)域進行分割,本文對經(jīng)保角變換后的二維人臉映射圖像進行分割研究。采用encoder-decoder 結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)來對二維人臉映射圖像進行區(qū)域分割,具體架構(gòu)如圖4所示。
圖4 encoder-decoder 網(wǎng)絡(luò)架構(gòu)Fig.4 Network architecture of encoder-decoder
其中,編碼網(wǎng)絡(luò)由5 個卷積層組成,每一個編碼器層對應(yīng)一個解碼器層,因此解碼器也有5 層。編碼網(wǎng)絡(luò)采用卷積加激活以及最大池化(Conv+ReLU+Maxpooling)的結(jié)構(gòu),編碼器對二維人臉映射圖像進行卷積產(chǎn)生特征圖,部分結(jié)果見圖5。激活層采用ReLU 函數(shù),最大池化層用于實現(xiàn)圖像在小空間內(nèi)的平移不變性,取局部區(qū)域中最大值作為該區(qū)域的像素值。解碼網(wǎng)絡(luò)采用卷積加上采樣(Conv+Upsampling)的結(jié)構(gòu)。解碼器將前面編碼得到的抽象特征作為輸入,逐層上采樣恢復(fù)為與輸入等大小的圖像。在解碼器將下采樣數(shù)據(jù)恢復(fù)時,特征的大小會發(fā)生變化,此時必定會產(chǎn)生信息的丟失,本文在網(wǎng)絡(luò)中加入Ronneberger 等人提出的特征融合步驟,在利用淺層的特征時對其進行裁剪,同時使用跳級連接保證上采樣恢復(fù)的圖像特征邊緣更加精細[23]。Lu 等人通過實驗證明了這種跳級結(jié)構(gòu)能使網(wǎng)絡(luò)對新的數(shù)據(jù)敏感度降低,提高邊緣特征的精細程度[24]。上采樣后,本文采用Softmax 層對逐個像素求其分割結(jié)果,完成二維人臉映射圖像的分割,分割結(jié)果采用(8)式表示。
圖5 特征圖部分結(jié)果Fig.5 Partial results of feature diagrams
式中:K是像素分割類別的總數(shù);pk(x)是第k類中像素點x的分割結(jié)果;ak(x)表示在位置x處的像素在特征圖中第k層的激活值。網(wǎng)絡(luò)訓練中,采用交叉熵作為損失函數(shù),衡量二維人臉映射圖像分割結(jié)果,如(9)式所示:
式中:L表示單張圖像的損失函數(shù);yi表示樣本屬于人臉分割區(qū)域中第i類的概率;y?i表示不屬于第i類的概率;n為總類別數(shù),在本文中n為2。損失函數(shù)值越小則表明網(wǎng)絡(luò)訓練的參數(shù)越符合訓練集中的樣本。
為得到三維人臉的分割結(jié)果,本文采用將二維人臉映射圖像的分割結(jié)果逆映射到三維人臉曲面的方法。保角變換將人臉區(qū)域的三維點、面片映射到拓撲圓盤得到二維人臉映射圖像,本文在保角變換中增加了建立索引關(guān)系的步驟,即建立三維人臉曲面上的三維點與二維人臉映射圖像中二維像素點之間的索引關(guān)系,如圖6所示。
圖6 三維曲面與映射圖像Fig.6 3D surface and mapping image
其中圖6(a)為人臉曲面網(wǎng)格,圖6(b)為網(wǎng)格上一區(qū)域,假設(shè)三維人臉曲面上某個三角面片為分割區(qū)域,該區(qū)域由3 個帶有紋理信息的三維點構(gòu)成,映射到二維圖像平面上為3 個二維坐標點,曲面上每個點都記錄了其在保角變換下的二維映射坐標。本文遍歷曲面以及映射圖像即可將二維分割結(jié)果一一逆映射回三維曲面上,從而完成三維人臉區(qū)域分割。
對于二維CNN 分割網(wǎng)絡(luò)而言,本文系統(tǒng)測量數(shù)據(jù)量仍不足以滿足訓練要求。鑒于本文測量三維人臉數(shù)據(jù)形式以及紋理信息等與BJUT 數(shù)據(jù)庫相同,因此本文二維CNN 分割網(wǎng)絡(luò)的訓練、測試使用來自BJUT 三維人臉數(shù)據(jù)庫的數(shù)據(jù)以及系統(tǒng)采集的數(shù)據(jù),共505 個三維人臉數(shù)據(jù)。BJUT 三維人臉數(shù)據(jù)庫共含500 個三維人臉數(shù)據(jù),其中男女各250 人,年齡分布在16~49 歲,表情均為中性,數(shù)據(jù)包含人臉頂點信息、紋理信息以及網(wǎng)格信息。本文對該數(shù)據(jù)庫的所有人臉數(shù)據(jù)做預(yù)處理。首先對雜散點云以及非人臉部位進行手動去除,保留原曲面點云上點的顏色信息,后采用球旋轉(zhuǎn)算法對人臉點云進行曲面重構(gòu),最后使用Netfabb軟件進行人工孔洞填充后得到只包含眼睛、眉毛、鼻子、嘴唇這4 個部位的零虧格曲面[25]。在本文的三維人臉區(qū)域分割研究中,將BJUT 數(shù)據(jù)集中9 個噪聲較多的人臉三維數(shù)據(jù)進行了剔除,最終得到了496 個零虧格三維人臉曲面及其二維映射圖像。本文隨機將400 幅二維映射圖像設(shè)置為訓練集,63 幅設(shè)置為測試集。
本文實驗的操作系統(tǒng)為Windows10,學習框架為Tensorflow,硬件環(huán)境CPU 為Intel(R)Xeon(R)E5-2630 2.2 GHz×20,內(nèi)存256 GB;GPU 為Nvidia(R)Tesla P100-PCIE-16 GB×3。本文二維CNN 分割網(wǎng)絡(luò)的平均訓練時間為33.1 min,91 張測試圖像分割總用時小于1 s,單個三維人臉曲面保角變換時間約15 s。本文用準確率 P(precision)和交并比IoU 評價二維映射圖像分割結(jié)果,其中TP(true positive)為真正類,F(xiàn)P(false positive)為假正類,TN(true negatibe)為真負類,F(xiàn)N(false negative)為假負類。
部分測試集分割結(jié)果如圖7所示。其中第1 行為4 個不同人臉的二維映射圖像,第2 行為相應(yīng)的二維映射圖像分割結(jié)果,第3 行為分割準確率(紅色為預(yù)測部分,藍色為真值),第4 行為IoU 結(jié)果(藍色為真值,綠色為預(yù)測區(qū)域,橘色是相交區(qū)域)。
圖7 二維映射圖像分割結(jié)果Fig.7 Image segmentation results of 2D mapping
將二維映射圖像分割結(jié)果根據(jù)索引關(guān)系一一映射回三維人臉曲面,實驗結(jié)果如圖8所示,可見本文方法能夠分割三維人臉曲面中的眉毛、眼睛、鼻子與嘴巴區(qū)域。
圖8 三維人臉分割結(jié)果(不同視角)Fig.8 3D face segmentation results(from different perspectives)
本文使用PointNet 進行對比實驗。由于各個三維人臉數(shù)據(jù)包含點數(shù)不同,對試驗數(shù)據(jù)進行了固定點采樣。對最遠點采樣和隨機采樣兩種采樣方式下的數(shù)據(jù)進行試驗,在訓練次數(shù)300 次時網(wǎng)絡(luò)準確率與損失值趨向平穩(wěn),訓練準確率穩(wěn)定在0.93~0.95,損失值穩(wěn)定在0.1~0.12,選取此時網(wǎng)絡(luò)模型用作測試集分割對比。
對比結(jié)果如表1所示。本文二維CNN 分割網(wǎng)絡(luò)的平均訓練時長為33.1 min,測試集圖像平均準確率為0.93,平均IoU 為0.78,完成63 張二維圖像分割的平均時間小于1 s。在同樣的硬件環(huán)境下,PoinetNet 網(wǎng)絡(luò)訓練時長平均為120 min,完成63 個三維測試集數(shù)據(jù)的平均分割時間為220 s,平均準確率為0.90,平均IoU 為0.68。
表1 本文方法與PointNet 分割結(jié)果對比Table 1 Comparison of proposed method and PointNet segmentation results
相較三維實驗的結(jié)果而言,本文方法實驗結(jié)果準確率以及IoU 更高,在網(wǎng)絡(luò)訓練時間以及預(yù)測時間上相較三維網(wǎng)絡(luò)耗費也較少,在數(shù)據(jù)存儲上,三維數(shù)據(jù)占用的空間相較二維圖像較多,由此可見在三維人臉區(qū)域分割任務(wù)上,本文方法相較直接將三維數(shù)據(jù)作為輸入的三維網(wǎng)絡(luò)來說更優(yōu)。
本文提出了一種三維人臉測量與分割系統(tǒng),該系統(tǒng)基于結(jié)構(gòu)光方法實現(xiàn)對人臉的三維測量??紤]到三維分割網(wǎng)絡(luò)的復(fù)雜性,提出了一種二維映射-二維分割-三維逆映射的分割策略。實驗結(jié)果表明,雖然經(jīng)過保角變換后的二維人臉在圖像上存在視覺變化,但對人臉的區(qū)域分割并無影響,本文方法能夠采用較為輕簡的網(wǎng)絡(luò)以較高的效率實現(xiàn)人臉區(qū)域分割。相較于傳統(tǒng)二維人臉的分割方法,提出的三維人臉測量與區(qū)域分割系統(tǒng)能獲取三維人臉的結(jié)構(gòu)信息,不受光照條件和三維人臉姿態(tài)的影響,相較于現(xiàn)有的三維分割方法,本文避免了設(shè)計復(fù)雜的三維分割網(wǎng)絡(luò),有效地降低了在網(wǎng)絡(luò)上的開發(fā)難度。
本文采用基于多頻外差結(jié)合四步相移正弦光柵的方法實現(xiàn)三維人臉測量,系統(tǒng)采集數(shù)據(jù)時需要投射12 幅正弦光柵,測量所用時間較長。目前已有研究可實現(xiàn)單幀投影的三維測量,后續(xù)研究將考慮對系統(tǒng)在此方面進行改進。此外,受限于三維人臉數(shù)據(jù)的樣本數(shù),本文僅進行了三維人臉區(qū)域分割的研究,若能進一步增加測量數(shù)據(jù)量,一方面可以通過研究二維分割網(wǎng)絡(luò)以提高三維人臉區(qū)域分割的準確率,另一方面可以采用本文方法開展基于保角變換與二維識別網(wǎng)絡(luò)的三維人臉識別研究。