本文将介绍自动驾驶汽车感知系统中的重要方法,包括定位器(或定位)、离线障碍物地图测绘、道路地图测绘、移动障碍物跟踪、交通信号检测与识别。
1.定位
定位模块负责估计自动驾驶汽车相对于地图或道路的姿态(位置和方向)。大多数通用的定位子系统都基于GPS。但是,总的来说这些系统不能用于城市中的自动驾驶汽车,因为在有遮挡的区域不能确保有 GPS 信号,比如树下、城市峡谷(大型建筑之间的区域)、隧道。
文献中已经提出了多种不依赖 GPS 的定位方法。它们主要可分为三类:基于 LIDAR 的方法、基于摄像头的方法、基于 LIDAR 与摄像头的方法。基于 LIDAR 的定位方法仅依靠 LIDAR 传感器,这种方法测量准确且易于处理,但成本较高;基于摄像头的定位方法很便宜廉价,但通常没那么精确可靠;在典型的基于 LIDAR 与摄像头的定位方法中,LIDAR 数据仅被用于构建地图,估计自动驾驶汽车相对于地图的位置则会使用相机数据,这能够降低成本。
1) 基于 LIDAR 的定位
光学雷达(Light Detection and Ranging,LiDAR)是一种光学遥感技术。首先它通过向目标物体发射一束激光,然后根据接收-反射的时间间隔确定目标物体的实际距离;再根据距离及激光发射的角度,通过几何变化推导出物体的位置信息。
LiDAR系统一般分成激光发射器,扫描与光学部件和感光部件。其中,激光发射器发射波长为600~1000nm的激光射线;扫描与光学部件用于收集反射点距离与该点发生的时间与水平角度;感光部件检测返回光的强度。因此,检测到的每一点包括了空间坐标信息(x,y,z)和光强度信息<i>。
相关文献:
[1]J. Levinson, S. Thrun, “Robust vehicle localization in urban environments using probabilistic maps”,
[2]L. de P. Veronese, E. de Aguiar, R. C. Nascimento, J. Guivant, F. A. A. Cheein, A. F. De Souza, and T. Oliveira-Santos, “Re-emission and satellite aerial maps applied to vehicle localization on urban environments”,
[3] A. Y. Hata and D. F. Wolf, “Feature detection for vehicle localization in urban environments using a multilayer lidar”,
[4] J. Rohde, I. Jatzkowski, H. Mielenz, J. M. Zöllner. “Vehicle pose estimation in cluttered urban environments using multilayer adaptive Monte Carlo localization”,
[5] L. de P. Veronese, J. Guivant, F. A. A. Cheein, T. Oliveira-Santos, F. Mutz, E. de Aguiar, C. Badue, and A. F. De Souza, “A light-weight yet accurate localization system for autonomous cars in large-scale and complex environments
[6]R. W. Wolcott and R. M. Eustice, “Robust lidar localization using multiresolution gaussian mixture maps for autonomous driving”,
3) 基于摄像头的定位
目前基于摄像头的定位有如下的方法:主要依靠相机数据来定位自动驾驶汽车;使用相机数据来构建特征图;使用相机数据来构建特征图,但采用替代类型的特征;使用神经网络方法定位。
相关文献:
[1]M. A. Brubaker, A. Geiger, and R. Urtasun, “Map-based probabilistic visual self-localization”,
[2] N. Bernini, M. Bertozzi, L. Castangia, M. Patander, and M. Sabbatelli, “Real-time obstacle detection using stereo vision for autonomous ground vehicles: a survey”
[3] K. Jo, Y. Jo, J. K. Suhr, H. G. Jung, and M. Sunwoo, “Precise Localization of an Autonomous Car Based on Probabilistic Noise Models of Road Surface Marker Features Using Multiple Cameras
[4] J. K. Suhr, J. Jang, D. Min, and H. G. Jung, “Sensor fusion-based low-cost vehicle localization system for complex urban environments”,
[5] R. Vivacqua, R. Vassallo, and F. Martins, “A low cost sensors approach for accurate vehicle localization and autonomous driving application”,
[6] N. Radwan, G. D. Tipaldi, L. Spinello, and W. Burgard, “Do you see the bakery? leveraging geo-referenced texts for global localization in public maps”,
[7] R. Spangenberg, D. Goehring, and R. Rojas, “Pole-based localization for autonomous vehicles in urban scenarios”,
[8] L. J. Lyrio, T. Oliveira-Santos, C. Badue, and A. F. De Souza, “Image-based mapping, global localization and position tracking using vg-ram weightless neural networks
[9] G. L. Oliveira, N. Radwan, W. Burgard, and T. Brox, “Topometric localization with deep learning
3) 基于 LIDAR 和摄像头的定位
一些方法使用LIDAR数据来构建地图,同时用摄像头的数据以估计自驾车相对于该地图的位置。 徐等人提出了一种将立体图像与3D点云图匹配的定位方法。 该地图由一个地图公司(http://www.whatmms.com)生成,它由几何数据(纬度,经度和海拔)和从里程表,RTK-GPS和2D LIDAR扫描仪获取的缓解数据组成。徐等人将地图的3D点从真实坐标系转换为摄像机坐标系,并从中提取深度和强度图像。MCL(Monte Carlo localization,蒙特卡洛定位)算法用于通过将从汽车的相机拍摄的立体深度和强度图像与从3D点云图提取的深度和强度图像相匹配来估计汽车位置。该方法在现实世界数据上进行评估,并呈现0.08米至0.25米之间的位置估计误差。
Viswanathan等人提出了一种自驾车定位方法,该方法将地面全景图像与一年中不同季节拍摄的卫星图像相匹配。 在他们的方法中,LIDAR数据被分类为地面/非地面类别。 然后,使用LIDAR数据将由自动驾驶汽车中的全景相机捕获的地面图像分割成地面/非地面区域,然后翘曲以获得鸟瞰图。 使用k均值聚类将卫星图像分割成地面/非地面区域。 然后使用MCL通过将鸟瞰图像与卫星图像匹配来估计姿势。 该方法在NavLab11自动驾驶汽车上进行了评估,并实现了3米到4.8米之间的位置估算误差。
2.离线障碍物地图测绘
离线障碍物地图测绘子系统负责计算自动驾驶汽车所在环境中的障碍物地图。这个子系统是基础系统,让自动车辆有能力安全地驶过公共道路,而不与障碍物(比如标牌、路沿)发生碰转。障碍物地图包含汽车可以驶过或不能驶过的位置的信息,并区分了自由区域(可通行)与已占用区域。汽车必须一直处于自由区域内。障碍物地图是根据地图测绘阶段的传感器数据构建的,并会被存储起来以待自动操作阶段使用。
状态空间的表征形式通常可分为拓扑表征和度量表征。拓扑表征是将状态建模为图(graph),其中节点代表重要的位置(或特征),边表示它们之间的拓扑关系(比如位置、方向、接近程度和连通性)。这些分解的分辨率取决于环境的结构。度量表征通常是将状态空间分解成规则间隔的单元。这种分解形式并不取决于特征的位置和形状。度量表征的空间分辨率往往高于拓扑表征的。其易变性和高效性使其成为了最常用的空间表征。要了解用于创建拓扑表征的主要的基于视觉的方法,读者可参阅论文( E. Garcia-Fidalgo and A. Ortiz, “Vision-based topological mapping and localization methods: A survey,”)。这里总结了用于计算度量表征的最重要方法,这些方法又可进一步分为离散和连续空间表征。
1)离散空间度量表征
对于自动驾驶汽车,状态空间最常见的表现之一是由Moravec和Elfes提出的占用网格图(OGM)。 OGM将空间离散为固定大小的单元格,通常为分米级。每个单元格包含占用与其相关的区域的概率。使用传感器数据为每个单元独立更新占用概率。为了简单和高效的目的,可以将表征障碍物的3D传感器测量投影到2D地平面上。独立性的假设使得OGM算法变得快速而简单。
另一种度量表示是由Hornung等人提出的基于八叉树的地图,其存储具有不同3D分辨率的信息。 与具有不同3D分辨率的OGM相比,OctoMaps(基于八叉树的映射)仅存储观察到的空间,因此在存储器消耗方面更有效。 然而,OctoMaps以统一和离散的方式处理传感器数据的更新和障碍物占用的估计。 因此,它们比具有统一占用的OGM慢。 尽管OctoMaps在内存消耗方面具有显着优势,但是在无人驾驶汽车的实时场景中,强大的计算复杂性使其无法实现。
还有一种替代度量表示是Droeschel等人提出的混合映射,其存储具有不同分辨率的占用率和距离测量值。 为此,测量结果存储在距离汽车中心尺寸增大的网格单元中。 因此,通过在传感器附近具有高分辨率并且随着与传感器的距离增大而具有较低分辨率来获得计算效率。 这遵循一些传感器在距离和测量密度(例如,激光传感器的角分辨率)方面的特性。
2)连续空间度量表征
用于计算OGM的传统方法受到以下假设的约束:地图的每个单元的占用概率被建模为独立的随机变量。直观地说,这种假设不正确,因为真实的环境有一些固有的结构。替代度量表示是由Doherty等人提出的高斯过程占用图(GPOM).GPOM使用高斯过程(GP)从训练数据集中的稀疏传感器测量来学习环境的结构,并且随后估计概率。占用未被传感器直接拦截的OGM细胞。实验表明,定位误差比粒子滤波器定位和OGM估计的误差低三倍以上。然而,这种推断具有O(N^3)的高计算成本,其中N是训练数据集中的样本数量,因此,它不能直接应用于自动驾驶汽车的大规模场景。
另一个替代度量表示是由Ramos和Ott提出的希尔伯特地图。实验表明,希尔伯特地图的精度与高斯过程占用图(GPOM)相当,但其时间复杂度与训练数据集中的样本数呈线性关系。
还有一种替代度量表示是Schaefer等人提出的离散余弦变换(DCT)图。 DCT图在离散频域中表示,并使用逆DCT的连续扩展转换为位置域中的连续可微分场。 DCT图为空间的每个点分配LIDAR衰减率,其模拟激光射线空间的局部渗透率。通过这种方式,地图可以描述不同激光渗透率的障碍,从完全不透明到完全透明。对于相同的存储器要求,DCT映射比OGM,GPOM和Hilbert映射更准确地表示LIDAR数据。尽管如此,上述连续度量表示仍然比OGM慢,并且还不能广泛应用于大规模和实时无人驾驶场景。
3. 道路地图测绘
道路测绘子系统负责收集自动驾驶汽车周围的道路和车道信息,并使用几何和拓扑属性将它们表示在地图中,包括互连的区域和受限区域。道路地图测绘子系统的主要主题是地图表征和地图创建。
1) 道路地图表征
a)度量表示法
道路地图的简单度量表示是网格地图,其将环境离散化为固定大小的单元的矩阵,其包含关于是否属于道路的信息,以及移动到其相邻小区的成本。 道路网格地图简单易懂。 但是,如果在路线图的大区域内移动成本是均匀的,那么使用网格表示可能需要浪费地使用存储空间和处理时间。
b) 拓扑表示
路面图的更复杂的表示是拓扑图,其将环境描绘为类似图的模型,其中顶点表示位置,边表示它们之间的拓扑关系。 拓扑图可以包含更复杂的信息,包括多个车道,车道交叉点和车道合并。
2) 道路地图创建
a)手动标注
创建道路地图的最简单方法是从航空影像中提取的道路形状的手动注释。 然而,大型城市道路网络所需的高手动操作可能会使手动注释变得不可行。 为此,已经提出了用于从航拍图像自动生成道路地图的方法。
b)自动生成
4. 移动目标跟踪
移动目标跟踪(MOT)子系统(也被称为检测与跟踪多目标/DATMO)负责检测和跟踪自动驾驶汽车所处环境中的移动障碍物的姿态。这个子系统对自动车辆的决策而言至关重要,能帮汽车避免与可能移动的物体(比如其它汽车和行人)发生碰撞。移动障碍物随时间的位置变化通常是根据测距传感器(比如 LIDAR 和 RADAR)或立体相机捕获的数据估计的。来自单目相机的图像能提供丰富的外观信息,这可用于改善对移动障碍物的假设。为了应对传感器测量的不确定性,可将贝叶斯滤波器(比如卡尔曼或粒子滤波器)用于状态预测。
用于 MOT 的方法主要可分为六类:
1)基于传统方法的 MOT
传统的MOT方法遵循三个主要步骤:数据分段,数据关联和过滤。 在数据分割步骤中,使用聚类或模式识别技术对传感器数据进行分段。 在数据关联步骤中,使用数据关联技术将数据段与目标(移动障碍物)相关联。 在过滤阶段,对于每个目标,通过获取分配给目标的数据的几何平均值来估计位置。 位置估计通常由卡尔曼或粒子滤波器更新。
2)基于模型的 MOT
基于模型的方法使用传感器的物理模型和对象的几何模型直接从传感器数据推断,并采用非参数滤波器(例如,粒子滤波器)。 不需要数据分段和关联步骤,因为几何对象模型将数据与目标相关联。
3)基于立体视觉的 MOT
基于立体视觉的方法依赖于由立体图像对提供的颜色和深度信息,用于检测和跟踪环境中的移动障碍物。
4)基于网格地图的 MOT
基于网格图的方法首先构建动态环境的占用网格图。 地图构建步骤之后是数据分段,数据关联和过滤步骤,以便提供场景的对象级表示。
5)基于传感器融合的 MOT
基于传感器融合的方法融合来自各种传感器(例如,激光雷达,雷达和相机)的数据,以探索其个体特征并改善环境感知。
6)基于深度学习的 MOT
基于深度学习的方法使用深度神经网络来检测移动障碍物的位置和几何形状,并基于当前相机数据跟踪它们的未来状态。
5.交通信号检测与识别
交通信号检测与识别子系统负责检测和识别交通规则定义的信号,使汽车可以遵守交通法规做出正确的决策。与交通信号相关的任务有很多,本文将介绍这三大主要主题:
1) 交通信号灯检测与识别
交通灯检测和识别涉及检测汽车周围环境中的一个或多个交通灯的位置(例如,在图像中表示)并识别它们的状态(红色,绿色和黄色)。
交通灯检测和识别的方法主要可分为两类:基于模型和基于学习。交通信号灯在颜色和形状信息方面具有明确的结构。常见的交通信号灯有三个灯泡(每个状态一个:红色,绿色和黄色)和明确定义的形式。因此,早期的交通灯检测和识别的大多数方法都是基于模型的。这些方法依赖于人工的特征工程,它利用人类关于对象的颜色和形状的信息来构建能够检测和/或识别它的模型。在基于学习的方法中,特征仍然是人工的,但检测和/或识别过程从基于规则的变为基于学习的。近来存在端到端方法,不需要人工的特征工程。
2) 交通标志检测与识别
交通标志检测和识别涉及检测环境中的交通标志的位置并识别它们的类别(例如,速度限制,停止和产量标志)。也分为两种方法:基于模型和基于学习。基于模型的方法使用了简单的特征(例如,颜色,形状和边缘);基于学习的方法(例如SVM,级联分类器和LogitBoost)开始利用简单的特征,但演变为使用更复杂的特征(例如,模式,外观和模板)。
3) 路面标记检测与识别
路面标记检测和识别涉及检测路面标记的位置并识别其类型(例如,车道标记,道路标记,消息(文字符号)和人行横道)。
车道标记有基于模型和基于学习,常采用形状(直线,曲线)和颜色这两种特征。
道路标记检测通常使用几何和光度特征。此外,用于道路标记检测和识别的各种方法使用逆透视映射(IPM),其减少了透视效果,并因此使问题更容易解决并提高结果的准确性。
消息检测与识别方法将不同的消息视为不同的类别(首先检测场景中消息的位置,然后识别它们的类别)。
人行横道检测方法利用了人行横道通常呈现的规则形状和黑白图案。
来源:oschina
链接:https://my.oschina.net/u/4285813/blog/3661579