一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用稳定的坐标系的道路垂直轮廓检测的制作方法

2022-02-22 06:56:36 来源:中国专利 TAG:

使用稳定的坐标系的道路垂直轮廓检测
1.本技术是申请日为2016年2月28日,申请号为201680017324.3,发明名称为“使用稳定的坐标系的道路垂直轮廓检测”的申请的分案申请。
2.相关申请的交叉引用
3.本技术要求以下申请的优先权:提交于2015年2月26日的题为“road plane profile output in a stabilized world coordinate frame”的美国临时专利申请62/120,929;提交于2015年3月11日的题为“road plane output in astabilized world coordinate frame”的美国临时专利申请62/131,374;提交于2015年4月20日的题为“road plane profile output in a stabilized world coordinate frame”的美国临时专利申请62/149,699;以及提交于2015年10月8日的题为“road plane output in a stabilized world coordinate frame”的美国临时专利申请62/238,980;所有申请的公开内容通过引用包括在本文中。
4.技术上相关的申请
5.本技术与提交于2014年11月26日的题为“road vertical contour detection”的美国申请号14/554,500(现为美国专利号9,256,791);以及提交于2015年7月14日的题为“road contour vertical detection”的美国申请号14/798,575相关,二者以其整体通过引用并入本文。
6.背景
技术领域
7.本技术涉及使用相机检测道路轮廓的垂直偏差的驾驶者辅助系统和方法,并更具体地涉及使用稳定坐标系来检测道路轮廓的垂直偏差的驾驶者辅助系统和方法。
8.相关技术的描述
9.近年来,基于相机的驾驶者辅助系统(das)已经进入市场,其包括车道偏离警告(ldw)、自动远光灯控制(ahc)、交通标志识别(tsr)、前向碰撞警告(fcw)和行人检测。
10.现在参考图1和图2,其示出了根据一些实施例的系统16,该系统包括安装在车辆18中的相机或图像传感器12。对前向方向的视场进行成像的图像传感器12实时提供图像帧15,并且图像帧15被图像处理器30捕获。处理器30可用于同时和/或并行地处理图像帧15以供多个das/应用使用。处理器30可用于处理图像帧15以检测和识别在相机12的前向视场中的图像或图像的部分。可以使用具有储存器13中的车载软件和/或软件控制算法的特定硬件电路(未示出)来实现das。图像传感器12可以是单色或黑白,即没有颜色分离,或者图像传感器12可以是颜色敏感的。通过图2中的示例,根据一些实施例,图像帧15用于供行人检测20、tsr21、fcw 22以及道路的垂直轮廓的实时检测23或与道路平面的偏差使用。
11.在一些实施例中,可在车辆中安装多于一个的相机。例如,系统可以具有指向不同方向的多个相机。系统还可以具有相对于车辆指向相同方向或相似方向的、但是安装在不同的位置处的多个相机。在一些实施例中,系统可以具有多个具有部分或完全重叠的视场的相机。在一些实施例中,两个并排相机可以以立体声操作。本文讨论的非限制性示例考虑
的是单相机系统,但是它们可以类似地在多相机系统中实现,其中,相关的图像和帧中的一些或全部可以由不同的相机捕获,或者可以由从多个相机捕获的图像的合成来创建。
12.在一些情况下,图像帧15被划分在不同的驾驶者辅助应用之间,以及在其他情况下,图像帧15可以在不同的驾驶者辅助应用之间共享。
13.使用车载相机检测道路轮廓的垂直偏差的某些现有方法是已知的。
14.某些先前已知的算法可以总结如下:
15.1.使用道路的单应性矩阵将由车载相机捕获的第一对两个连续帧对齐(align)。这给出了帧之间的自我运动(ego-motion)(旋转r和平移t)。图3a示出了图像中的被跟踪并用于计算单应性矩阵的33个网格点。
16.2.然后选择第二对帧,当前帧和表示车辆从其开始当前移动经过最小阈值距离的时间点的最近前一帧。第一对帧(连续帧)的链接用于创建单应性矩阵的初始猜测,然后计算第二对帧的更准确的单应性矩阵,并确定参考平面。
17.3.然后将车辆的路径投影到图像平面上(如图3c中的线所示)。沿着每个路径的条带用于计算残余运动(residual motion),这给出了相对于确定的参考平面的分布图。图3b示出了对于垂直运动
±
6像素的沿着左轮的路径的31个像素宽的条带的归一化相关性得分。可以看到由箭头指示的小弯曲部。该弯曲部表示指示缓速脊(speedbump)的小的残余运动。
18.4.最后,残余运动被转换为公制的距离和高度,并被组合成多帧模型。结果示于图3c中的上图中。
19.在美国专利号9,256,791中更详细地描述了根据上述简要描述的一种先前已知的算法。
20.在图4a和图4b中示出了根据先前方法生成的数据的一个示例。图4a和图4b示出了来自使用恢复的旋转(r)、平移(t)和平面法线(n)对齐的一系列帧的道路纵断面(road profile)。可以看到在40米附近的缓速脊,而且还可以看到由于不正确的运动和平面法线引起的信号的强发散;采样示出了在纵断面之间的高度上约0.1米的发散。
21.简要概述
22.诸如上述方法的已知方法的一个缺点是在每个时间步长(time step)处使用不同的参考平面。在每个时间步长处使用的参考平面与基于在每个相应步长处的帧计算的道路的真实地平面相关。通过在每个步长处重新计算该地平面,在每个步长中的参考地平面之间可能会有微小的偏差,使得组合来自不同时间步长处的多个帧的信息变得麻烦。例如,当在路上存在缓速脊时,特别是当缓速脊或脊占据一个或更多个帧的大部分时,则主平面可以组合脊的部分和道路的部分,导致对道路的垂直偏差的计算不准确。此外,道路平面中的小偏差可能使新的测量结果较差地对齐。在理论上,从单应性矩阵导出的自我运动和平面信息可以对齐新的测量结果;然而,平面法线和自我运动(特别是平移)中的噪声不易于实现准确对齐。这些问题可以在图7a和图7b中所示的示例结果中看到,以下更详细地进行描述。
23.某些先前方法的另一个缺点是它们无法考虑镜头畸变(例如,径向畸变)和卷帘快门的影响。如果忽略镜头畸变和卷帘快门的影响,则先前已知的方法可能会得出具有所识别的道路平面的垂直偏差的定性正确的单一结果,但距离可能不准确,自我运动可能不准
确,并且得到的纵断面可能会有小的向上曲率。
24.因此,需要使用一致的地平面来计算道路表面的垂直偏差的系统和方法。如本文所解释的,改进的方法可以在每个时间步长处创建基于一致的地平面的单应性矩阵,并且然后可以使用该单应性矩阵来对齐帧并计算残余运动和道路纵断面。
25.本文所用的术语“单应性矩阵”是指从投影空间到自身的将直线映射到直线的可逆转换。在计算机视觉领域中,空间上相同的平面表面的两个图像通过具有针孔相机模型特征的单应性矩阵相关。在本公开中引用单应性矩阵的一些实施例中,也可以以类似的方式使用道路表面的替代模型;例如,在一些实施例中,道路可以用一定曲率建模为二次曲面。
26.特别地,通过示例,对于高度(1.25m)、焦距(950像素)和帧之间的车辆运动(1.58m)的给定的相机12,可以分别预测在两个图像帧15a和15b之间的道路平面上的点的运动。使用用于道路点的运动的几乎平坦的表面的模型,可以使第二图像15b朝向第一图像15a扭曲。以下matlab
tm
代码将执行初始扭曲步骤501:
[0027][0028]
其中dz是车辆18的前向运动,h是相机12的高度,以及f是相机12的焦距。p0=(x0;y0)是道路结构的灭点。可替换地,可以在车辆18中安装系统16期间使用初始校准值,其中x0是车辆18的前向方向,且y0是当车辆18在水平表面上时的水平线。变量s是与在距相机12不同的车辆距离z处捕获的两个图像帧15a和15b之间的图像坐标相关的整体缩放因子。如本文所用的术语“相对缩放变化”是指依赖于到相机12的距离z的图像坐标的整体缩放变化。
[0029]
此外,需要考虑到径向畸变和卷帘快门的影响的系统和方法,以便准确地检测距离,准确地测量自我运动,并且准确地生成没有人为向上曲率的道路纵断面。在一些实施例
中,这样的系统和方法可以考虑径向畸变和卷帘快门,但是可以对点跟踪使用初始图像(而没有针对卷帘快门和径向畸变的调整),以便避免计算上昂贵的图像预扭曲。
[0030]
本文中提供了可安装在主车辆中的各种驾驶者辅助系统和计算机化方法,以用于检测道路表面的垂直偏差。当主车辆移动时,该方法可由安装在主车辆中的das执行。das可以包括可操作地连接到处理器的相机。
[0031]
1)在一些实施例中,由安装在车辆中的驾驶者辅助系统执行计算机化的道路表面偏差检测方法,其中,该驾驶者辅助系统包括可操作地连接到处理器的相机。在一些实施例中,该方法包括:通过相机捕获多个图像,该多个图像包括在第一时间捕获的道路表面的第一图像和在第二时间捕获的道路表面的第二图像,第二时间在第一时间之后;至少基于第一图像和第二图像来确定道路的平面法线的第一估计和道路的平面法线的第二估计;至少基于平面法线的第一估计和平面法线的第二估计来创建道路表面的模型;使用道路表面的模型来确定沿着车辆的投影路径的残余运动;基于残余运动来计算道路表面的垂直偏差;以及将垂直偏差数据传输到车辆控制系统。
[0032]
2)如1)所述的方法,其中,所述道路表面的模型是单应性矩阵。
[0033]
3)如1)所述的方法,其中,确定道路的平面法线的所述第一估计和道路的平面法线的所述第二估计包括:
[0034]
至少基于道路的所述第一图像和道路的所述第二图像,计算初始单应性矩阵,
[0035]
分解所述初始单应性矩阵,以确定自我运动和道路的平面法线的所述第二估计,以及
[0036]
调整所述平面法线的先前估计以生成所述平面法线的所述第一估计,所述调整至少基于所确定的自我运动。
[0037]
4)如3)所述的方法,其中,计算所述初始单应性矩阵包括跟踪在所述第一图像和所述第二图像之间的点,其中,所述点分布在所述第一图像或所述第二图像中,以对应于在道路上彼此均匀间隔开的位置。
[0038]
5)如3)所述的方法,其中,计算所述初始单应性矩阵包括跟踪在所述第一图像和所述第二图像之间的点,其中,根据所述点在所述第一图像或所述第二图像中的位置将可变权重分配给它们。
[0039]
6)如1)所述的方法,其中,所述车辆控制系统被配置为响应于道路表面中的所计算的垂直偏差来调整车辆的悬挂系统。
[0040]
7)如1)所述的方法,其中,所述道路表面的模型至少基于所述平面法线的历史平均值。
[0041]
8)如7)所述的方法,其中,所述平面法线的所述第一估计在所述道路表面的模型中比所述平面法线的历史平均值加权更重。
[0042]
9)如1)所述的方法,其中,所述平面法线的所述第一估计在所述道路表面的模型中比所述平面法线的所述第二估计加权更重。
[0043]
10)如1)所述的方法,包括:
[0044]
计算世界坐标中的车辆路径,以及
[0045]
使用根据所述道路表面的模型确定的稳定平面参数将所述车辆路径投影到所述第二图像上。
[0046]
11)如1)所述的方法,包括:
[0047]
针对径向畸变和卷帘快门中的至少一个,校正所述多个图像中的点的坐标。
[0048]
12)如11)所述的方法,其中,在计算所述道路表面的模型之后,针对径向畸变和卷帘快门中的至少一个执行所述校正。
[0049]
13)在一些实施例中,驾驶者辅助系统安装在车辆中,系统包括处理器、可操作地连接到处理器的相机和储存指令的存储器,该指令在由处理器执行时使系统执行以下操作:通过相机捕获多个图像,多个图像包括在第一时间捕获的道路表面的第一图像和在第二时间捕获的道路表面的第二图像,第二时间在第一时间之后;至少基于第一图像和第二图像来确定道路的平面法线的第一估计和道路的平面法线的第二估计;至少基于平面法线的第一估计和平面法线的第二估计来创建道路表面的模型;使用道路表面的模型来确定沿着车辆的投影路径的残余运动;基于残余运动来计算道路表面的垂直偏差;以及将垂直偏差数据传输到车辆控制系统。
[0050]
14)在一些实施例中,计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时,使系统执行以下操作:通过可操作地连接到处理器的相机捕获多个图像,多个图像包括在第一时间捕获的道路表面的第一图像和在第二时间捕获的道路表面的第二图像,第二时间在第一时间之后;至少基于第一图像和第二图像来确定道路的平面法线的第一估计和道路的平面法线的第二估计;至少基于平面法线的第一估计和平面法线的第二估计来创建道路表面的模型;使用道路表面的模型来确定沿着车辆的投影路径的残余运动;基于残余运动来计算道路表面的垂直偏差;以及将垂直偏差数据传输到车辆控制系统。在一些实施例中,计算机可读储存介质是暂时性的。在一些实施例中,计算机可读储存介质是非暂时性的。
[0051]
15)在一些实施例中,由安装在车辆中的驾驶者辅助系统执行计算机化的道路表面偏差检测方法,其中,该驾驶者辅助系统包括可操作地连接到处理器的相机。在一些实施例中,该方法包括:选择至少两个道路纵断面,其中,至少两个道路纵断面中的每一个包括道路的公共部分;优化包括数据项、平滑度项和正则化项的函数,以对齐来自至少两个纵断面的第一纵断面;以及将至少两个道路纵断面组合成多帧纵断面。
[0052]
16)如15)所述的方法,其中,对齐来自所述至少两个纵断面的所述第一纵断面包括:
[0053]
基于所述优化,确定经优化的斜率值和经优化的偏移值,
[0054]
使用所述经优化的斜率值和所述经优化的偏移值来修改来自所述至少两个道路纵断面的所述第一纵断面。
[0055]
17)如15)所述的方法,其中,使用稳定的世界坐标系来生成所述至少两个道路纵断面。
[0056]
18)如15)所述的方法,其中,组合所述至少两个道路纵断面包括计算所述纵断面的中值。
[0057]
19)在一些实施例中,安装在车辆中的驾驶者辅助系统包括处理器、可操作地连接到处理器的相机以及储存指令的存储器,该指令在由处理器执行时使系统执行以下操作:选择至少两个道路纵断面,其中,至少两个道路纵断面中的每一个包括道路的公共部分;优化包括数据项、平滑度项和正则化项的函数,以对齐来自至少两个纵断面的第一纵断面;以
及将至少两个道路纵断面组合成多帧纵断面。
[0058]
20)在一些实施例中,计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时使系统执行以下操作:选择至少两个道路纵断面,其中,至少两个道路纵断面中的每一个包括道路的公共部分;优化包括数据项、平滑度项和正则化项的函数,以对齐来自至少两个纵断面的第一纵断面;以及将至少两个道路纵断面组合成多帧纵断面。在一些实施例中,计算机可读储存介质是暂时性的。在一些实施例中,计算机可读储存介质是非暂时性的。
[0059]
21)在一些实施例中,执行传输安装在车辆中的驾驶者辅助系统中的道路纵断面信息的方法,其中,驾驶者辅助系统包括可操作地连接到处理器的相机和数据接口。在一些实施例中,该方法包括:选择车辆的车轮前方的第一距离;沿着车辆的投影路径从道路纵断面中采样预定数量的数据点,其中,道路纵断面至少部分地基于由相机捕获的图像,以及其中,沿着具有对应于所选择的第一距离的端点的路径的节段对数据点进行采样,以及其中,根据稳定的参考平面生成一个或更多个数据点;以及通过数据接口在预定数量的数据传输中传输与预定数量的数据点相对应的道路纵断面信息,其中,数据传输的数量少于数据点的数量。
[0060]
22)如21)所述的方法,包括:
[0061]
选择通过所述数据接口传输数据的频率,其中,所选择的频率定义传输所述预定数量的数据传输的频率。
[0062]
23)如21)所述的方法,包括:
[0063]
估计在等于所选择的频率的倒数的时间段内由车辆行驶的第二距离,其中,沿着与超过所选择的第一距离的所估计的第二距离对应的所述路径的节段采样所述数据点。
[0064]
24)如23)所述的方法,其中,估计所述第二距离包括确定在车辆的已知当前速度下在所述时间段内将经过所述第二距离。
[0065]
25)如21)所述的方法,其中,通过所述数据接口传输的所述道路纵断面信息被配置成使得与相应数据点对应的所述道路纵断面信息能够由接收系统单独读取,并且与由所述道路纵断面表示的道路的相应部分关联。
[0066]
26)如21)所述的方法,其中,选择车辆的车轮前方的所述第一距离包括考虑系统延迟。
[0067]
27)如21)所述的方法,其中,所述数据点中的一个或更多个与相应置信度值相关联。
[0068]
28)如21)所述的方法,其中,确定所述数据点的间隔,使得其估计车辆在预定时间段内将从一个数据点行驶到下个数据点。
[0069]
29)如21)所述的方法,其中,至少部分地通过组合来自多个帧的纵断面信息来生成所述数据点中的一个或更多个数据点。
[0070]
30)在一些实施例中,驾驶者辅助系统安装在车辆中,该系统包括处理器、可操作地连接到处理器的相机和储存指令的存储器,该指令在由处理器执行时使系统执行以下操作:选择车辆的车轮前方的第一距离;沿着车辆的投影路径从道路纵断面中采样预定数量的数据点,其中,道路纵断面至少部分地基于由相机捕获的图像,以及其中,沿着具有对应于所选择的第一距离的端点的路径的节段对数据点进行采样,以及其中,根据稳定的参考
平面生成一个或更多个数据点;以及通过数据接口在预定数量的数据传输中传输与预定数量的数据点相对应的道路纵断面信息,其中,数据传输的数量少于数据点的数量。
[0071]
31)在一些实施例中,计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时,使系统执行以下操作:选择车辆的车轮前方的第一距离;沿着车辆的投影路径从道路纵断面中采样预定数量的数据点,其中,道路纵断面至少部分地基于由可操作地连接到处理器的相机捕获的图像,以及其中,沿着具有对应于所选择的第一距离的端点的路径的节段对数据点进行采样,以及其中,根据稳定的参考平面生成一个或更多个数据点;以及通过数据接口在预定数量的数据传输中传输与预定数量的数据点相对应的道路纵断面信息,其中,数据传输的数量少于数据点的数量。在一些实施例中,计算机可读储存介质是暂时性的。在一些实施例中,计算机可读储存介质是非暂时性的。
[0072]
32)在一些实施例中,由安装在车辆中的驾驶者辅助系统执行计算机化的道路表面偏差检测方法,其中,该驾驶者辅助系统包括可操作地连接到处理器的相机。在一些实施例中,该方法包括:通过相机捕获描绘道路的一部分的多个图像;确定图像的特征是否可归因于由树枝投下的阴影;根据图像的特征不可归因于由树枝投下的阴影的确定,处理特征以确定道路的该部分的垂直偏差;以及根据图像的特征可归因于由树枝投下的阴影的确定,减少在确定道路的该部分的垂直偏差时对特征的考虑。
[0073]
33)如32)所述的方法,其中,在确定道路的所述部分的垂直偏差时减少对所述特征的考虑包括在确定道路的所述部分的垂直偏差时忽略所述特征。
[0074]
34)如32)所述的方法,其中,确定所述图像的特征是否可归因于由树枝投下的阴影包括确定道路上的点是否被检测为随着时间的推移在高度上有变化。
[0075]
35)如32)所述的方法,其中,确定所述图像的特征是否可归因于由树枝投下的阴影包括确定道路上的点的高度是否被检测为随着时间的推移在符号上有变化。
[0076]
36)如32)所述的方法,其中,确定所述图像的特征是否可归因于由树枝投下的阴影包括确定道路上的点的高度是否被检测为在预定的时间段内变化大于阈值高度量。
[0077]
37)如32)所述的方法,其中,确定所述图像的特征是否可归因于由树枝投下的阴影包括确定检测到的运动是否不朝向扩张的焦点。
[0078]
38)如32)所述的方法,其中,确定所述图像的特征是否可归因于由树枝投下的阴影包括测量梯度以确定边缘的柔度。
[0079]
39)在一些实施例中,驾驶者辅助系统安装在车辆中,该系统包括处理器、可操作地连接到处理器的相机和储存指令的存储器,该指令在由处理器执行时使系统执行以下操作:通过相机捕获描绘道路的一部分的多个图像;确定图像的特征是否可归因于由树枝投下的阴影;根据图像的特征不可归因于由树枝投下的阴影的确定,处理特征以确定道路的该部分的垂直偏差;以及根据图像的特征可归因于由树枝投下的阴影的确定,减少在确定道路的该部分的垂直偏差时对特征的考虑。在一些实施例中,计算机可读储存介质是暂时性的。在一些实施例中,计算机可读储存介质是非暂时性的。
[0080]
40)在一些实施例中,计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时,使系统执行以下操作:通过可操作地连接到处理器的相机捕获描绘道路的一部分的多个图像;确定图像的特征是否可归因于由
树枝投下的阴影;根据图像的特征不可归因于由树枝投下的阴影的确定,处理特征以确定道路的该部分的垂直偏差;以及根据图像的特征可归因于由树枝投下的阴影的确定,减少在确定道路的该部分的垂直偏差时对特征的考虑。
[0081]
41)在一些实施例中,由安装在车辆中的驾驶者辅助系统执行计算机化的道路表面偏差检测方法,其中,该驾驶者辅助系统包括可操作地连接到处理器的单个相机。在一些实施例中,该方法包括:通过相机捕获描绘道路的一部分的多个图像;至少部分地基于道路的多个图像中的一个或更多个图像来生成道路纵断面;将置信度值与道路纵断面中的点相关联;以及向车辆控制系统传输对应于道路纵断面中的点和与道路纵断面中的点相关联的置信度值的数据。
[0082]
42)如41)所述的方法,其中,对应于所述道路纵断面中的点的所述数据包括道路的高度。
[0083]
43)如41)所述的方法,其中,对应于所述道路纵断面中的点的所述数据包括在车辆前方的距离。
[0084]
44)如41)所述的方法,其中,将置信度值与所述道路纵断面中的点相关联包括根据在所述多个图像中的两个图像之间执行的前向/后向验证来确定所述置信度值。
[0085]
45)如41)所述的方法,其中,将置信度值与所述道路纵断面中的点相关联包括:根据与在时间上间隔开的两个图像的比较相关联的得分矩阵的曲率来确定所述置信度值。
[0086]
46)如41)所述的方法,包括:
[0087]
借助对应于所述道路纵断面中的点和与所述道路纵断面中的点相关联的所述置信度值的所述数据来传输多帧置信度值,其中,根据来自关于所述道路纵断面中的点的不同图像的多个高度测量结果以及所述高度测量结果的差异确定所述多帧置信度值。
[0088]
47)在一些实施例中,驾驶者辅助系统安装在车辆中,系统包括处理器、可操作地连接到处理器的单个相机以及储存指令的存储器,该指令在由处理器执行时使系统执行以下操作:通过相机捕获描绘道路的一部分的多个图像;至少部分地基于道路的多个图像中的一个或更多个图像来生成道路纵断面;将置信度值与道路纵断面中的点相关联;以及向车辆控制系统传输对应于道路纵断面中的点和与道路纵断面中的点相关联的置信度值的数据。
[0089]
48)在一些实施例中,计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时使系统执行以下操作:通过可操作地连接到处理器的单个相机捕获描绘道路的一部分的多个图像;至少部分地基于道路的多个图像中的一个或更多个图像来生成道路纵断面;将置信度值与道路纵断面中的点相关联;以及向车辆控制系统传输对应于道路纵断面中的点和与道路纵断面中的点相关联的置信度值的数据。在一些实施例中,计算机可读储存介质是暂时性的。在一些实施例中,计算机可读储存介质是非暂时性的。
[0090]
49)在一些实施例中,由安装在车辆中的驾驶者辅助系统执行计算机化的道路表面偏差检测方法,其中,该驾驶者辅助系统包括具有卷帘快门和径向畸变的、可操作地连接到处理器的相机。在一些实施例中,该方法包括:通过相机捕获描绘道路的一部分的多个图像;补偿卷帘快门和径向畸变的影响;至少基于描绘道路的该部分的多个图像来生成道路的该部分的纵断面;将关于道路的该部分的纵断面的信息传输到车辆控制系统。
[0091]
50)如49)所述的方法,其中,补偿所述卷帘快门的影响包括:
[0092]
将图像点投影到道路上的3d点,
[0093]
根据车辆的速度调整向前坐标,以及
[0094]
将所调整的3d点投影回到所述图像中。
[0095]
51)在一些实施例中,驾驶者辅助系统安装在车辆中,系统包括处理器、具有卷帘快门和径向畸变的相机以及储存指令的存储器,相机可操作地连接到处理器,该指令在由处理器执行时,使系统执行以下操作:通过相机捕获描绘道路的一部分的多个图像;补偿卷帘快门和径向畸变的影响;至少基于描绘道路的该部分的多个图像来生成道路的该部分的纵断面;将关于道路的该部分的纵断面的信息传输到车辆控制系统。
[0096]
52)在一些实施例中,非暂时性计算机可读储存介质储存指令,该指令在由可操作地耦合到安装在主车辆中的驾驶者辅助系统的处理器执行时,使系统执行以下操作:通过可操作地连接到处理器的相机捕获描绘道路的一部分的多个图像,相机具有卷帘快门和径向畸变;补偿卷帘快门和径向畸变的影响;至少基于描绘道路的该部分的多个图像来生成道路的该部分的纵断面;将关于道路的该部分的纵断面的信息传输到车辆控制系统。
[0097]
当结合附图考虑时,上述和/或其它方面通过以下的详细描述将变得明显。
[0098]
附图简述
[0099]
参照附图进行以下公开,其中:
[0100]
图1和图2图示了根据一些实施例的、安装在车辆中的包括相机或图像传感器的系统。
[0101]
图3a图示了根据一些实施例的、覆盖在道路的视图上的点,其中,可以跟踪这些点以计算单应性矩阵。
[0102]
图3b图示了根据一些实施例的沿着车辆的路径的归一化相关性得分。
[0103]
图3c图示了根据一些实施例的投影到道路图像上的车辆的路径。
[0104]
图4a-图4b图示了根据一些实施例的不稳定的道路纵断面。
[0105]
图5示出了根据一些实施例的、说明校正径向畸变和卷帘快门的方法的流程图。
[0106]
图6a-图6d示出了根据一些实施例的、说明检测道路表面的偏差的方法的流程图。
[0107]
图7a-图7b说明了根据一些实施例的稳定的道路纵断面。
[0108]
图8示出了根据一些实施例的、说明创建多帧道路纵断面的方法的流程图。
[0109]
图9a-图9b图示了根据一些实施例的、借助精调的稳定的道路纵断面。
[0110]
图10a-图10b图示了根据一些实施例的、借助精调和用于脊检测的调整的稳定的道路纵断面。
[0111]
图11a-图11c图示了根据一些实施例的多帧道路纵断面。
[0112]
图12示出了根据一些实施例的、说明根据1d采样生成数据的方法的流程图。
[0113]
图13a-图13c图示了根据一些实施例的1d道路纵断面采样的结果。
[0114]
图14a图示了根据一些实施例的覆盖在道路的场景上的车轮的预测路径。
[0115]
图14b图示了车轮的预测路径,其示出了每个图的y轴上的道路的预测垂直偏差。
[0116]
详细描述
[0117]
现在将详细参考本公开的特征,其示例在附图中示出,其中,类似的参考数字始终表示类似的元素。以下描述这些特征以通过参考附图来解释本文公开的技术。
[0118]
在详细解释本技术的特征之前,应理解本文教导的技术不将其应用限制于下面描述中陈述或附图中说明的组件的设计和布置的细节。本文教导的技术能够纳入其他特征或以各种方式被实践或执行。并且,应理解本文采用的措辞和术语是出于描述的目的而不应被看作是限制性的。
[0119]
在该文档中,小写坐标(x,y)用于表示图像坐标;并且大写坐标(x,y,z)用于表示采用右手坐标系的世界坐标,其中,相对于车载相机,x是向前的,y是向左的以及z是向上的。
[0120]
通过引言,本文描述的技术的各个实施例对于使用如以上参考图1描述的安装在主车辆18中的相机12来准确地检测诸如道路的垂直断面的道路形状是有用的。使用本文提供的系统和方法,可以准确地检测到诸如缓速脊、路缘和井盖的脊和/或孔,其中具有偏离道路平面小至一厘米的垂直偏差。本文公开的系统和方法可以类似地应用于前视、侧视和后视的相机12。本文所述的各种方法可以准确地估计道路表面的平面(或双二次)模型,然后计算与平面(或双二次)模型的小偏差,以检测脊和孔。
[0121]
径向畸变和卷帘快门的校正
[0122]
现在参考图5,其示出了在诸如以上参考图2描述的图像帧15的道路图像中校正径向畸变和卷帘快门的方法500的流程图。在一些实施例中,为了准确地检测距离、准确地测量自我运动并准确地生成没有人为向上曲率的道路纵断面,对径向畸变和卷帘快门二者的校正可能是有利的。
[0123]
在一些实施例中,在步骤502,可以使用标准模型和默认镜头参数针对径向畸变首先校正每个捕获图像中的界内值(inlier)点的坐标。
[0124]
在一些实施例中,在对界内值点的坐标的校正之后,在步骤504,可以根据以下步骤对卷帘快门补偿每个图像中的点。首先,在步骤506,在图像中选择参考线y
t0
作为t0。然后,在步骤508,图像y坐标根据以下方程给出参考线的时间偏移:
[0125]
δ
t
=(y
–yt0
)*t
线
[0126]
接下来,在步骤510,假设默认道路模型([0,0,1]对于正常车辆速度和校准的相机高度是有好处的),点被投影到道路上的3d点。然后,在步骤512,x(向前)坐标按v*8
t
来调整,其中,v是车辆速度。最后,在步骤514,3d点被投影回到图像中。
[0127]
在稳定的坐标系中的单帧纵断面生成
[0128]
现在参考图6a-6d,图6a-6d是方法600的流程图,其在每个时间步长处创建基于一致的地平面的单应性矩阵,并且然后可以使用该单应性矩阵来对齐帧并计算残余运动和道路纵断面。在一些实施例中,根据方法600的技术可以优于先前已知的技术,因为方法600可以允许相对于相同参考帧对多个帧进行分析,而不是允许相对于根据该相应的帧本身唯一地计算的唯一参考帧对每个帧进行分析。如下面进一步详细解释的,在一些实施例中,方法600使得稳定的世界坐标系能够至少基于以下项的组合来计算:(a)根据当前帧计算的参考平面,(b)根据一个或更多个先前帧计算的参考平面,以及(c)至少部分地基于相机相对于车辆的固定位置的假设的默认参考平面。在一些实施例中,这些因素的组合可以得出稳定的世界坐标系,其可用于比较对应于不同时间步长的帧,以便计算残余运动并识别道路表面的垂直偏差。在一些实施例中,在稳定的道路世界坐标系中生成纵断面对于接收系统(诸如控制车辆悬挂的oem车辆控制系统)可能是更理想或有利的;通过在稳定的坐标系中生成
纵断面,信息可以由控制系统更容易地应用,而无需在事后被转换到由控制系统协调的道路。
[0129]
应注意,在一些实施例中,可以以类似的方式使用道路表面的另一类型的模型,而不使用单应性矩阵。例如,在一些实施例中,道路表面可以用某曲率来建模为二次曲面。为了简洁起见,在本文的示例性方法600的描述中,本公开将涉及单应性矩阵的使用。
[0130]
如下面进一步详细解释的,方法600的一个方面可以提供单应性矩阵的创建,其用于将一个图像朝向另一图像扭曲,以便计算残余运动并检测道路表面的垂直偏差。在一些实施例中,在该扭曲过程中使用的单应性矩阵的创建可以包括与平面法线的先前估计、平面法线的当前估计、以及基于汽车已经驾驶经过的历史时间段(例如,先前的20秒)的距离和法线的平均估计有关的信息的组合。在一些实施例中,如下所解释的重建的单应性矩阵可以被理解为不仅仅基于系统在其确定道路表面中是否存在任何垂直偏差时使用的图像中收集的信息,而且还基于关于道路平面的预定推测和/或关于道路平面的历史计算。在一些实施例中,这样的单应性可被计算并用于分析帧以根据以下步骤检测道路表面的垂直偏差。
[0131]
在步骤602,在一些实施例中,关于道路的单应性矩阵的初始猜测h0用于跟踪两个连续帧之间的点。尽管以上参照图5解释了方法,但是在一些实施例中,可以在不校正径向畸变和卷帘快门的情况下执行该初始步骤602。这些是预扭曲的图像i1w和图像i2之间的点对应。
[0132]
在一些实施例中,点可以均匀地放置在每个图像中,这给出更接近车辆的更多的点;或者这些点可以在距离上均匀间隔开,这需要主要集中在图像中(离车辆更远)的更多的点。在一些实施例中,点可以在图像中均匀地垂直间隔开,但是在单应性矩阵的最小二乘法计算中可以将更大的权重给距离更远的点。例如,在执行最小二乘(例如,求解ax=b)时,可以对a的每一行均等加权,或者可以给某些行赋予更多的权重(例如,求解wax=wb,其中w是权重的对角矩阵)。
[0133]
在步骤604,在一些实施例中,h0的逆矩阵用于获得图像i1和i2之间的点对应。
[0134]
在步骤606,在一些实施例中,每个图像中的点的坐标针对径向畸变进行校正并针对卷帘快门进行补偿。在一些实施例中,可以根据上面参照图5所解释的技术执行这些校正和补偿。
[0135]
在步骤608,在一些实施例中,在经校正的点上使用随机样本一致性(ransac)找出道路的单应性矩阵h。ransac是拒绝界外值的鲁棒算法的示例。也可以使用迭代重加权最小二乘法(irls)和其他鲁棒算法。
[0136]
在步骤610,在一些实施例中,可以在未经校正的点上使用相同的界内值/界外值分类来计算对齐畸变图像中的道路的单应性矩阵hd。
[0137]
在步骤612,在一些实施例中,单应性矩阵h可以分解为帧和n
当前
和d
当前
(分别为平面法线和到平面的距离)之间的自我运动(旋转r和平移t)。注意,r和t表示车辆运动,因此是唯一的,而平面n和d有些任意,因此将具有明显更多的噪声。
[0138]
在步骤614,在一些实施例中,基于自我运动(旋转r和平移t)以及n
当前
和d
当前
的新平面估计来调整平面的先前估计(n
先前
,d
先前
)。可以按照以下方程计算调整值n

和d


[0139]
(n

,d

)=0.8*更新
r,t
(n
先前
,d
先前
) 0.1*(n
当前
,d
当前
) 0.1*历史(n
当前
,d
当前
)
[0140]
(1)
[0141]
其中函数历史()是(n
当前
和d
当前
)的k个最后值的平均值,函数更新
r,t
由下式给出:
[0142]n更新
=r*n
先前
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0143]d更新
=t*n
更新
d
先前
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0144]
注意,方程(1)中的值0.8、0.1和0.1仅仅是示例性的,并且可以使用和为1.0的任何其他三个值的集合。
[0145]
在步骤616,在一些实施例中,通过根据以下子步骤链接来计算r

和t

。首先,对于当前帧和先前远的之间的每个接近的帧对,可以根据以下来创建矩阵:
[0146][0147]
接下来,矩阵ci相乘得到c


[0148][0149]
然后最后,乘积c

的上3x3矩阵被取为r

,并且右列的顶部三个元素被取为t


[0150]
在步骤618,在一些实施例中,然后基于针对r

和t

计算的值创建新的单应性矩阵h


[0151][0152]
其中t表示转置,以及其中撇号表示第二图像(例如,'t在第二图像的坐标系中)。
[0153]
在步骤620,在一些实施例中,可以使用畸变图像的单应性矩阵来重复该链接过程。可以使用来自畸变矩阵hd

的链接的rd

和td

(例如,根据以上参照步骤618所示的类似的方程)以及来自未畸变图像的n
更新
和d
更新
来构建单应性矩阵hd


[0154]
在步骤622,在一些实施例中,基于来自车辆的信息,诸如指示车辆的速度、速率、方向、加速度等的信息,在世界坐标(例如,x、y、z)中计算车辆路径;该信息可以从除了基于相机的导航系统之外的源获悉,诸如车辆配备的可以确定其速度、速率、方向、加速度和其他状态信息的其他传感器。
[0155]
在步骤624,在一些实施例中,使用稳定的平面参数将车辆路径投影到未畸变的图像上,然后根据径向畸变和卷帘快门使坐标畸变,以获得图像中的路径坐标(x,y)。在一些实施例中,由于径向畸变和卷帘快门,路径以两个步骤投影到当前图像上;首先,将路径投影到虚拟未畸变的图像坐标上;然后,使路径的坐标畸变以给出畸变的坐标。可替代地,在一些实施例中,可以简单地通过将车辆路径投影到畸变图像中来获得相当准确的结果(特别是在镜头具有低径向畸变的情况下)。
[0156]
在步骤626,在一些实施例中,单应性矩阵hd

使条带从图像i

朝向i2扭曲,其中i2是当前图像,而i

是先前图像。注意,在一些实施例中,i

可能不是紧接在i2之前的图像。在一些实施例中,可能需要车辆行驶的最小距离(例如,约0.7m)介于i

和i2之间。例如,在以每秒18帧运行的系统中,如果车辆以45kmh或以上行驶,则i

可以是先前图像;如果车辆在22.5kmh和45kmh之间行驶,则i

可以是在先前图像之前的图像。两个条带中的行的子像素对齐给出了沿着相对于稳定道路平面的车辆路径的点的残余运动(dy)。在一些实施例中,
可以根据提交于2014年11月26日的题为“road vertical contour detection“的美国专利号9,256,791以及提交于2015年7月14日的题为”road contour vertical detection“的美国申请号14/798,575中所讨论的技术来执行子像素对齐。
[0157]
在步骤628,在一些实施例中,hd

的逆矩阵可用于使点(x,y dy)从扭曲的畸变图像扭曲回去,以获得畸变图像id

中的匹配点。
[0158]
在步骤630,点(x,y)和匹配点相对于未畸变图像坐标是未畸变的。作为步骤628的结果,在沿着畸变的i2的路径的所有点(x,y)和id

中的相应点之间存在子像素匹配。为了获得准确的数字,这些坐标在两个图像中可以是未畸变的(对于径向畸变和卷帘快门),并使用h

利用i

的坐标(而不是图像本身)来重新扭曲。在一些实施例中,该过程可以包括仅操纵每个路径具有约200个点的图像坐标的两个向量,而不是实际图像;因此,该过程在计算上可能是便宜的。
[0159]
在步骤632,在一些实施例中,使用h

来使匹配的未畸变的点扭曲,并且减去未畸变的点(x,y),以得到真实的残余运动。例如,可以减去y坐标以获得未畸变的dy。
[0160]
在步骤634中,在一些实施例中,残余运动和未畸变的点(x,y)用于计算单帧的纵断面的距离和高度。在一些实施例中,可以根据提交于2014年11月26日的题为“road vertical contour detection”的美国专利号9,256,791以及提交于2015年7月14日的题为“road contour vertical detection”的美国申请号14/798,575中所讨论的技术执行该计算。图7a和图7b示出了根据上述方法使用稳定平面生成的单帧纵断面的示例性结果。图7a示出了纵断面的较宽部分,而图7b示出了在道路中被检测到的脊之前的区域上的图像放大。对于图7a和图7b的示例性纵断面,仅使用沿着平面的前向平移来执行对齐。在脊期间和其之后,纵断面是稳定的。注意,在90m的前向行驶内,垂直轴为-0.15m至0.15m。注意,采样在高度上的范围减小到0.05米,这明显小于在不使用稳定的坐标系的情况下所计算的图4a和图4b中所示的纵断面高度的范围。
[0161]
在稳定的坐标系中的多帧纵断面生成
[0162]
在一些实施例中,在相同时间点附近捕获的多个连续的图像帧可以全部包含作为图像的一部分的道路的单个公共部分。在一些实施例中,将从每个相应帧获得的图像数据和/或纵断面数据相关联,并将其与从其他帧获取的对应于道路的相同部分的其他图像和/或纵断面数据组合以进行分析可能是有利的。因此,提供了用于组合对应于道路的重叠区域的道路纵断面的技术。在一些实施例中,下面关于方法800描述的技术可以用于对齐与道路的相同部分相对应的各个纵断面,使得多个纵断面之间的略微未对齐不被不准确地解释为道路的轮廓的垂直偏差(例如,脊或凹陷)。当使用相同的稳定的世界坐标系来计算和表达纵断面时,明显有助于确保纵断面之间的差异不会不准确地指示垂直道路轮廓偏差,以下关于方法800的校正可以更进一步减少垂直道路轮廓偏差的不准确的指示。在一些实施例中,可以单独使用方法600和方法800的技术,尽管当它们被一起使用时,可能会产生具有最小的不准确的道路轮廓偏差的结果。
[0163]
现在参考图8,其示出了将多个帧(例如,表示当车辆穿过道路的一部分时的不同的时刻的帧)与全局模型对齐以组合与道路的重叠部分对应的道路纵断面的方法的流程图。
[0164]
令tz是沿着路径的车辆的前向运动。在一些实施例中,由于tz远小于纵断面的长
度,所以对于沿着道路的同一点,可能存在随时间推移的许多测量结果。换句话说,存在由相机捕获的许多连续的帧,其中道路的相同部分在相应的帧中是可见的。因此,在一些实施例中,导出使用所组合的相同点的所有测量结果的多帧模型将是有利的。一种途经是获取所有单帧纵断面并且通过移位前向平移tz绘制它们。他们将通过这种方法被相当好地对齐,但是在斜率上将存在小的垂直移位和变化。对沿着路径的每个点的高度简单地进行平均可以使脊平滑,因此考虑到这些高度和斜率的移位是至关重要的。因此,在一些实施例中,期望使用斜率和偏移值(a,b)使当前单帧纵断面p
当前
与全局模型对齐。在一些实施例中,该对齐可以根据以下步骤完成。
[0165]
在步骤802,在一些实施例中,可以选择k作为将用于分析的最新的纵断面的数量。然后选择从5m至12m的当前纵断面数据p
当前
和落在相同区域pk中的k个经调整的先前单帧纵断面,在该相同区域中已根据前向运动对齐所有的pk。
[0166]
在步骤804,随机梯度下降可用于使斜率和偏移值(a,b)上的成本函数e最小化,其中e包括数据项、平滑度项和正则化项。在一些实施例中,数据项d可以是任何范数,而不仅仅是l_1。数据项d也可以是饱和范数,诸如sum(min(abs(p_
当前
),阈值))。在一些实施例中,平滑度项s也可以是范数或饱和范数。在一些实施例中,正则化项r可以归因于被设计用于避免大的斜率和偏移项(诸如,分别包括a和b的平方值或绝对值的项)的惩罚(penality)。在一些实施例中,可以通过以下方程给出e:
[0167]ea,b
=λ1d λ2s λ3r
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0168]
其中,由下式给出考虑与零的差值的数据项d:
[0169]
d=∑(abs(p
当前
))
ꢀꢀꢀ
(8)
[0170]
考虑经调整的当前纵断面和先前经调整的单帧纵断面pk之间的差值的平滑度项:
[0171][0172]
并且正则化项被设计用于避免大的斜率和偏移项:
[0173]
r=a2 b2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0174]
注意,在上面的方程中的p
当前
的偏移和斜率已经移位(a,b)。每个pk是通过适当的前向运动移位的并通过针对该纵断面计算的斜率和间距(pitch)(ak,bk)调整的先前的单帧测量结果。在一些实施例中,随机梯度下降使用针对沿着纵断面的一个随机点所计算的梯度和e(a,b)的值,以调整(a,b)的值。在一些实施例中,可以使用固定的点序列而不是真正的随机点,这可以避免具有不利的大量界外值的不可预测的随机结果,并且可能不是可重现的。
[0175]
在一些实施例中,可以朝向当前纵断面分别调整k个最新纵断面中的每一个。
[0176]
在步骤806,在一些实施例中,(a,b)的最佳值可以应用于纵断面p
当前
,并且可以在经调节的p
当前
和所有经调整的纵断面pk之间计算中值。例如,在沿着纵断面的每个距离处,系统可以具有来自p
当前
的测量结果,并还可以具有一些数量(例如,5)的先前测结果pk。该系统可以计算那些6个值的中值(在一些实施例中排除无效值)。在所描述的实施例中,这给出了当前帧的多帧纵断面。
[0177]
在图9a、图9b、图10a-10b和图11a-11c中所示的示例中,在经调节的p
当前
和在从5m
到12m、间隔为0.05m的所有140个值上的所有经调整的纵断面pk之间执行中值计算。图9a-9b示出了在a值和b值的精调(例如,步骤804)之后的单帧纵断面。图9a示出了在精细对齐之后使用稳定平面形成的道路纵断面,而图9b示出了相同数据在缓速脊之前的道路的区域中的放大。注意,采样在高度上的分布更紧密,但脊的高度减小。将图7a和图7b与图9a和图9b进行比较:在图7a和图7b中,平坦节段中的纵断面范围约0.05m;而在图9a和图9b中,范围约为其一半。然而,注意,在图7a和图7b中,脊纵断面都高于约0.08m,而在图9a和图9b中,一些纵断面低于0.08m。图10a和10b示出了单帧纵断面(在两个不同的缩放级别),其中如以下参考忽略关于缓速脊的数据项所解释的考虑缓速脊来计算a和b。在图10a和图10b中,在保持比图7a和图7b中更紧密的范围的同时,下推如9a和图9b的缓速脊的这个问题得到缓解。图11a-图11c示出了在各种缩放级别的根据如上所述的方法800生成的多帧纵断面。
[0178]
1d采样
[0179]
在一些实施例中,传输关于车辆前方道路的部分的道路纵断面的数据可能需要传输大量的值。例如,每0.05米采样的车辆前方5米至12米的道路纵断面输出需要140个值;对于更长的纵断面,所需值的数量显然更大。可能需要的大量的值对于控制器局域网(can)可能是有问题的,并且在接收端上可能需要相当多的计算资源。例如,在一些实施例中,每帧每个车轮可传输200个数据点,这可能需要每帧传输超过1kb的数据。在一些实施例中,传输每帧的该数据量对于接收系统来说可能是不可行的和/或计算上太昂贵的。
[0180]
此外,一些das和自驾驶系统需要以预定的帧速率(诸如,100hz)接收数据,使得系统每10毫秒要求对应于道路(在车辆前方的预定距离处)的高度的一个数据点。在一些实施例中,每10毫秒向系统发送数据可能是不可行的,因为它可能独占车辆中的数据信道,使得不能通过相同的数据信道发送其他信息。
[0181]
因此,需要用于以以下方式传输关于道路纵断面的计算有效的数据量的系统和方法:(a)所发送的数据的总量在计算上是可管理的,并且(b)数据传输在所有时间点不会独占数据信道。
[0182]
在一些实施例中,提供了用于发送关于道路纵断面的信息的数据格式,其中在车轮前面的特定距离处输出道路高度。在一些实施例中,该距离是固定距离(例如,7米),以及在一些其它实施例中,可以动态地确定该距离。例如,可以根据车辆的速度动态地确定车轮前方的距离,以更高的速度增加了参考距离。在一些实施例中,可以根据在给定时间量内由车辆所覆盖的距离(例如,由车辆在0.5秒内以其当前速度所覆盖的距离)来设定距离。只发送对应于车轮前面的一定固定距离的数据,而不是在每个时间步长沿着整个已知车轮路径传送整个纵断面或者与道路高度有关的纵断面数据,允许传输较少的总数据,这可以节省计算资源和带宽。
[0183]
在一些实施例中,还提供了数据格式,其中,基本上同时传输多个数据点,而不是仅传输一个数据点,以有效地倍增帧速率。例如,如果帧速率为10hz,则在一些实施例中,系统可以通过以10hz的真实频率在突发(burst)中一次发送10个数据点来模拟100hz的数据输出。在传输之后,接收组件可以拆分10个数据点,并相继根据需要一次一个地查询它们。在一些实施例中,可以以单个数据传输来传输对应于单帧的所有数据点,而在一些实施例中,可以以数量比每帧数据点的数量少的多个传输来传输它们(例如,每帧7个数据点帧只以两个can消息来发送)。在一些实施例中,每个突发可以发送少于10个数据点。在一些实施
例中,每个突发可以发送16个数据点。
[0184]
现在注意图12,图12是示出了根据以上所讨论的1d采样技术生成数据的示例性方法1200的流程图。
[0185]
在一些实施例中,在步骤1202,系统可以选择传输数据应与其对应的车辆的车轮前方的距离。可以由要向其传输数据的车辆控制系统预先确定车轮前方的距离。在一些实施例中,选择车轮前方的距离可以包括考虑系统延迟,使得系统将在相应数据对应于车轮前方的目标距离时接收数据。例如,如果目标距离为7米,则系统可以选择71厘米作为车轮前方的距离,使得系统延迟使得当相应的数据点为车轮前方的7米(而不是71厘米)时,系统收到数据。
[0186]
在一些实施例中,在步骤1204,系统可以选择每突发应该发送的数据点的数量。例如,如上所讨论的,系统可以每突发发送10个数据点。在一些实施例中,系统可以每突发发送多个数据传输,诸如每帧发送两个can消息。在每突发发送多个传输的一些实施例中,系统可以选择要在该数据突发中每个传输发送的数据点的数量(可以是相同的或不同的)。
[0187]
在一些实施例中,在步骤1206,系统可以选择发送数据突发的频率。例如,系统可以每100毫秒发送一个数据突发(例如,10个数据点)。发送数据突发的频率可以由车辆中的数据信道的带宽来确定,或者可以另外由接收车辆控制系统预先确定。
[0188]
在一些实施例中,在步骤1208,系统可以确定主车辆在与要发送数据的频率相对应的时间内预期行驶的距离。例如,系统可以确定主车辆在100毫秒内预期行驶的距离。在一些实施例中,可以通过对车辆的当前速度和/或加速度进行采样(从现有图像数据和/或从车辆中的其它传感器和系统)来确定车辆预期行驶的距离。
[0189]
在一些实施例中,在步骤1210,系统可以沿着车轮的投影路径在n个点处对道路纵断面进行采样,其中n是每突发的数据点的数量。在一些实施例中,在其处对道路纵断面进行采样的点可以在车轮前方的所选距离和该距离加上在发送下个数据突发之前车辆将要行驶的估计距离之间间隔开(例如,可以跨越,或者可以在其间均匀间隔开)。在一些实施例中,道路纵断面可以在沿着路径段的点处被采样,该路径段延伸超过车轮前面的所选距离加上在发送下个数据突发之前车辆将要行驶的估计距离;通过这种方式,与来自不同帧的数据突发对应的道路部分之间可能存在一些重叠,产生了冗余,其在一些实施例中可以提高垂直偏差计算的准确度。在一些实施例中,一个或更多个数据点可以与相应的置信度值相关联;将在下面讨论关于置信度值的其他技术。
[0190]
在一些实施例中,可以根据稳定的参考平面生成数据点。在一些实施例中,可以至少部分地通过组合来自多个帧的纵断面信息来生成数据点。
[0191]
在一些实施例中,车辆控制系统可以在单个数据突发中基本上同时接收所有数据点,并且可以在下一个数据突发到达之前的时间段内根据需要拆分数据点以单独读取它们。例如,系统可以接收包含10个数据样本的数据突发,并且可以拆分突发并每10毫秒读取一个样本,直到100毫秒后接收到第二数据突发(具有10个附加数据点)。通过这种方式,数据突发可以模拟每10毫秒发送一个数据点,即使每100毫秒只传输一次数据。
[0192]
例如,如果需要与车轮前方7米对应的数据点,则系统可以估计车辆每10毫秒将移动多远,并且可以以10个数据点对已知道路纵断面进行采样,在车轮前方的7米的点处开始并继续采样。使用matlab
tm
表示法:
[0193]
z=7 [0:0.1:0.9]*dz/10
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0194]
其中dz是帧之间所行驶的距离(100ms)。因此,在10毫秒内车辆行驶的距离为5厘米的情况下,传输的数据点可分别对应于700厘米、705厘米、710厘米、715厘米等等,直到745厘米。在100毫秒之后,可以发送另外10个数据点的第二脉冲,并在此时车辆将向前移动大约0.5米。当车辆向前移位约0.5米,接下来的10个数据点将与真实世界坐标中的先前的10个数据点大致均匀地间隔,产生每5厘米的数据点的连续路径,车辆的驾驶者辅助软件可以关于当前车辆前方7米的点每10毫秒查询一次该连续路径。通过这种方式,通过一次发送数据点的突发,系统可以模拟以更高的帧速率发送一个数据点,而不持续独占车辆中的数据信道。
[0195]
在一些实施例中,如果根据上述方法传输10个数据点,但是从不同的道路纵断面中采样每组10个数据点,则数据点每次从一个纵断面切换到下个时可能存在小的中断。为了避免这个问题,可以通过对介于例如7m和2*dz之间的20个数据点进行采样来生成从一个纵断面到下个纵断面的平滑过渡:
[0196]
z=7 [0:0.1:1.9]*dz/10
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0197]
然后,将当前的前10个测量结果与先前的第二10个测量结果进行平均,逐渐增加当前测量结果的权重并减小先前的帧测量结果的权重。例如:
[0198]
w=[0;0.1;0.9]*10/9;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0199]
p
输出
=w*p
当前
(1:10) (1-w)*p
先前
(11:20)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0200]
根据以上所解释的方法和示例的1d分布图的结果示于图13a-图13c中。图13a示出了1d样本分布图,其中来自每个帧的10个样本被显示为节段。图13a中50米处的间隙是因为在帧上无效。图13b示出了在检测到的缓速脊之前的区域的放大,以及图13c示出了以缓速脊本身为中心的区域的放大。图14a和图14b示出了上面参照1d采样和图13a-图13c解释的示例的系统结果的示例。图14a示出了覆盖在道路图像上的预测的路径和残余运动,其中残余运动dy以图形方式表示为在x方向上的曲线的偏转,其中向右的偏转指示脊;可以看出,所计算的偏转从脊的开始处开始,朝向脊的中间增加,然后在脊的远侧减小。在所示的示例中,为了使小的偏转在图形上可见,偏转被缩放了30倍。图14b表示与图14a中所示的相同绘制的线,但是以横截面视图在度量坐标中示出。图14b中的顶部两个曲线示出了从5米到10米每5厘米采样的以及从10米到20米每10厘米采样的从5米到20米的当前的左和右分布图;y轴为-0.2m至0.2m,并且检测到的脊约为0.08m高。图14b中的底部两个曲线示出了左1d样本和右1d样本,其示出了从车辆前方7米处至到车辆本身所累积的分布图,其中垂直线表示车轮前方7米的点。垂直线右侧的节段是针对当前帧计算的部分:从7m到(7 dz)m。垂直线左侧的部分是在先前帧中计算的。随着时间的推移,脊将向左移动,并且当它达到零时,车轮实际上碰到脊,且汽车可以做出反应。
[0201]
在一些实施例中,可以根据替代技术来确定1d采样的数据点的间隔。例如,在一些实施例中,可以以使得数据点按照车辆预期在固定时间内行驶的距离分离的方式间隔开数据点。例如,车辆控制系统可以被配置为不管车辆速度而每10毫秒处理一个数据点。在这种情况下,系统可以以10毫秒的间隔(例如,根据车辆的当前速度)估计车辆预期定位的位置(例如,估计在各个时间点车辆将处于的相应位置,时间点间隔10毫秒),并且可以放置与这些估计位置中的每一个对应的数据点。
[0202]
在一个示例性系统中,以每秒18个突发(每55毫秒)输出突发,并且数据点被间隔以每10毫秒在由车辆覆盖的距离处进行采样。因此,突发可以包括足够的样本以覆盖突发之间的时间(55毫秒),例如通过输出覆盖60毫秒的7个样本,使得由每个突发覆盖的道路部分存在一些重叠。
[0203]
在另一个示例性系统中,突发各自包括10个数据点,并且数据点以对应于5.5毫秒的距离间隔开。在该系统中,10个样本覆盖49.5毫秒,剩下5.5毫秒,直到在第一突发之后的55毫秒第二突发到达,这样就没有数据点重叠。
[0204]
计算系统延迟
[0205]
在一些实施例中,das或自动驾驶系统可能需要对应于车辆前方一定距离(例如,7米)的点的数据。然而,在一些实施例中,由于系统延迟,在处理图像数据和控制器接收数据时,车辆已经移动,并且数据反映的是小于车辆前方的期望距离的点。因此,需要在处理图像数据以及将道路纵断面和其他数据传输到车辆控制器时考虑系统延迟的系统和方法。
[0206]
在一些实施例中,如果延迟t
l
是已知的,则数据点的采样距离可以如下调整:
[0207]
z=7 [0:0.1:1.9]*dz/10 v*t
l
ꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0208]
其中v是车辆速度。
[0209]
根据以上对延迟的调整,纵断面可以以针对延迟所调整的距离进行采样,以给出在车轮前面的所需距离处的1d分布图,校正由控制器接收到信号时的时间。在一些实施例中,值t
l
还可以考虑控制器计算的延迟或系统的任何其他部件的延迟。
[0210]
在一些实施例中,系统延迟可能不是固定的,因此可能对于道路纵断面估计系统来说是未知的。在一些实施例中,如果数据输出包括图像的时间戳,则车辆控制器可以使用时间戳来估计从图像捕获到控制器正在接收的数据的延迟。然后,控制器可以相应地校正系统延迟的变化。在一些实施例中,如果道路纵断面系统对纵断面进行过采样,并且输出比正进行接收的控制器或系统所需要的更密集间隔的数据,则这可能是有利的。然后,控制器或系统可以确定实际的延迟并选择要使用的数据。如果使用2毫秒的间隔,而不是10毫秒间隔,则控制器可以校正到优于1毫秒(例如,误差小于半毫秒)。由于由控制器所选择的所有值都是通过道路纵断面系统计算出来的,所以易于离线再现结果,例如在测试中。在一些实施例中,由于控制器不内插值,并且由控制器输出的数字是由道路纵断面系统计算的值,因此可以理解该值来自哪里。
[0211]
忽略关于缓速脊的数据项
[0212]
在一些实施例中,使用诸如上面参照方法600描述的那些的多帧对齐技术可能倾向于“下推”检测到的缓速脊的高度,因为该算法倾向于寻求将整个纵断面(包括缓速脊前面的道路和缓速脊本身)下推到零。为了抵消这种趋势,在一些实施例中,提供了能够忽略关于超过某个阈值高度的值的数据项的系统和方法。在一些实施例中,阈值高度可以是预先确定的或动态地确定的。例如,在(a,b)优化中,系统可以忽略超过3.5厘米的所有值的数据项。
[0213]
在一些实施例中,系统可以通过将纵断面拟合到直线来确定可能检测到的缓速脊。如果纵断面不拟合直线(例如,如果均方误差较大),则怀疑纵断面包含缓速脊。
[0214]
置信度值
[0215]
在一些实施例中,计算与道路纵断面和/或道路图像相关联的一个或更多个置信
度值是有利的。在一些实施例中,可以计算与单帧相关联或与多帧相关联的置信度值。在一些实施例中,可以计算与图像中的相应点或道路纵断面中的相应点相关联的置信度值。
[0216]
单帧置信度
[0217]
在一些实施例中,可以根据以下来计算单帧的置信度值。
[0218]
在一些实施例中,计算置信度的第一步骤是使用相关性得分(如图3b中所示)进行前向/后向验证。在图3b中,有13列,每列表示针对该行的给定偏移(-6至6)的得分。在图3b中,较暗的阴影表示较高的相关性得分,而较浅的阴影表示较低的相关性得分。在一些实施例中,可以通过不同的颜色表示相关性得分,诸如,红色表示高的相关性得分,黄色表示低的相关性得分,以及绿色表示甚至更低的相关性得分。对于点的从图像2到图像1的残余运动在幅度上应相等,并且从图像1到图像2的残余运动在符号上相反。可以通过查看从图像2到图像1的得分矩阵中的对角线来确定后者。如果前向/后向运动不匹配于1个像素内,则可以确定置信度为零。
[0219]
在一些实施例中,如果前向/后向运动匹配,则可以确定置信度为得分矩阵的曲率。当图像纹理明显时,可以因此确定更高的置信度得分。例如,在一些实施例中,良好的纹理可以给出0.25的量级的曲率得分。
[0220]
在一些实施例中,可以为条带的端部附近的区域分配为零的置信度值。
[0221]
在一些实施例中,确定的置信度值可以用在多帧分析过程中,诸如以上参考方法800所解释的过程。可以使用关于置信度的两个阈值:第一,用于在ab优化中选择点的高置信度;以及第二,低得多的阈值可用于确定哪些点用于中值。例如,高于0.1的曲率得分可用于确定哪些点可以用于随机下降优化(例如,步骤804),而0.01的曲率得分可用于确定在中值中是否要考虑点(例如,步骤806)。
[0222]
多帧置信度
[0223]
可以基于多个高度测量结果和在中值计算中使用的高度的差异从系统输出多帧置信度。在一些实施例中,对于沿着路径的每个点,介于零和五之间的样本用于根据当前帧和先前四个帧中的点的单帧置信度来计算中值输出。令n为高于阈值的样本数,可以如下计算多帧置信度:
[0224]
在一些实施例中,如果n=0,则可以确定多帧置信度为零。在一些实施例中,如果n=1,则可以确定多帧置信度为零。
[0225]
在一些实施例中,如果n≥2,则可以如下计算v:
[0226][0227]
其中,h是中值高度,且hi是步骤806中每个样本的高度。注意,平方(n-1)2惩罚小的n。
[0228]
在一些实施例中,置信度c由下式给出:
[0229]
c=5*(1

s*v)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(17)
[0230]
其产生介于零和5之间的置信度值。可以凭经验确定比例s。在一些实施例中,s可被设置为等于100。在一些实施例中,可以通过图像中各个点的颜色的饱和度来指示图像中的多个点的置信度值。
[0231]
忽略来自移动的车辆和物体的阴影
[0232]
在一些实施例中,基于相机的das和/或自动驾驶系统可以检测所捕获的图像中的阴影。例如,在明亮的日子,通常情况下,移动的车辆或诸如在相邻车道中或人行道上的骑自行车者和行人的其他物体将移动的阴影投到主车辆附近的道路上。当这样的阴影在道路上移动时,它产生残余运动,并且可能被不准确地解释为在道路表面中的固定的脊或凹陷,并且引起不期望的控制器响应。
[0233]
应当注意,来自移动物体的阴影通常具有相当大的残余运动,因此可能被检测为道路中非常高的脊。例如,以与主机相同的绝对速度移动的迎面而来的车辆的阴影在没有校正的情况下可以显示为相机高度的一半的脊。在一些实施例中,这些阴影没有被很好地跟踪,并且将获得低置信度或低的多帧置信度值。在这些情况下,系统会简单忽略阴影。但是,单独基于置信度值,移动阴影可能并不总是被成功忽略。因此,需要能够区分移动阴影与道路中的固定的脊和凹陷的系统和方法,包括通过主动过滤出被确定为对应于移动阴影的数据。
[0234]
在一些实施例中,如果由das和/或自驾驶系统(例如,基于相机的车辆检测、基于雷达的目标检测)的其他组件检测到移动物体,则该信息可以用于通过减小与对应于以被检测物体的速度在道路平面上的运动的残余运动相关联的置信度值来过滤出阴影。
[0235]
例如,考虑以20m/s行驶的主车辆和具有相对速度为-38m/s的在相邻车道中检测到的目标车辆。简单减法将确定目标车辆相对于静止的道路以-18m/s移动。例如,可以使用以上参考方法600的步骤618所解释的方程(6)(方程号6)中的单应性矩阵来估计以该速度移动的道路上的点的预期运动。在一些实施例中,单应性矩阵可以被分解,运动矢量t

可以被调整以考虑在用于创建被分解的单应性矩阵的两个帧之间的时间期间的目标车辆运动,并且新的单应性矩阵可以被重建。然后,可以将点的预期残余运动计算为根据初始h

的扭曲和基于经调整的t

的重建矩阵之间的差。本文所用的术语“扭曲”可以指从图像空间到图像空间的变换。在一些实施例中,可以随后将分配给具有接近可疑的残余运动的所测量残余运动的沿着路径的点的置信度值减小。在一些实施例中,如果沿着路径的许多点具有接近可疑的残余运动的残余运动,则整个帧可以被无效化。
[0236]
在提交于2015年6月12日的题目为“hazard detection from a camera in a scene with moving shadows”美国专利申请14/737,522中进一步讨论了用于检测移动的物体的阴影的技术。在一些实施例中,该申请中所公开的技术可以并入到本文公开的技术中,以便更准确地计算和输出道路纵断面,包括以类似的方式检测在道路表面中检测到的小的垂直偏差,使得可检测到由于道路危险引起的较大的垂直偏差。
[0237]
忽略来自树的移动阴影
[0238]
正如基于相机的das和自动驾驶系统可以检测诸如车辆和行人的移动物体的阴影(如以上刚刚所描述的),基于相机的das和自动驾驶系统也可以检测由树枝投射的阴影。通常情况下,风吹使这些阴影在道路表面上缓慢移动。在一些实施例中,不以与归因于大物体的运动相同的方式检测这些小运动;相反,这些小运动可能表现为道路纵断面中的小偏差的残余运动。因此,需要能够将缓慢移动的树枝阴影(和类似的)与道路表面中的小垂直偏差区分开的系统和方法,包括通过主动过滤出被确定为对应于树的阴影的数据。
[0239]
在一些实施例中,阴影的运动可以被确定为归因于树枝,并且可以至少部分地基于以下三个标准来忽略:
[0240]
第一,在一些实施例中,摇摆的树枝可以被检测为来回跳跃以产生随着时间不一致的阴影运动。因此,所得到的沿着受摇摆树枝阴影影响的路径的点的高度纵断面可以被检测为随着时间变化;在一些实施例中,这样的点可以改变符号,因此在某一时刻可以被检测为脊,然后在下一时刻可以被检测为孔。在一些实施例中,可以在某时间段内收集给定点的数据,并且超过阈值差异的检测到的高度的任何差异可以被确定为对应于移动阴影。例如,可以在诸如半秒的时间段内检测数据,并且超过在该半秒时间段内的预定阈值的单个点的任何差异可被采用以指示归因于摇摆的树枝的移动阴影。因此,可以减少该点的置信度值。
[0241]
第二,在一些实施例中,来自摇摆的树枝的运动可能不会朝向扩张的焦点。在一些实施例中,这对强制执行该约束的跟踪给予低置信度。在一些实施例中,为了验证看起来是脊的东西不是由于移动的阴影引起的,可以执行2d跟踪,然后不朝向扩展的焦点的运动可以减小置信度。可替代地或另外地,在一些实施例中,可以计算得分(例如,如图3b所示的),但是其中横向移位的一个条带加上或减去几个像素;如果得分较高,则表明运动不朝向扩张的焦点。
[0242]
第三,在一些实施例中,来自树枝的阴影边缘可能总是柔性的。这可能是由于太阳的有限尺寸。来自树枝的阴影可能会沿着太阳光的路径在超过物体到道路表面的距离的大约1/100的距离的边缘处下降。因此,可以使用诸如神经网络的学习技术来检测阴影的非典型纹理,或者可以通过测量阴影梯度来显式地检测非典型纹理。在一些实施例中,对具有柔性边缘的阴影的检测可以使相应点的置信度值减小。
[0243]
在一些实施例中,与不是树影的斑点(patch)的示例相比,可以使用诸如深度神经网络(dnn)的机器学习来对树阴影的斑点的示例训练系统。在一些实施例中,dnn可以在两个条带i2和扭曲的i

中供给,因此,它不仅可以使用图像的纹理以及运动,还可以隐式地使用表面的形状。
[0244]
使用基于图像的自由空间分析的改进的平面检测
[0245]
各种技术能够分析道路场景,以确定图像的哪些部分对应于道路,并且图像的哪些部分不对应于道路(例如,哪些部分对应于其他事物,诸如汽车、行人、路缘、树篱、障碍物等)。在一些实施例中,这样的技术具体检测在车辆附近的障碍物的存在。例如,如果检测到另一车辆,则可以确定与其他车辆对应的图像的区域和其周围的一些区域不对应于道路。
[0246]
在一些实施例中,系统可以尝试确定像素是否对应于道路;这可以基于像素的图像中的纹理、颜色和位置来完成,并且可以由对图像的哪些部分代表和不代表道路的示例进行训练的神经网络来执行。
[0247]
在一些实施例中,被确定为对应于没有任何障碍物的道路表面的图像的区域可以被称为“自由空间”。在用于确定道路表面的垂直偏差和/或用于确定道路纵断面的算法的一些实施例中,关于图像的哪些部分对应于自由空间的信息可用于改进算法。
[0248]
在一些实施例中,当确定道路模型的界内值点时,可以忽略位于自由空间区域之外的点。例如,这样的点可以简单地被视为界外值,或者它们也可以从一定数量的潜在的界内值中消除(因此,如果13个点在外部,而剩下的20个界内值都是界内值,则置信度可能相当高)。在一些实施例中,网格点可以在图像中重新分配,使得所有点落在自由空间中。在一些实施例中,当计算道路纵断面时,在自由空间以外的沿着路径的点可被给予低置信度。
[0249]
虽然本公开的某些实施例在das应用的环境中呈现,但是一些实施例可以同样适用于其他实时信号处理应用和/或数字处理应用,作为示例,诸如通信、机器视觉、音频和/或语音处理。
[0250]
这里使用的不定冠词“一(a)”和“一(an)”(诸如“图像(an image)”)具有“一个或更多个”(诸如“一个或更多个图像”)的含义。
[0251]
虽然已经示出和描述了所选择的特征,但是应当理解,本发明不限于所描述的特征。相反,应认识到,可以在不背离本发明的原理和精神的情况下对这些特征做出改变,本发明的范围由权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献