【2020CVPR】best papar award
Wu, Shangzhe, Christian Rupprecht, and Andrea Vedaldi. “Unsupervised Learning of Probably Symmetric Deformable 3D Objects from Images in the Wild.” In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp. 1-10. 2020.
代码:https://github.com/elliottwu/unsup3d
任务:单张2D图像进行3D建模
难点:
1、没有配对的2D和3D ground truth信息(关键点、分割、深度图或3D模型的先验知识)
2、同一个实例只有单视角的图像
假设一个物体是很好地对称的,那么可以通过镜像得到第二个视角的图像,但是一般来说物体的形状和外表都不是很好对称的
采用以下两个技术来解决:
1、显式地建模光照从而来挖掘对称信息,同时光照的建模还可以作为形状复原时的一个线索
2、模型同时预测一个图,表示图中每个像素点是对称点的概率
模型结构
从深度(depth)、反射率(albedo)、视角(viewpoint)、光照(lighting)和每个像素点的对称概率(confidence)5个角度进行建模
a表示反射率albedo, d表示深度图depth,l表示光照方向light,w表示视角方向viewpoint
人脸重建一共分为两步:
①光照函数Λ:使用深度图d、光照方向l和反射率a,生成一张标准视角
w
=
0
w=0
w=0下的人脸图像,其中d和a为正面的
②重映射函数Π:将①中生成的标准视角下的人脸图像,再结合视角w以及深度图,最终得到重建的人脸图像
I
^
\hat{I}
I^
损失函数
1、重建损失
其中l为重建误差,采用拉普拉斯分布
而σ为每个像素点是对称点的概率,由拉普拉斯分布的曲线可知,分子相同时(不是很大,基本靠近0)分母越大,则概率分布越小
对应到模型中,σ 的值小,则说明该点不为对称点,则该点的误差更加重要
同时,为了隐式地约束图像的对称性,将深度图d和反射率a进行左右翻折后,同样约束重建图像和原始图像相同
将上面两种损失按照系数加权(翻折后的系数为0.5)
2、perceptual loss
使用VGG16的relu3_3层计算perceptual loss,即将原始图像和重建图像都经过VGG16网络,然后计算relu3_3层特征的差异
l为relu3_3特征的差异,perceptual loss计算时假设高斯分布,思路与重建损失类似
同样也计算d和a翻折后得到图像的perceptual loss
最终将重建损失和perceptual loss进行相加
实验
数据集:人脸(CelebA、3DFAW、BFW)、猫、汽车
训练图像尺度为64*64
评价指标:SIDE(Scale-invariant depth error)和MAD(mean angle deviation)
只计算有效人脸区域的深度误差
MAD计算估计深度图和GT深度图的平均视角偏差
1、与baseline比较
(2)为随机估计的深度图
(3)为测试集gt中平均值获得的深度图
可以看到本文无监督的方法比baseline好得多,同时接近有监督学习的结果
2、ablation study
(2)是取消反射率a的翻折
(3)是取消深度图d的翻折
(4)是直接预测shading map,而不再通过深度图和光照角度进行计算,由于shading对重建shape不能起到有效的帮助,因此损失了性能
(5)不使用perceptual loss
(6)将perceptual loss中使用的在ImageNet上预训练的网络替换成自监督任务训练的网络,发现并不会影响性能
(7)不生成预测对称性的confidence map,直接使用随机的map
3、非对称扰动
为了验证confidence map对于网络中非对称图像生成时的帮助,使用patch进行扰动的数据集进行训练
可以看到使用confidence map后,在对非对称图像进行重建时,可以较好地进行建模
4、定性图像
5、对称性检测
confidence map可以很好地预测图像中非对称的区域
6、与SOTA的定量比较
7、3D关键点定位
8、failure case
由于使用Lambertian光照模型,因此对极端光线情况的效果不好
对于大姿态角度的图像生成效果也不好