赞
踩
在3D点云目标检测领域,对于数据输入的处理一般有三种:
原生的点云数据有两大特点:
1. 置换不变性(transformation invariance):任意交换各点的位置,不影响对形状的表达
2. 旋转不变性:所有的点做相同的变换(旋转平移),不影响对形状的表达
PointNet的思路就是利用上述两个特点。
PointNet有分类和分割两种网络,分类网络基本思想如下:
分割是在分类的基础上做些演绎,最终输出N×M的矩阵,M代表分类,也就是说给每个点都进行了分类。
VoxelNet关注的更多是点云的稀疏性和密度不均衡性,虽然作为声称直接输入点云数据,但是看起来还是将点云进行了规范化,即投射到3D空间。
该算法发布于PointNet面世后两月,作者称赞了PointNet取得的成绩,然后反手就是一句我才是“state of the art”。具体来说,作者认为PointNet有两个问题:
所以作者的主要目的就是要让自己的网络能够容纳更大规模的输入以及能够实现目标检测(带航向角的3D框,7个自由度)
VoxelNet网络整体分为三部分:
VFE的过程图中描述的很清楚,输入、全连接增加每个点的维度、最大池化提取这一堆点的特征(1维),在分别拼接到前面每个点的特征中,有点skip-connect的意思。经过一个VFE,输出了point-wise的feature,注意在整个网络中VFE是叠加的,并且每个VFE的参数不一样,详见论文。
4. 在经过一些列的VFE层之后,在接上全连接层和池化层,输出一个一维的特征,这个特征就可以代表所在的这个voxel了,所以这个特征也叫voxel-wise feature,而没有point的voxel则不存在这个特征。作者在这里使用了稀疏张量,不必记录这些为0的voxel。
所谓稀疏张量,是指记录张量尺寸、非零的值及其索引,这样可以节省内存和BP算法的计算开销
5. 所有的voxel经过VFE后最终输出的是一个128 × 10 × 400 × 352的张量,也就是说每个voxel里的特征都是128维的。再次强调,这是一个稀疏张量sparse tensor
这个阶段比较简单,对128 × 10 × 400 × 352的张量做3次3D卷积,聚合各个voxel的特征(可以看到,从最开始的point-wise、voxel-wise再到现在聚合voxels特征,该网络对特征的提取层层递进,很是精妙啊!)。
这3次卷积之后输出的张量是64 × 2 × 400 × 352,接着压缩一个维度,最终输出3D的张量:128 × 400 × 352,事实上从这个张量的形状可以看到,这就相当于是提取了俯视图的特征,然而和图片不同的是:图片是直接降维,在Z方向把3D点云拍扁,而作者这样做对每个“俯视图”中的点都保留了128维的信息!
RPN层,作者说参考的是Faster-RCNN,不过看起来更像是YOLO,因为这里输出的直接就是最后的预测结果了,而不是推荐区域。
上一层输出了3D张量,在本阶段就可以使用2D卷积了,基本上就是图像卷积里的老套路了,卷积、上采样、降采样、skip-connect等等。图中表达的很清楚,值得注意的是这个阶段缩小尺寸也是通过stride=2实现的,感觉现在的网络更加倾向于全连接,池化用的越来越少。
最重要的是输出,这层的输出就是最终结果了。作者设计了两个分支,一边分类,一边回归(毫无新意啊!)。
分类方面,输出2个维度,对应两个anchor,或者说每个网格预测两个结果。
回归方面,输出14个维度,也是对应两个anchor,而每组结果对应的是7个自由度。
顺便提一下损失函数,分类交叉熵损失,回归L1-smooth(毫无新意+1)
按照作者描述,CenterPoint就是将VoxelNet的RPN层换成了CenterNet。(我真是醉了,这都能水论文)
从两个方面简单说一下两者区别:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。