SqueezeSeg:利用循环CRF的卷积神经网络进行3D点云道路物体实时分割

泡泡点云时空,带你精读点云领域顶级会议文章

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

作者:Bichen Wu, Alvin Wan, Xiangyu Yue, Kurt Keutzer

来源:IEEE International Conference on Robotics and Automation (ICRA), 2018

编译:廖康

审核:郑森华

欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权

简介

SqueezeSeg利用轻量级的卷积神经网络,实现了点云中三维物体实时的语义、实例分割,并且公布了源代码,其分割结果见图一。

图一:SqueezeSeg分割结果

核心思路总结

为了便于2D卷积神经网络的处理,SqueezeSeg首先将3D点云经过球面投影得到前视图,然后使用基于SqueezeNet的卷积网络对输入图像进行特征提取与分割,最后利用CRF(Conditional Random Field)作为RNN层对分割结果进一步优化。SqueezeSeg网络架构如下图所示。

图二:SqueezeSeg网络结构

要点分析

1. 点云的预处理

由于点云的稀疏性以及不规律性,一般的2D CNN无法直接处理,因此需要事先转换成CNN-friendly的数据结构。SqueezeSeg使用球面投影,将点云转换为前视图,示意图如下:

图三:通过球面投影将点云转换为前视图

在实际操作中,采用的是KITTI里64线激光雷达数据,因此前视图的高度为64;同时受到数据集标注的影响,只考虑了90°的前视角范围并划分为512个单元格,因此前视图宽度为512;前视图为五个通道,分别是点的三维坐标(x, y, z)以及反射强度I和点到视角中心的距离R,所以处理后的图像尺寸为64 x 512 x 5.

2. 轻量级网络架构在点云中的拓展

SqueezeSeg的核心工作实际就是SqueezeNet在三维数据中的应用。整个网络结构的设计几乎没有改动,是典型的encoder-skip connection-decoder结构,如图二所示。而实际上语义分割就是对图像中每一个像素点分类的过程,因此FCN(Fully Convolutional Networks)为最好的选择。

在实际操作中,Conv1a到Fire9为特征提取阶段,注意在max pooling时,只对feature map的宽度进行下采样,因为高度相较于宽度要小得多(1/8倍),导致多次降采样后高度方向的信息丢失的更加严重。FireDeconv10到FireDeconv13逐层恢复图像的分辨率至原始尺寸大小,最后经过以softmax为激活函数的conv14,得到output probability map.

3. 弥补下采样的细节信息损失

与目标分类、检测不同的是,语义分割需要更高的精度,因此细节信息对其至关重要。然而,下采样会导致低层细节信息的丢失,进而在最终的分割结果中出现边界模糊的现象。

针对上述问题,SqueezeSeg应用CRF作为最后的RNN层,以对label map进行精炼,其结构如下图所示。

图四:CRF结构示意图

流程解析:

首先,将CNN的输出结果作为CRF的输入,根据原始点云计算两个高斯核(见下公式),其中x为点的三维坐标 ,p为点经过球面投影得到的方位角和顶角,其他参数为经验性阈值。直观来说,该高斯核衡量了两点之间特征的差异,两点之间差异越大,高斯核的值就越小,两点之间的相关性也就越小。在输入图像使用该高斯滤波器的过程称为message passing,可以初步聚合邻域点的概率。

接着,通过1x1大小的卷积核去微调每一个点的概率分布权重,这一个过程称为re-weighting and compatibilty transformation,卷积核的值是通过学习得到。

最后,以残差方式将最初的label map加到re-weighting的输出结果并用softmax归一化。

在实际操作中,整个CRF以RNN层重复循环三次,并得到最终精炼后的label map.

拓展与思考

1. 感受野与细节信息之间的权衡

如上所述,maxpooling在增大感受野的同时会丢失一些细节位置信息,这对精度要求极高的语义、实例分割任务是不可接受的。

3D点云语义分割的相关后续工作PointSeg采用了扩张卷积来保持更多的位置信息,用enlargement layersqueeze reweighting layer代替SqueezeSeg中的CRF,其网络结构如图五,具体细节可以阅读PointSeg原文。

图五:PointSeg网络结构

PointSeg的ablation study以及与SqueezeSeg的实验对比结果见下表:

2. 对位置信息丢失的思考

不论是SqueezeSeg还是PointSeg,其核心工作都主要是在恢复location information上。让我们再对encoder-skip connection-decoder这种网络结构进行深入分析,以下图中的FPN(Feature Pyramid Networks)为例。在encoder阶段,通过maxpooling来增大感受野,同时,feature map尺寸变小;在decoder阶段,通过upsampling来逐层恢复尺寸至原始大小。在这两个阶段中,相同尺寸的feature map会concatenate到一起,以结合低层细节信息高层语义信息

图六:FPN结构图

然而,在encoder中经过下采样后原图像的spatial information是逐层损失的,很多关于位置的细节信息都被丢失掉,虽然decoder中通过upsampling + conv逐层恢复feature map的尺寸,但是很多位置细节信息是很难恢复出来的,可以说encoder和decoder中两个对应尺寸大小的feature map(比如上图中encoder中第一层和decoder中最后一层)存在特征空间错位,即相同位置的细节信息并不是一一对应的。如果将这两种细节信息位置并不对齐的feature map合并到一起再进行学习,会对一些高精度的学习任务,比如语义分割,产生误导。

Abstract

In this paper, we address semantic segmentation of road-objects from 3D LiDAR point clouds. In particular, we wish to detect and categorize instances of interest, such as cars, pedestriansandcyclists. We formulate this problem as apoint- wiseclassification problem, and propose an end-to-end pipeline called SqueezeSeg based on convolutional neural networks (CNN): the CNN takes a transformed LiDAR point cloud as input and directly outputs a point-wise label map, which is then refined by a conditional random field (CRF) implemented as a recurrent layer. Instance-level labels are then obtained by conventional clustering algorithms. Our CNN model is trained on LiDAR point clouds from the KITTI dataset, and our point-wise segmentation labels are derived from 3D bounding boxes from KITTI. To obtain extra training data, we built a LiDAR simulator into Grand Theft Auto V (GTA-V), a popular video game, to synthesize large amounts of realistic training data. Our experiments show that SqueezeSeg achieves high accuracy with astonishingly fast and stable runtime (8.7 ms per frame), highly desirable for autonomous driving applications. Furthermore, additionally training on synthesized data boosts validation accuracy on real-world data. Our source code and synthesized data will be open-sourced.

如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。

有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!

泡泡论坛:http://paopaorobot.org/forums/

泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181029A083AC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券