转载请注明作者和出处: http://blog.csdn.net/john_bh/
Arxiv 地址:Category Level Object Pose Estimation via Neural Analysis-by-Synthesis
作者及团队:苏黎世联邦理工学院 & 图宾根大学
会议及时间:ECCV 2020
主页: https://ait.ethz.ch/projects/2020/neural-object-fitting/
1. 主要贡献
许多对象姿态估计算法都依赖于综合分析框架,该框架需要各个对象实例的显式表示。
作者提出将基于梯度的拟合过程与参数化神经图像合成模块相结合,该模块能够隐式表示整个对象类别的外观,形状和姿势,从而无需每个对象实例使用显式CAD模型
。
图像合成网络被设计为有效地跨越姿势配置空间,从而可以使用模型容量来共同捕获形状和局部外观(即纹理)变化。 在推断时间,合成图像通过基于外观的损失与目标进行比较,误差信号通过网络反向传播到输入参数。保持网络参数固定,这可以联合优化对象的姿势,形状和外观;
实验证明该方法可以仅从2D图像中以高精度恢复对象的方向
;当提供深度测量结果时,为克服尺度模糊性,该方法可以成功地准确恢复完整的6DOF姿态。
2. 相关工作
2.1 Object Pose Estimation
考虑到它的实际重要性,有大量的工作集中在目标姿态估计。最先进的技术可以大致分为模板匹配技术和回归技术。模板匹配技术对齐3D CAD模型观察三维点云[4,56],图像[24,29],学习关键点[29,49,33,17,39]或 correspondence features [25,38,55]。相反,[41,22,53]将对象姿态估计作为分类或回归问题解决。 但是,为了实现高精度,这些方法通常需要基于模板的精修,例如使用ICP [4]。这极大地限制了它们的适用性,因为在测试时存储并与所有可能的3D CAD模型进行比较在许多情况下是不切实际的。此外,捕获高保真和完整的3D模型通常很困难,对于某些应用程序甚至是不可能的。
为了解决这一问题,NOCS[50]提出通过学习重构,在RGB图像的标准坐标框架中建立三维物体模型,然后将重建数据与深度测量数据对齐,使用来自相同类别的对象来训练他们的重建网络,期望在测试时将其归纳为同一类别中看不见的实例。
LatentFusion[37]提出了一种基于三维潜在空间的物体表示方法用于不可见物体姿态估计,它需要测试对象的多视角图像,以形成测试时的潜在空间和深度测量。
作者的方法虽然也学习解决任务从同一类别的对象,但是一个完全生成的方法,同时恢复对象的姿态,形状和外观。因此,它允许直接合成对象的外观,消除了在3D中重建对象的中间步骤。与NOCS[50]和LatentFusion[37]相比,作者提出的模型可以从单个RGB图像作为输入进行3D对象姿态估计。
2.2 Pose Dependent Image Generation
研究了两种场景下与位姿或视点相关的图像生成。
其中一项工作是通过直接生成像素[23,48,34,44]或将像素从源视图扭曲到目标视图[57,40,35,46,9]来为给定的源图像合成新的视图。虽然这些技术可以用于呈现不同姿态的物体,但物体的外观和形状是由源图像控制的,不能被优化。
另一项工作处理的问题,解纠缠图像产生[8,16,27,42,19],考虑到对象姿态是众多因素中的一个。近期作品[32]使用3D潜在空间在视点/姿态解纠缠上获得吸引人的结果。尽管所有提及的方法都能够生成具有不同姿势,形状和外观的对象,但是不能精确地控制姿势(例如,旋转一定程度的角度),这使得将其应用于绝对对象姿势估计任务的工作变得困难。
受到[32]的启发,作者提出的网络也采用了3D的潜空间。然而,在训练过程中,以监督的方式利用该模型将精确的绝对姿态知识整合到潜在的表示中
。这是通过整合三维潜空间与条件VAE框架来实现的。与同样利用3D隐藏空间的[44]不同,作者的模型可以联合表示一个对象类别的多个实例,并泛化到不可见的实例
。[31]使用位置感知图像生成视点估计,但以一种区别的方式。
2.3 3D Representations for Objects
一些研究已经解决了生成三维几何表示的问题,包括 meshes [28,47,12]、point sets [2,54,26]、voxels [52,6]和 implicit functions [36,30,10,45]。尽管这些生成模型还能够表示类别级别的对象,并且在理论上可以与差分渲染算法结合用于类别级别的对象拟合,但是所有上述技术仅考虑几何形状,而不考虑外观。因此,需要进行深度测量,并且丢弃了对象外观背后的丰富信息。相反,我们的方法允许利用外观信息,并且不需要深度映射作为输入。当生成纹理对象,它受到了依赖于3D meshes的限制。
相比之下,作者完全放弃了中间的几何估计任务,而专注于姿态条件下的外观生成。
2.4 Latent Space Optimization
CodeSLAM学习深度映射的潜在表示,在bundle调整期间优化潜在表示而不是逐像素深度值;GANFit 代表具有GAN的纹理贴图,并将latent code和3DMM参数共同拟合到人脸图像;Image2styleGan等通过迭代最小化图像重构误差,将自然图像嵌入到GANs的潜在空间中进行图像编辑。
通过迭代能量最小化更新潜表示的思想已被用于其他任务,受以上的启发,作者将潜在的对象外观和几何参数(姿态)共同优化
。
3. Method
利用一个学习过的图像合成模块,能够在不需要访问实例 3D CAD 模型的情况下从单个RGB或RGB- d图像中恢复物体的三维姿态。
训练:通过利用合成对象的多视图图像在VAE框架中对生成器进行训练。 将已知方向与KL散度一起生成的图像与真实图像之间的重建损失降至最低。 训练后,生成器可以生成忠实反映(潜在)外观和所需姿势的图像。
推理:为了从分割的真实图像作为输入来估计物体姿态,该方法迭代地优化了物体姿态和形状,在保持固定训练网络权重的同时,最小化输入和生成图像之间的感知损失。
整个框架如图1所示,首先使用ShapeNet数据集合成对象的多视图图像训练一个 pose-aware 图像生成器 G G G,它能够生成对象图像 I = G ( R , T , z ) I = G(R,T,z) I=G(R,T,z),它可以反应输入对象的 pose ( R , T ) (R,T) (R,T)和外观编码 z z z。在推理时,该方法以分割后的图像 I I I 为输入,通过迭代优化对象的姿势和形状以最小化输入图像与合成图像 G ( R , T , z ) G(R,T, z) G(R,T,z)之间的差异来估计对象的姿势。
3.1 Pose-aware Image Generator
为了生成给定类别的不同实例的图像,寻求生成具有显着但可控制的形状和外观变化的图像。作者通过潜变量
z
z
z 和所需的
6
D
o
F
6 DoF
6DoF 对象姿态对形状和外观进行编码,包括
3
D
r
o
t
a
t
i
o
n
R
=
R
x
R
y
R
z
3D\ rotation\ R = R_xR_yR_z
3D rotation R=RxRyRz 和
3
D
t
r
a
n
s
l
a
t
i
o
n
T
=
[
t
x
t
y
t
z
]
3D\ translation\ T = [t_x t_y t_z]
3D translation T=[txtytz]。
z
z
z 轴定义为与相机主轴对齐,而
y
y
y 轴指向上方。
为了提高效率并提高模型在表示形状和外观的较大变化方面的能力,作者将图像生成管道分离为两个阶段。首先,观察到可以使用2D操作对
3
D
t
r
a
n
s
l
a
t
i
o
n
s
T
3D\ translations\ T
3D translations T 和平面内
r
o
t
a
t
i
o
n
s
R
z
rotations\ R_z
rotations Rz 进行建模,因此无需学习。因此,将网络
G
3
D
G_{3D}
G3D 约束为仅生成面外旋转
I
^
r
o
t
=
G
3
D
(
R
x
,
R
y
,
z
)
\hat I_{rot} = G_{3D}(R_x, Ry_, z)
I^rot=G3D(Rx,Ry,z)(即elevation
R
x
R_x
Rx 和 azimuth
R
y
R_y
Ry)的图像。使用从
3
D
3D
3D平移
T
T
T 和平面内旋转
R
z
R_z
Rz派生的
2
D
2D
2D图像变形操作
W
W
W对其余变换进行建模。完整的生成过程定义为
G
=
W
∘
G
3
D
G = W \circ G_{3D}
G=W∘G3D。
-
Appearance and 3D Rotation.
为了生成不同外观、形状和姿态的物体图像,采用了一种基于三维风格的图像生成网络,类似于图2所示的[32]中所提出的网络。这个网络结合了一个3D特征体,它捕捉了3D旋转和一个基于样式的生成器[21]。这使模型能够从几何因素(如位姿和形状)中分离出整体外观变化。基于三维风格的图像生成网络主要包括四个步骤:- 1)生成三维特征体;
- 2)根据姿态变换特征体;
- 3)将三维特征体投影为二维特征映射;
- 4)将特征映射解码为预测图像 I ^ \hat I I^
3D生成器和2D生成器都通过自适应实例归一化[18]以潜码 z z z为条件,分别对形状和外观的变化进行建模。 对象方向R控制应用于3D特征量的变换。
-
Translation and 2D Rotation.
虽然基于3D风格的解码器原则上可以覆盖6个DoF姿态的整个空间,但最终的模型将需要非常大的容量和数据集来训练。因此,作者限制解码器到平面外旋转,并使用一个相似2D转换处理所有剩余的转换
。warping field 如下:
3.2 Training
在如图1所示的条件VAE框架中训练图像生成器,以便对生成的图像实现精确的姿态控制。 VAE是一种自动编码器,通过最小化重构项以及潜在空间分布与规范化高斯之间的KL散度来训练。 使用基于3D样式的图像生成网络作为解码器,并使用标准的CNN作为编码器。
> 在每次训练迭代中,编码器首先从随机选择的训练对象的图像中提取 latent code。
> 然后,3D图像生成网络将此 latent code 与所需姿势一起作为输入,以生成所需对象处于所选姿势的图像。
> 编码器和解码器通过最小化生成的图像和ground-truth之间的重建损失(通过KL散度正规化)来共同训练。
λ
K
L
\lambda_{KL}
λKL是正则化的加权,为
1
e
−
2
1e^{-2}
1e−2。
所需的训练数据,即具有不同姿势的对象的图像和相应的姿势标签,是通过从ShapeNet数据集中渲染合成对象而获得的[7]。 由于平移和2D旋转是通过不需要训练的相似性变换建模的,因此出于训练效率的考虑,仅生成平面外旋转的训练样本。
3.3 Object Pose Estimation
经过训练的姿势感知图像生成器可以渲染各种形状,外观和姿势的对象。 由于前向过程是可微的,所以可以通过迭代地细化网络输入(即姿势参数和潜在代码)来解决恢复其姿势,形状和外观的逆问题,从而使生成的目标与目标之间的差异图像最小化:
- Energy Function
为了增强对域偏移的鲁棒性,我们采用了感知损失作为距离函数,并通过实验验证了该方法的有效性。在没有进一步正则化的情况下,作者发现该模型可以通过将潜编码推到有效域之外而收敛到退化解。为了避免这种不理想的解,我们惩罚到潜在空间原点的距离。由于训练期间使用的KL发散项,接近原点的代码对解码器更有可能有用,所以最后的 energy 函数如下:
F v g g F_{vgg} Fvgg 是在ImageNet上预先训练的VGG网络用于深度特征提取, I ^ \hat I I^ 参考公式2。 - Initialization Strategy
由于上述能量函数是非凸的,基于梯度的优化方法容易产生局部极小值。因此,作者利用(共同训练的)编码器从相应的高斯分布中获取latent code和样本的条件分布的均值和方差 进行初始化。
4. Evaluation
4.1 Comparison with state-of-the-art
- Baseline :NOCS
NOCS使用从ShapeNet CAD模型生成的综合数据和真实数据来训练网络,该网络能够从标准坐标系中的RGB图像中重建对象。 随后,通过将重建与深度图对齐来恢复物体姿态。生成数据:CAMERA;真实数据:REAL275(真实的RGB-D图像:4300用于训练和2750用于测试;6个类别(相机、罐头、瓶子、碗、笔记本电脑和杯子)的42个真实对象实例分布在18个不同的场景中) - Our Method
训练使用合成数据CAMERA,但是没有将合成数据叠加到真实环境中
,更重要的是,与NOCS不同,作者的方法不需要真实的图像和姿态标注来进行训练
。 请注意,该方法仅依赖真实图像的2D注释来fine-tune对象分割网络(使用REAL275数据集)。 作者引入了一个由VGG组成的简单baseline,直接从2D图像回归对象的方向,在相同的合成数据上训练。注意,这是一个公平的比较,因为baseline和作者的方法使用相同的训练和测试数据。 - Metrics
旋转误差: e R e_R eR; 平移误差: e t e_t et
T r T_r Tr表示矩阵的迹,对于对称对象类别(瓶子、碗和罐子),允许预测的3D bounding box 绕对象的垂直轴自由旋转,没有任何惩罚。 - Results: Translation
下图展示了 Tanslation的结果:当使用Depth时,NOCS和作者提出方法旗鼓相当,这是使用RGB-D数据进行训练的;当仅使用RGB进行训练和测试,精度没有表现很好,作者解释说是由于2D观测的 inherent scale-ambiguity 不确定性导致的,是可以预料的,同时在实例级位姿估计的文献中也有类似的观察
(RSS 2018:A convolutional neural network for 6d object pose estimation in cluttered scenes)。
- Results: Orientation
作者的方法只使用RGB输入,但平均而言,测试结果与使用RGB-D以及在训练过程中带有配对姿势注释的真实图像的特权NOCS baseline相当,甚至更好。作者猜想罐头和瓶子的复杂纹理对于NOCS特征的回归是有问题的,并且相机的复杂几何结构对ICP提出了挑战。
图5可以看出,与NOCS相比,作者的方法产生了更准确的结果,特别是对于几何复杂的目标。这也可以解释NOCS在碗和笔记本电脑上的狭窄性能优势;这两种对象类型都有许多平面区域,这有利于ICP中使用的点对面度量。
4.2 Component Analysis
- Image Generation
.首先,训练一个网络,其中姿势被直接连接到 latent code,然后解码到只有二维卷积的图像,后者本质上是一个标准的条件VAE(由w/o 3D表示),没有KL散度项(由表1-a中的w/o VAE表示)。而图像生成网络在不进行正则化的情况下实现了较低的训练目标,这导致了潜在空间的不平滑,即只使用潜在空间中的少量样本进行图像生成,结果,由于不能产生信息梯度来指导潜在代码的更新,因此该拟合受到负面影响。
表1-a和图-6 表明缺少3D潜在空间会导致图像生成效果不佳,从而导致定位失败。
表1-b 展示了利用16维潜在空间可以很好地兼顾图像质量和姿态精度。
- Optimization
从表2b可以看出,随着损耗的减小,旋转误差也减小了,这说明能量函数为位姿估计提供了一个有意义的信号。
如表2a所示,不同的损失函数对比,其它几个不如 perceptual loss,作者解释说可能是由于perceptual loss鼓励了语义对齐,而不是像素对齐,因此,它产生的结果是 globally aligned,而不是聚焦于局部区域。
4.3 Robustness
为了研究该方法对引起领域位移的各种因素的鲁棒性,我们在受控仿真环境下对该方法进行了评估。主要研究了在bounding box检测中,lighting,、occlusion 和 offsets 这三个经常处于真实数据和模拟数据之间的因素。在测试时,我们每次改变其中一个因素,并根据方向估计来评估平均误差。修改目标图像的亮度来照明,去除图像的某些区域来模拟遮挡,并在2D中转换图像来模拟不准确的2D检测。使用相同的训练数据训练VGG16网络从图像中返回旋转角度。众所周知,与生成方法相比,判别方法更容易过度拟合,这通常导致较差的泛化性能。 我们为类别级姿势估计任务验证此发现。 在训练判别方法时,我们也已经随机改变了这三个因素,但仅在有限的程度上(遮挡最高20%,照明最高40%,translation最高25%)。 在测试时,我们在训练变量内外对样本进行网络测试。 请注意,我们的方法在训练过程中永远不会看到增强的图像。
如图7所示,生成方法对训练实例和测试实例之间的差距不那么敏感,这是我们方法为了处理看不见的对象的关键设计目标。当改变这三个因素时,判别模型表现出显着的性能变化,尤其是当该因素超过训练分布的变化时。相比之下,我们的方法表现出较少的性能变化,这证明了我们的方法的鲁棒性。