本申请涉及计算机技术领域,特别是涉及一种基于并行架构的三维点云匹配方法、装置、计算机设备和存储介质。
背景技术:
随着现代科技的不断发展以及制造工艺的不断提高,全球制造业已逐步转入工业4.0时代,智能制造凸显得尤为重要。三维数字成像及造型技术在智能制造中占据重要的地位,越来越多的产业对三维数字建模有着持续性增长的需求。
立体三维重建主要包括数据获取、预处理、特征分析、点云拼接、表面重建等步骤,其中点云拼接是在三维重建过程中至关重要的部分。为了获取一个物体完整的三维数据,三维测量设备需要在物体的各个方位进行扫描,每个方位均得到该视角下物体的三维数据,点云拼接的目的就是将各个视角下的三维点云进行匹配整合为一个完整的三维点云,以展示物体完整的三维数字信息。目前的点云匹配算法主要是对点云的特征描述和提取之后进行点云拼接,而对点云的特征描述和提取需要消耗大量的时间,使点云匹配的效率下降。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够提高点云匹配效率的基于并行架构的三维点云匹配方法、装置、计算机设备和存储介质。
一种基于并行架构的三维点云匹配方法,所述方法包括:
获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;
通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;
根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;
根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;
根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
在其中一个实施例中,从第一点云和第二点云中确定各个匹配点对,包括:获取采样间隔,并确定第一点云对应的第一采样空间和第二点云对应的第二采样空间;使用采样间隔对第一采样空间和第一采样空间进行划分,得到各个第一采样体素块和各个第二采样体素块;分别从各个第一采样体素块中抽取第一采样点,得到第一点云对应的第一采样点集,分别从各个第二采样体素块中抽取第二采样点,得到第二点云对应的第二采样点集;根据第一采样点集和第二采样点集确定各个匹配点对。
在其中一个实施例中,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系,包括:获取匹配点对中第一匹配点对应的三维坐标法向和第二匹配点对应的三维坐标法向;根据第一匹配点对应的三维坐标法向计算第一点云第一维旋转角度和第一点云第二维旋转角度,并根据第二匹配点对应的三维坐标法向计算第二点云第一维旋转角度和第二点云第二维旋转角度;根据第一点云第一维旋转角度和第一点云第二维旋转角度得到第一旋转变换矩阵,并根据第二点云第一维旋转角度和第二点云第二维旋转角度得到第二旋转变换矩阵;获取第三维旋转次数,根据第三维旋转次数计算各个第三维旋转角度,根据各个第三维旋转角度得到各个第三旋转变换矩阵;根据第一旋转变换矩阵、第二旋转变换矩阵和各个第三旋转变换矩阵得到各个目标旋转矩阵,根据第一匹配点对应的三维坐标、第二匹配点对应的三维坐标和各个目标旋转矩阵计算各个目标平移矩阵;根据各个目标旋转矩阵和各个目标平移矩阵得到第一点云和第二点云的各个初始刚体变换关系。
在其中一个实施例中,通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息,包括:在第一并行线程中使用第一初始刚体变换关系和第一点云计算第一初始变换点云,并从第二点云中得到初始匹配点数据集;查找初始匹配点数据集在第一初始变换点云中的初始对应点数据集,根据初始匹配点数据集和初始对应点数据集确定各个初始对应点对;计算各个初始对应点对的初始距离和初始法向夹角,根据各个初始对应点对的初始距离和初始法向夹角对各个初始对应点对进行筛选,得到各个目标初始对应点对;根据各个目标初始对应点对使用预设目标优化函数计算目标值;当目标值未符合预设条件时,根据各个目标初始对应点对计算更新刚体变换关系,将更新刚体变换关系作为第一初始刚体变换关系,并返回使用第一初始刚体变换关系和第一点云计算第一初始变换点云,并从第二点云中得到初始匹配点数据集的步骤执行,直到目标值符合预设条件时,将目标值对应的更新刚体变换关系作为目标初始刚体变换关系,并将目标值作为目标初始刚体变换关系的评价信息。
在其中一个实施例中,查找匹配点数据集在第一变换点云中的对应点数据集,包括:使用并行线程通过迭代投影查找匹配点数据集中各个匹配点在第一变换点云中的各个对应点,得到对应的数据集。
在其中一个实施例中,使用并行线程通过迭代投影查找匹配点数据集中各个匹配点在第一变换点云中的各个对应点,包括:在目标并行线程中根据第一变换点云得到对应的第一变换点云像平面;将匹配点投影到第一变换点云像平面,得到投影点,将投影点投影到第一变换点云中,得到初始对应点;获取匹配点的法线,将初始对应点投影到匹配点的法线上,得到法线点,计算法线点与初始对应点之间的距离;当距离未小于预设距离时,返回将匹配点投影到第一变换点云像平面,得到投影点,将投影点投影到第一变换点云中,得到初始对应点的步骤执行,直到距离小于预设距离时,将初始对应点作为匹配点在第一变换点云中的对应点。
在其中一个实施例中,根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系,包括:根据匹配点数据集和对应点数据集确定各个对应点对,计算各个对应点对的目标距离,根据目标距离对各个对应点对进行筛选,得到各个目标对应点对;根据各个目标对应点对使用预设目标优化函数计算各个目标对应点对的值;当各个目标对应点对的值符合预设目标条件时,根据各个目标对应点对计算第二目标刚体变换关系。
一种基于并行架构的三维点云匹配装置,所述装置包括:
初始关系计算模块,用于获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;
并行模块,用于通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;
第一关系确定模块,用于根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;
对应点查找模块,用于根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;
点云得到模块,用于根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;
通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;
根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;
根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;
根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;
通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;
根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;
根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;
根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
上述基于并行架构的三维点云匹配方法、装置、计算机设备和存储介质,通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的目标初始刚体变换关系和目标初始刚体变换关系的评价信息,根据评价信息从目标初始刚体变换关系中确定第一目标刚体变换关系,然后对第一目标刚体变换关系再次进行更新,得到第二目标刚体变换关系,使用第二目标刚体变换关系进行点云匹配,从而无需提取点云特征进行匹配,节省了点云特征描述和提取的时间,提高了点云匹配的效率,并且通过使用并行线程计算目标初始刚体变换关系,提高了得到第一目标刚体变换关系的效率,进一步提高了点云匹配的效率。
附图说明
图1为一个实施例中基于并行架构的三维点云匹配方法的应用环境图;
图2为一个实施例中基于并行架构的三维点云匹配方法的流程示意图;
图3为一个实施例中条纹投影结构光三维成像系统的原理示意图;
图4为一个实施例中确定各个匹配点对的流程示意图;
图5为一个具体实施例中人脸点云采样效果示意图;
图6为一个实施例中得到采样点集的流程示意图;
图7为一个实施例中体素采样的原理示意图;
图8为一个实施例中计算初始刚体变换关系的流程示意图;
图9为一个实施例中点云旋转示意图;
图10为一个实施例中得到目标初始刚体变换关系的流程示意图;
图11为一个实施例中得到粗匹配结果的示意图;
图12为一个实施例中查找对应点的流程示意图;
图13为一个实施例中迭代投影的原理示意图;
图14为图5实施例中得到目标人脸点云的示意图;
图15为一个实施例中基于并行架构的点云匹配装置的结构框图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于并行架构的三维点云匹配方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104可以通过终端102获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;服务器104通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;服务器104根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;服务器104根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;服务器104根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于并行架构的三维点云匹配方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
s202,获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系。
其中,点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,其中,目标可以是人体、动物、物体等等。在一个实施例中,可以使用如图3所示的条纹投影结构光三维成像系统来获取到点云,其中,投影机投射结构光到物体表面,两相机采集经物体表面调制的结构光信息,经处理后得到两相机图像平面上的对应点ml和mr,分别连接ol和or,两条射线olml、ormr交汇得到三维点p,通过得到海量被测物体的三维点,得到被测物体的点云。第一点云和第二点云是在两个不同视角下对被测物体进行三维成像,得到的点云,该点云中可以包括每个三维点的坐标和法向量。通过需要将第一点云和第二点云进行匹配整合成一个完整的三维点云,以展示完整的三维数字信息。比如,可以将第一点云匹配到第二点云中,则第一点云为待匹配点云,第二点云为源点云。匹配点对是指第一点云中的三维点和第二点云的三维点组成的三维点对。初始刚体变换关系是指通过两点法计算得到的匹配点对的刚体变换关系,每个匹配点对都有对应的刚体变换关系,两点法是指通过两个三维点计算刚体变换关系。
具体地,服务器通过条纹投影结构光三维成像系统获取到第一点云和第二点云,也可以从数据库中获取到已有的第一点云和第二点云,还可以获取到第三方提供的第一点云和第二点云。当服务器获取到第一点云和第二点云时,从从第一点云和第二点云中进行采样,得到第一点云中的采样点集和第二点云中的采样点集,将采样点集中的三维点进行配对,得到各个匹配点对。然后使用各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系。
s204,通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息。
其中,目标初始刚体变换关系是指通过对初始刚体变换关系评估后得到的最佳的刚体变换关系,每个初始刚体变换关系都会有对应的目标初始刚体变换关系。评价信息用于表示的目标初始刚体变换关系最佳程度。该最佳程度越高,表示得到目标初始刚体变换关系更加准确。
具体地,服务器可以通过并行线程使用评估算法分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的目标初始刚体变换关系和目标初始刚体变换关系的评价信息。其中,评估算法可以是最近点搜索法(iterativeclosestpoint,icp)等。在一个实施例中,服务器也可以将各个初始刚体变换关系发送到gpu(图形处理器,graphicsprocessingunit)中,通过gpu并行的方式分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息。
s206,根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系。
其中,第一目标刚体变化关系是指最优评价信息的目标初始刚体变换关系。
具体地,通过将各个目标初始刚体变换关系的评价信息进行比较,得到最优评价信息的目标初始刚体变换关系,即得到了第一目标刚体变换关系。
s208,根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集。
其中,第一变换点云是指使用第一目标刚体变换关系对第一点云进行刚体变换后得到的点云。
具体地,根据第一目标刚体变换关系对第一点云中的各个三维点进行变换,得到变换后的各个三维点,即得到第一变换点云。从第二点云中采样选取三维点作为匹配点,得到匹配点组成的数据集,其中,抽样可以是随机抽样或者统一抽样等,该抽样的得到的匹配点数量可以是第二点云数量的40%左右。然后可以通过并行线程分别使用投影算法查找匹配点数据集中每个匹配点在第一变换点云中的对应点,得到对应点数据集。
s210,根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
其中,第二目标刚体变化关系是指根据匹配点数据集和对应点数据集进行迭代优化第一目标刚体变换关系后得到的刚体变化关系。
具体地,服务器根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系,即第一点云和第二点云可以使用第二目标刚体变化关系进行点云匹配。
在上述基于并行架构的三维点云匹配方法中,通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的目标初始刚体变换关系和目标初始刚体变换关系的评价信息,根据评价信息从目标初始刚体变换关系中确定第一目标刚体变换关系,然后对第一目标刚体变换关系再次进行更新,得到第二目标刚体变换关系,使用第二目标刚体变换关系进行点云匹配,从而无需提取点云特征进行匹配,节省了点云特征描述和提取的时间,提高了点云匹配的效率,并且通过使用并行线程计算目标初始刚体变换关系,提高了得到第一目标刚体变换关系的效率,进一步提高了点云匹配的效率。通过使用第二目标刚体变换关系进行点云匹配,提高了得到目标点云的准确性。
在一个实施例中,如图4所示,步骤s202,即从第一点云和第二点云中确定各个匹配点对,包括步骤:
s402,对第一点云和第二点云进行体素采样,得到第一点云对应的第一采样点集和第二点云对应的第二采样点集。
s404,根据第一采样点集和第二采样点集确定各个匹配点对。
其中,体素采样是指通过点云数据建立三维体素栅格,然后在每个体素内进行采样。比如,采样点可以是体素内所有点的重心点。
具体地,服务器对第一点云进行体素采样,得到每个体素对应的采样点,得到第一采样点集,对对第二点云进行体素采样,得到每个体素对应的采样点,得到第二采样点集。然后将第一采样点集和第二采样点集中的采样点进行配对,得到各个匹配点对。如果5所示,为具体实施例中对第一人脸点云和第二人脸点云进行体素采样之后的效果示意图,其中,第一人脸点云和第二人脸点云都显示有各个采样点,该采样点的数量一般为点云数量的5%左右。
在一个实施例中,如图6所示,s402,即对第一点云和第二点云进行体素采样,得到第一点云对应的第一采样点集和第二点云对应的第二采样点集,包括步骤:
s602,获取采样间隔,并确定第一点云对应的第一采样空间和第二点云对应的第二采样空间;
s604,使用采样间隔对第一采样空间和第一采样空间进行划分,得到各个第一采样体素块和各个第二采样体素块;
s606,分别从各个第一采样体素块中抽取第一采样点,得到第一点云对应的第一采样点集,分别从各个第二采样体素块中抽取第二采样点,得到第二点云对应的第二采样点集。
其中,采样间隔是指需要进行采样的距离,是需要预先设定好的。比如,可以使用欧式距离。采样空间是根据点云中的三维坐标得到的。采样体素块是指对采样空间案子采样间隔进行划分后得到的。
具体地,服务器获取到设定好的采样间隔,然后根据第一点云的三维坐标确定第一采样空间,根据第二点云的三维坐标确定第二采样空间。然后使用采样间隔对第一采样空间和第一采样空间进行划分,得到各个第一采样体素块和各个第二采样体素块。遍历每个体素块,从每个体素块中抽取一个三维点,得到第一采样点集和第二采用点集。
举例来说:如图7所示,为一个实施例中体素采样的示意图。其中,获取采样间隔dis,并确定点云在三个维度(x,y,z)上的最大最小值,根据点云在三个维度(x,y,z)上的最大最小值确定采样空间,即包围盒。将点云中的三维坐标限制在该包围盒内,即xmax≥x≥xmin,ymax≥y≥ymin,zmax≥z≥zmin。根据采样间隔dis划分包围盒,得到各个体素块,每一个小立方体就ishiyig体素块,遍历每个体素块进行采样。
在上述实施例中,通过体素采样确定采样点集,提高了得到的采样点集的准确性。
在一个实施例中,如图8所示,步骤s202,即根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系,包括步骤:
s802,获取匹配点对中第一匹配点对应的三维坐标法向和第二匹配点对应的三维坐标法向。
s804,根据第一匹配点对应的三维坐标法向计算第一点云第一维旋转角度和第一点云第二维旋转角度,并根据第二匹配点对应的三维坐标法向计算第二点云第一维旋转角度和第二点云第二维旋转角度。
具体地,匹配点是指从点云中抽样得到的三维点,该三维点包括三维点坐标法向量。第一匹配点是从第一点云中抽样得到的三维点,第二匹配点是从第二点云中抽样得到的三维点。第一维旋转角度是指点云按照第一维度进行旋转的角度,第二维旋转角度是指点云按照第二维度进行旋转的角度。服务器分别将第一点云和第二点云的坐标系云端平移到第一匹配点和第二匹配点上,然后分别将第一点云和第二点云绕第一维度和第二维度进行旋转,使匹配点的法向与第三维度重合,其中该第一维度是指横坐标x,第二维度是指纵坐标y,第三维度是指竖坐标z。此时,根据匹配点对应的三维坐标法向(nx,ny,nz)使用下述公式(1)和公式(2)计算点云第一维旋转角度和点云第二维旋转角度,
其中,α为绕x轴旋转角度,β为绕y轴旋转角度。使用公式(1)计算得到第一点云第一维旋转角度为α1,第二点云第一维旋转角度为α2。使用公式(2)计算得到的第一点云第二维旋转角度为β1,第二点云第二维旋转角度为β2。如图9所示,为一个实施例中点云绕第一维度和第二维度的旋转示意图,其中,norm为匹配点对应的三维坐标法向(nx,ny,nz)。
s806,根据第一点云第一维旋转角度和第一点云第二维旋转角度得到第一旋转变换矩阵,并根据第二点云第一维旋转角度和第二点云第二维旋转角度得到第二旋转变换矩阵。
具体地,第一旋转变换矩阵是指第一点云绕第一维度和第二维度旋转对应的变换矩阵,第二旋转变换矩阵是指第二点云绕第一维度和第二维度旋转对应的变换矩阵。通过使用三维旋转矩阵、第一点云第一维旋转角度和第一点云第二维旋转角度得到第一旋转变换矩阵。通过使用三维旋转矩阵、第二点云第一维旋转角度和第二点云第二维旋转角度得到第二旋转变换矩阵。得到的第一旋转变换矩阵可以如公式(3)所示,得到的第二旋转变换矩阵可以如公式(4)所示。
其中,r1xy为第一旋转变换矩阵,r2xy为第二旋转变换矩阵。
s808,获取第三维旋转次数,根据第三维旋转次数计算各个第三维旋转角度,根据各个第三维旋转角度得到各个第三旋转变换矩阵。
具体地,第三维旋转次数是指将第一点云绕第三维度即z轴等角度递增旋转后的姿态数。该第三维旋转次数可以是预先设置好的。第三维旋转角度可以根据如下所示的公式(5)计算得到。
其中,γ为第三维旋转角度。n为旋转的姿态数。第三旋转变换矩阵是指第一点云绕第三维度旋转对应的变换矩阵。其中,每个旋转后的姿态都有对应的旋转角度,每个旋转角度都有对应的第三旋转变换矩阵,其中,第三旋转变换矩阵可以使用如下所示的公式(6)计算得到。
其中,rz为第三旋转变换矩阵。
s810,根据第一旋转变换矩阵、第二旋转变换矩阵和各个第三旋转变换矩阵得到各个目标旋转矩阵,根据第一匹配点对应的三维坐标、第二匹配点对应的三维坐标和各个目标旋转矩阵计算各个目标平移矩阵。
具体地,目标旋转矩阵是指第一点云到第二点云坐标系变换的旋转矩阵。目标平移矩阵是指第一点云到第二点云坐标系变换的平移矩阵。根据第一旋转变换矩阵、第二旋转变换矩阵和第三旋转变换矩阵得到各个目标旋转矩阵,可以使用如下公式(7)计算得到目标旋转矩阵。可以使用如下公式(8)计算得到平移矩阵。
其中,r为目标旋转矩阵,rz为第三旋转变换矩阵,r1xy为第一旋转变换矩阵,r2xy为第二旋转变换矩阵。t为平移矩阵,dxyz为第一点云的三维坐标(dx,dy,dz),sxyz为第二点云的三维坐标(sx,sy,sz)。可以使用公式(8)计算得到第一点云到第二点云坐标系变换的三个方向的平移矩阵即x轴方向tx,y轴方向ty和z轴方向tz。
s812,根据各个目标旋转矩阵和各个目标平移矩阵得到第一点云和第二点云的各个初始刚体变换关系。
具体地,将各个目标旋转矩阵和各个目标平移矩阵作为该第一点云和第二点云的各个初始刚体变换关系。由于有n个第三维度旋转的姿态数,则得到了该匹配点对的n个初始刚体变换关系。当匹配点对的总数量为m*q时,其中,m为第一匹配点数,q为第二匹配点数,最终得到的初始刚体变换关系的数量为m*q*n。
在上述实施例中,通过使用第一点云和第二点云计算得到第一点云和第二点云的初始刚体变换关系,方便快捷。
在一个实施例中,如图10所示,步骤s204,即通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息,包括步骤:
s1002,在第一并行线程中使用第一初始刚体变换关系和第一点云计算第一初始变换点云,并从第二点云中得到初始匹配点数据集。
具体地,第一并行线程是指正在运行的并行线程中的任意一个线程。第一初始刚体变换关系是指计算得到的各个初始刚体变换关系中的任意一个。其中,第一初始变换点云是指对第一点云使用第一初始刚体变换关系进行刚体变化后得到的点云,即对第一点云中的每个三维点坐标计算旋转和平移后的新三维点坐标,得到第一初始变换点云。然后服务器从第二点云中进行采样得到初始匹配点数据集,该采样可以使用降采样等。
s1004,查找初始匹配点数据集在第一初始变换点云中的初始对应点数据集,根据初始匹配点数据集和初始对应点数据集确定各个初始对应点对。
具体地,通过点到投影法查找初始匹配点数据集中每个采样点在第一初始变换点云中对应点,得到初始对应点数据集。将初始匹配点数据集和初始对应点数据集中的采样点和对应的对应点作为对应点对,得到各个初始对应点对。
s1006,计算各个初始对应点对的初始距离和初始法向夹角,,根据各个初始对应点对的初始距离和初始法向夹角对各个初始对应点对进行筛选,得到各个目标初始对应点对。
具体地,服务器计算每个初始对应点对的初始距离和初始法向夹角,比如,可以使用欧式距离算法计算初始距离,可以使用余弦距离算法计算初始距离。也可以使用如下所示的公式(9)计算得到初始对应点对的初始距离。
di2=||sxyz1-(rdxyz1+t)||公式(9)
其中,di表示第i个初始对应点对的初始距离。sxyz1是指第二点云的初始匹配点数据集中采样点的三维坐标。rdxyz1+t表示第一初始变换点云的初始对应点数据集中对应点的三维坐标,是与sxyz1对应的。dxyz1是指第一点云的三维点坐标。通过初始对应点对中的采样点三维坐标和对应点三维坐标计算法向夹角。然后将初始距离超过预先设置好的距离阈值的初始对应点对筛选掉,同时将法向夹角超过预先设置好的夹角阈值的初始对应点对筛选掉,得到剩余的初始对应点对,即各个目标初始对应点对。
s1008,根据各个目标初始对应点对使用预设目标优化函数计算目标值。
具体地,目标值是指各个目标初始对应点对的距离和。可以使用预设目标优化函数计算目标值。预设目标优化函数可以使用最小化目标优化函数,该最小化目标优化函数可以如公式(10)所示,
其中,k表示目标初始对应点对的数量,dj是指第j个目标初始对应点对的欧式距离,可以使用公式(9)计算得到的,sj是指第j个目标初始对应点对的权重,可以使用如下所示的公式(11)计算得到。
其中,dj是指第j个目标初始对应点对的欧式距离,τd表示预设欧式距离阈值。初始对应点对的数量大于等于目标初始对应点对的数量,即i≥j。
s1012,判断目标值是否符合预设初始条件,该预设初始条件是预先设置好的得到更新刚体变换关系的条件,比如,该条件可以是各个目标初始对应点对的距离和最小,也可以是平均距离不再单调递减,还可以是迭代的次数超过设定的次数等等。当目标值符合预设初始条件,执行步骤s1012a,当目标值未符合预设初始条件,执行步骤s1012b并返回步骤s1002继续执行,其中,平均距离可以是根据公式(10)和对应点对的数量计算得到的。
s1012a,根据各个目标初始对应点对计算更新刚体变换关系,将更新刚体变换关系作为目标初始刚体变换关系,并将目标值作为目标初始刚体变换关系的评价信息。
s1012b,将目标值对应的更新刚体变换关系作为第一初始刚体变换关系,返回s1002继续执行。
具体地,更新初始刚体变换关系是指各个目标初始对应点对计算计算得到的刚体变换关系,由于使用预设目标优化函数不断优化各个目标初始对应点对,使各个目标初始对应点对的距离和最小时,计算距离和最小的各个目标初始对应点对的更新初始刚体变换关系,将该更新初始刚体变换关系作为第一初始刚体变换关系,并将该目标值作为目标初始刚体变换关系的评价信息。
在上述实施例中,通过并行线程使用预设优化函数优化各个目标初始对应点对,并计算得到更新刚体变换关系,提高了得到更新刚体变换关系的效率,从而提高了点云匹配的效率。
在一个具体的实施例中,如图11所示,为确定第一目标刚体变换关系,即得到粗匹配结果的示意图。服务器cpu通过到目标点云d和源点云s,进行等体素均匀采样,得到目标点云s采样点和源点云d采样点,将采样点进行匹配,得到各个匹配点对。将各个匹配点对输入到gpu中使用并行线程进行计算,即通过两点法建立各个匹配点对的刚体变换关系,使用姿态评估算法对刚体变换关系进行评估,得到各个匹配点对的更新刚体变换关系rt、平均距离dis和对应点对的数量num。筛选出最佳的rt,即将平均距离dis最小的rt作为第一目标刚体变换关系,即粗匹配结果,并输出粗匹配结果。其中,kerner为实时操作系统。
在一个实施例中,查找匹配点数据集在第一变换点云中的对应点数据集,包括:使用并行线程通过迭代投影查找匹配点数据集中各个匹配点在第一变换点云中的各个对应点,得到对应的数据集。
具体地,使用并行线程分别对匹配点数据集中每个匹配点进行迭代投影,查找各个匹配点在第一变换点云中的各个对应点。通过并行线程和迭代投影的方法查找各个匹配点在第一变换点云中的各个对应点,避免了耗时的对应点搜索过程,提高了查找对应点的效率,进而提高了点云匹配的效率。
在一个实施例中,如图12所示,使用并行线程通过迭代投影查找匹配点数据集中各个匹配点在第一变换点云中的各个对应点,包括步骤:
s1202,在目标并行线程中根据第一变换点云得到对应的第一变换点云像平面。
s1204,将匹配点投影到第一变换点云像平面,得到投影点,将投影点投影到第一变换点云中,得到初始对应点。
s1206,获取匹配点的法线,将初始对应点投影到匹配点的法线上,得到法线点,计算法线点与初始对应点之间的距离。
s1208,判断法线点与初始对应点之间的距离是否小于预设距离,当距离未小于预设距离时,返回步骤s1204执行。当法线点与初始对应点之间的距离小于预设距离时,执行步骤s1210,即将初始对应点作为匹配点在第一变换点云中的对应点。
具体地,第一变换点云像平面是指第一变换点云对应的二维图像平面。可以如图13所示为迭代投影的原理示意图,其中,d为第一变换点云,s为第二点云,id是第一变换点云像平面。将s中的匹配点p0投影到id中,得到对应的投影点pd,然后将投影点pd投影到d中,得到初始对应点qr。获取到投影点pd的法线p1,将初始对应点qr投影到法线
在一个实施例中,步骤s210,即根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系,包括步骤:根据匹配点数据集和对应点数据集确定各个对应点对,计算各个对应点对的目标距离,根据目标距离对各个对应点对进行筛选,得到各个目标对应点对。根据各个目标对应点对使用预设目标优化函数计算各个目标对应点对的值。当各个目标对应点对的值符合预设目标条件时,根据各个目标对应点对计算第二目标刚体变换关系。
具体地,服务器将匹配点数据集中匹配点和对应点数据集中对应的对应点组成对应点对,得到各个对应点对。根据匹配点的三维坐标和对应点的三维坐标计算欧式距离,得到各个目标距离,将目标距离大于预设距离的对应点对筛选掉,还可以根据匹配点的三维坐标法向和对应点的三维坐标法向计算法向夹角,当法向夹角大于预设夹角时,将大于预设夹角的对应点对筛选掉,得到各个目标对应点对。其中,预设目标优化函数可以使用最小化目标优化函数,即通过公式(10)对各个目标对应点对进行计算得到的值。当各个目标对应点对的值符合预设目标条件时,该预设目标条件是预先设置好的得到目标刚体变换关系的条件,比如,该条件可以是各个目标对应点对的值最小,也可以是平均距离不再单调递减,还可以是迭代的次数超过设定的次数等等。当各个目标对应点对的值符合预设目标条件时,根据各个目标对应点对计算第二目标刚体变换关系。当各个目标对应点对的值未符合预设目标条件时,根据各个目标对应点对计算第一目标刚体变换关系。返回到步骤s208继续执行,直到各个目标对应点对的值符合预设目标条件时。在一个具体的实施例中,得到第二目标刚体变换关系之后,根据图5所示的第一人脸点云和人脸第二点云使用第二目标刚体变换关系进行点云匹配之后,得到的匹配结果如图14所示。
应该理解的是,虽然图2-12中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-14中流程图的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供了一种基于并行架构的三维点云匹配装置1500,包括:初始关系计算模块1502、并行模块1504、第一关系确定模块1506、对应点查找模块和点云得到模块1508,其中:
初始关系计算模块1502,用于获取第一点云和第二点云,从第一点云和第二点云中确定各个匹配点对,根据各个匹配点对计算第一点云和第二点云的各个初始刚体变换关系;
并行模块1504,用于通过并行线程分别对各个初始刚体变换关系进行评估,得到各个初始刚体变换关系对应的各个目标初始刚体变换关系和各个目标初始刚体变换关系的评价信息;
第一关系确定模块1506,用于根据各个目标初始刚体变换关系的评价信息从各个目标初始刚体变换关系中确定第一目标刚体变换关系;
对应点查找模块1508,用于根据第一目标刚体变换关系和第一点云得到第一变换点云,从第二点云中选取匹配点数据集,查找匹配点数据集在第一变换点云中的对应点数据集;
点云得到模块1510,用于根据匹配点数据集和对应点数据集优化第一目标刚体变换关系,得到第二目标刚体变化关系。
在一个实施例中,初始关系计算模块1502,还用于对第一点云和第二点云进行体素采样,得到第一点云对应的第一采样点集和第二点云对应的第二采样点集;根据第一采样点集和第二采样点集确定各个匹配点对。
在一个实施例中,初始关系计算模块1502,还用于获取采样间隔,并确定第一点云对应的第一采样空间和第二点云对应的第二采样空间;使用采样间隔对第一采样空间和第一采样空间进行划分,得到各个第一采样体素块和各个第二采样体素块;分别从各个第一采样体素块中抽取第一采样点,得到第一点云对应的第一采样点集,分别从各个第二采样体素块中抽取第二采样点,得到第二点云对应的第二采样点集。
在一个实施例中,初始关系计算模块1502,还用于:获取匹配点对中第一匹配点对应的三维坐标法向和第二匹配点对应的三维坐标法向;根据第一匹配点对应的三维坐标法向计算第一点云第一维旋转角度和第一点云第二维旋转角度,并根据第二匹配点对应的三维坐标法向计算第二点云第一维旋转角度和第二点云第二维旋转角度;根据第一点云第一维旋转角度和第一点云第二维旋转角度得到第一旋转变换矩阵,并根据第二点云第一维旋转角度和第二点云第二维旋转角度得到第二旋转变换矩阵;获取第三维旋转次数,根据第三维旋转次数计算各个第三维旋转角度,根据各个第三维旋转角度得到各个第三旋转变换矩阵;根据第一旋转变换矩阵、第二旋转变换矩阵和各个第三旋转变换矩阵得到各个目标旋转矩阵,根据第一匹配点对应的三维坐标、第二匹配点对应的三维坐标和各个目标旋转矩阵计算各个目标平移矩阵;根据各个目标旋转矩阵和各个目标平移矩阵得到第一点云和第二点云的各个初始刚体变换关系。
在一个实施例中,并行模块1504还用于在第一并行线程中使用第一初始刚体变换关系和第一点云计算第一初始变换点云,并从第二点云中得到初始匹配点数据集;查找初始匹配点数据集在第一初始变换点云中的初始对应点数据集,根据初始匹配点数据集和初始对应点数据集确定各个初始对应点对;计算各个初始对应点对的初始距离,根据各个初始对应点对的初始距离对各个初始对应点对进行筛选,得到各个目标初始对应点对;根据各个目标初始对应点对使用预设目标优化函数计算目标值;当目标值未符合预设条件时,根据各个目标初始对应点对计算更新刚体变换关系,将更新刚体变换关系作为第一初始刚体变换关系,并返回使用第一初始刚体变换关系和第一点云计算第一初始变换点云,并从第二点云中得到初始匹配点数据集的步骤执行,直到目标值符合预设条件时,将目标值对应的更新刚体变换关系作为目标初始刚体变换关系,并将目标值作为目标初始刚体变换关系的评价信息。
在一个实施例中,并行模块1504还用于计算各个初始对应点对的初始法向夹角,从各个初始对应点对中选取初始距离和初始法向夹角符合预设筛选条件的初始对应点对,得到各个目标初始对应点对。
在一个实施例中,对应点查找模块1508还用于使用并行线程通过迭代投影查找匹配点数据集中各个匹配点在第一变换点云中的各个对应点,得到对应的数据集。
在一个实施例中,对应点查找模块1508还用于在目标并行线程中根据第一变换点云得到对应的第一变换点云像平面;将匹配点投影到第一变换点云像平面,得到投影点,将投影点投影到第一变换点云中,得到初始对应点;获取匹配点的法线,将初始对应点投影到匹配点的法线上,得到法线点,计算法线点与初始对应点之间的距离;当距离未小于预设距离时,返回将匹配点投影到第一变换点云像平面,得到投影点,将投影点投影到第一变换点云中,得到初始对应点的步骤执行,直到距离小于预设距离时,将初始对应点作为匹配点在第一变换点云中的对应点。
在一个实施例中,点云得到模块1510还用于:根据匹配点数据集和对应点数据集确定各个对应点对,计算各个对应点对的目标距离,根据目标距离对各个对应点对进行筛选,得到各个目标对应点对;根据各个目标对应点对使用预设目标优化函数计算各个目标对应点对的值;当各个目标对应点对的值符合预设目标条件时,根据各个目标对应点对计算第二目标刚体变换关系。
关于基于并行架构的三维点云匹配装置的具体限定可以参见上文中对于基于并行架构的三维点云匹配方法的限定,在此不再赘述。上述基于并行架构的三维点云匹配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储点云数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于并行架构的三维点云匹配方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述文本匹配方法的步骤。此处文本匹配方法的步骤可以是上述各个实施例的基于并行架构的三维点云匹配方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述文本匹配方法的步骤。此处文本匹配方法的步骤可以是上述各个实施例的基于并行架构的三维点云匹配方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。