详解DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation

该博客介绍了DeepSDF方法,通过学习连续的Signed Distance Function(SDF)来表示3D形状。SDF用于判断点是否在形状内部、边界上或外部。损失函数采用L1距离,训练过程中使用标准正态分布初始化形状编码,并通过优化后验概率最大化进行学习。在推断时,模型寻找与输入点集最匹配的形状编码。尽管这种方法能处理任意大小和分布的SDF样本,但在预测阶段的效率较低,因为它包含了求解最佳编码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Reference: Park J J, Florence P, Straub J, et al. Deepsdf: Learning continuous signed distance functions for shape representation[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 165-174.

  • Key idea: 让decoder学习函数SDF,如果点x在图形内,则SDF(x)<0;在边界上,SDF(x)=0;在图形外,SDF(x)>0

  • loss function for learning SDF:L1距离

    L(fθ(x),s)=∣clamp⁡(fθ(x),δ)−clamp⁡(s,δ)∣\mathcal{L}\left(f_{\theta}(\boldsymbol{x}), s\right)=\left|\operatorname{clamp}\left(f_{\theta}(\boldsymbol{x}), \delta\right)-\operatorname{clamp}(s, \delta)\right|L(fθ(x),s)=clamp(fθ(x),δ)clamp(s,δ),较小的 δ\deltaδ 使得网络更注重于物体表面的细节

  • 上述方法只能让网络学习到一个图形的SDF,为了让网络可用于多个图形,在输入中加入图形的编码(Learning the Latent Space of Shapes),即下图中的code,作为decoder的输入的一部分,让decoder知道当前输入了什么形状

在这里插入图片描述

  • 此时decoder的数学表示变为:

    fθ(zi,x)≈SDFi(x)f_{\theta}\left(\boldsymbol{z}_{i}, \boldsymbol{x}\right) \approx S D F^{i}(\boldsymbol{x})fθ(zi,x)SDFi(x)

    ziz_izi 是当前形状的编码,x是位置坐标

  • 因此,在原有模型的基础上,z成为了另一个需要学习得到的参数。最直觉的做法是使用一个AE模型,但是作者指出:1)训练一个encoder需要消耗大量的资源;2)对于不同的3d输入(points, mesh, etc.),都需要不同的的encoder。所以提出了一种只用decoder的模型(auto-decoder 自动解码机)。

  • 得到code ziz_izi 的方法

    • Notations: Dataset contains NNN shapes, 对于每个shape,都有一个对应的SDF,因此将SDF表示为 SDFi=1iNS D F_{i=1}^{i^{N}}SDFi=1iN 。每个图形都包含 KKK 个点,每个点可以表示为一个坐标和sdf值的元组,即 Xi={(xj,sj):sj=SDFi(xj)}X_{i}=\left\{\left(\boldsymbol{x}_{j}, s_{j}\right): s_{j}=S D F^{i}\left(\boldsymbol{x}_{j}\right)\right\}Xi={(xj,sj):sj=SDFi(xj)}

    • 假设先验概率 p(zi)p(z_i)p(zi) 是一个标准正态分布,均值为0,方差为 σI\sigma IσI。先随便给一个,后期再学习。论文中使用的参数为 N(0,0.012)\mathcal{N}\left(0,0.01^{2}\right)N(0,0.012)。(不太懂为啥要这么做,可能是作者受到VAE的启发,loss中方差的作用仅仅体现在限制z的二范数不能太大)

    • Loss for training: 后验概率可以表示为 pθ(zi∣Xi)=p(zi)∏(xj,sj)∈Xipθ(sj∣zi;xj)p_{\theta}\left(\boldsymbol{z}_{i} \mid X_{i}\right)=p\left(\boldsymbol{z}_{i}\right) \prod_{\left(\boldsymbol{x}_{j}, \boldsymbol{s}_{j}\right) \in X_{i}} p_{\theta}\left(\boldsymbol{s}_{j} \mid z_{i} ; \boldsymbol{x}_{j}\right)pθ(ziXi)=p(zi)(xj,sj)Xipθ(sjzi;xj)

    • 需要最大化后验概率,为了简化计算取对数,即

      arg⁡max⁡θ,{zi}i=1N∑i=1Nlog⁡(p(zi))+∑j=1Klog(pθ(sj∣zi;xj) \underset{\theta,\left\{\boldsymbol{z}_{i}\right\}_{i=1}^{N}}{\arg \max } \sum_{i=1}^{N} \log(p(z_i)) + \sum_{j=1}^{K} log(p_{\theta}\left(\boldsymbol{s}_{j} \mid z_{i} ; \boldsymbol{x}_{j}\right) θ,{zi}i=1Nargmaxi=1Nlog(p(zi))+j=1Klog(pθ(sjzi;xj)

      • log⁡(p(zi))=log⁡(12πσ)+(−∥zi∥222σ2)\log(p(z_i))=\log (\frac{1}{\sqrt{2\pi}\sigma})+(-\frac{\left\|\boldsymbol{z}_{i}\right\|_{2}^{2}}{2\sigma ^2})log(p(zi))=log(2πσ1)+(2σ2zi22),当 σ\sigmaσ 的值很小时,log⁡(12πσ)\log (\frac{1}{\sqrt{2\pi}\sigma})log(2πσ1) 的值太大,不利于学习,直接忽略。系数 12\frac{1}{2}21 也可以忽略。

      • log(pθ(sj∣zi;xj)=−L(fθ(zi,xi),si)log(p_{\theta}\left(\boldsymbol{s}_{j} \mid z_{i} ; \boldsymbol{x}_{j}\right)=-\mathcal{L}\left(f_{\theta}(\boldsymbol{z_i,x_i}), s_i\right)log(pθ(sjzi;xj)=L(fθ(zi,xi),si)

      • 因此,loss function可以变形为

        arg⁡min⁡θ,{zi}i=1N∑i=1N(∑j=1KL(fθ(zi,xj),sj)+1σ2∥zi∥22) \underset{\theta,\left\{\boldsymbol{z}_{i}\right\}_{i=1}^{N}}{\arg \min } \sum_{i=1}^{N}\left(\sum_{j=1}^{K} \mathcal{L}\left(f_{\theta}\left(\boldsymbol{z}_{i}, \boldsymbol{x}_{j}\right), s_{j}\right)+\frac{1}{\sigma^{2}}\left\|\boldsymbol{z}_{i}\right\|_{2}^{2}\right) θ,{zi}i=1Nargmini=1N(j=1KL(fθ(zi,xj),sj)+σ21zi22)

  • 在Inference时,ziz_izi 还需要经过计算才能得到(在训练后,固定网络参数 θ\thetaθ)。因为这是一个补全任务,所以输入为已知点,求基于已知点最相似的shape code:

    z^=arg⁡min⁡z∑(xj,sj)∈XL(fθ(z,xj),sj)+1σ2∥z∥22. \hat{\boldsymbol{z}}=\underset{\boldsymbol{z}}{\arg \min } \sum_{\left(\boldsymbol{x}_{j}, \boldsymbol{s}_{j}\right) \in X} \mathcal{L}\left(f_{\theta}\left(\boldsymbol{z}, \boldsymbol{x}_{j}\right), s_{j}\right)+\frac{1}{\sigma^{2}}\|\boldsymbol{z}\|_{2}^{2} . z^=zargmin(xj,sj)XL(fθ(z,xj),sj)+σ21z22.

  • 这个模型的优点:valid for SDF samples X of arbitrary size and distribution

  • 缺点: 在预测的过程中还包含一个求z的过程,比端到端的模型速度慢。

  • 最终模型:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值