1、整体方法
给定一个包含$N$个点的点云$P$,目标是重建一系列长方体${C_i}_{i=1,…,M}$来简单表示一个物体。每个长方体被三个向量所表示,包括位移$t∈ R^3$,旋转$q∈ R^4$和缩放$s∈ R^3$。
针对相同种类的物体,文章预测M个长方体。然而,我们很容易判断出即使是同一个类别的物体,对于不同的个体来说几何结构也有不同。比如说某些椅子有把手而某些没有。为了适应不同的结构,为每个长方体增加了一个参数$𝛿 ∈ {0, 1}$去表明当前长方体是否存在于当前物体实例内。因此,这里用一个11维向量的参数化表示方式来表示每一个长方体$p_m=[t_m;r_m;s_m,𝛿 _m]$。
文章使用了一个VAE将输入的点云编码为深层特征,然后通过解码器解码出每个长方体的参数信息。
A. 特征编码网络
网络首先通过一个DGCNN,之后通过一个MLP+maxpool输出一个1024维的全局特征。同标准VAE一致,本方法将特征通过2个MLP 回归预测为高斯分布的均值$𝜇 ∈ R^{512}$与方差$𝜎 ∈ R^{512}$。之后得到的latent code z 可以从标准高斯分布中samle的噪声$n∈R^{512}$得到。即$z=μ+σ⊗n$,⊗为逐元素相乘。
B. 形状抽象网络
1) 网络将特征z分出了M个分支,对于每一个分支,文章提供了一个onehot编码的位置编码向量v与其编码器$E_{cb}$。其中v长度为M,对于第i个分支,编码向量为$[0,0,…,1,0]$其中值为1的位置索引为i。之后提供了一个编码器$E_{cf}$,将上述编码向量输入到编码器中得到一个128维的长方体特征$f_{cm}$。作者认为通过这样的编码,解码器中的每个长方体特征不仅包含形状几何信息而且包含了部分相对于整体的结构信息。
2) 根据上一步骤获取到的latentcode,最终提供了一个MLP Regressor $D_{cp}$进行长方体形状的预测,即方法中提到的向量$p_m$。(其中$E_{cf},E_{cb},D_{cp}$)对于不同分支来说权重共享。
C. 长方体聚集分割网络
1) 分割分支的目的是将输入的N个点分配到生成的M个长方体中。实际上完成了对输入点云的M类别的分割,且每个类别属于一个长方体。
2) 作者利用两个MLP对点云特征以及长方体特征进行降维至64维,生成特征向量$g^p$和$g^c$。这里将N个点于M个长方体的关联矩阵定义为为了计算概率,对每行进行softmax后得到每个点属于长方体在(0,1)之间的概率。即:通过此公式即可得到输入点云的分割结果。
D. 损失函数
1)重建损失$L_{recons}$
重建损失在这里不仅要最小化几何距离,并且要鼓励高度一致的部件分配。首先定义了距离$d(p_n,C_m)$为点n到预测长方体m的距离,同时乘以分割网络中得到的概率$W_{m,n}$作为形状重建损失:
由于单纯的点到长方体的距离作为loss可能使模型退化。文章利用了法向量信息作为重建损失来避免退化。文章通过沿着点p法向量的方向,根据高斯分布$N(0,σ^2_s)$随机采样的距离获取一个新的点$p^s_n$,并且找到选择的长方体表面上离该点最近的点$q^c_m$从而定义$p_n$到$C_m$的距离为:其中σ默认设置为0.05
2) 长方体紧凑损失
显然,更多数量的长方体能够更加精细地表示整个物体,但是整个物体的表达更倾向于更加简洁明了。因此在分割任务中更倾向于使用更少的长方体,因此在分割网络中每个立方体存在概率$w_m=\frac{1}{N}\sum^N_{n=1}W_{m,n}$我们希望$w_m$尽可能地小,因此这里提出了使用$L_0.5$损失来优化整个图形。(由于l1损失在当$w_m$之和为1的时候不再更新)即:
其中小量$𝜖_{sps}=0.01$ 的加入防止当$w_m$为0,长方体不存在时导致的梯度爆炸。
根据图片可以明显发现,在优化过程中使用$L_2$损失时会导致$w_2$和$w_1$均趋向0.5,当$w_1+w_2=1$时使用$L_1$损失会导致梯度消失。而当使用$L_{0.5}$时则会使$w_1$或者$w_2$趋于0,另一个则趋于1,符合我们的期望。
3) 长方体存在性损失
在谈及长方体参数时,文章提供了一个存在概率𝛿。对于分割网络概率结果来说,当每个长方体中分配的点的概率>0.05时 我们认为该长方体是存在的即$𝛿^{gt}_m=1$否则$𝛿^{gt}_m=0$。对于这个0~1概率问题,这里使用的二进制交叉熵作为损失函数。即:
$$L_{exist}=-\frac{1}{M}\sum^M_{m=1}|𝛿^{gt}_mlog𝛿_m+(1-𝛿^{gt}_m)log(1-𝛿_m)|$$
4) 深层掩码KL-散度损失
模型前期对物体原始点云通过vanilla VAE 的形式进行编码获取到了一个符合标准高斯分布的512维的深层编码z。和原文同样使用KL散度对均值𝜇和方差𝜎进行约束。即:
因此,整合的网络loss为
其中$𝜆_1 = 0.1, 𝜆_2 = 0.01, 𝜆_3 = 6𝑒 − 6$