CN111837014A - 用于匿名化导航信息的系统和方法 - Google Patents

用于匿名化导航信息的系统和方法 Download PDF

Info

Publication number
CN111837014A
CN111837014A CN201980017330.2A CN201980017330A CN111837014A CN 111837014 A CN111837014 A CN 111837014A CN 201980017330 A CN201980017330 A CN 201980017330A CN 111837014 A CN111837014 A CN 111837014A
Authority
CN
China
Prior art keywords
road
vehicle
road segment
navigation
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980017330.2A
Other languages
English (en)
Inventor
K.维恩特
E.哈雷尔
A.T.塔米尔
M.施瓦兹
D.沙皮拉
N.内胡什坦
Y.格达尔亚胡
D.布劳恩斯坦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mobileye Vision Technologies Ltd
Original Assignee
Mobileye Vision Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mobileye Vision Technologies Ltd filed Critical Mobileye Vision Technologies Ltd
Publication of CN111837014A publication Critical patent/CN111837014A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3602Input other than that of destination using image analysis, e.g. detection of road signs, lanes, buildings, real preceding vehicles using a camera
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P11/00Measuring average value of speed
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01WMETEOROLOGY
    • G01W1/00Meteorology
    • G01W1/02Instruments for indicating weather conditions by measuring two or more variables, e.g. humidity, pressure, temperature, cloud cover or wind speed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/646Following a predefined trajectory, e.g. a line marked on the floor or a flight path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/80Arrangements for reacting to or preventing system or operator failure
    • G05D1/81Handing over between on-board automatic and on-board manual control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Atmospheric Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Environmental Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Ecology (AREA)
  • Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Electromagnetism (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

提供了用于对导航数据进行匿名化并使用匿名数据生成自主车辆道路导航模型的系统和方法。导航系统可以从车辆接收与路节有关的数据。该系统可以确定与车辆相关联的一个或多个运动表示以及与路节相关联的一个或多个道路特征。该系统可以组装相对于路节的第一部分的导航信息和相对于路节的第二部分的导航信息。第一部分和第二部分可以在空间上由第三部分隔开。该系统可以发送与第一部分和第二部分有关的导航信息,并且放弃与第三部分有关的信息。服务器可以接收发送的导航信息并且组装自主车辆道路导航模型。服务器可以将导航模型发送到一个或多个车辆以用于自主导航。

Description

用于匿名化导航信息的系统和方法
相关申请的交叉引用
本申请要求2018年3月5日提交的美国临时专利申请第62/638,713号、2018年3月14日提交的美国临时专利申请第62/642,823号、2018年5月15日提交的美国临时专利申请第62/671,779号、2018年11月26日提交的美国临时专利申请第62/771,335号、2019年2月14日提交的美国临时专利申请第62/805,632号、2019年2月14日提交的美国临时专利申请第62/805,646号以及2019年3月4日提交的美国临时专利申请第62/813,403号的优先权。所有前述申请均通过引用整体并入本文。
技术领域
本公开总体上涉及自主车辆导航。
背景技术
随着技术的不断发展,能够在道路上导航的完全自主车辆的目标已迫在眉睫。自主车辆可能需要考虑多种因素,并基于这些因素做出适当的决定以安全、准确地到达预定目的地。例如,自主车辆可能需要处理和解释视觉信息(例如,从相机捕获的信息),并且还可以使用从其他来源(例如,从GPS设备、速度传感器、加速度计、悬架传感器(suspensionsensor)等)获得的信息。同时,为了导航到目的地,自主车辆可能还需要识别其在特定道路内的位置(例如,多车道道路内的特定车道)、与其他车辆并排导航、避开障碍物和行人、观察交通信号和标志、以及在适当的交叉路口或立交桥从一条道路行驶到另一条道路。在车辆行驶到目的地时,利用和解释自主车辆收集的大量信息带来了许多设计挑战。自主车辆可能需要分析、访问和/或存储的海量数据(例如,捕获的图像数据、地图数据、GPS数据、传感器数据等)带来了可能实际上会限制甚至对自主导航产生不利影响的挑战。此外,如果自主车辆依靠传统的地图技术来导航,则存储和更新地图所需的海量数据会带来艰巨的挑战。
发明内容
与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包括监视车辆的环境的一个、两个或更多个相机。所公开的系统可以基于例如对由一个或多个相机捕获的图像的分析来提供导航响应。
在一些实施例中,该系统和方法可以包括导航系统,该导航系统用于收集相对于主车辆穿越的路节(road section)的匿名导出信息。导航系统可以包括至少一个处理器。至少一个处理器可以被编程为执行与本公开一致的一个或多个功能、过程或方法。处理器可以被编程为接收指示主车辆的运动的输出。可以从与主车辆相关联的一个或多个传感器接收输出。处理器可以被编程为至少部分地基于来自一个或多个传感器的输出来确定主车辆的至少一个运动表示。处理器可以被编程为接收表示主车辆的环境的至少一个图像。至少一个图像可以从相机接收,并且可以包括沿着路节的环境的表示。处理器可以被编程为分析至少一个图像以确定与路节相关联的至少一个道路特征。处理器可以被编程为组装相对于道路的第一部分的第一路段(road segment)信息。第一路段信息可以包括所确定的主车辆的至少一个运动表示,并且可以包括所确定的相对于路节的第一部分的至少一个道路特征。处理器可以被编程为组装相对于路节的第二部分的第二路段信息。第二路段信息可以以与第一路段信息基本相同的方式组装。第二路段信息可以包括所确定的主车辆的至少一个运动表示以及所确定的相对于路节的第二部分的至少一个道路特征。路节的第二部分可以与路节的第一部分不同,并且路节的第二部分可以与路段的第一部分在空间上由路节的第三部分隔开。处理器可以被编程为使第一路段信息和第二路段信息发送到相对于主车辆定位的服务器,以组装自主车辆道路导航模型。处理器可以被编程为放弃向服务器发送与路节的第三部分有关的组装的路段信息。
在一些实施例中,系统和方法可以包括基于服务器的系统,基于服务器的系统用于处理车辆导航信息以用于自主车辆导航。基于服务器的系统可以包括至少一个处理器。至少一个处理器可以被编程为执行与本公开一致的一个或多个功能、过程或方法。处理器可以被编程为从多个车辆接收导航信息。来自多个车辆的导航信息可以与共同路节相关联。来自多个车辆中的每一个的导航信息可以包括相对于共同路节的第一部分的路段信息和相对于共同路节的第二部分的路段信息。第一路段信息可以包括所确定的主车辆的至少一个运动表示以及所确定的相对于共同路节的第一部分的至少一个道路特征。第二路段信息可以包括所确定的主车辆的至少一种运动表示以及所确定的相对于共同路节的第二部分的至少一个道路特征。路节的第二部分可以与路节的第一部分不同,并且路节的第二部分可以在空间上与路节的第一部分隔开。处理器可以被编程为存储与共同路节相关联的导航信息。处理器可以被编程为基于从多个车辆接收的导航信息来生成共同路节的自主车辆道路导航模型的至少一部分。处理器可以被编程为将自主车辆道路导航模型分配给一个或多个自主车辆,以用于沿着共同路节自主导航一个或多个自主车辆。
与其他公开的实施例一致,非暂时性计算机可读存储介质可以存储由至少一个处理设备运行并执行本文描述的任何方法的程序指令。
前面的一般描述和下面的详细描述仅是示例性和说明性的,并不限制权利要求。
附图说明
并入本公开并构成本公开的一部分的附图示出了各种公开的实施例。在附图中:
图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示出与所公开的实施例一致的示例道路签名轮廓(road signatureprofile)。
图12是与所公开的实施例一致的使用从多个车辆接收的众包数据来进行自主车辆导航的系统的示意图。
图13示出与所公开的实施例一致的由多个三维样条表示的示例自主车辆道路导航模型。
图14示出与所公开的实施例一致的通过组合来自多个驾驶的位置信息而生成的地图骨架。
图15示出与所公开的实施例一致的以示例标志作为地标的两个驾驶的纵向对准的示例。
图16示出与所公开的实施例一致的以示例标志作为地标的多个驾驶的纵向对准的示例。
图17是与所公开的实施例一致的用于使用相机、车辆和服务器来生成驾驶数据的系统的示意图。
图18是与公开的实施例一致的用于众包稀疏地图的系统的示意图。
图19是示出与所公开的实施例一致的用于生成稀疏地图以沿着路段进行自主车辆导航的示例性过程的流程图。
图20示出与所公开的实施例一致的服务器的框图。
图21示出与所公开的实施例一致的存储器的框图。
图22示出与所公开的实施例一致的对与车辆相关联的车辆轨迹进行聚类的过程。
图23示出与所公开的实施例一致的可以用于自主导航的车辆的导航系统。
图24示出了与所公开的实施例一致的存储器的框图。
图25是示出与所公开的实施例一致的用于使导航信息匿名化的示例性过程的流程图。
图26A示出与所公开的实施例一致的具有地标和运动表示的示例路节。
图26B示出与所公开的实施例一致的可以由导航系统捕获的示例图像。
图26C示出与所公开的实施例一致的可以由导航系统捕获的示例图像。
图27示出与所公开的实施例一致的具有确定的路段的示例路节。
图28示出与所公开的实施例一致的描绘自主车辆导航模型的各方面的示例路段。
图29示出与所公开的实施例一致的存储器的框图。
图30是示出与所公开的实施例一致的用于使用匿名导航信息来生成和分配自主车辆导航模型的示例过程的流程图。
具体实施方式
下面的详细描述参考附图。在可能的情况下,在附图和以下描述中使用相同的附图标记指代相同或相似的部件。尽管本文描述了几个说明性实施例,但是修改、改编和其他实施方式是可能的。例如,可以对附图中示出的组件进行替换、添加或修改,并且可以通过对所公开的方法的步骤进行替换、重新排序、移除或添加来修改本文描述的说明性方法。因此,以下详细描述不限于所公开的实施例和示例。相反,适当的范围由所附权利要求限定。
自主车辆概述
如本公开全文所使用的,术语“自主车辆”是指能够在没有驾驶员输入的情况下实现至少一个导航改变的车辆。“导航改变”是指车辆转向、制动或加速中的一个或多个的改变。为了实现自主,车辆不需要完全自动(例如,完全在没有驾驶员或没有驾驶员输入的情况下操作)。相反,自主车辆包括在某些时间段内可以在驾驶员控制下操作而在其他时间段内可以在没有驾驶员控制的情况下操作的那些车辆。自主车辆还可以包括仅控制车辆导航的一些方面的车辆,诸如转向(例如,以在车辆车道约束之间保持车辆路线),但是可以将其他方面留给驾驶员(例如,制动)。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向的一些或所有方面。
由于人类驾驶员通常依靠视觉提示和观察来控制车辆,因此相应地构造了交通基础设施,车道标记、交通标志和交通灯全都设计为向驾驶员提供视觉信息。考虑到交通基础设施的这些设计特征,自主车辆可以包括相机和分析从车辆的环境捕获的视觉信息的处理单元。视觉信息可以包括例如驾驶员可观察到的交通基础设施的组件(例如,车道标记、交通标志、交通灯等)和其他障碍物(例如,其他车辆、行人、残骸等)。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆的环境的模型的信息。例如,在车辆行驶时,车辆可以使用GPS数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)和/或其他地图数据来提供与其环境有关的信息,并且车辆(以及其他车辆)可以使用该信息在模型上定位自己。
在本公开的一些实施例中,自主车辆可以使用在导航时获得的信息(例如,来自相机、GPS设备、加速计、速度传感器、悬架传感器等)。在其他实施例中,自主车辆可以在导航时使用从该车辆(或其他车辆)的过去导航获得的信息。在又一其他实施例中,自主车辆可以使用在导航时获得的信息和从过去导航获得的信息的组合。下面的章节提供了与所公开的实施例一致的系统的概述,随后是前向成像系统和与该系统一致的方法的概述。下面的章节公开了用于构造、使用和更新用于自动车辆导航的稀疏地图的系统和方法。
系统概述
图1是与示例性公开的实施例一致的系统100的框图表示。取决于特定实施方式的要求,系统100可以包括各种组件。在一些实施例中,系统100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160、用户接口170和无线收发器172。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其他合适的处理设备。类似地,取决于特定应用的要求,图像获取单元120可以包括任何数量的图像获取设备和组件。在一些实施例中,图像获取单元120可以包括一个或多个图像捕获设备(例如,相机),诸如图像捕获设备122、图像捕获设备124和图像捕获设备126。系统100还可以包括将处理设备110通信地连接到图像获取设备120的数据接口128。例如,数据接口128可以包括用于将由图像获取设备120获取的图像数据发送到处理单元110的任何有线和/或无线链路。
无线收发器172可以包括一个或多个设备,该一个或多个设备被配置为通过使用无线电频率、红外频率、磁场或电场通过空中接口交换到一个或多个网络(例如,蜂窝、互联网等)的传输。无线收发器172可以使用任何已知的标准来发送和/或接收数据(例如,Wi-Fi、
Figure BDA0002666753230000071
蓝牙智能、802.15.4、ZigBee等)。这种传输可以包括从主车辆到一个或多个远程服务器的通信。这种传输还可以包括主车辆与主车辆的环境中的一个或多个目标车辆之间的通信(单向或双向)(例如,以便于鉴于或与主车辆的环境中的目标车辆一起协调主车辆的导航),或者甚至是向发送车辆附近的非指定接收者的广播传输。
应用处理器180和图像处理器190都可以包括各种类型的处理设备。例如,应用处理器180和图像处理器190中的一个或两个可以包括微处理器、预处理器(例如,图像预处理器)、图形处理单元(graphics processing unit,GPU)、中央处理单元(centralprocessing unit,CPU)、支持电路、数字信号处理器、集成电路、存储器或适合运行应用以及适合图像处理和分析的任何其他类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备(例如,包括从诸如
Figure BDA0002666753230000081
等制造商获得的处理器,或可从诸如
Figure BDA0002666753230000082
等制造商获得的GPU),并且可以包括各种架构(例如,x86处理器,
Figure BDA0002666753230000083
等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括可从
Figure BDA0002666753230000084
获得的EyeQ系列处理器芯片中的任何一个。这些处理器设计每个都包括具有本地存储器和指令集的多个处理单元。这种处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,
Figure BDA0002666753230000085
使用在332Mhz操作的90nm微米技术。
Figure BDA0002666753230000086
架构包括两个浮点、超线程32位RISC CPU(
Figure BDA0002666753230000087
内核)、五个视觉计算引擎(Vision Computing Engines,VCE)、三个矢量微码处理器(VectorMicrocode Processors,
Figure BDA0002666753230000088
)、Denali 64位移动DDR控制器、128位内部Sonics互连、双16位视频输入和18位视频输出控制器、16通道DMA和几个外设。MIPS34K CPU管理五个VCE、三个VMPTM和DMA、第二个MIPS34K CPU和多通道DMA以及其他外设。五个VCE、三个
Figure BDA0002666753230000089
和MIPS34K CPU可以执行多功能捆绑应用所需的密集视觉计算。在另一个示例中,可以在所公开的实施例中使用
Figure BDA00026667532300000810
Figure BDA00026667532300000811
是第三代处理器并且比
Figure BDA00026667532300000812
强大六倍。在其他示例中,可以在所公开的实施例中使用
Figure BDA00026667532300000813
和/或
Figure BDA00026667532300000814
当然,任何新的或未来的EyeQ处理设备也可以与所公开的实施例一起使用。
本文公开的任何处理设备可以被配置为执行某些功能。配置处理设备(诸如,所述的EyeQ处理器或其他控制器或微处理器中的任何一个)执行某些功能可以包括对计算机可运行指令进行编程,并且使那些指令可用于处理设备以供在处理设备的操作期间运行。在一些实施例中,配置处理设备可以包括直接用架构指令对处理设备进行编程。例如,可以使用例如一种或多种硬件描述语言(hardware description language,HDL)来配置诸如现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)等的处理设备。
在其他实施例中,配置处理设备可以包括将可运行指令存储在处理设备在操作期间可访问的存储器上。例如,处理设备可以在操作期间访问存储器以获得并运行存储的指令。在任一种情况下,配置为执行本文公开的感测、图像分析和/或导航功能的处理设备代表专用的基于硬件的系统,该专用的基于硬件的系统控制主车辆的多个基于硬件的组件。
尽管图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的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何设备。在一些实施例中,用户接口170可以包括用户输入设备,例如,包括触摸屏、麦克风、键盘、指针设备、拨轮、相机、旋钮、按钮等。使用这种输入设备,用户可能能够通过键入指令或信息、提供语音命令、使用按钮、指针或眼睛跟踪功能在屏幕上选择菜单选项或通过任何其他合适技术向系统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或其各种组件可以并入各种不同的平台中。在一些实施例中,如图2A所示,系统100可以被包括在车辆200上。例如,车辆200可以配备有处理单元110和系统100的任何其他部件,如上面相对于图1所述。尽管在一些实施例中,车辆200可以仅配备有单个图像捕获设备(例如,相机),但是在其他实施例中,诸如结合图2B-2E所讨论的那些,可以使用多个图像捕获设备。例如,如图2A所示,车辆200的图像捕获设备122和124中的任何一个可以是ADAS(Advanced Driver Assistance System,高级驾驶员辅助系统)成像集的一部分。
包括在车辆200上的图像捕获设备作为图像获取单元120的一部分可以被安置在任何合适的位置。在一些实施例中,如图2A-图2E和图3A-图3C所示,图像捕获设备122可以位于后视镜附近。该位置可以提供与车辆200的驾驶员的视线相似的视线,这可以帮助确定驾驶员可见和不可见的东西。图像捕获设备122可以安置在后视镜附近的任何位置,但是将图像捕获设备122放置在后视镜的驾驶员侧可以进一步帮助获得表示驾驶员视场和/或视线的图像。
也可以使用图像获取单元120的图像捕获设备的其他位置。例如,图像捕获设备124可以位于车辆200的保险杠上或保险杠中。这种位置可能特别适合具有宽视场的图像捕获设备。位于保险杠的图像捕获设备的视线可能与驾驶员的视线不同,因此,保险杠图像捕获设备和驾驶员可能并不总是看到相同的对象。图像捕获设备(例如,图像捕获设备122、124和126)也可以位于其他位置。例如,图像捕获设备可以位于车辆200的一个或两个侧视镜上或一个或两个侧视镜中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,安装在车辆200的任何窗户上,安置在车辆200的任何窗户的后面或前面,以及安装在车辆200的前面和/或后面的灯影(light figure)中或附近等。
除了图像捕获设备之外,车辆200还可以包括系统100的各种其他组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(engine control unit,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可以不包括车辆识别号(vehicle identificationnumber,VIN)或车辆的驾驶员或所有者的姓名,并且可以代替发送数据,诸如捕获的图像和/或与路线有关的有限位置信息。
考虑其他隐私等级。例如,系统100可以根据“中间”隐私等级将数据发送到服务器,并且包括在“高”隐私等级下不包括的附加信息,诸如车辆的品牌和/或型号和/或车辆类型(例如,乘用车、越野车、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设置下,系统100可以上传数据并且包括足以唯一地识别特定车辆、所有者/驾驶员和/或车辆行驶的路线的一部分或全部的信息。这种“低”隐私等级数据可以包括以下各项中的一项或多项,例如,VIN、驾驶员/所有者姓名、启程前车辆的始发点、车辆的预期目的地、车辆的品牌和/或型号、车辆的类型等。
图2A是表示与所公开的实施例一致的示例性车辆成像系统的图解侧视图。图2B是示出图2A所示实施例的图解俯视图。如图2B所示,所公开的实施例可以包括车辆200,车辆200在其主体中包括系统100,该系统100具有安置在车辆200的后视镜附近和/或驾驶员附近的第一图像捕获设备122、安置在车辆200的保险杠区域(例如,保险杠区域210中的一个)上或中的第二图像捕获设备124以及处理单元110。
如图2C所示,图像捕获设备122和124都可以安置在车辆200的后视镜附近和/或驾驶员附近。另外,虽然在图2B和图2C中示出了两个图像捕获设备122和124,但是应当理解,其他实施例可以包括两个以上的图像捕获设备。例如,在图2D和图2E所示的实施例中,车辆200的系统100中包括第一图像捕获设备122、第二图像捕获设备124和第三图像捕获设备126。
如图2D所示,图像捕获设备122可以安置在车辆200的后视镜附近和/或驾驶员附近,并且图像捕获设备124和126可以安置在车辆的200保险杠区域(例如,保险杠区域210中的一个)上或中。并且如图2E所示,图像捕获设备122、124和126可以安置在车辆200的后视镜附近和/或驾驶员座椅附近。所公开的实施例不限于任何特定数量和配置的图像捕获设备,并且图像捕获设备可以安置在车辆200内和/或上的任何适当位置。
应当理解,所公开的实施例不限于车辆,并且可以应用于其他背景。还应理解,公开的实施例不限于特定类型的车辆200,并且可适用于所有类型的车辆,包括汽车、卡车、拖车和其他类型的车辆。
第一图像捕获设备122可以包括任何合适类型的图像捕获设备。图像捕获设备122可以包括光轴。在一个实例中,图像捕获设备122可以包括具有全局快门(global shutter)的Aptina M9V024 WVGA传感器。在其他实施例中,图像捕获设备122可以提供1280x960像素的分辨率,并且可以包括卷帘快门(rolling shutter)。图像捕获设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,例如用来为图像捕获设备提供期望的焦距和视场。在一些实施例中,图像捕获设备122可以与6mm透镜或12mm透镜相关联。在一些实施例中,如图2D所示,图像捕获设备122可以被配置为捕获具有期望的视场(field-of-view,FOV)202的图像。例如,图像捕获设备122可以被配置为具有诸如在40度至56度的范围内的常规FOV,包括46度FOV、50度FOV、52度FOV或更大。或者,图像捕获设备122可以被配置为具有在23度至40度的范围内的窄FOV,诸如28度FOV或36度FOV。另外,图像捕获设备122可以被配置为具有在100度至180度范围内的宽FOV。在一些实施例中,图像捕获设备122可以包括广角保险杠相机或具有高达180度的FOV的相机。在一些实施例中,图像捕获设备122可以是具有约2:1的长宽比(例如,HxV=3800x1900像素)以及约100度的水平FOV的7.2M像素图像捕获设备。可以使用这种图像捕获设备代替三个图像捕获设备配置。由于明显的透镜失真,在图像捕获设备使用径向对称透镜的实施方式中,这种图像捕获设备的垂直FOV可以明显小于50度。例如,这种透镜可能不是径向对称的,这将允许垂直FOV大于50度且水平FOV为100度。
第一图像捕获设备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(诸如,FOV202)相同或比其窄的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之间可能存在高度差,该高度差可以提供足够的视差(parallax)信息以实现立体分析。例如,如图2A所示,两个图像捕获设备122和124处于不同的高度。例如,图像捕获设备122、124和126之间也可能存在横向位移差,从而给出附加的视差信息以供处理单元110进行立体分析。如图2C和图2D所示,横向位移的差可以用dx表示。在一些实施例中,图像捕获设备122、124和126之间可以存在前后位移(例如,范围位移)。例如,图像捕获设备122可以位于图像捕获设备124和/或图像捕获设备126后面0.5至2米或更远。这种类型的位移可以使图像捕获设备中的一个能够覆盖(多个)另一图像捕获设备的潜在盲点。
图像捕获设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数量),并且与图像捕获设备122相关联的(多个)图像传感器的分辨率可以比与图像捕获设备124和126相关联的(多个)图像传感器的分辨率更高、更低或与其相同。在一些实施例中,与图像捕获设备122和/或图像捕获设备124和126相关联的(多个)图像传感器可以具有640x480、1024x768、1280x960的分辨率或任何其他合适的分辨率。
帧速率(例如,图像捕获设备在继续捕获与下一图像帧相关联的像素数据之前获取一个图像帧的一组像素数据的速率)是可控的。与图像捕获设备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中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假设两个设备的线扫描速率相似,如果一个设备包括分辨率为640x 480的图像传感器,而另一设备包括分辨率为1280x 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可以获取距车辆几米之内的特写(close-up)对象的图像。图像捕获设备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的视场窄),并且与图像捕获设备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是与所公开的实施例一致的示例性相机支架370的图示,该相机支架370被配置为安置在后视镜(例如,后视镜310)后面并且靠着车辆挡风玻璃。如图3B所示,相机支架370可以包括图像捕获设备122、124和126。图像捕获设备124和126可以安置在眩光遮罩380的后面,该眩光遮罩380可以与车辆挡风玻璃齐平并且包括膜和/或抗反射材料的组合物。例如,眩光遮罩380可以被安置为使得该罩与具有匹配斜度的车辆挡风玻璃对准。在一些实施例中,图像捕获设备122、124和126中的每一个可以安置在眩光遮罩380的后面,例如,如图3D所示。所公开的实施例不限于任何特定配置的图像捕获设备122、124和126、相机支架370和眩光遮罩380。图3C是来自正面视角的图3B所示的相机支架370的图示。
如受益于本公开的本领域技术人员将理解的,可以对前述公开的实施例进行多种变化和/或修改。例如,并非所有组件对系统100的操作都是必不可少的。此外,任何组件可以位于系统100的任何适当的部分中,并且可以在提供所公开的实施例的功能的同时将这些组件重新布置为各种配置。因此,前述配置是示例,并且不管以上讨论的配置如何,系统100可以提供广泛的功能以分析车辆200的周围环境并响应于该分析来导航车辆200。
如下面进一步详细讨论的并且与各种公开的实施例一致,系统100可以提供与自主驾驶和/或驾驶员辅助技术有关的各种特征。例如,系统100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速度数据和/或来自车辆200中包括的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130和其他传感器收集数据以供分析。此外,系统100可以分析所收集的数据以确定车辆200是否应当采取某种动作,然后在没有人为干预的情况下自动采取所确定的动作。例如,当车辆200在没有人为干预的情况下导航时,系统100可以自动控制车辆200的制动、加速和/或转向(例如,通过向节流系统220、制动系统230和转向系统240中的一个或多个发送控制信号)。此外,系统100可以分析所收集的数据,并基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于由系统100提供的各种实施例的附加细节。
前向多成像系统
如上所述,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用一个或多个面向车辆前方的相机。在其他实施例中,多相机系统可以包括一个或多个面向车辆侧面或车辆后面的相机。在一个实施例中,例如,系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕获设备122和124)可以安置在车辆(例如,车辆200)的前面和/或侧面。第一相机的视场可以大于、小于第二相机的视场或与第二相机的视场部分重叠。另外,第一相机可以连接至第一图像处理器以对由第一相机提供的图像执行单眼图像分析,并且第二相机可以连接至第二图像处理器以对由第二相机提供的图像执行单眼图像分析。可以组合第一图像处理器和第二图像处理器的输出(例如,处理后的信息)。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一个实施例中,系统100可以使用三相机成像系统,其中,每个相机具有不同的视场。因此,这种系统可以基于从位于车辆前方和侧面的变化距离处的对象导出的信息来做出决定。对单眼图像分析的引用可以指基于从单个视点(例如,从单个相机)捕获的图像执行图像分析的实例。立体图像分析可以指基于用图像捕获参数的一个或多个变体捕获的两个或多个图像来执行图像分析的实例。例如,适合于执行立体图像分析的捕获图像可以包括从两个或多个不同位置、从不同视场、使用不同焦距以及视差信息等捕获的图像。
例如,在一个实施例中,系统100可以使用图像捕获设备122、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相机执行视觉处理,以例如检测其他车辆、行人、车道标记、交通标志、交通灯和其他道路对象。此外,第一处理设备可以计算来自主相机和窄相机的图像之间的像素的差异(disparity),并创建车辆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导出的分析的检查(例如,提供自动紧急制动(automatic emergency braking,AEB)系统)。此外,在一些实施例中,可以基于从一个或多个传感器接收到的信息(例如,雷达、激光雷达、声波传感器、从车辆外部的一个或多个收发器接收到的信息等)来补充接收到的数据的冗余和验证。
本领域技术人员将认识到,上述相机配置、相机安置、相机数量、相机位置等仅是示例。在不脱离所公开的实施例的范围的情况下,相对于整个系统描述的这些组件和其他组件可以以各种不同的配置进行组装和使用。以下是关于使用多相机系统提供驾驶员辅助和/或自主车辆功能的更多细节。
图4是存储器140和/或150的示例性功能框图,存储器140和/或150可以用用于执行与所公开的实施例一致的一个或多个操作的指令来存储/编程。尽管以下是指存储器140,但是本领域技术人员将认识到指令可以存储在存储器140和/或150中。
如图4所示,存储器140可以存储单眼图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于任何特定配置的存储器140。此外,应用处理器180和/或图像处理器190可以运行存储在存储器140中包括的模块402、404、406和408中的任何一个中的指令。本领域技术人员将理解,在以下讨论中对处理单元110的引用可以单独地或共同地指代应用处理器180和图像处理器190。因此,可以由一个或多个处理设备执行以下任何过程的步骤。
在一个实施例中,单眼图像分析模块402可以存储指令(诸如,计算机视觉软件),该指令在由处理单元110运行时对由图像捕获设备122、124和126中的一个获取的一组图像执行单眼图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的感官信息(例如,来自雷达、激光雷达等的信息)进行组合以执行单眼图像分析。如下面结合图5A-图5D所述,单眼图像分析模块402可以包括用于检测该组图像内的一组特征的指令,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及与车辆的环境相关的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以在车辆200中引起一个或多个导航响应,诸如转弯、车道变换、加速度的变化等,如以下结合导航响应模块408讨论的。
在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),该指令在由处理单元110运行时对由从图像捕获设备122、124和126中的任何一个选择的图像捕获设备的组合获取的第一和第二组图像执行立体图像分析。在一些实施例中,处理单元110可以将来自第一组图像和第二组图像的信息与附加的感官信息(例如,来自雷达的信息)进行组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕获设备124获取的第一组图像和由图像捕获设备126获取的第二组图像来执行立体图像分析的指令。如下面结合图6所述,立体图像分析模块404可以包括用于检测第一和第二组图像内的一组特征的指令,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象等。基于该分析,处理单元110可以在车辆200中引起一个或多个导航响应,诸如转弯、车道变换、加速度的变化等,如下面结合导航响应模块408讨论的。此外,在一些实施例中,立体图像分析模块404可以实现与经过训练的系统(诸如,神经网络或深度神经网络)或未经训练的系统(诸如,可以配置为使用计算机视觉算法来检测和/或标记从中捕获和处理了感官信息的环境中的对象的系统)相关联的技术。在一个实施例中,立体图像分析模块404和/或其他图像处理模块可以被配置为使用经过训练和未经训练的系统的组合。
在一个实施例中,速度和加速度模块406可以存储被配置为分析从车辆200中的一个或多个计算和机电设备接收的数据的软件,一个或多个计算和机电设备被配置为引起车辆200的速度和/或加速度的变化。例如,处理单元110可以运行与速度和加速度模块406相关联的指令,以基于从单眼图像分析模块402和/或立体图像分析模块404的运行导出的数据来计算车辆200的目标速度。这种数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速度、车辆200相对于道路的车道标记的位置信息等。另外,处理单元110可以基于感测输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如,车辆200的节流系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速度。基于计算出的目标速度,处理单元110可以将电子信号发送到车辆200的节流系统220、制动系统230和/或转向系统240,以通过例如物理地踩下车辆200的制动器或松开车辆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可以基于使用一系列基于时间的观测(诸如,卡尔曼滤波器或线性二次估计(linear quadratic estimation,LQE))的估计技术和/或基于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)的可用建模数据来构造测量。卡尔曼滤波器可以基于对象的尺度的测量,其中,尺度测量与碰撞时间(例如,车辆200到达目标所需的时间量)成比例。因此,通过执行步骤540-546,处理单元110可以识别出现在一组捕获图像内的车辆和行人,并导出与车辆和行人相关联的信息(例如,位置、速度、大小)。基于识别和所导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如上面结合图5A所述。
在步骤548,处理单元110可以对一个或多个图像执行光流分析,以降低检测到“假命中”以及未命中表示车辆或行人的候选对象的概率。光流分析可以指例如在与其他车辆和行人相关联的一个或多个图像中分析相对于车辆200的运动模式,并且该运动模式不同于路面运动。处理单元110可以通过观察在不同时间捕获的多个图像帧中的对象的不同位置来计算候选对象的运动。处理单元110可以将位置和时间值用作数学模型的输入,以计算候选对象的运动。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540-546执行光流分析,以提供用于检测车辆和行人的冗余并增加系统100的可靠性。
图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标记和/或车道几何形状信息的示例性过程500C的流程图。处理单元110可以运行单眼图像分析模块402以实现过程500C。在步骤550,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何形状信息和其他相关道路标记的段,处理单元110可以过滤该组对象以排除那些被确定为不相关的对象(例如,小坑洼、小石头等)。在步骤552,处理单元110可以将在步骤550中检测到的属于相同道路标记或车道标记的段分组在一起。基于分组,处理单元110可以开发模型以表示检测到的段,诸如数学模型。
在步骤554,处理单元110可以构造与检测到的段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的段从图像平面到真实世界平面的投影。可以使用具有与物理属性(诸如,检测到的道路的位置、斜率、曲率和曲率导数)相对应的系数的三次多项式来表征投影。在生成投影时,处理单元110可考虑路面的变化以及与车辆200相关联的俯仰(pitch)和翻滚(roll)率。另外,处理单元110可以通过分析存在于路面上的位置和运动提示来模拟道路高程(road elevation)。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰和翻滚率。
在步骤556,处理单元110可以例如通过在连续图像帧中跟踪检测到的段并累积与检测到的段相关联的逐帧数据来执行多帧分析。随着处理单元110执行多帧分析,在步骤554处构造的一组测量可以变得更加可靠并且与越来越高的置信度等级相关联。因此,通过执行步骤550、552、554和556,处理单元110可以识别出现在一组捕获的图像内的道路标记并导出车道几何形状信息。基于识别和导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如上面结合图5A所述。
在步骤558,处理单元110可以考虑附加的信息源,以在车辆200的周围环境的背景中进一步开发用于车辆200的安全模型。处理单元110可以使用安全模型来定义背景,在该背景中系统100可以以安全的方式运行车辆200的自主控制。为了开发安全模型,在一些实施例中,处理单元110可以考虑其他车辆的位置和运动、检测到的道路边缘和障碍物和/或从地图数据(诸如,来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标记和车道几何形状的冗余,并增加系统100的可靠性。
图5D是示出与所公开的实施例一致的用于检测一组图像中的交通灯的示例性过程500D的流程图。处理单元110可以运行单眼图像分析模块402以实现过程500D。在步骤560,处理单元110可以扫描该组图像并识别出现在图像中可能包含交通灯的位置处的对象。例如,处理单元110可以过滤识别的对象以构造一组候选对象,排除那些不太可能与交通灯相对应的对象。可以基于与交通灯相关联的各种属性(诸如,形状、大小、纹理、位置(例如,相对于车辆200)等)来进行过滤。这种属性可以基于交通灯和交通控制信号的多个示例,并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的一组候选对象执行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的真实世界位置、并且过滤出正在运动的那些对象(不太可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并且识别出现在可能的交通灯内的检测到的颜色的相对位置。
在步骤562,处理单元110可以分析交叉口(junction)的几何形状。该分析可以基于以下各项的任意组合:(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构造的更新后的车辆路径来确定前瞻(look-ahead)点(用坐标表示为(xl,zl))。处理单元110可以从累积距离向量S中提取前瞻点,并且该前瞻点可以与前瞻距离和前瞻时间相关联。前瞻距离的下限可以在10至20米的范围内,前瞻距离可以计算为车辆200的速度与前瞻时间的乘积。例如,随着车辆200的速度减小,前瞻距离也可以减小(例如,直到它到达下限)。前瞻时间可以在0.5至1.5秒的范围内,前瞻时间可以与与在车辆200中引起导航响应相关联的一个或多个控制回路(诸如,航向误差跟踪控制回路)的增益成反比。例如,航向误差跟踪控制回路的增益可以取决于偏航(yaw)率回路、转向致动器回路、汽车横向动力学等的带宽。因此,航向误差跟踪控制回路的增益越高,前瞻时间越短。
在步骤576,处理单元110可以基于在步骤574确定的前瞻点来确定航向误差和偏航率命令。处理单元110可以通过计算前瞻点的反正切(例如,arctan(xl/zl)来确定航向误差。处理单元110可以将偏航率命令确定为航向误差和高级控制增益的乘积。如果前瞻距离不在下限,则高级控制增益可以等于:(2/前瞻时间)。否则,高级控制增益可以等于:(2*车辆速度200/前瞻距离)。
图5F是示出了与所公开的实施例一致的用于确定领先车辆是否正在改变车道的示例性过程500F的流程图。在步骤580,处理单元110可以确定与领先车辆(例如,在车辆200前面行驶的车辆)相关联的导航信息。例如,处理单元110可以使用上面结合图5A和图5B所述的技术来确定领先车辆的位置、速度(例如,方向和速率)和/或加速度。处理单元110还可使用上面结合图5E所述的技术来确定一个或多个道路多项式、前瞻点(与车辆200相关联)和/或蜗牛踪迹(snail trail)(例如,描述领先车辆经过的路径的一组点)。
在步骤582,处理单元110可以分析在步骤580确定的导航信息。在一个实施例中,处理单元110可以计算蜗牛踪迹和道路多项式之间(例如,沿着轨迹)的距离。如果沿着轨迹的距离的方差超过预定阈值(例如,在直行道路上为0.1至0.2米,在中等弯曲的道路上为0.3至0.4米,在有急弯的道路上为0.5至0.6米),则处理单元110可以确定领先车辆可能正在改变车道。在检测到多个车辆在车辆200前面行驶的情况下,处理单元110可以比较与每个车辆相关联的蜗牛踪迹。基于比较,处理单元110可以确定其蜗牛踪迹与其他车辆的蜗牛踪迹不匹配的车辆可能正在改变车道。处理单元110可以另外将蜗牛踪迹(与领先车辆相关联)的曲率与领先车辆正在行驶的路段的预期曲率进行比较。可以从地图数据(例如,来自地图数据库160的数据)、道路多项式、其他车辆的蜗牛踪迹、关于道路的先验知识等中提取预期曲率。如果蜗牛踪迹的曲率与路段的预期曲率之间的差超过预定阈值,则处理单元110可以确定领先车辆可能正在改变车道。
在另一个实施例中,处理单元110可以在特定时间段(例如,0.5至1.5秒)内将领先车辆的瞬时位置与前瞻点(与车辆200相关联)进行比较。如果领先车辆的瞬时位置和前瞻点之间的距离在特定时间段内变化,并且累积的变化总和超过预定阈值(例如,在直行道路上为0.3至0.4米,在中等弯曲道路上为0.7至0.8米,在有急弯的道路上为1.3至1.7米),处理单元110可以确定领先车辆可能正在改变车道。在另一个实施例中,处理单元110可以通过将沿着该踪迹的横向距离与蜗牛踪迹的预期曲率进行比较来分析蜗牛踪迹的几何形状。预期曲率半径可以根据以下计算确定:(δz 2x 2)/2/(δx),其中δx代表行驶的横向距离,而δz代表行驶的纵向距离。如果行驶的横向距离与预期曲率之间的差超过预定阈值(例如,500至700米),则处理单元110可以确定领先车辆可能正在改变车道。在另一个实施例中,处理单元110可以分析领先车辆的位置。如果领先车辆的位置使道路多项式模糊(例如,领先车辆覆盖在道路多项式的顶部),则处理单元110可以确定领先车辆可能正在改变车道。在领先车辆的位置使得在领先车辆前面检测到另一车辆并且两个车辆的蜗牛踪迹不平行的情况下,处理单元110可以确定(更近的)领先车辆很可能正在改变车道。
在步骤584,处理单元110可以基于在步骤582执行的分析来确定领先车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582处执行的各个分析的加权平均来做出确定。在这种方案下,例如,处理单元110基于特定类型的分析做出的领先车辆可能正在改变车道的决定可以被分配值“1”(和“0”代表领先车辆不可能正在改变车道的确定)。在步骤582执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于任何特定组合的分析和权重。
图6是示出了与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程600的流程图。在步骤610,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,包括在图像获取单元120中的相机(诸如,具有视场202和204的图像捕获设备122和124)可以捕获车辆200前方的区域的第一和第二多个图像,并通过数字连接(例如,USB、无线、蓝牙等)将它们发送到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口来接收第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤620,处理单元110可以运行立体图像分析模块404以对第一和第二多个图像执行立体图像分析,以创建车辆前方的道路的3D地图并检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。立体图像分析可以以类似于上面结合图5A-图5D描述的步骤的方式执行。例如,处理单元110可以运行立体图像分析模块404以检测第一和第二多个图像内的候选对象(例如,车辆、行人、道路标记、交通灯、道路危险等),基于各种标准过滤出候选对象的子集,并执行多帧分析,构造测量并确定其余候选对象的置信度等级。在执行上述步骤时,处理单元110可以考虑来自第一和第二多个图像两者的信息,而不是仅考虑来自一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像中的候选对象的像素级数据(或捕获的图像的两个流中的其他数据子集)的差异。作为另一示例,处理单元110可以通过观察对象出现在多个图像中的一个中而不是其他图像中或相对于相对于在两个图像流中出现的对象而可能存在的其他差异来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流中的一个或两者中的对象相关联的特征的轨迹、位置、运动特征等来确定相对于车辆200的位置、速度和/或加速度。
在步骤630,处理单元110可以基于在步骤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并且基于上面结合图6描述的步骤)。可替代地,处理单元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公里的地标,导航是可能的。如将在其他章节中更详细地讨论的那样,可以基于配备有各种传感器和设备(诸如,图像捕获设备、全球定位系统传感器、运动传感器等)的车辆在车辆在道路上行驶时收集或测量的数据生成稀疏地图。在一些情况下,可以基于在一个或多个车辆沿特定道路的多次驾驶期间收集的数据来生成稀疏地图。使用一个或多个车辆的多次驾驶生成稀疏地图可以被称为“众包”稀疏地图。
与所公开的实施例一致,自主车辆系统可以使用稀疏地图进行导航。例如,所公开的系统和方法可以分配稀疏地图以生成自主车辆的道路导航模型,并且可以使用稀疏地图和/或生成的道路导航模型沿着路段导航自主车辆。
与本公开一致的稀疏地图可以包括一个或多个三维廓线(contour),其可以表示自主车辆在沿着相关路段运动时可以穿过的预定轨迹。
与本公开一致的稀疏地图还可以包括表示一个或多个道路特征的数据。这种道路特征可以包括辨识的地标、道路签名轮廓以及在导航车辆中有用的任何其他与道路有关的特征。与本公开一致的稀疏地图可以基于稀疏地图中包括的相对少量的数据来实现车辆的自主导航。例如,不是包括道路的详细表示(诸如,道路边缘、道路曲率、与路段相关联的图像、或详述说明与路段相关联的其他物理特征的数据),而是稀疏地图的公开实施例可能需要相对较少的存储空间(并且当稀疏地图的一部分传输到车辆时,需要相对较少的带宽),仍然可以充分地提供自主车辆导航。在一些实施例中,可以通过存储需要少量数据但是仍然能够进行自主导航的道路相关元素的表示,来实现下面进一步详细讨论的所公开的稀疏地图的小数据足迹。
例如,不是存储道路的各个方面的详细表示,而是所公开的稀疏地图可以存储车辆可以沿着该道路遵循的一个或多个轨迹的多项式表示。因此,不是存储(或必须传送)关于道路的物理性质的细节以实现沿道路的导航,而是可以使用所公开的稀疏地图沿着特定的路段导航车辆,在某些情况下无需解释道路的物理方面,而是通过将其行驶路径与沿着特定路段的轨迹(例如,多项式样条)对准。以此方式,可以主要基于存储的轨迹(例如,多项式样条)来导航车辆,这比涉及存储道路图像、道路参数、道路布局等的方法所需的存储空间少得多。
除了存储的沿路段的轨迹的多项式表示之外,所公开的稀疏地图还可以包括可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包括数字签名,其从由沿路段行驶的车辆上的传感器(例如,相机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)导出。相对于由传感器获取的信号,数字签名可以具有减小的大小。在一些实施例中,数字签名可以被创建为与分类器功能兼容,该分类器功能被配置为例如在随后的行驶中从由传感器获取的信号中检测并识别道路特征。在一些实施例中,可以创建数字签名,使得数字签名具有尽可能小的足迹,同时保留基于道路特征的图像(或由传感器生成的数字信号,如果存储的签名不是基于图像和/或包括其他数据)将道路特征与存储的签名相关或匹配的能力,道路特征的图像在随后的时间由沿着相同路段行驶的车辆上的相机捕获。
在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于可由车辆上的相机检测到的道路特征,并且在车辆上的相机系统耦合到能够将与该道路特征相对应的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联的分类器的情况下,且在此道路标志在该区域内是本地唯一的(例如,附近没有相同的路标或相同类型的路标)的情况下,存储指示道路特征的类型及其位置的数据就足够了。
如将在下面进一步详细讨论的,道路特征(例如,沿着路段的地标)可以被存储为可以以相对较少的字节表示道路特征的小数据对象,同时提供足够的信息来辨识和使用这种特征进行导航。在一个示例中,道路标志可以被辨识为车辆的导航可以基于的已识别地标。道路标志的表示可以存储在稀疏地图中,以包括例如指示地标类型(例如,停车标志)的几个字节的数据和指示地标位置(例如,坐标)的几个字节的数据。基于地标的此类数据光表示进行导航(例如,使用足以用于基于地标进行定位、辨识和导航的表示)可以提供与稀疏地图相关联的期望等级的导航功能,而不会显著增加与稀疏地图相关联的数据开销。地标(和其他道路特征)的这种精简表示可以利用被配置为检测、识别和/或分类某些道路特征的此类车辆上包括的传感器和处理器。
例如,当标志或甚至特定类型的标志在给定区域中是本地唯一的时(例如,当没有其他标志或相同类型的其他标志时),稀疏地图可以使用指示地标类型(标志或特定类型的标志)的数据,以及在导航(例如,自主导航)期间,当自主车辆上的相机捕获包括标志(或特定类型的标志)的区域的图像时,处理器可以处理图像,检测该标志(如果确实存在于图像中),将图像分类为标志(或特定类型的标志),并将图像的位置与稀疏地图中存储的标志的位置相关联。
生成稀疏地图
在一些实施例中,稀疏地图可以包括沿着路段延伸的表示路面特征的至少一个线以及与该路段相关联的多个地标。在某些方面,稀疏地图可以经由“众包”来生成,例如,通过对当一个或多个车辆穿越路段时获取的多个图像的图像分析来生成。
图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的局部地图部分可以与全球导航卫星系统(Global Navigation Satellite System,GNSS)密钥一起存储作为稀疏地图800的数据库的索引。因此,尽管可以在不依赖于主车辆的GNSS位置、道路特征或地标的情况下执行用于在本系统中导航主车辆的转向角的计算的情况下,但是这种GNSS信息可以用于检索相关的局部地图。
通常,稀疏地图800可以基于从一个或多个车辆沿着道路行驶时收集的数据来生成。例如,使用一个或多个车辆上的传感器(例如,相机、速度计、GPS、加速度计等),可以记录一个或多个车辆沿道路行驶的轨迹,并且可以基于所收集的一个或多个车辆行驶的轨迹来确定沿道路进行后续行程的车辆的优选轨迹的多项式表示。类似地,由一个或多个车辆收集的数据可以帮助识别沿特定道路的潜在地标。从穿越车辆收集的数据也可以用于识别道路轮廓信息,诸如道路宽度轮廓、道路不平整轮廓、交通线间隔轮廓、道路状况等。使用收集的信息,可以生成并分发(例如,用于本地存储或通过实时数据传输)稀疏地图800以用于导航一个或多个自主车辆。然而,在一些实施例中,地图的生成可能不会在地图的初始生成时结束。如下面将更详细地讨论的,当那些车辆继续穿越稀疏地图800中包括的道路时,可以基于从车辆收集的数据来连续或周期性地更新稀疏地图800。
稀疏地图800中记录的数据可以包括基于全球定位系统(GPS)数据的位置信息。例如,稀疏地图800中可以包括各种地图元素的位置信息,包括例如地标位置、道路轮廓位置等。可以使用从穿越道路的车辆收集的GPS数据来获得稀疏地图800中包括的地图元素的位置。例如,经过识别的地标的车辆可以使用与车辆相关联的GPS位置信息以及识别的地标相对于车辆的位置的确定(例如,基于对从车辆上一个或多个相机收集的数据的图像分析),来确定识别的地标的位置。当附加的车辆经过识别的地标的位置时,可以重复对识别的地标(或稀疏地图800中包括的任何其他特征)的这种位置确定。一些或所有附加位置可以用于细化相对于识别的地标的存储在稀疏图800中的位置信息。例如,在一些实施例中,可以将相对于稀疏地图800中存储的特定特征的多个位置测量一起平均。然而,任何其他数学运算也可以用于基于地图元素的多个确定位置来细化地图元素的存储位置。
所公开的实施例的稀疏地图可以使用相对少量的存储数据来实现车辆的自主导航。在一些实施例中,稀疏地图800可以具有小于每公里道路2MB、小于每公里道路1MB、小于每公里道路500kB或小于每公里道路100kB的数据密度(例如,包括表示目标轨迹、地标和任何其他存储的道路特征的数据)。在一些实施例中,稀疏地图800的数据密度可以小于每公里道路10kB,或者甚至小于每公里道路2kB(例如,每公里1.6kB),或者不超过每公里道路10kB,或不超过每公里道路20kB。在一些实施例中,可以使用具有总计4GB或更少数据的稀疏地图来自主导航美国的大多数(如果不是全部)道路。这些数据密度值可以表示整个稀疏地图800、稀疏地图800内的局部地图和/或稀疏地图800内的特定路段的平均。
如所指出的,稀疏地图800可以包括多个目标轨迹810的表示以用于引导沿着路段的自主驾驶或导航。这种目标轨迹可以被存储为三维样条。例如,可以基于沿着特定路段的车辆的先前遍历的两个或更多个重构轨迹来确定稀疏地图800中存储的目标轨迹。路段可以与单个目标轨迹或多个目标轨迹相关联。例如,在两车道道路上,可以存储第一目标轨迹以表示沿道路在第一方向上的预期行驶路径,并且可以存储第二目标轨迹以表示沿道路在另一方向(例如,与第一方向相反)上的预期行驶路径。可以针对特定路段存储附加目标轨迹。例如,在多车道道路上,可以存储一个或多个目标轨迹,其表示与多车道道路相关联的一个或多个车道中的车辆的预期行驶路径。在一些实施例中,多车道道路的每个车道可以与其自己的目标轨迹相关联。在其他实施例中,存储的目标轨迹可能比多车道道路上存在的车道更少。在这种情况下,导航多车道道路的车辆可以通过考虑与存储目标轨迹的车道的车道偏移量来使用任何存储的目标轨迹来引导其导航(例如,如果车辆在三车道高速公路的最左侧车道上行驶,并且仅针对高速公路的中间车道存储目标轨迹,则车辆可以通过在生成导航指令时考虑中间车道与最左侧车道之间的车道偏移量来使用中间车道的目标轨迹进行导航)。
在一些实施例中,目标轨迹可以表示车辆行驶时车辆应采取的理想路径。目标轨迹可以位于例如行驶车道的近似中心处。在其他情况下,目标轨迹可以位于相对于路段的其他位置。例如,目标轨迹可以与道路的中心、道路的边缘或车道的边缘等大致重合。在这种情况下,基于目标轨迹的导航可以包括相对于目标轨迹的位置要保持的确定的偏移量。此外,在一些实施例中,相对于目标轨迹的位置要保持的确定的偏移量可以基于车辆的类型而有所不同(例如,沿着目标轨迹的至少一部分,包括两个轴的乘用车可能与包括两个以上轴的卡车的偏移不同)。
稀疏地图800还可以包括和与特定路段、局部地图等相关联的多个预定地标820有关的数据。如下面更详细地讨论的,这些地标可用于自主车辆的导航。例如,在一些实施例中,地标可以用于确定车辆相对于存储的目标轨迹的当前位置。利用该位置信息,自主车辆可能能够调整前进方向以匹配所确定的位置处的目标轨迹的方向。
多个地标820可以被识别并以任何合适的间隔存储在稀疏地图800中。在一些实施例中,可以以相对高的密度(例如,每几米或更多)存储地标。然而,在一些实施例中,可以采用明显更大的地标间隔值。例如,在稀疏地图800中,识别的(或辩别的)地标可以相隔10米、20米、50米、100米、1公里或2公里。在某些情况下,识别的地标之间的距离可能甚至超过2公里。
在地标之间,并且因此在相对于目标轨迹的车辆位置的确定之间,车辆可以基于航位推算(dead reckoning)导航,在航位推算中,车辆使用传感器来确定其自我运动并估计其相对于目标轨迹的位置。因为在导航期间航位推算可能会累积误差,所以随着时间的流逝,相对于目标轨迹的位置确定可能会变得越来越不准确。车辆可以使用稀疏地图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/hr的主车辆,这可以转化为每小时约200kB的数据使用/传输要求。
稀疏地图800可以使用几何描述符和元数据的组合来描述车道网络。可以由如上所述的多项式或样条来描述几何形状。元数据可以描述车道的数量、特殊特征(诸如,停车场车道)以及可能的其他稀疏标签。这种指示符的总足迹可以忽略不计。
因此,根据本公开的实施例的稀疏地图可以包括沿着路段延伸的路面特征的至少一个线表示,每个线表示代表沿着与路面特征基本上对应的路段的路径。在一些实施例中,如上所述,路面特征的至少一个线表示可以包括样条、多项式表示或曲线。此外,在一些实施例中,路面特征可以包括道路边缘或车道标记中的至少一个。此外,如下面关于“众包”所讨论的,可以通过对当一个或多个车辆穿越路段时获取的多个图像的图像分析来识别路面特征。
如前所述,稀疏地图800可以包括与路段相关联的多个预定地标。稀疏地图800中的每个地标可以使用比存储的实际图像所需的更少的数据来表示和辨识,而不是存储地标的实际图像并依赖例如基于捕获的图像和存储的图像的图像辨识分析。表示地标的数据可以仍然包括用于描述或识别沿着道路的地标的足够的信息。存储描述地标的特征的数据而不是地标的实际图像可以减小稀疏地图800的大小。
图10示出了可以在稀疏地图800中表示的地标的类型的示例。地标可以包括沿着路段的任何可见和可识别的对象。可以选择地标,使得地标是固定的并且相对于其位置和/或内容不经常改变。稀疏地图800中包括的地标可以用于在车辆穿越特定路段时确定车辆200相对于目标轨迹的位置。地标的示例可以包括交通标志、方向性标志、通用标志(例如,矩形标志)、路边固定装置(例如,路灯柱、反射器等)以及任何其他合适的类别。在一些在实施例中,道路上的车道标记也可以作为地标包括在稀疏地图800中。
图10所示的地标的示例包括交通标志、方向性标志、路边固定装置和通用标志。交通标志可以包括例如限速标志(例如,限速标志1000)、让行(yield)标志(例如,让行标志1005)、路线编号标志(例如,路线编号标志1010)、交通灯标志(例如,交通灯标志1015)、停车标志(例如,停车标志1020)。方向性标志可以包括这种标志,该标志包括指示朝向不同地方的一个或多个方向的一个或多个箭头。例如,方向性标志可以包括具有用于将车辆引导到不同道路或地方的箭头的高速公路标志1025、具有用于引导车辆离开道路的箭头的出口标志1030等。因此,多个地标中的至少一个可以包括路标。
通用标志可能与交通无关。例如,通用标志可以包括用于广告的广告牌,或者邻近两个国家、州、县、市或城镇之间的边界的欢迎牌。图10示出了通用标志1040(“JOE的餐厅”)。尽管如图10所示通用标志1040可以具有矩形形状,但是通用标志1040可以具有其他形状,诸如正方形、圆形,三角形等。
地标也可以包括路边固定装置。路边固定装置可能为不是标志的对象,也可能与交通或方向无关。例如,路边固定装置可以包括灯柱(例如,灯柱1035)、电线柱、交通灯柱等。
地标也可以包括可以专门设计用于自主车辆导航系统的信标。例如,这种信标可以包括以预定间隔放置的独立结构以帮助导航主车辆。这种信标还可以包括添加到现有道路标志的视觉/图形信息(例如,图标、徽章、条形码等),其可以被沿着路段行驶的车辆识别或辨别。这种信标还可以包括电子组件。在这种实施例中,电子信标(例如,RFID标签等)可以用于将非可视信息发送到主车辆。这种信息可以包括例如地标识别和/或地标位置信息,主车辆可以使用这种信息确定其沿着目标轨迹的位置。
在一些实施例中,稀疏地图800中包括的地标可以由预定大小的数据对象表示。表示地标的数据可以包括用于识别特定地标的任何合适的参数。例如,在一些实施例中,稀疏地图800中存储的地标可以包括诸如地标的物理大小(例如,以支持基于已知的大小/比例估计到地标的距离)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型——哪种类型的方向性标志、交通标志等)、GPS坐标(例如,支持全球定位)的参数以及任何其他合适的参数。每个参数可以与数据大小相关联。例如,可以使用8个字节的数据存储地标大小。可以使用12个字节的数据指定到先前地标的距离、横向偏移和高度。与地标相关联的类型代码(诸如,方向性标志或交通标志)可能需要大约2个字节的数据。对于通用标志,可以使用50个字节的数据存储来存储能够识别通用标志的图像签名。地标GPS位置可以与16个字节的数据存储相关联。每个参数的这些数据大小仅是示例,也可以使用其他数据大小。
以这种方式在稀疏地图800中表示地标可以提供用于有效地表示数据库中的地标的精简解决方案。在一些实施例中,标志可以被称为语义标志和非语义标志。语义标志可以包括具有标准化含义的任何类别的标志(例如,限速标志、警告标志、方向性标志等)。非语义标志可以包括与标准化含义不相关联的任何标志(例如,通用广告标志、识别商业机构的标志等)。例如,每个语义标志可以用38个字节的数据表示(例如,8个字节用于大小;12个字节用于到先前地标的距离、横向偏移和高度;2个字节用于类型代码;以及16个字节用于GPS坐标)。稀疏地图800可以使用标签系统来表示地标类型。在某些情况下,每个交通标志或方向性标志可以与其自己的标签相关联,该标签可以作为地标识别的一部分存储在数据库中。例如,数据库可以包括大约1000个不同标签的量级来表示各种交通标志,以及大约10000个不同标签的量级来表示方向性标志。当然,可以使用任何适当数量的标签,并且可以根据需要创建其他标签。在一些实施例中,通用标志可以使用少于大约100个字节(例如,大约86个字节,其中,包括8个字节用于大小;12个字节用于到先前地标的距离、横向偏移和高度;50个字节用于图像签名;以及16个字节用于GPS坐标)来表示。
因此,对于不需要图像签名的语义路标,即使在相对较高的地标密度(大约每50m1个)下,对稀疏地图800的数据密度影响也可能为大约每公里760字节(例如,每公里20个地标x每个地标38个字节=760字节)的量级。即使对于包括图像签名组件的通用标志,数据密度的影响为大约每公里1.72kB(例如,每公里20个地标x每个地标86个字节=1720字节)。对于语义路标,对于行驶速度为100km/hr的车辆,这相当于每小时约76kB的数据使用量。对于通用标志,对于行驶速度为100km/hr的车辆,这相当于大约每小时170kB。
在一些实施例中,诸如矩形标志的通用矩形对象可以在稀疏地图800中由不超过100字节的数据表示。稀疏地图800中的通用矩形对象(例如,通用标志1040)的表示可以包括与通用矩形对象相关联的压缩图像签名(例如,压缩图像签名1045)。该压缩图像签名可以例如用于帮助识别通用标志,例如,作为辨识的地标。这种压缩图像签名(例如,从表示对象的实际图像数据导出的图像信息)可以避免需要存储对象的实际图像或者需要对实际图像执行比较图像分析以辨识地标。
参考图10,稀疏地图800可以包括或存储与通用标志1040相关联的压缩图像签名1045,而不是通用标志1040的实际图像。例如,在图像捕获设备(例如,图像捕获设备122、124或126)捕获通用标志1040的图像之后,处理器(例如,图像处理器190或者位于主车辆上或相对于主车辆远处定位的、处理图像的任何其他处理器)可以执行图像分析以提取/创建压缩图像签名1045,该压缩图像签名1045包括与通用标志1040相关联的唯一签名或图案。在一个实施例中,压缩图像签名1045可以包括形状、颜色图案、亮度图案或可以从通用标志1040的图像中提取的用于描述通用标志1040的任何其他特征。
例如,在图10中,在压缩图像签名1045中示出的圆形、三角形和星形可以表示不同颜色的区域。可以将由圆形、三角形和星形表示的图案存储在稀疏地图800中,例如在被指定包括图像签名的50个字节内。值得注意的是,圆形、三角形和星形不一定意味着这些形状已存储为图像签名的一部分。相反,这些形状意味着在概念上表示具有可辨别的色差的可辨识区域、文本区域、图形形状或可能与通用标志相关联的其他特征的变化。这种压缩图像签名可以用于识别通用标志形式的地标。例如,基于存储的压缩图像签名与例如使用自主车辆上的相机捕获的图像数据的比较,可以将压缩图像签名用于执行相同不相同(same-not-same)分析。
因此,可以通过对当一个或多个车辆穿越路段时获取的多个图像的图像分析来识别多个地标。如下面关于“众包”所解释的,在一些实施例中,识别多个地标的图像分析可以包括:当出现地标的图像与没有出现地标的图像的比率超过阈值时,接受潜在的地标。此外,在一些实施例中,用于识别多个地标的图像分析可以包括:当没有出现地标的图像与出现地标的图像的比率超过阈值时,拒绝潜在的地标。
返回到主车辆可以用于导航特定路段的目标轨迹,图11A示出了在构造或维护稀疏地图800的过程中捕获的多项式表示轨迹。可以基于沿着相同路段的车辆的先前遍历的两个或更多个重构轨迹来确定稀疏地图800中包括的目标轨迹的多项式表示。在一些实施例中,稀疏地图800中包括的目标轨迹的多项式表示可以是沿着相同路段的车辆的先前遍历的两个或更多个重构的轨迹的集合。在一些实施例中,稀疏地图800中包括的目标轨迹的多项式表示可以是沿着相同路段的车辆的先前遍历的两个或更多个重构轨迹的平均。基于从沿着路段穿越的车辆收集的重构轨迹,也可以使用其他数学运算来沿着道路路径构造目标轨迹。
如图11A所示,路段1100可以在不同时间由多个车辆200行驶。每个车辆200可以收集与车辆沿着该路段所走的路径有关的数据。可以基于相机数据、加速计信息、速度传感器信息和/或GPS信息以及其他潜在来源来确定特定车辆的行驶路径。这种数据可以用于重构沿着该路段行驶的车辆的轨迹,并且基于这些重构的轨迹,可以针对该特定路段确定目标轨迹(或多个目标轨迹)。当车辆沿着路段行驶时,这种目标轨迹可以表示主车辆的优选路径(例如,由自主导航系统引导)。
在图11A所示的示例中,可以基于在第一时间段(例如,第一天)从穿越路段1100的第一车辆接收的数据来确定第一重构轨迹1101,可以从在第二时间段(例如,第2天)穿越路段1100的第二车辆获得第二重构轨迹1102,并且可以从在第三时间段(例如,第3天)穿越路段1100的第三车辆获得第三重构轨迹1103。每个轨迹1101、1102和1103可以由多项式表示,诸如三维多项式。应当注意,在一些实施例中,任何重构轨迹都可以组装在穿越路段1100的车辆上。
附加地或可替代地,可以基于从穿越路段1100的车辆接收到的信息在服务器侧确定这种重构轨迹。例如,在一些实施例中,车辆200可以将与其沿路段1100的运动有关的数据(例如,转向角、航向、时间、位置、速度、感测的道路几何形状和/或感测的地标等)发送到一个或多个服务器。服务器可以基于接收到的数据来重构车辆200的轨迹。服务器还可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103来生成用于引导将在稍后的时间沿着相同的路段1100行驶的自主车辆的导航的目标轨迹。尽管目标轨迹可以与路段的单个先前穿越相关联,但是在一些实施例中,可以基于穿越相同路段的车辆的两个或更多个重构轨迹来确定稀疏地图800中包括的每个目标轨迹。在图11A中,目标轨迹由1110表示。在一些实施例中,可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103的平均来生成目标轨迹1110。在一些实施例中,稀疏地图800中包括的目标轨迹1110可以是两个或更多个重构轨迹的整合(例如,加权组合)。
图11B和图11C进一步示出了与在地理区域1111内存在的路段相关联的目标轨迹的概念。如图11B所示,地理区域1111内的第一路段1120可以包括多车道道路,该多车道道路包括指定车辆在第一方向上行驶的两个车道1122和指定车辆在与第一方向相反的第二方向上行驶的两个额外车道1124。车道1122和车道1124可以由双黄线1123隔开。地理区域1111还可以包括与路段1120相交的分支路段1130。路段1130可以包括两车道道路,每个车道被指定用于不同的行驶方向。地理区域1111还可以包括其他道路特征,诸如停车线1132、停车标志1134、限速标志1136和危险标志1138。
如图11C所示,稀疏地图800可以包括局部地图1140,该局部地图1140包括用于协助地理区域1111内的车辆的自主导航的道路模型。例如,局部地图1140可以包括与地理区域1111内的路段1120和/或1130相关联的一个或多个车道的目标轨迹。例如,局部地图1140可以包括自主车辆在穿越车道1122时可以访问或依赖的目标轨迹1141和/或1142。类似地,局部地图1140可以包括自主车辆在穿越车道1124时可以访问或依赖的目标轨迹1143和/或1144。此外,局部地图1140可以包括自主车辆在穿越路段1130时可可以访问或依赖的目标轨迹1145和/或1146。目标轨迹1147表示自主车辆在从车道1120(具体地,相对于与车道1120的最右边车道相关联的目标轨迹1141)过渡到路段1130(具体地,相对于与路段1130的第一侧相关联的目标轨迹1145)时应遵循的优选路径。同样,目标轨迹1148表示自主车辆在从路段1130(具体地,相对于目标轨迹1146)过渡到路段1124的一部分(具体而言,如图所示,相对于与车道1124的左车道相关联的轨迹目标1143)时应遵循的优选路径。
稀疏地图800还可以包括与地理区域1111相关联的其他道路相关特征的表示。例如,稀疏地图800还可以包括在地理区域1111中识别的一个或多个地标的表示。这种地标可以包括与停车线1132相关联的第一地标1150、与停车标志1134相关联的第二地标1152、与限速标志1154相关联的第三地标以及与危险标志1138相关联的第四地标1156。这种地标可以被用于例如协助自主车辆确定其相对于任何所示目标轨迹的当前位置,使得车辆可以调整其航向以在确定位置处匹配目标轨迹的方向。
在一些实施例中,稀疏地图800还可以包括道路签名轮廓(road signatureprofile)。这种道路签名轮廓可以与与道路相关联的至少一个参数中的任何可辨别/可测量变化相关联。例如,在某些情况下,这种轮廓可以与路面信息的变化相关联,诸如特定路段的表面粗糙度的变化、特定路段上的道路宽度的变化、沿着特定路段绘制的虚线之间的距离的变化、沿着特定路段的道路曲率的变化等。图11D示出了道路签名轮廓1160的示例。尽管轮廓1160可以表示上述参数中的任何一个或其他参数,但是在一个示例中,轮廓1160可以表示路面粗糙度的测量,如例如通过监视一个或多个传感器获得的,一个或多个传感器提供指示车辆行驶特定路段时悬架位移量的输出。
可替代地或同时地,轮廓1160可以表示道路宽度的变化,如基于经由在特定路段上行驶的车辆上的相机所获得的图像数据确定的。这种轮廓例如在确定自主车辆相对于特定目标轨迹的特定位置时可能是有用的。也就是说,当自主车辆穿越路段时,它可以测量与与该路段相关联的一个或多个参数相关联的轮廓。如果测量的轮廓可以与相对于沿路段的位置绘制参数变化的预定轮廓相关联/匹配,则可以使用测量的轮廓和预定轮廓(例如,通过覆盖测量的轮廓和预定轮廓的相应部分)以便确定沿路段的当前位置,并因此确定相对于路段的目标轨迹的当前位置。
在一些实施例中,稀疏地图800可以基于与自主车辆的用户、环境状况和/或与驾驶有关的其他参数相关联的不同特征而包括不同的轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或轮廓来生成不同的轨迹。可以将包括这种不同轨迹的稀疏地图800提供给不同用户的不同自主车辆。例如,一些用户可能宁愿避开收费公路,而其他用户可能宁愿走最短或最快的路线,而不管路线上是否有收费公路。所公开的系统可以基于这种不同的用户偏好或轮廓来生成具有不同轨迹的不同稀疏地图。作为另一个示例,一些用户可能宁愿在快速移动的车道上行驶,而其他用户可能宁愿一直保持在中央车道上的位置。
可以基于不同环境状况(诸如,白天和黑夜、雪、雨、雾等)来生成不同的轨迹并将其包括在稀疏地图800中。可以向在不同环境状况下驾驶的自主车辆提供基于这种不同环境状况生成的稀疏地图800。在一些实施例中,设置在自主车辆上的相机可以检测环境状况,并且可以将这种信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包括对于在检测到的环境状况下驾驶的自主车辆而言可能更合适或更安全的轨迹。当自主车辆沿着道路行驶时,可以动态地执行基于环境状况的稀疏地图800的更新。
与驾驶有关的其他不同参数也可以用作生成不同的稀疏地图并将其提供给不同的自主车辆的基础。例如,当自主车辆高速行驶时,转弯可能更严格。与特定车道而不是道路相关联的轨迹可以包括在稀疏地图800中,使得当车辆遵循特定轨迹时,自主车辆可以保持在特定车道内。当由自主车辆上的相机捕获的图像指示车辆已经偏离车道(例如,越过车道标记)时,可以在车辆内触发动作以根据特定轨迹将车辆带回到指定车道。
众包稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,公开的系统和方法可以使用众包数据来生成稀疏地图,一个或多个自主车辆可以使用该稀疏地图沿着道路系统导航。如本文所使用的,“众包”是指在不同时间从在路段上行驶的各种车辆(例如,自主车辆)接收数据,并且这种数据用于生成和/或更新道路模型。该模型继而可以被发送到车辆或随后沿着路段行驶的其他车辆,以协助自主车辆导航。道路模型可以包括多个目标轨迹,这些目标轨迹表示自主车辆在穿越路段时应遵循的优选轨迹。目标轨迹可以与从穿越路段的车辆收集的重构实际轨迹相同,其可以从车辆发送到服务器。在一些实施例中,目标轨迹可以不同于一个或多个车辆先前在穿越路段时所采用的实际轨迹。可以基于实际轨迹来生成目标轨迹(例如,通过平均或任何其他合适的操作)。
车辆可以上传到服务器的车辆轨迹数据可以与车辆的实际重构轨迹相对应,或者可以与推荐轨迹相对应,该推荐轨迹可以基于或与车辆的实际重构轨迹相关,但是可以与实际重构轨迹不同。例如,车辆可以修改其实际的、重构的轨迹,并将修改后的实际轨迹提交(例如,推荐给)服务器。道路模型可以使用推荐的、修改后的轨迹作为用于其他车辆的自主导航的目标轨迹。
除了轨迹信息之外,潜在地用于构造稀疏数据图800的其他信息可以包括与潜在地标候选有关的信息。例如,通过信息的众包,所公开的系统和方法可以识别环境中的潜在地标并细化地标位置。自主车辆的导航系统可以使用地标来确定和/或调整车辆沿着目标轨迹的位置。
可以通过任何合适的方法来获得在车辆沿着道路行驶时车辆可能生成的重构轨迹。在一些实施例中,可以通过使用例如自我运动估计(例如,相机的三维平移和三维旋转,以及因此车辆的车体)将车辆的运动的段缝合在一起来开发重构的轨迹。可以基于对由一个或多个图像捕获设备捕获的图像以及来自其他传感器或设备(诸如,惯性传感器和速度传感器)的信息的分析来确定旋转和平移估计。例如,惯性传感器可以包括加速度计或被配置为测量车辆车体的平移和/或旋转的变化的其他合适的传感器。车辆可以包括测量车辆速度的速度传感器。
在一些实施例中,可以基于对捕获图像的光流分析来估计相机(以及因此车辆车体)的自我运动。图像序列的光流分析从图像序列中识别出像素的运动,并基于识别的运动确定车辆的运动。自我运动可以随着时间的推移并沿着路段进行整合,以重构与车辆所遵循的路段相关联的轨迹。
由在不同时间沿着路段进行多次驾驶的多个车辆的收集的数据(例如,重构的轨迹)可以用于构造稀疏数据地图800中包括的道路模型(例如,包括目标轨迹等)。也可以对由在不同时间沿着路段进行多次驾驶的多个车辆收集的数据进行平均,以提高模型的准确度。在一些实施例中,关于道路几何形状和/或地标的数据可以从在不同时间行驶通过共同路段(common road segment)的多个车辆接收。从不同车辆接收的这种数据可以被组合以生成道路模型和/或更新道路模型。
沿着路段的重构轨迹(以及目标轨迹)的几何形状可以由三维空间中的曲线表示,该曲线可以是连接三维多项式的样条。可以通过对由安装在车辆上的相机捕获的视频流或多个图像的分析来确定重构的轨迹曲线。在一些实施例中,在每个帧或图像中识别出比车辆当前位置提前几米的位置。该位置是预期车辆在预定时间段内行驶到的位置。可以逐帧重复执行此操作,并且同时,车辆可以计算相机的自我运动(旋转和平移)。在每个帧或图像处,车辆在附着到相机的参考框架(reference frame)中生成期望的路径的短距离模型。可以将短距离模型缝合在一起以获得在某个坐标框架(coordinate frame)中的道路的三维模型,该坐标框架可以是任意或预定的坐标框架。然后,可以通过样条拟合道路的三维模型,样条可以包括或连接一个或多个合适阶数的多项式。
为了得出每个帧的短距离道路模型,可以使用一个或多个检测模块。例如,可以使用自下而上的车道检测模块。当在道路上绘制车道标记时,自下而上的车道检测模块可能是有用的。该模块可以在图像中寻找边缘,并将它们组合在一起以形成车道标记。第二模块可以与自下而上的车道检测模块一起使用。第二模块是端到端的深度神经网络,可以对其进行训练以从输入图像预测正确的短程路径。在这两个模块中,都可以在图像坐标框架中检测道路模型,并将其转换为可以虚拟地附着到相机的三维空间。
尽管重构的轨迹建模方法可能会由于自我运动在很长一段时间内的整合而引入误差累积,其中可能包括噪声成分,但这种误差可能并不重要,因为生成的模型可以为局部尺度上的导航提供足够的准确度。另外,可以通过使用外部信息源(诸如,卫星图像或大地测量)来消除整合误差。例如,所公开的系统和方法可以使用GNSS接收器来消除累积的错误。但是,GNSS定位信号可能并非始终可用且准确。所公开的系统和方法可以实现弱依赖于GNSS定位的可用性和准确度的转向应用。在这种系统中,GNSS信号的使用可能受到限制。例如,在一些实施例中,所公开的系统可以仅将GNSS信号用于数据库索引目的。
在一些实施例中,与自主车辆导航转向应用有关的范围尺度(例如,局部尺度)可以在50米、100米、200米、300米等的量级上。可以使用这种距离,因为几何道路模型主要用于两个目的:规划前方的轨迹并在道路模型上定位车辆。在一些实施例中,当控制算法根据位于前方1.3秒(或其他任何时间,诸如1.5秒、1.7秒、2秒等)的目标点来转向车辆时,规划任务可以在前方40米(或前方任何其他合适的距离,诸如20米、30米、50米)的典型范围内使用该模型。根据在另一部分中更详细描述的称为“尾对准”(tail alignment)的方法,定位任务在汽车后60米(或任何其他合适的距离,诸如50米、100米、150米等)的典型范围内使用道路模型。所公开的系统和方法可以生成在特定范围(诸如,100米)上具有足够准确度的几何模型,使得规划的轨迹与车道中心的偏离不会超过例如30cm。
如上所述,可以通过检测短程路段并将它们缝合在一起来构造三维道路模型。可以通过使用相机捕获的视频和/或图像、来自惯性传感器的反映车辆运动的数据以及主车辆速度信号来计算六个度自我运动模型来实现缝合。累积的误差在某些局部范围尺度上(诸如100米的量级)可能足够小。所有这些都可以在特定路段上的单次驾驶中完成。
在一些实施例中,可以使用多次驾驶来对所得模型进行平均,并进一步提高其准确度。同一辆汽车可能会多次沿着同一路线行驶,或者多辆汽车可能会将其收集的模型数据发送到中央服务器。在任何情况下,都可以执行匹配过程以识别重叠模型并实现平均以生成目标轨迹。一旦满足收敛准则,所构造的模型(例如,包括目标轨迹)可用于转向。后续驾驶可用于进一步的模型改进,并适应基础架构的变化。
如果将多辆汽车连接到中央服务器,则可以在多辆汽车之间共享驾驶经验(诸如,感测数据)。每个车辆客户端可以存储通用道路模型的部分副本,该副本可能与其当前位置有关。车辆和服务器之间的双向更新过程可以由车辆和服务器执行。上面讨论的小足迹概念使所公开的系统和方法能够使用非常小的带宽来执行双向更新。
也可以确定与潜在地标有关的信息,并将其转发到中央服务器。例如,所公开的系统和方法可以基于包括地标的一个或多个图像来确定潜在地标的一个或多个物理属性。物理属性可以包括地标的物理大小(例如,高度、宽度)、从车辆到地标的距离、地标到先前地标之间的距离、地标的横向位置(例如,地标相对于行驶的车道的位置)、地标的GPS坐标、地标的类型、地标上的文字识别等。例如,车辆可以分析由相机捕获的一个或多个图像以检测潜在的地标,诸如限速标志。
车辆可以基于对一个或多个图像的分析来确定从车辆到地标的距离。在一些实施例中,可以基于使用合适的图像分析方法(诸如,缩放方法和/或光流方法)对地标图像的分析来确定距离。在一些实施例中,所公开的系统和方法可以被配置为确定潜在地标的类型或分类。如果车辆确定某个潜在地标对应于稀疏地图中存储的预定类型或类别,则车辆将对地标的类型或分类以及其位置的指示传达给服务器就足够了。服务器可以存储这种指示。在稍后的时间,其他车辆可以捕获地标的图像,处理图像(例如,使用分类器),并且将处理图像的结果与服务器中存储的关于地标的类型的指示进行比较。可能存在各种类型的地标,并且不同类型的地标可能与要上传到服务器并存储在服务器中的不同类型的数据相关联,车辆上的不同处理可能会检测到该地标并将有关该地标的信息传达给服务器,车辆上的系统可以从服务器接收地标数据,并使用地标数据来识别自主导航中的地标。
在一些实施例中,在路段上行驶的多个自主车辆可以与服务器通信。车辆(或客户端)可以在任意坐标框架中生成描述其驾驶的曲线(例如,通过自我运动整合)。车辆可以检测地标并将它们定位在同一框架中。车辆可以将曲线和地标上传到服务器。服务器可以从多次驾驶的车辆收集数据,并生成统一的道路模型。例如,如下面关于图19所讨论的,服务器可以使用上传的曲线和地标生成具有统一道路模型的稀疏地图。
服务器还可以将模型分发给客户端(例如,车辆)。例如,服务器可以将稀疏地图分发给一个或多个车辆。当从车辆接收新数据时,服务器可以连续或周期性地更新模型。例如,服务器可以处理新数据,以评估数据是否包括应在服务器上触发更新或新数据的创建的信息。服务器可以将更新后的模型或更新分发给车辆以提供自主车辆导航。
服务器可以使用一个或多个标准来确定从车辆接收的新数据是应该触发对模型的更新还是触发新数据的创建。例如,当新数据指示在特定位置的先前辨识的地标不再存在或被另一个地标替代时,服务器可以确定新数据应触发对模型的更新。作为另一个示例,当新数据指示路段已经关闭时,并且当从其他车辆接收到的数据证实了这一点时,服务器可以确定新数据应触发对模型的更新。
服务器可以将更新后的模型(或模型的更新后的部分)分发给在路段上行驶的一个或多个车辆,并且该路段与对模型的更新相关联。服务器还可以将更新后的模型分发给将要在该路段上行驶的车辆或规划的行程包括该路段的车辆,并且该路段与对模型的更新相关联。例如,当自主车辆在到达与更新相关联的路段之前沿另一路段行驶时,服务器可以在车辆到达该路段之前将更新或更新后的模型分发给自主车辆。
在一些实施例中,远程服务器可以从多个客户端(例如,沿着共同路段行驶的车辆)收集轨迹和地标。服务器可以使用地标来匹配曲线,并基于从多个车辆收集的轨迹来创建平均道路模型。服务器还可以计算道路图以及在该路段的每个节点或路口处的最可能路径。例如,远程服务器可以对准轨迹以从收集的轨迹生成众包稀疏地图。
服务器可以平均从沿着共同路段行驶的多辆车辆接收到的地标属性,诸如由多个车辆测量的一个地标到另一个地标(例如,沿着路段的先前地标)之间的距离,以确定弧长参数并支持对每个客户端车辆进行沿路径定位和速度校准。服务器可以平均由沿着共同路段行驶并辨识出相同地标的多个车辆测量的地标的物理大小。平均的物理大小可以用于支持距离估计,诸如从车辆到地标的距离。服务器可以平均由沿着共同路段行驶并辨识出相同地标的多个车辆测量的地标的横向位置(例如,从车辆行驶的车道到地标的位置)。平均的横向位置可以用于支持车道分配。服务器可以平均由沿着相同路段行驶并辨识出相同地标的多个车辆测量的地标的GPS坐标。地标的平均GPS坐标可用于支持道路模型中地标的全局定位或安置。
在一些实施例中,服务器可以基于从车辆接收的数据来识别模型变化,诸如构造、弯路、新标志、标志的移除等。当从车辆接收到新数据时,服务器可以连续地或周期性地或瞬时地更新模型。服务器可以将对模型的更新或更新后的模型分发给车辆以提供自主导航。例如,如下面进一步讨论的,服务器可以使用众包数据来过滤出车辆检测到的“幻影”(ghost)地标。
在一些实施例中,服务器可以分析自主驾驶期间的驾驶员干预。服务器可以分析在发生干预的时间和地点从车辆接收的数据,和/或在发生干预的时间之前接收的数据。服务器可以识别引起干预或与干预密切相关的数据的某些部分,例如,指示临时车道关闭设置的数据、指示道路上的行人的数据。服务器可以基于识别的数据来更新模型。例如,服务器可以修改存储在模型中的一个或多个轨迹。
图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,服务器1230可以对位置测量进行平均并且将平均的位置测量用作地标的位置。地标的位置可以通过从后续驾驶中的车辆接收到的测量来不断细化。
地标的识别可以包括地标的大小。设置在车辆上的处理器(例如1205)可以基于图像的分析来估计地标的物理大小。服务器1230可以在不同的驾驶中从不同的车辆接收相同地标的物理大小的多个估计。服务器1230可以对不同的估计进行平均以得出地标的物理大小,并将该地标大小存储在道路模型中。物理大小估计可以用于进一步确定或估计从车辆到地标的距离。到地标的距离可以基于车辆的当前速度和基于图像中出现的地标相对于相机的扩展焦点的位置的扩展比例来估计。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中,V是车辆的速度,R是图像中从时间t1的地标到扩展焦点的距离,D是图像中的地标从t1到t2的距离变化。dt表示(t2-tl)。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中,V是车辆的速度,R是图像中地标与扩展焦点之间的距离,dt是时间间隔,并且D是地标沿极线的图像位移。可以使用等效于上述公式的其他公式,诸如Z=V*ω/Δω,来估计到地标的距离。这里,V是车速,ω是图像长度(如物体宽度),Δω是图像长度在单位时间内的变化。
当知道地标的物理大小时,也可以根据以下公式确定到地标的距离:Z=f*W/ω,其中,f是焦距,W是地标的大小(例如,高度或宽度),ω是地标离开图像时的像素数。根据以上公式,可以使用ΔZ=f*W*Δω/ω2+f*ΔW/ω计算距离Z的变化,其中,ΔW通过平均衰减为零,并且其中,Δω是表示图像中边界框准确度的像素数。可以通过在服务器侧平均多个观察值来计算估计地标的物理大小的值。距离估计中产生的误差可能很小。使用上述公式时,可能会出现两种误差来源,即ΔW和Δω。它们对距离误差的贡献由Δ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的原始数据1410,而不是来自驾驶1的原始数据。骨架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可以接受潜在的地标,和/或当未出现地标的图像与确实出现地标的图像的比率超过阈值时,服务器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,系统1700还被配置用于众包稀疏地图。如图17所示,系统1700包括车辆1810,车辆1810使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位设备(例如,GPS定位器)来捕获驾驶数据。如图17所示,车辆1810将收集的数据分段成驾驶段(在图18中示为“DS1 1”、“DS2 1”、“DSN 1”)。然后,服务器1230接收驾驶段,并根据接收到的段重建驾驶(在图18中示为“驾驶1”)。
如图18进一步所示,系统1700还从附加车辆接收数据。例如,车辆1820还使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位设备(例如,GPS定位器)来捕获驾驶数据。与车辆1810类似,车辆1820将收集的数据分段成驾驶段(在图18中示为“DS1 2”、“DS2 2”、“DSN 2”)。然后,服务器1230接收驾驶段,并根据接收到的段重建驾驶(在图18中示为“驾驶2”)。可以使用任何数量的附加车辆。例如,图18还包括“汽车N”,其捕获驾驶数据,将其分段为驾驶段(在图18中示为“DS1 N”、“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可以包括硬件组件(例如,通信控制电路、交换机和天线)和软件组件(例如,通信协议、计算机代码)两者。例如,通信单元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之外或代替存储设备2010,服务器1230可以包括存储器2015。存储器2015可以与存储器140或150相似或不同。存储器2015可以是非暂时性存储器,诸如闪存、随机存取存储器等。存储器2015可以被配置为存储数据,诸如可由处理器(例如,处理器2020)运行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主车辆道路导航模型和/或从车辆1205、1210、1215、1220和1225接收的导航信息。
服务器1230可以包括被配置为运行存储在存储器2015中的计算机代码或指令以执行各种功能的至少一个处理设备2020。例如,处理设备2020可以分析从车辆1205、1210、1215、1220和1225接收的导航信息,并基于该分析来生成自主车辆道路导航模型。处理设备2020可以控制通信单元1405以将自主车辆道路导航模型分发给一个或多个自主车辆(例如,车辆1205、1210、1215、1220和1225中的一个或多个,或者稍后在路段1200上行驶的任何车辆)。处理设备2020可以与处理器180、190或处理单元110相似或不同。
图21示出了存储器2015的框图,存储器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行驶的其他自主车辆使用。可以与目标轨迹相关联地记录在车辆沿着路段1200行驶时由车辆1205、1210、1215、1220和1225识别的地标。目标轨迹和地标的数据可以用在后续驾驶中从其他车辆接收的新数据连续地或周期性地更新。
为了自主车辆的定位,所公开的系统和方法可以使用扩展卡尔曼滤波器。车辆的位置可以基于三维位置数据和/或三维方位数据、通过整合自我运动对车辆当前位置前方的未来位置的预测来确定。车辆的定位可以通过对地标的图像观察来校正或调整。例如,当车辆在由相机捕获的图像内检测到地标时,可以将该地标与存储在道路模型或稀疏地图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行驶)。服务器1230可以使用从车辆1205发送到服务器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)可以用作中枢(hub)车辆。中枢车辆(例如,车辆1205)的至少一个处理器2315可以执行由服务器1230执行的一些或全部功能。例如,中枢车辆的至少一个处理器2315可以与其他车辆通信并从其他车辆接收导航信息。中枢车辆的至少一个处理器2315可以基于从其他车辆接收的共享信息来生成自主车辆道路导航模型或对该模型的更新。中枢车辆的至少一个处理器2315可以将自主车辆道路导航模型或对该模型的更新发送到其他车辆,以提供自主导航引导。
匿名化导航信息
如上所述,来自一个或多个车辆的数据可用于生成道路导航模型以用于自主车辆导航。用于生成道路导航模型的数据可以包括与本公开内容一致的任何数据,并且可以在主车辆进行从一个位置到另一个位置的行程时生成、捕获或导出该数据。主车辆可以是自主车辆、部分自主车辆或由人类驾驶员操作的车辆。例如,当车辆从第一位置行驶到第二位置时,可以捕获描绘车辆的道路或环境的一个或多个图像。作为另一示例,可以在车辆行驶时确定多个GPS位置。如上所述,甚至可以生成该数据以确定车辆行驶的轨迹。
在某些情况下,数据可以包括私人信息。例如,如果车辆存储在私人财产的车库中,则车辆的轨迹可以包括从车库和穿过私人财产以及车辆进入的公共道路的轨迹。作为另一个示例,数据可以包括从一个人的家到一个人的工作场所的轨迹,或者以其他方式包含可以追溯到个人或车辆的信息。例如,如果某人每天从他或她的家行驶到办公楼,则可能会生成多个轨迹,这些轨迹描述了从该人的家到办公园区的路径。该数据有可能可以用于识别此人。例如,可以容易地确定与家相关联的地址,并确定与该家相关联的人在办公楼工作。也可以能够确定与路径相关的模式,并将这些模式与个人相关联。例如,可以确定该人每天从家到办公楼。也可以能够确定个人的驾驶习惯。如这些示例所示,可能需要对数据进行匿名化,使得该数据无法追溯到任何单独的车辆或用户。
与本公开一致,数据可以由一个或多个系统匿名化。例如,数据可以在捕获时、在发送时、在车辆内处理时、在由远程服务器处理时以及它们的组合等时被匿名化。可以去除数据中的识别信息,诸如,例如,与车辆相关联的VIN号、与车辆相关联的用户的身份、与数据相关联的元数据等等。附加地或替代地,可以按如下所述处理数据以进一步对数据进行匿名化。
在一些实施例中,导航系统可以收集相对于主车辆穿越的路节(road section)的匿名驾驶信息。导航系统可以是与本公开一致的任何导航系统(例如,系统100、系统2300)、其部分或组合或类似的系统。应当预见,导航系统可以位于主车辆中或者可以与主车辆通信。在一些实施例中,导航系统可以远程定位但与主车辆的一个或多个传感器(例如,GPS单元、相机、速度传感器、加速度计、道路轮廓传感器等)直接通信。在一些实施例中,导航系统可以是导航系统2300,并且驾驶信息可以包括来自GPS单元2315、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330的数据。
与本公开一致,导航系统可以包括至少一个处理器。至少一个处理器可以被配置为执行一种或多种操作、过程、方法或功能,以匿名与主车辆的导航有关的数据。例如,处理器可以被编程为执行下面关于图25讨论的过程。该至少一个处理器可以是本文公开的任何处理器,诸如处理单元110、处理器2315或另一处理器。
术语“路节”用于指代车辆可通行的道路、高速公路或其他表面(例如,在未铺表面的情况下)的任何部分。在一些实施例中,路节可以包括交叉路口、一段高速公路、附近的一条或多条道路、两个目的地之间的路线等。与本公开一致,术语“路段”用于指路节的任何部分。在一些实施例中,路节可以包括一个或多个路段。例如,车辆可以收集相对于路节的导航信息,并且可以相对于路节内的多个路段来分析该信息。
图24是存储器的示例性功能框图,其可以存储/编码有用于执行与所公开的实施例一致的一个或多个操作的指令。虽然图24指代存储器140或150,但是存储器可以是本文公开的任何存储器或与本文公开的任何处理器通信的先前未公开的存储器。以下讨论指代存储器140,但是本领域技术人员将认识到,指令可以存储在与本公开一致的任何存储器中。
存储器140可以存储一个或多个模块,其可以包括用于执行与匿名化导航信息有关的一个或多个操作的指令。如图24所示,存储器140包括运动确定模块2402、图像分析模块2404、道路分段模块2406和传输模块2408。所公开的实施例不限于存储器140的任何特定配置。此外,处理单元110、图像处理器190、应用处理器180和/或处理器2315可以运行存储在存储器140中包括的模块2402、2404、2406和2408中的任何一个中的指令。以下讨论指代处理器、指代处理单元110和指代处理器2315。本领域技术人员将理解,此类引用可以指代与本公开一致的任何其他处理器。因此,可以由一个或多个处理器或处理设备来执行存储在存储器140上的任何过程的步骤或任何指令的运行。
在一些实施例中,运动确定模块2402可以包括指令,该指令在由处理器运行时确定主车辆的至少一个运动表示。可以基于来自一个或多个传感器的输出来确定(多个)运动表示。输出可以包括来自本文公开的任何传感器或传感器的组合的输出。例如,输出可以包括来自GPS单元2310、相机122、速度传感器2320、加速度计2325和/或道路轮廓传感器2330的数据。在另一示例中,输出可以包括来自任何其他传感器(诸如一个或多个激光雷达系统、雷达系统、声学传感器系统、相机系统等)或传感器组合的输出。在一些实施例中,运动确定模块2402便于确定多个车辆的运动表示。例如,运动确定模块2402可以便于确定与导航系统2300所在的主车辆的导航有关的运动表示以及从其接收一个或多个传感器输出的另一车辆的一个或多个运动表示。下面进一步讨论一个或多个运动表示的确定。
在一些实施例中,图像分析模块2404可以存储指令,该指令在由处理器运行时执行对一个或多个图像的分析以确定与路节相关联的至少一个道路特征。一个或多个图像可以由一个或多个成像设备(诸如,图像捕获设备122、124或126)捕获。可以以与本公开中其他地方所讨论的方式基本相同的方式来执行图像分析。例如,可以如关于图5A-图5F、图6和/或图7所讨论的那样执行图像分析,诸如单眼图像分析或立体图像分析。在一些实施例中,处理器可以将来自一组图像的信息与附加的感官信息(例如,来自雷达、激光雷达等的信息)进行组合以执行图像分析。
道路特征可以与本公开一致。例如,道路特征可以包括道路的边缘、与道路相关联的中心线、道路的坡度或任何其他特征。在一些实施例中,道路特征可以是路节的环境中的任何对象、对象组或对象的组合。例如,道路特征可以是沿着路节或在路节上的一个或多个地标,诸如停车标志、道路标志、交通信号、建筑物、标记、其组合或任何其他对象。在一些实施例中,道路特征可以是任何静止或动态的非瞬态对象。如果非瞬态对象能够以预定等级的置信度被车辆检测到,则该非瞬态对象可以是道路特征。例如,如果车辆在路节上导航时可能检测到临时施工标志,则该标志可能是道路特征。可以视为道路特征的非瞬态但临时性对象的其他示例可能包括动态车道变换障碍或标志(例如,用于在需要时(例如,在高峰时间等)切换一个或多个车道的方向的那些障碍或标志)、与特殊车道相关的标志或闸口(gate)(例如,指示高占用车道是否在特定时间开放的标志、与收费公路相关的标志等)等。非瞬态临时对象可能会被排除在道路特征之外。例如,在路节的后续导航中可能不在相同或相似位置的行人、车辆、动物或其他瞬态对象可以被排除为道路特征。在一些实施例中,道路特征可以包括临时特征,诸如天气状况、道路危险的指示(例如,车祸、漏油、在行驶车道上停下的车辆等)等。图像分析模块2404可以被配置为便于确定与道路特征相关联的位置、形状、大小或其他信息。例如,如果道路特征是在道路一侧检测到的停车标志,则处理器2315可以通过运行存储在图像分析模块2404上的指令来确定停车标志的位置。
在一些实施例中,道路分段模块2406可以存储指令,该指令在由处理器运行时执行用于组合和匿名化路段信息的一个或多个操作。路段信息可以包括例如由运动确定模块2402确定的运动表示和/或由图像分析模块2404确定的道路特征。例如,路段信息可以包括主车辆行驶的轨迹和道路边缘相对于车辆的位置。在一些实施例中,道路分段模块2406可以存储用于确定与道路的不同段相关联的多个路段信息的指令。多个段可以包括根据从单个车辆接收的信息确定的一个或多个段。例如,可以将与第一车辆相关联的轨迹分段成一个或多个段,并且可以确定与每个段有关的信息。多个段可以附加地或替代地包括根据从多个车辆接收的信息确定的一个或多个段。例如,与第一车辆相关联的第一轨迹可以被分段成一个或多个段,并且与第二车辆相关联的第二轨迹可以被分段成一个或多个段。
路段可以具有任何长度,并且长度可以通过任何方式确定。例如,路段的长度可以在确定的或预定的间隔内随机选择。在一些实施例中,路段的长度可以是与之相关的路节的类型或位置的函数。例如,包括一片高速公路的路节的路段可能比包括多个城市街区的路节的路段长得多。在该示例中,与一片高速公路相关的路段可以是例如几公里长,而与城市街区相关的路段可以是一公里或更短。在一些实施例中,路段的长度可以是在路节上的导航速度的函数。例如,速度限制可能超过每小时65英里的一片州际公路上的路段可能比速度限制可能是每小时35英里的乡村道路上的路段要长得多。在一些实施例中,路段的长度可以是在路节上的导航的复杂度的函数。例如,直线路节上的路段可能比弯曲路节上的路段长得多。类似地,与包含很少转弯的路线相关的路段可能比需要多次转弯或频繁转弯的路段长得多。在一些实施例中,路段的长度可以由用户确定。例如,使用与本公开一致的系统的承包商可以规定每个路段在一定长度的范围内。在一些实施例中,路节的长度可以由路节的特征或质量来确定。例如,每个路段可以具有这样的长度,在该长度上一个或多个地标可以与该路段相关联。在另一示例中,如果路段包含隧道、环形交叉口、桥梁或其他独特特征,则至少一个路段的长度可以至少与独特特征相同。在一些实施例中,可以基于地标的密度或其他可检测的道路特征来确定路段的长度。道路特征的密度可以是预定的,并且可以表示为范围、阈值或其他数量。例如,每个路段可以具有这样的长度,在该长度上例如车辆检测到5至7个地标、对象或非语义特征。以上示例仅是示例性的,并且应当理解,路段可以具有任何长度,并且可以通过与本公开一致的任何方式来确定。
道路分段模块2406可以包括指令,该指令在由处理器运行时优化与车辆的导航信息有关的数据的匿名化。指令可以通过指示处理器2315在何时何地分段信息来优化匿名化。例如,第一条指令可以规定应该对轨迹进行分段,使得起点、终点或两者不包括在任何段中。在该示例中,规定轨迹的开起点不包括在段中可以确保不包括私人车道、车库或轨迹的其他私人部分(例如,与家庭或工作场所相关联的部分或在家庭或工作场所的部分)。应当预见,可以将不包括在任何段中的私人信息删除或存储在安全的位置。在一些实施例中,私人信息可以被临时存储在缓冲器中,同时处理器2315确定私人信息对于生成自主车辆道路导航模型是否需要或有用。例如,如果例如确定通过使用包括进出办公楼停车场的轨迹的路段来绘制进入或离开停车场的转弯是适当的或优选的,则可以将该路段存储在缓冲区中并发送以包含在导航模型中。在类似的示例中,例如,如果在适合于包括在模型中的路段中包括交叉路口、独特道路特征、其他道路特征,则可以将相同的路段存储在缓冲区中并发送以包含在导航模型中。应当预见,存储在缓冲器中的路段信息可以被进一步切割为多个子段,如果路段的一个或多个部分稍后在导航模型中使用,则可以允许其保留匿名性。
道路分段模块2406可以包括指令,该指令在由处理器运行时确保包括足够的信息以生成自主车辆的导航模型。指令可以通过指示处理器2315保留数据的一部分来确保在分段的道路信息中包括足够的信息。例如,指令可以规定与独特道路结构有关的信息被包括在段中,可以规定数据的最小百分比被保留,可以规定与不经常行驶的区域有关的日期被保留等。例如,指令可以规定如果检测到隧道、桥梁、环形交叉口、合并车道、高速公路出口匝道或其他独特的道路特征,则应保留该信息,使得与该独特特征有关的信息为不会因分段而丢失。应当预见,如果用于保留独特数据的指令与用于删除与私人区域有关的数据的指令不一致,则道路分段模块2406可以优先考虑确保匿名性并且可以删除私人信息。下面讨论在运行道路分段模块2406中的指令时由处理器2315执行的分段的类型的附加示例。
存储器140可以包括传输模块2408,其可以存储指令,该指令在由处理器运行时引起路段信息的传输。路段信息可以被发送到外部服务器(诸如,服务器1230),以进行与本公开一致的进一步处理。通过在将信息发送到服务器1230之前对其进行分段,可以保留匿名性。该路段信息也可以被发送到另一车辆或另一系统以进行附加处理。在一些实施例中,该信息可以被发送到服务器1230以进行与下面讨论的过程3100一致的进一步处理。
模块2402、2404、2406和2408中的任何一个都可以用经过训练的系统(例如,神经网络或深层神经网络)或未经训练的系统来实现。
图25是示出用于收集相对于主车辆穿越的路段的匿名驾驶信息的示例性过程2500的流程图。过程2500可以由导航系统2300中包括的处理器2315、系统100中包括的处理单元110或另一个处理器来执行。在一些实施例中,过程2500可以由处理器2315根据存储在运动确定模块2402、图像分析模块2404、道路分段模块2406和/或传输模块2408中的指令来运行。
与本公开一致,过程2500可以包括用于接收指示主车辆的运动的输出的步骤2510。输出可以包括从一个或多个传感器输出的信息。一个或多个传感器可以被配置为收集与运动、位置或与主车辆相关联的其他质量有关的数据。输出信息可以由处理器或与处理器通信的系统接收。在一些实施例中,一个或多个传感器可以包括GPS传感器、速度传感器或加速度计中的一个或多个。例如,处理器2315可以被配置为从GPS单元2310、相机122、速度传感器2320、加速度计2325和/或道路轮廓传感器2330中的一个或多个接收输出信息。可以通过有线传输、通过无线传输或通过本文公开的任何方式直接或间接地从任何传感器接收输出。
在一些实施例中,信息可能已经被预先处理以确定与本公开一致的一个或多个输出。例如,该信息可能已经被处理以确定主车辆的轨迹,并且在步骤2510所确定的轨迹可以由处理器2315接收。在一些实施例中,处理器2315可以直接从一个或多个传感器接收原始数据。
与本公开一致,过程2500可以包括用于确定主车辆的至少一个运动表示的步骤2520。可以至少部分地基于来自一个或多个传感器的输出来确定至少一个运动表示。例如,可以根据在过程2500的步骤2510处接收到的输出来确定运动表示。至少一个运动表示可以包括主车辆的运动的任何指示符。例如,运动表示可以包括与主车辆关联的加速度、与车辆关联的速度、车辆在给定时间的纵向和横向位置、与车辆关联的空间中的三维位置等。在一些实施例中,至少一个运动表示可以包括主车辆的确定的轨迹。可以通过本文公开的任何方式来确定轨迹,诸如关于图12、图20以及其他地方所描述的方式。图26描述了多个车辆的轨迹,其中,轨迹中的任何一个都可以是在步骤2520确定的轨迹。
在一些实施例中,运动表示可以包括相对于预定坐标系的主车辆的自我运动表示。例如,自我运动可以包括车辆的旋转、平移、横向或其他运动。可以例如从与车辆相关联的速度、与车辆相关联的偏航率、与车辆相关联的倾斜或滚动等中的一个或多个来确定主车辆的自我运动。在一些实施例中,可以针对六个自由度来确定主车辆的自我运动表示。在其他实施例中,可以针对任何其他自由度(例如,三个自由度)来确定主车辆的自我运动表示。
过程2500可以包括用于接收表示沿该路段的主车辆的环境的至少一个图像的步骤2530。可以从与主车辆相关联的一个或多个相机接收至少一个图像。例如,处理器2315可以从图像捕获设备122接收一个或多个图像。可以通过本文公开的任何方式(包括无线传输、有线传输或任何其他方法)来接收一个或多个图像。一个或多个图像可以包括主车辆的环境的表示。例如,一个或多个图像可以包括类似于下面更详细描述的图29A或图29B的图像。
过程2500可以包括用于分析至少一个图像以确定与路节相关联的至少一个道路特征的步骤2540。例如,处理器2315可以根据上述存储在图像分析模块2404中的指令来分析一个或多个图像。作为另一示例,可以使用诸如神经网络的经过训练的系统来确定至少一个道路特征。一个或多个特征可以包括道路的任何特征,诸如道路的中心线、道路的边缘、沿着道路的地标、道路上的坑洼、道路的转弯等等。在一些实施例中,确定的至少一个道路特征可以包括车道特征,该车道特征包括检测的车道划分、车道合并、虚车道标记线、实车道标记线、车道内的路面颜色、车道线颜色、车道方向或车道类型中的一个或多个的指示符。例如,车道特征可以包括确定车道是HOV车道并且由实线与其他车道分开。在一些实施例中,确定的至少一个道路特征可以包括道路边缘的指示符。如本公开中其他地方所讨论的,道路边缘可以基于沿着边缘的检测到的障碍、检测到的人行道、指示边缘的线、沿着边缘的路缘或通过检测沿着道路的其他对象来确定。
在一些实施例中,一个或多个特征可以包括一个或多个预定特征。例如,处理器2315可以被具体配置为识别与本公开一致的任何一个或多个特征。一些道路特征可以是通常或频繁与道路关联的类型,诸如停车标志、限速标志、交通信号、其他语义对象等。处理器2315可以使用如上所述的图像分析以及学习的或预定义的关联来检测这些语义道路特征。例如,处理器2315可以检测红色的八边形对象并确定该对象是停车标志。作为另一示例,处理器2315可以检测通常与道路标志相关联的文本,诸如“限速”、“让行”、“学校区域”等,并确定对象是道路标志。同样可以确定不那么频繁出现的其他道路特征或其他非语义对象或特征。坑洼或变色的混凝土块可以用作道路特征。在该示例中,处理器2315可以分析图像以检测坑洼或变色的混凝土,例如,通过检测与坑洼相关的阴影、与变色相关的暗斑或将非语义对象与周围环境区分开的任何其他元素。然后,非语义特征可以用作道路特征,以供随后的车辆沿路段导航。
在一些实施例中,确定的至少一个道路特征可以包括地标标识符。地标标识符可以包括任何地标,例如,关于图10所讨论的那些。地标标识符可以包括与地标类型、地标位置或其组合有关的信息。地标类型可以包括交通信号、杆、道路标记、停车线或标志中的至少一个。地标位置可以包括与地标相关联的GPS坐标、地标相对于道路或相对于另一地标的位置,或与本公开一致的用于识别地标的位置的任何其他方式。例如,地标标识符可以包括地标是街道标志和街道标志相对于道路的位置的指示符。
在一些实施例中,确定的道路状况可以包括与道路相关联的临时状况。临时状况可以是不总是出现在道路上的状况,而是在由处理器2315接收的图像中检测到的状况。临时状况可以包括例如车祸、停车的车辆、行人或一组行人、道路上的动物、天气状况或其他状况的出现。例如,确定的至少一个道路特征可以包括临时道路特征,该临时道路特征包括沿路节的天气状况的指示符。天气状况可能与雪、雨、雾或太阳眩光中的至少一个相关联。
过程2500可以包括用于组装相对于路节的第一部分的第一路段信息的步骤2550。第一路段信息可以包括主车辆的至少一个运动表示和/或相对于道路的第一部分的至少一个道路特征。例如,处理器2315可以组装第一路段信息,该第一路段信息包括在步骤2520确定的运动表示和在步骤2540确定的道路特征。作为示例,运动表示可以包括主车辆行驶的轨迹,并且组装的路段可以包括轨迹和与与该轨迹相对应的道路的一部分相关联的道路特征。
处理器2315可以根据如上所述存储在道路分段模块2406中的指令来组装第一路段。例如,处理器2315可以根据指令将轨迹分成多个段。然后,处理器2315可以从多个段中选择第一路段,并且将第一段与道路特征配对以组装第一路段信息。
第一路段信息的组装可以在从主车辆接收到信息时执行。例如,在行程中,处理器2315可以接收来自一个或多个传感器和一个或多个相机的信息,并且处理器2315可以开始从接收到的信息中确定运动表示和道路特征,并将该信息组装成第一路段信息。在该示例中,可以顺序地确定多个路段信息,这可以有助于在生成导航模型时使用分段的信息。
在一些实施例中,处理器可以被编程为在预定延迟之后开始第一路段信息的组装。如关于道路分段模块2406所讨论的,延迟的组装可以帮助匿名化路段信息。例如,如果没有延迟地组装路段信息,则第一组装路段信息可以包括与车辆行驶的路径的起点有关的信息。起点可以包括私人信息,诸如车库的位置、私人车道的路径或其他信息。起点还可以用于确定与车辆或驾驶路线相关联的个人,例如,如果起点在个人的家或公司。延迟功能可以确保在组装第一路段信息时不使用行程的初始部分。延迟可以包括时间延迟。例如,可以将与前十秒、二十秒、三十秒、一分钟、两分钟、五分钟或其他间隔有关的信息从第一路段信息中排除。延迟也可以基于距离。例如,可以将与前一百英尺、五百英尺、半英里、一英里或其他距离有关的信息从第一路段信息中排除。可以通过与本公开一致的任何方式来实现延迟。例如,一个或多个传感器可能直到延迟过去才开始捕获与主车辆的运动或与之相关联的道路有关的信息。在另一示例中,一个或多个传感器可以在行程的持续时间内捕获信息,并且可以指示处理器2315删除或排除在延迟期间捕获的信息。在一些实施例中,延迟的长度,无论是基于时间的还是基于距离的,都可以随机确定或者可以在预定阈值内随机确定。例如,可以将延迟随机地选择为在从5到45秒的预定时间范围、0.5km到2km的预定距离等之间。
应当预见,可以使用其他方式来保持组装在第一路段信息中的信息的匿名性。例如,如果由处理器2315接收的图像包含家、私人车道或私人数据的其他指示符,则处理器2315可以被编程为将与私人数据有关的检索到的任何信息排除在第一路段信息之外。贯穿本公开讨论了用于保持信息的匿名性的方式的示例,包括与道路分段模块2406有关的讨论。
过程2500可以包括用于组装相对于路节的第二部分的第二路段信息的步骤2560。类似于在步骤2540处组装的第一路段信息,第二路段信息可以包括主车辆的至少一个运动表示和/或相对于路节的至少一个道路特征。例如,处理器2315可以组装第二路段信息,该第二路段信息包括在步骤2520确定的运动表示和在步骤2540确定的道路特征。作为示例,运动表示可以包括主车辆行驶的轨迹,并且组装的路段可以包括轨迹和与与该轨迹相对应的道路的一部分相关联的道路特征。可以以与关于第一路段信息所讨论的基本上相同的方式来组装第二路段信息。
第二路段信息的组装可以包括用于确保类似于第一路段信息的匿名性的信息的匿名性的方式。例如,可以在延迟之后组装第二路段信息,并且可以从第二路段信息中排除与私人信息相关联的路节的部分(例如,靠近家或工作场所)等。
与本公开一致,路节的第二部分可以与路节的第一部分不同。例如,与在步骤2550处组装的第一路段信息相关联的路节可以是与其路段信息组装为在步骤2560处组装的第二路段信息的路节不同的路节。因此,第二路段信息可以包括与第一路段信息不同的道路特征和/或运动表示。
在一些实施例中,路节的第二部分可以与路节的第一部分在空间上分开。第一和第二路段可以在空间上被路节的第三部分分开。第三部分可以具有任何距离。用第三部分分开第一部分和第二部分可以进一步匿名化信息。例如,第三部分可以不包括在使用分段道路信息生成的地图中。在一些实施例中,与第一部分和第二部分有关的信息可以被发送以进一步处理,而与第三部分有关的信息可以被删除、存储而不进行处理,或者以其他方式从与本公开一致的进一步处理中排除。
第三部分可以具有任何长度。随着第一路节和第二路节之间的距离增加,车辆在第一路节和第二路节之间转弯、驶出或以其他方式不行驶的可能性变得更大。这样,在一些实施例中,由第三部分表示的相对较大的空间间隔可能是优选的。例如,路节的第一部分可以与路节的第二部分在空间上分开至少1km的距离。在其他实施例中,路节的第一部分可以与路节的第二部分在空间上分开任何其他距离(例如,0.5km、1.5km、2km、2.5km、3k、2.5km、5km等)。第三部分的长度可以通过与本公开一致的任何方式来确定,包括例如用于确定关于道路分段模块2406所讨论的第一和第二路段的长度的方式。
结合图26-图28进一步讨论第一路段信息和第二路段信息的组装。可以基于一个或多个因素来组装第一路段信息和第二路段信息中的每一个。上述匿名性特征就是这种因素的示例。在一些实施例中,与第一路段信息相关联的道路的第一部分和与第二路段信息相关联的道路的第二部分可以是预定的或随机的长度。例如,路节的第一部分和路节的第二部分可以各自具有至少2km、2km至9km、至少4km、小于10km等的长度。每个部分的长度(例如,1km、1.5km、2km、2.5km、3km、4km、5km等)可以是任意长度、预定长度或确定的优化长度。例如,处理器2315可以接收与20km的路节有关的信息,并且可以确定将20km分段成每个4km的3个部分,并且应该删除该路节的剩余长度以提供上述的匿名因素。在另一个示例中,处理器2315可以确定第一路段应包括长度为5km的部分,而第二路段应包括长度为4km的道路部分。这些实施例仅用于说明目的,而不是限制性的。如所讨论的,每个路段可以具有任何长度。上面关于道路分段模块2406讨论了用于确定每个部分的长度的方式的示例。
在一些实施例中,路节可以被随机地分段。例如,路节的第一部分和路节的第二部分可以各自具有由处理器随机或任意确定的长度。例如,处理器2315可以确定一个或多个随机长度,并且将该随机长度分配给要为其组装路段信息的每个路段。在一些实施例中,随机确定的长度可以落在预定长度的阈值内。例如,随机确定的长度可以落在预定长度的+/-0.5km内。
与本公开一致,可以基于与路节有关的数据、与先前确定的路节有关的数据或其他数据来确定第一路节和第二路节。在一些实施例中,可以基于道路的特征来确定第一路节、第二路节或两者。例如,如果路节包括转弯,则处理器2315可以被编程为确保第一节或第二节包括与该转弯相对应的段。与转弯相对应的路段信息对于生成自主车辆的导航模型可能是有益的,因为转弯对于自主车辆而言可能比平直路段更难导航。类似地,如果道路包括独特的道路特征,则处理器2315可以被编程为使得至少一个路段包括该独特的特征。例如,在路节包括隧道的情况下,道路的第一部分或路节的第二部分中的至少一个将由至少一个处理器指定为使得隧道的长度完全包括在路节的第一部分或路节的第二部分内。在一些实施例中,处理器2315可以基于从例如服务器1230接收的数据来确定第一道路部分和第二道路部分。例如,如果服务器1230从多个车辆接收第一路段信息和第二路段信息,则如关于图12和图23所讨论的,服务器1230可以被配置为确定尚未获得其信息的路节的部分。在这种情况下,服务器1230可以向处理器2315发送指令,该指令用于将缺失部分包括为路节的第一或第二段的一部分。
尽管过程2500的讨论涉及第一和第二路段,但是应当理解,可以生成任何数量的路段。例如,可以针对任何一个路节生成多个路段。
过程2500可以包括步骤2570,该步骤2570用于使第一路段信息和第二路段信息发送到相对于主车辆远程定位的服务器,以组装自主车辆道路导航模型。例如,处理器2315可以将在步骤2550处组装的第一路段信息和/或在步骤2560处组装的第二路段信息发送到服务器1230。服务器1230可以使用来自多个主车辆的路段信息来生成自主车辆道路导航地图,如关于图12、图14和/或图21以及本文其他地方所讨论的。因为发送到服务器1230的数据包括一个或多个段而不是主车辆行驶的未处理的路线,所以该数据可能无法追溯到车辆行驶的路线,从而确保了数据的匿名性。在处理器2315组装与道路的第三部分有关的信息的示例中,第三部分将第一部分和第二部分分开,处理器可以放弃向服务器发送与路节的第三部分有关的组装的路段信息。如上所述,通过前述与第三部分有关的信息的发送,处理器2315可以确保数据被匿名化。
在一些实施例中,在组装第一和第二路段信息之后,处理器2315可以临时存储该信息,并且仅在确定该信息不包含可追溯到用户或车辆的任何信息时才发送该信息。例如,处理器可以被编程为放弃向服务器发送路段信息的最终组装,其中,路段信息的最终组装表示主车辆的驾驶结束。确保路段信息不包括驾驶的终点,可以帮助确保该信息可能不会用于识别用于生成路段信息的用户或车辆。在另一个示例中,处理器可以被编程为放弃向服务器发送路段信息的初始组装,其中,路段信息的初始组装包括主车辆的驾驶开始的表示。作为另一示例,处理器2315可以执行附加处理以确定识别的信息是否包括在运动表示、道路特征或诸如路段信息的其他数据中。例如,处理器2315可以执行辅助图像分析以确保包括在路段信息中的图像不包括例如用于收集信息的车辆的反射、用户的家或地址的图像、或可能与个人或车辆相关联其他数据。
在一些实施例中,可以在第一时间发送第一组路段信息,并且可以在第二时间发送第二组路段信息。如上所述,可以将单个路节分段成多个路段,并且为了保持匿名性,可以在第一时间发送少于所有路段的信息。应当预见,可以在第二时间发送附加路段信息。在这些实施例中,由单个车辆针对路节生成的基本上所有路段信息都可以用于生成自主车辆道路导航模型,同时保持匿名性。当例如相对较少的车辆行驶在路节上时,并且因此不能从多个车辆有效地或高效地发送路段信息,这可能是有益的。
过程2500可以包括用于接收导航模型并在主车辆中引起导航响应的步骤(未示出)。例如,处理器可以被编程为从远程服务器接收自主车辆导航模型,并基于自主车辆道路导航模型来引起主车辆的至少一个导航操纵。自主车辆道路导航模型可以是例如在步骤2570处由服务器1230生成的导航模型。如本公开的其他地方所讨论的,导航操纵可以是主车辆的任何响应,例如,加速、制动、转弯、改变车道、停车等。
受益于本公开,本领域的人员或普通技术人员将理解,可以以任何顺序执行过程2500的步骤,并且可以排除某些步骤。例如,没有理由不能在与确定主车辆一个或多个运动表示有关的步骤2510和2520之前或基本上同时执行与确定与路节相关联的道路特征有关的步骤2530和2540。类似地,可以重新布置或省略过程2500的任何其他步骤。可以调整过程2500,例如以达到或超过与自主车辆导航和/或匿名化导航数据有关的监管标准。例如,监管标准可以规定自主车辆道路导航模型必须包含的详细程度。本领域普通技术人员将理解如何调整过程2500以收集满足监管标准所需的信息,同时保持数据的匿名性。
图26A是可以由过程2500接收或确定的类型的多个运动表示和道路特征的示例图。图26B和图26C是可以在过程2500期间接收的类型并用于确定一个或多个道路特征的图像的示例。这些附图仅是示例性的,并且用于进一步理解过程2500或用于匿名化相对于主车辆穿过的路段的驾驶信息的类似方式。
图26A描绘了路节2601和多个轨迹2606、2608、2610、2612和2614,每个轨迹表示主车辆行驶的路径。如上所述,作为过程2500的步骤2510的一部分,可以从一个或多个传感器接收轨迹。附加地或可替代地,作为步骤2520的一部分,可以从原始数据确定轨迹,如关于图11A、图22和本公开中的其他地方所描述的那样确定轨迹。
在一些实施例中,轨迹2606、2608、2610、2612和2614中的每一个可以表示单个主车辆行驶的路径,每个路径在不同的时间行驶。例如,车辆1205可以在第一时间行驶轨迹2606,在第二时间行驶轨迹2608,在第三时间行驶轨迹2610,在第四时间行驶轨迹2612,并且在第五时间行驶轨迹2614。在一些实施例中,轨迹2606、2608、2610、2612和2614中的每一个都可以表示由不同的主车辆行驶的路径。例如,车辆1205可以行驶轨迹2606,车辆1210可以行驶轨迹2608,车辆1215可以行驶轨迹2610,车辆1220可以行驶轨迹2612,并且车辆1225可以行驶轨迹2614。在其他示例中,车辆1205可以在第一时间行驶轨迹2606并且在第二时间行驶轨迹2608,车辆1210可以在第三时间行驶轨迹2610,并且车辆1215可以在第四时间行驶轨迹2612并且在第五时间行驶轨迹2614。车辆1205、1210、1215、1220和1225以及轨迹2606、2608、2610、2612和2614的任何其他组合是可能的。在下面的讨论中,为了清楚起见,轨迹与一个车辆匹配。
轨迹2606可以包括主车辆的运动表示。车辆1205可能已经行驶了由轨迹2606表示的路径,并且车辆1205中的一个或多个传感器可以收集与轨迹2606有关的数据。例如,车辆1205可以包括图23中讨论的导航系统2300,其可以从一个或多个传感器(诸如,GPS单元2310、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330)收集数据。轨迹2606可以由处理器根据本文公开的方法、过程和操作来确定。例如,处理器2315可以从一个或多个传感器接收数据并且根据存储在运动表示模块2402上的指令来处理该数据以确定轨迹2606。例如,轨迹2606可以被确定为过程2500的步骤2520的一部分。轨迹2606表示的路径始于家2602,沿路节2601前进,经过停车标志2616、停车线2618和办公楼2604。如果轨迹2606用于在不匿名的情况下确定自主车辆导航模型,则导航模型可以包括用于将自主车辆导航到家2602的方向,这可能是家的居住者不期望的。还有一种可能是,如果轨迹2606在不匿名的情况下发送,则该发送可能会被拦截并用于将轨迹2606与居住在家2606中的个人相关联。可能还有其他原因需要或期望轨迹2606的匿名化。图27的讨论讨论了在过程2500中相对于轨迹2606实现的匿名化。
轨迹2608、2610、2612和2614中的每一个可以以与轨迹2606基本相同的方式确定。例如,与轨迹相对应的主车辆包括导航系统2300,其可以从一个或多个传感器(诸如,GPS单元2310、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330)收集数据。轨迹2608、2610、2612和2614可以由处理器根据本文公开的方法、过程和操作来确定。例如,位于每个主车辆中的处理器2315可以从一个或多个传感器接收数据,并且根据存储在运动表示模块2402上的指令来处理数据以确定对应的轨迹。例如,车辆1210可以包括导航系统2300,并且其中的处理器2315可以从由一个或多个传感器收集的数据中确定轨迹2608。类似地,车辆1215可以包括导航系统2300,并且其中的处理器2315可以从由一个或多个传感器收集的数据中确定轨迹2610。类似地,车辆1220可以包括导航系统2300,并且其中的处理器2315可以确定轨迹2612。类似地,车辆1225可以包括导航系统2300,并且处理器2315可以确定轨迹2614。
轨迹2608、2610、2612和2614中的每一个可以包括可能需要匿名化或从匿名化中受益的私人信息。例如,轨迹2612包括在办公楼2604处的最终目的地,在没有匿名化的情况下,与轨迹2612有关的数据可以追溯到车辆1220或与其相关联的个人。甚至沿着路节2601不具有起点或终点的轨迹也可以包含可以追踪到与该轨迹相关联的车辆或与该车辆相关联的个人的数据。这样,由轨迹2608、2610、2612和2614描绘的运动表示应被匿名化。匿名化可以如过程2500中所讨论的那样发生。图27也讨论了轨迹的匿名化。
图26B是与本公开一致的具有可以由成像设备捕获的类型并且用于确定道路特征的示例性图像2620。图像2620表示在车辆沿着路节2601行驶时捕获的图像。例如,当车辆1205沿着轨迹2606行驶时,图像2620可以由车辆1205中包括的相机122捕获。图像2620可以通过本文公开的任何方式来捕获,包括如关于图15-图16所讨论的。图像2620可以作为过程2500的一部分被接收和分析。例如,图像2620可以是在过程2500的步骤2530处接收到的一个或多个图像中的一个。图像2620包括停车标志2616和道路边缘2622的表示。停车标志2616可以对应于图26A的停车标志2616。
可以分析图像2620以确定一个或多个道路特征。例如,图像2620可以作为过程2500的步骤2540的一部分来分析。可以根据存储在图像分析模块2404中的指令来分析图像2620。如在其他地方所讨论的,一个或多个道路特征可以包括地标的位置、道路边缘、中心线或道路的其他特征。可以通过与本公开一致的任何方式来分析图像。例如,可以将图像与已知包含一个或多个道路特征的其他图像进行比较。在另一个示例中,可以通过检测地标的边缘来确定地标或其他道路特征。在一些实施例中,一个或多个经过训练或未经训练的系统可以被配置为执行图像分析。例如,图像分析模块2404可以包括被训练为检测道路特征的神经网络或深度神经网络。
在图像2620的示例中,处理器2315可以检测停车标志2616和/或道路边缘2622。处理器2315可执行与本公开一致的附加功能,诸如与图像分析模块2404一致的那些功能。例如,处理器2315可以确定与停车标志2616相关联的位置。可以相对于路节2601、相对于另一地标、相对于主车辆或任何其他静止或移动对象来确定位置。可以相对于坐标系(例如,预定坐标系、GPS传感器使用的坐标系、纬度和/或经度等)来附加地或可替代地确定位置。因此,与停车标志2616相关联的道路特征可以包括停车标志2616的视觉表示、停车标志2616的位置、停车标志2616的修改图像、其组合或与停车标志2616有关的其他数据。作为示例,在处理图像2616之后,处理器2315可以确定停车标志2616相对于路节2601的位置。该位置可以通过本文公开的任何方式在路节2601的视觉表示上表示。例如,下面进一步讨论的图27和图28在被确定为与停车标志2616相关联的位置中包括停车标志标记2716。
如上所述,通过使用停车标志标记2716而不是例如停车标志2616的图像来表示停车标志2616的位置,可以显著减少道路特征的数据足迹。通过使用停车标志标记2716表示停车标志2616的位置也可以改善数据的匿名性。例如,停车标志2616的图像可以包括私人信息,诸如在停车标志2616处停止的另一辆车辆、从其捕获图像2620的车辆的反射、停车标志2616附近的行人或停车标志2616的环境中的其他信息。通过处理图像2620以确定停车标志2616的位置并且使用该位置的表示而不是与停车标志有关的原始数据,匿名化了与停车标志2616有关的信息。
在图像2620的示例中,处理器2315可以检测道路边缘2622。可以通过本文公开的任何方式来检测道路边缘2622,诸如例如检测路缘、线、人行道、植被或可以表明从道路到另一表面的变化的其他对象。处理器2315可以确定道路边缘2622的位置。如上所述,可以相对于另一道路特征、车辆的位置、标准或预定坐标系等来确定位置。例如,可以确定道路边缘2622位于从其捕获图像2620的主车辆与停车标志2616之间。
图26C是与本公开一致的可以由成像设备捕获的类型并且用于确定道路特征的示例性图像2630。图像2360表示在车辆沿着路节2601行驶时捕获的图像。例如,当车辆1205沿着轨迹2606行驶时,图像2630可以由车辆1205中包括的相机122捕获。可以通过本文公开的任何方式来捕获图像2630,包括如关于图15和图16所讨论的。图像2630可以作为过程2500或本文公开的任何其他操作、过程或方法的一部分被接收和分析。例如,图像2630可以是在过程2500的步骤2530处接收的一个或多个图像中的一个,并且可以由处理器2315根据存储在图像分析模块2404中的指令进行处理。可以以与关于图像2620所讨论的基本上相同的方式来处理图像2630。
与本公开一致,图像2630包括可以针对路节2601确定的另外的示例性道路特征。道路特征中的每一个可以通过本文公开的任何方式来确定。例如,道路特征可以由处理器2315运行存储在图像分析模块2404中的指令来确定。在另一个示例中,道路特征可以作为过程2500的一部分来确定,例如,作为步骤2540的一部分。
关于图像2630确定的道路特征包括道路边缘2632、栏杆2634和中心线2638。如本公开中其他地方所讨论的,每个特征可以包括与特征的位置或特征的其他质量有关的信息。例如,处理器2315可以确定道路边缘2362位于从其捕获图像2630的车辆1205与栏杆2634之间。在另一个示例中,处理器2315可以确定中心线2638是虚线,该虚线将沿相反方向前进的两个车道分开。在另一个示例中,处理器2315可以确定栏杆2634相对于车辆1205位于道路的右侧。这些示例不是限制性的,并且应当理解,道路特征可以包括与本公开一致的任何其他信息。
如本公开中所描述的,一个或多个段可以从与主车辆相关联的单个轨迹或其他运动表示来组装。例如,如上所述,车辆1205内的导航系统(诸如,导航系统2300)可以从一个或多个传感器捕获数据并确定表示车辆1205所遵循的路径的轨迹2606。类似地,导航系统2300可以捕获一个或多个图像(例如,从相机122),并且可以从一个或多个图像确定一个或多个道路特征。作为导航系统2300的一部分的处理器2315然后可以从运动表示和/或道路特征组装一个或多个路段。处理器2315可以根据存储在道路分段模块2406中的指令来组装道路段信息。将导航信息组装成一个或多个段而不是发送原始数据有助于使信息匿名化,使得它不会链接到任何个人或车辆。
图27是包括根据本公开组装的多个路段2701-2715的路节2601的示例图。可以通过本文公开的任何方式来组装路段。例如,可以根据过程2500来组装每个段。可以从与主车辆相关联的一个或多个运动表示和/或与道路相关联的一个或多个道路特征组装每个段。例如,段可以各自包括图26A中描绘的轨迹(即,轨迹2206、2608、2610、2612和2614)的一部分和图26B-图26C中描绘的道路特征的一部分。为了清楚起见,图27中所示的每个段被表示为与用于表示图26A中的轨迹的线相对应的类型的线(例如,实线或虚线),但是,应当理解,可以以任何方式描绘这些段。在一些实施例中,可以不与路节2601相关联地描绘这些段。例如,每个段可以如关于图11A所述的相对于其他段描述,如关于图13所述的描述为三维空间中的样条,如关于图22所述的描述为类群或以与本公开一致的任何其他方式描述。
图27描绘了从与多个车辆或行程相关联的信息组装的路段。应当理解,图27用于描述可以组装的各种类型的段,并且不是限制性的。例如,与每个车辆相关联的段可以由每个车辆内的系统确定。在这种情况下,如图27所示,可能永远不会有来自不同车辆的多个路段显示在同一个图上。在其他实施例中,来自多个车辆的数据可以在被组装成多个段之前被发送到远程(相对于任何一个车辆)的处理器或服务器。为了清楚起见,相对于图26A中与之相对应的轨迹以及一个主车辆描述每个段。
如上所述,与车辆1205相关联的轨迹2606可以组装成一个或多个段。在图27中,轨迹2606被分段成第一段2701、第二段2702和第三段2703。每个段2701、2702、2703遵循由轨迹2606表示的路径的一部分。应当预见,每个段2701、2702、2703可以具有基本相同的大小或不同的大小。在一些实施例中,每个段2701、2702、2703可以具有随机大小、预定大小、确定大小或在其阈值之内。每个段2701、2702、2703之间的距离同样可以具有随机大小、预定大小、确定大小或在其阈值之内。从本公开中可以清楚地看出,段2701、2702和2703包含的私人信息少于轨迹2606,因此使与车辆1205的运动表示有关的数据匿名化。例如,轨迹2606示出了家2602的起点,而段2701(最靠近家2602的段)仅描绘了路节2601上的直线路径,没有提供段2701与家2602相关联的指示。这样,不能从段2701得出车辆1205与家2602相关联的结论。对于段2702和2703中的每一个来说也是如此。
如上所述,每个段可以包括道路特征信息和/或运动表示信息。例如,段2702可以包括图27所示的轨迹以及关于停车标志标记2716的信息,停车标志标记2716紧邻段2702。
如上所述,在组装来自轨迹2606的段2701、2702和2703的数据时,处理器2315可以组装与位于段2701、2702和2703之间的段有关的数据。例如,第一段可以位于段2701和段2702之间,并且第二段可以位于段2702和段2703之间。为了确保匿名性,可以仅发送段2701、2702和2703以进行进一步处理,而可以不发送轨迹2606的其他段或部分。例如,处理器2315可将段2701、2702和2703中的每一个发送到服务器1230,而放弃发送轨迹2606的其余部分。轨迹2606的未发送部分可以被服务器1230删除、存储或以其他方式排除在处理之外。
图26A中描绘的其他轨迹可以类似地组装成如图27所示的段。对每个轨迹以及对应的段和车辆的讨论各自公开了用于组装一个或多个路段的一个或多个示例性过程,并提供了可以包括在路段信息中的信息的类型的示例。轨迹2608可以被组装成段2704、2705和2706。例如,位于车辆1210中或与车辆1210通信的处理器2315可以确定轨迹2608作为过程2500的步骤2530的一部分,并且组装段2704、2705和2706作为过程2500的步骤2250和/或2560的一部分。可以处理每个段2704、2705和2706以包括或排除与本公开一致的某些数据。例如,可以处理段2704以确保其不包含与家2602有关的私人信息。在另一个示例中,可以处理段2705以确保其包含足够的信息,以导航段2705遵循的路径所描绘的转弯。在处理之后,处理器2315可以将段2704、2705和2706发送到服务器1230,以用于生成自主车辆道路导航模型。如上所述,轨迹2608的不包括在段2704、2705和2706中的部分可以被服务器1230删除、存储或以其他方式从处理中排除。
轨迹2610可以被组装成段2707、2708和2709。例如,位于车辆1215中或与车辆1215通信的处理器2315可以如上所述确定轨迹2610,并且可以使用在过程2500中确定的运动表示和/或道路特征来组装段2707、2708和2709。如上所述,轨迹2610可以以确保轨迹2610的任何独特方面被包括在从轨迹2606组装的至少一个段中的方式进行处理。例如,车辆1215在行驶由轨迹2610描绘的路径时做出的左转弯可以被标记为应当被包括在至少一个段中的部分。段2708可以由于将转弯标记为感兴趣部分而组装。如所讨论的,段2707、2708和2709中的每一个可以包括与一个或多个道路特征有关的信息。例如,段2708可以包括关于其相对于停车线标记2718(其对应于停车线2616)和/或停车标志标记2716的位置的信息,段2707可以包括关于其相对于道路边缘或中心线(例如,中心线2638、道路边缘2632等)的位置的信息等。
轨迹2612可以被组装成段2710和2711。例如,位于车辆1220中或与车辆1220通信的处理器2315可以接收或确定轨迹2612(例如,作为步骤2510或步骤2520的一部分),并且可以使用轨迹2612的各个部分和一个或多个道路特征来组装段2710和2711。用于组装段2710和2711的一个或多个道路特征可以包括例如道路边缘、地标或本文公开的任何其他道路特征。例如,段2710可以使用与段2710相对应的轨迹2612的一部分和段2710相对于停车线标记2718和/或停车标志标记2716的位置的指示来组装。在另一个示例中,车辆1220可以捕获图像2630,并且段2711可以包括与段2711相对应的轨迹2612的一部分以及段2711相对于中心线2638、道路边缘2632和/或栏杆2634的位置。如上所述,段2710和2711可以被发送到服务器1230以用于组装成与本公开一致的自主车辆导航模型。例如,作为过程2500的步骤2570的一部分,处理器2315可以将段2710和2711发送到服务器1230。不包括在段2710和2711中的轨迹2612的部分可以从自主车辆导航模型中排除。例如,处理器2315可以放弃发送或删除或以其他方式排除不包括在段2710或段2711中的轨迹2612的部分。注意,通向办公楼2604的轨迹2612的终点不包括在段2710或段2711中。这可能是匿名化处理的结果。例如,在确定轨迹2612的终点与办公楼2604相对应时,可能已将其删除。在另一示例中,由于延迟或其他功能,一个或多个传感器可能尚未收集与终点有关的数据。在另一个示例中,处理器2315最大地确定与终点相对应的段,但是放弃发送该段,以避免发送可能链接到车辆、个人或企业的信息。
轨迹2614可以被组装成段2712、2713、2714和2715。例如,位于车辆1225中或与车辆1225通信的处理器2315可以从一个或多个传感器(诸如,GPS单元2310、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330)的输出确定轨迹2614,并且可以确定与路节2601相关的一个或多个道路特征。然后,处理器2315可以沿着轨迹2614组装多个段,包括段2712、2713、2714和2715以及位于段2712、2713、2714和2715之间的段。例如,处理器2315可以确定段2712、段2713以及段2712和2713之间的段(未示出)。可以对轨迹2614的长度进行相同的操作。作为匿名化处理的一部分,处理器2315可以删除或以其他方式排除第一组的多个段。例如,处理器2315可以删除沿着轨迹2614的每个段,除了段2712、2713、2714和2715。在另一个示例中,处理器2315可以发送段2712、2713、2714和2715,并且放弃发送沿着轨迹2614的其余段。
关于图27讨论的示例旨在提供所公开的实施例的各个方面的示例。它们不限制权利要求的范围。这些示例可以与其他示例组合,以与本公开一致的方式修改或以其他方式改变。
如本公开中所讨论的,可以将多个分段道路信息发送到服务器或处理器。例如,车辆1205可以发送相对于段2701-2703的信息,车辆1210可以发送与段2704-2706有关的信息,车辆1215可以发送与段2707-2709有关的信息,车辆1220可以发送与段2710-2711有关的信息,并且车辆1225可以发送与段2712-2715有关的信息。可以将数据发送到例如基于服务器的系统,以处理用于自动导航的车辆导航信息。例如,服务器1230可以接收发送的信息,执行用于组装导航模型的一个或多个操作、功能、过程或方法。服务器包括被编程为组装导航模型的至少一个处理器。至少一个处理器可以被编程为从多个车辆接收导航信息。例如,至少一个处理器可以接收从车辆1205、1210、1215、1220和1225发送的路段信息。在一些实施例中,来自多个车辆的导航信息可以与共同路段相关联。例如,服务器1230可以接收与路节2601相关联的多个路段,如图27所示。在其他实施例中,来自多个车辆的导航信息可以与不同的路节相关联。在这种情况下,至少一个处理器可以被编程为确定与第一路节有关的第一组导航信息、与第二路节有关的第二组导航信息等。
然后,与共同路节相关联的导航信息可以用于生成共同路段的自主道路导航模型。可以根据与本公开一致的任何方式来生成道路导航模型,诸如关于图9A-图9B、图11A-图1D、图30-图31以及本文其他地方所讨论的。
图28是描绘从图27中描绘的导航信息确定的自主道路导航模型2800的各方面的示例性路节(例如,路节2601)。自主道路导航模型2800(在本文中称为导航模型2800)可以与局部地图(诸如,局部地图1140)基本相似,并且可以包括自主车辆的一个或多个目标轨迹。例如,导航模型2800可以包括目标轨迹2802、2804、2806、2808、2810、2812、2814和2816,这些目标轨迹对应于穿过路节2601的各种路径。当在路节2601上导航时,自主车辆可以访问或依赖于目标轨迹2802、2804、2806、2808、2810、2812、2814和2816中的一个或多个。目标轨迹2802、2804、2806、2808、2810、2812、2814和2816可以如关于目标轨迹1141-1148所讨论的(如关于图11C所讨论的)那样起作用。
导航地图2800中包括的每个目标轨迹可能已经从由一个或多个主车辆捕获或确定的导航信息确定。例如,如关于图27所讨论的,针对路节2601确定的路段可以用于生成导航地图2800中所示的轨迹的至少一部分。例如,目标轨迹2802可以包括段2704、2701、2702、2711和2703。此外,目标轨迹2802可以从轨迹2606、轨迹2608和轨迹2612的组合导出。使用段2704、2701、2702、2711和2703而不是轨迹2606、2608和2612来组装目标轨迹2802的好处是与段2704、2701、2702、2711和2703相关的信息缺少包括在轨迹2606、2608和2612中的潜在的个人信息或识别信息,诸如轨迹2606的起点在家2606,以及轨迹2612的终点在办公楼2604。通过执行与组装段2704、2701、2702、2711和2703相关联的步骤、功能和操作,该信息从识别信息中去除,并且服务器1230不需要执行附加的匿名化功能。然而,在一些实施例中,服务器1230可以在组装导航模型(诸如,导航模型2800)时执行附加的匿名化功能。
下面参考服务器1230及其可被编程执行的操作在下面进一步讨论图28和导航模型2800。图29是与本公开一致的可以包含一个或更多模块的存储器设备(存储器2900)的示例性框图。存储器2900可以在服务器1230之内或与之通信。服务器1230中包括的至少一个处理器可以被编程为运行存储在存储器2900中的指令。
存储器2900可以包括导航数据接收模块2905和导航模型生成模块2910。导航数据接收模块2905可以包括指令,该指令在由至少一个处理器运行时从一个或多个车辆接收导航数据。例如,导航数据接收模块2905可以包括用于接收路段数据的指令,诸如关于图27所讨论的。
在一些实施例中,导航数据接收模块2905可以包括指令,该指令在由至少一个处理器运行时组织从一个或多个车辆接收的导航数据。例如,服务器1230可以从多个车辆接收数据,并且该数据可以与多个路节相关联。导航数据接收模块2905上包括的指令可以允许处理器2020识别例如与接收到的导航信息相对应的路节并将其组织成与该路节相对应的组。例如,如果服务器1230接收到图27中描绘的路节以及多个其他路节,处理器202可以确定路段2701-2715与路节2601相关联。作为另一示例,服务器1230可以接收与共同路节有关的导航信息,并且根据其他因素来组织导航信息。例如,服务器1230可以接收段2701-2715,并且运行导航数据接收模块2905上的指令的处理器2020可以确定例如段2712、2713和2709与街道的第一侧相关联、段2704、2701、2702、2711和2703与街道的第二侧相关联,依此类推。在另一示例中,可以基于与地标、道路边缘或其他道路特征的接近度(例如,在预定距离内)来组织导航信息。例如,可以基于与停车标志标记2716、停车线标记2718、家2602、办公楼2604或任何其他道路特征的接近度来组织路段2701-2715。在一些实施例中,可以在第一时间组织第一组路段信息以包括在第一自主车辆道路导航模型中,并且可以在第二时间组织第二组路段信息以包括在第二导航模型中或更新第一个导航模型。例如,路段2704、2701和2711可以在第一时间组织为与道路的第一侧有关,而路段2705、2702和2703可以在第二时间组织为与道路的同一侧有关。这些示例不是限制性的,并且应当理解,导航数据可以以与本公开一致的任何方式组织。
在一些实施例中,导航数据接收模块2905可以包括指令,该指令在由至少一个处理器运行时存储接收到的导航数据。例如,处理器2020可以将导航数据存储在存储器设备、数据库或其他存储器中,诸如存储器2015或存储设备2010中。如上所述,在组织导航数据的实施例中,数据可以在被组织之前、被组织之后或其组合来存储。
导航模型生成模块2910可以存储指令,该指令在由一个或多个处理器执行该指令时基于导航数据生成导航模型。与本公开一致,指令可以使至少一个处理器执行与创建与稀疏地图或自主车辆道路导航模型一致的一个或多个功能。例如,导航模型生成模块2910可以包括用于执行过程1900、过程3000或用于生成导航地图的任何其他过程的全部或一部分的指令。导航模型生成模块2910可以存储指令,该指令在由至少一个处理器运行时使生成的导航模型被发送到一个或多个车辆。例如,指令可以使处理器2020将生成的导航模型分发到一个或多个自主车辆。
存储器2900中包括的任何模块(例如,导航数据接收模块2905或导航模型生成模块2910)可以实现与经过训练的系统或未经训练的系统相关联的技术。例如,模块可以实现神经网络或深度神经网络。
图30是示出用于处理在自主车辆导航中使用的车辆导航信息的示例过程3000的流程图。过程3000可以由服务器1230中包括的至少一个处理器执行。此外,过程300可以由至少一个处理器通过运行存储在存储器2900中的指令来执行。
过程3000可以包括用于从多个车辆接收导航信息的步骤3010。与本公开一致,服务器1230可以接收从一个或多个车辆发送的导航信息。例如,车辆1205、1210、1215、1220和1225可以各自包括导航系统2300,导航系统2300可以收集、处理和发送导航信息(例如,通过实施过程2500),并且服务器1230可以接收导航信息。服务器1230可以包括一个或多个被配置为接收导航信息的设备,诸如被专门配置为接收该信息的接收器或配置为接收该信息的处理器。例如,处理器2020可以运行导航数据接收模块2905上的指令以接收导航信息。在一些实施例中,服务器1230可以响应于从服务器1230发送到与服务器1230通信的一个或多个车辆的请求来接收导航信息。例如,处理器2020可以通过经由通信单元2005发送请求来从车辆1205和1210请求信息,并且车辆1205和1210可响应于该请求而发送数据。
在一些实施例中,来自多个车辆的导航信息可以与共同路节相关联。例如,从车辆1205、1210、1215、1220和1225接收的导航信息与路节2601相关联。在一些实施例中,来自多个车辆的导航信息可以与不同的路节相关联。在这些实施例中,服务器1230中的处理器2020可根据与每条信息相关联的路节来组织或分类数据。可以根据以上讨论的存储在导航数据接收模块2905上的指令来执行组织或分类。在一些实施例中,服务器1230可以从一个或多个车辆请求与特定路节相关联的导航数据。例如,处理器2020可以确定特定路段的导航模型具有不完整、错误或过时的数据,并且可以从一个或多个车辆请求与该路节有关的信息。应当预见,服务器1230可以从特定车辆(例如,通过识别最近行驶该路节或可能已经行驶该路段的一个或多个车辆)请求共同路节数据,或者可以从车辆的任何子集请求共同路节数据(例如,通过从与服务器1230通信的每个车辆请求数据并孤立与共同路节相关联的数据)。
服务器1230接收的导航信息可以包括与一个或多个主车辆相关联的一个或多个运动表示。在一些实施例中,导航信息可以包括与一个或多个车辆相关联的多个运动表示。运动表示可以进一步与共同路节的一个或多个部分相关联。运动表示可以包括本文公开的任何运动表示。例如,相对于共同路节的第一部分和第二部分,主车辆的至少一个运动表示可以包括主车辆的确定的轨迹。在该示例中,主车辆的确定的轨迹可以与与图27中所描绘的路段信息相关联的任何轨迹(例如,路段2701-2715)基本相同。至少一个运动表示可以通过本文公开的任何方式来确定。例如,相对于共同路节的第一部分和第二部分,主车辆的至少一个运动表示可以基于来自GPS传感器、速度传感器或加速度计中的至少一个的输出来确定。例如,从例如车辆1205接收的导航信息可以包括使用来自GPS单元2310、速度传感器2320和/或加速度计2325的数据作为过程2500的一部分确定的运动表示。
服务器1230接收的导航信息可以包括与一个或多个路节相关联的一个或多个道路特征。在一些实施例中,来自单个车辆的导航信息可以包含与一个或多个路节相关联的多个道路特征。在一些实施例中,导航信息可以包括与一个或多个路节相关联的单个道路特征。道路特征可以包括本文公开的任何道路特征,并且可以与路节的一个或多个部分相关联。例如,至少一条道路特征可以相对于共同路节的第一和第二部分,并且可以包括所检测的车道划分、车道合并、虚车道标记线、实车道标记线、车道内的路面颜色、车道线颜色、车道方向、车道类型、道路边缘位置、地标标识符或沿着共同路段的天气状况的指示器。作为示例,从例如车辆1205接收的导航信息可以包括路节2601的道路边缘2632、栏杆2634和/或中心线2638的指示器。在另一示例中,道路特征可以包括地标标识符,地标标识符可以包括地标类型或地标位置中的至少一个。地标类型可以包括交通信号、杆、道路标记、停车标志或标志中的至少一种。例如,与路段2711相关联的道路特征可以包括停车标志2616、办公楼2604或任何其他地标的标识符。
作为步骤3010的一部分,服务器1230接收的导航信息可以包括根据过程2500确定的导航数据。来自多个车辆中的每个车辆的导航信息可以包括相对于共同路节的第一部分的路段信息。导航信息的每一部分可以包括与主车辆相关联的一个或多个运动表示(例如,轨迹、加速度等)和/或与路节相关联的一个或多个道路特征(例如,地标、道路边缘等)。例如,第一路段信息可以包括所确定的主车辆的至少一个运动表示以及所确定的相对于共同路节的第一部分的至少一个道路特征。例如,服务器1230可以从车辆1205接收路段信息,如上所述,该路段信息可以包括与路段2701相关联的轨迹以及路段2701在家2602、路节2601的道路边缘2632的附近的指示。类似地,服务器1230可以从车辆1220接收第一路段信息,如上所述,该第一路段信息可以包括与路段2711相关联的轨迹以及路段2711相对于停车标志标记2716的位置的指示。
从多个车辆中的每一个接收的导航信息可以包括与路节的多个路段有关的信息。例如,来自多个车辆中的每一个的导航信息可以包括相对于共同路节的第二部分的第二路段信息。像第一路段信息一样,多个路段信息中的每一个可以包括与主车辆相关联的一个或多个运动表示和/或与路节相关联的一个或多个道路特征。在一些实施例中,第二路段信息可以包括所确定的主车辆的至少一种运动表示以及所确定的相对于共同路节的第二部分的至少一个道路特征。例如,服务器1230可从车辆1205接收第二路段信息,该第二路段信息可以包括与路段2702相关联的轨迹以及路段2701相对于例如停车标志2616、停车标志标记2716和/或路节2601的道路边缘2622的位置的指示。
尽管上面的示例讨论了包括第一路段信息和第二路段信息的导航信息,但是可以理解,服务器1230可以接收任何数量的路段信息。例如,车辆2614可以发送导航信息,并且服务器1230可以接收导航信息,该导航信息包括路段2712、2713、2714和2715中的每一个的路段信息。在另一示例中,车辆1205、1210、1215、1220和1225中的每一个可以发送导航信息,并且服务器1230可以接收导航信息,该导航信息与一个或多个相关联的路段有关。例如,服务器1230可以接收针对路节2601确定的每个路段(例如,路段2701-2715)的导航信息。
在服务器1230接收包括多个路段信息的导航信息的一些实施例中,导航信息中表示的路段可以与共同路节的不同部分有关。例如,从车辆1205接收的第一路段信息(例如,路段2701)和从车辆1205接收的第二路段信息(例如,路段2702)可以与路节2601的不同部分相关联。与路段信息有关的道路部分可以具有任何长度,可以具有相同的长度,或者可以具有不同的长度。例如,共同路节的第一部分和共同路节的第二部分可以各自具有至少4km的长度。在另一个示例中,共同路节的第一部分的长度可以小于4km,而路节的第二部分的长度可以至少为4km。
在一些实施例中,导航信息中表示的路段可以与路节的空间上分开的部分有关。例如,路节的第二部分可以与路节的第一部分不同,并且可以在空间上与路节的第一部分分开。如上所述,第一道路部分和第二道路部分可以分开任何距离。例如,共同路节的第一部分可以与共同路节的第二部分在空间上分开至少1km的距离。
过程3000可以包括用于存储与共同路节相关联的导航信息的步骤3020。如上所述,在步骤3010接收的导航信息可以与共同路节相关联。附加地或可替代地,服务器1230可以被配置为将导航信息组织或分类为与共同路节相对应的组。例如,处理器2020可以运行存储在导航数据接收模块2905上的指令,以识别接收到的导航信息对应的共同路节,并存储与对应的共同路节相关联的导航数据。
导航信息可以存储在与服务器1230通信的任何存储器设备中。例如,导航信息可以存储在服务器1230内的存储器中,诸如存储器2900、存储器2015、存储设备2010或另一存储器设备。在另一个示例中,服务器1230可以将导航信息发送到外部存储器、数据库或其他存储设备。
过程3000可以包括步骤3030,步骤3030用于基于来自多个车辆的导航信息来生成用于共同路节的自主车辆道路导航模型的至少一部分。例如,处理器2020可以运行存储在导航模型生成模块2910上的指令,以生成用于自主车辆的导航模型。如上所述,在步骤3030生成的自主车辆导航模型可以基本上类似于导航模型2800、地图骨架1420、局部地图1140或稀疏地图800。
用于共同路段的自主车辆道路导航模型可以包括沿着共同路段延伸的路面特征的至少一个线表示,并且每个线表示可以表示沿着共同路段的、基本上与路面特征相对应的路径。例如,路面特征可以包括道路边缘或车道标记。此外,可以通过对当多个车辆穿过共同路段时获取的多个图像的图像分析来识别路面特征。例如,服务器1230可以基于从在共同路段2601上行驶的车辆1205、1210、1215、1220和1225接收的导航信息来生成用于共同路段2601的自主车辆道路导航模型的至少一部分。
在一些实施例中,自主车辆道路导航模型可以被配置为叠加在地图、图像或卫星图像上。例如,可以将模型叠加在由常规导航服务(诸如,
Figure BDA0002666753230000961
地图、Waze等)提供的地图或图像上。举例来说,叠加在地图上的自主车辆道路导航模型可能表现与导航模型2800基本相似。
自主车辆道路导航模型可以通过与本公开一致的任何方式来生成。例如,服务器1230内的至少一个处理器可以根据导航信息来组装一个或多个目标轨迹,并且进一步根据目标轨迹来组装一个或多个局部地图,如关于图11C和局部地图1140所描述的。在另一示例中,服务器1230内的至少一个处理器可以运行存储在导航模型生成模块2910中的指令以执行过程1900的至少一部分。在一些实施例中,可以通过修改或组合本文公开的一个或多个过程来生成自主车辆导航模型。
过程3000可以包括用于将自主车辆道路导航模型分发给一个或多个车辆的步骤3040。车辆可以是自主车辆,并且可以使用自主车辆导航模型沿着包括在自主车辆导航模型中的路节进行导航。例如,服务器1230可以将自主车辆导航模型分发给一个或多个自主车辆,以用于沿着共同路节对一个或多个自主车辆进行自主导航。例如,服务器1230可以将导航模型2800分发给车辆1205、1210、1215、1220和/或1225或任何其他车辆,以供以后在沿着路节2601自主导航时使用。自主车辆导航模型可以通过与本公开一致的任何方式来分发。例如,处理器2020可以通过通信单元1405或与服务器1230通信的另一通信或发送设备来引起导航模型2800的发送。
与本公开一致,响应于接收到自主车辆导航模型,被分发了自主车辆导航模型的一个或多个自主车辆可以经历一个或多个导航响应。例如,车辆1205可以接收导航模型2800,并且可以通过基于例如路节2601的运动表示和/或道路特征执行一系列导航响应来沿着目标轨迹2802行驶。如上所述,导航响应可以是与操作车辆一致的任何动作,诸如加速、制动、转弯、合并、停车、切换车道等。例如,每个自主车辆可以具有被配置为解释导航模型2800的一个或多个系统,并且可以执行一系列导航响应以便导航在导航模型2800中描绘的路径。
在一些实施例中,一个或多个自主车辆可以使用自主车辆导航地图、一个或多个图像和/或来自传感器的一个或多个输出来确定导航响应。例如,一个或多个自主车辆可以运行上述导航响应模块408的一个或多个指令,以基于感测输入(例如,来自雷达的信息)和来自车辆(例如,车辆200)的其他系统(例如,车辆200的节流系统220、制动系统230和转向系统240)的输入来确定期望的导航响应。基于期望的导航响应,处理器(例如,处理单元110)可以将电子信号发送到车辆200的节流系统220、制动系统230和转向系统240,以通过例如转动车辆200的方向盘以实现预定角度的旋转来触发期望的导航响应。在一些实施例中,处理单元110可以将导航响应模块408的输出(例如,期望的导航响应)用作运行速度和加速度模块406的输入,以计算车辆200的速度变化。
例如,车辆1205可以接收导航地图2800,并且可以使用相机122捕获一个或多个图像。然后,位于车辆1205中的处理器2315可以将捕获的图像与与导航模型2800相关联的一个或多个道路特征进行比较,并基于该比较来确定导航响应。例如,如果车辆1205沿目标轨迹2808行驶并且捕获的图像描绘了停车标志2616,则处理器2315可以使用目标轨迹2820或目标轨迹2814确定车辆1205需要停车并且可能需要转弯。因此,处理器2315可以使车辆1205在停车线标记2718处停车并且使用目标轨迹2820转弯。
在一些实施例中,自主车辆可以通过将接收到的自主车辆导航模型与路节对准并且遵循导航模型上的目标轨迹来导航路节。作为示例,如果自主车辆需要在类似于图26的轨迹2610的路径上导航路节2601,则自主车辆可以使用导航模型2800沿着目标轨迹2808导航直到到达停车线标记2718,然后通过跟随目标轨迹2814执行左转弯,并在目标轨迹2804上继续。自主车辆可以使用例如一个或多个地标、车道标记或其他道路特征来将自主车辆导航模型与与路段有关的地图、图或坐标系对准。例如,车辆1205可以捕获一个或多个图像(例如,类似于图像2620或2630的图像),一个或多个图像可以包含与路节相关联的一个或多个地标,并且处理器2315可以将成像的地标与导航模型2800上的一个或多个地标进行比较,以将目标轨迹2802-2820与路节2601对准。
出于说明的目的已经给出了前述描述。它不是穷举性的,并且不限于所公开的精确形式或实施例。通过考虑所公开实施例的说明书和实践,修改和调整对于本领域技术人员将是显而易见的。另外,尽管将所公开的实施例的各方面描述为存储在存储器中,但是本领域技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储设备,例如,硬盘或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 (30)

1.一种导航系统,用于收集相对于主车辆穿越的路节的匿名驾驶信息,所述导航系统包括:
至少一个处理器,被编程为:
从一个或多个传感器接收指示所述主车辆的运动的输出;
至少部分地基于来自所述一个或多个传感器的输出来确定所述主车辆的至少一个运动表示;
从相机接收表示沿着所述路节的所述主车辆的环境的至少一个图像;
分析所述至少一个图像以确定与所述路节相关联的至少一个道路特征;
组装相对于所述路节的第一部分的第一路段信息,其中,所述第一路段信息包括所确定的所述主车辆的至少一个运动表示和所确定的相对于所述路节的第一部分的至少一个道路特征;
组装相对于所述路节的第二部分的第二路段信息,其中,所述第二路段信息包括所确定的所述主车辆的至少一个运动表示和所确定的相对于所述路节的第二部分的至少一个道路特征,并且其中,所述路节的第二部分与所述路节的第一部分不同,并且所述路节的第二部分与所述路节的第一部分在空间上由所述路节的第三部分隔开;
使所述第一路段信息和所述第二路段信息发送到相对于所述主车辆远程定位的服务器以组装自主车辆道路导航模型;以及
放弃向所述服务器发送与所述路节的第三部分有关的组装的路段信息。
2.根据权利要求1所述的导航系统,其中,所述主车辆的至少一个运动表示包括所述主车辆的确定轨迹。
3.根据权利要求1所述的导航系统,其中,所述主车辆的至少一个运动表示包括相对于预定坐标系的所述主车辆的自我运动表示。
4.根据权利要求3所述的导航系统,其中,针对六个自由度确定所述主车辆的自我运动表示。
5.根据权利要求1所述的导航系统,其中,所述一个或多个传感器包括GPS传感器。
6.根据权利要求1所述的导航系统,其中,所述一个或多个传感器包括速度传感器或加速度计中的至少一个。
7.根据权利要求1所述的导航系统,其中,所确定的至少一个道路特征包括车道特征,所述车道特征包括检测到的车道划分、车道合并、虚车道标记线、实车道标记线、车道内的路面颜色、车道线颜色、车道方向或车道类型中的一个或多个的指示符。
8.根据权利要求1所述的导航系统,其中,所确定的至少一个道路特征包括道路边缘位置的指示符。
9.根据权利要求1所述的导航系统,其中,所确定的至少一个道路特征包括地标标识符。
10.根据权利要求1所述的导航系统,其中,所述地标标识符包括地标类型或地标位置中的至少一个。
11.根据权利要求10所述的导航系统,其中,所述地标类型包括交通信号、杆、道路标记、停车线或标志中的至少一个。
12.根据权利要求1所述的导航系统,其中,所确定的至少一个道路特征包括临时道路特征,所述临时道路特征包括沿着所述路节的天气状况的指示符。
13.根据权利要求12所述的导航系统,其中,所述天气状况的指示符与雪、雨、雾或太阳眩光中的至少一个相关联。
14.根据权利要求1所述的导航系统,其中,所述路节的第一部分与所述路节的第二部分在空间上间隔至少1km的距离。
15.根据权利要求1所述的导航系统,其中,所述路节的第一部分和所述路节的第二部分各自具有至少2km的长度。
16.根据权利要求1所述的导航系统,其中,所述路节的第一部分和所述路节的第二部分各自具有由所述至少一个处理器随机确定的长度。
17.根据权利要求16所述的导航系统,其中,所述随机确定的长度落在预定长度的+/-0.5km内。
18.根据权利要求1所述的导航系统,其中,在所述路节包括隧道的情况下,所述路节的第一部分或所述路节的第二部分中的至少一个将由所述至少一个处理器指定,以使得所述隧道的长度完全包括在所述路节的第一部分或所述路节的第二部分内。
19.根据权利要求1所述的导航系统,其中,所述至少一个处理器还被编程为从所述远程定位的服务器接收所述自主车辆道路导航模型,并且基于所述自主车辆道路导航模型引起所述主车辆的至少一个导航操纵。
20.根据权利要求1所述的导航系统,其中,所述至少一个处理器还被编程为在预定延迟之后开始组装所述第一路段信息。
21.根据权利要求1所述的导航系统,其中,所述至少一个处理器还被编程为放弃向所述服务器发送最终组装的路段信息,其中,所述最终组装的路段信息表示所述主车辆的驾驶结束。
22.根据权利要求1所述的导航系统,其中,所述至少一个处理器还被编程为放弃向所述服务器发送初始组装的路段信息,其中,所述初始组装的路段信息包括所述主车辆的驾驶的开始的表示。
23.一种基于服务器的系统,用于处理车辆导航信息以用于自主车辆导航,所述系统包括:
至少一个处理器,被编程为:
从多个车辆接收导航信息,其中,来自所述多个车辆的导航信息与共同路节相关联;
存储与所述共同路节相关联的导航信息;
基于来自所述多个车辆的导航信息,生成所述共同路节的自主车辆道路导航模型的至少一部分;以及
将所述自主车辆道路导航模型分配给一个或多个自主车辆,以用于沿着所述共同路节自主导航所述一个或多个自主车辆;
其中,来自所述多个车辆中的每一个的导航信息包括:
相对于所述共同路节的第一部分的第一路段信息,其中,所述第一路段信息包括确定的所述主车辆的至少一个运动表示和确定的相对于所述共同路节的第一部分的至少一个道路特征;和
相对于所述共同路节的第二部分的第二路段信息,其中,所述第二路段信息包括确定的所述主车辆的至少一个运动表示和确定的相对于所述共同路节的第二部分的至少一个道路特征,并且其中,所述路节的第二部分与所述路节的第一部分不同,并且所述路节的第二部分与所述路节的第一部分在空间上隔开。
24.根据权利要求23所述的基于服务器的系统,其中,相对于所述共同路节的第一部分和第二部分的所述主车辆的至少一个运动表示包括所述主车辆的确定轨迹。
25.根据权利要求23所述的基于服务器的系统,其中,相对于所述共同路节的第一部分和第二部分的所述主车辆的至少一个运动表示基于来自GPS传感器、速度传感器或加速度计中的至少一个的输出来确定。
26.根据权利要求23所述的基于服务器的系统,其中,相对于所述共同路节的第一部分和第二部分的所述至少一个道路特征包括检测到的车道划分、车道合并、虚车道标记线、实车道标记线、车道内的路面颜色、车道线颜色、车道方向、车道类型、道路边缘位置中的一个或多个的指示符、地标标识符或沿着所述共同路节的天气状况指示符。
27.根据权利要求26所述的基于服务器的系统,其中,所述地标标识符包括地标类型或地标位置中的至少一个。
28.根据权利要求27所述的基于服务器的系统,其中,所述地标类型包括交通信号、杆、道路标记、停车线或标志中的至少一个。
29.根据权利要求23所述的基于服务器的系统,其中,所述共同路节的第一部分与所述共同路节的第二部分在空间上间隔至少1km的距离。
30.根据权利要求23所述的基于服务器的系统,其中,所述共同路节的第一部分和所述共同路节的第二部分各自具有至少2km的长度。
CN201980017330.2A 2018-03-05 2019-03-05 用于匿名化导航信息的系统和方法 Pending CN111837014A (zh)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201862638713P 2018-03-05 2018-03-05
US62/638,713 2018-03-05
US201862642823P 2018-03-14 2018-03-14
US62/642,823 2018-03-14
US201862671779P 2018-05-15 2018-05-15
US62/671,779 2018-05-15
US201862771335P 2018-11-26 2018-11-26
US62/771,335 2018-11-26
US201962805646P 2019-02-14 2019-02-14
US201962805632P 2019-02-14 2019-02-14
US62/805,646 2019-02-14
US62/805,632 2019-02-14
US201962813403P 2019-03-04 2019-03-04
US62/813,403 2019-03-04
PCT/US2019/020718 WO2019173315A1 (en) 2018-03-05 2019-03-05 Systems and methods for anonymizing navigation information

Publications (1)

Publication Number Publication Date
CN111837014A true CN111837014A (zh) 2020-10-27

Family

ID=65818634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980017330.2A Pending CN111837014A (zh) 2018-03-05 2019-03-05 用于匿名化导航信息的系统和方法

Country Status (9)

Country Link
US (4) US11205012B2 (zh)
EP (2) EP3721172B1 (zh)
JP (2) JP7302934B2 (zh)
KR (1) KR20200130279A (zh)
CN (1) CN111837014A (zh)
AU (3) AU2019231196B2 (zh)
CA (1) CA3242002A1 (zh)
IL (1) IL276754B1 (zh)
WO (1) WO2019173315A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112581758A (zh) * 2020-12-07 2021-03-30 北京交通大学 一种检测道路路标的方法和系统
CN112885129A (zh) * 2021-01-21 2021-06-01 腾讯科技(深圳)有限公司 道路限速的确定方法、装置、设备及计算机可读存储介质
US20220136841A1 (en) * 2020-11-03 2022-05-05 Here Global B.V. Method, apparatus, and computer program product for anonymizing trajectories
CN114821530A (zh) * 2022-04-22 2022-07-29 北京裕峻汽车技术研究院有限公司 基于深度学习的车道线检测方法及系统
CN116118783A (zh) * 2023-04-04 2023-05-16 深圳曦华科技有限公司 自动驾驶域控制器实现行车数据优化的方法及装置

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201410612D0 (en) * 2014-06-13 2014-07-30 Tomtom Int Bv Methods and systems for generating route data
WO2018119417A1 (en) * 2016-12-22 2018-06-28 Nissan North America, Inc. Autonomous vehicle service system
CN109840448A (zh) * 2017-11-24 2019-06-04 百度在线网络技术(北京)有限公司 用于无人驾驶车辆的信息输出方法和装置
US11417107B2 (en) * 2018-02-19 2022-08-16 Magna Electronics Inc. Stationary vision system at vehicle roadway
US11015940B2 (en) * 2018-07-13 2021-05-25 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for longitudinal position correction of a vehicle using mapped landmarks
US10909866B2 (en) * 2018-07-20 2021-02-02 Cybernet Systems Corp. Autonomous transportation system and methods
KR102146451B1 (ko) * 2018-08-17 2020-08-20 에스케이텔레콤 주식회사 좌표계 변환 정보 획득 장치 및 방법
US11604476B1 (en) * 2018-10-05 2023-03-14 Glydways Inc. Road-based vehicle guidance system
US11068724B2 (en) * 2018-10-11 2021-07-20 Baidu Usa Llc Deep learning continuous lane lines detection system for autonomous vehicles
US11126197B2 (en) * 2018-11-19 2021-09-21 Waymo Llc Verification of iterative closest point alignments for autonomous vehicles
WO2020121300A1 (en) * 2018-12-11 2020-06-18 Israel Fermon Smart road infrastructure for vehicle safety and autonomous driving
US11010617B2 (en) * 2018-12-12 2021-05-18 Here Global B.V. Methods and systems for determining roadwork zone extension based on lane marking data
IL270540A (en) * 2018-12-26 2020-06-30 Yandex Taxi Llc Method and system for training a machine learning algorithm to recognize objects from a distance
US11697427B2 (en) * 2019-02-04 2023-07-11 Mobileye Vision Technologies Ltd. Systems and methods for vehicle navigation
US10860878B2 (en) * 2019-02-16 2020-12-08 Wipro Limited Method and system for synthesizing three-dimensional data
US11180140B2 (en) * 2019-03-28 2021-11-23 Baidu Usa Llc Camera-based low-cost lateral position calibration method for level-3 autonomous vehicles
US11340354B2 (en) * 2019-06-26 2022-05-24 Nio Usa, Inc. Methods to improve location/localization accuracy in autonomous machines with GNSS, LIDAR, RADAR, camera, and visual sensors
DE102019209226A1 (de) * 2019-06-26 2020-12-31 Volkswagen Aktiengesellschaft Verfahren, Computerprogramm und Vorrichtung zur Verarbeitung von durch ein Kraftfahrzeug erfassten Daten
DE102019209711A1 (de) 2019-07-02 2021-01-07 Volkswagen Aktiengesellschaft Verfahren, Computerprogramm und Vorrichtung zur Verarbeitung von durch ein Kraftfahrzeug erfassten Daten, sowie zum Bereitstellen von Parametern für eine solche Verarbeitung
US20220270358A1 (en) * 2019-09-05 2022-08-25 NetraDyne, Inc. Vehicular sensor system calibration
WO2021048826A1 (en) * 2019-09-12 2021-03-18 Yosef Mintz System and method to optimize citywide traffic flow by privacy preserving scalable predictive citywide traffic load-balancing supporting, and being supported by, optimal zone to zone demand-control planning and predictive parking management
US11458988B2 (en) * 2019-09-13 2022-10-04 Ghost Locomotion Inc. Controlling an automated vehicle using visual anchors
CN113221602B (zh) * 2020-01-21 2023-09-29 百度在线网络技术(北京)有限公司 道路路面状况确定方法、装置、设备和介质
US11250279B2 (en) * 2020-03-31 2022-02-15 Robert Bosch Gmbh Generative adversarial network models for small roadway object detection
CN111959505B (zh) * 2020-06-29 2022-10-11 阿波罗智能技术(北京)有限公司 车辆巡航控制方法、装置、电子设备和存储介质
CN111885138A (zh) * 2020-07-16 2020-11-03 广州小鹏车联网科技有限公司 控制方法、车辆和服务器
US11703337B2 (en) * 2020-07-22 2023-07-18 Here Global B.V. Method, apparatus, and computer program product for anonymizing trajectories
US11605232B2 (en) * 2020-08-27 2023-03-14 Robert Bosch Gmbh System and method for road sign ground truth construction with a knowledge graph and machine learning
EP4204768A1 (en) * 2020-08-31 2023-07-05 Mobileye Vision Technologies Ltd. Systems and methods for map-based real-world modeling
DE102020122895B3 (de) * 2020-09-02 2022-01-13 Audi Aktiengesellschaft Bereitstellung von Daten eines Kraftfahrzeugs
US11164084B1 (en) * 2020-11-11 2021-11-02 DeepCube LTD. Cluster-connected neural network
DE102020007078B3 (de) 2020-11-19 2022-03-24 Daimler Ag Verfahren zum anonymisierten Übertragen von zeit- und ortsreferenzierten Sensordaten eines Fahrzeuges zu einer fahrzeugexternen Rechnereinheit
CN112418092B (zh) * 2020-11-23 2022-09-23 中国第一汽车股份有限公司 一种障碍物感知的融合方法、装置、设备及储存介质
CN112966041B (zh) * 2021-02-02 2024-04-26 苍穹数码技术股份有限公司 数据处理方法、装置、设备及存储介质
US11822682B2 (en) * 2021-05-17 2023-11-21 Here Global B.V. Method, apparatus, and computer program product for quantifying the privacy risk of trajectory data
US11805391B2 (en) 2021-06-04 2023-10-31 Here Global B.V. Method, apparatus, and computer program product for anonymizing trajectories
CN113596015A (zh) * 2021-07-27 2021-11-02 同济大学 基于雾计算的群智感知中支持隐私保护的身份认证方法
US20230160713A1 (en) * 2021-11-19 2023-05-25 Here Global B.V. Method, apparatus and computer program product for identifying work zones within a map
WO2023141083A1 (en) * 2022-01-18 2023-07-27 ClearMotion, Inc. Maintaining vehicle anonymity during cloud-supported vehicle localization and control
US20230418977A1 (en) * 2022-06-28 2023-12-28 Here Global B.V. Method, apparatus, and computer program product for estimating the privacy risk of anonymized trajectory data
WO2024144948A1 (en) * 2022-12-28 2024-07-04 Qualcomm Incorporated Non-semantic map layer in crowdsourced maps
CN117455751B (zh) * 2023-12-22 2024-03-26 新华三网络信息安全软件有限公司 路段图像的处理系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080054270A (ko) * 2006-12-12 2008-06-17 주식회사 대우아이에스 터널 길이 인식 기능을 구비한 네비게이션 시스템 및 방법
US20110301802A1 (en) * 2010-06-07 2011-12-08 Ford Global Technologies, Llc System and Method for Vehicle Speed Monitoring Using Historical Speed Data
CN102753938A (zh) * 2010-02-09 2012-10-24 大陆汽车有限责任公司 用于传输行程路线信息的方法
US20130131974A1 (en) * 2011-11-21 2013-05-23 Robert Uyeki Method and System for Improved Vehicle Navigation
CN104596522A (zh) * 2014-05-27 2015-05-06 腾讯科技(深圳)有限公司 一种导航剩余时间获取方法和装置
CN106441319A (zh) * 2016-09-23 2017-02-22 中国科学院合肥物质科学研究院 一种无人驾驶车辆车道级导航地图的生成系统及方法
CN106767874A (zh) * 2015-11-19 2017-05-31 通用汽车环球科技运作有限责任公司 用于通过在车辆导航系统中的群体感知的燃料消耗预测和成本估计的方法及装置
CN107438754A (zh) * 2015-02-10 2017-12-05 御眼视觉技术有限公司 用于自主车辆导航的稀疏地图
US20170358204A1 (en) * 2016-06-13 2017-12-14 Here Global B.V. Method, apparatus, and computer program product for processing sensor data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2649412B1 (en) * 2010-12-07 2018-10-10 TomTom Traffic B.V. Mapping apparatus and method of operation thereof
WO2014139821A1 (en) 2013-03-15 2014-09-18 Volkswagen Aktiengesellschaft Automatic driving route planning application
US9550495B2 (en) * 2015-03-27 2017-01-24 Intel Corporation Technologies for assisting vehicles with changing road conditions

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080054270A (ko) * 2006-12-12 2008-06-17 주식회사 대우아이에스 터널 길이 인식 기능을 구비한 네비게이션 시스템 및 방법
CN102753938A (zh) * 2010-02-09 2012-10-24 大陆汽车有限责任公司 用于传输行程路线信息的方法
US20110301802A1 (en) * 2010-06-07 2011-12-08 Ford Global Technologies, Llc System and Method for Vehicle Speed Monitoring Using Historical Speed Data
US20130131974A1 (en) * 2011-11-21 2013-05-23 Robert Uyeki Method and System for Improved Vehicle Navigation
CN104596522A (zh) * 2014-05-27 2015-05-06 腾讯科技(深圳)有限公司 一种导航剩余时间获取方法和装置
CN107438754A (zh) * 2015-02-10 2017-12-05 御眼视觉技术有限公司 用于自主车辆导航的稀疏地图
CN106767874A (zh) * 2015-11-19 2017-05-31 通用汽车环球科技运作有限责任公司 用于通过在车辆导航系统中的群体感知的燃料消耗预测和成本估计的方法及装置
US20170358204A1 (en) * 2016-06-13 2017-12-14 Here Global B.V. Method, apparatus, and computer program product for processing sensor data
CN106441319A (zh) * 2016-09-23 2017-02-22 中国科学院合肥物质科学研究院 一种无人驾驶车辆车道级导航地图的生成系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SAKIB, MN ,; HALIM, J ,HUANG, CT: "Determining Location and Movement Pattern Using Anonymized WiFi Access Point BSSID", 2014 7TH INTERNATIONAL CONFERENCE ON SECURITY TECHNOLOGY (SECTECH), 23 December 2014 (2014-12-23) *
张建明, 赵玉娟, 江浩斌, 等: "车辆自组网的位置隐私保护技术研究", 通信学报., vol. 33, no. 8, 31 August 2012 (2012-08-31) *
杜元虎: "多智能体自主车辆导航技术研究", 大连民族学院学报, vol. 6, no. 03, 31 May 2004 (2004-05-31) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220136841A1 (en) * 2020-11-03 2022-05-05 Here Global B.V. Method, apparatus, and computer program product for anonymizing trajectories
US11662215B2 (en) * 2020-11-03 2023-05-30 Here Global B.V. Method, apparatus, and computer program product for anonymizing trajectories
CN112581758A (zh) * 2020-12-07 2021-03-30 北京交通大学 一种检测道路路标的方法和系统
CN112885129A (zh) * 2021-01-21 2021-06-01 腾讯科技(深圳)有限公司 道路限速的确定方法、装置、设备及计算机可读存储介质
CN112885129B (zh) * 2021-01-21 2021-12-28 腾讯科技(深圳)有限公司 道路限速的确定方法、装置、设备及计算机可读存储介质
CN114821530A (zh) * 2022-04-22 2022-07-29 北京裕峻汽车技术研究院有限公司 基于深度学习的车道线检测方法及系统
CN116118783A (zh) * 2023-04-04 2023-05-16 深圳曦华科技有限公司 自动驾驶域控制器实现行车数据优化的方法及装置
CN116118783B (zh) * 2023-04-04 2023-08-08 深圳曦华科技有限公司 自动驾驶域控制器实现行车数据优化的方法及装置

Also Published As

Publication number Publication date
JP7302934B2 (ja) 2023-07-04
US20190272389A1 (en) 2019-09-05
US20240281565A1 (en) 2024-08-22
US11205012B2 (en) 2021-12-21
US11972022B2 (en) 2024-04-30
AU2024201126A1 (en) 2024-03-14
IL276754A (en) 2020-10-29
JP2021515286A (ja) 2021-06-17
KR20200130279A (ko) 2020-11-18
AU2024201126B2 (en) 2024-06-13
AU2019231196A1 (en) 2020-07-23
EP4253913A3 (en) 2023-12-13
IL276754B1 (en) 2024-07-01
US20210209253A1 (en) 2021-07-08
CA3242002A1 (en) 2019-09-12
AU2019231196B2 (en) 2023-11-23
WO2019173315A1 (en) 2019-09-12
JP2023134478A (ja) 2023-09-27
AU2024201123B2 (en) 2024-05-16
EP3721172A1 (en) 2020-10-14
EP3721172B1 (en) 2023-05-10
AU2024201123A1 (en) 2024-03-14
EP4253913A2 (en) 2023-10-04
US11768959B2 (en) 2023-09-26
US20220067209A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US11972022B2 (en) Systems and methods for anonymizing navigation information
JP7125214B2 (ja) プログラムおよびコンピューティングデバイス
US20210025725A1 (en) Map verification based on collected image coordinates
CN112923930B (zh) 用于自主车辆导航的众包和分发稀疏地图以及车道测量
JP2022535351A (ja) 車両ナビゲーションのためのシステム及び方法
CN115143987A (zh) 用于收集与道路路段相关联的状况信息的系统和方法
CN114402377A (zh) 用于监测交通车道拥塞的系统和方法
CN115824194A (zh) 一种用于为车辆规划路线的系统和方法
US20210381849A1 (en) Map management using an electronic horizon
CN113924462A (zh) 用于确定物体尺寸的导航系统和方法
JP2023539868A (ja) マップベースの現実世界モデル化のシステム及び方法
CN115151454A (zh) 用于选择性地使交通工具减速的系统和方法
CN114930123A (zh) 用于检测交通灯的系统和方法
CA3087718A1 (en) Systems and methods for anonymizing navigation information
CN118265957A (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