作者丨Qingyong Hu
论文链接:https://arxiv.org/abs/2009.03137
Project Page:https://github.com/QingyongHu/SensatUrban
数据集网站:http://point-cloud-analysis.cs.ox.ac.uk/
引言
大规模且具有详细标注的数据集是充分释放深度学习算法在3D场景理解领域潜力的重要前提。然而,由于数据采集和数据标注的高昂成本,当前公开可用的数据集要么仅具有有限的语义标注,要么是在相对较小的空间范围内采集得到的,这在一定程度上限制了在大场景3D点云细粒度语义理解的发展。为此,我们提出了一个城市规模的摄影测量点云数据集,其中包含三个英国城市(伯明翰,剑桥以及约克)7.6平方公里中的近30亿具有详细语义标注的点,其中每个点都被标记为13个语义类别之一。此外,我们还在数据集上对最新的算法进行了性能评估,并对结果进行了全面分析,确定了城市规模点云理解的几个关键挑战。
图1. 从英国约克市周边地区采集的城市规模的点云。该点云占地超过3平方公里,是典型的城市郊区。
图2. 我们数据集中的点云涵盖了真实城市的各种元素,例如火车站,停车场,建筑物等
图3. 我们数据集中的点云涵盖了真实城市的各种元素,例如教堂,公路,草地
表1:我们的数据集与用于3D点云分割的代表性数据集的比较。1数据集中的空间尺寸(面积/长度),2用于评估的类数和括号中标注的子类数。MLS:移动激光扫描系统,TLS:地面激光扫描系统,ALS:空中激光扫描系统。
数据采集 & 3D点云重建
考虑到通过无人机摄影测量技术相比于类似的制图技术(例如LiDAR)在成本上具有明显的优我们势,我们使用了经济高效的固定翼无人机Ebee X来采集高分辨率的航空图像序列。为了完全均匀地覆盖测量区域,所有飞行路径均以网格形式预先规划,并由飞行控制系统(e-Motion)自动执行。需要说明的是,该相机具有拍摄斜角(oblique)和天底(nadir)照片的能力,可确保正确捕获垂直表面。由于电池容量的限制,每次飞行持续40-50分钟,因此并行执行多个单独的飞行以捕获整个区域。而后,我们使用高精度机载实时Realtime Kinemtic (RTK) GNSS系统对这些多个航空图像序列进行地理位置的对应。此外,我们还安排了专业测量师配备高精度GNSS设备测量地面验证点,以评估数据的准确性和质量。最终的水平和垂直RMSE分别为±50 mm和±75 mm。我们数据的分辨率取决于输入图像的数量和3D重建设置。通常,摄影测量点云在密集图像匹配过程中非常密集,因此需要进行二次采样。在我们的数据集中,二次采样参数为2.5cm,比大多数LiDAR数据(例如DALES)的密度更高。下图展示了覆盖剑桥市所选区域的预先计划的多次飞行的路径。
对于三维点云的重建,我们直接采用了现成的软件比如Pix4D根据 Structure from Motion(SfM) 和 dense image matching,以实现从捕获的航空图像序列中重建密集和彩色的3D点云。对于伯明翰周边的市区,我们将所有捕获的连续图像输入到Pix4D,总共生成569,147,075个3D点,覆盖了1.6平方公里的面积。同样,我们为剑桥市附近的市区重建了2,278,514,725点,面积约为4.6平方公里。此外,我们在约克郡也采集了3.2平方公里内的904,155,619个点。
图4. 剑桥地区的飞行survey。我们通过所有的9个飞行计划(左图)整理在一起以覆盖图中所示区域。不同颜色的线表示无人机的不同飞行路径。圆形路径是起飞和降落的模式。
语义类别标注
对于语义类别标注,我们主要基于以下两个原则:1)每个类别都应具有清晰明确的语义,并且应符合社会或商业目的,例如资产管理,城市规划和监视。2)不同类别的几何结构或外观应有显著差异。为此,我们确定了如下十三种语义类别:
- 地面(ground)
- 植被(vegetation)
- 建筑物(building)
- 墙(wall)
- 桥梁(bridge)
- 停车场(parking)
- 铁轨(rail)
- 交通路(traffic road)
- 街道设施(street furniture)
- 汽车(car)
- 人行道(footpath)
- 自行车(bike)
- 水(water)
在标注过程中,我们直接采用现成的点云标记工具对所有的点进行标记,每个点都被标注为13个语义类别之一,所有标注都经过人工交叉检查,以确保一致性和高质量。标记整个数据集大约需要600个工作小时。下图展示了我们标注后的部分数据:
图5. 本文提出的SensatUrban数据集部分数据示意图。不同的颜色代表不同的语义标注。可以看到,我们的数据集增加了一些以往数据集中不存在的语义类别,比如桥梁,铁路,水(河流)等。
图6. SensatUrban数据集部分数据示意图。上面两行是从伯明翰采集到的点云,下面两行是从剑桥采集到的点云。
训练集/验证集/测试集统计信息分布
与DALES数据集类似,我们将每个区域的点云划分为一系列大小相似的点云块,以确保能够输入到现有的GPU中进行训练和测试。具体来说,我们将伯明翰市区的点云分为14块,并选择其中10块作为训练集,2块作为验证集,2块作为测试集。类似的,剑桥区域被分成29块,其中20块作为训练集,5块作为验证集,其余4块作为测试集。其中每个点云块约为400×400平方米。数据的具体类别分布如下图所示:
图4. SensatUrban数据集中不同语义类别的分布(对数刻度)。需要注意的是,Cambridge中没有被标记成铁轨的点。
可以看出:地面/建筑物/植被是主要的语义类别,占据了总点数的50%以上,自行车/铁轨等类别仅占据总点数的0.025%左右,这进一步表明了真实场景中不同语义类别分布极为不平衡。
Experiments
Baselines:我们选择了几种有代表性的方法作为baseline,比如:Sparseconv (Voxel-based), TagentConv (Projection-based), PointNet/PointNet++/SPGraph/KPConv/RandLA-Net (Point-based). 为确保公平,我们遵循了这些方法原始的实验设置及参数。下表展示的为定量结果:
可以看到:KPConv 取得了最高的mIoU结果,然而整体分割效果仍然远不能令人满意。例如,桥梁,铁路,街道,人行道的分割结果依然较差。此外,我们注意到几乎所有的方法都无法有效地对自行车进行分割。为此,我们进一步对城市规模点云分割中的难点和挑战进行研究。
-Data Partition
由于GPU内存的限制,处理城市规模点云的首要挑战就是对整个点云进行分块。早期的PointNet/PointNet++通常将点云划分为1m×1m的点云块。然而对于城市规模的点云,采取这种方式将会非常耗时,并且会导致场景中目标的几何形状受到影响。另一方面,如果将原始点云划分为非常大的点云块,则无法直接将大量的点输入到GPU中。为了减少每个块中的总点数,KPConv和RandLA-Net中采用了网格或随机下采样, 许多其他方法倾向于使用不同的采样和分块操作。总的来说,目前还并没有一个统一的方案或预处理步骤来实现对大规模点云数据的分块操作。基于此,为了评估不同分区方案对整体分割性能的影响,我们将分块操作分为两个步骤:1)对原始点云进行降采样。文献中有两种选择:a)网格下采样,以及b)随机下采样。两者都可以显著的减少点的总量,但是各有优点。2)将独立的点云块输入到网络中。也有两种选择:1)恒定数量输入集(constant-density input),我们通过使用预先构建的KDTree来查询中心点的固定数量的相邻点作为输入来实现。和2)恒定体积输入集(constant-volume input), ,我们首先在中心点周围裁剪固定大小的体积(例如8m×8m块),然后随机进行下(上)采样以获得输入集。而后,我们把PointNet和RandLA-Net作为baseline,评估了步骤1和步骤2的四种不同组合对整体分割性能的影响。如下所示:
从表中结果可以看出:
- 第一步使用网格下采样能得到更好的结果;
- 相比与恒定体积输入集,在恒定密度输入时基于PointNet或RandLA-Net的框架均能获得更好的分割结果;
- 总的来说,数据准备对于处理大规模城市点云确实非常重要。不同的预处理步骤带来的性能差距在10%(mIoU)以上,因此有必要进一步探索更为有效、统一的数据准备方法
-Geometry vs. Appearance
我们的数据集与现有的基于LiDAR的数据集的一个主要区别是每个3D点都具有RGB颜色信息。直觉上来说,颜色信息倾向于为网络提供更多信息,以实现更好的分割。然而,网络也可能overfit颜色信息,许多方法仅使用几何形状信息也实现了非常好的分割结果。为了进一步探索颜色信息和几何信息对分割性能的影响,我们进行了如下实验:
从实验结果可以看出:
- 输入几何坐标以及颜色信息时,PointNet/PointNet ++,KPConv和RandLA-Net均可实现更高的分割精度。这是因为如果仅提供3D坐标,许多城市中的语义类别在本质上就无法区分(例如,桥梁,水与地面);
- 对于SPGraph,由于几何分区性能主要取决于输入点云的几何坐标,因为增加RGB信息后并不会对性能有明显的提升;
-Class Imbalance
无论是否包含RGB,上述方法在不同类别之间的分割效果仍然存在明显的性能差距。例如,vegetation的分割IoU约为99%,而bike则几乎完全无法识别,这主要是由于类别不平衡所带来的问题。为了缓解此问题,常用的解决方案是使用不同的损失函数。在这里,我们以PointNet和RandLA-Net为基准,评估了五个现成的损失函数的有效性,结果如下表所示:
可以看出,使用更加有针对性的损失函数确实可以提高分割性能。mIoU分数最高可提升5%。值得注意的是,对于极富挑战性的bike类,经过wce+sqrt训练的基准RandLA-Net获得了20%以上的改进。这表明通过使用不同的损失函数可以在一定程度上缓解数据不平衡的情况。然而,这种程度的提升仍然难以令人满意,因此探索更有效的解决方案来完全解决这一挑战是一个值得去进一步研究的方向。
-Cross-City Generalization
最后,我们知道深度神经网络的一个普遍问题在于它们的泛化能力不够强。由于我们的数据集包含来自两个不同城市区域的大规模点云,这使得我们可以进一步评估现有方法的泛化能力。具体来说,我们在伯明翰数据中的训练集进行训练,并分别在伯明翰的测试集(表格上半部分)和剑桥的测试集(表格下半部分)进行了测试,结果如下表:
可以看出,当将训练后的模型直接应用于未曾见过的城市场景时,所有基线的分割性能都会大大下降。大多数方法的mIoU得分差距高达20%。有趣的是,地面和建筑等主要类别的性能下降并不严重,而铁路,街道和水等类别的下降非常明显。我们认为:
- 不均衡的语义类别分布可能是阻碍模型泛化能力的关键因素,因为模型倾向于拟合主要类别,而无法很好地学习到次要类别的鲁棒性;
- 很难将某些城市类别的形态变化从一个数据集推广到另一个数据集。
- 由于缺乏有效的数据集,这个问题并没有被广泛关注。然而,我们认为该问题具有非常重要的意义
下图我们也进一步展示了一些可视化的对比结果,可以看到,对于桥梁这种不太常见类别(下途中白色边界框标出),大部分baseline都难以取得一个比较好的效果。
最后总结一下,在本文中我们构建了一个城市规模的摄影测量点云数据集,并通过大量实验,指出了大规模三维点云语义理解中面临的问题,包括如何对大规模点云进行采样和分区,是否需要使用RGB颜色信息,类别分布不均衡以及泛化性能等。希望我们的SensatUrban数据集能进一步推进三维场景理解以及遥感等相关领域的发展。
本文仅做学术分享,如有侵权,请联系删文。
▲长按关注公众号