CN115014383A - 用于车辆的导航系统和用于导航车辆的方法 - Google Patents

用于车辆的导航系统和用于导航车辆的方法 Download PDF

Info

Publication number
CN115014383A
CN115014383A CN202210591781.0A CN202210591781A CN115014383A CN 115014383 A CN115014383 A CN 115014383A CN 202210591781 A CN202210591781 A CN 202210591781A CN 115014383 A CN115014383 A CN 115014383A
Authority
CN
China
Prior art keywords
vehicle
image
road
data
lane
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
CN202210591781.0A
Other languages
English (en)
Inventor
Y.泰伯
I.本沙洛姆
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 CN115014383A publication Critical patent/CN115014383A/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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/18Conjoint control of vehicle sub-units of different type or different function including control of braking systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/181Preparing for stopping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18154Approaching an intersection
    • 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/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3492Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3841Data obtained from two or more sources, e.g. probe vehicles
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/587Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/32Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/584Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/80Spatial relation or speed relative to objects
    • B60W2554/802Longitudinal distance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/40High definition maps
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • B60W2556/50External transmission of data to or from the vehicle of positioning data, e.g. GPS [Global Positioning System] data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30256Lane; Road marking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30261Obstacle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/08Detecting or categorising vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Library & Information Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Human Computer Interaction (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

本公开提供了用于车辆的导航系统和用于导航车辆的方法。该系统包括至少一个处理器,被编程为从车辆的相机接收从车辆的环境捕获的多个图像;分析第一图像以识别在第一图像中表示的非语义道路特征;识别与非语义道路特征相关联的至少一个点在第一图像中的第一图像位置;分析第二图像以识别非语义道路特征在第二图像中的表示;识别与非语义道路特征相关联的至少一个点在第二图像中的第二图像位置;基于第一图像位置与第二图像位置的差异以及基于车辆在第一图像的捕获与第二图像的捕获之间的运动信息,确定与非语义道路特征相关联的至少一个点的三维坐标;将与非语义道路特征相关联的至少一个点的三维坐标发送到服务器以用于更新道路导航模型。

Description

用于车辆的导航系统和用于导航车辆的方法
本申请是申请日为2020年2月14日、申请号为202080014545.1(国际申请号为PCT/IB2020/000115)、发明名称为“用于车辆导航的系统和方法”的发明专利申请的分案申请。
相关申请的交叉引用
本申请要求于2019年2月14日提交的美国临时申请第62/805,646号、以及于2019年3月4日提交的美国临时申请第62/813,403号的优先权和权益。前述申请通过引用整体结合于此。
技术领域
本公开总体上涉及车辆导航。
背景技术
随着技术的不断进步,能够在道路上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达意图的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕获的信息)、来自雷达或激光雷达的信息,并且也可能使用从其他源(例如,从GPS装置、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆可能还需要识别其在特定道路(例如,多车道道路中的特定车道)内的定位,与其他车辆并排导航,避开障碍物和行人,观察交通信号和标志,并在适当的交叉路口或交汇处从一条道路行驶到另一条道路。当自主车辆行驶到其目的地时利用(harness)和解释由该车辆收集的大量信息造成了许多设计挑战。自主车辆可能需要分析、访问和/或存储的海量数据(例如,捕获的图像数据、地图数据、GPS数据、传感器数据等)造成了实际上可能限制甚至不利地影响自主导航的挑战。此外,如果自主车辆依靠传统的映射(mapping)技术来导航,那么存储和更新地图所需的海量数据将造成巨大的挑战。
发明内容
与本公开一致的实施例提供了用于车辆导航的系统和方法。所公开的实施例可以使用相机来提供车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包含一个、两个或更多个监控车辆的环境的相机。所公开的系统可以基于,例如对由一个或多个相机捕获的图像的分析来提供导航响应。
在一个实施例中,一种用于主车辆的导航系统可以包括至少一个处理器,处理器可以被编程为从主车辆的相机接收从主车辆环境捕获的一个或多个图像。至少一个处理器还可以被编程以分析一个或多个图像以检测交叉路口的指示符(indicator)。基于从主车辆的至少一个传感器接收的输出,该至少一个处理器还可以被编程以确定主车辆相对于检测到的交叉路口的停止位置。该至少一个处理器也可以被编程为分析一个或多个图像以确定是否有一个或多个其他车辆在主车辆的前方的指示符。该至少一个处理器还可以被编程为发送主车辆的停止位置以及是否有一个或多个其他车辆在主车辆的前方的指示符给服务器,以用于更新道路导航模型。
在一个实施例中,一种用于主车辆的计算机实现方法可以包括从主车辆相机接收从主车辆的环境捕获的一个或多个图像。该方法还可以包括分析该一个或多个图像以检测交叉路口的指示符。该方法可以进一步包括基于从主车辆的至少一个传感器接收的输出,以确定车辆相对于检测到的交叉路口的停止位置。该方法还可以包括分析该一个或多个图像以确定是否有一个或多个其他车辆在主车辆的前方的指示符。该方法可以进一步包括发送主车辆的停止位置以及是否有一个或多个其他车辆在主车辆的前方的指示符给服务器,以用于更新道路导航模型。
在一个实施例中,一种用于更新道路路段的道路导航模型的系统可以包括至少一个处理器,该处理器被编程为从多个车辆中的每一个接收驾驶信息,该驾驶信息包括多个车辆中的特定车辆在多个沿道路路段驾驶期间相对于交叉路口停止的停止位置。该至少一个处理器还可以被编程以聚集从多个车辆接收的驾驶信息中的停止位置。该至少一个处理器还可以被编程为基于经聚集的停止位置以确定相对于交叉路口的停止线位置。该至少一个处理器还可以被编程为更新道路导航模型以包括停止线位置。
在一个实施例中,一种用于更新道路路段的道路导航模型的计算机实现方法可以包括从多个车辆中的每一个接收驾驶信息,该驾驶信息包括多个车辆中的特定车辆在沿道路路段驾驶期间相对于交叉路口停止的停止位置。该方法还可以包括聚集从多个车辆中接收的驾驶信息中的停止位置。该方法可以进一步包括基于经聚集的停止位置确定相对于交叉路口的停止线位置。该方法还可以包括更新道路导航模型以包括停止线位置。
在一个实施例中,一种用于主车辆的导航系统可以包括至少一个处理器,该处理器可以被编程为从主车辆的相机接收从主车辆的环境捕获的一个或多个图像。该至少一个处理器还可以被编程以检测主车辆的环境中的交叉路口的指示符,其中主车辆前方的车道的道路路段的表面不包括指示停止位置的标记。该至少一个处理器可以进一步被编程为接收包括相对于交叉路口的停止线位置的地图信息。该至少一个处理器还可以被编程以基于相对于交叉路口的停止线位置,使主车辆执行相对于交叉路口的至少一个导航动作。
在一个实施例中,一种用于主车辆的计算机实现方法可以包括从主车辆的相机接收从主车辆的环境捕获的一个或多个图像。该方法还可以包括检测主车辆的环境中的交叉路口的指示符,其中主车辆前方的车道的道路路段的表面不包括指示停止位置的标记。该方法可以进一步包括接收相对于交叉路口的停止线位置的地图信息。该方法还可以包括基于相对于交叉路口的停止线位置,使主车辆执行相对于交叉路口的至少一个导航动作。
在一个实施例中,一种用于主车辆的导航系统可以包括至少一个处理器,该处理器可以被编程为从主车辆的相机接收从主车辆的环境捕获的一个或多个图像。该至少一个处理器还可以被编程为分析一个或多个图像以检测交叉路口的指示符。该至少一个处理器可以进一步被编程为基于从主车辆的至少一个传感器接收的输出以确定主车辆相对于检测到的交叉路口的停止位置。该至少一个处理器还可以被编程为分析一个或多个图像以确定没有车辆在主车辆的前方。该至少一个处理器可以进一步被编程为基于没有车辆在主车辆前方的确定以发送主车辆的停止位置。
在一个实施例中,一种用于生成地图信息的系统可以包括至少处理器,该处理器被编程为从第一车辆接收由第一车辆的相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第一图像,以及从第二车辆接收由第二车辆相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第二图像。该至少一个处理器还可以被配置为分析第一和第二图像以识别多个对象的表示。该些对象可以属于至少一个预定对象类别。该至少一个处理器可以进一步被编程为分析第一和第二图像以确定多个对象中的每一个相对于道路路段的位置指示符。该至少一个处理器还可以被编程为对多个对象中的每一个的位置指示符进行关联。进行关联可以包括基于所确定的位置指示符以确定每个对象的细化位置。该至少一个处理器可以进一步被编程为基于属于特定预定对象类别的对象的细化位置,以生成包括属于特定的预定对象类别的多个对象中的一个或多个对象的细化位置的表示的地图。
在一个实施例中,一种用于生成地图信息的计算机实现方法可以包括从第一车辆接收由第一车辆的相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第一图像,以及从第二车辆接收由第二车辆的相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第二图像。该方法还可以包括分析第一和第二图像以识别多个对象的表示。该些对象可以属于至少一个预定对象类别。该方法可以进一步包括分析第一和第二图像以确定多个对象中的每一个相对于道路路段的位置指示符。该方法还可以包括对多个对象中的每一个的位置指示符进行关联。进行关联可以包括基于所确定的位置指示符以确定每个对象的细化位置。该方法可以进一步包括基于属于特定预定对象类别的对象的细化位置,以生成包括属于特定的预定对象类别的多个对象中的一个或多个对象的细化位置的表示的地图。
在一个实施例中,一种存储指令的非暂时性计算机可读介质,当由至少一个处理器执行时,该指令被配置为使得至少一个处理器从第一车辆接收由第一车辆的相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第一图像,以及从第二车辆接收由第二车辆的相机在第一车辆沿着道路路段的至少一部分的驾驶期间捕获的第二图像。该指令还可以使得至少一个处理器分析第一和第二图像以识别多个对象的表示。该些对象可以属于至少一个预定对象类别。该指令可以进一步使得至少一个处理器分析第一和第二图像以确定多个对象中每一个相对于道路路段的位置指示符。该指令还可以使得至少一个处理器对多个对象中的每一个的位置指示符进行关联。进行关联可以包括基于所确定的位置指示符以确定每个对象的细化位置。该指令可以进一步使得至少一个处理器基于属于特定预定对象类别的对象的细化位置,以生成包括属于特定的预定对象类别的多个对象中的一个或多个对象的细化位置的表示的地图。
在一个实施例中,一种用于收集与道路路段相关联的状况信息的系统可以包括至少一个处理器,该处理器被编程为接收与具有至少一个动态特性的状况相关联的至少一个标识符(identifier)。可以基于从与主车辆相关联的相机对代表主车辆的环境的至少一个图像的获取、对该至少一个图像的分析以识别主车辆的环境中的状况、以及对该至少一个图像分析以确定与状况相关联的至少一个标识符,来确定至少一个标识符。该至少一个处理器还可以被编程为更新数据库记录以包括与状况相关联的至少一个标识符并且将数据库记录分发给至少一个实体。
在一个实施例中,一种用于收集与道路路段相关联的状况信息的计算机实现方法可以包括接收与具有至少一个动态特性的状况相关联的至少一个标识符。可以基于从与主车辆相关联的相机对代表主车辆的环境的至少一个图像的获取、对该至少一个图像的分析以识别主车辆的环境中的状况、以及对该至少一个图像分析以确定与状况相关联的至少一个标识符,来确定至少一个标识符。该方法还可以包括更新数据库记录以包括与状况相关联的至少一个标识符并且将数据库记录分发给至少一个实体。
在一个实施例中,一种用于对从多个车辆收集的相对于公共道路路段的信息进行关联的系统可以包括至少一个处理器,该处理器被编程为从第一车辆接收第一组驾驶信息。第一组驾驶信息可以至少包括与检测到的语义(semantic)道路路段特征相关联的第一位置指示符和与检测到的非语义(non-semantic)道路特征相关联的第二位置指示符。该第一和第二位置指示符可以已经基于对由第一车辆的相机在第一车辆沿着公共道路路段的至少一部分的驾驶期间捕获的至少一个图像的分析而被确定。该至少一个处理器可以进一步被编程为从第二车辆接收第二组驾驶信息。第二组驾驶信息可以至少包括与检测到语义道路特征相关联的第三位置指示符和与检测到的非语义道路特征相关联的第四位置指示符。第三和第四位置指示符可以已经基于对由第二车辆的相机在第二车辆沿着公共道路路段的至少一部分的驾驶期间捕获的至少一个图像的分析而被确定。该至少一个处理器可以对第一组和第二组驾驶信息进行关联。进行关联可以包括:基于与检测到的语义道路特征相关联的第一位置指示符和第三位置指示符以确定检测到的语义道路特征的细化位置,以及基于与检测到的非语义道路特征相关联的第二位置指示符和第四位置指示符以确定检测到的非语义道路特征的细化位置。然后,该至少一个处理器可以将检测到的语义道路特征和检测到的非语义道路特征的细化位置存储到地图中,并且将该地图分发给一个或多个车辆以用于沿着公共道路路段导航该一个或多个车辆。
在一个实施例中,一种用于对从多个车辆收集的相对于公共道路路段的信息进行关联的方法可以包括从第一车辆接收第一组驾驶信息。第一组驾驶信息可以至少包括与检测到的语义道路特征相关联的第一位置指示符和与检测到的非语义道路特征相关联的第二位置指示符。该第一和第二位置指示符可以已经基于对由第一车辆的相机在第一车辆沿着公共道路路段的至少一部分的驾驶期间捕获的至少一个图像的分析而被确定。该方法可以进一步从第二车辆接收第二组驾驶信息。第二组驾驶信息可以至少包括与检测到语义道路特征相关联的第三位置指示符和与检测到的非语义道路特征相关联的第四位置指示符。第三和第四位置指示符可以已经基于对由第二车辆的相机在第二车辆沿着公共道路路段的至少一部分的驾驶期间捕获的至少一个图像的分析而被确定。该方法可以包括对第一组和第二组驾驶信息进行关联。进行关联可以包括:基于与检测到的语义道路特征相关联的第一位置指示符和第三位置指示符以确定检测到的语义道路特征的细化位置,以及基于与检测到的非语义道路特征相关联的第二位置指示符和第四位置指示符以确定检测到的非语义道路特征的细化位置。然后,该方法可以包括将检测到的语义道路特征和检测到的非语义道路特征的细化位置存储到地图中,并且将该地图分发给一个或多个车辆用于沿着公共道路路段导航该一个或多个车辆。
在一个实施例中,一种用于导航车辆的系统可以包括至少一个处理器,该处理器被编程为从车辆相机接收从车辆的环境捕获的多个图像。该至少一个处理器可以分析多个图像中的第一图像以识别在第一图像中表示的非语义道路特征,并且识别与该非语义道路特征相关联的至少一个点在第一图像中的第一图像位置。该至少一个处理器可以进一步被配置以分析多个图像中的第二图像以识别该非语义道路特征在第二图像中的表示,并且识别与该非语义道路特征相关联的至少一个点在第二图像中的第二图像位置。然后,该至少一个处理器可以基于第一图像位置和第二图像位置的差异以及基于车辆在第一图像的捕获和第二图像的捕获之间的运动信息,来确定与该非语义道路特征相关联的至少一个点的三维坐标。该至少一个处理器可以进一步被配置为发送与该非语义道路特征相关联的至少一个点的三维坐标给服务器,以用于更新道路导航模型。
在一个实施例中,一种用于导航车辆的计算机实现的方法可以包括从车辆相机接收从车辆的环境捕获的多个图像。该方法可以包括分析多个图像中的第一图像以识别在第一图像中表示的非语义道路特征,并且识别与该非语义道路特征相关联的至少一个点在第一图像中的第一图像位置。该方法可以进一步包括分析多个图像中的第二图像以识别该非语义道路特征在第二图像中的表示,并且识别与该非语义道路特征相关联的至少一个点在第二图像中的第二图像位置。然后,该方法包括基于第一图像位置和第二图像位置的差异以及基于车辆在第一图像的捕获和第二图像的捕获之间的运动信息,来确定与该非语义道路特征相关联的至少一个点的三维坐标。该方法可以进一步包括发送与该非语义道路特征相关联的至少一个点的三维坐标给服务器,以用于更新道路导航模型。
与其他公开的实施例一致,非暂时性计算机可读存储介质可以存储由至少一个处理装置执行的程序指令,并且可以进行本文中所描述的任何方法。
前述的总体描述和下面的详细描述仅仅是示例性和说明性的,并不是对权利要求的限制。
附图说明
并入本公开中并构成本公开的一部分的附图图示了各种所公开的实施例。在附图中:
图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示出了与所公开的实施例一致的示例道路签名(signature)轮廓(profile)。
图12是与所公开的实施例一致的使用从多个车辆接收的众包(crowdsourcing)数据进行自主车辆导航的系统的示意图示。
图13示出了与所公开的实施例一致的由多个三维样条(spline)表示的示例自主车辆道路导航模型。
图14示出了与所公开的实施例一致的根据组合来自多个驾驶的定位信息而生成的地图骨架(skeleton)。
图15示出了与所公开的实施例一致的具有作为地标的示例标志的两个驾驶的纵向对齐的示例。
图16示出了与所公开的实施例一致的具有作为地标的示例标志的多个驾驶的纵向对齐的示例。
图17是与所公开的实施例一致的用于使用相机、车辆和服务器生成驾驶数据的系统的示意图示。
图18是与所公开的实施例一致的用于众包稀疏地图的系统的示意图示。
图19是示出与所公开的实施例一致的用于生成用于沿着道路路段的自主车辆导航的稀疏地图的示例性过程的流程图。
图20示出了与所公开的实施例一致的服务器的框图。
图21示出了与所公开的实施例一致的存储器的框图。
图22示出了与所公开的实施例一致的对与车辆相关联的车辆轨迹进行聚类的过程。
图23示出了与所公开的实施例一致的可以用于自主导航的车辆导航系统。
图24A、24B、24C和24D示出了与所公开的实施例一致的可以检测到的示例性车道标志。
图24E示出了与所公开的实施例一致的示例性的映射车道标志。
图24F示出了与所公开的实施例一致的与检测车道标志相关联的示例性异常。
图25A示出了与所公开的实施例一致的用于基于映射车道标志进行导航的车辆周围环境的示例性图像。
图25B示出了与所公开的实施例一致的基于道路导航模型中的映射车道标志的车辆横向定位校正。
图26A是示出与所公开的实施例一致的用于映射车道标志以用于自主车辆导航的示例性过程的流程图。
图26B是示出与所公开的实施例一致的使用映射车道标志沿着道路路段自主导航主车辆的示例性过程的流程图。
图27示出了与所公开的实施例一致的用于车辆导航的示例性系统。
图28是与所公开的实施例一致的交叉路口处示例性车辆的示意图。
图29A是示出与所公开的实施例一致的用于车辆导航的示例性过程的流程图。
图29B是示出与所公开的实施例一致的用于更新道路导航模型的示例性过程的流程图。
图29C是示出与所公开的实施例一致的用于车辆导航的示例性过程的流程图。
图30示出了与所公开的实施例一致的用于生成地图信息的示例性系统。
图31示出了与所公开的实施例一致的车辆周围环境的示例图像。
图32是示出与所公开的实施例一致的用于生成地图信息的示例性过程的流程图。
图33示出与所公开的实施例一致的用于收集与道路路段相关联的状况信息的示例性系统。
图34A、图34B和图34C示出与所公开的实施例一致的示例性车辆环境。
图35A是示出与所公开的实施例一致的用于确定具有至少一个动态特性的状况的示例性过程的流程图。
图35B是示出与所公开的实施例一致的用于收集与道路路段相关联的状况信息的示例性过程的流程图。
图36是与所公开的实施例一致的基于语义和非语义道路特征来对齐来自多个驾驶的信息的系统的示意图。
图37A示出与所公开的实施例一致的可以被车辆捕获的示例图像。
图37B、图37C和图37D示出与所公开的实施例一致的可用于对齐目的的非语义道路特征的示例。
图38是示出与所公开的实施例一致的用于对从多个车辆收集的相对于公共道路路段的信息进行关联的示例过程的流程图。
图39A和图39B示出与所公开的实施例一致的可以被用来检测非语义道路特征的示例图像。
图40是示出与所公开的实施例一致的用于确定非语义道路特征点的示例过程的流程图。
具体实施方式
以下的详细描述参考附图。只要可能,在附图和以下的描述中使用相同的参考标号来指代相同或相似的部分。虽然本文描述了数个说明性实施例,但是修改、改编和其他实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文所描述的说明性方法进行修改。相应地,以下的详细描述并不限于所公开的实施例和示例。代替地,适当的范围由所附权利要求限定。
自主车辆概述
如贯穿本公开所使用的,术语“自主车辆”指代在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”指代车辆的转向、制动、或加速中的一个或多个改变。为了实现自主,车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包含能够在某些时间段期间在驾驶员的控制下操作并且在其他时间段期间无需驾驶员控制而操作那些车辆。自主车辆还可以包含仅控制车辆导航的一些方面的车辆,诸如转向(例如,在车辆车道限制之间维持车辆路线),但是可以将其他方面留给驾驶员(例如,制动)。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向中的一些或全部方面。
由于人类驾驶员通常依赖于可视线索和观察以便控制车辆,因此相应地建造了交通基础设施,其中车道标志、交通标志和交通灯所有都被设计为向驾驶员提供可视信息。鉴于交通基础设施的这些设计特性,自主车辆可以包含相机以及分析从车辆的环境捕获的可视信息的处理单元。可视信息可以包含,例如,可由驾驶员观察到的交通基础设施(例如,车道标志、交通标志、交通灯等)的组件以及其他障碍物(例如,其他车辆、行人、碎屑等)。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆环境的模型的信息。例如,车辆可以使用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 BDA0003665554590000131
蓝牙智能、802.15.4、ZigBee等)。这样的传输可以包含从主车辆到一个或多个位于远处的服务器的通信。这样的传输还可以包含主车辆与主车辆的环境中的一个或多个目标车辆之间(单向或双向)的通信(例如,以便于鉴于或连同在主车辆的环境中的目标车辆来协调主车辆的导航),或者甚至包含在传输车辆附近的向未指定的接收者的广播传输。
应用处理器180和图像处理器190两者都可以包含各种类型的基于硬件的处理装置。例如,应用处理器180和图像处理器190中的任一者或两者可以包含微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器或者适用于运行应用和适用于图像处理和分析的任何其他类型的装置。在一些实施例中,应用处理器180和/或图像处理器190可以包含任何类型的单核或多核处理器、移动装置微控制器、中央处理单元等。可以使用各种处理装置,包含,例如,可以从诸如
Figure BDA0003665554590000132
等制造商获得的处理器或者可以从诸如
Figure BDA0003665554590000133
Figure BDA0003665554590000134
等制造商获得的GPU,并且可以包含各种架构(例如,x86处理器、
Figure BDA0003665554590000135
等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包含可从
Figure BDA0003665554590000136
获得的任何EyeQ系列处理器芯片。这些处理器设计各自包含具有本地存储器和指令集的多个处理单元。这样的处理器可以包含用于从多个图像传感器接收图像数据的视频输入,并且还可以包含视频输出能力。在一个示例中,
Figure BDA0003665554590000137
使用在332Mhz下操作的90纳米-微米技术。
Figure BDA0003665554590000138
架构由两个浮点式超线程32位RISC CPU(
Figure BDA0003665554590000139
核)、五个视觉计算引擎(VCE)、三个矢量微代码处理器
Figure BDA00036655545900001310
丹那利(Denali)64位移动DDR控制器、128位内部超音速互连(Sonics Interconnect)、双16位视频输入和18位视频输出控制器、16通道DMA和数个外围设备组成。MIPS34K CPU管理这五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其他外围设备。这五个VCE、三个
Figure BDA00036655545900001311
和MIPS34K CPU可以进行多功能捆绑应用所需要的密集视觉计算。在另一个实例中,可以在所公开的实施例中使用作为第三代处理器并且比
Figure BDA00036655545900001312
强六倍的
Figure BDA00036655545900001313
在其他示例中,可以在所公开的实施例中使用
Figure BDA0003665554590000141
和/或
Figure BDA0003665554590000142
当然,任何更新后的或未来的EyeQ处理装置也可以与所公开的实施例一起使用。
任何本文所公开的处理装置可以被配置为进行某些功能。配置处理装置(诸如任何所描述的EyeQ处理器或其他控制器或微处理器)以进行某些功能可以包含计算机可执行指令的编程并使这些指令可用于处理装置以在处理装置的操作期间执行。在一些实施例中,配置处理装置可以包含直接利用架构指令对处理装置进行编程。例如,可以使用例如一个或多个硬件描述语言(HDL)来配置诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等的处理装置。
在其他实施例中,配置处理装置可以包含将可执行指令存储在操作期间处理装置可访问的存储器上。例如,处理装置在操作期间可以访问该存储器以获得并执行所存储的指令。在任一种情况下,被配置为进行本文公开的感测、图像分析和/或导航功能的处理装置表示基于硬件的专用系统,其控制主车辆的多个基于硬件的组件。
虽然图1描绘了包含在处理单元110中的两个分离的处理装置,但是可以使用更多或更少的处理装置。例如,在一些实施例中,可以使用单个处理装置完成应用处理器180和图像处理器190的任务。在其他实施例中,可以由两个以上的处理装置来进行这些任务。此外,在一些实施例中,系统100可以在不包含其他组件(诸如图像获取单元120)的情况下包含处理单元110中的一个或多个。
处理单元110可以包括各种类型的装置。例如,处理单元110可以包含各种装置,诸如控制器、图像预处理器、中央处理单元(CPU)、图形处理单元(GPU)、支持电路、数字信号处理器、集成电路、存储器或用于图像处理和分析的任何其他类型的装置。图像预处理器可以包含用于捕获、数字化和处理来自图像传感器的影像的视频处理器。CPU可以包括任何数目的微控制器或微处理器。GPU还可以包括任何数目的微控制器或微处理器。支持电路可以是本领域公知的任何数目的电路,包含高速缓存、电源,时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制系统的操作。存储器可以包含数据库和图像处理软件。存储器可以包括任何数目的随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和其他类型的存储装置。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
每个存储器140、150可以包含软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。这些存储器单元可以包含各种数据库和图像处理软件,以及经训练的系统,诸如神经网络或例如深度神经网络。存储器单元可以包含随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和/或任何其他类型的存储装置。在一些实施例中,存储器单元140、150可以是与应用处理器180和/或图像处理器190分离的。在其他实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
位置传感器130可以包含适用于确定与系统100的至少一个组件相关联的定位的任何类型的装置。在一些实施例中,位置传感器130可以包含GPS接收器。这样的接收器可以通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
在一些实施例中,系统100可以包含诸如用于测量车辆200的速度的速度传感器(例如,转速表、速度计)和/或用于测量车辆200的加速度的加速度计(单轴或多轴)的组件。
用户界面170可以包含适用于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何装置。在一些实施例中,用户界面170可以包含用户输入装置,包含例如触摸屏、麦克风、键盘、指针装置、跟踪转轮、相机、旋钮、按钮等。使用这样的输入装置,用户能够通过键入指令或信息,提供语音命令,使用按钮、指针或眼跟踪能力在屏幕上选择菜单选项,或通过任何其他适用于向系统100通信信息的技术来向系统100提供信息输入或命令。
用户界面170可以配备有一个或多个处理装置,其被配置为向用户提供和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理装置可以执行指令以用于辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择等。在一些实施例中,用户界面170可以包含显示器、扬声器、触觉装置和/或用于向用户提供输出信息的任何其他装置。
地图数据库160可以包含用于存储对系统100有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库160可以包含与各种项目在参考坐标系统中的位置相关的数据,各种项目包含道路、水特征、地理特征、商业区、感兴趣的点、餐馆、加油站等。地图数据库160不仅可以存储这样的项目的定位,还可以存储与这样的项目相关的描述符,包含例如与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其他组件物理上位于一起。替代地或附加地,地图数据库160或其一部分可以相对于系统100的其他组件(例如,处理单元110)位于远处。在这样的实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)而下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包含某些道路特征(例如,车道标志)或主车辆的目标轨迹的多项式表示。下面参考图8至图19讨论生成这种地图的系统和方法。
图像捕获装置122、124和126可以各自包含适用于从环境捕获至少一个图像的任何类型的装置。此外,可以使用任何数目的图像捕获装置来获取用于输入到图像处理器的图像。一些实施例可以仅包含单个图像捕获装置,而其他实施例可以包含两个、三个、或者甚至四个或更多个图像捕获装置。以下将参考图2B至图2E进一步描述图像捕获装置122、124和126。
系统100或其各种组件可以合并到各种不同的平台中。在一些实施例中,系统100可以被包含在车辆200上,如图2A所示。例如,车辆200可以配备有如上关于图1所述的系统100的处理单元110和任何其他组件。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获装置(例如,相机),但是在其他实施例中,诸如结合图2B-图2E讨论的那些,可以使用多个图像捕获装置。例如,如图2A所示,车辆200的图像捕获装置122和124中的任一个可以是ADAS(Advanced Driver Assistance System,高级驾驶员辅助系统)成像集的一部分。
作为图像获取单元120的一部分的被包含在车辆200上的图像捕获装置,可以被定位在任何合适的定位。在一些实施例中,如图2A-图2E以及图3A-图3C所示,图像捕获装置122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员相似的视线,这可以帮助确定对驾驶员而言什么是可见和不可见的。图像捕获装置122可以被定位在靠近后视镜的任何定位,而将图像捕获装置122放置在镜子的驾驶员侧可以进一步帮助获得表示驾驶员的视场和/或视线的图像。
对于图像获取单元120的图像捕获装置还可以使用其他定位。例如,图像捕获装置124可以位于车辆200的保险杠上或保险杠中。这样的定位可以尤其适用于具有宽视场的图像捕获装置。位于保险杠的图像捕获装置的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕获装置和驾驶员可能不总是看到相同的对象。图像捕获装置(例如,图像捕获装置122、124和126)还可以位于其他定位。例如,图像捕获装置可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,安装在车辆200的任何车窗上、定位在车辆200的任何车窗的后面、或定位在车辆200的任何车窗的前面,以及安装在车辆200的前部和/或后部上的灯具中或附近等。
除了图像捕获装置之外,车辆200还可以包含系统100的各种其他组件。例如,处理单元110可以被包含在车辆200上,与车辆的引擎控制单元(engine control lunit,ECU)集成或分离。车辆200还可以配备有诸如GPS接收器的位置传感器130,并且还可以包含地图数据库160以及存储器单元140和150。
如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等)和/或接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。例如,经由无线收发器172,系统100可以接收对存储在地图数据库160、存储器140和/或存储器150中的数据的周期性或按需的更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕获的图像、由位置传感器130或其他传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
系统100可以基于隐私等级设定将数据上传到服务器(例如,上传到云)。例如,系统100可以实现隐私等级设定,以规定或限制传送到服务器的、可以唯一地识别车辆和/或车辆的驾驶员/所有者的数据(包含元数据)的类型。这样的设定可以由用户经由例如无线收发器172来设置,可以由出厂默认设定、或由无线收发器172接收的数据来初始化。
在一些实施例中,系统100可以根据“高”隐私等级上传数据,并且在设置设定的情况下,系统100可以传输数据(例如,与路途相关的定位信息、捕获的图像等),而不带有任何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设定来上传数据时,系统100可以不包含车辆标识编号(vehicle identification number,VIN)或者车辆的驾驶员或所有者的名字,并且可以代替地传输数据,诸如,捕获的图像和/或与路途相关的受限的定位信息。
可以预期其他隐私等级。例如,系统100可以根据“中间”隐私等级向服务器传输数据,并且可以包含在“高”隐私等级下不包含的附加信息,诸如车辆的品牌和/或型号和/或车辆类型(例如,乘用车、运动型多用途车、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设定的情况下,系统100可以上传数据,并且包含足以唯一地识别具体车辆、所有者/驾驶员和/或车辆行驶过的部分或整个路途的信息。这样的“低”隐私等级数据可以包含以下中的一个或多个:例如VIN、驾驶员/所有者名字、出发之前车辆的始发点、车辆的意图目的地、车辆的品牌和/或型号、车辆类型等。
图2A是与所公开的实施例一致的示例性车辆成像系统的图示性侧视图表示。图2B是图2A中所示的实施例的图示性顶视图图示。如图2B所示,所公开的实施例可以包含车辆200,该车辆200在其车体中包含系统100,该系统100具有定位在车辆200的后视镜附近和/或靠近驾驶员的第一图像捕获装置122、定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕获装置124、以及处理单元110。
如图2C所示,图像捕获装置122和124两者可以都定位在车辆200的后视镜附近和/或靠近驾驶员。此外,虽然图2B和图2C示出了两个图像捕获装置122和124,应理解的是,其他实施例可以包含两个以上的图像捕获装置。例如,在图2D和2E所示的实施例中,第一图像捕获装置122、第二图像捕获装置124和第三图像捕获装置126被包含在车辆200的系统100中。
如图2D所示,图像捕获装置122可以定位在车辆200的后视镜附近和/或靠近驾驶员,并且图像捕获装置124和126可以定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2E所示,图像捕获装置122、124和126可以定位在车辆200的后视镜附近和/或靠近驾驶员座。所公开的实施例不限于任何特定数目和配置的图像捕获装置,并且图像捕获装置可以定位在车辆200内或车辆200上的任何适当的定位中。
应理解的是,所公开的实施例不限于车辆,并且可以被应用在其他情景中。还应理解,所公开的实施例不限于特定类型的车辆200,并且可以适用于所有类型的车辆,包含汽车、卡车、拖车和其他类型的车辆。
第一图像捕获装置122可以包含任何合适类型的图像捕获装置。图像捕获装置122可以包含光轴。在一个实例中,图像捕获装置122可以包含具有全局快门的Aptina M9V024WVGA传感器。在其他实施例中,图像捕获装置122可以提供1280×960像素的分辨率,并且可以包含滚动快门(rolling shutter)。图像捕获装置122可以包含各种光学元件。在一些实施例中,可以包含一个或多个镜头,例如用于为图像捕获装置提供期望的焦距和视场。在一些实施例中,图像捕获装置122可以与6毫米镜头或12毫米镜头相关联。
在一些实施例中,如图2D所示,图像捕获装置122可以被配置为捕获具有期望的视场(FOV)202的图像。例如,图像捕获装置122可以被配置为具有常规FOV,诸如在40度至56度的范围内,包含46度FOV、50度FOV、52度FOV,或更大的FOV。替代地,图像捕获装置122可以被配置为具有在23度至40度的范围内的窄FOV,诸如28度FOV或36度FOV。另外,图像捕获装置122可以被配置为具有在100度至180度的范围内的宽FOV。在一些实施例中,图像捕获装置122可以包含广角保险杠相机或者具有高达180度FOV的相机。在一些实施例中,图像捕获装置122可以是7。2M像素图像捕获装置,其纵横比为约2:1(例如,HxV=3800×1900像素),具有约100度的水平FOV。这样的图像捕获装置可以被用来代替三个图像捕获装置配置。由于显著的镜头失真,在图像捕获装置使用径向对称镜头的实施方式中,这样的图像捕获装置的垂直FOV可显著地小于50度。例如,这样的镜头可以不是径向对称的,这将允许在100度水平FOV情况下垂直FOV大于50度。
第一图像捕获装置122可以获取关于与车辆200相关联的场景的多个第一图像。可以获取多个第一图像中的每个作为一系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线可以包含多个像素。
第一图像捕获装置122可以具有与第一系列图像扫描线中的每个的获取相关联的扫描速率。扫描速率可以指图像传感器可以获取与包含在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕获装置122、124和126可以含有任何合适的类型和数目的图像传感器,例如,包含CCD传感器或CMOS传感器等。在一个实施例中,CMOS图像传感器可以与滚动快门一起采用,使得一次一个地读取一行中的每个像素,并且行的扫描在逐行的基础上进行,直到已捕获整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕获行。
在一些实施例中,本文公开的图像捕获装置中的一个或多个(例如,图像捕获装置122、124和126)可以构成高分辨率成像器,并且可以具有大于5M像素、7M像素、10M像素或更大像素的分辨率。
滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕获,这可能引起捕获的图像帧中的歪斜和其他图像伪影。另一方面,当图像捕获装置122被配置为利用全局或同步快门操作时,所有像素可以以相同量的时间并且在共同曝光时段期间被曝光。结果,从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个FOV(诸如FOV202)的快照。相比之下,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕获。因此,在具有滚动快门的图像捕获装置中,移动对象可能出现失真。这种现象将在下面更详细地描述。
第二图像捕获装置124和第三图像捕获装置126可以是任何类型的图像捕获装置。类似于第一图像捕获装置122,图像捕获装置124和126中的每个可以包含光轴。在一个实施例中,图像捕获装置124和126中的每个可以包含具有全局快门的Aptina M9V024 WVGA传感器。替代地,图像捕获装置124和126中的每个可以包含滚动快门。类似于图像捕获装置122,图像捕获装置124和126可以被配置为包含各种镜头和光学元件。在一些实施例中,与图像捕获装置124和126相关联的镜头可以提供FOV(诸如FOV 204和206),其等于或窄于与图像捕获装置122相关联的FOV(诸如FOV 202)。例如,图像捕获装置124和126可以具有40度、30度、26度、23度、20度或更小的FOV。
图像捕获装置124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。可以获取多个第二和第三图像中的每个作为第二和第三系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线或行可以具有多个像素。图像捕获装置124和126可以具有与包含在第二和第三系列中的每个图像扫描线的获取相关联的第二和第三扫描速率。
每个图像捕获装置122、124和126可以定位在相对于车辆200的任何合适的位置和朝向处。可以选择图像捕获装置122、124和126的相对位置以帮助将从图像捕获装置获取的信息融合在一起。例如,在一些实施例中,与图像捕获装置124相关联的FOV(诸如FOV 204)可能部分地或完全地和与图像捕获装置122相关联的FOV(例如FOV 202)以及与图像捕获装置126相关联的FOV(例如FOV 206)重叠。
图像捕获装置122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕获装置122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2A所示,两个图像捕获装置122和124在不同的高度处。例如,在图像捕获装置122、124和126之间还可以存在横向位移差,以为处理单元110的立体分析给出附加的视差信息。横向位移的差异可以用dx表示,如图2C和图2D所示。在一些实施例中,图像捕获装置122、124和126之间可以存在前向或后向位移(例如,范围位移)。例如,图像捕获装置122可以位于图像捕获装置124和/或图像捕获装置126后面0.5到2米或更远处。这样的类型的位移可以使得图像捕获装置中的一个能够覆盖其他(一个或多个)图像捕获装置的潜在盲点。
图像捕获装置122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数目),并且与图像捕获装置122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕获装置124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕获装置122和/或图像捕获装置124和126相关联的(一个或多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或任何其他合适的分辨率。
帧速率(例如,图像捕获装置在继续捕获与下一图像帧相关联的像素数据之前获取一个图像帧的一组像素数据的速率)可以是可控的。与图像捕获装置122相关联的帧速率可以比与图像捕获装置124和126相关联的帧速率更高、更低或与之相同。与图像捕获装置122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕获装置122、124和126中的一个或多个可以包含可选择的像素延迟时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据用于该装置的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟循环一个像素)。此外,在包含滚动快门的实施例中,图像捕获装置122、124和126中的一个或多个可以包含可选择的水平消隐时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕获装置122、124和/或126中的一个或多个可以包含可选择的垂直消隐时段,其在获取与图像捕获装置122、124和126的图像帧相关联的图像数据之前或之后施加。
这些定时控制可以使能与图像捕获装置122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其他因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕获装置122的FOV与图像捕获装置124和126的一个或多个FOV重叠的区域的图像捕获的同步,即便图像捕获装置122的视场不同于图像捕获装置124和126的FOV。
图像捕获装置122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定对于两个装置,线扫描速率类似,如果一个装置包含具有640×480的分辨率的图像传感器,并且另一个装置包含具有1280×960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
可以影响图像捕获装置122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包含在图像捕获装置122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与用于特定装置的最大线扫描速率相关。提供较高的最大线扫描速率的装置比具有较低的最大线扫描速率的装置具有提供更高的帧速率的潜力。在一些实施例中,图像捕获装置124和126中的一个或多个可以具有高于与图像捕获装置122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕获装置124和/或126的最大线扫描速率可以是图像捕获装置122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
在另一个实施例中,图像捕获装置122、124和126可以具有相同的最大线扫描速率,但图像捕获装置122可以以小于或等于其最大扫描扫描速率的扫描速率而操作。系统可以被配置为使得图像捕获装置124和126中的一个或多个以等于图像捕获装置122的线扫描速率的线扫描速率进行操作。在其他实例中,系统可以被配置为使得图像捕获装置124和/或图像捕获装置126的线扫描速率可以是图像捕获装置122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
在一些实施例中,图像捕获装置122、124和126可以是不对称的。换言之,它们可包含具有不同视场(FOV)和焦距的相机。例如,图像捕获装置122、124和126的视场可以包含关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕获装置122、124和126中的一个或多个可以被配置为从在车辆200前面、车辆200后面、车辆200的侧面、或它们的组合的环境获取图像数据。
此外,与每个图像捕获装置122、124和/或126相关联的焦距可以是可选择的(例如,通过包含适当的镜头等),使得每个装置在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕获装置122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕获装置122、124和126还可以被配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕获装置122、124和126的焦距可以被选择以使得一个图像捕获装置(例如,图像捕获装置122)可以获取相对靠近车辆(例如,在10米内或20米内的)对象的图像,而其他图像捕获装置(例如,图像捕获装置124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
根据一些实施例,一个或多个图像捕获装置122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,尤其是对于可以被用于捕获车辆200附近的区域的图像的图像捕获装置122、124和126。例如,图像捕获装置122可以被用于捕获车辆200的右侧或左侧的区域的图像,并且在这样的实施例中,可能期望图像捕获装置122具有宽FOV(例如,至少140度)。
与图像捕获装置122、124和126中的每个相关联的视场可以取决于相应的焦距。例如,随着焦距增加,对应的视场减小。
图像捕获装置122、124和126可以被配置为具有任何合适的视场。在一个特定示例中,图像捕获装置122可以具有46度的水平FOV,图像捕获装置124可以具有23度的水平FOV,并且图像捕获装置126可以具有在23度和46度之间的水平FOV。在一个特定示例中,图像捕获装置122可以具有52度的水平FOV,图像捕获装置124可以具有26度的水平FOV,并且图像捕获装置126可以具有在26度和52度之间的水平FOV。在一些实施例中,图像捕获装置122的FOV与图像捕获装置124和/或图像捕获装置126的FOV的比率可以从1.5到2.0变化。在其他实施例中,该比率可以在1.25与2.25之间变化。
系统100可以被配置为使得图像捕获装置122的视场至少部分地或完全地与图像捕获装置124和/或图像捕获装置126的视场重叠。在一些实施例中,系统100可以被配置为使得图像捕获装置124和126的视场例如落入(例如,窄于)图像捕获装置122的视场并且与图像捕获装置122的视场共享共同的中心。在其他实施例中,图像捕获装置122、124和126可以捕获相邻的FOV,或者可以在它们FOV中具有部分重叠。在一些实施例中,图像捕获装置122、124和126的视场可以对齐,以使得较窄FOV图像捕获装置124和/或126的中心可以位于较宽FOV装置122的视场的下半部分中。
图2F是与所公开的实施例一致的示例性车辆控制系统的图示性表示。如图2F所指示的,车辆200可以包含油门调节系统220、制动系统230和转向系统240。系统100可以经过一个或多个数据链路(例如,用于传输数据的任何有线和/或无线链路)向油门调节系统220、制动系统230和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕获装置122、124和/或126获取的图像的分析,系统100可以向油门调节系统220、制动系统230和转向系统240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转向、变道(lane shift)等)。此外,系统100可以从油门调节系统220、制动系统230和转向系统240中的一个或多个接收输入,该输入指示车辆200的运行条件(例如,速度、车辆200是否正在制动和/或转向等)。以下结合图4至图7提供进一步的细节。
如图3A所示,车辆200还可以包含用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包含触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包含例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以定位为与后视镜310相邻。类似地,在一些实施例中,图像捕获装置122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包含一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
图3B至图3D是与所公开的实施例一致的被配置为定位在后视镜(例如,后视镜310)后面并抵靠车辆风挡的示例性相机安装370的图示。如图3B所示,相机安装370可以包含图像捕获装置122、124和126。图像捕获装置124和126可以定位在遮光板380的后面,遮光板380可以与车辆风挡齐平(flush)并且包含薄膜和/或防反射材料的合成物。例如,遮光板380可以被定位为使得遮挡相对于具有匹配斜面的车辆风挡对齐。在一些实施例中,图像捕获装置122、124和126中的每个可以定位在遮光板380的后面,例如在图3D中所描绘的。所公开的实施例不限于图像捕获装置122、124和126、相机安装370和遮光板380的任何特定配置。图3C是图3B所示的相机安装370从前面视角的图示。
如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变化和/或修改。例如,并非所有组件对于系统100的操作是必要的。此外,在提供所公开的实施例的功能时,任何组件可以位于系统100的任何适当的部分中并且组件可以被重新布置成各种配置。因此,前述配置是示例性的,并且不管上述讨论的配置如何,系统100都可以提供广阔范围的功能以分析车辆200的周围并响应于该分析而导航车辆200。
如在下面更详细讨论的并且根据各种所公开的实施例,系统100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,系统100可以分析图像数据、位置数据(例如,GPS定位信息)、地图数据、速度数据和/或来自包含在车辆200中的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130以及其他传感器收集数据用于分析。此外,系统100可以分析所收集的数据以确定车辆200是否应当采取某个动作,并且然后在没有人工干预的情况下自动采取所确定的动作。例如,当车辆200在没有人工干预的情况下导航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节系统220、制动系统230和转向系统240中的一个或多个传送控制信号)。此外,系统100可以分析所收集的数据,并且基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于系统100提供的各种实施例的附加的细节。
前向多成像系统
如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆前方的一个或多个相机。在其他实施例中,多相机系统可以包含面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕获装置122和124)可以被定位在车辆(例如,车辆200)的前面和/或侧面处。第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以进行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以进行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一个实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这样的系统可以基于从位于车辆前方和侧方的不同距离处的对象导出的信息来做出决定。对单目图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕获的图像进行图像分析的实例。立体图像分析可以参考基于使用图像捕获参数的一个或多个变化而捕获的两个或更多个图像而进行图像分析的实例。例如,适合于进行立体图像分析的捕获的图像可以包含从两个或更多个不同位置、从不同视野、使用不同焦距以及与视差信息一起等捕获的图像。
例如,在一个实施例中,系统100可以使用图像捕获装置122、124和126来实现三相机配置。在这样的配置中,图像捕获装置122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其他值等),图像捕获装置124可以提供宽视场(例如,150度或从大约100度至大约180度的范围选择的其他值),并且图像捕获装置126可以提供中间的视场(例如,46度或从大约35度至大约60度的范围选择的其他值)。在一些实施例中,图像捕获装置126可以作为主相机或基本相机。图像捕获装置122、124和126可以被定位在后视镜310的后面并且基本上并排定位(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕获装置122、124和126中的一个或多个可以被安装在与车辆200的风挡齐平的遮光板380的后面。这样的遮挡可以用于最小化来自汽车内部的任何反射对图像捕获装置122、124和126的影响。
在另一个实施例中,如以上结合图3B和图3C所讨论的,宽视场相机(例如,上述示例中的图像捕获装置124)可以被安装得低于窄视场相机和主视场相机(例如,上述示例中的图像捕获装置122和126)。这样的配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的风挡,并且在相机上可以包含偏振器以衰减(damp)反射光。
三相机系统可以提供某些性能特性。例如,一些实施例可以包含由一个相机基于来自另一个相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包含例如三个处理装置(例如,三个如以上所讨论的EyeQ系列处理器芯片),其中每个处理装置专用于处理由图像捕获装置122、124和126中的一个或多个捕获的图像。
在三相机系统中,第一处理装置可以从主相机和窄视场相机两者接收图像,并且进行对窄FOV相机的视觉处理,例如以检测其他车辆、行人、车道标志、交通标志、交通灯以及其他道路对象。此外,第一处理装置可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3D重建。然后第一处理装置可以组合3D重建与3D地图数据、或组合3D重建与基于来自另一个相机的信息计算出的3D信息。
第二处理装置可以从主相机接收图像并进行视觉处理以检测其他车辆、行人、车道标志、交通标志、交通灯和其他道路对象。此外,第二处理装置可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重建(例如,运动恢复结构(structure from motion))。第二处理装置可以将基于3D重建的运动恢复结构传送到第一处理装置以与立体3D图像进行组合。
第三处理装置可以从宽FOV相机接收图像,并处理该图像以检测车辆、行人、车道标志、交通标志、交通灯和其他道路对象。第三处理装置可以进一步执行附加的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
在一些实施例中,使得基于图像的信息的流被独立地捕获和处理可以提供用于在系统中提供冗余的机会。这样的冗余可以包含例如使用第一图像捕获装置和从该装置处理的图像来验证和/或补充通过从至少第二图像捕获装置捕获和处理图像信息而获得的信息。
在一些实施例中,系统100可以使用两个图像捕获装置(例如,图像捕获装置122和124)来为车辆200提供导航辅助,并使用第三图像捕获装置(例如,图像捕获装置126)来提供冗余和验证从其他两个图像捕获装置接收的数据的分析。例如,在这样的配置中,图像捕获装置122和124可以提供用于由系统100进行立体分析的图像以用于导航车辆200,而图像捕获装置126可以提供用于由系统100进行单目分析的图像,以提供冗余和基于从图像捕获装置122和/或图像捕获装置124捕获的图像而获得的信息的验证。换言之,可以认为图像捕获装置126(和对应的处理装置)提供冗余子系统,以用于提供对从图像捕获装置122和124导出的分析的检查(例如,以提供自动紧急制动(AEB)系统)。此外,在一些实施例中,可基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器、从车辆外部的一个或多个收发器接收的信息等)来补充冗余和接收到的数据的验证。
本领域的技术人员将认识到,上述相机配置、相机放置、相机数目、相机定位等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个系统描述的其他组件可以在各种不同的配置中被组装和使用。关于使用多相机系统以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
图4是存储器140和/或存储器150的示例性功能性框图,该存储器140和/或存储器150可以被存储/被编程指令以用于进行与本公开实施例一致的一个或多个操作。尽管以下指代存储器140,但是本领域技术人员将认识到指令可以存储在存储器140和/或150中。
如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行包含在存储器140中的任何模块402、404、406和408所存储的指令。本领域技术人员将理解,在以下讨论中对处理单元110的参考可以分离地或共同地指代应用处理器180和图像处理器190。相应地,可以由一个或多个处理装置来进行任何以下过程的步骤。
在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),当由处理单元110执行该指令时,对由图像捕获装置122、124和126中的一个获取的一组图像进行单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的感觉信息(例如,来自雷达、激光雷达等的信息)组合以进行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包含用于在一组图像内检测该组特征的指令,所述特征诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及与车辆的环境相关联的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。
在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),当由处理单元110执行该指令时,对由从任何图像捕获装置122、124和126中选择的图像捕获装置的组合而获取的第一组和第二组图像进行立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与附加的感觉信息(例如,来自雷达的信息)组合以进行立体图像分析。例如,立体图像分析模块404可以包含指令,该指令用于基于由图像捕获装置124获取的第一组图像和由图像捕获装置126获取的第二组图像而进行立体图像分析。如下面结合图6所描述的,立体图像分析模块404可以包含指令,该指令用于检测第一组和第二组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术,诸如系统可以被配置为使用计算机视觉算法来检测和/或标记在从中捕获和处理感觉信息的环境中的对象。在一个实施例中,立体图像分析模块404和/或其他图像处理模块可以被配置为使用经训练和未经训练系统的组合。
在一个实施例中,速度和加速度模块406可以存储软件,该软件被配置为分析从车辆200中的一个或多个计算和机电装置接收的数据,该一个或多个计算和机电装置被配置为引起车辆200的速度和/或加速度的改变。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从执行单目图像分析模块402和/或立体图像分析模块404导出的数据来计算车辆200的目标速度。这样的数据可以包含,例如目标位置,速度和/或加速度,车辆200相对于附近车辆、行人或道路对象的位置和/或速度,车辆200相对于道路的车道标志的位置信息等。另外,处理单元110可以基于感觉输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如油门调节系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速度。基于计算出的目标速度,处理单元110可以向车辆200的油门调节系统220、制动系统230和/或转向系统的240传输电信号,以通过例如物理地压下制动器或松开车辆200的加速器来触发速度和/或加速度的改变。
在一个实施例中,导航响应模块408可以存储软件,该软件可由处理单元110执行以基于从执行单目图像分析模块402和/或立体图像分析模块404导出的数据来确定期望的导航响应。这样的数据可以包含与附近的车辆、行人和道路对象相关联的位置和速度信息,车辆200的目标位置信息等。此外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的执行检测到的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于感觉输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如车辆200的油门调节系统220、制动系统230和转向系统240)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的油门调节系统220、制动系统230和转向系统240传输电信号,以通过例如转动车辆200的方向盘来实现预定角度的旋转,从而触发期望的导航响应。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为执行速度和加速度模块406的输入,以用于计算车辆200的速度的改变。
此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
图5A是示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程500A的流程图。在步骤510处,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕获装置122)可以捕获车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并通过数据连接(例如,数字、有线、USB、无线、蓝牙等)将它们传输到处理单元110。在步骤520处,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5B至图5D所进一步详细描述的。通过进行该分析,处理单元110可以检测在该组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯等。
在步骤520处,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这样的危险的检测更加困难。在一些实施例中,处理单元110可以执行单目图像分析模块402来对多个图像进行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3D地图。然后,处理单元110可以使用该3D地图来检测道路表面、以及存在于道路表面上的危险。
在步骤530处,处理单元110可以执行导航响应模块408以基于在步骤520处执行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。导航响应可以包含例如转向、变道、制动、加速度的改变等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。例如,处理单元110可以通过例如按照顺序地向车辆200的转向系统240和油门调节系统220传输控制信号,使得车辆200转变一个车道然后加速。替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240传输控制信号,使得车辆200在变道的同时制动。
图5B是示出与所公开的实施例一致的用于在一组图像中检测一个或多个车辆和/或行人的示例性过程500B的流程图。处理单元110可以执行单目图像分析模块402来实现过程500B。在步骤540处,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定图案比较,并且在每个图像内识别可能含有感兴趣的对象(例如,车辆、行人或其部分)的可能的定位。预定图案可以以实现高“伪命中”率和低“漏掉”率的这样的方式来设计。例如,处理单元110可以将低的相似性阈值用在预定图案以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。
在步骤542处,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型类别相关联的各种属性导出这样的标准。属性可以包含对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
在步骤544处,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
在步骤546处,处理单元110可以为检测到的对象构建一组测量。这样的测量可以包含例如与检测到的对象相关联的位置、速度和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的诸如卡尔曼滤波器或线性二次估计(LQE)的估计技术和/或基于对于不同对象类别(例如,汽车、卡车、行人、自行车、道路标志等)可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过进行步骤540至546,处理单元110可以识别在该组捕获图像内出现的车辆和行人,并导出与该车辆和行人相关联的信息(例如,位置、速度、大小)。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤548处,处理单元110可以进行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的可能性。光流分析可以指代,例如在一个或多个图像中分析相对于车辆200的、与其他车辆和行人相关联的并且区别于道路表面运动的运动图案。处理单元110可以通过跨越在不同时间捕获到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用该位置和时间值作为用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546进行光流分析,以提供用于检测车辆和行人的冗余,并提高系统100的可靠性。
图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标志和/或车道几何结构信息的示例性过程500C的流程图。处理单元110可以执行单目图像分析模块402来实现过程500C。在步骤550处,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标志、车道几何结构信息以及其他相关的道路标志的路段,处理单元110可以过滤该组对象以排除被确定为不相关的对象(例如,小坑洼、小石块等)。在步骤552处,处理单元110可以将在步骤550中检测到的属于相同的道路标志或车道标志的路段分组在一起。基于该分组,处理单元110可以产生表示检测到的路段的模型,诸如数学模型。
在步骤554处,处理单元110可以构建与检测到的路段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的路段从图像平面到现实世界平面上的投影。可以使用具有与诸如检测到的道路的位置、斜率、曲率和曲率导数的物理属性对应的系数的三次多项式来表征该投影。在生成投影时,处理单元110可以考虑道路表面的改变,以及与车辆200相关的俯仰(pitch)和滚转速率(roll rate)。此外,处理单元110可以通过分析道路表面上存在的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰和滚转速率。
在步骤556处,处理单元110可以通过例如跨连续图像帧跟踪检测到的路段并累积与检测到的路段相关联的逐帧数据来进行多帧分析。由于处理单元110进行多帧分析,在步骤554构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过进行步骤550、552、554和556,处理单元110可以识别在该组捕获图像中出现的道路标志并导出车道几何结构信息。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤558处,处理单元110可以考虑附加的信息源,以进一步产生车辆200的在其周围的环境中的安全模型。处理单元110可以使用安全模型来限定系统100可以以安全方式执行车辆200的自主控制的上下文。为产生该安全模型,在一些实施例中,处理单元110可以考虑其他车辆的位置和运动、检测到的路缘和护栏、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标志和车道几何结构的冗余,并增加系统100的可靠性。
图5D是示出与所公开的实施例一致的用于在一组图像中检测交通灯的示例性过程500D的流程图。处理单元110可以执行单目图像分析模块402来实现过程500D。在步骤560处,处理单元110可以扫描该组图像,并识别出现在图像中的可能含有交通灯的定位处的对象。例如,处理单元110可以过滤所识别的对象以构建一组候选对象,而排除不可能对应于交通灯的那些对象。可以基于与交通灯相关联的各种属性来完成过滤,诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等。这样的属性可以基于交通灯和交通控制信号的多个示例,并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象进行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些移动的对象(其不可能是交通灯)。在一些实施例中,处理单元110可以对候选对象进行颜色分析,并识别出现在可能的交通灯内的检测到的颜色的相对位置。
在步骤562处,处理单元110可以分析交叉口的几何结构。分析可以基于以下各项的任意组合:(i)在车辆200的任一侧检测到的车道数,(ii)在道路上检测到的标志(例如箭头标志),以及(iii)从地图数据(例如来自地图数据库160的数据)中提取的交叉口的描述。处理单元110可以使用从执行单目分析模块402导出的信息来进行分析。此外,处理单元110可以确定在步骤560检测到的交通灯和在车辆200附近出现的车道之间的对应性。
在步骤564处,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何结构和检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数目与实际出现在交叉口处的交通灯的数目比较可以影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改善安全条件。通过进行步骤560、562和564,处理单元110可以识别出现在该组捕获图像内的交通灯,并分析交叉口几何结构信息。基于该识别和分析,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
图5E是示出与所公开的实施例一致的用于基于车辆路径来引起车辆200中的一个或多个导航响应的示例性过程500E的流程图。在步骤570处,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的路段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
在步骤572处,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的dk小于如上所述的距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度的累积距离矢量S(即,基于表示车辆路径的该组点)。
在步骤574处,处理单元110可以基于在步骤572处构建的更新后的车辆路径来确定前视点(look-ahead point)(以坐标表达为(xl,zl))。处理单元110可以从累积距离矢量S提取前视点,并且该前视点可以与前视距离和前视时间相关联。前视距离可以具有范围为从10米至20米的下限,可以被计算为车辆200的速度和前视时间的乘积。例如,随着车辆200的速度下降,前视距离也可以减小(例如,直到它到达下限)。前视时间的范围可以从0.5到1.5秒,可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于偏航率(yaw rate)环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
在步骤576处,处理单元110可以基于在步骤574确定的前视点来确定航向误差和偏航率命令。处理单元110可以通过计算前视点的反正切,例如arctan(xl/zl)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2×车辆200的速度/前视距离)。
图5F是示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程500F的流程图。在步骤580处,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5A和图5B所描述的技术来确定前方车辆的位置、速度(例如,方向和速度)和/或加速度。处理单元110还可以使用以上结合图5E所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(例如,描述由前方车辆所采取的路径的一组点)。
在步骤582处,处理单元110可以分析在步骤580确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路上0.3至0.4米,以及在急转弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其他车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以附加地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其他车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率和道路路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
在另一个实施例中,处理单元110可以在具体时间段(例如,0.5至1.5秒)将前方车辆的瞬时位置与前视点(与车辆200相关联)相比较。如果前方车辆的瞬时位置与前视点之间的距离在该具体时间段期间变化,并且变化的累积总和超过预定阈值(例如,在直路上0.3至0.4米,在适度弯曲道路上0.7至0.8米,以及在急转弯道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以通过将沿着追踪轨迹行驶的横向距离与该追踪路径的期望曲率相比较,来分析该追踪轨迹的几何结构。可以根据计算确定预期的曲率半径:(δz 2x 2)/2/(δx),其中δx表示横向行驶的距离和δz表示的纵向行驶的距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置遮挡了道路多项式(例如,前车覆盖在道路多项式的上方),则处理单元110可以确定前方车辆很可能正在改变车道。在前方车辆的位置是使得在前方车辆的前方检测到另一车辆并且这两个车辆的追踪轨迹不平行的情况下,处理单元110可以确定(较近的)前方车辆很可能正在改变车道。
在步骤584,处理单元110可以基于在步骤582进行的分析来确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582进行的各个分析的加权平均来做出该确定。在这样的方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变车道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582处进行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。
图6是示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程600的流程图。在步骤610处,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202和204的图像捕获装置122和124)可以捕获在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤620处,处理单元110可以执行立体图像分析模块404来进行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3D地图并检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。可以以与上面结合图5A至5D描述的步骤类似的方式进行立体图像分析。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标志、交通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并进行多帧分析、构建测量,以及为剩余的候选对象确定置信度水平。在进行上述步骤时,处理单元110可以考虑来自第一和第二多个图像两者的信息,而不是仅考虑来自一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像两者中的候选对象的像素级数据(或来自捕获图像的两个流中的其他数据子集)的差异。作为另一个示例,处理单元110可以通过观察对象在多个图像中的一个出现而未在另一个图像中出现,或相对于出现在两个图像流中的对象可能存在的其他差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
在步骤630处,处理单元110可以执行导航响应模块408,以基于在步骤620进行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包含例如转向、变道、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。
图7是示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程700的流程图。在步骤710处,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202、204和206的图像捕获装置122、124和126)可以捕获在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕获装置122、124、126中的每个可以具有用于向处理单元110通信数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤720处,处理单元110可以分析该第一、第二和第三多个图像以检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。该分析可以以类似于以上结合图5A-图5D和图6所描述的步骤的方式来进行。例如,处理单元110可以对第一、第二和第三多个图像中的每个进行单目图像分析(例如,经由单目图像分析模块402的执行以及基于以上结合图5A至图5D所描述的步骤)。替代地,处理单元110可对第一和第二多个图像、第二和第三多个图像、和/或第一和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行以及基于以上结合图6所描述的步骤)。可以组合对应于第一、第二和/或第三多个图像的分析的处理后的信息。在一些实施例中,处理单元110可以进行单目和立体图像分析的组合。例如,处理单元110可以对第一多个图像进行单目图像分析(例如,经由单目图像分析模块402的执行)并且对第二和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行)。图像捕获装置122、124和126——包含它们各自的定位和视场202、204和206——的配置可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕获装置122、124和126的特定配置或对第一、第二和第三多个图像进行的分析的类型。
在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对系统100进行测试。这样的测试可以提供对于图像获取装置122、124和126的某些配置的系统100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,系统100不正确地确定车辆或行人的存在的情况)和“漏掉”的比例。
在步骤730处,处理单元110可以基于从第一、第二和第三多个图像中的两个导出的信息来引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数目、类型和大小。处理单元110还可以基于图像质量和分辨率、在图像中反映的有效视场、捕获的帧的数目、一个或多个感兴趣的对象实际出现在帧中的程度(例如,对象出现的帧的百分比、每个这样的帧中出现的对象的比例)等来进行选择。
在一些实施例中,处理单元110可以通过确定从一个图像源导出的信息与从其他图像源导出的信息的相一致的程度,选择从第一、第二和第三多个图像中的两个导出的信息。例如,处理单元110可以将从图像捕获装置122、124和126中的每个导出的处理后的信息组合(无论通过单目分析、立体分析、还是两者的任何组合),并确定在从图像捕获装置122、124和126的每个捕获到的图像之间相一致的视觉指示符(例如,车道标志、检测到的车辆及其定位和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕获到的图像之间不一致的信息(例如,正改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于确定相一致和不一致的信息,来选择从第一、第二和第三多个图像中的两个导出的信息。
导航响应可以包含例如转向、变道、制动、加速度的改变等。处理单元110可以基于在步骤720所进行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。处理单元110还可以使用从执行速度和加速度模块406导出的数据来引起一个或多个导航响应。在一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任何组合而发生。
用于自主车辆导航的稀疏道路模型
在一些实施例中,所公开的系统和方法可以使用用于自主车辆导航的稀疏地图。特别地,稀疏地图可以用于沿着道路路段的自主车辆导航。例如,稀疏地图可以在不存储和/或更新大量数据的情况下为导航自主车辆提供足够的信息。如下文更详细讨论的,自主车辆可以基于一个或多个存储的轨迹使用稀疏地图来导航一条或多条道路。
用于自主车辆导航的稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,稀疏地图可以在不需要过多的数据存储或数据传输速率的情况下为导航提供足够的信息。如下文更详细讨论的,车辆(其可以是自主车辆)可以使用稀疏地图来导航一条或多条道路。例如,在一些实施例中,稀疏地图可以包含与道路和沿着道路的潜在地标相关的数据,这些数据对于车辆导航来说可能是足够的,但是也表现出小的数据足迹(footprint)。例如,下面详细描述的稀疏数据地图与包含详细地图信息(诸如沿着道路收集的图像数据)的数字地图相比,可能需要显著更少的存储空间和数据传输带宽。
例如,稀疏数据地图可以存储沿着道路的优选车辆路径的三维多项式表示,而不是存储道路路段的详细表示。这些路径可能需要非常少的数据存储空间。此外,在所描述的稀疏数据地图中,地标可以被识别并被包含在稀疏地图道路模型中以帮助导航。这些地标可以以适合于使能车辆导航的任何间距被定位,但是在一些情况下,这些地标不需要以高密度和短间距被识别并被包含在模型中。相反,在一些情况下,基于间距开至少50米、至少100米、至少500米、至少1千米或至少2千米的地标的导航是可能的。如将在其他章节中更详细讨论的,稀疏地图可以基于由配备有各种传感器和装置(诸如图像捕获装置、全球定位系统传感器、运动传感器等)的车辆在该车辆沿着道路行驶时收集或测量的数据来生成。在一些情况下,稀疏地图可以基于在一个或多个车辆沿着特定道路多次驾驶期间收集的数据来生成。使用一个或多个车辆的多次驾驶生成稀疏地图可以被称为“众包”稀疏地图。
与所公开的实施例一致,自主车辆系统可以使用用于导航的稀疏地图。例如,所公开的系统和方法可以分配稀疏地图用于为自主车辆生成道路导航模型,并且可以使用稀疏地图和/或生成的道路导航模型沿着道路路段导航自主车辆。与本公开一致的稀疏地图可以包含一个或多个三维轮廓,这些三维轮廓可以表示自主车辆在它们沿着相关联的道路路段移动时可以穿越(traverse)的预定轨迹。
与本公开一致的稀疏地图还可以包含表示一个或多个道路特征的数据。这样的道路特征可以包含辨识的地标、道路签名轮廓以及在车辆导航中有用的任何其他道路相关特征。与本公开一致的稀疏地图可以基于包含在稀疏地图中的相对少量的数据来使能车辆的自主导航。例如,稀疏地图的所公开的实施例可以需要相对小的存储空间(并且当稀疏地图的部分被传输到车辆时需要相对小的带宽),但是仍然可以充分地提供自主车辆导航,而不是包含道路的详细表示,诸如道路边缘、道路曲率、与道路路段相关联的图像、或详细描述与道路路段相关联的其他物理特征的数据。在一些实施例中,可以通过存储需要少量数据但仍然使能够自主导航的道路相关元素的表示来实现所公开的稀疏地图的小数据足迹,这将在下面进一步详细讨论。
例如,所公开的稀疏地图可以存储车辆可以沿着道路遵循的一个或多个轨迹的多项式表示,而不是存储道路的各个方面的详细表示。因此,使用所公开的稀疏地图,可以沿着特定道路路段导航车辆,而不是存储(或必须传输)关于道路的物理性质的细节以使能沿着道路的导航,在某些情况下,不必解释道路的物理方面,而是通过将其行驶的路径与沿着特定道路路段的轨迹(例如,多项式样条)对齐。以这种方式,可以主要基于存储的轨迹(例如,多项式样条)来导航车辆,与涉及道路图像、道路参数、道路布局等的存储的方法相比,该存储的轨迹可以需要少得多的存储空间。
除了存储的沿着道路路段的轨迹的多项式表示之外,所公开的稀疏地图还可以包含可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包含数字签名,该数字签名从沿着道路路段行驶的车辆上的传感器(例如,相机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)中导出。相对于由传感器获取的信号,数字签名可以具有减小的大小。在一些实施例中,数字签名可以被创建为与分类器功能兼容,该分类器功能被配置为例如在后续驾驶期间从由传感器获取的信号中检测和识别道路特征。在一些实施例中,可以创建数字签名,使得数字签名具有尽可能小的足迹,同时保留基于道路特征的图像(或者如果所存储的签名不是基于图像和/或包含其他数据,则是由传感器生成的数字信号)将道路特征与所存储的签名相关联或匹配的能力,该道路特征的图像由后续沿相同道路路段行驶的车辆上的相机捕获。
在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于可由车辆上的相机检测的道路特征,并且其中车辆上的相机系统耦合到分类器,该分类器能够将对应于该道路特征的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联,并且其中这种道路标志在该区域中是本地唯一的(例如,附近没有相同的道路标志或相同类型的道路标志),存储指示道路特征的类型及其定位的数据可以是足够的。
如下面将进一步详细讨论的,道路特征(例如,沿着道路路段的地标)可以被存储为小数据对象,该小数据对象可以以相对较少的字节来表示道路特征,同时提供足够的信息用于辨识和使用这样的特征进行导航。在一个示例中,道路标志可以被识别为车辆的导航可以基于的辨识的地标。道路标志的表示可以被存储在稀疏地图中,以包含例如指示地标的类型(例如,停车标志)的几个字节的数据和指示地标的定位(例如,坐标)的几个字节的数据。基于地标的这种轻数据(data-light)表示的导航(例如,使用足以基于地标定位、辨识和导航的表示)可以提供与稀疏地图相关联的期望等级的导航功能,而不会显著增加与稀疏地图相关联的数据开销。地标(和其他道路特征)的这种精简表示可以利用包含在这种车辆上的被配置为检测、识别和/或分类特定道路特征的传感器和处理器。
例如,当给定区域中的标志或者甚至特定类型的标志是本地唯一的(例如,当没有其他标志或者没有相同类型的其他标志时),稀疏地图可以使用指示地标的类型(标志或者特定类型的标志)的数据,并且在导航(例如,自主导航)期间当自主车辆上的相机捕获包含标志(或特定类型的标志)的区域的图像时,处理器可以处理图像,检测标志(如果确实存在于图像中),将图像分类为标志(或特定类型的标志),并将图像的定位与存储在稀疏地图中的标志的定位相关联。
生成稀疏地图
在一些实施例中,稀疏地图可以包含沿着道路路段延伸的道路表面特征的至少一个线表示以及与该道路路段相关联的多个地标。在某些方面,稀疏地图可以经由“众包”来生成,例如,通过对当一个或多个车辆穿越道路路段时获取的多个图像进行图像分析。
图8示出了一个或多个车辆(例如车辆200(其可以是自主车辆))可以访问以用于提供自主车辆导航的稀疏地图800。稀疏地图800可以被存储在存储器中,诸如存储器140或150中。这种存储器装置可以包含任何类型的非暂时性存储装置或计算机可读介质。例如,在一些实施例中,存储器140或150可以包含硬盘驱动器、光盘、闪速存储器、基于磁的存储器装置、基于光的存储器装置等。在一些实施例中,稀疏地图800可以存储在数据库(例如,地图数据库160)中,该数据库可以存储在存储器140或150或其他类型的存储装置中。
在一些实施例中,稀疏地图800可以存储在车辆200上提供的存储装置或非暂时性计算机可读介质上(例如,包含在车辆200上的导航系统中的存储装置)。车辆200上提供的处理器(例如,处理单元110)可以访问存储在车辆200上提供的存储装置或计算机可读介质中的稀疏地图800,以便在车辆穿越道路路段时生成用于引导自主车辆200的导航指令。
然而,稀疏地图800不需要相对于车辆被本地存储。在一些实施例中,稀疏地图800可以存储在存储装置或计算机可读介质上,在与车辆200或与车辆200相关联的装置通信的远程服务器上提供该存储装置或计算机可读介质。车辆200上提供的处理器(例如,处理单元110)可以从远程服务器接收稀疏地图800中包含的数据,并且可以执行用于引导车辆200的自主驾驶的数据。在这样的实施例中,远程服务器可以存储稀疏地图800的全部或仅其一部分。相应地,在车辆200上和/或在一个或多个附加车辆上提供的存储装置或计算机可读介质可以存储稀疏地图800的(多个)剩余部分。
此外,在这样的实施例中,稀疏地图800可以被穿过不同道路路段的多个车辆(例如,数十、数百、数千或数百万车辆等)访问。还应当注意,稀疏地图800可以包含多个子地图。例如,在一些实施例中,稀疏地图800可以包含可用于导航车辆的数百、数千、数百万或更多的子地图。这种子地图可以被称为局部地图,并且沿着道路行驶的车辆可以访问与车辆正在行驶的定位相关的任意数量的局部地图。稀疏地图800的局部地图部分可以与全球导航卫星系统(GNSS)密钥一起存储作为到稀疏地图800的数据库的索引。因此,虽然在本系统中用于导航主车辆的转向角的计算可以在不依赖于主车辆的GNSS位置、道路特征或地标的情况下执行,但是这种GNSS信息可以用于检索相关的局部地图。
一般来说,稀疏地图800可以基于从一个或多个车辆在它们沿着道路行驶时收集的数据来生成。例如,使用一个或多个车辆上的传感器(例如,相机、速度计、GPS、加速度计等),可以记录一个或多个车辆沿着道路行驶的轨迹,并且可以基于由一个或多个车辆行驶的收集到的轨迹来确定沿着道路进行后续行程的车辆的优选轨迹的多项式表示。类似地,由一个或多个车辆收集的数据可以帮助识别沿着特定道路的潜在地标。从穿越车辆收集的数据也可以用于识别道路轮廓信息,诸如道路宽度轮廓、道路粗糙度轮廓、交通线间距轮廓、道路情况等。使用收集的信息,稀疏地图800可以被生成和分配(例如,用于本地存储或经由飞行中的数据传输),以用于导航一个或多个自主车辆。然而,在一些实施例中,地图生成可能不会在地图的初始生成时结束。如下面将更详细讨论的,当车辆继续穿越稀疏地图800中包含的道路时,稀疏地图800可以基于从车辆收集的数据被连续地或周期性地更新。
稀疏地图800中记录的数据可以包含基于全球定位系统(GPS)数据的位置信息。例如,定位信息可以包含在稀疏地图800中,以用于各种地图元素,包含例如地标定位、道路轮廓定位等。稀疏地图800中包含的地图元素的定位可以使用从穿越道路的车辆收集的GPS数据来获得。例如,经过所识别的地标的车辆可以使用与车辆相关联的GPS位置信息和所识别的地标相对于车辆的定位的确定(例如,基于从车辆上的一个或多个相机收集的数据的图像分析)来确定所识别的地标的定位。当附加的车辆经过所识别的地标的定位时,可以重复对所识别的地标(或稀疏地图800中包含的任何其他特征)的这种定位确定。一些或所有附加定位确定可用于相对于所识别的地标细化存储在稀疏地图800中的定位信息。例如,在一些实施例中,相对于存储在稀疏地图800中的特定特征的多个位置测量可以一起被平均。然而,任何其他数学运算也可用于基于地图元素的多个确定定位来细化地图元素的所存储的定位。
所公开的实施例的稀疏地图可以使用相对少量的存储数据来使能车辆的自主导航。在一些实施例中,稀疏地图800可以具有小于每千米道路2MB、小于每千米道路1MB、小于每千米道路500kB或小于每千米道路100kB的数据密度(例如,包含表示目标轨迹、地标和任何其他存储的道路特征的数据)。在一些实施例中,稀疏地图800的数据密度可以小于每千米道路10kB,或者甚至小于每千米道路2kB(例如,每千米1.6kB),或者不超过每千米道路10kB,或者不超过每千米道路20kB。在一些实施例中,也可以使用总共具有4GB或更少数据的稀疏地图来自主导航美国的大部分道路(如果不是全部的话)。这些数据密度值可以表示整个稀疏地图800、稀疏地图800内的局部地图和/或稀疏地图800内的特定道路路段上的平均。
如上所述,稀疏地图800可以包含多个目标轨迹的表示810,以用于沿着道路路段引导自主驾驶或导航。这种目标轨迹可以被存储为三维样条。例如,存储在稀疏地图800中的目标轨迹可以基于车辆沿着特定道路路段的先前穿越(traversal)的两个或更多个重建轨迹来确定。道路路段可以与单个目标轨迹或多个目标轨迹相关联。例如,在双车道道路上,可以存储第一目标轨迹以表示在第一方向上沿着道路行驶的意图路径,并且可以存储第二目标轨迹以表示在另一方向上(例如,与第一方向相反)沿着道路行驶的意图路径。可以存储关于特定道路路段的附加目标轨迹。例如,在多车道道路上,可以存储一个或多个目标轨迹,其表示与多车道道路相关联的一个或多个车道中的车辆的行驶的意图路径。在一些实施例中,多车道道路的每个车道可以与其自己的目标轨迹相关联。在其他实施例中,存储的目标轨迹可以比多车道道路上存在的车道少。在这种情况下,在多车道道路上导航的车辆可以使用任何存储的目标轨迹来通过考虑从存储目标轨迹的车道的车道偏移来引导其导航(例如,如果车辆在三车道公路的最左侧车道上行驶,并且目标轨迹仅针对公路的中间车道存储,当生成导航指令时,通过考虑中间车道和最左侧车道之间的车道偏移,车辆可以使用中间车道的目标轨迹导航)。
在一些实施例中,目标轨迹可以表示车辆行驶时应当走的理想路径。目标轨迹可以位于例如行驶的车道的近似中心。在其他情况下,目标轨迹可以位于相对于道路路段的其他地方。例如,目标轨迹可以与道路的中心、道路的边缘或车道的边缘等近似重合。在这种情况下,基于目标轨迹的导航可以包含相对于目标轨迹的定位维持的确定的偏移量。此外,在一些实施例中,相对于目标轨迹的定位维持的确定的偏移量可以基于车辆的类型而不同(例如,沿着目标轨迹的至少一部分,包含两个轴的客车可以与包含两个以上的轴的卡车具有不同的偏移)。
稀疏地图800还可以包含与多个预定地标820相关的数据,多个预定地标820与特定道路路段、局部地图等相关联。如下文更详细讨论的,这些地标可以用于自主车辆的导航。例如,在一些实施例中,地标可用于确定车辆相对于所存储的目标轨迹的当前位置。利用该位置信息,自主车辆能够调整航向方向,以匹配在确定定位处的目标轨迹的方向。
多个地标820可以以任何合适的间距被识别并存储在稀疏地图800中。在一些实施例中,地标可以以相对高的密度被存储(例如,每隔几米或更多)。然而,在一些实施例中,可以采用显著更大的地标间距值。例如,在稀疏地图800中,所识别的(或所辨识的)地标可以间距开10米、20米、50米、100米、1千米或2千米。在一些情况下,所识别的地标可以位于相距甚至超过2千米的距离处。
在地标之间,并因此在相对于目标轨迹的车辆位置的确定之间,车辆可以基于航位推算来导航,在该航位推算中,车辆使用传感器来确定其自我(ego)运动并估计其相对于目标轨迹的位置。由于在通过航位推算的导航期间误差可以累积,随着时间的推移,相对于目标轨迹的位置确定可能变得越来越不准确。车辆可以使用出现在稀疏地图800中的地标(以及它们的已知定位)来消除位置确定中由航位推算引起的误差。以这种方式,稀疏地图800中包含的所识别的地标可以用作导航锚,从该导航锚可以确定车辆相对于目标轨迹的准确位置。因为在位置定位中一定量的误差可以是可接受的,所以识别的地标不需要总是对自主车辆可用。相反,合适的导航甚至可以基于如上所述的10米、20米、50米、100米、500米、1千米、2千米或更多的地标间距。在一些实施例中,每1千米的道路的1个识别地标的密度足以将纵向位置确定准确度维持在1米内。因此,不需要将沿着道路路段出现的每个潜在地标存储在稀疏地图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)、让行标志(例如,让行标志1005)、路线号标志(例如,路线号标志1010)、交通灯标志(例如,交通灯标志1015)、停车标志(例如,停车标志1020)。方向标志可以包含标志,该标志包含一个或多个箭头,该箭头指示到不同地方的一个或多个方向。例如,方向标志可以包含具有用于将车辆引导到不同道路或地方的箭头的高速公路标志1025、具有将车辆引导离开道路的箭头的出口标志1030等等。相应地,多个地标中的至少一个可以包含道路标志。
一般标志可以与交通无关。例如,一般标志可能包含用于广告的广告牌,或两个国、州、县、市或城镇之间边界附近的欢迎板。图10示出了一般标志1040(“乔的餐厅”)。尽管一般标志1040可以具有矩形形状,如图10所示,但是一般标志1040可以具有其他形状,诸如正方形,圆形,三角形等。
地标还可能包含路边固定装置。路边固定装置可以不是标志,也可以与交通或方向无关。例如,路边固定装置可以包含灯柱(例如,灯柱1035)、电力线柱、交通灯柱等。
地标还可以包含专门设计用于自主车辆导航系统的信标。例如,这种信标可以包含以预定间隔放置的独立结构,以帮助导航主车辆。这种信标还可以包含添加到现有道路标志的可视/图形信息(例如,图标、徽章、条形码等),该可视/图形信息可以被沿着道路路段行驶的车辆识别或辨识。这种信标还可以包含电子组件。在这样的实施例中,电子信标(例如,RFID标签等)可用于向主车辆传输非可视信息。这种信息可以包含例如主车辆在确定其沿目标轨迹的位置时可以使用的地标标识和/或地标定位信息。
在一些实施例中,稀疏地图800中包含的地标可以由预定大小的数据对象来表示。表示地标的数据可以包含用于识别特定地标的任何合适的参数。例如,在一些实施例中,存储在稀疏地图800中的地标可以包含参数,诸如地标的物理大小(例如,以支持基于已知大小/比例的到地标的距离的估计)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型——什么类型的方向标志、交通标志等)、GPS坐标(例如,支持全球定位)和任何其他合适的参数。每个参数可以与数据大小相关联。例如,可以使用8字节的数据来存储地标大小。可以使用12字节的数据来指定到先前地标的距离、横向偏移和高度。与诸如方向标志或交通标志的地标相关联的类型代码可以需要大约2字节的数据。对于一般标志,可以使用50字节的数据存储装置来存储使能识别一般标志的图像签名。地标GPS位置可以与16字节的数据存储装置相关联。每个参数的这些数据大小只是示例,也可以使用其他数据大小。
以这种方式在稀疏地图800中表示地标可以提供用于在数据库中有效地表示地标的精简方案。在一些实施例中,标志可以被称为语义标志和非语义标志。语义标志可以包含具有标准化含义的任何类别的标志(例如,限速标志、警告标志、方向标志等)。非语义标志可以包含与标准化含义不相关联的任何标志(例如,一般广告标志、标识商业机构的标志等)。例如,每个语义标志可以用38字节的数据来表示(例如,8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;2字节用于类型代码;以及16字节用于GPS坐标)。稀疏地图800可以使用标签系统来表示地标类型。在一些情况下,每个交通标志或方向标志可以与其自己的标签相关联,该标签可以作为地标标识的一部分存储在数据库中。例如,数据库可以包含大约1000个不同的标签来表示各种交通标志,以及大约10000个不同的标签来表示方向标志。当然,可以使用任何合适数量的标签,并且可以根据需要创建附加标签。在一些实施例中,一般用途标志可以使用小于约100字节(例如,约86字节,包含8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;50字节用于图像签名;以及16字节用于GPS坐标)。
因此,对于不需要图像签名的语义道路标志,即使以大约每50米1个的相对高的地标密度,对稀疏地图800的数据密度影响也可以是大约每千米760字节(例如,每千米20个地标×每地标38字节=760字节)。即使对于包含图像签名组件的一般用途标志,数据密度影响也约为每千米1.72千字节(例如,每千米20个地标×每地标86字节=1,720字节)。对于语义道路标志,这相当于对于行驶100km/hr的车辆的每小时约76kB的数据使用。对于一般用途标志,这相当于对于行驶100km/hr的车辆的每小时约170kB的数据使用。
在一些实施例中,诸如矩形标志的一般矩形对象可以在稀疏地图800中由不超过100字节的数据来表示。稀疏地图800中的一般矩形对象(例如,一般标志1040)的表示可以包含与一般矩形对象相关联的压缩(condensed)图像签名(例如,压缩图像签名1045)。这种压缩图像签名可以用于例如帮助一般标志的识别,例如作为辨识的地标。这种压缩图像签名(例如,从表示对象的实际图像数据导出的图像信息)可以避免存储对象的实际图像的需要,或者避免对实际图像执行比较图像分析以辨识地标的需要。
参考图10,稀疏地图800可以包含或存储与一般标志1040相关联的压缩图像签名1045,而不是一般标志1040的实际图像。例如,在图像捕获装置(例如,图像捕获装置122、124或126)捕获一般标志1040的图像之后,处理器(例如,可以处理图像的图像处理器190或任何其他处理器,其在主车辆上或相对于主车辆位于远处)可以执行图像分析以提取/创建包含与一般标志1040相关联的唯一签名或图案的压缩图像签名1045。在一个实施例中,压缩图像签名1045可以包含形状、颜色图案、亮度图案或可以从一般标志1040的图像中提取的用于描述一般标志1040的任何其他特征。
例如,在图10中,压缩图像签名1045中所示的圆形、三角形和星形可以表示不同颜色的区域。由圆形、三角形和星形表示的图案可以存储在稀疏地图800中,例如,在被指定为包含图像签名的50个字节内。值得注意的是,圆形、三角形和星形不一定意图指示这些形状作为图像签名的一部分被存储。相反,这些形状意图在概念上表示具有可辨别的颜色差异的可辨识区域、文本区域、图形形状或者可以与一般标志相关联的特性的其他变化。这种压缩图像签名可用于以一般标志的形式识别地标。例如,压缩图像签名可用于基于存储的压缩图像签名与例如使用自主车辆上的相机捕获的图像数据的比较来执行相同或不同的分析。
相应地,可以通过对当一个或多个车辆穿越道路路段时获取的多个图像进行图像分析来识别多个地标。如下面关于“众包”所解释的,在一些实施例中,识别多个地标的图像分析可以包含当地标确实出现的图像与地标没有出现的图像的比率超过阈值时接受潜在地标。此外,在一些实施例中,识别多个地标的图像分析可以包含当地标没有出现的图像与地标确实出现的图像的比率超过阈值时拒绝潜在地标。
回到主车辆可以用来导航特定道路路段的目标轨迹,图11A示出了在建造或维持稀疏地图800的过程中捕获的多项式表示轨迹。稀疏地图800中包含的目标轨迹的多项式表示可以基于车辆沿着相同道路路段的先前穿越的两个或更多个重建轨迹来确定。在一些实施例中,稀疏地图800中包含的目标轨迹的多项式表示可以是沿着相同道路路段的车辆的先前穿越的两个或更多个重建轨迹的聚集。在一些实施例中,稀疏地图800中包含的目标轨迹的多项式表示可以是车辆沿着相同道路路段的先前穿越的两个或更多个重建轨迹的平均。其他数学运算也可以用于基于从沿着道路路段穿越的车辆收集的重建轨迹来构建沿着道路路径的目标轨迹。
如图11A所示,道路路段1100可以由多个车辆200在不同时间处行驶。每个车辆200可以收集与车辆沿着道路路段所走的路径相关的数据。由特定车辆行驶的路径可以基于相机数据、加速度计信息、速度传感器信息和/或GPS信息以及其他潜在来源来确定。这种数据可用于重建沿着道路路段行驶的车辆的轨迹,并且基于这些重建轨迹,可为特定道路路段确定目标轨迹(或多个目标轨迹)。这种目标轨迹可以表示主车辆沿着道路路段行驶时的(例如,由自主导航系统所引导的)该车辆的优选路径。
在图11A所示的示例中,第一重建轨迹1101可以基于从在第一时间段(例如,第一天)穿越道路路段1100的第一车辆接收的数据来确定,第二重建轨迹1102可以从在第二时间段(例如,第二天)穿越道路路段1100的第二车辆获得,第三重建轨迹1103可以从在第三时间段(例如,第三天)穿越道路路段1100的第三车辆获得。每个轨迹1101、1102和1103可以由多项式表示,诸如三维多项式。应当注意,在一些实施例中,任何重建轨迹可以在穿越道路路段1100的车辆上组装。
附加地或替代地,可以基于从穿越道路路段1100的车辆接收的信息在服务器侧确定这样的重建轨迹。例如,在一些实施例中,车辆200可以向一个或多个服务器传输与它们沿着道路路段1100的运动相关的数据(例如,转向角、航向、时间、位置、速度、感测的道路几何结构和/或感测的地标等)。服务器可以基于接收到的数据重建车辆200的轨迹。服务器还可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103生成用于引导将在稍后的时间沿着相同道路路段1100行驶的自主车辆的导航的目标轨迹。虽然目标轨迹可以与道路路段的单个先前穿越相关联,但是在一些实施例中,稀疏地图800中包含的每个目标轨迹可以基于穿越相同道路路段的车辆的两个或更多个重建轨迹来确定。在图11A中,目标轨迹由1110表示。在一些实施例中,目标轨迹1110可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103的平均来生成。在一些实施例中,稀疏地图800中包含的目标轨迹1110可以是两个或更多个重建轨迹的聚集(例如,加权组合)。
图11B和图11C进一步示出了与地理区域1111内存在的道路路段相关联的目标轨迹的概念。如图11B所示,地理区域1111内的第一道路路段1120可以包含多车道道路,该多车道道路包含指定用于车辆在第一方向上行驶的两条车道1122和指定用于车辆在与第一方向相反的第二方向上行驶的两条附加车道1124。车道1122和车道1124可以由双黄线1123分开。地理区域1111还可以包含与道路路段1120相交的分支道路路段1130。道路路段1130可以包含双车道道路,每个车道被指定用于不同的行驶方向。地理区域1111还可以包含其他道路特征,诸如停车线1132、停车标志1134、限速标志1136和危险标志1138。
如图11C所示,稀疏地图800可以包含局部地图1140,该局部地图1140包含用于帮助地理区域1111内的车辆的自主导航的道路模型。例如,局部地图1140可以包含与地理区域1111内的道路路段1120和/或1130相关联的一个或多个车道的目标轨迹。例如,局部地图1140可以包含自主车辆在穿越车道1122时可以访问或依赖的目标轨迹1141和/或1142。类似地,局部地图1140可以包含自主车辆在穿越车道1124时可以访问或依赖的目标轨迹1143和/或1144。此外,局部地图1140可以包含自主车辆在穿越道路路段1130时可以访问或依赖的目标轨迹1145和/或1146。目标轨迹1147表示当从车道1120(具体而言,相对于与车道1120的最右侧车道相关联的目标轨迹1141)转换到道路路段1130(具体而言,相对于与道路路段1130的第一边相关联的目标轨迹1145)时,自主车辆应当遵循的优选路径。类似地,目标轨迹1148表示当从道路路段1130(具体地,相对于目标轨迹1146)转换到道路路段1124的一部分(具体地,如图所示,相对于与车道1124的左车道相关联的目标轨迹1143)时,自主车辆应当遵循的优选路径。
稀疏地图800还可以包含与地理区域1111相关联的其他道路相关特征的表示。例如,稀疏地图800还可以包含在地理区域1111中识别的一个或多个地标的表示。这些地标可以包含与停车线1132相关联的第一地标1150、与停车标志1134相关联的第二地标1152、与限速标志1154相关联的第三地标以及与危险标志1138相关联的第四地标1156。这种地标可以用于例如帮助自主车辆确定其相对于任何所示目标轨迹的当前定位,使得车辆可以调整其航向以匹配在确定的定位处的目标轨迹的方向。
在一些实施例中,稀疏地图800还可以包含道路签名轮廓。这种道路签名轮廓可以与至少一个与道路相关联的参数的任何可辨别/可测量的变化相关联。例如,在一些情况下,这种轮廓可以与道路表面信息的变化相关联,诸如特定道路路段的表面粗糙度的变化、特定道路路段上道路宽度的变化、沿着特定道路路段绘制的虚线之间的距离的变化、沿着特定道路路段的道路曲率的变化等。图11D示出了道路签名轮廓1160的示例。虽然轮廓1160可以表示上述参数中的任意参数或其他参数,但是在一个示例中,轮廓1160可以表示道路表面粗糙度的测量,例如,如通过监控一个或多个传感器来获得,该一个或多个传感器提供指示车辆在特定道路路段上行驶时悬架位移量的输出。
替代地或同时地,轮廓1160可以表示道路宽度的变化,如基于经由在特定道路路段上行驶的车辆上的相机获得的图像数据来确定的。例如,这种轮廓在确定自主车辆相对于特定目标轨迹的特定定位时是有用的。也就是说,当它穿越道路路段时,自主车辆可以测量与道路路段相关联的一个或多个参数相关联的轮廓。如果测量的轮廓可以与相对于沿着道路路段的位置映射参数变化的预定轮廓相关/匹配,则可以使用测量的和预定的轮廓(例如,通过覆盖测量的和预定的轮廓的对应部分),以便确定沿着道路路段的当前位置,并且因此确定相对于道路路段的目标轨迹的当前位置。
在一些实施例中,稀疏地图800可以包含基于与自主车辆的用户相关联的不同特性、环境条件和/或与驾驶相关的其他参数的不同轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或轮廓来生成不同的轨迹。包含这种不同轨迹的稀疏地图800可以被提供给不同用户的不同自主车辆。例如,一些用户可能偏好避开收费公路,而其他用户可能偏好走最短或最快的路线,而不管路线上是否有收费公路。所公开的系统可以基于这种不同的用户偏好或轮廓生成具有不同轨迹的不同稀疏地图。作为另一个示例,一些用户可能偏好在快速移动的车道上行驶,而其他用户可能偏好始终维持在中心车道上的位置。
基于不同的环境条件,诸如白天和黑夜、下雪、下雨、有雾等,可以生成不同的轨迹并将其包含在稀疏地图800中。在不同环境条件下行驶的自主车辆可以被提供有基于这种不同环境条件生成的稀疏地图800。在一些实施例中,在自主车辆上提供的相机可以检测环境条件,并且可以将这种信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包含在检测到的环境条件下可能更适合或更安全用于自主驾驶的轨迹。当自主车辆沿着道路行驶时,可以动态地执行基于环境条件的稀疏地图800的更新。
与驾驶相关的其他不同参数也可以用作生成不同的稀疏地图并将不同的稀疏地图提供给不同的自主车辆的基础。例如,当自主车辆以高速行驶时,转弯可能会更困难(tighter)。与特定车道而不是道路相关联的轨迹可以被包含在稀疏地图800中,使得当车辆遵循特定轨迹时,自主车辆可以维持在特定车道内。当由自主车辆上的相机捕获的图像指示车辆已经漂移到车道之外(例如,越过车道标志)时,可以在车辆内触发动作,以根据特定轨迹将车辆带回指定车道。
众包稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,所公开的系统和方法可以使用众包数据来生成稀疏,一个或多个自主车辆可以使用该稀疏来沿着道路的系统进行导航。如本文所使用的,“众包”意味着从在不同时间处在道路路段上行驶的各种车辆(例如,自主车辆)接收数据,并且这些数据被用于生成和/或更新道路模型。模型又可以被传输到稍后沿着道路路段行驶的车辆或其他车辆,以用于辅助自主车辆导航。道路模型可以包含多个目标轨迹,这些目标轨迹表示自主车辆在穿越道路路段时应当遵循的优选轨迹。目标轨迹可以与从穿越道路路段的车辆收集的重建的实际轨迹相同,其可以从车辆传输到服务器。在一些实施例中,目标轨迹可以不同于一个或多个车辆先前在穿越道路路段时所采用的实际轨迹。目标轨迹可以基于实际轨迹生成(例如,通过平均或任何其他合适的操作)。
车辆可以上传到服务器的车辆轨迹数据可以与车辆的实际重建轨迹对应,或者可以对应于推荐轨迹,该推荐轨迹可以基于车辆的实际重建轨迹或与之相关,但是可以不同于实际重建轨迹。例如,车辆可以修改它们的实际重建轨迹,并且向服务器提交(例如,推荐)修改的实际轨迹。道路模型可以使用推荐的、修改的轨迹作为其他车辆自主导航的目标轨迹。
除了轨迹信息之外,在建造稀疏数据地图800中潜在使用的其他信息可以包含与潜在地标候选相关的信息。例如,通过信息的众包,所公开的系统和方法可以识别环境中的潜在地标并细化地标位置。自主车辆的导航系统可以使用这些地标来确定和/或调整车辆沿着目标轨迹的位置。
车辆沿着道路行驶时可以生成的重建轨迹可以通过任何合适的方法获得。在一些实施例中,重建轨迹可以通过使用例如自我运动估计(例如,相机(以及由此的车身)的三维平移和三维旋转)将车辆的运动的路段拼接(stitch)在一起来产生。旋转和平移估计可以基于对由一个或多个图像捕获装置捕获的图像以及来自其他传感器或装置(诸如惯性传感器和速度传感器)的信息的分析来确定。例如,惯性传感器可以包含加速度计或其他合适的传感器,其被配置为测量车身平移和/或旋转的改变。车辆可以包含测量车辆的速度的速度传感器。
在一些实施例中,可以基于所捕获图像的光流分析来估计相机(以及由此的车身)的自我运动。图像序列的光流分析从图像序列中识别像素的移动,并且基于所识别的运动,确定车辆的运动。自我运动可以随着时间和沿着道路路段被积分,以重建与车辆已经遵循的道路路段相关联的轨迹。
沿着道路路段在不同时间处由多个驾驶中的多个车辆收集的数据(例如,重建轨迹)可用于构建包含在稀疏数据地图800中的道路模型(例如,包含目标轨迹等)。还可以对沿着道路路段在不同时间处由多个驾驶中的多个车辆收集的数据进行平均,以提高模型的准确度。在一些实施例中,可以从在不同时间处穿越公共道路路段的多个车辆接收关于道路几何结构和/或地标的数据。从不同车辆接收的这种数据可以被组合以生成道路模型和/或更新道路模型。
沿着道路路段的重建轨迹(以及目标轨迹)的几何结构可以由三维空间中的曲线表示,该曲线可以是连接三维多项式的样条。重建轨迹曲线可以通过分析由安装在车辆上的相机捕获的视频流或多个图像来确定。在一些实施例中,在车辆当前位置前方几米的每个帧或图像中识别定位。该定位是车辆预期在预定时间段内行驶的位置。该操作可以逐帧重复,同时,车辆可以计算相机的自我运动(旋转和平移)。在每一帧或每一个图像中,车辆在附接到相机的参考帧中生成期望路径的短程模型。短程模型可以被拼接在一起,以在某个坐标系中获得道路的三维模型,该坐标系可以是任意的或预定的坐标系。然后,道路的三维模型可以由样条拟合,该样条可以包含或连接一个或多个合适阶数的多项式。
为了在每个帧处总结短程道路模型,可以使用一个或多个检测模块。例如,可以使用自底向上(bottom-up)的车道检测模块。当在道路上映射车道标志时,自底向上的车道检测模块可以是有用的。该模块可以在图像中寻找边缘,并将它们组装在一起以形成车道标志。第二模块可以与自底向上车道检测模块一起使用。第二模块是端到端深度神经网络,其可以被训练以从输入图像预测正确的短程路径。在这两个模块中,道路模型可以在图像坐标系中被检测,并且被变换成可以虚拟地附接到相机的三维空间。
尽管重建轨迹建模方法可能由于长时间段的自我运动的积分而引入误差的累积,这可能包含噪声分量,但是这种误差可能是无关紧要的,因为生成的模型可以为局部比例上的导航提供足够的准确度。此外,还可以通过使用卫星图像或大地测量等外部信息源来消除积分误差。例如,所公开的系统和方法可以使用GNSS接收器来消除累积误差。然而,GNSS定位信号可能并不总是可用的和准确的。所公开的系统和方法可以使能很弱地依赖于GNSS定位的可用性和准确度的转向应用。在这种系统中,GNSS信号的使用可能受到限制。例如,在一些实施例中,所公开的系统可以将GNSS信号仅用于数据库索引目的。
在一些实施例中,与自主车辆导航转向应用相关的范围比例(例如,局部比例)可以大约为50米、100米、200米、300米等。可以使用这样的距离,因为几何道路模型主要用于两个目的:计划前方轨迹和在道路模型上定位车辆。在一些实施例中,当控制算法根据位于前方1.3秒(或任何其他时间,例如1.5秒、1.7秒、2秒等)的目标点使车辆转向时,计划任务可以使用在前方40米(或任何其他合适的前方距离,例如20米、30米、50米)的典型范围内的模型。定位任务使用在汽车后60米(或任何其他合适的距离,诸如50米、100米、150米等)的典型范围内的道路模型。根据另一章节中更详细描述的称为“尾部对齐”的方法。所公开的系统和方法可以生成在特定范围(诸如100米)上具有足够准确度的几何模型,使得计划的轨迹不会偏离车道中心超过例如30厘米。
如上所述,可以根据检测短程部分并将它们拼接在一起来构建三维道路模型。可以通过使用相机捕获的视频和/或图像、来自反映车辆的运动的惯性传感器的数据以及主车辆速度信号来计算六度自我运动模型来使能拼接。累积误差在某个局部范围比例(诸如大约100米)上可能足够小。所有这些都可以在特定道路路段上的单个驾驶中完成。
在一些实施例中,可以使用多个驾驶来对得到的模型进行平均,并进一步提高其准确度。相同汽车可以多次行驶相同路线,或者多辆汽车可以将它们收集到的模型数据传送到中央服务器。在任何情况下,可以执行匹配过程来识别重叠的模型并使能平均,以便生成目标轨迹。一旦满足收敛标准,构建的模型(例如,包含目标轨迹)可用于转向。后续驾驶可用于进一步的模型改进和适应基础设施改变。
如果多辆汽车连接到一个中央服务器,则它们之间共享驾驶经验(诸如感测的数据)变得可行。每个车辆客户端可以存储一般道路模型的部分副本,该副本可以与其当前位置相关。车辆和服务器之间的双向更新过程可以由车辆和服务器执行。上面讨论的小足迹概念使得所公开的系统和方法能够使用非常小的带宽来执行双向更新。
还可以确定与潜在地标相关的信息,并将其转发给中央服务器。例如,所公开的系统和方法可以基于包含地标的一个或多个图像来确定潜在地标的一个或多个物理属性。物理属性可以包含地标的物理大小(例如,高度、宽度)、从车辆到地标的距离、地标到先前地标之间的距离、地标的横向位置(例如,地标相对于行驶的车道的位置)、地标的GPS坐标、地标的类型、地标上的文本标识等。例如,车辆可以分析由相机捕获的一个或多个图像,以检测潜在地标,诸如限速标志。
车辆可以基于对一个或多个图像的分析来确定从车辆到地标的距离。在一些实施例中,可以使用合适的图像分析方法,例如缩放方法和/或光流方法,基于对地标的图像的分析来确定距离。在一些实施例中,所公开的系统和方法可以被配置为确定潜在地标的类型或分类。在车辆确定某潜在地标对应于存储在稀疏地图中的预定类型或分类的情况下,车辆将地标的类型或分类的指示连同其定位传达给服务器就足够了。服务器可以存储这样的指示。在稍后的时间,其他车辆可以捕获地标的图像,处理该图像(例如,使用分类器),并将处理该图像的结果与存储在服务器中的关于地标类型的指示进行比较。可以有各种类型的地标,并且不同类型的地标可以与上传到服务器并存储在服务器中的不同类型的数据相关联,车辆上的不同处理可以检测地标并将关于地标的信息传达到服务器,并且车辆上的系统可以从服务器接收地标数据并使用地标数据以用于在自主导航中识别地标。
在一些实施例中,在道路路段上行驶的多个自主车辆可以与服务器通信。车辆(或客户端)可以在任意坐标系中生成描述其驾驶的曲线(例如,通过自我运动积分)。车辆可以检测地标并在相同帧中定位它们。车辆可以将曲线和地标上传到服务器。服务器可以通过多个驾驶从车辆收集数据,并生成统一的道路模型。或者例如,如下面参考图19所讨论的,服务器可以使用上传的曲线和地标生成具有统一道路模型的稀疏地图。
服务器还可以将模型分配给客户端(例如,车辆)。例如,服务器可以将稀疏地图分配给一个或多个车辆。当从车辆接收到新数据时,服务器可以连续或周期性地更新模型。例如,服务器可以处理新数据以评估该数据是否包含应当触发服务器上新数据的更新或创建的信息。服务器可以将更新后的模型或更新分配给车辆,以用于提供自主车辆导航。
服务器可以使用一个或多个标准来确定从车辆接收的新数据是否应当触发对模型的更新或者触发新数据的创建。例如,当新数据指示在特定定位的先前辨识的地标不再存在,或者被另一个地标替换时,服务器可以确定新数据应当触发对模型的更新。作为另一个示例,当新数据指示道路路段已经关闭,并且当这已经被从其他车辆接收的数据证实时,服务器可以确定新数据应当触发对模型的更新。
服务器可以将更新后的模型(或模型的更新部分)分配给在与模型更新相关联的道路路段上行驶的一个或多个车辆。服务器还可以将更新后的模型分配给将要在道路路段上行驶的车辆,或者其计划行程包含与模型更新相关联的道路路段的车辆。例如,当自主车辆在到达与更新相关联的道路路段之前沿着另一道路路段行驶时,服务器可以在车辆到达道路路段之前将更新或更新后的模型分配给自主车辆。
在一些实施例中,远程服务器可以从多个客户端(例如,沿着公共道路路段行驶的车辆)收集轨迹和地标。服务器可以使用地标匹配曲线,并且基于从多个车辆收集的轨迹创建平均道路模型。服务器还可以计算道路的图和道路路段的每个节点或连接处的最可能路径。例如,远程服务器可以对齐轨迹以从收集的轨迹生成众包稀疏地图。
服务器可以对从沿着公共道路路段行驶的多个车辆接收的地标属性进行平均,诸如由多个车辆测量的一个地标到另一个地标(例如,沿着道路路段的前一个地标)之间的距离,以确定弧长参数并支持每个客户端车辆沿着路径的定位和速度校准。服务器可以对由沿着公共道路路段行驶并辨识相同地标的多个车辆测量的地标的物理尺寸进行平均。平均物理尺寸可用于支持距离估计,诸如从车辆到地标的距离。服务器可以对由沿着公共道路路段行驶并辨识相同地标的多个车辆测量的地标的横向位置(例如,从车辆正在行驶的车道到地标的位置)进行平均。平均横向部分可用于支持车道分配。服务器可以对由沿着相同道路路段行驶并辨识相同地标的多个车辆测量的地标的GPS坐标进行平均。地标的平均GPS坐标可用于支持道路模型中地标的全球定位(localization)或定位(positioning)。
在一些实施例中,基于从车辆接收的数据,服务器可以识别模型改变,诸如构建、绕行、新标志、标志的移除等。当从车辆接收到新数据时,服务器可以连续地或周期性地或瞬时地更新模型。服务器可以将对模型的更新或更新后的模型分配给车辆,以用于提供自主导航。例如,如下面进一步讨论的,服务器可以使用众包数据来过滤掉由车辆检测到的“幽灵(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”相关联,该数字值“3”指示车辆正在从左侧或右侧的第三车道上行驶。作为另一个示例,车道分配可以与文本值“中心车道”相关联,该文本值指示车辆正在中心车道上行驶。
服务器1230可以将导航信息存储在非暂时性计算机可读介质上,诸如硬盘驱动器、光盘、磁带、存储器等。服务器1230可以基于从多个车辆1205、1210、1215、1220和1225接收的导航信息,为公共道路路段1200生成(例如,通过包含在服务器1230中的处理器)自主车辆道路导航模型的至少一部分,并且可以将该模型存储为稀疏地图的一部分。服务器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-t1)。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中V是车辆的速度,R是图像中地标和扩展焦点之间的距离,dt是时间间隔,D是地标沿着核线的图像位移。与上述等式等效的其他等式,诸如Z=V*ω/Δω,可以用于估计到地标的距离。这里,V是车辆速度,ω是图像长度(类似对象宽度),Δω是该图像长度在单位时间内的改变。
当地标的物理大小已知时,到地标的距离也可以基于以下等式来确定:Z=f*W/ω,其中f为焦距,W为地标的大小(如高度或宽度),ω为地标离开图像时的像素数。根据上述等式,可以使用ΔZ=f*W*Δω/ω2+f*ΔW/ω来计算距离Z的改变,其中ΔW通过平均而衰减到零,并且其中Δω是表示图像中边界框准确度的像素数。可以通过平均服务器侧的多个观测来计算估计地标的物理大小的值。距离估计的最终误差可以非常小。使用上述等式时,可能出现两个误差源,即ΔW和Δω。它们对距离误差的贡献由ΔZ=f*W*Δω/ω2+f*ΔW/ω给出。然而,ΔW通过平均衰减到零;因此ΔZ由Δω(例如,图像中边界框的不准确度)确定。
对于未知尺寸的地标,可以通过在连续帧之间跟踪地标上的特征点来估计到地标的距离。例如,可以在两个或更多个图像帧之间跟踪出现在限速标志上的某些特征。基于这些跟踪的特征,可以生成每特征点的距离分布。距离估计可以从距离分布中提取。例如,距离分布中最频繁出现的距离可以用作距离估计。作为另一个示例,距离分布的平均可以用作距离估计。
图13示出了由多个三维样条1301、1302和1303表示的示例自主车辆道路导航模型。图13中所示的曲线1301、1302和1303仅用于说明目的。每个样条可以包含连接多个数据点1310的一个或多个三维多项式。每个多项式可以是一阶多项式、二阶多项式、三阶多项式或具有不同阶数的任何合适多项式的组合。每个数据点1310可以与从车辆1205、1210、1215、1220和1225接收的导航信息相关联。在一些实施例中,每个数据点1310可以与与地标(例如,地标的大小、定位和识别信息)和/或道路签名轮廓(例如,道路几何结构、道路粗糙度轮廓、道路曲率轮廓、道路宽度轮廓)相关的数据相关联。在一些实施例中,一些数据点1310可以与地标相关的数据相关联,而其他数据点可以与道路签名轮廓相关的数据相关联。
图14示出了从五个分离的驾驶接收的原始定位数据1410(例如,GPS数据)。如果一个驾驶同时被分离的车辆在相同的时间、被相同车辆在分离的时间、或被分离的车辆在分离的时间穿越,则该驾驶可以与另一驾驶分开。为了考虑定位数据1410中的误差以及相同车道内车辆的不同定位(例如,一个车辆可能比另一车辆更靠近车道的左侧),服务器1230可以使用一个或多个统计技术来生成地图骨架1420,以确定原始定位数据1410中的变化是否表示实际的偏离或统计误差。骨架1420内的每个路径可以链接回形成该路径的原始数据1410。例如,骨架1420内的A和B之间的路径链接到来自驾驶2、3、4和5而不是来自驾驶1的原始数据1410。骨架1420可以不足够详细以用于导航车辆(例如,因为与上述样条不同,骨架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和定位(locating)装置1703(例如,GPS定位器)。相机1701和定位装置1703可以安装在车辆上(例如,车辆1205、1210、1215、1220和1225之一)。相机1701可以产生多个多种类型的数据,例如,自我运动数据、交通标志数据、道路数据等。相机数据和定位数据可以被分段成驾驶路段1705。例如,驾驶路段1705可以各自具有来自少于1千米的驾驶的相机数据和定位数据。
在一些实施例中,系统1700可以移除驾驶路段1705中的冗余。例如,如果地标出现在来自相机1701的多个图像中,则系统1700可以去除冗余数据,使得驾驶路段1705仅包含地标的定位的一个副本和与地标相关的任何元数据。作为进一步的示例,如果车道标志出现在来自相机1701的多个图像中,系统1700可以去除冗余数据,使得驾驶路段1705仅包含车道标志的定位的一个副本和与车道标志相关的任何元数据。
系统1700还包含服务器(例如,服务器1230)。服务器1230可以从车辆接收驾驶路段1705,并将驾驶路段1705重组为单个驾驶1707。当在车辆和服务器之间传输数据时,这种布置可以减少带宽需求,同时还允许服务器存储与整个驾驶相关的数据。
图18描绘了进一步被配置用于众包稀疏地图的图17的系统1700。如图17所示,系统1700包含车辆1810,其使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如GPS定位器)来捕获驾驶数据。如图17所示,车辆1810将收集的数据分段成驾驶路段(在图18中描绘为“DS1 1”、“DS2 1”、“DSN 1”)。然后,服务器1230接收驾驶路段,并从接收到的路段重建驾驶(在图18中被描述为“驾驶1”)。
如图18中进一步描绘的,系统1700还从附加车辆接收数据。例如,车辆1820还使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如GPS定位器)来捕获驾驶数据。类似于车辆1810,车辆1820将收集的数据分段成驾驶路段(在图18中描绘为“DS1 2”、“DS22”、“DSN 2”)。然后,服务器1230接收驾驶路段,并从接收到的路段重建驾驶(在图18中被描述为“驾驶2”)。可以使用任何数量的附加车辆。例如,图18还包括“汽车N”,该“汽车N”捕获驾驶数据,将其分段成驾驶路段(在图18中描绘为“DS1 N”、“DS2N”、“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上的处理器移除冗余的被剥离(stripped down)的图像数据,如上文参考图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可以包含通信单元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,服务器1230可以包含存储器2015。存储器2015可以类似于或不同于存储器140或150。存储器2015可以是非暂时性存储器,诸如闪速存储器、随机存取存储器等。存储器2015可以被配置为存储数据,诸如可由处理器(例如,处理器2020)执行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主车辆道路导航模型和/或从车辆1205、1210、1215、1220和1225接收的导航信息。
服务器1230可以包含至少一个处理装置2020,该至少一个处理装置2020被配置为执行存储在存储器2015中的计算机代码或指令,以执行各种功能。例如,处理装置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的目标轨迹。这样的操作可以包含在每个聚类中找到聚类的车辆轨迹的均值(mean)或平均(average)轨迹(例如,通过平均表示聚类的车辆轨迹的数据)。在一些实施例中,目标轨迹可以与公共道路路段1200的单个车道相关联。
道路模型和/或稀疏地图可以存储与道路路段相关联的轨迹。这些轨迹可以被称为目标轨迹,其被提供给自主车辆用于自主导航。目标轨迹可以从多个车辆接收,或者可以基于从多个车辆接收的实际轨迹或推荐轨迹(具有一些修改的实际轨迹)生成。道路模型或稀疏地图中包含的目标轨迹可以用从其他车辆接收的新轨迹连续更新(例如,平均)。
在道路路段上行驶的车辆可以通过各种传感器收集数据。该数据可以包含地标、道路签名轮廓、车辆运动(例如,加速度计数据、速度数据)、车辆位置(例如,GPS数据),并且可以重建实际轨迹本身,或者将数据传输到服务器,该服务器将重建车辆的实际轨迹。在一些实施例中,车辆可以向服务器1230传输与轨迹(例如,任意参考帧中的曲线)、地标数据和沿着行驶路径的车道分配相关的数据。以多种驾驶方式沿相同道路路段行驶的各种车辆可以具有不同的轨迹。服务器1230可以从通过聚类过程从车辆接收的轨迹中识别与每个车道相关联的路线或轨迹。
图22示出了聚类与车辆1205、1210、1215、1220和1225相关联的车辆轨迹以用于确定公共道路路段(例如,道路路段1200)的目标轨迹的过程。从聚类过程确定的目标轨迹或多个目标轨迹可以包含在自主车辆道路导航模型或稀疏地图800中。在一些实施例中,沿着道路路段1200行驶的车辆1205、1210、1215、1220和1225可以向服务器1230传输多个轨迹2200。在一些实施例中,服务器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秒)。反过来,从转向和实际导航测量的数据可用于估计六个自由度定位。
在一些实施例中,沿着道路的杆(pole),诸如灯柱和电力或电缆线杆可以用作定位车辆的地标。诸如交通标志、交通灯、道路上的箭头、停车线以及沿着道路路段的对象的静态特征(feature)或签名(signature)的其他地标也可以用作定位车辆的地标。当杆用于定位时,可以使用杆的x观察(即从车辆的视角),而不是y观察(即到杆的距离),因为杆的底部可能被遮挡,有时它们不在道路平面上。
图23示出了用于车辆的导航系统,其可以用于使用众包稀疏地图的自主导航。为了说明,车辆被称为车辆1205。图23中所示的车辆可以是本文公开的任何其他车辆,包含例如车辆1210、1215、1220和1225,以及其他实施例中所示的车辆200。如图12所示,车辆1205可以与服务器1230通信。车辆1205可以包含图像捕获装置122(例如,相机122)。车辆1205可以包含导航系统2300,该导航系统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,该至少一个处理器2315被配置为处理数据,诸如GPS信号、来自稀疏地图800的地图数据(其可以存储在车辆1205上提供的存储装置上和/或从服务器1230接收)、由道路轮廓传感器2330感测的道路几何结构、由相机122捕获的图像和/或从服务器1230接收的自主车辆道路导航模型。道路轮廓传感器2330可以包含用于测量不同类型的道路轮廓(诸如道路表面粗糙度、道路宽度、道路高度、道路曲率等)的不同类型的装置。例如,道路轮廓传感器2330可以包含测量车辆的悬架2305的运动以推导道路粗糙度轮廓的装置。在一些实施例中,道路轮廓传感器2330可以包含雷达传感器,以测量从车辆1205到道路边(例如,道路边上的障碍物)的距离,从而测量道路的宽度。在一些实施例中,道路轮廓传感器2330可以包含被配置用于测量道路的上下标高的装置。在一些实施例中,道路轮廓传感器2330可以包含被配置为测量道路曲率的装置。例如,相机(例如,相机122或另一个相机)可以用于捕获示出道路曲率的道路图像。车辆1205可以使用这样的图像来检测道路曲率。
至少一个处理器2315可以被编程为从相机122接收与车辆1205相关联的至少一个环境图像。至少一个处理器2315可以分析至少一个环境图像以确定与车辆1205相关的导航信息。导航信息可以包含与车辆1205沿着道路路段1200行驶相关的轨迹。至少一个处理器2315可以基于相机122(以及由此的车辆)的运动来确定轨迹,例如三维平移和三维旋转运动。在一些实施例中,至少一个处理器2315可以基于对由相机122获取的多个图像的分析来确定相机122的平移和旋转运动。在一些实施例中,导航信息可以包含车道分配信息(例如,车辆1205沿着道路路段1200行驶在哪个车道中)。从车辆1205传输到服务器1230的导航信息可以被服务器1230用来生成和/或更新自主车辆道路导航模型,该模型可以从服务器1230传输回车辆1205,以用于为车辆1205提供自主导航引导。
至少一个处理器2315还可以被编程为将导航信息从车辆1205传输到服务器1230。在一些实施例中,导航信息可以与道路信息一起被传输到服务器1230。道路定位信息可以包含由GPS单元2310接收的GPS信号、地标信息、道路几何结构、车道信息等中的至少一个。至少一个处理器2315可以从服务器1230接收自主车辆道路导航模型或模型的一部分。从服务器1230接收的自主车辆道路导航模型可以包含基于从车辆1205传输到服务器1230的导航信息的至少一个更新。从服务器1230传输到车辆1205的模型部分可以包含模型的更新部分。至少一个处理器2315可以基于接收到的自主车辆道路导航模型或模型的更新部分来引起车辆1205的至少一个导航操纵(例如,转向,诸如转弯、制动、加速、经过另一车辆等)。
至少一个处理器2315可以被配置为与车辆1205中包含的各种传感器和组件通信,包含通信单元1705、GPS单元2315、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330。至少一个处理器2315可以从各种传感器和组件收集信息或数据,并通过通信单元2305将信息或数据传输到服务器1230。替代地或附加地,车辆1205的各种传感器或组件也可以与服务器1230通信,并将由传感器或组件收集的数据或信息传输到服务器1230。
在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此通信,并且可以彼此共享导航信息,使得车辆1205、1210、1215、1220和1225中的至少一个可以例如基于由其他车辆共享的信息,使用众包生成自主车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此共享导航信息,并且每个车辆可以更新其自己的车辆中提供的自主车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225中的至少一个(例如,车辆1205)可以用作中枢车辆(hub vehicle)。中枢车辆(例如,车辆1205)的至少一个处理器2315可以执行由服务器1230执行的一些或所有功能。例如,中枢车辆的至少一个处理器2315可以与其他车辆通信,并从其他车辆接收导航信息。中枢车辆的至少一个处理器2315可以基于从其他车辆接收的共享信息生成自主车辆道路导航模型或对模型的更新。中枢车辆的至少一个处理器2315可以将自主车辆道路导航模型或对模型的更新传输到其他车辆,以提供自主导航引导。
映射车道标志以及基于映射车道标志的导航
如前所述,自主车辆道路导航模型和/或稀疏地图800可以包括与道路路段相关联的多个映射车道标志。如下文更详细讨论的,当自主车辆导航时,可以使用这些映射车道标志。例如,在一些实施例中,映射车道标志可用于确定相对于计划轨迹的横向位置和/或朝向。利用该位置信息,自主车辆能够调整航向方向以匹配在确定位置处的目标轨迹的方向。
车辆200可以被配置为检测给定道路路段中的车道标志。道路路段可以包括道路上的用于引导道路上的车辆交通的任何标志。例如,车道标志可以是区别行驶车道的边缘的实线或虚线。车道标志还可以包括双线,诸如双实线、双虚线或者实线和虚线的组合,以指示例如在相邻车道中是否允许超车(passing)。车道标志还可以包括指示例如出口匝道的减速车道的高速公路入口和出口标志,或者指示车道为仅转弯或车道即将结束的虚线。标志还可以指示工作区、临时变道、通过交叉路口的行驶路径、中央分隔带、专用车道(例如,自行车道、HOV车道等)、或其他各种标志(例如,人行横道、减速丘(speed hump)、铁路道口(railway crossign)、停车线等)。
车辆200可以使用相机,诸如包括在图像获取单元120中的图像捕获装置122和124,来捕获周围车道标志的图像。车辆200可以基于在一个或多个捕获的图像中识别的特征来分析图像,以检测与车道标志相关联的点定位。这些点定位可以被上传到服务器以表示稀疏地图800中的车道标志。取决于相机的位置和视场,可以从单个图像中同时检测车辆两侧的车道标志。在其他实施例中,不同的相机可以用于在车辆的多个侧面上捕获图像。可以将车道标志存储为稀疏地图800中的样条或一系列点,而不是上传这些标志的实际图像,从而减小稀疏地图800的大小和/或必须由车辆远程上传的数据。
图24A-图24D示出了可由车辆200检测以表示特定车道标志的示例性点定位。类似于如上所述的地标,车辆200可以使用各种图像辨识算法或软件来识别捕获的图像内的点定位。例如,车辆200可以辨识与特定车道标志相关联的一系列边缘点、拐角点或各种其他点定位。图24A示出了车辆200可以检测到的实线车道标志2410。车道标志2410可以表示道路的外侧边缘,由白色实线表示。如图24A所示,车辆200可以被配置为检测沿着车道标志的多个边缘定位点2411。定位点2411可以被收集来以足以在稀疏地图中创建映射车道标志的任何间隔处表示车道标志。例如,车道标志可以由检测到的边缘的每米一个点、检测到的边缘的每五米一个点或者以其他合适的间距来表示。在一些实施例中,间距可以由其他因素确定,而不是以设定的间隔确定,诸如例如基于在该处车辆200对检测到的点的定位具有最高置信度排序的点来确定。虽然图24A示出了车道标志2410的内部边缘上的边缘定位点,这些点可以在线的外部边缘上或者沿着两个边缘被收集。此外,虽然在图24A中示出了单个线,但是对于双实线可以检测到相似的边缘点。例如,可以沿着一条或两条实线的边缘来检测点2411。
取决于车道标志的类型或形状,车辆200也可以不同地表示车道标志。图24B示出了可由车辆200检测的示例性虚线车道标志2420。车辆可以检测表示车道虚线的拐角的一系列拐角点2421,以定义虚线的完全边界,而不是像图24A中那样识别边缘点。虽然图24B示出了被定位的给定虚线标志的每个拐角,但是车辆200可以检测或上传图中所示的点的子集。例如,车辆200可以检测给定虚线标志的前边缘(leading edge)或前角(leadingcorner),或者可以检测最靠近车道内部的两个拐角点。此外,不是每个虚线标志都可以被捕获,例如,车辆200可以捕获和/或记录表示虚线标志的(例如,每隔一个、每三个、每五个等)样本的点,或者表示预定间距(例如,每米、每五米、每十米等)的虚线标志的点。也可以检测类似的车道标志(诸如显示车道是用于出口匝道的标志、特定车道即将结束的标志、或者可以具有可检测的拐角点的其他各种车道标志)的拐角点。也可以检测由双虚线或者实线和虚线的组合组成的车道标志的拐角点。
在一些实施例中,被上传到服务器以生成映射车道标志的点可以表示除了检测到的边缘点或拐角点之外的其他点。图24C示出了可以表示给定车道标志的中心线的一系列点。例如,实线车道2410可以由沿着车道标志的中心线2440的中心线点2441表示。在一些实施例中,车辆200可以被配置为使用各种图像辨识技术(诸如卷积神经网络(convolutionalneural network,CNN)、尺度不变特征变换(scale-invariant feature transform,SIFT)、定向梯度直方图(histogram of oriented gradient,HOG)特征或其他技术)来检测这些中心点。替代地,车辆200可以检测其他点,诸如图24A所示的边缘点2411,并且可以例如通过检测沿着每个边缘的点并确定边缘点之间的中点来计算中心线点2441。类似地,虚线车道标志2420可以由沿着车道标志的中心线2450的中心线点2451表示。中心线点可以位于虚线的边缘,如24C图所示,或者沿着中心线的各种其他定位。例如,每个虚线可以由虚线的几何中心的单个点来表示。这些点也可以沿着中心线以预定间隔(例如,每米、每5米、每10米等)间距开。中心线点2451可以由车辆200直接检测,或者可以基于其他检测到的参考点(诸如拐角点2421)来计算,如图24B所示。使用与如上所述的技术类似的技术,中心线也可用于表示其他车道标志类型,诸如双线。
在一些实施例中,车辆200可以识别表示其他特征的点,诸如两个相交车道标志之间的顶点。图24D示出了表示两个车道标志2460和2465之间的交叉路口的示例性点。车辆200可以计算表示两个车道标志之间的交叉路口的顶点2466。例如,车道标志2460或2465中的一个可以表示路段中的列车交叉区域或其他交叉区域。虽然车道标志2460和2465被示为彼此垂直交叉,但是可以检测各种其他配置。例如,车道标志2460和2465可以以其他角度交叉,或者一个或两个车道标志可以终止于顶点2466。类似的技术也可以应用于虚线或其他车道标志类型之间的交叉路口。除了顶点2466之外,还可以检测各种其他点2467,从而提供关于车道标志2460和2465的朝向的进一步信息。
车辆200可以将现实世界坐标与车道标志的每个检测点相关联。例如,可以生成定位标识符(包括每个点的坐标)以上传到服务器以用于映射车道标志。定位标识符还可以包括关于点的其他识别信息,包括点是否表示拐角点、边缘点、中心点等。因此,车辆200可以被配置为基于对图像的分析来确定每个点的现实世界位置。例如,车辆200可以检测图像中的其他特征(诸如如上所述的各种地标)以定位车道标志的现实世界位置。这可以包括确定车道标志在图像中相对于检测到的地标的定位,或者基于检测到的地标来确定车辆的位置,然后确定从车辆(或车辆的目标轨迹)到车道标志的距离。当地标不可用时,车道标志点的定位可以相对于基于航位推算(dead reckoning)确定的车辆位置来确定。被包括在定位标识符中的现实世界坐标可以被表示为绝对坐标(例如,纬度/经度坐标),或者可以相对于其他特征,诸如基于沿着目标轨迹的纵向位置和距目标轨迹的横向距离。定位标识符然后可以被上传到服务器以用于在导航模型(诸如稀疏地图800)中生成映射车道标志。在一些实施例中,服务器可以构造表示道路路段的车道标志的样条。替代地,车辆200可以生成样条并将其上传到服务器以记录在导航模型中。
图24E示出了包括映射车道标志的相对应的道路路段的示例性导航模型或稀疏地图。稀疏地图可以包括车辆沿着道路路段所遵循的目标轨迹2475。如上所述,目标轨迹2475可以表示车辆在相对应的道路路段行驶时所采取的理想路径,或者可以位于道路上的其他地方(例如,道路的中心线等)。目标轨迹2475可以用如上所述的各种方法来计算,例如,基于车辆穿越相同道路路段的两个或更多个重建轨迹的聚集(例如,加权组合)来计算。
在一些实施例中,可以针对所有车辆类型和针对所有道路、车辆和/或环境情况同等地生成目标轨迹。然而,在其他实施例中,在生成目标轨迹时也可以考虑各种其他因素或变量。可以针对不同类型的车辆(例如,私家车、轻型卡车和全挂车)生成不同的目标轨迹。例如,与较大的半挂式卡车相比,可以针对小的私家车生成转弯半径相对较小的目标轨迹。在一些实施例中,也可以考虑道路、车辆和环境情况。例如,可以针对不同的道路情况(例如,潮湿、下雪、结冰、干燥等)、车辆情况(例如,轮胎情况或估计轮胎情况、制动情况或估计制动情况、剩余燃料量等)、或者环境因素(例如,一天中的时间、能见度、天气等)生成不同的目标轨迹。目标轨迹还可以取决于特定道路路段的一个或多个方面或特征(例如,限速、转弯频率和大小、坡度等)。在一些实施例中,各种用户设定也可用于确定目标轨迹,诸如设定的驾驶模式(例如,期望的驾驶积极性、经济模式等)。
稀疏地图还可以包括表示沿着道路路段的车道标志的映射车道标志2470和2480。映射车道标志可以由多个定位标识符2471和2481表示。如上所述,定位标识符可以包括与检测到的车道标志相关联的点在现实世界坐标中的定位。类似于模型中的目标轨迹,车道标志也可以包括高程数据,并且可以被表示为三维空间中的曲线。例如,曲线可以是连接合适阶数的三维多项式的样条。曲线可以基于定位标识符来计算。映射车道标志还可以包括关于车道标志的其他信息或元数据,诸如车道标志的类型(例如,行驶方向相同的两个车道之间的车道标志、行驶方向相反的两条车道之间的车道标志、道路边缘等)的标识符和/或车道标志的其他特性(例如,实线、虚线、单线、双线、黄色、白色等)。在一些实施例中,例如,可以使用众包技术在模型内连续地更新映射车道标志。相同车辆可以在行驶相同道路路段的多个时机期间上传定位标识符,或者可以从在不同时间行驶该道路路段的多个车辆(诸如1205、1210、1215、1220和1225)中选择数据。稀疏地图800然后可以基于从车辆接收并存储在系统中的后续定位标识符来更新或细化。随着映射车道标志被更新和细化,更新后的道路导航模型和/或稀疏地图可以被分配给多个自主车辆。
在稀疏地图中生成映射车道标志还可以包括基于图像中或实际车道标志本身中的异常来检测和/或减轻误差。图24F示出了与检测车道标志2490相关联的示例性异常2495。异常2495可能出现在由车辆200从例如阻碍相机对车道标志的视野的对象、镜头上的碎屑等捕获的图像中。在一些情况下,异常可能是由于车道标志本身造成的,车道标志可能被损坏或磨损,或者被道路上的灰尘、碎屑、水、雪或其他材料部分地覆盖。异常2495可能导致车辆200所检测到的误差点2491。稀疏地图800可以提供正确的映射车道标志并排除误差。在一些实施例中,车辆200可以例如通过检测图像中的异常2495,或者通过基于异常前后的检测到的车道标志点识别误差,来检测误差点2491。基于检测到异常,车辆可以省略点2491,或者可以将其调整为与其他检测到的点一致。在其他实施例中,例如,通过基于在相同行程期间上传的其他点或者基于来自沿着相同道路路段的先前行程的数据的聚集确定该点在预期阈值之外,可以在该点已经上传之后校正该误差。
导航模型和/或稀疏地图中的映射车道标志也可用于穿越相对应的道路的自主车辆的导航。例如,沿着目标轨迹导航的车辆可以周期性地使用稀疏地图中的映射车道标志来将其自身与目标轨迹对齐。如上所述,在地标之间,车辆可以基于航位推算来导航,其中车辆使用传感器来确定其自我运动并估计其相对于目标轨迹的位置。误差可能随着时间的推移而累积,并且车辆相对于目标轨迹的位置确定可能变得越来越不准确。相应地,车辆可以使用出现在稀疏地图800中的车道标志(以及它们的已知定位)来减少位置确定中由航位推算引起的误差。以这种方式,被包括在稀疏地图800中的所识别的车道标志可以用作导航锚,可以从该导航锚确定车辆相对于目标轨迹的准确位置。
图25A示出了可用于基于映射车道标志的导航的车辆周围环境的示例性图像2500。图像2500可以例如由车辆200通过包括在图像获取单元120中的图像捕获装置122和124来捕获。图像2500可以包括至少一个车道标志2510的图像,如图25A所示。图像2500还可以包括一个或多个地标2521,诸如道路标志,以用于如上所述的导航。图25A中所示的没有出现在捕获图像2500中但是被车辆200检测和/或确定的一些元素(诸如元素2511、2530和2520)也被示出用于参考。
使用上面参考图24A-图24D和图24F描述的各种技术,车辆可以分析图像2500以识别车道标志2510。可以检测对应于图像中车道标志的特征的各种点2511。例如,点2511可以对应于车道标志的边缘、车道标志的拐角、车道标志的中点、两个相交车道标志之间的顶点或各种其他特征或定位。点2511可以被检测为对应于存储在从服务器接收的导航模型中的点的定位。例如,如果接收到包含表示映射车道标志的中心线的点的稀疏地图,则还可以基于车道标志2510的中心线来检测点2511。
车辆还可以确定由元素2520表示的并且沿着目标轨迹定位的纵向位置。例如,通过检测图像2500内的地标2521并将测量的定位与存储在道路模型或稀疏地图800中的已知地标定位进行比较,可以从图像2500中确定纵向位置2520。然后可以基于到地标的距离和地标的已知定位来确定车辆沿着目标轨迹的定位。纵向位置2520还可以从除了用于确定车道标志的位置的图像之外的图像中确定。例如,纵向位置2520可以通过在来自图像获取单元120内的其他相机的、与图像2500同时或接近同时拍摄的图像中检测地标来确定。在一些情况下,车辆可能不在用于确定纵向位置2520的任何地标或其他参考点附近。在这种情况下,车辆可以基于航位推算来导航,并且因此可以使用传感器来确定其自我运动并估计相对于目标轨迹的纵向位置2520。车辆还可以确定表示在所捕获的(多个)图像中观察到的车辆和车道标志2510之间的实际距离的距离2530。在确定距离2530时,可以考虑相机角度、车辆的速度、车辆的宽度或各种其他因素。
图25B示出了基于道路导航模型中映射车道标志的车辆的横向定位校正。如上所述,车辆200可以使用由车辆200捕获的一个或多个图像来确定车辆200和车道标志2510之间的距离2530。车辆200还可以访问道路导航模型(诸如稀疏地图800),道路导航模型可以包括映射车道标志2550和目标轨迹2555。映射车道标志2550可以使用如上所述的技术来建模,例如使用由多个车辆捕获的众包定位标识符。目标轨迹2555也可以使用先前描述的各种技术来生成。车辆200还可以确定或估计沿着目标轨迹2555的纵向位置2520,如以上参考图25A所述。车辆200然后可以基于与纵向位置2520相对应的、目标轨迹2555和映射车道标志2550之间的横向距离来确定预期距离2540。车辆200的横向定位可以通过将使用所捕获的(多个)图像测量的实际距离2530与来自模型的预期距离2540进行比较来校正或调整。
图26A是示出与所公开的实施例一致的用于映射车道标志以用于自主车辆导航的示例性过程2600A的流程图。在步骤2610,过程2600A可以包括接收与检测到的车道标志相关联的两个或更多个定位标识符。例如,步骤2610可以由服务器1230或与该服务器相关联的一个或多个处理器来执行。定位标识符可以包括与检测到的车道标志相关联的点在现实坐标中的定位,如以上参考图24E所述。在一些实施例中,定位标识符还可以包含其他数据,诸如关于道路路段或车道标志的附加信息。在步骤2610期间还可以接收附加数据,诸如加速度计数据、速度数据、地标数据、道路几何结构或轮廓数据、车辆定位数据、自我运动数据或如上所述的各种其他形式的数据。定位标识符可以由车辆(诸如车辆1205、1210、1215、1220和1225)基于由车辆捕获的图像而生成。例如,可以基于从与主车辆相关联的相机获取表示主车辆的环境的至少一个图像、分析该至少一个图像以检测主车辆的环境中的车道标志、以及分析该至少一个图像以确定检测到的车道标志相对于与主车辆相关联的定位的位置来确定标识符。如上所述,车道标志可以包括各种不同的标志类型,并且定位标识符可以对应于相对于车道标志的各种点。例如,在检测到的车道标志是标记车道边界的虚线的一部分的情况下,这些点可以对应于车道标志的检测到的拐角。在检测到的车道标志是标记车道边界的实线的一部分的情况下,这些点可以对应于具有如上所述的各种间距的、车道标志的检测到的边缘。在一些实施例中,这些点可以对应于检测到的车道标志的中心线,如图24C所示,或者可以对应于两个相交车道标志之间的顶点和与相交车道标志相关联的两个其他点中的至少一个,如图24D所示。
在步骤2612,过程2600A可以包括将检测到的车道标志与相对应的道路路段相关联。例如,服务器1230可以分析在步骤2610期间接收的现实世界坐标或其他信息,并且将坐标或其他信息与存储在自主车辆道路导航模型中的定位信息进行比较。服务器1230可以确定模型中与在该处检测到车道标志的现实世界道路路段相对应的道路路段。
在步骤2614,过程2600A可以包括基于与检测到的车道标志相关联的两个或更多个定位标识符,相对于相对应的道路路段来更新自主车辆道路导航模型。例如,自主道路导航模型可以是稀疏地图800,并且服务器1230可以更新稀疏地图以在模型中包括或调整映射车道标志。服务器1230可以基于以上参考图24E描述的各种方法或过程来更新模型。在一些实施例中,更新自主车辆道路导航模型可以包括存储检测到的车道标志在现实世界坐标中的一个或多个位置指示符。自主车辆道路导航模型还可以包括车辆沿着相对应的道路路段所遵循的至少一个目标轨迹,如图24E所示。
在步骤2616,过程2600A可以包括将更新后的自主车辆道路导航模型分配给多个自主车辆。例如,服务器1230可以将更新后的自主车辆道路导航模型分配给车辆1205、1210、1215、1220和1225,该车辆1205、1210、1215、1220和1225可以将该模型用于导航。自主车辆道路导航模型可以经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)、通过无线通信路径1235被分配,如图12所示。
在一些实施例中,可以使用从多个车辆接收的数据(诸如通过众包技术)来映射车道标志,如以上参考图24E所述。例如,过程2600A可以包括从第一主车辆接收包括与检测到的车道标志相关联的定位标识符的第一通信,以及从第二主车辆接收包括与检测到的车道标志相关联的附加定位标识符的第二通信。例如,第二通信可以从行驶在相同道路路段上的后续车辆接收,或者从在沿着相同道路路段的后续行程中的相同车辆接收。过程2600A还可以包括基于在第一通信中接收的定位标识符并且基于在第二通信中接收的附加定位标识符来细化与检测到的车道标志相关联的至少一个位置的确定。这可以包括使用多个定位标识符的平均和/或过滤掉可能不反映车道标志的现实世界位置的“幽灵”标识符。
图26B是示出用于使用映射车道标志沿着道路路段自主导航主车辆的示例性过程2600B的流程图。过程2600B可以例如由自主车辆200的处理单元110来执行。在步骤2620,过程2600B可以包括从基于服务器的系统接收自主车辆道路导航模型。在一些实施例中,自主车辆道路导航模型可以包括主车辆沿着道路路段的目标轨迹和与道路路段相关联的一个或多个车道标志相关联的定位标识符。例如,车辆200可以接收稀疏地图800或使用过程2600A产生的另一道路导航模型。在一些实施例中,目标轨迹可以被表示为三维样条,例如,如图9B所示。如上面参考图24A-图24F所述,定位标识符可以包括与车道标志相关联的点在现实世界坐标中的定位(例如,虚线车道标志的拐角点、实线车道标志的边缘点、两个相交车道标志之间的顶点以及与相交车道标志相关联的其他点、与车道标志相关联的中心线等)。
在步骤2621,过程2600B可以包括接收表示车辆的环境的至少一个图像。该图像可以从车辆的图像捕获装置(诸如通过包括在图像获取单元120中的图像捕获装置122和124)接收。该图像可以包括一个或多个车道标志的图像,类似于如上所述的图像2500。
在步骤2622,过程2600B可以包括确定主车辆沿着目标轨迹的纵向位置。如上参考图25A所述,这可以基于捕获的图像中的其他信息(例如,地标等)或者通过车辆在检测到的地标之间的航位推算。
在步骤2623,过程2600B可以包括基于所确定的主车辆沿着目标轨迹的纵向位置并且基于与至少一个车道标志相关联的两个或更多个定位标识符来确定到车道标志的预期横向距离。例如,车辆200可以使用稀疏地图800来确定到车道标志的预期横向距离。如图25B所示,可以在步骤2622中确定沿着目标轨迹2555的纵向位置2520。使用稀疏地图800,车辆200可以确定到与纵向位置2520相对应的映射车道标志2550的预期距离2540。
在步骤2624,过程2600B可以包括分析至少一个图像以识别至少一个车道标志。例如,车辆200可以使用各种图像辨识技术或算法来识别图像内的车道标志,如上所述。例如,车道标志2510可以通过对图像2500的图像分析来检测,如图25A所示。
在步骤2625,过程2600B可以包括基于对至少一个图像的分析来确定到至少一个车道标志的实际横向距离。例如,车辆可以确定表示车辆和车道标志2510之间的实际距离的距离2530,如图25A所示。在确定距离2530时,可以考虑相机角度、车辆的速度、车辆的宽度、相机相对于车辆的位置或各种其他因素。
在步骤2626,过程2600B可以包括基于到至少一个车道标志的预期横向距离和所确定的到至少一个车道标志的实际横向距离之间的差异来确定主车辆的自主转向动作。例如,如上参考图25B所述,车辆200可以将实际距离2530与预期距离2540进行比较。实际距离和预期距离之间的差异可以指示车辆的实际位置和车辆要遵循的目标轨迹之间的误差(及其幅度)。相应地,车辆可以基于该差异来确定自主转向动作或其他自主动作。例如,如果实际距离2530小于预期距离2540,如图25B所示,则车辆可以确定自主转向动作以引导车辆离开车道标志2510。因此,可以校正车辆相对于目标轨迹的位置。过程2600B可以用于例如改善车辆在地标之间的导航。
虚拟停止线映射(建图)与导航
如本公开的其他地方所述,车辆或驾驶员可以根据环境导航车辆。例如,自主车辆可以根据道路路段上的停止线的标记,在交叉路口处导航和停止。然而,有时车辆所驾驶的道路路段可能不包括指示用于在交叉路口处停止的位置的标记(或由于维护不善导致标记不充分),并且车辆可能无法在该交叉路口处正确地导航。另外一个示例,由于各种因素,诸如道路或交叉路口的几何形状或者低能见度状况(例如视线被另一车辆挡住、某些天气状况)等等,驾驶员和车辆可能并不容易检测到交叉路口。在这种情况下,可能需要确定虚拟停止线(例如,未标记的位置),车辆能够在该虚拟停止线处停下以导航通过交叉路口(例如,在交叉路口处减速或停止)。本文公开的系统和方法可以允许基于由与多个车辆相关联的多个设备捕获的图像来确定虚拟停止线。该系统和方法还可以基于一条或多条虚拟停止线来更新道路导航模型并且将更新后的道路导航模型分发给车辆。该系统和方法可以进一步允许车辆基于包括在道路导航模型中的虚拟停止线执行一个或多个导航动作(例如,减速、停止等等)。
图27示出了与所公开的实施例一致的用于车辆导航的示例性系统2700。如图27所示,系统2700可以包括服务器2701、一个或多个车辆2702(例如,车辆2702A、2702B、2702C、...、2702N)和与车辆相关联的一个或多个车辆设备2703(例如,车辆设备2703B、2703B、2703C、...、2703N)、数据库2704和网络2705。服务器2701可以被配置为基于从一个或多个车辆(和/或与车辆相关联的一个或多个车辆设备)接收的驾驶信息来更新道路导航模型。例如,车辆2702和/或车辆设备2703可以被配置为收集驾驶信息并将驾驶信息传输到服务器2701以用于更新道路导航模型。数据库2704可以被配置为为系统2700的组件(例如,服务器2701、车辆2702和/或车辆设备2703)存储信息。网络2705可以被配置为促进系统2700的组件之间的通信。
服务器2701可以被配置为从多个车辆中的每一个接收驾驶信息。驾驶信息可以包括停止位置,其中多个车辆中的特定车辆在沿着道路路段驾驶期间相对于交叉路口在该停止位置处停止。服务器2701还可以被配置为聚集从多个车辆接收的驾驶信息中的停止位置,并且基于聚集的停止位置来确定相对于交叉路口的停止线位置。服务器2701还可以被配置为更新道路导航模型以包括停止线位置。在一些实施例中,服务器2701还可以被配置为将更新后的道路导航模型分发给一个或多个车辆。例如,服务器2701可以是执行这里公开的功能的云服务器。术语“云服务器”是指经由网络(例如互联网)提供服务的计算机平台。在该示例配置中,服务器2701可以使用可以不对应于单独硬件的虚拟机。例如,可以通过从诸如数据中心或分布式计算环境之类的可扩展资源库(repository)分配满足需要的计算/存储能力的适当部分,来实现计算和/或存储能力。在一个示例中,服务器2701可以使用定制的硬连线逻辑、一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)、固件和/或程序逻辑来实现这里描述的方法,这些逻辑或电路等与计算机系统一起使服务器2701成为专用机。
车辆2702和/或车辆设备2703可以被配置为收集驾驶信息并将驾驶信息传输到服务器2701以更新道路导航模型。例如,车辆2702A和/或车辆设备2703A可以被配置为接收从车辆2702A的环境捕获的一个或多个图像。车辆2702A和/或车辆设备2703A还可以被配置为分析一个或多个图像以检测交叉路口的指示符。车辆2702A和/或车辆设备2703A还可以被配置为基于从车辆2702A的至少一个传感器接收的输出,来确定车辆2702A相对于检测到的交叉路口的停止位置。车辆2702A和/或车辆设备2703A还可以被配置为分析一个或多个图像以确定是否有一个或多个其他车辆在车辆2702A前面的指示符。车辆2702A和/或车辆设备2703A还可以被配置为将车辆2702A的停止位置和是否有一个或多个其他车辆在车辆2702A前面的指示符发送到服务器2701以用于更新道路导航模型。
在一些实施例中,车辆2702和/或车辆设备2703可以被配置为接收更新后的道路导航模型,并且使得车辆2702基于更新后的道路导航模型执行至少一个导航动作。例如,车辆2702B和/或车辆设备2703B可以被配置为从车辆2702B的相机接收从车辆2702B的环境捕获的一个或多个图像。车辆2702B和/或车辆设备2703B还可以被配置为检测车辆2702B的环境中的交叉路口的指示符。车辆2702B和/或车辆设备2703B还可以被配置为从服务器2701接收包括相对于交叉路口的停止线位置的地图信息。车辆2702B和/或车辆设备2703B还可以被配置为根据地图信息,规划路线路径和/或导航车辆2702B。例如,车辆2702B和/或车辆设备2703B可以被配置为在规划到目的地的路线时考虑该停止线位置(例如,如果通过交叉路口,则将停止时间添加到估计到达时间中,不通过交叉路口则选择不同的路线等)。作为另一个示例,车辆2702B和/或车辆设备2703B可以被配置为远在接近停止线位置之前,将停止线位置作为长期规划的一部分考虑在内。例如,车辆2702B和/或车辆装置2703B可以被配置为当车辆到达距停止线位置预定的距离内时使车辆减速。替代地或附加地,车辆2702B和/或车辆设备2703B可以被配置为在到达停止线位置之前制动和停止车辆2702B。
在一些实施例中,车辆2702可以包括具有与上述系统100类似的配置和/或执行类似功能的设备。替代地或附加地,车辆设备2703可以具有与上述系统100类似的配置和/或执行类似的功能。
数据库2704可以包括地图数据库,该地图数据库被配置为:为系统2700的组件(例如,服务器2701、车辆2702和/或车辆设备2703)存储地图数据。在一些实施例中,服务器2701、车辆2702和/或车辆设备2703可以被配置为经由网络2705访问数据库2704,并从数据库2704获取存储的数据和/或将数据上传到数据库2704。例如,服务器2701可以将与一个或多个道路导航模型相关的数据传送到数据库2704以便存储。车辆2702和/或车辆设备2703可以从数据库2704下载道路导航模型。在一些实施例中,数据库2704可以包括与各种项目在参考坐标系中的位置有关的数据,该些项目包括道路、水景、地理特征、企业、兴趣点、餐馆、加油站等,或它们的组合。在一些实施例中,数据库2704可以包括类似于本公开中其他地方描述的地图数据库160的数据库。
网络2705可以是提供通信、交换信息和/或促进系统2700的组件之间的信息交换的任何类型的网络(包括基础设施)。例如,网络2705可以包括以下网络或者是以下网络的一部分:互联网、局域网、无线网络(例如,Wi-Fi/302.11网络)或其他合适的连接。在其他实施例中,系统2700的一个或多个组件可以通过专用通信链路直接通信,例如电话网络、外联网、内联网、互联网、卫星通信、离线通信、无线通信、转发器通信、局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)等。
图28是与本公开的实施例一致的交叉路口处的示例性车辆的示意图。如图28所示,车辆2801可以在车道2811中驾驶,车辆2802和车辆2803可以在车道2812中驾驶。车辆2801、车辆2802和/或车辆2803可以包括被配置为从环境捕获一个或多个图像的一个或多个相机,并且可以包括被配置为基于对一个或多个图像的分析来检测交叉路口2821的指示符的一个或多个设备(例如,车辆设备2703)。交叉路口的指示符可以包括一个或多个道路标记、一个或多个交通灯、一个或多个停止标志、一个或多个人行横道、一个或多个车辆在主车辆前方横穿、一个或多个车辆停在靠近主车辆的位置处(例如,在距主车辆的预定距离阈值内)等,或它们的组合。例如,车辆2801可以被配置为分析一个或多个图像,并在一个或多个图像中的至少一个中检测前进方向上的交通灯。作为另一示例,车辆2802(类似于车辆2702)可以分析来自车辆2802环境的一个或多个图像,并且基于图像分析而检测到车辆2804正在车辆2802前方横穿(在该示例中,从右向左移动)。作为另一示例,车辆2803可以分析来自车辆2803的环境的一个或多个图像并检测指示交叉路口的道路标志。例如,车辆2803可以分析一个或多个图像并检测停车标志,并且基于停车标志的朝向,来确定停车标志是否指示交叉路口。作为另一示例,车辆2803可以分析一个或多个图像并检测人行横道,并且基于人行横道相对于车辆2803的方向(例如,跨越车辆2803前方车道的人行横道可以指示交叉路口在附近),来确定人行横道是否指示交叉路口。
车辆2801、车辆2802和/或车辆2803还可被配置为基于从主车辆的至少一个传感器接收的输出,来确定主车辆相对于检测到的交叉路口的停止位置。例如,车辆2801可以从传感器(例如,GPS设备、速度传感器、加速度计、悬架传感器等,或它们的组合)接收信号输出,并且确定车辆2801停止在相对于交叉路口2821的位置处。可以基于GPS信息、例如使用本公开其他地方描述的映射(建图)技术的地图信息,或它们的组合,来确定车辆2801的位置。车辆2801、车辆2802和/或车辆2803可以进一步被配置为分析一个或多个图像以确定是否有一个或多个其他车辆在主车辆前方的指示符。例如,车辆2801和车辆2802可以基于图像分析,来确定在它们前方没有车辆。作为另一个示例,车辆2803可以确定在它前方有一个或多个车辆。举例来说,车辆2803可以确定沿着与主车辆所驾驶路径相同的路径、在其前方存在一车辆(例如,车辆2802),和/或沿着与主车辆所驾驶路径平行的路径或与主车辆所驾驶路径共享同一虚拟停止线的路径、在其前方存在一车辆(例如,车辆2801)。在主车辆前方有一个或多个其他车辆的情况下,可以适当地得出主车辆没有位于停车线位置的结论。类似地,在主车辆停止并且没有其他车辆位于主车辆前方(或没有其他车辆位于主车辆前方的预定阈值距离内)的情况下,可以适当地得出主车辆位于停止线位置的结论。车辆2801、车辆2802和/或车辆2803还可以被配置为将与它们的停止位置和交叉路口2821相关的驾驶信息传输到服务器2701。例如,主车辆可以发送主车辆的停止位置和是否有一个或多个其他车辆在主车辆前方的指示符。是否有一个或多个其他车辆在主车辆前方的指示符可以包括任何适当的信息,例如任何标识符(例如,字母数字标识符)。在一些实施例中,是否有一个或多个其他车辆在主车辆前方的指示符可以包括图像和/或图像的一部分。服务器2701可以被配置为基于从车辆(和/或其他车辆)接收的驾驶信息确定停止线位置(例如,由虚线2831表示)并且更新道路导航模型以包括停止线位置。
图29A是示出与本公开实施例一致的用于车辆导航的示例性过程2910的流程图。过程2910的一个或多个步骤可由车辆(例如,车辆2702)、与主车辆相关联的设备(例如,车辆设备2703)和/或服务器(例如,服务器2701)执行。虽然下面提供的过程2910的描述使用车辆2702作为示例,但本领域技术人员将理解,过程2910的一个或多个步骤可以由车辆设备(例如,车辆设备2703)和/或服务器(例如,服务器2701)执行。
在步骤2911中,车辆2702可以被配置为接收从主车辆的环境捕获的一个或多个图像。例如,与车辆2702相关联的相机(例如,相机或图像采集设备120的图像捕获设备)可以捕获车辆的环境的一个或多个图像,如本公开的其他地方所述。车辆2702可以从图像捕获设备接收一个或多个图像。在一些实施例中,相机可以连续地捕获一个或多个图像,并且车辆2702可以连续地或间歇地接收图像。例如,相机可以在主车辆到达停止位置之前从车辆2702的环境中捕获一个或多个图像。作为另一示例,相机可以在主车辆到达停止位置之前的预定时间阈值期间捕获一个或多个图像。替代地或附加地,相机可以在距停止位置一定距离处开始捕获一个或多个图像。替代地或附加地,相机可以在触发事件发生时或发生之后捕获一个或多个图像。例如,车辆2702可以基于来自传感器(例如,全球定位系统(GPS)设备、速度传感器、加速度计、悬架传感器等,或它们的组合)的信号,来检测车辆2702停止(在停止位置处)。车辆2702可以指示相机捕获车辆2702的环境的一个或多个图像。当主车辆停在停止位置时,相机可以捕获一个或多个图像。替代地或附加地,在主车辆到达停止位置之后,相机可以捕获一个或多个图像。与停车位置相关的图像的捕获可以与其他因素相关联,例如车辆速度和/或环境条件(光照水平、降水等)。因此,例如,如果车辆在图像捕获开始时以相对较高的速度行驶,则与车辆行驶更慢的类似场景相比,车辆可以更加远离该停止位置。
在步骤2912中,车辆2702可以被配置为分析一个或多个图像以检测交叉路口的指示符。交叉路口的指示符可包括一个或多个道路标记、一个或多个交通灯、一个或多个停车标志、一个或多个人行横道、一个或多个车辆在主车辆前方横穿、一个或多个车辆在靠近主车辆的位置处停止等,或它们的组合。例如,车辆2702可以被配置为分析一个或多个图像,并在一个或多个图像中的至少一个中检测在前进方向上的交通灯。作为另一示例,车辆2702可以被配置为在一个或多个图像中的至少一个中检测道路标记,例如车道标记、转向车道标记等。举例来说,如图28所示,车辆2802(类似于车辆2702)可以分析来自车辆2802的环境的一个或多个图像,并且基于图像分析而检测到车辆2804在车辆2802前方横穿(从右向左移动)。作为另一示例,车辆2801(类似于车辆2702)可以分析来自车辆2801的环境的一个或多个图像,并且基于图像分析而检测到车辆2802停止在平行于车辆2802所驾驶车道的车道中。在一些实施例中,对应于停止位置的道路路段的表面不具有指定车辆应该相对于交叉路口在哪里停止的标记。例如,车道2811可以不具有指定车辆应该相对于交叉路口2821在哪里停止的标记。举例来说,主车辆前方的车道中的道路路段的表面可以不包括指示停止线的标记。
替代地或附加地,车辆2702可以被配置为接收将交叉路口与另一车辆或基础设施对象加以区分的信息。举例来说,如图28所示,车辆2803可以接收区分交叉路口2821与车辆2801和/或车辆2802的信号(或消息)。替代地或附加地,车辆2803可以接收区分交叉路口2821与信号杆(未示出)的信号(或消息)。
在一些实施例中,替代地或附加地,车辆2702可以传送一个或多个图像给服务器2701,该服务器可以被配置为分析一个或多个图像以检测交叉路口的指示符。
在一些实施例中,车辆2702和/或服务器2701可以使用机器学习算法来分析一个或多个图像并检测交叉路口的指示符。例如,车辆2702可以获得或使用经过训练的机器学习算法来检测交叉路口的指示符。在一些实施例中,可以使用有监督训练过程来训练机器学习算法。例如,机器学习算法可以使用大量训练样本进行训练,训练样本中的一个或多个停止位置在配对图像中被标注(手动或由计算机自动)。车辆2702还可以将一个或多个图像输入到机器学习算法中,机器学习算法可以基于输入来输出交叉路口的指示符。
在步骤2913中,车辆2702可以被配置为基于从主车辆的至少一个传感器接收的输出,来确定主车辆相对于检测到的交叉路口的停止位置。例如,车辆2702可以从传感器(例如,GPS设备、速度传感器、加速度计、悬架传感器等,或它们的组合)接收信号输出,并确定车辆2702停在相对于检测到的交叉路口的位置处。车辆2702还可以被配置为确定车辆2702所停在的停止位置。举例来说,如图28所示,车辆2801可以接收来自GPS传感器的信号,并且确定车辆停在靠近交叉路口2821的位置处。车辆2801还可以被配置为确定车辆2801的停止位置(例如,停止位置的GPS坐标)。作为另一个示例,如图28所示,车辆2802和2803可以停在车道2812中。车辆2802可以基于从车辆2802的至少一个传感器接收的输出来确定车辆2802相对于交叉路口2821的停止位置,并且车辆2803可以基于从车辆2803的至少一个传感器接收的输出来确定车辆2803相对于交叉路口2821的停止位置。
在步骤2914中,车辆2702可以被配置为分析一个或多个图像以确定是否有一个或多个其他车辆在主车辆前方的指示符。例如,车辆2702可以被配置为分析一个或多个图像以确定指示是否有一个或多个车辆在主车辆前方预定阈值距离内的指示符。举例来说,如图28所示,车辆2801可以分析一个或多个图像以确定指示没有车辆在车辆2801前方的预定阈值(例如,2米)距离内的指示符。车辆2802可以分析一个或多个图像以确定指示没有车辆在车辆2802前方的预定阈值(例如,2米)距离内,而车辆2803可以分析一个或多个图像以确定指示在车辆2803前方的预定阈值(例如,2米)距离内存在另一车辆(例如,车辆2802)。阈值距离可以在10厘米到10米的范围内。在一些实施例中,阈值距离可以被限制为10到50厘米、50厘米到1米、1到2米、2到5米和5到10米的子范围。
在一些实施例中,替代地或附加地,车辆2702可以被配置为基于从另一车辆、基础设施对象和/或服务器接收的信息以确定指示是否有一个或多个其他车辆在主车辆前方的指示符。举例来说,如图28所示,车辆2803可以从车辆2801(和/或车辆2802)接收信号(或消息),该信号(或消息)指示另一车辆(车辆2801和/或车辆2802)在其前方。替代地或附加地,车辆2803可以从信号杆接收信号(或消息),该信号(或消息)指示另一车辆(车辆2801和/或车辆2802)在其前方。替代地或附加地,车辆2803可以从服务器3301接收信号(或消息),该信号(或消息)指示另一车辆(车辆2801和/或车辆2802)在其前方。在这些示例中的任何一个中,信号(或消息)还可以包括在主车辆前方的车辆的位置。例如,位置信息可以包括相对于坐标系的地图信息,以用于标识出前方车辆相对于主车辆的位置。
在一些实施例中,车辆2702和/或服务器2701可以使用机器学习算法来确定是否有一个或多个其他车辆在主车辆前方的指示符。例如,车辆2702可以获得或使用经过训练的机器学习算法来确定是否一个或多个其他车辆在车辆的前方区域以及可能地这些车辆是否在主车辆前方(例如,在与车辆相同的车道内)的指示符。车辆2702还可以将一个或多个图像输入到机器学习算法中,该机器学习算法可以基于输入来输出是否有一个或多个其他车辆在主车辆前方的指示符。
在步骤2915,车辆2702可以被配置成将主车辆的停止位置发送到服务器。可选地,车辆3302还可以被配置为将是否有一个或多个其他车辆在主车辆前方的指示符发送到服务器。例如,车辆2702可以经由网络2705将车辆2702的停止位置和是否有一个或多个其他车辆在车辆2702前方的指示符发送到服务器2701,以用于更新道路导航模型。举例来说,如图28所示,车辆2801可以经由网络2705向服务器2701发送指示车辆2801的停止位置的数据(例如,GPS坐标)和没有车辆在车辆2801前方的指示符。作为另一个示例,车辆2803可以经由网络2705向服务器2701发送指示车辆2803的停止位置(例如,GPS坐标)的数据和车辆2803前方有一个或多个车辆的指示符。
在一些实施例中,车辆2702还可以向服务器2701发送与交叉路口相关的位置信息。例如,车辆2702还可以向服务器2701发送与交叉路口相关的位置信息,例如交叉路口的GPS坐标、交叉路口的大小、交叉路口的边界、交叉路口的形状或结构、与交叉路口相关的车道信息(例如,驾驶方向、穿过交叉路口的车道数量)、交叉路口内部和/或周围的一个或多个地标、交叉路口内和/或周围的一个或多个基础设施对象等,或它们的组合。
在一些实施例中,当车辆2702前方的车辆数量等于或小于阈值数量时,车辆2702可以将车辆2702的停止位置发送到服务器2701。例如,只有当车辆2072前方有两辆或更少车辆时,车辆2072才可以将其停止位置传输到服务器2701。作为另一个示例,只有当车辆2702前方没有车辆时,车辆2702才可以将其停止位置发送到服务器2701。
在一些实施例中,车辆2702可以被配置为当主车辆前方没有车辆时,将车辆2702的停止位置传输到服务器2701。例如,车辆2702可以基于对一个或多个图像的分析(如本公开的其他地方所述)确定主车辆前方没有车辆。车辆2702还可以响应于没有车辆在主车辆前方的确定,将主车辆的停止位置发送到服务器。在一些实施例中,只有当主车辆前方没有车辆时,车辆2702才可以主车辆的停止位置传输到服务器。
图29B是示出与本公开的实施例一致的用于更新道路导航模型的示例性过程2920的流程图。步骤2920的一个或多个步骤可由车辆(例如,车辆2802)、与主车辆相关的设备(例如,车辆设备2703)和/或服务器(例如服务器2701)执行。尽管以下提供的过程2910的描述是用服务器2701作为示例,本领域的技术人员将理解过程2920的一个或多个步骤可由车辆和/或车辆设备执行。
在步骤2921,服务器2701可以被配置为从多个车辆中的每一个接收驾驶信息。驾驶信息可以包括停止位置,其中多个车辆中的特定车辆在沿着道路路段驾驶期间相对于交叉路口停止在该停止位置处。例如,服务器2701可以被配置为从车辆2801、车辆2802和车辆2803接收驾驶信息,该驾驶信息可以包括每个车辆在沿着相应的道路路段(例如,车辆2801的车道2811、车辆2802和车辆2803的车道2812)行驶期间、相对于交叉路口2821的停车位置(如图28中所示并且在本公开的其他地方描述)。在一些实施例中,该道路路段的对应于停止位置的表面不具有指定车辆应该相对于交叉路口在哪里停止的标记。例如,车道2811可以不具有指定车辆应该相对于交叉路口2821在哪里停止的标记。
在一些实施例中,从车辆接收的驾驶信息还可以包括指示是否至少有一辆其他车辆驻留在交叉路口和车辆的停止位置之间的指示符。替代地或附加地,从车辆接收的驾驶信息可以包括与车辆的停车位置和/或交叉路口有关的一个或多个图像。替代地或附加地,驾驶信息可以包括与交叉路口有关的位置信息。例如,从车辆接收的驾驶信息可以包括交叉路口的位置信息,例如交叉路口的GPS坐标、交叉路口的大小、交叉路口的边界、交叉路口的形状等,或者它们的组合。
在步骤2922,服务器2701可以被配置为聚集从多个车辆接收的驾驶信息中的停止位置。在一些实施例中,聚合停止位置可以包括计算停止位置的平均值。例如,服务器2701可以被配置为聚集车辆2801、车辆2802和/或车辆2803相对于交叉路口2821的停止位置(和/或其他车辆的停止位置)。作为另一个示例,服务器2701可以对以下停止位置进行聚集:第一车辆沿着道路路段在第一时间在交叉路口处的停止位置;和第二车辆沿着同一道路路段在第二时间在同一交叉路口处的停止位置(和/或其他车辆的停车位置)。
在一些实施例中,在对停止位置进行聚集时,服务器2701可以被配置为基于从多个车辆之一接收的至少一个停止位置与从多个车辆中的另外一个接收的至少一个其他停止位置的距离大于预定阈值距离的确定,来消除该至少一个停止位置。例如,服务器2701可以确定车辆2803的停车位置距车辆2801的停车位置和/或车辆2802的停车位置的距离大于预定阈值(例如,2米)距离。服务器2701还可以基于该确定来消除车辆2803的停止位置。阈值距离可以在10厘米到10米的范围内。在一些实施例中,阈值距离可以被限制为10到50厘米、50厘米到1米、1到2米、2到5米和5到10米的子范围。
替代地或附加地,在对停止位置进行聚集时,服务器2701可以被配置为基于至少一个其他车辆驻留在交叉路口与多个车辆中的特定车辆的特定停止位置之间的指示符,来消除从多个车辆中的该特定车辆接收的该特定停止位置。例如,服务器2701可以确定指示车辆2802驻留在交叉路口2821和车辆2803的停止位置之间的指示符。服务器2701还可以在聚集从车辆接收的停车位置时,消除从车辆2803接收的停车位置。在一些实施例中,在从多个车辆中的特定车辆接收的驾驶信息中可以包括指示是否有至少一个其他车辆驻留在交叉路口和该特定车辆的特定停止位置之间的指示符。替代地或附加地,可以基于对由多个车辆中的特定车辆中的相机捕获的至少一个图像的分析来确定该指示符。例如,服务器2701可以被配置为接收由与车辆2803相关联的相机捕获的一个或多个图像并且确定存在车辆(例如,车辆2802)驻留在交叉路口2821和车辆2803的停止位置之间,如图28所示。
在步骤2923,服务器2701可以被配置为基于经聚集的停止位置,来确定相对于交叉路口的停车线位置。例如,如图28所示,服务器2701可以被配置为基于包括车辆2801和车辆2802的停止位置中的至少一个的经聚集的停止位置,来确定相对于交叉口2821的停止线位置(例如,由虚线2831或其一部分表示)。举例来说,服务器2701可以被配置为通过对车辆2801的停车位置相对于交叉路口2821的距离和车辆2802的停车位置相对于交叉路口2821的距离求平均(或通过计算其加权平均)来确定停车线位置。在一些实施例中,服务器3301还可以被配置为在确定停止线位置时把其他因素,例如捕获图像时的环境状况考虑在内。例如,服务器2701可以被配置为通过计算基于第一图像而确定的第一停止位置相对于交叉路口的距离和基于第二图像而确定的第二停止位置相对于交叉路口的距离的加权平均值,来确定停止线位置,如果第一图像被捕获时的环境状况比第二图像更佳(例如,第一图像比第二图像更亮),则给予第一停止位置更多的权重。
在一些实施例中,服务器2701还可以确定停止线位置的位置信息(例如,与停止线位置相关联的GPS坐标、停止线位置相对于一个或多个已知参考的位置,该已知参考例如为车道标记、道路标志、高速公路出口坡道、交通灯和任何其他特征等)。在一些实施例中,服务器2701还可以确定与交叉路口相关的位置信息,例如交叉路口的GPS坐标、交叉路口的大小、交叉路口的边界、交叉路口的形状和/或结构、与路口相关的车道信息(例如,行驶方向、横穿交叉路口的车道数量)、交叉路口内和/或周围的一个或多个地标、交叉路口内和/或周围的一个或多个基础设施对象等,或其组合。
在一些实施例中,服务器2701可以基于从车辆接收的图像,来确定相对于交叉路口的每个所确定的停车位置的置信度分数。例如,服务器2701可为基于从第一车辆接收的第一图像而确定的第一停止位置分配第一置信度分数。服务器2701还可为基于从第二车辆接收的第二图像而确定的第二停止位置分配第二置信度分数。为了确定相对于交叉路口的最终停止位置,服务器2701可以被配置为考虑置信度分数。例如,如果第一置信度分数高于第二置信度分数,则服务器2701可以被配置为给予第一停止位置比第二停止位置更多的权重,来基于第一和第二停止位置计算加权平均值。
在步骤2924,服务器2701可以被配置为更新道路导航模型以包括该停止线位置。例如,服务器2701可以被配置为将停止线位置添加到导航地图(即,道路导航模型或其一部分)中。在一些实施例中,服务器2701还可以将与交叉路口有关的信息包含在道路导航模型中。在一些实施例中,服务器2701可以将停止线位置和/或交叉路口的描述添加到道路导航模型中。替代地或附加地,服务器2701可以根据停止线位置来更新导航指令。例如,服务器2701可以更新与交叉路口相关的导航指令,以指示车辆在停止线位置处停止和/或在接近停止线或交叉路口时减速。
在一些实施例中,服务器2701可以被配置为将更新后的道路导航模型分发给至少一个车辆。例如,服务器2701可以被配置为经由网络2705将更新后的道路导航模型发送给多个车辆。替代地或附加地,服务器2701可以将更新后的道路导航模型存储到数据库2704中,并且一个或多个车辆可以从数据库2704获得更新后的道路导航模型。
图29C是示出与本公开的实施例一致的用于车辆导航的示例性过程的流程图。过程2930的一个或多个步骤可由车辆(例如,车辆2702)、与主车辆相关联的设备(例如,车辆设备2703)和/或服务器(例如,服务器2701)执行。虽然下面提供的过程2930的描述使用车辆2702作为示例,但是本领域技术人员将理解过程2930的一个或多个步骤可以由车辆设备和/或服务器执行。
在步骤2931中,车辆2702可以被配置为从主车辆的相机接收从主车辆的环境捕获的一个或多个图像(如本公开其他地方所述)
在步骤2932,车辆设备2703可以被配置为检测主车辆的环境中的交叉路口的指示符(如本公开的其他地方所述)。在一些实施例中,主车辆前方的车道中的道路路段的表面不包括指示停车位置的标记。
在步骤2933,车辆设备2703可以被配置为接收地图信息,该地图信息包括相对于交叉路口的停车线位置。例如,车辆设备2703可以从服务器2701接收包括停止线位置(例如,图28中所示的虚线2831)的地图信息。在一些实施例中,车辆2702可以在它接近交叉路口之前接收该地图信息。例如,车辆2702可以在服务器2701更新与交叉路口相关的地图信息之后(例如,作为道路导航模型的定期更新的一部分)接收该地图信息。
在步骤2934,车辆2702可以被配置为基于相对于交叉路口的停止线位置,使主车辆执行相对于交叉路口的至少一个导航动作。例如,车辆2702可以使车辆2702在到达图28所示的虚线2831之前制动并停止车辆2702。替代地或附加地,车辆2702可以在接近交叉路口时(例如,在距停止线位置的预定距离内)使车辆2702减速。
基础设施映射(建图)和分层输出
准确、全面、最新的数字地图对于自主车辆和驾驶员沿路导航是必不可少的。然而,驾驶环境往往会不断变化,因此车辆或驾驶员所依赖的地图可能无法捕获到车辆或驾驶员在环境中导航所需的信息。例如,地图可能无法及时更新以反映交叉路口处安装的新交通灯。因此,需要生成或更新地图以包含对环境的更改。
此外,地图可能不具有与基础设施对象(例如井盖)的精确位置有关的信息,因为获取该信息可能耗时且成本高。需要在地图中包括与基础设施对象相关的信息以帮助驾驶员或车辆进行导航(例如,避免由井盖造成的一些潜在危险)。拥有此类信息还可以帮助市政当局进行城市发展和规划。
本公开的系统和方法可以在多个车辆(或与车辆相关联的图像捕获设备)在其沿着道路路段驾驶时所捕获的图像中,识别与路段相关联的一个或多个对象。该系统和方法还可以确定每个识别出的对象的位置指示符。该系统和方法可以进一步对每个识别出的对象的位置指示符进行关联,并确定每个识别出的对象的细化位置。该系统和方法还可以生成包括该些对象中的至少一个的细化位置的表示的地图。
图30示出了与所公开的实施例一致的用于生成地图信息的示例性系统3000。如图30所示,系统3000可以包括服务器3001、一个或多个车辆3002(例如,车辆3002A、3002B、3002C、...、3002N)和与车辆相关联的一个或多个车辆设备3003(例如,车辆设备3003A、3003B、3003C、...、3002N)、数据库3004、外部实体3005和网络3006。服务器3001可以被配置为基于从一个或多个车辆(或与车辆相关联的设备)接收的信息来生成地图信息。车辆3002和/或车辆设备3003可以被配置为从环境中捕获一个或多个图像,并将该一个或多个图像传输到服务器3001。数据库3004可以被配置为为系统3000的组件(例如,服务器3001、车辆3002、车辆设备3003和/或外部实体3005)存储信息。网络3006可以被配置为促进系统3000的组件之间的通信。
服务器3001可以被配置为从多个车辆3002(和/或车辆3002)中的每一个接收一个或多个图像(或多个图像)。服务器3001还可以被配置为分析图像并识别属于至少一个预定对象类别的多个对象的表示。服务器3001可以进一步被配置为确定多个对象中的每一个相对于道路路段的位置指示符。服务器3001还可以被配置为对多个对象中的每一个的位置指示符进行关联。在一些实施例中,关联可以包括基于确定的位置指示符来确定每个对象的细化位置。服务器3001可以进一步被配置为基于属于特定预定对象类别的对象的细化位置来生成一地图,该地图包括属于特定预定对象类别的多个对象中的一个或多个的细化位置的表示。在一些实施例中,服务器3001可以将生成的地图传输到一个或多个车辆3002和/或外部实体3005。在一些实施例中,服务器3001可以是执本文里公开的功能的云服务器。术语“云服务器”是指经由网络(例如互联网)提供服务的计算机平台。在该示例配置中,服务器3001可以使用可以不对应于单独硬件的虚拟机。例如,可以通过从诸如数据中心或分布式计算环境之类的可扩展资源库分配满足需要的计算/存储能力的适当部分,来实现计算和/或存储能力。在一个示例中,服务器3001可以使用定制的硬连线逻辑、一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)、固件和/或程序逻辑来实现这里描述的方法,这些逻辑或电路等与计算机系统一起使服务器3001成为专用机。
车辆3002和/或车辆设备3003可以被配置为当车辆3002沿着道路路段驾驶时捕获一个或多个图像。车辆3002和/或车辆设备3003还可以被配置为将一个或多个图像传输到服务器3001以用于识别图像中的一个或多个对象。
数据库3004可以包括地图数据库,其被配置为为系统3000的组件(例如,服务器3001、车辆3002、车辆设备3003和/或外部实体3005)存储地图数据。在一些实施例中,服务器3001、车辆3002、车辆设备3003和/或外部实体3005可以被配置为访问数据库3004,并且经由网络3006从数据库3004获取存储的数据和/或将数据上传到数据库3004。例如,服务器3001可以将与一个或多个地图相关的数据传输到数据库3004以便存储。车辆3002、车辆设备3003和/或外部实体3005可以从数据库3004下载与一个或多个地图相关的数据。在一些实施例中,数据库3004可以包括与对象相关的数据,例如基础设施对象,其可以包括井盖、交通灯、公用事业箱、公共汽车站、下水道入口、建筑物等,或它们的组合。在一些实施例中,数据库3004可以包括类似于本申请中其他地方描述的地图数据库160的数据库。
外部实体3005(或与外部实体3005相关联的计算设备)可以被配置为从服务器3001接收数据。例如,服务器3001可以将如本公开中别处描述的生成的地图经由例如网络3006传送到外部实体3005。可替代地或附加地,服务器3001可以传输与如本公开其他地方所述的在一个或多个图像中识别的与一个或多个对象有关的信息(例如,沿道路路段的公共汽车站的细化位置)。
网络3006可以是提供通信、交换信息和/或促进系统3000的组件之间的信息交换的任何类型的网络(包括基础设施)。例如,网络3006可以包括以下网络或者是以下网络的一部分:互联网、局域网、无线网络(例如,Wi-Fi/302.11网络)或其他合适的连接。在其他实施例中,系统3000的一个或多个组件可以通过专用通信链路直接通信,例如电话网络、外联网、内联网、互联网、卫星通信、离线通信、无线通信、转发器通信、局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)等。
图31示出了由成像捕获设备捕获的示例性图像3100。图像3100表示车辆的环境。例如,车辆3002可以包括被配置为当车辆3002沿着道路路段驾驶时从环境中捕获一个或多个图像的相机。车辆3002可以从相机接收一个或多个图像。车辆3002还可以将图像传输到服务器3001。服务器3001可以被配置为分析图像并且基于对图像的分析来识别车道标记3111和3112。服务器3001还可以识别诸如交通灯3121和3122、道路标志3131和3132、建筑物3141、3142和3143、树木3161和3162、井盖3171和路灯3181和3182之类的对象。
图32是示出与本公开的实施例一致的用于生成地图信息的示例性过程3200的流程图。过程3200的一个或多个步骤可以由车辆(例如,车辆3002)、与车辆相关联的设备(例如,车辆设备3003)、服务器(例如,服务器3001)和/或外部实体(例如,外部实体3005)。尽管以下提供的过程3200的描述使用服务器3001作为示例,但本领域技术人员将理解过程3200的一个或多个步骤可由车辆、车辆设备和/或外部实体执行。
在步骤3201,可以接收在第一车辆沿着道路路段的至少一部分的驾驶期间由与第一车辆相关联的相机捕获的第一图像。例如,当车辆3002A沿着道路路段驾驶时,安装在车辆3002A上的相机(其可以类似于本公开中其他地方描述的图像获取单元120)可以从车辆3002A的环境中捕获一个或多个图像。举例来说,图31中所示的示例性图像3100可以是在车辆3002A沿道路路段驾驶期间由车辆3002A的相机捕获的图像。车辆3002A可以将一个或多个图像传输到服务器3001。在一些实施例中,车辆3002A还可以传输与沿道路路段的驾驶有关的信息。例如,车辆3002A可以确定在一个或多个图像被捕获时其位置的GPS坐标。在一些实施例中,车辆3002A和/或服务器3001可以将一个或多个图像与道路路段相关联。
在一些实施例中,相机可以被配置为连续地或间歇地捕获图像。可替代地,相机可被配置为基于触发事件捕获图像。例如,服务器3001可以向车辆3002A发送指令,该车辆3002A可以基于捕获指令指示相机捕获一个或多个图像。举例来说,服务器3001可以向车辆3002A发送指令以在特定区域周围或沿着特定道路路段捕获一个或多个图像。与车辆3002A相关联的相机可以被配置为当车辆3002A在该区域内或沿着该道路路段驾驶时捕获一个或多个图像(例如,基于从车辆3002的GPS传感器接收的GPS信号)。
在一些实施例中,车辆3002A可以连续地或间歇地将一个或多个图像传输到服务器3001。可替代地,当车辆可以访问更可靠和/或更快的网络(例如,通过WIFI连接)时,车辆可以传输一个或多个图像。替代地或附加地,车辆可以在从服务器3001接收到请求时或之后发送一个或多个图像。例如,服务器3001可以向车辆3002A发送对与特定区域和/或特定道路路段相关的一个或多个图像的请求。车辆3002A可以向服务器3001传输在该区域和/或沿道路路段驾驶期间捕获的一个或多个图像。
在步骤3202,可以接收在第二车辆沿着道路路段的至少一部分的驾驶期间由与第二车辆相关联的相机捕获的第二图像。例如,当车辆3002B沿着路段驾驶时(与上文关于步骤3201的描述的车辆3002A所沿着驾驶的路段相同),安装在车辆3002B上的相机(其可以类似于本公开中其他地方描述的图像获取单元120)可以从车辆3002B的环境中捕获一个或多个图像。车辆3002B可以将一个或多个图像传输到服务器3001。在一些实施例中,车辆3002B还可以传输与沿道路路段的驾驶有关的信息,如上文关于步骤3201所述的。
在一些实施例中,第二车辆的相机可以以与上文关于步骤3201描述的与第一车辆相关联的相机类似的方式捕获一个或多个图像。例如,车辆3002B的相机可以在从服务器3001接收到的指令时或之后捕获一个或多个图像。
在一些实施例中,第二车辆可以以与上文关于步骤3201描述的第一车辆类似的方式将一个或多个图像发送到服务器3001。例如,第二车辆可以在收到来自服务器3001的请求时或之后将一个或多个图像发送到服务器3001。
在一些实施例中,服务器3001可以接收在一个或多个附加车辆(例如,图30中所示的车辆3002B、3002C、…、3002N)中的每个车辆沿着道路路段的至少一部分的驾驶时由与该一个或多个附加车辆相关联的相机捕获的一个或多个图像。
在步骤3203,可以分析第一和第二图像以识别属于至少一个预定对象类别的多个对象的表示。例如,服务器3001可以被配置为分析第一和第二图像,并且基于对图像的分析来识别图像中的多个对象的表示。举例来说,图31中所示的图像3100可以是由车辆3002A的相机捕获的第一图像。服务器3001可以被配置为分析图像并识别图像中一个或多个对象的表示。例如,服务器3001可以基于对图像的分析,在图像中识别车道标记3111和3112(例如,第一类对象)、交通灯3121和3122(例如,第二类对象)、道路标志3131和3132(例如,第三类对象)、建筑物3141、3142和3143(例如,第四类对象)、树木3161和3162(例如,第五类对象)、井盖3171(例如,第六类对象),以及路灯3181和3182(例如,第七类对象)。服务器3001可以被配置为分析由车辆3002B的相机捕获的第二图像,并且识别包括在第二图像中的一个或多个对象的表示。例如,服务器3001可以从第二图像中识别出与在第一图像(图31中所示的图像3100)中所识别出的相同对象相对应的交通灯3121、道路标志3132、建筑物3141、树木3161和3162、井盖3171和路灯3181。
在一些实施例中,至少一种预定对象类别可以包括基础设施对象。示例性基础设施对象可以包括井盖、交通灯、公用事业箱、公共汽车站、下水道入口、建筑物等,或它们的组合。在一些实施例中,一种类型的对象可以属于一个对象类别。例如,井盖可以属于第一对象类别(例如,检修孔类别),交通灯可以属于第二对象类别(例如,交通灯类别),等等。在一些实施例中,一种类型的对象可以进一步划分为一个或多个子类别。例如,车辆的交通灯(例如,红橙红色的交通灯)可以属于交通灯的一个子类别,而行人的交通灯(例如,具有倒数计时器的行人交通灯)可以属于交通灯的另一个子类别。
在一些实施例中,服务器3001可以使用机器学习模型来识别图像中的一个或多个对象。例如,服务器3001可以获得或使用经过训练的机器学习模型来识别图像中属于预定对象类别的对象。可以使用经标注的对象和图像的训练样本,来训练该经过训练的机器学习模型。服务器3001可以将接收到的图像输入到经过训练的机器学习模型中,该模型可以输出该图像中的属于预定对象类别的一个或多个识别出的对象。作为另一示例,服务器3001可以使用经过训练的人工神经网络,用于识别图像中的一个或多个对象。
在一些实施例中,服务器3001还可以被配置为获得与所识别的对象相关的信息。例如,服务器3001可以识别交通灯,并从数据库3004或第三方获得交通灯的信息(例如,交通灯的高度)。
本领域技术人员将理解,在一些实施例中,服务器3001可以从一个或多个附加车辆(例如,车辆3002C、…、车辆3002N)接收图像(或一组图像)。服务器3001还可以分析图像并识别图像中属于预定类别的一个或多个对象。
在步骤3204,可以分析第一和第二图像以确定多个对象中的每一个相对于道路路段的位置指示符。例如,服务器3001可以分析第一和第二图像,并基于图像分析来确定每个识别出的对象相对于道路路段的高度(例如,对象相对于道路路段的地平面的高度,或对象相对于道路平面或对象相对于道路表面的高度)。替代地或附加地,服务器3001可以分析第一和第二图像,并且基于图像分析来确定多个对象中的每一个相对于一平面表面的位置指示符,该平面表面具有近似车辆前方的道路表面的坡度。可以通过将道路平面模型拟合到车辆前方的道路路段的表面并通过平滑车辆前方的道路的表面以及计算道路表面的坡度,来实现这种近似。可以相对于一个或多个参考平面(例如,地平面)来计算坡度。
示例性位置指示符可以包括距已知参考点(例如,道路路段的地平面)的高度、距已知参考点(例如,道路路段的侧边界之一)的距离、相对于已知参考点的方位(或角度)(例如,面向道路路段的一个方向)、对象相对于道路路段的二维(2D)和/或3维(3D)坐标等,或它们的组合。
在一些实施例中,服务器3001可以使用机器学习模型来确定多个对象中的每一个相对于道路路段的位置指示符。例如,服务器3001可以获得或使用经过训练的机器学习模型来确定对象相对于道路路段的位置指示符。可以使用带有与对象和/或图像相关联的经标记位置指示符的训练样本,来训练该经训练的机器学习模型。服务器3001可以将接收到的图像输入到经过训练的机器学习模型中,该模型可以输出多个对象中的每一个相对于道路路段的位置指示符。作为另一示例,服务器3001可以使用人工神经网络,该人工神经网络被训练用于确定多个对象中的每一个相对于道路路段的位置指示符。
本领域技术人员将理解,在一些实施例中,服务器3001可以确定多个对象中的每一个相对于从一个或多个附加车辆(例如,车辆3002C,...,车辆3002N)接收的图像中识别的道路路段的位置指示符。
在步骤3205,可以对多个对象中的每一个的位置指示符进行关联。在一些实施例中,关联可以包括基于所确定的位置指示符,来确定每个对象的细化位置。例如,服务器3001可以将基于第一图像而确定的、所识别的对象相对于道路路段的第一位置指示符与基于第二图像而确定的、相同对象相对于道路路段的第二位置指示符进行关联。服务器3001还可以基于第一和第二位置指示符,确定该对象的最终位置指示符(或细化位置)。例如,关联可以包括对为特定对象收集的位置信息求平均。举例来说,服务器3001可以基于对第一图像的分析来确定交通灯(即,识别的物体)距离地面5米的第一高度,并且可以基于对第二图像的分析来确定相同交通灯距离地面4.5米的第二高度。服务器3001可以通过对第一高度和第二高度求平均,来确定交通灯的最终高度为4.75米。
在一些实施例中,如本公开的其他地方所述,服务器3001可以确定从三个或更多车辆接收的图像中识别的、多个对象中的每个对象相对于道路路段的位置指示符。服务器3001还可对从至少一些图像中识别的相同对象中的每一个的位置指示符进行关联。例如,服务器3001可以对在从20个不同车辆接收的20个图像(或图像集)中识别的相同对象的位置指示符进行关联。服务器3001可以通过例如获得20个位置指示符的平均值或中值,来确定对象的细化位置。可替代地,服务器3001可首先从20个位置指示符中滤除一个或多个异常值(例如,通过移除高于或低于20个位置指示符的中值或平均值3.4个标准差的位置指示符)。服务器3001然后可以获得剩余位置指示符的平均值或中值,作为对象的细化位置。
在一些实施例中,对位置指示符进行关联可以包括聚集图像中识别的对象。例如,服务器3001可以对在第一图像中识别的属于第一对象类别的一个或多个对象和在第二图像中识别的属于相同对象类别的一个或多个对象进行聚集。服务器3001还可以从经聚集的对象中移除一个或多个重复对象。可替代地,服务器3001可以保留出现在第一和第二图像两者中的一个或多个识别出的对象。服务器3001可以消除仅出现在第一和第二图像之一中的一个或多个识别出的对象。服务器3001还可以如本公开中别处所述,将经聚集的对象中的每个对象的位置指示符进行关联。
在一些实施例中,服务器3001可以对在从三个或更多个车辆接收的图像中识别的对象进行聚集,所述图像包括第一和第二图像。例如,服务器3001可以对在第一图像(例如从车辆3002A接收)、第二图像(例如从车辆3002B接收)以及第三图像(例如从车辆3002C接收)中识别的、属于第一对象类别的一个或多个对象进行聚集。服务器3001还可以从经聚集的对象中移除一个或多个重复对象。可替代地,服务器3001可以保留在第一、第二和第三图像中都出现的一个或多个识别出的对象。服务器3001可以消除仅出现在该些图像的子集中的一个或多个识别出的对象(例如,仅在第一和第三图像中识别出,但未在第二图像中识别)。可替代地,服务器3001可以确定所识别出的对象在图像中出现的计数。如果计数等于或超过阈值,则服务器3001可以保留该对象。例如,阈值可以是三,并且服务器3001可以确定识别出的对象在四个图像(例如,从四个不同车辆接收的四个图像)中出现了三次。服务器3001可以保留这个被识别出的对象。作为另一个示例,服务器3001可以确定另一个识别出的对象在四个图像中仅出现一次,并且可以消除这个识别出的对象。服务器3001还可以将经聚集的对象中的每个对象的位置指示符进行关联,如本公开中别处所述。
在步骤3206,可以基于属于特定预定对象类别的对象的细化位置,生成一地图,该地图包括属于特定预定对象类别的多个对象中的一个或多个的细化位置的表示。例如,服务器3001可以基于公共汽车站的细化位置,生成包括与道路路段相关联的公共汽车站的细化位置的表示的地图。举例来说,服务器3001可以通过基于公共汽车站的细化位置而添加或更新公共汽车站来修改数字地图,以生成2D和/或3D地图。在一些实施例中,服务器3001可以添加或修改与地图中的对象相关的信息。例如,服务器3001可以将与公共汽车站相关的时间表信息(例如,公交车到达公共汽车站的估计到达时间)添加到地图中。
在一些实施例中,服务器3001可以生成包括属于第一预定对象类别的多个对象中的一个或多个的细化位置的表示和属于第二预定对象类别的多个对象中的一个或多个的细化位置的表示的地图。例如,服务器3001可以生成包括公共汽车站的细化位置的表示和图像中识别的交通灯的细化位置的表示的地图。在一些实施例中,服务器3001可以生成与第一对象类型(或类别)的对象相关联的地图中的第一层(layer)和与第二对象类型(或类别)相关联的地图中的第二层。可选地,服务器3001可以包括用于激活和禁用地图中的一个或多个层的设置。例如,如果基于设置而激活了路灯层,则地图可以示出该路灯层。另一方面,如果基于设置而禁用了路灯层,则至少一些路灯可以不被示出。
在一些实施例中,服务器3001可以经由例如网络3006,将生成的地图发送到一个或多个车辆3002(和/或与车辆3002相关联的车辆设备3003)。替代地或附加地,服务器3001可以将生成的地图存储在数据库(例如,数据库3004)中。车辆3002(和/或车辆3002)可以访问数据库,并经由网络3006接收生成的地图。
在一些实施例中,服务器3001可以经由例如网络3006,将所生成的地图发送到外部实体3005(或与外部实体相关联的计算设备)。在一些实施例中,外部实体3005可以包括市政当局。在一些实施例中,外部实体3005可以包括代理市政当局或其他管理实体或在其指示下行动的实体。
对于观察到的动态状况的聚集和报告
如上所述,驾驶环境可能经常发生不断变化,这可能对驾驶员和自主车辆构成挑战。识别动态状况并将状况通知驾驶员和车辆可以帮助他们在导航时避免意外状况。此外,拥有此类信息还可以帮助公司、机构(agencies)、监管机构、研究所和/或市政当局进行城市发展和规划。
本文公开的系统和方法可以从一个或多个车辆接收的图像中识别一个或多个状况,其具有与道路路段相关联的至少一个动态特性。系统和方法还可以确定与状况相关联的标识符,并更新数据库记录以包括该标识符。
图33图示了与本公开实施例一致的用于收集与道路路段相关联的状况信息的示例性系统3300。如图30所示,系统3300可以包括服务器3301、一个或多个车辆3302和与车辆3302相关联的一个或多个车辆设备3303、数据库3304、外部实体3305和网络3306。服务器3301可以被配置为更新数据库记录以包括与具有至少一个动态特性的状况相关联的标识符。标识符和/或状况可以基于由与车辆相关联的相机捕获的一个或多个图像来确定。车辆3302和/或车辆设备3303可以被配置为从环境中捕获一个或多个图像。数据库3304可以被配置为为系统3300的组件(例如,服务器3301、车辆3302、车辆设备3303和/或外部实体3305)存储信息。例如,车辆设备3303可以被配置为存储包括与一个或多个动态状况相关联的一个或多个标识符的数据库记录。网络3306可以被配置为促进系统3300的组件之间的通信。
服务器3301可以被配置为获得与具有至少一个动态特性的状况相关联的标识符。服务器3301还可以被配置为更新数据库记录以包括标识符,并将数据库记录传输到至少一个实体(例如,车辆3302、车辆设备3303和/或外部实体3305)。在一些实施例中,服务器3301可以是执行本文公开的功能的云服务器。术语“云服务器”是指经由网络(例如互联网)提供服务的计算机平台。在该示例配置中,服务器3301可以使用可以不对应于单独硬件的虚拟机。例如,可以通过从诸如数据中心或分布式计算环境之类的可扩展资源库分配满足需要的计算/存储能力的适当部分,来实现计算和/或存储能力。在一个示例中,服务器3301可以使用定制的硬连线逻辑、一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)、固件和/或程序逻辑来实现本文描述的方法,这些逻辑或电路等与计算机系统一起使服务器3301成为专用机。
车辆3302和/或车辆设备3303可以被配置为捕获表示车辆3302的环境的一个或多个图像。在一些实施例中,车辆3302和/或车辆设备3303可以被配置为将一个或多个图像发送给服务器3301和/或外部实体3305。替代地或附加地,车辆3302和/或车辆设备3303可以被配置为分析一个或多个图像以识别具有至少一个动态特性的一个或多个状况。车辆3302和/或车辆设备3303还可以被配置为分析一个或多个图像以确定与状况相关联的一个或多个标识符。车辆3302和/或车辆设备3303还可以被配置为经由例如网络3306,将标识符和/或状况传输到服务器3301和/或外部实体3305。
数据库3304可以被配置为为系统3300的组件(例如,服务器3301、车辆3302、车辆设备3303和/或外部实体3305)存储信息和数据。例如,数据库3304可以存储从服务器3301、车辆3302、车辆3302和/或外部实体3305接收的图像。作为另一个示例,数据库3304可以存储数据库记录。在一些实施例中,服务器3301、车辆3302、车辆设备3303和/或外部实体3305可以被配置为访问数据库3304,并经由网络3306从数据库3304获取存储的数据和/或将数据上传到数据库3304。
外部实体3305(或与外部实体3305相关联的计算设备)可以被配置为从服务器3301接收数据。例如,服务器3301可以将如本公开中别处描述的数据库记录经由例如网络3306发送到外部实体3305。
网络3306可以是提供通信、交换信息和/或促进系统3300的组件之间的信息交换的任何类型的网络(包括基础设施)。例如,网络3306可以包括以下网络或者是以下网络的一部分:互联网、局域网、无线网络(例如,Wi-Fi/302.11网络)或其他合适的连接。在其他实施例中,系统3300的一个或多个组件可以通过专用通信链路直接通信,例如电话网络、外联网、内联网、互联网、卫星通信、离线通信、无线通信、转发器通信、局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)等。
图34A图示了与本公开的实施例一致的车辆的示例性环境3400。如图34A所示,车辆3401可以沿着道路路段驾驶。车辆3401的相机可以捕获表示车辆3401的环境(例如,环境3400)的图像。图像可以包括环境3400中各种对象的表示。例如,图像可以包括行人3411-3414、停车标志3421、坑洼3431、人行横道3441、建筑物3451和施工点3452的表示。车辆3401(和/或服务器3301)可以被配置为分析图像以识别具有至少一个动态特性的一个或多个状况,如本公开的其他地方所述。车辆3401(和/或服务器3301)可以进一步被配置为分析图像以确定与所识别的状况相关联的至少一个标识符,如本公开的其他地方所述。
图35A是示出与本公开的实施例一致的用于确定具有至少一个动态特性的状况的示例性过程3510的流程图。过程3510的一个或多个步骤可以由车辆(例如,车辆3302)、与车辆相关联的设备(例如,车辆设备3303)、服务器(例如,服务器3301)和/或外部实体(例如,外部实体3305)执行。尽管以下提供的过程3510的描述使用车辆3302作为示例,但本领域技术人员将理解过程3510的一个或多个步骤可由服务器、车辆设备和/或外部实体执行。
在步骤3511,可以获取表示车辆的环境的至少一个图像。例如,可以从与主车辆相关联的相机获取表示车辆的环境的至少一个图像。举例来说,如图34所示,车辆3401可以沿着道路路段驾驶,并且安装在车辆3401上的相机(其可以类似于本公开中其他地方描述的图像获取单元120)可以从车辆3401的环境(例如,环境3400)中捕获一个或多个图像。
在一些实施例中,车辆3401可以将一个或多个图像发送到服务器3301。在一些实施例中,车辆3401还可以发送与沿道路路段的驾驶有关的信息。例如,车辆3401可以确定当一个或多个图像被捕获时其位置的GPS坐标。在一些实施例中,车辆3401和/或服务器3301可以将一个或多个图像与道路路段相关联。
在一些实施例中,相机可以被配置为连续地或间歇地捕获图像。可替代地,相机可被配置为基于触发事件捕获图像。例如,服务器3301可以向车辆3401发送指令,车辆3401可以基于捕获指令指示相机捕获一个或多个图像。举例来说,服务器3301可以向车辆3401发送指令以在特定区域周围或沿着特定道路路段捕获一个或多个图像。与车辆3401相关联的相机可以被配置为当车辆3401在该区域或沿着该道路路段驾驶时(例如,基于从车辆3002的GPS传感器接收的GPS信号),而捕获一个或多个图像。
在一些实施例中,车辆3401可以连续地或间歇地将一个或多个图像发送到服务器3301。可替代地,当车辆访问更可靠和/或更快的网络(例如,通过WIFI连接)时,车辆可以发送一个或多个图像。替代地或附加地,车辆可以在从服务器3301接收到请求时或之后发送一个或多个图像。例如,服务器3301可以向车辆3401发送请求,以获得与特定区域和/或特定道路路段相关的一个或多个图像。车辆3401可以向服务器3301发送在该区域和/或沿该路段驾驶期间捕获的一个或多个图像。
在一些实施例中,服务器3301可以经由网络,例如网络3306,从车辆(和/或与车辆相关联的车辆设备)接收表示多个车辆中的每一个的环境的一个或多个图像(或一组或多组图像)。
在步骤3512,可以分析至少一个图像以在主车辆的环境中识别具有至少一个动态特性的状况。动态特性是指在一段时间内(例如,一周、一天、一小时、一分钟或几秒)和/或响应于触发事件而改变的状况的任何方面。在一些实施例中,至少一个动态特性可以包括位置特性、时间特性等,或者它们的组合。状况可以涉及在环境中一个或多个对象、一个或多个人和/或一个或多个动物的存在。状况也可以指诸如交通堵塞之类的事件。动态特性可以包括能够在一段时间内移动或改变和/或响应于触发事件而移动或改变的对象的特性。例如,具有动态特性的状况可以包括在一个或多个图像中识别出的并且处于运动的对象(例如,穿过人行横道的行人,和/或未处于运动的对象(如一个或多个所示图像)但能够移动(例如,站在道路路段边缘的行人)。具有至少一个动态特性的示例性状况可以包括与人行横道、施工点、高架分支、交通拥堵、公共汽车站、自行车道、道路状况(例如,坑洼或裂缝)、车辆、公共汽车、自行车、行人等,或它们的组合。例如,状况可以包括一个或多个高架分支、交通拥堵、公共汽车站有一个或多个人、或自行车道上有一辆或多辆自行车等,或它们的组合。举例来说,状况可以包括步行穿过道路路段的行人(例如,行人3411-3414)的存在。替代地或附加地,该状况可以包括行人(例如,行人3412-3414)正在人行横道中行走和/或行人(例如,行人3411)没有在人行横道中行走的状况。替代地或附加地,该状况可以包括公共汽车站乘员的存在。替代地或附加地,该状况可以包括行驶在道路路段上的车辆的存在。替代地或附加地,状况可以包括行驶在路段上的公共汽车的存在。替代地或附加地,该状况可以包括行驶在路段上的自行车的存在。替代地或附加地,该状况可以包括在道路路段中坑洼(例如坑洼3431)或裂缝的存在。作为另一示例,该状况可包括人行横道和/或另一区域中的行人密度(例如,每单位时间的行人数量,例如每一小时的行人数量)。
举例来说,如图34A所示,车辆3401的相机可以捕获车辆3401的环境的图像。该图像可以示出步行穿过街道的行人3411-3414。车辆3401可以分析图像并将人行横道3441(和/或行人3411-3414)识别为具有至少一个动态特性的状况,鉴于人行横道3441中的一个或多个对象(或不存在)动态变化。作为另一个示例,车辆3401的相机捕获的图像还可以包括施工点3452,施工点3452可能挡住了左侧车道的一部分。施工点3452可以随着时间而改变。例如,施工点3452的操作可以停止并返还被占用的空间。作为另一个示例,如果许可证过期或施工点3452占用的空间超过其允许的面积,则施工点3452的操作可能变得非法的或不合规的。车辆3401可以分析图像并将施工点3452识别为一状况。在一些实施例中,车辆3302还可以被配置为分析图像和与状况有关的额外信息(例如,尺寸、位置、形状、潜在的遮挡等,或它们的组合)。
在一些实施例中,车辆3302可以接收与所识别的状况有关的信息。例如,车辆3302可以从服务器3301和/或数据库3304请求和接收与图像中识别的施工点有关的信息。举例来说,车辆3302可以接收施工点的许可信息(例如,允许的操作时段)。
在一些实施例中,通过分析由与主车辆相关联的相机获取的至少一个图像,来识别至少一个动态特性。例如,车辆3401可以被配置为分析图像并识别坑洼3431。鉴于坑洼或裂缝的外观(和/或修补)可能是瞬态的,因此坑洼或裂缝可以是具有至少一个动态特性的状况。这种道路状况可以被认为是动态的。例如,当一辆载重卡车经过时,洪水过后可能会出现坑洼(或裂缝)。此外,坑洼可能会在一段时间后被修补。在另一个示例中,坑洼(和/或各种其他检测到或报告的道路状况)可以被视为在特定时间段内或直至特定持续时间或者当某个事件发生时的动态对象,而在此之后,动态对象可能被确定为非动态(或非瞬态)固定对象并且可以在地图中被归类为此类对象或者可以被移除并作为固定对象添加回来。车辆3302还可以被配置为基于图像分析确定坑洼3431的尺寸(其可以随时间增加)。
作为另外的示例,图34B和图34C示出了示例性环境3410,其中车辆位于四个车道,即车道3460、车道3470、车道3480和车道3490。在图34B中,车辆3461、车辆3462、车辆3463、车辆3464和车辆3465在车道3460中。车辆3471、车辆3472、车辆3473和车辆3474在车道3470中。车辆3481和车辆3482在车道3480中。车辆3491、车辆3492和车辆3493在车道3490中。车辆3461(本示例中的主车辆)的相机可以捕获车辆3461的环境的一个或多个图像。该一个或多个图像可以示出车道3460中的一个或多个车辆以及车道3470中的一个或多个车辆。车辆3461还可以被配置为分析一个或多个图像以将一个或多个图像中包括的车辆识别为具有至少一个动态特性的状况。在一些实施例中,车辆3461还可被配置为分析一个或多个图像并基于图像分析确定交通拥堵。例如,车辆3461可以分析一个或多个图像并确定在一个或多个图像中识别出的一个或多个车辆的当前速度低于阈值速度和/或低于道路路段中法定速度的百分比。在一些实施例中,如果速度低于阈值速度和/或道路路段中法定速度的百分比的车辆的数量(或车辆数量的百分比)等于或大于阈值数(或阈值百分比),则车辆3461可以确定交通拥堵。
在图34C所示的示例中,车辆3466和车辆3467在车道3460中,并且车辆3476在车道3470中。车辆3466(本示例中的主车辆)的相机可以捕获车辆3466的环境的一个或多个图像。该一个或多个图像可以示出车道3460中的车辆3467和车道3470中的车辆3476。车辆3461还可被配置为分析一个或多个图像以将一个或多个图像中包括的车辆识别为具有至少一个动态特性的状况。在一些实施例中,车辆3466还可以被配置为分析一个或多个图像并确定一个或多个车辆意外停止(例如,停在不应该停止的位置,例如并排停放)。例如,车辆3466可以进一步被配置为分析一个或多个图像并且基于图像分析确定车辆3467已经停止。车辆3466还可以被配置为分析一个或多个图像并确定车辆3476是否正在以正常速度或以大于道路路段中的阈值速度和/或法定速度的百分比的速度驾驶。车辆3466可以将车辆3467的停止确定为动态状况。在一些实施例中,车辆3466可以在检测到动态状况时进行动作。例如,车辆3466可以导航车辆以绕过车辆3467。
在一些实施例中,服务器3301(和/或车辆3302)可以使用机器学习模型来识别图像中的一个或多个状况。例如,服务器3301(和/或车辆3302)可以获得或使用经过训练的机器学习模型来在图像中识别具有至少一个动态特性的状况。可以使用标记过的状况和图像的训练样本,来训练该经过训练的机器学习模型。服务器3301(和/或车辆3302)可以将接收到的图像输入到经过训练的机器学习模型中,该模型可以输出图像中的一个或多个识别的状况。作为另一示例,服务器3301(和/或车辆3302)可以使用被训练用于识别图像中的一个或多个状况的人工神经网络。
在步骤3513,可以分析至少一个图像以确定与状况相关联的至少一个标识符。例如,车辆3302可以分析至少一个图像以确定与坑洼(即,状况)相关联的标识符,例如坑洼的位置。与状况相关联的示例性标识符可以包括状况的位置、状况相对于对象的距离、状况相对于一位置的距离等,或它们组合。举例来说,如图34所示,车辆3401可以分析其环境的图像以确定坑洼3431的位置和/或坑洼3431相对于停车标志3421的距离。作为另一个示例,车辆3401可以分析图像以确定施工点相对于建筑物3451的距离。
在一些实施例中,车辆3302还可以被配置成将与所识别的状况和/或与状况相关联的标识符有关的信息发送到服务器3301、数据库3304和/或外部实体3305。
在一些实施例中,服务器3301(和/或车辆3302)可以使用机器学习模型,来在图像中确定与状况相关联的一个或多个标识符。例如,服务器3301(和/或车辆3302)可以获得或使用经训练的机器学习模型来识别与状况相关联的一个或多个标识符。可以使用标记过的标识符、状况和/或图像的训练样本,来训练该经训练的机器学习模型。服务器3301(和/或车辆3302)可以将接收到的图像输入到经过训练的机器学习模型中,该机器学习模型可以输出与状况相关联的一个或多个所确定的标识符。作为另一示例,服务器3301(和/或车辆3302)可以使用被训练用于识别与状况相关联的一个或多个标识符的人工神经网络。
在一些实施例中,服务器3301可以被配置为基于从至少一辆其他车辆接收的信息,来更新与状况相关联的至少一个标识符。
如本公开的其他地方所述,服务器3301可以从多个车辆接收表示车辆环境的一个或多个图像(或一组或多组图像),并分析这些图像以识别具有至少一个动态特性的一个或多个状况。在一些实施例中,服务器3301还可以被配置为对沿着图像中的相同道路路段(或其部分)识别的状况进行聚集和/或关联。例如,服务器3301可以对在从第一车辆接收的第一图像中识别的一个或多个状况和在从第二车辆接收的第二图像中识别的一个或多个状况进行聚集。替代地或附加地,服务器3301可以从经聚集的状况中去除一个或多个重复状况。可替代地,服务器3301可以保留第一和第二图像中都出现的一个或多个识别的状况。服务器3301可以消除仅出现在第一和第二图像中的一者中的一个或多个识别的状况。在一些实施例中,服务器3301可以聚集在从三个或多个车辆接收的图像中识别的状况。替代地或附加地,服务器3301还可以从经聚集的状况中去除一个或多个重复状况。可替代地,服务器3301可以保留出现在所有图像中的一个或多个识别的状况。可替代地,服务器3301可以消除仅出现在该些图像的子集中的一个或多个识别的状况(例如,仅在第一和第三图像中识别出,但未在第二图像中识别)。可替代地,服务器3301可以确定所识别的状况在图像中出现的计数。如果计数等于或超过阈值,则服务器3301可以保留该状况。例如,阈值可以是三,并且服务器3301可以确定所识别的状况在四个图像(例如,从四个不同车辆接收的四个图像)中出现了三次。服务器3301可以保留这个识别的状况。作为另一个示例,服务器3301可以确定另一个识别的状况在四个图像中仅出现一次,并且可以消除这个识别的状况。
替代地或附加地,服务器3301可以被配置为对与在从不同车辆接收的图像中识别的相同状况相关联的一个或多个标识符进行聚集和/或关联。在一些实施例中,关联可以包括基于所确定的标识符,确定每个状况的细化位置。例如,服务器3301可以将基于从第一辆车接收的第一图像的、坑洼3431(如图34所示)相对于停车标志3421的第一确定位置与基于从第二车辆接收的第二图像的、坑洼3431相对于停车标志3421的第二确定位置进行关联。服务器3301还可以基于第一和第二位置,确定坑洼3431相对于停车标志3421的最终位置(或细化位置)。举例来说,服务器3301可以基于对第一图像的分析确定坑洼3431到停车标志3421的第一距离为3.0米,并且确定坑洼3431到停车标志3421的第二距离为2.0米。服务器3301可以通过平均第一距离和第二距离,来确定坑洼3431到停车标志3421的最终距离为2.5米。因此,聚集和/或关联可以包括对位置信息求平均。
在一些实施例中,服务器3301可以确定与在从三个或多个车辆接收的图像中识别的特定状况相关联的一个或多个标识符。服务器3301还可以将针对特定状况确定的标识符进行关联。例如,服务器3301可以对从20个不同车辆接收的20个图像(或图像集)中识别的相同状况的标识符进行关联。服务器3301可以通过例如获得20个位置指示符(即,标识符)的平均值或中值,来确定该状况的细化位置。可替代地,服务器3301可首先从20个位置指示符中滤除一个或多个异常值(例如,通过移除比20个位置指示符的中值或平均值高或低3.4个标准差的位置指示符)。服务器3301然后可以获得剩余位置指示符的平均值或中值,作为该状况的细化位置。在一些实施例中,服务器3301可以为与状况相关联的每个确定的位置指示符确定置信度分数。例如,服务器3301可以基于从第一车辆接收的第一图像,为与状况相关联的第一位置指示符分配第一置信度分数。服务器3301还可以基于从第二车辆接收的第二图像,为与该状况相关联的第二位置指示符分配第二置信度分数。为了确定与该状况相关联的最终位置指示符,服务器3301可以被配置为考虑这些置信度分数。例如,如果第一置信分数高于第二置信分数,则服务器3301可以被配置为通过给予第一位置指示符比第二位置指示符更大的权重,来基于第一和第二位置指示符计算加权平均值。
图35B是示出与本公开的实施例一致的用于收集与道路路段相关联的状况信息的示例性过程3520的流程图。过程3520的一个或多个步骤可以由车辆(例如,车辆3302)、与车辆相关联的设备(例如,车辆设备3303)、服务器(例如,服务器3301)和/或外部实体(例如,外部实体3305)执行。尽管以下提供的过程3510的描述使用服务器3301作为示例,但本领域技术人员将理解过程3520的一个或多个步骤可由车辆、车辆设备和/或外部实体执行。
在步骤3521,可以接收与具有至少一个动态特性的状况相关联的至少一个标识符。在一些实施例中,状况和/或与状况相关联的至少一个标识符可以如本公开中其他地方所述的方式(例如,结合过程3510的描述)来确定。例如,服务器3301可以经由例如网络3306,从车辆3302接收坑洼的位置。在一些实施例中,服务器3301还可以被配置为接收与状况和/或标识符有关的信息。例如,服务器3301可以被配置为接收与在其中识别出坑洼的道路路段相关的定位信息。作为另一个示例,服务器3301可以被配置为接收施工点的许可信息(例如,允许的操作时段)。
在步骤3522,可以更新数据库记录以包括与状况相关联的至少一个标识符。例如,服务器3301可以从数据库3304获得与道路路段(和/或识别的状况)相关联的数据库记录,并且更新该数据库记录以包括与该状况相关联的至少一个标识符。举例来说,服务器3301可以获得与道路路段(或其一部分)相关联的数据库记录以包括坑洼3431的位置。作为另一个示例,服务器3301可以获得与人行横道3441相关联的数据库记录,并更新该数据库记录以包括基于对从车辆3401接收到的一个或多个图像的分析而确定的行人密度。
在步骤3523,可以将数据库记录发送到至少一个实体。例如,服务器3301可以经由例如网络3306,将更新后的数据库记录传输到一个或多个车辆3302、数据库3304和/或外部实体3305(或与外部实体3305相关联的计算设备)。在一些实施例中,外部实体3305可以包括市政当局(或与市政当局相关联的计算设备)。在一些实施例中,外部实体3005可以包括代理市政当局或其他管理实体或在其指示下行动的实体。
使用语义和非语义信息来对齐驾驶并构建地图
如上所述,本公开的系统和方法可以包括从车辆或其他来源收集信息,并基于所收集的信息生成用于车辆导航的稀疏地图。为了基于穿越一道路路段的多个驾驶(drives)而生成地图,可以对齐在多个驾驶期间获得的驾驶信息。如上所述,可以基于在车辆捕获的图像中识别出的、具有已辨识类型的对象来执行对齐。此类特征可称为“语义”特征,可以包括如上所述的停车标志、交通信号灯或其他已辨识特征。在一些实例中,单独使用语义特征可能不足以对齐多个驾驶。例如,一段特定的道路可能不包括足够的语义道路特征来准确或有效地对齐信息。因此,在一些实施例中,非标准类型的检测特征,例如道路裂缝、独特的坑洼或未与预定对象类别相关联的其他特征也可以被用于对准。这样的特征可以被称为“非语义”特征。通过提供额外的数据点用于对齐,语义特征和非语义特征两者的使用可以提高基于多个驾驶生成稀疏地图的准确性、效率和有效性。
图36是与本公开的实施例一致的用于基于语义和非语义道路特征来对齐来自多个驾驶的信息的系统的示意图。图36示出了示例道路路段3600,其可以由一个或多个车辆3610和3620穿过。为了简单起见,道路路段3600被示为具有单个行驶车道。然而,如本公开通篇所描述的,道路路段3600可以包括具有多个车道和/或多个行驶方向的更复杂的道路路段。在一些实施例中,车辆3610和3620可对应于上文讨论的车辆200(或车辆1205、1210、1215、1220或1225)。因此,本文中关于车辆200的任何描述或公开也可适用于车辆3610和3620。在一些实施例中,车辆3610和3620中的至少一个可以是自主车辆。车辆3610和3620可以被配置为捕获道路路段3600的图像。因此,每个车辆可以配备图像捕获设备或相机(例如,图像捕获设备122或相机122)。车辆3610和3620可以分别包括处理单元3612和3622,用于处理和发送捕获的图像。在一些实施例中,车辆3610和3620可以表示沿路段3600的多个驾驶。例如,车辆3610和3620可以在相同时间或不同时间在路段3600上行驶(尽管在图36中示出为同时出现在路段1200上)。在一些实施例中,车辆3610和车辆3620可以是相同的车辆。例如,同一车辆可以在两个不同的时间穿过路段3600,从而表示沿路段3600的多次驾驶,该多次驾驶可以被用于生成稀疏地图。
每个车辆可以通过无线通信路径3632、经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)与远程服务器3630通信。服务器3630可以是能够接收和处理用于生成导航地图的信息的任何计算设备。在一些实施例中,服务器3630可以对应于如上所述的服务器1230。因此,本文参考服务器1230作出的任何描述或公开也可适用于服务器3630。车辆3610和3620可以将数据发送至服务器3630并从服务器3630接收数据。例如,服务器3630可从在不同时间在道路路段3600上行驶的多个车辆收集数据,并且可以处理收集到的数据以生成自主车辆道路导航模型或对模型进行更新。服务器3630可以将自主车辆道路导航模型或对模型的更新发送到向服务器3630发送了数据的车辆。此外,服务器3630可以将自主车辆道路导航模型或对模型的更新发送到在稍后时间在道路路段3600上行驶的其他车辆。
道路路段3600可以包括语义道路特征3650和非语义道路特征3640两者。车辆3610和3620可以捕获描绘非语义道路特征3640和语义道路特征3650的图像,其可以被用于生成稀疏地图。具体地,服务器3630可以基于非语义道路特征3640和语义道路特征3650两者,来对齐来自多个驾驶的信息(例如,车辆3610和3620捕获的信息)以生成道路导航模型。
图37A示出了与本公开的实施例一致的可以由车辆3610和/或3620捕获的示例图像3700。如图37A所示,图像3700可以包括语义道路特征3650和非语义道路特征3640两者的表示,其可以被用于对齐。出于说明的目的,图像3700被示为包括非语义道路特征和语义道路特征两者。然而,在一些实施例中,非语义道路特征3640和语义道路特征3650可以在沿着相同道路路段捕获的单独图像中表示。
如这里所使用的,“语义道路特征”可以指沿着道路路段的、与已辨识对象分类相关联的任何特征。例如,如图36所示,语义道路特征3650可以是交通标志,例如让行标志。语义道路特征3650可以是沿车行道具有已辨识对象类型的任何其他特征或对象。这样的语义道路特征可以包括车道标记、道路标志、高速公路出口坡道、交通灯、灯柱、高速公路标记或可以被辨识为具有经定义的类型或其他分类的任何其他特征。在一些实施例中,语义道路特征3650可以与对象的子类型或子分类相关联。例如,在语义道路特征3650是交通标志的情况下,如图37A所示,可以基于标志的形状和外观而将其归类在让路标志的子类别下,如上面更详细地描述的。其他类似的交通标志子类型可以包括限速标志、路线编号标志、交通灯标志、停车标志、方向标志、警告标志、并道标志、出口标志、铁路道口标志或任何其他可辨识类型的交通标志。作为另一个示例,在语义道路特征3650是车道标记的情况下,可以基于特定类型的车道标记对其进行分类,例如虚线车道标记、双线车道标记、人行横道、减速带、铁路道口、停止线或任何其他可辨识类型的道路标记。
服务器3650可以被配置为处理与识别出的道路特征(包括语义道路特征)相关联的数据,以对齐从沿道路路段的多个驾驶收集的信息。为了增加可用于对齐驾驶信息的数据点数量或在语义数据点不足的区域提供数据点,还可以使用非语义道路特征,例如非语义道路特征3640来进行对齐。如本文所用“非语义道路特征”可以指沿道路路段的、未与已辨识的对象类型或分类相关联的任何特征。例如,如图36和37A所示,非语义道路特征3640可以是坑洼。当处理图像3700时,处理器3612(或服务器3630)可以辨识出图像3700内的非语义道路特征3640,但可能不会将其与已知的对象类型相关联。例如,“坑洼”可能不是由处理器3612或服务器3630辨识的对象类型。然而,处理器3610仍然可以确定非语义道路特征3640的位置,类似于如何为语义道路特征确定位置并传输向服务器3630提供位置信息。在一些实施例中,处理器3610可以提供与非语义道路特征3640相关联的其他信息,这些信息可以用于对遍及多个驾驶的非语义道路特征3640的位置信息进行关联。例如,处理器3610可以包括形状、颜色、大小或可以基于图像3700为非语义道路特征3640确定的其他信息。可以将该信息与其他驾驶中所报告的关于非语义道路特征的信息进行比较,以对位置信息进行关联从而进行对齐。例如,如果车辆3610和3620各自报告路面上具有相似尺寸和形状并且在沿道路路段3600大致相同的位置的特征,则服务器3630可以对这两个道路特征进行关联。因此,服务器3630然后可以使用经关联的非语义道路特征来对齐两个驾驶。在一些实施例中,如果识别信息和/或位置信息在某个阈值内,则所报告的非语义道路特征可以用于对齐。例如,如果确定车辆3610报告的非语义道路特征的宽度值在另一车辆报告的非语义道路特征的某个阈值内(例如,在90%内、0.1m内或任何其他相似性度量),则所报告的位置可以用于对齐。在一些实施例中,可以仅基于位置来对非语义道路特征进行关联。例如,为了对齐的目的,可以对特定阈值距离(例如,0.01m、0.1m、1.0m等)内的非语义道路特征进行关联。
虽然作为示例使用坑洼,但非语义道路特征3640可以包括车辆的环境内的未与预定对象类型或分类相关联的任何可检测特征。图37B-图37D示出了与本公开的实施例一致的可用于对齐目的的示例非语义道路特征。在一些实施例中,非语义道路特征3640可以包括广告标志,例如广告牌3710,如图37B所示。因为广告牌3710不是已辨识的交通标志类型,所以它可以被归类为非语义道路特征并被用于对齐目的。还可以识别诸如广告牌3710的形状、宽度、高度、颜色或其他属性之类的信息,用于对遍及多个驾驶针对广告牌3710所报告的位置信息进行关联。在一些实施例中,显示在广告牌3710表面上的图像、形状、文本或其他特征也可用于在多个驾驶之间识别广告牌3710。例如,在图37B所示的示例中,处理器3612可以使用如上所述的各种图像处理算法,来识别对应于咖啡杯3712的形状或图像。在其他实施例中,处理器3612可以识别文本3714,例如使用OCR算法或其他文本识别技术。可将此类信息用于遍及多组驾驶而识别广告牌3710。各种其他类型的标志也可以被视为非语义道路特征,包括施工标志、信息标志、政治标志、国家或州立公园标志、户外商业标志、手工标志(例如,庭院销售标志、当地广告标志等)。
在一些实施例中,非语义道路特征可以包括交通标志3720的背面,如图37C所示。例如,交通标志3720可以与一行驶车道相关联,该行驶车道具有与车辆3610所行驶方向相反的行驶方向。因此,因为在捕获的图像中仅表示交通标志的背面,所以处理器3610可能无法将交通标志3720识别为交通标志,并因此可以将其归类为非语义道路特征。交通标志3720背面的属性,例如高度、形状、颜色或其他属性,可以被用于对遍及多个驾驶中的交通标志3720的位置信息进行关联。作为另一个示例,非语义道路特征640可以包括灯柱3730,如图37D所示。需要注意,在一些实施例中,灯柱可以被辨识为用于对齐的语义道路特征。因此,道路特征被认为是语义的还是非语义的可以取决于服务器3630所辨识的对象类型的分类。因此,取决于服务器所辨识的对象的类型,在一些实施例中可以是语义道路特征的交通标志、车道标记、高速公路标记、交通信号或任何其他特征,在其他实施例中可以是非语义道路特征。此外,在某些情况下,如果具有预定义类型的道路特征未被辨识为具有该预定义类型,则可以将其分类为非语义道路特征。例如,灯柱3730可能具有与服务器3630通常所辨识出的设计不同的设计、可能已损坏或变脏、或者可能由于其他原因而未被检测为灯柱,因此可能被视为无语义的但仍被用于对齐目的。
除了图37A-图37D中所示的那些之外,各种其他非语义道路特征可以用于对齐。在一些实施例中,非语义道路特征可以包括道路表面上的特征,例如裂缝、坑洼、井盖、油渍、轮胎痕迹、油漆飞溅或散落的油漆标记、较暗或较浅的路面补丁、模糊的或无法辨识的车道标记(例如,自行车道指示(designation)、让行线等)、污垢补丁、磨损的路面区域、部分磨损的车行道标记或道路表面上的任何其他可检测的特征。在一些实施例中,非语义道路特征可以包括沿道路路段的对象。例如,非语义道路特征可以包括植物(例如,草、花、灌木、灌木从、树木、仙人掌、苔藓等)、栅栏柱、电话柱、电气或通讯箱、长凳、建筑物、邮箱、公共汽车车站、火车站、垃圾箱或回收箱、护柱(bollards)、岩石或任何其他沿车行道可以被发现的对象。在一些实施例中,非语义道路特征可以是临时的或暂时的,但可以在一个位置保持足够长的时间以使其可以沿多个驾驶被检测到。例如,非语义道路特征可以包括交通锥、施工车辆、施工设备、施工标志、停放或报废车辆、道路交通事故、垃圾或碎片、水坑、可收集垃圾箱,或任何其他非永久性或半永久性对象或道路标记。尽管本文提供了非语义道路特征的各种示例,但本公开不限于任何类型或形式的非语义道路特征。
基于语义道路特征和非语义道路特征,服务器3630可以对齐从多个驾驶收集的信息。例如,车辆3610可以捕获图像,例如图像3700,其包括非语义道路特征3640和语义道路特征3650的表示。可以基于所捕获的图像来确定道路特征的位置。在一些实施例中,可由车辆3610例如使用处理器3612来确定该位置。在其他实施例中,可以在服务器侧确定该位置。例如,车辆3610可以将捕获的图像3700或从图像3700导出的信息发送到服务器3630,服务器3630可以基于接收到的信息来确定语义道路特征3650和非语义道路特征3640的位置。
类似地,第二车辆3620可以将语义和非语义道路特征的位置连同其他驾驶信息一起报告给服务器3630。这样的信息可以与来自车辆3610的信息同时发送或在不同时间发送。服务器3630可以比较与车辆3610和3620报告的非语义道路特征3640和语义道路特征3650相关联的3维位置信息,并且可以基于语义道路特征3650的报告位置来对齐驾驶信息。基于该对齐,服务器3630可以确定语义和非语义道路特征的细化位置。例如,服务器3630可以确定语义和非语义道路特征中的每一个的平均位置,并且可以将平均位置存储在地图中。在其他实施例中,服务器3630可以将回归分析或曲线拟合算法应用于语义和非语义道路特征的位置,以确定细化位置。例如,细化的位置可以基于对所报告的语义和非语义道路特征位置的线性、多项式、指数、对数或幂曲线拟合。语义和非语义道路特征的细化位置可以基于稀疏地图的坐标系来定义。例如,细化点可以用如上所述的坐标(x,z)来表示,或者使用任何其他坐标系。在一些实施例中,坐标系可以是公共道路路段的局部坐标系。在上面关于图14-图16描述了可以执行的特征对齐的附加细节。如上所述,服务器3630可以被配置为在地图中存储细化的位置,并且可以将地图分发给一个或多个车辆以用于沿道路路段的导航。
图38是示出与本公开的实施例一致的用于将从多个车辆收集的相对于公共道路路段的信息进行关联的示例过程3800的流程图。过程3800可以由服务器执行,例如服务器3630。在一些实施例中,过程3800的一些或全部可以由车辆的处理单元执行,例如车辆3610的处理器3612。在一些实施例中,非暂时性计算机可读介质可以包括当由处理器执行时使处理器执行过程3800的指令。
在步骤3810,过程3800可以包括从第一车辆接收第一组驾驶信息。例如,第一组驾驶信息可以由服务器3630从车辆3610接收。第一组驾驶信息可以至少包括:与检测到的语义道路特征(例如语义道路特征3650)相关联的第一位置指示符;以及与检测到的非语义道路特征(例如非语义道路特征3640)相关联的第二位置指示符。可以基于在第一车辆沿着公共道路路段的至少一部分的驾驶期间由第一车辆的相机捕获的至少一个图像的分析,来确定第一位置指示符和第二位置指示符。例如,如上所述,车辆3610可以沿道路路段3600捕获图像3700,并且可以使用一种或多种图像分析技术确定非语义道路特征3640和语义道路特征3650的位置。
如上所述,语义道路特征可以包括具有已辨识对象类型的对象。语义道路特征可以包括上面讨论的任何示例语义道路特征,包括例如交通灯、停车标志、限速标志、警告标志、方向标志或车道标记。非语义道路特征可以包括不具有已辨识对象类型的对象。例如,非语义道路特征可以包括坑洼、道路裂缝或广告标志。上文提供了非语义道路特征的各种其他非限制性示例。
在步骤3820,过程3800可以包括从第二车辆接收第二组驾驶信息。例如,第二组驾驶信息可以由服务器3630从车辆3620接收。第二组驾驶信息可以至少包括:与检测到的语义道路特征相关联的第三位置指示符;以及与所检测到的非语义道路特征相关联的第四位置指示符。与第一组驾驶信息一样,可以基于对在第二车辆沿公共道路路段的至少一部分的驾驶期间由第二车辆的相机捕获的至少一个图像的分析,来确定第三位置指示符和第四位置指示符。如上所述,在一些实施例中,第二车辆可以与第一车辆同时或不同时间捕获公共道路路段的图像。在一些实施例中,第一车辆和第二车辆可以是在不同时间穿过公共道路路段的同一车辆。
在步骤3830,过程3800可以包括对第一组驾驶信息和第二组驾驶信息进行关联。此关联可以对应于以上更详细描述的对齐技术。例如,进行关联可以包括:基于与检测到的语义道路特征相关联的第一位置指示符和第三位置指示符,来确定检测到的语义道路特征的细化位置;以及基于与检测到的非语义道路特征相关联的第二位置指示符和第四位置指示符,来确定检测到的非语义道路特征的细化位置。如上所述,检测到的语义道路特征和检测到的非语义道路特征的细化位置可以相对于公共道路路段的局部坐标系。在一些实施例中,公共道路路段的局部坐标系可以基于由多个车辆上的相机捕获的多个图像。例如,可以基于对图像的分析来开发坐标系以确定与道路路段相关联的三维空间,从该三维空间可以开发三维坐标系。上面提供了关于用于生成稀疏地图的三维坐标的更多细节。在一些实施例中,进行关联还可以包括将曲线拟合算法应用于第一组驾驶信息和第二组驾驶信息。换言之,可以确定由一数学函数定义的曲线,该数学函数与检测到的语义和非语义道路特征的位置指示符具有“最佳拟合”。例如,可以执行线性或非线性回归分析以将曲线拟合到驾驶信息。在一些实施例中,对驾驶信息进行关联包括基于多个位置指示符来确定道路特征的平均位置。
在步骤3840,过程3800可以包括将检测到的语义道路特征和检测到的非语义道路特征的细化位置存储在地图中。例如,检测到的语义道路特征和检测到的非语义道路特征的细化位置可以存储在稀疏地图中,如上面更详细描述的。因此,第一组驾驶信息和第二组驾驶信息可以被“对齐”,以形成单个综合的驾驶信息集合。在一些实施例中,可以使用额外组的驾驶信息来对此重复若干次以形成稀疏地图,例如稀疏地图800。
在步骤3850,过程3800可以包括将地图分发给一个或多个车辆以用于沿着公共道路路段导航一个或多个车辆。例如,可以由服务器3630将基于经对齐的驾驶信息而开发的稀疏地图分发到车辆3610和3620以用于导航。在一些实施例中,地图生成可以不在地图的初始生成和分发时就结束。例如,如上所述,可以基于在车辆继续穿过公共道路路段时从那些车辆收集的数据,来连续或周期性地更新稀疏地图。因此,步骤3840可以包括分发对稀疏地图的更新,该更新包括用于仅更新可以被存储在车辆中的整个稀疏地图的一部分的信息。
收集非语义特征点
如上所述,所公开的系统和方法可以包括出于对齐驾驶信息的目的,从多个车辆收集与非语义道路特征相关联的位置信息。因此,诸如上述车辆3610和3620之类的车辆可以被配置为从图像捕获设备捕获的图像中检测非语义道路特征,并确定非语义道路特征的坐标。尽管以上概括地描述了此类技术,但以下公开内容提供了此类过程的附加细节。
诸如上文关于图36描述的车辆3610之类的车辆可以包括用于从车辆3610的环境内捕获图像的至少一个图像捕获设备。例如,可以使用车辆200的图像获取单元120(例如,通过图像捕获设备122)捕获图像。图像传感器可以包括任何合适类型的图像捕获设备,例如如上所述的具有全局快门的Aptina M9V024 WVGA传感器,或任何其他形式的图像传感器。车辆3610还可以配备处理设备3612,其可以被配置为处理由图像捕获设备捕获的图像。处理设备3612可以被配置为检测由图像捕获设备捕获的图像中表示的非语义道路特征。例如,类似于上述各种地标的检测,车辆3610可以使用各种图像识别算法或软件来识别捕获图像内的点位置。例如,车辆3610可以识别与非语义道路特征相关联的一系列边缘点、拐角点或各种其他点的位置。
图39A和图39B示出了与本公开的实施例一致的可以用于检测非语义道路特征的示例图像3901和3902。如图39A所示,图像3901可以包括沿道路路段3900所包含的非语义道路特征3940。图像3901可以由图像捕获设备捕获,例如图像获取单元120中包括的图像捕获设备122和/或124。非语义道路特征3940可以对应于上述非语义道路特征3640,因此以上关于非语义道路特征3640提供的任何实施例或描述也可以适用于非语义道路特征3940。虽然坑洼是作为示例使用,也可以检测以上提供的各种示例非语义道路特征中的任一个。例如,非语义道路特征3940可以包括但不限于广告标志、灯柱、道路裂缝、建筑物、标志的背面、道路中的标记或变色、植物(例如,树、灌木、草、仙人掌等)或可能未与已辨识对象类型相关联的任何其他特征。
处理单元3612可以被配置为从图像3901中检测非语义道路特征3940的表示。如上所述,这可以包括使用图像识别算法,例如Viola-Jones对象检测、尺度不变特征变换(SIFT)、定向梯度直方图(HOG)特征、卷积神经网络(CNN)或任何其他形式的对象检测算法。其他示例算法可以包括视频跟踪算法、运动检测算法、特征检测算法、基于颜色的检测算法、基于纹理的检测算法、基于形状的检测算法、基于增强的检测算法、面部检测算法或用于分析一个或多个图像的任何其他合适的算法。在一些实施例中,可以通过经过训练的机器学习算法来识别非语义道路特征。例如,可以使用包含非语义道路特征的图像训练集来训练算法,以开发可以被用于检测其他图像中的非语义道路特征的模型。可以使用各种机器学习模型,包括逻辑回归模型、线性回归模型、回归模型、随机森林模型、K-最近邻(KNN)模型、K-Means模型、决策树、cox比例风险回归模型、朴素贝叶斯模型、支持向量机(SVM)模型、梯度提升算法、人工神经网络(例如深度神经网络、卷积神经网络等)或任何其他形式的机器学习模型或算法。
处理单元3612可以被配置为检测与非语义道路特征3940相关联的一个或多个点。例如,处理单元3612可以识别可对应于非语义道路特征3940的拐角的点3942,如图39A所示。可以确定与非语义道路特征3940相关联的各种其他点,包括位于非语义道路特征3940的边缘上的点、位于非语义道路特征3940的表面上的点等。基于点3942的位置,可以确定非语义道路特征3940的坐标。如上所述,基于由多个车辆检测到的位置而生成的稀疏地图可以由三维样条表示。因此,可以在三维空间中表示非语义道路特征3940的坐标。可以参考坐标系来确定三维坐标,该坐标系可以相对于图像捕获设备、真实世界坐标(例如,纬度和经度等)、道路路段3900的局部坐标系,或任何其他合适的参考系。在一些实施例中,可以基于点3942相对于车辆3610的估计位置,来确定点3942的坐标。例如,基于点3942在图像3901内的位置,处理单元3612可以确定点3942相对于车辆3610的近似位置。在确定点3942的位置时,可以考虑相机角度、车辆速度、车辆宽度、相机相对于车辆的位置或各种其他因素。
在一些实施例中,点3942的三维坐标可以基于在多个图像中对点3942的检测。图39B示出了可用于确定点3942的三维坐标的第二图像3902的实例。在图39B所示的示例中,图像3902可以在图像3901之后的某个时间拍摄。例如,图像3901和3902可以是由车辆3610上的图像捕获设备捕获的连续图像。作为另一示例,在图像3901捕获时间和图像3902捕获时间之间的时间段内,可以已经捕获了一个或多个其他图像。如图39B所示,相对于图像3901,非语义道路特征3940的表示可以出现在图像3902内的不同位置。例如,处理单元3612可以检测与非语义道路特征3940的同一拐角点相关联的第二图像位置3944。出于说明的目的,点3942覆盖在图39B中的图像3902上,虽然点3492不对应于图像3902内的任何特征。在图39A和图39B中,图像3901和3902之间的差异可以被大大夸大了。例如,在实践中,由图像捕获设备捕获的连续图像之间的差异可能更加细微,因为图像捕获捕获每秒可以捕获许多图像帧(例如,数十、数百、数千等)。因此,为了说明的目的,图39A和图39B所示的图像3901和3902之间的差异被夸大了。
处理单元3612可以确定相应图像中的点3942和3942之间的差异,如虚线3950所示。在一些实施例中,可以结合车辆3610的运动信息来分析该差异以确定三维坐标。例如,车辆可以使用GPS数据、传感器数据(例如,来自于加速度计、速度传感器、悬架传感器等)和/或其他数据,来确定与非语义道路特征3940相关联的点的坐标。例如,处理单元3612可以基于车辆3610在图像3901被拍摄时的位置来确定点3942的坐标,并且可以基于车辆3610在图像3902被拍摄时的位置来确定相同点(由图像位置3944表示)的坐标。理想情况下,点3940的三维坐标在这些时间中的每一个时间中将是相同的。但是,在某些情况下,由于车辆的移动或其他错误来源,可能会存在轻微偏差。传感器数据(例如悬架传感器数据、加速度计数据或其他数据)可被用于校正基于图像数据而确定的两个或更多个坐标之间的任何偏差。
此外,虽然图像3901和3902在图39A和39B中被示为是连续的图像,但是在一些实施例中,它们可以例如由两个单独的图像捕获设备(例如,图像捕获设备122和图像捕获设备124)同时捕获。在一些实施例中,图像3901和3902可以形成立体对。基于图像内的非语义道路特征的表示之间的差异(例如,差异3950),因为相应图像捕获设备的公知的位置和方向,可以确定相对于车辆3610的三维坐标。用于基于差异3950和/或车辆的运动信息来确定点3942的三维坐标的各种其他技术对于本领域技术人员来说是显而易见的。
车辆3610可以被配置为将非语义道路特征3940的三维坐标发送到服务器,例如上面关于图36描述的服务器3630。车辆3610可以通过无线传输发送三维坐标,如箭头3632所示。服务器3630可以被配置为基于接收到的坐标,来生成和/或更新道路导航模型。在一些实施例中,可以从其他车辆,例如从车辆3620接收非语义道路特征3940的坐标。如上面更详细的描述,服务器3630可以基于包括在相应驾驶信息中的非语义道路特征的坐标,来对齐从车辆3610和3620接收的驾驶信息。在一些实施例中,上述步骤中的一些或全部可以由服务器3630执行。例如,处理单元3612可以将由图像捕获设备捕获的一个或多个图像(或相关联的信息)发送到服务器3630,服务器3630可以确定与非语义道路特征3940相关联的点的三维坐标。
图40是示出与本公开的实施例一致的用于确定非语义道路特征点的示例过程4000的流程图。过程4000可以例如由车辆3610的处理单元3612执行,如上所述。在其他实施例中,过程4000的一些或全部可以由服务器执行,例如服务器3630。在一些实施例中,非暂时性计算机可读介质可包含当由处理器执行时使处理器执行过程4000的指令。
在步骤4010中,过程4000可以包括从车辆的相机接收从车辆的环境捕获的多个图像。例如,车辆3610可以使用诸如图像捕获设备122之类的图像捕获备来捕获多个图像。在步骤4020中,过程4000可以包括分析多个图像的第一图像以识别在第一图像中表示的非语义道路特征。例如,处理单元3612可以分析图像3901以识别在图像3901中表示的非语义道路特征3940。如上所述,这可以包括各种图像处理或对象识别技术,例如卷积神经网络(CNN)、尺度不变特征变换(SIFT)、定向梯度直方图(HOG)特征或其他技术。非语义道路特征可以包括不具有已辨识对象类型的对象。因此,非语义道路特征可以包括本文提供的各种示例中的任何示例。例如,非语义道路特征可以包括坑洼、道路裂缝、标志的背面、建筑物、灯柱、广告标志或未与预定对象类型相关联的任何其他特征。在步骤4030中,过程4000还可以包括识别与非语义道路特征相关联的至少一个点在第一图像中的第一图像位置。例如,处理单元3612可以检测非语义道路特征3940的点3942。至少一个点可以包括拐角点、边缘点、表面上的点或可以关于非语义道路特征而检测到的任何其他位置。
在步骤4040中,过程4000可以包括分析多个图像中的第二图像以识别该非语义道路特征在第二图像中的表示。例如,处理单元3612可以分析图像3902以识别在图像3902中表示的非语义道路特征3940。如上所述,可以在第一图像之后的某个时间捕获第二图像。例如,第一和第二图像可以是由图像捕获设备捕获的连续图像。在其他实施例中,第一和第二图像可以同时被捕获,例如由单独的图像捕获设备捕获。在一些实施例中,第一和第二图像捕获设备可以形成立体对。在步骤4050,过程4000可以包括识别与该非语义道路特征相关联的至少一个点在第二图像中的第二图像位置。例如,处理单元3612可以识别图像3902内的第二图像位置3944。
在步骤4060,过程4000可以包括确定与该非语义道路特征相关联的至少一个点的三维坐标。在一些实施例中,三维坐标可以基于第一图像位置和第二图像位置之间的差异。例如,可以至少部分地基于点3942和3944之间的差异3950,来确定三维坐标。在一些实施例中,三维坐标可以进一步基于车辆在第一图像的捕获和第二图像的捕获之间的运动信息。例如,处理单元3612使用GPS数据、传感器数据(例如,来自于加速度计、速度传感器、悬架传感器等)和/或其他数据来确定与非语义道路特征相关联的至少一个点的三维坐标。
在一些实施例中,与非语义道路特征相关联的至少一个点的三维坐标可以相对于与相机的位置相对应的原点。换言之,三维坐标可以基于源自图像捕获设备的三维坐标系。然后基于相机的真实世界位置来确定至少一个点的真实世界坐标,该相机的真实世界位置可以基于车辆的GPS或其他位置信息来确定。如上所述,三维坐标可以位于相对于非语义道路特征的各种位置。例如,三维坐标可以位于非语义道路特征的拐角处、非语义道路特征的边缘上、非语义道路特征的表面上或各种其他位置中。
在一些实施例中,三维坐标的位置可以取决于所识别的非语义道路特征的类型。例如,在一些实施例中,非语义道路特征可以是标志的背面,并且三维坐标可以在标志背面的表面上。三维坐标可以类似地位于标志的拐角上、标志的边缘上、标志柱的拐角上、标志柱的边缘上、标志或标志柱的中心处等。作为另一个示例,非语义道路特征可以是建筑物,并且三维坐标可以在建筑物的表面上。在该示例中,三维坐标可以位于建筑物的拐角上、建筑物的边缘、建筑物的特征(例如门、窗、商业标志等)上。作为又一个示例,非语义道路特征可以是灯柱,并且三维坐标可以在灯柱表面上、灯柱的边缘上、灯柱的末端上等。作为另一个示例,非语义道路特征可以是坑洼,并且三维坐标可以在坑洼的边缘、坑洼的中心、坑洼的拐角处等。
在步骤4070,过程4000可以包括将与非语义道路特征相关联的至少一个点的三维坐标发送到服务器,以用于更新道路导航模型。例如,处理单元3612可以通过无线传输将三维坐标发送到服务器3630。在一些实施例中,服务器可以被配置为对该车辆发送的三维坐标与由至少一个其他车辆发送的与该非语义道路特征相关联的至少一个点的三维坐标进行关联。例如,服务器3630可以从车辆3620接收该非语义道路特征的额外的三维坐标。服务器3630可以基于从每个车辆接收的相应三维坐标来对齐从车辆3610和3620接收的驾驶信息。在一些实施例中,该关联可以基于以上描述的过程,例如过程3800。
出于说明的目的已经呈现了前面的描述。它不是穷举性的并且不限于所公开的精确形式或实施例。考虑到所公开实施例的说明书和实践,修改和改编对于本领域技术人员来说是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,但本领域的技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储装置,例如,硬盘或CDROM、或其他形式的RAM或ROM、USB介质、DVD、蓝光、4K超高清蓝光、或其他光驱动介质。
基于书面说明和所公开的方法的计算机程序在有经验的开发人员的技术范围内。可以使用任何本领域技术人员已知的技术来创建或可以结合现有的软件来设计各种程序或程序模块。例如,程序部分或程序模块可以以或通过.NET Framework、.NET CompactFramework(以及相关的语言,诸如Visual Basic,C等)、JAVA、C++、Objective-C、HTML、HTML/AJAX组合、XML或者包含Java小程序的HTML来设计。
此外,虽然已经在本文中描述了说明性实施例,但是本领域技术人员基于本公开将认识到具有等同的要素、修改、省略、组合(例如,遍及各个实施例的方面的)、改编和/或变化的任何以及所有实施例的范围。权利要求书中的限定将基于权利要求书中采用的语言宽泛地解释,并且不限于在本说明书中或在本申请的审查期间所描述的示例。示例将被解释为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包含通过重新排序步骤和/或插入或删除步骤。因此,意图是说明书和示例被视为仅是说明性的,真正的范围和精神由以下权利要求及其等同物的全部范围来表示。

Claims (24)

1.一种用于车辆的导航系统,所述系统包括:
至少一个处理器,被编程为:
从所述车辆的相机接收从所述车辆的环境捕获的多个图像;
分析所述多个图像中的第一图像以识别在所述第一图像中表示的非语义道路特征;
识别与所述非语义道路特征相关联的至少一个点在所述第一图像中的第一图像位置;
分析所述多个图像中的第二图像以识别所述非语义道路特征在所述第二图像中的表示;
识别与所述非语义道路特征相关联的至少一个点在所述第二图像中的第二图像位置;
基于所述第一图像位置与第二图像位置的差异以及基于所述车辆在所述第一图像的捕获与所述第二图像的捕获之间的运动信息,确定与所述非语义道路特征相关联的至少一个点的三维坐标;
将与所述非语义道路特征相关联的所述至少一个点的所述三维坐标发送到服务器以用于更新道路导航模型。
2.根据权利要求1所述的导航系统,其中,与所述非语义道路特征相关联的所述至少一个点的所述三维坐标相对于与所述相机的位置对应的原点。
3.根据权利要求1所述的导航系统,其中,所述服务器被配置为对所述车辆发送的所述三维坐标与由至少一个其他车辆发送的与所述非语义特征相关联的至少一个点的三维坐标进行关联。
4.根据权利要求1所述的导航系统,其中,所述三维坐标位于所述非语义道路特征的拐角处。
5.根据权利要求1所述的导航系统,其中,所述三维坐标位于所述非语义道路特征的边缘上。
6.根据权利要求1所述的导航系统,其中,所述三维坐标位于所述非语义道路特征的表面上。
7.根据权利要求1所述的导航系统,其中,所述非语义道路特征是标志的背面,并且所述三维坐标在所述标志的所述背面的表面上。
8.根据权利要求1所述的导航系统,其中,所述非语义道路特征是建筑物,并且所述三维坐标在所述建筑物的表面上。
9.根据权利要求1所述的导航系统,其中,所述非语义道路特征是灯柱,并且所述三维坐标在所述灯柱的表面上。
10.根据权利要求1所述的导航系统,其中,所述非语义道路特征是坑洼,并且所述三维坐标在所述坑洼的边缘处。
11.根据权利要求1所述的导航系统,其中,所述非语义道路特征包括不具有已辨识对象类型的对象。
12.根据权利要求1所述的导航系统,其中,所述非语义道路特征包括坑洼、道路裂缝、标志的背面、建筑物、灯柱或广告标志。
13.一种用于导航车辆的方法,所述方法包括:
从所述车辆的相机接收从所述车辆的环境捕获的多个图像;
分析所述多个图像中的第一图像以识别在所述第一图像中表示的非语义道路特征;
识别与所述非语义道路特征相关联的至少一个点在所述第一图像中的第一图像位置;
分析所述多个图像中的第二图像以识别所述非语义道路特征在所述第二图像中的表示;
识别与所述非语义道路特征相关联的至少一个点在所述第二图像中的第二图像位置;
基于所述第一图像位置与第二图像位置的差异以及基于所述车辆在所述第一图像的捕获与所述第二图像的捕获之间的运动信息,确定与所述非语义道路特征相关联的所述至少一个点的三维坐标;
将与所述非语义道路特征相关联的所述至少一个点的所述三维坐标发送到服务器以用于更新道路导航模型。
14.根据权利要求13所述的方法,其中,与所述非语义道路特征相关联的所述至少一个点的所述三维坐标相对于与所述相机的位置对应的原点。
15.根据权利要求13所述的方法,其中,所述服务器被配置为对所述车辆发送的所述三维坐标与由至少一个其他车辆发送的与所述非语义特征相关联的至少一个点的三维坐标进行关联。
16.根据权利要求13所述的方法,其中,所述三维坐标位于所述非语义道路特征的拐角处。
17.根据权利要求13所述的方法,其中,所述三维坐标位于所述非语义道路特征的边缘上。
18.根据权利要求13所述的方法,其中,所述非语义道路特征位于所述非语义道路特征的表面上。
19.根据权利要求13所述的方法,其中,所述非语义道路特征是标志的背面,并且所述三维坐标在所述标志的所述背面的表面上。
20.根据权利要求13所述的方法,其中,所述非语义道路特征是建筑物,并且所述三维坐标在所述建筑物的表面上。
21.根据权利要求13所述的方法,其中,所述非语义道路特征是灯柱,并且所述三维坐标在所述灯柱的表面上。
22.根据权利要求13所述的方法,其中,所述非语义道路特征是坑洼,并且所述三维坐标在所述坑洼的边缘处。
23.根据权利要求13所述的方法,其中,所述非语义道路特征包括不具有已辨识对象类型的对象。
24.根据权利要求13所述的方法,其中,所述非语义道路特征包括坑洼、道路裂缝、标志的背面、建筑物、灯柱或广告标志。
CN202210591781.0A 2019-02-14 2020-02-14 用于车辆的导航系统和用于导航车辆的方法 Pending CN115014383A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962805646P 2019-02-14 2019-02-14
US62/805,646 2019-02-14
US201962813403P 2019-03-04 2019-03-04
US62/813,403 2019-03-04
CN202080014545.1A CN114207381A (zh) 2019-02-14 2020-02-14 用于车辆导航的系统和方法
PCT/IB2020/000115 WO2020165650A2 (en) 2019-02-14 2020-02-14 Systems and methods for vehicle navigation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080014545.1A Division CN114207381A (zh) 2019-02-14 2020-02-14 用于车辆导航的系统和方法

Publications (1)

Publication Number Publication Date
CN115014383A true CN115014383A (zh) 2022-09-06

Family

ID=70189991

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202210591787.8A Pending CN115031743A (zh) 2019-02-14 2020-02-14 对收集的相对于公共道路路段的信息关联的系统和方法
CN202210591781.0A Pending CN115014383A (zh) 2019-02-14 2020-02-14 用于车辆的导航系统和用于导航车辆的方法
CN202080014545.1A Pending CN114207381A (zh) 2019-02-14 2020-02-14 用于车辆导航的系统和方法
CN202210600123.3A Pending CN115143987A (zh) 2019-02-14 2020-02-14 用于收集与道路路段相关联的状况信息的系统和方法
CN202210591777.4A Pending CN115014370A (zh) 2019-02-14 2020-02-14 用于生成地图信息的系统、方法和计算机可读介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210591787.8A Pending CN115031743A (zh) 2019-02-14 2020-02-14 对收集的相对于公共道路路段的信息关联的系统和方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN202080014545.1A Pending CN114207381A (zh) 2019-02-14 2020-02-14 用于车辆导航的系统和方法
CN202210600123.3A Pending CN115143987A (zh) 2019-02-14 2020-02-14 用于收集与道路路段相关联的状况信息的系统和方法
CN202210591777.4A Pending CN115014370A (zh) 2019-02-14 2020-02-14 用于生成地图信息的系统、方法和计算机可读介质

Country Status (5)

Country Link
US (4) US11940290B2 (zh)
CN (5) CN115031743A (zh)
DE (1) DE112020000821T5 (zh)
GB (7) GB2622490B (zh)
WO (1) WO2020165650A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118072260A (zh) * 2024-04-18 2024-05-24 山东双百电子有限公司 一种基于图像的车辆偏移分析方法及系统

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6838522B2 (ja) * 2017-08-10 2021-03-03 トヨタ自動車株式会社 画像収集システム、画像収集方法、画像収集装置、および記録媒体
US11410557B2 (en) * 2018-03-22 2022-08-09 Hitachi Astemo, Ltd. Parking assistance device
US10564641B2 (en) 2018-07-20 2020-02-18 May Mobility, Inc. Multi-perspective system and method for behavioral policy selection by an autonomous agent
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
US10969470B2 (en) 2019-02-15 2021-04-06 May Mobility, Inc. Systems and methods for intelligently calibrating infrastructure devices using onboard sensors of an autonomous agent
JP7261090B2 (ja) * 2019-05-30 2023-04-19 フォルシアクラリオン・エレクトロニクス株式会社 車載装置、運転支援方法、および運転支援システム
US11294070B2 (en) * 2019-11-29 2022-04-05 Ai4 International Oy Method and system for correcting errors in location data
EP4099293B1 (en) * 2020-02-25 2024-04-24 Huawei Technologies Co., Ltd. Method and apparatus for identifying special road conditions, electronic device, and storage medium
WO2021176613A1 (ja) * 2020-03-04 2021-09-10 三菱電機株式会社 ひび割れ検出装置、ひび割れ検出方法及びひび割れ検出プログラム
EP4165476A4 (en) 2020-07-01 2024-07-03 May Mobility Inc METHOD AND SYSTEM FOR DYNAMIC MANAGEMENT OF AUTONOMOUS VEHICLE INTERVENTIONS
JP7354952B2 (ja) * 2020-07-14 2023-10-03 トヨタ自動車株式会社 情報処理装置、情報処理方法、およびプログラム
US12012094B2 (en) * 2020-12-07 2024-06-18 Ford Global Technologies, Llc Detecting vehicle presence at a site
US12012126B2 (en) * 2020-12-11 2024-06-18 Zoox, Inc. Calibration based on semantic objects
CN113008260B (zh) * 2021-03-26 2024-03-22 上海商汤临港智能科技有限公司 一种导航信息处理方法、装置、电子设备及存储介质
JP2024512980A (ja) 2021-04-02 2024-03-21 メイ モビリティー,インコーポレイテッド 不完全な環境情報で自律エージェントを動作させる方法及びシステム
US11565717B2 (en) * 2021-06-02 2023-01-31 May Mobility, Inc. Method and system for remote assistance of an autonomous agent
US20220397420A1 (en) * 2021-06-15 2022-12-15 Here Global B.V. Method and apparatus for providing an updated map model
JP2023013304A (ja) * 2021-07-15 2023-01-26 株式会社Subaru 車両制御システム
JP2023019930A (ja) * 2021-07-30 2023-02-09 キヤノン株式会社 情報処理装置、移動体、情報処理装置の制御方法およびプログラム
US20230092861A1 (en) * 2021-09-20 2023-03-23 GM Global Technology Operations LLC Communication-based vehicle safety message generation and processing
US11858420B2 (en) * 2021-11-29 2024-01-02 Texas Instruments Incorporated Below vehicle rendering for surround view systems
US20230166759A1 (en) * 2021-12-01 2023-06-01 Toyota Research Institute, Inc. Systems and methods for improving localization accuracy by sharing dynamic object localization information
US12012123B2 (en) 2021-12-01 2024-06-18 May Mobility, Inc. Method and system for impact-based operation of an autonomous agent
KR102431122B1 (ko) * 2021-12-30 2022-08-10 주식회사 버넥트 맵 타겟 추적 방법 및 그 시스템
US11814072B2 (en) 2022-02-14 2023-11-14 May Mobility, Inc. Method and system for conditional operation of an autonomous agent
GB202207744D0 (en) * 2022-05-26 2022-07-13 Pro Sight Vision Object detection system and a method of use thereof
US20240124010A1 (en) * 2022-10-13 2024-04-18 Ford Global Technologies, Llc Adaptive Vehicle Driving Assistance System
DE102022127111A1 (de) * 2022-10-17 2024-04-18 Bayerische Motoren Werke Aktiengesellschaft Vorrichtung und Verfahren zum Betrieb einer Fahrfunktion auf einer Zufahrts-Fahrbahn zu einer Signalisierungseinheit
WO2024129832A1 (en) 2022-12-13 2024-06-20 May Mobility, Inc. Method and system for assessing and mitigating risks encounterable by an autonomous vehicle
DE102022133188A1 (de) * 2022-12-14 2024-06-20 Connaught Electronics Ltd. Fokusanpassung einer Fahrzeugkamera für verschiedene Bereiche von Interesse
DE102022133187A1 (de) * 2022-12-14 2024-06-20 Connaught Electronics Ltd. Fokusanpassung einer Fahrzeugkamera
CN116189133B (zh) * 2023-04-26 2023-07-28 宜宾闪马智通科技有限公司 道路巡检判定方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4541609B2 (ja) * 2001-09-06 2010-09-08 富士重工業株式会社 停止線認識装置、及び、その停止線認識装置を用いた車両用運転支援装置
JP4557288B2 (ja) * 2005-01-28 2010-10-06 アイシン・エィ・ダブリュ株式会社 画像認識装置及び画像認識方法、並びにそれを用いた位置特定装置、車両制御装置及びナビゲーション装置
JP5218458B2 (ja) * 2010-03-23 2013-06-26 株式会社デンソー 車両接近報知システム
SE538984C2 (sv) * 2013-07-18 2017-03-14 Scania Cv Ab Fastställande av körfältsposition
US9205835B2 (en) * 2014-01-30 2015-12-08 Mobileye Vision Technologies Ltd. Systems and methods for detecting low-height objects in a roadway
US9892296B2 (en) * 2014-11-12 2018-02-13 Joseph E. Kovarik Method and system for autonomous vehicles
US10032369B2 (en) * 2015-01-15 2018-07-24 Magna Electronics Inc. Vehicle vision system with traffic monitoring and alert
CN112923937B (zh) * 2015-02-10 2022-03-15 御眼视觉技术有限公司 沿着路段自主地导航自主车辆的系统、自主车辆及方法
US9550495B2 (en) * 2015-03-27 2017-01-24 Intel Corporation Technologies for assisting vehicles with changing road conditions
WO2016179303A1 (en) * 2015-05-04 2016-11-10 Kamama, Inc. System and method of vehicle sensor management
US20160363647A1 (en) * 2015-06-15 2016-12-15 GM Global Technology Operations LLC Vehicle positioning in intersection using visual cues, stationary objects, and gps
US10395126B2 (en) * 2015-08-11 2019-08-27 Honda Motor Co., Ltd. Sign based localization
EP3130891B1 (en) * 2015-08-11 2018-01-03 Continental Automotive GmbH Method for updating a server database containing precision road information
DE102015217792B4 (de) * 2015-09-17 2022-07-14 Volkswagen Aktiengesellschaft Vorrichtung, Verfahren und Computerprogramm zum Bereitstellen von Information über ein Stauende über eine Fahrzeug-zu-Fahrzeug-Schnittstelle
US9607454B1 (en) * 2015-11-02 2017-03-28 Volkswagen Ag System for distinguishing between traffic jam and parked vehicles
US9612123B1 (en) * 2015-11-04 2017-04-04 Zoox, Inc. Adaptive mapping to navigate autonomous vehicles responsive to physical environment changes
DE102016205436A1 (de) * 2015-11-25 2017-06-01 Volkswagen Aktiengesellschaft Verfahren und System zum Erstellen einer digitalen Karte
US10325339B2 (en) * 2016-04-26 2019-06-18 Qualcomm Incorporated Method and device for capturing image of traffic sign
US11721205B2 (en) * 2016-06-13 2023-08-08 Here Global B.V. Method, apparatus, and computer program product for processing sensor data
US10962982B2 (en) * 2016-07-21 2021-03-30 Mobileye Vision Technologies Ltd. Crowdsourcing the collection of road surface information
US20190271550A1 (en) * 2016-07-21 2019-09-05 Intelligent Technologies International, Inc. System and Method for Creating, Updating, and Using Maps Generated by Probe Vehicles
US9940729B1 (en) * 2016-11-18 2018-04-10 Here Global B.V. Detection of invariant features for localization
CN117824676A (zh) * 2016-12-09 2024-04-05 通腾全球信息公司 用于基于视频的定位及映射的方法及系统
US10261513B2 (en) * 2016-12-19 2019-04-16 drive.ai Inc. Methods for communicating state, intent, and context of an autonomous vehicle
CN110087939A (zh) * 2016-12-22 2019-08-02 本田技研工业株式会社 车辆控制系统、车辆控制方法及车辆控制程序
US10417906B2 (en) * 2016-12-23 2019-09-17 Here Global B.V. Lane level traffic information and navigation
US10545029B2 (en) * 2016-12-30 2020-01-28 DeepMap Inc. Lane network construction using high definition maps for autonomous vehicles
US11254329B2 (en) * 2017-04-24 2022-02-22 Mobileye Vision Technologies Ltd. Systems and methods for compression of lane data
JP7098883B2 (ja) * 2017-05-24 2022-07-12 日産自動車株式会社 車両の制御方法及び装置
CN110799804A (zh) * 2017-06-30 2020-02-14 深圳市大疆创新科技有限公司 地图生成系统和方法
US10955842B2 (en) * 2018-05-24 2021-03-23 GM Global Technology Operations LLC Control systems, control methods and controllers for an autonomous vehicle
DE112019003433B4 (de) * 2018-09-25 2024-08-22 Hitachi Astemo, Ltd. Erkennungsvorrichtung

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118072260A (zh) * 2024-04-18 2024-05-24 山东双百电子有限公司 一种基于图像的车辆偏移分析方法及系统

Also Published As

Publication number Publication date
GB202113027D0 (en) 2021-10-27
CN115143987A (zh) 2022-10-04
GB2622490B (en) 2024-06-19
US20210374435A1 (en) 2021-12-02
GB2622970A (en) 2024-04-03
US11953340B2 (en) 2024-04-09
US11982540B2 (en) 2024-05-14
CN115014370A (zh) 2022-09-06
GB202318706D0 (en) 2024-01-24
GB2622969A (en) 2024-04-03
WO2020165650A3 (en) 2020-09-24
GB202318707D0 (en) 2024-01-24
WO2020165650A2 (en) 2020-08-20
US20210364319A1 (en) 2021-11-25
GB2620695A (en) 2024-01-17
GB2622490A (en) 2024-03-20
CN114207381A (zh) 2022-03-18
GB2621722B (en) 2024-06-05
US20210372808A1 (en) 2021-12-02
GB2596940A (en) 2022-01-12
CN115031743A (zh) 2022-09-09
US11940290B2 (en) 2024-03-26
DE112020000821T5 (de) 2021-11-04
GB2596940B (en) 2024-04-17
GB2622970B (en) 2024-07-03
US20210365701A1 (en) 2021-11-25
GB2621033A (en) 2024-01-31
GB2621722A (en) 2024-02-21
GB2622969B (en) 2024-07-03

Similar Documents

Publication Publication Date Title
US11940290B2 (en) Virtual stop line mapping and navigation
CN112204349B (zh) 用于车辆导航的系统和方法
CN111902694B (zh) 用于确定导航参数的系统和方法
CN113874683A (zh) 用于车辆导航的系统和方法
CN115380196A (zh) 用于确定道路安全性的系统和方法
JP2023509468A (ja) 車両ナビゲーション用のシステムおよび方法
CN114514411A (zh) 用于交通工具导航的系统和方法
CN112654836A (zh) 用于车辆导航的系统和方法
CN111837014A (zh) 用于匿名化导航信息的系统和方法
CN114402377A (zh) 用于监测交通车道拥塞的系统和方法
CN114729813A (zh) 用于车辆导航的系统和方法
CN115719481A (zh) 用于涉及交通灯和交通标志的交通工具导航的系统和方法
CN113825979A (zh) 用于基于图像分析的车辆导航的系统和方法
CN113490835A (zh) 用于车辆导航的系统和方法
JP2023539868A (ja) マップベースの現実世界モデル化のシステム及び方法
CN116783455A (zh) 用于检测打开的门的系统和方法
CN117355871A (zh) 多帧图像分割
CN114930123A (zh) 用于检测交通灯的系统和方法
CN117571001A (zh) 用于公共速度映射和导航的系统和方法
CN117651668A (zh) 用于监测车道标记质量的系统和方法
CN118829954A (zh) 众包的转弯指示器
CN118265957A (zh) 用于车辆导航的雷达-摄像头融合
CN116601671A (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