论文地址:https://arxiv.org/abs/2004.01793
github地址: https://github.com/NVlabs/SSV
作者:Siva Karthik Mustikovela1,2∗, V arun Jampani1, Shalini De Mello1, Sifei Liu1, Umar Iqbal1, Carsten Rother2, Jan Kautz1
1NVIDIA, 2Heidelberg University
会议及时间:CVPR 2020
目录
3.2.2 Style and viewpoint consistency with paired samples
1. 摘要
目前大部分位姿估计的方法都是基于监督的方法,即需要大量的标记训练数据集。但是手工标注数据耗时耗力,容易出错;同时,从网上获取未标记数据很方便。本文基于analysis-by-synthesis的方法,提出了一种自监督的方法来估计人脸/汽车等对象的位姿。同监督方法相比,本文的结果具有相当竞争力。
2. 背景介绍
目前位姿估计的方法大致可以分为三类:
(1)直接回归法,RGB图像通过模型直接得到位姿;
(2)关键点法,RGB图像通过模型得到关键点的位置,再利用RANSAC+PnP算法求解位姿;
(3)稠密法,RGB图像通过模型得到每个像素对输出的预测,通过霍夫投票得到2D-3D对应关系,利用最小二乘法求解位姿。
生成对抗网络GAN的最新进展表明,通过对外观、风格、视点等参数的控制,可以生成高质量的图像。受到这些研究的启发,位姿估计领域提出了analysis-by-synthesis方法,其分为两部分,第一部分analysis,即分析模型,输入一张图像,经过分析模型可以得到最能解释输入图像形成的基本参数;第二部分synthesis,即生成模型,输入基本参数,可以生成相应的图像。
3. 方法
本文就是基于analysis-by-synthesis,输入一张图像,经过分析网络V得到置信度c、视点v、风格z,再经过生成网络S得到生成图像。通过将分析网络V和生成网络S耦合在一个循环中,我们可以使用下图中描述的循环一致性约束以自监督的方式学习这两个网络。
和训练GAN的情况类似,本文训练V的时候冻结S,训练S的时候冻结V。
3.1 训练分析网络V
3.1.1 Generative Consistency
1. Image consistency
如上图(a)所示,输入Real图像,经过分析网络V得到风格z和视点v,然后经过生成网络S得到Syn.图像,计算两个图像的相似性,即输入在ImageNet上训练过的VGG16分类器的第五层conv的输出feature之间的cosine distance
2. Style and viewpoint consistency
如上图(b)所示,按照均匀分布的规律,随机生成网络zs和视点vs,经过生成网络得到Syn.图像,再输入分析网络V得到预测的hat(zs)和hat(vs),计算两者的相似度
θ之间的Cosine distance 余弦距离
Sign(θ)的交叉熵
视点vs的loss
Style and viewpoint consistency的loss等于风格zs之间的L2距离加上视点vs的loss
3.1.2 Discriminator Loss
同W-GAN判别器的loss相同,目的在于提高分析网络V的准确度
3.1.3 Symmetry Constraint
利用对象对称的性质,添加额外的约束。给定视点(a,e,t),水平翻转为(-a,e,-t),hat(v)为原始图像I对应的视点,hat(v*)为反转图像flip(I)对应的视点,hat(Vf*)是将hat(v*)中的a和t取反以后的视点值,相当于再次翻转。理论上来说,hat(Vf*)=hat(v)
3.1.4 分析网络V的Loss
3.2 训练生成网络S
3D Code和Style Code经过3D网络,得到一个3D模型的潜在表示,再结合视点vs,得到一个旋转后的3D模型的潜在表示,再进行2D投影,最后用类似StyleGAN的2D网络来生成Syn.图像
3.2.1 Adversarial loss
同W-GAN生成器的loss相同,目的在于提高生成网络S的准确度
3.2.2 Style and viewpoint consistency with paired samples
理想的S应该能够解耦视点v和风格s,当固定风格s,变化视点v的时候,得到的图像应该是具有相同风格,但视角不同的图像。
对3对(zs,vs)进行采样,每次改变一个参数zs或者vs
3.2.3 Flip image consistency
3.2.4 分析网络S的Loss
4. 实验结果
利用本文的生成网络S生成的Syn.图像,成功解耦视点z和风格s
第一行是方位角的变化;
第二行是俯仰角的变化;
第三行是倾斜角的变化。
人脸位姿估计:使用300W-LP数据集进行训练,在BIWI数据集上评估模型
汽车、火车、公共汽车等位姿估计:使用CompCars数据集训练汽车,使用OpenImages数据集训练火车和公共汽车,在Pascal3D+数据集上进行评估。