生成用于训练和验证检测模型的模拟传感器数据的制作方法

文档序号:14991259发布日期:2018-07-20 22:16阅读:221来源:国知局

本发明涉及在自主车辆中执行障碍物规避。



背景技术:

当今车辆中可用的大多数主动和被动安全特性使用诸如超声波传感器、摄像机、激光雷达、雷达等传感器来检测障碍物。车辆控制器必须对动态环境中的物体进行准确地分类和跟踪。许多此类功能(例如紧急制动辅助)旨在防止与可能导致人员伤亡或财产损失的固体物体(例如电线杆、行人、其他车辆)发生前方碰撞。

传感器数据有若干局限性,其通常是有噪声的、稀疏的和不准确的。除此之外,诸如“虚幻物体(ghostobjects)”的数据不一致性往往出现在不同的场景中。这些数据不完善可能会导致主动安全特性的不必要的干预和由被动安全特性反复提醒驾驶员带来的不便。

本文公开的系统和方法提供了一种用于车辆障碍物检测的改进方法。



技术实现要素:

根据本发明,提供一种方法,该方法包括通过计算机系统执行以下操作:

模拟一个或多个传感器对3d模型的感知以获得一个或多个传感器输出,使得一个或多个传感器输出模拟传感器噪声;

根据3d模型中障碍物的位置注释一个或多个传感器输出;以及

根据一个或多个传感器输出和注释来训练和/或测试模型。

根据本发明的一个实施例,其中一个或多个传感器相对于主车辆的模型来定义;

其中一个或多个传感器由一个或多个摄像机位置定义;以及

其中模拟一个或多个传感器对3d模型的感知包括模拟从一个或多个摄像机位置对3d模型的图像的检测。

根据本发明的一个实施例,其中一个或多个传感器相对于主车辆的模型来定义;

其中一个或多个传感器由雷达(无线电检测和测距)传感器位置定义;以及

其中模拟一个或多个传感器对3d模型的感知包括根据从雷达传感器位置对3d模型的感知模拟雷达传感器输出。

根据本发明的一个实施例,其中一个或多个传感器相对于主车辆的模型来定义;

其中一个或多个传感器由激光雷达(光检测和测距)传感器位置定义;以及

其中模拟一个或多个传感器对3d模型的感知包括根据从激光雷达传感器位置对3d模型的感知模拟激光雷达传感器输出。

根据本发明的一个实施例,其中3d模型进一步包括用于一个或多个相邻车辆的速度以及定义所述一个或多个传感器的一个或多个位置的主车辆的速度的定义。

根据本发明的一个实施例,其中模拟一个或多个传感器对3d模型的感知以获得一个或多个传感器输出使得一个或多个传感器输出模拟传感器噪声包括:

识别3d模型中的障碍物的位置;

相对于3d模型中的一个或多个传感器的位置,产生与障碍物的位置相对应的一个或多个传感器输出;以及

根据一个或多个传感器的一个或多个方差模型来向一个或多个传感器输出添加噪声。

根据本发明的一个实施例,其中模拟一个或多个传感器对所述3d模型的感知以获得一个或多个传感器输出使得一个或多个传感器输出模拟传感器噪声包括下述中的至少一个:足够详细地模拟对3d模型的检测,以使得传感器噪声存在于一个或多个传感器输出中。

根据本发明的一个实施例,其中根据3d模型中的障碍物的位置来注释一个或多个传感器输出包括:利用3d模型中的障碍物的位置来注释一个或多个传感器输出;以及

其中根据所述一个或多个传感器输出以及所述统计模型的所述注释来训练和/或测试所述模型包括:测试跟踪障碍物并且为所述障碍物中的每个障碍物的预期位置分配概率的统计模型。

根据本发明的一个实施例,其中根据3d模型中的障碍物的位置来注释一个或多个传感器输出包括:根据3d模型中的所述障碍物的位置,以与主车辆的模型相邻的区域的占据状态来注释一个或多个传感器输出;

其中根据所述一个或多个传感器输出和所述统计模型的所述注释来训练和/或测试所述模型包括:测试根据一个或多个传感器输出更新所述区域的占据概率的统计模型。

根据本发明的一个实施例,其中根据3d模型中的障碍物的位置来注释一个或多个传感器输出包括:利用网格来注释一个或多个传感器输出,使得网格的每个正方形用每个正方形是否被所述障碍物之一占据来注释;

其中根据一个或多个传感器输出和所述统计模型的所述注释来训练和/或测试所述模型包括:测试统计模型,统计模型根据一个或多个传感器输出更新车辆周围的网格的正方形的占据概率。

根据本发明,提供一种系统,该系统包括一个或多个处理设备和可操作地联接到所述一个或多个存储设备的一个或多个存储设备,一个或多个存储设备存储可执行代码,所述可执行代码有效地使所述一个或多个处理设备执行以下操作:

定义包括限定一个或多个传感器位置的主车辆和一个或多个障碍物的三维(3d)模型;

模拟一个或多个传感器位置处的一个或多个传感器对3d模型的感知,以获得一个或多个传感器输出,使得一个或多个传感器输出模拟传感器噪声;

根据3d模型中的障碍物的位置来注释一个或多个传感器输出;以及

根据一个或多个传感器输出和注释来训练和/或测试模型。

根据本发明的一个实施例,其中可执行代码进一步有效地使得一个或多个处理器通过模拟从一个或多个摄像机位置检测3d模型的图像来模拟一个或多个传感器对3d模型的感知。

根据本发明的一个实施例,其中可执行代码进一步有效地致使一个或多个处理器通过根据从一个或多个传感器位置对3d模型的感知模拟雷达(无线电检测和测距)传感器输出来模拟一个或多个传感器对3d模型的感知。

根据本发明的一个实施例,其中可执行代码进一步有效地使一个或多个处理器通过根据从一个或多个传感器位置对3d模型的感知模拟激光雷达(光检测和测距)传感器输出来模拟一个或多个传感器对3d模型的感知。

根据本发明的一个实施例,其中3d模型还包括对一个或多个相邻车辆的速度以及定义一个或多个传感器的一个或多个位置的主车辆的速度的定义。

根据本发明的一个实施例,其中可执行代码进一步有效地使得一个或多个处理器通过以下方式模拟一个或多个传感器对3d模型的感知以获得一个或多个传感器输出,使得一个或多个传感器输出来模拟传感器噪声:

识别3d模型中的障碍物的位置;

相对于3d模型中的一个或多个传感器的位置,产生与障碍物的位置相对应的一个或多个传感器输出;以及

根据一个或多个传感器的一个或多个方差模型来向一个或多个传感器输出添加噪声。

根据本发明的一个实施例,其中可执行代码进一步有效地使一个或多个处理器足够详细地模拟一个或多个传感器对3d模型的感知,使得传感器噪声出现在一个或多个传感器输出中。

根据本发明的一个实施例,其中可执行代码进一步有效地使一个或多个处理器执行以下操作:

根据3d模型中的障碍物的位置来注释一个或多个传感器输出是通过以下方式进行:通过在3d模型中用障碍物的位置注释一个或多个传感器输出;以及

根据一个或多个传感器输出和注释来训练和/或测试模型是通过以下方式进行:通过测试跟踪所述障碍物并且为障碍物中的每个障碍物的预期位置分配概率的统计模型。

根据本发明的一个实施例,其中可执行代码进一步有效地使一个或多个处理器执行以下操作:

通过根据3d模型中的障碍物的位置注释一个或多个传感器输出是通过以下方式进行:根据3d模型中的所述障碍物的位置,利用邻近主车辆的模型的区域的占据状态注释一个或多个传感器输出;

根据一个或多个传感器输出和注释来训练和/或测试模型是通过以下方式进行:通过测试统计模型,统计模型根据一个或多个传感器输出来更新所述区域的占据概率。

根据本发明的一个实施例,其中可执行代码进一步有效地使一个或多个处理器执行以下操作:

根据3d模型中的障碍物的位置来注释一个或多个传感器输出是通过以下方式进行:通过用网格注释一个或多个传感器输出,使得网格的每个正方形用每个正方形是否被障碍物之一占据来注释;

根据一个或多个传感器输出和注释来训练和/或测试模型是通过以下方式进行:通过测试统计模型,统计模型根据一个或多个传感器输出来更新车辆周围的网格的正方形的占据概率。

附图说明

为了使本发明的优点容易理解,通过参考附图中示出的具体实施例,将给出上面简要描述的本发明的更具体的描述。应当理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是对本发明范围的限制,本发明将通过使用附图以附加特征和细节来描述和解释,其中:

图1a和1b是用于实现本发明的实施例的系统的示意性框图;

图2是适合于实现根据本发明实施例的方法的示例计算设备的示意性框图;

图3a和3b是根据本发明实施例的用于生成用来评估统计模型的模拟传感器数据的方法的过程流程图;

图3c是根据本发明实施例的使用模拟传感器数据来训练机器学习模型的方法的过程流程图;

图4a和4b示出了根据本发明实施例的用于评估或训练模型的场景;

图5是根据本发明实施例的使用轨迹片段(tracklet)跟踪障碍物的方法的过程流程图;

图6是根据本发明实施例的用于创建轨迹片段的方法的过程流程图;

图7是示出根据本发明实施例的用于更新轨迹片段的传感器读数的图;

图8是根据本发明实施例的使用概率模型来检测障碍物的场景的图示;

图9是根据本发明实施例的使用概率模型来检测障碍物的方法的过程流程图;

图10是根据本发明实施例的使用基于网格的概率模型来检测障碍物的方法的过程流程图;以及

图11示出了根据本发明实施例的使用基于网格的概率模型的场景的感知。

具体实施方式

将容易理解的是,如本文附图中总体描述和示出的本发明的部件可以以各种不同的配置来布置和设计。因此,如在附图中表示的本发明的实施例的以下更详细的描述并不旨在限制如要求保护的本发明的范围,而仅仅是代表根据本发明的当前设想的实施例的某些示例。通过参考附图可以最好地理解目前描述的实施例,其中相同的部分始终由相同的附图标记表示。

根据本发明的实施例可以体现为装置、方法或计算机程序产品。相应地,本发明可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例(其在本文中通常可以被称为“模块”或“系统”)的形式。此外,本发明可以采取体现在具有体现在介质中的计算机可用程序代码的任何有形的介质中的计算机程序产品的形式。

可以使用一个或多个计算机可用或计算机可读介质的任何组合。例如,计算机可读介质可以包括便携式计算机磁盘、硬盘、随机存取存储器(ram)设备、只读存储器(rom)设备、可擦可编程只读存储器(eprom或闪存)设备、便携式光盘只读存储器(cdrom)、光学存储设备以及磁存储设备中的一个或多个。在选择的实施例中,计算机可读介质可以包括任何能够包含、存储、传达、传播或传输供指令执行系统、装置或设备使用或与其结合使用的程序的非暂时性介质。

用于执行本发明的操作的计算机程序代码可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括诸如java、smalltalk、c++等的面向对象的程序设计语言和诸如“c”程序设计语言或类似程序设计语言的常规程序化程序设计语言。程序代码可以完全在作为独立的软件包的计算机系统上、独立的硬件单元上、部分地在远离计算机一定距离的远程计算机上、或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可以通过包括局域网(lan)或广域网(wan)的任何类型的网络连接到计算机,或者可以连接到外部计算机(例如通过互联网使用互联网服务提供商)。

以下参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明。将会理解的是,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机程序指令或代码来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。

这些计算机程序指令还可以被存储在可以指导计算机或其他可编程数据处理装置以特定的方式运行的非暂时计算机可读介质中,使得存储在计算机可读介质中的指令产生包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的指令装置的制品。

计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的过程。

参照图1a,网络环境100可以包括服务器系统102,该服务器系统102托管或访问数据库104,该数据库104包括足以定义用于训练或评估检测系统的场景的数据。特别地,数据库104可以存储包括车辆的几何数据108a的车辆模型106a,例如车身的形状、轮胎以及车辆的任何其他可见特性。几何数据108a可以进一步包括材料数据,例如硬度、反射率或材料类型。模型106可以进一步包括声音配置文件108b,其包括音频文件或车辆在某些情况下产生的声音的其他数据特征,例如不同速度和在不同速度下的不同加速度水平。车辆模型106a还可以包括指示车辆的操作限制的动态模型108c,例如转弯半径、加速度分布(特定速度下的最大加速度)等。车辆模型106a可以基于实际车辆,并且可以使用从测量实际车辆获得的数据来填充字段108a-108c。

在一些实施例中,数据库104可以存储用于结合用于障碍物检测的一个或多个传感器的车辆的车辆模型106b。如下所述,这些传感器的输出可被输入到根据本文公开的方法训练或评估的模型。相应地,车辆模型106b可以另外包括指示车辆上的一个或多个传感器的位置、一个或多个传感器的方位以及一个或多个传感器的一个或多个描述符的一个或多个传感器模型108d。例如,对于麦克风,传感器模型108d可以包括增益、信噪比、灵敏度分布(灵敏度相对于频率)等。对于摄像机,传感器模型108d可以包括摄像机的视场、分辨率、缩放、帧率或其他操作限制。对于激光雷达或雷达传感器,传感器模型108d可以包括分辨率、视场和系统的扫描速率。

如在此更详细描述的,可以在车辆模型106b的传感器的模拟输出中模拟传感器噪声。因此,传感器模型108d可以是以下中的一个或两个(1)足够准确或者用足够的细节水平来模拟,使得噪声将由传感器对场景的模拟感知而产生(2)包括典型地存在于传感器的输出中的噪声的定义,使得噪声可以随机添加到通过传感器模型对场景的模拟感知中。

数据库104可以包括环境模型106c,环境模型106c包括各种景观的模型,例如,具有交叉口、建筑物、行人、树木等的城市街道模型。模型可以定义景观中的物体的几何形状和位置,并且可以进一步包括其他方面,例如激光、雷达、声音、光等的反射率,以便能够通过传感器模拟物体的感知。

数据库104可以存储机器学习模型110a。机器学习模型110a可以根据本文描述的方法使用模型106a-106c来训练。机器学习模型110a可以是深度神经网络、贝叶斯网络(bayesiannetwork)或其他类型的机器学习模型。

数据库104可以存储统计模型110b。统计模型可以定义用于更新障碍物的预测位置或车辆外部特定位置占据的概率的方法。下面参照图5至图11描述这些统计模型110b的示例。也如下所述,可以通过处理模拟传感器输出来评估和修改这些统计模型,所述模拟传感器输出模拟车辆模型106b的传感器对场景的感知。以下关于图5至9描述的方法在2016年11月8日提交的标题为“在概率框架内使用传感器融合的物体跟踪”的美国申请序列号为15/346,210以及2016年11月29日提交的标题为“多传感器概率物体检测和自动制动”的美国申请序列号为15/363,763的专利申请中描述和主张,其全部内容通过引用并入本文。

服务器系统102可以执行训练引擎(trainingengine)112。训练引擎112可以包括场景模块114a。场景模块114a可以检索模型106a-106c并且生成沿着道路模型移动的车辆模型的场景。场景模块114a可手动产生这些场景或接收指定车辆的初始位置、车辆的速度等的人类输入。在一些实施例中,可以基于视频或实际位置(例如观察位置、车辆在位置中的移动、其他物体的位置等)的其他测量来对场景建模。

在一些实施例中,场景模块114a可以读取指定场景的各个元素的位置和/或取向的文件,并且创建具有如文件中所指示的那样定位的元素模型的场景的模型。以这种方式,可以使用手动或自动生成的文件来定义广泛的场景。

训练引擎112可以包括传感器模拟模块114b。具体地,对于场景和包括在包含传感器模型数据108d的场景中的车辆,如下面更详细描述的,传感器模拟模块114b可以模拟传感器对场景的感知。

训练引擎112可以包括注释模块114c。来自传感器模拟模块114b的模拟传感器输出可以用场景中指示障碍物的实际位置的场景的“地面实况”来注释。注释还可以指示障碍物(例如车辆)占据的位置或区域的范围。

训练引擎112可以包括机器学习模块114d。机器学习模块114d可训练机器学习模型110a。例如,可以通过输入模拟传感器输出以及场景中的障碍物的位置来训练机器学习模型110a以识别障碍物的位置。特别地,传感器输出可以被提供为输入数据组,并且钻车缝车辆的相对位置可以被提供作为输入数据组的期望输出。

在一些实施例中,训练引擎112可以包括验证模块114e。验证模块114e根据统计模型(诸如下面参照图5至11描述的统计模型之一)来处理模拟传感器输出。验证模块114e然后可以表征与注释模块114c的注释相比较的统计模型的准确性。例如,在统计模型产生指示障碍物位于给定位置的高概率的输出的情况下,可以将该位置与注释进行比较。可以比较该位置与注释中指示的位置之间的距离。距离越大,统计模型的准确性越低。

参考图1b,使用图1a的系统验证或生成的机器学习模型110a或统计模型110b可以用于在所示的系统120中执行障碍物检测,系统120可以合并到车辆中,例如自主或人类操作的车辆。例如,系统120可以包括封装在车辆内的控制器122。车辆可以包括本领域已知的任何车辆。车辆可以具有本领域已知的任何车辆的所有结构和特征,包括车轮、联接到车轮的传动系、联接到传动系的发动机、转向系统、制动系统以及包含在车辆中的本领域已知的其他系统。

如在此更详细讨论的,控制器122可以使用传感器数据来执行自主导航和碰撞避免。或者,控制器122可识别障碍物并使用传感器数据产生用户可感知的结果。具体而言,控制器122可以使用如下面关于图3a至图11所描述的机器学习或统计模型来识别传感器数据中的障碍物。

控制器122可以从一个或多个成像设备124接收一个或多个图像流。例如,一个或多个摄像机可以被安装到车辆并输出由控制器122接收的图像流。控制器122可以从一个或多个麦克风126接收一个或多个音频流。例如,一个或多个麦克风或麦克风阵列可被安装到车辆并输出由控制器122接收的音频流。麦克风126可以包括具有随角度变化的灵敏度的定向麦克风。

在一些实施例中,系统120可以包括联接到控制器122的其他传感器128,诸如激光雷达(光检测和测距)、雷达(无线电检测和测距)、声呐(声音导航和测距)、超声波传感器等等。感测设备124、126、128的位置和取向可以对应于在用于训练机器学习模型110a的传感器模型108d中建模的那些。

控制器122可以执行碰撞避免模块130,碰撞避免模块130从成像设备124、麦克风126和其他传感器128中的一些或全部接收输出。碰撞避免模块130然后分析输出以识别潜在障碍物。

碰撞避免模块130可以包括障碍物识别模块132a、碰撞预测模块132b和决策模块132c。障碍物识别模块132a分析感测设备124、126、128的输出并且识别潜在的障碍物,包括人、动物、车辆、建筑物、路沿以及其他物体和结构。特别地,障碍物识别模块132a可以使用如下面关于图3至图11所描述的机器学习模型或统计模型来识别障碍物。

碰撞预测模块132b基于其当前的轨迹或当前的预期路径预测哪些障碍物图像可能与车辆发生碰撞。碰撞预测模块132b可以评估与由障碍物识别模块132a识别的物体以及使用机器学习模块132a检测到的障碍物碰撞的可能性。决策模块132c可以做出停止、加速、转弯等的决定以避开障碍物。碰撞预测模块132b预测潜在碰撞的方式以及决策模块132c采取行动以避免潜在碰撞的方式可以根据自主车辆领域中已知的任何方法或系统。

决策模块132c可以通过驱动控制车辆的方向和速度的一个或多个驱动器136来控制车辆的轨迹。例如,驱动器136可以包括转向驱动器138a、加速器驱动器138b和制动器驱动器138c。驱动器138a-138c的配置可以根据自主车辆领域中已知的这种驱动器的任何实施方式。

决策模块132c可以附加地或替换地响应于检测到潜在的碰撞引发驾驶员可感知的警报的产生而不是引发自主碰撞避免。

图2是示出示例性计算设备200的框图。计算设备200可以用于执行各种过程,诸如在此讨论的过程。服务器系统102和控制器122可以具有计算设备200的一些或全部属性。

计算设备200包括一个或多个处理器202、一个或多个存储设备204、一个或多个接口206、一个或多个大容量存储设备208、一个或多个输入/输出(i/o)设备210和显示设备230,所有这些设备都联接到总线212。处理器202包括执行存储在一个或多个存储设备204和/或大容量存储设备208中的指令的一个或多个处理器或控制器。处理器202还可以包括各种类型的计算机可读介质,诸如高速缓冲存储器。

存储设备204包括诸如易失性存储器(例如随机存取存储器(ram)214)和/或非易失性存储器(例如只读存储器(rom)216)的各种计算机可读介质。存储设备204还可以包括可重写rom,例如闪存。

大容量存储设备208包括各种计算机可读介质,诸如磁带、磁盘、光盘、固态存储器(例如闪存)等等。如图2所示,特定的大容量存储设备是硬盘驱动器224。大容量存储设备208中还可以包括各种驱动器,以使得能够从各种计算机可读介质读取和/或写入各种计算机可读介质。大容量存储设备208包括可移动介质226和/或不可移动介质。

i/o设备210包括允许将数据和/或其他信息输入到计算设备200或从计算设备200进行检索的各种设备。示例i/o设备210包括光标控制设备、键盘、小键盘、麦克风、监视器或其他显示设备、扬声器、打印机、网络接口卡、调制解调器、镜头、ccd(电荷耦合器件)或其他图像捕捉设备等。

显示设备230包括能够向计算设备200的一个或多个用户显示信息的任何类型的设备。显示设备230的示例包括监视器、显示终端、视频投影设备等。

接口206(一个或多个)包括允许计算设备200与其他系统、设备或计算环境交互的各种接口。示例性接口206(一个或多个)包括任意数量的不同网络接口220,诸如到局域网(lan)、广域网(wan)、无线网络和因特网的接口。其他接口包括用户接口218和外围设备接口222。接口206还可以包括一个或多个外围接口,诸如用于打印机、定位设备(鼠标、跟踪板等)、键盘等的接口。

总线212允许处理器202、存储设备204、接口206、大容量存储设备208、i/o设备210和显示设备230彼此以及与联接到总线212的其他设备或部件通信。总线212表示几种类型的总线结构中的一个或多个,诸如系统总线、pci总线(外围部件互连总线)、ieee1394总线、usb总线(通用串行总线)等等。

为了说明的目的,程序和其他可执行程序部件在本文中被示为离散框,但是应该理解的是,这样的程序和组件可以在各种时间驻留在计算设备200的不同存储部件中,并且由处理器202(一个或多个)执行。可选地,这里描述的系统和过程可以用硬件或硬件、软件和/或固件的组合来实现。例如,一个或多个专用集成电路(asic)可以被编程以执行在此描述的一个或多个系统和过程。

参照图3a,所示出的方法300a可以由服务器系统102执行以评估统计模型110b。方法300a可以包括定义场景模型302。例如,如图4a和4b所示,包括道路400的环境模型可以与放置在道路400的车道内的车辆402、404的模型组合,并且车辆402、404在场景模型的传播期间具有可以从一个时间步长到另一个时间步长不同的速度和加速度。

主车辆406也可以放置在模型中并且可以具有从一个时间步长到另一个时间步长不同的速度和加速度。可以从主车辆406的视角来模拟通过麦克风、成像设备和/或其他传感器对场景的感知。成像设备124a-124d麦克风126a、126b和其它传感器128(例如激光雷达、雷达、声纳)的特定位置和取向可以根据传感器模型108d在主车辆406上定义。

方法300a可以包括播放场景模型动态304。特别地,模型中的每辆车辆402、404、406可以具有预定义的速度或位置分布,其定义速度和/或分布将如何随时间变化。因此,播放场景304可以包括模拟多个离散的时间步长,其中对于每个时间步长,根据预定义的速度或位置分布,每辆车辆402、404、406被移动到模型内的不同位置。

方法300a可以进一步包括模拟场景的传感器感知306。例如,对于每个时间步长,可以从特定传感器的视角捕获模型的状态(例如在那个时间步长的车辆402、404、406的位置和速度)。具体而言,可以使用根据主车辆406上的传感器模型108d的传感器的位置以及传感器模型108d中定义的传感器的操作容量来模拟传感器输出。

例如,对于每个成像设备,可以生成从主车辆406上的成像设备的视角来呈现的场景。对于麦克风,可以模拟在时间步长期间从车辆402、404、406传播到主车辆上的麦克风位置处的麦克风上传入的声音。模拟声音可以包括简单地模拟来自声音源的行进时间和任何多普勒效应。模拟声音还可以包括模拟可能到达麦克风位置的车辆、地面或建筑物的反射。

对于激光雷达传感器,可以模拟来自激光雷达传感器的视角的点云,其中点云的点是在激光雷达传感器的视场中的场景的环境或车辆402、404、406的结构的点。在一些激光雷达系统中,测量的点可以包括三维坐标和反射率值。在一些实施例中,模型106a、106b可以包括其外表面的反射率值。因此,对于激光雷达系统的视角中的点云的点,可以包括包含每个点的结构的反射率值。也可以包括由各种其他传感器对场景模型的感知。对于雷达或声呐系统,可以针对每个时间步长模拟来自场景的物体和车辆的反射。

在方法300a中,步骤306可以包括通过传感器模型模拟对场景的感知,使得噪声存在于模拟的传感器输出中。因此,可以模拟声音的传播以对建筑物或其他车辆的回声建模。雷达信号的传播可以被建模,使得电磁波的传播被足够详细地模拟以捕获可能在雷达传感器的输出中产生“虚幻物体”和其他噪声的多个反射。同样地,对于激光雷达,光线追踪可以足够详细地执行以捕获多次反射并且可以模拟激光雷达传感器的激光束的大气衰减和散射。

各种传感器可以具有与更新场景模型的时间步长不同的帧(frame)或扫描速率。相应地,可以产生比时间步长数量更多或更少的输出。例如,对于声音,为了准确地模拟声音的检测所需要的样本的数量可能大于时间步长。因此,可以为每个时间步长采取多个样本。例如,时间步长可以被细分为更小的时间步长,并且可以记录通过场景模型传播并传入到麦克风位置的声音的模拟样本。以类似的方式,来自成像设备的图像、来自激光雷达的点云、来自雷达或声纳的反射可以在比时间步长更小或更大的不同时期被模拟。

在步骤306中模拟传感器感知的结果可以是传感器输出流,例如一系列图像、音频信号、一组点云、不同时间点处的一组反射等等。传感器输出流可以根据场景的建模利用在传感器输出被接收的时间步长处场景的状态来注释308。例如,注释308可以包括列出在给定时间步长处的场景中的障碍物(例如车辆、行人、标志、建筑物等)的位置和/或相对速度。相对于主车辆406的位置的位置和速度可以被包括在注释中。

方法300a还可以包括将模拟传感器输出输入到统计模型310。例如,可以将模拟传感器输出输入到下面参照图5至11描述的统计模型。

方法300a可以进一步包括将统计模型输出与注释进行比较312。如下面关于图5至11详细描述的,当计算出的概率满足阈值条件时,统计模型可以产生指示障碍物存在或存在于给定位置处的输出。相应地,步骤312可以包括将在给定时间点存在或不存在障碍物的统计模型的发现与指示在该时间点场景中是否存在障碍物的注释进行比较。在统计模型提供具有高于阈值概率的位置作为障碍物的位置的情况下,可以将该位置与注释进行比较以确定场景是否在该位置处包括障碍物。步骤312的比较可以是手动的或自动的。步骤312可以包括基于比较的输出手动或自动地调整模型的一个或多个参数。

参照图3b,在另一个实施例中,方法300b包括如上参考图3a所述的步骤302-312。然而,步骤306可能不被足够详细地建模以在模拟传感器输出中产生足够的传感器噪声。相反,可以在步骤314修改模拟传感器输出以包括噪声。在步骤314添加的噪声可以被添加为根据实验确定的传感器的噪声模型定义的随机信号。然后可以在步骤310将修改的模拟传感器输出输入到统计模型,并如上面关于图3a所述进行处理。

参照图3c,在另一个实施例中,方法300c可以包括上面关于图3a所描述的步骤302-308。步骤306可以包括有效的建模以在模拟传感器输出中产生噪声,并且可以附加地或替代地包括如图3b的步骤314所述的添加噪声。

方法300b可以进一步包括将注释的模拟传感器输出输入到机器学习算法318,以及使用注释的模拟传感器输出训练机器学习模型320。

例如,对于每个时间步长,针对该时间步长模拟的每种类型传感器的一个或多个传感器输出可以被输入到机器学习算法318。同样地,在该时间步长中的场景中的障碍物的位置可以被输入到该模型,例如在该时间步长的场景模型中的车辆404与车辆406的相对位置。对于音频信号,时间步长可能太短而无法进行有意义的分析。因此,在步骤318,对于每个时间步长之前和/或之后的多个时间步长,即包括每个时间步长的时间步长的窗口,模拟声音的样本可以被输入到模型。

机器学习模型110a然后可以通过更新针对每个时间步长的传感器输出输入318的模型110a以及在每个时间步长处场景的障碍物的位置而被训练320。机器学习算法训练模型110a的方式可以根据机器学习领域中已知的任何方式来执行。同样,传感器输出可以以连续的方式输入到机器学习算法,而不是作为个别时间步长的离散数据集。

方法300c的结果是机器学习模型110a,该机器学习模型110a被训练为针对传感器输出的输入流输出根据传感器输出检测到的障碍物的位置。许多机器学习算法还输出一个指示模型的输出是正确的概率的置信度分数。因此,也可以通过模型对于每个检测到的障碍物输出相应的置信度分数。

然后可以将根据步骤320训练的机器学习模型加载到车辆控制器122中,车辆控制器122然后将传感器输出输入到模型,并且根据模型的输出执行关于检测到的障碍物的障碍物规避。

图5示出了使用统计模型来检测障碍物的示例性方法500。因此,根据方法500,可以在步骤318处理根据方法300a、300b的步骤306的模拟传感器输出。然后可以在步骤312将根据方法500确定的障碍物的位置与步骤308中模拟传感器输出的注释中包括的情景中的障碍物的位置进行比较。

方法500提供了一种方法,通过该方法,每个表示检测到的障碍物的轨迹片段被创建和更新。方法500可以在方法300a、300b的上下文中由服务器系统102执行或者当用于实际的障碍物检测时由车辆控制器122执行。

方法500可以包括接收传感器数据502,传感器数据在方法300a、300b的情况下是模拟传感器数据或者当在实际车辆中使用时是实际传感器数据。在下文中,当由车辆控制器122执行方法500时,对于“传感器数据”和“传感器”的引用应该被理解为指的是来自传感器124、126、128的实际传感器数据。当方法500在方法300a、300b中的任一方法的情况下执行时,应将“传感器数据”和“传感器”理解为指的是模拟传感器数据和感知场景的传感器模型108d。

接收传感器数据502可以包括从个别传感器接收数据。例如,方法500可以针对从任何传感器接收的每个数据帧执行。或者,根据方法500,可以同时处理从多个传感器接收的数据帧。在一些实施例中,传感器可以具有不同的帧速率,从而执行单独的处理。

方法500可以包括识别传感器数据中的特征504。步骤504可以包括如本领域已知的用于识别传感器数据中的对象的任何技术。步骤504可以包括识别传感器数据中与诸如车辆、人、动物、标志、建筑物或可能存在的任何其他物体的存在一致的特征。

步骤504的输出可以是每个表示检测到的特征的数据对象的列表。数据对象可以包括特征的位置(例如中心的坐标)、特征的范围、边界框或立方体的总体积或表面积或大小或顶点位置、或其他数据。有各种各样的传感器来检测物体,每个传感器都可以定义自己的坐标系。相应地,步骤504的位置数据可以从检测到该特征的传感器的坐标系统转换为公共坐标系统,例如被指定为公共坐标系统的传感器之一的坐标系统。转换可以通过校准步骤来确定,其中使用各种传感器来检测已知位置处的物体,并且评估传感器输出以将传感器输出映射到公共坐标系统。

方法500可以包括评估该特征是否已经被分配给现有轨迹片段506。每个轨迹片段可以是包含在步骤504识别的特征的一些或全部数据的数据对象,例如位置和范围。轨迹片段还可以包括轨迹。因此,步骤506可以包括确定特征是否具有与现有轨迹片段对应的位置和范围,例如在现有轨迹片段的位置和范围的位置和范围的一些公差值内。轨迹片段可以包括轨迹,使得可以从轨迹确定物体的预测位置。因此,步骤506可以包括确定特征的尺寸和范围是否对应于现有轨迹片段的范围和预测位置,例如在这些值的一些公差内。

如果不是,则可以创建轨迹片段508。在一些实施例中,仅当特定条件得到满足时才为检测到的特征创建轨迹片段,例如针对最小数量的数据帧和/或与真实物体一致的行为的重复检测特征。例如,可以通过执行图6的方法600来执行步骤508,这可以包括在某些情况下避免创建轨迹片段。

如果发现存在相应的轨迹片段506,则方法500可以包括更新该轨迹片段510。例如,在步骤504识别的特征的位置和范围可以作为最近测量的位置和范围而被添加到轨迹片段。更新510可以包括将来自步骤504的数据对象的数据添加到轨迹片段,并且关于来自步骤504的数据并且针对方法500的之前的迭代从步骤504执行卡尔曼滤波。如本领域中已知的,卡尔曼滤波可以被用于使用各种传感器输出的物体跟踪,以便去除传感器噪声并提供物体轨迹片段的估计。

方法500可以包括更新在步骤510更新的或者在步骤508创建的轨迹片段的概率512。在一些实施例中,更新512可以包括根据贝叶斯统计模型处理在步骤504识别的特征,其中处理每个传感器输出以确定对由轨迹片段表示的物体存在的概率的影响。对于现有的轨迹片段,步骤512可以包括使用在步骤504识别的特征来执行贝叶斯概率更新。

在一些实施例中,更新轨迹片段概率512可以包括更新概率,使得只有识别轨迹片段表示的物体的次数确定概率。在其它实施例中,可以将其他数据结合到统计模型中,诸如其中识别出步骤504的特征的传感器的方差、位置数据相对于卡尔曼滤波轨迹的变化或其它因素。在一些实施例中,到特征的距离可以是更新概率512的一个因素,使得与远离车辆300a的特征相比,对于更靠近车辆300a的特征,概率增加得更多。

概率更新步骤512使得多个传感器的输出的融合成为可能,其中每次由任何传感器检测到对应于轨迹片段的物体时,概率将增加。因此,可以使用具有不同感测模态的各种传感器来确认物体的位置,以避免由于单个传感器的输出中的噪声或传感器类型而导致的误报。

如果在514发现在步骤512中更新的概率满足某个阈值置信水平,则可以采取一个或多个动作。例如,在位置处的以及在轨迹片段中记录有轨迹的物体可以被添加到一组潜在的障碍物516,并且可以相对于这组障碍物执行碰撞避免。

在一些实施例中,如果车辆300a和物体的轨迹片段指示碰撞将在没有方位变化的情况下发生,则可以产生对驾驶员的警报。在车辆300a不是自主车辆的情况下或者在可能人为干预的半自主地操作的情况下,这是特别有用的。

参照图6,所示出的方法600可以在方法500的步骤508处执行,以便确定对于在一个或多个传感器的输出中检测到的特征是否创建轨迹片段。

方法600可以包括从传感器数据识别特征的属性602,例如其位置、范围、形状等。方法600还可以包括确定该特征是否是一组n个连续的传感器帧中的该特征的第n次出现,其中n是整数,诸如从10到30的整数,优选地是20。传感器帧可以表示从特定传感器获得的一组数据。n个传感器帧可以是来自相同传感器或具有不同感测模态的多个传感器的传感器帧。特征是否存在于n个连续的帧中可以包括确定具有步骤602的属性(范围、位置、形状等)的特征存在于n个连续的帧中。

方法600还可以包括评估(604)n个连续帧中的特征的位置的变化是否与真实物体一致。物体可能正在移动,相应地,n个连续帧是否包括可能对应于相同物体的特征可以包括确定(606)具有一致位置和/或形状的特征存在于n个帧中并且展现与真实轨迹片段一致的帧之间的位置变化,例如具有对应于真实物体的速度、加速度、转弯半径等。

如果发现满足步骤604和606的条件,则可以创建轨迹片段线608,其包括在n个连续帧的特征中包括的从数据中导出的数据或值。如果不是,则方法600可以结束而不创建用于该特征的轨迹片段。如果步骤604和606中的一个或两个的条件随后被满足,则可以在方法600的后续迭代中创建轨迹片段。

参照图7,所示的图示出了轨迹片段随着时间的变化。特征700a-700c表示在一个传感器的输出中检测到的特征,特征702a、702b表示在第二传感器的输出中检测到的特征,特征704表示在第三传感器的输出中检测到的特征。第一、第二和第三传感器可以是具有不同感测模态的不同类型的传感器,例如基于镜头的摄像机、激光雷达传感器、雷达传感器、超声波传感器等。

一旦检测到特征700a,就可以例如响应于执行方法600而创建轨迹片段。计算初始概率p(0),该初始概率p(0)指示基于在传感器输出中找到的特征700a物体实际上存在的置信度。

在随后的时间点,例如由于位于特征700a的轨迹706a上、具有与特征700a公差范围内的距离、具有与特征700a相同的范围和/或形状、或者一些其他标准,特征700b和702a被检测并确定为属于与特征700a相同的轨迹片段。

可以基于特征700a和较新特征700b、702a来计算轨迹片段的更新轨迹706b。如上所述,轨迹706b可以通过对这些特征700a、700b、702a进行卡尔曼滤波来计算。

计算更新的概率p(1),其指示鉴于特征700a、700b和702a,轨迹片段表示真实物体的置信度。如上所述,这可以包括基于特征700b、702a执行贝叶斯概率更新。

在稍后的时间点,特征700c、702b和704被检测并且与轨迹片段相关联。如上所述计算另一更新的轨迹706c,并基于最近的特征700c、702b、704计算更新的概率p(2)。在某一点上,概率p(2)变得足够大,以致确定物体是真实的。因此,车辆控制器102可以关于物体执行障碍物避免。

在图7的示例中,当首先在较远距离处检测到物体时,与该物体相对应的特征很少。随着物体越来越近,越来越多的特征被检测到并用于更新轨迹片段。因此,概率将这些特征的作用随时间聚集,使得当物体成为潜在危险时,概率将超过阈值并且可以执行障碍物避免。

相比之下,从不与轨迹片段关联的特征以及随着时间来自多个传感器的许多特征将不会超过阈值并且将被忽略。这将包括对应于不接近车辆300a的物体的特征以及由于传感器噪声而不是实际物体所检测到的特征。

如图5-7所示,所示的统计方法试图跟踪各个物体的位置和可能的速度。因此,用于方法300a、300b的步骤308的注释可以包括具有场景中的障碍物的实际位置的注释。然后可以将这些位置与轨迹片段位置进行比较以确定轨迹片段是否对应于场景中的障碍物或者是否为误报以及是否完全没有检测到障碍物,即漏报。

如上所述,在步骤512使用统计模型来更新轨迹片段概率。可以基于方法300a、300b的步骤312的比较来调整该模型。例如,对于特定传感器,统计模型可以包括定义响应于检测而增加概率的量的函数。定义这个函数的参数可以被调整以减少误报和漏报。例如,对于相同的一组模拟传感器输出,图5-6的方法可以利用在每次迭代时更新的用于各种传感器的概率更新函数的参数来重复地执行,以便减少误报和漏报的次数。

图8示出了另一种场景,其中封装控制器122的车辆800可以具有诸如激光雷达、雷达、超声波或其他传感器之类的后向传感器128a、128b。车辆800还可以包括后向摄像机124a、124b。后向摄像机124a、124b可以实现双目视觉,使得可以从摄像机124a、124b的输出来确定物体的三维位置。传感器128a、128b的输出也可以是三维数据的形式,例如以点云的形式,其中每个点表示检测到材料的位置。其他传感器128c、128d可以检测横向区域中的物体,并且传感器128e、128f可以检测车辆800的前方区域中的障碍物。前向摄像机124c、124d也可以用于前方障碍物检测。虽然这里公开的系统和方法对于改善倒车时的安全性特别有用,但是它们也可以通过前向摄像机和其他传感器而应用于向前移动。

对于方法300a、300b,图8中所示的场景可以用车辆800来建模,并且其相应的传感器被模型和根据场景的模型所模拟的场景的感知所替代。在下文中,当在方法300a、300b的情况下执行时,对车辆800的参考以及传感器124a-124d、128a-128e的感知应理解为是指这些部件的模型。

本文公开的方法特别涉及车辆800后面的有关区域802。很明显,有关区域802在车辆800的后方纵向延伸,并且还可以在车辆800的任一侧横向延伸。成像设备124a-124d中的至少一些和其他传感器128a-128f中的至少一些在其视场中至少具有这个有关区域802。在一些实施例中,成像设备124a、124b和其他后向传感器128a、128b的视场可以比该有关区域802更远地延伸。在这样的实施例中,与位于有关区域302中的特征相比,指示有关区域802外部位置的传感器输出中的特征可以被忽略或者对物体位于有关区域802的概率具有降低的影响。

位于有关区域802内的物体804a、804b由成像设备124a、124b和其他传感器128a、128b检测,并且可以引发车辆800的制动。下面参考图9描述检测物体804a、804b的方法。

参照图9,所示出的方法900可以包括接收成像设备124a、124b和其他传感器126a、126b的输出。方法900可以在方法300a、300b的情况下由服务器系统102执行,或者当用于实际障碍物检测时由车辆控制器122执行。

方法900可以针对来自所有成像设备124a、124b和其他传感器126a、126b的输出执行,使得任何传感器的输出中的任何特征可以有助于增加物体存在于有关区域802中的概率。特别地,可以基于通过不同的传感器检测不同的物体来更新单个概率度量。

方法900可以包括接收传感器数据902。方法900可以关于从成像设备124a、124b和其他传感器126a、126b(以下称为“感测设备”)接收到的每一帧传感器数据执行。方法900可以单独或同时处理来自多个感测设备的传感器数据的帧。在方法300a、300b的情况执行方法900的情况下,“感测设备”应该指的是感测设备的模型,并且传感器数据或传感器输出应该是指模拟场景感知的模拟传感器输出。

方法900可以包括评估传感器输出中是否检测到物体904,传感器输出可以是一对双目图像、点云、检测到的雷达或超声波反射或任何其他传感器输出。在这些输出中检测物体的方式可以包括使用本领域已知的用于使用双目视觉、雷达传感器、激光雷达传感器、超声波传感器或用于检测车辆的环境的其他类型传感器来检测物体的任何方法。由于传感器可能具有误报,因此检测物体可能准确或不准确。因此,检测物体904可以包括检测指示潜在障碍物的感测设备的输出中的特征。因此,在下文中对检测到的物体的引用是指对传感器输出中的指示障碍物的特征的处理。

如果检测到物体904,则方法900的其余元素可以被执行。这可以包括确定到检测到的物体的距离906。这可以包括本领域已知的用于使用双目视觉、雷达传感器、激光雷达传感器、超声波传感器或用于检测车辆环境的其他类型的传感器来检测物体的位置的任何方法。在一些实施例中,检测物体904可以固有地包括确定其位置,使得步骤906不包括不同的步骤。

感测设备可以以不同的坐标系或不同的形式提供物体的位置,例如以碰撞时间的形式。相应地,步骤906可以包括将位置转换成公共坐标系统或公共距离度量,例如车辆800后面的纵向距离或者距车辆800的纵向中心线的横向距离。

当传感器输出中的特征指示物体存在时,每个感测设备可以具有指示从传感器的输出确定的到物体的距离以及物体实际上是否存在的一个或两个中的不确定性的方差。

在一些情况下,这种方差可以是方向性的,即传感器可以相比物体的横向位置更精确地感测物体的纵向位置,反之亦然。相应地,传感器可以具有纵向方差和横向方差。如果发现接收到步骤902的输出的传感器908具有方向依赖方差,则方法900可以包括更新方向概率910。

具体而言,对于发现的每个输出904以指示物体的存在,概率可以被更新,使得每当感测设备感测到物体时概率增加。在一些实施例中,概率根据随着输出指示物体存在的次数和由该输出指示的感测物体的距离两者而增加的函数而更新。在一些实施例中,概率可以根据所有以下参数的函数来更新:(a)传感器输出指示物体的次数,(b)到感测物体的距离,以及(c)指示感测物体的存在的传感器的方差。具体而言,响应于检测物体904,概率增加的量将随着到物体的距离减小和检测到物体的传感器的方差减小而变大。

在概率为零的情况下,即先前没有检测到物体,可以使用贝叶斯概率函数基于这些参数来计算概率。在概率非零的情况下,可以使用贝叶斯概率更新技术根据这些参数响应于物体的每次检测904来更新概率。

在方向依赖方差的情况下,方向概率(例如纵向概率和横向概率)可以被更新910或初始计算,其中根据感测设备的距离和纵向方差来计算纵向概率,并且根据感测设备的距离和横向方差计算横向概率。

在接收到步骤902的传感器数据的感测设备不具有方向依赖性的情况下,可以使用相同的参数并且以与方向概率相同的方式来更新单个一般概率912。可选地,步骤912可以包括使用感测设备104a、104b、106a、106b的方向无关的方差更新(912)方向概率以更新两个方向概率。

方法900可以包括评估是否已经满足概率阈值914。这可以包括评估一个或多个一般概率或方向概率超过某个置信度阈值,例如至少70%、80%、90%或确定性的一些其它最小百分比。

如果是,则可以由控制器采取动作(916),例如自动激活制动器、降低或停止加速度、对驾驶员产生可感知的警报、自主地导航车辆300绕开检测到(904)的物体或者防止或降低撞击造成的伤害的任何其他的动作。

实际上,方法900将导致感测物体远离车辆的概率增加。随着物体接近,概率将快速增加,都是因为以下几点:(a)距离是计算概率的一个因素,它正在变小,(b)更多的传感器将检测到物体,以及(c)当物体更靠近车辆时,物体的检测次数会不断增加,并且每次检测到物体时概率增加。可以以这样的方式来计算概率,即有关区域802中的物体的存在将对步骤916的阈值将被满足的概率具有足够大的影响。

在一些实施例中,在没有检测到传感器的输出中的物体(904)的情况下,概率(一般的和方向的)可能被衰减918。例如,如果在一个或多个数据帧的任何传感器的输出中没有检测到物体,则例如根据指数衰减函数或者根据贝叶斯概率更新,概率可能衰减918,其中附加信息是缺少确认由统计模型指示的概率的数据。衰减量可以随着在指示物体的任何传感器的数据帧与执行方法900的当前时间之间经过的时间量而增加。

在许多情况下,物体可以暂时存在于有关区域802中或附近。类似地,传感器噪声可能导致感测设备104a、104b的输出中物体的瞬时感知。因此,不是所有的感知物体都需要制动或采取其他动作。衰减概率918可能会减少这些暂时性检测的影响。

在一些实施例中,暂时性检测的影响可以进一步降低,并且可以通过放大概率(一般的或方向的)的趋势(920)来放大增加概率的影响。例如,如果概率随时间衰减,则可以指定调谐参数,并且可以根据概率中的衰减速率和调谐参数的函数使概率衰减更多。

类似地,放大趋势(920)可以包括根据调谐参数以及概率随时间增加的速率的函数而增加概率,即响应于对于方法900的两次或更多次迭代的物体检测904。以这种方式,非暂时性的并且导致概率(一般的或方向的)增加的物体的影响将增加,确保概率将快速达到将会引发动作的阈值,例如激活制动器916。

在根据方法300a、300b的模拟的背景下执行方法900的情况下,可以省略步骤916或者以模拟制动来替换步骤916,即在场景中模拟车辆800的模型的制动。因为方法900的输出是有关区域802被占据的确定,所以步骤308的注释因此可以包括对于给定时间步长有关区域802是否在场景中被占据。因此,可以将步骤914的确定与注释进行比较以识别误报(区域在场景中未被占据,但是发现阈值被满足914)以及漏报(区域被占据,但是没有发现阈值被满足914)。

对于这里公开的其他实施例,可以调整定义步骤912、910概率更新函数或者概率的放大920和衰减918的参数。例如,可以利用每次迭代时调整的参数重复处理相同的传感器输出,以减少误报和漏报的次数。

参照图10,所示出的方法1000提供了用于识别障碍物的基于网格的方法。方法1000可以在方法300a、300b的情况下由服务器系统102执行,或者当用于实际的障碍物检测时由车辆控制器122执行。下面参照图8的示例性场景来描述方法1000。

方法1000可以包括初始化网格。如图11所示,车辆周围的区域可以被划分成每个都具有与之相关的占据概率的网格正方形。在没有任何传感器数据的情况下,网格可以被初始化1002,使得每个网格正方形的占据概率是50%。

方法1000可以包括接收传感器数据1004,传感器数据在方法300a、300b的情况中是模拟传感器数据或者当在实际车辆中使用时是实际传感器数据。在下文中,当由车辆控制器122执行方法500时,对于“传感器数据”和“传感器”的引用将被理解为指来自传感器124a-14d、1128a-128f的实际传感器数据。当方法500在方法300a、300b的任一方法的情况下执行时,应将“传感器数据”和“传感器”理解为是指模拟传感器数据和感知场景的传感器模型。

方法1000可以进一步包括更新车辆动态1006。这可以包括从车辆传感器和一个或多个加速度计接收数据以确定车辆的速度以及可能的其它值,例如横摆率、方向盘转角、转向车轮角度等。根据传感器和/或加速度计数据确定车辆动态的方式可以根据本领域已知的任何方法。

方法1000可以进一步包括根据步骤1004的传感器数据和步骤1006的车辆动态中的一个或两个来更新概率网格1008。一些传感器数据提供三维(3d)点云,例如激光雷达数据或从双目视觉获得的数据。相应地,在步骤1008,可以更新与立体物体对应的一个或多个坐标重叠的网格正方形。具体而言,每当对应于立体物体的坐标与网格正方形重叠时,可以增加占据的概率。

在一些实施例中,传感器可以具有与之相关联的方差。因此,也可以更新不与对应于立体物体的坐标重叠的网格正方形,使得基于该方差,该网格正方形的概率增加。例如,对于坐标(x0,y0),可以定义分布函数f(x-x0,y-y0),该分布函数表示检测到的物体的可能的实际位置在点(x0,y0)处。相应地,在该函数对于网格正方形边界内的x和y的值是非零或高于阈值的情况下,可以更新该网格正方形的概率。

在一些实施例中,传感器具有视场,并且可以指示该视场中的物体的存在,但是不提供坐标。因此,函数f(r,θ)可以指示当传感器指示物体被检测到时物体以相对于传感器的给定半径和角度出现的概率。因此,对于指示传感器视场占据的传感器输出,与该视场重叠的网格正方形可能具有根据f(r,θ)的值而增大的占据概率,其中r和θ对应于该网格正方形位置。

更新网格正方形的概率(1008)可以进一步包括衰减由于如上所述的传感器输出而未增加的一个或多个网格正方形的概率。例如,对于网格正方形的概率不增加的每个时间步长,其概率可以根据衰减函数而减小。

图11示出了对图8的场景的感知之后的结果网格。每个网格正方形的阴影表示该网格正方形的占据概率。因此,重叠和/或围绕障碍物804a、804b的位置的网格正方形被显示为阴影并且具有非零概率。

方法1000可以进一步包括更新有关区域802(1010)。特别地,车辆800移动得越快,区域802越大,因为停止或改变方向所需的反应时间增加。在一些实施例中,区域802可以是弧形的,指示由横摆率、方向盘转角和转向车轮角度中的一些或全部所确定的车辆的弧形路径。相应地,区域802可以在步骤1010被修改以对应于横摆率、方向盘转角和转向车轮角度中的一些或全部的当前值。

方法1000还可以包括评估(1012)有关区域802中的任何网格正方形的概率是否超过阈值概率。如图11所示,例如,图8的场景的感知导致对应于障碍物804a、804b的位置的正方形具有超过阈值的概率。

如果有关区域中的至少一个网格正方形具有超过阈值条件的概率,则可以采取一个或多个动作,诸如制动(1014)、产生可听见或可看见的警报或转向以避开障碍物。

在方法300a、300b的情况中执行方法1000的情况下,步骤308的注释可以指示每个网格正方形的实际占据。因此,可以将根据模拟传感器输出计算的网格正方形的概率与注释进行比较。网格正方形在给定的时间步长中具有高于阈值的概率,在那个时间步长它们没有被注释为被占据是误报。网格正方形对于一时间步长具有低于阈值的概率,在该时间步长它们被注释为占据是误报。

各种参数可以通过实验调整以减少误报和漏报的数量。具体而言,可以调整传感器的概率函数和在步骤1008中用于给定网格正方形的概率函数的给定值的概率更新函数,以便减少误报和漏报的数量。

在上面的公开中,已经参考了形成该公开的一部分的附图,并且其中通过图示的方式示出了可以在其中实施本公开的具体实施方式。应该理解的是,可以利用其他实施方式,并且可以在不脱离本公开的范围的情况下进行结构改变。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能不一定包括特定特征、结构或特性。而且,这样的短语不一定是指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为无论是否明确描述,结合其他实施例影响这种特征、结构或特性是在本领域技术人员的知识范围内。

本文公开的系统、设备和方法的实施方式可以包括或利用包括计算机硬件的专用或通用计算机,诸如例如一个或多个处理器和系统存储器,如本文所讨论的。在本公开的范围内的实施方式还可以包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以被通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施方式可以包括至少两种截然不同的计算机可读介质:计算机存储介质(设备)和传输介质。

计算机存储介质(设备)包括ram、rom、eeprom(电可擦可编程只读存储器)、cd-rom(只读光盘驱动器)、固态驱动器(ssd)(例如基于ram)、闪存、相变存储器(pcm)、其他类型存储器、其他光盘存储器、磁盘存储器或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码手段并且可以被通用或专用计算机访问的任何其他介质。

本文公开的设备、系统和方法的实施方式可以通过计算机网络进行通信。“网络”被定义为能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或其他通信连接(硬连线、无线或者硬连线或无线的组合)将信息传递或提供给计算机时,计算机将该连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,其可以被用来以计算机可执行指令或数据结构的形式携带期望的程序代码手段,并且可以被通用或专用计算机访问。上述的组合也应该包括在计算机可读介质的范围内。

计算机可执行指令例如包括在处理器处执行时使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。计算机可执行指令可以是例如二进制文件、诸如汇编语言的中间格式指令或者甚至是源代码。虽然已经用结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于描述的特征或上述描述的动作。相反,所描述的特征和动作作为实施权利要求的示例形式被公开。

本领域技术人员将认识到,本公开可以在具有许多类型的计算机系统配置的网络计算环境中实施,包括车内计算机、个人计算机、台式计算机、便携计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络pc(个人电脑)、小型计算机、大型计算机、移动电话、pda(个人数字助理)、平板电脑、寻呼机、路由器、交换机、各种存储设备等。本发明还可以在分布式系统环境中实施,其中通过网络链接的本地和远程计算机系统(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)都执行任务。在分布式系统环境中,程序模块可能位于本地和远程内存存储设备中。

此外,在适当的情况下,本文所描述的功能可以以下中的一个或多个来执行:硬件、软件、固件、数字部件或模拟部件。例如,一个或多个专用集成电路(asic)可以被编程以执行本文描述的一个或多个系统和过程。整个说明书和权利要求中使用了某些术语来指代特定的系统部件。如本领域技术人员将认识到的,部件可以通过不同的名称来引用。本文档不打算区分名称不同但功能相同的的部件。

应该注意,上面讨论的传感器实施例可以包括计算机硬件、软件、固件或其任何组合以执行其功能的至少一部分。例如,传感器可以包括被配置成在一个或多个处理器中执行的计算机代码,并且可以包括由计算机代码控制的硬件逻辑/电路。这里提供这些示例性设备是为了说明的目的,而不是限制性的。本公开的实施例可以在其他类型的设备中实现,如相关领域的技术人员将会知道的。

本公开的至少一些实施例针对包含存储在任何计算机可用介质上的这种逻辑(例如以软件的形式)的计算机程序产品。当在一个或多个数据处理设备中执行时,这样的软件使得设备如本文所述进行操作。

尽管以上已经描述了本公开的各种实施例,但是应该理解的是,它们仅以示例的方式呈现,而不是限制。对于相关领域的技术人员显而易见的是,在不脱离本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的广度和范围不应该被任何上述示例性实施例限制,而是应该仅根据权利要求及其等同原则来限定。前面的描述是为了说明和描述的目的而提出的。这并不意图是穷尽的或将本公开限制为所公开的确切形式。鉴于上述教导,许多修改和变化是可能的。此外,应该注意的是,可以以期望的任何组合来使用前述替代实施方式中的任一个或全部,以形成本公开的另外的混合实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1