CN116664645B - 一种点云匹配方法、装置、电子装置和存储介质 - Google Patents
一种点云匹配方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN116664645B CN116664645B CN202310940230.5A CN202310940230A CN116664645B CN 116664645 B CN116664645 B CN 116664645B CN 202310940230 A CN202310940230 A CN 202310940230A CN 116664645 B CN116664645 B CN 116664645B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- block
- preset
- blocks
- vectors
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000013598 vector Substances 0.000 claims abstract description 273
- 238000012549 training Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000013135 deep learning Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Abstract
本申请涉及一种点云匹配方法、装置、电子装置和存储介质,其中,该点云匹配方法包括:将待匹配点云划分为多个点云块,输入多个点云块至预训练后的点云特征编码模块,得到多个点云块的特征向量;根据多个点云块的特征向量获取待匹配点云的全局描述向量,将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。通过本申请,解决了基于有监督深度学习的点云匹配技术的匹配准确度低的问题。
Description
技术领域
本申请涉及点云匹配领域,特别是涉及一种点云匹配方法、装置、电子装置和存储介质。
背景技术
点云(Point Cloud)是由一组点构成的三维几何数据集合。点云可以表示物体的形状、表面、轮廓等信息,是计算机视觉、机器人学、虚拟现实等领域中的重要数据形式。点云可以从传感器(如激光雷达、RGB-D相机等)中直接获取,也可以通过三维重建、三维扫描等技术生成。
点云匹配主要通过比对当前点云和历史点云的全局特征相似度来实现,得益于深度学习的快速发展,目前主要通过神经网络来抽取点云的全局特征,但是其特征抽取中没有考虑临近点的影响;对此,主要有K近邻和三维稀疏卷积两种思路来解决该问题。但此类算法都属于有监督的深度算法,其训练数据都需要标注在真实三维空间中的远近关系,因此需要安装额外的定位传感器,不仅增加了设备成本,同时在很多场景中,不支持有离线数据的采集和训练环节,无法做到算法的开箱即用,比如同时定位与地图构建(SimultaneousLocalization and Mapping,SLAM),因此基于有监督深度学习的点云匹配技术的匹配准确性较低。
针对相关技术中存在基于有监督深度学习的点云匹配技术的匹配准确度低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种点云匹配方法、装置、电子装置和存储介质,以解决相关技术中基于有监督深度学习的点云匹配技术的匹配准确度低的问题。
第一个方面,在本实施例中提供了一种点云匹配方法,所述方法包括:
将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量;所述点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量,以对所述点云特征编码模块进行训练;
根据多个所述点云块的特征向量获取所述待匹配点云的全局描述向量,将所述待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。
在其中的一些实施例中,所述将待匹配点云划分为多个点云块,包括:
根据预设的高度和半径,过滤所述待匹配点云;
将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理;
对体素化处理后的点云进行采样,确定多个采样后的点为关键点;
根据所述关键点及在所述关键点的预设范围内的点的集合,将所述点云划分为多个点云块。
在其中的一些实施例中,所述将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量,包括:
将多个所述点云块输入预设的线性升维层,获取升维至预设维度的点云块;
将所述升维至预设维度的点云块输入至预设的第一自注意力层,得到多个所述点云块的特征向量。
在其中的一些实施例中,所述根据多个所述点云块的特征向量获取所述待匹配点云的全局描述向量,包括:
在预设的向量库中获取多个距离向量,所述距离向量为与多个所述点云块的特征向量的距离在预设距离阈值范围内的向量;
将多个所述点云块的特征向量和多个所述距离向量进行拼接,得到所述待匹配点云的全局描述向量。
在其中的一些实施例中,所述将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块之前,所述方法包括:
根据预设的高度和半径,过滤所述待训练点云;
将过滤后的待训练点云按照预设的空间分辨率,进行体素化处理;
对体素化处理后的待训练点云进行采样,确定多个采样后的点为关键点;
根据所述关键点及在所述关键点的预设范围内的点的集合,将待训练的点云划分为多个点云块;
根据预设的遮盖率对多个所述点云块进行遮盖,得到第一点云块及第二点云块,其中,所述第一点云块为可见点云块,所述第二点云块为被遮盖点云块;
根据所述第一点云块的信息及所述第二点云块的信息,得到所述第二点云块的预测信息;
根据所述第二点云块的信息和所述第二点云块的预测信息,得到预测损失,并根据所述预测损失对所述点云特征编码模块进行训练。
在其中的一些实施例中,所述根据所述第一点云块的信息及所述第二点云块的信息,得到所述第二点云块的预测信息,包括:
将所述第一点云块中关键点的坐标输入至预设的可见位置编码层,得到所述第一点云块的位置编码;
将所述第二点云块中关键点的坐标输入至预设的遮盖位置编码层,得到所述第二点云块的位置编码;
将所述第一点云块和第二点云块输入预设的线性升维层,获取升维至预设维度的第一点云块和第二点云块;
将所述升维至预设维度的第一点云块和第二点云块输入至预设的第一自注意力层,得到所述第一点云块的特征向量和所述第二点云块的特征向量;
将所述第一点云块的特征向量和所述第一点云块的位置编码进行相加,并将相加结果与所述第二点云块的位置编码拼接,得到所述待训练点云的张量;
将所述待训练点云的张量输入至预设的第二自注意力层,得到所述第二点云块的预测特征向量,所述预测特征向量即为所述预测信息。
在其中的一些实施例中,所述根据所述第二点云块的信息和所述第二点云块的预测信息,得到预测损失,包括:
获取所述第二点云块的预测特征向量和所述第二点云块的特征向量中的多个原始向量,并在预设的向量库中获取多个所述原始向量对应的替换向量,使用所述替换向量替换多个所述原始向量;
分别确定替换后的第二点云块的特征向量和预测特征向量为第二点云块的语义和第二点云块的预测语义;
计算所述第二点云块的语义和第二点云块的预测语义的平方误差,所述平方误差即为第一预测损失;
将所述第二点云块的特征向量输入预设的第三自注意力层和线性降维层,得到降维后的所述第二点云块中的每个点的预测坐标;
计算所述第二点云块的坐标和所述第二点云块的预测坐标的倒角距离,所述倒角距离即为第二预测损失;
确定所述第一预测损失和所述第二预测损失的和为所述预测损失。
第二个方面,在本实施例中提供了一种点云匹配装置,所述装置包括:处理模块及匹配模块;
所述处理模块,用于将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量,所述点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量;
所述匹配模块,用于根据多个所述点云块的特征向量获取所述待匹配点云的全局描述向量,将所述待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的点云匹配方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的点云匹配方法。
与相关技术相比,在本实施例中提供的点云匹配方法,通过将待匹配点云划分为多个点云块,输入多个点云块至预训练后的点云特征编码模块,得到多个点云块的特征向量;点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量,以对点云特征编码模块进行训练;根据多个点云块的特征向量获取待匹配点云的全局描述向量,将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果,解决了基于有监督深度学习的点云匹配技术的匹配准确度低的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的点云匹配方法的终端的硬件结构框图;
图2是本实施例的点云匹配方法的流程图;
图3是本实施例的预训练方法的流程图;
图4是本实施例的预训练方法的优选流程图;
图5是本实施例的掩膜语义建模和对齐方法训练过程图;
图6是本实施例的点云匹配方法的优选流程图;
图7是本实施例的点云匹配装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的点云匹配方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的点云匹配方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种点云匹配方法,本申请涉及的点云匹配方法可以应用于机器人导航、三维重建、工业制造、航空航天、智能交通等方面,图2是本实施例的点云匹配方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,将待匹配点云划分为多个点云块,输入多个点云块至预训练后的点云特征编码模块,得到多个点云块的特征向量;点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量,以对点云特征编码模块进行训练。
具体地,处理器接收待匹配的一帧原始点云,将待匹配的点云划分为多个点云块,并将点云块输入至预训练后的点云特征编码模块中,以得到多个点云块的特征向量。其中,点云特征编码模块在预训练时输入了根据预设的遮盖率遮盖后的待训练的点云块,并分别输出未遮盖点云块的特征向量以及遮盖点云块的特征向量,以便于后续根据未遮盖点云块的特征向量和遮盖点云块的特征向量,对点云特征编码模块进行训练,通过在预训练时,对点云特征编码模块中输入的点云块进行部分遮盖,并根据输出的未遮盖点云块的特征向量和遮盖点云块的特征向量,对点云特征编码模块进行训练,以提高点云特征编码模块输出待匹配点云块的特征向量的准确性。
步骤S220,根据多个点云块的特征向量获取待匹配点云的全局描述向量,将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。
具体地,处理器根据点云匹配模块输出待匹配点云块的特征向量,得到待匹配点云的全局描述向量;并将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,将在预设的匹配阈值范围内的历史数据库中的点云帧确定为点云匹配结果。
通过上述步骤S210至步骤S220,处理器接收待匹配的一帧原始点云,将待匹配的点云划分为多个点云块,并将点云块输入至预训练后的点云特征编码模块中,以得到多个点云块的特征向量。其中,点云特征编码模块在预训练时输入了根据预设的遮盖率遮盖后的待训练的点云块,并分别输出未遮盖点云块的特征向量以及遮盖点云块的特征向量,以便于后续根据未遮盖点云块的特征向量和遮盖点云块的特征向量,对点云特征编码模块进行训练,根据点云匹配模块输出待匹配点云块的特征向量,得到待匹配点云的全局描述向量;并将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,将在预设的匹配阈值范围内的历史数据库中的点云帧确定为点云匹配结果。通过在预训练时,对点云特征编码模块中输入的点云块进行部分遮盖,并根据输出的未遮盖点云块的特征向量和遮盖点云块的特征向量,对点云特征编码模块进行训练,有利于提高点云特征编码模块输出待匹配点云块的特征向量的准确性。通过点云块的特征向量获取待匹配点云的全局描述变量,再将待匹配点云的全局描述变量与预设的历史数据库中的点云帧的全局描述变量进行匹配,并将匹配得到的在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果,有利于进一步提高点云匹配结果的准确性。
在其中的一些实施例中,步骤S210包括步骤S211至步骤S214。
步骤S211,根据预设的高度和半径,过滤待匹配点云。
具体地,处理器根据预设的高度和半径范围阈值,过滤待匹配点云。
步骤S212,将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理。
具体地,处理器将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理,通过体素化处理有利于过滤待匹配点云的数据的同时,保持点云的完整性。
步骤S213,对体素化处理后的点云进行采样,确定多个采样后的点为关键点。
具体地,处理器获取体素化处理之后的点云,对点云进行采样,并将采样后的多个点作为该待匹配点云的关键点。
步骤S214,根据关键点及在关键点的预设范围内的点的集合,将点云划分为多个点云块。
具体地,处理器根据采样得到的关键点和在关键点预设范围内的点的集合,将点云划分为多个点云块,其中每个点云块包括一个关键点以及在关键点的预设范围内的点的集合。
通过上述步骤S211至步骤S214,处理器根据预设的高度和半径范围阈值,过滤待匹配点云;将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理;其后对处理后的待匹配点云进行采样,将采样后的多个点作为该待匹配点云的关键点;并根据采样得到的关键点和在关键点预设范围内的点的集合,将点云划分为多个点云块。通过对过滤后的待匹配点云进行体素化处理有利于过滤待匹配点云的数据的同时,保持点云的完整性。将待匹配点云划分为多个点云块,有利于后续对多个点云块进行处理,进一步有利于提高点云匹配的准确性。
在其中的一些实施例中,步骤S210还包括步骤S215至步骤S216。
步骤S215,将多个点云块输入预设的线性升维层,获取升维至预设维度的点云块。
具体地,处理器将待匹配点云划分为多个点云块后,将多个点云块输入至预训练后的点云特征编码模块,即先将多个点云块输入至预设的线性升维层,将点云块的维度升至预设的维度。
步骤S216,将升维至预设维度的点云块输入至预设的第一自注意力层,得到多个点云块的特征向量。
具体地,处理器将多个点云块进行升维后,将升维后的点云块输入至预设的第一自注意力层,进而得到多个点云块的特征向量。
通过上述步骤S215至步骤S216,处理器将待匹配点云划分为多个点云块后,将多个点云块输入至预训练后的点云特征编码模块,即先将多个点云块输入至预设的线性升维层,将点云块的维度升至预设的维度。其后,将升维后的点云块输入至预设的第一自注意力层,进而得到多个点云块的特征向量。通过将多个点云块输入至预训练后的点云特征编码模块中,有利于提高获取多个点云块的特征向量的准确性。
在其中的一些实施例中,步骤S220还包括步骤S221至步骤S222。
步骤S221,在预设的向量库中获取多个距离向量,距离向量为与多个点云块的特征向量的距离在预设距离阈值范围内的向量。
具体地,处理器在预设的向量库中获取多个与多个点云块的特征向量的距离在预设距离阈值范围内的向量,即为距离向量。
步骤S222,将多个点云块的特征向量和多个距离向量进行拼接,得到待匹配点云的全局描述向量。
具体地,处理器将多个点云块的特征向量和多个距离向量进行拼接,得到待匹配点云的全局描述向量。
通过上述步骤S221至步骤S222,处理器在预设的向量库中获取多个与多个点云块的特征向量的距离在预设距离阈值范围内的向量,与多个点云块的特征向量的距离在预设距离阈值范围内的向量为距离向量。之后处理器将多个点云块的特征向量和多个距离向量进行拼接,得到待匹配点云的全局描述向量。通过获取距离向量,并将多个点云块的特征向量与多个距离向量进行拼接,得到匹配点云的全局描述向量,有利于进一步提高对待匹配点云的匹配准确度。
在本实施例中还提供了对点云特征编码模块进行预训练的方法。图3是本实施例的预训练方法的流程图,如图3所示,该流程包括如下步骤S310至步骤S370。
步骤S310,根据预设的高度和半径,过滤待训练点云。
具体地,处理器根据预设的高度和半径范围阈值,过滤待训练点云。
步骤S320,将过滤后的待训练点云按照预设的空间分辨率,进行体素化处理。
具体地,处理器将过滤后的待训练点云按照预设的空间分辨率,进行体素化处理,通过体素化处理有利于过滤待匹配点云的数据,还有利于保持点云的完整性。
步骤S330,对体素化处理后的待训练点云进行采样,确定多个采样后的点为关键点。
具体地,处理器获取体素化处理之后的待训练点云,对待训练点云进行采样,并将采样后的多个点作为该待训练点云的关键点。
步骤S340,根据关键点及在关键点的预设范围内的点的集合,将待训练的点云划分为多个点云块。
具体地,处理器根据采样得到的关键点和在关键点预设范围内的点的集合,将待训练点云划分为多个点云块,其中每个点云块包括一个关键点以及在关键点的预设范围内的点的集合。
步骤S350,根据预设的遮盖率对多个点云块进行遮盖,得到第一点云块及第二点云块,其中,第一点云块为可见点云块,第二点云块为被遮盖点云块。
具体地,处理器根据预设的遮盖率将多个点云块进行遮盖,得到可见点云块和被遮盖点云块,分别为第一点云块和第二点云块。
步骤S360,根据第一点云块的信息及第二点云块的信息,得到第二点云块的预测信息。
具体地,处理器将点云块划分为多个第一点云块和第二点云块后,获取第一点云块的信息和第二点云块的部分信息,并根据这些信息,对第二点云块的部分信息进行预测。
步骤S370,根据第二点云块的信息和第二点云块的预测信息,得到预测损失,并根据预测损失对点云特征编码模块进行训练。
具体地,处理器根据第二点云块的信息和第二点云块的预测信息,进行预测损失的计算,并根据得到的预测损失对点云特征编码模块进行训练。
通过上述步骤S310至步骤S370,处理器根据预设的高度和半径范围阈值,过滤待匹配点云;将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理;其后对处理后的待匹配点云进行采样,将采样后的多个点作为该待匹配点云的关键点;并根据采样得到的关键点和在关键点预设范围内的点的集合,将点云划分为多个点云块。处理器根据预设的遮盖率将多个点云块进行遮盖,得到可见点云块和被遮盖点云块,分别为第一点云块和第二点云块。处理器将点云块划分为多个第一点云块和第二点云块后,获取第一点云块的信息和第二点云块的部分信息,并根据这些信息,对第二点云块的部分信息进行预测。处理器根据第二点云块的信息和第二点云块的预测信息,进行预测损失的计算,并根据得到的预测损失对点云特征编码模块进行训练。通过对过滤后的待匹配点云进行体素化处理有利于过滤待匹配点云的数据的同时,保持点云的完整性。通过将待匹配点云划分为多个点云块,有利于后续对多个点云块进行处理,进一步有利于提高点云匹配的准确性。通过根据预设的遮盖率将多个点云块划分为第一点云块和第二点云块,并根据第一点云块和第二点云块的信息,对第二点云块的部分信息进行预测,并计算第二点云块的预测损失,进而通过预测损失对点云特征编码模块进行训练,有利于更好地对点云特征编码模块进行训练,进而提高点云特征编码模块输出特征向量的准确度。
在其中的一些实施例中,步骤S360包括步骤S361至步骤S366。
步骤S361,第一点云块中关键点的坐标输入至预设的可见位置编码层,得到第一点云块的位置编码。
具体地,处理器将第一点云块中关键点的坐标输入至预设的可见位置编码层,得到第一点云块相关的位置编码,其中,关键点的坐标可以看作是中心点的坐标。
步骤S362,第二点云块中关键点的坐标输入至预设的遮盖位置编码层,得到第二点云块的位置编码。
具体地,处理器将第二点云块中关键点的坐标输入至预设的可见位置编码层,得到第二点云块相关的位置编码。
步骤S363,将第一点云块和第二点云块输入预设的线性升维层,获取升维至预设维度的第一点云块和第二点云块。
具体地,处理器将第一点云块和第二点云块输入至预设的线性升维层,得到升维后的第一点云块和第二点云块。通过设置线性升维层有利于提高点云位置编码模块输出特征向量的准确性。
步骤S364,将升维至预设维度的第一点云块和第二点云块输入至预设的第一自注意力层,得到第一点云块的特征向量和第二点云块的特征向量。
具体地,处理器将升维后的第一点云块和第二点云块分别输入至预设的第一自注意力层,进而分别得到第一点云块的特征向量和第二点云块的特征向量。
步骤S365,将第一点云块的特征向量和第一点云块的位置编码进行相加,并将相加结果与第二点云块的位置编码拼接,得到待训练点云的张量。
具体地,处理器将第一点云块的特征向量和第一点云块的位置编码进行相加,并将相加结果与第二点云块的位置编码拼接,进而得到待训练点云的张量。有利于提高后续对第二点云块的信息进行预测的准确性。
步骤S366,将待训练点云的张量输入至预设的第二自注意力层,得到第二点云块的预测特征向量,预测特征向量即为预测信息。
具体地,处理器将待训练点云的张量输入至预设的第二自注意力层,得到第二点云块的预测特征向量。
通过上述步骤S361至步骤S366,处理器将第一点云块中关键点的坐标输入至预设的可见位置编码层,得到第一点云块相关的位置编码,其中,关键点的坐标可以看作是中心点的坐标。将第二点云块中关键点的坐标输入至预设的可见位置编码层,得到第二点云块相关的位置编码。将第一点云块和第二点云块输入至预设的线性升维层,得到升维后的第一点云块和第二点云块。其后,处理器将升维后的第一点云块和第二点云块分别输入至预设的第一自注意力层,进而分别得到第一点云块的特征向量和第二点云块的特征向量;将第一点云块的特征向量和第一点云块的位置编码进行相加,并将相加结果与第二点云块的位置编码拼接,进而得到待训练点云的张量。处理器将待训练点云的张量输入至预设的第二自注意力层,得到第二点云块的预测特征向量。通过设置线性升维层有利于提高点云位置编码模块输出特征向量的准确性。通过将第一点云块的特征向量与位置编码进行相加后与第二点云块的位置编码进行拼接,有利于提高后续对第二点云块的信息进行预测的准确性,进一步提高点云特征编码模块输出特征向量的准确性。
在其中的一些实施例中,步骤S370包括步骤S371至步骤S376。
步骤S371,获取第二点云块的预测特征向量和第二点云块的特征向量中的多个原始向量,并在预设的向量库中获取多个原始向量对应的替换向量,使用替换向量替换多个原始向量。
具体地,处理器获取第二点云块的预测特征向量和第二点云块的特征向量中的多个原始向量,并在预设的向量库中获取多个原始向量对应的替换向量,其后,使用替换向量替换多个原始向量。
步骤S372,分别确定替换后的第二点云块的特征向量和预测特征向量为第二点云块的语义和第二点云块的预测语义。
具体地,处理器替换后的第二点云块的特征向量和预测特征向量,并分别确定为第二点云块的语义和第二点云块的预测语义。
步骤S373,计算第二点云块的语义和第二点云块的预测语义的平方误差,平方误差即为第一预测损失。
具体地,处理器计算第一预测损失,即第二点云块的语义和第二点云块的预测语义的平方误差,其中,平方误差为第一预测损失。
步骤S374,将第二点云块的特征向量输入预设的第三自注意力层和线性降维层,得到降维后的第二点云块中的每个点的预测坐标。
具体地,处理器将第二点云块的特征向量依次输入预设的第三自注意力层和线性降维层,得到降维后的第二点云块中的每个点的预测坐标。
步骤S375,计算第二点云块的坐标和第二点云块的预测坐标的倒角距离,倒角距离即为第二预测损失。
具体地,处理器计算第二点云块的坐标和第二点云块的预测坐标的倒角距离,并确定倒角距离为第二预测损失。
步骤S376,确定第一预测损失和第二预测损失的和为预测损失。
具体地,处理器将第一预测损失和第二预测损失的和作为预测损失,以使用该预测损失对点云特征编码模块进行训练。
通过上述步骤S371至步骤S376,处理器获取第二点云块的预测特征向量和第二点云块的特征向量中的多个原始向量,并在预设的向量库中获取多个原始向量对应的替换向量,其后,使用替换向量替换多个原始向量。替换后的第二点云块的特征向量和预测特征向量,并分别确定为第二点云块的语义和第二点云块的预测语义。通过第二点云块的语义和预测语义计算第一预测损失,即第二点云块的语义和第二点云块的预测语义的平方误差。其后,处理器将第二点云块的特征向量依次输入预设的第三自注意力层和线性降维层,得到降维后的第二点云块中的每个点的预测坐标。处理器计算第二点云块的坐标和第二点云块的预测坐标的倒角距离,并确定倒角距离为第二预测损失。处理器将第一预测损失和第二预测损失的和作为预测损失,以使用该预测损失对点云特征编码模块进行训练。通过获取第二点云块的语义对齐误差和第二点云块的预测倒角距离作为预测损失,并根据预测损失对点云特征编码模块进行训练,有利于进一步提高训练的准确度,进而提高点云特征编码输出特征向量的准确度,进而有利于提高点云匹配的准确度。
下面通过优选实施例对本实施例进行描述和说明。
图4是本实施例的预训练方法的优选流程图,如图4所示,该预训练方法包括如下步骤:
步骤S401,数据处理。
具体地,输入为单个点云帧和遮盖率,输出为可见的点云块和被遮盖的点云块。将单个点云帧和遮盖率R输入至数据处理对应的模块中,即数据处理模块,数据处理模块按照预先设定的高度和半径范围阈值过滤点云;将过滤后的点云按照预先设定的空间分辨率,进行体素化处理;其后,从体素化处理后的点云中采样出G个关键点,并选择离每个关键点最近的K个点作为其邻域,得到G个点云块;其中,一个关键点及其邻域的集合为一个点云块(Patch),G和K的值均为预先设定的值。根据预设的遮盖率R对G个点云块进行随机遮盖,共遮盖个点云块,特别地,如果/>不为整数,则向下取整,因此数据处理模块的输出为/>个可见点云块XV和/>个被遮盖点云块XM;可见点云块和被遮盖点云块的尺寸分别为/>和/>,其中,N表示三维空间中一个点的坐标维度。
示例性地,输入一帧原始点云至数据处理模块中,选取高度在-20cm到200cm之间,范围在30m以内的点为过滤后的点;其后,将过滤后的点云进行体素化处理,并对体素化处理后的点云进行采样,进一步具体地,使用最远点采样算法(Farthest Point Sampling,FPS)从体素化后的点云中采样出128个关键点,每个关键点选择离其最近的64个点作为其邻域,控制每帧点云数目为4096,将该帧命名为F,因此可以得到128个点云块;确定预设的遮盖率R=0.75,因此需要随机选择96个点云块进行遮盖,选择被遮盖的点云块的方法可以为:简单随机抽样和分层抽样等,最后输出32个可见点云块XV和96个被遮盖点云块XM,两种点云块的尺寸分别为和/>,其中,3表示三维空间中一个点的坐标维度。/>
步骤S402,点云特征编码。
具体地,输入可见的点云块XV和被遮盖的点云块XM至点云特征编码对应的模块中,即点云特征编码模块,点云特征编码模块输出为可见点云块特征和被遮盖点云块特征。点云特征编码模块的第一层为线性层,用来提升点云的维度,即将尺寸为和/>的点云块升维成尺寸为/>和/>的点云块,其中N的值小于C的值,C的值为预先定义的值;点云特征编码模块从第二层开始为DE层自注意力层,可见点云块和被遮盖的点云块分开输入至点云特征编码模块,输出为可见点云块的特征FV;输入被遮盖点云块到本模块,输出为被遮盖点云块的特征FM。
示例性地,点云特征编码模块的第一层为线性层,用来提升点云的维度,具体地,C的值为256,即将大小为分别为和/>的点云块升维成/>和/>的点云块。点云特征编码模块的第二层为12层自注意力层,输入大小为/>的可见点云块XV到12层自注意力层中,输出为可见点云块的特征FV;输入大小为/>的被遮盖点云块XM到12层自注意力层中,输出为被遮盖点云块的特征FM。
步骤S403,掩膜点云特征预测。
具体地,输入可见点云块特征、中心的坐标和被遮盖点云块中心的坐标至掩膜点云特征预测对应的模块,即掩膜点云特征预测模块,输出为预测的被遮盖点云块特征。将被遮盖点云块中心的坐标,被遮盖点云块的尺寸为,输入到遮盖位置编码层后,得到尺寸为/>的遮盖点云块位置编码;将可见点云块中心的坐标,可见点云块的尺寸为/>,输入到可见位置编码层得到尺寸为/>的可见点云块位置编码;将可见点云块特征FV和可见点云块位置编码相加,其尺寸仍为,将该相加结果与遮盖点云块位置编码进行拼接后,得到尺寸为/>的张量EP,将张量EP输入到掩膜点云特征预测模块;张量EP经过DP层自注意力层之后,得到预测特征FP,取FP中跟遮盖块对应位置的结果,作为预测的被遮盖点云块特征FPM。
示例性地,将被遮盖点云块中心的坐标,输入到遮盖位置编码层,得到尺寸为的遮盖点云块位置编码,其中,输入的被遮盖点云块的尺寸为/>;将可见点云块中心的坐标,输入到可见位置编码层得到尺寸为/>的可见点云块位置编码,其中,输入的可见点云块的尺寸为/>;将可见点云块特征FV和可见点云块位置编码相加,其尺寸仍为/>,将该相加结果跟遮盖点云块位置编码进行拼接,得到/>的张量EP,将EP输入到掩膜点云特征预测模块;掩膜点云特征预测模块由4层自注意力层组成,EP经过4层自注意力层之后,得到预测特征FP,取FP中跟遮盖块对应位置的结果,作为预测的被遮盖点云块特征FPM。
步骤S404,掩膜点云语义对齐。
具体地,输入被遮盖点云块特征FM和预测的被遮盖点云块特征FPM至掩膜点云语义对齐对应的模块中,即掩膜点云语义对齐模块,输出为被遮盖点云块语义SM和预测的被遮盖点云块语义SPM。预先构建点云词向量库(PCV),点云词向量库由A个的向量组成,其中A的值由预先设定,向量值通过训练得到;对于FM和FPM中的向量f,在PCV中寻找与f距离最近向量v,并使用向量v替换f,进而得到被遮盖点云块语义SM和预测的被遮盖点云块语义SPM,其中寻找与f距离最近向量即度量向量的距离,采用平方误差的方法确定;并计算SM和SPM的平方误差作为被遮盖点云语义对齐误差。
示例性地,预先构建由1024个的向量组成的点云词向量库;寻找在PCV中与FM和FPM中的每个向量f距离最近向量v,并使用向量v来替换FM和FPM中的向量f,进而分别得到被遮盖点云块语义SM和预测的被遮盖点云块语义SPM,并计算SM和SPM的平方误差作为被遮盖点云语义对齐误差,被遮盖点云语义对齐误差的公式为:
其中,Lvoc即为被遮盖点云语义对齐误差,SM为被遮盖点云块语义,SPM为预测的被遮盖点云块语义,2表示平方,即表示被遮盖点云块语义SM和预测的被遮盖点云块语义SPM的向量差值的范数的平方。
步骤S405,掩膜点云重建。
具体地,输入预测的被遮盖点云块特征FPM至掩膜点云重建对应的模块中,即掩膜点云重建模块,输出为被遮盖点云块中每个点的预测坐标XPM。掩膜点云重建模块由DD层自注意力层和一个线性降维层组成;FPM经过DD层自注意力层之后,其输出尺寸保持不变,仍然为,将经过DD层自注意力层的FPM输入至线性降维层,得到被遮盖点云块中每个点的预测坐标XPM,其尺寸为/>,并计算XM和XPM的倒角距离(Chamfer Distance)。
示例性地,掩膜点云重建模块由4层自注意力层和线性降维层组成;FPM经过4层自注意力层之后,其输出尺寸保持不变,为,将该输出放入线性降维层,得到被遮盖点云块中每个点的预测坐标XPM,其尺寸为/>;计算XM和XPM的倒角距离公式为:
其中,Lrec(XM,XPM),即为XM和XPM的倒角距离,XM包括被遮盖点云块中每个点的坐标,p为被遮盖点云块中一个点的坐标,XPM包括被遮盖点云块中每个点的预测坐标,q为被遮盖点云块中一个点的预测坐标;其中,表示一种矩阵范数即谱范数,其中的2表示该矩阵范数为2-范数,2-范数表示通常意义下的距离,表示(q-p)矩阵乘(q-p)的转置共轭矩阵得到的最大矩阵特征值的平方根,即(q-p)矩阵的最大奇异值,因此,/>表示被遮盖点云块中一个点的坐标p与被遮盖点云块中一个点的预测坐标q的向量差值的最大奇异值的平方;/>表示被遮盖点云块中一个点的预测坐标q与被遮盖点云块中一个点的坐标p的向量差值的最大奇异值的平方;/>表示XM中任意一点p到XPM的最小距离之和;/>表示XPM中任意一点q到XM的最小距离之和。如果计算得到的倒角距离较大,则说明掩膜点云重建效果较差;如果距离较小,则说明掩膜点云重建效果较好。
步骤S406,预训练。
具体地,将被遮盖点云语义对齐误差Lvoc和XM和XPM的倒角距离Lrec(XM,XPM)的和作为总损失,并根据总损失对点云特征编码模块进行训练,以提高点云特征编码模块输出特征向量的准确性。
图5是本实施例的掩膜语义建模和对齐方法训练过程图,参考图5,输入为待训练的点云,点云通过前述的数据处理模块,将点云划分为多个可见点云块和被遮盖点云块,可见点云块在图5中由圆圈中带点的圆形图像表示,被遮盖点云块由圆圈中带有斜线的圆形图像表示;之后将得到的多个可见点云块和被遮盖点云块输入前述的点云特征编码模块,分别得到可见点云块的特征向量和被遮盖点云块的特征向量,在图5中,可见点云块的特征向量由实心的正方形表示,被遮盖点云块的特征向量由带有斜线的正方形表示;之后通过前述的掩膜点云语义对齐模块,并根据得到的被遮盖点云块的预测特征向量,被遮盖点云块的预测特征向量在图5中由圆圈内带有竖线的圆形表示,寻找在点云词向量库PCV中与FM和FPM中的每个向量f距离最近向量v,点云词向量库在图5中由16个依次排列的正方形组成的正方形集合表示,并使用向量v来替换FM和FPM中的向量f,进而分别得到被遮盖点云块语义SM和预测的被遮盖点云块语义SPM,并根据SM和SPM得到被遮盖点云语义对齐误差Lvoc;其后,通过前述的掩膜点云重建模块,输入被遮盖点云块的预测特征向量,被遮盖点云块的预测特征向量在图5中由内部带有竖线的正方形表示,得到被遮盖点云块中预测坐标,以及被遮盖点云块中的坐标与预测坐标之间的倒角距离Lrec,上述过程即为对点云特征编码模块的掩膜语义建模和对齐方法训练过程。
图6是本实施例的点云匹配方法的优选流程图,如图6所示,该点云匹配方法包括如下步骤:
步骤S601,数据处理。
具体地,输入为单个点云帧,输出为点云块。将单个点云帧输入至数据处理对应的模块中,即数据处理模块,数据处理模块按照预先设定的高度和半径范围阈值过滤点云;将过滤后的点云按照预先设定的空间分辨率,进行体素化处理;其后,从体素化处理后的点云中采样出G个关键点,并选择离每个关键点最近的K个点作为其邻域,得到G个点云块;其中,一个关键点及其邻域称为一个块;G和K的值均为预先设定的值。因此在数据处理模块的输出为G个点云块;点云块的尺寸为,其中,N表示三维空间中一个点的坐标维度。
步骤S602,点云特征编码。
具体地,输入点云块至点云特征编码对应的模块中,即点云特征编码模块,点云特征编码模块输出为点云块特征。点云特征编码模块的第一层为线性层,用来提升点云的维度,即将尺寸为的点云块升维成/>,其中N的值小于C的值,C的值为预先定义的值;点云特征编码模块从第二层开始为DE层自注意力层(Self-attention Layer),将点云块输入至点云特征编码模块,输出为所有点云块的特征FALL。
步骤S603,点云匹配。
具体地,获取点云词向量库即PCV中每个向量的向量特征vn,并计算所有点云块的特征FALL的局部聚合描述符向量(Vector of Locally Aggregated Descriptors,VLAD),局部聚合描述符向量的公式为:
其中,n表示PCV中第n个向量,FALL表示所有点云块的特征,fall表示一个点云块的特征,示例性地,其取值范围为1-1024,当an=1时表示vn为PCV中距离fall最近的向量,当an=0时表示vn不是PCV中距离fall最近的向量;表示PCV中距离FALL中每个点云块的特征fall最近的向量的集合。
示例性地,Gn表示长度为的向量,将G1-G2014的1024个向量拼接成长度为的向量,即为当前点云的全局描述向量。其后,将当前点云的全局描述向量与历史数据库中已抽取的全局描述向量作比较,返回与当前全局描述向量的欧式距离最接近的历史点云帧,即为点云匹配结果。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。
在本实施例中还提供了一种点云匹配装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本实施例的点云匹配装置的结构框图,如图7所示,该装置包括:处理模块10及匹配模块20。
处理模块10,用于将待匹配点云划分为多个点云块,输入多个点云块至预训练后的点云特征编码模块,得到多个点云块的特征向量,点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量。
匹配模块20,用于根据多个点云块的特征向量获取待匹配点云的全局描述向量,将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤一,将待匹配点云划分为多个点云块,输入多个点云块至预训练后的点云特征编码模块,得到多个点云块的特征向量;点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量,以对点云特征编码模块进行训练。
步骤二,根据多个点云块的特征向量获取待匹配点云的全局描述向量,将待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的点云匹配方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种点云匹配方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (9)
1.一种点云匹配方法,其特征在于,所述方法包括:
将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量;所述点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量,以对所述点云特征编码模块进行训练;
根据多个所述点云块的特征向量获取所述待匹配点云的全局描述向量,将所述待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果;所述待匹配点云的全局描述向量由多个所述点云块的特征向量和多个距离向量拼接得到,所述距离向量为在预设的向量库中与多个所述点云块的特征向量的距离在预设距离阈值范围内的向量。
2.根据权利要求1所述的点云匹配方法,其特征在于,所述将待匹配点云划分为多个点云块,包括:
根据预设的高度和半径,过滤所述待匹配点云;
将过滤后的待匹配点云按照预设的空间分辨率,进行体素化处理;
对体素化处理后的点云进行采样,确定多个采样后的点为关键点;
根据所述关键点及在所述关键点的预设范围内的点的集合,将所述点云划分为多个点云块。
3.根据权利要求1所述的点云匹配方法,其特征在于,所述将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量,包括:
将多个所述点云块输入预设的线性升维层,获取升维至预设维度的点云块;
将所述升维至预设维度的点云块输入至预设的第一自注意力层,得到多个所述点云块的特征向量。
4.根据权利要求1所述的点云匹配方法,其特征在于,所述将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块之前,所述方法包括:
根据预设的高度和半径,过滤所述待训练点云;
将过滤后的待训练点云按照预设的空间分辨率,进行体素化处理;
对体素化处理后的待训练点云进行采样,确定多个采样后的点为关键点;
根据所述关键点及在所述关键点的预设范围内的点的集合,将待训练的点云划分为多个点云块;
根据预设的遮盖率对多个所述点云块进行遮盖,得到第一点云块及第二点云块,其中,所述第一点云块为可见点云块,所述第二点云块为被遮盖点云块;
根据所述第一点云块的信息及所述第二点云块的信息,得到所述第二点云块的预测信息;
根据所述第二点云块的信息和所述第二点云块的预测信息,得到预测损失,并根据所述预测损失对所述点云特征编码模块进行训练。
5.根据权利要求4所述的点云匹配方法,其特征在于,所述根据所述第一点云块的信息及所述第二点云块的信息,得到所述第二点云块的预测信息,包括:
将所述第一点云块中关键点的坐标输入至预设的可见位置编码层,得到所述第一点云块的位置编码;
将所述第二点云块中关键点的坐标输入至预设的遮盖位置编码层,得到所述第二点云块的位置编码;
将所述第一点云块和第二点云块输入预设的线性升维层,获取升维至预设维度的第一点云块和第二点云块;
将所述升维至预设维度的第一点云块和第二点云块输入至预设的第一自注意力层,得到所述第一点云块的特征向量和所述第二点云块的特征向量;
将所述第一点云块的特征向量和所述第一点云块的位置编码进行相加,并将相加结果与所述第二点云块的位置编码拼接,得到所述待训练点云的张量;
将所述待训练点云的张量输入至预设的第二自注意力层,得到所述第二点云块的预测特征向量,所述预测特征向量即为所述预测信息。
6.根据权利要求4所述的点云匹配方法,其特征在于,所述根据所述第二点云块的信息和所述第二点云块的预测信息,得到预测损失,包括:
获取第二点云块的预测特征向量中的多个原始向量和第二点云块的特征向量中的多个原始向量,并在预设的向量库中获取多个所述原始向量对应的替换向量,使用所述替换向量替换多个所述原始向量;
分别确定替换后的第二点云块的特征向量和预测特征向量为第二点云块的语义和第二点云块的预测语义;
计算所述第二点云块的语义和第二点云块的预测语义的平方误差,所述平方误差即为第一预测损失;
将所述第二点云块的特征向量输入预设的第三自注意力层和线性降维层,得到降维后的所述第二点云块中的每个点的预测坐标;
计算所述第二点云块的坐标和所述第二点云块的预测坐标的倒角距离,所述倒角距离即为第二预测损失;
确定所述第一预测损失和所述第二预测损失的和为所述预测损失。
7.一种点云匹配装置,其特征在于,所述装置包括:处理模块及匹配模块;
所述处理模块,用于将待匹配点云划分为多个点云块,输入多个所述点云块至预训练后的点云特征编码模块,得到多个所述点云块的特征向量;所述点云特征编码模块在预训练时输入根据预设的遮盖率进行遮盖后的待训练的点云块,并分别输出未遮盖点云块及遮盖点云块的特征向量;
所述匹配模块,用于根据多个所述点云块的特征向量获取所述待匹配点云的全局描述向量,将所述待匹配点云的全局描述向量与预设的历史数据库中的点云帧的全局描述向量进行匹配,确定在预设的匹配阈值范围内的历史数据库中的点云帧为点云匹配结果;所述待匹配点云的全局描述向量由多个所述点云块的特征向量和多个距离向量拼接得到,所述距离向量为在预设的向量库中与多个所述点云块的特征向量的距离在预设距离阈值范围内的向量。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求6中任一项所述的点云匹配方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的点云匹配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310940230.5A CN116664645B (zh) | 2023-07-28 | 2023-07-28 | 一种点云匹配方法、装置、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310940230.5A CN116664645B (zh) | 2023-07-28 | 2023-07-28 | 一种点云匹配方法、装置、电子装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116664645A CN116664645A (zh) | 2023-08-29 |
CN116664645B true CN116664645B (zh) | 2023-10-20 |
Family
ID=87722741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310940230.5A Active CN116664645B (zh) | 2023-07-28 | 2023-07-28 | 一种点云匹配方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116664645B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298971A (zh) * | 2014-09-28 | 2015-01-21 | 北京理工大学 | 一种3d点云数据中的目标识别方法 |
CN110264502A (zh) * | 2019-05-17 | 2019-09-20 | 华为技术有限公司 | 点云配准方法和装置 |
CN111524168A (zh) * | 2020-04-24 | 2020-08-11 | 中国科学院深圳先进技术研究院 | 点云数据的配准方法、系统、装置及计算机存储介质 |
CN113139996A (zh) * | 2021-05-06 | 2021-07-20 | 南京大学 | 一种基于三维点云几何特征学习的点云配准方法及系统 |
CN113177969A (zh) * | 2021-04-29 | 2021-07-27 | 哈尔滨工程大学 | 一种基于运动方向变化的候选种子的点云单目标跟踪方法 |
CN114022525A (zh) * | 2021-11-09 | 2022-02-08 | 中国联合网络通信集团有限公司 | 基于深度学习的点云配准方法、装置、终端设备及介质 |
CN114930403A (zh) * | 2020-07-20 | 2022-08-19 | 深圳元戎启行科技有限公司 | 基于点云数据的三维重建方法、装置和计算机设备 |
WO2022246724A1 (zh) * | 2021-05-27 | 2022-12-01 | Oppo广东移动通信有限公司 | 点云解码、上采样及模型训练方法与装置 |
CN115578408A (zh) * | 2022-07-28 | 2023-01-06 | 四川大学 | 点云配准的叶片轮廓光学检测方法、系统、设备及终端 |
CN116189172A (zh) * | 2023-04-20 | 2023-05-30 | 福建环宇通信息科技股份公司 | 一种3d目标检测方法、设备、存储介质和芯片 |
-
2023
- 2023-07-28 CN CN202310940230.5A patent/CN116664645B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298971A (zh) * | 2014-09-28 | 2015-01-21 | 北京理工大学 | 一种3d点云数据中的目标识别方法 |
CN110264502A (zh) * | 2019-05-17 | 2019-09-20 | 华为技术有限公司 | 点云配准方法和装置 |
CN111524168A (zh) * | 2020-04-24 | 2020-08-11 | 中国科学院深圳先进技术研究院 | 点云数据的配准方法、系统、装置及计算机存储介质 |
CN114930403A (zh) * | 2020-07-20 | 2022-08-19 | 深圳元戎启行科技有限公司 | 基于点云数据的三维重建方法、装置和计算机设备 |
CN113177969A (zh) * | 2021-04-29 | 2021-07-27 | 哈尔滨工程大学 | 一种基于运动方向变化的候选种子的点云单目标跟踪方法 |
CN113139996A (zh) * | 2021-05-06 | 2021-07-20 | 南京大学 | 一种基于三维点云几何特征学习的点云配准方法及系统 |
WO2022246724A1 (zh) * | 2021-05-27 | 2022-12-01 | Oppo广东移动通信有限公司 | 点云解码、上采样及模型训练方法与装置 |
CN114022525A (zh) * | 2021-11-09 | 2022-02-08 | 中国联合网络通信集团有限公司 | 基于深度学习的点云配准方法、装置、终端设备及介质 |
CN115578408A (zh) * | 2022-07-28 | 2023-01-06 | 四川大学 | 点云配准的叶片轮廓光学检测方法、系统、设备及终端 |
CN116189172A (zh) * | 2023-04-20 | 2023-05-30 | 福建环宇通信息科技股份公司 | 一种3d目标检测方法、设备、存储介质和芯片 |
Non-Patent Citations (3)
Title |
---|
Lightweight Semantic-Aided Localization With Spinning LiDAR Sensor;Yuan Ren et al.;《IEEE TRANSACTIONS ON INTELLIGENT VEHICLES》;第8卷(第1期);第605-615页 * |
SelFLoc: Selective Feature Fusion for Large-scale Point Cloud-based Place Recognition;Qibo Qiu et al.;《arXiv:2306.01205v2》;第1-9页 * |
结构化环境下基于结构单元软编码的3维激光雷达点云描述子;周光召 等;《机器人》;第42卷(第6期);第641-650页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116664645A (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6745328B2 (ja) | 点群データを復旧するための方法及び装置 | |
EP4016458A1 (en) | Positioning method and device, apparatus, and storage medium | |
CN111627065B (zh) | 一种视觉定位方法及装置、存储介质 | |
US11875424B2 (en) | Point cloud data processing method and device, computer device, and storage medium | |
WO2022193335A1 (zh) | 点云数据处理方法、装置、计算机设备和存储介质 | |
He et al. | ICP registration with DCA descriptor for 3D point clouds | |
CN108898669A (zh) | 数据处理方法、装置、介质和计算设备 | |
CN113724388B (zh) | 高精地图的生成方法、装置、设备以及存储介质 | |
CN113592015A (zh) | 定位以及训练特征匹配网络的方法和装置 | |
CN113902802A (zh) | 视觉定位方法及相关装置、电子设备和存储介质 | |
CN116664645B (zh) | 一种点云匹配方法、装置、电子装置和存储介质 | |
Dang et al. | Real-time semantic plane reconstruction on a monocular drone using sparse fusion | |
Maimaitimin et al. | Stacked convolutional auto-encoders for surface recognition based on 3d point cloud data | |
CN117094203A (zh) | 通过机器学习生成棱柱cad模型 | |
CN115830375A (zh) | 点云分类方法及装置 | |
CN116486038A (zh) | 一种三维构建网络训练方法、三维模型生成方法以及装置 | |
CN115880555A (zh) | 目标检测方法、模型训练方法、装置、设备及介质 | |
CN115546515A (zh) | 一种深度信息获取方法和装置 | |
CN114943766A (zh) | 重定位方法、装置、电子设备及计算机可读存储介质 | |
CN114140497A (zh) | 目标车辆3d实时追踪方法及系统 | |
CN115147564A (zh) | 一种三维模型构建方法、神经网络训练方法以及装置 | |
CN115803587A (zh) | 模型生成装置及方法、路径搜索装置以及模型生成程序 | |
Li et al. | BDLoc: Global localization from 2.5 D building map | |
Lin et al. | Merging grid maps in diverse resolutions by the context-based descriptor | |
Wang et al. | LiDAR-SLAM loop closure detection based on multi-scale point cloud feature transformer |
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 |