论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud

标题-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
作者-Yuan Wang1 Tianyue Shi2 Peng Yun1 Lei Tai1 Ming Liu1
摘要
PointSeg,基于球形图的实时端到端语义分割道路物体的方法。球形图是指从3维雷达点云转变成的645125并用于作为CNN的输入来预测每个点的语义。该模型基于SqueezeNet。数据集-KITTI。 在单GPU上可实现90帧每秒的基础上的高准确率。
介绍:
背景:嵌入式计算设备如Jetson TX2 和 FGPA不能提供跟工作站同样的实时计算表现,所以需要高准确率,低内存消耗,表现好的方法。
贡献:参照SqueezeSeg将SqueezeNet作为根结构。从最好的RGB语义分割方法PSPNet参考了若干想法应用到自己的网络。因为3维点云通常量大且稀疏,所以作者像SqueezeSeg将点云转变成球形图并让PointSeg采用了变形后的数据。
给SqueezeNet和SqueezeSeg扩展了新的特征提取层来提升准确率和效率。
本工作可以直接应用到自动驾驶系统。使用基本的深度学习单元课简单实现。
方法
1.球形图稀疏转稠密
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
α和β是球形图中的两个角度。Δα和Δβ是可以生成固定形状球形图的resolution。α-,β-用于设置点在2维球形图中点的坐标。对点云数据使用了公式1,2后获得一个HxWxC的数列。因为数据是从有64个垂直通道的激光雷达获得,所以H设为64.考虑到实际自动驾驶系统大部分注意力在前方视野(-45°,45°)中并离散化成512个索引,所以W设为512.C是输入的通道数。本文中将x,y,z坐标,每个点的强度(intensity)和距离论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud作为5个通道。所以变形后的数据为64x512x5.相比于采用未处理的3D点云作为输入,这样处理时间大幅降低。
2.网络结构:
主要有3个功能层(1)fire layer(from SqueezeNet)(2)squeeze reweighting layer(3)enlargement layer.如下图3:
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
1)Fire Layer:SequeezeeNet发现fire unit可以构建与AlexNet表现近似的轻量级网络。因此本文跟着SequeezeNet造特征提取层(FIre1 - Fire9)。Fire模块如下图4。作者没有实现MobileNet或者ShuffleNet,因为如果在同一个时间内对高度降低采样,这两个方法都不能在过程中根据高度宽度设置不同的stride。(Because both of them can not set different stride in height and width in the process which will influence the accuracy greatly, if we downsample the same times in height.)特征提取的过程中,作者使用左边的结构去替换常规的卷积层。fire模块包含一个压缩模块一个扩展模块。压缩模块是单个1x1的卷积层,将模型的通道数从C压缩到1/4C。扩展模块是1个1x1的卷积层和1个3x3的卷积层,帮助网络从不同大小的卷积核提取更多特征表述。使用SqueezeSeg中的F-deconv来替代deconvolutional层。
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
2)Enlargement Layer:
池化层用来扩展感受野(receptive field)并丢弃聚合上下文信息的位置信息。然而位置信息是语义分割中不可缺少的一部分。所以在PointSeg中减少了池化层的数目来保持更多的位置信息。为了解决这个问题,作者在Fire9和SR-3后使用空洞卷积层(dilated convolutional layer)来扩大感受野而不是用池化层。类似ASPP,使用不同rate的dialted convolutional layer在同一时间获得不同尺度的特征。结构如下图5。关于空洞卷积因为输入特征为64x64,所以rate设为6,9,12.
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
3)Squeeze reweighting layer:
用于获取更鲁棒和高效的特征表达。使用global average pooling层来获得squeeze global information descriptor。两个全连接层用来生成channel-wise的以依赖。
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
论文笔记-PointSeg: Real-Time Semantic Segmentation Based on 3D LiDAR Point Cloud
4)细节
考虑到输入形状为645125的情况下高度信息有限,所以只在宽度上进行下采样(downsampling),高度轴保持原来的维度。为了获得原来尺度上每个点的预测,使用1层反卷积从SR-3和EL层的输出的特征进行上采样得到feature maps。尽管EL层能够获得大的感受野,但是不能再其他层使用,因为这样会增多参数的数目。作者值在每个池化层前加入squeeze reweight layers(SR1-SR3)来帮助fire块学习更鲁棒的特征,减少内存消耗。因为EL层的特征是从不同感受野中获得的,所以作者将EL层的输出与F-deconv1后的SR层的输出结合(concatenate)。skip connections被用来融合低级别的特征和高级别的来自其他F-deconv层的特征。为了减少计算损失,这些skip使用add而不是concat.

实验
环境是1080TiGPU, 在CUDA9和CUDNN V7。
learning rate 0.001
optimizer: Adagrad
batch size: 32