实习报告1——人脸三维重建方法
人脸三维重建的主要问题
1.细节重建
2.纹理重建
3.纹理和形状的联合重建
目前由于单张图片缺少有效信息,很难通过单张图片重建图片的细节信息,需要配合先验算法或者神经网络对图片进行进一步处理。
且,在隐私保护意思日益增强的今天,RGBD图片数据的缺少也对机器学习的训练产生的阻碍。
通过论文学习,发现了一个模型,DF2NET,能够使用单张图片对人脸数据进行重建。
对细节的重建
在对细节的重建中,现有方案最常用的是3DMM模型,但是3DMM模型需要采用几百维的数据来表示几万个顶点的数据,会导致数据在重建过程中很难对细节进行无损的处理,在2D到3D的转换中会失真,并且需要很大的计算开销,在初始化的时候需要进行数据的对齐,也是一个耗时的过程。
但是3DMM能够根据任意一张二维图像来预测一个三维的图形,这是其优势,只是单纯依靠3DMM无法处理人脸的细节,需要配合其他模型使用。
还有SfS模型,通过光线的变换让图像的明暗细节产生变换,从而分析图像的形状,但是该模型会导致图像在明暗变换时只能判断形状,而很难去判断图像的凹凸性质,导致重建时需要使用其他技术进行还原,例如获取图像深度并在UV空间进行还原,如下图例子所示,SfS就没有很好的办法来分析凹凸性。
对纹理的重建
在对纹理的重建中,主要使用了
- 基于模型的方法
- 基于图像的方法
基于模型的方法效率比较低,3DMM模型就是使用的基于模型的方法,在他使用单张图片像3维图像进行变换时,受限于线性子空间,会产生纹理细节的丢失,而通过计算学习算法恢复的纹理会使其失去真实性,而且需要考虑形状、反射率、图片的照明参数,需要对参数进行进一步的设置。
基于图像的方式能够捕获任意图像的纹理,无需考虑图像的形状、反射率图片和照明参数,但是可能会受限于图像的清晰度导致纹理没有很好的办法进行复原。
基于图像的方法的复原步骤:
- 获得人脸的多个角度的图像和特征点
- 使用曲线标记人脸特征
- 产生三维模版人脸
- 通过给定的特征点在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目录下获得生成的图片。
目前的分析得到的是demo程序仅支持对人脸进行识别和裁剪。
但是仔细看输出图像,感觉输出图的分辨率被进行了压缩,损失了一部分像素,得到的图像效果不是很好,猜测三维重建的人脸信息也不会很理想。
论文中给出的方案是针对图像的深度图进行还原,并经过D-Net和Fr-Net进行进一步细致化的处理。
但是测试效果的问题可能是图像的分辨率较低导致的,可以考虑配合超分辨率方案针对人脸进行细节的恢复。
接下来测试了Facial_Details_Synthesis-master项目。
这是从单一输入图像合成面部细节的代码库。
github链接:https://github.com/apchenstu/Facial_Details_Synthesis/tree/def9bfe044790d771d15dc4a62bb47b78d7d6153
这里是用的模型是BFM模型,模型的链接:https://faces.dmi.unibas.ch/bfm/bfm2017.html
实习报告1——人脸三维重建方法相关推荐
- grads 相关系数_气象统计方法实习报告材料
<气象统计方法实习报告材料>由会员分享,可在线阅读,更多相关<气象统计方法实习报告材料(56页珍藏版)>请在人人文库网上搜索. 1.实用标准文档目录实习一求500hPa高度场气 ...
- c语言回溯实验报告,实验报告: 人脸识别方法回溯与实验分析 【OpenCV测试方法源码】...
实验报告: 人脸识别方法回顾与实验分析 [OpenCV测试方法源码] 趁着还未工作,先把过去做的东西整理下出来~ (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看第5章 ...
- 实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】
趁着还未工作,先把过去做的东西整理下出来~ Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含 ...
- 计算机应用办公软件实训报告,办公软件实习报告
满意答案 kimrc 2013.03.13 采纳率:42% 等级:12 已帮助:7300人 计算机应用基础技能实习报告 一.实习的目的与任务: 通过这次实习使我们每个学生在平时学习时的教学实验的 ...
- c语言程序综合实习学生成绩,C语言程序设计综合实习报告
课题一:用指针优化学生成绩排名 一.目的 1.熟悉变量的指针和指向变量的的指针变量的概念和使用 2.熟悉数组的指针和指向数组的的指针变量的概念和使用 3. 掌握冒泡法或选择法排序的算法 4. 掌握函数 ...
- python设计报告的前言怎么写_2017实习报告前言怎么写
2017 实习报告前言怎么写 2017 实习报告前言怎么写[一] 古人有云:"纸上得来终觉浅,绝知此事要躬行" . 自从走进了大学,距 离工作就不远了,学校为了拓展我们学生自身的知 ...
- 极客c语言课程设计,c语言课程设计之实习报告共5天完整.doc
c语言课程设计之实习报告共5天完整 <C语言程序设计> 短学期实习报告 系名:计算机科学与技术系 专业:软件工程 年级:2015级 姓名: <C语言程序设计>短学期实习成绩评定 ...
- 计算机办公应用总结,2017年办公自动化实习报告总结
2017年办公自动化实习报告总结 实习报告是学生对实习期间的经验的总结,以下百分网小编整理的办公自动化实习报告总结,希望对大家写实习报告有所启发,更多信息请关注应届毕业生网! 在老师的指导下,我们进行 ...
- 学号程序编辑 c语言,C语言程序设计实习报告 行编辑器 学生管理系统
<C语言程序设计实习报告 行编辑器 学生管理系统>由会员分享,可在线阅读,更多相关<C语言程序设计实习报告 行编辑器 学生管理系统(47页珍藏版)>请在人人文库网上搜索. 1. ...
最新文章
- 普华永道2030汽车产业报告 私家车真正Out了!
- matlab多维数组、结构体数组
- labview嵌入c代码_LabVIEW是什么?与其他组态软件有何分别?
- java smtp收信_求一个简单java编写的邮件收发程序,邮件发送程序为smtpsend,邮件接收程序为popreceive。急需,感谢。...
- linux进程控制-exit()
- ROG幻14 AMD R7-4800H VM16安装macOS Catalina 10.15教程
- express 4.x 获取post提交的数据
- c++11 function
- Mac下CUDA开启及Tensorflow-gpu 1.4 安装
- Insomni'hack teaser 2019 - Misc - echoechoechoecho
- 条码标签制作软件导入数据库(TXT)批量打印条码
- linux最好的mp4软件,【良心推荐】5款好用的MP4视频编辑器
- Bandicam 录屏设置
- 如何生成你自己的icon 图标库
- python实现pdf合并
- win10桌面图标全部变成白色的怎么办
- Ubuntu 20.04安装GTX 1060显卡驱动+cuda 11.4 + cudnn 8,nvidia-smi 报错:NVIDIA-SMI has failed
- python创建类的两个对象_Python为一个类创建多个对象
- 正态分布(normal distribution)与偏态分布(skewed distribution)
- 无胁科技-TVD每日漏洞情报-2022-11-8