人脸三维重建的主要问题

1.细节重建
2.纹理重建
3.纹理和形状的联合重建

目前由于单张图片缺少有效信息,很难通过单张图片重建图片的细节信息,需要配合先验算法或者神经网络对图片进行进一步处理。
且,在隐私保护意思日益增强的今天,RGBD图片数据的缺少也对机器学习的训练产生的阻碍。

通过论文学习,发现了一个模型,DF2NET,能够使用单张图片对人脸数据进行重建。

对细节的重建

在对细节的重建中,现有方案最常用的是3DMM模型,但是3DMM模型需要采用几百维的数据来表示几万个顶点的数据,会导致数据在重建过程中很难对细节进行无损的处理,在2D到3D的转换中会失真,并且需要很大的计算开销,在初始化的时候需要进行数据的对齐,也是一个耗时的过程。
但是3DMM能够根据任意一张二维图像来预测一个三维的图形,这是其优势,只是单纯依靠3DMM无法处理人脸的细节,需要配合其他模型使用。

还有SfS模型,通过光线的变换让图像的明暗细节产生变换,从而分析图像的形状,但是该模型会导致图像在明暗变换时只能判断形状,而很难去判断图像的凹凸性质,导致重建时需要使用其他技术进行还原,例如获取图像深度并在UV空间进行还原,如下图例子所示,SfS就没有很好的办法来分析凹凸性。

对纹理的重建

在对纹理的重建中,主要使用了

  • 基于模型的方法
  • 基于图像的方法

基于模型的方法效率比较低,3DMM模型就是使用的基于模型的方法,在他使用单张图片像3维图像进行变换时,受限于线性子空间,会产生纹理细节的丢失,而通过计算学习算法恢复的纹理会使其失去真实性,而且需要考虑形状、反射率、图片的照明参数,需要对参数进行进一步的设置。

基于图像的方式能够捕获任意图像的纹理,无需考虑图像的形状、反射率图片和照明参数,但是可能会受限于图像的清晰度导致纹理没有很好的办法进行复原。

基于图像的方法的复原步骤:

  1. 获得人脸的多个角度的图像和特征点
  2. 使用曲线标记人脸特征
  3. 产生三维模版人脸
  4. 通过给定的特征点在UV空间对人脸进行拟合


上图中,a给出了图像的多个角度和特征点,B标记了人脸的特征,C给出了3维的人脸模型,D给出了在特征点数量为13的时候的三维人脸重建的模型拟合情况,E给出了特征点数量在119时的三维人脸重建的模型的拟合情况。

基于纹理形状的人脸重建

这里首先介绍DF2NET方法,该方法模型图如下:

他使用了D-Net、F-Net、Fr-Net三个网络进行叠加对单个图像进行处理。

1.D-Net:通过2D图片获得深度图
2.F-Net:输入2D图像和深度图,输出精炼过的深度图(恢复高频细节)
3.Fr-Net:从不同清晰度的图像中恢复细节。(给阴影加权重)

github链接为:https://github.com/xiaoxingzeng/DF2Net

由于macos 不支持cuda,因此需要对torch模块中所有的cuda函数修改为cpu进行处理,当然也可以尝试使用mac os中支持的mps进行处理。

通过运行demo程序,并对代码中的img_list进行修改(代码中的这个是错的,文件不全,需要进行修改),能够得到一个tensor格式的数据输出。
并在img目录下获得生成的图片。

但是目前由于技术能力有限,没有得到3维的生成图像。

这里对图像进行了测试:
输入图像:

输出图像:

图像裁剪:

目前的分析得到的是demo程序仅支持对人脸进行识别和裁剪。
但是仔细看输出图像,感觉输出图的分辨率被进行了压缩,损失了一部分像素,得到的图像效果不是很好,猜测三维重建的人脸信息也不会很理想。

论文中给出的方案是针对图像的深度图进行还原,并经过D-Net和Fr-Net进行进一步细致化的处理。

但是测试效果的问题可能是图像的分辨率较低导致的,可以考虑配合超分辨率方案针对人脸进行细节的恢复。

接下来测试了Facial_Details_Synthesis-master项目。
这是从单一输入图像合成面部细节的代码库。

github链接:https://github.com/apchenstu/Facial_Details_Synthesis/tree/def9bfe044790d771d15dc4a62bb47b78d7d6153

这个存储库由 5 个独立的部分组成:DFDN、emotionNet、landmarkDetector、proxyEstimator和faceRender。

该方法采用了对抗网络的方式来恢复面部的细节。
该方法考虑到了法线、光照、阴影、反照率、情绪、表情、姿势、面部纹理,并对人脸的面部表情进行了先验处理,通过表情库判断用户情绪来重建人脸细节。
如果在重建过程中出现了损失,则通过训练的方法来恢复面部细节。

这里是用的模型是BFM模型,模型的链接:https://faces.dmi.unibas.ch/bfm/bfm2017.html

目前该方法的测试在eos-py模块的安装中出现了一些问题,暂时没有解决,初步怀疑是Cmake和visual stdio没有进行绑定,导致eos-py 0.16.1版本的模块无法进行安装。正在尝试对代码进行测试和修复。

实习报告1——人脸三维重建方法相关推荐

  1. grads 相关系数_气象统计方法实习报告材料

    <气象统计方法实习报告材料>由会员分享,可在线阅读,更多相关<气象统计方法实习报告材料(56页珍藏版)>请在人人文库网上搜索. 1.实用标准文档目录实习一求500hPa高度场气 ...

  2. c语言回溯实验报告,实验报告: 人脸识别方法回溯与实验分析 【OpenCV测试方法源码】...

    实验报告: 人脸识别方法回顾与实验分析 [OpenCV测试方法源码] 趁着还未工作,先把过去做的东西整理下出来~ (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看第5章 ...

  3. 实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

    趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含 ...

  4. 计算机应用办公软件实训报告,办公软件实习报告

    满意答案 kimrc 2013.03.13 采纳率:42%    等级:12 已帮助:7300人 计算机应用基础技能实习报告 一.实习的目的与任务: 通过这次实习使我们每个学生在平时学习时的教学实验的 ...

  5. c语言程序综合实习学生成绩,C语言程序设计综合实习报告

    课题一:用指针优化学生成绩排名 一.目的 1.熟悉变量的指针和指向变量的的指针变量的概念和使用 2.熟悉数组的指针和指向数组的的指针变量的概念和使用 3. 掌握冒泡法或选择法排序的算法 4. 掌握函数 ...

  6. python设计报告的前言怎么写_2017实习报告前言怎么写

    2017 实习报告前言怎么写 2017 实习报告前言怎么写[一] 古人有云:"纸上得来终觉浅,绝知此事要躬行" . 自从走进了大学,距 离工作就不远了,学校为了拓展我们学生自身的知 ...

  7. 极客c语言课程设计,c语言课程设计之实习报告共5天完整.doc

    c语言课程设计之实习报告共5天完整 <C语言程序设计> 短学期实习报告 系名:计算机科学与技术系 专业:软件工程 年级:2015级 姓名: <C语言程序设计>短学期实习成绩评定 ...

  8. 计算机办公应用总结,2017年办公自动化实习报告总结

    2017年办公自动化实习报告总结 实习报告是学生对实习期间的经验的总结,以下百分网小编整理的办公自动化实习报告总结,希望对大家写实习报告有所启发,更多信息请关注应届毕业生网! 在老师的指导下,我们进行 ...

  9. 学号程序编辑 c语言,C语言程序设计实习报告 行编辑器 学生管理系统

    <C语言程序设计实习报告 行编辑器 学生管理系统>由会员分享,可在线阅读,更多相关<C语言程序设计实习报告 行编辑器 学生管理系统(47页珍藏版)>请在人人文库网上搜索. 1. ...

最新文章

  1. 普华永道2030汽车产业报告 私家车真正Out了!
  2. matlab多维数组、结构体数组
  3. labview嵌入c代码_LabVIEW是什么?与其他组态软件有何分别?
  4. java smtp收信_求一个简单java编写的邮件收发程序,邮件发送程序为smtpsend,邮件接收程序为popreceive。急需,感谢。...
  5. linux进程控制-exit()
  6. ROG幻14 AMD R7-4800H VM16安装macOS Catalina 10.15教程
  7. express 4.x 获取post提交的数据
  8. c++11 function
  9. Mac下CUDA开启及Tensorflow-gpu 1.4 安装
  10. Insomni'hack teaser 2019 - Misc - echoechoechoecho
  11. 条码标签制作软件导入数据库(TXT)批量打印条码
  12. linux最好的mp4软件,【良心推荐】5款好用的MP4视频编辑器
  13. Bandicam 录屏设置
  14. 如何生成你自己的icon 图标库
  15. python实现pdf合并
  16. win10桌面图标全部变成白色的怎么办
  17. Ubuntu 20.04安装GTX 1060显卡驱动+cuda 11.4 + cudnn 8,nvidia-smi 报错:NVIDIA-SMI has failed
  18. python创建类的两个对象_Python为一个类创建多个对象
  19. 正态分布(normal distribution)与偏态分布(skewed distribution)
  20. 无胁科技-TVD每日漏洞情报-2022-11-8

热门文章

  1. 【信号处理】python按原理实现BPSK、QPSK、QAM信号调制
  2. SpringBoot实现i18n国际化配置(超详细之跟着走就会系列)
  3. 艾伟:Memcached深度分析
  4. Python3.6获取QQ空间全部好友列表
  5. PYGAME初学笔记(pygame的导入)
  6. 阔别母校,江湖路远。
  7. 高手的原则性、求道之心,和人际关系
  8. 全球及中国AR智能隐形眼镜市场发展形势分析及投资策略预测报告2022-2028年
  9. 简单的禁止应用被双开的方法
  10. 一加手机·关闭应用双开储存空间