目录

目录

Deformed Implicit Field: Modeling 3D Shapes with Learned Dense Correspondence


<DIF> Deformed implicit field: Modeling 3d shapes with learned dense correspondence

Motivation

  • 把每个具体instance shape表达为一个template的shape的deformation
  • 用deformation field建立起 shape correspondence,这样就可以做texture transfer、label transfer等
  • https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20201222155438709.png

overview

  • 用一个超网络从code预测DeformNet $D$的参数;
    然后在空间中的每一处,从同一个template SDF,DeformNet $D$产生位置修正$v$与标量距离修正$\Delta s$,总共4维输出
    即最终的$p$点处的SDF值为:$s=T(p+v)+\Delta s=T(p+D^v_{\omega}(p))+D^{\Delta s}_{\omega}(p)$
    注意变形向量$v$其实反映的是从shape instance场 到 template 场所需的变形向量
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20201222153322051.png

losses

SDF loss

  • 被训练的量:变形场超网络$\Psi$,SDF输出场$\Phi$,模板场$T$,learned latent codes $\lbrace \alpha_j\rbrace$;$\Psi_i(p)$代表predicted SDF值$\Phi_{\Psi(\alpha_i)}(p)$,$\Omega$代表3D空间,$\mathcal{S}_i$ 代表形状表面
    • $\Phi_{\Psi(\alpha)}(p)=T(p+D_{\Psi(\alpha)}^v(p)) + D_{\Psi(\alpha)}^{\Delta s}(p)$
  • $L_{sdf}=\underset {i}{\sum} \left( L_1 + L_2 + L_3 + L_4 \right)$
    • $\underset {p \in \Omega}{\sum} \lvert \Phi_i(p)-\overline{s}\rvert$ 代表预测SDF和正确SDF的误差
      • $p \in \Omega $ 这里是在3D空间中采样
    • $\underset{p\in \mathcal{S}_i}{\sum} (1-\langle \nabla\Phi_i(p), \overline{n} \rangle)$ 代表预测法向量和正确法向量的误差(角度误差,用夹角余弦应接近1来表达)
      • $p \in \mathcal{S}_i$,这里是在表面上采点
    • $\underset{p\in\Omega}{\sum} \lvert \Vert \nabla\Phi_i(p) \rVert_2 - 1 \rvert$ 代表预测法向量的模应该是1 (因为是SDF)
      • $p \in \Omega $ 这里是在3D空间中采样
    • $\underset{p\in\Omega \backslash \mathcal{S}_i}{\sum} \rho(\Phi_i(p)), ;where ; \rho(s)=\exp(-\delta \cdot \lvert s \rvert), \delta \gg 1$ 代表对 SDF值靠近0非表面 点的惩罚;
      • $\delta \gg 1$就代表只有靠近0的时候这项loss才有值
        • Q: 类似一种负的L0-norm ?
      • 详见 (SIREN) Implicit neural representations with periodic activation functions. NeurIPS2020 论文

正则化

  • regularization loss to constrain the learned latent codes: $L_{reg}=\underset{i}{\sum} \lVert \alpha_i \rVert_2^2$
  • 可以用一些其他更强的正则化,比如VAE训练时用的 最小化latent code后验分布和高斯分布的KL散度

normal consistency prior 法向量一致性先验

  • 考虑到表面点和语义 高度关联:e.g. (在canonical space假设下)车顶总是指向天空,左车门总是指向左侧
  • 因此,让相关的点的法向量互相一致
    • 鼓励 模板场中的点处的法向量 和 所有给定shape instance 中的相关点 处的法向量 一致
    • $L_{normal}=\underset{i}{\sum} \underset{p\in\mathcal{S}i}{\sum} \left( 1 - \langle \nabla T(p+D{\omega_i}^v (p)), \overline{n} \rangle \right)$
    • 即让模板场中的 对应位置p的点 和 真值法向量保持一致
    • $p \in \mathcal{S}_i$,这里是在表面上采点
    • 如果没有标量修正场,模板场对应位置p的点处的法向量就是 最终输出场的法向量,和$L_{sdf}$的第2项一样
      • Q: 以下为笔者猜想。有待代码检查验证。
      • 变形后的形状shape instance场中的点坐标是$p$,模板场中的 相关 点坐标是 $p+D_{\omega_i}^v (p)$
      • 相关 点处的法向量 其实是$\nabla_{p+D_{\omega_i}^v (p)} T(p+D_{\omega_i}^v (p))$,而非$\nabla_p T(p+D_{\omega_i}^v (p))$
      • $L_{sdf}$第2项是$\nabla_p\Phi_i(p)=\nabla_p \left( \quad T(p+D_{\omega_i}^v (p)) ; (+D_{\omega_i}^{\Delta s}(p)) \quad \right)$
      • 即其主要是强调 模板场 和 变形后的形状实例场 中 相关点处的 两个场的法向量保持一致性
      • 其实应该是$\nabla_{p+D_{\omega_i}^v (p)} T(p+D_{\omega_i}^v (p))$和$\nabla_p\Phi_i(p)$的夹角,而不是和$\overline{n}$的夹角;
        只不过$\nabla_p\Phi_i(p)$就是$\overline{n}$的近似,所以用$\overline{n}$也可

deformation smoothness prior 变形平滑先验

  • 鼓励平滑的变形、防止巨大的形状扭曲,引入一个对变形场的平滑loss
  • $L_{smooth}=\underset{i}{\sum} \underset{p\in\Omega}{\sum} \underset{d\in{X,Y,Z}}{\sum} \lVert \nabla D_{\omega_i}^v \vert_d (p) \rVert_2$
    • ✔️ $\begin{pmatrix} \frac{\partial v_x}{\partial x} \ \frac{\partial v_x}{\partial y} \ \frac{\partial v_x}{\partial z} \end{pmatrix}$, $\begin{pmatrix} \frac{\partial v_y}{\partial x} \ \frac{\partial v_y}{\partial y} \ \frac{\partial v_y}{\partial z} \end{pmatrix}$, $\begin{pmatrix} \frac{\partial v_z}{\partial x} \ \frac{\partial v_z}{\partial y} \ \frac{\partial v_z}{\partial z} \end{pmatrix}$
      • 把$v = \begin{pmatrix} v_x \ v_y \ v_z \end{pmatrix} =D_{\omega_i}^v(p)$ 函数看作3个标量函数构成的向量值函数,每个标量值函数有自己的梯度式
    • ❌ $\begin{pmatrix} \frac{\partial v_x}{\partial x} \ \frac{\partial v_y}{\partial x} \ \frac{\partial v_z}{\partial x} \end{pmatrix}$, $\begin{pmatrix} \frac{\partial v_x}{\partial y} \ \frac{\partial v_y}{\partial y} \ \frac{\partial v_z}{\partial y} \end{pmatrix}$, $\begin{pmatrix} \frac{\partial v_x}{\partial z} \ \frac{\partial v_y}{\partial z} \ \frac{\partial v_z}{\partial z} \end{pmatrix}$
  • penalizes the spatial gradient of the deformation field along X, Y and Z directions.
    惩罚变形场函数沿着X,Y,Z方向的空间梯度
  • $p \in \Omega $ 这里是在3D空间中采样

minimal correction prior

  • 鼓励形状表征主要是通过 形变场,而不是通过标量修正
  • $L_c=\underset{i}{\sum} \underset{p\in\Omega}{\sum} \lvert D_{\omega_i}^{\Delta s}(p) \rvert$ 惩罚标量修正L1大小
  • $p \in \Omega $ 这里是在3D空间中采样

total

  • $\underset{\lbrace \alpha_j\rbrace, \Psi, T }{\arg\min} L_{sdf} + w_1 L_{normal}+w_2 L_{smooth}+w_3 L_c + w_4 L_{reg}$,
    $L_{sdf}$中的4项:3e3, 1e2, 5e1, 5e2
    $w_1=1{\rm e}2, w_2=\lbrace 1,2,5\rbrace, w_3=\lbrace 1{\rm e}2, 5{\rm e}1\rbrace, w_4 = 1{\rm e}2$

相关性 uncertainty measurement

  • 两个物体$\mathcal{O}_i$和 $\mathcal{O}_j$之间的 相关性 可以通过在 template space中进行 最近邻搜索 来建立;
    • Q: 最近邻不会出现错误的相关性么?
      • 考虑应该尽量鼓励标量修正为0,主要通过位置修正,当出现因结构改变而发生的实在无法反映的形状变化时,才用标量修正
      • 文中的minimum correction prior已经在做这个事
  • 假设物体$\mathcal{O}_i$(表面)上一点$p_i$,通过最近邻搜索找到了点$p_i$在物体$\mathcal{O}_j$上相关的(表面上的)一点$p_j$
    • 那么二者之间相关性的不确定性可以通过一个simple yet surprisingly-effective的uncertainty metric评估:
    • $u(p_i,p_j)=1-\exp(-\gamma \lVert (p_i+v_i) - (p_j+v_j) \rVert_2^2)$
      • 其中$v_i=D_{\omega_i}^v(p_i)$ 是点上的变形向量;是从 shape instance space到 template space的$\Delta$
      • $\lVert (p_i+v_i) - (p_j+v_j) \rVert_2$其实就是这对相关点$p_i$和$p_j$在template space下的距离
    • 不确定性大的区域 comform well to 形状之间的 structure discrepancy 结构不符
      下图展示的是形状A(表面)上的点,在形状B(表面)上找到的相关的点的不确定性;红色高不确定性,蓝色低不确定性
      https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20210104200614483.png

results

  • texture transfer
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20201222155357538.png
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20210104173728589.png
  • label transfer:可以看到对于 椅子把 这种时有时无的结构也可以handle
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20201222155611605.png

Ablation study / discussions

  • 单纯的位置修正就已经可以构成变形场;但是本篇发现,仅仅位置修正不够,加入标量修正可以:
    • ① 加入标量修正对生成所需shape有帮助
      • https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20210104165611897.png
    • ② 实验发现 加入标量修正对于学习高质量的相关性也很重要
      • Q: why ?
        试图解释:标量修正可以控制形状的一部分 特征: 膨胀结构/拓扑改变?,从而更容易学到简单、plausible的对应关系?
        • Q: 类似CGAN中,用一个随机噪声z控制一些"不想要"的特征?
        • Q: 除了标量修正这种控制"额外"/"不想要"的特征的方式以外,可否设法引入其他方式控制其他"不想要"的特征?
  • template implicit field ≠ template shape
    • template implicit field并不是template shape;甚至都不是valid SDF
    • instead,template implicit field 捕捉的是 一个category中不同物体的shape 结构
    • 在实验中,发现如果loss不合适的情况下,template implicit field degenerates to a valid shape SDF representing a certain shape, 导致重建的 精确度下降相关性降低
  • 几个training loss对结果的影响
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20210104120743115.png

implementation details

  • 网络结构
    https://longtimenohack.com/posts/paper_reading/2021cvpr_deng_deformed/image-20210104121544233.png