趙 青,余元輝
(1.集美大學理學院,福建廈門 361021;2.集美大學計算機工程學院,福建廈門 361021)
隨著人工智能和生物特征識別技術的快速發(fā)展,人臉作為重要的生物特征,人臉識別技術在生物特征識別、計算機視覺、圖像處理領域獲得熱門關注和高速發(fā)展,在金融、安防、安檢、手機APP 等眾多領域的相關應用也越來越廣泛。二維人臉識別技術已經(jīng)相當成熟,但識別率仍受光照、姿態(tài)、表情等因素的影響,相對而言三維人臉數(shù)據(jù)受其影響較小,具有更好的魯棒性,同時包含的空間信息更加豐富,具有更高的防偽性,確保信息的安全性更高。因此,越來越多的學者將關注點轉向三維人臉識別技術的研究。
傳統(tǒng)的三維人臉識別技術主要是通過手工設計面部特征或將三維人臉數(shù)據(jù)投影為二維人臉圖像提取圖像特征[1],進行特征相似性度量實現(xiàn)識別。Drira 等[2]提出了一個幾何框架,從鼻尖點構建徑向曲線表示面部特征,通過彈性黎曼度量標準測量面部形狀差異,該方法在GavabDB 數(shù)據(jù)庫的仰視數(shù)據(jù)集取得了100%的識別率,但針對頭部向左、右旋轉的數(shù)據(jù)集識別率僅有70.49%和86.89%;在此基礎上,Lei 等[3]在三維人臉模型的半剛性區(qū)域設計了角徑向特征(Angular Radial Signature,ARS),并通過核主成分分析(Kernel Principal Component Analysis,KPCA)方法將原始ARS 映射為更具區(qū)分度的特征,通過支持向量機(Support Vector Machine,SVM)實現(xiàn)人臉識別,該方法開始進行大姿態(tài)數(shù)據(jù)的識別。機器學習算法興起后,將人臉數(shù)據(jù)進行標簽化處理,人臉識別問題轉換為監(jiān)督分類任務。Xu等[4]針對表情和姿態(tài)數(shù)據(jù)集進行人臉分類識別,基于深度圖像和強度圖像提取Gabor 小波特征,并獲得深度、強度圖像的融合特征,使用AdaBoost級聯(lián)分類器完成人臉分類識別,在CASIA 數(shù)據(jù)庫上取得了91.2%的識別率,在小姿態(tài)(頭部偏轉±20°~±30°)和較大姿態(tài)(頭部偏轉±50°~±60°)數(shù)據(jù)集上分別實現(xiàn)了82.4%和61.5%的識別率。近年來,眾多研究人員進一步專注于利用深度學習框架自動學習數(shù)據(jù)特征并實現(xiàn)人臉識別[5-7]。Gilani 等[8]提出了第一個深度卷積神經(jīng)網(wǎng)絡FR3DNet(Deep 3D Face Recognition Network)進行三維人臉識別,基于gridfit算法生成三維人臉模型對應的深度圖,以深度值、法向量的方向角、仰角三通道作為網(wǎng)絡輸入,在CASIA 數(shù)據(jù)集上的識別率較卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)算法提高5 個百分點以上。Mu 等[9]專注于低質量三維人臉的識別研究,提出了聯(lián)合多尺度特征融合(MultiScale Feature Fusion,MSFF)模塊和空間注意力矢量化(Spatial Attention Vectorization,SAV)模塊的輕量級卷積神經(jīng)網(wǎng)絡Led3D(Lightweight and efficient deep approach to recognizing low-quality 3D faces),以深度圖作為網(wǎng)絡輸入,采用二維人臉識別模式,在Bosphorus 數(shù)據(jù)庫上獲得91.27%的準確度。
基于深度學習的三維點云分類網(wǎng)絡于2017 年興起,Qi等[10]提出了PointNet 深度網(wǎng)絡用以實現(xiàn)三維點云數(shù)據(jù)的分類和分割,解決了點云無序性的問題,作為首個直接以三維點云作為輸入的輕量級網(wǎng)絡,其分類網(wǎng)絡提取點云數(shù)據(jù)的全局特征實現(xiàn)三維點云分類,但存在局部特征缺失的問題;在此基礎上,Qi 等[11]針對PointNet 網(wǎng)絡進行了改進,提出了PointNet++深度網(wǎng)絡,在PointNet++分類網(wǎng)絡結構中,通過采樣、分組、PointNet三層結構實現(xiàn)從局部特征到全局特征的提取,分類精度大幅度提升。Li等[12]在2018年提出了PointCNN 網(wǎng)絡,采用χ-卷積替換了PointNet 網(wǎng)絡中的微網(wǎng)絡T-Net,參數(shù)量極大減少,PointCNN 分類網(wǎng)絡準確度較PointNet 分類網(wǎng)絡有較大提升。2019 年,Cai 等[13]在PointNet++網(wǎng) 絡 的 基 礎 上 結 合PointSIFT[14]網(wǎng)絡提出 了空間聚合網(wǎng)絡(Spatial Aggregation Net,SAN)方法,基于多方向卷積提取三維點云空間結構特征,雖然點云分割取得最高精度,點云分類結果卻略低于PointNet++分類網(wǎng)絡。
PointNet 系列的分類網(wǎng)絡主要應用于物體或場景三維點云的分類,三維點云人臉模型不同于物體或場景點云,因此本文探索性地在PointNet 系列的分類網(wǎng)絡上進行三維人臉分類識別,并針對三維人臉模型存在因表情變化產(chǎn)生塑性形變、因姿態(tài)變化導致部分數(shù)據(jù)缺失的問題,提出了一種分層特征化網(wǎng)絡,即HFN(Hierarchical Feature Network)方法,也屬于輕量級網(wǎng)絡。單獨訓練好PointNet++和SAN 的分類網(wǎng)絡,進行特征提取的SA(Set Abstraction)模塊和DSA(Directional Spatial Aggregation)模塊均采用三層結構,將兩種不同的特征進行等維度拼接,HFN 利用拼接特征進行識別時網(wǎng)絡收斂更快,在CASIA數(shù)據(jù)集實現(xiàn)了96.34%的平均識別準確度,高于已有分類網(wǎng)絡的識別結果。
三維點云圖像在采集過程中,由于掃描設備或者外界環(huán)境等因素的影響,會出現(xiàn)數(shù)據(jù)缺損、離群點、數(shù)據(jù)冗余等問題,對識別結果造成影響;同時CASIA 數(shù)據(jù)庫中三維人臉的數(shù)據(jù)類型并不能直接作為分類網(wǎng)絡的輸入,因此,需要進行相關的數(shù)據(jù)預處理操作,獲取滿足要求的三維點云人臉數(shù)據(jù)。
CASIA三維人臉數(shù)據(jù)庫中人臉信息(圖1(a))是以塊方式存儲的,包含點的坐標、顏色、法向量、坐標索引四個部分。為了成功輸入分類網(wǎng)絡,將CASIA 數(shù)據(jù)庫中的WRL(3D virtual reality World object based on virtual Reality modeling Language)數(shù)據(jù)轉換為點云數(shù)據(jù),包含坐標值[x,y,z]和顏色信息[r,g,b],并生成每個對象的對應標簽。利用統(tǒng)計學濾波器濾除原始點云數(shù)據(jù)的離群值,基于法向量結合周圍點云的拓撲結構建立同構關系,構建三角網(wǎng),進而實現(xiàn)點云的孔洞填充。
CASIA 數(shù)據(jù)庫中人臉點云模型如圖1(a)所示,可以表示為Fi=[xn,yn,zn,rn,gn,bn],其中,i=1,2,…,M表示點云模型的數(shù)量,n=1,2,…,N表示單個人臉模型中點云的數(shù)量。針對歸一化后的三維人臉模型采用文獻[15]中方法確定鼻尖點坐標{F1nose′,F(xiàn)2nose′,…,F(xiàn)Mnose′}(不能確定側臉的鼻尖點坐標),利用反歸一化方法[16]獲得原始人臉模型中的鼻尖點坐標{F1nose,F(xiàn)2nose,…,F(xiàn)Mnose}。為了去除肩膀、脖頸、耳朵等冗余區(qū)域,結合文獻[17]中方法裁剪出面部的有效區(qū)域(圖1(b)、(c))作為實驗數(shù)據(jù)。
圖1 CASIA數(shù)據(jù)庫中的三維人臉數(shù)據(jù)Fig.1 3D face data in CASIA database
受PointNet++、SAN 分類網(wǎng)絡的啟發(fā),為了在CASIA 數(shù)據(jù)集上取得更好的識別結果,使得分類網(wǎng)絡具有更好的魯棒性,在滿足網(wǎng)絡輸入要求的情況下,提出了分層特征化網(wǎng)絡(HFN)。
整個網(wǎng)絡結構分為兩層,核心為SA 模塊和DSA 模塊,如圖2 所示。網(wǎng)絡輸入點數(shù)為N,坐標維度為d,其他特征維度為C的點云,即點云大小為N×(d+C)。三個SA 模塊進行層次化處理:第一個SA 模塊提取點云局部區(qū)域的特征,第二個SA模塊再一次提取點云局部區(qū)域的特征,最后一個SA模塊采樣操作后獲得Ns個局部區(qū)域質心點,根據(jù)需要獲取以坐標為特征的點云全局特征,記為(Ns,C1d);與SA 模塊類似,三個DSA模塊基于多方向卷積的操作更加豐富了點云在三維空間中的結構特征,解決了點云密度不均的問題,前一個DSA 模塊的輸出作為下一個DSA 模塊的輸入,故第三個DSA 模塊基于八鄰域搜索方法采樣Ns個點,其特征記為(Ns,C2d);兩個模塊提取的點云特征拼接為(Ns,C1d+C2d),使得點云的特征較拼接之前的更加豐富,從而進一步解決了人臉表情、姿態(tài)導致點云數(shù)據(jù)缺失的問題。
SA 模塊 包含采樣層、分組層和PointNet 層。采樣層的目的是確定局部區(qū)域質心點,以歐氏距離d(?,?)為依據(jù),通過迭代最遠點采樣算法(Farthest Point Strategy,F(xiàn)PS)[18]在人臉點云中{F|p1,p2,…,pN}采樣部分點云{Fs|ps1,ps2,…,psj},目的是在{F-Fs}找到psi滿足式(1):
最遠點采樣算法選擇的點分布均勻,令滿足要求的{Fs|ps1,ps2,…,psj}作為質心點;分組層是為了確定質心點的特定鄰域,以人臉點云N×d和質心點云Ns×d為輸入,通過設置特定半徑和特定點數(shù)的球形搜索鄰域,確定各個鄰域的點數(shù)B;PointNet 層作為SA 模塊中的微網(wǎng)絡,能夠將分組層確定的鄰域點的特征提取出來,提取多個局部區(qū)域特征并編碼成更高維的特征向量。
DSA模塊 包括采樣層、八鄰域搜索層和多方向卷積層。與SA 模塊類似,DSA 模塊采用最遠點采樣算法確定點云多個采樣點Ns,并基于八鄰域搜索方法獲得采樣點Ns的鄰域點B,運用多方向卷積操作提取采樣點的空間結構信息。多方向卷積包含從單個方向到兩個方向、兩個方向到四個方向、四個方向再到八個方向提取空間信息,最后經(jīng)過最大池化層后輸出點云局部特征的特征向量,該方法更加全面地提取了從點云局部結構到全局結構的空間結構特征。
SA 模塊的點云全局特征和DSA 模塊的點云空間結構特征進行對應拼接,經(jīng)過全連接層實現(xiàn)三維人臉數(shù)據(jù)分類。
圖2 HFN結構Fig.2 Architecture of HFN
損失函數(shù)用于衡量分類網(wǎng)絡的分類能力,表現(xiàn)預測類別與實際類別的差距程度,損失函數(shù)收斂時,值越小表明分類網(wǎng)絡的性能越好。為了衡量HFN 方法應用于三維人臉識別的分類性能,損失函數(shù)使用Softmax 的交叉熵函數(shù),記為Loss:包含SA 模塊、DSA 模塊及HFN 方法的損失,并分配了相應的超參數(shù):
其中:labTS和labS分別為首次訓練SA 模塊所在網(wǎng)絡三維點云人臉數(shù)據(jù)標簽的預測值和真實值,labTD和labD分別為首次訓練DSA 模塊所在網(wǎng)絡三維點云人臉數(shù)據(jù)的預測標簽值和真實標簽值,labTH和labH分別為訓練特征融合框架HFN 方法時三維點云人臉數(shù)據(jù)標簽的預測值和真實值,α,β,γ為三部分損失函數(shù)對應的超參數(shù)。
實驗主要分為兩個部分:第一部分是在CASIA 數(shù)據(jù)集及相關的姿態(tài)數(shù)據(jù)集上進行PointNet、PointNet++、PointCNN、SAN 分類網(wǎng)絡和HFN 方法的訓練和測試,并對識別結果進行相應分析;第二部分進行了兩種輸入方式下多種分類網(wǎng)絡的識別實驗,并進行了分析。
CASIA 三維人臉數(shù)據(jù)庫(http://biometrics.idealtest.org)是中國科學院自動化所采用Minolta Vivid910 三維數(shù)字掃描儀采集創(chuàng)建的,數(shù)據(jù)為WRL 三維圖像及對應的BMP 二維圖像,共包含123 個對象,每個對象有37 或38 張圖像,圖像中包含姿態(tài)、光照、表情、遮擋多種變化。本文使用WRL 三維圖像轉換的三維點云人臉圖像作為CASIA 數(shù)據(jù)集,在整個數(shù)據(jù)集及三種姿態(tài)的子數(shù)據(jù)集上(圖3 所示)進行三維人臉識別。數(shù)據(jù)庫中每個對象的數(shù)據(jù)以表1的規(guī)律分布。
圖3 CASIA數(shù)據(jù)庫的三維人臉姿態(tài)圖像Fig.3 3D face pose images of CASIA database
表1 CASIA數(shù)據(jù)庫的數(shù)據(jù)分布情況Tab.1 Data distribution of CASIA database
CASIA 數(shù)據(jù)集中包含123個對象,4 624張三維人臉圖像。本文在CASIA數(shù)據(jù)集上進行人臉識別,作為平均識別率;同時將整個數(shù)據(jù)集按姿態(tài)劃分為Pose1 小姿態(tài)(頭部偏轉±20°~±30°)、Pose2 較大姿態(tài)(頭部偏轉±50°~±60°)、Pose3大姿態(tài)(頭部偏轉±80°~±90°)三個數(shù)據(jù)集。
CASIA 數(shù)據(jù)集:123 個對象,包含光照、表情、姿態(tài)變化每個對象的第1~26 張點云圖像作為訓練集,第27~37 張點云圖像作為測試集。
Pose1 數(shù)據(jù)集:123 個對象,包含多種光照、表情因素,頭部偏轉角度為+20~30°、-20~-30°以及仰視角度為+20~30°、俯視角度為-20°~-30°的864張點云圖像數(shù)據(jù)集。
Pose2 數(shù)據(jù)集:123 個對象,包含多種光照、表情因素,頭部偏轉角度為+50°~60°、-50°~-60°的369 張點云圖像數(shù)據(jù)集。
Pose3 數(shù)據(jù)集:50 個對象,包含多種光照、表情因素,頭部偏轉角度為+80°~90°、-80°~-90°的160張點云圖像數(shù)據(jù)集。
實驗部分在Ubuntu16.04 系統(tǒng)下,搭載Python3.6 環(huán)境,基 于TensorFlow1.8 框 架,CUDA9.0,NVIDIA GEFORCE 1080Ti 的GPU 進行測試,對于CASIA 數(shù)據(jù)集中的點云圖像,在預處理后,每張圖像中點云數(shù)量約為5 000 左右,分類網(wǎng)絡輸入點云的數(shù)量設置為1 024,初始學習率設置為0.001,在微調網(wǎng)絡時為0.000 1;batchsize 設置為16,decay_rate 設置為0.7,初始epoch 設置盡量偏大,在預測結果穩(wěn)定后進行調整。損失函數(shù)的超參數(shù)設置包括α、β、γ,監(jiān)測訓練過程中損失函數(shù)的收斂速度調整α、β、γ的值,通過實驗取α=0.4,β=0.4,γ=0.2。
在CASIA 相關數(shù)據(jù)集上進行了PointNet、PointNet++、PointCNN、SAN、HFN 等深度分類網(wǎng)絡的三維人臉識別實驗。從表2 中可以發(fā)現(xiàn):與文獻[4]中的主成分分析(Principal Component Analysis,PCA)以及文獻[19]中的多種傳統(tǒng)方法相比,深度分類網(wǎng)絡PointNet 和PointCNN 方法識別率偏低,SAN方法由于從多個方向加強了對三維點云空間結構特征的捕捉,使得人臉的空間特征更加豐富,網(wǎng)絡的識別率已有大幅度提升,接近傳統(tǒng)方法的識別率,PointNet++在PointNet 分類網(wǎng)絡結構的基礎上增加局部區(qū)域的特征提取后,其識別結果已經(jīng)高于文獻[19]方法3.94個百分點,本文提出的HFN方法在CASIA 數(shù)據(jù)集上的識別率為95.51%,高于已有的多個深度網(wǎng)絡方法和傳統(tǒng)方法的識別率。
表2 不同方法在CASIA 數(shù)據(jù)集上的識別結果 單位:%Tab.2 Recognition results of different methods on CASIA dataset unit:%
表3 的識別結果表明,文獻[4]中頭部姿態(tài)對識別結果影響較大,在Pose1(頭部偏轉±20°~±30°)和Pose2(頭部偏轉±50°~±60°)數(shù)據(jù)集上,深度特征的識別率都高于強度特征的識別率,且Gabor 小波處理后的深度特征在Pose1 數(shù)據(jù)集上識別率最高,為82.4%,同時在Pose1 數(shù)據(jù)集上的識別率比Pose2 數(shù)據(jù)集最多高了34.5 個百分點,識別率相差較大,對于Pose3(頭部偏轉±80°~±90°)并未進行測試,由此可見,手工設計三維人臉的幾何特征受姿態(tài)影響較大。相比之下,PointNet系列的深度學習方法是直接以三維點云作為輸入,進而提取特征,受姿態(tài)變化的影響小,在Pose1、Pose2 的數(shù)據(jù)下識別率相差不大,PointNet++、SAN 分類網(wǎng)絡的方法均取得了高于文獻[4]的識別結果。同時,本文提出的HFN 方法在頭部偏轉±20°~±30°、±50°~±60°的數(shù)據(jù)集上取得了最高的識別率,分別為95.60%、96.48%。在Pose3 數(shù)據(jù)集中所有方法的識別率均偏低,其中,SAN 方法的識別率比PointNet++方法的高7.66個百分點,本文提出的HFN 方法在Pose3 數(shù)據(jù)集上的識別率比SAN 方法的高4.5 個百分點,但仍低于Pose1、Pose2 數(shù)據(jù)集上的識別率。可見,由于頭部大角度偏轉造成的點云數(shù)據(jù)大量缺失導致人臉點云空間結構的不完整仍會影響人臉識別結果。
表3 不同方法在CASIA數(shù)據(jù)庫的姿態(tài)數(shù)據(jù)集上的識別結果 單位:%Tab.3 Recognition results of different methods on pose datasets of CASIA database unit:%
原始點云可以清晰地看出三維人臉的空間結構,如圖4(a),但是原始點云的數(shù)量均不相同,而深度網(wǎng)絡的輸入是采用了特定點數(shù)的點云。因此,為了探究點云數(shù)量對識別率的影響,本文測試了兩種點云數(shù)量的輸入方式并應用于PointNet系列的網(wǎng)絡進行了分類結果對比。一種是輸入點云數(shù)量為2 048,另一種是輸入點云數(shù)量為1 024,基于隨機下采樣算法將兩種輸入方式的點云進行可視化,點云數(shù)據(jù)更加稀疏,但整體空間結構仍保留,分別如圖4(b)和圖4(c)所示。
圖4 三維人臉點云隨機下采樣可視化結果Fig.4 Visualization results of random downsampling of 3D face point cloud
從表4的識別結果可以看出,對于PointNet++、SAN 方法,三維人臉點云采樣數(shù)量設置為1 024個點時,在多個數(shù)據(jù)集上的識別率略高,而HFN 方法,點云采樣數(shù)量為2 048 時,在各個數(shù)據(jù)集上的識別率均高于采樣點為1 024個點的識別率。
表4 不同方法采用兩種點云輸入方式的識別結果對比 單位:%Tab.4 Comparison of recognition results using two point cloud input methods in different methods unit:%
本文針對人臉表情、姿態(tài)同時存在時,人臉非剛性區(qū)域存在形變且三維點云數(shù)據(jù)缺失的問題,探究性地將CASIA 數(shù)據(jù)庫的相關點云數(shù)據(jù)集在多個分類網(wǎng)絡中進行了訓練和測試,并提出了HFN 方法,HFN 中結合了SA 模塊和DSA 模塊中以不同方式獲取的兩種點云特征,加強了局部特征的優(yōu)勢,并且克服了點云分布不均的影響。HFN方法不僅在整個數(shù)據(jù)庫上提高了平均識別率,在較小頭部姿態(tài)、較大頭部姿態(tài)以及極大頭部姿態(tài)數(shù)據(jù)集上都有良好的識別結果。在接下來的研究工作中,提升HFN 在大姿態(tài)數(shù)據(jù)集上的識別率仍需進一步探索。