三维人脸前期调研


多张人脸照片进行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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 报错:was cached in the local repository, resolution will not be reattempted until the upda

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Could not resolve dependencies for project com.foreveross:gaei-syncpm:jar:0.0.1-SNAPSHOT: Failure to find com.oracle.jdbc:ojd…

6000个边缘Kubernetes节点驱动城市80万次智能停车,如何成为可能?

城市的街道因为汽车数量的增长越来越繁忙&#xff0c;对于驾车一族而言&#xff0c;在热门区域寻找停车场更是无比头痛的事情。然而与此同时&#xff0c;其实也许很多办公楼、住宅楼、酒店和公共车库中仍有许多付费停车的资源未被充分利用。 ParkBee就是这样一家为城市提供智能…

英语学习之道小谈

想学好英语&#xff0c;首先要培养对英语的兴趣。兴趣是最好的老师&#xff0c;是学习英语的巨大动力&#xff0c;有了兴趣&#xff0c;学习就会事半功倍。我们都有这样的经验&#xff1a;喜欢的事&#xff0c;就容易坚持下去&#xff1b;不喜欢的事&#xff0c;是很难坚持下去…

2020-4-4

题目一 post方式get方式提交表单的主要区别? post一般用于传递较大的数据&#xff0c;在数据传递之前会有打包操作&#xff0c;所以可能会造成数据传递数据相对较慢的情况&#xff0c;不过传输的数据都能够被正确的解析&#xff0c;不会出现类似于中文乱码的状况。通过url链接…

python 进程与线程(理论部分)

一、理论部分 一 什么是进程 进程&#xff1a;正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 举例&#xff08;单核多道&#xff0c;实现多个进程的并发执行&#xff09;&#xff1a; egon在一个时间段内有很多任务要做&#xff1a;python备课的任务&#xff0c;…

Maven : 将 Jar 安装到本地仓库和 Jar 上传到私服

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Jar的maven配置 <dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId&g…

Flink 1.7.2 dataset transformation 示例

Flink 1.7.2 dataset transformation 示例 源码 https://github.com/opensourceteams/flink-maven-scala概述 Flink transformation示例map,flatMap,filter,reduce,groupBy,reduceGroup,combineGroup,Aggregate(sum,max,min)distinct,join,join funtion,leftOuterJoin,rightOut…

2020-4-5

题目一&#xff1a; <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onloadfunction(){let txtdocument.getElementById("txt");let stdocument.getElementById("st");let formdocumen…

肾脏的保养

饮食方面保养肾脏&#xff1a; 1、适量饮水不憋尿&#xff0c;每天需喝1500&#xff5e;2000ml的水&#xff0c;保持每天的尿量在1500ml左右。 2、饮食不要重口味&#xff0c;少吃不健康的腌制品或其他加工的食品。 不可纵欲&#xff1a; 纵欲会令肾脏受损害&#xff0c;…

sql 中 between 的边界问题 ---- between 边界:闭区间,not between 边界:开区间

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 BETWEEN 用以查询确定范围的值&#xff0c;这些值可以是数字&#xff0c;文本或日期 。BETWEEN 运算符是闭区间的&#xff1a;包括开始…

取代ZooKeeper!高并发下的分布式一致性开源组件StateSynchronizer

StateSynchronizer是开源分布式流存储平台Pravega的核心组件。StateSynchronizer组件以stream为基础&#xff0c;对外提供一致性状态共享服务。StateSynchronizer允许一组进程同时读写同一共享状态而不必担心一致性问题。本文将从共享状态和一致性的角度出发&#xff0c;详细描…

[51nod1773]A国的贸易

题目链接&#xff1a; 51nod1773 首先可以很简单的写出每一天的DP转移式&#xff1a; \(f[i][x]\sum f[i-1][x\ xor\ k](k0\ or\ k2^j,0\le j<n)\) 其中\(f[i][x]\)表示第\(i\)天\(x\)国货物数量\((0\le x<2^n)\)。 那么因为\(k\)有固定的取值&#xff0c;设数组\(A\)表示…

Linux基础学习导图

网上教程太多啦&#xff0c;先水一波导图&#xff0c;笔记日后慢慢上传~ 一款常用的软件很简单易用&#xff0c;推荐大家下载xmind vim学习相关的思维导图&#xff1a; 可以通过ubuntu自带的vim书学习&#xff08;终端输入vimtutor&#xff09;

一个学中医女生的保养身体法

首先是关于皮肤的外部保养法。1.关于头发 头发油是因为肝火太旺了&#xff0c;身体里内脏不能消化油脂&#xff0c;所以就把它排到脸上和头上了,办法是&#xff1a;每天晚上用滚烫的热水泡脚泡上半个小时&#xff0c;慢慢就会好了。注&#xff1a;水不会一直热&#xff0c;所以…

实现 SSH 无密码登录 、 ssh 常用命令

OpenSSH是互联网技术用户所依赖的SSH连接工具的免费版本。 telnet&#xff0c;rlogin 和 ftp 用户可能没有意识到他们的密码是通过互联网传输的&#xff0c;并且是未加密的。 但是 OpenSSH 加密所有流量&#xff08;包括密码&#xff09;以有效消除窃听&#xff0c;连接劫持和其…

团队项目冲刺第一天

今天&#xff0c;开了第一天的团队会议&#xff0c;我们把团队任务分配了一下&#xff0c;今天的任务是学习了一下Android开发的基础知识&#xff0c;看了哔哩哔哩上面的教学视频&#xff0c;对于一些转换页面&#xff0c;按钮&#xff0c;文本的配置有所了解&#xff0c;明天开…

简单的C语言五子棋(两种模式:移动光标输入坐标和移动光标按键)

五子棋&#xff1a; 需要的数据&#xff1a; 1、定义棋盘数组 2、定义变量用于记录棋子位置 3、定义角色变量 业务逻辑&#xff1a; 是否需要对数据进行初始化 for(;; ) { 1、清理屏幕&#xff0c;显示棋盘 2、落子 坐标要合法&#xff0c;原位置不能有棋子 3、检查是否形成五子…

nodejs-- vuex中mapActions

mapActions() 返回的是一个对象, 用了 ... 扩展符后&#xff0c;才可以放进一个对象里&#xff0c;和其他组件内定义的 method 在同一个 methods 对象。 { methods: mapActions() // 如果没有其它组件内的定义的方法,可以这样写}{ methods: { ...mapActions()&#xff0c;// 如…

怎样让手中的钱成为生财工具

大多数人之所以跟钱之间总有不可逾越的鸿沟&#xff0c;是因为他们不知道钱的活动能力。 钱&#xff0c;跟人一样是有生命的。每一块钱就是你的一个职员&#xff0c;你的目标是让你的职员勤奋工作&#xff0c;经过时间的沉淀&#xff0c;人员会日益壮大&#xff0c;工作效率会…

Android 开发知识集合目录

深入理解java的形参和实参&#xff1a; www.cnblogs.com/xuxinstyle/… sharepreference 与 数据库 区别&#xff1a; Android 各版特点&#xff1a; Android发展史&#xff08;Android各版本特性-知识篇&#xff09; blog.csdn.net/u012964796/…