预备知识。

人脸的参数化模型

V(α)=As平均人脸+∑iαi形状系数Es,i形状主元V(α)=As⏟平均人脸+∑iαi⏟形状系数Es,i⏟形状主元

V(\alpha)=\underbrace{A_{s}}_{\text{平均人脸}} + \sum_{i} \underbrace{\alpha_{i}}_{\text{形状系数}} \underbrace{E_{s,i}}_{\text{形状主元}}

对数据库中的人脸,提取特征点,把每一张人脸的特征点转化成一个高维向量,计算所有向量的均值。用人脸向量减去均值向量,得到向量进行主成分分析,取特征值模长最大的几个方向作为形状主元。
同样的道理,利用PCA(主成分分析)对于同一个人脸的不同表情或者纹理也可以构建类似的模型。
人脸表情模型
表现人脸表情:混合模型

V(δ)=As中性表情+∑jδj表情系数Ee,jBlendshapesV(δ)=As⏟中性表情+∑jδj⏟表情系数Ee,j⏟Blendshapes

V(\delta)=\underbrace{A_{s}}_{\text{中性表情}}+\sum_{j} \underbrace{\delta_{j}}_{\text{表情系数}} \underbrace{E_{e,j}}_{Blendshapes}

人脸纹理模型

R(β)=Ar+∑iβiEr,iR(β)=Ar+∑iβiEr,i

R(\beta) = A_{r} + \sum_{i} \beta_{i} E_{r,i}

那么我们要表现不同人的不同表情和纹理,怎么办呢?一个简答的做法就是把他们都加起来:

V(α,δ)=As+Esα+EeδV(α,δ)=As+Esα+Eeδ

V(\alpha,\delta)= A_{s} +E_{s} \alpha +E_{e} \delta

R(β)=Ar+ErβR(β)=Ar+Erβ

R(\beta)=A_{r}+E_{r} \beta
这里
ET∙E∙=diag(⋯,[σ∙k]2,⋯)E∙TE∙=diag(⋯,[σk∙]2,⋯)E_{\bullet}^{T}E_{\bullet} = diag (\cdots,[\sigma^{\bullet}_{k}]^{2},\cdots)

三维的旋转平移

Rx(θ)=⎛⎝⎜1000cos(θ)sin(θ)0−sin(θ)cos(θ)⎞⎠⎟Ry(θ)=⎛⎝⎜cos(θ)0−sin(θ)010sin(θ)0cos(θ)⎞⎠⎟Rz(θ)=⎛⎝⎜cos(θ)sin(θ)0−sin(θ)cos(θ)0001⎞⎠⎟(4)(4)Rx(θ)=(1000cos⁡(θ)−sin⁡(θ)0sin⁡(θ)cos⁡(θ))Ry(θ)=(cos⁡(θ)0sin⁡(θ)010−sin⁡(θ)0cos⁡(θ))Rz(θ)=(cos⁡(θ)−sin⁡(θ)0sin⁡(θ)cos⁡(θ)0001)

\begin{equation} R_{x}(\theta)\!=\! \left( \begin{array}{ccc} 1\!&\!0\!&\!0\\ 0\!&\!\cos(\theta)\!&\!-\sin(\theta)\\ 0\!&\!\sin(\theta)\!&\!\cos(\theta)\\ \end{array} \right)\\ R_{y}(\theta)\!=\! \left( \begin{array}{ccc} \cos(\theta)\!&\!0\!&\!\sin(\theta)\\ 0\!&\!1\!&\!0\\ -\sin(\theta)\!&\!0\!&\!\cos(\theta)\\ \end{array} \right)\\ R_{z}(\theta)\!=\! \left( \begin{array}{ccc} \cos(\theta)\!&\!-\sin(\theta)\!&\!0\\ \sin(\theta)\!&\!\cos(\theta)\!&\!0\\ 0\!&\!0\!&\!1\\ \end{array} \right) \end{equation}
整体旋转矩阵:

T=Rx(θx)Ry(θy)Rz(θz)T=Rx(θx)Ry(θy)Rz(θz)

T=R_{x}(\theta_{x})R_{y}(\theta_{y})R_{z}(\theta_{z})
投影
假设投影变换将 (x,y,z)∈R3(x,y,z)∈R3(x,y,z)\in \mathbb{R}^{3}变换为 (u,v)∈R2(u,v)∈R2(u,v)\in \mathbb{R}^{2}
平行投影: u=x,v=yu=x,v=yu=x,v=y
透视投影:

u=fxxz+cx,v=fyyz+cyu=fxxz+cx,v=fyyz+cy

u=f_{x} \frac{x}{z} + c_{x} , v=f_{y} \frac{y}{z} + c_{y}

球谐函数
在2001年,Basri和Jacobs证明了曲面上的像素值可以使用9维的球谐基函数进行线性表示,这种光照模型只需要估计球谐基函数前面的权值,不需要光源的方向,大大简化了光照的估计。点p处的像素值等于p处的反射率乘以球谐基函数的线性组合,用数学公式表示一下就是:

C(ri,ni,γ)=ri⋅∑b=1B2γbHb(ni)C(ri,ni,γ)=ri⋅∑b=1B2γbHb(ni)

C(r_i,n_i,\gamma)=r_i \cdot \sum^{B^{2}}_{b=1} \gamma _b H_b(n_i)

第一篇文章

MoFA:Model-based Deep Convolutional Face Autoencoder for Unsupervised Monocular Reconstruction
这篇文章将一张人脸照片通过深度学习的方法学习到各个参数从而重建出三维人脸模型。

算法框架

参考文献

[1] Tewari A, Zollhöfer M, Kim H, et al. Mofa: Model-based deep convolutional face autoencoder for unsupervised monocular reconstruction[C]//The IEEE International Conference on Computer Vision (ICCV). 2017, 2(3): 5.
[2] Tewari A, Zollhöfer M, Garrido P, et al. Self-supervised multi-level face model learning for monocular reconstruction at over 250 hz[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 2549-2559.

致谢

7月16日中国科学技术大学某位周同学的论文汇报

由人脸图片重建出三维人脸网格相关推荐

  1. 人脸论文解读系列——三维人脸重建(一)

    基于区域最佳匹配融合的三维人脸重建 <3D Face Reconstruction with Region Based Best Fit Blending Using Mobile Phone ...

  2. python 3d重建_三维人脸重建(一)——Python读取obj文件

    目录 一.obj格式模型介绍 文件说明很有必要,有助于数据提取时的理解.这一部分借鉴OBJ格式模型详细介绍 obj格式有4种数据,分别以一下字母开头: 1. v顶点 2. vt纹理坐标 3. vn顶点 ...

  3. 图形处理(十三)基于可变形模板的三维人脸重建-学习笔记

    基于可变形模板的三维人脸重建-学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50331423 作者:hjimce 一.数据库处理: 我们通 ...

  4. 微软三维人脸重建论文总结——《Accurate 3D Face Reconstruction with Weakly-Supervised Learning》

    原作:https://arxiv.org/abs/1903.08527 研究机构:微软研究院 写在前面 想象一下,通过二维的人脸图片,生成高度还原的三维人脸模型.真是异想天开,可是人工智能要做的不就是 ...

  5. 腾讯优图|人脸3D重建与渲染技术研究与应用

    编辑丨腾讯优图AI开放平台 6月5日-6日,2021全球人工智能技术大会(GAITC 2021)在杭州成功举办.本次大会,旨在汇聚中国科创智慧与活力的同时,与世界建立互通共享的沟通桥梁,在交流中探索共 ...

  6. 三维人脸模型的纹理贴图

    今天实现了一个从kinect得到的三维人脸模型赋上彩色纹理的工作.实现该功能的思路如下: 首先我们拥有两个资源:1,去噪后的三维人脸模型 2, 同样是从kinect得到的人脸彩色图片 现在要做的是为三 ...

  7. 基于CEM算法的三维人脸模型贴图matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 采用三维人脸贴图算法conformal energy minimization,将二维图片贴 ...

  8. ICON: 从单张图片重建穿衣服人体模型

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨人脸人体重建 来源丨人脸人体重建 马普所最新文章,穿衣服人体重建新方法 ICON (Implic ...

  9. M91A人脸识别布控球机人脸AI视频分析功能

    人脸识别布控球功能简介 AI布控球基于前端边缘AI计算及后端云平台计算,AI布控球集成人脸识别.安全帽识别等的AI视频图像分析算法,通过计算机视觉技术对图像.人脸.场景.视频等进行深度学习,识别并标示 ...

最新文章

  1. 斯诺登称美向日提供监控系统 日本人或遭大规模监控
  2. javascript eval函数解析json数据时为什加上圆括号eval((+data+))
  3. eclipse使用tomcat进行部署时编译代码不一致的处理
  4. 台湾一校长震动所有中国人的演讲
  5. Springboot的异步、定时、邮件任务
  6. windows下c 用mysql数据库_Windows环境下C/C++访问PostgreSQL数据库
  7. python源码中的学习笔记_第6章_元组
  8. bzoj3207花神的嘲讽计划Ⅰ
  9. go导出mysql中的excel表,MySQL导出数据,并转存到Excel表格中
  10. php格式转换rar,如何在PHP中创建压缩的RAR文件?
  11. 常用公共数据集----数据获取
  12. html打印预览空白,打印预览空白,网页打印空白原因及解决办法汇总
  13. Python网络数据采集的方法
  14. 2022-华为-大数据研发工程师-秋招面经
  15. 转载:SyncToy安装使用详解
  16. 【Linux】centos 7中,开机不执行rc.lcoal中的命令
  17. 计算机网络相关论文目录怎么弄,如何给你的标书、论文编页码和目录-论文页码设置...
  18. 图论:SPFA 算法详解( 算法竞赛入门到进阶) HDU 2544 链式前向星 【提供ACM模板+图解,不会都难!】
  19. Win32汇编(SMU—子程序)
  20. 社交/SNS社交网络服务-ISP

热门文章

  1. 我目前所见过的最难的IQ测试题
  2. 一张好的图胜过千言万语!数据可视化都经历了怎样的发展历程
  3. Python-scrapy爬取起点榜单信息
  4. 排序算法之归并排序和外部排序
  5. 在Qt中使用ActiveX控件
  6. channels部署
  7. Python基础知识(4)
  8. 自媒体平台大打出手 战火何时休?
  9. 济南计算机专业比较好的中专学校,济南公立中专学校排名前十
  10. 如何入门多视角3D目标识别?超详细最新综述来袭!