Unsup3D:自然图像中可能对称的可变形3D物体的无监督学习

Unsupervised Learning of Probably Symmetric Deformable 3D Objects from Images in the Wild

Unsup3D:自然图像中可能对称的可变形3D物体的无监督学习

IEEE Xplore Full-Text PDF:

图1 从自然图像中无监督地学习3D可变形物体。左:训练只使用对象类别的单一视图,根本没有额外的监督(即没有真实的3D信息,多个视图或对象的任何先前模型)。右:训练完成后,该模型从单幅图像中重建可变形物体实例的3D姿态、形状、反照率(albedo)和光照,保真度极好。Code and demo at https://github.com/elliottwu/unsup3d.

摘要:

我们提出了一种从原始单视图图像中学习三维可变形物体类别的方法,无需外部监督。该方法基于自动编码器,该编码器将每个输入图像分解为深度、反照率(albedo)、视点和照明。为了在没有监督的情况下解开这些组件,我们使用这样一个事实,即许多对象类别至少在原则上具有对称结构。我们表明,关于照明的推理使我们能够利用潜在的物体对称性,即使外观由于阴影而不对称。此外,我们通过预测对称概率图,与模型的其他组件端到端学习,对可能(但不确定)对称的对象进行建模。我们的实验表明,该方法可以非常准确地从单视图图像中恢复人脸,猫脸和汽车的三维形状,而无需任何监督或预先的形状模型。在基准测试中,与在2d图像对应级别使用监督的另一种方法相比,我们证明了更高的准确性。

1 引言

理解图像的三维结构是许多计算机视觉应用的关键。此外,虽然许多深度网络似乎将图像理解为2D纹理,但3D建模可以解释自然图像的许多可变性,并可能从总体上提高对图像的理解。基于这些事实,我们考虑了可变形对象类别的三维模型学习问题。

我们在两个具有挑战性的条件下研究这个问题。第一个条件是没有2D或3D地面真值信息(如关键点、分割、深度图或3D模型的先验知识)可用。没有外部监督的学习消除了收集图像注释的瓶颈,这通常是为新应用部署深度学习的主要障碍。第二个条件是算法必须使用不受约束的单视图图像集合——特别是,它不应该要求同一实例的多个视图。从单视图图像中学习是有用的,因为在许多应用程序中,特别是对于可变形的对象,我们只有静态图像的来源可以使用。因此,我们的学习算法摄取许多可变形对象类别的单视图图像,并产生一个深度网络作为输出,该网络可以在给定单个图像的情况下估计任何实例的3D形状(图1)。

我们将其制定为一个自动编码器,在内部将图像分解为反照率(albedo),深度,照明和视点,而无需直接监督这些因素。然而,如果没有进一步的假设,将图像分解为这四个因素是不适定的。为了寻找实现这一目标的最小假设,我们注意到许多对象类别是对称的(例如,几乎所有的动物和许多手工制作的对象)。假设一个物体是完全对称的,人们可以通过简单的镜像来获得它的虚拟第二视图。事实上,如果镜像对之间的对应关系可用,则可以通过立体重建实现三维重建[38,11,56,50,13]。受此启发,我们寻求利用对称作为约束分解的几何线索。

然而,具体的对象实例在实践中从来都不是完全对称的,无论是在形状上还是在外观上。由于姿势或其他细节(例如发型或人脸表情)的变化,形状是非对称的,反照率(albedo)也可能是非对称的(例如猫脸的不对称纹理)。即使形状和反照率(albedo)都是对称的,由于光照的不对称,外观也可能不是对称的。

我们通过两种方式解决这个问题。首先,我们明确地建模照明以利用潜在的对称性,并表明,通过这样做,模型可以利用照明作为恢复形状的额外线索。其次,我们增强模型来推断物体中可能缺乏对称性。为了做到这一点,该模型连同其他因素一起预测一个密集的地图,其中包含给定像素在图像中具有对称对应的概率。

我们将这些元素结合在一个端到端学习公式中,其中所有组件,包括置信度图,都仅从原始RGB数据中学习。我们还表明,对称性可以通过翻转内部表示来实现,这对于从概率上推理对称性特别有用。

我们在几个数据集上演示了我们的方法,包括人脸、猫脸和汽车。我们使用合成人脸数据集进行彻底的消融研究,以获得必要的3D Ground Truth 。在真实图像上,与其他方法相比,我们获得了更高的保真度重建结果[45,52],这些方法不依赖于2D或3D地面真值信息,也不依赖于实例或类的3D模型的先验知识。此外,我们还优于最近最先进的方法[37],该方法使用关键点监督对真实面部进行3D重建,而我们的方法根本不使用外部监督。最后,我们证明了我们训练的人脸模型可以在没有微调的情况下泛化到非自然图像,如人脸绘画和卡通绘画。

2 相关工作

为了评估我们对基于图像的3D重建的大量文献的贡献,重要的是要考虑每种方法的三个方面:使用哪些信息,做出哪些假设,以及输出是什么。在下面和表1中,我们基于这些因素比较了我们对先前工作的贡献。

表1:与之前选定工作的比较:监督、目标和数据。I:图像,3DMM: 3D变形模型,2DKP: 2D关键点,2DS: 2D轮廓,3DP: 3D点,VP:视点,E:表达式,3DM: 3D网格,3DV: 3D体积,D:深度,N:法线,A:反照率(albedo),T:纹理,L:光线。†也可以在后处理中恢复A和L。

我们的方法使用对象类别的单视图图像作为训练数据,假设对象属于弱对称的特定类别(例如人脸),并输出能够将该类别的任何图像分解为形状,反照率(albedo),照明,视点和对称概率的单目预测器。

来自运动的结构:传统的基于运动的结构(Structure from Motion, SfM)[10]等方法可以重建单个刚性场景的三维结构,作为输入每个场景的多个视图和视图之间的二维关键点匹配。这可以通过两种方式进行扩展。首先,单眼重建方法可以从单幅图像进行密集的3D重建,而不需要2D关键点[68,58,19]。然而,他们需要多视图[19]或刚性场景视频进行训练[68]。其次,非刚性SfM (NRSfM)方法[4,41]可以通过允许3D点在视图之间以有限的方式变形来学习重建可变形的物体,但在训练和测试中都需要根据注释的2D关键点进行监督。因此,两种SfM方法都不能学习从单个视图的原始像素重建可变形对象。

Shape from X:许多其他单眼线索已被用作SfM的替代或补充,用于从图像中恢复形状,如阴影[24,65]、轮廓[31]、纹理[61]、对称[38,11]等。特别是,我们的工作灵感来自于对称的形状和阴影的形状。Shape from symmetry[38,11,56,50]通过使用镜像作为虚拟第二视图从单个图像重建对称对象,前提是对称对应是可用的。[50]还表明,可以使用描述符检测对称性和对应性。形状从遮阳[24,65]假设一个遮阳模型,如朗伯反射率,并利用非均匀照明重建表面。

特定于类别的重构:基于学习的方法最近被用于从单个视图重构对象,无论是以原始图像的形式还是以2D关键点的形式(参见表1)。虽然该任务是病态的,但已经证明可以通过从训练数据中预先学习合适的对象来解决[43,62,1,44]。已经提出了各种各样的监督信号来学习这些先验。除了直接使用三维地面真值外,作者还考虑使用视频[2,68,40,59]和立体对[19,36]。其他方法使用带有2D关键点注释的单一视图[27,37,51,6]或对象蒙版[27,7]。对于人体和人脸等对象,一些方法[26,17,60,14]已经学会了从原始图像进行重建,但从SMPL[34]或Basel[43]等预定义形状模型的知识开始。这些先前的模型是使用专门的硬件和/或其他形式的监督构建的,这些模型通常很难获得野外可变形物体,例如动物,并且形状的细节也受到限制。

直到最近,才有作者试图仅从原始的单目视图中学习物体类别的几何形状。Thewlis等人[54,55]使用等方差来学习密集地标,从而恢复物体的二维几何形状。DAE[48]通过严格约束具有小瓶颈嵌入的自编码器来学习预测变形场,并将其提升到[45]中的3D -在后处理中,他们进一步分解反照率(albedo)和阴影重建,得到与我们相似的输出。

对抗性学习被认为是对一个物体产生幻觉的一种方式。其中一些方法从3D表示开始[62,1,69,44]。Kato等人b[28]在原始图像上训练一个鉴别器,但使用视点作为附加监督。holgan[39]只使用原始图像,但没有获得明确的3D重建。Szabo等人使用对抗性训练来重建物体的三维网格,但没有定量评估其结果。Henzler et al.[22]也从原始图像中学习,但只对在白色背景上包含物体的图像进行实验,这类似于对2D轮廓的监督。在第4.3节中,我们对比了[45,52],证明了具有更高保真度的优越重建结果。

由于我们的模型从内部3D表示生成图像,因此一个必不可少的组件是可微分渲染器。然而,在传统的渲染管道中,没有定义跨遮挡和边界的梯度。因此提出了几种软松弛[35,29,32]。这里,我们使用[29]的实现(https://github.com/daniilidis-group/neural_renderer)。

3 方法

给定对象类别(如人脸)的无限制图像集合,我们的目标是学习一个模型Φ\Phi,该模型接收对象实例的图像作为输入,并将其分解为3D形状、反照率(albedo)、照明和视点,如图2所示。

图2:图像几何自动编码。我们的网络Φ将输入图像I分解为深度、反照率(albedo)、视点和光照,以及一对置信度图。它被训练在没有外部监督的情况下重建输入。

由于我们只有原始图像可供学习,因此学习目标是重构的:即训练模型,使四个因素的组合返回输入图像。这就产生了一个自动编码管道,在这个管道中,由于因子被重组的方式,它们具有明确的照片几何意义。

为了在不监督任何组件的情况下学习这样的分解,我们使用了许多对象类别是双边对称的事实。然而,对象实例的外观从来都不是完全对称的。不对称由形状变形、不对称反照率(albedo)和不对称光照引起。我们采取两种措施来解释这些不对称。首先,我们明确地模拟不对称照明。其次,对于输入图像中的每个像素,我们的模型还估计一个置信度分数,该置信度分数解释了像素在图像中具有对称对应的概率(参见图2中的conf σ\sigmaσ\sigma')。

下面的章节描述了这是如何完成的,首先看看光几何自编码器(第3.1节),然后看看对称是如何建模的(第3.2节),然后是图像形成的细节(第3.3节)和补充感知损失(第3.4节)。

3.1 光几何自编码

图像II是定义在网格上的函数Ω={0,...,W1}×{0,...,H1}\Omega=\{0,...,W-1\}\times \{0,...,H-1\},或者,等价地,R3×W×H\R^{3\times W\times H}中的张量。我们假设图像大致集中在感兴趣对象的一个实例上。目标是学习一个函数Φ\Phi,实现为一个神经网络,将图像II映射到四个因素(d,a,w,l)(d,a,w,l),包括深度图d:ΩR+d:\Omega\to\R_+,反照率(albedo)图像a:ΩR3a:\Omega\to\R^3,全局光方向lS2l\in\mathbb{S}^2和视点wR6w\in\R^6,以便可以从它们重建图像。

在数学中,S2\mathbb{S}^2通常指的是二维球面,它是所有在三维空间中与固定点(通常是原点)距离相等的点的集合。形式上,它可以定义为:

S2={(x,y,z)R3x2+y2+z2=r2}\mathbb{S}^2 = \{(x, y, z) \in \mathbb{R}^3 \, | \, x^2 + y^2 + z^2 = r^2\}

这里,rr是球面的半径,R3\R^3表示三维欧几里得空间。简单地说,S2\mathbb{S}^2是一个半径为rr的完美的球体表面,没有内部,只有表面。

对图像II进行光照Λ\Lambda和重投影Π\Pi两步重构,具体如下:

照明函数Λ\Lambda根据深度图dd、光照方向ll和标准视点w=0w =0的反照率(albedo)aa生成物体的一个版本。视点ww表示规范视图与实际输入图像II的视点之间的转换。然后,重投影函数Π\Pi模拟视点变化的效果,在给定规范深度dd和阴影规范图像Λ(a,d,l)\Lambda(a,d,l)后,生成图像I^\hat{I}。学习使用重构损失,损失函数鼓励II^I\approx \hat{I}(第3.2节)。

讨论:光照的效果可以通过将后者解释为纹理而不是物体的反照率(albedo)而纳入反照率(albedo)aa。然而,有两个很好的理由来避免这种情况。首先,反照率(albedo)a通常是对称的,即使照明导致相应的外观看起来不对称。将它们分开可以让我们更有效地结合下面描述的对称约束。其次,阴影为底层3D形状提供了额外的线索[23,3]。特别是,与[48]最近的工作不同,[48]的工作是独立于形状预测阴影地图,我们的模型基于预测的深度计算阴影,相互约束。

3.2 可能对称的物体

利用对称进行三维重建需要识别图像中的对称对象点。这里我们含蓄地这样做,假设在标准框架中重建的深度和反照率(albedo)围绕固定的垂直平面对称。这种选择的一个重要的有益的副作用是,它帮助模型发现对象的“规范视图”,这对重建[41]很重要。

为此,我们考虑沿水平轴(轴的选择是任意的,只要它是固定的)翻转映射aRC×W×Ha\in\R^{C\times W \times H}的算子:[flip翻转a]c,u,v=ac,W1u,v[\text{flip翻转} a]_{c,u,v}=a_{c,W-1-u,v}。然后我们要求d翻转dd\approx\text{翻转}d'a翻转aa\approx\text{翻转}a'。虽然可以通过在学习目标中添加相应的损失项来强制执行这些约束,但它们很难平衡。相反,我们通过从翻转深度和反照率(albedo)获得第二次重建I^\hat{I}'来间接实现相同的效果:

然后,我们考虑了两种重构损失:II^I\approx\hat{I}II^I\approx\hat{I}'。由于这两种损失是相称的,所以很容易平衡和共同训练。最重要的是,这种方法使我们可以很容易地从概率上推断对称性,如下所述。

源图像II和重建图像I^\hat{I}通过损耗进行比较:

其中l1,uv=I^uvIuvl_{1,uv}=|\hat{I}_{uv}-I_{uv}|为位置uvuv处像素强度之间的L1距离,σR+W×H\sigma\in\R^{W\times H}_+为置信映射,也是由网络Φ\Phi从图像II中估计出来的,表示模型的任意不确定性。损失可以解释为重构残差上分解拉普拉斯分布的负对数似然。优化似然导致模型自校准,学习一个有意义的置信度映射[30]。

建模不确定性通常是有用的,但在我们的情况下,当我们考虑“对称”重构时,我们使用相同的损失L(I^,I,σ)\mathcal{L}(\hat{I}',I,\sigma'),这一点尤为重要。至关重要的是,我们使用网络来估计,同样从相同的输入图像II,第二个置信映射σ\sigma'。这个置信度图允许模型了解输入图像的哪些部分可能不是对称的。例如,在某些情况下,人脸上的头发不对称,如图2所示,σ\sigma'可以为不满足对称性假设的头发区域分配更高的重建不确定性。请注意,这取决于所考虑的特定实例,并且由模型本身学习。

总的来说,学习目标由两种重构误差的组合给出::

其中λf=0.5\lambda_f=0.5为权重因子,(d,a,w,l,σ,σ=Φ(I))(d,a,w,l,\sigma,\sigma'=\Phi(I))为神经网络的输出。I^\hat{I}I^\hat{I}'由公式(1)和(2)获得。

3.3 图像形成模型

现在我们更详细地描述公式(1)中的函数Π\PiΛ\Lambda。该图像是由相机观察3D物体形成的。用P=(px,Py,Pz)R3P=(p_x,P_y,P_z)\in\R^3表示相机参照系中的一个3d点,通过以下投影映射到像素p=(u,v,1)p=(u,v,1)

该模型假设有一个视场(FOV) θFOV\theta_{FOV}的透视相机。我们假设物体到相机的标称距离约为1米。考虑到图像被裁剪在一个特定的对象周围,我们假设一个相对狭窄的FOVθFOV10\theta_{FOV}\approx 10^\circ

深度图d:ΩR+d:\Omega\to\R_+将深度值duvd_{uv}关联到规范视图中的每个像素(u,v)Ω(u,v)\in\Omega。通过对相机模型(5)进行反演,我们发现这对应于3D点P=duvK1pP=d_{uv}\cdot K^{-1}p

视点wR6w\in\R^6表示欧几里得变换(R,T)SE(3)(R,T)\in SE(3),其中w1:3w_{1:3}w4:6w_{4:6}分别是沿x、y、z轴的旋转角度和平移。

映射(R,T)(R,T)将3D点从规范视图转换为实际视图。因此,规范视图中的像素(u,v)(u, v)通过变换函数ηd,w:(u,v)(u;,v;)\eta_{d,w}:(u,v)\mapsto (u;,v;)映射到实际视图中的像素(u,v)(u, v),给出如下:

其中p=(u,v,1)p'=(u',v',1)

最后,重投影函数Π\Pi以深度dd和视点变化ww作为输入,并将由此产生的变形应用于规范图像JJ,得到实际图像I^=Π(J,d,w)\hat{I} = Π(J,d,w)使得I^uv=Juv\hat{I}_{u'v'}=J_{uv},其中(u,v)=ηd,w1(u,v)(u, v)= \eta_{d,w}^{-1}(u',v')。注意,这需要计算变换函数ηd,w\eta_{d,w}的倒数,这在补充材料中有详细说明。

将反照率(albedo)、法线贴图和光照方向结合生成规范图像J=Π(a,d,l)J=\Pi(a,d,l)。为此,给定深度图dd,我们通过将每个像素(u,v)(u, v)关联到底层3D表面的向量来导出法线图n:ΩS2n:\Omega\to\mathbb{S}^2。为了求出这个向量,我们计算沿uuvv方向与表面相切的向量tuvut_{uv}^utuvvt_{uv}^v。例如,第一个是:tuvu=du+1,v(p+ex)du1,vK1(pex)t_{uv}^u=d_{u+1,v}\cdot(p+e_x)-d_{u-1,v}\cdot K^{-1}(p-e_x), 其中pp在上面有定义,ex=(1,0,0)e_x=(1,0,0),然后取向量积nuvtuvu×tuvvn_{uv}\propto t_{uv}^u\times t_{uv}^v得到法向量。

法向nuvn_{uv}乘以光方向ll得到方向照明的值,并将后者添加到环境光中。最后将结果与反照率(albedo)相乘得到光照纹理,公式为:Juv=(ks+kdmax{0,<l,nuv})auvJ_{uv}=(k_s+k_d\text{max}\{0,<l,n_{uv}\})\cdot a_{uv}。这里的ksk_skdk_d是加权环境项和扩散项的标量系数,并且通过重新缩放tanh输出由模型预测,范围在0到1之间。光方向l=(lx,ly,1)T/(lx2+ly2+1)0.5l=(l_x,l_y,1)^T/(l_x^2+l_y^2+1)^{0.5}用tanh预测lxl_xlyl_y,建模为球形扇形。

3.4 感知损失

L1损失函数Eq.(3)对小的几何缺陷很敏感,容易导致重建模糊。我们添加了一个感知损失术语来缓解这个问题。现成图像编码器e(本例中为[49]的VGG16)的第k层预测表示e(k)(I)Rck×Wk×Hke^{(k)}(I)\in\R^{c_k\times W_k\times H_k},其中Ωk={0,...,Wk1}×{0,...,Hk1}\Omega_k=\{0,...,W_{k}-1\}\times \{0,...,H_k-1\}为对应的空间域。注意,这个特征编码器不需要接受监督任务的训练。自监督编码器同样有效,如表3所示。

与式(3)相似,假设为高斯分布,则感知损失为:

其中luv(k)=euv(k)(I^euv(k)(I))l_{uv}^{(k)}=|e_{uv}^{(k)}(\hat{I}-e_{uv}^{(k)}(I))对于第k层的每个像素索引uvuv。我们也用σ(k)\sigma^{(k)'}来计算I^\hat{I}'的损失。σ(k)\sigma^{(k)}σ(k)\sigma^{(k)'}是我们模型预测的附加置信度映射。在实践中,我们发现仅使用VGG16的一个层relu3_3的特征已经足够好了。因此,我们将感知损失的符号缩短为Lp\mathcal{L}_p。由此,将Eq.(4)中的损失函数L\mathcal{L}替换为L+λpLp\mathcal{L}+\lambda_p\mathcal{L}_p,其中λp=1\lambda_p=1

4 实验

4.1 设置

数据集:我们在三个人脸数据集上测试了我们的方法:CelebA [33], 3DFAW[20, 25, 67, 64]和BFM[43]。CelebA是一个大规模的人脸数据集,由超过20万张带有边界框注释的野外真实人脸图像组成。3DFAW包含23k图像和66个3D关键点注释,我们在4.3节中使用它们来评估我们的3D预测。我们大致裁剪头部区域周围的图像,并使用官方训练/val/测试分割。BFM(巴塞尔人脸模型)是一种合成人脸模型,我们用它来评估3D重建的质量(因为野外数据集缺乏底色)。我们遵循[47]的协议来生成一个数据集,随机采样形状,姿势,纹理和照明。我们使用SUN数据库[63]中的图像作为背景,并保存地面真值深度图以供评估。

我们还在猫脸和合成汽车上测试了我们的方法。我们使用两个cat数据集[66,42]。第一个是10kcat图像,带有9个关键点注释;第二个是狗和猫图像的集合,包含1.2万张带有边界框注释的猫图像。我们将两个数据集结合起来,裁剪猫头周围的图像。对于汽车,我们从ShapeNet[5]中渲染了35k张随机视点和照明的合成汽车图像。我们以8:1:1的比例将图像随机分成训练集、验证集和测试集。

指标:由于投影相机的三维重建规模本身就具有模糊性,因此我们在评估中忽略了它。具体来说,给定我们的模型在规范视图中预测的深度图dd,我们使用预测的视点将其扭曲为实际视图中的深度图d\overline{d},并将后者与使用比例不变深度误差(SIDE) [9]

其中Δuv=logduvlogduv\Delta_{uv}=\log d_{uv}-\log d_{uv}^*。我们只比较有效的深度像素,并将前景蒙版侵蚀一个像素,以降低物体边界处的渲染伪影。此外,我们还报告了从地面真实深度和预测深度计算的法线之间的平均角度偏差(MAD),以测量表面被捕获的程度。

实现细节:函数(d,a,w,l,σ)=Φ(I)(d,a,w,l,\sigma)=\Phi(I)预测图像II的深度、反照率(albedo)、视点、光照和置信度映射,使用单个神经网络实现。深度和反照率(albedo)由编码器-解码器网络生成,视点和光照使用简单的编码器网络进行回归。编码器-解码器不使用跳过连接,因为输入和输出图像没有在空间上对齐(因为输出在规范视点中)。所有四个置信度图都使用相同的网络,在不同的解码层上预测光度和感知损失,因为这些是在不同的分辨率下计算的。最后的激活函数是深度、反照率(albedo)、视点和照明的tanh,以及置信度地图的softplus。深度预测以tanh之前的平均值为中心,因为全局距离估计是视点的一部分。我们没有对所有的预测使用任何特殊的初始化,除了左边和右边深度图的两个边界像素被固定在最大深度以避免边界问题。

我们使用Adam对64个输入图像进行批量训练,调整为64 × 64像素。输出深度和反照率(albedo)的大小也为64 × 64。我们训练了大约5万次迭代。为了可视化,深度图被上采样到256。我们在补充材料中包含了更多的细节。

4.2 结果

与基线比较:表2使用BFM数据集比较了我们的方法获得的深度重建质量,一个完全监督基线和两个基线。监督基线是我们的模型的一个版本,经过训练,可以使用L1损失来回归真实深度图。平凡的基线预测一个恒定的均匀深度图,它提供了一个性能下限。第三个基线是一个恒定的深度图,通过平均测试集中所有的地面真值深度图得到。我们的方法在很大程度上优于两个恒定基线,并接近监督训练的结果。对第三个基线(可以访问GT信息)进行改进,确认模型学习了特定于实例的3D表示。

表2:与基线的比较。与完全监督和平凡基线相比,我们在BFM数据集上重建的SIDE和MAD误差。

消融实验:为了了解模型各个部分的影响,我们一次一个地删除它们,并评估表3中删除后的模型的性能。目视结果在补充材料中报告。

在表中,第(1)行显示了完整模型的性能(与表2相同)。第(2)行没有翻转反照率(albedo)。因此,反照率(albedo)在规范空间中不被鼓励是对称的,这不能使物体的视点规范化,也不能利用对称的线索来恢复形状。性能与表2中微不足道的基线一样低。第(3)行不会翻转深度,其效果与第(2)行相似。第(4)行预测阴影地图,而不是根据深度和光照方向计算。这也会严重损害性能,因为阴影不能作为恢复形状的线索。第(5)行关闭感知损失,这会导致图像质量下降,从而导致重建结果下降。**行(6)**将感知损失中使用的ImageNet预训练图像编码器替换为通过自监督任务[18]训练的one4,性能没有差异(我们使用从https://github.com/facebookresearch/DeeperCluster获得的RotNet[18]预训练VGG16模型)。最后,**行(7)**关闭置信映射,使用固定和统一的置信度值-这将损失(3)和(7)分别减少到基本L1和L2损失。由于BFM中的人脸是高度对称的(例如没有头发),因此准确率不会显著下降,但其方差会增加。为了更好地理解置信度图的效果,我们特别使用扰动来评估部分不对称的面孔。

不对称摄动:为了证明我们的不确定性模型允许模型处理不对称,我们在BFM中添加了不对称扰动。具体而言,我们生成图像大小为20% - 50%的随机矩形色块,并将其混合到α-值为0.5 - 1的图像上,如图3所示。然后,我们对这些扰动图像进行有置信度和无置信度的模型训练,并报告表4中的结果。没有置信度图,模型预测的反照率(albedo)总是对称的,几何重建往往失败。根据我们的置信度估计,该模型能够正确地重建非对称面部,与未受干扰的情况相比,精度损失很小。

图3:不对称摄动。顶部:扰动数据集的示例。下图:有信心和没有信心的重建图。信心允许模型正确重建具有不对称纹理的3D形状。

表4:不对称摄动。我们将不对称扰动添加到BFM中,并表明置信图允许模型拒绝这种噪声,而没有置信图的香草模型则会崩溃。

定性结果:在图4中,我们展示了来自CelebA和3DFAW的人脸、来自[66,42]的猫脸和来自ShapeNet的合成汽车的重建结果。三维形状以高保真度恢复。例如,即使在极端的面部表情中,重建的3D人脸也包含了鼻子、眼睛和嘴巴的精细细节。

为了进一步测试泛化,我们将在CelebA数据集上训练的模型应用于从[8]和互联网上收集的许多面部绘画和卡通绘画。如图5所示,尽管我们的方法在训练过程中从未见过这样的图像,但仍然可以很好地工作。

对称和不对称检测:由于我们的模型预测了一个关于图像垂直中心线对称的对象的规范视图,因此我们可以很容易地可视化对称平面,否则从野外图像中检测到对称平面是不平凡的。在图6中,我们将规范图像的中心线扭曲到预测的输入视点。尽管存在不对称的纹理和光照效果,我们的方法仍然可以准确地检测对称平面。我们还将预测的置信度映射σσ叠加到图像上,证实了该模型以特定于样本的方式对不对称区域分配低置信度。

图6:对称平面和不对称检测。(a):我们的模型可以重建野外物体的“内在”对称面,即使它的外观是高度不对称的。(b):使用置信映射σ\sigma'检测和可视化不对称(红色突出显示)。

4.3 与技术水平的比较

如表1所示,文献中的大多数重建方法要么需要图像注释,要么需要预先的3D模型,要么两者兼而有之。当放弃这些假设时,任务变得相当困难,并且几乎没有先前的工作可以直接比较。其中,[21]仅使用ShapeNet合成的无纹理对象,[52]重建野外人脸,但不报告任何定量结果,[45]仅报告关键点回归的定量结果,而不报告3D重建质量。我们无法从[45,52]中获得代码或训练模型进行直接定量比较,因此无法进行定性比较。

定性比较:为了建立并排比较,我们裁剪了论文[45,52]中报道的示例,并将我们的结果与他们的结果进行比较(图7)。我们的方法产生的重建质量比两种方法都高得多,具有面部表情的精细细节,而[45]恢复3D形状较差,[52]产生不自然的形状。请注意,[52]使用无条件GAN从随机噪声中生成高分辨率3D人脸,并且不能从图像中恢复3D形状。图7中[52]的输入图像由其GAN生成。

图7:与SOTA的定性比较。与[45,52]相比,我们的方法可以恢复更高质量的形状。

三维关键点深度评估:接下来,我们比较b[37]的DepthNet模型。该方法预测所选面部关键点的深度,但使用2D关键点注释作为输入——这比我们这里考虑的设置要简单得多。我们还比较了deep - net和我们的方法得到的稀疏点的重建质量。我们还比较了2010年报道的MOFA[53]和AIGN[57]基线。为了公平的比较,我们使用他们的公共代码来计算正面的深度相关分数(在0到66之间)。我们使用2D关键点位置来采样我们的预测深度,然后评估相同的度量。3DFAW的测试图像集和预处理与[37]相同。由于3DFAW是一个变化有限的小数据集,我们也报告了CelebA预训练的结果。

在表5中,我们报告了他们论文的结果,以及我们从他们公开可用的实现中获得的略微改进的结果。本文还使用基于真值深度信息训练的GAN鉴别器来评估监督模型。虽然我们的方法不使用任何监督,但它仍然优于DepthNet,并达到接近监督的性能。

表5:3DFAW关键点深度评价。在66个面部关键点位置评估地面真实值与预测值之间的深度相关性。

4.4 局限性

虽然我们的方法在许多具有挑战性的场景(例如,极端的面部表情,抽象绘画)中是稳健的,但我们确实观察到如图8所示的失败案例。在训练过程中,我们假设一个简单的兰伯氏阴影模型,忽略阴影和镜面,这导致在极端光照条件下(图8a)或高度非兰伯氏表面下重建不准确。分离嘈杂的暗纹理和阴影(图8b)通常是困难的。极端姿态的重建质量较低(图8c),部分原因是由于侧面图像的重建损失导致的监督信号较差。这可以通过对正面姿势的精确重建施加约束来改善。

5 结论

我们提出了一种方法,可以从对象类别的单视图图像的无约束集合中学习可变形对象类别的3D模型。该模型能够获得单个对象实例的高保真单目三维重建。这是在没有任何监督的情况下基于重建损失进行训练的,类似于自动编码器。我们已经证明,对称和光照是形状的强烈线索,有助于模型收敛到有意义的重建。我们的模型优于当前使用2D关键点监督的最先进的3D重建方法。对于未来的工作,该模型目前使用深度图从规范视点表示3D形状,这对于具有大致凸形状和自然规范视点的人脸等对象来说已经足够了。对于更复杂的对象,可以扩展模型以使用多个规范视图或不同的3D表示,例如网格或体素图。


Unsup3D:自然图像中可能对称的可变形3D物体的无监督学习
http://example.com/2024/03/05/Unsup3D:自然图像中可能对称的可变形3D物体的无监督学习/
作者
Mr.Yuan
发布于
2024年3月5日
许可协议