1. 数据库和性能指标
1.1 数据库
(1)SemanticKITTI(http://www.semantic-kitti-org/)
- 将KITTI数据库中的点云序列进行标注
- 22个序列,约43000帧点云,每帧约10万个点,标注了28个语义类别
- 第一个面向自动驾驶场景并具有一定规模的3D点云语义分割数据库
- 后续增加了实例级别的标注,可以用来作为实例分割和全景分割的评测
(2)NuScenes(https://www.nuscenes.org/nuscenes#lidarseg)
- 全部1000个序列的40000个关键帧上进行了标注,每帧大约3万个点
- 标注的语义类别共有32个,其中包括23个前景类别和9个背景类别
- 没有公开的实例级标注,研究者一般会自行标注,以测试全景分割算法
1.2 性能指标
(1)语义分割任务
-
每个点的预测标签与人工标注的标签进行对比
-
每个类别统计三个指标(假设人工标注的标签为汽车):
- 若预测类别也为汽车,则当前预测像素点为汽车类别的TP(True Positive)
- 若预测类别为行人,则当前预测像素点为汽车类别的FN(False Negative),同时也为行人类别的FP(False Positive)
-
对于每个类别来说,都计算上述三个指标,然后按照如下公式计算准确率指标:mean IoU(mIoU)
1 C ∑ c = 1 C T P c T P c + F P c + F N c \frac{1}{C}\sum_{c=1}^C \frac{TP_c}{TP_c+FP_c+FN_c} C1c=1∑CTPc+FPc+FNcTPc
(2)实例分割任务
- 与物体检测类似,但是以点为单位计算Precision和Recall
- 采用Average Precision(AP)作为性能指标
2. 基于点视图的点云语义分割
(1)PointNet
- 论文:Qi et al., Pointnet: Deep learning on point sets for 3d classification and segmentation, 2017.
- 特征提取:点特征 + 全局特征
- 点特征:MLP(多个全连接层),将点特征由3维(x, y, z)提升到1024维
- 全局特征:MaxPooling得到1024维全局特征
- 语义分割:将点特征与全局特征进行拼接,使得每个点既具有局部特征也具有全局特征。然后使用MLP对每个点进行分类,从而为每个点分配一个语义标签,实现语义分割的任务。
(2)PointNet++
-
论文:Qi et al., Pointnet++: Deep hierarchical feature learning on point sets in a metric space, 2017.
-
pointnet的问题:提取到的点特征只对应当前点的信息,并没有和邻域点产生互动,因此没有局部邻域信息,造成对小物体分割效果较差
-
pointnet++的改进:用聚类生成多个点云子集,在每个子集内采用pointnet提取子集特征,并作为下一步的输入“点”。此时,点特征具有较大的感受野,包含了局部邻域内丰富的上下文信息。
-
对于语义分割任务,需要将聚类后的点集和特征映射回原始的点云。与特征提取类似,它也是一个迭代过程。
- 对于L-1层中的每个点,从L层的点中选取其k近邻,对这k近邻的点通过插值的方式得到映射后的点特征,它包含了L层中较大的局部邻域特征。
- 同时,将映射后的点特征与L-1层原始的特征进行拼接和特征提取,以作为L-1层新的点特征。此时,L-1层既包含当前层的特征,也包含上一层的邻域特征。按照这种方式逐层迭代地进行,直到映射回原始点云,最后原始点云上包含前面所有层的不同分辨率下不同感受野和不同局部邻域范围的特征。然后,在原始点云上进行逐点分类,以完成语义分割的任务。
-
PointNet++特点
- 优点:可以提取多尺度的邻域特征
- 缺点:
- 聚类算法对点云规模的可扩展性较差,只适用于小规模的点云
- 小规模室内场景:比如10米 x 10米的范围,每帧几千个点
- 大规模室外场景:比如200米 x 200米的范围,每帧约10万个点,处理时间需要几十秒
- 通过聚类提取邻域特征的方式比较简单,特征提取能力有限,无法覆盖自动驾驶场景中包含上百个物体以及复杂的背景
- 聚类算法对点云规模的可扩展性较差,只适用于小规模的点云
(3)RandLA-Net(random sampling and effective local feature aggregator)
-
论文:Hu et al., RandLA-Net: Efficient semantic segmentation of large-scale point clouds, 2020.
-
关键点:
- random sampling:使用随机采样代替聚类,降低点云密度,同时减少计算量
- local feature aggregator:局部空间编码和基于注意力机制的池化,提高局部特征提取能力
-
具体过程:将原始点云先随机采样25%,然后进行特征提取,此为一个迭代过程。按照这一方式迭代5次,得到最后的点云。
-
随机采样(Random Sampling, RS)
- 优点:计算复杂度为O(1),与点云规模有关,没有额外的内存开销
- 缺点:可能会丢弃掉有用的点,因此需要更好的局部特征提取方法,当有用点被丢弃时,可从其邻域内获取有用信息。
-
局部特征整合(Local Feature Aggregator, LFA)
包含局部空间编码(Local Spatial Encoding)和注意力池化(Attentive Pooling)两个串联模块,同时这个串联模块作为一个整体嵌入到扩张残差模块(Dilated Residual Block)中重复两次,以进行特征提取与整合,如下图所示:
-
局部空间编码:Local Spatial Encoding
-
输入为(N, 3+d)的N个点,用 p i p_i pi表示第 i i i个点的空间特征(3维坐标), f i f_i fi表示第 i i i个点的原始/中间点特征(d维)
-
对每个点执行k近邻操作,用 p i k p_i^k pik表示第 i i
-