Brief
为了好好整理一下3D视觉在深度学习方面的过程,做好这个系列,这一篇文章是在体素(voxel)上发布比较早的文章,应该是第一篇,后续第二篇是来自princeton大学的3D shapeNets。发布在15年的视觉顶会。
这也是一篇发在15年的文章,在IEEE/RSJ,机器人方面顶会IROS。
这里是 paper
这里是 code
本文的后半部分有借助知乎该回答
Absract
- 当时的很多方法要么不在机器人领域使用3D数据,要么就是处理不了这么大量的点云数据。
- 我们提出的voxnet是利用3D CNN来对被占用的网格的体素进行处理,我们的算法超过了 the state of art并且可以每秒对几百个实例进行labeling。
Introduction
- 目前的点云数据大都是用来避障和地图构建,很少用于语义分析的。就算是传统的语义分割,也是先进行手工特征提取,然后采用一些off-the-shelf(现成的),类似SVM的分类器来处理。
- 很自然的大家可以从2D CNN联想到3DCNN,但就是因为volumetric会导致计算量究极大,使得3D卷积网路实现成为night mare。
- 本文的主要贡献就是Voxnet,可以快速而且准确的对3D数据进行分类,在三种不同类型的数据:Lidar,RGBD,CAD模型的混合任务中取得了最好的效果。
Related
Object Recognition with point cloud data
- 一个pipeline结合各种手工特征,再采用一个机器学习分类器。
- 我们的网络从初始的体素信息中提取特征和学习分类,这比点云好在它将free space和 unknown space分开来。此外,基于点云的网络一般需要领域信息,这在大规模的点云网络中是不实用的。
2.5D 卷积神经网络
- 很多方法仅仅是把Depth信息当做一个新的一维信息,这并不能很好的利用几何信息,并且对于不同视角下的特征也不好整合。
- 我们的工作与这些不同之处在于我们采用完全体素表示法,从而使环境更富有,更具辨别力。
3D CNN
- 发表在13年的TPAMI上的3DD CNN在视频处理中获得了很大成功,其中time充当了第三个维度。
- 在RGBD上,也可以采用3D CNN,已有文献这么做了,我们只是会和它做比较。
Apporach
我们的算法的输入是点云段,如果执行检测,它可以源自诸如[12],[29]的分割方法或“滑动框”。我们的任务就是对这个点云段最分类。我们网络主要由两部分组成,一个代表空间占用估计的体素网络和一个用于对该被占用的网格进行分类的CNN。
岂不是要做预处理?
Volumentric Occupancy Grid
占用网格([30],[31])将环境状态表示为随机变量的3D网格(每个对应于体素),并根据传入的传感器数据和先验知识保持其占用率的概率估计。两个使用占用网格的理由:
- 它们允许我们从range测量中有效地估计free,occupancy和unknown space,即使对于来自不同视点和时刻的测量也是如此
- 它们可以通过简单有效的数据结构进行存储和操作。
Reference frame and resolution
- 对于yaw轴旋转的检测是非常重要的,分辨率的表示提出了两个策略。针对雷达数据,我们使用固定的空间分辨率(0.10.10.1);对于其他数据集,选择分辨率使得感兴趣的对象占据24×24×24体素的子体积。在所有实验中,我们固定使用323232个体素
Occupancy models(占有率模型)
- Binary occupancy grid
- Density grid 在该模型中,假设每个体素具有连续的密度,与体素阻塞传感器光束的概率相对应。
- Hit grid 该模型只考虑命中,忽略了未知空间和*空间的区别。虽然这个模型丢弃了一些潜在的有价值的信息,但是在我们的实验中,它表现得出奇的好。此外,它不需要光线跟踪,这在计算受限的情况下是有用的.
4 3D Convolutional Network Layers 3D CNN模型
CNN的优点在于可以明确的利用问题的空间结构,我们期望输入级的滤波器可以在不同方向上编码空间结构,比如平面和角。
- 输入层:每个网格单元的值根据占用模型公式进行更新
- 卷积层:接收的四个维度分别是三维空间加一个特征映射。该层生成feature map。
- 池化层。
- FC。