一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法与流程

2021-09-17 23:24:00 来源:中国专利 TAG:测距 专利申请 探测 有序 传感器

用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法
1.相关申请案交叉引用
2.本专利申请要求于2019年3月22日提交的序列号为16/362,261、发明名称为“用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法(system and method for ordered representation and feature extraction for point clouds obtained by detection and ranging sensor)”的美国专利申请的利益,该专利申请的内容通过全文引用的方式并入本文中。
技术领域
3.本发明涉及用于生成通过探测和测距(detection and ranging,dar)传感器提供的点云的有序表示的系统和方法,这有助于从中执行相关特征提取。


背景技术:

4.自动驾驶车辆通常包括不同类型的传感器,这些传感器可以用于感测车辆运行的环境,捕获有关环境的信息,并产生表示捕获信息的传感器数据。自动驾驶车辆上越来越流行的一种传感器是lidar传感器。lidar传感器捕获车辆运行环境中对象的三维(three

dimensional,3d)信息,并在空间中生成表示对象的数据点集合。三维(three

dimensional,3d)空间中的每个数据点集合在本领域中通常称为点云。然而,点云中的数据点集合通常是无序数据点,具有不规则构成,反映了3d空间中不均匀的采样密度。
5.自动驾驶车辆通常包括基于机器学习的系统,该系统可以执行特征提取过程,以从由lidar传感器获得的点云提取特征,这些特征用于基于机器学习的系统的一个或多个下游推理过程,以执行如3d对象识别和语义分割等模式识别任务。然而,传统的特征提取过程可能无法考虑lidar传感器用于生成点云的射线扫描或测距过程。特别地,从lidar传感器接收的点云不是如同lidar传感器可以放置为从每个方向观看一样进行采样的自然3d表面。相反,lidar传感器通常固定在车辆上,且仅扫描有限的视野,因而只能从可以扫描的方向产生尽可能多的数据点。此外,lidar传感器每次扫描所产生的点云符合一种空间顺序,该空间顺序通常是针对lidar传感器定制的,且在用于执行下游的模式识别任务的一个或多个下游推理过程中没有被适当考虑。


技术实现要素:

6.本发明涉及一种基于点云形成过程的特征提取方法和网格表示,使用球坐标将由dar传感器感测或扫描的环境的3d空间划分为小体积(也称为“3d仓(3d bin)”),并对每个小体积(例如3d仓)内的点云的数据点进行排序,从而以有利于进行高效信号处理的方式执行相关特征提取。这种新型的表示为广泛的相关模式识别任务(包括但不限于对象检测和语义分割)定义了3d空间。这些模式识别任务的可靠执行对于自动驾驶车辆至关重要。
7.本发明描述了一种方法和系统的示例,所述方法和系统用于组织由dar传感器(如
雷达传感器或lidar传感器)提供的点云的数据点,以便能够从点云提取特征,这些特征可以解释边缘、角点和需要了解点云中数据点顺序的其它对象特征。对点云的数据点执行特征提取,并考虑dar传感器生成点云的过程。
8.在一些示例中,使用由dar传感器感测或扫描的环境的3d空间的3d球面网格表示,将从dar传感器接收的点云转换为有序特征向量(或增强数据点)集合和元数据。所公开的示例可以通过基于机器学习的系统(例如,自动驾驶车辆中的基于机器学习的系统)的推理子模块实现更高效的模式识别,如对象检测和语义分割。
9.在一些方面中,点云的数据点处理基于(1)球坐标中的3d网格表示,所述3d网格表示包括网格所涵盖的每个3d仓内数据点的排序,和(2)特征提取操作,这些特征提取操作将每个3d仓中的数据点转换为使用数据点的空间排序的特征向量和相关元数据。
10.根据本发明的一个方面,提供了一种方法,所述方法包括接收具有多个数据点的点云,每个数据点表示3d空间中的3d位置,所述点云使用探测和测距(detection and ranging,dar)传感器获得。对于每个数据点,将所述数据点与包含所述数据点的所述3d位置的3d体积关联,所述3d体积使用根据球坐标划分所述3d空间的3d栅格定义。对于至少一个3d体积,所述方法包括:根据所述3d栅格的至少一个维度对所述3d体积内的所述数据点进行排序;将所述经排序的数据点作为有序数据点集合存储。
11.根据本发明的另一方面,所述3d体积包括所述3d空间的两个或更多个分区,所述两个或更多个分区是沿着所述3d栅格的一个维度相邻的分区。
12.根据本发明的另一方面,所述方法包括:对所述有序数据点集合执行特征提取以生成有序特征向量集合;提供所述有序特征向量集合以执行推理任务。
13.根据本发明的另一方面,执行特征提取包括:对于所述至少一个3d体积,通过应用至少一个特征函数,计算所述3d体积内每个数据点的至少一个特征;通过将所述至少一个计算的特征与相应的数据点关联,为每个所述相应的数据点生成特征向量;根据所述3d栅格对所述特征向量进行排序,以生成所述有序特征向量集合。
14.根据本发明的另一方面,执行特征提取还包括:对于所述至少一个3d体积,根据至少一个局部模式确定每个数据点的邻域信息;其中,所述邻域信息用于应用所述至少一个特征函数。
15.根据本发明的另一方面,所述有序特征向量集合表示为一组元组,其中,每个特征向量与所述3d空间的相应分区关联。
16.根据本发明的另一方面,所述3d空间划分为多个非重叠的3d体积。
17.根据本发明的另一方面,所述3d空间划分为多个重叠的3d体积。
18.根据本发明的另一方面,所述dar传感器是射线扫描dar传感器。
19.根据本发明的另一方面,提供了一种装置,所述装置包括:存储指令的存储器;处理器,所述处理器与所述存储器耦合,用于执行所述指令以:接收具有多个数据点的点云,每个数据点表示3d空间中的3d位置,所述点云使用探测和测距(detection and ranging,dar)传感器获得;对于每个数据点,将所述数据点与包含所述数据点的所述3d位置的3d体积关联,所述3d体积使用根据极坐标划分所述3d空间的3d栅格定义;对于至少一个3d体积,根据所述3d栅格的至少一个维度对所述3d体积内的所述数据点进行排序;将所述经排序的数据点作为有序数据点集合存储。
附图说明
20.现在通过示例参考示出本技术的示例性实施例的附图,其中:
21.图1是示例性自动驾驶车辆的一些组件的框图;
22.图2是用于实现基于机器学习的系统的示例性处理单元的一些组件的框图,所述基于机器学习的系统可用于图1的自动驾驶车辆;
23.图3a和图3b是用于表示和预处理由dar传感器提供的点云的传统方法的示意图;
24.图4是本发明的示例提供的用于表示和预处理点云的示例性方法的示意图;
25.图5是图1和图2的基于机器学习的系统的子模块的框图;
26.图6是示出图5的一些子模块的额外细节的框图;
27.图7a

图7d是用于确定邻域信息的一些示例性局部模式的示意图,所述局部模式是指定点相对于相邻点的顺序的一种方式;
28.图8是用于生成点云数据的有序表示并执行特征提取的示例性方法的流程图。
29.不同附图中可以使用类似的附图标记来表示类似的组件。
具体实施方式
30.本发明描述了对从任何探测和测距传感器(如lidar传感器、雷达传感器、声纳传感器等)接收的3d点云生成有序表示并执行特征提取的示例。在本发明中,探测和测距(detection and ranging,dar)传感器是指可以用于电磁信号、光信号或声学信号并捕获关于距离dar传感器一定距离的对象的信息的任何传感器,所述信息包括关于每个对象的距离或范围的信息。dar传感器可以是射线扫描dar传感器,例如,可以使用dar传感器发射的射线扫描环境。本文描述的示例利用3d栅格,通过将点分组为小体积来编码空间位置。在每个小体积内,对数据点进行排序,为每个数据点分配小体积。可以在每个小体积内计算特征,以增强数据点。点云的数据点的这些计算特征和3d栅格表示可以由执行推理任务(如模式识别任务)(即涉及对象检测或语义场景分割的任务)的基于机器学习的系统的推理子模块使用。例如,使用本文公开的示例,可以根据预定义网格处理从dar传感器接收的点云的数据点,以输出有序数据点集合和与已知空间邻域成员关系相关的元数据。可以使用与有序数据点的空间邻域成员关系相关的元数据,用提取特征增强有序数据点。然后,增强数据点集合可以作为输入提供给基于机器学习的系统的推理子模块,所述增强数据点集合是保存点云的数据点顺序的特征向量。
31.通常,在基于机器学习的系统的推理子模块处理点云之前,对点云的数据点进行排序并对点云进行特征提取有助于提高推理任务的性能,所述推理任务如对象检测(例如,检测行人,或道路分割(在自动驾驶车辆的背景下))、对象分类、语义分割等。
32.本发明的一些示例在自动驾驶车辆的背景下描述。然而,本文公开的方法和系统也可以适用于在自主设备之外实现,例如在非车辆设备和/或半自主设备的背景下实现。例如,在操作期间对点云的数据点进行排序的能力可以使接收点云并输出推理决策的任何基于机器学习的系统受益。此外,本发明的示例可用于在其它背景下生成有序点云。
33.虽然本文描述的示例可以将汽车称为自动驾驶车辆,但本发明的教导可以与其它形式的自主或半自主设备相关,包括有轨电车、地铁、卡车、公共汽车、水面和水下航行器及船只、飞机、无人机(也称为无人驾驶飞行器(unmanned aerial vehicle,uav))、仓库设备、
建筑设备或农场设备等,并且可以包括不载客的车辆以及载客的车辆。本文公开的方法和系统也可以与非车辆设备相关,例如自主真空吸尘器和割草机。此外,尽管本文描述的示例可以参考如lidar和雷达等传感器,但应理解,本发明的教导可以与其它形式的dar设备相关,包括可以在上述自主或半自主设备中发现的射线扫描设备。
34.图1是示例性自动驾驶车辆100的一些组件的框图。尽管车辆100被描述为自主的,但车辆100可以在完全自主、半自主或完全用户控制的模式下运行。在本发明中,车辆100在汽车的实施例中描述;然而,如上所述,本发明可以在其它车辆或非车辆机器中实现。
35.例如,车辆100包括传感器系统110、机器学习系统120、路径规划系统130、车辆控制系统140和机电系统150。车辆100可以视情况包括其它系统和组件。车辆的各种系统和组件可以通过有线或无线通信等方式相互通信。例如,传感器系统110可以与基于机器学习的系统120、路径规划系统130和车辆控制系统140通信;基于机器学习的系统120可以与路径规划系统130和车辆控制系统140通信;路径规划系统130可以与车辆控制系统140通信;车辆控制系统140可以与机械系统150通信。
36.传感器系统110包括用于收集关于车辆100的内部环境和/或外部环境的信息的各种传感单元。在所示示例中,传感器系统110包括雷达单元112、lidar单元114、相机116和全球定位系统(global positioning system,gps)单元118。传感器系统110可以包括其它传感单元,如温度传感器、降水传感器或麦克风,等等。
37.在示例性实施例中,lidar单元114可以包括一个或多个lidar传感器,并且可以在车辆100周围的宽视野(例如,360
°
视野)中捕获数据。lidar数据(例如,由一个或多个lidar传感器获取的原始传感器数据)可以结合关于环境的三维(three

dimensional,3d)信息,并且可以进行处理以在3d空间中形成数据点集合(下文称为点云),其中,点云中的每个数据点表示3d空间中由一个或多个lidar传感器感测的对象的3d坐标(例如,x、y和z值)。取决于感测的环境,点云中的数据点集合可以是不规则间隔的。在一些示例中,除了3d坐标外,点云中的每个数据点还可以包含其它信息,如数据点的强度(例如反射光的强度)或数据点的检测时间。
38.在示例性实施例中,雷达单元112可以包括一个或多个雷达传感器,并且可以在车辆100周围的宽视野(例如,360
°
视野)中捕获数据。雷达数据(例如,由一个或多个雷达传感器获取的原始传感器数据)可以结合关于环境的三维(three

dimensional,3d)信息,并且还可以进行处理以形成点云,其中,点云中的每个数据点表示3d空间中由一个或多个雷达传感器感测的对象的3d坐标(例如,x、y和z值)。取决于感测的环境,点云中的数据点集合可以是不规则间隔的。在一些示例中,除了3d坐标外,点云中的每个数据点还可以包含其它信息,如数据点的强度(例如反射电磁波的强度)或数据点的检测时间。
39.使用各种传感单元112、114、116、118,传感器系统110可以收集关于车辆100的局部环境(例如,任何附近的障碍物)的信息以及来自更远区域的信息(例如,雷达单元112和lidar单元114可以从车辆100周围半径达100米或更远的区域收集信息)。传感器系统110还可以收集关于车辆100相对于参考系的位置和取向的信息(例如,使用gps单元118)。
40.传感器系统110与基于机器学习的系统120通信,以向基于机器学习的系统120提供点云。基于机器学习的系统120的输入是从传感器系统110接收的点云的数据点。基于机器学习的系统120用于处理点云的数据点,进行特征提取,并执行推理任务,如对象分类、回
归或分割。机器学习系统120可以使用软件实现,所述软件可以包括任何数量的独立或互连的模块或功能,例如包括机器学习算法和图像处理功能。机器学习系统120可以使用一个或多个专用图像处理单元来实现,也可以使用车辆100的一个或多个通用处理单元来实现。机器学习系统120可以重复地(例如,以规律间隔)从传感器系统110接收点云,并实时或接近实时地处理点云。基于机器学习的系统120的输出是推理决策,可以包括在2d和/或3d空间中车辆周围的对象的识别和定位等,包括对象类别、对象位置以及对象边界或掩码。
41.在一些实施例中,由传感器系统110提供的点云可以存储在离线存储器中,稍后检索,并提供给基于机器学习的系统120如上所述进行处理。
42.由传感器系统110提供的点云由基于机器学习的系统120处理,所述基于机器学习的系统120可以向路径规划系统130提供推理输出(例如对象标签、对象类别等)。路径规划系统130为车辆生成目标任务(例如,车辆的规划路径),并将目标任务提供给车辆控制系统140。车辆控制系统140用于根据从路径规划系统130接收的目标任务控制车辆100的运行。车辆控制系统140可用于对车辆100进行完全、部分或辅助控制。机电系统150从车辆控制系统140接收控制信号,以操作车辆100的机械和/或机电组件,如发动机、变速器、转向系统和制动系统。
43.传感器系统110、机器学习系统120、路径规划系统130和车辆控制系统140可以单独或以组合形式至少部分地在车辆100的一个或多个处理单元中实现。本发明描述了机器学习系统120用于执行对象检测和定位的部分。在一些示例中,车辆100的一个或多个其它系统(例如,路径规划系统130和/或车辆控制系统140)也可以使用机器学习来实现。为了简单起见,本发明将路径规划系统130和车辆控制系统140描述为与机器学习系统120分开;然而,应理解,路径规划系统130和/或车辆控制系统140可以实现为机器学习系统120的一部分。此外,在某些背景下,机器学习系统120也可以描述为机器学习模块。
44.作为示例,图2示出了可用于实现车辆100的一个或多个组件的处理单元200的示例。例如,处理单元200可以用于实现基于机器学习的系统120。处理单元200也可以在车辆100外部,例如用于不在现实环境中操作车辆100的情况下训练和/或测试基于机器学习的系统。
45.在该示例中,处理单元200包括与电子存储220和一个或多个输入和输出接口或设备230耦合的一个或多个物理处理器210(例如,微处理器、图形处理单元、数字信号处理器或其它计算元件)。电子存储220可以包括有形存储器(例如闪存)和瞬时存储器(例如ram)。一个或多个有形存储器可以存储指令、数据和/或软件模块,由一个或多个处理器执行以执行本文所述的示例,例如实现机器学习系统120(和机器学习系统120的子模块)。电子存储220可以包括一个或多个任何合适的易失性和/或非易失性存储和检索设备。电子存储220可以包括随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘、光盘、用户识别模块(subscriber identity module,sim)卡、记忆棒、安全数字(secure digital,sd)存储卡等中的一种或多种。
46.本发明描述了用于将从dar传感器接收的点云的数据点处理成有序特征向量集合的示例,所述有序特征向量集合可以作为输入提供给基于机器学习的系统的干扰子模块等。干扰子模块用于接收有序特征向量集合作为输入,并执行推理任务,例如对象检测或语义分割等模式识别任务。
47.为了帮助理解本发明,首先对现有技术进行了简要描述。图3a示出了一种传统方法。例如,lidar单元114的lidar传感器可以捕获形成点云的数据点集合302。通过将数据点302按包含它们的长方体(也称为体素304)分组来概括点云。通常,体素304定义形状为长方体的3d空间的体积;例如,体素可以是规则形状的或数学定义的。这些体素304填充由lidar单元114的lidar传感器扫描的预定义空间(在3d中),也称为3d网格。通常将标准化和其它函数应用于每个体素304,以聚合具有邻域或局部信息的数据点302,并且在笛卡尔坐标中生成坐标和特征向量的输出表示,从而编码这种3d网格或栅格。如voxelnet(例如,zhou等人,“voxelnet

基于点云的3d对象检测的端到端学习(voxelnet

end

to

end learning for point cloud based 3d object detection),”cvpr,2018所述)等机器学习方法使用了图3a所示的方法的示例。如voxelnet作者所述,可以使用该方法定义的示例性特征向量是:
48.[(x,y,z),l,(x

c
x
,y

c
y
,z

c
z
)]
[0049]
其中,x、y、z是3d空间中给定数据点的笛卡尔坐标,l是强度,c
x
、c
y
、c
z
是包含给定数据点的体素中点质心的笛卡尔坐标。
[0050]
图3b示出了另一种传统方法。在这种方法中,应用了变换,将点云的数据点映射到表示lidar单元114的lidar传感器的前视图(front view,fv)的2d表面(其它方法也可以使用鸟瞰图(bird’s

eye

view,bev))。在所示示例中,数据点302映射到弯曲的2d表面306。通过将深度或其它信息附加到输出2d图中的每个数据点302,将信息添加到输出特征向量。图3b所示的方法的一个示例是作者squeezeseg使用的方法(例如,见wu等人,“squeezesegv2:lidar点云的道路目标分割的改进模型结构和无监督域自适应(squeezesegv2:improved model structure and unsupervised domain adaptation for road

object segmentation from a lidar point cloud),”arxiv.org,2018年9月)。可以使用该方法定义的示例性特征向量是:
[0051]
[(x,y,z),l,r]
[0052]
其中,r定义为:
[0053][0054]
另一种方法结合了图3a和图3b所示的两种方法。
[0055]
与上述传统方法相比,本文描述的示例提供了(1)在3d布局上点云的数据点的有序表示;(2)所述点云根据每个数据点的球面表示及其与球面3d布局的单元的成员关系沿一个或多个维度进行排序。图4示出了数据点302如何分组到体素射线310中的自上而下视图,体素射线310是使用球坐标定义的小空间体积(也称为3d仓)。与使用图3a所示的笛卡尔坐标定义的传统体素304相比,这种用于表示的球形基础可以更好地表示dar传感器的射线扫描特性和dar传感器的点云形成过程。数据点由充分定义的3d网格或栅格中的体素射线310分组和排序。在共用方位角和极化通道(此处称为波束320)等的体素射线310的集合内,对数据点进行排序,以便能够使用特征提取操作提取特征,所述特征提取操作包括可以对均匀间隔的顺序数据点执行的信号处理操作。因此,特征提取操作可以执行空间有意义的信号处理操作,以利用空间域的频率信息。为了简单起见,图4示出了3d空间仅一部分的3d网格;应理解,可以针对由dar传感器(如雷达单元112的雷达传感器或lidar单元114的lidar传感器)捕获或扫描的整个3d空间定义3d栅格,或者可以仅针对由dar传感器捕获或
扫描的3d空间的一部分定义3d栅格。
[0056]
图5示出了本文公开的示例提供的机器学习系统120的示例中涉及的示例性子模块。为了简单起见,图5示出了机器学习系统120直接从lidar单元114的lidar传感器接收点云形式的传感器数据;在一些示例中,由lidar单元114中的lidar传感器生成的点云形式的传感器数据可以由传感器系统110处理(例如,过滤),并通过传感器系统110提供给机器学习系统120。lidar单元114生成点云,该点云包含表示3d环境的3d数据点。
[0057]
在图5的示例中,机器学习系统120包括预处理子模块510、特征提取子模块520和推理子模块530。子模块510、520、530的功能可以实现为如图所示的三个单独的子模块,也可以使用更少或更多数量的子模块来实现。子模块510、520、530是示例性的,并且本文公开的示例性方法可以使用不同的系统架构来实现,并且不意欲受到所示示例的限制。
[0058]
通常,预处理子模块510使用关于dar传感器的设计规格的信息来设计。关于dar传感器设计的信息可以在dar传感器制造商提供的数据表中获得。在一些实施例中,dar传感器可以提供关于下游特征提取和推理子模块的信息。关于dar传感器设计规格的信息可以包括dar传感器的最小和最大范围、dar传感器的水平和垂直分辨率(例如dar传感器具有的通道数量),以及dar传感器的视野。该信息用于定义用于划分dar传感器捕获或扫描的3d空间的3d栅格或网格。预处理子模块510使用3d栅格将3d空间划分为以球坐标定义的多个小体积(例如3d仓)。如上所述,这些小体积(例如3d仓)称为体素射线。预处理子模块510还通过在必要时添加特征提取子模块520的元数据来处理从dar传感器接收的传感器数据(例如点云)。预处理模块所添加的元数据包括与点云的数据点和3d栅格的表示有关的信息。预处理子模块510的输出是有序数据点集合610和元数据,所述元数据通常包括与数据点和3d栅格的表示有关的信息。特征提取子模块520根据有序数据点集合610计算特征,并使用元数据将有序特征向量(也称为有序增强数据点)集合620和元数据组装为输出用于推理子模块530,其中,元数据包括与特征向量和3d栅格的表示或3d网格相关的信息。如下文所详述,有序数据点集合610和有序特征向量集合620各自使用基于球面的3d空间表示进行排序。推理子模块530可以从特征提取子模块520接收输出(例如,有序特征向量集合620和元数据)作为输入,执行推理任务,并输出推理输出630。例如,推理子模块530可以是使用神经网络实现的基于机器学习的分类器,该基于机器学习的分类器接收有序特征向量集合620并输出对象标签或类别。或者,推理子模块530可以是基于机器学习的分段系统,接收有序特征向量集合620并输出指定前方分段道路的掩码。由推理子模块530执行的其它类型的推理任务(包括模式识别任务)对于本领域技术人员而言是显而易见的,因此不详细描述。推理输出630可以提供给车辆100中的其它系统(例如,路径规划系统130)。
[0059]
虽然图5示出了机器学习系统120从lidar单元114的lidar传感器接收点云形式的传感器数据的示例性实施例,但在替代实施例中,机器学习系统120可以直接从任何类型的dar传感器(例如,如雷达传感器等射线扫描dar传感器,或如声纳传感器等其它类型的dar传感器)接收点云形式的传感器数据。在一些示例性实施例中,相比于离散的点云,dar传感器可以产生表示测距数据的连续信号。在该实施例中,dar传感器可以向传感器系统110提供连续信号。传感器系统110可以对连续信号进行采样,以获得表示点云的数据点,并将数据点提供给机器学习系统120。在其它示例性实施例中,dar传感器可以直接对连续信号进行采样以获得表示点云的数据点,并将点云输出给机器学习系统120。在其它示例性实施例
中,由dar传感器提供的传感器数据可以存储在一个或多个存储设备等中,而不是将传感器数据直接提供给机器学习系统120,并且机器学习系统120可以从一个或多个存储设备获得传感器数据。
[0060]
图6更详细地示出了由机器学习系统120的预处理子模块510和特征提取子模块520执行的一些功能。虽然图6的示例将某些功能与子模块510、520的特定子模块关联,但应理解,这些功能可以使用不同的子模块来实现,或者可以使用更少或更多数量的子模块来实现。本文公开的示例性方法可以使用不同的系统架构来实现,并且不意欲受到所示示例的限制。
[0061]
在所示示例中,预处理子模块510执行分组和索引512以及排序514的功能;特征提取子模块520执行点增强522和输出组装524的功能。
[0062]
预处理子模块在执行分组和索引512的功能之前,从存储设备加载先前定义的3d栅格或关于3d栅格定义的规范。或者,预处理模块可以使用由dar传感器提供的关于dar传感器规格的信息定义3d栅格,以提供由dar传感器(如lidar单元114的lidar传感器)捕获或扫描的3d空间的基于球面的表示。3d栅格(也可以称为3d网格)用于定义3d仓集合。如上所述,每个3d仓或体积使用球坐标定义,并称为体素射线(以区分图3a所示的使用笛卡尔坐标定义的传统体素304)。
[0063]
分组和索引功能512将点云中的每个数据点分配给特定体素射线,排序功能514对波束(即,定义的体素射线组,具有相关或共用的方位角和/或极化间隔和/或范围等)内的数据点进行排序。这可以通过对波束内的数据点排序来实现。在一些示例中,dar传感器可以对数据点的排序进行编码,因此可以不对具有波束的数据点执行排序功能514。而是可以将每个数据点简单地分配给波束内的索引来实现所需的排序。预处理模块510的输出是由模块514的排序产生的有序数据点集合,并且由分组和索引子模块512提取的元数据还可以包括通过在514中执行的排序提取的元数据,并可选地包括与dar传感器相关的元数据。这是预处理子模块510输出的元数据,所述元数据可以包括点与3d栅格的空间关系,以及每个体素射线或体素射线集合(即,波束)内点的空间关系。使用有序数据点集合,点增强功能522使用预处理模块610输出的元数据对每个数据点执行一个或多个特征提取操作,从而为每个数据点生成特征向量和元数据,其中,所述元数据包括关于数据点的空间相邻数据点以及空间相邻数据点本身的信息。为每个数据点生成的元数据包括特征向量的相关索引或空间坐标,以便这些特征向量由后续子模块524适当地放置在3d栅格上,并且该元数据可以包括在模块510和520内提取的任何相关信息,这些信息可以由下游推理子模块530使用。组装功能524通过将每个特征向量分配给对应的体素射线来生成有序特征向量的输出。组装功能524可以根据原始数据点的顺序,以及定义的基于球面的3d栅格,将每个特征向量分配到对应体素射线内的特定空间位置。组装的输出也可以称为组装的波束网格。
[0064]
如上所述,图4示出了示例性3d栅格的自上而下视图,该示例性3d栅格定义了由dar传感器(例如,雷达单元112的雷达传感器、lidar单元114的lidar传感器,或其它类型的射线扫描dar传感器)捕获或扫描的3d空间。dar传感器生成包含3d空间中数据点302的点云。点云可以定义为:
[0065]
p={p
n
}其中,n=0,
……
,n
–1[0066]
其中,p
n
是具有n个数据点的点云p中的第n个数据点。每个数据点p
n
可以如下表示
为用笛卡尔坐标定义的3d位置:
[0067]
p
n
=(x,y,z)
[0068]
或者,数据点p
n
的3d位置可以如下用极坐标表示:
[0069]
p
n
=(r,ρ,θ)
[0070]
其中,r是距dar设备的距离,定义为:
[0071]
其中,ρ是方位角,θ是极角或天顶角。在该示例中,坐标以dar传感器的位置为原点。数据点的球面表示可以是由射线扫描dar传感器(如lidar或雷达传感器)捕获的信息的更好表示(与笛卡尔表示相比)。此外,通过使用基于球面的3d栅格,与基于笛卡尔的方法中的正方形网格相比,通过dar传感器获得的点云的所有数据点都被考虑在内。这是因为体素射线(即,使用基于球面的3d空间表示定义的体积)更好地表示由dar传感器自然扫描的3d空间的一部分。
[0072]
如图4所示,相比于通常具有立方体或矩形棱镜几何形状以及恒定尺寸的传统体素(例如,图3a所示的体素304),体素射线310可以具有几何上类似于截锥体的形状,并且不同体素射线310可以具有不同的尺寸。需要说明的是,波束320定义为一组体素射线310,以这样的方式,数据点302可以在每个波束320内的给定空间维度上排序。这种排序可以提取有用的特征,因为用于执行特征提取功能的信号处理操作可能需要这种排序和这种排序提供的局部(邻居)信息。这可以有助于由基于机器学习的系统120的推理子模块执行的推理任务(例如,模式识别任务)。
[0073]
在一些示例中,本发明定义了波束网格的数学表示。波束网格可以视为3d中直方图的仓和边缘,其中,点云中的数据点可以位于相应的3d仓(即体素射线)中。例如,典型的lidar传感器通过多个定义的通道扫描3d环境,其中,每个通道在2d平面(例如半径

方位面)上扫描。如上所述,图4示出了一个这种平面的自上而下视图。根据lidar传感器的不同,可以有8、16、32或更多个通道。因此,对于使用lidar传感器(例如,具有一个或多个lidar传感器的lidar单元114或雷达单元112)获得的点云数据,θ具有定义值θ
k
,其中,k是总共k个通道中的第k个lidar通道的索引。在此基础上,极轴可以如下分为多个间隔:
[0074][0075]
其中,对于定义的的集合,所有点p
n
=(r
n

n

n
),该间隔集合表示具有k个通道的lidar传感器中的通道。参数表示小极角,可以选择该参数以对应dar设备的极化分辨率。参数可以根据θ
k
而变化,也可以为常数。通常,用于定义3d栅格、体素射线和波束的参数值可以根据需要选择,例如以匹配dar设备的特征。
[0076]
间隔定义了跨越极轴的分区,全部或部分覆盖点云p。如果点云p被间隔部分覆盖,则可能已经对间隔进行定义,从而仅沿极轴覆盖感兴趣的一部分。
[0077]
分区可以在径向方向r和方位角方向上ρ类似地定义。r轴可以划分为i个间隔,方位轴可以划分为j个间隔,其中,i和j的值可以根据需要选择,例如根据dar设备的径向和方位分辨率进行选择。径向和方位间隔可以如下定义:
[0078]
[0079][0080]
其中,表示沿r轴的小距离,表示小方位角,两者都可以沿着各自的轴变化,也可以是常数。和的值可以根据需要选择,例如根据dar设备的径向和方位分辨率进行选择。
[0081]
根据上述定义,波束网格b可以如下用球坐标中的分区形成的3d部分定义:
[0082][0083]
体素射线可以如下定义为通过(i,j,k)索引的3d部分:
[0084][0085]
需要说明的是,体素射线可以定义为非重叠的(例如,如图4所示的示例中)或重叠的。例如,具有重叠体素射线的网格是轴中两个相邻间隔中心的距离比每个中心到其相应间隔的边缘的距离两倍更近的网格。到目前为止,已知的方法(例如,上文结合图3所述的)集中在用笛卡尔坐标定义的非重叠3d仓,但是重叠的3d仓可以提供更稳定的表示,该表示可以更好地捕获在数据点集合中编码的真实对象的特征性质。本发明可适用于任何一种方法。
[0086]
在定义了用于划分3d空间的3d栅格之后,预处理子模块510可以通过将所有数据点一起在由给定体素射线定义的3d部分内分组,以及使用给定体素射线的索引对数据点进行索引来执行分组和索引功能512。这在数学上的一个示例性表达式是,对于波束网格b中的每个体素射线v
ijk
,体素射线v
ijk
中包含的任何数据点p
n
都作为(p
n
,(i,j,k))进行索引和存储。在该示例中,所存储的是数据点本身的元组及其与3d栅格的一个或多个体素射线的成员关系。后者可以简单地用体素射线每个维度上的索引表示,但也可以用其它方式表示,只要3d栅格中数据点与3d体素射线的成员关系是明确的。
[0087]
另外或或者,数据点可以分组成波束并进行索引。波束可以用m索引,其中m

(j,k),并且是具有共同方位间隔ρ
a
和共同极性间隔θ
b
的体素射线组。例如,波束b
m
可以如下定义:
[0088][0089]
其中,运算符u表示体素射线的并集,粗体表示集合。
[0090]
在定义了波束之后,预处理子模块510可以通过将所有数据点一起在由给定波束定义的3d部分内分组,以及使用给定波束的索引对数据点进行索引来执行分组和索引功能512。
[0091]
这在数学上的一个示例性表达式是,对于波束网格b中的每个波束b
m
,波束b
m
中包含的任何数据点p
n
都作为(p
n
,(j,k))进行索引和存储,使得
[0092]
在另一示例中,用伪代码如下表示:
[0093]
for every beam in beam

grid
[0094]
for every point in beam
[0095]
store(p
n
,(j,k))such that
[0096]
在某些情况下,分组和索引功能512可以使用哈希表将数据点分组为波束并进行
索引,其中,(j,k)作为哈希键。这在数学上的一个示例性表达式是,哈希表可以定义为具有哈希键j和k的表m,数据点可以通过以下方式赋值:
[0097]
m
jk

p
n
如果
[0098]
其中,赋值运算符

是指数据点p
n
聚合到表m中单元格m
jk
的内容。
[0099]
在数据点已经通过波束分组和索引之后,排序功能514对给定波束内的数据点进行排序,例如使用点本身的简单转换操作进行排序,或在必要时使用排序操作进行排序。例如,根据dar传感器,数据点可能已经沿方位轴排序。例如,根据待确定的局部模式(下文进一步描述)的方向,排序也可以沿其它方向执行。在给定波束内对数据点进行排序通常比在整个通道或整个点云上对数据点进行排序更高效。这在数学上的一个示例性表达式是,对于波束网格b中的波束b
m
,波束b
m
中包含的数据点p
n
沿着方位角方向进行排序。有序数据点存储在有序点云s
b
中。如果数据点已使用哈希表m索引,则排序可以通过以下操作来执行:
[0100][0101]
如果使用哈希表m,则哈希表m可以作为实现有序点云s
b
的数据结构输出。
[0102]
在另一示例中,用伪代码如下表示:
[0103]
for every beam indexed by m=(j,k)in beam

grid
[0104]
get points in beam
[0105]
sort points along the azimuth axis
[0106]
save sorted points
[0107]
define the new sorted point cloud as a new sorted cloud s
b
[0108]
在一些示例中,可能没有必要沿着方位轴执行排序功能。例如,如果由lidar传感器扫描的方位角位置的数量是有限的(例如,如果已知lidar传感器在每次360
°
扫描时在相同的方位角位置获得扫描),则对数据点进行排序可以涉及根据方位角索引对数据点简单地分组(假设具有相同方位角索引的数据点对应于相同的方位角位置)。类似地,沿其它方向排序可能涉及基于索引的分组。
[0109]
有序数据点(例如,有序点云s
b
的形式)可以输入给特征提取子模块520。特征提取子模块520执行点增强功能522,用特征向量增强有序数据点。特征向量可以使用一个或多个特征函数的定义集合生成。由点增强功能522应用的一个或多个特征函数可以包括执行在每个数据点的局部邻域中定义的操作的函数。这可能需要定义局部模式,该局部模式表示每个数据点的相邻数据点(就位置和待执行的操作而言)。例如,定义的局部模式集合d(也称为局部模式词典)和定义的特征函数或操作集合o(也称为操作词典)可以写成
[0110]
d={d
u
}u=0,1,
……
[0111]
o={f
v
}v=0,1,
……
[0112]
其中,d
u
是局部模式,f
v
是特征函数。局部模式是根据定义的关系对给定数据点的一个或多个相邻位置的描述。将局部模式应用于给定数据点可以包括通过确定相邻数据点是否存在,并且(如果对于o中的给定操作有必要)可以确定相邻数据点的索引等方式,根据局部邻居关系识别数据点的一个或多个相邻数据点。图7a

图7d示出了可以在d中定义的局部模式的一些示例。例如,这些示例可以在以dar设备的正面视图方式处理点时应用。图7a示出了在给定天顶通道处确定方位角方向上的一个前相邻数据点的局部模式;图7b类似地
示出了确定方位角方向上的一个前相邻数据点和一个后相邻数据点的局部模式;图7c示出了确定在方位角方向上的两个前相邻数据点和两个后相邻数据点的局部模式;图7d示出了确定在方位角和极化方向上的一个前相邻数据点和一个后相邻数据点的局部模式。例如,可以在d中定义其它局部模式以覆盖不同的相邻距离,包括可以覆盖整个波束或波束一部分的局部模式。特征函数的一些示例包括:
[0113]
质心减法:f0(p
n
)=p
n

c
m
[0114]
一阶导数:f1(p
n
)=p
n

p
n
‑1[0115]
二阶导数:f2(p
n
)=p
n

2*p
n
–1 p
n
–2[0116]
相对占用:f3(p
n
)=g(p
n
,d)
[0117]
其中,c
m
是属于包含数据点p
n
的波束b
m
或体素射线的数据点的质心,g是编码相对占用的函数(可以使用d中定义的一个或多个局部模式来定义)。需要说明的是,函数f1和f2也可以隐式使用d中定义的局部模式。其它特征函数可以在o中定义,包括可以包括使用高阶矩计算的特征函数。在一些示例中,在o中定义的特征函数可能仅限于在单个波束内操作的函数。也就是说,在o中定义的特征函数可能不包括需要关于另一个波束中相邻数据点的信息的任何函数。这种限制可以有助于限制需要考虑的数据点的数量,从而可以提高计算效率。
[0118]
在d中定义的局部模式可以根据计算在o中定义的特征函数所需的信息来定义。例如,如果在o中定义的特征函数需要关于波束内所有数据点的信息,则d可以定义至少一个覆盖整个波束的局部模式。增强功能522可以首先使用d来提取有序数据点集合中所有数据点的必要元数据,然后使用应用于所有数据点的o。或者,增强功能522可以通过以下方式来一次处理一个数据点:使用d中相对于该数据点的一个或多个局部模式,然后使用应用于给定数据点的o,接着处理有序数据点集合中的下一个数据点。数据点的特征函数的计算(以及将计算结果与该数据点关联)可以称为增强数据点。
[0119]
示例性特征函数可能需要关于给定数据点的前相邻数据点或后相邻数据点(例如,在方位轴、极轴或两者上)的信息。为了获得关于给定数据点的相邻数据点的所需信息,可以逐个波束处理有序数据点集合(可以存储在有序点云s
b
中)。这在数学上的一个示例性表达式是,局部占用词典d
pn
定义为包含在局部模式中定义的每个相邻位置的二进制状态(即,存在或不存在)的数组d
u
∈d,其中,局部模式用于识别或描述计算特征函数f
v
所需的一个或多个相邻数据点的状态(例如存在缺失)。该信息可以根据dar设备的规格确定,例如dar设备的水平和垂直分辨率,这些分辨率分别确定使用dar设备获得的任何点云的所有可能的方位角和极角值。
[0120]
考虑仅使用关于沿方位轴的相邻数据点的信息计算特征函数的示例。如果dar设备具有水平(方位角)分辨率δ
ρ
,则计算一阶导数特征函数(这是使用数据点的前相邻数据点的操作,基于图7a所示的局部模式),这需要确定每个数据点p
n
的前相邻数据点p
n
–1的存在。在该示例中,n表示方位角方向上均匀间隔的dar数据点样本的离散轴(其中,样本的间隔对应于dar设备的方位分辨率δ
ρ
)。然而,需要说明的是,有序数据点集合中的数据点可能不是均匀间隔的。这在数学上的一个示例性表达式是,对于每个波束b
m
,数据点p
n
的占用词典d
pn
可以使用有序数据点集合s
b
中数据点p
k
、p
k
–1、p
k
–2……
(不一定是均匀间隔的)的有序序列存储p
n
–1状态、存在或缺失。给定的可用数据点p
n
的示例性计算如下:
[0121][0122]
其中,p
i
(ρ)是第i个数据点的方位坐标,τ是考虑噪声的小阈值。如该示例中所示,局部模式可以提供占用信息(例如,占用/空模式)。可以根据特征函数使用其它计算。
[0123]
点增强功能522通过将特征函数计算的结果附加到数据点p
n
来生成给定数据点p
n
的特征向量。附加信息可以包括在特征向量中。例如,lidar数据可以包括表示由lidar传感器检测到的反射光脉冲的强度的强度或亮度值l。这在数学上的一个示例性表达式是,可以如下为有序数据点集合s
b
中的点p
n
生成特征向量a
n

[0124][0125]
其中,f
v
的计算可以使用存储在d
pn
中的信息,使用在d中定义的局部模式来执行。在级联特征向量时,“concat”运算只是将一个接一个项放置在一起,但也可以使用组装最终特征向量的其它形式。
[0126]
在另一示例中,可以用伪代码如下表示:
[0127]
for every beam in s
b
:
[0128]
for every p
n in beam do:
[0129][0130]
save the augmented feature vectors a
n into augmented cloud a
[0131]
特征向量a
n
可以存储为特征向量的集合,例如存储在向量云a={a
n
}中,其中n=0,...n

1。特征向量的集合也可以称为特征集。
[0132]
在生成特征向量之后,特征提取子模块520执行输出组装功能524,该输出组装功能524通过将为给定数据点生成的特征向量与包含给定数据点的对应体素射线关联等方式对3d栅格内的特征向量进行排序。结果是有序特征向量集合。这在数学上的一个示例性表达式是,将向量云a中包含的特征向量与波束网格b中的体素射线关联,以生成有序特征向量集合c,定义为对集合:
[0133]
且v
ijk
∈b
[0134]
在某些情况下,该运算可以使用哈希表t来实现,哈希表t具有编码体素射线坐标作为哈希键的索引(i,j,k)。这在数学上的一个示例性表达式是,哈希表t(可用于实现c)可以通过以下方式生成:
[0135]
t
ijk

a
n
如果a
n
∈v
ijk
且v
ijk
∈b
[0136]
其中,运算

将a
n
聚合到哈希表t中单元格t
ijk
的内容。
[0137]
图8是示例性方法800的流程图,所述示例性方法800可以由基于机器学习的系统(例如,使用预处理子模块510和特征提取子模块520,以及如上所述的它们各自的功能)执行。方法800可以用于实现上文结合图6所述的功能。方法800可以对从dar传感器(例如,从在现实世界环境中运行的自动驾驶车辆的dar传感器)接收的点云实时执行,或者可以对存储在一个或多个存储设备中的先前获得的点云执行,或可以对合成生成的点云执行,以及其它示例。方法800可以使用上文描述的一个或多个等式和/或伪代码来实现。
[0138]
在动作802中,接收点云。所述点云包括多个数据点,每个数据点表示3d空间中的3d位置,以及可选地,数据点的强度和/或数据点的检测时间。点云可以使用dar传感器生
成,如自动驾驶车辆100的lidar单元114的lidar传感器。在一些示例中,接收点云可以包括使用dar传感器获得点云。在一些实施例中,接收点云可以包括从一个或多个存储设备检索点云,所述一个或多个存储设备存储在车辆运行期间由自动驾驶车辆的dar传感器先前获得的点云。例如,车辆100的dar传感器可以在各种不同环境中操作车辆100时提供点云,这些点云可以存储在外部处理中用于后续处理。
[0139]
在动作804中,根据数据点的球坐标,将每个数据点与相应的体素射线关联。另外,根据基于球面的3d栅格,体素射线可以是波束的一部分,该基于球面的3d栅格使用球坐标(具有预定原点,如dar传感器作为原点)划分3d空间。在一些示例中,3d栅格的间距取决于关于dar传感器设计规格的信息,所述信息包括dar传感器的分辨率。如上文定义的情况,波束可以由一个体素射线或由两个或更多个相邻体素射线沿基于球面的3d栅格的一个维度(例如,沿径向轴线)形成。可以执行动作804以实现图6所示的分组和索引功能512。
[0140]
在动作806中,沿3d栅格的至少一个维度(例如,在方位角方向上)对给定波束内的数据点进行排序。例如,排序可以涉及执行排序功能,或者排序可以涉及沿一个方向根据索引对数据点进行分组。可以对针对3d空间定义的所有波束执行排序。结果是3d栅格中波束内的有序数据点集合,例如,该数据点集合可以作为有序点云或以哈希表的形式存储。可以存储有序数据点集合用于进一步处理,和/或可以直接提供该有序数据点集合作为用于执行特征提取的输入。可以执行动作806以实现图6所示的排序功能514。
[0141]
在动作808中,确定每个数据点的邻域信息。如上所述,确定邻域信息可以涉及根据一个或多个定义的局部模式确定一个或多个邻居位置的占用。该邻域信息可以用于计算数据点的一个或多个特征。
[0142]
在动作810中,为每个数据点生成特征向量。特征向量通过以下方式生成:计算数据点的一个或多个特征(使用一个或多个定义的特征函数),并将一个或多个计算的特征与数据点关联(例如,级联或附加)。可以执行动作808和810以实现图6所示的点增强功能522。
[0143]
在动作812中,根据如上所述的基于球面的3d栅格或波束网格对特征向量进行排序。排序可以涉及将给定数据点的特征向量与数据点所属的相应体素射线和/或波束关联或索引。结果是具有波束网格分区成员关系的有序特征向量集合。例如,有序特征向量集合可以作为向量云或以哈希表的形式存储。可以执行动作812以实现图6的输出组装功能524。
[0144]
然后,有序特征向量集合可以提供给机器学习系统120的推理子模块530,推理子模块530使用有序特征向量集合来执行推理任务。
[0145]
本发明描述了用于生成点云的数据点的有序表示,以及对点云的数据点的有序表示执行的特征提取的示例性方法和系统。所公开的示例使用3d空间的基于球面的表示,以提供3d栅格(也称为波束网格、球面网格或球面栅格),从而根据每个数据点在3d栅格内的位置,赋予每个数据点特定的成员关系。所公开的示例使用上文定义为体素射线和波束的3d空间的3d仓或体积,这些体素射线和波束使用球坐标定义,作为对数据点排序和分配成员关系的基础。数据点的排序可以确定相邻数据点和其它局部模式。
[0146]
在本文公开的示例中,特征提取可以根据相邻点(可以在应用特征函数之前确定)执行。可以对单个体素射线或波束中包含的数据点计算特征函数。
[0147]
在本文公开的示例中,排序和特征提取的结果可以作为指示体素射线成员关系的特征向量和元数据的输出元组提供。
[0148]
在本文公开的示例中,哈希表可用于实现各种计算和/或数据结构。
[0149]
本发明描述了在使用dar传感器(例如,lidar和/或雷达)的自动驾驶车辆的背景下实现的示例。所公开的实施例也可适用于其它背景。例如,本发明可适用于模式识别任务,例如在遥感领域或使用dar或射线扫描设备来获取可以在3d栅格中表示的数据的任何其它领域中。
[0150]
本发明描述了可以提供3d数据的有序表示的示例性方法和系统,这些方法和系统可以用于为机器学习模块的处理(例如,执行推理任务)提供更有意义的特征。
[0151]
本发明还描述了能够更有效地表示由dar传感器(如lidar或雷达传感器)获得的点云的数据点集合的示例性方法和系统,并且可以将更表示这种dar传感器的能力(和限制)的信息传递给后续的机器学习推理任务。这可以在后续的机器学习推理任务(如对象检测(包括对象分类和定位))中实现更高的准确性。与使用3d体素网格的传统方法相比,本文公开的方法可以提高计算效率。
[0152]
尽管本发明利用呈某种顺序的步骤描述方法和过程,但所述方法和过程的一个或多个步骤可视情况省略或更改。一个或多个步骤视情况可以按除了所描述顺序以外的顺序进行。
[0153]
尽管就方法而言至少部分地描述了本发明,但本领域普通技术人员将理解,本发明还涉及用于执行所描述的方法的至少一些方面和特征的各种组件,无论是硬件组件、软件或两者的任何组合。因此,本发明的技术方案可以以软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,包括dvd、cd

rom、usb闪存盘、移动硬盘或其它存储介质等。所述软件产品包括有形地存储在其上的指令,这些指令使处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中所公开的方法示例。
[0154]
本发明可以在不脱离权利要求书的主题的情况下以其它特定形式体现。所述示例性实施例在所有方面均被视为仅是说明性的而非限制性的。可以对上述一个或多个实施例中的选定特征进行组合,以创建未明确描述的替代实施例,适合此类组合的特征均理解为落入本发明的范围内。
[0155]
另外还公开了所公开范围内的所有值和子范围。此外,虽然本文所公开和示出的系统、设备和过程可以包括特定数量的元件/组件,但是可以修改这些系统、设备和组件以包括更多或更少此类元件/组件。例如,虽然任何所公开的元件/组件可以为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所描述的主题意在涵盖和包含技术上的所有合适更改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜