NeuralODF: Learning Omnidirectional Distance Fields for 3D Shape Representation

定义:Neural Omnidirectional Distance Fields,a new shape representation encodes  geometry by storing the depth to the object’s surface from any 3D position in any viewing direction.

                       一种通用的3D表达方式,可以生成mesh,点云,深度图

 SDF/UDF是带有表面法向约束的ODF,ODF是可以用来表示SDF、UDF的,如下图所示

总体架构:

 总体架构和deepsdf很相似,输入与nerf的相同(x,y,z,\omega ,\vartheta),输出(光沿发射角度的距离dp:是否占用(0或1)),训练过程中会像deepsdf一样每一个instance 训练一个latent code,网络总共8层,前两层输出p,最后一层输出d,这是为了把参数空间留给更复杂的深度估计,仿照deepsdf,同一类物体可以共享一个网络参数,inference的时候只需要优化latent code的参数即可,latent code默认是一个高斯分布。(NeuralODF can be used for both overfitting a single shape and generalizing to a category of shapes.

Loss:

第一个就是预测depth和gt depth的均方差,第二个就是一个二分类的cross-entropy loss,第三个是因为latent code是一个高斯分布,取最小化负对数似然以后就是这个公式

数据增强:

这个部分应该没什么解释的,基本是一些常规操作,就不贴文字了

Recursive inference:

 

 算法2 ,其实就类似于TSDF,加了一个深度限制,在算法3的recursive inference过程中,为了避免学到的噪声带来的影响,沿着梯度下降的方向多次迭代得到一个较好的结果(如10~17行所示)。

 Jumping cube 算法:

空间按照一定的分辨率划分之后,譬如,右图1.红色的栅格沿着z方向,位置和角度输入网络inference,一旦这个栅格沿着z方向上对应的深度是占用的,那么当前栅格到占用栅格之间的栅格推理的信息就可以直接按照线性比例输出了,不需要都inference一遍了,节省计算资源。

生成三角面片的时候,根据cube的边(12条)与物体表面的相交情况来生成面片,正常应该是2^{12}种情况,考虑旋转以后,就简化为218种情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值