介绍

主要思想:

之前的场景重建方法通常分别预测每个物体的形状和姿态,而忽略了物体之间的关系。本文认为,物体之间的关系对于3D场景重建十分重要,例如,由于遮挡等原因我们不能确定某个物体的姿态,则有可能从它与其他物体的关系推测出来。

输入:含有物体框的2D RGB图片

输出:3D layout,含有所有物体的姿态和形状。

方法

image-20190921005026183

如图所示,object encoder对场景中的每个物体生成一个embedding,instance decoder使用该embedding来分别预测每个物体的姿态和形状。relative encoder输入每对物体和它们的embedding生成pair embedding,relative decoder预测每对物体的关系(相对姿态)。最后将每个物体单独的预测和相关性预测结合起来预测每个物体的姿态。

物体的表示和推理

物体姿态的形状的预测与Factor3D中类似。使用 $32^3$ 的体素网格表示物体形状,并用平移 $\mathbf{t} \in \mathbb{R}^{3}$、各向异性放缩(对数空间) $\mathbf{s} \in \mathbb{R}^{3}$、四元组 $\mathbf{q}$ 来分别表示物体的位置、大小和朝向。

相对关系的表示

与物体姿态的定义类似,物体之间的相对姿态定义为相对位移、相对大小和相对方向。

对于两个物体 $A$ 和 $B$:

  • 相对位移:$\mathbf{t}_{A B}=\mathbf{t}_{B}-\mathbf{t}_{A}$
  • 相对大小:两个物体的放缩大小之比,对数空间内可写为 $\mathbf{S}_{A B}=\mathbf{s}_{B}-\mathbf{s}_{A}$
  • 相对方向:$\hat{\mathbf{d}}_{A B} \propto\left(\overline{R}_{A}\right) \mathbf{t}_{A B}$,其中 $\overline{R}_{A}$ 表示 $q_{A}$ 所对应的旋转。

网络结构

网络有两个分支:物体预测模块和相对关系预测模块。

相对关系预测模块的输入包含两个部分:1)两个物体各自的encoding;2)包含2个物体的更大的bounding box的encoding。由于更大的box可能会包含其他物体,因此使用两个信道的额外输入分别表示每个物体的binary mask。

将单个物体和相对关系的预测结合起来

首先使用如下表示方式:

  • $\left(\mathbf{t}_{n}, \mathbf{s}_{n}, \mathbf{q}_{n}\right)$:第 $n$ 个物体的位移、对数放缩和旋转
  • $\left(\mathbf{t}_{m n}, \mathbf{s}_{m n}, \mathbf{d}_{m n}\right)$:第 $m$ 和第 $n$ 个物体的相对姿态
  • $\left(\mathbf{t}_{n}^{*}, \mathbf{s}_{n}^{*}, \mathbf{q}_{n}^{*}\right)$:最终第 $n$ 个物体的姿态预测

位移和放缩的预测

物体之间的相对关系给了我们一些最终的预测结果应该遵守的线性约束:

$$ \mathbf{t}_{n}^{*}-\mathbf{t}_{m}^{*}=\mathbf{t}_{m n} $$

该约束可以简写为矩阵相乘的形式:

$$ A \mathbf{t}^{*}=\mathbf{t}_{\mathrm{rel}} $$

其中 $A$ 是一个稀疏行矩阵,其第 $m,n$个entry分别为-1和1,$\mathbf{t}^{*}$ 表示所有物体对之间的相对关系。

除了满足这些线性约束之外,我们希望最终的预测与单个物体的预测接近。最终的预测通过解以下线性方程组得到:

$$ \left[\begin{array}{c}{\lambda I} \\ {A}\end{array}\right] \mathbf{t}^{*}=\left[\begin{array}{c}{\lambda \mathbf{t}} \\ {\mathbf{t}_{\mathrm{rel}}}\end{array}\right] ; \quad \mathbf{t}^{*}=\left[\begin{array}{c}{\lambda I} \\ {A}\end{array}\right]^{+}\left[\begin{array}{c}{\lambda \mathbf{t}} \\ {\mathbf{t}_{\mathrm{rel}}}\end{array}\right] $$

其中 $X^+$ 表示矩阵 $X$ 的伪逆。由于最终的预测是一元预测 $\mathbf{t}$ 和相对预测 $\mathbf{t}_{rel}$ 的线性函数,因此梯度的传播也十分方便。

放缩 $\mathbf{s}$ 的预测与位移类似。

旋转的预测

与Factor3D类似,旋转的预测是通过一个分类任务完成的。我们使用每个 rotation bin与相对预测事件的不一致性来更新一元预测的负对数似然:

$$ \mathbf{q}_{m}^{*}(b)=\mathbf{q}_{m}(b)+\sum_{n} \Delta\left(R^{b}, \mathbf{d}_{m n}, \mathbf{t}_{m n}\right) $$

训练细节

网络的训练分为两步。在第一步中,独立地训练一元预测和相对预测,使用的loss与Factor3D类似。在第二步中,联合地训练整个模型,最终的姿态预测结果使用的loss与上一步相似。

实验

image-20190921020112822

Last modification:September 21st, 2019 at 02:06 am
如果觉得我的文章对你有用,请随意赞赏