带有横向坡度的道路平面输出的制作方法

文档序号:16506117发布日期:2019-01-05 09:02阅读:200来源:国知局
带有横向坡度的道路平面输出的制作方法
本申请要求2016年3月15日提交的标题为“roadplaneoutputwithlateralslope”的美国临时申请第62/308,631号的权益,其全部内容出于所有目的通过引用并入本文。本申请涉及于2014年11月26日提交的标题为“roadverticalcontourdetection”的美国申请第14/554,500号(现为美国专利第9,256,791号);于2015年7月14日提交的标题为“roadcontourverticaldetection”的美国申请的第14/798,575号;于2015年2月26日提交的标题为“roadplaneprofileoutputinastabilizedworldcoordinateframe”的美国临时申请第62/120,929号;于2015年3月11日提交的标题为“roadplaneoutputinastabilizedworldcoordinateframe”美国临时申请第62/131,374号;于2015年4月20日提交的标题为“roadplaneprofileoutputinastabilizedworldcoordinateframe”的美国临时申请第62/149,699号;于2015年10月8日提交的标题为“roadplaneoutputinastabilizedworldcoordinateframe”的美国临时申请第62/238,980号;以及于2016年2月26日提交的标题为“roadverticalcontourdetectionusingastabilizedcoordinateframe”的美国申请第15/055,322号,其全部内容出于所有目的通过引用并入本文。领域本公开总体上涉及驾驶员辅助系统,更具体地,涉及检测道路平面的特征。背景近年来,驾驶员辅助系统(das)的使用显著增加,而且只会继续使用。驾驶员辅助系统可以是辅助车辆驾驶或操纵的硬件和/或软件组件。在一些情况下,das可以实现车辆的完全自主控制(例如,在操作期间不需要驾驶员干预)或半自主控制(例如,在操作期间需要一些驾驶员干预)。在某些情况下,das可以与驾驶员控制联合执行(例如,进行小的修正或提供关于路况的有用信息)。在一些情况下,das的控制级别可以(例如,由驾驶员)改变为完全自主、半自主、与驾驶员联合控制或禁用。das功能的一些示例包括车道偏离警告(ldw)、自动远光灯控制(ahc)、交通标志识别(tsr)和前方碰撞警告(fcw)。许多das系统依赖于一个或更多个相机来捕捉车辆周围的图像,例如,用于确定道路平面(例如,成像道路表面的图像平面)中的特征。某些用于确定道路平面中的特征的技术在某些条件下不能正确检测特征。结果,在das系统控制下行驶的车辆可能无法进行适当的调整以解决实际的道路平面特征,从而对行驶的乘坐、舒适性和/或安全性造成不利影响。简要概述因此,本文提供的技术允许改进道路平面中的特征特别是具有横向坡度(lateralslope)的特征的确定。在一些实施方式中,执行一种用于处理道路表面的视觉数据的方法,该方法包括:访问表示道路表面的视觉数据;确定道路表面的初始道路轮廓(roadprofile),其中道路轮廓从沿着与道路表面相关联的车辆路径的残余运动(residualmotion)中导出;将表示道路表面的视觉数据的一部分分割成第一段和第二段,其中被分割的视觉数据的该部分包括表示道路表面上的垂直偏差的视觉数据;确定视觉数据的该部分的第一段的第一段道路轮廓;确定视觉数据的该部分的第二段的第二段道路轮廓;比较第一段道路轮廓、第二段道路轮廓和初始道路轮廓中的一个或更多个;并且至少部分地基于比较的结果,输出道路表面上的垂直偏差的横向坡度的指示。在一些实施方式中,一种用于处理道路表面的视觉数据的系统,该系统包括:一个或更多个处理器;存储器;以及一个或更多个程序,其中一个或更多个程序存储在存储器中并被配置为由一个或更多个处理器执行,一个或更多个程序包括用于以下操作的指令:访问表示道路表面的视觉数据;确定道路表面的初始道路轮廓,其中道路轮廓从沿着与道路表面相关联的车辆路径的残余运动中导出;将表示道路表面的视觉数据的一部分分割成第一段和第二段,其中被分割的视觉数据的该部分包括表示道路表面上的垂直偏差的视觉数据;确定视觉数据的该部分的第一段的第一段道路轮廓;确定视觉数据的该部分的第二段的第二段道路轮廓;比较第一段道路轮廓、第二段道路轮廓和初始道路轮廓中的一个或更多个;并且至少部分地基于比较的结果,输出道路表面上垂直偏差的横向坡度的指示。在一些实施方式中,非暂时性计算机可读存储介质存储一个或更多个程序,一个或更多个程序包括指令,当由车辆的一个或更多个处理器执行时,该指令使得处理器执行以下操作:访问表示道路表面的视觉数据;确定道路表面的初始道路轮廓,其中道路轮廓从沿着与道路表面相关联的车辆路径的残余运动中导出;将表示道路表面的视觉数据的一部分分割成第一段和第二段,其中被分割的视觉数据的该部分包括表示道路表面上的垂直偏差的视觉数据;确定视觉数据的该部分的第一段的第一段道路轮廓;确定视觉数据的该部分的第二段的第二段道路轮廓;比较第一段道路轮廓、第二段道路轮廓和初始道路轮廓中的一个或更多个;并且至少部分地基于比较的结果,输出道路表面上的垂直偏差的横向坡度的指示。附图说明图1描绘了用于计算单应性的示例性点网格。图2描绘了相机视图,该相机视图包括沿着预测车轮路径的点的残余运动以及米制高度和距离的曲线图。图3描绘了沿着车轮路径的点的归一化相关分数。图4a描绘了相机视图,其中重叠的右轮路径经过减速带的中心。图4b描绘了相机视图,其中重叠的右轮路径经过减速带的边缘。图5a描绘了当路径在减速带的中心上方时用于计算道路轮廓的图像带。图5b描绘了当路径在减速带边缘上方时用于计算道路轮廓的图像带。图6描绘了当路径在减速带的中心上方时为图像带计算的车辆路径的残余运动的曲线图。图7描绘了相机视图,其中重叠的右轮路径经过减速带的边缘。图8描绘了当路径在减速带边缘上方时用于计算道路轮廓的图像带。图9描绘了当路径在减速带边缘上方时用于计算道路轮廓的分割的图像带。图10a描绘了当路径在减速带的中心上方时,为整个图像带以及分别为带的左右部分计算的车辆路径的残余运动的曲线图。图10b描绘了当路径在减速带的边缘上方时,为整个图像带以及分别为带的左右部分计算的车辆路径的残余运动的曲线图。图11描绘了示出用于处理道路表面的视觉数据的示例性过程的流程图。图12描绘了示出用于处理道路表面的视觉数据的示例性过程的流程图。图13描绘了用于处理道路表面的视觉数据的示例性系统。详细描述呈现以下描述以使本领域普通技术人员能够制造和使用各种实施方式。特定设备、技术和应用的描述仅作为示例提供。对于本领域的普通技术人员来说,本文描述的对示例的各种修改将是显而易见的,并且本文定义的一般原理可以应用于其他示例和应用,而不背离各种实施方式的精神和范围。因此,各种实施方式不旨在限于本文描述和示出的示例,而是符合与权利要求一致的范围。1.综述如上简要描述的,驾驶员辅助系统可以依靠一个或更多个成像设备来收集车辆周围的道路平面的视觉数据。该视觉数据又可用于确定车辆环境的结构特性,包括道路表面的特征、道路表面上的物体或障碍物、或道路表面的其他垂直偏差。本文使用的术语“平面”不限于纯粹的几何平面(即平坦、二维),而是在一般意义上使用。因此,例如,“道路平面”(也可以称为“道路表面”)可以是基本平坦的,但是包括三维分量。使用车载相机检测道路的轮廓的垂直偏差的某些现有方法是已知的。某些以前已知的算法可以总结如下:1.使用道路的单应性对准由车载相机捕获的第一对连续两帧。这给出了帧之间的自我运动(旋转r和平移t)。例如,图像中的点网格(例如,如图1所示)被跟踪并用于计算单应性。2.然后选择第二对帧,当前帧和最近的前一帧表示车辆当前已经移动超过最小阈值距离的时间点。使用第一对帧(连续帧)的链接来创建单应性的初始猜测,然后计算第二对帧的更精确单应性,并确定参考平面。3.然后将车辆的路径投影到图像平面上(如图2中的线所示)。沿着每条路径的带用于计算残余运动,这给出了相对于确定的参考平面的轮廓。图3示出了对于垂直运动±6像素,沿着左轮的路径宽31像素的带的归一化相关分数。可以看到由箭头所示的小的曲率。该曲率表示指示减速带的小残余运动。4.最后,残余运动被转换成米制距离和高度,并且被组合成多帧模型。结果在图2中上图中示出。图1-3示出了道路表面上的减速带的视觉数据的使用。图1示出了由覆盖在图像上的33个点组成的网格102,这些点被跟踪并用于计算单应性。在一些示例中,使用道路的单应性来对齐两个连续的图像帧。在其他示例中,可以使用非连续图像帧。例如,分开几帧捕获的两个图像帧(例如,在两个图像帧之间有一个或更多个中间捕获的帧)可以用于为单应性提供更大的基线。对齐图像帧也称为将第二(较早)图像帧朝向第一图像帧扭曲。单应性可用于使用图像帧从运动数据确定结构。在一些示例中,相机在帧之间的自我运动(旋转r和平移t)也使用单应性来确定。在一些实施方式中,使用车辆上的一个或更多个传感器来确定自我运动。在一些实施方式中,使用一种或更多种图像处理技术来确定自我运动。例如,图像处理可以包括从两个或更多个图像帧和道路模型计算自我运动。在一些示例中,假设道路模型具有平面(0%坡度)道路表面([0,0,1]对于正常车速和校准的相机高度来说很好),但是也可以使用其他道路模型。其他道路模型的示例包括但不限于1%倾斜道路、2%倾斜道路等。可以建模和使用更复杂的道路表面,包括具有变化的道路坡度的道路模型、不平坦道路表面的道路模型等。给定道路模型,图像点可以投影到道路模型上的3d点。如本文所使用的,除非另有说明,在车辆“上”是指在车辆内、车辆外部(例如,附接到车身)或以其他方式与车辆的一部分接触的附接、放置、定位、安装等。例如,安装在车辆内部挡风玻璃上的组件被认为在短语“在…上”的范围内,固定或以其他方式安装在车辆外部的组件也是如此。在一些示例中,网格中的点可以在图像中均匀间隔,这使得更多的点靠近车辆。在一些示例中,点可以在一定距离上均匀间隔,这将使点更集中在图像中的更高部分。在其他示例中,点在图像中垂直均匀间隔,并且例如在单应性的最小二乘计算中,更远的点被赋予更大的权重。在一些实施方式中,系统访问两个图像帧,其中车辆向前平移超过最小阈值,并且使用连续帧的链接来确定初始单应性。然后计算更精确的单应性,并确定参考平面。在一些实施方式中,系统访问除了两个以外的多个图像帧。例如,任何数量的图像帧可用于确定初始单应性和/或更精确的单应性(也称为精细单应性)。图2示出了由驾驶员辅助系统的成像设备捕获的道路表面的示例性视觉数据。图2包括投影到道路表面的图像平面(也称为道路平面)中的车辆路径数据。车辆路径202和204表示车辆左右车轮的相应路径,并且被描绘为覆盖在图像上的虚线。沿着每个车辆路径的带用于计算残余运动。残余运动可用于表示道路相对于成像道路表面的图像平面(例如,参考平面)的轮廓。诸如202和204的车辆路径是车辆已经或将要行驶的道路表面上的实际路径的虚拟表示。在一些实施方式中,“虚拟”车辆路径具有一个或更多个像素的宽度。在一些示例中,车辆路径的宽度是恒定数量的单位(例如,像素)。在其他示例中,车辆路径具有非恒定宽度。在一些实施方式中,“虚拟”车辆路径的宽度与实际路径的宽度相关。例如,与实际路径相关联的宽度可以基于实际车辆轮胎宽度(或者车辆和道路表面之间的其他接触点),可以基于平均轮胎宽度,可以基于用户输入来预定,可以是轮胎轨迹的中心线(与轮胎宽度无关),或者基于任何其他合适的值。图3示出了对于垂直运动±6像素,沿着左轮的车辆路径(路径202)宽31个像素的图像带的归一化相关分数。诸如图3中所示的归一化相关分数可以指示将第二图像帧的每一给定行与第一图像帧对齐所需的偏差或移位(例如,以像素数为单位)。在图3中,较暗的部分表示较高的相关性,其中垂直轴(例如,y轴)表示像素行(每个31像素宽),水平轴(x轴)以像素表示垂直运动。在黑暗部分可以看到轻微的曲率。直线302覆盖在归一化相关分数的顶部,以供参考。使用线302作为参考,可以看到小曲率(由箭头304表示)。该曲率表示残余运动和成像道路表面上存在垂直偏差,例如轮廓或障碍物(例如,减速带)。用于确定道路垂直轮廓的存在的技术在以下项中被更详细地描述:于2014年11月26日提交的标题为“roadverticalcontourdetection”的美国申请第14/554,500号(现为美国专利第9,256,791号);于2015年7月14日提交的标题为“roadcontourverticaldetection”的美国申请第14/798,575号;以及于2016年2月26日提交的标题为“roadverticalcontourdetectionusingastabilizedcoordinateframe”的美国申请第15/055,322号,其内容通过引用并入本文。在一些实施方式中,沿着一条或更多条车辆路径的残余运动被转换成米制距离和米制高度,并被组合成多帧模型(也可以称为多帧轮廓)。多帧模型是指通过将多个图像帧(例如,代表当车辆穿过一部分道路时的不同时刻的帧)与全局模型对齐以组合对应于道路重叠部分的道路轮廓而创建的模型。在该示例中,分别在图2的上部中的曲线图——曲线图206和曲线图208——中示出了关于左轮和右轮车辆路径的示例性道路轮廓。在一些实施方式中,通过通信总线,例如控制器局域网(can)总线,发送一个或更多个道路轮廓(单独或组合成多帧模型)。用于确定多帧模型的附加描述和算法在以下项中提供:于2014年11月26日提交的标题为“roadverticalcontourdetection”的美国申请第14/554,500号(现为美国专利第9,256,791号);以及于2015年7月14日提交的标题为“roadcontourverticaldetection”的美国申请第14/798,575号,其内容通过引用并入本文。稳定世界参考可用于提供表示为1d轮廓的具有非常紧凑表示的一致的道路轮廓。如本文后面所述,横向坡度计算可与任一表示一起使用:完整轮廓或紧凑1d轮廓。下面包括计算稳定世界参考的简要描述,然而,在2016年2月26日提交的标题为“roadverticalcontourdetectionusingastabilizedcoordinateframe”的美国申请第15/055,322号中找到进一步的描述,其内容通过引用并入本文。在一些实施方式中,至少基于(a)根据当前帧计算的参考平面,(b)根据一个或更多个先前帧计算的参考平面和(c)至少部分基于相机相对于车辆的固定位置的假定默认参考平面的组合来计算稳定世界坐标系。在一些实施方式中,这些因素的组合可以产生稳定世界坐标系,该稳定世界坐标系用于比较对应于不同时间步长的帧,以便计算残余运动并识别道路表面的垂直偏差。使用1d采样技术生成轮廓的简要描述包括在下面,然而,在2016年2月26日提交的标题为“roadverticalcontourdetectionusingastabilizedcoordinateframe”的美国申请第15/055,322中找到进一步的描述,其内容通过引用并入本文。在一些实施方式中,传输关于车辆前方道路的部分的道路轮廓的数据可能需要传输大量值。例如,每隔0.05米采样一次的车辆前方5米至12米的道路轮廓输出需要140个值;对于较长的轮廓,所需值的数量显然更大。可能需要的大量值对于控制器局域网(can)可能是有问题的,并且可能需要接收端的大量计算资源。例如,在一些实施方式中,每帧每轮可以传输200个数据点,这可能需要每帧传输1kb以上的数据。在一些实施方式中,对于接收系统来说,每个帧传输这一数量的数据可能是不可行的和/或计算过于昂贵。此外,一些das和自驱动系统需要以预定义的帧速率(例如100hz)接收数据,使得系统每10毫秒调用对应于道路高度(在车辆前方预定距离处)的一个数据点。在一些实施方式中,每10毫秒向系统发送数据可能是不可行的,因为它可能独占车辆中的数据信道,使得其他信息不能通过相同的数据信道发送。因此,以(a)发送的数据总量计算上可管理以及(b)数据传输并不在所有时间点独占数据信道的这样一种方式传输关于道路轮廓的计算有效量的数据是有益的。在一些实施方式中,提供了用于发送关于道路轮廓的信息的数据格式,其中在车轮前方的特定距离处输出道路高度。在一些实施方式中,该距离是固定距离(例如,7米),并且在一些其他实施方式中,该距离可以动态确定。例如,车轮前方的距离可以根据车辆的速度动态地确定,从而以更高的速度增加参考距离。在一些实施方式中,该距离可以根据车辆在给定时间量内覆盖的距离(例如,车辆以其当前速度在0.5秒内覆盖的距离)来设置。不是在每个时间步长沿着整个已知的车轮路径传送整个轮廓或与道路高度相关的轮廓数据,仅仅发送对应于车轮前方某个固定距离的数据允许传输更少的总数据,这可以节约计算资源和带宽。在一些实施方式中,还提供了一种数据格式,其中基本上同时传输多个数据点,而不是仅仅一个数据点,以使帧速率有效地倍增。例如,如果帧速率是10hz,则在一些实施方式中,系统可以通过在突发中以10hz的真实频率一次发送10个数据点来模拟100hz的数据输出。在传输之后,接收组件可以对10个数据点进行解包,并根据先后需要一次对它们中的一个数据点查询。在一些实施方式中,对应于单个帧的所有数据点可以在单个数据传输中传输,而在一些实施方式中,它们可以在数量少于每帧数据点数量的多个传输中传输(例如,仅在两个can消息中发送的每帧7个数据点)。在一些实施方式中,每个突发可以发送少于10个数据点。在一些实施方式中,每个突发可以发送16个数据点。从突发中的数据点可以确定紧凑的1d轮廓。在一些实施方式中,系统可以确定主车辆预期在对应于数据将被发送的频率的时间内行驶的距离。在一些实施方式中,系统可以在沿着车轮的投影路径的n个点处采样道路轮廓,其中n是每个突发的数据点的数量。在一些实施方式中,对道路轮廓进行采样的点可以在车轮前方的选定距离和该距离加上车辆在发送下一个数据突发之前将行进的估计距离之间间隔开(例如,可以跨越车轮前方的选定距离,或者可以在它们之间均匀间隔开)。在一些实施方式中,可以在沿着路径段的点处采样道路轮廓,该路径段延伸超过车轮前方的选定距离加上在发送下一个数据突发之前车辆将行驶的估计距离;以这种方式,对应于来自不同帧的数据突发的道路部分之间可能存在一些重叠,从而产生冗余,这在一些实施方式中可以提高垂直偏差计算的准确性。现在,注意力转向一些示例,这些示例说明了驾驶员辅助系统可能遇到的具体现实情况。简而言之,下面呈现的第一示例说明了简单的情况,其中车辆路径(例如,车轮的路径)经过道路表面上的隆起物的中心,其中隆起物具有大致均匀的横向高度(例如,车轮的整个宽度将经历隆起物的高度)。下面给出的第二示例说明了驾驶员辅助系统的更困难的情况,其中车辆路径经过具有横向坡度的道路平面的一部分(例如,诸如隆起物或其他障碍物的边缘)。在该第二示例中,典型的车辆导航系统可以简单地将具有横向坡度的部分视为简单的隆起物(例如,与第一示例中相同),或者根本不将其视为隆起物(例如,在车轮宽度上隆起物的平均检测高度将低于第一示例,这可能不会导致隆起物注册为驾驶员辅助系统的显著障碍物)。示例1:完全经过障碍物的车辆路径图4-6示出了第一示例的视觉数据和测量结果。如上所述,该第一示例说明了驾驶员辅助系统检测到车辆路径(例如,车轮的路径)经过在车辆路径两侧具有大致均匀横向高度的障碍物(例如,隆起物)的中心的情况。图4a示出了驾驶员辅助系统接收的视觉数据。视觉数据包括车辆行驶的道路表面402的表示。图4a还包括叠加在视觉数据上的对应于车辆右轮的车辆路径404。包括在车辆路径404上的是沿着车辆路径的道路表面的残余运动的度量。图4a还描绘了道路表面402上的减速带406。如可以看到的,车辆路径404完全经过隆起物406,隆起物406似乎在车辆路径404的每一侧上具有大致均匀的横向高度。值得注意的是,当车辆路径404经过隆起物406时,路径404上的重叠残余运动向上偏转。残余运动的图形表示中的这种向上偏转表示道路表面上存在隆起物(例如,或其他物体、特征、障碍物等)。表示道路表面的残余运动的数据可用于计算道路轮廓。在一些实施方式中,道路轮廓是沿着车轮将行进的路径的道路高度。在一些示例中,高度是相对于某个参考平面的高度。例如,通过将以像素为单位的残余运动转换为适用于道路表面的距离度量(例如厘米),从残余运动计算道路轮廓。在一些示例中,道路轮廓可以用像素表示。图4a还包括曲线图410,描绘了车辆的左轮的残余运动(曲线图410的顶部)和车辆的右轮的残余运动(曲线图410的底部)。箭头412指示残余运动数据中表示隆起物406的部分。注意箭头412处的残余运动曲线图的向上偏转,该偏转发生在(例如,离车辆)大约8米的距离处。图4b类似于图4a,但是描绘了车辆路径经过减速带边缘的情况。图4b被包括以示出由本文以示例的方式给出的先前的驾驶员辅助系统进行的分析。曲线图430描绘了由先前的驾驶员辅助系统确定的道路轮廓。箭头432指示减速带406的存在。当比较时,由箭头412(图4a)和箭头432(图4b)指示的图示的残余运动看起来非常相似。也就是说,轮廓图显示了类似的隆起物,并且没有给出车轮路径的一半在隆起物的上面而一半离开隆起物的指示。因此,呈现有图4a和4b中任一个描绘的情形的驾驶员辅助系统可以将它们两者同等对待。然而,在图4b中经过的隆起物边缘的横向斜率可能未被检测到,从而阻止驾驶员辅助系统(或其他车辆组件)进行适当的调整或采取适当的行动。将理解的是,图4a和4b所示的示例仅提供了本发明的实施方式及其实现的算法与现有技术解决方案反应和行为不同的场景的一个非限制性示例。图5a描绘了用于计算图4a中描绘的道路轮廓的图像带。特别地,图5a示出了用于检测隆起物的带,该带宽31个像素(例如,车辆路径每侧上15个像素,加上表示车辆路径的中心的1个像素)。对于带的整个宽度,减速带502是清晰可见的,从行100附近开始。在一些实施方式中,带的长度表示车辆前方的距离。例如,带可以表示沿着车辆路径从车辆前方5米的距离到车辆前方20米的距离的视觉数据。在一些实施方式中,该距离可以是恒定的。在一些实施方式中,该距离可以是可变的。例如,由图像带的长度表示的距离可以是可变的,并且取决于一个或更多个条件,例如车速。类似地,带的宽度(例如以像素为单位)可以是恒定的或可变的。通常,具有更多像素的带需要更多的计算资源来处理。注意,为了更有效的处理,图4a中的车辆路径404的对角线路径已经被拉直(例如垂直)。根据一些实施方式,车辆路径在处理之前没有被拉直。可以通过移动每一行“拉直”这个带,使路径的中心形成一条直线。与图像带的创建和拉直相关的技术在以下项中被进一步详细描述:于2014年11月26日提交的标题为“roadverticalcontourdetection”的美国申请第14/554,500号(现为美国专利第9,256,791号);以及于2015年7月14日提交的标题为“roadcontourverticaldetection”的美国申请第14/798,575号,其内容通过引用并入本文。图5b描绘了用于计算图4b中描绘的道路轮廓的图像带。特别地,图5b示出了用于检测隆起物的带。从第12列到第31列,减速带仅覆盖了带宽度的一半以上,但是从第1列到第12列,带是平坦的道路。将图5b中描绘的带用于道路轮廓计算可能导致不确定或不令人满意的结果。结果可能取决于道路和隆起物上的纹理的强度。如果道路纹理很强,则隆起物可能看起来很平。如果隆起物纹理占主导地位,结果可以是隆起物的检测,如图4b的情况所示。在某些情况下,结果可能是平均值。这种不确定性是不可取的。例如,当车辆在其车轮半个在减速带(或道路上的物体)上而半个离开减速带(或道路上的物体)的情况下行驶这种路径时,车辆的体验及其对车辆中乘客的影响可以取决于各种因素,包括与车辆重量分布、车辆悬架、车辆速度等相关的因素。可能是对车辆的影响可以对车辆的准确路径(例如,在几厘米内)是敏感的。因此,能够区分路径完全在隆起物或平坦道路上的情况和车轮路径靠近道路表面上的物体或障碍物的边缘的情况将是有利的。可选地,如果轮廓经过减速带(或任何其他物体)的边缘,则可以给它低置信度。在一些示例中,悬架控制可能对部分隆起物有特定的响应,并且轮廓估计系统可以向悬架控制系统提供适当的指示,从而允许悬架控制系统激活特定的部分隆起物响应。部分隆起物也可能在汽车上产生横向偏转力,转向控制也可能受益于这种力即将发生的了解。在这种情况下,轮廓估计系统可以向转向控制提供适当的指示。如果车辆具有某种形式的自动转向,轮廓估计系统可以提供部分隆起物的指示,并且自动转向控制可以被配置成(根据需要)巧妙地调整车辆的路径,例如,使得车轮路径根本不会经过隆起物。图6描绘了图4a中的示例的车辆路径的残余运动的示例性曲线图,其中车辆路径经过隆起物的中心。曲线图600描绘了沿着车辆路径404的道路平面的残余运动(以图像行像素的增量测量)。从图6中可以看出,沿着图5a中描绘的图像带的中心的路径的残余运动包括从像素号100附近开始的急剧增加。产生的峰值代表隆起物。示例2:部分经过障碍物的车辆路径图7-10示出了第二示例的视觉数据和测量结果。如上所述,该第二示例说明了驾驶员辅助系统检测到车辆路径(例如车轮的路径)部分经过具有均匀横向高度的隆起物的情况。图7示出了由驾驶员辅助系统接收(或以其他方式由驾驶员辅助系统捕获)的示例性视觉数据。视觉数据包括车辆行驶在其上的对应于道路表面402的道路表面702的表示。图7还包括叠加在视觉数据上的对应于车辆右轮的车辆路径704。包括在车辆路径704上的是沿着车辆路径的道路平面的残余运动的度量。图7还描绘了道路表面702上的减速带706。隆起物706对应于隆起物406,隆起物706看起来具有大致均匀的横向高度。然而,值得注意的是,在该示例中,车辆路径704替代地经过隆起物706的边缘。当车辆路径704经过隆起物706时,路径704上的重叠残余运动向上偏转。根据现有技术计算,图7中所示的向上偏转与图4b中所示的向上偏转相同。然而,如上所述,在诸如图7中所呈现的情况下计算道路特征的残余运动可能导致不确定或不令人满意的结果。下面给出了用于改进具有横向坡度的道路平面的处理的技术的实施方式。图8示出了用于确定道路轮廓的示例道路带。图8对应于图5b的图像带,并且用于检测道路表面(例如,道路表面702)上的隆起。减速带从第12列到第31列仅覆盖了带宽度的一半以上,但是从第1列到第12列,带是平坦的道路。回想一下,在关于图5a描述的示例中,针对经过图像带中心的车辆路径确定图像带的残余运动。带的尺寸(宽度)和下面描述的段的尺寸可以根据某些参数来设置或选择,这些参数包括例如车辆速度、车辆悬架系统的反应时间和其他操作参数、照相机的帧速率、系统能够对检测到的障碍物做出反应(或最佳反应)的距离等。带的纵向范围(长度)也可以是预定义的,或者可以根据某些参数来选择(在预定义设置的情况下,这样的预定义的设置也可以根据以下参数选择)。例如,可以根据车辆速度、到候选物(或物体)的距离和帧速率来选择带的横向范围。进一步举例来说,可以选择带的横向范围,使得至少在两个(通常连续的)帧中捕获每个候选物(或物体)。例如,对于以每小时100公里的速度行驶的车辆,带的横向范围至少可以是150像素,使得候选障碍物将在至少带中从两个连续的图像帧中被捕获。应当理解,对作为可用于确定图像帧带的横向范围的可能参数的两个连续图像帧的引用仅作为示例进行,并且可以使用其它长度的图像帧带,包括例如将提供用于在三个(或四个等)连续的图像帧中捕获候选物的长度。不是将图8的图像带作为单个图像带来处理,而是可以分割图像带。在一些实施方式中,图像带被分割成两个带。图9描绘了两个示例性段,左带(包括图像带的0至15像素)和右段(包括图像带的16至31像素)。因此,图8的图像已经被大致纵向(在图像中垂直地)分成两半——左段包括(对于每一行宽度)像素1-15,右段包括(对于每一行宽度)像素16-31。将理解,图像带(或补片)可以被分割成任意数量的段(例如,两个、三个,...n个段),其中每个段包括两个或更多个像素。在一些示例中,分割的带可以被进一步分割。在又一个示例中,原始图像带可以被分割成部分重叠但不包括其他段的直接分割的多个段。例如,图像带可以被分割成每个一半的两段,也可以被分割成每个三分之一的三段。任何其他适当的图像分割都是可以预见的。在一些实施方式中,如前所述,在整个带上计算残余运动,但是也为每个部分带(段)单独计算残余运动。在一些实施方式中,计算少于所有带的残余运动。例如,可以仅对段(部分带)计算残余运动。在一些实施方式中,图像带被分割成多个段。在一些实施方式中,图像带沿着纬度方向被分割。在一些实施方式中,图像带被分割成多个不同尺寸的段。在一些实施方式中,图像带被分割多次。例如,原始图像可以被多次分割,或者段可以被进一步分割。然后,可以为所有或一些分割的带计算道路轮廓。图10a和图10b示出了对整个带(“两者”)以及对带的左部分和右部分分别计算的轮廓结果(以像素为单位),左部分和右部分由分割整个图像带产生。图10a对应于路径经过隆起物边缘的第二示例(图8)。在这种情况下,左段和右段给出了明显不同的轮廓。整个(未分割的)带的轮廓接近完全位于隆起物上的右带的轮廓。然而,右带和整个带轮廓与左带的轮廓大不相同(例如,具有比左带的轮廓大得多的残余运动值)。左带和右带的残余运动之间的差异可以指示车辆的路径经过横向坡度。在该示例中,车辆路径经过减速带的边缘,因此横向坡度是减速带过渡到平坦道路的结果(例如,当从右带向左带看时)。为了比较,图10b对应于第一示例(图5a),其中路径经过隆起物的中心。可以看出,图10a中的所有三个轮廓都是相似的,并且整个带的轮廓实际上看起来是左带和右带的平均值。在一些实施方式中,一旦计算了三个轮廓,就将它们进行比较。可以以残余运动(像素)为单位进行比较,或者可以将残余运动转换为高度测量值,并且可以比较高度。在一些实施方式中,比较轮廓包括确定每个道路轮廓的残余运动(或高度)是否在彼此的阈值内。例如,使用残余运动,系统确定特定行的所有三个测量值在0.25像素内是否一致。如果没有,则在一些示例中,与道路轮廓和/或道路轮廓的残余运动相关联的置信度降低。在一些实施方式中,障碍物的横向坡度的表示被确定并作为输出提供。在一些实施方式中,横向坡度的表示包括坡度的方向。在一些实施方式中,计算坡度的按位表示。例如,使用2位(0和1):“00”表示所有测量值在阈值内一致,“10”表示:(左-右)>(阈值),“01”表示(右-左)>(阈值),“11”可能表示“两者”(整个带)的轮廓明显大于或小于“左”和“右”两者的轮廓。最后一种情形(“11”)表示某种错误,因为“两者”的残余运动通常在“左”和“右”带之间的某个位置,并且在一些示例中,置信度值可以作为响应而减小。在一些实施方式中,在将残余运动转换成米制高度之后,计算米制差异。例如,计算左带的米制高度和右带轮廓的米制高度的差。在一些示例中,沿着左带和右带的轮廓中的每一个,在同一像素行处的两个轮廓之间取得差异(例如,对于两个段,在离车辆大约相同的横向距离处)。在其他示例中,计算出的差异可能是沿着左和右带轮廓的任意两个高度之间的最大差异。沿着分割的带的轮廓,可以在任何两个合适的点之间取得差异。在一些实施方式中,横向坡度的表示包括实际坡度值。在一些示例中,坡度值表示为角度。在图9中描绘的示例图像带中,左和右两段路径的中心相距15像素。给定每行(像素)的距离,该像素值可以转换为图像带段中心之间的实际米制距离。例如,在距离车辆10米的距离处,15个像素的间距可能相当于10厘米。给定5厘米的轮廓高度差和两段路径中心之间的9厘米的横向距离,将意味着5/9(≈0.555556)的横向坡度。在一些示例中,用于计算坡度的横向距离是以另一种方式导出的(例如,不是两段路径的中心)。任何合适的技术意图在本公开的范围内。使用单应性从视觉数据确定米制长度的技术是众所周知的。用于确定米制高度和宽度的任何合适的方法都可以用于确定检测到的障碍物的坡度值。在一些示例中,使用像素值确定坡度值。在一些实施方式中,道路轮廓系统输出所有三个轮廓。在一些实施方式中,如果存在显著的差异,则道路轮廓系统输出所有三个高度并且更下游的控制器可以做出决定。在一些实施方式中,输出的轮廓少于计算的所有轮廓。有效计算根据上述实施方式,可以使用各种技术来提高道路轮廓输出的计算效率。优选地,有效地执行多个轮廓的计算,例如上述示例中的三个轮廓(“左”带、“右”带和“两者”)。此外,繁重的计算优选地被最小化(例如,执行一次)。在一些示例中,在带被分离之前,第二图像帧向第一图像帧的扭曲以及任何预处理(例如秩变换、低通或高通滤波)完成一次。在一些示例中,对一个或更多个图像帧执行预处理,以便减少噪声、增加图像中的纹理,或者出于任何其他适当的原因来帮助使用图像帧执行图像处理技术。在一些实施方式中,其他计算可以在过程之间共享。在一些示例中,平方差之和(ssd)用于对齐第一和第二图像帧。例如,15行x31列的补片的ssd分数可以通过将相同15行的针对左列求和的ssd分数与针对左列求和的ssd分数相加来计算。重述一遍,部分图像带的ssd分数可以被计算然后被组合,以得出整个图像带的分数,避免在组合图像带上再次执行ssd操作。因此,到目前为止,没有显著的额外计算。结果是三个分数数组,如图3所示,几乎是一个的成本。在一些实施方式中,使用抛物线插补将道路轮廓的归一化相关分数中的峰值首先确定为最近的整数,然后确定为子像素。针对子像素局部最大值搜索分数数组中的每一行的最后阶段被重复三次。在一些示例中,对于部分图像带(例如,左带和右带)轮廓,可以跳过计算的一些部分,例如计算每行的置信度。在一些示例中,计算归一化相关性而不是ssd在效率方面类似,因为整个带的向量∑l1、∑l2、和∑l1l2同样只是左和右的总和。类似地,可以使用绝对差和(sad)计算来代替ssd。在一些示例中,如果计算周期非常昂贵,则可以使用子像素局部最大值的一些计算。整个带的整数局部最大值可用于选择用于左带和右带子像素计算的点。例如,可以对轮廓中可能表示道路表面上障碍物的部分(例如,局部最大值)执行子像素计算。还可以在上述多帧轮廓计算中使用三个单一帧轮廓。在一些示例中,所有三个测量值都可以用于计算多帧中值。为了节省计算,可以仅使用整个带的轮廓来执行随机下降,并使用相同的坡度和偏移值来对齐其他带。横向坡度输出驾驶员辅助系统可以以各种方式使用与道路表面上的特征相关联的横向坡度的确定。在一些实施方式中,提供一个或更多个道路轮廓作为输出。例如,输出可以被提供给一个或更多个驾驶员辅助系统。在一些实施方式中,输出包括横向坡度的方向和/或值。在一些示例中,驾驶员辅助系统部分基于输出结果来调整车辆组件设置。因此,图像带的道路轮廓与分割的图像带的比较被用于为驾驶员辅助系统产生可操作的数据。在一些实施方式中,对车辆转向设置进行调整以修改车辆路径,其中修改的车辆路径避免经过道路表面上的隆起物。例如,可以控制车辆,使得车辆避免使其车轮经过减速带的边缘。在一些实施方式中,对车辆悬架设置进行调整。例如,为了确保安全和舒适,车辆可以调整悬架组件以准备车轮与横向倾斜表面接触。在一些实施方式中,驾驶员辅助系统将道路轮廓信息和/或横向坡度信息输出到一个或更多个高级系统,这些系统为车辆控制做出适当的决策。通过汽车通信总线输出在一些实施方式中,执行本文所述技术的系统的输出可以被传送到车辆通信总线(例如can总线或flexray)的车辆悬架控制器。应当理解,这些仅仅是作为车辆通信总线的示例被提供,并且可以使用任何其他类型的适当通信总线。在can总线示例中,数据需要打包成一系列8字节的消息。现在考虑传输从5.00m延伸到14.95m的道路轮廓。在本示例中,系统每隔5cm输出轮廓点,得到200个点。分辨率为0.0025m的-0.31m至0.32m之间的高度值可以编码为8位。我们可以为置信度值保留4位,为存在隆起物保留1位,为横向坡度保留3位。这允许左/右坡度的3个值和右/左坡度的3个值,000可以指示可忽略的坡度,111可以指示通过横向坡度计算检测到的误差,例如在左和右部分带的残余运动范围之外的全部带的残余。例如,下表(表1)可用于三个坡度位。应当理解,表1仅提供了使用一个或更多个位来表示横向坡度值的示例,并且可以使用任何其它合适的横向坡度表示。代码坡度尺寸坡度方向000无坡度n/a001小r>l010中r>l011大r>l100大l>r101中l>r110小l>r111误差n/a表1在表1中所示的示例中,“大”表示大于1/1(例如坡度值),“中”表示1/1至1/2之间,“小”表示1/5并且“无坡度”表示坡度小于1/5。因此,对于每个轮廓,每个2字节的200点是400字节或者50条can消息。计算横向坡度的其他技术用于计算横向坡度指示的任何其它合适的技术都旨在处于本公开的范围内。例如,可以使用整个道路表面的计算密集结构。在这个示例中,系统可以:计算整个道路表面的密集结构(例如,使用多相机立体或运动结构);确定沿表面的车辆路径;将轮廓确定为沿路径的高度(以相机坐标或道路参考平面坐标);并将横向坡度确定为路径左侧和右侧的点的高度的横向变化。在一些实施方式中,图像剪切用于计算横向坡度。这一过程的一个示例在下面更详细介绍。使用剪切计算横向坡度可以使用图像剪切以替代方式计算沿着路径的某一点的横向坡度。考虑垂直围绕该点为中心的17行31像素宽的补片。系统可以寻找两个参数,而不是仅仅寻找一个垂直位移v来最好地将从当前图像得到的补片与之前的图像对齐:整个补片的常数v0和乘以x坐标的参数vx:v(x)=v0+vx(x)(1)使用horn和schunk亮度约束(参见,例如b.k.p.horn和b.g.schunck在1981年的artificialintelligence发表的“determiningopticalflow”,第17卷第185-203页)uix+viv+it=0(2)并且设置u=0,因为我们只在垂直方向上对齐,并且设置v(x)=v0+vx(x)其中x是从x=-15到15的31像素宽的带的列,我们得到:(v0+vxx)iy+it=0(3)为了求解v0和vx,我们可以在lukas和kanade(参见,例如b.d.lucas和t.kanade(1981年)的aniterativeimageregistrationtechniquewithanapplicationtostereovision,imagingunderstandingworkshop的研讨会文集,第121-130页)之后对整个补片使用最小二乘法,但将x和y中的运动(u,v)(分别)替换为y和剪切中的v0和vx运动。我们发现v0和vx使整个补片的ssd分数最小化:解由下式给出:vx的大绝对值指示显著的坡度,符号指示从左到右或从右到左的向下坡度。将vx解释为坡度角取决于带的行。图11描绘了示出根据一些实施方式的用于处理道路平面的视觉数据的示例性过程1100的流程图。在一些实施方式中,过程1100由一个或更多个计算设备和/或系统(例如,系统1200)执行。在框1110,访问表示道路表面的视觉数据。在框1120,确定道路表面的初始道路轮廓。在一些实施方式中,初始道路轮廓是从沿着与道路表面相关联的车辆路径的残余运动中导出的。在框1130,表示道路表面的视觉数据的一部分被分割成第一段和第二段。在一些实施方式中,被分割的视觉数据的部分包括表示道路表面上的障碍物的视觉数据。在框1140,确定视觉数据的该部分的第一段的第一段道路轮廓。在框1150,确定视觉数据的该部分的第二段的第二段道路轮廓。在框1160,比较第一段道路轮廓、第二段道路轮廓和初始道路轮廓中的一个或更多个。在框1170,至少部分基于比较结果,输出道路表面上障碍物的横向坡度的指示。图12描绘了示出根据一些实施方式的用于处理道路平面的视觉数据的示例性过程1200的流程图。在一些实施方式中,过程1200由一个或更多个计算设备和/或系统(例如,系统1200)执行。在框1210,确定在道路表面上预计将由车辆的至少一个车轮穿过的路径。在框1220处,使用由一个或更多个相机捕获的至少两个图像来确定沿着车轮将要穿过的路径的至少一个点的道路表面的高度。在框1230,计算在沿着路径的至少一个点处的道路表面的横向坡度的指示。在框1240,在车辆接口总线上输出该点的高度的指示和沿路径的至少一个点处的横向坡度的指示。在一些实施方式中,使用至少两个图像,确定车轮将要穿过的路径上的两个点处的道路的高度,这两个点彼此横向移位并且沿着路径处于基本相同的距离。在一些实施方式中,部分基于在两个点处道路表面的高度的比较来计算道路表面的横向坡度的指示。在一些实施方式中,两个点中的至少一个是沿着计算出的道路轮廓的点。在一些实施方式中,两个点沿着两个计算出的道路轮廓。例如,两点中的每一点都可以位于单独的道路轮廓上。在一些实施方式中,至少一个点是两个或更多个点。在一些实施方式中,至少一个点是五个或更多个点。在一些实施方式中,至少两个图像是在不同时间从单个相机捕获的。在一些实施方式中,在车辆已经从捕获第一图像的车辆位置移动至少最小距离之后捕获第二图像。在某些实施方式中,最小距离是可调整的。例如,可以基于一个或更多个因素(例如,车速)来改变距捕获第一图像的车辆位置的最小距离。在一些实施方式中,最小距离至少为0.3米。应当理解,其他的最小距离可以被使用。在一些实施方式中,所捕获的至少两个图像是使用两个相机捕获的。例如,一个图像可以由第一相机捕获,而第二图像可以由第二相机捕获。在一些实施方式中,两个相机在车辆中横向移位。在一些实施方式中,两个相机中的至少一个相机安装在车辆的挡风玻璃上。在一些实施方式中,横向坡度的指示指示该点向左和向右的高度是否基本相同。例如,横向坡度的指示可以指示两个方向上的相邻点与该点的高度大致相同。在一些实施方式中,横向坡度的指示指示该点左侧的高度是否显著大于该点右侧的高度。例如,横向坡度的指示可以指示从该点的左侧到该点的右侧存在向下的坡度。在一些实施方式中,横向坡度的指示指示该点左侧的高度是否显著小于该点右侧的高度。例如,横向坡度的指示可以指示从该点的右侧到该点的左侧存在向下的坡度。在一些实施方式中,横向坡度的指示是坡度的角度。在一些实施方式中,坡度的角度用5个或更多个可能的值表示。在一些实施方式中,坡度的角度用整数数值表示。例如,坡度的角度可以通过位的组合(例如,000、001、010等)来指示。图13描绘了被配置为执行上述过程中的任何一个的示例性计算系统1300的组件。在一些实施方式中,计算系统1300是车辆计算机、模块、组件等。计算系统1300可以包括例如处理单元,该处理单元包括一个或更多个处理器、存储器、储存器和输入/输出设备(例如,监视器、触摸屏、键盘、相机、指示笔、绘图设备、磁盘驱动器、usb、互联网连接、近场无线通信、蓝牙等)。然而,计算系统1300可以包括用于执行过程(例如,过程1100和/或过程1200)的一些或所有方面的电路或其他专用硬件。在一些操作设置中,计算系统1300可以被配置为包括一个或更多个单元的系统,每个单元被配置为以软件、硬件、固件或其某种组合来执行过程的某些方面。在计算系统1300中,主系统1302可以包括输入/输出(“i/o”)部分1304、一个或更多个中央处理单元(“cpu”)1306和存储器部分1308。存储器部分1308可以包含用于执行过程1100的至少一部分的计算机可执行指令和/或数据。i/o部分1304可选地连接到一个或更多个相机1310、一个或更多个传感器1312、非易失性存储单元1314或一个或更多个外部系统1320。例如,外部系统1320可以是另一车辆控制组件或系统等。i/o部分1304还可以连接到可以读取/写入非暂时性计算机可读存储介质的其他组件(未示出),该存储介质可以包含程序和/或数据。可以保存基于上述过程的结果的至少一些值以供后续使用。另外,非暂时性的计算机可读存储介质可用于存储(例如,有形地体现)一个或更多个计算机程序,用于借助于计算机执行上述过程中的任何一个。例如,计算机程序可以用通用编程语言(例如,pascal、c、c++、java等)或一些专用的应用专用语言编写。为了说明和描述的目的,已提出了具体实施方式的前述描述。它们并不旨在穷举或将权利要求的范围限制于所公开的精确形式,并且应当理解,根据上述教导,许多修改和变化是可能的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1