學號:17020150042
姓名:宗澤民
原文鏈接:https://blog.csdn.net/hahabeibei123456789/article/details/98036011
【嵌牛導讀】有關圖像算法的3D人臉識別技術原理
【嵌牛鼻子】3D人臉識別技術
【嵌牛正文】
隨著深度學習技術的進步跛蛋,面部相關任務的研究也成為學術界和工業(yè)界的熱門話題悦荒。眾所周知的面部任務通常包括面部檢測尤勋,面部識別匣沼,面部表情識別等供搀,其主要使用2D RGB面部(通常包括一些紋理信息)作為輸入; 3D掃描成像技術的出現(xiàn)為面部相關任務 - 3D面部開發(fā)了一條新的探索路線。
與許多2D面部相關的任務介紹性文獻/評論文章相比仪糖,3D面部的入門知識還不夠好鹤竭。本文將回顧和介紹三維人臉相關的基礎知識,并總結一些關于三維人臉識別與重建的基礎入門文獻藕漱。
3D人臉基礎知識
一般而言欲侮,RGB,灰度和紅外人臉圖像是2D人臉肋联,其主要是在特定視角下表示顏色或紋理的圖像威蕉,并且沒有空間信息。用于訓練深度學習的圖像通常是2D橄仍。
2.5D是在某個視角下拍攝的面部深度數據韧涨,但由于角度問題牍戚,它顯示的表面不連續(xù),也就是說虑粥,當你試圖旋轉面部時如孝,會有一些像溝壑一樣的空隙區(qū)域。這是因為拍攝時未捕獲被遮擋部分的深度數據娩贷。
那么3D面孔呢第晰?它通常由不同角度的多個深度圖像組成,完全顯示面部的表面形狀彬祖,并且在具有一定深度信息的密集點云中的空間中呈現(xiàn)面部茁瘦。
相機模型
相機模型包括四個坐標系:像素坐標,圖像坐標涧至,攝像機坐標腹躁,世界坐標(高中物理老師的頭部沒有閃光燈談論參考系統(tǒng)),攝像機成像過程是三維的 真實三維空間中的點映射到成像平面(二維空間)的過程也稱為投影變換南蓬。
●相機坐標→圖像坐標
相機坐標系到圖像坐標系的過程可用小孔成像解釋纺非,本文借助相似原理可清楚描述相機坐標系中點P[X,Y,Z]
到像平面點P'[x,y]的過程,其中 f 為相機焦距赘方。
相機坐標到圖像坐標的齊次表示
●圖像坐標→像素坐標
一般使用像素值表示 2D 圖像烧颖,坐標原點通常是圖像的左上角,因此像素坐標和成像平面坐標之間窄陡,相差了一個縮放和原點的平移
通過用相機坐標表示圖像坐標炕淮,可以得到像素坐標與相機坐標的關系:
為保證齊次性(一般很多變換矩陣有這個特性),這里稍作改寫:
即經常說的相機內參矩陣(Camera Intrinsics)跳夭,K 有 4 個未知數和相機的構造相關涂圆,f_x,f_y 和相機焦距币叹、像素大小有關润歉,c_x,c_y 是平移的距離颈抚,和相機成像平面的大小有關踩衩。
●世界坐標→相機坐標
其實,相機坐標系并不是一個特別“穩(wěn)定”的坐標系贩汉,因為相機會隨著自身移動而改變坐標的原點以及各個坐標軸的方向驱富,這時就需要一個更穩(wěn)定的坐標系來更好地表示射影變換,而我們通常采用的恒定不變的坐標系為世界坐標系匹舞。
相機坐標系與世界坐標系之間相差一個旋轉矩陣和平移向量
同樣為了保證齊次性褐鸥,其改寫形式如下:
即常說的相機外參(Camera Extrinsics)。
從世界坐標系到像素坐標系相當于弱投影過程策菜【郏總之酒贬,有必要將攝像機坐標系轉換為像素坐標系。攝像機內部參數需要從攝像機坐標系轉換為世界坐標系翠霍。
3D相機
根據相機的工作模式锭吨,它可以分為單目相機(Monocular),雙目相機(Stereo)和深度相機(RGB-D)寒匙,而相機的精髓也在于反映三者 二維的維度世界零如。
單目攝像機,即單個攝像機的攝像機锄弱,會丟失場景的深度考蕾,因為它只能同時捕獲某個視角的圖像。例如会宪,如果已知某個圖像點P在成像平面上肖卧,由于特定距離未知,投影的像素點可以是連接相機原點和P的線上的任何位置掸鹅,因此在旅行或畢業(yè)時塞帐, 可以采取。精心挑選的人放錯了效果圖巍沙。
那你怎么用深入的信息拍照呢葵姥?一種方法是通過雙目相機獲得深度。雙目相機顧名思義“雙眼”句携,左眼相機和右眼相機的光圈中心和基線榔幸,空間中的點P將投影在雙目相機圖像的總和上 因此,P原理可以通過相似原理來解決矮嫉。到基線的距離是點P的深度(參見下面的公式)削咆。在實際應用中,更容易計算物體紋理豐富的地方的視差蠢笋,并且考慮到計算量态辛,雙目深度估計通常由GPU或FPGA計算。
隨著技術的不斷發(fā)展挺尿,深度相機的出現(xiàn)使我們更容易捕捉到圖像的深度。其中一款深度相機是基于結構光的RGB-D相機炊邦。以人臉為例编矾,掃描儀在目標面上發(fā)出光圖案(例如光柵),并根據其變形計算表面的形狀馁害,從而計算面部深度信息.
圖片中還有一個RGB相機窄俏,那么如何實現(xiàn)深度和RGB之間的一對一對應?在測量深度之后碘菜,RGB-D相機通常根據制作時每個相機的位置完成深度和彩色圖像像素之間的配對凹蜈,并輸出一對一對應的彩色圖和深度圖限寞。我們可以在相同的圖像位置讀取顏色信息和距離信息,計算像素的3D相機坐標仰坦,并生成點云履植。
還有一個基于飛行時間(ToF)的深度相機,它向目標發(fā)射脈沖光悄晃,然后根據光束在傳輸和返回之間的飛行時間確定物體與其自身的距離玫霎。與激光傳感器不同,ToF相機可以在發(fā)射脈沖光的同時捕獲整個圖像的像素深度妈橄,而激光通常通過逐點掃描獲取深度信息庶近。
綜上所述,3D人臉任務通常使用深度相機來獲取人臉的深度信息眷蚓。深度相機通常包括雙目相機鼻种,基于紅外結構光原理(例如Kinect 1代)的RGB-D相機或基于光時間的原理。ToF相機(如Kinect 2代)沙热。
3D 人臉數據
3D面部相關任務通常有三種表征數據的方法:點云叉钥,網格圖和深度圖。
點云(Point cloud)
在三維點云中校读,每個點對應于三維坐標沼侣。許多3D掃描設備使用該數據格式來存儲所獲取的3D面部信息。有時歉秫,面部的紋理屬性也可以縫合到形狀信息蛾洛,并且點的表達式變?yōu)椋渲衟雁芙,q是稀疏坐標轧膘。
點云的缺點在于,由于點存儲通常是無序的兔甘,因此不能很好地獲得每個點的鄰域信息谎碍。通常,點云數據用于擬合平滑表面以減少噪聲的影響洞焙。
網格(Mesh)
3D網格由3D表面上的預先計算和索引信息表示蟆淀。與點云數據相比,它需要更多的內存和存儲空間澡匪,但由于3D網格的靈活性熔任,它更適合做一些三維變換,如仿射變換唁情,旋轉和縮放疑苔。每個3D網格數據由以下元素組成:點,線和三角形面甸鸟。二維紋理的坐標信息也可以存儲在點信息中惦费,這有利于重建更精確的三維模型兵迅。
深度(Depth/Range)
深度圖像也稱為2.5D或范圍圖像。將3D面的z軸值投影到2D平面上薪贫,類似于平滑的3D表面恍箭。由于這是二維表示,因此可以直接應用許多處理二維圖像的現(xiàn)有方法后雷。該數據可以使用三角測量原理直接以灰度顯示或轉換為3D網格季惯。
3D人臉相關任務
常用Pipeline
2D 人臉相關任務的 Pipeline 一般分為數據預處理、特征提取臀突、特征分析等過程勉抓,那么 3D 人臉的 Pipeline 呢?這里本文引用《3D Face Analysis: Advances and Perspectives》
上面顯示了一個通用的3D / 2.5D面部分析框架候学。我們通過設備獲得面部(網格藕筋,點云,深度)的3D / 2.5D表示梳码,并在經過一些預處理操作(如球面剪切隐圾,噪聲消除,深度缺失修復掰茶,點)后獲得一些可用的3D / 2.5D 云登記等人臉暇藏。
接下來,預處理面的特征在于許多方法濒蒋,例如表面法線盐碱,曲率,UV-Map或常用的CNN方法; 在提取特征之后沪伙,可以執(zhí)行各種面部任務瓮顽,例如識別,表達分析围橡,性別分類暖混,年齡分類等。
鑒于本文的目的是梳理三維人臉介紹的相關知識翁授,下面簡要介紹三維人臉重建與識別的相關工作拣播,包括開發(fā)過程和一些相對易用的論文。
3D人臉識別
在3D人臉識別的最初幾十年中收擦,面部設計的特征和分類或測量方法被用于面部驗證和識別诫尽。近年來,隨著深度學習方法的興起炬守,一些工作已經被數據和3D人臉識別模型訓練所驅動。本文簡要總結了三維人臉識別方法剂跟,具體如下:
1.傳統(tǒng)的識別方法
基于點云數據的三維人臉識別
這種方法通常不考慮3D空間中的面部特征减途,而是直接使用3D點云進行匹配酣藻。常用方法是ICP(迭代最近點,鏈接:https://en.wikipedia.org/wiki/Iterative_closest_point)和Hausdorff距離(鏈接:https://en.wikipedia.org/wiki/Hausdorff_distance)鳍置。
作為一種剛性匹配算法辽剧,ICP可以校正三維點云本身的平移和旋轉變換,但對于由表達式和遮擋引起的表面凹凸變化不夠穩(wěn)健税产,且時間開銷相對較大怕轿。
ICP使用面部表面采樣的法向矢量進行匹配。由于正常信息具有更好的可辨識性辟拷,因此這里簡要介紹ICP算法撞羽。ICP是一種迭代最近點的方法,可以實現(xiàn)兩個云的匹配衫冻。確切地說诀紊,這種類型與2D面的關鍵點對齊。
Hausdorff距離通過計算兩個面的三維點云之間的最近點對之間的最大值來評估空間中不同真實子集之間的距離隅俘。但是邻奠,該算法仍然存在表達和遮擋問題。改進的Hausdorff距離算法使用3D面的輪廓來過濾數據庫中的對象为居。
模板面部方法由三維人臉上的種子點變形碌宴,適合待測人員的面部,使用擬合參數進行人臉識別蒙畴,并且可以生成特定的密集三者生成的 - 維面點云對齊方法贰镣。變形的臉模型。
基于人臉特征的三維人臉識別
基于人臉特征的三維人臉識別可分為局部特征和全局特征忍抽。有關詳細信息八孝,請參閱3D Face Analysis:進展和展望。
本地功能有兩個方面鸠项。一種是基于面部區(qū)域組件信息的特征干跛,例如鼻子,眼睛和嘴巴區(qū)域祟绊。這些特征可以大致分為基于面部關鍵點楼入,曲率和塊的特征提取方法; 描述子算法提取的特征,如在深度圖像上提取小波特征牧抽,SIFT嘉熊,2D-LBP,MRF扬舒,LSP阐肤,以及對3D數據進行特征提取,如3D-LBP。全局特征可以轉換整個面部并提取特征孕惜。面部數據可以以不同的方式存儲愧薛,例如點云,圖像衫画,網格型3D面部數據毫炉,例如3D面部模型作為球面諧波特征。(SHF)削罩,或者使用稀疏系數作為特征將3D面部表面映射到用于稀疏表示的二維網格中瞄勾。
2.深度學習識別方法
CNN在2D人臉識別方面取得了很大進展。然而弥激,2D臉部很容易受到化妝进陡,手勢,燈光和表情的影響秆撮。3D面本身包含面部的空間形狀信息四濒,受外部因素的影響較小。與2D面部相比职辨,3D面部數據攜帶更多信息盗蟆。然而,由于難以獲得3D面部數據和一些面部數據缺乏準確性舒裤,3D面部識別的發(fā)展不是很熱喳资。
基于深度圖的人臉識別
深度圖中人臉識別的常用方法包括提取LBP,多幀深度圖融合腾供,深度圖歸一化等特征仆邓。這里,簡要介紹了兩個與深度圖相關的人臉識別論文伴鳖。
《Robust Face Recognition with Deeply Normalized Depth Images 》
本文被認為是一種比較常見的深度圖人臉識別管道节值,它分為兩個網絡:規(guī)范化網絡和特征提取網絡。歸一化網絡負責將輸入深度圖轉換為HHA圖像并通過CNN網絡返回3DMM的參數(如下面的3D重建中所述)榜聂,其可在重建3D點云之后投影到歸一化深度中搞疗。。特征提取網絡基本上類似于普通的2D人臉識別網絡须肆,并且獲得表征深度圖面部的特征向量匿乃。
《Led3D: A Lightweight and Efficient Deep Approach to Recognizing Low-quality 3D Faces 》
本文是CVPR 2019的低質量深度圖人臉識別文章。深度圖面向預處理和數據增強操作的一些文本值得參考豌汇。在本文中幢炸,球面的法線的法線用作網絡輸入。實驗表明拒贱,可以更好地表征深層宛徊。同時佛嬉,作者還精心設計了輕量級識別網絡(主要是多層特征融合和關注)。機制)闸天,可以參考巷燥。
基于RGB-D的人臉識別
基于RGB-D的人臉識別基本上基于2D人臉識別方法。與RGB對齊的深度圖作為頻道發(fā)送到CNN網絡号枕。RGB-D的一個優(yōu)點是增加面部的空間形狀信息。RGB-D圖像有很多面部識別論文陨享,但基本思想是融合在要素層或像素層中葱淳。
《Accurate and robust face recognition from RGB-D images with a deep learning approach 》
2016年,本文提出了一種基于深度學習的RGB-D圖像人臉識別算法抛姑。本文通過RGB圖像和多幀融合深度圖像進行預訓練和遷移學習赞厕,并在特征層融合,增強識別能力定硝。
基于深度/ RGB-3DMM的人臉識別
在過去的兩年中皿桑,出現(xiàn)了使用3DMM進行深度或RGB圖像的人臉模型回歸,并應用于識別任務蔬啡。這類工作的總體思路是通過回歸3DMM參數(表情诲侮,姿勢,形狀)來實現(xiàn)3D人臉數據增強箱蟆,并應用于CNN培訓沟绪,代表性工作如FR3DNet(鏈接:https:/ / arxiv.org/) abs / 1711.05942),3D人臉識別(鏈接:https://arxiv.org/abs/1703.10714)空猜。
《Deep 3D Face Identification》
本文是將深度神經網絡應用于三維人臉識別任務的第一種方法绽慈。主要思想是利用3DMM + BFM將深度圖擬合成3D人臉模型,實現(xiàn)深度數據放大辈毯,最后將數據增強(如隨機遮擋和姿態(tài)變換)發(fā)送到Finetune的2D人臉識別網絡坝疼。
《Learning from Millions of 3D Scans for Large-scale 3D Face Recognition》
本文是3D人臉識別的杰作,真正實現(xiàn)了數百萬個人臉數據的創(chuàng)建谆沃,提出了一個3D人臉識別網絡FR3DNet钝凶,最終在現(xiàn)有公共數據集上進行了測試,效果非常好(數據方式) 駕駛基本上是完全刷牙的狀態(tài))管毙。 創(chuàng)建新ID的方法是在作者的私有數據集中找到兩個具有最大彎曲能量差異的3D面腿椎,并通過添加獲得新的3D面(有關詳細信息,請參閱原始文本); 還提出了臉部3D夭咬。 在點云識別網絡中啃炸,使用大卷積核有助于更好地感知點云的形狀信息。
還有許多數據驅動的3D人臉識別卓舵,如3DMMCNN(鏈接:https://arxiv.org/abs/1612.04904)南用,總結基于深度學習的3D人臉識別方法受到數據和現(xiàn)有數據不足的限制。精度不夠。研究人員的第一項任務是進行大量數據增強或生成大量虛擬3D人臉裹虫。但是肿嘲,這些方法是否具有很強的泛化性能仍值得討論,屬于3D人臉識別時代也許還未到來筑公。
3D人臉重建
3D面部研究中另一個有趣的方向是3D面部重建雳窟,其是通過一個或多個RGB面部圖像重建面部的3D模型。它有許多應用場景匣屡,例如Face Animation封救,密集Face。事實上捣作,RGB到3D人臉重建是一個病態(tài)的問題誉结,因為RGB圖像實際上代表了紋理特征并且沒有空間信息,但考慮到實際應用價值券躁,已經提出了一些三維重建方法惩坑。這些年來。
基于傳統(tǒng)方法的人臉重建
傳統(tǒng)的3D人臉重建方法通常通過圖像本身表示的信息完成3D人臉重建也拜,例如圖像的視差和相對高度以舒。通過雙目視覺實現(xiàn)3D重建更為常見。困難在于如何在不同的視角下匹配相應的特征搪泳。對于此類文章稀轨,您可以參考“不同3D面部重建方法的調查”(鏈接:https://pdfs.semanticscholar.org/d4b8/8be6ce77164f5eea1ed2b16b985c0670463a.pdf)。
基于模型的面部重建
3D面部重建中有兩種常用的模型岸军,其中一種是通用模型CANDIDE奋刽,另一種是3DMM。
在眾多常見型號中艰赞,CANDIDE-3最為著名佣谐,包括113個頂點和168個面。簡單地說方妖,通過修改這些頂點和面狭魂,它們的特征與要重建的圖像相匹配。通過整體調整党觅,面部特征等面部特征盡可能對齊;進行局部調整以使面部的局部細節(jié)更精確雌澄,之后,執(zhí)行頂點插值杯瞻,并且可以獲得重建的人臉镐牺。
該模型的優(yōu)缺點是顯而易見的。模板的頂點數量太少魁莉,重建速度快睬涧,但重建精度嚴重不足募胃,面部細節(jié)特征重建不好。
入門 3D 人臉一定會接觸的算法是 3D Morphable Model (3DMM)畦浓,這是 1999 年由 Volker Blanz 在《A Morphable Model For The Synthesis Of 3D Faces》一文中提出的一種人臉模型的線性表示痹束,可以將一張 2D 的人臉圖片生成其對應的 3D 人臉模型,表示方法為:
其中si和ci分別為通過統(tǒng)計分析 PCA 得到的 shape 和 expression 基讶请,使用 3DMM 模型重建人臉首先需要這兩組基祷嘶,目前使用較多的是 BFM 基【下載地址】(https://faces.dmi.unibas.ch/bfm/main.php?nav=1-2&id=downloads)【論文地址】(https://ieeexplore.ieee.org/document/5279762)。
那么如何從二維重建三維呢夺溢?首先要了解三維模型是如何投影到二維平面的职抡,上文最開始講的相機模型感耙,把三維模型投影到二維平面可以表示為:
通過使用面部數據庫構建平均面部變形模型拓巧。在給出新的面部圖像之后涯保,將面部圖像與模型匹配晒来,并且修改模型的相應參數以使模型變形直到模型和面部圖像钞诡。差異被最小化,紋理被優(yōu)化和調整以完成面部建模湃崩。
一般的2D到3D重建過程使用監(jiān)督方法來處理2D面部關鍵字和3D頂點的正交投影上的關鍵點荧降。
基于 CNN 端到端的人臉重建
利用3DMM模型,可以執(zhí)行單個2D面的3D重建攒读,但是真正的問題是傳統(tǒng)的3DMM重建是迭代擬合過程朵诫,其效率低,因此不適合于實時3D面薄扁。重建剪返。分析3DMM原理,我們需要調整3DMM的199維參數(這個不同的基數是不同的)邓梅,為什么不使用CNN回歸基參數脱盲?通過這種方式,我們可以通過網絡預測參數日缨,實現(xiàn)3DMM的快速重建钱反。
但是有一個問題,我們如何獲得培訓數據匣距?為此面哥,大多數論文選擇使用3DMM線來擬合大量的人臉圖像作為地面實況,然后將它們發(fā)送到神經網絡進行訓練毅待。雖然這是一個病態(tài)的問題尚卫,但效果還不錯。本文將介紹幾種易于理解的CNN端到端3D人臉重建方法恩静。
《Disentangling Features in 3D Face Shapes for Joint Face Reconstruction and Recognition 》
本文使用CNN返回Identity Shape和Residual Shape參數焕毫。表達式類似于3DMM蹲坷。不同之處在于,除了普通的重建損失(通常是元素方式的L2損失)之外邑飒,還增加了識別損失以確保重建的面部循签。ID特征不變。
End-to-end 3D face reconstruction with deep neural networks》
本文的思想也是返回3DMM參數疙咸。作者認為县匠,高級語義特征可以表示ID信息,而中間層特征可以表示表達特征撒轮,因此可以從不同層次返回相應的參數來實現(xiàn)3D人臉重建任務乞旦。
《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network 》
另一種常見的端到端3D人臉重建方法是位置回歸網絡(PRN),強推L馍健(使用開源代碼PRN:https://github.com/YadiraF/PRNet)兰粉。
本文提出了一種用于三維人臉重建和密集人臉對齊的端到端位置回歸網絡。
作者介紹了UV位置圖顶瞳,它可以通過2D圖像存儲人臉的3D點云坐標玖姑。假設包含65536個點的3D點云可以通過UV位置圖(每個像素點)表示為256 * 2563 2D圖像。存儲點云的空間坐標慨菱,因此可以通過編碼器 - 解碼器網絡返回原始圖像的UV位置圖來實現(xiàn)3D面部重建焰络。
通過設計不同區(qū)域不同權重的損失函數,作者最終實現(xiàn)了更高精度的人臉重建和密集的關鍵點對齊符喝。
《3D Dense Face Alignment via Graph Convolution Networks》
上述回歸UV位置圖的方法存在問題闪彼。當最終的UV圖像映射到3D面網格的圖像時,會出現(xiàn)一些條紋协饲。在最近的一些3D面部重建工作中畏腕,通過多級回歸3D面部網格也有很好的重建效果。
本文作者逐步增加了網格頂點的回歸茉稠,從而完成了多個監(jiān)督任務下的最終網格回歸郊尝。同時,采用圖卷積的形式战惊,點之間的映射關系可以更加必要流昏,最終實現(xiàn)。良好的重建效果吞获。
3D人臉重建是近年來的熱門話題况凉。每年在各種會議上有很多文章提出各種3D面部重建程序。但是各拷,從入門的角度來看刁绒,掌握上述常用方法將是下一步的研究,將打下良好的基礎烤黍。