TPAMI 2024 | 通过消除法检测道路障碍物

文摘   2024-07-12 19:00   中国香港  

点击上方“CVPaper”,选择加"星标"或“置顶

顶刊论文解读,第一时间分享

题目:Detecting Road Obstacles by Erasing Them

通过消除法检测道路障碍物

作者:Krzysztof Lis; Sina Honari; Pascal Fua; Mathieu Salzmann


摘要

车辆在道路上可能会遇到无数的障碍物,而且事先记录下它们以训练一个检测器是不可能的。相反,我们选择图像块,并使用周围的道路纹理进行填充,这倾向于从这些块中移除障碍物。然后,我们使用一个训练有素的网络来识别原始块和填充后的块之间的差异,这标志着擦除了一个障碍物。

关键词

计算机视觉,卷积神经网络,  智能车辆,语义分割,车辆安全。

I. 引言

现代方法为基于视觉的自动驾驶提供了一个近乎完整的工具包。这包括道路分割[1]、[2],车道检测[3]、[4],车辆和行人检测[5]、[6]、[7],以及多类别语义[8]、[9]、[10]、实例[11]和全景[12]、[13]分割。此外,基于视觉的辅助功能现在在市场上得到了广泛接受[14],并使车辆能够在预测的可行驶空间内规划路径,同时避免其他交通参与者。然而,遗漏道路上罕见且多样化的意外障碍物的风险依然存在。这些障碍物之所以罕见,是因为它们无法直接应用现在标准的深度网络训练方法,即向它们展示一个详尽的标注样本集。

在实践中,检测这类意外的障碍物通常需要激光雷达传感器[15]或多个摄像头[16]。这里,我们提出了一种方法,它只需要单个RGB图像就能在可行驶区域内检测障碍物,我们假设该区域外的物体是不相关的,因为自动驾驶汽车会在规划行驶之前检测到道路,并且不会无缘无故地离开可行驶区域。为了证明这是一个可行的假设,我们将展示在给定道路边缘的地面真实位置或仅由现成的分割算法产生的不完美的道路分割结果的情况下给出的结果。

我们的方法依赖于这样一个事实:障碍物与周围道路表面看起来不同。因此,我们通过填充图像块并检查填充后的块与原始块的相似性来检测它们。虽然类似的直觉已经被用于检测几种应用场景中的异常,例如检测制造缺陷[17]、[18]或异常面孔[19],但这些任务的严格限制性质使其能够依赖于手工特征的简单比较。相比之下,在道路上,由于道路标记、道路纹理的多样性以及超出填充块的障碍物,这种方法将产生许多误报。

我们的解决方案是引入一个经过训练的不一致网络,用于识别填充块与原始块之间的差异是否显著。它返回每个像素的热图,表示障碍物的存在,如图1所示。为了训练它处理训练数据库中没有的物体,我们通过移动现有训练对象(如路标和人)到道路上来生成样本,以形成合成障碍物。



我们的实验表明,我们的不一致网络仅在Cityscapes[20]对象上训练就能成功检测在显著不同的道路场景图像上的障碍物,无需任何标注数据,也无需对这些新场景进行任何重新训练。换句话说,我们的方法很好地泛化到以前未见过的真正障碍物和新的路面。它在Lost & Found[16]数据上超越了早期的单目道路异常检测器[21]、[22]、[23]、[24],在Fishyscapes基准测试[22]中的表现也超过了它们,以及在我们自己的新收集的数据集上,该数据集包括额外的不寻常物体和道路表面。

III. 方法

我们的目标是识别车辆可能与之碰撞的道路障碍物。这意味着它们位于自动驾驶感知流程的前一阶段认为是可行驶的空间内。因此,它们是最相关的障碍物,因为一个合格的驾驶系统只会在该空间内规划轨迹。换句话说,我们选择的任务是在估计的道路区域内识别所有表示障碍物的像素。这是困难的,因为障碍物可能采取许多形式。此外,由于它们是意外的,没有保证它们在用于训练网络以识别它们的数据库中出现过。因此,需要使网络对不属于道路的物体做出反应,而没有这些物体的明确描述,甚至没有示例。

为此,给定图像中表示可行驶区域的二进制掩码,我们提出了以下两步方法:

  1. 通过移除道路补丁并填充它们来擦除障碍物,以滑动窗口的方式进行;

  2. 使用不一致网络比较原始图像和填充后的图像,并决定它们是否足够相似。

这个方案背后的直觉是,如果存在障碍物,填充区域将与原始图像看起来非常不同。然而,即使没有障碍物,填充区域也将与原始图像相似,但并不完全相同。因此,需要不一致网络来评估它们是否足够不相似以标记潜在的障碍物。它产生一个热度图,表示可行驶区域内每个像素属于障碍物的可能性。在本节的其余部分中,我们将更详细地讨论这两个步骤。

A. 可行驶区域

自动驾驶系统必须确定它可以移动的道路区域。我们的方法检测被认为是可行驶区域内的障碍物,因为它们是唯一可能在车辆计划路径上并且可能危及它的障碍物。当然,道路的一部分可能被错误地标记为不可行驶,导致图8中所示的包含障碍物被忽略。然而,这并不会影响安全性,因为车辆永远不会尝试去那里。

我们的方法可以利用任何提供所需可行驶区域信息的方法。在我们的实验中,我们使用了在Cityscapes数据集[20]上训练的PS-Net语义分割网络[8],正如[53]中实现的框架。我们将道路区域视为被分类为道路或人行道的所有像素,因为我们针对的许多道路纹理可以被分类为两者之一。请注意,像汽车和行人这样的标准类别由PS-Net本征考虑。因此,我们专注于那些没有可用的监督或非监督训练数据的不寻常障碍物。尽管如此,由于这些不寻常的障碍物可能部分被分类为非道路,我们包括了完全包含在道路区域内的其他类别的区域。图2演示了这个过程。作为一个极限情况,我们还评估了使用地面真实道路掩码的完美道路检测情况。



我们的方法只需要一个粗略的可行驶区域掩码,因此在实际部署中,语义分割可以被计算效率更高的系统所替代,例如仅预测道路边缘并填充它们之间的空间。

B. 填充

为了在保留周围道路外观的同时擦除障碍物,我们使用了一个通用的填充器[54],该填充器依赖于对抗性方法以确保填充的图像看起来是真实的。我们使用的这个模型是在场景识别数据集Places2[55]上训练的版本,并没有进一步训练。

填充器接收一个图像,其中一部分已被黑色像素替换,并提供已移除区域的像素掩码。它输出一个图像,缺失部分被填充,以最大程度地保持场景的连续性和内容。填充器会接收一个图像,其中一部分已被黑色像素替换,并提供已移除区域的像素掩码。它输出一个图像,缺失部分被填充,以最大程度地保持场景的连续性和内容。

一个简单的使用方法是一次性填充整个道路区域。然而,这不会为填充器提供关于道路外观的指示,导致填充后的图像与原始图像在整个道路区域上都有差异,从而阻碍了随后的障碍物检测。相反,我们采用滑动窗口方法填充道路补丁,以提供足够的上下文,使网络能够重建道路表面,如图3所示。这些补丁还需要足够大,以包含我们事先不知道大小的障碍物。因此,我们遵循滑动窗口方法,在400×400像素的图像区域内填充200×200像素的可行驶区域补丁,以提供上下文。



虽然当填充区域完全包含障碍物时,障碍物通常可以很好地被擦除,但填充器也能够重新创建只部分包含在填充区域内的障碍物。为解决这个问题,我们使用连续的补丁,它们的相对重叠为0.7,增加了至少有一个补丁覆盖整个障碍物的可能性。这意味着每个图像像素会被多次填充。然后我们通过对每个像素的多次填充进行加权平均来融合它们,其中每次填充的权重基于相应补丁中心与感兴趣像素位置的曼哈顿距离来计算。具体来说,以位置cj = [uj, vj]⊤为中心的补丁对位于位置p = [u, v]⊤的像素的填充贡献权重为

其中s是补丁的宽度或高度,而Π(u, v)是与像素[u, v]⊤重叠的补丁集合,其中补丁i以[ui, vi]为中心。
我们的填充策略使我们能够泛化到新的路面,例如我们的道路障碍物数据集中的路面。相比之下,[21]、[32]、[50]中的GAN合成器总是产生类似于Cityscapes训练集的图像。

C. 不一致性网络

尽管我们的填充策略保留了道路表面的一般外观,但由于道路标记、纹理细节以及靠近补丁边缘的障碍物的非零贡献,仍然存在不可避免的缺陷。因此,简单地通过像素差异比较原始图像和填充后的图像将产生许多误报。为处理这个问题,我们引入了一个不一致性网络,我们训练它区分填充工件中的重要差异。
我们实现了一个双流架构的不一致性网络,如图4所示,它以原始图像和填充后的图像作为输入。两个输入首先由ResNeXt101[56]特征提取器处理,在ImageNet[39]上预训练,并在训练时冻结。然后,结果特征通过1×1卷积进行连接和融合。此外,我们计算了一个逐点相关性映射:在特征图的每个位置,我们计算图像特征向量和相应的填充特征向量的点积。我们将这些点积作为额外的通道附加到1×1卷积的输出。然后,连接的特征通过上采样金字塔传递,我们通过softmax获得所需的热图。
1)训练不一致性网络:回想一下,我们的目标是检测在训练时可能从未见过的不寻常道路障碍物。因此,我们需要不一致性网络能够泛化到以前未见过的物体。
为了应对这一挑战,我们仅使用Cityscapes[20]数据集构建了一个合成训练集,该数据集不包含不寻常的交通障碍物。我们使用实例注释提取了行人和车辆的实例,以及交通灯和交通标志,这些在像素级语义标签掩码内可以作为连通分量提取出来,尽管它们没有实例标签。由于许多道路障碍物很小且难以检测,为了模拟远距离看到的小型障碍物,我们从整个数据集中选择了大小在10到150像素之间,面积在100到5000像素平方的实例。然后我们从这个数据库中随机采样对象,并将它们叠加到可行驶区域上,以模拟障碍物。图5展示了以这种方式合成的几个图像。
2)高频纹理:Cityscapes训练集主要包含光滑的道路表面。因此,具有更粗糙道路表面的测试图像可能会产生错误的假阳性。为了防止这种情况,我们通过一个简单的5×5高斯模糊来消除高频,如第IV-E节的消融研究所显示的,这对域偏移是有效的。

IV. 实验

在本节中,我们首先介绍基线、评估指标和我们在实验中使用的数据库。然后我们将我们的方法与基线进行比较,最后进行消融研究。

A. 基线

我们与以下方法进行比较:
  • Resynthesis[21]首先对图像进行语义分割,然后仅使用条件GAN[34]从结果的语义图中合成图像。原始图像与重建图像之间的差异使用与我们使用的类似目的的不一致性网络检测,但该网络是通过合成异常训练的;这些异常是通过在选择对象实例并将它们的语义类别替换为随机的不同类别之前合成的。
  • JSRNet[35]同样执行图像重建,但瓶颈是语义分割器的最后一层激活。然后使用SSIM度量将重建的图像与原始图像进行比较。
  • SynBoost[50]通过提供语义分割的不确定性估计作为其不一致性网络的附加输入来扩展重建方法,该网络预测异常分数。
  • Entropy Maximization[46]通过将COCO[47]对象添加到Cityscapes帧中,训练分割网络以在显式的OOD样本上最大化输出熵。它还对障碍像素的连通组件进行后处理,但这部分不适用于我们的逐像素评估。
  • LearnedEmbeddingDensity[22]从DeepLab[57]层提取的特征学习内部分布。然后它通过归一化流将特征映射到潜在的、高斯分布的向量。映射被训练以最大化在内部样本中观察到的特征的似然性。
  • Void Classifier [22]使用城市景观空洞区域作为异常值的例子。然后,它可以显式地将空添加到预测类的集合中,或者学习在空区域中最大化Softmax熵。
  • Bayesian DeepLab[58]将丢弃层引入深度实验室网络。在推断时,它通过随机化辍学来抽取样本。不确定性是作为结果分布和网络权重之间的互信息来测量的。
  • Maximum Softmax[51]测量最可能类别的预测Softmax概率(Max Softmax)--低值表示不确定的预测和可能的语义异常。

B. 评估指标

我们遵循Segment Me If You Can[59]基准的评估协议,特别是障碍物轨迹。由于我们专注于检测道路上的障碍物,我们将评估目的的兴趣区域(ROI)定义为图6所示的地面真实道路区域。这种将ROI限制在可行驶空间的做法遵循原始Lost and Found[16]道路障碍物基准的评估协议,并符合自动驾驶的相关区域,即车辆将要移动并可能遇到障碍物的道路区域。我们的方法和我们比较的基线一样,输出一个在[0,1]范围内的热图,表示ROI内每个像素属于障碍物的可能性。基准通过障碍物像素分类和障碍物实例检测来衡量性能。
  • 主要的像素度量是平均精度(AP),即精度-召回曲线下的面积。由于障碍物通常覆盖不到总路面的2%,因此这个指标比基于接收者操作曲线(ROC)的度量更有意义。
  • 次要的像素度量是在95%真正例率(TPR)下的假阳性率(FPR),我们将其表示为FPR95。要计算它,将二元分类阈值降低,直到检测到95%的障碍物像素,然后测量引入了多少假阳性。
  • 主要的实例度量是平均F1,它总结了真正例、假阳性和假阴性的数量,平均在几个IoU阈值上。
  • SIoU是为每个障碍物实例计算的像素交集-过并集的平均值,进行了调整以考虑覆盖多个实例的预测,如[59]中所述。
  • RPPV是分别为每个实例计算的正预测值(精度),然后求其平均值。

C. 数据集

我们在两个数据集上报告实验结果,一个是建立良好的Fishyscapes Lost & Found[16]基准,另一个是我们与Wuppertal大学的同事合作收集的新RoadObstacles21数据集,作为Segment Me If You Can基准[59]的一部分。
Lost and Found数据集[16]:它包含1030帧图像序列,这些图像序列是由接近放置在停车场和街道上的丢失货物的车辆捕获的。我们使用测试分割中的Test No Known子集,其中已经去除了Cityscapes训练对象,如行人和车辆。通过确保所有障碍物都是语义异常,这允许在障碍物检测器的角色中评估异常检测方法。
RoadObstacles21数据集[59]:Lost and Found以类似于Cityscapes训练数据的城市环境为特色。为了在更广泛的道路上表面和物体上评估我们的障碍物检测器,如图7所示,我们收集了自己的Road Obstacles数据集。它包括8种不同的道路纹理,总共包含327个标记的1920×1080帧。标签包括单个障碍物实例的像素掩码以及可行驶区域的大致轮廓。我们将评估的ROI定义为这些轮廓内的区域。如果一个物体有一个洞,例如带手柄的篮子,我们将其标记为在ROI之外,并在评估中忽略它,就像我们对背景所做的那样。
它具有8种不同的道路纹理,总共包含327个标记为1920×1080的帧。标签包括各个障碍物实例的像素蒙版以及可驾驶区域的大致轮廓。我们将评估ROI视为这些轮廓内的区域。如果一个物体有一个洞,比如一个有把手的篮子,我们把这个洞标记为ROI之外,并在评估中忽略它,就像我们对背景所做的那样。

D. 比较结果

我们测试了两种版本的我们的方法,一种在地面真实给出的道路区域上操作,另一种在网络[8]分割的可行驶区域上操作。它们在表I中分别被称为“Ours road ground truth”和“Ours road segmentation”。图9和图10分别展示了我们方法输出的定性比较和更多示例。

我们的方法在两个数据集上的所有其他方法中,在平均实例F1方面表现最佳,这是[59]中的主要实例度量。就像素平均精度(AP)而言,它在Lost and Found数据集上超越了基线。在RoadObstacles21上,只有SynBoost和Entropy Maximization两种方法达到了更好的AP。“Ours road segmentation”变体在Lost and Found的FPR95次要像素度量上获得了极低的分数,但使用地面真实情况的得分是极好的。这指向了问题的原因:我们使用的分割算法只找到了部分可行驶区域,而且由于我们只在那个区域内寻找障碍物,我们在某些图像中错过了所有其他地方的障碍物,使得在某些图像中无法达到95%的TPR。图8说明了这个问题。尽管如此,即使在这种情况下,安全性也得到了维护,因为车辆控制器只会在预测的道路空间内行驶。因此,外部的障碍物不会构成碰撞风险。此外,正如“Ours road ground truth”的良好结果所证明的,随着道路边界检测算法的改进,这个问题将逐渐消失。
尽管包括我们的方法在内的大多数方法仅使用Cityscapes数据集进行训练,但其他一些[46]方法从其他数据集,如COCO或ImageNet-1k中采样对象作为合成障碍物。这种策略对于某些障碍物类型有效,特别是RoadObstacles21集合中那些独特且多彩的障碍物,但在Fishyscapes集合中却不足。换句话说,如果测试障碍物与附加数据集中的障碍物相似,则扩展原始数据集是有效的,但这并不一定促进泛化。

E. 消融研究

在表II中,我们报告了消融研究的结果,在该研究中,不一致性网络在选定的组件被改变或禁用的情况下重新训练。
在Resynthesis变体中,第III-B节中描述的填充被图像合成器[34]替换,就像[21]中基于预测的语义标签一样。虽然填充器可以根据视觉上下文重建新的道路纹理,但生成器产生的纹理类似于训练道路,这反映在Road Obstacles上的性能下降上。
Blur变体将填充替换为高斯模糊操作。我们将核大小设置为200,以匹配填充窗口的大小。No Inpainting变体取消了填充。我们保持架构不变,但将图像的两个副本传递到两个输入流中,并重新训练网络。这也降低了性能,从而证实了填充的重要性。我们也可以反过来做,即移除不一致性网络,并计算输入图像和填充结果之间的L1距离。相应的No Discrepancy变体的结果甚至更差。
Segmentation Alone条目对应于通过在[8]的分割算法检测到的道路区域内发现的非道路像素组进行的检测。这本身显然失败了,从而证明了本文提出的额外步骤的合理性。

F. 局限性

擦除安全区域:我们方法检测到的分布外区域可能包括真正的障碍物和特征明显但安全的路面区域,如人孔、道路裂缝和树叶。第III-C节中的不一致性网络通过学习可以安全忽略的更改区域来缓解这个问题,但这依赖于训练集中存在示例。为了进一步改进,一种方法是考虑扩展训练集的方法,如[48]、[49]。
透视效果:我们的方法没有明确考虑由于透视效应而出现的更小的障碍物。像我们在[60]中所做的那样进行校正,也应该有助于减少假阳性,特别是在靠近相机的区域。
计算成本:滑动窗口填充算法在计算上很昂贵,需要多次执行填充器。当前简单的实现在单个A100 GPU上,以RoadObstacles21验证数据集为基准,每帧需要6.7秒(填充)加上0.2秒(不一致性网络)。由于这项工作旨在作为一个概念验证,我们使用了没有针对生产优化的现成填充代码。解决这个问题的一种方法是切换到16位精度,这在现代GPU上效率更高。另一种方法是并行化填充。此外,即使我们方法的慢速版本也可以有效使用:由于我们的算法可以检测到以前未见过的障碍物,它可以用于从未标记的视频中提取障碍物,用于额外的监督训练,即使没有实时推理。

V. 结论

我们引入了一个流程,能够仅使用单一单目图像作为输入,在驾驶场景中检测道路障碍物。我们对可行驶区域进行填充,擦除局部障碍物,同时保留道路表面。我们的不一致性网络学会准确检测被移除的障碍物并忽略无关的重建工件。这个检测器,仅用Cityscapes数据进行合成修改后的训练,能够泛化到各种真实世界的障碍物和道路表面。我们在Fishyscapes Lost & Found基准以及我们新收集的数据集上展示了这一点。我们将向社区发布我们的数据集,以帮助这一领域的研究人员。
未来,我们将致力于更紧密地耦合检测可行驶区域的算法和我们的算法,以改进结果,并可能将其集成到完整的自动驾驶系统中。我们还计划利用自适应填充补丁大小来考虑透视失真。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

CVPaper
这里有知识和乐趣,感悟和哲理,一起来嗨!!!
 最新文章