用于沿着路段自主地导航自主车辆的系统、车辆及方法与流程

文档序号:25230907发布日期:2021-05-28 14:38阅读:258来源:国知局
用于沿着路段自主地导航自主车辆的系统、车辆及方法与流程

本申请是申请日为2016年2月10日、申请号为201680021179.6(国际申请号为pct/us2016/017411)、发明名称为“用于自主车辆导航的稀疏地图”的发明专利申请的分案申请。

相关申请的交叉引用

本申请要求以下各项的优先权权益:2015年2月10日提交的美国临时专利申请第62/114091号;2015年5月20日提交的美国临时专利申请第62/164055号;2015年6月4日提交的美国临时专利申请第62/170728号;2015年6月19日提交的美国临时专利申请第62/181784号;2015年7月15日提交的美国临时专利申请第62/192576号;2015年9月9日提交的美国临时专利申请第62/215764号;2015年9月17日提交的美国临时专利申请第62/219733号;2015年12月1日提交的美国临时专利申请第62/261578号;2015年12月1日提交的美国临时专利申请第62/261598号;2015年12月15日提交的美国临时专利申请第62/267643号;2015年12月28日提交的美国临时专利申请第62/269818号;2015年12月21日提交的美国临时专利申请第62/270408号;2015年12月21日提交的美国临时专利申请第62/270418号;2015年12月21日提交的美国临时专利申请第62/270431号;2015年12月22日提交的美国临时专利申请第62/271103号;2016年1月5日提交的美国临时专利申请第62/274883号;2016年1月5日提交的美国临时专利申请第62/274968号;2016年1月5日提交的美国临时专利申请第62/275007号;2016年1月5日提交的美国临时专利申请第62/275046号;以及2016年1月11日提交的美国临时专利申请第62/277068号。通过引用将所有前述申请整体地合并于此。

本公开一般涉及自主车辆导航和用于自主车辆导航的稀疏地图。此外,本公开涉及用于构建、使用、和更新用于自主车辆导航的稀疏地图的系统和方法。



背景技术:

随着技术的不断进步,能够在路面上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达期望的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕获的信息),并且也可能使用从其它源(例如,从gps设备、速率传感器、加速器、悬架传感器等等)获得的信息。同时,为了导航到目的地,自主车辆还可能需要标识它在特定路面之内的位置(例如,在多车道道路之内的特定车道),沿着其它车辆旁边导航、避开障碍物和行人、观察交通信号和标志、以及在适当的交叉点或交汇处从一条道路行驶到另一道路。随着自主车辆行驶到它的目的地,利用和解释由自主车辆收集的海量信息造成大量的设计挑战。自主车辆可能需要分析、访问、和/或存储的庞大数量的数据(例如,捕获的图像数据、地图数据、gps数据、传感器数据等等)造成能够事实上限制或甚至不利地影响自主导航的挑战。而且,如果自主车辆依赖传统的测绘技术来导航,则存储和更新地图所需的庞大数量的数据造成令人怯步的挑战。



技术实现要素:

与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包括一个、两个、或更多监视车辆的环境的相机。所公开的系统可以基于,例如,对由相机中的一个或多个捕获的图像的分析来提供导航响应。导航响应还可以考虑其它数据,包括:例如,全球定位系统(globalpositioningsystem,gps)数据、传感器数据(来自加速器、速率传感器、悬架传感器等等)、和/或其它地图数据。

在一些实施例中,所公开的系统和方法可以将稀疏地图用于自主车辆导航。例如,稀疏地图可以为导航提供充足的信息而无需要求过多的数据存储。

在其它实施例中,所公开的系统和方法可以构建用于自主车辆导航的道路模型。例如,所公开的系统和方法可以将包括推荐轨迹的众包数据用于自主车辆导航。作为其它示例,所公开的系统和方法可以标识在车辆的环境中的地标,并且完善地标定位。

在又其它实施例中,所公开的系统和方法可以使用用于自主车辆导航的稀疏道路模型。例如,所公开的系统和方法可以基于已识别地标提供导航、对齐车辆的尾部以用于导航、允许车辆导航道路枢纽、允许车辆使用局部重叠的地图来导航、允许车辆使用稀疏地图来导航、基于期望的地标位置导航、基于道路签名自主地导航道路、基于后向相机提供向前导航、基于自由空间确定来导航、在雪中导航、提供自主车辆速率校准、基于识别的地标位置确定车道分配、以及将超级地标用作导航辅助。

还是在其它实施例中,所公开的系统和方法可以提供自适应自主导航。例如,公开的系统和方法可以基于用户干预提供自适应导航、提供自知式自适应导航、提供自适应道路模型管理器、以及基于选择性反馈来管理道路模型。

在一些实施例中,非瞬时性计算机可读介质可以包括用于沿着路段的自主车辆导航的稀疏地图。稀疏地图可以包括用于沿着路段的自主车辆的目标轨迹的多项式表示;和与路段相关联的多个预定地标,其中多个预定的地标可以隔开至少50米,并且其中稀疏地图可以具有每千米不超过1兆字节的数据密度。

在非瞬时性计算机可读介质的一些实施例中,多项式表示可以是三维的多项式表示。可以基于车辆沿着路段的在先穿越的两个或更多个重建的轨迹来确定目标轨迹的多项式表示。多个预定地标可以包括在稀疏地图中由不超过50个字节的数据表示的交通标志。多个预定地标可以包括在稀疏地图中由不超过50个字节的数据表示的方向标志。多个预定地标可以包括在稀疏地图中被不超过100个字节的数据表示的通用标志。多个预定地标可以包括在稀疏地图中被不超过100个字节的数据表示的一般矩形对象。在稀疏地图中的一般矩形对象的表示可以包括与一般矩形对象相关联的浓缩的图像签名。可以通过包括地标尺寸、与先前地标的距离、地标类型、和地标位置的参数在稀疏地图中表示多个预定地标。被包括在稀疏地图中的多个预定地标可以隔开至少2千米。被包括在稀疏地图中的多个预定地标可以隔开至少1千米。被包括在稀疏地图中的多个预定地标可以隔开至少100米。稀疏地图可以具有每千米不超过100千字节的数据密度。稀疏地图可以具有每千米不超过10千字节的数据密度。多个预定地标可以以足以维持1米之内的纵向位置确定精度的频率以上的频率出现在稀疏地图中。

在一些实施例中,自主车辆可以包括本体;以及非瞬时性计算机可读介质,所述非瞬时性计算机可读介质可以包括用于自主车辆沿着路段的导航的稀疏地图。稀疏地图可以包括用于自主车辆沿着路段的目标轨迹的多项式表示;和与路段相关联的多个预定地标,其中多个预定地标隔开至少50米,并且其中稀疏地图可以具有每千米不超过1兆字节的数据密度。自主车辆可以包括处理器,其被配置为执行被包括在稀疏地图中的数据,以用于提供沿着路段的自主车辆导航。

在自主车辆的一些实施例中,多项式表示可以是三维的多项式表示。可以基于沿着路段的车辆的在先穿越的两个或更多个重建的轨迹来确定目标轨迹的多项式表示。

在一些实施例中,自主车辆可以包括本体;以及处理器,所述处理器被配置为接收被包括在稀疏地图中的数据,并且运行数据以用于自主车辆沿着路段的导航。稀疏地图可以包括用于自主车辆沿着路段的目标轨迹的多项式表示;和与路段相关联的多个预定地标,其中多个预定地标隔开至少50米,并且其中稀疏地图可以具有每千米不超过1兆字节的数据密度。

在一些实施例中,处理车辆导航信息以用于自主车辆导航的方法可以包括由服务器从多个车辆接收导航信息。来自多个车辆的导航信息可以与公共路段相关联。该方法可以包括由服务器存储与公共路段相关联的导航信息。该方法可以包括:由服务器基于来自多个车辆的导航信息生成用于公共路段的自主车辆道路导航模型的至少一部分;以及由服务器将自主车辆道路导航模型分发给一个或多个自主车辆以用于沿着公共路段自主地导航该一个或多个自主车辆。

在方法的一些实施例中,当每个车辆在公共路段上行驶时,导航信息可以包括来自多个车辆中的每一个的轨迹。可以基于相机的感测到的运动来确定轨迹,所述运动包括三维平移和三维旋转运动。导航信息可以包括车道分配。生成自主车辆道路导航模型的至少一部分可以包括聚类沿着公共路段的车辆轨迹、以及基于所聚类的车辆轨迹确定沿着公共路段的目标轨迹。自主车辆道路导航模型可以包括与沿着公共路段的目标轨迹相对应的三维样条。目标轨迹可以与公共路段的单个车道相关联。自主车辆道路导航模型可以包括多个目标轨迹,每个目标轨迹与公共路段的单独的车道相关联。基于所聚类的车辆轨迹来确定沿着公共路段的目标轨迹,可以包括基于所聚类的车辆轨迹寻找均值轨迹或平均轨迹。可以通过三维样条来表示目标轨迹。该样条可以通过每千米小于10千字节来定义。自主车辆道路导航模型可以包括至少一个地标的标识,所述标识包括至少一个地标的位置。可以基于使用与多个车辆相关联的传感器系统所执行的位置测量来确定至少一个地标的位置。位置测量可以被平均,以获得至少一个地标的位置。至少一个地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、地标信标、或灯柱。

在一些实施例中,用于车辆的导航系统可以包括以下各项:至少一个处理器,被编程为从相机接收与车辆相关联的至少一个环境图像;分析至少一个环境图像,以确定与车辆有关的导航信息;从车辆向服务器发送导航信息。至少一个处理器可以被编程为从服务器接收自主车辆道路导航模型。自主车辆道路导航模型可以包括基于所发送的导航信息的至少一个更新。至少一个处理器可以被编程为基于自主车辆道路导航模型来引起由车辆进行的至少一个导航操纵。

导航系统的一些实施例中,导航信息可以包括来自多个车辆中的每一个车辆的、当每个车辆在公共路段上行驶时的轨迹。

在一些实施例中,用于处理车辆导航信息以便在自主车辆导航中使用的服务器可以包括:通信单元,被配置为与多个车辆通信;以及至少一个处理器,被编程为经由通信单元接收来自车辆的导航信息。至少一个处理器可以被编程为:基于导航信息生成自主车辆道路导航模型的至少一部分;以及向车辆中的至少一个发送自主车辆道路导航模型的至少一部分,以引起至少一个车辆的、基于自主车辆道路导航模型的部分的导航操纵。

服务器的一些实施例中,导航信息可以包括来自多个车辆中的每一个车辆的、当每个车辆在公共路段上行驶时的轨迹。自主车辆道路导航模型的部分可以包括对自主车辆道路导航模型的更新。

在一些实施例中,用于车辆的导航系统可以包括:至少一个处理器,被编程为从一个或多个传感器接收指示车辆的运动的输出;基于来自一个或多个传感器的输出来确定车辆的实际轨迹;从相机接收与车辆相关联的至少一个环境图像;分析至少一个环境图像以确定与至少一个导航约束相关联的信息;确定目标轨迹,所述目标轨迹包括车辆的实际轨迹和基于所确定的与至少一个导航约束相关联的信息对实际轨迹的一个或多个修改;以及从车辆向服务器发送目标轨迹。

在该系统的一些实施例中,一个或多个传感器可以包括速率传感器。一个或多个传感器可以包括加速器。一个或多个传感器可以包括相机。至少一个导航约束可以包括以下各项中的至少一个:障碍、对象、车道标记、标志、或另一车辆。相机可以被包括在车辆中。

在一些实施例中,将目标轨迹上传到服务器的方法可以包括:从一个或多个传感器接收指示车辆的运动的输出;基于来自一个或多个传感器的输出来确定车辆的实际轨迹;从相机接收与车辆相关联的至少一个环境图像;分析至少一个环境图像以确定与至少一个导航约束相关联的信息;确定目标轨迹,所述目标轨迹包括车辆的实际轨迹和基于所确定的与至少一个导航约束相关联的信息对实际轨迹的一个或多个修改;以及从车辆向服务器发送目标轨迹。

在方法的一些实施例中,一个或多个传感器可以包括速率传感器。一个或多个传感器可以包括加速器。一个或多个传感器可以包括相机。至少一个导航约束可以包括以下各项中的至少一个:障碍、对象、车道标记、标志、或另一车辆。相机可以被包括在车辆中。

在一些实施例中,用于标识地标以用于自主车辆导航的系统可以包括至少一个处理器,被编程为:接收与地标相关联的至少一个标识符;将地标与相应的路段相关联;更新相对于相应的路段而言的自主车辆道路导航模型,以包括与地标相关联的至少一个标识符;以及将更新后的自主车辆道路导航模型分发给多个自主车辆。可以基于以下各项来确定标识符:从与主车辆相关联的相机的表示主车辆的环境的至少一个图像的获取;为标识主车辆的环境中的地标的至少一个图像的分析;以及为确定与地标相关联的至少一个标识符的至少一个图像的分析。

在该系统的一些实施例中,至少一个标识符可以包括地标的位置。至少一个标识符可以包括地标的形状。至少一个标识符可以包括地标的尺寸。至少一个标识符可以包括地标相对于另一地标的距离。可以基于被标识为多个地标类型之一的地标来确定至少一个标识符。地标类型可以包括交通标志。地标类型可以包括标杆。地标类型可以包括方向指示符。地标类型可以包括矩形标志。至少一个标识符还可以包括浓缩的签名表示。可以基于将地标的图像映射成预定数据尺寸的数字的序列来确定地标的浓缩的签名表示。浓缩的签名表示可以指示地标的出现。浓缩的签名表示可以指示地标的图像的色彩模式、或图像的亮度模式中的至少一个。地标可以包括以下各项中的至少一个:方向标志、交通标志、灯柱、道路标记、和商业标志。

在一些实施例中,标识地标以用于自主车辆导航的方法可以包括:接收与地标相关联的至少一个标识符;将地标与相应的路段相关联;更新相对于相应的路段而言的自主车辆道路导航模型,以包括与地标相关联的至少一个标识符;以及将更新后的自主车辆道路导航模型分发给多个自主车辆。

在一些实施例中,该方法可以包括确定至少一个标识符。确定至少一个标识符可以包括:从与主车辆相关联的相机获取表示主车辆的环境的至少一个图像;分析至少一个图像以标识在主车辆的环境中的地标;以及分析至少一个图像以确定与地标相关联的至少一个标识符。至少一个标识符可以包括地标相对于另一地标的距离,并且其中确定至少一个标识符包括确定地标相对于另一地标的距离。至少一个标识符还可以包括浓缩的签名表示,并且其中确定至少一个标识符包括从至少一个图像确定浓缩的签名表示。

在一些实施例中,用于确定地标的位置以用于自主车辆的导航的系统可以包括至少一个处理器,被编程为:接收地标的测量的位置;并且基于地标的测量的位置和至少一个针对地标先前获取的位置来确定地标的完善位置。测量的位置和至少一个先前获取的位置可以基于以下各项来确定:从与主车辆相关联的相机的与主车辆相关联的至少一个环境图像的获取、为标识主车辆的环境中的地标的至少一个环境图像的分析、表示主车辆的位置的全球定位系统(gps)数据的接收、为确定所标识的地标相对于主车辆的相对位置而至少一个环境图像的分析、以及至少基于gps数据和所确定的相对位置的地标的全球本地化位置的确定。

在系统的一些实施例中,地标可以包括以下各项中的至少一个:交通标志、箭头、车道标记、虚线车道标记、交通灯、停止线、方向标志、地标信标、或灯柱。为确定所标识的地标相对于车辆的相对位置的至少一个图像的分析可以包括基于与至少一个图像相关联的尺度来计算距离。分析至少一个图像以确定所标识地标相对于车辆的相对位置,可以包括基于与至少一个图像相关联的光流来计算距离。可以从被包括在主车辆中的gps设备接收gps数据。相机可以被包括在主车辆中。确定地标的完善位置,可以包括将地标的测量的位置与至少一个先前获取的位置取平均。

在一些实施例中,用于确定地标的位置以在自主车辆的导航中使用的方法可以包括:接收地标的测量的位置;并且基于地标的测量的位置和针对地标的至少一个先前获取的位置来确定地标的完善位置。测量的位置和至少一个先前获取的位置可以基于以下各项来确定:从与主车辆相关联的相机的与主车辆相关联的至少一个环境图像的获取、为标识主车辆的环境中的地标的至少一个环境图像的分析、表示主车辆的位置的全球定位系统(gps)数据的接收、为确定所标识的地标相对于主车辆的相对位置的至少一个环境图像的分析、以及基于至少gps数据和所确定的相对位置的地标的全球本地化位置的确定。

在该方法的一些实施例中,地标可以包括以下各项中的至少一个:交通标志、箭头、车道标记、虚线车道标记、交通灯、停止线、方向标志、地标信标、或灯柱。为确定所标识地标相对于车辆的相对位置的至少一个图像的分析,可以包括基于与至少一个图像相关联的尺度来计算距离。为确定所标识地标相对于车辆的相对位置的至少一个图像的分析,可以包括基于与至少一个图像相关联的光流来计算距离。可以从被包括在主车辆中的gps设备接收gps数据。相机可以被包括在主车辆中。确定地标的完善位置,可以包括将地标的测量的位置与至少一个先前获取的位置取平均。

在一些实施例中,自主车辆可以包括本体和至少一个处理器,所述处理器被编程为:接收地标的测量的位置;以及基于地标的测量的位置和至少一个针对地标先前获取的位置来确定地标的完善位置。至少一个处理器还可以被编程为基于以下各项来确定测量的位置和至少一个先前获取的位置:从与车辆相关联的相机对与车辆相关联的至少一个环境图像的获取、为标识车辆的环境中的地标而对至少一个环境图像的分析、对表示车辆的位置的全球定位系统(gps)数据的接收、为确定所标识的地标相对于车辆的相对位置而对至少一个环境图像的分析、以及基于至少gps数据和所确定的相对位置对地标的全球本地化位置的确定。

在车辆的一些实施例中,地标可以包括以下各项中的至少一个:交通标志、箭头、车道标记、虚线车道标记、交通灯、停止线、方向标志、地标信标、或灯柱。为确定所标识地标相对于车辆的相对位置的至少一个图像的分析,可以包括基于与至少一个图像相关联的尺度来计算距离。分析至少一个图像以确定所标识的地标相对于车辆的相对位置,可以包括基于与至少一个图像相关联的光流来计算距离。可以从被包括在主车辆中的gps设备接收gps数据。确定地标的完善位置,可以包括将地标的测量的位置与至少一个先前获取的位置取平均。

在一些实施例中,用于沿着路段自主地导航车辆的系统可以包括至少一个处理器,其被编程为:从图像捕获设备接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标;至少部分地基于所识别地标的预定位置,来确定车辆相对于与路段相关联的预定道路模型轨迹的当前位置;并且基于预定道路模型轨迹在车辆相对于预定道路模型轨迹的所确定的当前位置处的方向,来确定车辆的自主转向动作。

在系统的一些实施例中,已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。所识别的地标可以包括在路段上的线的间隔的改变。所识别的地标可以包括商业标志。预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。在已识别地标之间的导航可以包括车辆速度的整合,以确定沿着预定道路模型轨迹的车辆的位置。处理器还可以被编程为基于自主转向动作调整车辆的转向系统,以导航车辆。处理器还可以被编程为:确定车辆距至少一个已识别地标的距离;并且基于该距离确定车辆是否位于与路段相关联的预定道路模型轨迹上。处理器还可以被编程为:当车辆不位于预定道路模型轨迹上时,调整车辆的转向系统,以将车辆从车辆的当前定位移动到在预定道路模型轨迹上的位置。

在一些实施例中,车辆可以包括:本体;至少一个图像捕获设备,被配置为获取表示车辆的环境的至少一个图像;以及至少一个处理器,被编程为:从至少一个图像捕获设备接收至少一个图像,分析至少一个图像以标识至少一个已识别地标,至少部分地基于所识别地标的预定位置来确定相对于与路段相关联的预定道路模型轨迹的车辆的当前位置,基于在相对于预定道路模型轨迹的车辆的所确定的当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在车辆的一些实施例中,所识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、灯柱、道路上的线的间隔的改变、或商业标志。预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。在已识别地标之间的导航可以包括车辆速度的整合,以确定沿着预定道路模型轨迹的车辆的位置。处理器还可以被编程为基于自主转向动作调整车辆的转向系统,以导航车辆。处理器还可以被编程为:确定车辆距至少一个已识别地标的距离;并且基于该距离确定车辆是否位于与路段相关联的预定道路模型轨迹上。处理器还可以被编程为:当车辆没有位于预定道路模型轨迹上时,调整车辆的转向系统,以将车辆从车辆的当前位置移动到在预定道路模型轨迹上的位置。

在一些实施例中,导航车辆的方法可以包括:从与车辆相关联的图像捕获设备接收表示车辆的环境的至少一个图像;使用于与车辆相关联的处理器分析至少一个图像,以标识至少一个已识别地标;至少部分地基于所识别地标的预定位置来确定相对于与路段相关联的预定道路模型轨迹的车辆的当前位置;基于在相对于预定道路模型轨迹的车辆的所确定的当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作;并且基于自主转向动作调整车辆的转向系统以导航车辆。

在一些实施例中,方法可以包括通过整合车辆速度确定沿着预定道路模型轨迹的车辆的位置。方法可以包括:使用处理器确定车辆与至少一个已识别地标的距离;以及基于该距离确定车辆是否位于与路段相关联的预定道路模型轨迹上。方法可以包括:确定将车辆从车辆的当前位置移动到在预定道路模型轨迹上的位置所要求的变换;以及基于该变换调整车辆的转向系统。

在一些实施例中,用于沿着路段自主地导航自主车辆的系统可以包括至少一个处理器,其被编程为:从图像捕获设备接收表示自主车辆的环境的多个图像;至少部分地基于对多个图像中的一个或多个的分析来确定沿着路段的自主车辆的行驶过的轨迹;基于对多个图像中的一个或多个的分析来确定沿着预定道路模型轨迹的自主车辆的当前位置;基于所确定的行驶过的轨迹为自主车辆确定航向方向;并且通过在自主车辆的当前位置处将行驶过的轨迹和预定道路模型轨迹进行比较,来相对于航向方向为自主车辆确定转向方向。

在系统的一些实施例中,行驶过的轨迹和预定道路模型轨迹之间的比较可以包括对减小行驶过的轨迹和预定道路模型轨迹之间的误差的变换的确定。处理器还可以被编程为基于该变换调整自主车辆的转向系统。预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。可以从被存储在被包括在自主车辆中的存储器中的数据库检索预定道路模型轨迹。可以从自主车辆通过无线通信接口可访问的数据库检索预定道路模型轨迹。图像捕获设备可以被包括在自主车辆中。转向方向的确定还可以基于一个或多个额外线索,所述额外线索包括以下各项中的一个或多个:左车道标记多项式模型、右车道标记多项式模型、整体路径预测、前方车辆的运动、在自主车辆之前的确定的自由空间、以及基于自主车辆前方的车辆的位置所确定的虚拟车道或虚拟车道约束。转向方向的确定可以基于应用到一个或多个额外线索的权重。

在一些实施例中,自主车辆可以包括本体;至少一个图像捕获设备,被配置为获取表示自主车辆的环境的至少一个图像;以及至少一个处理器,被配置为:从图像捕获设备接收表示自主车辆的环境的多个图像;至少部分地基于对多个图像中的一个或多个的分析来确定沿着路段的自主车辆的行驶轨迹;基于对多个图像中的一个或多个的分析来确定沿着预定道路模型轨迹的自主车辆的当前位置;基于所确定的行驶轨迹为自主车辆确定航向方向;并且通过在自主车辆的当前位置处对行驶轨迹和预定道路模型轨迹进行比较,来相对于航向方向,为自主车辆确定转向方向。

在自主车辆的一些实施例中,行驶轨迹和预定道路模型轨迹之间的比较可以包括对减小行驶轨迹和预定道路模型轨迹之间的误差的变换的确定。预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。可以从被存储在被包括在自主车辆中的存储器中的数据库和自主车辆通过无线通信接口可访问的数据库中的一个来检索预定道路模型轨迹。转向方向的确定还可以基于一个或多个额外线索,所述额外线索包括以下各项中的一个或多个:左车道标记多项式模型、右车道标记多项式模型、整体路径预测、前方车辆的运动、在自主车辆之前的确定的自由空间、以及基于自主车辆前方的车辆的位置所确定的虚拟车道或虚拟车道约束。转向方向的确定可以基于应用到一个或多个额外线索的权重。

在一些实施例中,导航自主车辆的方法可以包括:从图像捕获设备接收表示自主车辆的环境的多个图像;至少部分地基于对多个图像中的一个或多个的分析来确定沿着路段的自主车辆的行驶轨迹;基于对多个图像中的一个或多个的分析来确定沿着预定道路模型轨迹的自主车辆的当前位置;基于所确定的行驶轨迹为自主车辆确定航向方向;并且通过在自主车辆的当前位置处将行驶轨迹和预定道路模型轨迹进行比较,来相对于航向方向,为自主车辆确定转向方向。

在方法的一些实施例中,将行驶轨迹和预定道路模型轨迹进行比较可以包括确定减小行驶轨迹和预定道路模型轨迹之间的误差的变换。确定转向方向可以基于一个或多个额外线索,所述额外线索包括以下各项中的一个或多个:左车道标记多项式模型、右车道标记多项式模型、整体路径预测、前方车辆的运动、在自主车辆之前的确定的自由空间、以及基于自主车辆前方的车辆的位置所确定的虚拟车道或虚拟车道约束。确定转向方向可以包括将权重应用到一个或多个额外线索。

在一些实施例中,用于自主地导航车辆通过道路枢纽的系统可以包括至少一个处理器,被编程为:从图像捕获设备接收表示车辆的环境的至少一个图像;分析至少一图像以标识位于车辆的环境中的两个或更多个地标;为两个或更多个地标中的每一个,确定相对于车辆的方向指示符;基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的当前位置;基于针对两个或更多个地标的方向指示符来为车辆确定航向;并且通过在车辆的当前位置处将车辆航向与预定道路模型轨迹进行比较来为车辆确定转向角度。

在系统的一些实施例中,预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。两个或更多个地标可以包括三个或更多个地标。至少一个处理器还可以被编程为向车辆的转向系统发送指定转向角度的控制信号。处理器可以被配置为从被存储在被包括在车辆中的存储器中的数据库检索预定道路模型轨迹。处理器可以被配置为从车辆通过无线通信接口可访问的数据库检索预定道路模型轨迹。相机可以被包括在车辆中。处理器还可以被编程为通过以下各项为车辆确定航向:基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的先前位置;以及基于先前位置和当前位置确定航向。

在一些实施例中,自主车辆可以包括本体;至少一个图像捕获设备,被配置为获取表示车辆的环境的至少一个图像;以及至少一个处理器,被编程为:从相机接收表示车辆的环境的至少一个图像;分析至少一图像以标识位于车辆的环境中的两个或更多个地标;为两个或更多个地标中的每一个,确定相对于车辆的方向指示符;基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的当前位置;基于针对两个或更多个地标的方向指示符来为车辆确定航向;并且通过在车辆的当前位置处将车辆航向与预定道路模型轨迹进行比较来为车辆确定转向角度。

在车辆的一些实施例中,预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。两个或更多个地标可以包括三个或更多个地标。至少一个处理器还可以被编程为向车辆的转向系统发送指定转向角度的控制信号。可以从被存储在被包括在车辆中的存储器中的数据库和车辆通过无线通信接口可访问的数据库中的一个来检索预定道路模型轨迹。处理器还可以被编程为通过以下各项为车辆确定航向:基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的先前位置;以及基于先前位置和当前位置确定航向。

在一些实施例中,导航自主车辆的方法可以包括:从图像捕获设备接收表示车辆的环境的至少一个图像;使用至少一个处理器分析至少一图像以标识位于车辆的环境中的两个或更多个地标;为两个或更多个地标中的每一个,确定相对于车辆的方向指示符;基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的当前位置;基于针对两个或更多个地标的方向指示符来为车辆确定航向;以及通过在车辆的当前位置处将车辆航向与预定道路模型轨迹进行比较来为车辆确定转向角度。

在方法的一些实施例中,预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。方法可以包括从被存储在被包括在车辆中的存储器中的数据库和车辆通过无线通信接口可访问的数据库中的一个来检索预定道路模型轨迹。方法可以包括向车辆的转向系统发送指定转向角度的控制信号。为车辆确定航向可以包括:基于针对两个或更多个地标的方向指示符的交叉来确定相对于道路枢纽的车辆的先前位置;以及基于先前位置和当前位置确定航向。

在一些实施例中,用于基于多个重叠的导航地图来自主地导航车辆的系统可以包括至少一个处理器,被编程为:接收第一导航地图以在自主地控制车辆中使用,其中第一导航地图与第一路段相关联;基于对第一导航地图的分析为沿着第一路段的车辆确定至少第一自主导航响应;接收第二导航地图以在自主地控制车辆中使用,其中,第二导航地图与第二路段相关联,其中,第一路段不同于第二路段,并且其中第一路段和第二路段在重叠段处相互重叠;基于对第二导航地图的分析为沿着第二路段的车辆确定至少第二自主导航响应;并且基于第一导航地图和第二导航地图中的至少一个来为在重叠段中的车辆确定至少第三自主导航响应。

在系统的一些实施例中,多个重叠的导航地图中的每一个可以具有它自己的坐标系。多个重叠的导航地图中的每一个可以包括沿着路段的目标轨迹的多项式表示。重叠的导航地图中的每一个可以是具有每千米不超过10千字节的数据密度的稀疏地图。重叠段可以具有至少50米的长度。重叠段可以具有至少100米的长度。至少一个处理器可以被编程为基于第一导航地图和第二导航地图两者来确定第三自主导航响应。第三自主导航响应可以是第一自主导航响应和第二自主导航响应的组合。第三自主导航响应可以是第一自主导航响应和第二自主导航响应的平均。处理器还可以被编程为:确定第一自主导航响应和第二自主导航响应之间的误差;并且当误差小于阈值误差时,基于第二自主导航响应来确定第三自主导航响应。

在一些实施例中,自主车辆可以包括本体;至少一个图像捕获设备,被配置为获取表示车辆的环境的至少一个图像;至少一个处理器,被编程为:基于至少一个图像确定车辆的当前位置;接收与第一路段相关联的第一导航地图;当车辆的当前位置位于第一导航地图上时,基于对第一导航地图的分析来为车辆确定至少第一自主导航响应;接收与不同于第一路段的第二路段相关联的第二导航地图,第一路段和第二路段在重叠段处相互重叠;当车辆的当前位置位于第二导航地图上时,基于对第二导航地图的分析来为车辆确定至少第二自主导航响应;并且当车辆的当前位置位于重叠段中时,基于第一导航地图和第二导航地图中的至少一个来为车辆确定至少第三自主导航响应。

在自主车辆的一些实施例中,第一导航地图和第二导航地图中的每一个可以具有它自己的坐标系。第一导航地图和第二导航地图中的每一个可以包括沿着路段的目标轨迹的多项式表示。至少一个处理器可以被编程为基于第一导航地图和第二导航地图两者来确定第三自主导航响应。第三自主导航响应可以是第一自主导航响应和第二自主导航响应的组合。处理器还可以被编程为:确定第一自主导航响应和第二自主导航响应之间的误差;并且当误差小于阈值误差时,基于第二自主导航响应来确定第三自主导航响应。

在一些实施例中,导航自主车辆的方法可以包括:从图像捕获设备接收表示车辆的环境的至少一个图像;使用与车辆相关联的处理器,基于至少一个图像来确定车辆的当前位置;接收与第一路段相关联的第一导航地图;当车辆的当前位置位于第一导航地图上时,基于对第一导航地图的分析来为车辆确定至少第一自主导航响应;接收与不同于第一路段的第二路段相关联的第二导航地图,第一路段和第二路段在重叠段处相互重叠;当车辆的当前位置位于第二导航地图上时,基于对第二导航地图的分析来为车辆确定至少第二自主导航响应;以及当车辆的当前位置位于重叠段中时,基于第一导航地图和第二导航地图中的至少一个来为车辆确定至少第三自主导航响应。

在方法的一些实施例中,多个重叠的导航地图中的每一个可以具有它自己的坐标系,并且多个重叠的导航地图中的每一个可以包括沿着路段的目标轨迹的多项式表示。确定第三自主导航响应可以包括确定第一自主导航响应和第二自主导航响应的组合。方法可以包括确定第一自主导航响应和第二自主导航响应之间的误差;以及当误差小于阈值误差时,基于第二自主导航响应确定第三自主导航响应。

在一些实施例中,用于沿着路段的车辆的稀疏地图自主导航的系统可以包括至少一个处理器,被编程为:接收路段的稀疏地图,其中,稀疏地图具有每千米不超过1兆字节的数据密度;从相机接收表示车辆的环境的至少一个图像;分析稀疏地图和从相机接收的至少一个图像;以及仅基于对稀疏地图和从相机接收的至少一个图像的分析来为车辆确定自主导航响应。

在系统的一些实施例中,稀疏地图可以包括沿着路段的目标轨迹的多项式表示。稀疏地图可以包括一个或多个已识别地标。已识别地标可以以每千米不超过0.5个的频率在稀疏地图中隔开。已识别地标可以以每千米不超过1个的频率在稀疏地图中隔开。已识别地标可以以每100米不超过1个的频率在稀疏地图中隔开。稀疏地图可以具有每千米不超过100千字节的数据密度。稀疏地图可以具有每千米不超过10千字节的数据密度。

在一些实施例中,用于沿着路段的车辆的稀疏地图自主导航的方法可以包括:接收路段的稀疏地图,其中,稀疏地图具有每千米不超过1兆字节的数据密度;从相机接收表示车辆的环境的至少一个图像;分析稀疏地图和从相机接收的至少一个图像;以及仅基于对稀疏地图和从相机接收的至少一个图像的分析来为车辆确定自主导航响应。

在方法的一些实施例中,稀疏地图可以包括沿着路段的目标轨迹的多项式表示。稀疏地图可以包括一个或多个已识别地标。已识别地标可以以每千米不超过0.5个的频率在稀疏地图中隔开。已识别地标可以以每千米不超过1个的频率在稀疏地图中隔开。已识别地标可以以每100米不超过1个的频率在稀疏地图中隔开。稀疏地图可以具有每千米不超过100千字节的数据密度。稀疏地图可以具有每千米不超过10千字节的数据密度。

在一些实施例中,非瞬时性计算机可读介质可以存储引起至少一个处理器执行沿着路段的车辆的稀疏地图自主导航的指令,其可以包括接收路段的稀疏地图。指令可以引起处理器执行以下各项步骤:接收路段的稀疏地图,其中,稀疏地图具有每千米不超过1兆字节的数据密度;从相机接收表示车辆的环境的至少一个图像;分析稀疏地图和从相机接收的至少一个图像;以及仅基于对稀疏地图和从相机接收的至少一个图像的分析来为车辆确定自主导航响应。

在非瞬时性计算机可读介质的一些实施例中,稀疏地图可以包括沿着路段的目标轨迹的多项式表示。稀疏地图可以包括一个或多个已识别地标。已识别地标可以以每千米不超过0.5个的频率在稀疏地图中隔开。

在一些实施例中,用于基于预定地标位置沿着路段自主地导航车辆的系统可以包括至少一个处理器,其被编程为:从相机接收表示车辆的环境的至少一个图像;至少部分地基于与至少一个图像相关联的信息确定沿着与路段相关联的预定道路模型轨迹的车辆的位置;基于所确定的位置标识车辆前方的已识别地标,其中,所识别的地标超出相机的视野范围;通过将车辆的所确定的位置和所识别地标的预定位置进行比较来确定车辆和所识别地标之间的当前距离;并且基于所确定的当前距离为车辆确定自主导航响应。

在系统的一些实施例中,所识别地标的预定位置可以被确定为与所识别地标相关联的多个获取的位置测量的平均,其中,多个获取的位置测量基于以下各项来确定:至少一个环境图像的获取、为标识在环境中的已识别地标的对至少一个环境图像的分析、全球定位系统(gps)数据的接收、为确定相对于车辆的已识别地标的相对位置的对至少一个环境图像的分析、以及基于至少gps数据和所确定的相对位置的已识别地标的全球本地化位置的确定。自主导航响应可以包括与车辆相关联的制动器的应用。自主导航响应可以包括修改车辆的转向角度。所识别地标可以包括停止线、交通灯、停车标志、或沿着路段的弯道。相机可以被包括在车辆中。

在一些实施例中,用于基于预定地标位置沿着路段自主地导航车辆的方法可以包括从相机接收表示车辆的环境的至少一个图像;至少部分地基于与至少一个图像相关联的信息来确定沿着与路段相关联的预定道路模型轨迹的车辆的位置;基于所确定的位置来标识车辆前方的已识别地标,其中,已识别地标超出相机的视野范围;通过将车辆的所确定的位置和已识别地标的预定位置进行比较来确定车辆和已识别地标之间的当前距离;以及基于所确定的当前距离为车辆确定自主导航响应。

在方法的一些实施例中,已识别地标的预定位置可以被确定为与已识别地标相关联的多个获取的位置测量的平均,其中,多个获取的位置测量可以基于以下各项来确定:至少一个环境图像的获取、为标识在环境中的已识别地标的对至少一个环境图像的分析、全球定位系统(gps)数据的接收、为确定相对于车辆的已识别地标的相对位置的对至少一个环境图像的分析、以及基于至少gps数据和所确定的相对位置的对已识别地标的全球本地化位置的确定。自主导航响应可以包括与车辆相关联的制动器的应用。自主导航响应可以包括修改车辆的转向角度。已识别地标可以包括停止线、交通灯、停车标志、或沿着路段的弯道。相机可以被包括在车辆中。

在一些实施例中,非瞬时性计算机可读介质可以存储引起至少一个处理器执行沿着路段的车辆的自主导航的指令。指令可以引起处理器执行以下各项步骤:从相机接收表示车辆的环境的至少一个图像;至少部分地基于与至少一个图像相关联的信息来确定沿着与路段相关联的预定道路模型轨迹的车辆的位置;基于所确定的位置来标识车辆前方的已识别地标,其中,已识别地标超出相机的视野范围;通过将车辆的所确定的位置和已识别地标的预定位置进行比较来确定车辆和已识别地标之间的当前距离;以及基于所确定的当前距离为车辆确定自主导航响应。

在非瞬时性计算机可读介质的一些实施例中,自主导航响应可以包括与车辆相关联的制动器的应用。自主导航响应可以包括修改车辆的转向角度。已识别地标可以包括停止线、交通灯、停车标志、或沿着路段的弯道。

在一些实施例中,用于沿着路段自主地导航车辆的系统可以包括至少一个处理器,其被编程为:从至少一个传感器接收与路段的一个或多个方面有关的信息;基于接收到的信息确定路段的局部特征;将局部特征与用于路段的预定签名特征进行比较;基于局部特征和预定签名特征的比较来确定沿着与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在所确定的位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在系统的一些实施例中,至少一个处理器还可以被编程为:确定在当前位置处车辆的航向方向,并且通过将预定道路模型轨迹的方向与航向方向进行比较来确定自主转向动作。可以基于车辆的行驶轨迹确定航向方向。至少一个传感器可以包括图像捕获设备,被配置为获取表示车辆的环境的至少一个图像。签名特征可以包括在路段的至少一部分上的道路宽度轮廓。签名特征可以包括在路段的至少一部分上的车道宽度轮廓。签名特征可以包括在路段的至少一部分上的虚线间隔轮廓。签名特征可以包括沿着路段的至少一部分的预定数量的道路标记。签名特征可以包括在路段的至少一部分上的道路表面轮廓。签名特征可以包括与路段相关联的预定曲率。确定车辆的当前位置可以包括比较指示预定道路模型轨迹的曲率的第一参数值和指示针对车辆的测量的轨迹的曲率的第二参数值。至少一个传感器可以包括悬架组件监视器。

在一些实施例中,车辆可以包括本体;至少一个传感器,被配置为获取与路段的一个或多个方面有关的信息;以及至少一个处理器,被编程为:基于从至少一个传感器接收的信息确定路段的局部特征;将局部特征与针对路段的预定签名特征进行比较;基于局部特征和预定签名特征的比较来确定沿着与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在车辆的一些实施例中,签名特征可以包括以下各项中的至少一个:在路段的至少一部分上的道路宽度轮廓、在路段的至少一部分上的车道宽度轮廓、在路段的至少一部分上的虚线间隔轮廓、沿着路段的至少一部分的预定数量的道路标记、在路段的至少一部分上的道路表面轮廓、以及与路段相关联的预定曲率。车辆可以包括悬架组件监视器,其中,处理器还被编程为基于来自悬架组件监视器的信号来确定局部特征。处理器还可以被编程为:确定车辆的航向方向;确定在当前位置处预定道路模型轨迹的方向;以及通过将该方向与航向方向进行比较来确定自主转向动作。

在一些实施例中,导航车辆的方法可以包括:从至少一个传感器接收与路段的一个或多个方面有关的信息;使用至少一个处理器,基于从至少一个传感器接收的信息来确定路段的局部特征;将接收到的信息和用于路段的预定签名特征进行比较;基于接收到的信息和预定签名特征的比较来确定沿着与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在一些实施例中,方法可以包括确定在当前位置处车辆的航向方向;确定在当前位置处预定道路模型轨迹的方向;以及通过将预定道路模型轨迹的方向与航向方向进行比较来确定自主转向动作。局部特征可以包括以下各项中的至少一个:在路段的至少一部分上的道路宽度轮廓、在路段的至少一部分上的车道宽度轮廓、在路段的至少一部分上的虚线间隔轮廓、沿着路段的至少一部分的预定数量的道路标记、在路段的至少一部分上的道路表面轮廓、以及与路段相关联的预定曲率。方法可以包括:使用悬架组件监视器确定道路表面轮廓;将道路表面轮廓与预定道路表面轮廓进行比较;以及基于道路表面轮廓与预定道路表面轮廓的比较来确定当前位置。

在一些实施例中,用于自主地导航车辆的系统可以包括至少一个处理器,被编程为:从后向相机接收表示在车辆后方的区域的至少一个图像;分析至少一个后向图像以在图像中定位至少一个地标的表示;确定相对于车辆的地标的位置的至少一个指示符;至少部分地基于相对于车辆的地标的位置的指示符来为车辆确定前进轨迹;以及引起车辆沿着所确定的前进轨迹导航。

在系统的一些实施例中,位置的指示符可以包括车辆和地标之间的距离。位置的指示符可以包括车辆和地标之间的相对角度。地标可以包括道路边缘、车道标记、反射镜、杆、道路上的线条图案的改变、或道路标志。地标可以包括道路标志的背面。至少一个处理器还可以被编程为基于地标的位置的指示符来确定在行驶的当前车道之内的车辆的车道偏移量,并且其中,前进轨迹的确定还基于所确定的车道偏移量。至少一个处理器还可以被编程为从另一相机接收表示车辆的另一区域的至少一个图像,并且其中,前进轨迹的确定还基于从另一相机接收的至少一个图像。

在一些实施例中,自主地导航车辆的方法可以包括从后向相机接收表示在车辆后方的区域的至少一个图像;分析至少一个后向图像以在图像中位置至少一个地标的表示;确定相对于车辆的地标的位置的至少一个指示符;至少部分地基于相对于车辆的地标的位置的指示符来为车辆确定前进轨迹;并且引起车辆沿着所确定的前进轨迹导航。

在方法的一些实施例中,位置的指示符可以包括车辆和地标之间的距离。位置的指示符可以包括车辆和地标之间的相对角度。地标可以包括道路边缘、车道标记、反射镜、杆、道路上的线条图案的改变、或道路标志。地标可以包括道路标志的背面。方法可以包括基于地标的位置的指示符来确定在行驶的当前车道之内的车辆的车道偏移量,并且其中,前进轨迹的确定可以基于所确定的车道偏移量。

在一些实施例中,车辆可以包括本体;后向相机;以及至少一个处理器,被编程为:经由连接后向相机的向后相机接口来接收表示在车辆后方的区域的至少一个图像;分析至少一个后向图像以在图像中定位至少一个地标的表示;确定相对于车辆的地标的位置的至少一个指示符;至少部分地基于相对于车辆的地标的位置的指示符来为车辆确定前进轨迹;并且引起车辆沿着所确定的前进轨迹导航。

在车辆的一些实施例中,后向相机可以安装在连接到车辆的对象上。对象可以是拖车、自行车架、滑雪板/滑雪板架、安装座、或行李架。向后相机接口可以包括可拆卸接口。向后相机接口可以包括无线接口。

在一些实施例中,用于通过确定车辆能够在其中行驶的自由空间区来导航车辆的系统可以包括至少一个处理器,被编程为:从图像捕获设备接收与车辆的环境相关联的多个图像;分析多个图像中的至少一个以标识在车辆的驾驶员侧上并且向车辆的前方延伸的第一自由空间边界、在车辆的乘客侧上并且向车辆的前方延伸的第二自由空间边界、以及在车辆前方并且在第一自由空间边界和第二自由空间边界之间延伸的前方自由空间边界;其中,第一自由空间边界、第二自由空间边界、和前方自由空间边界定义车辆前方的自由空间区;通过自由空间区为车辆确定导航路径;并且引起车辆在车辆前方的自由空间区之内的所确定的导航路径的至少一部分上行驶。

在系统的一些实施例中,第一自由空间边界可以对应于以下各项中的至少一个:道路边缘、路缘石、障碍、车道划分结构、停放的车辆,隧道壁、或桥梁结构。第二自由空间边界可以对应于以下各项中的至少一个:道路边缘、路缘石、障碍、车道划分结构、停放的车辆、隧道壁、或桥梁结构。前方自由空间可以对应于道路水平线。至少一个处理器还可以被编程为,基于对多个图像中的至少一个的分析来标识车辆前方的障碍物,并且将所标识的障碍物从车辆前方的自由空间区排除。障碍物可以包括行人。障碍物可以包括另一车辆。障碍物可以包括岩块。至少一个处理器还可以被编程为基于对多个图像中的至少一个的分析来标识车辆前方的障碍物,并且将围绕所标识障碍物的区从车辆前方的自由空间区排除。至少一个处理器还可以被编程为基于下面各项中的一个或多个来确定围绕所标识障碍物的区:车辆的速率、障碍物的类型、图像捕获设备的图像捕获速率、以及障碍物的移动速率。

在一些实施例中,车辆可以包括:本体,其包括驾驶员侧和乘客侧;图像捕获设备;和至少一个处理器,被编程为:从图像捕获设备接收与车辆的环境相关联的多个图像;分析多个图像中的至少一个以标识在本体的驾驶员侧上并向本体的前方延伸的第一自由空间边界、在本体的乘客侧上并向本体的前方延伸的第二自由空间边界、以及在本体前方并在第一自由空间边界和第二自由空间边界之间延伸的前方自由空间边界;其中,第一自由空间边界、第二自由空间边界、和前方自由空间边界定义本体前方的自由空间区;通过自由空间区为车辆确定导航路径;并且引起车辆在车辆前方的自由空间区之内的所确定的导航路径的至少一部分上行驶。

在一些实施例中,通过确定车辆能够在其中行驶的自由空间区来导航车辆的方法可以包括:从图像捕获设备接收与车辆的环境相关联的多个图像;分析多个图像中的至少一个以标识在车辆的驾驶员侧上并向车辆的前方延伸的第一自由空间边界、在车辆的乘客侧上并向车辆的前方延伸的第二自由空间边界、以及在车辆前方并在第一自由空间边界和第二自由空间边界之间延伸的前方自由空间边界;其中,第一自由空间边界、第二自由空间边界、和前方自由空间边界定义车辆前方的自由空间区;确定车辆通过自由空间区的导航路径;并且引起车辆在车辆前方的自由空间区之内的所确定的导航路径的至少一部分上行驶。

在方法的一些实施例中,第一自由空间边界可以对应于以下各项中的至少一个:道路边缘、路缘石、障碍、车道划分结构、停放的车辆、隧道壁、或桥梁结构。第二自由空间边界可以对应于以下各项中的至少一个:道路边缘、路缘石、障碍、车道划分结构、停放的车辆、隧道壁、或桥梁结构。前方自由空间可以对应于道路水平线。方法可以包括基于对多个图像中的至少一个的分析来标识车辆前方的障碍物,并且将所标识的障碍物从车辆前方的自由空间区排除。障碍物可以包括行人。障碍物可以包括另一车辆。障碍物可以包括岩块。方法可以包括基于对多个图像中的至少一个的分析来标识车辆前方的障碍物,并且将围绕所标识障碍物的区从车辆前方的自由空间区排除。方法可以包括基于下面各项中的一个或多个来确定围绕所标识障碍物的区:车辆的速率、障碍物的类型、图像捕获设备的图像捕获速率、以及障碍物的移动速率。

在一些实施例中,用于在雪覆盖至少一些车道标记和道路边缘的道路上导航车辆的系统可以包括至少一个处理器,被编程为:从图像捕获设备接收车辆前方的至少一个环境图像,包括其中雪覆盖至少一些车道标记和道路边缘的区域;基于对至少一个图像的分析来标识覆盖有雪的道路的至少一部分、和用于界定覆盖有雪的道路的至少一部分的道路边缘的可能位置;并且引起车辆导航包括道路的所标识的部分并且落入道路边缘的所确定的可能的位置之内的导航路径。

在系统的一些实施例中,对至少一个图像的分析可以包括标识在雪中的至少一个轮胎压痕。对至少一个图像的分析可以包括标识遍及雪的表面的光的改变。对至少一个图像的分析可以包括标识沿着道路的边缘的多个树。对至少一个图像的分析可以包括识别雪的表面的曲率的改变。曲率的所识别的改变可以被确定为对应于道路边缘的可能的位置。对至少一个图像的分析可以包括对至少一个图像的像素分析,在所述像素分析中,比较至少第一像素和至少第二像素,以便确定与覆盖至少一些车道标记和道路边缘的雪的表面相关联的特征。特征可以对应于轮胎压痕的边缘。特征可以对应于道路的边缘。至少一个处理器还可以被编程为引起车辆在道路的所确定的边缘之间导航。至少一个处理器还可以被编程为引起车辆通过至少部分的遵循雪中的轮胎压痕来导航。

在一些实施例中,在雪覆盖至少一些车道标记和道路边缘的道路上导航车辆的方法可以包括:从图像捕获设备接收车辆前方的至少一个环境图像,包括其中雪覆盖至少一些车道标记和道路边缘的区域;基于对至少一个图像的分析来标识覆盖有雪的道路的至少一部分、和用于界定覆盖有雪的道路的至少一部分的道路边缘的可能位置;并且引起车辆导航包括道路的所标识的部分并且落入道路边缘的所确定的可能的位置之内的导航路径。

在方法的一些实施例中,对至少一个图像的分析可以包括标识在雪中的至少一个轮胎压痕。对至少一个图像的分析可以包括标识遍及雪的表面的光的改变。对至少一个图像的分析可以包括标识沿着道路的边缘的多个树。对至少一个图像的分析可以包括识别雪的表面的曲率的改变。曲率的所识别的改变可以被确定为对应于道路边缘的可能的位置。对至少一个图像的分析可以包括对至少一个图像的像素分析,在所述像素分析中,比较至少第一像素和至少第二像素,以便确定与覆盖至少一些车道标记和道路边缘的雪的表面相关联的特征。特征可以对应于轮胎压痕的边缘。特征可以对应于道路的边缘。方法可以包括引起车辆在道路的所确定的边缘之间导航。方法可以包括引起车辆通过至少部分的遵循雪中的轮胎压痕来导航。

在一些实施例中,用于在至少部分地覆盖有雪的道路上导航车辆的系统可以包括至少一个处理器,被编程为:从图像捕获设备接收捕获车辆前方环境的多个图像,包括其中雪覆盖了车辆在其上行驶的道路的区域;分析多个图像中的至少一个以标识在车辆的驾驶员侧上并且向车辆的前方延伸的第一自由空间边界、在车辆的乘客侧上并且向车辆的前方延伸的第二自由空间边界、以及在车辆前方并且在第一自由空间边界和第二自由空间边界之间延伸的前方自由空间边界;其中,第一自由空间边界、第二自由空间边界、和前方自由空间边界定义车辆前方的自由空间区;通过自由空间区为车辆确定第一建议导航路径;向神经网络提供多个图像中的至少一个,并且基于神经网络对多个图像中的至少一个的分析,从神经网络接收对于车辆的第二建议导航路径;确定第一建议导航路径是否与第二建议导航路径一致;并且如果确定第一建议导航路径与第二建议导航路径一致,则引起车辆在第一建议导航路径的至少一部分上行驶。

在一些实施例中,用于校准自主车辆的速率的指示符的系统可以包括至少一个处理器,被编程为:从相机接收表示车辆的环境的多个图像;分析多个图像以标识至少两个已识别地标;基于两个已识别地标的已知位置确定指示至少两个已识别地标之间的距离的值;基于与自主车辆相关联的至少一个传感器的输出确定至少两个地标之间的测量的距离;并且基于对指示至少两个已识别地标之间的距离的值和至少两个地标之间的测量的距离的比较,来为至少一个传感器确定校正因子。

在系统的一些实施例中,可以确定校正因子,从而校正因子对所确定的沿着路段的距离的操作与经由无线收发器接收的距离值相匹配。两个已识别地标可以包括以下各项中的一个或多个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个传感器可以包括与车辆相关联的速率计。可以从相对于车辆远程定位的基于服务器的系统来接收两个已识别地标的已知位置。已知位置中的每一个可以构成基于多个基于gps的测量来确定的完善位置。

在一些实施例中,用于校准自主车辆的速率的指示符的系统可以包括至少一个处理器,被编程为:基于与自主车辆相关联的至少一个传感器的输出来确定沿着路段的距离;经由无线收发器接收与路段相关联的距离值;并且基于所确定的沿着路段的距离和经由无线收发器接收的距离值来确定用于至少一个传感器的校正因子。

在系统的一些实施例中,与路段相关联的、经由无线收发器接收的距离值,可以基于由多个测量车辆进行的在先测量来确定。多个测量车辆可以包括至少100个测量车辆。多个测量车辆可以包括至少1000个测量车辆。可以确定校正因子,从而校正因子对所确定的沿着路段的距离的操作与经由无线收发器接收的距离值相匹配。至少一个处理器可以被编程为基于多个确定的校正因子来确定复合校正因子。可以通过平均多个确定的校正因子来确定复合校正因子。可以通过寻找多个确定的校正因子的均值来确定复合校正因子。

在一些实施例中,车辆可以包括本体;相机;和至少一个处理器,被编程为:从相机接收表示车辆的环境的多个图像;分析多个图像以标识至少两个已识别地标;基于两个已识别地标的已知位置确定指示至少两个已识别地标之间的距离的值;基于与自主车辆相关联的至少一个传感器的输出确定至少两个地标之间的测量的距离;并且基于对指示至少两个已识别地标之间的距离的值和至少两个地标之间的测量的距离的比较,来为至少一个传感器确定校正因子。

在车辆的一些实施例中,至少一个传感器可以包括与车辆相关联的速率计。两个已识别地标可以包括以下各项中的一个或多个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。可以从相对于车辆远程定位的基于服务器的系统来接收两个已识别地标的已知位置。

在一些实施例中,用于为沿着路段的自主车辆确定车道分配的系统可以包括至少一个处理器,被编程为:从相机接收表示车辆的环境的至少一个图像;分析所述至少一个图像以标识至少一个已识别地标;确定车辆和至少一个已识别地标之间的横向偏移距离的指示符;并且基于车辆和至少一个已识别地标之间的横向偏移距离的指示符来确定沿着路段的车辆的车道分配。

在系统的一些实施例中,车辆的环境可以包括路段、车道的数量、以及至少一个已识别地标。至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。车辆和至少一个已识别地标之间的横向偏移距离可以是车辆和路段的第一侧之间的第一距离、以及道路的第一侧和至少一个已识别地标之间的第二距离的总和。车辆和至少一个已识别地标之间的横向偏移距离的指示符的确定可以基于至少一个已识别地标的预定定位。车辆和至少一个已识别地标之间的横向偏移距离的指示符的确定可以基于与至少一个图像相关联的尺度。车道分配的确定还可以基于以下各项中的至少一个:路段的宽度、路段的车道的数量、以及车道宽度。车道分配的确定还可以基于与路段相关联的预定道路模型轨迹。至少一个已识别地标可以包括在车辆的第一侧的第一已识别地标和在车辆的第二侧的第二已识别地标,并且,其中沿着路段的车辆的车道分配的确定是基于车辆和第一已识别地标之间的横向偏移距离的第一指示符、以及车辆和第二已识别地标之间的横向偏移距离的第二指示符。

在一些实施例中,用于为沿着路段的自主车辆确定车道分配的计算机实施的方法可以包括由一个或多个处理器执行的下面的操作:从相机接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标;确定车辆和至少一个已识别地标之间的横向偏移距离的指示符;并且基于车辆和至少一个已识别地标之间的横向偏移距离的指示符来确定沿着路段的车辆的车道分配。

在方法的一些实施例中,至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。车道分配的确定还可以基于与路段相关联的预定道路模型轨迹。至少一个已识别地标可以包括在车辆的第一侧的第一已识别地标和在车辆的第二侧的第二已识别地标,并且,其中沿着路段的车辆的车道分配的确定是基于车辆和第一已识别地标之间的横向偏移距离的第一指示符、以及车辆和第二已识别地标之间的横向偏移距离的第二指示符。

在一些实施例中,计算机可读存储介质可以包括可由至少一个处理器执行以引起至少一个处理器执行用于为沿着路段的自主车辆确定车道分配的方法的指令的集合。方法可以包括从相机接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标;确定车辆和至少一个已识别地标之间的横向偏移距离的指示符;并且基于车辆和至少一个已识别地标之间的横向偏移距离的指示符来确定沿着路段的车辆的车道分配。

在计算机可读存储介质的一些实施例中,至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。车道分配的确定还可以基于与路段相关联的预定道路模型轨迹。至少一个已识别地标可以包括在车辆的第一侧的第一已识别地标和在车辆的第二侧的第二已识别地标,并且,其中沿着路段的车辆的车道分配的确定是基于车辆和第一已识别地标之间的横向偏移距离的第一指示符、以及车辆和第二已识别地标之间的横向偏移距离的第二指示符。

在一些实施例中,用于沿着路段自主地导航车辆的系统可以包括至少一个处理器,其被编程为:从相机接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标,其中至少一个已识别地标是已识别地标的组的部分,并且至少一个已识别地标的标识是至少部分地基于与已识别地标的组相关联的一个或多个地标组特性;至少部分地基于已识别地标的预定位置来确定相对于与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在相对于预定道路模型轨迹的车辆的所确定的当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在系统的一些实施例中,至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。至少一个处理器还可以被编程为基于车辆速度确定沿着预定道路模型轨迹的车辆的当前位置。一个或多个地标组特性可以包括已识别地标的组的成员之间的相对距离。一个或多个地标组特性可以包括已识别地标的组的成员的排序序列。一个或多个地标组特性可以包括被包括在已识别地标的组中的地标的数量。至少一个已识别地标的标识可以至少部分地基于与已识别地标的组相关联的超级地标签名。至少一个处理器可以被编程为通过将车辆的航向方向和在车辆的所确定的当前位置处的预定道路模型轨迹进行比较来为车辆确定自主转向动作。

在一些实施例中,用于沿着路段自主地导航车辆的计算机实施的方法可以包括由一个或多个处理器执行的下面的各项操作:从相机接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标,其中,至少一个已识别地标是已识别地标的组的部分,并且至少一个已识别地标的标识是至少部分地基于与已识别地标的组相关联的一个或多个地标组特性;相对于车辆,至少部分地基于已识别地标的预定位置来确定相对于与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在相对于预定道路模型轨迹的车辆的所确定的当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在方法的一些实施例中,至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。一个或多个地标组特性可以包括已识别地标的组的成员之间的相对距离。一个或多个地标组特性可以包括已识别地标的组的成员的排序序列。

在一些实施例中,计算机可读存储介质可以包括可由至少一个处理器执行以引起至少一个处理器执行用于沿着路段自主地导航车辆的方法的指令的集合。方法可以包括从相机接收表示车辆的环境的至少一个图像;分析至少一个图像以标识至少一个已识别地标,其中,至少一个已识别地标是已识别地标的组的部分,并且至少一个已识别地标的标识是至少部分地基于与已识别地标的组相关联的一个或多个地标组特性;相对于车辆,至少部分地基于已识别地标的预定位置来确定相对于与路段相关联的预定道路模型轨迹的车辆的当前位置;并且基于在相对于预定道路模型轨迹的车辆的所确定的当前位置处的预定道路模型轨迹的方向来为车辆确定自主转向动作。

在计算机可读存储介质的一些实施例中,至少一个已识别地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。至少一个已识别地标可以包括商业标志。一个或多个地标组特性可以包括已识别地标的组的成员之间的相对距离。一个或多个地标组特性可以包括已识别地标的组的成员的排序序列。

在一些实施例中,用于车辆的导航系统可以包括至少一个处理器,被编程为:从相机接收与车辆相关联的至少一个环境图像;基于对至少一个环境图像的分析确定对于车辆的导航操纵;引起车辆发起导航操纵;接收与不同于所发起的导航操纵的用户的导航响应相关联的用户输入;基于接收到的用户输入确定与车辆有关的导航情形信息;并且联合与用户输入有关的信息来存储导航情形信息。

在系统的一些实施例中,导航操纵可以基于在至少一个环境图像中所标识的已识别地标。与用户输入有关的信息可以包括指定车辆的转弯的程度、车辆的加速度的量、以及车辆的制动的量中的至少一个的信息。控制系统可以包括转向控制、加速度控制、以及制动控制中的至少一个。导航情形信息可以包括由在车辆上的相机捕获的一个或多个图像。用户输入可以包括制动、转向、或加速中的至少一个。导航情形信息可以包括车辆的位置。导航情形信息可以包括在车辆上的传感器的至少一个输出。传感器可以是速率计。传感器可以是加速计。传感器可以是ir传感器。导航情形信息可以包括当日时间。导航情形信息可以包括视觉抑制剂(visioninhibitor)的存在的指示。视觉抑制剂可以由眩光引起。导航情形信息可以基于至少一个环境图像来确定。系统可以包括发送器,其用于向远离车辆的服务器传送导航情形信息。

在一些实施例中,非瞬时性计算机可读介质可以包括可由至少一个处理器执行以引起至少一个处理器执行方法的指令。方法可以包括从相机接收与车辆相关联的至少一个环境图像;基于对至少一个环境图像的分析为车辆确定导航操纵;引起车辆发起导航操纵;接收与不同于所发起的导航操纵的用户的导航响应相关联的用户输入;基于接收到的用户输入确定与车辆有关的导航情形信息;并且联合与用户输入有关的信息来存储导航情形信息。

在一些实施例中,用于车辆的导航系统可以包括至少一个处理器,被编程为:至少部分地基于车辆的运动相对于表示路段的预定模型的比较来为车辆确定导航操纵;从相机接收表示车辆的环境的至少一个图像;基于对至少一个图像的分析,确定在车辆的环境中导航调整条件的存在;基于导航调整条件的存在引起车辆调整导航操纵;并且存储与导航调整条件有关的信息。

在系统的一些实施例中,导航调整条件可以包括停放的汽车。导航调整条件可以包括车道转变(laneshift)。导航调整条件可以包括最近遇到的交通标志或最近遇到的交通灯中的至少一个。导航调整条件可以包括建筑工地区域。处理器还可以被编程为引起与导航调整条件有关的所存储的信息被发送到道路模型管理系统,以用于确定导航调整条件是否保证了对表示路段的预定模型的更新。相对于导航调整条件而存储的信息可以包括以下各项中的至少一个:遇到导航调整条件的位置的指示符、对导航操纵进行的调整的指示符、以及至少一个图像。表示路段的预定模型可以包括表示沿着路段行驶的预定路径的三维样条。

在一些实施例中,用于导航车辆的方法可以包括:至少部分地基于车辆的运动相对于表示路段的预定模型的比较来为车辆确定导航操纵;从相机接收表示车辆的环境的至少一个图像;基于对至少一个图像的分析,确定在车辆的环境中导航调整条件的存在;基于导航调整条件的存在引起车辆调整导航操纵;以及存储与导航调整条件有关的信息。

在方法的一些实施例中,导航调整条件可以包括停放的汽车。导航调整条件可以包括车道转变。导航调整条件可以包括最近遇到的交通标志或最近遇到的交通灯中的至少一个。导航调整条件可以包括建筑工地区域。方法可以包括引起与导航调整条件有关的所存储信息被发送到道路模型管理系统,以用于确定导航调整条件是否保证了对表示路段的预定模型的更新。相对于导航调整条件而存储的信息可以包括以下各项中的至少一个:遇到导航调整条件的位置的指示符、对导航操纵进行的调整的指示符、以及至少一个图像。表示路段的预定模型可以包括表示沿着路段行驶的预定路径的三维样条。

在一些实施例中,非瞬时性计算机可读介质可以包括可由至少一个处理器执行以引起至少一个处理器执行方法的指令。方法可以包括:至少部分地基于车辆的运动相对于表示路段的预定模型的比较来为车辆确定导航操纵;从相机接收表示车辆的环境的至少一个图像;基于对至少一个图像的分析,确定在车辆的环境中导航调整条件的存在;基于导航调整条件的存在引起车辆调整导航操纵;以及存储与导航调整条件有关的信息。

在计算机可读介质的一些实施例中,方法可以包括引起与导航调整条件有关的所存储的信息被发送到道路模型管理系统,以用于确定导航调整条件是否保证了对表示路段的预定模型的更新。相对于导航调整条件而存储的信息可以包括以下各项中的至少一个:遇到导航调整条件的位置的指示符、对导航操纵进行的调整的指示符、以及至少一个图像。表示路段的预定模型可以包括表示沿着路段行驶的预定路径的三维样条。

在一些实施例中,用于与多个自主车辆交互的系统可以包括:存储器,所述存储器包括表示至少一个路段的预定模型;以及至少一个处理器被编程为:从多个自主车辆中的每一个接收与对确定的导航操纵的调整的发生相关联的导航情形信息;分析导航情形信息;基于对导航情形信息的分析来确定对确定的导航操纵的调整是否是由于瞬时条件;并且如果对确定的导航操纵的调整不是由于瞬时条件,则更新表示至少一个路段的预定模型。

在系统的一些实施例中,表示至少一个路段的预定模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。对预定模型的更新可以包括对表示沿着至少一个路段行驶的预定路径的三维样条的更新。对确定的导航操纵的调整可以是由用户干预导致。对确定的导航操纵的调整可以是由自动确定导致的,所述自动确定基于对在车辆环境中的导航调整条件的存在的图像分析。导航情形信息可以包括表示自主车辆的环境的至少一个图像。导航情形信息可以包括表示自主车辆的环境的视频。瞬时条件可以与停放的汽车、插入其间的汽车、行人、弱光条件、眩光条件、临时障碍、或临时道路施工相关联。

在一些实施例中,用于与多个自主车辆交互的方法可以包括从多个自主车辆中的每一个接收与对确定的导航操纵的调整的发生相关联的导航情形信息;分析导航情形信息;基于对导航情形信息的分析来确定对确定的导航操纵的调整是否是由于瞬时条件;并且如果对确定的导航操纵的调整不是由于瞬时条件,则更新表示至少一个路段的预定模型。

在方法的一些实施例中,表示至少一个路段的预定模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。对预定模型的更新可以包括对表示沿着至少一个路段行驶的预定路径的三维样条的更新。对确定的导航操纵的调整可以是由用户干预导致的。对确定的导航操纵的调整可以是由自动确定导致的,所述自动确定基于对在车辆环境中的导航调整条件的存在的图像分析。导航情形信息可以包括表示自主车辆的环境的至少一个图像。导航情形信息可以包括表示自主车辆的环境的视频。瞬时条件可以与停放的汽车、插入其间的汽车、行人、弱光条件、眩光条件、临时障碍、或临时道路施工相关联。

在一些实施例中,非瞬时性计算机可读介质可以包括可由至少一个处理器执行以引起至少一个处理器执行方法的指令。方法可以包括:从多个自主车辆中的每一个接收与对确定的导航操纵的调整的发生相关联的导航情形信息;分析导航情形信息;基于对导航情形信息的分析来确定对确定的导航操纵的调整是否是由于瞬时条件;并且如果对确定的导航操纵的调整不是由于瞬时条件,则更新表示至少一个路段的预定模型。

在计算机可读介质的一些实施例中,表示至少一个路段的预定模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。更新预定模型可以包括对表示沿着至少一个路段行驶的预定路径的三维样条的更新。瞬时条件可以与停放的汽车、插入其间的汽车、行人、弱光条件、眩光条件、临时障碍、或临时道路施工相关联。

在一些实施例中,用于与多个自主车辆交互的系统可以包括存储器,所述存储器包括表示至少一个路段的预定道路模型;以及至少一个处理器,被编程为:基于由多个自主车辆通过它们各自的道路环境的导航,从多个自主车辆选择性地接收道路环境信息;基于道路环境信息确定是否要求对预定道路模型的一个或多个更新;更新预定道路模型以包括一个或多个更新。

在系统的一些实施例中,道路模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。选择性地接收道路环境信息可以包括对从特定车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从车辆的组接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从在特定地理区之内行驶的车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括基于与特定地理区相关联的确定的模型置信水平,对从车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括将从车辆接收的信息传输限制为仅那些相对于预定道路模型的至少一个方面包括潜在矛盾的传输的限制。

在一些实施例中,用于与多个自主车辆交互的方法可以包括:基于多个自主车辆通过它们各自的道路环境的导航,从多个自主车辆选择性地接收道路环境信息;基于道路环境信息确定是否要求对预定道路模型的一个或多个更新;更新预定道路模型以包括一个或多个更新。

在方法的一些实施例中,道路模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。选择性地接收道路环境信息可以包括对从特定车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从车辆的组接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从在特定地理区之内行驶的车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括基于与特定地理区相关联的确定的模型置信水平,对从车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括将从车辆接收的信息传输限制为仅那些相对于预定道路模型的至少一个方面包括潜在矛盾的传输的限制。

在一些实施例中,非瞬时性计算机可读介质可以包括可由至少一个处理器执行以引起至少一个处理器执行方法的指令。方法可以包括:基于多个自主车辆通过它们各自的道路环境的导航,从多个自主车辆选择性地接收道路环境信息;基于道路环境信息确定是否要求对预定道路模型的一个或多个更新;更新预定道路模型以包括一个或多个更新。

在计算机可读介质的一些实施例中,道路模型可以包括表示沿着至少一个路段行驶的预定路径的三维样条。选择性地接收道路环境信息可以包括对从特定车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从车辆的组接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括对从在特定地理区之内行驶的车辆接收的信息传输的频率的限制。选择性地接收道路环境信息可以包括将从车辆接收的信息传输限制为仅那些相对于预定道路模型的至少一个方面包括潜在矛盾的传输的限制。

在一些实施例中,一种用于向自主车辆提供地图的导航系统可以包括:处理器;以及包含指令的存储器设备,所述指令在被所述处理器执行时使所述处理器:维护地图;基于对图像数据的分析,确定与所述地图不一致的非瞬时条件的存在,所述图像数据来自与所述自主车辆集成的相机;以及更新所述地图。

在一些实施例中,至少一种用于向自主车辆提供地图的计算机可读介质,所述计算机可读介质包括指令,所述指令在与自主车辆相关联的计算机上执行时可以使所述计算机执行以下操作:维护地图;基于对图像数据的分析,确定与所述地图不一致的非瞬时条件的存在,所述图像数据来自与所述自主车辆集成的相机;以及更新所述地图。

与其它公开的实施例一致,非瞬时性计算机可读存储介质可以存储由至少一个处理设备执行并且执行本文所描述的方法中的任何的程序指令。

前述的一般描述和下面的详细描述仅仅是示范性和说明性的,并且不限制权利要求。

附图说明

被合并入本公开中并构成本公开的一部分的附图示出各种公开的实施例。在附图中:

图1是与本公开实施例一致的示范性系统的图示性表示。

图2a是包括与本公开实施例一致的系统的示范性车辆的图示性侧视图表示。

图2b是与本公开实施例一致的在图2a中示出的车辆和系统的图示性顶视图表示。

图2c是包括与本公开实施例一致的系统的车辆的另一实施例的图示性顶视图表示。

图2d是包括与本公开实施例一致的系统的车辆的又一实施例的图示性顶视图表示。

图2e是包括与本公开实施例一致的系统的车辆的又一实施例的图示性顶视图表示。

图2f是与本公开实施例一致的示范性车辆控制系统的图示性表示。

图3a是与本公开实施例一致的、包括用于车辆成像系统的后视镜和用户接口的车辆的内部的图示性表示。

图3b是与本公开实施例一致的、被配置为放置在后视镜后面并且倚靠车辆挡风玻璃的相机安装的示例的例示。

图3c是与本公开实施例一致的、从不同视角的图3b中所示的相机安装的例示。

图3d是与与本公开实施例一致的、被配置为放置在后视镜后面并且倚靠车辆挡风玻璃的相机安装的示例的例示。

图4是与与本公开实施例一致的、被配置为存储用于执行一个或多个操作的指令的存储器的示范性框图。

图5a是示出与本公开实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示范性过程的流程图。

图5b是示出与本公开实施例一致的、用于检测在图像的集合中的一个或多个车辆和/或行人的示范性过程的流程图。

图5c是示出与本公开实施例一致的、用于检测在图像的集合中的道路标记和/或车道几何信息的示范性过程的流程图。

图5d是示出与本公开实施例一致的、用于检测在图像的集合中的交通灯的示范性过程的流程图。

图5e是示出与本公开实施例一致的、用于基于车辆路径引起一个或多个导航响应的示范性过程的流程图。

图5f是示出与本公开实施例一致的、用于检测前方车辆是否改变车道的示范性过程的流程图。

图6是示出与本公开实施例一致的、用于基于立体图像分析引起一个或多个导航响应的示范性过程的流程图。

图7是示出与本公开实施例一致的、用于基于对图像的三个集合的分析引起一个或多个导航响应的示范性过程的流程图。

图8示出与本公开实施例一致的用于提供自主车辆导航的稀疏地图。

图9a示出与本公开实施例一致的部分路段的多项式表示。

图9b示出与本公开实施例一致的、表示被包括在稀疏地图中的特定路段的车辆的目标轨迹在三维空间中的曲线。

图10示出可能被包括在与本公开实施例一致的稀疏地图中的示例性地标。

图11a示出与本公开实施例一致的轨迹的多项式表示。

图11b和图11c示出沿着与本公开实施例一致的多车道道路的目标轨迹。

图11d示出与本公开实施例一致的示例性道路签名轮廓。

图12是与本公开实施例一致的、使用用于自主车辆导航的从多个车辆接收众包数据的系统的示意图。

图13示出与本公开实施例一致的,由多个三维样条表示的示例性自主车辆道路导航模型。

图14示出与本公开实施例一致的服务器的框图。

图15示出与本公开实施例一致的存储器的框图。

图16示出与本公开实施例一致的聚类与车辆相关联的车辆轨迹的过程。

图17示出与本公开实施例一致的可以用于自主导航的导航系统

图18是示出与本公开实施例一致的、用于处理车辆导航信息以便在自主车辆导航中使用的示范性过程的流程图。

图19是示出与本公开实施例一致的、由车辆的导航系统执行的示范性过程的流程图。

图20示出与本公开实施例一致的存储器的示例性示图。

图21示出与本公开实施例一致的、向服务器上传推荐的轨迹的流程图。

图22示出与本公开实施例一致的、包括用于标识地标以便在自主车辆中使用的系统的示范性环境。

图23示出与本公开实施例一致的、包括用于标识地标以便在自主车辆中使用的系统的示范性环境。

图24示出与本公开实施例一致的、确定地标的浓缩的签名表示的方法。

图25示出与本公开实施例一致的、确定地标的浓缩的签名表示的另一方法。

图26示出与本公开实施例一致的存储器的示例性框图。

图27是示出与本公开实施例一致的用于确定地标的标识器的示范性过程的流程图。

图28是示出与本公开实施例一致的、用于更新和分发车辆道路导航模型的示范性过程的流程图。

图29示出与本公开实施例一致的、用于确定地标的位置以便在自主车辆的导航中使用的系统的示范性框图。

图30示出与本公开实施例一致的存储器的示例性框图。

图31示出与本公开实施例一致的、用于确定车辆到地标的距离的示范性比例方法。

图32示出与本公开实施例一致的、用于确定车辆到地标的距离的示范性光流。

图33a示出与本公开实施例一致的、用于确定地标的位置以便在自主车辆的导航中使用的示范性过程的流程图。

图33b示出与本公开实施例一致的、用于测量地标的位置以便在自主车辆的导航中使用的示范性过程的流程图。

图34是包括与本公开实施例一致的、其中车辆使用地标来导航的系统的示范性车辆的图示性顶视图表示。

图35是包括与本公开实施例一致的、其中车辆使用地标来导航的系统的示范性车辆的另一图示性顶视图表示。

图36是示出用于使用地标来导航示范性车辆的示范性过程的流程图的流程图。

图37是包括与本公开实施例一致的、其中自主车辆使用尾部对齐来导航的系统的示范性自主车辆的图示性顶视图表示。

图38是包括与本公开实施例一致的、其中自主车辆使用尾部对齐来导航的系统的示范性自主车辆的另一图示性顶视图表示。

图39是示出用于使用尾部对齐来导航示范性自主车辆的示范性过程的流程图。

图40是包括与本公开实施例一致的、其中车辆使用两个或更多个地标来导航道路枢纽的系统的示范性车辆的图示性顶视图表示。

图41是示出用于使用两个或更多个地标来导航在道路枢纽的示范性车辆的示范性过程的流程图。

图42是包括与本公开实施例一致的、其中车辆使用重叠地图来导航的系统的示范性车辆的图示性顶视图表示。

图43a、图43b、和图43c示示出用于使用重叠地图导航示范性车辆的示范性过程的流程图。

图44示出与本公开实施例一致的、在通信车辆中的示范性远程服务器。

图45示出与本公开实施例一致的、沿着多车道道路导航的车辆。

图46示出与本公开实施例一致的、使用沿着多车道道路的目标轨迹来导航的车辆。

图47示出与本公开实施例一致的道路签名轮廓的示例。

图48示出与本公开实施例一致的示范性环境。

图49是示出与本公开实施例一致的、稀疏地图自主车辆导航的示范性过程的流程图。

图50示出与本公开实施例一致的、用于基于期望的地标位置的自主导航的示例性环境。

图51示出与本公开实施例一致的用于自主导航的配置。

图52示出与本公开实施例一致的、用于基于期望的地标位置的自主导航的示另一例性环境。

图53示出与本公开实施例一致的、用于基于期望的地标位置的自主导航的示另一例性环境。

图54是示出与本公开实施例一致的、用于基于期望的地标位置的自主导航的示范性过程的流程图。

图55是与本公开实施例一致的示范性车辆控制系统的图示性表示。

图56是包括与本公开实施例一致的、其中车辆使用车道宽度轮廓和道路宽度轮廓来导航的系统的示范性车辆的图示性顶视图表示。

图57是示出可能被与本公开实施例一致的车辆控制系统使用的示范性轮廓的图形。

图58是包括与本公开实施例一致的、其中车辆使用道路标记的长度或间隔来导航的系统的示范性车辆的图示性顶视图表示。

图59是包括与本公开实施例一致的、其中车辆使用关于路段的曲率的信息来导航的系统的示范性车辆的图示性顶视图表示。

图60是示出用于使用道路签名来导航示范性车辆的示范性过程的流程图。

图61a是与本公开实施例一致的示范性车辆的图示性侧视图表示。

图61b是与本公开实施例一致的示范性车辆的图示性侧视图表示。

图62是与本公开实施例一致的、示范性车辆自主地在道路上导航的图示性顶视图表示。

图63是示出与本公开实施例一致的用于自主地导航的示范性过程的流程图。

图64是由在与本公开实施例一致的示范性车辆上的前向图像捕获设备捕获的环境的图示性透视图。

图65是与与本公开实施例一致的从车辆的前向图像捕获设备接收的示范性图像。

图66是示出与公开的实施例一致的、用于通过确定车辆能够在其中行驶的自由空间区来导航车辆的示范性过程的流程图。

图67是与本公开实施例一致的、在具有覆盖至少一些车道标记和道路边缘的雪的道路上导航的示范性车辆的图示性顶视图表示。

图68是与本公开实施例一致的、用于在雪覆盖至少一些车道标记和道路边缘的道路上导航车辆的示范性过程的流程图。

图69是与本公开实施例一致的、包括用于校准车辆的速率的示范性车辆的图示性顶视图表示。

图70是示出与本公开实施例一致的用于校准车辆的速率的示范性过程的流程图。

图71是与本公开实施例一致的、包括用于校准车辆的速率的示范性车辆的另一图示性顶视图表示。

图72是示出与本公开实施例一致的用于校准车辆的速率的另一示范性过程的流程图。

图73是与所公开的实施例一致的、示范性路段的街道视图的例示。

图74是与本公开实施例一致的、示范性路段的鸟瞰视图。

图75是示出与本公开实施例一致的、用于确定车辆的车道分配的示范性过程的流程图。

图76是与所公开的实施例一致的、示范性路段的街道视图的例示。

图77a是与所公开的实施例一致的、示范性路段的鸟瞰视图的例示。

图77b是与本公开实施例一致的、示范性路段的街道视图。

图78是示出与本公开实施例一致的、用于沿着路段自主地导航车辆的示范性过程的流程图。

图79a示出与所公开的实施例一致的、车辆在路面上行驶、接近在特定位置处冬天的和结冰的道路条件的平面图。

图79b示出与本公开实施例一致的、在接近行人的路面上行驶的车辆的平面图。

图79c示出与本公开实施例一致的、在与另一车辆靠得很近的路面上行驶的车辆的平面图。

图79d示出与公开的实施例一致的、在正在结束的车道中的路面上行驶的车辆的平面图

图80示出包括与本公开实施例一致的系统的示范性车辆的图示性侧视图表示。

图81示出与本公开实施例一致的、表示用于基于用户干预的车辆的自适应导航的方法的示例性流程图。

图82a示出与本公开实施例一致的、在具有停放的汽车的路面上行驶的车辆的平面图。

图82b示出与本公开实施例一致的、在正在结束的车道中的路面上行驶的车辆的平面图。

图82c示出与本公开实施例一致的、在接近行人的路面上行驶的车辆的平面图。

图82d示出与本公开实施例一致的、在接近建筑工地的区域的路面上行驶的车辆的平面图。

图83示出与本公开实施例一致的、表示用于车辆的自我意识导航的方法的示例性流程图。

图84a示出与本公开实施例一致的、在具有多个停放的汽车的路面上行驶的车辆的平面图。

图84b示出与本公开实施例一致的、在具有直接插入车辆前面的汽车的路面上行驶的车辆的平面图。

图84c示出与本公开实施例一致的、在具有直接在车辆前面的临时障碍的路面上行驶的车辆的平面图。

图84d示出与本公开实施例一致的、在具有直接在车辆前面的临时建筑工地的路面上行驶的车辆的平面图。

图85a示出与本公开实施例一致的、在具有直接在车辆前面的坑洼的路面上行驶的车辆的平面图。

图85b示出与本公开实施例一致的、在具有横跨在车辆前面的动物和行人的路面上行驶的车辆的平面图。

图86示出与本公开实施例一致的、表示用于自适应道路模型管理器的方法的示例性流程图。

图87a示出与本公开实施例一致的、在具有路面上行驶的单个车辆的平面图。

图87b示出与本公开实施例一致的、在城市路面上行驶的车辆的组的平面图。

图87c示出与本公开实施例一致的、在特定的农村地理区之内的路面上行驶的车辆的平面图。

图87d示出与本公开实施例一致的、在具有车道转变的路面上行驶的车辆的平面图。

图88示出与本公开实施例一致的、表示基于选择性反馈的道路模型管理的方法的示例性流程图。

具体实施例

下面的详细描述参考附图。在任何可能的情况下,在附图和下面的描述中使用的相同的参考标号指代相同或相似的部分。虽然本文中描述了数个例示性实施例,但是修改、适应、和其它实施方式是可能的。例如,可以对在附图中示出的组件做出替代、添加、或修改,并且可以通过对所公开的方法进行替代、重新排序、移除、或添加步骤来修改本文描述的例示性方法。因此,下面的详细描述不限于本公开的实施例和示例。相反,由所附权利要求定义合适的范围。

自主车辆概览

如贯穿本公开所使用的,术语“自主车辆”是指在没有驾驶员输入的情况下能够实施至少一个导航改变的车辆。“导航改变”是指车辆的转向、制动、或加速中的一个或多个。所谓自主,是指车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全地操作)。相反,自主车辆包括能够在某些时间段期间在驾驶员的控制下操作,且在其他时间段期间无需驾驶员控制的那些车辆。自主车辆还可以包括仅控制车辆导航的一些方面,诸如转向(例如,在车辆车道限制之间维持车辆路线),但可以将其它方面留给驾驶员(例如,制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速率控制、和/或转向的一些或全部方面。

由于人类驾驶员典型地依赖于可视线索和观察顺序来控制车辆,因此而建造了运输基础设施,其具有全部都被设计为向驾驶员提供可视信息的车道标记、交通标志、和交通灯。鉴于运输基础设施的这些设计特性,自主车辆可以包括相机、和分析从车辆的环境捕获的可视信息的处理单元。可视信息可以包括,例如,由驾驶员观察到的运输基础设施的组件(例如,车道标记、交通标志、交通灯等等)、和其它障碍物(例如,其它车辆、行人、岩块等等)。此外,自主车辆还可以使用存储的信息,诸如当导航时提供车辆的环境的模型的信息。例如车辆可以使用gps数据、传感器数据(例如,来自加速计、速率传感器、悬架传感器等等)和/或其它地图数据,以在车辆正在行驶的同时提供与它自身的环境有关的信息,并且该车辆(以及其它车辆)可以使用该信息来在模型上本地化它自身。

在本公开的一些实施例中,自主车辆可以使用在导航的同时获得的信息(例如,从相机、gps设备、加速计、速率传感器、悬架传感器等等)。在其它实施例中,自主车辆可以在导航的同时使用由该车辆(或由其它车辆)从过去的导航获得的信息。在又一实施例中,自主车辆可以使用在导航的同时获得的信息和从过去的导航获得信息的组合。下面的部分提供与本公开实施例一致的系统的概览,接着是前向成像系统和与该系统一致的方法的概览。以下的部分公开了用于构建、使用、和更新用于自主车辆导航的稀疏地图的系统和方法。

系统概览

图1是表示与示范性公开实施例一致的系统100的框图。根据特定实施方式的要求,系统100可以包括各种组件。在一些实施例中,系统100可以包括处理单元110,图像获取单元120,位置传感器130,一个或多个存储器单元140、150,地图数据库160,用户接口170,以及无线收发器172。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190、或任何其它合适的处理设备。相似地,根据特定应用的要求,图像获取单位120可以包括任意数量的图像获取设备和组件。在一些实施例中,图像获取单元120可以包括诸如图像捕获设备122、图像捕获设备124、和图像捕获设备126的一个或多个图像捕获设备(例如,相机)。系统100还可以包括可通信地将处理设备110连接到图像获取设备120的数据接口128。例如,数据接口128可以包括任何有线和/或无线链路、或用于向处理单元110发送由图像获取设备120获取的图像数据的链路。

无线收发器172可以包括一个或多个设备,被配置为通过使用射频、红外频率、磁场、或电场将通过空中接口的传输交换到一个或多个网络(例如,蜂窝、互联网等等)。无线收发器172可以使用任何熟知的标准发送和/或接收数据(例如,wi-fi、蓝牙智能、802.15.4、zigbee等等)

应用处理器180和图像处理器190两者都可以包括各种类型的处理设备。例如,应用处理器180和图像处理器190的两者或其中之一可以包括微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(cpu)、支持电路、数字信号处理器、集成电路、存储器、或适于运行应用和适于图像处理和分析的任何其它类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等等。可以使用各种处理设备,包括,例如,可向诸如等的制造商购得的处理器,并且所述各种处理设备可以包括各种架构(例如,x86处理器、等等)。

在一些实施例中,应用处理器180和/或图像处理器190可以包括可向购得的eyeq系列处理器芯片中的任何一个。这些处理器设计成每个处理器都包括具有本地存储器和指令集合的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频出能力。在一个示例中,使用操作在332mhz的90nm-微米技术。架构由两个浮点、超线程32-比特risccpu(多核)、五个视觉计算引擎(visioncomputingengines,vce)、三个向量微码处理器(vectormicrocodeprocessors,)、denali64-比特移动ddr控制器、128-比特内部超音速互连、双16-比特视频输入和18-比特视频输出控制器、16通道dma和数个外围组成。mips34kcpu管理五个vce、三个vmptm和dma、第二mips34kcpu和多通道dma以及其它外围。五个vce、三个vmptm和mips34kcpu能够执行由多功能捆绑应用所要求的密集视觉计算。在另一示例中,作为第三代处理器并且是的强大六倍的可以被用在本公开的实施例中。

本文公开的处理设备中的任何可以被配置为执行某些功能。配置诸如所描述的eyeq处理器或其它控制器或微处理器中的任何的处理设备以执行某些功能可以包括对计算机可执行指令编程,并且使这些指令可用于处理设备,以用于在处理设备的操作期间的执行。在一些实施例中,配置处理设备可以包括直接利用架构指令对处理设备编程。在其它实施例中,配置处理设备可以包括在处理设备在操作期间可访问的存储器上存储可执行指令。例如,处理设备可以在操作期间访问存储器以获得并执行存储的指令。

虽然图1描绘了被包括在处理单元110中的两个单独的处理设备,但是可以使用更多或更少的处理设备。例如,在一些实施例中,单个处理设备可以用来完成应用处理器180和图像处理器190的任务。在其它实施例中,这些任务可以通过多于两个的处理设备来执行。另外,在一些实施例中,系统100可以包括处理单元110中的一个或多个,而不包括诸如图像获取单元120的其它组件。

处理单元110可以包含各种类型的设备。例如,处理单元110可以包括各种设备,诸如控制器、图像预处理器、中央处理单元(cpu)、支持电路、数字信号处理器、集成电路、存储器、或用于图像处理和分析的任何其它类型的设备。图像预处理器可以包括用于捕获、数字化、和处理来自图像传感器的成像的视频处理器。cpu可以包括任意数量的微控制器或微处理器。支持电路可以是领域内通常熟知的任意数量的电路,包括高速缓存电路、电源电路、时钟电路、和输入输出电路。存储器可以存储当被处理器执行时控制系统的操作的软件。存储器可以包括数据库和图像处理软件。存储器可以包括任意数量的随机存取存储器、只读存储器、快闪存储器、磁盘驱动器、光学储存器、带储存器、可移除储存器、以及其它类型的储存器。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被整合到处理单元110中。

每个存储器140、150可以包括当被处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各种方面的操作的软件指令。这些存储器单元可以包括各种数据库和图像处理软件。存储器单元可以包括随机存取存储器、只读存储器、快闪存储器、磁盘驱动器、光学储存器、带存储器、可移除储存器、和/或任何其它类型的储存器。在一些实施例中,存储器单元140、150可以与应用处理器180、和/或图像处理器190分离。在其它实施例中,这些存储器单元可以被整合到应用处理器180和/或图像处理器190中。

位置传感器130可以包括适于确定与系统100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括gps接收器。这样的接收器能够通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。来自位置传感器130的位置信息可以提供给应用处理器180和/或图像处理器190。

在一些实施例中,系统100可以包括诸如用于测量车辆200的速率的速率传感器(例如,转速计)、和/或用于测量车辆200的加速度的加速计的组件。

用户接口170可以包括适于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何设备。在一些实施例中,用户接口170可以包括用户输入设备,包括,例如,触摸屏、麦克风、键盘、指针设备、轨道轮、相机、旋钮、按钮等等。利用这样的输入设备,用户可以能够通过键入指令或信息,提供语音命令,使用按钮、指针、或眼跟踪能力在屏幕上选择菜单选项,或通过用于向系统100通信传达信息的任何其它适合的技术,来向系统100提供信息输入或命令。

用户接口170可以配备有一个或多个处理设备,所述一个或多个处理设备被配置为向用户提供信息和从用户接收信息,并且处理该信息以被例如应用处理器180使用。在一些实施例中,这样的处理设备可以执行用于识别和跟踪眼移动、接收和解释语音命令、识别和解释对触摸屏做出的触摸和手势、响应键盘条目或菜单选择等等的指令。在一些实施例中,用户接口170可以包括显示器、扬声器、触觉设备、和/或用于向用户提供输出信息的任何其它设备。

地图数据库160可以包括用于存储对系统100有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库160可以包括与各种项目在参考坐标系统中的位置有关的数据,所述各种项目包括道路、水文要素、地理特征、商业、兴趣点、餐馆、加油站等等。地图数据库160可以不仅存储这样的项目的位置,还存储与那些项目有关的描述符,包括,例如,与存储的特征的任何相关联的名称。在一些实施例中,地图数据库160可以与系统100的其它组件物理地位于一起。可替换地或额外地,地图数据库160或其的一部分可以相对于系统100的其它组件(例如,处理单元110)远程定位。在这样的实施例中,可以通过到网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等等)下载来自地图数据库160的信息。

图像捕获设备122、124、和126可以各自包括适于从环境捕获至少一个图像的任何类型的设备。而且,任意数量的图像捕获设备可以用来获取用于输入到图像处理器的图像。一些实施例可以仅包括单个图像捕获设备,而其它实施例可以包括两个、三个、或甚至四个或更多个图像捕获设备。图像捕获设备122、124、和126还将参考以下的图2b-图2e来描述。

系统100、或其的各种组件可以被合并到各种不同的平台中。在一些实施例中,系统100可以被包括在车辆200上,如图2a中所示。例如,如以上相对于图1所述的,车辆200可以配备有处理单元110、和系统100的其它组件中的任何。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获设备(例如,相机),但是在其它实施例中,诸如结合图2b-图2e讨论的那些实施例,可以使用多个图像捕获设备。例如,如图2a中所示,车辆200的图像捕获设备122和图像捕获设备124两者之一可以是adas(advanceddriverassistancesystem,高级辅助驾驶系统)成像设置的一部分。

作为图像获取单元120的一部分的、被包括在车辆200上的图像捕获设备,可以被放置在任何合适的位置。在一些实施例中,如图2a-图2e、以及图3a-图3c中所示,图像捕获设备122可以位于后视镜的附近。此位置可以提供相似于车辆200的驾驶员的视线,其可以辅助确定对驾驶员来说什么是可视的和什么是不可视的。图像捕获设备122可以被放置于靠近后视镜的任何位置,但是将图像捕获设备122放置在镜子的驾驶员侧还可以有助于获得表示驾驶员的视场和/或视线的图像。

也可以使用针对图像获取单元120的图像捕获设备的其它位置。例如,图像捕获设备124可以位于车辆200的保险杠之上或之中。这样的位置可以尤其适于具有宽视场的图像捕获设备。位于保险杠的图像捕获设备的视线能够不同于驾驶员的视线,因此,保险杠图像捕获设备和驾驶员可以并不总看见相同的对象。图像捕获设备(例如,图像捕获设备122、124、和126)还可以位于其它位置。例如,图像捕获设备可以位于车辆200的一侧镜子或两侧镜子之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,可以被安装在车辆200的任何车窗上、被放置在车辆200的任何车窗后、或被放置在车辆200的任何车窗前,并且可以被安装在车辆200的前部和/或后部上的光图中或附近。

除了图像捕获设备之外,车辆200可以包括系统100的各种其它组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(enginecontrolunit,ecu)整合或分离。车辆200还可以配备有诸如gps接收器的位置传感器130,并且还可以包括地图数据库160和存储器单元140以及存储器单元150。

如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等等)和/或接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。系统100可以经由无线收发器172接收,例如,对存储在地图数据库160、存储器140、和/或存储器150中的数据的周期性更新或按需求的更新。相似地,无线收发器172可以将由系统100接收的任何数据(例如,由图像获取单元120捕获的图像,由位置传感器130或其它传感器、车辆控制系统接收的数据等等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。

系统100可以基于隐私水平设置将数据上传到服务器(例如,上传到云)。例如,系统100可以实施隐私水平设置,以规定或限制被发送到服务器的、可以独特地标识车辆和/或车辆的驾驶员或拥有者的数据(包括元数据)的类型。这样的设置可以由用户经由,例如,无线收发器172来设置,可以由出厂默认设置、或由无线收发器172接收的数据来初始化。

在一些实施例中,系统100可以根据“高”隐私水平上传数据,并且在设置设定下,系统100可以发送没有关于特定车辆、和/或驾驶员/拥有者的任何细节的数据(例如,与路途有关的位置信息,捕获的图像等等)。例如,当根据“高”隐私设置来上传数据时,系统100可以不包括车辆标识编号(vehicleidentificationnumber,vin)、或车辆驾驶员或拥有者的名字,并且可以代替地发送诸如被捕获的图像、和/或与路途有关的限制的位置信息的数据。

其它隐私水平可以被考虑。例如,系统100可以根据“中间”隐私水平向服务器发送数据,并且可以包括在“高”隐私水平下不包括的额外信息,诸如车辆的模型和/或制作、和/或车辆类型(例如载客车辆、运动型多用途车辆、卡车等等)。在一些实施例中,系统100可以根据“低”隐私水平上传数据。在“低”隐私水平设置下,系统100上传数据,并且包括足以唯一地标识特定车辆、拥有者/驾驶员、和/或由车辆行驶的部分或整个路途的信息。这样的“低”隐私水平数据可以包括以下各项中的至少一个:例如,vin、驾驶员/拥有者名称、出发之前车辆的源点、车辆的期望目的地、车辆的制作和/或模型、车辆的类型等等。

图2a是与本公开实施例一致的示范性车辆成像系统的图示性侧视图表示。图2b是如图2a中所示的实施例的图示性顶视图例示。如图2b中所示,所公开的实施例可以包括车辆200,在所述车辆200的本体中包括系统100,所述系统100具有放置在后视镜附近和/或车辆200的驾驶员附近的第一图像捕获设备122、放置在车辆200的保险杠区(例如,保险杠区210中的一个)之上或之中的第二图像捕获设备124、和处理单元110。

如图2c中所示,图像捕获设备122和图像捕获设备124可以都被放置在车辆200的后视镜附近和/或驾驶员附近。额外地,虽然图2b和图2c示出了两个图像捕获设备,图像捕获设备122和图像捕获设备124,但应该理解其它实施例可以包括多于两个图像捕获设备。例如,在如图2d和图2e中所示的实施例中,第一、第二、和第三图像捕获设备122、124、和126被包括在车辆200的系统100中。

如图2d中所示,图像捕获设备122可以被放置在车辆200的后视镜附近和/或驾驶员附近,并且图像捕获设备124和图像捕获设备126可以被放置在车辆的保险杠区(例如,保险杠区210中的一个)之上或之中。如图2e中所示,图像捕获设备122、124、和126可以被放置在车辆200的后视镜附近和/或驾驶员座椅附近。所公开的实施例不限于图像捕获设备的任何特定数量和配置,并且图像捕获设备可以被放置在车辆200内和/或车辆200上的任何适当的位置。

将理解,所公开的实施例不限于车辆并且可以被应用于其它上下文中。还将理解,所公开的实施例不限于车辆200的特定类型,并且对包括汽车、卡车、拖车、和其它类型的车辆的所有类型的车辆是可应用的。

第一图像捕获设备122可以包括任何合适的类型的图像捕获设备。图像捕获设备122可以包括光轴。在一个实例中,图像捕获设备122可以包括具有全局快门的aptinam9v024wvga传感器。在其它实施例中,图像捕获设备122可以提供1280×960像素的分辨率,并且可以包括滚动快门。图像捕获设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个镜头,例如,来为图像捕获设备提供期望的焦距和视场。在一些实施例中,图像捕获设备122可以与6mm镜头或12mm镜头相关联。在一些实施例中,图像捕获设备122可以被配置为捕获具有期望的视场(field-of-view,fov)202的图像,如图2d所示。例如,图像捕获设备122可以被配置为具有常规fov,诸如在40度至56度的范围之内,包括46度fov、50度fov、52度fov、或更大的fov。可替换地,图像捕获设备122可以被配置为具有在23度至40度的范围内的窄fov,诸如28度fov、或36度fov。此外,图像捕获设备122可以被配置为具有在100度至180度的范围内的宽fov。在一些实施例中,图像捕获设备122可以包括广角保险杠相机(bumpercamera)、或具有高达180度fov的相机。在一些实施例中,图像捕获设备122可以是具有大约2:1的高宽比(例如,h×v=3800×1900像素)、具有大约100度水平fov的7.2m像素图像捕获设备。这样的图像捕获设备可以被用在三个图像捕获设备配置的地方。由于严重的镜头失真,在图像捕获设备使用径向对称镜头的实施方式中,这样的图像捕获设备的垂直fov可以显著地小于50度。例如,这样的镜头可以不是径向对称的,其可以允许具有100度水平fov的大于50度的垂直fov。

第一图像捕获设备122可以获取相对于与200相关联的场景而言的多个第一图像。多个第一图像中的每一个可以被获取为一系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线可以包括多个像素。

第一图像捕获设备122可以具有与第一系列的图像扫描线中的每一个的获取相关联的扫描频率。扫描频率可以指代一频率,其中图像传感器能够以该频率获取与被包括在特定扫描线中的每一个像素相关联的图像数据。

图像捕获设备122、124、和126可以包含任何合适的类型和数量的图像传感器,包括,例如,ccd传感器或cmos传感器。在一个实施例中,cmos图像传感器可以连同滚动快门一起被采用,从而每次读取一行中的每个像素,并且在逐行的基础上进行对行的扫描,直到整个图像帧已经被捕获。在一些实施例中,可以相对于帧从上到下顺序地捕获行。

在一些实施例中,本文公开的图像捕获设备中的一个或多个(例如,图像捕获设备122、124、和126)可以构成高分辨率成像器,并且可以具有大于5m像素、7m像素、10m像素、或更大像素的分辨率。

滚动快门的使用可以导致不同行中的像素在不同时间被曝光和被捕获,其可以引起所捕获的图像帧中的歪斜和其它图像伪影。另一方面,当图像捕获设备122被配置为利用全局快门或同步快门操作时,所有像素可以被曝光相同的时间量,并且在共同的曝光时段期间被曝光。结果,在从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个fov(诸如fov202)的快照。相反,在滚动快门应用中,帧中的每行在不同时间被曝光,并且数据在不同时间被捕获。因此,在具有滚动快门的图像捕获设备中,移动对象可以出现失真。以下将更详细地描述此现象。

第二图像捕获设备124和第三图像捕获设备126可以是任何类型的图像捕获设备。类似于第一图像捕获设备122,图像捕获设备124和图像捕获设备126中的每一个可以包括光轴。在一个实施例中,图像捕获设备124和图像捕获设备126中的每一个可以包括具有全局快门的aptinam9v024wvga传感器。可替换地,图像捕获设备124和图像捕获设备126中的每一个可以包括滚动快门。类似于第一图像捕获设备122,图像捕获设备124和图像捕获设备126可以被配置为包括各种镜头和光学元件。在一些实施例中,与图像捕获设备124和图像捕获设备126相关联的镜头可以提供和与图像捕获设备122相关联的fov(诸如fov202)相同或比其更窄的fov(诸如fov204和fov206)。例如,图像捕获设备124和图像捕获设备126可以具有40度、30度、26度、23度、20度、或更小角度的fov。

图像捕获设备124和图像捕获设备126可以获取相对于与车辆200相关联的场景而言的多个第二图像和多个第三图像。多个第二图像和多个第三图像中的每一个可以被获取为第二系列图像扫描线和第三系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线或行可以具有多个像素。图像捕获设备124和图像捕获设备126可以具有与被包括在第二系列和第三系列中的图像扫描线中的每一个的获取相关联的第二扫描频率和第三扫描频率。

图像捕获设备122、124、和126各自可以被放置在相对于车辆200的任何合适的位置和朝向处。图像捕获设备122、124、和126的相对位置可以被选择,以助于将从图像捕获设备获取的信息融合在一起。例如,在一些实施例中,与图像捕获设备124相关联的fov(诸如fov204)可以和与图像捕获设备122相关联的fov(诸如fov202)以及与图像捕获设备126相关联的fov(诸如fov206)部分地或完全地重叠。

图像捕获设备122、124、和126可以以任何合适的相对高度位于车辆200之上。在一个实例中,图像捕获设备122、124、和126之间可能存在高度差,其可以提供足够的视差信息,以使得能够进行立体分析。例如,如图2a中所示,两个图像捕获设备,图像捕获设备122和图像捕获设备124在不同的高度。图像捕获设备122、124、和126之间还可以存在横向位移差,给予额外的视差信息以用于,例如,处理单元110进行立体分析。横向位移中的差可以由dx表示,如图2c和图2d中所示。在一些实施例中,图像捕获设备122、124、和126之间可以存在前后位移(例如,范围位移)。例如,图像捕获设备122可以位于图像捕获设备124和/或图像捕获设备126后面的0.5米至2米或更多米。此类型的位移可以使得图像捕获设备中的一个能够覆盖其它(多个)图像捕获设备的潜在盲点。

图像捕获设备122可以具有任何合适的分辨能力(例如与图像传感器相关联的像素的数量),并且与图像捕获设备122相关联的(多个)图像传感器的分辨率可以比与图像捕获设备124和图像捕获设备126相关联的(多个)图像传感器的分辨率更高、更低或与其相同。在一些实施例中,与图像捕获设备122和/或图像捕获设备124和图像捕获设备126相关联的(多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或其它合适的分辨率。

帧率(例如,图像捕获设备在继续捕获与下一图像帧相关联的像素数据之前以该频率获取一个图像帧的像素数据的集合的频率)可以是可控的。与图像捕获设备122相关联的帧率可以比与图像捕获设备124和图像捕获设备126相关联的帧率更高、更低、或与其相同。与图像捕获设备122、124、和126相关联的帧率可以取决于可以影响帧率的定时的各种因素。例如,图像捕获设备122、124、和126中的一个或多个可以包括在与在图像捕获设备122、124、和/或126中的图像传感器的一个或多个像素相关联的图像数据的获取之前或之后施加的可选择的像素延迟期(pixeldelayperiod)。通常,可以根据针对设备的时钟频率(例如,每时钟周期一个像素)来获取与每个像素相对应的图像数据。另外,在包括滚动快门的实施例中,图像捕获设备122、124、和126中的一个或多个可以包括在与图像捕获设备122、124、和/或126中的图像传感器的一行像素相关联的图像数据的获取之前或之后施加的可选择的水平消隐期。此外,图像捕获设备122、124、和/或126中的一个或多个可以包括在与图像捕获设备122、124、和126的图像帧相关联的图像数据的获取之前或之后施加的垂直消隐期。

这些定时控制可以使得与图像捕获设备122、124、和126相关联的帧率能够同步,即使在每个图像捕获设备的线扫描频率不同的情况下。另外,如将在以下更详细地讨论的,这些可选择的定时控制,以及其它因素(例如,图像传感器分辨率、最大线扫描频率等),可以使得从图像捕获设备122的fov与图像捕获设备124和图像捕获设备126中的一个或多个fov重叠的区域的图像捕获能够同步,即使在图像捕获设备122的视场不同于图像捕获设备124和图像捕获设备126的fov的情况下。

图像捕获设备122、124、和126中的帧率定时可以取决于相关联的图像传感器的分辨率。例如,假设两个设备的线扫描频率相似,如果一个设备包括具有分辨率为640×480的图像传感器,并且另一设备包括具有分辨率为1280×960的图像传感器,那么从具有更高分辨率的传感器获得图像数据的帧将要求更多时间。

可以影响在图像捕获设备122、124、和126中的图像数据获取的定时的另一因素是最大线扫描频率。例如从被包括在图像捕获设备122、124、和126中的图像传感器的一行图像数据的获取将要求某些最小时间量。假设没有添加像素延迟期,用于一行图像数据的获取的该最小时间量将与特定设备的最大线扫描频率有关。提供更高最大线扫描频率的设备具有提供比具有更低最大线扫描频率的设备更高的帧率的潜能。在一些实施例中,图像捕获设备124和图像捕获设备126中的一个或多个可以具有高于与图像捕获设备122相关联的最大线扫描频率的最大线扫描频率。在一些实施例中,图像捕获设备124和/或图像捕获设备126的最大线扫描频率可以是图像捕获设备122的最大线扫描频率的1.25倍、1.5倍、1.75倍、或2倍、或更多倍。

在另一实施例中,图像捕获设备122、124、和126可以具有相同的最大线扫描频率,但是图像捕获设备122可以以小于或等于它的最大扫描频率的扫描频率来操作。该系统可以被配置,从而图像捕获设备124和图像捕获设备126中的一个或多个以等于图像捕获设备122的线扫描频率的线扫描频率来操作。在其它实例中,该系统可以被配置,从而图像捕获设备124和/或图像捕获设备126的线扫描频率可以是图像捕获设备122的1.25倍、1.5倍、1.75倍、或2倍、或更多倍。

在一些实施例中,图像捕获设备122、124、和126可以是非对称的。也就是说,它们可以包括具有不同视场(fov)和焦距的相机。图像捕获设备122、124、和126的视场可以包括,例如,与车辆200的环境有关的任何期望的区域。在一些实施例中,图像捕获设备122、124、和126中的一个或多个可以被配置为从车辆200的前面、车辆200的后面、到车辆200的侧面,或从它们的组合的环境来获取图像数据。

另外,与每个图像捕获设备122、124、和/或126相关联的焦距可以是可选择的(例如,按照所包含的适当的镜头等等),从而每个设备在相对于车辆200而言的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕获设备122、124、和126可以获取在离车辆几米之内的特写对象的图像。图像捕获设备122、124、和126还可以被配置为获取在离车辆更遥远的范围(例如,25m、50m、100m、150m、或更多)的对象的图像。另外,图像捕获设备122、124、和126的焦距可以被选择,从而一个图像捕获设备(例如,图像捕获设备122)能够获取相对靠近车辆(例如,10m或20m之内)的对象的图像,而其它图像捕获设备(例如,图像捕获设备124和图像捕获设备126)能够获取离车辆200更遥远(例如,大于20m、50m、100m、150m等等)的对象的图像。

根据一些实施例,一个或多个图像捕获设备122、124、和126的fov可以具有广角。例如,具有140度的fov可以是有益的,尤其对于可以用来捕获在车辆200附近的区域的图像的图像捕获设备122、124、和126。例如,图像捕获设备可以被用来捕获车辆200右或左的区域的图像,并且在这样的实施例中,图像捕获设备122具有宽fov(例如,至少140度)可以是想要的。

与图像捕获设备122、124、和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,相应的视场减小。

图像捕获设备122、124、和126可以被配置为具有任何合适的视场。在一个特定的示例中,图像捕获设备122可以具有46度的水平fov、图像捕获设备124可以具有23度的水平fov、以及图像捕获设备126可以具有23度至46度之间的水平fov。在另一实例中,图像捕获设备122可以具有52度的水平fov、图像捕获设备124可以具有26度的水平fov、以及图像捕获设备126可以具有26度至52度之间的水平fov。在一些实施例中,图像捕获设备122的fov与图像捕获设备124和/或图像捕获设备126的fov的比率可以在1.5到2.0之间变化。在其它实施例中,该比率可以在1.25和2.25之间变化。

系统100可以被配置,从而图像捕获设备122的视场至少部分地或完全地与图像捕获设备124和/或图像捕获设备126的视场重叠。在一些实施例中,系统100可以被配置,从而图像捕获设备124和图像捕获设备126的视场,例如,落入图像捕获设备122的视场之内(例如,比图像捕获设备122的视场窄)并且与图像捕获设备122的视场共享共同的中心。在其它实施例中,图像捕获设备122、124、和126可以捕获相邻的fov,或可以在它们的fov中具有部分的重叠。在一些实施例中,图像捕获设备122、124、和126的视场可以对齐,从而更窄fov的图像捕获设备124和/或图像捕获设备126的中心可以位于更宽fov的设备122的视场的下半部中。

图2f是与本公开实施例一致的示范性车辆控制系统的图示性表示。如图2f中指示的,车辆200可以包括节流系统220、制动系统230、和转向系统240。系统100可以通过一个或多个数据链路(例如,任何有线和/或无线链路、或用于发送数据的链路)向节流系统220、制动系统230、和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕获设备122、124、和126获取的图像的分析,系统100可以向节流系统220、制动系统230、和转向系统240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转弯、车道转变等等)。另外,系统100可以从节流系统220、制动系统230、和转向系统240中的一个或多个接收指示车辆200的操作状况的输入(例如,速率,车辆200是否正制动和/或转弯等等)。以下将结合图4-图7提供进一步细节。

如图3a中所示,车辆200还可以包括用于与车辆200的驾驶员或乘客交互的用户接口170。例如,车辆应用中的用户接口170可以包括触摸屏320、旋钮330、按钮340、和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的驾驶杆上或附近,包括,例如,转弯信号手柄)、按钮(例如,位于车辆200的方向盘上)等等,以与系统100交互。在一些实施例中,麦克风350可以被放置为与后视镜310相邻。相似地,在一些实施例中,图像捕获设备122可以位于靠近后视镜310。在一些实施例中,用户接口170还可以包括一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警告)。

图3b-图3d是与公开的实施例一致的、被配置为放置在后视镜后面并倚靠车辆挡风玻璃的示范性相机架370的例示。如图3b中所示,相机架370可以包括图像捕获设备122、124、和126。图像捕获设备124和图像捕获设备126可以被放置在遮光板380的后面,所述遮光板380可以与车辆挡风玻璃齐平并且包括薄膜和/或抗反射材料的组合物。例如,遮光板380可以被放置使得它与具有匹配的斜率的车辆挡风玻璃对齐。在一些实施例中,图像捕获设备122、124、和126中的每一个可以被放置在遮光板380的后面,例如,如图3d中描绘的。所公开的实施例不限于图像捕获设备122、124、和126、相机架370、以及遮光板380的任何特定配置。图3c是从前视角的、图3b中所示的相机架370的例示。

如受益于本公开的本领域技术人员将领会的,可以对前述公开实施例做出很多变化和/或修改。例如,并非所有组件对于系统100的操作都是必需的。另外,任何组件可以位于系统100的任何适当的部分,并且在提供本公开实施例的功能的同时,组件可以被重新排列为各种配置。因此,前述配置是示例,并且不管以上所讨论的配置如何,系统100能够提供宽范围的功能,以分析车辆200的周围环境并且响应于该分析导航车辆200。

如以下更详细地讨论和与各种公开的实施例一致的,系统100可以提供与自主驾驶和/或驾驶员协助技术有关的各种特征。例如,系统100可以分析图像数据、位置数据(例如,gps位置信息)、地图数据、速率数据、和/或来自被包括在车辆200中的传感器的数据。系统100可以从,例如,图像获取单元120、位置传感器130、和其它传感器收集用于分析的数据。另外,系统100可以分析所收集的数据以确定车辆200是否应该采取某一行动,然后在没有人的干预的情况下自动地采取所确定的行动。例如,当车辆200在没有人的干预的情况下导航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向节流系统220、制动系统230、和转向系统240中的一个或多个传送控制信号)。另外,系统100可以分析所收集的数据,并且基于对所收集数据的分析向车辆乘员发出警告和/或警报。以下提供由系统100提供的关于各种实施例的额外细节。

前向多成像系统

如以上所讨论的,系统100可以提供使用多相机系统的驾驶协助功能。多相机系统可以使用面向车辆前进方向的一个或多个相机。在其它实施例中,多相机系统可以包括面向车辆侧面或车辆后方的一个或多个相机。在一个实施例中,例如,系统100可以使用两相机成像系统,其中,第一相机和第二相机(例如,图像捕获设备122和图像捕获设备124)可以被放置在车辆(例如,车辆200)的前面和/或侧面。第一相机可以具有大于、小于第二相机的视场,或与第二相机的视场部分重叠的视场。此外,第一相机可以被连接到第一图像处理器以执行对由第一相机提供的图像的单目图像分析,并且第二相机可以被连接到第二图像处理器以执行对由第二相机提供的图像的单目图像分析。可以组合第一图像处理器和第二图像处理器的输出(例如,经处理的信息)。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,系统100可以使用三相机成像系统,其中相机中的每一个具有不同的视场。因此,这样的系统可以基于从位于车辆前方和侧面两者的不同距离的对象推导出的信息来做出决定。对单目图像分析的参考可以指代其中基于从单个视点(例如,从单个相机)捕获的图像来执行图像分析的实例。立体图像分析可以指代其中基于利用图像捕获参数的一个或多个变型而捕获的两个或更多个图像来执行图像分析的实例。例如,适于执行立体图像分析的被捕获的图像可以包括:从两个或更多个不同位置捕获的图像、从不同视场捕获的图像、使用不同焦距捕获的图像、与视差信息一起所捕获的图像等等。

例如,在一个实施例中,系统100可以使用图像捕获设备122-126实施三个相机配置。在这样的配置中,图像捕获设备122可以提供窄的视场(例如,34度、或从大约20度至45度的范围选择的其它值等),图像捕获设备124可以提供宽的视场(例如,150度、或从大约100度至大约180度的范围选择的其它值),以及图像捕获设备126可以提供中间视场(例如,46度、或从大约35度至大约60度的范围选择的其它值)。在一些实施例中,图像捕获设备126可以担当主要或首要相机。图像捕获设备122-126可以被放置在后视镜310后面,并且基本上被并排放置(例如,相距6cm)。另外,在一些实施例中,如以上所讨论的,图像捕获设备122-126中的一个或多个可以被安装在与车辆200的挡风玻璃齐平的遮光板380后面。做出这样的屏蔽以最小化来自汽车内部的任何反射对图像捕获设备122-126的影响。

在另一实施例中,如以上结合图3b和图3c所讨论的,宽视场相机(例如,以上示例中的图像捕获设备124)可以被安装为低于窄视场相机和主视场相机(例如,以上示例中的相机设备122和相机设备126)。此配置可以从宽视场相机提供自由视线。为减少反射,相机可以被安装在靠近车辆200的挡风玻璃,并且可以在相机上包括偏振镜以抑制反射光。

三相机系统可以提供某些性能特性。例如,一些实施例可以包括基于来自一个相机的检测结果来验证另一相机对对象的检测的能力。在以上讨论的三相机配置中,处理单元110可以包括,例如,三个处理设备(例如,如以上讨论的,三个eyeq系列的处理芯片),每个处理设备专用于处理由图像捕获设备122-126中的一个或多个捕获的图像。

在三相机系统中,第一处理设备可以从主相机和窄视场相机两者接收图像,并且执行对窄fov相机的视觉处理以,例如,检测其它车辆、行人、车道标记、交通标志、交通灯、和其它道路对象。另外,第一处理设备可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3d重建。然后第一处理设备可以组合3d重建与3d地图数据、或组合3d重建与基于来自另一相机的信息计算出的3d信息。

第二处理设备可以从主相机接收图像,并且执行视觉处理以检测其它车辆、行人、车道标记、交通标志、交通灯、和其它道路对象。另外,第二处理设备可以计算相机位移,并且基于该位移,计算连续的图像之间的像素的视差并创建场景的3d重建(例如,运动恢复结构)。第二处理设备可以将基于运动恢复结构的3d重建传送到第一处理设备,以与立体3d图像组合。

第三处理设备可以从宽fov相机接收图像,并处理图像以检测车辆、行人、车道标记、交通标志、交通灯、和其它道路对象。第三处理设备还可以执行额外的处理指令以分析图像进而标识在图像中移动的对象,诸如正改变车道的车辆、行人等等。

在一些实施例中,具有独立被捕获和被处理的基于图像的信息的流可以提供用于在系统中提供冗余的机会。这样的冗余可以包括,例如,使用第一图像捕获设备和从那个设备处理的图像来验证和/或补充通过捕获和处理来自至少第二图像捕获设备的图像信息而获得的信息。

在一些实施例中,系统100可以将两个图像捕获设备(例如,图像捕获设备122和图像捕获设备124)用在向车辆200提供导航辅助,并且使用第三图像捕获设备(例如,图像捕获设备126)提供冗余并验证对从其它两个图像捕获设备接收的数据的分析。例如,在这样的配置中,图像捕获设备122和图像捕获设备124可以为导航车辆200提供用于通过系统100的立体分析的图像,而图像捕获设备126可以提供用于被系统100进行单目分析的图像以提供冗余和对基于从图像捕获设备122和/或图像捕获设备124捕获的图像而获得的信息的验证。也就是说,图像捕获设备126(和相应的处理设备)可以被考虑为提供冗余子系统,以用于提供对从图像捕获设备122和图像捕获设备124推导出的分析的检查(例如,提供自动紧急制动(automaticemergencybraking,aeb)系统)。

本领域技术人员将认识到,以上相机配置、相机安置、相机的数量、相机位置等等仅仅是示例。这些组件和相对于总体系统所描述的其它组件可以被组装,并且被用在各种不同的配置中而不脱离本公开实施例的范围。关于提供驾驶员协助和/或自主车辆功能的多相机系统的使用的进一步细节在下面描述。

图4是可以被存储/被编程具有用于执行与本公开实施例一致的一个或多个操作的指令的存储器140和/或存储器150的示范性功能性框图。虽然下面指代存储器140,但是本领域技术人员将认识到指令可以被存储在存储器140和/或存储器150中。

如图4中所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406、以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。另外,应用处理器180和/或图像处理器190可以执行被存储在被包括在存储器140中的模块402-模块408中的任何中的指令。本领域技术人员将理解在下面讨论中的对处理单元110的参考可以单独地或共同地指代应用处理器180和图像处理器190。因此,下面的过程中的任何的步骤可以由一个或多个处理设备来执行。

在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),所述指令当被处理单元110执行时,其执行对由图像捕获设备122、124、和126中的一个获取的图像的集合的单目图像分析。在一些实施例中,处理单元110可以组合来自图像的集合的信息与额外的传感信息(例如,来自雷达的信息)以执行单目图像分析。如以下结合图5a-图5d所描述的,单目图像分析模块402可以包括用于检测在图像的集合之内的诸如车道标记、车辆、行人、道路标志、公路出口坡道、交通灯、危险对象、和与车辆的环境相关联的任何其它特征的特征的集合的指令。基于该分析,系统100(例如,经由处理单元110)可以在车辆200中引起一个或多个导航响应,诸如转弯、车道转变、加速度的改变等等,如以下结合导航响应模块408的所讨论的。

在一个实施例中,立体图像分析模块404可以存储指令(诸如计算机视觉软件),所述指令当被处理单元110执行时,其执行对由从图像捕获设备122、124、和126中的任何所选择的图像捕获设备的组合而获取的图像的第一集合和第二集合的立体图像分析。在一些实施例中,处理单元110可以组合来自图像的第一集合和第二集合的信息与额外的传感信息(例如,来自雷达的信息)以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由第一捕获设备124获取的图像的第一集合和由图像捕获设备126获取的图像的第二集合来执行立体图像分析的指令。如以下结合图6所描述的,立体图像分析模块404可以包括用于检测在图像的第一集合和第二集合之内的诸如车道标记、车辆、行人、道路标志、公路出口坡道、交通灯、危险对象等等的特征的集合的指令。基于该分析,如以下结合导航响应模块408的所讨论的,处理单元110可以在车辆200中引起一个或多个导航响应,诸如转弯、车道转变、加速度的改变等等。

在一个实施例中,速度和加速度模块406可以存储被配置为分析从车辆200中的一个或多个计算和机电设备接收的数据的软件,所述一个或多个计算和机电设备被配置为引起车辆200的速度和/或加速度的改变。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的执行所推导出的数据来计算针对车辆200的目标速率。这样的数据可以包括,例如,目标位置、速度、和/或加速度、相对于附近车辆、行人、或道路对象的车辆200的位置和/或速率、相对于道路的车道标记的车辆200的位置信息等等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如车辆200的节流系统220、制动系统230、和/或转向系统240)的输入来计算车辆200的目标速率。基于计算出的目标速率,处理单元110可以向车辆200的节流系统220、制动系统230、和/或转向系统240发送电子信号,以通过,例如,物理地压下制动器或放松加速器来触发车辆200的速度和/或加速度的改变。

在一个实施例中,导航响应模块408可以存储可由处理单元110执行的软件,以基于从单目图像分析模块402和/或立体图像分析模块404的执行而推导出的数据来确定期望的导航响应。这样的数据可以包括与附近车辆、行人、和道路对象相关联的位置和速率信息,车辆200的目标位置信息等等。另外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或从单目图像分析模块402和/或立体图像分析模块404的执行而检测到的车辆200和一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如车辆200的节流系统220、制动系统230、和/或转向系统240)的输入来确定期望的导航响应。基于所期望的导航响应,处理单元110可以向车辆200的节流系统220、制动系统230、和转向系统240发送电子信号,以通过,例如,转动车辆200的方向盘以实现预定角度的旋转来触发期望的导航响应。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为用于计算车辆200的速率的改变的速度和加速度模块406的执行的输入。

图5a是示出与本公开实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示范性过程500a的流程图。在步骤510,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,被包括在图像获取单元120中的相机(诸如具有视场202的图像捕获设备122)可以捕获车辆200前方区域(或,例如,车辆侧面和后方的区域)的多个图像,并且通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送它们。处理单元110可以在步骤520执行单目图像分析模块402以分析多个图像,如以下结合图5b-图5d的更详细地描述的。通过执行该分析,处理单元110可以检测在图像的集合之内的特征的集合,诸如车道标记、车辆、行人、道路标志、公路出口坡道、交通灯等等。

处理单元110还可以在步骤520运行单目图像分析模块402以检测各种道路危险,诸如,例如,卡车轮胎的部分,坠落的道路标志,散货,小动物等等。道路危险可以在结构、形状、尺寸、和色彩方面变化,其可以使得对这样的危险的检测更具挑战性。在一些实施例中,处理单元110可以运行单目图像分析模块402,以对多个图像执行多帧分析,进而检测道路危险。例如,处理单元110可以估计在连续的图像帧之间的相机运动并且计算在帧之间的像素中的视差,以构建道路的3d地图。然后处理单元110可以使用3d地图检测道路表面以及道路表面上存在的危险。

在步骤530,处理单元110可以运行导航响应模块408以基于在步骤520执行的分析和如以上结合图4所述的技术,在车辆200中引起一个或多个导航响应。导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的运行推导出的数据来引起一个或多个导航响应。另外,多个导航响应可以同时发生、按顺序发生、或它们的任何组合。例如,处理单元110可以通过,例如,顺序地向车辆200的转向系统240和节流系统220发送控制信号来引起车辆200转移一个车道并且然后加速。可替换地,处理单元110可以通过,例如,同时向车辆200的制动系统230和转向系统240发送控制信号,以在偏移车道的同时引起车辆200制动。

图5b是示出与本公开实施例一致的、用于在图像的集合中检测一个或多个车辆和/或行人的示范性过程500b的流程图。处理单元110可以运行单目图像分析模块402以实施过程500b。在步骤540,处理单元110可以确定表示可能的车辆、和/或行人的候选对象的集合。例如,处理单元110可以扫描一个或多个图像,将图像和一个或多个预定图案进行比较,并且在每个图像之内标识可以包含感兴趣的对象(例如,车辆、行人、或它们的部分)的可能的位置。该预定图案可以以这样的方式来设计以实现高“假命中”率和低“遗漏”率。例如,处理单元110可以将相似度的低阈值用于预定图案,来标识候选对象作为可能的车辆或行人。这样做可以允许处理单元110减小遗漏(例如,没有标识)表示车辆或行人的候选对象的概率。

在步骤542,处理单元110可以基于分类准则过滤候选对象的集合以排除某些候选(例如,不相关或不太相关的对象)。可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性推导出这样的准则。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等等。因此,处理单元110可以使用准则的一个或多个集合从候选对象的集合拒绝错误候选。

在步骤544,处理单元110可以分析图像的多个帧以确定在候选对象的集合中的对象是否表示车辆和/或行人。例如,处理单元110可以跨越连续的帧跟踪被检测的候选对象,并逐帧积累与所检测对象相关联的数据(例如,相对于车辆200的尺寸、位置等等)。另外,处理单元110可以估计所检测对象的参数,并且将对象的逐帧位置数据和预定的位置进行比较。

在步骤546,处理单元110可以构建对于所检测对象的测量的集合。这样的测量可以包括,例如,与所检测的对象相关联的位置、速度、和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列诸如卡尔曼滤波器或线性二次估计(linearquadraticestimation,lqe)的基于时间的观察的估计技术、和/或基于对于不同的对象类型(例如,汽车、卡车、行人、自行车、道路标志等等)可用的建模数据来构建测量。卡尔曼滤波器可以基于对象的尺度的测量,其中尺度测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过执行步骤540-步骤546,处理单元110可以标识出现在被捕获的图像的集合之内的车辆和行人,并且导出与车辆和行人相关联的信息(例如,位置、速率、尺寸)。基于该标识和所导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如以上结合图5a所描述的。

在步骤548,处理单元110可以执行对一个或多个图像的光流分析以减小检测“假命中”和遗漏表示车辆或行人的候选对象的概率。光流分析可以指代,例如,在与其它车辆和行人相关联的一个或多个图像中分析相对于车辆200的运动模式,并且所述运动模式与道路表面运动不同。处理单元110可以通过跨不同时间捕获的多个图像帧观察对象的不同的位置,来计算候选对象的运动。处理单元110可以将该位置和时间值用作向用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测在车辆200附近的车辆和行人的另一方法。处理单元110可以结合步骤540-步骤546执行光流分析,以提供用于检测车辆和行人的冗余并且增加系统100的可靠性。

图5c是示出与公开的实施例一致的、用于在图像的集合中检测道路标记和/或车道几何信息的示范性过程500c的流程图。处理单元110可以运行单目图像分析模块402以实施过程500c。在步骤550,处理单元110可以通过扫描一个或多个图像来检测对象的集合。为了检测车道标记、车道几何信息、和其它相关的道路标记的片段,处理单元110可以过滤对象的集合以排除确定为不相关的那些(例如,小凹坑,小石头等等)。在步骤552,处理单元110可以把在步骤550中检测到的、属于相同道路标记或车道标记的片段分为一组。基于分组,处理单元110可以开发表示检测到的片段的模型,诸如数学模型。

在步骤554,处理单元110可以构建与检测到的片段相关联的测量的集合。在一些实施例中,处理单元110可以创建检测到的片段从图像平面到现实世界平面上的投影。可以使用具有与物理属性(诸如检测的道路的位置、斜率、曲率、和曲率导数)相对应的系数的三次多项式来表示该投影的特征。在生成投影时,处理单元110可以考虑道路表面的改变,以及与车辆200相关联的俯仰和滚转速率。此外,处理单元110可以通过分析道路表面上所呈现的位置和运动线索来建模道路标高。另外,处理单元110可以通过跟踪在一个或多个图像中的特征点的集合来估计与车辆200相关联的间距和滚转速率。

在步骤556,处理单元110可以通过,例如,跨越连续的图像帧跟踪检测到的片段和逐帧积累与检测到的片段相关联的数据来执行多帧分析。随着处理单元110执行多帧分析,在步骤554构建的测量的集合可以变得更可靠,并且与增加的更高的置信水平相关联。因此,通过执行步骤550-步骤556,处理单元110可以标识出现在被捕获的图像的集合之内的道路标记,并且导出车道几何信息。基于该标识和所导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如以上结合图5a所描述的。

在步骤558,处理单元110可以考虑额外来源的信息,以进一步开发在车辆200周围的环境中的车辆200的安全模型。处理单元110可以使用该安全模型,来定义在其中系统100可以以安全方式执行车辆200的自主控制的上下文。为了开发安全模型,在一些实施例中,处理单元110可以考虑其它车辆的位置和运动、检测到的道路边缘和障碍、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑额外来源的信息,处理单元110可以为检测道路标记和车道几何提供冗余,并且增加系统100的可靠性。

图5d是示出与公开的实施例一致的、用于在图像的集合中检测交通灯的示范性过程500d的流程图。处理单元110可以执行单目图像分析模块402以实施过程500d。在步骤560,处理单元110可以扫描图像的集合并且标识可能包含交通灯的、在图像中的位置出现的对象。例如,处理单元110可以过滤所标识的对象,以构建排除不太可能对应于交通灯的那些对象的候选对象的集合。可以基于与交通灯相关联的诸如形状、大小、纹理、位置(例如,相对于车辆200)等等的各种属性来进行过滤。这样的属性可以基于交通灯和交通控制信号的多个示例,并且可以被存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的候选对象的集合执行多帧分析。例如,处理单元110可以跨越连续的图像帧跟踪候选对象、估计候选对象的真实世界位置、并且过滤掉正在运动的那些对象(其不太可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行色彩分析,并且标识在可能的交通灯内部出现的检测到的色彩的相对位置。

在步骤562,处理单元110可以分析枢纽的几何。分析可以基于以下各项的任何组合:(i)在车辆200的任一侧检测到的车道的数量;(ii)道路上检测到的标记(诸如箭头标记);(iii)从地图数据(诸如来自地图数据库160的数据)提取的对枢纽的描述。处理单元110可以使用从单目分析模块402的运行推导出的信息来进行该分析。此外,处理单元110可以确定在步骤560检测到的交通灯和在车辆200附近出现的车道之间的对应。

随着车辆200接近枢纽,在步骤564,处理单元110可以更新与所分析的枢纽几何和检测到的交通灯相关联的置信水平。例如,将估计要在枢纽处出现的交通灯的数量与实际在枢纽处出现的交通灯的数量进行比较,可以影响置信水平。因此,基于置信水平,处理单元110可以将控制委派给车辆200的驾驶员,以便改进安全条件。通过执行步骤560-步骤564,处理单元110可以标识出现在被捕获的图像的集合之内的交通灯,并且分析枢纽几何信息。基于该标识和分析,处理单元110可以在车辆200中引起一个或多个导航响应,如以上结合图5a所描述的。

图5e是示出与本公开实施例一致的、用于基于车辆路径在车辆200中引起一个或多个导航响应的示范性过程500e的流程图。在步骤570,处理单元110可以构建与车辆200相关联的初始路径。车辆路径可以使用以坐标表达的点(x,z)的集合来表示车辆路径,并且在点的集合中的两个点之间的距离di可以落入1至5米的范围内。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算两个多项式之间的几何中点,并且如果有的话,按照预定的偏移(例如,智能车道偏移)来偏移被包括在合成的车辆路径中的每个点(偏移为零可以对应于在车道中间行驶)。该偏移可以在垂直于车道路径中的任何两个点之间的线段的方向上。在另一实施例中,处理单元110可以使用一个多项式和估计的车道宽度将车辆路径的每个点偏移所估计的车道宽度的一半加上预定的偏移(例如,智能车道偏移)。

在步骤572,处理单元110可以更新在步骤570处构建的车辆路径。处理单元110可以使用更高的分辨率重建在步骤570处构建的车辆路径,从而在表示车辆路径的点的集合中的两点之间的距离dk小于上述距离di。例如,距离dk可以落入0.1至0.3米的范围内。处理单元110可以使用抛物线样条算法重建车辆路径,其可以得出对应于车辆路径的总长度(例如,基于表示车辆路径的点的集合)的累积距离向量s。

在步骤574,处理单元110可以基于在步骤572处重建的更新后的车辆路径来确定前瞻点(look-aheadpoint)(以坐标表达为(xl,zl))。处理单元110可以从累积距离向量s提取前瞻点,并且前瞻点可以与前瞻距离和前瞻时间相关联。可以具有在10米至20米范围内变动的下限的前瞻距离可以被计算为车辆200的速率和前瞻时间的乘积。例如,当车辆200的速率减小时,前瞻距离也可以减小(例如,直到它达到下限)。可以在0.5至1.5秒的范围内变动的前瞻时间,可以和与在车辆200中引起导航响应相关联的一个或多个控制环路(诸如航向误差跟踪控制回路)的增益成反比。例如,航向误差跟踪控制回路的增益可以取决于横摆角速度回路、转向传动回路、汽车横向动力学等等。因此,航向误差跟踪控制回路的增益越高,前瞻时间越小。

在步骤576,处理单元110可以基于在步骤574处确定的前瞻点来确定航向误差和横摆角速度命令。处理单元110可以通过计算前瞻点的反正切(例如,arctan(xl/zl))来确定航向误差。处理单元110可以将横摆角速度命令确定为航向误差和高水平控制增益的乘积。如果前瞻距离不在下限处,则高水平控制增益可以等于:(2/前瞻时间)。否则,高水平控制增益可以等于:(2*车辆200的速率/前瞻距离)。

图5f是示出与本公开实施例一致的、用于确定前方车辆是否正改变车道的示范性过程500f的流程图。在步骤580,处理单元110可以确定与前方车辆(例如,行驶在车辆200之前的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5a和5b所描述的技术来确定前方车辆的位置、速度(例如,方向和速率)、和/或加速度。处理单元110还可以使用以上结合图5e所描述的技术来确定一个或多个道路多项式、前瞻点(与车辆200相关联的)、和/或蜗牛踪迹(snailtrail)(例如,描述前方车辆采取的路径的点的集合)。

在步骤582,处理单元110可以分析在步骤580处确定的导航信息。在一个实施例中,处理单元110可以计算蜗牛踪迹和道路多项式(例如,沿着踪迹)之间的距离。如果沿着踪迹的该距离的方差超过预定阈值(例如,在直路上0.1至0.2米、在中等弯路上0.3至0.4米、以及在具有急转弯的道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正改变车道。在多个车辆被检测到在车辆200之前行驶的情况下,处理单元110可以比较与每个车辆相关联的蜗牛踪迹。基于该比较,处理单元110可以确定蜗牛踪迹与其它车辆的蜗牛踪迹不匹配的车辆很可能正改变车道。处理单元110可以额外地将蜗牛踪迹的曲率(与前方车辆相关联的)与前方车辆正在其中行驶的路段的期望曲率进行比较。可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其它车辆的蜗牛踪迹、从关于道路的先验知识等等提取期望曲率。如果蜗牛踪迹的曲率和路段的期望曲率的差异超过预定阈值,则处理单元110可以确定前方车辆很可能正改变车道。

在另一实施例中,处理单元110可以在特定时间段(例如,0.5到1.5秒)将前方车辆的瞬时位置和前瞻点(与车辆200相关联的)进行比较。如果前方车辆的瞬时位置和前瞻点之间的距离在特定时间段内变化,并且该变化的累积和超过预定阈值(例如,在直路上0.3至0.4米、在中等弯路上0.7至0.8米、以及在具有急转弯的道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正改变车道。在另一实施例中,处理单元110可以通过比较沿着踪迹行驶的横向距离与蜗牛踪迹的期望曲率来分析蜗牛踪迹的几何。可以根据以下计算来确定曲率的期望半径:(δz2+δx2)/2/(δx),其中,δx表示行驶的横向距离,且δz表示行驶的纵向距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正改变车道。在另一实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置使道路多项式模糊(例如,前方车辆覆盖在道路多项式的顶部),那么处理单元110可以确定前方车辆很可能正改变车道。在前方车辆的位置是这样、另一车辆被检测到在前方车辆之前、并且这两个车辆的蜗牛踪迹不并行的情况下,处理单元110可以确定(更靠近的)前方车辆很可能正改变车道。

在步骤584,处理单元110可以基于在步骤582处执行的分析来确定前方车辆200是否正改变车道。例如,处理单元110可以基于在步骤582处执行的各个分析的加权平均来做出确定。在这样的方案下,例如,由处理单元110基于特定类型的分析的、前方车辆很可能正改变车道的决定可以被分配值“1”(且“0”表示前方车辆不大可能正改变车道的确定)。在步骤582处执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定的组合。

图6是示出与公开的实施例一致的、用于基于立体图像分析引起一个或多个导航响应的示范性过程600的流程图。在步骤610,处理单元110可以经由数据接口128接收第一多个图像和第二多个图像。例如,被包括在图像获取单元120中的相机(诸如具有视场202的图像捕获设备122和具有视场204的图像捕获设备124)可以捕获车辆200的前方区域的第一多个图像和第二多个图像并且将它们通过数字连接(例如,usb、无线、蓝牙等等)发送到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收第一多个图像和第二多个图像。所公开的实施例不限于任何特定数据接口配置或协议。

在步骤620,处理单元110运行立体图像分析模块404以执行对第一多个图像和第二多个图像的立体图像分析,进而创建在车辆前面的道路的3d地图并且检测在图像之内的诸如车道标记、车辆、行人、道路标志、公路出口坡道、交通灯、道路危险等等的特征。可以以与以上结合图5a-图5d所描述的步骤相似的方式来执行立体图像分析。例如,处理单元110可以运行立体图像分析模块404以检测在第一多个图像和第二多个图像之内的候选对象(例如,车辆、行人、道路标记、交通灯、道路危险等等),基于各种准则过滤掉候选对象的子集,并且执行多帧分析,构建测量,并且确定对于剩余候选对象的置信水平。在执行以上步骤时,处理单元110可以考虑来自第一多个图像和第二多个图像两者信息,而不是来自图像的单独一个集合的信息。例如,处理单元110可以对出现在第一多个图像和第二多个图像两者中的候选对象分析在像素级数据(或从被捕获图像的两个流当中的其它数据子集)中的差异。作为另一示例,处理单元110可以通过观察对象在所述多个图像中的一个中出现而在另一多个图像中不出现,或相对于其它差异(所述其它差异是相对于出现在两个图像流中的对象之间可能存在的差异)来估计候选对象的位置和/或速度(例如,相对于车辆200)。例如,可以基于与出现在图像流中的一个或两者中的对象相关联的轨迹、位置、移动特性等等的特征来确定相对于车辆200的位置、速度、和/或加速度。

在步骤630,处理单元110可以运行导航响应模块408以基于在步骤620执行的分析和如以上结合图4所描述的技术,在车辆200中引起一个或多个导航响应。导航响应可以包括,例如,转弯、车道转变、加速度的改变、速度的改变、制动等等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的运行推导出的数据来引起一个或多个导航响应。另外,多个导航响应可以同时发生、按顺序发生、或它们的任何组合。

图7是示出与公开的实施例一致的、用于基于对图像的三个集合的分析来引起一个或多个导航响应的示范性过程700的流程图。在步骤710,处理单元110可以经由数据接口128接收第一多个图像、第二多个图像、和第三多个图像。例如,被包括在图像获取单元120中的相机(诸如具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、和具有视场206的图像捕获设备126)可以捕获车辆200的前方和/或侧面区域的第一多个图像、第二多个图像、和第三多个图像并且将它们通过数字连接(例如,usb、无线、蓝牙等等)发送到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一多个图像、第二多个图像、和第三多个图像。例如,图像捕获设备122、124、和126中的每一个可以具有用于向处理单元110通信传达数据的相关联的数据接口。所公开的实施例不限于任何特定数据接口配置或协议。

在步骤720,处理单元110可以分析第一多个图像、第二多个图像、和第三多个图像,以检测在图像之内的诸如车道标记、车辆、行人、道路标志、公路出口坡道、交通灯、道路危险等等的特征。可以以与以上结合图5a-图5d和图6所描述的步骤相似的方式来执行该分析。例如,处理单元110可以(例如,经由单目图像分析模块402的运行、和基于以上结合图5a-图5d所描述的步骤)对第一多个图像、第二多个图像、和第三多个图像中的每一个执行单目图像分析。可替换地,处理单元110可以(例如,经由立体图像分析模块404的运行、和基于以上结合图6所描述的步骤)对第一多个图像和第二多个图像、第二多个图像和第三多个图像、和/或第一多个图像和第三多个图像执行立体图像分析。可以组合与第一、第二、和/或第三多个图像分析相对应的经处理的信息。在一些实施例中,处理单元110可以执行单目图像分析和立体图像分析的组合。例如,处理单元110可以(例如,经由单目图像分析模块402的运行)对第一多个图像执行单目图像分析,并且(例如,经由立体图像分析模块404的运行)对第二和第三多个图像执行立体图像分析。图像捕获设备122、124、和126的配置-包括它们各自的位置以及视场202、视场204、和视场206-可以影响对第一多个图像、第二多个图像、和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕获设备122、124、和126的特定配置或对第一多个图像、第二多个图像、和第三多个图像进行的分析的类型。

在一些实施例中,处理单元110可以基于在步骤710和720处获取和分析的图像来对系统100执行测试。这样的测试可以提供针对图像捕获设备122、124、和126的某些配置的系统100的总体性能的指示。例如,处理单元110可以确定“假命中”(例如,系统100不正确地确定了车辆或行人的呈现的情况)和“遗漏”的比例。

在步骤730,处理单元110可以基于从第一多个图像、第二多个图像、和第三多个图像中的两个推导出的信息,在车辆200中引起一个或多个导航响应。对第一多个图像、第二多个图像、和第三多个图像中的两个的选择可以取决于各种因素,诸如,例如,在多个图像中的每一个中检测到的对象的数量、类型、和尺寸。处理单元110还可以基于图像质量和分辨率、图像中反映的有效视场、被捕获帧的数量、感兴趣的一个或多个对象实际出现在帧中的程度(例如,其中对象出现的帧的百分比、在每个这样的帧中出现的对象的比例)等等做出选择。

在一些实施例中,处理单元110可以通过确定从一个图像来源推导出的信息与从其它图像推导出的信息的一致程度,来选择从第一多个图像、第二多个图像、和第三多个图像中的两个推导出的信息。例如,处理单元110可以组合从图像捕获设备122、124、和126中的每一个推导出的经处理的信息(无论通过单目分析、立体分析、还是这两个的组合),并且确定跨从图像捕获设备122、124、和126中的每一个捕获的图像一致的可视指示符(例如,车道标记、检测到的车辆以及它的位置和/或路径、检测到的交通灯等等)。处理单元110还可以排除跨所捕获的图像不一致的信息(例如,改变车道的车辆、指示太靠近车辆200的车辆的车辆模型等等)。因此,处理单元110可以基于一致和不一致信息的确定来选择从第一多个图像、第二多个图像、和第三多个图像中的两个推导出的信息。

导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。处理单元110可以基于在步骤720处执行的分析和如以上结合图4所述的技术来引起一个或多个导航响应。处理单元110还可以使用从速度和加速度模块406的运行推导出的数据来引起一个或多个导航响应。在一些实施例中,处理单元110可以基于车辆200和在第一多个图像、第二多个图像、和第三多个图像中的任何之内检测到的对象之间的相对位置、相对速度、和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时发生、按顺序发生、或它们的任何组合。

用于自主车辆导航的稀疏道路模型

在一些实施例中,所公开的系统和方法可以将稀疏地图用于自主车辆导航。例如,稀疏地图可以提供用于导航自主车辆的足够的信息而不存储和/或更新大量数据。如以下更详细地讨论的,自主车辆可以使用稀疏地图以基于一个或多个轨迹导航一个或多个道路。

用于自主车辆导航的稀疏地图

在一些实施例中,所公开的系统和方法可以将稀疏地图用于自主车辆导航。例如,稀疏地图可以为导航提供充足的信息而不要求过多的数据存储或数据传递速率。如以下更详细地讨论的,车辆(可以是自主车辆)可以使用稀疏地图来导航一个或多个道路。例如,在一些实施例中,稀疏地图可以包括可以是对于车辆导航足够的、但也展示出小的数据足迹(datafootprint)的、与道路和沿着道路的潜在地标有关的数据。例如,与包括诸如沿着道路收集的图像数据的详细地图信息的数字地图相比,以下详细描述的稀疏数据地图可以要求显著更少的存储空间和数据传递带宽。例如,稀疏地图可以存储沿着道路的优选车辆路径的三维多项式表示,而不是存储路段的详细表示。这些路径可以要求非常小的数据存储空间。另外,在所描述的稀疏数据地图中,地标可以被标识并且可以被包括在稀疏地图道路模型中以辅助导航。这些地标可以位于适于使得车辆导航能够实现的任何间隔处,但是在有些情况下,在高密度和短间隔处,这样的地标不需要被标识和被包括在模型中。相反,在有些情况下,基于间隔为至少50米、至少100米、至少500米、至少1千米、或至少2千米的地标,导航可以是可能的。如将在其它部分更详细地讨论的,当车辆沿着路面行驶时,可以基于由配备有诸如图像捕获设备、全球定位系统传感器、运动传感器等等的各种传感器和设备的车辆收集和测量的数据来生成稀疏地图。在有些情况下,可以基于在一个或多个车辆沿着特定路面的多个驾驶期间收集到的数据来生成稀疏地图。

与本公开实施例一致的,自主车辆系统可以将稀疏地图用于导航。在稀疏地图的核心处,一个或多个三维轮廓可以表示当自主车辆沿着相关联路段移动时它们可以穿越的预定轨迹。稀疏地图还可以包括表示一个或多个道路特征的数据。这样的道路特征可以包括:识别的地标、道路签名轮廓、和在导航车辆时有用的道路有关的其它特征。稀疏地图可以基于被包括在稀疏地图中的相对少量的数据,使得能够进行车辆的自主导航。例如,所公开的稀疏地图的实施例可以要求相对少量的存储空间,而不是包括诸如道路边缘、道路曲率、与路段相关联的图像、或详述与路段相关联的其它物理特征的数据的道路的详细表示,但是仍然可以充分地为自主车辆导航提供。可以通过存储要求小量数据但仍使得能够进行自主导航的道路有关的元素,来在一些实施例中实现以下更详细地讨论的所公开的稀疏地图的小数据足迹。例如,所公开的稀疏地图可以存储车辆可以沿着道路遵循的一个或多个轨迹的多项式表示,而不是存储道路的各方面的详细表示。因此,不是存储(或必须传递)关于使得能够进行沿着道路的导航的道路的物理性质的细节,而是使用所公开的稀疏地图,可以沿着特定路段导航车辆,而无需,在有些情况下,必须解释道路的物理方面,而是通过将它的行驶路径与沿着特定路段的轨迹(例如,多项式样条)对齐。以这种方式,可以主要基于所存储的轨迹(例如,多项式样条)来导航车辆,其可以比涉及路面图像、道路参数、道路布局的存储的方案要求更少的存储空间。

除了所存储的沿着路段的轨迹的多项式表示之外,所公开的稀疏地图还可以包括可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包括从由在沿着道路行驶的车辆上的传感器(例如,相机、或诸如悬架传感器的其它传感器)获得的数字图像(或数字信号)推导出的数字签名。数字签名可以具有相对于由传感器获取的信号而言的减小的尺寸。在一些实施例中,数字签名可以被创建以与分类功能兼容,所述分类功能被配置为从由传感器,例如,在随后的驾驶期间,获取的信号中检测和标识道路特征。在一些实施例中,数字签名可以被创建,从而具有尽可能小的占用(footprint),同时保持基于由在随后的时间沿着相同路段行驶的车辆上的相机捕获的道路特征的图像(或如果所存储的签名不是基于图像和/或包括其它数据,则是由传感器生成的数字信号)将道路特征与所存储的签名相关联或相匹配的能力。在一些实施例中,数据对象的尺寸还可以与道路特征的独特性相关联。例如,对于可由在车辆上的相机检测到的道路特征而言,并且其中车辆上的相机系统被耦合到分类器,所述分类器能够将对应于道路特征的图像数据区分为与道路特征的特定类型(例如,道路标志)相关联,并且其中,这样的道路标志在那个区域中是局部独特的(例如,附近不存在相同的道路标志或相同类型的道路标志),足以存储指示该道路特征的类型和它的位置数据。

如以下将更详细地讨论的,道路特征(例如,沿着路段的地标)可以被存储为可以以相对少的字节来表示道路特征的小数据对象,同时提供用于识别的足够的信息并将这样的特征用于导航。正好在一个示例中,道路标志可以被标识为已识别地标,车辆的导航可以基于该道路标志。可以在稀疏地图中存储道路标志的表示以包括,例如,指示地标类型(例如,停车标志)的几个字节的数据和指示地标位置的几个字节的数据。基于地标的这样的轻量数据表示(例如,使用基于地标的足以定位、识别、和导航的表示)的导航可以提供与稀疏地图相关联导航功能的期望水平,而不显著地增加与稀疏地图相关联的数据开销。地标(和其它道路特征)的这种精益表示可以利用被包括在这样的车辆上的、被配置为检测、标识、和/或分类某些道路特征的传感器和处理器。当,例如,标志或甚至标志的特定类型在给定区域中是本独特的(例如,当不存在其它标志或相同类型的其它标志)时,稀疏地图可以使用指示地标类型的数据(标志或标志的特定类型),并且在导航(例如,自主导航)期间,当在自主车辆上的相机捕获到包括标志的区域的图像(或特定类型的标志的图像)时,处理器可以处理该图像、检测该标志(如果确实呈现在图像中)、将它分类为标志(或分类为特定类型的标志),并且将它的位置与被存储在稀疏地图中的标志的位置相关联。

在一些实施例中,自主车辆可以包括车辆本体;以及处理器,其被配置为接收被包括在稀疏地图中的数据,并且生成用于基于稀疏地图中的数据来沿着路段导航车辆的导航指令。

图8示出车辆200(可以是自主车辆)可以访问的、用于提供自主车辆导航的稀疏地图800。稀疏地图800可以被存储在诸如存储器140或存储器150的存储器中。这样的存储器设备可以包括任何类型的非瞬时性存储设备或计算机可读介质。例如,在一些实施例中,存储器140或存储器150可以包括硬盘驱动器、光盘、快闪存储器、基于磁的存储器设备、基于光学的存储器设备等等。在一些实施例中,稀疏地图800可以被存储在数据库中(例如,地图数据库160),所述数据库可以被存储在存储器140或存储器150、或其它类型的存储设备中。

在一些实施例中,稀疏地图800可以被存储在车辆200上提供的存储设备或非瞬时性计算机可读介质上(例如,被包括在车辆200上的导航系统中的存储设备)。在车辆200上提供的处理器(例如,处理单元110)可以访问被存储在车辆200上提供的存储设备或计算机可读介质中的稀疏地图800,以便生成用于当自主车辆200穿过路段时用于引导它的导航指令。

然而,针对车辆,稀疏地图800不需要被本地存储。在一些实施例中,稀疏地图800可以被存储在与车辆200通信的远程服务器上或与车辆200相关联的设备上提供的存储设备或计算机可读介质上。车辆200上提供的处理器(例如,处理单元110)可以从远程服务器接收被包括在稀疏地图800中的数据,并且可以执行该数据以用于引导车辆200的自主驾驶。在这样的实施例中,稀疏地图800可以被制作为对穿越各种路段的多个车辆(例如,数十、数百、数千、或数百万车辆等等)可访问。还应该注意到,稀疏地图800可以包括多个子地图。例如,在一些实施例中,稀疏地图800可以包括能够用于导航车辆的数百、数千、数百万、或更多个子集。这样的子地图可以被称为本地地图,并且沿着路面行驶的车辆可以访问与车辆正行驶的位置相关的任意数量的本地地图。可以利用全球导航卫星系统(globalnavigationsatellitesystem,gnss)秘钥作为稀疏地图800的数据库的索引来存储稀疏地图800的本地地图部分。因此,虽然在当前系统中可以在没有对主车辆的gnss位置、道路特征、或地标的依赖的情况下执行对用于导航主车辆的转向角度的计算,但是这样的gnss信息可以被用于相关本地地图的检索。

在其它部分中详细说明数据的收集和稀疏地图800的生成。通常,然而,稀疏地图800可以基于当一个或多个车辆沿着路面行驶时从它们收集的数据来生成。例如,使用在一个或多个车辆上的传感器(例如,相机、速率计、gps、加速计等等),可以记录一个或多个车辆沿着路段行驶的轨迹,并且可以基于所收集的、由该一个或多个车辆行驶的轨迹来确定沿着路段进行随后行驶的车辆的优选轨迹的多项式表示。相似地,由一个或多个车辆收集的数据可以辅助标识沿着特定路段的潜在地标。从正在穿越的车辆收集的数据还可以用来标识诸如道路宽度轮廓、道路粗糙度轮廓、交通线间隔轮廓等等的道路轮廓信息。使用所收集的信息,可以生成和分发(例如,用于本地存储或经由即时数据传输)稀疏地图800,以便在导航一个或多个自主车辆中使用。然而,在初始生成了地图后,可以不结束地图生成。如在其它部分中将更详细地讨论的,可以在车辆继续穿越被包括在稀疏地图800中的路面时基于从那些车辆收集的数据,来连续地或周期地更新稀疏地图800。

记录在稀疏地图800中的数据可以包括基于全球定位系统(gps)数据的位置信息。例如,用于各种地图元素,包括,例如,地标位置、道路轮廓位置等等的位置信息可以被包括在稀疏地图800中。可以使用从穿越路面的车辆收集的gps数据来获得用于被包括在稀疏地图800中的地图元素的位置。例如,正在经过已标识地标的车辆可以使用与车辆相关联的gps位置信息以及已标识地标相对于车辆的位置的确定(例如,基于对从在车辆上的一个或多个相机收集的数据的图像分析)来确定已标识地标的位置。当额外的车辆经过已标识地标(或被包括在稀疏地图800中的任何其它特征)的位置时,可以重复这样的已标识地标的位置确定。额外的位置确定中的一些或全部能够用于完善相对于已标识地标的被存储在稀疏地图800中的位置信息。例如,在一些实施例中,相对于被存储在稀疏地图800中的特定特征的多个位置测量可以一起被平均。然而,基于用于地图元素的多个已确定的位置,还可以使用任何其它数学操作来完善地图元素的存储位置。

所公开的实施例的稀疏地图可以使得能够进行使用相对少量的存储数据的车辆的自主导航。在一些实施例中,稀疏地图800可以具有以下各项数据密度(包括表示目标轨迹、地标、和任何其它存储的道路特征的数据):道路的每千米小于2mb的数据密度、道路的每千米小于1mb的数据密度、道路的每千米小于500kb的数据密度、或道路的每千米小于100kb的数据密度。在一些实施例中,稀疏地图800的数据密度可以是:道路的每千米小于10kb、或甚至道路的每千米小于2kb(例如,每千米1.6kb),或道路的每千米不大于10kb、或道路的每千米不大于20kb。在一些实施例中,可以使用具有总共4gb或更少的数据来自主地导航美国大多数(如果不是所有)路面。这些数据密度值可以表示对整个稀疏地图800取平均、对稀疏地图800之内的本地地图取平均、和/或对稀疏地图800之内的特定路段取平均。

如已经提到的,稀疏地图800可以包括用于引导沿着路段自主驾驶或导航的多个目标轨迹810的表示。这样的目标轨迹可以被存储为三维样条。可以基于车辆沿着特定路段的在先穿越的两个或更多个重建的轨迹来确定被存储在稀疏地图800中的目标轨迹。路段可以与单个目标轨迹或多个目标轨迹相关联。例如,对双车道道路,可以存储第一目标轨迹以表示在第一方向上沿着道路行驶的期望路径,并且可以存储第二目标轨迹以表示在另一方向(例如,与第一方向相反)上沿着道路行驶的期望路径。针对特定路段,可以存储额外的目标轨迹。例如,关于多车道道路,可以存储一个或多个目标轨迹,其表示用于在与多车道道路相关联的一个或多个车道中的车辆的期望的行驶路径。在一些实施例中,多车道道路中的每个车道可以与它自己的目标轨迹相关联。在其它实施例中,可以存在比多车道道路上呈现的车道更少的存储的目标轨迹。在这样的情况下,导航多车道道路的车辆可以通过考虑从车道(针对该车道的目标轨迹被存储)的车道偏移的量,来使用已存储的目标轨迹中的任何来引导它的导航(例如,如果车辆在三车道公路的最左车道中行驶,并且仅对于公路的中间车道存储了目标轨迹,则该车辆可以在生成导航指令时通过考虑中间车道和最左车道之间的车道偏移量,进而使用中间车道的目标轨迹来导航)。

在一些实施例中,目标轨迹可以表示当车辆行驶时车辆应该采取的理想路径。目标轨迹可以位于,例如,行驶的车道的近似中心处。在其它情况下,目标轨迹可以位于相对于路段的其它地方。例如,目标轨迹可以近似与道路的中心、道路的边缘、或车道的边缘等等一致。在这样的情况下,基于目标轨迹的导航可以包括确定相对于目标轨迹的位置将要维持的偏移量。而且,在一些实施例中,基于车辆的类型,相对于目标轨迹的位置所确定的将要维持的偏移量可以不同(例如,沿着目标轨迹的至少一部分,包括两个轴的载客车辆可以具有与包括多于两个轴的卡车不同的偏移)。

稀疏地图800还可以包括与多个预定地标820有关的数据,所述预定地标820与特定路段、本地地图等等相关联。如在其它部分详细讨论的,这些地标可以用于自主车辆的导航。例如,在一些实施例中,该地标可以用来确定车辆相对于已存储的目标轨迹的当前位置。利用此位置信息,自主车辆能够调整航向方向以匹配在所确定位置的目标轨迹的方向。

可以以任何适合的间隔在稀疏地图800中标识和存储多个地标820。在一些实施例中,可以以相对高的密度(例如,每隔几米或更多)来存储地标。然而,在一些实施例中,可以采用显著更大的地标间隔。例如,在稀疏地图800中,已标识(或已识别)的地标可以隔开10米、20米、50米、100米、1千米、或2千米。在有些情况下,已标识地标可以位于间隔甚至大于2千米的距离。车辆可以基于航位推算来在地标之间,并且因此,在车辆相对于目标轨迹的定位的确定之间导航,在航位推测法中,车辆使用传感器确定它的自我运动并且估计其相对于目标轨迹的位置。因为在通过航位推算导航期间可以累积误差,所以随时间推移,相对于目标轨迹的位置确定可以变得越来越不准确。车辆可以使用在稀疏地图800中出现的地标(和它们的已知位置)在位置确定中移除航位推算引起的误差。以这种方式,被包括在稀疏地图800中的已标识地标可以充当导航锚,根据该导航锚可以确定相对于目标轨迹的车辆的准确的位置。因为一定量的误差在定位位置中是可接受的,所以已标识地标并不需要总是对自主车辆可用。相反,甚至基于如以上提到的10米、20米、50米、100米、500米、1千米、2千米、或更多的地标间隔,合适的导航可以是可能的。在一些实施例中,每1km道路1个已标识地标的密度可以足以将纵向位置确定精度维持在1m之内。因此,并非沿着路段出现的每个潜在地标都需要被存储在稀疏地图800中。

除了目标轨迹和已标识地标之外,稀疏地图800可以包括与各种其它道路有关的信息。例如,图9a示出了可以被存储在稀疏地图800中的沿着特定路段的曲线的表示。在一些实施例中,道路的单个车道可以通过道路左侧和右侧的三维多项式描述来建模。图9a中示出了表示单个车道的左侧和右侧的这样的多项式。不管道路可以具有多少车道,都可以以相似于图9a中所示的方式、使用多项式来表示道路。例如,多车道道路的左侧和右侧可以通过相似于图9a中所示的那些的多项式来表示,并且被包括在多车道道路上的中间车道标记(例如,表示车道边界的虚线标记、表示在不同方向行驶的车道之间的边界的黄色实线等等)也可以使用诸如在图9a中所示的那些的多项式来表示。

如图9a中所示,可以使用多项式(例如,一阶、二阶、三阶、或任何合适的阶的多项式)来表示车道900。为了例示,车道900被示出为二维车道,并且多项式被示出为二维多项式。车道900包括左侧910和右侧920。在一些实施例中,可以使用多于一个多项式来表示道路的每侧或车道边界的位置。例如,左侧910和右侧920中的每一个可以通过任何合适长度的多个多项式来表示。在有些情况下,多项式可以具有约100m的长度,虽然还可以使用大于或小于100m的长度。另外,多项式能够相互重叠,以便当主车辆沿着路面行驶时促进基于随后遇到的多项式的导航中的无缝转换。例如,左侧910和右侧920中的每一个都可以由被分成长度约100米(第一预定范围的示例)的段的多个三阶多项式来表示,并且所述段互相重叠约50米。表示左侧910和右侧920的多项式可以具有或可以不具有相同的阶。例如,在一些实施例中,一些多项式可以是二阶多项式、一些可以是三阶多项式、并且一些可以是四阶多项式。

在图9a中示出的示例中,车道900的左侧910由两组三阶多项式来表示。第一组包括多项式段911、多项式段912、和多项式段913。第二组包括多项式段914、多项式段915、和多项式段916。该两个组,虽然基本上彼此平行,但遵循它们各自侧道路的位置。多项式段911-多项式段916具有约100米的长度,并且与该系列中的相邻段重叠约50米。然而,如先前已经提到的,还可以使用不同长度和不同重叠量的多项式。例如,多项式可以具有500m、1km、或更多的长度,并且重叠量可以从0至50m、50m至100m、或大于100m变化。另外,虽然图9a被示出为表示在2d空间中延伸的多项式(例如,在纸的表面上),但是将理解这些多项式可以表示在三维(例如,包括高度分量)中延伸的曲线以表示除了x-y曲率之外的路段中的标高改变。

回到稀疏地图800的目标轨迹,图9b示出表示用于沿着特定路段行驶的车辆的目标轨迹的三维多项式。目标轨迹不仅表示主车辆沿着特定路段应该行驶的x-y路径,而且表示当沿着路段行驶时,主车辆将经历的标高改变。因此,与图9b中示出的三维多项式950相似,稀疏地图800中的每个目标轨迹都可以通过一个或多个三维多项式来表示。稀疏地图800可以包括多个轨迹(例如,数百万、或数十亿、或更多,以表示车辆沿着贯穿世界的路面的各种路段的轨迹)。在一些实施例中,每个目标轨迹可以对应于连接三维多项式段的样条。

关于存储在稀疏地图800中的多项式曲线的数据足迹,在一些实施例中,每个三次多项式可以通过四个参数来表示,每个参数要求四字节的数据。可以利用每100m要求约192字节的数据的三次多项式来获得合适的表示。这意味着对于行驶近似100km/hr的主车辆,每小时近似200kb的数据使用量/传递量的要求。

稀疏地图800可以使用几何描述符和元数据的组合来描述车道网络。该几何可以通过如上所述的多项式和样条来描述。元数据可以描述车道的数量、特殊的特性(诸如合乘车辆车道)、和可能的其它稀疏标记。这样的指示符的总共占用可以是微不足道的。

如先前已经提到的,稀疏地图800可以包括与路段相关联的多个预定地标。可以使用比存储的实际图像将要求的数据更少的数据来表示和识别稀疏地图800中的每个地标,而不是存储地标的实际图像和,例如,依赖于基于已捕获图像和已存储图像的图像识别分析。表示地标的数据可以包括用于描述或标识沿着道路的地标的足够的信息。存储描述地标的特性的数据,而不是地标的实际图像,可以减小稀疏地图800的尺寸。

图10示出在稀疏地图800中可以被表示的地标的类型的示例。地标可以包括沿着路段的可见和可标识的任何对象。地标可以被选择,从而它们是固定的,并且不经常相对于它们的位置和/或内容改变。当车辆穿越特定路段时,被包括在稀疏地图800中的地标可以在确定车辆200相对于目标轨迹的位置时是有用的。地标的示例可以包括:交通标志、方向标志、通用标志(例如,矩形标志)、路缘石的固定附物(例如,灯柱、反射镜等等)、以及任何其它合适的类别。在一些实施例中,道路上的车道标记也可以作为地标被包括在稀疏地图800中。

图10中示出的地标的示例包括交通标志、方向标志、固定附物、和通用标志。交通标志可以包括,例如:限速标志(例如,限速标志1000)、让车标志(例如,让车标志1005)、路途编号(例如,路途编号标志1010)、交通灯标志(例如,交通灯标志1015)、停车标志(例如,停车标志1020)。方向标志可以包括,包括指示到不同地方的一个或多个方向的一个或多个箭头的标志。例如,方向标志可以包括具有用于指引车辆到不同道路或地方的箭头的公路标志1025、具有指挥车辆离开道路的箭头的出口标志1030等等。

通用标志可以与交通无关。例如,通用标志可以包括用于广告的公告牌、或邻近两个国家、州、县、市、或镇之间的边界的欢迎牌。图10示出通用标志1040(“joe的餐馆”)。虽然通用标志1040可以具有长方形形状,如图10中所示,但是通用标志1040可以具有诸如正方形、圆形、三角形等等的其它形状。

地标还可以包括路缘石的固定附物。路缘石的固定附物可以为不是标志的对象,并且可以不是与交通或方向有关的对象。例如,路缘石的固定附物可以包括灯柱(例如,灯柱1035)、电力线柱、交通灯柱等等。

地标还可以包括可以是专门为在自主车辆导航系统中的使用而设计的信标。例如,这样的信标可以包括以预定间隔放置以辅助导航主车辆的独立结构。这样的信标还可以包括可以被沿着路段行驶的车辆标识或识别的、被添加到现有道路标志的可视/图形信息(例如,图标、徽章、条形码等等)。这样的信标还可以包括电子组件。在这样的实施例中,电子信标(例如,rfid标签等等)可以被用来向主车辆发送非可视信息。这样的信息可以包括,例如,主车辆可以在确定它的沿着目标轨迹的位置时使用的地标标识和/或地标位置信息。

在一些实施例中,被包括在稀疏地图800中的地标可以通过预定尺寸的数据对象来表示。表示地标的数据可以包括用于标识特定地标的任何合适的参数。例如,在一些实施例中,存储在稀疏地图800中的地标可以包括参数,所述参数诸如:地标的物理尺寸(例如,用以支持基于已知尺寸/尺度的到地标的距离的估计)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型-什么类型的方向标志、交通标志等等)、gps坐标(例如,用以支持全球本地化)、和任何其它合适的参数。每个参数可以与数据尺寸相关联。例如,可以使用8字节的数据来存储地标尺寸。可以使用12字节的数据来指定到先前地标的距离、横向偏移、和高度。与诸如方向标志或交通标志的地标相关联的类型代码可以要求约2字节的数据。对于通用标志,通用标志的图像签名使得识别可以使用50字节的数据存储来存储。地标gps位置可以与16字节的数据存储相关联。这些用于每个参数的数据尺寸仅仅是示例,并且还可以使用其它的数据尺寸。

以这种方式在稀疏地图800中表示地标可以为在数据库中高效地表示地标提供精益解决方案。在一些实施例中,标志可以被称为语义标志和非语义标志。语义标志可以包括对于其存在标准含义的任何种类的标志(例如,限速标志、警告标志、方向标志等等)。非语义标志可以包括与标准含义不相关联的任何标志(例如,通用广告标志、标识营业场所的标志等等)。例如,每个语义标志可以利用38字节的数据来表示(例如,8字节用于表示尺寸;12字节用于表示到先前地标的距离、横向偏移、和高度;2字节用于表示类型代码、以及16字节用于表示gps坐标)。稀疏地图800可以使用标签系统以表示地标类型。在有些情况下,每个交通标志或方向标志可以与它自己的标签相关联,其可以作为地标标识的一部分被存储在数据库中。例如,数据库可以包括约1000个不同标签以表示各种交通标志,并且包括约10000个不同标签以表示方向标志。当然,可以使用任何合适的数量的标签,并且当需要时可以创建额外的标签。在一些实施例中,可以使用少于约100字节来表示通用标志(例如,约86字节,包括:8字节用于表示尺寸;12字节用于表示到先前地标的距离、横向偏移、和高度;50字节用于表示图像签名;以及16字节用于表示gps坐标)。

因此,对于不要求图像签名的语义道路标志,即使在每50m约1个地标的相对高的地标密度,数据密度对稀疏地图800的影响可以在量级为约每千米760字节(例如,每km20个地标×每个地标38字节=760字节)。即使对于包括图像签名分量的通用标志,数据密度影响是每km约1.72kb(例如,每km20个地标×每个地标86字节=1720字节)。对于语义道路标志,对于行驶100km/hr的车辆,这相当于每小时约76kb的数据使用量。对于通用标志,对于行驶100km/hr的车辆,这相当于每小时约170kb的数据使用量。

在一些实施例中,可以通过不多于100字节的数据在稀疏地图800中表示诸如矩形标志的通用矩形对象。稀疏地图800中的通用矩形对象(例如,通用标志1040)的表示可以包括与通用矩形对象相关联的浓缩的图像签名(例如,浓缩的图像签名1045)。这种浓缩的图像签名可以用来,例如,辅助通用标志(例如,已识别地标)的标识。这样的浓缩的图像签名(例如,从表示对象的实际图像数据推导出的图像信息)可以避免对对象的实际图像的存储的需要、或对实际图像执行比较性图像分析以便识别地标的需要。

参考图10,稀疏地图800可以包括或存储与通用标志1040相关联的浓缩的图像签名1045,而不是通用标志1040的实际图像。例如,在图像捕获设备(例如,图像捕获设备122、124、或126)捕获通用标志1040的图像之后,处理器(例如,图像处理器190和在主车辆上或相对于主车辆远程定位的、能够处理图像的任何其它处理器)可以执行图像分析以提取/创建包括与通用标志1040相关联的独特签名或图案的浓缩的图像签名1045。在一个实施例中,浓缩的图像签名1045可以包括形状、色彩模式、亮度模式、或可以从通用标志1040的图像提取以用于描述通用标志1040的任何其它特征。例如,在图10中,浓缩的图像签名1045中示出的圆形、三角形、和星形可以表示不同颜色的区域。由圆形、三角形、和星形表示的图案可以被存储在稀疏地图800中,例如,在被指定用于包括图像签名的50个字节内。值得注意的是,圆形、三角形、和星形不一定意在指示这样的形状被存储为图像签名的一部分。相反,这些形状意在概念地表示具有可辨别的色差、文本区域、图像形状、或可以与通用标志相关联的其它特性的变化的可识别区域。这样的浓缩的图像签名能够用于以通用标志的形式来标识地标。例如,浓缩的图像签名能够用于基于将已存储的浓缩的图像签名与,例如,使用在自主车辆上的相机捕获的图像数据进行比较,来执行相同不相同分析。

回到主车辆可以用来导航特定路段的目标轨迹,图11a示出在建造或维护稀疏地图800的过程期间捕获的多项式表示轨迹。可以基于沿着相同路段的车辆的在先穿越的两个或更多个重建的轨迹来确定被包括在稀疏地图800中的目标轨迹的多项式表示。在一些实施例中,被包括在稀疏地图800中的目标轨迹的多项式表示可以是沿着相同路段的车辆的在先穿越的两个或更多个重建的轨迹的聚合。在一些实施例中,被包括在稀疏地图800中的目标轨迹的多项式表示可以是沿着相同路段的车辆的在先穿越的两个或更多个重建的轨迹的平均。还可以使用其它数学操作,来基于从沿着路段行驶的车辆收集的重建的轨迹来构建沿着道路路径的目标轨迹。

如图11a中所示,路段1100可以被若干车辆200在不同时间行驶。每个车辆200可以收集与它采取的沿着路段的路径有关的数据。可以基于相机数据、加速计信息、速率传感器信息、和/或gps信息、以及其它潜在来源来确定由特定车辆行驶的路径。这样的数据可以用于重建沿着路段行驶的车辆的轨迹,并且基于这些重建的轨迹,可以确定用于特定路段的目标轨迹(或多个目标轨迹)。这样的目标轨迹可以表示当主车辆(例如,由自主导航系统引导的)沿着路段行驶时它的偏好路径。

在如图11a所示的示例中,第一重建的轨迹1101可以基于从在第一时间段(例如,第1天)穿越路段1100的第一车辆接收的数据来确定,第二重建的轨迹1102可以从在第二时间段(例如,第2天)穿越路段1100的第二车辆获得的数据来确定,并且第三重建的轨迹1103可以从在第三时间段(例如,第3天)穿越路段1100的第三车辆获得的数据来确定。每个轨迹1101、1102、和1103可以通过诸如三维多项式的多项式来表示。应该注意到,在一些实施例中,重建的轨迹中的任何可以被组装在穿越路段1100的车辆上。

另外或者可替换地,可以基于从穿越路段1100的车辆接收的信息,在服务器侧确定这样的重建的轨迹。例如,在一些实施例中,车辆200可以将数据发送到与它们的沿着路段1100的运动(例如,转向角度、航向、时间、位置、速率、感测到的道路几何、和/或感测到的地标等)有关的一个或多个服务器。服务器可以基于接收到的数据为车辆200重建轨迹。服务器也可以基于第一轨迹1101、第二轨迹1102、和第三轨迹1103生成用于引导自主车辆的导航的目标轨迹,所述自主车辆将稍后沿着相同的路段1100行驶。虽然目标轨迹可以与路段路的单个在先穿越相关联,但是在一些实施例中,可以基于穿越相同路段的车辆的两个或更多个重建的轨迹来确定被包括在稀疏地图800中的每个目标轨迹。在图11a中,目标轨迹由1110表示。在一些实施例中,目标轨迹1110可以基于第一轨迹1101、第二轨迹1102、和第三轨迹1103的平均来生成。在一些实施例中,被包括在稀疏地图800中的目标轨迹1110可以是两个或更多个重建的轨迹的聚合(例如,加权组合)。

图11b和图11c还示出与在地理区1111之内呈现的路段相关联的目标轨迹的概念。如图11b中所示,在地理区1111之内的第一路段1120可以包括多车道道路,其包括指定用于第一方向上的车辆行驶的两个车道1122,和指定用于在与第一方向相反的第二方向上的车辆行驶的两个额外的车道1124。车道1122和车道1124可以被双黄线1123分离。地理区1111还可以包括与路段1120交叉的分支路段1130。路段1130可以包括两车道的道路,每个车道被指定用于不同的行驶方向。地理区1111还可以包括其它道路特征,诸如停止线1132、停车标志1134、限速标志1136、和危险标志1138。

如图11c中所示,稀疏地图800可以包括本地地图1140,本地地图1140包括用于协助在地理区1111之内的车辆的自主导航的道路模型。例如,本地地图1140可以包括用于与在地理区1111之内的路段1120、和/或路段1130相关联的一个或多个车道的目标轨迹。例如,本地地图1140可以包括当自主车辆穿越车道1122时可以访问或依赖的目标轨迹1141、和/或目标轨迹1142。相似地,本地地图1140可以包括当自主车辆穿越车道1124时可以访问或依赖的目标轨迹1143、和/或目标轨迹1144。另外,本地地图1140可以包括当自主车辆穿越车道1130时可以访问或依赖的目标轨迹1145、和/或目标轨迹1146。目标轨迹1147表示当自主车辆从车道1120(并且具体地,相对于与车道1120的最右车道相关联的目标轨迹1140)转换到路段1130(并且具体地,相对于与路段1130的第一侧相关联的目标轨迹1145)时应该遵循的偏好路径。相似地,目标轨迹1148表示当自主车辆从路段1130(并且具体地,相对于目标轨迹1146)转换到路段1124的一部分(并且具体地,如示出的,相对于与车道1124的左车道相关联的目标轨迹1143)时应该遵循的偏好路径。

稀疏地图800还可以包括与地理区1111相关联的其它道路有关的特征的表示。例如,稀疏地图800还可以包括在地理区1111中识别的一个或多个地标的表示。这样的地标可以包括与停止线1132相关联的第一地标1150、与停车标志1134相关联的第二地标1152、与限速标志1154相关联的第三地标、和与危险标志1138相关联的第四地标1156。这样的地标可以用来,例如,协助自主车辆确定相对于示出的任何目标轨迹的它的当前位置,从而车辆可以在确定的位置调整它的航向以匹配目标轨迹的方向。

在一些实施例中,稀疏地图800还可以包括道路签名轮廓。这样的道路签名轮廓可以与和道路相关联的至少一个参数的任何可辨别的/可测量的变化相关联。例如,在有些情况下,这样的轮廓可以与特定路段的表面粗糙度的变化、特定路段上的道路宽度的变化、沿着特定路段描绘的虚线之间的距离的变化、沿着特定路段的道路曲率的变化等等相关联。图11d示出道路签名轮廓1160的示例。虽然轮廓1160可以表示上述的参数中的任何,或其它,但是在一个示例中,轮廓1160可以表示对道路表面粗糙度的测量,如,例如,通过监视当车辆在特定路段上行驶时提供指示悬架位移的量的一个或多个传感器所获得的。可替换地,轮廓1160可以表示道路宽度的变化,如基于经由行驶特定路段的车辆上的相机获得的图像数据所确定的。这样的轮廓,例如,在确定主车辆相对于特定目标轨迹自的特定位置时是有用的。也就是说,在自主车辆穿越路段时,它可以测量与一个或多个参数相关联的轮廓,所述参数与路段相关联。如果所测量的轮廓能够与相对于沿着路段的位置绘制参数变化的预定轮廓相关联/相匹配,那么所测量的轮廓和预定轮廓可以被使用(例如,通过覆盖所测量的轮廓和预定轮廓的相应部分),以便确定沿着路段的当前位置,并且因此确定相对于用于路段的目标轨迹的当前位置。

在一些实施例中,基于与自主车辆的用户、环境状况、和/或与驾驶有关的其它参数相关联的不同的特性,稀疏地图800可以包括不同的轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或配置文件(profiles)生成不同的轨迹。可以将包括这样的不同轨迹的稀疏地图800提供给不同用户的不同自主车辆。例如,一些用户更喜欢避免收费道路,而其它用户可能更喜欢采取最短或最快的路途而不管路途上是否存在收费道路。所公开的系统可以基于这样的不同的用户偏好或配置文件(profiles)生成具有不同的轨迹的不同的稀疏地图。作为另一示例,一些用户可能更喜欢在快速移动的车道中行驶,而其它用户可能更喜欢一直维持在中央车道中的位置。

基于诸如白天和夜晚、雪、雨、雾等等的不同的环境条件,不同的轨迹可以被生成并且被包括在稀疏地图800中。可以将基于这样的不同的环境条件生成的稀疏地图800提供给在不同环境条件下驾驶的自主车辆。在一些实施例中,在自主车辆上提供的相机可以检测环境条件,并且可以将这样的信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包括对于在所检测到的环境条件下的自主驾驶可以更合适或更安全的轨迹。基于环境条件的稀疏地图800的更新可以在自主车辆正在沿着道路行驶时被动态地执行。

与驾驶有关的其它不同的参数也可以被用作向不同的自主车辆生成并且提供不同的稀疏地图的基础。例如,当自主车辆以高速行驶时,转弯可能会更紧。与特定车道而不是道路相关联的轨迹可以被包括在稀疏地图800中,从而当自主车辆遵循特定轨迹时,它可以维持在特定车道之内。当由在自主车辆上的相机捕获的图像指示车辆已经漂移在车道外部(例如,跨越了车道标记)时,可以根据特定轨迹在车辆之内触发行动以将车辆带回到指定的车道。

构建用于自主车辆导航的道路模型

在一些实施例中,所公开的系统和方法可以构建用于自主车辆导航的道路模型。例如,道路模型可以包括众包数据。所公开的系统和方法可以基于观察到的本地条件来完善众包数据。另外,所公开的系统和方法可以基于传感器信息来确定用于自主车辆的完善后的轨迹。更进一步,所公开的系统和方法可以标识地标以便在道路模型中使用,还完善道路模型中的地标的位置。下面的部分更详细地公开这些系统和方法。

用于自主车辆导航的众包数据

在一些实施例中,所公开的系统和方法可以构建用于自主车辆导航的道路模型。例如,公开的系统和方法可以将众包数据用于一个或多个自主车辆可以用来沿着道路的系统导航的自主车辆道路模型的生成。通过众包,意味着数据是从在不同时间在路段上行驶的各种车辆(例如,自主车辆)接收的,并且这样的数据可以被用来生成和/或更新道路模型。反过来,模型可以被发送到稍后沿着路段行驶的车辆或其它车辆,以用于协助自主车辆导航。道路模型可以包括表示当自主车辆穿越路段时它们应该遵循的优选轨迹的多个目标轨迹。目标轨迹可以与从穿越路段的车辆收集到的重建的实际轨迹相同,其可以从车辆被发送到服务器。在一些实施例中,目标轨迹可以不同于当穿越路段时一个或多个车辆先前采用的实际轨迹。可以基于实际轨迹来生成目标轨迹(例如,通过平均或其它合适的操作)。

车辆可以上传到服务器的车辆轨迹数据可以与车辆的实际重建的轨迹相对应,或它可以对应于推荐的轨迹,所述推荐的轨迹可以基于或有关于车辆的实际重建的轨迹,但可以不同于实际重建的轨迹。例如,车辆可以修改它们的实际的重建的轨迹并且向服务器提交(例如,推荐)修改的实际轨迹。道路模型可以使用推荐的、修改后的轨迹作为用于其它车辆的自主导航的目标轨迹。

除了轨迹信息之外,用于在建造稀疏数据地图800中潜在使用的其它信息可以包括与潜在地标候选有关的信息。例如,通过信息的众包,所公开的系统和方法可以标识在环境中的潜在地标,并且完善地标位置。可以通过自主车辆的导航系统来使用地标以确定和/或调整车辆沿着目标轨迹的位置。

可以通过任何合适的方法来获得当车辆沿着道路行驶时它可以生成的重建的轨迹。在一些实施例中,可以通过使用,例如,自我运动估计(例如,相机的三维平移和三维旋转,并由此估计的车辆本体的三维平移和三维旋转)来整合对于车辆的运动的片段来开发重建的轨迹。可以基于对由一个或多个图像捕获设备捕获的图像的分析连同来自诸如惯性传感器和速率传感器的其它传感器或设备的信息来确定旋转和平移估计。例如,惯性传感器可以包括加速计、或被配置为测量车辆本体的平移和/或旋转的变化的其它合适的传感器。车辆可以包括测量车辆的速率的速率传感器。

在一些实施例中,可以基于对所捕获的图像的光流分析来估计相机的自我运动(并由此估计车辆本体的自我运动)。一系列图像的光流分析识别(identifies)来自该序列图像的像素的移动,并且基于所识别的(identified)移动确定车辆的运动。可以随时间推移并沿着路段整合自我运动,以重建与车辆已遵循的路段相关联的目标轨迹。

多个车辆在不同时间沿着路段的多个驾驶中收集的数据(例如,重建的轨迹)可以用来重建被包括在稀疏地图800中的道路模型(例如,包括目标轨迹等等)。多个车辆在不同时间沿着路段的多个驾驶中收集的数据还可以被平均以增加模型的精度。在一些实施例中,关于道路几何和/或地标的数据可以从在不同时间行驶通过公共路段的多个车辆接收。可以组合这样的从不同车辆接收到的数据来生成道路模型和/或来更新道路模型。

所公开的系统和方法可以使得能够利用低占用模型进行自主车辆导航(例如,转向控制),所述低占用模型可以通过自主车辆它们自己来收集而无需昂贵的勘测设备的辅助。为支持自主导航(例如,转向应用),道路模型可以包括道路的几何、它的车道结构、和可以用来确定沿着被包括在模型中的轨迹的车辆的位置或位置的地标。道路模型的生成可以由与行驶在道路上的车辆通信并且从车辆接收数据的远程服务器来执行。数据可以包括感测的数据、基于该感测的数据重建的轨迹、和/或可以表示修改后的重建轨迹的推荐轨迹。服务器可以将模型发送回稍后在道路上行驶的车辆或其它车辆以辅助自主导航。

沿着路段的重建的轨迹(以及目标轨迹)的几何可以由在三维空间中的曲线来表示,其可以是连接三维多项式的样条。可以从对由安装在车辆上的相机捕获的视频流或多个图像的分析来确定重建的轨迹曲线。在一些实施例中,在每个帧或图像中标识在车辆的当前位置之前几米的位置。该位置是车辆在预定时间段内预计要行驶到的地点。可以逐帧重复此操作,并且同时,车辆可以计算相机的自我运动(旋转和平移)。在每个帧或每个图像,由车辆在附接到相机的参考系中生成期望路径的短程模型。可以将短程模型整合在一起以在相同坐标系中获得道路的三维模型,该坐标系可以是任意的或预定的坐标系。然后可以通过样条拟合道路的三维模型,该样条可以包括或连接合适的顺序的一个或多个多项式。

为推断出在每个帧的短程道路模型,可以使用一个或多个检测模块。例如,可以使用自下而上的车道检测模块。当车道标记被绘画在道路上时,自下而上车道检测模块可以是有用的。此模块可以在图像中寻找边缘,并将它们组装在一起以形成车道标记。第二模块可以与自下而上车道检测模块一起使用。第二模块是端到端深度神经网络,其可以被训练以从输入图像预测正确的短程路径。在第一模块和第二模块两者中,道路模型可以在图像坐标系中被检测到,并且被变换到可以被虚拟附接到相机的三维空间。

虽然由于在长的时间段上的自我运动的整合,其可以包括噪声分量,重建的轨迹建模方法可能引入误差的累积,但是当所生成的模型可以提供用于在本地尺度上的导航时,这样的误差可能是微不足道的。此外,通过使用诸如卫星图像或大地测量的外部信息来源,有可能消除所整合的误差。例如,所公开的系统和方法可以使用gnss接收器以消除累积误差。然而,gnss位置信号可能并不总是可用的和准确的。所公开的系统和方法可以启用微弱取决于gnss位置的可用性和精度的转向应用。在这样的系统中,gnss信号的使用可以被限制。例如,在一些实施例中,所公开的系统可以将gnss信号仅用于数据库索引用途。

在一些实施例中,可以与自主车辆导航转向应用相关的范围尺度(例如,本地尺度),可以近似于50米、100米、200米、300米等等。当几何道路模型主要用于以下两个用途时,可以使用这样的距离:计划前方轨迹和在道路模型上本地化车辆。在一些实施例中,当控制算法根据位于前方1.3秒(或任何其它时间,诸如:1.5秒、1.7秒、2秒等等)的目标点将车辆转向时,计划任务可以在前方40米(或任何其它合适的前方距离,诸如:20米、30米、50米)的典型范围上使用模型。根据在另一部分更详细描写的、被称为“尾部对齐”的方法,本地化任务在汽车后方60米(或任何其它合适的距离,诸如:50米、100米、150米等等)的典型范围上使用道路模型。所公开的系统和方法可以生成在诸如100米的特定范围上具有足够精度的几何模型,从而所计划的轨迹将不会与车道中心偏离,例如,30cm。

如上所说明的,三维道路模型可以从检测短程部分并整合它们来构建。可以通过使用由相机捕获的视频和/或图像、来自反映车辆的运动的惯性传感器的数据、和主车辆速度信号,来计算六度自我运动模型以使得能够进行整合。累积的误差可以在诸如大约100米的一些本地里程标尺上足够小。所有这些都可以在特定路段上的单个驾驶中完成。

在一些实施例中,多个驾驶可以被用来对得到的模型取平均,以进一步增加它的精度。相同的汽车可以多次行驶相同的路途,或多个汽车可以将它们的收集到的模型数据传送到中央服务器。在任何情况下,可以执行匹配程序以标识重叠的模型并且使得能够进行平均以便生成目标轨迹。一旦满足收敛准则,所构建的模型(例如,包括目标轨迹)就可以用于转向。随后的驾驶可以被使用于进一步的模型改进、以及以便适应基础设施的改变。

如果多个汽车被连接到中央服务器,则在它们之间的驾驶经历(诸如感测的数据)的共享变得可行。每个车辆客户端可以存储通用道路模型的部分副本,其可以是关于当前位置的。可以由车辆和服务器来执行车辆和服务器之间的双向更新程序。以上讨论的小占用概念使得所公开的系统和方法能够使用非常小的带宽执行双向更新。

与潜在地标有关的信息也可以被确定并且被转发到中央服务器。例如,所公开的系统和方法可以基于包括地标的一个或多个图像来确定潜在地标的一个或多个物理属性。物理属性可以包括:地标的物理尺寸(例如,高度、宽度)、从车辆到地标的距离、地标到先前地标之间的距离、地标的横向位置(例如,地标相对于行驶的车道的位置)、地标的gps坐标、地标的类型、地标上的文字的标识等等。例如,车辆可以分析由相机捕获的一个或多个图像以检测诸如限速标志的潜在地标。车辆可以基于对一个或多个图像的分析确定从车辆到地标的距离。在一些实施例中,可以基于使用诸如缩放方法和/或光流方法的合适的图像分析方法对地标的图像的分析来确定距离。在一些实施例中,所公开的系统和方法可以被配置为确定潜在地标的类型和分类。在车辆确定某一潜在地标对应于被存储在稀疏地图中的预定类型和分类的情况下,车辆可以足以向服务器通信传达地标的类型或分类连同它的位置的指示。服务器可以存储这样的指示符。稍后,其它车辆可以捕获地标的图像、处理该图像(例如,使用分类器)、以及比较来自处理图像的结果和被存储在服务器中的关于地标的类型的指示。可以存在各种类型的地标,并且不同类型的地标可以与将要被上传到服务器或被存储在服务器中的不同类型的数据相关联,在车辆上的不同的处理可以检测地标并且将关于地标的信息通信传达到服务器,并且在车辆上的系统可以从服务器接收地标数据并且将该地标数据用于在自主导航中标识地标。

在一些实施例中,在路段上行驶的多个自主车辆可以与服务器通信。车辆(或客户端)可以在任意坐标系中生成描述它的驾驶的曲线(例如,通过自我运动整合)。车辆可以检测地标并且在相同的系中将它们定位。车辆可以将曲线和地标上传到服务器。服务器可以通过多个驾驶从车辆收集数据,并且生成统一的道路模型。服务器可以将模型分发给客户端(车辆)。当从车辆接收新数据时,服务器可以连续地或周期地更新模型。例如,服务器可以处理新数据以评估它是否包括应该触发在服务器上更新或新数据的创建的信息。服务器可以将更新后的模型或更新分发给车辆以用于提供自主车辆导航。

服务器可以使用一个或多个准则来确定从车辆接收的新数据是否应该触发对模型的更新或触发新数据的创建。例如,当新数据指示在特定位置的先前已识别地标不再存在或被另一地标替代时,则服务器可以确定新数据应该触发对模型的更新。作为另一示例,当新数据指示路段已经封闭并且当其已被从其它车辆接收的数据证实时,则服务器可以确定新数据应该触发对模型的更新。

服务器可以将更新后的模型(或模型的更新后的部分)分发给正行驶在路段上的一个或多个车辆,其中更新后的模型与所述路段相关联。服务器还可以将更新后的模型分发给即将在路段上行驶的车辆、或计划的旅行包括路段的车辆,其中对模型的更新与所述路段相关联。例如,在自主车辆在到达关联有更新的路段之前正沿着另一路段行驶的同时,服务器可以在自主车辆到达该路段之前将更新或更新后的模型分发给自主车辆。

在一些实施例中,远程服务器可以从多个客户端(例如,沿着公共路段行驶的车辆)收集轨迹和地标。服务器可以使用地标来匹配曲线,并且基于从多个车辆收集的轨迹创建平均道路模型。服务器还可以计算道路的图形、和在路段的每个节点或结合处的最可能的路径。

服务器可以对从沿着公共路段行驶的多个车辆接收的、诸如由多个车辆测量的一个地标到另一地标(例如,沿着路段的先前地标)之间的距离的地标属性取平均,以确定弧长参数并且支持对每个客户端车辆的沿着路径的位置和速率校准。服务器可以对由沿着公共路段行驶的多个车辆测量的并且被识别为相同的地标的地标的物理大小取平均。经平均的物理大小可以用来支持对诸如从车辆到地标的距离的距离估计。服务器可以对由沿着公共路段行驶的多个车辆测量的并且被识别为相同的地标的地标的横向位置(例如,从车辆正在行驶的车道到地标的位置)取平均。经平均的横向位置可以用来支持车道分配。服务器可以对由沿着相同路段行驶的多个车辆测量的并且被识别为相同的地标的地标的gps坐标取平均。地标的经平均的gps坐标可以用来支持地标在道路模型中的全球位置或位置。

在一些实施例中,服务器可以基于从车辆接收的数据来标识诸如建筑工地、绕道、新标志、标志的移除等等的模型改变。服务器可以在从车辆接收新数据时,连续地或周期性地或即刻地更新模型。服务器可以将对模型的更新或更新后的模型分发给车辆,以用于提供自主导航。

在一些实施例中,服务器可以在自主驾驶期间分析驾驶员干预。服务器可以分析在干预发生的时间和位置从车辆接收的数据、和/或在干预发生的时间之前接收的数据。服务器可以标识引起干预或与干预紧密相关的数据的某些部分,例如,指示临时车道封闭设置的数据、指示在道路中的行人的数据。服务器可以基于所标识的数据更新模型。例如,服务器可以修改被存储在模型中的一个或多个轨迹。

与公开的实施例一致的,系统能够存储在自主导航(或常规的驾驶员控制的导航)期间获得的信息,以便在沿着相同道路的稍后的行驶中使用。当其它车辆沿着道路导航时,系统可以与它们共享该信息。然后每个客户端系统可以基于观察到的本地条件来进一步完善众包数据。

图12是将众包数据用于自主车辆导航的系统的示意图。图12示出包括一个或多个车道的路段1200。多个车辆1205、1210、1215、1220、和1225可以在相同时间或不同时间在路段1200上行驶(虽然图12中示出为同时出现在路段1200上)。车辆1205-1225中的至少一个可以是自主车辆。为了本示例的简洁性,假定所有车辆1205-1225都是自主车辆。每个车辆可以与在其它实施例中公开的车辆(例如,车辆200)相似,并且可以包括在其它实施例中公开的车辆中包括的、或与在其它实施例中公开的车辆相关联的组件或设备。每个车辆可以配备有图像捕获设备或相机(例如,图像捕获设备122或相机122)。如虚线所指示的,每个车辆可以通过无线通信路径1235、经由一个或多个网络(例如,通过蜂窝网络和/或互联网等等)与远程服务器1230通信。每个车辆可以向服务器1230发送数据并从服务器1230接收数据。例如,服务器1230可以从在不同时间在路段1200上行驶的多个车辆收集数据,并且可以处理所收集的数据以生成自主车辆道路导航模型、或对模型的更新。服务器1230可以向发送数据到服务器1230的车辆发送自主车辆道路导航模型或对模型的更新。服务器1230可以向在稍后的时间在路段1200上行驶的其它车辆发送自主车辆道路导航模型或对模型的更新。

当车辆1205-1225在路段1200上行驶时,由车辆1205-1225收集的(例如,检测到的、感测到的、或测量的)导航信息可以被发送到服务器1230。在一些实施例中,导航信息可以与公共路段1200相关联。当车辆1205-1225中的每一个驶过路段1200时,导航信息可以包括与每个车辆相关联的轨迹。在一些实施例中,可以基于由在车辆1205上提供的各种传感器和设备感测的数据来重建轨迹。例如,可以基于加速计数据、速率数据、地标数据、道路几何或轮廓数据、车辆位置数据、和自我运动数据中的至少一个来重建轨迹。在一些实施例中,可以基于来自诸如加速计的惯性传感器的数据、和由速率传感器感测的车辆1205的速度来重建轨迹。此外,在一些实施例中,可以基于相机的所感测的自我运动来确定(例如,由在车辆1205-1225中的每一个上的处理器)轨迹,所述自我运动可以指示三维平移和/或三维旋转(或旋转运动)。可以从对由相机捕获的一个或多个图像的分析来确定相机(并由此车辆本体)的自我运动。

在一些实施例中,车辆1205的轨迹可以由在车辆1205上提供的处理器来确定,并被发送到服务器1230。在其它实施例中,服务器1230可以接收由在车辆1205中提供的各种传感器和设备感测的数据,并且基于从车辆1205接收的数据来确定轨迹。

在一些实施例中,从车辆1205-1225发送到服务器1230的导航信息可以包括关于道路几何或轮廓的数据。路段1200的几何可以包括车道结构和/或地标。车道结构可以包括路段1200的车道的总数、车道的类型(例如,单行道、双向车道、行车车道、超车道等等)、车道上的标记、车道宽度等等。在一些实施例中,导航信息可以包括车道分配,例如,车辆正行驶在多个车道中的哪一个车道。例如,车道分配可以与指示车辆正在从左或从右的第三车道上行驶的数字值“3”相关联。作为另一示例,车道分配可以与指示车辆正在中心车道上行驶的文本值“中心车道”相关联。

服务器123可以在诸如硬盘驱动器、光盘、磁带、存储器等等的非瞬时性计算机可读介质上存储导航信息。服务器1230可以基于从多个车辆1205-1225接收的导航信息,生成(例如,通过被包括在服务器1230中的处理器)用于公共路段1200的自主车辆道路导航模型的至少一部分。服务器1230可以基于从在不同时间在路段的车道上行驶的多个车辆(例如,车辆1205-1225)接收的众包数据(例如,导航信息)来确定与每个车道相关联的轨迹。服务器1230可以基于以众包导航数据为基础而确定的多个轨迹生成自主车辆道路导航模型或该模型的一部分(例如,更新后的部分)。服务器1230可以向正在路段1200上行驶的自主车辆1205-1225中的一个或多个、或稍后在路段上行驶的任何其它自主车辆发送模型或该模型的更新后的部分,以用于更新在车辆的导航系统中提供的现有的自主车辆道路导航模型。自主车辆道路导航模型可以被自主车辆在沿着公共路段1200自主地导航时使用。

在一些实施例中,自主车辆道路导航模型可以被包括在稀疏地图(例如,图8中描绘的稀疏地图800)中。稀疏地图800可以包括道路几何和/或与沿着道路的地标有关的数据的稀疏记录,其可以提供用于引导自主车辆的自主导航的充足的信息,而不要求过多的数据存储。在一些实施例中,自主车辆道路导航模型可以独立于稀疏地图800被存储,并且当该模型被执行以用于导航时,可以使用来自稀疏地图800的地图数据。在一些实施例中,自主车辆道路导航模型可以使用被包括在稀疏地图800中的地图数据来确定用于引导自主车辆1205-1225、或稍后沿着路段1200行驶的其它车辆的自主导航的沿着路段1200的目标轨迹。例如,当自主车辆道路导航模型由被包括在车辆1205的导航系统中的处理器执行时,该模型可以引起处理器将基于从车辆1205接收的导航信息来确定的轨迹和被包括在稀疏地图800中的预定轨迹进行比较,以验证和/或纠正车辆1205的当前行驶路线。

在自主车辆道路导航模型中,道路特征的几何、或目标轨迹可以由在三维空间中的曲线来编码。在一个实施例中,曲线可以是包括一个或多个连接三维多项式的三维样条。如本领域技术人员将理解的,样条可以是由用于拟合数据的一系列多项式来分段定义的数值函数。用于拟合道路的三维几何数据的样条可以包括线性样条(一阶)、二次样条(二阶)、三次样条(三阶)、或任何其它样条(其它阶)、或它们的组合。样条可以包括连接(例如,拟合)道路的三维几何数据的数据点的一个或多个不同阶数的三维多项式。在一些实施例中,自主车辆道路导航模型可以包括与沿着公共路段(例如,路段1200)或路段1200的车道的目标轨迹相对应的三维样条。

自主车辆道路导航模型可以包括诸如沿着路段1200的至少一个地标的标识的其它信息。地标在被安装在车辆1205-1225中的每一个上的相机(例如,相机122)的视场之内可以是可见的。在一些实施例中,相机122可以捕获地标的图像。在车辆1205上提供的处理器(例如,处理器180、190、或处理单元110)可以处理地标的图像,来为地标提取标识信息。地标标识信息,而不是地标的实际图像,可以被存储在稀疏地图800中。地标标识信息可以比实际图像要求更少的存储空间。其它传感器或系统(例如,gps系统)也可以提供地标的某些标识信息(例如,地标的位置)。地标可以包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志(例如,具有指示方向的箭头的公路出口标志、具有指向不同方向或地方的箭头的公路标志)、地标信标、或灯柱。地标信标是指沿着路段安装的、向安装在车辆上的接收器发送或反射信号的设备(例如,rfid设备),从而当车辆经过设备时,被车辆接收的信标和设备的位置(例如,从设备的gps位置确定的)可以被用作将要被包括在自主车辆道路导航模型和/或稀疏地图800中的地标。

至少一个地标的标识可以包括至少一个地标的定位。可以基于使用与多个车辆1205-1225相关联的传感器系统(例如,全球定位系统、基于惯性的定位系统、地标信标等等)执行的位置测量来确定地标的位置。在一些实施例中,可以通过对由在不同车辆1205-1225上的传感器系统通过多个驾驶来检测、收集、或接收的位置测量取平均,来确定地标的位置。例如,车辆1205-1225可以向服务器1230发送位置测量数据,该服务器1230可以对位置测量取平均,并且使用经平均的位置测量作为地标的位置。可以由在随后的驾驶中从车辆接收的测量来连续地完善地标的位置。

地标的标识可以包括地标的尺寸。在车辆(例如,1205)上提供的处理器可以基于对图像的分析来估计地标的物理尺寸。服务器1230可以从不同驾驶的不同车辆接收对相同地标的物理尺寸的多个估计。服务器1230可以对不同的估计取平均以得出用于地标的物理尺寸,并将该地标尺寸存储在道路模型中。物理尺寸估计可以用来进一步确定或估计从车辆到地标的距离。可以基于车辆的当前速率来估计到地标的距离、以及基于地标在图像中相对于相机的延伸焦点出现的位置来估计延伸的尺度。例如,到地标的距离可以通过z=v*dt*r/d来估计,其中,v是车辆的速率,r是在图像中的、在时间t1从地标到延伸焦点的距离,以及d是在图像中的、从t1到t2地标的距离的改变。dt表示(t2-t1)。例如,到地标的距离可以通过z=v*dt*r/d来估计,其中,v是车辆的速率,r是在图像中地标和延伸焦点之间的距离,dt是时间间隔、以及d是地标沿着核线的图像位移。诸如z=v*ω/δω的与以上方程式等效的其它方程式被用于估计到地标的距离。这里,v是车辆速率、ω是图像长度(相似对象宽度)、以及δω是以时间为单位的图像长度的改变。

当地标的物理尺寸已知时,到地标的距离还可以基于下面的方程式来确定:z=f*w/ω,其中,f是焦距、w是地标的尺寸(例如,高度或宽度)、ω是当地标离开图像时的像素的数量。从以上方程式,可以使用δz=f*w*δω/ω2+f*δw/ω来计算距离z的改变,其中δw通过平均衰减到零,并且其中δw是表示图像中的边界框精度的像素的数量。可以通过在服务器侧对多个观察值取平均来计算估计地标的物理尺寸的值。距离估计中的产生的误差可以非常小。当使用以上公式时,存在两个可能发生误差的来源,也就是说,δw和δω。它们的对距离误差的贡献由δz=f*w*δω/ω2+f*δw/ω给定。然而,δw通过平均衰减为零;因此δz由δw确定(例如,图像中的边界框的不精确度)。

对于未知尺寸的地标,可以通过跟踪连续帧之间的地标上的特征点来估计到地标的距离。例如,可以在两个或更多个图像帧之间跟踪出现在限速标志上的某些特征。基于这些跟踪的特征,可以生成每特征点的距离分布。可以从距离分布提取距离估计。例如,出现在距离分布中的最频繁的距离可以被用作距离估计。作为另一示例,距离分布的平均可以被用作距离估计。

图13示出由多个三维样条1301、1302、和1303表示的示例性自主车辆道路导航模型。图13中示出的曲线1301-1303仅仅用于例示的目的。每个样条可以包括连接多个数据点1310的一个或多个三维多项式。每个多项式可以是一阶多项式、二阶多项式、三阶多项式、或具有不同阶数的任何合适的多项式的组合。每个数据点1310可以与从车辆1205-1225接收的导航信息相关联。在一些实施例中,每个数据点1310可以与和地标有关的数据(例如,地标的尺寸、位置、和标识信息)和/或道路签名轮廓(例如,道路几何、道路粗糙度轮廓、道路曲率轮廓、道路宽度轮廓)相关联。在一些实施例中,一些数据点1310可以与和地标有关的数据相关联,并且其它的可以与和道路签名轮廓有关的数据相关联。

图14示出服务器1230的框图。服务器1230可以包括通信单元1405,其可以包括硬件组件(例如,通信控制电路、开关、和天线)、和软件组件(例如,通信协议、计算机代码)两者。服务器1230可以通过通信单元1405与车辆1205-1225通信。例如,服务器1230可以通过通信单元1405接收从车辆1205-1225发送的导航信息。服务器1230可以通过通信单元1405向一个或多个自主车辆分发自主车辆道路导航模型。

服务器1230可以包括诸如硬盘驱动、光盘、磁带等等的一个或多个存储设备1410。存储设备1410可以被配置为存储诸如从车辆1205-1225接收的导航信息、和/或服务器1230基于导航信息生成的自主车辆道路导航模型的数据。存储设备1410可以被配置为存储诸如稀疏地图(例如,结合图8讨论的稀疏地图800)的任何其它信息。

除了存储设备1410之外,或代替存储设备1410,服务器1230可以包括存储器1415。存储器1415可以与存储器140或存储器150相似或不同。存储器1415可以是诸如快闪存储器、随机存取存储器等等的非瞬时性存储器。存储器1415可以被配置为存储数据,诸如可由处理器(例如,处理器1420)执行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主车辆道路导航模型、和/或从车辆1205-1225接收的导航信息。

服务器1230可以包括被配置为执行被存储在存储器1415中以执行各种功能的计算机代码或指令的处理器1420。例如,处理器1420可以分析从车辆1205-1225接收的导航信息,并且基于该分析生成自主车辆道路导航模型。处理器1420可以控制通信单元1405向一个或多个自主车辆(例如,车辆1205-1225中的一个或多个、或稍后在路段1200上行驶的任何车辆)分发自主车辆道路导航模型。处理器1420可以与处理器180、190、或处理单元110相似或不同。

图15示出存储器1415的框图,其可以存储用于执行用于处理车辆导航信息的一个或多个操作的计算机代码或指令,以便在自主车辆导航中使用。如图15中所示,存储器1415可以存储用于执行用于处理车辆导航信息的操作的一个或多个模块。例如,存储器1415可以包括模型生成模块1505和模型分发模块1510。处理器1420可以执行被存储在被包括在存储器1415中的模块1505和模块1510中的任何一个中的指令。

模型生成模块1505可以存储指令,当该指令被处理器1420执行时,可以基于从车辆1205-1225接收的导航信息生成用于公共路段(例如,路段1200)的自主车辆道路导航模型的至少一部分。例如,在生成自主车辆道路导航模型时,处理器1420可以将沿着公共路段1200的车辆轨迹聚类成不同的簇。处理器1420可以基于所聚类的车辆轨迹来为不同的簇中的每一个确定沿着公共路段1200的目标轨迹。这样的操作可以包括在每个簇中寻找所聚类的车辆轨迹的均值轨迹或平均轨迹(例如,通过对表示所聚类的车辆轨迹的数据取平均)。在一些实施例中,目标轨迹可以与公共路段1200的单个车道相关联。自主车辆道路导航模型可以包括多个目标轨迹,每个目标轨迹与公共路段1200的单独的车道相关联。在一些实施例中,目标轨迹可以与公共路段1200,而不是与路段1200的单个车道相关联。目标轨迹可以由三维样条来表示。在一些实施例中,样条可以通过每千米小于10千字节、每千米小于20千字节、每千米小于100千字节、每千米小于1兆字节、或每千米任何其它合适的存储尺寸来定义。

道路模型和/或稀疏地图可以存储与路段相关联的轨迹。这些轨迹可以被称为目标轨迹,其被提供给自主车辆以用于自主导航。目标轨迹可以从多个车辆接收,或可以基于从多个车辆接收的实际轨迹或推荐的轨迹(具有一些修改的实际轨迹)来生成。被包括在道路模型或稀疏地图中的目标轨迹可以利用从其它车辆接收的新轨迹被连续地更新(例如,被平均)。

在路段上行驶的车辆可以通过各种传感器收集数据。数据可以包括地标、道路签名轮廓、车辆运动(例如,加速计数据、速率数据)、车辆位置(例如,gps数据),并且或者它们自己可以重建实际轨迹、或向将为车辆重建实际轨迹的服务器发送数据。在一些实施例中,车辆可以向服务器1230发送与轨迹(例如,任意参考系中的曲线)有关的数据、地标数据、沿着行驶路径的车道分配。沿着相同路段行驶的各种车辆在多个驾驶可以具有不同的轨迹。服务器1230可以从通过聚类处理从车辆接收的轨迹中标识与每个车道相关联的路途或轨迹。

图16示出聚类与车辆1205-1225相关联的车辆轨迹以用于确定针对公共路段(例如,路段1200)的目标轨迹的过程。从聚类过程确定的目标轨迹或多个目标轨迹可以被包括在自主车辆道路导航模型或稀疏地图800中。在一些实施例中,沿着路段1200行驶的车辆1205-1225可以向服务器1230发送多个轨迹1600。在一些实施例中,服务器1230可以基于从车辆1205-1225接收的地标、道路几何、和车辆运动信息来生成轨迹。为生成自主车辆道路导航模型,服务器1230可以将车辆轨迹1600聚类成多个簇1605-1630,如图16中所示。

可以使用各种准则执行聚类。在一些实施例中,针对沿着路段1200的绝对航向,簇中的所有驾驶可以是相似的。绝对航向可以从由车辆1205-1225接收的gps信号得到。在一些实施例中,可以使用航位推算得到绝对航向。如本领域技术人员将理解的,航位推算可以被用来确定当前位置,并由此通过使用先前确定的位置、估计的速率等等确定车辆1205-1225的航向。通过绝对航向聚类的轨迹对于标识沿着路面的路途可以是有用的。

在一些实施例中,针对沿着路段1200上的驾驶的车道分配(例如,在枢纽之前或之后的相同的车道中),簇中的所有驾驶可以是相似的。通过车道分配所聚类的轨迹对于标识沿着路面的车道可以是有用的。在一些实施例中,两种准则(例如,绝对航向和车道分配)都可以用于聚类。

在每个簇1605-1630中,可以对轨迹取平均以获得与特定簇相关联的目标轨迹。例如,来自与相同车道簇相关联的多个驾驶的轨迹可以被平均。经平均的轨迹可以是与特定车道相关联的目标轨迹。为了对一簇轨迹取平均,服务器1230可以选择任意轨迹c0的参考系。对于所有的其它轨迹(c1,…,cn),服务器1230可以找到将ci映射到c0的坐标变换,其中i=1,2,…,n,其中,n是与被包括在簇中的轨迹的总数相对应的正整数。服务器1230可以在c0参考系中计算均值曲线或轨迹。

在一些实施例中,地标可以定义在不同驾驶之间的弧长匹配,其可以用于轨迹与车道的对齐。在一些实施例中,在枢纽之前和之后的车道标记可以用于轨迹和车道的对齐。

为了从轨迹组装车道,服务器1230可以选择任意车道的参考系。服务器1230可以将部分重叠的车道映射到所选择的参考系。服务器1230可以继续映射直到所有车道都在相同的参考系中。彼此相邻的车道可以被对齐,就好像它们是相同的车道,并且稍后它们可以被横向偏移。

沿着路段识别的地标可以被映射到公共参考系,首先在车道水平、然后在枢纽水平上映射。例如,相同地标可以在多次驾驶中被多个车辆多次识别。在不同驾驶中接收的关于相同地标的数据可以略为不同。这样的数据可以被平均并且被映射到诸如c0参考系的相同的参考系。另外或者可替换地,可以计算在多个驾驶中接收的相同地标的数据的方差。

在一些实施例中,路段1200的每个车道可以与目标轨迹和某些地标相关联。目标轨迹或多个这样的目标轨迹可被包括在自主车辆道路导航模型中,其可以稍后被沿着相同路段1200行驶的其它自主车辆使用。被车辆1205-1225在车辆沿着路段1200行驶的同时标识的地标可以与目标轨迹相关联地被记录。可以利用从在随后的驾驶中的其它车辆接收到的新数据来连续地或周期地更新目标轨迹和地标的数据。

为了对自主车辆定位,所公开的系统和方法可以使用扩展的卡尔曼滤波器。可以基于三维位置数据和/或三维朝向数据来确定车辆的位置,通过自我运动的整合来进行车辆的当前位置前方的未来位置的预测。可以通过地标的图像观察来纠正或调整车辆的位置。例如,当车辆在由相机捕获的图像之内检测到地标时,可以将地标与被存储在道路模型或稀疏地图800之内的已知地标进行比较。已知地标可以具有沿着被存储在道路模型和/或稀疏地图800中的目标轨迹的已知的位置(例如,gps数据)。基于当前的速率和地标的图像,可以估计从车辆到地标的距离。可以基于到地标的距离和地标的已知位置(被存储在道路模型或稀疏地图800中)来调整沿着目标轨迹的车辆的位置。可以假定被存储在道路模型或稀疏地图800中的地标的位置/位置数据(例如,来自多个驾驶的平均值)是准确的。

在一些实施例中,所公开的系统可以形成闭环子系统,其中,车辆六个自由度位置的估计(例如,三维位置数据加上三维朝向数据)可以被用于导航自主车辆(例如,自主车辆的转向)以到达期望点(例如,在被存储中的前1.3秒)。反过来,从转向和实际导航测量的数据可以用来估计六个自由度位置。

在一些实施例中,诸如灯柱、和电线杆或电缆线杆的沿着道路的杆可以被用作用于本地化车辆的地标。沿着路段的诸如交通标志、交通灯、道路上的箭头、停止线、以及对象的静态特征或签名的其它地标也可以被用作用于本地化车辆的地标。当杆被用于定位时,由于杆的底部可能被遮挡,并且有时它们不在道路平面上,所以可以使用杆的x观察(即,从车辆的观看角度)而不是y观察(即,到杆的距离)。

图17示出可以被用于自主导航的用于车辆的导航系统。为了例示,车辆被称为车辆1205。图17中所示的车辆可以是本文所公开的任何其它车辆,包括,例如,在其它实施例中示出的车辆1210、1215、1220、和1225、以及车辆200。如图12中所示,车辆1205可以与服务器1230通信。车辆1205可以包括图像捕获设备122(例如,相机122)。车辆1205可以包括导航系统1700,所述导航系统1700被配置用于为车辆1205提供导航引导以在道路(例如,路段1200)上行驶。车辆1205还可以包括诸如速率传感器1720和加速计1725的其它传感器。速率传感器1720可以被配置为检测车辆1205的速率。加速计1725可以被配置为检测车辆1205的加速度或减速度。如图17中所示的车辆1205可以是自主车辆,并且导航系统1700可以用于为自主驾驶提供导航引导。可替换地,车辆1205还可以是非自主的、人为控制的车辆,并且导航系统1700仍然可以用于提供导航引导。

导航系统1700可以包括通信单元1705,所述通信单元1705被配置为通过通信路径1235与服务器1230通信。导航系统1700可以包括被配置为接收和处理gps信号的gps单元1710。导航系统1700可以包括至少一个处理器1715,所述至少一个处理器1715被配置为处理诸如gps信号、来自稀疏地图800(其可以被存储在车辆1205上提供的存储设备上或从服务器1230接收)的地图数据、由道路轮廓传感器1730感测的道路几何、由相机122捕获的图像、和/或从服务器1230接收的自主车辆道路导航模型的数据。路轮廓传感器1730可以包括用于测量诸如道路表面粗糙度、道路宽度、道路标高、道路曲率等等的不同类型的道路轮廓的不同类型的设备。例如,道路轮廓传感器1730可以包括测量车辆1205的悬架的运动以导出道路粗糙度轮廓的设备。在一些实施例中,道路轮廓传感器1730可以包括雷达传感器,以测量从车辆1205到道路旁(例如,道路旁的障碍)的距离,从而测量道路的宽度。在一些实施例中,道路轮廓传感器1730可以包括被配置用于测量道路的上下标高的设备。在一些实施例中,道路轮廓传感器1730可以包括被配置为测量道路曲率的设备。例如,相机(例如。相机122或另一相机)可以被用来捕获示出道路曲率的道路的图像。车辆1205可以使用这样的图像来检测道路曲率。

至少一个处理器1715可以被编程为从相机122接收与车辆1205相关联的至少一个环境图像。至少一个处理器1715可以分析至少一个环境图像以确定与车辆1205有关的导航信息。导航信息可以包括与车辆1205沿着路段1200的行驶有关的轨迹。至少一个处理器1715可以基于诸如三维平移和三维旋转运动的相机122的运动(并由此,车辆的运动)来确定轨迹。在一些实施例中,至少一个处理器1715可以基于对由相机122获取的多个图像的分析来确定相机122的平移和旋转运动。在一些实施例中,导航信息可以包括车道分配信息(例如,车辆1205正在哪个车道中沿着路段1200行驶)。从车辆1205向服务器1230发送的导航信息可以被服务器1230使用,以生成和/或更新自主车辆道路导航模型,该导航模型可以从服务器1230被发送回车辆1205,以用于向车辆1205提供自主导航引导。

至少一个处理器1715还可以被编程为从车辆1205向服务器1230发送导航信息。在一些实施例中,导航信息可以连同道路信息一起被发送到服务器1230。道路位置信息可以包括以下各项中的至少一个:由gps单元1710接收的gps信号、地标信息、道路几何、车道信息等等。至少一个处理器1715可以从服务器1230接收自主车辆道路导航模型或该模型的一部分。从服务器1230接收的自主车辆道路导航模型可以包括基于从车辆1205发送到服务器1230的导航信息的至少一个更新。从车辆1205发送到服务器1230的模型的部分可以包括模型的更新后的部分。至少一个处理器1715可以基于接收到的自主车辆道路导航模型或该模型的更新后的部分引起由车辆1205进行的至少一个导航操纵(例如,诸如做出转弯的转向、制动、加速、经过另一车辆等等)。

至少一个处理器1715可以被配置为与被包括在车辆1205中的各种传感器和组件通信,所述各种传感器和组件包括通信单元1705、gps单元1715、相机122、速率传感器1720、加速计1725、和道路轮廓传感器1730。至少一个处理器1715可以从各种传感器和组件收集信息或数据,并通过通信单元1705将信息和数据发送到服务器1230。可替换地或另外,车辆1205的各种传感器或组件也可以与服务器1230通信,并向服务器1230发送由传感器或组件收集的数据或信息。

在一些实施例中,车辆1205-1225可以彼此通信,并且可以彼此共享导航信息,从而,车辆1205-1225中的至少一个可以基于由其它车辆共享的信息来生成自主车辆道路导航模型。在一些实施例中,车辆1205-1225可以彼此共享导航信息,并且每个车辆可以更新在车辆中提供的、它自己的自主车辆道路导航模型。在一些实施例中,车辆1205-1225中的至少一个(例如,车辆1205)可以起到轮毂车辆的作用。轮毂车辆(例如,车辆1205)的至少一个处理器1715可以执行由服务器1230执行的功能中的一些或全部。例如,轮毂车辆的至少一个处理器1715可以与其它车辆通信并且从其它车辆接收导航信息。轮毂车辆的至少一个处理器1715可以基于从其它车辆接收的共享的信息来生成自主车辆道路导航模型或对该模型的更新。轮毂车辆的至少一个处理器1715可以向其它车辆发送用于提供自主导航引导的自主车辆道路导航模型或对模型的更新。

图18是示出用于处理车辆导航信息以用于自主车辆导航的示范性过程1800的流程图。可以由被包括在轮毂车辆中的服务器1230或处理器1715来执行过程1800。在一些实施例中,过程1800可以用于聚合车辆导航信息,以提供自主车辆道路导航模型或更新该模型。过程1800可以包括从多个车辆接收导航信息(步骤1805)。例如,服务器1230可以从车辆1205-1225接收导航信息。导航信息可以与车辆1205-1225沿着其行驶的公共路段(例如,路段1200)相关联。过程1800可以包括存储与公共路段相关联的导航信息(步骤1810)。例如,服务器1230可以在存储设备1410和/或存储器1415中存储导航信息。过程1800可以包括基于导航信息生成自主车辆道路导航模型的至少一部分(步骤1815)。例如,服务器1230可以基于从在公共路段1200上行驶的车辆1205-1225接收的导航信息来生成用于公共路段1200的自主车辆道路导航模型的至少一部分。过程1800还可以包括将自主车辆道路导航模型分发给一个或多个自主车辆(步骤1820)。例如,服务器1230可以将自主车辆道路导航模型或该模型的一部分分发给车辆1205-1225、或稍后在路段1200上行驶的任何其它车辆,以用于沿着路段1200自主地导航车辆。

过程1800可以包括额外的操作或步骤。例如,生成自主车辆道路导航模型可以包括将从沿着路段1200的车辆1205-1225接收的车辆轨迹聚类成多个簇。过程1800可以包括通过对在每个簇中的已聚类的车辆轨迹取平均来确定沿着公共路段1200的目标轨迹。过程1800还可以包括将目标轨迹与公共路段1200的单个车道相关联。过程1800可以包括确定三维样条以在自主车辆道路导航模型中表示目标轨迹。

图19是示出由车辆的导航系统执行的示例过程1900的流程图。可以由被包括在导航系统1700中的处理器1715来执行过程1900。过程1900可以包括从相机接收与车辆相关联的至少一个环境图像(步骤1905)。例如,处理器1715可以从相机122接收与车辆1205相关联的至少一个环境图像。相机122可以在车辆1205沿着路段1200行驶时,捕获围绕车辆1205的环境的一个或多个图像。过程1900可以包括分析至少一个环境图像以确定与车辆有关的导航信息(步骤1910)。例如,处理器1715可以分析从相机122接收的环境图像,以确定诸如沿着路段1200的行驶的轨迹的导航信息。处理器1715可以基于通过,例如,对图像的分析所感测的相机自我运动(例如,三维平移和/或三维旋转运动)来确定车辆1205的行驶的轨迹。

过程1900可以包括将导航信息从车辆发送到服务器(步骤1915)。在一些实施例中,导航信息可以连同道路信息一起从车辆被发送到服务器1230。例如,处理器1715可以经由通信单元1705将导航信息连同诸如车道分配、道路几何的道路信息一起从车辆1205发送到服务器1230。过程1900可以包括从服务器接收自主车辆道路导航模型或该模型的一部分(步骤1920)。例如,处理器1715可以从服务器1230接收自主车辆道路导航模型或该模型的一部分。模型或模型的一部分可以包括基于从车辆1205发送的导航信息的对模型的至少一个更新。处理器1715可以更新在车辆1205的导航系统1700中提供的现有模型。过程1900可以包括基于自主车辆道路导航模型引起由车辆进行的至少一个导航操纵(步骤1925)。例如,处理器1715可以引起车辆1205转向、做出转弯、改变车道、加速、制动、停止等等。处理器1715可以向节流系统220、制动系统230、和转向系统240中的至少一个传送信号,以引起车辆1205执行导航操纵。

过程1900可以包括由处理器1715执行的其它操作或步骤。例如,导航信息可以包括用于车辆沿着路段行驶的目标轨迹,并且过程1900可以包括由处理器1715聚类与在路段上行驶的多个车辆有关的车辆轨迹、并基于所聚类的车辆轨迹确定目标轨迹。聚类车辆轨迹可以包括,由处理器1715基于车辆的绝对航向或车辆的车道分配中的至少一个将与在路段上行驶的车辆有关的多个轨迹聚类成多个簇。生成目标轨迹可以包括,由处理器1715对所聚类的轨迹取平均。如上所述的由服务器1230执行的其它过程或步骤也可以被包括在过程1900中。

所公开的系统和方法可以包括其它特征。例如,所公开的系统可以使用本地坐标,而不是全球坐标。对于自主驾驶,一些系统可以在世界坐标中呈现数据。例如,可以使用地球表面上的经度和纬度坐标。为了将地图使用于转向,主车辆必须知道相对于地图它的位置和朝向。使用车载gps设备以便在地图上定位车辆以及以便找到本体参考系和世界参考系(例如,北部、东部、和向下)之间的旋转变换似乎是自然的。一旦本体参考系与地图参考系对齐,就可以在本体参考系中表达期望路途并且可以计算或生成转向命令。

然而,此策略的一个可能的问题是当前gps技术不经常提供本体位置并且不具有充足精度和可用性。为了克服此问题,已经提议使用其世界坐标已知的地标。该想法是构建非常详细的地图(称为高清晰度或hd(highdefinition,高清)地图),其包含不同种类的地标。假定车辆被配备有能够在它自己的参考系中检测和定位地标的传感器。一旦找到车辆和地标之间的相对位置,就从hd地图取地标的世界坐标,并且车辆能够使用它们计算它自己的位置和姿态。

此方法仍然使用世界坐标系统作为建立地图和本体参考系之间的对齐的中介者。也就是说,使用地标是为了补偿在车辆上的gps设备的限制。地标与hd地图一起,可以使得能够计算全球坐标中的精确的车辆姿态,并由此解决地图-本体对齐问题。

在所公开的系统和方法中,可以将许多地图碎片或本地地图用于自主导航,而不是使用世界的一个全球地图。地图的每个碎片或每个本地地图可以定义它自己的坐标系。这些坐标系可以是任意的。本地地图中的车辆的坐标可以不需要指示车辆在地球的表面上定位在何处。而且,可以不要求本地地图在大规模上准确,意味着可以不存在能够在全球世界坐标系统中插入本地地图的坐标变换。

存在与世界的此表示相关联的两个主要过程,一个与地图的生成有关,另一个与使用它们有关。针对地图生成,可以通过众包来创建和维护此类型的表示。因为hd地图的使用是有限的,所以可以不需要应用复杂的勘测装备,并由此众包变得可行。针对使用,可以采用不通过标准的世界坐标系来对齐本地地图和本体参考系的高效的方法。因此,至少在大多数场景和环境中,可以不需要具有在全球坐标中的对车辆位置和姿态的精确估计。可以将本地地图的存储占用保持为非常小。

地图生成的潜在原则是自我运动的整合。车辆感测相机在空间中的运动(3d平移和3d旋转)。车辆或服务器可以通过随时间推移的自我运动的整合来重建车辆的轨迹,并且此整合的路径可以被用作用于道路几何的模型。此过程可以与近距离车道标记的感测组合,然后重建的路途可以反映车辆应该遵循的路径而并非车辆遵循过的特定路径。换句话说,重建的路途或轨迹可以基于与近距离车道标记有关的感测的数据来修改,并且修改后的重建轨迹可以被用作推荐轨迹或目标轨迹,该推荐轨迹或目标轨迹可以被保存在道路模型或稀疏地图中,以被导航相同路段的其它车辆使用。

在一些实施例中,地图坐标系统可以是任意的。相机参考系可以在任意时间被选择,并且被用作地图原点。可以在该特定的所选择系的坐标系统中表达相机的整合的轨迹。地图中的路途坐标的值可以不直接表示在地球上的位置。

该整合路径可以累积误差。这可能是由于自我运动的感测可能不是绝对准确的事实。累积的误差的结果是本地地图可能分歧,并且本地地图可能不被视为全球地图的本地副本。本地地图碎片的尺寸越大,从地球上的“真实”几何的偏差就越大。

本地地图的任意性和分歧可能不是设计原则,而可以宁可说是后果。这些属性可以是整合方法的后果,所述整合方法可以被应用以便(由沿着道路行驶的车辆)以众包方式构建地图。然而,车辆可以成功地将本地地图使用于转向。

所提议的地图可以在长距离上分歧。由于地图被用来计划车辆附近的轨迹,所以该分歧的效果是可接受的。在任何时间实例,系统(例如,服务器1230或车辆1205)可以重复对齐程序,并且使用地图来预测道路位置(在相机坐标系中)某些前1.3秒(或诸如1.5秒、1.0秒、1.8秒等等的任何其它秒数)。只要通过该实例的所累积的误差足够小,那么为自主驾驶提供的转向命令可以被使用。

在一些实施例中,本地地图可以集中在本地区域,并且可能不覆盖太大的区域。这意味着在自主驾驶中使用本地地图来转向的车辆可以到达离地图终点的某些点,并且可能必须切换到地图的另一本地碎片。该切换可以被彼此重叠的本地地图启用。一旦车辆进入两个地图公共的区域,系统(例如服务器1230或车辆1205)就可以基于第一本地地图(正在被使用的地图)继续生成转向命令,但是同时,系统可以在与第一本地地图重叠的另一地图(或第二本地地图)上本地化车辆。换句话说,系统可以同时将相机的当前的坐标系与第一地图的坐标系和第二地图的坐标系对齐。当建立了新的对齐时,系统可以切换到另一地图并在那里计划车辆轨迹。

所公开的系统可以包括额外的特征、该特征之一与系统将车辆的坐标系与地图对齐的方式有关。如以上所说明的,假设车辆可以测量它对地标的相对位置,则地标可以被用于对齐。这在自主驾驶中是有用的,但有时它可能导致对大量地标的需求,并由此导致对大量存储器占用的需求。所公开的系统因此可以使用解决此问题的对齐程序。在对齐程序中,系统可以使用稀疏地标和自我运动的整合来为沿着道路的车辆的位置计算1d估计器。系统它自己可以使用轨迹的形状,以使用在以下其它部分中详细讨论的尾部对齐方法来计算对齐的旋转部分。想法是车辆在驾驶“尾部”的同时重建它自己的轨迹,并且计算围绕它的沿着道路的假设位置的旋转,以便将尾部和地图对齐。

在所公开的系统和方法中,仍然可以使用gps设备。全球坐标可以被用于索引存储轨迹和/或地标的数据库。车辆附近的相关的本地地图的碎片和相关的地标可以被存储在存储器中,并且可以使用全球gps坐标从存储器被检索。然而,在一些实施例中,全球坐标可以不用于路径计划,并且可以不准确。在一个示例中,全球坐标的使用可以被限制为对信息的索引。

在“尾部对齐”不能运作良好的情形中,系统可以使用大量的地表来计算车辆的姿态。这可以是罕见的情况,并由此对存储器占用的影响可以是适度的。道路十字路口是这样的情形的示例。

所公开的系统和方法可以使用语义地标(例如,交通标志),因为它们能够从现场被可靠地检测到,并且能够与被存储在道路模型或稀疏地图中的地标相匹配。如以上讨论的,在有些情况下,所公开的系统也可以使用非语义地标(例如,通用标志),并且在这样的情况下,非语义地标可以被附接到外观签名。系统可以将学习方法使用于遵循“相同或不相同”识别范例的签名的生成。

例如,给定沿着驾驶带有gps坐标的许多驾驶,所公开的系统可以产生底层的道路结构枢纽和路段。假设道路彼此足够远以致于能够使用gps区分它们。仅仅需要粗粒度地图。为了生成潜在的道路结构图形,空间可以被划分为给定分辨率(例如,50m×50m))的格子。每个驾驶可以被看作格子地点的有序列表。系统可以对属于一驾驶的每个格子地点着色,以产生合并后的驾驶的图像。被着色的格子点可以被表示为在合并后的驾驶上的节点。从一个节点经过到另一节点的驾驶可以被表示为链路。系统可以填满图像中的小孔,以避免区分车道并纠正gps误差。系统可以使用合适的细化算法(例如,被命名为“zhang-suen”细化算法的算法)来获得图像的骨架。此骨架可以表示底层的道路结构,并且可以使用掩码(例如,连接到至少三个其它点的点)来找到枢纽。枢纽被找到之后,段可以是连接它们的骨架部分。为了将驾驶匹配回骨架,系统可以使用隐马尔科夫模型。每个gps点可以与格子地址相关联,所述格子地址具有与它距该地址的距离相反的概率。使用合适的算法(例如,被命名为“维特比”算法的算法)将gps点与格子地点匹配,而不允许将连续的gps点与非相邻的格子地点匹配。

多个方法可以被用于将驾驶映射回地图。例如,第一解决方案可以包括在细化过程期间保持跟踪。第二解决方案可以使用接近度匹配。第三解决方案可以使用隐马尔科夫模型。隐马尔科夫模型对每个观察假定潜在隐藏状态,并且为给定状态的给定观察、和给定先前状态的状态分配概率。维特比算法可以被用来找到给定观察的列表的最可能的状态。

所公开的系统和方法可以包括额外的特征。例如,所公开的系统和方法可以检测公路入口/出口。可以使用gps数据将在相同区域中的多个驾驶合并到相同的坐标系统。系统可以使用可视特征点来映射和定位。

在一些实施例中,在相对于由在先前驾驶中穿越相同的道路的伸展的车辆生成的地图而言(映射阶段)的一个驾驶(定位阶段)中,为了登记移动车辆的定位和朝向的目的,通用可视特征可以被用作地标。这些车辆可以配备有对车辆周围成像的校准相机、和gps接收器。车辆可以与维护最新地图的中央服务器(例如,服务器1230)通信,该地图包括被连接到其它显著的几何的和语义的信息(例如,车道结构、道路标志的类型和定位、道路标记的类型和定位、由物理障碍物的位置描绘出的附近可驾驶的地面区域的形状、当由人类驾驶员控制时先前被驾驶过的车辆路径的形状)的这些可视地标。在映射阶段和定位阶段两者中,道路的每长度的中央服务器和车辆之间通信的数据的总量小。

在映射阶段,所公开的系统(例如,车辆或服务器)可以检测特征点(featurepoint,fp)并且计算它们的描述符(例如,使用fast/brisk/orb检测器和描述符、或使用以下讨论的数据库来训练的检测器/描述符对)。系统可以使用在图像平面中的fp的运动、并且通过使用在描述符空间中的例如欧几里德或汉明距离来匹配它们的描述符,在fp出现的帧之间跟踪fp。系统可以使用跟踪到的fp来估计相机运动、和在其上fp被检测到和被跟踪到的对象的世界位置。系统可以将fp分类为在未来驾驶中将很可能被检测到的fp(例如,在瞬间移动的对象上、停放的汽车上和阴影纹理上检测到的fp将很可能在未来驾驶中不重新出现)。此再现性分类(reproducibilityclassification,rc)可以是围绕被检测到的fp的图像金字塔的区中的强度、在图像平面中所跟踪的fp的运动两者的函数,在该图像平面中fp和它的3d位置被成功地跟踪到/检测到。在一些实施例中,车辆可以向服务器1230传送表示性的fp描述符(从观察的集合计算出的),相对于车辆的所估计的3d位置、和瞬间的车辆gps坐标。

在映射阶段期间,当映射车辆和中央服务器之间的通信带宽被限制时,当fp或地图中的其它语义地标(诸如道路标志和车道结构)的呈现被限制并且不足以用于定位的目的时,车辆可以以高频率向服务器传送fp。虽然在映射阶段的车辆可以以低空间频率传送fp,但是这些fp可以在服务器中结块。对再次发生的fp的检测也可以由服务器来执行,并且服务器可以存储再次发生的fp的集合。地标的可视外观至少在有些情况下可以对它们被捕获的当日时间或季节灵敏。为了增加fp的再现性概率,可以由服务器将这些二进制成时刻二进制和季节二进制(seasonbin)。

车辆可以向服务器传送在附近的fp坐标系统中其它语义和几何信息(车道形状、道路平面的结构、障碍物的3d位置、在映射裁剪瞬间坐标系统中的自由空间、在到停放位置的设置驾驶中的由人类驾驶员驾驶的路径)。

在定位阶段,服务器可以向车辆传送包含以fp位置的形式的地标、和描述符的地图。特征点(fp)可以在当前连续帧的集合之内几乎实时地被检测到和被跟踪到。跟踪到的fp可以被用来估计相机运动和fp的世界位置。可以搜索当前检测到的fp描述符以匹配具有gps坐标的地图fp的列表,所述gps坐标在来自瞬间的gps读取的、被估计的有限gps不确定性半径之内。可以通过搜索在描述符空间中最小化欧几里德或汉明距离的当前fp和映射fp的所有对来完成匹配。使用fp匹配以及它们的当前位置和地图位置,可以登记瞬间的车辆位置和本地地图坐标系统之间的旋转和平移。

所公开的系统和方法可以包括用于训练再现性分类器的方法。可以按照下面的方案之一来执行训练,以便增涨标注成本和分类器精度。

在第一方案中,可以收集包括由具有匹配瞬间的车辆gps位置的车辆相机记录的大量裁剪的数据库。该数据库可以包括驾驶的代表性样本(针对各种属性:例如,当日时间、季节、天气条件、路面的类型)。在相似的gps位置和航向、从不同驾驶的帧所提取的特征点(fp)可以在gps不确定性半径之内被潜在地匹配。不匹配的fp可以被标注不可再生,并且那些匹配的fp可以被标注可再生。给定了在图像金字塔中分类器的外观、它相对于车辆的瞬间的位置和在其中它被成功地跟踪到的视点位置的范围,然后可以训练分类器以预测fp的再现性标注。

在第二方案中,还可以由负责注释在裁剪之间的fp匹配的人类来标注从在第一方案中描述的裁剪数据库提取的fp对。

在第三方案中,使用光探测和测距(lightdetectionandranging,lidar)测量来增强第一方案的车辆位置、车辆的朝向、和图像像素深度,从而具有精确的车辆位置、车辆的朝向、和图像像素深度的数据库可以用于准确地匹配在不同驾驶中的世界位置。然后可以在图像区计算特征点描述符,所述图像区与在不同视点和驾驶时间的那些世界点相对应。然后可以训练分类器以预测在描述符空间中的平均距离,所述描述符间距是描述符位于距它的所匹配的描述符的间距。在这种情况下,可以按照可能具有低描述符距离来测量再现性。

上传推荐的、并非实际的轨迹

与所公开的实施例一致的,系统可以基于穿越公共路段的车辆的所观察到的轨迹(例如,其可以与由车辆转发到服务器的轨迹信息相对应)来生成自主车辆道路导航模型。然而,所观察到的轨迹可以不与被穿越路段的车辆采取的实际轨迹相对应。相反,在某些情形中,可以相对于由车辆确定的实际重建的轨迹来修改上传到服务器的轨迹。例如,车辆系统,在重建实际被采取的轨迹的同时,可以使用传感器信息(例如,对由相机提供的图像的分析)来确定它自己的轨迹可能不是对于路段的优选轨迹。例如,车辆可以基于来自车载相机的图像数据确定它没有在车道的中心驾驶、或它在一段确定的时间内越过车道边界。在这样的情况下,除了其它以外,可以基于从传感器输出推导的信息做出对车辆的重建的轨迹(穿越的实际路径)的完善。然后完善后的轨迹,并非实际轨迹,可以被上传到服务器以便在建造或更新稀疏数据地图800中潜在的使用。

参考图12和图17,车辆1205可以与服务器1230通信。车辆1205可以是自主车辆或传统的、主要人为控制的车辆。当车辆1205沿着路段1200行驶时,车辆1205可以收集(例如,检测、感测、测量)关于路段1200的数据。所搜集的数据可以包括诸如道路几何,包括标志、道路标记等等的已识别地标的导航信息。车辆1205可以将收集的数据发送到服务器1230。服务器1230可以基于从车辆1205接收的数据生成和/或更新自主车辆道路导航模型。自主车辆道路导航模型可以包括表示沿着特定路段的行驶的偏好路径的多个目标轨迹。

如图17中所示,车辆1205可以包括导航系统1700。导航系统可以包括被配置用于存储自主车辆道路导航模型和/或地图数据(例如,稀疏地图800的地图数据)的存储设备(例如,硬盘驱动器、存储器)。应该注意到,存储设备可以存储来自稀疏数据地图800的整个道路模型的本地副本。交替地,存储设备可以仅仅存储当需要时被提供给导航车辆的稀疏数据地图的部分(例如,本地地图)。在这样的实施例中,本地地图可以仅仅被临时地存储在存储设备中,并且在一个或多个新接收的本地地图的接收时、或在确定车辆已经离开特定导航区域或地区之后,本地地图可以从存储设备中被清除。导航系统1700可以包括至少一个处理器1715。

导航系统1700可以包括诸如相机122、gps单元1710、道路轮廓传感器1730、速率传感器1720、和加速计1725的一个或多个传感器。车辆1205可以包括诸如雷达传感器的其它传感器。被包括在车辆1205中的传感器可以在车辆1205沿着路段1200行驶时收集与路段1200有关的数据。

处理器1715可以被配置为从一个或多个传感器接收指示车辆1205的运动的输出。例如,加速计1725可以输出指示相机122的三维平移和/或三维旋转运动的信号。速率传感器可以输出车辆1205的速率。道路轮廓传感器1730可以输出指示道路粗糙度、道路宽度、道路标高、道路曲率的信号,其可以被用于确定车辆1205的运动或轨迹。

处理器1715可以基于来自一个或多个传感器的输出来确定车辆1205的实际轨迹。例如,基于对从相机122输出的图像的分析,处理器1715可以标识沿着路段1200的地标。地标可以包括交通标志(例如,限速标志)、方向标志(例如,指向不同路途或地方的公路方向标志)、和通用标志(例如,与诸如色彩模式的独特签名相关联的矩形商业标志)。标识的地标可以与被存储在稀疏地图800中的地标相比较。当找到匹配时,被存储在稀疏地图800中的地标的位置可以被用作标识的地标的位置。标识的地标的位置可以用于确定沿着目标路径的车辆1205的位置。在一些实施例中,处理器1715还可以基于由gps单元1710输出的gps信号来确定车辆1205的位置。

处理器1715可以基于来自加速计1725、相机122、和/或速率传感器1720的输出来确定车辆运动。例如,速率传感器1720可以将车辆1205的当前速率输出到处理器1715。加速计1725可以将指示车辆1205的三维平移和/或三维旋转的信号输出到处理器1715。相机122可以将车辆1205的周围环境的多个图像输出到处理器1715。基于来自多个传感器和设备的输出,处理器1715可以确定车辆1205的实际轨迹。实际轨迹反映车辆1205已经采取或正在采取的实际路径,包括,例如,车辆1205已经驶入或正在驶入沿着路段1200的哪个车道,以及车辆1205已经沿着什么不同的路段行驶。

处理器1715可以从相机122接收与车辆1205相关联的至少一个环境图像。例如,相机122可以是面向前面的相机,其可以捕获在车辆1205前面的环境的图像。相机122可以面向其它方向,诸如车辆1205的侧面或车辆1205的后方。车辆1205可以包括面向不同方向的多个相机。处理器1715可以分析至少一个环境图像以确定与至少一个导航约束相关联的信息。导航约束可以包括以下各项中的至少一个:障碍(例如,车道分离障碍)、对象(行人、灯柱、交通灯柱)、车道标记(例如,黄色实线车道标记)、标志(例如,交通标志、方向标志、通用标志)、或另一车辆(例如,前方车辆、跟随车辆、在车辆1205的侧面行驶的车辆)。

处理器1715还可以确定用于发送到服务器1230的目标轨迹。目标轨迹可以与由处理器1715基于传感器输出所确定的实际轨迹相同。在一些实施例中,目标轨迹可以不同于基于传感器输出所确定的实际轨迹。目标轨迹可以包括基于与至少一个导航约束相关联的确定的信息而对实际轨迹的一个或多个修改。

例如,由相机122捕获的环境图像可以包括障碍,诸如改变车道(例如,当由于前方事故而临时转移车道)的车辆1250之前100米的临时车道转变障碍100。处理器1715可以从图像检测临时车道转变障碍,并且遵从临时车道转变,采取不同于与被存储在道路模型或稀疏地图中的目标轨迹相对应的车道的车道。实际轨迹可以反映车道的这种改变。然而,车道转变是临时的,并且可以在接下来10、15、或30分钟内被清除。因此,车辆1205可以修改车辆1205已经采取的实际轨迹(即,车道的偏移),以反映目标轨迹应该不同于车辆1205已经采取的实际轨迹。例如,系统可以识别到所行驶的路径不同于对于道路的优选的轨迹。因此,系统可以在向服务器上传轨迹信息之前调整重建的轨迹。在其它实施例中,实际的重建的轨迹信息可以被上传,通过一个或多个推荐的轨迹进行的完善(例如,将要对重建的轨迹的至少一部分进行的尺寸和方向的平移)也可以被上传。在一些实施例中,处理器1715可以向服务器1230发送修改后的实际轨迹。服务器1230可以基于接收到的信息生成或更新目标轨迹,并且可以向稍后在相同路段上行驶的其它自主车辆发送目标轨迹。

作为另一示例,环境图像可以包括诸如突然出现在路段1200中的行人的对象。处理器1715可以检测到行人,并且车辆1205可以改变车道以避免与行人的碰撞。基于感测的数据所重建的车辆1205的实际轨迹可以包括车道的改变。然而,行人可能很快离开路面。所以,车辆1205可以修改实际轨迹(或确定推荐的修改),以反映目标轨迹应该不同于所采取的实际轨迹(因为行人的出现是临时状况,其在目标轨迹确定中不应该被考虑)。在一些实施例中,当实际轨迹被修改时,车辆可以向服务器发送指示与预定轨迹的临时偏差的数据。数据可以指示偏差的原因,或服务器可以分析数据以确定偏差的原因。知道偏差的原因可以是有用的。例如,当偏差是由于驾驶员注意到最近发生的事故,并转方向盘作为响应以避免碰撞时,服务器可以基于偏差的原因计划对与路段相关联的模型或特定轨迹的更适度的调整。作为另一示例,当偏差的原因是行人穿过道路时,服务器可以确定没有必要在将来改变轨迹。

作为另一示例,环境图像可以包括指示车辆1205或许是在人类驾驶员的控制下,正稍微地驾驶在车道的外部的车道标记。处理器1715可以从所捕获的图像检测车道标记,并且可以修改车辆1205的实际轨迹,以对从车道的离开作出应对。例如,偏移可以被应用于重建的轨迹,使得其落入所观察车道的中心之内。

图20示出示例存储器2000。存储器2000可以包括各种模块,所述各种模块当被处理器执行时,可以引起处理器执行所公开的方法。例如,存储器2000可以包括实际轨迹确定模块2005。实际轨迹确定模块2005当被处理器(例如,处理器1715或其它处理器)执行时,可以引起处理器基于从被包括在车辆中的一个或多个传感器输出的或接收的数据来确定车辆的实际轨迹。例如,处理器可以基于从加速计1725、相机122、和/或速率传感器1720中的一个或多个接收的信号来重建实际轨迹。在一些实施例中,处理器可以基于指示车辆的运动的、从传感器接收的输出来确定实际轨迹。

存储器2000还可以包括目标轨迹确定模块2010。目标轨迹确定模块2010当被处理器执行时,可以引起处理器基于实际轨迹确定目标轨迹。例如,基于从传感器接收的数据,处理器可以确定需要对实际轨迹做出一个或多个修改。修改后的实际轨迹可以被用作用于向服务器(例如,服务器1230)发送的目标轨迹。目标轨迹可以表示用于当其它自主车辆稍后在相同路段上行驶时所遵循的、比实际轨迹更好的轨迹。在一些实施例中,处理器可以确定包括实际轨迹和基于与导航约束相关联的信息的一个或多个修改的目标轨迹。

存储器2000还可以包括图像分析模块2015。图像分析模块当被处理器执行时,可以引起处理器使用各种图像分析算法分析由相机(例如,相机122)捕获的一个或多个图像。例如,处理器可以分析环境的图像以标识地标、至少一个导航约束,或计算从车辆到地标的距离等等。

图21是示出用于向服务器上传推荐的轨迹的流程图。可以由诸如被包括在自主车辆1205的导航系统1700中的处理器1715的、被包括在车辆的导航系统中的处理器来执行过程2100。过程2100可以包括从一个或多个传感器接收指示车辆的运动的输出(步骤2105)。例如,处理器1715可以从诸如指示车辆1205的三维平移和/或三维旋转运动的加速计1725的惯性传感器接收输出。过程2100可以包括基于来自一个或多个传感器的输出来确定车辆的实际轨迹(步骤2110)。例如,处理器1715可以分析来自相机122的图像、来自速率传感器1720的速率、来自gps单元1710的位置信息、来自加速计1725的运动数据,以确定实际轨迹。过程2100可以包括从相机接收与车辆相关联的至少一个环境图像(步骤2115)。例如,处理器1715可以从相机122接收与车辆1205相关联的至少一个环境图像。相机122可以是面向前面的相机,其可以捕获在车辆1205前面的环境的图像。过程2100可以包括分析至少一个环境图像以确定与至少一个导航约束相关联的信息(步骤2120)。例如,处理器1715可以分析来自相机122的环境图像,以检测图像中的障碍、对象、车道标记、标志、或另一车辆中的至少一个。过程2100还可以包括确定目标轨迹,其包括实际轨迹和基于与导航约束相关联的所确定的信息对实际轨迹进行的一个或多个修改(步骤2125)。例如,基于从环境图像检测到的障碍、对象、车道标记、标志、或另一车辆中的至少一个,处理器1715可以修改实际轨迹,例如,以包括除了车辆1205正在其中行驶的车道和道路之外的车道或道路。修改后的实际轨迹可以被用作目标轨迹。目标轨迹可以反映比车辆1205正在采取的实际轨迹更安全或更好的轨迹。过程2100还可以包括向服务器发送目标轨迹(步骤2130)。例如,处理器1715可以将目标轨迹从车辆1205发送到服务器1230。服务器1230可以将从车辆1205接收的目标轨迹发送到其它车辆(其可以是自主车辆,或传统的、人为操作的车辆)。其它车辆可以基于目标轨迹改变它们的车道或路径。在一些实施例中,过程2100可以包括超驰由服务器建议的轨迹的改变。例如,当车辆接近车道分裂,并且服务器确定将当前车道改变到已经被临时封闭或被标记用于其它交通的车道时,处理器1715可以基于对临时封闭的检测(例如,从由车辆上的相机捕获的图像)通过服务器超驰该确定。

过程2100可以包括其它操作或步骤。例如,处理器1715可以从服务器1230接收目标轨迹。目标轨迹可以从在相同的路段1200上、在车辆1205之前行驶的其它车辆被发送到服务器1230。处理器1715可以利用从服务器1230接收的目标轨迹更新在导航系统1700中提供的自主车辆道路导航模型,并且引起车辆1205做出诸如改变车道的导航操纵。

地标标识

与所公开的实施例一致的,系统可以标识地标以在自主车辆道路导航模型中使用。此标识可以包括地标类型、物理尺寸、和所标识地标的位置的确定、以及其它特性。

图22示出包括用于标识地标以在自主车辆中使用的系统的示例环境。在该示例中,图22示出路段2200。车辆2201和车辆2202可以正沿着路段2200行驶。沿着路段2200,可以存在一个或多个标志或对象(例如,对象2205和对象2206),其可以被标识为地标。地标可以被存储在自主车辆道路导航模型或稀疏地图(例如,稀疏地图800)中。地标的实际图像不需要被保存在模型或稀疏地图中。相反,如先前讨论的,表征地标类型、位置、物理尺寸,以及,在某些情况下,浓缩的图像签名的少量的数据可以被存储在模型或稀疏地图中,从而减小存储模型或稀疏地图、和/或向自主车辆发送稀疏地图中的一些或全部所要求的存储空间。此外,并非沿着路段出现的每个地标都被存储。模型或稀疏地图可以具有所识别地标的稀疏记录,其可以彼此沿着路段隔开至少50米、100米、500米、1千米、2千米等等。地标的稀疏记录还减小存储与地标有关的数据所要求的存储空间。被存储在模型和/或稀疏地图中的地标可以被用于沿着路段2200导航的自主车辆。例如,被包括在稀疏数据地图800中的所识别地标可以被用于定位车辆2201和车辆2202(例如,确定沿着被存储在模型或稀疏地图中的目标轨迹的车辆2201和车辆2202的位置)。

车辆2201和车辆2202可以是自主车辆,并且可以与在其它实施例中公开的车辆相似。例如,车辆2201和车辆2202可以包括诸如至少一个图像捕获设备(例如,图像捕获设备或相机122)的、被包括在车辆200中的组件和设备。车辆2201和2202可以各自包括与处理器180、190或处理单元110相似的至少一个处理器2210。车辆2201和车辆2202中的每一个可以包括通信单元2215,其可以经由一个或多个网络(例如,通过蜂窝网络和/或互联网等等)与服务器2230通信。

服务器2230可以包括硬件组件(例如,电路、开关、网络卡)和软件组件(例如,通信协议、计算机可读指令或代码)两者。例如,服务器2230可以包括通信单元2231,其被配置为与车辆2201和车辆2202的通信单元2215通信。服务器2230可以包括至少一个处理器2232,其被配置为处理诸如自主车辆道路导航模型、稀疏地图(例如,稀疏地图800)、和/或从车辆2201和车辆2202接收的导航信息的数据。导航信息可以包括从车辆2201和车辆2202接收的诸如地标的图像、地标标识符、全球定位系统信号、自我运动数据、速率、加速度、道路几何(例如,道路轮廓、车道结构、路段2200的标高)等等的任何信息。服务器2230可以包括存储设备2233,其可以是硬盘驱动器、光盘、存储器、或其它非瞬时性计算机可读介质。

当车辆2201和车辆2202沿着路段2200行驶时,车辆可以经由相机122捕获车辆的环境的至少一个图像。环境的图像可以包括标志、或地标2205和地标2206的图像。在一些实施例中,与地标2205和地标2206相关联的至少一个标识符可以被车辆2201和车辆2202确定,并且标识符可以从车辆被发送到服务器2230。在一些实施例中,与地标2205和地标2206相关联的至少一个标识符可以由服务器2230基于由相机122捕获并且被发送到服务器2230的地标2205和地标2206的图像来确定。

例如,安装在主车辆上的相机122(例如,车辆2201主相机122)可以获取表示车辆2201的环境(例如,在车辆2201的前面)的至少一个图像。被包括在车辆2201中的处理器2215可以分析至少一个图像以在主车辆的环境中标识地标(例如,地标2206)。处理器2215还可以分析至少一个图像以确定与地标相关联的至少一个标识符。

在一些实施例中,处理器2215可以然后向服务器2230发送至少一个标识符。服务器2230(例如,通过处理器2232和通信单元2231)可以接收与地标相关联的至少一个标识符。处理器2232可以将地标与对应的路段2200相关联。处理器2232可以更新相对于对应的路段2200的自主车辆道路导航模型,以包括与地标相关联的至少一个标识符。处理器2232可以将更新后的自主车辆道路导航模型分发给诸如车辆2201和车辆2202、以及稍后沿着路段2200行驶的其它车辆的多个自主车辆。

与地标(例如,地标2205或地标2206)相关联的至少一个标识符可以包括地标的位置。可以基于由安装在车辆2201和车辆2202上的各种传感器或设备提供的信号(例如,gps信号,车辆运动信号)来确定位置。标识符可以包括地标的形状。例如,标识符可以包括指示地标2205的矩形形状、或地标2206的三角形形状的数据。标识符可以包括地标的尺寸。例如,标识符可以包括指示矩形标志2205和/或三角形标志2206的宽度和/或高度的数据。标识符可以包括地标相对于另一地标的距离。例如,与地标2206相关联的标识符可以包括从地标2206到地标2205的距离d。距离d被示出为沿着路段2200的地标2205和地标2206之间的距离。也可以使用诸如横跨路段2200的地标2205和地标2206之间的直接距离的其它距离。在一些实施例中,距离可以指代从所识别地标(例如,2206)到先前已识别地标(例如,沿着路段2200往回至少50米、100米、500米、1千米、2千米的被识别的地标)的距离。

在一些实施例中,可以基于被标识为多个地标类型中的一个的地标来确定标识符。换句话说,标识符可以是地标的类型。地标类型包括交通标志(例如,限速标志)、标杆(例如,灯柱)、方向指示符(例如,具有指示方向的箭头的公路出口标志)、商业标志(例如,诸如标志2205的矩形标志)、反射镜(例如,为了安全用途的在弯道处的反光的镜子)、距离标记等等。每个类型可以与独特标签(例如,数字值、文本值等等)相关联,所述标签要求很少的数据存储(例如,4字节、8字节等等)。当地标被识别为特定的、被存储的类型时,与地标的类型相对应的标签可以连同地标的其它特征(例如,尺寸、形状、位置等等)一起被存储。

地标可以被分类为两个类别:与驾驶直接有关的地标、和与驾驶不直接有关的地标。与驾驶直接有关的地标可以包括交通标志、道路上的箭头、车道标记、交通灯、停止线等等。这些地标可以包括标准形式。与驾驶直接相关的地标可以容易地被自主车辆识别为某一类型。因此,可以利用小的数据存储空间(例如,1字节、2字节、4字节、8字节等等)来存储与地标的类型相对应的标签。例如,具有数字值“55”的标签可以与停车标志相关联、具有数字值“100”的标签可以与速率限制相关联、具有数字值“108”的标签可以与交通灯相关联等等。

与驾驶不直接有关的地标可以包括,例如,灯柱、方向标志、商业标志或公告牌(例如,用于广告)。这些地标可以不具有标准形式。诸如用于广告的公告牌和灯柱的与驾驶不直接有关的地标可能不容易被自主车辆识别。如同公告牌的标志可以被称为通用标志。通用标志可以使用浓缩的签名表示(或浓缩的签名)来标识。例如,与通用标志地标相关联的标识符可以包括从地标的图像的推导出的浓缩的签名表示。可以使用表示浓缩的签名的数据,而不是地标的实际图像来存储通用标志地标。浓缩的签名可以要求小的数据存储空间。在一些实施例中,浓缩的签名可以由一个或多个整数来表示,所述一个或多个整数可以仅仅要求几个字节的数据存储。浓缩的签名表示可以包括从地标的图像提取或从地标的图像推导出的独特特征、模式、或特性。地标的浓缩的签名表示可以指示地标的出现。

地标的标识符可以被存储在可以被用来向自主车辆提供导航引导的自主车辆道路导航模型或稀疏地图800之内。例如,当另一车辆稍后沿着路段2200驾驶时,用于所识别地标的先前确定的位置可以被用于该车辆相对于针对路段的目标轨迹的位置的确定。

图23示出包括用于标识地标以在自主车辆中使用的系统的示例环境。车辆2301和车辆2302(其可以是自主车辆)可以沿着路段2200行驶。车辆2301和2302可以与在其它实施例中公开的其它车辆(例如车辆200、2201、和2202)相似。车辆2301可以包括相机122、处理器2310、和通信单元2315。车辆2302可以包括相机122、处理器2311、和通信单元2315。在这个实施例中,车辆2301和车辆2302之一可以起到轮毂车辆(例如,车辆2301)的作用,其可以执行由在图22中示出的实施例中的服务器2230执行的功能。例如,与服务器2230相似的服务器可以被安装在轮毂车辆2301上,以执行与由服务器2230执行的那些功能相似的功能。作为另一示例,在车辆2310上提供的处理器2310可以执行服务器2230的功能中的一些或全部。

如图23中所示,车辆2301和2302可以通过通信单元2315、2316、和通信路径2340彼此通信。在路段2200上的其它自主车辆,虽然在图23中未示出,也可以与轮毂车辆2301通信。车辆2302(和其它车辆)可以将由在车辆2302上的处理器2311捕获或处理的地标数据(例如,地标2206的图像)发送到在轮毂车辆2301上的处理器2310。车辆2302还可以将其它导航信息(例如,道路几何)发送到轮毂车辆2301。在一些实施例中,在轮毂车辆2301上的处理器2310可以处理从车辆2302接收的地标数据,以确定与由车辆2302检测到的地标相关联的标识符。在一些实施例中,车辆2302上的处理器2311可以处理图像,以确定与地标相关联的标识符,并且将标识符发送到车辆2301。轮毂车辆2301上的处理器2310可以将地标与路段2200相关联,并且更新自主车辆道路导航模型和/或稀疏地图800以包括与地标2206相关联的标识符。轮毂车辆2301上的处理器2310可以将更新后的自主车辆道路导航模型和/或稀疏地图800分发给诸如车辆2302和在路段2200上行驶的其它自主车辆的多个自主车辆。应该理解,相对于轮毂车辆所参考的或所描述的任何功能可以由相对于在道路的系统上行驶的车辆远程定位的一个或多个服务器来执行。例如,这样的服务器可以位于一个或多个中央设施中,并且可以经由无线通信接口与部署的车辆通信。

图24示出确定地标的浓缩的签名表示的方法。可以为诸如通用标志的、与驾驶不直接有关的地标确定浓缩的签名表示(或浓缩的签名、或签名)。例如,可以为诸如标志或地标2205的矩形商业标志(广告)确定浓缩的签名表示。浓缩的签名,而不是通用标志的实际图像可以被存储在其可以被用于稍后与由其它车辆推导出的浓缩的签名的比较的模型或稀疏地图之内。在图24示出的实施例中,地标2205的图像可以被映射到诸如32字节(或诸如16字节、64字节等等的任何其它尺寸)的预定数据尺寸的数字的序列。映射可以通过由箭头2405指示的映射函数来执行。可以使用任何合适的映射函数。在一些实施例中,神经网络可以被用来基于多个训练图像学习映射函数。图24示出包括在-128至127的范围之内的32个数字的示例数组2410。数字的数组2410可以是地标2205的示例浓缩的签名表示或标识符。

图25示出确定地标的浓缩的签名表示的另一方法。例如,可以从诸如矩形商业标志2205的通用标志的图像提取或推导色彩模式。作为另一示例,可以从通用标志的图像提取或推导亮度模式。浓缩的签名表示可以包括色彩模式或亮度模式中的至少一个。在一些实施例中,如通过图25中的网格示出的,地标2205的图像可以被划分为多个像素部分。对于每个像素部分,色彩值或亮度值可以被计算并且可以与如由圆形、星形、或三角表示的像素部分相关联。图案2500可以表示色彩模式(在这种情况下,圆形、星形、和三角中的每一个表示色彩值)、或亮度模式(在这种情况下,圆形、星形、和三角中的每一个表示亮度值)。图案2500可以被用作地标2205的浓缩的签名表示。

图26示出存储器的示例框图,所述存储器可以存储用于执行用于标识地标以用于自主车辆导航的一个或多个操作的计算机代码或指令。如图26中所示,存储器2600可以存储用于执行用于标识地标以用于自主车辆导航的操作的一个或多个模块。

例如,存储器2600可以包括模型更新和分发模块2605,以及地标标识符确定模块2610。在一些实施例中,模型更新和分发模块2605、以及地标标识符确定模块2610可以被存储在相同的存储器2600中、或不同的存储器中。处理器可以执行模块以执行由被包括在模块之内的指令或代码所定义的各种功能。例如,当被处理器执行时,模型更新和分发模块2605可以引起处理器更新相对于对应路段的自主车辆道路导航模型,以包括与地标相关联的至少一个标识符。模型更新和分发模块2605还可以引起处理器将更新后的自主车辆道路导航模型分发给多个自主车辆以用于提供自主导航。当被处理器运行时,地标标识符确定模块2610可以引起处理器分析表示车辆的环境的至少一个图像,以在图像中标识地标。地标标识符确定模块2610还可以引起处理器分析图像以确定与地标相关联的至少一个标识符。标识符可以被用于在模型更新和分发模块2605中更新模型。

在一些实施例中,地标标识符确定模块2610可以被配置有某一预定义的检测优先级。例如,地标标识符确定模块2610可以引起处理器首先搜索道路标志,并且如果在离先前地标的某一距离之内没有找到道路标志,那么地标标识符确定模块2610可以使用其它地标。

此外,地标标识符确定模块2610可以包括最小地标密度/频率、和最大地标密度/频率,以限制地标频率(例如,在预定距离上被检测到或被存储的地标)。在一些实施例中,这些限制可以保证存在足够的地标,但被识别或被检测和被存储的地标不会太多。

在一些实施例中,地标密度/频率可以与存储尺寸或带宽尺寸相关联。当更多道路标志可用时,可以使用更多存储空间或带宽。可替换地或额外地,不同设置可以与不同类型的地标相关联。例如,交通标志可以与更高的地标密度/频率相关联,而通用标志可以与更低的地标密度/频率相关联,从而在预定距离之内,比通用标志更多的交通标志可以被检测到和被存储。

在一些实施例中,存储器2600可以被包括在服务器2230中,例如,作为存储设备2233的部分。被包括在服务器2230中的处理器2232可以执行模型更新和分发模块2605以更新自主车辆道路导航模型,进而包括与地标相关联的至少一个标识符,并且可以将更新后的模型分发给多个自主车辆。在一些实施例中,被包括在服务器2230中的处理器2232可以从车辆(例如,车辆2201、2202)接收数据(地标的图像、导航信息、道路信息等等),并且可以执行地标标识符确定模块2610以基于接收到的数据确定与地标相关联的标识符。

在一些实施例中,存储器2600可以是在执行服务器2230的功能的轮毂自主车辆上提供的存储器。例如,当轮毂车辆是车辆2201时,处理器2210可以执行模型更新和分发模块2605来更新自主车辆道路导航模型,以包括与地标相关联的标识符。处理器2210还可以将更新后的模型分发给沿着路段2200行驶的多个其它自主车辆。在一些实施例中,轮毂车辆2201的处理器2210可以从其它自主车辆(例如,车辆2202)接收数据(例如,地标的图像、导航信息、道路信息等等)。轮毂车辆2201的处理器2210可以执行地标标识符确定模块2610,以基于从其它自主车辆接收到的数据来确定地标的标识符。例如,轮毂车辆2201的处理器2210可以分析另一车辆的环境的图像,以标识地标并且确定与地标相关联的至少一个标识符。模型更新和分发模块2605可以使用标识符,来通过轮毂车辆2201更新模型。

在一些实施例中,模块更新和分发模块2605和地标标识符确定模块2610可以被存储在单独的存储器中。例如,模块更新和分发模块2605可以被存储在被包括在服务器2230中的存储器中,并且地标标识符确定模块2610可以被存储在自主车辆上提供的存储器中(例如,在车辆2201、2202、2301、和2302上提供的导航系统的存储器)。在服务器2230中提供的处理器(例如,处理器2232)可以执行模块更新和分发模块2605以更新模型并将更新后的模型分发给自主车辆。在自主车辆中提供的处理器(例如,处理器2210、2310、或2311)可以执行地标标识符确定模块2610以确定与地标相关联的标识符。

图27是示出用于确定地标的标识符的示范性过程2700的流程图。当处理器,例如,被包括在服务器2230中的处理器2232、或在自主车辆上提供的处理器2210、2310、和2311,执行地标标识符确定模块2610时,过程2700可以被执行。过程2700可以包括获取主车辆的环境的至少一个图像(步骤2710)。例如,在主车辆2202(其上的相机122是主相机)上提供的相机122可以捕获车辆2202周围的环境的至少一个图像。在车辆2202上提供的处理器2210可以从相机122接收图像。过程2700还可以包括分析图像以标识地标(步骤2720)。例如,在车辆2202上提供的处理器2210可以分析从相机122接收的图像以标识在车辆2202周围的环境中的地标。过程2700还可以包括分析图像以确定与地标相关联的至少一个标识符(步骤2730)。例如,在车辆2202上提供的处理器2210可以分析从相机122接收的图像以确定与地标相关联的至少一个标识符。标识符可以包括与候选地标相关联的任何可观察的特性,所述特性包括以上讨论的那些特性中的任何,以及其它特性。例如,对这样的地标的观察可以基于对所捕获图像的分析通过视觉识别来进行,和/或可以涉及由一个或多个传感器(例如,悬架传感器)感测、或任何其它观察手段。

过程2700可以包括其它操作或步骤。例如,在从环境的图像标识地标时,处理器2210可以基于预定的类型来标识地标。在确定与地标相关联的标识符时,处理器2210可以基于由车辆2202接收的gps信号、或可以被用来确定位置的其它传感器信号,来确定地标的位置。处理器2210可以从图像确定地标的形状或尺寸中的至少一个。处理器2210还可以确定出现在图像中或现实世界中的地标到另一地标的距离。处理器2210可以提取或推导浓缩的签名表示作为地标的标识符的部分。处理器2210可以基于将地标的图像映射到预定数据尺寸(例如,32字节、64字节等等)的数字的序列来确定浓缩的签名表示。处理器2210可以将色彩模式或亮度模式中的至少一个确定为地标的浓缩的签名表示。

图28是示出用于基于标识符更新和分发车辆道路导航模型的示范性过程的流程图。当诸如被包括在服务器2230中的处理器2232、或被包括在自主车辆中的处理器2210、2310、和2311的处理器执行模型更新和分发模块2602时,过程2800可以被执行。过程2800可以包括接收与地标相关联的标识符(步骤2810)。例如,处理器2232可以从自主车辆2201和自主车辆2202接收与地标相关联的至少一个标识符。过程2800可以包括将地标与对应的路段相关联(步骤2820)。例如,处理器2332可以将地标2206与路段2200相关联。过程2800可以包括更新自主车辆道路导航模型以包括与地标相关联的标识符(步骤2830)。例如,处理器2232可以更新自主车辆道路导航模型以在模型中包括与地标2205相关联的标识符(包括,例如,位置信息、尺寸、形状、模式)。在一些实施例中,处理器2232还可以更新稀疏地图800以包括与地标2205相关联的标识符。过程2800可以包括将更新后的模型分发给多个自主车辆(步骤2840)。例如,处理器2232可以将更新后的模型分发给自主车辆2201、2202、和稍后在路段2200上行驶的其它车辆。更新的模型可以向自主车辆提供更新后的导航引导。

过程2800可以包括其它操作或步骤。例如,被包括在服务器2230中的处理器2232可以执行用于确定与地标相关联的标识符的过程2700中的一些或全部。处理器2232可以从车辆2201和车辆2202接收与地标有关的数据(包括环境的图像)。处理器2232可以分析数据(例如,图像)以在图像中标识地标并且确定与图像相关联的标识符。

所公开的系统和方法可以包括其它特征。例如,在一些实施例中,可以由车辆或远程服务器上的处理器通过整合两个地标之间的车辆的速度来确定沿着路段的车辆位置。因此,地标可以充当一个维度的(1d)定位锚。在模型中,可以基于在多个驾驶中由多个车辆所标识的定位通过,例如,对这些定位取平均来计算地标的定位。

对于诸如通用标志的某些地标,所公开的系统存储图像签名(例如,浓缩的签名)而不是地标的实际图像。可以以相对高的精度检测某些类型的地标,并且所述类型的地标可以被容易地用于定位(例如,确定车辆的定位)。例如,诸如具有数字“80”的圆形限速标志的与交通直接相关的标志可以被容易地分类为某一类型并被容易地检测到。另一方面,邀请驾驶员到附近餐馆的信标标志(例如,矩形广告标志)可能难以被找到而没有任何错误的检测。原因是难以学习针对非常多种种类的对象的模型(例如,广告标志可以不落入已知的种类或类型)。当其它易于检测的标志不可用时,通用标志也可以被用作地标,虽然它们提出一些错误检测的风险。

对于难以解释的地标,所公开的系统将外观签名(或浓缩的签名、或签名)与它相关联。签名可以与地标的位置信息一起被存储在模型(例如,道路模型或自主车辆道路导航模型)中。当车辆检测这样的对象并将其与已存储的模式匹配时,所公开的系统可以匹配地标的签名。签名可以不编码种类信息(例如,指示所标识的对象是否是标志的种类信息)而宁可说是“相同不相同”信息(例如,指示所标识的对象是否与已经被标识的对象相同、或是否与已经在模型中存储的对象相同)。

系统(例如,远程服务器或在车辆上提供的处理器)可以从在先示例中学习图像签名。当且仅当一对图像属于相同的特定对象(在特定位置的特定地标)时,它们可以被标记为“相同”。在一些实施例中,所公开的系统可以使用诸如siamese神经网络的神经网络来学习签名。地标的签名可以要求诸如10字节、20字节、32字节、50字节、100字节等等的小的存储空间。

地标可以被用于沿着道路的车辆的纵向位置。一旦地标(例如,沿着道路的第一地标和与第一地标隔开某一距离的第二地标)之间的相对距离以充足的精度被估计,那么,一旦当车辆经过地标时,车辆就可以“重置”该标识符位置估计并消除因自我速率的整合出现的误差。

系统可以使用来自方向盘传感器(例如,速率传感器)、或来自全球导航卫星系统(gnss)系统的自我速率。在第一选项中,系统可以学习每车辆的校准因子以消除车辆之间的变化。

为本地化相机的位置,所公开的系统可以标识可视地标。具有可以被重复标识的显著特征的任何对象可以充当可视地标。关于道路场景,特别是道路旁标志和交通标志频繁地充当地标。交通标志常常与类型相关联。例如,“让车”类型的交通标志,可以遍及特定的国家完全相同或基本上相同地出现。当所公开的系统标识具有类型的交通标志,又称为类型交通标志时,系统可以在地图中寻找这种类型,并且当匹配被找到时建立相机位置。

然而,一些交通标志并不看起来相同。公共的示例是“方向”交通标志,其告诉驾驶员哪个车道去往何处。还可以使用其它更通用的标志,诸如特定餐馆的标志或广告。可以使用被设计为识别数十个或几百个标志的交通标志识别算法来检测标准的交通标志。可以使用一个标识字节和用于位置(例如,标志的位置)的几个字节来将这些标准的标志存储在地图中。

存储通用标志的一个方式是在地图数据库中存储标志的图像,并且寻找该图像。然而,此解决方案可能要求大的存储占用。反之,类型交通标志可以要求单个整数(例如,4字节),无类型交通标志的图像碎片可以要求256字节或更多以存储甚至低分辨率32×32像素的图像。所公开的系统和方法提供的解决方案使用将示出标志的任何给定的图像碎片映射到32字节(还可以使用任何其它字节,例如,50字节)的独特序列的签名函数。概念地,函数的输出是示出标志的图像碎片的签名。使用此签名函数,系统可以将任何标志变换为“签名”,其可以是一个32字节(或8个整数)的序列。使用签名,然后系统可以在地图中查找具有相似签名的标志的位置,或相反地,在图像中查找根据地图应该在图像的该区域中可见的签名。

签名函数可以被设计为将相似的签名给相似的图像碎片,并且将不同的签名给不同的图像碎片。系统可以使用深度神经网络学习签名函数和两个签名之间的距离函数。在神经网络中,图像中的标志的实际尺寸不是已知的。在图像中检测可以是用于标志的候选的各种尺寸的矩形。然后,每个矩形可以被缩放到例如32×32像素的统一尺寸,虽然还可以使用其它尺寸。为了训练神经网络,相同标志的相似图像被加上如“相同”的标签,而,在相同地理位置被捕获的不同标志的图像被标记为“不同”。图像碎片被全部缩放到统一尺寸。系统可以使用siamese网络,所述siamese网络接收各自为32×32像素的两个图像碎片并且输出二进制比特:0意味着图像碎片不相同,以及1意味着图像碎片相同。例如,在图24中示出的示例中,地标2205的签名2410可以被存储在地图中。签名包括整数序列(第一序列),如图24中所示。当车辆经过与标志2205在相同位置的标志时,车辆可以捕获标志的图像,并且使用映射函数推导第二数字序列。例如,第二数字序列可以包括[44,4,-2,-34,-58,5,-17,-106,26,-23,-8,-4,7,57,-16,-9,-11,1,-26,34,18,-21,-19,-52,17,-6,4,33,-6,9,-7,-6]。系统可以使用神经网络比较第二序列和第一第二序列,所述神经网络可以输出针对比较的分数。在一些实施例中,负分数可以指示两个签名不相同,以及正分数可以指示两个签名相同。应该注意到系统可以不要求两个签名完全相同以便让它们被视为相同。神经网络可以能够处理低分辨率图像,其在实现高性能的同时得到低计算成本。

训练完成以后,siamese网络可以被分成两个网络:签名网络,其可以是接收信号碎片、并且输出地标图像的“签名”的网络的部分;以及sns(same-not-same,相同不相同)网络,其可以是接收两个不同签名并输出标量(例如,分数)的网络的部分。

地标的签名可以附接到它在地图上的位置。当地标的矩形候选被观察到时,可以使用签名网络来计算它的签名。然后两个签名,来自地图的一个签名和来自当前地标的一个签名被送入sns网络。如果sns网络的输出分数是负的,则其可以指示在所捕获的图像中的地标与被存储在地图中的地标不相同。如果sns网络的输出分数是正的,则其可以指示在所捕获的图像中的地标与被存储在地图中的地标是相同的。

签名可以要求小的存储空间。例如,签名可以使用32字节(虽然还可以使用诸如10字节、20字节、50字节等等的其它尺寸)。这样的小尺寸签名还可以使得能够进行在低带宽通信信道上的传输。

签名可以与其它尺寸相关联。签名的长度(因此尺寸)与算法的辨别能力之间可以存在折衷。更小的尺寸可以给出更高的误差率,反之,更大的签名可以给出更少的误差。由于所公开的系统可能限制对来自相同地理位置的地标签名的辨别要求,所以签名尺寸可以更紧凑。

以下提供被包括在车辆中的导航系统中的地标的使用的示例。在车辆上提供的相机可以检测例如矩形标志的地标候选。处理器(在车辆或在远程服务器上提供的)可以将矩形标志缩放到标准尺寸(例如,32×32像素)。处理器可以计算签名(例如,使用诸如在示例数据上训练的神经网络的系统)。处理器可以将计算出的签名和被存储在地图中的签名进行比较。如果签名匹配,那么处理器可以从地图获得地标的尺寸。处理器还可以基于地标尺寸和/或车辆运动数据(例如,速率、平移和/或旋转数据)来估计车辆到地标的距离。处理器可以使用距地标的距离来本地化沿着道路或路径(例如,沿着被存储在地图中的目标轨迹)的车辆的位置。

所公开的系统和方法可以检测诸如灯柱的典型的街道结构。系统可以考虑灯柱的本地形状和灯柱在场景中的布置两者:灯柱典型地在道路旁(或在分隔带上)、灯柱经常在单个图像中和以不同尺寸出现不止一次。在公路上的灯柱可以具有基于国家标准的固定的间隔(例如,大约25米至50米间隔)。所公开的系统可以使用卷积神经网络算法从可以足以捕捉几乎所有的街道杆的图像(例如,136×72像素)分类恒定条带。网络可以不包含任何仿射层、并且可以仅仅由卷积层、最大池化垂直层(maxpoolingverticallayer)和激励层(relulayer)组成。网络的输出维度可以是条带宽度的3倍,这些三通道对于条带中的每个列可以具有3个自由度。第一自由度可以指示在此列中是否存在街道杆、第二自由度可以指示此杆的顶部、并且第三自由度可以指示它的底部。利用网络的输出结果,系统可以采取在阈值以上的所有的本地最大值,并且建造界定杆的矩形。

系统得到初始矩形之后,系统可以使用两个对齐神经网络和一个滤波器神经网络,以及包括光流和卡尔曼滤波器的算法来跟踪这些杆。被多次检测到并被良好跟踪的杆可以被给予更高的置信。

本公开介绍在城市情景中与相机(或车辆)本地化的上下文之内的地标标识有关的想法。诸如交通标志的一些地标往往是相当普通,并且此种的一个单个地标可能不被唯一地标识,除非gps定位是良好的。然而,普通地标的序列可以是相当独特的,并且即使当gps信号如“城市峡谷”中那样差时也可以给出定位。具有高建筑的城市区域可以引起卫星信号反射,因此引起差的gps信号。另一方面,城市区域挤满了各种各样的地标。因此,相机可以被用来使用可视地标来自我本地化。然而,某些地标可以沿着路径或轨迹被重复看见,使得难以将地标与地图上的具体位置匹配。“让车”标志在城市情景中是常见的。当只观察到“让车”交通标志时,由于在车辆附近存在许多“让车”标志,所以系统可能不能使用它来定位,并且系统可能不能知道它们中的哪一个是被相机捕获到的“让车”标志。

所公开的系统和方法可以使用下面的解决方案中的任何。在解决方案一中,虽然几乎所有的定位算法使用地标,但是所公开的系统可以使用地标的位置布置以创建定位地标。例如,车辆可以测量出现在相同图像中的多个地标之间的位置关系。地标的位置关系的配置可以被当作定位地标。而不是只注意地标,系统还可以计算出现在相同图像中的不同地标之间的距离。这些距离的集合可以建立针对彼此定位的地标的签名。例如,被车辆检测到的地标的序列可以是在第一地标和第二地标之间隔开11mm、在第二地标和第三地标之间隔开16mm、在第三地标和第四地标之间隔开28mm。在一些实施例中,当前可见的地标的特定位置布置在地图中可以是独特的,并且因此,可以被用作本地化用途的定位地标。由于定位地标可以是独特的,所以将它们与地图上的位置相关联是容易的。

解决方案二使用另一方式来基于地标创建独特地标是使用地标的序列,而不是单个地标的地标。例如,地标的序列可以包括停车标志、限速标志、和让车标志。虽然让车标志地标可以是丰富的,并由此几乎没有定位价值,数个地标的序列可以更加独特并且可以造成明确的定位。

在一些实施例中,以上解决方案可以一起被使用。例如,路途可以被标记有地标的序列和它们之间的距离。当gps信号弱时,地标之间的位置和距离可以主要地基于量距(例如,基于图像、和/或惯性传感器和速率计)。多个车辆沿着路途驾驶并且捕获沿着路途的地标和它们的位置。所收集的关于地标的信息可以从车辆被发送到服务器。服务器可以将地标信息整理成地标序列。每个数据收集车辆可以给出略为不同的距离。可以使用平均距离、或诸如中位数的稳健统计量。距离之间的方差也可以被存储在地图中。可以考虑在来自车辆中的一些的记录中的可能遗漏的地标来对齐地标的序列。地标遗漏的次数给出关于地标可见性的指示。在序列中那个位置处,地标的可见性也可以被存储在地图中。

当客户端车辆沿着路途驾驶时,它可以将地标、和由客户端车辆检测的距离与被存储在地图中(或可替换地从服务器接收)的序列进行比较。车辆可以匹配在这两个序列中的地标类型,并且可以惩罚对于遗漏的地标和距离误差的所检测到的序列。具有低可见性或具有大距离方差的地标可以被更少地惩罚。

用于检测地标的相机可以被增强有任何距离测量装置,诸如激光或雷达。

沿着路途行驶的车辆可以记录两个不同的序列是有可能的。例如,50个车辆沿着路途行驶,它们中的20个可以报告具有一致的距离的“星形、星形、正方形、圆形、星形”的序列(其中,“星形”、“正方形”、“圆形”可以各自表示某种类型的标志),而它们中的其它30个可以报告具有一致的距离的“:星形、星形、正方形、正方形、三角形”,并且其中,前三个“星形、星形、正方形”具有与其它20个车辆一致的距离。这可以指示存在诸如十字路口或道路分裂的一些感兴趣的道路特征。

完善地标位置

虽然系统中的用于转向的模型不需要全球地准确,但是与公开的实施例一致的,全球位置对于导航系统可以是有用的。例如,全球坐标作为确定哪个本地地图可以与沿着特定路段的导航有关、或区分相似的地标和另一地标(例如,位于里程碑45附近处的限速标记相对位于里程碑68处的相似的限速标志)的索引可以是有用的。通过基于图像分析首先确定相对于主车辆的特定地标的位置,可以将全球坐标分配给模型中的地标。将这些相对坐标加到主车辆的全球位置,可以定义地标的全球位置。然而,此测量可能不比基于标准的自动全球导航卫星系统(gnss)接收器的主车辆的所测量的位置更准确。因此,尽管这样的位置确定对于索引的用途可能是足够的,在稍后部分中详细描述的所公开的导航技术依赖于地标来确定相对于路段的目标轨迹的车辆的当前位置。为此目的地标的使用可能比基于gps的测量能够提供的要求用于地标的更准确的位置信息。例如,如果gps测量仅仅准确到+-5米,那么相对于目标轨迹的位置确定可能有5米的不准确,其可能不适合使车辆能遵循目标轨迹。

一个解决方案可以是勘测与路段相关联的地标,并且在全球坐标中为那些地标定义高度准确的位置。然而,这样的方法可能在时间和金钱上价格高昂。作为完善所确定的地标位置的精确度(达到足以充当用于所公开的自主车辆导航的方法的全球本地化参考的水平)的另一途径,可以进行对地标位置的多个测量,并且该多个测量可以被用来完善地标的所确定的位置。多个测量可以由被配备为确定地标相对于车辆的gps位置的位置的经过车辆在该车辆经过地标时获得。

图22和图23各自示出用于标识地标以在自主车辆导航中使用的示例系统。系统还可以确定地标的位置或定位。在图22中示出的实施例中,系统可以包括服务器2230,其被配置为与在路段2200上行驶的多个车辆(例如,车辆2201和车辆2202)通信。沿着路段2200,可以存在一个或多个地标。地标可以包括以下各项中的至少一个:交通标志、箭头、车道标记、虚线车道标记、交通灯、停止线、方向标志、地标信标、或灯柱。为了例示,图22示出两个地标,地标2205和地标2206。服务器2230可以接收由车辆2201和车辆2202收集的数据,包括被车辆2201和车辆2202识别的地标(例如,地标2205和地标2206)。由车辆2201和车辆2202收集的关于地标的数据可以包括位置数据(例如,地标的位置)、地标的物理尺寸、沿着路段2200的两个被顺序地识别的地标之间的距离、从车辆2201或车辆2202到地标(例如,地标2205或地标2206)的距离。车辆2201和车辆2202都可以经过地标2206,并且可以测量地标2206的位置并向服务器2230发送所测量的位置。服务器2230可以基于从车辆2201和车辆2202接收的地标的所测量的位置数据来确定地标的完善后的位置。例如完善后的位置可以是从车辆2201和车辆2202接收的所测量的位置数据的平均,所述车辆2201和车辆2202两者都经过并识别地标2206。地标2206的完善后的位置可以连同地标2206的标识符(例如,类型、尺寸、浓缩的签名)一起被存储在自主车辆道路导航模型或稀疏地图800中。地标2206的目标位置可以被稍后沿着路段2200行驶的其它车辆使用,以确定沿着与路段2200相关联的目标轨迹的它们的位置,所述目标轨迹可以被存储在模型或稀疏地图中。当服务器2230从其它车辆接收相对于已识别地标的新测量的位置数据时,已识别地标(例如,已经被包括在稀疏地图800中的已识别地标)的完善后的位置可以被更新或被进一步完善。

在图23中示出的实施例中,系统可以利用自主车辆之一作为轮毂车辆来执行由在图22中示出的远程服务器2230所执行的功能中的一些或全部,并且因此,可以不包括服务器。轮毂车辆可以与其它自主车辆通信并且可以从其它车辆接收数据。轮毂车辆可以执行与生成道路模型、对模型的更新、稀疏地图、对稀疏地图的更新、目标轨迹等等有关的功能。在一些实施例中,轮毂车辆还可以基于由穿越路段2200的多个车辆测量的多个位置来确定被存储在模型或稀疏地图中的地标的完善后的位置。

例如,在图23中示出的实施例中,车辆2201可以是轮毂车辆,其包括至少一个处理器(例如,处理器2310),所述处理器被配置为从车辆2202接收包括地标2206的所测量的位置的各种数据。车辆2201可以基于从车辆2202接收的所测量的位置数据、以及来自先前经过并识别地标2206的车辆的其它先前接收的所测量的位置数据,来确定地标2206的完善后的位置。地标2206的完善后的位置可以被存储在道路模型或稀疏地图800之内。当车辆2201从其它车辆接收关于相同地标的新测量的位置数据时,完善后的位置可以被更新或被完善。

图29示出用于确定/处理/存储地标的位置的系统2900的示例框图。系统2900可以在服务器2230或轮毂车辆(例如,车辆2201)中实施。系统2900可以包括存储器2910。存储器2910可以与在其它实施例中公开的其它存储器相似。例如,存储器2910可以是非瞬时性快闪存储器。存储器2910可以存储可以由处理器执行的、诸如计算机代码或指令的数据。系统2900可以包括存储设备2920。存储设备2920可以包括硬盘驱动器、光盘、磁带等等中的一个或多个。存储设备2920可以被配置为存储诸如稀疏地图800、自主车辆道路导航模型、道路轮廓数据、地标信息等等的数据。系统2900可以包括被配置为执行各种代码或指令以执行一个或多个所公开的方法或过程的至少一个处理器2930。处理器2930可以与在其它实施例中公开的其它存储器相似。处理器2930可以包括硬件组件(例如,计算电路)和软件组件(例如,软件代码)两者。系统2900还可以包括通信单元2940,其被配置为经由诸如无线互联网、蜂窝通信网络等等的无线通信与自主车辆通信。

图30示出被包括在系统2900中的存储器2910的示例框图。存储器2910可以存储用于执行一个或多个操作的计算机代码或指令,所述操作用于确定地标的位置或位置以在自主车辆导航中使用。如图30中所示,存储器2910可以存储用于执行操作的一个或多个模块,所述操作用于确定地标的位置。

例如,存储器2910可以包括地标标识模块3010、和地标位置确定模块3020。存储器2910还可以包括地标位置完善模块3030。处理器(例如,处理器2930)可以执行模块以执行由被包括在模块之内的指令或代码定义的各种功能。

例如,当被处理器执行时,地标标识模块3010可以引起处理器从由在车辆上提供的相机捕获的图像中标识地标。在一些实施例中,处理器可以从安装在主车辆上的相机获取与主车辆相关联的至少一个环境图像。处理器可以分析至少一个环境图像以在主车辆的环境中标识地标。处理器可以标识地标的类型、地标的物理尺寸、和/或地标的浓缩的签名。

当被处理器执行时,地标位置确定模块3020可以引起处理器确定地标的位置。在一些实施例中,处理器可以接收表示主车辆的位置的全球定位系统(gps)数据、分析环境图像,以确定相对于主车辆(的已标识地标的相对位置例如,从车辆到地标的距离)。处理器还可以基于至少gps数据和所确定的相对位置来进一步确定地标的全球本地化位置。全球本地化位置可以被用作地标的位置并且被存储在模型或地图中。

当被处理器执行时,地标位置完善模块3030可以完善由模块3020确定的位置。在一些实施例中,处理器可以从多个驾驶中的多个车辆接收与相同地标有关的多个位置、或可以通过多个驾驶中的相同车辆测量相同地标的位置。多个位置可以被用来完善已被存储在地图中的地标的位置。例如,处理器可以计算多个位置的平均、或多个位置的中位数值,并使用其(平均或中值)更新被存储在地图中的地标的位置。作为另一示例,每当处理器接收由新车辆测量的标识相同地标的新位置时,新位置可以被用来更新已被存储在地图中的地标的位置。

各种方法可以被用于基于对由在车辆上提供的相机捕获的一个或多个图像的分析来确定已标识地标相对于车辆的相对位置。例如,图31示出用于基于与地标的一个或多个图像相关联的缩放来确定地标与主车辆的相对位置(或从主车辆到地标的距离)的方法。在这个示例中,在车辆2201上提供的相机122可捕获在车辆2201前面的环境的图像3100。环境可以包括地标3130,其为限速标志,由具有数字“70”的圆形表示。数字3120指示延伸的焦点。相机122可以捕获诸如图像的序列的环境的多个图像。限速标志3130可以在由时间t1指示的位置处的第一图像中出现。限速标志3130可以在由时间t2指示的位置处的在第一图像之后被捕获的第二图像中出现。由r指示第一位置(在时间t1)到延伸的焦点3120之间的距离,以及由d指示限速标志3130的第一位置和第二位置之间的距离。从车辆2201到地标3130的距离可以通过z=v*(t2-t1)*r/d来计算,其中,v是车辆2201的速率,以及z是从车辆2201到地标3130的距离(或从地标3130到车辆2201的相对位置)。

图32示出用于基于与在视场3200之内的环境的多个图像相关联的光流分析,来确定相对于主车辆的地标的相对位置(或从车辆到地标的距离)的方法。例如,相机122可以捕获在车辆2201前面的环境的多个图像。环境可以包括地标。地标的第一图像(由更小的粗体矩形表示)被引用为3210,以及地标的第二图像(由更大的粗体矩形表示)被引用为3220。光流分析可以分析相同对象的两个或更多个图像,并且可以推导如箭头的场所指示的光流场3230。由编号3240引用延伸的第一焦点,以及由编号3250引用延伸的第二焦点。在一些实施例中,光流分析可以基于从图像的光流推导出的延伸率来确定碰撞时间(ttc,timetocollision)。可以基于碰撞时间和车辆的速率来确定从车辆到地标的距离。

图33a是示出用于确定地标的位置以在自主车辆的导航中使用的示例过程3300的流程图。过程3300可以由处理器2930来执行,所述处理器2930可以被包括在远程服务器中(例如,服务器2230)、或被包括在自主车辆上(例如,车辆2301)。过程3300可以包括接收地标的所测量的位置(步骤3310)。例如,处理器2930可以从车辆2202接收地标2206的所测量的位置。车辆2202可以基于指示车辆的位置的gps数据、根据对包括地标的车辆2202的环境的一个或多个图像的分析所确定的地标相对于车辆2202的相对位置来测量地标2206的位置。过程3000可以包括基于地标的所测量的位置和至少一个先前获取的位置来确定地标的完善后的位置(步骤3320)。例如,处理器2930可以对地标的所测量的位置与至少一个先前获取的位置(诸如从其它车辆接收的标识地标的一个或多个先前获取的位置)取平均。在一些实施例中,处理器2930可以将所测量的位置与基于地标的至少一个先前获取的位置所确定的被存储在地图(例如,稀疏地图800)中的测量的位置取平均。处理器2930可以使用经平均的位置作为完善后的位置。在一些实施例中,处理器2930可以计算所测量的位置和至少一个先前获取的位置(例如,多个先前获取的位置)的中位数值,并且使用该中位数值作为完善后的位置。可以从所测量的位置和多个先前获取的位置获得的其它统计量参数可以被用作目标位置。过程3000可以利用完善后的位置来更新被存储在地图中的地标的位置(步骤3330)。例如,处理器2930可以利用完善后的位置来替代被存储在地图中的位置。当接收到新的位置数据时,处理器2930可以重复步骤3320和步骤3330,以完善被存储在地图中的地标的位置,从而增加地标的位置的精度。

图33b是示出用于测量地标的位置的示例过程3350的流程图。过程3350可以由处理器2930来执行,所述处理器可以在服务器2230或自主车辆(例如,车辆2201、2202、2301、和2302)中被提供。也可以使用过程3350来获得被存储在地图中的先前获取的位置。过程3350可以包括从相机获取环境图像(步骤3351)。例如,在车辆2202上提供的相机122可以捕获可以包括地标2206的、车辆2202的环境的一个或多个图像。处理器2930可以从相机122获取图像。过程3350可以包括分析环境图像以标识地标(步骤3351)。例如,在车辆2202上提供的处理器2930(或处理器2210)可以分析图像以标识地标2206。过程3350还可以包括从在车辆上提供的gps单元接收gps数据(步骤3353)。例如,处理器2930可以从在车辆2202上提供的gps单元接收gps数据。gps数据可以表示车辆2202(主车辆)的位置。过程3350可以包括分析环境图像以确定已标识地标相对于车辆的相对位置(步骤3354)。例如,处理器2930可以分析环境的图像,以使用合适的方法来确定已标识地标2206相对于车辆2202的相对位置。在一些实施例中,处理器2930可以分析图像,以基于以上结合图31所讨论的缩放来确定相对位置。在一些实施例中,如以上结合图32所讨论的,处理器2930可以分析图像以基于图像的光流分析来确定相对位置。过程3350还可以包括基于gps数据和地标相对于车辆的所确定的相对位置来确定地标的全球本地化位置(步骤3355)。例如,处理器2930可以通过组合如由gps数据所指示的车辆2202的位置和相对位置(或从车辆2202到地标2206的距离)来计算地标的全球本地化位置。地标的全球本地化位置可以被用作地标的所测量的位置。

所公开的系统和方法可以包括以下讨论的其它特征。所公开的系统可以在不知道车辆相对于全球坐标系的精确位置的情况下,能够沿着目标轨迹驾驶自主车辆。gps信息可以具有大于10m的误差,所以gps信息被主要用来索引存储器以便检索地标候选或相关的道路砖。可以使用可视自我运动来确定全球本地化。为了避免漂移,系统可以通过组合主车辆的gps位置和主车辆与地标的相对位置来估计地标的gps位置。可以利用从多个车辆和多个驾驶获得的位置数据来完善(例如,平均)全球地标位置。地标的所测量的位置或位置可以表现得像随机变量,因此可以被平均以改进精度。gps信号被主要用作对于存储地标的数据库的密钥或索引,并且不需要具有用于确定车辆的位置的高精度。低精度gps数据可以被用来确定车辆的位置,其可以被用来确定地标的位置。由低精度gps数据引入的误差可以累积。可以通过对来自多个车辆的地标的位置数据取平均来修正这样的误差。

在一些实施例中,为了驾驭的目的,gps坐标可以仅仅被用来索引数据库。gps数据可以不被考虑到转向角度的计算中。包括地标的位置的模型可以被转换到全球坐标系统。转换可以包括通过平均来确定地标的gps坐标,推断地标附近(全球本地化)的车辆的gps位置,以及通过使用曲线几何、沿着路径的位置、车道分配和车道中的位置来使全局位置远离地标。

使用稀疏道路模型的自主导航

在一些实施例中,所公开的系统和方法可以将稀疏道路模型使用于自主车辆导航。例如,所公开的系统和方法可以基于已识别地标提供导航、对齐车辆的尾部以用于导航、允许车辆导航道路枢纽、允许车辆使用局部重叠的地图导航、允许车辆使用稀疏地图导航、基于期望的地标位置导航、基于道路签名自主地导航车辆、基于后向相机导航车辆向前、基于自由空间确定导航车辆、以及在雪中导航车辆。另外,所公开的实施例提供用于以下各项的系统和方法:自主车辆速率校准、基于已识别地标位置确定车辆的车道分配、以及当导航车辆时使用超级地标作为导航辅助。以下详述这些系统和方法。

基于已识别地标的导航

与所公开的实施例一致,系统可以使用地标,例如,来确定主车辆沿着表示目标道路模型轨迹的路径的位置(例如,通过标识地标的相对方向矢量与目标道路模型轨迹的交叉点)。一旦此位置被确定,就能够通过比较在所确定位置处的航向方向和目标道路模型轨迹来确定转向方向。地标可以包括,例如,在至少一个路段的环境中的任何可标识的、固定的对象,或与路段的特定部分相关联的任何可观察的特性。在有些情况下,地标可以包括交通标志(例如,限速标志、危险标志等等)。在其它情况下,地标可以包括与路段的特定部分相关联的道路特性轮廓。在再其它情况下,地标可以包括如,例如,由车辆的悬架传感器所感测的道路轮廓。在先前部分中讨论了地标的各种类型的进一步示例,并且在图10中示出了一些地标示例。

图34示出在路段3400上行驶的车辆200(其可以是自主车辆),其中可以使用用于使用一个或多个已识别地标3402、3404来导航车辆200的所公开的系统和方法。虽然图34将车辆200描绘为配备有图像捕获设备122、124、126,但是在任何特定车辆200上可以采用更多或更少的图像捕获设备。如图34中所示,路段3400可以由左侧3406和右侧3408划界。预定道路模型轨迹3410可以定义当车辆200沿着路段3400行驶时车辆200可以遵循的、在路段3400之内的偏好路径(例如,目标道路模型轨迹)。在一些示范性实施例中,预定道路模型轨迹3410可以位于与左侧3406和右侧3408等距。然而,可以预见的是,预定道路模型轨迹3410可以位于更靠近路段3400的左侧3406和右侧3408中的一个或另一个。进一步,虽然图34示出路段3400中的一个车道,但是可以预见的是,路段3400可以具有任意数量的车道。还可以预见的是,可以根据所公开的方法和系统使用一个或多个地标3402、3404来导航沿着路段3400的任何车道行驶的车辆200。

图像获取单元120可以被配置为获取表示车辆200的环境的图像。例如,图像获取单元120可以使用图像捕获设备120、124、126中的一个或多个来获得示出在车辆200前面的视野的图像。车辆200的处理单元110可以被配置为在由图像获取单元120获取的一个或多个图像中检测一个或多个地标3402、3404。处理单元110可以使用以上参考图22-图28所讨论的地标标识的一个或多个过程来检测一个或多个地标3402、3404。虽然图34仅仅示出两个地标,地标3402、地标3404,但是可以预见的是,车辆200可以基于由图像获取单元120获取的图像检测少于或多余地标3402、3404的地标。

处理单元110可以被配置为分别确定相对于车辆200的当前位置3412的一个或多个地标3402、3404的位置3432、3434。处理单元110还可以被配置为确定车辆200的当前位置3412与一个或多个地标3402、3404之间的距离。进一步,处理单元110可以被配置为确定相对于车辆200的当前位置3412的一个或多个地标3402、3404的一个或多个方向指示符3414、3416。处理单元110可以被配置为将方向指示符3414、3416确定为源于车辆200的当前位置3412并分别朝向,例如,地标3402的位置3432、地标3404的位置3434延伸的矢量。

处理单元110还可以被配置确定一个或多个方向指示符3414、3416与预定道路模型轨迹3410的交叉点3418。在如图34中所示的一个示范性实施例中,交叉点3418可以与车辆200的当前位置3412一致。例如,当车辆200位于预定道路模型轨迹3410上时,这可以发生。虽然通常可以预期车辆位于预定道路模型轨迹3410上或在预定道路模型轨迹3410附近,但是,如以下将要针对图35讨论的,可以预见的是,车辆200可以不位于预定道路模型轨迹3410上。

处理单元110可以被配置为确定在交叉点3418处的预定道路模型轨迹3410的方向3420。处理单元110可以将方向3420确定为与预定道路模型轨迹3410相切的方向。在一个示范性实施例中,处理单元110可以被配置为基于表示预定道路模型轨迹3410的三维多项式的梯度或斜率来确定方向3420。

处理单元110还可以被配置为确定车辆200的航向方向3430。如图34中所示,车辆200的航向方向3430可以是相对于与车辆200相关联的本地坐标系统、图像捕获设备122可以沿着其朝向的方向。处理单元110可以被配置为确定车辆200的航向方向3430是否与预定道路模型轨迹3410的方向3420对齐(即,通常平行)。当在交叉点3418处,航向方向3430与预定道路模型轨迹3410的方向3420不对齐时,处理单元110可以确定自主转向动作,从而车辆200的航向方向3430可以与预定道路模型轨迹3410的方向3420对齐。在一个示范性实施例中,自主转向动作可以包括,例如,角度的确定,其中,车辆200的方向盘或前轮可以转动所述角度以帮助保证车辆200的航向方向3430可以与预定道路模型轨迹3410的方向3420对齐。在另一示范性实施例中,自主转向动作还可以包括车辆200的当前速度的减小或加速,以帮助保证在预定的时间量内,车辆200的航向方向3430可以与预定道路模型轨迹3410的方向3420对齐。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现预定角度的旋转来触发期望的导航响应。预定角度的旋转可以帮助将车辆200的航向方向3430与方向3420对齐。

当确定自主转向动作时,处理单元110可以包括额外的考虑。例如,在一些示例性实施例中,处理单元110可以基于车辆的运动学和物理模型来确定自主转向动作,所述运动学和物理模型可以包括关于车辆或关于车辆200的用户的各种可能的自主转向动作的效果。处理单元110可以实施用于从多个自主转向动作选择至少一个自主转向动作的选择准则。在其它示例性实施例中,处理单元110可以基于“向前看”操作来确定自主转向动作,所述“向前看”操作可以评估位于车辆200的当前位置3418前面的路段3400的部分。处理单元110可以确定可以由一个或多个自主转向动作引起的、一个或多个自主转向动作对在当前位置3418前面的位置处的车辆200的行为或对车辆200的用户造成的影响。在又一些其它示例性实施例中,处理单元110还可以考虑在车辆200附近的一个或多个其它车辆的存在和行为,以及一个或多个自主转向动作对这样的一个或多个其它车辆的可能的(估计的)影响。处理单元110可以将额外的考虑实施为超驰。因此,例如,处理单元110可以最初确定可以帮助保证在当前位置3418处车辆200的航向方向3430与预定道路模型轨迹3410的方向3420对齐的自主转向动作。当处理单元110确定所确定的自主转向与由额外考虑所施加的一个或多个约束不相符时,处理单元110可以修改自主转向动作以帮助保证所有的约束被满足。

图像获取单元120可以,例如,在预定的时间量之后,重复获取车辆200前面的环境的图像。处理单元110还可以被配置为重复地检测在由图像获取单元120获取的图像中的一个多个地标3402、3404,并且如以上讨论的确定自主转向动作。因此,图像获取单元120和处理单元110可以协作来使用一个或多个地标3402、3404沿着路段3400导航车辆。

图35示出沿着路段3400行驶的另一车辆200,在该路段中,用于使用一个或多个已识别地标3402、3404来导航车辆200的所公开的系统和方法可以被使用。不同于图34,图35的车辆200不位于预定道路模型轨迹3410上。结果,如图35中所示,方向指示符3416的交叉点3418可能不与车辆200的当前位置3412一致。

如以上针对图34所讨论的,处理单元110可以被配置为确定在交叉点3418处的预定道路模型轨迹3410的方向3420。处理单元110还可以被配置为确定车辆200的航向方向3430是否与方向3420对齐(即,通常平行)。当航向方向3430与在交叉点3418处的预定道路模型轨迹3410的方向3420不对齐时,处理单元110可以确定第一自主转向动作,从而车辆200的航向方向3430可以与预定道路模型轨迹3410的方向3420对齐。例如,如图35所示,处理单元110可以确定要求某一角度的旋转的第一自主转向动作以帮助保证车辆200的航向方向3430可以与方向3420对齐。

此外,当车辆200的当前位置3412不位于预定道路模型轨迹3410上时,处理单元120可以确定第二自主转向动作以帮助保证车辆200可以从当前位置3412移动到在预定道路模型轨迹3410上的交叉点3418。例如,如图35中所示,处理单元110可以确定车辆200必须被平移以将当前位置3412移动到与预定道路模型轨迹3410上的交叉点3418一致的距离“d”。虽然图35中没有示出,但是处理单元110还可以被配置为确定帮助保证车辆200可以从当前位置3421移动到在预定道路模型轨迹3410上的交叉点3418可能要求的旋转。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以触发与第一自主转向动作、第二自主转向动作、或第一自主转向动作和第二自主转向动作的一些组合相对应的期望的导航响应。在一些实施例中,处理单元110可以以任何次序顺序地执行指令,以触发与第一自主转向动作和第二自主转向动作相对应的期望的导航响应。

图36是示出与所公开的实施例一致的、用于使用一个或多个地标3402、3404沿着路段3400导航车辆200的示范性过程3600的流程图。可以由处理器单元110和图像获取单元120中的一个或多个来执行过程3600的步骤,在需要或不需要访问存储器140或存储器150的情况下。提供过程3600中的步骤的次序和排列是用于例示的目的。如将从本公开领会的,可以通过,例如,添加、组合、移除、和/或重新排列针对过程的步骤来对过程3600进行修改。

如图36中所示,过程3600可以包括获取表示车辆的环境的图像的步骤3602。在一个示范性实施例中,图像获取单元120可以获取车辆200前方(或例如,车辆的侧面或后面)的区域的一个或多个图像。例如,图像获取单元120可以使用具有视场202的图像捕获设备122获得图像。在另一示范性示例中,图像获取单元120可以从具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、具有视场206的图像捕获设备126中的一个或多个获取图像。图像获取单元120可以通过数据连接(例如,数字的、有线的、usb、无线的、蓝牙等等)向处理单元110发送一个或多个图像。

过程3600还可以包括在一个或多个图像中标识一个或多个地标3402、3404的步骤3604。处理单元110可以从图像获取单元120接收一个或多个图像。如结合图5b-图5d更详细描述的,处理单元110可以执行单目图像分析模块402以在步骤3604分析多个图像。通过执行该分析,处理单元110可以检测在图像的集合之内的特征的集合,例如,一个或多个地标3402、3404。地标3402、3404可以包括一个或多个交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、灯柱、道路上的线的间隔的改变、商业标志等等。

在一些实施例中,处理单元110可以执行单目图像分析模块402,以对多个图像执行多帧分析,来检测地标3402、3404。例如,处理单元110可以估计在连续图像帧之间的相机运动并且计算帧之间的像素中的视差,以构建道路的3d-地图。然后处理单元110可以使用3d-地图来检测道路表面以及地标3402、3404。在另一示范性实施例中,处理单元110的图像处理器190可以将从图像获取单元120接收的多个图像组合成一个或多个复合图像。处理单元110可以使用该复合图像来检测一个或多个地标3402、3404。

在一些实施例中,处理单元110可以能够识别可以适合作为潜在地标的对象的各种属性。此信息可以被上传到,例如,远离车辆的服务器。服务器可以处理所接收到的信息,并且可以建立新的,例如,在稀疏数据地图800之内的已识别地标。对于服务器,更新已经被包括在稀疏地图800中的已识别地标的一个或多个特性(例如,尺寸、位置等等)也是可能的。

在有些情况下,处理单元110可以从可以辅助定位已识别地标(例如,在稀疏数据地图800中已经被标识和表示的那些地标)的远程服务器接收信息。例如,当车辆沿着特定路段行驶时,处理器110可以访问与正被穿越的路段相对应的一个或多个本地地图。本地地图可以是被存储在相对于车辆远程定位的服务器上的稀疏数据地图800的部分,并且一个或多个本地地图可以根据需要被无线地下载。在有些情况下,稀疏地图800可以相对于导航车辆被本地地存储。本地地图可以包括与路段相关联的各种特征。例如,本地地图可以包括表示车辆应该沿着路段遵循的目标轨迹的多项式样条。本地地图还可以包括已识别地标的表示。在有些情况下,如先前描述的,已识别地标可以包括诸如地标类型、位置、尺寸、到另一地标的距离、或其它特性的信息。在非语义标志(例如,不一定与道路导航相关联的通用标志)的情况下,例如,被存储在稀疏数据地图800中的信息可以包括与非语义道路标志相关联的浓缩的图像签名。

从稀疏数据地图800中接收的这样的信息可以辅助处理器单元110沿着路段标识已识别地标。例如,处理单元110可以基于它的当前位置(例如,基于gps数据、相对于最近所确定位置的航位推算、或任何其它合适的方法所确定的)和被包括在本地地图中的信息(例如,将要遇到的下一地标的本地位置、和/或指示从最近遇到的地标到下一地标的距离的信息)来确定已识别地标应该位于车辆之前大约95米且当前航向方向的右侧10度的位置。处理单元110还可以从本地地图中的信息确定已识别地标具有与限速标志相对应的类型、以及该标志具有大约2英尺宽×3英尺高的矩形形状。

因此,当处理器单元110接收到由车载相机捕获的图像时,可以通过从稀疏地图800搜索在已识别地标的期望位置处的对象来分析那些图像。在限速标志示例中,处理单元110可以检阅所捕获的图像并且在图像中的车辆的航向方向右侧10度的位置处寻找矩形形状。进一步,处理器可以在95米的相对距离处寻找占据图像的若干像素的矩形形状,所述若干像素是2英尺×3英尺的矩形标志将被期望占据的。在图像中标识这样的对象时,可以预见的是,处理器可以开发期望的已识别地标已经被标识的某一置信水平。例如,通过分析图像以确定何种文本或图形出现在所捕获的图像中的标志上,可以获得进一步确认。通过纹理或图形识别过程,处理器单元可以确定所捕获的图像中的矩形形状包括文本“限速55”。通过将所捕获的文本和与被存储在稀疏数据地图800中的已识别地标相关联的类型代码(例如,指示将要遇到的下一地标是限速标志的类型)进行比较,此信息能够进一步验证在所捕获图像中的所观察到的对象事实上是期望的已识别地标。

过程3600可以包括确定车辆200相对于目标轨迹的当前位置3412的步骤3606。处理单元110可以以许多不同的方式来确定车辆200的当前位置3412。例如,处理单元110可以基于来自,位置传感器130,例如gps传感器,的信号来确定当前位置3412。在另一示范性实施例中,当车辆200沿着预定道路模型轨迹3410行驶时,处理单元110可以通过整合车辆200的速度来确定车辆200的当前位置3412。例如,处理单元110可以确定车辆200在预定道路模型轨迹3410的两个位置之间行驶所要求的时间“t”。处理单元110可以整合车辆200随时间t上的速度,以确定相对于预定道路模型轨迹3410的两个位置的车辆200的当前位置3412。

一旦已识别地标在所捕获图像中被标识,已识别地标的预定特性就可以被用来协助主车辆导航。例如,在一些实施例中,已识别地标可以被用来确定主车辆的当前位置。在一些情况下,可以相对于来自稀疏数据模型800的目标轨迹来确定主车辆的当前位置。知道车辆相对于目标轨迹的相对位置可以辅助确定引起车辆遵循目标轨迹所需要的转向角度(例如,通过在车辆相对于目标轨迹的所确定的当前位置处比较航向方向和目标轨迹的方向)。

可以以多种方式来确定车辆相对于来自稀疏数据地图800的目标轨迹的位置。例如,在一些实施例中,可以采用6d卡尔曼滤波技术。在其它实施例中,可以相对于车辆和已识别地标使用方向指示符。例如,过程3600还可以包括分别确定与一个或多个地标3402、3404相关联的一个或多个方向指示符3414、3416的步骤3608。处理单元110可以基于一个或多个地标3402、3404分别相对于车辆200的当前位置3412的相对位置3432、3434来确定方向指示符3414、3416。例如,处理单元110可以从可以被存储在存储器140或150中的一个或多个数据库中的信息来接收分别对于地标3402、3404的地标位置3432、3434。处理单元110还可以确定车辆200的当前位置3412与分别对于地标3402、3404的地标位置3432、3434之间的距离。此外,处理单元110可以将方向指示符3414确定为,从车辆200的当前位置3412延伸并且沿着穿过当前位置3412和地标位置3432的直线延伸的矢量。同样地,处理单元110可以将方向指示符3416确定为,从车辆200的当前位置3412延伸并且沿着穿过当前位置3412和地标位置3434的直线延伸的矢量。虽然在上述讨论中引用两个地标3402、3404,但是可以预见的是,处理单元110可以确定地标位置3432、3434,当前位置3412和地标位置3402、34014之间的距离,以及对于少于或多于地标3402、3404的方向指示符3414、3416。

过程3600可以包括确定预定道路模型轨迹3410与方向指示符3416的交叉点3418的步骤3610。处理单元110可以确定交叉点3418的位置,在该位置处,预定道路模型轨迹3410与在车辆200的当前位置3412和地标位置3414之间延伸的直线交叉。处理单元110可以从被存储在存储器140、150中的信息获得预定道路模型轨迹3410的数学表示。处理单元110还可以生成穿过车辆200的当前位置3412和地标3404的地标位置3434两者的直线的数学表示。处理单元110可以使用预定道路模型轨迹3410的数学表示、和在当前位置3412和地标位置3434之间延伸的直线的数学表示,来确定交叉点3418的位置。

在如图34中所示的一个示范性实施例中,交叉点3418可以与车辆200的当前位置3412一致(例如,与车辆相关联的、可以被任意分配的参考点的位置)。例如,当车辆200位于预定道路模型轨迹3410上时,这可以发生。在如图35中所示的另一示范性实施例中,交叉点3418可以与当前位置3412分离。处理单元110可以通过将当前位置3412和地标位置3434之间的第一距离“d1”与交叉点3418和地标位置3434之间的第二距离“d2”进行比较,来检测车辆200没有位于预定道路模型轨迹3410上。

当交叉点3418与车辆200的当前位置3412分离时,处理单元110可以确定帮助将车辆200从当前位置3412移动到预定道路模型轨迹3410上的交叉点3418所要求的平移和/或旋转的量。在一些示范性实施例中,处理单元110可以执行导航模块408,以基于在步骤520执行的分析和如以上结合图4所述的技术在车辆200中引起一个或多个导航响应。例如,处理单元110可以向转向系统240发出命令以移动车辆200,从而车辆200的当前位置3412可以与交叉点3418一致。

过程3600可以包括确定在交叉点3418处的预定道路模型轨迹3410的方向3420的步骤3612。在一个示例性实施例中,处理单元110可以获得预定道路模型轨迹3410的数学表示(例如,三维多项式)。处理单元110可以将方向3420确定为在交叉点3418处与预定道路模型轨迹3410相切的矢量。例如,处理单元110可以将方向3420确定为在交叉点3418处沿着预定道路模型轨迹3410的数学表示的梯度指向的矢量。

过程3600还可以包括为车辆200确定自主转向动作的步骤3614。在一个示范性实施例中,处理单元110可以确定车辆200的航向方向3430。例如,如图34和图35中所示,处理单元110可以将车辆200的航向方向3430确定为图像捕获设备122相对于与车辆200相关联的本地坐标系统所朝向的方向。在另一示范性实施例中,处理单元200可以将航向方向3430确定为在当前位置3412处车辆200的运动的方向。处理单元110还可以确定航向方向3430和预定道路模型轨迹3410的方向3420之间的旋转角度。处理单元110可以执行在导航模块408中的指令,来为车辆200确定可以帮助保证车辆200的航向方向3430与在交叉点3418处的预定道路模型轨迹3410的方向3420对齐(即,平行)的自主转向动作。处理单元110还可以向转向系统240传送控制信号,以调整车辆200的车轮的旋转,来转动车辆200,从而航向方向3430可以与在交叉点3418处的预定道路模型轨迹3410的方向3420对齐。在一个示范性实施例中,处理单元110可以向转向系统240传送信号,以调整车辆200的车轮的旋转,来转动车辆200直到航向方向3430和在交叉点3418处的预定道路模型轨迹3410的方向3420之间的差异可以小于预定阈值。

处理单元110和/或图像获取单元120可以在预定的时间量之后重复步骤3602至步骤3614。在一个示范性实施例中,预定的时间量可以在大约0.5秒至1.5秒之间的范围内。通过重复地确定交叉点3418、航向方向3430、在交叉点3418处的预定道路模型轨迹3410的方向3420、以及将航向方向3430与方向3420对齐所要求的自主转向动作,处理单元110和/或图像获取单元120可以使用一个或多个地标3402、3404帮助导航车辆200,从而车辆200可以沿着路段3400行驶。

尾部对齐导航

与所公开的实施例一致,系统能够通过对主车辆(尾部)的行驶轨迹与沿着道路模型轨迹的在已知位置处的预定道路模型轨迹进行比较和对齐来为主车辆确定转向方向。行驶轨迹提供在主车辆位置处的车辆航向方向,并且能够通过确定最小化或减小行驶轨迹和在沿着道路模型轨迹的车辆的已知位置处的道路模型轨迹之间的误差的变换(例如,旋转和潜在的平移),来相对于航向方向获得转向方向。

尾部对齐是基于关于车辆已经驶过的路径的信息,将自主车辆的航向与路径的预先存在的模型对齐的方法。尾部对齐使用在某一距离上的自主车辆的跟踪路径(因此,称为“尾部”)。跟踪路径是自主车辆已经行驶以便到达自主车辆的当前位置的路径的表示。例如,跟踪路径可以包括自主车辆行驶了以便到达它的当前位置的在自主车辆后面的预定距离(例如,60m或其它期望的长度)的路径。跟踪路径可以与模型进行比较以确定,例如,自主车辆的航向角度。

在一些实施例中,后视相机被用来确定已行驶路径或辅助已行驶路径的确定。后视相机对于建模、航向估计,和横向偏移估计两者都可以是有用的。由于不良的亮度情形(例如,水平线上的低太阳)很少会影响前视相机和后视相机两者,所以通过添加后视相机,提升系统的可靠性是可能的。

跟踪路径还能够可选地与自主车辆的预测路径组合。通过处理在自主车辆前方的环境的图像并检测车道、或其它道路布局、标记,可以生成预测路径。在这一点上,值得注意的是,在本公开的潜在实施方式中,由于累积误差(自我运动的整合)道路模型可能发散。因此,例如,在自主车辆的当前位置前面的预定距离(例如,40m)上的预测路径可以与跟踪路径进行比较,来为自主车辆确定航向角度。

图37示出在路段3700上行驶的车辆200(其可以是自主车辆),其中,用于使用尾部对齐来导航车辆200的所公开的系统和方法可以被使用。如这里和贯穿本公开所使用的,术语“自主车辆”是指能够在没有驾驶员输入的情况下实施路线中的至少一个导航改变的车辆。为了是自主的,车辆不需要完全地自动(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包括那些能够在某些时间段期间在驾驶员的控制下操作,且在其它时间段期间无需驾驶员控制的车辆。自主车辆还包括仅控制车辆导航的一些方面,诸如转向(例如,维持车辆路线在车辆车道限制之间),但可以将其它方面留给驾驶员(例如,制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速率控制、和/或转向的一些或全部方面。

虽然图37将车辆200描绘为配备有图像捕获设备122、124、126,但是在任何特定车辆200上可以采用更多或更少的图像捕获设备。如图37中所示,路段3700可以通过左侧3706和右侧3708划界。预定道路模型轨迹3710可以在路段3700之内定义当车辆200沿着路段3700行驶时车辆200可以遵循的偏好路径(即,目标道路模型轨迹)。在一些示范性实施例中,预定道路模型轨迹3710可以位于与左侧3706和右侧3708等距。然而,可以预见的是,预定道路模型轨迹3710可以位于更靠近路段3700的左侧3706和右侧3708中的一个或另一个。进一步,虽然图37示出路段3700中的一个车道,但是可以预见的是,路段3700可以具有任意数量的车道。还可以预见的是,根据所公开的方法和系统,沿着路段3400的任何车道行驶的车辆200可以使用尾部对齐来导航。

图像获取单元120可以被配置为在车辆200沿着路段3700行驶时,获取表示车辆200的环境的多个图像。例如,图像获取单元120可以使用图像捕获设备120、124、126中的一个或多个来获得示出在车辆200前面的视野的多个图像。车辆200的处理单元110可以被配置为在多个图像中的每一个中检测车辆200的位置。车辆200的处理单元110还可以被配置为基于所检测的位置来确定已行驶轨迹3720。如本公开中所使用的,已行驶轨迹3720可以表示当车辆200沿着路段3700行驶时,车辆200所采取的实际路径。

处理单元110可以被配置为基于对多个图像的分析来确定车辆200的当前位置3712。在如图37中所示的一个示范性实施例中,车辆200的当前位置3712可以与在预定道路模型轨迹3710上的目标位置3714一致。例如,当车辆200位于预定道路模型轨迹3710上时,这可以发生。虽然通常车辆可以被期望位于预定道路模型轨迹3710上或非常靠近预定道路模型轨迹3710,但是,如以下将要针对图38讨论的,可以预见的是,车辆200可以不位于预定道路模型轨迹3410上。

处理单元110可以被配置为通过比较已行驶轨迹3720和在车辆200的当前位置3712处的预定道路模型轨迹3710,来为车辆200确定自主转向动作。例如,处理单元110可以被配置为确定变换(例如,旋转和潜在的平移),从而可以减小在已行驶轨迹3720和预定道路模型轨迹3710之间的误差。

处理单元110可以被配置为确定在当前位置3712处的车辆200的航向方向3730。处理单元110可以基于已行驶轨迹3720确定航向方向3730。例如,处理单元110可以将航向方向3730确定为已行驶轨迹3720在车辆200的当前位置3712处的梯度。处理单元110还可以被配置为将转向方向3740确定为与预定道路模型轨迹3710相切的方向。在一个示范性实施例中,处理单元110可以被配置为基于表示预定道路模型轨迹3710的三维多项式的梯度来确定转向方向3740。

处理单元110可以被配置为确定车辆200的航向方向3730是否与预定道路模型轨迹3710的转向方向3740对齐(即,通常平行)。当航向方向3730与车辆200的当前位置3712处的预定道路模型轨迹3710的转向方向3740不对齐时,处理单元110可以确定自主转向动作,从而车辆200的航向方向3730可以与预定道路模型轨迹3710的转向方向3740对齐。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现角度为的旋转来触发期望的导航响应。角度为的旋转可以帮助将车辆200的航向方向3730与转向方向3740对齐。因此,例如,处理单元110可以通过确定角度来执行车辆200的尾部对齐,车辆200可以转动所述角度使得自主车辆的航向方向3730可以与转向方向3740对齐。

例如,在预定的时间量之后,图像获取单元120可以重复地获取车辆200前面的环境的多个图像。处理单元110还可以被配置为重复地确定如以上所讨论的变换。因此,图像获取单元120和处理单元110可以使用车辆200的已行驶轨迹3720(例如,尾部)沿着路段3400协作导航车辆200。

图38示出在路段3700上行驶的另一车辆200,其中,用于导航车辆200的所公开的系统和方法使用尾部对齐。不同于图38,图38的车辆200不位于预定道路模型轨迹3710上。结果,如图38中所示,车辆200的目标位置3714可能不与车辆200的当前位置3712一致。

如以上针对图37所讨论的,处理单元110可以被配置为确定在车辆200的当前位置3712处的预定道路模型轨迹3710的转向方向3740。处理单元110可以将转向方向3740确定为预定道路模型轨迹3710在目标位置3714处的梯度的方向。处理单元110还可以被配置为确定车辆200的航向方向3730是否与转向方向3740对齐(即,通常平行)。当航向方向3730不与转向方向3740对齐时,处理单元110可以确定可以包括,例如,将航向方向3730与转向方向3740对齐所要求的旋转角度的变换。此外,变换可以包括保证车辆200可以从当前位置3712移动到在预定道路模型轨迹3710上的目标位置3714所要求的平移“d”。

处理单元110可以被配置为通过比较预定道路模型轨迹3710与车辆200的已行驶轨迹3720来确定变换。在一个示范性实施例中,处理单元110可以通过减小预定道路模型轨迹3710和已行驶轨迹3720之间的误差来确定变换。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以基于所确定的变换来触发期望的导航响应。

图39是示出与所公开的实施例一致的、用于沿着路段3700导航车辆200的示范性过程3900的流程图。可以由处理器单元110和图像获取单元120中的一个或多个来执行过程3900的步骤,需要或不需要访问存储器140或存储器150。提供过程3900中的步骤的次序和排列是用于例示的目的。如将从本公开领会的,可以通过,例如,添加、组合、移除、和/或重新排列用于过程的步骤来对过程3900进行修改。

如图39中所示,过程3900可以包括获取表示车辆的环境的多个图像的步骤3902。在一个示范性实施例中,当车辆沿着路段3700行驶时,图像获取单元120可以获取在多个位置处的、在车辆200前方(例如,或车辆的侧面或后方)区域的多个图像。例如,图像获取单元120可以在位置3752-3768和位置3712中的每一个处,使用具有视场202的图像捕获设备122获得图像(见图37、图38)。在其它示范性实施例中,图像获取单元120可以在位置3752-3768和3712中的每一个处从具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、具有视场206的图像捕获设备126中的一个或多个获取图像。图像获取单元120可以通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送一个或多个图像。由一个或多个图像捕获设备122、124、126获得的图像可以被存储在存储器140、150、和/或数据库160中的一个或多个中。

过程3900还可以包括确定已行驶轨迹3720的步骤3904。处理单元110可以从图像获取单元120接收一个或多个图像。处理单元110可以执行相似于针对图34-图36所讨论的那些的过程,以在多个图像中标识车辆200的位置3752-3768。例如,处理单元110可以标识一个或多个地标,并且使用地标的方向矢量,以使用针对图34至图36所公开的系统和方法来确定位置3752-3768、以及当前位置3712。处理单元110可以基于车辆200的已确定的位置3752-3768以及当前位置3712来确定已行驶轨迹3720。在一个示范性实施例中,处理单元110可以通过对车辆的所确定的位置3752-3768以及当前位置3712曲线拟合一三维多项式来确定已行驶轨迹3720。

在一些实施例中,处理单元110可以执行单目图像分析模块402以对多个图像执行多帧分析。例如,处理单元110可以估计在连续图像帧之间的相机运动并且计算在帧之间的像素视差,以构建道路的3d-地图。然后,处理单元110可以使用3d-地图来检测道路表面以及生成车辆200的已行驶轨迹3720。

过程3900可以包括确定车辆200的当前位置3712的步骤3906。处理单元110可以通过执行与,例如,关于基于已识别地标导航的、针对图34-图36所讨论的那些过程相似的过程,来确定车辆200的当前位置3712。在一些示范性实施例中,处理单元110可以基于来自位置传感器130,例如,gps传感器的信号来确定当前位置3712。在另一示范性实施例中,处理单元110可以通过整合车辆200在车辆200沿着已行驶轨迹3720行驶时的速度来确定车辆200的当前位置3712。例如,处理单元110可以确定车辆200在已行驶轨迹3720上的两个位置3751和位置3712之间行驶所要求的时间“t”。处理单元110可以整合车辆200在时间t上的速度,以确定车辆200相对于位置3751的当前位置3712。

过程3900还可以包括确定车辆200的当前位置是否位于预定道路模型轨迹3710上的步骤3908。在一些示范性实施例中,可以由沿着路段3700的目标轨迹的三维多项式来表示预定道路模型轨迹3710。处理单元110可以从被存储在被包括在车辆200中的一个或多个存储器140和存储器150中的数据库160检索预定道路模型轨迹3710。在一些实施例中,处理单元110可以经由无线通信接口从存储在遥远位置处的数据库160检索预定道路模型轨迹3710。

处理单元110可以通过,例如,确定车辆200和已识别地标之间的距离,来使用与针对图34-图37所讨论的那些过程相似的过程来确定车辆200的当前位置3712是否位于预定道路模型轨迹3710上。当处理单元110确定车辆200的当前位置在预定道路模型轨迹3710上时(见图37),处理单元110可以前进到步骤3912。然而,当处理单元110确定车辆200的当前位置不在预定道路模型轨迹3710上时(见图38),处理单元110可以前进到步骤3910。

在步骤3910中,处理单元110可以确定可以帮助保证车辆200可以从当前位置3712移动到在预定道路模型轨迹3710上的目标位置3714的横向偏移“d”。处理单元110可以确定横向偏移d。在一个实施例中,处理单元110可以通过确定左侧3706、和右侧3708来确定横向偏移d。在一个其它示范性实施例中,处理单元110可以确定将当前位置转换到目标位置3714所需要的平移函数。在另一实施例中,处理单元110可以通过减小在当前位置3712和目标位置3714之间的误差来确定平移函数。在额外的示范性实施例中,处理单元110可以通过观察(使用一个或多个车载相机、和由那些相机捕获的一个或多个图像)路段3700的左侧3706和右侧3708来确定横向偏移d。在确定横向偏移d之后,处理单元可以前进到步骤3912。

过程3900可以包括确定车辆200的航向方向3730的步骤3912、并且可能确定对在步骤3906中计算出的当前位置3712的纠正。在一个示范性实施例中,处理单元110可以通过将在当前位置3712处的已行驶轨迹3720和模型轨迹3710对齐来确定航向方向3730和对位置3712的纠正。对齐程序可以提供减小或最小化位置3720和位置3712之间的距离的坐标变换。在一个示范性实施例中,处理单元110可以考虑3d旋转(航向)和1d纵向平移,计算有四个自由度的坐标变换。在另一示范性实施例中,处理单元110可以计算有1和6之间的任意数量的参数(自由度)的坐标变换。对齐之后,处理单元110可以基于车辆200的当前速度和模型轨迹3710的几何来确定在时间“t”之后的车辆200的预测位置3774(见图37、图38)。

在其它示范性实施例中,在步骤3912,处理单元110可以确定车辆200的航向方向3730,并且可能确定对在步骤3906中计算出的当前位置3712的纠正。例如,处理单元110可以通过将在当前位置3712处的已行驶轨迹3720和模型轨迹3710对齐来确定航向方向3730和改进后的位置3712。对齐程序可以找到最小化3720和3712之间的距离的坐标变换。在一个示范性实施例中,处理单元110可以考虑3d旋转(航向)和1d纵向平移,计算有四个自由度的坐标变换。在另一示范性实施例中,处理单元110可以利用1和6之间的任意数量的参数(自由度)来计算坐标变换。对齐之后,处理单元110可以基于车辆200的当前速度和模型轨迹3710的几何来确定在时间“t”之后的车辆200的预测位置3774(见图37、图38)。

在再其它示范性实施例中,处理单元110可以将航向方向3730和位置3712确定为已行驶轨迹3720在车辆200的当前位置3712处的梯度。例如,处理单元110可以获得表示已行驶轨迹3720的三维多项式的斜率,以确定车辆200的航向方向3730。在另一示范性实施例中,过程110可以从当前位置3712将已行驶轨迹3720向前投影。在投影已行驶轨迹3720时,处理单元110可以基于车辆200的当前速度来确定在时间“t”之后的车辆200的预测位置3774(见图37、图38)。

处理单元110还可以基于许多线索中的一个来确定在时间“t”之后的车辆200的预测位置3774。例如,处理单元110可以基于可以是表示路段3700的左侧3706的多项式的左车道标记多项式来确定时间“t”之后的车辆200的预测位置3774。因此,例如,处理单元110可以确定在与车辆200的当前位置3712相对应的左车道标记多项式上的左位置3770(见图37、图38)。处理单元110可以通过基于左车道标记多项式确定在当前位置3712和左侧3706之间的距离“d”来确定位置3770。可以预见的是,当车辆200不位于预定道路模型轨迹3710上时(如图38中),处理单元110可以将距离d确定为目标位置3714和左侧3706之间的距离。处理单元110还可以使用左车道标记多项式的数学表示和车辆200的当前速度,确定在时间“t”之后的、在左侧3706上的位置3772。处理单元110可以通过将在左侧3706上的、所确定的位置3773横向地偏移距离d来确定车辆200的预测位置3774。在另一示范性实施例中,处理单元110可以基于可以是表示路段3700的右侧3708的多项式的右车道标记多项式来确定时间“t”之后的车辆200的位置。处理单元110可以执行与以上针对左车道标记多项式所讨论的那些过程相似的过程,以基于右车道标记多项式确定车辆200的预测位置3774。

在一些示范性实施例中,处理器110可以基于由可能正在车辆200的前面行驶的前方车辆所遵循的轨迹来确定在时间“t”之后的车辆200的位置。在其它示范性实施例中,处理单元200可以通过确定在车辆200前方的自由空间的量和车辆200的当前速度来确定在时间“t”之后的车辆200的位置。在一些实施例中,处理单元200可以基于虚拟车道或虚拟的车道约束来确定在时间“t”之后的车辆200的位置。例如,当处理单元110检测到在车辆200前面行驶的两个车辆,每个相邻车道中一个车辆时,处理单元110可以使用在前面的两个车辆之间的平均横向距离作为轨迹(虚拟车道记号),该轨迹可以被用来确定在时间“t”之后车辆200的位置。在其它实施例中,当定义虚拟车道约束时,处理单元110可以使用左侧3706(即,左侧车道标记多项式)和右侧3708(即,右侧车道标记多项式)的数学表示。处理单元110可以基于虚拟车道约束(即,基于左车道标记多项式和右车道标记多项式两者)和车辆200离左侧3706和右侧3708的估计的位置来确定车辆200的预测位置3774。

在其它实施例中,处理单元110可以基于遵循使用整体路径预测方法所预测的路径来确定在时间“t”之后车辆200的预测位置3774。在一些示范性实施例中,处理单元110可以通过对上述线索中的一些或全部施加权重,来确定在时间“t”之后车辆200的预测位置3774。例如,处理单元110可以将在时间“t”之后车辆200的位置确定为基于以下各项中的一个或多个所预测的位置的加权组合:左车道标记多项式模型、右车道标记多项式模型、整体路径预测、前方车辆的运动、自主车辆前面的所确定的自由空间、以及虚拟车道。处理单元110可以使用车辆200的当前位置3712和在时间“t”之后的预测位置3774来为车辆200确定航向方向3730。

在一些实施例中,在过程3900的步骤3912中,处理单元110还可以估计纵向偏移。例如,处理单元110可以通过在模型轨迹和车辆200的尾部之间的对齐程序来解决航向和偏移。

过程3900还可以包括确定转向方向3740的步骤3914。在一个示例性实施例中,处理单元110可以获得预定道路模型轨迹3710的数学表示(例如,三维多项式)。处理单元110可以将转向方向3740确定为在目标位置3714处与预定道路模型轨迹3710相切的矢量。例如,处理单元110可以将方向3740确定为指向沿着预定道路模型轨迹3710的数学表示在目标位置3714处的梯度的矢量。

过程3900还可以包括基于,例如,在步骤3910-3914中所确定的变换来调整车辆200的转向系统240的步骤3916。所要求的变换可以包括横向偏移d。变换还可以包括按照某一角度的旋转,以帮助保证车辆200的航向方向3430可以与转向方向3740对齐的。虽然,图37、图38示出在航向方向3730和转向方向3740之间的一个角度的确定,但是可以预见的是,在三维空间中,可以要求沿着在三个通常正交的平面中的三个角度的旋转,以保证航向方向3730可以与转向方向3730对齐。因此,本领域普通技术人员将认识到在步骤3910-3914中所确定的变换可以包括至少三个旋转角度和至少一个平移(即,横向偏移)。

当车辆200不位于预定道路模型轨迹3710上时,处理单元110可以向转向系统240传送控制信号,以调整车辆200的车轮的旋转,从而航向方向3730可以与转向方向3740对齐,并且车辆200可以从当前位置3712移动到目标位置3714。处理单元110和/或图像获取单元120可以在预定的时间量之后重复步骤3902至步骤3916。在一个示范性实施例中,预定的时间量可以在大约0.5秒至1.5秒之间的范围内。通过重复确定横向偏移d和旋转角度,处理单元110和/或图像获取单元120可以使用尾部对齐帮助沿着路段3700导航车辆200。

如在其它部分中所讨论的,沿着路段的自主车辆的导航可以包括一个或多个已识别地标的使用。除了其它以外,这样的已识别地标可以使得自主车辆能够确定它相对于来自稀疏数据模型800的目标轨迹的当前位置。使用一个或多个已识别地标的当前位置确定可以比使用,例如,gps感测来确定位置更精确。

在已识别地标之间,自主车辆可以使用航位推测技术导航。该技术可以涉及基于车辆的所感测的自我运动,周期性地估计车辆相对于目标轨迹的当前位置。这样的所感测的自我运动使得车辆不仅能够(例如,使用处理单元110)估计车辆相对于目标轨迹的当前位置,而且它还可以使得处理单元110能够重建车辆的已行驶轨迹。可以被用来确定车辆的自我运动的传感器可以包括诸如,例如,车载相机、速率计、和/或加速计的各种传感器。使用这样的传感器,处理单元110可以感测车辆已经行驶过的地点并且重建已行驶轨迹。然后,可以使用上述尾部对齐技术将该重建的已行驶轨迹与目标轨迹进行比较,以确定,如果有的话,将在当前位置处的已行驶轨迹和当前位置处的目标轨迹对齐要求何种导航改变。

导航道路枢纽

与本公开实施例一致的,系统可以导航通过可以由具有少量车道标记或没有车道标记的区域构成的道路枢纽。枢纽导航可以包括基于两个或更多个地标的3d位置。因此,例如,系统可以依赖两个或更多个地标来确定自主车辆的当前位置和航向。进一步,系统可以基于所确定的航向和表示对于车辆的偏好路径的预定道路模型轨迹的方向来确定转向动作。

图40示出行驶通过道路枢纽4000的车辆200(其可以是自主车辆),其中用于导航道路枢纽的所公开的系统和方法可以被使用。如图40中所示,车辆200可以正在沿着可以与路段4004交叉的路段4002行驶。虽然在图40中,路段4002和路段4004似乎以直角相交,但是可以预见的是,路段4002和路段4004可以以任何角度相交。进一步,虽然在图40中,路段4002和路段4004每个具有两个车道,但是可以预见的是,路段4002和路段4004可以具有任何数量的车道。还可以预见的是,路段4002和路段4004可以具有相同或不同数量的车道。

车辆200可以沿着路段4002的车道4006行驶。车辆200可以配备有三个图像捕获设备122、124、126。虽然图40将车辆200描绘为配备有图像捕获设备122、124、126,但是在任何特定车辆200上可以采用更多或更少的图像捕获设备。如图40中所示,路段4002的车道4006可以通过左侧4008和右侧4010划界。预定道路模型轨迹4012可以定义当车辆200沿着路段4002、4004通过枢纽4000时车辆200可以遵循的在路段4002、4004的车道4006之内的偏好路径(即,目标道路模型轨迹)。在一些示范性实施例中,预定道路模型轨迹4012可以位于与左侧4008和右侧4010等距。然而,可以预见的是,预定道路模型轨迹4012可以位于更靠近路段4002的左侧4008和右侧4010中的一个或另一个。

在一个示范性实施例中,可以使用三维多项式函数来算数地定义预定道路模型轨迹4012。在一些示范性实施例中,车辆200的处理单元110可以被配置为从被存储在被包括在车辆200中的一个或多个存储器140、150中的数据库(例如,160)检索预定道路模型轨迹4012。在其它示范性实施例中,车辆200的处理单元110可以被配置为通过无线通信接口从可以远离车辆200被存储的数据库(例如,160)检索预定道路模型轨迹4012。如图40的示范性实施例中所示,预定道路模型轨迹4012可以允许车辆200从路段4002的车道4006左转到路段4004的车道4014。

图像获取单元120可以被配置为获取表示车辆200的环境的图像。例如,图像获取单元120可以使用图像捕获设备120、124、126中的一个或多个来获得示出在车辆200前面的视野的图像。车辆200的处理单元110可以被配置为在由图像获取单元120获取的一个或多个图像中检测两个或更多个地标4016、4018。例如,可以使用先前讨论的地标检测技术来发生这样的检测。处理单元110可以使用以上参考图22-图28所讨论的地标标识的一个或多个过程来检测两个或更多个地标4016、4018。虽然图40示出两个地标,地标4016、4018,但是可以预见的是,车辆200可以基于由图像获取单元120获取的图像检测多于两个地标4016、4018(即,三个或更多个地标)。例如,图40示出可以被处理单元110检测到和使用的额外的地标,地标4020和地标4022。

处理单元110可以被配置为分别确定地标4016、地标4018相对于车辆200的位置4024、位置4026。处理单元110还可以被配置为确定地标4016、地标4018相对于车辆200的一个或多个方向指示符4030、方向指示符4032。进一步,处理单元110可以被配置为基于方向指示符4030、方向指示符4032的交叉来确定车辆200的当前位置4028。在如图40中所示的一个示范性实施例中,处理单元110可以被配置为将当前位置4028确定为方向指示符4030、4032的交叉点。

处理单元110可以被配置为确定车辆200的先前位置。在一个示范性实施例中,当车辆200在路段4002和路段4004上行驶时,处理单元110可以重复地确定车辆200的位置。因此,例如,在车辆200到达它的当前位置4028之前,车辆可以位于先前位置4034处,并且可以从先前位置4034行驶到当前位置4028。在到达当前位置4028之前,车辆200的处理单元110可以被配置为分别确定地标4016、地标4018相对于车辆200的位置4024、位置4026。处理单元110还可以被配置为确定地标4016、地标4018相对于车辆200的方向指示符4036、方向指示符4038。处理单元110还可以被配置为基于方向指示符4036、4038的交叉来确定车辆200的先前位置4034。在如图40中所示的一个示范性实施例中,处理单元110可以被配置为将先前位置4034确定为方向指示符4036、4038的交叉点。

处理单元110可以被配置为确定预定道路模型轨迹4012在车辆200的当前位置4028处的方向4040。处理单元110可以将方向4040确定为与预定道路模型轨迹4012相切的方向。在一个示范性实施例中,处理单元110可以被配置为基于表示预定道路模型轨迹4012的三维多项式的梯度或斜率来确定方向4040。

处理单元110还可以被配置为确定车辆200的航向方向4050。处理单元110可以基于地标4016和4018来确定航向方向4050。处理单元110可以基于车辆200的当前位置4028和先前位置4034来确定航向方向4050。例如,处理单元110可以将航向方向4050确定为从先前位置4034朝着当前位置4028延伸的矢量。在一些示范性实施例中,处理单元110可以将航向方向4050确定为沿着图像捕获设备122相对于与车辆200相关联的本地坐标系的可以朝向的方向。

处理单元110可以被配置为确定车辆200的航向方向4050是否与预定道路模型轨迹4012的方向4040对齐(即,通常平行)。当航向方向4050与预定道路模型轨迹4012在车辆200的当前位置4028处的方向4040不对齐时,处理单元110可以确定在车辆200的航向方向4050和预定道路模型轨迹4012的方向4040之间的转向角度。在一个示范性实施例中,处理单元110还可以确定,例如,帮助保证在预定的时间量内,车辆200的航向方向4050可以与预定道路模型轨迹4012的方向4040对齐所要求的车辆200的当前速度的减小或加速。处理单元110可以被配置为执行被存储在导航响应模块408中的指令以,例如,向车辆的转向系统240发送指定转向角度的控制信号。反过来,转向系统200可以被配置为旋转车辆200的车轮以帮助保证车辆200的航向方向4050与预定道路模型轨迹4012的方向4040对齐。

图像获取单元120可以,例如,在预定的时间量之后,重复地获取车辆200前面的环境的图像。处理单元110还可以被配置为重复地在由图像获取单元120获取的图像中检测地标4016、4018、4020、4022等等,并且如以上讨论的确定转向角度。因此,图像获取单元120和处理单元110可以使用地标4016、4018、4020、4022中的两个或更多个协作导航车辆200通过枢纽。

图41是示出与所公开的实施例一致的、用于使用两个或更多个地标4016、4018、4020、4022导航车辆200通过枢纽4000的示范性过程4100。可以由处理单元110和图像获取单元120中的一个或多个来执行过程4100的步骤,需要或不需要访问存储器140或存储器150。提供过程4100中的步骤的次序和排列是用于例示的目的。如将从本公开领会的,可以通过,例如,添加、组合、移除、和/或重新排列过程的步骤来对过程4100进行修改。

如图41中所示,过程4100可以包括获取表示车辆的环境的图像的步骤4102。在一个示范性实施例中,图像获取单元120可以获取车辆200前方(或例如,车辆的侧面或后面)的区域的一个或多个图像。例如,图像获取单元120可以使用具有视场202的图像捕获设备122获得图像。在其它示范性示例中,图像获取单元120可以从具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、具有视场206的图像捕获设备126中的一个或多个获取图像。图像获取单元120可以通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送一个或多个图像。

过程4100还可以包括在一个或多个图像中标识两个或更多个地标4016、4018、4020、4022的步骤4104。处理单元110可以从图像获取单元120接收一个或多个图像。如结合图5b-图5d更详细描述的,处理单元110可以执行单目图像分析模块402以在步骤4104分析多个图像。通过执行分析,处理单元110可以检测在图像的集合之内的特征的集合,例如,两个或更多个地标4016、4018、4020、4022。地标4016、4018、4020、4022可以包括一个或多个交通标记、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、灯柱、在道路上的线的间隔的改变、商业标志等等。

在一些实施例中,处理单元110可以执行单目图像分析模块402以对多个图像执行多帧分析,来检测两个或更多个地标4016、4018、4020、4022。例如,处理单元110可以估计在连续图像帧之间的相机运动并且计算在帧之间的像素视差,以构建道路的3d-地图。然后处理单元110可以使用3d-地图来检测道路表面以及地标4016、4018、4020、4022。在另一示范性实施例中,处理单元110的图像处理器190可以将从图像获取单元120接收的多个图像组合成一个或多个复合图像。处理单元110可以使用复合图像来检测两个或更多个地标4016、4018、4020、4022。例如,在一些实施例中,处理单元110可以执行来自两个或更多个图像捕获设备的图像的立体处理。

过程4100还可以包括确定分别与至少两个地标4016、4018相关联的方向指示符4030、4032的步骤4106。处理单元110可以分别基于至少两个地标4016、4018相对于车辆200的位置4024、4026来确定方向指示符4030、4032。例如,处理单元110可以从可以被存储在存储器140或150中的一个或多个数据库中的信息来接收分别对于地标4016、4018的地标位置4024、4026。处理单元110可以将方向指示符4030确定为从车辆200朝着地标位置4024延伸的矢量。同样地,处理单元110可以将方向指示符4032确定为从车辆200朝着地标位置4026延伸的矢量。虽然在以上讨论中引用了两个地标4016、4018,但是可以预见的是,处理单元110可以为多于两个地标4016、4018(例如,为地标4020、4022)确定地标位置4024、4026,以及方向指示符4030、4032。

过程4100可以包括确定车辆200的当前位置4028的步骤4108。处理单元110可以基于地标4016、4018的分别的方向指示符4030和4032的交叉(例如,在方向指示符4030和4032的交叉点处)来确定当前位置4028。过程4100可以包括确定车辆200的先前位置4034的步骤4110。如以上讨论的,处理单元110可以被配置为基于两个或更多个地标4016、4018、4020、4022来确定车辆200的先前位置4034。在一个示范性实施例中,处理单元110可以在车辆200在路段4002和路段4004上移动时,使用两个或更多个地标4016、4018、4020、4022重复地确定车辆200的位置。因此,例如,在车辆200到达它的当前位置4028之前,车辆可以位于先前位置4034处,并且可以从先前位置4034行驶到当前位置4028。在到达当前位置4028之前,车辆200的处理单元110可以被配置为确定地标4016、地标4018分别相对于车辆200的位置4024、位置4026。处理单元110可以执行与以上针对步骤4108所讨论的那些过程相似的过程,来确定车辆200的先前位置4034。例如,处理单元110可以被配置为确定地标4016、4018相对于车辆200的方向指示符4036、4038。处理单元110还可以被配置为基于方向指示符4036、4038的交叉(例如,在方向指示符4036和4038的交叉点处)来确定车辆200的先前位置4034。

过程4100可以包括确定车辆200的航向方向4050的步骤4112。如以上讨论的,处理单元110可以基于车辆200的当前位置4028和先前位置4034来确定航向方向4050,车辆200的当前位置4028和先前位置4034两者都可以使用地标4016、4018、4020、4022中的两个或更多个来确定。在一个示范性实施例中,处理单元110可以将航向方向4050确定为从先前位置4034朝着当前位置4028延伸的矢量。在另一示范性实施例中,处理单元110可以将航向方向4050确定为沿着图像捕获设备122相对于与车辆200相关联的本地坐标系统可以朝向的方向。虽然针对确定车辆200的当前位置4028和先前位置4024仅仅描述了两个地标4016、4018,但是可以预见的是,处理单元可以使用多于两个地标4016、4018来确定车辆200的当前位置4028和先前位置4024以及航向方向4050。

过程4100可以包括确定预定道路模型轨迹4012在车辆200的当前位置4028处的方向4040的步骤4114。在一个示例性实施例中,处理单元110可以获得预定道路模型轨迹4012的数学表示(例如,三维多项式)。处理单元110可以将方向4040确定为与预定道路模型轨迹4012在车辆200的当前位置4028处相切的矢量。例如,处理单元110可以将方向4040确定为指向沿着预定道路模型轨迹4012的数学表示在车辆200的当前位置4028处的梯度的矢量。虽然以上描述假定车辆200的当前位置4028和先前位置4034位于预定道路模型轨迹4012上,但是当车辆200不位于预定道路模型轨迹4012上时,处理单元110可以执行与以上针对图34-图39所讨论的那些过程相似的过程。例如,处理单元110可以在如以上讨论的确定方向4040之前,确定将车辆200移动到预定道路模型轨迹4012所要求的变换。

过程4100还可以包括为车辆200确定转向角度的步骤4116。处理单元110还可以将转向角度确定为航向方向4050和预定道路模型轨迹4012在车辆200的当前位置4028处的方向4040之间的旋转角度。处理单元110可以执行在导航模块408中的指令以,例如,向转向系统240发送指定转向角度的控制信号。转向系统240可以帮助调整,例如,车辆200的方向盘以转动车辆200的车轮,来帮助保证车辆200的航向方向4050可以与预定道路模型轨迹4012的方向4040对齐(即,平行)。

处理单元110和/或图像获取单元120可以在预定的时间量之后重复步骤4102至步骤4116。在一个示范性实施例中,预定的时间量可以在大约0.5秒至1.5秒之间的范围内。通过重复地确定当前位置4028、航向方向4050、预定道路模型轨迹4012在当前位置4028处的方向4040、和将航向方向4050与方向4040对齐的所要求的转向角度,处理单元110可以向节流系统220、转向系统240、和制动系统230中的一个或多个发送一个或多个控制信号,以使用两个或多个地标4016、4018、4020、4022来导航车辆200通过道路枢纽4000。

使用本地重叠地图的导航

与所公开的实施例一致的,系统可以将多个本地地图用于导航。每个地图可以具有它自己的任意的坐标系。为了使在导航中从一个本地地图到另一本地地图的转换容易,地图可以包括重叠段,并且在重叠段中的导航可以基于该两个重叠地图。

图43示出分别与第一路段4204和第二路段4203相关联的第一本地地图4200和第二本地地图4202。第一路段4204可以不同于第二路段4206。地图4200和地图4202可以各自具有它们自己的任意的坐标系。地图4200和地图4202还可以各自构成具有相同或不同数据密度的稀疏地图。在一个示范性实施例中,地图4200和地图4202可以各自具有每千米不超过10个千字节的数据密度。当然,本地地图4200和本地地图4202可以包括诸如,例如,先前相对于稀疏地图800所讨论的数据密度中的任何的其它数据密度值。在第一路段4204和/或第二路段4206上行驶的车辆200(其可以是自主车辆)可以将所公开的系统和方法用于导航。车辆200可以包括至少一个图像捕获设备122,其可以被配置为获得表示自主车辆的环境的一个或多个图像。虽然图42将车辆200描绘为配备有图像捕获设备122、124、126,但是在任何特定车辆200上可以采用更多或更少的图像捕获设备。如图42中所示,地图4200可以包括路段4204,其可以由左侧4208和右侧4210来划界。预定道路模型轨迹4212可以定义路段4204之内的偏好路径(即,目标道路模型轨迹)。可以由三维多项式来数学地表示预定道路模型轨迹4212。当车辆200沿着路段4204行驶时,车辆200可以遵循预定道路模型轨迹4212。在一些示范性实施例中,预定道路模型轨迹4212位于与左侧4208和右侧4210等距。然而,可以预见的是,预定道路模型轨迹4212可以位于更靠近路段4204的左侧4208和右侧4210中的一个或另一个。并且如图42中所示,在划界点a和划界点b之间的路段4204的一部分可以表示重叠段4220。如稍后将被描述的,在路段4204的点a和点b之间的重叠段4220可以与路段4206的一部分重叠。进一步,虽然图42在路段4204中示出一个车道,但是可以预见的是,路段4204可以具有任意数量的车道。还可以预见的是,可以根据所公开的方法和系统来导航沿着路段4204的任何车道行驶的车辆200。进一步,在一些实施例中,路段可以在两个已知位置诸如,例如,两个交叉,之间延伸。

并且如图42中所示,地图4202可以包括路段4206,其可以由左侧4222和右侧4224来划界。预定道路模型轨迹4226可以定义在路段4206之内的偏好路径(即,目标道路模型轨迹)。可以由三维多项式来数学地表示预定道路模型轨迹4226。当车辆200沿着路段4206行驶时,车辆200可以遵循预定道路模型轨迹4226。在一些示范性实施例中,预定道路模型轨迹4226可以位于与左侧4222和右侧4224等距。然而,可以预见的是,预定道路模型轨迹4226可以位于更靠近路段4206的左侧4222和右侧4224中的一个或另一个。并且如图42中所示,在划界点a’和划界点b’之间的路段4206的一部分可以表示重叠段4220,其可以与在路段4204的划界点a和划界点b之间的重叠段4220重叠。虽然图42在路段4206中示出一个车道,但是可以预见的是,路段4206可以具有任意数量的车道。还可以预见的是,可以根据所公开的方法和系统来导航沿着路段4206的任何车道行驶的车辆200。

如在本公开中使用的,术语重叠,指示重叠段4220表示车辆200可以在其上行驶的道路的相同部分。在一些实施例中,重叠段4220可以包括表示路段、和也被地图4222的相对应的段(即,重叠段)表示的相关联的道路特征(诸如,地标等等)的地图4200的段。结果,重叠段4220可以包括具有相同尺寸(长度、宽度、高度等等)、形状(朝向和倾角)等等的路段4204、4206的部分。而且,在重叠段4220中预定道路模型轨迹4212和预定道路模型轨迹4216的形状和长度可以相似。然而,因为地图4200和地图4202可以具有不同的本地坐标系统,所以在重叠段4220中预定道路模型轨迹4212和预定道路模型轨迹4216的数学表示(例如,三维多项式)可以不同。在一个示范性实施例中,重叠段4220可以具有在50m和150m范围内的长度。

图像获取单元120可以被配置为获取表示车辆200的环境的图像。例如,图像获取单元120可以使用图像获取单元120、124、126中的一个或多个来获得示出在车辆200前面的视野的图像。车辆200的处理单元110可以被配置为使用以上参考图34-图36所讨论的一个或多个导航过程来检测车辆200的当前位置4214。处理单元110还可以被配置为使用一个或多个过程来确定车辆200的当前位置4214是否位于路段4204或路段4206上,所述过程是如以上参考图34-图36所讨论的、利用预定道路模型轨迹4212和预定道路模型轨迹4226中的一个或多个来确定对于已识别地标的方向矢量的交叉点的过程。另外,处理单元110可以被配置为使用以上针对图34-图36所讨论的相似过程来确定车辆200的当前位置4214是否位于路段4204上、路段4206上、或重叠段4220中。

当车辆200位于路段4204上时,处理单元110可以被配置为将车辆200的本地坐标系统和与路段4204相关联的本地坐标系统对齐。在对齐该两个坐标系统之后,处理单元110可以被配置为确定预定道路模型轨迹4212在车辆200的当前位置4214处的方向4230。处理单元110可以将方向4230确定为与预定道路模型轨迹4212相切的方向。在一个示范性实施例中,处理单元110可以被配置为基于表示预定道路模型轨迹4212的三维多项式的梯度或斜率来确定方向4230。

处理单元110还可以被配置为确定车辆200的航向方向4240。如图42中所示,车辆200的航向方向4240可以是沿着图像捕获设备122相对于与车辆200相关联的本地坐标系统所朝向的方向。处理单元110可以被配置为确定车辆200的航向方向4240是否与预定道路模型轨迹4212的方向4230对齐(即,通常平行)。当航向方向4240与预定道路模型轨迹4212在车辆200的当前位置4214处的方向不对齐时,处理单元110可以确定可以帮助保证车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐的第一自主导航响应(autonomousnavigationalresponse,anr)。

在一个示范性实施例中,第一anr可以包括,例如,角度的确定,其中,车辆200的方向盘或前轮可以转动所述角度以帮助保证车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐。在另一示范性实施例中,第一自主导航响应还可以包括车辆200的当前速度的减小或加速,以帮助保证在预定的时间量内,车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,将车辆200的方向盘转动到实现角度1的旋转来触发第一anr。按照角度1的旋转可以帮助对齐车辆200的航向方向4240与方向4230。

当车辆200位于路段4206上时,处理单元110可以被配置为将车辆200的本地坐标系统和与路段4206相关联的本地坐标系统对齐。在对齐两个坐标系统之后,处理单元110可以被配置为确定预定道路模型轨迹4226在车辆200的当前位置4214处的方向4250。处理单元110可以将方向4250确定为与预定道路模型轨迹4226相切的方向。在一个示范性实施例中,处理单元110可以被配置为基于表示预定道路模型轨迹4226的三维多项式的梯度或斜率来确定方向4250。

处理单元110还可以被配置为确定车辆200的航向方向4260。如图42中所示,车辆200的航向方向4260可以是沿着图像捕获设备122相对于与车辆200相关联的本地坐标系统所朝向的方向。处理单元110可以被配置为确定车辆200的航向方向4260是否与预定道路模型轨迹4226的方向4250对齐(即,通常平行)。当航向方向4260与预定道路模型轨迹4226在车辆200的当前位置4214处的方向4250不对齐时,处理单元110可以确定可以帮助保证车辆200的航向方向4260与预定道路模型轨迹4226的方向4250对齐的第二anr。

在一个示范性实施例中,第二anr可以包括,例如,角度2的确定,其中,车辆200的方向盘或前轮可以转动所述角度以帮助保证车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐。在另一示范性实施例中,第二anr还可以包括车辆200的当前速度的减小或加速,以帮助保证在预定的时间量内,车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现角度2的旋转来触发第二anr。按照角度2的旋转可以帮助对齐车辆200的航向方向4260与方向4250。

当车辆200位于路段4204、4206的重叠段4220上时,处理单元110可以被配置为将车辆200的本地坐标系统、和与路段4204相关联的本地坐标系统以及与路段4206相关联的本地坐标系统两者对齐。因此,处理单元110可以被配置为基于地图4200和地图4202两者确定第三anr。在一个示范性实施例中,处理单元110可以将第三anr确定为角度3,其中,车辆200的方向盘和前轮可以转动所述角度3以帮助保证车辆200的航向方向4240可以与预定道路模型轨迹的航向方向4230对齐,并且车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐。因此,例如,处理单元110可以将角度3确定为角度1和角度2的组合。

图像获取单元120可以,例如,在预定的时间量之后,重复获取车辆200前面的环境的图像。处理单元110还可以被配置为重复地检测车辆200的当前位置4214是否位于路段4204上、路段4206上、或重叠段4220中。处理单元110可以基于车辆200位于路段4204、4206上的地点来确定第一anr、第二anr、或第三anr(例如,角度1、角度2、或角度3)。因此,图像获取单元120和处理单元110可以协作以使用重叠段4220沿着路段4204和路段4206导航车辆200。

图43a-图43c包括示出与所公开的实施例一致的、用于使用重叠地图4200、4202沿着路段4204、4206导航车辆200的示范性过程4300的流程图。可以由处理器单元110和图像获取单元120中的一个或多个来执行过程4300的步骤,需要或不需要访问存储器140或存储器150。提供过程4300中的步骤的次序和排列是用于例示的目的。如将从本公开领会的,可以通过,例如,添加、组合、移除、和/或重新安排过程4300的步骤来对过程4300进行修改。

如图43a中所示,过程4300可以包括获取表示车辆的环境的图像的步骤4302。在一个示范性实施例中,图像获取单元120可以获取车辆200前方(或例如,车辆的侧面或后方)的区域的一个或多个图像。例如,图像获取单元120可以使用具有视场202的图像捕获设备122获得图像。在其它示范性示例中,图像获取单元120可以从具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、具有视场206的图像捕获设备126中的一个或多个获取图像。图像获取单元120可以通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送一个或多个图像。

过程4300还可以包括确定车辆200的当前位置4214的步骤4302。处理单元110可以从图像获取单元120接收一个或多个图像。如结合图5b-图5d更详细描述的,处理单元110可以执行单目图像分析模块402以在步骤4302分析多个图像。通过执行分析,处理单元110可以检测在图像的集合之内的特征的集合,例如,一个或多个地标。处理单元110可以使用地标并且执行与,例如,以上在图34-图36中所讨论的那些过程相似的过程,来确定车辆200的当前位置4214。

过程4300可以包括确定车辆200是否位于第一路段4304上的步骤4306。处理单元110可以以许多方式来确定车辆200是否位于第一路段4304上。例如,处理单元可以将,例如,在步骤4304中所确定的当前位置4214和预定道路模型轨迹4212进行比较,以确定当前位置4214是否位于预定道路模型轨迹4212上。当当前位置4214位于预定道路模型轨迹4212上时,处理单元可以确定车辆200位于路段4304上。在另一示范性实施例中,处理单元110可以使用地标和针对地标的方向指示符来确定车辆200的当前位置4214是否位于路段4204上。例如,如以上针对图34-图36所讨论的,如果已识别地标的方向指示符与预定道路模型轨迹4212相交叉(例如,以上关于图34至图36所讨论的),则处理单元110可以确定车辆200的当前位置4214位于路段4204中。当处理单元110确定车辆200位于路段4204中(步骤4306:是)时,处理单元110可以前进到步骤4308。然而,当处理单元110确定车辆200不位于路段4204上(步骤4306:否)时,处理单元110可以经由过程片段c前进到步骤4314。

在步骤4308中,处理单元110可以确定车辆200是否位于重叠段4220中。处理单元110可以使用与以上针对步骤4306所讨论的那些过程相似的过程来确定车辆200是否位于重叠段4220中。例如,处理单元110可以确定与已识别地标相对应的方向指示符是否与预定道路模型轨迹4212在位于重叠段4220中的a和b之间的预定道路模型轨迹4212的部分相交。在另一示范性实施例中,处理单元110可以将车辆200的当前位置4214和预定道路模型轨迹4212的数学表示进行比较,以确定车辆200是否位于重叠段4220中。在又一示范性实施例中,处理单元110可以确定在第一路段4204中,车辆200沿着预定道路模型轨迹4212行驶过的距离。处理单元可以使用与以上针对图37-图39所讨论的关于使用尾部对齐的导航的那些过程相似的过程来确定行驶过的距离。处理单元110可以基于车辆200行驶过的距离来确定车辆200的当前位置4214是否位于重叠段4220中。当处理单元110确定车辆200位于重叠段4220之内(步骤4308:是)时,处理单元110可以经由过程片段d前进到步骤4320。然而,当处理单元110确定车辆200不位于重叠段4220之内(步骤4308:否)时,处理单元110可以前进到步骤4310。

过程4300可以包括确定第一anr的步骤4310。处理单元110可以基于它的确定来确定第一anr,其中它的确定为车辆200位于第一路段4204而不位于重叠段4220中。在一个示例性实施例中,处理单元110可以获得预定道路模型轨迹4212的数学表示(例如,三维多项式)。处理单元110可以将预定道路模型轨迹4212的方向4230确定为与预定道路模型轨迹4212在车辆200的当前位置4214处相切的矢量。例如,处理单元110可以将方向4230确定为沿着预定道路模型轨迹4212的数学表示在当前位置4214处的梯度指向的矢量。虽然以上描述假定车辆200的当前位置位于预定道路模型轨迹4212上,但是当车辆200不位于预定道路模型轨迹4212上时,处理单元110可以执行与以上针对图34-图39所讨论的那些过程相似的过程。例如,处理单元可以在如以上讨论的确定方向4230之前,确定将车辆200移动到预定道路模型轨迹4212所要求的变换。

处理单元110还可以确定车辆200的航向方向4240。例如,如图42中所示,处理单元110可以将车辆200的航向方向4240确定为图像捕获设备122相对于与车辆200相关联的本地坐标系统可以朝向的方向。在另一示范性实施例中,处理单元200可以将航向方向4240确定为车辆200在当前位置4214处的运动的方向。在又一示范性实施例中,处理单元可以如以上针对图37-图39所讨论的基于行驶轨迹来确定航向方向。处理单元110可以确定航向方向4240和预定道路模型轨迹4212的方向4230之间的旋转角度1。在一个示范性实施例中,第一anr可以包括可以帮助保证车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐的旋转角度1。在另一示范性实施例中,第一anr还可以包括帮助保证在预定的时间量内,车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐所可以要求的车辆200的加速或减速。

过程4300还可以包括基于第一anr调整转向系统240的步骤4312。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现角度1的旋转来触发第一anr。处理单元110还可以执行被存储在导航响应模块408中的指令,来控制节流系统220和/或制动系统230适当地控制车辆200的速率,以帮助保证在预定的时间量内车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐。

返回到步骤4306,当处理单元110确定车辆200不位于路段4204上(步骤4306:否)时,处理单元110可以经由过程片段c前进到步骤4314。在步骤4314中,处理单元110可以确定车辆200是否位于路段4206中。处理单元110可以执行与以上在步骤4306中所讨论的那些操作相似的操作来确定车辆200是否位于路段4206中。当处理单元110确定车辆200不位于路段4206中时,过程4300可以结束。然而,当处理单元110确定车辆200位于路段4206中时,处理单元110可以前进到确定第二anr的步骤4316。

处理单元110可以使用与以上针对步骤4310所讨论的那些过程相似的过程来确定第二anr。例如,处理单元110可以确定预定道路模型轨迹4226在车辆200的当前位置4214处的方向4250、航向方向4260、和可以帮助保证车辆200的航向方向4260可以与方向4250对齐的旋转2的角度。进一步,如同第一anr,第二anr还可以包括帮助保证在预定的时间量内,车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐所可以要求的车辆200的加速或减速。

过程4300还可以包括基于第二anr调整转向系统240的步骤4318。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现角度2的旋转来触发第二anr。处理单元110还可以执行被存储在导航响应模块408中的指令,来控制节流系统220和/或制动系统230适当地控制车辆200的速率,以帮助保证在预定的时间量内车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐。

返回到步骤4308,当处理单元110确定车辆200位于重叠段4220(步骤4308:是)时,处理单元110可以经由过程片段d前进到步骤4320。在步骤4320中,处理单元110可以确定第一anr。处理单元110可以使用与以上针对步骤4310所讨论的那些操作相似的操作来确定第一anr。因此,例如,处理单元110可以确定预定道路模型轨迹4212在车辆200的当前位置4214处的方向4240、航向方向4230、和可以帮助保证车辆200的航向方向4240可以与方向4230对齐的旋转1的角度。进一步,第一anr还可以包括帮助保证在预定的时间量内,车辆200的航向方向4240可以与预定道路模型轨迹4212的方向4230对齐所可以要求的车辆200的加速或减速。

过程4300还可以包括确定第二anr的步骤4322。处理单元110可以使用与以上针对步骤4316所讨论的那些操作相似的操作来确定第二anr。因此,例如,处理单元110可以确定预定道路模型轨迹4226在车辆200的当前位置4214处的方向4260、航向方向4250、和可以帮助保证车辆200的航向方向4260可以与方向4250对齐的旋转2的角度。进一步,第二anr还可以包括帮助保证在预定的时间量内,车辆200的航向方向4260可以与预定道路模型轨迹4226的方向4250对齐所可以要求的车辆200的加速或减速。

过程4300还可以包括确定第一anr和第二anr之间的误差的步骤4324。在一个示范性实施例中,处理单元110可以将误差确定为,例如,在步骤4320和步骤4322中所确定的旋转1和旋转2的角度之间的误差。在另一示范性实施例中,处理单元110可以将误差确定为在预定道路模型轨迹4212的方向4230和预定道路模型轨迹4226的方向4250之间的误差。在另一示范性实施例中,处理单元110可以将误差确定为方向4230和方向4250之间的余弦距离。本领域普通技术人员将认识到,处理单元110可以使用其它数学函数来确定在方向4230和方向4250之间的误差。

过程4300还可以包括确定误差是否小于阈值误差的步骤4326。因为只有当车辆200位于重叠段4220中时,处理单元110才可以执行步骤4324,所以误差可以指示车辆200的坐标系是否与路段4204和路段4206两者对齐。可以预见的是,在一些实施例中,当车辆200首先进入重叠段4220时,误差可能超过阈值误差,并且基于导航地图4200和导航地图4202两者导航车辆200可以改进精度。当车辆200进一步在重叠路段4220之内行驶时,误差可以降低并且可以最后变得小于阈值误差。当车辆200的坐标系与路段4204和路段4206两者对齐时,误差可能小于阈值误差,并且仅仅基于导航地图4202开始导航车辆200就可以是足够的。

当处理单元110确定误差大于阈值误差(步骤4326:是)时,处理单元110可以前进到步骤4328。在步骤4328中,处理单元110可以基于第一anr和第二anr两者来确定第三anr,从而可以基于地图4200和地图4202两者导航车辆200。因此,例如,处理单元110可以将旋转3的第三角度确定为,例如,在步骤4320和步骤4322中所确定的旋转1和旋转2的角度的组合。在一些示范性实施例中,该组合可以是平均、加权平均、或旋转1和旋转2的角度的一些其它数学组合。同样的,处理单元110可以基于,例如,在步骤4320和步骤4322中所确定的加速和/或减速的组合,来为车辆200确定加速或减速。

过程4300还可以包括基于第三anr调整转向系统240的步骤4330。处理单元110可以被配置为执行被存储在导航响应模块408中的指令,以通过,例如,转动车辆200的方向盘以实现角度3的旋转来触发第三anr。处理单元110还可以执行被存储在导航响应模块408中的指令,以基于在步骤4330或步骤4332中确定的加速和/或减速来控制节流系统220和/或制动系统230。

返回到步骤4326,当处理单元110确定误差小于阈值误差(步骤4326:否)时,处理单元110可以前进到仅仅基于第二anr来确定第三anr的步骤4332。如以上讨论的,当误差小于阈值误差时,仅仅基于地图4202来导航车辆200可以是足够的。因此,在一个示范性实施例中,处理单元110可以设置第三anr等于第二anr。在另一示范性实施例中,处理单元110可以通过使用缩放因子缩放(即,放大或缩小)第二anr来设置第三anr。在完成步骤4332之后,处理单元110可以前进到基于第三anr来调整转向系统240的步骤4330。

处理单元110和/或图像获取单元120可以在预定的时间量之后重复过程4300。在一个示范性实施例中,预定的时间量可以在大约0.5秒至1.5秒之间的范围内。通过重复地确定车辆200的当前位置4214,确定当前位置4214是否位于重叠段4220中,以及基于车辆200的位置确定第一anr、第二anr、和第三anr,处理单元110和/或图像获取单元120可以使用本地地图4200、4202的重叠路段4220帮助导航车辆200。

稀疏地图自主车辆导航

在一些实施例中,所公开的系统和方法可以将稀疏地图用于自主车辆导航。如以上关于图8-图11d所讨论的,稀疏地图可以提供用于导航的足够的信息,而不要求过多的数据存储或数据传递速率。进一步,车辆(其可以是自主车辆)可以使用稀疏地图来导航一个或多个道路。例如,如以下更详细地讨论的,车辆200可以基于对稀疏地图和表示车辆200的环境的至少一个图像的分析来确定自主导航响应。

在一些实施例中,车辆200可以访问稀疏地图,该稀疏地图可以包括对于车辆导航可以是足够的、与车辆200在其上行驶的道路和沿着道路的潜在的地标有关的数据。如以上部分中讨论的,与包括诸如沿着道路收集的图像数据的详细的图信息的数字地图相比,由车辆200访问的稀疏数据地图可以要求显著更少的存储空间和数据传递带宽。例如,稀疏数据地图可以存储沿着道路的优选车辆路径的三维多项式表示,而不是存储车辆200在其上行驶的路段的详细表示。沿着道路的优选的车辆路径的多项式表示可以是沿着路段的目标轨迹的多项式表示。这些路径可以要求非常少的数据存储空间。

与所公开的实施例一致的,自主车辆系统可以将稀疏地图用于导航。如早先讨论的,在稀疏地图的核心处,一个或多个三维轮廓可以表示当自主车辆沿着相关联路段移动时它们可以穿越的预定轨迹。还如更早地讨论的,稀疏地图还可以包括其它特征,诸如一个或多个已识别地标、道路签名轮廓、以及在导航车辆中有用的任何其它道路有关的特征。

在一些实施例中,自主车辆可以包括车辆本体和处理器,所述处理器被配置为接收被包括在稀疏地图中的数据,并且生成用于基于稀疏地图中的数据来沿着路段导航车辆的导航指令。

如以上结合图8所讨论的,车辆200(其可以是自主车辆)可以访问稀疏地图800以导航。如图8中所示,在一些实施例中,稀疏地图800可以被存储在诸如,存储器140或存储器150的存储器中。例如,稀疏地图800可以被存储在车辆200上提供的存储设备或非瞬时性计算机可读介质上(例如,被包括在车辆200上的导航系统中的存储设备)。在车辆200上提供的处理器(例如,处理单元110)可以访问被存储在车辆200上提供的存储设备或计算机可读介质中的稀疏地图4400,以便生成用于当自主车辆200穿过路段时引导它的导航指令。

在一些实施例中,稀疏地图800可以被远程存储。图44示出与所公开的实施例一致的、车辆200从远程服务器4400接收数据的示例。如图44中所示,远程服务器4400可以包括在与车辆200通信的远程服务器4400上提供的存储设备4405(例如,计算机可读介质)。例如,远程服务器4400可以将稀疏地图数据库4410存储在存储设备4405中。稀疏地图数据库4410可以包括稀疏地图800。在一些实施例中,稀疏地图数据库4410可以包括多个稀疏地图。可以基于某些区(例如,基于地理边界、国家边界、州边界等等)或基于任何适当的参数(例如,车辆的类型或尺寸、天气等等)来索引稀疏地图数据库4410。车辆200可以通过无线通信路径经由一个或多个网络(例如,通过蜂窝网络和/或互联网等等)与远程服务器440通信。在一些实施例中,在车辆200上提供的处理器(处理单元110)可以通过一个或多个网络从远程服务器4400接收被包括在稀疏地图数据库4410中的数据。而且,如以下更详细地讨论的,车辆200可以执行用于使用稀疏地图800来导航车辆200的指令。

如以上参考图8所讨论的,稀疏地图800可以包括用于引导沿着路段自主驾驶或导航的多个目标轨迹810的表示。这样的目标轨迹可以被存储为三维样条。可以基于车辆沿着特定路段的在先穿越的两个或更多个重建的轨迹来确定被存储在稀疏地图800中的目标轨迹。路段可以与单个目标轨迹或多个目标轨迹相关联。例如,在双车道道路上,可以存储第一目标轨迹以表示在第一方向上沿着路段行驶的期望路径,并且可以存储第二目标轨迹以表示在另一方向(例如,与第一方向相反)上沿着路段行驶的期望路径。针对特定路段,可以存储额外的目标轨迹。

稀疏地图800还可以包括与多个预定地标820有关的数据,所述多个预定地标820与特定路段、本地地图等等相关联。如在其它部分中详细讨论的,这些地标可以被用于车辆200的导航。例如,在一些实施例中,地标可以被用来确定车辆200相对于存储的目标轨迹的当前位置。利用此位置信息,车辆200可以能够调整航向方向以匹配目标轨迹在所确定位置处的方向。

地标可以包括,例如,在至少一个路段的环境中的任何可标识的、固定的对象,或与特定路段的特定部分相关联的任何可观察的特性。在有些情况下,地标可以包括交通标志(例如,限速标志、危险标志等等)。在其它情况下,地标可以包括与路段的特定部分相关联的道路特性轮廓。地标的各种类型的进一步示例在先前部分中被讨论,并且以上结合图10讨论并示出了一些地标示例。

图45示出与所公开的实施例一致的、沿着多车道道路导航的车辆200。这里,车辆200可以导航出现在先前在图11b中示出的地理区1111之内的路段。如先前关于图11b所讨论的,路段1120可以包括具有车道1122和车道1124、双黄线1123、和与路段1120交叉的分支路段1130的多车道道路。地理区1111还可以包括其它道路特征,诸如停止线1132、停车标志1134、限速标志1136、和危险标志1138。

图46示出与所公开的实施例一致的、车辆200使用沿着多车道道路的目标轨迹导航。车辆200可以使用目标轨迹4600导航先前在图11b和图45中示出的地理区1111。目标轨迹4600可以被包括在稀疏地图800的本地地图中(例如,图11c的本地地图1140),并且可以为与路段相关联的一个或多个车道提供目标轨迹。如先前讨论的,稀疏地图800可以包括与地理区1111相关联的道路有关特征的表示,诸如在地理区1111中标识的一个或多个地标的表示。这样的地标可以包括限速标志1136和危险标志1138。车辆200可以使用限速标志1136和危险标志1138来协助确定它相对于目标轨迹4600的当前位置。基于所确定的车辆200相对于目标轨迹4600的当前位置,车辆200可以调整它的航向以匹配目标轨迹在所确定的位置处的方向。

如以上讨论的,在一些实施例中,稀疏地图800还可以包括道路签名轮廓。这样的道路签名轮廓可以与和道路相关联的至少一个参数的任何可辨别的/可测量的变化相关联。例如,在有些情况下,这样的轮廓可以与特定路段的表面粗糙度的变化、特定路段上的道路宽度的变化、沿着特定路段描绘的虚线之间的距离的变化、沿着特定路段的道路曲率的变化等等相关联。

图47示出当车辆200在图45和图46中所示的道路上行驶时,与车辆200相关联的道路签名轮廓1160的示例。虽然轮廓1160可以表示以上提到的参数中的任何或关于车辆200的其它,但是,在一个示例中,轮廓1160可以表示通过监视当车辆行驶图46中的路段时提供指示悬架位移的量的一个或多个传感器获得的对道路表面粗糙度的测量。可替换地,轮廓1160可以表示,如基于经由在图46中的路段中行驶的车辆上的相机获得的图像数据所确定的道路宽度的变化。这样的轮廓,例如,在确定车辆200相对于目标轨迹4600的具体位置时可以是有用的,并且可以辅助车辆200的导航。也就是说,当车辆200穿越图46的路段时,车辆200可以测量与一个或多个参数相关联的轮廓,所述一个或多个参数与该路段相关联。如果所测量的轮廓能够与绘制相对于沿着路段的位置的参数变化的预定轮廓相关联/相匹配,那么所测量的轮廓和所预定的轮廓可以被车辆200使用(例如,通过覆盖所测量的轮廓和所预定的轮廓的相应部分),以便确定沿着路段的当前位置,并且因此确定相对于路段的目标轨迹4600的当前位置。当车辆200在图46的车道1124中行驶时,由车辆200进行的轮廓的测量可以继续,以便连续地确定沿着路段的当前位置和车辆200相对于目标轨迹4600的当前位置。因而,车辆200的导航可以被提供。

图48是如在图45和图46中所示的道路环境4800的一部分的示例的例示。在这个示例中,图48示出路段1120。车辆200可以正沿着路段1120行驶。沿着路段1120可以呈现诸如限速标志1136和危险标志1138的地标。限速标志1136和危险标志1138可以是被存储在稀疏地图800中的已识别地标,并且可以被用于沿着路段1120的自主车辆导航(例如,用于定位车辆200,和/或用于确定车辆200的目标轨迹)。在稀疏地图800中的已识别地标1136和已识别地标1138可以以某一频率彼此隔开。例如,已识别地标可以以每千米不多于0.5个、以每千米不多于1个、或以每100米不多于1个的频率在稀疏地图中隔开。地标1136和地标1138可以被用来,例如,协助车辆200确定它相对于目标轨迹4600的当前位置,从而车辆可以调整它的航向以匹配目标轨迹在所确定的位置处的方向。

图49是示出与所公开的实施例一致的、用于稀疏地图自主导航的示范性过程4900的流程图。处理单元110可以利用应用处理器180和图像处理器190中的一个或两者来实施过程4900。如以下更详细地讨论的,车辆200可以基于对稀疏地图和表示车辆200的环境的至少一个图像的分析来确定自主导航响应。

在步骤4902,处理单元110可以从存储器140或存储器150接收路段的稀疏地图,诸如稀疏地图800。例如,可以基于由位置传感器进行的对车辆200的位置的计算来将稀疏地图发送到处理单元110。在其它示范性实施例中,车辆200可以从远程服务器4400接收稀疏地图。稀疏地图可以具有特定的数据密度。稀疏地图的数据密度可以按照每单位距离的数据单位来表达。例如,稀疏地图可以具有每千米不多于1兆字节的数据密度。在另一示例中,稀疏地图可以具有每千米不多于100千字节的数据密度。在另一示例中,稀疏地图可以具有每千米不多于10千字节的数据密度。数据密度可以按照任何想得到的数据单位和单位距离来表达。进一步,稀疏地图可以包括沿着路段的目标轨迹的多项式表示。

在步骤4904,处理单元110可以接收表示车辆200的环境的至少一个图像。例如,处理单元110可以使用图像捕获设备122从图像获取单元120接收至少一个图像。在其它示范性实施例中,图像获取单元120可以从图像捕获设备122、124、和126中的一个或多个获取一个或多个图像。图像获取单元120可以通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送一个或多个图像。

在步骤4906,处理单元110可以分析接收到的稀疏地图和车辆200的环境的至少一个图像。例如,如结合图5b-图5d更详细地描述的,处理单元110可以执行单目图像分析模块402以分析一个或多个图像。通过执行分析,处理单元110可以检测在图像的集合之内的特征的集合,例如,诸如地标1134、1136、1138的一个或多个地标。如早先讨论的,地标可以包括一个或多个交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、灯柱、在道路上的线的间隔的改变、商业标志等等。而且,处理单元110可以分析稀疏地图以确定在一个或多个图像中的对象是已识别地标。例如,处理单元110可以比较对象的图像和被存储在稀疏地图中的数据。基于该比较,图像处理器190可以确定对象是否是已识别地标。处理单元110可以使用来自环境的所捕获图像数据的已识别地标、和/或gps数据来确定车辆200的位置。然后,处理单元110可以确定车辆200相对于稀疏地图的目标轨迹的位置。

在步骤4908,处理单元110可以仅基于在步骤4906执行的、对稀疏地图和环境的至少一个图像的分析,在车辆200中引起一个或多个导航响应。例如,处理单元110可以基于车辆200相对于稀疏地图的目标轨迹的位置选择适当的导航响应。导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。处理单元110可以引起系统100向如图2f中所示的节流系统220、制动系统230、和转向系统240中的一个或多个提供输入(例如,控制信号),以导航车辆200(例如,通过引起加速、转向、车道转变等等)来提供导航响应。系统100可以通过一个或多个数据链路(例如,任何有线和/或无线链路、或用于发送数据的链路)向节流系统220、制动系统230、和转向系统240中的一个或多个提供输入。另外,多个导航响应可以同时发生、按顺序发生、或它们的任何组合。例如,处理单元110可以通过,例如,顺序地向车辆200的转向系统240和节流系统220发送控制信号来引起车辆200转移一个车道并且然后加速。可替换地,处理单元110可以通过,例如,同时向车辆200的制动系统230和转向系统240发送控制信号,以在偏移车道的同时引起车辆200制动。

基于期望的地标位置的导航

在由车辆上的相机捕获的图像中出现的地标可以在所公开的实施例中使用,以确定车辆沿着道路模型轨迹的位置。这样的地标可以包括例如,在稀疏地图800中所表示的已识别地标。车辆200的处理单元110可以分析从车辆200上的一个或多个相机捕获的图像,以在所捕获的图像中寻找和验证已识别地标(来自稀疏数据地图800)的呈现。根据在本公开的其它部分中详细描述的技术,然后,在车辆的环境中的验证的、已识别地标可以被用来导航车辆(例如,通过启用对车辆200沿着与路段相关联的目标轨迹的位置的确定)。

然而,在所公开的实施例中,处理器单元110还可以不仅基于在所捕获图像中出现的那些地标,而且基于如由稀疏数据地图800所传达的已识别地标的期望的位置来生成导航指令。例如,可以在离诸如停止线、交通灯、停车标志、急转弯等等的已识别地标某一距离时发起车辆的制动,甚至在那些地标经由车载相机是可检测的之前。地标可以包括,例如,在至少一个路段的环境中的任何可标识的、固定的对象,或与路段的特定部分相关联的任何可观察的特性。在有些情况下,地标可以包括交通标志(例如,限速标志、危险标志等等)。在其它情况下,地标可以包括与路段的特定部分相关联的道路特性轮廓。在先前部分中讨论了地标的各种类型的进一步示例,并且在图10中示出了一些地标示例。

图50示出与所公开实施例一致的示范性环境。车辆200(其可以是自主车辆)可以在道路5004中沿着目标道路模型轨迹5002行驶。车辆200可以配备有捕获车辆的环境的图像的一个或多个图像捕获设备(例如,图像捕获设备122、124、或126中的一个或多个)。一个或多个图像捕获设备可以具有视野范围5006。视野范围5006可以定义车辆200的图像捕获设备能够捕获车辆200周围的环境的准确图像的范围。例如,视野范围5006可以定义车辆200的图像捕获设备的视场、焦距、分辨率焦点、锐度、图像质量等等足以为车辆200的导航提供图像的范围。区5008可以定义在车辆200的图像捕获设备的视野范围5006的外部的范围。在区5008中,车辆200的图像捕获设备可能不能够捕获足以允许车辆200的导航的车辆200周围的环境的图像。在其它示范性实施例中,每个图像捕获设备可以具有不同的视野范围。

如图50中所示,已识别地标5010在视野范围5006之内。因为已识别地标5010在视野范围5006之内,所以其可以被车辆200的图像捕获设备捕获、和标识、以及用来导航车辆200。车辆200可以根据以上结合例如图34-图36所讨论的技术,来标识已识别地标5010。

如先前讨论的,已识别地标5012在区5008之内。然而,区5008定义车辆200的图像捕获设备的视野范围5006的外部的范围。因此,车辆200可能不能够使用车辆200的图像捕获设备标识已识别地标5012,因为已识别地标5012在图像捕获设备的视野范围之外。

与所公开实施例一致的,车辆200可以使用替换技术标识已识别地标5012。例如,车辆200的图像捕获设备可以捕获在视野范围5006之内的环境的图像。车辆200的处理器(例如,处理单元110)可以接收图像。然后,处理器可以基于所捕获的图像来确定车辆200在道路5004中的沿着预定道路模型轨迹5002的位置。例如,如在其它部分中所讨论的,处理器可以将表示来自环境的所捕获的图像的已识别地标的数据信息和诸如以上讨论的被存储在稀疏地图800中的数据的存储的数据进行比较,以确定车辆200在道路5004中的沿着预定道路模型轨迹5002的位置。

基于车辆200的所确定的位置,然后,处理器可以标识车辆200的前方超出视野范围5006的已识别地标(例如,已识别地标5012)。例如,通过访问被存储在稀疏数据地图800或稀疏数据地图800的任何部分(例如,稀疏数据地图800的任何接收到的本地地图部分)中的信息,车辆200的处理单元110可以确定将要被车辆200遇到的下一期望的已识别地标(或将要被车辆200遇到的任何其它的已识别地标)。处理器还可以基于在稀疏数据地图800中可用的信息来确定已识别地标5012的预定位置。然后,处理单元110可以确定在车辆200和期望的已识别地标5012之间的当前距离5014。车辆200和已识别地标5012之间的当前距离5014可以通过比较车辆200的所确定的位置和已识别地标5012的预定位置来确定。基于距离5014,然后,车辆200的处理器可以为车辆确定自主导航响应。例如,除了其它响应以外,处理单元110可以在地标5012之前发起制动,甚至在来自车辆200上的图像捕获设备的任何所捕获的图像中的地标5012的检测之前发起制动。

图51示出与所公开的实施例一致的用于自主导航的配置5100。如早先讨论的,处理单元110可以从图像获取单元120接收图像。图像获取单元可以包括一个或多个图像捕获设备(例如,图像捕获设备122、124、或126)。图像可以描绘在车辆200上的图像捕获设备的视场之内的车辆200的环境。

虽然不需要依赖于gps数据来确定车辆200沿着目标轨迹的准确位置,但gps数据(例如,来自gps单元5016的gps数据)可以被用作用于确定相关本地地图的索引以从稀疏数据地图800之内访问。这样的gps数据还可以被用作通用索引,以辅助验证观察到的已识别地标。

图52示出与本公开一致的环境5200的示例。如图52中所示,车辆200可以接近具有停车标志5204和停止线5210的枢纽5202。停车标志5204或停止线5210中的一个或两者可以与在稀疏数据地图800中被表示的已识别地标相对应。停车标志5204或停止线5210中的一个或两者可以位于超出车辆200上的图像捕获设备的焦距的区5208中,或另外位于图像捕获设备的可用的视野范围的外部。基于相对于停车标志56204和/或停止线5210的被存储在稀疏数据地图800中的信息,处理单元110可以甚至在从车辆200上的图像捕获设备接收的图像中标识出停止线5204或停止线5210之前,基于与停止线5204或停止线5210的所确定的期望的距离发起制动。这样的导航技术,例如,可以辅助逐渐地减慢车辆200或可以根据预定的制动配置文件甚至没有对到制动的触发器(例如,停车标志5204、停止线5210、期望的曲线等等)的距离的可视确认的情况下。

图53示出与本公开一致的另一示例环境5300。如图53中所示,车辆200可以接近道路5304的弯道5302。车辆200可以包括图像获取单元(例如,图像获取单元120),该图像获取单元包括提供视野范围5306的一个或多个图像捕获设备。区5308可以定义车辆200的图像获取单元的视野范围5306的外部的范围。

车辆200可能需要放缓速率或实施转向,以对道路5304中的弯道5302作出应对。为计划放缓速率或实施转向,事先知道弯道5302位于何处可以是有用的。然而,弯道5302可以位于超出车辆200上的图像捕获设备的焦距的区5308中。因此,车辆200可以使用弯道5302的预定位置,例如,如在稀疏数据地图800中所表示的,以及车辆200沿着预定道路模型轨迹5310的位置,来确定到弯道5302的距离5320。此距离可以被用来在弯道出现在由车载相机捕获的图像中之前减慢车辆200、改变车辆200的路线等等。

与所公开的实施例一致的,为了确定到弯道5302的距离5320,车辆200的图像获取设备可以捕获环境的图像。图像可以包括已识别地标5318。车辆200的处理器(例如,处理单元110)可以接收图像并且基于所捕获的图像来确定车辆200沿着预定道路模型轨迹5310的位置和已识别地标5308的位置。基于车辆200的所确定的位置,然后,处理器可以基于与弯道5302有关的、被包括在稀疏数据地图800中的信息来标识超出车辆200的前方的视野范围5306的弯道5302。可以将用于弯道5302的、被包括在稀疏数据地图800中的位置信息,与用于车辆200的车辆200沿着目标轨迹的所确定的位置进行比较,以确定车辆200和弯道5302之间的距离。此距离可以被用于在由车辆200上的相机捕获的图像之内的弯道5302的标识之前为车辆200生成导航响应。

图54是示出与所公开的实施例一致的、用于自主地导航车辆200的示范性过程5400的流程图。车辆200的处理单元(例如,处理单元110)可以使用应用处理器180和图像处理器190中的一个或两者来实施过程5400。如以下更详细地讨论的,车辆200可以基于预定的地标位置自主地沿着路段导航。而且,预定的地标位置可以超出车辆200的视野范围。

在步骤5402,车辆200的处理单元(例如,处理单元110)可以从车辆200的图像捕获设备(例如,图像捕获设备122)接收至少一个图像。至少一个图像可以表示车辆200的环境。至少一个图像可以包括表示环境中的一个或多个地标的数据。例如,至少一个图像可以包括表示诸如道路标志(包括停车标志、让车标志等等)、交通灯、通用标志、在道路上的线、沿着路段的弯道的地标的数据。如在先前部分中讨论的,车辆200的处理单元可以验证在至少一个图像中出现的已识别地标。

在步骤5404,车辆200的处理单元可以确定车辆200的位置。例如,车辆200的处理单元可以至少部分地基于与至少一个图像相关联的信息来确定车辆200沿着与路段相关联的预定道路模型轨迹的位置。

在步骤5406,超出车辆200的图像捕获设备的焦距范围的已识别地标、和在车辆100的前方的已识别地标可以被标识。该标识可以基于车辆200沿着与路段相关联的预定道路模型轨迹的所确定的位置。例如,关于沿着预定道路模型轨迹的已识别地标的信息可以先前被存储在诸如稀疏地图800的稀疏地图中,如以上讨论的。基于车辆200沿着与路段相关联的预定道路模型轨迹的所确定的位置,车辆200的处理单元可以确定一个或多个已识别地标位于沿着预定道路模型轨迹的车辆200的前方,但是超出车辆200的图像捕获设备的视野范围。而且,车辆200的处理单元可以通过访问稀疏地图800来访问已识别地标的预定位置。

在步骤5408,可以确定车辆和位于车辆200的前方、超出车辆200的图像捕获设备的视野范围的已识别地标之间的当前距离。可以通过将车辆200沿着与路段相关联的预定道路模型轨迹的所确定的位置和超出视野范围的、在车辆200的前方的已识别地标的预定位置进行比较,来确定当前距离。

在步骤5410,可以基于车辆200和位于车辆200的前方的已识别地标之间的所确定的当前距离来确定用于车辆的自主导航响应。如在本公开的其它部分中所讨论的,处理单元110可以控制节流系统220、制动系统230、和转向系统240中的一个或多个以执行某一导航响应。例如,自主导航响应可以包括向制动系统230传送控制信号,以提供与车辆200相关联的制动的应用。在另一示例中,自主导航响应可以包括向转向系统240传送控制信号以修改车辆200的转向角度。

基于道路签名的自主导航

与所公开的实施例一致的,系统可以基于预定道路签名而不使用地标来导航。如以上讨论的,这样的道路签名可以与和道路相关联的至少一个参数的任何可辨别的或可测量的变化相关联。例如,在一些情况下,道路签名可以与特定路段的表面粗糙度的变化、特定路段上的道路宽度的变化、沿着特定路段描绘的虚线之间的距离的变化、沿着特定路段的道路曲率的变化等等相关联。基于可视信息(例如,从相机获得的图像)或基于其它传感器输出(例如,一个或多个悬架传感器输出、加速计等等),可以在车辆穿越路段时标识道路签名。这些签名可以被用来沿着预定道路轮廓来定位车辆,然后能够基于将道路模型在所确定的位置处的方向与车辆的航向方向进行比较来为车辆确定前进轨迹。

图55是与所公开的实施例一致的示范性车辆控制系统的图示性表示。如图55中所示,车辆200(其可以是自主车辆)可以包括处理单元110,其可以具有与以上针对图1和图2f所讨论的那些特征相似的特征。车辆200可以包括成像单元220,其也可以具有与以上针对图1和图2f所讨论的那些特征相似的特征。此外,车辆200可以包括能够检测车辆200相对于道路表面的悬架的移动的一个或多个悬架传感器5500。例如,来自位于邻近车辆200的每个车轮的悬架传感器5500的信号可以被用来确定车辆可以位于其上的道路表面的局部形状、倾角、或筑堤。在一些示范性实施例中,车辆200可以额外地或者可替换地包括可以在车辆200在道路表面上行行驶时,获取关于道路表面的变化的信息的加速计、或其它位置传感器。还可以预见的是,在图55中示出的系统100可以包括以上针对例如图1和图2f所讨论的组件中的一些或全部。

图56示出在路段5600上行驶的车辆200,在该路段中,用于使用一个或多个道路签名来导航车辆200的所公开的系统和方法可以被使用。路段5600可以包括车道5602和车道5604。如图56中所示,车道5602可以由道路中心5606和右侧5608划界,而车道5604可以由左侧5610和道路中心5606划界。车道5602和车道5604可以具有相同或不同的宽度。还可以预见的是,车道5602和车道5604中的每一个可以沿着路段5600的长度具有统一或不统一的宽度。虽然图56将路段5604描绘为仅仅包括两个车道5602、5604,但是可以预见的是,路段5600可以包括任意数量的车道。

在如图56中所示的一个示范性实施例中,车辆200可以沿着车道5602行驶。车辆200可以被配置为沿着预定道路模型轨迹5612行驶,所述预定道路模型轨迹5612可以定义在路段5600的车道5602之内的偏好路径(例如,目标道路模型轨迹)。在一些示范性实施例中,预定道路模型轨迹5612位于与道路中心5606和右侧5608等距。然而,可以预见的是,预定道路模型轨迹5612可以位于更靠近路段5600的中心5606和右侧5608中的一个或另一个。在一些实施例中,道路模型轨迹5612可以位于相对于道路的其它地方。例如,道路模型轨迹5612可以位于与路面的中心、道路边缘、车道边缘等等近似一致。

在一些实施例中,预定道路模型轨迹5612可以由三维多项式函数数学地表示,所述三维多项式函数可以被存储在与车辆200相关联的存储器140、150中。还可以预见的是,道路模型轨迹5612的三维多项式表示可以被存储在位于远离车辆200的存储设备中。车辆200的处理单元110可以被配置为通过无线通信接口从存储设备检索预定道路模型轨迹5612。

车辆200可以配备有图像获取单元120的图像捕获设备122、124、126。可以预见的是车辆200可以包括比在图56中示出的图像捕获设备更多或更少的图像捕获设备。图像捕获设备122、124、126可以被配置为当车辆200沿着路段5600行驶时,获取表示车辆200的环境的多个图像。例如,图像捕获设备122、124、126中的一个或多个可以获得示出车辆200的前方的视野的多个图像。车辆200的处理单元110可以被配置为当车辆沿着路段5600行驶时,基于由图像捕获设备122、124、126获得的一个或多个图像、或基于从例如悬架传感器5500接收到的信号来检测车辆200的位置。

如图56中所示,车辆200可以经由位置5622、5624、5626行驶到当前位置5628。虽然图56中仅仅示出了三个在先位置5622-5626,但是本领域普通技术人员将认识到,可以在路段5600上呈现车辆200的任何数量的先前位置。处理单元110可以分析从图像捕获设备122、124、126接收的一个或多个图像,以分别确定,例如,在位置5622、5624、5626、5628处的道路宽度wp1、wp2、wp3、wc,其中下标“p”指代先前位置,并且下标“c”指代车辆200的当前位置5628。在一些示范性实施例中,处理单元110可以额外地或者可替换地分别确定,例如,在位置5622、5624、5626、5628处的车道宽度dp1、dp2、dp3、dc。处理单元110可以生成在路段5600的部分5614上的道路宽度轮廓或车道宽度轮廓。所确定的道路宽度轮廓或车道宽度轮廓可以与当前位置5628相对应。

图57示出由车辆200的处理单元110生成的示范性轮廓5700。如图57中所示,道路宽度、车道宽度、或其它参数可以被绘图在y轴上,而车辆200沿着路段5600行驶的距离可以被绘图在x轴上。处理单元110可以使用与以上针对图34-图36所讨论的系统和方法相似的系统和方法来确定行驶过的距离。

处理单元110可以确定与车辆200的当前位置5628相对应的路段5600的局部特征。例如,处理单元110可以通过曲线拟合所确定的道路宽度wp1、wp2、wp3、wc和/或车道宽度dp1、dp2、dp3、dc来确定轮廓(例如,在图57中示出的轮廓)的数学表示。在一个示范性实施例中,处理单元110可以确定,例如,与道路宽度轮廓或车道宽度轮廓的曲线拟合相关联的系数(例如,a1、a2、……、an)。所确定系数可以表示路段5600在当前位置5628处的局部特征。在另一示范性实施例中,处理单元110可以将轮廓5700的斜率确定为局部特征。可以预见的是处理单元110可以对轮廓5700执行其它数学操作,以确定与车辆200的当前位置相对应的道路5600的局部特征。

处理单元110可以,例如,从被存储在存储器140、150中的数据库160检索与路段5600相关联的预定签名特征。在一个示范性实施例中,预定签名特征可以包括表示与沿着预定道路模型轨迹5612的各种位置相对应的道路宽度轮廓或车道宽度轮廓的最佳的或偏好的拟合线的系数。例如,预定签名特征可以包括在位置1处的系数b1、b2、……bn;在位置2处的c1、c2、……cn;在位置3处的d1、d2、……dn等等。处理单元110可以将基于道路宽度wp1、wp2、wp3、wc和/或车道宽度dp1、dp2、dp3、dc确定的系数(例如,a1、a2、……、an)和系数(例如,b1、b2、……bn;c1、c2、……cn;d1、d2、……dn;等等)进行比较。处理单元110可以基于系数的匹配确定车辆200的当前位置5628。例如,如果系数a1、a2、……、an分别与系数c1、c2、……cn匹配,则处理单元110可以将车辆200的位置5628确定为与预定道路模型轨迹5612的位置2相对应。

处理单元110可以以许多方式确定匹配。在一个示范性实施例中,处理单元110可以确定系数(例如,a1、a2、……、an)和与位置1、2、3等等相对应的每组系数(例如,b1、b2、……bn;c1、c2、……cn;d1、d2、……dn;等等)之间的距离测量。当所确定的距离测量中的至少一个小于阈值距离时,处理单元110可以确定存在匹配。在其它示范性实施例中,处理单元110可以确定系数(例如,a1、a2、……、an)和与位置1、2、3等等相对应的每组系数(例如,b1、b2、……bn;c1、c2、……cn;d1、d2、……dn;等等)之间的误差。当至少一个误差小于阈值误差时,处理单元110可以确定匹配。本领域普通技术人员将认识到,处理单元110可以使用其它数学计算来确定两组系数之间的相关性或匹配。

在一些示范性实施例中,处理单元110可以使用道路宽度w4和/或车道宽度w4作为局部特征来确定车辆500的当前位置5628。例如,路段5600的预定签名特征可以包括与沿着预定道路模型轨迹5612的位置1、2、3、4、5、……n相对应的道路宽度w1、w2、w3、w4、w5、……wn。额外地,或者可替换地,路段5600的预定签名特征可以包括与沿着预定道路模型轨迹5612的位置1、2、3、4、5、……n相对应的车道宽度d1、d2、d3、d4、d5、……dn。处理单元110可以分别将道路宽度wc和/或车道宽度dc与道路宽度w1、w2、w3、w4、w5、……wn和/或车道宽度d1、d2、d3、d4、d5、……dn进行比较,以确定当前位置5628。例如,如果道路宽度wc匹配道路宽度w5,则处理单元110可以将位置5628确定为与位置5相对应。同样地,如果车道宽度dc与车道宽度d3匹配,则处理单元110可以将位置5628确定为与位置3相对应。处理单元可以使用与以上讨论的技术相似的技术确定道路宽度w4和/或车道宽度d4是否匹配。

处理单元110可以使用其它参数来确定当前位置5628。例如,处理单元110可以确定平均道路宽度wavg(wp1、wp2、wp3、wc的平均)、道路宽度方差wvar(wp1、wp2、wp3、wc的方差)、平均车道宽度davg(dp1、dp2、dp3、dc的平均)、车道宽度方差dvar(dp1、dp2、dp3、dc的方差)、或诸如中值、众数等等的其它参数中的一个或多个,来表示与当前位置5628相对应的局部特征。相应的预定道路签名特征还可以由在预定道路模型轨迹5612上的预定位置处的平均道路宽度、道路宽度方差、平均车道宽度、车道宽度方差、道路宽度的中值或众数值、车道宽度的中值或众数值等等来表示。处理单元110可以通过如以上讨论的、比较所确定的局部特征和预定道路签名特征来确定车辆200的当前位置5628。

在一些示范性实施例中,局部特征和路段5600的预定签名特征可以基于在路段5600上的标记(道路标记)的长度、或其之间的间隔。图58示出在路段5600上行驶的车辆200,在路段5600中,预定道路签名可以基于在路段5600上的道路标记。例如,图58将道路中心5606例示为由道路标记5802-5816表示的虚线。当车辆200沿着路段5600行驶时,处理单元110可以分析从一个或多个图像捕获设备122、124、126等等接收的一个或多个图像,来检测道路标记5802-5816。处理单元110还可以分别确定,例如,道路标记5802-5804、5804-5806、5806-5808、5808-5810之间的间隔sp1、sp2、sp3、sc。处理单元110可以额外地或者可替换地分别确定道路标记5802、5804、5806、5808的长度lp1、lp2、lp3、lc。在一个示范性实施例中,处理单元可以以与以上针对图56和图57所讨论的轮廓相似的方式,分别基于间隔sp1、sp2、sp3、sc或长度lp1、lp2、lp3、lc生成虚线间隔轮廓或虚线长度轮廓。处理单元110还可以基于如以上针对图56和图57所讨论的对虚线间隔轮廓和/或虚线长度轮廓的曲线拟合的系数来确定局部特征。处理单元110可以比较路段5600的局部特征(例如,表示虚线间隔轮廓或虚线长度轮廓的系数)和预定签名特征。例如,处理单元110可以将表示所确定的虚线间隔轮廓或虚线长度轮廓的系数和在沿着预定道路模型轨迹的已知位置处的虚线间隔/长度轮廓的预定系数进行比较。当所确定的虚线间隔/长度轮廓的系数匹配如以上针对图56和图57所讨论的、在特定的已知位置处的预定系数时,处理单元110可以确定车辆200的当前位置5628。

在一些示范性实施例中,处理单元110可以使用虚线间隔sc和/或虚线长度lc作为局部特征来确定车辆500的当前位置5628。例如,路段5600的预定签名特征可以包括与沿着预定道路模型轨迹5612的位置1、2、3、4、5……n相对应的虚线车道间隔s1、s2、s3、s4、s5、……sn。额外地,或者可替换地,路段5600的预定签名特征可以包括与沿着预定道路模型轨迹5612的位置1、2、3、4、5……n相对应的虚线长度l1、l2、l3、l4、l5、……ln。处理单元110可以分别将虚线间隔sc和/或虚线长度lc与虚线车道间隔s1、s2、s3、s4、s5、……sn和/或虚线长度l1、l2、l3、l4、l5、……ln进行比较,来确定当前位置5628。例如,如果虚线间隔sc匹配虚线间隔s5,则处理单元110可以将位置5628确定为与位置5相对应。同样地,如果虚线长度lc匹配虚线间隔l3,则处理单元110可以将位置5628确定为与位置3相对应。处理单元可以使用与以上讨论的那些匹配技术相似的匹配技术来确定虚线间隔sc和/或虚线长度lc是否匹配预定的虚线间隔、长度。

在其它示范性实施例中,处理单元110可以将平均虚线长度lavg、虚线方差lvar、虚线间隔平均savg、或虚线间隔方差svar确定为局部参数。处理单元110可以将虚线长度lavg、虚线方差lvar、虚线间隔平均savg、或虚线间隔方差svar和在沿着预定道路模型轨迹5612的各种位置处的虚线长度、虚线方差、虚线间隔平均、或虚线间隔方差的预定值进行比较。在各种位置处的虚线长度、虚线方差、虚线间隔平均、或虚线间隔方差可以组成路段5600的预定签名特征。处理单元110可以将车辆200的当前位置5628确定为虚线长度lavg、虚线方差lvar、虚线间隔平均savg、或虚线间隔方差svar中的至少一个匹配虚线长度、虚线方差、虚线间隔平均、或虚线间隔的预定的相应值的位置。

在又其它示范性实施例中,处理单元110可以使用虚线的数量作为局部特征。例如,当由机器描绘道路标记5802-5816时,可以以固定的长度和间隔来描绘道路标记5802-5816。因此,当车辆200在路段5600上行驶时,有可能基于对道路标记的计数来确定车辆200的当前位置5628。处理单元110可以确定车辆200直到到达位置5628可能已经经过的虚线的计数“nc”。处理单元110可以将计数nc分别和与沿着预定道路模型轨迹5612分别到达位置1、2、3、……n的道路标记的数量相对应的计数n1、n2、n3、……nn进行比较。计数n1、n2、n3、……nn可以与路段5600的预定签名特征相对应。在一个示例中,当计数nc匹配n2时,处理单元可以将当前位置5628确定为与位置2相对应。

在一些示范性实施例中,路段5600的局部特征和预定签名特征可以基于预定道路模型轨迹和车辆200行驶过的实际轨迹的曲率半径。例如,如图59中所示,车辆200可以在可以包括车道5902和车道5904的路段5900上行驶。如图59中所示,车道5902可以被道路中心5906和右侧5908划界,而车道5904可以被左侧5910和道路中心5906划界。车辆200可以被配置为沿着预定道路模型轨迹5912行驶,其可以定义当车辆200沿着路段5900行驶时车辆200可以遵循的在路段5900的车道5902之内的偏好路径(例如,目标道路模型轨迹)。还如图59中所示,车辆200可以经由先前位置5922、5924、5926、5928、5930、5932行驶到当前位置5934。虽然图59中仅仅示出了六个先前位置5922-5932,但是本领域普通技术人员将认识到在路段5900上可以呈现车辆200的任何数量的先前位置。

当车辆200穿过车辆200的先前位置5922-5932时,处理单元110可以确定车辆200的已行驶轨迹5914。在一个示范性实施例中,处理单元110可以拟合通过位置5922-5932的、可以是与表示预定道路模型轨迹5912的三维多项式相似的三维多项式的曲线。处理单元110还可以确定表示预定道路模型轨迹5912的各种段(部分)的曲率的第一参数值。进一步,处理单元110可以确定表示已行驶轨迹5914的曲率的第二参数值。处理单元110可以基于第一参数值和第二参数值确定车辆200的当前位置5934。

例如,考虑r1、r2、r3、……rz表示预定道路模型轨迹5912的段c1、c2、c3、……cz的曲率半径的情况。参考图59,预定道路模型轨迹5912的部分c1、c2、c3、……cz可以表示在位置5922-5944、5922-5946、5922-5948等等之间的预定道路模型轨迹5912的部分。处理单元可以确定,例如,在位置5922和位置5934之间的已行驶轨迹5914的曲率半径rt。处理单元110可以将曲率半径rt和半径r1、r2、r3、……rz进行比较。当曲率半径rt匹配位于位置5922和位置5970之间的预定道路模型轨迹的一部分的曲率半径rp时,处理单元110可以将车辆200的当前位置5934确定为位置5970。处理单元110可以使用与以上讨论的匹配技术相似的匹配技术确定半径rt和rp之间的匹配。

图60是示出与所公开的实施例一致的、用于使用道路签名沿着路段5900(或5600)导航车辆200的示范性过程6000的流程图。可以由处理单元110和图像获取单元120中的一个或多个来执行过程6000的步骤,需要或不需要访问存储器140或存储器150。提供过程6000中的步骤的次序和排列是用于例示的目的。如将从本公开领会的,可以通过,例如,添加、组合、移除、和/或重新排列用于过程的步骤来对过程6000进行修改。

如图60中所示,过程6000可以包括从传感器接收关于路段5900(或5600)的一个或多个方面的信息的步骤6002。在一个示范性实施例中,传感器可以包括可以获取表示车辆的环境的一个或多个图像的图像捕获设备122、124、126中的一个或多个。在一个示范性实施例中,图像获取单元120可以获取车辆200前方(或例如,车辆的侧面或后面)的区域的一个或多个图像。例如,图像获取单元120可以使用具有视场202的图像捕获设备122获得图像。在其它示范性实施例中,图像获取单元120可以从具有视场202的图像捕获设备122、具有视场204的图像捕获设备124、具有视场206的图像捕获设备126中的一个或多个获取图像。图像获取单元120可以通过数据连接(例如,数字、有线、usb、无线、蓝牙等等)向处理单元110发送一个或多个图像。

在另一示范性实施例中,传感器可以包括在车辆200上的一个或多个悬架传感器5500。悬架传感器5500可以被配置为响应于悬架相对于路段5900(或5600)的表面的移动,生成信号。当车辆200沿着路段5900(或5600)移动时,处理单元110可以从在车辆200上的一个或多个悬架传感器5500接收信号。例如,处理单元110可以基于位于邻近车轮的悬架传感器5500,接收关于邻近车辆200的车轮中的每一个的车辆200的相对高度的信息。处理单元110可以使用此信息来确定在车辆200的位置处的道路表面轮廓。道路表面轮廓可以提供关于,例如,车道5902(或5602)相对于道路中心5906或右侧5908的倾斜或倾角的信息。在一些实施例中,道路表面轮廓还可以基于来自一个或多个悬架传感器5500的信号来标识路段5900(或5600)中的凸起。

过程6000还可以包括基于从传感器(例如,成像单元110、一个或多个悬架传感器5500等等)接收的信息来确定局部特征的步骤6004。局部特征可以表示在车辆200的当前位置5628或5932处的路段的一个或多个方面。例如,局部特征可以包括在车辆200的当前位置5932处的道路宽度、车道宽度、或道路表面轮廓中的至少一个。在一些示范性实施例中,局部特征可以基于当车辆沿着预定道路模型轨迹行驶到当前位置5932时由处理单元110收集的数据。特别地,基于当车辆行驶到当前位置5932时所确定的道路宽度、车道宽度、道路标记(虚线)的长度、相邻道路标记(虚线)之间的间隔等等,处理单元110可以确定道路宽度轮廓、车道宽度轮廓、虚线长度轮廓、虚线间隔轮廓、表示已行驶轨迹5914的曲率的第二参数值、和/或如以上针对图55-图58所讨论的其它参数。

过程6000可以包括接收针对路段5900的预定签名特征的步骤6006。例如,处理单元110可以从被存储在与车辆200相关联的存储器140、150中的数据库160、或从位于远离车辆200的数据库160检索预定签名特征。如以上针对图56-图59所讨论的,预定签名特征可以包括表示在沿着预定道路模型轨迹5912的预定位置处的道路宽度、车道宽度、虚线长度、虚线间隔等等中的至少一个的一个或多个预定参数值。在一些示范性实施例中,预定签名特征还可以包括在沿着预定道路模型轨迹5912的各种预定位置处的在路段的至少一部分上的道路宽度轮廓、在路段的至少一部分上的车道宽度轮廓、在路段的至少一部分上的虚线间隔轮廓、沿着路段的至少一部分的道路标记的预定数量、在路段的至少一部分上的道路表面轮廓、或与路段相关联的预定曲率中的一个或多个。在一些示范性实施例中,处理单元110可以检索表示路段5900的至少一个预定签名特征的参数值的第一集合。

更进一步,在一些示范性实施例中,预定签名特征可以在已知位置(例如,十字路口)开始,并且如果车道标记段长度和间隔是已知的而且车道标记段被计数,则处理单元110可以从已知位置确定关于道路的位置。在一些实施例中,特定段(例如,典型地靠近交叉点)的已知长度与关于一致的段长度和间隔的统计一起的组合也可以被用作预定签名特征。进一步,在一些实施例中,预定签名特征可以包括两个重复特征的组合,诸如车道标记段和灯柱的组合。还是在其它实施例中,预定签名特征可以包括gps数据(例如,近似位置)和车道标记段的组合。

过程600还可以包括确定,例如,在步骤6004中确定的局部特征是否匹配从,例如,在步骤6006中检索的至少一个预定签名特征的步骤6008。处理单元110可以确定是否存在如以上针对图57-图59所讨论的匹配。当处理单元110确定局部特征匹配预定签名特征(步骤6008:是)时,处理单元110可以前进到步骤6010。在步骤6010,处理单元可以确定车辆200的当前位置5628、5932。处理单元110可以如以上针对图57-图59所讨论的确定当前位置5932。返回到步骤6008,然而,当处理单元110确定局部特征不匹配预定签名特征(步骤6008:否)时,处理单元110可以返回到步骤6006以从数据库160检索另一预定签名特征。

过程6000可以包括确定在当前位置5628、5932处的车辆200的航向方向5980的步骤6012。处理单元110可以使用以上针对图37-图39所讨论的一个或多个操作确定航向方向5980。例如,处理单元110可以将航向方向5980确定为已行驶轨迹5914在车辆200的当前位置5932处的梯度。过程6000还可以包括确定预定道路模型轨迹5912的方向5990的步骤6014。处理单元110可以使用如以上针对图37-图43所讨论的一个或多个操作来确定方向5990。例如,处理单元110可以将方向5990确定为在车辆200的当前位置5932处与预定道路模型轨迹5912相切的矢量。处理单元110可以将相切矢量确定为沿着预定道路模型轨迹5912在当前位置5932处的数学表示的梯度指向的矢量。

过程6000还可以包括为车辆200确定自主转向动作的步骤6016。处理单元110可以确定航向方向5980和预定道路模型轨迹5912的方向5990之间的旋转角度。处理单元110可以执行导航模块408中的指令,以确定可以帮助保证车辆200的航向方向5980与预定道路模型轨迹5912在车辆200的当前位置5932处的方向5990对齐(即,平行)的车辆200的自主转向动作。处理单元110还可以向转向系统240传送控制信号,以调整车辆200的车轮的旋转来转动车辆200,从而航向方向5980可以与预定道路模型轨迹5912在当前位置5932处的方向5990对齐。

处理单元110和/或图像获取单元120可以在预定的时间量之后重复步骤6002至步骤6016。在一个示范性实施例中,预定的时间量可以在大约0.5秒至1.5秒之间的范围内。通过重复地基于道路签名确定车辆200的当前位置5932、基于已行驶轨迹5914确定航向方向5980、确定预定道路模型轨迹3410在当前位置5932处的方向5990、以及确定对齐航向方向5980与方向5990所要求的自主转向动作,处理单元110和/或图像获取单元120可以使用道路签名帮助导航车辆200,从而车辆200可以沿着路段5912行驶。

基于后向相机的向前导航

与所公开的实施例一致的,在不利的光照条件禁止使用前向相机的导航的情形中(例如,驾驶到明亮的太阳下),可以基于从后向相机获得的图像信息来导航。

在一个实施例中,用于自主地导航车辆的系统可以包括至少一个处理器。至少一个处理器可以被编程为:从后向相机接收表示在车辆的后方的区域的至少一个图像、分析至少一个后向图像以在图像中定位至少一个地标的表示、确定地标相对于车辆的位置的至少一个指示符、至少部分地基于地标相对于车辆的位置的指示符确定车辆的前进轨迹、并且引起车辆沿着所确定的前进轨迹导航。

在有关的实施例中,地标的位置的指示符可以包括车辆和地标之间的距离和/或车辆和地标之间的相对角度。地标可以包含道路标记、车道标记、反射镜、杆、道路上的线条图案的改变、道路标志、或与路段相关联的任何其它可观察的特征。地标可以包括例如,道路标志的背面。至少一个处理器还可以被编程为基于地标的位置的指示符确定在行驶的当前车道之内的车辆的车道偏移量,并且前进轨迹的确定可以基于所确定的车道偏移量。至少一个处理器还可以被编程为从另一相机接收表示车辆的另一区域的至少一个图像,并且前进轨迹的确定还可以基于从另一相机接收的至少一个图像。

在一些实施例中,后向相机可以安装在连接到车辆的对象上。该对象可以是拖车、自行车架、安装座、滑雪板/滑雪板架、或行李架。后方相机接口可以是可拆卸的接口或无线接口。

图61a是与所公开的实施例一致的示范性车辆6100的图示性侧视图表示。除了车辆6100在它的本体中包括面向相对于车辆6100的后方方向的图像捕获设备6102之外,车辆6100可以与图2a的车辆200相似。系统6104可以与图1中的系统100相似,并且可以包括与处理单元110相似的处理单元6106。如图61a中所示,图像捕获设备6102可以被放置在车辆6100的后备箱附近。图像捕获设备6102还可以位于,例如,以下各项位置中的一个:车辆6100的侧镜上或侧镜中;车辆6100的车顶上;车辆6100的侧面上;被安装在车辆6100的车窗/挡风玻璃中的任何上、被放置在车辆6100的车窗/挡风玻璃中的任何后面、或被放置在车辆6100的车窗/挡风玻璃中的任何的前面;后保险杠上或后保险杠中;安装在车辆6100的后面的光图中或附近;或图像捕获设备6102可以捕获车辆6100的后方的区域的图像的任何其它位置。在一些实施例中,如以上讨论的,图像捕获设备6102可以被安装在与车辆6100的后挡风玻璃齐平的遮光板后面。这样的屏蔽可以最小化来自车辆6100内部的反射对图像捕获设备6102的影响。

图61a示出面向车辆6100的后方方向的一个图像捕获设备6102。然而,其它实施例可以包括位于不同位置并面向车辆6100的后方方向的多个图像捕获设备。例如,第一图像捕获设备可以位于车辆6100的后备箱中面向车辆6100的后方略微朝下的方向,并且第二捕获设备可以安装在车辆6100的车顶,面向车辆6100的后方略微朝上的方向。在另一示例中,第一图像捕获设备可以安装在车辆6100的左侧镜上,并且第二图像捕获设备可以被安装在车辆6100的右侧镜上。第一图像捕获设备和第二图像捕获设备两者都可以面向车辆6100的后方方向。

在一些实施例中,可以选择图像捕获设备的相对位置,从而图像捕获设备的视场完全地重叠、部分地重叠、或完全不重叠。进一步,图像捕获设备可以具有相同或不同的视场,以及相同或不同的焦距。

图61a示出面向相对于车辆6100的后方方向的图像捕获设备6102。然而,本领域技术人员将认识到车辆6100还可以包括面向各个方向的任意数量的图像捕获设备,并且处理单元6106还可以被编程为操作这些额外的图像捕获设备。例如,车辆6100还可以包括图2a中的图像捕获设备122和图像捕获设备124,并且处理单元6106可以被编程为执行系统100的处理单元110的编程的功能。本领域技术人员还将认识到具有多个图像捕获设备,一个面向车辆6100的后方方向并且另一个面向车辆6100的前方方向,这在不利的光照条件可能禁止使用图像捕获设备中的一个来导航的情形中(例如,驾驶到明亮的太阳下)可以能是有益的。由于不利的光照条件很少影响朝向上述两个方向的图像捕获设备两者,所以系统6104可以被配置为在这些情形中基于从被光照条件更少地不利影响的图像捕获设备接收的图像来导航。

在一些实施例中,可以基于从后向相机接收的图像与从前向相机接收的图像一起、或独立于从前向相机接收的图像来确定车辆的前进轨迹。在一些实施例中,可以通过,例如,对两个所确定的轨迹取平均来确定前进轨迹,其中所述两个所确定的轨迹一个是基于从后向相机接收的图像所确定,另一个是基于从前向相机接收的图像所确定。

在一些实施例中,可以分析来自前向相机和后向相机的图像以确定哪个相机当前正在提供更有用的图像。基于此确定,来自前向相机或后向相机的图像可以选择性地在导航车辆时使用。例如,在车辆6100可能面向引起前向相机捕获缺乏可以基于其来准确地确定导航响应的足够的细节的图像的明亮光源(例如,太阳)的情形中,从没有被相同光源影响的后向相机收集的图像可以在导航车辆时使用。从可用图像流的图像的该确定和选择可以即时进行。

在一些实施例中,因为一个或多个对象(例如,大卡车或其它车辆)阻挡前向相机的视场的一部分,所以导航可以基于从后向相机接收的图像。在其它情形中,导航可以基于作为从前向相机收集的图像的补充的、从后向相机收集的图像。例如,在一些实施例中,车辆可以在它的前向相机的视场中定位已识别地标。从当已识别地标第一次进入前向相机的视场的时间,直到当车辆已经经过已识别地标(或否则地标已经离开前向相机的视场)的时间,导航能够基于已识别地标的被捕获的图像来进行(例如,基于上述的任何技术)。然而,当车辆经过地标时,基于已识别地标的导航不必结束。相反,当车辆驶离该地标时,后向相机能够捕获相同的已识别地标的图像。如上所述,这些图像能够用来确定车辆相对于针对特定路段的目标轨迹的位置,并且只要地标的背面是可见的、或在由后向相机捕获的图像中出现,那么已识别地标的背面的图像就是可用的。使用这样的技术可以延长车辆能够利用已识别地标的好处来导航的时间量,并且可以延迟车辆必须转换到航位推算或没有由已识别地标的已知位置锚固的另一导航技术的时间。结果,导航误差可以更进一步减小,从而车辆更紧密地遵循目标轨迹

在一些实施例中,(多个)对象可以在车辆6100的后面出现,并且此对象可以在图像捕获设备6102的视场中,干扰图像捕获设备6102准确地捕获表示在车辆6100的后方的区域的图像的能力。对象可以是,例如,拖车、自行车架、安装座、滑雪板/滑雪板架、或行李架。在这些实施例中,图像捕获设备6102可以安装在对象上,并且被安排捕获表示对象的后方的区域的图像。图61b示出具有这样的对象的示范性车辆。

图61b是与所公开的实施例一致的示范性车辆6150的图示性侧视图表示。除了车辆6150正在牵引拖车6108并且图像捕获装置6102被安装在拖车6108上之外,车辆6150与车辆6100相似。如图61b中所示,图像捕获设备6102面向拖车6108的后方方向,并且被放置为捕获表示拖车6108后方的区域的图像。如以上讨论的,拖车6108的出现可以干扰可能被安装在车辆6150的本体上并且面向车辆6108的后方方向的任何图像捕获设备。

在一些实施例中,图61b的图像捕获设备6102可以先前已经被安装在车辆6150的本体中或本体上(与图61a的图像捕获设备6102相似),并且现在被重新放置在拖车6108上。在这些实施例中,图像捕获设备6102可以经由可拆卸电接口6110电连接至系统6104。“可拆卸电接口”可以被广泛地定义为能够由驾驶员或乘客(或可能不是技术人员的任何其它人)连接和断开的连接器的集合。可拆卸电接口6110允许可能不是技术人员的用户,诸如车辆6150的驾驶员或乘客,例如,从拖车6108到车辆6105重新安装图像捕获设备6102。在车辆6150频繁地在具有和不具有拖车6108的操作之间切换的情况下,该能力可以是特别有用的。在其它实施例中,后向相机6102可被配置为与处理单元6106无线通信。

图62是与所公开的实施例一致的、在道路上自主导航的示例性车辆的图示性顶视图表示。图62示出包括图像捕获设备6102(它的视线为6102a)和用于自主地导航车辆6100的系统6104的图61a的车辆6100。图62还示出数个潜在的已识别地标,包括:与特定路段相关联的道路粗糙度轮廓6208、车道标记6210的改变,反射镜6202a-6202c,背对着车辆6100的道路标志6204、面向车辆6100的道路标志6206、和杆6214。

图62还示出地标相对于车辆6100的位置的指示符。图62中的位置的指示符包括地标(例如,反射镜6202a)和车辆6100之间的距离6212a和/或相对角度6212b。“位置的指示符”可以指代与位置有关的任何信息。因此,地标的位置的指示符可以包括与地标的位置有关的任何信息。在图62的示例中,地标的位置的指示符是相对于车辆6100来确定的。

如图62中所示,距离6212a是图像捕获设备6102与地标之间的距离,角度6212b是图像捕获设备6102的视线6102a与从图像捕获设备6102到地标的假想线之间的角度。然而,在一些实施例中,距离6212a可以是车辆6100附近的参考点与地标之间的距离,并且角度6212b可以是通过参考点的参考线与从参考点到地标的假想线之间的角度。参考点可以是,例如,车辆6100的中心,并且参考线可以是,例如,通过车辆6100的中心的线。

在一些实施例中,一个或多个地标、和/或一个或多个位置的指示符可以在车辆6100的自主导航中使用。例如,可以使用位置的指示符来确定车辆相对于被存储在,例如,稀疏地图800中的目标轨迹的当前位置。基于从后向相机接收的图像,可以采用以上针对在为车辆确定一个或多个导航响应时的地标识别和使用所讨论的技术中的任何。

图63是示出用于使用一个或多个地标、和一个或多个位置的指示符来自主地导航车辆的示例性过程的流程图。过程6300可以使用来自后向相机的至少一个图像,并且分析至少一个图像以沿着前进轨迹导航车辆。

在步骤6302,处理单元6106可以从后向相机接收表示车辆6100的后方的区域的至少一个图像。在可选步骤,处理单元6106可以从另一相机接收表示车辆6100的另一区域的至少一个图像。在一些实施例中,处理单元6106可以经由一个或多个相机接口接收图像。例如,处理单元6106可以经由后方相机接口接收表示车辆的后方的区域的至少一个图像,并且经由前方相机接口接收表示车辆的前方的区域的一个图像。在一些实施例中,如以上讨论的,一个或多个相机接口可以包括可拆卸接口或无线接口。

在步骤6304,处理单元6106可以分析至少一个后向图像以在图像中定位至少一个地标的表示。如以上参考图62所讨论的,地标可以包括:例如,道路轮廓6208、车道标记6210的改变、反射镜6202a-6202c、背对着车辆6100的道路标志6204、面对着车辆6100的道路标志6206、和杆621。可替换地或额外地,地标可以包括:例如,交通标志、箭头标记、车道标记、交通灯、停止线、方向标志、地标信标、灯柱、方向标志、限速标志、道路标记、商业标志、距离标记、或道路上线的间隔的改变。

在一些实施例中,在接收到的图像中定位到地标之前或之后,处理单元6106可以检索与自主车辆附近的已识别地标有关的信息。与已识别地标有关的信息可以包括,例如,与地标的尺寸、和/或形状有关的信息。与地标有关的信息可以从,例如,数据库获取,该数据库可以位于系统6104中或位于车辆6100外部(经由诸如蜂窝网络或其它无线平台的通信系统连接到系统6104)。

在步骤6306,处理单元6106可以确定地标相对于车辆的位置的至少一个指示符。例如,位置的指示符可以包括地标和车辆之间的距离、和/或地标和车辆之间的相对角度。如以上参考图62所讨论的,距离可以是,例如,距离6202a,其为图像捕获设备6102与地标之间的距离,并且角度可以是角度6212b,其为图像捕获设备6102的视线6102a与从图像捕获设备6102到地标的假想线之间的角度。

在一些实施例中,处理单元6106可以基于在接收到的所定位的地标的表示来确定地标相对于车辆的位置的至少一个指示符。例如,在接收到的图像中的所定位的地标的表示的尺寸和形状可以被用来估计与车辆6100的距离6212a(例如,通过监视多个图像帧上的对象的尺度的改变)。在另一示例中,在接收到的图像中的所定位的地标的表示所占据的像素的坐标可以被用来估计角度6212b。在与地标有关的信息被处理单元6106检索到的实施例中,该信息可以被用来建模并且与接收到的图像中的所定位的地标的表示进行比较。在这些实施例中,该信息可以提高位置的所确定的指示符的精度。

在可选步骤6308,处理单元6106可以基于地标相对于车辆的位置的指示符来确定行驶的当前车道之内的车辆的车道偏移量(或甚至做出对行驶的当前车道的确定)。例如,可以通过知道已识别地标的位置、连同已识别地标相对于路段的车道的相对位置一起来确定这样的偏移确定或车道确定。因此,一旦相对于已识别地标确定了距离和方向,就可以计算出行驶的当前车道和/或行驶的具体车道之内的车道偏移量。车辆的车道偏移可以指代从车道指示符到参考点的垂直距离。在一些实施例中,参考点可以与车辆的边缘、或沿着车辆的中心线的点相对应。在其它实施例中,参考点可以与车道或道路的中点相对应。车道指示符可以包括:例如,车道标记、道路边缘、用于提高车道的可见性的反射镜、或在车道的边界上或附近的任何其它对象。在以上示例中,车道偏移可以是从道路边缘6208到车辆6100的垂直距离。

在步骤6310,处理单元6106可以至少部分地基于地标相对于车辆的位置的指示符来为车辆确定前进轨迹。在可选步骤6308被执行的实施例中,处理单元6106还可以基于所确定的车道偏移量来为车辆确定前进轨迹。在处理单元6106从另一相机接收表示车辆6100的另一区域的至少一个图像的实施例中,处理单元6106还可以基于从另一相机接收的至少一个图像来为车辆确定前进轨迹。这样的轨迹确定可以基于上述技术中的任何(例如,基于已识别地标、尾部对齐的导航等等)。

在步骤6312,处理单元6106可以引起车辆6100沿着所确定的前进轨迹导航。在一些实施例中,处理单元6106可以引起在车辆6100中的一个或多个导航响应,以沿着所确定的前进轨迹导航。导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。额外地,多个导航响应可以同时发生、按顺序发生、或它们的任何组合,以沿着所确定的前进轨迹导航。例如,处理单元6106可以通过,例如,顺序地向转向系统240和节流系统220发送控制信号来引起车辆200转移一个车道并且然后加速。可替换地,处理单元110可以通过,例如,同时向制动系统230和转向系统240发送控制信号,以在偏移车道的同时引起车辆6100制动。

基于自由空间确定的导航

与所公开的实施例一致的,系统能够识别停放的车辆、道路边缘、障碍、行人、和其它对象,来确定车辆能够在其之内行驶的自由空间边界。

在一些情形中,自由空间可以被用来导航车辆。这些情况可以包括,例如,当因为车道不存在和/或因为障碍物覆盖车道标记(例如,停放的汽车和雪)所以车道标记不可见时。可替换地,可以除了基于车道标记的导航方法之外,还使用自由空间边界来导航车辆,以增加系统的稳健性。

图64是与所公开的实施例一致的由在示范性车辆上的前向图像捕获设备捕获的环境6400的图示性透视图。示范性车辆可以是,例如,以上参考图2a-图2f所描述的车辆200,并且可以包括诸如车辆200的处理单元110的处理单元。前向图像捕获设备可以是,例如,车辆200的图像捕获设备122、图像捕获设备124、或图像捕获设备126。

图64示出具有道路边缘6410a的非道路区域6410、具有路缘石6412a的人行道6412、以及道路地平线6414。道路障碍6418可以出现在道路边缘6410a附近,并且汽车6416可以停放在路缘石6412a附近。图64还示出第一自由空间边界6404、第二自由空间边界6406、和前方自由空间边界6408。前方自由空间边界6408可以在第一自由空间边界6404和第二自由空间边界6406之间延伸。车辆(图中未示出)前方的自由空间区6402可以是由这三个边界所界定的区,并且可以表示在环境6400之内的物理可驾驶区。第一自由空间边界6404和第二自由空间边界6406可以各自对应于例如,道路边缘、道路障碍、停放的汽车、路缘石、车道划分结构、隧道壁、和/或桥梁结构,或它们的组合。前方自由空间6408可以对应于,例如,道路的尽头、道路地平线、道路障碍、车辆、或它们的组合。

在图64的示例中,第一自由空间边界6404和第二自由空间边界6406可以各自与多个对象相对应。例如,第一自由空间边界6404可以与道路边缘6410a的一部分以及道路障碍6418相对应,并且第二自由空间边界6406可以与路缘石6412a的一部分以及停放的汽车6414相对应。然而,在一些实施例中,每个自由空间边界可以与单个对象相对应。相似地,前方自由空间6408可以与一个或多个对象相对应。例如,在图64中,前方自由空间6408与道路地平线6414相对应。

在一些实施例中,一个或多个障碍物可以存在于由三个自由空间边界6404、6406、和6408所界定的自由空间区6402中。在这些实施例中,可以将障碍物从自由空间区6402排除。例如,在图64中,行人6420站在由三个自由空间边界6404、6406、和6408所界定的自由空间区6402之内。因此,可以将行人6420从自由空间区6402排除。可替换地,可以将围绕障碍物的区从自由空间区6402排除。例如,可以将围绕行人6420的区6422,而不是被行人6420占据的区从自由空间区6402排除。障碍物可以包括,例如,行人、另一车辆、和岩块。

围绕障碍物(例如,行人6420)的区(例如,区6422)的尺寸可以确定在导航期间在车辆和障碍物之间可以存在的最小距离。在一些实施例中,区的尺寸可以基本上与障碍物的尺寸相同。在其它实施例中,可以基于障碍物的类型来确定区的尺寸。例如,出于安全原因,围绕行人6420的区6422可以相对大,而围绕岩块的另一区可以相对小。在一些实施例中,可以基于障碍物正移动的速率、图像捕获设备的帧率、车辆的速率、或它们的组合来确定区的尺寸。在一些实施例中,围绕障碍物的区的形状可以是圆形、三角形、矩形、或多边形。

在图64中,第一自由空间边界6404与道路边缘6410的一部分以及道路障碍6148相对应,第二自由空间边界6406与路缘石6412a的一部分以及停放的汽车6416相对应。然而,在其它实施例中,第一自由空间边界6404和第二自由空间边界6406可以分别与道路边缘6410a和路缘石6412a相对应,并且道路障碍6148和停放的汽车6416可以被认为是障碍物。

在一些实施例中,可以将障碍物之间的区从自由空间区6402排除。例如,如果两个障碍物之间的区的宽度小于车辆的宽度,则可以将该区从自由空间区6402排除。

图65是与所公开的实施例一致的从车辆的前向图像捕获设备接收的示范性图像。图65示出第一自由空间边界6504和第二自由空间边界6506。两个自由空间边界都对应于在道路每侧上的路缘石和停放的汽车(例如,停放的汽车6516)。图65还示出可以由第一自由空间边界6504、第二自由空间边界6506、和前方自由空间边界(未示出)定义的自由空间区6502。额外地,图65示出可以被认为是障碍物的正移动的汽车6520。因此,可以将正移动的汽车6520从自由空间区6502排除。

图66是示出与所公开的实施例一致的、用于基于车辆200能够在其中行驶的自由空间区6402来导航车辆200的示范性过程6600的流程图。过程6300可以使用来自前向图像捕获设备的多个图像、分析多个图像中的至少一个图像以标识自由空间边界并且定义由自由空间边界界定的自由空间区。而且,过程6300可以基于所定义的自由空间区导航车辆。

在步骤6602,处理单元110可以从图像捕获设备122接收与车辆200的环境6400相关联的多个图像。如以上讨论的,图65是可以从图像捕获设备122接收的图像的示例。在一些实施例中,图像可以由图像捕获设备122在不同的时间捕获(例如,可以间隔小于asecond、1秒、2秒等等捕获图像)。在一些实施例中,车辆200可以包括多个图像捕获设备(例如,车辆200的图像捕获设备122和124),并且处理单元110可以从每个图像捕获设备接收与车辆200的环境6400相关联的多个图像。从每个图像捕获设备接收的多个图像可以是由每个图像捕获设备在不同时间捕获的图像。

在步骤6604,处理单元110可以分析从,例如,图像捕获设备122接收的多个图像中的至少一个。在基于从多个图像捕获设备接收的图像来生成单一多个图像的实施例中,处理单元110可以分析单一多个图像中的至少一个图像。可替换地,从每个图像捕获设备接收的每个图像可以被独立地分析。

额外地,处理单元110可以标识在车辆200的驾驶员侧上并且向车辆200的前方延伸的第一自由空间边界6404、在车辆200的乘客侧并且向车辆200的前方延伸的第二自由空间边界6404、以及在车辆200的前方并且在第一自由空间边界6404和第二自由空间边界6406之间延伸的前方自由空间边界6408。额外地,处理单元110还可以将在车辆前方的自由空间区6402标识为由第一自由空间边界6404、第二自由空间边界6406、和前方自由空间边界6408界定的区。如以上所讨论的,第一自由空间边界6404和第二自由空间边界6406可以各自对应于例如,道路边缘、道路障碍、停放的汽车、路缘石、车道划分结构、隧道壁、和/或桥梁结构,或它们的组合。此外,如以上所讨论的,前方自由空间6408可以对应于,例如,道路的尽头、道路地平线、道路障碍、车辆、或它们的组合。

在可选步骤,处理单元110可以基于在步骤6604的分析来标识车辆200的前方的障碍物(例如,行人6420),并且将所标识的障碍物从车辆200的前方的自由空间区6402排除。可替换地,处理单元110可以基于在步骤6640的对多个图像中的至少一个的分析来标识车辆的前方的障碍物(例如,行人6420),并且将围绕所标识障碍物的区(例如,区6624)从车辆的前方的自由空间区6402排除。

在一些实施例中,如以上讨论的,围绕所标识障碍物的区的尺寸可以基本上与障碍物的尺寸相同,或可替换地,围绕障碍物的区的尺寸可以基于障碍物的类型来确定。在一些实施例中,如以上讨论的,可以基于障碍物正移动的速率、图像捕获设备122的帧率、车辆200的速率、或它们的组合来确定区的尺寸。

在另一可选步骤,处理单元110可以将所标识的障碍物之间的区、和/或所标识的障碍物和自由空间边界6404、6406之间的区从自由空间区6402排除。在一些实施例中,如以上讨论的,处理单元110可以基于所标识的障碍物之间的距离来确定是否排除所标识障碍物之间的区。而且,处理单元110可以基于所标识障碍物和自由空间边界6404、6406之间的距离来确定是否排除所标识障碍物和自由空间边界6404、6406之间的区。

在步骤6606,处理单元110可以通过自由空间区6402为车辆200确定导航路径。在一些实施例中,导航路径可以是通过自由空间区6402的中心的路径。在其它实施例中,导航路径可以是与第一自由空间边界6404和第二自由空间边界6406中的一个相距预定距离的路径。预定距离可以是固定距离,或可替换地,预定距离可以基于,例如,下面各项中的一个或多个来确定:车辆200的速率,自由空间区6402的宽度、和自由空间区6402之内的障碍物的数量。可替换地,导航路径可以是,例如,使用最小数量的导航响应的路径、或短路径。

在步骤6608,处理单元110可以引起车辆200在车辆200的前方的自由空间区6402之内的、所确定的导航路径的至少一部分上行驶。在一些实施例中,处理单元110可以在车辆200中引起一个或多个导航响应,以沿着所确定的导航路径导航。导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。额外地,多个导航响应可以同时发生、按顺序发生、或它们的任何组合,以沿着所确定的前进轨迹导航。例如,处理单元110可以通过,例如,顺序地向转向系统240和节流系统220发送控制信号来引起车辆200横向移动并且然后加速。可替换地,处理单元110可以通过,例如,同时向制动系统230和转向系统240发送控制信号,以引起车辆200在横向移动的同时制动。进一步,例如,自由空间边界可以以与车道标记被使用的方式相同的方式来充当局部化辅助。一旦自由空间边界被编码,它就可以描述空间中的3d曲线。在局部化阶段,该3d曲线到图像的投影可以提供局部化线索,由于它可能与该位置处的自由空间检测冲突。

在雪中导航

与所公开的实施例一致的,系统可以在恶劣的天气条件下,诸如当道路被雪覆盖时,确定道路的边缘。例如,系统可以考虑光线的变化、树线的曲线、和轮胎压痕,以确定道路边缘的可能位置。

图67是与所公开的实施例一致的、在雪覆盖至少一些车道标记和道路边缘的道路上导航的示范性车辆的图示性顶视图表示。示范性车辆可以是,例如,以上参考图2a-图2f所描述的车辆200,并且可以包括诸如车辆200的处理单元110的处理单元。前向图像捕获设备可以是,例如,车辆200的图像捕获设备122、图像捕获设备124、或图像捕获设备126。

在图67中,道路可以包括驾驶员侧车道标记6702和乘客侧车道标记6704。图67还示出非道路区域6710和道路边缘6706。在一个示例中,非道路区域6710可以是非铺砌区域、人行道、或山丘的开始处。在另一示例中,非道路区域6710可以是没有平台的区域,诸如具有急剧的垂直下降的区域(即悬崖)。

图67还示出被雪覆盖的区域6708。具体地,区域6708覆盖道路边缘6706的一部分、和车道标记6702、6704的部分。因此,通过对在车辆200的导航期间捕获的图像的分析,道路边缘6706、和/或车道标记6702、6704中的一个或多个可能不是显而易见。在这样的情形下,车辆200可以通过确定界定被雪覆盖的道路的部分的道路边缘的可能位置,基于对所捕获的图像的分析来导航。

在一些实施例中,对于道路边缘的可能位置的确定可以基于被雪覆盖的区域6708上的轮胎压痕6712。例如,轮胎压痕6712的存在可以指示具有轮胎压痕6712的、被雪覆盖的区域6708的部分在道路边缘的范围之内。在一些实施例中,车辆的处理单元可以将轮胎压痕的路径考虑作为可行的导航路径,并且可以受制于其它准则的考虑(例如,压痕是否保持在被确定为可能与道路,或更具体地,车辆行驶的车道相对应的区域之内)引起车辆跟随轮胎压痕。

在其它实施例中,对于道路边缘的可能位置的确定可以基于跨被雪覆盖的区域6708的表面的光线的改变。光线的源可以包括,例如,车辆200的头灯,来自其它车辆的光线、路灯、或太阳。跨被雪覆盖的区域6708的表面的光线的改变可以由于各种原因而发生。在一个示例中,非道路区域6710的表面粗糙度和道路的表面粗糙度可以不同;非道路区域6710可以是砾石区域,而道路可以是铺砌区域。在另一示例中,非道路区域6710和道路可以不是同高的。非道路区域6710可以是典型地高于道路的人行道;可替换地,非道路区域6710可能是山丘或悬崖。这些中的每一个可以更改雪覆盖的表面,并且可以基于在雪覆盖的表面的某些变化(例如,高度的改变,纹理的改变等等)而被识别,所述变化可能被投射遍及雪表面的阴影而被加重。

在其它实施例中,对于道路边缘的可能位置的确定可以基于沿着道路边缘的多个树(例如,形成树线)。例如,在图67中,树6714可以沿着道路边缘存在,并且即使当雪覆盖道路边缘6706时也是可见的。在树6714靠近道路边缘6714存在的情形中,树6714的位置可以被用作道路边缘的可能位置。然而,在一些情形中,树6714可以与道路边缘相距一些距离存在。因此,在一些实施例中,道路边缘的可能位置可以被确定为与树6714的位置相距一距离的位置。该距离可以是固定值,或可替换地,可以基于,例如,上个可见的道路边缘来动态地确定该距离。

在其它实施例中,对于道路边缘的可能位置的确定可以基于雪的表面的所观察到的曲率的改变。雪的表面的曲率的改变可以由于各种原因而发生。例如,当非道路区域6710和道路不同高时,雪的表面的曲率的改变可以发生。在非道路区域6710是,例如,典型地高于路面的人行道的情形中,雪可能在道路边缘6706附近堆积,从而改变道路边缘6706附近的雪的曲率。在其它情形中,非道路区域可以是山丘的开始处,并且雪的表面的曲率可以遵循在道路边缘6706处开始的山丘的曲率。在这些实施例中,可以将曲率开始改变的位置确定为道路边缘的可能位置。

图68是示出与所公开的实施例一致的、用于在雪覆盖至少一些车道标记和道路边缘的道路上导航车辆200的示范性过程6800的流程图。过程6800可以使用如上所述的用于道路边缘的可能位置来导航车辆200。

在6802,处理单元110可以从图像捕获设备接收车辆的前方的至少一个环境图像,其包括雪覆盖至少一些车道标记(例如车道标记6702、6704)和道路边缘(例如,道路边缘6706)的区域。

在步骤6804,处理单元110可以基于对至少一个图像的分析来标识覆盖有雪的道路的至少一部分、和用于界定覆盖有雪的道路的至少一部分的道路边缘的可能位置。如以上讨论的,对至少一个图像的分析可以包括标识雪中的至少一个轮胎压痕、跨雪的表面的光线的改变、和/或沿着道路的边缘的树。进一步,如以上讨论的,对至少一个图像的分析可以包括识别雪的表面的曲率的改变,其中,所识别的曲率的改变被确定为对应于道路边缘的可能位置。

在一些实施例中,对至少一个图像的分析可以包括对至少一个图像的像素分析,在所述像素分析中,比较至少第一像素和至少第二像素,以便确定与覆盖至少一些车道标记和道路边缘的雪的表面相关联的特征。例如,图像中的每个像素可以与每个相邻像素进行比较。在一些实施例中,第一像素的色彩可以与至少第二像素的色彩进行比较。可替换地,或额外地,第一像素的色彩分量的强度可以与至少第二像素的色彩分量的强度进行比较。在其它实施例中,可以比较像素的以下属性。

在一些实施例中,像素分析可以标识诸如轮胎压痕6712的边缘、或道路边缘6706的特征。用于标识这样的特征的分析可以包括标识像素属性改变的频率超过阈值频率的像素的集合。像素属性可以包括,例如,像素的色彩、和/或像素的色彩分量的强度。

在步骤6806,处理单元110可以引起车辆导航包括道路的所标识的部分并且落入道路边缘所确定的可能位置之内的导航路径。

在基于所标识的轮胎压痕6712来确定道路边缘的可能位置的实施例中,处理单元110可以引起车辆200通过至少部分地遵循在雪中的、所标识的轮胎压痕6712来导航。在基于跨被雪覆盖的区域6708的表面的光线的改变、沿着道路的边缘的多个树(例如,形成树线)、和/或雪的表面的曲率的改变来确定道路边缘(例如,道路边缘6702、6704)的可能位置的实施例中,处理单元110可以引起车辆200在道路的所确定的边缘之间导航。

而且,在通过分析在步骤6802接收到的图像的像素来确定道路的边缘的实施例中,处理单元110可以引起车辆200在道路的所确定的边缘之间导航。在通过分析在步骤6802接收到的图像的像素来确定轮胎压痕的边缘的实施例中,处理单元110可以引起车辆200通过至少部分地遵循在雪中的轮胎压痕来导航。

在一些实施例中,处理单元110可以引起在车辆200中的一个或多个导航响应,以沿着所确定的导航路径导航。导航响应可以包括,例如,转弯、车道转变、加速度的改变等等。额外地,多个导航响应可以同时发生、按顺序发生、或它们的任何组合,以沿着所确定的前进轨迹导航。例如,处理单元110可以通过,例如,顺序地向转向系统240和节流系统220发送控制信号来引起车辆200横向移动然后加速。可替换地,处理单元110可以,例如,同时向制动系统230和转向系统240发送控制信号,以引起车辆200在横向移动的同时制动。

处理单元110还可以采用额外的技术来在至少部分地被雪覆盖的道路上导航车辆。例如,在一些实施例中,可以采用一个或多个神经网络以辅助沿着被雪覆盖的道路行驶的建议路径的确定。此技术可以被称为整体路径预测(holisticpathprediction,hpp)。可以通过,例如,当用户沿着道路驾驶时所供应的图像来训练这样的神经网络。为了训练在被雪覆盖的道路的导航中神经网络,可以使用涉及被雪覆盖的道路的各种测试情形。使用当驾驶员沿着被雪覆盖的道路导航车辆时所捕获的覆盖有雪的道路的图像(可能是数千个训练图像、数百万个图像、或更多),神经网络将学习开发沿着雪的建议导航路径。该过程可以涉及建立神经网络以周期性地或连续地基于被雪覆盖的道路的观察到的特征(包括,例如,道路表面的多方面、道路的边缘、道路的侧面、出现的障碍、与道路相邻的对象、道路上的汽车等等)生成建议导航路径,并相对驾驶员的实际行为测试建议的导航路径。在建议的导航路径与驾驶员遵循的实际路径有分歧的情况下,神经网络将分析可用的图像并且对它的处理算法做出调整,以便将来在相似的情形中提供不同的响应(例如,提供更紧密匹配驾驶员的行为的建议导航路径)。一旦被训练,神经网络就可以提供在覆盖有雪的道路上的建议导航路径。通过雪的导航可以仅仅基于单一训练的神经网络的输出。

然而,在一些实施例中,可以使用其它技术来导航车辆通过雪。在一些实施例中,在本公开的另一部分中所描述的自由空间确定技术可以被用来定义车辆通过被看作自由空间的区域的前方的路径。例如,基于被捕获的图像或图像流,处理单元110可以分析多个图像中的至少一个,以标识在车辆的驾驶员侧上并且向车辆前方延伸的第一自由空间边界。可以标识在车辆的乘客侧并且向车辆的前方延伸的第二自由空间边界。可以标识在车辆的前方并且在第一自由空间边界和第二自由空间边界之间延伸的前方自由空间边界。当然,这些边界不需要是直线,而是能够用一复杂系列的曲线或线段来表示,这些曲线或线段有时勾画高度不规则的边界条件(特别是在车辆侧面)。第一自由空间边界、第二自由空间边界、和前方自由空间边界一起定义车辆前方的自由空间区。然后,处理单元110可以确定用于车辆通过自由空间区的建议的导航路径。车辆通过雪的导航可以只基于自由空间确定技术。应该注意到,可以使用一个或多个神经网络实施自由空间确定技术。在一些实施例中,实施自由空间确定技术的神经网络可以不同于实施hpp技术的神经网络。

在一些实施例中,通过雪的导航可以基于组合使用的一个或多个技术。例如,所公开的导航系统中的任何可以被一起使用以在雪中导航车辆。在一些实施例中,自由空间确定技术可以与hpp技术组合。也就是说,可以将多个被捕获的图像供应给实施自由空间技术的神经网络,以便获得用于车辆的第一建议导航路径。还可以将多个被捕获的图像供应给实施hhp技术的神经网络,以获得用于车辆的第二建议导航路径。如果处理单元确定第一建议导航路径与第二建议导航路径一致,那么处理单元可以引起车辆在所建议的导航路径中的一个的至少一部分(或所建议的导航路径的聚合)上行驶。在此背景下中,一致并不一定要求所建议的导航路径的精确匹配。相反,如果所建议的导航路径具有大于预定程度的相关性(其可以使用任何合适的比较函数来确定),则可以确定一致。

如果第一建议导航路径与第二建议导航路径不一致,则可以向用户提供提示以接管对车辆的至少一些方面的控制。可替换地,可以考虑额外的信息以便为车辆确定适当的导航路径。例如,在根据自由空间和hpp技术的建议导航路径存在不一致的情况下,处理单元110可以指望来自稀疏数据地图800的目标轨迹(连同自我运动估计或基于地标的相对于目标轨迹的当前位置的确定一起)来为车辆确定行驶的方向。也可以查阅在处理单元110上操作的其它模块的输出。例如,车辆检测模块可以提供在主车辆的环境中的其它车辆的存在的指示。这样的车辆可以被用来辅助主车辆的路径预测(例如,通过跟随前方车辆、避免停放的车辆等等)。可以查阅危险检测模块以确定具有超过阈值的高度的、路面中或沿着路面的任何边缘的存在。可以查阅弯道检测模块来定位车辆前方的弯道并且建议通过弯道的路径。也可以在处理单元110上操作的任何其它合适的检测/分析模块查阅可以辅助建立用于主车辆的有效路径的输入。

以上的描述和图示出被雪覆盖的道路;然而,在一些实施例中,道路可以被除了雪之外的(多个)对象覆盖。例如,道路可以被沙子或砾石而不是雪覆盖,并且所公开的实施例可以相似地应用于被这些对象覆盖的道路。

自主车辆速率校准

在一些情形中,车辆导航能够基于航位推算(例如,至少对于短的段),其中,车辆基于它的上个已知位置、它的速率历史、和它的运动历史来确定它的当前位置。然而,因为每个新的位置确定可能依赖可能引入某一水平的误差的平移和旋转速度的测量,所以航位推算可以引入累积误差。相似地,每个新的位置确定可能依赖于先前确定的坐标,该坐标反过来可能已经基于包括它们自己的不精确度的测量。这样的不精确度和误差可以通过各种来源(诸如例如车量速率传感器的输出)被传递到航位推算位置确定。甚至速率感测中的小的不精确度可以随时间推移而累积。例如,在一些情况下,在速率感测中的小的误差(例如,近似于1km/hr甚至更小)可以导致1千米近似1米、5米、或更多的位置确定误差。然而,这样的误差,可以通过车辆速率传感器的校准而减小或消除。根据所公开的实施例,这样的校准可以由自主车辆基于已知的地标位置或基于沿着被车辆穿越的路段的参考距离来执行。

图69是与所公开的实施例一致的、包括用于校准车辆的速率的示范性车辆的图示性顶视图表示。示范性车辆可以是,例如,以上参考图2a-图2f所描述的车辆200,并且可以包括诸如车辆200的处理单元110的处理单元。前向图像捕获设备可以包括,例如,车辆200的图像捕获设备122、图像捕获设备124、或图像捕获设备126。这样的图像捕获设备可以被配置为获得车辆200的前方、侧面、和/或后方的环境的图像。

在一些实施例中,车辆200可以包括各种传感器。这样的传感器可以包括一个或多个速率传感器、gps接收器、加速计等等。

在一些实施例中,已识别地标可以在车辆的速率校准过程中使用。这样的已识别地标可以包括,例如,在稀疏地图800中表示的那些地标。图69示出可以被用于校准车辆200的速率的地标的示例。例如,图69示出诸如交通标志6906、虚线标记6902、交通灯6908、停止线6912、反射镜6910、和灯柱6914的地标。其它地标可以包括,例如,箭头标记、方向标志、地标信标、减速带6904等等。

在一些实施例中,车辆200的处理单元110可以标识一个或多个已识别地标。处理单元110可以基于先前描述的技术中的任何来标识一个或多个已识别的可视地标。例如,处理单元110可以接收包括已识别地标的表示的、与稀疏地图800相关联的局部地图(或甚至可以接收或装载着稀疏地图800)。因为这些地标可以被索引和/或因为处理单元110可以知晓车辆200的当前位置(例如,相对于沿着路段的目标轨迹),所以当车辆200穿越路段时,处理器单元110可以预期下一预计的已识别地标。以这种方式,处理单元110甚至可以“指望”在预计出现下一已识别地标的、从图像捕获设备122接收的图像之内的特定位置。一旦在一个所捕获的图像或多个所捕获的图像之内定位了已识别地标,处理器单元110就可以验证出现在图像中的地标是预计的已识别地标。例如,可以将在所捕获的图像中的与地标相关联的各种特征与相对于已识别地标的被存储在稀疏数据地图800中的信息进行比较。这样的特征可以包括尺寸、地标类型(例如限速标志、危险标志等等)、位置、距先前地标的距离等等。如果地标的观察到的特征与相对于已识别地标的所存储的特征相匹配,则处理器单元110能够推断出所观察到的地标是预计的已识别地标。

在一些实施例中,在已识别地标被标识之后,处理单元110可以检索与已识别地标相关联的信息。信息可以包括,例如,已识别地标的位置信息。在一些实施例中,与已识别地标相关联的信息可以被存储在远程服务器上,并且处理单元110可以指示可以包括无线收发器的车辆200的无线系统检索与已识别地标相关联的信息。在其它情况下,信息可以已经驻留在车辆200上(例如,在导航期间接收的来自稀疏数据地图800的局部地图之内,或在预加载到车辆200的存储器中的稀疏数据地图800之内)。在一些实施例中,此位置信息可用于校准自主车辆(例如,车辆200的一个或多个速率传感器)的速率的一个或多个指示符。

图70是示出与所公开的实施例一致的用于校准车辆200的速率的示范性过程7000的流程图。在步骤7002,处理单元110可以从图像捕获设备122接收表示车辆200的环境的多个图像。在一些实施例中,图像可以在不同时间被图像捕获设备122捕获(例如,例如,图像可以每秒被捕获许多次)。在一些实施例中,车辆200可以包括多个图像捕获设备(例如,车辆200的图像捕获设备122和124),并且处理单元110可以从每个图像捕获设备接收表示车辆200的环境的多个图像。从每个图像捕获设备接收的多个图像可以包括在不同时间被车辆上的图像捕获设备中的一个或多个捕获的图像。

在步骤7004,处理单元110可以分析多个图像以标识在图像中出现的至少两个已识别地标。两个已识别地标不需要出现在多个图像当中的单个图像中。事实上,在许多情况中,多个图像中所标识的两个已识别地标将不会出现在相同的图像中。相反,第一已识别地标可以在从图像捕获设备接收到的第一图像中被标识。在稍后的时间,并且可能在许多图像帧之后(例如,10s,100s、或1000s的图像帧之后,或更多),第二已识别地标可以在从图像捕获设备接收的多个图像中的另一个中被识别。第一已识别地标可以被用来确定在时间t1车辆沿着目标轨迹的第一位置s1,并且第二已识别地标可以被用来确定在时间t2车辆沿着目标轨迹的第二位置s2。使用诸如s1和s2之间的测量距离的信息并且知道t1和t2之间的时间差可以使得车辆的处理器单元能够确定s1和s2之间的距离被覆盖的速率。该速率能够与基于车辆的速率传感器的输出所获得的综合速度进行比较。在一些实施例中,此比较可以得出调整/校准车辆的速率传感器以匹配基于s1至s2速率计算所确定的速率所需要的校正因子。

可替换地或额外地,处理器单元可以使用车辆的速率传感器的输出以确定s1和s2之间的基于传感器的距离读数。该基于传感器的距离读数能够与s1和s2之间的计算出的距离进行比较,以便确定校准车辆的速率传感器的适当的校正因子。

处理单元110可以根据本公开中其它地方所描述的技术中的任何来在被捕获的图像流中标识已识别地标。例如,处理单元110可以将潜在地标的一个或多个观察到的特性与被存储在稀疏数据地图800中的针对已识别地标的特性进行比较。在发现一个或多个所观察到的特性与所存储的特性相匹配的情况,然后,处理单元110可以推断出所观察到的潜在地标事实上是已识别地标。除了其它以外,这样的特性可以包括尺寸、形状、位置、到另一已识别地标的距离、地标类型、浓缩的图像签名等等。

在步骤7006,处理单元110可以基于两个已识别地标的已知位置来确定指示至少两个已识别地标之间的距离的值。例如,如以上讨论的,处理单元110可以在标识已识别地标之后检索或否则依赖与已识别地标相关联的信息。进一步,信息可以包括已识别地标的位置信息,并且处理单元110可以基于与两个地标相关联的所检索的位置信息来计算两个已识别地标之间的距离。位置信息可以包括,例如,可以基于由多个车辆根据沿着包括两个已识别地标的路段的在先穿越所做出的位置确定(例如基于gps的位置确定)的聚合来确定每个已识别地标的全局坐标。

在步骤7008,处理单元110可以基于与自主车辆相关联的至少一个传感器的输出来确定至少两个地标之间的测量的距离。在一些实施例中,处理单元110可以基于由车辆200的图像捕获设备122、惯性传感器、和/或速率计捕获的图像使用量距技术来测量两个已识别地标之间的距离。例如,如上所述,车辆的第一位置s1可以被用作起始点,并且车辆的第二位置s2可以被用作终点。可以使用在本公开的其它部分中描述的技术,分别基于所收集的第一已识别地标和第二已识别地标的图像来确定这些位置。车辆传感器(例如,速率计)能够被用来测量位置s1和s2之间的距离。该测量的距离可以与,例如,沿着车辆的预定目标轨迹的位置s1和位置s2之间的计算出的距离进行比较。

在一些实施例中,可以根据与已识别地标的特定关系来选择s1和s2。例如,可以将s1和s2选择为分别从第一地标和第二地标延伸的直线以直角与目标轨迹相交的位置。当然,还可以使用任何其它合适的关系。在根据预定关系来定义s2和s1的这样的实施例中,s2和s1之间的距离可以是已知的,并且可以例如在稀疏数据地图800中被表示(例如,作为到在前的已识别地标的距离值)。因此,在这样的实施例中,此距离值可以已经是从稀疏数据地图800可获得的,而不是必须计算s1和s2之间的距离。如在先前实施例中的,可以将s1和s2之间的预定距离与使用车辆传感器测量的s1和s2之间的距离进行比较。

例如,在一些实施例中,可以经由gps设备(例如,位置传感器130)完成两个地标之间的距离的测量。例如,可以选择彼此远离(例如,5千米)的两个地标,并且它们之间的道路可以相当直。可以,例如,通过将两个地标的gps坐标相减来测量该路段的长度。每个这样的坐标可以以几米的误差(即,gps误差)被测量,但是由于路段的长度长,所述误差可以是相对小的误差。

在步骤7010,处理单元110可以基于指示至少两个已识别地标之间的距离的值和该至少两个地标之间的所测量的距离的比较,来确定针对至少一个传感器的校正因子。校正因子可以是,例如,指示至少两个已识别地标之间的距离的值和该至少两个地标之间的所测量的距离的比率。在一些实施例中,校正因子可以被称为校准因子,并且可以表示可以被用来基于车辆的传感器将所测量的距离值变换为计算出的/预定的距离值的值。

在可选步骤中,处理单元110可以基于多个确定的校正因子来确定复合校正因子。可以基于地标的不同的集合来确定多个所确定的校正因子的校正因子。在一些实施例中,通过对多个确定的校正因子取平均、或通过找到多个所确定的校正因子的均值来确定复合校正因子。

图71是与所公开的实施例一致的、包括用于校准车辆的速率的指示符的系统的示范性车辆200的图示性顶视图表示。在图71的示例中,车辆200正在第一路段7102a上行驶。图71还示出第二路段7102b和车道标记7104、7106。路段包括道路的任何部分。

在一些实施例中,处理单元110可以使用车辆200的一个或多个传感器确定沿着路段(例如,路段7102a或7102b)的距离。在一个示例中,处理单元110可以使用车辆200的一个或多个传感器确定与车辆200正在其上行驶的路段(例如,路段7102a)相关联的道路签名轮廓。这样的道路签名轮廓可以与和路段相关联的至少一个参数的任何可辨别/可测量的变化相关联。在一些情况下,这样的轮廓可以与,例如,特定路段的表面粗糙度的变化、特定路段上的道路宽度的变化、沿着特定路段描绘的虚线之间的距离的变化、沿着特定路段的道路曲率的变化等等相关联。如以上讨论的,图11d示出示范性道路签名轮廓1160。虽然道路签名轮廓可以表示以上提到的参数中的任何,或其它,但是在一个示例中,道路签名轮廓可以表示如,例如,通过监视当车辆200在第一路段7102a上行驶时提供指示悬架位移的量的输出的一个或多个传感器所获得的对道路表面粗糙度的测量。可替换地,道路签名轮廓1160可以表示道路宽度的变化,如基于经由在第一路段7102a上行驶的车辆200的图像捕获设备122所获得的图像数据所确定的。这样的轮廓,例如,在确定自主车辆相对于特定目标轨迹的特定位置时是有用的。也就是说,在自主车辆穿越路段时,自主车辆可以测量与一个或多个参数相关联的轮廓,所述一个或多个参数与路段相关联。如果所测量的轮廓能够与描绘参数变化相对于沿着路段的位置的预定轮廓相关联/相匹配,那么可以使用所测量的轮廓和预定轮廓(例如,通过覆盖所测量的轮廓和预定轮廓的相应部分),以便确定沿着路段的当前位置,并且因此确定相对于针对路段的目标轨迹的当前位置。可以基于沿着路段确定的多个位置来确定沿着路段的距离。

图72是示出与所公开的实施例一致的用于校准车辆200的速率的指示符的示范性过程7200的流程图。在一些实施例中,车辆200可以通过基于沿着路段确定的距离和经由无线收发器接收的距离值计算校正因子来校准车辆200的速率的指示符。也就是说,可以经由稀疏数据地图800(例如,经由无线收发器)接收针对路段的预定部分的距离值,而不是基于地标确定位置s1和s2,然后计算位置s1和s2之间的距离。

在步骤7204,处理单元110可以经由无线收发器接收与路段相关联的距离值。在一个示例中,无线收发器可以是3gpp兼容的或lte兼容的收发器。可以基于由多个测量车辆做出的在先测量来确定存储在远程服务器上的与路段相关联的距离值。例如,多个车辆可以在过去已经先前在相同路段上行驶,并且将与路段相关联的所确定的距离值(例如,在两个或更多个预定参考点、地标等之间的距离值)上传到远程服务器。被存储在远程服务器上的、与路段相关联的距离值可以是由多个测量车辆确定的距离值的平均。

在一些实施例中,存储在远程服务器上的与路段相关联的距离值可以基于由至少100个测量车辆做出的在先测量来确定。在其它实施例中,存储在远程服务器上的与路段相关联的距离值可以基于由至少1000个测量车辆做出的在先测量来确定。

在步骤7206,处理单元110可以基于沿着路段的所确定的距离和经由无线收发器接收的距离值来确定用于至少一个速率传感器的校正因子。校正因子可以是,例如,使用传感器确定的沿着路段的距离和经由无线收发器接收的距离值的比率。并且,校正因子可以表示可以被用来基于车辆的传感器将所测量的距离值变换为接收到的/预定的距离值的值。

在可选步骤中,处理单元110可以基于多个所确定的校正因子来确定复合校正因子。可以基于不同的地标来确定多个所确定的校正因子的校正因子。在一些实施例中,通过对多个确定的校正因子取平均、或通过找到多个所确定的校正因子的均值来确定复合校正因子。

基于已识别地标位置确定车道分配

除了基于对相机输出的分析确定车道分配(例如,察看车辆的当前行驶车道的右边和/或左边的额外的车道)之外,系统可以基于已识别地标相对于车辆的所确定的横向位置来确定和/或验证车道分配。

图73是与所公开的实施例一致的、示范性路段的街道视图的图示性例示。如图73中所示,路段7300可以包括若干组件,所述若干组件包括道路7310、车道标记7320、地标7330、7340、和7350等等。如本领域普通技术人员将理解的,除了在示范性路段7300中描绘的组件之外,路段可以包括其它组件,所述其它组件包括更少的或额外的车道、地标等等。

在一个实施例中,路段7300可以包括可以被一个或多个车道标记7320划分为两个或更多个车道的路段7310。路段7300还可以包括诸如车辆7360的一个或多个车辆。而且,路段7300可以包括诸如7330、7340、和7350的一个或多个地标。在一个实施例中,诸如73中所示,地标可以被放置在道路7310旁边。被放置在道路7310旁边的地标可以包括,例如,交通标志(例如,诸如地标7330和7340的限速标志)、英里标记(例如,地标7350)、公告牌、出口标志等等。地标还可以包括通用目的标志(例如,与商业或信息源有关的非语义标志等等)。可替换地,地标可以被放置在道路7310上面或道路7310上方。放置在道路7310上面或上方的地标可以包括,例如,车道标记(例如,车道标记7320)、反射镜、出口标志、招牌等等。标志还能够包括在本公开中的其它地方所讨论的示例中的任何。

图74是与所公开的实施例一致的、示范性路段的鸟瞰视图的图示性例示。如图74中所示,示范性路段7400可以包括若干组件,所述若干组件包括:道路7405,车道标记7410,车辆7415,行驶路径7420,航向7425,预测路径7430,预定道路模型轨迹7435,地标7440、7455和7470,直接偏移距离7445、7460和7475,以及横向偏移距离7450和7465。如本领域普通技术人员将理解的,除了在示范性路段7300中描绘的组件之外,路段可以包括其它组件,所述其它组件包括更少的或额外的车道、地标、和车辆。

在一个实施例中,路段7400可以包括可以被一个或多个车道标记7410划分为两个或更多个车道的道路7405。路段7300还可以包括诸如车辆7415的一个或多个车辆。而且,路段7400可以包括诸如7440、7455、和7470的一个或多个地标。

在一个实施例中,车辆7415可以沿着在路径中的道路7405的一个或多个车道行驶。车辆7415已经行驶的路径在图74中被表示为已穿越的路径7420。车辆7415前进的方向被描绘为航向7425。基于车辆7145的当前位置和航向7425以及其它因素,可以确定诸如预测路径7430的车辆7415预计行驶的路径。图74还描绘可以表示车辆7415的理想路径的预定道路模型轨迹7435。

在一个实施例中,直接偏移距离7445、7406、和7475可以分别表示车辆7415与地标7440、7455、和7470之间的距离。当车辆7415直接在地标7440和7455旁边时,横向偏移距离7450、和7465可以表示车辆7415与地标7440、和7455之间的距离。

例如,两个技术可以被用来基于主车辆和地标之间的横向距离估计来计算车道的数量。作为第一示例,可以使用聚类技术。使用均值转移聚类,系统可以计算车道的数量和针对每个驾驶的车道分配。接下来,为了丰富观察的数量并且提供来自每个车道的观察,系统可以添加对相邻车道的观察(例如,如果车道的dnn网络判定存在这样的车道)。接下来,系统可以确定道路宽度并且基于计算出的车道宽度将道路分割为车道。作为第二示例,在另一技术中,基于车道的dnn网络确定车道在极(左或右)车道或在与其相邻的车道上的车辆的观看,系统可以创建地标、和极左或极右地标之间的横向距离的估计的集合。接下来,使用投票或最小二乘机制,系统可以确定地标和道路边缘之间的一致的距离估计。接下来,从到道路边缘的距离估计,系统可以提取道路宽度,并且通过将道路宽度除以在驾驶中观察到的中值车道宽度来确定车道的数量。系统可以基于主机之间的所观测到距离的二进制给每个驾驶分配车道。

图75是示出与所公开的实施例一致的、用于确定沿着路段的车辆(其可以是自主车辆)的车道分配的示范性过程7500的流程图。与此示范性过程相关联的步骤可以由图1的组件来执行。例如,与该过程相关联的步骤可以由图1中所示的系统100的应用处理器180和/或图像处理器190来执行。

在步骤7510中,至少一个处理器从相机接收表示车辆的环境的至少一个图像。例如,图像处理器128可以相机122、124、和126中的一个或多个接收表示车辆的环境的一个或多个图像。图像处理器128可以将一个或多个图像提供给应用处理器180以用于进一步分析。车辆的环境可以包括诸如路段和沿着路段的任何标志、建筑、或景观的围绕车辆的外表的区域。在一个实施例中,车辆的环境包括路段、若干车道、和至少一个已识别地标。

在步骤7520中,至少一个处理器分析至少一个图像以标识至少一个已识别地标。在一个实施例中,至少一个已识别地标包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱等等。例如,至少一个已识别地标可以包括地标7330、7340、和7350,其中每一个都是交通标志。特别地,地标7330和7340是限速标志,地标7350是英里标记标志。在另一实施例中,至少一个已识别地标包括商业标志。例如,至少一个已识别地标可以包括用于商业的公告牌广告、或标记商业位置的标志。

在步骤7530中,至少一个处理器确定车辆和至少一个已识别地标之间的横向偏移距离的指示符。在一些实施例中,车辆与至少一个已识别地标之间的横向偏移距离的指示符的确定可以基于至少一个已识别地标的已知位置。至少一个已识别地标的已知位置可以被存储在,例如,存储器140、或地图数据库160中(例如,作为稀疏地图800的一部分)。

在步骤7540中,至少一个处理器基于车辆和至少一个已识别地标之间的横向偏移距离的指示符来确定沿着路段的车辆的车道分配。例如,至少一个处理器可以基于横向偏移距离的指示符来确定车辆正在哪个车道行驶。例如,可以基于从已识别地标到最靠近已识别地标的车道边缘的横向距离的知识、从已识别地标到在道路上出现的任何车道边缘的横向距离的知识、从已识别地标到与路段相关联的目标轨迹的横向距离的知识、或从已识别地标到与路段相关联的多个目标轨迹的横向距离的知识等等,来确定车道分配。所确定的已识别地标和主车辆之间的横向偏移距离的指示符可以与这些量以及其它中的任何进行比较,然后被用来基于一个或多个算术和/或三角计算确定当前车道分配。

在一个实施例中,至少一个已识别地标包括在车辆的第一侧面上的第一已识别地标、和在车辆的第二侧面上的第二已识别地标,并且其中,沿着路段的车辆的车道分配的确定是基于车辆与第一已识别地标之间的横向偏移距离的第一指示符、和车辆与第二已识别地标之间的横向偏移距离的第二指示符。可以基于横向偏移距离的第一指示符与横向偏移距离的第二指示符的比率来确定车道分配。例如,给定关于路段上的车道数量或车道宽度的信息,如果车辆位于距离贴在道路的左边缘上的地标20英尺,且距离贴在道路的右边缘上的地标60英尺,则可以基于此比率来确定车道分配。可替换地,可以基于车辆与第一已识别地标和第二已识别地标之间的横向偏移距离的指示符单独地计算车道分配,并且可以相互检查这些单独的计算,以验证所确定的(多个)车道分配是否正确。

超级地标作为导航辅助

系统可以通过使用已识别地标辅助确定自主车辆沿着道路模型轨迹的当前位置来导航。然而,在一些情形中,地标标识可能是不明确的(例如,在存在高密度的相似类型的地标的情形)。在这样的情形中,地标可以被分组在一起,以辅助它们的识别。例如,地标的组之内的地标之间的距离可以被用来创建超级地标签名,以辅助地标的正标识。还可以使用诸如地标的组之内的地标序列的其它特征。

图76是与所公开的实施例一致的、示范性路段的街道视图的例示。如图76中所示,路段7600可以包括若干组件,所述若干组件包括道路7610、车道标记7620、车辆7630、和地标7640、7650、7660、7670、和7680等等。如本领域普通技术人员将理解的,除了在示范性路段7600中描绘的组件之外,路段可以包括其它组件,所述其它组件包括更少的或额外的车道、地标、和车辆。

在一个实施例中,路段7600可以包括可以被一个或多个车道标记7620划分为两个或更多个车道的道路7610。路段7600还可以包括诸如车辆7630的一个或多个车辆。而且,路段7600可以包括诸如地标7640、7650、7660、7670、和7680的一个或多个地标。在一个实施例中,地标可以被分配与道路7610相关联的对象/结构(例如,地标7670和7680)。沿着道路7610的地标可以包括:例如,交通标志(例如,诸如地标7670的英里标记)、公告牌(例如,地标7680)、车道标记(例如,地标7620)、反射镜,交通标志(例如,诸如地标7640、7650、和7660的出口标志)、招牌等等。在稀疏数据地图800中被标识、或否则被表示的地标可以被称为已识别地标。

一些区域,尤其在城市环境中,可以具有高密度的已识别地标。因此,在一些情况下,基于仅基于地标尺寸、形状、类型,被索引的位置等等的比较,区分某些已识别地标可能是困难的。为了进一步辅助从车辆环境的被捕获的图像之内标识一个或多个已识别地标,两个或更多个地标的组可以被指定为超级地标。这样的超级地标可以提供可以辅助标识或验证一个或多个已识别地标(例如,从地标的组当中)的额外特性。

在图76中,超级地标可以从由地标7640、7650、7660、7670、和7680组成的组,或这些地标中的两个或更多个的一些子集形成。通过将两个或更多个地标分组在一起,可以增加从遥远的有利点准确地标识组分地标的概率。

超级地标可以与一个或多个特性相关联,诸如组分地标之间的距离、组中的地标的数量、排序序列、地标组的成员之间的一个或多个相对空间关系等等。而且,这些特性可以被用来生成超级地标签名。超级地标性签名可以表示标识地标的组或甚至在组之内的单个地标的独特形式。

图77a是与所公开的实施例一致的、示范性路段的鸟瞰视图的例示。如图77中所示,示范性路段7700可以与包括道路7705,车道标记7710,车辆7715,已行驶路径7720,预定道路模型轨迹7725,地标7730、7735、7740、7745、和7750,横向偏移矢量7755,以及直接偏移矢量7760的若干组件相关联。如本领域普通技术人员将理解的,除了在示范性路段7700中描绘的组件之外,路段可以与包括更少的或额外的车道、地标、和车辆的其它组件相关联。

在一个实施例中,路段7700可以包括可以被一个或多个车道标记7710划分为两个或更多个车道的道路7705。路段7700还可以包括诸如车辆7715的一个或多个车辆。而且,路段7700可以包括诸如地标7730、7735、7740、7745、和7750的一个或多个地标。

在一个实施例中,车辆7715可以在路径中沿着道路7705的一个或多个车道行驶。车辆7715已经行驶的路径在图77中被表示为已穿越的路径7720。图77还描绘可以表示用于车辆7715的目标路径的预定道路模型轨迹7725。

在一个实施例中,直接偏移矢量可以是连接车辆7715和地标的矢量。例如,直接偏移矢量7760可以是连接车辆7715和地标7730的矢量。车辆7715和地标之间的距离可以等效于连接车辆7715和地标的直接偏移矢量的幅度。横向偏移矢量可以是连接车辆和具有地标的道路侧上的点的矢量。车辆相对于地标的横向偏移距离可以等效于横向偏移矢量的幅度,并且,当车辆7715直接在地标旁边时还可以等效于车辆7715和地标之间的距离。可以通过确定车辆与地标位于其上的道路的边缘之间的第一距离和该边缘与地标之间的第二距离的和来计算车辆7715和地标之间的横向偏移距离。

图77b提供包括由四个已识别地标:限速标志7790、停车标志7791、和两个交通灯7792和7793构成的超级地标的路段的街道水平视图。可以基于对被包括在组中的地标之间的各种关系的识别来标识被包括在超级地标组中的已识别地标中的任何。例如,在与主车辆的距离为d1处的限速标志、其后为在与主车辆的距离为d2处的停车标志、和在与主车辆的距离为d3处的两个交通灯(其中,d3>d2>d1)的序列(其可以被存储在稀疏数据图800中)可以组成超级地标的独特的、可识别的特性,其可以辅助将限速标志7790验证为,例如,来自稀疏数据地图800的已识别地标。

超级地标的成员之间的其它关系也可以被存储在稀疏数据地图800中。例如,在距已识别地标7790特定的预定距离处、并且沿着与路段相关联的目标轨迹,超级地标可以在点a、b、c、和d(各自与超级地标的成员的中心相关联)之间形成多项式7794。段长a-b、b-c、c-d、和d-a可以被确定并且可以被存储在稀疏数据地图800中,为了相对于超级地标的位置的一个或多个位置。额外地,三角形7795可以由交通灯7793、交通灯7792、和停车标志7791形成。再次,三角形7795的边长以及角度可以以相对于超级地标的位置的一个或更多个位置被引入稀疏数据地图800中。可以为三角形7796(点a,c、和d之间)和三角形7797(点a-b-c之间)确定和存储相似的信息。这样的角度、形状、和段长可以辅助从相对于超级地标的某一观看位置的超级地标的识别。例如,一旦车辆位于超级地标的可视信息被包括在稀疏数据地图800中的观看位置,车辆的处理单元就能够分析由车辆上的一个或多个相机捕获的图像,以寻找期望的形状、图案、角度、段长等等,来确定对象的组是否形成期望的超级地标。在验证所识别的超级地标时,可以基于被包括在超级地标组中的地标中的任何来着手对沿着目标轨迹的车辆的位置确定。

图78是示出与本公开实施例一致的、用于沿着路段自主地导航车辆的示范性过程7800的流程图。与此示范性过程相关联的步骤可以由图1的组件来执行。例如,与该过程相关联的步骤可以由图1中所示的系统100的应用处理器180和/或图像处理器190来执行。

在步骤7810中,至少一个处理器可以从相机接收表示车辆的环境的至少一个图像。例如,图像处理器128可以从相机122、124、和126中的一个或多个接收表示车辆的环境的一个或多个图像。图像处理器128可以将一个或多个图像提供给应用处理器180以用于进一步分析。车辆的环境可以包括诸如路段和沿着路段的任何标志、建筑、或景观的围绕车辆的外面的区域。在一个实施例中,车辆的环境包括路段、若干车道、和至少一个已识别地标。

在步骤7820中,至少一个处理器可以分析至少一个图像以标识超级地标并且从超级地标中标识至少一个已识别地标。在一个实施例中,至少一个已识别地标包括以下各项中的至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停止线、方向标志、反射镜、地标信标、或灯柱。例如,至少一个已识别地标可以包括地标7640、7650、7660、和7670,其中每一个都是交通标志。特别地,地标7640、7650、和7660是出口标志,地标7670是英里标记标志。在另一实施例中,至少一个已识别地标包括商业标志。例如,至少一个已识别地标可以包括用于商业的公告牌广告(例如,地标7680)、或标记商业的位置的标志。

如上所述,至少一个地标的标识是至少部分地基于与地标的组相关联的一个或多个地标组特性。在一个实施例中,一个或多个地标组特性可以包括地标的组的成员之间的相对距离。例如,地标组特性可以包括信息,所述信息指定将组中的每个地标与组中的其它地标中的每一个分开的距离。在另一实施例中,一个或多个地标组特性可以包括地标的组的成员的排序序列。例如,地标的组可以与序列相关联,该序列指示当从道路观看时,地标从左到右、从前到后等等出现的次序。然而在另一实施例中,一个或多个地标组特性可以包括被包括在地标的组中的地标的数量。

参考图76作为示例,地标组(或超级地标)可以由地标7640、7650、7660、7670、和7680组成。地标组可以与包括组中的每个地标与组中其它地标中的每一个之间的相对距离、组中地标的排序顺序、和地标的数量的地标组特性相关联。在图76中描绘的示例中,地标组特性可以包括指定以下各项的信息:地标7680与地标7640、7650、7660、和7670中的每一个之间的距离,地标7640与地标7650、7660、和7670中的每一个之间的距离,地标7650与地标7660和7670中的每一个之间的距离,以及地标7660与7670之间的距离。

进一步,在此示例中,排序顺序可以指示组中的地标的次序从左到右是(当从沿着道路驾驶的车辆(例如,车辆7630)的视角观看时)7680、7640、7650、7660、和7670。可替换地或额外地,排序顺序可以指示组中的地标的次序从前到后是(例如,沿着道路在路径中最早到最后穿越)首先7670、然后7640、7650、和7660、以及最后7680。而且,地标组特性可以指定此示范性地标组包括五个地标。

在一个实施例中,对至少一个地标的标识可以至少部分地基于与地标的组相关联的超级地标签名。超级地标签名可以是用于唯一地标识地标的组的签名。在一个实施例中,超级地标签名可以基于以上讨论的一个或多个地标组特性(例如,地标的数量、地标之间的相对距离、和地标的排序顺序)。

一旦基于超级地标组的所识别的特性标识了已识别地标,则已识别地标的预定特性就可以用来在导航中协助主车辆。例如,在一些实施例中,已识别地标可以被用来确定主车辆的当前位置。在一些情况下,可以相对于来自稀疏数据模型800的目标轨迹来确定主车辆的当前位置。知道相对于目标轨迹的当前位置可以辅助确定引起车辆遵循目标轨迹所需要的转向角度(例如,通过比较航向方向与在车辆相对于目标轨迹的所确定的当前位置处的目标轨迹的方向)。

可以以多种方式来确定车辆相对于来自稀疏数据地图800的目标轨迹的位置。例如,在一些实施例中,可以采用6d卡尔曼滤波技术。在其它实施例中,相对于车辆和已识别地标可以使用方向指示符。例如,在步骤7830中,至少一个处理器可以相对于车辆确定与至少一个地标相关联的方向指示符。在一个实施例中,方向指示符可以包括连接车辆和至少一个地标的线或矢量。方向指示符可以指示车辆将必须在其中行驶以到达至少一个地标的方向。例如,在图77描绘的示例性实施例中,直接偏移矢量7760可以表示与地标7730相对于车辆7715相关联的方向指示符。

在步骤7840中,至少一个处理器可以确定方向指示符与和路段相关联的预定道路模型轨迹的交叉。在一个实施例中,预定道路模型轨迹可以包括沿着路段的目标轨迹的三维多项式表示。目标轨迹可以包括用于沿着路段的指定位置的车辆的理想轨迹。在一个实施例中,至少一个处理器还可以被编程为基于车辆速度来确定沿着预定道路模型轨迹的位置。例如,至少一个处理器可以访问关于在特定时间车辆的位置和速度的信息,基于速度和从车辆在该位置以来所经过的时间来计算已行驶的估计距离,并且标识估计距离超出先前观察到的位置的、沿着预定道路模型轨迹的点。

在步骤7850中,至少一个处理器可以基于在所确定的交叉处的预定道路模型轨迹的方向来确定车辆的自主转向动作。在一个实施例中,确定车辆的自主转向动作可以包括将车辆的航向方向与在所确定的交叉处的预定道路模型轨迹进行比较。在一个实施例中,车辆的自主转向动作可以包括改变车辆的航向。在另一实施例中,车辆的自主转向动作可以包括通过分别应用加油、或制动来加速或减速,进而改变车辆的速率。

自适应自主导航

在一些实施例中,所公开的系统和方法可以提供自适应自主导航并且更新稀疏地图。例如,所公开的系统和方法可以基于用户干预来适应导航、基于由系统(例如,自我意识系统)做出的确定来提供自适应导航、基于在道路上观察到的条件是瞬时还是非瞬时来适应道路模型(例如,自适应道路模型管理器)、并且基于从一个或多个系统接收的选择性反馈来管理道路模型。以下进一步详细讨论这些自适应系统和方法。

基于用户干预的自适应导航

在一些实施例中,所公开的系统和方法可以涉及基于用户干预的自适应导航。例如,如早先的部分中讨论的,基于来自现有车辆的输入的道路模型组装可以从服务器(例如,早先讨论的服务器1230)分发到车辆。基于从自主车辆接收的反馈,系统可以确定道路模型是否需要一个或多个更新(例如,对模型的适应)以,例如,对道路情形的变化作出应对。例如,在一些实施例中,在车辆根据道路模型在路面上行驶的同时,用户可以干预以更改车辆(其可以是自主车辆)的操纵。基于用户干预的车辆的更改后的操纵可以与由道路模型提供的超驰预定的车辆的轨迹指令进行比对。进一步,所公开的系统和方法可以捕获并且存储关于超驰在其中发生的情形的导航情形信息、和/或通过一个或多个网络(例如,通过蜂窝网络和/或互联网等等)将导航情形信息从车辆传送到服务器,以用于分析。如本文所讨论的,导航情形信息可以包括以下各项中的一个或多个:车辆的位置、车辆到已识别地标的距离、观察到的条件、当日时间、由车辆的图像捕获设备捕获的图像或视频、或关于导航情形的任何其它适合的信息来源。

图79a示出与所公开的实施例一致的、车辆7902在路面7900上行驶、接近在特定位置处冬天的和结冰的道路条件7930的平面图。车辆7902可以包括提供导航特征的系统,所述导航特征包括基于用户干预来适应导航的特征。车辆7902可以包括诸如以上结合车辆200所讨论的那些组件的组件。例如,如描绘的,车辆7902可以配备有图像捕获设备122和124;可以采用更多或更少的图像捕获设备(例如,包括相机)。

如示出的,路面7900可以被细分为诸如车道7910和7920的车道。车道7910和7920被示出为示例;基于路面的尺寸和性质,例如,州际公路,给定的路面7900可以具有额外的车道。在如图79a的示例中,车辆7902正根据从道路模型(例如,沿着目标轨迹的航向方向)推导出的指令,在车道7910中行驶,并且正接近在如由,例如,位置传感器130、温控器传感器、和/或冰传感器所标识的特定的特定位置处的冬天的和结冰的道路条件7930。在用户干预以便超驰自主生成的转向指令(例如,使得车辆能够维持沿着目标轨迹的路线的指令)并且更改在车道7910中行驶的车辆7902的路线(例如,由于结冰条件而造成的转向),处理单元110可以存储导航情形信息、和/或将导航情形信息传送到道路模型系统的服务器,以用于进行可能的更新。在这个示例中,导航情形信息可以包括由位置传感器130所标识或者基于沿着目标轨迹的位置的基于地标的确定的车辆的位置、被包括在车辆中的图像捕获设备捕获的描绘车辆的环境的图像、图像流(例如,视频)、传感器输出数据(例如,从速率计,加速计等等)。

在一些实施例中,处理单元110可以通过一个或多个网络(例如,通过蜂窝网络、和/或因特网等等)经由无线数据连接将导航情形信息从车辆传送到服务器。服务器侧可以分析接收到的信息(例如,使用自动的图像分析过程)以基于检测到的用户干预来确定对稀疏数据模型800的任何更新是否有保证。在此示例中,服务器可以在图像中识别冬天的或结冰的道路条件的出现(临时或瞬时状态),因此,可以确定不改变或不更新道路模型。

图79b示出与所公开的实施例一致的、车辆7902在路面上行驶、接近行人的平面图。在图79b的示例中,车辆7902在具有行人7922的路面7900的车道7910中驾驶。如示出的,行人7922可能突然变得直接位于跨越车道7910或7920的路面7900中。在此示例中,当用户干预以超驰道路模型以便避开行人并且更改车辆7902沿着与路段相关联的目标轨迹在车道7910中行驶的操纵时,导航情形信息包括车辆沿着路段的目标轨迹的位置(例如,基于到诸如限速标志7923的已识别地标的距离d1确定的),视频或图像,包括在用户干预期间的车辆的周围的捕获条件、传感器数据等。在图79b中示出的示例中,给定跨越的行人的临时性质,服务器可以确定不改变或不更新道路模型。

虽然图79b中示出的示例描绘限速标志7923,但是其它已识别地标(未示出)可以被使用。地标可以包括,例如,在至少一个路段的环境中的任何可标识的、固定的对象,或与路段的特定部分相关联的任何可观察的特性。在有些情况下,地标可以包括交通标志(例如,限速标志、危险标志等等)。在其它情况下,地标可以包括与路段的特定部分相关联的道路特性轮廓。在先前部分中讨论了地标的各种类型的进一步示例,并且在图10中示出了一些地标示例。

图79c示出与所公开的实施例一致的、车辆在路面上行驶、与另一车辆靠得很近的平面图。在图79c的示例中,两个车辆7902a和7902b正在路面7900的车道7910中行驶。如示出的,车辆7902b在路面7900的车道7910中突然直接向车辆7902a的前面驾驶。在用户干预以超驰道路模型并更改在车道7910中行驶的车辆7902a的路线(例如,由于邻近车辆而造成的转向)的情况下,导航情形信息可以被捕获并被存储在存储器(例如,存储器140)中,并且/或被发送到服务器(例如,服务器1230),以用于对道路模型进行可能的更新。例如,在这个示例中,导航情形信息可以包括车辆7902a的位置。导航情形信息还可以包括在用户干预的时候,描绘车辆7902的环境的一个或多个图像。然而,给定另一相近的或邻近的车辆的临时性质,服务器可以不改变或更新道路模型。

图79d示出与公开的实施例一致的、车辆在路面上即将结束的车道中的行驶的的平面图。车辆7902可以从图像捕获设备122和124接收表示车道7910结束的转弯路面7900的至少一个环境图像。车道7910可以基于导致距离d2忽然缩短的车道7910最近的改变而结束。例如,作为最近在建筑工地地带的场所放置的混泥土障碍的结果,车道可以结束。作为此意外缩短的结果,鉴于车道7910的改变,用户可以干预以改变车辆7902的路线。如将在另一部分中更详细地讨论的,处理单元110识别即将结束的车道(例如,基于被捕获的在车辆前面的混凝土障碍的图像)、并且自动调整车辆的路线、并且向服务器传送导航情形信息以用于对稀疏数据模型800的可能的更新是有可能的。作为用户干预的结果,系统可以测量距离(例如c1和c2)。例如,距离c1和c2可以表示从车辆7902的侧面到车道7910的边缘的距离,所述边缘是车道约束7924、或划分车道7910/7920的路面7900的中间的虚线中心线。在其它实施例中,可以测量到车道7920(未示出)的远侧上的车道约束7924的距离。除了上述距离c1和c2之外,在一些实施例中,处理单元110还可以被配置为计算相对于与该车道相关联的一个或多个车道约束的距离w1和w2以及车道7910的中点m。当一起求和时,距离w1和w2等于在图79d中示出的测量w。

在此示例中,在用户干预以超驰道路模型来更改在车道7910中行驶的车辆7902的操纵的情况下,包括到车道约束7924的距离c1、c2、d2、w1、和w2的导航情形信息可以被捕获,并且被存储在存储器(例如,存储器140)中、和/或被发送到服务器以用于对道路模型进行可能的更新。当然,也可以收集其它导航情形信息并将其发送到服务器以用于检查。这样的信息可以包括传感器输出、被捕获的图像/图像流、车辆的位置等等。给定由混泥土障碍所标记的结束车道的永久或半永久性质,服务器可以决定改变或更新道路模型。因此,车辆可以接收引起车辆在接近新车道约束7924时遵循针对路段的新的或更新的目标轨迹的对道路模型的更新。

图80示出与所公开的实施例一致的包括系统100的示范性车辆7902的图示性侧视图表示。如示出的,车辆7902可以被诸如来自太阳和/或故障灯8004的眩光8002的视觉禁止器限制。额外地,车辆7902被描绘具有传感器8006,并且系统100能够确定是否是白天或夜晚。传感器8006可以包括,例如,ir传感器和/或加速计。例如,在用户干预以超驰道路模型来移动车辆7902以避免由太阳产生的眩光的情况下,处理单元110可以捕获反映当日时间和/或眩光的出现的导航情形信息。处理单元110可以存储导航情形信息、和/或将导航情形信息发送到服务器以用于存储和/或分析。给定眩光的临时性质,服务器可以决定不改变或更新道路模型。

图81示出与所公开的实施例一致的、表示用于基于超驰道路模型的用户干预的车辆的自适应导航的方法的示范性流程图。具体地,图81示出与所公开的实施例一致的用于车辆的自适应导航的过程8100。过程8100的步骤可以由系统100的处理单元110来执行。过程8100可以允许用户输入和基于对环境图像的分析的导航操纵。在存在偏离由道路模型规定的导航操纵的用户输入的情况下,可以根据用户输入来更改操纵,并且围绕用户输入的条件可以被捕获并且被存储和/或被发送到服务器以用于进行对道路模型的可能的更新。

在步骤8110,处理单元110可以接收车辆7902前方的区域的至少一个环境图像。例如,图像可以示出一个或多个已识别地标。如在其它地方详细讨论的,已识别地标可以在所捕获的图像中被验证,并且被用来确定沿着针对特定路段的目标轨迹的车辆的位置。基于所确定的位置,处理单元110可以引起一个或多个导航响应,例如,以维持车辆沿着目标轨迹。

在步骤8112,处理单元110可以包括确定响应于对车辆7902前方的区域的至少一个环境图像的分析的导航操纵。例如,基于针对沿着目标轨迹的车辆的基于地标的位置确定,处理单元110可以引起一个或多个导航响应以维持车辆沿着目标轨迹。

在步骤8114中,过程8100可以引起车辆7902发起导航操纵。例如,处理单元110可以向与车辆7902相关联的一个或多个系统传送指令以发起导航操纵,并且可以引起车辆7902沿着路面7900根据预定轨迹驾驶。与所公开的实施例一致的,发起指令可以被传送到节流系统220、制动系统230、和/或转向系统240。

在步骤8116,系统可以接收与由处理单元110基于稀疏数据地图800实施的导航操纵的一个或多个方面不同的用户输入。例如,到节流系统220、制动系统230、和/或转向系统240中的一个或多个的用户输入可以不同于发起的操纵,并且引起基于接收到的用户输入更改操纵的超驰。

基于用户超驰或干预条件的检测,处理单元110可以在用户干预之前、用户干预期间、和/或用户干预之后的时间收集与车辆和用户输入有关的导航情形信息。例如,处理单元110可以接收与用户输入有关的信息,所述信息包括指定由用户干预引起的以下各项中的至少一个的信息:车辆7902的转动的角度、加速的量、和制动的量等等(步骤8118)。

在步骤8118,处理单元110可以确定与车辆用户输入有关的额外的导航情形信息。导航情形信息可以包括:例如,车辆的位置、到一个或多个已识别地标的距离、由位置传感器130确定的位置、由车辆7902的图像捕获设备捕获的一个或多个图像、传感器输出等等。

在步骤8020,处理单元110可以与关于用户输入的信息有关联地将导航情形信息存储到系统100的存储器140或150中。可替换地,在其它实施例中,可以将导航情形信息发送到服务器(例如,服务器1230),以用于对道路模型进行可能的更新。可替换地,还是在其它实施例中,如果系统100确定导航情形信息与诸如涉及在车辆7902前方移动的行人或动物的、将来可能不发生的条件(例如,特殊条件或瞬态条件)相关联,则系统100可以不存储导航情形信息。系统100可以确定这样的条件不保证进一步分析,并且这可以确定不存储与瞬时条件相关联的导航情形信息。

用于自适应导航的自我意识系统

在一些实施例中,所公开的系统和方法可以提供用于自适应导航的自我意识系统。例如,服务器(服务器1230)可以向车辆分发道路模型。基于从自主车辆接收的反馈,系统可以确定道路模型是否需要一个或多个更新(例如,对模型的适应),以对道路情形的改变作出应对。例如,在一些实施例中,车辆(其可以是自主车辆)可以基于道路模型在路面上行驶,并且可以使用由自我感知系统做出的观察以便基于导航调整条件来调整车辆的导航操纵。如本文所讨论的,导航调整条件可以包括在车辆的环境中的任何可观察的或可测量的条件。系统可以至少部分地基于车辆相对于表示路段的预定模型的运动的比较来确定车辆的导航操纵。系统可以从相机接收表示车辆的环境的至少一个图像,然后基于对至少一个图像的分析来确定在车辆的环境中的导航调整条件的存在。基于此分析,系统可以在没有用户干预的情况下引起车辆基于导航调整条件的存在来调整导航操纵。系统可以存储与导航调整条件有关的信息,所述信息包括,例如,与导航调整条件有关的数据、图像、或视频。并且,系统可以将所存储的信息发送到一个或多个基于服务器的系统,以用于对是否需要对道路模型的更新的分析和/或确定。

在一些实施例中,在车辆上或在云中的系统可以标识被估计为与导航调整条件相关联的对象或条件。系统可以建立导航调整条件是否是临时的,以及道路模型是否应该被更新。系统还可以以此方式建立是否从相同区域、位置、道路、区等等的未来穿越收集进一步信息。

图82a示出与所公开的实施例一致的、车辆在具有停放的汽车的路面上行驶的平面图。具体地,图82a示出车辆7902a沿着第二车辆7902c直接停在车辆7902a的前面的路面7900,根据表示预定行驶路径8200(例如,目标轨迹)的三维样条行驶。车辆7902a可以包括提供导航特征的系统,所述特征包括允许基于用户输入的导航的特征。车辆7902a可以包括诸如以上结合车辆200所讨论的那些组件的组件。例如,如所描绘的,车辆7902a可以配备有图像捕获设备122和124;可以采用更多或更少的图像捕获设备(例如,包括相机)。

如示出的,路面7900可以被细分为诸如车道7910和7920的车道。车辆7902a可以从图像捕获设备122和124中的一个或多个接收包括停放车辆7902c的图像的至少一个环境图像。在图82a的示例中,车辆7902a正根据从道路模型(例如,沿着目标轨迹的航向方向)推导出的指令沿着路径8200在车道7910中行驶,并且正接近停放的车辆7902c。在系统由于导航调整条件,例如,为了避免停放的车辆7902c,超驰自主生成的转向指令(例如,使得车辆能够维持沿着目标轨迹的路线的指令)以调整车辆7902a的操纵的情况下,导航调整条件信息可以被捕获并且被存储在存储器(例如,存储器140)中、和/或被发送到服务器(例如,服务器1230),以用于对道路模型进行可能的更新。在此示例中,导航调整条件信息可以包括当做出自主导航改变(例如,由自我意识系统做出)时的车辆7902c的位置。车辆位置可以由位置传感器130标识,或基于沿着目标轨迹的位置的基于地标的确定。其它导航条件信息可以被包括在由被包括在车辆7902c中的图像捕获设备捕获的一个或多个描绘车辆的环境的图像(例如,包括停放车辆7902c的图像)、图像流(例如,视频)、和/或传感器输出数据(例如,从速率计,加速计等等)中。

在一些实施例中,处理单元110可以通过一个或多个网络(例如,通过蜂窝网络、和/或因特网等等)经由无线数据连接将导航情形信息从车辆传送到服务器。服务器侧可以分析接收到的信息(例如,使用自动的图像分析过程)以基于检测到的系统干预来确定对稀疏数据模型800的任何更新是否有保证。在此示例中,服务器可以识别在主车辆的目标轨迹中或附近的停放汽车的出现,并且确定停放汽车表示临时或瞬时条件。因此,服务器可以确定不改变或不更新道路模型。然而,在一些实施例中,基于车辆7902a的位置,服务器可以确定停放的汽车位于住宅区域中,并且因此可以由于车辆沿着路肩停放的可能性而改变或更新道路模型。另外,在一些实施例中,车辆上的系统100可以对对象或条件分类,并且系统100可以确定是否改变或更新道路模型。

图82b示出与所公开的实施例一致的、车辆在路面上沿着与路段相关联的目标轨迹行驶的平面图。车辆7902可以从图像捕获设备122和124接收表示车道7910结束的转弯路面7900的至少一个环境图像。车道7910中的这种改变可能是由于对道路的最近的修缮,因此可能还没有反映在稀疏数据模型800中。

在此示例中,车辆系统可以识别结束的车道并根据道路模型超驰导航,以便调整在车道7910中沿着路径8200行驶的车辆7902的操纵。例如,处理单元110可以使用利用车辆上的像机捕获的一个或多个图像识别沿着与路段相关联的目标轨迹的路径中的堵塞。处理单元110可以调整车辆的转向以离开由目标轨迹指示的路径以便避免车道约束7924。作为系统生成的导航调整的结果,导航调整条件信息(例如,包括车道7910的结束的存在,距离c1、c2、d2、r、w1、和w2等等中的任何)可以被存储在存储器中(例如,存储器140)、和/或被发送到服务器(例如,服务器123),以用于道路模型的可能的更新。此外或可替换地,在一些实施例中,导航调整条件信息可以包括基于由位置传感器130确定的数据的车辆7902的位置、和/或车辆7902相对于一个或多个已识别地标的位置。

服务器侧可以分析接收到的信息(例如,使用自动的图像分析过程)以基于检测到的系统干预来确定对稀疏数据模型800的任何更新是否有保证。在一些实施例中,基于接收到的导航调整条件信息,服务器可以或可以不更新道路模型。例如,给定伴随车道转变的结束车道的永久性质,服务器可以决定有必要改变或更新道路模型。因此,服务器可以修改道路模型,以便在接近车道约束7924时转向或转动,以在这些距离c1、c2、d2、w1、和w2处合并。还可以基于接收到的、重建的、和当车辆7902导航通过结束车道时被它采取的实际的轨迹来更新模型。额外地,目标轨迹可以被默认为车辆7902的路径,而不是将车辆7902的实际路径与针对特定路段的、被存储在稀疏数据模型800中的其它轨迹聚合(例如,通过对被存储在稀疏数据模型800中的其它轨迹和车辆7902的路径取平均)。也就是说,因为服务器可以确定导航改变的原因是非瞬时(或半永久)条件,所以对于特定路段车辆7902的路径可以比在条件存在之前收集到的、针对路段的其它轨迹更准确。在接收不是基于由自我意识车辆系统而是基于由用户干预(上述)的控制的导航修改时,也可以采用相同的方案和分析。

图82c示出与所公开的实施例一致的、车辆正在路面上行驶、接近行人的平面图。在图82c的示例中,车辆7902正在具有行人7926的路面7900的车道7910中驾驶。如示出的,行人7926可以被直接放置在路面7900中,或可替换地,被放置在路面7900的边上。车辆7902可以根据基于道路模型(例如,沿着目标轨迹的航向方向)推导出的指令在车道7910中行驶,并且可以接近行人7926。车辆7902可以从图像捕获设备122和124接收包括行人7926的图像的至少一个环境图像。在系统干预以超驰道路模型来调整在车道7910中行驶的车辆7902的操纵以避免行人7926的情况下,包括,例如,到停车标志的距离d1、和/或描绘行人7926的捕获图像的导航调整条件信息可以被捕获并且被存储在存储器(例如,存储器140)中和/或被发送到服务器(例如,服务器1230),以用于对道路模型进行可能的更新。服务器侧可以分析接收到的信息(例如,使用自动的图像分析过程)以基于检测到的系统干预来确定对稀疏数据模型800的任何更新是否有保证。在这个示例中,给定行人的临时性质,服务器可以确定不改变或不更新道路模型。

可选地,在一些实施例中,当系统不确信地确定干预的起因时,或当起因的性质不清楚或固有地不恒定或不稳定时,服务器可以发出警报和/或提供一个、两个、或更多个替换的路径或道路模型。在这样的实施例中,服务器可以引起车辆上的系统检查地面上的情形,所述情形包括何时车辆到达偏差或干预发生的地点。服务器还可以提供干预的怀疑和/或验证的原因的位置,以允许系统集中在该区域上。因而,系统可以具有更多的时间和更多的信息来评估情形。

图82d示出与所公开的实施例一致的、车辆在路面上行驶接近建筑工地的区域的平面图。如示出的,车辆7902在建筑工地区域8200d直接位于车辆7902的前面的路面7900上沿着与路段相关联的目标轨迹(例如,根据表示预定目标轨迹8200的三维样条)行驶。车辆7902可以从图像捕获设备122和124接收包括建筑工地区域8200d的图像的至少一个环境图像。在系统干预以超驰基于道路模型生成的一个或多个导航操纵以便避免建筑工地区域8200d的情况下,可以存储导航调整条件信息。这样的信息可以包括,例如,建筑工地区域8200d的存在(例如,如在一个或多个被捕获的图像中所描绘的)。还可以将导航调整条件信息发送到服务器(例如,服务器120),以用于对稀疏数据模型800进行一个或多个可能的更新。在一些实施例中,导航调整条件信息可以包括基于,例如,位置传感器130、和/或在调整的时候已知地标相对于车辆7902的位置的车辆7902的位置。服务器侧可以分析接收到的信息(例如,使用自动的图像分析过程)以基于检测到的系统干预来确定对稀疏数据模型800的任何更新是否有保证。在此示例中,由于路面建筑工地的非瞬时性质(非瞬时性可以指代可能比预定的时间段更长的存在的条件,包括,例如,数个小时、一天、一周、一月、或更长时间),服务器可以确定改变或更新道路模型。

图83示出与所公开的实施例一致的、表示用于基于车辆的自我意识导航的模型自适应的方法的示例性流程图。具体地,图83示出可以被系统100的处理单元110执行的过程8300。如以下讨论的,过程8300可以使用定义预定车辆轨迹8200的道路模型。在操纵偏离基于预定模型车辆轨迹8200开发的导航操纵的情况下,关于导航调整条件的模型和信息可以被捕获并且被存储和/或被发送到服务器(例如,服务器1230),以用于对道路模型进行可能的更新。

在步骤8310,处理单元110可以基于车辆位置位相对于与路段相关联的预定模型的比较来确定导航操纵。如在其它地方详细讨论的,已识别地标可以在所捕获的图像中被验证,并且被用来确定沿着针对特定路段的目标轨迹的车辆的位置。基于所确定的位置,处理单元110可以引起一个或多个导航响应,例如,维持车辆(例如,转向车辆)沿着目标轨迹的导航操纵。

在步骤8312,处理单元110可以接收车辆7902前方的区域的环境图像。例如,处理单元110可以接收包括停放的车辆,具有道路弯曲、或提供指示例如路面车道结束、行人、和/或建筑工地区域的信息的转弯路面半径r的车道约束的车辆7902的环境的图像。

在步骤8314,处理单元110可以确定导航调整条件的存在。导航调整条件可以响应于对在车辆7902前方的区域的至少一个环境图像的分析被确定,并且可以包括例如在车辆7902a前面的停放的汽车,提供指示例如在车道7910中的建筑工地区域的信息的具有转弯半径r的路面弯曲。这些当然是示例,并且所捕获的图像可以包括可以保证在远离被包括在稀疏数据模型800中的目标轨迹的导航中的调整的、车辆环境之内的大量条件中的任何。

在步骤8316,处理单元110可以引起车辆7902基于导航调节条件来调整导航操纵。例如,处理单元110可以引起车辆7902改变航向方向远离目标轨迹的方向,以便避免停放的汽车、道路建筑工地地址、行人等。与所公开的实施例一致的,指令可以被传送到节流系统220、制动系统230、和/或转向系统240,以便引起对基于稀疏数据模型800生成的一个或多个导航操纵的调整。

在步骤8318,处理单元110可以将与导航调整条件信息有关的信息存储到系统100的存储器140或150中。这样的信息可以包括在导致离开稀疏数据模型800的目标轨迹的导航调整的时候,捕获的车辆的环境的一个或多个图像。信息还可以包括车辆的位置、与车辆相关联的一个或多个传感器的输出等等。

在步骤8320,处理单元110可以将导航调整条件信息发送到道路模型管理系统(例如,服务器1230),以用于分析和潜在地更新表示路面的预定模型。

自适应道路模型管理器

在一些实施例中,所公开的系统和方法可以提供自适应道路模型管理器。可以由服务器(例如,服务器1230)来提供自适应道路模型管理器,所述服务器可以从车辆接收数据,并且如果来自期望的车辆导航操纵的调整不是由于瞬时条件造成的,则服务器可以决定是否对道路模型做出更新。车辆可以通过一个或多个网络(例如,包括通过蜂窝网络和/或因特网)使用无线数据连接向服务器传送关于与道路模型的导航偏离的数据。例如,服务器可以从多个自主车辆中的每一个接收与对确定的导航操纵的调整的发生相关联的导航情形信息。服务器可以分析导航情形信息,并基于对导航情形信息的分析来确定对所确定的导航操纵的调整是否是由于瞬时条件。在一些实施例中,服务器可以从由车辆提供的原始数据检测导航操纵(例如,通过处理图像数据)。如果对所确定的导航操纵的调整不是由于瞬时条件造成的,则服务器可以更新表示至少一个路段的预定模型。如本文所讨论的,瞬时条件是在预定时间段(例如,少于几小时、一天、或一周或更多)之后预计要改变的任何条件,从而对道路模型的更新是不保证的或不想要的。可以预计这样的瞬时条件在预定时间段之后肯呢个不会出现,因此服务器可以确定不改变或不更新道路模型。相反,如果服务器确定调整不是由于瞬时条件造成的,则服务器可以确定更新道路模型。

在一些实施例中,当检测到导航操纵时,服务器可以将道路模型的表示区域标记为与被怀疑的改变相关联。然后,服务器可以确定从来自相同位置或附近位置处的进一步更新(例如,在一些实施例中从在该位置或附近的车辆“拉”这样的更新)来确定,并且可以处理数据以企图验证该改变。当改变被验证时,服务器可以更新模型,并且可以随后通信传达各个区域的更新后的模型,替换模型的以前版本。服务器可以实施置信水平,从而当置信水平高于某一水平时发生更新。置信水平可以与操纵的类型,两个或更多个操纵之间的相似性,对调整的来源的标识,一致更新的频率,以及不一致更新的比率的数量,诸如天气、城市vs农村环境等等的环境条件相关联。在确定置信水平时,也可以考虑到操纵的原因的严重性。如果操纵是剧烈的(例如,急转弯)并且原因可能与潜在的天气情形相关联,则在一些实施例中,能够使用更少的限制性批准过程。

图84a示出与所公开实施例一致的、车辆在具有多个停放的汽车的路面上行驶的平面图。如示出的,车辆7902a正沿着另一车辆7902c直接停放在车辆7902a的前面的路面7900,根据道路模型的目标轨迹(例如,表示行驶8400的预定路径的三维样条)行驶。路面7900可以被细分为诸如车道7910和7920的车道。在系统或用户干预以超驰基于道路模型生成的导航操纵并且调整沿着路径8400在车道7910中行驶的车辆7902的操纵以避免停放的车辆7902c的情况下,包括例如,在车道7910中的停放的汽车7902c的存在(例如,如在由车辆7902a的图像捕获设备捕获的一个或多个图像中所描绘的)的导航情形信息可以被传送到服务器(例如,服务器1230)以用于分析。

服务器侧可以分析接收到的信息(例如,使用自动图像分析过程),以基于调整是否是由于瞬时条件来确定对稀疏数据模型800的任何更新是否被保证。在调整不是由于瞬时条件的存在的情况下,道路模型可以被更新。例如,在所经历的条件被确定为可能持续超出预定的时间阈值(例如,几个小时、一天、或一周或更多),那么可以对模型进行更新。在一些实施例中,用于确定瞬时条件的阈值可以取决于确定条件发生的地理区、在遇到条件的路段行驶的车辆的平均数量、或任何其它合适的准则。例如,在诸如农村区的包括可能遇到道路相关的条件的更少的车辆的地理区中,用于做出瞬时或非瞬时确定的时间阈值可以比包括在特定时间段上可能遇到道路有关的条件的更多的车辆的另一地理区(例如,城市环境)更长。也就是说,随着行驶路段的车辆的平均数量增加,用于做出瞬时性确定的时间阈值可以更低。这样的方案可以减小在城市环境中行驶的汽车的数量,所述汽车需要依赖它们的内部系统(相机、传感器、处理器等等)来识别保证与基于稀疏模型800的所期望的导航响应不同的导航响应的道路条件。同时,在更低交通量的区域中的更长的瞬时性时间阈值可以减小模型被改变以对所经历的道路条件作出应对,并且在较短时间之后(例如,数小时,一天等等之内),例如,在所经历的道路条件不再存在之后,需要改变回原始状态的可能性。

相反,在导航调整被确定是响应于瞬时条件的情况下,服务器可以选择不对道路模型作出任何更新。例如,在系统或用户干预以将车辆7902a导航到车道7920中以避免停放在紧邻车道7910的肩部的车辆7902c(图84a)的情况下,在第i个系统或用户导航主车辆以避免干预汽车7902d(图84b)的情况下,其中系统或用户导航主车辆以避免临时障碍8402(诸如如图84c中所示的倒下的树),或在系统或用户导航主车辆以避免指定临时道路施工的标记8200d(图84d)的情况下,在系统或用户导航主车辆以避免在路面中出现的坑洞8502(图85a)的情况下,在系统或用户导航主车辆以避免行人8504或在路面中的行人(图85b)的情况下,服务器可以在每种情况下确定所经历的条件构成不保证对稀疏数据模型800的更新的瞬时条件。

在一些情况下,如上所述,基于某些道路条件的存在的可能的时间的确定(少于几小时、一天、一周等等),某些道路条件可以被分类为瞬时。在其它情况下,某些道路条件是否是瞬时的道路条件的确定可以是基于除了时间之外的或而不是时间的因素。例如,在一个或多个图像中所捕获的坑洞的情况下,服务器(或与主车辆相关联的处理单元)可以确定坑洞的深度,其可以辅助确定坑洞是否表示瞬时条件,以及,因此,是否应该鉴于坑洞来更新稀疏数据模型800。如果坑洞8502被确定为具有如果被驾驶通过可能导致对主车辆的潜在损坏的深度(例如,近似大于3cm、5cm、10cm、或更大的深度),则坑洞可以被分类为非瞬时的。相似地,如果坑洞8502位于已知道路修复有点缓慢(例如,需要多于一天、一周、或更长时间来修理)的地理区中,则坑洞可以被分类为非瞬时的。

对特定道路条件是否构成瞬时条件的确定可以是完全自动化的,并可以由一个或多个基于服务器的系统来执行。例如,在一些实施例中,一个或多个基于服务器的系统可以基于由在主车辆上的像机捕获的一个或多个图像采用自动图像分析技术。在一些实施例中,图像分析技术可以包括被训练为识别某些形状、道路特征、和/或对象的机器学习系统。例如,服务器可以被训练以在图像或图像流中识别混凝土障碍的出现(可能指示非瞬时建筑工地或车道分离条件的存在),道路的表面中的坑洞(取决于大小、深度等等的可能的瞬时或非瞬时条件),与行驶的期望路径相交的道路边缘(潜在地指示非瞬时车道转变或新交通模式),停放的汽车(潜在的瞬时条件),道路中的动物形状(潜在的瞬态条件),或任何其它相关的形状、对象、或道路特征。

服务器采用的图像分析技术还可以包括确定与图像中呈现的文本相关联的含义的文本识别组件。例如,在文本在来自主车辆的环境的一个或多个上传的图像中出现的情况下,服务器可以确定图像中是否存在文本。如果文本存在,则服务器可以使用诸如光学字符识别的技术来帮助确定文本是否与主车辆的系统或用户引起的导航操纵与基于稀疏模型800的期望的导航操纵不同的原因有关。例如,在标志在图像中被标识并且该标志被确定为包括文本“前方新交通模式”的情况下,该文本可以帮助服务器确定所经历的条件具有非瞬时性质。相似地,诸如“前方道路封闭”或“断桥”的标志也可以帮助指示非瞬时条件的呈现,对于所述非瞬时条件,对稀疏道路模型的更新可以是合理的。

当确定所经历的道路条件是否为瞬时的时,基于服务器的系统还可以被配置为考虑其它信息。例如,服务器可以确定在特定的时间量内在路段行驶的车辆的平均数量。这样的信息在确定临时条件在预计条件会持续的时间量内可能会影响的车辆的数量方面可以是有帮助的。被条件影响的车辆的更高的数量可以建议应该更新稀疏地图的确定。

在一些实施例中,对特定道路条件是否构成瞬时条件的确定可以包括至少一些水平的人类辅助。例如,除了上述自动特征之外,人类操作者还可以参与检查从一个或多个车辆上传的信息、和/或确定鉴于接收到的信息是否应该更新稀疏数据模型800。

图86示出与所公开的实施例一致的、表示用于自适应道路模型管理器的方法的示例性流程图。特别地,图86示出与所公开的实施例一致的、用于自适应道路模型管理器的过程8600。可以由服务器(例如,服务器1230)来执行过程8600的步骤,该服务器可以通过一个或多个网络(例如,蜂窝、和/或互联网等等)从多个自主车辆接收数据。

在步骤8610,服务器可以从多个自主车辆中的每一个接收与对所确定的导航操纵的调整的发生相关联的导航情形信息。导航情形信息可以源于超驰道路模型的系统或用户发明。导航情形信息可以包括表示车辆7902的环境的至少一个图像或视频。在一些实施例中,导航情形信息还可以包括车辆7902的位置(例如,如由位置传感器130、和/或基于车辆7902到已识别地标的距离所确定的)。

在步骤8612,服务器可以分析导航情形信息。例如,服务器侧可以分析接收到的信息(例如,使用自动图像分析过程)来确定在表示车辆7902的环境的至少一个图像或视频中描绘了什么。该分析可以包括对以下各项的存在的标识:例如,停放的汽车、干预汽车、诸如直接在车辆前面的倒下的树的临时障碍、道路施工、弱光条件、眩光条件、坑洞、动物、或行人。

在步骤8614,服务器可以基于对导航情形信息的分析来确定对所确定的操纵的调整是否是由于瞬时条件造成的。例如,瞬时条件可以包括以下各项的情况:第二车辆直接停放在车辆前面、一车辆直接插入车辆前面、诸如直接位于车辆前面的倒下的树的障碍、弱光条件、眩光条件、坑洞(例如,有最小深度的坑洞)、动物、或行人。

在步骤8616,过程8600可以包括如果对所确定的导航操纵的调整不是由于瞬时条件造成的,则服务器更新表示至少一个路段的预定模型。例如,可以是非瞬时的条件可以包括大量的坑洞、长期和/或广阔的道路施工等等。该更新可以包括对表示沿着至少一个路段行驶的预定路径的三维样条的更新。

基于选择性反馈的道路模型管理

在一些实施例中,所公开的系统和方法可以基于从一个或多个车辆接收的选择性反馈来管理道路模型。如在早先的部分中讨论的,道路模型可以包括目标轨迹(例如,表示沿着路段行驶的预定轨迹的三维样条)。与所公开的实施例一致,服务器(例如,服务器1230)可以从自主车辆选择性地接收道路环境信息,以便更新道路模型。如本文所使用的,道路环境信息可以包括与和道路或路段相关联的可观察的或可测量的条件有关的任何信息。服务器可以基于各种准则选择性地接收道路环境信息。相对于所公开的实施例,选择性地接收信息可以指代基于服务器的系统限制从一个或多个自主车辆到服务器的数据传输的任何能力。对从一个或多个自主车辆的数据传输施加的这样的限制可以基于任何合适的准则来进行。

例如,在一些实施例中,服务器可以限制将道路环境信息从特定车辆、车辆的组、和/或在特定地理区之内行驶的车辆上传到服务器的频率。可以基于与特定地理区相关联的所确定的模型置信水平来施加这样的限制。在一些实施例中,服务器可以将从自主车辆的数据传输限制为仅仅包括建议相对于道路模型的至少一个方面的潜在差异的信息的那些传输(例如,这样的信息可以被确定为提示对模型的一个或多个更新)。服务器可以基于从自主车辆选择性接收的道路环境信息来确定是否要求对道路模型的一个或多个更新,并且可以更新道路模型以包括该一个或多个更新。以下讨论服务器选择性地从自主车辆接收道路环境信息的示例。

图87a示出与所公开的实施例一致的、车辆在州际公路上行驶的平面图。如示出的,车辆7902正在沿着与州际公路7900相关联的的预定行驶路径8700(例如,根据道路模型的目标轨迹)行驶。如示出的,公路7900可以被细分为诸如车道7910和7920的车道。服务器可以基于由车辆7902通过诸如公路7900的道路环境的导航,来选择性地接收道路环境信息。例如,道路环境信息可以包括:由车辆7902的图像捕获设备捕获的一个或多个图像;表示通过,例如,使用位置传感器130、和/或基于车辆7902相对于已识别地标的位置所确定的车辆7902的位置的位置信息;来自与车辆7902相关联的一个或多个传感器的输出等等。基于道路环境信息,服务器可以确定是否要求更新道路模型。

在图87中示出的示例中,单个的特定车辆7902被示出正沿着州际公路7900行驶并且遵循目标轨迹8700。图87b示出车辆7902e、7902f、7902g、和7902h的组正沿着城市道路7900行驶并且遵循可以与,例如,道路7900的车道7910和7920相关联的目标轨迹8700a和8700b的平面图。图87c示出车辆7902i在道路7900上的农村地理区8722之内行驶的平面图。图87d示出车辆7902在包括新修改的交通模式的道路7900上行驶。例如,一旦车道7910可能已经延伸到车辆7902的前方,则在车道7910现在在车辆7902的前方到达尽头的地方可以存在新交通模式。

与在这些情形以及其它中的任何情形下的车辆7902的导航有关的信息,可以被收集并且被上传到维护稀疏数据地图800的一个或多个基于服务器的系统。基于接收到的信息,服务器可以分析是否需要对稀疏数据地图800的一个或多个更新,并且如果更新被确定为是合理的,则服务器可以对稀疏数据地图800进行更新。在一些实施例中,可以由服务器经由对由车辆7910上的相机捕获的图像进行的自动图像分析、对传感器和位置信息的自动检查、对从多个自主车辆接收的信息的自动互相关等等,来自动地执行分析和更新。在一些实施例中,与基于服务器的系统相关联的操作者可以帮助对从自主车辆接收到的信息的检查、以及对基于接收到的信息的是否需要对稀疏数据模型800的更新的确定。

在一些实施例中,服务器可以被配置为从所有可用的自主车辆接收导航信息。进一步,可以基于预定协议将该信息上传到服务器。例如,可以通过流数据馈送上传信息。额外地或者可替换地,信息可以以预定的周期性频率(例如,每秒数次、每秒一次,每分钟一次,每数分钟一次,每小时一次,或任何其它合适的时间间隔)被上传到服务器。该信息还可以基于车辆导航的多方面被上传到服务器。例如,当车辆从一个路段移动到另一路段时、或当车辆从与稀疏数据地图800相关联的一个局部地图移动到另一局部地图时,导航信息可以从车辆被上传到服务器。

在一些实施例中,服务器可以被配置为选择性地控制从一个或多个自主车辆的导航信息的接收。也就是说,服务器可以限制它从一个或多个可用自主车辆接收的信息量,而不是从所有可用自主车辆接收所有可用导航信息。以这种方式,服务器可以减小与可用自主车辆通信所需要的带宽量。对来自自主车辆和服务器的信息流的这样的选择性控制还可以减小处理从自主车辆传入的通信所要求的处理资源量。

自主车辆和服务器之间的信息流的选择性控制可以基于任何合适的准则。在一些实施例中,选择性可以基于车辆正在穿越的道路的类型。参考图87a中示出的示例,车辆7902正在穿过州际公路,其可能是交通繁忙的道路。在这样的情形中,服务器可能已经累积大量与州际公路有关的导航信息,州际公路的各种车道、与道路相关联的地标等等。在这样的环境中,继续接收从沿着州际公路行驶的每个车辆上传的全部信息可能不会对在稀疏数据图800中所表示的道路模型的显著的或进一步的完善做出贡献。因此,服务器可以限制、或沿着某一类型的道路或特定路段行驶的自主车辆可以限制被上传到服务器的信息的量或类型。

在一些实施例中,服务器可以完全放弃从沿着特定的州际公路、交通繁忙的城市道路、或者稀疏数据模型800被确定为不要求额外的完善的任何其它道路行驶的车辆的自动信息上传。反而,在一些实施例中,服务器可以选择性地从沿着这样的道路行驶的车辆获取数据,作为用于周期性地确认稀疏数据地图800沿着所选择的道路保持有效的手段。例如,服务器可以询问被确定为正沿着州际公路、交通繁忙的路段等等行驶的一个或多个车辆,以从所询问的车辆收集导航信息。此信息可以包括与以下各项有关的信息:沿着公路的车辆的重建的轨迹、公路上的车辆的位置、来自车辆的传感器信息、来自车辆上的相机的被捕获的图像等等。使用此技术,服务器可以在没有数据传输和/或数据处理资源的不必要的使用的情况下,周期性地监视公路的状态,并且确定是否需要对稀疏数据模型800的更新。

在一些实施例中,服务器还可以基于组内被确定为正沿着公路行驶的汽车的数量来选择性地控制来自自主车辆的数据流。例如,在自主车辆的组(例如,两个或更多个车辆)被确定为会在另一车辆的某一接近度之内行驶(例如,在100米、1千米、或任何其它合适的接近度包络)时,信息上传可以受限于组中的任何成员。例如,服务器可以将信息传递限制到组的仅仅一个成员、组的成员的任何子集、来自道路的每个车道组的一个成员等等。

在一些实施例中,服务器还可以基于地理区选择性地控制来自自主车辆的数据流。例如,一些地理区可以包括稀疏数据模型800已经针对其包括完善的目标轨迹、地标表示、地标位置等等的路段。例如,在某些地理区(例如,城市环境、交通繁忙的公路等等)中,可以基于在数据收集模式中由车辆进行的各种路段的多次穿越来生成稀疏数据模型800。每个穿越可以导致与地理区中的路段有关的额外的数据,可以根据所述数据来完善稀疏数据模型800。在一些情况下,针对某些地理区的稀疏数据地图800可以基于各种路段的100、1000、10000、或更多个在先的穿越。在那些区中,从一个或多个自主车辆接收到的额外的信息可能不充当对稀疏数据模型的进一步、显著的完善的基础。因此,服务器可以限制从驶入某些地理区的车辆的上传。例如,在一些情况下,服务器可以阻止从驶入所选择的地理区的车辆的道路数据的所有自动传输。在其它情况下,服务器可以使得从驶入某一地理区的车辆(例如,2个车辆中的1个、5个车辆中的1个、100个车辆中的1个等等)中的仅仅一部分车辆能够进行数据的传输。在其它情况下,服务器可以仅仅从服务器标识并查询更新的道路信息的地理位置中的那些车辆接收传输。服务器能够使用从来自某一地理区的车辆的任何部分接收的信息来验证和/或更新稀疏数据模型800的任何方面。

在一些实施例中,服务器还可以基于分配给特定局部地图、路段、地理区等等的置信水平来选择性地控制来自自主车辆的数据流。例如,与地理区示例相似,某些路段、局部地图、和/或地理区可以与指示,例如,那些区中的稀疏数据图800的完善的水平的置信水平相关联。服务器可以限制来自在与高于预定阈值的置信水平相关联的任何道路、局部地图区域、或地理区上行驶的车辆的道路信息的传输。例如,在一些情况下,服务器可以阻止来自在具有高于预定阈值的置信水平的区中行驶的车辆的道路数据的所有自动传输。在其它情况下,服务器可以使得来自在那些区中行驶的车辆中的仅仅一部分车辆(例如,2个车辆中的1个、5个车辆中的1个、100个车辆中的1个等等)能够进行数据的传输。在其它情况下,服务器可以仅仅从服务器标识并查询更新的道路信息的高置信区域(包括高于预定阈值的置信水平的区域)中的那些车辆接收传输。服务器能够使用从来自高置信水平区的车辆的任何部分接收到的信息来验证和/或更新稀疏数据模型800的任何方面。

在一些实施例中,服务器还可以基于被包括在将要被特定自主车辆上传的导航信息之内的信息的类型,选择性地控制来自自主车辆的数据流。例如,在许多情况下,从各种主车辆上传到服务器的道路信息可能不会显著地影响稀疏数据模型800。例如,在高置信水平的地理区域或路段等等中,来自穿越车辆的额外的道路信息对于验证稀疏数据模型800的持续的准确性可能是有用的,但是这样的信息可能不提供对于稀疏数据模型800的额外的显著的完善的潜力。因此,验证稀疏数据模型800但是不提供对于稀疏数据模型800的显著的进一步完善的潜力的信息的继续传输可以消耗数据传输和处理资源,而没有显著的好处的潜力。

在这样的情况下,对于服务器,限制从车辆的数据发送可能是想要的。服务器可以将来自车辆的数据传输仅仅限制于经历可能影响稀疏道路模型800的情形的数据传输,而不是从所有(或甚至一部分)可用车辆自动地接收数据传输。例如,在穿越路段的车辆经历要求偏离稀疏数据模型800所预期的导航响应的导航响应的情况下(例如,车辆必须行驶不同于针对路段的目标轨迹的路径的情况下),然后处理单元110可以确定这样的偏离已经发生并且可以将该信息中继到服务器。作为响应,服务器可以向车辆查询与导航偏离相关的信息,从而服务器能够确定是否需要对稀疏数据模型800进行任何更新。换句话说,服务器可以选择仅仅在信息建议可能需要对稀疏数据模型800进行改变的情况下从车辆接收道路信息。

图88示出与所公开实施例一致的、表示针对基于选择性反馈的道路模型管理的方法的示例性流程图。过程8800的步骤可以由服务器(例如,服务器1230)执行。如以下讨论的,过程8800可以涉及选择性地接收反馈以基于来自自主车辆的道路环境信息潜在地更新道路模型。

在步骤8810,服务器可以基于来自多个自主车辆通过它们各自的道路环境的导航来选择性地接收道路环境信息。例如,服务器可以选择性地对从以下各项接收的信息传输的频率施加限制:从特定车辆、从车辆的组、从在特定地理区之内行驶的车辆、或从基于与特定地理区相关联的所确定的模型置信水平的车辆。进一步,在一些实施例中,服务器可以选择性地将来自车辆的数据传输仅仅限制于反映相对于预定道路模型的至少一个方面的潜在差异的那些传输。

在步骤8812,服务器可以基于道路环境信息来确定是否要求对道路模型的一个或多个更新。如果服务器基于从一个或多个自主车辆选择性地接收到的信息确定对道路模型的更新是合理的,则可以在步骤8814进行这些更新。

为了例示的目的,已经呈现了前述描述。这不是详尽的,并且不限于所公开的精确形式或实施例。根据对所公开实施例的说明书和实践的考虑,修改和改编对于本领域技术人员来说将是清楚的。额外地,虽然所公开的实施例的多方面被描述为被存储在存储器中,但是本领域技术人员将领会这些方面还能够被存储在诸如辅助存储设备的其它类型的计算机可读介质,例如,硬盘或cdrom、或其它形式的ram或rom、usb介质、dvd、蓝光、4k超hd蓝光、或其它光驱介质。

基于书面描述和所公开的方法的计算机程序是有经验的开发人员的技能之内。能够使用本领域技术人员已知的技术中的任何来创建各种程序或程序模块,或能够结合现有的软件设计各种程序或程序模块。例如,能够借助.netframework、.netcompactframework(和诸如visualbasic、c等等的相关语言)、java、c++、objective-c、html、html/ajax组合、xml、或包含javaapplet的html来设计程序段或程序模块。

而且,虽然本文已经描述了例示性实施例,但是基于本公开,本领域技术人员将领会具有等同元件、修改、省略、组合(例如,跨越各种实施例的方面)、适配、和/或更改的任何和所有实施例的范围。基于在权利要求中采用的语言,权里要求中的限制将被广泛地解释,并且不限于在本说明书或申请的起诉期间描述的示例。示例将要被解释为非排它性的。而且,可以以任何方式修改所公开的方法的步骤,包括通过对步骤重新排序、和/或插入、或删除步骤。因此,意图是,说明书和示例被认为仅仅是例示性的,由所附权利要求和等同物的全部范围指示的真实范围和精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1