全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化) 原创

自动驾驶之心
发布于 2022-11-7 21:02
浏览
0收藏

欢迎关注国内首个以自动驾驶技术栈为主线的交流学习社区!
微信公众号【自动驾驶之心】

cameras是自动驾驶系统中的主要传感器,它们提供高信息密度,最适合检测为人类视觉而设置的道路基础设施。全景相机系统通常包括四个鱼眼摄像头,190°+视野覆盖车辆周围的整个360°,聚焦于近场感知。它们是低速、高精度和近距离传感应用的主要传感器,如自动泊车、交通堵塞辅助和低速紧急制动。在这项工作中,论文对此类视觉系统进行了详细的调查,并在可分解为四个模块组件(即识别、重建、重新定位和重组)的架构背景下进行了调查,共同称之为4R架构。论文讨论了每个组件如何完成一个特定方面,并提供了一个位置论证(即它们可以协同作用),形成一个完整的低速自动化感知系统。

本文的工作部分受到了Malik等人在[5]中的工作的启发。这项工作的作者提出,计算机视觉的核心问题是重建、识别和重组,他们称之为计算机视觉的3R。在此,论文建议将计算机视觉的3R扩展并专门化为自动驾驶计算机视觉的4R:重建、识别、重组和重新定位。

重建意味着从视频序列推断场景几何体,包括车辆在场景中的位置。这一点的重要性应该是显而易见的,因为它对于场景绘制、障碍物避免、机动和车辆控制等问题至关重要。Malik等人将此扩展到几何推断之外,以包括反射和照明等特性。然而,这些附加属性(至少目前)在自动驾驶计算机视觉环境中并不重要,因此论文将重建定义为更传统意义上的三维几何恢复。

识别是一个术语,用于将语义标签附加到视频图像或场景的各个方面,识别中包括层次结构。例如,自行车手有一个空间层次结构,因为它可以分为自行车和骑手的子集,而车辆类别可以有汽车、卡车、自行车等分类子类别。只要对自动驾驶系统有用,这种情况就可以继续下去。灯可以按类型(车灯、路灯、刹车灯等)、颜色(红、黄、绿)以及它们对自动驾驶车辆的重要性(需要响应,可以忽略)进行分类,从而完成系统的高级推理。

重新定位是指车辆相对于其周围环境的位置识别和度量定位。可以针对宿主车辆中预先记录的轨迹进行,例如,经过训练的停车场,也可以针对从基础设施传输的地图进行,例如HD Maps。它与SLAM中的环路闭合高度相关,尽管不只是考虑环路闭合问题,而是考虑根据一个或多个预定义地图定位车辆的更广泛问题。

重组是将计算机视觉前三个组成部分的信息组合成统一表示的方法。在本文中,使用这个术语来等同于“后期融合”,这是自动驾驶的重要步骤,因为车辆控制需要传感器输出的统一表示,这也允许在后期融合多个摄像头的输出。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

近域感知系统介绍

自动停车系统

自动停车系统是短距离传感的主要用例之一,图4描述了一些典型的停车用例。早期商业半自动泊车系统采用超声波传感器或radar,然而,最近,全景摄像头正成为自动停车的主要传感器之一。超声波和毫米波雷达传感器用于自动停车的一个主要限制是,只能根据存在的其他障碍物来识别停车位(图5)。此外,环视相机系统允许在存在可视停车标记(如涂漆线标记)的情况下停车,同时也被视为实现代客泊车系统的关键技术。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

交通拥堵辅助系统

由于大部分事故都是低速追尾碰撞,交通拥堵情况被认为是短期内可以带来好处的驾驶领域之一,尽管目前的系统可能缺乏鲁棒性。在自动交通拥堵辅助系统中,车辆在交通拥堵情况下控制纵向和横向位置(图6)。此功能通常用于低速环境,最高速度为∼60kph,但建议更低的最高速度为40kph。虽然交通拥堵援助通常考虑高速公路场景,但已经对城市交通拥堵救援系统进行了调查。鉴于此应用的低速特性,全景摄像头是理想的传感器,尤其是在城市环境中,例如,行人可以尝试从传统前向摄像头或radar系统视野之外的区域穿过。图7显示了使用全景相机进行交通堵塞辅助的示例。除了检测其他道路使用者和标记外,深度估计和SLAM等特征对于推断到物体的距离和控制车辆位置也很重要。
全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

低速制动

一项研究表明,自动后向制动显著降低了碰撞索赔率,配备后摄像头、驻车辅助和自动制动的车辆报告碰撞减少了78%。全景相机系统对于低速制动非常有用,因为深度估计和目标检测的组合是实现此功能的基础。

鱼眼相机

鱼眼相机为自动驾驶应用提供了明显的优势,由于视野极广,可以用最少的传感器观察车辆的整个周围。通常,360°范围只需要四个摄像头覆盖。然而,考虑到更为复杂的投影几何体,这一优势带来了成本。过去的几篇论文综述了如何建模鱼眼几何形状,例如[34]。论文不打算在此重复这一点,而是关注鱼眼相机技术的使用给自动驾驶视觉带来的问题。

在标准视场相机中,直线投影和透视的原理非常接近,具有常见的透视特性,即现实世界中的直线在图像平面上投影为直线。平行的直线组被投影为一组直线,这些直线在图像平面上的一个消失点上会聚。通过光学畸变的偏离很容易纠正。许多汽车数据集提供的图像数据消除了光学畸变,具有简单的校正方法,或几乎不可察觉的光学畸变。因此,大多数汽车视觉研究都隐含了直线投影的假设,鱼眼透视图与直线透视图有很大不同。相机场景中的一条直线被投影为鱼眼图像平面上的一条曲线,平行线集被投影为一组在两个消失点处会聚的曲线[38]。然而,失真并不是唯一的影响,图8显示了环视系统中安装在镜子上的典型摄像头的图像。在鱼眼相机中,物体图像中的方向取决于它们在图像中的位置。在本例中,左侧的车辆旋转了近90◦ 与右侧车辆相比,这对目标检测卷积方法中假定的平移不变性有影响。在标准相机中,平移不变性是可以接受的假设。然而,如图8所示,鱼眼图像并非如此,在任何计算机视觉算法设计中,必须仔细考虑如何处理这一点。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

解决这些问题的自然方法是以某种方式纠正图像。可以立即放弃对单个平面图像的校正,因为首先,过多的视野必然会丢失,从而抵消鱼眼图像的优势,其次,插值和透视伪影将很快占据校正输出的主导地位。一种常见的方法是使用多平面校正,即鱼眼图像的不同部分被扭曲成不同的平面图像。例如可以定义一个立方体,并将图像扭曲到立方体的曲面上。图9显示了两个此类表面上的翘曲。即使在这里,插值和透视效果也是可见的,必须处理曲面过渡的复杂性。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

另一种校正方法是考虑圆柱表面的warping ,如图10所示,在这种warping 中,圆柱轴线的配置使其垂直于地面。观察结果表明,汽车场景中的大多数感兴趣对象都位于近似水平的平面上,即路面上。因此希望保留水平视野,同时允许牺牲一些垂直视野,这带来了有趣的几何组合。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

垂直是通过线性透视投影,因此场景中的垂直线在图像中投影为垂直线。图像中较远或较小的对象在视觉上类似于透视相机,甚至有人建议,通过这种变形,可以使用标准透视相机训练网络,并在鱼眼图像上直接使用它们,而无需训练[39]。然而,在水平方向上,新图像中存在失真,大型近景物体表现出强烈的失真,有时甚至比原始鱼眼图像中的失真还要大。

如图11所示,当我们处理透视相机时,当物体与相机以恒定的Z距离移动时,就会产生平移,也就是说,在与图像平面平行的平面上。然而,在圆柱形图像中,水平面上的距离必须保持不变,才能进行图像平移(对象必须绕圆柱体轴旋转)。相比之下,在原始鱼眼图像中,不清楚什么对象运动会导致图像平移。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

WoodScape dataset

WoodScape全景数据集在两个不同的地理位置采集的:美国和欧洲。虽然大多数数据是从轿车中获得的,但运动型多用途车中有很大一部分数据可确保传感器机械配置的强大组合,驾驶场景分为高速公路、城市驾驶和停车用例。数据集中为所有传感器以及时间戳文件提供内部和外部校准,以实现数据同步,包括相关车辆的机械数据(例如,车轮周长、轴距)。为该数据集记录的传感器如下所示:

  • 1)4x 1MPx RGB鱼眼摄像头(190◦ 水平视野)
  • 2)1x激光雷达,20Hz旋转(Velodyne HDL-64E)
  • 3)1x全球导航系统/惯性测量装置(NovAtel Propak6和SPAN-IGM-A1)
  • 4)1x带SPS的GNSS定位(Garmin 18x)
  • 5)来自车辆总线的里程表信号

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

系统架构注意事项

在自动驾驶计算机视觉设计中,尤其是pipelines设计中,一个重要的考虑因素是嵌入式系统的约束,其中多个摄像头和多个计算机视觉算法必须并行运行。由于计算机视觉算法是计算密集型的,汽车SoC有许多专用硬件加速器用于图像信号处理、镜头畸变校正、密集光流、立体视差等。在计算机视觉中,深度学习在各种识别任务中发挥着主导作用,并逐渐用于几何任务,如深度和运动估计。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

为了最大限度地提高处理硬件的性能,最好从处理阶段的角度考虑嵌入式视觉,并在每个处理阶段考虑共享处理,pipelines如图12所示。

1) 预处理:pipelines的预处理阶段可以看作是为计算机视觉准备数据的处理。这包括图像信号处理(ISP)步骤,如白平衡、去噪、颜色校正和颜色空间转换。关于ISP和ISP在汽车环境中用于计算机视觉任务的调整的详细讨论,请参考[52]。ISP通常由硬件引擎完成,例如作为主要SoC的一部分。很少在软件中完成,因为需要完成大量像素级处理。正在提出一些方法来自动将ISP管道的超参数调整为优化计算机视觉算法的性能[52]、[53]。值得注意的是,目前正在提出简化ISP视觉感知pipelines的方法,可以参考[54]。

2) 像素处理阶段:像素处理可以被视为计算机视觉体系结构中直接接触图像的部分。在经典的计算机视觉中,这些算法包括边缘检测、特征检测、描述符、形态运算、图像配准、立体视差等。在神经网络中,这等同于CNN编码器的早期层。这一阶段的处理主要由相对简单的算法控制,这些算法必须每秒多次在数百万像素上运行。也就是说,计算成本与这些算法每秒可能运行数百万次的事实有关,而不是与算法本身的复杂性有关。这一阶段的处理硬件通常由硬件加速器和GPU主导,尽管有些元素可能适合DSP。

3) 中间处理阶段:顾名思义,中间处理阶段是从像素到对象检测阶段之间的桥梁。在这里,要处理的数据量仍然很高,但大大低于像素处理阶段。这可能包括通过视觉里程表估计车辆运动、视差图的立体三角测量和场景的一般特征重建等步骤,在pipelines的这个阶段包括CNN解码器。这个阶段的处理硬件通常是数字信号处理器。

4) 目标处理阶段:对象处理阶段是整合更高层次推理的阶段,在这里可以聚类点云来创建目标,对对象进行分类,并且通过上述推理,可以应用算法来抑制移动目标的重缩放。此阶段的处理主要由更复杂的算法控制,但操作的数据点较少。就硬件而言,通常适合在ARM等通用处理单元上运行这些处理器,尽管通常也会使用数字信号处理器。

5) 后处理:最后后处理阶段,也可以称为全局处理阶段。在时间和空间上持久化数据。由于可以拥有长时间持久性和大空间地图,因此前几个阶段的总体目标是最小化到达此阶段的数据量,同时维护最终用于车辆控制的所有相关信息。在此阶段,将包括 bundle adjustment、地图构建、高级目标跟踪和预测以及各种计算机视觉输入的融合等步骤。由于处理的是系统中最高级别的推理,并且理想情况下处理的是最少的数据点,因此这里通常需要通用处理单元。

4R部件介绍

识别

识别任务通过模式识别识别场景的语义。在汽车领域,第一个成功的应用是行人检测,它结合了手工设计的特征,如定向梯度直方图和机器学习分类器,如支持向量机。最近CNN在目标识别应用程序中的各种计算机视觉任务中表现出显著的性能飞跃,然而,这是有代价的。首先,汽车场景非常多样化,预计该系统将在不同国家以及不同的天气和照明条件下工作,因此,主要挑战之一是建立一个涵盖不同方面的有效数据集。其次,CNN是计算密集型的,通常需要专用硬件加速器或GPU(与在通用计算核心上可行的经典机器学习方法相比)。因此,有效的设计技术对于任何设计都至关重要,最后,虽然对正常图像的CNN进行了很好的研究,但如前所述,鱼眼图像的平移不变性假设被打破,这带来了额外的挑战。

本文的识别pipelines中,提出了一种基于外观模式识别对象的多任务深度学习网络。它包括三个任务,即目标检测(行人、车辆和骑车人)、语义分割(道路、路缘和道路标记)和透镜污染检测(不透明、半透明、透明、透明)。目标检测和语义分割是标准任务,有关更多实现细节,请参阅FisheyeMultiNet论文。其中一个挑战是在训练阶段平衡三个任务的权重,因为一个任务可能比其他任务收敛得更快。

鱼眼摄像头安装在车辆上相对较低的位置(∼地面以上0.5至1.2米),容易因其它车辆的道路喷雾或道路水而导致透镜脏污。因此,检测摄像头上的污物至关重要 镜头提醒驾驶员清洁摄像头或触发清洁系统。SoilingNet中详细讨论了污垢检测任务及其在清洁和算法降级中的使用,与此密切相关的一项任务是通过修补修复受污染区域的去污,但这些去污技术目前仍属于可视化改进领域,而不是用于感知。这是一个定义不清的问题,因为不可能预测遮挡的背后(尽管这可以通过利用时间信息来改善)。由于低功耗汽车ECU的CNN处理能力有限,本文使用多任务架构,其中大部分计算在编码器中共享,如图13所示。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

重建

如前所述,重建意味着从视频序列推断场景几何体。例如,这通常意味着估算场景的点云或体素化表示。静态对象的重建,传统上是使用诸如运动立体[56]或多视图几何中的三角剖分[73]等方法来完成的。在设计深度估计算法的背景下,[74]中简要概述了人类如何推断深度,并提供了有用的进一步参考。推断深度有四种基本方法:单目视觉线索、运动视差、立体视觉和focus深度。每种方法在计算机视觉方面都有其等效性,根据Marr&Poggio早期的理论工作[75],Grimson在20世纪80年代早期提供了立体视觉的计算实现[76],自那时以来立体视觉方面的工作一直在继续。然而,立体视觉系统并没有普遍在车辆上实现部署,因此,单目运动视差方法在汽车研究中仍然很流行。从计算上看,运动视差的深度传统上是通过特征三角剖分完成的[78],但运动立体也被证明很流行[79]。

考虑鱼眼图像会增加重建任务的复杂性,多视图几何、立体视觉和深度估计中的大多数工作通常假设场景的平面透视图像。传统的立体方法进一步限制了图像中的极线必须是水平的,然而,真实相机很少出现这种情况,因为存在镜头畸变,从而破坏了平面投影模型。它通常通过图像的校准和校正来解决。然而,对于镜头畸变非常严重的鱼眼图像,在校正过程中保持宽视场是不可行的。领域已经提出了几种鱼眼立体深度估计方法,常见的方法是多平面校正,其中鱼眼图像映射到多个透视平面[82]。然而,如前所述,任何平面校正(即使有多个平面)都会遭受严重的重采样失真。要最小化此重采样提出了对非平面图像进行畸变、校正的方法,有些方法会扭曲不同的图像几何形状,以保持极线笔直和水平的立体要求[83]。还有一些方法绕过了极线水平的要求,例如,最近将平面扫描法[84]、[85]应用于鱼眼[86]。鱼眼图像重采样的一个相关问题是,噪声函数被重采样过程扭曲,这对于任何试图最小化重投影误差的方法来说都是一个问题。Kukelova等人[73]使用标准视场相机的迭代技术解决了这一问题,该技术在避免失真的同时最小化了重投影误差。然而,这种方法取决于特定的相机型号,因此不直接适用于鱼眼相机。

重建的第二个方面是从视频序列中提取运动对象(运动分割)。由于三角剖分假设被打破,动态对象的三维重建会导致全局意义上的位置不精确。重建运动物体几何结构的典型尝试需要图像运动分割、相对基本矩阵估计和重建(具有比例/投影模糊性)。例如,使用Multi-X[88],前两步基本上可以结合起来,因为分割可以基于基本矩阵估计进行。然而,对于嵌入式自动驾驶应用来说,这种方法要么计算成本太高,要么不够健壮。此外,这种重建必须解决比例问题,可变形物体(如行人)可以针对身体的不同部位使用不同的基本矩阵。因此,动态目标检测的任务通常只是简单的运动分割。

Klappstein等人[89]描述了汽车背景下运动分割的几何方法,Mariotti和Hughes[90]将这项工作扩展到了环视摄像头外壳。然而,在这两种情况下,几何图形都无法完全区分所有类型的移动特征。也就是说,有一类对象运动使关联特征与静态特征无法区分,因此,必须采取全局或半全局办法。在传统方法中,这是通过将具有与被归类为运动中的光流矢量相似特性的光流向量分组来实现的。

通常,运动分割的关键输入是摄像机运动的知识。也就是说,必须知道相机的基本矩阵(或未校准情况下的基本矩阵)。[89]和[90]中假设了这一点,可以通过两种方式实现。首先,可以直接使用车辆网络上的信号,例如转向角和车轮速度,来估计车辆的运动,从而估计摄像机的运动。或者,可以使用视觉方法直接从图像序列估计运动。除了明确估计相机的运动外,另一种方法是在图像中建模背景运动。有人建议使用背景运动的仿射模型,然而,这假设背景是遥远或近似的平面,径向变形不存在或可忽略不计。图14显示了不同重建阶段的示例,包括密集运动立体、3D点云和静态障碍物集群,以及基于密集光流的运动分割。虽然鱼眼图像的使用肯定会影响设计决策,从理论角度来看,这是一个尚未完全解决的问题。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

重定位

视觉同步定位与映射(VSLAM)是机器人技术和自动驾驶领域的一个研究热点。主要有三种方法,即(1)基于特征的方法,(2)直接SLAM方法和(3)CNN方法。基于特征的方法利用描述性图像特征进行跟踪和深度估计,从而生成稀疏的地图。MonoSLAM、Parallel Tracking and Mapping(PTAM)和ORBSLAM是这类算法中的开创性算法。直接SLAM方法适用于整个图像,而不是稀疏特征,以帮助构建密集的地图。密集跟踪和映射(DTAM)和大规模半密集SLAM(LSD-SLAM)是基于光度误差最小化的常用直接方法。对于Visual SLAM问题,基于CNN的方法相对不太成熟,在[101]中对此进行了详细讨论。

mapping是自动驾驶的关键支柱之一,许多首次成功的自动驾驶演示(如谷歌)主要依赖于对预先绘制区域的定位。TomTom RoadDNA等高清地图为大多数欧洲城市提供了高度密集的语义3D点云地图和定位服务,典型的定位精度为10 cm。当有准确的定位时,高清地图可以被视为主要线索,因为已经有了强大的先验语义分割,并且可以通过在线分割算法进行细化。然而,这项服务很昂贵,因为它需要世界各地的定期维护和升级。

在自动驾驶视觉环境中,视觉SLAM(VSLAM)包括绘制车辆周围环境的地图,同时在地图中估计车辆的当前姿态。VSLAM的关键任务之一是根据之前记录的车辆定位轨迹。图15显示了一个经典的基于特征的重定位pipelines。在基于特征的SLAM中,第一步是提取显著特征。图像中的一个显著特征可能是像素区域,其中强度以特定方式变化,例如边缘、角落或斑点。要估计世界上的地标,需要执行跟踪,其中可以匹配相同特征的两个或多个视图。一旦车辆移动足够远,VSLAM会拍摄另一张图像并提取特征。重建相应的特征,以获得它们在真实世界中的坐标和姿态。然后,这些检测到的、描述的和定位的地标被存储在永久存储器中,以描述车辆轨迹的相对位置。如果车辆返回相同的一般位置,实时特征检测将与存储的地标匹配,以恢复车辆相对于存储轨迹的姿态。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

重组

重组执行三个功能:1)融合识别和重建,2)通过相机在世界坐标系统中绘制目标地图,3)时空物体跟踪。虽然识别和重组模块可以直接输入到环境图中,但我们认为在视觉层实现某些融合有明显的优势。先用一个例子来考虑这一点,如图16所示,假设有一个具有单目深度估计、运动分割和车辆检测的系统。融合这些信息的经典方法是将所有数据转换为世界坐标系,然后关联和融合数据,这种方法具有优势。一些汽车传感器,如激光雷达,提供本地欧几里德数据,基于这种欧几里得地图的融合系统使得包含这些附加传感器变得容易。然而,在转换为欧氏图时,基于相机的检测精度将始终受到影响。众所周知,从图像域到世界域的投影容易出错,因为它们会受到校准不良、平地假设、检测变化、像素密度和不完美相机模型的影响。如果目标在感兴趣的点上没有实际接触地面,那么对于投影到世界坐标系的平地假设将存在重大错误。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

然而,在向世界投影之前,图像域中的检测不受此类错误的影响,因此,图像域不同视觉算法的检测关联更为稳健,事实上,简单的检测重叠措施通常证明是稳健的。图18显示了基于CNN的车辆检测和基于光流的运动分割的基于图像的融合的实现,尽管运动分割存在显著误差,但融合成功地将检测到的目标分为车辆和动态两类。除此之外,还必须考虑失真校正如何影响测量噪声,许多常用的融合和跟踪算法,如卡尔曼滤波或粒子滤波,都是从平均零假设开始的(高斯噪声)。对于计算机视觉中的感兴趣点测量(例如,图像特征或边界框足迹估计),通常认为这是一个有效的假设。然而,鱼眼畸变和地平面投影过程扭曲了该噪声模型(图19)。此外,由于测量噪声的失真取决于图像中感兴趣点的位置以及相机相对于路面的位置,因此解决这一问题变得更加复杂。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

系统同步协同

本节将讨论系统协同效应,主要研究重定位、重建和识别任务如何相互支持,并描述双检测源在安全关键应用中提供冗余的重要性。

识别和重建

如前所述,深度估计在几何感知应用中非常重要。除了前面已经讨论过的内容外,目前最先进的是基于神经网络的方法[115]、[116],可以通过重投影损失以自我监督的方式学习[117]。研究表明,单目深度估计的最新单帧尝试通常会引发识别任务,然后使用图像中的垂直位置等线索推断深度,运动目标检测似乎也严重依赖于识别。事实证明,[48]和[58]都对通常移动的静态物体(例如行人,见图20)显示出误报,但这并没有降低这种尝试的重要性。相反,它指出了识别和重建之间的一种非常深刻的联系,从一种联系中,可以推断出另一种。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

当行人检测处于最先进水平时,在语义和实例分割之前,大多数汽车行人检测研究人员都会考虑根据边界框的高度或行人在图像中的垂直位置编码深度。[81]对此进行了详细讨论。然而,基于深度神经网络的识别可以产生物体深度,这是有点直观的,特别是当神经网络的精度提高时。最近的工作证明了联合学习语义标签和深度的有效性[119]。例如,在[120]中显示,对于单目深度估计,在每个距离解码器层中添加语义指导(如图21所示)可以提高对象边缘的性能,甚至可以为动态目标返回合理的距离估计。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

重定位和识别

重定位是车辆识别先前学习的位置或路径的过程,如前所述。然而,在现实的自动驾驶视觉中,很多事情都会干扰这一点。例如,场景可能会因可移动对象而改变,例如,停放的车辆可能会在场景学习时间和请求重定位时间之间移动。在这种情况下,语义分割方法可用于识别可能移动的对象(车辆、自行车、行人),并删除与此类对象相关的映射特征。如[101]中详细描述的,利用深度学习技术支持传统的Visual SLAM pipelines还有更多的机会(图22)。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

Visual SLAM中的地点识别有几个应用程序。首先,它允许循环闭合以纠正累积漂移,其次,它允许从同一场景的多个过程中创建和维护地图。使用单词袋的经典方法(如[128])被证明是相当成功的,尽管可能缺乏稳健性。基于CNN的方法被证明更为稳健,外观不变的方法显示出有希望的初步结果[129]。当重要的时间过去时,对地点的识别是一个重要的话题。表III显示了Visual SLAM pipelines的一小组结果,并表明随着训练和重定位之间的六个月时间差的增加,错误显著增加。最后,可以考虑视图不变的定位。当重定位的camera视点与训练时的camera视角显著不同时,这一点很重要,例如,由于以大角度接近训练轨迹而导致车辆旋转,基于特征描述符的传统Visual SLAM方法失败了。研究表明,将语义标签附加到场景地标(通过bounding box分类)可以显著提高视点不变性的性能。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

重定位和重建

重定位和视觉SLAM通常可以被视为场景重建(即构建地图)的存储,以及通过bundle adjustment调整对所述地图的迭代细化(见图15)。这样,重建和视觉里程表就成为传统Visual SLAM方法的种子。有一些直接的方法可以绕过这种seed方法,例如LSD-SLAM(及其全向相机扩展[100]),其中光度误差相对于重投影误差被最小化。然而,如果考虑bundle adjustment调整地图的时间切片,也可以看出,Visual SLAM可用于优化重建(场景结构和视觉里程计)。此外,移动目标会导致任何Visual SLAM管道的性能显著下降。因此,动态对象检测(例如[90]、[48]、[58])可以用作Visual SLAM pipelines的输入,以抑制所述移动目标引起的异常值。

讨论下冗余

还有另一个首要的协同考虑:冗余。在自动化车辆中,冗余对应用程序的安全性起着重要作用。当系统部件发生故障时,必须提供另一个部件,以确保车辆保持安全状态。例如,FuseModNet展示了提供密集信息的相机与在弱光下表现良好的激光雷达的协同融合。在传感方面,这通常是通过使用多种传感器类型来实现的,例如计算机视觉系统、radar和激光雷达。对于近场传感,超声波传感器阵列是一种成熟的低成本传感器,可在车辆周围提供强大的安全性。

全景/鱼眼相机低速自动驾驶的近域感知(识别+重建+定位+工程化)-鸿蒙开发者社区

论文认为,通过并行使用不同的计算机视觉算法类型,可以实现更高的安全性。也就是说,可以配置计算机视觉系统架构以最大限度地提高冗余度。这一点尤其正确,因为数据源是完全不同的处理类型。例如,识别pipelines的统计处理和重建管道的几何pipelines。此外,这种处理通常会在SoC内的不同硅组件上运行。然而,必须意识到,如果你最大限度地发挥其他协同作用,冗余的可能性就会降低。例如,如果使用基于CNN的深度作为Visual SLAM算法的种子,则不能将CNN声明为Visual SLAM的冗余,因为Visual SLAM现在依赖于CNN处理。还必须注意,这两个处理元件可能使用相同的视频馈送,因此相机本身和相关硬件/软件的安全性也可能是一个限制因素。

参考

[1] Near-field Perception for Low-Speed Vehicle Automation using Surround-view Fisheye Cameras!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-11-7 21:03:18修改
1
收藏
回复
举报
回复
    相关推荐