点云数据匹配方法、装置、电子设备及计算机存储介质
文献发布时间:2023-06-19 11:06:50
技术领域
本申请涉及人工智能、地图、自动驾驶、定位及云技术领域,具体而言,本申请涉及一种点云数据匹配方法、装置、电子设备及计算机存储介质。
背景技术
点云配准在各个领域有着较为广泛的应用,现有技术中,对于待匹配的两个点云数据,通常基于两个点云数据各自对应的空间结构特征,对待匹配的两个点云数据进行匹配,由于空间结构特征仅能反应点云数据中各点的空间位置关系,从而会使得点云数据的匹配效果不够准确。因此,现有技术中,基于两个点云数据各自对应的空间结构特征进行点云匹配,会导致匹配结果不准确。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案,以解决在提高点云数据匹配准确度的问题。
根据本申请的一个方面,提供了一种点云数据匹配方法,该方法包括:
获取待匹配的第一点云数据和第二点云数据,对于第一点云数据和第二点云数据中的每一点云数据,每一点云数据中包括多个三维点的位置信息和属性信息;
获取第一点云数据对应的第一二维数据,第一二维数据包括与第一点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
获取第二点云数据对应的第二二维数据,第二二维数据包括与第二点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
基于第一二维数据,确定第一点云数据中的各第一三维关键点,并获取每个第一三维关键点的关键点特征,关键点特征包括纹理特征和空间结构特征;
基于第二二维数据,确定第二点云数据中的各第二三维关键点,并获取每个第二三维关键点的关键点特征;
基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对各第一三维关键点和各第二三维关键点进行匹配,得到匹配结果。
根据本申请另一个方面,提供了一种点云数据匹配装置,该装置包括:
点云数据获取模块,用于获取待匹配的第一点云数据和第二点云数据,对于第一点云数据和第二点云数据中的每一点云数据,每一点云数据中包括多个三维点的位置信息和属性信息;
第一二维数据获取模块,用于获取第一点云数据对应的第一二维数据,第一二维数据包括与第一点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
第二二维数据获取模块,用于获取第二点云数据对应的第二二维数据,第二二维数据包括与第二点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
第一关键点特征确定模块,用于基于第一二维数据,确定第一点云数据中的各第一三维关键点,并获取每个第一三维关键点的关键点特征,关键点特征包括纹理特征和空间结构特征;
第二关键点特征确定模块,用于基于第二二维数据,确定第二点云数据中的各第二三维关键点,并获取每个第二三维关键点的关键点特征;
点云匹配模块,用于基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对各第一三维关键点和各第二三维关键点进行匹配,得到匹配结果。
可选的,对于一个三维点,该三维点对应的属性信息包括反射强度信息或颜色信息中的至少一项。
可选的,第一关键点特征确定模块在基于第一二维数据,确定第一点云数据中的各第一三维关键点时,具体用于:
提取第一二维数据中各二维点的相关信息,相关信息包括关键点信息和显著性信息,对于每个二维点,关键点信息表征了该二维点是二维关键点的可能性,显著性信息表征了该二维点在第一二维数据中各点的显著程度;
基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点;
将第一点云数据中与确定出的各二维关键点对应的各三维点,确定为个第一三维关键点。
可选的,第一关键点特征确定模块在基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点时,具体用于:
对于每个二维点,基于二维点对应的关键点信息和显著性信息,确定二维点的重要程度;
基于各二维点的重要程度,确定出各二维点中的二维关键点。
可选的,对于每一点云数据,该装置还包括:
特征描述信息确定模块,用于基于点云数据对应的二维数据,提取二维数据中各二维点的特征描述信息;
第一关键点特征确定模块在确定第一点云数据中每个第一三维关键点所对应的纹理特征时,具体用于:
对于每一第一三维关键点,将与第一三维关键点对应的二维关键点的特征描述信息,作为第一三维关键点所对应的纹理特征。
可选的,第一关键点特征确定模块在确定第一点云数据中每个第一三维关键点所对应的空间结构特征时,具体用于:
对于每个第一三维关键点,基于第一点云数据中位于该第一三维关键点设定范围内的点云数据,确定第一三维关键点对应的空间结构特征。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
对第一点云数据进行投影,得到第一点云数据对应的投影图像,将投影图像作为第一二维数据;
其中,投影图像中的各像素点对应于第一二维数据中的各二维点,每个像素点的像素值对应于第一二维数据中的二维点的属性信息。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
按照空间位置关系,将第一点云数据划分为至少两个点云网格;
分别获取每个点云网格对应的二维数据,第一点云数据对应的第一二维数据包括各点云网格对应的二维数据;
第一关键点特征确定模块在基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点时,具体用于:对于每个点云网格,基于点云网格中对应的二维数据,确定点云网格对应的二维关键点;
将各点云网格对应的各二维关键点所对应的各三维点作为第一点云数据中的各第一三维关键点。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
根据第一点云数据中各三维点的位置信息,确定第一点云数据对应的法线方向;
基于法线方向,确定第一点云数据的投影方向;
按照投影方向对第一点云数据进行投影,得到第一点云数据对应的第一二维数据。
可选的,点云匹配模块在基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对各第一三维关键点和各第二三维关键点进行匹配,得到匹配结果时,具体用于:
对于每一第一三维关键点,基于该第一三维关键点对应的纹理特征和空间结构特征,确定该第一三维关键点对应的融合特征;
对于每一第二三维关键点,基于该第二三维关键点对应的纹理特征和空间结构特征,确定该第二三维关键点对应的融合特征;
基于各第一三维关键点对应的融合特征,以及各第二三维关键点对应的融合特征,确定各第一三维关键点和各第二三维关键点对应的匹配点对,匹配结果包括各三维关键点对应的匹配点对。
可选的,匹配结果包括各第一三维关键点和各第二三维关键点对应的匹配点对,该装置还包括:
位姿估计模块,用于基于各第一三维关键点和各第二三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果。
可选的,位姿估计模块在基于各三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果时,具体用于:
重复执行以下位姿确定步骤,直至满足条件的匹配点对的数量大于设定阈值,得到位姿估计结果:
基于各三维关键点对应的匹配点对中的至少三个匹配点对,确定至少三个匹配点对对应的初始关键点变换关系;
基于初始关键点变换关系,确定至少三个匹配点对中满足条件的匹配点对;
当满足条件的匹配点对的数量大于设定阈值时,将初始关键点变换关系作为位姿估计结果;
当满足条件的匹配点对的数量不大于设定阈值时,重新获取各三维关键点对应的匹配点对中的至少三个匹配点对,并重复位姿确定步骤。
可选的,对于每一点云数据,获取点云数据中的各三维关键点的空间结构特征,以及基于每一三维关键点对应的纹理特征和空间结构特征,确定三维关键点对应的融合特征,是通过神经网络模型实现的,神经网络模型包括空间特征提取网络和融合网络,其中,神经网络模型是通过训练模块训练得到的:
训练模块,用于获取训练数据,训练数据包括多个带有标签的点云数据对,每个点云数据对中包括样本点云数据和参考点云数据,对于一个点云数据对,标签表征了点云数据对中的两个点云数据之间的匹配关系;对于训练数据中的每一点云数据,确定点云数据中的三维关键点,并获取各三维关键点的纹理特征;对于每一点云数据中的每一三维关键点,将该点云数据中位于该三维关键点设定范围内的点云数据输入至空间特征提取网络,得到三维关键点的空间结构特征,并将三维关键点的纹理特征和空间结构特征输入至融合网络,得到三维关键点对应的融合特征;对于每一点云数据对,基于该点云数据对中样本点云数据中三维关键点的融合特征与参考点云数据中三维关键点的融合特征的匹配度,确定出参考点云数据中与样本点云数据的每一三维关键点相匹配的三维关键点;基于确定出的各点云数据对中相匹配的各三维关键点之间的匹配度,确定神经网络模型对应的训练损失函数,训练损失函数的值表征了各点云数据对的标签对应的匹配关系和匹配度之间的差异性;若训练损失函数收敛,则将收敛时对应的模型作为最终的神经网络模型,若不收敛,则调整神经网络模型的模型参数,并基于训练数据对神经网络模型进行训练。
根据本申请的再一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该计算机程序时实现本申请的点云数据匹配方法。
根据本申请的又一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现本申请的点云数据匹配方法。
本发明实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述点云数据匹配方法的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请提供的点云数据匹配方法、装置、电子设备及计算机存储介质,对于待匹配的第一点云数据和第二点云数据中的任一点云数据,该点云数据中包括多个三维点的位置信息和属性信息,由于属性信息可以反应出点云数据中三维关键点的纹理特征,位置信息可以反应出点云数据中三维关键点的空间结构特征,因此,基于该点云数据对应的二维数据可确定出点云数据中每个三维关键点所对应的纹理特征和空间结构特征,进而,在对第一点云数据和第二点云数据进行匹配时,考虑到三维关键点对应的纹理特征和空间结构特征,从而使得基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,得到的各第一三维关键点和各第二三维关键点的匹配结果更加准确。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请一个实施例提供的一种点云数据匹配方法的流程示意图;
图2为本申请一个实施例提供的一种点云数据匹配方法对应的各模块的结构示意图;
图3为本申请一个实施例提供的一种预处理模块的处理流程示意图;
图4为本申请一个实施例提供的一种特征提取模块和特征融合模块的处理流程示意图;
图5为本申请一个实施例提供的一种位姿求解模块的处理流程示意图;
图6为本申请一个实施例提供的一种二维特征检测模块的处理流程示意图;
图7为本申请一个实施例提供的一种三维特征提取模块的处理流程示意图;
图8为本申请一个实施例提供的一种特征融合模块的处理流程示意图;
图9为本申请一个实施例提供的一种神经网络模型的训练流程示意图;
图10为本申请一个实施例提供的一种点云数据匹配装置的结构示意图;
图11为本申请一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请实施例是为了提高点云数据匹配的准确度而提出的一种点云数据匹配方法,通过该方法,基于点云数据中的各三维关键点的纹理特征和空间结构特征,对点云数据进行匹配,可提高点云数据匹配的准确度。其中,本申请实施例可基于人工智能技术实现,比如,本实施例中的问题特征、空间结构特征,融合特征均可通过人工智能技术实现,可选的,本申请可选实施例中所涉及的数据计算可以采用云计算实现,所涉及的数据存储可以采用云存储实现。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,该点云数据匹配方法具体涉及人工智能技术中的机器学习技术,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、对抗学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
在本申请的一个实施例中,本申请实施例所提供的方案可以基于云技术实现,各可选实施例中所涉及的数据处理(包括但不限于数据计算等),可以采用云计算实现。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(一般称为基础设施即服务IaaS(Infrastructure as a Service),简称云平台)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在IaaS(Infrastructure as aService,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS (Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
本申请提供的点云数据匹配方法,该方案还可以通过人工智能云服务实现,人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。
这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。本申请中,可以利用平台提供的AI框架和AI基础设施来实现本申请提供的点云数据匹配方法。
下面以具体实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例所提供的方案可以适用于任何需要对点云数据进行匹配的应用场景中,比如,点云闭环检测、三维重建、自动驾驶、定位等应用场景。本申请实施例所提供的方案可以由任一电子设备执行,可以是用户终端设备,也可以是服务器执行,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
终端设备可以包括以下至少一项:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视、智能车载设备。
本申请实施例提供了一种可能的实现方式,如图1所示,提供了一种点云数据匹配方法的流程图,该方案可以由任一电子设备执行,例如,可以是终端设备,也可以是服务器,或者由终端设备和服务器共同执行。为描述方便,下面将以服务器作为执行主体为例对本申请实施例提供的方法进行说明。如图1中所示的流程图,该方法可以包括以下步骤:
步骤S110,获取待匹配的第一点云数据和第二点云数据,对于第一点云数据和第二点云数据中的每一点云数据,每一点云数据中包括多个三维点的位置信息和属性信息。
其中,点云数据是在同一空间参考系下表达目标物体的空间分布和表面特性的海量点集合,点云数据中可包括至少四个维度的信息,比如,可包括三维空间位置信息(位置信息)以及属性信息,属性信息是表征目标表面特性的信息。三维点指的是三维空间的点,每个三维点对应一个位置信息和属性信息。
可选的,对于一个三维点,属性信息包括反射强度信息或颜色信息中的至少一项。
采集点云数据的采集原理不同,对应的属性信息不同,比如,采集点云数据的采集设备可以是通过激光测量原理的采集设备,则属性信息可以为反射强度信息,反射强度信息指的是通过采集设备采集某个点的数据时所对应的激光雷达脉冲回波反射强度,不同的物体对于激光的反射程度是不同的,通过反射强度信息可以区分不同的物体。采集点云数据的采集设备还可以通过基于摄影测量原理的采集设备,则属性信息可以是颜色信息。
步骤S120,获取第一点云数据对应的第一二维数据,第一二维数据包括与第一点云数据中的多个三维点对应的多个二维点的位置信息和属性信息。
步骤S130,获取第二点云数据对应的第二二维数据,第二二维数据包括与第二点云数据中的多个三维点对应的多个二维点的位置信息和属性信息。
其中,在本申请的方案中,对第一点云数据和第二点云数据进行相同的处理,得到第一点云数据对应的第一二维数据和第二点云数据对应的第二二维数据,为了描述方便,下文直接将第一点云数据和第二点云数据中的任一点云数据描述为点云数据,将第一二维数据和第二二维数据中的任一二维数据描述成二维数据,即下文出现的点云数据可以指第一点云数据,也可以指第二点云数据,二维数据可以指第一二维数据,也可以指第二二维数据。
其中,将点云数据转换为二维数据,即将点云数据从三维空间转换到二维空间进行表达。比如,通过投影的方式,将点云数据转换为二维数据,可以理解的是,对于第一点云数据和第二点云数据分别进行投影,得到第一点云数据对应的二维数据以及第二点云数据对应的二维数据,投影方式是相同的。
其中,二维数据中的一个二维点对应于点云数据中的至少一个三维点,该二维点的属性信息对应于点云数据中至少一个三维点的属性信息,即二维数据中的二维点和点云数据中的三维点包括以下两种可能:
第一种,该二维数据中的二维点与点云数据中的三维点可以是一一对应的,即将云数据中的一个三维点投影得到对应的一个二维点。则二维数据中二维点的位置信息与点云数据中三维点的位置信息是一一对应的,二维数据中二维点的属性信息与点云数据中三维点的属性信息是一一对应的。
第二种,二维数据中的一个二维点对应于点云数据中的至少两个二维点,即点云数据中的至少两个三维点投影后对应得到一个二维点,则对于该二维点,该二维点的位置信息可以是基于该至少两个三维点中每个三维点的位置信息确定的,该二维点的属性信息可以是基于该至少两个三维点中每个三维点的属性信息确定的。
作为一个可选方案,可对该至少两个三维点中各三维点的位置信息进行融合(比如,求平均),得到的位置信息作为该二维点的位置信息。同理,也可对该至少两个三维点中各三维点的属性信息进行融合,得到的属性信息作为该二维点的属性信息。
步骤S140,基于第一二维数据,确定第一点云数据中的各第一三维关键点,并获取每个第一三维关键点的关键点特征,关键点特征包括纹理特征和空间结构特征。
步骤S150,基于第二二维数据,确定第二点云数据中的各第二三维关键点,并获取每个第二三维关键点的关键点特征。
其中,纹理特征可以表征物体表面特性,基于二维数据中各二维点的属性信息,可确定点云数据中的每个三维关键点对应的纹理特征。空间结构特征可表征点云数据中各三维点的空间位置关系,基于点云数据中各三维点的位置信息,可确定点云数据中的每个三维关键点对应的空间结构特征。
步骤S160,基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对第一点云数据中的各第一三维关键点和第二点云数据中的各第二三维关键点进行匹配,得到匹配结果。
其中,对第一点云数据中的各三维关键点和第二点云数据中的各三维关键点进行匹配具体指的是确定出两个点云数据中可匹配的点对,即在各第二三维关键点中找到与各第一三维关键点相匹配的点,对于一个匹配的点对,该点对中对应的点所对应的物体是相同的物体。
在本申请的一可选方案中,基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对第一点云数据中的各第一三维关键点和第二点云数据中的各第二三维关键点进行匹配,得到匹配结果,包括:
对于每一第一三维关键点,基于该第一三维关键点对应的纹理特征和空间结构特征,确定该第一三维关键点对应的融合特征;
对于每一第二三维关键点,基于该第二三维关键点对应的纹理特征和空间结构特征,确定该第二三维关键点对应的融合特征;
基于各第一三维关键点对应的融合特征,以及各第二三维关键点对应的融合特征,确定各第一三维关键点和各第二三维关键点对应的匹配点对,匹配结果包括各三维关键点对应的匹配点对。
其中,对于各第一三维关键点和各第二三维关键点中的每一三维关键点,将该三维关键点对应的纹理特征和空间结构特征进行融合得到融合特征,本申请中不限定融合的具体实现方式,比如,加权平均等。匹配点对指的是两个点云数据中相互匹配的两个三维关键点。
在一可选方案中,对于上述每一三维关键点,在对该三维关键点对应的纹理特征和空间结构特征进行融合得到融合特征时,可基于各三维关键点的方向信息,将方向相同的纹理特征和空间结构特征进行融合,从而在融合时,减少数据处理量。
在本申请的一可选方案中,基于各第一三维关键点和各第二三维关键点对应的匹配点对,还可确定出各第一三维关键点和各第二三维关键点对应的关键点匹配关系。
其中,关键点匹配关系指的是相匹配的三维关键点之间的相对位置关系,比如,相匹配的两个三维关键点,其中一个关键点基于关键点匹配关系即可得到与其相匹配的三维关键点。
现有技术中,通常基于两个点云数据各自对应的空间结构特征,对待匹配的两个点云数据进行匹配,由于空间结构特征仅能反应点云数据中各点的空间位置关系,对于相似结构场景下的点云数据,通过空间结构特征不能够准确的区分出点云数据中的物体,从而会使得点云数据的匹配效果不够准确。
通过本申请的方案,对于待匹配的第一点云数据和第二点云数据中的任一点云数据,该点云数据中包括多个三维点的位置信息和属性信息,由于属性信息可以反应出点云数据中三维关键点的纹理特征,位置信息可以反应出点云数据中三维关键点的空间结构特征,因此,基于该点云数据对应的二维数据可确定出点云数据中每个三维关键点所对应的纹理特征和空间结构特征,进而,在对第一点云数据和第二点云数据进行匹配时,考虑到三维关键点对应的纹理特征和空间结构特征,从而使得基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,得到的各第一三维关键点和各第二三维关键点的匹配结果更加准确。
进一步地,现有技术中,在一些应用场景下,点云配准需要依赖待匹配的两个点云数据对应的初始位姿,比如,在一些小规模场景(室内场景)下,比较容易获取两个点云数据对应的初始位姿,但是,在一些无法准确获取到初始位姿的场景下,比如,在一些大规模场(大规模室外场景)下,由于楼宇、树荫等遮挡,GPS精度严重下降等因素,可导致无法获取到准确的初始位姿,由此,在无法准确获取初始位姿的情况下,可导致点云数据的配准效果不理想。在本申请方案中,采用基于特征匹配的点云配准方式,即基于第一点云数据中各三维关键点的关键点特征和第二点云数据中各三维关键点的关键点特征进行点云配准,不需要依赖第一点云数据和第二点云数据对应的初始位姿,从而使得该方案适用于更多的应用场景。
在实际应用中,点云数据的匹配可应用于任何需要对点云数据进行匹配的应用场景中,比如,点云闭环检测、三维重建、自动驾驶、定位、地图(比如,点云地图的构建,地图为点云地图)等应用场景中。
在本申请的一可选方案中,匹配结果包括各第一三维关键点和各第二三维关键点对应的匹配点对,该方法还包括:基于各第一三维关键点和各第二三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果。
其中,位姿估计结果可以表征第一点云数据相对于第二点云数据的位置变化结果,比如,位置变化包括但不限于平移、旋转、缩放等。
如图2所示的点云数据匹配方法对应的各模块的结构示意图,基于图2中所示的各模块,可得到上述位姿评估结果,其中,点云1为第一点云数据,点云2为第二点云数据,对于点云1和点云2中的任一点云,预处理模块用于对点云进行投影,得到各点云对应的二维数据;特征提取模块用于基于点云对应的二维数据,确定点云中各三维关键点对应的关键点特征,关键点特征包括纹理特征和空间结构特征。匹配模块用于基于点云1中各三维关键点的关键点特征和点云2中各三维关键点的关键点特征,对点云1中各三维关键点和点云2中各三维关键点进行匹配,得到点云1中各三维关键点与点云2中各三维关键点对应的匹配点对;位姿求解模块用于基于点云1中各三维关键点与点云2中各三维关键点之间对应的匹配点对,确定点云1和点云2对应的位姿估计结果(配准结果)。
在本申请的一可选方案中,基于各三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果,包括:
重复执行以下位姿确定步骤,直至满足条件的匹配点对的数量大于设定阈值,得到位姿估计结果:
基于各三维关键点对应的匹配点对中的至少三个匹配点对,确定至少三个匹配点对对应的初始关键点变换关系;
基于初始关键点变换关系,确定至少三个匹配点对中满足条件的匹配点对;
当满足条件的匹配点对的数量大于设定阈值时,将初始关键点变换关系作为位姿估计结果;
当满足条件的匹配点对的数量不大于设定阈值时,重新获取各三维关键点对应的匹配点对中的至少三个匹配点对,并重复位姿确定步骤。
在本申请的方案中,采用RANSAC(RANdomSAmple Consensus,随机抽样一致)的方式,循环抽样,直至达到结束循环的条件,输出最优的位姿估计(位姿估计结果)。具体如何基于RANSAC的方式得到位姿估计结果将在下文具体描述,在此不在赘述。
下面结合上述各模块的功能,对本申请实施例提供的点云数据匹配方法的流程进行详细的说明:
1、预处理模块
参见图3所示的预处理模块的处理流程示意图,由于对于第一点云数据和第二点云数据的预处理过程相同,则在本示例中,以第一点云数据和第二点云数据中的第一点云数据为例,通过预处理模块对该第一点云数据(图3中所示的点云)进行预处理,得到该第一点云数据对应的第一二维数据,图3中是以属性信息为反射强度信息为例,对第一点云数据进行投影,得到的第一二维数据,则此处的第一二维数据即为图3中所示的反射值图像。
在本申请的一可选方案中,获取第一点云数据对应的第一二维数据,包括:
对第一点云数据进行投影,得到第一点云数据对应的投影图像,将投影图像作为第一二维数据;
其中,投影图像中的各像素点对应于第一二维数据中的各二维点,每个像素点的像素值对应于第一二维数据中的二维点的属性信息。
其中,投影图像为第一点云数据的二维表达,投影图像中的各像素点是第一点云数据中的三维点投影得到的,第一二维数据中的二维点也是第一点云数据中的三维点投影得到的,因此,投影图像中的各像素点对应于第一二维数据中的各二维点,每个像素点的像素值对应于第一二维数据中的二维点的属性信息。
同理,获取第二点云数据对应的第二二维数据可基于上述获取第一点云数据对应的第一二维数据相同的方法,在此不再赘述。
在本申请的一可选方案中,获取第一点云数据对应的第一二维数据,包括:
按照空间位置关系,将第一点云数据划分为至少两个点云网格;
分别获取每个点云网格对应的二维数据,第一点云数据对应的第一二维数据包括各点云网格对应的二维数据;
基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点,包括:
对于每个点云网格,基于点云网格中对应的二维数据,确定点云网格对应的二维关键点;
将各点云网格对应的各二维关键点所对应的各三维点作为第一点云数据中的各第一三维关键点。
其中,点云网格对应的是点云数据中的部分点云数据,将第一点云数据划分为至少两个点云网格,即将第一点云数据划分为多个子点云数据,第一点云数据对应的第一二维数据可通过以下方式确定:对该多个子点云数据分别进行投影,得到各点云网格对应的投影图像(二维数据),基于各点云网格对应的二维数据,得到第一点云数据对应的第一二维数据。
由于点云在输入时的表达通常是无序的,而纹理信息的提取需要保证有序性,所以需要对点云进行有序化处理。基于此,在本实施例中,按照空间位置关系,将第一点云数据划分为至少两个点云网格,基于点云网格便于后续纹理特征的提取。进一步地,可以采用并行的方式对各点云网格进行处理,得到各点云网格对应的投影图像。
作为一个示例,图3中第一点云数据中的第一三维关键点的属性信息为反射强度信息时,各点云网格对应的投影图像为反射值图像。
在将第一点云数据划分为至少两个点云网格后,基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点时,对于每个点云网格,具体可基于该点云网格中包含的点云数据,确定该点云网格对应的二维关键点,再将各点云网格中确定出的各二维关键点对应的各三维点作为第一点云数据中的各第一三维关键点,即基于点云网格中确定出的二维关键点,将点云网格中与二维关键点对应的三维点作为三维关键点,此部分基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点的方案不是通过预处理模块实现的,是通过特征提取模块实现的,将在下文详细描述。
对于第二点云数据,可进行上述相同的处理,得到第二点云数据对应的第二二维数据,在此不再赘述。
在本申请的一可选方案中,获取第一点云数据对应的第一二维数据,包括:
根据第一点云数据中各三维点的位置信息,确定第一点云数据对应的法线方向;
基于法线方向,确定第一点云数据的投影方向;
按照投影方向对第一点云数据进行投影,得到第一点云数据对应的第一二维数据。
其中,可基于第一点云数据中各三维点的位置信息,确定出第一点云数据中各三维点的分布情况,基于各三维点的分布情况,确定出第一点云数据对应的法线方向。法线指的是垂直于某个指定平面的直线,基于法线方向确定的投影方向指的就是第一点云数据按照投影方向投影至法线垂直的平面,得到对应的第一二维数据。
在本申请的方案中,如果基于第一点云数据对应的至少两个点云网格进行投影,具体的处理过程可与上述对第一点云数据进行投影的方式相同,以一个点云网格为例,基于该点云网格中所包含的第一点云数据中各三维点的位置信息,确定点云网格对应的法线方向;基于该法线方向,确定点云网格的投影方向;按照投影方向对点云网格进行投影,得到点网格对应的二维数据。第一点云数据对应的第一二维数据包括各点云网格对应的二维数据。
下面结合图3,以第一点云数据为例,对该第一点云数据进行划分,得到至少两个点云网格,如图中所示的点云网格1至点云网格n,n为大于等于2的整数,以一个点云网格为例,基于该点云网格所包含的点云数据,确定该点云网格对应的投影图像进行详细的说明:假设,第一点云数据的空间范围为(100,100,10)米的立方体,点云网格尺寸为(5,5,5)米,则按照空间位置关系对第一点云数据进行划分,可得到共20*20*2个点云网格(voxel)。
对于每一点云网格,进行如下处理:
基于点云网格中包含的三维点的位置信息,确定该点云网格的法线方向
第一种,当
第二种,当
第三种,当
2、特征提取模块和特征融合模块
如图4所示的特征提取模块和特征融合模块的处理流程示意图,在该图中,以第一点云数据为例进行说明,该特征提取模块中包括二维特征检测模块,三维特征提取模块和特征融合模块,其中,二维特征检测模块用于基于该第一点云数据对应的投影图像(反射值图像),得到该投影图像对应的二维关键点;三维特征提取模块用于基于第一点云数据和第一点云数据中的各第一三维关键点,确定空间结构特征,其中,第一点云数据中的各第一三维关键点是基于投影图像对应的二维关键点进行关键点反投影得到的。特征融合模块用于将该第一三维关键点对应的空间结构特征和纹理特征进行融合,得到融合特征。
对于第一点云数据中的每个点云网格对应的投影图像,都会依次经过特征提取模块进行二维关键点的提取,然后基于各点云网格对应的二维关键点,通过关键点反投影的方式,得到该第一点云数据中的各第一三维关键点。具体过程将在下文进行描述。
3、匹配模块
以待匹配的点云数据对为例,该点云数据对中包括第一点云数据和第二点云数据,在得到第一点云数据中各第一三维关键点对应的融合特征,以及第二点云数据中各第二三维关键点对应的融合特征之后,对于第一点云数据中的每一第一三维关键点,计算该第一三维关键点在第二点云数据中对应的最邻近关键点,对于第二点云数据中的每一第二三维关键点,计算该第二三维关键点在第一点云数据中对应的最邻近关键点,通过互校验的方式,确定第一点云数据和第二点云数据中稳定的关键点匹配对。
其中,互校验指的是如果三维关键点k1是三维关键点k2的最近邻关键点,则三维关键点k2也必须是三维关键点k1的最近邻关键点,否则即认为该匹配不是稳定的。
在确定第一点云数据和第二点云数据中稳定的关键点匹配对之后,还可基于第一点云数据和第二点云数据中稳定的关键点匹配对,确定出第一点云数据和第二点云数据对应的关键点匹配关系。
4、位姿求解模块
参见图5中所示的位姿求解模块的处理流程示意图,该模块的输入为第一点云数据与第二点云数据中的关键点匹配对(图中所示的匹配点对),输出为第一点云数据与第二点云数据对应的位姿估计结果(最优结果)。
在本申请的方案中,采用RANSAC(RANdomSAmple Consensus,随机抽样一致)的方式,循环抽样,直至达到结束循环的条件,输出最优的位姿估计(位姿估计结果)。具体的,随机选择第一点云数据与第二点云数据中的匹配点对中的三个匹配点对(随机抽样),基于该三个匹配点点对,确定出该三个匹配点对对应的位姿变换(关键点匹配关系)T。对于该三个匹配点对中的每一匹配点对,比如,该匹配点对为p1和p2,p1为第一点云数据中的一个三维关键点,p2为第二点云数据中的一个三维关键点,当前位姿变换为T,通过内点验证的方式评估当前位姿估计的好坏,具体的:基于当前位姿变换T,将p2变换到p1坐标系下,得到p3,如果p1与p3之间的欧式距离小于阈值di,则认为这对匹配为内点,否侧为外点。通过上述方式,对第一点云数据与第二点云数据中的匹配点对进行同样的处理,得到各匹配点对对应的内点数量,即统计位姿变换T下内点的个数,作为位姿估计T的得分。
可选的,结束循环的条件可以为:内点数量大于设置的阈值。
则如果内点数量大于设置的阈值,则直接结束循环,输出当前估计的结果(最优结果),即结束循环时所对应的位姿变换。否则,重新随机抽样三个匹配点对,基于该三个匹配点对,确定位姿变换M,基于位姿变换M,通过内点验证的方式得到在位姿变换M下内点的个数,基于位姿变换M下内点的个数对位姿变换M进行评估,直至内点数量大于设定的阈值,结束循环。
可选的,结束循环的条件可以为:循环次数大于设定次数(图中所示的超过循环次数)。
则如果循环次数大于设定次数,则结束循环,从历史轮数中,选择位姿估计的得分最高,即内点数量最多时所对应的位姿变换作为输出(最优结果),否则,继续循环,直至循环次数达到设定次数,从历史循环次数中,选择内点数量最多时所对应的位姿变换作为输出。
对于每一点云数据,下面具体对本申请方案中如何基于点云数据对应的二维数据,确定点云数据中的各三维关键点对应的纹理特征和空间结构特征进行进一步的说明:
在本申请的一可选方案中,基于第一二维数据,确定第一点云数据中的各第一三维关键点,包括:
提取第一二维数据中各二维点的相关信息,相关信息包括关键点信息和显著性信息,对于每个二维点,关键点信息表征了该二维点是二维关键点的可能性,显著性信息表征了该二维点在第一二维数据中各点的显著程度;
基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点;
将第一点云数据中与确定出的各二维关键点对应的各三维点,确定为各第一三维关键点。
其中,对于第一二维数据中的每个二维点,可基于该二维点是二维关键点的概率值表征该二维点是二维关键点的可能性,概率值越大,表示可能性越大。显著性信息表征了该二维点在第一二维数据中各点的显著程度,显著程度越大,表明该二维点的可区分性越大。则在基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点时,基于各二维点对应的关键点信息和显著性信息,可更加准确的确定出第一点云数据中的各第一三维关键点。
基于第二二维数据确定第二点云数据中的各第二三维关键点的具体实现方式可与上述基于第一二维数据确定第一点云数据中的各第一三维关键点的具体实现方式相同,在此不再赘述。
在本申请的一可选方案中,基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点,包括:
对于每个二维点,基于二维点对应的关键点信息和显著性信息,确定二维点的重要程度;
基于各二维点的重要程度,确定出各二维点中的二维关键点。
基于前文描述,二维点的关键点信息和显示信息与该二维点对应的二维关键点之间是正相关,即该二维点的是二维关键点的可能性越大,该二维点在第一二维数据中各点的显著程度越明显,则对于每个二维点,可基于二维点对应的关键点信息和显著性信息,确定二维点的重要程度,基于各二维点的重要程度,确定出各二维点中的二维关键点。通过使用显著性信息可以提高二维关键点检测的重复率,提高匹配成功率。
可选的,对于每个二维点,可通过相乘的方式,对二维点对应的关键点信息和显著性信息进行相乘,确定二维点的重要程度。重要程度可通过分数表征,分数越高,表明越重要。
可选的,如果重要程度通过分数表征,在基于各二维点的重要程度,确定出各二维点中的二维关键点时,可将二维数据中分数靠前的k个二维点作为二维关键点。
在本申请的一可选方案中,对于每一点云数据,该方法还包括:
基于点云数据对应的二维数据,提取二维数据中各二维点的特征描述信息;
确定第一点云数据中每个第一三维关键点所对应的纹理特征,包括:
对于每一第一三维关键点,将与第一三维关键点对应的二维关键点的特征描述信息,作为第一三维关键点所对应的纹理特征。
其中,对于每一点云数据,在确定该点云数据对应的二维关键点之后,对于该点云数据中每一三维关键点,以第一点云数据中的每一第一三维关键点为例,可将与该第一三维关键点对应的二维关键点的特征描述信息作为该第一三维关键点所对应的纹理特征。第一点云数据对应的第一二维数据中的各二维点中包括该第一点云数据对应的二维关键点,二维点的特征描述信息即为二维点的特征描述子。
第二点云数据中每个第二三维关键点所对应的纹理特征可基于上述确定第一点云数据中每个第一三维关键点所对应的纹理特征相同的方式确定,在此不再赘述。
在本申请的一可选方案中,确定第一点云数据中每个第一三维关键点所对应的空间结构特征,包括:
对于每个第一三维关键点,基于第一点云数据中位于该第一三维关键点设定范围内的点云数据,确定第一三维关键点对应的空间结构特征。
其中,可将第一点云数据中位于该第一三维关键点设定范围内的点云数据称之为点云簇,可选的,设定范围的点云数据可以为以第一三维关键点为中心点,设点半径内的点云数据(点云簇)。
设定范围内的点云数据的空间结构特征相近,则对于每个第一三维关键点,基于第一点云数据中位于该第一三维关键点设定范围内的点云数据,确定的第一三维关键点对应的空间结构特征更加准确。
作为一个示例,参见图6中所示的二维特征检测模块的处理流程示意图,以第一点云数据为例,对基于该第一点云数据对应的投影图像,确定第一点云数据对应的二维关键点的方案进行进一步的说明:
将该第一点云数据对应的投影图像(图中所示的反射值图像)输入至该二维特征检测模块中的特征映射网络,特征映射网络包括关键点检测子网络,显著性检测子网络,描述子提取子网络。
其中,投影图像的尺寸为(w,h,3),其中,w为投影图像的宽,h为投影图像的高,3为特征映射网络的输入通道数。
基于该关键点检测子网络得到该投影图像对应的关键点响应值图(关键点信息),尺寸为(w, h, 1),其中,1为输出通道数;基于显著性检测子网络得到该投影图像对应的显著性图(显著性信息),尺寸为(w, h, 1),其中,1为输出通道数;基于描述子提取子网络得到该投影图像对应的特征描述子(特征描述信息),尺寸为(w, h, d),d为描述子维度。
将显著性图与关键点响应值图相乘,得到投影图像中各二维点的重要程度(比如,分数),重要程度对应图6中所示的关键点显著性,将投影图像中的二维点中分数排名靠前的k个二维点作为投影图像对应的二维关键点,即投影图像中二维点中的二维关键点。
得到投影图像对应的二维关键点之后,对于每一第一三维关键点,可基于二维关键点的特征描述信息,将与第一三维关键点对应的二维关键点的特征描述信息,作为该第一三维关键点所对应的纹理特征。
可以理解的是,如果是基于各点云网格对应的投影图像,确定第一点云数据对应的二维关键点,则二维特征提取模块的输入包括各点云网格对应的投影图像,各投影图像可分别输入至该模块进行特征提取,得到第一点云数据对应的二维关键点。
将二维关键点反投影到三维空间中(对应图6中的关键点反投影),得到第一三维关键点,即将第一点云数据中与确定出的各二维关键点对应的各三维点,确定为第一三维关键点。反投影过程是点云预处理模块中投影过程的逆变换。二维关键点的位置一般为角点,相比于直接在稀疏点云中提取三维关键点,角点的提取更为精确,进而基于二维关键点确定三维关键点,可提升位姿估计的准确性。
参见图7所示的三维特征提取模块的处理流程示意图,以第一点云数据为例,该模块的输入为第一点云数据和该第一点云数据中的各第一三维关键点。对于每一第一三维关键点,以该第一三维关键点为中心点,第一点云数据中设定半径内的点云数据作为点云簇(点云簇的确定过程对应于图中所示的点云采样),将点云簇输入至三维特征提取模块中的三维特征提取网络,通过该网络得到第一点云数据对应的空间结构特征(结构特征)。
参见图8中所示的特征融合模块的处理流程示意图,以第一点云数据为例,对于该第一点云数据中的每一第一三维关键点对应的纹理特征和结构特征,通过融合网络,得到该第一三维关键点对应的融合特征。
本申请实施例所提供的方案可以适用于任何需要对点云数据进行匹配的应用场景中,比如,点云闭环检测、三维重建、自动驾驶、定位等应用场景。
下面结合自动驾驶的应用场景,对本方案进行详细的说明:
获取待匹配的第一点云数据和第二点云数据,其中,第一点云数据为点云地图中的数据,第二点云数据为无人驾驶车当前对应的点云数据。
第一点云数据中包括多个三维点的位置信息和属性信息,即每个三维点对应一个位置信息和一个属性信息,第二点云数据中同样包括多个三维点的位置信息和属性信息。
在本示例中,以属性信息为反射强度信息为例进行说明。对第一点云数据进行处理,得到第一点云数据对应的第一二维数据,与对第二点云数据进行处理,得到第二点云数据对应的第二二维数据的处理过程一致,下面以对第一点云数据为例,为描述简便,下文将第一点云数据称为点云数据进行描述。
如图2所示,按照空间位置关系,将该点云数据划分为至少两个点云网格(点云网格1至点云网格n);对于一个点云网格,基于该点云网格中各三维点的位置信息,确定点云网格对应的法线方向;基于法线方向,确定点云网格的投影方向,按照投影方向对点云网格进行投影,得到该点云网格对应的二维数据(反射值图像)。点云数据对应的二维数据包括各点云网格对应的二维数据。
参见图6,对于一个反射值图像,将该反射值图像输入,特征映射网络,提取得到该反射值图像中每个二维点对应的关键点信息(关键点响应值图),显著性信息(显著性图)和特征描述信息(特征描述子)。
其中,关键点信息表征了该二维点是二维关键点的可能性,显著性信息表征了该二维点在二维数据中各点的显著程度。
对于反射值图像中的每一个二维点,基于该二维点对应的关键点信息和显著性信息,确定该二维点的重要程度。基于各二维点的重要程度,从各二维点确定出k个二维关键点,即该反射值图像中的二维关键点。
点云数据对应的二维关键点包括该点云数据对应的各反射值图像中每个反射值图像中的二维关键点。
在确定的点云数据对应的二维关键点后,通过关键点反投影的方式,将点云数据中与确定出的各二维关键点对应的各三维点,确定为三维关键点。
对于每个三维关键点,将与该三维关键点对应的二维关键点的特征描述信息,作为该三维关键点所对应的纹理特征,则基于各三维关键点对应的纹理特征,可得到该点云数据对应的纹理特征。
如图7所示,对于该点云数据中的每个三维关键点,通过点云采样的方式,将该点云数据中位于该三维关键点设定范围内的点云数据称之为点云簇,将该点云数据中各三维关键点对应的点云簇输入至三维特征提取网络,得到各三维关键点对应的空间结构特征(结构特征)。
基于上述处理方式,可得到第一点云数据中各第一三维关键点对应的关键点特征(空间结构特征和纹理特征),以及第二点云数据中各第二三维关键点对应的关键点特征,基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对第一点云数据中的各第一三维关键点和第二点云数据中的各第二三维关键点进行匹配,得到匹配结果。
匹配结果可以包括第一点云数据中的各第一三维关键点和第二点云数据中的各第二三维关键点对应的匹配点对,参见图5,基于第一点云数据和第二点云数据中各匹配点对,随机选择各匹配点对中的三个匹配点对(随机抽样),基于该三个匹配点点对,确定出该三个匹配点对对应的位姿变换(关键点匹配关系)T。对于该三个匹配点对中的每一匹配点对,比如,该匹配点对为p1和p2,p1为第一点云数据中的一个三维关键点,p2为第二点云数据中的一个三维关键点,当前位姿变换为T,通过内点验证的方式评估当前位姿估计的好坏,具体的:基于当前位姿变换T,将p2变换到p1坐标系下,得到p3,如果p1与p3之间的欧式距离小于阈值di,则认为这对匹配为内点,否侧为外点。通过上述方式,对第一点云数据与第二点云数据中的匹配点对进行同样的处理,得到各匹配点对对应的内点数量,即统计位姿变换T下内点的个数,作为位姿估计T的得分。
如果内点数量大于设置的阈值,则直接结束循环,输出当前估计的结果(最优结果),即结束循环时所对应的位姿变换,否则,重新随机抽样三个匹配点对,基于该三个匹配点对,确定位姿变换M,基于位姿变换M,通过内点验证的方式得到在位姿变换M下内点的个数,基于位姿变换M下内点的个数对位姿变换M进行评估,直至内点数量大于设定的阈值,结束循环。
在得到第一点云数据和第二点云数据对应的位姿估计结果之后,基于该位姿估计结果,可以知道无人驾驶的车在点云地图中的位置,基于该位姿估计结果可调整无人驾驶的车的驾驶线路,以确保该车运行的线路正确。
另外,基于该位姿估计结果,还可以知道该车在点云地图中的位置,实现对该车的定位。
在本申请的方案中,三维特征提取网络和融合网络可先进行训练,即对于每一点云数据,确定点云数据中的各三维关键点的空间结构特征,以及基于每一三维关键点对应的纹理特征和空间结构特征,确定三维关键点对应的融合特征,可以通过神经网络模型实现的,神经网络模型包括空间特征提取网络(三维特征提取网络)和融合网络。空间特征提取网络用于确定点云数据中的各三维关键点的空间结构特征,融合网络用于基于每一三维关键点对应的纹理特征和空间结构特征,确定三维关键点对应的融合特征。
在训练之前,需要获取训练数据,在本申请的一个可选的方案中,获取训练数据包括:
获取初始训练数据,初始训练数据中包括多个初始样本点云数据和多个参考点云数据;
确定各初始样本点云数据的中心点和各参考点云数据的中心点;
对于一个参考点云数据,确定多个初始样本点云数据中每个初始样本点云数据的中心点与该参考点云数据的中心点之间的特征距离;
将各特征距离中满足设定条件的特征距离对应的一个初始点云数据和对应的一个参考点云数据作为一个正样本点云对,将各特征距离中不满足设定条件的特征距离对应的一个初始点云数据和对应的一个参考点云数据作为一个负样本点云对。
其中,参考点云数据中包括与初始样本点云数据相匹配的点云数据,即多个初始样本点云数据和多个参考点云数据中,存在相互匹配的两个点云数据,相互匹配的一个初始样本点云数据和一个参考点云数据可作为一个正样本点云对,相互不匹配的一个初始样本点云数据和一个参考点云数据可作为一个负样本点云对。
在本申请的一可选方案中,对于一个参考点云数据,可基于多个初始样本点云数据中每个初始样本点云数据的中心点与该参考点云数据的中心点之间的特征距来确定正样本点云对和负样本点云对。一个初始样本点云数据与一个参考点云数据对应一个特征距离。
具体的,可将各特征距离中满足第一设定条件的特征距离对应的一个初始点云数据和对应的一个参考点云数据作为一个正样本点云对,将各特征距离中不满足第二设定条件的特征距离对应的一个初始点云数据和对应的一个参考点云数据作为一个负样本点云对。
其中,特征距离可通过欧式距离表征,即两个中心点之间的欧式距离表征了对应点云数据对应的特征距离。第一设定条件和第二设定条件可基于实际需求配置,比如,第一设定条件为小于第一设定阈值,则将特征距离小于第一设定阈值所对应的点云作为正样本点云对,第二设定条件为大于第二设定值,则将特征距离大于第二设定阈值所对应的点云作为负样本点云对。其中,第一设定阈值和第二设定阈值可以相同,也可以不同。
在获取了训练数据后,下面对神经网络模型的训练进行具体的描述,神经网络模型通过以下方式训练得到:
神经网络模型包括空间特征提取网络和融合网络,其中,神经网络模型是通过以下方式训练得到的:
获取训练数据,训练数据包括多个带有标签的点云数据对,每个点云数据对中包括样本点云数据和参考点云数据,对于一个点云数据对,标签表征了点云数据对中的两个点云数据之间的匹配关系;
对于训练数据中的每一点云数据,确定点云数据中的三维关键点,并获取各三维关键点的纹理特征;
对于每一点云数据中的每一三维关键点,将该点云数据中位于该三维关键点设定范围内的点云数据输入至空间特征提取网络,得到三维关键点的空间结构特征,并将三维关键点的纹理特征和空间结构特征输入至融合网络,得到三维关键点对应的融合特征;
对于每一点云数据对,基于该点云数据对中样本点云数据中三维关键点的融合特征与参考点云数据中三维关键点的融合特征的匹配度,确定出参考点云数据中与样本点云数据的每一三维关键点相匹配的三维关键点;
基于确定出的各点云数据对中相匹配的各三维关键点之间的匹配度,确定神经网络模型对应的训练损失函数,训练损失函数的值表征了各点云数据对的标签对应的匹配关系和匹配度之间的差异性;
若训练损失函数收敛,则将收敛时对应的模型作为最终的神经网络模型,若不收敛,则调整神经网络模型的模型参数,并基于训练数据对神经网络模型进行训练。
其中,多个点云数据对中可包括正样本点云对或负样本点云对中的至少一项。两个点云数据之间的匹配关系指的是两个点云数据之间存在相互匹配的关键点,或者,两个点云数据之间不存在相互匹配的关键点。
对于训练数据中的每一点云数据,确定点云数据中的三维关键点,并获取各三维关键点的纹理特征,其中,确定点云数据中的三维关键点可通过前文描述的方式确定,即通过二维特征检测模块提取点云数据对应的投影图像的二维关键点,对该二维关键点进行关键点反投影,得到该点云数据对应的三维关键点。其中,二维特征检测模块可以是预训练的模型。该点云数据中各三维关键点的纹理特征也可基于前文所描述的方式确定,在此不再赘述。
对于每一点云数据中的每一三维关键点,将该点云数据中位于该三维关键点设定范围内的点云数据输入至空间特征提取网络,得到三维关键点的空间结构特征,此处,该点云数据中位于该三维关键点设定范围内的点云数据(点云簇)可基于前文所描述的方式确定,在此不再赘述。空间特征提取网络的输入为各三维关键点对应的点云簇,输出为每个三维关键点对应的空间结构特征。
对于每一点云数据对的每一三维关键点,融合网络的输入为该三维关键点的纹理特征和空间结构特征,输出为三维关键点对应的融合特征。样本点云数据中三维关键点的融合特征与参考点云数据中三维关键点的融合特征的匹配度表征了两个点云数据中各三维关键点之间的匹配程度,包括匹配和不匹配两种情况。
可以理解的是,如果样本点云数据与参考点云数据对应的是正样本点云对,则该匹配关系指的是两个点云数据中存在相互匹配的三维关键点。如果样本点云数据与参考点云数据对应的是负样本点云对,则该匹配关系指的是两个点云数据中不存在相互匹配的三维关键点。
其中,相匹配的各三维关键点指的是两个相互匹配的三维关键点。
在本申请的一可选方案中,训练损失函数的值包括训练数据中各点云数据对对应的损失值,对于训练数据中的每一点云数据对,该点云数据对中包括样本点云数据和参考点云数据,该点云数据对对应的损失值可以通过以下方式确定:
对于该点云数据对中每个点云数据,确定该点云数据中的各三维关键点对应的特征描述子,对于任一个特征描述子,特征描述子是基于一个三维关键点对应的融合特征得到的;
基于点云数据对中样本点云数据中各三维关键点对应的特征描述子,以及参考点云数据中各三维关键点对应的特征描述子,确定该点云数据对对应的点云相似度;
基于该点云数据对对应的点云相似度,确定该点云数据对对应的损失值。
在本申请的一可选方案中,基于该点云数据对中每个点云数据中各三维关键点对应的特征描述子,确定点云数据对对应的点云相似度,包括:
对于该点云数据对中参考点云数据中的每个三维关键点,确定该三维关键点对应的特征描述子和样本点云数据中各三维关键点中每个三维关键点对应的特征描述子之间的特征距离;
对于参考点云数据中的每个三维关键点,基于各特征距离,从样本点云数据中确定出参考点云数据中每个三维关键点对应的最邻近关键点;
基于参考点云数据中各三维关键点对应的最邻近关键点的特征距离,确定该点云数据对对应的点云相似度。
下面结合图9中所示的神经网络模型的训练流程示意图对模型的训练进行进一步的说明:
图9中以训练数据中包括的两个带有标签的点云数据对为例,即正样本点云(样本点云数据为正样本点云)与锚点点云(参考点云)作为第一点云数据对,该点云数据对所对应的标签表征了这两个点云之间存在匹配的关键点。负样本点云(样本点云数据为负样本点云)与锚点点云作为第二点云数据对,该点云数据对对应的标签表征了这两个点云之间不存在相匹配的关键点。
对于正样本点云,负样本点云和锚点点云中的每个点云,分别通过预处理模块对这三个点云进行预处理,即通过预处理模块得到每个点云对应的二维数据,然后再分别基于三个点云各自对应的二维数据,通过特征提取模块得到每个点云对应的三维关键点(该三维关键点的尺寸为(k,3),其中,k为三维关键点的个数,3为通道数),以及每个三维关键点对应的纹理特征和空间结构特征,对于每个点云中的每一三维关键点,基于该三维关键点对应的纹理特征和空间结构特征,确定该三维关键点对应的融合特征,并基于该融合特征得到该三维关键点对应的特征描述子。
然后基于正样本点云中各三维关键点对应的特征描述子,以及锚点点云中各三维关键点对应的特征描述子,通过特征相似度计算模块确定正样本点云中各三维关键点与锚点点云中各三维关键点之间的特征相似度;然后基于各特征相似度,通过点云相似度计算模块确定第一点云数据对对应的点云相似度。同理,对于负样本点云和锚点点云对应的第二点云数据对可基于上述同样的方法,确定出第二点云数据对对应的点云相似度。最后基于第一点云数据对对应的点云相似度和第二点云数据对对应的点云相似度,通过损失函数模块确定出第一点云数据对和第二点云数据对之间的损失值。神经网络模型所对应的损失值可基于多个点云对之间的损失值确定。
在本示例中,对于训练数据中的任一点云数据,基于各三维关键点对应的融合特征,可得到该点云数据对应的融合特征,该融合特征的尺寸为(k,d)其中,k为三维关键点个数,d为描述子维度。
基于前文描述的方案可知,在基于该点云数据对应的二维数据,确定该点云数据对应的二维关键点时,对于该二维数据中的每个二维点,可基于该二维点的关键点信息和显著性信息,确定二维点的重要程度,此处的重要程度可基于得分表征,分数越高越重要。然后基于各二维点的重要程度,确定出各二维点中的二维关键点。对于训练数据中的任一点云数据,也可采取相同的方式确定出该点云数据对应的二维数据中每个二维点的重要程度,此处的重要程度也通过分数表征,尺寸为(k, 1),其中,k为该点云数据中三维关键点个数。
作为一个可选方案,以第一点云数据对为例,确定第一点云数据对对应的点云相似度具体可通过以下方式实现:
对于正样本点云中的每个特征描述子,确定该特征描述子与锚点点云中各特征描述子之间的特征距离(比如,欧式距离),得到特征相似度矩阵,该矩阵的尺寸为(ka,kp),ka是锚点点云中三维关键点的数量,即矩阵的行数,kp是正样本点云中三维关键点的数量,即矩阵的列数。对于该矩阵的每一行,表征了锚点点云中每个特征描述子与正样本点云中各特征描述子之间的特征距离,比如,该矩阵中的一行元素为[a1,a2,a3],正样本点云中包括3个特征描述子,其中,a1表示锚点点云中的一个特征描述子与正样本点云中的第一个特征描述子之间的特征距离,a2表示锚点点云中的该特征描述子与正样本点云中的第二个特征描述子之间的特征距离,a3表示锚点点云中的该特征描述子与正样本点云中的第三个特征描述子之间的特征距离。
然后对于锚点点云中的每个三维关键点,基于该三维关键点对应的特征相似度矩阵,从正样本点云中确定与该三维关键点最邻近的关键点。最邻近的关键点即为该三维关键点对应的各特征距离中,最小特征距离所对应的正样本点云中的三维关键点。
将锚点点云中各三维关键点对应的最邻近的关键点对应的最小特征距离的加和作为第一点云数据对对应的点云相似度。
可选的,在确定点云相似度的过程中,还可基于锚点点云中各三维关键点对应的得分(对应的二维关键点的得分),确定各三维关键点对应的权重,然后基于各特征距离和各三维关键点对应的权重,确定点云相似度,基于该点云相似度,可确定该第一点云数据对对应的损失值。
其中,该点云相似度可通过以下公式表示:
其中,ka是锚点点云中三维关键点的数量,kp是正样本点云中三维关键点的数量,f
第二点云数据对对应的点云相似度与第一点云数据对对应的点云方式的确定方式相同,只需将正样本点云的三维关键点数量kp替换为负样本点云的三维关键点数量kn,此时第二点云数据对对应的损失值为
基于训练数据中各第一点云数据对对应的点云相似度和各第二点云数据对对应的点云相似度,确定神经网络模型对应的损失函数为:
其中,
在本申请的一可选方案中,神经网络模型可以为卷积神经网络CNN(Convolutional Neural Network)、多层感知器MLP(Multilayer Perceptron)或者其他网络结构,本申请中不作限定。
基于与图1中所示的方法相同的原理,本申请实施例还提供了一种点云数据匹配装置20,如图10中所示,该点云数据匹配装置20可以包括点云数据获取模块210、第一二维数据获取模块220、第二二维数据获取模块230、第一关键点特征确定模块240、第二关键点特征确定模块250和点云匹配模块260,其中:
点云数据获取模块210,用于获取待匹配的第一点云数据和第二点云数据,对于第一点云数据和第二点云数据中的每一点云数据,每一点云数据中包括多个三维点的位置信息和属性信息;
第一二维数据获取模块220,用于获取第一点云数据对应的第一二维数据,第一二维数据包括与第一点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
第二二维数据获取模块230,用于获取第二点云数据对应的第二二维数据,第二二维数据包括与第二点云数据中的多个三维点对应的多个二维点的位置信息和属性信息;
第一关键点特征确定模块240,用于基于第一二维数据,确定第一点云数据中的各第一三维关键点,并获取每个第一三维关键点的关键点特征,关键点特征包括纹理特征和空间结构特征;
第二关键点特征确定模块250,用于基于第二二维数据,确定第二点云数据中的各第二三维关键点,并获取每个第二三维关键点的关键点特征;
点云匹配模块260,用于基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对第一点云数据中的各第一三维关键点和第二点云数据中的各第二三维关键点进行匹配,得到匹配结果。
本申请提供的点云数据匹配方法,对于待匹配的第一点云数据和第二点云数据中的任一点云数据,该点云数据中包括多个三维点的位置信息和属性信息,由于属性信息可以反应出点云数据中三维关键点的纹理特征,位置信息可以反应出点云数据中三维关键点的空间结构特征,因此,基于该点云数据对应的二维数据可确定出点云数据中每个三维关键点所对应的纹理特征和空间结构特征,进而,在对第一点云数据和第二点云数据进行匹配时,考虑到三维关键点对应的纹理特征和空间结构特征,从而使得基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,得到的各第一三维关键点和各第二三维关键点的匹配结果更加准确。进一步地,本申请方案中采用基于特征匹配的点云配准方式,即基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征进行点云配准,不需要依赖第一点云数据和第二点云数据对应的初始位姿,从而使得该方案适用于更多的应用场景。
可选的,对于一个三维点,该三维点对应的属性信息包括反射强度信息或颜色信息中的至少一项。
可选的,第一关键点特征确定模块在基于第一二维数据,确定第一点云数据中的各第一三维关键点时,具体用于:
提取第一二维数据中各二维点的相关信息,相关信息包括关键点信息和显著性信息,对于每个二维点,关键点信息表征了该二维点是二维关键点的可能性,显著性信息表征了该二维点在第一二维数据中各点的显著程度;
基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点;
将第一点云数据中与确定出的各二维关键点对应的各三维点,确定为个第一三维关键点。
可选的,第一关键点特征确定模块在基于各二维点对应的关键点信息和显著性信息,确定各二维点中的二维关键点时,具体用于:
对于每个二维点,基于二维点对应的关键点信息和显著性信息,确定二维点的重要程度;
基于各二维点的重要程度,确定出各二维点中的二维关键点。
可选的,对于每一点云数据,该装置还包括:
特征描述信息确定模块,用于基于点云数据对应的二维数据,提取二维数据中各二维点的特征描述信息;
第一关键点特征确定模块在确定第一点云数据中每个第一三维关键点所对应的纹理特征时,具体用于:
对于每一第一三维关键点,将与第一三维关键点对应的二维关键点的特征描述信息,作为第一三维关键点所对应的纹理特征。
可选的,第一关键点特征确定模块在确定第一点云数据中每个第一三维关键点所对应的空间结构特征时,具体用于:
对于每个第一三维关键点,基于第一点云数据中位于该第一三维关键点设定范围内的点云数据,确定第一三维关键点对应的空间结构特征。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
对第一点云数据进行投影,得到第一点云数据对应的投影图像,将投影图像作为第一二维数据;
其中,投影图像中的各像素点对应于第一二维数据中的各二维点,每个像素点的像素值对应于第一二维数据中的二维点的属性信息。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
按照空间位置关系,将第一点云数据划分为至少两个点云网格;
分别获取每个点云网格对应的二维数据,第一点云数据对应的第一二维数据包括各点云网格对应的二维数据;
第一关键点特征确定模块在基于第一点云数据对应的第一二维数据,确定第一点云数据中的各第一三维关键点时,具体用于:对于每个点云网格,基于点云网格中对应的二维数据,确定点云网格对应的二维关键点;
将各点云网格对应的各二维关键点所对应的各三维点作为第一点云数据中的各第一三维关键点。
可选的,第一二维数据获取模块在获取第一点云数据对应的第一二维数据时,具体用于:
根据第一点云数据中各三维点的位置信息,确定第一点云数据对应的法线方向;
基于法线方向,确定第一点云数据的投影方向;
按照投影方向对第一点云数据进行投影,得到第一点云数据对应的第一二维数据。
可选的,点云匹配模块在基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,对各第一三维关键点和各第二三维关键点进行匹配,得到匹配结果时,具体用于:
对于每一第一三维关键点,基于该第一三维关键点对应的纹理特征和空间结构特征,确定该第一三维关键点对应的融合特征;
对于每一第二三维关键点,基于该第二三维关键点对应的纹理特征和空间结构特征,确定该第二三维关键点对应的融合特征;
基于各第一三维关键点对应的融合特征,以及各第二三维关键点对应的融合特征,确定各第一三维关键点和各第二三维关键点对应的匹配点对,匹配结果包括各三维关键点对应的匹配点对。
可选的,匹配结果包括各第一三维关键点和各第二三维关键点对应的匹配点对,该装置还包括:
位姿估计模块,用于基于各第一三维关键点和各第二三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果。
可选的,位姿估计模块在基于各三维关键点对应的匹配点对,确定第一点云数据和第二点云数据对应的位姿估计结果时,具体用于:
重复执行以下位姿确定步骤,直至满足条件的匹配点对的数量大于设定阈值,得到位姿估计结果:
基于各三维关键点对应的匹配点对中的至少三个匹配点对,确定至少三个匹配点对对应的初始关键点变换关系;
基于初始关键点变换关系,确定至少三个匹配点对中满足条件的匹配点对;
当满足条件的匹配点对的数量大于设定阈值时,将初始关键点变换关系作为位姿估计结果;
当满足条件的匹配点对的数量不大于设定阈值时,重新获取各三维关键点对应的匹配点对中的至少三个匹配点对,并重复位姿确定步骤。
可选的,对于每一点云数据,获取点云数据中的各三维关键点的空间结构特征,以及基于每一三维关键点对应的纹理特征和空间结构特征,确定三维关键点对应的融合特征,是通过神经网络模型实现的,神经网络模型包括空间特征提取网络和融合网络,其中,神经网络模型是通过训练模块训练得到的:
训练模块,用于获取训练数据,训练数据包括多个带有标签的点云数据对,每个点云数据对中包括样本点云数据和参考点云数据,对于一个点云数据对,标签表征了点云数据对中的两个点云数据之间的匹配关系;对于训练数据中的每一点云数据,确定点云数据中的三维关键点,并获取各三维关键点的纹理特征;对于每一点云数据中的每一三维关键点,将该点云数据中位于该三维关键点设定范围内的点云数据输入至空间特征提取网络,得到三维关键点的空间结构特征,并将三维关键点的纹理特征和空间结构特征输入至融合网络,得到三维关键点对应的融合特征;对于每一点云数据对,基于该点云数据对中样本点云数据中三维关键点的融合特征与参考点云数据中三维关键点的融合特征的匹配度,确定出参考点云数据中与样本点云数据的每一三维关键点相匹配的三维关键点;基于确定出的各点云数据对中相匹配的各三维关键点之间的匹配度,确定神经网络模型对应的训练损失函数,训练损失函数的值表征了各点云数据对的标签对应的匹配关系和匹配度之间的差异性;若训练损失函数收敛,则将收敛时对应的模型作为最终的神经网络模型,若不收敛,则调整神经网络模型的模型参数,并基于训练数据对神经网络模型进行训练。
本申请实施例的点云数据匹配装置可执行本申请实施例所提供的点云数据匹配方法,其实现原理相类似,本申请各实施例中的点云数据匹配装置中的各模块、单元所执行的动作是与本申请各实施例中的点云数据匹配方法中的步骤相对应的,对于点云数据匹配装置的各模块的详细功能描述具体可以参见前文中所示的对应的点云数据匹配方法中的描述,此处不再赘述。
其中,点云数据匹配装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该点云数据匹配装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。
在一些实施例中,本发明实施例提供的点云数据匹配装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的点云数据匹配装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的点云数据匹配方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在另一些实施例中,本发明实施例提供的点云数据匹配装置可以采用软件方式实现,图10示出了存储在存储器中的点云数据匹配装置,其可以是程序和插件等形式的软件,并包括一系列的模块,包括点云数据获取模块210、第一二维数据获取模块220、第二二维数据获取模块230、第一关键点特征确定模块240、第二关键点特征确定模块250和点云匹配模块260,用于实现本发明实施例提供的点云数据匹配方法。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
基于与本申请的实施例中所示的方法相同的原理,本申请的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机程序;处理器,用于通过调用计算机程序执行本申请任一实施例所示的点云数据匹配方法。
本申请提供的点云数据匹配方法,对于待匹配的第一点云数据和第二点云数据中的任一点云数据,该点云数据中包括多个三维点的位置信息和属性信息,由于属性信息可以反应出点云数据中三维关键点的纹理特征,位置信息可以反应出点云数据中三维关键点的空间结构特征,因此,基于该点云数据对应的二维数据可确定出点云数据中每个三维关键点所对应的纹理特征和空间结构特征,进而,在对第一点云数据和第二点云数据进行匹配时,考虑到三维关键点对应的纹理特征和空间结构特征,从而使得基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征,得到的各第一三维关键点和各第二三维关键点的匹配结果更加准确。进一步地,本申请方案中采用基于特征匹配的点云配准方式,即基于各第一三维关键点的关键点特征和各第二三维关键点的关键点特征进行点云配准,不需要依赖第一点云数据和第二点云数据对应的初始位姿,从而使得该方案适用于更多的应用场景。
在一个可选实施例中提供了一种电子设备,如图11所示,图11所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。
总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscReadOnly Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备也可以是终端设备,图11示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
根据本申请的另一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种实施例实现方式中提供的点云数据匹配方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解的是,附图中的流程图和框图,图示了按照本申请各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本申请实施例提供的计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
- 点云数据匹配方法、装置、电子设备及计算机存储介质
- 数据匹配的方法及装置、计算机可读存储介质、电子设备