本文经自动驾驶之心公众号授权转载,转载请联系出处。
论文名称:Vision-based Vehicle Speed Estimation: A Survey
导读
在精确检测车速车距的方案中,视觉方案是非常具有挑战性的,但由于没有昂贵的距离传感器而大幅降低成本,所以潜力巨大。本文综述了基于视觉的车辆速度、距离估计。并建立了一个完整的分类法,对大量工作进行分类,对涉及的所有阶段进行分类。除此之外,还提供了详细的性能评估指标和可用数据集概述。最后,论文讨论了当前的局限性和未来的方向。应用背景 车辆速度的准确估计是智能交通系统(ITS)的关键组成,这需要解决诸如同步数据记录、表示、检测和跟踪、距离和速度估计等问题。常见的速度估计应用场景包括自动驾驶、智能交通监控,分为固定传感器测试和移动相机/车辆下的测试。论文主要介绍了在固定位置下基于camera的速度与距离估计!下图为速度估计的整体流程:主要包括检测跟踪、距离估计、速度估计等;
主要技术
上图汇总了基于视觉的车速测量系统的主要部分,Input data 、Detection and tracking、Distance and speed estimation、Application domains;
1.输入数据
基于视觉的测速测距方案输入为图像数据,对于每辆车,将有一系列图像,从第一次出现到最后一次出现。可用图像的数量将取决于摄像机相对于道路的姿态、焦距、帧速率和车辆速度。现有camera主要包括:交通camera和speed camera;其他形式的输入数据包括车辆属性,如车辆类型、关键点、车牌大小等。camera标定在提供内外参数方面起着关键作用。路段尺寸的先验知识提供了计算道路与camera之间的外部关系甚至车辆速度的一些重要信息。
2.检测和跟踪
必须在所有可用图像中检测车辆或其某些代表性特征。随着时间的推移跟踪车辆或显著特征对获得速度测量至关重要,可以应用不同的方法来处理这两个任务。
3.距离和速度估计
速度估计本质上涉及具有相关时间戳的距离估计。存在不同的方法来计算车辆与某些全局参考的相对距离,以及不同的方法计算车辆的速度。
4.应用领域
主要应用在交通监控、预测、控制、自动驾驶和移动机器人领域!下图是机动车速度估计的全系列技术栈!
分类
论文对135篇车速检测相关论文展开了调研,从输入开始,紧接着是检测、跟踪、距离和速度估计,最后是速度测量精度方法!论文对每个模块的工作进行了分类。
1.Camera设置
主要涉及摄像机固有参数(传感器尺寸和分辨率、焦距)和外部参数(相对于道路平面的位置,包括基于无人机的摄像机)以及摄像机数量(单摄像机、立体摄像机或多摄像机)。根据这些参数,投影在图像平面上的真实场景可以表示沿短或大路段的一条或多条车道。根据这种配置以及车辆相对于camera的相对位置,能够得到其中一个最重要的变量:meter与像素的比率,即每个像素代表的路段部分。该比率越低,估计距离和速度的精度越高,由于透视投影模型,该比率与距camera的distance平方成正比,这意味着在长距离进行的测量具有非常差的精度。
2.相机标定
为了在真实世界坐标中提供测量,需要精确估计摄像机的内部和外部参数。最常见的方法是执行软标定,即在实验室标定或使用传感器和透镜特性近似固有参数,使用手动或自动程序获得外部参数(道路平面和摄像机之间的刚性变换)。硬标定涉及在已安装摄像机的情况下联合估计内参和外参。也可以手动执行或自动执行。在某些有限的情况下,摄像机标定被忽略。
3.车辆检测
由于摄像机大多是静态的,在大多数情况下,车辆检测通过建模和减去背景来解决。其他方法是基于特征的,例如,检测车牌或车辆的其他特征。最近,使用基于学习的方法识别图像中的车辆越来越多。
4.车辆跟踪
车辆具有平滑和稳定轨迹的能力是处理车辆速度检测的关键问题,可以将车辆跟踪分为三类。首先,基于特征的,它跟踪来自车辆的一组特征(例如,光流)。第二,这些方法侧重于跟踪blob的质心或车辆的边界框。第三,这些方法侧重于跟踪整个车辆或其特定部分(如车牌)。
5.距离估计
对于单目系统,车辆距离的估计通常使用一组约束条件进行计算,例如平坦道路假设,包括基于单应性和使用增强指示线、模式或region的方法,或者通过使用关于一些物体的实际尺寸的先验知识(例如,车牌或车辆的尺寸)。当使用立体视觉时,这些限制得到缓解。
6.速度估计
在少数情况下,检测车辆速度的问题被提出为检测路段上的交通速度的问题,即直接获得平均道路速度值。然而,在大多数情况下,检测是在单个车辆上进行的。需要关于camera帧速率的先验知识或每个图像的准确时间戳来计算测量之间的时间。使用连续的或非连续的图像来估计速度是一个基本变量,对精度有很大影响。如何整合所有可用测量(瞬时、平均、最佳等)也是影响测量最终精度的关键因素。
7.生成真值
目前的工作主要包括:汽车速度计、基于距离的技术(如雷达或激光)、基于GPS的技术(包括标准GPS、GPS里程表和DGPS)、光屏障和路面传感器(如压电或电感)。
相机设置与标定
1.相机的设置
camera设置直接影响速度估计方法的精度。考虑的第一类是摄像机位置,包括无人机摄像机和交通摄像机,这些摄像机可以根据其高度大致分类为距离(≥ 5m)或close(<5m)交通摄像头。在某些情况下,摄像机位于道路一侧,提供车辆的侧视图。大多数作品都基于单目系统,但还可以找到一些基于stereo的方法和非stereo多摄像机设置。尽管大多数方法都基于CCD或CMOS传感器,但也可以找到一些使用基于事件的摄像机[16,17]和基于生物传感器[147]的作品。考虑到相机分辨率,可以预期随着时间的推移像素分辨率会逐渐增加,这主要是由于硬件的进步。然而,情况并非如此,大量作品的分辨率低于或等于640×480像素(VGA)。分辨率不仅影响图像处理检测技术的精度,还影响距离估计的精度。分辨率越高,meter像素比越低。焦距也是一个基本参数,通常与摄像机高度、路段长度和视野覆盖的车道数有关。对于特定的摄像机高度,焦距越大,距离和速度测量的精度越高。大多数作品使用中低焦距(≤ 25mm),因为它们被设计为覆盖多车道和大的道路延伸。只有少数作品含蓄或明确地强调需要长焦距来提高速度估计的准确性,即使系统仅覆盖一条车道。因此,根据摄像机的内外(位置w.r.t.道路)参数,我们最终将不同的场景投影到图像平面中。如下图所示,可以大致定义三种类型的场景:High meter-to-pixel ratio、Medium meter-to-pixel ratio、Low meter-to-pixel ratio。
2.系统的标定
精确的摄像机标定对于基于视觉的目标距离和速度估计至关重要。无论是假设车辆在平坦道路上行驶,用于单目系统还是使用stereo配置,从像素坐标获得精确真实世界测量的能力在很大程度上取决于精确的系统标定。对于单目系统,针孔相机模型提供了一个通用表达式,用于描述图像平面(u,v)中的2D像素与3D真实世界坐标系(Xw,Yw,Zw)之间的几何关系,在这种情况下,该坐标系放置在道路平面上并假设为平坦道路形状:
单目摄像机标定问题是估计内参、RT的问题。如下图所示,在处理用于车速估计的摄像机标定时,采用了两种主要方法。首先,软标定使用标定模板(例如棋盘)在实验室中估计K,或假设数据表中提供的参数(传感器分辨率、像素大小和焦距),然后在现场计算[R,T]。第二,硬标定,在现场同时计算K和[R,T]。
计算相机外部参数的最常见方法之一是使用消失点。当投影到图像平面时,3D真实世界坐标系中的一组平行线在唯一的2D点处相交。该点通常称为消失点。在这种情况下,明显的一组线是道路标记(包括实线和虚线车道线)和通常具有高对比度的道路边缘。消失点的位置允许计算旋转矩阵R,然后使用图像中某个对象或区域的真实世界维度的知识来获得平移矩阵T。执行外部参数标定的另一种常见方法是使用道路平面上存在的已知几何静态特征,然后计算单应变换。
可以通过使用放置在道路平面上的标准(例如棋盘)或特殊标定模板来解决获取相机的内外参数的硬标定问题。这种技术的主要缺点是需要暂时停止道路上或车道上的交通。只有少数方法以自动方式处理内部和外部参数的校准。最常见的方法是从两组或三组相互垂直的平行线计算两个或三个正交消失点[133]。如[134]所述,这些消失点可以从场景中存在的静态和移动(本例中为车辆)元素中提取。在[77]中,随时间跟踪的车牌被用作校准模式,以硬校准系统。最复杂的方法将细粒度分类与车辆关键点/姿态检测[136]相结合,以确定特定车辆品牌和型号[135](因此,确定其真实尺寸),从而执行软[90]或硬[101]系统标定。
无论标定中使用何种方法,无论是计算平移向量还是完全单应性,都必须事先知道真实世界中某些特征/对象的尺寸。事实上,计算所谓的比例因子(m/px)以从像素到真实世界坐标的转换是使用单目系统处理距离和速度估计时要解决的关键问题之一。最常见的特征是人工测量的路段/区域的道路/车道宽度或长度之前已知物体的尺寸,如车辆或车牌,以及车道标记的长度和频率。
最后,必须考虑基于stereo的方法,这些方法在实验室或现场使用标准stereo标定技术和模式进行硬校准。除了每个摄像机的固有矩阵K之外,stereo系统还需要计算基本矩阵,其中包括从一个摄像机到另一个摄像机的非本征变换。由于立体系统能够从两幅图像中的2D像素获得3D真实世界测量值(在解决对应问题后),因此无需计算道路平面和摄像机之间的外部变换,但在任何情况下,都可以手动计算[137]或自动计算[138]。
检测和跟踪
1.检测任务
检测任务主要有静态背景、基于特征、基于车牌、基于learning方式;除了基于无人机的系统外,大多数方法都基于静态摄像机,由于存在静态背景,车辆检测任务更加容易。我们甚至可以采用最简单的逐帧方法找到相当数量图像,然后采用阈值法进行图像分割。执行车辆检测的最常见方法是基于背景减法,然后是一些形态学运算和blob分析方法。使用不同的方法进行背景相减,包括基于灰度和颜色的方法、高斯混合模型、自适应背景建模等。在某些情况下,逐帧或背景减法与某些特征检测器(例如,边缘、角或KLT特征)相结合。
一些方法基于对车辆区域内区域中分组的不同类型特征的检测,例如,在背景减法之后,以及依赖于边缘、灰度特征、二进制特征、SIFT/SURF特征或KLT特征。
尽管车牌的外观可能会因国家和车辆类型的不同而略有不同,但一般而言,它是任何车辆的同质和独特元素。这使得车牌成为车辆检测系统非常有吸引力的目标。因此,当摄像机分辨率足够大时,可以应用车牌识别(LPR)系统。LPR系统通常至少分为3个步骤:检测或定位、字符分割和字符识别。在这种情况下,为了检测车辆,只需要应用第一步,并且有许多方法(参考了关于该主题的多个具体调查)。基于学习的方法主要是一些目标检测方案,YOLO、SSD、Faster RCNN、Nanodet、YOLOX系列,输出检测位置与类别;
2.跟踪任务
速度检测是一个多帧问题。一旦检测到车辆或车辆的某些部件/特征,通常采用跟踪方法对噪声检测进行滤波和平滑。跟踪隐含地涉及解决数据关联问题(例如,匈牙利算法),特别是对于具有多个对象的情况[148]。一般而言,在描述不同的跟踪方法时,可以考虑两个主要维度。首先,根据被跟踪的元素和/或其part的类型(方法),其次,根据用于执行跟踪的具体方法(方法)。主要车辆跟踪方法的视觉表示如下图所示,可以看出将不同的方法分为四大类:
首先,基于特征的方法,将车辆跟踪问题视为特征跟踪问题。在大多数情况下,在应用背景减法或基于学习的方法后,特征是车辆区域内的二进制或灰度值。当跟踪被视为光流问题时,通常会考虑KLT特征或拐角,分析车辆区域内的运动矢量。其他方法跟踪特征是二进制模式、边缘或SIFT/SURF描述符。
其次,还可以找到专注于跟踪代表车辆区域的质心方法,该区域可以被视为轮廓(凸壳或凹壳),或一些模型,例如轮廓的凸壳[40]、椭圆[75]或拟合到检测到的blob的边界框。在任何情况下,使用质心作为车辆的代表状态是非常不可靠的。一方面,大多数blob检测方法不是很精确,并且由于多个因素(阴影、重叠、接近物体等),车辆轮廓可能会在序列中变化。但即使在blob检测非常精确(例如基于学习)的情况下,透视的变化也意味着影响质心位置的显著变化。只有在检测准确且视角变化不相关的非常特殊的情况下(例如,在基于无人机的系统中),才有理由使用这种方法。
第三组方法是使用车辆的整个区域(基于轮廓或边界框)来执行跟踪的方法。这是迄今为止使用最广泛的方法。
最后,许多方法关注于车牌的跟踪。不知何故,这种方法不计算车辆的速度,而是计算车牌的速度,因为车牌的移动与车辆的移动是一致的,因此完全等效且完全有效。
大多数工作通过模板、区域或特征匹配/相关方法,解决了采用检测跟踪方法后的车辆跟踪问题,通过检测车辆在预定义区域或指示线上的交叉。这些方法解决了数据关联问题(为每个轨迹的每个对象关联唯一标识符),但不过滤跟踪对象的状态。通过检测方法进行跟踪的一种特殊情况是车牌,因为它们允许使用光学字符识别(OCR)系统作为解决数据关联问题的支持,使跟踪系统更加稳健。使用KLT特征进行车辆检测后,通常会跟踪KLT以检测光流。该方法仅适用于图像之间的车辆位移较小的情况,这不适用于获得准确的速度测量。贝叶斯滤波的使用仅限于经典的线性卡尔曼滤波器,该滤波器通常用于考虑恒定速度模型(不太适用于非常大的路段)。在[89]中,简单在线和实时(排序)(基于卡尔曼滤波)跟踪和扩展版深度排序也被应用。
车辆距离和速度估计
camera是生成投影到2D平面中的3D世界的离散化表示的传感器,考虑到光学中心和像素之间的立体角,真实世界坐标中的面积A随距离Z呈二次增加(Apx为单个像素的面积):
单目系统的距离误差:
fx为x轴的焦距,△X为已知目标的尺寸,nm代表表示像素检测误差!为了使物体或其特征的距离估计误差最小化,需要:使用望远镜镜头(高焦距),因为误差随着焦距的增加而减小;在立体系统中使用大的基线,或在单目系统中使用已知尺寸尽可能大的物体;当车辆远离摄像机时,避免对其进行测量,物体越近,距离估计误差越小;
1.距离估计
双目方法在真实世界坐标系中测量距离是精确估计车速需要解决的最关键问题,当使用立体视觉时,这个任务很简单[42、60、61、74、80、92、100、112]。对于每个检测到的车辆,可以使用车辆区域中包含的像素的视差值直接获得相对距离。然而由于实际应用问题,双目估计深度方案使用较少!单目方法对某些特征、物体或道路部分/路段的真实坐标中的尺寸的了解是使用单目系统估计距离的基本问题。这通常被称为将像素转换为真实世界坐标的比例因子。另一个常见要求是考虑平坦道路假设。如下图所示,我们将基于单目的距离估计方法分为三组:
首先,基于指示线、增强线或区域[19、20、23、24、26、28、32、38、47、59、79、86、87、99、107、124]。这些方法不需要摄像机系统的校准,而是测量道路上两条或多条虚拟线之间的实际距离,或道路区域的实际大小。
然后,距离估计问题被提出为一个检测问题,其中每当车辆穿过预定义的虚拟线或区域时,所有车辆都在相同的距离处被检测。由于虚拟线或区域位于道路上,因此精确的距离估计涉及车辆某个部分的接触点的精确位置。车辆的这一部分在第二个位置应相同,以获得速度的一致估计。由于透视约束、空间(取决于摄像机分辨率和摄像机到车辆的距离)和时间(取决于摄像头帧速率和车辆速度)离散化问题、阴影等,这是一项需要解决的复杂任务。这些问题可以通过使用多条指示线来缓解[20,107]。其次,基于单应性计算的方法将平面(道路)从3D投影空间线性变换为2D投影空间(摄像机图像平面)。这样,图像可以转换为鸟瞰图(BEV),其中像素位移可以直接转换为真实世界距离。这种方法最常用于固定系统和无人机系统。如下图所示,单应性的计算涉及摄像机的内部和外部参数的校准以及场景某些部分的真实尺寸的先前知识。生成的BEV图像将所有对象视为在道路平面上,这意味着车辆形状的变形。这并不特别重要,因为用于计算距离的点通常对应于车辆和道路之间的接触点,尽管由于系统的角度和道路上运动的错误假设,该假设并不完全准确。与使用指示线相比,该方法的主要优点是可以在道路上的任何点进行车辆检测,因此摄像机帧速率和车速不会对距离估计产生负面影响。然而,需要非常精确的系统校准。
第三,基于距离估计公式的方法,根据物体的真实尺寸,包括车牌和车辆。一方面,基于车牌尺寸的方法对低meter像素比和像素定位误差非常敏感。另一方面,基于车辆尺寸的此类方法需要应用细粒度车辆模型分类系统[135],以识别特定模型并使用其特定尺寸。
2.速度计算
Time/distance between measurements一旦计算出车辆或其一部分的相对距离,速度计算就相对简单了。因此,第一个要求与每个测量(或图像)关联特定的时间戳有关。可以使用关于摄像机帧速率的先验知识。然而,对于每个记录的图像或从记录系统时钟(可以使用NTP服务器[80])获取的测量值,包含特定的时间戳更为准确和鲁棒。根据摄像机姿态w.r.t.车辆和道路以及车辆速度,每辆车可获得一组N个测量值。要做出的第一个决定是使用测量之间的距离来获得速度值。然而,大多数工作建议使用连续测量(在第t帧和第t+1帧)来计算每辆车的速度值。如下图所示,该技术倾向于提供噪声值,因为距离误差与车辆行驶的距离具有相同的数量级:
在使用非连续图像的情况下,论文区分了几种技术。首先,使用测量之间的固定距离或区域(例如,使用指示线或区域的方法)。第二,使用测量之间的预定义帧数或固定时间间隔(它们是等效的)。其他方法使用车辆第一次和最后一次检测之间的最大可能距离。最后,可以确定一些利用两个不同摄像机[80]或无人机摄像机[106]的不同视角进行车辆检测的技术。测量积分一旦计算出车辆的所有N个速度值,下一步要做的决定是如何积分所有测量值以计算最终车辆速度。请注意,所有基于虚拟指示线或区域的方法都是基于单次触发(N=1),因此严格来说,不应用测量积分,这种方法通常称为平均速度检测。大多数方法执行瞬时速度检测,即计算车速并将其作为每对测量的输出,无论是连续的还是非连续的。在某些情况下,瞬时速度使用不同的技术进行滤波,如移动平均[98]、多项式滤波[129]或使用特定跟踪器(例如卡尔曼滤波器)。另一种常见方法是计算所有可用(N)速度测量值的平均值。在[80]中,仅使用对应于最小系统速度误差的最佳速度值计算平均值。
数据集和评测标准
1.数据集
相关数据集较少,主要包括 AI CITY CHALLENGE(英伟达)、BrnoCompSpeed、 UTFPR dataset、QMUL junction dataset等!
2.评测标准
为了测量系统产生的速度误差,有必要使用度量来明确评估其准确性。最常用的度量是绝对或相对平均绝对误差(MAE),以百分比表示。MAE通常提供有其他变量,例如标准偏差或其他统计度量,以限制速度估计系统的精度。
除了MAE,还可以找到其他度量,其中计算数学函数的总误差,包括并建模速度检测系统的误差源,如像素检测误差、长度测量误差或摄像机校准误差。利用这些已知误差,以及一些误差传播技术,例如使用偏导数的不确定性传播,可以精确地获得总系统误差。
最后,均方误差(MSE)和均方根误差(RMSE)的使用已在几项工作中提出。MSE/RMSE使用这两个值之间的平方差之和来测量估计值和被测量值之间的“距离”。在某些工程中,该方法用于测量相对距离误差,最后测量速度误差,即实际值与计算值之间的绝对差。