【三维目标检测】Second 模型 (一)

        Second算法是一种基于三维点云的目标检测算法。Second算法采用了几乎与Voxelnet三维目标检测算法完全一致的设计思路,主要差异表现在将Voxelnet CML(Convolutional Middle Layer)卷积提取特征层改为采用三维稀疏卷积进行特征提取。因此,在理解Second算法之前,推荐先看一遍voxelnet算法,详细介绍请参考之前的博客【三维目标检测】VoxelNet(三):模型详解_Coding的叶子的博客-CSDN博客_voxelnet 点云 目标检测。

1 稀疏卷积简介

        以二维图像为例,如果图像中绝大多数像素取值都为0,那么我们可以称这个图像是稀疏的。对于三维点云,体素中很多点的取值都是空的,或者置为0,因而也是稀疏的。对于取值为0的点,在进行卷积计算时仍然是0,因而很大一部分点是不需要参与计算或占用计算图内存。因此,稀疏卷积的意义在于记录这些不为0的数据位置,然后重新构建一个计算方式,使得仅仅不为0的点参与卷积计算,从而节省了计算资源并提高了计算速度。

        本质上,我们仍然可以把稀疏卷积当作普通卷积来看,只是稀疏卷积采用了特殊的计算方法,针对稀疏数据进行了优化。因此,稀疏卷积和普通卷积一样,通常是不断地提升通道数量、特征维度和感受野,降低特征图维度。

        因此,我们可以把稀疏卷积当作普通卷积去理解,如果需要深入理解稀疏卷积,可以参考其他资料,或者查看其实现源码。

2 源码与输入数据

        源码采用的是mmdetection3d框架中的second模型。mmdetection3d安装和调试验证可参考本博客之前的专栏,里面有详细介绍。

        数据采用的是kitti,为了快速进行算法调试、训练、评估和验证,以及快速下载,我制作了一个mini kitti数据集,数据集的文件目录结构与完整KITTI数据集保持一致。其中,小型的KITTI数据集,即 mini kitti保存了20个训练样本和5个测试样本。下载地址为:minikitti数据集-深度学习文档类资源-CSDN下载。

        下载的数据包含4个部分,即激光雷达数据velodyne、图像数据image_2、校准数据calib和标注数据label_2。如果需要对应的ImageSets,请下载:train_val_testforminikitti-深度学习文档类资源-CSDN下载,将下载的文件夹重名为ImageSets即可。

        关于KITTI各个部分的介绍请分别参考以下内容:

KITTI数据集简介(一) — 激光雷达数据_Coding的叶子的博客-CSDN博客_雷达数据集

KITTI数据集简介(二) — 标注数据label_2_Coding的叶子的博客-CSDN博客_kitti数据集标注

KITTI数据集简介(三) — 图像数据image_2_Coding的叶子的博客-CSDN博客

KITTI数据集简介(四) — 图像数据calib_Coding的叶子的博客-CSDN博客

        数据预处理部分可以参考Voxelnet的数据处理方式加以理解:【三维目标检测】VoxelNet(二):数据处理_Coding的叶子的博客-CSDN博客。

3 模型结构、推理过程

        模型详细结构及推理过程请参考下一篇博客:【三维目标检测】Second 模型 (二)_Coding的叶子的博客-CSDN博客。

4 【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_三维点云深度学习

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

你可能感兴趣的:(三维点云,python,深度学习,second,second算法,voxelnet,三维目标检测,智能驾驶)