1. 程式人生 > >3D人臉重建--學習筆記

3D人臉重建--學習筆記

       本文旨在學習總結2D到3D人臉重建相關問題,個人水平有限,本人也是剛開始調研3D人臉重建,不足之處望大神指點改進。

目錄

1 什麼是3D人臉重建?

       人臉3D重建:從一張或多張2D影象中重建出人臉的3D模型。
       3D人臉模型:
       我們可以用這樣一個表示式來建模3D人臉模型:

M = ( S , T )
       其中, S 表示人臉3D座標形狀向量(shape-vector):
S = ( x 1 , y 1 , z 1 , x 2 , y 2 , z 2 , , x n , y n , z n ) T
        T 表示對應點的文理資訊向量(texture-vector):
T = ( R 1 , G 1 , B 1 , R 2 , G 2 , B 2 , , R n , G n , B n ) T
       2D的人臉圖片可以看作是3D人臉在2D平面上的一個投影, I 代表 M 的2D投影, I ( u , v ) 代表畫素 ( u , v ) 處的紋理值,所以3D人臉重建就是從2D圖片中計算出 M 的估計:
M ^ = ( S ^ , T ^ )
       用影象表示更為直觀:

這裡寫圖片描述

2 重建方法分類

       在過去20年中,研究者們在3D人臉重建方面貢獻甚多,2D人臉影象到3D人臉重建方法也是多種多樣,硬要為其做個分類,大致如下圖(當然可能不太全面):

這裡寫圖片描述

       傳統3D人臉重建方法,大多是立足於影象資訊,如基於影象亮度、邊緣資訊、線性透視、顏色、相對高度、視差等等一種或多種資訊建模技術進行3D人臉重建。這方面的技術論文,無論國內外都相當多,也較雜亂,一時間個人也不好具體統計,總之其中也是有很多不錯的思想和方法的,當然這也不是本文重點內容。
       基於模型的3D人臉重建方法,是目前較為流行的3D人臉重建方法;3D模型主要用三角網格或點雲來表示,現下流行的模型有通用人臉模型(CANDIDE-3)三維變形模型(3DMM)及其變種模型,基於它們的3D人臉重建演算法既有傳統演算法也有深度學習演算法。
       端到端3D人臉重建方法,是近年新起的方法;它們繞開了人臉模型,設計自己的3D人臉表示方法,採用CNN結構進行直接回歸,端到端地重建3D人臉。

3 通用模型3D人臉重建

       得到人臉的通用模型,通常有三種方法:第一種方法是採用三維掃描器獲取資料,此方法採集精度高但裝置價格昂貴;第二種方法是採用計算機圖形技術建立人臉;第三種是利用一些商業的建模軟體生成人臉通用模型,目前在市場上比較著名的人頭模型生成商業軟體有FaceGen Modeller,3D Max 和Poser7.0 等等。
       在眾多通用人臉模型中,CANDIDE-3模型是目前被學術界廣泛使用的一種通用模型,其符合MPEG-4標準中對人臉的定義。
       CANDIDE-3模型總共有113個頂點168個面組成,可以通過對這些點和麵的操作調節形成特定的人臉,下圖為CANDIDE-3的模型展示圖:

這裡寫圖片描述

       通用模型重建法的本質是對通用模型進行修改使得其特徵與所需要恢復的輸入影象相配,一般包括整體性調整區域性性調整兩個方面。整體性調整主要是針對模型的輪廓,通過一定的方法如特徵點對應使得通用模型的整體佈局(如眼耳鼻眉)和輸入圖片的五官佈局儘量一致;區域性性調整指的是針對區域性細節尤其是人臉五官的微調,讓區域性細節更為精確。在進行完這兩項調整之後,再輔助以基於頂點的插值運算就可以重建人臉。通用模型法的優點是計算量較小,但其顯著缺陷就是因頂點數目過少導致對人臉輪廓的模擬和面部細節刻畫不夠細膩,故只能適用於精度要求不高的場合。

4 3D變形模型3D人臉重建

       形變模型(Morphable Model)這一名詞來源於計算機圖形學中一個名叫Morphing技術的影象生成演算法。Morphing 技術主要思想:如果兩幅影象中存在一定的對應關係,那麼就可以利用這個對應關係生成具一副有平滑過渡效果的影象。

4.1 初版3DMM

       文獻:《A Morphable Model For The Synthesis Of 3D Faces》
       在這個思想的引導下,在1999 年,瑞士巴塞爾大學的科學家Blanz 和Vetter 提出了一種十分具有創新性的方法:三維形變模型(3DMM) 。三維形變模型建立在三維人臉資料庫的基礎上,以人臉形狀和人臉紋理統計為約束,同時考慮到了人臉的姿態和光照因素的影響,因而生成的三維人臉模型精度高。
       3DMM模型資料庫人臉資料物件的線性組合,在上面3D人臉表示基礎上,假設我們建立3D變形的人臉模型由m個人臉模型組成,其中每一個人臉模型都包含相應的 S i T i 兩種向量,這樣在表示新的3D人臉模型時,我們就可以用以下的方式:

S n e w M o d e l = S ¯ + i = 1 m 1 α i s i
T n e w M o d e l = T ¯ + i = 1 m 1 β i t i
       其中 S ¯ 表示平均臉部形狀模型, s i 表示shape的PCA部分, α i 表示對應係數;文理模型同理。
       像這樣,一張新的人臉模型就可以由已有的臉部模型線性組合。也就是說,我們可以通過改變係數,在已有人臉基礎上生成不同人臉。

這裡寫圖片描述

4.2 表情3DMM

       初版3DMM雖然解決了人臉變形模型的表達,但其在人臉表情表達上面明顯不足,在2014年時,FacewareHouse這篇論文提出並公開了一個人臉表情資料庫,使得3DMM有了更強的表現力。從而人臉模型的線性表示可以擴充為:

S n e w M o d e l = S ¯ + i = 1 m 1 α i s i + i = 1 n 1 β i e i

這裡寫圖片描述

4.3 人臉重建

       參考文獻:https://blog.csdn.net/likewind1993/article/details/81455882
       從上面可以看出,人臉重建問題就轉向了求 α

相關推薦

3D人臉重建--學習筆記

       本文旨在學習總結2D到3D人臉重建相關問題,個人水平有限,本人也是剛開始調研3D人臉重建,不足之處望大神指點改進。 目錄 1 什麼是3D人臉重建? 2 重建方法分類 3 通用

圖形處理(十三)基於可變形模板的三維人臉重建-學習筆記

基於可變形模板的三維人臉重建-學習筆記 作者:hjimce 一、資料庫處理: 我們通過掃瞄得到的資料,每個人臉模型的網格頂點個數各不相同,也就是拓撲結構不同,因此我們需要對我們的訓練資料,做一個歸一化處理。使得每個模型的頂點一一對應,拓撲結構相同,這一步採用的演算

【論文筆記3D人臉重建_簡略版(時時更新中)

20160221 1. Liu F, Zeng D, Li J, et al. Cascaded regressor based 3d face reconstruction from a single arbitrary view image[J]. a

人臉識別學習筆記(1)

 人臉識別學習筆記(1)  1) 相關科學       神經生理學,神經病理學,心理學,腦神經學,計算機視覺。2) 計算機視覺中的基本問題:  &nbs

3D人臉重建:《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》

《Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network》 目錄 0 前言 1 概述 2 相關工作

【Unity 3D遊戲開發學習筆記】實現太陽系

目標: 寫一個程式,實現一個完整的太陽系, 其他星球圍繞太陽的轉速必須不一樣,且不在一個法平面上。 基本思路是在裡面建立物件,架構成一個太陽系,sun作為父物件,其他行星作為子物件,並且相對sun的初始位置均不一樣,那麼角速度相同的情況下轉速就不一樣了,另外

CT重建學習筆記(二)

一、 探測器的工作原理 X射線探測器是很複雜的器件,一個典型的X射線探測器包括:閃爍體、光電轉換陣列和電子學部分。此外還有軟體、電源等附件。 目前工業X射線CT成像中的X射線探測器中的成像器件主要有以下幾種:光電二極體陣列(PDA)、光電倍增管(PMT),

Unity 3D遊戲開發學習筆記(2) 牧師與魔鬼

遊戲事物: 3牧師,3惡魔,2河岸,河,船。 遊戲故事:3牧師和3惡魔需要用一艘船全部到達彼岸,但是船上和岸上都不能出現惡魔比牧師多的情形,否則惡魔會把牧師K.O,玩家輸掉比賽;直到所有牧師惡魔都到達對岸,玩家取得勝利。 MVC架構: IUser

Learning Spatiotemporal Features with 3D Convolutional Networks學習筆記

Learning Spatiotemporal Features with 3D Convolutional Networks Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani, Manohar

【Unity 3D遊戲開發學習筆記】粒子光環

實現如下圖的粒子光環: 參考網站:http://i-remember.fr/en 思路: 首先宣告定義一個類用於儲存每個粒子的半徑和角度 public class particleClass { public float radius =

人臉識別學習筆記一:入門篇

##### 一、人臉識別概述 ###### 1.人臉識別的困難之處 * 不同個人之間的區別不大:大部分人臉的結構都很相似,甚至人臉器官的結構外形都很相似。 * 人臉的外形很不穩定:人的面部表情多變,不同的觀察角度、光照條件等都會影響人臉的視覺影象。 ###### 2.人臉識別的典型流程 * 人臉檢測(

人臉識別學習筆記二:進階篇

##### 一、人臉檢測實戰 ###### 1.使用OpenCV進行人臉檢測 [OpenCV進行人臉檢測](https://www.jiqizhixin.com/articles/2019-05-30-3)使用的是名為 Viola-Jones 的目標檢測框架的演算法。 第一步:下載OpenCV庫 ``

3D【5】人臉重建:Learning the Multilinear Structure of Visual Data閱讀筆記

該論文主要內容是使用張量分解來表徵一個3D人臉,如下公式: 其中B(1)B(1) 是通過大量資料學習出來的,而A(m)A(m) 則是重構出 XX 的係數,⊙⊙ 是克羅內克積。 克羅內克積:一個3×1的向量和一個4×1的向量進行克羅內克積,會得到12×1

3D【3】人臉重建:Image Based 3D Face Reconstruction: A Survey閱讀筆記

該論文是09年的一篇3D人臉重建綜述文章。 目前的大部分3D人臉重建系統受限於3d掃描裝置的一些不足: 1、在掃描過程中要求一定的光線條件 2、無法從多個物體同時獲取3D資料 3、沒有反射的區域無法獲得正確資料(如頭髮) 4、無法實時 5、如果是鐳射

【Unity 3D學習筆記三十:遊戲元素——遊戲地形

nbsp 3d遊戲 strong 直觀 分辨率 == 摩擦力 fill 世界 遊戲地形 在遊戲的世界中,必然會有非常多豐富多彩的遊戲元素融合當中。它們種類繁多。作用也不大同樣。一般對於遊戲元素可分為兩種:經經常使用。不經經常使用。經常使用的元素是遊戲中比較重要的元素。一

【Unity 3D學習筆記四十二:粒子特效

空間 獲得 material package 一個 log 創建 spa mpi 粒子特效 粒子特效的原理是將若幹粒子無規則的組合在一起。來模擬火焰,爆炸。水滴,霧氣等效果。要使用粒子特效首先要創建,在hierarchy視圖中點擊create——particle s

3D Game Programming withDX11 學習筆記(一) 數學知識總結

表示 圖形 http 根據 轉置 元素 material -s com   在圖形學中,數學是不可或缺的一部分,所以本書最開始的部分就是數學知識的復習。在圖形學中,最常用的是矢量和矩陣,所以我根據前面三個章節的數學知識,總結一下數學知識。 一、矢量   數學中的矢量,擁有

Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第七章:在Direct3D中繪製(二)

程式碼工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 學習目標 理解本章中針對命令佇列的更新(不再需要每幀都flush命令佇列),提高效能; 理解其他兩種型別的根訊號引數型別:根描述

Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第六章:在Direct3D中繪製

程式碼工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 學習目標 熟悉Direct3D介面的定義,儲存和繪製幾何資料 ; 學習編寫基本的頂點和畫素著色器; 學習使用渲染流水線狀態

Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第五章:渲染流水線

學習目標 瞭解幾個用以表達真實場景的標誌和2D影象的深度空間; 學習在Direct3D中如何表示3D物體; 學習如何模擬虛擬攝像機; 理解渲染流水線:如何用幾何描述的3D場景渲染出2D影象; 1 3D幻覺 如何在2D平面(顯示器)上產生