三维人脸前期调研
多張人臉照片進行3D人臉重建
====一種開源方法VisualS+Meshlab======================
目前的主流是VisualSFM(找出各張照片中的特征點,進行兩兩匹配,根據匹配的結果,利用射影定理計算得到相機位置等場景信息,將場景信息與原始照片結合在一起得到照片中物體的三維點云)
+ CMVS-PMVS(創建稠密點云)
+ Meshlab(進行網格處理,利用三維點云創建三維模型)
VisualSFM官網:
http://ccwu.me/vsfm/
Meshlab官網:
http://www.meshlab.net/#description
多版本下載
https://sourceforge.net/projects/meshlab/files/meshlab/
源碼分析:
https://blog.csdn.net/jz_x/article/details/78899050
3D重建英文教程:
https://wedidstuff.heavyimage.com/index.php/2013/07/12/open-source-photogrammetry-workflow/
中文教程:
https://blog.csdn.net/moneyhoney123/article/details/78454837
https://blog.csdn.net/xujie126/article/details/83108669
====3D人臉重建資料=====================
3D人臉重建學學習筆記(對多種3D人臉重建方法進行了概述)
https://blog.csdn.net/u011681952/article/details/82623328
使用深度卷積神經網絡方法進行3D人臉重建(使用3DMM結合CNN。)
https://zhuanlan.zhihu.com/p/24316690
論文:Regressing Robust and Discriminative 3D Morphable Models With a Very Deep Neural Network
論文鏈接:https://talhassner.github.io/home/publication/2017_CVPR
源碼:https://github.com/anhttran/3dmm_cnn
該作者另一篇論文,提供詳細極端條件下的三維重建面,平面外旋轉和閉塞,不止適用于近正面、無障礙的視點。
論文:Extreme 3D Face Reconstruction
源碼:https://github.com/anhttran/extreme_3d_faces
LSFM(大規模人臉)介紹LSFM模型應用的論文介紹? 使用全卷積網絡還原“in-the-wild”人臉
https://36kr.com/p/5073179.html
論文:Face Normals “in-the-wild” using Fully Convolutional Networks (未找到源碼)
3DMM python寫的face3d(PRNET同作者)
(This project implements some basic functions related to 3D faces.You can use this to process mesh data, generate 3D faces from morphable model, reconstruct 3D face with a single image and key points as inputs, render faces with difference lightings(for more, please see examples))
github地址:https://github.com/YadiraF/face3d
face3d博客講解:
https://blog.csdn.net/likewind1993/article/details/81455882
face3d下有大量關于3d重建的相關論文:
https://github.com/YadiraF/face3d/blob/master/3D%20Face%20Papers.md#surveys--doctoral-thesis
MVSNet:多視點三維重建(Mult-view Stereo)
提出了一個端到端的深度神經網絡MVSNet來進行多視點三維重建。
為給定從不同視角拍攝的圖像以及其對應的相機幾何,通過稠密匹配的方式恢復出物體以及場景的三維結構。傳統的MVS算法(例如PMVS,COLMAP)基于handcrafted像素匹配算法具有相當高的重建準確度,但對于紋理稀疏、非漫反射的物體表面難以得到令人滿意的重建效果。
blog:https://blog.csdn.net/qq_38425638/article/details/84876481
論文鏈接:https://arxiv.org/abs/1804.02505
項目地址:https://github.com/YoYo000/MVSNet
MVS算法 從多視圖的密集重建
blog簡單的解析:https://blog.csdn.net/qq_28053189/article/details/74898110
https://blog.csdn.net/xuangenihao/article/details/78731377
MVS推薦書:Multiple View Geometry in Computer Vision
====開源========================================
3DMM三維人臉模型:
①? 不帶表情:BFM數據庫matlab開源。(可以改寫然后生成不同姿勢,不同光照模型的彩色圖)
②? 帶表情的3DMM模型:https://github.com/fengju514/Expression-Net
https://github.com/anhttran/3dmm_cnn
====3D人臉重建幾種重要模型===============================================================
1.初版3DMM,三維形變模型(3DMM)《A Morphable Model For The Synthesis Of 3D Faces》
2.帶表情3DMM,初版3DMM雖然解決了人臉變形模型的表達,但其在人臉表情表達上面明顯不足,在2014年時,FacewareHouse這篇論文提出并公開了一個人臉表情數據庫,使得3DMM有了更強的表現力。
FaceWarehouse: a 3D Facial Expression Database for Visual Computing
(VCG2014, Cao, C., Weng, Y., Zhou, S., Tong, Y., & Zhou, K., Zhejiang)
3.BFM模型,BFM模型中有對應的68個3D特征點X3d,如我們有單張人臉圖像,以及68個人臉特征點坐標X,根據這些信息便可求出α,β系數,將平均臉模型與圖像的臉部進行擬合,3D求解過程又轉化為求解滿足以下能量方程的系數。
A 3D Face Model for Pose and Illumination Invariant Face Recognition一種用于姿態和照明不變人臉識別的三維人臉模型
https://faces.dmi.unibas.ch/bfm/
?
4.LSFM大規模的人臉模型
這是一個3維形變模型(3DMM),從9663個獨特的臉部標志中自動地搭建。LSFM 是迄今為止被構建出來的最大規模的形變模型,包含了從一個巨大的人口變量中提取的統計信息。為了搭建出這樣一個模型,研究者創造了一個全新而且全自動且穩定的形變模型搭建管道,通過對目前最好的密集(dense)通信技術進行評估來獲得信息。
論文:《Large Scale 3D Morphable Models》
https://link.springer.com/article/10.1007/s11263-017-1009-7
要將所有人臉與平均人臉的偏差都存儲下來,3DMM 需要集成許多面部的信息。目前為止所采用的方法是掃描大量人臉,然后人工仔細標記所有的特征。也因此,目前最好的模型也只是基于幾百張人臉——大部分還都是白人,而且模型在模仿不同年齡和種族人臉方面的能力十分有限。
5.利用 LSFM 合成的 100,000 張人臉訓練了一個人工智能程序,將任意2D快照轉換為精確的 3D 人臉模型
論文:《Face Normals “in-the-wild” using Fully Convolutional Networks》
基于LSFM提出了一種數據驅動型的方法,解決如何從一張單獨的濃縮照片中預測整個一般平面,特別聚焦于人臉。論文創造了一種新的方法,探索將可用的人臉數據集用于數據庫建設的可行性。研究者特意設計了一個深度卷積神經網絡來評估人臉“in-the-wild”狀態下的正常表面。還訓練了一個全卷積的網絡,能夠精確地從多樣化的表情的圖片中還原正常表情
LSFM是有史以來最大規模的三維可變形面部模型(3dmm),它基于從大量性別、年齡和種族組合中獲得的大約10000種不同面部特征的數據集。
該模型是使用一個特別設計的全自動系統建立的,該系統精確地建立了三維面部掃描之間的密集對應關系,并且對人臉中顯示的大形狀變化具有魯棒性。LSFM不僅包括全球3DMM模型,還包括為特定年齡、性別或種族群體量身定制的模型。這是由于使用的數據集擁有極其豐富的人口統計信息而得以實現的。6.Nonlinear-3DMM
由于訓練數據的類型和數量,以及線性基礎,3DMM的表示能力是有限的。所以提出了Nonlinear-3DMM,更好地表達人臉信息。
論文:《On Learning 3D Face Morphable Model from In-the-wild Images》
Nonlinear-3DMM項目:
https://github.com/tranluan/Nonlinear_Face_3DMM
7. 端到端3D人臉重建方法,是近年新起的方法;它們繞開像3DMM的人臉模型,設計自己的3D人臉表示方法,采用CNN結構進行直接回歸,端到端地重建3D人臉,現下主要代表有VRNet和PRNet。
https://github.com/AaronJackson/vrn
https://github.com/YadiraF/PRNet
?
======================================================
123D Catch 受限
1.照片數目限制 iPhone最多40
2.照片被縮小。照片被縮小以限制其細節
3.有限的紋理貼圖大小:返回的紋理貼圖以給定的大小返回,無法控制大小
4.全黑盒:沒有用于指導三維重建或操作結果的控件
5.輕量級輸出設計:并不意味著是一個專業的解決方案,這意味著三維化小飾品,并為您提供三維打印的東西,而不是創建高REZ模型。
2013 VisualSFM代表了FOSS攝影測量技術的最新水平。
meshlab下泊松重建的參數:
1.Reconstruction Depth
[--depth <reconstruction depth>]
??? This integer is the maximum depth of the tree that will be used for surface reconstruction. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d. Note that since the reconstructor adapts the octree to the sampling density, the specified reconstruction depth is only an upper bound.
??? The default value for this parameter is 8.
[--深度<重建深度>]
此整數是用于曲面重建的樹的最大深度。在深度d處運行對應于在分辨率不大于2^d x 2^d x 2^d的體素網格上求解。請注意,由于重建器將八叉樹自適應于采樣密度,因此指定的重建深度僅為上限。
此參數的默認值為8。
2.Adaptive Octree Depth
[--minDepth <adaptive octree depth>]
??? This integer specifies the depth beyond depth the octree will be adapted. At coarser depths, the octree will be complete, containing all 2^d x 2^d x 2^d nodes.
??? The default value for this parameter is 5.
這個整數指定八叉樹將被調整的深度之外的深度。在較粗的深度,八叉樹將是完整的,包含所有2^d x 2^d x 2^d節點。
此參數的默認值為5。
3.Conjugate Gradients Depth
共軛梯度深度
4.scale factor
[--scale <scale factor>]
??? This floating point value specifies the ratio between the diameter of the cube used for reconstruction and the diameter of the samples' bounding cube.
??? The default value is 1.1.
[--比例<比例因子>]
該浮點值指定用于重建的立方體直徑與樣本邊界立方體直徑之間的比率。
默認值為1.1。
5.Minimun Number of Samples
[--samplesPerNode <minimum number of samples>]
??? This floating point value specifies the minimum number of sample points that should fall within an octree node as the octree construction is adapted to sampling density. For noise-free samples, small values in the range [1.0 - 5.0] can be used. For more noisy samples, larger values in the range [15.0 - 20.0] may be needed to provide a smoother, noise-reduced, reconstruction.
??? The default value is 1.0.
[--samplespernode<最小樣本數>]
該浮點值指定了當八叉樹結構適合于采樣密度時,八叉樹節點中應包含的最小采樣點數。對于無噪聲樣品,可以使用范圍[1.0-5.0]內的小值。對于噪聲更大的樣本,可能需要更大范圍的值[15.0-20.0]來提供更平滑、降噪、重建。
默認值為1.0。
6.Interpolation Weight
[--pointWeight <interpolation weight>]
??? This floating point value specifies the importants that interpolation of the point samples is given in the formulation of the screened Poisson equation.
??? The results of the original (unscreened) Poisson Reconstruction can be obtained by setting this value to 0.
??? The default value for this parameter is 4.
[--點權重<插值權重>]
該浮點值規定了點樣本插值在篩選泊松方程公式中的重要性。
通過將此值設置為0,可以獲得原始(未屏蔽)泊松重建的結果。
此參數的默認值為4。
7.Gauss-Seidel Relaxations
[--solverDivide <solver subdivision depth>]
??? This integer argument specifies the depth at which a block Gauss-Seidel solver is used to solve the Laplacian equation. Using this parameter helps reduce the memory overhead at the cost of a small increase in reconstruction time. (In practice, we have found that for reconstructions of depth 9 or higher a subdivide depth of 7 or 8 can greatly reduce the memory usage.)
??? The default value is 8.
此整數參數指定塊高斯-賽德爾解算器用于求解拉普拉斯方程的深度。使用這個參數有助于以稍微增加重建時間為代價減少內存開銷。(在實踐中,我們發現,對于深度9或更高的重構,細分深度7或8可以大大減少內存使用。)
默認值為8。
8.Confidence Flag
[--confidence]
??? Enabling this flag tells the reconstructor to use the size of the normals as confidence information. When the flag is not enabled, all normals are normalized to have unit-length prior to reconstruction.
啟用此標志將告訴重構器使用法線的大小作為置信度信息。如果未啟用該標志,則在重建之前,所有法線都將標準化為單位長度。
轉載于:https://www.cnblogs.com/2333333he-tui/p/10730034.html
總結
- 上一篇: boundingBox getC
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习