用于在车辆感知系统中自由空间推断以分开群集对象的系统和方法与流程

文档序号:17784009发布日期:2019-05-28 21:28阅读:237来源:国知局
用于在车辆感知系统中自由空间推断以分开群集对象的系统和方法与流程

本公开总体上涉及车辆感知系统,并且更具体地涉及用于在车辆感知系统中区分群集对象的系统和方法。



背景技术:

车辆感知系统已经被引入到车辆中以允许车辆感测其环境并且在一些情况下允许车辆自主地或半自主地导航。可以在车辆感知系统中采用的感测装置包括雷达、激光雷达、图像传感器等。

虽然近年来已经看到车辆感知系统的显著进步,但是这样的系统在许多方面仍然可以得到改进。例如,激光雷达可以用于检测车辆附近的对象。然而,激光雷达数据可能难以区分彼此非常接近的多个对象。彼此非常接近的多个对象可以呈现为激光雷达数据中的单个对象。

因此,期望提供用于分离激光雷达数据中的群集对象的系统和方法,以便可以区分彼此非常接近的多个对象。此外,从以下结合附图和前述技术领域和背景技术的详细描述和所附权利要求,本发明的其他期望特征和特性将变得显而易见。



技术实现要素:

提供了用于在车辆感知系统中区分群集对象的系统和方法。在一个实施例中,提供了一种用于识别对象之间的自由空间的在车辆中的处理器实现的方法。该方法包括由处理器检索车辆周围的体素网格,其中体素网格具有多个列。该方法还包括:由处理器跟踪来自车辆上的激光雷达系统的激光雷达束通过体素网格;由处理器识别体素网格中每个列的最大子阵列;由处理器对每个列分类自由空间级别;以及由处理器将经分类的列输出为图像。

在一个实施例中,检索体素网格包括检索激光雷达点云数据、检索相对于车辆的激光雷达位置信息、以及检索车辆位置信息。

在一个实施例中,检索体素网格还包括基于激光雷达点云数据、激光雷达位置信息和车辆位置信息来移动预先存在的体素网格。

在一个实施例中,跟踪激光雷达束通过体素网格包括:如果激光雷达束之一行进通过体素,则将第一特征分配给体素;如果没有激光雷达束行进通过体素,则将第二特征分配给体素;以及如果激光雷达束之一终止于体素,则将第三特征分配给体素。

在一个实施例中,第一特征是清除,第二特征是未知,并且第三特征是被占用。

在一个实施例中,识别体素网格中的每个列的最大子阵列包括为每个体素分配分数。

在一个实施例中,为每个体素分配分数包括:如果已经将第一特征分配给体素,则将第一值分配给体素;如果已经将第二特征分配给体素,则将第二值分配给体素;以及如果已经将第三特征分配给体素,则将第三值分配给体素。

在一个实施例中,第一值大于第二值和第三值,并且第二值大于第三值。

在一个实施例中,识别体素网格中的每个列的最大子阵列还包括:识别最大化列的分数的连续元素序列;识别所识别的连续元素序列的子阵列长度;以及识别所识别的连续元素序列中的最低单元的高度。

在一个实施例中,对每个列分类自由空间级别包括:基于列的已识别最大子阵列中的最低单元的高度和子阵列长度为每个列确定来自启发式查找表的自由空间级别分类。

在一个实施例中,具有最高自由空间级别分类的列指示图像中的对象之间的自由空间。

在一个实施例中,具有最低自由空间级别分类的列指示图像中的对象之间没有自由空间。

在另一个实施例中,提供了一种车辆中的系统,用于从激光雷达数据生成识别对象之间的自由空间的二维图。该系统包括体素网格调整模块,其包括通过编程在非暂态计算机可读介质中编码的指令配置的一个或多个处理器,其中体素网格调整模块被配置为生成围绕车辆的体素网格,其中体素网格具有多个列。。该系统还包括:激光雷达束跟踪模块,其包括通过编程在非暂态计算机可读介质中编码的指令配置的一个或多个处理器,其中激光雷达束跟踪模块被配置为跟踪来自车辆上的激光雷达系统的激光雷达束通过体素网格;最大子阵列模块,其包括通过编程在非暂态计算机可读介质中编码的指令配置的一个或多个处理器,其中最大子阵列模块被配置为识别体素网格中的每个列的最大子阵列;以及自由空间级别分类模块,其包括通过编程在非暂态计算机可读介质中编码的指令配置的一个或多个处理器,其中自由空间级别分类模块被配置为根据自由空间级别对每个列分类。该系统被配置为将经分类的列输出为图像。

在一个实施例中,激光雷达束跟踪模块被配置为使用激光雷达点云数据、相对于车辆的激光雷达位置信息和车辆位置信息来生成体素网格。

在一个实施例中,激光雷达束跟踪模块被配置成通过如下跟踪激光雷达束通过体素网格:如果激光雷达束中之一行进通过体素,则将体素表征为清除;如果没有激光雷达束行进通过体素,则将体素表征为未知;以及如果激光雷达束中之一终止于体素,则将体素表征为被占用。

在一个实施例中,最大子阵列模块被配置为通过向每个体素分配分数来识别体素网格中的每个列的最大子阵列,其中分配分数包括:如果激光雷达束之一行进通过体素,则将第一值分配给该体素;如果激光雷达束没有行进通过体素,则将第二值分配给该体素;以及如果激光雷达束之一终止于体素,则将第三值分配给该体素。

在一个实施例中,最大子阵列模块还被配置为通过如下来识别体素网格中的每个列的最大子阵列:识别最大化列的分数的连续元素序列;识别所识别的连续元素序列的子阵列长度;以及识别所识别的连续元素序列中的最低单元的高度。

在一个实施例中,自由空间级别分类模块被配置为通过基于列的已识别最大子阵列中的最低单元的高度和子阵列长度为每个列确定来自启发式查找表的自由空间级别来对每个列分类自由空间级别。

在另一个实施例中,自主车辆包括生成激光雷达数据的激光雷达系统和配置成从激光雷达数据生成识别对象之间的自由空间的二维图像的映射系统。映射系统包括通过编程在非暂态计算机可读介质中编码的指令配置的一个或多个处理器。映射系统被配置为检索车辆周围的体素网格,其中体素网格具有多个列。映射系统还被配置为跟踪来自激光雷达系统的激光雷达束通过体素网格,识别体素网格中每个列的最大子阵列,对每个列分类自由空间级别,并将经分类的列输出为图像。

在一个实施例中,映射系统被配置为通过如下来识别体素网格中的每个列的最大子阵列:对每个体素进行评分;识别最大化列的分数的连续元素序列;识别所识别的连续元素序列的子阵列长度;以及识别所识别的连续元素序列中的最低单元的高度。

附图说明

在下文中将结合以下附图描述示例性实施例,其中相同的附图标记表示相同的要素,并且其中:

图1a描绘了根据各种实施例的包括激光雷达(光检测和测距)系统的示例性车辆;

图1b呈现了根据各种实施例的图1a的示例性车辆的示出了激光雷达系统的俯视图;

图1c描绘了根据各种实施例的示例性车辆周围空间的计算机化三维表示中的可以被可视化为围绕图1a的示例性车辆形成的示例性体素网格;

图2是示出根据各种实施例的与自主车辆相关联的自主驾驶系统(ads)的功能框图;

图3是根据各种实施例的示例性车辆中的示例性映射系统的框图;

图4a描绘了根据各种实施例的在激光雷达束跟踪操作之后的示例性体素网格的侧视图;

图4b描绘了根据各种实施例的在激光雷达束跟踪操作之后的另一示例性体素网格的侧视图;

图4c示出了根据各种实施例的体素列中的体素状态到分数的转换;

图4d示出了根据各种实施例的示例性列中的最大子阵列的确定;

图4e示出了根据各种实施例的示例性列中最大子阵列的最低元素的长度和高度的确定;

图5是描绘了根据各种实施例的用于从激光雷达数据生成的用于识别对象之间的自由空间的俯视二维(2d)图像的在车辆中的示例性过程的过程流程图;

图6是描绘根据各种实施例的用于通过自由空间级别对体素网格中的列分类的车辆中的示例性过程的过程流程图;以及

图7是根据各种实施例的从激光雷达数据生成的识别对象之间的自由空间的示例性俯视二维(2d)图像。

具体实施方式

以下详细描述本质上仅是示例性的,并不旨在限制应用和用途。此外,无意受前述技术领域、背景技术、概述或以下详细描述中呈现的任何明示或暗示的理论的约束。如本文所使用的,术语“模块”是指单独的或以任何组合的任何硬件、软件、固件、电子控制组件、处理逻辑和/或处理器装置,包括但不限于:专用集成电路(asic)、现场可编程门阵列(fpga)、电子电路、处理器(共享、专用或组)和执行一个或多个软件或固件程序的存储器、组合逻辑电路和/或提供所描述的功能的其他合适组件。

本文中可以在功能和/或逻辑块组件和各种处理步骤方面描述本公开的实施例。应当理解,这样的块组件可以由被配置为执行指定功能的任何数量的硬件、软件和/或固件组件来实现。例如,本公开的实施例可以采用各种集成电路组件,例如,存储器元件、数字信号处理元件、逻辑元件、查找表等,其可以在一个或多个微处理器或其他控制装置的控制下执行各种功能。另外,本领域技术人员将理解,本公开的实施例可以结合任何数量的系统来实践,并且本文描述的系统仅仅是本公开的示例性实施例。

为简洁起见,与信号处理、数据传输、信令、控制、机器学习模型、雷达、激光雷达、图像分析以及系统的其他功能方面(以及系统的各个操作组件)相关的传统技术可以不在本文进行详细描述。此外,本文包含的各种图中所示的连接线旨在表示各种元件之间的示例性功能关系和/或物理耦接。应当注意,在本公开的实施例中可以存在许多替代或附加的功能关系或物理连接。

图1a和图1b描绘了包括激光雷达(光检测和测距)系统102的示例性车辆100。图1a呈现了示例性车辆100的侧视图,并且图1b呈现了示例性车辆100的俯视图。示例性激光雷达系统102安装在示例性车辆100的表面(例如,顶表面)上。示例性激光雷达系统102包括旋转(例如,沿逆时针方向)并发射多个光束104的传感器。示例性激光雷达系统102测量光束返回到车辆100的时间量,以测量车辆100周围的对象的距离。示例性车辆100包括映射系统106,该映射系统106被配置为提供车辆周围的区域的二维俯视图,该区域已被处理以突出显示视图中的对象之间的自由空间。

图1c描绘了示例性体素网格108,其可以被视觉化为在示例性车辆100周围的空间的计算机化三维表示中围绕示例性车辆100形成。示例性体素网格108由多个体素110(在该示例中具有阴影的单个体素)组成。示例性体素网格108中的每个体素110可以被表征为处于如下三种状态之一:清除状态、占用状态或未知状态。在该示例中,基于来自示例性车辆100的激光雷达束104是否已经进入或穿过体素110来确定体素状态。如果从激光雷达数据中可以确定激光雷达束在遇到对象之前将穿过体素,则认为该体素处于清除状态。如果从激光雷达数据可以确定对象将存在于体素处,则认为该体素处于被占用状态。如果不能从激光雷达数据确定体素的状态,则认为体素处于未知状态。多个连续体素可以指示单个对象或一个或多个群集对象。映射系统106被配置为指示多个连续体素是指示单个对象或一个或多个群集对象。

如图1a所示,车辆100通常包括底盘12、车身14、前轮16和后轮18。车身14布置在底盘12上并且基本上包围车辆100的组件。车身14和底盘12可以共同形成框架。车轮16至18各自在车身14的相应拐角附近可旋转地联接到底盘12。

在各种实施例中,车辆100是自主车辆,并且映射系统106并入到自主车辆100中。自主车辆100例如是自动控制以将乘客从一个位置运送到另一个位置的车辆。在所示实施例中,车辆100被描绘为乘用车,但是也可以使用其他车辆类型,包括摩托车、卡车、运动型多功能车(suv)、休闲车(rv)、船舶、飞机等。

在示例性实施例中,自主车辆100对应于汽车工程师协会(sae)自主驾驶级别的“j3016”标准分类法下的四级或五级自动化系统。使用该术语,四级系统表示“高自动化”,指的是自主驾驶系统执行动态驾驶任务的所有方面——即使人类驾驶员没有对干预请求做出适当响应也是如此——的驾驶模式。另一方面,五级系统表示“完全自动化”,指的是其中自主驾驶系统在可由人类驾驶员管理的所有道路和环境条件下执行动态驾驶任务的所有方面的驾驶模式。然而,应当理解,根据本主题的实施例不限于自动化类别的任何特定的分类法或标题。此外,根据本实施例的系统可以与可以实现本主题的任何车辆结合使用,而不管其自主等级如何。

如图所示,自主车辆100通常包括推进系统20、传动系统22、转向系统24、制动系统26、传感器系统28、致动器系统30、至少一个数据存储装置32、至少一个控制器34和通信系统36。在各种实施例中,推进系统20可以包括内燃机、诸如牵引电动机的电机、和/或燃料电池推进系统。传动系统22被配置成根据可选择的速度比将动力从推进系统20传递到车轮16和18。根据各种实施例,传动系统22可以包括步进比自动变速器、无级变速器或其他适当的变速器。

制动系统26配置成向车轮16和18提供制动扭矩。在各种实施例中,制动系统26可以包括摩擦制动器、线控制动器、再生制动系统例如电机、和/或其他适当的制动系统。

转向系统24影响车轮16和/或18的位置。虽然为了说明的目的被描绘为包括方向盘25,但是在本公开的范围内预期的一些实施例中,转向系统24可以不包括方向盘。

传感器系统28包括一个或多个传感装置40a至40n,其感测自主车辆100的外部环境和/或内部环境的可观察状况(例如一个或多个乘员的状态)并生成与其相关的传感器数据。感测装置40a至40n可以包括但不限于雷达(例如,远程、中程、短程)、激光雷达、全球定位系统、光学相机(例如,前向、360度、后向、侧向、立体等)、热(例如,红外)相机、超声波传感器、测距传感器(例如,编码器)和/或可以结合根据本主题的系统和方法使用的其他传感器。

致动器系统30包括一个或多个致动器装置42a至42n,其控制一个或多个车辆特征,例如但不限于推进系统20、传动系统22、转向系统24和制动系统26。在各种实施例中,自主车辆100还可以包括图1a中未示出的内部和/或外部车辆特征,诸如各种门、行李箱和诸如空气、音乐、照明、触摸屏显示组件(诸如与导航系统结合使用的那些组件)的舱室特征等。

数据存储装置32存储用于自动控制车辆100的数据。在各种实施例中,数据存储装置32存储可导航环境的定义的映射。在各种实施例中,定义的映射可以由远程系统预定义并从远程系统获得。例如,定义的地图可以由远程系统组装并且(以无线方式和/或以有线方式)传送到自主车辆100并存储在数据存储装置32中。路线信息也可以存储在数据存储装置32中——即,一组路段(在地理上与一个或多个定义的地图相关联)一起定义用户可以从起始位置(例如,用户的当前位置)行进到目标位置的路线。可以理解,数据存储装置32可以是控制器34的一部分,与控制器34分开,或者是控制器34的一部分并且单独系统的一部分。

控制器34包括至少一个处理器44和计算机可读存储装置或介质46。处理器44可以是任何定制的或商业上可用的处理器、中央处理单元(cpu)、图形处理单元(gpu)、专用集成电路(asic)(例如,实现神经网络的定制asic)、现场可编程门阵列(fpga)、与控制器34相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、其任何组合、或通常用于执行指令的任何装置。计算机可读存储装置或介质46可以包括例如只读存储器(rom)、随机存取存储器(ram)和保活存储器(kam)中的易失性和非易失性存储器。kam是可用于在处理器44断电时存储各种操作变量的持久性或非易失性存储器。计算机可读存储装置或介质46可以使用许多已知存储器装置中的任何一种来实现,例如可编程只读存储器(prom)、电prom(eprom)、电可擦除prom(eeprom)、闪存或能够存储数据的任何其他电、磁、光或组合存储器装置,所述数据中的一些表示由控制器34用于控制自主车辆100的可执行指令。在各种实施例中,控制器34被配置为实现如下面详细讨论的映射系统。

指令可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。当由处理器44执行时,指令从传感器系统28接收和处理信号(例如,传感器数据),执行用于自动控制自主车辆10的组件的逻辑、计算、方法和/或算法,并基于逻辑、计算、方法和/或算法生成传输到致动器系统30以自动控制自主车辆100的组件的控制信号。尽管图1a中仅示出了一个控制器34,但是自主车辆100的实施例可以包括任何数量的控制器34,其通过任何合适的通信介质或通信介质的组合进行通信,并且协作以处理传感器信号、执行逻辑、计算、方法和/或算法,以及生成控制信号以自动控制自主车辆100的特征。

通信系统36被配置为向如下其他实体48无线地传送信息以及从如下其他实体48无线地接收信息:例如但不限于其他车辆(“v2v”通信)、基础设施(“v2i”通信)、网络(“v2n”通信)、行人(“v2p”通信)、远程运输系统和/或用户装置。在示例性实施例中,通信系统36是无线通信系统,其被配置为使用ieee802.11标准或通过使用蜂窝数据通信经由无线局域网(wlan)进行通信。然而,诸如专用短程通信(dsrc)信道的附加或替代通信方法也被认为在本公开的范围内。dsrc信道是指专为汽车应用而设计的单向或双向短距离到中距离无线通信信道以及相应的协议和标准集。

根据各种实施例,控制器34实现如图2所示的自主驾驶系统(ads)70。也就是说,控制器34的合适的软件和/或硬件组件(例如,处理器44和计算机可读存储装置46)用于提供与车辆100结合使用的自主驾驶系统70。

在各种实施例中,自主驾驶系统70的指令可以通过功能或系统来组织。例如,如图2所示,自主驾驶系统70可以包括感知系统74、定位系统76、路径规划系统78和车辆控制系统80。可以理解,在各种实施例中,指令可以被组织成任何数量的系统(例如,组合、进一步划分等),因为本公开不限于本示例。

在各种实施例中,感知系统74合成并处理所获取的传感器数据并预测车辆100的环境的对象和特征的存在、位置、分类和/或路径。在各种实施例中,感知系统74可以合并来自如下多个传感器(例如,传感器系统28)的信息:包括但不限于相机、激光雷达、雷达和/或任何数量的其他类型的传感器。

定位系统76处理传感器数据以及其他数据以确定车辆100相对于环境的位置(例如,相对于地图的本地位置、相对于道路的车道的精确位置、车辆航向等)。可以理解,可以采用各种技术来实现这种定位,包括例如同时定位和映射(slam)、粒子滤波器、卡尔曼滤波器、贝叶斯滤波器等。

路径规划系统78处理传感器数据以及其他数据以确定车辆100遵循的路径。车辆控制系统80根据确定的路径生成用于控制车辆100的控制信号。

在各种实施例中,控制器34实现机器学习技术以辅助控制器34的功能,例如特征检测/分类、障碍物减轻、路线遍历、映射、传感器集成、地面实况确定等。

在各种实施例中,映射系统106的全部或部分可以包括在感知系统74、定位系统76、路径规划系统78和/或车辆控制系统80内。如上面简要提到的,图1a的映射系统106被配置为以突出显示对象之间的自由空间的方式处理激光雷达数据,以提供车辆周围区域的二维俯视图。

图3是示例性车辆300中的示例性映射系统302的框图。示例性映射系统302被配置为从激光雷达数据生成车辆300周围区域的识别图像304中的对象之间的自由空间的二维图像304。为了生成图像304,示例性映射系统302被配置为:针对当前实例实时检索车辆周围的体素网格,其中体素网格具有多个列;跟踪来自激光雷达系统的激光雷达束通过体素网格;识别体素网格中的每个列的最大子阵列;对每个列分类自由空间级别;以及将经分类的列输出为图像。示例性映射系统302包括体素网格调整模块306、激光雷达束跟踪模块308、最大子阵列模块310、自由空间分类模块312和启发式查找表(lut)314。

映射系统包括控制器,该控制器被配置为实现体素网格调整模块306、激光雷达束跟踪模块308、最大子阵列模块310、自由空间分类模块312和lut314。控制器包括至少一个处理器和编码有用于配置控制器的编程指令的计算机可读存储装置或介质。处理器可以是任何定制的或商业上可用的处理器、中央处理单元(cpu)、图形处理单元(gpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、与控制器相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、其任何组合、或通常用于执行指令的任何装置。

计算机可读存储装置或介质可以包括例如只读存储器(rom)、随机存取存储器(ram)和保活存储器(kam)中的易失性和非易失性存储器。kam是可用于在处理器断电时存储各种操作变量的持久性或非易失性存储器。计算机可读存储装置或介质可以使用许多已知存储器装置中的任何一种来实现,例如可编程只读存储器(prom)、电prom(eprom)、电可擦除prom(eeprom)、闪存或能够存储数据的任何其他电、磁、光或组合存储器装置,所述数据中的一些表示由控制器使用的可执行编程指令。

示例性体素网格调整模块306被配置为针对当前实例实时生成围绕车辆的体素网格307,其中体素网格307具有多个列。示例性体素网格调整模块306被配置为检索预先存在的体素网格(或构造一个)并检索激光雷达点云数据301、相对于车辆的激光雷达位置信息303、以及来自其他车辆系统的车辆位置信息305。使用检索到的体素网格、激光雷达点云数据301、激光雷达位置信息303和车辆位置信息305,示例性体素网格调整模块306被配置为针对当前实例实时调整/生成体素网格307。

示例性激光雷达束跟踪模块308被配置为跟踪来自车辆上的激光雷达系统的激光雷达束通过体素网格307。示例性激光雷达束跟踪模块被配置成通过如下来跟踪激光雷达束通过体素网格307:如果激光雷达束行进通过体素,则将体素表征为清除;如果没有激光雷达束行进通过体素,则将体素表征为未知;以及如果激光雷达束终止于体素,则将该体素表征为被占用。示例性激光雷达束跟踪模块308被配置为使用激光雷达点云数据301、相对于车辆的激光雷达位置信息303和来自其他车辆系统的车辆位置信息305来跟踪激光雷达束。

图4a描绘了在激光雷达束跟踪操作之后的示例性体素网格400的侧视图。示例性体素网格400包括多个体素,其通过如下三种状态之一来表征:清除状态(c)、被占用状态(o)或未知状态(u)。如果激光雷达束行进通过体素,则体素被表征为清除,如果没有激光雷达束行进通过体素,则体素被表征为未知,或者如果激光雷达束终止于体素,则该体素被表征为被占用。此外,出于说明性目的,覆盖在体素网格400上的是示例性车辆402和示例性激光雷达束404。

返回参考图3,示例性最大子阵列模块310被配置为识别体素网格中的每个列的最大子阵列。示例性最大子阵列模块310被配置为通过向每个体素分配分数来识别体素网格中的每个列的最大子阵列311。分配分数可以包括:如果激光雷达束行进通过体素,则将第一值(例如,10)分配给体素,如果激光雷达束终止于体素,则将第二值(例如,-50)分配给该体素,以及如果没有激光雷达束行进通过体素,则将第三值(例如,-2)分配给体素。示例性最大子阵列模块310还被配置为通过如下来识别体素网格中每个列的最大子阵列311:识别最大化列的分数的连续元素序列;识别所识别的连续元素序列的子阵列长度;以及识别所识别的连续元素序列中的最低单元(即,具有最低高度的单元)的高度。可以使用地面高度图309来识别最低单元的高度。

图4b描绘了在激光雷达束跟踪操作之后的示例性体素网格410的侧视图。示例性体素网格410包括多个体素,其通过如下三种状态之一来表征:清除状态(c)、被占用状态(o)或未知状态(u)。在该示例中,如果激光雷达束行进通过体素,则体素被表征为清除,如果没有激光雷达束行进通过体素,则体素被表征为未知,或者如果激光雷达束终止于体素,则该体素被表征为被占用。示例性体素网格410按列分组。

图4c示出了体素列中的体素状态到分数的转换。特别地,图4c描绘了来自具有由以下三个状态之一来表征的六个体素的体素网格的示例性列420——清除(c)、被占用(o)或未知(u)——以及示例性列420',其中体素状态已经被转换为分数。在该示例中,处于“c”状态的体素被分配为10的分数,处于“o”状态的体素被分配为-50的分数,并且处于“u”状态的体素被分配为-2的分数。

图4d示出了示例性列430中的最大子阵列432的确定。在该示例中,通过在序列中的各个体素分数被加在一起时识别具有最大总分的列430中的连续体素序列来确定最大子阵列432。在该示例中,列430顶部的四个体素序列的总分数具有列430中的任何体素序列的最大分数。在该示例中,具有最大分数的体素序列的总分等于28(10+10-2+10=28)。没有其他连续的体素序列在加在一起时具有更高的总分数。

最大子阵列的长度等于子阵列中元素的数目,并且子阵列的高度等于最大子阵列中最低单元的地面以上的高度。如图4e的示例中所示,长度等于4并且高度等于0.5米,因为从列顶部起第四个体素的高度等于0.5米。

返回参考图3,示例性最大子阵列模块310包括列评分模块316、用于识别列中的最大子阵列的标识(id)模块318、以及用于识别列中的最大子阵列的子阵列长度和高度的id模块320。示例性列评分模块316被配置为通过向每个体素分配分数来识别体素网格中的每个列的最大子阵列。示例性id模块318被配置为通过识别列中最大化列的分数的连续元素序列来识别最大子阵列。示例性id模块320被配置为识别所识别的连续元素序列的子阵列长度,并使用来自地面高度图309的数据识别所识别的连续元素序列中的最低单元的高度。

示例性自由空间级别分类模块被配置为根据自由空间级别对每个列分类。示例性自由空间级别分类模块被配置为通过针对每个列确定来自启发式lut314的自由空间级别来对每个列分类自由空间级别。将列中的最大子阵列的子阵列长度和高度输入到启发式lut314,其对列分类自由空间级别。此示例中的自由空间级别包括四个级别:高自由级别、中自由级别、低自由级别和非常低自由级别。自由空间级别可以指示具有如下的列中的对象的可能性:高自由级别,其指示列中没有对象的较高可能性;以及非常低自由级别,其指示列中存在对象的较高可能性。

示例性lut314可以包括以下常数(以米为单位):

high_free_space__min_clear_column_length=1.0;high_free_space__max_clear_column_elevation=0.5;medium_free_space__min_clear_column_length=0.5;medium_free_space__max_clear_column_elevation=1.0;low_free_space__min_clear_column_length=0.25;low_free_space__max_clear_column_elevation=1.5;very_low_free_space__min_clear_column_length=0.25;并且very_low_free_space__max_clear_column_elevation=2.0。

示例性lut314可以根据以下对列分类:

如果((高度<high_free_space__max_clear_column_elevation)并且(长度>high_free_space__min_clear_column_length))那么free_space_output=free_space_output__highly_free。

如果((高度<medium_free_space__max_clear_column_elevation)并且(长度>medium_free_space__min_clear_column_length))那么free_space_output=free_space_output__medium_free。

如果((高度<low_free_space__max_clear_column_elevation)并且(长度>low_free_space__min_clear_column_length))那么free_space_output=free_space_output__low_free。

如果((高度<very_low_free_space__max_clear_column_elevation)并且(长度>very_low_free_space__min_clear_column_length))那么free_space_output=free_space_output__very_low_free。

如果没有满足上述条件,那么free_space_output=free_space_output__unknown。

作为示例,如果示例性最大子阵列模块310已经找到10米长的最大子阵列,其开始于地面以上0.1米,则该列将被分类为“高自由”。在该示例中,第一个“if”语句被执行是因为高度=0.1<high_free_space__max_clear_column_elevation=0.5并且长度=10>high_free_space__min_clear_column_length=1.0。

在另一示例中,示例性最大子阵列模块310已经找到了10.0米长并且在地面上方5.0米处开始的最大子阵列。尽管最大子阵列的长度可以暗示自由空间,但是从地面以上这样的高度开始的最大子阵列可以表明可能存在阻止最大子阵列开始更靠近地面的某些事物(例如,汽车引擎盖或其他阻挡物)。在这种情况下,没有执行“if”语句,因为高度太高。在此示例中,最大子阵列标记为free_space_output__unknown。

示例性映射系统302还被配置为将经分类的列输出为图像304。在自由空间级别中分类的列可以显示为车辆周围区域的俯视图。具有高自由级别的列可以指示图像中的对象之间的空间。

示例性映射系统302还被配置为将经分类的列输出为图像304。在自由空间级别中分类的列可以显示为车辆周围区域的俯视图。具有高自由级别的列可以指示图像中的对象之间的空间。

图5是描绘车辆中用于从激光雷达数据生成识别对象之间的自由空间的俯视二维(2d)图像的示例性过程500的过程流程图。示例性过程500包括针对当前实例实时检索车辆周围的体素网格,其中体素网格具有多个列(操作502)。检索体素网格可以包括检索预先存在的体素网格(或构建一个)以及检索激光雷达点云数据、相对于车辆的激光雷达位置信息、以及来自其他车辆系统的车辆位置信息。检索体素网格还可以包括针对当前实例实时基于激光雷达点云数据、激光雷达位置信息和车辆位置信息移动体素网格(例如,将体素的列添加到车辆运动方向上的体素网格)。体素网格可以通过如下两者来移动:对于先前时间实例,将体素添加到体素网格的正面,其中所添加的体素的数量对应于在时间增量上在正面方向上的车辆移动量;以及针对先前时间实例,将体素从体素网格的后面移除,其中移除的体素的数量对应于在时间增量上在与后面方向相反的方向上的车辆移动量。

示例性过程500包括跟踪来自车辆上的激光雷达系统的激光雷达束通过体素网格(操作504)。跟踪激光雷达束通过体素网格可以包括为每个体素分配三个特征中的一个,例如,如果激光雷达束行进通过体素,则将体素表征为清除,如果没有激光雷达束行进通过体素,则将体素表征为未知,以及如果激光雷达束终止于体素,则将该体素表征为被占用。激光雷达点云数据、相对于车辆的激光雷达位置信息以及来自其他车辆系统的车辆位置信息可以用在激光雷达束跟踪操作中。

示例性过程500包括识别体素网格中的每个列的最大子阵列(操作506)。识别体素网格中的每个列的最大子阵列可以包括为每个体素分配分数,其中分数可以包括基于分配给体素的特征的三个不同值中的一个。作为示例,如果激光雷达束行进通过体素,则可以将值10分配给体素,如果没有激光雷达束行进通过体素,则可以将值-50分配给体素,并且如果激光雷达束终止于体素,则可以将值-2分配给体素。识别体素网格中的每个列的最大子阵列可以进一步包括:识别最大化列的分数的连续元素序列;识别所识别的连续元素序列的子阵列长度;以及识别所识别的连续元素序列中的最低单元的高度。

示例性过程500包括对每个列分类自由空间级别(操作508)。对每个列分类自由空间级别可以包括通过向启发式查找表输入列的最大子阵列中的最低单元的高度以及最大子阵列的长度来确定每个列的自由空间级别以及接收为输出自由空间级别。此示例中的自由空间级别可以是以下四个级别之一:高自由级别、中自由级别、低自由级别和非常低自由级别。

示例性过程500包括将经分类的列输出为图像(操作510)。经分类的列可以用于生成车辆周围区域的俯视图。具有高自由级别的列可以指示图像中的对象之间的空间。

图6是描绘车辆中用于通过自由空间级别对体素网格中的列分类的示例性过程600的过程流程图。在体素网格中对激光雷达束进行光线跟踪之后,示例性过程包括为每个体素分配分数(操作602)。作为示例,处于第一状态(例如,“c”状态)的体素可以被分配为10的分数,处于第二状态(例如,“o”状态)的体素可以被分配为-50的分数,并且处于第三状态(例如,“u”状态)的体素可以被分配为-2的分数。

示例性过程600包括在每个列中找到最大子阵列(操作604)。对于每个列,识别最大化列的分数的连续元素序列。

示例性过程600包括识别最大子阵列的长度和最大子阵列的高度(操作606)。此示例中的长度等于最大子阵列中的元素数目。在该示例中,高度是包含最大子阵列中的连续元素序列中的最后元素的体素的地面高度。

示例性过程600还包括通过应用启发式查找表根据列中的自由空间的程度对每个列分类(操作608)。在此示例中,启发式查找表的输入包括最大子阵列的长度和高度。输出包括列的自由空间的程度。在此示例中,输出如下四个级别之一:高自由级别、中自由级别、低自由级别和非常低自由级别。经分类的列可以用于生成车辆周围区域的俯视图。具有高自由级别的列可以指示图像中的对象之间的自由空间。

图7是从激光雷达数据生成的识别对象之间的自由空间的示例性俯视二维(2d)图像。图示的是第一车辆上的激光雷达传感器708。示例性图像示出了第一车辆左侧的第一对象702的局部轮廓、第一车辆前方的第二对象(例如,第二车辆)704的局部轮廓、以及第二对象704的左侧的第三对象(例如,第三车辆)706的局部轮廓。在第二对象704和第三对象706之间示出的是黑色空间的突出部700,其示出了第二对象704和第三对象706之间的自由空间。自由空间的突出部700在评估两个车辆704、706是分离的实体方面是有价值的。在没有突出部700的情况下,计算机算法可能将两个车辆704、706视为单个大型对象,因为它们的点彼此非常接近。使用示例性映射系统允许通过突出显示对象之间的自由空间的突出部700来区分示例性图像中的第二对象704和第三对象706。

从本文描述的技术生成的2d图像可以用于检测错误对象和追踪错误。如果车辆中的感知系统(例如感知系统74)使用例如不正确的速度来追踪对象,则车辆对被追踪对象的位置的感知可能偏离现实世界对象的实际位置。作为示例,车辆对被追踪对象的位置的错误感知可能将对象放置在高度自由的区域中。从本文描述的技术生成的2d图像可以示出被追踪对象实际上处于自由空间区域中并且因此发生追踪错误。

虽然在前面的详细描述中已经呈现了至少一个示例性实施例,但是应该理解存在大量的变型。还应当理解,一个或多个示例性实施例仅是示例,并不旨在以任何方式限制本公开的范围、适用性或配置。更确切地,前面的详细描述将为本领域技术人员提供用于实现一个或多个示例性实施例的便利路线图。应当理解,在不脱离所附权利要求及其合法等同内容所阐述的本公开的范围的情况下,可以对要素的功能和布置进行各种改变。

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