CN117824697A - 用于基于地图的真实世界建模的系统和方法 - Google Patents
用于基于地图的真实世界建模的系统和方法 Download PDFInfo
- Publication number
- CN117824697A CN117824697A CN202311183934.9A CN202311183934A CN117824697A CN 117824697 A CN117824697 A CN 117824697A CN 202311183934 A CN202311183934 A CN 202311183934A CN 117824697 A CN117824697 A CN 117824697A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- road
- vehicles
- image
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title abstract description 215
- 230000002596 correlated effect Effects 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 61
- 230000002776 aggregation Effects 0.000 claims description 17
- 238000004220 aggregation Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 231
- 230000008569 process Effects 0.000 description 117
- 239000003550 marker Substances 0.000 description 88
- 238000010191 image analysis Methods 0.000 description 63
- 230000004044 response Effects 0.000 description 44
- 230000033001 locomotion Effects 0.000 description 29
- 238000003860 storage Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 26
- 238000003306 harvesting Methods 0.000 description 26
- 230000001133 acceleration Effects 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 17
- 230000003287 optical effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000007613 environmental effect Effects 0.000 description 14
- 238000005259 measurement Methods 0.000 description 14
- 238000013507 mapping Methods 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 13
- 238000006073 displacement reaction Methods 0.000 description 12
- 241000237858 Gastropoda Species 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000003384 imaging method Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 10
- 238000005096 rolling process Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000012935 Averaging Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000005206 flow analysis Methods 0.000 description 6
- 230000004313 glare Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 239000000725 suspension Substances 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000001953 sensory effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012358 sourcing Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004438 eyesight Effects 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 3
- 230000003746 surface roughness Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003667 anti-reflective effect Effects 0.000 description 1
- 239000010426 asphalt Substances 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- -1 debris Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000003703 image analysis method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
- G01C21/3841—Data obtained from two or more sources, e.g. probe vehicles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/3815—Road data
- G01C21/3822—Road feature data, e.g. slope data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Traffic Control Systems (AREA)
- Navigation (AREA)
Abstract
公开了一种用于基于地图的真实世界建模的系统和方法。公开了一种用于使来自多个道路段的驾驶信息相关的系统。在一个实施例中,系统包括存储器和处理器,该处理器被配置成用于接收来自穿越第一道路段的交通工具和穿越第二道路段的交通工具的驾驶信息。处理器被配置成用于使来自交通工具的驾驶信息相关,以提供表示第一道路段的第一道路模型段和表示第二道路段的第二道路模型段。处理器在与第一道路段相关联的第一点同与第二道路段相关联的第二点之间的可驾驶距离小于或等于预定距离阈值的情况下使第一道路模型段与第二道路模型段相关,以提供相关道路段模型,并且将该相关道路段模型存储为稀疏导航地图的部分。
Description
本申请是PCT国际申请号为PCT/US2021/048419、国际申请日为2021年8月31日、进入中国国家阶段的申请号为202180053587.0,题为“用于基于地图的真实世界建模的系统和方法”的申请的分案申请。
相关申请的交叉引用
本申请要求于2020年8月31日提交的美国临时申请第63/072,597号的优先权的权益。上述申请通过引用以其整体并入本文。
背景
技术领域
本公开总体上涉及交通工具导航。
背景技术
随着技术继续进步,能够在道路上导航的完全自主交通工具的目标即将实现。自主交通工具可能需要考虑各种因素,并且基于那些因素做出适当的决定,以安全地并且准确地到达预期目的地。例如,自主交通工具可能需要处理和解释视觉信息(例如,从相机捕获的信息),并且还可能使用从其他源(例如,从GPS设备、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主交通工具可能还需要标识其在特定道路内的位置(例如,多车道道路内的特定车道),在其他交通工具旁边导航,避开障碍物和行人,观察交通信号和标志,以及在适当的交叉路口或立体交叉道路处从一条道路行驶到另一条道路。对在自主交通工具向其目的地行驶时由该交通工具收集的大量信息进行利用和解释提出了许多设计挑战。自主交通工具可能需要分析、访问和/或存储的大量数据(例如,捕获的图像数据、地图数据、GPS数据、传感器数据等)提出了事实上可能限制甚至不利地影响自主导航的挑战。此外,如果自主交通工具依赖于传统的地图绘制技术进行导航,则存储和更新地图所需要的大量数据提出了令人生畏的挑战。
发明内容
与本公开一致的实施例提供了用于交通工具导航的系统和方法。
在实施例中,一种用于使来自多个道路段的驾驶信息相关的系统可以包括至少一个处理器,该至少一个处理器包括电路系统和存储器。存储器可包括指令,这些指令当由电路系统执行时使得至少一个处理器:接收来自穿过第一道路段的第一多个交通工具中的每一个交通工具的驾驶信息,其中来自第一多个交通工具中的每一个交通工具的驾驶信息至少包括第一多个交通工具之中的特定交通工具在穿过第一道路段时所遵循的实际轨迹的指示;以及使来自第一多个交通工具中的每一个交通工具的驾驶信息相关以提供表示第一道路段的第一道路模型段。至少一个处理器可以进一步接收来自穿过第二道路段的第二多个交通工具中的每一个交通工具的驾驶信息,其中来自第二多个交通工具中的每一个交通工具的驾驶信息至少包括第二多个交通工具之中的特定交通工具在穿过第二道路段时所遵循的实际轨迹的指示;以及使来自第二多个交通工具中的每一个交通工具的驾驶信息相关以提供表示第二道路段的第二道路模型段。至少一个处理器可进一步用于:在与第一道路段相关联的第一点同与第二道路段相关联的第二点之间的可驾驶距离小于或等于预定距离阈值的情况下,使第一道路模型段与第二道路模型段相关,以提供相关道路段模型;以及将相关道路段模型存储为稀疏导航地图的部分,以供用于交通工具沿第一道路段和第二道路段的导航。
在实施例中,一种使关联来自多个道路段的驾驶信息相关的方法可以包括:接收来自穿过第一道路段的第一多个交通工具中的每一个交通工具的驾驶信息,其中来自第一多个交通工具中的每一个交通工具的驾驶信息至少包括第一多个交通工具中的特定交通工具在穿过第一道路段时所遵循的实际轨迹的指示;以及使来自第一多个交通工具中的每一个交通工具的驾驶信息相关以提供表示第一道路段的第一道路模型段。该方法可以进一步包括接收来自穿过第二道路段的第二多个交通工具中的每一个交通工具驾驶信息,其中来自第二多个交通工具中的每一个交通工具的驾驶信息至少包括第二多个交通工具中的特定交通工具在穿过第二道路段时所遵循的实际轨迹的指示;以及使来自第二多个交通工具中的每一个交通工具的驾驶信息相关以提供表示第二道路段的第二道路模型段。该方法可以进一步包括:在与第一道路段相关联的第一点同与第二道路段相关联的第二点之间的可驾驶距离小于或等于预定距离阈值的情况下,使第一道路模型段与第二道路模型段相关,以提供相关道路段模型;以及将相关道路段模型存储为稀疏导航地图的部分,以供用于交通工具沿第一道路段和第二道路段的导航。
在实施例中,一种用于生成道路表面模型的系统可以包括:至少一个处理器,该至少一个处理器包括电路系统和存储器。存储器可包括指令,这些指令当由电路系统执行时使得至少一个处理器用于:访问与一个或多个可驾驶道路相关联的多个点;以及基于多个点来生成道路表面模型,该表面模型包括表示一个或多个可驾驶道路的表面的网格。生成道路表面模型可以包括:确定多个点中的第一点与多个点中的第二点之间的可驾驶距离;以及基于确定了第一点与第二点之间的可驾驶距离小于或等于预定距离阈值,将第一点和第二点网格化在一起。至少一个处理器可以进一步存储道路表面模型以供用于交通工具沿一个或多个可驾驶道路的导航。
在实施例中,一种用于生成道路表面模型的方法可以包括:访问与一个或多个可驾驶道路相关联的多个点;以及基于多个点来生成道路表面模型,该表面模型包括表示一个或多个可驾驶道路的表面的网格。生成道路表面模型可以包括:确定多个点中的第一点与多个点中的第二点之间的可驾驶距离;以及基于确定了第一点与第二点之间的可驾驶距离小于或等于预定距离阈值,将第一点和第二点网格化在一起。该方法可以进一步包括存储道路表面模型以供用于交通工具沿一个或多个可驾驶道路的导航。
与其他公开的实施例相一致的,非暂态计算机可读存储介质可以存储程序指令,该程序指令由至少一个处理设备执行,并执行本文描述的方法中的任何方法。
上述总体描述和以下详细描述仅为示例性和解释性的,并且不是权利要求的限制。
附图说明
并入本公开并构成本公开一部分的所附附图示出了各个公开的实施例。在附图中:
图1是符合所公开的实施例的示例性系统的图解表示。
图2A是包括符合所公开的实施例的系统的示例性交通工具的图解侧视图表示。
图2B是符合所公开的实施例的、图2A中所示的交通工具和系统的图解俯视图表示。
图2C是包括符合所公开的实施例的系统的交通工具的另一实施例的图解俯视图表示。
图2D是包括符合所公开的实施例的系统的交通工具的又一实施例的图解俯视图表示。
图2E是包括符合所公开的实施例的系统的交通工具的又一实施例的图解俯视图表示。
图2F是符合所公开的实施例的示例性交通工具控制系统的图解表示。
图3A是符合所公开的实施例的、包括后视镜和用于交通工具成像系统的用户接口的交通工具的内部的图解表示。
图3B是符合所公开的实施例的、被配置为定位在后视镜后面并抵靠交通工具挡风玻璃的相机支架示例的图示。
图3C是符合所公开的实施例的、图3B中所示的相机支架从不同视角的图示。
图3D是符合所公开的实施例的、被配置为定位在后视镜后面并抵靠交通工具挡风玻璃的相机支架示例的图示。
图4是被配置为存储用于执行符合所公开的实施例的一个或多个操作的指令的存储器的示例性框图。
图5A是示出了符合所公开的实施例的、用于基于单目图像分析来引起一个或多个导航响应的示例性过程的流程图。
图5B是示出了符合所公开的实施例的、用于在图像的集合中检测一个或多个交通工具和/或行人的示例性过程的流程图。
图5C是示出了符合所公开的实施例的、用于在图像的集合中检测道路标记和/或车道几何形状信息的示例性过程的流程图。
图5D是示出了符合所公开的实施例的、用于在图像的集合中检测交通灯的示例性过程的流程图。
图5E是示出了符合所公开的实施例的、用于基于交通工具路径来引起一个或多个导航响应的示例性过程的流程图。
图5F是示出了符合所公开的实施例的、用于确定在前的交通工具是否正在改变车道的示例性过程的流程图。
图6是示出了符合所公开的实施例的、用于基于立体图像分析来引起一个或多个导航响应的示例性过程的流程图。
图7是示出了符合所公开的实施例的、用于基于对三个图像集合的分析来引起一个或多个导航响应的示例性过程的流程图。
图8示出了符合所公开的实施例的用于提供自主交通工具导航的稀疏地图。
图9A图示出符合所公开的实施例的道路段的部分的多项式表示。
图9B图示出符合所公开的实施例的、表示稀疏地图中所包括的针对特定道路段的交通工具的目标轨迹的三维空间中的曲线。
图10图示出符合所公开的实施例的可能被包括在稀疏地图中的示例地标。
图11A示出了符合所公开的实施例的轨迹的多项式表示。
图11B和图11C示出了符合所公开的实施例的沿多车道道路的目标轨迹。
图11D示出了符合所公开的实施例的示例道路特色(signature)概况。
图12是符合所公开的实施例的、使用从多个交通工具接收的众包数据进行自主交通工具导航的系统的示意图。
图13图示出符合所公开的实施例的、由多个三维样条表示的示例的自主交通工具道路导航模型。
图14示出了符合所公开的实施例的通过将来自许多次驾驶的位置信息进行组合而生成的地图骨架。
图15示出了符合所公开的实施例的具有作为地标的示例标志的两个驾驶的纵向对齐的示例。
图16示出了符合所公开的实施例的具有作为地标的示例标志的多个驾驶的纵向对齐的示例。
图17是符合所公开的实施例的用于使用相机、交通工具和服务器生成驾驶的数据的系统的示意图。
图18是符合所公开的实施例的用于众包稀疏地图的系统的示意图。
图19是示出了符合所公开的实施例的、用于生成用于沿道路段的自主交通工具导航的稀疏地图的示例性过程的流程图。
图20图示出符合所公开的实施例的服务器的框图。
图21图示出符合所公开的实施例的存储器的框图。
图22图示出符合所公开的实施例的对与交通工具相关联的交通工具轨迹进行聚类的过程。
图23图示出符合所公开的实施例的可以用于自主导航的交通工具的导航系统。
图24A、24B、24C和24D图示出符合所公开的实施例的可以被检测到的示例性车道标记。
图24E示出符合所公开的实施例的示例性绘制的车道标记。
图24F示出符合所公开的实施例的、与检测车道标记相关联的示例性异常。
图25A示出了符合所公开的实施例的、用于基于绘制的车道标记进行导航的、交通工具的周围环境的示例性图像。
图25B图示出符合所公开的实施例的、在道路导航模型中基于绘制的车道标记对交通工具的横向定位校正。
图25C和图25D提供了用于使用包括在稀疏地图中的所绘制特征沿目标轨迹定位主交通工具的定位技术的概念表示。
图26A是示出了符合所公开的实施例的、用于绘制车道标记以供在自主交通工具导航中使用的示例性过程的流程图。
图26B是示出了符合所公开的实施例的、用于使用绘制的车道标记沿道路段自主地导航主交通工具的示例性过程的流程图。
图27是图示出符合所公开的实施例的、具有重叠道路段的示例立交桥的图。
图28是符合所公开的实施例的、图27中所示立交桥的俯视图。
图29图示出符合所公开的实施例的、驾驶信息可沿其被收集的示例交叉路口。
图30是示出符合所公开的实施例的用于使驾驶信息相关的示例过程的流程图。
图31A图示出符合所公开的实施例的立交桥的示例道路表面模型。
图31B图示出符合所公开的实施例的生成道路表面模型时可能出现的示例异常。
图32是示出符合所公开的实施例的用于生成道路表面模型的示例过程的流程图。
具体实施方式
以下具体实施方式参考了所附附图。只要有可能,在附图和以下描述中使用相同的附图标记指代相同或相似的部分。虽然本文描述了若干说明性的实施例,但修改、改编和其他实现方式也是可能的。例如,可以对附图中图示出的组件进行替换、添加或修改,并且可以通过对所公开的方法进行替换、重新排序、移除或添加步骤来修改本文所描述的说明性方法。因此,以下具体实施方式并不限于所公开的实施例和示例。相反,适当的范围由所附权利要求来限定。
自主交通工具概览
如贯穿本公开所使用,术语“自主交通工具”指代能够在不具有驾驶员输入的情况下实现至少一个导航改变的交通工具。“导航改变”指代交通工具的转向、制动、或加速中的一者或多者的改变。为了成为自主的,交通工具不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全地操作)。相反,自主交通工具包括可以在某些时间段期间在驾驶员控制下操作且在其他时间段期间在没有驾驶员控制的情况下操作的那些交通工具。自主交通工具也可以包括仅控制交通工具导航的一些方面(诸如转向(例如,用于在交通工具车道约束之间维持交通工具路线))、但可将其他方面留给驾驶员(例如,制动)的交通工具。在一些情况下,自主交通工具可处置交通工具的制动、速度控制和/或转向中的一些方面或所有方面。
由于人类驾驶员通常依赖于视觉提示和观察来控制交通工具,因此交通基础设施被相应地建立,其中车道标记、交通标志和交通灯全部都被设计成用于向驾驶员提供视觉信息。鉴于交通基础设施的这些设计特性,自主交通工具可包括相机和处理单元,该处理单元分析从交通工具的环境捕获的视觉信息。视觉信息可包括例如,交通基础设施的可被驾驶员观察的组成部分(例如,车道标记、交通标志、交通灯等)和其他障碍物(例如,其他交通工具、行人、碎片等)。附加地,自主交通工具还可以使用存储的信息,诸如在导航时提供交通工具的环境的模型的信息。例如,交通工具可以使用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可以使用任何已知的标准来传送和/或接收数据(例如,WiFi、蓝牙智能、802.15.4、ZigBee等)。此类传输可以包括从主交通工具到一个或多个远程定位的服务器的通信。此类传输也可以包括主交通工具与该主交通工具的环境中的一个或多个目标交通工具之间的通信(单向或双向)(例如,用于鉴于主交通工具的环境中的目标交通工具或与目标交通工具一起促进主交通工具的导航的协调),或者甚至包括向进行传送的交通工具附近的非指定接收方进行的广播传输。
应用处理器180和图像处理器190两者都可以包括各种类型的处理设备。例如,应用处理器180和图像处理器190中的任一者或这两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理单元(GPU)、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器、或适用于运行应用以及适用于图像处理和分析的任何其他类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。各种处理设备可以被使用,包括例如可以从诸如等制造商处获得的处理器,或可以从诸如/>等制造商处获得的GPU,并且各种处理设备可以包括各种架构(例如,x86处理器、/>等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的EyeQ系列处理器芯片中的任何处理器芯片。这些处理器设计各自包括具有本地存储器和指令集的多个处理单元。此类处理器可包括用于从多个图像传感器接收图像数据的视频输入,并且还可包括视频输出能力。在一个示例中,/>使用在332Mhz下操作的90nm微米技术。/>架构由两个浮点超线程32位RISC CPU(核)、五个视觉计算引擎(VCE)、三个向量微码处理器/>Denali64位移动DDR控制器、128位内部声学互连、双16位视频输入和18位视频输出控制器、16通道DMA、以及若干外围设备组成。MIPS34K CPU管理五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其他外围设备。五个VCE、三个/>和MIPS34K CPU可以执行多功能捆绑应用所需的密集的视觉计算。在另一个示例中,可在所公开的实施例中使用作为第三代处理器并且比/>强大六倍的/>在其他示例中,可以在所公开的实施例中使用/>和/或/>当然,任何更新的或未来的EyeQ处理设备也可以与所公开的实施例一起使用。
本文所公开的处理设备中的任何处理设备都可以被配置成用于执行某些功能。将处理设备(诸如所描述的EyeQ处理器或其他控制器或微处理器中的任一者)配置成用于执行某些功能可以包括对计算机可执行指令进行编程,并使这些指令可供处理设备用来在处理设备的操作期间执行。在一些实施例中,配置处理设备可以包括直接利用架构指令对处理设备进行编程。例如,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等之类的处理设备可以使用例如一种或多种硬件描述语言(HDL)来配置。
在其他实施例中,配置处理设备可以包括将可执行指令存储在处理设备在操作期间可访问的存储器上。例如,处理设备可以在操作期间访问存储器,以获得并且执行所存储的指令。在任一情况下,被配置成用于执行本文公开的感测、图像分析和/或导航功能的处理设备表示控制主交通工具的多个基于硬件的组件的专用基于硬件的系统。
虽然图1描绘了处理单元110中包括的两个分开的处理设备,但可以使用更多或更少的处理设备。例如,在一些实施例中,可以使用单个处理设备来实现应用处理器180和图像处理器190的任务。在其他实施例中,这些任务可以由多于两个的处理设备执行。此外,在一些实施例中,系统100可以包括一个或多个处理单元110,而不包括诸如图像采集单元120之类的其他组件。
处理单元110可包括各种类型的设备。例如,处理单元110可包括各种设备,诸如控制器、图像预处理器、中央处理单元(CPU)、图形处理单元(GPU)、支持电路、数字信号处理器、集成电路、存储器或用于图像处理和分析的任何其他类型的设备。图像预处理器可包括用于捕获、数字化和处理来自图像传感器的成像的视频处理器。CPU可包括任何数量的微控制器或微处理器。GPU也可包括任何数量的微控制器或微处理器。支持电路可以是本技术领域中一般公知的任何数量的电路,包括高速缓存、电源、时钟和输入-输出电路。存储器可以存储软件,该软件当由处理器执行时控制系统的操作。存储器可包括数据库和图像处理软件。存储器可包括任何数量的随机存取存储器、只读存储器、闪存、盘驱动器、光存储、磁带存储、可移动存储和其他类型的存储。在一个实例中,存储器可以与处理单元110分开。在另一个实例中,存储器可以被集成到处理单元110中。
每个存储器140、150可包括软件指令,该软件指令当由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。这些存储器单元可以包括各种数据库和图像处理软件、以及例如诸如神经网络或深度神经网络之类的经训练的系统。存储器单元可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、盘驱动器、光存储、磁带存储、可移动存储和/或任何其他类型的存储。在一些实施例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分开。在其他实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
位置传感器130可以包括适于确定与系统100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括GPS接收器。此类接收器可以通过处理由全球定位系统卫星广播的信号来确定用户的位置和速度。可以使来自位置传感器130的位置信息可用于应用处理器180和/或图像处理器190。
在一些实施例中,系统100可以包括诸如用于测量交通工具200的速度的速度传感器(例如,转速计、速度计)和/或用于测量交通工具200的加速度的加速度计(单轴或多轴加速度计)的组件。
用户接口170可包括适用于将信息提供给系统100的一个或多个用户或适用于从系统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所示。例如,如上文相对于图1所述,交通工具200可以配备有处理单元110和系统100的其他组件中的任何组件。虽然在一些实施例中,交通工具200可以仅配备有单个图像捕获设备(例如,相机),但在其他实施例中(诸如结合图2B-图2E所讨论的那些实施例中)可以使用多个图像捕获设备。例如,如图2A所示,交通工具200的图像捕获设备122和124中的任一者可以是ADAS(高级驾驶员辅助系统)成像集合的一部分。
交通工具200上所包括的、作为图像采集单元120的一部分的图像捕获设备可以被定位在任何合适的位置。在一些实施例中,如图2A-图2E和图3A-图3C所示,图像捕获设备122可以位于后视镜附近。该位置可以提供与交通工具200的驾驶员的视线类似的视线,这可以辅助确定对驾驶员可见和不可见的事物。图像捕获设备122可以被定位在后视镜附近的任何位置,但是将图像捕获设备122放置在后视镜的驾驶员侧可以进一步辅助获得表示驾驶员的视场和/或视线的图像。
也可以将其他位置用于图像采集单元120的图像捕获设备。例如,图像捕获设备124可以位于交通工具200的保险杠上或保险杠中。此类位置可能特别适于具有宽视场的图像捕获设备。位于保险杠的图像捕获设备的视线可能与驾驶员的视线不同,并且因此,保险杠图像捕获设备和驾驶员可能并不总是看到相同的对象。图像捕获设备(例如,图像捕获设备122、124和126)也可以位于其他位置。例如,图像捕获设备可以位于交通工具200的侧镜(side mirror)中的一个或两个侧镜之上或之中、交通工具200的车顶上、交通工具200的引擎盖上、交通工具200的后备箱上、交通工具200的侧部上,被安装在交通工具200的窗户中的任何窗户上,被定位在交通工具200的窗户中的任何窗户的后面或前面,以及被安装在交通工具200的前部和/或后部上的光像中或附近,等等。
除图像捕获设备外,交通工具200还可以包括系统100的各种其他组件。例如,处理单元110可以被包括在交通工具200上,与交通工具的引擎控制单元(ECU)集成或分开。交通工具200还可以配备有位置传感器130(诸如GPS接收器),并且还可以包括地图数据库160以及存储器单元140和150。
如之前所讨论,无线收发器172可以和/或通过一个或多个网络(例如,蜂窝网络、因特网等)接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并从一个或多个服务器下载数据。经由无线收发器172,系统100可以接收例如对存储在地图数据库160、存储器140和/或存储器150中的数据的周期性或按需更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像采集单元120捕获的图像、由位置传感器130或其他传感器、交通工具控制系统等接收的数据)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
系统100可以基于隐私级别设置将数据上传到服务器(例如,上传到云)。例如,系统100可以实现隐私级别设置,以调节或限制发送到服务器的数据(包括元数据)的类型,这些数据的类型可以唯一地标识交通工具和/或交通工具的驾驶员/所有者。此类设置可以由用户经由例如无线收发器172来设置,通过工厂默认设置或通过由无线收发器172接收的数据来初始化。
在一些实施例中,系统100可以根据“高”隐私级别来上传数据,并且在对设置进行设置之下,系统100可以传送数据(例如,与路线相关的位置信息、捕获的图像等),而不传送关于特定交通工具和/或驾驶员/所有者的任何细节。例如,当根据“高”隐私设置上传数据时,系统100可以不包括交通工具标识号(VIN)或交通工具驾驶员或所有者的姓名,并且可以替代地传送诸如捕获的图像和/或与路线相关的有限的位置信息之类的数据。
构想了其他隐私级别。例如,系统100可以根据“中间”隐私级别向服务器传送数据,并包括在“高”隐私级别下未被包括的附加信息,诸如交通工具的品牌和/或型号和/或交通工具类型(例如,乘用车、运动型多用途车、卡车等)。在一些实施例中,系统100可以根据“低”隐私级别来上传数据。在“低”隐私级别设置下,系统100可以上传数据,并包括足以唯一地标识特定交通工具、所有者/驾驶员和/或由交通工具行驶的路线的一部分或全部的信息。此类“低”隐私级别数据可以包括例如以下各项中的一项或多项:VIN、驾驶员/所有者姓名、交通工具出发前的起点、交通工具的预期目的地、交通工具的品牌和/或型号、交通工具的类型等。
图2A是符合所公开的实施例的示例性交通工具成像系统的图解侧视图表示。图2B是图2A中所示的实施例的图解俯视图图示。如图2B所图示,所公开的实施例可以包括交通工具200,该交通工具200在其主体中包括系统100,该系统100具有被定位在交通工具200的后视镜附近和/或靠近交通工具200的驾驶员的第一图像捕获设备122、被定位在交通工具200的保险杠区域(例如,保险杠区域210中的一个)上或在保险杠区域中的第二图像捕获设备124、以及处理单元110。
如图2C所图示,图像捕获设备122和124两者均可以被定位在交通工具200的后视镜附近和/或靠近交通工具200的驾驶员。另外,虽然在图2B和图2C中示出了两个图像捕获设备122和124,但应当理解,其他实施例可以包括多于两个的图像捕获设备。例如,在图2D和图2E所示的实施例中,交通工具200的系统100中包括第一图像捕获设备122、第二图像捕获设备124、和第三图像捕获设备126。
如图2D所示,图像捕获设备122可以被定位在交通工具200的后视镜附近和/或靠近交通工具200的驾驶员,而图像捕获设备124和126可以被定位在交通工具200的保险杠区域(例如,保险杠区域210中的一个)上或在保险杠区域中。并且如图2E所示,图像捕获设备122、124和126可以被定位在交通工具200的后视镜附近和/或靠近交通工具200的驾驶员座椅。所公开的实施例不限于图像捕获设备的任何特定数量和配置,并且图像捕获设备可以被定位在交通工具200内和/或交通工具200上的任何适当位置。
应当理解,所公开的实施例不限于交通工具,并且可以应用于其他情境。还应理解,所公开的实施例不限于特定类型的交通工具200,并且可以可适用于所有类型的交通工具,包括汽车、卡车、拖车和其他类型的交通工具。
第一图像捕获设备122可以包括任何合适类型的图像捕获设备。图像捕获设备122可以包括光轴。在一个实例中,图像捕获设备122可以包括具有全局快门的Aptina M9V024WVGA传感器。在其他实施例中,图像捕获设备122可以提供1280x960像素的分辨率,并且可以包括滚动快门。图像捕获设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,例如,从而为图像捕获设备提供期望的焦距和视场。在一些实施例中,图像捕获设备122可以与6mm透镜或12mm透镜相关联。在一些实施例中,图像捕获设备122可以被配置成用于捕获具有期望的视场(FOV)202的图像,如图2D所示。例如,图像捕获设备122可以被配置为具有常规FOV,诸如在40度到56度的范围内,包括46度FOV、50度FOV、52度FOV或更大的FOV。或者,图像捕获设备122可以被配置为具有23到40度范围内的窄FOV,诸如28度FOV或36度FOV。此外,图像捕获设备122可以被配置为具有100到180度范围内的宽FOV。在一些实施例中,图像捕获设备122可以包括广角保险杠相机或具有高达180度FOV的相机。在一些实施例中,图像捕获设备122可以是具有约为2:1的纵横比(例如,HxV=3800x1900像素)且具有约100度水平FOV的7.2M像素图像捕获设备。可以使用此类图像捕获设备来代替三图像捕获设备配置。由于显著的透镜畸变,此类图像捕获设备的竖直FOV在其中图像捕获设备使用径向对称透镜的实现方式中可以显著小于50度。例如,此类透镜可能不是径向对称的,这将在100度水平FOV的情况下允许大于50度的竖直FOV。
第一图像捕获设备122可以采集相对于与交通工具200相关联的场景的多个第一图像。多个第一图像中的每一个可以作为一系列图像扫描线被采集,这些图像扫描线可以使用滚动快门来捕获。每条扫描线可以包括多个像素。
第一图像捕获设备122可以具有与第一图像扫描线系列中的每条图像扫描线的采集相关联的扫描速率。扫描速率可以指图像传感器能够以其来采集与被包括在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕获设备122、124和126可以包含任何合适类型和数量的图像传感器,例如包括CCD传感器或CMOS传感器。在一个实施例中,CMOS图像传感器可以与滚动快门一起被采用,使得行中的每个像素被一次读取一个,并且对行的扫描在逐行的基础上进行,直到整个图像帧已被捕获。在一些实施例中,行可以相对于帧从上到下顺序地被捕获。
在一些实施例中,本文公开的图像捕获设备(例如,图像捕获设备122、124和126)中的一个或多个可以构成高分辨率成像器,并且可以具有大于5M像素、7M像素、10M像素或更大像素的分辨率。
滚动快门的使用可能引起不同行中的像素在不同时间被曝光和捕获,这可能在捕获的图像帧中导致歪斜和其他图像伪像。另一方面,当图像捕获设备122被配置为利用全局或同步快门操作时,所有像素都可以被曝光达相同的时间量并且在共同的曝光时段期间被曝光。结果是,从采用全局快门的系统收集的帧中的图像数据表示整个FOV(诸如FOV 202)在特定时间的快照。相比之下,在滚动快门应用中,帧中的每一行在不同的时间被曝光,并且数据在不同的时间被捕获。因此,在具有滚动快门的图像捕获设备中,移动的对象可能显得失真。下文将更详细地描述这种现象。
第二图像捕获设备124和第三图像捕获设备126可以是任何类型的图像捕获设备。类似于第一图像捕获设备122,图像捕获设备124和126中的每一个可以包括光轴。在一个实施例中,图像捕获设备124和126中的每一个可以包括具有全局快门的Aptina M9V024 WVGA传感器。替代地,图像捕获设备124和126中的每一个可以包括滚动快门。类似于图像捕获设备122,图像捕获设备124和126可以被配置为包括各种透镜和光学元件。在一些实施例中,与图像捕获设备124和126相关联的透镜可以提供与同图像捕获设备122相关联的FOV(诸如FOV 202)相同或比其更窄的FOV(诸如FOV 204和206)。例如,图像捕获设备124和126可以具有40度、30度、26度、23度、20度或更小的FOV。
图像捕获设备124和126可以获取相对于与交通工具200相关联的场景的多个第二和第三图像。多个第二和第三图像中的每一个可以作为第二图像扫描线系列和第三图像扫描线系列而被采集,这些图像扫描线可以使用滚动快门来捕获。每条扫描线或每个扫描行可以具有多个像素。图像捕获设备124和126可以具有与采集被包括在第二和第三系列中的图像扫描线中的每一条图像扫描线相关联的第二和第三扫描速率。
每个图像捕获设备122、124和126可以定位在相对于交通工具200的任何合适的位置处并被定位成任何合适的取向。图像捕获设备122、124和126的相对定位可以被选择以辅助将从图像捕获设备采集的信息融合在一起。例如,在一些实施例中,同图像捕获设备124相关联的FOV(诸如FOV 204)可以部分地或完全地与同图像捕获设备122相关联的FOV(诸如FOV 202)以及同图像捕获设备126相关联的FOV(诸如FOV 206)重叠。
图像捕获设备122、124和126可以位于交通工具200上的任何合适的相对高度处。在一个实例中,在图像捕获设备122、124和126之间可以存在高度差,这可以提供足够的视差信息以实现立体分析。例如,如图2A所示,两个图像捕获设备122和124处于不同的高度。图像捕获设备122、124和126之间也可以存在横向位移差,从而例如为由处理单元110进行的立体分析给出附加的视差信息。横向位移的差可以用dx表示,如图2C和图2D所示。在一些实施例中,在图像捕获设备122、124和126之间可以存在前后位移(例如,范围位移)。例如,图像捕获设备122可以位于图像捕获设备124和/或图像捕获设备126后面0.5米至2米或更远。这种类型的位移可以使图像捕获设备中的一个图像捕获设备能够覆盖其他(多个)图像捕获设备的潜在盲点。
图像捕获设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素数量),并且同图像捕获设备122相关联的(多个)图像传感器的分辨率可以高于、低于同图像捕获设备124和126相关联的(多个)图像传感器的分辨率,或者与同图像捕获设备124和126相关联的(多个)图像传感器的分辨率相同。在一些实施例中,与图像捕获设备122和/或图像捕获设备124和126相关联的(多个)图像传感器可以具有640x 480、1024x 768、1280x 960的分辨率或任何其他合适的分辨率。
帧速率(例如,图像捕获设备在继续捕获与下一图像帧相关联的像素数据之前采集一个图像帧的像素数据的集合所按照的速率)可以是可控的。同图像捕获设备122相关联的帧速率可以高于、低于同图像捕获设备124和126相关联的帧速率,或者与同图像捕获设备124和126相关联的帧速率相同。与图像捕获设备122、124和126相关联的帧速率可以取决于可以影响帧速率的时序的各种因素。例如,图像捕获设备122、124和126中的一个或多个可以包括可选像素延迟时段,该可选像素延迟时段在对与图像捕获设备122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据的采集之前或之后被施加。一般地,可以根据设备的时钟速率(例如,每个时钟周期一个像素)来采集对应于每个像素的图像数据。附加地,在包括滚动快门的实施例中,图像捕获设备122、124和126中的一个或多个可以包括可选水平消隐时段,该可选水平消隐时段在对与图像捕获设备122、124和/或126中的图像传感器的像素行相关联的图像数据的采集之前或之后被施加。此外,图像捕获设备122、124和/或126中的一个或多个可以包括可选竖直消隐时段,该可选竖直消隐时段在对与图像捕获设备122、124和126的图像帧相关联的图像数据的采集之前或之后被施加。
这些时序控制可以实现与图像捕获设备122、124和126相关联的帧速率的同步化,即使在每个设备的线扫描速率不同的情况下也是如此。附加地,如下文将更详细地所讨论,除其他因素(例如,图像传感器分辨率、最大线扫描速率等)外,这些可选的时序控制可以实现从其中图像捕获设备122的FOV与图像捕获设备124和126的一个或多个FOV重叠的区域进行的图像捕获的同步,即使在图像捕获设备122的视场不同于图像捕获设备124和126的FOV的情况下也是如此。
图像捕获设备122、124和126中的帧速率时序可以取决于相关联的图像传感器的分辨率。例如,假设针对两个设备的类似的线扫描速率,如果一个设备包括具有640x 480的分辨率的图像传感器,并且另一个设备包括具有1280x 960的分辨率的图像传感器,则从具有更高分辨率的传感器采集图像数据的帧将需要更多时间。
可能影响图像捕获设备122、124和126中的图像数据采集的时序的另一因素是最大线扫描速率。例如,从图像捕获设备122、124和126中所包括的图像传感器采集图像数据行将需要某个最小时间量。假设没有添加像素延迟时段,则用于采集图像数据行的该最小时间量将与特定设备的最大线扫描速率相关。与具有较低的最大线扫描速率的设备相比,提供较高的最大线扫描速率的设备具有提供较高帧速率的潜力。在一些实施例中,图像捕获设备124和126中的一个或多个可以具有高于与图像捕获设备122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕获设备124和/或126的最大线扫描速率可以是图像捕获设备122的最大线扫描速率的1.25倍、1.5倍、1.75倍或2倍或更大。
在另一个实施例中,图像捕获设备122、124和126可以具有相同的最大线扫描速率,但是图像捕获设备122可以在小于或等于其最大扫描速率的扫描速率下操作。系统可以被配置为使得图像捕获设备124和126中的一个或多个以等于图像捕获设备122的线扫描速率的线扫描速率操作。在其他实例中,系统可以被配置为使得图像捕获设备124和/或图像捕获设备126的线扫描速率可以是图像捕获设备122的线扫描速率的1.25倍、1.5倍、1.75倍或2倍或更大。
在一些实施例中,图像捕获设备122、124和126可以是不对称的。也就是说,它们可以包括具有不同视场(FOV)和焦距的相机。例如,图像捕获设备122、124和126的视场可以包括相对于交通工具200的环境的任何期望区域。在一些实施例中,图像捕获设备122、124和126中的一个或多个可以被配置为用于从交通工具200前面、交通工具200后面、交通工具200侧面或其组合的环境采集图像数据。
进一步地,与每个图像捕获设备122、124和/或126相关联的焦距可以是可选的(例如,通过包括适当的透镜等),使得每个设备采集在相对于交通工具200的期望距离范围内的对象的图像。例如,在一些实施例中,图像捕获设备122、124和126可以采集距离交通工具几米以内的特写对象的图像。图像捕获设备122、124和126还可以被配置为用于采集距交通工具更远的范围(例如,25m、50m、100m、150m或更长)内的对象的图像。进一步地,图像捕获设备122、124和126的焦距可以被选择成使得一个图像捕获设备(例如,图像捕获设备122)可以采集相对靠近交通工具(例如,在10m内或20m内)的对象的图像,而其他图像捕获设备(例如,图像捕获设备124和126)可以采集距交通工具200更远的(例如,距交通工具大于20m、50m、100m、150m等的)对象的图像。
根据一些实施例,一个或多个图像捕获设备122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,对于可以用于捕获交通工具200附近的区域的图像的图像捕获设备122、124和126尤其如此。例如,图像捕获设备122可以用于捕获交通工具200右侧或左侧区域的图像,并且在此类实施例中,图像捕获设备122具有宽FOV(例如,至少140度)可能是符合期望的。
与图像捕获设备122、124和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,相对应的视场减小。
图像捕获设备122、124和126可以被配置为具有任何合适的视场。在一个特定示例中,图像捕获设备122可以具有46度的水平FOV,图像捕获设备124可以具有23度的水平FOV,并且图像捕获设备126可以具有23度与46度之间的水平FOV。在另一实例中,图像捕获设备122可以具有52度的水平FOV,图像捕获设备124可以具有26度的水平FOV,并且图像捕获设备126可以具有26度与52度之间的水平FOV。在一些实施例中,图像捕获设备122的FOV与图像捕获设备124和/或图像捕获设备126的FOV的比率可以从1.5变化到2.0。在其他实施例中,该比率可以在1.25与2.25之间变化。
系统100可以被配置为使得图像捕获设备122的视场至少部分地或完全地与图像捕获设备124和/或图像捕获设备126的视场重叠。在一些实施例中,系统100可以被配置为使得图像捕获设备124和126的视场例如落在图像捕获设备122的视场内(例如,图像捕获设备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进行导航。进一步地,系统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是符合所公开的实施例的示例性相机支架370的图示,该示例性相机支架被配置为位于后视镜(例如,后视镜310)后面并抵靠交通工具挡风玻璃。如图3B所示,相机支架370可以包括图像捕获设备122、124和126。图像捕获设备124和126可以位于眩光屏蔽件380的后面,该眩光屏蔽件380可以齐平地抵靠交通工具挡风玻璃,并包括膜和/或抗反射材料的组合物。例如,眩光屏蔽件380可以被定位成使得该屏蔽件抵靠具有匹配的坡度的交通工具挡风玻璃而对齐。在一些实施例中,图像捕获设备122、124和126中的每一个都可以被定位在眩光屏蔽件380后面,例如,如图3D中所描绘。所公开的实施例不限于图像捕获设备122、124和126、相机支架370和眩光屏蔽件380的任何特定配置。图3C是图3B中所示的相机支架370从前视视角的视图。
如受益于本公开的本领域技术人员将领会的,可以对前述公开的实施例做出很多的变型和/或修改。例如,并非所有组件都是对于系统100的操作必要的。进一步地,任何组件可以位于系统100的任何适当部分中,并且组件可以被重新布置成各种配置,同时提供所公开的实施例的功能。因此,前面的配置是示例,并且不管上面讨论的配置如何,系统100都可以提供范围广泛的功能来分析交通工具200的周边并响应于该分析而对交通工具200进行导航。
如下文进一步详细地所讨论并且符合各个所公开实施例,系统100可以提供与自主驾驶和/或驾驶员辅助技术相关的各种特征。例如,系统100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速度数据和/或来自交通工具200中所包括的传感器的数据。系统100可以从例如图像采集单元120、位置传感器130、和其他传感器收集数据以用于分析。进一步地,系统100可以分析所收集的数据,以确定交通工具200是否应当采取某个动作,并且随后在没有人类干预的情况下自动地采取所确定的动作。例如,当交通工具200在没有人类干预的情况下导航时,系统100可以(例如,通过将向节流系统220、制动系统230、和转向系统240中的一者或多者发送控制信号)自动地控制交通工具200的制动、加速、和/或转向。进一步地,系统100可以分析所收集的数据,并基于对所收集的数据的分析向交通工具乘员发出警告和/或警报。下文提供关于由系统100提供的各实施例的附加细节。
前向多成像系统
如上文所讨论,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向交通工具前进方向的一个或多个相机。在其他实施例中,多相机系统可以包括面向交通工具侧面或交通工具后部的一个或多个相机。在一个实施例中,例如,系统100可以使用双相机成像系统,其中第一相机和第二相机(例如,图像捕获设备122和124)可以被定位在交通工具(例如,交通工具200)的前部和/或侧面。第一相机的视场可以大于、小于第二相机的视场,或部分地与第二相机的视场重叠。此外,第一相机可以被连接到第一图像处理器,该第一图像处理器用于对由第一相机提供的图像执行单目图像分析,并且第二相机可以被连接到第二图像处理器,该第二图像处理器用于对由第二相机提供的图像执行单目图像分析。可以组合第一和第二图像处理器的输出(例如,经处理的信息)。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,系统100可以使用三相机成像系统,其中这些相机中的每个相机具有不同的视场。因此,此类系统可以基于从位于交通工具前方和侧面的不同距离处的对象导出的信息做出决策。对单目图像分析的引用可以指其中基于从单个视点(例如,从单个相机)捕获的图像执行图像分析的实例。立体图像分析可以指其中基于利用图像捕获参数的一个或多个变体而捕获的两个或更多个图像执行图像分析的实例。例如,适合于执行立体图像分析的捕获的图像可以包括:从两个或更多个不同位置捕获的图像、从不同视场捕获的图像、使用不同焦距捕获的图像、连同视差信息一起被捕获的图像等。
例如,在一个实施例中,系统100可以使用图像捕获设备122、124和126实现三相机配置。在此类配置中,图像捕获设备122可以提供窄视场(例如,34度或从大约20到45度范围中选择的其他值,等等),图像捕获设备124可以提供宽视场(例如,150度或从大约100到大约180度的范围中选择的其他值),并且图像捕获设备126可以提供中间视场(例如,46度或从大约35度到大约60度的范围中选择的其他值)。在一些实施例中,图像捕获设备126可以充当主相机或主要相机。图像捕获设备122、124和126可以被定位在后视镜310的后面,并且基本上并排地定位(例如,相隔6cm)。进一步地,在一些实施例中,如上文所讨论,图像捕获设备122、124和126中的一个或多个可以安装在与交通工具200的挡风玻璃齐平的眩光屏蔽件380后面。此类屏蔽可以用于最小化来自车内部的任何反射对图像捕获设备122、124和126的影响。
在另一个实施例中,如上文结合图3B和图3C所讨论的,宽视场相机(例如,上述示例中的图像捕获设备124)可以安装成低于窄视场和主视场相机(例如,上述示例中的图像设备122和126)。此配置可以提供来自宽视场相机的自由视线。为了减少反射,相机可以安装成靠近交通工具200的挡风玻璃,并可以在相机上包括偏振器来抑制反射光。
三相机系统可以提供某些性能特性。例如,一些实施例可以包括基于来自另一个相机的检测结果来验证由一个相机对对象的检测的能力。在上文所讨论的三相机配置中,处理单元110可以包括例如三个处理设备(例如,如上文所讨论的三个EyeQ系列处理器芯片),其中每个处理设备专用于处理由图像捕获设备122、124和126中的一个或多个捕获的图像。
在三相机系统中,第一处理设备可以从主相机和窄视场相机两者接收图像,并对窄FOV相机执行视觉处理,以例如检测其他交通工具、行人、车道标记、交通标志、交通灯和其他道路对象。进一步地,第一处理设备可以计算来自主相机的图像与来自窄相机的图像之间的像素的视差,并创建交通工具200的环境的3D重构。然后,第一处理设备可以将3D重构与3D地图数据或与基于来自另一相机的信息计算的3D信息相组合。
第二处理设备可以从主相机接收图像并执行视觉处理,以检测其他交通工具、行人、车道标记、交通标志、交通灯和其他道路对象。附加地,第二处理设备可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重构(例如,运动恢复结构(structure frommotion))。第二处理设备可以将基于运动恢复结构的3D重构发送到第一处理设备来与立体3D图像组合。
第三处理设备可以从宽FOV相机接收图像并对这些图像进行处理,以检测交通工具、行人、车道标记、交通标志、交通灯和其他道路对象。第三处理设备可以进一步执行附加的处理指令以分析图像,从而标识图像中移动的对象,诸如正改变车道的交通工具、行人等。
在一些实施例中,使基于图像流的信息被独立地捕获和处理可以提供在系统中提供冗余的机会。此类冗余可以包括例如,使用第一图像捕获设备和来自该设备的经处理的图像来验证和/或补充通过捕获和处理来自至少第二图像捕获设备的图像信息而获得的信息。
在一些实施例中,系统100可以使用两个图像捕获设备(例如,图像捕获设备122和124)来为交通工具200提供导航辅助,并使用第三图像捕获设备(例如,图像捕获设备126)来提供冗余并且验证对从其他两个图像捕获设备接收的数据的分析。例如,在此类配置中,图像捕获设备122和124可以提供用于由系统100进行立体分析以对交通工具200进行导航的图像,而图像捕获设备126可以提供用于由系统100进行单目分析以提供对基于从图像捕获设备122和/或图像捕获设备124捕获的图像获得的信息的冗余和验证的图像。即,图像捕获设备126(和相对应的处理设备)可以被认为提供用于对从图像捕获设备122和124导出的分析提供检查(例如,以提供自动紧急制动(AEB)系统)的冗余子系统。此外,在一些实施例中,可以基于从一个或多个传感器(例如,雷达(radar)、激光雷达(lidar)、声学传感器、从交通工具外部的一个或多个收发器接收的信息等)接收的信息来补充对所接收的数据的冗余和验证。
本领域技术人员将认识到,上述相机配置、相机放置、相机数量、相机位置等仅为示例。这些组件和相对于整个系统描述的其他组件可以在各种不同的配置中组装和使用,而不背离所公开的实施例的范围。关于使用多相机系统来提供驾驶员辅助和/或自主交通工具功能的进一步细节如下文。
图4是可以存储/编程有用于执行符合所公开的实施例的一个或多个操作的指令的存储器140和/或150的示例性功能框图。尽管下文引用存储器140,但本领域技术人员将认识到,指令可以存储在存储器140和/或150中。
如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。进一步地,应用处理器180和/或图像处理器190可以执行被包括在存储器140中的模块402、404、406和408中的任何一个中所存储的指令。本领域技术人员将理解,在以下讨论中对处理单元110的引用可以单独或共同地指应用处理器180和图像处理器190。相应地,可以由一个或多个处理设备执行以下过程中的任何过程的步骤。
在一个实施例中,单目图像分析模块402可以存储这样的指令(诸如计算机视觉软件):该指令在由处理单元110执行时对由图像捕获设备122、124和126中的一者采集的图像的集合执行单目图像分析。在一些实施例中,处理单元110可以将来自图像的集合的信息与附加的传感信息(例如,来自雷达、激光雷达等的信息)组合以执行单目图像分析。如下文结合图5A-图5D所描述的,单目图像分析模块402可以包括用于检测图像的集合中的一组特征的指令,这些特征诸如车道标记、交通工具、行人、道路标志、公路出口匝道、交通灯、危险对象以及与交通工具的环境相关联的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以引起交通工具200中的一个或多个导航响应,诸如转弯、车道偏移、加速度的变化等,如下文结合导航响应模块408所讨论。
在一个实施例中,立体图像分析模块404可以存储这样的指令(诸如计算机视觉软件):该指令在由处理单元110执行时对从图像捕获设备122、124和126中的任何图像捕获设备选择的图像捕获设备组合所采集的第一组图像集合和第二图像集合执行立体图像分析。在一些实施例中,处理单元110可以将来自第一图像集合和第二图像集合的信息与附加的传感信息(例如,来自雷达的信息)组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕获设备124采集的第一图像集合和由图像捕获设备126采集的第二图像集合来执行立体图像分析的指令。如下文结合图6所描述,立体图像分析模块404可以包括用于检测第一图像集合和第二图像集合内的一组特征的指令,这些特征诸如车道标记、交通工具、行人、道路标志、公路出口匝道、交通灯、危险对象等。基于分析,处理单元110可以引起交通工具200中的一个或多个导航响应,诸如转弯、车道偏移、加速度的变化等,如下文结合导航响应模块408所讨论。此外,在一些实施例中,立体图像分析模块404可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统(诸如,可以被配置为用于使用计算机视觉算法来在捕获和处理来自其的传感信息的环境中检测和/或标示对象的系统)相关联的技术。在一个实施例中,立体图像分析模块404和/或其他图像处理模块可以被配置为使用经训练的系统和未经训练的系统的组合。
在一个实施例中,速度和加速度模块406可以存储被配置为用于分析从交通工具200中的一个或多个计算和机电设备接收的数据的软件,这些计算和机电设备被配置为用于引起交通工具200的速度和/或加速度的变化。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的执行中导出的数据来计算交通工具200的目标速度。此类数据可以包括例如目标位置、速度和/或加速度,交通工具200相对于附近交通工具、行人或道路对象的位置和/或速度,交通工具200相对于道路的车道标记的位置信息等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自交通工具200的其他系统(诸如交通工具200的节流系统220、制动系统230和/或转向系统240)的输入来计算交通工具200的目标速度。基于计算出的目标速度,处理单元110可以向交通工具200的节流系统220、制动系统230和/或转向系统240传送电子信号,以通过例如物理地压下交通工具200的制动装置或松开交通工具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所描述的技术在交通工具200中引起一个或多个导航响应。导航响应可以包括例如转弯、车道偏移、加速度的变化等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行中导出的数据来引起一个或多个导航响应。此外,多个导航响应可以同时发生、按顺序发生或以这些方式的任何组合来发生。例如,处理单元110可以通过例如顺序地向交通工具200的转向系统240和节流系统220传送控制信号来使交通工具200偏移通过一个车道并且然后加速。替代地,处理单元110可以通过例如同时向交通工具200的制动系统230和转向系统240传送控制信号来使交通工具200在偏移车道的同时制动。
图5B是示出符合所公开的实施例的、用于检测图像的集合中的一个或多个交通工具和/或行人的示例性过程500B的流程图。处理单元110可以执行单目图像分析模块402以实现过程500B。在步骤540处,处理单元110可以确定表示可能的交通工具和/或行人的候选对象的集合。例如,处理单元110可以扫描一个或多个图像,将图像与一个或多个预定模式进行比较,并在每个图像内标识可能包含感兴趣对象(例如,交通工具、行人或其部分)的可能位置。预定模式可以以实现高“误命中”率和低“未命中”率的方式来设计。例如,处理单元110可以将低相似度阈值用于预定模式,以将候选对象标识为可能的交通工具或行人。这样做可以允许处理单元110降低未命中(例如,未标识)表示交通工具或行人的候选对象的概率。
在步骤542处,处理单元110可以基于分类准则来过滤候选对象的集合以排除某些候选(例如,无关或不太相关的对象)。此类准则可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性中导出。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于交通工具200的位置)等等。因此,处理单元110可以使用一个或多个准则集合来拒绝来自候选对象的集合的假候选。
在步骤544处,处理单元110可以分析图像的多个帧以确定候选对象的集合中的对象是否表示交通工具和/或行人。例如,处理单元110可以跨连续帧跟踪所检测的候选对象,并累积与所检测的对象相关联的逐帧数据(例如,大小、相对于交通工具200的位置等)。附加地,处理单元110可以估计所检测的对象的参数,并将对象的逐帧位置数据与所预测的位置进行比较。
在步骤546处,处理单元110可以为所检测的对象构造测量的集合。此类测量可以包括例如与所检测的对象相关联的(相对于交通工具200的)位置、速度和加速度值。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的估计技术(诸如卡尔曼滤波器或线性二次估计(LQE))和/或基于针对不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)的可用建模数据来构造测量。卡尔曼滤波器可以基于对象尺度的测量,其中尺度测量与碰撞时间(例如,交通工具200到达对象的时间量)成比例。因此,通过执行步骤540-546,处理单元110可以标识出现在所捕获的图像的集合内的交通工具和行人,并导出与交通工具和行人相关联的信息(例如,位置、速度、大小)。基于标识和导出的信息,处理单元110可以在交通工具200中引起一个或多个导航响应,如上文结合图5A所描述。
在步骤548处,处理单元110可以执行对一个或多个图像的光流分析,以降低检测到“误命中”和未命中表示交通工具或行人的候选对象的概率。光流分析可以指例如在与其他交通工具和行人相关联的一个或多个图像中分析相对于交通工具200的、不同于道路表面运动的运动模式。处理单元110可以通过观察跨在不同时间捕获的多个图像帧的对象的不同位置来计算候选对象的运动。处理单元110可以使用位置和时间值作为数学模型的输入来计算候选对象的运动。因此,光流分析可以提供检测交通工具200附近的交通工具和行人的另一方法。处理单元110可以结合步骤540-546执行光流分析,从而为检测交通工具和行人提供冗余,并增加系统100的可靠性。
图5C是示出符合所公开的实施例的、用于检测图像的集合中的道路标记和/或车道几何信息的示例性过程500C的流程图。处理单元110可以执行单目图像分析模块402以实现过程500C。在步骤550处,处理单元110可以通过扫描一个或多个图像来检测对象的集合。为了检测具有车道标记、车道几何信息和其他有关道路标记的段,处理单元110可以对该对象的集合进行过滤以排除那些被确定为无关的对象(例如,小坑洞、小岩石等)。在步骤552处,处理单元110可以将在步骤550中检测到的属于相同道路标记或车道标记的段编组在一起。基于编组,处理单元110可以形成用于表示检测到的段的模型,诸如数学模型。
在步骤554处,处理单元110可以构造与所检测的段相关联的测量的集合。在一些实施例中,处理单元110可以创建所检测的段从图像平面到真实世界平面的投影。可以使用具有与物理属性(诸如所检测的道路的位置、坡度、曲率和曲率导数)相对应的系数的三次多项式来表征投影。在生成投影时,处理单元110可以考虑道路表面的变化以及与交通工具200相关联的俯仰率和滚转率。此外,处理单元110可以通过分析存在于道路表面上的位置和运动线索来对道路标高建模。进一步地,处理单元110可以通过跟踪一个或多个图像中的特征点的集合来估计与交通工具200相关联的俯仰率和滚转率。
在步骤556处,处理单元110可以通过例如跨连续图像帧跟踪所检测的段并且累积与所检测的段相关联的逐帧数据来执行多帧分析。随着处理单元110执行多帧分析,在步骤554处构造的该测量的集合可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过执行步骤550、552、554和556,处理单元110可以标识出现在捕获的图像的集合内的道路标记,并导出车道几何信息。基于标识和导出的信息,处理单元110可以在交通工具200中引起一个或多个导航响应,如上文结合图5A所描述。
在步骤558处,处理单元110可以考虑附加信息源,以在交通工具200的周边的情境中进一步形成用于交通工具200的安全模型。处理单元110可以使用安全模型来定义其中系统100可以以安全方式执行交通工具200的自主控制的情境。为了形成安全模型,在一些实施例中,处理单元110可以考虑其他交通工具的位置和运动、检测到的道路边缘和障碍物、和/或从地图数据(诸如来自地图数据库160的数据)中提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以为检测道路标记和车道几何形状提供冗余,并提高系统100的可靠性。
图5D是示出符合所公开的实施例的、用于检测图像的集合中的交通灯的示例性过程500D的流程图。处理单元110可以执行单目图像分析模块402以实现过程500D。在步骤560处,处理单元110可以扫描图像的集合,并标识出现在图像中的可能包含交通灯的位置处的对象。例如,处理单元110可以过滤所标识的对象以构造候选对象的集合,从而排除那些不太可能对应于交通灯的对象。过滤可以基于与交通灯相关联的各种属性来完成,这些属性诸如形状、尺寸、纹理、位置(例如,相对于交通工具200的位置),等等。此类属性可以基于交通灯和交通控制信号的多个示例,并被存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的候选对象的集合执行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的真实世界位置,并过滤掉正在移动的那些对象(它们不太可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并标识检测到的颜色出现在可能的交通灯内部的相对位置。
在步骤562处,处理单元110可以分析交叉路口的几何形状。分析可以基于以下各项的任意组合:(i)交通工具200任一侧检测到的车道的数量,(ii)道路上检测到的标记(诸如箭头标记),以及(iii)从地图数据(诸如来自地图数据库160的数据)中提取的交叉路口的描述。处理单元110可以使用从单目分析模块402的执行中导出的信息来进行分析。此外,处理单元110可以确定在步骤560处检测到的交通灯与出现在交通工具200附近的车道之间的相对应关系。
当交通工具200逐渐接近交叉路口时,在步骤564处,处理单元110可以更新与所分析的交叉路口几何形状和检测到的交通灯相关联的置信度水平。例如,估计出现在交叉路口的交通灯的数量与实际出现在交叉路口的交通灯的数量进行比较可能会影响置信度水平。因此,基于置信度水平,处理单元110可以将控制委托给交通工具200的驾驶员,以便改善安全状况。通过执行步骤560、562和564,处理单元110可以标识出现在捕获的图像的集合内的交通灯,并分析交叉路口几何信息。基于标识和分析,处理单元110可以在交通工具200中引起一个或多个导航响应,如上文结合图5A所描述。
图5E是示出符合所公开的实施例的、用于基于交通工具路径在交通工具200中引起一个或多个导航响应的示例性过程500E的流程图。在步骤570处,处理单元110可以构造与交通工具200相关联的初始交通工具路径。可以使用以坐标(x,z)表达的点的集合来表示交通工具路径,并且该点的集合中的两个点之间的距离di可能落在1米到5米的范围内。在一个实施例中,处理单元110可以使用两个多项式(例如,左道路多项式和右道路多项式)来构造初始交通工具路径。处理单元110可以计算两个多项式之间的几何中点,并将所得到的交通工具路径中包括的每个点偏移预定的偏移(例如,智能车道偏移)――如果有预定的偏移的话(零偏移可以对应于在车道中间的行驶)。偏移可以在垂直于交通工具路径中任何两点之间的段的方向上。在另一实施例中,处理单元110可以使用一个多项式和估计的车道宽度来将交通工具路径的每个点偏移所估计的车道宽度的一半加上预定的偏移(例如,智能车道偏移)。
在步骤572处,处理单元110可以更新在步骤570处构造的交通工具路径。处理单元110可以使用更高的分辨率来重构在步骤570处构造的交通工具路径,使得表示交通工具路径的点的集合中的两个点之间的距离dk小于上文描述的距离di。例如,距离dk可能落在0.1米到0.3米的范围内。处理单元110可以使用抛物线样条算法重构交通工具路径,抛物线样条算法可以产生与交通工具路径的总长度相对应的累计距离向量S(即,基于表示交通工具路径的该点的集合)。
在步骤574处,处理单元110可以基于在步骤572处构造的经更新的交通工具路径来确定前瞻点(以坐标表达为(xl,zl))。处理单元110可以从累计距离向量S中提取前瞻点,并且前瞻点可以与前瞻距离和前瞻时间相关联。可以具有范围从10米到20米的下限的前瞻距离可以被计算为交通工具200的速度与前瞻时间的乘积。例如,随着交通工具200的速度减小,前瞻距离也可能减小(例如,直到前瞻距离达到下限)。范围可以从0.5秒至1.5秒的前瞻时间可以与同在交通工具200中引起导航响应相关联的一个或多个控制回路(诸如航向误差跟踪控制回路)的增益成反比。例如,航向误差跟踪控制回路的增益可取决于偏航率回路的带宽、转向致动器回路、汽车横向动力学等。因此,航向误差跟踪控制回路的增益越高,前瞻时间就越短。
在步骤576处,处理单元110可以基于在步骤574处确定的前瞻点来确定航向误差和偏航率命令。处理单元110可以通过计算前瞻点的反正切(例如,arctan(xl/zl))来确定航向误差。处理单元110可以将偏航率命令确定为航向误差和高水平控制增益的乘积。如果前瞻距离并非处于下限,则高水平控制增益可以等于:(2/前瞻时间)。否则,高水平控制增益可能等于:(2*交通工具200的速度/前瞻距离)。
图5F是示出符合所公开的实施例的、用于确定在前的交通工具是否正在改变车道的示例性过程500F的流程图。在步骤580处,处理单元110可以确定与在前的交通工具(例如,在交通工具200前面行驶的交通工具)相关联的导航信息。例如,处理单元110可以使用上文结合图5A和图5B所描述的技术来确定在前的交通工具的位置、速度(例如,方向和速率)和/或加速度。处理单元110也可以使用上文结合图5E描述的技术来确定一个或多个道路多项式、(与交通工具200相关联的)前瞻点和/或蜗牛踪迹(snail trail)(例如,描述由在前的交通工具采取的路径的点的集合)。
在步骤582处,处理单元110可以分析在步骤580处确定的导航信息。在一个实施例中,处理单元110可以计算蜗牛踪迹与道路多项式(例如,沿着踪迹)之间的距离。如果该距离沿着踪迹的变化超过预定阈值(例如,在笔直道路上为0.1米到0.2米,在中等弯曲的道路上为0.3米到0.4米,并且在具有急弯的道路上为0.5米到0.6米),则处理单元110可以确定在前的交通工具可能正在改变车道。在其中多个交通工具被检测到在交通工具200前面行驶的情况下,处理单元110可以比较与每个交通工具相关联的蜗牛踪迹。基于该比较,处理单元110可以确定蜗牛踪迹与其他交通工具的蜗牛踪迹不匹配的交通工具可能正在改变车道。处理单元110可以附加地将(与在前的交通工具相关联的)蜗牛踪迹的曲率与该在前的交通工具正在其中行驶的道路段的预期曲率进行比较。预期曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其他交通工具的蜗牛踪迹、从关于道路的先前知识等等中提取。如果蜗牛踪迹的曲率与道路段的预期曲率的差超过预定阈值,则处理单元110可以确定在前的交通工具可能正在改变车道。
在另一实施例中,处理单元110可以在特时序间段(例如,0.5秒到1.5秒)内将在前的交通工具的瞬时位置与(与交通工具200相关联的)前瞻点进行比较。如果在前的交通工具的瞬时位置与前瞻点之间的距离在特定的时段期间变化且累计变化总和超过预定阈值(例如,在笔直道路上为0.3米至0.4米,在中等弯曲的道路上为0.7米至0.8米,在具有急弯的道路上为1.3米至1.7米),则处理单元110可以确定在前的交通工具可能正在改变车道。在另一个实施例中,处理单元110可以通过将沿着蜗牛踪迹行驶的横向距离与蜗牛踪迹的预期曲率进行比较来分析该踪迹的几何形状。预期曲率半径可以根据如下计算来确定:(δz 2+δx 2)/2/(δx),其中δx表示行驶的横向距离,并且δz表示行驶的纵向距离。如果行驶的横向距离与预期曲率之间的差超过预定阈值(例如,500米到700米),则处理单元110可以确定在前的交通工具可能在改变车道。在另一实施例中,处理单元110可以分析在前的交通工具的位置。如果在前的交通工具的位置遮挡了道路多项式(例如,在前的交通工具覆盖在道路多项式之上),则处理单元110可以确定在前的交通工具可能正在改车道。在其中在前的交通工具的位置使得在该在前的交通工具前面检测到另一交通工具并且这两个交通工具的蜗牛踪迹不平行的情况下,处理单元110可以确定(更近的)在前的交通工具可能正在改变车道。
在步骤584处,处理单元110可以基于在步骤582处执行的分析来确定在前的交通工具200是否正在改变车道。例如,处理单元110可以基于在步骤582处执行的各个分析的加权平均值来作出确定。在此类方案下,例如,由处理单元110基于特定类型的分析而作出的在前的交通工具可能正在改变车道的决策可以被分配值“1”(并且“0”用于表示在前的交通工具不太可能正在改变车道的确定)。在步骤582处执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。
图6是示出了符合所公开的实施例的、用于基于立体图像分析引起一个或多个导航响应的示例性过程600的流程图。在步骤610处,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,图像采集单元120中所包括的相机(诸如具有视场202的图像捕获设备122和具有视场204的图像捕获设备124)可以捕获交通工具200前方的区域的第一和第二多个图像,并通过数字连接(例如,USB、无线、蓝牙等)将它们传送到处理单元100。在一些实施例中,处理单元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的图像捕获设备122、具有视场204的图像捕获设备124和具有视场206的图像捕获设备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)。包括它们各自的位置和视场202、204和206的图像捕获设备122、124和126的配置可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕获设备122、124和126的特定配置,或对第一、第二和第三多个图像进行的分析的类型。
在一些实施例中,处理单元110可以基于在步骤710和720处采集和分析的图像对系统100执行测试。此类测试可以提供针对图像捕获设备122、124和126的某些配置的系统100的总体性能的指标。例如,处理单元110可以确定“误命中”(例如,其中系统100错误地确定交通工具或行人的存在的情况)与“未命中”的比例。
在步骤730处,处理单元110可以基于从第一、第二和第三多个图像中的两者导出的信息在交通工具200中引起一个或多个导航响应。对第一、第二和第三多个图像中的两者的选择可以取决于各种因素,诸如例如在多个图像中的每一者中检测到的对象的数量、类型和大小。处理单元110还可以基于以下各项来进行选择:图像质量和分辨率、图像中反映的有效视场、所捕获帧的数量、一个或多个感兴趣对象实际出现在帧中的程度(例如,对象在其中出现的帧的百分比、出现在每个此类帧中的对象的比例等)等等。
在一些实施例中,处理单元110可以通过确定从一个图像源导出的信息与从其他图像源导出的信息的一致的程度来选择从第一、第二和第三多个图像中的两者导出的信息。例如,处理单元110可以组合从图像捕获设备122、124和126中的每一个导出(无论是通过单目分析、立体分析还是这两者的任何组合)的经处理的信息,并确定跨从图像捕获设备122、124和126中的每一个图像捕获设备捕获的图像相一致的视觉指示符(例如,车道标记、检测到的交通工具及其位置和/或路径、检测到的交通灯等)。处理单元110还可以排除跨捕获的图像不一致的信息(例如,正在改变车道的交通工具、指示过于靠近交通工具200的交通工具的车道模型等)。因此,处理单元110可以基于一致和不一致信息的确定来选择从第一、第二和第三多个图像中的两者导出的信息。
导航响应可以包括例如转弯、车道偏移、加速度的变化等。处理单元110可以基于在步骤720处执行的分析和如上文结合图4所描述的技术来引起一个或多个导航响应。处理单元110也可以使用从速度和加速度模块406的执行中导出的数据来引起一个或多个导航响应。在一些实施例中,处理单元110可以基于交通工具200与在第一、第二和第三多个图像中的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时发生、按顺序发生或以以上方式的任何组合来发生。
用于自主交通工具导航的稀疏道路模型
在一些实施例中,所公开的系统和方法可以使用稀疏地图进行自主交通工具导航。具体地,稀疏地图可以用于沿道路段的自主交通工具导航。例如,稀疏地图可以为导航自主交通工具提供足够的信息,而无需存储和/或更新大量数据。如下文进一步详细地所讨论,自主交通工具可以使用稀疏地图以基于一条或多条存储的轨迹来导航一条或多条道路。
用于自主交通工具导航的稀疏地图
在一些实施例中,所公开的系统和方法可以生成用于自主交通工具导航的稀疏地图。例如,稀疏地图可以为导航提供足够的信息,而不需要过多的数据存储或数据传输速率。如下文进一步详细地所讨论,交通工具(其可以是自主交通工具)可以使用稀疏地图来导航一条或多条道路。例如,在一些实施例中,稀疏地图可以包括与道路相关的数据并且潜在地包括与沿着道路的地标相关的数据,该数据可能足以用于交通工具导航,但其也呈现出小的数据占用空间。例如,与包括详细地图信息(诸如沿道路收集的图像数据)的数字地图相比,下文详细描述的稀疏数据地图可以需要显著更少的存储空间和数据传输带宽。
例如,稀疏数据地图可以存储沿道路的优选交通工具路径的三维多项式表示,而不是存储道路段的详细表示。这些路径可能需要很少的数据存储空间。进一步地,在所描述的稀疏数据地图中,地标可以被标识并被包括在稀疏地图道路模型中以辅助导航。这些地标可以以适用于实现交通工具导航的任何间距来定位,但在一些情况下,此类地标不需要以高密度和短间距被标识并被包括在模型中。相反,在一些情况下,基于间隔开至少50米、至少100米、至少500米、至少1公里或至少2公里的地标的导航可以是可能的。如将在其他部分中更详细地所讨论,当交通工具沿道路行驶时,可以基于由配备有各种传感器和设备(诸如图像捕获设备、全球定位系统传感器、运动传感器等)的交通工具收集或测量的数据来生成稀疏地图。在一些情况下,稀疏地图可以基于一个或多个交通工具沿特定道路的多次驾驶期间收集的数据而被生成。使用一个或多个交通工具的多次驾驶生成稀疏地图可以被称为“众包”稀疏地图。
与所公开的实施例一致,自主交通工具系统可以使用稀疏地图进行导航。例如,所公开的系统和方法可以分发用于生成自主交通工具的道路导航模型的稀疏地图,并且可以使用稀疏地图和/或生成的道路导航模型沿道路段导航自主交通工具。符合本公开的稀疏地图可以包括一个或多个三维轮廓,这一个或多个三维轮廓可以表示自主交通工具在它们沿着相关联的道路段移动时可以穿过的预定轨迹。
符合本公开的稀疏地图还可以包括表示一个或多个道路特征的数据。此类道路特征可以包括识别的地标、道路特色概况以及在导航交通工具时有用的任何其他道路相关特征。符合本公开的稀疏地图可以基于稀疏地图中包括的相对少量的数据实现交通工具的自主导航。例如,与包括道路的详细表示(诸如道路边缘、道路曲率、与道路段相关联的图像、或详细说明与道路段相关联的其他物理特征的数据)不同,稀疏地图的所公开的实施例可以需要相对较少的存储空间(并且当稀疏地图的部分被传输到交通工具时,需要相对较小的带宽)但是仍然可以充分地提供自主交通工具导航。下面进一步详细讨论的所公开的稀疏地图的小的数据占用空间在一些实施例中可以通过存储需要少量的数据但仍然能够实现自主导航的道路相关的元素的表示来实现。
例如,与存储道路的各个方面的详细表示不同,所公开的稀疏地图可以存储交通工具可以沿着道路遵循的一条或多条轨迹的多项式表示。因此,与存储(或必须传输)关于道路的物理性质的细节来实现沿道路的导航不同,通过使用所公开的稀疏地图,在一些情况下,交通工具可以不必解释道路的物理方面而是通过将其行驶路径与沿特定道路段的轨迹(例如,多项式样条)对齐来沿着特定道路段导航交通工具。以此方式,可以主要基于存储的轨迹(例如,多项式样条)来导航交通工具,与涉及道路图像、道路参数、道路布局等的存储的方法相比,这可以需要少得多的存储空间。
除了所存储的沿道路段的轨迹的多项式表示外,所公开的稀疏地图还可以包括可表示道路特征的小数据对象。在一些实施例中,小数据对象可以包括数字签名,该数字签名是从由沿道路段行驶的交通工具机载的传感器(例如,相机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)导出的。数字签名可以具有相对于由传感器采集的信号减小的大小。在一些实施例中,可以创建与分类器功能兼容的数字签名,分类器功能被配置为用于从由传感器例如在后续的驾驶期间采集的信号中检测和标识道路特征。在一些实施例中,可以创建数字签名,使得数字签名具有尽可能小的占用空间,同时保持基于由在后续时间沿同一道路段行驶的交通工具机载的相机捕获的道路特征的图像(或者如果存储的签名不基于图像和/或包括其他数据,则由传感器生成的数字信号)使道路特征与存储的签名相关或匹配的能力。
在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于可以由交通工具机载的相机检测的道路特征,并且在交通工具机载的相机系统被耦合到能够将对应于该道路特征的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联的分类器的情况下,并且在此类道路标志在该区域是局部地唯一(例如,附近没有相同的道路标志或相同类型的道路标志)的情况下,存储指示道路特征的类型及其位置的数据可能是足够的。
如下文将进一步详细地所讨论,道路特征(例如,沿道路段的地标)可以存储为小数据对象,该小数据对象可以以相对较少的字节表示道路特征,同时为识别并使用此类特征进行导航提供足够的信息。在一个示例中,道路标志可被标识为交通工具的导航可以基于的所识别的地标。道路标志的表示可以存储在稀疏地图中,该稀疏地图包括例如指示地标的类型(例如,停车标志)的一些数据字节以及指示地标的位置(例如,坐标)的一些数据字节。基于地标的此类数据-光表示(例如,使用足以基于地标来进行定位、识别和导航的表示)的导航可以提供与稀疏地图相关联的期望水平的导航功能,而不显著增加与稀疏地图相关联的数据开销。这种地标(和其他道路特征)的精益表示可以利用此类交通工具机载的所包括的传感器和处理器,这些传感器和处理器被配置为用于检测、标识和/或分类某些道路特征。
例如,当标志或甚至特定的标志类型在给定区域内是局部地唯一的(例如,当没有其他标志或没有相同类型的其他标志时)时,稀疏地图可以使用指示地标的类型(标志或特定的标志类型)的数据,以及在导航(例如,自主导航)期间,当自主交通工具机载的相机捕获到包括标志(或特定类型标志)的区域的图像时,处理器可以处理图像,检测标志(如果确实存在于图像中),将图像分类为标志(或特定的标志类型),并使图像的位置与存储在稀疏地图中的标志的位置相关。
稀疏地图可以包括沿道路段标识的对象的任何合适表示。在一些情况下,对象可以被称为语义对象或非语义对象。语义对象可以包括例如与预定类型分类相关联的对象。这种类型分类可有助于减少描述在环境中识别出的语义对象所需的数据量,这既在收获阶段期间是有益的(例如,减少与将驾驶信息从多个收获交通工具传输到服务器的带宽使用相关联的成本),又在导航阶段期间是有益的(例如,减少地图数据可以加快地图片从服务器到导航交通工具的传输,并且还可以降低与用于此类传输的带宽使用相关联的成本)。可以向预计沿道路要遇到的任何类型的对象或特征指派语义对象分类类型。
语义对象可以进一步被分为两个或更多个逻辑组。例如,在一些情况下,一组语义对象类型可能与预定尺寸相关联。此类语义对象可以包括某些限速标志、让行标志、合并标志、停止标志、交通灯、道路上的方向箭头、井盖或可能与标准化大小相关联的任何其他类型的对象。此类语义对象提供的一个益处在于表示/完整地定义对象可能只需要非常少的数据。例如,如果已知限速大小的标准化大小,则收获交通工具可能只需要(通过分析捕获的图像)标识限速标志(识别的类型)的存在以及检测到的限速标志的位置的指示(例如,标志的中心或标志的某个角在捕获的图像中的2D位置(或者,替代地,真实世界坐标系中的3D位置))来为服务器侧的地图生成提供足够的信息。在2D图像位置被传输到服务器的情况下,与捕获的图像相关联的、在其中检测到标志的位置也可以被传输,因而服务器可以确定标志的真实世界位置(例如,使用来自一个或多个收获交通工具的多个捕获的图像通过运动中结构技术来确定)。即使信息有限(定义每个检测到的对象仅需要几个字节),服务器也可以基于从一个或多个收获交通工具接收到的类型分类(表示限速标志)连同针对检测到的标志的位置信息来构造包括完整地被表示的限速标志的地图。
语义对象还可包括与某些标准化特性不相关联的其他识别的对象或特征类型。此类对象或特征可包括坑洞、沥青接缝、灯杆、非标准化标志、道路边缘、树木、树枝或具有一个或多个可变特性(例如,可变尺寸)的任何其他类型的识别的对象类型。在此类情况下,除了向服务器传送检测到的对象或特征类型(例如,坑洞、杆等)的指示以及针对检测到的对象或特征的位置信息外,收获交通工具还可以传送对象或特征的大小的指示。大小可以用2D图像尺寸(例如,利用边界框或一个或多个尺寸值)或(通过运动中结构计算、基于LIDAR或RADAR系统输出、基于经训练的神经网络输出等确定的)真实世界尺寸来表达。
非语义对象或特征可包括落在识别的类别或类型之外但仍可在地图生成中提供有价值的信息的任何可检测的对象或特征。在一些情况下,此类非语义特征可以包括建筑物的检测到的角或建筑物的检测到的窗的角、道路附近独特的石头或对象、道路路肩中的混凝土飞溅物或任何其他可检测的对象或特征。在检测到此类对象或特征时,一个或多个收获交通工具可以向地图生成服务器传送与检测到的对象/特征相关联的一个或多个点(2D图像点或3D真实世界点)的位置。另外,可以为捕获的图像的、包括检测到的对象或特征的区域生成经浓缩或经简化的图像段(例如,图像散列)。该图像散列可以基于预定的图像处理算法来计算,并且可以形成针对检测到的非语义对象或特征的有效签名。此类签名对于相对于包括非语义特征或对象的稀疏地图进行的导航可能是有用的,因为穿过道路的交通工具可以应用与用于生成图像散列所使用的算法类似的算法来确认/验证绘制的非语义特征或对象在捕获的图像中的存在。使用这种技术,非语义特征可增加稀疏地图的丰富性(例如,增强其在导航中的有用性),而不会增加显著的数据开销。
如提到的,目标轨迹可以被存储在稀疏地图中。这些目标轨迹(例如,3D样条)可以表示针对道路的每个可用车道、通过交叉路口的每个有效路径、用于合并和退出等的偏好或推荐路径。除了目标轨迹之外,其他道路特征也可以被检测、被收获,并以表示性样条的形式合并在稀疏地图中。此类特征可以包括例如,道路边缘、车道标记、路缘、护栏或者沿道路或道路段延伸的任何其他对象或特征。
生成稀疏地图
在一些实施例中,稀疏地图可以包括沿道路段延伸的道路表面特征的至少一个线表示以及与该道路段相关联的多个地标。在某些方面中,稀疏地图可以经由“众包”生成,例如,通过对在一个或多个交通工具穿过道路段时采集的多个图像的图像分析。
图8示出了一个或多个交通工具(例如,交通工具200(其可以是自主交通工具))可访问以提供自主交通工具导航的稀疏地图800。稀疏地图800可以被存储在存储器中,该存储器诸如存储器140或150。此类存储器设备可以包括任何类型的非暂态存储设备或计算机可读介质。例如,在一些实施例中,存储器140或150可以包括硬盘驱动器、紧凑盘、闪存、基于磁性的存储器设备、基于光学的存储器设备等。在一些实施例中,稀疏地图800可以被存储在数据库(例如,地图数据库160)中,该数据库可以被存储在存储器140或150或其他类型的存储设备中。
在一些实施例中,稀疏地图800可以被存储在交通工具200上提供的存储设备或非暂态计算机可读介质(例如,交通工具200机载的导航系统中包括的存储设备)上。交通工具200上提供的处理器(例如,处理单元110)可以访问被存储在交通工具200上提供的存储设备或计算机可以读介质中的稀疏地图800,以便生成用于在交通工具穿过道路段时引导自主交通工具200的导航指令。
但是,稀疏地图800不需要相对于交通工具在本地存储。在一些实施例中,稀疏地图800可以被存储在远程服务器上提供的存储设备或计算机可读介质上,该远程服务器与交通工具200或同交通工具200相关联的设备通信。交通工具200上提供的处理器(例如,处理单元110)可以从远程服务器接收稀疏地图800中包括的数据,并可以执行该数据以用于引导交通工具200的自主驾驶。在此类实施例中,远程服务器可以存储稀疏地图800的全部或仅其一部分。相应地,交通工具200机载的和/或一个或多个附加交通工具机载的存储设备或计算机可读介质可以存储稀疏地图800的(多个)剩余部分。
此外,在此类实施例中,可以使得稀疏地图800可供穿过各种道路段的多个交通工具(例如,数十个、数百个、数千个或数百万个交通工具等)访问。还应当注意,稀疏地图800可以包括多个子地图。例如,在一些实施例中,稀疏地图800可包括可在导航交通工具时使用的数百个、数千个、数百万个或更多的子地图(例如,地图片)。此类子地图可以称为局部地图或地图片,并且沿道路行驶的交通工具可以访问与交通工具正在其中行驶的位置相关的任何数量的局部地图。稀疏地图800的局部地图部分可以与作为对稀疏地图800的数据库的索引的全球导航卫星系统(GNSS)关键字一起存储。因此,虽然可以在不依赖于主交通工具的GNSS位置、道路特征或地标的情况下执行用于在本系统中导航主交通工具的转向角的计算,但是此类GNSS信息可以用于检取相关的局部地图。
一般地,稀疏地图800可以基于在一个或多个交通工具沿道路行驶时从它们收集的数据(例如,驾驶信息)而生成。例如,通过使用一个或多个交通工具机载的传感器(例如,相机、速度表、GPS、加速度计等),可以记录一个或多个交通工具沿道路行驶的轨迹,并且可以由基于一个或多个交通工具行驶的所收集的轨迹来确定用于沿道路进行后续行驶的交通工具的优选轨迹的多项式表示。类似地,由一个或多个交通工具收集的数据可以辅助标识沿特定道路的潜在地标。从穿过的交通工具收集的数据也可以用于标识道路概况信息,诸如道路宽度概况、道路粗糙度概况、交通线间距概况、道路状况等。通过使用收集的信息,稀疏地图800可以被生成和被分发(例如,用于本地存储或经由运行中(on-the-fly)数据传输)以用于在导航一个或多个自主交通工具时使用。然而,在一些实施例中,地图生成可以不在地图的初始生成时结束。如下文将更详细地所讨论,随着那些交通工具继续穿过稀疏地图800中包括的道路,稀疏地图800可以基于从交通工具收集的数据连续地或周期性地被更新。
稀疏地图800中记录的数据可以包括基于全球定位系统(GPS)数据的位置信息。例如,位置信息可以被包括在稀疏地图800中用于各种地图元素,包括例如地标位置、道路概况位置等。稀疏地图800中包括的地图元素的位置可以使用从穿过道路的交通工具收集的GPS数据来获得。例如,经过被标识的地标的交通工具可以使用与交通工具相关联的GPS位置信息、以及被标识的地标相对于交通工具的位置的确定(例如,基于从交通工具机载的一个或多个相机收集的数据的图像分析)来确定被标识的地标的位置。当附加的交通工具经过被标识的地标的位置时,可以重复被标识的地标(或稀疏地图800中包括的任何其他特征)的此类位置确定。附加位置确定中的一些或全部可以用于精细存储在稀疏地图800中的、相对于被标识的地标的位置信息。例如,在一些实施例中,相对于存储在稀疏地图800中的特定特征的多个位置测量可以一起求平均。然而,也可以使用任何其他数学运算基于地图元素的多个所确定的位置来精细地图元素的所存储的位置。
在特定示例中,收获交通工具可以穿过特定道路段。每个收获交通工具捕获其相应环境的图像。图像可以以任何合适的帧捕获速率(例如,9Hz等)被收集。每个收获交通工具上机载的(一个或多个)图像分析处理器分析捕获的图像,以检测语义和/或非语义特征/对象的存在。在高级别,收获交通工具将语义和/或非语义对象/特征的检测的指示连同与那些对象/特征相关联的位置一起传送至绘制服务器。更详细地,类型指示符、尺寸指示符等可以与位置信息一起被传送。位置信息可以包括用于使绘制服务器能够将检测到的对象/特征聚合成在导航中有用的稀疏地图的任何合适信息。在一些情况下,位置信息可以包括在其中检测到语义或非语义特征/对象的、捕获的图像中的一个或多个2D图像位置(例如,X-Y像素位置)。此类图像位置可以对应于特征/对象的中心、角等。在该场景中,为了帮助绘制服务器重建驾驶信息并使来自多个收获交通工具的驾驶信息对齐,每个收获交通工具还可以向服务器提供每个图像被捕获所在的位置(例如,GPS位置)。
在其他情况下,收获交通工具可以向服务器提供与检测到的对象/特征相关联的一个或多个3D真实世界点。此类3D点可以相对于预定原点(诸如驾驶段的原点),并且可以通过任何合适的技术来确定。在一些情况下,可以使用运动中结构技术来确定检测到的对象/特征的3D真实世界位置。例如,可以在两个或更多个捕获的图像中检测诸如特定限速标志之类的某个对象。使用诸如捕获的图像之间的收获交通工具的已知自我运动(速度、轨迹、GPS位置等)之类的信息连同观察到的、捕获的图像中限速标志的变化(X-Y像素位置的变化、大小的变化等),与限速标志相关联的一个或多个点的真实位置可以被确定,并被传递给绘制服务器。此类方法是可选的,因为它需要在收获交通工具系统的部分上的更多计算。所公开的实施例的稀疏地图可以使用相对少量的所存储的数据实现交通工具的自主导航。在一些实施例中,稀疏地图800可以具有小于每公里道路2MB、小于每公里道路1MB、小于每公里道路500kB或小于每公里道路100kB的数据密度(例如,包括表示目标轨迹、地标和任何其他存储的道路特征的数据)。在一些实施例中,稀疏地图800的数据密度可以小于每公里道路10kB,或者甚至小于每公里道路2kB(例如,每公里1.6kB),或者不大于每公里道路10kB,或者不大于每公里道路20kB。在一些实施例中,美国的大多数(如果不是全部的话)道路可以使用具有总共4GB或更少的数据的稀疏地图来自主地导航。这些数据密度值可以表示整个稀疏地图800上、稀疏地图800内的局部地图上和/或稀疏地图800内的特定道路段上的平均值。
如所提到,稀疏地图800可以包括用于沿道路段引导自主驾驶或导航的多条目标轨迹810的表示。此类目标轨迹可以存储为三维样条。例如,存储在稀疏地图800中的目标轨迹可以基于交通工具沿特定道路段的先前穿过的两条或更多条重构的轨迹来确定。道路段可以与单条目标轨迹或多条目标轨迹相关联。例如,在双车道道路上,可以存储第一目标轨迹以表示沿道路在第一方向上的预期行驶路径,并且可以存储第二目标轨迹以表示沿道路在另一方向(例如,与第一方向相反)上的预期行驶路径。可以存储关于特定道路段的附加目标轨迹。例如,在多车道道路上,可以存储一条或多条目标轨迹,这一条或多条目标轨迹表示与多车道道路相关联的一个或多个车道中的交通工具的预期行驶路径。在一些实施例中,多车道道路的每个车道可以与其自身的目标轨迹相关联。在其他实施例中,可能有比存在于多车道道路上的车道更少的所存储的目标轨迹。在此类情况下,导航多车道道路的交通工具可以通过考虑从目标轨迹针对其被存储的车道的车道偏移的量来使用被存储的目标轨迹中的任何一个来引导其导航(例如,如果交通工具正在三车道公路的最左侧车道上行驶,并且仅针对公路的中间车道存储目标轨迹,则交通工具可以通过在生成导航指令时考虑中间车道与最左侧车道之间的车道偏移的量来使用中间车道的目标轨迹进行导航)。
在一些实施例中,目标轨迹可以表示在交通工具行驶时该交通工具应当采用的理想路径。例如,目标轨迹可以位于行驶车道的近似中心处。在其他情况下,目标轨迹可位于相对于道路段的其他位置。例如,目标轨迹可以近似地与道路的中心、道路的边缘或车道的边缘等重合。在此类情况下,基于目标轨迹的导航可以包括相对于目标轨迹的位置要保持的所确定的偏移量。此外,在一些实施例中,相对于目标轨迹的位置要保持的所确定的偏移量可以基于交通工具的类型而不同(例如,包括两个车轴的乘用交通工具沿目标轨迹的至少一部分可具有与包括多于两个的车轴的卡车不同的偏移量)。
稀疏地图800还可以包括与特定道路段、局部地图等相关联的多个预定地标820相关的数据。如下文更详细地所讨论,这些地标可以在自主交通工具的导航中被使用。例如,在一些实施例中,地标可以用于确定交通工具相对于所存储的目标轨迹的当前位置。利用该位置信息,自主交通工具可以能够调整航向以匹配所确定的位置处的目标轨迹的方向。
多个地标820可以以任何合适的间隔被标识和存储在稀疏地图800中。在一些实施例中,地标可以以相对高的密度(例如,每隔几米或更高的密度)被存储。然而,在一些实施例中,可以采用显著更大的地标间距值。例如,在稀疏地图800中,所标识(或所识别)的地标可以间隔开10米、20米、50米、100米、1公里或2公里。在一些情况下,所标识的地标可位于间隔开甚至大于2公里的距离处。
在地标之间,以及因此在相对于目标轨迹对交通工具位置的多次确定之间,交通工具可以基于航位推算进行导航,在该航位推算中,交通工具使用传感器确定其自我运动并估计其相对于目标轨迹的位置。由于误差在通过航位推算进行的导航期间会累积,因此随着时间的推移,相对于目标轨迹的位置确定可能会变得越来越不准确。交通工具可以使用稀疏地图800中出现的地标(及其已知位置)来消除位置确定中由航位推算引起的误差。以这种方式,被包括在稀疏地图800中的所标识的地标可以用作导航锚,可通过该导航锚确定交通工具相对于目标轨迹的准确位置。由于一定量的误差在位置定位中是可以接受的,因此所标识的地标不必总是可用于自主交通工具。相反,如上文所提到,甚至基于10米、20米、50米、100米、500米、1公里、2公里或更大的地标间距,合适的导航也是可能的。在一些实施例中,每1km道路1个所标识的地标的密度可以足以将纵向位置确定准确度维持在1m以内。因此,并非沿道路段出现的每个潜在地标都需要被存储在稀疏地图800中。
此外,在一些实施例中,车道标记可以用于在地标间隔期间对交通工具进行定位。通过在地标间距期间使用车道标记,可以使在通过航位推算进行的导航期间的误差累积最小化。
除了目标轨迹和所标识的地标,稀疏地图800还可以包括与各种其他道路特征相关的信息。例如,图9A图示出可以存储在稀疏地图800中的沿着特定道路段的曲线的表示。在一些实施例中,道路的单个车道可以通过道路左侧和右侧的三维多项式描述来建模。图9A中示出了表示单个车道的左侧和右侧的此类多项式。不管道路可能具有多少个车道,该道路都可以按照类似于图9A所示的方式的方式、使用多项式来表示。例如,多车道道路的左侧和右侧可以由类似于图9A中所示的多项式的多项式来表示,并且在多车道道路上所包括的中间车道标记(例如,表示车道边界的虚线标记、表示在不同方向上行驶的车道之间边界的黄色实线等)也可以使用诸如图9A中所示的多项式的多项式来表示。
如图9A所示,车道900可以使用多项式(例如,一阶、二阶、三阶或任何合适阶的多项式)表示。为了说明,车道900被示为二维车道,并且多项式被示为二维多项式。如图9A所描绘,车道900包括左侧910和右侧920。在一些实施例中,可以使用多于一个的多项式来表示道路或车道边界的每一侧的位置。例如,左侧910和右侧920中的每一者可以由具有任何合适长度的多个多项式表示。在一些情况下,多项式可具有约100m的长度,但也可以使用大于或小于100m的其他长度。附加地,多项式可以彼此重叠,以促进在主交通工具沿道路行驶时基于后续遇到的多项式进行导航时的无缝过渡。例如,左侧910和右侧920中的每一者都可以由多个三阶多项式表示,这些三阶多项式被分成长度大约100米(第一预定范围的示例)、并且彼此重叠大约50米的段。表示左侧910和右侧920的多项式可以具有相同的阶数,或可以不具有相同的阶数。例如,在一些实施例中,一些多项式可以是二阶多项式,一些可以是三阶多项式,而一些可以是四阶多项式。
在图9A所示的示例中,车道900的左侧910由两组三阶多项式表示。第一组包括多项式段911、912和913。第二组包括多项式段914、915和916。这两个组虽然基本上彼此平行,但遵循它们在道路的相应侧的位置。多项式段911、912、913、914、915和916具有大约100米的长度,并且与系列中的相邻段重叠大约50米。然而,如之前所提到,也可以使用具有不同长度和不同重叠量的多项式。例如,多项式可以具有500米、1公里或更长的长度,并且重叠量可以从0变化到50米、从50米变化到100米或变化到大于100米。附加地,虽然图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/小时行驶的主交通工具,这可转化为数据使用/传输要求方面的大致200kB/小时。
稀疏地图800可以使用几何描述符和元数据的组合来描述车道网络。几何形状可以通过如上文所描述的多项式或样条来描述。元数据可以描述车道数量、特殊特性(诸如汽车共用车道)以及可能的其他稀疏标签。此类指示符的总占用空间可以忽略不计。
相应地,根据本发明的实施例的稀疏地图可以包括沿道路段延伸的道路表面特征的至少一个线表示,每个线表示代表沿道路段的、基本上与道路表面特征相对应的路径。在一些实施例中,如上文所讨论,道路表面特征的至少一个线表示可以包括样条、多项式表示或曲线。此外,在一些实施例中,道路表面特征可以包括道路边缘或车道标记中的至少一个。此外,如下文关于“众包”所讨论,可以通过对在一个或多个交通工具穿过道路段时采集的多个图像的图像分析来标识道路表面特征。
如之前所提到,稀疏地图800可以包括与道路段相关联的多个预定地标。与存储地标的实际图像和依赖例如基于捕获的图像和存储的图像的图像识别分析不同,稀疏地图800中的每个地标可以使用比存储的实际图像将需求的更少的数据来表示和识别。表示地标的数据仍然可以包括用于描述或标识沿道路的地标的足够信息。存储描述地标特性的数据而不是地标的实际图像可以减小稀疏地图800的大小。
图10图示出可以在稀疏地图800中表示的地标的类型的示例。地标可以包括沿道路段的任何可见和可标识对象。地标可以被选择成使得它们是固定的,并且在它们的位置和/或内容方面不经常改变。稀疏地图800中包括的地标在确定交通工具200在穿过特定道路段时该交通工具相对于目标轨迹的位置时可以是有用的。地标的示例可包括交通标志、方向标志、一般标志(例如,矩形标志)、路边固定装置(例如,灯杆、反光镜等)和任何其他合适的类别。在一些实施例中,道路上的车道标记也可以作为地标被包括在稀疏地图800中。
图10所示的地标的示例包括交通标志、方向标志、路边固定装置和一般标志。交通标志可包括例如,限速标志(例如,限速标志1000)、避让标志(例如,避让标志1005)、路线编号标志(例如,路线编号标志1010)、交通灯标志(例如,交通灯标志1015)、停车标志(例如,停车标志1020)。方向标志可以包括包含指示去往不同地方的一个或多个方向的一个或多个箭头的标志。例如,方向标志可以包括:公路标志1025,该公路标志1025具有用于将交通工具引导至不同道路或地点的箭头;出口标志1030,该出口标志1030具有引导交通工具离开道路的箭头,等等。相应地,多个地标中的至少一个可以包括道路标志。
一般标志可以与交通无关。例如,一般标志可以包括用于广告的广告牌,或邻近两个国家、州、县、市或城镇之间的边界的欢迎牌。图10示出了一般标志1040(“乔氏餐厅(Joe’s Restaurant)”)。尽管一般标志1040可以具有矩形形状,如图10所示,但一般标志1040可以具有其他形状,诸如正方形、圆形、三角形等。
地标还可包括路边固定装置。路边固定装置可以是并非标志的对象,并且也可以与交通或方向无关。例如,路边固定装置可以包括灯杆(例如,灯杆1035)、电线杆、交通灯杆等。
地标也可以包括可以被专门设计成用于在自主交通工具导航系统中使用的信标。例如,此类信标可以包括以预定间隔放置的独立式结构,以辅助导航主交通工具。此类信标也可以包括添加到现有道路标志上的视觉/图形信息(例如,图标、徽章、条形码等),这些信息可以由沿道路段行驶的交通工具标识或识别。此类信标还可以包括电子组件。在此类实施例中,电子信标(例如,RFID标签等)可以用于将非视觉信息传送到主交通工具。此类信息可以包括例如主交通工具在确定其沿目标轨迹的位置时可以使用的地标标识和/或地标位置信息。
在一些实施例中,稀疏地图800中包括的地标可以由预定大小的数据对象表示。表示地标的数据可以包括用于标识特定地标的任何合适的参数。例如,在一些实施例中,存储在稀疏地图800中的地标可以包括诸如以下各项的参数:地标的物理大小(例如,用于支持基于已知大小/尺度估计到地标的距离)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型——什么类型的方向标志、交通标志等)、GPS坐标(例如,用于支持全球定位)、以及任何其他合适的参数。每个参数都可以与数据大小相关联。例如,可以使用8字节的数据存储地标大小。可以使用12字节的数据指定到先前地标的距离、横向偏移和高度。与地标(诸如方向标志或交通标志)相关联的类型代码可能需要大约2字节的数据。对于一般标志,可以使用50字节的数据存储来存储实现对一般标志的标识的图像签名。地标GPS位置可以与16字节的数据存储相关联。每个参数的这些数据大小仅为示例,并且也可以使用其他数据大小。以这种方式在稀疏地图800中表示地标可以提供用于在数据库中高效地表示地标的精益解决方案。在一些实施例中,对象可被称为标准语义对象或非标准语义对象。标准语义对象可以包括具有标准化特征集的任何类别的对象(例如,具有已知尺寸或其他特征的限速标志、警告标志、方向标志、交通灯等)。非标准语义对象可以包括与标准化特征集不相关联的任何对象(例如,可能具有可变尺寸的一般广告标志、标识商业场所的标志、凹坑、树木等)。每个非标准语义对象可以用38字节的数据表示(例如,8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;2字节用于类型代码;以及16字节用于位置坐标)。标准语义对象可以使用更少的数据来表示,因为地图服务器在稀疏地图中完整地表示该对象可能不需要大小信息。
稀疏地图800可以使用标签系统来表示地标类型。在一些情况下,每个交通标志或方向标志可以与其自身的标签相关联,该标签可以作为地标标识的一部分被存储在数据库中。例如,数据库可以包括量级为1000个的不同标签来表示各种交通标志、以及量级为大约10000个的不同标签来表示方向标志。当然,可以使用任何合适数量的标签,并且可以根据需要创建附加的标签。在一些实施例中,通用标志可以使用小于大约100字节(例如,大约86字节,包括用于大小的8字节;用于到先前地标的距离距离、横向偏移和高度的12字节;用于图像签名的50字节;以及用于GPS坐标的16字节)来表示。
因此,对于不需要图像签名的语义标志,即使在大约每50米1个地标的相对较高的地标密度的情况下,数据密度对稀疏地图800的影响也可以处于大约每公里760字节的量级(例如,每公里20个地标x每地标38字节=760字节)。甚至对于包括图像签名分量的通用标志,数据密度影响大约为每公里1.72kB(例如,每公里20个地标x每个地标86字节=1720字节)。对于语义道路标志,这相当于针对100km/小时行驶的交通工具的大约每小时76kB的数据使用。对于通用标志,这相当于针对100km/小时行驶的交通工具的大约每小时170kB。应注意的是,在某些环境(例如城市环境)中,可以用于包括在稀疏地图中的检测到的对象的密度可能会高得多(可能每米多于一个)。在一些实施例中,总体上矩形的对象(诸如矩形标志)可以在稀疏地图800中由不超过100字节的数据表示。稀疏地图800中的总体上矩形对象(例如,一般标志1040)的表示可以包括与总体上矩形的对象相关联的浓缩的图像签名或图像散列(例如,浓缩的图像签名1045)。这种浓缩的图像签名/图像散列可以使用任何合适的图像散列化算法来确定,并且可以例如用于辅助将通用标志标识为例如所识别的地标。此类浓缩的图像签名(例如,从表示对象的实际图像数据导出的图像信息)可以避免需要存储对象的实际图像或者避免需要对实际图像执行比较性图像分析来识别地标。
参考图10,稀疏地图800可以包括或存储与一般标志1040相关联的浓缩的图像签名1045,而不是一般标志1040的实际图像。例如,在图像捕获设备(例如,图像捕获设备122、124或126)捕获一般标志1040的图像后,处理器(例如,图像处理器190或在主交通工具上或相对于主交通工具远程定位的、可以处理图像的任何其他处理器)可以执行图像分析以提取/创建浓缩的图像签名1045,该浓缩的图像签名1045包括与一般标志1040相关联的唯一签名或图案。在一个实施例中,浓缩的图像签名1045可以包括形状、彩色图案、亮度图案或可以从一般标志1040的图像中提取以用于描述一般标志1040的任何其他特征。
例如,在图10中,浓缩的图像签名1045中示出的圆、三角形和星形可以表示不同颜色的区域。由圆、三角形和星形表示的图案可以被存储在稀疏地图800中,例如,被存储在被指定为包括图像签名的50字节内。值得注意的是,圆、三角形和星形不一定意味着指示此类形状作为图像签名的一部分被存储。相反,这些形状意味着在概念上表示具有可辨别颜色差异的可识别区域、纹理区域、图形形状或可能与一般目的标志相关联的其他特征变化。此类浓缩的图像签名可以用于以一般标志的形式标识地标。例如,浓缩的图像签名可以用于基于所存储的浓缩的图像签名与例如使用自主交通工具机载的相机捕获的图像数据的比较来执行相同-不相同(same-not-same)分析。
相应地,多个地标可以通过对当一个或多个交通工具穿过道路段时采集的多个图像进行的图像分析来标识。如下文关于“众包”所解释,在一些实施例中,用于标识多个地标的图像分析可以包括:当在其中地标确实出现的图像相比在其中地标不出现的图像的比率超过阈值时,接受潜在地标。此外,在一些实施例中,用于标识多个地标的图像分析可以包括:当在其中地标不出现的图像相比在其中地标确实出现的图像的比率超过阈值时,拒绝潜在地标。
返回主交通工具可用于导航特定道路段的目标轨迹,图11A示出了在构建或维护稀疏地图800的过程期间捕获的多项式表示轨迹。稀疏地图800中所包括的目标轨迹的多项式表示可以基于交通工具沿相同道路段的先前穿过的两个或更多个重建的轨迹来确定。在一些实施例中,稀疏地图800中包括的目标轨迹的多项式表示可以是交通工具沿相同道路段的先前穿过的两个或更多个重构的轨迹的聚合。在一些实施例中,稀疏地图800中包括的目标轨迹的多项式表示可以是交通工具沿相同道路段的先前穿过的两个或更多个重构的轨迹的平均。也可以使用其他数学运算基于从沿道路段穿过的交通工具收集的重构的轨迹来沿道路路径构造目标轨迹。
如图11A所示,道路段1100可以在不同时间由数个交通工具200行驶。每个交通工具200可以收集与交通工具沿道路段所采用的路径有关的数据。特定交通工具行驶的路径可以基于相机数据、加速度计信息、速度传感器信息和/或GPS信息以及其他潜在源来确定。此类数据可以用于重构交通工具沿道路段行驶的轨迹,并且基于这些重构的轨迹,可以确定针对特定道路段的目标轨迹(或多条目标轨迹)。随着交通工具沿道路段行驶,此类目标轨迹可以表示主交通工具的优选路径(例如,由自主导航系统引导)。
在图11A所示的示例中,可以基于从在第一时间段(例如,第1天)穿过道路段1100的第一交通工具接收的数据确定第一重构的轨迹1101,可以从在第二时间段(例如,第2天)穿过道路段1100的第二交通工具获得第二重构的轨迹1102,并且可以从在第三时间段(例如,第3天)穿过道路段1100的第三交通工具获得第三重构的轨迹1103。每条轨迹1101、1102和1103可以由诸如三维多项式之类的多项式表示。应当注意,在一些实施例中,这些重构的轨迹中的任一者可以被机载地装配在穿过道路段1100的交通工具上。
附加地或替代地,此类重构的轨迹可以在服务器侧基于从穿过道路段1100的交通工具接收到的信息来确定。例如,在一些实施例中,交通工具200可以向一个或多个服务器传送与其沿道路段1100的运动相关的数据(例如,转向角、航向、时间、位置、速度,感测到的道路几何形状和/或感测到的地标,等等)。服务器可以基于接收到的数据重构用于交通工具200的轨迹。服务器也可以生成用于引导自主交通工具导航的目标轨迹,该自主交通工具将在稍后基于第一轨迹1101、第二轨迹1102和第三轨迹1103沿同一道路段1100行驶。虽然目标轨迹可以与道路段的单个先前穿过相关联,但是在一些实施例中,稀疏地图800中包括的每条目标轨迹可以基于穿过同一道路段的交通工具的两个或更多个重构的轨迹来确定。在图11A中,目标轨迹由1110表示。在一些实施例中,可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103的平均来生成目标轨迹1110。在一些实施例中,稀疏地图800中包括的目标轨迹1110可以是两条或更多条重构的轨迹的聚合(例如,加权组合)。
在绘制服务器处,服务器可以从穿过道路段的多个收获交通工具接收针对特定道路段的实际轨迹。为了针对沿道路段的每个有效路径(例如,每个车道、每个驾驶方向、通过交叉路口的每个路径等)生成目标轨迹,接收到的实际轨迹可以被对齐。对齐过程可以包括使用沿道路段标识的检测到的对象/特征连同这些检测到的对象/特征的收获位置将实际收获的轨迹彼此相关。一旦被对齐,则针对每个可用车道等的平均或“最佳拟合”目标轨迹可以基于经聚合、经相关/经对齐的实际轨迹来确定。
图11B和图11C进一步说明了与地理区域1111内存在的道路段相关联的目标轨迹的概念。如图11B所示,地理区域1111内的第一道路段1120可以包括多车道道路,其包括指定用于交通工具在第一方向上行驶的两个车道1122和指定用于交通工具在与第一方向相反的第二方向上行驶的两个附加车道1124。车道1122和车道1124可以由双黄线1123分隔。地理区域1111也可以包括与道路段1120相交的分支道路段1130。道路段1130可以包括双车道道路,每个车道被指定用于不同的行驶方向。地理区域1111也可以包括其他道路特征,诸如停车线1132、停车标志1134、限速标志1136和危险标志1138。
如图11C所示,稀疏地图800可以包括局部地图1140,该局部地图1140包括用于辅助交通工具在地理区域1111内的自主导航的道路模型。例如,局部地图1140可以包括针对与地理区域1111内的道路段1120和/或1130相关联的一个或多个车道的目标轨迹。例如,局部地图1140可以包括自主交通工具在穿过车道1122时可以访问或依赖的目标轨迹1141和/或1142。类似地,局部地图1140可以包括自主交通工具在穿过车道1124时可以访问或依赖的目标轨迹1143和/或1144。进一步地,局部地图1140可以包括自主交通工具在穿过道路段1130时可以访问或依赖的目标轨迹1145和/或1146。目标轨迹1147表示自主交通工具在从车道1120(并且具体地,相对于与车道1120中的最右侧车道相关联的目标轨迹1141)过渡到道路段1130(并且具体地,相对于与道路段1130第一侧相关联的目标轨迹1145)时应当遵循的优选路径。类似地,目标轨迹1148表示自主交通工具在从道路段1130(并且具体地,相对于目标轨迹1146)过渡到道路段1124的部分(并且具体地,如图所示,相对于与车道1124中的左车道相关联的目标轨迹1143)时应当遵循的优选路径。
稀疏地图800也可以包括与地理区域1111相关联的其他道路相关特征的表示。例如,稀疏地图800也可以包括在地理区域1111中标识的一个或多个地标的表示。此类地标可以包括与停车线1132相关联的第一地标1150、与停车标志1134相关联的第二地标1152、与限速标志1154相关联的第三地标、以及与危险标志1138相关联的第四地标1156。例如,此类地标可以用于辅助自主交通工具确定其相对于所示目标轨迹中的任一目标轨迹的当前位置,使得交通工具可以调整其航向以匹配所确定的位置处的目标轨迹的方向。
在一些实施例中,稀疏地图800还可以包括道路特色概况。此类道路特色概况可以与同道路相关联的至少一个参数的任何可辨别/可测量变化相关联。例如,在一些情况下,此类概况可与道路表面信息的变化相关联,道路表面信息的变化诸如,特定道路段的表面粗糙度的变化、特定道路段上的道路宽度的变化、沿特定道路段绘制的虚线之间的距离的变化、沿特定道路段的道路曲率的变化,等等。图11D示出了道路特色概况1160的示例。虽然概况1160可以表示上文提及的参数中的任何参数或其他参数,但在一个示例中,概况1160可以表示如例如通过监视一个或多个传感器获得的道路表面粗糙度的测量,该一个或多个传感器提供指示当交通工具行驶特定道路段时悬架位移量的输出。
替代地或同时地,概况1160可以表示如基于经由在特定道路段行驶的交通工具机载的相机获得的图像数据而确定的道路宽度的变化。例如,在确定自主交通工具相对于特定目标轨迹的特定位置时,此类概况可能是有用的。也就是说,当自主交通工具穿过道路段时,自主交通工具可以测量与关联于与该道路段相关联的一个或多个参数的概况。如果测量的概况可以与标画关于沿道路段的位置的参数变化的预定概况相关/匹配,则可以使用测量的概况和预定概况(例如,通过叠加测量的概况和预定概况的相对应部分)来确定沿道路段的当前位置,并由此确定相对于针对该道路段的目标轨迹的当前位置。
在一些实施例中,稀疏地图800可以包括基于与自主交通工具的用户、环境状况和/或与驾驶相关的其他参数相关联的不同特性的不同轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或概况生成不同的轨迹。包括此类不同轨迹的稀疏地图800可以被提供给不同用户的不同自主交通工具。例如,一些用户可能偏好避开收费公路,而其他用户可能偏好选择最短或最快的路线,而无论该路线上是否有收费公路。所公开的系统可以基于此类不同的用户偏好或概况生成具有不同轨迹的不同稀疏地图。作为另一个示例,一些用户可能偏好在快速移动车道上行驶,而其他用户可能偏好始终在中心车道中维持位置。
基于不同的环境状况(诸如白天和黑夜、雪、雨、雾等),不同的轨迹可以被生成并且被包括在稀疏地图800中。可以向在不同的环境状况下驾驶的自主交通工具提供基于此类不同的环境状况而生成的稀疏地图800。在一些实施例中,在自主交通工具上提供的相机可以检测环境状况,并且可以将此类信息提供回到生成和提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包括对于在检测到的环境状况下的自主驾驶可能更适合或更安全的轨迹。基于环境状况的稀疏地图800的更新可以在自主交通工具正沿道路行驶时被动态地执行。
与驾驶相关的其他不同参数也可以被用作用来生成不同的稀疏地图并将其提供给不同的自主交通工具的基础。例如,当自主交通工具正以高速度行驶时,转弯可能会更困难。与特定车道而非道路相关联的轨迹可以被包括在稀疏地图800中,使得当交通工具遵循特定轨迹时,该自主交通工具可以维持在特定车道内。当自主交通工具机载的相机捕获的图像指示交通工具已漂移到车道外(例如,跨越车道标记)时,可以在交通工具内触发动作,以根据特定轨迹将交通工具带回所指定的车道。
众包稀疏地图
所公开的稀疏地图可以通过众包的力量高效地(且被动地)生成。例如,配备有相机(例如,简单的低分辨率相机,通常作为OEM装备被包括在当今的交通工具上)以及适当的图像分析处理器的任何私人或商用交通工具都可以充当收获交通工具。无需特殊装备(例如,高清成像和/或定位系统)。作为所公开的众包技术的结果,生成的稀疏地图可以极度准确,并且可以包括极度精细的位置信息(实现10cm或更小的导航误差限制),而不需要任何专门的成像或感测装备作为对地图生成过程的输入。众包还实现对生成的地图快速得多(且便宜得多)的更新,因为绘制服务器系统能够从被最低限度地配备成也充当收获交通工具的私人或商用交通工具穿过的任何道路不断获得新的驾驶信息。无需配备有高清成像和绘制传感器的指定交通工具。因此,可以避免与构建此类专门的交通工具相关联的费用。进一步地,相比于依赖于专用的专门的绘制交通工具的系统(由于其费用和特殊设备,专用的专门的地图交通工具通常限于数量远低于已经可用于执行所公开的收获技术的私人或商用交通工具的数量的专门交通工具的车队),对当前所公开的稀疏地图的更新可以快速得多地进行。
所公开的、通过众包生成的稀疏地图可能极度准确,因为它们可能基于来自已沿特定道路段收集驾驶信息的多个(数十个、数百个、数百万个,等等)收获交通工具的许多输入来生成。例如,沿特定道路段驾驶的每一个收获交通工具均可记录其实际轨迹,并可确定相对于沿道路段检测到的对象/特征的位置信息。该信息沿着从多个收获交通工具到服务器进行传递。实际轨迹被聚合,以针对沿道路段的每个有效驾驶路径生成精细的目标轨迹。附加地,从多个收获交通工具收集的、针对沿道路段的检测到的对象/特征(语义或非语义的)中的每一者的位置信息也可以被聚合。因此,每个检测到的对象/特征的绘制的位置可以构成针对每个检测到的对象/特征的数百、数千或数百万个单独确定的位置的平均。此类技术可以针对检测到的对象/特征产生极度准确的绘制的位置。
在一些实施例中,所公开的系统和方法可以生成用于自主交通工具导航的稀疏地图。例如,所公开的系统和方法可以使用众包数据来生成稀疏地图,一个或多个自主交通工具可以使用该稀疏地图来沿道路系统导航。如本文中所使用,“众包”意指从在不同时间在道路段上行驶的各种交通工具(例如,自主交通工具)接收数据,并且此类数据用于生成和/或更新道路模型(包括稀疏地图片)。该模型或其稀疏地图片中的任何稀疏地图片可以进而传送至交通工具或随后沿道路段行驶的其他交通工具,以辅助自主交通工具导航。道路模型可以包括多个目标轨迹,该多个目标轨迹表示自主交通工具在它们穿过道路段时应当遵循的优选轨迹。目标轨迹可以与从穿过道路段的交通工具收集的重构的实际轨迹相同,该重构的实际轨迹可以从交通工具传送到服务器。在一些实施例中,目标轨迹可与一个或多个交通工具先前在穿过道路段时采用的实际轨迹不同。可以基于实际轨迹(例如,通过求平均或任何其他适合的运算)生成目标轨迹。
交通工具可以上传到服务器的交通工具轨迹数据可以与交通工具的实际重构轨迹相对应,或者可以与推荐轨迹相对应,该推荐轨迹可以基于交通工具的实际重构轨迹或与交通工具的实际重构轨迹相关,但可以与实际重构轨迹不同。例如,交通工具可以修改其实际重构轨迹,并向服务器提交(例如,推荐)经修改的实际轨迹。道路模型可以使用推荐的、经修改的轨迹作为用于其他交通工具的自主导航的目标轨迹。
除轨迹信息外,在构建稀疏数据地图800时潜在使用的其他信息可以包括与潜在地标候选相关的信息。例如,通过信息的众包,所公开的系统和方法可以标识环境中的潜在地标并精细地标位置。地标可以被自主交通工具的导航系统用来确定和/或调整交通工具沿目标轨迹的位置。
交通工具在该交通工具沿道路行驶时可生成的重构的轨迹可以通过任何合适的方法获得。在一些实施例中,可以通过使用例如自我运动估计(例如,相机以及由此的交通工具的主体的三维平移和三维旋转)将交通工具的运动段缝合在一起来形成重构的轨迹。旋转和平移估计可以基于对由一个或多个图像捕获设备捕获的图像连同来自其他传感器或设备(诸如惯性传感器和速度传感器)的信息的分析来确定。例如,惯性传感器可以包括加速度计或被配置成用于测量交通工具主体的平移和/或旋转的变化的其他合适的传感器。交通工具可包括测量交通工具的速度的速度传感器。
在一些实施例中,可以基于捕获的图像的光流分析来估计相机(以及由此交通工具主体)的自我运动。图像序列的光流分析标识来自图像序列的像素的运动,并基于所标识的运动来确定交通工具的运动。自我运动可以随时间推移并沿道路段被整合,以重构与交通工具已遵循的道路段相关联的轨迹。
由不同交通工具在不同时间在沿道路段的多次驾驶中收集的数据(例如,重构的轨迹)可以用于构造稀疏数据地图800中包括的道路模型(例如,包括目标轨迹等)。还可以对由不同交通工具在不同时间沿道路段的多次驾驶中收集的数据求平均,以提高模型的准确性。在一些实施例中,关于道路几何形状和/或地标的数据可以从在不同时间行驶通过共同的道路段的多个交通工具接收。从不同交通工具接收的此类数据可以被组合以生成道路模型和/或更新道路模型。
沿道路段的重构的轨迹(以及目标轨迹)的几何形状可以由三维空间中的曲线表示,该曲线可以是连接三维多项式的样条。重构的轨迹曲线可以根据对由安装在交通工具上的相机捕获的视频流或多个图像的分析来确定。在一些实施例中,在每个帧或图像中标识处于交通工具的当前位置前方几米处的位置。该位置是期望交通工具在预定时间段内行驶到的位置。该操作可以逐帧地重复,并且同时,交通工具可以计算相机的自我运动(旋转和平移)。在每个帧或图像处,由交通工具在附接到相机的参考系中生成针对期望路径的短程模型。短程模型可以被缝合在一起,以获得某个坐标系中的道路的三维模型,该坐标系可以是任意或预定的坐标系。然后,可以通过样条拟合道路的三维模型,该样条可以包括或连接一个或多个合适阶的多项式。
为了在每一帧处总结出短程道路模型,可以使用一个或多个检测模块。例如,可以使用自底向上的车道检测模块。当在道路上绘制车道标记时,自底向上的车道检测模块可以是有用的。该模块可以在图像中寻找边缘,并将它们组装在一起以形成车道标记。第二模块可以与自底向上的车道检测模块一起使用。第二模块是端到端深度神经网络,其可以被训练以从输入图像预测正确的短程路径。在这两个模块中,可以在图像坐标系中检测道路模型,并将其变换到可以虚拟地附接到相机的三维空间。
尽管重构轨迹建模方法可能会由于长时间段的自我运动的整合而引入误差的积累(该误差可包括噪声分量),但此类误差可能无关紧要,因为生成的模型可以为在局部尺度上的导航提供足够的准确度。此外,通过使用诸如卫星图像或大地测量的外部信息源来消除综合误差是可能的。例如,所公开的系统和方法可以使用GNSS接收器来消除累积误差。然而,GNSS定位信号可能并不总是可用的和准确的。所公开的系统和方法可以实现弱依赖于GNSS定位的可用性和准确度的操纵应用。在此类系统中,GNSS信号的使用可能被限制。例如,在一些实施例中,所公开的系统可以仅将GNSS信号用于数据库索引目的。
在一些实施例中,针对自主交通工具导航操纵应用可能相关的范围尺度(例如,局部尺度)可以是50米、100米、200米、300米等的量级。此类距离可以被使用,因为几何形状的道路模型主要被用于两个目的:规划前方轨迹和在道路模型上定位交通工具。在一些实施例中,当控制算法根据位于前方1.3秒(或任何其他时间,诸如1.5秒、1.7秒、2秒等)的目标点操纵交通工具时,规划任务可以对前方40米(或前方任何其他合适的距离,诸如20米、30米、50米)的典型范围使用模型。根据另一节中更详细地描述的称为“尾部对齐”的方法,定位任务对车辆后方60米(或任何其他合适的距离,诸如50米、100米、150米等)的典型范围使用道路模型。所公开的系统和方法可以生成对特定范围(诸如100米)具有足够的准确度的几何模型,以使得规划的轨迹将不会从车道中心偏离超过例如30cm。
如上文所解释,可以通过检测短程区段并将其缝合在一起来构造三维道路模型。可以通过使用由相机捕获的视频和/或图像、来自惯性传感器的、反映交通工具运动的数据以及主交通工具速度信号计算六度自我运动模型来实现缝合。累积误差对某个局部范围尺度(诸如100米的量级)可以足够小。所有这些都可以在对特定道路段的单次驾驶中完成。
在一些实施例中,可以使用多次驾驶来对所得的模型求平均,并进一步提高其准确度。同一汽车可多次行驶同一路线,或者多辆汽车可将其收集的模型数据发送到中央服务器。在任何情况下,可以执行匹配过程以标识重叠的模型并实现平均以生成目标轨迹。一旦满足收敛准则,构造的模型(例如,包括目标轨迹)就可以被使用于操纵。后续驾驶可以被用于进一步的模型改进,以适应基础设施变化。
如果多辆汽车被连接到中央服务器,则在多辆汽车之间共享驾驶体验(诸如感测的数据)变得可行。每个交通工具客户可以存储环球道路模型的部分副本,该副本针对其当前位置可以是相关的。交通工具与服务器之间的双向更新过程可以由交通工具和服务器执行。上文所讨论的小占用空间概念使所公开的系统和方法能够使用非常小的带宽来执行双向更新。
还可以确定与潜在地标相关的信息,并将其转发给中央服务器。例如,所公开的系统和方法可以基于包括该地标的一个或多个图像来确定潜在地标的一个或多个物理属性。物理属性可以包括地标的物理大小(例如,高度、宽度)、从交通工具到地标的距离、地标到先前地标的距离、地标的横向位置(例如,地标相对于行驶车道的位置)、地标的GPS坐标、地标的类型,地标上的文本的标识等。例如,交通工具可分析由相机捕获的一个或多个图像,以检测潜在地标(诸如限速标志)。
交通工具可以基于对一个或多个图像的分析来确定从交通工具到地标的距离或与地标相关联的位置(例如,沿道路段的任何语义或非语义对象或特征)。在一些实施例中,可以基于使用合适的图像分析方法(诸如缩放方法和/或光流方法)对地标的图像的分析来确定距离。如前所述,对象/特征的位置可以包括与对象/特征相关联的一个或多个点的2D图像位置(例如,一个或多个捕获的图像中的X-Y像素位置),或者可以包括一个或多个点的3D真实世界位置(例如,通过运动中结构/光流技术、LIDAR或RADAR信息等确定)。在一些实施例中,所公开的系统和方法可以被配置为用于确定潜在地标的类型或分类。在交通工具确定某个潜在地标对应于存储在稀疏地图中的预定的类型或分类的情况下,交通工具向服务器传输地标的类型或分类的指示以及其位置可以是足够的。服务器可以存储此类指示。在之后的时间,在导航期间,导航交通工具可以捕获包括地标的表示的图像,处理图像(例如,使用分类器),并比较结果地标,以确认对绘制地标的检测,并使用绘制地标来相对于稀疏地图定位导航交通工具。
在一些实施例中,在道路段上行驶的多个自主交通工具可以与服务器通信。交通工具(或客户端)可以在任意坐标系中生成描述其驾驶的曲线(例如,通过自我运动整合)交通工具可以检测地标,并在同一帧中定位这些地标。交通工具可以将曲线和地标上传至服务器。服务器可以从交通工具收集针对多次驾驶的数据,并生成统一的道路模型。例如,如下文关于图19所讨论,服务器可以使用上传的曲线和地标来生成具有统一道路模型的稀疏地图。
服务器还可以将模型分发给客户端(例如,交通工具)。例如,服务器可将稀疏地图分发给一个或多个交通工具。当从交通工具接收新数据时,服务器可连续地或周期性地更新模型。例如,服务器可处理新数据,以评估数据是否包括应当触发更新或服务器上新数据的创建的信息。服务器可以将经更新的模型或更新分发给交通工具,以提供自主交通工具导航。
服务器可以使用一个或多个准则来确定从交通工具接收的新数据是否应当触发对模型的更新或触发新数据的创建。例如,当新数据指示特定位置处的先前识别的地标不再存在或被另一地标替换时,服务器可以确定新数据应当触发对模型的更新。作为另一个示例,当新数据指示道路段已被关闭,并且当这一点已通过从其他交通工具接收到的数据证实时,服务器可以确定新数据应当触发对模型的更新。
服务器可以将经更新的模型(或模型的经更新的部分)分发给正在道路段上行驶的、对模型的更新与之相关联的一个或多个交通工具。服务器还可以将经更新的模型分发给即将在道路段上行驶的交通工具、或其规划的行程包括对模型的更新与之相关联的道路段的交通工具。例如,当自主交通工具在到达更新与之相关联的道路段之前正沿着另一道路段行驶时,服务器可以在交通工具到达该道路段之前将更新或经更新的模型分发给自主交通工具。
在一些实施例中,远程服务器可以从多个客户端(例如,沿共同的道路段行驶的交通工具)收集轨迹和地标。服务器可以使用地标来匹配曲线,并基于从多个交通工具收集的轨迹创建平均道路模型。服务器还可以计算道路图以及道路段的每个节点或连接处的最可能路径。例如,远程服务器可以对齐轨迹,以从收集的轨迹生成众包的稀疏地图。
服务器可以对从沿共同的道路段行驶的多个交通工具接收到的地标属性(诸如由多个交通工具测量的一个地标到另一个地标(例如,沿道路段的先前地标)之间的距离)求平均,以确定弧长参数,并支持针对每个客户交通工具的沿路径的定位和速度校准。服务器可以对由沿共同的道路段行驶并识别同一地标的多个交通工具测量的地标的物理大小求平均。平均物理大小可以被用于支持距离估计,诸如从交通工具到地标的距离。服务器可以对由沿共同的道路段行驶并识别同一地标的多个交通工具测量的地标的横向位置(例如,从交通工具正要驶入的车道到地标的位置)求平均。平均横向位置可以用于支持车道分配。服务器可以对由沿同一道路段行驶并识别同一路标的多个交通工具测量的地标的GPS坐标求平均。地标的平均GPS坐标可以被用于支持道路模型中地标的全球位置确定或定位。
在一些实施例中,服务器可以基于从交通工具接收的数据来标识模型变化,这些变换诸如施工、绕道、新标志、标志移除等。在从交通工具接收到新数据后,服务器可以连续地或周期性地或即时地更新模型。服务器可以将对模型的更新或经更新的模型分发给交通工具,以提供自主导航。例如,如下文进一步所讨论,服务器可以使用众包数据以过滤掉由交通工具检测到的“幽灵”地标。
在一些实施例中,服务器可以在自主驾驶期间分析驾驶员干预。服务器可以分析在干预发生的时间和地点从交通工具接收的数据、和/或在干预发生的时间之前接收的数据。服务器可以标识导致干预或与干预密切相关的数据的某些部分,例如,指示临时车道封闭设置的数据、指示道路中的行人的数据。服务器可以基于所标识的数据来更新模型。例如,服务器可以修改模型中存储的一条或多条轨迹。
图12是使用众包生成稀疏地图(以及使用众包的稀疏地图进行分发和导航)的系统的示意图。图12示出了包括一个或多个车道的道路段1200。多个交通工具1205、1210、1215、1220和1225可以在相同时间或在不同时间在道路段1200上行驶(尽管在图12中示出为在相同时间出现在道路段1200上)。交通工具1205、1210、1215、1220和1225中的至少一个可以是自主交通工具。为了本示例的简单性,假设所有交通工具1205、1210、1215、1220和1225都是自主交通工具。
每个交通工具可以类似于其他实施例中公开的交通工具(例如,交通工具200),并可以包括在其他实施例中公开的交通工具中包括或与之相关联的组件或设备。每个交通工具可以配备有图像捕获设备或相机(例如,图像捕获设备122或相机122)。如虚线所指示,每个交通工具可以通过无线通信路径1235、经由一个或多个网络(例如,通过蜂窝网络和/或因特网等)与远程服务器1230通信。每个交通工具可以向服务器1230传送数据并从服务器1230接收数据。例如,服务器1230可以在不同的时间从在道路段1200上行驶的多个交通工具收集数据,并且可以处理收集的数据以生成自主交通工具道路导航模型、或者对模型的更新。服务器1230可以将自主交通工具道路导航模型或对模型的更新传送到向服务器1230传送数据的交通工具。服务器1230可以在稍后将自主交通工具道路导航模型或对模型的更新传送到在道路段1200上行驶的其他交通工具。
当交通工具1205、1210、1215、1220和1225在道路段1200上行驶时,可以将由交通工具1205、1210、1215、1220和1225收集的(例如,检测的、感测的或测量的)导航信息传送至服务器1230。在一些实施例中,导航信息可以与共同的道路段1200相关联。导航信息可以包括当交通工具1205、1210、1215、1220和1225中的每个交通工具在道路段1200上行驶时与每个交通工具相关联的轨迹。在一些实施例中,可以基于由交通工具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可以(例如,通过服务器1230中包括的处理器)基于从多个交通工具1205、1210、1215、1220和1225接收的导航信息来生成针对共同的道路段1200的自主交通工具道路导航模型的至少一部分,并且可以将该模型存储为稀疏地图的一部分。服务器1230可以基于从在不同时间在道路段的车道上行驶的多个交通工具(例如,1205、1210、1215、1220和1225)接收的众包数据(例如,导航信息)来确定与每个车道相关联的轨迹。服务器1230可以基于多条轨迹生成自主交通工具道路导航模型或模型的一部分(例如,经更新的部分),该多条轨迹基于众包导航数据而被确定。服务器1230可以将模型或模型的经更新的部分传送到在道路段1200上行驶的自主交通工具1205、1210、1215、1220和1225中的一个或多个,或传送到稍后在道路段上行驶的任何其他自主交通工具,以用于更新在交通工具的导航系统中提供的现有自主交通工具道路导航模型。自主交通工具道路导航模型可以由自主交通工具在沿共同的道路段1200自主导航时使用。
如上文所解释,自主交通工具道路导航模型可以被包括在稀疏地图(例如,图8中描绘的稀疏地图800)中。稀疏地图800可以包括与道路几何形状和/或沿道路线的地标相关的数据的稀疏记录,其可以提供用于引导自主交通工具的自主导航的足够信息,但不需要过多的数据存储。在一些实施例中,自主交通工具道路导航模型可以与稀疏地图800分开存储,并且可以在为导航执行模型时使用来自稀疏地图800的地图数据。在一些实施例中,自主交通工具道路导航模型可以使用稀疏地图800中包括的地图数据来确定沿道路段1200的目标轨迹,以引导自主交通工具1205、1210、1215、1220和1225或之后沿道路段1200行驶的其他交通工具的自主导航。例如,当自主交通工具道路导航模型由被包括在交通工具1205的导航系统中的处理器执行时,该模型可以使处理器将基于从交通工具1205接收的导航信息而确定的轨迹与稀疏地图800中包括的预定轨迹进行比较,以验证和/或校正交通工具1205的当前行驶路线。
在自主交通工具道路导航模型中,道路特征或目标轨迹的几何形状可以通过三维空间中的曲线进行编码。在一个实施例中,曲线可以是包括一个或多个连接的三维多项式的三维样条。如本领域技术人员所理解,样条可以是由用于拟合数据的一系列多项式分段定义的数值函数。用于拟合道路的三维几何形状数据的样条可以包括线性样条(一阶)、二次样条(二阶)、三次样条(三阶)或任何其他样条(其他阶)、或其组合。样条可以包括连接(例如,拟合)道路的三维几何形状数据的数据点的一个或多个不同阶数的三维多项式。在一些实施例中,自主交通工具道路导航模型可以包括与沿共同的道路段(例如,道路段1200)或道路段1200的车道的目标轨迹相对应的三维样条。
如上文所解释,稀疏地图中包括的自主交通工具道路导航模型可以包括其他信息,诸如对沿道路段1200至少一个地标的标识。地标在安装在交通工具1205、1210、1215、1220和1225中的每个交通工具上的相机(例如,相机122)的视场内可以是可见的。在一些实施例中,相机122可以捕获地标的图像。交通工具1205上提供的处理器(例如,处理器180、190或处理单元110)可以处理地标的图像以提取地标的标识信息。地标标识信息而不是地标的实际图像可以被存储在稀疏地图800中。地标标识信息可能需要比实际图像少得多的存储空间。其他传感器或系统(例如,GPS系统)也可以提供地标的某些标识信息(例如,地标的位置)。地标可以包括以下至少一个:交通标志、箭头标记、车道标记、虚线车道标记、交通灯、停车线、方向标志(例如,带有指示方向的箭头的公路出口标志、带有指向不同方向或位置的箭头的公路标志)、地标信标或灯杆。地标信标是指沿道路段安装的设备(例如,RFID设备),该设备向安装在交通工具上的接收器发送或反射信号,使得当交通工具经过该设备时,由交通工具接收的信标和该设备的位置(例如,从该设备的GPS位置确定)可以被用作要被包括在自主交通工具道路导航模型和/或稀疏地图800中的地标。
至少一个地标的标识可以包括至少一个地标的位置。可以基于使用与多个交通工具1205、1210、1215、1220和1225相关联的传感器系统(例如,全球定位系统、基于惯性的定位系统、地标信标等)执行的位置测量来确定地标的位置。在一些实施例中,地标的位置可以通过对由通过多次驾驶的不同交通工具1205、1210、1215、1220和1225上的传感器系统检测、收集或接收的位置测量求平均来确定。例如,交通工具1205、1210、1215、1220和1225可以向服务器1230传送位置测量数据,服务器1230可以对位置测量求平均,并使用经平均的位置测量作为地标的位置。地标的位置可以通过从后续驾驶中的交通工具接收到的测量值来不断精细。
地标的标识可以包括地标的大小。交通工具(例如,1205)上提供的处理器可以基于对图像的分析来估计地标的物理大小。服务器1230可以在不同驾驶上从不同的交通工具接收同一地标的物理大小的多个估计。服务器1230可以对不同的估计求平均,以得出地标的物理大小,并将该地标大小存储在道路模型中。物理大小估计可以被用于进一步确定或估计从交通工具到地标的距离。可以基于交通工具的当前速度和扩展尺度来估计到地标的距离,该扩展尺度基于图像中出现的地标相对于相机的扩展焦点的位置。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中V是交通工具的速度,R是图像中从时间t1的地标到扩展焦点的距离,而D是图像中从t1到t2针对地标的距离的变化。dt表示(t2-t1)。例如,到地标的距离可以通过Z=V*dt*R/D来估计,其中V是交通工具的速度,R是图像中地标与扩展焦点之间的距离,dt是时间间隔,并且D是地标沿极线的图像位移。可以使用与上述等式等效的其他等式(诸如Z=V*ω/Δω)来估计到地标的距离。这里V是交通工具速度,ω是图像长度(与对象宽度类似),并且Δω是该图像长度在单位时间内的改变。
当已知地标的物理大小时,到地标的距离也可以基于以下等式确定:Z=f*W/ω,其中f是焦距,W是地标的大小(例如,高度或宽度),ω是当地标离开图像时的像素的数量。从以上等式,距离Z的变化可以使用ΔZ=f*W*Δω/ω2+f*ΔW/ω来计算,其中ΔW通过求平均而衰减至零,并且其中Δω是表示图像中的边界框精度的像素数。可以通过对服务器侧的多个观察值求平均来计算估计地标物理大小的值。距离估计的结果误差可以非常小。使用上文公式时,可能会出现两个误差源,即ΔW和Δω。它们对距离误差的贡献由ΔZ=f*W*Δω/ω2+f*ΔW/ω给出。然而,ΔW通过求平均而衰减到零,因此ΔZ由Δω确定(例如,图像中边界框的不精确性)。
对于未知尺寸的地标,可以通过在连续帧之间跟踪地标上的特征点来估计到地标的距离。例如,可以在两个或更多个图像帧之间跟踪出现在限速标志上的某些特征。基于这些被跟踪的特征,可以生成逐特征点的距离分布。可以从距离分布中提取距离估计。例如,距离分布中出现得最频繁的距离可以被用作为距离估计。作为另一示例,可以使用距离分布的平均作为距离估计。
图13示出了由多个三维样条1301、1302和1303表示的示例自主交通工具道路导航模型。图13中所示的曲线1301、1302和1303仅用于说明目的。每个样条可以包括连接多个数据点1310的一个或多个三维多项式。每个多项式可以是一阶多项式、二阶多项式、三阶多项式或具有不同阶数的任何合适的多项式的组合。每个数据点1310可以与从交通工具1205、1210、1215、1220和1225接收的导航信息相关联。在一些实施例中,每个数据点1310可以与同地标(例如,地标的大小、位置和标识信息)和/或道路特色概况(例如,道路几何形状、道路粗糙度概况、道路曲率概况、道路宽度概况)相关的数据相关联。在一些实施例中,一些数据点1310可以与同地标相关的数据相关联,而其他数据点可以与同道路特色概况相关的数据相关联。
图14图示出从五次分开的驾驶接收的原始位置数据1410(例如,GPS数据)。如果一次驾驶由分开的交通工具在同一的时间经历、由同一的交通工具在分开的时间经历、或者由分开的交通工具在分开的时间经历,则这次驾驶可以与另一次驾驶分开。为了计及位置数据1410中的误差以及交通工具在同一车道内的不同位置(例如,一个交通工具可能驾驶得比另一个交通工具更靠近车道的左侧),服务器1230可以使用一个或多个统计技术来生成地图骨架1420,以确定原始位置数据1410中的变化是实际分散还是统计误差。骨架1420内的每个路径可以往回链接到形成该路径的原始数据1410。例如,骨架1420内A与B之间的路径被链接到来自驾驶2、3、4和5而不是来自驾驶1的原始数据1410。骨架1420可能并未详细至足以用于导航交通工具(例如,因为与上文描述的样条不同,骨架1420结合了来自同一道路上的多个车道的驾驶),但可以提供有用的拓扑信息,并可以用于定义交叉口。
图15图示出通过其可以为地图骨架的段(例如,骨架1420内的段A到B)内的稀疏地图生成附加细节的示例。如图15所描绘,数据(例如,自我运动数据、道路标记数据等)可以被示出为沿驾驶的位置S(或S1或S2)的函数。服务器1230可以通过标识驾驶1510的地标1501、1503和1505与驾驶1520的地标1507和1509之间的唯一匹配来标识稀疏地图的地标。此类匹配算法可以导致对地标1511、1513和1515的标识。然而,本领域技术人员将认识到,可以使用其他匹配算法。例如,概率优化可以代替唯一匹配或与唯一匹配结合使用。服务器1230可以纵向地对齐驾驶以对齐匹配的地标。例如,服务器1230可以选择一次驾驶(例如,驾驶1520)作为参考驾驶,然后偏移和/或弹性拉伸另外(一次或多次)驾驶(例如,驾驶1510)以进行对齐。
图16示出了用于在稀疏地图中使用的对齐的地标数据的示例。在图16的示例中,地标1610包括道路标志。图16的示例进一步描绘了来自多次驾驶1601、1603、1605、1607、1609、1611和1613的数据。在图16的示例中,来自驾驶1613的数据由“幽灵”地标组成,并且服务器1230可以按此来标识它,因为驾驶1601、1603、1605、1607、1609和1611中没有一个包括在驾驶1613中的所标识的地标附近的地标的标识。相对应地,服务器1230可以在地标确实在其中出现的图像相比地标不在其中出现的图像的比率超过阈值时接受潜在地标,和/或可以在地标不在其中出现的图像相比地标确实在其中出现的图像的比率超过阈值时拒绝潜在地标。
图17描绘了用于生成驾驶数据的系统1700,该驾驶数据可以用于众包稀疏地图。如图17所描绘,系统1700可以包括相机1701和定位设备1703(例如,GPS定位器)。相机1701和定位设备1703可以安装在交通工具(例如,交通工具1205、1210、1215、1220和1225中的一个)上。相机1701可以产生多种类型的多个数据,例如,自我运动数据、交通标志数据、道路数据,等等。相机数据和位置数据可以被分段成驾驶段1705。例如,驾驶段1705可以各自具有来自少于1km的驾驶的相机数据和位置数据。
在一些实施例中,系统1700可以移除驾驶段1705中的冗余。例如,如果地标出现在来自相机1701的多个图像中,则系统1700可以去除冗余的数据,使得驾驶段1705仅包含地标的位置以及与地标相关的任何元数据的一个副本。作为进一步的示例,如果车道标记出现在来自相机1701的多个图像中,则系统1700可以去除冗余的数据,使得驾驶段1705仅包含车道标记的位置以及与车道标记相关的任何元数据的一个副本。
系统1700还包括服务器(例如,服务器1230)。服务器1230可以从交通工具接收驾驶段1705,并将驾驶段1705重新组合到单次驾驶1707中。此类布置可以允许降低当在交通工具与服务器之间传输数据时的带宽要求,同时还允许服务器存储与整个驾驶相关的数据。
图18描绘进一步被配置成用于众包稀疏地图的图17的系统1700。如图17中所示,系统1700包括交通工具1810,该交通工具1810使用例如相机(其产生例如,自我运动数据、交通标志数据、道路数据等)和定位设备(例如,GPS定位器)来捕获驾驶数据。如在图17中那样,交通工具1810将收集的数据分段为驾驶段(在图18中被描绘为“DS1 1”、“DS2 1”、“DSN1”)。然后,服务器1230接收驾驶段并从接收到的段重构驾驶(在图18中被描绘为“驾驶1”)。
如图18进一步所描绘,系统1700还从附加交通工具接收数据。例如,交通工具1820还使用例如相机(其产生例如,自我运动数据、交通标志数据、道路数据等等)和定位设备(例如,GPS定位器)来捕获驾驶数据。与交通工具1810类似,交通工具1820将收集的数据分段为驾驶段(在图18中描绘为“DS1 2”、“DS2 2”、“DSN 2”)。然后,服务器1230接收驾驶段并从接收到的段重构驾驶(在图18中被描绘为“驾驶2”)。任何数量的附加交通工具可以被使用。例如,图18还包括“汽车N”,其捕获驾驶数据、将其分段为驾驶段(在图18中被描绘为“DS1 N”、“DS2 N”、“DSN N”),并将其发送到服务器1230以重构为驾驶(在图18中被描绘为“驾驶N”)。
如图18所描绘的,服务器1230可以使用从多个交通工具(例如,“汽车1”(也被标记为交通工具1810)、“汽车2”(也标记为交通工具1820)和“汽车N”)收集的重构的驾驶(例如,“驾驶1”、“驾驶2”和“驾驶N”)来构造稀疏地图(被描绘为“地图”)。
图19是示出用于生成用于沿道路段的自主交通工具导航的稀疏地图的示例过程1900的流程图。过程1900可以由服务器1230中包括的一个或多个处理设备执行。
过程1900可以包括:接收当一个或多个交通工具穿过道路段时采集的多个图像(步骤1905)。服务器1230可以从交通工具1205、1210、1215、1220和1225中的一个或多个交通工具内所包括的相机接收图像。例如,当交通工具1205沿道路段1200行驶时,相机122可以捕获交通工具1205周围的环境的一个或多个图像。在一些实施例中,服务器1230还可以接收已由交通工具1205上的处理器移除冗余的精简的图像数据,如上文关于图17所讨论。
过程1900可以进一步包括:基于多个图像标识沿道路段延伸的道路表面特征的至少一个线表示(步骤1910)。每个线表示可以表示沿与道路表面特征基本相对应的道路段的路径。例如,服务器1230可以分析从相机122接收的环境图像以标识道路边缘或车道标记,并确定沿与该道路边缘或车道标记相关联的道路段1200的行驶的轨迹。在一些实施例中,轨迹(或线表示)可以包括样条、多项式表示或曲线。服务器1230可以基于在步骤1905处接收到的相机自我运动(例如,三维平移和/或三维旋转运动)来确定交通工具1205的行驶的轨迹。
过程1900也可以包括:基于多个图像标识与道路段相关联的多个地标(步骤1910)。例如,服务器1230可以分析从相机122接收的环境图像以标识一个或多个地标,诸如沿道路段1200的道路标志。服务器1230可以使用对在一个或多个交通工具穿过道路段时采集的多个图像的分析来标识地标。为了实现众包,分析可能包括关于接受和拒绝与道路段相关联的可能地标的规则。例如,分析可以包括:当地标确实在其中出现的图像相比地标不在其中出现的图像的比率超过阈值时,接受潜在地标;和/或当地标不在其中出现的图像相比地标确实在其中出现的图像的比率超过阈值时,拒绝潜在地标。
过程1900可以包括由服务器1230执行的其他操作或步骤。例如,导航信息可以包括用于交通工具沿道路段行驶的目标轨迹,并且过程1900可以包括:由服务器1230对与在道路段上行驶的多个交通工具相关的交通工具轨迹进行聚类;以及基于经聚类的交通工具轨迹确定目标轨迹,如下文进一步详细地所讨论。对交通工具轨迹聚类可以包括:由服务器1230基于交通工具的绝对航向或交通工具的车道分配中的至少一者将与在道路段上行驶的交通工具相关的多条轨迹聚类为多个集群。生成目标轨迹可以包括:由服务器1230对经聚类的轨迹求平均。作为进一步的示例,过程1900可以包括:使在步骤1905中接收的数据对齐。服务器1230执行的其他过程或步骤也可以被包括在过程1900中。
所公开的系统和方法可以包括其他特征。例如,所公开的系统可以使用局部坐标,而不是全球坐标。对于自主驾驶,一些系统可以以世界坐标呈现数据。例如,可以使用地球表面上的经纬度坐标。为了使用地图进行操纵,主交通工具可以确定其相对于地图的位置和取向。为了在地图上定位交通工具并且为了找到主体参考系和世界参考系(例如,北、东和下)之间的旋转变换,使用机载GPS设备似乎是自然的。一旦主体参考系与地图参考系对齐,就可以在主体参考系中表达所需路线,并可以计算或生成操纵命令。
所公开的系统和方法可以实现具有占用空间很低的模型的自主交通工具导航(例如,操纵控制),该模型可以由自主交通工具自身收集而无需昂贵的调查装备的辅助。为了支持自主导航(例如,操纵应用),道路模型可以包括具有道路的几何形状、其车道结构和地标的稀疏地图,该稀疏地图可以用于确定交通工具沿模型中包括的轨迹的位置或者定位。如上文所讨论,稀疏地图的生成可以由远程服务器执行,该远程服务器与在道路上行驶的交通工具通信,并从交通工具接收数据。该数据可以包括感测的数据、基于感测的数据重构的轨迹和/或可以表示经修改的重构的轨迹的推荐轨迹。如下文所讨论,服务器可以将模型往回传送到交通工具或者之后在道路上行驶的其他交通工具,以辅助自主导航。
图20图示出服务器1230的框图。服务器1230可以包括通信单元2005,其可以包括硬件组件(例如,通信控制电路、开关和天线)和软件组件(例如,通信协议、计算机代码)两者。例如,通信单元2005可以包括至少一个网络接口。服务器1230可以通过通信单元2005与交通工具1205、1210、1215、1220和1225通信。例如,服务器1230可以通过通信单元2005接收从交通工具1205、1210、1215、1220和1225传送的导航信息。服务器1230可以通过通信单元2005将自主交通工具道路导航模型分发给一个或多个自主交通工具。
服务器1230可以包括至少一个非暂态存储介质2010,诸如硬盘驱动器、紧凑盘、磁带等。存储设备1410可以被配置成用于存储数据,该数据诸如从交通工具1205、1210、1215、1220和1225接收的导航信息、和/或服务器1230基于导航信息生成的自主交通工具道路导航模型。存储设备2010可以被配置为用于存储任何其他信息,诸如稀疏地图(例如,上文关于图8讨论的稀疏地图800)。
作为存储设备2010的附加或替代,服务器1230可以包括存储器2015。存储器2015可以与存储器140或150类似或不同。存储器2015可以是非暂态存储器,诸如闪存存储器、随机存取存储器等。存储器2015可以被配置成用于存储数据,该数据诸如可以由处理器(例如,处理器2020)执行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主交通工具道路导航模型,和/或从交通工具1205、1210、1215、1220和1225接收的导航信息。
服务器1230可以包括至少一个处理设备2020,其被配置成用于执行存储在存储器2015中的计算机代码或指令以执行各种功能。例如,处理设备2020可以分析从交通工具1205、1210、1215、1220和1225接收的导航信息,并基于该分析生成自主交通工具道路导航模型。处理设备2020可以控制通信单元1405将自主交通工具道路导航模型分发给一个或多个自主交通工具(例如,交通工具1205、1210、1215、1220和1225中的一个或多个或稍后在道路段1200上行驶的任何交通工具)。处理设备2020可以与处理器180、190或处理单元110类似或不同。
图21图示出存储器2015的框图,存储器2015可以存储用于执行一个或多个操作以生成用于在自主交通工具导航中使用的道路导航模型的计算机代码或指令。如图21所示,存储器2015可以存储用于执行用于处理交通工具导航信息的操作的一个或多个模块。例如,存储器2015可以包括模型生成模块2105和模型分发模块2110。处理器2020可以执行存储在存储器2015中包括的模块2105和2110中的任何模块中的指令。
模型生成模块2105可以存储这样的指令:这些指令当处理器2020执行时可以基于从交通工具1205、1210、1215、1220和1225接收到的导航信息来生成针对共同的道路段(例如,道路段1200)的自主交通工具道路导航模型的至少一部分。例如,在生成自主交通工具道路导航模型时,处理器2020可以将沿共同的道路段1200的交通工具轨迹聚类成不同的集群。处理器2020可以基于针对不同集群中的每一个集群的聚类的交通工具轨迹来确定沿共同的道路段1200的目标轨迹。此类操作可以包括:在每个集群中找到聚类的交通工具轨迹的均值或平均轨迹(例如,通过对表示聚类交通工具轨迹的数据求平均)。在一些实施例中,目标轨迹可以与共同的道路段1200的单个车道相关联。
道路模型和/或稀疏地图可以存储与道路段相关联的轨迹。这些轨迹可以被称为目标轨迹,这些目标轨迹被提供给自主交通工具以用于自主导航。目标轨迹可以从多个交通工具接收,或者可以基于从多个交通工具接收的实际轨迹或推荐轨迹(具有一些修改的实际轨迹)来生成。道路模型或稀疏地图中包括的目标轨迹可以利用从其他交通工具接收的新轨迹持续地被更新(例如,求平均)。
在道路段上行驶的交通工具可以通过各种传感器收集数据。数据可以包括地标、道路特色概况、交通工具运动(例如,加速度计数据、速度数据)、交通工具位置(例如,GPS数据),并且可以自己重构实际轨迹,或者将数据传送到服务器,该服务器将重构交通工具的实际轨迹。在一些实施例中,交通工具可以将与轨迹(例如,任意参考系中的曲线)相关的数据、地标数据和沿行驶路径的车道分配传送到服务器1230。以多次驾驶沿同一道路段行驶的各种交通工具可具有不同的轨迹。服务器1230可以通过聚类过程从接收自交通工具的轨迹中标识与每个车道相关联的路线或轨迹。
图22图示出对与交通工具1205、1210、1215、1220和1225相关联的交通工具轨迹进行聚类以确定针对共同的道路段(例如,道路段1200)的目标轨迹的过程。根据聚类过程确定的目标轨迹或多条目标轨迹可以被包括在自主交通工具道路导航模型或稀疏地图800中。在一些实施例中,沿道路段1200行驶的交通工具1205、1210、1215、1220和1225可以向服务器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行驶的其他自主交通工具使用。当交通工具1205、1210、1215、1220和1225沿道路段1200行驶时由这些交通工具标识的地标可以与目标轨迹相关联地记录。目标轨迹和地标的数据可以利用在后续驾驶中从其他交通工具接收的新数据来持续地或周期性地更新。
对于自主交通工具的定位,所公开的系统和方法可以使用扩展卡尔曼滤波器。交通工具的位置可以基于三维位置数据和/或三维取向数据、通过整合自我运动对在交通工具的当前位置前方的未来位置的预测来确定。交通工具的定位可以通过地标的图像观察来校正或调整。例如,当交通工具检测到由相机捕获的图像内的地标时,该地标可以与存储在道路模型或稀疏地图800内的已知地标进行比较。已知地标可以具有沿存储在道路模型和/或稀疏地图800中的目标轨迹的已知位置(例如,GPS数据)。基于当前速度和地标的图像,可以估计从交通工具到地标的距离。可以基于到地标的距离和地标的已知位置(存储在道路模型或稀疏地图800中)来调整交通工具沿目标轨迹的位置。存储在道路模型和/或稀疏地图800中的地标的位置/定位数据(例如,来自多个驾驶的均值)可以被假定为准确的。
在一些实施例中,所公开的系统可以形成闭环子系统,其中交通工具六自由度位置(例如,三维位置数据加三维取向数据)的估计可以用于导航自主交通工具(例如,操纵自主交通工具的车轮)以到达所需点(例如,比所存储的提前1.3秒)。进而,从操纵和实际导航测得的数据可以用于估计六自由度位置。
在一些实施例中,沿着道路的标杆(诸如灯杆和电线杆或电缆杆)可以被用作定位交通工具的地标。其他地标(诸如交通标志、交通灯、道路上的箭头、停车线、以及沿着道路段的对象的静态特征或特色)也可以被用作定位交通工具的地标。当使用标杆进行定位时,可以使用标杆的x观察(即,从交通工具的视角),而不是y观察(即,到标杆的距离),因为标杆底部可能被遮挡,并且有时它们不在道路平面上。
图23图示出用于交通工具的导航系统,该导航系统可以用于使用众包的稀疏地图进行自主导航。为了说明,该交通工具被引用为交通工具1205。图23中示出的交通工具可以是本文公开的任何其他交通工具,包括例如交通工具1210、1215、1220和1225以及在其他实施例中示出的交通工具200。如图12所示,交通工具1205可以与服务器1230通信。交通工具1205可以包括图像捕获设备122(例如,相机122)。交通工具1205可以包括导航系统2300,其被配置用于为交通工具1205在道路(例如,道路段1200)上行驶提供导航引导。交通工具1205还可以包括其他传感器,诸如速度传感器2320和加速度计2325。速度传感器2320可以被配置成用于检测交通工具1205的速度。加速度计2325可以被配置成用于检测交通工具1205的加速度或减速度。图23中所示的交通工具1205可以是自主交通工具,并且导航系统2300可以用于为自主驾驶提供导航引导。替代地,交通工具1205也可以是非自主、人为控制的交通工具,并且导航系统2300仍可以用于提供导航引导。
导航系统2300可以包括被配置成用于通过通信路径1235与服务器1230通信的通信单元2305。导航系统2300还可以包括被配置成用于接收和处理GPS信号的GPS单元2310。导航系统2300可以进一步包括被配置成用于处理数据的至少一个处理器2315,该数据诸如GPS信号、来自稀疏地图800(其可以存储在交通工具1205上提供的存储设备上和/或从服务器1230接收)的地图数据、由道路概况传感器2330感测到的道路几何形状、由相机122捕获的图像和/或从服务器1230接收的自主交通工具道路导航模型。道路概况传感器2330可以包括用于测量不同类型的道路概况的不同类型的设备,不同类型的道路概况诸如,道路表面粗糙度、道路宽度、道路标高、道路曲率等。例如,道路概况传感器2330可包括测量交通工具2305的悬架的运动以导出道路粗糙度概况的设备。在一些实施例中,道路概况传感器2330可以包括雷达传感器,该雷达传感器用于测量从交通工具1205到路边(例如,路边的障碍物)的距离,从而测量道路的宽度。在一些实施例中,道路概况传感器2330可以包括被配置成用于测量道路的上下标高的设备。在一些实施例中,道路概况传感器2330可以包括被配置为用于测量道路曲率的设备。例如,相机(例如,相机122或另一相机)可以用于捕获示出道路曲率的道路的图像。交通工具1205可以使用此类图像检测道路曲率。
至少一个处理器2315可以被编程为用于从相机122接收与交通工具1205相关联的至少一个环境图像。至少一个处理器2315可以分析至少一个环境图像以确定与交通工具1205相关的导航信息。导航信息可以包括与交通工具1205沿道路段1200的行驶相关的轨迹。至少一个处理器2315可以基于相机122(以及因此交通工具)的运动(诸如,三维平移和三维旋转运动)来确定轨迹。在一些实施例中,至少一个处理器2315可以基于对由相机122采集的多个图像的分析来确定相机122的平移和旋转运动。在一些实施例中,导航信息可以包括车道分配信息(例如,车道交通工具1205正在哪个车道中沿道路段1200行驶)。服务器1230使用从交通工具1205传送到服务器1230的导航信息来生成和/或更新自主交通工具道路导航模型,该自主交通工具道路导航模型可以从服务器1230传送回到交通工具1205,以便为交通工具1205提供自主导航引导。
至少一个处理器2315也可以被编程为用于将导航信息从交通工具1205传送至服务器1230。在一些实施例中,导航信息可以连同道路信息一起被传送到服务器1230。道路位置信息可以包括以下各项中的至少一项:由GPS单元2310接收的GPS信号;地标信息;道路几何形状;车道信息等。至少一个处理器2315可以从服务器1230接收自主交通工具道路导航模型或该模型的部分。从服务器1230接收的自主交通工具道路导航模型可以包括基于从交通工具1205传送到服务器1230的导航信息的至少一个更新。从服务器1230传送到交通工具1205的模型的部分可以包括模型的经更新部分。至少一个处理器2315可以基于接收到的自主交通工具道路导航模型或模型的经更新的部分来引起由交通工具1205进行的至少一个导航操控(例如,诸如转弯之类的转向、制动、加速、超过另一交通工具等)。
至少一个处理器2315可以被配置为用于与交通工具1205中包括的各种传感器和组件进行通信,这些传感器和组件包括通信单元1705、GPS单元2315、相机122、速度传感器2320、加速度计2325和道路概况传感器2330。至少一个处理器2315可以从各种传感器和组件收集信息或数据,并通过通信单元2305将信息或数据传送到服务器1230。替代地或者附加地,交通工具1205的各种传感器或组件还可以与服务器1230通信,并将由传感器或组件收集的数据或信息传送到服务器1230。
在一些实施例中,交通工具1205、1210、1215、1220和1225可以彼此通信,并且可以彼此共享导航信息,使得交通工具1205、1210、1215、1220和1225中的至少一个可以使用众包(例如,基于由其他交通工具共享的信息)生成自主交通工具道路导航模型。在一些实施例中,交通工具1205、1210、1215、1220和1225可以彼此共享导航信息,并且每个交通工具可以更新该交通工具中提供的其自身的自主交通工具道路导航模型。在一些实施例中,交通工具1205、1210、1215、1220和1225中的至少一个(例如,交通工具1205)可以作为中枢交通工具来起作用。中枢交通工具(例如,交通工具1205)的至少一个处理器2315可以执行由服务器1230执行的功能中的一些或全部。例如,中枢交通工具的至少一个处理器2315可以与其他交通工具通信,并从其他交通工具接收导航信息。中枢交通工具的至少一个处理器2315可以基于从其他交通工具接收的共享信息生成自主交通工具道路导航模型或对模型的更新。中枢交通工具的至少一个处理器2315可以将自主交通工具道路导航模型或对模型的更新传送给其他交通工具以用于提供自主导航引导。
基于稀疏地图的导航
如先前所讨论,包括稀疏地图800的自主交通工具道路导航模型可以包括与道路段相关联的多个绘制的车道标记和多个绘制的对象/特征。如下文更详细地所讨论,这些绘制的车道标记、对象和特征可在自主交通工具导航时被使用。例如,在一些实施例中,绘制的对象和特征可以被用于相对于地图(例如,相对于绘制的目标轨迹)定位主交通工具。绘制的车道标记可以被用于(例如,被用作检查)确定相对于规划的轨迹或目标轨迹的横向位置和/或取向。利用该位置信息,自主交通工具可以能够调整航向以匹配所确定的位置处的目标轨迹的方向。
交通工具200可以被配置成用于检测给定道路段中的车道标记。道路段可以包括道路上的、用于引导道路上的交通工具交通的任何标记。例如,车道标记可以是区分行驶车道的边缘的连续线或虚线。车道标记还可以包括双线,诸如双连续线、双虚线、或连续线和虚线的组合,其例如指示相邻车道中是否准许超车。车道标记还可以包括高速公路入口和出口标记,其例如指示用于出口匝道的减速车道,或者包括点状线,该点状线指示车道是转弯专用的或车道结束。标记可以进一步指示工作区、临时车道偏移、通过交叉路口的行驶路径、中央分隔带、专用车道(例如,自行车道、HOV车道等)或其他杂项标记(例如,人行横道、减速带、铁路道口、停车线等)。
交通工具200可以使用相机来捕获周围车道标记的图像,该相机诸如被包括在图像采集单元120中的图像捕获设备122和124。交通工具200可以基于在捕获的图像中的一个或多个捕获的图像内标识的特征来分析图像以检测与车道标记相关联的点位置。这些点位置可以被上传到服务器以在稀疏地图800中表示车道标记。取决于相机的位置和视场,可以从单个图像同时针对交通工具的两侧检测车道标记。在其他实施例中,可以使用不同的相机在交通工具的多侧捕获图像。与上传车道标记的实际图像不同,标记可以作为样条或一系列点存储在稀疏地图800中,从而减小稀疏地图800和/或必须由交通工具远程上传的数据的大小。
图24A-图24D图示出可以由交通工具200检测以表示特定车道标记的示例性点位置。与上文所描述的地标类似,交通工具200可以使用各种图像识别算法或软件来标识捕获的图像内的点位置。例如,交通工具200可以识别与特定车道标记相关联的一系列边缘点、角点或各种其他点位置。图24A示出了可以由交通工具200检测的连续车道标记2410。车道标记2410可以表示道路的外边缘,由连续的白线表示。如图24A所示,交通工具200可以被配置成用于检测沿车道标记的多个边缘位置点2411。位置点2411可被收集以便以足以在稀疏地图中创建绘制的车道标记的任何间隔来表示车道标记。例如,车道标记可以通过检测到的边缘的每米一个点、检测到的边缘的每五米一个点、或以其他合适的间距来表示。在一些实施例中,间距可以由其他因素而不是以设定的间隔确定,诸如例如,基于其中交通工具200具有检测到的点的位置的最高置信度等级所在的点。尽管图24A示出了车道标记2410的内边缘上的边缘位置点,但可以在线的外边缘或沿这两个边缘收集点。进一步地,虽然在图24A中示出单条线,但是可以针对双连续线检测类似的边缘点。例如,可以沿连续线中的一条或两条的边缘检测点2411。
取决于车道标记的类型或形状,交通工具200也可以以不同方式表示车道标记。图24B示出了可以由交通工具200检测的示例性虚线车道标记2420。与如在图24A中那样标识边缘点不同,交通工具可以检测表示车道虚线的角的一系列角点2421,以定义虚线的完整边界。虽然图24B示出了给定虚线标记的每个角都被定位,但交通工具200可以检测或上传图中所示点的子集。例如,交通工具200可以检测给定虚线标记的前边缘或前缘角,或可以检测最接近车道内部的两个角点。进一步地,并非每个虚线标记都可以被捕获,例如,交通工具200可以捕获和/或记录表示虚线标记的样本的点(例如,每隔一个、每三个、每五个等),或者以预定义间距(例如,每米、每五米、每十米等)捕获和/或记录虚线标记。还可以针对类似的车道标记检测角点,诸如示出车道用于出口匝道、特定车道正在结束的标记、或可能具有可检测角点的其他各种车道标记。也可以针对由双虚线或连续线和虚线的组合组成的车道标记来检测角点。
在一些实施例中,除检测到的边缘点或角点之外,上传到服务器以生成绘制的车道标记的点还可以表示其他点。图24C图示出可以表示给定车道标记的中心线的一系列点。例如,连续车道2410可以由沿车道标记的中心线2440的中心线点2441表示。在一些实施例中,交通工具200可以被配置成用于使用各种图像识别技术(诸如卷积神经网络(CNN)、尺度不变特征变换(SIFT)、定向梯度直方图(HOG)特征或其他技术)来检测这些中心点。或者,交通工具200可以检测其他点(诸如图24A中所示的边缘点2411),并且可以例如通过沿每个边缘检测点并确定边缘点之间的中点来计算中心线点2411。类似地,虚线车道标记2420可以由沿车道标记的中心线2450的中心线点2451表示。中心线点可以位于虚线的边缘(如图24C所示),或位于沿中心线的各种其他位置。例如,每个虚线可以由虚线的几何形状中心的单个点表示。这些点也可以沿中心线以预定间隔隔开(例如,每米、每5米、每10米等)。中心线点2451可以直接由交通工具200检测,或可以基于其他检测到的参考点(诸如角点2421,如图24B所示)来计算。中心线也可以被用于使用与上文类似的技术来表示其他车道标记类型(诸如双线)。
在一些实施例中,交通工具200可以标识表示其他特征的点,诸如两个相交的车道标记之间的顶点。图24D示出表示两个车道标记2460与2465之间的交叉的示例性点。交通工具200可以计算表示两个车道标记之间的交叉的顶点2466。例如,车道标志2460或2465中的一个可以表示道路段中的列车穿越区域或其他穿越区域。虽然车道标记2460和2465被示出为彼此垂直地相交,但可以检测各种其他配置。例如,车道标记2460和2465可以以其他角度相交,或者车道标记中的一者或两者可以在顶点2466处终止。类似技术也可以应用于虚线或其他车道标记类型之间的交叉。除了顶点2466之外,还可以检测各种其他点2467,从而提供关于车道标记2460和2465的取向的进一步信息。
交通工具200可以将真实世界坐标与车道标记的每个检测到的点相关联。例如,可以生成位置标识符,以上传到服务器来绘制车道标记,该位置标识符包括每个点的坐标。位置标识符还可以进一步包括关于这些点的其他标识信息,包括该点是否表示角点、边缘点、中心点等。因此,交通工具200可以被配置成用于基于对图像的分析来确定每个点的真实世界位置。例如,交通工具200可以检测图像中的其他特征(诸如上文所描述的各种地标),以定位车道标记的真实世界位置。这可涉及:确定图像中车道标记相对于检测到的地标的位置;或基于检测到的地标确定交通工具的位置,并且随后确定从交通工具(或交通工具的目标轨迹)到车道标记的距离。当地标不可用时,车道标记点的位置可以相对于基于航位推算确定的交通工具的位置来确定。包括在位置标识符中的真实世界坐标可以被表示为绝对坐标(例如,纬度/经度坐标),或者可以是相对于其他特征的,诸如基于沿目标轨迹的纵向位置和距目标轨迹的横向距离。然后,可以将位置标识符上传到服务器,以便在导航模型(诸如稀疏地图800)中生成绘制的车道标记。在一些实施例中,服务器可以构造表示道路段的车道标记的样条。替代地,交通工具200可以生成样条,并将其上传到服务器以便被记录在导航模型中。
图24E示出了针对包括绘制的车道标记的对应道路段的示例性导航模型或稀疏地图。稀疏地图可以包括用于供交通工具沿道路段遵循的目标轨迹2475。如上文所描述,目标轨迹2475可以表示当交通工具在相应道路段行驶时该交通工具采取的理想路径,或者可位于道路上的别处(例如,道路的中心线等)。目标轨迹2475可以以上文描述的各种方法来计算,这些方法例如,基于穿过相同道路段的交通工具的两个或更多个重构的轨迹的聚合(例如,加权组合)。
在一些实施例中,对于所有交通工具类型并且对于所有道路、交通工具和/或环境状况,可以平等地生成目标轨迹。然而,在其他实施例中,在生成目标轨迹时也可以考虑各种其他因素或变量。可以为不同类型的交通工具(例如,私家车、轻型卡车和全挂车)生成不同的目标轨迹。例如,与较大的半挂车卡车相比,可针对小型私家车生成具有相对较窄的转弯半径的目标轨迹。在一些实施例中,还可以考虑道路、交通工具和环境状况。例如,可以针对不同的道路状况(例如,潮湿、下雪、结冰、干燥等)、交通工具状况(例如,轮胎状况或估计的轮胎状况、制动状况或估计的制动状况、剩余燃料量等)或环境因素(例如,一天中的时间、能见度、天气等)生成不同的目标轨迹。目标轨迹也可取决于特定道路段的一个或多个方面或特征(例如,速度限制、转弯的频率和大小、坡度等)。在一些实施例中,各种用户设置也可以被用于确定目标轨迹,这些用户设置诸如,设定的驾驶模式(例如,期望的驾驶积极性、经济模式等)。
稀疏地图也可以包括表示沿道路段的车道标记的绘制的车道标记2470和2480。绘制的车道标记可以由多个位置标识符2471和2481表示。如上文所描述,位置标识符可以包括与检测到的车道标记相关联的点的、按真实世界坐标的位置。与模型中的目标轨迹类似,车道标记也可包括标高数据,并且可被表示为三维空间中的曲线。例如,曲线可以是连接合适阶数的三维多项式的样条,曲线可以基于位置标识符来计算。绘制的车道标记还可以包括关于车道标记的其他信息或元数据,诸如车道标记的类型(例如,在具有相同行驶方向的两个车道之间、在具有相反行驶方向的两个车道之间、道路的边缘等)的标识符和/或车道标记的其他特性(例如,连续线、虚线、单线、双线、黄色、白色等)。在一些实施例中,可例如使用众包技术在模型内持续地更新绘制的车道标记。同一交通工具可以在同一道路段的多次行驶场合期间上传位置标识符,或数据可以从在不同的时间在道路段上行驶的多个交通工具(诸如1205、1210、1215、1220和1225)中选择。然后,可以基于从交通工具接收并存储在系统中的后续位置标识符更新或精细稀疏地图800。当更新和精细绘制的车道标记时,可以将经更新的道路导航模型和/或稀疏地图分发给多个自主交通工具。
在稀疏地图中生成绘制的车道标记还可以包括:基于图像中或实际车道标记自身中的异常来检测和/或缓解误差。图24F示出了与检测车道标记2490相关联的示例性异常2495。异常2495可能出现在由交通工具200捕获的图像中,例如,来自妨碍相机查看车道标志的对象、镜头上的碎片等。在一些实例中,异常可能是由于车道标记本身造成的,车道标记本身可能受损或磨损,或者例如被灰尘、碎片、水、雪或道路上的其他材料等部分地覆盖。异常2495可能导致由交通工具200检测到错误点2491。稀疏地图800可以提供对绘制的车道标记的校正并排除误差。在一些实施例中,交通工具200可以例如通过检测图像中的异常2495或通过基于异常之前和之后的检测到的车道标记点标识错误来检测错误点2491。基于检测到异常,交通工具可忽略点2491,或将其调整为与其他检测到的点一致。在其他实施例中,例如,通过基于在同一行程期间上传的其他点或基于来自沿同一道路段的先前行程的数据的聚合确定该点在预期阈值之外,可以在已上传该点之后校正该误差。
导航模型和/或稀疏地图中的绘制的车道标记也可以用于供穿过相对应道路的自主交通工具进行导航。例如,沿目标轨迹导航的交通工具可以周期性地使用稀疏地图中的绘制的车道标记以将自身与目标轨迹对齐。如上文所提到,在地标之间,交通工具可以基于航位推算进行导航,其中,交通工具使用传感器来确定其自我运动并估计其相对于目标轨迹的位置。随着时间的推移,误差可能会累积,并且交通工具相对于目标轨迹的位置确定可能会变得越来越不准确。相应地,交通工具可以使用在稀疏地图800中出现的车道标记(以及它们的已知位置)以减少位置确定中由航位推算引起的误差。以这种方式,稀疏地图800中包括的所标识的车道标记可以用作导航锚,通过该导航锚可以确定交通工具相对于目标轨迹的准确位置。
图25A示出了交通的工具周围环境的示例性图像2500,该图像2500可以被用于基于绘制的车道标记的导航。例如,图像2500可以由交通工具200通过图像采集单元120中包括的图像捕获设备122和124来捕获。图像2500可以包括至少一个车道标记2510的图像,如图25A所示。图像2500也可以包括一个或多个地标2521(诸如道路标志),用于如上文所描述的导航。图25A中所示的一些元素也被示出以供参考,这些元素诸如元素2511、2530和2520,它们并未出现在捕获的图像2500中,但是被交通工具200检测和/或确定。
使用上文参照图24A-图24D和图24F所描述的各种技术,交通工具可以分析图像2500以标识车道标记2510。可以检测与图像中的车道标记的特征相对应的各个点2511。例如,点2511可以对应于车道标记的边缘、车道标记的角、车道标记的中点、两个相交车道标记之间的顶点或各种其他特征或位置。点2511可以被检测为对应于从服务器接收的导航模型中存储的点的位置。例如,如果接收到包含表示绘制的车道标记的中心线的点的稀疏地图,则还可以基于车道标记2510的中心线来检测点2511。
交通工具还可以确定由元素2520表示、并沿目标轨迹定位的纵向位置。可以从图像2500确定纵向位置2520,例如,通过检测图像2500内的地标2521并将测量的位置与道路模型或稀疏地图800中所存储的已知地标位置进行比较。然后,可以基于到地标的距离和地标的已知位置来确定交通工具沿目标轨迹的位置。纵向位置2520也可以通过除用于确定车道标记的位置的那些图像之外的图像来确定。例如,纵向位置2520可以通过检测来自图像采集单元120内的其他相机的、与图像2500同时或接近同时地被拍摄的图像中的地标来确定。在一些实例中,交通工具可能不在任何地标或用于确定纵向位置2520的其他参考点附近。在此类实例中,交通工具可以基于航位推算进行导航,并且因此可以使用传感器确定其自我运动并估计相对于目标轨迹的纵向位置2520。交通工具还可以确定距离2530,该距离2530表示交通工具与在捕获的(多个)图像中观察到的车道标记2510之间的实际距离。在确定距离2530时,可以计及相机角度、交通工具的速度、交通工具的宽度或各种其他因素。
图25B图示出基于道路导航模型中绘制的车道标记的交通工具的横向定位校正。如上文所描绘,交通工具200可以使用由交通工具200捕获的一个或多个图像确定交通工具200与车道标记2510之间的距离2530。交通工具200也可以具有对道路导航模型的访问权,该道路导航模型诸如稀疏地图800,其可以包括绘制的车道标记2550和目标轨迹2555。绘制的车道标记2550可以使用上文所描述的技术建模,例如使用由多个交通工具捕获的众包位置标识符。还可以使用先前描述的各种技术生成目标轨迹2555。如上文关于图25A所描述,交通工具200也可以确定或估计沿目标轨迹2555的纵向位置2520。然后,交通工具200可以基于目标轨迹2555与对应于纵向位置2520的绘制的车道标记2550之间的横向距离来确定预期距离2540。交通工具200的横向定位可以通过将使用捕获的(多个)图像测量的实际距离2530与来自模型的预期距离2540进行比较来校正或调整。
图25C和图25D提供了与针对基于稀疏地图中的绘制的地标/对象/特征在导航期间定位主控交通工具的另一示例相关联的图示。图25C在概念上表示从沿道路段2560导航的交通工具捕获的一系列图像。在此示例中,道路段2560包括由道路边缘2561和2562以及中心车道标记2563划定的双车道分隔公路的直线段。如图所示,主交通工具正在沿与绘制的目标轨迹2565相关联的车道2564导航。因此,在理想情况下(且没有诸如道路中目标交通工具或对象的存在等之类的影响因素),主交通工具应在其沿道路段2560的车道2564导航时密切跟踪绘制的目标轨迹2565。实际上,主交通工具在沿着绘制的目标轨迹2565导航时可能经历漂移。为了有效且安全的导航,该漂移应保持在可接受的限度内(例如,从目标轨迹2565的+/-10cm的横向位移或任何其他合适的阈值)。为了周期性地计及漂移并进行任何需要的行程校正以确保主交通工具遵循目标轨迹2565,所公开的导航系统可以能够通过使用稀疏地图中包括的一个或多个绘制的特征/对象来沿着目标轨迹2565定位主交通工具(例如,确定主交通工具相对于目标轨迹2565的横向和纵向位置)。
作为简单的示例,图25C示出了限速标志2566,当主控交通工具沿着道路段2560导航时,该限速标志2566可能出现在五个不同的、顺序地被捕获的图像中。例如,在第一时间t0时,标志2566可能出现在捕获的图像中、在地平线附近。当主交通工具逐渐接近标志2566时,在随后捕获的图像中,在时间t1、t2、t3和t4时,标志2566将出现在捕获的图像的不同的2D X-Y像素位置处。例如,在捕获的图像空间中,标志2566将沿曲线2567(例如,延伸通过五个捕获的图像帧中的每个图像帧中的标志的中心的曲线)向下和向右移动。当主交通工具逐渐接近标志2566时,标志2566的大小看起来也会增大(即,在随后捕获的图像中,标志2566将占据大量像素)。
对象(诸如,符号2566)的图像空间表示的这些变化可以被利用来确定主交通工具沿目标轨迹的定位位置。例如,如本公开中所描述,任何可检测的对象或特征(诸如像标志2566之类的语义特征或者可检测的非语义特征)可以被先前穿过道路段(例如,道路段2560)的一个或多个收获交通工具标识。绘制服务器可以从多个交通工具收集所收获的驾驶信息,聚合该信息并将该信息相关,并且生成包括例如针对道路段2560的车道2564的目标轨迹2565的稀疏地图。稀疏地图还可以存储标志2566的位置(连同类型信息等)。在导航期间(例如,在进入道路段2560之前),可向主交通工具提供包括针对道路段2560的稀疏地图的地图片。为了在道路段2560的车道2564中导航,主交通工具可遵循绘制的目标轨迹2565。
主交通工具可以使用标志2566的绘制的表示来相对于目标轨迹对其自身进行定位。例如,主交通工具上的相机将捕获主交通工具的环境的图像2570,并且该捕获的图像2570可以包括具有某个大小和某个X-Y图像位置的标志2566的图像表示,如图25D所示。该大小和X-Y图像位置可以被用于确定主交通工具相对于目标轨迹2565的位置。例如,基于包括标志2566的表示的稀疏地图,主交通工具的导航处理器可以确定:响应于主交通工具沿着目标轨迹2565行驶,标志2566的表示应该出现在捕获的图像中,使得标志2566的中心将沿着线2567(在图像空间中)移动。如果捕获的图像(诸如图像2570)示出中心(或其他参考点)从线2567(例如,预期的图像空间轨迹)位移,则主交通工具导航系统可以确定在图像被捕获时该中心并非位于目标轨迹2565上。然而,从该图像,导航处理器可以确定适当的导航校正,以使主交通工具返回到目标轨迹2565。例如,如果分析表明标志2566的图像位置在图像中向线2567上的预期图像空间位置的左侧位移了距离2572,则导航处理器可使得主交通工具进行航向改变(例如,改变车轮的转向角)以将主交通工具向左移动距离2573。这样,每个捕获的图像可以被用作为反馈回路过程的部分,使得标志2566的观察到的图像位置与预期图像轨迹2567之间的差异可被最小化,以确保主交通工具在几乎没有偏差的情况下以沿着目标轨迹2565继续行驶。当然,可用的绘制的对象越多,则所描述的定位技术可以被采用得越频繁,这可以减少或消除漂移引起的从目标轨迹2565的偏差。
上文所描述的过程对于检测主控交通工具相对于目标轨迹的横向取向或位移可能是有用的。主交通工具相对于目标轨迹2565的定位还可以包括目标交通工具沿目标轨迹的纵向位置的确定。例如,捕获的图像2570包括具有某个图像大小的标志2566的表示(例如,2D X-Y像素区域)。可以将该大小与当绘制的标志2566沿着线2567行进穿过图像空间时(例如,当标志的大小逐渐增大时,如图25C所示)的绘制的标志2566的预期图像大小进行比较。基于图像2570中标志2566的图像大小,并基于图像空间中相对于绘制的目标轨迹2565的预期大小进展,主交通工具可以确定其相对于目标轨迹2565(在图像2570被捕获时)的纵向位置。如上文所描述,在主交通工具沿道路2560导航时,该纵向位置与相对于目标轨迹2565的任何横向位移相结合允许主交通工具相对于目标轨迹2565的全定位。
图25C和25D仅提供所公开的使用单个绘制的对象和单个目标轨迹的定位技术的一个示例。在其他示例中,可以存在更多的目标轨迹(例如,针对多车道公路、城市街道、复杂交叉路口等的每个可行车道具有一个目标轨迹),并且可能存在可用于进行定位的更多的绘制的对象。例如,表示城市环境的稀疏地图可能每米包括许多对象可用于进行定位。
图26A是示出符合所公开的实施例的用于绘制车道标记以用于自主交通工具导航中使用的示例性过程2600A。在步骤2610处,过程2600A可以包括:接收与检测到的车道标记相关联的两个或更多个位置标识符。例如,步骤2610可以由服务器1230或与服务器相关联的一个或多个处理器执行。如上文关于图24E所描述,位置标识符可以包括与检测到的车道标记相关联的点的、按真实世界坐标的位置。在一些实施例中,位置标识符还可以包含其他数据,诸如关于道路段或车道标记的附加信息。在步骤2610期间还可以接收附加数据,诸如加速度计数据、速度数据、地标数据、道路几何形状或概况数据、交通工具定位数据、自我运动数据或上文所描述的各种其他形式的数据。位置标识符可以由交通工具(诸如交通工具1205、1210、1215、1220和1225)基于由交通工具捕获的图像生成。例如,可以基于以下各项来确定标识符:来自与主交通工具相关联的相机的、对表示主交通工具环境的至少一个图像的采集;用于检测主交通工具的环境中的车道标记的、对至少一个图像的分析;以及用于确定检测到的车道标记相对于与主交通工具相关联的位置的位置的、对至少一个图像的分析。如上文所描述,车道标记可以包括各种不同的标记类型,并且位置标识符可以对应于相对于车道标记的各种点。例如,在检测到的车道标记是标记车道边界的虚线的一部分的情况下,这些点可对应于车道标记的检测到的角。在检测到的车道标记是标记车道边界的连续线的一部分的情况下,这些点可以对应于车道标记的检测到的边缘,具有如上文所描述的各种间距。在一些实施例中,如图24C所示,这些点可以对应于检测到的车道标记的中心线,或者如图24D所示,这些点可以对应于两个相交车道标记之间的顶点以及与相交车道标记相关联的至少一个两个其他点。
在步骤2612处,过程2600A可以包括:将检测到的车道标记与相对应的道路段相关联。例如,服务器1230可以分析在步骤2610期间接收的真实世界坐标或其他信息,并将坐标或其他信息与存储在自主交通工具道路导航模型中的位置信息进行比较。服务器1230可以确定模型中与检测到车道标记所在的真实世界道路段相对应的道路段。
在步骤2614处,过程2600A可以包括:基于与检测到的车道标记相关联的两个或更多个位置标识符,更新相对于相对应道路段的自主交通工具道路导航模型。例如,自主道路导航模型可以是稀疏地图800,并且服务器1230可以更新稀疏地图以将绘制的车道标记包括在模型中或调整模型中的绘制的车道标记。服务器1230可以基于上文关于图24E描述的各种方法或过程来更新模型。在一些实施例中,更新自主交通工具道路导航模型可以包括:在检测到的车道标记的真实世界坐标中存储一个或多个位置指示符。如图24E所示,自主交通工具道路导航模型还可以包括用于交通工具沿相应道路段来遵循的至少一个目标轨迹。
在步骤2616,过程2600A可以包括:将经更新的自主交通工具道路导航模型分发给多个自主交通工具。例如,服务器1230可以将经更新的自主交通工具道路导航模型分发给交通工具1205、1210、1215、1220和1225,这些交通工具可以使用该模型进行导航。自主交通工具道路导航模型可以经由一个或多个网络(例如,通过蜂窝网络和/或因特网等)、通过无线通信路径1235(如图12所示)来分发。
在一些实施例中,如上文关于图24E所描述,车道标记可以使用从多个交通工具接收的数据诸如通过众包技术来绘制。例如,过程2600A可以包括:从第一主交通工具接收第一通信,该第一通信包括与检测到的车道标记相关联的位置标识符;以及从第二主交通工具接收第二通信,该第二通信包括与检测到的车道标记相关联的附加的位置标识符。例如,第二通信可以从在同一道路段上行驶的后续交通工具接收,或从沿同一道路段的后续行程的同一交通工具接收。过程2600A可以进一步包括:基于在第一通信中接收到的位置标识符并基于在第二通信中接收到的附加的位置标识符来精细对与检测到的车道标记相关联的至少一个位置的确定。这可以包括:使用多个位置标识符的平均值,和/或过滤掉可能不反映车道标记的真实世界位置的“幽灵”标识符。
图26B是示出用于使用绘制的车道标记来沿道路段自主地导航主交通工具的示例性过程2600B的流程图。过程2600B可以例如由自主交通工具200的处理单元110执行。在步骤2620处,过程2600B可以包括:从基于服务器的系统接收自主交通工具道路导航模型。在一些实施例中,自主交通工具道路导航模型可以包括用于主交通工具沿道路段的目标轨迹、以及与关联于道路段的一个或多个车道标记相关联的位置标识符。例如,交通工具200可以接收稀疏地图800或使用过程2600A形成的另一道路导航模型。在一些实施例中,目标轨迹可以表示为三维样条,例如,如图9B所示。如上文关于图24A-图24F所描述的,位置标识符可以包括与车道标记相关联的点的、按真实世界坐标的位置(例如,虚线车道标记的角点、连续车道标记的边缘点、两个相交车道标记之间的顶点以及与相交车道标记相关联的其他点、与车道标记相关联的中心线等)。
在步骤2621处,过程2600B可以包括:接收表示交通工具的环境的至少一个图像。该图像可以从交通工具的图像捕获设备接收,诸如通过图像采集单元120中所包括的图像捕获设备122和124接收。该图像可以包括一个或多个车道标记的图像,类似于上文所描述的图像2500。
在步骤2622处,过程2600B可以包括:确定主交通工具沿目标轨迹的纵向位置。如上文关于图25A所描述,这可以基于捕获的图像中的其他信息(例如,地标等),或者通过对检测到的地标之间的交通工具进行航位推算。
在步骤2623处,过程2600B可以包括:基于主交通工具沿目标轨迹的所确定的纵向位置并且基于与至少一个车道标记相关联的两个或更多个位置标识符,确定到车道标记的预期横向距离。例如,交通工具200可以使用稀疏地图800来确定到车道标记的预期横向距离。如图25B所示,可以在步骤2622中确定沿目标轨迹2555的纵向位置2520。使用稀疏地图800,交通工具200可以确定到与纵向位置2520相对应的绘制的车道标记2550的预期距离2540。
在步骤2624处,过程2600B可以包括:分析至少一个图像以标识至少一个车道标记。例如,如上文所描述,交通工具200可以使用各种图像识别技术或算法来标识图像内的车道标记。例如,如图25A所示,车道标记2510可以通过对图像2500的图像分析来检测。
在步骤2625处,过程2600B可以包括:基于对至少一个图像的分析来确定到至少一个车道标记的实际横向距离。例如,如图25A所示,交通工具可以确定表示交通工具与车道标记2510之间的实际距离的距离2530。在确定距离2530时,可以计及相机角度、交通工具的速度、交通工具的宽度、相机相对于交通工具的位置或各种其他因素。
在步骤2626处,过程2600B可以包括:基于到至少一个车道标记的预期横向距离与到至少一个车道标记的所确定的实际横向距离之间的差来确定主交通工具的自主操纵动作。例如,如上文关于图25B所描述,交通工具200可以将实际距离2530与预期距离2540进行比较。实际距离与预期距离之间的差可指示交通工具的实际位置与要由交通工具遵循的目标轨迹之间的误差(及其幅值)。相应地,交通工具可以基于该差来确定自主操纵动作或其他自主动作。例如,如果实际距离2530小于预期距离2540,如图25B所示,则交通工具可以确定用于向左引导交通工具离开车道标记2510的自主操纵动作。因此,交通工具相对于目标轨迹的位置可以被校正。例如,过程2600B可以用于改善交通工具在地标之间的导航。
过程2600A和2600B仅提供可以用于使用公开的稀疏地图来对主交通工具进行导航的技术示例。在其它示例中,与相对于图25C和图25D所描述的过程相符合的过程也可以被采用。
基于地图的真实世界建模
本文描述的导航绘制系统的特征在于能够使用从多次驾驶收集的众包信息来生成和/或细化与道路段相关联的地图。这些导航地图(例如稀疏地图)可包括沿与地图相关联的道路车道行驶的交通工具(例如主交通工具或目标/检测到的交通工具)可以使用的目标轨迹(例如三维样条)。地图还可以包括绘制的地标,这些地标可对应于各种各样的可检测的对象(例如路标、道路边缘、车道标记、公共汽车站或与道路相关联的任何其他可识别特征等)。在地图中,绘制的地标可与和一个或多个地标相关联的精细位置相关联。精细位置可以基于沿道路段多次单独的驾驶中的每一次驾驶期间确定的众包位置信息来确定。来自地图的检测到的对象/地标及其位置可用于自主交通工具或部分自主交通工具进行导航(例如,通过协助从地图上确定交通工具相对于目标轨迹的位置)。导航地图还可以包括道路段的表面表示,该表面表示可对应于沿道路的可驾驶区域。例如,在一些情况下,覆盖道路表面而不覆盖被确定为在道路外(例如,超出确定的道路边界,诸如,道路边缘、人行道、道路障碍物等)的表面的网格可(基于任何合适的算法或计算技术)被确定。在其他示例中,网格可覆盖道路的可导航区域(在任何给定点处),包括道路表面和道路表面之外的、被确定为可导航的任何区域(例如,道路一侧的软质路肩),并且可能不覆盖被确定为不可导航的表面(例如,交通工具不能或不应该穿越的区域,诸如障碍物或人行道等)。例如,道路表面之外的可导航区域可以在地图中被标记为可导航,使得它可在某些情况下被交通工具访问。例如,在一些实施例中,可导航区域可以是根据主交通工具实施的驾驶政策只有在紧急情况下(例如,当留在路上会导致不可避免的事故并且在可导航区上导航主交通工具预计几乎绝对确定不会造成事故的情况下)才可访问的。
为了生成众包导航地图,驾驶信息可以从沿道路段的多次驾驶来收集。例如,这可包括从一个在不同时间反复穿越道路段或其他地区的交通工具收集驾驶信息,和/或从穿越道路段或其他地区的多个不同交通工具收集驾驶信息。然后,绘制系统可以对齐并聚合收集的驾驶信息(例如,交通工具穿越的实际轨迹、一个或多个对象检测和检测到对象的相关联的确定的位置、检测到的车道标记、检测到的道路边缘、检测到的路边障碍物、驾驶期间行驶的距离等),以提供众包导航地图。此类过程可以通过填充驾驶数据集中的孔(例如,由特定驾驶期间的遮挡等引起)、通过细化对象位置和通过细化交通工具轨迹来提高众包地图的准确性。本公开通篇提供了有关导航地图的生成和实现的更多细节。
在一些情况下,众包地图的生成可包括在不同驾驶期间收集的各种数据的聚合、对齐和/或平滑化(例如,沿各个道路段的可用车道行驶的轨迹的对齐和平滑化)或从各个驾驶段导出的各种道路特征(例如,检测到对象的位置、道路边缘的位置、表示道路表面的网格的位置和覆盖范围等)的聚合、对齐和/或平滑化。来自不同驾驶的数据的恰当聚合的一个挑战在于,不同的驾驶可包括在物理距离上很近但在驾驶(或可驾驶)距离上可能彼此相距很远的点或其他数据。例如,在立交桥的情况下,从在立交桥下行驶的汽车收集的驾驶点或特征可能彼此接近,甚至在X-Y平面上与从在立交桥上行驶的汽车收集的点或特征相交。然而,在此类示例中,在汽车在一些情况下没有在穿越立交桥与在立交桥下穿越这两个事件之间行驶许多公里的情况下,汽车可能无法在立交桥下穿越之后穿越立交桥(反之亦然)。也就是说,尽管在查看道路的俯视地图时,道路可能看起来相交,但道路是分开的,并且在地图上的道路重叠之处不会形成实际的可导航的交叉路口。因此,在立交桥之上的第一个道路上行驶的交通工具可能无法在其中道路在地图上似乎相交的点处转弯并导航到下面的道路。
高速公路的出口或入口斜坡的情况下可能存在类似的场景,其中可包括收集的驾驶点/特征在物理上接近高速公路上被退出或进入的点,但相隔了在单次驾驶时穿越这两者所需要的显著驾驶距离。
在此类情况下,除其他示例外,基于多次驾驶收集/确定的数据点、对象、道路表面等的对齐或其他聚合应限于那些不仅物理上彼此接近而且在驾驶距离方面也彼此接近的数据点、对象、道路表面等(例如在某个预定的驾驶距离内可能连续地遇到的点、特征、表面等,该驾驶距离诸如,10米、20米、50米、100米等)。为了保持绘制的特征的准确性,相隔超过预定驾驶距离的点、对象、特征、道路表面等可保持不聚合、不对齐、不网格化等。换句话说,需要高效且准确地绘制道路段的系统和方法,以将物理上彼此接近但不直接且连续可导航的道路与直接且连续可导航而没有显著的干预驾驶距离(例如,超过预定的驾驶距离阈值的距离)的道路/道路表面进行区分。
生成道路段的地图的一种方法可包括分析针对道路段收集的信息(例如,由在道路段行驶的交通工具机载的相机捕获的图像,以及交通工具机载的其他传感器收集的信息,诸如LIDAR或RADAR信息)。然后,地图生成过程可包括生成道路样条并对该道路样条进行采样,以创建道路段的表面的模型。接下来,该过程可包括创建覆盖道路段中包括的可驾驶道路表面的网格。然而,如上所述,此类过程可能在以下情况下遇到某些挑战:例如,道路看起来相交但实际上并不相交,或者道路点、特征、表面等在物理上彼此接近但相隔了显著的驾驶距离。如上文所讨论,此类情况可包括:立交桥/地下通道;高速公路出口/入口斜坡;与相反的行驶方向相关联的道路车道(包括由分隔线或障碍物隔开的车道,或由道路标记分隔的车道);与共同行驶方向相关联但由一个或多个障碍物隔开的道路车道;等等。在此类情况下,除其他外,对某些道路特征和相关联位置和/或表示可驾驶道路表面的生成的网格进行聚合、对齐和/或平滑化的过程可能容易受到对可能在物理上接近但在驾驶距离方面间隔开的点、特征等的操作引入的错误的影响。
公开的系统和方法可提供这样的一种解决方案:该解决方案使得能够创建地图,以供用于自主交通工具或部分自主交通工具的导航,此类地图不包括因从在物理上彼此接近但在不首先穿越显著驾驶距离的情况下无法连续可导航的道路段收集的众包的驾驶信息的聚合而造成的不准确。例如,公开的系统和方法可生成将实际可导航交叉路口(交通工具可在此处从一个道路段导航到另一个道路段)与表面上的交叉路口(其由交叉的立交桥和地下通道形成,不允许交通工具在不穿越显著的驾驶距离的情况下直接从一者导航到另一者)进行区分的地图。公开的系统可将在某些可驾驶距离内不连接或交叉的其他道路段(诸如分隔的高速公路(例如,交通车道以相反方向行驶的、可能彼此接近或并排的高速公路))以及以同一方向行驶但构成分开的道路段的道路段(例如,通过收费站或混凝土屏障墙与常规行驶车道分开的收费车道或拼车车道)进行区分。
图27是图示出符合所公开的实施例的具有重叠道路段的示例立交桥2700的图。在本示例中,主交通工具2710可沿道路段2720行驶,该道路段2720可从另一个道路下方经过,如图27A所示。主交通工具2710可被配置成用于使用一个或多个相机(例如相机2712或多个相机2712)沿道路段2720从交通工具2710的环境捕获图像。在一些实施例中,主交通工具2710可以与上文所讨论的交通工具200相对应。因此,本文中参考交通工具200所描述的任何特征或实施例也可适用于主交通工具2710。例如,相机2712可以与图像捕获设备122、124和126中的一个或多个相对应。进一步地,主交通工具2710可配备有一个或多个处理设备,诸如上述的处理设备110。
主交通工具2710(例如,经由处理设备110)可以处理由相机2712捕获的图像,以沿道路段2720标识用于生成道路导航模型的一个或多个特征。这如贯穿本公开所描述,这些特征可以根据各种图像分析或处理技术被标识,并可以跨多个图像帧被跟踪。例如,特征可与道路标志2724和车道标记2726相对应,如图27A中所图示。特征可与沿道路段2720的其他各种对象或表面特征相对应。由主交通工具2710收集的驾驶信息(其可包括道路标志2724和车道标记2726的特征点)可用于生成绘制的目标轨迹2722,该轨迹可以表示为三维样条。有关绘制目标轨迹的附加细节在上文提供。虽然为了说明起见,道路段2720被示出为单行驶车道,但本文中使用的道路段可以指以同一方向行驶的多个车道、以多个方向行驶的车道或其他各种配置。进一步地,道路段可能有各种长度,该长度可能是预定义的长度(例如10米、30米、100米等),也可能具有基于道路的特征(例如地标密度、地标位置、与其他道路的交叉路口、交通密度等)的长度。
立交桥2700可进一步包括在道路段2720之上通过的道路,该道路可包括道路段2730。由穿越道路段2730的交通工具捕获的驾驶信息可用于生成用于道路段2730的导航地图,其中可包括绘制的目标轨迹2732。例如,交通工具可在穿越道路段2730时捕获其环境的图像,并且可标识特征(诸如道路标志2734)以用于生成导航地图。如上所述,道路导航地图可以基于使来自同一地理位置内的多个交通工具(和/或同一交通工具对同一道路段的多次穿越)的信息相关来生成。尽管道路段2720和道路段2730位于同一附近区域(在这种情况下,彼此重叠),但就可驾驶距离而言,道路段可能相距相对较远。例如,为了到达道路段2730,主交通工具2710可能需要沿道路段2720驾驶许多公里,沿其他道路驾驶,穿越多个交叉路口等。因此,尽管道路段2720和2730的物理距离相对接近,但就可驾驶距离而言,道路段2720和道路段2730很遥远。因此,尝试使道路段2720和2730的驾驶信息或道路模型段对齐可能导致道路导航模型的不准确性。
在一些实施例中,作为关于来自不同驾驶的某些点等是否应被聚合、对齐、被用于创建道路表面网格等的确定一部分,公开的系统和方法可就两个或更多个点彼此之间的可驾驶距离来确定这两个或更多个点的邻近度等。例如,如果两个点、特征等被隔开了相对较大的可驾驶距离,那么系统可能不将这些点在一起进行聚合或对齐,也不会同时使用它们来生成标识可驾驶道路表面的网格。另一方面,例如,如果两个点、特征等被隔开了较短的可驾驶距离,那么系统可以恰当地确定这些点是同一道路段的部分,并且交通工具可以直接从一个点、特征行驶到另一点、特征。因此,在此类情况下,公开的系统可以将此类直接可导航点在一起进行聚合或对齐,或同时使用它们来生成标识可驾驶道路表面的网格等。由于公开的系统和方法,生成的地图可能具有更高的准确度,并可实现更准确且更有效的驾驶决策和驾驶操纵。
图28是符合所公开的实施例的立交桥2700的俯视图。如以上参考图27所述,立交桥2700可包括重叠的第一道路段2720和第二道路段2730。主交通工具2710可以收集驾驶信息,以用于创建与道路段2720相关联的第一道路模型段,并且第二主交通工具2820可收集驾驶信息,以用于创建与道路段2730相关联的第二道路模型段。第一道路模型段和第二道路模型段中的每一个可以通过使沿相对应道路段收集的驾驶信息相关来生成。例如,主交通工具2710可将收集的驾驶信息传送到服务器2810。服务器2810可以被配置成用于接收来自沿道路段2720行驶的一个或多个附加主交通工具的信息,并基于接收到的数据来生成道路模型(例如稀疏地图等)。服务器2810还可以将道路模型(或道路模型的更新数据)传送到一个或多个自主交通工具或半自主交通工具,这些道路模型可被用于导航。如上所述,在一些实施例中,服务器2810可对应于服务器1230。因此,本文中关于服务器1230进行的描述或公开中的任何描述和公开也可适用于服务器2810,反之亦然。进一步地,虽然主交通工具2710被示出为与服务器2810通信,但要理解的是,服务器2810可类似地与交通工具2820和2822通信。
在一些实施例中,服务器2810可使从穿越道路段2720的主交通工具接收到的数据相关,以生成具有与道路段2720相关联的道路模型段的道路模型。相关可包括基于确定的位置指示符来确定对象或特征的精细位置。例如,服务器2810可以使基于第一驾驶信息的、标识的对象(诸如道路标志2724)相对于道路段2720的第一位置指示符与基于第二驾驶信息确定的同一对象相对于道路段的第二位置指示符相关。服务器2810还可以基于第一位置指示符和第二位置指示符来确定此对象的最终位置指示符(或精细位置)。在一些实施例中,相关可包括对在驾驶信息中标识的对象进行聚合。例如,服务器2810可以对在第一驾驶信息(例如,第一图像)中标识的属于第一对象类别的一个或多个对象以及在第二驾驶信息(例如,第二图像)中标识的属于同一对象类别的一个或多个对象进行聚合。服务器2810还可以从聚合的对象中删除一个或多个重复对象。
服务器2810可以基于段之间的可驾驶距离来确定与段2720相关联的数据和与段2730相关联的数据是否应被聚合、被对齐、被用于创建同一道路表面网格或者以其他方式被相关。如图28所示,道路段2720可与点2802相关联。点2820可以以各种方式与道路段2720相关联。在一些实施例中,点2802可表示沿道路段2720检测到的对象或特征。作为另一示例,点2802可能是质心、角点、边缘点或其他与道路段2720几何相关的点。类似地,道路段2730可与点2804相关联。在模型空间中(例如,在X-Y平面中),点2802和2804可以被隔开了距离d1,该d1相对较小。换句话说,由于点2802和2804的邻近度,与这些点相关联的驾驶信息通常可能在模型中相关。然而,符合所公开的实施例,可以确定点2802与点2804之间的可驾驶距离d2,以便评估与这些点相关联的驾驶信息是否应在模型中被相关。可驾驶距离d2可表示位于点2802处的假设的交通工具到达点2804(反之亦然)所需行驶的最小距离。在图28中示出示例虚线来表示距离d2,但是,要理解的是,距离d2可以是到达点2804所需的任何形状或长度。假定假设的交通工具遵守一个或多个交通法律、法规、准则和/或最佳实践而到达点2804,可驾驶距离d2可被确定。在一些实施例中,距离d2可以基于道路模型中包括的目标轨迹来确定,该轨迹可能是服务器2810基于由交通工具收集的驾驶信息生成的。替代地或附加地,距离d2可以基于外部地图数据库来确定,外部地图数据库诸如,在线地图平台、道路数据库等。
基于可驾驶距离d2与预定阈值(例如10米、20米、30米、50米、100米或任何其他合适的距离)的比较,与道路段2720相关联的驾驶信息(其可包括道路段2720的道路模型段)可与针对道路段2730的驾驶信息进行相关。例如,如果可驾驶距离d2超过预定阈值,那么系统可能不会将这些点在一起聚合或对齐,也不会同时使用它们来生成表示可驾驶道路表面的网格。另一方面,如果可驾驶距离d2小于预定阈值,那么服务器2810可以确定点2802和点2804是同一道路段的部分,并且可以确定交通工具可以直接从一个点行驶到另一点。因此,服务器2810可以将点2802和2804聚合、对齐或网格化在一起。在一些实施例中,确定是否使点2802和2804相关可以基于物理距离(例如,距离d1与可驾驶距离d2)的比较。例如,如果距离d2超过距离d1,则服务器2810可能对这些点进行相关。作为另一示例,如果可驾驶距离d2超过距离d1超过预定因子(例如,超过110%、超过120%、超过150%、超过300%等),则服务器2810可能不对点2802和2804进行相关。距离d1与距离d2之间的各种其他关系可以用作阈值。在一些实施例中,阈值可以基于其他值或关系来定义。例如,阈值可基于交通工具的典型高度或与交通工具的典型高度有关(例如,大卡车高度的1.5倍,大卡车高度的2倍,大卡车高度的3倍等)。作为其他示例,阈值可以基于与道路宽度、交通工具的长度或宽度、与主交通工具的环境中其他对象的距离等的关系来定义。换句话说,阈值可以以任何合适的方式定义,并且不必是固定值或常数值。
在一些实施例中,服务器2810可生成表示道路段2730的道路表面的网格。例如,系统可包括至少一个处理器,该至少一个处理器被编程用于:对来自多次驾驶的数据进行众包,标识来自驾驶的地形信息(诸如车道标记和车道边缘),以及创建道路模型。在创建道路模型时,系统可对连接来自收集的驾驶的、相隔的可驾驶距离低于某一阈值(例如,交通工具可以从其中一个点导航到另一个点,而不会行驶超过50米、超过100米等)的点的道路表面进行网格化。类似地,系统可确定不对针对相隔的可驾驶距离大于阈值(例如,大于50米、大于100米等)的点的道路表面进行网格化,即使此类点可能物理上比阈值距离更接近彼此。例如,沿道路段2730的表面的各种点可被标识,并且3D道路几何模型基于这些点来生成。在一些实施例中,生成道路段的网格可包括应用三角测量算法,诸如Delaunay三角测量技术或类似算法。Stein等人的美国专利第10,872,433中描述了建模交通工具环境的示例公开,该专利通过引用以其整体并入本文。
在一些实施例中,网格化过程可在对齐和/或聚合过程之后发生。例如,驾驶信息(其可包括车道标记、道路边缘、相机位置(例如,沿用于捕获图像的相机正下方的道路表面的点)或各种其他点的位置)可以如上述其他部分所述进行聚合和对齐。因此,经对齐和/或聚合的位置可用于生成网格,并且只有预定的可驾驶距离阈值内的点才可被网格化在一起。在其他实施例中,可驾驶距离阈值可以在对齐和聚合阶段期间被使用。
虽然所公开的实施例在上文相对于立交桥2700进行描述,但在两个点彼此无法直接访问的其他场景中,驾驶信息的相关可以基于可驾驶距离来确定。例如,所公开的实施例可以在以下情况中实现:在沿道路以第一方向行驶的点与沿道路以相反方向行驶的点相隔相对大的可驾驶距离。例如,参考图28,点2806可由以与主交通工具2710相反的方向行驶的主交通工具2822检测。与点2802和点2804类似,点2802与点2806之间的可驾驶距离显著地大于点2802与点2806之间的物理距离。例如,中央分道区2830可导致无法直接从点2802访问点2806。因此,由交通工具2710收集的驾驶信息和由交通工具2822收集的驾驶信息可能不进行相关。
作为另一示例,来自(例如,通过交叉路口、出口斜坡等连接的)正交道路段的驾驶信息不被相关或网格化在一起。在一些实施例中,接近交叉路口的部分可连同交叉路口一起被相关和/或被网格化在一起。然而,更远的段可能不被相关和/或不被网格化在一起。图29图示出符合所公开的实施例的驾驶信息可沿其被收集的示例交叉路口2900。例如,主交通工具2710可在穿越道路段2902而逐渐接近交叉路口2900时收集驾驶信息。类似地,可以沿正交道路收集针对与交叉路口2900隔开的道路段2904的驾驶信息。与针对立交桥2700描述的场景类似,(与道路段2902相关联的)点2912同(与道路段2904相关联的)点2914之间的距离可以被分析,以确定来自道路段2902和2904的驾驶信息是否应被相关和/或被网格化在一起。例如,如上所述,点2912与点2914之间的可驾驶距离d4可以与预定阈值进行比较。所有场景的预定阈值可能相同,也可能取决于道路配置。例如,立交桥配置可能与交叉路口、出口斜坡、分开的道路或其他配置使用不同的阈值。在一些实施例中,如上所述,可驾驶距离d4可以与物理距离d3进行比较。类似的可驾驶距离考虑可以在其他场景中实现,这些场景诸如出口斜坡或其中两个行驶车道分割开的其他安排。由于就可驾驶距离而言,车道仍然相对接近,因此使沿车道分割收集的点相关和/或网格化可能是有益的。然而,随着车道之间可驾驶距离的增加,服务器2810可单独地使信息关联和/或网格化。
图30是示出符合所公开的实施例的用于使驾驶信息相关的示例过程3000的流程图。过程3000可以由诸如处理器2810之类的服务器的至少一个处理设备执行。在一些实施例中,过程3000的部分或全部可以由交通工具的处理设备执行,处理设备诸如处理设备110。要被理解的是,贯穿本公开,术语“处理器”被用作“至少一个处理器”的简写。换句话说,处理器可以包括执行逻辑操作的一个或多个结构,无论此类结构是并置的、连接的还是分散的。在一些实施例中,非暂态计算机可读介质可以包含当由处理器执行时使该处理器执行过程3000的指令。进一步,过程3000不必限于图30中所示的步骤,并且贯穿本公开描述的各实施例的任何步骤或过程也可以包括在过程3000中,包括上文参考图27、图28和图29所描述的那些步骤或过程。
在步骤3010中,过程3000包括接收来自穿越第一道路段的第一多个交通工具中的每一个交通工具的驾驶信息。例如,第一多个交通工具可包括主交通工具2710以及穿越第一道路段的其他主交通工具。驾驶信息可至少包括第一多个交通工具之中的特定交通工具在穿越第一道路段时遵循的实际轨迹的指示。驾驶信息可包括其他信息,诸如通过分析捕获图像帧检测到的对象的指示,以及与检测到的对象中的每一个相关联的至少一个位置指示符。位置指示符可以以各种方式来表示。在一些实施例中,至少一个位置指示符可以采用图像坐标来表示,并且因此可包括来自捕获的图像帧的X-Y位置。替代地或附加地,至少一个位置指示符可包括基于运动中结构计算确定的三维(3D)特征点。如本公开通篇所述,检测到的对象的指示可标识对象的非语义特征类型。例如,非语义特征类型可包括交通标志、交通灯、车道标记、井盖、道路边缘、障碍物或路缘中的至少一个。在一些实施例中,非语义特征类型也可包括其他信息,诸如障碍物、路缘或道路边缘是否可穿越以及此类道路特征以外的区域是否可导航的指示。在一些实施例中,驾驶信息可进一步包括相对应图像被捕获时相机的位置(这可指示交通工具的行驶路径)。
在步骤3020中,过程3000包括使来自第一多个交通工具中的每一个交通工具的驾驶信息相关,以提供表示第一道路段的第一道路模型段。例如,来自第一多个交通工具中的每一个交通工具的驾驶信息的相关可包括实际交通工具轨迹的聚合和对齐,以确定针对与第一道路段相关联的至少一个行驶车道的目标轨迹。例如,驾驶信息可被相关以确定如图27所示的目标轨迹2722。在一些实施例中,目标轨迹可以被表示为3D样条,如上文例如参考图9B所描述。
在步骤3030中,过程3000包括接收来自穿越第二道路段的第二多个交通工具中的每一个交通工具的驾驶信息。例如,步骤3030可包括接收来自包括主交通工具2820或2822中的一个的多个交通工具的驾驶信息。第二多个交通工具可与第一多个交通工具不同。来自第二多个交通工具中的每一个交通工具的驾驶信息可至少包括第二多个交通工具之中的特定交通工具在穿越第二道路段时遵循的实际轨迹的指示。与第一多个交通工具的驾驶信息一样,第二多个交通工具的驾驶信息可包括其他信息,诸如通过分析捕获图像帧检测到的对象的指示,以及与检测到的对象中的每一个相关联的至少一个位置指示符。在一些实施例中,至少一个位置指示符可以采用图像坐标来表示,因此可包括来自捕获的图像帧的X-Y位置。替代地或附加地,至少一个位置指示符可包括基于运动中结构计算确定的三维(3D)特征点。进一步地,检测到的对象的指示可标识对象的非语义特征类型,诸如交通标志、交通灯、车道标记、井盖、道路边缘、或路缘。与第一驾驶信息一样,第二驾驶信息可进一步包括相对应的图像被捕获时相机的位置(这可指示交通工具的行驶路径)。
在步骤3040中,过程3000包括使来自第二多个交通工具中的每一个交通工具的驾驶信息相关,以提供表示第二道路段的第二道路模型段。例如,来自第二多个交通工具中的每一个交通工具的驾驶信息的相关可包括实际交通工具轨迹聚合和对齐,以确定针对与第二道路段相关联的至少一个行驶车道的目标轨迹。例如,驾驶信息可被相关以确定如图27所示的目标轨迹2732。在一些实施例中,目标轨迹可以被表示为3D样条。
在步骤3050中,过程3000包括:在与第一道路段相关联的第一点同与第二道路段相关联的第二点之间的可驾驶距离小于或等于预定距离阈值的情况下,使第一道路模型段与第二道路模型段相关,以提供相关道路段模型。因此,步骤3050可包括第一点与第二点之间的可驾驶距离。例如,如上所述,这可对应于确定点2802与点2804之间的可驾驶距离d2。在一些实施例中,确定可驾驶距离可包括访问至少一个道路导航模型(例如稀疏地图)或存储在地图数据库中的信息。在一些实施例中,确定可驾驶距离可包括:假定假设的交通工具遵守至少一个交通法律、法规、准则和/或最佳实践,确定该假设的交通工具会行驶的距离。
第一道路模型段与第二道路模型段的相关可以以各种方式执行。如上所述,在一些实施例中,将与第一道路模型段相关联的道路表面的表示和与第二道路模型段相关联的道路表面的表示网格化在一起。例如,网格化可包括三角测量算法的应用。在实施例中,来自第一多个交通工具中的每一个交通工具的驾驶信息的相关和来自第二多个交通工具中的每一个交通工具的驾驶信息的相关包括用于确定检测到的对象(例如车道标记、道路边缘等)的精细位置的位置指示符的聚合,第一道路模型段和第二道路模型段的相关可包括使检测到的对象的精细位置网格化。换句话说,第一道路模型段和第二道路模型段的相关可包括使已经进行过对齐或聚合过程的点网格化。在其他实施例中,第一道路模型段和第二道路模型段的相关可包括对齐或聚合过程。例如,第一道路模型段和第二道路模型段的相关可包括使与第一道路段模型相关联的目标轨迹和与第二道路段模型相关联的目标轨迹对齐。这可包括使针对以相反的行驶方向的车道的目标轨迹对齐,使得导航交通工具可以准确地确定迎面而来的交通工具是否正沿与针对导航交通工具的车道的相同的目标轨迹行驶。在一些实施例中,用于生成相关道路段模型的相关可以基于第一多个交通工具和第二多个交通工具收集的基础驾驶信息来执行。因此,第一道路模型段和第二道路模型段可作为生成关联的道路段模型的部分来确定。因此,可以通过使来自第一交通工具中的每一个交通工具的驾驶信息与来自第二多个交通工具中的每一个交通工具的驾驶信息相关来执行第一道路模型段和第二道路模型段的相关。
预定距离阈值可以以各种方式定义。例如,预定距离阈值可以是预定的距离,诸如10米或以下、20米或以下、30米或以下、50米或以下、100米或以下,或任何其他合适的距离作为另一示例,预定距离阈值可等于第一点和第二点相隔的物理距离。例如,如上所述,预定距离阈值可等于距离d1。作为附加示例,预定距离阈值是物理距离的因数。例如,预定距离阈值不超过第一点和第二点相隔的物理距离的110%,或任何其他合适的因数。
在步骤3060中,过程3000包括将相关道路段模型存储为稀疏导航地图的部分,以供用于交通工具沿第一道路段和第二道路段的导航。例如,相关道路段模型可被存储为上文描述的稀疏地图800或本文描述的类似的稀疏地图的部分。在一些实施例中,过程3000可包括贯穿本公开描述的与生成稀疏导航地图相关的附加步骤。例如,过程3000可包括向一个或多个交通工具提供包括相关道路段模型的稀疏导航地图,以供用于一个或多个交通工具的沿第一道路段和第二道路段的导航。
在一些实施例中,相关道路段模型不仅可以针对道路表面来开发,还可以针对导航区域来开发。例如,如上所述,道路模型可以针对道路表面以及主交通工具在紧急情况或其他情况下可以访问的导航区域开发。可导航区域可包括软质路肩、紧急停车区、低矮的人行道、草地或交通工具可能穿越的道路表面以外的任何其他表面。在一些实施例中,导航区域可被标记或以其他方式与道路表面区分开来。替代地或附加地,也可以为道路和导航区域生成单独的模型。例如,使用上述技术,一个表示道路的模型可被生成,并且表示道路之外的可导航区域的单独模型可被生成。
虽然上述实施例与基于收集的交通工具信息生成稀疏地图相关联,但要理解的是,相同或类似的技术可被应用于与道路相关联的任何信息源。例如,与道路表面相关联的点可以基于LIDAR数据、调查装备、航空图像或扫描或者任何其他可包括沿道路的3D点的数据来收集。符合所公开的实施例,网格可被生成来表示道路的表面,并且点可以基于点之间的可驾驶距离被网格化在一起。由此产生的网格可被包括在表示道路表面的道路表面模型中。
例如,该道路模型可有助于提取或确定对象在交通工具的环境内的3D位置。例如,由主交通工具的相机捕获的图像可包括主交通工具的环境中对象的表示。当配备有表示道路表面的道路表面模型时,主交通工具可以确定或至少近似对象的位置。特别地,捕获的图像的每个像素可与相对于相机的方向相关联。换句话说,图像的每个像素可对应于相机的传感器基于镜头的形状或相机的其他属性从特定方向接收和捕获的光线。对于表示道路表面的每个像素,可以从相机在模型空间中的假设位置或已知位置投射该已知方向,以沿道路表面模型确定像素信息从其中被接收的点。因此,针对表示对象与道路之间接触点的像素,可以相对于道路表面模型来确定接触点。然后,该模型可用于确定接触点(并且由此确定对象)相对于交通工具的位置信息,位置信息可包括与对象的距离、相对于交通工具的角度等。
图31A图示出符合所公开的实施例的针对立交桥的示例道路表面模型3100。图31A中所图示的道路表面模型可对应于图27中所图示的立交桥2700。道路表面模型3100可包括网格3110,该网格3110可以是基于沿道路表面收集的多个点生成的三维表面。网格3110可与如上所述的道路段2730相对应。道路表面模型3100还可以包括网格3120,该网格3120可与道路段2720相对应。与网格3110一样,网格3120可以基于表示道路段2720的表面的多个点被生成。在一些实施例中,可以使用贯穿本公开描述的方法收集与网格3110和3120相关联的点。例如,这些点可表示特征,诸如道路边缘、车道标记,或使用穿越立交桥2700的道路的多个交通工具捕获的图像收集的其他特征。然而,如上所述,针对网格3110和3120的点可以以其他各种方式收集,并且任何一组3D点数据都可以用于生成网格3110和3120。网格3110和3120可以使用三角测量方法生成,三角测量方法诸如Delaunay三角测量技术或类似算法。要理解的是,网格3110和3120是以示例的方式示出的,并且可以使用各种其他合适的网格结构、数据密度、数据类型等。
使用本文描述的技术,网格3110可被生成以仅表示立交桥2700的最上道路表面,而网格3120可被生成以仅表示立交桥2700的最下道路表面,如图所示。换句话说,与网格3110相关联的点可被网格化在一起,以排除网格3120中示出的任何点,反之亦然。使用常规技术,由于应被包括在网格3110中的点和应被包括在网格3120中的点的相对邻近度,特别是在X-Y坐标方面(即,在与地球局部表面平行的平面上)的相对邻近度,可能很难在应被包括在网格3110中的点与应被包括在网格3120中的点之间进行区分。图31B图示出符合所公开的实施例的在与道路段2720相关联的点和与道路段2730相关联的点被网格化在一起的情况下可能发生的异常的示例。例如,如图31B所示,点3122可表示与道路段2720的表面相关联的特征。如果和与道路段2730的表面相关联的点(诸如点3112)被网格化在一起,则网格3110可能包括异常部分3130。特别地,异常部分3130可包括道路表面的高度的局部急剧下降,这可能无法准确反映道路段2720的表面。这种异常可能干扰如上所述的用于确定对象位置的光线追踪技术,或者可能干扰可依赖道路表面模型3100的各种其他导航功能。例如,交通工具无法从与网格3110相关联的道路段导航到与网格3120相关联的道路段(反之亦然),其中网格3110和网格3120看似重叠或连接,因为在3D空间中,网格3110和网格3120与因立交桥而在垂直方向上相互分隔开的不同道路段相关联。
使用公开的技术可以避免或防止网格3110中的此类异常(和/或网格3120中的类似异常)。例如,在确定点3122是否应与点3112被网格化在一起时,点3112与点3122之间的可驾驶距离可被确定。例如,如上所述,这可类似于点2802与点2804之间的可驾驶距离d2来确定。如上所述,这种可驾驶距离可以与用于确定点3112和点3122是否应被网格化在一起的阈值进行比较。在这种情况下,阈值会被设置为使得点3112与点3122之间的可驾驶距离(其会显著大于点3112与点3122之间的物理距离)会超过阈值。因此,点3122不包括在网格3110中。虽然为了说明起见,网格3110和3120是分开示出的,但可以理解的是,它们都可以包括在表示可驾驶道路表面的整体网格中。例如,网格3120可沿如图28所示的可驾驶路径d2继续,以形成一组连续的经网格化的点。然而,在局部,与图31A中网格3110和3120相关联的点可分开地被网格化,如图所示。
图32是示出符合所公开的实施例的用于生成道路表面模型的示例过程3200的流程图。过程3200可以由诸如处理器2810之类的服务器的至少一个处理设备执行。在一些实施例中,过程3200的部分或全部可以由交通工具的处理设备执行,处理设备诸如处理设备110。要理解的是,贯穿本公开,术语“处理器”被用作“至少一个处理器”的简写。换句话说,处理器可以包括执行逻辑操作的一个或多个结构,无论此类结构是并置的、连接的还是分散的。在一些实施例中,非暂态计算机可读介质可以包含当由处理器执行时使该处理器执行过程3200的指令。进一步地,过程3200不必限于图32中所示的步骤,并且贯穿本公开描述的各实施例的任何步骤或过程也可以包括在过程3200中,包括上文参考图27、图28、图29、图30、图31A和图31B所描述的那些步骤或过程。
在步骤3210中,过程3200包括访问与一个或多个可驾驶道路相关联的多个点。在一些实施例中,多个点可以使用贯穿本公开描述的技术来收集。例如,多个点可包括在穿越一个或多个可驾驶道路的多个交通工具收集的驾驶信息中。这可包括存储在稀疏导航地图中的点,如上所述。多个点可表示特征,诸如道路边缘、车道标记、坑洞、方向箭头或沿道路的其他特征,如本文中所描述。在一些实施例中,稀疏导航地图可包括与一个或多个可驾驶道路相关联的目标轨迹。替代地或附加地,多个点可以以其他方式来收集。例如,可以使用LIDAR数据、使用航空图像或扫描数据、使用道路调查信息或用于采集3D点数据的任何其他技术或技术组合,来收集多个点。在一些实施例中,步骤3210可包括访问表示多个点的信息被存储在其中的数据库、服务器或其他存储位置。因此,在一些实施例中,用于收集多个点的源或收集方法可能对公开的系统(例如,对于现有的地图数据库)未知和/或不可用。
在步骤3220中,过程3200包括基于多个点来生成道路表面模型。表面模型可包括表示一个或多个可驾驶道路的表面的网格。例如,步骤3220可包括生成网格3110和/或网格3120,如图31A所图示。网格可以使用三角测量算法或任何其他合适的网格化算法生成。步骤3220可包括应用本文公开的可驾驶距离阈值技术来生成网格。例如,步骤3220可包括确定多个点中的第一点与多个点中的第二点之间的可驾驶距离。例如,如上所述,这可对应于确定点3112与点3122之间的可驾驶距离。在一些实施例中,可驾驶距离可以基于道路导航模型中包括的信息来确定。例如,可驾驶距离可以基于与一个或多个可驾驶道路相关联的至少一个目标轨迹来确定。如本文所述,至少一个目标轨迹可被表示为3D样条。
步骤3220可进一步包括基于确定了第一点与第二点之间的可驾驶距离小于或等于预定距离阈值而将第一点与第二点网格化在一起。预定距离阈值可以以各种方式定义。例如,预定距离阈值可以是预定的距离,诸如10米或以下、20米或以下、30米或以下、50米或以下、100米或以下,或任何其他合适的距离。作为另一示例,预定距离阈值可等于第一点和第二点分隔开的物理距离。例如,如上所述,预定距离阈值可等于距离d1。作为附加示例,预定距离阈值可以是物理距离的因数。例如,预定距离阈值不超过第一点和第二点分隔开的物理距离的110%,或任何其他合适的因数。
在步骤3230中,过程3200包括存储道路表面模型,以供用于交通工具沿一个或多个可驾驶道路的导航。例如,如上所述,道路表面模型可以被包括在稀疏导航地图中,用于穿越道路段2720和道路段2730。替代地或附加地,道路表面模型可被单独存储。在一些实施例中,过程3200可进一步包括将道路表面模型传送到一个或多个交通工具,用于在一个或多个可驾驶道路上导航。例如,这可包括将道路表面模型从服务器2810传送到一个或多个自主或半自主交通工具。虽然过程3230通常在立交桥的背景下描述,但相同或类似的技术可适用于其中与一个道路表面相关联的点可以与其他道路表面(诸如中央分道区的相对侧、交叉路口或出口斜坡处的发散道路)分开地网格化在一起的其他场景等。
前述描述已经出于说明的目的被呈现。其并非是穷尽性的,并且不限于所公开的精确形式或实施例。通过考虑说明书和所公开的实施例的实施,修改和改编对于本领域技术人员来说将是显而易见的。另外,尽管所公开的实施例的方面被描述为被存储在存储器中,但本领域技术人员将会领会,这些方面也可以存储在其他类型的计算机可读介质上,诸如,辅助存储设备,例如,硬盘或CD ROM,或其他形式的RAM或ROM、USB介质、DVD、蓝光、4K超高清蓝光或其他光驱介质。
基于书面描述和所公开的方法的计算机程序在经验丰富的开发人员的技能范围内。各种程序或程序模块可以使用本领域技术人员已知的任何技术来创建,或者可以结合现有软件来设计。例如,程序段或程序模块可以通过或借助.NET框架和.NET紧凑框架(以及相关语言,诸如Visual Basic、C等)、java、C++、面向对象的C、HTML、HTML/AJAX组合、XML或包括Java小程序的HTML来设计。
此外,尽管本文已经描述了说明性实施例,但是本领域技术人员基于本公开将会领会具有的等效的要素、修改、省略、组合(例如,跨各个实施例的方面的组合)、改编和/或变更的任何和所有实施例的范围。权利要求中的限制将基于权利要求中使用的语言进行广义解释,而不限于在本说明书中或在本申请的审查期间描述的示例。这些示例将被解释为非排他性的。此外,可以以任何方式修改所公开方法的步骤,这些方式包括通过对步骤重新排序和/或插入或删除步骤。因此,本说明书和示例旨在仅被视为说明性的,其中真正的范围和精神由所附权利要求及其等效方案的全部范围来指示。
Claims (10)
1.一种用于使来自多个道路段的驾驶信息相关的系统,所述系统包括:
至少一个处理器,所述至少一个处理器包括电路系统和存储器,其中,所述存储器包括指令,所述指令在由所述电路系统执行时,使得所述至少一个处理器:
接收来自穿越第一道路段的第一多个交通工具中的每一个交通工具的驾驶信息,其中来自所述第一多个交通工具中的每一个交通工具的驾驶信息至少包括所述第一多个交通工具之中的特定交通工具在穿越所述第一道路段时遵循的实际轨迹的指示;
使来自所述第一多个交通工具中的每一个交通工具的驾驶信息相关,以提供表示所述第一道路段的第一道路模型段;
接收来自穿越第二道路段的第二多个交通工具中的每一个交通工具的驾驶信息,其中来自所述第二多个交通工具中的每一个交通工具的驾驶信息至少包括所述第二多个交通工具之中的特定交通工具在穿越所述第二道路段时遵循的实际轨迹的指示;
使来自所述第二多个交通工具中的每一个交通工具的驾驶信息相关,以提供表示所述第二道路段的第二道路模型段;
在与所述第一道路段相关联的第一点同与所述第二道路段相关联的第二点之间的可驾驶距离小于或等于预定距离阈值的情况下,使所述第一道路模型段和所述第二道路模型段相关,以提供相关道路段模型;以及
将所述相关道路段模型存储为稀疏导航地图的部分,以供用于交通工具沿所述第一道路段和所述第二道路段的导航。
2.如权利要求1所述的系统,其特征在于,包括在所述存储器中的所述指令的执行进一步使得所述至少一个处理器向一个或多个交通工具提供包括所述相关道路段模型的所述稀疏导航地图,以供用于沿所述第一道路段和所述第二道路段对所述一个或多个交通工具进行导航。
3.如权利要求1所述的系统,其特征在于,从所述第一多个交通工具接收到的驾驶信息和从所述第二多个交通工具接收到的驾驶信息还包括通过捕获图像帧的分析被检测到的对象的指示、以及与检测到的对象中的每一个检测到的对象相关联的至少一个位置指示符。
4.如权利要求3所述的系统,其特征在于,所述检测到的对象的指示标识非语义特征类型。
5.如权利要求4所述的系统,其特征在于,所述非语义特征类型包括交通标志、交通灯、车道标记、井盖、道路边缘、或路缘中的至少一个。
6.如权利要求3所述的系统,其特征在于,所述至少一个位置指示符包括来自捕获的图像帧的X-Y位置。
7.如权利要求3所述的系统,其特征在于,所述至少一个位置指示符包括基于运动中结构计算被确定的3D特征点。
8.如权利要求1所述的系统,其特征在于,来自所述第一多个交通工具中的每一个交通工具的驾驶信息的相关包括实际交通工具轨迹的聚合和对齐,以确定针对与所述第一道路段相关联的至少一个行驶车道的目标轨迹。
9.如权利要求8所述的系统,其特征在于,所述目标轨迹被表示为3D样条。
10.如权利要求1所述的系统,其特征在于,来自所述第二多个交通工具中的每一个交通工具的驾驶信息的相关包括实际交通工具轨迹的聚合和对齐,以确定针对与所述第二道路段相关联的至少一个行驶车道的目标轨迹。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063072597P | 2020-08-31 | 2020-08-31 | |
US63/072,597 | 2020-08-31 | ||
PCT/US2021/048419 WO2022047372A1 (en) | 2020-08-31 | 2021-08-31 | Systems and methods for map-based real-world modeling |
CN202180053587.0A CN116802461A (zh) | 2020-08-31 | 2021-08-31 | 用于基于地图的真实世界建模的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180053587.0A Division CN116802461A (zh) | 2020-08-31 | 2021-08-31 | 用于基于地图的真实世界建模的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117824697A true CN117824697A (zh) | 2024-04-05 |
Family
ID=80355696
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180053587.0A Pending CN116802461A (zh) | 2020-08-31 | 2021-08-31 | 用于基于地图的真实世界建模的系统和方法 |
CN202311183934.9A Pending CN117824697A (zh) | 2020-08-31 | 2021-08-31 | 用于基于地图的真实世界建模的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180053587.0A Pending CN116802461A (zh) | 2020-08-31 | 2021-08-31 | 用于基于地图的真实世界建模的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230195122A1 (zh) |
EP (1) | EP4204768A1 (zh) |
JP (1) | JP2023539868A (zh) |
CN (2) | CN116802461A (zh) |
DE (1) | DE112021004128T5 (zh) |
WO (1) | WO2022047372A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7498136B2 (ja) * | 2021-03-30 | 2024-06-11 | トヨタ自動車株式会社 | 道路区間判定装置、道路区間判定用コンピュータプログラム及び道路区間判定方法 |
US20220404167A1 (en) * | 2021-06-22 | 2022-12-22 | GM Global Technology Operations LLC | Roadway occlusion detection and reasoning |
CN116578891B (zh) * | 2023-07-14 | 2023-10-03 | 天津所托瑞安汽车科技有限公司 | 道路信息重构方法、终端及存储介质 |
CN117198058B (zh) * | 2023-11-01 | 2024-01-30 | 合肥师范学院 | 一种基于遥感影像的道路交通智能监管系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9836056B2 (en) * | 2015-06-05 | 2017-12-05 | Bao Tran | Smart vehicle |
AU2019231196B2 (en) * | 2018-03-05 | 2023-11-23 | Mobileye Vision Technologies Ltd. | Systems and methods for anonymizing navigation information |
US20200110817A1 (en) * | 2018-10-04 | 2020-04-09 | Here Global B.V. | Method, apparatus, and system for providing quality assurance for map feature localization |
-
2021
- 2021-08-31 CN CN202180053587.0A patent/CN116802461A/zh active Pending
- 2021-08-31 EP EP21862960.8A patent/EP4204768A1/en active Pending
- 2021-08-31 JP JP2023513511A patent/JP2023539868A/ja active Pending
- 2021-08-31 WO PCT/US2021/048419 patent/WO2022047372A1/en active Application Filing
- 2021-08-31 CN CN202311183934.9A patent/CN117824697A/zh active Pending
- 2021-08-31 DE DE112021004128.2T patent/DE112021004128T5/de active Pending
-
2023
- 2023-02-22 US US18/112,741 patent/US20230195122A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230195122A1 (en) | 2023-06-22 |
CN116802461A (zh) | 2023-09-22 |
WO2022047372A1 (en) | 2022-03-03 |
DE112021004128T5 (de) | 2023-07-20 |
EP4204768A1 (en) | 2023-07-05 |
JP2023539868A (ja) | 2023-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109643367B (zh) | 用于自主车辆导航的众包和分发稀疏地图以及车道测量的方法、系统和可读介质 | |
EP4345419A2 (en) | Systems and methods for vehicle navigation | |
JP2024045389A (ja) | レーンマッピング及びナビゲーション | |
JP2022535351A (ja) | 車両ナビゲーションのためのシステム及び方法 | |
CN112204349A (zh) | 用于车辆导航的系统和方法 | |
CN111837014A (zh) | 用于匿名化导航信息的系统和方法 | |
CN112654836A (zh) | 用于车辆导航的系统和方法 | |
CN114286925A (zh) | 用于识别潜在通信障碍的系统和方法 | |
US20210381849A1 (en) | Map management using an electronic horizon | |
CN116539052A (zh) | 用于车辆导航的系统、方法和装置 | |
US11680801B2 (en) | Navigation based on partially occluded pedestrians | |
CN113924462A (zh) | 用于确定物体尺寸的导航系统和方法 | |
CN117053812A (zh) | 使用电子地平线导航交通工具 | |
US20230195122A1 (en) | Systems and methods for map-based real-world modeling | |
EP4127607B1 (en) | Systems and methods for optimizing map tile requests for navigation | |
CN116783455A (zh) | 用于检测打开的门的系统和方法 | |
CN117355871A (zh) | 多帧图像分割 | |
CN117651668A (zh) | 用于监测车道标记质量的系统和方法 | |
CN117571001A (zh) | 用于公共速度映射和导航的系统和方法 | |
CN114930123A (zh) | 用于检测交通灯的系统和方法 | |
US20240135728A1 (en) | Graph neural networks for parsing roads | |
CN118265957A (zh) | 用于车辆导航的雷达-摄像头融合 | |
WO2023067385A2 (en) | Radar-camera fusion for vehicle navigation | |
CN116734848A (zh) | 关于行人和确定交通工具自由空间的交通工具导航 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |