【学习笔记】VoxelNet

paper,code

1.1 VOXEL

  1. 设置Voxelization参数(每个voxel可以存放点的个数max_points_number,voxel长宽高的大小W,H,L)
  2. 对依次每一个点,根据其对应的坐标(x,y,z)得到该点在voxel的索引。
  3. 根据索引判断该voxel中是否已经存在max_points_number个点,如果存在,则将该点直接丢弃,如果不满足,则将该点加入到该voxel中。
  4. 计算voxel特征
    【学习笔记】VoxelNet_第1张图片

1.2 VOXEL使用MLP特征提取

  1. 根据voxel中的point特取得到voxel特征,进一步提取到更加全局的特征。
  2. 对voxel中的点采用几层全连接层将voxel中的Point信息映射到高维,最后再在每个特征维度上使用maxpooling得到voxel的特征。3DCNN是对这样一个(H,W,L,C)的四维张量做3D空间中的卷积。
  3. 经过4次步长为2的卷积,再加一次额外的高度维的步长为2的卷积后得到了中间图的三维feature map,将高度维的特征直接压缩到特征维中,变成了二维的featuremap。此后就可以采用二维RPN(区域生成网络RegionProposal Network) 网络结构对三维物体进行目标检测。

【学习笔记】VoxelNet_第2张图片

  1. 也可以采用均值特征,将voxel的point的特征(坐标+反射强度)直接取平均。

1.3 问题

  1. 卷积核为三维,参数量巨大,可能不好学习或者导致过拟合。
  2. 含有很多空的voxel,卷积过程将其特征填充为0,占显存,时间效率低。
    解决办法:稀疏卷积,只对含有点的voxel做卷积输入。
    具体:先将原始空间中的非空的voxel的空间索引记录起来,将其特征排成一列map,卷积操作通过计算索引完成,最终的结果仅在二维中通过索引计算得到。将final-feature-map通过最终的空间索引还原成voxel表达。和上面一样将H层直接压缩到特征。
    【学习笔记】VoxelNet_第3张图片
  3. backbone特征提取实际上是逐渐将H维度降低为2,最后再压缩为1,如何更好的利用点云的整体信息
  4. 空的voxel虽然对3D CNN是一种显存的损失,但维持了三维物体的几何结构,经过Backbone的CNN过程,会导致原本是空的voxel变得有信息,从而丢失了几何结构信息。
    【学习笔记】VoxelNet_第4张图片

你可能感兴趣的:(卷积,网络,深度学习,python,机器学习)