0.摘要
随着最近城市测绘和自动驾驶技术的发展,激光雷达扫描仪和彩色相机从地面平台收集的原始3D数据呈爆炸式增长。然而,由于标注成本较高,地面真实三维语义分割标注在数量和地理多样性方面都受到限制,且难以在传感器之间传递。相比之下,具有ground-truth语义分割的大型图像集合很容易用于不同的场景集。在本文中,我们研究了如何只使用那些标记的2D图像集合来监督训练3D语义分割模型。我们的方法是从使用多视图融合的2D语义图像分割得到的伪标签中训练一个3D模型。我们用这种方法解决了几个新问题,包括如何选择可信的伪标签,如何采样具有罕见对象类别的3D场景,以及如何在训练期间从2D图像中分离输入特征和伪标签。在5大洲20个城市的激光雷达和图像采集的新城市数据集上进行的实验中,所提出的网络结构2D3DNet的性能显著优于基线(+6.2-11.4 mIoU)。
1.引言
三维场景的语义分割是计算机视觉的一项基本任务,在语义映射、物流规划、增强现实等多个领域都有应用。在这些应用中,输入的数据通常是一系列从地面平台获取的激光扫描和彩色图像,任务是预测每个3D点的类别标签(图1)。在这项工作中,我们的目标是:可以推广到世界上任何地方的任何传感器捕获的真实世界数据。
这项任务是具有挑战性的,部分原因是难以获得具有密集3D语义标注的训练数据集。在过去的几年中,已经发布了几个户外场景的3D语义分割基准[7,10,31,67,37,73]。然而,它们都包含了在世界上独一无二的地方用独特的激光雷达传感器配置捕获的数据。因此,对这些数据集中的一个进行训练,然后对另一个进行推断,效果很差,因为模型适合特定的采样模式和训练数据的独特内容(见附录C)。虽然可以尝试无监督的领域适应,但推广到新的激光雷达传感器配置是出了名的困难,而SOTA领域自适应方法对于三维点云的语义分割没有竞争力[92]。(领域适应可以参考xDUMA :论文阅读:xMUDA: Cross-Modal Unsupervised Domain Adaptationfor 3D Semantic Segmentation_shiyueyueya的博客-CSDN博客)
在这项工作中,我们的目标是一种3D语义分割方法,可以在世界上任何地方的任何激光雷达传感器捕获的数据,即使在没有3D语义注释可用的地方。这种关注的动机是世界测绘组织的需求,这些组织通过各种传感器不断地从全球各地收集大量未标记的3D激光雷达和图像数据,但没有地面真实的3D注释。
我们的解决方案是利用带标签的2D图像集合。有许多具有每像素语义标签的2D图像数据集[19,55],其中一些数据集非常庞大且多样,图像来自世界各地[64]。在这些数据集上训练的监督2D模型已被证明可以很好地泛化来自不同设置[53]的图像。我们的方法是使用这些训练过的2D模型来产生伪标签来训练3D模型。通过这种方法,我们可以为每个3D数据集单独训练一个3D语义分割模型,而不需要任何3D注释。
我们的网络架构,我们称之为2D3DNet,如图2所示。对于未标记训练集中的每个3D场景,我们首先在每个图像上运行一个预先训练的2D模型,为每个像素生成一个语义标签。然后,对于每个3D点,我们将其反向投影到每个图像中,以产生一组加权的选票,这些选票经过统计产生特征和伪标签。最后,我们训练了一个三维模型,该模型接受带有特征的三维点,并使用伪标签的监督输出语义标签。在测试时,我们运行2D模型来生成特征(可选),然后运行3D模型来预测最终的3D语义分割。
图2:我们的方法由三个阶段组成。首先,我们在输入的RGB图像上运行一个预先训练好的二维分割网络。其次,我们将图像聚合成密集的、有噪声的分割和稀疏的、干净的分割。第三,将密集分割传递到三维稀疏体素卷积网络,并在稀疏位置应用标准softmax交叉熵损失。
尽管这种基本方法解决了主要问题(如何用2D监督3D),但它也存在一些问题。首先,伪标签可能非常嘈杂,部分原因是2D模型产生的错误,部分原因是2D- 3D对应的错误。仅仅从相应的2D像素预测中提取出3D模型是不够的(见章节5.1)。其次,训练一个3D网络,从2D图像中提取特征,并预测来自相同图像的伪标签,可以创建一种阻碍学习的相关性。当然,来自2D图像的特征对于执行3D语义分割是至关重要的,因为许多类在图像中的比点云更容易区分(参见附录中的表7)。最后,由于不需要地面真实的3D注释,潜在的训练数据集是巨大的,这就提出了如何对训练数据进行采样的有趣问题。
我们已经通过创建可信的稀疏伪标签、防止特性耦合和优化我们的数据集来解决这些问题。结果是一个可推广的3D模型,仅从未配对的2D图像进行监督。我们在一个包含25万场景的未标记数据集上训练模型,并在五大洲20个城市的不同场景集上测试它。这种方法比基线提高了6.2-11.4 mIoU,在减少对3D标注的依赖的同时,与nuScenes lidarseg基准上的最新方法相比具有竞争力。
2.相关工作
三维语义分割:许多研究人员对三维语义分割进行了研究[11,29,56,20,62,95]。对于户外场景,早期的工作主要集中在分别标记地形[58,82,88]、道路[18,34,41,93,97]、建筑物[8,12,24,51,65]、树木[87,91]和独立物体[27]。最近的研究主要集中在三维网络架构上,从三维点云[86,69,70,71,76,80,38]、网格[33,39]、体素[78]、八叉树[72]和稀疏网格[16,17,28,32]中提取特征。然而,所有这些方法都需要昂贵的带标签的3D数据进行训练。
三维语义分割数据集:在过去的几年里,一些数据集已经发布了地面真实的3D语义分割标签。例如Paris-Lille3D[73](法国两个城市的2公里),SemanticKITTI [7] (Karlsruhe附近40公里),Pandaset[37](旧金山附近的几个序列),和NuScenes Lidarseg[10](波士顿的一个社区和新加坡的三个社区的1000个场景)。这些数据集缺乏多样性,大多数都覆盖一两个小区域。此外,它们都是用不同的激光雷达配置捕获的,这使得跨数据集训练和领域适应困难[1,3,44,43,90]。相比之下,带标签的二维数据集具有很大的多样性。例如,Mapillary vista已经标记了来自六个大洲的25,000个场景的图像[64]。我们利用图像数据集的大小和多样性来训练可推广的3D模型。
多视图融合。之前的方法已经探索了利用加权平均[36,50,84,5]、CRFs[60]、标签扩散[59]和贝叶斯融合等方法将二维图像语义特征聚合到三维点上[57,84,94]。然而,这些之前的作品没有在3D领域提取任何特征,因此在识别具有独特3D形状的物体时表现不佳。此外,他们不能产生一个训练好的3D模型,可以应用于新场景。
混合2D-3D卷积。现有的一些方法包括对二维图像特征进行多视图融合后进行三维卷积[42,22,52,85]。这些方法遵循与我们相同的基本方法。然而,它们并没有解决我们工作的核心问题。它们需要完全的3D监督,假设2D和3D之间有良好的对应关系,并且只考虑具有小场景[52]、室内设置[22,42]或前景对象[85]的数据集。这些方法不能推广或扩展到世界上任何地方的户外场景。
跨模式监督。这项工作属于跨模态监督领域,通过通信使用一个模态的信息来训练另一个模态的模型。这种方法的另一个例子是在视频领域,时间同步提供了音频和可视信号之间的对应,例如[66,96,49,25,6,23,47,4]或文本,语音和可视信号,例如[63]。还有一些方法可以将监督或信息从图像模型转移到其他领域——深度和RGB[30,61],图像和视频[26],或图像和3D[81,45, 54]。然而,这些基于图像的传输方法依赖于精确对应的假设(例如,成对的图像)。这里,模态之间的对应只是一个稀疏的、有噪声的估计。
3.方法
我们的网络体系结构2D3DNet由三个阶段组成(图2)。它以一个预先对标记图像集合进行训练的2D语义分割模型(“2D Conv.”)和一个包含短~ 10s序列的未标记RGB图像和同时但异步捕获的激光雷达点的“场景”作为输入(图1)。
在第一阶段,它使用预训练的2D模型,为所有图像像素创建2D分割预测。
在第二阶段,该算法利用多视图融合,通过对相应像素的标签进行反向投影和投票,对尽可能多的3D点做出最佳猜测的语义标签。
第三阶段,将聚合的密集3D标签转换为3D点的输入特征,并通过稀疏3D卷积网络(架构见附录G.2)预测每个3D点的语义标签。
图2:我们的方法由三个阶段组成。首先,我们在输入的RGB图像上运行一个预先训练好的二维分割网络。其次,我们将图像聚合成密集的、有噪声的分割和稀疏的、干净的分割。第三,将密集分割传递到三维稀疏体素卷积网络,并在稀疏位置应用标准softmax交叉熵损失。
对于这个推理模型,主要的挑战是如何训练它。以前的这类模型是在域内标记的3D数据的监督下训练的。然而,大多数真实世界的场景不会有这样的数据。相反,它们拥有大量的未标记数据。为了使用未标记的数据来训练3D模型,我们从预测的2D语义分割中生成3D伪groundtruth训练数据(3.1节),小心地将2D分割图像输入特征从3D伪标签中解耦合,以确保3D模型在训练数据之外泛化(3.2节),明智地选择未标记的场景,以便训练后的模型在罕见的语义类别上表现良好(第3.3节)。其余的实现细节见附录G。
3.1生成3D伪地面真相
我们的第一个问题是为训练集中的3D点创建伪地面真实标签。给定一个场景,所有图像的所有像素都有预测的2D语义标签,我们的目标是为3D点生成标签,可以用来训练3D语义分割模型。
尽管将所有2D像素的预测标签反向投影到3D点上并投票看起来很简单,但由于几个原因,这种朴素的方法并不太好(参见5.1节中的结果)。
三维激光雷达扫描(10Hz)和二维图像(2Hz)与移动传感器是异步捕获的,因此三维点与二维像素之间没有明显的一一对应关系。其次,现实世界的城市场景包含动态对象,在二维图像和三维激光雷达观测(汽车、人等)之间可以明显移动,因此一个传感器在A时刻的观测可能与另一个传感器在B时刻的观测不一致(图3a)。第三,2D图像中预测的语义标签几乎从来都不是像素完美的,标签跨越物体边界,导致遮挡边界附近不正确的反投影(图3b)。第四,2D和3D数据集标注的ground truth标准不同,例如栏杆大多是空的,但由于实际原因,通常在2D中将其分割为实心(见图3c),从而导致对3D的反投影不准确。
我们的解决方案是,仅对能够稳健建立2D-3D对应的极其稀疏的3D点集创建伪地面真值。关键的观察是,未标记的场景数据是丰富的,所以我们可以扔掉99%或更多的3D点的标签,仍然有足够的数据来训练一个3D模型。然后,目标是找到我们应该信任的点像素对应。为了实现这个想法,我们使用一系列的过滤器来排除可疑的点像素对应。
时间滤波器首先,我们从最近的图像中排除时间戳大于∆tmax的点(默认∆tmax = 0.1秒)。由于图像在时间上是稀疏捕获的(在我们的数据中是2Hz),这个滤波器删除了大部分激光雷达点。它还消除了移动物体引起的最严重的对应错误类型。例如,在图3a中,在经过的巴士之前或之后观察到的行驶巴士后面道路上的点与图像中的“巴士”像素是不匹配的。
图3:从2D投票中创造3D监督的挑战(a)一辆小车和一辆公共汽车和一辆运动的车向前行驶。由于混叠,汽车有一个扩展的激光雷达点云,而巴士完全没有从激光雷达(红色圆圈)。(b)网络在遮挡边界附近经常出错,使得遮挡器轮廓附近的点不可信。(c)标签标准从2D到3D不同。在2D中,无论密度如何,栅栏通常都被完全填满。
遮挡滤波。其次,我们应用一个遮挡测试,保守地过高估计前景对象的范围。为了检查遮挡,我们为每幅图像渲染一个深度通道,其中激光雷达点被绘制为圆盘(surfels[68]),带有法线和两个表示大小和宽高比的半径。通过使用PCA计算点的局部邻域的大小和宽高比,估计每个surfel的法线和半径(详见附录G.3)。在绘制深度图像后,如果一个点的投影深度与深度图像的匹配程度相差一个因子超过τ = 1%,则认为该点被遮挡。为了保守地高估前景物体的范围,我们有意将激光雷达光盘的基本估计半径乘以k = 8倍(“放大”)。对于像图3b,c中的红点这样的情况,需要进行保守性测试,否则,由于不完美的分割掩码,将会收到不正确的预测类标签。(不考虑遮挡附近的点)
加权投票。第三,我们聚合通过过滤器的2D预测标签,以确定伪groundtruth 3D点标签。该方案增加了近时间、近相机的视角,同时仍然包括更多的空间或时间上的远距离观测(如果它们是所有可用的)。具体来说,给定最大距离dmax和最大时间戳差异∆tmax的阈值,image-i, point-j对的权值为:(时间越久,距离越远权值越低)
在组合中,这些滤波器从伪地面真值集中排除了几乎所有的3D点。通过将过滤器应用于大量的未标记数据,我们产生了一个非常大的训练集,具有可靠的伪地面真值。我们的过滤器是非常保守的,因此产生的假阳性,因此很少会影响3D网络的训练过程。
3.2 将基于图像的输入特征与基于图像的伪ground-truth标签解耦
第二个主要问题是如何最好地利用从RGB图像中获得的特征作为输入到3D网络。从RGB图像中提取特征对于三维语义场景的理解是非常有用的,因为彩色图像中的许多对象类别比几何形状(如人行横道)更容易识别。我们在附录中定量地说明了这一点(表7为我们的语义2D特征+28.9 mIoU)。
一个很自然的想法是将从二维图像中提取的语义分割特征backproject,融合到三维点上,作为三维模型的输入通道。但是,如果这个过程与创建伪真相标签的过程相匹配,那么在稀疏的监督位置上,输入特征和监督总是一致的。用这些输入特征训练的网络可以通过简单地通过输入特征而不做任何几何推理来最小化它的损失。这样一个直通函数在稀疏伪地真值集之外是没有用的。(因为真值也是这么构建的,3D网络可以偷懒,直接用拼接后的图像特征产生结果,几何推理就是从激光点云中获得特征)
为了解决这个问题,我们使用两个具有不同参数的独立多视图融合步骤来聚合网络和伪ground-truth标签的输入特征。具体来说,在进行特征融合时,我们将最大时间戳差∆tmax从0.1s显著增大到10s,将扩张因子从k = 8减小到k = 2,将遮挡阈值从τ = 1%松弛到τ = 5%。(大概意思是两套参数,地面真值很保守,这里很开放)
这些参数更改增加了更多的图3中错误的投票权重,同时也确保了大多数点数都有一个标签。重要的是,我们可以通过删除一些错误的投票来提高这些特性的质量,但是我们发现使用解耦特性可以提高性能,尽管它们的准确性较低(章节5.2)。解耦教会网络去纠正错误,而不是传递特征。基于几何推理得到一个更有用的函数。图4给出了一个示例。
图4:如何为道路上的一个点生成输入特征和伪地面真相的图解。输入特征是通过使用所有图像的多视图融合投票创建的——在这种情况下,3张图像中有2张投票给“汽车”。伪地面真实是通过在几乎同一时间拍摄的图像(小∆t)和清晰的视线(不是接近的轮廓)投票产生的——在这种情况下,只有左边的图像合格,结果是“道路”。训练三维网络,从输入特征预测伪地真,即修正多视图融合的错误。
另一个需要考虑的问题是如何使用2D图像信息为3D网络创建输入特征。由于监督只能在特定的点上使用,因此重要的是将在监督点上学习到的3D卷积转移到无监督点上。例如,我们发现RGB特征实际上会损害性能,因为当一个点云在任何相机视角都观察不到的时候,RGB特征是不存在。当我们将最近的邻居RGB特征复制到未观察到的点时,它们看起来仍然不现实,不像训练集,所以网络在这些区域表现很差。我们的选择是只聚合最后的类标签,编码为一个热向量。这个标签信息丰富,足够紧凑,便于存储。通过最近邻传输的一热编码比RGB编码更具鲁棒性,因为它们对整个物体都是恒定的。最重要的是,这个标签使得网络很难区分伪真相点和其他点。这个属性使得在监督点学习的卷积可以很好地泛化,并使类标签成为我们设置的理想选择。
(这里没理解,难道是说3d网络的输入直接是:原始点云+标签独热码?)
3.3 采样不同场景
要解决的第三个问题是如何从大型数据存储库中对训练场景进行采样。在我们的系统中,一个训练场景是一个短时间间隔(10秒)的数据,通常包括几百万个激光雷达点和几十张图像。问题是,当存储库的数量级大于我们的实际处理能力时,我们应该使用哪个场景进行训练?
显而易见的答案是随机取样场景。然而,我们可能会得到一个只有道路和树木的训练集。它不太可能包括像电话亭或动物这样的稀有物品。因此,我们训练的模型将偏向于普通类。
有一个复杂和罕见的场景的长尾,我们想要找到和训练那些代替。为此,我们使用预先训练好的二维语义分割网络来估计场景中的目标,然后解决一个优化问题来选择包含提供不同训练集的图像的场景。具体来说,我们首先随机选择一组巨大的候选图像I,并在其上运行2D网络。对于每个图像I,我们检查其语义分割对于每个|C|类标签是否至少包含pmin像素,形成一个二元向量vI∈{0,1}|C|。然后我们通过最大化以下(负能量)目标函数来创建一个训练集S,它包含N个图像:
这种优化的目标是找到每个类的尽可能多的例子,每个类的收益呈二次递减。从这些图像中提取的场景集平衡了个体类和复杂场景(包含许多对象)的选择。注意,这种方法与主动学习有关[75,9,48,2,35],它已经被用于分割数据集[46,83,89,77,40]。然而,我们的情况是不同的,因为我们的约束来自处理输入示例,而不是标注它。
4. 数据集Dataset
为了在我们的目标设置中评估所提出的算法,我们策划了一个包含激光雷达的数据集,并从分布在5大洲15个国家的20个城市的车载扫描仪收集图像(图5)。它有7个彩色摄像机,其中6个六边形,1个向上(图1中的绿色线)。
每20个城市被划分为2km × 2km平方区域的不相连、交错的集合,一组用于训练,另一组用于验证。“场景”采样自这些区域,数据采集时间约为10秒,覆盖面积约1600平方米,3M激光雷达点,平均60张彩色图像。
唯一可用的训练数据是先前标记的一组19,147张图像,这些图像是在这20个城市和其他30个城市的训练区域捕获的。这些图像被手工标注了44个类别,分别代表不同类型的地面(道路、人行道、车道、人行横道等)、车辆(汽车、卡车、自行车等)、城市结构(建筑、桥梁、围栏等)、街边物体(交通标志、路灯等)和人。完整的列表见附录E。(竟然是自己的数据集,这是怎么在15个国家做的实验)
为了生成三维语义分割的验证集,我们从20个城市中随机选择一个场景,并使用交互式3D标记工具为场景中的每个激光雷达点识别44个语义类别中的一个。使用高度优化的工具,我们在每个场景上花费了数小时的时间。由于预算的原因,用相同的过程来标记大量的训练场景对我们来说是不实际的,因为这将花费数百万美元。
在测试算法时,我们根据标准协议[21],使用平均类IoU (mIoU)对验证集上的预测3D语义分割进行评估。由于验证集的数据有限,所以我们在计算mIoU统计数据时非常小心,以避免平均数据很少的类的结果。因此,在计算平均类别IoU统计时,我们忽略了至少3个场景中每个场景中得分低于1000的类别。其余的26个类别包括对语义映射应用最感兴趣的(例如,建筑、道路、人行道、人行横道、汽车、卡车等)和所有扫描点的99.34%。
5. 实验结果
在这里,我们运行实验来比较所提议的方法和基线,并测试我们方法的每个组件的影响。除非另有说明,否则将对第4节中的20个城市数据集进行评估。
5.1 与2D监督基线的比较
我们的第一组实验评估了所提出方法的性能,并将其与其他可以在没有直接3D监督的情况下工作的方法进行了比较。因为之前几乎所有的方法都是为3D训练集的基准设计的,所以我们的任务几乎没有基准。据我们所知,多视图融合是[36]唯一/最好的替代方案。我们将其与我们创建的基线进行比较,以表示我们的方法的直接实现,使用密集而不是稀疏的伪标签。
多视图融合[36](MVF):该方法是一种标准的多视图融合实现,基于未遮挡视线像素上的标签投票,在3D点上聚合语义标签。密集监督(Dense):该方法按照上述方法进行多视图融合,然后从预测标签中训练具有密集监督的3D网络。虽然这个基线是我们的主要想法的一个变体,而不是以前的工作,但研究一下我们的伪基本真理的方法与一个更简单的替代方法相比是有价值的。
对于我们的方法和这些基线,我们在标记的训练图像上使用Xception65[15]网络训练DeepLab v3[13]。该网络接收RGB图像,并输出带有每个像素类标签的密集图像预测,用于我们的3D网络的基线和伪监督的多视图融合。对于我们的3D网络,我们使用SparseConv架构[28]。
定量比较表1比较了我们的方法和基线的定量评价指标。总的来说,我们的方法达到了59.5 mIoU,而最好的真实基线(MVFusion)只有48.1。我们的方法也优于提出的通过密集多视图融合(53.3 mIoU)训练有监督的3D网络的替代方案。最大的改进是移动类,比MVFusion基线增加了25.9 mIoU。我们使用稀疏伪监督训练的3D网络能够更好地进行分割,因为它能够根据类的几何形状(例如,道路vs.汽车)。
定性比较。图6显示了我们的方法和基线产生的语义分割的例子。其他方法在观察3D点时(例如地面和人行道上的汽车标签)会出现明显的错误。相比之下,我们的方法更好地解释了图像和几何特征。
图6:定性结果。多视图融合经常会出现非几何错误,特别是对于移动类(投票给公交车的结果是在地上,汽车和人在人行道上,建筑在人上)。在密集的监督下训练三维网络可以稍微减少这些非几何错误,但我们的方法在很大程度上改善了几何先验。
我们的方法的典型错误包括:1)难以区分2D和3D之间始终不同的类,2)缺少小对象,3)不能清晰地将2D边界与融合不良的特征分开。例如,在图6的顶部,由于稀疏伪ground-truth中始终不正确的监督,栅栏后面的道路被错误地标记为栅栏,并且只比标准的MVFusion稍微改进了一点。
5.2. 消融研究
我们的第二组实验研究了系统的每个组件是如何影响性能的。表2显示了淘汰研究的结果,其中每一行显示了禁用一个算法组件的方法的结果。我们发现,多样化的场景采样、3D卷积、时间戳过滤和稀疏监督是取得良好结果的关键。多样化的场景采样最能提高性能,达到10.6 mIoU,即使在250K场景和750B点的训练下也是如此。3D卷积提供了第二大改进,因为3D卷积之前的语义特征具有图3所示的所有问题。扩张闭塞帮助一些类(篱笆,树,自行车),但有混合的结果总体。
在另一个实验中,我们评估了导入解耦特性是怎样的。我们在伪地真位置用伪地真值替换输入特征。换句话说,我们在保持监督不变的情况下,通过提高特征质量来增加耦合。正如预期的那样,增强的耦合降低了性能——这种消融提高了训练(伪地面真相)性能(+8.8 mIoU),但降低了测试(真实)性能(-2.6 mIoU)。详情见附录B。
5.3 使用nuScenes基准进行实验
在本节中,我们使用nuImages和nuScenes lidarseg基准数据集[10]来评估我们的方法。虽然nuScenes的设置与我们的不同(它只在两个城市有域中的3D监督和数据),但它支持几个重要的实验。特别是,它允许我们1)评估我们提出的体系结构与最先进的(SOTA)相比有多好,2)评估我们的方法在没有、部分或全部3D监督可用时的表现有多好,3)研究我们的2D伪监督方法的泛化效益。
我们的2D3DNet架构是SOTA吗?我们首先评估我们的网络架构与之前的工作相比,当给予充分的3D监督。我们在nuScenes lidarseg数据集上训练2D3DNet架构,使用nuImages来训练我们的2D网络的特征,并将我们的测试结果提交给nuScenes排行榜。我们的得分是80.0 mIoU,与所有已发表的方法相比,这是第一名(+1.7 mIoU),包括最近未发表的作品在内的总排名第三,在所有基于2D-3D融合的方法中排名第一(+2.3 mIoU)。见附录A或nuScenes lidarseg排行榜上的每级miu。
2D监督是否有用,即使有些3D监督可用?接下来,我们将评估我们的伪监督和2D特征在与不同数量的3D监督相结合时是否能够提高性能。我们比较了两种方法。第一种方法是2D3DNet,其中部分训练场景使用3D标注标签,所有剩余场景使用伪监督。所有的伪监督都是由一个在nuImages上训练的2D模型生成的。第二种方法是我们架构的3D部分(“SparseConv*”)训练于3D数据。这个SparseConv*基线接受表面正常特征,而不是我们的语义特征,并只在3D地面真实标签上训练;它在其他方面与我们的方法相同。图7给出了2D3DNet(红色)和SparseConv*(蓝色)几种不同尺寸的3D训练子集的mIoU结果。我们评估了nuScenes和nuImages中的11个类。这两条曲线的差异表明2D3DNet并不依赖于大型的3D训练集。在0%的监管下,2D3DNet达到65.6 mIoU,而在100%的监管下达到80.7 mIoU (92.0 vs 96.4 fwmIoU)。相比之下,在100%的3D监督下,SparseConv*达到了78.8 mIoU,但只有30.6 mIoU (1%), 2D3DNet的mIoU为69.1(1%)。这些结果表明,当有足够数量的3D监督时,3D监督是优越的,但我们使用标记的2D图像集合的方法可以帮助3D网络实现竞争性能,即使是在很少的3D监督可用的情况下。
二维监督能提高泛化程度吗?最后,我们评估我们的2D伪监管是否提高了对新城市的泛化。我们首先将nuScenes lidarseg数据集划分为两个子集——波士顿(467个场景)和新加坡(383个场景)。然后我们考虑三种可能的监督策略来训练一个3D SparseConv*网络。在第一种情况下,我们只使用一个城市的3D监督进行训练,并测试对另一个城市的泛化。在第二个案例中,我们使用来自一个城市的3D监督进行训练,并为另一个城市添加来自nuImages的伪监督。在最后一个案例中,我们完全不使用3D监督,而是在两个城市中使用我们的伪监督方法。每个城市的三种情况的表现见表3。
我们观察到:1)只在一个城市的3D监督下训练的模型不能很好地推广到另一个城市(38.9新加坡→波士顿,55.6波士顿→新加坡)。2)两个城市的2D伪监管优于不同城市的3D监管(64.3 vs 38.9波士顿,63.1 vs 55.6新加坡)。3)在2d伪监管基础上增加来自不同城市的3D监管只会略微提高表现(64.3 vs 64.3波士顿,68.8 vs 63.1新加坡)。这些观察结果表明,我们的方法是一个很好的替代方案,在世界各地的城市,3D标记数据不可用的3D语义分割。
6. 结论
在本文中,我们研究了如何在没有任何三维标记训练数据的情况下学习三维语义分割。我们建议创建可信的伪标签,利用2D语义预测作为3D网络的输入特征,并从大型无标签存储库中高效地采样各种场景。这些方法能够在5大洲20个城市的验证数据集上训练出比基线更好6.2-11.4 mIoU的三维语义分割模型,在移动类上训练出比基线更好16.7-25.9 mIoU的三维语义分割模型。nuScenes lidarseg数据集的进一步实验表明,在完全监督的情况下,2D3DNet优于已发布的方法(+1.7 mIoU),我们的体系结构比只有少量监督的3D监督基线更健壮(+12.9-38.5 mIoU),这种伪监管有助于将其推广到新兴城市(+7.5-25.4 mIoU)。这些结果表明,利用图像数据存储库来训练可大规模部署的通用3D模型是有前途的。
附录:
扩展的监督nuScenes结果报告了lidarseg任务的测试和验证部分的3D监督模型的定量性能(附录A)。进一步的消融研究更详细地调查了所提出方法的关键算法的影响(附录B)。与SemanticKITTI 3D监督模型的比较表明了在数据集之间传输3D监督的难度(附录C)。在ScanNet上进行的额外实验研究了所提议的方法在没有任何域内监管的情况下如何工作(附录D)。额外的基线比较统计数据,提供20个城市数据集的所有44个类别的结果(附录E)。额外的定性可视化显示我们的模型输出和融合语义特征(附录F)。优化算法和评价指标(附录G)。A. nuScenes监督结果
在表4中,我们展示了我们的方法在测试集上的性能(也就是说,我们展示了nuScenes排行榜上/lidar-segmentation上的可用数字)。所有16个班级,请参阅排行榜。为了便于比较,我们还在表5中提供了我们的验证分割数(不能与SPVCNN++或GU-Net进行比较,因为这些方法的细节和代码是不可用的,尽管我们在5.3节的一些实验中添加了SparseConv*架构的比较)。我们的结果是在测试集中发表的方法最多,在总体上第三高(包括最近未发表的提交),而且据我们所知,在验证分裂上报告最多。
B.其他消融研究
在本节中,我们将报告关于我们方法的消融的实验结果。
特性去耦如何影响性能?表6演示了特性解耦可以提高性能。在这个实验中,我们对这两种方法使用相同的稀疏监督。然而,在消融(Abl)中,我们使用伪地面真值融合来改善特征质量。换句话说,我们消除了解耦,使得监督保持不变,但特性质量得到了提高。尽管特征更精确,但由于特征与伪地面真相的相关性增加,模型性能较差。
2D功能的影响是什么?表7显示了一项研究的结果,该研究调查了使用3D点作为输入到3D网络的不同特征的性能。正如预期的那样,我们发现利用从二维图像中提取的语义特征(融合二维网络预测生成的语义类的一次热编码)是至关重要的。与我们的直觉相反,添加RGB通道作为一个附加特性会损害性能(降低1.7% mIoU)。我们推测这是由于任何RGB图像都没有观测到的激光雷达点在测试时域发生了位移。对于这些点,我们尽最大努力通过从最近的空间邻居复制来填补缺失的RGB特征。然而,对于用于训练的伪地真点来说,得到的RGB特征都是域外的,这些特征都是由RGB图像直接观察到的,对性能有不利影响。然而,有趣的是,在使用语义标签的单热点编码时,情况并非如此。由于网络是用一种协议来训练的,该协议将输入语义特征从伪ground-truth标签中解耦出来(章节3.2),它学会了补偿错误的语义输入标签,并能更好地泛化到所有点。
C.语义kitti监督转移
在这个实验中,我们探索了一种替代2D监督的方法——从现有数据集转移3D监督。这种替代方法避免了3.1节中讨论的许多挑战。它还需要概括到一个新的陆地平台和看不见的城市、国家和大陆。
表9显示了与目前最先进的模型(气缸3D[98])的比较,该模型使用SemanticKITTI[7]的3D监督进行训练,并在我们的20个城市数据集上进行测试。我们选择SemanticKITTI是因为它的类与我们的评估集有重叠。为了尽可能直接地调整我们的输入扫描,我们为每次扫描提供一对完整的激光雷达扫描作为输入到他们的网络。为了提供一个公平的评估,我们只考虑两个评估集之间共享的类,并且我们只报告表9中[98]中性能最好的类的IoU。毫无疑问,由于传感器模式(不同的激光雷达角度)和场景内容(1个培训城市和20个评估城市)的差异,这个简单的基线与我们的方法没有竞争力。然而,巨大的性能差距(48.7分)突出了三维点云的领域适应问题。
D. 室内数据集的应用(ScanNet)
为了测试我们的主要思想在极端情况下的通俗性,我们在ScanNet语义分割基准[21]上进行了一个实验,只使用3D点云输入,完全没有来自ScanNet的地面真实数据(没有3D点标签,没有图像标签,甚至没有ScanNet类别列表)。为了训练我们的3D网络,我们使用了从预先训练的MSeg通用2D模型[53](它是在几个2D数据集上训练的,不包括ScanNet)衍生出来的伪监督。具体来说,我们使用MSeg模型从ScanNet训练集预测图像的语义分割,运行我们的算法从这些分割创建稀疏的伪地面真相,训练我们的3D模型,并在只包含3D点的输入上测试它(使用3D法线作为输入特征),然后使用MSeg类和ScanNet类之间的近似映射来评估结果。ScanNet验证集上的结果是42.6 mIoU。示例结果如图8所示。当然,这些结果不如2D或3D ScanNet数据监督下训练的方法好。然而,值得注意的是,当推理输入仅为3D几何图形时,它可以执行得如此之好(比使用ScanNet全3D监督训练的PointNet++[71]好9个点),并且训练时的监督仅来自其他领域标记的2D图像集合,尽管从MSeg类到ScanNet类的映射是模糊的。
E:扩大基线比较统计
表10报告了第5.1节中描述的基线比较实验的完全定量统计(即,它是表1的扩展版本)。除了报告20个城市数据集中所有44个类别的每个类别的IoU外,它还报告了每个类别的点数和GT场景的数量,用于确定26个类的集合,用于计算表1中的mIoU(如附录G.5所述)。为了便于说明,我们还在图9中提供了一个地面真实场景的可视化图。
F.其他定性结果
在图10中,我们为我们的20个城市的评估集提供了额外的定性可视化方法。对于每一种情况,我们都提供了上下文的地面真相可视化,以及我们的中间多视图融合预测(由算法1与3.1节中描述的超参数生成)、我们的最终输出预测和地面真相的特写比较。
G.实施细节
在本节中,我们将提供完全可重现性所需的低层实现细节。我们讨论了网络架构和优化器的细节,法线和半径估计,多视图融合,优化细节,以及我们的评估过程。
G.1 融合细节
我们的多视图融合算法的重要方面在3.1节中描述。我们在这里描述较低层次的实现细节,目的是确保可重现性。在3.1节中被省略的大部分细节都是为了提高运行效率而存在的(例如,添加kdtree,特定的通信检查顺序以避免不必要的投影)。还有一个额外的参数,∆tthresh,在所有情况下都设置为20秒。当一个点即将光栅化为深度图像时,将点图像时间差与∆tthresh进行比较;超过阈值的点不被栅格化到图像中。这个参数也主要是出于性能原因而存在的——通常它只会在汽车长时间静止的情况下影响图像结果,并且存在不需要渲染的额外数据来获得一个合理的遮挡图(∆tthresh做了这个剔除)。其他参数在3.1节中描述。我们的算法是用c++实现的,伪代码可以在算法1中找到。
我们数据集的融合参数在3.1节(dmax = 400)中给出。对于大多数nuScenes实验,超参数基本上没有变化,尽管我们将监理∆tmax调整到0.085,以考虑nuScenes与我们的数据集相比的不同图像采样率(12 vs 2 hz)。在提交排行榜之前,我们对3D监督进行了额外的实验,以确定更优的特征参数。我们发现,将d减少到1.5,将τ增加到10%,并在wij中添加一个额外的项,以与类稀罕性成反比(即,除以该类在列车分割中的激光雷达点的分数),可以略微提高性能,因为它们使网络能够更好地识别和正确分类小而稀有的类。这些改变只针对排行榜提交。
G.2 网络结构细节
在本节中,我们将详细介绍实验中使用的2D3DNet网络架构,以达到重现性目的。
我们的3D网络架构是一个3D稀疏Conv网络[28]。每个编码器层(A,B)包含一个具有A输出特征的3x3x3空间卷积,接着是一个具有B输出特征的3x3x3空间卷积,然后是一个2x2x2 3D maxpool操作。每个卷积首先被归一化,归一化除以占用特征卷积的激活。然后采用批量规范,再采用relu。编码器层为:(64,64)、(64,96)、(96,128)、(128,160)、(160,192)、(192,224)、(224,256)。编码器层之后是瓶颈层。瓶颈层是(256,256),镜像编码器层(唯一的区别是卷积块之后没有maxpool)。最后还有解码器层。每个解码器层(A,B)包括一个2x2x2解池,接着是一个3x3x3空间卷积与A输出特征,然后是另一个3x3x3空间卷积与B输出特征。与前面一样,每个卷积后面跟着relu,然后除以占用特征卷积的激活以进行归一化。解码器层为:(256,256)、(224,224)、(192,192)、(160,160)、(128,128)、(96,96)、(64,64)。最后,我们应用三个3x3x3的空间卷积层序列。层大小为(64,64,输出通道数)。和往常一样,前两个卷积后面跟着归一化、批处理规范和relu,而最后一个卷积后面只跟着归一化。最后,我们使用softmax函数来得到概率(我们使用softmax横截面的向异性损失)。损失应用于体素。为了进行推断,我们投射回点。在训练的时候,我们达到了12万体素。由于内存原因,我们从场景中随机取样1M点输入到网络中。如果没有另外指定,则输入特征是每个点预测的语义类的一个热编码(没有其他特征)。
3D优化器和数据增强细节我们使用0.9动量的动量优化器,初始学习速率为0.03。我们将这个学习速率用于200K步。在200K步后,我们开始从200K步到700K步的余弦衰减,此时学习速率完全衰减到0,训练完成。损失为软max交叉熵分类损失加上权值衰减0.0001。我们使用20cm的体素,批量大小为8。对于数据的增加,我们只在训练时间采用以下方法:随机种植3平方米的作物,x和y最多+-10度的旋转,z最多+-180度的旋转,以及0.9 - 1.1之间的随机比例因子。
3D细节(nuScenes)对于nuScenes, 3D管道与我们的数据集是相同的,除了以下特定的变化。首先,体素大小从20cm减小到5cm,训练时间体素填充从120000增加到240000,批量大小从8个减少到3个。其次,没有进行随机的作物、轮作或比例(也就是说,我们跳过了数据扩充)。最后,我们只训练了45万步而不是70万步;在相同的学习速率下,仍有200K的预热期,但余弦衰减计划在450K时加速到0。注意,另外,当在nuScenes上进行多视图融合时,我们在制作深度图像时发现并剔除自我车辆点,否则,自我车辆会不必要地遮挡最终图像的一部分。
2D网络架构我们的2D网络架构是DeepLabv3[13],带有Xception[15]。对于我们的数据集,我们使用Xception65和下采样到1152x768分辨率的源图像。对于nuImages,我们使用Xception71和分辨率为1600x900的图像。我们在ImageNet分类上对网络进行预训练[74]。在nuImages上,我们优化的批大小为32,骨干输出步幅为16,解码器输出步幅为4,基础学习率为0.0045,总步幅为150K, atrous率为6、12和18,在像素的顶部0.25%应用硬像素挖掘损失,并设置最后一层梯度倍增器为10。
G.3 正态和半径估计
在这里,我们描述了我们的方法来估计表面法线和每个激光雷达点的半径。许多其他的常规估计方法可能也不错,特别是因为它们在我们的管道中主要用于创建深度图。我们选择这种特殊的方法是因为我们发现它可以对我们的数据产生高质量的结果。从概念上讲,我们通过对点周围的邻域进行主成分分解来估计每个点的坐标系,增加邻域直到主成分分解是非退化的。然后正切、双切线和法线分别是第一、第二和第三个主轴。沿着正切和bitangent方向的半径设置为获得稳定分解所需的邻域大小的固定分数。这定义了一个面盘(surfel),参数为法线、两条半径和切线。实现细节如下。
考虑一个激光雷达点。首先,我们在这个点周围创建一个半径为25cm的邻域。接下来,我们使用kdtree来收集邻居中的所有点。如果有太多的点(> 32),我们随机子抽样,直到最多32。然后,我们对以问题点为中心的其余点进行PCA分解。如果没有足够的点来进行主成分分解(< 3)或主成分是退化的,我们加倍邻域半径并再次尝试,直到最大半径2m(如果仍然没有足够的点进行非退化主成分分解,我们放弃并简单地设置世界上的法向量,尽管这在实践中极其罕见)。我们通过断言前两个主标准差至少是邻域大小的10%,被剪切到一个狭窄的范围来确定分解的简并性[。25cm, 1cm]。一旦确定主成分分析非简并,它根据最大方差的正交方向在点周围定义一个坐标系。选择变化最大的方向为切线,切线方向的半径设置为0.25 *邻域大小。第二个半径,即在bitangent方向上的半径,设置为长宽比*第一个半径。宽高比是由前两个主轴的标准差(即σ1 σ0)之比确定的。
G.4 优化细节
在本节中,我们将详细介绍3.3节中描述的优化算法。要解决的问题是:
在开始优化之前,我们计算项vI。对于每个图像,我们运行我们预先训练的2D conv网络。我们计算类频率的直方图,并设vI,c:如果I的预测像素中至少有2%是c类,则设vI,c:= 1,否则设0。一旦为所有映像计算了vI,我们就运行优化。候选集中有10.4亿张图片,因此效率至关重要。为了使其易于处理,我们将优化分为两个阶段。首先,我们过滤掉不包含至少一个相当罕见的类的图像。这删除了绝大多数图像,而不太可能实质上影响最终的解决方案质量;它还可以将所有剩余的vI放入内存中。第二步是贪婪算法。我们从一个空集合开始,然后重复遍历剩余的候选图像集合,选择最能改进当前解决方案的图像。在每一步中,我们将选择的图像添加到当前的解决方案中,并重新计算当前的总能量。然后,我们对每个图像进行迭代,并计算每个剩余图像的非零类别对目标的影响部分项。当达到|S| = N时,优化结束。这种方法不能保证得到最优的结果,但必须适应大量的图像向量。
G.5评估细节
在本节中,我们将详细介绍如何在20个城市数据集中获取地面真实值标签并将其用于评估。
我们的2D图像集合有44个类的标签。目前还没有可用的3D语义标签。为了在3D中评估我们的方法,我们注释了20个场景(大约5000万个LiDAR点),直接从2D中调整类定义。如第4节所述,2D和3D标签标准存在一些差异。例如,在2D数据集中,电线没有标签;我们单独标记导线,不在这些点上评估。
在3D中标记课程进行评估带来了一些挑战。有些类别,如轨道上的车辆,是相当罕见的,因此不太可能重复出现在少数场景。有些类,如路灯(只包含灯泡,而不包含连接杆),是小型的。这使得人类很难可靠地找到并精确地分割它们,并增加了噪声边界对指标的影响。有些类,如动物或停车计时器,既小又罕见,加剧了这些问题。最后,一些类(如天空、水)根本不出现在3D点云中。因此,在第5.1节中,我们只报告出现在至少三个不同场景中的21个班级的成绩,每个场景的分数至少为1000分。这是所有扫描点的99.34%。
总的来说,当报告平均借据时,我们从评估中减少了0.66%的5000万分,其中大多数是来自很少出现的类(如桥梁)的大型对象。表10提供了保留的类与删除的类的比较。
需要注意的是,虽然抛出的标签不如用于求值的标签可靠,但并不是所有方法都能在有噪声的类上表现得同样好。一个重要的偏差是,我们的3D网络是基于分辨率为20cm3的稀疏体素卷积。因此,我们的方法不适用于与此分辨率相比较小的对象。融合方法受小物体的影响相对较小。一个极端的例子是消火栓类。这类只占3D点数的0.004%,但我们的MVFusion方法仍然获得了60.4的IoU;然而,所有基于稀疏体素卷积的测试方法都获得了零的IoU,在这类GT的噪声之外的一个差值。为了稳健地处理这些类,有必要调整3D方法来弥补这一缺陷。
附录没咋看,cv好累,有疑问的地方,大家可以留言交流~