CNN在三维人脸重建中的应用

前言

随着深度学习的发展,越来越多的CNN结构被提出,使得图像特征的提取变得越发的简单有效。
在这个基础上,与图像相关的“基于图像的人脸重建”也有了长足的进步与发展。但是由于3维模型的数据量过大,如何合理、有效的使用CNN进行人脸重建也存在一个问题。
因此,本文对在近年来相关CNN在三维人脸重建中的应用的文章思路进行总结。
总结的过程中,会把重点放在思路、数据集、网络结构以及相关的loss函数上,因为这几点是使用深度学习来解决一个问题最重要的部分。

总览

预计先总结这几篇文章,其他的有空再更
在这里插入图片描述

方法类别

使用CNN估计3DMM系数

使用3DMM进行人脸建模的原理和方法在之前这篇博客(https://blog.csdn.net/likewind1993/article/details/81455882 )中均有提及,但是在仅仅依靠二维照片的人脸特征点进行3DMM系数估计的时候,由于必须要求图像中检测得到的特征点准确等等因素,估计出的3DMM系数往往存在较大的偏差。

于是便有人提出借助CNN对图像强大的特征提取能力,来对3DMM系数进行估计的想法,在2017年的CVPR中,“Regressing robust and discriminative 3D morphable models with a very deep neural network.”,这篇论文便使用Resnet-101进行3DMM系数的估计。

论文项目地址在:https://talhassner.github.io/home/publication/2017_CVPR (有预训练好的模型以及相关代码)

论文的提出主要解决以下问题:

  • 得到较为准确的3DMM参数估计
  • 解决在同一个人不同视角的照片下,生成三维模型不一致的问题

整体论文的流程较简单,修改预训练好的Resnet-101网络输出,使其映射为参数。
对于同一个人不同视角的照片,假设其训练得到的3DMM系数是相同的。

以下是论文的pipeline,:
Method Overview

数据集

由于没有现成的数据集,作者借助这篇文章(“Automated 3D Face Reconstruction from Multiple Images Using Quality Measures”)方法,来对CASIA的人脸数据集进行重建(在这个数据集中,照片已经按个人分离开来),并且针对每个人不同角度的照片重建出的人脸模型进行整合,得到照片-人脸数据集。
具体整合操作如下:
在这里插入图片描述
其中,不同的 w i w_i wi是从不同照片进行人脸重建时相关的置信度。

loss函数

这里论文使用到的Loss函数为:
在这里插入图片描述

整体的loss函数设置为L2范数,不过有意思的地方是作者设置了两项loss项。

因为在回归多个参数的任务中,一般假设得到的参数服从多元正态分布(隐含条件为参数部分以原点为均值,在原点两侧分布),因此在进行训练的时候,得到的参数可能会比label更加靠近原点(在之前关于3DMM文章中中已经指出,如果过于靠近原点,那么得到的人脸模型往往会与平均人脸模型相似), 因此在进行训练的时候,不仅仅要满足得到的参数值与label相近,也要满足得到的参数值尽可能远离原点,这样才能得到更具特征的人脸。

γ \gamma γ表示真实的label, γ + \gamma^+ γ+表示取正,相当于对label数值加了绝对值号。
γ p \gamma_p γp表示预测得到的系数,同样的, γ p + \gamma^+_p γp+表示加了绝对值号的预测值。
γ m a x = m a x ( γ + , γ p + ) \gamma_{max}=max(\gamma^+, \gamma^+_p) γmax=max(γ+,γp+)表示取预测值和label值中绝对值较大的一个。

  1. over-estimate,当 γ + &lt; = γ p + \gamma^+&lt;=\gamma^+_p γ+<=γp+时, γ m a x = m a x ( γ + , γ p + ) = γ p + \gamma_{max}=max(\gamma^+, \gamma^+_p)=\gamma^+_p γmax=max(γ+,γp+)=γp+,这时,第二项为0, L = λ 1 ∣ ∣ γ + − γ p + ∣ ∣ 2 2 L=\lambda_1|| \gamma^+ - \gamma^+_p||^2_2 L=λ1γ+γp+22

  2. under-estimate, 当 γ + &gt; = γ p + \gamma^+&gt;=\gamma^+_p γ+>=γp+时, γ m a x = m a x ( γ + , γ p + ) = γ + \gamma_{max}=max(\gamma^+, \gamma^+_p)=\gamma^+ γmax=max(γ+,γp+)=γ+,这时,第一项为0, L = λ 2 ∣ ∣ γ p + − γ + ∣ ∣ 2 2 L=\lambda_2||\gamma^+_p - \gamma^+||^2_2 L=λ2γp+γ+22

之前看到这里有点懵,这两种情况除了前面的 λ \lambda λ系数不一样,并没有什么区别啊?

在重新看了论文后,原来发现两个loss项代表的意义不同

  1. over-estimate,当 γ + &lt; = γ p + \gamma^+&lt;=\gamma^+_p γ+<=γp+时,即预测得到的值相较于label比原点更远, λ 1 = 1 \lambda_1=1 λ1=1,占较小的权重。

  2. under-estimate,当 γ + &gt; = γ p + \gamma^+&gt;=\gamma^+_p γ+>=γp+时,即预测得到的值相较于label比原点更近, λ 1 = 3 \lambda_1=3 λ1=3,占较大的权重。

这样训练得到的模型系数可以使3DMM模型更能表现人脸特征。


评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值