學號:17020150042
姓名:宗澤民
原文鏈接:https://blog.csdn.net/hahabeibei123456789/article/details/98036011
【嵌牛導讀】有關圖像算法的3D人臉識別技術原理
【嵌牛鼻子】3D人臉識別技術
【嵌牛正文】
隨著深度學習技術的進步,面部相關任務的研究也成為學術界和工業界的熱門話題。眾所周知的面部任務通常包括面部檢測,面部識別,面部表情識別等,其主要使用2D RGB面部(通常包括一些紋理信息)作為輸入; 3D掃描成像技術的出現為面部相關任務 - 3D面部開發了一條新的探索路線。
與許多2D面部相關的任務介紹性文獻/評論文章相比,3D面部的入門知識還不夠好。本文將回顧和介紹三維人臉相關的基礎知識,并總結一些關于三維人臉識別與重建的基礎入門文獻。
3D人臉基礎知識
一般而言,RGB,灰度和紅外人臉圖像是2D人臉,其主要是在特定視角下表示顏色或紋理的圖像,并且沒有空間信息。用于訓練深度學習的圖像通常是2D。
2.5D是在某個視角下拍攝的面部深度數據,但由于角度問題,它顯示的表面不連續,也就是說,當你試圖旋轉面部時,會有一些像溝壑一樣的空隙區域。這是因為拍攝時未捕獲被遮擋部分的深度數據。
那么3D面孔呢?它通常由不同角度的多個深度圖像組成,完全顯示面部的表面形狀,并且在具有一定深度信息的密集點云中的空間中呈現面部。
相機模型
相機模型包括四個坐標系:像素坐標,圖像坐標,攝像機坐標,世界坐標(高中物理老師的頭部沒有閃光燈談論參考系統),攝像機成像過程是三維的 真實三維空間中的點映射到成像平面(二維空間)的過程也稱為投影變換。
●相機坐標→圖像坐標
相機坐標系到圖像坐標系的過程可用小孔成像解釋,本文借助相似原理可清楚描述相機坐標系中點P[X,Y,Z]
到像平面點P'[x,y]的過程,其中 f 為相機焦距。
相機坐標到圖像坐標的齊次表示
●圖像坐標→像素坐標
一般使用像素值表示 2D 圖像,坐標原點通常是圖像的左上角,因此像素坐標和成像平面坐標之間,相差了一個縮放和原點的平移
通過用相機坐標表示圖像坐標,可以得到像素坐標與相機坐標的關系:
為保證齊次性(一般很多變換矩陣有這個特性),這里稍作改寫:
即經常說的相機內參矩陣(Camera Intrinsics),K 有 4 個未知數和相機的構造相關,f_x,f_y 和相機焦距、像素大小有關,c_x,c_y 是平移的距離,和相機成像平面的大小有關。
●世界坐標→相機坐標
其實,相機坐標系并不是一個特別“穩定”的坐標系,因為相機會隨著自身移動而改變坐標的原點以及各個坐標軸的方向,這時就需要一個更穩定的坐標系來更好地表示射影變換,而我們通常采用的恒定不變的坐標系為世界坐標系。
相機坐標系與世界坐標系之間相差一個旋轉矩陣和平移向量
同樣為了保證齊次性,其改寫形式如下:
即常說的相機外參(Camera Extrinsics)。
從世界坐標系到像素坐標系相當于弱投影過程。總之,有必要將攝像機坐標系轉換為像素坐標系。攝像機內部參數需要從攝像機坐標系轉換為世界坐標系。
3D相機
根據相機的工作模式,它可以分為單目相機(Monocular),雙目相機(Stereo)和深度相機(RGB-D),而相機的精髓也在于反映三者 二維的維度世界。
單目攝像機,即單個攝像機的攝像機,會丟失場景的深度,因為它只能同時捕獲某個視角的圖像。例如,如果已知某個圖像點P在成像平面上,由于特定距離未知,投影的像素點可以是連接相機原點和P的線上的任何位置,因此在旅行或畢業時, 可以采取。精心挑選的人放錯了效果圖。
那你怎么用深入的信息拍照呢?一種方法是通過雙目相機獲得深度。雙目相機顧名思義“雙眼”,左眼相機和右眼相機的光圈中心和基線,空間中的點P將投影在雙目相機圖像的總和上 因此,P原理可以通過相似原理來解決。到基線的距離是點P的深度(參見下面的公式)。在實際應用中,更容易計算物體紋理豐富的地方的視差,并且考慮到計算量,雙目深度估計通常由GPU或FPGA計算。
隨著技術的不斷發展,深度相機的出現使我們更容易捕捉到圖像的深度。其中一款深度相機是基于結構光的RGB-D相機。以人臉為例,掃描儀在目標面上發出光圖案(例如光柵),并根據其變形計算表面的形狀,從而計算面部深度信息.
圖片中還有一個RGB相機,那么如何實現深度和RGB之間的一對一對應?在測量深度之后,RGB-D相機通常根據制作時每個相機的位置完成深度和彩色圖像像素之間的配對,并輸出一對一對應的彩色圖和深度圖。我們可以在相同的圖像位置讀取顏色信息和距離信息,計算像素的3D相機坐標,并生成點云。
還有一個基于飛行時間(ToF)的深度相機,它向目標發射脈沖光,然后根據光束在傳輸和返回之間的飛行時間確定物體與其自身的距離。與激光傳感器不同,ToF相機可以在發射脈沖光的同時捕獲整個圖像的像素深度,而激光通常通過逐點掃描獲取深度信息。
綜上所述,3D人臉任務通常使用深度相機來獲取人臉的深度信息。深度相機通常包括雙目相機,基于紅外結構光原理(例如Kinect 1代)的RGB-D相機或基于光時間的原理。ToF相機(如Kinect 2代)。
3D 人臉數據
3D面部相關任務通常有三種表征數據的方法:點云,網格圖和深度圖。
點云(Point cloud)
在三維點云中,每個點對應于三維坐標。許多3D掃描設備使用該數據格式來存儲所獲取的3D面部信息。有時,面部的紋理屬性也可以縫合到形狀信息,并且點的表達式變為,其中p,q是稀疏坐標。
點云的缺點在于,由于點存儲通常是無序的,因此不能很好地獲得每個點的鄰域信息。通常,點云數據用于擬合平滑表面以減少噪聲的影響。
網格(Mesh)
3D網格由3D表面上的預先計算和索引信息表示。與點云數據相比,它需要更多的內存和存儲空間,但由于3D網格的靈活性,它更適合做一些三維變換,如仿射變換,旋轉和縮放。每個3D網格數據由以下元素組成:點,線和三角形面。二維紋理的坐標信息也可以存儲在點信息中,這有利于重建更精確的三維模型。
深度(Depth/Range)
深度圖像也稱為2.5D或范圍圖像。將3D面的z軸值投影到2D平面上,類似于平滑的3D表面。由于這是二維表示,因此可以直接應用許多處理二維圖像的現有方法。該數據可以使用三角測量原理直接以灰度顯示或轉換為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方法; 在提取特征之后,可以執行各種面部任務,例如識別,表達分析,性別分類,年齡分類等。
鑒于本文的目的是梳理三維人臉介紹的相關知識,下面簡要介紹三維人臉重建與識別的相關工作,包括開發過程和一些相對易用的論文。
3D人臉識別
在3D人臉識別的最初幾十年中,面部設計的特征和分類或測量方法被用于面部驗證和識別。近年來,隨著深度學習方法的興起,一些工作已經被數據和3D人臉識別模型訓練所驅動。本文簡要總結了三維人臉識別方法,具體如下:
1.傳統的識別方法
基于點云數據的三維人臉識別
這種方法通常不考慮3D空間中的面部特征,而是直接使用3D點云進行匹配。常用方法是ICP(迭代最近點,鏈接:https://en.wikipedia.org/wiki/Iterative_closest_point)和Hausdorff距離(鏈接:https://en.wikipedia.org/wiki/Hausdorff_distance)。
作為一種剛性匹配算法,ICP可以校正三維點云本身的平移和旋轉變換,但對于由表達式和遮擋引起的表面凹凸變化不夠穩健,且時間開銷相對較大。
ICP使用面部表面采樣的法向矢量進行匹配。由于正常信息具有更好的可辨識性,因此這里簡要介紹ICP算法。ICP是一種迭代最近點的方法,可以實現兩個云的匹配。確切地說,這種類型與2D面的關鍵點對齊。
Hausdorff距離通過計算兩個面的三維點云之間的最近點對之間的最大值來評估空間中不同真實子集之間的距離。但是,該算法仍然存在表達和遮擋問題。改進的Hausdorff距離算法使用3D面的輪廓來過濾數據庫中的對象。
模板面部方法由三維人臉上的種子點變形,適合待測人員的面部,使用擬合參數進行人臉識別,并且可以生成特定的密集三者生成的 - 維面點云對齊方法。變形的臉模型。
基于人臉特征的三維人臉識別
基于人臉特征的三維人臉識別可分為局部特征和全局特征。有關詳細信息,請參閱3D Face Analysis:進展和展望。
本地功能有兩個方面。一種是基于面部區域組件信息的特征,例如鼻子,眼睛和嘴巴區域。這些特征可以大致分為基于面部關鍵點,曲率和塊的特征提取方法; 描述子算法提取的特征,如在深度圖像上提取小波特征,SIFT,2D-LBP,MRF,LSP,以及對3D數據進行特征提取,如3D-LBP。全局特征可以轉換整個面部并提取特征。面部數據可以以不同的方式存儲,例如點云,圖像,網格型3D面部數據,例如3D面部模型作為球面諧波特征。(SHF),或者使用稀疏系數作為特征將3D面部表面映射到用于稀疏表示的二維網格中。
2.深度學習識別方法
CNN在2D人臉識別方面取得了很大進展。然而,2D臉部很容易受到化妝,手勢,燈光和表情的影響。3D面本身包含面部的空間形狀信息,受外部因素的影響較小。與2D面部相比,3D面部數據攜帶更多信息。然而,由于難以獲得3D面部數據和一些面部數據缺乏準確性,3D面部識別的發展不是很熱。
基于深度圖的人臉識別
深度圖中人臉識別的常用方法包括提取LBP,多幀深度圖融合,深度圖歸一化等特征。這里,簡要介紹了兩個與深度圖相關的人臉識別論文。
《Robust Face Recognition with Deeply Normalized Depth Images 》
本文被認為是一種比較常見的深度圖人臉識別管道,它分為兩個網絡:規范化網絡和特征提取網絡。歸一化網絡負責將輸入深度圖轉換為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對齊的深度圖作為頻道發送到CNN網絡。RGB-D的一個優點是增加面部的空間形狀信息。RGB-D圖像有很多面部識別論文,但基本思想是融合在要素層或像素層中。
《Accurate and robust face recognition from RGB-D images with a deep learning approach 》
2016年,本文提出了一種基于深度學習的RGB-D圖像人臉識別算法。本文通過RGB圖像和多幀融合深度圖像進行預訓練和遷移學習,并在特征層融合,增強識別能力。
基于深度/ RGB-3DMM的人臉識別
在過去的兩年中,出現了使用3DMM進行深度或RGB圖像的人臉模型回歸,并應用于識別任務。這類工作的總體思路是通過回歸3DMM參數(表情,姿勢,形狀)來實現3D人臉數據增強,并應用于CNN培訓,代表性工作如FR3DNet(鏈接:https:/ / arxiv.org/) abs / 1711.05942),3D人臉識別(鏈接:https://arxiv.org/abs/1703.10714)。
《Deep 3D Face Identification》
本文是將深度神經網絡應用于三維人臉識別任務的第一種方法。主要思想是利用3DMM + BFM將深度圖擬合成3D人臉模型,實現深度數據放大,最后將數據增強(如隨機遮擋和姿態變換)發送到Finetune的2D人臉識別網絡。
《Learning from Millions of 3D Scans for Large-scale 3D Face Recognition》
本文是3D人臉識別的杰作,真正實現了數百萬個人臉數據的創建,提出了一個3D人臉識別網絡FR3DNet,最終在現有公共數據集上進行了測試,效果非常好(數據方式) 駕駛基本上是完全刷牙的狀態)。 創建新ID的方法是在作者的私有數據集中找到兩個具有最大彎曲能量差異的3D面,并通過添加獲得新的3D面(有關詳細信息,請參閱原始文本); 還提出了臉部3D。 在點云識別網絡中,使用大卷積核有助于更好地感知點云的形狀信息。
還有許多數據驅動的3D人臉識別,如3DMMCNN(鏈接:https://arxiv.org/abs/1612.04904),總結基于深度學習的3D人臉識別方法受到數據和現有數據不足的限制。精度不夠。研究人員的第一項任務是進行大量數據增強或生成大量虛擬3D人臉。但是,這些方法是否具有很強的泛化性能仍值得討論,屬于3D人臉識別時代也許還未到來。
3D人臉重建
3D面部研究中另一個有趣的方向是3D面部重建,其是通過一個或多個RGB面部圖像重建面部的3D模型。它有許多應用場景,例如Face Animation,密集Face。事實上,RGB到3D人臉重建是一個病態的問題,因為RGB圖像實際上代表了紋理特征并且沒有空間信息,但考慮到實際應用價值,已經提出了一些三維重建方法。這些年來。
基于傳統方法的人臉重建
傳統的3D人臉重建方法通常通過圖像本身表示的信息完成3D人臉重建,例如圖像的視差和相對高度。通過雙目視覺實現3D重建更為常見。困難在于如何在不同的視角下匹配相應的特征。對于此類文章,您可以參考“不同3D面部重建方法的調查”(鏈接:https://pdfs.semanticscholar.org/d4b8/8be6ce77164f5eea1ed2b16b985c0670463a.pdf)。
基于模型的面部重建
3D面部重建中有兩種常用的模型,其中一種是通用模型CANDIDE,另一種是3DMM。
在眾多常見型號中,CANDIDE-3最為著名,包括113個頂點和168個面。簡單地說,通過修改這些頂點和面,它們的特征與要重建的圖像相匹配。通過整體調整,面部特征等面部特征盡可能對齊;進行局部調整以使面部的局部細節更精確,之后,執行頂點插值,并且可以獲得重建的人臉。
該模型的優缺點是顯而易見的。模板的頂點數量太少,重建速度快,但重建精度嚴重不足,面部細節特征重建不好。
入門 3D 人臉一定會接觸的算法是 3D Morphable Model (3DMM),這是 1999 年由 Volker Blanz 在《A Morphable Model For The Synthesis Of 3D Faces》一文中提出的一種人臉模型的線性表示,可以將一張 2D 的人臉圖片生成其對應的 3D 人臉模型,表示方法為:
其中si和ci分別為通過統計分析 PCA 得到的 shape 和 expression 基,使用 3DMM 模型重建人臉首先需要這兩組基,目前使用較多的是 BFM 基【下載地址】(https://faces.dmi.unibas.ch/bfm/main.php?nav=1-2&id=downloads)【論文地址】(https://ieeexplore.ieee.org/document/5279762)。
那么如何從二維重建三維呢?首先要了解三維模型是如何投影到二維平面的,上文最開始講的相機模型,把三維模型投影到二維平面可以表示為:
通過使用面部數據庫構建平均面部變形模型。在給出新的面部圖像之后,將面部圖像與模型匹配,并且修改模型的相應參數以使模型變形直到模型和面部圖像。差異被最小化,紋理被優化和調整以完成面部建模。
一般的2D到3D重建過程使用監督方法來處理2D面部關鍵字和3D頂點的正交投影上的關鍵點。
基于 CNN 端到端的人臉重建
利用3DMM模型,可以執行單個2D面的3D重建,但是真正的問題是傳統的3DMM重建是迭代擬合過程,其效率低,因此不適合于實時3D面。重建。分析3DMM原理,我們需要調整3DMM的199維參數(這個不同的基數是不同的),為什么不使用CNN回歸基參數?通過這種方式,我們可以通過網絡預測參數,實現3DMM的快速重建。
但是有一個問題,我們如何獲得培訓數據?為此,大多數論文選擇使用3DMM線來擬合大量的人臉圖像作為地面實況,然后將它們發送到神經網絡進行訓練。雖然這是一個病態的問題,但效果還不錯。本文將介紹幾種易于理解的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信息,而中間層特征可以表示表達特征,因此可以從不同層次返回相應的參數來實現3D人臉重建任務。
《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network 》
另一種常見的端到端3D人臉重建方法是位置回歸網絡(PRN),強推?。ㄊ褂瞄_源代碼PRN:https://github.com/YadiraF/PRNet)。
本文提出了一種用于三維人臉重建和密集人臉對齊的端到端位置回歸網絡。
作者介紹了UV位置圖,它可以通過2D圖像存儲人臉的3D點云坐標。假設包含65536個點的3D點云可以通過UV位置圖(每個像素點)表示為256 * 2563 2D圖像。存儲點云的空間坐標,因此可以通過編碼器 - 解碼器網絡返回原始圖像的UV位置圖來實現3D面部重建。
通過設計不同區域不同權重的損失函數,作者最終實現了更高精度的人臉重建和密集的關鍵點對齊。
《3D Dense Face Alignment via Graph Convolution Networks》
上述回歸UV位置圖的方法存在問題。當最終的UV圖像映射到3D面網格的圖像時,會出現一些條紋。在最近的一些3D面部重建工作中,通過多級回歸3D面部網格也有很好的重建效果。
本文作者逐步增加了網格頂點的回歸,從而完成了多個監督任務下的最終網格回歸。同時,采用圖卷積的形式,點之間的映射關系可以更加必要,最終實現。良好的重建效果。
3D人臉重建是近年來的熱門話題。每年在各種會議上有很多文章提出各種3D面部重建程序。但是,從入門的角度來看,掌握上述常用方法將是下一步的研究,將打下良好的基礎。