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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值