CN113544467A - 对齐用于导航的道路信息 - Google Patents

对齐用于导航的道路信息 Download PDF

Info

Publication number
CN113544467A
CN113544467A CN202080019111.0A CN202080019111A CN113544467A CN 113544467 A CN113544467 A CN 113544467A CN 202080019111 A CN202080019111 A CN 202080019111A CN 113544467 A CN113544467 A CN 113544467A
Authority
CN
China
Prior art keywords
navigation information
vehicle
road
road segment
navigation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080019111.0A
Other languages
English (en)
Inventor
N.拉特纳
D.沙皮拉
I.图比斯
U.罗克尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mobileye Vision Technologies Ltd
Original Assignee
Mobileye Vision Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mobileye Vision Technologies Ltd filed Critical Mobileye Vision Technologies Ltd
Publication of CN113544467A publication Critical patent/CN113544467A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/028Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0285Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/584Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road

Abstract

本公开涉及用于对齐来自多个车辆的导航信息的系统和方法。在一个实施方式中,至少一个处理设备可以从第一车辆接收第一导航信息以及从第二车辆接收第二导航信息。第一导航信息和第二导航信息可以与公共道路路段相关联。处理器可以将公共道路路段分成在公共点处连接的第一道路区段和第二道路区段。处理器然后可以通过相对于公共点旋转第一导航信息或第二导航信息的至少部分,来对齐第一导航信息和第二导航信息。处理器可以与公共道路路段相关联地存储经对齐的导航信息,并将经对齐的导航信息传送到车辆以用于沿着公共道路路段导航。

Description

对齐用于导航的道路信息
相关申请的交叉引用
本申请要求于2019年3月7日提交的美国临时专利申请号62/815,045以及于2019年7月16日提交的美国临时专利申请号62/874,711的优先权权益。上述申请的全部通过引用整体并入本文。
技术领域
本公开总体上涉及自主车辆导航。
背景技术
随着技术的不断进步,能够在道路上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达意图的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕获的信息)、来自雷达或激光雷达的信息,并且也可能使用从其他源(例如,从GPS装置、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆可能还需要识别其在特定道路(例如,多车道道路中的特定车道)内的定位,与其他车辆并排导航,避开障碍物和行人,观察交通信号和标志,并在适当的交叉路口或交汇处从一条道路行驶到另一条道路。当自主车辆行驶到其目的地时利用(harness)和解释由该车辆收集的大量信息造成了许多设计挑战。自主车辆可能需要分析、访问和/或存储的海量数据(例如,捕获的图像数据、地图数据、GPS数据、传感器数据等)造成了实际上可能限制甚至不利地影响自主导航的挑战。此外,如果自主车辆依靠传统的映射(mapping)技术来导航,那么存储和更新地图所需的海量数据将造成巨大的挑战。
除了收集用于更新地图的数据之外,自主车辆必须能够使用地图进行导航。因此,必须优化地图的大小和细节,以及其构建和传输。此外,自主车辆必须使用地图以及基于车辆周围环境的约束进行导航,以确保其乘客和道路上其他驾驶员和行人的安全。
发明内容
与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包含一个、两个或更多个监控车辆的环境的相机。所公开的系统可以基于,例如对由一个或多个相机捕获的图像的分析来提供导航响应。所公开的系统还可以提供众包的稀疏地图的构建、以及利用众包的稀疏地图的导航。其他公开的系统可以使用对图像的相关分析来执行定位,上述定位可以对用稀疏地图进行的导航予以补充。导航响应还可以将其他数据考虑在内,包括例如全球定位系统(GPS)数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)和/或其他地图数据。最后,所公开的实施例可以使用舒适性约束和安全性约束来融合来自诸如相机、传感器、地图等多个源的数据,以便在不危及其他驾驶员和行人的情况下优化车辆导航。
在一个实施例中,非暂时性计算机可读介质可以存储指令,当该指令由至少一个处理器执行时,使得该至少一个处理器从第一车辆接收第一导航信息并从第二车辆接收第二导航信息,其中第一导航信息和第二导航信息与公共道路路段相关联。该至少一个处理器还可以将公共道路路段划分为至少第一道路区段和第二道路区段,其中第一道路区段和第二道路区段在公共点处连接,并将第一导航信息与第二导航信息相对于公共道路路段对齐。将第一导航信息与第二导航信息对齐可以包括相对于公共点旋转第一导航信息的至少部分或第二导航信息的至少部分。该至少一个处理器还可以与公共道路路段相关联地存储经对齐的导航信息,并将经对齐的导航信息的至少部分传送到一个或多个车辆以用于沿着公共道路路段导航一个或多个车辆。
在一个实施例中,用于对齐来自多个车辆的导航信息的服务器可以包括至少一个处理器。该至少一个处理器可以被配置为从第一车辆接收第一导航信息并从第二车辆接收第二导航信息,其中第一导航信息和第二导航信息与公共道路路段相关联。该至少一个处理器还可以将公共道路路段划分为至少第一道路区段和第二道路区段,其中第一道路区段和第二道路区段在公共点处连接,并将第一导航信息与第二导航信息相对于公共道路路段对齐。将第一导航信息与第二导航信息对齐可以包括相对于公共点旋转第一导航信息的至少部分或第二导航信息的至少部分。该至少一个处理器还可以被配置为与公共道路路段相关联地存储经对齐的导航信息,并将经对齐的导航信息的至少部分传送到一个或多个车辆以用于沿着公共道路路段导航一个或多个车辆。
在一个实施例中,用于对齐来自多个车辆的导航信息的计算机实现的方法可以包括从第一车辆接收第一导航信息和从第二车辆接收第二导航信息,其中第一导航信息和第二导航信息与公共道路路段相关联。该方法可以包括将公共路段至少划分为第一道路区段和第二道路区段,其中第一道路区段和第二道路区段在公共点处连接,并将第一导航信息与第二导航信息相对于公共道路路段对齐。将第一导航信息与第二导航信息对齐可以包括相对于公共点旋转第一导航信息的至少部分或第二导航信息的至少部分。该方法还可以包括与公共道路路段相关联地存储经对齐的导航信息,并将经对齐的导航信息的至少部分传送到一个或多个车辆以用于沿着公共路段导航一个或多个车辆。
与其他公开的实施例一致,非暂时性计算机可读存储介质可以存储由至少一个处理装置执行的程序指令,并且可以进行本文中所描述的任何方法。
前述的总体描述和下面的详细描述仅仅是示例性和说明性的,并不是对权利要求的限制。
附图说明
并入本公开中并构成本公开的一部分的附图图示了各种所公开的实施例。在附图中:
图1是与所公开的实施例一致的示例性系统的图示性表示。
图2A是包含与所公开的实施例一致的系统的示例性车辆的图示性侧视图表示。
图2B是图2A中所示的与所公开的实施例一致的车辆和系统的图示性顶视图表示。
图2C是包含与所公开的实施例一致的系统的车辆的另一实施例的图示性顶视图表示。
图2D是包含与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
图2E是包含与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
图2F是与所公开的实施例一致的示例性车辆控制系统的图示性表示。
图3A是与所公开的实施例一致的包含后视镜和用于车辆成像系统的用户界面的车辆的内部的图示性表示。
图3B是与所公开的实施例一致的被配置为定位在后视镜后面并抵靠车辆风挡的相机安装的示例的图示。
图3C是图3B中所示的与所公开的实施例一致的相机安装从不同的视角的图示。
图3D是与所公开的实施例一致的被配置为定位在后视镜后面并抵靠车辆风挡的相机安装的示例的图示。
图4是与所公开的实施例一致的被配置为存储用于进行一个或多个操作的指令的存储器的示例性框图。
图5A是示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程的流程图。
图5B是示出与所公开的实施例一致的用于在一组图像中检测一个或多个车辆和/或行人的示例性过程的流程图。
图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标志和/或车道几何结构信息的示例性过程的流程图。
图5D是示出与所公开的实施例一致的用于在一组图像中检测交通灯的示例性过程的流程图。
图5E是示出与所公开的实施例一致的用于基于车辆路径来引起一个或多个导航响应的示例性过程的流程图。
图5F是示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程的流程图。
图6是示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程的流程图。
图7是示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程的流程图。
图8A示出了与所公开的实施例一致的道路路段的部分的多项式表示。
图8B示出了与所公开的实施例一致的稀疏地图中包括的在三维空间中表示特定道路路段的车辆的目标轨迹的曲线。
图9A示出了与所公开的实施例一致的轨迹的多项式表示。
图9B和图9C示出了与所公开的实施例一致的沿着多车道道路的目标轨迹。
图9D示出了与所公开的实施例一致的示例道路签名(signature)轮廓(profile)。
图10示出了与所公开的实施例一致的由多个三维样条(spline)表示的示例自主车辆道路导航模型。
图11示出了与所公开的实施例一致的根据组合来自多个驾驶的定位信息而生成的地图骨架(skeleton)。
图12是被配置为存储用于执行与所公开的实施例一致的一个或多个操作的指令的存储器的示例性框图。
图13A和图13B提供了与所公开的实施例一致的示例安全性约束和舒适性约束的图解描述。
图13C和图13D提供了与所公开的实施例一致的进一步示例安全性约束和舒适性约束的图解描述。
图14是与所公开的实施例一致的基于安全性约束和舒适性约束来导航主车辆的示例性过程的流程图。
图15是被配置为存储用于执行与所公开的实施例一致的一个或多个操作的指令的示例性框图。
图16示出了与所公开的实施例一致的通过组合来自许多驾驶的导航信息而生成的示例道路数据、以及通过组合道路数据而生成的示例全局地图。
图17是与所公开的实施例一致的示出用于对齐来自多个车辆的导航信息的示例性过程的流程图。
图18A示出了与所公开的实施例一致的可以被对齐的示例车辆数据。
图18B示出了与所公开的实施例一致的在对齐较大距离的驾驶时可能引入的误差。
图19A示出了与所公开的实施例一致的可以用于道路信息的对齐的多个区段。
图19B示出了与所公开的实施例一致的基于多个区段的所得到的对齐。
图20是与所公开的实施例一致的表示用于对齐来自多个车辆的导航信息的示例过程的流程图。
具体实施方式
以下的详细描述参考附图。只要可能,在附图和以下的描述中使用相同的参考标号来指代相同或相似的部分。虽然本文描述了数个说明性实施例,但是修改、改编和其他实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文所描述的说明性方法进行修改。相应地,以下的详细描述并不限于所公开的实施例和示例。代替地,适当的范围由所附权利要求限定。
自主车辆概述
如贯穿本公开所使用的,术语“自主车辆”指代在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”指代车辆的转向、制动、或加速中的一个或多个改变。为了实现自主,车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包含能够在某些时间段期间在驾驶员的控制下操作并且在其他时间段期间无需驾驶员控制而操作那些车辆。自主车辆还可以包含仅控制车辆导航的一些方面的车辆,诸如转向(例如,在车辆车道限制之间维持车辆路线),但是可以将其他方面留给驾驶员(例如,制动)。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向中的一些或全部方面。
由于人类驾驶员通常依赖于可视线索和观察顺序以便控制车辆,因此相应地建造了交通基础设施,其中车道标志、交通标志和交通灯所有都被设计为向驾驶员提供可视信息。鉴于交通基础设施的这些设计特性,自主车辆可以包含相机以及分析从车辆的环境捕获的可视信息的处理单元。可视信息可以包含,例如,可由驾驶员观察到的交通基础设施(例如,车道标志、交通标志、交通灯等)的组件以及其他障碍物(例如,其他车辆、行人、碎屑等)。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆的环境的模型的信息。例如,车辆可以使用GPS数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)和/或其他地图数据,以在车辆正在行驶时提供与其环境相关的信息,并且该车辆(以及其他车辆)可以使用该信息在模型上对其自身定位。
在本公开的一些实施例中,自主车辆可以使用在导航时(从相机、GPS装置、加速度计、速度传感器、悬架传感器等)获得的信息。在其他实施例中,自主车辆可以在导航时使用从该车辆(或其他车辆)过去的导航中获得的信息。在其他实施例中,自主车辆可以使用在导航时获得的信息和从过去的导航中获得的信息的组合。以下章节提供了与所公开的实施例一致的系统的概述,随后是与该系统一致的前向成像系统和方法的概述。以下章节公开了用于构建、使用和更新用于自主车辆导航的稀疏地图的系统和方法。
系统概述
图1是与所公开的示例性实施例一致的表示系统100的框图。系统100可以取决于特定实施方式的要求而包含各种组件。在一些实施例中,系统100可以包含处理单元110,图像获取单元120,位置传感器130,一个或多个存储器单元140、150,地图数据库160,用户界面170和无线收发器172。处理单元110可以包含一个或多个处理装置。在一些实施例中,处理单元110可以包含应用处理器180、图像处理器190或任何其他合适的处理装置。类似地,图像获取单元120可以取决于特定应用的要求而包含任何数目的图像获取装置和组件。在一些实施例中,图像获取单元120可以包含一个或多个图像捕获装置(例如,相机),诸如图像捕获装置122、图像捕获装置124和图像捕获装置126。系统100还可以将处理装置110通信地连接到图像获取装置120的数据接口128。例如,数据接口128可以包含用于将由图像获取装置120获取的图像数据传输到处理单元110的任何有线和/或无线的一个或多个链路。
无线收发器172可以包含一个或多个装置,其被配置为通过使用射频、红外频率、磁场或电场通过空中接口将传输交换到一个或多个网络(例如,蜂窝、互联网等)。无线收发器172可以使用任何已知的标准来传输和/或接收数据(例如,Wi-Fi、
Figure BDA0003248288200000071
蓝牙智能、802.15.4、ZigBee等)。这样的传输可以包含从主车辆到一个或多个位于远处的服务器的通信。这样的传输还可以包含主车辆与主车辆的环境中的一个或多个目标车辆之间(单向或双向)的通信(例如,以便于鉴于或连同在主车辆的环境中的目标车辆来协调主车辆的导航),或者甚至包含在传输车辆附近的向未指定的接收者的广播传输。
应用处理器180和图像处理器190两者都可以包含各种类型的基于硬件的处理装置。例如,应用处理器180和图像处理器190中的任一者或两者可以包含微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器或者适用于运行应用和适用于图像处理和分析的任何其他类型的装置。在一些实施例中,应用处理器180和/或图像处理器190可以包含任何类型的单核或多核处理器、移动装置微控制器、中央处理单元等。可以使用各种处理装置,包含,例如,可以从诸如
Figure BDA0003248288200000081
等制造商获得的处理器或者可以从诸如
Figure BDA0003248288200000082
Figure BDA0003248288200000083
等制造商获得的GPU,并且可以包含各种架构(例如,x86处理器、
Figure BDA0003248288200000084
等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包含可从
Figure BDA0003248288200000085
获得的任何EyeQ系列处理器芯片。这些处理器设计各自包含具有本地存储体和指令集的多个处理单元。这样的处理器可以包含用于从多个图像传感器接收图像数据的视频输入,并且还可以包含视频输出能力。在一个示例中,
Figure BDA0003248288200000086
使用在332Mhz下操作的90纳米-微米技术。
Figure BDA0003248288200000087
架构由两个浮点式超线程32位RISC CPU(
Figure BDA0003248288200000088
核)、五个视觉计算引擎(VCE)、三个矢量微代码处理器
Figure BDA0003248288200000089
丹那利(Denali)64位移动DDR控制器、128位内部超音速互连(Sonics Interconnect)、双16位视频输入和18位视频输出控制器、16通道DMA和数个外围设备组成。MIPS34K CPU管理这五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其他外围设备。这五个VCE、三个
Figure BDA00032482882000000810
和MIPS34K CPU可以进行多功能捆绑应用所需要的密集视觉计算。在另一个实例中,可以在所公开的实施例中使用作为第三代处理器并且比
Figure BDA00032482882000000811
强六倍的
Figure BDA00032482882000000812
在其他示例中,可以在所公开的实施例中使用
Figure BDA00032482882000000813
和/或
Figure BDA00032482882000000814
当然,任何更新后的或未来的EyeQ处理装置也可以与所公开的实施例一起使用。
任何本文所公开的处理装置可以被配置为进行某些功能。配置处理装置(诸如任何所描述的EyeQ处理器或其他控制器或微处理器)以进行某些功能可以包含计算机可执行指令的编程并使这些指令可用于处理装置以在处理装置的操作期间执行。在一些实施例中,配置处理装置可以包含直接利用架构指令对处理装置进行编程。例如,可以使用例如一个或多个硬件描述语言(HDL)来配置诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等的处理装置。
在其他实施例中,配置处理装置可以包含将可执行指令存储在操作期间处理装置可访问的存储器上。例如,处理装置在操作期间可以访问该存储器以获得并执行所存储的指令。在任一种情况下,被配置为进行本文公开的感测、图像分析和/或导航功能的处理装置表示基于硬件的专用系统,其控制主车辆的多个基于硬件的组件。
虽然图1描绘了包含在处理单元110中的两个分离的处理装置,但是可以使用更多或更少的处理装置。例如,在一些实施例中,可以使用单个处理装置完成应用处理器180和图像处理器190的任务。在其他实施例中,可以由两个以上的处理装置来进行这些任务。此外,在一些实施例中,系统100可以在不包含其他组件(诸如图像获取单元120)的情况下包含处理单元110中的一个或多个。
处理单元110可以包括各种类型的装置。例如,处理单元110可以包含各种装置,诸如控制器、图像预处理器、中央处理单元(CPU)、图形处理单元(GPU)、支持电路、数字信号处理器、集成电路、存储器或用于图像处理和分析的任何其他类型的装置。图像预处理器可以包含用于捕获、数字化和处理来自图像传感器的影像的视频处理器。CPU可以包括任何数目的微控制器或微处理器。GPU还可以包括任何数目的微控制器或微处理器。支持电路可以是本领域公知的任何数目的电路,包含高速缓存、电源,时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制系统的操作。存储器可以包含数据库和图像处理软件。存储器可以包括任何数目的随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和其他类型的存储装置。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
每个存储器140、150可以包含软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。这些存储器单元可以包含各种数据库和图像处理软件,以及经训练的系统,诸如神经网络或例如深度神经网络。存储器单元可以包含随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和/或任何其他类型的存储装置。在一些实施例中,存储器单元140、150可以是与应用处理器180和/或图像处理器190分离的。在其他实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
位置传感器130可以包含适用于确定与系统100的至少一个组件相关联的定位的任何类型的装置。在一些实施例中,位置传感器130可以包含GPS接收器。这样的接收器可以通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
在一些实施例中,系统100可以包含诸如用于测量车辆200的速度的速度传感器(例如,转速表、速度计)和/或用于测量车辆200的加速度的加速度计(单轴或多轴)的组件。
用户界面170可以包含适用于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何装置。在一些实施例中,用户界面170可以包含用户输入装置,包含例如触摸屏、麦克风、键盘、指针装置、跟踪转轮、相机、旋钮、按钮等。使用这样的输入装置,用户能够通过键入指令或信息,提供语音命令,使用按钮、指针或眼跟踪能力在屏幕上选择菜单选项,或通过任何其他适用于向系统100通信信息的技术来向系统100提供信息输入或命令。
用户界面170可以配备有一个或多个处理装置,其被配置为向用户提供和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理装置可以执行指令以用于辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择等。在一些实施例中,用户界面170可以包含显示器、扬声器、触觉装置和/或用于向用户提供输出信息的任何其他装置。
地图数据库160可以包含用于存储对系统100有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库160可以包含与各种项目在参考坐标系统中的位置相关的数据,各种项目包含道路、水特征、地理特征、商业区、感兴趣的点、餐馆、加油站等。地图数据库160不仅可以存储这样的项目的定位,还可以存储与这样的项目相关的描述符,包含例如与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其他组件物理上位于一起。替代地或附加地,地图数据库160或其一部分可以相对于系统100的其他组件(例如,处理单元110)位于远处。在这样的实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)而下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包含某些道路特征(例如,车道标志)或主车辆的目标轨迹的多项式表示。下面参考图8至图19讨论生成这种地图的系统和方法。
图像捕获装置122、124和126可以各自包含适用于从环境捕获至少一个图像的任何类型的装置。此外,可以使用任何数目的图像捕获装置来获取用于输入到图像处理器的图像。一些实施例可以仅包含单个图像捕获装置,而其他实施例可以包含两个、三个、或者甚至四个或更多个图像捕获装置。以下将参考图2B至图2E进一步描述图像捕获装置122、124和126。
系统100或其各种组件可以合并到各种不同的平台中。在一些实施例中,系统100可以被包含在车辆200上,如图2A所示。例如,车辆200可以配备有如上关于图1所述的系统100的处理单元110和任何其他组件。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获装置(例如,相机),但是在其他实施例中,诸如结合图2B-图2E讨论的那些,可以使用多个图像捕获装置。例如,如图2A所示,车辆200的图像捕获装置122和124中的任一个可以是ADAS(Advanced Driver Assistance System,高级驾驶员辅助系统)成像集的一部分。
作为图像获取单元120的一部分的被包含在车辆200上的图像捕获装置,可以被定位在任何合适的定位。在一些实施例中,如图2A-图2E以及图3A-图3C所示,图像捕获装置122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员相似的视线,这可以帮助确定对驾驶员而言什么是可见和不可见的。图像捕获装置122可以被定位在靠近后视镜的任何定位,而将图像捕获装置122放置在镜子的驾驶员侧可以进一步帮助获得表示驾驶员的视场和/或视线的图像。
对于图像获取单元120的图像捕获装置还可以使用其他定位。例如,图像捕获装置124可以位于车辆200的保险杠上或保险杠中。这样的定位可以尤其适用于具有宽视场的图像捕获装置。位于保险杠的图像捕获装置的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕获装置和驾驶员可能不总是看到相同的对象。图像捕获装置(例如,图像捕获装置122、124和126)还可以位于其他定位。例如,图像捕获装置可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,安装在车辆200的任何车窗上、定位在车辆200的任何车窗的后面、或定位在车辆200的任何车窗的前面,以及安装在车辆200的前部和/或后部上的灯具中或附近等。
除了图像捕获装置之外,车辆200还可以包含系统100的各种其他组件。例如,处理单元110可以被包含在车辆200上,与车辆的引擎控制单元(engine control lunit,ECU)集成或分离。车辆200还可以配备有诸如GPS接收器的位置传感器130,并且还可以包含地图数据库160以及存储器单元140和存储器单元150。
如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等)和/或接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。例如,经由无线收发器172,系统100可以接收对存储在地图数据库160、存储器140和/或存储器150中的数据的周期性或按需的更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕获的图像、由位置传感器130或其他传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
系统100可以基于隐私等级设定将数据上传到服务器(例如,上传到云)。例如,系统100可以实现隐私等级设定,以规定或限制传送到服务器的、可以唯一地识别车辆和/或车辆的驾驶员/所有者的数据(包含元数据)的类型。这样的设定可以由用户经由例如无线收发器172来设置,可以由出厂默认设定、或由无线收发器172接收的数据来初始化。
在一些实施例中,系统100可以根据“高”隐私等级上传数据,并且在设置设定的情况下,系统100可以传输数据(例如,与路途相关的定位信息、捕获的图像等),而不带有任何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设定来上传数据时,系统100可以不包含车辆标识编号(vehicle identification number,VIN)或者车辆的驾驶员或所有者的名字,并且可以代替地传输数据,诸如,捕获的图像和/或与路途相关的受限的定位信息。
可以预期其他隐私等级。例如,系统100可以根据“中间”隐私等级向服务器传输数据,并且可以包含在“高”隐私等级下不包含的附加信息,诸如车辆的品牌和/或型号和/或车辆类型(例如,乘用车、运动型多用途车、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设定的情况下,系统100可以上传数据,并且包含足以唯一地识别具体车辆、所有者/驾驶员和/或车辆行驶过的部分或整个路途的信息。这样的“低”隐私等级数据可以包含以下中的一个或多个:例如VIN、驾驶员/所有者名字、出发之前车辆的始发点、车辆的意图目的地、车辆的品牌和/或型号、车辆类型等。
图2A是与所公开的实施例一致的示例性车辆成像系统的图示性侧视图表示。图2B是图2A中所示的实施例的图示性顶视图图示。如图2B所示,所公开的实施例可以包含车辆200,该车辆200在其车体中包含系统100,该系统100具有定位在车辆200的后视镜附近和/或靠近驾驶员的第一图像捕获装置122、定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕获装置124、以及处理单元110。
如图2C所示,图像捕获装置122和124两者可以都定位在车辆200的后视镜附近和/或靠近驾驶员。此外,虽然图2B和图2C示出了两个图像捕获装置122和124,应理解的是,其他实施例可以包含两个以上的图像捕获装置。例如,在图2D和2E所示的实施例中,第一图像捕获装置122、第二图像捕获装置124和第三图像捕获装置126被包含在车辆200的系统100中。
如图2D所示,图像捕获装置122可以定位在车辆200的后视镜附近和/或靠近驾驶员,并且图像捕获装置124和126可以定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2E所示,图像捕获装置122、124和126可以定位在车辆200的后视镜附近和/或靠近驾驶员座。所公开的实施例不限于任何特定数目和配置的图像捕获装置,并且图像捕获装置可以定位在车辆200内或车辆200上的任何适当的定位中。
应理解的是,所公开的实施例不限于车辆,并且可以被应用在其他情景中。还应理解,所公开的实施例不限于特定类型的车辆200,并且可以适用于所有类型的车辆,包含汽车、卡车、拖车和其他类型的车辆。
第一图像捕获装置122可以包含任何合适类型的图像捕获装置。图像捕获装置122可以包含光轴。在一个实例中,图像捕获装置122可以包含具有全局快门的Aptina M9V024WVGA传感器。在其他实施例中,图像捕获装置122可以提供1280×960像素的分辨率,并且可以包含滚动快门(rolling shutter)。图像捕获装置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可以是7。2M像素图像捕获装置,其纵横比为约2:1(例如,HxV=3800×1900像素),具有约100度的水平FOV。这样的图像捕获装置可以被用来代替三个图像捕获装置配置。由于显著的镜头失真,在图像捕获装置使用径向对称镜头的实施方式中,这样的图像捕获装置的垂直FOV可显著地小于50度。例如,这样的镜头可以不是径向对称的,这将允许在100度水平FOV情况下垂直FOV大于50度。
第一图像捕获装置122可以获取关于与车辆200相关联的场景的多个第一图像。可以获取多个第一图像中的每个作为一系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线可以包含多个像素。
第一图像捕获装置122可以具有与第一系列图像扫描线中的每个的获取相关联的扫描速率。扫描速率可以指图像传感器可以获取与包含在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕获装置122、124和126可以含有任何合适的类型和数目的图像传感器,例如,包含CCD传感器或CMOS传感器等。在一个实施例中,CMOS图像传感器可以与滚动快门一起采用,使得一次一个地读取一行中的每个像素,并且行的扫描在逐行的基础上进行,直到已捕获整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕获行。
在一些实施例中,本文公开的图像捕获装置中的一个或多个(例如,图像捕获装置122、124和126)可以构成高分辨率成像器,并且可以具有大于5M像素、7M像素、10M像素或更大像素的分辨率。
滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕获,这可能引起捕获的图像帧中的歪斜和其他图像伪影。另一方面,当图像捕获装置122被配置为利用全局或同步快门操作时,所有像素可以以相同量的时间并且在共同曝光时段期间被曝光。结果,从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个FOV(诸如FOV202)的快照。相比之下,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕获。因此,在具有滚动快门的图像捕获装置中,移动对象可能出现失真。这种现象将在下面更详细地描述。
第二图像捕获装置124和第三图像捕获装置126可以是任何类型的图像捕获装置。类似于第一图像捕获装置122,图像捕获装置124和126中的每个可以包含光轴。在一个实施例中,图像捕获装置124和126中的每个可以包含具有全局快门的Aptina M9V024 WVGA传感器。替代地,图像捕获装置124和126中的每个可以包含滚动快门。类似于图像捕获装置122,图像捕获装置124和126可以被配置为包含各种镜头和光学元件。在一些实施例中,与图像捕获装置124和126相关联的镜头可以提供FOV(诸如FOV 204和206),其等于或窄于与图像捕获装置122相关联的FOV(诸如FOV 202)。例如,图像捕获装置124和126可以具有40度、30度、26度、23度、20度或更小的FOV。
图像捕获装置124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。可以获取多个第二和第三图像中的每个作为第二和第三系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线或行可以具有多个像素。图像捕获装置124和126可以具有与包含在第二和第三系列中的每个图像扫描线的获取相关联的第二和第三扫描速率。
每个图像捕获装置122、124和126可以定位在相对于车辆200的任何合适的位置和朝向处。可以选择图像捕获装置122、124和126的相对位置以帮助将从图像捕获装置获取的信息融合在一起。例如,在一些实施例中,与图像捕获装置124相关联的FOV(诸如FOV 204)可能部分地或完全地和与图像捕获装置122相关联的FOV(例如FOV 202)以及与图像捕获装置126相关联的FOV(例如FOV 206)重叠。
图像捕获装置122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕获装置122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2A所示,两个图像捕获装置122和124在不同的高度处。例如,在图像捕获装置122、124和126之间还可以存在横向位移差,以为处理单元110的立体分析给出附加的视差信息。横向位移的差异可以用dx表示,如图2C和图2D所示。在一些实施例中,图像捕获装置122、124和126之间可以存在前向或后向位移(例如,范围位移)。例如,图像捕获装置122可以位于图像捕获装置124和/或图像捕获装置126后面0.5到2米或更远处。这样的类型的位移可以使得图像捕获装置中的一个能够覆盖其他(一个或多个)图像捕获装置的潜在盲点。
图像捕获装置122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数目),并且与图像捕获装置122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕获装置124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕获装置122和/或图像捕获装置124和126相关联的(一个或多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或任何其他合适的分辨率。
帧速率(例如,图像捕获装置在继续捕获与下一图像帧相关联的像素数据之前获取一个图像帧的一组像素数据的速率)可以是可控的。与图像捕获装置122相关联的帧速率可以比与图像捕获装置124和126相关联的帧速率更高、更低或与之相同。与图像捕获装置122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕获装置122、124和126中的一个或多个可以包含可选择的像素延迟时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据用于该装置的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟循环一个像素)。此外,在包含滚动快门的实施例中,图像捕获装置122、124和126中的一个或多个可以包含可选择的水平消隐时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕获装置122、124和/或126中的一个或多个可以包含可选择的垂直消隐时段,其在获取与图像捕获装置122、124和126的图像帧相关联的图像数据之前或之后施加。
这些定时控制可以使能与图像捕获装置122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其他因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕获装置122的FOV与图像捕获装置124和126的一个或多个FOV重叠的区域的图像捕获的同步,即便图像捕获装置122的视场不同于图像捕获装置124和126的FOV。
图像捕获装置122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定对于两个装置,线扫描速率类似,如果一个装置包含具有640×480的分辨率的图像传感器,并且另一个装置包含具有1280×960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
可以影响图像捕获装置122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包含在图像捕获装置122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与用于特定装置的最大线扫描速率相关。提供较高的最大线扫描速率的装置比具有较低的最大线扫描速率的装置具有提供更高的帧速率的潜力。在一些实施例中,图像捕获装置124和126中的一个或多个可以具有高于与图像捕获装置122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕获装置124和/或126的最大线扫描速率可以是图像捕获装置122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
在另一个实施例中,图像捕获装置122、124和126可以具有相同的最大线扫描速率,但图像捕获装置122可以以小于或等于其最大扫描扫描速率的扫描速率而操作。系统可以被配置为使得图像捕获装置124和126中的一个或多个以等于图像捕获装置122的线扫描速率的线扫描速率进行操作。在其他实例中,系统可以被配置为使得图像捕获装置124和/或图像捕获装置126的线扫描速率可以是图像捕获装置122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
在一些实施例中,图像捕获装置122、124和126可以是不对称的。换言之,它们可包含具有不同视场(FOV)和焦距的相机。例如,图像捕获装置122、124和126的视场可以包含关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕获装置122、124和126中的一个或多个可以被配置为从在车辆200前面、车辆200后面、车辆200的侧面、或它们的组合的环境获取图像数据。
此外,与每个图像捕获装置122、124和/或126相关联的焦距可以是可选择的(例如,通过包含适当的镜头等),使得每个装置在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕获装置122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕获装置122、124和126还可以被配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕获装置122、124和126的焦距可以被选择以使得一个图像捕获装置(例如,图像捕获装置122)可以获取相对靠近车辆(例如,在10米内或20米内的)对象的图像,而其他图像捕获装置(例如,图像捕获装置124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
根据一些实施例,一个或多个图像捕获装置122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,尤其是对于可以被用于捕获车辆200附近的区域的图像的图像捕获装置122、124和126。例如,图像捕获装置122可以被用于捕获车辆200的右侧或左侧的区域的图像,并且在这样的实施例中,可能期望图像捕获装置122具有宽FOV(例如,至少140度)。
与图像捕获装置122、124和126中的每个相关联的视场可以取决于相应的焦距。例如,随着焦距增加,对应的视场减小。
图像捕获装置122、124和126可以被配置为具有任何合适的视场。在一个特定示例中,图像捕获装置122可以具有46度的水平FOV,图像捕获装置124可以具有23度的水平FOV,并且图像捕获装置126可以具有在23度和46度之间的水平FOV。在一个特定示例中,图像捕获装置122可以具有52度的水平FOV,图像捕获装置124可以具有26度的水平FOV,并且图像捕获装置126可以具有在26度和52度之间的水平FOV。在一些实施例中,图像捕获装置122的FOV与图像捕获装置124和/或图像捕获装置126的FOV的比率可以从1.5到2.0变化。在其他实施例中,该比率可以在1.25与2.25之间变化。
系统100可以被配置为使得图像捕获装置122的视场至少部分地或完全地与图像捕获装置124和/或图像捕获装置126的视场重叠。在一些实施例中,系统100可以被配置为使得图像捕获装置124和126的视场例如落入(例如,窄于)图像捕获装置122的视场并且与图像捕获装置122的视场共享共同的中心。在其他实施例中,图像捕获装置122、124和126可以捕获相邻的FOV,或者可以在它们FOV中具有部分重叠。在一些实施例中,图像捕获装置122、124和126的视场可以对齐,以使得较窄FOV图像捕获装置124和/或126的中心可以位于较宽FOV装置122的视场的下半部分中。
图2F是与所公开的实施例一致的示例性车辆控制系统的图示性表示。如图2F所指示的,车辆200可以包含油门调节系统220、制动系统230和转向系统240。系统100可以经过一个或多个数据链路(例如,用于传输数据的任何有线和/或无线链路)向油门调节系统220、制动系统230和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕获装置122、124和/或126获取的图像的分析,系统100可以向油门调节系统220、制动系统230和转向系统240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转向、变道(lane shift)等)。此外,系统100可以从油门调节系统220、制动系统230和转向系统240中的一个或多个接收输入,该输入指示车辆200的运行条件(例如,速度、车辆200是否正在制动和/或转向等)。以下结合图4至图7提供进一步的细节。
如图3A所示,车辆200还可以包含用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包含触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包含例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以定位为与后视镜310相邻。类似地,在一些实施例中,图像捕获装置122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包含一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
图3B至图3D是与所公开的实施例一致的被配置为定位在后视镜(例如,后视镜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从前面视角的图示。
如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变化和/或修改。例如,并非所有组件对于系统100的操作是必要的。此外,在提供所公开的实施例的功能时,任何组件可以位于系统100的任何适当的部分中并且组件可以被重新布置成各种配置。因此,前述配置是示例性的,并且不管上述讨论的配置如何,系统100都可以提供广阔范围的功能以分析车辆200的周围并响应于该分析而导航车辆200。
如在下面更详细讨论的并且根据各种所公开的实施例,系统100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,系统100可以分析图像数据、位置数据(例如,GPS定位信息)、地图数据、速度数据和/或来自包含在车辆200中的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130以及其他传感器收集数据用于分析。此外,系统100可以分析所收集的数据以确定车辆200是否应当采取某个动作,并且然后在没有人工干预的情况下自动采取所确定的动作。例如,当车辆200在没有人工干预的情况下导航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节系统220、制动系统230和转向系统240中的一个或多个传送控制信号)。此外,系统100可以分析所收集的数据,并且基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于系统100提供的各种实施例的附加的细节。
前向多成像系统
如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆前方的一个或多个相机。在其他实施例中,多相机系统可以包含面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕获装置122和124)可以被定位在车辆(例如,车辆200)的前面和/或侧面处。第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以进行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以进行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一个实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这样的系统可以基于从位于车辆前方和侧方的不同距离处的对象导出的信息来做出决定。对单目图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕获的图像进行图像分析的实例。立体图像分析可以参考基于使用图像捕获参数的一个或多个变化而捕获的两个或更多个图像而进行图像分析的实例。例如,适合于进行立体图像分析的捕获的图像可以包含从两个或更多个不同位置、从不同视野、使用不同焦距以及与视差信息一起等捕获的图像。
例如,在一个实施例中,系统100可以使用图像捕获装置122、124和126来实现三相机配置。在这样的配置中,图像捕获装置122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其他值等),图像捕获装置124可以提供宽视场(例如,150度或从大约100度至大约180度的范围选择的其他值),并且图像捕获装置126可以提供中间的视场(例如,46度或从大约35度至大约60度的范围选择的其他值)。在一些实施例中,图像捕获装置126可以作为主相机或基本相机。图像捕获装置122、124和126可以被定位在后视镜310的后面并且基本上并排定位(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕获装置122、124和126中的一个或多个可以被安装在与车辆200的风挡齐平的遮光板380的后面。这样的遮挡可以用于最小化来自汽车内部的任何反射对图像捕获装置122、124和126的影响。
在另一个实施例中,如以上结合图3B和图3C所讨论的,宽视场相机(例如,上述示例中的图像捕获装置124)可以被安装得低于窄视场相机和主视场相机(例如,上述示例中的图像捕获装置122和126)。这样的配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的风挡,并且在相机上可以包含偏振器以衰减(damp)反射光。
三相机系统可以提供某些性能特性。例如,一些实施例可以包含由一个相机基于来自另一个相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包含例如三个处理装置(例如,三个如以上所讨论的EyeQ系列处理器芯片),其中每个处理装置专用于处理由图像捕获装置122、124和126中的一个或多个捕获的图像。
在三相机系统中,第一处理装置可以从主相机和窄视场相机两者接收图像,并且进行对窄FOV相机的视觉处理,例如以检测其他车辆、行人、车道标志、交通标志、交通灯以及其他道路对象。此外,第一处理装置可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3D重建。然后第一处理装置可以组合3D重建与3D地图数据、或组合3D重建与基于来自另一个相机的信息计算出的3D信息。
第二处理装置可以从主相机接收图像并进行视觉处理以检测其他车辆、行人、车道标志、交通标志、交通灯和其他道路对象。此外,第二处理装置可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重建(例如,运动恢复结构(structure from motion))。第二处理装置可以将基于3D重建的运动恢复结构传送到第一处理装置以与立体3D图像进行组合。
第三处理装置可以从宽FOV相机接收图像,并处理该图像以检测车辆、行人、车道标志、交通标志、交通灯和其他道路对象。第三处理装置可以进一步执行附加的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
在一些实施例中,使得基于图像的信息的流被独立地捕获和处理可以提供用于在系统中提供冗余的机会。这样的冗余可以包含例如使用第一图像捕获装置和从该装置处理的图像来验证和/或补充通过从至少第二图像捕获装置捕获和处理图像信息而获得的信息。
在一些实施例中,系统100可以使用两个图像捕获装置(例如,图像捕获装置122和124)来为车辆200提供导航辅助,并使用第三图像捕获装置(例如,图像捕获装置126)来提供冗余和验证从其他两个图像捕获装置接收的数据的分析。例如,在这样的配置中,图像捕获装置122和124可以提供用于由系统100进行立体分析的图像以用于导航车辆200,而图像捕获装置126可以提供用于由系统100进行单目分析的图像,以提供冗余和基于从图像捕获装置122和/或图像捕获装置124捕获的图像而获得的信息的验证。换言之,可以认为图像捕获装置126(和对应的处理装置)提供冗余子系统,以用于提供对从图像捕获装置122和124导出的分析的检查(例如,以提供自动紧急制动(AEB)系统)。此外,在一些实施例中,可基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器、从车辆外部的一个或多个收发器接收的信息等)来补充冗余和接收到的数据的验证。
本领域的技术人员将认识到,上述相机配置、相机放置、相机数目、相机定位等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个系统描述的其他组件可以在各种不同的配置中被组装和使用。关于使用多相机系统以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
图4是存储器140和/或存储器150的示例性功能性框图,该存储器140和/或存储器150可以被存储/被编程指令以用于进行与本公开实施例一致的一个或多个操作。尽管以下指代存储器140,但是本领域技术人员将认识到指令可以存储在存储器140和/或存储器150中。
如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行包含在存储器140中的任何模块402、404、406和408所存储的指令。本领域技术人员将理解,在以下讨论中对处理单元110的参考可以分离地或共同地指代应用处理器180和图像处理器190。相应地,可以由一个或多个处理装置来进行任何以下过程的步骤。
在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),当由处理单元110执行该指令时,对由图像捕获装置122、124和126中的一个获取的一组图像进行单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的感觉信息(例如,来自雷达、激光雷达等的信息)组合以进行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包含用于在一组图像内检测该组特征的指令,所述特征诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及与车辆的环境相关联的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。
在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),当由处理单元110执行该指令时,对由从任何图像捕获装置122、124和126中选择的图像捕获装置的组合而获取的第一组和第二组图像进行立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与附加的感觉信息(例如,来自雷达的信息)组合以进行立体图像分析。例如,立体图像分析模块404可以包含指令,该指令用于基于由图像捕获装置124获取的第一组图像和由图像捕获装置126获取的第二组图像而进行立体图像分析。如下面结合图6所描述的,立体图像分析模块404可以包含指令,该指令用于检测第一组和第二组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术,诸如系统可以被配置为使用计算机视觉算法来检测和/或标记在从中捕获和处理感觉信息的环境中的对象。在一个实施例中,立体图像分析模块404和/或其他图像处理模块可以被配置为使用经训练和未经训练系统的组合。
在一个实施例中,速度和加速度模块406可以存储软件,该软件被配置为分析从车辆200中的一个或多个计算和机电装置接收的数据,该一个或多个计算和机电装置被配置为引起车辆200的速度和/或加速度的改变。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从执行单目图像分析模块402和/或立体图像分析模块404导出的数据来计算车辆200的目标速度。这样的数据可以包含,例如目标位置,速度和/或加速度,车辆200相对于附近车辆、行人或道路对象的位置和/或速度,车辆200相对于道路的车道标志的位置信息等。另外,处理单元110可以基于感觉输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如油门调节系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速度。基于计算出的目标速度,处理单元110可以向车辆200的油门调节系统220、制动系统230和/或转向系统的240传输电信号,以通过例如物理地压下制动器或松开车辆200的加速器来触发速度和/或加速度的改变。
在一个实施例中,导航响应模块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的速度的改变。
此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
图5A是示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程500A的流程图。在步骤510处,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕获装置122)可以捕获车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并通过数据连接(例如,数字、有线、USB、无线、蓝牙等)将它们传输到处理单元110。在步骤520处,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5B至图5D所进一步详细描述的。通过进行该分析,处理单元110可以检测在该组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯等。
在步骤520处,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这样的危险的检测更加困难。在一些实施例中,处理单元110可以执行单目图像分析模块402来对多个图像进行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3D地图。然后,处理单元110可以使用该3D地图来检测道路表面、以及存在于道路表面上的危险。
在步骤530处,处理单元110可以执行导航响应模块408以基于在步骤520处执行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。导航响应可以包含例如转向、变道、制动、加速度的改变等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。例如,处理单元110可以通过例如按照顺序地向车辆200的转向系统240和油门调节系统220传输控制信号,使得车辆200转变一个车道然后加速。替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240传输控制信号,使得车辆200在变道的同时制动。
图5B是示出与所公开的实施例一致的用于在一组图像中检测一个或多个车辆和/或行人的示例性过程500B的流程图。处理单元110可以执行单目图像分析模块402来实现过程500B。在步骤540处,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定图案比较,并且在每个图像内识别可能含有感兴趣的对象(例如,车辆、行人或其部分)的可能的定位。预定图案可以以实现高“伪命中”率和低“漏掉”率的这样的方式来设计。例如,处理单元110可以将低的相似性阈值用在预定图案以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。
在步骤542处,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型类别相关联的各种属性导出这样的标准。属性可以包含对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
在步骤544处,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
在步骤546处,处理单元110可以为检测到的对象构建一组测量。这样的测量可以包含例如与检测到的对象相关联的位置、速度和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的诸如卡尔曼滤波器或线性二次估计(LQE)的估计技术和/或基于对于不同对象类别(例如,汽车、卡车、行人、自行车、道路标志等)可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过进行步骤540至546,处理单元110可以识别在该组捕获图像内出现的车辆和行人,并导出与该车辆和行人相关联的信息(例如,位置、速度、大小)。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤548处,处理单元110可以进行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的可能性。光流分析可以指代,例如在一个或多个图像中分析相对于车辆200的、与其他车辆和行人相关联的并且区别于道路表面运动的运动图案。处理单元110可以通过跨越在不同时间捕获到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用该位置和时间值作为用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546进行光流分析,以提供用于检测车辆和行人的冗余,并提高系统100的可靠性。
图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标志和/或车道几何结构信息的示例性过程500C的流程图。处理单元110可以执行单目图像分析模块402来实现过程500C。在步骤550处,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标志、车道几何结构信息以及其他相关的道路标志的路段,处理单元110可以过滤该组对象以排除被确定为不相关的对象(例如,小坑洼、小石块等)。在步骤552处,处理单元110可以将在步骤550中检测到的属于相同的道路标志或车道标志的路段分组在一起。基于该分组,处理单元110可以产生表示检测到的路段的模型,诸如数学模型。
在步骤554处,处理单元110可以构建与检测到的路段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的路段从图像平面到现实世界平面上的投影。可以使用具有与诸如检测到的道路的位置、斜率、曲率和曲率导数的物理属性对应的系数的三次多项式来表征该投影。在生成投影时,处理单元110可以考虑道路表面的改变,以及与车辆200相关的俯仰(pitch)和滚转速率(roll rate)。此外,处理单元110可以通过分析道路表面上存在的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰和滚转速率。
在步骤556处,处理单元110可以通过例如跨连续图像帧跟踪检测到的路段并累积与检测到的路段相关联的逐帧数据来进行多帧分析。由于处理单元110进行多帧分析,在步骤554构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过进行步骤550、552、554和556,处理单元110可以识别在该组捕获图像中出现的道路标志并导出车道几何结构信息。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤558处,处理单元110可以考虑附加的信息源,以进一步产生车辆200的在其周围的环境中的安全模型。处理单元110可以使用安全模型来限定系统100可以以安全方式执行车辆200的自主控制的上下文。为产生该安全模型,在一些实施例中,处理单元110可以考虑其他车辆的位置和运动、检测到的路缘和护栏、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标志和车道几何结构的冗余,并增加系统100的可靠性。
图5D是示出与所公开的实施例一致的用于在一组图像中检测交通灯的示例性过程500D的流程图。处理单元110可以执行单目图像分析模块402来实现过程500D。在步骤560处,处理单元110可以扫描该组图像,并识别出现在图像中的可能含有交通灯的定位处的对象。例如,处理单元110可以过滤所识别的对象以构建一组候选对象,而排除不可能对应于交通灯的那些对象。可以基于与交通灯相关联的各种属性来完成过滤,诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等。这样的属性可以基于交通灯和交通控制信号的多个示例,并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象进行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些移动的对象(其不可能是交通灯)。在一些实施例中,处理单元110可以对候选对象进行颜色分析,并识别出现在可能的交通灯内的检测到的颜色的相对位置。
在步骤562处,处理单元110可以分析交叉口的几何结构。分析可以基于以下各项的任意组合:(i)在车辆200的任一侧检测到的车道数,(ii)在道路上检测到的标志(例如,箭头标志),以及(iii)从地图数据(例如,来自地图数据库160的数据)中提取的交叉口的描述。处理单元110可以使用从执行单目分析模块402导出的信息来进行分析。此外,处理单元110可以确定在步骤560检测到的交通灯和在车辆200附近出现的车道之间的对应性。
在步骤564处,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何结构和检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数目与实际出现在交叉口处的交通灯的数目比较可以影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改善安全条件。通过进行步骤560、562和564,处理单元110可以识别出现在该组捕获图像内的交通灯,并分析交叉口几何结构信息。基于该识别和分析,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
图5E是示出与所公开的实施例一致的用于基于车辆路径来引起车辆200中的一个或多个导航响应的示例性过程500E的流程图。在步骤570处,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的路段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
在步骤572处,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的dk小于如上所述的距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度的累积距离矢量S(即,基于表示车辆路径的该组点)。
在步骤574处,处理单元110可以基于在步骤572处构建的更新后的车辆路径来确定前视点(look-ahead point)(以坐标表达为(xl,zl))。处理单元110可以从累积距离矢量S提取前视点,并且该前视点可以与前视距离和前视时间相关联。前视距离可以具有范围为从10米至20米的下限,可以被计算为车辆200的速度和前视时间的乘积。例如,随着车辆200的速度下降,前视距离也可以减小(例如,直到它到达下限)。前视时间的范围可以从0.5到1.5秒,可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于偏航率(yaw rate)环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
在步骤576处,处理单元110可以基于在步骤574确定的前视点来确定航向误差和偏航率命令。处理单元110可以通过计算前视点的反正切,例如arctan(xl/zl)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2×车辆200的速度/前视距离)。
图5F是示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程500F的流程图。在步骤580处,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5A和图5B所描述的技术来确定前方车辆的位置、速度(例如,方向和速度)和/或加速度。处理单元110还可以使用以上结合图5E所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(例如,描述由前方车辆所采取的路径的一组点)。
在步骤582处,处理单元110可以分析在步骤580确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路上0.3至0.4米,以及在急转弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其他车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以附加地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其他车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率和道路路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
在另一个实施例中,处理单元110可以在具体时间段(例如,0.5至1.5秒)将前方车辆的瞬时位置与前视点(与车辆200相关联)相比较。如果前方车辆的瞬时位置与前视点之间的距离在该具体时间段期间变化,并且变化的累积总和超过预定阈值(例如,在直路上0.3至0.4米,在适度弯曲道路上0.7至0.8米,以及在急转弯道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以通过将沿着追踪轨迹行驶的横向距离与该追踪路径的期望曲率相比较,来分析该追踪轨迹的几何结构。可以根据计算确定预期的曲率半径:(δz 2x 2)/2/(δx),其中δx表示横向行驶的距离和δz表示的纵向行驶的距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置遮挡了道路多项式(例如,前车覆盖在道路多项式的上方),则处理单元110可以确定前方车辆很可能正在改变车道。在前方车辆的位置是使得在前方车辆的前方检测到另一车辆并且这两个车辆的追踪轨迹不平行的情况下,处理单元110可以确定(较近的)前方车辆很可能正在改变车道。
在步骤584,处理单元110可以基于在步骤582进行的分析来确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582进行的各个分析的加权平均来做出该确定。在这样的方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变车道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582处进行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。
图6是示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程600的流程图。在步骤610处,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202和204的图像捕获装置122和124)可以捕获在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤620处,处理单元110可以执行立体图像分析模块404来进行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3D地图并检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。可以以与上面结合图5A至5D描述的步骤类似的方式进行立体图像分析。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标志、交通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并进行多帧分析、构建测量,以及为剩余的候选对象确定置信度水平。在进行上述步骤时,处理单元110可以考虑来自第一和第二多个图像两者的信息,而不是仅考虑来自一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像两者中的候选对象的像素级数据(或来自捕获图像的两个流中的其他数据子集)的差异。作为另一个示例,处理单元110可以通过观察对象在多个图像中的一个出现而未在另一个图像中出现,或相对于出现在两个图像流中的对象可能存在的其他差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
在步骤630处,处理单元110可以执行导航响应模块408,以基于在步骤620进行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包含例如转向、变道、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。
图7是示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程700的流程图。在步骤710处,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202、204和206的图像捕获装置122、124和126)可以捕获在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕获装置122、124、126中的每个可以具有用于向处理单元110通信数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤720处,处理单元110可以分析该第一、第二和第三多个图像以检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。该分析可以以类似于以上结合图5A-图5D和图6所描述的步骤的方式来进行。例如,处理单元110可以对第一、第二和第三多个图像中的每个进行单目图像分析(例如,经由单目图像分析模块402的执行以及基于以上结合图5A至图5D所描述的步骤)。替代地,处理单元110可对第一和第二多个图像、第二和第三多个图像、和/或第一和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行以及基于以上结合图6所描述的步骤)。可以组合对应于第一、第二和/或第三多个图像的分析的处理后的信息。在一些实施例中,处理单元110可以进行单目和立体图像分析的组合。例如,处理单元110可以对第一多个图像进行单目图像分析(例如,经由单目图像分析模块402的执行)并且对第二和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行)。图像捕获装置122、124和126——包含它们各自的定位和视场202、204和206——的配置可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕获装置122、124和126的特定配置或对第一、第二和第三多个图像进行的分析的类型。
在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对系统100进行测试。这样的测试可以提供对于图像获取装置122、124和126的某些配置的系统100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,系统100不正确地确定车辆或行人的存在的情况)和“漏掉”的比例。
在步骤730处,处理单元110可以基于从第一、第二和第三多个图像中的两个导出的信息来引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数目、类型和大小。处理单元110还可以基于图像质量和分辨率、在图像中反映的有效视场、捕获的帧的数目、一个或多个感兴趣的对象实际出现在帧中的程度(例如,对象出现的帧的百分比、每个这样的帧中出现的对象的比例)等来进行选择。
在一些实施例中,处理单元110可以通过确定从一个图像源导出的信息与从其他图像源导出的信息的相一致的程度,选择从第一、第二和第三多个图像中的两个导出的信息。例如,处理单元110可以将从图像捕获装置122、124和126中的每个导出的处理后的信息组合(无论通过单目分析、立体分析、还是两者的任何组合),并确定在从图像捕获装置122、124和126的每个捕获到的图像之间相一致的视觉指示符(例如,车道标志、检测到的车辆及其定位和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕获到的图像之间不一致的信息(例如,正改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于确定相一致和不一致的信息,来选择从第一、第二和第三多个图像中的两个导出的信息。
导航响应可以包含例如转向、变道、制动、加速度的改变等。处理单元110可以基于在步骤720所进行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。处理单元110还可以使用从执行速度和加速度模块406导出的数据来引起一个或多个导航响应。在一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任何组合而发生。
对捕获的图像进行分析可以允许用于自主车辆导航的稀疏地图模型的生成和使用。此外,对捕获的图像进行分析可以允许使用已识别的车道标记对自主车辆进行定位。下面将参考图8-图28,对用于基于对捕获的图像的一个或多个待定分析来检测特定特征、以及用于使用稀疏地图模型来导航自主车辆的实施例进行讨论。
用于自主车辆导航的稀疏道路模型
在一些实施例中,所公开的系统和方法可以使用用于自主车辆导航的稀疏地图。特别地,稀疏地图可以用于沿着道路路段的自主车辆导航。例如,稀疏地图可以在不存储和/或更新大量数据的情况下为导航自主车辆提供足够的信息。如下文更详细讨论的,自主车辆可以基于一个或多个存储的轨迹使用稀疏地图来导航一条或多条道路。
用于自主车辆导航的稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,稀疏地图可以在不需要过多的数据存储或数据传输速率的情况下为导航提供足够的信息。如下文更详细讨论的,车辆(其可以是自主车辆)可以使用稀疏地图来导航一条或多条道路。例如,在一些实施例中,稀疏地图可以包含与道路和沿着道路的潜在地标相关的数据,这些数据对于车辆导航来说可能是足够的,但是也表现出小的数据足迹(footprint)。例如,下面详细描述的稀疏数据地图与包含详细地图信息(诸如沿着道路收集的图像数据)的数字地图相比,可能需要显著更少的存储空间和数据传输带宽。
例如,稀疏数据地图可以存储沿着道路的优选车辆路径的三维多项式表示,而不是存储道路路段的详细表示。这些路径可能需要非常少的数据存储空间。此外,在所描述的稀疏数据地图中,地标可以被识别并被包含在稀疏地图道路模型中以帮助导航。这些地标可以以适合于使能车辆导航的任何间距被定位,但是在一些情况下,这些地标不需要以高密度和短间距被识别并被包含在模型中。相反,在一些情况下,基于间距开至少50米、至少100米、至少500米、至少1千米或至少2千米的地标的导航是可能的。如将在其他章节中更详细讨论的,稀疏地图可以基于由配备有各种传感器和装置(诸如图像捕获装置、全球定位系统传感器、运动传感器等)的车辆在该车辆沿着道路行驶时收集或测量的数据来生成。在一些情况下,稀疏地图可以基于在一个或多个车辆沿着特定道路多次驾驶期间收集的数据来生成。使用一个或多个车辆的多次驾驶生成稀疏地图可以被称为“众包”稀疏地图。
与所公开的实施例一致,自主车辆系统可以使用用于导航的稀疏地图。例如,所公开的系统和方法可以分配稀疏地图用于为自主车辆生成道路导航模型,并且可以使用稀疏地图和/或生成的道路导航模型沿着道路路段导航自主车辆。与本公开一致的稀疏地图可以包含一个或多个三维轮廓,这些三维轮廓可以表示自主车辆在它们沿着相关联的道路路段移动时可以穿过(traverse)的预定轨迹。
与本公开一致的稀疏地图还可以包含表示一个或多个道路特征的数据。这样的道路特征可以包含辨识的地标、道路签名轮廓以及在车辆导航中有用的任何其他道路相关特征。与本公开一致的稀疏地图可以基于包含在稀疏地图中的相对少量的数据来使能车辆的自主导航。例如,稀疏地图的所公开的实施例可以需要相对小的存储空间(并且当稀疏地图的部分被传输到车辆时需要相对小的带宽),但是仍然可以充分地提供自主车辆导航,而不是包含道路的详细表示,诸如道路边缘、道路曲率、与道路路段相关联的图像、或详细描述与道路路段相关联的其他物理特征的数据。在一些实施例中,可以通过存储需要少量数据但仍然使能够自主导航的道路相关元素的表示来实现所公开的稀疏地图的小数据足迹,这将在下面进一步详细讨论。
例如,所公开的稀疏地图可以存储车辆可以沿着道路遵循的一个或多个轨迹的多项式表示,而不是存储道路的各个方面的详细表示。因此,使用所公开的稀疏地图,可以沿着特定道路路段导航车辆,而不是存储(或必须传输)关于道路的物理性质的细节以使能沿着道路的导航,在某些情况下,不必解释道路的物理方面,而是通过将其行驶的路径与沿着特定道路路段的轨迹(例如,多项式样条)对齐。以这种方式,可以主要基于存储的轨迹(例如,多项式样条)来导航车辆,与涉及道路图像、道路参数、道路布局等的存储的方法相比,该存储的轨迹可以需要少得多的存储空间。
除了存储的沿着道路路段的轨迹的多项式表示之外,所公开的稀疏地图还可以包含可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包含数字签名,该数字签名从沿着道路路段行驶的车辆上的传感器(例如,相机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)中导出。相对于由传感器获取的信号,数字签名可以具有减小的大小。在一些实施例中,数字签名可以被创建为与分类器功能兼容,该分类器功能被配置为例如在后续驾驶期间从由传感器获取的信号中检测和识别道路特征。在一些实施例中,可以创建数字签名,使得数字签名具有尽可能小的足迹,同时保留基于道路特征的图像(或者如果所存储的签名不是基于图像和/或包含其他数据,则是由传感器生成的数字信号)将道路特征与所存储的签名相关联或匹配的能力,该道路特征的图像由后续沿相同道路路段行驶的车辆上的相机捕获。
在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于可由车辆上的相机检测的道路特征,并且其中车辆上的相机系统耦合到分类器,该分类器能够将对应于该道路特征的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联,并且其中这种道路标志在该区域中是本地唯一的(例如,附近没有相同的道路标志或相同类型的道路标志),存储指示道路特征的类型及其定位的数据可以是足够的。
如下面将进一步详细讨论的,道路特征(例如,沿着道路路段的地标)可以被存储为小数据对象,该小数据对象可以以相对较少的字节来表示道路特征,同时提供足够的信息用于辨识和使用这样的特征进行导航。在一个示例中,道路标志可以被识别为车辆的导航可以基于的辨识的地标。道路标志的表示可以被存储在稀疏地图中,以包含例如指示地标的类型(例如,停车标志)的几个字节的数据和指示地标的定位(例如,坐标)的几个字节的数据。基于地标的这种轻数据(data-light)表示的导航(例如,使用足以基于地标定位、辨识和导航的表示)可以提供与稀疏地图相关联的期望等级的导航功能,而不会显著增加与稀疏地图相关联的数据开销。地标(和其他道路特征)的这种精简表示可以利用包含在这种车辆上的被配置为检测、识别和/或分类特定道路特征的传感器和处理器。
例如,当给定区域中的标志或者甚至特定类型的标志是本地唯一的(例如,当没有其他标志或者没有相同类型的其他标志时),稀疏地图可以使用指示地标的类型(标志或者特定类型的标志)的数据,并且在导航(例如,自主导航)期间当自主车辆上的相机捕获包含标志(或特定类型的标志)的区域的图像时,处理器可以处理图像,检测标志(如果确实存在于图像中),将图像分类为标志(或特定类型的标志),并将图像的定位与存储在稀疏地图中的标志的定位相关联。
道路特征表示
在一些实施例中,稀疏地图可以包含沿着道路路段延伸的道路表面特征的至少一个线表示以及与该道路路段相关联的多个地标。在某些方面,稀疏地图可以经由“众包”来生成,例如,通过对当一个或多个车辆穿过道路路段时获取的多个图像进行图像分析。
除了目标轨迹和识别的地标之外,稀疏地图可以包含与各种其他道路特征相关的信息。例如,图8A示出了可以存储在稀疏地图中的沿着特定道路路段的曲线的表示。在一些实施例中,道路的单个车道可以由道路左侧边和右侧边的三维多项式描述来建模。图8A中示出了表示单个车道的左侧边和右侧边的这样的多项式。不管道路可以有多少车道,道路可以以类似于图8A所示的方式使用多项式来表示。例如,多车道道路的左侧边和右侧边可以由类似于图8A所示的多项式来表示,并且包含在多车道道路上的中间车道标志(例如,表示车道边界的虚线标志、表示在不同方向上行驶的车道之间的边界的黄色实线等)也可以使用诸如图8A所示的多项式来表示。
如图8A所示,可以使用多项式(例如,一阶、二阶、三阶或任何合适阶的多项式)来表示车道800。为了说明,车道800被示出为二维车道,并且多项式被显示为二维多项式。如图8A所示,车道800包含左侧边810和右侧边820。在一些实施例中,可以使用一个以上的多项式来表示道路或车道边界的每一边的定位。例如,左侧边810和右侧边820中的每一个可以由任意合适长度的多个多项式来表示。在一些情况下,多项式可以具有大约100m的长度,尽管也可以使用大于或小于100m的其他长度。此外,多项式可以彼此重叠,以便当主车辆沿着道路行驶时,基于后续遇到的多项式来促进导航中的无缝转换。例如,左侧边810和右侧边820中的每一个可以由多个三阶多项式表示,这些三阶多项式被分成大约100米长的段(第一预定范围的示例),并且彼此重叠大约50米。表示左侧边810和右侧边820的多项式可以具有或不具有相同的顺序。例如,在一些实施例中,一些多项式可以是二阶多项式,一些可以是三阶多项式,以及一些可以是四阶多项式。
在图8A所示的示例中,车道800的左侧边810由两组三阶多项式表示。第一组包含多项式段811、812和813。第二组包含多项式段814、815和816。这两个组虽然基本上彼此平行,但是遵循它们各自的道路边的定位。多项式段811、812、813、814、815和816具有大约100米的长度,并且与系列中与相邻段重叠大约50米。然而,如前所述,也可以使用不同长度和不同重叠量的多项式。例如,多项式可以具有500m、1km或更长的长度,并且重叠量可以从0到50m、50m到100m或大于100m变化。另外,虽然图8A被示为表示在2D空间中(例如,在纸的表面上)延伸的多项式,但是应当理解,这些多项式可以表示在三维中延伸的曲线(例如,包含高度分量),以表示除了X-Y曲率之外的道路路段中的标高改变。在图8A所示的示例中,车道800的右侧边820进一步由具有多项式段821、822和823的第一组和具有多项式段824、825和826的第二组表示。
回到稀疏地图的目标轨迹,图8B示出了表示沿着特定道路路段行驶的车辆的目标轨迹的三维多项式。目标轨迹不仅表示主车辆应当沿着特定道路路段行驶的X-Y路径,还表示主车辆沿着该道路路段行驶时将经历的标高改变。因此,稀疏地图中的每个目标轨迹可以由一个或多个三维多项式表示,如图8B中所示的三维多项式850。稀疏地图可以包含多个轨迹(例如,数百万或数十亿或更多,以表示沿着沿着世界各地的道路的各个道路路段的车辆的轨迹)。在一些实施例中,每个目标轨迹可以对应于连接三维多项式段的样条。
关于存储在稀疏地图中的多项式曲线的数据足迹,在一些实施例中,每个三次多项式可以由四个参数表示,每个参数需要四个字节的数据。可以使用需要每100m约192字节数据的三次多项式来获得合适的表示。对于行驶约100km/hr的主车辆,这可以转化为每小时约200kB的数据使用/传输要求。
稀疏地图可以使用几何结构描述符和元数据的组合来描述车道网络。几何结构可以用如上所述的多项式或样条来描述。元数据可以描述车道的数量、特殊特性(诸如合用车道)以及可能的其他稀疏标签。这种指示符的总足迹可能可以忽略不计。
相应地,根据本公开的实施例的稀疏地图可以包含沿着道路路段延伸的道路表面特征的至少一个线表示,每个线表示表示沿着道路路段基本上对应于道路表面特征的路径。在一些实施例中,如上所述,道路表面特征的至少一个线表示可以包含样条、多项式表示或曲线。此外,在一些实施例中,道路表面特征可以包含道路边缘或车道标志中的至少一个。此外,如下面关于“众包”所讨论的,可以通过对当一个或多个车辆穿过道路路段时获取的多个图像的图像分析来识别道路表面特征。
图9A示出了在建造或维持稀疏地图的过程中捕获的轨迹的多项式表示。稀疏地图中包含的目标轨迹的多项式表示可以基于车辆沿着相同道路路段的先前穿过的两个或更多个重建轨迹来确定。在一些实施例中,稀疏地图中包含的目标轨迹的多项式表示可以是沿着相同道路路段的车辆的先前穿过的两个或更多个重建轨迹的聚集。在一些实施例中,稀疏地图中包含的目标轨迹的多项式表示可以是车辆沿着相同道路路段的先前穿过的两个或更多个重建轨迹的平均。其他数学运算也可以用于基于从沿着道路路段穿过的车辆收集的重建轨迹来构建沿着道路路径的目标轨迹。
如图9A所示,道路路段900可以由多个车辆200在不同时间处行驶。每个车辆200可以收集与车辆沿着道路路段所走的路径相关的数据。由特定车辆行驶的路径可以基于相机数据、加速度计信息、速度传感器信息和/或GPS信息以及其他潜在来源来确定。这种数据可用于重建沿着道路路段行驶的车辆的轨迹,并且基于这些重建轨迹,可为特定道路路段确定目标轨迹(或多个目标轨迹)。这种目标轨迹可以表示主车辆沿着道路路段行驶时的(例如,由自主导航系统所引导的)该车辆的优选路径。
在图9A所示的示例中,第一重建轨迹901可以基于从在第一时间段(例如,第一天)穿过道路路段900的第一车辆接收的数据来确定,第二重建轨迹902可以从在第二时间段(例如,第二天)穿过道路路段900的第二车辆获得,第三重建轨迹903可以从在第三时间段(例如,第三天)穿过道路路段900的第三车辆获得。每个轨迹901、902和903可以由多项式表示,诸如三维多项式。应当注意,在一些实施例中,任何重建轨迹可以在穿过道路路段900的车辆上组装。
附加地或替代地,可以基于从穿过道路路段900的车辆接收的信息在服务器侧确定这样的重建轨迹。例如,在一些实施例中,车辆200可以向一个或多个服务器传输与它们沿着道路路段900的运动相关的数据(例如,转向角、航向、时间、位置、速度、感测到的道路几何结构和/或感测到的地标等)。服务器可以基于接收到的数据重建车辆200的轨迹。服务器还可以基于第一轨迹901、第二轨迹902和第三轨迹903生成用于引导将在稍后的时间沿着相同道路路段900行驶的自主车辆的导航的目标轨迹。虽然目标轨迹可以与道路路段的单个先前穿过相关联,但是在一些实施例中,稀疏地图中包含的每个目标轨迹可以基于穿过相同道路路段的车辆的两个或更多个重建轨迹来确定。在图9A中,目标轨迹由910表示。在一些实施例中,目标轨迹910可以基于第一轨迹901、第二轨迹902和第三轨迹903的平均来生成。在一些实施例中,稀疏地图中包含的目标轨迹910可以是两个或更多个重建轨迹的聚集(例如,加权组合)。下面关于图29对对齐驾驶数据以构建轨迹进行讨论。
图9B和图9C进一步示出了与地理区域911内存在的道路路段相关联的目标轨迹的概念。如图9B所示,地理区域911内的第一道路路段920可以包含多车道道路,该多车道道路包含指定用于车辆在第一方向上行驶的两条车道922和指定用于车辆在与第一方向相反的第二方向上行驶的两条附加车道924。车道922和车道924可以由双黄线923分开。地理区域911还可以包含与道路路段920相交的分支道路路段930。道路路段930可以包含双车道道路,每个车道被指定用于不同的行驶方向。地理区域911还可以包含其他道路特征,诸如停车线932、停车标志934、限速标志936和危险标志938。
如图9C所示,稀疏地图可以包含局部地图940,该局部地图940包含用于帮助地理区域911内的车辆的自主导航的道路模型。例如,局部地图940可以包含与地理区域911内的道路路段920和/或930相关联的一个或多个车道的目标轨迹。例如,局部地图940可以包含自主车辆在穿过车道922时可以访问或依赖的目标轨迹941和/或942。类似地,局部地图940可以包含自主车辆在穿过车道924时可以访问或依赖的目标轨迹943和/或944。此外,局部地图940可以包含自主车辆在穿过道路路段930时可以访问或依赖的目标轨迹945和/或946。目标轨迹947表示当从车道920(具体而言,相对于与车道920的最右侧车道相关联的目标轨迹941)转换到道路路段930(具体而言,相对于与道路路段930的第一边相关联的目标轨迹945)时,自主车辆应当遵循的优选路径。类似地,目标轨迹948表示当从道路路段930(具体地,相对于目标轨迹946)转换到道路路段924的一部分(具体地,如图所示,相对于与车道924的左车道相关联的目标轨迹943)时,自主车辆应当遵循的优选路径。
稀疏地图还可以包含与地理区域911相关联的其他道路相关特征的表示。例如,稀疏地图还可以包含在地理区域911中识别的一个或多个地标的表示。这些地标可以包含与停车线932相关联的第一地标950、与停车标志934相关联的第二地标952、与限速标志954相关联的第三地标以及与危险标志938相关联的第四地标956。这种地标可以用于例如帮助自主车辆确定其相对于任何所示目标轨迹的当前定位,使得车辆可以调整其航向以匹配在确定的定位处的目标轨迹的方向。
在一些实施例中,稀疏地图还可以包含道路签名轮廓。这种道路签名轮廓可以与至少一个与道路相关联的参数的任何可辨别/可测量的变化相关联。例如,在一些情况下,这种轮廓可以与道路表面信息的变化相关联,诸如特定道路路段的表面粗糙度的变化、特定道路路段上道路宽度的变化、沿着特定道路路段绘制的虚线之间的距离的变化、沿着特定道路路段的道路曲率的变化等。图9D示出了道路签名轮廓960的示例。虽然轮廓960可以表示上述参数中的任意参数或其他参数,但是在一个示例中,轮廓960可以表示道路表面粗糙度的测量,例如,如通过监控一个或多个传感器来获得,该一个或多个传感器提供指示车辆在特定道路路段上行驶时悬架位移量的输出。
替代地或同时地,轮廓960可以表示道路宽度的变化,如基于经由在特定道路路段上行驶的车辆上的相机获得的图像数据来确定的。例如,这种轮廓在确定自主车辆相对于特定目标轨迹的特定定位时是有用的。也就是说,当它穿过道路路段时,自主车辆可以测量与道路路段相关联的一个或多个参数相关联的轮廓。如果测量的轮廓可以与相对于沿着道路路段的位置映射参数变化的预定轮廓相关/匹配,则可以使用测量的和预定的轮廓(例如,通过覆盖测量的和预定的轮廓的对应部分),以便确定沿着道路路段的当前位置,并且因此确定相对于道路路段的目标轨迹的当前位置。
在一些实施例中,稀疏地图可以包含基于与自主车辆的用户相关联的不同特性、环境条件和/或与驾驶相关的其他参数的不同轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或轮廓来生成不同的轨迹。包含这种不同轨迹的稀疏地图可以被提供给不同用户的不同自主车辆。例如,一些用户可能偏好避开收费公路,而其他用户可能偏好走最短或最快的路线,而不管路线上是否有收费公路。所公开的系统可以基于这种不同的用户偏好或轮廓生成具有不同轨迹的不同稀疏地图。作为另一个示例,一些用户可能偏好在快速移动的车道上行驶,而其他用户可能偏好始终维持在中心车道上的位置。
基于不同的环境条件,诸如白天和黑夜、下雪、下雨、有雾等,可以生成不同的轨迹并将其包含在稀疏地图中。在不同环境条件下行驶的自主车辆可以被提供有基于这种不同环境条件生成的稀疏地图。在一些实施例中,在自主车辆上提供的相机可以检测环境条件,并且可以将这种信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图,以包含在检测到的环境条件下可能更适合或更安全用于自主驾驶的轨迹。当自主车辆沿着道路行驶时,可以动态地执行基于环境条件的稀疏地图的更新。
与驾驶相关的其他不同参数也可以用作生成不同的稀疏地图并将不同的稀疏地图提供给不同的自主车辆的基础。例如,当自主车辆以高速行驶时,转弯可能会更困难(tighter)。与特定车道而不是道路相关联的轨迹可以被包含在稀疏地图中,使得当车辆遵循特定轨迹时,自主车辆可以维持在特定车道内。当由自主车辆上的相机捕获的图像指示车辆已经漂移到车道之外(例如,越过车道标志)时,可以在车辆内触发动作,以根据特定轨迹将车辆带回指定车道。
图10示出了由多个三维样条1001、1002和1003表示的示例自主车辆道路导航模型。图10中所示的曲线1001、1002和1003仅用于说明目的。每个样条可以包含连接多个数据点1010的一个或多个三维多项式。每个多项式可以是一阶多项式、二阶多项式、三阶多项式或具有不同阶数的任何合适多项式的组合。每个数据点1010可以与从多个车辆接收的导航信息相关联。在一些实施例中,每个数据点1010可以与与地标(例如,地标的大小、定位和识别信息)和/或道路签名轮廓(例如,道路几何结构、道路粗糙度轮廓、道路曲率轮廓、道路宽度轮廓)相关的数据相关联。在一些实施例中,一些数据点1010可以与地标相关的数据相关联,而其他数据点可以与道路签名轮廓相关的数据相关联。
图11示出了从五个分离的驾驶接收的原始定位数据1110(例如,GPS数据)。如果一个驾驶同时被分离的车辆在相同的时间、被相同车辆在分离的时间、或被分离的车辆在分离的时间穿过,则该驾驶可以与另一驾驶分开。为了考虑定位数据1110中的误差以及相同车道内车辆的不同定位(例如,一个车辆可能比另一车辆更靠近车道的左侧),远程服务器可以使用一个或多个统计技术来生成地图骨架1120,以确定原始定位数据1110中的变化是否表示实际的偏离或统计误差。骨架1120内的每个路径可以链接回形成该路径的原始数据1110。例如,骨架1120内的A和B之间的路径链接到来自驾驶2、3、4和5而不是来自驾驶1的原始数据1110。骨架1120可以不足够详细以用于导航车辆(例如,因为与上述样条不同,骨架1120组合了相同道路上多个车道的驾驶),但是可以提供有用的拓扑信息并且可以用于定义交叉路口。
用于导航的安全性约束和舒适性约束
除了导航模型之外,自主车辆(无论是完全自主,例如自动驾驶车辆,还是部分自主,例如一个或多个驾驶员辅助系统或功能)通常使用驾驶策略来确保其他驾驶员和行人的安全以及内部乘客的舒适性。
因此,自主车辆可以感测主车辆的环境中的导航状态。例如,车辆可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入。这些输入可以包括来自一个或多个车载相机的图像或图像流、GPS位置信息、加速度计输出、用户反馈、或对一个或多个用户接口设备的用户输入、雷达、激光雷达等。感测(其可以包括来自相机和/或任何其他可用传感器的数据以及地图信息)可以被收集、分析并形成为描述从主车辆的环境中的场景提取的信息的“感测到的状态”。感测到的状态可以包括与目标车辆、车道标记、行人、交通灯、道路几何形状、车道形状、障碍物、到其他对象/车辆的距离、相对速度、相对加速度有关的感测到的信息,以及任何其他潜在的感测到的信息。可以实施监督式机器学习,以便基于所提供的感测到的数据来产生感测状态输出。如下所描述的,感测模块的输出可以表示感测到的主车辆的导航“状态”,其可以在驾驶策略中被使用。
尽管可以基于从与主车辆相关联的一个或多个相机或图像传感器接收的图像数据来产生感测到的状态,但是可以使用任何合适的传感器或传感器组合来产生供导航使用的感测到的状态。在一些实施例中,可以不依赖于捕获的图像数据而产生感测到的状态。事实上,本文描述的任何导航原理可以适用于基于捕获的图像数据产生的感测到的状态以及使用其他基于非图像的传感器产生的感测到的状态。感测到的状态也可以经由主车辆外部的源来确定。例如,可以基于从远离主车辆的源接收的信息(例如,基于从其他车辆共享的、从中央服务器共享的、或来自与主车辆的导航状态有关的任何其他信息源的传感器信息、经处理的状态信息等),来产生感测到的状态。
自主车辆可以实现期望的驾驶策略,以便响应于感测到的导航状态来决定主车辆要采取的一个或多个导航动作。如果在主车辆的环境中不存在其他作用者(agent)(例如,目标车辆或行人),则可以以相对直接的方式处理感测到的状态输入。当感测到的状态需要与一个或多个其他作用者进行协商时,任务变得更加复杂。用于生成驾驶策略的输出的技术可以包括强化学习(下面将更详细地讨论)。驾驶策略的输出可以包括主车辆的至少一个导航动作,并且可以包括期望加速度(其可以转化为主车辆的更新的速度)、主车辆的期望横摆率、期望轨迹以及其他潜在的期望导航动作。
基于来自驾驶策略的输出,自主车辆可以产生用于与主车辆相关联的一个或多个致动器或受控设备的控制指令。这种致动器和设备可以包括加速器、一个或多个转向控制器、制动器、信号传输器、显示器或可以作为与主车辆相关联的导航操作的一部分而被控制的任何其他致动器或设备。控制理论的各方面可以用来生成控制指令。主车辆的可控组件的指令可以实现驾驶策略的期望的导航目标或要求。
回到上面讨论的驾驶策略,在一些实施例中,可以使用通过强化学习训练的经训练系统来实施驾驶策略。在其他实施例中,驾驶策略可以在不用机器学习方法的情况下,通过使用指定的算法来“手动”解决在自主导航期间可能出现的各种情景来实现。然而,这种方法虽然可行,但可能导致驾驶策略过于简单化,并且可能缺乏基于机器学习的经训练系统的灵活性。例如,经训练的系统可以更好地配备来处理复杂的导航状态,并且可以更好地确定出租车是在停车还是停下车来接/送乘客;确定行人是否有意图穿过主车辆前的街道;防御性地平衡其他驾驶员的意外行为;在涉及目标车辆和/或行人的密集交通中进行协商;决定何时暂停(suspend)某些导航规则或增强(augment)其他规则;预期未感测到但预期到的情况(例如,行人是否会从汽车或障碍物后面冒出);等等。基于强化学习的经训练系统也可以更好地配备来解决连续且高维度的状态空间以及连续的动作空间。
使用强化学习对系统进行训练可以涉及学习驾驶策略,以便从感测到的状态映射到导航动作。驾驶策略可以是函数π:S→A,其中S是一组状态,而
Figure BDA0003248288200000451
是动作空间(例如,期望的速率、加速度、横摆命令等)。状态空间S=Ss×Sp,其中Ss是感测状态,且Sp是关于通过该策略所保存的状态的附加信息。以离散的时间间隔工作,在时间t处,可以观察当前状态st∈S,并且可以应用该策略来获得期望的动作at=π(st)。
可以通过暴露于各种导航状态,使该系统应用该策略,提供奖励(基于被设计为针对期望导航行为予以奖励的奖励函数),来训练该系统。基于奖励反馈,该系统可以“学习”该策略,并且变得在产生期望导航动作方面是经训练的。例如,学习系统可以观察当前状态st∈S,并基于策略π:S→D(1)来决定动作at∈A。基于所决定的动作(以及该动作的实施),环境移至下一个状态st+1∈S,以供该学习系统进行观察。对于响应于观察到的状态而产生的每个动作,对该学习系统的反馈是奖励信号r1,r2,…。
强化学习(RL)的目标是找到策略π。通常假设:在时间t处,存在奖励函数rt,其测量处于状态st并采取动作at的瞬时质量。然而,在时间t处采取动作at影响了环境,并因此影响了未来状态的值。结果,当决定采取何种动作时,不仅应考虑当前的奖励,还应考虑未来的奖励。在某些情况下,当系统确定如果现在采用较低奖励选项则在将来可能实现更高的奖励时,则即使某一动作与低于另一个可用选项的奖励相关联,该系统也应采取该动作。为了对此形式化,观察到策略π以及初始状态s归纳出在RT上的分布,其中如果作用者在状态s0=s处开始并从那里开始遵循策略π,则向量(r1,…,rT)的概率为观察到奖励r1,…,rt的概率。初始状态s的值可定义为:
Figure BDA0003248288200000461
代替将时间范围限定为T,可以对未来奖励打折扣(discount),以对于一些固定的γ∈(0,1),定义:
Figure BDA0003248288200000462
在任何情况下,最佳策略是下式的解:
Figure BDA0003248288200000463
其中,期望(expectation)在初始状态s之上。
有若干种可能用于训练驾驶策略系统的方法。例如,可以使用模仿(imitation)方法(例如,行为克隆),在该方法中,系统从状态/动作对中学习,其中动作是好的作用者(例如,人类)响应于特定的观察到的状态而会选择的那些动作。假设对人类驾驶员进行观察。通过这个观察,许多形式为(st,at)的示例(其中st是状态,而at是人类驾驶员的动作)可以被获得、观察并且用作训练驾驶策略系统的基础。例如,监督式学习可以用来学习策略π,使得π(st)≈at。这种方法有许多潜在的优点。首先,不要求定义奖励函数。其次,该学习是受监督的并且是离线发生的(不需要在学习过程中应用作用者)。这种方法的缺点在于:不同的人类驾驶员、甚至是相同的人类驾驶员在其策略选择方面并不是确定性的。因此,对于||π(st)-at||非常小的函数的学习通常是不可行的。而且,随着时间的推移,即使是小的误差也可能会累积而产生较大的误差。
另一种可以采用的技术是基于策略的学习。此处,可以以参数形式来表达策略,并且使用合适的优化技术(例如,随机梯度下降)直接对策略进行优化。该方法是直接对以
Figure BDA0003248288200000464
给出的问题进行求解。当然还有很多方法可以对这个问题求解。这种方法的一个优点在于:其直接求解了问题,因此往往导致良好的实际结果。一个潜在的缺点是:其往往需要“在线策略”训练,即π的学习是迭代过程,其中在迭代j时,具有非完美的策略πj,并为了构造下一个策略πj,必须在基于πj进行动作的同时与环境进行交互。
还可以通过基于值的学习(学习Q或V函数)来训练系统。假设,良好近似能够学习到最佳值函数V*。可以构建最佳策略(例如,依靠贝尔曼方程(Bellman equation))。有些版本的基于值的学习可以离线实施(称为“离线策略”训练)。基于值的方法的一些缺点可能是由于其强烈依赖于马尔可夫假设(Markovian assumptions)以及需要对复杂函数的近似(相比直接对策略近似,对值函数的近似可能更难)。
另一种技术可以包括基于模型的学习和规划(学习状态转换的概率并对寻找最优V的优化问题求解)。这些技术的组合也可以用来训练学习系统。在这种方法中,可以学习过程的动态性,即,采取(st,at)并在下一个状态st+1上产生分布的函数。一旦学习了这个函数,可以求解最佳问题,以找到其值为最佳的策略π。这就是所谓的“规划”。这种方法的一个优点可能在于:学习部分受到监督,并且可以通过观察三元组(st,at,st+1)而被离线应用。类似于“模仿”方法,这种方法的一个缺点可能在于:学习过程中小的误差可能积累并产生未适当执行的策略。
用于训练驾驶策略模块的另一种方法可以包括将驾驶策略函数分解为语义上有意义的分量。这允许手动实施该策略的某些部分,这可以确保策略的安全性;并且可以使用强化学习技术来实施该策略的其他部分,这可以适应性地实现于许多情景、防御性/侵略性行为之间的类似于人的平衡、以及与其他驾驶员的类似于人的协商。从技术角度而言,强化学习方法可以结合几种方法,并提供易于操作的训练程序,其中大部分训练可以使用记录的数据或自行构建的模拟器来执行。
在一些实施例中,驾驶策略模块的训练可以依赖于“选项”机制。为了说明,考虑双车道高速公路的驾驶策略的简单情景。在直接RL方法中,策略π将状态映射到
Figure BDA0003248288200000471
中,其中π(s)的第一个分量是期望的加速度命令,且π(s)的第二个分量是横摆率。在经修改的方法中,可以构建以下策略:
自动巡航控制(ACC)策略,oACC:S→A:该策略总是输出为0的横摆率,并且仅改变速率以实现平稳且无事故的驾驶。
ACC+左策略,oL:S→A:该策略的纵向命令与ACC命令相同。横摆率是将车辆朝左车道的中间居中、同时确保安全的横向移动(例如,如果在左侧有车,则不向左移动)的直接实施方式。
ACC+右策略,oR:S→A:与oL相同,但是车辆可以朝右车道的中间居中。
这些策略可以被称为“选项”。依靠这些“选项”,可以学习选择了选项的策略πo:S→O,其中O是一组可用选项。在一个情况下,O={oACC,oL,oR}。选项选择器策略πo通过对每个s设置
Figure BDA0003248288200000481
来定义实际的策略π:S→A。
实践中,策略函数可以被分解为选项图。选项图可以表示被组织为有向非循环图(DAG)的分层决策集。存在一个称为图的根(root)节点的特殊节点。该节点不具有进入(incoming)节点。决策过程从根节点开始遍历整个图,直到其到达“叶”节点,该叶节点是指没有外出(outgoing)决策线的节点。在遇到叶节点时,驾驶策略可以输出与期望导航动作相关联的加速和转向命令,该期望导航动作与叶节点相关联。
内部节点可以引起策略的实现,该策略在其可用选项中选择子代(child)。内部节点的可用子代的集合包括经由决策线与特定内部节点相关联的所有节点。
可以通过使节点能够调节其在选项图的层级中的位置而获得决策制定系统的灵活性。例如,可以允许任何节点声明自己为“关键(critical)”。每个节点可以实施“是关键的(is critical)”的函数,如果节点处于其策略实施的关键部分,则该函数输出“真”。例如,负责超车的节点可以在操纵中途声明自己为关键。这可对节点u的可用子代的集合施加约束,该节点u的可用子代可以包括作为节点u的子代的、并且针对其存在从v到叶节点的经过所有被指定为关键的节点的路径的所有节点v。一方面,这种方法可以允许在每个时间步在图上声明期望路径,同时另一方面,可以保留策略的稳定性,特别是在策略的关键部分在被实施之时。
通过定义选项图,学习驾驶策略π:S→A的问题可以被分解成针对图中的每个节点定义策略的问题,其中内部节点处的策略应当从可用的子代节点之中进行选择。对于一些节点,相应的策略可以手动实现(例如,通过如果-则(if-then)类型算法来指定响应于观察到的状态的一组动作),而对于其他策略可以使用通过强化学习构建的经训练的系统来实施。手动或经训练/学习的方法之间的选择可以取决于与任务相关联的安全方面以及取决于其相对简单性。可以以使得一些节点直接实施、而其他节点可以依赖于经训练的模型的方式,来构建选项图。这种方法可以确保系统的安全运行。
如上所述,对驾驶策略的输入是“感测到的状态”,其概括了例如从可用的传感器获得的环境地图。驾驶策略的输出是一组期望(可选地连同一组硬性约束),该组期望将轨迹定义为对优化问题的解。
如上所述,选项图表示被组织为DAG的分层决策集。存在称为图的“根”的特殊节点。根节点是没有进入边(例如,决策线)的唯一节点。决策过程从根节点开始遍历该图,直到其到达“叶”节点,所述叶节点即没有外出边的节点。每个内部节点应当实施在其可用的子代之中挑选一个子代的策略。每个叶节点应实施基于从根到叶的整个路径而定义了一组期望(例如,主车辆的一组导航目标)的策略。基于感测到的状态而被直接定义的该组期望连同一组硬性约束一起建立了优化问题,该优化问题的解是车辆的轨迹。可以采用硬性约束来进一步提高系统的安全性,并且该期望可以被用于提供系统的驾驶舒适性和类似于人的驾驶行为。作为优化问题的解而提供的轨迹进而定义了应该提供给转向、制动和/或引擎致动器的命令,以便完成该轨迹。
各种语义含义可以被分配给主车辆的环境中的目标车辆。例如,在一些实施例中,语义含义可以包括以下指定中的任何指定:1)不相关:指示场景中感测到的车辆当前是不相关的;2)下一车道:指示感测到的车辆在相邻车道中并且相对于该车辆应当保持适当的偏移(精准的偏移可以在优化问题中计算,该优化问题在给定期望和硬性约束下构建轨迹,并且该精准的偏移可以潜在地是取决于车辆的——选项图的保持叶设定目标车辆的语义类型,其定义相对于目标车辆的期望);3)让路:主车辆将尝试通过例如降低速度(特别是在主车辆确定目标车辆可能切入主车辆的车道的情况下)让路给感测到的目标车辆;4)占道(take way):主车辆将尝试通过例如增加速度来占用路权;5)跟随:主车辆期望跟随在该目标车辆后保持平稳驾驶;6)左/右超车:这意味着主车辆想要发起到左或右车道的变道。
节点的另一示例是选择间隙节点。该节点可以负责选择主车辆期望进入的特定目标车道中的两个目标车辆之间的间隙。通过选择形式为IDj的节点,对于j的某个值,主车辆到达为轨迹优化问题指定了期望的叶——例如,主车辆希望进行操纵以便到达所选择的间隙。这种操纵可能涉及首先在当前车道加速/制动,然后在适当的时间前往目标车道以进入所选择的间隙。如果选择间隙节点不能找到适当的间隙,则其移动到中止节点,该中止节点定义了移动回到当前车道的中心并取消超车的期望。
如上所述,选项图的节点可以将其自己声明为“关键”,这可以确保所选择的选项通过关键节点。形式上,每个节点可以实施IsCritical函数。在选项图上从根到叶执行正向传递,并且对轨迹规划器的优化问题求解之后,可以从叶返回到根执行反向传递。沿着这个反向传递,可以调用该传递中所有节点的IsCritical函数,并且可以保存所有关键节点的列表。在对应于下一时间帧的正向路径中,可能需要驾驶策略选择从根节点到叶的经过所有关键节点的路径。
例如,在发起超车动作并且驾驶策略到达对应于IDk的叶的情况下,例如当主车辆处于超车操纵的中途时,选择保持节点将会是不期望的。为了避免这种跳动,IDj节点可以将其自己指定为关键。在操纵期间,可以监测轨迹规划器的成功,并且如果超车操纵按预期进行,则函数IsCritical将返回“真”值。此方法可以确保在下一时间帧内,超车操纵将继续(而不是在完成最初选择的操纵之前跳到另一个潜在不一致的操纵)。另一方面,如果对操纵的监测指示所选择的操纵没有按预期进行,或者如果操纵变得不必要或不可能,则IsCritical函数可以返回“假”值。这可以允许选择间隙节点在下一时间帧中选择不同的间隙,或完全中止超车操纵。此方法一方面可以允许在每个时间步在选项图上声明期望的路径,同时在另一方面,可以在执行的关键部分时帮助提高策略的稳定性。
硬性约束可以与导航期望不同,这将在下面更详细地讨论。例如,硬性约束可以通过对规划的导航动作应用附加的过滤层来确保安全驾驶。可以根据感测到的状态来确定所涉及的硬性约束,所述硬性约束可以被手动地编程和定义,而不是通过使用基于强化学习建立的经训练的系统。然而,在一些实施例中,经训练的系统可以学习要应用和遵循的可适用的硬性约束。这种方法可以促使驾驶策略模块到达已经符合可适用的硬性约束的所选动作,这可以减少或消除可能需要之后修改才符合可适用的硬性约束的所选动作。尽管如此,作为冗余安全措施,即使在驾驶策略已经被训练以应对预定硬性约束的情况下,也可以对驾驶策略的输出应用硬性约束。
存在许多潜在的硬性约束的示例。例如,可以结合道路边缘上的护栏来定义硬性约束。在任何情况下,均不允许主车辆通过护栏。这种规则对主车辆的轨迹产生了硬性横向约束。硬性约束的另一个示例可以包括道路颠簸(例如,速率控制颠簸),其可以在颠簸之前以及正穿过颠簸时引起对驾驶速度的硬性约束。硬性约束可以被认为是安全关键的,因此可以手动定义,而不是仅仅依靠在训练期间学习约束的经训练的系统。
与硬性约束相比,期望的目标可以是实现或达到舒适的驾驶。如以上所讨论的,期望的示例可以包括将主车辆置于车道内的与主车辆车道的中心对应的横向位置处的目标。另一个期望可能包括适合进入的间隙的ID。注意,主车辆不需要精准地处于车道中心,而是,尽可能靠近车道中心的期望可以确保,即使在偏离车道中心的情况下,主车辆也倾向于迁移到车道的中心。期望可以不是安全关键的。在一些实施例中,期望可能需要与其他驾驶员和行人协商。构建期望的一种方法可以依赖于选项图,并且在图的至少一些节点中实现的策略可以基于强化学习。
对于实现为基于学习而被训练的节点的选项图的节点,训练过程可以包括将问题分解成监督式学习阶段和强化学习阶段。在监督式学习阶段,可以学习从(st,at)到
Figure BDA0003248288200000511
的可微(differentiable)映射,使得
Figure BDA0003248288200000512
这可以类似于“基于模型”的强化学习。然而,在网络的前向环路中,可以用st+1的实际值来代替
Figure BDA0003248288200000513
从而消除了误差累积的问题。
Figure BDA0003248288200000514
预测的作用是将消息从未来传播回过去的动作。从这个意义上讲,该算法可以是“基于模型”的强化学习与“基于策略的学习”的组合。
在某些情景下可以提供的重要元素是从未来损失/奖励回到对动作的决策的可微路径。通过选项图结构,涉及安全性约束的选项的实现通常是不可微的。为了克服这个问题,对经学习的策略节点中的子代的选择可以是随机的。也就是说,节点可以输出概率向量p,其分配用于选择特定节点的每个子代的概率。假设节点有k个子代,并令a(1),…,a(k)为从每个子代到叶的路径的动作。所得到的预测动作因此为
Figure BDA0003248288200000515
这可能导致从该动作到p的可微路径。在实践中,动作a可以被选择为对于i~p的a(i),并且a和
Figure BDA0003248288200000516
之间的差可以被称为加性噪声。
对于给定st,at
Figure BDA0003248288200000517
的训练,可以将监督式学习与真实数据一起使用。对于节点策略的训练,可以使用模拟器。之后,可以使用真实数据完成策略的微调。两个概念可以使模拟更加真实。首先,使用模仿,可以使用“行为克隆”范式,使用大型现实世界数据集来构建初始策略。在某些情况下,所得到的作用者可以是合适的。在其他情况下,所得到的作用者至少为道路上的其他作用者形成了非常好的初始策略。其次,使用自我发挥(self-play),我们自己的策略可被用来加强训练。例如,给定了可以是有经验的其他作用者(汽车/行人)的初步实施,则可以基于模拟器对策略进行训练。一些其他作用者可被新的策略取代,并且可以重复该过程。因此,该策略能够继续改善,因为其应该对更多种类的具有不同复杂等级的其他作用者做出响应。
此外,在一些实施例中,系统可以实施多作用者的方法。例如,该系统可以考虑来自各种源的数据和/或从多个角度捕捉的图像。此外,一些公开的实施例可以提供能量的经济性,因为可以考虑不直接涉及主车辆但对主车辆可能产生影响的事件的预期,或者甚至对可能导致涉及其他车辆的不可预测情况的事件的预期可以是考虑因素(例如,雷达可能会“看穿(see through)”前方车辆以及不可避免的预期、或者甚至将影响主车辆的事件的高可能性)。
全局精准度和局部精准度
在自主驾驶的上下文中,可以定义损失函数以便充分定义来自相机、传感器等的测量的精准度(并因此对其施加条件)。因此,场景可以被定义为对象(例如车辆、行人、车道标记等)的有限集合S。S包含可以主车辆,其被表示为h。在这种情况下,定位可以包括映射p:S S→R3,其中p(h)=0=(0,0,0)。因此,p(a)的第一坐标可以包括对象a的横向位置,第二坐标可以包括对象a的纵向位置,并且最后一个坐标可以包括对象a的高度。
因此,损失函数可以在关于集合S中的两个对象a和b的两个定位p和
Figure BDA0003248288200000521
之间被定义。损失函数可以定义为:
Figure BDA0003248288200000522
对损失函数施加约束通常是不现实的。例如,如果对象a是在定位p(a)=(α,z,0)处的车辆,而对象b是在定位p(b)=(-α,z,0)处的车道标记,则a和b的第二定位分别在
Figure BDA0003248288200000523
Figure BDA0003248288200000524
将导致损失为β。因此,如果对象a和对象b在150米的纵向位置处,并且损失β为0.2(即,20%),则不可能施加20厘米的绝对损失约束,因为这会使大多数损失是不可接受的。
因此,相对损失函数可以被定义为如下:
Figure BDA0003248288200000525
其中v为(0,1]。
通过对损失函数进行归一化,可以施加现实损失约束,该现实损失约束考虑了对于更远的对象的更大的损失。然而,有两种方式可以使用经归一化的损失函数来定义精准度。一个是自我精准度并且关于主车辆h进行测量:
Figure BDA0003248288200000531
其中∈是损失约束。
然而,该要求取决于在车辆的视场中检测到的对象z的范围,因为如果
Figure BDA0003248288200000532
p(a)=(α,z,0)和
Figure BDA0003248288200000533
Figure BDA0003248288200000534
为避免依赖于范围z,可以使用另一种精准度定义,该精准度定义是成对(pairwise)的:
Figure BDA0003248288200000535
其中∈是损失约束。
对于p(a)=(α,z,0),p(b)=(-α,z,0),
Figure BDA0003248288200000536
Figure BDA0003248288200000537
成对精准度简化为:
Figure BDA0003248288200000538
因此,
Figure BDA0003248288200000539
其独立于z。
此外,有些情况具有自我精准度而没有成对精准度。特别是,如果
Figure BDA00032482882000005310
Figure BDA00032482882000005311
使得β=∈z。因此,
Figure BDA00032482882000005312
意味着z>2导致了成对精准度的损失。
在一个特定示例中,如果∈=0.2且z=100米,则β=2米,这是每100米有2米的合理损失约束。然而,这会导致
Figure BDA00032482882000005313
其意味着这种情况与0.02-成对精准度相差50倍。为获得成对精准度,可以设置z=1米且β=0.02,导致在100米范围内的2厘米的误差。然而,考虑到大多数现存的传感器,这是不现实的。另一方面,成对的准确性可以在不考虑自我精准度的情况下被现实地加强。为了加强这种精准度,可以使用参考坐标系,其中场景的相关对象(例如,车辆、行人、车道等)同时驻留在该参考坐标系中。然而,这可以涉及相机(而并非激光雷达、GPS或其他传感器)的使用。
因此,在一些实施例中,主车辆导航系统可以使用相机的二维(2-D)坐标系,而不是车辆的三维(3-D)坐标系。然后,该系统可以将地图(例如,稀疏地图的地标和样条)转换到2-D坐标系上,并在2-D坐标系中执行导航。此外,该系统可以通过将在2-D坐标系中做出的确定转换到3-D坐标系,以在3-D坐标系中执行导航。这加强了成对精准度,而不是自我精准度,从而提供了更高的安全性和可靠性。此外,这种技术提高了系统的效率,因为将地图转换到2-D比将图像转换到3-D更快,并且因为在2-D中执行预测和导航比在3-D中执行预测和导航更快。
在一个示例实施例中,导航系统可以确定主车辆的位置。例如,该位置可以在地理区域内。导航系统还可以访问包括该地理区域的地图。例如,导航系统可以访问已存储的地图,或者从一个或多个远程服务器访问包括该地理区域的地图。在一些实施例中,地图可以包括基于该地理区域的稀疏地图或道路指南(如下所描述的)或其部分。如上所说明的,稀疏地图可以包括表示预定行驶路径和/或至少一个地标的至少一个样条。因此,该至少一个特征可以包括至少一个地标。
导航系统可以基于主车辆的位置,从地图中提取至少一个特征。例如,导航系统可以确定主车辆的视场,并基于该位置提取预期会处于该视场中的至少一个特征。在一些实施例中,至少一个特征可以包括车道标记、道路边缘或地图中包括的其他地标。例如,道路边缘可以包括车道标记、路缘、护栏或泽西(Jersey)墙中的至少一个。
导航系统可以从至少一个图像传感器接收表示主车辆的环境的至少一个图像,并将至少一个特征的坐标从地图的坐标系转换到至少一个图像传感器的坐标系。例如,地图的坐标系可以包括三维坐标系(例如,基于GPS的全球坐标系、地理区域中包括的道路路段的局部坐标系等),并且至少一个图像传感器的坐标系可以包括二维坐标系,该二维坐标系基于至少一个图像传感器的视场。在一些实施例中,可以将至少一个特征从地图的三维坐标系变换到以主车辆为中心的三维坐标系(例如,使用该位置),然后投影到至少一个图像传感器的二维平面上(例如,使用主车辆和视场之间的已知关系)。
导航系统可以分析至少一个图像,以识别主车辆的环境中的至少一个特征,并基于经转换的坐标和至少一个图像中已识别的至少一个特征的坐标之间的比较,使得主车辆进行至少一个导航改变。例如,导航系统可以基于经转换的坐标来确定该至少一个特征在至少一个图像传感器的二维坐标系中的预期位置,并且在预期位置处和/或附近搜索来自至少一个图像传感器的一个或多个图像。可以绝对地确定接近度,例如,在预期位置的10个像素内、20个像素内等;或者相对地确定接近度,例如,在至少一个特征的预期尺寸(例如长度或宽度)的10%内等。
在一些实施例中,导航改变中的至少一个可以包括使主车辆减速、使主车辆加速或激活主车辆的转向机构。例如,主车辆可以基于至少一个特征在至少一个图像中的已识别的位置、以及基于经转换的坐标的预期位置之间的差异,来进行减速、加速和/或转向。
在一些实施例中,可以在至少一个图像传感器的坐标系内确定至少一个导航改变。例如,可以基于至少一个特征在至少一个图像中的已识别的位置与基于经转换的坐标的预期位置之间的差异,来确定一向量。该向量可以表示至少一个导航改变,使得至少一个特征将出现在预期的地方。在这样的实施例中,导航系统可以将至少一个导航改变转换到地图的坐标系。例如,导航系统可以基于至少一个特征在至少一个图像中的深度和/或来自地图的至少一个特征的预期深度,将差向量投影到三维坐标系(例如,全局坐标系或以主车辆为中心的坐标系)中。
带有舒适性约束和安全性约束的融合
在一些实施例中,主车辆可以从多个源接收数据,诸如与相机、激光雷达、雷达等耦合的地图数据。主车辆的导航系统可以使用不同的方案来融合来自这些各种源的数据。例如,在统一(unification)方案中,如果至少一个源检测到目标对象,导航系统可以验证该目标对象(即,确认潜在对象实际上应该被视为检测到的对象),这是快速但低精准度的检测技术。在交叉(intersection)方案中,如果多个源检测到目标对象,导航系统可以批准该目标对象;并且在协同(synergy)方案中,如果使用来自多个源的数据的组合检测到目标对象,导航系统可以批准该目标对象。交叉和协同方案比统一方案慢,但更精准。因此,通过选择性地使用交叉和协同方案以及统一方案,可以在不牺牲安全性的情况下优化系统反应的精准度。这解决了如何在不牺牲安全性的情况下精准解释来自自主车辆的传感器数据的技术问题。
图12是存储器140和/或存储器150的示例性功能框图,存储器140和/或存储器150可以被存储/编程为带有用于执行与所公开的实施例一致的一个或多个操作的指令。尽管下文涉及存储器140,但是本领域技术人员将认识到,指令可以存储在存储器140和/或存储器150中。
如图12所示,存储器140可以存储对象识别模块1202、约束模块1204、验证模块1206和导航改变模块1208。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行存储在包括在存储器140中的模块1202、模块1204、模块1206和模块1208中的任何模块的指令。本领域的技术人员将理解,在下面的讨论中,对处理单元110的引用可以单独地或共同地指应用处理器180和图像处理器190。因此,以下任何过程的步骤可以由一个或多个处理设备来执行。
在一个实施例中,对象识别模块1202可以存储指令(例如计算机视觉软件),当被处理单元110执行时,该指令接收来自与主车辆相关联的第一数据源的第一输出、以及来自与主车辆相关联的第二数据源的第二输出。第一数据源和第二数据源中的至少一个包括在主车辆上车载的传感器。例如,对象识别模块1202可以接收来自在主车辆上的车载第一传感器的第一输出和来自主车辆上车载的第二传感器的第二输出。因此,第一数据源可以包括在主车辆上车载的相机、激光雷达或雷达中的至少一个,而第二数据源可以包括在主车辆上车载的不同于第一数据源的相机、激光雷达或雷达中的至少一个。
可替代地,对象识别模块1202可以接收来自主车辆上车载的第一传感器的第一输出、以及来自由处理单元110访问的地图的第二输出。因此,第一数据源可以包括在主车辆上车载的相机、激光雷达或雷达中的至少一个,而第二数据源可以包括地图数据。
在一个实施例中,对象识别模块1202可以存储指令(例如,计算机视觉软件),当被处理单元110执行时,该指令识别目标对象在第一输出中的表示。例如,对象识别模块1202可以执行以上描述的过程500B的全部或部分,以便识别目标对象的表示。
在一个示例中,对象识别模块1202可以通过扫描第一输出,将第一输出与一个或多个预定模式进行比较,并在第一输出内识别可能包含感兴趣对象(例如,车辆、行人、静止对象、车道标记等)的可能位置,来确定表示目标对象(例如,车辆、行人、静止对象、车道标记等)的候选对象集。预定模式可以匹配来自第一传感器的输出的类型。例如,如果第一传感器是相机,则预定模式可以是视觉的,而如果第一传感器是麦克风,则预定模式可以是听觉的。在一些实施例中,预定模式可以被配置成实现高“误命中”率和低“未命中”率。例如,对象识别模块1202可以使用与预定模式的低相似度阈值,来将候选对象识别为可能的目标对象,以便降低未命中(例如,未识别)表示目标对象的候选对象的可能性。
对象识别模块1202还可以基于分类标准,对候选对象集进行过滤,以排除某些候选对象(例如,不相关或不太相关的对象)。这种标准可以从与存储在数据库中的对象类型相关联的各种属性中导出,该数据库是例如存储在存储器140(未示出)中和/或从一个或多个远程服务器访问的数据库。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于主车辆)、速度(例如,相对于主车辆)等。因此,对象识别模块1202可以使用一个或多个标准集来拒绝候选对象集中的错误候选。
在第一输出包括随时间推移的多个帧的实施例中,对象识别模块1202还可以分析第一输出的多个帧,以确定候选对象集中的对象是否表示目标对象。例如,对象识别模块1202可以跨连续帧跟踪检测到的候选对象,并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于主车辆的位置、相对于主车辆的速度等)。附加地或替代地,对象识别模块1202可以估计检测到的对象的参数,并将对象的逐帧位置数据与预测位置进行比较。使用“帧”并不意味着第一输出必须是图像,尽管它可以是图像。如本文所使用的,“帧”指的是从第一传感器、第二传感器或任何附加传感器接收的跨时间的测量的任何离散序列。
对象识别模块1202还可以针对检测到的对象而构建测量集。这种测量可以包括例如与检测到的对象相关联的位置、速度和加速度值(例如,相对于主车辆)。在一些实施例中,目标对象模块2004可以基于使用诸如卡尔曼滤波器或线性二次估计(LQE)的一系列基于时间的观测的估计技术,和/或基于不同对象类型(例如,汽车、卡车、行人、自行车、路标等)的可用建模数据,来构建这些测量。卡尔曼滤波器可以基于对象的规模的测量,其中规模测量与碰撞时间(例如,主车辆到达对象的时间量)成比例。
在第一输出包括随时间推移的多个帧的实施例中,对象识别模块1202可以对一个或多个图像执行光流分析,以降低检测到“误命中”和未命中表示车辆或行人的候选对象的可能性。光流分析可以指例如在与其他车辆和行人相关联的一个或多个图像中分析相关于车辆200的运动模式,并且该运动模式区别于路面运动。处理单元110可以通过观察候选对象跨多个图像帧(其在不同时间被捕获)的不同位置,来计算这些候选对象的运动。处理单元110可以使用位置和时间值作为用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供另一种检测车辆200附近的车辆和行人的方法。处理单元110可以结合步骤540-546执行光流分析,以提供用于检测车辆和行人的冗余并增加系统100的可靠性。
附加地或替代地,对象识别模块1202可以执行以上描述的过程500C的全部或部分,以便识别目标对象的表示。在将对象识别模块1202实现为针对经训练的系统的选定动作的附加处理层的实施例中,对象识别模块1202可以从经训练的系统接收目标对象的标识。相应的,对象识别模块1202可以扫描第一输出;将第一输出与下述模式进行比较,即:与从经训练的系统接收到的目标对象相匹配的模式;并且在第一输出内识别目标对象的位置。例如,对象识别模块1202可以从经训练的网络接收另一车辆的标识;提取下述模式,即,被存储在数据库中的、并且被索引为车辆的模式的、并且还匹配第一输出的类型(例如视觉、听觉、热的等)的模式,该数据库例如是存储在存储器140中和/或从一个或多个远程服务器访问的数据库(未示出);并通过将第一输出与所提取的模式进行比较,来在第一输出内识别另一车辆的位置。
替代地,在将对象识别模块1202实现为针对经训练的系统的选定动作的附加处理层的实施例中,对象识别模块1202可以从经训练的系统接收目标对象的标识以及目标对象的位置。如果接收到的位置在第一输出中,则对象识别模块1202可以在接收到的位置处和/或附近执行分类(例如,使用以上描述的比较),以在第一输出中识别该目标对象。如果接收到的位置在另一个输出中(例如,来自另一个传感器),对象识别模块1202可以:提取下述模式,即,被存储在数据库中的、并且被索引为匹配目标对象(例如,车辆、行人、静止对象等)以及还匹配第一输出的类型(例如,视觉、听觉、热等)的对象类型的模式的模式,该数据库是例如存储在存储器140中和/或从一个或多个远程服务器访问的数据库(未示出);并且将第一输出与所提取的模式进行比较,来在第一输出内识别目标对象的位置。附加地,或作为该比较的替代,对象识别模块1202可以构建包括将经训练的系统所使用的输出上的位置映射到第一输出上的位置的信息的图谱(atlas)。基于此,对象识别模块1202可以基于目标对象在经训练的系统所使用的输出中的位置,来确定该目标对象的表示在第一输出中预期会处于的位置;并执行分类(例如,使用如上所描述的比较)以在第一输出内识别目标对象的位置。
在一个实施例中,导航约束模块1204可以存储可由处理单元110执行的软件,以确定目标对象的特性是否触发至少一个导航约束。目标物体的特性可能触发硬(安全性)约束或软(舒适性)约束。例如,目标对象的距离可以触发基于最小距离或最大距离(例如,到其他车辆、到行人、到道路边缘、到车道标记等的距离)的硬约束和/或基于优选距离的软约束。在另一示例中,目标对象的大小可以触发基于最小大小或最大大小(例如,障碍物的高度、间隙的高度等)的硬约束和/或基于优选大小的软约束。在又一示例中,目标对象的位置可以触发基于受限区域的硬约束(例如,在主车辆的当前行驶车道内、在主车辆的预计轨迹的特定阈值距离内等)和/或基于优选区域的软约束(例如,在当前行驶车道附近的车道或人行道上、在预计轨迹的范围内等)。
在一个实施例中,如果目标对象的特性没有触发至少一个导航约束,则验证模块1206可以基于第一输出和第二输出的组合来验证目标对象的表示的标识。例如,该组合可以包括交叉方案或协同方案。交叉方案可以包括在第一输出和第二输出两者中识别目标对象以进行验证的要求。例如,可能需要在包括第一数据源的雷达、激光雷达或相机以及包括第二数据源的雷达、激光雷达或相机中识别目标对象,以便对该目标对象进行验证。也就是说,如果目标对象被多个数据源检测到,则可以认为该目标对象是被批准的。协同方案可以包括第一数据源和第二数据源的组合,以便验证目标对象。例如,协同方案可以涉及基于对从多个数据源获得的部分数据进行组合,来识别或批准目标对象。协同方案的一个示例可以包括对目标对象的范围的相机估计,该范围是根据道路标高模型(例如,基于另一相机)或根据激光雷达而测量的。另一个示例可以包括用激光雷达对目标对象的检测,并使用基于来自一个或多个相机的光流的道路标高模型对目标对象的测量。又一示例可以包括使用相机对车道的检测(例如,目标对象包括道路边缘或车道标记),然后使用地图数据确认该检测。又一示例可以包括使用一个或多个相机对目标对象的检测,以及使用激光雷达来确定主车辆的环境中的自由空间。
在另一方面,如果目标对象的特性触发至少一个导航约束,则验证模块1206可以基于第一输出来验证目标对象的表示的标识。例如,可以使用统一方案,使得仅第一输出被用于批准或验证目标对象。
导航改变模块1208可以使用对象识别模块1202和/或验证模块1206的输出,来实现用于导航调整的决策树。导航调整可以基于从第一传感器、第二传感器、任何其他传感器、地图数据导出的数据、以及从第一输出、第二输出和任何其他输出检测到的一个或多个对象。导航改变模块1208还可以基于来自车辆200的诸如车辆200的节流系统220、制动系统230和转向系统240的其他系统的输入,来确定期望的导航响应。附加地或替代地,导航改变模块1208可以从其他存储器模块(未示出)和/或从如上所描述的经训练的系统接收一个或多个导航调整。因此,可以将导航改变模块1208实现为针对经训练的系统的选定动作的附加处理层。
因此,响应于上述验证,导航改变模块1208可以引起主车辆的至少一个导航改变。为了引起至少一个导航改变,导航改变模块1208可以将电子信号传输给车辆200的节流系统220、制动系统230和转向系统240,以通过例如转动车辆200的方向盘来实现预定角度的旋转从而触发期望的导航响应。在一些实施例中,至少一个导航改变可以包括响应于验证的、对主车辆的一个或多个导航致动器的前述任何调整。
此外,本文所公开的任何模块(例如,模块1204、模块1204、模块1206和模块1208)可以实现与经训练的系统(例如,神经网络或深度神经网络)或未经训练的系统相关联的技术。附加地或替代地,本文所公开的任何模块(例如,模块1204、模块1204、模块1206和模块1208)可以实现作为针对经训练的系统的选定动作的附加处理层的技术。
图13A和图13B提供了示例安全性约束和舒适性约束的图解描述。如图13A所示,主车辆1300可以将主车辆1300前方的其他车辆(例如,车辆1301)、主车辆1300后方的其他车辆(例如,车辆1303)以及在除主车辆1300正在行驶的车道之外的车道中的其他车辆(例如,车辆1307)检测为目标对象。
这种检测到的对象的特性可以触发导航约束。例如,主车辆1300和其他车辆1301之间的距离1309、主车辆1300和其他车辆1307之间的距离1311和/或主车辆1300和其他车辆1303之间的距离1313可以触发导航约束。尽管在图13A和图13B中未示出,但是与车辆1301、车辆1303和车辆1305中的一个或多个相关联的其他特性可以包括:主车辆1300和车辆1301、车辆1303和车辆1305中的一个或多个之间的相对速度、主车辆与车辆1301、车辆1303和车辆1305中的一个或多个的碰撞时间(times-of-collision)等。
在上述示例中,触发的导航约束可以与以下相关联:到车辆1301、车辆1303和车辆1305中的一个或多个的距离(例如,最小距离)、主车辆1300与车辆1301、车辆1303和车辆1305中的一个或多个之间的相对速度(例如,最大相对速度,例如,接近零)、与车辆1301、车辆1303和车辆1305中的一个或多个的碰撞时间(例如,最小碰撞时间,例如,接近无穷大)等。因此,这些特性可以触发硬(或安全性)约束。替代地,这些特性可以不触发导航约束。例如,一个或多个软约束(或“期望”)可以与这些特性相关联。
图13C和图13D提供了与所公开的实施例一致的进一步的示例安全性约束和舒适性约束的图解描述。如图13C和图13D所示,主车辆1300可以检测主车辆1300正在穿行的道路上的静止对象1315作为目标物体。附加地或替代地,主车辆1300可以检测车标记作为目标对象。
在图13C和图13D的示例中,主车辆1300与静止对象1315之间的距离1317可以是触发导航约束的特性。附加地或替代地,主车辆1300和车道标记之间的距离1319可以是触发导航约束的特性。尽管在图13C和图13D中未示出,但是与静止对象1315或车道标记相关联的其他特性可以包括:主车辆1300与静止对象1315或车道标记之间的相对速度、主车辆与静止对象1315或车道标记的碰撞时间等。
在上述示例中,导航约束可以与到静止对象1315或车道标记的距离(例如,最小距离)、主车辆1300与静止对象1315或车道标记之间的相对速度(例如,最大相对速度,例如接近零)、与静止对象1315或车道标记的碰撞时间(例如,最小碰撞时间,例如接近无穷大)等相关联。因此,这些特性可以触发硬(或安全性)约束。替代地,这些特征可以不触发导航约束。例如,一个或多个软约束(或“期望”)可以与这些特性相关联。
图14提供了与公开的实施例一致的、基于安全性和舒适性约束来导航主车辆的示例过程1400的流程图。过程1400可以由例如处理设备110的至少一个处理设备执行。
在步骤1402,处理设备110可以从与主车辆相关联的第一数据源接收第一输出。例如,如以上关于对象识别模块1202所解释的,第一数据源可以包括主车辆上车载的相机、激光雷达或雷达中的至少一个。
在步骤1404,处理设备110可以从与主车辆相关联的第二数据源接收第二输出。例如,如以上关于对象识别模块1202所解释的,第二数据源可以包括由至少一个处理设备访问的地图数据。
在一些实施例中,然后,第一数据源和第二数据源中的至少一个包括主车辆上的车载传感器。在一些实施例中,第一数据源和第二数据源两者可以包括传感器。例如,第一数据源和第二数据源可以包括不同的相机,第一数据源可以包括照相机且第二数据源可以包括雷达,第一数据源可以包括相机且第二数据源可以包括激光雷达等。在其他实施例中,第一数据源和第二数据源中的另一个可以包括例如地图数据的另一数据源。
在步骤1406,处理设备110可以识别目标对象在第一输出中的表示。例如,如上关于对象识别模块1202所描述的,处理设备110可以识别目标对象。
在步骤1408,处理设备110可以确定目标对象的特性是否触发至少一个导航约束。例如,如以上关于导航约束模块1204所解释的,特性可以包括:目标对象的大小、从主车辆到目标对象的距离、或者目标对象在主车辆的环境中的位置。
在步骤1410a,如以上关于验证模块1206所解释的,如果目标对象的特性没有触发至少一个导航约束,则处理设备110可以基于第一输出和第二输出的组合来验证目标对象的表示的标识。
在一些实施例中,基于第一输出和第二输出的组合来验证目标对象的表示的标识可以包括:确定目标对象的表示是否在第一输出和第二输出两者中被识别。例如,如以上关于验证模块1206所解释的,该组合可以包括交叉方案。
附加地或替代地,基于第一输出和第二输出的组合来验证目标对象的表示的标识可以包括:使用被投影到第一输出上的第二输出来确定目标对象的特性。例如,如以上关于验证模块1206所解释的,该组合可以包括协同方案。在一个示例中,如果第二输出包括地图数据,并且第一输出包括主车辆的环境的至少一个图像,则上述投影可以包括使用地图数据在至少一个图像中检测一个或多个道路边缘。在另一示例中,如果第二输出包括来自激光雷达的输出,并且第一输出包括主车辆的环境的至少一个图像,则上述投影可以包括使用第二输出在至少一个图像中检测自由空间。
在步骤1410b,如以上关于验证模块1206所解释的,如果目标对象的特性触发了至少一个导航约束,则处理设备110可以基于第一输出来验证目标对象的表示的标识。
在步骤1412,响应于上述验证,处理设备110可以引起主车辆的至少一个导航改变。例如,如以上关于导航改变模块1208所解释的,至少一个导航改变可以包括减慢主车辆、加速主车辆或激活主车辆的转向机构。
方法1400可以进一步包括附加步骤。例如,方法1400可以包括基于至少一个导航约束是否被触发,来确定至少一个导航改变。例如,如以上关于导航改变模块1208所解释的,如果至少一个导航约束被触发,则至少一个导航改变可以包括第一改变;但是如果至少一个导航约束未被触发,则至少一个导航改变可以包括不同的第二改变。在这样的实施例中,第二改变可以包括比第一改变更窄的转向机构调整角度、更轻的制动机构应用、更轻的加速度等。
导航的批量(batch)对齐
如上所解释的,远程服务器可以从多个车辆众包稀疏地图。然而,多个驾驶的全局对齐导致稀疏地图中的误差累积。例如,驾驶中的自我运动漂移可能会使道路的几何形状变形,并且在全局聚集期间可能会被夸大。此外,由于GPS测量中的误差,使用GPS数据进行全局对齐通常是不精准的。
因此,远程服务器可以局部地对齐批量驾驶来产生道路指南(roadbook),而不是全局地对齐驾驶来产生稀疏地图。如本文所使用的,术语“道路指南”可以指被存储在道路路段局部的坐标中、而不是被存储在全局坐标中的稀疏地图(如上所解释的)或位置数据(例如,存储为一个或多个样条)和/或地标数据(例如,存储为地标的位置和/或与地标的外观、标识等相关的描述性数据)的其他表示。这种数据的对齐可以导致更可靠的对齐以及更小、更局部化的地图。此外,与如果在没有预先局部对齐的情况下在全局坐标内对驾驶进行对齐相比,局部道路指南可以更精准地外推(extrapolate)至全局坐标。例如,在局部对齐期间可以考虑自我漂移,因此,如果局部道路指南被外推至全局坐标时,自我漂移将不会传播。此外,可以使用例如车道标记的视觉线索来执行局部对齐,这可以比使用包括固有误差和漂移的GPS数据更精准地对其进行定位。
此外,全局对齐可能无法解决移动阴影、不同的照明、由于下雨导致的明亮度、以及由于执行了驾驶的不同时间和日期导致的来自多个驾驶的图像和数据的其他变化。因此,对在相同的日期、在相似的时间期间和/或在相似的天气条件期间采取的驾驶进行批量对齐进一步提高了道路指南的精准度。
图15是存储器140和/或存储器150的示例性功能框图,存储器140和/或存储器150可以被存储/编程为带有用于执行与所公开的实施例一致的一个或多个操作的指令。尽管下文涉及存储器140,但是本领域技术人员将认识到,指令可以存储在存储器140和/或150中。
如图15所示,存储器140可以存储导航信息接收模块1502、对齐模块1504、存储模块1506和分发模块1508。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行存储在包括在存储器140中的模块1502、模块1504、模块1506和模块1508中的任何模块中的指令。本领域的技术人员将理解,在下面的讨论中,对处理单元110的引用可以单独地或共同地指应用处理器180和图像处理器190。替代地,远离主车辆的服务器的至少一个处理设备可以执行存储在包括在存储器140中的模块1502、模块1504、模块1506和模块1508中的任何模块中的指令。因此,以下过程中的任何过程的步骤可以由一个或多个处理设备来执行。
在一个实施例中,导航信息接收模块1502可以存储指令(例如,计算机视觉软件),当由处理单元110执行时,该指令从多个车辆接收导航信息。例如,来自多个车辆的导航信息可以与公共道路路段相关联。导航信息可以通过一个或多个计算机网络接收。例如,多个车辆可以在驾驶期间上传信息,或者多个车辆可以在完成驾驶之后上传信息,例如,在每小时、每天、每周等上传周期(session)期间上传信息。
在一些实施例中,导航信息可以包括由车辆的一个或多个图像传感器在驾驶期间捕获的一个或多个图像。附加地或替代地,导航信息可以包括来自图像的经过处理的信息,例如关于在图像中识别的一个或多个地标的位置和/或描述性信息。导航信息可以附加地或替代地包括例如GPS数据等的车辆的位置信息。
在一个实施例中,对齐模块1504可以存储指令(例如,计算机视觉软件),当由处理单元110执行时,该指令在公共道路路段局部的坐标系内对齐导航信息。例如,可以使用在来自车辆的图像传感器的图像中识别出的地标,来对齐导航信息。在简单的方案中,对齐可以包括对图像中检测到的地标的位置进行平均。在更复杂的方案中,对齐可以包括线性回归或其他统计技术,以使在图像中检测到的地标的位置收敛。通过使用图像,对齐模块1504可以例如基于GPS数据,在局部坐标系而不是全局坐标系中对齐导航信息。实际上,对齐模块1504可以基于地标的对齐来调整导航信息中包括的GPS数据,而不是基于GPS数据的对齐来调整地标。
在一个实施例中,存储模块1506可以存储指令(例如,计算机视觉软件),当由处理单元110执行时,该指令与公共道路路段相关联地存储经对齐的导航信息。例如,导航信息可以存储在数据库中,使得公共道路路段的标识符与经对齐的导航信息一起存储并将公共道路路段的标识符用于索引经对齐的导航信息。公共道路路段的标识符可以包括用于描绘公共道路路段的一个或多个坐标(例如,公共道路路段的起点和/或公共道路路段的终点的全局坐标)。
在一个实施例中,分发模块1508可以存储指令(例如,计算机视觉软件),当被处理单元110执行时,该指令将经对齐的导航信息分发到一个或多个自主车辆,以用于沿着公共道路路段自主导航一个或多个自主车辆。例如,一个或多个车辆可以在车辆接近或在其他情形下预期穿过公共道路路段时请求导航信息。分发模块1508可以通过一个或多个计算机网络将经对齐的导航信息传输给请求车辆。
图16示出了与所公开的实施例一致的,通过组合来自许多驾驶的导航信息而生成的示例道路指南1620和1640,以及通过组合道路指南而生成的示例全局地图1650。如图16所示,第一组驾驶1610可以包括从沿着公共道路路段的五个独立驾驶接收的位置数据(例如,GPS数据)。在以下情况下,一个驾驶可以是与另一个驾驶独立的:如果该驾驶在同一时间被独立的车辆穿过,或者在不同的时间被同一车辆穿过,在不同的时间被独立的车辆穿过。远程服务器可以使用一个或多个统计技术以对齐沿着道路路段的位置数据,来生成道路指南1620。例如,远程服务器可以确定位置数据的变化是否表示实际的差异还是统计误差,并且可以使用通过在驾驶期间捕获的图像确定的坐标系来对齐位置数据。因此,对齐将对于道路路段来说是局部的,并且将是自洽的,而不是与外部坐标系(例如,全局坐标系)一致。
类似地,第二组驾驶1630可以包括从沿着公共路段的五个附加驾驶接收的位置数据(例如,GPS数据)。远程服务器可以使用一个或多个统计技术以对齐沿着道路路段的位置数据,来生成道路指南1640。例如,远程服务器可以确定位置数据的变化是否表示实际的差异还是统计误差,并且可以使用通过在驾驶期间捕获的图像确定的坐标系来对齐位置数据。因此,对齐将对于道路路段来说是局部的,并且将是自洽的,而不是与外部坐标系(例如,全局坐标系)一致。
第一组驾驶1610和第二组驾驶1630可以由远程服务器进行聚类,例如,根据一天中进行驾驶的时间、进行驾驶的日期、驾驶期间的一个或多个天气条件等进行聚类。因此,与传统技术相比,道路指南1620和道路指南1640可以具有增加的精准度,而在传统技术中,来自一天中不同时间、不同日期和/或不同天气条件的驾驶被彼此对齐。
如图16中进一步描绘的,道路指南1620和道路指南1640可以外推至全局坐标系,并作为全局地图1650的一部分而被对齐。例如,远程服务器可以再次使用一个或多个统计技术来对齐沿着道路路段的位置数据。远程服务器可以使用GPS数据或全局坐标系中的其他数据,而不是在驾驶期间捕获的图像,以确保道路指南1620和道路指南1640的对齐在全局坐标系中而不是在局部坐标系中执行。因为道路指南1620和道路指南1640提供了比单个驾驶更精准的输入,所以与假设第一组驾驶1610和第二组驾驶1630已在全局坐标系上被直接对齐的情况相比,全局地图1650具有更高的精准度。
尽管用驾驶数据来描述,但是道路指南1620和道路指南1640(以及全局地图1650)还可以包括与道路路段相关联的并且存在于图像中的一个或多个地标。例如,可以在形成道路指南1620和道路指南1640时对齐地标(或者甚至将地标用来对齐形成道路指南1620和道路指南1640的驾驶数据)。类似地,可以在形成全局地图1650时对齐地标(或者甚至将地标用来全局地对齐道路指南1620和道路指南1640)。
图17提供了与公开的实施例一致的表示用于对齐来自多个车辆的导航信息的示例过程1700的流程图。过程1700可以由例如处理设备110的至少一个处理设备执行。替代地,过程1700可以由远离主车辆的服务器的至少一个处理设备来执行。
在步骤1710,服务器可以从多个车辆接收导航信息。例如,来自多个车辆的导航信息可以与公共道路路段相关联。在一些实施例中,如以上关于导航信息接收模块1502所解释的,导航信息可以包括全球定位系统(GPS)信息和/或由多个车辆上包括的图像传感器捕获的图像中所包含的一个或多个地标。例如,一个或多个地标可以包括沿着公共道路路段的可见对象。在这种实施例中,对象可以包括道路标记和道路标志中的至少一个。
在一些实施例中,可以凭借使用射频、红外频率、磁场、电场等,通过计算机网络(例如,蜂窝、互联网等)接收导航信息。可以使用用来发送和/或接收数据任何已知的标准(例如,Wi-Fi、
Figure BDA0003248288200000671
蓝牙智能、802.15.4、ZigBee等),来传输导航信息。
在步骤1720,如以上关于对齐模块1504所解释的,服务器可以在公共道路路段局部的坐标系内对齐导航信息。例如,局部坐标系可以包括一坐标系,该坐标系基于由包括在多个车辆上的图像传感器捕获的多个图像。
在一些实施例中,对齐导航信息可以基于一个或多个地标。例如,如以上所解释的,服务器可以基于地标的对齐来调整导航信息中包括的GPS数据,而不是基于GPS数据的对齐来调整地标。
在步骤1730,如以上关于存储模块1506所解释的,服务器可以与公共道路路段相关联地存储经对齐的导航信息。例如,导航信息可以存储在数据库中,使得公共道路路段的标识符与经对齐的导航信息一起存储,并且被用于索引经对齐的导航信息。
在步骤1740,如以上关于分发模块1508所解释的,服务器可以将经对齐的导航信息分发到一个或多个自主车辆,以用于沿着公共道路路段自主导航一个或多个自主车辆。例如,一个或多个车辆可以请求导航信息,并且服务器可以响应于该请求并通过使用射频、红外频率、磁场、电场等,通过计算机网络(例如,蜂窝、互联网等)来传输经对齐的导航信息。可以使用用来发送和/或接收数据任何已知的标准(例如,Wi-Fi、
Figure BDA0003248288200000672
蓝牙智能、802.15.4、ZigBee等),来传输经对齐的导航信息。
方法1700还可以包括附加步骤。例如,在一些实施例中,多个车辆可能已经在特定时间段期间捕获了导航信息。在这种实施例中,方法1700还可以包括:从第二多个车辆接收附加导航信息,来自第二多个车辆的附加导航信息是在第二时间段期间被捕获的并且与公共道路路段相关联;并且在公共道路路段局部的坐标系内对齐附加导航信息,该局部坐标系是基于由包括在第二多个车辆上的图像传感器捕获的多个图像的坐标系;并且与公共道路路段相关联地存储经对齐的附加导航信息。
附加地或可选地,多个车辆可能已经在某个数量的驾驶期间捕获了导航信息,该驾驶数量不超过阈值驾驶数量。在这种实施例中,方法1700还可以包括从第二多个车辆接收附加导航信息,来自第二多个车辆的附加导航信息是在附加驾驶期间被捕获的并且与公共道路路段相关联;在公共道路路段局部的坐标系内对齐附加导航信息,该局部坐标系是基于由包括在第二多个车辆上的图像传感器捕获的多个图像的坐标系;并且与公共道路路段相关联地存储经对齐的附加导航信息。
在上述任一实施例中,方法1700还可以包括将经对齐的导航信息外推至全局坐标集,并且与公共道路路段相关联地存储经全局对齐的导航信息。此外,在包括附加导航信息的实施例中,方法1700还可以包括:将经对齐的导航信息和经对齐的附加导航信息外推至全局坐标集,并且与公共道路路段相关联地存储经全局对齐的导航信息和附加导航信息。
对齐用于导航的道路信息
如上所描述的,对从多个驾驶获取的稀疏地图数据的全局对齐可以导致稀疏地图中的误差累积。本文描述对齐技术可以有效地减少这种误差。在一些情况下,例如数据点相对分散的区域(例如,在具有较少地标或其他道路特征的农村地区),可以采用附加处理技术。例如,农村地区较低的地图数据密度可以涉及对齐较大的区域或对齐较大批量的地图数据。由于车辆数据收集系统中固有的自我运动漂移导致的误差可以在这些较长的距离上加剧,这可以影响车辆数据对齐的精准度。因此,使用所公开的系统和方法,可以在多个区段(section)中对齐车辆数据,其中与每个区段相关联的数据可以关于该区段内的其他数据以统一(uniform)的方式被对齐。此外,每个区段可以在公共点处彼此固定,并且可以围绕公共点相对于彼此自由旋转。通过独立地对齐每个区段,可以减少由于自我运动漂移或其他不精准性引起的误差。
图18A示出了与所公开的实施例一致的可以被对齐的示例车辆数据。可以在第一驾驶1810上收集第一组导航信息。导航信息可以包括由沿着道路路段导航的第一车辆1831收集的一系列点1812。图18还示出了第二组导航信息,该第二组导航信息可能已经由沿着公共道路路段的第二车辆1832在第二车驾驶1820上收集。类似于第一导航信息,第二导航信息可以包括已经由车辆1832收集的一系列点1822。每个点可以对应于车辆1831和车辆1832在公共道路路段行驶时检测到的道路特征。例如,如上面更详细描述的,这些点可以表示道路标记、道路标志或交通灯、杆或可以被用于生成稀疏地图的沿着道路的其他特征。如上所描述的,车辆1831和车辆1832可以对应于车辆200。因此,关于车辆200的任何上述描述或实施例还可以适用于车辆1831和/或车辆1832。车辆1831和车辆1832可以包括无线收发器,例如无线收发器172,并且可以将导航信息传输到服务器,如上所描述的。
由车辆1831收集的导航信息可以包括点1812A,并且由车辆1832收集的导航信息可以包括点1822A。点1812A和点1822A可以对应于同一检测到的特征。例如,点1812A可以表示由车辆1831检测到的道路标志或其他道路特征,并且点1822A可以表示车辆1832沿着驾驶1820检测到的同一道路特征。因此,驾驶1810与驾驶1820对齐时,点1812A和1822A应该理想地位于稀疏图内的相同位置。
由于与车辆收集系统相关联的固有误差,由车辆1831和车辆1832收集的数据可能会随着车辆沿着道路路段行驶而发生“漂移”。例如,车辆1831和1832可以基于图像的特征来估计它们的位置(也称为“自我运动”)。估计车辆的位置时的小误差可能会随驾驶长度而累积,并且因此数据点可能会关于车辆行驶的实际路径发生“漂移”。如上所指出的,在更长的距离上,这种影响可能会加剧。此外,道路条件(例如道路的曲率)可能会增加可能发生的自我运动漂移量。在可以检测到许多道路特征的地区中,例如在城市地区,自我运动漂移的影响可以是可忽略的,因为较小批量的数据可以很容易地被对齐。在数据更稀疏的地区中,例如在农村地区,更大批量的数据可以被用于对齐,并且因此自我运动漂移可能更加突出。这种影响的示例在图18A中示出,如与驾驶1810和驾驶1820相关联的数据的形状在驾驶的长度上发散所示。驾驶1810和驾驶1820可以表示相对较长的道路路段,其中自我运动漂移可以是一个因素,例如超过100米、300米、500米等的道路路段。
图18B示出了与所公开的实施例一致的在对齐更大距离的驾驶时可能引入的误差。在图18B中,与驾驶1810和驾驶1820相关联的导航信息可以被对齐。因此,关于驾驶1810的一个或多个数据点可以统一地与和驾驶1820相关联的数据点对齐。例如,点1812可以全部刚性地一起旋转和/或平移,以到达与点1822的最佳对齐。如图18B所示,点1812和1822可能没有以高精度对齐。例如,虽然点1812和点1822中的一些沿着驾驶1810和驾驶1820的中间对齐,但是点1812A和点1822A可能有所偏移,从而指示驾驶之间的不良对齐。这可能导致稀疏地图中的不精准性,该不精准性可能转化为使用稀疏地图数据进行导航的车辆的不佳性能。虽然为了说明的目的,在图18A和图18B中示出了两组导航道路数据,但是应当理解,与上述实施例一致,可以使用所公开的方法来对齐许多驾驶。
图19A示出了与公开的实施例一致的可以用于对齐道路信息的多个区段1910。如图19A所示,点1810可以被分成多个区段1910(例如,区段1910A、区段1910B、区段1910C等)。这些区段可以由多个公共点1920连接(join)。在一些实施例中,作为对齐过程的部分,可以基于区段1910的长度来生成公共点。因此,公共点1920可以不对应于由车辆获取的任何数据点(例如,点1810或1820)。在其他实施例中,可以确定这些区段,使得公共点1920与由车辆收集的数据点对齐。例如,可以确定区段1910,使得它们在由车辆收集的数据点(诸如点1810和点1820)上开始和结束。与所公开的实施例一致,导航数据可以被分成适合于增加对齐精准度的任何长度的区段。例如,可以选择区段1910的长度,使得最小化沿着每个区段1910的长度的自我运动漂移的影响。在一些实施例中,区段1910的长度可以在45米和65米之间,然而也可以使用各种其他长度。
区段1910的长度可以基于各种因素来确定。在一些实施例中,可以至少部分地基于沿着驾驶1810的数据密度,来选择区段1910的长度。例如,具有相对较高数据点密度的地区(例如,沿着道路路段的更多可检测的道路特征)可以对应于较短的区段,反之亦然。在一些实施例中,区段1910的长度可以至少部分取决于道路的曲率。例如,具有较高曲率的道路区段可以导致增加的归因于自我运动漂移的误差。因此,可以使用较短的道路区段1910。此外,在一些实施例中,区段1910的长度可以至少部分地取决于与驾驶1810相关联的误差量。例如,可以使用一误差模型来确定要使用的区段1810的长度,该误差模型指示了数据有多良好地被收集方面的可变性。误差模型可以是通用模型,或者可以专门针对某些车辆类型、某些车辆状况和/或某些道路几何形状或拓扑结构来开发。在一些实施例中,每个区段1910可以具有相同的长度。在其他实施例中,例如基于数据密度、道路曲率、环境条件(例如,光照条件、天气条件等)、主车辆的条件(例如,轮胎压力或其他维护状况),或与沿着区段或主车辆的点相关联的其他因素,区段1910可以具有不同的长度。在一些实施例中,可以选择区段长度,使得沿着一个或多个道路区段的自我运动漂移的影响低于某阈值。例如,可以基于与已知地标的位置相比的位置数据的所测量方差,来估计自我运动漂移。可以选择区段长度,使得测量的方差低于阈值方差。如上所描述的,估计的自我运动漂移或阈值还可以基于数据密度、道路曲率、环境条件、主车辆的条件或其他因素来配置。各种其他方法也可以用于确定区段1910的长度,以提高对齐的精准度。
每个区段1910可以各自与其他驾驶信息对齐,例如与数据点1820对齐。例如,区段1910A可以首先与对应于包括在区段1910A中的点1810的点1820对齐。区段1910A中的一个或多个点可以一起被旋转和/或平移。一旦区段1910A已经对齐,区段1910B可以与相应的点1820对齐。如同区段1910A,区段1910B内的数据点可以一起被平移和/或旋转,以与对应的点1820对齐。如图19A所示,区段1910A和区段1910B可以共享公共点1920A。当对齐包括在区段1910B中的数据点时,区段1910B的数据点可以关于点1920A一起被旋转,如箭头1912所示。剩余的区段,例如区段1910C可以以类似的方式进行对齐,直到期望数量的点1810对齐了。例如,这些点可以在多个区段的“链(chain)”中对齐,其中每个区段中的点一起被平移和/或旋转。虽然对齐过程被描述为顺序发生(例如,区段1910A,然后区段1910B,然后区段1910C,等等),但这是为了说明的目的,并且可以执行操作的其他顺序。例如,各个区段的对齐可以一起发生,或者可以以任何顺序发生。在一些实施例中,对齐可以是迭代过程。例如,一个或多个区段可以首先对齐,并且可以被调整或微调以实现更精准的对齐。
因此,可以最小化与导航数据相关联的自我运动漂移或其他误差的影响。图19B示出了与所公开的实施例一致的基于多个区段的所得到的对齐。换句话说,可以如上所描述地,使每个区段1910的数据对齐。与图18B所示的对齐相比,使用通过多个公共点以“链”连接在一起的多个区段,可以在点1810和点1820之间实现更精确的对齐。例如,点1812A和点1822A在图19B中可以比在图18B中更紧密地对齐,而不牺牲其他点1810和点1820的对齐程度。因此,可以提高为生成稀疏图而进行的对齐的精准度和效率。
图20是与所公开的实施例一致的表示用于对齐来自多个车辆的导航信息的示例过程2000的流程图。过程2000可以由例如处理设备110的至少一个处理设备执行。替代地,过程2000可以由远离主车辆的服务器的至少一个处理设备执行。在一些实施例中,过程2000的一些或全部可以使用例如如以上描述的对齐模块1504的对齐模块来执行。
在步骤2010,过程2000可以包括从第一车辆接收第一导航信息。例如,如上所述,可以从车辆1831接收第一导航信息。第一导航信息可以包括由第一车辆获取的一系列数据点,例如点1812。在步骤2020,过程2000可以包括从第二车辆接收第二导航信息。例如,如上所述,可以从车辆1832接收第二导航信息。第二导航信息可以包括由第二车辆获取的一系列数据点,例如点1822。例如,第一导航信息或第二导航信息包括全球定位系统(GPS)信息。第一导航信息和第二导航信息与公共道路路段相关联,如上关于图18A所描述的。在一些实施例中,通过网络接收第一导航信息或第二导航信息。例如,车辆1831和车辆1832可以被配置成使用如上所描述的无线收发器传输第一导航信息和/或第二导航信息。
在一些实施例中,如上所述,可能已经通过多个驾驶收集了导航信息。例如,第一车辆可能已经通过第一数量的驾驶收集了第一导航信息,而第二车辆可能已经通过第二数量的驾驶收集了第二导航信息。在一些实施例中,第一数量的驾驶和第二数量的驾驶可以相等。然而,在其他实施例中,第一数量的驾驶和第二数量的驾驶可以不相等。例如,与用于收集第二导航信息的第二车辆相比,第一车辆可能已经通过更多数量的驾驶收集了第一导航信息,反之亦然。在一些实施例中,第一数量的驾驶和第二数量的驾驶可以等于或小于预定阈值数量的驾驶。例如,在导航信息可以被处理之前,可以需要最少数量的驾驶,这可以确保信息的更高精准度。在一些实施例中,可以在相同的时间段内收集导航信息。例如,第一车辆可能已经在预定时间段期间收集了第一导航信息,并且第二车辆可能已经在该预定时间段期间收集了第二导航信息。
在步骤2030,过程2000可以包括将公共道路路段分成至少第一道路区段和第二道路区段。例如,可以将公共道路路段分成第一道路区段1910A和第二道路区段1910B,如图19A所示。第一道路区段和第二道路区段可以在公共点处连接,例如在公共点1920A处连接。如上所述,第一道路区段和第二道路区段的长度可以以各种方式确定。在一些实施例中,第一道路区段的长度可以与第二道路区段的长度相同。在其他实施例中,第一道路区段和第二道路区段的长度可以不同。在一些实施例中,第一道路区段或第二道路区段中的至少一个的长度可以至少部分地基于公共道路路段的至少部分的曲率。替代地,或者附加地,长度可以基于其他因素,例如导航信息的密度、与导航信息相关联的误差模型等。在一些实施例中,第一道路区段、第二道路区段或两者的长度可以在45米和65米之间。
在步骤2040,过程2000可以包括将第一导航信息与第二导航信息相对于公共道路路段对齐。例如,如上所述,可以基于各自道路区段,来对齐道路区段。将第一导航信息与第二导航信息对齐可以包括:相对于公共点旋转第一导航信息的至少部分或第二导航信息的至少部分,如以上关于图19A所描述的。例如,第一导航信息或第二导航信息可以相对于公共点被旋转,直到第一导航信息的至少部分至少部分地与第二导航信息的至少部分重叠。图19B示出了根据过程2000的示例对齐。
如图19A所示,可以将公共道路路段分成两个以上的道路区段。例如,步骤2030可以进一步包括将公共道路路段分成第三道路区段,例如道路区段1910C。第三道路区段和第二道路区段在例如公共点1920B的第二公共点处连接。因此,将第一导航信息与第二导航信息对齐还可以包括:相对于第二公共点旋转第一导航信息的至少部分或第二导航信息的至少部分。
在一些实施例中,导航信息可以包括基于已识别的地标的信息。例如,第一导航信息可以包括基于由包括在第一车辆中的相机捕获的一个或多个图像的至少一个地标的第一位置。类似地,第二导航信息可以包括基于由包括在第二车辆中的相机捕获的一个或多个图像的至少一个地标的第二位置。例如,第一车辆和第二车辆可以使用图像获取单元120捕获包括至少一个地标的表示的图像。处理设备110可以确定至少一个地标的位置,如上面更详细描述的。该至少一个地标可以包括例如道道路标志记、道路标志或交通灯。将第一导航信息与第二导航信息对齐可以基于该至少一个地标的第一位置和第二位置。例如,如上所述,该至少一个地标的第一位置和第二位置可以对应于点1812A和1822A,其中点1812A和1822A可以被用于对齐驾驶信息。
在步骤2050,过程2000可以包括与公共道路路段相关联地存储经对齐的导航信息。例如,经对齐的导航信息可以存储在数据库中,使得公共道路路段的标识符与经对齐的导航信息相关联地存储,并且公共道路路段的标识符被用于索引经对齐的导航信息。在一些实施例中,如上所述,使用导航信息生成的地图可以包括三维坐标系(例如,基于GPS的全局坐标系等)。因此,步骤2050还可以包括将经对齐的导航信息与全球坐标系相关联,并与公共路段相关联地存储经过关联的导航信息。
在步骤2060,过程2000可以包括将经对齐的导航信息的至少部分传送到一个或多个车辆,以用于沿着公共道路路段导航一个或多个车辆。在一些实施例中,一个或多个车辆包括自主车辆,其可以使用经对齐的导航信息来沿着公共道路路段导航。
出于说明的目的已经呈现了前面的描述。它不是穷举性的并且不限于所公开的精确形式或实施例。考虑到所公开实施例的说明书和实践,修改和改编对于本领域技术人员来说是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,但本领域的技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储装置,例如,硬盘或CDROM、或其他形式的RAM或ROM、USB介质、DVD、蓝光、4K超高清蓝光、或其他光驱动介质。
基于书面说明和所公开的方法的计算机程序在有经验的开发人员的技术范围内。可以使用任何本领域技术人员已知的技术来创建或可以结合现有的软件来设计各种程序或程序模块。例如,程序部分或程序模块可以以或通过.NET Framework、.NET CompactFramework(以及相关的语言,诸如Visual Basic,C等)、JAVA、C++、Objective-C、HTML、HTML/AJAX组合、XML或者包含Java小程序的HTML来设计。
此外,虽然已经在本文中描述了说明性实施例,但是本领域技术人员基于本公开将认识到具有等同的要素、修改、省略、组合(例如,遍及各个实施例的方面的)、改编和/或变化的任何以及所有实施例的范围。权利要求书中的限定将基于权利要求书中采用的语言宽泛地解释,并且不限于在本说明书中或在本申请的审查期间所描述的示例。示例将被解释为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包含通过重新排序步骤和/或插入或删除步骤。因此,意图是说明书和示例被视为仅是说明性的,真正的范围和精神由以下权利要求及其等同物的全部范围来表示。

Claims (20)

1.一种存储指令的非暂时性计算机可读介质,所述指令在被至少一个处理器执行时使所述至少一个处理器:
从第一车辆接收第一导航信息;
从第二车辆接收第二导航信息,其中所述第一导航信息和所述第二导航信息与公共道路路段相关联;
将所述公共道路路段分成至少第一道路区段和第二道路区段,其中所述第一道路区段和所述第二道路区段在公共点处连接;
将所述第一导航信息与所述第二导航信息相对于所述公共道路路段对齐,其中将所述第一导航信息与所述第二导航信息对齐包括:相对于所述公共点旋转所述第一导航信息的至少部分或所述第二导航信息的至少部分;
与所述公共道路路段相关联地存储经对齐的导航信息;以及
向一个或多个车辆发送所述经对齐的导航信息的至少部分,以用于沿着所述公共道路路段导航所述一个或多个车辆。
2.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一道路区段的长度与所述第二道路区段的长度相同。
3.根据权利要求2所述的非暂时性计算机可读介质,其中所述第一道路区段的长度与所述第二道路区段的长度均在45米至65米之间。
4.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一道路区段或所述第二道路区段中的至少一个的长度至少部分地基于所述公共道路路段的至少部分的曲率。
5.根据权利要求1所述的非暂时性计算机可读介质,其中所述指令还使所述至少一个处理器:
将所述公共道路路段分成第三道路区段,其中所述第三道路区段和所述第二道路区段在第二公共点处连接,并且其中将所述第一导航信息与所述第二导航信息对齐还包括:相对于所述第二公共点旋转所述第一导航信息的至少部分或所述第二导航信息的至少部分。
6.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一导航信息或所述第二导航信息通过网络而被接收。
7.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一导航信息或所述第二导航信息包括全球定位系统(GPS)信息。
8.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一导航信息包括基于由包含在所述第一车辆中的相机捕获的一个或多个图像的至少一个地标的第一位置,并且所述第二导航信息包括基于由包含在所述第二车辆中的相机捕获的一个或多个图像的所述至少一个地标的第二位置。
9.根据权利要求8所述的非暂时性计算机可读介质,其中将所述第一导航信息与所述第二导航信息对齐基于所述至少一个地标的所述第一位置和第二位置。
10.根据权利要求8所述的非暂时性计算机可读介质,其中所述至少一个地标包括道路标记、道路标志、或交通灯。
11.根据权利要求1所述的非暂时性计算机可读介质,其中所述指令还使所述至少一个处理器:
将所述经对齐的导航信息与全局坐标系进行关联;以及
与所述公共道路路段相关联地存储经关联的导航信息。
12.根据权利要求1所述的非暂时性计算机可读介质,其中在预定时间段期间,所述第一车辆收集了所述第一导航信息并且所述第二车辆收集了所述第二导航信息。
13.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一车辆通过第一数量的驾驶收集了所述第一导航信息,并且所述第二车辆通过第二数量的驾驶收集了所述第二导航信息。
14.根据权利要求13所述的非暂时性计算机可读介质,其中所述第一数量的驾驶和所述第二数量的驾驶相等。
15.根据权利要求13所述的非暂时性计算机可读介质,其中所述第一数量的驾驶和所述第二数量的驾驶不相等。
16.根据权利要求13所述的非暂时性计算机可读介质,其中所述第一数量的驾驶和所述第二数量的驾驶等于或小于预定阈值数量的驾驶。
17.根据权利要求1所述的非暂时性计算机可读介质,其中所述第一导航信息或所述第二导航信息相对于所述公共点被旋转,直到所述第一导航信息的至少部分至少部分地与所述第二导航信息的至少部分重叠。
18.根据权利要求1所述的非暂时性计算机可读介质,其中所述一个或多个车辆包括自主车辆。
19.一种用于对齐来自多个车辆的导航信息的服务器,所述服务器包括:
至少一个处理器被编程为:
从第一车辆接收第一导航信息;
从第二车辆接收第二导航信息,其中所述第一导航信息和所述第二导航信息与公共道路路段相关联;
将所述公共道路路段分成至少第一道路区段和第二道路区段,其中所述第一道路区段和所述第二道路区段在公共点处连接;
将所述第一导航信息与所述第二导航信息相对于所述公共道路路段对齐,其中将所述第一导航信息与所述第二导航信息对齐包括:相对于所述公共点旋转所述第一导航信息的至少部分或所述第二导航信息的至少部分;
与所述公共道路路段相关联地存储经对齐的导航信息;以及
向一个或多个车辆发送所述经对齐的导航信息的至少部分,以用于沿着所述公共道路路段导航所述一个或多个车辆。
20.一种用于对齐来自多个车辆的导航信息的计算机实现的方法,所述方法包括:
从第一车辆接收第一导航信息;
从第二车辆接收第二导航信息,其中所述第一导航信息和所述第二导航信息与公共道路路段相关联;
将所述公共道路路段分成至少第一道路区段和第二道路区段,其中所述第一道路区段和所述第二道路区段在公共点处连接;
将所述第一导航信息与所述第二导航信息相对于所述公共道路路段对齐,其中将所述第一导航信息与所述第二导航信息对齐包括:相对于所述公共点旋转所述第一导航信息的至少部分或所述第二导航信息的至少部分;
与所述公共道路路段相关联地存储经对齐的导航信息;以及
向一个或多个车辆发送所述经对齐的导航信息的至少部分,以用于沿着所述公共道路路段导航所述一个或多个车辆。
CN202080019111.0A 2019-03-07 2020-03-06 对齐用于导航的道路信息 Pending CN113544467A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962815045P 2019-03-07 2019-03-07
US62/815,045 2019-03-07
US201962874711P 2019-07-16 2019-07-16
US62/874,711 2019-07-16
PCT/IB2020/000193 WO2020178639A1 (en) 2019-03-07 2020-03-06 Aligning road information for navigation

Publications (1)

Publication Number Publication Date
CN113544467A true CN113544467A (zh) 2021-10-22

Family

ID=70295570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080019111.0A Pending CN113544467A (zh) 2019-03-07 2020-03-06 对齐用于导航的道路信息

Country Status (5)

Country Link
US (2) US11499834B2 (zh)
CN (1) CN113544467A (zh)
DE (1) DE112020001106T5 (zh)
GB (2) GB2596708B (zh)
WO (1) WO2020178639A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012082861A2 (en) 2010-12-14 2012-06-21 Hologic, Inc. System and method for fusing three dimensional image data from a plurality of different imaging systems for use in diagnostic imaging
US10745009B2 (en) * 2016-12-21 2020-08-18 Samsung Electronics Co., Ltd. Electronic apparatus for determining a dangerous situation of a vehicle and method of operating the same
US11403816B2 (en) * 2017-11-30 2022-08-02 Mitsubishi Electric Corporation Three-dimensional map generation system, three-dimensional map generation method, and computer readable medium
IL270540A (en) * 2018-12-26 2020-06-30 Yandex Taxi Llc Method and system for training a machine learning algorithm to recognize objects from a distance
US11375352B2 (en) * 2020-03-25 2022-06-28 Intel Corporation Devices and methods for updating maps in autonomous driving systems in bandwidth constrained networks
US11430143B2 (en) * 2020-06-10 2022-08-30 Uveye Ltd. System of depth estimation and method thereof
US11703335B2 (en) * 2020-06-19 2023-07-18 Toyota Research Institute, Inc. Coordinating and learning maps dynamically
CN112835363B (zh) * 2020-12-29 2023-08-01 武汉中海庭数据技术有限公司 控制大范围众包地图车道线数据融合的流程的方法及装置
JP7164640B2 (ja) * 2021-01-12 2022-11-01 本田技研工業株式会社 車両システム
CN113065429A (zh) * 2021-03-22 2021-07-02 洪璐 一种基于北斗的电力应急抢险车辆监控方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170165A (en) * 1987-08-07 1992-12-08 Honda Giken Kogyo Kabushiki Kaisha Apparatus for displaying travel path
US20160188641A1 (en) * 2014-12-29 2016-06-30 Here Global B.V. Updates for Navigational Map Data Organized in Lists
CN105758401A (zh) * 2016-05-14 2016-07-13 中卫物联成都科技有限公司 一种基于多源信息融合的组合导航方法和设备
US20160266256A1 (en) * 2015-03-11 2016-09-15 The Boeing Company Real Time Multi Dimensional Image Fusing
CN107438754A (zh) * 2015-02-10 2017-12-05 御眼视觉技术有限公司 用于自主车辆导航的稀疏地图
US20180024562A1 (en) * 2016-07-21 2018-01-25 Mobileye Vision Technologies Ltd. Localizing vehicle navigation using lane measurements
CN207407892U (zh) * 2017-11-03 2018-05-25 河南思维轨道交通技术研究院有限公司 导航数据同步处理系统以及导航系统
CN108604292A (zh) * 2015-11-26 2018-09-28 御眼视觉技术有限公司 对切入车道的车辆的自动预测和利他响应

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023653A (en) * 1995-11-30 2000-02-08 Fujitsu Ten Limited Vehicle position detecting apparatus
US6178377B1 (en) * 1996-09-20 2001-01-23 Toyota Jidosha Kabushiki Kaisha Positional information providing system and apparatus
US6385539B1 (en) * 1999-08-13 2002-05-07 Daimlerchrysler Ag Method and system for autonomously developing or augmenting geographical databases by mining uncoordinated probe data
JP4696248B2 (ja) * 2004-09-28 2011-06-08 国立大学法人 熊本大学 移動体ナビゲート情報表示方法および移動体ナビゲート情報表示装置
US8717387B1 (en) * 2011-04-04 2014-05-06 Google Inc. Correction of misaligned map data from different sources
US9140792B2 (en) * 2011-06-01 2015-09-22 GM Global Technology Operations LLC System and method for sensor based environmental model construction
US9342888B2 (en) * 2014-02-08 2016-05-17 Honda Motor Co., Ltd. System and method for mapping, localization and pose correction of a vehicle based on images
EP3032221B1 (en) * 2014-12-09 2022-03-30 Volvo Car Corporation Method and system for improving accuracy of digital map data utilized by a vehicle
RU2668459C1 (ru) * 2015-05-28 2018-10-01 Ниссан Мотор Ко., Лтд. Устройство оценки положения и способ оценки положения
EP3106836B1 (en) * 2015-06-16 2018-06-06 Volvo Car Corporation A unit and method for adjusting a road boundary
US10962982B2 (en) * 2016-07-21 2021-03-30 Mobileye Vision Technologies Ltd. Crowdsourcing the collection of road surface information
US11254329B2 (en) * 2017-04-24 2022-02-22 Mobileye Vision Technologies Ltd. Systems and methods for compression of lane data
US10289115B2 (en) * 2017-06-01 2019-05-14 Aptiv Technologies Limited Automated vehicle map localization based on observed geometries of roadways
KR102434580B1 (ko) * 2017-11-09 2022-08-22 삼성전자주식회사 가상 경로를 디스플레이하는 방법 및 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170165A (en) * 1987-08-07 1992-12-08 Honda Giken Kogyo Kabushiki Kaisha Apparatus for displaying travel path
US20160188641A1 (en) * 2014-12-29 2016-06-30 Here Global B.V. Updates for Navigational Map Data Organized in Lists
CN107438754A (zh) * 2015-02-10 2017-12-05 御眼视觉技术有限公司 用于自主车辆导航的稀疏地图
US20160266256A1 (en) * 2015-03-11 2016-09-15 The Boeing Company Real Time Multi Dimensional Image Fusing
CN108604292A (zh) * 2015-11-26 2018-09-28 御眼视觉技术有限公司 对切入车道的车辆的自动预测和利他响应
CN105758401A (zh) * 2016-05-14 2016-07-13 中卫物联成都科技有限公司 一种基于多源信息融合的组合导航方法和设备
US20180024562A1 (en) * 2016-07-21 2018-01-25 Mobileye Vision Technologies Ltd. Localizing vehicle navigation using lane measurements
CN207407892U (zh) * 2017-11-03 2018-05-25 河南思维轨道交通技术研究院有限公司 导航数据同步处理系统以及导航系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IVAN SIKIRIĆ等: "Using GPS positioning to recover a comprehensive road appearance mosaic", 《2011 PROCEEDINGS OF THE 34TH INTERNATIONAL CONVENTION MIPRO》, 28 July 2011 (2011-07-28) *
王旺;赵海军;姜暖;: "导航信息处理中滤波算法稳定性评估方法", 指挥控制与仿真, no. 01, 15 February 2018 (2018-02-15) *

Also Published As

Publication number Publication date
US20230073897A1 (en) 2023-03-09
GB2596708B (en) 2024-01-10
US11499834B2 (en) 2022-11-15
GB202114198D0 (en) 2021-11-17
GB2622499A (en) 2024-03-20
GB2596708A (en) 2022-01-05
DE112020001106T5 (de) 2022-01-05
WO2020178639A1 (en) 2020-09-10
US20200284591A1 (en) 2020-09-10
GB202318305D0 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
US10976741B2 (en) Safety and comfort constraints for navigation
US11897518B2 (en) Systems and methods for navigating with sensing uncertainty
US11561551B2 (en) Prioritized constraints for a navigational system
US11499834B2 (en) Aligning road information for navigation
IL288191B2 (en) A navigation system with forced commitment constraints

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination