CN111742310B - 创建包含语义信息的干净的地图 - Google Patents

创建包含语义信息的干净的地图 Download PDF

Info

Publication number
CN111742310B
CN111742310B CN201980014385.8A CN201980014385A CN111742310B CN 111742310 B CN111742310 B CN 111742310B CN 201980014385 A CN201980014385 A CN 201980014385A CN 111742310 B CN111742310 B CN 111742310B
Authority
CN
China
Prior art keywords
sensor
classifications
sensor dataset
subset
map
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.)
Active
Application number
CN201980014385.8A
Other languages
English (en)
Other versions
CN111742310A (zh
Inventor
王曾
D·D·安格洛夫
S·达斯
J·S·莱文森
B·里布萨门
N·什罗夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zoox Inc
Original Assignee
Zoox Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zoox Inc filed Critical Zoox Inc
Publication of CN111742310A publication Critical patent/CN111742310A/zh
Application granted granted Critical
Publication of CN111742310B publication Critical patent/CN111742310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Databases & Information Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Traffic Control Systems (AREA)
  • Instructional Devices (AREA)
  • Image Analysis (AREA)

Abstract

一种系统可以接收表示环境的传感器数据集,并使用该数据集创建或更新地图。在创建或更新地图时,系统可以确定一个或多个检测到对象的对象分类,并且仅至少部分地基于分类仅将数据选择性地合并到地图中。该地图可以与对象的分类(或语义)信息以及基于分类的权重相关联。类似地,移除了选定类别数据的数据集可用于系统定位。此外,系统可以确定对象的对象轨迹。当更新地图时,体素空间中的体素可以基于观察的阈值数量指示占用的体素。然后可以将对象轨迹和干净的地图用于控制自动驾驶车辆。

Description

创建包含语义信息的干净的地图
优先权要求
本PCT国际专利申请要求于2018年2月20日提交的申请号为15/900,319的美国专利申请的权益,其全部内容通过引用并入本申请。
背景技术
虚拟地图,例如数字二维和三维地图,具有多种用途。例如,自动驾驶车辆可以使用虚拟地图来确定车辆的位置和/或方位和/或在地理位置之间行驶。可以至少部分地基于从传感器中获得的数据创建一些此类地图,这些传感器穿过并检测环境中的对象,例如道路、建筑物、交通标志和信号、其他车辆、停放的汽车、植被、行人、骑自行车的人等。但是,传感器可能会生成不希望在地图中使用的数据和/或包含大量无关的信息,从而导致计算机处理能力和内存使用效率低下,这还可能导致计算速度不理想,有时当用于自动驾驶车辆的控制时,提供的信息不准确。
附图说明
参照附图进行详细描述。在附图中,附图标记的最左边的数字标识/标识该附图标记首次出现的附图。不同附图中的相同附图标记表示相似或相同的项目。
图1是用于更新地图的示例过程的图示流程图。
图2是用于更新和/或注释地图的另一示例过程的图示流程图。
图3示出了用于实现本文描述的一个或多个示例过程的示例架构。
图4是示例光线投射(ray cast)和示例动态对象识别的示意图。
图5是示出递增计数器以确定空闲空间的示例和递减计数器以确定占用空间的示例的图。
图6是用于更新地图的示例过程的流程图。
图7是用于更新和/或注释地图的另一示例过程的流程图。
图8是用于实现本文描述的示例过程的示例计算机架构的框图。
具体实施方式
本公开总体上针对用于创建诸如虚拟地图的干净的地图、清理现有地图和/或向地图添加语义信息的方法、装置和系统。此类地图可用于确定诸如自动驾驶车辆之类的车辆的位置和/或方位(例如,局部姿态),和/或用于在数个地理位置之间导航车辆。例如,可以至少部分地基于从传感器获得的数据来创建地图。在一些示例中,在创建地图期间,将自动省去不希望的伪像(例如,可能对地图的实用性产生负面影响的对象)。例如,随着可能会影响定位的这些类型的动态对象(例如车辆、行人和骑自行车的人)的可能移动,在创建地图时,这些动态对象可能会自动从地图中省略。在一些示例中,现有地图可以被自动清理。例如,可以使用在一个或多个传感器随后通过地图所表示的环境期间获得的传感器数据,从现有地图中移除动态对象和/或由与动态对象相关联的传感器数据创建的伪像。在一些示例中,可以自动创建干净的地图和/或可以通过分割传感器数据并从地图中省略和/或移除动态对象和/或与动态对象相关联的伪像来自动清理现有的地图。在一些示例中,地图中表示的每个语义类别可以与贡献权重相关联(例如,指示与对该类别相关联的、有助于特定算法(例如,定位算法)的数据量)。作为非限制性示例,潜在动态对象,例如植被(例如,树木和灌木丛)可被向下加权,例如,与静态对象相比,对它们存在的检测依赖程度较低,以便根据地图确定局部姿态(local pose)。上述示例中的至少一些示例可以导致可以由自动驾驶车辆更有效地使用的改进的地图,从而减少计算机处理器容量需求和/或内存需求。反过来,这可以例如导致使用地图的自动驾驶车辆的改善操作,使得可以至少更快速地计算至少部分基于地图数据的确定,这可以导致对使用地图数据的车辆的改进控制。此外,尽管在出于说明目的而创建用于辅助自动驾驶车辆的导航的地图的背景下进行了讨论,但是这种地图对于在游戏中创建模拟环境,生成城市的比例模型等可能是有用的。
本公开总体上针对一种系统,该系统被配置为接收(例如,在第一时间)表示环境的第一传感器数据集,并且根据多个分类来分割该第一传感器数据集。该系统还可以被配置为至少部分地基于该第一传感器数据集,将该传感器数据集与包括多个体素的体素空间相关联,并更新(例如,递增或递减)与这些体素相关联的一个或多个计数器。该系统还可被配置为在一个或多个附加时间接收表示环境的一个或多个附加传感器数据集。在一些示例中,该一个或多个附加时间可以相对于彼此在一秒或更短的时间内。在一些示例中,该一个或多个附加时间可以相对于彼此在在一分钟或更短、一小时或更短或一天或更短的时间内。在一些示例中,该一个或多个附加时间可以相对于彼此大于一天。该系统还可以被配置为根据该多个分类来分割该一个或多个附加传感器数据集,并将该一个或多个附加传感器数据集与该体素空间相关联。该系统还可以被配置为至少部分地基于该一个或多个附加传感器数据集来更新(例如,递增或递减)该一个或多个计数器,并且至少部分地基于该一个或多个计数器达到或超过第一阈值来更新包括该体素空间的地图。在一些示例中,该第一阈值可以例如基于计数器递增之间的时间量来预先确定和/或实时确定。在一些示例中,该第一阈值可以是5或更大。在一些示例中,该第一阈值可以小于5。在一些示例中,该地图可以是虚拟的、二维或三维数字地图。在一些示例中,该地图是预先存在的地图,并且在一些示例中,该地图可以至少部分地通过传感器数据创建,并且更新该地图可以是向正在创建的地图中添加信息或从中省略信息。通过使用体素哈希(voxel hash)可以进一步增强这种体素表示。当然,体素表示是这样的地图的许多可能表示之一,并且可以想到其他可能的表示。作为其他非限制性示例,这样的地图可以表示为网格、带符号的距离函数等。
在一些示例中,该传感器数据集可以从光检测和测距(LIDAR)传感器、无线电检测和测距(RADAR)传感器、一个或多个超声换能器(例如,声音导航和测距(SONAR)传感器)或一个或多个成像器(例如,相机、深度相机、立体相机、红外相机、飞行时间相机、紫外线相机)等中的一个或多个被接收。例如,可以从一个或多个LIDAR传感器接收传感器数据集,所述LIDAR传感器例如是与自动驾驶车辆的感知系统结合使用的LIDAR系统。LIDAR系统可以包括光发射器和光传感器,其中光发射器包括一个或多个激光器,所述激光器将高度聚焦的光引向对象或表面,该对象或表面将光反射回光传感器。LIDAR系统的测量可以表示为具有对应于由LIDAR系统捕获的位置和/或距离的坐标(例如,直角坐标、极坐标等)的三维LIDAR数据。LIDAR系统捕获的数据可以在体素空间中表示,其可以包括在三维空间中的体素网格中表示该数据。
在一些实例中,LIDAR数据可以在体素空间中表示为原始传感器数据(例如,具有与数据点相关联的单个<x、y、z、范围、时间等>值),和/或可以表示为数据的统计累积。例如,LIDAR数据可以在该体素空间中累积,其中单个体素包括已处理的数据,例如观察到的数据点数、平均回报强度、与单个体素相关联的LIDAR数据的平均x值、与单个体素相关联的LIDAR数据的平均y值;与单个体素相关联的LIDAR数据的平均z值;和/或基于与该体素相关联的LIDAR数据的协方差矩阵。
在一些示例中,系统可以被配置为将该一个或多个附加数据集光线投射到这些体素中作为一个或多个光线(ray),并确定该一个或多个光线通过的一个或多个通过(pass-through)体素。在一些示例中,该系统可以被配置为递减与这些通过体素相关联的一个或多个计数器,并且确定与这些通过体素相关联的一个或多个计数器达到第二阈值(例如,低于第一阈值的阈值,以使该一个或多个计数器递减到第二阈值)。在一些示例中,该第二阈值可以等于零。在一些示例中,该第二阈值可以大于零(例如,1、2、3、4或更大)。该第二阈值可以例如基于计数器递减之间的时间量来被预定和/或实时确定。在一些示例中,该系统还可被配置为将该一个或多个通过体素关联为非占用体素。
在该系统的一些示例中,该多个分类可以包括车辆、行人或骑自行车的人中的一个或多个,并且该系统可以被配置为从该第一传感器数据集和该一个或多个附加传感器数据集中移除与该多个分类的子集相关联的数据。在一些示例中,分割该第一传感器数据集和该一个或多个附加传感器数据集可包括将该一个或多个传感器数据集作为输入传递到神经网络中,并从该神经网络接收分割的传感器数据。
在一些示例中,该系统可以被配置为对该一个或多个附加数据集的第二传感器数据集进行分割。该系统还可以被配置为确定该第二传感器数据集中的第一对象,并且至少部分地基于该分割的第二传感器数据集来确定该第一对象是静态对象并且与第一分类相关联。在一些这样的示例中,该系统还可以确定与该第一对象相关联的第一权重,并确定该分割的第二传感器数据集中的第二对象。该系统可以被配置为至少部分地基于该分割的第二传感器数据集来确定该第二对象是动态对象或潜在动态对象并且与第二分类相关联。在这样的示例中的该系统可以被配置为确定与该第二对象相关联的第二权重,其中该第二权重低于该第一权重。例如,如果感测到的对象类型与将来可能移动、被移动和/或改变配置或外观的潜在动态对象(例如停放的车辆或植被)一致,则系统可以被配置为减少在涉及该地图的计算(例如,确定车辆姿态和/或导航车辆)期间,例如相对于与静态对象一致的对象类型(例如,路面、挡土墙、建筑物、电线杆等)的该对象的影响。通过将这样的数据与较低的权重相关联,各种过程(例如,定位)可能仍然能够使用此类数据,同时为其分配较高的不确定性和/或更加依赖与较高的权重相关联的此类数据。
在一些示例中,该系统还可以被配置为将语义信息与该地图相关联。例如,该系统可以被配置为至少部分地基于该分割的传感器数据集将语义信息与该地图相关联。向地图添加语义信息可以实现以下一项或多项操作:至少部分基于标签(例如,标记为“车辆”、“行人”等的体素)而从该地图中移除被语义标记的体素,识别植被,建立置信度(例如,软置信度和硬阈值(例如,不使用标记为“车辆”的体素)),以供自动驾驶车辆的定位器使用。在一些示例中,剩余的分割数据(例如,在移除与某些语义类别相关联的数据之后剩余的传感器数据)可以用于定位。
在一些示例中,该系统还可以被配置为在第三时间接收该一个或多个附加传感器数据集中的第三传感器数据集,并根据该多个分类来分割该第三传感器数据集。该系统还可以被配置为通过从该第三传感器数据集中移除与这些分类的子集相关联的数据来创建数据子集,并且至少部分地基于该地图和该传感器数据的子集来定位自动驾驶车辆。在一些这样的示例中,移除与某些分类相关联的某些数据可以改善各种过程,例如定位。
本公开总体上还针对一种方法,该方法包括:(例如,在第一时间)从一个或多个传感器接收表示环境的第一传感器数据集,以及根据多个分类对该第一传感器数据集进行分割。该方法还可以包括:将该第一传感器数据集与包括多个体素的体素空间相关联,以及至少部分地基于该第一传感器数据集来更新与这些体素相关联的占用状态(例如,更新(例如,递增和/或递减)与这些体素相关联的一个或多个计数器),例如,如本文所述。该方法还可以包括:接收(例如,在一个或多个随后的时间)表示环境的一个或多个附加传感器数据集,以及根据该多个分类对该一个或多个附加传感器数据集进行分割。该方法还可以包括:至少部分地基于该一个或多个附加传感器数据集,将该一个或多个附加传感器数据集与该体素空间相关联,并更新与这些体素关联的占用状态(例如,递增和/或递减该一个或多个计数器)。在一些示例中,该方法可以进一步包括例如至少部分地基于与这些体素相关联的占用状态(例如,基于一个或多个计数器达到或超过阈值)来更新包括体素空间的地图,例如,如本文所述。在一些示例中,该方法还可以包括至少部分地基于该地图来确定车辆的位置或方位中的一个或多个,并且基于该车辆的位置或方位中的一个或多个来生成用于操纵该车辆的一个或多个轨迹。在这样的示例中,该方法还可包括至少部分地基于该一个或多个轨迹来操纵该车辆。
本文所述的技术可通过提供用于从地图有效地省略不想要的或无关的数据的框架来改善计算设备的功能。在一些示例中,可以在体素空间中表示复杂的多维数据,例如LIDAR数据和/或来自其他传感器类型的数据,从而可以有效地评估和处理数据。在一些示例中,该体素空间可以表示稀疏体素空间,这可以减少用于处理的数据量。在一些示例中,该技术可以提供健壮的过程以省略无关的数据和/或分割数据,在一些示例中,该无关的数据和/或分割数据可以用于轨迹生成。减少无关数据可以减少使用该地图进行操作所需的处理量和/或内存量。在一些示例中,本文描述的操作可以在在线和离线背景中使用(例如,在车辆上进行实时处理,或者离开车辆进行随时处理),从而提供了一种灵活的框架,可以在各种情况下利用这些地图。在一些示例中,没有无关数据的地图可以用于生成自动驾驶车辆的轨迹,这可以提高自动驾驶车辆的乘员的安全性。在本文描述的一些示例中,这些操作可以通过对体素化的数据进行操作以有效地简化数据来减少内存需求或减少处理量。本文讨论了对计算机功能的这些和其他潜在的改进。
本文描述的技术和系统可以以多种方式来实现。下面参考附图提供示例实施方式。
图1是示例过程100的图形流程图,该过程用于表示地图中的传感器数据集,例如体素空间,并标识对象以进行后续处理,例如用于更新地图。在所示示例中,示例车辆102行驶通过环境104。例如,车辆102可以是无人驾驶车辆,例如被配置为根据美国国家公路交通安全管理局发布的5级分类运行的自动驾驶车辆,其中描述了一种能够在整个行程中执行所有对安全至关重要的功能的车辆,而驾驶员(或乘员)在任何时候都不希望控制该车辆。在这样的示例中,因为车辆102可以被配置为控制从行程的开始到完成的所有功能,包括所有停车功能,所以它可以不包括驾驶员和/或用于驾驶车辆102的控件,例如方向盘、加速踏板和/或制动踏板。这仅是示例,并且本文描述的系统和方法可以被结合到任何陆上、空中或水上车辆中,包括从始终需要驾驶员手动控制的车辆到部分或完全自主控制的车辆。
示例性车辆102可以是任何构造的车辆,例如厢式货车、运动型多用途车、跨界车、卡车、公共汽车、农用车辆和建筑车辆。车辆102可以由一个或多个内燃发动机、一个或多个电动机、氢动力、其任何组合和/或任何其他合适的动力源提供动力。尽管示例性车辆102具有四个车轮106,但是本文描述的系统和方法可以结合到具有更少或更多数量的车轮、轮胎和/或履带的车辆中。示例性车辆102可以具有四轮转向并且可以在所有方向上大体上以基本上相等的性能特性来操作,例如,使得当在第一方向110上行驶时,车辆102的第一端108是车辆102的前端,而在相反的第二方向112上行驶时,第一端108则成为车辆102的后端,如图1所示。类似地,当沿第二方向112行驶时,车辆102的第二端114是车辆102的前端,并且当沿相反的第一方向110行驶时,第二端114则成为车辆102的后端。这些示例特性可以实现更大的可操纵性,例如,在狭小空间或拥挤的环境中,例如停车场和市区。
诸如示例性车辆102之类的车辆可以行进通过环境104并收集用于地图绘制的数据(例如,创建地图和/或修改现有地图)。例如,车辆102可以包括一个或多个传感器116,其被配置为在车辆102行进通过环境104时捕获表示环境104的数据集。在图1所示的示例中,关于一个或多个LIDAR传感器的使用来描述传感器116和相关联的描述。尽管在LIDAR传感器的背景下和/或自动驾驶汽车的背景下进行了讨论,但本文所述的方法、装置和系统可以应用于利用例如任何其他传感器模式及其相关检测的各种系统、分类、分割和地图绘制算法,例如图像传感器上使用的计算机视觉算法。另外,尽管关于三维LIDAR数据进行了描述,但是本文描述的方法、装置和系统不限于三维数据,也不限于LIDAR数据。例如,该一个或多个传感器可以是一个或多个RADAR传感器、一个或多个超声换能器、一个或多个成像器(例如,立体相机、深度相机等),和/或配置为生成表示环境的传感器数据集的任何传感器类型。在一些示例中,所述方法、装置和系统可以用于其他目的,例如,在制造装配线的背景下或在航空测量的背景下。这些数据集可以包括任意数量的层或通道,其可以对应于任意数量的尺度。在一些示例中,本文描述的技术可以与实际数据(例如,使用一个或多个传感器捕获的)、模拟数据(例如,由模拟器生成的)和/或其组合一起使用。
如图1所示,车辆102行驶通过环境104,并且一个或多个传感器116生成表示环境104的数据集。例如,一个或多个传感器116可以基本上连续地或间歇地生成包括对应于环境104中的一个或多个对象118的传感器数据的传感器数据集。在120处的示例过程100可以包括在时间T1 122处首先经由一个或多个传感器116生成表示环境104中的一个或多个对象118的传感器数据集,其可以包括与城市环境中的各种对象(例如汽车、卡车、道路、建筑物、自行车、行人等)相关的LIDAR数据(例如点云)。在一些示例中,这可以包括从一个或多个传感器116接收多个数据集,该一个或多个传感器116可以与车辆102的感知系统相关联地进行操作,例如,当车辆102是自动驾驶车辆时。在一些示例中,来自这些数据集的数据可以包括来自从两个或多个传感器获得的数据集的、成为单个传感器数据集的合并或融合的数据。在一些示例中,传感器数据集可以在随后的时间被生成和/或被处理。例如,如图1所示,过程100可以包括在时间T2 124生成传感器数据集一直到在时间TN 126生成传感器数据集,并且过程100可以包括例如在一段时间内提取这些传感器数据集的至少一部分。在一些示例中,在120处,过程100可以包括从不止一个传感器和/或不止一个传感器类型接收数据集,并且将这些传感器数据集相关联以获得环境104的更详细的表示。
在128处,过程100可以包括根据多个分类来分割与第一时间T1 122相关联的第一传感器数据集。在一些示例中,分割该第一传感器数据集可以包括将该第一传感器数据集作为输入传递到神经网络中,该神经网络可以分割数据,但是可以设想任何其他分割算法。至少部分地基于该分割的第一传感器数据集,这些分类可以包括例如车辆、行人或骑自行车的人中的一个或多个。其他分类也可以考虑。
在130处,在一些示例中,过程100可以包括将在时间T1 122处的第一传感器数据集与体素空间132相关联。出于说明的目的,图1中描绘的示例体素空间132在每个维度(例如,x、y、z)上包括五个体素134,尽管在体素空间132中可以包括任何数量的体素134(例如,在任何维度上大约为数十、数百或数千个体素的量级)。在一些情况下,体素空间132可以对应于物理环境104,诸如传感器数据集的全局原点、局部原点或虚拟原点周围的区域。例如,体素空间132可以表示一百米宽、一百米长、二十米高的区域,但是可以考虑任何其他尺度。体素空间132中的每个体素134可以表示物理区域或体积,例如在每个维度上为二十五厘米,尽管可以设想其他尺度。体素空间132可以表示环境104的任何区域,并且各个体素134可以表示任何体积。在一些示例中,体素在整个体素空间132中可以具有基本均匀的尺度(例如,体积),并且在一些示例中,给定的体素134之一的体积可以基于例如该体素相对于传感器数据集的原点的位置而变化。例如,传感器数据集的密度可以随着距传感器116之一的距离的增加而减小,并且体素空间中体素的尺度可以与该体素和该传感器,或者例如表示一个或多个传感器116的原点之间的距离成比例地增加。
在一些示例中,随着时间的推移捕获数据,将该传感器数据集与体素空间132相关联可以包括将该传感器数据集(例如,LIDAR传感器数据集)与体素空间132对准。例如,将该传感器数据集与体素空间132相关联可以包括确定要应用于该传感器数据集的变换,以使该传感器数据集与体素空间132对准。例如,如果传感器116是LIDAR传感器,则将该传感器数据集与体素空间132相关联可以包括通过确定从观察点到现有捕获数据或现有地图的距离,或者通过执行定位,将捕获的LIDAR数据与在体素空间132中捕获的数据进行匹配。
在一些示例中,体素空间132可以被初始化为空白空间,并且传感器数据集可以在被捕获时被添加到体素空间132,例如,如本文所述进行修改。在一些示例中,可以用表示先前捕获的数据的全局地图(global map)的数据来初始化体素空间132。在使用全局地图数据的示例中,这些操作可以包括将本地(locally)捕获的传感器数据集与全局数据进行比较,以在全局地图空间中定位车辆102(例如,自动驾驶车辆)。在一些示例中,可以使用体素哈希来引用这样的体素空间。
在一些示例中,例如,当从LIDAR传感器接收传感器数据集时,将该第一传感器数据集与体素空间132相关联可以包括将点云的各个点映射到各个体素。在一些示例中,这可以包括例如当该传感器数据集被诸如自动驾驶车辆之类的移动平台捕获时减去与该传感器数据集相关联的运动矢量,并减去与该第一传感器数据集相关联的运动矢量可用于将该传感器数据集转换为固定参考点。特别地,在某些情况下,与例如相对于移动车辆固定的体素空间相反,该传感器数据集可以与相对于全局地图固定的体素空间相关联。在一些示例中,将该第一传感器数据集与体素空间132相关联可以包括例如将车辆102的姿态(例如,车辆102的位置和/或方位)和该第一传感器数据集与体素地图对准,以补偿或调整与车辆102相对于体素空间132的位置相关联的误差。
在一些示例中,将传感器数据集与体素空间132相关联可以包括统计地捕获传感器数据并在将传感器数据添加到各个体素时对其进行处理。例如,各个体素可包括表示从该(些)传感器观察到的数据点数量、平均强度(例如,LIDAR传感器数据)、数据的平均x值、数据的平均y值、数据的平均z值和/或基于与各个体素相关联的传感器数据的协方差矩阵的数据。因此,在一些示例中,与各个体素相关联的数据可以表示经处理的数据,这可以改善系统的处理性能。
在将传感器数据集与体素空间132相关联之后,过程100在136处可包括至少部分地基于第一传感器数据集来更新(例如,递增)与体素134相关联的一个或多个计数器。例如,计数器可以仅增加与该数据相关联的那些体素134和/或减少在传感器原点和该相关联的数据(例如,范围和角度)之间的那些体素134。在一些示例中,计数器可以仅减少与该数据相关联的那些体素134和/或增加在传感器原点和该相关联的数据之间(例如,范围和角度)的那些体素134。
在138处,过程100可以包括在一个或多个附加时间(例如,在随后的时间)接收表示环境104的一个或多个附加传感器数据集。例如,在时间T2 124至TN 126处的一个或多个传感器数据集可以被接收。此后,在140处,过程100的一些示例可以包括根据多个分类对该一个或多个附加传感器数据集进行分割,并在142处,将与这些分类中的一个或多个不相关联的一个或多个附加传感器数据集(即,仅关联这些分类的子集的那些数据集)与体素空间134相关联。例如,至少部分地基于分割的附加传感器数据集,这些分类可以包括例如车辆、行人或骑自行车的人中的一个或多个。在这样的示例中,与车辆、行人和/或骑自行车的人相关联的数据可以从该数据集中被丢弃,以便不与体素134相关联。可以设想其他分类。在144处,该过程还可包括至少部分地基于一个或多个附加传感器数据集来更新(例如,递增)该一个或多个计数器,并且在146处,至少部分地基于该一个或多个计数器达到或超过指示这些体素134被“占用”的第一阈值,来更新包括该体素空间的地图。如上所述,这可能导致在创建地图时从该地图上省略(例如,自动省略)动态对象,或者在某些示例中,从现有地图上省略(例如,自动省略)动态对象。因此,在一些示例中,这可以被用于在地图的创建期间清理(例如,自动清理)和/或通过仅合并静态对象或在适用的情况下通过移除动态对象来清理(例如,自动清理)现有地图。在一些示例中,“清理”可以替代地或附加地是指从地图上省略(或移除)伪像,该(些)伪像可以对应于与基于与动态对象相关联的传感器数据而被添加到该地图上的这些动态对象相关联的动态轨迹。在一些示例中,可以在地图创建期间或在地图创建之后(例如,当更新地图时)自动执行该省略或移除。
在某些情况下,很难或不可能确定曾经占用的体素不再被占用。例如,当获取与跟随自动驾驶车辆的对象(例如,车辆)相关联的传感器数据时,可能难以或不可能确定曾经被该对象占用的体素不再被占用,因为,例如,自动驾驶车辆的传感器可能看不到该对象后面的区域。此效果可能会在地图中创建实际不存在该对象的动态轨迹。这些动态轨迹(或伪像)可能会导致不良影响。例如,由于例如该地图中的、与该地图中指示的位置不再存在的对象相关联的无关数据,动态轨迹可能会阻碍定位(例如,通过诸如自动驾驶车辆之类的车辆)。这可能导致难以从当车辆行驶通过该环境时从与该车辆耦合的传感器获得的传感器数据中减去与该地图关联的背景数据。背景减法可用于协助该车辆识别该环境中不属于背景的对象(例如,该背景包括静态结构,例如道路表面、建筑物、障碍、交通信号、路缘石等)。另外,出于类似的原因,在模拟中使用包含动态轨迹的地图可能也是不希望的。
在一些示例中,从一个或多个传感器116获得的传感器数据集可以随时间累积,例如在时间T1 122处的示例传感器数据集,以及在附加时间(例如,后续时间)生成的传感器数据集,例如在时间T2 124处的传感器数据集到时间TN 126处的传感器数据集。例如,这些传感器数据集随着时间的推移而被累积,过程100可以包括:至少部分地基于时间T1 122处的传感器数据集,在第一时间确定体素是否被对象占用,然后,确定是否在附加时间(例如在第二时间T2到时间TN)该体素被占用。
在一些示例中,过程100可以包括跟踪随着时间推移该体素的占用情况以确定该体素是否真正被占用。例如,过程100可以包括确定与该体素相关联的测量的计数的实例(instances)是否达到或超过实例的阈值数量,这可以指示该体素被占用。该体素的占用率变化可以指示关联的对象是动态对象。例如,如果确定该对象在第一时间出现,但在随后的后续时间不出现,则可能表明该对象是动态对象,因为它在体素中的存在停止了,这表明该对象已移动到不包含与该体素的位置相对应位置的位置。但是,如果检测到该对象存在于与后续时间的阈值数量相对应的传感器数据集中,则可能表示该对象是静态的。在一些示例中,所计数的实例可以是连续的实例。在一些示例中,一个或多个随后的时间可以相对于彼此在一秒或更短的时间内、在一分钟或更短的时间内、一小时或更短的时间内或一天或更短的时间内。在某些情况下,一个或多个后续时间可能相对于彼此大于一天。实例的阈值数量可以例如基于与感测到的对象相关联的一个或多个特征和/或实例之间的时间量来预先确定和/或可以实时或动态地确定。
在一些示例中,过程100还可包括至少部分地基于比较来更新包括该体素空间的地图以识别对象对一个或多个体素的占用。例如,如果实例的数量大于实例的阈值数量(例如,五个或更多),则可以确定该体素被占用。可替代地,如果所计数的实例的数量小于实例的阈值数量,则过程100可以包括指示与该体素相关联的环境区域未被占用。在一些示例中,这可以包括不将与该体素相关联的对象添加到正在创建(或更新)的地图上,或者从现有地图中移除对象(例如,清理这些体素)。在一些示例中,在地图创建期间不将对象添加到地图可以是自动的,并且可以防止向地图添加动态轨迹的可能性。在一些示例中,可以不必省略被确定为动态对象的对象。相反,在一些示例中,过程100可以包括用“动态”标志来标记与动态对象相关联的数据,从而可以相应地有选择地加载数据(例如,可以基于是否包括动态对象的选择来将该对象有选择地显示在地图中)。在一些示例中,从地图移除体素(和/或决定不将其与被占用的指示相关联)可导致从地图中消除动态轨迹。在一些示例中,地图可以是存储在数据库(例如,中央数据库)中的全局地图,第三方和/或车辆可以访问该全局地图以相对于该全局地图定位设备和/或车辆。
如关于图4更详细地解释的,过程100可以包括光线投射操作以确定在第一时间占用的体素在第二时间是否未被占用。例如,一个或多个传感器116可以包括LIDAR传感器,该LIDAR传感器被配置为捕获由第一矢量图示表示的LIDAR数据集,以识别和/或分割对象。随后,在第二时间,LIDAR传感器可以捕获以图形表示为第二矢量的LIDAR数据集,以识别和分割不同的第二对象,该第二对象可以例如对应于墙壁或建筑物。在一些示例中,并且如关于图4所讨论的,过程100可以包括确定第二矢量经过的体素以确定LIDAR传感器和第二对象之间的体素未被占用。
图2是示例过程200的图形流程图,该过程200用于至少部分地基于传感器数据集来更新地图,例如,如下所述。在202处,过程200可以包括接收与对象相关联的传感器数据集,所述对象例如是在环境104中检测到的一个或多个对象118。该传感器数据集可以从一个或多个LIDAR传感器、一个或多个RADAR传感器、一个或多个SONAR传感器、一个或多个超声换能器、一个或多个成像器和/或配置为生成表示环境中对象的传感器数据集的任何传感器类型中的一个或多个获得。
在一些示例中,过程200可以包括在204处分割与对象相关联的传感器数据集的至少一部分。例如,可以将与感测到的对象相关联的传感器数据集传送到机器学习网络,例如被配置为运行传感器数据分割模型的分割网络,其对与该对象相关联的传感器数据进行分割。在一些示例中,该分割网络可以是本文描述的任何类型的网络。在206处,至少部分地基于分割的传感器数据,可以对感测到的对象进行分类。
在一些示例中,在对感测到的对象进行分类之后,在208处,过程200可以包括确定感测到的对象是否是动态的。例如,动态对象可以包括车辆、骑自行车的人、行人、动物等。如果在210处确定该对象是动态的,则过程200可包括例如从地图上省略感测到的对象,例如,如本文所述。此后,在212处,过程200可包括例如返回到202以重复过程200的一些或所有先前描述的部分。另一方面,如果感测到的对象不是动态的,则在214处,过程200可以包括例如将该对象添加到地图,例如,如本文所述。
在一些示例中,在216处,过程200可以包括将与感测到的对象相关联的语义添加(例如,自动添加)到地图。在一些示例中,该语义可以至少部分地基于与感测到的对象相关联的该分割的传感器数据。例如,语义可以包括与环境中的一个或多个对象(例如,建筑物、道路表面、人行道、障碍、植被(例如,树木和灌木丛)等)相关联的标签。在一些示例中,传感器数据特征,例如强度、RGB、分类等可以存储在地图中。
在一些示例中,在218处,过程200可以包括确定该感测到的对象是否潜在地是动态的,例如树或灌木,其可能在外观上改变(例如,尺度、形状、颜色、密度等)和/或位置随时间变化。因为此类对象可能会更改外观和/或位置,即使它们可能有助于确定位置和/或方位和/或用于导航,它们在此类确定中的重要性可能不如基于静态对象(例如路面、建筑物等)的确定可靠。
在一些示例中,在220处,如果感测到的对象被确定为潜在是动态的,当被车辆感知系统用来确定其姿态和/或导航车辆时,过程200可以例如将向下加权的值与该感测到的对象相关联,例如关于其影响。例如,当车辆102在稍后的时间穿过环境104并且试图在环境104内定位时,车辆102不那么严重地依赖于与向下加权的值相关联的对象进行定位。例如,如果对象是静态对象,则可以至少部分基于其对静态对象的识别,将权重与该对象相关联。但是,如果某个对象被确定为动态对象或潜在的动态对象,相对于与静态对象相关联的权重,不同的减小的权重(例如,“向下加权”的权重)可以与该动态或潜在动态对象相关联。与静态对象相比,在定位时,至少部分地基于该向下加权的权重,车辆102可以较少地依赖于该动态对象或潜在动态对象。该示例策略可以提高定位过程的准确性和/或速度。
此后,在222处,过程200可以返回到202,使得可以重复过程200的至少一部分。如果在220处确定感测到的对象不是潜在地动态的(例如,它是静态的),则在222处,过程200可以返回到202,并且可以重复过程200的至少一部分,例如,不对该感测到的对象进行向下加权。
在一些示例中,图1所示的示例过程100的至少一部分和图2所示的示例过程200的至少一部分可以被组合。例如,可以接收传感器数据集并且可以创建体素空间。此后,至少部分地基于该传感器数据集,在一些示例中,例如,如以上关于图1所描述的示例过程100所描述的,可以确定接地平面,并且可以识别体素空间中的空闲空间和对象。至少部分地基于这些确定,可以从地图上省略在该体素空间中标识的动态对象(例如,可以不将动态对象添加到正在创建的地图中,和/或可以从现有地图中移除动态对象)。另外,在一些示例中,传感器数据集的至少一部分可以例如通过包括使用被配置为分割传感器数据的传感器数据分割模型的传感器数据分割网络的机器学习网络来分割。与检测到的对象相关联的分割的传感器数据可以用于将这些对象分类,例如,可以是动态对象或静态对象,并且可以从地图上省略动态对象。这可以允许从地图上省略诸如停放的车辆,这可能仅使用相对于图1描述的示例过程100很难从地图上移除。在一些示例中,至少部分地基于与这些对象相关联的分割的传感器数据,与这些对象相关联的语义可以被添加到地图,例如,如以上关于图2的示例过程200所描述的。
图3示出了用于实现本文描述的过程的示例架构300。架构300可以包括一个或多个计算机系统302,该(些)计算机系统302包括各种硬件和/或软件以实现本文描述的系统、方法和装置的各方面。例如,该(些)计算机系统302可以包括LIDAR组件304、成像器组件306、RADAR组件308、SONAR组件310、定位组件312、体素空间组件314、动态对象确定组件316、光线投射组件318、跟踪组件320和计划组件322。
在一些示例中,计算机系统302可以被体现在自动驾驶车辆中。在一些示例中,计算机系统302可以为自动驾驶车辆提供感知和计划功能。通常,计算机系统302可以包括LIDAR感知、RADAR感知、视觉(成像器)感知、声学感知、分割和分类、跟踪和融合以及预测/计划。
LIDAR组件304可以包括一个或多个LIDAR传感器,其被配置为捕获LIDAR数据,如本文所述。LIDAR组件304可包括一个或多个深度传感器。在一些示例中,LIDAR组件304可以被配置为组合或合成来自多个LIDAR传感器的LIDAR数据以生成LIDAR数据的元自旋,其可以参考从多个LIDAR传感器获得的LIDAR数据。在一些示例中,LIDAR组件304可以被配置为确定元自旋数据的虚拟原点(例如,所有LIDAR传感器共有的坐标参考系)并执行数据变换,以使得相对于虚拟原点来表达来自一个或多个LIDAR传感器中的每一个的LIDAR数据。例如,LIDAR组件304可以被配置为捕获数据并且可以将数据集传送到计算机系统302以进行处理。
成像器组件306可以包括一个或多个成像器,该(些)成像器被配置为捕获用于图像分割和/或分类的视觉数据,例如,如本文所述,。成像器组件306可以包括任何数量和类型的图像传感器。例如,成像器组件306可以包括任何彩色相机、单色相机、深度相机、RGB-D相机、立体相机、红外(IR)相机、紫外线(UV)相机等。在一些示例中,成像器组件306可以被配置为捕获数据并且可以将数据集传送到计算机系统302以进行处理。例如,来自成像器组件306的数据可以被包括为多通道图像的一个或多个通道。
RADAR组件308可以包括一个或多个RADAR传感器,其被配置为捕获环境中对象的范围、角度和/或速度。在一些示例中,RADAR组件308可以被配置为捕获数据并且可以将数据集传送到计算机系统302以进行处理。例如,来自RADAR组件308的数据可以被包括为多通道图像的一个或多个通道。
SONAR组件310可以包括一个或多个扬声器或声音发射器以及一个或多个麦克风(例如,麦克风阵列),其被配置为捕获与环境中的对象相关联的声学信息。在一些示例中,SONAR组件310可以包括各种超声换能器。例如,SONAR组件310可以被配置为发出声音脉冲,并且可以监听回声以确定与环境中的对象相关联的位置和/或运动信息。在一些示例中,SONAR组件310可以被配置为捕获数据并且可以将数据集传送到计算机系统302以进行处理。例如,来自SONAR组件310的数据可以与来自LIDAR组件304的数据融合,以便更准确地分割对象和/或确定关于这些对象的信息。
例如,计算系统302可以包括适合于在自动驾驶车辆中使用的任何数量或类型的其他传感器。各种传感器可以包括但不限于超声换能器、车轮编码器、麦克风、惯性测量单元(IMU)、加速度计、陀螺仪、磁力计、温度传感器、湿度传感器、光传感器、全球定位系统(GPS)传感器等。
在一些示例中,LIDAR组件304、成像器组件306、RADAR组件308和/或SONAR组件310可以向计算机系统302提供一个或多个数据集,以用于组合和/或合成这些数据以进行改进的分割。
计算机系统302还可以包括已经由计算机模拟算法生成的模拟数据,以用于例如测试。在一些示例中,模拟数据可以包括任何类型的模拟数据,例如,成像器数据、LIDAR数据、RADAR数据、SONAR数据、惯性数据、GPS数据等。在一些示例中,计算机系统302可以被配置为对模拟数据修改、变换和/或执行本文描述的转换操作,例如,用于验证操作和/或训练机器学习算法,如本文所述。
在一些示例中,定位组件312可以被配置为从一个或多个传感器116接收数据并确定车辆102的位置。例如,定位组件312可以包括环境的三维地图并且可以连续地或间歇地确定自动驾驶车辆在地图中的位置。在一些示例中,定位组件312可以使用SLAM(同时定位和映射)或CLAMS(同时校准、定位和映射)来接收图像数据、LIDAR数据、RADAR数据、SONAR数据、IMU数据、GPS数据等以准确地确定自动驾驶车辆的位置。在一些示例中,定位组件312可以向车辆102的各个组件提供数据,以确定自动驾驶车辆的初始位置用于生成候选轨迹,例如,如本文所述。
体素空间组件314可以被配置为将数据转换或映射到体素空间。例如,体素空间组件314可以被配置为接收传感器数据集,诸如LIDAR数据、成像器数据、RADAR数据、SONAR数据等,并且将数据点映射、转换和/或关联到表示环境中的三维空间的体素空间。在一些示例中,体素空间组件314可以被配置为定义体素空间的尺度,包括体素空间的长度、宽度和高度。在一些示例中,体素空间组件314可以被配置为确定单个体素的尺度。在一些示例中,多个体素在整个体素空间中可以是均匀的尺度和形状,并且在一些示例中,多个体素的尺度和/或密度可以基于例如体素空间中的相对位置而变化。例如,体素的尺度可以与体素和体素空间的原点或中心之间的距离成比例地增加或减小。在一些示例中,体素空间组件314可以在虚拟原点和体素空间的原点之间执行变换。在一些示例中,体素空间组件314可以被配置为生成稀疏体素空间,该稀疏体素空间可以包括丢弃没有包括数据或者包括低于数据最小水平的数据量的体素。在一些这样的示例中,体素空间组件314可以包括八角形图,体素哈希等。在一些示例中,体素空间组件314可以被配置为通过例如在映射到体素空间时,过滤数据来减少数据中的噪声量。例如,过滤可以包括移除低于每个体素的最小数据量(例如,与一个体素相关联的多个LIDAR数据点)或超过预定数量的体素(例如,与多个邻近体素相关联的多个LIDAR数据点)的数据。在一些示例中,体素空间组件314可以被配置为随着时间的推移收集数据和/或响应于自动驾驶车辆在体素空间内操纵来更新体素空间。例如,当自动驾驶车辆在环境中操纵时,体素空间组件314可以向体素空间添加数据和/或从体素空间丢弃数据。
在一些示例中,体素空间组件314可以被配置为将体素空间初始化为空白空间,并且随着时间的推移捕获传感器数据集(例如,LIDAR数据)来建立对象的表示。在一些示例中,体素空间组件314可以被配置为例如利用全局地图数据来初始化体素空间,从而可以使用局部捕获的传感器数据集(例如,LIDAR数据)来在全局地图空间内定位自动驾驶车辆,并且可用于清理(或清除)全局地图的体素,例如,如此处所述。在一些示例中,体素表示可以例如通过使用移动立方体算法等而被转换为网格表示。
动态对象确定组件316可以被配置为在静态对象和动态对象之间进行区分。例如,动态对象确定组件316可以随时间推移而累积数据,以通过将第一时间的体素与随后时间的体素进行比较以确定体素的占用率是否随时间变化来确定对象的运动,例如,如本文所述。例如,如果体素在第一时间被对象占用并且在随后的时间未被该对象占用,则动态对象确定组件316可以被配置为确定该对象是动态对象。例如,动态对象确定组件316可以被配置为接收与体素空间相关联的传感器数据集,在第一时间识别在该体素空间的一个或多个体素内对象的存在,在随后的时间,对对象的存在的实例进行计数,且至少部分基于该对象的存在的实例大于实例的阈值数量,确定该对象是静态对象,例如,如本文所述。相反,如果动态对象确定组件316确定该一个或多个体素中该对象存在的实例小于该阈值,则动态对象确定组件316可以代替地确定该对象是动态对象,例如,如本文所述。在一些示例中,至少部分地基于随时间推移而被占用或未被占用的体素,动态对象确定组件316可被配置为确定该动态对象的运动,例如运动速度,包括速度和/或方向。
光线投射组件318可以被配置为与动态对象确定组件316协作,例如以区分静态对象和动态对象。在一些示例中,光线投射组件318可以被配置为随着数据在体素空间中累积而随时间的推移来清除该体素空间。例如,随着对象随时间的推移而在该体素空间内移动,动态对象所占用的体素可能随时间的推移而捕获数据。在一些示例中,光线投射组件318例如可以被配置为分析与传感器数据集(例如,LIDAR数据)相关联的光线的路径,以确定应当清除该光线传播通过的体素。以该示例方式,光线投射组件318可以被配置为确定在第一时间所占用的体素在一个或多个后续时间不被占用,例如可以将其提供给各个组件,并且确定对象是动态对象。在一些示例中,一个或多个计数器可以基于这些体素是否与数据相关联来递增或递减,并且阈值可以用于将未占用的体素标记为“空闲空间”,而将占用的体素标记为“非空闲空间”,例如,如关于图5所描述的。在一些示例中,可以以稀疏方式(例如,表示占用的体素并且不考虑未占用的体素)或以密集的方式(例如,不丢弃体素)来表示该体素空间。在一些示例中,光线投射组件318可以被配置为以密集的方式存储光线投射信息,例如,使得稀疏体素表示中不存在的体素(例如,因为体素不具有相关联的传感器数据集)与用于此类体素的光线投射信息相关联。例如,仍然可以在密集的体素空间中表示没有关联的传感器数据集的体素,以包括关联的光线投射信息。在一些这样的示例中,密集体素表示可以将正信息与体素相关联(例如,体素未被占用),至少部分地响应于本文所讨论的光线投射操作。在一些示例中,由于相对于单个体素累积了传感器数据集,因此负信息可以与这些单个体素相关联,例如,指示它们被静态对象占用。随着数据随着时间的推移而累积,例如可以部分地汇总该信息,以确定一体素表示开放空间还是静态对象。在一些示例中,光线投射组件318可以被配置为例如通过将局部捕获的传感器数据集与全局地图数据进行比较来实现清理全局地图,如本文所述。
跟踪组件320可以被配置为接收一个或多个动态对象的通知并执行附加处理以便跟踪动态对象。例如,跟踪组件320可以被配置为确定动态对象的速度,包括其速度和/或轨迹,和/或存储动态对象随时间推移的轨迹。在一些示例中,跟踪组件320可以包括预测算法,该预测算法可以基于例如对象的先前运动、对象的分类类型、被训练以识别特定行为的机器学习算法等来预测被跟踪的对象的路径。
计划组件322可以被配置为接收分割的数据和/或接地平面、静态对象和/或动态对象的指示,例如以帮助确定自动驾驶车辆的轨迹。例如,计划组件322可以被配置为接收识别接地平面和一个或多个对象的分割信息,并且可以生成供自动驾驶车辆跟随的轨迹。如上所述,这样的计划模块可以根据后退视界技术重复地产生多个轨迹,并选择具有最高置信度的一条轨迹供自动驾驶车辆行驶。
人工神经网络(ANN)可能是一种受生物学启发的算法,该算法将输入数据通过一系列连接的层传递以产生输出。神经网络的一个示例可以包括卷积神经网络或CNN。CNN中的每个层还可以包含另一个CNN,或者可以包含任意数量的层。如在本公开的上下文中可以理解的,神经网络可以使用机器学习,机器学习可以指的是这类算法的广泛类别,其中基于学习的参数生成输出。
尽管在神经网络的上下文中进行了讨论,但是可以根据本公开使用任何类型的机器学习。例如,机器学习算法可以包括但不限于回归算法(例如,普通最小二乘回归(OLSR)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(MARS)、局部估计的散点图平滑(LOESS)),基于实例的算法(例如,岭回归、最小绝对收缩和选择算子(LASSO)、弹性网、最小角度回归(LARS)),决策树算法(例如,分类和回归树(CART)、迭代二分法器3(ID3)、卡方自动交互检测(CHAID)、决策树桩、条件决策树)),贝叶斯算法(例如朴素贝叶斯、高斯朴素贝叶斯、多项式朴素贝叶斯、平均单一依赖估计量(AODE)、贝叶斯信念网络(BNN)、贝叶斯网络),聚类算法(例如k-均值、k-中值、期望最大化(EM)、分层聚类),关联规则学习算法(例如感知、反向传播、霍普菲尔网络、径向基函数网络(RBFN)),深度学习算法(例如深玻耳兹曼机器(DBM)、深度信念网络(DBN)、卷积神经网络(CNN)、堆叠式自动编码器),维数缩减算法(例如,主成分分析(PCA)、主成分回归(PCR)、偏最小二乘回归(PLSR)、萨蒙映射、多维标度(MDS)、投影追踪、线性判别分析(LDA)、混合判别分析(MDA)、二次判别分析(QDA)、灵活判别分析(FDA)),集成算法(例如,增强、自举聚合(装袋)、AdaBoost、堆叠泛化(混合)、梯度提升机(GBM)、梯度增强回归树(GBRT)、随机森林),支持向量机(SVM)、有监督学习、无监督学习、半监督学习等。
在一些示例中,可以使用一种以上类型的机器学习来为所使用的每种类型的机器学习提供各自的结果。在一些示例中,置信度得分可以与每个结果相关联,并且所依赖的结果可以至少部分地基于与该结果相关联的置信度得分。例如,可以在其他结果上选择与最高置信度得分关联的结果,或者可以基于置信度得分,例如基于统计方法,例如加权平均值等,将这些结果进行组合。
图4示出了示例性光线投射过程400,其由第一示意图402和第二示意图404所描绘,第二示意图404提供了对第一示意图402的更详细描述。如图4所示,光线投射过程400可以用于确定在第一时间T1处对象所占用的体素在随后的第二时间T2处是否不再被占用。例如,传感器406(例如,LIDAR传感器)可以捕获由第一矢量408表示的传感器数据集,以识别和/或分割第一对象410。在后续第二时间T2,传感器406可以捕获表示为第二矢量412的传感器数据集,以识别和/或分割第二对象414,该第二对象414可以例如对应于墙壁或建筑物。在一些示例中,光线投射过程400可以包括确定第二矢量412穿过的体素空间418的体素416,以确定传感器406和第二对象414之间的体素416未被占用。
如图4的分解图所示,第二矢量412被示为源自传感器406并且穿过体素空间418的多个体素416以捕获与第二对象414相关联的传感器数据集。第二矢量412与第二时间T2相关联,在所示的示例中,到第二时间T2时,第一对象410已经从第一时间T1的第一位置420移动到与对象410’相关联的第二时间T2的第二位置420’。如示意性地描绘的,第二矢量412穿过体素422、424、426、428和430,这些体素先前在时间T1处被表示第一对象410的数据占用。在一些示例中,光线投射过程400还可包括确定第二矢量412穿过的一些或全部体素,以确定先前占用的体素422、424、426、428和430在第二时间T2不再被占用。以这种示例方式,例如,如图4所示,图4中所示的光线投射过程400提供了用于确定第一对象410和410′是动态对象的示例技术,例如,如本文所述。
在一些示例中,光线投射过程400可以被配置为例如在随后的时间清除体素422、424、426、428和430,如本文所述。在一些这样的示例中,本文描述的技术可以用于随着时间的推移而更新该体素空间的状态,以及时减少在瞬间保持的数据量,以及改善在体素空间418中检测和分割动态对象的操作。这可以实现计算机处理和/或内存使用的相对减少。
在一些示例中,光线投射过程400可以用于将局部捕获的传感器数据集与先前捕获的全局地图数据进行比较。例如,第一对象410可以对应于全局地图数据中表示的对象。然而,如果第二矢量412穿过表示对象410的该一个或多个体素,则当第二矢量412表示局部捕获的传感器数据集时,示例过程400可以用于确定全局地图和局部地图之间存在差异。在一些示例中,该差异可以指示该全局地图不正确或者环境状态已经改变(例如,物理世界已经通过例如移除树或障碍物而改变)。以这种示例方式,当确定了全局地图和局部获得的传感器数据集之间的差异时,可以将这些差异传达给例如中央服务器,以将其合并到全局地图数据中(例如,如果差异通过共识(例如,通过重复观察相同或相似的事件或数据)进行了验证,或者与传感器数据集相关联的置信度高于最小量)。更新的全局地图可以被分配给其他用户,例如第三方和/或其他车辆。
图5是示出递增计数器以确定“空闲空间”的示例和递减计数器以确定“非空闲空间”的示例的图。如图5所示,可以将计数器与阈值进行比较,以确定是否应将该体素空间的一体素标记为“空闲空间”,该空闲空间与在与该体素相关联的位置上没有对象存在相一致,或者标记为“非空闲空间”,这与例如该体素被对象占用相一致。尽管图5描述了使用示例性计数器递增和/或递减策略来确定“空闲空间”或“非空闲空间”的示例性实现方式,但是可以想到其他策略。可以例如通过对所观察的体素随时间的聚合数据进行观察来做出“空闲空间”或“非空闲空间”的确定,其可以结合各种算法或机器学习模型。递增或递减与体素关联的计数器仅仅是完成“空闲空间”或“非空闲空间”确定的一种示例机制。
在图5所示的示例中,曲线图500包括与递增计数器以将一体素标记为与该体素相关的“非空闲空间”的示例相关联的第一行502。如图所示,每当随时间推移检测到对象的存在,与体素相关联的计数器就会递增,直到计数器在504处达到第一阈值为止,在此示例中,在5的点处将该体素标记为“非空闲空间”。可以设想其他阈值,例如本文前面提到的那些阈值。在一些示例中,计数器可以适当地随时间继续递增。在一些示例中,一旦计数器达到第一阈值,它就可以停止递增。示例图500还包括第二行506,其与递减计数器以将体素标记为“空闲空间”的示例相关联。如图所示,每当随着的时间的推移未检测到对象的存在时,与该体素相关联的计数器就递减,直到在508处该计数器达到第二阈值(在本示例中为0)。在一些示例中,一旦计数器达到第二阈值,它就可以停止递减。在该示例方式中,磁滞可以用于将体素标记为“空闲空间”或“非空闲空间”。如图5所示,这样的过程也可以通过反转递增和递减来实现,使得当数据与体素相关联时计数器递减,而当光线投射穿过该体素时计数器递增。
在各种实施方式中,本文所示的参数值和其他数据可以被包括在一个或多个数据存储中,并且可以与未描述的其他信息组合,或者可以被不同地划分为更多、更少或不同的数据结构。在一些实施方式中,数据存储可以物理地位于一个内存中或者可以分布在两个或更多内存中。
本领域技术人员将理解,示例架构300(参见图3)仅是说明性的,并不旨在限制本公开的范围。特别地,计算系统和设备可以包括可以执行所指示的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、平板计算机、PDA、无线电话、寻呼机等。架构300也可以连接到未图示的其他设备,或者可以作为独立系统运行。另外,在一些实施方式中,由所示出的组件提供的功能可以在更少的组件中组合或分布在另外的组件中。类似地,在一些实施方式中,可能不提供一些所示组件的功能和/或其他附加功能可能是可用的。
本领域技术人员还将理解,尽管示出了各种项目在使用时被存储在内存或存储器中,但是出于存储器管理和数据完整性的目的,这些项目或它们的一部分可以在内存和其他存储设备之间转移。可选地,在其他实施方式中,一些或全部软件组件可以在另一设备上的内存中执行并与所示的架构300通信。一些或全部系统组件或数据结构(例如,作为指令或结构化数据)也可以被存储在非暂时性计算机可访问介质或便携式物品上,以由适当的驱动器读取,上面描述了其各种示例。在一些实施方式中,可以将存储在与架构300分离的计算机可访问介质上的指令经由传输介质或经由诸如无线链路之类的通信介质传达的信号(诸如电、电磁或数字信号)传输至架构300。各种实施方式可以进一步包括在计算机可访问介质上接收、发送或存储根据前述描述实现的指令和/或数据。因此,本文描述的技术可以与其他控制系统配置一起实践。
图6和图7是示出为逻辑流程图中的方框的集合的示例过程的流程图,其表示可以以硬件、软件或其组合来实现的一系列操作。在软件的背景中,这些方框表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述的这些操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的方框以实现这些处理。
图6是用于更新地图,例如创建地图和/或改变现有地图的示例过程600的流程图。在602处,示例过程600可以包括在第一时间接收表示环境的第一传感器数据集。例如,传感器可以是LIDAR传感器,并且传感器数据集可以包括LIDAR传感器数据。可以考虑来自此类传感器的其他传感器类型和数据集,例如但不限于RADAR传感器、SONAR传感器、超声换能器、图像传感器等。
在604处,示例过程600还可以包括根据多个分类来分割该第一传感器数据集。例如,该多个分类可以包括车辆、行人或骑自行车的人中的一个或多个,并且过程600可以包括从该第一传感器数据集中去除与该多个分类的子集相关联的数据。在一些示例中,该多个分类的子集可以与动态对象或潜在的动态对象相关联,并且过程600可以包括在第一传感器数据集中检测感测到的对象,并且将感测到的对象分类为该多个分类的子集之一。可以考虑其他分类。在一些示例中,该分割可以包括将该第一传感器数据集传送到机器学习模型(例如,本文描述的机器学习模型),以及从该机器学习模型接收分割信息,尽管任何其他分割过程是可以设想的。在606处,例如,如本文所述,过程600可包括将该第一传感器数据集与包括多个体素的体素空间相关联。
在一些示例中,过程600在608处可以包括至少部分地基于该第一传感器数据集来更新与这些体素相关联的占用状态。这可以包括例如至少部分地基于该第一传感器数据集来更新(例如,递增和/或递减)与这些体素相关联的一个或多个计数器,例如,如本文关于图5所描述的。
在过程600的一些示例中,在610处,它可以包括在随后的一个或多个时间接收表示环境的一个或多个附加传感器数据集。在612处,过程600还可包括根据该多个分类对该一个或多个附加传感器数据集进行分割,例如根据本文所述。在614处,根据一些示例,过程600可以包括将该一个或多个附加传感器数据集与该体素空间相关联,并且在616处,至少部分地基于该一个或多个附加传感器数据集来更新与这些体素相关联的占用状态,在一些示例中,这包括至少基于该一个或多个附加传感器数据集来更新(例如,递增和/或递减)一个或多个计数器。
在618处,过程600可包括例如至少部分地基于该一个或多个计数器达到或超过一个或多个阈值来更新包括该体素空间的地图,例如,如本文所述,以指示该体素是空闲空间(被占用)或非空闲空间(未被占用)。在过程600的一些示例中,更新地图可以包括将该第一传感器数据集和该一个或多个附加传感器数据集的语义信息添加到地图。在一些示例中,过程600可以进一步包括:至少部分地基于地图确定车辆的位置或方位中的一个或多个,基于车辆的位置或方位中的一个或多个生成用于操纵车辆的一个或多个轨迹,并且在一些示例中,至少部分地基于该一个或多个轨迹来操纵车辆。
图7是用于更新地图(例如,创建地图和/或改变现有地图)的示例过程700的流程图。如本文所述,示例过程600的至少一部分可以与示例过程700的至少一部分组合。
在702处,示例过程700可以包括接收表示环境的传感器数据集。例如,本文描述的任何类型的传感器中的一个或多个可以生成该传感器数据集。在704处,示例过程700可以包括例如至少部分地基于所接收的传感器数据集来识别感测到的对象,例如,如本文所述。
在706处,示例过程700可以包括对该传感器数据集进行分割以获得与感测到的对象相关联的分割的传感器数据。例如,该传感器数据集可以通过例如本文描述的的使用机器学习的过程来分割。在708处,示例过程700还可包括至少部分地基于该分割的传感器数据将该感测到的对象分类为动态对象或潜在动态对象之一。
在对该对象进行分类之后,在710处,示例过程700可以包括确定该对象是否为动态对象。如果该对象是动态对象,则在712处,过程700可以包括确定在地图(诸如正在创建的地图或现有地图)中不包括与该对象相关联的数据。在一些示例中,此后,过程700可以包括返回到702处以重复至少一些上述动作。另一方面,如果该对象不是动态的,则在714处,过程700可以包括将该对象添加到地图,例如,如本文所述。
在一些示例中,在716处,示例过程700可包括例如将与该对象相关联的语义信息添加到地图,例如,如本文所述。作为非限制性示例,对象分类可以与一个或多个体素的每一个相关联。
在718处,示例过程700可以包括确定该所感测的对象是否是潜在动态的。例如,该感测到的对象可以是诸如树木或灌木丛的植被,其可以随着时间推移而改变外观和/或位置。如果该感测到的对象是潜在动态的,则在720处,该过程700可以包括将向下加权的值与地图中该感测到的对象相关联,例如,当自动驾驶车辆基于由其传感器和地图生成的传感器数据集确定其局部姿态时,可以使用该向下加权的值。例如,一值可以与地图中的一相应对象相关联,并且该值可以与用于定位自动驾驶车辆的相对权重相关联。例如,潜在动态对象可能与一值相关联,而该值低于与静态对象相关联的值,并且用于确定局部姿态的算法可以在确定该局部姿态时使用这些值(例如,减少对权重较低的数据的依赖程度)。以该示例方式,这些值可以提高局部姿态确定的准确性。例如,与静态对象(例如道路表面、路边、建筑物等)相比(其可具有比该向下加权的值相对更高的值),与一对象相关联的向下加权的值在确定姿态和/或导航期间的相对影响可被减小。如果感测到的对象不是潜在动态的,则此后,在一些示例中,过程700可以包括返回到702处以重复至少一些上述动作。
图8是用于实现本文描述的过程的示例计算机架构800的框图。该示例架构800包括一个或多个计算机系统802,其可以包括存储器804、一个或多个处理器806,以及包括操作系统810的内存808。存储器804、处理器806、内存808和操作系统810可以在通信基础设施812上被通信地耦合。在一些示例中,计算机系统802可以经由输入/输出(I/O)设备814与用户或环境交互,以及经由通信基础设施812与在一个或多个网络716上的一个或多个其他计算设备交互。操作系统810可与其他组件交互以控制内存808中的一个或多个应用程序818。
在一些示例中,计算机系统802可以对应于图3的计算机系统302。计算机系统302可以实施任何硬件和/或软件以实施组件304-322以执行一个或多个此处讨论的过程。
本文描述的系统和方法可以软件或硬件或其任何组合来实现。可以使用一个或多个物理上或逻辑上彼此分离或不分离的计算设备来实现本文所述的系统和方法。该方法可以由被布置为内部部署硬件、内部部署虚拟系统或托管私有实例的组件执行。另外,本文描述的方法的各个方面可以被组合或合并为其他功能。
处理器或计算机系统可以被配置为特别地执行本文描述的一些或全部方法。在一些示例中,这些方法可以由一个或多个计算机或处理器部分或完全自动化。可以使用硬件、软件、固件或其组合来实现本文描述的系统和方法(或其任何部分或功能),并且可以在一个或多个计算机系统或其他处理系统中实现。在一些示例中,示出的系统元件可以被组合成单个硬件设备或被分离成多个硬件设备。如果使用多个硬件设备,则这些硬件设备可以物理上彼此靠近或远离。所描述和示出的方法的示例旨在是说明性的而不是限制性的。例如,这些方法的一些或全部步骤可以在不同的示例中被组合、重新布置和/或省略。
在一些示例中,本文描述的系统和方法可以针对能够执行本文描述的功能的一个或多个计算机系统。示例计算设备可以是但不限于运行任何操作系统(例如但不限于OSXTM、iOSTM、LinuxTM、AndroidTM和MicrosoftTM、WindowsTM)的个人计算机(PC)系统。然而,本文描述的系统和方法可能不限于这些平台。而是,可以在运行任何适当的操作系统的任何适当的计算机系统上实现本文描述的系统和方法。本文描述的系统和方法的其他组件,例如但不限于计算设备、通信设备、移动电话、智能手机、电话设备、电话、个人数字助理(PDA)、个人计算机(PC)、手持式PC、交互式电视(iTV)、数字录像机(DVD)、客户端工作站、瘦客户端、胖客户端、代理服务器、网络通信服务器、远程访问设备、客户端计算机、服务器计算机、路由器、Web服务器、数据、介质、音频、视频、电话或流技术服务器等也可以使用计算设备来实现。可以使用例如但不限于交互式电视(iTV)、视频点播系统(VOD)并通过数字视频记录器(DVR)或其他点播观看系统按需提供服务。
本文描述的系统可以包括一个或多个处理器。该(些)处理器可以连接到通信基础设施,例如但不限于通信总线、交叉条或网络等。这些过程和处理器不必位于相同的物理位置。换句话说,可以通过例如LAN或WAN连接在一个或多个地理上相距较远的处理器处执行处理。计算设备可以包括显示接口,该显示接口可以转发来自通信基础设施的图形、文本和其他数据,以在显示单元上显示。
在一些示例中,计算机系统还可以包括但不限于主存储器、随机存取存储器(RAM)和辅助存储器等。辅助存储器可以包括例如硬盘驱动器和/或可移动存储驱动器,例如光盘驱动器CD-ROM等。该可移动存储驱动器可以从可移动存储单元读取和/或写入可移动存储单元。可以理解,该可移动存储单元可以包括其中存储有计算机软件和/或数据的计算机可用存储介质。在一些示例中,机器可访问介质可以指用于存储可由计算机访问的数据的任何存储设备。机器可访问介质的示例可以包括但不限于磁性硬盘;软盘;光盘,至少类似于光盘只读存储器(CD-ROM)或数字多功能光盘(DVD);磁带和/或内存芯片等。
该处理器还可包括一个或多个用于存储数据的数据存储设备,或者可操作地与其耦合以与之通信。作为非限制性示例,这种数据存储设备可以包括磁盘(包括内部硬盘和可移动磁盘)、磁光盘、光盘、只读存储器、随机存取存储器和/或闪存。适用于有形地体现计算机程序指令和数据的存储设备还可以包括所有形式的非易失性存储器,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。处理器和存储器可以由ASIC(专用集成电路)补充或并入其中。
处理系统可以与计算机化数据存储系统通信。数据存储系统可以包括非关系或关系数据存储,例如MySQLTM或其他关系数据库。可以使用其他物理和逻辑数据库类型。数据存储可以是数据库服务器,例如Microsoft SQL ServerTM、OracleTM、IBM DB2TM、SQLITETM或任何其他关系或非关系的数据库软件。该数据存储可以存储识别语法标签的信息以及对语法标签进行操作所需的任何信息。在一些示例中,处理系统可以使用面向对象的编程并且可以将数据存储在对象中。在这样的示例中,处理系统可以使用对象关系映射器(ORM)将数据对象存储在关系数据库中。可以使用任何数量的物理数据模型来实现本文描述的系统和方法。在一些示例中,可以使用关系数据库管理系统(RDBMS)。在这样的示例中,RDBMS中的表可以包括表示坐标的列。数据可以存储在RDBMS中的表中。这些表之间可能具有预先定义的关系。这些表还可以具有与坐标关联的附件(adjuncts+)。
在一些示例中,辅助存储器可以包括用于允许将计算机程序或其他指令加载到计算机系统中的其他类似设备。这样的设备可以包括例如可移动存储单元和接口。这样的示例可以包括程序盒和盒接口(例如但不限于在视频游戏设备中发现的程序盒和盒接口)、可移动存储芯片(例如但不限于可擦可编程只读存储器(EPROM)或可编程只读存储器(PROM)和相关的插槽),以及其他可移动存储单元和接口,它们可以允许将软件和数据从可移动存储单元传输到计算机系统。
该计算系统还可包括输入设备,例如但不限于语音输入设备,例如麦克风、触摸屏、手势识别设备(例如照相机)、其他自然用户界面、鼠标或其他指向设备,例如数字转换器、键盘或其他数据输入设备。该计算机系统还可以包括输出设备,例如但不限于显示器和显示接口。该计算系统可以包括输入/输出(I/O)设备,例如但不限于通信接口、电缆和通信路径等。这些设备可以包括但不限于网络接口卡和调制解调器。通信接口可以允许软件和数据在计算机系统和一个或多个外部设备之间传输。
在一些示例中,计算机系统可以可操作地耦合到汽车系统。这样的汽车系统可以是手动操作的、半自主的或完全自主的。在这样的示例中,输入和输出设备可以包括一个或多个图像捕获设备、控制器、微控制器和/或其他处理器,以控制汽车功能,例如但不限于加速、制动和转向。此外,在这样的示例中的通信基础设施还可以包括控制器局域网(CAN)总线。
在一些示例中,计算机系统可以可操作地耦合到任何基于机器视觉的系统。例如,这样的基于机器视觉的系统可以包括但不限于手动操作、半自主的或完全自主的工业或农业机器人、家用机器人、检查系统、安全系统等。例如,本文描述的示例不限于一个特定的上下文,并且可以适用于利用机器视觉的任何应用。
可以在一个或多个计算机网络的环境中实践一些示例。该网络可以包括专用网络或公共网络(例如,互联网)、或两者的组合。该网络可以包括硬件、软件或两者的组合。
从面向电信的角度看,网络可以描述为一组由通信设施互连的硬件节点,在每个节点运行一个或多个进程(硬件、软件或其组合)。这些进程可以使用进程间通信路径经由它们之间的通信路径相互通信并交换信息。在这些路径上,可以使用适当的通信协议。
示例计算机和/或电信网络环境可以包括节点,这些节点可以包括硬件、软件或硬件和软件的组合。这些节点可以经由通信网络互连。每个节点可以包括一个或多个可由结合在这些节点中的处理器执行的进程。例如,单个进程可以由多个处理器运行,或者多个进程可以由单个处理器运行。另外,每个节点可以提供网络和外部世界之间的接口点,并且可以合并子网的集合。
在一些示例中,这些进程可以通过进程间通信路径彼此通信,该进程间通信路径支持通过任何通信协议的通信。这些路径可以依次或平行、连续或间歇地起作用。除了许多计算机使用的标准并行指令集之外,这些路径还可以使用本文中针对通信网络描述的任何通信标准、协议或技术。
这些节点可以包括能够执行处理功能的任何实体。可以与本文的示例一起使用的此类节点的示例可以包括计算机(例如个人计算机、工作站、服务器或大型机)、手持无线设备和有线设备(例如个人数字助理(PDA)、具有处理功能的调制解调器手机、无线电子邮件设备(包括但不限于BlackBerryTM设备)、文档处理设备(例如扫描仪、打印机、传真机或多功能文档机)或复杂实体(例如局域网或广域网),如所描述的,处理器的集合连接到此类节点。例如,一节点本身可以是广域网(WAN)、局域网(LAN)、专用网络(例如虚拟专用网络(VPN))或网络集合。
这些节点之间的通信可以通过通信网络来实现。一节点可以连续或间断地与通信网络连接。作为示例,该通信网络可以是提供足够的带宽和信息安全性的数字通信基础设施。
使用任何类型的标准、协议或技术,该通信网络可以包括在任何频率的有线通信能力、无线通信能力或两者的组合。另外,在一些示例中,该通信网络可以是专用网络(例如,VPN)或公共网络(例如,互联网)。
通信网络使用的示例性无线协议和技术的非包容性性列表可以包括BluetoothTM、通用分组无线服务(GPRS)、蜂窝数字分组数据(CDPD)、移动解决方案平台(MSP)、多媒体消息收发(MMS)、无线应用协议(WAP)、码分多址(CDMA)、短消息服务(SMS)、无线标记语言(WML)、手持设备标记语言(HDML)、无线二进制运行时环境(BREW)、无线电访问网络(RAN)和分组交换核心网络(PS-CN)。还包括各代无线技术。作为一个示例,通信网络使用的主要有线协议和技术的非包容性列表包括异步传输模式(ATM)、增强型内部网关路由协议(EIGRP)、帧中继(FR)、高级数据链路控制(HDLC)、互联网控制消息协议(ICMP)、内部网关路由协议(IGRP)、网络分组交换(IPX)、ISDN、点对点协议(PPP)、传输控制协议/互联网协议(TCP/IP)、路由信息协议(RIP)和用户数据报协议(UDP)。可以使用任何其他已知或预期的无线或有线协议和技术。
本文公开的示例可以包括用于执行本文描述的操作的装置。可以为期望的目的而专门构造设备,或者可以包括通过存储在设备中的程序选择性地激活或重新配置的通用设备。
一些示例可以体现在机器可执行指令中。这些指令可用于使处理设备(其用指令被编程),例如通用或专用处理器,来执行本文描述的过程的步骤。可替代地,本文描述的这些步骤可以由包含用于执行这些步骤的硬连线逻辑的特定硬件组件来执行,或者由编程的计算机组件和定制硬件组件的任意组合来执行。例如,如上所述,可以将本文描述的系统和过程提供为计算机程序产品。一些示例可以包括其上存储有指令的机器可读介质。这些指令可用于对任何一个或多个处理器(或其他电子设备)进行编程以执行根据本文所述示例的过程或方法。另外,一些示例可以被下载并存储在计算机程序产品上。在这样的示例中,程序可以经由通信链路(例如,调制解调器或网络连接)通过包含在载波或其他传播介质中的数据信号从远程计算机(例如,服务器)传输到请求计算机(例如,客户端),最终这些信号可以存储在计算机系统上,以供后续执行。
可以在可从计算机可用或计算机可读存储介质访问的计算机程序产品中实现这些过程,该计算机可用或计算机可读存储介质提供了供计算机或任何指令执行系统使用或与其结合使用的程序代码。计算机可用或计算机可读存储介质可以是能够包含或存储由计算机或指令执行系统、设备或装置使用或与其结合使用的程序的任何设备。
适用于存储和/或执行相应程序代码的数据处理系统可以包括至少一个直接或间接耦合到计算机化数据存储设备(例如存储元件)的处理器。输入/输出(I/O)设备(包括但不限于键盘、显示器、指示设备等)可以耦合到该系统。网络适配器也可以耦合到该系统,以使数据处理系统能够通过中间的专用或公共网络耦合到其他数据处理系统或远程打印机或存储设备。为了提供与用户的交互,可以在具有显示设备,例如LCD(液晶显示器),或另一种用于向用户显示信息的监视器,以及键盘和输入设备(例如鼠标或轨迹球)的计算机上实现这些功能,通过上述设备用户可以向计算机提供输入。
计算机程序可以是可以在计算机中直接或间接使用的一组指令。可以使用诸如CUDA、OpenCL、FlashTM、JAVATM、C++、C、C#、Python、Visual BasicTM、JavaScriptTMPHP、XML、HTML等的编程语言或编程语言的组合(包括编译或解释的语言)来实现本文描述的系统和方法,并且可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。该软件可以包括但不限于固件、常驻软件、微代码等。诸如SOAP/HTTP的协议可以用于实现编程模块之间的接口。可以使用适合于软件开发的任何编程语言(包括但不限于Microsoft WindowsTM、AppleTMMacTM、iOSTM、UnixTM/X-WindowsTM、LinuxTM等不同版本)在虚拟化或非虚拟化环境中执行的任何桌面操作系统上实现本文所述的组件和功能。可以使用Web应用程序框架(例如Ruby on Rails)来实现该系统。
用于执行指令程序的合适处理器包括但不限于通用和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器或核中的一个。处理器可以从计算机化的数据存储设备(例如,只读存储器、随机存取存储器、两者或本文所述的数据存储设备的任意组合)接收并存储指令和数据。处理器可以包括可操作以控制电子设备的操作和性能的任何处理电路或控制电路。
可以使用软件或硬件元件的任何组合来实现本文描述的系统、组件和方法。可以使用单独运行或彼此组合运行的一个或多个虚拟机来实现本文所述的系统、组件和方法。任何可应用的虚拟化解决方案都可以用于将物理计算机平台封装到虚拟机中,该虚拟机在硬件计算平台或主机上运行的虚拟化软件的控制下被执行。虚拟机可能同时具有虚拟系统硬件和客户操作系统软件。
本文描述的系统和方法可以在计算机系统中实现,该计算机系统包括后端组件(例如数据服务器),或者包括中间件组件(例如应用程序服务器或互联网服务器),或者包括前端组件(例如具有图形用户界面或互联网浏览器的客户端计算机),或它们的任意组合。系统的组件可以通过诸如通信网络之类的数字数据通信的任何形式或介质来连接。通信网络的示例包括例如LAN、WAN以及形成互联网的计算机和网络。
本公开的一个或多个实施例可以与其他计算机系统配置一起实践,包括手持式设备、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等。本文所述的系统和方法也可以在分布式计算环境中实践,其中任务由通过网络链接的远程处理设备执行。
应当理解,本文提出的主题可以被实现为计算机过程、计算机控制的装置、计算系统或诸如计算机可读存储介质之类的制品。尽管本文描述的主题是在一个或多个计算设备上执行的程序组件的一般背景中呈现的,但本领域技术人员将认识到,可以结合其他类型的程序组件来执行其他实现。通常,程序组件包括例程、程序、组件、数据结构以及执行特定任务或实现特定抽象数据类型的其他类型的结构。
本领域技术人员还将意识到,本文描述的主题的各方面可以在本文描述之外的其他计算机系统配置上实践或与其结合实践,这些其他计算机系统配置包括多处理器系统,基于微处理器或可编程的消费电子产品、小型计算机、大型计算机、手持式计算机、移动电话设备、平板计算设备、专用硬件设备、网络设备等。
基于前述,应当理解,本文已经提出了用于操作该系统和实现这些过程的技术。而且,尽管已经用计算机结构特征、方法学行为和计算机可读介质专用的语言描述了本文提出的主题,但是应该理解,所附权利要求书中定义的本发明不必限于此处描述的这些特定的特征、行为、或介质。相反,公开了这些特定的特征、动作和介质作为实现权利要求中记载的主题的示例形式。
上面描述的主题仅通过示例的方式提供,并且不应解释为限制性的。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实施方式。可以在不遵循所图示和描述的示例和应用并且不背离在所附权利要求中阐述的本发明的精神和范围的情况下,对本文描述的主题进行各种修改和改变。
条款示例
A.一个示例系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,通信地耦合到所述一个或多个处理器并存储由所述一个或多个处理器可执行的指令以使得:
在第一时间接收表示环境的第一传感器数据集;
根据多个分类对所述第一传感器数据集进行分割;
将所述传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述第一传感器数据集,更新与所述体素相关联的一个或多个计数器;
在一个或多个附加时间接收表示所述环境的一个或多个附加传感器数据集;
根据所述多个分类对所述一个或多个附加传感器数据集进行分割;
将所述一个或多个附加传感器数据集与所述体素空间相关联;
至少部分地基于所述一个或多个附加传感器数据集来更新所述一个或多个计数器;以及
至少部分地基于所述一个或多个计数器达到或超过第一阈值,更新包括所述体素空间的地图。
B.示例A的系统,其中:
所述多个分类包括车辆、行人或骑自行车的人中的一个或多个;以及
所述指令由所述一个或多个处理器进一步可执行以使得:
从所述第一传感器数据集和所述一个或多个附加传感器数据集中移除与所述多个分类的子集相关联的数据。
C.示例A或B的系统,其中分割所述第一传感器数据集和所述一个或多个附加传感器数据集包括:
将所述一个或多个传感器数据集作为输入传递到机器学习模型中;以及
从所述机器学习模型中接收分割的传感器数据。
D.示例A至示例C中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以使得:
将所述一个或多个附加数据集作为一或多个光线而光线投射到所述体素中;
确定所述一个或多个光线穿过的一个或多个穿过体素;
更新与所述穿过体素相关联的所述一个或多个计数器;以及
确定与所述穿过体素相关联的所述一个或多个计数器未达到或未超过第二阈值;以及
将所述一个或多个穿过体素关联为未占用的体素。
E.示例A到示例D中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以使得:
分割所述一个或多个附加传感器数据集的第二传感器数据集;
确定所述第二传感器数据集中的第一对象;
至少部分地基于所述分割的第二传感器数据集,确定所述第一对象是静态对象,所述第一对象与第一分类相关联;
确定与所述第一对象相关联的第一权重;
确定所述分割的第二传感器数据集中的第二对象;
至少部分地基于所述分割的第二传感器数据集,确定所述第二对象是动态对象或潜在动态对象,所述第二对象与所述第二分类相关联;以及
确定与所述第二对象相关联的第二权重,所述第二权重低于所述第一权重。
F.示例A到示例E中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以将语义信息与所述地图相关联。
G.示例A到示例F中任一项所述的系统,其中接收所述第一传感器数据集包括从光检测和测距(LIDAR)传感器、无线电检测和测距(RADAR)传感器、声音导航和测距(SONAR)传感器或一个或多个成像器中的一个或多个中接收所述第一传感器数据集。
H.示例A到示例G中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以使得:
在第三时间接收所述一个或多个附加传感器数据集中的第三传感器数据集;
根据所述多个分类对所述第三传感器数据集进行分割;
通过从所述第三传感器数据集中移除与所述分类的子集相关联的数据来创建数据子集;以及
至少部分地基于所述地图和所述传感器数据子集对自动驾驶车辆进行定位。
I.一种示例方法包括:
从一个或多个传感器接收表示环境的第一传感器数据集;
根据多个分类对所述第一传感器数据集进行分割;
将所述第一传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述第一传感器数据集,更新与所述体素相关联的占用状态;
接收表示所述环境的一个或多个附加传感器数据集;
根据所述多个分类对所述一个或多个附加传感器数据集进行分割;
将所述一个或多个附加传感器数据集与所述体素空间相关联;
至少部分地基于所述一个或多个附加传感器数据集,更新与所述体素相关联的占用状态;以及
至少部分地基于与所述体素相关联的占用状态来更新包括所述体素空间的地图。
J.示例I的方法,其中所述多个分类包括车辆、行人或骑自行车的人中的一个或多个,所述方法还包括:
从所述第一传感器数据集和所述一个或多个附加数据集中移除与所述多个分类的子集相关联的数据。
K.示例I或示例J的方法,其中所述分割包括:
将所述第一传感器数据集和所述一个或多个附加传感器数据集传递到机器学习模型中;以及
从所述机器学习模型中接收分割信息。
L.实施例I至实施例K中任一项的方法,其中所述多个分类的子集与动态对象或潜在动态对象相关联,所述方法还包括:
在所述第一传感器数据集中检测感测到的对象;以及
将所述感测到的对象分类为所述多个分类的子集之一。
M.实例I至实例L中任一项的方法,还包括:
将第一权重与所述多个分类的所述子集相关联;以及
将第二权重与所述分类的其余部分相关联,所述第二权重大于所述第一权重。
N.示例I至示例M中任一项的方法,还包括将所述第一传感器数据集和所述一个或多个附加传感器数据集的语义信息添加到所述地图。
O.示例I至示例N中任一项的方法,还包括:
至少部分地基于所述地图确定车辆的位置或方位中的一个或多个;
基于所述车辆的位置或方位中的一个或多个,生成用于操纵所述车辆的一个或多个轨迹;以及
至少部分地基于所述一个或多个轨迹来操纵所述车辆。
P.一种具有存储在其上的计算机可执行指令的示例计算机可读存储介质,当由计算机执行时,所述计算机可执行指令使计算机:
从一个或多个传感器接收表示环境的传感器第一数据集;
确定在所述第一传感器数据集中对象的存在;
将所述对象与作为多个分类中的一个或多个分类的分类相关联;
将所述第一传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述对象,递增与所述体素相关联的一个或多个计数器;
基于具有大于阈值的计数器的体素,更新包括所述体素空间的地图;以及
至少部分地基于更新后的地图,生成用于操纵车辆的一个或多个轨迹。
Q.示例P的计算机可读存储介质,其中所述指令还使所述计算机执行以下操作:
在随后的一个或多个时间确定所述对象存在于一个或多个体素中;
确定所述对象的对象轨迹;以及
至少部分基于所述对象轨迹来操纵所述车辆。
R.示例P或示例Q的计算机可读存储介质,其中所述分类包括与静态对象相关联的分类,并且其中所述指令还使所述计算机执行以下操作:
在第二时间接收表示所述环境的第二传感器数据集;
将所述第二传感器数据集与所述体素相关联;
将所述第二传感器数据集作为一个或多个光线而光线投射到所述体素中;
确定一个或多个穿过体素,所述穿过体素包括所述一个或多个光线穿过的体素;
递减与所述穿过体素相关联的一个或多个计数器;以及
从所述地图中移除与具有未达到或未超过第二阈值的计数器的体素相关联的数据。
S.示例P至示例R中任一示例的计算机可读存储介质,其中所述多个分类包括车辆、行人或骑自行车的人中的一个或多个,并且其中所述指令还使计算机执行以下操作:
将权重与所述分类相关联;
将所述权重与所述地图相关联;以及
将所述对象的分类与所述地图相关联,
其中所述静态对象的权重较大,而所述动态对象的权重较小。
T.示例P至示例S中任一示例的计算机可读存储介质,其中所述一个或多个传感器包括LIDAR传感器、RADAR传感器、SONAR传感器或图像传感器中的一个或多个。

Claims (37)

1.一种用于更新地图的系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,通信地耦合到所述一个或多个处理器并存储有指令,所述指令由所述一个或多个处理器可执行以:
在第一时间接收表示环境的第一传感器数据集;
根据多个分类对所述第一传感器数据集的至少一部分进行分割;
将所述第一传感器数据集的所述至少一部分与包括多个体素的体素空间相关联;
至少部分地基于所述第一传感器数据集的所述部分,更新与所述体素相关联的一个或多个计数器;
在附加时间接收表示所述环境的附加传感器数据集;
根据所述多个分类对所述附加传感器数据集的至少一部分进行分割;
将所述附加传感器数据集的所述部分与所述体素空间相关联;
至少部分地基于所述附加传感器数据集来更新所述一个或多个计数器;以及
至少部分地基于所述一个或多个计数器达到或超过第一阈值来更新包括所述体素空间的地图,
其中,所述指令进一步由所述一个或多个处理器可执行以:
(i)在更新的地图内,将第一权重与所述多个分类的第一子集相关联,所述第一子集包括潜在动态对象;以及
在所述更新的地图内,将第二权重与包括静态对象的所述多个分类的其余部分相关联,所述第二权重大于所述第一权重;或者
(ii)在将所述第一传感器数据集的至少一部分与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象;以及
在将所述附加传感器数据集的所述部分与所述体素空间相关联之前,从所述附加传感器数据集中移除与所述多个分类的所述第二子集相关联的数据。
2.根据权利要求1所述的系统,其中:
所述多个分类包括车辆、行人或骑自行车的人中的一个或多个。
3.根据权利要求1所述的系统,其中,附加于(i),所述指令由所述一个或多个处理器进一步可执行以:
在将所述第一传感器数据集的所述至少一部分与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象;以及
在将所述附加传感器数据集的所述部分与所述体素空间相关联之前,从所述附加传感器数据集中移除与所述多个分类的所述第二子集相关联的数据。
4.根据权利要求1所述的系统,其中,对于(i),所述多个分类的所述第一子集还包括动态对象。
5.根据权利要求1所述的系统,其中,对于(ii),所述多个分类的所述第二子集还包括潜在动态对象。
6.根据权利要求1-5中任一项所述的系统,其中分割所述第一传感器数据集和所述附加传感器数据集包括:
将所述传感器数据集作为输入传递到机器学习模型中;以及
从所述机器学习模型中接收分割的传感器数据。
7.根据权利要求1-5中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以:
将所述附加传感器数据集作为一个或多个光线而光线投射到所述体素中;
确定所述一个或多个光线穿过的一个或多个穿过体素;
更新与所述穿过体素相关联的所述一个或多个计数器;以及
确定与所述穿过体素相关联的一个或多个计数器未达到或未超过第二阈值;以及
将所述一个或多个穿过体素关联为未占用的体素。
8.根据权利要求1所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以:
分割第二附加传感器数据集;
确定所述第二附加传感器数据集中的第一对象;
至少部分地基于所述分割的第二传感器数据集,确定所述第一对象是静态对象,所述第一对象与第一分类相关联;
将所述第二权重与所述第一对象相关联;
确定在所述分割的第二传感器数据集中的第二对象;
至少部分地基于所述分割的第二传感器数据集,确定所述第二对象是动态对象或潜在动态对象,所述第二对象与第二分类相关联;以及
将所述第一权重与所述第二对象相关联。
9.根据权利要求1-5和8中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以将语义信息与所述地图相关联。
10.根据权利要求1-5和8中任一项所述的系统,其中接收所述第一传感器数据集包括从光检测和测距(LIDAR)传感器、无线电检测和测距(RADAR)传感器、声音导航和测距(SONAR)传感器、或一个或多个成像器中的一个或多个中接收所述第一传感器数据集。
11.根据权利要求1-4和8中任一项所述的系统,其中所述指令由所述一个或多个处理器进一步可执行以使得:
在第三时间接收第三传感器数据集;
根据所述多个分类对所述第三传感器数据集进行分割;
通过从所述第三传感器数据集中移除与所述多个分类的所述子集相关联的数据来创建数据的子集;以及
至少部分地基于所述地图和所述数据的子集对自动驾驶车辆进行定位。
12.根据权利要求1-5和8中任一项所述的系统,其中:
根据多个分类对所述第一传感器数据集的至少一部分进行分割包括确定分割信息;以及
将所述第一传感器数据集的所述至少一部分与包括多个体素的体素空间相关联包括将所述分割信息与同所述体素空间相关联的所述第一传感器数据集的一部分相关联。
13.一种用于更新地图的方法,包括:
从一个或多个传感器接收表示环境的第一传感器数据集;
根据多个分类对所述第一传感器数据集的至少一部分进行分割;
将所述第一传感器数据集的所述至少一部分与包括多个体素的体素空间相关联;
至少部分地基于所述第一传感器数据集的所述至少一部分,更新与所述体素相关联的占用状态;
接收表示所述环境的附加传感器数据集;
根据所述多个分类对所述附加传感器数据集的至少一部分进行分割;
将所述附加传感器数据集的所述至少一部分与所述体素空间相关联;
至少部分地基于所述附加传感器数据集的所述至少一部分,更新与所述体素相关联的占用状态;以及
至少部分地基于与所述体素相关联的所述占用状态来更新包括所述体素空间的地图,
其中,所述方法还包括:
(i)在更新的地图内,将第一权重与所述多个分类的第一子集相关联,所述第一子集包括潜在动态对象;以及
在所述更新的地图内,将第二权重与包括静态对象的所述多个分类的其余部分相关联,所述第二权重大于所述第一权重;或者
(ii)在将所述第一传感器数据集的至少一部分与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象;以及
在将所述附加传感器数据集的所述部分与所述体素空间相关联之前,从所述附加传感器数据集中移除与所述多个分类的所述第二子集相关联的数据。
14.根据权利要求13所述的方法,其中所述多个分类包括车辆、行人或骑自行车的人中的一个或多个。
15.根据权利要求13所述的方法,还包括附加于(i):
在将所述第一传感器数据集的所述至少一部分与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象;以及
在将所述附加传感器数据集的所述部分与所述体素空间相关联之前,从所述附加传感器数据集中移除与所述多个分类的所述第二子集相关联的数据。
16.根据权利要求13所述的方法,其中,对于(i),所述多个分类的所述第一子集还包括动态对象。
17.根据权利要求13所述的方法,其中,对于(ii),所述多个分类的所述第二子集还包括潜在动态对象。
18.根据权利要求13所述的方法,其中所述分割包括:
将所述第一传感器数据集和所述附加传感器数据集传递到机器学习模型中;以及
从所述机器学习模型中接收分割信息。
19.根据权利要求13所述的方法,其中所述多个分类的所述第一子集或所述第二子集与动态对象或潜在动态对象相关联,所述方法还包括:
检测所述第一传感器数据集中感测到的对象;以及
将所述感测到的对象分类为所述多个分类的所述子集之一。
20.根据权利要求13所述的方法,还包括将所述第一传感器数据集和所述附加传感器数据集的语义信息添加到所述地图。
21.根据权利要求13-20中任一项所述的方法,还包括:
至少部分地基于所述地图确定车辆的位置或方位中的一个或多个;
基于所述车辆的所述位置或方位中的一个或多个,生成用于操纵所述车辆的一个或多个轨迹;以及
至少部分地基于所述一个或多个轨迹来操纵所述车辆。
22.一种具有存储在其中的指令的非暂时性计算机可读介质,当由一个或多个处理器执行所述指令时,使得所述一个或多个处理器执行根据权利要求13至21中任一项所述的方法。
23.一种用于更新地图的方法,包括:
从一个或多个传感器接收表示环境的第一传感器数据集;
确定所述第一传感器数据集中对象的存在;
将所述对象与作为多个分类中的一个或多个的分类相关联;
将所述第一传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述对象来递增与所述体素相关联的一个或多个计数器;
基于具有大于阈值的计数器的体素来更新包括所述体素空间的地图;以及
至少部分地基于所述更新的地图来生成用于操纵车辆的一个或多个轨迹,
其中,所述方法还包括:
(i)将第一权重与所述多个分类的第一子集相关联,所述第一子集包括潜在动态对象;以及
将第二权重与包括静态对象的所述多个分类的其余部分相关联,所述第二权重大于所述第一权重;或者
(ii)在将所述第一传感器数据集与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象。
24.根据权利要求23所述的方法,还包括:
在一个或多个随后时间确定所述对象在所述一个或多个体素中的存在;
确定所述对象的对象轨迹;以及
至少部分地基于所述对象轨迹来操纵所述车辆。
25.根据权利要求23或24所述的方法,还包括:
在第二时间接收表示所述环境的第二传感器数据集;
将所述第二传感器数据集与所述体素相关联;
将所述第二传感器数据集作为一个或多个光线而光线投射至所述体素中;
确定一个或多个穿过体素,所述穿过体素包括所述一个或多个光线所穿过的所述体素;
使与所述穿过体素相关联的所述一个或多个计数器递减;以及
从所述地图中移除与具有不达到或超过第二阈值的计数器的体素相关联的数据。
26.如权利要求23或24所述的方法,其中所述多个分类包括车辆、行人或骑自行车的人中的一个或多个,所述方法还包括:
将权重与所述分类相关联;
将所述权重与所述地图相关联;以及
将所述对象的所述分类与所述地图相关联,
其中静态对象的权重大于动态对象的权重。
27.根据权利要求23或24所述的方法,其中,所述一个或多个传感器包括LIDAR传感器、RADAR传感器、SONAR传感器或图像传感器中的一个或多个。
28.一种非暂时性计算机可读介质,具有存储在其中的指令,所述指令在由一个或多个处理器执行时,使所述一个或多个处理器执行根据权利要求23至27中任一项所述的方法。
29.一种用于更新地图的系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,其通信地耦合到所述一个或多个处理器并且存储指令,所述指令可由所述一个或多个处理器执行以:
在第一时间接收表示环境的第一传感器数据集;
根据多个分类将所述第一传感器数据集分割成分割的第一传感器数据集,所述多个分类包括车辆、行人或骑自行车的人中的一个或多个;
将所述分割的第一传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述分割的第一传感器数据集,更新与所述多个体素相关联的一个或多个计数器;
在一个或多个附加时间接收表示所述环境的一个或多个附加传感器数据集;
根据所述多个分类将所述一个或多个附加传感器数据集分割成一个或多个附加的分割的传感器数据集;
将所述一个或多个附加的分割的传感器数据集与所述体素空间相关联;
至少部分地基于所述一个或多个附加的分割的传感器数据集,更新所述一个或多个计数器;以及
至少部分地基于所述一个或多个计数器达到或超过第一阈值,更新包括所述体素空间的地图,
其中,所述指令进一步由所述一个或多个处理器可执行以:
(i)在更新的地图内,将第一权重与所述多个分类的第一子集相关联,所述第一子集包括潜在动态对象;以及
在所述更新的地图内,将第二权重与包括静态对象的所述多个分类的其余部分相关联,所述第二权重大于所述第一权重;或者
(ii)在将所述分割的第一传感器数据集与所述体素空间相关联之前,从所述第一传感器数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象;以及
在将所述一个或多个附加的分割的传感器数据集与所述体素空间相关联之前,从所述一个或多个附加传感器数据集中移除与所述多个分类的所述第二子集相关联的数据。
30.如权利要求29所述的系统,其中,附加于(i):所述指令可进一步由所述一个或多个处理器执行以:
从所述分割的第一传感器数据集和所述一个或多个附加的分割的传感器数据集移除与所述多个分类的所述第二子集相关联的数据。
31.根据权利要求29所述的系统,其中,对于(i),所述多个分类的所述第一子集还包括动态对象。
32.根据权利要求29所述的系统,其中,对于(ii),所述多个分类的所述第二子集还包括潜在动态对象。
33.一种用于更新地图的方法,包括:
从一个或多个传感器接收表示环境的第一传感器数据集;
根据多个分类将所述第一传感器数据集分割成分割的第一传感器数据集,所述多个分类包括车辆、行人或骑自行车的人中的一个或多个;
将所述分割的第一传感器数据集与包括多个体素的体素空间相关联;
至少部分地基于所述第一传感器数据集,更新与所述体素相关联的占用状态;
接收表示所述环境的一个或多个附加传感器数据集;
根据所述多个分类将所述一个或多个附加传感器数据集分割成一个或多个附加的分割的传感器数据集;
将所述一个或多个附加的分割的传感器数据集与所述体素空间相关联;
至少部分地基于所述一个或多个附加传感器数据集,更新与所述体素相关联的占用状态;以及
至少部分地基于与所述体素相关联的所述占用状态,更新包括所述体素空间的地图,
其中,所述方法还包括:
(i)对于更新的地图,将第一权重与所述多个分类的第一子集相关联,所述第一子集包括潜在动态对象;以及
对于所述更新的地图,将第二权重与包括静态对象的所述多个分类的其余部分相关联,所述第二权重大于所述第一权重;或者
(ii)从所述分割的第一传感器数据集和一个或多个附加的分割的数据集中移除与所述多个分类的第二子集相关联的数据,所述第二子集包括动态对象。
34.根据权利要求33所述的方法,还包括附加于(i):
从所述分割的第一传感器数据集和所述一个或多个附加的分割的数据集移除与所述多个分类的所述第二子集相关联的数据。
35.根据权利要求33所述的方法,其中,对于(i),所述多个分类的所述第一子集还包括动态对象。
36.根据权利要求33所述的方法,其中,对于(ii),所述多个分类的所述第二子集还包括潜在动态对象。
37.一种非暂时性计算机可读介质,具有存储在其中的指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求33或36中的任一项所述的方法。
CN201980014385.8A 2018-02-20 2019-02-07 创建包含语义信息的干净的地图 Active CN111742310B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/900,319 2018-02-20
US15/900,319 US11157527B2 (en) 2018-02-20 2018-02-20 Creating clean maps including semantic information
PCT/US2019/016968 WO2019164668A1 (en) 2018-02-20 2019-02-07 Creating clean maps including semantic information

Publications (2)

Publication Number Publication Date
CN111742310A CN111742310A (zh) 2020-10-02
CN111742310B true CN111742310B (zh) 2024-03-22

Family

ID=65520419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980014385.8A Active CN111742310B (zh) 2018-02-20 2019-02-07 创建包含语义信息的干净的地图

Country Status (5)

Country Link
US (1) US11157527B2 (zh)
EP (1) EP3756106B1 (zh)
JP (1) JP7296976B2 (zh)
CN (1) CN111742310B (zh)
WO (1) WO2019164668A1 (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7076372B2 (ja) * 2015-10-12 2022-05-27 グラウンドプルーブ・ピーティーワイ・リミテッド 斜面安定性ライダー
US11748877B2 (en) 2017-05-11 2023-09-05 The Research Foundation For The State University Of New York System and method associated with predicting segmentation quality of objects in analysis of copious image data
CN107566743B (zh) * 2017-10-30 2019-10-11 珠海市一微半导体有限公司 移动机器人的视频监控方法
US10535138B2 (en) 2017-11-21 2020-01-14 Zoox, Inc. Sensor data segmentation
US10657388B2 (en) * 2018-03-13 2020-05-19 Honda Motor Co., Ltd. Robust simultaneous localization and mapping via removal of dynamic traffic participants
CN110567468A (zh) * 2018-06-06 2019-12-13 百度在线网络技术(北京)有限公司 道路轨迹获取方法、设备及存储介质
WO2020008458A2 (en) * 2018-07-02 2020-01-09 Vayyar Imaging Ltd. System and methods for environment mapping
US11204605B1 (en) * 2018-08-03 2021-12-21 GM Global Technology Operations LLC Autonomous vehicle controlled based upon a LIDAR data segmentation system
US10884131B1 (en) * 2018-08-03 2021-01-05 GM Global Technology Operations LLC Conflict resolver for a lidar data segmentation system of an autonomous vehicle
US11110922B2 (en) * 2018-11-05 2021-09-07 Zoox, Inc. Vehicle trajectory modification for following
US11383722B2 (en) * 2019-01-02 2022-07-12 Qualcomm Incorporated Methods and systems for managing interactions between vehicles with varying levels of autonomy
US11675083B2 (en) * 2019-01-03 2023-06-13 Nvidia Corporation Removal of ephemeral points from point cloud of a high-definition map for navigating autonomous vehicles
US11313696B2 (en) * 2019-03-01 2022-04-26 GM Global Technology Operations LLC Method and apparatus for a context-aware crowd-sourced sparse high definition map
EP3702802A1 (en) * 2019-03-01 2020-09-02 Aptiv Technologies Limited Method of multi-sensor data fusion
US20200361452A1 (en) * 2019-05-13 2020-11-19 Toyota Research Institute, Inc. Vehicles and methods for performing tasks based on confidence in accuracy of module output
US11227401B1 (en) * 2019-05-22 2022-01-18 Zoox, Inc. Multiresolution voxel space
US20200380085A1 (en) * 2019-06-03 2020-12-03 Robert Bosch Gmbh Simulations with Realistic Sensor-Fusion Detection Estimates of Objects
WO2021003453A1 (en) * 2019-07-02 2021-01-07 DeepMap Inc. Annotating high definition map data with semantic labels
US11416003B2 (en) * 2019-08-06 2022-08-16 Boston Dynamics, Inc. Constrained mobility mapping
DE102019214603A1 (de) * 2019-09-24 2021-03-25 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erstellen einer Lokalisierungskarte
US10725438B1 (en) * 2019-10-01 2020-07-28 11114140 Canada Inc. System and method for automated water operations for aquatic facilities using image-based machine learning
CN111060117B (zh) * 2019-12-17 2022-02-08 苏州智加科技有限公司 局部地图构建方法、装置、计算机设备以及存储介质
GB202311795D0 (en) * 2019-12-19 2023-09-13 Motional Ad Llc Foreground extraction using surface fitting
WO2021133582A1 (en) * 2019-12-23 2021-07-01 Zoox, Inc. Pedestrians with objects
US11625041B2 (en) 2020-02-21 2023-04-11 Zoox, Inc. Combined track confidence and classification model
US20210278852A1 (en) * 2020-03-05 2021-09-09 Uatc, Llc Systems and Methods for Using Attention Masks to Improve Motion Planning
US11556127B2 (en) * 2020-04-03 2023-01-17 Baidu Usa Llc Static obstacle map based perception system
DE102020109789A1 (de) 2020-04-08 2021-10-14 Valeo Schalter Und Sensoren Gmbh Verfahren zum Durchführen einer Selbstlokalisierung eines Fahrzeugs auf der Grundlage einer reduzierten digitalen Umgebungskarte, Computerprogrammprodukt sowie ein Selbstlokalisierungssystem
EP3907468A1 (en) * 2020-05-08 2021-11-10 Volkswagen Aktiengesellschaft Vehicle, apparatus, method, and computer program for determining a merged environmental map
US11853070B2 (en) * 2020-09-04 2023-12-26 Waymo Llc Updating road graphs for autonomous driving
US20230316789A1 (en) * 2020-09-14 2023-10-05 Cognata Ltd. Object labeling in images using dense depth maps
EP3979029A1 (en) * 2020-09-30 2022-04-06 Carnegie Robotics, LLC Systems and methods for enabling navigation in environments with dynamic objects
US11623661B2 (en) * 2020-10-12 2023-04-11 Zoox, Inc. Estimating ground height based on lidar data
US11657572B2 (en) 2020-10-21 2023-05-23 Argo AI, LLC Systems and methods for map generation based on ray-casting and semantic class images
JP2022087914A (ja) * 2020-12-02 2022-06-14 本田技研工業株式会社 車両位置推定装置
US12012126B2 (en) 2020-12-11 2024-06-18 Zoox, Inc. Calibration based on semantic objects
US11538185B2 (en) * 2020-12-11 2022-12-27 Zoox, Inc. Localization based on semantic objects
US11890544B2 (en) * 2020-12-30 2024-02-06 Blizzard Entertainment, Inc. Prop placement with machine learning
CN112837372A (zh) * 2021-03-02 2021-05-25 浙江商汤科技开发有限公司 数据生成方法及装置、电子设备和存储介质
US20220388531A1 (en) * 2021-06-08 2022-12-08 Yandex Self Driving Group Llc Method and device for operating a self-driving car
US11792644B2 (en) 2021-06-21 2023-10-17 Motional Ad Llc Session key generation for autonomous vehicle operation
CN113671522B (zh) * 2021-07-07 2023-06-27 中国人民解放军战略支援部队信息工程大学 基于语义约束的动态环境激光slam方法
US11948381B2 (en) * 2021-08-20 2024-04-02 Motional Ad Llc Determining object mobility parameters using an object sequence
US11915436B1 (en) * 2021-08-30 2024-02-27 Zoox, Inc. System for aligning sensor data with maps comprising covariances
CN113848925A (zh) * 2021-09-30 2021-12-28 天津大学 一种基于slam的无人碾压动态路径自主规划方法
US11710296B2 (en) * 2021-12-03 2023-07-25 Zoox, Inc. End-to-end vehicle perception system training
US12030528B2 (en) 2021-12-03 2024-07-09 Zoox, Inc. Vehicle perception system with temporal tracker
US11675362B1 (en) * 2021-12-17 2023-06-13 Motional Ad Llc Methods and systems for agent prioritization
WO2023129903A1 (en) * 2021-12-29 2023-07-06 Motional Ad Llc Autonomous vehicle with microphone safety
IL290466A (en) * 2022-02-02 2024-08-01 Elbit Systems C4I And Cyber Ltd Geographic system and method
CN115222988B (zh) * 2022-07-17 2024-06-18 桂林理工大学 激光雷达点云数据城市地物PointEFF精细分类方法
US20240144174A1 (en) * 2022-10-26 2024-05-02 Dell Products L.P. Far-edge intensive processing for so-maps
WO2024138110A2 (en) * 2022-12-22 2024-06-27 Invensense, Inc. Method and system for map building using radar and motion sensors

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102800205A (zh) * 2012-08-30 2012-11-28 南京大学 基于动态地图界面的车载虚拟终端系统
CN105981077A (zh) * 2014-01-03 2016-09-28 谷歌技术控股有限责任公司 用于生成包括稀疏和密集测绘信息的地图的方法和系统
CN106949895A (zh) * 2017-04-13 2017-07-14 杭州申昊科技股份有限公司 一种适用于变电站环境下的巡检机器人定位方法
CN107024215A (zh) * 2016-01-29 2017-08-08 福特全球技术公司 追踪动态环境内的对象以改进定位
CN107450529A (zh) * 2016-05-06 2017-12-08 优步技术公司 用于自动驾驶车辆的改进的物体检测

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6102864A (en) * 1997-05-07 2000-08-15 General Electric Company Three-dimensional ultrasound imaging of velocity and power data using average or median pixel projections
DE10253510A1 (de) 2002-11-16 2004-05-27 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verbesserung der Sicht in einem Kraftfahrzeug
US8655079B2 (en) 2008-03-17 2014-02-18 Raytheon Company Reducing false alarms in identifying whether a candidate image is from an object class
US20090292468A1 (en) 2008-03-25 2009-11-26 Shunguang Wu Collision avoidance method and system using stereo vision and radar sensor fusion
US8379020B2 (en) 2008-08-25 2013-02-19 Harris Corporation Image processing device using selective neighboring voxel removal and related methods
EP2534835A4 (en) * 2010-02-12 2017-04-05 The University of North Carolina At Chapel Hill Systems and methods that generate height map models for efficient three dimensional reconstruction from depth information
US8458188B2 (en) * 2010-02-17 2013-06-04 Lockheed Martin Corporation Voxel approach to terrain repositories for modeling and simulation
US8811748B2 (en) 2011-05-20 2014-08-19 Autodesk, Inc. Collaborative feature extraction system for three dimensional datasets
US8913784B2 (en) 2011-08-29 2014-12-16 Raytheon Company Noise reduction in light detection and ranging based imaging
WO2013076829A1 (ja) 2011-11-22 2013-05-30 株式会社日立製作所 自律移動システム
US9523772B2 (en) 2013-06-14 2016-12-20 Microsoft Technology Licensing, Llc Object removal using lidar-based classification
US9110163B2 (en) 2013-06-14 2015-08-18 Microsoft Technology Licensing, Llc Lidar-based classification of object movement
EP3123397A4 (en) 2014-03-27 2017-11-08 The Georgia Tech Research Corporation Systems and methods for identifying traffic control devices and testing the retroreflectivity of the same
US9633483B1 (en) 2014-03-27 2017-04-25 Hrl Laboratories, Llc System for filtering, segmenting and recognizing objects in unconstrained environments
GB2532948B (en) 2014-12-02 2021-04-14 Vivo Mobile Communication Co Ltd Object Recognition in a 3D scene
EP3078935A1 (en) 2015-04-10 2016-10-12 The European Atomic Energy Community (EURATOM), represented by the European Commission Method and device for real-time mapping and localization
US9710714B2 (en) 2015-08-03 2017-07-18 Nokia Technologies Oy Fusion of RGB images and LiDAR data for lane classification
US9612123B1 (en) * 2015-11-04 2017-04-04 Zoox, Inc. Adaptive mapping to navigate autonomous vehicles responsive to physical environment changes
JP6962926B2 (ja) * 2015-11-04 2021-11-05 ズークス インコーポレイテッド 自律車両の軌道修正のための遠隔操作システムおよび方法
WO2017157967A1 (en) 2016-03-14 2017-09-21 Imra Europe Sas Processing method of a 3d point cloud
US20170359561A1 (en) * 2016-06-08 2017-12-14 Uber Technologies, Inc. Disparity mapping for an autonomous vehicle
US9996944B2 (en) 2016-07-06 2018-06-12 Qualcomm Incorporated Systems and methods for mapping an environment
US10592805B2 (en) 2016-08-26 2020-03-17 Ford Global Technologies, Llc Physics modeling for radar and ultrasonic sensors
US20180136332A1 (en) 2016-11-15 2018-05-17 Wheego Electric Cars, Inc. Method and system to annotate objects and determine distances to objects in an image
US10545029B2 (en) * 2016-12-30 2020-01-28 DeepMap Inc. Lane network construction using high definition maps for autonomous vehicles
US10445928B2 (en) * 2017-02-11 2019-10-15 Vayavision Ltd. Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
US10209718B2 (en) 2017-03-14 2019-02-19 Starsky Robotics, Inc. Vehicle sensor system and method of use
US10460180B2 (en) 2017-04-20 2019-10-29 GM Global Technology Operations LLC Systems and methods for visual classification with region proposals
US10444759B2 (en) 2017-06-14 2019-10-15 Zoox, Inc. Voxel based ground plane estimation and object segmentation
US10747999B2 (en) 2017-10-18 2020-08-18 The Trustees Of Columbia University In The City Of New York Methods and systems for pattern characteristic detection
US11537868B2 (en) 2017-11-13 2022-12-27 Lyft, Inc. Generation and update of HD maps using data from heterogeneous sources
US10535138B2 (en) 2017-11-21 2020-01-14 Zoox, Inc. Sensor data segmentation
US10984257B2 (en) 2017-12-13 2021-04-20 Luminar Holdco, Llc Training multiple neural networks of a vehicle perception component based on sensor settings

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102800205A (zh) * 2012-08-30 2012-11-28 南京大学 基于动态地图界面的车载虚拟终端系统
CN105981077A (zh) * 2014-01-03 2016-09-28 谷歌技术控股有限责任公司 用于生成包括稀疏和密集测绘信息的地图的方法和系统
CN107024215A (zh) * 2016-01-29 2017-08-08 福特全球技术公司 追踪动态环境内的对象以改进定位
CN107450529A (zh) * 2016-05-06 2017-12-08 优步技术公司 用于自动驾驶车辆的改进的物体检测
CN106949895A (zh) * 2017-04-13 2017-07-14 杭州申昊科技股份有限公司 一种适用于变电站环境下的巡检机器人定位方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
3D graphics on the web: A survey;Alun Evans;《Computers & Graphics》(第41期);43-61 *
基于WebGL的动态地形实时绘制;郑顾平 等;《软件导刊》;第16卷(第12期);202-204+209 *
基于无人机航摄影像的数字线划图生成方法;成李博 等;《全球定位系统》;第44卷(第06期);86-91 *

Also Published As

Publication number Publication date
JP7296976B2 (ja) 2023-06-23
CN111742310A (zh) 2020-10-02
JP2021514508A (ja) 2021-06-10
EP3756106A1 (en) 2020-12-30
US20190258737A1 (en) 2019-08-22
US11157527B2 (en) 2021-10-26
WO2019164668A1 (en) 2019-08-29
EP3756106B1 (en) 2024-10-09

Similar Documents

Publication Publication Date Title
CN111742310B (zh) 创建包含语义信息的干净的地图
US11714423B2 (en) Voxel based ground plane estimation and object segmentation
US11798169B2 (en) Sensor data segmentation
CN114390990B (zh) 用于确定目标车辆速度的系统和方法
US11010907B1 (en) Bounding box selection
US20200174493A1 (en) Shared Vehicle Obstacle Data
US10936902B1 (en) Training bounding box selection
US11479213B1 (en) Sensor obstruction detection and mitigation
US11892835B2 (en) System and method for controlling an autonomous vehicle
US20230311930A1 (en) Capturing and simulating radar data for autonomous driving systems
US11409278B2 (en) System and method for providing a teleoperation instruction to an autonomous vehicle
WO2021021680A1 (en) System and method for providing a teleoperation instruction to an autonomous vehicle

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
GR01 Patent grant
GR01 Patent grant