文章目录

  • 1. 主要思想
  • 2. 具体方法
    • 2.1 数据处理方式
    • 2.2 网络架构
  • 3. 实验支撑
  • 4. 总结启示
  • 5. 相关文献

paper 原论文的链接
code: 源代码链接

paper全称:SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud

1. 主要思想

通过什么方式,解决了什么问题

当下问题的分析

传统方法: 过滤地面–>聚类其他点的实例–> 手工提取特征–>进行分类
然而存在弊端:

  • 不能很好的一般化应用
  • pipline的方式可能导致每个阶段误差累计,从而效果差
  • 许多地面消除方法依赖于RANSAC, GP-INSAC,agglomerative clustering. 这些方法都不稳定。

所以作者提出了本文的算法

基本思想:将3D点云投射到前视图上,然后再利用深度学习分割方法获取点的类别。

2. 具体方法

说明怎么解决的,具体设计是什么, 有什么启发性思考(作者的创新点)

2.1 数据处理方式

1. 映射方式: 将点的坐标系表示成球坐标的方式,用垂直角度 θ \theta θ和水平角度 Φ \Phi Φ. 如下图公式:

效果图:

  • 计算水平角度和垂直角度,垂直方向等于激光线数;水平角度范围90度,根据投射平面宽度等分。
  • 通道数[x,y,z,i,r], 其中r为 ( x 2 + y 2 + z 2 ) \sqrt(x^2+y^2+z^2) ( x2+y2+z2)深度信息
  • v2版本添加了一个mask通道,用来表示该像素中是否含有点。

2. 实际的映射

  • 激光的每个水平线束应该投射为一行,但是实际上每一水平线束实际的垂直角度是不一致的(由于车的抖动导致的),所以一束水平线束不能被投影到一行里,所以作者实际根据每一个点是那个线束发出的来进行投影的,而不是根据公式计算垂直角度进行投射的, 而KITTI数据集的排列是按照线束进行排列的,一个线束的点挨在一起。所以可以很好滴实现这个操作,(而我们的点云录制过程每个点没有线束标记,所以不能很好的投射)

3.利用3D场景构建扩增数据集
作者采用DeepGTAV(用Script Hook V as plugin),构建3D场景下的点云扫描数据。

  • 为了使得模拟场景切合KITTI,作者添加了一些噪声,使得和KITTI数据接近

2.2 网络架构

1. 整体网络结构

2. 主要firelayer模块
使用的主干网络是squeezeNet,主要模块是FireModule


3. CRF模块
该模块使用CRF进行分割校准

关键点

  • 使用SqueezeNet网络进行特征提取时,只进行横向的卷积采样; 也就是下采样的时候在宽度上进行下采样,而不在高度上。因为输入图片高度和宽度比太小,所以不在高度上采样。
  • CRF使用的是RNN方式进行模拟的, (未了解)
  • fire module结构可以学习一下。

3. 实验支撑

记录一些关键实验的结论分析,具有启发性的实验和结论

性能对比:

  • instance-level是采用传统方法DBSCAN

速度对比:

通过虚拟场景点云数据的增广效果:

4. 总结启示

针对中心思想和实验结论的总结和扩展思考
扩展思考 : 也就是用自己已有的知识或者自己的“土话”,重新理解paper(费曼学习法的精髓-便于记忆和举一反三的应用)

模型设计方面

  • 根据数据特性,只下采样宽度

应用方面:

  • 可用于障碍物检测(可能只能针对实体障碍物), 可能先对投影数据进行膨胀,将护栏这种障碍物变成密集障碍物,然后再分割。将空隙中的障碍物变成护栏的时候消除其像素特征。
  • 采用前视图识别路沿如何 (不会遮挡地面),可以达到快速的识别

5. 相关文献

主要的比较贴近的文献,关键性文献

  • DeepGTAV
  • scripthook