每周总结(五)

2020年第43周学习小结:

本文为10月19日~10月25日的学习小结。
本周读了一篇关于三维重建的论文:BSP-Net: Generating Compact Meshes via Binary Space Partitioning 。初次接触重建相关的论文,很多基本原理还不清楚。

三维重建

目前主要针对点云,体素与隐函数来构建开发深度神经网络,用于三维形状的分析与生成。
在重建中,三维图形的形状有以下几种常用的表示方式:

  • 点云(Point Cloud)
    由于点云的稀疏性,用点云表示三维形状的视觉质量较差。
  • 体素(Voxel)
    体素指体积像素(volume pixel),类似二维图像是由一个个像素点组成,三维形状可以由一个个立方体(即体素)拼成。由于计算成本的限制,通常由体素实现的三维重建结果的分辨率较低。
  • 网格(Mesh)
    多边形网格(Polygon mesh)包含顶点与点之间的连线,比如三个点以及他们间的连线就组成了一片三角形。由网格表示的三维形状表面通常由大量的小三角形拼接而成。

多边形网格由于其中的三角形排列不均匀,分布不规则,难以直接应用常规的卷积与池化操作,但是相比前两种方式又能实现更好的重建结果。因此为了得到较好的结果,一些基于体素及点云的方法往往在后处理的步骤中将输出结果转换为Mesh形式(MarchingCubes就是一种常见的方法,后面会解释其基本原理)

生成模型

以下为几种三维重建中常见的生成网络类型:

  • 网格模型
    网格模型(Grid models)使用立方体网格的组合来近似目标形状(类似体素),分辨率低且存储开销大,使用八叉树等空间划分法可以改善部分问题。
  • 表面模型
    表面模型的原理是通过判断三维形状内部空间与外部空间的边界情况来得到形状的表面,一般这种方式难以保证水密性,且由于计算开销大,难以扩展至更大的规模。
  • 隐式模型
    前面两种方法都是对目标进行采样来得到近似结果,而隐式模型将目标建模为隐式函数,但是在预测生成形状时仍然要计算形状的边界。

论文阅读 BSP-Net: Generating Compact Meshes via Binary Space Partitioning

前面讲到的几种方法都是将网络中生成的点云,体素,隐函数等通过Marching Cubes算法转换为Mesh形式,而文章中设计了一种网络可以直接输出简洁的多边形网格,他们的区别如下:
Mesh表示
可以看到右图中由MC算法拟合得到的物体表面由大量的三角形拼接而成,顶点数量繁多且拟合精度较差。而左图是BSP-Net的输出结果,Mesh中包含的多边形数量很少,表示清晰简洁。

基本原理

BSP指的是二叉空间分割法,由BSP进行空间划分得到一系列子空间,通过组合这些子控件来生成对应的三维形状。
BSP-Net学习隐式函数,输入为N个点的坐标以及一个形状特征向量,输出指示了每个点在形状内部或外部的情况。下图在二维情况下解释了隐函数的构造过程:
BSP树神经元
对应三维空间的构造同理:由一系列对空间进行划分的平面(叶子节点:平面p)进行组合连接(二进制权重T)得到数个凸集C(即三维空间中的凸多面体),再由这些凸集组合为目标形状S*。

Marching Cubes算法

假设需要用Mesh来表示一个三维形状,网络已经输出了目标形状的体素形式,那么可以使用Marching Cubes算法来将体素表示的形状转换为Mesh形式。该算法能够用一片片小三角形来拟合目标形状的表面。
Marching Cubes算法可以从三维离散数据中提取等值面(用于拟合物体表面)。
体元的结构如下图中的立方体:由8个相邻体素组成,体元的8个顶点为体素,每个体素被8个体元共享。根据生成的体素与目标形状的关系对其进行标记,在形状内记为实体素,形状之外的体素记为虚体素。
一个体元根据其体素的分布情况总共有2^8=256种分布。体元全为实点说明该体元为目标形状的内部,体元全为虚点说明该体元在形状之外,而有实有虚说明该体元包含物体与背景之间的边界,即等值面(形状表面)。
MC算法使用小三角形面来拟合实点与虚点之间的等值面,从而实现拟合形状表面。下图中为15种基本等值面表示形式:
在这里插入图片描述
将体元中的体素按顺序编码,对应的,它的边界分布情况也可以用边表示并编码,因此通过查询体元的分布情况就能直接得到这个体元的等值面结果,最终将点云体素化表示后可以用这种方式拟合出点云中物体的表面,即由一片片小三角形拼接得到的表面。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值