总结:
- 工作只基于激光点云,没有手工提取特征的过程(映射到鸟瞰图)
- 关于平面检测、立体检测的论文已经看了一些了,发现网络设计的基本模式都是 提特征+中间网络(融合) + 输出score map 和 regression map. 框架大同小异,差别(或者说创新点)在于训练数据和目标框的编码方式上。比如本文将分布极度不均匀的点云数据体素化然后以体素为粒度将训练数据编码为特征向量输入到网络中。以及,在预测目标框位置时,采用“残差向量”来表示目标框与预测值之间的偏差(和faster rcnn 预测offset有点像,但是不清楚有没有进行归一化?VoxelNet 进行了归一化),此方法也出现在pointRCNN中。
- VFElayers那部分有些地方没看明白,有时间补上。
网络结构:
- 特征提取网络
- 卷积中间层
- RPN 网络
特征提取网络:

voxel:
首先将点云空间用体素分割开来
grouping:
按照体素将点云分组,由于点云的分布极度不均匀,体素间所含的点云数目差别很大
random sampling:
对于所含点云数目多于T的体素,使用随机采样保留体素内的T个点。(减少计算量,缓解体素之间点云数目的不平衡)
体素特征编码 (Stacked Voxel Feature Encoding ,VFE layers)
对一个体素V,其包含t个点(xi,yi,zi,ri),i = 1,2,…,t(坐标xyz,接收强度r)
首先计算所有点的中心,记为 (vx,vy,vz).
求出所有点相对该中心点的相对坐标,得到体素特征V_in = {pi = (xi,yi,zi,ri,xi−vx,yi−vy,zi−vz)}i=1…t.
将体素特征送入全连接网络:linear + BN + ReLU ,得到point-wise feature fi, 再将其element-wise MaxPooling,得到local feature f,最终的特征表达为f_out = [fi,f]
所有体素做相同处理,得到特征集合V_out = {f_out}_i,i = 1,2,…t
注意FCN的参数对所有非空体素是共享的

上图为VFE_1 层。将VFE_n 层的输出送入全连接层,element-wiseMaxpool,得到voxel-wise feature.
稀疏张量表达
得到的voxel-wise feature 用一个4D 张量表示。
90%的体素都是空的,以上流程只对非空体素操作,因此可以过滤掉大部分体素,减少计算量
卷积中间层
conv + bn + ReLU 的序列组合
RPN网络
输入:卷积中间层的输出
网络结构:三个全卷积块然后反卷积,将中间层特征concate然后卷积,输出score map 和regression map。每个全卷积块的第一层stride=2,降采样。后面的卷积层stride=1. 每层卷积层后面都有BN和ReLU

Loss 函数
GT box 编码方式: 
与GT box的正样本匹配的anchor : 
第i个GT box 与对应anchor之间的残差向量 u_i = (∆x, ∆y, ∆z,∆l, ∆w, ∆h,∆θ)

最后的Loss函数为: 
softmax + smooth L1
GPU 优化:
提出的方法可以将点云转换为密集向量,使得在体素上的VFE 层操作可以并行运行

- 先对所有点云进行随机采样
- 对每一个点,检查是否有所在的体素,如果没有就初始化一个新的体素,如果有检查该体素内的点数是否大于阈值,大于就忽略,小于就加入该体素中。
最终得到 体素buffer,输入到stacked VFE中。
训练
全是超参,用的时候再看。
数据扩增:
4000个点云数据,重新训练网路肯定会过拟合。
扩增的数据实时生成,不需要存储在磁盘。
本文深入解析一种基于激光雷达点云的目标检测网络,重点介绍了网络如何通过体素化处理不均匀点云数据,实现特征提取与目标框预测。网络采用特征编码、卷积中间层及RPN网络结构,创新地利用残差向量表示目标框偏差,有效提升检测精度。
3667

被折叠的 条评论
为什么被折叠?



