CN118435250A - 用于确定对象的位置的立体辅助网络 - Google Patents
用于确定对象的位置的立体辅助网络 Download PDFInfo
- Publication number
- CN118435250A CN118435250A CN202280085693.1A CN202280085693A CN118435250A CN 118435250 A CN118435250 A CN 118435250A CN 202280085693 A CN202280085693 A CN 202280085693A CN 118435250 A CN118435250 A CN 118435250A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- image
- road
- trained model
- data
- 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
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/46—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
- B60W2554/4029—Pedestrians
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/404—Characteristics
- B60W2554/4041—Position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/404—Characteristics
- B60W2554/4049—Relationship among other objects, e.g. converging dynamic objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Automation & Control Theory (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明公开了用于导航主车辆的系统和方法。在一个实施方案中,一种系统包括处理器,所述处理器被配置成:接收由所述主车辆车载的第一摄像机获取的第一图像和由所述主车辆车载的第二摄像机获取的第二图像;识别对象在所述第一图像中的第一表示和所述对象在所述第二图像中的第二表示;将所述第一图像的至少一部分输入到第一经训练的模型;将所述第二图像的至少一部分输入到第二经训练的模型;接收由所述第一经训练的模型确定的第一特征编码和由所述第二经训练的模型确定的第二特征编码;将所述第一特征编码和所述第二特征编码输入到第三经训练的模型;以及接收由所述第三经训练的模型确定的所述对象的位置的指示符。
Description
相关申请的交叉引用
本申请要求2021年10月28日提交的美国临时申请号63/272,862的优先权。前述申请通过引用整体并入本文。
背景技术
技术领域
本发明总体上涉及车辆导航,并且更具体地涉及用于检测车辆的环境中的对象的系统和方法。
背景信息
随着技术的不断进步,能够在车行道上导航的完全自主车辆的目标即将实现。自主车辆可能需要考虑各种因素,并且根据这些因素做出适当的决定,以安全且准确地到达预期目的地。例如,自主车辆可能需要处理和解释视觉信息(例如,从摄像机捕获的信息),并且还可能使用从其他来源(例如,从GPS装置、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆可能还需要识别其在特定车行道(例如,多车道道路内的特定车道)内的位置、沿着其他车辆旁边导航、避开障碍物和行人、观察交通信号和标志,并在适当的交叉路口或交叉道处从一个道路行驶到另一个道路。在自主车辆行驶到其目的地时,利用和解释由该车辆收集的大量信息带来了许多设计挑战。自主车辆可能需要分析、访问和/或存储的大量数据(例如,所捕获的图像数据、地图数据、GPS数据、传感器数据等)带来了挑战,这些挑战实际上可能限制或者甚至不利地影响自主导航。此外,如果自主车辆依赖传统映射技术来导航,那么存储和更新地图所需的大量数据带来了艰巨的挑战。
发明内容
与本发明一致的实施例提供了用于车辆导航的系统和方法。
在实施例中,一种用于主车辆的导航系统可以包括至少一个处理器,该至少一个处理器包括电路系统和存储器。该存储器可以包括指令,该指令在由电路系统执行时使该至少一个处理器接收由该主车辆车载的第一摄像机获取的第一图像,该第一图像已经从该主车辆的环境获取;接收由该主车辆车载的第二摄像机获取的第二图像,该第二图像已经从该主车辆的该环境获取;识别对象在该第一图像中的第一表示和该对象在该第二图像中的第二表示;将该第一图像的至少一部分输入到第一经训练的模型,其中该第一图像的该至少一部分包括该对象的该第一表示的至少一部分,并且其中该第一经训练的模型被配置成至少使用该对象的该第一表示来确定第一特征编码;将该第二图像的至少一部分输入到第二经训练的模型,其中该第二图像的该至少一部分包括对象的该第二表示的至少一部分,并且其中该第二经训练的模型被配置成至少使用该对象的该第二表示来确定第二特征编码;接收由该第一经训练的模型确定的该第一特征编码;接收由该第二经训练的模型确定的该第二特征编码;将该第一特征编码和该第二特征编码输入到第三经训练的模型,其中该第三经训练的模型被配置成至少基于该第一特征编码和该第二特征编码来确定该对象在该主车辆的该环境内的位置;以及接收由该第三经训练的模型确定的该对象的该位置的指示符。
在实施例中,一种用于导航主车辆的方法,该方法可以包括:接收由该主车辆车载的第一摄像机获取的第一图像,该第一图像已经从该主车辆的环境获取;接收由该主车辆车载的第二摄像机获取的第二图像,该第二图像已经从该主车辆的该环境获取;识别对象在该第一图像中的第一表示和该对象在该第二图像中的第二表示;将该第一图像的至少一部分输入到第一经训练的模型,其中该第一图像的该至少一部分包括该对象的该第一表示的至少一部分,并且其中该第一经训练的模型被配置成至少使用该对象的该第一表示来确定第一特征编码;将该第二图像的至少一部分输入到第二经训练的模型,其中该第二图像的该至少一部分包括该对象的该第二表示的至少一部分,并且其中该第二经训练的模型被配置成至少使用该对象的该第二表示来确定第二特征编码;接收由该第一经训练的模型确定的该第一特征编码;接收由该第二经训练的模型确定的该第二特征编码;将该第一特征编码和该第二特征编码输入到第三经训练的模型,其中该第三经训练的模型被配置成至少基于该第一特征编码和该第二特征编码来确定该对象在该主车辆的该环境内的位置;以及接收由该第三经训练的模型确定的该对象的该位置的指示符。
与其他所公开的实施例一致,一种非暂时性计算机可读存储介质可以存储程序指令,该程序指令由至少一个处理器执行并且执行本文所描述的任何方法。
前述一般性描述和以下的详细描述仅是示例性和解释性的,并且不限制权利要求。
附图说明
并入本公开并构成本公开的一部分的附图示出了各种所公开的实施例。在附图中:
图1为与所公开的实施例一致的示例性系统的示意性表示。
图2A为包括与所公开的实施例一致的系统的示例性车辆的示意性侧视表示。
图2B为与所公开的实施例一致的图2A中所示的车辆和系统的示意性顶视表示。
图2C为包括与所公开的实施例一致的系统的车辆的另一实施例的示意性顶视表示。
图2D为包括与所公开的实施例一致的系统的车辆的又一实施例的示意性顶视表示。
图2E为包括与所公开的实施例一致的系统的车辆的又一实施例的示意性顶视表示。
图2F为与所公开的实施例一致的示例性车辆控制系统的示意性表示。
图3A为与所公开的实施例一致的包括用于车辆成像系统的后视镜和用户界面的车辆的内部的示意性表示。
图3B为与所公开的实施例一致的被配置成定位在后视镜后面并抵靠车辆挡风玻璃的摄像机安装件的示例的图示。
图3C为与所公开的实施例一致的从不同的视角来看的图3B中所示的摄像机安装件的图示。
图3D为与所公开的实施例一致的被配置成定位在后视镜后面并抵靠车辆挡风玻璃的摄像机安装件的示例的图示。
图4为与所公开的实施例一致的被配置成存储用于执行一个或多个操作的指令的存储器的示例性框图。
图5A为示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程的流程图。
图5B为示出与所公开的实施例一致的用于检测一组图像中的一个或多个车辆和/或行人的示例性过程的流程图。
图5C为示出与所公开的实施例一致的用于检测一组图像中的道路标线和/或车道几何信息的示例性过程的流程图。
图5D为示出与所公开的实施例一致的用于检测一组图像中的交通灯的示例性过程的流程图。
图5E为示出与所公开的实施例一致的用于基于车辆路径来引起一个或多个导航响应的示例性过程的流程图。
图5F为示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的流程图。
图6为示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程的流程图。
图7为示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程的流程图。
图8示出了与所公开的实施例一致的用于提供自主车辆导航的稀疏地图。
图9A展示了与所公开的实施例一致的道路节段的一部分的多项式迹线表示。
图9B展示了三维空间中的表示车辆的针对特定道路节段的目标轨迹的曲线,该曲线包括在与所公开的实施例一致的稀疏地图中。
图10展示了可以包括在与所公开的实施例一致的稀疏地图中的示例地标。
图11A示出了与所公开的实施例一致的轨迹的多项式迹线表示。
图11B和11C示出了与所公开的实施例一致的沿多车道道路的目标轨迹。
图11D示出了与公开的实施例一致的示例道路特征轮廓曲线。
图12为与所公开的实施例一致的使用从多个车辆接收的众包数据来进行自主车辆导航的系统的示意性图示。
图13展示了与所公开的实施例一致的由多个三维样条表示的示例自主车辆道路导航模型。
图14示出了与所公开的实施例一致的从来自多个驾驶的组合位置信息生成的地图骨架。
图15示出了与所公开的实施例一致的以示例标志作为地标的两个驾驶的纵向对齐的示例。
图16示出了与所公开的实施例一致的以示例标志作为地标的许多驾驶的纵向对齐的示例。
图17为与所公开的实施例一致的用于使用摄像机、车辆和服务器来生成驾驶数据的系统的示意性图示。
图18为与所公开的实施例一致的用于对稀疏地图进行众包的系统的示意性图示。
图19为示出与所公开的实施例一致的用于生成用于沿道路节段的自主车辆导航的稀疏地图的示例性过程的流程图。
图20展示了与所公开的实施例一致的服务器的框图。
图21展示了与所公开的实施例一致的存储器的框图。
图22展示了与所公开的实施例一致的对与车辆相关联的车辆轨迹进行聚类的过程。
图23展示了与所公开的实施例一致的用于车辆的导航系统,该导航系统可以用于自主导航。
图24A、24B、24C和24D展示了与所公开的实施例一致的可以检测到的示例性车道标线。
图24E示出了与所公开的实施例一致的示例性经映射的车道标线。
图24F示出了与所公开的实施例一致的与检测车道标线相关联的示例性异常。
图25A示出了与所公开的实施例一致的用于基于经映射的车道标线来进行导航的车辆周围环境的示例性图像。
图25B展示了与所公开的实施例一致的基于道路导航模型中经映射的车道标记的车辆横向定位校正。
图25C和25D提供了用于使用包括在稀疏地图中的经映射的特征来沿目标轨迹定位主车辆的定位技术的概念性表示。
图26A为示出与所公开的实施例一致的用于映射用于在自主车辆导航中使用的车道标线的示例性过程的流程图。
图26B为示出与所公开的实施例一致的用于使用经映射的车道标线来沿道路节段自主导航主车辆的示例性过程的流程图。
图27为与所公开的实施例一致的具有用于实现立体辅助网络的多个摄像机的主车辆的示意性表示。
图28展示了与所公开的实施例一致的用于使用来自多个摄像机的图像来确定对象的位置的示例环境。
图29展示了与所公开的实施例一致的用于确定对象的位置的示例过程。
图30展示了与所公开的实施例一致的与主车辆的摄像机相关联的示例查找表。
图31为示出与所公开的实施例一致的用于导航主车辆的示例过程的流程图。
具体实施方式
以下详细描述参考了附图。在可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同或相似的部件。虽然本文描述了若干说明性实施例,但是修改、改变和其他实施方案是可能的。例如,可以对附图中所示的组件进行替换、添加或修改,并且可以通过对所公开的方法进行替换、重新排序、移除或添加步骤来修改本文所描述的说明性方法。因此,以下具体实施方式不限于所公开的实施例和示例。相反,合适的范围由所附权利要求限定。
自主车辆概述
如本发明全文所使用的,术语“自主车辆”是指能够在没有驾驶者输入的情况下实现至少一个导航改变的车辆。“导航改变”是指车辆的转向、制动或加速中的一者或多者的改变。为了实现自主,车辆不需要是全自动的(例如,在没有驾驶者或没有驾驶者输入的情况下的完全操作)。相反,自主车辆包括可以在某些时间段期间在驾驶者控制下操作并且在其他时间段期间无需驾驶者控制的那些车辆。自主车辆还可以包括仅控制车辆导航的一些方面(诸如转向(例如,以在车辆车道限制之间保持车辆路线))但可以将其他方面留给驾驶者(例如,制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向的一些或所有方面。
由于人类驾驶者通常依靠视觉提示和观察来控制车辆,因此交通基础设施相应地构建,其中车道标记、交通标志和交通灯都被设计成向驾驶者提供视觉信息。鉴于交通基础设施的这些设计特征,自主车辆可以包括摄像机和分析从车辆的环境中捕获的视觉信息的处理单元。视觉信息可以包括例如可以由驾驶者观察到的交通基础设施的组件(例如,车道标记、交通标志、交通灯等)和其他障碍物(例如,其他车辆、行人、碎片等)。此外,自主车辆还可以使用所存储的信息,诸如提供在导航时车辆的环境模型的信息。例如,车辆可以使用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、蓝牙Smart、802.15.4、ZigBee等)。此类传输可以包括从主车辆到一个或多个远程定位服务器的通信。此类传输还可以包括主车辆与主车辆的环境中的一个或多个目标车辆之间的通信(单向或双向)(例如,以便于鉴于主车辆的环境中的目标车辆或与其一起促进主车辆的导航的协调),或者甚至向发送车辆附近的未指定接收者的广播传输。
应用处理器180和图像处理器190两者可以包括各种类型的处理装置。例如,应用处理器180和图像处理器190中的任一者或两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理单元(GPU)、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器、或适合用于运行应用程序以及用于图像处理和分析的任何其他类型的装置。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动装置微控制器、中央处理单元等。可以使用各种处理装置,包括例如从诸如等制造商可获得的处理器,或从诸如等制造商可获得的GPU,并且可以包括各种架构(例如,x86处理器、等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括从可获得的EyeQ系列处理器芯片中的任一者。这些处理器设计各自包括多个具有本地存储器和指令集的处理单元。此类处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,使用以332Mhz操作的90nm微米技术。架构由两个浮点超线程32位RISC CPU(核)、五个视觉计算引擎(VCE)、三个向量微码处理器Denali 64位移动DDR控制器、128位内部SonicsInterconnect、双16位视频输入和18位视频输出控制器、16信道DMA和若干外围设备组成。MIPS34K CPU管理五个VCE、三个VMPTM和DMA、第二MIPS34KCPU和多信道DMA以及其他外围设备。五个VCE、三个和MIPS34K CPU可以执行多功能捆绑应用程序所需的密集视觉计算。在另一示例中,是第三代处理器并且其功能是的六倍,可以在所公开的实施例中使用。在其他示例中,和/或可以在所公开的实施例中使用。当然,任何更新的或未来的EyeQ处理装置也可以与所公开的实施例一起使用。
本文所公开的处理装置中的任何可以被配置成执行某些功能。配置处理装置(诸如所描述的EyeQ处理器或其他控制器或微处理器中的任何)以执行某些功能可以包括对计算机可执行指令进行编程并且使这些指令可供处理装置在处理装置的操作期间执行。在一些实施例中,配置处理装置可以包括利用架构指令直接对处理装置进行编程。例如,处理装置(诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)可以使用例如一个或多个硬件描述语言(HDL)来配置。
在其他实施例中,配置处理装置可以包括将可执行指令存储在存储器上,处理装置在操作期间可访问该存储器。例如,处理装置在操作期间可以访问存储器以获得并且执行所存储的指令。在任一情况下,被配置成执行本文所公开的感测、图像分析和/或导航功能的处理装置表示控制主车辆的多个基于硬件的组件的基于专用硬件的系统。
虽然图1描绘了包括在处理单元110中的两个单独的处理装置,但是可以使用更多或更少的处理装置。例如,在一些实施例中,单个处理装置可以用于完成应用处理器180和图像处理器190的任务。在其他实施例中,这些任务可以由多于两个处理装置执行。此外,在一些实施例中,系统100可以包括处理单元110中的一者或多者,而不包括其他组件,诸如图像获取单元120。
处理单元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的一个或多个使用者提供信息或从他们接收输入的任何装置。在一些实施例中,用户界面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可以配备有处理单元110、以及系统100的其他组件中的任何,如上文相对于图1所描述。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获装置(例如,摄像机),但是在其他实施例(诸如结合图2B至图2E所讨论的那些实施例)中,可以使用多个图像捕获装置。例如,如图2A所示,车辆200的图像捕获装置122和124中的任一者可以是ADAS(高级驾驶者辅助系统)成像集的一部分。
包括在车辆200上作为图像获取单元120的一部分的图像捕获装置可以定位在任何合适的位置处。在一些实施例中,如图2A至图2E和图3A至图3C所示,图像捕获装置122可以位于后视镜附近。该位置可以提供类似于车辆200的驾驶者的视线,这可以帮助确定驾驶者看得到和看不到的东西。图像捕获装置122可以定位在后视镜附近的任何位置处,但是将图像捕获装置122放置在后视镜的驾驶者侧上可以进一步辅助获得驾驶者的视场和/或视线的图像表示。
还可以使用用于图像获取单元120的图像捕获装置的其他位置。例如,图像捕获装置124可以位于车辆200的保险杠上或保险杠中。此类位置可能特别适合于具有宽视场的图像捕获装置。位于保险杠的图像捕获装置的视线可能与驾驶者不同,因此,保险杠图像捕获装置和驾驶者可能不总是看到相同的对象。图像捕获装置(例如,图像捕获装置122、124和126)也可以位于其他位置。例如,图像捕获装置可以位于车辆200的侧镜中的一者或两者上或其中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆的侧面上200,安装在车辆200的窗户中的任何窗户上、定位在该车辆的窗户中的任何窗户的后面或前面,并且安装在车辆200的前面和/或后面的光象中或附近等。
除了图像捕获装置之外,车辆200可以包括系统100的各种其他组件。例如,处理单元110可以包括在车辆200上,与车辆的发动机控制单元(ECU)集成或分离。车辆200还可以配备有位置传感器130(诸如GPS接收器),并且还可以包括地图数据库160和存储器单元140和150。
如先前所讨论,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等)来和/或接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并且从该一个或多个服务器下载数据。经由无线收发器172,系统100可以接收例如对存储在地图数据库160、存储器140和/或存储器150中的数据的周期性或按需更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕获的图像、由位置传感器130或其他传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
系统100可以基于隐私级别设置将数据上传到服务器(例如,到云)。例如,系统100可以实现隐私级别设置来调节或限制发送到可以唯一地识别车辆和或车辆的驾驶者/所有者的服务器的数据(包括元数据)的类型。此类设置可以由使用者经由例如无线收发器172来设定,由工厂默认设置或者无线收发器172接收到的数据来初始化。
在一些实施例中,系统100可以根据“高”隐私级别上传数据,并且在设定设置下,系统100可以发送数据(例如,与路线相关的位置信息、所捕获的图像等),而无需关于特定车辆和/或驾驶者/所有者的任何细节。例如,在根据“高”隐私设置上传数据时,系统100可以不包括车辆识别号(VIN)或者车辆的驾驶者或所有者的姓名,并且可以代替地发送数据,诸如所捕获的图像和/或与路线相关的有限位置信息。
设想了其他隐私级别。例如,系统100可以根据“中”隐私级别将数据发送到服务器并且包括在“高”隐私级别下未包括的附加信息,诸如车辆的品牌和/或型号和/或车辆类型(例如,客运车辆、运动型多用途车辆、卡车等)。在一些实施例中,系统100可以根据“低”隐私级别上传数据。在“低”隐私级别设置下,系统100可以上传数据并且包括足以唯一地识别特定车辆、所有者/驾驶者、和/或车辆所行驶路线的一部分或全部的信息。此类“低”隐私级别数据可以包括例如VIN、驾驶者/所有者姓名、车辆在出发之前的起始点、车辆的预期目的地、车辆的品牌和/或型号、车辆的类型等中的一者或多者。
图2A为与所公开的实施例一致的示例性车辆成像系统的示意性侧视表示。图2B为图2A所示的实施例的示意性顶视图示。如图2B所展示,所公开的实施例可以包括车辆200,该车辆在其车身中包括系统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,并且可以适用于所有类型的车辆,包括汽车、卡车、拖车和其他类型的车辆。
第一图像捕获装置122可以包括任何合适类型的图像捕获装置。图像捕获装置122可以包括光轴。在一种情况下,图像捕获装置122可以包括具有全局快门的Aptina M9V024WVGA传感器。在其他实施例中,图像捕获装置122可以提供1280×960像素的分辨率并且可以包括卷帘快门。图像捕获装置122可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,例如,以便为图像捕获装置提供所期望的焦距和视场。在一些实施例中,图像捕获装置122可以与6mm镜片或12mm镜片相关联。在一些实施例中,图像捕获装置122可以被配置成捕获具有所期望的视场(FOV)202的图像,如图2D所展示。例如,图像捕获装置122可以被配置成具有规则的FOV,诸如在40度至56度的范围内,包括46度FOV、50度FOV、52度FOV或更大。替代地,图像捕获装置122可以被配置成具有在23度至40度的范围内的窄FOV,诸如28度FOV或36度FOV。此外,图像捕获装置122可被配置成具有在100度至180度的范围内的宽FOV。在一些实施例中,图像捕获装置122可以包括广角保险杠摄像机或具有高达180度FOV的摄像机。在一些实施例中,图像捕获装置122可以是具有约2:1的纵横比(例如,H×V=3800×1900像素)的7.2M像素图像捕获装置,具有约100度水平FOV。此类图像捕获装置可以用于代替三图像捕获装置配置。由于显著的镜片扭曲,在图像捕获装置使用径向对称镜片的实施方案中,此类图像捕获装置的竖直FOV可以显著小于50度。例如,此类镜头可以不是径向对称的,这将允许大于50度的竖直FOV,具有100度的水平FOV。
第一图像捕获装置122可以获取与与车辆200相关联的场景相关的多个第一图像。多个第一图像中的每一者可以获取为一系列图像扫描线,该一系列图像扫描线可以使用卷帘快门来捕获。每个扫描线可以包括多个像素。
第一图像捕获装置122可以具有与第一系列图像扫描线中的每一者的获取相关联的扫描速率。扫描速率可以是指图像传感器能够获取与包括在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕获装置122、124和126可以包含任何合适类型和数量的图像传感器,例如包括CCD传感器或CMOS传感器。在一个实施例中,CMOS图像传感器可以与卷帘快门一起使用,使得一行中的每个像素一次读取一个,并且行的扫描在逐行的基础上进行,直到已经捕获整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕获行。
在一些实施例中,本文所公开的图像捕获装置(例如,图像捕获装置122、124和126)中的一者或多者可以构成高分辨率成像器并且可以具有大于5M像素、7M像素、10M像素或更大的分辨率。
卷帘快门的使用可以导致不同行中的像素在不同时间被曝光和捕获,这可以引起所捕获的图像帧中的偏斜和其他图像伪影。另一方面,在图像捕获装置122被配置成利用全局或同步快门操作时,像素中的全部可以以相同的时间量并且在共同的曝光周期期间曝光。因此,从采用全局快门的系统收集的帧中的图像数据表示在特定时间处的整个FOV(诸如FOV 202)的快照。相比之下,在卷帘快门应用中,帧中的每个行曝光,并且数据在不同的时间处捕获。因此,移动对象在具有卷帘快门的图像捕获装置中可能显得失真。下文将更详细地描述该现象。
第二图像捕获装置124和第三图像捕获装置126可以是任何类型的图像捕获装置。如同第一图像捕获装置122,图像捕获装置124和126中的每一者可以包括光轴。在一个实施例中,图像捕获装置124和126中的每一者可以包括具有全局快门的Aptina M9V024 WVGA传感器。替代地,图像捕获装置124和126中的每一者可以包括卷帘快门。如同图像捕获装置122,图像捕获装置124和126可以被配置成包括各种透镜和光学元件。在一些实施例中,与图像捕获装置124和126相关联的透镜可以提供与与图像捕获装置122相关联的FOV(诸如FOV 202)相同或比其更窄的FOV(诸如FOV 204和206)。例如,图像捕获装置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还可以被配置成获取在距车辆更远的范围(例如,25m、50m、100m、150m或更远)处的对象的图像。此外,可以选择图像捕获装置122、124和126的焦距,使得一个图像捕获装置(例如,图像捕获装置122)可以获取相对靠近车辆(例如,在10m内或在20m内)的对象的图像,而其他图像捕获装置(例如,图像捕获装置124和126)可以获取距离车辆200更远(例如,大于20m、50m、100m、150m等)的对象的图像。
根据一些实施例,一个或多个图像捕获装置122、124和126的FOV可以具有广角。例如,具有140度的FOV可以是有利的,尤其是对于可以用于捕获车辆200附近的区域的图像的图像捕获装置122、124和126。例如,图像捕获装置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、124和126可以捕获相邻的FOV或者可以在它们的FOV中具有部分重叠。在一些实施例中,图像捕获装置122、124和126的视场可以对齐,使得较窄FOV图像捕获装置124和/或126的中心可以位于较宽FOV装置122的视场的下半部分中。
图2F为与所公开的实施例一致的示例性车辆控制系统的示意性表示。如图2F所指示,车辆200可以包括节流系统220、制动系统230和转向系统240。系统100可以通过一个或多个数据链路(例如,用于发送数据的任何有线和/或无线链路或多个链路)向节流系统220、制动系统230和转向系统240中的一者或多者提供输入(例如,控制信号)。例如,基于由图像捕获装置122、124和/或126获取的图像的分析,系统100可以向节流系统220、制动系统230和转向系统240中的一者或多者提供控制信号,以导航车辆200(例如,通过引起加速、转弯、车道变换等)。此外,系统100可以从节流系统220、制动系统230和转向系统24中的一者或多者接收指示车辆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可以定位成使得遮光罩与具有匹配斜度的车辆挡风玻璃对齐。在一些实施例中,图像捕获装置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后面并且基本上并排定位(例如,相隔6cm)。此外,在一些实施例中,如上文所讨论,图像捕获装置122、124和126中的一者或多者可以安装在与车辆200的挡风玻璃齐平的遮光罩380后面。此类屏蔽可以起到最小化来自汽车内部的任何反射对图像捕获装置122、124和126的影响的作用。
在另一实施例中,如上文结合图3B和3C所讨论,宽视场摄像机(例如,上文示例中的图像捕获装置124)可以安装得低于窄视场和主视场摄像机(例如,上文示例中的图像装置122和126)。该配置可以提供来自宽视场摄像机的自由视线。为了减少反射,摄像机可以靠近车辆200的挡风玻璃安装,并且可以包括摄像机上的偏振器以衰减反射光。
三摄像机系统可以提供某些性能特征。例如,一些实施例可以包括基于来自另一摄像机的检测结果来验证一个摄像机对对象的检测的能力。在上文所讨论的三摄像机配置中,处理单元110可以包括例如三个处理装置(例如,三个EyeQ系列处理器芯片,如上文所讨论),其中每个处理装置专用于处理由图像捕获装置122、124和126中的一者或多者捕获的图像。
在三摄像机系统中,第一处理装置可以接收来自主摄像机和窄视场摄像机两者的图像,并且执行窄FOV摄像机的视觉处理,以例如检测其他车辆、行人、车道标线、交通标志、交通灯和其他道路对象。此外,第一处理装置可以计算来自主摄像机和窄摄像机的图像之间的像素的视差,并且创建车辆200的环境的3D重建。第一处理装置然后可以将3D重建与3D地图数据或与基于来自另一摄像机的信息而计算的3D信息组合。
第二处理装置可以接收来自主摄像机的图像,并且执行视觉处理以检测其他车辆、行人、车道标线、交通标志、交通灯和其他道路对象。此外,第二处理装置可以计算摄像机位移,并且基于该位移来计算连续图像之间的像素的视差并且创建场景的3D重建(例如,来自运动的结构)。第二处理装置可以将来自基于运动的3D重建的结构发送到第一处理装置以与立体3D图像组合。
第三处理装置可以接收来自宽FOV摄像机的图像,并且处理该图像以检测车辆、行人、车道标线、交通标志、交通灯和其他道路对象。第三处理装置可以进一步执行附加处理指令来分析图像,以识别图像中的对象移动,诸如改变车道的车辆、行人等。
在一些实施例中,使基于图像流的信息被独立地捕获和处理可以提供用于在系统中提供冗余的机会。此类冗余可以包括例如使用第一图像捕获装置和从该装置处理的图像来验证和/或补充通过捕获并处理来自至少第二图像捕获装置的图像信息而获得的信息。
在一些实施例中,系统100可以使用两个图像捕获装置(例如,图像捕获装置122和124)来为车辆200提供导航辅助,并且使用第三图像捕获装置(例如,图像捕获装置126)来提供冗余并验证从其他两个图像捕获装置接收的数据的分析。例如,在此类配置中,图像捕获装置122和124可以提供用于由系统100进行立体分析以导航车辆200的图像,而图像捕获装置126可以提供用于由系统100进行单目分析的图像,以提供基于从图像捕获装置122和/或图像捕获装置124捕获的图像而获得的信息的冗余和验证。也就是说,图像捕获装置126(和对应的处理装置)可以被认为提供冗余子系统,用于提供对从图像捕获装置122和124得到的分析的检查(例如,提供自动紧急制动(AEB)系统)。此外,在一些实施例中,可以基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器、从车辆外部的一个或多个收发器接收的信息等)来补充接收到的数据的冗余和验证。
本领域技术人员将认识到,以上摄像机配置、摄像机放置、摄像机数量、摄像机位置等仅是示例。在不脱离所公开的实施例的范围的情况下,这些组件和相对于整个系统所描述的其他组件可以在各种不同的配置中组装和使用。关于使用多摄像机系统来提供驾驶者辅助和/或自主车辆功能的进一步细节如下文所述。
图4为与所公开的实施例一致的可以存储/编程有用于执行一个或多个操作的指令的存储器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的其他系统(诸如车辆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可以基于在步骤520处执行的分析和如上文结合图4所描述的技术来执行导航响应模块408,以在车辆200中引起一个或多个导航响应。导航响应可以包括例如转弯、车道变换、加速度变化等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得出的数据来引起一个或多个导航响应。此外,多个导航响应可以同时、按顺序、或其任何组合发生。例如,处理单元110可以通过例如顺序地将控制信号发送到车辆200的转向系统240和节流系统220来使车辆200跨越一个车道变换并且随后加速。替代地,处理单元110可以通过例如将控制信号同时发送到车辆200的制动系统230和转向系统240来使车辆200制动,同时变换车道。
图5B为示出与所公开的实施例一致的用于检测一组图像中的一个或多个车辆和/或行人的示例性过程500B的流程图。处理单元110可以执行单目图像分析模块402以实现过程500B。在步骤540处,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将图像与一个或多个预定模式进行比较,并且在每个图像内识别可能包含感兴趣对象(例如,车辆、行人或其部分)的可能位置。预定模式可以以实现高“错误命中”率和低“错过”率的方式设计。例如,处理单元110可以使用与预定模式的相似度的低阈值来将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110降低错过(例如,未识别)表示车辆或行人的候选对象的概率。
在步骤542处,处理单元110可以基于分类标准来过滤该组候选对象以排除某些候选(例如,不相关或不太相关的对象)。此类标准可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种性质得出。性质可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝错误候选。
在步骤544处,处理单元110可以分析多个图像帧以确定该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧跟踪检测到的候选对象并且累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并且将对象的逐帧位置数据与预测位置进行比较。
在步骤546处,处理单元110可以构建检测到的对象的一组测量。此类测量可以包括例如与检测到的对象相关联的位置、速度和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察(诸如卡尔曼滤波器或线性二次估计(LQE))的估计技术和/或基于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)的可用建模数据来构建测量。卡尔曼滤波器可以基于对象的尺度的测量,其中尺度测量与碰撞时间(例如,车辆200到达对象的时间量)成比例。因此,通过执行步骤540至步骤546,处理单元110可以识别出现在该组捕获到的图像内的车辆和行人,并且得出与车辆和行人相关联的信息(例如,位置、速度、大小)。基于识别和所得出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如上文结合图5A所描述。
在步骤548处,处理单元110可以执行一个或多个图像的光流分析,以降低检测到“错误命中”和错过表示车辆或行人的候选对象的概率。光流分析可以是指例如分析与其他车辆和行人相关联的一个或多个图像中相对于车辆200的运动模式,并且该运动模式不同于道路表面运动。处理单元110可以通过观察跨在不同时间捕获的多个图像帧的对象的不同位置来计算候选对象的运动。处理单元110可以将位置和时间值用作到数学模型中的输入以计算候选对象的运动。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至步骤546执行光流分析,以提供用于检测车辆和行人的冗余并且增加系统100的可靠性。
图5C为示出与所公开的实施例一致的用于检测一组图像中的道路标线和/或车道几何信息的示例性过程500C的流程图。处理单元110可以执行单目图像分析模块402以实现过程500C。在步骤550处,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何信息和其他相关道路标线的节段,处理单元110可以过滤该组对象以排除那些被确定为不相关的对象(例如,小坑洼、小石块等)。在步骤552处,处理单元110可以将在步骤550中检测到的属于相同道路标线或车道标线的节段分组在一起。基于分组,处理单元110可以开发模型来表示检测到的节段,诸如数学模型。
在步骤554处,处理单元110可以构建与检测到的节段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的节段从图像平面到真实世界平面上的投影。可以使用具有对应于物理性质(诸如检测到的道路的位置、坡度、曲率和曲率导数)的系数的三阶多项式迹线来表征投影。在生成投影时,处理单元110可以考虑道路表面的变化以及与车辆200相关联的颠簸速率和侧倾速率。此外,处理单元110可以通过分析道路表面上存在的位置和运动线索来建模道路高程。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的颠簸速率和侧倾速率。
在步骤556处,处理单元110可以通过例如跨连续图像帧跟踪检测到的节段并且累积与检测到的节段相关联的逐帧数据来执行多帧分析。当处理单元110执行多帧分析时,在步骤554处构建的该组测量可以变得更可靠并且与越来越高的置信水平相关联。因此,通过执行步骤550、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附近的车道之间的对应关系。
当车辆200接近路口时,在步骤564处,处理单元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可以使用抛物线样条算法来重建车辆路径,该抛物线样条算法可以产生与车辆路径的总长度相对应的累积距离向量S(即,基于表示车辆路径的一组点)。
在步骤574处,处理单元110可以基于在步骤572处构建的经更新的车辆路径来确定预见点(以坐标表示为(xl,zl))。处理单元110可以从累积距离向量S提取预见点,并且预见点可以与预见距离和预见时间相关联。预见距离(其可以具有范围从10米至20米的下限)可以被计算为车辆200的速度与预见时间的乘积。例如,随着车辆200的速度减小,预见距离也可以减小(例如,直到其达到下限)。预见时间(其范围可以从0.5秒至1.5秒)可以与与在车辆200中引起导航响应相关联的一个或多个控制环路(诸如航向误差跟踪控制环路)的增益成反比。例如,航向误差跟踪控制环路的增益可以取决于偏航速率环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,预见时间越短。
在步骤576处,处理单元110可以基于在步骤574处确定的预见点来确定航向误差和偏航速率命令。处理单元110可以通过计算预见点的反正切(例如arctan(xl/zl))来确定航向误差。处理单元110可以将偏航速率命令确定为航向误差与高级控制增益的乘积。如果预见距离不处于下限,则高级控制增益可以等于:(2/预见时间)。否则,高级控制增益可以等于:(2*车辆200的速度/预见距离)。
图5F为示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程500F的流程图。在步骤580处,处理单元110可以确定与前方车辆(例如,在车辆200前面行驶的车辆)相关联的导航信息。例如,处理单元110可以使用上文结合图5A和5B所描述的技术来确定前方车辆的位置、速度(例如,方向和速度)和/或加速度。处理单元110还可以使用上文结合图5E所描述的技术来确定一个或多个道路多项式迹线、预见点(与车辆200相关联)和/或蜗行轨迹(例如,描述前方车辆所采取的路径的一组点)。
在步骤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 2+δx 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可以基于在步骤620处执行的分析和如上文结合图4所描述的技术来执行导航响应模块408,以在车辆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与在第一、第二和第三多个图像中的任何内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时、按顺序或其任何组合发生。
用于自主车辆导航的稀疏道路模型
在一些实施例中,所公开的系统和方法可以将稀疏地图用于自主车辆导航。特别地,稀疏地图可以用于沿道路节段的自主车辆导航。例如,稀疏地图可以用于导航自主车辆的足够信息,而无需存储和/或更新大量的数据。如下文进一步详细地讨论,自主车辆可以使用稀疏地图以基于一个或多个所存储的轨迹来导航一个或多个道路。
用于自主车辆导航的稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,稀疏地图可以提供足够的导航信息,而无需过多的数据存储或数据传输速率。如下文进一步详细地讨论,车辆(其可以是自主车辆)可以使用稀疏地图来导航一个或多个道路。例如,在一些实施例中,稀疏地图可以包括与道路和沿该道路的潜在地标相关的数据,该数据可以足以用于车辆导航,但也表现出小的数据足迹。例如,与包括详细地图信息(诸如沿道路收集的图像数据)的数字地图相比,下文详细描述的稀疏数据地图可以需要显著更少的存储空间和数据传输带宽。
例如,稀疏数据地图可以存储沿道路的优选车辆路径的三维多项式迹线表示,而不是存储道路节段的详细表示。这些路径可以需要极少的数据存储空间。此外,在所描述的稀疏数据地图中,地标可以被识别并且包括在稀疏地图道路模型中以帮助导航。这些地标可以以适合实现车辆导航的任何间距定位,但是在一些情况下,此类地标不需要被识别并且以高密度和短间距包括在模型中。相反,在一些情况下,基于间隔至少50米、至少100米、至少500米、至少1千米或至少2千米的地标进行导航可以是可能的。如将在其他部分中更详细地讨论,稀疏地图可以基于由配备有各种传感器和装置(诸如图像捕获装置、全球定位系统传感器、运动传感器等)的车辆在该车辆沿车行道行驶时收集或测量的数据来生成。在一些情况下,稀疏地图可以基于在一个或多个车辆沿特定车行道的多个驾驶期间收集的数据来生成。使用一个或多个车辆的多个驾驶来生成稀疏地图可以称为对稀疏地图进行“众包”。
与所公开的实施例一致,自主车辆系统可以使用稀疏地图进行导航。例如,所公开的系统和方法可以分发稀疏地图以生成用于自主车辆的道路导航模型,并且可以使用稀疏地图和/或所生成的道路导航模型来沿道路节段导航自主车辆。与本发明一致的稀疏地图可以包括一个或多个三维轮廓,其可以表示自主车辆在其沿相关联的道路节段移动时可以横穿的预定轨迹。
与本发明一致的稀疏地图还可以包括表示一个或多个道路特征的数据。此类道路特征可以包括所辨识的地标、道路特征轮廓曲形、以及在导航车辆时有用的任何其他道路相关特征。与本发明一致的稀疏地图可以实现基于包括在稀疏地图中的相对少量的数据的车辆的自主导航。例如,并非包括道路的详细表示,诸如道路边缘、道路曲率、与道路节段相关联的图像、或详细说明与道路节段相关联的其他物理特征的数据,所公开的稀疏地图的实施例可以需要相对小的存储空间(并且当稀疏地图的部分传输到车辆时,相较小的带宽),但是仍然可以充分地提供自主车辆导航。所公开的稀疏地图的小数据足迹(下文进一步详细地讨论)可以在一些实施例中通过存储需要少量数据但是仍然能够实现自主导航的道路相关元素的表示来实现。
例如,所公开的稀疏地图可以存储车辆可以沿道路遵循的一个或多个轨迹的多项式迹线表示,而不是存储道路的各个方面的详细表示。因此,车辆可以沿特定道路节段导航,不是使用所公开的稀疏地图来存储(或必须传输)关于道路的物理性质的细节来实现沿道路的导航(在一些情况下,必须解释道路的物理方面),而是通过将车辆的行驶路径与沿特定道路节段的轨迹(例如多项式迹线样条)对齐。以此方式,车辆可以主要基于所存储的轨迹(例如,多项式迹线样条)来导航,与涉及车行道图像、道路参数、道路布局等的存储的方法相比,这可以需要少得多的存储空间。
除了所存储的沿道路节段的轨迹的多项式迹线表示之外,所公开的稀疏地图还可以包括可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包括数字特征,该数字特征从由沿道路节段行驶的车辆车载的传感器(例如,摄像机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)得出。数字特征相对于由传感器获取的信号可以具有减小的大小。在一些实施例中,数字特征可以被创建成与分类器功能兼容,该分类器功能被配置成从例如在后续驾驶期间由传感器获取的信号检测并识别道路特征。在一些实施例中,数字特征可以被创建成使得该数字特征具有尽可能小的足迹,同时保持使道路特征与所存储的特征相关联或匹配的能力,所存储的特征基于道路特征的图像(或由传感器生成的数字信号,如果所存储的特征不基于图像和/或包括其他数据),该图像由在后续时间沿同一道路节段行驶的车辆车载的摄像机捕获。
在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于由车辆车载的摄像机可检测的道路特征,并且其中车辆车载的摄像机系统耦合到分类器,该分类器能够将对应于道路特征的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联,并且其中此类道路标志在该区域中是局部唯一的(例如,附近没有相同的道路标志或相同类型的道路标志),存储指示道路特征及其位置的数据可以是足够的。
如下文将进一步详细地讨论,道路特征(例如,沿道路节段的地标)可以存储为可以用相对少的字节来表示道路特征的小数据对象,同时提供足够的信息用于辨识和使用此类特征以进行导航。在一个示例中,道路标志可以被识别为已辨识的地标,车辆的导航可以基于该已辨识的地标。道路标志的表示可以存储在稀疏地图中以包括例如指示地标的类型(例如,停止标志)的几个字节的数据和指示地标的位置(例如,坐标)的几个字节的数据。基于地标的此类数据-光表示的导航(例如,使用足以基于地标进行定位、辨识和导航的表示)可以提供与稀疏地图相关联的期望水平的导航功能,而不显著增加与稀疏地图相关联的数据开销。地标(和其他道路特征)的这种精简表示可以利用此类车辆车载包括的传感器和处理器,该传感器和处理器被配置成检测、识别和/或分类某些道路特征。
当例如在给定的区域中标志或者甚至特定类型的标志是局部唯一的时(例如,当没有其他标志,也没有相同类型的其他标志时),稀疏地图可以使用指示一类地标(标志或特定类型的标志)的数据,并且在导航(例如,自主导航)期间,当自主车辆车载的摄像机捕获包括标志(或特定类型的标志)的区域的图像时,处理器可以处理该图像,检测标志(如果确实存在于图像中),将图像分类为标志(或特定类型的标志),并且将图像的位置与标志的如存储在稀疏地图中的位置关联。
稀疏地图可以包括沿道路节段识别的对象的任何合适的表示。在一些情况下,对象可以称为语义对象或非语义对象。语义对象可以包括例如与预定类型分类相关联的对象。该类型分类可以有助于减少描述在环境中辨识的语义对象所需的数据量,这在采集阶段中(例如,以降低与用于将驾驶信息从多个采集车辆传输到服务器的带宽使用相关联的成本)和在导航阶段期间(例如,减少地图数据可以加快地图图块从服务器到导航车辆的传输,并且还可以降低与用于此类传输的带宽使用相关联的成本)两者可以是有益的。语义对象分类类型可以被分配给预期沿车行道遇到的任何类型的对象或特征。
语义对象可以进一步划分成两个或更多个逻辑组。例如,在一些情况下,一组语义对象类型可以与预定尺寸相关联。此类语义对象可以包括某些速度限制标志、让行标志、并道标志、停止标志、交通灯、车行道上的方向箭头、井盖、或者可以与标准化大小相关联的任何其他类型的对象。由此类语义对象提供的一个好处是可以需要非常少的数据来表示/完全定义对象。例如,如果速度限制大小的标准化大小是已知的,则采集车辆可以仅需要识别(通过所捕获的图像的分析)速度限制标志(所辨识的类型)的存在以及所检测到的速度限制标志的位置(例如,标志的中心或标志的某个拐角在所捕获的图像中的2D位置(或者,替代地,真实世界坐标中的3D位置))的指示,以便为服务器侧上的地图生成提供足够的信息。在2D图像位置发送到服务器的情况下,也可以传输与检测到标志的所捕获的图像相关联的位置,以便服务器可以确定标志的真实世界位置(例如,通过使用来自一个或多个采集车辆的多个所捕获的图像的运动中结构技术)。即使利用该有限的信息(仅需要几个字节来定义每个检测到的对象),服务器也可以基于从一个或多个采集车辆接收的类型分类(表示速度限制标志)以及检测到的标志的位置信息来构建包括完全表示的速度限制标志的地图。
语义对象还可以包括与某些标准化特征不相关联的其他所辨识的对象或特征类型。此类对象或特征可以包括坑洼、柏油接缝、灯杆、非标准化标志、路缘、树、树枝或具有一个或多个可变特征(例如,可变尺寸)的任何其他类型的所辨识的对象类型。在此类情况下,除了将检测到的对象或特征类型(例如,坑洼、杆等)的指示以及检测到的对象或特征的位置信息发送到服务器之外,采集车辆还可以发送对象或特征的大小的指示。大小可以用2D图像尺寸(例如,使用边界框或一个或多个尺寸值)或真实世界尺寸(通过运动中结构计算、基于LIDAR或RADAR系统输出、基于经训练的神经网络输出等来确定)来表达。
非语义对象或特征可以包括落在所辨识的类别或类型之外的但仍然可以在地图生成中提供有价值信息的任何可检测的对象或特征。在一些情况下,此类非语义特征可以包括检测到的建筑物的拐角或检测到的建筑物窗户的拐角、车行道附近的独特石头或对象、车行道肩部中的混凝土飞溅物、或任何其他可检测的对象或特征。在检测到此类对象或特征时,一个或多个采集车辆可以将与检测到的对象/特征相关联的一个或多个点(2D图像点或3D真实世界点)的位置发送到地图生成服务器。另外,可以针对包括检测到的对象或特征的所捕获的图像的区域生成压缩或简化的图像节段(例如,图像散列)。该图像散列可以基于预定图像处理算法来计算,并且可以形成检测到的非语义对象或特征的有效特征。此类特征可以有助于相对于包括非语义特征或对象的稀疏地图的导航,因为横穿车行道的车辆可以应用类似于用于生成图像散列的算法的算法,以便确认/验证在所捕获的图像中存在经映射的非语义特征或对象。使用该技术,非语义特征可以添加稀疏地图的丰富性(例如,增强其在导航中的有用性),而不会增加显著的数据开销。
如所述的,目标轨迹可以存储在稀疏地图中。这些目标轨迹(例如,3D样条)可以表示用于车行道的每个可用车道、通过路口的每个有效路径、用于并道和出口等的优选或推荐路径。除了目标轨迹之外,其他道路特征也可以被检测、采集并且以代表性样条的形式合并到稀疏地图。此类特征可以包括例如道路边缘、车道标记、路缘、护栏、或者沿车行道或道路节段延伸的任何其他对象或特征。
生成稀疏地图
在一些实施例中,稀疏地图可以包括沿道路节段延伸的道路表面特征的至少一个线表示以及与该道路节段相关联的多个地标。在某些方面,稀疏地图可以经由“众包”生成,例如通过在一个或多个车辆横穿道路节段时获取的多个图像的图像分析。
图8示出了一个或多个车辆(例如车辆200(其可以是自主车辆))可以访问以提供自主车辆导航的稀疏地图800。稀疏地图800可以存储在存储器(诸如存储器140或150)中。此类存储器装置可以包括任何类型的非暂时性存储装置或计算机可读介质。例如,在一些实施例中,存储器140或150可以包括硬盘驱动器、光盘、闪存、基于磁性的存储器装置、基于光学的存储器装置等。在一些实施例中,稀疏地图800可以存储在数据库(例如,地图数据库160)中,该数据库可以存储在存储器140或150或其他类型的存储装置中。
在一些实施例中,稀疏地图800可以存储在车辆200车载设置的存储装置或非暂时性计算机可读介质(例如,包括在车辆200车载的导航系统中的存储装置)上。设置在车辆200上的处理器(例如,处理单元110)可以访问存储在车辆200车载设置的存储装置或计算机可读介质中的稀疏地图800,以便生成导航指令以在车辆横穿道路节段时引导自主车辆200。
然而,稀疏地图800不需要相对于车辆本地存储。在一些实施例中,稀疏地图800可以存储在设置在远程服务器上的存储装置或计算机可读介质上,该远程服务器与车辆200或与车辆200相关联的装置通信。设置在车辆200上的处理器(例如,处理单元110)可以从远程服务器接收包括在稀疏地图800中的数据,并且可以执行该数据以引导车辆200的自主驾驶。在此类实施例中,远程服务器可以存储稀疏地图800的全部或仅其一部分。因此,车辆200车载和/或一个或多个附加车辆车载设置的存储装置或计算机可读介质可以存储稀疏地图800的剩余部分。
此外,在此类实施例中,可以使得稀疏地图800可供横穿各种道路节段的多个车辆(例如,数十、数百、数千或数百万个车辆等)访问。还应当注意,稀疏地图800可以包括多个子地图。例如,在一些实施例中,稀疏地图800可以包括可以用于导航车辆的数百、数千、数百万或更多子地图(例如,地图图块)。此类子地图可以称为局部地图或地图图块,并且沿车行道行驶的车辆可以访问与车辆正在行驶的位置相关的任何数量的局部地图。稀疏地图800的局部地图部分可以与全球导航卫星系统(GNSS)密钥一起存储为稀疏地图800的数据库的索引。因此,虽然可以在不依赖于主车辆的GNSS位置、道路特征或地标的情况下执行本系统中用于导航主车辆的转向角度的计算,但是此类GNSS信息可以用于检索相关局部地图。
一般而言,稀疏地图800可以基于从一个或多个车辆在其沿车行道行驶时收集的数据(例如,驾驶信息)来生成。例如,使用一个或多个车辆车载的传感器(例如,摄像机、速度计、GPS、加速度计等),可以记录该一个或多个车辆沿车行道行驶的轨迹,并且可以基于所收集的该一个或多个车辆所行驶的轨迹来确定沿该车行道进行后续行程的车辆的优选轨迹的多项式迹线表示。类似地,由一个或多个车辆收集的数据可以帮助识别沿特定车行道的潜在地标。从横穿车辆收集的数据还可以用于识别道路轮廓曲线信息,诸如道路宽度轮廓曲线、道路粗糙度轮廓曲线、交通线间距轮廓曲线、道路状况等。使用所收集的信息,可以生成并分发稀疏地图800(例如,用于本地存储或经由即时数据传输)以用于导航一个或多个自主车辆。然而,在一些实施例中,地图生成可以在地图的初始生成时不结束。如下文将更详细地讨论,稀疏地图800可以基于在这些车辆继续横穿包括在稀疏地图800中的车行道时从车辆收集的数据来连续地或周期性地更新。
稀疏地图800中记录的数据可以包括基于全球定位系统(GPS)数据的位置信息。例如,各种地图元素的位置信息可以包括在稀疏地图800中,包括例如地标位置、道路轮廓曲线位置等。包括在稀疏地图800中的地图元素的位置可以使用从横穿车行道的车辆收集的GPS数据来获得。例如,经过所识别的地标的车辆可以使用与车辆相关联的GPS位置信息和所识别的地标相对于车辆的位置的确定(例如,基于从车辆车载的一个或多个摄像机收集的数据的图像分析)来确定所识别的地标的位置。当附加车辆经过所识别的地标的位置时,可以重复所识别的地标(或包括在稀疏地图800中的任何其他特征)的此类位置确定。附加位置确定中的一些或全部可以用于相对于所识别的地标来细化存储在稀疏地图800中的位置信息。例如,在一些实施例中,相对于存储在稀疏地图800中的特定特征的多个位置测量可以一起平均。然而,任何其他数学运算也可以用于基于地图元素的多个确定位置来细化地图元素的存储位置。
在特定示例中,采集车辆可以横穿特定道路节段。每个采集车辆捕获其相应环境的图像。图像可以以任何合适的帧捕获速率(例如,9Hz等)收集。每个采集车辆车载的图像分析处理器分析所捕获的图像以检测语义和/或非语义特征/对象的存在。在高层次,采集车辆将语义和/或非语义对象/特征的检测的指示以及与这些对象/特征相关联的位置发送到映射服务器。更详细地,类型指示符、尺寸指示符等可以与位置信息一起发送。位置信息可以包括用于使得映射服务器能够将检测到的对象/特征聚合成有助于导航的稀疏地图的任何合适的信息。在一些情况下,位置信息可以包括检测到语义或非语义特征/对象的所捕获的图像中的一个或多个2D图像位置(例如,X-Y像素位置)。此类图像位置可以对应于特征/对象的中心、拐角等。在这种情况下,为了帮助映射服务器重建驾驶信息并对齐来自多个采集车辆的驾驶信息,每个采集车辆还可以向服务器提供捕获每个图像的位置(例如,GPS位置)。
在其他情况下,采集车辆可以向服务器提供与检测到的对象/特征相关联的一个或多个3D真实世界点。此类3D点可以是相对于预定原点(诸如驾驶节段的原点)的并且可以通过任何合适的技术来确定。在一些情况下,运动中结构技术可以用于确定检测到的对象/特征的3D真实世界位置。例如,可以在两个或更多个所捕获的图像中检测到某个对象(诸如特定速度限制标志)。使用信息(诸如所捕获的图像之间的采集车辆的已知自我运动(速度、轨迹、GPS位置等)),以及观察到的所捕获的图像中的速度限制标志的变化(X-Y像素位置的变化、大小变化等),可以确定与速度限制标志相关联的一个或多个点的真实世界位置并将其传递到映射服务器。此类方法是可选的,因为其需要针对采集车辆系统的部分的更多计算。所公开的实施例的稀疏地图可以使用相对少量的存储数据来实现车辆的自主导航。在一些实施例中,稀疏地图800可以具有小于每千米道路2MB、小于每千米道路1MB、小于每千米道路500kB、或小于每千米道路100kB的数据密度(例如,包括表示目标轨迹、地标和任何其他所存储的道路特征的数据)。在一些实施例中,稀疏地图800的数据密度可以小于每千米道路10kB、或甚至小于每千米道路2kB(例如,每千米1.6kB)、或不超过每千米道路10kB、或不超过每千米道路20kB。在一些实施例中,美国的大多数(如果不是全部)车行道可以使用具有总共4GB或更少数据的稀疏地图来自主导航。这些数据密度值可以表示整个稀疏地图800上、稀疏地图800内的局部地图上、和/或稀疏地图800内的特定道路节段上的平均值。
如所述的,稀疏地图800可以包括用于沿道路节段引导自主驾驶或导航的多个目标轨迹810的表示。此类目标轨迹可以存储为三维样条。例如,存储在稀疏地图800中的目标轨迹可以基于车辆沿特定道路节段的先前横穿的两个或更多个经重建的轨迹来确定。道路节段可以与单个目标轨迹或多个目标轨迹相关联。例如,在双车道道路上,可以存储第一目标轨迹以表示沿道路在第一方向上行驶的预期路径,并且可以存储第二目标轨迹以表示沿道路在另一方向(例如,与该第一方向相反)上行驶的预期路径。可以存储关于特定道路节段的附加目标轨迹。例如,在多车道道路上,可以存储表示在与该多车道道路相关联的一个或多个车道中的车辆的预期行驶路径的一个或多个目标轨迹。在一些实施例中,多车道道路的每个车道可以与其自身的目标轨迹相关联。在其他实施例中,所存储的目标轨迹可以比多车道道路上存在的车道少。在此类情况下,导航多车道道路的车辆可以通过考虑距为其存储了目标轨迹的车道的车道偏移量,使用任何所存储的目标轨迹来引导其导航(例如,如果车辆在三车道高速公路的最左侧车道上行驶,并且仅为高速公路的中间车道存储了目标轨迹,那么在生成导航指令时,车辆可以通过考虑中间车道与最左侧车道之间的车道偏移量来使用中间车道的目标轨迹进行导航)。
在一些实施例中,目标轨迹可以表示车辆在该车辆行驶时应采取的理想路径。目标轨迹可以位于例如行驶车道的大致中心处。在其他情况下,目标轨迹可以相对于道路节段位于其他位置。例如,目标轨迹可以与道路的中心、道路的边缘或车道的边缘等大致重合。在此类情况下,基于目标轨迹的导航可以包括所确定的相对于目标轨迹的位置要保持的偏移量。此外,在一些实施例中,所确定的相对于目标轨迹的位置要保持的偏移量可以基于车辆的类型而不同(例如,包括两个车轴的客运车辆可以具有与包括多于两个车轴的卡车沿目标轨迹的至少一部分不同的偏移量)。
稀疏地图800还可以包括与与特定道路节段、局部地图等相关联的多个预定地标820相关的数据。如下文更详细地讨论,这些地标可以用于自主车辆的导航。例如,在一些实施例中,地标可以用于确定车辆相对于所存储的目标轨迹的当前位置。利用该位置信息,自主车辆可以能够调整航向方向以匹配目标轨迹在所确定的位置处的方向。
多个地标820可以被识别并且以任何合适的间隔存储在稀疏地图800中。在一些实施例中,地标可以以相对高的密度(例如,每隔几米或更多)存储。然而,在一些实施例中,可以采用显著更大的地标间距值。例如,在稀疏地图800中,所识别的(或所辨识的)地标可以间隔开10米、20米、50米、100米、1千米或2千米。在某些情况下,所识别的地标可以位于相隔甚至超过2千米的距离处。
在地标之间,并且因此在相对于目标轨迹的车辆位置的确定之间,车辆可以基于航位推算来导航,其中车辆使用传感器来确定其自我运动并且估计其相对于目标轨迹的位置。由于误差可以在导航期间通过航位推算累积,因此随着时间的推移,相对于目标轨迹的位置确定可以变得越来越不准确。车辆可以使用稀疏地图800中出现的地标(及其已知位置)来消除位置确定中由航位推算引起的误差。以此方式,包括在稀疏地图800中的所识别的地标可以用作导航锚,从该导航锚可以确定车辆相对于目标轨迹的准确位置。由于位置定位中的一定量的误差可以是可接受的,因此所识别的地标无需总是可供自主车辆使用。相反,合适的导航可以可能甚至基于如上文所述的10米、20米、50米、100米、500米、1千米、2千米或更大的地标间距。在一些实施例中,每1km道路1个所识别的地标的密度可以足以将纵向位置确定准确度保持在1m内。因此,并非沿道路节段出现的每个潜在地标都需要存储在稀疏地图800中。
此外,在一些实施例中,车道标记可以用于在地标间距期间定位车辆。通过在地标间距期间使用车道标记,可以最小化通过航位推算进行导航期间的误差累积。
除了目标轨迹和所识别的地标之外,稀疏地图800还可以包括与各种其他道路特征相关的信息。例如,图9A展示了可以存储在稀疏地图800中的沿特定道路节段的曲线的表示。在一些实施例中,道路的单个车道可以通过道路的左侧和右侧的三维多项式迹线描述来建模。表示单个车道的左侧和右侧的此类多项式迹线在图9A中示出。无论道路可以具有多少个车道,该道路可以以类似于图9A中所展示的方式使用多项式迹线来表示。例如,多车道道路的左侧和右侧可以由类似于图9A中所示的多项式迹线来表示,并且包括在多车道道路上的中间车道标记(例如,表示车道边界的断续标记、表示在不同方向上行驶的车道之间的边界的实心黄线等)也可以使用诸如图9A中所示的多项式迹线来表示。
如图9A所示,车道900可以使用多项式迹线(例如,一阶、二阶、三阶或任何合适阶的多项式迹线)来表示。为了说明,车道900示出为二维车道并且多项式迹线示出为二维多项式迹线。如图9A所描绘,车道900包括左侧910和右侧920。在一些实施例中,可以使用多于一个多项式迹线来表示道路或车道边界的每一侧的位置。例如,左侧910和右侧920中的每一者可以由任何合适长度的多个多项式迹线表示。在一些情况下,多项式迹线可以具有约100m的长度,但是也可以使用大于或小于100m的其他长度。此外,多项式迹线可以彼此重叠,以便在主车辆沿车行道行驶时促进基于随后遇到的多项式迹线进行导航的无缝转换。例如,左侧910和右侧920中的每一者可以由分成约100米长度的节段(第一预定范围的示例)并且彼此重叠约50米的多个三阶多项式迹线表示。表示左侧910和右侧920的多项式迹线可以具有或可以不具有相同的阶。例如,在一些实施例中,一些多项式迹线可以是二阶多项式迹线,一些可以是三阶多项式迹线,并且一些可以是四阶多项式迹线。
在图9A所示的示例中,车道900的左侧910由两组三阶多项式迹线表示。第一组包括多项式迹线节段911、912和913。第二组包括多项式迹线节段914、915和916。两个组虽然基本上彼此平行,但遵循其相应的道路侧的位置。多项式迹线节段911、912、913、914、915和916具有约100米的长度并且与系列中的相邻节段重叠约50米。然而,如先前所述,也可以使用具有不同长度和不同重叠量的多项式迹线。例如,多项式迹线可以具有500m、1km或更大的长度,并且重叠量可以从0至50m、50m至100m、或大于100m变化。此外,虽然图9A示出为表示在2D空间中(例如,在纸的表面上)延伸的多项式迹线,但是应当理解,这些多项式迹线可以表示在三维(例如,包括高度分量)中延伸的曲线,以表示除了X-Y曲率之外的道路节段的高程变化。在图9A所示的示例中,车道900的右侧920进一步由具有多项式迹线节段921、922和923的第一组以及具有多项式迹线节段924、925和926的第二组表示。
返回稀疏地图800的目标轨迹,图9B示出了表示沿特定道路节段行驶的车辆的目标轨迹的三维多项式迹线。目标轨迹不仅表示主车辆应当沿特定道路节段行驶的X-Y路径,还表示主车辆在沿该道路节段行驶时将经历的高程变化。因此,稀疏地图800中的每个目标轨迹可以由一个或多个三维多项式迹线(比如图9B所示的三维多项式迹线950)表示。稀疏地图800可以包括多个轨迹(例如,数百万或数十亿或更多,以表示车辆沿全世界车行道的各种道路节段的轨迹)。在一些实施例中,每个目标轨迹可以对应于连接三维多项式迹线节段的样条。
关于存储在稀疏地图800中的多项式迹线曲线的数据足迹,在一些实施例中,每个三次多项式迹线可以由四个参数表示,每个参数需要四个字节的数据。合适的表示可以通过三次多项式迹线获得,每100m需要约192字节的数据。对于以大约100km/h行驶的主车辆,这可以转换为每小时大约200kB的数据使用/传输要求。
稀疏地图800可以使用几何描述符和元数据的组合来描述车道网络。几何形状可以由如上文所描述的多项式迹线或样条描述。元数据可以描述车道的数量、特殊特征(诸如汽车池车道)以及可能的其他稀疏标签。此类指示符的总足迹可以忽略不计。
因此,根据本发明的实施例的稀疏地图可以包括沿道路节段延伸的道路表面特征的至少一个线表示,每个线表示表示沿与道路表面特征基本上一致的道路节段的路径。在一些实施例中,如上文所讨论,道路表面特征的至少一个线表示可以包括样条、多项式迹线表示或曲线。此外,在一些实施例中,道路表面特征可以包括道路边缘或车道标记中的至少一者。此外,如下文关于“众包”所讨论,道路表面特征可以通过在一个或多个车辆横穿道路节段时获取的多个图像的图像分析来识别。
如先前所述,稀疏地图800可以包括与道路节段相关联的多个预定地标。稀疏地图800中的每个地标可以使用比所存储的实际图像将需要的更少的数据来表示和识别,而不是存储地标的实际图像并且依赖于例如基于所捕获的图像和所存储的图像的图像辨识分析。表示地标的数据仍然可以包括用于描述或识别沿道路的地标的足够信息。存储描述地标的特征的数据而不是地标的实际图像,可以减小稀疏地图800的大小。
图10展示了可以在稀疏地图800中表示的地标类型的示例。地标可以包括沿道路节段的任何可见且可识别的对象。可以选择地标,使得它们是固定的并且相对于其位置和/或内容不经常改变。在车辆横穿特定道路节段时,包括在稀疏地图800中的地标可以有助于确定车辆200相对于目标轨迹的位置。地标的示例可以包括交通标志、方向标志、一般标志(例如,矩形标志)、路边固定装置(例如,灯柱、反射器等)、以及任何其他合适的类别。在一些实施例中,道路上的车道标线也可以包括在稀疏地图800中作为地标。
图10所示的地标的示例包括交通标志、方向标志、路边固定装置和一般标志。交通标志可以包括例如速度限制标志(例如,速度限制标志1000)、让行标志(例如,让行标志1005)、路线编号标志(例如,路线编号标志1010)、交通灯标志(例如,交通灯标志1015)、停止标志(例如,停止标志1020)。方向标志可以包括标志,该标志包括指示到不同地点的一个或多个方向的一个或多个箭头。例如,方向标志可以包括具有用于引导车辆到不同道路或地点的箭头的高速公路标志1025、具有引导车辆离开道路的箭头的出口标志1030等。因此,多个地标中的至少一者可以包括道路标志。
一般标志可以与交通无关。例如,一般标志可以包括用于广告的广告牌,或者邻近两个国家、州、县、城市或城镇之间边界的欢迎牌。图10示出了一般标志1040(“Joe'sRestaurant”)。虽然一般标志1040可以具有矩形形状,如图10所示,但是一般标志1040可以具有其他形状,诸如正方形、圆形、三角形等。
地标还可以包括路边固定装置。路边固定装置可以为不是标志的对象,并且可以与交通或方向无关。例如,路边固定装置可以包括灯柱(例如,灯柱1035)、电力线柱、交通灯柱等。
地标还可以包括可以专门设计用于自主车辆导航系统的信标。例如,此类信标可以包括以预定间隔放置的独立结构,以帮助导航主车辆。此类信标还可以包括添加到现有道路标志的视觉/图形信息(例如,图标、徽章、条形码等),其可以由沿道路节段行驶的车辆识别或辨识。此类信标还可以包括电子组件。在此类实施例中,电子信标(例如,RFID标签等)可以用于将非视觉信息发送到主车辆。此类信息可以包括例如主车辆可以用来确定其沿目标轨迹的位置的地标识别和/或地标位置信息。
在一些实施例中,包括在稀疏地图800中的地标可以由预定大小的数据对象表示。表示地标的数据可以包括用于识别特定地标的任何合适的参数。例如,在一些实施例中,存储在稀疏地图800中的地标可以包括参数,诸如地标的物理大小(例如,以支持基于已知大小/尺度来估计到地标的距离)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型(什么类型的方向标志、交通标志)等)、GPS坐标(例如,以支持全球定位)、以及任何其他合适的参数。每个参数可以与数据大小相关联。例如,可以使用8字节的数据来存储地标大小。到先前地标的距离、横向偏移和高度可以使用12字节的数据来指定。与诸如方向标志或交通标志之类的地标相关联的类型代码可以需要约2字节的数据。对于一般标志,可以使用50字节的数据存储来存储实现一般标志的识别的图像特征。地标GPS位置可以与16字节的数据存储相关联。每个参数的这些数据大小仅是示例,并且还可以使用其他数据大小。以此方式表示稀疏地图800中的地标,可以提供用于有效地表示数据库中的地标的精简解决方案。在一些实施例中,对象可以称为标准语义对象或非标准语义对象。标准语义对象可以包括存在标准化特征组的任何类别的对象(例如,具有已知尺寸或其他特征的速度限制标志、警告标志、方向标志、交通灯等)。非标准语义对象可以包括与标准化特征组无关联的任何对象(例如,一般广告标志、识别商业机构、坑洼、树等的标志,其可以具有可变尺寸)。每个非标准语义对象可以用38字节的数据来表示(例如,8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;2字节用于类型代码;以及16字节用于位置坐标)。标准语义对象可以使用甚至更少的数据来表示,因为映射服务器可以不需要大小信息来在稀疏地图中完全表示对象。
稀疏地图800可以使用标签系统来表示地标类型。在一些情况下,每个交通标志或方向标志可以与其自身的标签相关联,该标签可以作为地标识别的一部分存储在数据库中。例如,数据库可以包括大约1000个不同标签来表示各种交通标志以及大约10000个不同标签来表示方向标志。当然,可以使用任何合适数量的标签,并且可以根据需要创建附加标签。在一些实施例中,可以使用小于约100字节来表示一般用途标志(例如,约86字节,包括8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;50字节用于图像特征;以及16字节用于GPS坐标)。
因此,对于不需要图像特征的语义道路标志,即使在每50m约1个的相对高的地标密度下,对稀疏地图800的数据密度影响也可以约为每千米760字节(例如,每千米20个地标×每个地标38字节=760字节)。即使对于包括图像特征分量的一般用途标志,数据密度影响约为每千米1.72kB(例如,每千米20个地标×每个地标86字节=1,720字节)。对于语义道路标志,对于以100km/h行驶的车辆,这相当于每小时约76kB的数据使用。对于一般用途道路标志,对于以100km/h行驶的车辆,这相当于每小时约170kB。应当注意,在某些环境(例如,城市环境)中,可以有可用于包括在稀疏地图中的检测到的对象的高得多的密度(可能超过每米一个)。在一些实施例中,大体上矩形的对象(诸如矩形标志)可以在稀疏地图800中由不超过100字节的数据表示。稀疏地图800中的大体矩形对象(例如,一般标志1040)的表示可以包括与大体矩形对象相关联的节略图像特征或图像散列(例如,节略图像特征1045)。该节略图像特征/图像散列可以使用任何合适的图像散列算法来确定,并且可以用于例如帮助识别一般用途标志,例如作为所辨识的地标。此类节略图像特征(例如,从表示对象的实际图像数据得出的图像信息)可以避免存储对象的实际图像的需要或对实际图像执行比较图像分析以便辨识地标的需要。
参考图10,稀疏地图800可以包括或存储与一般标志1040相关联的节略图像特征1045,而不是一般标志1040的实际图像。例如,在图像捕获装置(例如,图像捕获装置122、124或126)捕获一般标志1040的图像之后,处理器(例如,图像处理器190或能够处理在主车辆上或相对于主车辆远程定位的图像的任何其他处理器)可以执行图像分析以提取/创建节略图像特征1045,该节略图像特征包括与一般标志1040相关联的独特特征或模式。在一个实施例中,节略图像特征1045可以包括形状、颜色模式、亮度模式、或者可以从一般标志1040的图像中提取的用于描述一般标志1040的任何其他特征。
例如,在图10中,节略图像特征1045中所示的圆形、三角形和星形可以表示不同颜色的区域。由圆形、三角形和星形表示的模式可以存储在稀疏地图800中,例如,在指定为包括图像特征的50字节内。值得注意的是,圆形、三角形和星形不一定意味着指示此类形状存储为图像特征的一部分。相反,这些形状意味着概念性地表示具有可辨别色差的可辨识区域、文本区域、图形形状或可以与一般用途标志相关联的特征的其他变化。此类节略图像特征可以用于识别呈一般标志形式的地标。例如,节略图像特征可以用于基于所存储的节略图像特征与例如使用自主车辆车载的摄像机捕获的图像数据的比较来执行相同-不相同分析。
因此,多个地标可以通过在一个或多个车辆横穿道路节段时获取的多个图像的图像分析来识别。如下文关于“众包”所解释,在一些实施例中,识别多个地标的图像分析可以包括当地标在其中出现的图像与地标在其中未出现的图像的比率超过阈值时接受潜在地标。此外,在一些实施例中,识别多个地标的图像分析可以包括当地标在其中未出现的图像与地标在其中出现的图像的比率超过阈值时拒绝潜在地标。
返回主车辆可以用于导航特定道路节段的目标轨迹,图11A示出了在构建或保持稀疏地图800的过程期间的多项式迹线表示轨迹捕获。包括在稀疏地图800中的目标轨迹的多项式迹线表示可以基于车辆沿同一道路节段的先前横穿的两个或更多个经重建的轨迹来确定。在一些实施例中,包括在稀疏地图800中的目标轨迹的多项式迹线表示可以是车辆沿同一道路节段的先前横穿的两个或更多个经重建的轨迹的聚合。在一些实施例中,包括在稀疏地图800中的目标轨迹的多项式迹线表示可以是车辆沿同一道路节段的先前横穿的两个或更多个经重建的轨迹的平均值。其他数学运算也可以用于基于从沿道路节段横穿的车辆收集的经重建的轨迹来构建沿道路路径的目标轨迹。
如图11A所示,道路节段1100可以由许多车辆200在不同时间行驶。每个车辆200可以收集与车辆沿道路节段采取的路径相关的数据。特定车辆所行驶的路径可以基于摄像机数据、加速度计信息、速度传感器信息和/或GPS信息以及其他潜在来源来确定。此类数据可以用于重建沿道路节段行驶的车辆的轨迹,并且基于这些经重建的轨迹,可以针对特定道路节段确定目标轨迹(或多个目标轨迹)。此类目标轨迹可以表示当车辆沿道路节段行驶时主车辆的优选路径(例如,由自主导航系统引导)。
在图11A所示的示例中,第一经重建的轨迹1101可以基于从在第一时间段(例如,第1天)横穿道路节段1100的第一车辆接收的数据来确定,第二经重建的轨迹1102可以从在第二时间段(例如,第2天)横穿道路节段1100的第二车辆获得,并且第三经重建的轨迹1103可以从在第三时间段(例如,第3天)横穿道路节段1100的第三车辆获得。每个轨迹1101、1102和1103可以由多项式迹线(诸如三维多项式迹线)表示。应当注意,在一些实施例中,经重建的轨迹中的任何可以是横穿道路节段1100的车辆车载地组装的。
附加地或替代地,此类经重建的轨迹可以基于从横穿道路节段1100的车辆接收的信息在服务器侧上确定。例如,在一些实施例中,车辆200可以向一个或多个服务器发送与它们沿道路节段1100的运动相关的数据(例如,转向角度、航向、时间、位置、速度、感测到的道路几何形状、和/或感测到的地标等)。服务器可以基于接收到的数据来重建用于车辆200的轨迹。服务器还可以基于第一、第二和第三轨迹1101、1102和1103来生成用于引导在稍后时间将沿同一道路节段1100行驶的自主车辆的导航的目标轨迹。虽然目标轨迹可以与道路节段的单个先前横穿相关联,但是在一些实施例中,包括在稀疏地图800中的每个目标轨迹可以基于横穿同一道路节段的车辆的两个或更多个经重建的轨迹来确定。在图11A中,目标轨迹由1110表示。在一些实施例中,目标轨迹1110可以基于第一、第二和第三轨迹1101、1102和1103的平均值来生成。在一些实施例中,包括在稀疏地图800中的目标轨迹1110可以是两个或更多个经重建的轨迹的聚合(例如,加权组合)。
在映射服务器处,服务器可以从横穿特定道路节段的多个采集车接收该道路节段的实际轨迹。为了针对沿道路节段的每个有效路径(例如,每个车道、每个驾驶方向、通过路口的每个路径等)生成目标轨迹,可以对齐接收到的实际轨迹。对齐过程可以包括使用沿道路节段识别的检测到的对象/特征以及这些检测到的对象/特征的所采集位置来将实际采集到的轨迹彼此关联。一旦对齐,可以基于经聚合的、关联的/对齐的实际轨迹来确定每个可用车道的平均或“最佳拟合”目标轨迹等。
图11B和图11C进一步示出了与地理区域1111内存在的道路节段相关联的目标轨迹的概念。如图11B所示,地理区域1111内的第一道路节段1120可以包括多车道道路,其包括指定用于在第一方向上行驶的车辆的两个车道1122和指定用于在与第一方向相反的第二方向上行驶的车辆的两个附加车道1124。车道1122和车道1124可以由双黄线1123分开。地理区域1111还可以包括与道路节段1120相交的分支道路节段1130。道路节段1130可以包括双车道道路,每个车道被指定用于不同方向的行驶。地理区域1111还可以包括其他道路特征,诸如停止线1132、停止标志1134、速度限制标志1136和危险标志1138。
如图11C所示,稀疏地图800可以包括局部地图1140,该局部地图包括用于辅助车辆在地理区域1111内的自主导航的道路模型。例如,局部地图1140可以包括与地理区域1111内的道路节段1120和/或1130相关联的一个或多个车道的目标轨迹。例如,局部地图1140可以包括自主车辆在横穿车道1122时可以访问或依赖的目标轨迹1141和/或1142。类似地,局部地图1140可以包括自主车辆在横穿车道1124时可以访问或依赖的目标轨迹1143和/或1144。进一步,局部地图1140可以包括自主车辆在横穿道路节段1130时可以访问或依赖的目标轨迹1145和/或1146。目标轨迹1147表示自主车辆在从车道1120(并且特别地,相对于与车道1120的最右侧车道相关联的目标轨迹1141)转变到道路节段1130(并且特别地,相对于与道路节段1130的第一侧相关联的目标轨迹1145)时应当遵循的优选路径。类似地,目标轨迹1148表示自主车辆在从道路节段1130(并且特别地,相对于目标轨迹1146)转变到道路节段1124的一部分(并且特别地,如图所示,相对于与车道1124的左侧车道相关联的目标轨迹1143)时应当遵循的优选路径。
稀疏地图800还可以包括与地理区域1111相关联的其他道路相关特征的表示。例如,稀疏地图800还可以包括在地理区域1111中识别的一个或多个地标的表示。此类地标可以包括与停止线1132相关联的第一地标1150、与停止标志1134相关联的第二地标1152、与速度限制标志相关联的第三地标1154、以及与危险标志1138相关联的第四地标1156。此类地标可以用于例如辅助自主车辆确定其相对于所示目标轨迹中的任何的当前位置,使得车辆可以调整其航向以匹配目标轨迹在所确定的位置处的方向。
在一些实施例中,稀疏地图800还可以包括道路特征轮廓曲线。此类道路特征轮廓曲线可以与与道路相关联的至少一个参数的任何可辨别/可测量的变化相关联。例如,在一些情况下,此类轮廓曲线可以与道路表面信息的变化相关联,诸如特定道路节段的表面粗糙度的变化、特定道路节段上的道路宽度的变化、沿特定道路节段涂漆的虚线之间的距离的变化、沿特定道路节段的道路曲率的变化等。图11D示出了道路特征轮廓曲线1160的示例。虽然轮廓曲线1160可以表示上文所提及的参数中的任何、或其他参数,但是在一个示例中,轮廓曲线1160可以表示道路表面粗糙度的测量,如例如通过监测一个或多个传感器而获得的,该一个或多个传感器提供指示当车辆在特定道路节段行驶时的悬架位移量的输出。
替代地或同时地,轮廓曲线1160可以表示道路宽度的变化,如基于经由在特定道路节段行驶的车辆车载的摄像机获得的图像数据所确定。例如,此类轮廓曲线可以有助于确定自主车辆相对于特定目标轨迹的特定位置。也就是说,当自主车辆横穿道路节段时,其可以测量与与该道路节段相关联的一个或多个参数相关联的轮廓曲线。如果测得的轮廓曲线可以与绘制相对于沿道路节段的位置的参数变化的预定轮廓曲线关联/匹配,则可以使用测得的轮廓曲线和预定轮廓曲线(例如,通过覆盖测得的轮廓曲线和预定轮廓曲线的对应部分)以便确定沿道路节段的当前位置,并且因此确定相对于道路节段的目标轨迹的当前位置。
在一些实施例中,稀疏地图800可以包括基于与自主车辆的使用者相关联的不同特征、环境条件和/或与驾驶相关的其他参数的不同轨迹。例如,在一些实施例中,可以基于不同的使用者偏好和/或轮廓曲线来生成不同轨迹。包括此类不同轨迹的稀疏地图800可以提供给不同使用者的不同自主车辆。例如,一些使用者可能更喜欢避开收费道路,而其他使用者可能更喜欢采取最短或最快的路线,无论路线上是否存在收费道路。所公开的系统可以基于此类不同的使用者偏好或轮廓曲线来生成具有不同轨迹的不同稀疏地图。作为另一示例,一些使用者可能更喜欢在快速移动的车道上行驶,而其他使用者可能更喜欢始终保持在中央车道中的位置。
不同的轨迹可以基于不同环境条件(诸如白天和夜晚、雪、雨、雾等)来生成并且包括在稀疏地图800中。可以将基于此类不同环境条件生成的稀疏地图800提供给在不同环境条件下行驶的自主车辆。在一些实施例中,设置在自主车辆上的摄像机可以检测环境条件,并且可以将此类信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包括对于在检测到的环境条件下的自主驾驶而言可以更适合或更安全的轨迹。基于环境条件的稀疏地图800的更新可以在自主车辆沿道路行驶时动态地执行。
与驾驶相关的其他不同参数也可以用作用于为不同自主车辆生成并提供不同稀疏地图的基础。例如,当自主车辆以高速度行驶时,转弯可以更严格。与特定车道而不是道路相关联的轨迹可以包括在稀疏地图800中,使得自主车辆可以在车辆遵循特定轨迹时保持在特定车道内。当由自主车辆车载的摄像机捕获的图像指示车辆已经漂移到车道之外(例如,越过车道标线)时,可以在车辆内触发动作,以根据特定轨迹将车辆带回到指定车道。
对稀疏地图进行众包
所公开的稀疏地图可以通过众包的力量有效地(并且被动地)生成。例如,配备有摄像机(例如,作为当今车辆上的OEM设备经常包括的简单、低分辨率摄像机)和适当的图像分析处理器的任何私人或商用车辆可以用作采集车辆。不需要特殊设备(例如,高清成像和/或定位系统)。由于所公开的众包技术,所生成的稀疏地图可以极其准确,并且可以包括极其精细的位置信息(能够实现10cm或更小的导航误差极限),而不需要任何专门的成像或感测设备作为地图生成过程的输入。众包还能够实现对所生成地图的更快速(且廉价)的更新,因为新的驾驶信息可以从私人或商用车辆所横穿的任何道路不断地提供给映射服务器系统,这些车辆最低限度地配备,也用作采集车辆。不需要配备有高清成像和映射传感器的指定车辆。因此,可以避免与构建此类专用车辆相关联的费用。此外,对当前所公开的稀疏地图的更新可以比依赖于专门的专用映射车辆(其因为其费用和特殊设备,通常限于数量远低于已经可用于执行所公开的采集技术的私人或商用车辆的数量的专用车辆的车队)的系统快得多。
所公开的通过众包生成的稀疏地图可以极其准确,因为它们可以基于来自多个(数十个、数百个、数百万个等)已经收集沿特定道路节段的驾驶信息的采集车辆的许多输入来生成。例如,沿特定道路节段驾驶的每个采集车辆可以记录其实际轨迹并且可以相对于沿道路节段的检测到的对象/特征确定位置信息。该信息从多个采集车辆传递到服务器。实际轨迹被聚合起来,以针对沿道路节段的每个有效行驶路径生成细化的目标轨迹。此外,针对沿道路节段的检测到的对象/特征(语义或非语义)中的每一者从多个采集车辆收集的位置信息也可以聚合。因此,每个检测到的对象/特征的映射位置可以构成每个检测到的对象/特征的数百、数千或数百万个单独确定的位置的平均值。此类技术可以为检测到的对象/特征产生极其准确的经映射的位置。
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,所公开的系统和方法可以使用众包数据来生成稀疏地图,一个或多个自主车辆可以使用该稀疏地图来沿道路系统导航。如本文中所使用,“众包”意指从在不同时间在道路节段上行驶的各种车辆(例如,自主车辆)接收数据,并且此类数据用于生成和/或更新道路模型,包括稀疏地图图块。模型或其稀疏地图图块中任何可以进而发送到随后沿道路节段行驶的车辆或其他车辆,以辅助自主车辆导航。道路模型可以包括表示自主车辆在其横穿道路节段时应遵循的优选轨迹的多个目标轨迹。目标轨迹可以与从横穿道路节段的车辆收集的经重建的实际轨迹相同,该经重建的实际轨迹可以从车辆发送到服务器。在一些实施例中,目标轨迹可以不同于一个或多个车辆在横穿道路节段时先前所采取的实际轨迹。目标轨迹可以基于实际轨迹来生成(例如,通过进行平均或任何其他合适的运算)。
车辆可以上传到服务器的车辆轨迹数据可以与车辆的实际经重建的轨迹一致或者可以对应于推荐轨迹,该推荐轨迹可以基于车辆的实际经重建的轨迹或与其相关,但是可以不同于实际经重建的轨迹。例如,车辆可以修改其实际的、经重建的轨迹并向服务器提交(例如,推荐)经修改的实际轨迹。道路模型可以使用推荐的、经修改的轨迹作为其他车辆的自主导航的目标轨迹。
除了轨迹信息之外,在构建稀疏数据地图800时潜在使用的其他信息可以包括与潜在地标候选相关的信息。例如,通过信息的众包,所公开的系统和方法可以识别环境中的潜在地标并且细化地标位置。地标可以由自主车辆的导航系统用于确定和/或调整车辆沿目标轨迹的位置。
车辆在该车辆沿道路行驶时可以生成的经重建的轨迹可以通过任何合适的方法获得。在一些实施例中,经重建的可以通过使用例如自我运动估计(例如,摄像机的三维平移和三维旋转,以及因此车辆的车身)将车辆的运动节段拼接在一起来开发。旋转和平移估计可以基于由一个或多个图像捕获装置捕获的图像的分析以及来自其他传感器或装置(诸如惯性传感器和速度传感器)的信息来确定。例如,惯性传感器可以包括加速度计或被配置成测量车辆车身的平移和/或旋转的变化的其他合适的传感器。车辆可以包括测量车辆的速度的速度传感器。
在一些实施例中,摄像机(以及因此车辆车身)的自我运动可以基于所捕获的图像的光流分析来估计。图像序列的光流分析从图像序列中识别像素的移动,并且基于所识别的移动来确定车辆的运动。自我运动可以随时间并沿道路节段进行整合,以重建与车辆已经遵循的道路节段相关联的轨迹。
由多个车辆在不同时间在沿道路节段的多个驾驶中收集的数据(例如,经重建的轨迹)可以用于构建包括在稀疏数据地图800中的道路模型(例如,包括目标轨迹等)。由多个车辆在不同时间在沿道路节段的多个驾驶中收集的数据也可以平均,以提高模型的准确度。在一些实施例中,关于道路几何形状和/或地标的数据可以从在不同时间行驶通过共同道路节段的多个车辆接收。从不同车辆接收的此类数据可以组合以生成道路模型和/或更新道路模型。
沿道路节段的经重建的轨迹(以及目标轨迹)的几何形状可以由三维空间中的曲线表示,该曲线可以是连接三维多项式迹线的样条。经重建的轨迹曲线可以从由安装在车辆上的摄像机捕获的视频流或多个图像的分析确定。在一些实施例中,在每个帧或图像中识别在车辆的当前位置前方几米的位置。该位置是预期车辆在预定时间段内行驶到的位置。该操作可以逐帧重复,并且同时,车辆可以计算摄像机的自我运动(旋转和平移)。在每个帧或图像处,车辆在附接到摄像机的参考系中生成期望路径的短程模型。短程模型可以拼接在一起以获得道路在某个坐标系中的三维模型,该坐标系可以是任意的或预定的坐标系。然后可以通过样条来拟合道路的三维模型,该样条可以包括或连接合适阶数的一个或多个多项式迹线。
为了在每个帧处推断出短程道路模型,可以使用一个或多个检测模块。例如,可以使用自下而上的车道检测模块。当在道路上绘制车道标线时,自下而上的车道检测模块可以是有用的。该模块可以寻找图像中的边缘并且将它们组装在一起以形成车道标线。第二模块可以与自下而上的车道检测模块一起使用。第二模块是端到端深度神经网络,其可以经训练以从输入图像预测正确的短程路径。在这两个模块中,道路模型可以在图像坐标系中被检测并且转换为可以虚拟地附接到摄像机的三维空间。
虽然经重建的轨迹建模方法可能由于长时间段内的自我运动的整合而引入误差累积(其可能包括噪声分量),但是此类误差可以是无关紧要的,因为所生成的模型可以为局部尺度上的导航提供足够的准确度。此外,可以通过使用外部信息源(诸如卫星图像或大地测量)来消除整合误差。例如,所公开的系统和方法可以使用GNSS接收器来消除累积误差。然而,GNSS定位信号可能不总是可用且准确。所公开的系统和方法可以实现微弱地依赖于GNSS定位的可用性和准确度的转向应用。在此类系统中,GNSS信号的使用可能受到限制。例如,在一些实施例中,所公开的系统可以将GNSS信号仅用于数据库索引目的。
在一些实施例中,可以与自主车辆导航转向应用相关的范围尺度(例如,局部尺度)可以是大约50米、100米、200米、300米等。可以使用此类距离,因为几何道路模型主要用于两个目的:规划前方轨迹和在道路模型上定位车辆。在一些实施例中,当控制算法根据位于前方1.3秒(或任何其他时间,诸如1.5秒、1.7秒、2秒等)的目标点控制车辆转向时,规划任务可以在前方40米(或任何其他合适的前方距离,诸如20米、30米、50米)的典型范围内使用模型。根据在另一部分中更详细地描述的称为“尾部对齐”的方法,定位任务在汽车后面60米(或任何其他合适的距离,诸如50米、100米、150米等)的典型范围内使用道路模型。所公开的系统和方法可以生成在特定范围(诸如100米)内具有足够准确度的几何模型,使得所规划的轨迹不会偏离车道中心超过例如30cm。
如上文所解释,可以通过检测短程段并将它们拼接在一起来构建三维道路模型。可以通过使用由摄像机捕获的视频和/或图像、来自反映车辆的运动的惯性传感器的数据以及主车辆速度信号来计算六度自我运动模型来实现拼接。累积误差在某些局部范围尺度上可以足够小,诸如大约100米。所有这些可以在特定道路节段上的单个驾驶中完成。
在一些实施例中,可以使用多个驾驶来平均所得到的模型,并且进一步增加其准确度。同一汽车可以多次行驶同一路线,或者多个汽车可以将其收集的模型数据发送到中央服务器。在任何情况下,可以执行匹配程序来识别重叠模型并且实现平均,以便生成目标轨迹。一旦满足收敛标准,所构建的模型(例如,包括目标轨迹)就可以用于转向。后续驾驶可以用于进一步的模型改善,并且以便适应基础设施改变。
如果多个汽车连接到中央服务器,则在这些汽车之间共享驾驶体验(诸如感测到的数据)变得可行。每个车辆客户端可以存储通用道路模型的部分副本,该部分副本可以与其当前位置相关。车辆与服务器之间的双向更新程序可以由车辆和服务器执行。上文所讨论的小足迹概念使得所公开的系统和方法能够使用非常小的带宽来执行双向更新。
与潜在地标相关的信息还可以被确定并转发到中央服务器。例如,所公开的系统和方法可以基于包括地标的一个或多个图像来确定潜在地标的一个或多个物理性质。物理性质可以包括地标的物理大小(例如,高度、宽度)、从车辆到地标的距离、地标与先前地标之间的距离、地标的横向位置(例如,地标相对于行驶车道的位置)、地标的GPS坐标、地标的类型、地标上的文本的识别等。例如,车辆可以分析由摄像机捕获的一个或多个图像以检测潜在地标,诸如速度限制标志。
车辆可以基于一个或多个图像的分析来确定从车辆到地标的距离或与地标(例如,沿道路节段的任何语义或非语义对象或特征)相关联的位置。在一些实施例中,距离可以基于使用合适的图像分析方法(诸如缩放方法和/或光流方法)的地标的图像的分析来确定。如先前所述,对象/特征的位置可以包括与对象/特征相关联的一个或多个点的2D图像位置(例如,一个或多个所捕获的图像中的X-Y像素位置),或者可以包括一个或多个点的3D真实世界位置(例如,通过运动中结构/光流技术、LIDAR或RADAR信息等确定)。在一些实施例中,所公开的系统和方法可以被配置成确定潜在地标的类型或分类。如果车辆确定某个潜在地标对应于存储在稀疏地图中的预定类型或分类,则车辆将地标的类型或分类的指示及其位置传送给服务器可能就足够了。服务器可以存储此类指示。在稍后的时间,在导航期间,导航车辆可以捕获包括地标的表示的图像、处理该图像(例如,使用分类器)、以及比较结果地标,以便确认经映射的地标的检测并且在相对于稀疏地图定位导航车辆时使用映射地标。
在一些实施例中,在道路节段上行驶的多个自主车辆可以与服务器通信。车辆(或客户端)可以在任意坐标系中生成描述其驾驶的曲线(例如,通过自我运动整合)。车辆可以检测标并在同一帧中定位它们。车辆可以将曲线和地标上传到服务器。服务器可以通过多个驾驶从车辆收集数据,并且生成统一道路模型。例如,如下文参照图19所讨论,服务器可以使用所上传的曲线和地标来生成具有统一道路模型的稀疏地图。
服务器还可以将模型分发给客户端(例如,车辆)。例如,服务器可以将稀疏地图分发给一个或多个车辆。当从车辆接收新数据时,服务器可以连续地或周期性地更新模型。例如,服务器可以处理新数据以评估数据是否包括应当触发服务器上的更新或新数据的创建的信息。服务器可以将经更新的模型或更新分发给车辆以提供自主车辆导航。
服务器可以使用一个或多个标准来确定从车辆接收的新数据是否应当触发对模型的更新或触发新数据的创建。例如,当新数据指示在特定位置处的先前辨识的地标不再存在或者被另一地标替换时,服务器可以确定新数据应当触发对模型的更新。作为另一示例,当新数据指示道路节段已经封闭时,并且当这已经由从其他车辆接收的数据证实时,服务器可以确定新数据应当触发对模型的更新。
服务器可以将经更新的模型(或模型的经更新的部分)分发给在与对模型的更新相关联的道路节段上行驶的一个或多个车辆。服务器还可以将经更新的模型分发给即将在道路节段上行驶的车辆,或者其规划行程包括与对模型的更新相关联的道路节段的车辆。例如,当自主车辆在到达与更新相关联的道路节段之前沿另一道路节段行驶时,服务器可以在车辆到达该道路节段之前将更新或经更新的模型分发给自主车辆。
在一些实施例中,远程服务器可以从多个客户端(例如,沿共同道路节段行驶的车辆)收集轨迹和地标。服务器可以使用地标来匹配曲线并且基于从多个车辆收集的轨迹来创建平均道路模型。服务器还可以计算道路图以及道路节段的每个节点或结合处的最可能路径。例如,远程服务器可以对齐轨迹以从所收集的轨迹生成众包稀疏地图。
服务器可以对从沿共同道路节段行驶的多个车辆接收的地标性质进行平均,诸如在由多个车辆测量时一个地标到另一地标(例如,沿道路节段的前一个地标)之间的距离,以确定弧长参数并且支持沿路径的定位和每个客户端车辆的速度校准。服务器可以对由沿共同道路节段行驶并辨识同一地标的多个车辆测量的地标的物理尺寸进行平均。平均物理尺寸可以用于支持距离估计,诸如从车辆到地标的距离。服务器可以对由沿共同道路节段行驶并辨识同一地标的多个车辆测量的地标的横向位置(例如,从车辆在其中行驶的车道到地标的位置)进行平均。平均横向部分可以用于支持车道分配。服务器可以对由沿相同道路节段行驶并辨识同一地标的多个车辆测量的地标的GPS坐标进行平均。地标的平均GPS坐标可以用于支地标在持道路模型中的全球定位或定位。
在一些实施例中,服务器可以基于从车辆接收的数据来识别模型变化,诸如构建、绕道、新标志、标志的移除等。服务器可以在从车辆接收新数据时连续地或周期性地或瞬时地更新模型。服务器可以将对模型的更新或经更新的模型分发给车辆以提供自主导航。例如,如下文进一步讨论,服务器可以使用众包数据来过滤掉由车辆检测的“幽灵”地标。
在一些实施例中,服务器可以分析自主驾驶期间的驾驶者干预。服务器可以分析在干预发生的时间和地点从车辆接收的数据和/或在干预发生的时间之前接收的数据。服务器可以识别引起干预或与干预密切相关的数据的某些部分,例如,指示临时车道封闭设置的数据、指示道路中的行人的数据。服务器可以基于所识别的数据来更新模型。例如,服务器可以修改存储在模型中的一个或多个轨迹。
图12为使用众包来生成稀疏地图(以及使用众包稀疏地图进行分发和导航)的系统的示意性图示。图12示出了包括一个或多个车道的道路节段1200。多个车辆1205、1210、1215、1220和1225可以同时或在不同时间在道路节段1200上行驶(尽管在图12中示出为同时出现在道路节段1200上)。车辆1205、1210、1215、1220和1225中的至少一者可以是自主车辆。为了简化本示例,车辆1205、1210、1215、1220和1225中的所有被假定为自主车辆。
每个车辆可以类似于其他实施例中所公开的车辆(例如,车辆200),并且可以包括包括在其他实施例中所公开的车辆中或与其他实施例中所公开的车辆相关联的组件或装置。每个车辆可以配备有图像捕获装置或摄像机(例如,图像捕获装置122或摄像机122)。每个车辆可经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)通过无线通信路径1235与远程服务器1230通信,如由断续线所指示。每个车辆可以将数据发送到服务器1230并且从服务器1230接收数据。例如,服务器1230可以从在不同时间在道路节段1200上行驶的多个车辆收集数据,并且可以处理所收集的数据以生成自主车辆道路导航模型或对模型的更新。服务器1230可以将自主车辆道路导航模型或对模型的更新发送到将数据发送到服务器1230的车辆。服务器1230可以将自主车辆道路导航模型或对模型的更新发送到在稍后时间在道路节段1200上行驶的其他车辆。
当车辆1205、1210、1215、1220和1225在道路节段1200上行驶时,由车辆1205、1210、1215、1220和1225收集(例如,检测、感测或测量)的导航信息可以发送到服务器1230。在一些实施例中,导航信息可以与共同道路节段1200相关联。导航信息可以包括当每个车辆在道路节段1200上行驶时与车辆1205、1210、1215、1220和1225中的每一者相关联的轨迹。在一些实施例中,轨迹可以基于由设置在车辆1205上的各种传感器和装置感测到的数据来重建。例如,轨迹可以基于加速度计数据、速度数据、地标数据、道路几何形状或轮廓曲线数据、车辆定位数据和自我运动数据中的至少一者来重建。在一些实施例中,轨迹可以基于来自惯性传感器(诸如加速度计)的数据和由速度传感器感测到的车辆1205的速度来重建。另外,在一些实施例中,轨迹可以基于感测到的摄像机的自我运动来确定(例如,由车辆1205、1210、1215、1220和1225中的每一者车载的处理器),该自我运动可以指示三维平移和/或三维旋转(或旋转运动)。摄像机(以及因此车辆车身)的自我运动可以从由摄像机捕获的一个或多个图像的分析来确定。
在一些实施例中,车辆1205的轨迹可以由车辆1205车载设置的处理器确定并且发送到服务器1230。在其他实施例中,服务器1230可以接收由车辆1205中设置的各种传感器和装置感测的数据,并且基于从车辆1205接收的数据来确定轨迹。
在一些实施例中,从车辆1205、1210、1215、1220和1225发送到服务器1230的导航信息可以包括关于道路表面、道路几何形状或道路轮廓曲线的数据。道路节段1200的几何形状可以包括车道结构和/或地标。车道结构可以包括道路节段1200的车道总数、车道类型(例如,单向车道、双向车道、驾驶车道、超车车道等)、车道上的标记、车道宽度等。在一些实施例中,导航信息可以包括车道分配,例如,车辆正在多个车道中的哪个车道中行驶。例如,车道分配可以与指示车辆在从左或右的第三车道上行驶的数值“3”相关联。作为另一示例,车道分配可以与指示车辆正在中央车道上行驶的文本值“中央车道”相关联。
服务器1230可以将导航信息存储在非暂时性计算机可读介质上,诸如硬盘驱动器、光盘、磁带、存储器等。服务器1230可以基于从多个车辆1205、1210、1215、1220和1225接收的导航信息来(例如,通过包括在服务器1230中的处理器)生成用于共同道路节段1200的自主车辆道路导航模型的至少一部分,并且可以将该模型存储为稀疏地图的一部分。服务器1230可以基于从在不同时间在道路节段的车道上行驶的多个车辆(例如,1205、1210、1215、1220和1225)接收的众包数据(例如,导航信息)来确定与每个车道相关联的轨迹。服务器1230可以基于基于众包导航数据确定的多个轨迹来生成自主车辆道路导航模型或模型的一部分(例如,经更新的部分)。服务器1230可以将模型或模型的经更新的部分发送到在道路节段1200上行驶的自主车辆1205、1210、1215、1220和1225中的一者或多者或者在稍后时间在道路节段上行驶的任何其他自主车辆,以更新在车辆的导航系统中提供的现有自主车辆道路导航模型。自主车辆道路导航模型可以由自主车辆在沿共同道路节段1200自主导航时使用。
如上文所解释,自主车辆道路导航模型可以包括在稀疏地图(例如,图8中描绘的稀疏地图800)中。稀疏地图800可以包括与道路几何形状和/或沿道路的地标相关的数据的稀疏记录,其可以提供用于引导自主车辆的自主导航的足够信息,但不需要过多的数据存储。在一些实施例中,自主车辆道路导航模型可以与稀疏地图800分开存储,并且在模型被执行用于导航时可以使用来自稀疏地图800的地图数据。在一些实施例中,自主车辆道路导航模型可以使用包括在稀疏地图800中的地图数据来确定沿道路节段1200的目标轨迹,以引导自主车辆1205、1210、1215、1220和1225或稍后沿道路节段1200行驶的其他车辆的自主导航。例如,当自主车辆道路导航模型由包括在车辆1205的导航系统中的处理器执行时,该模型可以使处理器将基于从车辆1205接收到的导航信息而确定的轨迹与包括在稀疏地图800中的预定轨迹进行比较,以验证和/或校正车辆1205的当前行驶路线。
在自主车辆道路导航模型中,道路特征或目标轨迹的几何形状可以通过三维空间中的曲线来编码。在一个实施例中,曲线可以是包括一个或多个连接三维多项式迹线的三维样条。如本领域技术人员将理解,样条可以是由用于拟合数据的一系列多项式迹线分段定义的数值函数。用于拟合道路的三维几何形状数据的样条可以包括线性样条(一阶)、二次样条(二阶)、三次样条(三阶)、或任何其他样条(其他阶)、或它们的组合。样条可以包括连接(例如,拟合)道路的三维几何形状数据的数据点的不同阶的一个或多个三维多项式迹线。在一些实施例中,自主车辆道路导航模型可以包括对应于沿共同道路节段(例如,道路节段1200)或道路节段1200的车道的目标轨迹的三维样条。
如上文所解释,包括在稀疏地图中的自主车辆道路导航模型可以包括其他信息,诸如沿道路节段1200的至少一个地标的识别。地标可以在安装在车辆1205、1210、1215、1220和1225中的每一者上的摄像机(例如,摄像机122)的视场内可见。在一些实施例中,摄像机122可以捕获地标的图像。设置在车辆1205上的处理器(例如,处理器180、190或处理单元110)可以处理地标的图像以提取地标的识别信息。地标识别信息而不是地标的实际图像可以存储在稀疏地图800中。地标识别信息可以需要比实际图像少得多的存储空间。其他传感器或系统(例如,GPS系统)也可以提供地标的某些识别信息(例如,地标的位置)。地标可以包括交通标志、箭头标记、车道标记、断续车道标记、交通灯、停止线、方向标志(例如,具有指示方向的箭头的高速公路出口标志、具有指向不同方向或地点的箭头的高速公路标志)、地标信标或灯柱中的至少一者。地标信标是指沿道路节段安装的装置(例如,RFID装置),其将信号发射或反射到安装在车辆上的接收器,使得当车辆经过该装置时,由车辆接收的信标和装置的位置(例如,从装置的GPS位置确定)可以用作要包括在自主车辆道路导航模型和/或稀疏地图800中的地标。
至少一个地标的识别可以包括该至少一个地标的位置。地标的位置可以基于使用与多个车辆1205、1210、1215、1220和1225相关联的传感器系统(例如,全球定位系统、基于惯性的定位系统、地标信标等)执行的位置测量来确定。在一些实施例中,地标的位置可以通过对由不同车辆1205、1210、1215、1220和1225上的传感器系统通过多个驾驶检测、收集或接收的位置测量进行平均来确定。例如,车辆1205、1210、1215、1220和1225可以将位置测量数据发送到服务器1230,该服务器可以对位置测量进行平均并且使用平均位置测量作为地标的位置。地标的位置可以通过在后续驾驶中从车辆接收的测量来连续细化。
地标的识别可以包括地标的大小。设置在车辆(例如,1205)上的处理器可以基于图像的分析来估计地标的物理大小。服务器1230可以从不同驾驶上的不同车辆接收相同地标的物理大小的多个估计。服务器1230可以对不同的估计进行平均以得到地标的物理大小,并将该地标大小存储在道路模型中。物理大小估计可以用于进一步确定或估计从车辆到地标的距离。到地标的距离可以基于车辆的当前速度和基于出现在图像中的地标相对于摄像机的扩展焦点的位置的扩展比例来估计。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中V为车辆的速度,R为图像中从时间t1处的地标到扩展焦点的距离,并且D为图像中地标的距离从t1到t2的改变。dt表示(t2-t1)。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中V为车辆的速度,R为图像中地标与扩展焦点之间的距离,dt为时间间隔,并且D为地标沿对极线的图像位移。与以上等式等效的其他等式(诸如Z=V*ω/Δω),可以用于估计到地标的距离。这里,V为车辆速度,ω是图像长度(如对象宽度),并且Δω为该图像长度在单位时间内的改变。
当地标的物理大小已知时,到地标的距离也可以基于以下等式确定:Z=f*W/ω,其中f为焦距,W为地标的大小(例如,高度或宽度),ω是地标离开图像时的像素的数量。根据以上等式,距离Z的改变可以使用ΔZ=f*W*Δω/ω2+f*ΔW/ω来计算,其中ΔW通过进行平均衰减到零,并且其中Δω是表示在图像中的边界框准确度的像素的数量。估计地标的物理大小的值可以通过对在服务器侧的多个观察进行平均来计算。由此产生的距离估计误差可以非常小。使用以上公式时可能出现两个误差源,即ΔW和Δω。它们对距离误差的贡献由ΔZ=f*W*Δω/ω2+f*ΔW/ω给定。然而,通过进行平均,ΔW衰减到零;因此,ΔZ由Δω(例如,图像中边界框的不准确度)确定。
对于未知尺寸的地标,到地标的距离可以通过跟踪连续帧之间的地标上的特征点来估计。例如,出现在速度限制标志上的某些特征可以在两个或更多个图像帧之间跟踪。基于这些所跟踪的特征,可以生成每个特征点的距离分布。距离估计可以从距离分布提取。例如,出现在距离分布中的最频繁距离可以用作距离估计。作为另一示例,距离分布的平均值可以用作距离估计。
图13展示了由多个三维样条1301、1302和1303表示的示例自主车辆道路导航模型。图13中所示的曲线1301、1302和1303仅用于说明目的。每个样条可以包括连接多个数据点1310的一个或多个三维多项式迹线。每个多项式迹线可以是一阶多项式迹线、二阶多项式迹线、三阶多项式迹线或具有不同阶数的任何合适的多项式迹线的组合。每个数据点1310可以与从车辆1205、1210、1215、1220和1225接收的导航信息相关联。在一些实施例中,每个数据点1310可以与与地标(例如,地标的大小、位置和识别信息)和/或道路特征轮廓曲线(例如,道路几何形状、道路粗糙度轮廓曲线、道路曲率轮廓曲线、道路宽度轮廓曲线)相关的数据相关联。在一些实施例中,一些数据点1310可以与与地标相关的数据相关联,而其他数据点可以与与道路特征轮廓曲线相关的数据相关联。
图14展示了从五个单独的驾驶接收的原始位置数据1410(例如,GPS数据)。如果由不同车辆同时、由同一车辆在不同时间、或由不同的车辆在不同时间横穿,则一个驾驶可以与另一驾驶分开。为了考虑位置数据1410中的误差以及同一车道内的车辆的不同位置(例如,一个车辆可以比另一车辆更靠近车道的左侧驾驶),服务器1230可以使用一个或多个统计技术来生成地图骨架1420,以确定原始位置数据1410中的变化是否表示实际差异或统计误差。骨架1420内的每个路径可以链接回形成该路径的原始数据1410。例如,骨架1420内的A与B之间的路径链接到来自驾驶2、3、4和5但不来自驾驶1的原始数据1410。骨架1420可能不够详细,不足以用于导航车辆(例如,因为与上文所描述的样条不同,它组合了来自同一道路上的多个车道的驾驶),但是可以提供有用的拓扑信息并且可以用于定义交叉路口。
图15展示了示例,通过该示例可以为地图骨架的节段(例如,骨架1420内的节段A到B)内的稀疏地图生成附加细节。如图15所描绘,数据(例如,自我运动数据、道路标记数据等)可以示出为沿驾驶的位置S(或S1或S2)的函数。服务器1230可以通过识别驾驶1510的地标1501、1503和1505与驾驶1520的地标1507和1509之间的唯一匹配来识别稀疏地图的地标。此类匹配算法可以导致地标1511、1513和1515的识别。然而,本领域技术人员将认识到,可以使用其他匹配算法。例如,概率优化可以用于代替唯一匹配或与唯一匹配结合使用。服务器1230可以纵向对齐驾驶以对齐经匹配的地标。例如,服务器1230可以选择一个驾驶(例如,驾驶1520)作为参考驾驶,并且然后移位和/或弹性拉伸其他驾驶(例如,驾驶1510)以便对齐。
图16示出了用于在稀疏地图中使用的经对齐的地标数据的示例。在图16的示例中,地标1610包括道路标志。图16的示例进一步描绘了来自多个驾驶1601、1603、1605、1607、1609、1611和1613的数据。在图16的示例中,来自驾驶1613的数据由“幽灵”地标组成,并且服务器1230可以如此识别它,因为驾驶1601、1603、1605、1607、1609和1611中没有一者包括在驾驶1613中的所识别的地标附近的地标的识别。因此,服务器1230在地标在其中出现的图像与地标在其中未出现的图像的比率超过阈值时可以接受潜在地标,和/或在地标在其中未出现的图像与地标在其中出现的图像的比率超过阈值时可以拒绝潜在地标。
图17描绘了用于生成可以用于众包稀疏地图的驾驶数据的系统1700。如图17中所描绘的,系统1700可以包括摄像机1701和定位装置1703(例如,GPS定位器)。摄像机1701和定位装置1703可以安装在车辆(例如,车辆1205、1210、1215、1220和1225中的一者)上。摄像机1701可以产生多种类型的多个数据,例如自我运动数据、交通标志数据、道路数据等。摄像机数据和位置数据可以分段为驾驶节段1705。例如,驾驶节段1705可以各自具有来自小于1km的驾驶的摄像机数据和位置数据。
在一些实施例中,系统1700可以移除驾驶节段1705中的冗余。例如,如果地标出现在来自摄像机1701的多个图像中,则系统1700可以去除冗余数据,使得驾驶节段1705仅包含地标的位置的一个副本和与地标相关的任何元数据。作为进一步的示例,如果车道标记出现在来自摄像机1701的多个图像中,则系统1700可以除去冗余数据,使得驾驶节段1705仅包含车道标记的位置的一个副本和与车道标记相关的任何元数据。
系统1700还包括服务器(例如,服务器1230)。服务器1230可以从车辆接收驾驶节段1705并且将驾驶节段1705重新组合成单个驾驶1707。此类布置可以允许在车辆与服务器之间传输数据时减少带宽要求,同时还允许服务器存储与整个驾驶相关的数据。
图18描绘了图17的系统1700,其进一步被配置成用于对稀疏地图进行众包。如在图17中,系统1700包括车辆1810,该车辆使用例如摄像机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如,GPS定位器)来捕获驾驶数据。如在图17中,车辆1810将所收集的数据分段为驾驶节段(在图18中描绘为“DS1 1”、“DS21”、“DSN 1”)。服务器1230然后接收驾驶节段并且从接收到的节段重建驾驶(在图18中描绘为“驾驶1”)。
如图18中进一步描绘,系统1700还接收来自附加车辆的数据。例如,车辆1820还使用例如摄像机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如,GPS定位器)来捕获驾驶数据。类似于车辆1810,车辆1820将所收集的数据分段为驾驶节段(在图18中描绘为“DS1 2”、“DS2 2”、“DSN 2”)。服务器1230然后接收驾驶节段并且从接收到的节段重建驾驶(在图18中描绘为“驾驶2”)。可以使用任何数量的附加车辆。例如,图18还包括“汽车N”,其捕获驾驶数据、将该驾驶数据分段为驾驶节段(在图18中描绘为“DS1N”、“DS2 N”、“DSN N”),并且将它们发送到服务器1230以重建为驾驶(在图18中描绘为“驾驶N”)。
如图18所描绘,服务器1230可以使用从多个车辆(例如,“汽车1”(也标记为车辆1810)、“汽车2”(也标记为车辆1820)和“汽车N”)收集的经重建的驾驶(例如,“驾驶1”、“驾驶2”和“驾驶N”)来构建稀疏地图(描绘为“地图”)。
图19为示出用于生成用于沿道路节段的自主车辆导航的稀疏地图的示例过程1900的流程图。过程1900可以由包括在服务器1230中的一个或多个处理装置执行。
过程1900可以包括接收在一个或多个车辆横穿道路节段时获取的多个图像(步骤1905)。服务器1230可以从包括在车辆1205、1210、1215、1220和1225中的一者或多者内的摄像机接收图像。例如,当车辆1205沿道路节段1200行驶时,摄像机122可以捕获车辆1205周围的环境的一个或多个图像。在一些实施例中,服务器1230还可以接收已经由车辆1205上的处理器去除了冗余的简化图像数据,如上文参照图17所讨论。
过程1900可以进一步包括基于多个图像来识别沿道路节段延伸的道路表面特征的至少一个线表示(步骤1910)。每个线表示可以表示沿基本上与道路表面特征一致的道路节段的路径。例如,服务器1230可以分析从摄像机122接收的环境图像以识别道路边缘或车道标记,并且确定沿与道路边缘或车道标记相关联的道路节段1200的行驶轨迹。在一些实施例中,轨迹(或线表示)可以包括样条、多项式迹线表示或曲线。服务器1230可以基于在步骤1905处接收的摄像机自我运动(例如,三维平移和/或三维旋转运动)来确定车辆1205的行驶轨迹。
过程1900还可以包括基于多个图像来识别与道路节段相关联的多个地标(步骤1910)。例如,服务器1230可以分析从摄像机122接收的环境图像以识别一个或多个地标,诸如沿道路节段1200的道路标志。服务器1230可以使用在一个或多个车辆横穿道路节段时获取的多个图像的分析来识别地标。为了实现众包,分析可以包括关于接受和拒绝与道路节段相关联的可能地标的规则。例如,分析可以包括当地标在其中出现的图像与地标在其中未出现的图像的比率超过阈值时接受潜在地标、和/或当地标在其中未出现的图像与地标在其中出现的图像的比率超过阈值时拒绝潜在地标。
过程1900可以包括由服务器1230执行的其他操作或步骤。例如,导航信息可以包括车辆沿道路节段行驶的目标轨迹,并且过程1900可以包括由服务器1230对与在道路节段上行驶的多个车辆相关的车辆轨迹进行聚类,并且基于经聚类的车辆轨迹来确定目标轨迹,如下文进一步详细地讨论。对车辆轨迹进行聚类可以包括由服务器1230基于车辆的绝对航向或车辆的车道分配中的至少一者来将与在道路节段上行驶的车辆相关的多个轨迹聚类成多个聚类。生成目标轨迹可以包括由服务器1230对经聚类的轨迹进行平均。作为进一步的示例,过程1900可以包括对齐在步骤1905中接收的数据。如上文所描述,由服务器1230执行的其他过程或步骤也可以包括在过程1900中。
所公开的系统和方法可以包括其他特征。例如,所公开的系统可以使用局部坐标,而不是全球坐标。对于自主驾驶,一些系统可以以世界坐标呈现数据。例如,可以使用地球表面上的经度和纬度坐标。为了使用地图进行转向,主车辆可以确定其相对于地图的位置和取向。使用车载GPS装置似乎很自然,以便在地图上定位车辆并且以便找到车身参考系与世界参考系(例如,北、东和下)之间的旋转变换。一旦车身参考系与地图参考系对齐,则可以在身体参考系中表达期望路线并且可以计算或生成转向命令。
所公开的系统和方法可以实现采用低足迹模型的自主车辆导航(例如,转向控制),这些模型可以由自主车辆本身收集,而不需要昂贵的测量设备的帮助。为了支持自主导航(例如,转向应用),道路模型可以包括稀疏地图,该稀疏地图具有道路的几何形状、其车道结构和地标,这些地标可以用于确定车辆沿包括在模型中的轨迹的位置或方位。如上文所讨论,稀疏地图的生成可以由远程服务器执行,该远程服务器与在道路上行驶的车辆通信并且从车辆接收数据。数据可以包括感测到的数据、基于感测到的数据来重建的轨迹、和/或可以表示经修改的经重建的轨迹的推荐轨迹。如下文所讨论,服务器可以将模型发送回车辆或稍后在道路上行驶的其他车辆以帮助自主导航。
图20展示了服务器1230的框图。服务器1230可以包括通信单元2005,其可以包括硬件组件(例如,通信控制电路、交换机和天线)和软件组件(例如,通信协议、计算机代码)两者。例如,通信单元2005可以包括至少一个网络接口。服务器1230可以通过通信单元2005与车辆1205、1210、1215、1220和1225通信。例如,服务器1230可以通过通信单元2005接收从车辆1205、1210、1215、1220和1225发送的导航信息。服务器1230可以通过通信单元2005将自主车辆道路导航模型分发给一个或多个自主车辆。
服务器1230可以包括至少一个非暂时性存储介质2010,诸如硬盘驱动器、光盘、磁带等。存储装置1410可以被配置成存储数据,诸如从车辆1205、1210、1215、1220和1225接收的导航信息和/或服务器1230基于导航信息生成的自主车辆道路导航模型。存储装置2010可以被配置成存储任何其他信息,诸如稀疏地图(例如,上文参照图8所讨论的稀疏地图800)。
除了存储装置2010之外或者代替该存储装置,服务器1230可以包括存储器2015。存储器2015可以与存储器140或150类似或不同。存储器2015可以是非暂时性存储器,诸如闪存、随机存取存储器等。存储器2015可以被配置成存储数据,诸如可由处理器(例如,处理器2020)执行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主车辆道路导航模型、和/或从车辆1205、1210、1215、1220和1225接收的导航信息。
服务器1230可以包括至少一个处理装置2020,其被配置成执行存储在存储器2015中的计算机代码或指令以执行各种功能。例如,处理装置2020可以分析从车辆1205、1210、1215、1220和1225接收的导航信息,并且基于分析生成自主车辆道路导航模型。处理装置2020可以控制通信单元1405以将自主车辆道路导航模型分发给一个或多个自主车辆(例如,车辆1205、1210、1215、1220和1225中的一者或多者,或者在稍后时间在道路节段1200上行驶的任何车辆)。处理装置2020可以类似于或不同于处理器180、190或处理单元110。
图21展示了存储器2015的框图,该存储器可以存储用于执行一个或多个操作以生成用于在自主车辆导航中使用的道路导航模型的计算机代码或指令。如图21所示,存储器2015可以存储用于执行用于处理车辆导航信息的操作的一个或多个模块。例如,存储器2015可以包括模型生成模块2105和模型分发模块2110。处理器2020可以执行存储在包括在存储器2015中的模块2105和2110中的任何中的指令。
模型生成模块2105可以存储指令,该指令在由处理器2020执行时可以基于从车辆1205、1210、1215、1220和1225接收的导航信息来生成用于共同道路节段(例如,道路节段1200)的自主车辆道路导航模型的至少一部分。例如,在生成自主车辆道路导航模型时,处理器2020可以将沿共同道路节段1200的车辆轨迹聚类成不同聚类。处理器2020可以基于不同聚类中的每一者的经聚类的车辆轨迹来确定沿共同道路节段1200的目标轨迹。此类操作可以包括找到每个聚类中的经聚类的车辆轨迹的均值或平均轨迹(例如,通过对表示经聚类的车辆轨迹的数据进行平均)。在一些实施例中,目标轨迹可以与共同道路节段1200的单个车道相关联。
道路模型和/或稀疏地图可以存储与道路节段相关联的轨迹。这些轨迹可以称为目标轨迹,其被提供给自主车辆用于自主导航。目标轨迹可以从多个车辆接收,或者可以基于从多个车辆接收的实际轨迹或推荐轨迹(具有一些修改的实际轨迹)来生成。包括在道路模型或稀疏地图中的目标轨迹可以使用从其他车辆接收的新轨迹来连续更新(例如,进行平均)。
在道路节段上行驶的车辆可以通过各种传感器收集数据。数据可以包括地标、道路特征轮廓曲线、车辆运动(例如,加速度计数据、速度数据)、车辆位置(例如,GPS数据),并且可以重建实际轨迹本身,或者将数据发送到服务器,该服务器将重建车辆的实际轨迹。在一些实施例中,车辆可以将与轨迹(例如,任意参考系中的曲线)、地标数据和沿行驶路径的车道分配相关的数据发送到服务器1230。在多个驾驶下沿同一道路节段行驶的各种车辆可以具有不同轨迹。服务器1230可以通过聚类过程从从车辆接收的轨迹中识别与每个车道相关联的路线或轨迹。
图22展示了对与车辆1205、1210、1215、1220和1225相关联的车辆轨迹进行聚类以确定共同道路节段(例如,道路节段1200)的目标轨迹的过程。从聚类过程确定的目标轨迹或多个目标轨迹可以包括在自主车辆道路导航模型或稀疏地图800中。在一些实施例中,沿道路节段1200行驶的车辆1205、1210、1215、1220和1225可以将多个轨迹2200发送到服务器1230。在一些实施例中,服务器1230可以基于从车辆1205、1210、1215、1220和1225接收的地标、道路几何形状和车辆运动信息来生成轨迹。为了生成自主车辆道路导航模型,服务器1230可以将车辆轨迹1600聚类成多个聚类2205、2210、2215、2220、2225和2230,如图22所示。
可以使用各种标准来执行聚类。在一些实施例中,聚类中的所有驾驶关于沿道路节段1200的绝对航向可以是相似的。绝对航向可以从由车辆1205、1210、1215、1220和1225接收的GPS信号获得。在一些实施例中,可以使用航位推算来获得绝对航向。如本领域技术人员将理解,航位推算可以用于通过使用先前确定的位置、估计的速度等来确定当前位置并因此确定车辆1205、1210、1215、1220和1225的航向。通过绝对航向进行聚类的轨迹可以有助于识别沿道路的路线。
在一些实施例中,聚类中的所有驾驶关于沿道路节段1200上的驾驶的车道分配(例如,在路口之前和之后的相同车道中)可以是相似的。通过车道分配进行聚类的轨迹可以有助于识别沿道路的车道。在一些实施例中,两个标准(例如,绝对航向和车道分配)可以用于进行聚类。
在每个聚类2205、2210、2215、2220、2225和2230中,轨迹可以被平均以获得与特定聚类相关联的目标轨迹。例如,可以对来自与同一车道聚类相关联的多个驾驶的轨迹进行平均。平均轨迹可以是与特定车道相关联的目标轨迹。为了对轨迹的聚类进行平均,服务器1230可以选择任意轨迹C0的参考系。对于所有其他轨迹(C1,…,Cn),服务器1230可以找到将Ci映射到C0的刚性变换,其中i=1,2,…,n,其中n是正整数,对应于包括在聚类中的轨迹的总数。服务器1230可以计算C0参考系中的均值曲线或轨迹。
在一些实施例中,地标可以限定不同驾驶之间匹配的弧长,其可以用于轨迹与车道的对齐。在一些实施例中,在路口之前和之后的车道标线可以用于轨迹与车道的对齐。
为了根据轨迹组装车道,服务器1230可以选择任意车道的参考系。服务器1230可以将部分重叠的车道映射到所选择的参考系。服务器1230可以继续映射直到所有车道处于同一参考系中。彼此相邻的车道可以对齐,就好像它们是同一车道一样,并且稍后它们可以横向移位。
沿道路节段辨识的地标可以首先在车道级别,然后在路口级别映射到共同参考系。例如,相同的地标可以由多个车辆在多个驾驶中多次辨识。在不同驾驶中接收的关于相同地标的数据可以略有不同。此类数据可以被平均并且映射到同一参考系,例如C0参考系。附加地或替代地,可以计算在多个驾驶中接收的同一地标的数据的方差。
在一些实施例中,道路节段120的每个车道可以与目标轨迹和某些地标相关联。目标轨迹或多个此类目标轨迹可以包括在自主车辆道路导航模型中,该自主车辆道路导航模型可以稍后由沿同一道路节段1200行驶的其他自主车辆使用。由车辆1205、1210、1215、1220和1225在车辆沿道路节段1200行驶时识别的地标可以与目标轨迹相关联地记录。目标轨迹和地标的数据可以利用在后续驾驶中从其他车辆接收的新数据来连续地或周期性地更新。
为了定位自主车辆,所公开的系统和方法可以使用扩展卡尔曼滤波器。车辆的位置可以基于三维位置数据和/或三维取向数据来确定,通过自我运动的整合来预测车辆当前位置前方的未来位置。车辆的定位可以通过地标的图像观察来校正或调整。例如,当车辆在由摄像机捕获的图像内检测到地标时,可以将该地标与存储在道路模型或稀疏地图800内的已知地标进行比较。已知地标可以具有沿存储在道路模型和/或稀疏地图800中的目标轨迹的已知位置(例如,GPS数据)。基于当前速度和地标的图像,可以估计从车辆到地标的距离。车辆沿目标轨迹的位置可以基于到地标的距离和地标的已知位置(存储在道路模型或稀疏地图800中)来调整。存储在道路模型和/或稀疏地图800中的地标的位置/地点数据(例如,来自多个驾驶的均值)可以假定是准确的。
在一些实施例中,所公开的系统可以形成闭环子系统,其中车辆六自由度位置(例如,三维位置数据加三维取向数据)的估计可以用于导航自主车辆(例如,使其转向盘转向)以到达期望点(例如,在存储中提前1.3秒)。进而,从转向和实际导航测量的数据可以用于估计六自由度位置。
在一些实施例中,沿道路的杆(诸如灯柱和电力或电缆线杆),可以用作用于定位车辆的地标。其他地标(诸如交通标志、交通灯、道路上的箭头、停止线)以及沿道路节段的对象的静态特征或特征也可以用作用于定位车辆的地标。当杆用于定位时,可以使用杆的x观察(即,从车辆的视角),而不是y观察(即,到杆的距离),因为杆的底部可能被遮挡,并且有时他们不在道路平面上。
图23展示了用于车辆的导航系统,其可以用于使用众包稀疏地图的自主导航。为了说明,车辆被引用为车辆1205。图23中所示的车辆可以是本文所公开的任何其他车辆,包括例如车辆1210、1215、1220和1225,以及其他实施例中所示的车辆200。如图12所示,车辆1205可以与服务器1230通信。车辆1205可以包括图像捕获装置122(例如,摄像机122)。车辆1205可以包括导航系统2300,其被配置成为车辆1205提供导航引导,以在道路(例如,道路节段1200)上行驶。车辆1205还可以包括其他传感器,诸如速度传感器2320和加速度计2325。速度传感器2320可以被配置成检测车辆1205的速度。加速度计2325可以被配置成检测车辆1205的加速度或减速度。图23所示的车辆1205可以是自主车辆,并且导航系统2300可以用于为自主驾驶提供导航引导。替代地,车辆1205也可以是非自主的、人类控制的车辆,并且导航系统2300仍可以用于提供导航引导。
导航系统2300可以包括被配置成通过通信路径1235与服务器1230通信的通信单元2305。导航系统2300还可以包括被配置成接收和处理GPS信号的GPS单元2310。导航系统2300可以进一步包括至少一个处理器2315,其被配置成处理数据,诸如GPS信号、来自稀疏地图800的地图数据(其可以存储在车辆1205板载设置的存储装置上和/或从服务器1230接收)、由道路轮廓取向传感器2330感测的几何形状、由摄像机122捕获的图像、和/或从服务器1230接收的自主车辆道路导航模型。道路轮廓曲线传感器2330可以包括用于测量不同类型的道路轮廓曲线(诸如道路表面粗糙度、道路宽度、道路高程、道路曲率等)的不同类型的装置。例如,道路轮廓曲线传感器2330可以包括测量车辆2305的悬架的运动以得出道路粗糙度轮廓曲线的装置。在一些实施例中,道路轮廓曲线传感器2330可以包括雷达传感器以测量从车辆1205到路边(例如,路边上的障碍物)的距离,由此测量道路的宽度。在一些实施例中,道路轮廓曲线传感器2330可以包括被配置成测量道路的上下高程的装置。在一些实施例中,道路轮廓曲线传感器2330可以包括被配置成测量道路曲率的装置。例如,摄像机(例如,摄像机122或另一摄像机)可以用于捕获示出道路曲率的道路图像。车辆1205可以使用此类图像来检测道路曲率。
至少一个处理器2315可以被编程为从摄像机122接收与车辆1205相关联的至少一个环境图像。至少一个处理器2315可以分析至少一个环境图像以确定与车辆1205相关的导航信息。导航信息可以包括与车辆1205沿道路节段1200的行驶相关的轨迹。至少一个处理器2315可以基于摄像机122(以及因此车辆)的运动(诸如三维平移和三维旋转运动)来确定轨迹。在一些实施例中,至少一个处理器2315可以基于由摄像机122获取的多个图像的分析来确定摄像机122的平移和旋转运动。在一些实施例中,导航信息可以包括车道分配信息(例如,车辆1205在哪个车道中沿道路节段1200行驶)。从车辆1205发送到服务器1230的导航信息可以由服务器1230用于生成和/或更新自主车辆道路导航模型,该自主车辆道路导航模型可以从服务器1230发送回车辆1205以便为车辆1205提供自主导航引导。
至少一个处理器2315还可以被编程为将导航信息从车辆1205发送到服务器1230。在一些实施例中,导航信息可以与道路信息一起发送到服务器1230。道路位置信息可以包括由GPS单元2310接收的GPS信号、地标信息、道路几何形状、车道信息等中的至少一者。至少一个处理器2315可从服务器1230接收自主车辆道路导航模型或模型的一部分。从服务器1230接收的自主车辆道路导航模型可以包括基于从车辆1205发送到服务器1230的导航信息的至少一个更新。从服务器1230发送到车辆1205的模型的部分可以包括模型的经更新的部分。至少一个处理器2315可以基于接收到的自主车辆道路导航模型或模型的经更新的部分来引起车辆1205的至少一个导航操纵(例如,转向,诸如转弯、制动、加速、超过另一车辆等)。
至少一个处理器2315可以被配置成与包括在车辆1205中的各种传感器和组件通信,包括通信单元1705、GPS单元2315、摄像机122、速度传感器2320、加速度计2325和道路轮廓曲线传感器2330。至少一个处理器2315可以从各种传感器和组件收集信息或数据,并且通过通信单元2305将信息或数据发送到服务器1230。替代地或附加地,车辆1205的各种传感器或部件还可以与服务器1230通信,并且将由传感器或组件收集的数据或信息发送到服务器1230。
在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此通信,并且可以彼此共享导航信息,使得车辆1205、1210、1215、1220和1225中的至少一者可以使用众包例如基于由其他车辆共享的信息来生成自动车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此共享导航信息,并且每个车辆自身可以更新在该车辆中提供的自主车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225中的至少一者(例如,车辆1205)可以用作中心车辆。中心车辆(例如,车辆1205)的至少一个处理器2315可以执行由服务器1230执行的功能中的一些或全部。例如,中心车辆的至少一个处理器2315可以与其他车辆通信并且从其他车辆接收导航信息。中心车辆的至少一个处理器2315可以基于从其他车辆接收的共享信息来生成自主车辆道路导航模型或对模型的更新。中心车辆的至少一个处理器2315可以将自主车辆道路导航模型或对模型的更新发送到其他车辆以提供自主导航引导。
基于稀疏地图的导航
如先前所讨论,包括稀疏地图800的自主车辆道路导航模型可以包括与道路节段相关联的多个经映射的车道标线和多个经映射的对象/特征。如下文更详细地讨论,当自主车辆导航时可以使用这些经映射的车道标线、对象和特征。例如,在一些实施例中,经映射的对象和特征可以用于相对于地图(例如,相对于经映射的目标轨迹)定位主车辆。可以使用经映射的车道标线(例如,作为检查)以确定相对于规划或目标轨迹的横向位置和/或取向。利用该位置信息,自主车辆可以能够调整航向方向以匹配目标轨迹在所确定的位置处的方向。
车辆200可以被配置成检测给定道路节段中的车道标线。道路节段可以包括道路上的用于引导车行道上的车辆交通的任何标记。例如,车道标线可以是划分行驶车道的边缘的连续或断续线。车道标线还可以包括双线,诸如双连续线、双断续线或连续和断续线的组合,指示例如是否允许在相邻车道中超车。车道标线还可以包括高速公路入口和出口标记(其指示例如出口坡道的减速车道),或指示车道仅转弯或车道即将结束的点线。标记可以进一步指示工作区、临时车道变换、通过交叉路口的行驶路径、中间带、专用车道(例如,自行车车道、HOV车道等)、或其他杂项标记(例如,人行横道、减速带、铁路道口、停止线等)。
车辆200可以使用摄像机(诸如包括在图像获取单元120中的图像捕获装置122和124)来捕获周围车道标线的图像。车辆200可以分析图像以基于在所捕获的图像中的一者或多者内识别的特征来检测与车道标线相关联的点位置。这些点位置可以上传到服务器以在稀疏地图800中表示车道标线。根据摄像机的位置和视场,可以从单个图像中同时检测车辆两侧的车道标线。在其他实施例中,不同摄像机可以用于捕获车辆的多个侧面上的图像。不是上传车道标线的实际图像,标记可以作为样条或一系列点存储在稀疏地图800中,从而减小稀疏地图800和/或必须由车辆远程上传的数据的大小。
图24A至图24D展示了可以由车辆200检测以表示特定车道标线的示例性点位置。类似于上文所描述的地标,车辆200可以使用各种图像辨识算法或软件来识别所捕获的图像内的点位置。例如,车辆200可以辨识一系列边缘点、拐角点或与特定车道标线相关联的各种其他点位置。图24A示出了可以由车辆200检测的连续车道标线2410。车道标线2410可以表示车行道的外边缘,由连续白线表示。如图24A所示,车辆200可以被配置成检测沿车道标线的多个边缘位置点2411。可以收集位置点2411来以足以在稀疏地图中创建经映射的车道标线的任何间隔表示车道标线。例如,车道标线可以由每米检测到的边缘一个点、每五米检测到的边缘一个点或以其他合适的间距表示。在一些实施例中,间距可以由其他因素确定,而不是按照设定的间隔,诸如例如基于车辆200对检测到的点的位置具有最高置信排名的点。虽然图24A示出了车道标线2410的内边缘上的边缘位置点,但是可以在线的外边缘上或沿两个边缘收集点。此外,虽然图24A中示出了单个线,但是对于双连续线,可以检测类似的边缘点。例如,可以沿连续线中的一者或两者的边缘检测点2411。
取决于车道标线的类型或形状,车辆200还可以不同地表示车道标线。图24B示出了可以由车辆200检测的示例性断续车道标线2420。不是识别如图24A中的边缘点,车辆可以检测表示车道短线的拐角的一系列拐角点2421以定义短线的完整边界。虽然图24B示出了所定位的给定短线标记的每个拐角,但是车辆200可以检测或上传图中所示的点的子集。例如,车辆200可以检测给定短线标线的前边缘或前拐角,或者可以检测最靠近车道内部的两个拐角点。此外,并非可以捕获每个短线标线,例如,车辆200可以捕获和/或记录表示短线标线的样本(例如,每隔一个、每三个、每五个等)或在预定间距(例如,每米、每五米、每10米等)处的短线标线的点。对于类似车道标线,还可以检测拐角点,诸如示出车道用于出口坡道、特定车道即将结束、或可以具有可检测拐角点的其他各种车道标线的标记。对于由双断续线或连续和断续线的组合组成的车道标线,还可以检测拐角点。
在一些实施例中,上传到服务器以生成经映射的车道标线的点可以表示除了检测到的边缘点或拐角点之外的其他点。图24C展示了可以表示给定车道标线的中心线的一系列点。例如,连续车道2410可以由沿车道标线的中心线2440的中心线点2441表示。在一些实施例中,车辆200可被配置成使用各种图像辨识技术来检测这些中心点,诸如卷积神经网络(CNN)、尺度不变特征变换(SIFT)、定向梯度直方图(HOG)特征或其他技术。替代地,车辆200可以检测其他点,诸如图24A中所示的边缘点2411,并且可以例如通过检测沿每个边缘的点并且确定边缘点之间的中点来计算中心线点2441。类似地,断续车道标线2420可以由沿车道标线的中心线2450的中心线点2451表示。中心线点可以位于短线的边缘处(如图24C所示)或沿中心线的各种其他位置处。例如,每个短线可以由短线的几何中心中的单个点表示。这些点还可以沿中心线以预定间隔(例如,每米、5米、10米等)间隔开。中心线点2451可以由车辆200直接检测,或者可以基于其他检测到的参考点(诸如拐角点2421,如图24B所示)来计算。使用与上文类似的技术,中心线还可以用于表示其他车道标线类型,诸如双线。
在一些实施例中,车辆200可以识别表示其他特征(诸如两个交叉车道标线之间的顶点)的点。图24D示出了表示两个车道标线2460和2465之间的交叉点的示例性点。车辆200可以计算表示两个车道标线之间的交叉点的顶点2466。例如,车道标线2460或2465中的一个可以表示列车道口区域或道路节段中的其他道口区域。虽然车道标线2460和2465被示出为彼此垂直地交叉,但是可以检测各种其他配置。例如,车道标线2460和2465可以以其他角度交叉,或者车道标线中的一者或两者可以终止于顶点2466处。类似的技术也可以应用于断续或其他车道标线类型之间的交叉点。除了顶点2466之外,还可以检测各种其他点2467,从而提供关于车道标线2460和2465的取向的进一步信息。
车辆200可以将真实世界坐标与车道标线的每个检测到的点相关联。例如,可以生成位置标识符,包括每个点的坐标,以上传到用于映射车道标线的服务器。位置标识符可以进一步包括关于点的其他识别信息,包括点是否表示拐角点、边缘点、中心点等。车辆200因此可以被配置成基于图像的分析来确定每个点的真实世界位置。例如,车辆200可以检测图像中的其他特征(诸如上文所描述的各种地标),以定位车道标线的真实世界位置。这可以涉及确定车道标线在图像中相对于检测到的地标的位置,或者基于检测到的地标来确定车辆的位置,并且然后确定从车辆(或车辆的目标轨迹)到车道标线的距离。当地标不可用时,车道标线点的位置可以相对于基于航位推算而确定的车辆的位置来确定。包括在位置标识符中的真实世界坐标可以表示为绝对坐标(例如,纬度/经度坐标),或者可以相对于其他特征,诸如基于沿目标轨迹的纵向位置和距目标轨迹的横向距离。位置标识符可以然后被上传到服务器,用于在导航模型(诸如稀疏地图800)中生成经映射的车道标线。在一些实施例中,服务器可以构建表示道路节段的车道标线的样条。替代地,车辆200可以生成样条并且将其上传到服务器以记录在导航模型中。
图24E示出了用于包括经映射的车道标线的对应道路节段的示例性导航模型或稀疏地图。稀疏地图可以包括车辆沿道路节段遵循的目标轨迹2475。如上文所描述,目标轨迹2475可以表示车辆在其在对应道路节段行驶时要采取的理想路径,或者可以位于道路上的其他地方(例如,道路的中心线等)。目标轨迹2475可以以上文所描述的各种方法来计算,例如,基于横穿同一道路节段的车辆的两个或更多个经重建的轨迹的聚合(例如,加权组合)。
在一些实施例中,可以为所有车辆类型并且为所有道路、车辆和/或环境条件等同地生成目标轨迹。然而,在其他实施例中,在生成目标轨迹时也可以考虑各种其他因素或变量。可以为不同类型车辆(例如私人汽车、轻型卡车和全挂车)生成不同目标轨迹。例如,与较大的半挂卡车相比,可以为小型私人汽车生成具有相对更严格的转弯半径的目标轨迹。在一些实施例中,也可以考虑道路、车辆和环境条件。例如,可以针对不同道路条件(例如,湿、积雪、结冰、干燥等)、车辆条件(例如,轮胎条件或估计的轮胎条件、制动条件或估计的制动条件、剩余燃料量等)或环境因素(例如,一天中的时间、能见度、天气等)生成不同目标轨迹。目标轨迹还可以取决于特定道路节段的一个或多个方面或特征(例如,速度限制、转弯的频率和大小、坡度等)。在一些实施例中,各种使用者设置也可以用于确定目标轨迹,诸如设定的驾驶模式(例如,所期望的驾驶积极性、经济模式等)。
稀疏地图还可以包括表示沿道路节段的车道标线的经映射的车道标线2470和2480。经映射的车道标线可以由多个位置标识符2471和2481表示。如上文所描述,位置标识符可以包括与检测到的车道标线相关联的点在真实世界坐标中的位置。类似于模型中的目标轨迹,车道标线还可以包括高程数据并且可以在三维空间中表示为曲线。例如,曲线可以是连接适当阶数的三维多项式迹线的样条,曲线可以基于位置标识符来计算。经映射的车道标记还可以包括关于车道标线的其他信息或元数据,诸如车道标线类型的标识符(例如,具有相同行驶方向的两个车道之间、行驶方向相反的两个车道之间、车行道边缘等)和/或车道标线的其他特征(例如,连续、断续、单线、双线、黄色、白色等)。在一些实施例中,可以例如使用众包技术在模型内连续更新经映射的车道标线。同一车辆可以在行驶同一道路节段的多个时机期间上传位置标识符,或者可以从在不同时间在该道路节段行驶的多个车辆(例如1205、1210、1215、1220和1225)选择数据。稀疏地图800然后可以基于从车辆接收并且存储在系统中的后续位置标识符来更新或细化。随着经映射的车道标线被更新和细化,经更新的道路导航模型和/或稀疏地图可以分发给多个自主车辆。
在稀疏地图中生成经映射的车道标线还可以包括基于图像中或实际车道标线本身中的异常来检测和/或减少错误。图24F示出了与检测车道标线2490相关联的示例性异常2495。异常2495可以出现在由车辆200捕获的图像中,例如,来自阻碍摄像机对车道标线的视野的对象、镜片上的碎片等。在一些情况下,异常可以归因于车道标线本身,该车道标线可以例如被污垢、碎片、水、雪或道路上的其他物质损坏或磨损、或者部分地覆盖。异常2495可以导致由车辆200检测到错误点2491。稀疏地图800可以提供正确的经映射的车道标线并排除错误的。在一些实施例中,车辆200可以检测错误点2491,例如通过检测图像中的异常2495,或者通过基于在异常之前和之后检测到的车道标线点来识别错误。基于检测到异常,车辆可以忽略点2491或者可以将其调整为与其他检测到的点一致。在其他实施例中,可以在已经上传点之后纠正错误,例如通过基于在同一行程期间上传的其他点或者基于来自沿同一道路节段的先前行程的数据的聚合来确定该点在预期阈值之外。
导航模型和/或稀疏地图中的经映射的车道标线也可以由横穿对应车行道的自主车辆用于进行导航。例如,沿目标轨迹导航的车辆可以周期性地使用稀疏地图中的经映射的车道标线来将其自身与目标轨迹对齐。如上文所提及,在地标之间,车辆可以基于航位推算来导航,其中车辆使用传感器来确定其自我运动并且估计其相对于目标轨迹的位置。误差可以随时间累积,并且车辆相对于目标轨迹的位置确定可以变得越来越不准确。因此,车辆可以使用出现在稀疏地图800中的车道标线(及其已知位置)来减少位置确定中由航位推算引起的误差。以此方式,包括在稀疏地图800中的所识别的车道标线可以用作导航锚,从该导航锚可以确定车辆相对于目标轨迹的准确位置。
图25A示出了可以用于基于经映射的车道标线的导航的车辆周围环境的示例性图像2500。图像2500可以例如由车辆200通过包括在图像获取单元120中的图像捕获装置122和124捕获。图像2500可以包括至少一个车道标线2510的图像,如图25A所示。图像2500还可以包括一个或多个地标2521,诸如道路标志,用于如上文所描述的导航。图25A中所示的一些元素,诸如元素2511、2530和2520,其在所捕捉的图像2500中未出现,但是由车辆200检测到和/或确定,也示出以供参考。
使用上文参照图24A至图24D和图24F所描述的各种技术,车辆可以分析图像2500以识别车道标线2510。可以检测对应于图像中的车道标线的特征的各个点2511。例如,点2511可以对应于车道标线的边缘、车道标线的拐角、车道标线的中点、两个交叉车道标线之间的顶点、或者各种其他特征或位置。点2511可以被检测为对应于存储在从服务器接收的导航模型中的点的位置。例如,如果接收到包含表示经映射的车道标线的中心线的点的稀疏地图,则还可以基于车道标线2510的中心线来检测点2511。
车辆还可以确定由元素2520表示并且沿目标轨迹定位的纵向位置。纵向位置2520可以从图像2500确定,例如通过检测图像2500内的地标2521并且将所测量的位置与存储在道路模型或稀疏地图800中的已知地标位置进行比较。车辆沿目标轨迹的位置然后可以基于到地标的距离和地标的已知位置来确定。纵向位置2520还可以根据除了用于确定车道标线的位置的图像之外的图像来确定。例如,纵向位置2520可以通过检测来自图像获取单元120内的其他摄像机的与图像2500同时或接近同时拍摄的图像中的地标来确定。在一些情况下,车辆可以不在任何地标或用于确定纵向位置2520的其他参考点附近。在此类情况下,车辆可以基于航位推算来进行导航,并且因此可以使用传感器来确定其自我运动并且估计相对于目标轨迹的纵向位置2520。车辆还可以确定距离2530,该距离表示车辆与在所捕获的图像中观察到的车道标线2510之间的实际距离。在确定距离2530时,可以考虑摄像机角度、车辆的速度、车辆的宽度或各种其他因素。
图25B展示了基于道路导航模型中的经映射的车道标线的车辆的横向定位校正。如上文所描述,车辆200可以使用由车辆200捕获的一个或多个图像来确定车辆200与车道标线2510之间的距离2530。车辆200还可以能够访问道路导航模型(诸如稀疏地图800),其可以包括经映射的车道标线2550和目标轨迹2555。可以使用上文所描述的技术来建模经映射的车道标线2550,例如使用由多个车辆捕获的众包位置标识符。目标轨迹2555还可以使用先前所描述的各种技术来生成。车辆200还可以确定或估计沿目标轨迹2555的纵向位置2520,如上文参照图25A所述。然后,车辆200可以基于目标轨迹2555和对应于纵向位置2520的经映射的车道标线2550之间的横向距离来确定预期距离2540。车辆200的横向定位可以通过将使用所捕获的图像来测量的实际距离2530与距模型的预期距离2540进行比较来校正或调整。
图25C和25D提供与用于在导航期间基于稀疏地图中的经映射的地标/对象/特征来定位主车辆的另一示例相关联的图示。图25C概念性地表示从沿道路节段2560行驶的车辆捕获的一系列图像。在该示例中,道路节段2560包括由道路边缘2561和2562以及中心车道标记2563描绘的双车道分开的高速公路的直段。如图所示,主车辆正在沿与经映射的目标轨迹2565相关联的车道2564导航。因此,在理想情况下(并且没有影响因素,诸如车行道中存在目标车辆或对象等),主车辆在其沿道路节段2560的车道2564导航时应当紧密地跟踪经映射的目标轨迹2565。实际上,主车辆在其沿经映射的目标轨迹2565导航时可能经历漂移。为了有效且安全的导航,该漂移应当被保持在可接受的限度(例如,+/-10cm的距目标轨迹2565的横向位移或任何其他合适的阈值)内。为了周期性地考虑漂移并且为了进行任何所需的路线校正以确保主车辆遵循目标轨迹2565,所公开的导航系统可以能够使用包括在稀疏地图中的一个或多个经映射的特征/对象来沿目标轨迹2565定位主车辆(例如,确定主车辆相对于目标轨迹2565的横向和纵向位置)。
作为简单的示例,图25C示出了速度限制标志2566,因为其可以在主车辆沿道路节段2560导航时出现在五个不同的、顺序捕获的图像中。例如,在第一时间t0处,标志2566可以出现在地平线附近的所捕获的图像中。当主车辆接近标志2566时,在时间t1、t2、t3和t4处后续捕获的图像中,标志2566将出现在所捕获的图像的不同2D X-Y像素位置处。例如,在所捕获的图像空间中,标志2566将沿曲线2567(例如,延伸穿过五个所捕获的图像帧中的每一者中的标志的中心的曲线)向下并向右移动。当主车辆接近标志2566时,该标志的大小也看起来增加(即,它将在后续捕获的图像中占据大量像素)。
对象(诸如标志2566)的图像空间表示的这些变化可以用于确定主车辆沿目标轨迹的局部位置。例如,如本发明中所描述,任何可检测的对象或特征(诸如像标志2566的语义特征或可检测的非语义特征),可以由先前横穿道路节段(例如,道路节段2560)的一个或多个采集车辆识别。映射服务器可以从多个车辆收集所采集的驾驶信息,聚合并关联该信息,并且生成稀疏地图,该稀疏地图包括例如道路节段2560的车道2564的目标轨迹2565。稀疏地图还可以存储标志2566的位置(以及类型信息等)。在导航期间(例如,在进入道路节段2560之前),可以向主车辆提供包括道路节段2560的稀疏地图的地图图块。为了在道路节段2560的车道2564中导航,主车辆可以遵循经映射的目标轨迹2565。
标志2566的经映射的表示可以由主车辆用于相对于目标轨迹定位其自身。例如,主车辆上的摄像机将捕获主车辆的环境的图像2570,并且所捕获的图像2570可以包括具有特定大小和特定X-Y图像位置的标志2566的图像表示,如图25D所示。该大小和X-Y图像位置可以用于确定主车辆相对于目标轨迹2565的位置。例如,基于包括标志2566的表示的稀疏地图,主车辆的导航处理器可以确定响应于主车辆沿目标轨迹2565行驶,标志2566的表示应当出现在所捕获的图像中,使得标志2566的中心将(在图像空间中)沿线2567移动。如果所捕获的图像(诸如图像2570)示出中心(或其他参考点)偏离线2567(例如,预期的图像空间轨迹),则主车辆导航系统可以确定在所捕获的图像的时间处,它未位于目标轨迹2565上。然而,根据图像,导航处理器可以确定适当的导航校正以使主车辆返回到目标轨迹2565。例如,如果分析示出标志2566的图像位置在图像中相对于线2567上的预期图像空间位置向左移位了距离2572,则导航处理器可以引起主车辆改变航向(例如,改变车轮的转向角度),以使主车辆向左移动距离2573。以此方式,每个所捕获的图像可以用作反馈环路过程的一部分,使得观察到的标志2566的图像位置与预期图像轨迹2567之间的差可以最小化,以确保主车辆沿目标轨迹2565继续而几乎没有偏差或没有偏差。当然,可用的经映射的对象越多,可以越频繁地采用所描述的定位技术,这可以减少或消除漂移引起的与目标轨迹2565的偏差。
上述过程可以有助于检测主车辆相对于目标轨迹的横向取向或位移。主车辆相对于目标轨迹2565的定位还可以包括确定目标车辆沿目标轨迹的纵向位置。例如,所捕获的图像2570包括标志2566的表示,例如具有某个图像大小(例如,2D X-Y像素区域)。当经映射的标志2566沿线2567行进通过图像空间时(例如,当标志的大小逐渐增加,如图25C所示),该大小可以与该经映射的标志的预期图像大小进行比较。基于标志2566在图像2570中的图像大小,并且基于图像空间中相对于经映射的目标轨迹2565的预期尺大小进展,主车辆可以确定其相对于目标轨迹2565的纵向位置(在图像2570被捕获的时间处)。该纵向位置与相对于目标轨迹2565的任何横向位移相结合,如上文所描述,当主车辆沿道路2560导航时,允许主车辆相对于目标轨迹2565的完全定位。
图25C和25D仅提供了所公开的使用单个经映射的对象和单个目标轨迹的定位技术的一个示例。在其他示例中,可以有更多的目标轨迹(例如,多车道高速公路、城市街道、复杂路口等的每个可行车道一个目标轨迹)并且可以有更多的可用于定位的经映射的。例如,表示城市环境的稀疏地图可以包括每米许多可用于定位的对象。
图26A为示出与所公开的实施例一致的用于映射用于在自主车辆导航中使用的车道标线的示例性过程2600A的流程图。在步骤2610处,过程2600A可以包括接收与检测到的车道标线相关联的两个或更多个位置标识符。例如,步骤2610可以由服务器1230或与该服务器相关联的一个或多个处理器执行。位置标识符可以包括与检测到的车道标线相关联的点在真实世界坐标中的位置,如上文参照图24E所述。在一些实施例中,位置标识符还可以包含其他数据,诸如关于道路节段或车道标线的附加信息。在步骤2610期间还可以接收附加数据,诸如加速度计数据、速度数据、地标数据、道路几何形状或轮廓曲线数据、车辆定位数据、自我运动数据、或上文所描述的各种其他形式的数据。位置标识符可以由车辆(诸如车辆1205、1210、1215、1220和1225)基于由该车辆捕获的图像来生成。例如,标识符可以基于从与主车辆相关联的摄像机获取表示主车辆的环境的至少一个图像、分析该至少一个图像以检测主车辆的环境中的车道标线、以及分析该至少一个图像以确定检测到的车道标线相对于与主车辆相关联的位置的位置来确定。如上文所描述,车道标线可以包括各种不同标记类型,并且位置标识符可以对应于相对于车道标线的各种点。例如,在检测到的车道标记是标记车道边界的断续线的一部分的情况下,这些点可以对应于检测到的车道标线的拐角。在检测到的车道标线是标记车道边界的连续线的一部分的情况下,这些点可以对应于检测到的车道标线的边缘,具有如上文所描述的各种间距。在一些实施例中,这些点可以对应于检测到的车道标线的中心线,如图24C所示,或者可以对应于两个交叉车道标线之间的顶点和与交叉车道标线相关联的至少两个其他点,如图24D所示。
在步骤2612处,过程2600A可以包括将检测到的车道标线与对应道路节段相关联。例如,服务器1230可以分析真实世界坐标或在步骤2610期间接收的其他信息,并且将坐标或其他信息与存储在自主车辆道路导航模型中的位置信息进行比较。服务器1230可以在模型中确定对应于检测到车道标线的真实世界道路节段的道路节段。
在步骤2614处,过程2600A可以包括基于与检测到的车道标线相关联的两个或更多个位置标识符来相对于对应道路节段更新自主车辆道路导航模型。例如,自主道路导航模型可以是稀疏地图800,并且服务器1230可以更新稀疏地图以在模型中包括或调整经映射的车道标线。服务器1230可以基于上文参照图24E所描述的各种方法或过程来更新模型。在一些实施例中,更新自主车辆道路导航模型可以包括存储检测到的车道标线在真实世界坐标中的位置的一个或多个指示符。自主车辆道路导航模型还可以包括车辆沿对应道路节段遵循的至少一个目标轨迹,如图24E所示。
在步骤2616处,过程2600A可以包括将经更新的自主车辆道路导航模型分发给多个自主车辆。例如,服务器1230可以将经更新的自主车辆道路导航模型分发给车辆1205、1210、1215、1220和1225,这些车辆可以使用该模型进行导航。自主车辆道路导航模型可以经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)通过无线通信路径1235来分发,如图12所示。
在一些实施例中,可以使用从多个车辆接收的数据来映射车道标线,诸如通过众包技术,如上文参照图24E所述。例如,过程2600A可以包括从第一主车辆接收第一通信(其包括与检测到的车道标线相关联的位置标识符),以及从第二主车辆接收第二通信(其包括与检测到的车道标线相关联的附加位置标识符)。例如,可以从在同一道路节段上行驶的后续车辆,或者从在沿同一道路节段的后续行程中的同一车辆接收第二通信。过程2600A可以进一步包括基于在第一通信中接收的位置标识符并且基于在第二通信中接收的附加位置标识符来细化与检测到的车道标线相关联的至少一个位置的确定。这可以包括使用多个位置标识符的平均值和/或过滤掉可能不反映车道标线的真实世界位置的“幽灵”标识符。
图26B为示出用于使用经映射的车道标线来沿道路节段自主导航主车辆的示例性过程2600B的流程图。过程2600B可以例如由自主车辆200的处理单元110执行。在步骤2620处,过程2600B可以包括从基于服务器的系统接收自主车辆道路导航模型。在一些实施例中,自主车辆道路导航模型可以包括主车辆沿道路节段的目标轨迹,以及与与道路节段相关联的一个或多个车道标线相关联的位置标识符。例如,车辆200可以接收稀疏地图800或使用过程2600A开发的另一道路导航模型。在一些实施例中,目标轨迹可以表示为三维样条,例如,如图9B所示。如上文参照图24A至图24F所描述,位置标识符可以包括与车道标线相关联的点在真实世界坐标中的位置(例如,断续车道标线的拐角点、连续车道标线的边缘点、两个交叉车道标线之间的顶点和与交叉车道标线相关联的其他点、与车道标线相关联的中心线等)。
在步骤2621处,过程2600B可以包括接收表示车辆的环境的至少一个图像。图像可以从车辆的图像捕获装置接收,诸如通过包括在图像获取单元120中的图像捕获装置122和124。图像可以包括一个或多个车道标线的图像,类似于上文所描述的图像2500。
在步骤2622处,过程2600B可以包括确定主车辆沿目标轨迹的纵向位置。如上文参照图25A所描述,这可以基于所捕获的图像中的其他信息(例如,地标等)或通过车辆在检测到的地标之间的航位推算。
在步骤2623处,过程2600B可以包括基于所确定的主车辆沿目标轨迹的纵向位置并且基于与至少一个车道标线相关联的两个或更多个位置标识符来确定到车道标线的预期横向距离。例如,车辆200可以使用稀疏地图800来确定到车道标线的预期横向距离。如图25B所示,沿目标轨迹2555的纵向位置2520可以在步骤2622中确定。使用稀疏地图800,车辆200可以确定到对应于纵向位置2520的经映射的车道标线2550的预期距离2540。
在步骤2624处,过程2600B可以包括分析至少一个图像以识别至少一个车道标线。例如,车辆200可以使用各种图像辨识技术或算法来识别图像内的车道标线,如上文所描述。例如,车道标线2510可以通过图像2500的图像分析来检测,如图25A所示。
在步骤2625处,过程2600B可以包括基于至少一个图像的分析来确定到至少一个车道标线的实际横向距离。例如,车辆可以确定距离2530,如图25A所示,该距离表示车辆与车道标线2510之间的实际距离。在确定距离2530时,可以考虑摄像机角度、车辆的速度、车辆的宽度、摄像机相对于车辆的位置、或各种其他因素。
在步骤2626处,过程2600B可以包括基于到至少一个车道标线的预期横向距离与到至少一个车道标线的所确定的实际横向距离之间的差来确定主车辆的自主转向动作。例如,如上文参照图25B所描述,车辆200可将实际距离2530与预期距离2540进行比较。实际距离与预期距离之间的差可以指示车辆的实际位置与车辆要遵循的目标轨迹之间的误差(及其大小)。因此,车辆可以基于差来确定自主转向动作或其他自主动作。例如,如果实际距离2530小于预期距离2540,如图25B所示,则车辆可以确定引导车辆向左远离车道标线2510的自主转向动作。因此,可以校正车辆相对于目标轨迹的位置。过程2600B可以用于例如改善车辆在地标之间的导航。
过程2600A和2600B仅提供可以用于使用所公开的稀疏地图来导航主车辆的技术的示例。在其他示例中,也可以采用与相对于图25C和25D所描述的那些过程一致的过程。
用于确定对象的位置的立体辅助网络
如本文所描述,导航系统,包括用于自主车辆或半自主车辆的导航系统,可以使用从车辆的环境内捕获的图像来导航。例如,这可以包括分析图像以识别对象(诸如车辆、行人、交通标志、或各种其他对象)并且确定其相对于主车辆的位置。在一些实施例中,这些对象可以通过应用由不同图像捕获装置获取的第一和第二组图像的立体图像分析来定位。例如,可以分析从不同角度捕获的图像中表示的对象的相对位置以提取3D位置信息。
然而,使用现有的立体视觉技术通常需要跨多组图像中的多个图像帧来跟踪对象,以便准确地确定对象的3D位置。就车辆导航系统的存储和处理带宽而言,这种处理形式可能是严苛的。此外,这涉及让单个处理单元访问来自多个图像捕获装置的多个图像帧,这可能不总是可行的并且可能导致处理能力的低效率。例如,要求将所有图像馈送到单个处理单元对该处理单元提出了很高的要求,该处理单元可以以其他方式分布以提高效率。
为了解决这些和其他问题,主车辆可以使用多个经训练的模型来基于立体图像确定对象相对于主车辆的3D位置。在一些实施例中,可以分别使用第一和第二经训练的模型来处理由第一和第二摄像机捕获的图像(或图像的部分),以生成图像的特征编码。来自不同摄像机的特征编码可以输入到第三经训练的模型中以生成3D位置信息。在一些实施例中,第一和第二经训练的模型可以使用与第一和第二摄像机相关联的处理单元来实现,并且第三经训练的模型可以由中央处理器实现。因此,在一些实施例中,中央处理单元可以仅接收图像的特征编码,而不是图像本身,这可以减少带宽和对中央处理器的处理需求。此外,使用经训练的模型可以允许从来自每个摄像机的单个图像帧确定3D位置信息,而不需要随时间推移在来自每个摄像机的多个帧上跟踪对象。因此,所公开的实施例提供优于传统对象检测技术的改善的效率、准确度和性能。
图27为与所公开的实施例一致的具有用于实现立体辅助网络的多个摄像机的主车辆2700的示意性表示。主车辆2700可以是自主或半自主车辆,如上文所描述。主车辆2700可以包括主车辆2700车载的一个或多个摄像机。例如,这可以包括摄像机2720、2730、2740、2750、2760和2770,如图27所示。摄像机2720、2730、2740、2750、2760和2770可以相对于主车辆2700位于不同的位置和/或取向,使得摄像机2720、2730、2740、2750、2760和2770中的每一者提供相对于主车辆2700的不同视场。主车辆2700可以进一步包括用于确定对象相对于主车辆2700的3D位置信息的处理器2710。在一些实施例中,主车辆2700可以对应于上文所讨论的车辆200。因此,本文参照车辆200所描述的任何特征或实施例也可以应用于主车辆2700。例如,摄像机2720、2730、2740、2750、2760和2770中的一者或多者可以对应于图像捕获装置122、124和126中的一者,如上文更详细地描述。在一些实施例中,处理器2710可以对应于上文所描述的处理器110。替代地或附加地,处理器2710可以是单独的处理器。
在一些实施例中,主车辆2700可以包括与一个或多个摄像机相关联的附加处理器。例如,处理器2722可以与摄像机2720相关联,并且处理器2732可以与摄像机2730相关联。这些摄像机处理器可以以各种方式与摄像机相关联。在一些实施例中,处理器2722可以与摄像机2720集成到同一外壳中,并且因此可以专用于摄像机2720。替代地或附加地,处理器2722可以与摄像机2720分离,但仍可以专用于摄像机2720。在一些实施例中,处理器2722可以与多个摄像机相关联。例如,处理器2722可以被配置成从摄像机2720和2730接收图像,对图像执行处理(例如,将图像输入到第一和第二模型中),并且将处理的结果(例如,特征编码)发送到处理器2710。替代地或附加地,每个摄像机可以具有专用处理器,如图27所示。虽然未针对摄像机2740、2750、2760和2770示出单独的处理器,但是应当理解,主车辆2700可以类似地包括与这些摄像机相关联的处理器。此外,摄像机2720、2730、2740、2750、2760和2770的位置以示例的方式提供,并且所公开的实施例可以用于各种各样的摄像机位置。
为了确定对象相对于主车辆的位置,可以从摄像机2720、2730、2740、2750、2760和2770中的两者或更多者捕获图像。图28展示了与所公开的实施例一致的用于使用来自多个摄像机的图像来确定对象的位置的示例环境2800。例如,环境2800可以包括在主车辆2700附近范围内的行人2810。虽然行人2810以示例的方式使用,但应当理解,所公开的实施例可用于确定各种各样对象的位置信息,包括车辆、车道标记、道路标志、高速公路出口坡道、交通灯、道路障碍物或危险(例如,道路碎片等)、以及与车辆的环境相关联的任何其他特征。
与所公开的实施例一致,行人2810可以出现在从主车辆2700的多个摄像机捕获的图像中。例如,摄像机2720可以与视场2820相关联,并且摄像机2730可以与视场2830相关联。如图28所示,行人2810可以包括在视场2820和视场2830两者中。因此,由摄像机2720和摄像机2730捕获的图像两者可以包括行人2810的表示。通过分析这些所捕获的图像,可以确定相对于主车辆2700的位置。
在一些实施例中,行人2810的位置可以通过实现多个经训练的模型来确定,如上文所描述。图29展示了与所公开的实施例一致的用于确定行人2810的位置的示例过程2900。图像2920和2930可以表示分别使用摄像机2720和2730捕获的图像。例如,图像2920可以已经从视场2820捕获,并且图像2930可以已经从视场2830捕获,如上文所描述。因此,图像2920和2930可以包括行人2810的表示,如图所示。
过程2900可以包括分别将图像2920和2930(或至少其部分)输入到经训练的模型2940和2950中。经训练的模型2940可以被配置成基于图像2920来生成特征编码2942,并且经训练的模型2950可以被配置成基于图像2930来生成特征编码2952,如图29所示。在一些实施例中,图像2920的部分2922可以被提取并且输入到经训练的模型2940。例如,部分2922可以是包括行人2810的表示的图像2920的一部分。因此,处理器2722(或主车辆2700的另一处理器)可以检测图像2920内的行人2810并且可以从图像2920裁剪部分2922。类似地,处理器2732(或主车辆2700的另一处理器)可以检测图像2930内的行人2810并且可以从图像2930裁剪部分2932(包括行人2810的表示)。在一些实施例中,部分2922和2932可以具有规范的形状或大小。例如,部分2922和2932可以具有预定数量的像素(例如,64×16像素,或任何其他合适的图像大小)。
在一些实施例中,使图像2920和2930映射到参考坐标系的信息也可以输入到经训练的模型2940和2950中。例如,过程2900可以包括将使图像2920映射到参考坐标系的信息2924输入到经训练的模型2940中,并将使图像2930映射到参考坐标系的信息2934输入到经训练的模型2950中。该信息可以是将图像2920和2930内的像素与参考坐标系(即,经矫正的立体对位置)关联的任何形式的信息。例如,信息2924和2934可以包括分别对应于部分2922和2932的摄像机2720和2730的查找表(LUT)的部分。例如,摄像机2720可以与查找表相关联,该查找表包括将图像2920的每个像素平移到参考坐标系内的位置的信息。作为另一示例,信息可以包括系数阵列,诸如限定图像部分的旋转、平移、缩放、偏斜或其他改变以将其与参考坐标系对齐的系数。
图30展示了与所公开的实施例一致的与摄像机2720和2730相关联的示例查找表3020和3030。查找表3020可以是用于将像素从图像2920变换到参考图像帧3000内的扭曲位置3022的一组信息。换句话说,对于图像2920内的每个像素,查找表3020可以包括指示参考图像帧3000中的像素的图像坐标的信息。类似地,查找表3030可以是用于将像素从图像2930变换到参考图像帧3000内的扭曲位置3032的一组信息。因此,基于查找表3020和3030,图像2920和2930中的对应对象的表示可以在参考图像帧3000中对齐。查找表3020和3030可以基于摄像机2720和2730的已知位置来生成。在一些实施例中,查找表可以考虑摄像机2720和2730的各种校准因子。例如,这可以包括内在校准参数(诸如摄像机的焦距、光学中心或偏斜系数)、外在校准参数(诸如图像的旋转或平移)。虽然通过示例的方式示出了用于将来自摄像机2720和2730的图像映射到参考图像帧3000的查找表3020和3030,但是可以针对其他摄像机和/或其他参考图像帧生成各种其他查找表。例如,摄像机2740可以与对应查找表相关联以将使用摄像机2740捕获的图像映射到参考图像帧3000。作为另一示例,摄像机2720可以与用于将图像2920映射到与摄像机2720和2770相关联的参考系的附加查找表相关联。因此,根据对象在主车辆2700的哪些摄像机中可见,可以使用不同的查找表。替代地或附加地,主车辆2700的所有摄像机可以映射到同一参考图像帧(例如,作为全景图像、360度图像等)。返回图29,信息2924和2934可以包括查找表3020和3030的部分。例如,信息2924和2934可以包括分别对应于图像部分2922和2932中的像素的查找表3020和3030的部分。
基于图像部分2922(以及,在一些实施例中,信息2924),经训练的模型2940可以生成特征编码2942。特征编码2942可以包括由经训练的模型2940生成以表示图像部分2922的任何形式的信息。在一些实施例中,特征编码2942可以是预定长度(例如,128个字符)的字母数字字符的字符串、由32位整数表示的浮点数的阵列、或任何其他合适的格式。类似的编码2952可以由经训练的模型2950基于图像部分2932(以及,在一些实施例中,信息2934)来生成。经训练的模型2940和2950可以包括经训练以基于图像来生成特征编码的任何形式的机器学习模型。例如,经训练的模型2940和2950可以包括包括一系列卷积层的卷积神经网络。作为一个示例,经训练的模型2940和2950可以包括一系列卷积层(一些具有步幅1,并且一些具有步幅2),每个卷积层跟随有修正线性单元(ReLU)激活函数和全连接层。可以使用各种其他训练或机器学习算法,包括逻辑回归、线性回归、回归、随机森林、K最近邻(KNN)模型、K均值模型、决策树、cox比例危险回归模型、朴素贝叶斯模型、支持向量机(SVM)模型、梯度提升算法、或任何其他形式的机器学习模型或算法。
特征编码2942和2952然后可以输入到另一经训练的模型2960中。经训练的模型2960可以被配置成生成位置信息2962,其可以是行人2810的位置的指示符。因此,可以选择特征编码2942和2952的格式,使得它们是足以能够表达的(即,具有足够的长度),以对经训练的模型2960生成位置信息所需的信息进行编码,同时最小化需要提供给经训练的模型2960的数据。位置信息2962可以以各种格式表示。例如,位置信息2962可以包括三维坐标、GPS坐标、从主车辆2700上的点到行人2810的距离、或者可以定义行人2810在环境2800中相对于主车辆2700的三维空间位置的各种其他信息。在一些实施例中,特征编码2942和2952可以在馈送到经训练的模型2960中之前组合。例如,特征编码2942和2952可以被堆叠(例如,按其源图像的左右排序)并且馈送到经训练的模型2960中。在一些实施例中,经训练的模型2960可以是包括一系列卷积层的卷积神经网络。例如,经训练的模型2960可以包括跟随有ReLU激活函数的一系列全连接层。正如经训练的模型2940和2950,可以使用各种其他训练或机器学习算法,包括逻辑回归、线性回归、回归、随机森林、K最近邻(KNN)模型、K均值模型、决策树、cox比例危险回归模型、朴素贝叶斯模型、支持向量机(SVM)模型、梯度提升算法、或任何其他形式的机器学习模型或算法。
在一些实施例中,经训练的模型2940、2950和2960可以一起训练(例如,基于相同或相似的训练数据)。例如,经训练的模型2940、2950和2960可以使用一组共同标记的训练数据来训练。示例训练数据集可以包括各种对象的已知3D位置(例如,在三维坐标系中相对于车辆表示,或如上文所描述的其他形式的位置信息)以及立体图像对中的对象的对应图像检测(类似于图像部分2922和2932)。训练数据集不一定限于从同一组摄像机捕获的立体图像对。例如,训练数据集可以包括使用摄像机2730和2740、摄像机2740和2750、摄像机2750和2760、摄像机2760和2770、摄像机2770和2720、或视场中具有实质重叠(类似于上文所描述的视场2820与视场2830之间的重叠)的任何其他摄像机对来捕获的立体图像对,其中摄像机之间的相对校准是已知的。此外,训练数据集不一定限于由单个车辆捕获的数据,并且可以包括由多个车辆捕获的数据。训练图像检测可以输入到经训练的模型2940和2950中,并且来自经训练的模型2960的输出可以与对象在训练数据中的标记位置进行比较以确定损失。通过训练过程,可以调整模型2940、2950和2960的权重、偏差和/或其他变量以最小化该损失。因此,经训练的模型2940、2950和2960可被配置成基于图像部分2922和2932来生成位置信息2962,如上文所描述。经训练的模型2940、2950和2960的训练可以同时、基本上同时或在不同时间发生。
在一些实施例中,单个处理器(或处理单元)可以执行过程2900的全部。替代地或附加地,过程2900的部分可以在多个处理器之间分割。例如,处理器2722可以接收由摄像机2720捕获的图像2920,并且可以从图像2920提取部分2922并且从查找表3020提取信息2924。处理器2722然后可以将部分2922和信息2924输入到经训练的模型2940中,并且接收特征编码2942并且将其发生到处理器2710。类似地,处理器2732可以接收由摄像机2730捕获的图像2930,从图像2930提取部分2932,从查找表3030提取信息2934,将部分2932和信息2934输入到经训练的模型2940中,接收特征编码2952,并且将特征编码2952发送到处理器2710。处理器2710然后可以将特征编码2942和2952输入到经训练的模型2960中以生成位置信息2962。
如上文所描述,特征编码2942和2952可以对来自图像部分2922和2932的必要或相关信息以及对应信息2924和2934编码,使得模型2960可以推断期望的几何输出。因此,不是将来自多个摄像机的图像发送到处理器2710,而是可以发送相对小的特征编码(例如,与原始或经裁剪的图像相比),这可以显著减少数据发送带宽以及对处理器2710处的存储器和处理的需求。例如,表示为128个字符的特征编码可以需要比图像2920或2930(或其经裁剪的部分)显著更少的数据。即使相对于图像2920或2930的64×64像素(总共4096像素)的经裁剪的部分,假设经裁剪的图像像素以字节表示,128个字符的特征编码以浮点数(4字节)表示,特征编码仍为经裁剪的图像的1/8(512字节的特征编码与4096字节的经裁剪的图像相比)。当完整图像2920或2930以其他方式发送到中央处理器时,该数据足迹甚至更大。此外,在一些实施例中,因为仅图像2920和2930的一部分被输入到经训练的模型2940和2950中,所以就处理器2722和2732的处理要求而言,生成特征编码2942和2952也可以是高效的。这可以改善主车辆2700的整体处理速度和性能。例如,主车辆2700可以基于行人2810的位置来确定各种导航动作,并且相应地,确定位置的速度和效率的任何改善可以改善主车辆2700的安全性和其他方面。
图31为示出与所公开的实施例一致的用于导航主车辆的示例过程3100的流程图。过程3100可以包括用于确定一个或多个对象的3D位置以便确定主车辆的导航动作的技术。过程3100可以由车辆的至少一个处理装置(诸如处理装置2710、2722和2732)执行,如上文所描述。应当理解,在本发明全文中,术语“处理器”用作“至少一个处理器”的简写。换句话说,处理器可以包括执行逻辑操作的一个或多个结构,无论此类结构是并置的、连接的还是分散的。在一些实施例中,非暂时性计算机可读介质可以包含指令,该指令在由处理器执行时使处理器执行过程3100。此外,过程3100不一定限于图31中所示的步骤,并且在本发明全文中所描述的各种实施例的任何步骤或过程也可以包括在过程3100中,包括上文参照图27、28、29和30所描述的那些步骤或过程。
在步骤3110中,过程3100包括接收由主车辆车载的第一摄像机获取的第一图像。例如,步骤3110可以包括接收由摄像机2720获取的图像2920。第一图像可以已经从主车辆的环境获取。例如,第一图像可以已经从环境2800内的视场2820获取。在一些实施例中,第一摄像机和第二摄像机可以相对于主车辆的参考点位于不同的位置。
在步骤3120中,过程3100包括接收由主车辆车载的第二摄像机获取的第二图像。例如,步骤3120可以包括接收由摄像机2730获取的图像2930。第二图像可以已经从主车辆的环境获取。例如,第二图像可以已经从环境2800内的视场2830获取。
在步骤3130中,过程3100包括识别对象在第一图像中的第一表示和该对象在第二图像中的第二表示。例如,这可以包括识别行人2810在图像2920和2930中的表示,如上文所描述。在一些实施例中,这可以包括用于辨识对象的各种计算机视觉算法的应用,包括本文所描述的各种技术。虽然以示例的方式使用行人,但是对象可以包括车辆、道路上的碎片、或者如本文所描述的各种其他对象。
在步骤3140中,过程3100包括将第一图像的至少一部分输入到第一经训练的模型。例如,这可以包括将图像2920的部分2922输入到经训练的模型2940中,如上文所描述。因此,第一图像的至少一部分可以包括对象的第一表示的至少一部分。在一些实施例中,第一图像的至少一部分可以包括第一边界框。第一经训练的模型可以被配置成至少使用对象的第一表示来确定第一特征编码。例如,经训练的模型2940可以被配置成生成特征编码2942,如上文所描述。在一些实施例中,确定第一特征编码可以进一步包括将使第一图像映射到参考坐标系的信息输入到第一经训练的模型。例如,这可以包括输入信息2924,如图29所示。将第一图像映射到参考坐标系的信息可以包括与第一摄像机相关联的查找表(诸如查找表3020)的至少一部分。如上文所描述,查找表可以基于第一摄像机的至少一个校准参数(诸如焦距、光学中心、偏斜系数、旋转、平移、或可以与定义不同摄像机的相对视场相关的各种其他参数)来生成。
在步骤3150中,过程3100包括将第二图像的至少一部分输入到第二经训练的模型。例如,这可以包括将图像2930的部分2932输入到经训练的模型2950中,如上文所描述。因此,第二图像的至少一部分可以包括对象的第二表示的至少一部分。在一些实施例中,第二图像的至少一部分可以包括第二边界框。第二经训练的模型可以被配置成至少使用对象的第二表示来确定第二特征编码。例如,经训练的模型2950可以被配置成生成特征编码2952,如上文所描述。在一些实施例中,确定第二特征编码可以进一步包括将使第二图像映射到参考坐标系的信息输入到第二经训练的模型。例如,这可以包括输入信息2934,如图29所示。将第二图像映射到参考坐标系的信息可以包括与第二摄像机相关联的查找表(诸如查找表3030)的至少一部分。在一些实施例中,第一经训练的模型和第二经训练的模型各自包括神经网络。
在步骤3160中,过程3100包括接收由第一经训练的模型确定的第一特征编码。例如,这可以包括从经训练的模型2940接收特征编码2942,如上文所描述。步骤3160还可以包括接收由第二经训练的模型确定的第二特征编码。例如,这可以包括从经训练的模型2950接收特征编码2952,如上文所描述。
在步骤3170中,过程3100包括将第一特征编码和第二特征编码输入到第三经训练的模型。例如,这可以包括将特征编码2942和特征编码2952输入到经训练的模型2960中,如上文所描述。第三经训练的模型可以被配置成至少基于第一特征编码和第二特征编码来确定对象在主车辆的环境内的位置。例如,第三经训练的模型可以被配置成基于特征编码2942和特征编码2952来确定行人2810在环境2700内的位置。
在步骤3180中,过程3100可以包括接收由第三经训练的模型确定的对象的位置的指示符。例如,这可以包括接收位置信息2962,如上文所描述。位置的指示符可以具有各种格式。在一些实施例中,对象的位置的指示符可以包括三维坐标。作为另一示例,对象的位置的指示符可以包括全球定位系统(GPS)坐标。在将使第一和第二图像映射到参考坐标系的信息输入到第一和第二模型中的实施例中,对象在主车辆的环境内的位置可以相对于参考坐标系确定。过程3100可以进一步包括将对象在主车辆的环境内的位置从参考坐标系平移到主车辆的坐标系。
在一些实施例中,过程3100可以进一步包括使至少一个处理器输出对象的位置的指示符。主车辆可以被配置成基于对象的位置的指示符来实现一个或多个导航动作。例如,一个或多个导航动作可以包括转向、制动或加速中的至少一者。
如上文所描述,过程3100可以由主车辆2700的多个处理器执行。例如,至少一个处理器可以包括与第一摄像机相关联的至少一个第一处理器、与第二摄像机相关联的至少一个第二处理器、以及至少一个第三处理器。至少一个第一处理器可以被配置成执行:接收由第一摄像机获取的第一图像(步骤3110);识别对象在第一图像中的第一表示(步骤3130);将第一图像的至少一部分输入到第一经训练的模型(步骤3140);以及接收由第一经训练的模型确定的第一特征编码(步骤3160)。至少一个第二处理器可以被配置成执行:接收由第二摄像机获取的第二图像(步骤3120);识别对象在第二图像中的第二表示(步骤3130);将第二图像的至少一部分输入到第二经训练的模型(步骤3150);以及接收由第二经训练的模型确定的第二特征编码(步骤3160)。至少一个第三处理器可以被配置成执行:将第一特征编码和第二特征编码输入到第三经训练的模型(步骤3170);以及接收由第三经训练的模型确定的对象的位置的指示符(步骤3180)。
呈现前述描述是为了说明的目的。这并非是详尽的并且不限于所公开的精确形式或实施例。通过考虑说明书并实践所公开的实施例,修改和适应对于本领域技术人员来说将是显而易见的。此外,虽然所公开的实施例的各方面被描述为存储在存储器中,但是本领域技术人员应当理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储装置(例如硬盘或CD ROM)、或其他形式的RAM或ROM、USB介质、DVD、蓝光、4K超高清蓝光或其他光驱介质。
基于书面描述和所公开的方法的计算机程序在有经验的开发者的技术范围内。各种程序或程序模块可以使用本领域技术人员已知的任何技术来创建,或者可以结合现有软件来设计各种。例如,程序段或程序模块可以在.Net Framework、.Net Compact Framework(以及相关语言,诸如Visual Basic、C等)、Java、C++、Objective-C、HTML、HTML/AJAX组合、XML、或具有所包括的Java小程序的HTML中或借助其进行设计。
此外,虽然本文已经描述了说明性实施例,但本领域技术人员基于本发明应当理解具有等效特征、修改、省略、(例如,跨各个实施例的方面)的组合、适应和/或改变的任何和所有实施例的范围。权利要求中的限制应基于权利要求中所使用的语言来广义地解释,并且不限于本说明书中或在本申请的审查期间所描述的示例。这些示例应被解释为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包括通过重新排序步骤和/或插入或删除步骤。因此,本说明书和示例希望仅视为说明性的,真实范围和精神由所附权利要求书及其等同物的完整范围指示。
Claims (26)
1.一种用于主车辆的导航系统,所述导航系统包括:
至少一个处理器,其包括电路系统并且能够访问至少一个存储器,其中所述至少一个存储器包括指令,所述指令在由所述电路系统执行时使所述至少一个处理器:
接收由所述主车辆车载的第一摄像机获取的第一图像,所述第一图像已经从所述主车辆的环境获取;
接收由所述主车辆车载的第二摄像机获取的第二图像,所述第二图像已经从所述主车辆的所述环境获取;
识别对象在所述第一图像中的第一表示和所述对象在所述第二图像中的第二表示;
将所述第一图像的至少一部分输入到第一经训练的模型,其中所述第一图像的所述至少一部分包括所述对象的所述第一表示的至少一部分,并且其中所述第一经训练的模型被配置成至少使用所述对象的所述第一表示来确定第一特征编码;
将所述第二图像的至少一部分输入到第二经训练的模型,其中所述第二图像的所述至少一部分包括所述对象的所述第二表示的至少一部分,并且其中所述第二经训练的模型被配置成至少使用所述对象的所述第二表示来确定第二特征编码;
接收由所述第一经训练的模型确定的所述第一特征编码;
接收由所述第二经训练的模型确定的所述第二特征编码;
将所述第一特征编码和所述第二特征编码输入到第三经训练的模型,其中
所述第三经训练的模型被配置成至少基于所述第一特征编码和所述第二特征编码来确定所述对象在所述主车辆的所述环境内的位置;以及
接收由所述第三经训练的模型确定的所述对象的所述位置的指示符。
2.根据权利要求1所述的系统,其中所述对象的所述位置的所述指示符包括三维坐标。
3.根据权利要求1所述的系统,其中所述对象的所述位置的所述指示符包括全球定位系统(GPS)坐标。
4.根据权利要求1所述的系统,其中确定所述第一特征编码进一步包括将使所述第一图像映射到参考坐标系的信息输入到所述第一经训练的模型。
5.根据权利要求4所述的系统,其中使所述第一图像映射到所述参考坐标系的所述信息包括与所述第一摄像机相关联的查找表的至少一部分。
6.根据权利要求5所述的系统,其中所述查找表是基于所述第一摄像机的至少一个校准参数而生成的。
7.根据权利要求6所述的系统,其中所述校准参数包括焦距、光学中心或偏斜系数中的至少一者。
8.根据权利要求6所述的系统,其中所述校准参数包括旋转或平移中的至少一者。
9.根据权利要求4所述的系统,其中所述对象在所述主车辆的所述环境内的所述位置是相对于所述参考坐标系确定的。
10.根据权利要求9所述的系统,其中所述至少一个存储器进一步包括指令,所述指令在由所述电路系统执行时使所述至少一个处理器将所述对象在所述主车辆的所述环境内的所述位置从所述参考坐标系转换到所述主车辆的坐标系。
11.根据权利要求4所述的系统,其中确定所述第二特征编码进一步包括将使所述第二图像映射到所述参考坐标系的信息输入到所述第二经训练的模型。
12.根据权利要求1所述的系统,其中所述第一图像的所述至少一部分包括第一边界框,并且所述第二图像的所述至少一部分包括第二边界框。
13.根据权利要求1所述的系统,其中所述至少一个处理器包括与所述第一摄像机相关联的至少一个第一处理器以及与所述第二摄像机相关联的至少一个第二处理器。
14.根据权利要求13所述的系统,其中所述至少一个存储器包括与所述第一摄像机相关联的第一存储器,所述第一存储器包括指令,所述指令在被执行时使所述至少一个第一处理器执行:
接收由所述第一摄像机获取的所述第一图像;
识别所述对象在所述第一图像中的所述第一表示;
将所述第一图像的所述至少一部分输入到所述第一经训练的模型;以及
接收由所述第一经训练的模型确定的所述第一特征编码;
其中所述至少一个存储器进一步包括与所述第二摄像机相关联的第二存储器,所述第二存储器包括指令,所述指令在被执行时使所述至少一个第二处理器执行:
接收由所述第二摄像机获取的所述第二图像;
识别所述对象在所述第二图像中的所述第二表示;
将所述第二图像的所述至少一部分输入到所述第二经训练的模型;以及
接收由所述第二经训练的模型确定的所述第二特征编码;并且
其中所述至少一个处理器进一步包括至少一个第三处理器,并且所述至少一个存储器进一步包括与所述至少一个第三处理器相关联的第三存储器,所述第三存储器包括指令,所述指令在被执行时使所述至少一个第三处理器执行:
将所述第一特征编码和所述第二特征编码输入到所述第三经训练的模型;以及
接收由所述第三经训练的模型确定的所述对象的位置的所述指示符。
15.根据权利要求13所述的系统,其中所述至少一个第一处理器包括在包含所述第一摄像机的第一外壳中,并且所述至少一个第二处理器包括在包含所述第二摄像机的第二外壳中。
16.根据权利要求1所述的系统,其中所述第一摄像机和所述第二摄像机相对于所述主车辆的参考点位于不同的位置。
17.根据权利要求1所述的系统,其中所述第一经训练的模型和所述第二经训练的模型各自包括神经网络。
18.根据权利要求1所述的系统,其中所述第三经训练的模型包括神经网络。
19.根据权利要求1所述的系统,其中所述对象包括目标车辆。
20.根据权利要求1所述的系统,其中所述对象包括行人。
21.根据权利要求1所述的系统,其中所述对象包括道路上的碎片。
22.根据权利要求1所述的系统,其中所述至少一个存储器进一步包括指令,所述指令在由所述电路系统执行时使所述至少一个处理器输出所述对象的所述位置的所述指示符。
23.根据权利要求22所述的系统,其中所述主车辆被配置成基于所述对象的所述位置的所述指示符来实现一个或多个导航动作。
24.根据权利要求23所述的系统,其中所述一个或多个导航动作包括转向、制动或加速中的至少一者。
25.一种用于导航主车辆的方法,所述方法包括:
接收由所述主车辆车载的第一摄像机获取的第一图像,所述第一图像已经从所述主车辆的环境获取;
接收由所述主车辆车载的第二摄像机获取的第二图像,所述第二图像已经从所述主车辆的所述环境获取;
识别对象在所述第一图像中的第一表示和所述对象在所述第二图像中的第二表示;
将所述第一图像的至少一部分输入到第一经训练的模型,其中所述第一图像的所述至少一部分包括所述对象的所述第一表示的至少一部分,并且其中所述第一经训练的模型被配置成至少使用所述对象的所述第一表示来确定第一特征编码;
将所述第二图像的至少一部分输入到第二经训练的模型,其中所述第二图像的所述至少一部分包括所述对象的所述第二表示的至少一部分,并且其中所述第二经训练的模型被配置成至少使用所述对象的所述第二表示来确定第二特征编码;
接收由所述第一经训练的模型确定的所述第一特征编码;
接收由所述第二经训练的模型确定的所述第二特征编码;
将所述第一特征编码和所述第二特征编码输入到第三经训练的模型,其中所述第三经训练的模型被配置成至少基于所述第一特征编码和所述第二特征编码来确定所述对象在所述主车辆的所述环境内的位置;以及
接收由所述第三经训练的模型确定的所述对象的所述位置的指示符。
26.一种非暂时性计算机可读介质,其存储指令,所述指令可由至少一个处理器执行以执行用于导航主车辆的方法,所述方法包括:
接收由所述主车辆车载的第一摄像机获取的第一图像,所述第一图像已经从所述主车辆的环境获取;
接收由所述主车辆车载的第二摄像机获取的第二图像,所述第二图像已经从所述主车辆的所述环境获取;
识别对象在所述第一图像中的第一表示和所述对象在所述第二图像中的第二表示;
将所述第一图像的至少一部分输入到第一经训练的模型,其中所述第一图像的所述至少一部分包括所述对象的所述第一表示的至少一部分,并且其中所述第一经训练的模型被配置成至少使用所述对象的所述第一表示来确定第一特征编码;
将所述第二图像的至少一部分输入到第二经训练的模型,其中所述第二图像的所述至少一部分包括所述对象的所述第二表示的至少一部分,并且其中所述第二经训练的模型被配置成至少使用所述对象的所述第二表示来确定第二特征编码;
接收由所述第一经训练的模型确定的所述第一特征编码;
接收由所述第二经训练的模型确定的所述第二特征编码;
将所述第一特征编码和所述第二特征编码输入到第三经训练的模型,其中所述第三经训练的模型被配置成至少基于所述第一特征编码和所述第二特征编码来确定所述对象在所述主车辆的所述环境内的位置;以及
接收由所述第三经训练的模型确定的所述对象的所述位置的指示符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163272862P | 2021-10-28 | 2021-10-28 | |
US63/272,862 | 2021-10-28 | ||
PCT/IB2022/000647 WO2023073428A1 (en) | 2021-10-28 | 2022-10-27 | Stereo-assist network for determining an object's location |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118435250A true CN118435250A (zh) | 2024-08-02 |
Family
ID=84462625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280085693.1A Pending CN118435250A (zh) | 2021-10-28 | 2022-10-27 | 用于确定对象的位置的立体辅助网络 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11858504B2 (zh) |
EP (1) | EP4423730A1 (zh) |
CN (1) | CN118435250A (zh) |
WO (1) | WO2023073428A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12243302B2 (en) * | 2022-10-25 | 2025-03-04 | Accenture Global Solutions Limited | Utilizing machine learning models to classify vehicle trajectories and collect road use data in real-time |
KR20240094055A (ko) * | 2022-11-18 | 2024-06-25 | 현대자동차주식회사 | 차량, 차량 제어 방법, 및 차량의 주행 제어 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2757524B1 (en) * | 2013-01-16 | 2018-12-19 | Honda Research Institute Europe GmbH | Depth sensing method and system for autonomous vehicles |
EP3036730B1 (en) * | 2013-08-20 | 2019-12-18 | Harman International Industries, Incorporated | Traffic light detection |
CN107438754A (zh) | 2015-02-10 | 2017-12-05 | 御眼视觉技术有限公司 | 用于自主车辆导航的稀疏地图 |
KR20250007028A (ko) * | 2016-12-09 | 2025-01-13 | 톰톰 글로벌 콘텐트 비.브이. | 비디오 기반 위치결정 및 매핑을 위한 방법 및 시스템 |
US10546387B2 (en) * | 2017-09-08 | 2020-01-28 | Qualcomm Incorporated | Pose determination with semantic segmentation |
US11966838B2 (en) * | 2018-06-19 | 2024-04-23 | Nvidia Corporation | Behavior-guided path planning in autonomous machine applications |
US11295161B2 (en) * | 2019-05-22 | 2022-04-05 | Zoox, Inc. | Localization using semantically segmented images |
EP4042109A1 (en) | 2019-10-08 | 2022-08-17 | Mobileye Vision Technologies Ltd. | Systems and methods for vehicle navigation |
-
2022
- 2022-10-27 CN CN202280085693.1A patent/CN118435250A/zh active Pending
- 2022-10-27 US US17/974,789 patent/US11858504B2/en active Active
- 2022-10-27 WO PCT/IB2022/000647 patent/WO2023073428A1/en active Application Filing
- 2022-10-27 EP EP22821605.7A patent/EP4423730A1/en active Pending
-
2024
- 2024-04-25 US US18/645,962 patent/US20240273753A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240273753A1 (en) | 2024-08-15 |
EP4423730A1 (en) | 2024-09-04 |
US11858504B2 (en) | 2024-01-02 |
US20230138686A1 (en) | 2023-05-04 |
WO2023073428A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7609444B2 (ja) | 車両ナビゲーションのためのシステム | |
JP7582736B2 (ja) | 車両ナビゲーション用のシステム、方法およびプログラム | |
CN112204349B (zh) | 用于车辆导航的系统和方法 | |
US11680801B2 (en) | Navigation based on partially occluded pedestrians | |
CN112654836A (zh) | 用于车辆导航的系统和方法 | |
CN116026345A (zh) | 用于车辆导航的系统和方法 | |
CN114729813A (zh) | 用于车辆导航的系统和方法 | |
CN119124135A (zh) | 用于导航主车辆的系统、方法 | |
CN117053813A (zh) | 使用电子地平线导航交通工具 | |
CN113825979A (zh) | 用于基于图像分析的车辆导航的系统和方法 | |
CN118836885A (zh) | 用于自动地生成导航地图的系统和方法 | |
US20220327843A1 (en) | Systems and methods for detecting traffic lights | |
US20220351526A1 (en) | Multi-frame image segmentation | |
CN117824697A (zh) | 用于基于地图的真实世界建模的系统和方法 | |
CN116783455A (zh) | 用于检测打开的门的系统和方法 | |
CN118984788A (zh) | 计算针对道路曲线的车辆速度 | |
US20230211801A1 (en) | Traffic light oriented network | |
CN117571001A (zh) | 用于公共速度映射和导航的系统和方法 | |
CN118829954A (zh) | 众包的转弯指示器 | |
US20240273753A1 (en) | Stereo-assist network for determining an object's location | |
US20240135728A1 (en) | Graph neural networks for parsing roads | |
CN117651668A (zh) | 用于监测车道标记质量的系统和方法 | |
US20240029446A1 (en) | Signature network for traffic sign classification | |
CN118265957A (zh) | 用于车辆导航的雷达-摄像头融合 | |
CN116734848A (zh) | 关于行人和确定交通工具自由空间的交通工具导航 |
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 |