目录

目录

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 \(\{\alpha_j\}\)\(\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{\{\alpha_j\}, \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=\{1,2,5\}, w_3=\{1{\rm e}2, 5{\rm e}1\}, 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