1摘要:
光流估计是自动驾驶应用中的一个研究热点。许多优秀的光流估计方法已经被提出,但在常见的挑战性场景中进行测试时,它们会变得错误(erroneous)。尽管鱼眼相机在自动驾驶中的近场感知(near-field sensing)应用越来越多,但关于强透镜畸变(strong lens distortion)的光流估计的文献非常有限。因此,本文提出并评估训练策略,以改善基于学习的光流算法,通过利用具有光流 ground truth 的唯一现有鱼眼数据集。在用合成数据进行训练时,该模型显示了对真实世界鱼眼数据进行泛化的强大能力。另一个被现有的先进算法所忽视的挑战是弱光(low light)。本文提出了一个新的、通用的半监督框架,它显著地提高了现有方法在这种条件下的性能。据本文所知,这是第一个明确处理弱光下光流估计的方法。
21 介绍:
近年来,计算机视觉领域的发展推动了自动驾驶汽车(AV)感知系统的快速发展。光流估计是计算机视觉的基本问题之一,在自动驾驶中有着广泛的应用。具体来说,光流估计有助于车辆感知周围环境的时间连续性,因此它在基于时间序列的任务中发挥了重要作用,如目标跟踪[1,2]、视觉里程计[3]、语义分割[4]、运动分割[5]、SLAM系统[6]等。Horn和Schunck[7]提出了第一种通过能量最小化计算光流的方法,许多优秀的方法在此基础上获得了更好的结果。然而,对于像AV这样的实时应用,复杂目标的优化问题通常计算量很大。为了实现更快、更可靠的性能,端到端神经网络被提出[8,9,10,11]。这些基于数据驱动的学习方法对遮挡、大位移和运动模糊等挑战具有更高的效率和鲁棒性,这些挑战打破了传统方法所建立的亮度恒定和小运动(small motion)假设。然而,在AV应用中仍然存在一些独特的挑战,这些挑战被现有的最先进的方法所忽视。本文研究了其中遇到的两个难题,并分别提出了解决方案:镜头畸变(lens distortion)和弱光场景(low-light scenes)。
近场感知(Near-field)是自动驾驶中一个普遍存在的话题。一些主要的用例是自动停车系统和交通堵塞辅助系统。近场传感通常是通过建立一个带有大量广角摄像机的环绕视图(surround-view)系统来实现的,这些摄像机具有很强的径向畸变(radial distortion)。例如,鱼眼相机提供了比标准针孔相机更宽的视野(FOV),实际上,位于前、后和每个翼镜上的四个鱼眼相机足以为全尺寸车辆构建环绕视图系统[12]。尽管这种鱼眼系统被广泛应用,但据本文所知,以前还没有明确地处理像鱼眼这样的透镜畸变较强的图像的光流估计的工作。如图1所示,当前最先进的方法之一[11]在从WoodScape[13]获取鱼眼图像时显示错误的结果,因为它只聚焦于具有轻微径向畸变的窄视场相机(narrow field-of-view cameras)。解决这一问题的一个直观的方法是在输入图像通过神经网络之前,作为预处理步骤校正输入图像中的畸变。然而,这不可避免地导致减小的视场(field-of-view)和周边的重采样失真伪影(resampling distortion artifacts)[14]。在没有校正的情况下建立汽车数据集是鱼眼图像光流估计的主要瓶颈。很少有合成数据集提供与鱼眼图像相关联的光流ground truth[15],而不存在具有光流ground truth的真实世界数据集。这是由于每两个连续帧之间的每像素运动极难手动标记的事实。模拟器[16,17]可以很容易地产生背景运动,但动态前景对象需要明确地处理。本文通过使用唯一具有光流ground truth的现有数据集SynWoodScape [15],研究并提高RAFT在强畸变输入上的性能。
大多数AV应用程序预计不仅在白天运行,而且在晚上运行。相机变得不可靠,基于相机的计算在弱光条件下容易失败,因为它容易受到噪声和不一致的曝光(exposure)。(Alternatively),激光雷达传感器可以在弱光自动驾驶中稳健地执行[18],因为测量发射激光飞行时间的主动传感器与照明无关。然而,激光雷达体积大,成本高,需要更多的计算和内存资源来处理输出,这使得它不如相机,如果后者可以在弱光下提供同等可靠的结果。热成像摄像机[19]提供了强健的弱光性能,但它们在最近的自动驾驶系统中并不常用。由于弱光是一个复杂的场景,信噪比低、运动模糊以及多光源引起的局部光照变化,现有的光流方法对弱光数据的处理能力较差。此外,目前的光流数据集[20,21,22]主要是白天的图像。在这篇论文中,本文提出了一个新颖的,通用的架构,以一种半监督的方式方便地学习夜间鲁棒(nighttime-robust)表示,而不需要任何额外的数据帮助或牺牲白天的性能。据本文所知,这是第一个基于学习的明确地处理在弱光下光流估计的方法。
本文的主要贡献有:
-
介绍和研究了用于AV应用的光流估计的两个挑战:强透镜畸变(strong lens distortion)和弱光场景(low-light scenes)。
-
鱼眼输入基线光流算法的实现与改进及实验验证。
-
为基于学习的光流算法实现一个有效但也是通用的新策略学习夜间鲁棒表示的框架。
论文的组织方式如下。第二节讨论了汽车工业中光流估计的相关工作,以及解决上述两个挑战的现有尝试。第三节描述了本文提出的流估计算法的实现,分别为鱼眼和弱光输入,以及介绍了实验评估和结果分析。最后,第四节讨论了AV应用中流估计(flow estimation)的剩余挑战,并对本文进行了总结。
32 相关工作:
光流估计:传统的解决方案已经研究和调整(adapted)了几十年[7,23]。为了鲁棒应对更具挑战性的开放世界问题,包括缺乏特征、不同尺度的运动和遮挡,新的基于学习的方法优于传统的方法。Dosovitskiy等人[8]提出FlowNetS和FlowNetC,这是一个开创性的工作,显示了直接估计给定图像的光流的可行性。Sun等人[9]设计PWC-Net,一个基于金字塔处理、warping和使用成本体积(the use of a cost volume)的更有效的解决方案。Teed and Deng提出的的RAFT[11]通过对所有像素对建立多尺度4D相关体积,并通过基于门控循环单元(GRU)的精化模块迭代更新流估计,证明了显著的改进。所有这些方法都是使用标准针孔相机的图像进行全监督和训练的。训练数据也是在亮度充足的白天采集的。它们都没有关注光流在镜头强畸变、夜间行驶等更具挑战性的AV应用中的表现,从而导致误差甚至灾难性故障(catastrophic failures)。
强透镜畸变(Strong Lens Distortion):对于强烈畸变的图像,如鱼眼图像,在感知任务方面的工作非常有限。流行的方法包括在将图像传递到任何规则的感知管道之前纠正径向畸变。然而,这将不可避免地带来缩小的视场和重采样失真伪影,特别是在图像边界[14]。空间变异的畸变使得更近的物体看起来更大,也给几何感知任务带来了缩放问题和复杂性。此外,Rashed等人[24]表明目标检测中常用的bounding boxes不再适用于畸变图像中的矩形物体。在[25]中探讨了检测目标的更复杂的表示,例如利用已知径向畸变的弯曲bounding boxes。虽然有一些文献在其他感知任务上使用未经校正的畸变图像,如深度估计[26,27]、soiling[28]、视觉里程计[29]和多任务模型[30,31],但由于标记ground truth的困难,没有估计光流的先前工作。WoodScape [13],KITTI 360 [32] 和 Oxford RobotCar [33]是一些知名的包含鱼眼图像等强畸变图像的自动驾驶数据集,但它们都没有光流ground truth。本文利用了最近发表的合成鱼眼数据集SynWoodScape[15],这是第一个利用从模拟器中提取的其他数据模态进行解析计算,同时提供了前景和背景运动的光流的数据集。本文使用来自SynWoodScape的合成数据来训练本文的网络,并根据来自WoodScape的真实世界的鱼眼数据来评估它。
弱光场景:类似于强畸变图像上的光流估计,在一些感知任务中有一些处理弱光的工作[18,34,35],但是它们中没有一个提出对弱光场景鲁棒的光流估计算法。和本文非常相关,Zheng等人[36]提出:一种通过在黑暗的原始图像上模拟噪声模型来合成弱光光流数据的方法,然后用它来优化一个现成的网络。然而,他们的方法不能综合真实世界弱光场景的更逼真的特征,如运动模糊和多光源带来的局部光照变化。它们的改进也非常有限,因为现成的网络没有被设计或训练来学习夜间鲁棒的表示。此外,各种用于弱光图像增强[37,38]和图像到图像转换[39,40]的技术已经被开发。前者可以通过使给定的弱光图像变亮来在推断过程中对流估计网络的输入进行预处理,而后者可以将白天图像转换成其夜间对应图像,以补充弱光中光流数据集的不足[18]。但这两种方法都不利于网络训练,因为处理后的数据会带来额外的复杂性,如额外的人为噪声、过度曝光或跨帧不一致的图像转换。最后,半监督学习是解决特定场景中光流数据缺乏的常见方法,其中一组预定义的变换被应用于原始标记数据,并且扰动数据的输出被强制与原始数据的输出一致[41]。例如,Jeong等人[42]使用一个半监督的设置来对光流估计施加平移和旋转一致性方差(impose translation and rotation consistency equivariance)。Yan等人[43]从干净的和标记的图像合成雾图像,以避免在浓雾场景中造成的流估计误差。类似于这些半监督的方法,我们结合了弱光一致性(low-light consistency),便于学习明确的夜间鲁棒表示,而不需要额外的标记。
43 提出的算法和结果
在本节中,本文分别描述了强畸变输入和弱光输入的两种提出的光流估计算法。给出了相应的实验评价和结果分析。
3. A Strong Lens Distortion 强透镜畸变
具有强透镜畸变的数据集的有限可用性是阻碍最近的方法泛化到更畸变的输入的瓶颈。在SynWoodScape[15]的帮助下,本文能够训练出一个以RAFT[11]为骨干的光流模型,该模型在强畸变镜头上很好地泛化,而不牺牲其在针孔相机(pinhole cameras)上的原始性能。SynWoodScape[15]是第一个同时提供前景和背景运动的光流ground truth的鱼眼数据集。
本文在现实世界的鱼眼汽车数据集上运行现成的RAFT,例如WoodScape[13],本文发现尖锐和不一致的光流估计,特别是在图1中的地面平面上说明了这一点。为了解决这一问题,本文提供了两个基线及其定性和定量的验证。一种是按照表1a中的训练schedule,使用SynWoodScape来优化预训练RAFT。另一种方法是在基于学习的光流方法中经常使用的 SynWoodScape和针孔相机的图像上联合训练RAFT[8,20,21,22,44]。联合训练基线遵循表1b中的训练schedule。
然后本文在表2中显示定量结果。本文使用端点误差(EPE)作为度量,它是光流估计的标准误差度量。它估计流矢量和ground truth之间的欧几里得距离,并在所有像素上平均。本文对上面描述的两个基线(阶段“Finetune”和”Joint”)以及作者(the author)在SynWoodScape、Sintel(clean and final passes)和KITTI的四个 hold-out 测试集上提供的预训练模型(阶段“sintel”)进行评估。SynWoodScape是唯一一个强畸变输入的测试集,而其他三个是假设畸变非常小的针孔相机模型。尽管预训练的模型在针孔摄像机上表现出色,但在鱼眼输入上性能显著下降。本文的第一个基线,在鱼眼图像上的一个微调(finetuned),在SynWoodScape上给出了最好的结果,但在其他方面的性能非常差。这与本文的期望是一致的,因为在没有考虑泛化的情况下,对针孔(pinhole)相机和鱼眼相机的预训练和微调(finetuned)模型分别进行了最佳训练。另一方面,本文的第二个基线,联合训练的模型,保持第二好(keeps the second best),同时非常接近所有四个数据集的最佳得分。因此,联合训练提供了一个直截了当但很强的基线,在具有明显畸变的镜头上的泛化很好(generalizes well)。
在图2中,本文进一步展示了它们在WoodScape上的定性结果,这些结果支持本文通过联合训练RAFT对混合透镜畸变所获得的改进。在前视图的情况下,注意联合训练的模型如何能够一致地估计地面的流,因为(as)这是图1所示的最近方法的主要失败。在侧视摄像机上的结果还表明,联合训练的模型比其finetuned counterpart捕捉到了更精细的(finer)细节。例如,在右侧视图中,不仅解决了地面上的不一致性,而且还清晰地估计了右上角自行车轮相关的光流。在左侧视图中,经过微调后的模型(the finetuned model)忽略了与车辆前轮相关的流,这是由预训练的模型捕获的,但联合训练的模型“恢复”了这样的详细估计。换句话说,由于鱼眼相机和针孔相机之间的投影几何形状明显不同,微调后的模型(the finetuned model) 估计出更一致的光流,这对预训练模型提出了挑战,但反过来,由于考虑到镜头的强烈畸变,有趣的局部特征变得不那么重要,它丢失了预训练模型观察到的一些细节。然而,联合训练模型在前两个模型中实现了很大的权衡:它在局部重新捕捉细节的同时,在不同的摄像机视图中保持良好的全局性能。
3. B Low-Light Scenes 弱光场景
图3:本文提出的框架概述。在训练过程中,该框架以两个连续的帧作为输入,通过一组弱光特定的数据增强,并应用随机光照mask。然后光流估计器并行估计两对增强(augmented)帧上的流。该网络受到两种损失的监督:传统的光流损失和新的亮度一致性损失。在推理过程中,输入帧被直接传递到输出光流的估计器中,这是现有技术中的标准方式。
本文提出了一个新的和通用的半监督框架,显着提高了现有的最先进的方法在弱光条件下的性能。图3显示了框架的体系结构。本文的框架的好处有三个方面。首先,它独立于现有方法的设计,因此人们可以将它广泛地应用于他所选择的估计器(例如[8,9,11,45]),并提高它的夜间性能。其次,半监督学习不需要任何额外的数据,因为夜间光流数据集的标记代价是巨大的。最后,在不做任何权衡的情况下,保持估计器在原始日间数据上的竞争性能。
本文首先分解弱光下光流估计失败的根本原因,然后在相应地解决这些根本原因的框架中描述本文提出的策略:
-
夜间拍摄图像的复杂噪声模型(model),
-
曝光时间较长导致的严重运动模糊,
-
场景中多个独立光源带来的局部亮度不一致
在弱光下拍摄的图像往往比在足够的环境光下拍摄的图像具有更复杂的噪声。现有的光流估计方法在数据增强步骤中从未合成这些噪声,这是光流估计器在弱光下失效的第一个原因。类似于[36],本文将弱光下的噪声模型分解为the photon shot noise和thermal noise的集合体。前者是由于不同曝光水平和像素位置击中传感器的光子量(amount of photons)的变化。光子散粒噪声(The photon shot noise)近似为泊松分布。热噪声(Thermal noise)是指传感器读出电路(readout circuitry)中的噪声,用高斯分布(Gaussian distribution)近似。因此,在数据增强步骤中,本文将弱光噪声合成到输入帧上作为一个额外的数据增强。具体地说,本文从真实世界的弱光图像中观察到的范围中采样泊松和高斯参数(a,b),将其形成一个单异方差高斯(a single heteroscedastic Gaussian)(方程1),并将其应用于输入帧 I。以0.5的概率,在每对连续帧上执行弱光噪声增强。
运动模糊是本文在弱光下估计光流时,需要解决的另一个根本原因。为了模拟较长曝光时间引起的模糊效果,本文利用点扩展函数(Point Spread Functions)(PSF)在不同的核大小和强度下生成真实的运动模糊核(authentic motion blur kernels)。强度(intensity)决定了运动模糊看起来如何非线性和抖动。与弱光噪声相似,本文将真实模糊应用于一对输入帧,作为一个额外的数据增强,概率为0.6。图4显示了两种引入的数据增强策略。
局部亮度不一致是最后但并非不重要的(the last but not least)根本原因。这是由于弱光场景中存在多个独立的照明光源(街灯、前灯、月光等),导致图像中明亮区域不均匀。例如,图3中的原始输入中的接地层(the ground plane)仅在车辆前灯前面被照亮,但在其他地方保持黑暗。与白天太阳是主要光源不同,即使在相同的目标上,夜间拍摄的图像也有不一致的局部亮度。由于光流是通过匹配两幅图像上的像素来估计的,这种不一致导致现有的方法容易失败。例如,在图5中,第一行显示了RAFT的灾难性故障(catastrophic failure),当行人从黑暗中走到车辆前灯处,他的照明在不同帧之间发生了剧烈变化。为了解决这个问题,本文求助于半监督学习。与[42]类似,本文也采用了cow-mask[46]来创建足够随机但局部连接的照明模式(sufficiently random yet locally connected illumination patterns),因为在图像中的任何大小、形状和位置上都存在不一致的局部亮度,同时显示局部可解释的结构(locally explainable structures),这取决于驾驶环境和时间。本文将相同的二值掩码(binary mask)应用于原始的输入帧对,并根据掩码随机调整像素的亮度。二值掩码(binary mask)的真实面积从图像的40%到70%均匀采样。在0.5的概率下,本文增加了真区域的绝对亮度,而在剩余的时间里,本文增加了假区域的亮度。最后,本文介绍了局部亮度一致性正则化。本文使用和来表示在使用和不使用随机亮度掩码的情况下数据增强后的输入对。图3中的两个传递(passes)都是独立的,除了空间变换是共享的,以便在一致性损失(consistency loss)计算中保持相同的裁剪区域。局部亮度一致性损失计算如下
这种正则化显示约束网络输出一致性光流在两个位置上, 和 ,从而加强了原始对(original pair)的估计光流与随机变换对(randomly transformed pair)的估计光流之间的光照不变性。请注意,这种半监督方法与作为另一种数据增强方案的简单随机调整亮度有何不同,后者扩展训练样本,而不会在训练期间强加复杂的一致性损失。
本文选择RAFT[11]作为estimator,本文在总损失上监督本文的网络。是在所有迭代i上预测流和ground truth流之间的距离,如[11]:
由于缺乏具有光流ground truth的夜间数据,本文只能对本文的方法进行定性评价,简称RAFT-Dark。本文使用CULane[47],这是一个大型汽车数据集,包含了许多具有挑战性的现实世界弱光序列。在图5中,本文展示了在一些低速序列上vanilla RAFT和RAFT-Dark之间的比较。RAFT-Dark显示出优于RAFT的性能。在第一排、第三排和第四排,RAFT-Dark能够检测与行人和车辆相关的运动,这些运动要么经历了一些剧烈的光照变化,要么看起来太暗和嘈杂。在其他情况下,请注意RAFT-Dark如何在地平面(ground plane)以及与ego vehicle运动一致的方向和幅度上给出明显更好的估计。为了方便起见,在右上角附加了一个彩色编码轮,用于可视化每个像素的光流矢量:颜色表示流矢量的方向,而强度表示位移的长度。由于ego vehicle总是向前行驶,所以前摄图像中的ground truth 光流矢量应该直观地指向图像边界,远离图像中心。并且由于运动视差,人们应该期望朝向图像边界的流矢量有较大的幅度,而图像中心周围的流矢量有较小的幅度。换句话说,虽然本文无法获得数字ground truth流,但本文知道颜色编码的ground truth应该表现出与色轮相同的模式:图像的左侧为蓝色或绿色(bluish or greenish),而右侧为红色或黄色(reddish or yellowish)。考虑到这一点,RAFT无法估计与车辆运动一致的正确光流,尤其是在背景区域,如地面。另一方面,RAFT-Dark不仅在这些区域表现出色,而且在某些情况下还学会了分离黑暗的天空,并捕捉细节,如第二排的路灯。图6中CULane的高速序列进一步说明了这种改进。
本文的学习策略框架使RAFT平均提高50%以上的估计精度(基于视觉观测),甚至解决了一些灾难性的失败。虽然本文以RAFT作为估计器来展示本文的结果,但本文的框架是通用的,人们可以用自己选择的任何现有的最先进的方法来代替RAFT。
3. C Discussion 讨论
这项工作的目标是强调解决光流挑战的重要性,这些挑战在自动驾驶中没有得到很好的探索。本文研究了其中的两个问题,并据此提出了本文的解决方案,但其他问题需要进一步研究。数据的缺乏往往是大多数数据驱动光流算法的主要瓶颈。本文可以利用合成数据来改善现有方法对各种镜头畸变的适应能力,但当这些方法在真实世界鱼眼数据上进行评估时,仍然存在sim-to-real的差距。在没有任何合成数据的情况下,弱光下的光流不能以同样的方式处理。本文在网络推理之前进行了图像增强实验,但由于增强是每帧增强而不是每对帧增强,并且很容易破坏时间一致性,结果更差。在没有任何额外数据的情况下,本文的方法充分利用了公开可用的数据,并通过新的数据增强方案和半监督学习模拟了(simulates)三个根本原因。然而,弱光仅仅是使光流估计变得更加困难的许多场景中的一个。其他包括雾、雨或雪天气[48]。本文鼓励对所有这些情况采取统一和鲁棒(robust)的方法,本文也认为这是一个社区进一步研究的机会。
5四、结论
透镜畸变(lens distortion)和弱光(low light)对更高水平的自动驾驶来说都是重要的问题,但由于没有公共数据集,光流社区没有详细探讨这些问题。为此,本文分别提出了解决这两个问题的方法。通过对合成鱼眼数据的训练,本文实现并改进了一种最先进的光流算法,证明了该算法对真实畸变图像的适应性以及对各种镜头畸变(lens distortions)的泛化能力。本文实现了一个新颖的、通用的框架,以半监督的方式促进(facilitates)学习夜间鲁棒(nighttime-robust)的表示,它显示出优于现有技术的性能。在未来的工作中,本文计划将本文目前的解决方案集成到更高级别的管道(higher-level pipelines)中,并探索自动驾驶背景下光流估计的其他独特挑战。
6五、参考:
Shen S, Kerofsky L, Yogamani S. Optical Flow for Autonomous Driving: Applications, Challenges and Improvements[J]. arXiv preprint arXiv:2301.04422, 2023.