首页 / 专利库 / 心理学与精神病学 / 构音障碍 / 基于规则的导航

基于规则的导航

阅读:188发布:2021-09-07

专利汇可以提供基于规则的导航专利检索,专利查询,专利分析的服务。并且在一个 实施例 中,一种用于主车辆(200)的 导航系统 (100)可以包括至少一个处理设备(110)。该处理设备(110)可以被编程为接收表示主车辆(200)的环境的多个图像。该处理设备(110)还可以被编程为分析该多个图像以识别主车辆(200)的至少一个导航状态。该处理设备(110)还可以被编程为基于主车辆(200)的 位置 的至少一个指示符来识别辖区,该至少一个指示符至少部分地基于对该多个图像的分析。该处理设备(110)还可以被编程为确定特定于所识别的辖区的至少一个导航规则。该处理设备(110)还可以被编程为基于所识别的导航状态并且基于所确定的至少一个导航规则来引起导航改变。,下面是基于规则的导航专利的具体信息内容。

1.一种用于主车辆的导航系统,所述系统包括:
至少一个处理设备,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的至少一个导航状态;
基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,所述至少一个指示符至少部分地基于对所述多个图像的分析;
确定特定于所识别的辖区的至少一个导航规则;以及
基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
2.根据权利要求1所述的系统,其中所述主车辆的位置的至少一个指示符包括GPS信号
3.根据权利要求1所述的系统,其中所述主车辆的位置的至少一个指示符包括已辨识的道路标志。
4.根据权利要求1所述的系统,其中所述主车辆的位置的至少一个指示符包括接收到的信号,所述接收到的信号包括与主车辆的位置有关的信息。
5.根据权利要求1所述的系统,其中所述导航改变由对主车辆的导航致动器的调节而引起。
6.根据权利要求5所述的系统,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
7.根据权利要求1所述的系统,其中所述至少一个导航规则禁止在绿色箭头不存在时左转。
8.根据权利要求1所述的系统,其中所述至少一个导航规则允许在绿灯存在时在让行的情况下左转。
9.根据权利要求1所述的系统,其中所述至少一个导航规则禁止在不超车的情况下在多车道道路的左车道中导航。
10.一种用于主车辆的导航方法,所述方法包括由至少一个处理设备执行的以下步骤:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的至少一个导航状态;
基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,所述至少一个指示符至少部分地基于对所述多个图像的分析;
确定特定于所识别的辖区的至少一个导航规则;以及
基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
11.根据权利要求10所述的方法,其中所述主车辆的位置的至少一个指示符包括GPS信号。
12.根据权利要求10所述的方法,其中所述主车辆的位置的至少一个指示符包括已辨识的道路标志。
13.根据权利要求10所述的方法,其中所述主车辆的位置的至少一个指示符包括接收到的信号,所述接收到的信号包括与主车辆的位置有关的信息。
14.根据权利要求10所述的方法,其中所述导航改变由对主车辆的导航致动器的调节而引起。
15.根据权利要求14所述的方法,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
16.根据权利要求10所述的方法,其中所述至少一个导航规则禁止在绿色箭头不存在时左转。
17.根据权利要求10所述的方法,其中所述至少一个导航规则允许在绿灯存在时在让行的情况下左转。
18.根据权利要求10所述的方法,其中所述至少一个导航规则禁止在不超车的情况下在多车道道路的左车道中导航。
19.一种自主车辆,包括:
车体;
至少一个图像捕捉设备,被配置为获取表示车辆的环境的至少一个图像;
至少一个处理器,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的至少一个导航状态;
基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,所述至少一个指示符至少部分地基于对所述多个图像的分析;
确定特定于所识别的辖区的至少一个导航规则;以及
基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
20.根据权利要求19所述的自主车辆,其中所述主车辆的位置的至少一个指示符包括已辨识的道路标志。
21.一种用于主车辆的导航系统,所述系统包括:
至少一个处理设备,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
分析所述多个图像以识别目标车辆相对于主车辆的至少一个不利特性;以及在识别目标车辆的所述至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
22.根据权利要求21所述的系统,其中所述至少一个导航改变由对主车辆的导航致动器的调节而引起。
23.根据权利要求22所述的系统,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
24.根据权利要求21所述的系统,其中所述主车辆的至少一个导航改变至少部分地由来自主车辆的占用者的输入而引起。
25.根据权利要求24所述的系统,其中所述来自主车辆的占用者的输入经由语音命令提供。
26.根据权利要求24所述的系统,其中所述来自主车辆的占用者的输入经由用户接口提供,所述用户接口包括按钮、触摸屏或手势辨识系统中的至少一个。
27.根据权利要求24所述的系统,其中基于来自主车辆的占用者的输入,所述处理设备被配置为响应于在稍后的时间对所述至少一个特性的识别,在稍后的时间进行类似于所述至少一个导航改变的导航改变。
28.根据权利要求24所述的系统,其中响应于来自占用者的输入,所述处理器确定一个或多个空间目标以及用于将车辆导航到所述一个或多个空间目标中的每一个空间目标的时间规范。
29.根据权利要求24所述的系统,其中响应于来自占用者的输入,所述处理器确定一个或多个空间目标,并且其中所述处理器被配置为提供一组控制命令,以用于在选择的时间范围内将车辆导航到选择的空间目标。
30.根据权利要求24所述的系统,其中响应于来自占用者的输入,所述处理器被配置为调用机器学习策略模,所述机器学习策略模块确定供车辆发起并完成超车的一组动作。
31.根据权利要求24所述的系统,其中响应于来自占用者的输入,所述处理器确定是否存在安全超车操纵。
32.根据权利要求24所述的系统,其中响应于来自占用者的输入,所述处理被配置为确定是否存在不会引起该车辆过错事故的可用超车操纵。
33.根据权利要求21所述的系统,其中所识别的目标车辆的特性指示车辆尺寸,并且其中,所述至少一个导航改变至少部分地基于所述车辆尺寸超过阈值
34.根据权利要求21所述的系统,其中所识别的目标车辆的特性指示车辆类型,并且其中,所述至少一个导航改变至少部分地基于所述车辆类型。
35.根据权利要求29所述的系统,其中所述车辆类型指示目标车辆是建筑车辆和农用车辆中的一种。
36.根据权利要求21所述的系统,其中所识别的目标车辆的特性指示与目标车辆相关联的不安全对象,并且其中,所述至少一个导航改变至少部分地基于所述不安全对象的指示。
37.根据权利要求31所述的系统,其中所述不安全对象包括摇摆的织物。
38.根据权利要求31所述的系统,其中所述不安全对象包括敞开的和未上的门中的一个或多个。
39.根据权利要求21所述的系统,其中所述处理器还被配置为从粒子检测器接收目标车辆排放的颗粒物质的指示,并且其中,所述至少一个导航改变至少部分地基于所述颗粒物质的指示。
40.一种用于主车辆的导航方法,所述方法包括由至少一个处理设备执行的以下步骤:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
分析所述多个图像以识别目标车辆的至少一个特性;以及
在识别目标车辆的所述至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
41.一种自主车辆,包括:
车体;
至少一个图像捕捉设备,被配置为获取表示车辆的环境的至少一个图像;
至少一个处理器,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
分析所述多个图像以识别目标车辆的至少一个特性;以及
在识别目标车辆的所述至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
42.一种用于主车辆的导航系统,所述系统包括:
至少一个处理设备,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
至少部分地基于对所述多个图像的分析,确定目标车辆和主车辆具有非确定性导航优先级;
引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级;以及根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
43.根据权利要求42所述的系统,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
44.根据权利要求42所述的系统,其中所述主车辆的至少一个动作包括向目标车辆传输信息信号,所述信息信号指示主车辆意图让路给目标车辆。
45.根据权利要求42所述的系统,其中所述主车辆的至少一个动作包括向目标车辆传输信息信号,所述信息信号指示主车辆意图先于目标车辆发起导航操纵。
46.根据权利要求42所述的系统,其中所述主车辆的至少一个动作包括向前微移主车辆。
47.根据权利要求42所述的系统,其中所述主车辆的至少一个动作包括与主车辆相关联的灯的闪烁。
48.根据权利要求42所述的系统,其中所述非确定性导航优先级包括车道并道情况。
49.根据权利要求42所述的系统,其中所述非确定性导航优先级包括主车辆和目标车辆在四向停车交叉点处的几乎同时到达。
50.根据权利要求42所述的系统,其中,所述处理器还被配置为检测目标车辆对所建立的优先级的响应。
51.根据权利要求50所述的系统,其中,所述多个图像是第一多个图像,并且检测所述响应包括对第二多个图像的分析。
52.根据权利要求42所述的系统,其中,相对于目标车辆确定的优先级在预定的置信度阈值内。
53.根据权利要求42所述的系统,其中为主车辆和目标车辆中的每一个计算优先级值,并且所述优先级值之间的差异在预定的置信度阈值内。
54.一种用于主车辆的导航方法,所述方法包括由至少一个处理设备执行的以下步骤:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
至少部分地基于对所述多个图像的分析,确定目标车辆和主车辆具有非确定性导航优先级;
引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级;以及根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
55.根据权利要求54所述的方法,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
56.根据权利要求54所述的方法,其中所述主车辆的至少一个动作包括向目标车辆传输信息信号,所述信息信号指示主车辆意图让路给目标车辆。
57.根据权利要求54所述的方法,其中所述主车辆的至少一个动作包括向目标车辆传输信息信号,所述信息信号指示主车辆意图先于目标车辆发起导航操纵。
58.根据权利要求54所述的方法,其中所述主车辆的至少一个动作包括与主车辆相关联的灯的闪烁。
59.根据权利要求54所述的方法,其中所述非确定性导航优先级包括车道并道情况。
60.根据权利要求54所述的方法,其中所述非确定性导航优先级包括主车辆和目标车辆在四向停车交叉点处的几乎同时到达。
61.一种自主车辆,包括:
车体;
至少一个图像捕捉设备,被配置为获取表示车辆的环境的至少一个图像;
至少一个处理器,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中的至少一个目标车辆;
至少部分地基于对所述多个图像的分析,确定目标车辆和主车辆具有非确定性导航优先级;
引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级;以及根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
62.一种用于主车辆的导航系统,所述系统包括:
至少一个处理设备,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中导航规则暂停条件的存在;
响应于对所述导航规则暂停条件的识别,临时暂停至少一个导航规则;以及使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
63.根据权利要求62所述的系统,其中所述导航改变由对主车辆的导航致动器的调节而引起。
64.根据权利要求63所述的系统,其中所述导航致动器包括转向机构、制动器或加速器中的至少一个。
65.根据权利要求62所述的系统,其中所述被临时暂停的规则在正常条件下禁止在路肩上行驶。
66.根据权利要求62所述的系统,其中所述被临时暂停的规则在正常条件下禁止在少于所要求的占用者数量情况下在高乘载车道中行驶。
67.根据权利要求62所述的系统,其中所述被临时暂停的规则在正常条件下建立:环形交叉路口中的车辆相对于进入环形交叉路口的车辆具有路权。
68.根据权利要求62所述的系统,其中所述被临时暂停的规则建立正常操作条件下的导航路权。
69.根据权利要求62所述的系统,其中所述被临时暂停的规则在正常操作条件下禁止在选择的区域中的导航。
70.根据权利要求62所述的系统,其中引起所述至少一个导航改变导致主车辆进入路肩。
71.根据权利要求62所述的系统,其中引起所述至少一个导航改变导致主车辆进入高乘载车道。
72.根据权利要求62所述的系统,其中引起所述至少一个导航改变导致主车辆在没有路权的情况下进入环形交叉路口。
73.根据权利要求62所述的系统,其中引起所述至少一个导航改变导致车辆在没有路权的情况下进入另一行驶车道。
74.根据权利要求62所述的系统,其中所述导航规则暂停条件包括交通堵塞。
75.根据权利要求62所述的系统,其中所述导航规则暂停条件包括主车辆前方的道路中的障碍物。
76.根据权利要求75所述的系统,其中所述导航规则暂停条件包括所述障碍物的高度,并且基于所述高度超过阈值而暂停所述导航规则。
77.根据权利要求62所述的系统,其中所述导航规则暂停条件包括侵入主车辆的车道的目标车辆。
78.根据权利要求62所述的系统,其中所述被临时暂停的规则被临时规则代替。
79.根据权利要求78所述的系统,其中所述临时规则比被暂停的规则更松弛。
80.一种用于主车辆的导航方法,所述方法包括由至少一个处理设备执行的以下步骤:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中导航规则暂停条件的存在;
响应于对所述导航规则暂停条件的识别,临时暂停至少一个导航规则;以及使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
81.一种自主车辆,包括:
车体;
至少一个图像捕捉设备,被配置为获取表示车辆的环境的至少一个图像;
至少一个处理器,被编程为:
从相机接收表示主车辆的环境的多个图像;
分析所述多个图像以识别主车辆的环境中导航规则暂停条件的存在;
响应于对所述导航规则暂停条件的识别,临时暂停至少一个导航规则;以及使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。

说明书全文

基于规则的导航

[0001] 相关申请的交叉引用
[0002] 本申请要求以下各项的优先权权益:2017年1月12日提交的美国临时专利申请第62/445,500号;2017年8月16日提交的美国临时专利申请第62/546,343号;2017年9月29日提交的美国临时专利申请第62/565,244号;2017年11月7日提交的美国临时专利申请第62/
582,687号。上述申请通过引用整体并入本文。

技术领域

[0003] 本公开总体涉及自主车辆导航。此外,本公开涉及使用强化学习技术进行导航的系统和方法。

背景技术

[0004] 随着技术的不断进步,能够在道路上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达期望的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕捉的信息)、来自雷达或激光雷达的信息,并且也可能使用从其它源(例如,从GPS设备、速度传感器加速计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆还可能需要标识其在特定道路内(例如,在多车道道路内的特定车道)的位置、沿着其它车辆旁边导航、避开障碍物和行人、观察交通信号和标志、在适当的交叉口或交汇处从一条道路行进到另一条道路,并对车辆运行期间发生或进展的任何其他情况作出反应。发明内容
[0005] 与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包括一个、两个、或更多监测车辆环境的相机。所公开的系统可以基于,例如对由一个或多个相机捕捉的图像的分析来提供导航响应。导航响应还可以考虑其它数据,包括:例如,全球位置系统(global positioning system,GPS)数据、传感器数据(例如,来自加速器、速度传感器、悬架传感器、雷达、激光雷达等)和/或其它地图数据。
[0006] 在一个实施例中,一种用于主车辆的导航系统可以包括至少一个处理设备。该处理设备可以被编程为从相机接收表示主车辆的环境的多个图像。该处理设备还可以被编程为分析该多个图像以识别主车辆的至少一个导航状态。该处理设备还可以被编程为基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,该至少一个指示符至少部分地基于对该多个图像的分析。该处理设备还可以被编程为确定特定于所识别的辖区的至少一个导航规则。该处理设备还可以被编程为基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
[0007] 在一个实施例中,一种用于主车辆的导航方法可以包括从相机接收表示主车辆的环境的多个图像。该方法还可以包括分析该多个图像以识别主车辆的至少一个导航状态。该方法还可以包括基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,该至少一个指示符至少部分地基于对该多个图像的分析。该方法还可以包括确定特定于所识别的辖区的至少一个导航规则。该方法还可以包括基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
[0008] 在一个实施例中,一种用于主车辆的导航系统可以包括一种自主车辆,该车辆包括车体、被配置为获取表示该车辆的环境的至少一个图像的至少一个图像捕捉设备、以及至少一个处理器。该处理器可以被编程为从相机接收表示主车辆的环境的多个图像。该处理器还可以被编程为分析该多个图像以识别主车辆的至少一个导航状态。该处理器还可以被编程为基于主车辆的位置的至少一个指示符来识别主车辆正在其中行驶的辖区,该至少一个指示符至少部分地基于对该多个图像的分析。该处理器还可以被编程为确定特定于所识别的辖区的至少一个导航规则。该处理器还可以被编程为基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,引起主车辆的导航改变。
[0009] 在一个实施例中,一种用于主车辆的导航系统可以包括至少一个处理设备。该至少一个处理设备还可以被编程为从相机接收表示主车辆的环境的多个图像。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该至少一个处理设备还可以被编程为分析该多个图像以识别目标车辆相对于主车辆的至少一个不利特性。该至少一个处理设备还可以被编程为在识别目标车辆的该至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
[0010] 在一个实施例中,一种用于主车辆的导航方法可以包括从相机接收表示主车辆的环境的多个图像。该方法还可以包括分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该方法还可以包括分析该多个图像以识别目标车辆的至少一个特性。该方法还可以包括在识别目标车辆的该至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
[0011] 在一个实施例中,一种用于主车辆的导航系统可以包括一种自主车辆,该车辆包括车体、被配置为获取表示该车辆的环境的至少一个图像的至少一个图像捕捉设备、以及至少一个处理器。该处理器可以被编程为从相机接收表示主车辆的环境的多个图像。该处理器还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该处理器还可以被编程为分析该多个图像以识别目标车辆的至少一个特性。该处理器还可以被编程为在识别目标车辆的该至少一个特性后,引起主车辆的至少一个导航改变以发起对目标车辆的超车。
[0012] 在一个实施例中,一种用于主车辆的导航系统可以包括被编程为从相机接收表示主车辆的环境的多个图像的至少一个处理设备。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该至少一个处理设备还可以被编程为至少部分地基于对该多个图像的分析,确定目标车辆和主车辆具有类似的导航优先级从而导致导航均势情况。该至少一个处理设备还可以被编程为引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级。该至少一个处理设备还可以被编程为根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
[0013] 在一个实施例中,一种用于主车辆的导航方法可以包括从相机接收表示主车辆的环境的多个图像。该方法还可以包括分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该方法还可以包括至少部分地基于对该多个图像的分析,确定目标车辆和主车辆具有类似的导航优先级从而导致导航均势情况。该方法还可以包括引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级。该方法还可以包括根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
[0014] 在一个实施例中,一种用于主车辆的导航系统可以包括一种自主车辆,该车辆包括车体、被配置为获取表示该车辆的环境的至少一个图像的至少一个图像捕捉设备、以及被编程为从相机接收表示主车辆的环境的多个图像的至少一个处理器。该至少一个处理器还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆。该至少一个处理器还可以被编程为至少部分地基于对该多个图像的分析,确定目标车辆和主车辆具有类似的导航优先级从而导致导航均势情况。该至少一个处理器还可以被编程为引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级。该至少一个处理器还可以被编程为根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
[0015] 在一个实施例中,一种用于主车辆的导航系统可以包括被编程为从相机接收表示主车辆的环境的多个图像的至少一个处理设备。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中导航规则暂停条件的存在。该至少一个处理设备还可以被编程为响应于对该导航规则暂停条件的识别,临时暂停至少一个导航规则。该至少一个处理设备还可以被编程为使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
[0016] 在一个实施例中,一种用于主车辆的导航方法可以包括从相机接收表示主车辆的环境的多个图像。该方法还可以包括分析该多个图像以识别主车辆的环境中导航规则暂停条件的存在。该方法还可以包括响应于对该导航规则暂停条件的识别,临时暂停至少一个导航规则。该方法还可以包括使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
[0017] 在一个实施例中,一种用于主车辆的导航系统可以包括一种自主车辆,该车辆包括车体、被配置为获取表示该车辆的环境的至少一个图像的至少一个图像捕捉设备、以及被编程为从相机接收表示主车辆的环境的多个图像的至少一个处理器。该至少一个处理器还可以被编程为分析该多个图像以识别主车辆的环境中导航规则暂停条件的存在。该至少一个处理器还可以被编程为响应于对该导航规则暂停条件的识别,临时暂停至少一个导航规则。该至少一个处理器还可以被编程为使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
[0018] 与其它公开的实施例一致,非暂时性计算机可读存储介质可以存储由至少一个处理设备执行并且执行本文所描述的方法中的任何的程序指令。
[0019] 前述的一般描述和下面的详细描述仅仅是示范性和说明性的,并且不限制权利要求附图说明
[0020] 并入本公开中并构成本公开的一部分的附图示出所公开的各种实施例。在附图中:
[0021] 图1是与所公开的实施例一致的示例系统的图示性表示。
[0022] 图2A是包括与所公开的实施例一致的系统的示例车辆的图示性侧视图表示。
[0023] 图2B是与所公开的实施例一致的图2A中所示的车辆和系统的图示性顶视图表示。
[0024] 图2C是包括与所公开的实施例一致的系统的车辆的另一实施例的图示性顶视图表示。
[0025] 图2D是包括与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
[0026] 图2E是包括与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
[0027] 图2F是与所公开的实施例一致的示例车辆控制系统的图示性表示。
[0028] 图3A是与所公开的实施例一致的、包括后视镜和用于车辆成像系统的用户界面的车辆的内部的图示性表示。
[0029] 图3B是与所公开的实施例一致的、配置为位置在后视镜之后并抵靠车辆挡玻璃的相机安装的示例的图示。
[0030] 图3C是与所公开的实施例一致的图3B中所示的相机安装从不同的视的图示。
[0031] 图3D是与所公开的实施例一致的、配置为位于后视镜之后并抵靠车辆挡风玻璃的相机安装的示例的图示。
[0032] 图4是与所公开的实施例一致的、配置为存储用于执行一个或多个操作的指令的存储器的示例框图
[0033] 图5A是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例处理的流程图
[0034] 图5B是示出与所公开的实施例一致的、用于在一组图像中检测一个或多个车辆和/或行人的示例处理的流程图。
[0035] 图5C是示出与所公开的实施例一致的、用于在一组图像中检测道路标记和/或车道几何信息的示例处理的流程图。
[0036] 图5D是示出与所公开的实施例一致的、用于在一组图像中检测交通灯的示例处理的流程图。
[0037] 图5E是示出与所公开的实施例一致的、用于基于车辆路径引起一个或多个导航响应的示例处理的流程图。
[0038] 图5F是示出与所公开的实施例一致的、用于确定前方车辆是否正在改变车道的示例处理的流程图。
[0039] 图6是示出与所公开的实施例一致的、用于基于立体图像分析引起一个或多个导航响应的示例处理的流程图。
[0040] 图7是示出与所公开的实施例一致的、用于基于三组图像的分析引起一个或多个导航响应的示例处理的流程图。
[0041] 图8是与所公开的实施例一致的、可由自主车辆的导航系统的一个或多个专编程的处理设备来实现的模的框图表示。
[0042] 图9是与所公开的实施例一致的导航选项图。
[0043] 图10是与所公开的实施例一致的导航选项图。
[0044] 图11A、图11B和图11C提供了与所公开的实施例一致的、并道区(merge zone)中的主车辆的导航选项的示意表示。
[0045] 图11D提供了双并道场景的图示性描述。
[0046] 图11E提供了在双并道场景中潜在有用的选项图。
[0047] 图12提供了与所公开的实施例一致的、捕捉了主车辆的环境的代表性图像以及潜在导航约束的图。
[0048] 图13提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0049] 图14提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0050] 图15提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0051] 图16提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0052] 图17A和17B提供了与所公开的实施例一致的、导航进入环形道的主车辆的图示性图示。
[0053] 图18提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0054] 图19是存储器的示例性框图,该存储器被配置为存储用于执行与所公开的实施例一致的、一个或多个操作的指令。
[0055] 图20提供了与所公开的实施例一致的、主车辆的代表性环境的图。
[0056] 图21提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0057] 图22是存储器的示例性框图,该存储器被配置为存储用于执行与所公开的实施例一致的、一个或多个操作的指令。
[0058] 图23提供了与所公开的实施例一致的、主车辆的代表性环境的图。
[0059] 图24提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0060] 图25是存储器的示例性框图,该存储器被配置为存储用于执行与所公开的实施例一致的、一个或多个操作的指令。
[0061] 图26A和26B提供了与所公开的实施例一致的、主车辆的代表性环境的图。
[0062] 图27提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
[0063] 图28是存储器的示例性框图,该存储器被配置为存储用于执行与所公开的实施例一致的、一个或多个操作的指令。
[0064] 图29提供了与所公开的实施例一致的、主车辆的代表性环境的图。
[0065] 图30提供了与所公开的实施例一致的、主车辆的代表性环境的图。
[0066] 图31提供了与所公开的实施例一致的、用于导航车辆的算法流程图。

具体实施方式

[0067] 接下来的详细描述参考附图。只要可能,在附图和接下来的描述中使用相同的附图标记来指代相同或相似的部分。尽管本文描述了若干示例性实施例,但是修改、调整和其它实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文描述的示例性方法进行修改。因此,接下来的详细描述并不限于所公开的实施例和示例。相反,适当的范围由所附权利要求限定。
[0068] 自主车辆概览
[0069] 如贯穿本公开所使用的,术语“自主车辆”是指在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”是指车辆的转向、制动、或加速/减速中的一个或多个。所谓自主,是指车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包括能够在某些时间段期间在驾驶员的控制下操作,且能够在其他时间段期间无需驾驶员控制而操作的那些车辆。自主车辆还可以包括仅控制车辆导航的某些方面(诸如转向(例如,在车辆车道约束之间维持车辆路线)或在某些情况下(但并非在所有情况下)的某些转向操作),但可以将其它方面交给驾驶员(例如,制动或在某些情况下的制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速率控制和/或转向的某些或全部方面。
[0070] 由于人类驾驶员通常依赖于可视线索和观察以便控制车辆,因此而建造了交通基础设施,其带有被设计为向驾驶员提供可视信息的车道标记、交通标志和交通灯。鉴于交通基础设施的这些设计特性,自主车辆可以包括相机以及分析从车辆的环境捕捉的可视信息的处理单元。可视信息可以包括,例如表示可由驾驶员观察到的交通基础设施的组件(例如,车道标记、交通标志、交通灯等)以及其它障碍物(例如,其它车辆、行人、碎片等)的图像。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆环境的模型的信息。例如,车辆可以使用GPS数据、传感器数据(例如,来自加速计、速度传感器、悬架传感器等)和/或其它地图数据,以在车辆正在行驶的同时提供与其环境有关的信息,并且该车辆(以及其它车辆)可以使用该信息在模型上对其自身定位。一些车辆也能够在车辆之间进行通信、共享信息、改变同伴车辆的危险或车辆周围的变化等。
[0071] 系统概览
[0072] 图1是与所公开的示例实施例一致的系统100的框图表示。取决于特定实施方式的要求,系统100可以包括各种组件。在一些实施例中,系统100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160、用户界面170和无线收发器172。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其它合适的处理设备。类似地,取决于特定应用的要求,图像获取单元120可以包括任意数量的图像获取设备和组件。在一些实施例中,图像获取单元120可以包括一个或多个图像捕捉设备(例如,相机、电荷耦合器件(CCD)或任意其他类型的图像传感器),诸如图像捕捉设备122、图像捕捉设备124和图像捕捉设备126。系统100还可以包括将处理单元110通信地连接到图像获取单元120的数据接口
128。例如,数据接口128可以包括用于将由图像获取单元120获取的图像数据传输到处理单元110的任何有线和/或无线的一个或多个链路。
[0073] 无线收发器172可以包括被配置为通过使用射频、红外频率磁场、或电场来交换通过空中接口到一个或多个网络(例如,蜂窝、因特网等)的传输的一个或多个设备。无线收发器172可以使用任何熟知的标准来发送和/或接收数据(例如,Wi-Fi、蓝牙 蓝牙智能、802.15.4、ZigBee等)。这样的传输可以包括从主车辆到一个或多个远程定位的服务器的通信。这样的传输还可以包括主车辆与在主车辆的环境中的一个或多个目标车辆之间的(单向或双向的)通信(例如,为了便于考虑到或连同在主车辆的环境中的目标车辆来协调主车辆的导航),或者甚至向发送车辆附近的未指定的接收者的广播传输。
[0074] 应用处理器180和图像处理器190两者都可以包括各种类型的基于硬件的处理设备。例如,应用处理器180和图像处理器190中的任一者或两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(CPU)、辅助电路数字信号处理器、集成电路、存储器或适用于运行应用和适用于图像处理和分析的任何其它类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如等制造商获得的处理器,并且可以包括各种架构(例如,x86处理器、 等)。
[0075] 在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的任何EyeQ系列处理器芯片。这些处理器设计均包括带有本地存储器和指令集的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能。在一个示例中, 使用在332兆赫兹下操作的90纳米-微米技术。 架构由两个浮点式超线程32位RISC CPU( 核)、五个视觉
计算引擎(VCE)、三个矢量微代码处理器 丹那利(Denali)64位移动DDR控制器、
128位内部声能互连(Sonics Interconnect)、双16位视频输入和18位视频输出控制器、16通道DMA和若干外围设备构成。MIPS34K CPU管理这五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其它外围设备。这五个VCE、三个 和MIPS34K CPU可以执行多功能绑应用所需要的密集视觉计算。在另一示例中,作为第三代处理器并且比 强六倍的 可以在所公开的实施例中使用。在其他示例中,可以在所公开的实施例中使用 和/或 当然,任何更新的或未来的EyeQ处理设备也可以与所公开的
实施例一起使用。
[0076] 任何本文所公开的处理设备可以被配置为执行某些功能。配置处理设备(诸如任何所描述的EyeQ处理器或其它控制器或微处理器)以执行某些功能可以包括对计算机可执行指令的编程,并使处理设备在其操作期间可获得这些指令以用于执行。在一些实施例中,配置处理设备可以包括直接利用架构指令对处理设备编程。在其它实施例中,配置处理设备可以包括将可执行指令存储在操作期间处理设备可访问的存储器上。例如,处理设备在操作期间可以访问该存储器以获得并执行所存储的指令。在任一情况下,被配置为执行本文公开的感测、图像分析和/或导航功能的处理设备表示控制主车辆的多个基于硬件的组件的专用的基于硬件的系统。
[0077] 尽管图1描绘了包含在处理单元110中的两个单独的处理设备,但是可以使用更多或更少的处理设备。例如,在一些实施例中,可以使用单个处理设备完成应用处理器180和图像处理器190的任务。在其它实施例中,这些任务可以由两个以上的处理设备执行。另外,在一些实施例中,系统100可以包括一个或多个处理单元110,而不包括诸如图像获取单元120之类的其它组件。
[0078] 处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,诸如控制器、图像预处理器、中央处理单元(CPU)、辅助电路、数字信号处理器、集成电路、存储器或任何其它类型的用于图像处理和分析的设备。图像预处理器可以包括用于捕捉、数字化和处理来自图像传感器的影像的视频处理器。CPU可以包括任何数量的微控制器或微处理器。辅助电路可以是任何数量的本领域公知的电路,包括高速缓存、电力供给、时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制系统的操作。存储器可以包括数据库和图像处理软件。存储器可以包括任何数量的随机存取存储器只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和其它类型的存储。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
[0079] 每个存储器140、150可以包括软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。例如,这些存储器单元可以包括各种数据库和图像处理软件,以及经训练的系统,诸如神经网络和深度神经网络。存储器单元可以包括随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和/或任何其它类型的存储。在一些实施例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分离。在其它实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
[0080] 位置传感器130可以包括适用于确定与系统100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括GPS接收器。这种接收器可以通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
[0081] 在一些实施例中,系统100可以包括诸如用于测量车辆200的速率的速度传感器(例如,速度计)之类的组件。系统100还可以包括用于测量车辆200沿一个或多个轴的加速度的一个或多个加速度计(单轴或多轴的)。
[0082] 存储器单元140、150可以包括数据库,或以任何其他形式组织的、指示已知地标的位置的数据。环境的传感信息(诸如来自激光雷达或两个或更多个图像的立体处理的图像、雷达信号、深度信息)可以与位置信息(诸如GPS坐标、车辆的自我运动等)一起处理,以确定车辆相对于已知地标的当前位置,并且改进车辆位置。这项技术的某些方面包含于被称为REMTM的定位技术中,该技术由本申请的受让人销售。
[0083] 用户界面170可以包括适用于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何设备。在一些实施例中,用户界面170可以包括用户输入设备,包括例如触摸屏、麦克风、键盘指针设备、跟踪转轮、相机、旋钮、按钮等。利用这样的输入设备,用户能够通过键入指令或信息、提供语音命令、使用按钮、指针或眼睛跟踪能力在屏幕上选择菜单选项、或通过任何其它适用于向系统100传送信息的技术来向系统100提供信息输入或命令。
[0084] 用户界面170可以配备有一个或多个处理设备,其配置为向用户提供和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理设备可以执行指令以辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择等。在一些实施例中,用户界面170可以包括显示器、扬声器、触觉设备和/或任何其它用于向用户提供输出信息的设备。
[0085] 地图数据库160可以包括任何类型的用于存储对系统100有用的地图数据的数据库。在一些实施例中,地图数据库160可以包括与各种项目在参考坐标系统中的位置有关的数据,各种项目包括道路、特征、地理特征、商业区、感兴趣的点、餐馆、加油站等。地图数据库160不仅可以存储这些项目的位置,而且可以存储与这些项目有关的描述符,包括例如与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其它部件在物理上位于一起。替代或附加地,地图数据库160或其一部分可以相对于系统100的其它组件(例如,处理单元110)位于远处。在这种实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或因特网等)而下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包括某些道路特征(例如,车道标记)或主车辆的目标轨迹的多项式表示。地图数据库160还可以包括已存储的各种辨识出的地标的表示,该地标的表示可用于确定或更新主车辆相对于目标轨迹的已知位置。地标表示可以包括数据字段,诸如地标类型、地标位置以及其他潜在标识符。
[0086] 图像捕捉设备122、124和126均可以包括任何类型的适用于从环境捕捉至少一个图像的设备。此外,可以使用任何数量的图像捕捉设备来获取用于输入到图像处理器的图像。一些实施例可以仅包括单个图像捕捉设备,而其它实施例可以包括两个、三个、或甚至四个、或更多个图像捕捉设备。以下将参考图2B至图2E进一步描述图像捕捉设备122、124和126。
[0087] 一个或多个相机(例如,图像捕捉设备122、124和126)可以是包括在车辆上的感测块的一部分。感测块中可以包括各种其他传感器,并且可以依靠这些传感器中的任何或全部,以形成车辆的感测的导航状态。除了相机(前方、侧方、后方等)之外,其他传感器(诸如雷达、激光雷达和声学传感器)可被包含在感测块中。另外,感测块可以包括一个或多个组件,该组件被配置为传送和发送/接收与车辆的环境有关的信息。例如,这种组件可以包括无线收发器(RF等),其可以从相对于主车辆位于远处的源接收基于传感器的信息或与主车辆的环境有关的任何其他类型的信息。这些信息可以包括从主车辆以外的车辆系统接收的传感器输出信息或相关信息。在一些实施例中,这些信息可以包括从远程计算设备、中央服务器等接收的信息。此外,相机可以采用许多不同的配置:单个相机单元、多个相机、相机群、长FOV、短FOV、广角、鱼眼等。
[0088] 系统100或其各种组件可以合并到各种不同的平台中。在一些实施例中,系统100可以被包括在车辆200上,如图2A所示。例如,车辆200可以配备有如上关于图1描述的系统100的处理单元110和任何其它组件。在一些实施例中,车辆200可以仅配备有单个图像捕捉设备(例如,相机),而在其它实施例中,诸如结合图2B至图2E所讨论的那些实施例,可以使用多个图像捕捉设备。例如,图2A中所示的车辆200的图像捕捉设备122和124中的任一个可以是ADAS(Advanced Driver Assistance System,高级驾驶员辅助系统)成像集的一部分。
[0089] 作为图像获取单元120的一部分的、被包括在车辆200上的图像捕捉设备,可以被置于任何合适的位置。在一些实施例中,如图2A至图2E,以及图3A至图3C中所示,图像捕捉设备122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员的视线相似的视线,这可以辅助确定对驾驶员而言什么是可视和不可视的。图像捕捉设备122可以被置于靠近后视镜的任何位置,而将图像捕捉设备122放置在镜子的驾驶员侧还可以辅助获得表示驾驶员的视场和/或视线的图像。
[0090] 还可以使用图像获取单元120的图像捕捉设备的其它位置。例如,图像捕捉设备124可以位于车辆200的保险杠上或保险杠中。这种位置尤其可以适用于具有宽视场的图像捕捉设备。位于保险杠的图像捕捉设备的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕捉设备和驾驶员可能不总是看到相同的对象。图像捕捉设备(例如,图像捕捉设备
122、124和126)还可以位于其它位置中。例如,图像捕捉设备可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上、安装在车辆200的任何车窗上、置于车辆200的任何车窗的后面、或置于任何车窗的前面、以及安装在车辆200的前部和/或后部上的照明设备中或附近。
[0091] 除了图像捕捉设备,车辆200还可以包括系统100的各种其它组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(engine control unit,ECU)集成或分离。车辆200还可以配备有诸如GPS接收器之类的位置传感器130,并且还可以包括地图数据库160以及存储器单元140和150。
[0092] 如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、因特网等)和/或接收数据。例如,无线收发器172可以将系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。经由无线收发器172,系统100可以接收,例如对存储在地图数据库160、存储器140和/或存储器150中存储的数据的周期性更新或按需求更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕捉的图像、由位置传感器130或其它传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
[0093] 系统100可以基于隐私等级设置将数据上传到服务器(例如,上传到)。例如,系统100可以实施隐私等级设置,以规定或限制发送到服务器的、可以唯一地标识车辆和/或车辆的驾驶员/所有者的数据(包括元数据)的类型。这些设置可以由用户经由例如无线收发器172来设置、可以由出厂默认设置、或由无线收发器172接收的数据来初始化。
[0094] 在一些实施例中,系统100可以根据“高”隐私等级上传数据,并且在设定了设置的情况下,系统100可以传输数据(例如,与路途有关的位置信息、捕捉的图像等),而不带有任何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设置来上传数据时,系统100可以不包括车辆标识编号(vehicle identification number,VIN)或车辆的驾驶员或所有者的名字,并且可以代替地传输数据(诸如,捕捉的图像和/或与路途有关的受限的位置信息)。
[0095] 也可以考虑其它隐私等级。例如,系统100可以根据“中间”隐私等级向服务器传输数据,并且可以包括在“高”隐私等级下不包括的额外信息,诸如车辆的型号和/或模型和/或车辆类型(例如载客车辆、运动型多用途车辆、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设置下,系统100可以上传数据,并且包括足以唯一地标识特定车辆、所有者/驾驶员和/或车辆行驶过的部分路途或整个路途的信息。例如,这些“低”隐私等级数据可以包括以下中的一个或多个:VIN、驾驶员/所有者姓名、出发之前车辆的源点、车辆的期望目的地、车辆的型号和/或模型、车辆类型等。
[0096] 图2A是与所公开的实施例一致的、示例车辆成像系统的图示性侧视图表示。图2B是图2A中所示的实施例的图示性顶视图例示。如图2B所示,所公开的实施例可以包括车辆200,该车辆200在其车体中包括系统100,该系统100带有位于车辆200的后视镜附近和/或靠近驾驶员的第一图像捕捉设备122、位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕捉设备124、以及处理单元110。
[0097] 如图2C所示,图像捕捉设备122和124两者可以都位于车辆200的后视镜附近和/或靠近驾驶员。此外,尽管图2B和图2C示出了两个图像捕捉设备122和124,应理解的是,其它实施例可以包括两个以上的图像捕捉设备。例如,在图2D和图2E中所示的实施例中,第一图像捕捉设备122、第二图像捕捉设备124和第三图像捕捉设备126被包括在车辆200的系统100中。
[0098] 如图2D所示,图像捕捉设备122可以位于车辆200的后视镜附近和/或靠近驾驶员,并且图像捕捉设备124和126可以位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2E所示,图像捕捉设备122、124和126可以位于车辆200的后视镜附近和/或靠近驾驶席。所公开的实施例不限于图像捕捉设备的任何特定数量和配置,并且图像捕捉设备可以位于车辆200内或车辆200上的任何合适的位置中。
[0099] 应理解的是,所公开的实施例不限于车辆,并且可以被应用在其它情景中。还应理解,所公开的实施例不限于车辆200的特定类型,并且可以适用于所有类型的车辆,包括汽车、卡车、拖车和其它类型的车辆。
[0100] 第一图像捕捉设备122可以包括任何合适类型的图像捕捉设备。图像捕捉设备122可以包括光轴。在一个实例中,图像捕捉设备122可以包括带有全局快门的Aptina M9V024WVGA传感器。在其它实施例中,图像捕捉设备122可以提供1280×960像素分辨率,并且可以包括滚动快门。图像捕捉设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个镜头,例如用于为图像捕捉设备提供期望的焦距和视场。在一些实施例中,图像捕捉设备122可以与6毫米镜头或12毫米镜头相关联。在一些实施例中,如图2D所示,图像捕捉设备122可以配置为捕捉具有期望的视场(FOV)202的图像。例如,图像捕捉设备122可以配置为具有常规FOV,诸如在40度到56度的范围内,包括46度FOV、50度FOV、52度FOV,或更大的FOV。可替代地,图像捕捉设备122可以配置为具有在23至40度的范围内的窄FOV,诸如28度FOV或36度FOV。此外,图像捕捉设备122可以配置为具有在100至180度的范围内的宽FOV。在一些实施例中,图像捕捉设备122可以包括广角保险杠相机或者带有高达180度的FOV的相机。在一些实施例中,图像捕捉设备122可以是带有大约2:1的高宽比(例如,H×V=3800×1900像素)、带有大约100度水平FOV的7.2M(百万)像素图像捕捉设备。这种图像捕捉设备可以被用来替代三个图像捕捉设备配置。由于显著的镜头失真,在图像捕捉设备使用径向对称镜头的实施方式中,这种图像捕捉设备的垂直FOV可以显著地小于50度。例如,这种镜头可以不是径向对称的,这将允许在100度水平FOV情况下垂直FOV大于50度。
[0101] 第一图像捕捉设备122可以获取关于与车辆200相关联的场景的多个第一图像。多个第一图像中的每一个可以作为一系列的图像扫描线而被获取,其可使用滚动快门来捕捉。每个扫描线可以包括多个像素。
[0102] 第一图像捕捉设备122可以具有与第一系列图像扫描线中的每一个的获取相关联的扫描速率。扫描速率可以指,图像传感器可以以该扫描速率获取与包含在特定扫描线中的每个像素相关联的图像数据。
[0103] 图像捕捉设备122、124和126可以包含任何合适的类型和数量的图像传感器,例如,包括CCD传感器或CMOS传感器等。在一个实施例中,可以采用CMOS图像传感器以及滚动快门,以使得一行中的每个像素一次被读取一个,并且各行的扫描在逐行的基础上继续进行,直到已经捕捉了整个图像。在一些实施例中,可以相对于帧从顶部到底部顺序地捕捉各行。
[0104] 在一些实施例中,本文公开的图像捕捉设备(例如,图像捕捉设备122、124和126)中的一个或多个可以构成高分辨率成像器,并且可以具有大于5M像素、7M像素、10M像素或更大像素的分辨率。
[0105] 滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕捉,这可能引起所捕捉的图像帧中的扭曲和其它图像伪像。另一方面,当图像捕捉设备122配置为利用全局或同步快门操作时,所有像素可以以相同的时间量并且在共同的曝光时段期间被曝光。其结果是,在从采用全局快门的系统收集的帧中的图像数据表示在一特定时间的整个FOV(诸如FOV 202)的快照。与之相比,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕捉。因此,在具有滚动快门的图像捕捉设备中,移动对象可能出现失真。将在下面更详细地描述这种现象。
[0106] 第二图像捕捉设备124和第三图像捕捉设备126可以是任何类型的图像捕捉设备。类似于第一图像捕捉设备122,图像捕捉设备124和126中的每一个可以包括光轴。在一个实施例中,图像捕捉设备124和126中的每一个可以包括带有全局快门的Aptina M9V024WVGA传感器。可替代地,图像捕捉设备124和126中的每一个可以包括滚动快门。类似于图像捕捉设备122,图像捕捉设备124和126可以配置为包括各种镜头和光学元件。在一些实施例中,与图像捕捉设备124和126相关联的镜头可以提供FOV(诸如FOV 204和206),其等于或窄于与图像捕捉设备122相关联的FOV(诸如FOV 202)。例如,图像捕捉设备124和126可以具有40度、30度、26度、23度、20度或更小的FOV。
[0107] 图像捕捉设备124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。该多个第二图像和第三图像中的每一个可以作为第二系列图像扫描线和第三系列图像扫描线而被获取,这可以使用滚动快门进行捕捉。每个扫描线或行可以具有多个像素。图像捕捉设备124和126可以具有与被包含在第二系列和第三系列中的每个图像扫描线的获取相关联的第二扫描速率和第三扫描速率。
[0108] 每个图像捕捉设备122、124和126可以放置在相对于车辆200的任何合适的位置和方向处。可以选择图像捕捉设备122、124和126的相对位置以帮助将从图像捕捉设备获取的信息融合在一起。例如,在一些实施例中,与图像捕捉设备124相关联的FOV(诸如FOV 204)可能部分地或完全地和与图像捕捉设备122相关联的FOV(诸如FOV 202)以及与图像捕捉设备126相关联的FOV(诸如FOV 206)重叠。
[0109] 图像捕捉设备122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕捉设备122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2A所示,两个图像捕捉设备122和124在不同的高度处。例如,在图像捕捉设备122、124和126之间还可以存在横向位移差,为处理单元110的立体分析给出了额外的视差信息。如图2C和图2D所示,横向位移的差异可以通过dx表示。在一些实施例中,图像捕捉设备122、124和126之间可能存在前向或后向位移(例如,范围位移)。例如,图像捕捉设备122可以位于图像捕捉设备124和/或图像捕捉设备126之后0.5到2米或以上。这种类型的位移可以使得图像捕捉设备之一能够覆盖其它(一个或多个)图像捕捉设备的潜在盲点
[0110] 图像捕捉设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数量),并且与图像捕捉设备122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕捉设备124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕捉设备122和/或图像捕捉设备124和126相关联的(一个或多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或任何其它合适的分辨率。
[0111] 帧速率(例如,在该速率下,图像捕捉设备获取一个图像帧的一组像素数据,然后继续捕捉与下一个图像帧相关联的像素数据)可以是可控的。与图像捕捉设备122相关联的帧速率可以比与图像捕捉设备124和126相关联的帧速率更高、更低或与之相同。与图像捕捉设备122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕捉设备122、124和126中的一个或多个可以包括可选择的像素延迟时段,其在获取与图像捕捉设备122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据用于该设备的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟周期一个像素)。另外,在包括滚动快门的实施例中,图像捕捉设备122、124和126中的一个或多个可以包括可选择的水平消隐时段,其在获取与图像捕捉设备122、
124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕捉设备122、124和126中的一个或多个可以包括可选择的垂直消隐时段,其在获取与图像捕捉设备122、124和126的图像帧相关联的图像数据之前或之后施加。
[0112] 这些定时控制可以使能与图像捕捉设备122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其它因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕捉设备122的FOV与图像捕捉设备124和126的一个或多个FOV重叠的区域的图像捕捉的同步,即便图像捕捉设备122的视场不同于图像捕捉设备124和126的FOV。
[0113] 图像捕捉设备122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定对于两个设备,线扫描速率类似,如果一个设备包括具有640×480的分辨率的图像传感器,并且另一设备包括带有1280×960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
[0114] 可能影响图像捕捉设备122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包含在图像捕捉设备122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与用于特定设备的最大线扫描速率有关。提供较高的最大线扫描速率的设备具有提供比带有较低的最大线扫描速率的设备更高的帧速率的潜力。在一些实施例中,图像捕捉设备124和126中的一个或多个可以具有高于与图像捕捉设备122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕捉设备124和/或126的最大线扫描速率可以是图像捕捉设备122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
[0115] 在另一实施例中,图像捕捉设备122、124和126可以具有相同的最大线扫描速率,但图像捕捉设备122可以以小于或等于其最大扫描速率的扫描速率而操作。该系统可以配置为使得图像捕捉设备124和126中的一个或多个以等于图像捕捉设备122的线扫描速率的线扫描速率而操作。在其它实例中,该系统可以配置为使得图像捕捉设备124和/或图像捕捉设备126的线扫描速率可以是图像捕捉设备122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
[0116] 在一些实施例中,图像捕捉设备122、124和126可以是不对称的。也就是说,它们可包括具有不同视场(FOV)和焦距的相机。例如,图像捕捉设备122、124和126的视场可以包括关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕捉设备122、124和126中的一个或多个可以配置为从在车辆200前面、车辆200后面、车辆200的侧面、或其组合的环境获取图像数据。
[0117] 此外,与每个图像捕捉设备122、124和/或126相关联的焦距可以是可选择的(例如,通过包括适当的镜头等),使得每个设备在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕捉设备122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕捉设备122、124和126还可以配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕捉设备122、124和126的焦距可以被选择以使得一个图像捕捉设备(例如,图像捕捉设备122)可以获取相对靠近车辆的(例如,在10米内或20米内的)对象的图像,而其它图像捕捉设备(例如,图像捕捉设备124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
[0118] 根据一些实施例,一个或多个图像捕捉设备122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,尤其是对于可以被用于捕捉车辆200附近的区域的图像的图像捕捉设备122、124和126。例如,图像捕捉设备122可以被用来捕捉车辆200的右侧或左侧的区域的图像,并且在这些实施例中,可能期望图像捕捉设备122具有宽FOV(例如,至少140度)。
[0119] 与图像捕捉设备122、124和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,对应的视场减小。
[0120] 图像捕捉设备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之间变化。
[0121] 系统100可以配置为使得图像捕捉设备122的视场至少部分地或完全地与图像捕捉设备124和/或图像捕捉设备126的视场重叠。在一些实施例中,系统100可以配置为使得图像捕捉设备124和126的视场例如落入(例如,窄于)图像捕捉设备122的视场并且与图像捕捉设备122的视场共享共同的中心。在其它实施例中,图像捕捉设备122、124和126可以捕捉相邻的FOV,或者可以在它们的FOV中具有部分重叠。在一些实施例中,图像捕捉设备122、124和126的视场可以对齐,以使得较窄FOV图像捕捉设备124和/或126的中心可以位于较宽FOV设备122的视场的下半部分中。
[0122] 图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提供进一步的细节。
[0123] 如图3A所示,车辆200还可以包括用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包括例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以位于与后视镜310相邻。类似地,在一些实施例中,图像捕捉设备122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包括一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
[0124] 图3B至图3D是与所公开的实施例一致的配置为位于后视镜(例如,后视镜310)后面并与车辆挡风玻璃相对的示例相机安装370的例示。如图3B所示,相机安装370可以包括图像捕捉设备122、124和126。图像捕捉设备124和126可以位于遮光板380的后面,其中遮光板380可以相对于车辆挡风玻璃齐平(flush)并且包括薄膜和/或防反射材料的合成物。例如,遮光板380可被放置为使得它相对于具有匹配斜面的车辆的挡风玻璃对齐。在一些实施例中,图像捕捉设备122、124和126中的每个可以位于遮光板380的后面,例如在图3D中所描绘的。所公开的实施例不限于图像捕捉设备122、124和126、相机安装370和遮光板380的任何特定配置。图3C是图3B所示的相机安装370从前面视角的例示。
[0125] 如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变型和/或修改。例如,并非所有组件对于系统100的操作是必要的。此外,任何组件可以位于系统100的任何适当的部件中并且组件可以被重新布置成各种配置同时提供所公开的实施例的功能。因此,前述配置是示例性的,并且不管上述讨论的配置如何,系统100都可以提供广阔范围的功能以分析车辆200的周围并响应于该分析而导航车辆200。
[0126] 如在下面更详细讨论的并且根据各种所公开的实施例,系统100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,系统100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速率数据和/或来自包含在车辆200中的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130以及其它传感器收集数据用于分析。此外,系统100可以分析所收集的数据以确定车辆200是否应该采取某个动作,然后无需人工干预而自动采取所确定的动作。例如,当车辆200无需人工干预而导航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节系统220、制动系统230和转向系统240中的一个或多个发送控制信号)。此外,系统100可以分析所收集的数据,并且基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于系统100提供的各种实施例的额外的细节。
[0127] 前向多成像系统
[0128] 如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆的前方的一个或多个相机。在其它实施例中,多相机系统可以包括面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕捉设备122和124)可以位于车辆(例如,车辆200)的前面和/或侧面处。其他相机配置与所公开的实施例一致,并且本文公开的配置是示例性的。例如,系统100可以包括任何数量的相机的配置(例如,一个、两个、三个、四个、五个、六个、七个、八个等)。此外,系统100可以包括相机“群集”。例如,相机群集(包括任何适当数量的相机,例如一个、四个、八个等)可以相对于车辆是前向的,或者可以面向任何其他方向(例如,后向、侧向、成角度的等)。因此,系统100可以包括多个相机群集,其中每个群集以特定方向定向,以从车辆环境的特定区域捕捉图像。
[0129] 第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以执行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以执行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这种系统可以基于从位于车辆的前方和侧方的变化距离处的对象得到的信息做出决定。对单目图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕捉的图像执行图像分析的实例。立体图像分析可以参考基于利用图像捕捉参数的一个或多个变化而捕捉的两个或更多个图像执行图像分析的实例。例如,捕捉到的适用于执行立体图像分析的图像可以包括以下捕捉的图像:从两个或更多个不同的位置、从不同的视场、使用不同的焦距、与视差信息一起等捕捉的图像。
[0130] 例如,在一个实施例中,系统100可以使用图像捕捉设备122至126实现三相机配置。在这种配置中,图像捕捉设备122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其它值等),图像捕捉设备124可以提供宽视场(例如,150度或从大约100度至大约180度的范围选择的其它值),并且图像捕捉设备126可以提供中间视场(例如,46度或从大约35度至大约60度的范围选择的其它值)。在一些实施例中,图像捕捉设备126可以作为主相机或基本相机。图像捕捉设备122至126可以位于后视镜310的后面并且基本上并排(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕捉设备122至126中的一个或多个可以被安装在与车辆200的挡风玻璃齐平的遮光板380的后面。这种遮挡可以作用以减少任何来自车内的反射对图像捕捉设备122至126的影响。
[0131] 在另一实施例中,如以上结合图3B和3C所讨论的,宽视场相机(例如,上述示例中的图像捕捉设备124)可以被安装得低于窄视场相机和主视场相机(例如,上述的示例中的图像捕捉设备122和126)。这种配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的挡风玻璃,并且在相机上可以包括偏振器以衰减(damp)反射光。
[0132] 三相机系统可以提供某些性能特性。例如,一些实施例可以包括通过一个相机基于来自另一相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包括例如三个处理设备(例如,三个如以上所讨论的EyeQ系列处理器芯片),其中每个处理设备专用于处理由图像捕捉设备122至126中的一个或多个捕捉的图像。
[0133] 在三相机系统中,第一处理设备可以从主相机和窄视场相机两者接收图像,并且执行对窄FOV相机的视觉处理,以例如检测其它车辆、行人、车道标记、交通标志、交通灯以及其它道路对象。另外,第一处理设备可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3D重建。然后第一处理设备可以组合3D重建与3D地图数据、或组合3D重建与基于来自另一相机的信息计算出的3D信息。
[0134] 第二处理设备可以从主相机接收图像,并执行视觉处理以检测其它车辆、行人、车道标记、交通标志、交通灯和其它道路对象。另外,第二处理设备可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重建(例如,运动恢复结构(structure from motion))。第二处理设备可以将基于3D重建的运动恢复结构发送到第一处理设备以与立体3D图像进行组合。
[0135] 第三处理设备可以从宽FOV相机接收图像,并处理该图像以检测车辆、行人、车道标记、交通标志、交通灯和其它道路对象。第三处理设备还可以执行额外的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
[0136] 在一些实施例中,使得基于图像的信息的流被独立地捕捉和处理可以提供用于在系统中提供冗余的机会。这种冗余可以包括例如使用第一图像捕捉设备和从该设备处理的图像来验证和/或补充通过从至少第二图像捕捉设备捕捉和处理图像信息而获得的信息。
[0137] 在一些实施例中,系统100将两个图像捕捉设备(例如,图像捕捉设备122和124)用在为车辆200提供导航辅助中,并使用第三图像捕捉设备(例如,图像捕捉设备126)来提供冗余并验证对从其它两个图像捕捉设备接收到的数据的分析。例如,在这种配置中,图像捕捉设备122和124可以提供用于通过系统100进行立体分析的图像以导航车辆200,而图像捕捉设备126可以提供用于通过系统100进行单目分析的图像以提供对基于从图像捕捉设备122和/或图像捕捉设备124捕捉的图像而获得的信息的冗余和验证。即,图像捕捉设备126(和对应的处理设备)可以被视为提供用于提供对从图像捕捉设备122和124得到的分析的检查的冗余子系统(例如,以提供自动紧急制动(AEB)系统)。此外,在一些实施例中,可基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器,从车辆外部的一个或多个收发器接收的信息等)来补充接收到的数据的冗余和验证。
[0138] 本领域的技术人员将认识到,上述相机配置、相机放置、相机数量、相机位置等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个系统描述的其它组件可以被组装并且在各种不同的配置中使用。关于使用多相机系统以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
[0139] 图4是可以存储/编程有用于执行与本公开实施例一致的一个或多个操作的指令的存储器140和/或存储器150的示范性功能性框图。虽然下面指代存储器140,但是本领域技术人员将认识到指令可以被存储在存储器140和/或存储器150中。
[0140] 如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行在被包含在存储器140中的任何模块402至408中所存储的指令。本领域技术人员将理解,在下面的讨论中,对处理单元110的参考可以单独地或统一地指代应用处理器180和图像处理器190。因此,任何以下处理的步骤可以由一个或多个处理设备来执行。
[0141] 在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与额外的传感信息(例如,来自雷达的信息)组合以执行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。
[0142] 在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与额外的传感信息(例如,来自雷达、激光雷达等的信息)组合以执行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合确定导航响应所讨论的。
[0143] 在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),该指令在由处理单元110执行时,执行对由从任意图像捕捉设备122、124和126中选择的图像捕捉设备的组合而获取的第一组和第二组图像的立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与额外的传感信息(例如,来自雷达的信息)组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕捉设备124获取的第一组图像和由图像捕捉设备126获取的第二组图像执行立体图像分析的指令。如下面结合图6所描述的,立体图像分析模块404可以包括用于检测第一组和第二组图像内的一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可实施与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
[0144] 在一个实施例中,速度和加速度模块406可以存储被配置为对从车辆200中配置为引起车辆200的速度和/或加速度的改变的一个或多个计算和机电设备接收到的数据进行分析的软件。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来计算车辆200的目标速率。这种数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速率、车辆200相对于道路的车道标记等的位置信息等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如油门调节系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速率。基于计算的目标速率,处理单元110可以向车辆200的油门调节系统220、制动系统230和/或转向系统的240传输电子信号,例如通过物理地压下制动器或松开车辆200的加速器,来触发速度和/或加速度的变化。
[0145] 在一个实施例中,导航响应模块408可以存储软件,该软件可由处理单元110执行以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来确定期望的导航响应。这种数据可以包括与附近的车辆、行人和道路对象相关联的位置和速率信息、车辆200的目标位置信息等。另外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的执行检测到的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如车辆200的油门调节系统220、制动系统230和转向系统240)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的油门调节系统220、制动系统230和转向系统
240传输电子信号以触发期望的导航响应,例如通过转动车辆200的方向盘以实现预定角度的旋转。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为对速度和加速度模块406的执行的输入,以用于计算车辆200的速率的改变。
[0146] 此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
[0147] 图5A是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例处理500A的流程图。在步骤510,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕捉设备122)可以捕捉车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并经过数据连接(例如,数字、有线、USB、无线、蓝牙等)将它们传输到处理单元110。在步骤520,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5B至5D进一步详细描述的。通过执行该分析,处理单元110可以在该组图像内检测一组特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯等。
[0148] 在步骤520,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这些危险的检测更加困难。在一些实施例中,处理单元110可以执行单目图像分析模块402来对该多个图像执行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3D地图。然后,处理单元110可以使用该3D地图来检测路面、以及存在于路面上的危险。
[0149] 在步骤530,处理单元110可以执行导航响应模块408以基于在步骤520中执行的分析和如以上结合图4描述的技术引起一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度变化等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起一个或多个导航响应。此外,多个导航响应可能同时地、按照顺序地或以其任意组合而发生。例如,处理单元110可以通过例如按照顺序地向车辆200的转向系统240和油门调节系统220传输控制信号,使得车辆200变换一个车道然后加速。可替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240传输控制信号,使得车辆200制动同时变换车道。
[0150] 图5B是示出与所公开的实施例一致的用于在一组图像中检测一个或多个的车辆和/或行人的示例处理500B的流程图。处理单元110可以执行单目图像分析模块402来实现处理500B。在步骤540,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定模式比较,并且在每个图像内识别可能包含感兴趣的对象(例如,车辆、行人或其部分)的可能的位置。预定模式可以以实现高“伪命中”率和低“漏掉”率的这种方式来设计。例如,处理单元110可以将低的相似性的阈值用在预定模式以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。
[0151] 在步骤542,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。这种标准可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性得到。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
[0152] 在步骤544,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
[0153] 在步骤546,处理单元110可以对于检测到的对象构建一组测量。这种测量可以包括例如与检测到的对象相关联的(相对于车辆200的)位置、速度和加速度值。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的、诸如卡尔曼滤波器或线性二次估计(LQE)的估计技术和/或基于对于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过执行步骤540至546,处理单元110可以识别在该组捕捉图像内出现的车辆和行人,并得到与该车辆和行人相关联的信息(例如,位置、速率、大小)。基于该识别和所得到的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
[0154] 在步骤548,处理单元110可以执行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的可能性。光流分析可以指,例如在一个或多个图像中分析相对于车辆200的、与其它车辆和行人相关联的并且区别于路面运动的运动模式。处理单元110可以通过跨越在不同时间捕捉到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用该位置和时间值作为对用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546执行光流分析,以提供检测车辆和行人的冗余,并提高系统100的可靠性。
[0155] 图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标记和/或车道几何信息的示例处理500C的流程图。处理单元110可以执行单目图像分析模块402来实现处理500C。在步骤550,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何信息以及其它相关的道路标记的分段(segment),处理单元110可以过滤该组对象以排除那些被确定为不相关的(例如,小坑洼、小石块等)。在步骤552,处理单元110可以将在步骤550中检测到的属于相同的道路标记或车道标记的分段分组在一起。基于该分组,处理单元110可以产生表示所检测到的分段的模型,诸如数学模型。
[0156] 在步骤554,处理单元110可以构建与所检测的分段相关联的一组测量。在一些实施例中,处理单元110可以创建所检测的分段从图像平面到现实世界平面上的投影。该投影可以使用具有与诸如所检测的道路的位置、斜率、曲率和曲率导数之类的物理属性对应的系数的三次多项式来表征。在产生该投影中,处理单元110可以考虑路面的变化、以及与车辆200相关联的俯仰(pitch)率和滚转(roll)率。此外,处理单元110可以通过分析出现在路面上的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰率和滚转率。
[0157] 在步骤556,处理单元110可以通过例如跨连续图像帧跟踪所检测到的分段并累积与检测到的分段相关联的逐帧数据来执行多帧分析。由于处理单元110执行多帧分析,在步骤554中构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过执行步骤550至556,处理单元110可以识别在该组捕捉图像中出现的道路标记并得到车道几何信息。基于该识别和所得到的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
[0158] 在步骤558,处理单元110可以考虑额外的信息源,以进一步产生车辆200在其周围的环境中的安全模型。处理单元110可以使用该安全模型来定义系统100可以在其中以安全的方式执行车辆200的自主控制的环境。为产生该安全模型,在一些实施例中,处理单元110可以考虑其它车辆的位置和运动、所检测的路缘和护栏、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑额外的信息源,处理单元110可以提供用于检测道路标记和车道几何结构的冗余,并增加系统100的可靠性。
[0159] 图5D是示出了与所公开的实施例一致的用于在一组图像中检测交通灯的示例处理500D的流程图。处理单元110可以执行单目图像分析模块402来实现处理500D。在步骤560,处理单元110可以扫描该组图像,并识别出现在图像中的可能包含交通灯的位置处的对象。例如,处理单元110可以过滤所识别的对象来构造一组候选对象,排除不可能对应于交通灯的那些对象。过滤可以基于与交通灯相关联的诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等之类的各种属性来进行。这种属性可以基于交通灯和交通控制信号的多个示例并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象执行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些移动的对象(其不可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并识别出现在可能的交通灯内的所检测到的颜色的相对位置。
[0160] 在步骤562,处理单元110可以分析交叉口的几何形状。该分析可以基于以下的任意组合:(i)在车辆200的任一侧检测到的车道的数量、(ii)在道路上检测到的标记(如箭头标记)、和(iii)从地图数据(例如,来自地图数据库160的数据)提取的交叉口的描述。处理单元110可以使用从单目分析模块402的执行得到的信息来进行分析。此外,处理单元110可以确定在步骤560中检测到的交通灯和在车辆200附近出现的车道之间的对应性。
[0161] 在步骤564,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何形状和所检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数量与实际出现在交叉口处的交通灯的数量比较可能影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改进安全条件。通过执行步骤560至564,处理单元110可以识别出现在该组捕捉图像内的交通灯,并分析交叉口几何形状信息。基于该识别和分析,处理单元110可以引起车辆200中一个或多个导航响应,如以上结合图5A所描述的。
[0162] 图5E是示出了与所公开的实施例一致的、用于基于车辆路径引起车辆中的一个或多个导航响应的示例处理500E的流程图。在步骤570,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的线段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
[0163] 在步骤572,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的距离dk小于上述距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度的累积距离向量S(即,基于表示车辆路径的该组点)。
[0164] 在步骤574,处理单元110可以基于在步骤572构建的更新的车辆路径来确定前视点(look-ahead point)(以坐标表达为(xl,zl))。处理单元110可以从累积距离向量S提取前视点,并且该前视点可以与前视距离和前视时间相关联。前视距离可以具有范围为从10米至20米的下限,可以被计算为车辆200的速率和前视时间的乘积。例如,随着车辆200的速率下降,前视距离也可以减小(例如,直到它到达下限)。前视时间的范围可以从0.5到1.5秒,可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于横摆角速率环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
[0165] 在步骤576,处理单元110可以基于在步骤574中确定的前视点来确定航向误差和横摆角速率命令。处理单元110可以通过计算前视点的反正切,例如arctan(xl,zl)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2×车辆200的速率/前视距离)。
[0166] 图5F是示出了与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例处理500F的流程图。在步骤580,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5A和图5B所描述的技术来确定前方车辆的位置、速度(例如,方向和速率)和/或加速度。处理单元110还可以使用以上结合图5E所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(snail trail)(例如,描述前方车辆所采取的路径的一组点)。
[0167] 在步骤582,处理单元110可以分析在步骤580中确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化(variance)超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路上0.3至0.4米,以及在急转弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其它车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以额外地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其它车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率和道路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
[0168] 在另一个实施例中,处理单元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可以确定(较近的)前方车辆很可能正在改变车道。
[0169] 在步骤584,处理单元110可以基于在步骤582进行的分析确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582执行的各个分析的加权平均来做出该确定。在这种方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变通道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582中执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。此外,在一些实施例中,所述分析可以利用经训练的系统(例如,机器学习深度学习系统),其可以例如基于在当前位置处捕捉的图像来估计在车辆当前位置前方的未来路径。
[0170] 图6是示出了与所公开的实施例一致的用于基于立体图像分析引起一个或多个导航响应的示例处理600的流程图。在步骤610,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202和204的图像捕捉设备122和124)可以捕捉在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
[0171] 在步骤620,处理单元110可以执行立体图像分析模块404来执行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3D地图并检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、道路危险等。立体图像分析可以以类似于以上结合图5A-图5D描述的步骤的方式来执行。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标记、交通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并对剩余的候选对象执行多帧分析、构建测量、并确定置信度水平。在执行上述步骤中,处理单元110可以考虑来自第一和第二多个图像二者的信息,而不是来自单独一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像二者中的候选对象的像素级数据(或来自捕捉图像的两个流中的其它数据子集)的差异。作为另一示例,处理单元110可以通过观察候选对象在多个图像的一个中出现而未在另一个中出现,或相对于可能相对于出现在两个图像流中的对象而存在的其它差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流中的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
[0172] 在步骤630中,处理单元110可以执行导航响应模块408,以基于在步骤620中执行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任意组合而发生。
[0173] 图7是示出了与所公开的实施例一致的用于基于对三组图像的分析来引起一个或多个导航响应的示例处理700的流程图。在步骤710中,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202、204和206的图像捕捉设备122、124和126)可以捕捉在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕捉设备122、124、126的每个可以具有用于向处理单元110传送数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
[0174] 在步骤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的特定配置或对第一、第二和第三多个图像进行的分析的类型。
[0175] 在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对系统100执行测试。这种测试可以提供对于图像获取设备122、124和126的某些配置的系统100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,系统100不正确地确定车辆或行人的存在的情况)和“漏掉”的比例。
[0176] 在步骤730,处理单元110可以基于从第一、第二和第三多个图像中的两个得到的信息引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数量、类型和大小。处理单元110还可以基于图像质量和分辨率、图像中反映的有效视场、捕捉的帧的数量、一个或多个感兴趣的对象实际出现在帧中的程度(例如,其中出现有对象的帧的百分比、出现在每个这种帧中的对象的比例)等进行选择。
[0177] 在一些实施例中,处理单元110可以通过确定从一个图像源得到的信息与从其它图像源得到的信息的相一致的程度,对从第一、第二和第三多个图像中的两个得到的信息进行选择。例如,处理单元110可以将从图像捕捉设备122、124和126的每个得到的处理后的信息组合(无论通过单目分析、立体分析、还是两者的任意组合),并确定在从图像捕捉设备122、124和126的每个捕捉到的图像之间相一致的视觉指示符(例如,车道标记、检测到的车辆及其位置和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕捉到的图像之间不一致的信息(例如,正改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于对相一致和不一致的信息的确定,来选择从第一、第二和第三多个图像的两个得到的信息。
[0178] 导航响应可以包括例如转向、车道变换、加速度的改变等。处理单元110可以基于在步骤720所执行的分析和如以上结合图4所描述的技术引起一个或多个导航响应。处理单元110还可以使用从速度和加速度模块406的执行得到的数据引起一个或多个导航响应。在一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任意组合而发生。
[0179] 强化学习和经训练的导航系统
[0180] 下面的部分讨论自主驾驶以及用于完成车辆的自主控制的系统和方法,无论该控制是完全自主的(自驾驶车辆)还是部分自主的(例如,一个或多个驾驶员辅助系统或功能)。如图8所示,自主驾驶任务可以被划分为三个主要模块,包括感测模块801、驾驶策略模块803和控制模块805。在一些实施例中,模块801、803和805可以被存储在系统100的存储器单元140和/或存储器单元150中,或者模块801、803和805(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。此外,本文公开的任何模块(例如,模块801、803和805)可以实施与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
[0181] 可以使用处理单元110实施的感测模块801可以处理与感测主车辆的环境中的导航状态有关的各种任务。这些任务可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入。这些输入可以包括来自一个或多个车载相机的图像或图像流、GPS位置信息、加速度计输出、用户反馈或对一个或多个用户接口设备的用户输入、雷达、激光雷达等。可以包括来自相机和/或任何其他可用的传感器的数据以及地图信息的感测可以被收集、分析并且制定成“感测到的状态”,该感测到的状态描述从主车辆的环境中的场景提取的信息。该感测到的状态可以包括与目标车辆、车道标记、行人、交通灯、道路几何形状、车道形状、障碍物、到其他对象/车辆的距离、相对速度、相对加速度有关的感测到的信息,以及任何其他潜在的感测到的信息。可以实施监督式机器学习,以便基于提供给感测模块801的感测到的数据产生感测状态输出。感测模块的输出可以表示主车辆的感测到的导航“状态”,其可以被传递至驾驶策略模块803。
[0182] 尽管可以基于从与主车辆相关联的一个或多个相机或图像传感器接收的图像数据产生感测到的状态,但是还可以使用任何合适的传感器或传感器组合来产生在导航中使用的感测到的状态。在一些实施例中,可以在不依赖捕捉的图像数据的情况下产生感测到的状态。实际上,本文描述的任何导航原理可应用于基于捕捉的图像数据产生的感测到的状态以及使用其他基于非图像的传感器产生的感测到的状态。感测到的状态还可以经由主车辆外部的源来确定。例如,可以全部或部分地基于从远离主车辆的源接收的信息(例如,基于从其他车辆共享的、从中央服务器共享的、或来自与主车辆的导航状态有关的任何其他信息源的传感器信息、经处理的状态信息等),来产生感测到的状态。
[0183] 驾驶策略模块803(在下文作更详细地讨论并且可以使用处理单元110来实施)可以实施期望的驾驶策略,以便响应于感测到的导航状态决定主车辆要采取的一个或多个导航动作。如果在主车辆的环境中不存在其他作用者(agent)(例如,目标车辆或行人),则可以以相对直接的方式处理输入到驾驶策略模块803的感测到的状态。当感测到的状态需要与一个或多个其他作用者进行协商时,任务变得更加复杂。用于生成驾驶策略模块803的输出的技术可以包括强化学习(下文更详细地讨论)。驾驶策略模块803的输出可以包括主车辆的至少一个导航动作,并且可以包括期望的加速度(其可以转化为主车辆的更新的速度)、主车辆的期望横摆率、期望的轨迹、以及其他潜在的期望导航动作。
[0184] 基于来自驾驶策略模块803的输出,同样可以使用处理单元110实施的控制模块805可以产生用于与主车辆相关联的一个或多个致动器或受控设备的控制指令。这种致动器和设备可以包括加速器、一个或多个转向控制器、制动器、信号传输器、显示器或可以作为与主车辆相关联的导航操作的一部分而被控制的任何其它致动器或设备。控制理论的方面可以被用来生成控制模块805的输出。控制模块805可以负责产生并且输出指令至主车辆的可控组件,以便实施驾驶策略模块803的期望的导航目标或要求。
[0185] 回到驾驶策略模块803,在一些实施例中,可以使用通过强化学习训练的经训练的系统来实施驾驶策略模块803。在其他实施例中,驾驶策略模块803可以在不用机器学习方法的情况下、通过使用指定的算法来“手动”解决自主导航期间可能出现的各种情景来实施。然而,这种方法虽然可行,但可能导致驾驶策略过于简单化,并且可能缺乏基于机器学习的经训练的系统的灵活性。例如,经训练的系统可能会更好地配备来处理复杂的导航状态,并且可以更好地确定出租车是在停车还是停下车来接/送乘客;确定行人是否意图穿过主车辆前的街道;防御性地平衡其他驾驶员的意外行为;在牵涉目标车辆和/或行人的密集交通中协商;决定何时暂停(suspend)某些导航规则或增强(augment)其他规则;预期未感测到但预期到的状况(例如,行人是否会从汽车或障碍物后面冒出);等等。基于强化学习的经训练的系统还可以更好地配备来解决连续且高维度的状态空间以及连续的动作空间。
[0186] 使用强化学习对系统进行训练可以涉及学习驾驶策略,以便从感测到的状态映射到导航动作。驾驶策略是函数π:S→A,其中S是一组状态,而 是动作空间(例如,期望的速率、加速度、横摆命令等)。状态空间是S=Ss×Sp,其中Ss是感测状态,且Sp是关于通过该策略所保存的状态的附加信息。以离散的时间间隔工作,在时间t处,可以观察当前状态st∈S,并且可以应用该策略来获得期望的动作at=π(st)。
[0187] 可以通过暴露于各种导航状态,使该系统应用该策略,提供奖励(基于被设计为奖励期望导航行为的奖励函数),来训练该系统。基于奖励反馈,该系统可以“学习”该策略,并且变得在产生期望导航动作方面是经训练的。例如,学习系统可以观察当前状态st∈S,并且基于策略 来决定动作at∈A。基于所决定的动作(以及该动作的实施),环境移至下一个状态st+1∈S,以由该学习系统观察。对于响应于观察到的状态而产生的每个动作,对该学习系统的反馈是奖励信号r1,r2,...。
[0188] 强化学习(RL)的目标是找到策略π。通常假设:在时间t处,存在奖励函数rt,其测量处于状态st并采取动作at的瞬时质量。然而,在时间t处采取动作at影响了环境,并因此影响未来状态的值。因此,当决定采取何种动作时,不仅应考虑当前的奖励,还应考虑未来的奖励。在某些情况下,当系统确定如果现在采用较低奖励选项则在将来可能实现更高的奖励时,则即使某一动作与低于另一个可用选项的奖励相关联,该系统也应采取该动作。为了对此形式化,观察到策略π以及初始状态s归纳出在 上的分布,其中如果作用者在状态s0=s处开始并从那里开始遵循策略π,则向量(r1,…,rT)的概率为观察到奖励r1,…,rT的概率。初始状态s的值可定义为:
[0189]
[0190] 代替将时间范围限定为T,可以对未来奖励打折扣(discount),以对于一些固定的γ∈(0,1),定义:
[0191]
[0192] 在任何情况下,最佳策略是下式的解:
[0193]
[0194] 其中,期望(expectation)在初始状态s之上。
[0195] 有若干种可能用于训练驾驶策略系统的方法。例如,可以使用模仿(imitation)方法(例如,行为克隆),在该方法中,系统从状态/动作对中学习,其中动作是好的作用者(例如,人类)响应于特定的观察到的状态而会选择的那些动作。假设观察人类驾驶员。通过这个观察,许多形式为(st,at)的示例(其中st是状态,而at是人类驾驶员的动作)可以被获得、观察并且用作训练驾驶策略系统的基础。例如,监督式学习可以用来学习策略π,使得π(st)≈at。这种方法有许多潜在的优点。首先,不要求定义奖励函数。其次,该学习是受监督的并且是离线发生的(不需要在学习过程中应用作用者)。这种方法的缺点在于:不同的人类驾驶员、甚至是相同的人类驾驶员在其策略选择中并不是确定性的。因此,对于||π(st)-at||非常小的函数的学习通常是不可行的。而且,随着时间的推移,即使是小的误差也可能会累积而产生较大的误差。
[0196] 可以采用的另一种技术是基于策略的学习。此处,可以以参数形式来表达策略,并且使用合适的优化技术(例如,随机梯度下降)直接对策略进行优化。该方法是直接对以给出的问题进行求解。当然还有很多方法可以对这个问题求解。这种方法的一个优点在于:其直接解决了问题,因此往往导致良好的实际结果。一个潜在的缺点是:
其往往需要“在线策略”训练,即π的学习是迭代过程,其中在迭代j时,具有非完美的策略πj,并为了构造下一个策略πj,必须在基于πj动作的同时与环境进行交互。
[0197] 系统还可以通过基于值的学习(学习Q或V函数)来训练。假设,良好近似能够学习到最佳值函数V*。可以构建最佳策略(例如,依靠贝尔曼方程(Bellman equation))。有些版本的基于值的学习可以离线实施(称为“离线策略”训练)。基于值的方法的一些缺点可能是由于其强烈依赖于尔可夫假设(Markovian assumptions)以及需要对复杂函数的近似(相比直接对策略近似,对值函数的近似可能更难)。
[0198] 另一种技术可以包括基于模型的学习和规划(学习状态转换的概率并对寻找最优V的优化问题求解)。这些技术的组合也可以用来训练学习系统。在这种方法中,可以学习过程的动态性,即,采取(st,at)并在下一个状态st+1上产生分布的函数。一旦学习了这个函数,可以求解最佳问题,以找到其值为最佳的策略π。这就是所谓的“规划”。这种方法的一个优点可能在于:学习部分受到监督,并且可以通过观察三元组(st,at,st+1)而被离线应用。类似于“模仿”方法,这种方法的一个缺点可能在于:学习过程中小的误差可能积累并产生未充分执行的策略。
[0199] 用于训练驾驶策略模块803的另一种方法可以包括将驾驶策略函数分解为语义上有意义的分量。这允许手动实施该策略的某些部分,这可以确保策略的安全性;以及可以使用强化学习技术来实施策略的其他部分,这可以适应性地实现于许多情景、防御性/侵略性行为之间的类似于人的平衡、以及与其他驾驶员的类似于人的协商。从技术角度而言,强化学习方法可以结合几种方法,并提供易于操作的训练程序,其中大部分训练可以使用记录的数据或自行构建的模拟器来执行。
[0200] 在一些实施例中,驾驶策略模块803的训练可以依赖于“选项”机制。为了说明,考虑双车道高速公路的驾驶策略的简单情景。在直接RL方法中,策略π将状态映射到中,其中π(s)的第一个分量是期望的加速度命令,且π(s)的第二个分量是横摆率。在经修改的方法中,可以构建以下策略:
[0201] 自动巡航控制(ACC)策略oACC:S→A:该策略总是输出为0的横摆率,并且仅改变速率以实现平稳且无事故的驾驶。
[0202] ACC+左策略,oL:S→A:该策略的纵向命令与ACC命令相同。横摆率是将车辆朝左车道的中间居中同时确保安全的横向移动(例如,如果在左侧有车,则不向左移动)的直接实施方式。
[0203] ACC+右策略,oR:S→A:与oL相同,但是车辆可以朝右车道的中间居中。
[0204] 这些策略可以被称为“选项”。依靠这些“选项”,可以学习选择了选项的策略πo:S→O,其中O是一组可用选项。在一个情况下,O={oACC,oL,oR}。选项选择器策略πo通过对每个s设置 来定义实际的策略π:S→A。
[0205] 实践中,策略函数可以被分解为选项图901,如图9所示。图10中示出了另一个示例选项图1000。选项图可以表示被组织为有向非循环图(DAG)的分层决策集。存在一个称为图的根(root)节点903的特殊节点。该节点不具有进入(incoming)节点。决策过程从根节点开始遍历整个图,直到其到达“叶”节点,该叶节点是指没有外出(outgoing)决策线的节点。如图9所示,叶节点可以包括例如节点905、907和909。在遇到叶节点时,驾驶策略模块803可以输出与期望导航动作相关联的加速和转向命令,该期望导航动作与叶节点相关联。
[0206] 内部节点(诸如节点911、913和915)例如可引起一策略的实施,该策略在其可用选项中选择子代(child)。内部节点的可用子代的集合包括经由决策线与特定内部节点相关联的所有节点。例如,图9中被指定为“并道(merge)”的内部节点913包括各自通过决策线与节点913相连的三个子代节点909、915和917(分别为“保持”、“右超车”和“左超车”)。
[0207] 可以通过使节点能够调节其在选项图的层级中的位置而获得决策制定系统的灵活性。例如,可以允许任何节点声明自己为“关键(critical)”。每个节点可以实施“是关键的(is critical)”的函数,如果节点处于其策略实施的关键部分,则该函数输出“真”。例如,负责超车的节点可以在操纵中途声明自己为关键。这可对节点u的可用子代的集合施加约束,该节点u的可用子代可以包括作为节点u的子代的所有节点v,并且存在从v到叶节点的经过所有被指定为关键的节点的路径。一方面,这种方法可以允许在每个时间步在图上声明期望路径,同时另一方面,可以保留策略的稳定性,特别是在策略的关键部分正在被实施之时。
[0208] 通过定义选项图,学习驾驶策略π:S→A的问题可以被分解成为图中的每个节点定义策略的问题,其中内部节点处的策略应当从可用的子代节点之中进行选择。对于一些节点,相应的策略可以手动实现(例如,通过如果-则(if-then)类型算法来指定响应于观察到的状态的一组动作),而对于其他策略可以使用通过强化学习构建的经训练的系统来实施。手动或经训练/学习的方法之间的选择可以取决于与任务相关联的安全方面以及取决于其相对简单性。可以以使得一些节点直接实施、而其他节点可以依赖于经训练的模型的方式,来构建选项图。这种方法可以确保系统的安全运行。
[0209] 以下讨论提供了关于在驾驶策略模块803内的如图9中的选项图的作用的进一步细节。如上所述,对驾驶策略模块的输入是“感测到的状态”,其概括了环境图,例如,从可用的传感器获得的。驾驶策略模块803的输出是一组期望(可选地连同一组硬性约束),该组期望将轨迹定义为对优化问题的解。
[0210] 如上所述,选项图表示被组织为DAG的分层决策集。存在称为图的“根”的特殊节点。根节点是没有进入边(例如,决策线)的唯一节点。决策过程从根节点开始遍历该图,直到其到达“叶”节点,所述叶节点即没有外出边的节点。每个内部节点应当实施在其可用的子代之中挑选一个子代的策略。每个叶节点应实施基于从根到叶的整个路径定义了一组期望(例如,主车辆的一组导航目标)的策略。基于感测到的状态而被直接定义的该组期望连同一组硬性约束一起建立了优化问题,该优化问题的解是车辆的轨迹。可以采用硬性约束来进一步提高系统的安全性,并且该期望可以用于提供系统的驾驶舒适性和类似于人的驾驶行为。作为优化问题的解而提供的轨迹进而定义了应该提供给转向、制动和/或引擎致动器的命令,以便完成该轨迹。
[0211] 返回图9,选项图901表示双车道高速公路的选项图,包括并入车道(意味着在某些点,第三车道并入到高速公路的右侧车道或左侧车道中)。根节点903首先决定主车辆是处于普通道路情景还是接近并道情景。这是可以基于感测状态而实施的决策的示例。普通道路节点911包括三个子节点:保持节点909、左超车节点917和右超车节点915。保持是指主车辆想要继续在相同车道中行驶的情况。保持节点是叶节点(没有外出边/线)。因此,保持节点定义了一组期望。其定义的第一个期望可以包括期望的横向位置——例如,尽可能靠近当前行驶车道的中心。还可以期望平稳地导航(例如,在预定的或允许的加速度最大值内)。保持节点还可以定义主车辆如何对其他车辆作出反应。例如,保持节点可以查看感测到的目标车辆并且为每个车辆分配语义含义,该语义含义可以被转换成轨迹的分量。
[0212] 各种语义含义可以被分配给主车辆的环境中的目标车辆。例如,在一些实施例中,语义含义可以包括以下指定中的任何指定:1)不相关:指示场景中感测到的车辆当前不相关;2)下一车道:指示感测到的车辆在相邻车道中并且相对于该车辆应当保持适当的偏移(精确的偏移可以在优化问题中计算,该优化问题在给定期望和硬性约束下构建轨迹,并且该精确的偏移可以潜在地是取决于车辆的——选项图的保持叶设定目标车辆的语义类型,其定义相对于目标车辆的期望);3)让路:主车辆将尝试通过例如降低速度(特别是在主车辆确定目标车辆可能切入主车辆的车道的情况下)让路给感测到的目标车辆;4)占道(take way):主车辆将尝试通过例如增加速度占用路权;5)跟随:主车辆期望跟随在该目标车辆后保持平稳驾驶;6)左/右超车:这意味着主车辆想要发起到左或右车道的变道。左超车节点917和左超车节点915是尚未定义期望的内部节点。
[0213] 选项图901中的下一个节点是选择间隙节点919。该节点可以负责选择主车辆期望进入的特定目标车道中的两个目标车辆之间的间隙。通过选择形式IDj的节点,对于j的某个值,主车辆到达为轨迹优化问题指定了期望的叶——例如,主车辆希望进行操纵以便到达所选择的间隙。这种操纵可能涉及首先在当前车道加速/制动,然后在适当的时间前往目标车道以进入所选择的间隙。如果选择间隙节点919不能找到适当的间隙,则其移动到中止节点921,所述中止节点921定义了回到当前车道的中心并取消超车的期望。
[0214] 返回到并道节点913,当主车辆接近并道时,其具有可取决于特定情况的若干选项。例如,如图11A所示,主车辆1105沿着双车道道路行驶,其中在双车道道路的主车道或并入车道1111中没有检测到其他目标车辆。在这种情况下,驾驶策略模块803在到达并道节点913时可以选择保持节点909。也就是说,在没有目标车辆被感测为并道到道路上的情况下,可以期望保持在其当前车道内。
[0215] 在图11B中,情况稍有不同。此处,主车辆1105感测从并入车道1111进入主要道路1112的一个或多个目标车辆1107。在这种情况下,一旦驾驶策略模块803遇到并道节点913,它可以选择发起左超车操纵,以避免并道情况。
[0216] 在图11C中,主车辆1105遇到从并入车道1111进入主要道路1112的一个或多个目标车辆1107。主车辆1105还检测在与主车辆的车道相邻的车道中行驶的目标车辆1109。主车辆还检测到在与主车辆1105相同的车道上行驶的一个或多个目标车辆1110。在这种情况下,驾驶策略模块803可以决定调节主车辆1105的速率,以为目标车辆1107让路并且行进在目标车辆1115前面。这可以例如通过以下方式来实现:进行到选择间隙节点919,该间隙节点919进而将选择ID0(车辆1107)和ID1(车辆1115)之间的间隙作为适当的并道间隙。在这种情况下,并道情况的适当间隙定义了轨迹规划器优化问题的目标。
[0217] 如上所述,选项图的节点可以将其自己声明为“关键”,这可以确保所选择的选项通过关键节点。形式上,每个节点可以实施IsCritical函数。在选项图上从根到叶执行正向传递,并且对轨迹规划器的优化问题求解之后,可以从叶返回到根执行反向传递。沿着这个反向传递,可以调用传递中所有节点的IsCritical函数,并且可以保存所有关键节点的列表。在对应于下一时间帧的正向路径中,可能需要驾驶策略模块803选择从根节点到叶的经过所有关键节点的路径。
[0218] 图11A至图11C可用于显示该方法的潜在益处。例如,在发起超车动作并且驾驶策略模块803到达对应于IDk的叶的情况下,例如当主车辆处于超车操纵的中途时,选择保持节点909将会是不期望的。为了避免这种跳动,IDj节点可以将其自己指定为关键。在操纵期间,可以监测轨迹规划器的成功,并且如果超车操纵按预期进行,则函数IsCritical将返回“真”值。此方法可以确保在下一时间帧内,超车操纵将继续(而不是在完成最初选择的操纵之前跳到另一个潜在不一致的操纵)。另一方面,如果对操纵的监测指示所选择的操纵没有按预期进行,或者如果操纵变得不必要或不可能,则IsCritical函数可以返回“假”值。这可以允许选择间隙节点在下一时间帧中选择不同的间隙,或完全中止超车操纵。此方法一方面可以允许在每个时间步在选项图上声明期望的路径,同时在另一方面,可以在执行的关键部分时帮助提高策略的稳定性。
[0219] 硬性约束可以与导航期望不同,这将在下面更详细地讨论。例如,硬性约束可以通过对规划的导航动作应用附加的过滤层来确保安全驾驶。可以根据感测到的状态来确定所涉及的硬性约束,所述硬性约束可以被手动地编程和定义,而不是通过使用基于强化学习建立的经训练的系统。然而,在一些实施例中,经训练的系统可以学习要应用和遵循的可适用的硬性约束。这种方法可以促使驾驶策略模块803到达已经符合可适用的硬性约束的所选动作,这可以减少或消除可能需要之后修改以符合可适用的硬性约束的所选动作。尽管如此,作为冗余安全措施,即使在驾驶策略模块803已经被训练以应对预定硬性约束的情况下,也可以对驾驶策略模块803的输出应用硬性约束。
[0220] 存在许多潜在的硬性约束的示例。例如,可以结合道路边缘上的护栏来定义硬性约束。在任何情况下,均不允许主车辆通过护栏。这种规则对主车辆的轨迹产生了硬性横向约束。硬性约束的另一个示例可以包括道路颠簸(例如,速率控制颠簸),其可以在颠簸之前以及正穿过颠簸时引起对驾驶速度的硬性约束。硬性约束可以被认为是安全关键的,因此可以手动定义,而不是仅仅依靠在训练期间学习约束的经训练的系统。
[0221] 与硬性约束相比,期望的目标可以是实现或达到舒适的驾驶。如以上所讨论的,期望的示例可以包括将主车辆置于车道内的与主车辆车道的中心对应的横向位置处的目标。另一个期望可能包括适合进入的间隙的ID。注意,主车辆不需要精确地处于车道中心,而是,尽可能靠近它的期望可以确保,即使在偏离车道中心的情况下,主车辆也倾向于迁移到车道的中心。期望可以不是安全关键的。在一些实施例中,期望可能需要与其他驾驶员和行人协商。构建期望的一种方法可以依赖于选项图,并且在图的至少一些节点中实现的策略可以基于强化学习。
[0222] 对于实现为基于学习训练的节点的选项图901或1000的节点,训练过程可以包括将问题分解成监督式学习阶段和强化学习阶段。在监督式学习阶段,可以学习从(st,at)到的可微(differentiable)映射,使得 这可以类似于“基于模型”的强化学习。然而,在网络的前向环路中,可以用st+1的实际值来代替 从而消除了误差累积的问题。 预测的作用是将消息从未来传播回过去的动作。从这个意义上讲,该算法可以是“基于模型”的强化学习与“基于策略的学习”的组合。
[0223] 在某些情景下可以提供的重要元素是从未来损失/奖励回到对动作的决策的可微路径。通过选项图结构,涉及安全约束的选项的实现通常是不可微的。为了克服这个问题,对学习的策略节点中的子代的选择可以是随机的。也就是说,节点可以输出概率向量p,其(1) (k)分配用于选择特定节点的每个子代的概率。假设节点有k个子代,并令a ,...,a 为从每个子代到叶的路径的动作。所得到的预测动作因此为 这可能导致从该动作
到p的可微路径。在实践中,动作a可以被选择为对于i~p的a(i),并且a和 之间的差可以被称为加性噪声。
[0224] 对于给定st,at下 的训练,可以将监督式学习与真实数据一起使用。对于节点策略的训练,可以使用模拟器。之后,可以使用真实数据完成策略的微调。两个概念可以使模拟更加真实。首先,使用模仿,可以使用“行为克隆”范式,使用大型现实世界数据集来构建初始策略。在某些情况下,所得到的作用者可以是合适的。在其他情况下,所得到的作用者至少为道路上的其他作用者形成了非常好的初始策略。其次,使用自我发挥(self-play),我们自己的策略可被用来加强训练。例如,给定了可以是有经验的其他作用者(汽车/行人)的初步实施,则可以基于模拟器对策略进行训练。一些其他作用者可被新的策略取代,并且可以重复该过程。因此,该策略能够继续改善,因为其应该对更多种类的具有不同复杂等级的其他作用者做出响应。
[0225] 此外,在一些实施例中,系统可以实施多作用者的方法。例如,该系统可以考虑来自各种源的数据和/或从多个角度捕捉的图像。此外,一些公开的实施例可以提供能量的经济性,因为可以考虑不直接涉及主车辆但对主车辆可能产生影响的事件的预期,或者甚至对可能导致涉及其他车辆的不可预测情况的事件的预期可以是考虑因素(例如,雷达可能会“看穿(see through)”前方车辆以及不可避免的预期、或者甚至将影响主车辆的事件的高可能性)。
[0226] 带有施加的导航约束的经训练的系统
[0227] 在自主驾驶的情况下,重要关注的是如何确保经训练的导航网络的经学习的策略是安全的。在一些实施例中,可以使用约束来训练驾驶策略系统,使得由经训练的系统选择的动作已经可以应对(account for)可适用的安全约束。另外,在一些实施例中,可以通过将经训练的系统的所选动作传递经过主车辆的环境中的特定的感测到的场景所涉及的一个或多个硬性约束,来提供额外的安全层。这种方法可以确保主车辆采取的动作仅限于被确认为满足可适用的安全约束的那些动作。
[0228] 在其核心,导航系统可以包括基于将观察到的状态映射到一个或多个期望动作的策略函数的学习算法。在一些实施方式中,学习算法是深度学习算法。期望动作可以包括预期使车辆的预期奖励最大化的至少一个动作。虽然在一些情况下,车辆采取的实际动作可以对应于期望动作中的一个,但是在其他情况下,可以基于观察到的状态、一个或多个期望动作和对学习导航引擎施加的非学习的硬性约束(例如,安全约束)来确定采取的实际动作。这些约束可以包括围绕各种类型的检测到的对象(例如,目标车辆、行人、道路侧或道路上的静止对象、道路侧或道路上的移动对象、护栏等等)的禁止驾驶区。在一些情况下,该区的大小可以基于检测到的对象的检测到的运动(例如,速率和/或方向)而变化。其他约束可以包括在行人的影响区内穿行时的最大行驶速度、最大减速率(来应对主车辆后方的目标车辆间距)、在感测到的人行横道或路道口处的强制停止等。
[0229] 与通过机器学习训练的系统结合使用的硬性约束可以在自主驾驶中提供一定程度的安全性,其可以超过仅基于经训练的系统的输出可达到的安全性程度。例如,可以使用期望的一组约束作为训练指导来训练机器学习系统,并且因此,经训练的系统可以响应于感测到的导航状态而选择动作,该动作应对并遵守可适用的导航约束的限制。然而,经训练的系统在选择导航动作方面仍具有一定的灵活性,并且因此,至少在某些情况下,由经训练的系统选择的动作可以不严格遵守相关的导航约束。因此,为了要求所选动作严格遵守相关的导航约束,可以使用在学习/经训练的框架之外的、保证严格适用相关的导航约束的非机器学习组件对经训练的系统的输出进行组合、比较、过滤、调节、修改等。
[0230] 以下讨论提供了关于经训练的系统以及从将经训练的系统与经训练的/学习框架外的算法组件组合收集的潜在益处(特别是从安全角度而言)的附加细节。如前所述,可以通过随机梯度上升来优化策略的强化学习目标。目标(例如,预期奖励)可以被定义为[0231] 涉及期望的目标可以用于机器学习情景中。然而,这样的目标,在不受限于导航约束的情况下,可能不会返回严格受限于这些约束的动作。例如,考虑一奖励函数,其中,表示要避免的罕见“困境(corner)”事件(例如,诸如事故)的轨迹,而 表示其余的轨迹,学习系统的一个目标可以是学习执行超车操纵。通常,在无事故的轨迹中,将会奖励成功、平稳的超车,并且惩罚在车道中停留而未完成超车——因此,范围为[-1,1]。如果序列 代表事故,那么奖励-r应该提供足够高的惩罚来阻止这种事件发生。问题是确保无事故驾驶的值r应该是什么。
[0232] 观察到,事故对 的影响是附加项-pr,其中p是带有事故事件的轨迹的概率质量。如果该项是可以忽略不计的,即,p<<1/r,则学习系统可以更经常优选执行了事故的策略(或者通常采用不计后果的驾驶策略),以便成功地履行超车操纵,而不是以某些超车操纵没有成功完成为代价而会更加防御性的策略。换言之,如果事故的概率至多为p,那么必须设定r使得r>>1/p。可以期望使p非常小(例如,在p=10-9的数量级)。因此,r应该很大。在策略梯度中,可以估计 的梯度。以下引理表明,随机变量 的方差随着2
pr 而变大,该方差对于r>>1/p而言是大于r的。因此,估计目标可能是困难的,估计其梯度可能更加困难。
[0233] 引理:令πo为策略,并且令p和r是标量,使得在概率p下获得 并且在概率1-p下获得 那么,
[0234]
[0235] 其中,最终近似适用于r≥1/p的情况。
[0236] 该讨论表明,形式为 的目标可能不会确保功能性安全而不引起方差问题。用于降低方差的基线减法方法可能无法为该问题提供足够的补救措施,因为该问题将从的高方差转移到基线常数的同样高的方差,该基线常数的估计同样会受到数值不稳定性的影响。并且,如果事故的概率为p,那么在获得事故事件之前,应平均对至少1/p个序列(sequences)进行采样。这意味着,用于旨在使 最小化的学习算法的序列的样本的下限为1/p个。这个问题的解可以在本文描述的架构设计中找到,而不是通过数字调节技术。此处的方法是基于这样的观念,即硬性约束应该在学习框架之外注入。换言之,策略函数可以分解为可学习部分和不可学习部分。形式上,策略函数可以被构造为
其中 将(不可知的)状态空间映射到一组期望(例如,期望的导航
目标等),而π(T)将该期望映射到轨迹(其可确定汽车在短距离内应该如何移动)。函数π(T)负责驾驶的舒适性和制定策略性决定,诸如哪些其他汽车应该被超车或被让路、以及主车辆在其车道内的期望位置是什么等等。从感测到的导航状态到期望的映射是策略 其可以通过使预期奖励最大化而从经验中学习。由 产生的期望可以转化为对于驾驶轨迹的代价函数。函数π(T)并非学习的函数,其可以通过找到使在功能性安全方面受到硬性约束的代价最小化的轨迹来实现。这种分解可以确保功能性安全,与此同时提供舒适的驾驶。
[0237] 如图11D所示,双并道导航情况提供了进一步示出这些概念的示例。在双并道中,车辆从左侧和右侧两侧接近并道区域1130。并且,来自各侧的车辆(诸如车辆1133或车辆1135)可以决定是否并道至并道区域1130的另一侧的车道中。在繁忙交通中成功执行双并道可能需要显著的协商技巧和经验,并且可能难以通过枚举场景中所有作用者可能采取的所有可能的轨迹而以启发式或蛮力方法来执行。在该双并道的示例中,可以定义适合于双并道操纵的一组期望 可以是以下集合的笛卡尔乘积:
[0238] 其中,[0,vmax]是主车辆的期望的目标速率,L={1,1.5,2,2.5,3,3.5,4}是以车道为单位的期望的横向位置,其中整数表示车道中心,分数表示车道边界,而{g,t,o}是分配给n个其他车辆中的每个的分类标签。如果主车辆要给另一车辆让路,则另一车辆可以被分配“g”,如果主车辆要相对于另一车辆占道,则另一车辆可以被分配“t”,或者如果主车辆要相对于另一车辆保持一偏移距离,则另一车辆可以被分配“o”。
[0239] 下面描述了一组期望 如何可以转化为对于驾驶轨迹的代价函数。驾驶轨迹可以由(x1,y1),...,(xk,yk)示,其中(xi,yi)为主车辆在时间τ·i处的(横向,纵向)位置(以自我为中心的单位),在一些实验中,τ=0.1秒并且k=10。当然,还可以选择其他值。分配给轨迹的代价可以包括分配给期望的速率、横向位置以及分配给其他n个车辆中的每个车辆的标签的各个代价的加权总和。
[0240] 给定期望的速率v∈[0,vmax],与速率相关联的轨迹的代价为
[0241]
[0242] 给定期望的横向位置l∈L,与期望的横向位置相关联的代价为
[0243]
[0244] 其中dist(x,y,l)是从点(x,y)到车道位置l的距离。关于由于其他车辆导致的代价,对于任何其他车辆,(x′1,y′1),...,(x′k,y′k)可以表示以主车辆的以自我为中心的单位的其他车辆,并且i可以是最早的点,对于该点,存在j,使得(xi,yi)与(x’j,y’j)之间的距离很小。如果没有这样的点,则i可被设置为i=∞。如果另一车辆被分类为“让路”,则可以期望τi>τj+0.5,这意味着主车辆将在另一车辆到达同一点后至少0.5秒后到达轨迹相交点。用于将上述约束转换为代价的可以公式为[τ(j-i)+0.5]+。
[0245] 同样,如果另一汽车被分类为“占道”,可以期望τj>τi+0.5,其可以转化为代价[τ(i-j)+0.5]+。如果另一汽车被分类为“偏移”,则可以期望i=∞,这意味着主车辆的轨迹和偏移汽车的轨迹不相交。可以通过相对于轨迹之间的距离进行惩罚,将这种情况转化为代价。
[0246] 为这些代价中的每一个分配权重可以为轨迹规划器提供单个目标函数π(T)。鼓励平稳驾驶的代价可以被增加至该目标。而且,为了确保轨迹的功能性安全,可以将硬性约束增加至该目标。例如,可以禁止(xi,yi)离开道路,并且如果|i–j|小,则可以对于任何其他车辆的任何轨迹点(x’j,y’j),禁止(xi,yi)接近(x’j,y’j)。
[0247] 总而言之,策略πθ可以被分解成从不可知状态到一组期望的映射以及从期望到实际轨迹的映射。后一种映射不是基于学习的,并且可以通过求解优化问题来实现,该优化问题的代价取决于期望,并且其硬性约束可以保证该策略的功能性安全。
[0248] 以下讨论描述从不可知状态到该组期望的映射。如上所述,为了符合功能性安全,仅依靠强化学习的系统可能遭受关于奖励 的高且不便利的方差。通过使用策略梯度迭代将问题分解成从(不可知的)状态空间到一组期望的映射,随后不涉及基于机器学习训练的系统而映射到实际轨迹,可以避免该结果。
[0249] 出于各种原因,决策制定可以被进一步分解为语义上有意义的分量。例如, 的大小可能是大的甚至连续的。在关于图11D的上面描述的双并道场景中,另外,梯度估计器可能涉及项
在这样的表达式中,方差可以随着时间范围T增长。在某些情况下,T
的值可大致为250,这可能足以产生显著的方差。假设采样率在10Hz范围内,并且并道区域
1130为100米,则并道的准备可以在并道区域之前大约300米处开始。如果主车辆以每秒16米(约每小时60公里)的速度行驶,则对于片段(episode)的T的值可以大致为250。
[0250] 回到选项图的概念,图11E中示出了可以表示图11D中描绘的双并道情景的选项图。如前所述,选项图可以表示组织为有向非循环图(DAG)的分层决策集。在该图中可能存在被称为“根”节点1140的特殊节点,该节点可以是没有进入边(例如,决策线)的唯一节点。决策过程可以从根节点开始遍历该图,直到其到达“叶”节点,即,没有外出边的节点。每个内部节点可以实施从其可用子代中选择一子代的策略函数。可以存在从选项图上的一组遍历到一组期望 的预定映射。换言之,在选项图上的遍历可以被自动转换为 中的期望。
给定图中的一节点v,参数向量θυ可以指定选择v的子代的策略。如果θ是所有θv的联结(concatenation),那么,可以通过从图的根遍历到叶来定义 同时在每个节点v处使用由θv定义的策略来选择子代节点。
[0251] 在图11E中的双并道选项图1139中,根节点1140可首先判定主车辆是否在并道区域内(例如,图11D中的区域1130),或者主车辆是否正在接近并道区域并且需要为可能的并道做准备。在这两种情况下,主车辆可能需要决定是否改变车道(例如,向左或向右)或是否保持在当前车道中。如果主车辆已决定改变车道,则主车辆可能需要决定条件是否适合继续并执行车道改变操纵(例如,在“继续”节点1142处)。如果不可能改变车道,则主车辆可以试图通过以处于车道标记上为目标,而朝着期望的车道“推进”(例如,在节点1144处,作为与期望车道中的车辆的协商的一部分)。替代地,主车辆可以选择“保持”在同一车道中(例如,在节点1146处)。这种过程可以以自然的方式确定主车辆的横向位置。例如,[0252] 这可以实现以自然的方式确定期望的横向位置。例如,如果主车辆将车道从车道2改变为车道3,则“继续”节点可以将期望的横向位置设置为3,“保持”节点可以将期望的横向位置设置为2,而“推进”节点可以将期望的横向位置设置为2.5。接下来,主车辆可以决定是维持“相同”速率(节点1148)、“加速”(节点1150)或是“减速”(节点1152)。接下来,主车辆可以进入超越其他车辆并且将它们的语义含义设置为集合{g,t,o}中的值的“链状”结构1154。这个过程可以设置相对于其他车辆的期望。该链中所有节点的参数可以共享(类似于循环神经网络)。
[0253] 选项的潜在益处是结果的可解释性。另一个潜在益处在于可以依赖集合 的可分解结构,并且因此,可以从少数的概率之中选择每个节点处的策略。另外,该结构可以允许降低策略梯度估计器的方差。
[0254] 如上所述,双并道场景中片段的长度可以大致为T=250个步长。这样的值(或取决于特定的导航情景的任何其他合适的值)可以提供足够的时间来看到主车辆动作的后果(例如,如果主车辆决定改变车道作为并道的准备,主车辆仅在成功完成并道后才能看到益处)。另一方面,由于驾驶的动态性,主车辆必须以足够快的频率(例如,在上述情况下为10Hz)做出决策。
[0255] 选项图可以以至少两种方式实现降低T的有效值。首先,给定更高等级的决策,可以为较低等级的决策定义奖励,同时考虑较短的片段。例如,当主车辆已经选择了“车道改变”和“继续”节点时,通过观看2至3秒的片段(意味着T变为20-30,而不是250),可以学习用于为车辆分配语义含义的策略。其次,对于高等级决策(诸如是否改变车道或保持在同一车道),主车辆可能不需要每0.1秒做出决策。替代地,主车辆能够以较低频率(例如,每秒)作出决策,或者实现“选项终止”功能,然后可以仅在每次选项终止之后计算梯度。在这两种情况下,T的有效值可能比其原始值小一个数量级。总而言之,每个节点的估计器可以取决于T的值,其比原来的250个步长小一个数量级,这可能会立即转到一个较小的方差。
[0256] 如上所述,硬性约束可以促进更安全的驾驶,并且可以存在几种不同类型的约束。例如,可以直接根据感测状态定义静态硬性约束。这些硬性约束可包括在主车辆的环境内的减速带、速率限制、道路弯曲、交叉口等,其可能涉及对车辆速率、航向、加速、制动(减速)等的一个或多个约束。静态硬性约束可能还包括语义上的自由空间,其中,例如,主车辆被禁止驶出自由空间之外,以及被禁止太靠近物理障碍行驶。静态硬性约束还可以限制(例如,禁止)不符合车辆的运动学运动的各个方面的操纵,例如,可以使用静态硬性约束来禁止可能导致主车辆翻转、滑动或者其他失去控制的操纵。
[0257] 硬性约束还可以与车辆相关联。例如,可以采用一约束,该约束要求车辆保持到其他车辆的至少一米的纵向距离和到其他车辆的至少0.5米的横向距离。还可以应用约束,使得主车辆将避免保持与一个或多个其他车辆的碰撞路线。例如,时间τ可以是基于特定场景的时间度量。可以从当前时间到时间τ考虑主车辆和一个或多个其他车辆的预测轨迹。在两条轨迹相交的情况下, 可以表示车辆i到达和离开相交点的时间。也就是说,每辆汽车将在汽车的第一部分通过相交点时到达该点处,并且在汽车的最后部分通过该相交点之前需要一定时间量。该时间量将到达时间与离开时间分开。假设 (即,车辆1的到达时间小于车辆2的到达时间),那么我们将希望确保车辆1在车辆2到达之前已经离开相交点。否则,将会导致碰撞。因此,可以实施使得 的硬性约束。并且,为了确保车辆1和车辆2以最小量彼此错开,通过将缓冲时间(例如,0.5秒或另一适当值)包括在约束中,可以获得附加的安全余量。与两车辆的预测的相交轨迹有关的硬性约束可以表示为
[0258] 主车辆和一个或多个其他车辆的轨迹被追踪的时间量τ可以变化。然而,在交叉口情景中,速率可能更低,τ可能更长,并且τ可以被定义为使得主车辆将在小于τ秒内进入和离开交叉口。
[0259] 当然,对车辆轨迹应用硬性约束要求预测那些车辆的轨迹。对于主车辆而言,轨迹预测可能相对直接,因为主车辆通常已经理解并且事实上正在在任何给定时间对预期轨迹进行规划。相对于其他车辆,预测它们的轨迹可能不那么直接。对于其他车辆而言,用于确定预测轨迹的基线计算可能依赖于其他车辆的当前速率和航向,例如,如基于对由主车辆上的一个或多个相机和/或其他传感器(雷达、激光雷达、声学等)捕捉的图像流的分析所确定的。
[0260] 然而,可能存在一些例外,其可以简化问题或者至少提供在针对另一车辆预测的轨迹中的增加的置信度。例如,对于存在车道指示的结构化道路以及可能存在让路规则的情况,其他车辆的轨迹可以至少部分地基于其他车辆相对于车道的位置以及基于可适用的让路规则。因此,在一些情况下,当观察到车道结构时,可以假设下一车道的车辆将遵守车道边界。也就是说,主车辆可以假设下一车道的车辆将保持在其车道中,除非观察到指示下一车道的车辆将切入主车辆的车道中的证据(例如,信号灯、强的横向运动、跨车道边界的移动)。
[0261] 其他情况也可以提供关于其他车辆的预期轨迹的线索。例如,在主车辆可以有路权的停车标志、交通灯、环形道等处,可以假设其他车辆将遵守该路权。因此,除非观察到违反规则的证据,否则可以假设其他车辆沿着遵守主车辆拥有的路权的轨迹继续前进。
[0262] 还可以相对于主车辆环境中的行人应用硬性约束。例如,可以相对于行人建立缓冲距离,使得禁止主车辆相对于任何观察到的行人比规定的缓冲距离更近地行驶。行人缓冲距离可以是任何合适的距离。在一些实施例中,缓冲距离可以是相对于观察到的行人至少一米。
[0263] 类似于带有车辆的情况,还可以相对于行人与主车辆之间的相对运动来应用硬性约束。例如,可以相对于主车辆的预计轨迹来监测行人的轨迹(基于航向和速率)。给定特定的行人轨迹,其中对于轨迹上的每个点p,t(p)可以表示行人到达点p所需的时间。为了保持距行人至少1米的所需的缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人的前方以至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束可能要求主车辆在晚于行人足够的时间到达点p,使得主车辆可以在行人后方通过,并且维持至少一米的所需的缓冲距离。当然,对行人的硬性约束可能有例外。例如,在主车辆具有路权或速度非常缓慢的情况下,并且没有观察到行人将拒绝为主车辆让路或将以其他方式导航向主车辆的证据,可以松弛(relax)行人硬性约束(例如,到至少0.75米或0.50米的较小缓冲)。
[0264] 在一些示例中,在确定不是全部约束都可以被满足的情况下,可以松弛约束。例如,在道路太窄而不能留出两个路缘或路缘与停放车辆的所需间距(例如0.5米)的情况下,如果存在减轻情况,则可以松弛一个或多个约束。例如,如果人行道上没有行人(或其他对象),可以在离路缘0.1米处缓慢行驶。在一些实施例中,如果松弛约束会改善用户体验,则可以松弛约束。例如,为了避免坑洼,可以松弛约束以允许车辆比通常可能允许的更靠近车道边缘、路缘或行人。此外,在确定哪些约束要松弛时,在一些实施例中,选择要松弛的一个或多个约束是被认为对安全具有最小可用负面影响的那些约束。例如,在松弛涉及与其他车辆的接近度的一个约束之前,可以松弛关于车辆可以有多接近行驶到路缘或混凝土障碍的约束。在一些实施例中,行人约束可以是最后被松弛的,或者在某些情况下可能永远不被松弛。
[0265] 图12示出可在主车辆的导航期间捕捉和分析的场景的示例。例如,主车辆可以包括如上所述的导航系统(例如,系统100),其可以从与主车辆相关联的相机(例如,图像捕捉设备122、图像捕捉设备124和图像捕捉设备126中的至少一个)接收表示主车辆的环境的多个图像。图12中所示的场景是可以在时间t从沿着预测轨迹1212在车道1210中行驶的主车辆的环境捕捉的图像之一的示例。导航系统可以包括至少一个处理设备(例如,包括上述的任何EyeQ处理器或其他设备),所述处理设备被专门编程为接收多个图像并分析图像以确定响应于场景的动作。具体而言,如图8所示,至少一个处理设备可以实现感测模块801、驾驶策略模块803和控制模块805。感测模块801可以负责收集并输出从相机收集的图像信息,并且将该信息以所识别的导航状态的形式提供至驾驶策略模块803,其可以构成已经通过机器学习技术(诸如监督式学习、强化学习等)训练的经训练的导航系统。基于由感测模块801提供至驾驶策略模块803的导航状态信息,驾驶策略模块803(例如,通过实施上述的选项图方法)可以生成用于由主车辆响应于所识别的导航状态而执行的期望导航动作。
[0266] 在一些实施例中,至少一个处理设备可以使用例如控制模块805,将期望导航动作直接转换成导航命令。然而,在其他实施例中,可以应用硬性约束,使得针对场景和所述期望导航动作可能涉及的各种预定导航约束,对由驾驶策略模块803提供的期望导航动作进行测试。例如,在驾驶策略模块803输出将引起主车辆跟随轨迹1212的期望导航动作的情况下,可以相对于与主车辆的环境的各个方面相关联的一个或多个硬性约束来测试该导航动作。例如,捕捉图像1201可以显示路缘1213、行人1215、目标车辆1217以及存在于场景中的静止对象(例如,翻倒的箱子)。这些中的每个都可以与一个或多个硬性约束相关联。例如,路缘1213可以与禁止主车辆导航进路缘或经过路缘并且到人行道1214上的静态约束相关联。路缘1213还可以与路障包络(envelope)相关联,该路障包络限定了远离路缘(例如,0.1米、0.25米、0.5米、1米等)并且沿着路缘延伸的距离(例如,缓冲区),该距离限定了主车辆的禁止导航区。当然,静态约束还可以与其他类型的路侧边界(例如,护栏、混凝土柱、交通锥标、桥塔或任何其他类型的路侧障碍)相关联。
[0267] 应注意,距离和范围可以通过任何合适的方法来确定。例如,在一些实施例中,距离信息可以由车载雷达和/或激光雷达系统提供。替代地或另外地,距离信息可以从对从主车辆的环境捕捉的一个或多个图像的分析中导出。例如,可以确定图像中表示的已辨识的对象的多个像素,并将其与图像捕捉设备的已知视场和焦距几何形状进行比较,以确定比例和距离。例如,可以通过观察在已知时间间隔内从图像到图像的对象之间的比例变化,来确定速度和加速度。该分析可以指示对象朝着主车辆或者远离主车辆的运动方向、以及对象正在以多快速度远离主车辆或朝主车辆过来。可以通过分析在已知时间段内从一个图像到另一个图像的对象X坐标位置的变化,来确定穿越速度。
[0268] 行人1215可以与限定了缓冲区1216的行人包络相关联。在一些情况下,施加的硬性约束可以禁止主车辆在离行人1215一米的距离内(在相对于行人1215的任何方向)导航。行人1215还可以限定行人影响区1220的位置。这种影响区可以与限制主车辆在影响区内的速度的约束相关联。影响区可以从行人1215延伸5米、10米、20米等。影响区的每个分级(graduation)可以与不同的速率限制相关联。例如,在离行人1215一米至五米的区域内,主车辆可以被限制为第一速率(例如,10mph(每小时英里数),20mph等),所述第一速率可以小于从5米延伸至10米的行人影响区中的速率限制。可以对于影响区的各级使用任何分级。在一些实施例中,第一级可以比从一米到五米更窄,并且可以仅从一米延伸到两米。在其他实施例中,影响区的第一级可从一米(围绕行人的禁止导航区的边界)延伸至至少10米的距离。第二级又可以从十米延伸到至少约二十米。第二级可以与主车辆的最大行驶速度相关联,其大于与行人影响区的第一级相关联的最大行驶速度。
[0269] 一个或多个静止对象约束也可以与主车辆的环境中检测到的场景有关。例如,在图像1201中,至少一个处理设备可以检测静止对象,诸如存在于道路中的箱子1219。检测到的静止对象可以包括各种对象,诸如树、杆、道路标志或道路中的对象中的至少一个。一个或多个预定导航约束可以与检测到的静止对象相关联。例如,这种约束可以包括静止对象包络,其中所述静止对象包络限定了关于对象的缓冲区,可以禁止主车辆导航到该缓冲区内。缓冲区的至少一部分可以从检测到的静止对象的边缘延伸预定距离。例如,在由图像1201表示的场景中,至少0.1米、0.25米、0.5米或更多的缓冲区可以与箱子1219相关联,使得主车辆将以至少一段距离(例如,缓冲区距离)通过箱子的右侧或左侧,以避免与检测到的静止对象发生碰撞。
[0270] 预定的硬性约束还可以包括一个或多个目标车辆约束。例如,可以在图像1201中检测到目标车辆1217。为了确保主车辆不与目标车辆1217碰撞,可以采用一个或多个硬性约束。在一些情况下,目标车辆包络可以与单个缓冲区距离相关联。例如,可以通过在所有方向上围绕目标车辆1米的距离来限定缓冲区。缓冲区可以限定从目标车辆延伸至少一米的区域,禁止主车辆导航到该区域中。
[0271] 然而,围绕目标车辆1217的包络不需要由固定的缓冲距离限定。在一些情况下,与目标车辆(或在主车辆的环境中检测到的任何其他可移动对象)相关联的预定硬性约束可取决于主车辆相对于检测到的目标车辆的定向。例如,在一些情况下,纵向缓冲区距离(例如,从目标车辆向主车辆的前方或后方延伸的距离——诸如在主车辆正朝着目标车辆行驶的情况下)可以为至少一米。横向缓冲区距离(例如,从目标车辆向主车辆的任一侧延伸的距离——诸如当主车辆以与目标车辆相同或相反的方向行驶时,使得主车辆的一侧将邻近目标车辆的一侧通过)可以为至少0.5米。
[0272] 如上所述,通过对主车辆的环境中的目标车辆或行人的检测,还可能涉及其他约束。例如,可以考虑主车辆和目标车辆1217的预测轨迹,并且在两个轨迹相交(例如,在相交点1230处)的情况下,硬性约束可以需要 或者 其中主车辆为车辆1,而目标车辆1217为车辆2。类似地,可以相对于主车辆的预计轨迹来监测行人1215的轨迹(基于前进方向和速率)。给定特定的行人轨迹,对于轨迹上的每个点p上,t(p)将表示行人到达点p(即,图12中的点1231)所需的时间。为了保持距行人至少1米的所需缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人前方以至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束将要求主车辆以足够的时间晚于行人到达点p,使得主车辆可以在行人后方通过,并且保持至少一米的所需的缓冲距离。
[0273] 还可以采用其他硬性约束。例如,至少在一些情况下,可以采用主车辆的最大减速率。这种最大减速率可以基于检测到的距跟随主车辆的目标车辆的距离(例如,使用从后向相机收集的图像)而被确定。硬性约束可以包括在感测到的人行横道或铁路道口处的强制停止、或其他可适用的约束。
[0274] 在对主车辆的环境中的场景的分析指示可能涉及一个或多个预定导航约束的情况下,可以相对于主车辆的一个或多个规划的导航动作来施加这些约束。例如,在对场景的分析导致驾驶策略模块803返回期望导航动作的情况下,可以针对一个或多个涉及的约束来测试该期望导航动作。如果期望导航动作被确定为违反所涉及的约束的任何方面(例如,如果期望导航动作将驱使主车辆在行人1215的0.7米的距离内,其中预定硬性约束要求主车辆保持距离行人1215至少1.0米),则可以基于一个或多个预定导航约束对期望导航动作做出至少一个修改。以这种方式调节期望导航动作可以遵循在主车辆的环境中检测到的特定场景所涉及的约束,为主车辆提供实际导航动作。
[0275] 在确定主车辆的实际导航动作之后,可以通过响应于所确定的主车辆的实际导航动作而引起对主车辆的导航致动器的至少一个调节,来实现该导航动作。这种导航致动器可以包括主车辆的转向机构、制动器或加速器中的至少一个。
[0276] 优先约束
[0277] 如上所述,导航系统可采用各种硬性约束来确保主车辆的安全操作。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速率、或者主车辆的最大减速率等等。这些约束可以对基于机器学习(监督式、强化或组合)训练的经训练的系统来施加,但是它们也可以对非经训练的系统(例如,采用算法来直接处理在来自主车辆环境的场景中发生的预期情况的那些系统)有用。
[0278] 在任何一种情况下,都可能存在约束的层级。换言之,一些导航约束优先于其他约束。因此,如果出现了不可获得会导致所有相关约束均被满足的导航动作的情况,则导航系统可首先确定实现最高优先级约束的可用导航动作。例如,系统也可以使车辆首先避开该行人,即使避开该行人的导航会导致与道路中检测到的另一车辆或对象碰撞。在另一个示例中,系统可以使车辆骑上路缘来避开行人。
[0279] 图13提供了示出用于实现基于对主车辆的环境中场景的分析而确定的相关约束的层级的算法的流程图。例如,在步骤1301,与导航系统相关联的至少一个处理设备(例如,EyeQ处理器等)可以从安装在主车辆上的相机接收表示主车辆的环境的多个图像。通过在步骤1303对表示主车辆环境的场景的图像的分析,可以识别与主车辆相关联的导航状态。例如,导航状态可以指示主车辆正沿着双车道道路1210行驶,如图12所示,其中目标车辆
1217正在移动通过主车辆前方的交叉口,行人1215正在等待穿过主车辆行驶的道路,对象
1219存在于主车辆车道的前方,以及场景的各种其他属性。
[0280] 在步骤1305,可以确定主车辆的导航状态涉及的一个或多个导航约束。例如,在分析由一个或多个捕捉图像表示的主车辆的环境中的场景之后,至少一个处理设备可以确定通过对捕捉图像的图像分析所辨识的对象、车辆、行人等涉及的一个或多个导航约束。在一些实施例中,至少一个处理设备可以确定导航状态涉及的至少第一预定导航约束和第二预定导航约束,并且第一预定导航约束可以不同于第二预定导航约束。例如,第一导航约束可以涉及在主车辆的环境中检测到的一个或多个目标车辆,而第二导航约束可以涉及在主车辆的环境中检测到的行人。
[0281] 在步骤1307,至少一个处理设备可以确定与在步骤1305中识别的约束相关联的优先级。在所描述的示例中,涉及行人的第二预定导航约束可以具有比涉及目标车辆的第一预定导航约束更高的优先级。虽然可以基于各种因素来确定或分配与导航约束相关联的优先级,但是在一些实施例中,导航约束的优先级可能与其从安全角度而言的相对重要性有关。例如,虽然在尽可能多的情况下遵守或满足所有实施的导航约束可能是重要的,但是一些约束可能与其他约束相比与具有更高的安全风险相关联,因此,这些约束可被分配更高的优先级。例如,要求主车辆保持与行人间距至少1米的导航约束可具有比要求主车辆保持与目标车辆间距至少1米的约束更高的优先级。这可能是因为与行人相撞会比与另一车辆相撞造成更严重的后果。类似地,保持主车辆与目标车辆之间的间距可以具有比以下约束更高的优先级:要求主车辆避开道路上的箱子、在减速带上低于特定速度驾驶、或者使主车辆占用者暴露于不超过最大加速度等级。
[0282] 虽然驾驶策略模块803被设计为通过满足特定场景或导航状态涉及的导航约束以使安全性最大化,但是在一些情况下,实际上不可能满足每个所涉及的约束。在这种情况下,如步骤1309所示,可以使用每个涉及的约束的优先级来确定应该首先满足哪个涉及的约束。继续上面的示例,在不可能同时满足行人间隙约束和目标车辆间隙两者约束,而只能满足其中一个约束的情况下,则更高优先级的行人间隙约束可导致该约束在尝试保持到目标车辆的间隙之前被满足。因此,在正常情况下,如步骤1311所示,在第一预定导航约束和第二预定导航约束两者都可以被满足的情况下,至少一个处理设备可以基于所识别的主车辆的导航状态来确定满足第一预定导航约束和第二预定导航约束两者的主车辆的第一导航动作。然而,在其他情况下,在不是所有涉及的约束都可以被满足的情况下,如步骤1313所示,第一预定导航约束和第二预定导航约束不能同时被满足的情况下,至少一个处理设备可以基于所识别的导航状态,确定满足第二预定导航约束(即,较高优先级约束)但不满足第一预定导航约束(具有低于第二导航约束的优先级)的主车辆的第二导航动作。
[0283] 接下来,在步骤1315,为了实施所确定的主车辆的导航动作,至少一个处理设备可以响应于所确定的主车辆的第一导航动作或所确定的主车辆的第二导航动作,引起对主车辆的导航致动器的至少一个调节。如在前面的示例中所述,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
[0284] 约束松弛
[0285] 如上所述,出于安全目的可以施加导航约束。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速度、或者主车辆的最大减速率等等。这些约束可以被施加在学习或非学习的导航系统中。在某些情况下,这些约束可以被松弛。例如,在主车辆在行人附近减速或停靠,然后缓慢前进以传达要驶过行人的意图的情况下,可以从所获取的图像中检测行人的响应。如果行人的响应是保持静止或停止移动(和/或如果感测到与行人的眼神接触),则可以理解该行人认识到导航系统要驶过行人的意图。在这种情况下,系统可松弛一个或多个预定约束并实施较不那么严格的约束(例如,允许车辆在行人0.5米内导航,而不是在更严格的1米边界内)。
[0286] 图14提供了用于基于一个或多个导航约束的松弛来实施主车辆的控制的流程图。在步骤1401,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1403对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤
1405,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1407,多个图像的分析可以揭示至少一个导航约束松弛因素(relaxation factor)的存在。
[0287] 导航约束松弛因素可以包括一个或多个导航约束在至少一个方面可以被暂停、改变或以其他方式松弛的任何合适的指示符。在一些实施例中,至少一个导航约束松弛因素可以包括(基于图像分析)行人的眼睛正看向主车辆的方向的确定。在这种情况下,可以更安全地假定行人意识到主车辆。因此,行人不会参与导致行人移动到主车辆路径中的意外动作的置信度可能更高。还可以使用其他约束松弛因素。例如,至少一个导航约束松弛因素可以包括:被确定为没有在移动的行人(例如,假定不太可能进入主车辆路径的行人);或者其运动被确定为正在减慢的行人。导航约束松弛因素还可以包括更复杂的动作,诸如被确定为在主车辆停住然后恢复移动后没有在移动的行人。在这种情况下,可以假设行人知道主车辆具有路权,并且行人停住可以表明行人让路给主车辆的意图。其他可能导致一个或多个约束被松弛的情况包括路缘石的类型(例如,低路缘石或具有渐变坡度的路缘石可能允许松弛的距离约束)、在人行道上缺少行人或其他对象、处于其引擎未运转的车辆可以具有松弛的距离、或者行人正背向和/或远离于主车辆驶向的区域移动的情况。
[0288] 在识别存在导航约束松弛因素(例如,在步骤1407)的情况下,可以响应于约束松弛因素的检测来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且所述第二导航约束可以包括相对于第一导航约束被松弛的至少一个特性。第二导航约束可以包括基于第一约束的新生成的约束,其中所述新生成的约束包括在至少一个方面松弛第一约束的至少一个修改。可替代地,第二约束可以构成在至少一个方面比第一导航约束不那么严格的预定约束。在一些实施例中,可以保留这种第二约束,以仅用于在主车辆的环境中识别约束松弛因素的情况。无论第二约束是新生成的还是从一组完全或部分可用的预定约束中选择的,应用第二导航约束代替更严格的第一导航约束(其可以应用在没有检测到相关导航约束松弛因素的情况)可以被称为约束松弛并且可以在步骤1409中完成。
[0289] 在步骤1407检测到至少一个约束松弛因素,并且在步骤1409中已经松弛了至少一个约束的情况下,可以在步骤1411中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航约束。可以在步骤1413通过响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调节来实施导航动作。
[0290] 如上所述,导航约束和松弛导航约束的使用可以对经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的导航系统)的导航系统采用。在使用经训练的导航系统的情况下,用于某些导航情况的松弛导航约束的可用性可以表示从经训练的系统响应到未经训练的系统响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。相反,所采取的动作可以满足更松弛的第二导航约束,并且可以是由未经训练的系统产生的动作(例如,作为在主车辆的环境中检测到特定状况的响应,诸如导航约束松弛因素的存在)。
[0291] 有许多可以响应于在主车辆的环境中检测到约束松弛因素而被松弛的导航约束的示例。例如,在预定导航约束包括与检测到的行人相关联的缓冲区,并且缓冲区的至少一部分从检测到的行人延伸一定距离的情况下,被松弛的导航约束(新产生的、从预定集合中从存储器中调用的,或作为先前存在的约束的松弛版本生成的)可以包括不同的或修改的缓冲区。例如,不同的或修改的缓冲区可以具有比相对于检测到的行人的原始的或未修改的缓冲区更小的相对于行人的距离。因此,在主车辆的环境中检测到适当的约束松弛因素的情况下,鉴于经松弛的约束,可以允许主车辆更靠近检测到的行人而导航。
[0292] 如上所述,导航约束的被松弛的特性可以包括与至少一个行人相关联的缓冲区的宽度减少。然而,被松弛的特性还可以包括对与目标车辆、检测到的对象、路侧障碍或在主车辆的环境中检测到的任何其他对象相关联的缓冲区的宽度减少。
[0293] 至少一个被松弛的特性还可以包括导航约束特性的其他类型的修改。例如,被松弛的特性可以包括与至少一个预定导航约束相关联的速率的增加。被松弛的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的增加。
[0294] 尽管如上所述在某些情况下约束可以被松弛,而在其他情况下,导航约束可以被增强(augment)。例如,在一些情况下,导航系统可以确定授权(warrant)对一组正常导航约束的增强的条件。这种增强可以包括将新的约束添加到一组预定的约束或者调节预定约束的一个或多个方面。添加或调节可导致相对于在正常驾驶条件下可适用的该组预定约束而言更为保守的导航。可以授权约束增强的条件可以包括传感器故障、不利的环境条件(雨、、雾或与可见性降低或车辆牵引力降低相关联的其他情形)等。
[0295] 图15提供用于基于对一个或多个导航约束的增强来实施主车辆的控制的流程图。在步骤1501,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1503对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤
1505,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1507,对多个图像的分析可以揭示至少一个导航约束增强因素的存在。
[0296] 涉及的导航约束可以包括上述的(例如,关于图12)任何导航约束或任何其他合适的导航约束。导航约束增强因素可以包括一个或多个导航约束可以在至少一个方面被补充/增强的任何指示符。可以在每个组的基础上(例如,通过将新的导航约束添加到一组预定的约束)或者可以在每个约束的基础上(例如,修改特定的约束,使得经修改约束比原始约束更具限制性,或者添加对应于预定约束的新约束,其中该新约束在至少一个方面比对应约束更具限制性),来执行导航约束的补充或增强。另外或可替代地,导航约束的补充或增强可以是指基于层级从一组预定约束中进行选择。例如,一组被增强的约束可用于基于是否在主车辆的环境中或相对于主车辆检测到导航增强因素来进行选择。在没有检测到增强因素的正常情况下,则可以从适用于正常情况的约束中抽取所涉及的导航约束。另一方面,在检测到一个或多个约束增强因素的情况下,所涉及的约束可以从被增强的约束中抽取,该被增强的约束是相对于一个或多个增强因素而生成或预定的。被增强的约束在至少一个方面与正常情况下适用的对应约束相比可能更具限制性。
[0297] 在一些实施例中,至少一个导航约束增强因素可以包括在主车辆的环境中检测到(例如,基于图像分析)道路表面上存在、雪或水。例如,这种确定可以基于对以下的检测:反射率高于干燥道路所预期的区域(例如,指示道路上的冰或水);道路上的指示雪的存在的白色区域;道路上的与道路上存在纵向沟(例如,雪中的轮胎痕迹)一致的阴影;主车辆挡风玻璃上的水滴或冰/雪颗粒;或者道路表面上存在水或冰/雪的任何其他合适的指示符。
[0298] 至少一个导航约束增强因素还可以包括在主车辆的挡风玻璃的外表面上检测到的颗粒。这种颗粒可能会损害与主车辆相关联的一个或多个图像捕捉设备的图像质量。虽然关于主车辆的挡风玻璃进行了描述,其与安装在主车辆的挡风玻璃后面的相机相关,但对在其他表面(例如,相机的镜头或镜头盖、前灯透镜、后挡风玻璃尾灯透镜或对于与主车辆相关联的图像捕捉设备可见(或由传感器检测到)的主车辆的任何其他表面)上的颗粒的检测,也可指示导航约束增强因素的存在。
[0299] 导航约束增强因素也可以被检测为一个或多个图像获取设备的属性。例如,检测到的由与主车辆相关联的图像捕捉设备(例如,相机)捕捉的一个或多个图像的图像质量方面的降低,也可以构成导航约束增强因素。图像质量的下降可能与硬件故障或部分硬件故障相关联,该故障与图像捕捉设备或与图像捕捉设备相关联的组件相关联。这种图像质量的下降也可能是由环境条件引起的。例如,在主车辆周围的空气中存在烟、雾、雨、雪等也可能导致降低相对于可能存在于主车辆的环境中的道路、行人、目标车辆等的图像质量。
[0300] 导航约束增强因素还可以涉及主车辆的其它方面。例如,在一些情况下,导航约束增强因素可以包括检测到的与主车辆关联的系统或传感器的故障或部分故障。这种增强因素可以包括,例如检测到速度传感器、GPS接收器、加速度计、相机、雷达、激光雷达、制动器、轮胎或与主车辆相关联的任何其他系统的故障或部分故障,该故障可影响主车辆相对于与主车辆的导航状态相关联的导航约束进行导航的能力。
[0301] 在识别导航约束增强因素的存在(例如,在步骤1507)的情况下,可以响应于检测到约束增强因素来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且所述第二导航约束可以包括相对于第一导航约束被增强的至少一个特性。第二导航约束可以比第一导航约束更具限制性,因为检测到在主车辆的环境中的或者与主车辆相关联的约束增强因素可以表明主车辆可以具有至少一个相对于正常操作条件降低的导航能力。这种降低的能力可以包括较低的道路牵引力(例如,道路上的冰、雪、或水;降低的轮胎压力等);受损的视觉(例如,降低捕捉图像质量的雨、雪、沙尘、烟、雾等);受损的检测能力(例如,传感器故障或部分故障、传感器性能降低等),或主车辆响应于检测到的导航状态而导航的能力方面的任何其他降低。
[0302] 在步骤1507中检测到至少一个约束增强因素,并且在步骤1509中增强了至少一个约束的情况下,可以在步骤1511中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航(即,被增强的)约束。可以在步骤1513通过响应于所确定的导航动作而引起对主车辆的导航致动器进行至少一个调节来实施导航动作。
[0303] 如所讨论的,导航约束和被增强的导航约束的使用可以对经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的系统)的导航系统采用。在使用经训练的导航系统的情况下,针对某些导航情况的被增强的导航约束的可用性可表示从经训练的系统响应到未经训练的系统响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。相反,所采取的动作可以满足被增强的第二导航约束,并且可以是由未经训练的系统产生的动作(例如,作为对在主车辆的环境中检测到特定条件的响应,诸如存在导航约束增强因素)。
[0304] 有许多可以响应于在主车辆的环境中检测到约束增强因素而生成、补充或增强的导航约束的示例。例如,在预定导航约束包括与检测到的行人、对象、车辆等相关联的缓冲区,并且缓冲区的至少一部分从检测到的行人/对象/车辆延伸一定距离的情况下,被增强的导航约束(新产生的、从预定集合中从存储器调用的,或作为先前存在的约束的增强版本而生成的)可以包括不同的或修改的缓冲区。例如,不同的或修改的缓冲区可以具有比相对于检测到的行人/对象/车辆的原始的或未修改的缓冲区而言更大的相对于行人/对象/车辆的距离。因此,在主车辆的环境中或相对于主车辆检测到适当的约束增强因素的情况下,鉴于该被增强的约束,可以强制主车辆更远离检测到的行人/对象/车辆而导航。
[0305] 至少一个被增强的特性还可以包括导航约束特性的其他类型的修改。例如,被增强的特性可以包括与至少一个预定导航约束相关联的速度的降低。被增强的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的减小。
[0306] 基于长远规划的导航
[0307] 在一些实施例中,所公开的导航系统不仅可以对主车辆的环境中检测到的导航状态进行响应,而且还可以基于长远规划(long range planning)来确定一个或多个导航动作。例如,系统可以考虑可用作相对于检测到的导航状态进行导航的选项的一个或多个的导航动作对未来导航状态的潜在影响。考虑可用的动作对未来状态的影响可以使得导航系统不仅基于当前检测到的导航状态、而且还基于长远规划来确定导航动作。在导航系统采用一种或多种奖励函数作为从可用选项中选择导航动作的技术的情况下,使用长远规划技术的导航可能尤其适用。可以相对于可以响应于检测到的主车辆的当前导航状态而采取的可用导航动作,来分析潜在奖励。然而,进一步地,还可以相对于可以响应于未来导航状态而采取的动作,来分析潜在奖励,所述未来导航状态预计是由于对当前导航状态的可用动作而造成的。因此,所公开的导航系统在某些情况下可以响应于检测到的导航状态而从可以响应于当前导航状态而采取的可用动作之中选择导航动作,即使在所选择的导航动作可能不会产生最高的奖励的情况之下。这在系统确定以下情况时尤其正确:所选择的动作可能导致未来导航状态,该未来导航状态引起一个或多个潜在的导航动作,其中该潜在的导航动作提供比所选择的动作或者在某些情况下比相对于当前导航状态可用的任何动作更高的奖励。该原理可以更简单地表达为:为了在未来产生更高的奖励选项,而在现在采取不那么有利的动作。因此,所公开的能够进行长远规划的导航系统可以选择短期非最理想的动作,其中长期预测指示奖励的短期损失会导致长期奖励增加。
[0308] 通常,自主驾驶应用可涉及一系列规划问题,其中导航系统可以决定即时动作以便优化更长期目标。例如,当车辆在环形道处遇到并道情况时,导航系统可以决定即时加速或制动命令,以便发起到环形道的导航。虽然在环形道处对检测到的导航状态的即时动作可能涉及响应于所检测到的状态的加速或制动命令,但长期目标是成功并道,并且所选命令的长期影响是并道的成功/失败。可以通过将问题分解为两个阶段来解决规划问题。首先,监督式学习可以应用于基于现在来预测近未来(假设预测符(predictor)相对于现在的表示将是可微的)。其次,可以使用循环神经网络对作用者的完整轨迹进行建模,其中未解释的因素被建模为(加性)输入节点。这可以允许使用监督式学习技术和对循环神经网络直接优化来确定长期规划问题的解。这种方法还可以使得能够通过将对抗性要素纳入环境来学习鲁棒的策略。
[0309] 自主驾驶系统的两个最基本的要素是感测和规划。感测处理的是寻找环境的现在状态的紧凑表示,而规划处理的是决定采取何种动作以优化未来目标。监督式机器学习技术对求解感测问题是有用的。机器学习算法框架也可以用于规划部分,尤其是强化学习(RL)框架,诸如上述那些。
[0310] RL可以按照连续几轮(round)的顺序而执行。在第t轮,规划器(亦称作用者或驾驶策略模块803)可以观察状态st∈S,其表示作用者和环境。然后其应该决定动作at∈A。在执行该动作后,该作用者接收即时奖励 并移至新的状态st+1。作为示例,主车辆可以包括自适应巡航控制(ACC)系统,其中车辆应该自主地实施加速/制动,以在保持平稳驾驶的同时保持与前车的适当距离。该状态可以被建模为一对 其中xt是到前车的距离,vt是主车辆相对于前车速度的速度。所述动作 将是加速命令(若at<0则主车辆减速)。奖励可以是取决于|at|(反映驾驶的平稳性)和st(反映主车辆与前车保持安全距离)的函数。规划器的目标是使累积奖励最大化(可以直至未来奖励的时间范围或折扣后的总和)。要做到这一点,规划器可依赖策略π:S→A,其将状态映射到动作。
[0311] 监督式学习(SL)可以被看作是RL的特例,其中st是从S上的一些分布中采样的,并且奖励函数可以具有 的形式,其中 是损失函数,并且学习器观察yt的值,yt为在查看状态st时要采取的最佳动作的值(可能有噪声)。通常的RL模型与特例SL之间可能存在若干差异,并且这些差异使通常的RL问题更具挑战性。
[0312] 在一些SL情况下,学习器采取的动作(或预测)可能对环境没有影响。换言之,st+1和at是独立的。这会有两个重要的含义。首先,在SL中,样本(s1,y1),...,(sm,ym)可以提前被收集,然后才能开始搜索相对于样本具有良好准确度的策略(或预测符)。相反,在RL中,状态st+1通常取决于所采取的动作(以及之前的状态),而这又取决于用于生成该动作的策略。这将使数据生成过程束缚于策略学习过程。其次,因为在SL中动作不影响环境,所以选择at对π的表现的贡献是局部的。具体而言,at只影响即时奖励的值。相反,在RL中,第t轮采取的动作可能会对未来轮中的奖励值产生长期影响。
[0313] 在SL中,“正确”答案的知识yt、连同奖励 的形状一起可以提供对于at的所有可能的选择的奖励的全部知识,这可以使得能够计算奖励相对于at的导数。相反,在RL中,奖励的“一次性”值可能是对于所采取动作的具体选择而能观察到的全部。这可以被称为“强盗(Bandit)”反馈。这是需要“探索”作为长期导航规划的一部分的最重要原因之一,因为在基于RL的系统中,如果只有“强盗”反馈可用,则系统可能并不总是知道所采取的动作是否是要采取的最好的动作。
[0314] 许多RL算法至少部分地依赖于马尔可夫决策过程(MDP,Markov Decision Process)的数学优化模型。马尔可夫假设是:给定st和at,st+1的分布被完全确定。依据MDP状态上的稳定分布,其给出了给定策略的累积奖励的闭合解表达式。策略的稳定分布可以表示为线性规划问题的解。这产生了两类算法:1)相对于原始问题的优化,其被称为策略搜索;2)相对于双重问题的优化,其变量被称为值函数Vπ。如果MDP从初始状态s开始,并且从那里根据π来选择动作,则值函数确定预期累积奖励。相关量是状态-动作值函数Qπ(s,a),假设从状态s开始,即时选择的动作a,以及从那里根据π选择的动作,则状态-动作值函数确定累积奖励。Q函数可能会引起最优策略的表征(使用贝尔曼方程)。特别是,Q函数可能表明最优策略是从S到A的确定性函数(实际上,它可能被表征为相对于最优Q函数的“贪婪”策略)。
[0315] MDP模型的一个潜在优点在于其允许使用Q函数将未来耦合到现在。例如,假设主π车辆现在处于状态s,Q (s,a)的值可以指示执行动作a对未来的影响。因此,Q函数可以提供动作a的质量的局部测量,从而使RL问题更类似于SL场景。
[0316] 许多RL算法以某种方式近似V函数或Q函数。值迭代算法(例如Q学习算法)可以依赖于以下事实:最优策略的V和Q函数可以是从贝尔曼方程导出的一些运算符的固定点。行动者-评价器(Actor-critic)策略迭代算法旨在以迭代的方式学习策略,其中在迭代t处,“评价器”估计 并且基于该估计,“行动者”改进策略。
[0317] 尽管MDP的数学优势和切换到Q函数表示的方便性,但该方法可能具有若干限制。例如,马尔可夫行为状态的近似概念可能是在某些情况下所能找到的全部。此外,状态的转变不仅取决于作用者的行为,还取决于环境中其他参与者的行为。例如,在上面提到的ACC示例中,尽管自主车辆的动态可以是马尔可夫的,但下一个状态可取决于另一车辆的驾驶员的行为,而该行为不一定是马尔可夫的。对这个问题的一个可能的解决方案是使用部分观察到的MDP,其中假设:存在马尔可夫状态,但是可以看到的是根据隐藏状态而分布的观察。
[0318] 更直接的方法可以考虑MDP的博弈理论概括(例如,随机博弈框架)。事实上,用于MDP的算法可以被推广到多作用者博弈(例如,最小最大-Q学习或纳什-Q学习)。其他方法可包括其他参与者的显式建模以及消除遗憾(vanishing regret)学习算法。在多作用者场景中的学习可能比在单作用者场景中更复杂。
[0319] Q函数表示的第二限制可以通过偏离表格场景(tabular setting)而产生。表格场景就是当状态和动作的数量很小之时,因此Q可以表示为|S|个行和|A|个列的表格。然而,如果S和A的自然表示包含欧几里得空间,并且状态和动作空间是离散的,则状态/动作的数量可能在维度上是指数的。在这种情况下,采用表格场景可能并不实际。相反,Q函数可以由来自参数假设类别(例如,某个架构的神经网络)的某个函数来近似。例如,可以使用深Q网络(DQN,deep-Q-network)学习算法。在DQN中,状态空间可以是连续的,而动作空间可以仍然是小的离散集合。可以存在处理连续动作空间的方法,但它们可能依赖于对Q函数近似。在任何情况下,Q函数都可能是复杂的且对噪声敏感,因此可能会对学习带来挑战。
[0320] 不同的方法可以是使用循环神经网络(RNN,recurrent neural network)来解决RL问题。在某些情况下,RNN可以与多作用者博弈的概念和来自博弈论的对抗环境的稳健性相结合。此外,这种方法可以并不明确依赖任何马尔可夫假设。
[0321] 以下更详细地描述通过基于预测进行规划来导航的方法。在这种方法中,可以假定状态空间S是 的子集,而动作空间A是 的子集。这在许多应用中可能是一种自然表现。如上所述,RL和SL之间可能存在两个关键区别:(1)因为过去的动作影响未来的奖励,来自未来的信息可能需要传播回过去;(2)奖励的“强盗”本质可能模糊(状态、动作)和奖励之间的依赖性,这会使学习过程复杂化。
[0322] 作为该方法的第一步,可以观察到存在有趣的问题,其中奖励的强盗本质并不是问题。例如,ACC应用的奖励值(如下面将更详细讨论的)可能相对于当前状态和动作是可微的。事实上,即使奖励是以“强盗”方式给出的,学习可微函数 使得的问题可以是相对直接的SL问题(例如,一维回归问题)。因此,该方法的第一步可以是将奖励定义为函数 该函数关于s和a是可微的,或者该方法的第一步可以是使用回归学习算法,以便学习可微函数 该函数至少使样本上的至少一些回归损失最小化,其中实例向量为 以及目标标量为rt。在某些情况下,为了创建训练集,可以使
用探索的元素。
[0323] 为了解决过去与未来之间的联系,可以使用类似的想法。例如,假设可以学习一个可微函数 使得 学习这样的函数可以表征为SL问题。 可以被认为是近未来的预测符。接下来,可以使用参数函数πθ:S→A来描述从S映射到A的策略。将πθ表达为神经网络,可以使得能够使用循环神经网络(RNN)来表达运行作用者达T轮的片段,其中下一个状态被定义为 此处, 可由环境所定义,并可表达
近未来的不可预测的方面。st+1以可微方式依赖于st和at的事实可以使能未来的奖励值和过去的行为之间的联系。策略函数πθ的参数向量可以通过在所得到的RNN上进行反向传播来学习。请注意,不需要在vt上施加显式概率假设。特别是,不需要对于马尔可夫关系的要求。
相反,可依赖循环网络在过去和未来之间传播“足够”的信息。直观地说, 可以描述近未来的可预测部分,同时vt可以表达由于环境中其他参与者的行为而可能出现的不可预测的方面。学习系统应该学习对其他参与者的行为而言是稳健的策略。如果||vt||很大,过去的动作与未来的奖励值之间的联系可能会过于嘈杂,而无法学习有意义的策略。以透明的方式明确表达系统的动态可以使得更容易地结合先验知识。例如,先验知识可以简化定义 的问题。
[0324] 如上所述,学习系统可受益于相对于对抗环境(诸如主车辆的环境)的鲁棒性,所述环境可包括可能以预料外的方式动作的多个其他驾驶员。在不对vt施加概率性假设的模型中,可以考虑其中是以对抗方式来选择vt的环境。在某些情况下,可以对μt施加限制,否则对抗方可能会使规划问题变得困难甚至不可能。一种自然约束可能是要求由常数来限制||μt||。
[0325] 针对对抗环境的鲁棒性可能在自主驾驶应用中有用。以对抗的方式选择μt甚至可加快学习过程,因为它可以将学习系统专注于稳健的最佳策略。可以用简单的博弈来说明这个概念。状态为 动作为 即时损失函数为0.1|at|+[|st|-2]+,其中[x]+=max{x,0}为ReLU(修正线性单元)函数。下一个状态为st+1=st+at+vt,其中vt∈[-0.5,0.5]是对于环境以对抗的方式来选择的。此处,最优策略可以写成带有ReLU的双层网络:at=-[st-1.5]++[-st-1.5]+。观察到,当|st|∈(1.5,2]时,最优动作可能比动作a=0具有更大的即时损失。因此,系统可以为未来做出规划,并且可以不仅仅依赖于即时损失。观察到,损失关于at的导数为0.1sign(at),并且关于st的导数是1[|st|>2]sign(st)。在st∈(1.5,2]的情况下,vt的对抗性选择将会设定vt=0.5,因此,无论何时at>1.5-st,在t+1轮可以有非零损失。在这种情况下,损失的导数可以直接向后传播到at。因此,在at的选择是非最优的情况下,vt的对抗性选择可以帮助导航系统获得非零后向传播消息。这种关系可以帮助导航系统基于以下预期来选择当前动作,即:预期这种当前行为(即使该行为会导致非最优奖励甚至损失)将在未来提供导致更高的奖励的更优化的动作的机会。
[0326] 这种方法可以应用于实际上可能出现的任何导航情况。以下描述适用于一个示例的方法:自适应巡航控制(ACC)。在ACC问题中,主车辆可能试图与前方的目标车辆保持适当的距离(例如,到目标车辆1.5秒)。另一个目标可能是尽可能平稳地驾驶,同时保持期望的间隙。代表这种情况的模型可以如下定义。状态空间为 动作空间为 状态的第一坐标是目标汽车的速度,第二坐标是主车辆的速度,而最后的坐标是主车辆与目标车辆之间的距离(例如,沿道路曲线的主车辆的位置减去目标车辆的位置)。主车辆采取的动作是加速,并可以用at来表示。量τ可以表示连续轮之间的时间差。虽然τ可被设置为任何合适的量,但是在一个示例中,τ可以是0.1秒。位置st可以表示为 并且目标车辆的(未知)加速度可以表示为
[0327] 系统的完整动态可以通过以下描述来描述:
[0328]
[0329] 这可以被描述为两个向量的总和:
[0330]
[0331] 第一向量是可预测的部分,而第二向量是不可预测的部分。第t轮的奖励定义如下:
[0332]
[0333] 第一项可导致对非零加速度的惩罚,因此鼓励平稳驾驶。第二项取决于到目标汽车的距离xt和期望的距离 之间的比率,所述期望的距离被定义为1米的距离和1.5秒刹车距离之间的最大值。在某些情况下,这个比率可能恰好为1,但只要该比率在[0.7,1.3]范围内,策略可能会放弃任何处罚,这可能会使主车辆在导航方面有所放松——可能在实现平稳的驾驶方面很重要的特性。
[0334] 实施以上概述的方法,主车辆的导航系统(例如,通过在导航系统的处理单元110内的驾驶策略模块803的操作)可以响应于观察到的状态来选择动作。所选动作可以基于不仅对与相对于感测到的导航状态可用的响应动作相关联的奖励的分析,而且还可以基于对未来状态、响应于未来状态的潜在动作和与潜在的动作相关联的奖励的考虑和分析。
[0335] 图16示出了基于检测和长远规划的导航的算法方法。例如,在步骤1601,主车辆的导航系统的至少一个处理设备110可以接收多个图像。这些图像可以捕捉表示主车辆的环境的场景,并且可以由上述任何图像捕捉设备(例如,相机、传感器等)提供。在步骤1603分析这些图像中的一个或多个可以使至少一个处理设备110能够识别与主车辆相关联的当前导航状态(如上所述)。
[0336] 在步骤1605、1607和1609,可以确定响应于感测到的导航状态的各种潜在的导航动作。这些潜在的导航动作(例如,第一导航动作至第N可用导航动作)可以基于感测到的状态和导航系统的长远目标(例如,完成合并、平稳地跟随前车、超过目标车辆、避开道路中的对象、针对检测到的停车标志而减速、避开切入的目标车辆、或可以推进系统的导航目标的任何其他导航动作)来确定。
[0337] 对于所确定的潜在导航动作中的每个,系统可以确定预期奖励。预期奖励可以根据上述技术中的任一种来确定,并且可以包括关于一个或多个奖励函数对特定潜在动作的分析。对于在步骤1605、1607和1609中确定的每个潜在导航动作(例如,第一,第二和第N),可以分别确定预期奖励1606、1608和1610。
[0338] 在一些情况下,主车辆的导航系统可基于与预期奖励1606、1608和1610(或预期奖励的任何其他类型的指示符)相关联的值,从可用潜在动作中选择。例如,在某些情况下,可以选择产生最高预期奖励的动作。
[0339] 在其他情况下,尤其是在导航系统进行长远规划以确定主车辆的导航动作的情况下,系统可以不选择产生最高预期奖励的潜在动作。相反,系统可以展望未来以分析,如果响应于当前导航状态选择了较低的奖励动作,是否有机会在之后实现较高奖励。例如,对于在步骤1605、1607和1609处确定的任何或全部潜在动作,可以确定未来状态。在步骤1613、1615和1617确定的每个未来状态可以表示预期基于当前导航状态、由相应潜在动作(例如,在步骤1605、1607和1609确定的潜在动作)修改而得到的未来导航状态。
[0340] 对于在步骤1613、1615和1617预测的未来状态中的每个,可以确定和评估一个或多个未来动作(作为响应于确定的未来状态而可用的导航选项)。在步骤1619、1621和1623处,例如,可以(例如,基于一个或多个奖励函数)产生与一个或多个未来动作相关联的预期奖励的值或任何其他类型的指示符。可以通过比较与每个未来动作相关联的奖励函数的值或通过比较与预期奖励相关联的任何其他指示符,来评估与一个或多个未来动作相关的预期奖励。
[0341] 在步骤1625,主车辆的导航系统可基于预期奖励的比较,不仅基于相对于当前导航状态识别的潜在动作(例如,步骤1605、1607和1609中的),并且还基于作为响应于预测的未来状态可用的潜在未来动作的结果而确定的预期奖励(例如,在步骤1613、1615和1617处确定的),来选择主车辆的导航动作。在步骤1625处的选择可以基于在步骤1619、1621和1623处执行的选项和奖励分析。
[0342] 在步骤1625处对导航动作的选择可以仅基于与未来动作选项相关联的预期奖励的比较。在这种情况下,导航系统可以仅基于对从对潜在的未来导航状态的动作得到的预期奖励的比较,来选择对当前状态的动作。例如,系统可以选择在步骤1650、1610和1609处识别的、与通过在步骤1619、1621和1623处的分析确定的最高未来奖励值相关联的潜在动作。
[0343] 在步骤1625对导航动作的选择还可以仅基于当前动作选项的比较(如上所述)。在这种情况下,导航系统可以选择在步骤1605、1607或1609识别的、与最高预期奖励1606、1608或1610相关联的潜在动作。这种选择可以在很少或不考虑未来导航状态或对响应于预期未来导航状态的可用导航动作的未来预期奖励的情况下执行。
[0344] 另一方面,在一些情况下,在步骤1625对导航动作的选择可以基于与未来动作选项和当前动作选项两者相关联的预期奖励的比较。事实上,这可能是基于长远规划的导航原理之一。例如,可以分析对未来动作的预期奖励,以确定是否有任何预期奖励可以授权响应于当前导航状态对较低的奖励动作进行的选择,以便响应于后续导航动作实现潜在的较高奖励,该后续导航动作是预期响应于未来导航状态而可用的。作为示例,预期奖励1606的值或其他指示符可以指示在奖励1606、1608和1610当中的最高预期奖励。另一方面,预期奖励1608可以指示在奖励1606、1608和1610当中的最低预期奖励。并非简单地选择在步骤1605确定的潜在动作(即,引起最高预期奖励1606的动作),可以将未来状态、潜在的未来动作、以及未来奖励的分析用于在步骤1625进行导航动作选择。在一个示例中,可以确定在步骤1621识别的奖励(响应于对步骤1615确定的未来状态的至少一个未来动作,而步骤1615确定的未来状态是基于步骤1607中确定的第二潜在动作的)可以高于预期奖励1606。基于该比较,可以选择在步骤1607确定的第二潜在动作,而不是在步骤1605确定的第一潜在动作,尽管预期奖励1606高于预期奖励1608。在一个示例中,在步骤1605确定的潜在导航动作可以包括在检测到的目标车辆前面的并道,而在步骤1607确定的潜在导航动作可以包括在目标车辆后面的并道。尽管在目标车辆前面并道的预期奖励1606可能高于与在目标车辆后面并道相关联的预期奖励1608,但可以确定在目标车辆后面并道可能导致一未来状态,对于该未来状态可能存在产生比预期奖励1606、1608或基于响应于当前的、感测到的导航状态的可用动作的其他奖励甚至更高的潜在奖励的动作选项。
[0345] 在步骤1625处从潜在动作之中进行选择可以基于预期奖励的任何合适的比较(或将与一个潜在动作相关联的益处的任何其他度量或指示符彼此比较)。在一些情况下,如上所述,如果预计第二潜在动作要提供与高于与第一潜在动作相关联的奖励的预期奖励相关联的至少一个未来动作,则可以越过第一潜在动作而选择第二潜在动作。在其他情况下,可以采用更复杂的比较。例如,与响应于预计的未来状态的动作选项相关联的奖励可以与与确定的潜在动作相关联的多于一个预期奖励相比较。
[0346] 在一些情况下,如果至少一个未来动作被预期产生高于预期作为对当前状态的潜在动作的结果的任何奖励(例如,预期奖励1606、1608、1610等)的奖励时,则基于预计的未来状态的动作和预期奖励可以影响对当前状态的潜在动作的选择。在某些情况下,产生最高的预期奖励(例如,从与对感测到的当前状态的潜在动作相关联的预期奖励、以及从与相对于潜在未来导航状态的潜在未来动作选项相关联的预期奖励当中)的未来动作选项可以用作选择对当前导航状态的潜在动作的指导。也就是说,在识别产生最高预期奖励(或者高于预定阈值的奖励等)的未来动作选项之后,在步骤1625可以选择将导致与识别的、产生最高的预期奖励的未来动作相关联的未来状态的潜在动作。
[0347] 在其他情况下,可以基于预期奖励之间确定的差,来进行可用动作的选择。例如,如果与在步骤1621确定的未来动作相关联的预期奖励与预期奖励1606之间的差大于预期奖励1608与预期奖励1606之间的差(假设正符号的差),则可以选择在步骤1607确定的第二潜在动作。在另一个示例中,如果与在步骤1621确定的未来动作相关联的预期奖励和与在步骤1619确定的未来动作相关联的预期奖励之间的差大于预期奖励1608与预期奖励1606之间的差,则可以选择在步骤1607确定的第二潜在动作。
[0348] 已经描述了用于从对当前导航状态的潜在动作当中进行选择的若干示例。然而,可以使用任何其他合适的比较技术或标准,用于通过基于延伸到预计的未来状态的动作和奖励分析的长远规划来选择可用动作。此外,虽然图16表示长远规划分析中的两个层(例如,第一层考虑对当前状态的潜在动作产生的奖励,而第二层考虑响应于预计的未来状态的未来动作选项产生的奖励),然而,基于更多层的分析可以是能够的。例如,不是将长远规划分析基于一个或两个层,而是可以使用三层、四层或更多层分析来从响应于当前的导航状态的可用潜在动作当中选择。
[0349] 在从响应于感测到的导航状态的潜在动作当中进行选择之后,在步骤1627,至少一个处理器可以响应于所选择的潜在导航而引起对主车辆的导航致动器的至少一个调节动作。导航致动器可以包括用于控制主车辆的至少一个方面的任何合适的装置。例如,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
[0350] 基于推断的其他方侵略的导航
[0351] 可以通过分析获取的图像流来监测目标车辆,以确定驾驶侵略的指示符。本文将侵略描述为定性或定量参数,但可以使用其他特性:注意力的感知等级(驾驶员的潜在损伤、手机造成分心、睡着等)。在一些情况下,目标车辆可以被认为具有防御性姿势,并且在一些情况下,可以确定目标车辆具有更具侵略性姿势。基于侵略指示符可以选择或产生导航动作。例如,在一些情况下,可以跟踪相对于主车辆的相对速度、相对加速度、相对加速度的增加、跟随距离等,以确定目标车辆是侵略性的还是防御性的。例如,如果目标车辆被确定为具有超过阈值的侵略等级,则主车辆可能倾向于让路给目标车辆。还可以基于确定的目标车辆相对于目标车辆的路径中或其附近的一个或多个障碍物(例如,前方车辆、道路上的障碍物、交通灯等)的行为,来辨别目标车辆的侵略等级。
[0352] 作为对这个概念的介绍,将相对于主车辆并道至环形道来描述示例性实验,其中导航目标是穿过环形道并从环形道出去。该情况可以以主车辆接近环形道的入口开始,并且可以以主车辆到达环形道的出口(例如,第二出口)结束。可以基于主车辆是否始终与所有其他车辆保持安全距离、主车辆是否尽快完成路线、以及主车辆是否遵循平稳的加速策略来衡量成功。在这个示例中,NT个目标车辆可以随机置于环形道上。为了对对抗和典型行为的混合进行建模,在概率p下,目标车辆可以通过“侵略性”驾驶策略来建模,使得侵略性的目标车辆在主车辆试图在目标车辆前方并道时加速。在概率1-p下,目标车辆可以通过“防御性”驾驶策略来建模,使得目标车辆减速并让主车辆并道。在该实验中,p=0.5,并且可以不为主车辆的导航系统提供关于其他驾驶员的类型的信息。可以在片段开始时随机选择其他驾驶员的类型。
[0353] 导航状态可以表示为主车辆(作用者)的速度和位置、以及目标车辆的位置、速度和加速度。保持目标加速度观察可能很重要,以便基于当前状态区分侵略性和防御性的驾驶员。所有目标车辆都可能沿着环形路径为轮廓的一维曲线移动。主车辆可以在其自身的一维曲线移动,该曲线在并道点处与目标车辆的曲线相交,并且该点是两条曲线的起点。为了对合理驾驶进行建模,所有车辆的加速度的绝对值可以以常数为界限。因为不允许倒退驾驶,速度也可以通过ReLU传递。注意,通过不允许倒退驾驶,因此长远规划可以成为必要的,因为作用者不会对其过去的行为后悔。
[0354] 如上所述,下一状态st+1可被分解为可预测部分 和不可预测部分vt的总和。表达式 可以表示车辆位置和速度的动态(可以以可微分的方式良好地定义),同时vt可以表示目标车辆的加速度。可以验证, 可以表示为ReLU函数在仿射变换上的组合,因此其相对于st和at是可微的。该向量vt可以由模拟器以不可微的方式来定义,并且可以对一些目标实施侵略性行为并对其他目标实施防御性行为。在图17A和17B中示出了来自这种模拟器的两个帧。在这个示例性实验中,主车辆1701学习到在它接近环形道的入口时减速。它还学习到为侵略性车辆(例如,车辆1703和1705)让路,并且在防御性车辆(例如,车辆1706、1708和1710)前方并道时安全地继续行驶。在由图17A和17B表示的示例中,没有为主车辆1701的导航系统提供目标车辆的类型。而是,通过基于观察到的(例如,目标车辆的)位置和加速度的推断,来确定特定车辆是否被确定为侵略性或防御性的。在图17A中,基于位置、速度和/或相对加速度,主车辆1701可以确定车辆1703具有侵略性的倾向,并且因此主车辆1701可以停下并等待目标车辆1703通过而不是尝试在目标车辆1703的前方并道。然而,在图17B中,目标车辆1701辨识出在车辆1703后面行驶的目标车辆1710展现出防御性的倾向(同样基于观察到的车辆1710的位置、速度和/或相对加速度),因此完成了在目标车辆1710前方以及目标车辆1703后方的成功并道。
[0355] 图18提供了表示用于基于预测的其他车辆的侵略来导航主车辆的示例性算法的流程图。在图18的示例中,可以基于相对于目标车辆的环境中的对象所观察到目标车辆的行为,来推断与至少一个目标车辆相关联的侵略等级。例如,在步骤1801,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1803,对一个或多个所接收的图像的分析可以使至少一个处理器能够识别主车辆1701的环境中的目标车辆(例如,车辆1703)。在步骤1805,对一个或多个所接收的图像的分析可以使至少一个处理设备能够在主车辆的环境中识别目标车辆的至少一个障碍物。所述对象可以包括道路中的碎片、停车灯/交通灯、行人、另一车辆(例如,在目标车辆前方行驶的车辆、停放的车辆等)、道路中的箱子、路障、路缘或可能在主车辆的环境中遇到的任何其他类型的对象。在步骤1807,对一个或多个接收的图像的分析可以使至少一个处理设备能够确定目标车辆相对于目标车辆的至少一个识别的障碍物的至少一个导航特性。
[0356] 可以使用各种导航特性来推断检测到的目标车辆的侵略等级,以便产生对目标车辆的适当的导航响应。例如,这种导航特性可以包括目标车辆与至少一个识别的障碍物之间的相对加速度、目标车辆距障碍物的距离(例如,目标车辆在另一车辆后面的跟随距离)、和/或目标车辆与障碍物之间的相对速度等。
[0357] 在一些实施例中,可以基于来自与主车辆相关联的传感器(例如雷达、速度传感器、GPS等)的输出来确定目标车辆的导航特性。然而,在一些情况下,可以部分地或完全地基于对主车辆的环境的图像的分析来确定目标车辆的导航特性。例如,上文所述和在例如通过引用合并如此处的美国专利号9,168,868中描述的图像分析技术可以用于识别主车辆的环境内的目标车辆。并且,随着时间的推移监测目标车辆在捕捉图像中的位置和/或监测与目标车辆相关联的一个或多个特征(例如,尾灯、头灯、保险杠、车轮等)在捕捉图像中的位置,可以使得能够确定目标车辆与主车辆之间或者目标车辆与主车辆的环境中的一个或多个其它对象之间的相对距离、速度和/或加速度。
[0358] 可以从目标车辆的任何合适的观察到的导航特性或观察到的导航特性的任何组合中推断所识别的目标车辆的侵略等级。例如,可以基于任何观察到的特性和一个或多个预定阈值等级或任何其他合适的定性或定量分析,作出对侵略性的确定。在一些实施例中,如果目标车辆被观察到以小于预定侵略性距离阈值的距离跟随主车辆或另一车辆,则目标车辆可被认为是侵略性的。另一方面,被观察到以大于预定防御性距离阈值的距离跟随主车辆或另一车辆的目标车辆可被认为是防御性的。预定侵略性距离阈值不需要与预定防御性距离阈值相同。另外,预定侵略性距离阈值和预定防御性距离阈值中的任一个或两者可以包括值的范围,而不是分界值(bright line value)。此外,预定侵略性距离阈值和预定防御性距离阈值都不必被固定。相反,这些值或值的范围可以随时间而改变,并且可以基于观察到的目标车辆的特性来应用不同的阈值/阈值的范围。例如,所应用的阈值可以取决于目标车辆的一个或多个其他特性。较高的所观察到的相对速度和/或加速度可以授权应用较大的阈值/范围。相反,较低的相对速度和/或加速度(包括零相对速度和/或加速度)可以授权在进行侵略性/防御性推断时应用较小的距离阈值/范围。
[0359] 侵略性/防御性推断也可以基于相对速度和/或相对加速度阈值。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度超过预定等级或范围,则该目标车辆可被认为是侵略性的。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度低于预定水平或范围,则该目标车辆可被认为是防御性的。
[0360] 尽管可以仅基于任何观察到的导航特性来进行侵略性/防御性确定,但该确定还可以取决于观察到的特性的任何组合。例如,如上所述,在一些情况下,目标车辆可以仅基于观察到其正在以某个阈值或范围以下的距离跟随另一车辆而被认为是侵略性的。然而,在其他情况下,如果目标车辆以小于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有大于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是侵略性的。类似地,目标车辆可以仅基于观察到其正在以大于某个阈值或范围的距离跟随另一车辆而被认为是防御性的。然而,在其他情况下,如果目标车辆以大于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有小于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是防御性的。如果例如车辆超过0.5G加速度或减速度(例如,5m/s3觉克(jerk))、车辆在车道变换或曲线上具有0.5G的横向加速度、一车辆导致另一车辆进行上述任何一项、车辆改变车道并导致另一车辆以0.3G减速度或3米/秒觉克以上进行让路、和/或车辆在不停的情况下改变两条车道,则系统100可以得出侵略性/防御性。
[0361] 应该理解的是,对超过一范围的量的引用可以指示该量超过与该范围相关联的所有值或落入该范围内。类似地,对低于一范围的量的引用可以指示该量低于与该范围相关的所有值或落入该范围内。另外,尽管相对于距离、相对加速度和相对速度描述了用于进行侵略性/防御性推断的示例,但是可以使用任何其他合适的量。例如,可以使用对要发生碰撞的时间的计算、或者目标车辆的距离、加速度和/或速度的任何间接指示符。还应该注意的是,尽管上述示例关注于相对于其他车辆的目标车辆,但是可以通过观察目标车辆相对于任何其他类型的障碍物(例如,行人、路障、交通灯、碎片等)的导航特性来进行侵略性/防御性推断。
[0362] 回到图17A和17B所示的示例,当主车辆1701接近环形道时,导航系统(包括它的至少一个处理设备)可以接收来自与主车辆相关联的相机的图像流。基于对一个或多个接收的图像的分析,可以识别目标车辆1703、1705、1706、1708和1710中的任何一个。此外,导航系统可以分析一个或多个识别的目标车辆的导航特性。导航系统可以辨识到目标车辆1703与1705之间的间隙表示潜在并道至环形道的第一机会。导航系统可以分析目标车辆1703以确定与目标车辆1703相关联的侵略指示符。如果目标车辆1703被认为是侵略性的,则主车辆导航系统可以选择为车辆1703让路而不是在车辆1703前方并道。另一方面,如果目标车辆1703被认为是防御性的,则主车辆导航系统可以尝试在车辆1703前完成并道动作。
[0363] 当主车辆1701接近环形道时,导航系统的至少一个处理设备可以分析所捕捉的图像以确定与目标车辆1703相关联的导航特性。例如,基于图像,其可以确定车辆1703以一距离跟随车辆1705,该距离为主车辆1701安全进入提供足够的间隙。事实上,可以确定车辆1703以超过侵略性距离阈值的距离跟随车辆1705,并且因此基于该信息,主车辆导航系统可以倾向于将目标车辆1703识别为防御性的。然而,在一些情况下,如上所述,可以在进行侵略性/防御性确定时,分析目标车辆的多于一个的导航特性。进一步分析,主车辆导航系统可以确定,当目标车辆1703以非侵略距离在目标车辆1705后面跟随时,车辆1703相对于车辆1705具有超过与侵略性行为相关联的一个或多个阈值的相对速度和/或相对加速度。
实际上,主车辆1701可以确定目标车辆1703相对于车辆1705正在加速,并且靠近存在于车辆1703与1705之间的间隙。基于对相对速度、加速度和距离(以及甚至是车辆1703与1705之间的间隙正在靠近的速率)的进一步分析,主车辆1701可以确定目标车辆1703正在侵略性地表现行为。因此,虽然可能存在主车辆可以安全地导航进入的足够间隙,但主车辆1701可以预期在目标车辆1703前方的并道将导致在主车辆紧后面的侵略性地导航的车辆。此外,基于通过图像分析或其他传感器输出观察到的行为,目标车辆1703可以被预期为:如果主车辆1701要在车辆1703的前方并道,则目标车辆1703将继续加速朝向主车辆1701或者以非零相对速度继续朝向主车辆1701行驶。从安全角度来看,这种情况可能是不希望的,并且也可能导致主车辆的乘客不适。出于这种原因,如图17B所示,主车辆1701可以选择为车辆
1703让路,并且在车辆1703后面并且在车辆1710的前方并道至环形路,该车辆1710基于对其一个或多个导航特性的分析而被视为是防御性的。
[0364] 回到图18,在步骤1809,主车辆的导航系统的至少一个处理设备可以基于识别的目标车辆相对于识别的障碍物的至少一个导航特性,来确定主车辆的导航动作(例如,在车辆1710的前方和车辆1703的后方并道)。为了实施该导航动作(在步骤1811),至少一个处理设备可以响应于所确定的导航动作引起对主车辆的导航致动器的至少一个调节。例如,可以应用制动器以便让路给图17A中的车辆1703,并且加速器可以与主车辆的车轮的转向一起应用以便使主车辆在车辆1703后面进入环形交叉口,如图17B所示。
[0365] 如以上示例中所述,主车辆的导航可以基于目标车辆相对于另一车辆或对象的导航特性。另外,主车辆的导航可以仅基于目标车辆的导航特性而不特别参考另一车辆或对象。例如,在图18的步骤1807处,对从主车辆的环境捕捉的多个图像的分析可以使得能够确定识别的目标车辆的至少一个导航特性,该导航特性指示与目标车辆相关联的侵略等级。导航特性可以包括速度、加速度等,其不需要相对于另一对象或目标车辆进行参考,以便进行侵略性/防御性的确定。例如,观察到的与目标车辆相关联的超过预定阈值或落入或超过数值范围的加速度和/或速度可以指示侵略性行为。相反,观察到的与目标车辆相关联的低于预定阈值或落入或超过数值范围的加速度和/或速度可以指示防御性行为。
[0366] 当然,在一些情况下,为了进行侵略性/防御性的确定,可以相对于主车辆来参考所观察到的导航特性(例如,位置、距离、加速度等)。例如,观察到的目标车辆的指示与目标车辆相关联的侵略等级的导航特性可以包括目标车辆与主车辆之间的相对加速度的增加、主车辆后方目标车辆的跟随距离、目标车辆与主车辆之间的相对速度等。
[0367] 基于位置的导航规则选择
[0368] 在一些实施例中,主车辆导航系统可基于规则对车辆的适用性,在导航规则之间进行选择。例如,主车辆导航系统可以监测主车辆的位置(例如,基于GPS、位置广播信标、已辨识的交通标志等,或者前述的任何组合),并且基于位置在导航规则之间进行选择(例如,在绿灯亮时在让行(yield)的情况下左转,或仅在绿色箭头灯亮时左转)。以下描述了用于将这样的导航规则应用于车辆的自主控制的系统和方法。
[0369] 如图19所示,结合上面讨论的其他模块,导航规则的选择和应用可以被划分为例如两个模块,包括辖区确定模块1902和导航规则确定模块1904。在一些实施例中,模块1902和1904可以存储在系统100的存储器单元140和/或存储器单元150中,或者模块1902和1904(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。
[0370] 辖区确定模块1902可以存储可由处理单元110执行的指令,其可以处理与识别一个或多个辖区相关的各种任务,其中目标车辆与该一个或多个辖区相关联。这样的任务可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入,诸如来自一个或多个车载相机的图像或图像流、GPS位置信息、用户反馈、或者对一个或多个用户接口设备的用户输入、雷达、激光雷达等。
[0371] 例如,辖区确定模块1902可以基于主车辆的位置的至少一个指示符,来识别主车辆正在其中行驶的辖区。该至少一个指示符可以包括GPS信号或其他包括与主车辆的位置有关的信息的数字或模拟无线信号中的一个或多个。在一些实施例中,主车辆的位置的至少一个指示符可以至少部分地基于对多个图像的分析。例如,图像可以包括带有文本的道路标志,可以经由光学字符辨识来分析该文本以确定车辆的位置。
[0372] 辖区的确定可以基于特定区域内的实际存在,如由上述传感器和感测系统中的任何一个或多个所确定的。这些区域可以包括例如州、县、市等的地理限制。在一些实施例中,多个辖区可以是一起可适用的,例如,如果主车辆同时在市和县的限制之内。在一些实施例中,辖区可以包括特定类型的区域(例如,城市、郊区、休闲、购物、娱乐、餐饮等)。
[0373] 另外或可替代地,可基于与主车辆的位置或环境相关联的属性,来确定辖区。在一些实施例中,辖区确定模块1902可以确定主车辆正沿着特定类型的道路行驶,诸如限制访问的高速公路,其表示受特定规则和/或交通法规约束的特定辖区。辖区确定模块1902可以确定其他属性,诸如基于时间和/或日期(例如,周末、假日、高峰时间等)的辖区、作为私人或公共财产的位置的状态、车辆状态(例如,车辆占用者的数量)等等。如上所述,可以经由地图数据库160或因素的组合,通过与主车辆相关联的传感器和感测系统来确定这些属性。
[0374] 在一些实施例中,辖区确定模块1902的输出可以被传递到导航规则确定模块1904。导航规则确定模块1904可以存储可由处理单元110执行的指令,并且可以实施期望的驾驶策略,以便响应于所确定的辖区决定主车辆要采取的一个或多个的导航动作。在一些实施例中,导航规则确定模块1904可以基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,来引起主车辆的导航改变。
[0375] 例如,导航规则确定模块1904可以确定,由辖区确定模块1902确定的辖区在交通灯所示的绿色箭头不存在的情况下,禁止在带有该交通灯的交叉口处的左转。替代地,导航规则确定模块1904可以确定,在交通灯所示的绿灯存在的情况下,辖区允许在让行的情况下在交叉口处的左转。由导航规则确定模块1904确定的其他规则可以包括当显示红灯时禁止或允许转弯、当行人存在时禁止转弯等的规则。在一些实施例中,多个规则可以适用于特定的情景。在这些情况下,导航规则确定模块1904可以确定规则是否一致或矛盾。如果规则一致,则导航规则确定模块1904可以使主车辆根据规则继续进行。如果多个规则相矛盾,则导航规则确定模块1904可以对规则进行排名,应用带有最高排名的规则并且同时维持安全标准。例如,基于市辖区的规则可以取代基于县辖区的规则。
[0376] 导航规则确定模块1904可以确定可适用于各种情景的导航规则。在一些实施例中,导航规则确定模块可以确定与有关于特定辖区的多车道道路的特定车道相关的规则。例如,确定的辖区可以基于车轴的重量或数量来限制车辆对一个或多个特定车道的访问,或者可以基于车辆中存在的乘客的数量来限制高乘载(occupancy)车道。导航规则确定模块1904可以确定,辖区禁止在多车道道路的车道(例如,左车道)中导航(除非经过另一车辆),或禁止在指定日期和/或时间之外访问特定车道或路肩。
[0377] 导航规则确定模块1904还可以基于已知在所确定的辖区中存在的特性,来确定导航规则。这些特性可以包括速率限制、道路特性(例如,车道宽度)、交通灯定时、收费时间表等。已知特性还可以包括特定位置的“非书面规则”。遵守这些非书面规则可以避免主车辆的不良行为。例如,规则确定模块1904可以确定用以在已知特别是丘陵、易于发生交通或易于发生碰撞的区域中提供主车辆和目标车辆之间的额外距离的规则。这样的规则可以防止不必要的制动,改善燃料经济性或防止碰撞。此外,可以经由强化学习来产生这样的非书面规则,如上面关于驾驶策略模块803所描述的。在一些实施例中,可以基于在其中训练了策略的辖区来产生和采用驾驶策略。除了上面关于控制模块805描述的考虑之外或作为其替代,控制模块805可以基于来自导航规则确定模块1904的输出,产生用于与主车辆相关联的一个或多个致动器或受控设备的控制指令。
[0378] 图20示出了可以在主车辆的导航期间捕获和分析的场景的示例,如关于图12所描述的。图20中示出的场景包括可能受辖区规则影响的多个特征。例如,交通灯2002包括多列灯,其可以包括最左列中的绿色箭头和黄色箭头。对交通信号灯2002的各种灯的正确解释可能受到交通信号灯2002所在的(一个或多个)辖区的影响。标志2004指示左转的车辆必须为迎面而来的交通让行。此外,标志2006指示在上午7:00至下午7:00期间禁止左转,但不包括假日。导航规则确定模块1904可以基于对由标志2004和/或2006指示的要求进行定义的信息,来确定一个或多个规则。例如,导航规则确定模块1904可确定与辖区相关联的时区,并确定主车辆是否在由标志2006指定的时间内运作。导航规则确定模块1904还可确定在辖区中观察到的假日,并确定主车辆是否在辖区观察到的假日期间运作。
[0379] 标志2008显示名称“Hartom街”。导航规则确定模块1904可以确定Hartom街是否延伸通过多个辖区,以及街道是否包括不同的属性或者因此受到不同的法律约束。例如,导航规则确定模块1904可以确定Hartom街是特定的市、县或其他辖区的限制内的单行道。
[0380] 标志2010表示当行人存在时不能进行转弯。导航规则确定模块1904可以确定与行人的存在相关的规则是否可能受到相关辖区的影响。例如,导航规则确定模块1904可以确定,特定辖区基于行人距道路的特定距离、在道路内距道路边界的距离等来定义行人的存在。
[0381] 图21是表示基于位置的主车辆导航系统的导航规则选择的示例处理的流程图2100的示例。在图21的示例中,可以基于与主车辆的位置相关的辖区来建立或修改导航规则。
[0382] 在步骤2102,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像,例如,如上面关于图2和5所描述的。在步骤2104,对所接收的图像中的一个或多个的分析可以使得至少一个处理器能够识别主车辆的导航状态,例如,如上面关于感测模块801所描述的。
[0383] 在步骤2106,至少一个处理设备可以识别与主车辆相关联的辖区。如上所述,可以由辖区确定模块1902执行识别。例如,辖区确定模块1902可以基于GPS、对在步骤2102接收的图像的图像分析、和该主车辆与包括市和州的多个辖区相关联的用户输入中的一个或多个的组合,来识别相关辖区。更具体地,辖区确定模块1902可以基于由用户输入的请求路线信息、从GPS接收器接收的位置信息、和对包括标志(诸如,图20中示出的标志2008)的图像的分析的组合,来确定与特定的市和州的关联。更具体地,可以将辖区信息的范围缩小到在请求导航的路线中存在的辖区。可以通过将经由GPS信号找到的位置与辖区位置的数据库进行比较来识别特定辖区。可以经由对多个图像的分析,通过确认经由对街道标志上反映的道路名称的光学字符辨识所识别的交叉口实际上位于所识别的辖区内,来检验该位置。
[0384] 在步骤2108,至少一个处理设备可以确定特定于在步骤2106中识别的辖区的至少一个导航规则。可以经由任何规则确定模块1904来确定导航规则,如上文所描述的。如上文所概述的,在基于辖区而多个规则适用的情况下,规则确定模块1904可以确定规则是否一致,并且如果规则不一致则确定何种规则在特定位置进行控制。
[0385] 在步骤2110,至少一个处理设备可以基于所识别的主车辆的导航状态并且基于所确定的特定于所识别的辖区的至少一个导航规则,来引起主车辆的导航改变。在一些实施例中,主车辆的导航系统的至少一个处理设备可以基于所确定的导航规则,为主车辆确定导航改变所必需的导航动作(例如,左转、停止、为迎面而来的交通让行、不超车(pass)、不改变车道、仅为超车才改变车道等等)。
[0386] 在一个实施例中,处理设备可以基于导航状态确定需要左转。处理设备可能已经基于经由GPS信号以及由处理器接收的对图像的分析以从标志2008提取到Hartom街(例如,经由OCR技术)而确定的车辆的位置,而识别出辖区。处理设备可能已经确定,该位置由单个辖区管理,该辖区允许在没有箭头的情况下绿灯亮时左转,但是为迎面而来的交通让行。基于该确定,处理设备可以在为迎面而来的交通让行的情况下发起转弯。
[0387] 为了实施导航动作,至少一个处理设备可以响应于所确定的导航动作而引起对主车辆的导航致动器进行至少一个调节。例如,可以应用制动器以便为迎面而来的交通让行,并且可以与主车辆的车轮的转向一起应用加速器,以便在迎面而来的交通已经通过时引起主车辆左转。
[0388] 基于导航系统的命令特征的超车
[0389] 在一些实施例中,主车辆导航系统可以基于超过目标车辆的期望,在导航规则之间进行选择。出于许多原因中的任何原因,超车可能是所期望的,这些原因使得跟随该目标车辆是不合期望的,诸如目标车辆的大小、类型、对可见性的影响、对主车辆乘客的舒适性的影响、对主车辆乘客的安全的预期影响。下面描述将这样的导航规则应用于车辆的自主控制的系统和方法。
[0390] 例如,在一个实施例中,用于主车辆的导航系统可以包括至少一个处理设备(例如,处理单元110),其被编程为从至少一个相机(例如,图像捕捉单元122、124和126中的至少一个)接收表示主车辆的环境的多个图像。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆,并且分析该多个图像以识别该目标车辆的至少一个特性。主车辆的至少一个特性可以与目标车辆的任何一个或多个方面有关(例如,大小、形状、车辆类型等)。在识别至少一个特性之后,至少一个处理设备还可以被编程为引起主车辆的至少一个导航改变以发起对目标车辆的超车(pass)。
[0391] 如图22所示,结合上面讨论的其他模块,导航规则的选择和应用可以被划分为两个模块,包括目标车辆特性确定模块2202和导航改变发起模块2204。在一些实施例中,模块2202和2204可以存储在系统100的存储器单元140和/或存储器单元150中,或者模块2202和
2204(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。
[0392] 目标车辆特性确定模块2202可以存储可由处理单元110执行的指令,其可以处理与识别由感测模块801感测的目标车辆的一个或多个特性有关的各种任务。这样的任务可以依赖于来自与主车辆相关联的传感器和感测系统的输入,诸如来自一个或多个车载相机的图像或图像流、用户反馈、或者对一个或多个用户接口设备的用户输入、雷达、激光雷达等。
[0393] 在一些实施例中,目标车辆特性确定模块可确定目标车辆的大小和/或形状。这种确定可以以绝对项进行,诸如以线性单位(例如,英尺、米等)的测量,或者可以相对于与驾驶上下文相关的特性来进行,诸如车道宽度的百分比、最大高度的百分比、被目标车辆遮挡的视场的部分等。可以经由分析所接收的图像来确定车辆尺寸和/或(一个或多个)形状。例如,可以确定和/或识别图像中的已知距离,并将已知距离与车辆尺寸进行比较以确定车辆的实际大小。可以通过将在接收的图像中找到的形状与在车辆和其他物体中找到的已知形状进行比较,来确定形状的相关性。
[0394] 目标车辆特性确定模块2202还可以确定车辆类型。在一些实施例中,可以确定车辆类别(例如,轿车、卡车、货车、摩托车、商用车等)。目标车辆特性确定模块2202可以通过确定目标车辆的形状并将其与车辆形状的数据库进行比较,来确定车辆类型。替代地,目标车辆特性确定模块可以使用目标车辆的特定特征(诸如其轮胎的大小)来确定。可以使用经训练的系统来识别一个或多个图像中的形状或其他特性,这在完成附加确定时获得了置信度。此外,目标车辆特性确定模块可以经由对图像的光学字符辨识,来识别在车辆上找到的文本,诸如轮胎、车辆上的文本等。目标车辆特性确定模块2202还可以确定目标车辆是否符合诸如建筑车辆、农业设备、越野车辆、出租车、警车、应急车辆等之类的类别。
[0395] 目标车辆特性确定模块2202可以确定目标车辆的其他特性,尤其是可能与超过该目标车辆的决策相关的特性。例如,目标车辆特性确定模块可以检测可能表明对附近主车辆的安全危险的条件,诸如不安全的材料(例如,摇摆的织物、松散的系束(tie down)、松散的板、敞开的门、未上的门或其他不安全的对象)。
[0396] 附加地,目标车辆特性确定模块2202可以确定与目标车辆相关联的其他条件或事件,诸如从目标车辆释放物质(例如,液体、诸如碎石或冰之类的固体、诸如烟雾或烟尘之类的特定物质等)。类似于上述的对车辆特性的识别,可以经由与数据库中的对象的形状和/或大小进行比较、学习算法或组合来分析所接收的图像而进行这种确定。
[0397] 在一些实施例中,目标车辆特性确定模块2202可以从安装到主车辆的粒子检测器硬件接收对颗粒物质的指示。目标车辆特性确定模块2202可以基于该指示确定颗粒物质例如是目标车辆排放的烟雾或烟尘。
[0398] 目标车辆特性确定模块2202可以输出指示所确定的目标车辆的特性的信息。该输出可以本质上是分类的,仅指示存在一特性,或者可以指示特性的程度,例如,诸如超大车辆的大小或烟雾发射的程度的量级。
[0399] 特性确定模块2202的输出可以被传递到导航改变发起模块2204。导航改变发起模块2204可以存储可由处理单元110执行的指令,并且可以实现期望的驾驶策略,如上面关于驾驶策略模块803所描述的,以便响应于所确定的目标车辆特性来决定主车辆要采取的一个或多个导航动作。导航改变发起模块2204可以引起主车辆的至少一个导航改变以发起对目标车辆的超车。
[0400] 导航改变发起模块2204可以基于目标车辆的不利条件——例如对可见性的影响、对主车辆乘客的舒适性的影响、对主车辆乘客的安全的预期影响——来确定导航改变。可以采用驾驶政策来避开目标车辆或观察到的不利条件,诸如减慢主车辆的速度、将主车辆移动到另一车道、或引起主车辆超过目标车辆。
[0401] 在一些实施例中,导航改变发起模块2204可以基于目标车辆的大小来发起改变。可以通过考虑诸如高度、宽度、面积、形状等之类的多个因素和/或度量,来发起基于大小的导航改变。导航改变发起模块2204还可以基于目标车辆正在行驶的速度来发起改变。例如,如果目标车辆行驶在速度限制以下,则导航改变发起模块可以发起超车。
[0402] 在一些实施例中,导航改变发起模块2204可以基于安全考虑来发起改变。例如,导航改变发起模块2204可以将诸如迂回行进(weaving)、频繁或突然制动、未能保持在一个车道内等之类的驾驶行为用作因素。
[0403] 在一些实施例中,导航改变发起模块2204可以基于车辆类型而发起改变。例如,导航改变发起模块2204可以引起主车辆超过某些类型的车辆,诸如建筑车辆或农用车辆,或者留在某些类型的车辆后面的距离比留在其他车辆后面的距离更远。
[0404] 导航改变发起模块2204还可以使导航动作基于其他因素,诸如用户输入。例如,导航改变发起模块2204可以从由主车辆的乘客操作的用户接口接收输入。在一些实施例中,来自主车辆的占用者或乘客的输入可包括诸如非机械输入之类的输入。此类输入可被用于发起导航改变、确认导航改变、覆盖(override)导航改变、强化导航改变的适当性、请求未来不进行导航改变,或者以与从特性确定模块2202接收的信息的任何其他组合使用。
[0405] 导航改变发起模块2204可以通过确定用于导航的一个或多个空间目标,来发起导航改变。空间目标可以是主车辆旨在导航到其以便执行导航改变的物理位置。物理位置可以以绝对项(例如,纬度和经度)来定义、相对于固定的一个或多个对象来定义、相对于目标车辆来定义、或以定义空间位置的任何其他手段来定义。空间目标可以与时间规范(temporal specification)相关联,该时间规范可以设置到达该空间目标的期望或预期的时间或时间窗。因此,在一些实施例中,处理设备可以被配置为提供一组控制命令,以用于在选择的时间范围(timeframe)内将车辆导航到选择的空间目标。可以自动执行对(一个或多个)空间目标和/或(一个或多个)时间规范的确定,或者响应于用户输入而执行。此外,导航改变发起模块2204可以确定安全超车操纵是否可用,例如通过确定是否存在不会引起车辆过错的事故的可用的超车操纵。
[0406] 导航改变发起模块2204可以被配置为调用机器学习策略模块,诸如以上关于驾驶策略模块803所描述的。机器学习策略模块可以确定车辆发起和完成对另一车辆的超车的一组动作。
[0407] 图23示出了场景2300的示例,其可以由主车辆的相机捕捉并且在主车辆的导航期间被分析,如关于图12所描述的。图23中所示的场景包括可以由主车辆识别的目标车辆2302。目标车辆2302包括在接收的图像中可能是明显的多个示例特性,该示例特性由目标车辆特性确定模块2202识别,并且可以提示导航改变发起模块2204进行导航改变。
[0408] 例如,目标车辆2302的高度2304和宽度2306中的任一个或两者足够大到妨碍主车辆的可见性。排放烟雾2310的排气管2308可能妨碍可见性或对主车辆的乘客造成环境危害。此外,后门2312可能部分或完全敞开和/或闩锁2314可能处于未上锁位置。在一些情况下,目标车辆可以包括避开目标车辆2302的明确指示,诸如发光尾灯2316或“留在后面(STAY BACK)”标志2318。虽然未在图23中明确示出,但是目标车辆可以包括其他不安全的材料,诸如摇摆的漏气轮胎、松散的织物系束等。
[0409] 图24是用于基于超过目标车辆的期望而在导航规则之间进行选择的处理的流程图2400的示例。在步骤2402,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像,例如,如以上结合图2和5所描述的。在步骤2404,对所接收的图像中的一个或多个的分析可以使得至少一个处理器能够识别目标车辆,例如,如以上关于感测模块801所描述的。
[0410] 在步骤2406,至少一个处理设备可以识别与目标车辆相关联的一个或多个特性。如上所述,可以由特性确定模块2202执行识别。例如,至少一个处理设备可以确定高度2304和/或宽度2306。该确定可以作为绝对测量(例如,米、平方米)或作为定性评估(例如,超大)而被输出。作为另一示例,至少一个处理设备可以识别烟雾2310并输出烟雾浓度的适当指示,或者仅仅是输出烟雾存在的指示。
[0411] 在步骤2408,至少一个处理设备可以基于在步骤2406中识别的一个或多个特性来引起导航改变。导航改变可以由导航改变发起模块2204引起,如上文所描述的。在一些实施例中,主车辆的导航系统的至少一个处理设备可以基于所识别的与目标车辆相关联的一个或多个特性,来确定主车辆的导航动作(例如,减速、超车、改变车道等)。为了实施该导航动作,至少一个处理设备可以响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调节。例如,可以应用制动器以便减速,并且可以与主车辆的车轮的转向一起应用加速器以便完成超车。
[0412] 可以在没有用户干预的情况下自动执行导航动作。例如,在确定目标车辆的特定特性的存在之后,至少一个处理设备可以经由调节导航致动器来发起导航动作。还可以使用一个或多个阈值。在一些实施例中,可以向特性给出得分,诸如0和1之间的得分。得分可以基于特性本身的相关性或严重性,或者可以基于特性的程度(例如,超大车辆的大小、松散对象的摇摆运动的程度、烟雾量等)而变化。可以基于特性得分来执行导航动作。例如,可以在特性的得分超过预设值时、或者当特征的组合一起超过一个值时、或者根据基于得分的另一指示符,来发起导航动作。
[0413] 还可以响应于用户输入来执行导航动作。例如,主车辆中的乘客可以操纵用户接口,以发起与由特性确定模块2202识别的特性相关联的导航动作。这种操纵可以经由语音命令、按下按钮、触摸屏或手势辨识系统、或本领域已知的用于接口操作的任何其他手段来实现。用户接口可以基于一个或多个识别的特性来提出发起导航动作,并等待来自用户的确认。替代地或另外地,该接口可以接受来自用户的命令。
[0414] 在一些实施例中,导航系统可以保存在命令时存在的目标车辆的特性。例如,可以将这些特性保存到数据库,使得响应于识别到相同或类似的目标车辆特性,主车辆可以在稍后的时间发起或建议类似的导航改变。这可以允许系统在未来的驾驶中以用户优选的方式进行响应。例如,如果用户特别厌恶重复制动,则主车辆可以辨识出用户已经重复手动地发起导航改变以减少这种制动。主车辆可以将重复发光尾灯的存在与这种重复制动相关联,并因此在重复展现出发光尾灯特性的目标车辆后方时建议或发起超车。
[0415] 导航均势打破器(Tiebreaker)系统
[0416] 在一些实施例中,主车辆导航系统可以辨识其中至少一个目标车辆具有与主车辆相同或相似的导航优先级的导航系统。在这种情况下,导航系统可以采取至少一个动作来打破均势(tie)并为目标车辆或主车辆提供导航优势。这些动作可以基于动态的利他(altruistic)或支配(dominance)设置。动作可以包括向目标车辆传输信息信号(“你先走(you go)”或“我要先走(I’mgoing)”)、灯闪烁、微移前进等。下面描述用于应用这种导航均势打破器以自主控制车辆的系统和方法。
[0417] 例如,在一个实施例中,用于主车辆的导航系统可以包括至少一个处理设备(例如,处理单元110),其被编程为从至少一个相机(例如,图像捕捉单元122、124和126中的一个)接收表示主车辆的环境的多个图像。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中的至少一个目标车辆,并且至少部分地基于对该多个图像的分析来确定该目标车辆和主车辆具有类似的导航优先级从而导致导航均势情况(即,非确定性(non-conclusive)导航优先级)。该至少一个处理设备还可以被编程为引起主车辆的至少一个动作以与主车辆或目标车辆建立导航优先级,并且根据所建立的导航优先级来引起对主车辆的至少一个导航致动器的控制。
[0418] 如图25所示,结合上面讨论的其他模块,辨识和解决这种均势可以被划分为例如三个模块,包括导航优先级确定模块2502、导航优先级建立模块2504和导航改变发起模块2506。在一些实施例中,模块2502、2504和2506可以存储在系统100的存储器单元140和/或存储器单元150中,或者模块2502、2504和2506(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。
[0419] 导航优先级确定模块2502可以存储可由处理单元110执行的指令,其可以处理与识别由感测模块801感测的目标车辆的一个或多个特性有关的各种任务。这样的任务可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入,诸如来自一个或多个车载相机的图像或图像流、用户反馈、或者对一个或多个用户接口设备的用户输入、雷达、激光雷达等。导航优先级确定模块可确定主车辆还是目标车辆在两个车辆之间的特定交互中具有优先权(即,“路权”)。可以经由上述任何的系统和方法——例如对由处理设备接收的图像的分析——来确定主车辆和目标车辆的导航状态以及适用于每个车辆的导航规则。然而,如果导航优先级确定模块2502没有在目标车辆和主车辆之间找到优先权,或者如果优先级的评估接近(例如,在阈值内),则导航优先级确定模块2502可以确定主车辆和目标车辆之间的导航优先级均势。
[0420] 导航优先级确定模块2502可以分配相对于目标车辆确定的一个或多个导航优先级得分。导航优先级确定模块2502可以基于优先级得分是在所分配的得分的预定阈值之内或之外,来确定导航优先级是已建立的还是非确定性的。在一些实施例中,可以为主车辆和目标车辆中的每一个计算优先级值。导航优先级确定模块2502可以基于优先级值之间的差异是否在预定的置信度阈值内,来确定导航优先级是已建立的还是非确定性的。
[0421] 导航优先级确定模块2502的输出可以被传递到导航优先级建立模块2504。导航优先级建立模块2504可以存储可由处理单元110执行的指令,并且可以实施期望的驾驶策略,以便决定主车辆为建立导航优先级要采取的一个或多个动作。
[0422] 在一些实施例中,导航优先级建立模块2504可以被配置为基于顺从(deference)(即,利他)或支配(dominance)的推定,来建立优先级。顺从推定可以导致优先级建立模块2504通过让路给目标车辆(例如,放弃优先权(“你先走”))来建立优先级,而支配推定可以导致优先级建立模块2504通过先于目标车辆发起导航操纵(例如,主张优先权(“我要先走”))来建立优先级。导航优先级建立模块2504可以被配置为使得顺从与支配设置是固定的、可以由主车辆的乘客设置、或者可以基于任何数量的因素而是动态的。例如,可以基于到期望位置的导航是否领先于或落后于时间表(schedule),来设置顺从与支配。也就是说,优先级建立模块2504可以被配置为通过顺从来建立优先级,除非主车辆落后于到达其目的地的时间表。
[0423] 在一些实施例中,导航优先级建立模块2504可以向目标车辆发送信息信号。信息信号可以指示主车辆意图让路给目标车辆或者可以指示主车辆意图先于目标车辆发起导航操纵。信号可以经由任何已知的方式传输,诸如经由视觉提示、以及可听提示、运动、无线通信(例如,数字或模拟无线网络)。作为示例,导航优先级建立模块2504可以被配置为微移主车辆以指示优先级。微移可以指示主车辆一次移出一定距离(例如,适合于该情况的小距离,诸如几厘米、一米、几米)。在一些实施例中,导航优先级建立模块2504可以向前微移主车辆以主张优先权,并且可以向后微移主车辆以放弃优先权。本领域技术人员将认识到,可以使用其他基于运动的提示来代替向后或向前微移。在一些实施例中,系统可以在微移发生时继续评估导航优先级,即,继续确定其他车辆是否已经响应于微移而放弃。在一些实施例中,导航优先级建立模块2504可以被配置为使主车辆发出灯的闪烁以指示优先级。例如,导航优先级建立模块2504可以使主车辆闪烁其前灯以指示放弃对目标车辆的优先权的意图。类似于微移系统的情况,来继续确定其他车辆是否已经响应于该闪烁而放弃。
[0424] 在一些实施例中,导航优先级建立模块2504可以被配置为检测目标车辆对所建立的优先级的响应。与发送到目标车辆的信息信号一样,响应可以经由任何已知的手段,诸如经由视觉提示、以及可听提示、运动、无线通信(例如,数字或模拟无线网络)。在一些实施例中,检测到的响应可以是检测目标车辆遵照所建立的优先级的导航改变。
[0425] 导航优先级建立模块2504的输出可以被传递到导航改变发起模块2506。导航改变发起模块2206可以存储可由处理单元110执行的指令并且可以实施期望的驾驶策略,以便响应于所建立的导航优先级来决定主车辆要采取的一个或多个动作。
[0426] 图26A示出了场景2600的示例,其可以由主车辆的相机捕捉并且在主车辆的导航期间被分析,如关于图12所描述的。图26A所示的场景包括到达交叉口2604之前的四向停车点的一侧的目标车辆2602。如果主车辆在与目标车辆到达停车标志2608相同或几乎相同的时间到达停车标志2606,则可能导致导航均势。可以以多种方式解决导航均势,例如通过闪烁主车辆的前灯,或者以将由目标车辆辨识的方式稍微移动主车辆。
[0427] 图26B示出了场景2650的示例,其可以由主车辆的相机捕捉并且在主车辆的导航期间被分析,如关于图12所描述的。图26B中所示的场景包括上面的要并入与主车辆相同的高速公路线路中的目标车辆2652。如果目标车辆即将到达高速公路中的与目标车辆即将并入的相同的位置,则可能导致导航均势。可以以多种方式解决导航均势,例如通过闪烁主车辆的前灯。
[0428] 图27是表示用于解决导航优先级中的均势的示例处理的流程图2700的示例。在图27的示例中,可以基于与主车辆的位置相关的辖区来建立或修改导航规则。在步骤2702,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像,例如,如以上结合图2和5所描述的。在步骤2704,对所接收的图像中的一个或多个的分析可以使得至少一个处理器能够识别目标车辆,例如,如以上关于感测模块801所描述的。
[0429] 在步骤2706,至少一个处理设备可以确定目标车辆和主车辆具有类似的导航优先级从而导致导航均势情况。如以上所描述的,该确定可以由导航优先级确定模块2502执行。
[0430] 例如,主车辆和目标车辆2602可以几乎同时到达四向停车交叉点2604,如图26A所示。至少一个处理设备可以确定主车辆和目标车辆2602都需要停车,例如通过分析所接收的图像来辨识包括在停车标志2606中的“四向”指令,或者通过分析所接收的图像来辨识主车辆和目标车辆2602都分别接近停车标志2606和2608。在辨识出主车辆和目标车辆2602都需要停车之后,至少一个处理设备可以尝试确定主车辆和目标车辆2602中的哪一个首先到达四向停车点,以确定哪一个具有优先权。如果主车辆和目标车辆同时或在彼此的阈值时间量内到达,则导航优先级确定模块2502可以确定导航优先级是均势。
[0431] 作为另一示例,如图26B中所描绘的,主车辆和目标车辆2652可以彼此接近从而同时或几乎同时地并入道路中的同一车道。至少一个处理设备可以确定主车辆和目标车辆是否都可以安全地尝试并道或者是否其中一个需要让路。如果主车辆和目标车辆中的一个将需要让路,则导航优先级确定模块2502可以确定导航优先级是均势。
[0432] 在步骤2708,至少一个处理设备可以引起主车辆的动作,以与主车辆或目标车辆建立导航优先级。如上所述,导航优先级的建立可以由导航优先级建立模块2504执行。也就是说,主车辆可以向目标车辆传输信息信号以建立导航优先级。例如,在图26A的四向停车情景中,导航优先级建立模块2504可以使主车辆向前微移以主张优先权,或使其前灯闪烁以放弃优先权。
[0433] 在一些实施例中,在步骤2708,导航优先级建立模块2504还可以检测目标车辆对所建立的优先级的响应,如以上所描述的。检测到的响应可以是接收到的确认优先级的建立的信息信号,或者可以通过检测目标车辆遵照所建立的优先级的导航改变来确定。例如,响应可以是目标车辆停车、减速或以其他方式放弃优先权。
[0434] 在步骤2712,至少一个处理设备可以根据所建立的导航优先级引起对主车辆的导航致动器的控制。对导航致动器的控制可以基于在上面描述的步骤2710建立的导航优先级。例如,根据所建立的导航优先级,可以应用制动器、可以应用加速器、和/或可以执行主车辆的车轮的转向。
[0435] 用于自主导航的临时规则暂停
[0436] 在一些实施例中,主车辆导航系统可以在某些情况下暂停或松弛正常的导航规则。例如,在交通拥堵中,可以暂停某些路权规则(例如,在环形交叉路口(traffic circle)中)。作为另一示例,响应于检测到的危险(例如,在与主车辆相邻的车道中的迂回行进的车辆、或在主车辆的车道中的障碍物等),可以临时暂停关于不在路肩或高乘载车辆(“HOV”)车道上驾驶的规则。以下描述用于在车辆的自主控制期间暂停导航规则的系统和方法。
[0437] 例如,在一个实施例中,用于主车辆的导航系统可以包括至少一个处理设备(例如,处理单元110),其被编程为从至少一个相机(例如,图像捕捉单元122、124和126中的一个)接收表示主车辆的环境的多个图像。该至少一个处理设备还可以被编程为分析该多个图像以识别主车辆的环境中导航规则暂停条件的存在。该至少一个处理设备还可以被编程为响应于对导航规则暂停条件的识别而临时暂停至少一个导航规则,并且使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。
[0438] 如图28所示,结合上面讨论的其他模块,与暂停导航规则相关联的任务可以划分为例如两个模块,包括规则暂停条件确定模块2802和导航规则暂停模块。在一些实施例中,模块2802和2804可以存储在系统100的存储器单元140和/或存储器单元150中,或者模块2802和2804(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。
[0439] 规则暂停条件确定模块2802可以存储可由处理单元110执行的指令,其可以处理与识别可以证明和/或要求暂停一个或多个导航规则的一个或多个条件有关的各种任务。这样的规则可以包括交通规则(例如,速率、路权、停车标志、交通灯、不在路肩上驾驶等)、路线规则(例如,避开交通、避开收费等)或其他规则。这样的任务可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入,诸如来自一个或多个车载相机的图像或图像流、用户反馈、或者对一个或多个用户接口设备的用户输入、雷达、激光雷达等。例如,规则暂停条件确定模块可以识别可以证明和/或要求暂停一个或多个导航规则的条件,诸如交通或交通堵塞、障碍物或其他障碍、安全危险、一个或多个目标车辆、紧急车辆的不规则行为等。
[0440] 在一些实施例中,规则暂停条件确定模块2802的输出可以被传递到导航规则暂停模块2804。导航规则暂停模块可以存储可由处理单元110执行的指令,以基于由规则暂停条件确定模块2802识别的一个或多个条件来识别和暂停导航规则。被临时暂停的(一个或多个)规则可以在正常操作条件下禁止在选择的区域中的导航。在一些实施例中,在规则暂停条件确定模块2802指示障碍物在主车辆前方的道路中之后,导航规则暂停模块2804可以暂停干扰绕过障碍物的规则。例如,导航规则暂停模块2804可以暂停阻止主车辆进入高乘载车道或路肩的导航规则,从而允许主车辆避开障碍物。同样地,导航规则暂停模块2804可以响应于目标车辆侵入主车辆的车道而暂停规则。此外,诸如交通拥堵之类的交通条件可能使某些在交通正常流动时不允许的动作是允许的。因此,例如在交通的情况下,导航规则暂停模块2804可以暂停在正常操作条件下建立导航路权、速率限制、超车约束等的规则。
[0441] 导航规则暂停模块2804可以基于规则暂停条件的程度来暂停规则。例如,规则暂停模块2804可以确定规则暂停条件包括障碍物的高度,并且暂停导航规则可以基于该高度是否超过阈值。
[0442] 导航规则暂停模块2804可以基于可以被认为优先于规则的基础的一个或多个因素,来确定条件是否值得规则暂停。因素诸如是主车辆的占用者的安全性、靠近主车辆的人的安全性、与目标车辆或另一对象的碰撞的迫近、主车辆的损失的可能性等。
[0443] 例如,可以为与规则暂停条件相关联的因素分配权重或重要性等级,例如在从0到1的范围上,其中在可以暂停规则之前,重要性等级可能需要超过阈值。在一些实施例中,暂停规则的阈值可以取决于规则而变化。例如,暂停阻止进入HOV车道的规则的阈值可以低于暂停阻止在高速公路的路肩上驾驶的规则的阈值。
[0444] 在一些实施例中,一个条件是否值得规则暂停可以考虑多个因素。可以为多个因素中的每一个分配权重或重要性等级。在确定是否暂停规则时,可以考虑多个因素的加权值或与重要性等级相关的累积得分。
[0445] 在一些实施例中,规则暂停模块2804可以用临时规则来代替被临时暂停的规则。临时规则可以例如比被暂停的规则更松弛,或者可以特定于与规则暂停条件相关联的条件。
[0446] 图29示出了场景2900的示例,其可以由主车辆的至少一个相机捕捉并且在主车辆的导航期间被分析,如关于图12所描述的。场景2900包括高速公路2902(其包括三个车道2904、2916和2918),以及路肩2910。车道2904限于HOV使用,如标志2906和道路标记2908所指示的,并且标志2912指示路肩2910被限制车辆交通使用。车道2916和2918对一般交通开放。场景2900还包括对象2914,在该示例中为一个大箱子,其阻碍了车道2916和2918。为了避开对象2914,主车辆可以将车道改变为车道2904。为此,主车辆的导航系统可以临时暂停在车道2904中禁止非HOV车辆的导航规则。
[0447] 图30示出了另一场景3000的示例,其可以由主车辆的至少一个相机捕捉并且在主车辆的导航期间被分析,如关于图12所描述的。除了类似于场景2900的特征之外,场景3000包括从车道2918迂回行进到车道2916中的车辆3002。为了避开车辆3002,主车辆可以将车道改变到车道2904或2910。为此,主车辆的导航系统可以临时暂停在车道2904中禁止非HOV车辆以及在车道2910中禁止车辆的导航规则。
[0448] 在一些实施例中,在暂停在正常条件下建立环形交叉路口中的车辆相对于进入该环形交叉路口的车辆具有路权的规则的情况下,导航改变可以导致主车辆在没有路权的情况下进入环形交叉路口。
[0449] 图31是表示用于暂停导航规则的示例处理的流程图3100的示例。在图31的示例中,可以基于主车辆检测到的情况而暂停导航规则。
[0450] 在步骤3102,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像,例如,如以上关于图2和5所描述的。
[0451] 在步骤3104,至少一个处理设备可以分析所接收的图像中的一个或多个以在主车辆的环境中识别规则暂停条件。例如,可以如以上关于感测模块801所描述的执行分析。在一些实施例中,步骤3104的分析可以由规则暂停条件确定模块2802执行,如以上所描述的。例如,至少一个处理设备可以分别识别场景2900和3000中示出的对象2916或车辆3002。因此,至少一个处理设备可以确定在接收的图像中是否存在规则暂停条件。
[0452] 在步骤3106,响应于对导航规则暂停条件的识别,至少一个处理设备可以临时暂停至少一个导航规则。在一些实施例中,步骤3106可以由导航规则暂停模块2804执行,如以上所描述的。例如,至少一个处理设备可以暂停在正常条件下禁止在路肩2910上驾驶的规则、暂停在正常条件下禁止在少于所要求的占用者数量的情况下在高乘载车辆(HOV)车道中驾驶的规则、或暂停在正常条件下建立环形交叉路口中的车辆相对于进入环形交叉路口的车辆具有路权的规则。如以上所描述的,可以基于规则暂停条件的程度来暂停规则。例如,可以基于确定对象2914超过预定高度来暂停规则。替代地,如果对象2914没有超过预定高度,则可以将规则保留原样,使得主车辆在对象2914的上方驾驶。
[0453] 可以用临时规则来代替暂停的规则。例如,建立速率限制为每小时70英里的规则可以用设置速率限制为每小时90英里的更松弛的规则来代替,例如从而给予主车辆避开车辆3002的机会。临时规则可以基于例如预定时间量和/或预定距离而与有效期(expiration)相关联。
[0454] 在步骤3108,至少一个处理设备可以使得主车辆的至少一个导航改变不受被临时暂停的至少一个导航规则约束。主车辆的导航系统的至少一个处理设备可以基于分析的场景、识别的规则暂停条件、和被暂停的导航规则,来确定由于规则暂停条件导致的主车辆的导航动作(例如,左转、停车、让行、超车、改变车道等)。为了实施该导航动作,至少一个处理设备可以响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调节。例如,可以应用制动器,或者可以与主车辆的车轮的转向一起应用加速器。作为另一示例,响应于在步骤3104识别对象2916或车辆3002,至少一个导航改变可导致主车辆进入路肩或主车辆进入高乘载车道。
[0455] 出于说明的目的已经呈现了前面的描述。它不是穷举性的并且不限于所公开的实施例的精确形式。本领域技术人员通过考虑所公开的实施例的说明和实践,修改和改编将是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,本领域的技术人员将理解,这些方面也可以存储在其它类型的计算机可读介质上,诸如辅助存储设备,例如,硬盘或CD ROM、或其它形式的RAM或ROM、USB介质、DVD、蓝光、4K超HD蓝光、或其它光驱动介质。
[0456] 基于书面说明和所公开的方法的计算机程序在有经验的开发人员的技术范围内。可以使用任何本领域技术人员已知的技术来创建或可以结合现有的软件来设计各种程序或程序模块。例如,程序段或程序模块可以以或通过.NETFramework、.NET Compact Framework(以及相关的语言,诸如Visual Basic,C等)、JAVA、C++、Objective-C、HTML、HTML/AJAX组合、XML或者包含Java小程序的HTML来设计。
[0457] 此外,虽然已经在本文中描述了说明性实施例,但是本领域技术人员基于本公开将认识到具有等同的要素、修改、省略、组合(例如,遍及各个实施例的方面的)、改编和/或改变的任何以及所有实施例的范围。权利要求书中的限定将基于权利要求书中采用的语言宽泛地解释,并且不限于在本说明书中或在本申请的审查期间所描述的示例。示例将被理解为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包括通过重新排序步骤和/或插入或删除步骤。因此,意图是说明书和示例被视为仅是说明性的,真正的范围和精神由以下权利要求及其等同物的全部范围来表示。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈