云点拼接方法、终端设备、计算机存储介质
技术领域
本申请涉及三维扫描技术领域,特别是涉及一种云点拼接方法、终端设备、计算机存储介质。
背景技术
随着三维点云扫描技术的发展,硬件设备越来越低廉,三维点云数据获取越来越便捷。三维点云数据被应用到各个领域中,如医院的诊断治疗、陶瓷工艺的加工修补、建筑的立体成像、汽车型面检测等。通过非接触式的扫描方式获取数字化的点云数据,在数据的获取过程中,由于受到测量设备视野的限制,通常只能获取被测物体的部分表面视图,而难以获得物体完整的三维点云模型。因此,需要将从多个视角获得的点云数据进行坐标变换,统一到一个坐标系下,形成完整描述物体的三维点云模型。
现有的方法主要有:1)利用一些云台确定被测物体与多视点之间的位置变化关系,通过云台的运动参数直接计算多视点下点云几何数据之间的坐标变化关系,该方法稳定可靠,有较高的精度,但需要附加高精度机械设备,从而导致多视点获取设备结构复杂,不能对较大的物体进行测量。2)手工选取匹配的特征点进行预先匹配,接着通过现有的商业软件处理算法完成对点云几何数据的拼接,智能化程度低,算法复杂。
发明内容
本申请提供了一种云点拼接方法、终端设备、计算机存储介质,主要解决的技术问题是如何提高三维扫描数据的点云拼接效率。
为解决上述技术问题,本申请提供了一种点云拼接方法,所述点云拼接方法包括:
获取绕同一旋转轴扫描得到的两幅点云,并基于所述两幅点云计算得到旋转平移矩阵;
基于所述旋转平移矩阵获取所述旋转轴的方向向量;
基于所述两幅点云,获取其他点云的旋转角度;
基于所述方向向量以及所述旋转角度,获取所述其他点云与所述两幅点云的旋转平移矩阵;
将所述其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的所述点云进行拼接。
为解决上述技术问题,本申请提供了一种终端设备,所述终端设备包括获取模块、处理模块以及拼接模块,其中,所述获取模块、所述拼接模块分别与所述处理模块耦接;
所述获取模块,用于获取绕同一旋转轴扫描得到的两幅点云;
所述处理模块,用于基于所述两幅点云计算得到旋转平移矩阵,并基于所述旋转平移矩阵获取所述旋转轴的方向向量;
所述获取模块,还用于基于所述两幅点云,获取其他点云的旋转角度;
所述处理模块,还用于基于所述方向向量以及所述旋转角度,获取所述其他点云与所述两幅点云的旋转平移矩阵;
所述拼接模块,用于将所述其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的所述点云进行拼接。
为解决上述技术问题,本申请还提供了另一种终端设备,所述终端设备包括存储器以及与所述存储器耦接的处理器;
所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的点云拼接方法。
为解决上述技术问题,本申请还提供了一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现如上述的点云拼接方法。
与现有技术相比,本申请的有益效果是:获取绕同一旋转轴扫描得到的两幅点云,并基于两幅点云计算得到旋转平移矩阵;基于旋转平移矩阵获取旋转轴的方向向量;基于两幅点云,获取其他点云的旋转角度;基于方向向量以及所述旋转角度,获取其他点云与两幅点云的旋转平移矩阵;将其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的点云进行拼接。本申请的云点拼接方法通过两幅点云求得的旋转轴,计算得到其他点云的旋转平移矩阵,避免了多次直接计算旋转平移矩阵的计算量,有效地提高了点云拼接的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的点云拼接方法第一实施例的流程示意图;
图2是本申请提供的点云拼接方法第二实施例的流程示意图;
图3是本申请提供的点云拼接方法第三实施例的流程示意图;
图4是本申请提供的终端设备一实施例的结构示意图;
图5是本申请提供的终端设备另一实施例的结构示意图;
图6是本申请提供的计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现三维扫描点云几何的拼接方法多采用多次测量标记点进行搜索构建匹配的标记点对获取点云几何数据,再通过变化坐标关系来实现多视点点云几何数据的自动拼接,其拼接过程复杂且耗时。
为解决上述技术问题,本申请提出了一种点云拼接方法,具体请参阅图1,图1是本申请提供的点云拼接方法第一实施例的流程示意图。本实施例的点云拼接方法应用于可以实现三维扫描技术的终端设备中,例如三维扫描仪。下面以三维扫描仪为例,介绍本申请提供的点云拼接方法,具体如下:
如图1所示,本实施例的点云拼接方法具体包括以下步骤:
S101:获取绕同一旋转轴扫描得到的两幅点云,并基于所述两幅点云计算得到旋转平移矩阵。
其中,为了提升三维扫描的效率,安检人员通常会把待扫描物体放置在可以沿同一旋转轴360°旋转的三维扫描仪上。三维扫描仪至少包括有转台和点云采集装置,在开启扫描任务后,三维扫描仪的位置保持不动,转台可以绕旋转轴转动一定的角度。点云采集装置固定设置在三维扫描仪上,保证获取的点云数据都是基于同一视角采集得到。
三维扫描仪获取多幅点云后,按照预设规则从多幅点云中获取扫描得到其中两幅点云。例如,三维扫描仪可以随机选择其中两幅点云,可以获取相邻的两幅点云,也可以获取对称的两幅点云,在此不再赘述。
三维扫描仪获取两幅点云后,通过点云拼接算法计算得到这两幅点云的旋转平移矩阵。以ICP(Iterative Closest Point,最近点搜索法)算法为例,三维扫描仪基于第一点云为基准,取第一点云中的一点以及第二点云中与该点距离最近的一点组成一组对应点对集。遍历第一点云的所有点,以获取多组对应点对集,三维扫描仪从多组对应点对集中去除误差较大的对应点对集后,采用最小二乘法迭代求解第一点云和第二点云之间的最优坐标变换,从而得到旋转矩阵和平移矢量,即可获得旋转平移矩阵。
S102:基于所述旋转平移矩阵获取所述旋转轴的方向向量。
其中,三维扫描仪通过S101获得两幅点云的旋转平移矩阵后,基于该旋转平移矩阵可以计算得到转台的旋转轴,即待扫描物体的旋转轴。
具体地,三维扫描仪首先基于旋转平移矩阵换算得到旋转矩阵,其中,旋转平移矩阵可以为4*4的矩阵,三维扫描仪取旋转平移矩阵的前三行前三列构成旋转矩阵。进一步地,三维扫描仪基于旋转矩阵计算出旋转轴的旋转角度以及方向向量。
例如,旋转平移矩阵为:
则,三维扫描仪构成的旋转矩阵为:
基于上述旋转矩阵,三维扫描仪计算旋转轴的旋转角度为:
基于计算得到的旋转角度,三维扫描仪进一步计算旋转轴的方向向量为:
其中,(rx,ry,rz)为旋转轴的单位方向向量。
S103:基于所述两幅点云,获取其他点云的旋转角度。
其中,三维扫描仪以S101中的两幅点云为基准,从转台中获取其他点云的旋转角度。
S104:基于所述方向向量以及所述旋转角度,获取所述其他点云与所述两幅点云的旋转平移矩阵。
其中,三维扫描仪根据S102的方向向量确定旋转轴的坐标,该旋转轴为转台以及待扫描物体的旋转轴。三维扫描仪进一步根据旋转轴获取其他点云与作为基准的两幅点云之间的旋转平移矩阵。
具体地,假设旋转轴经过坐标轴的坐标原点,且旋转轴的单位方向向量为(rx,ry,rz)。三维扫描仪计算两幅点云之间的旋转平移矩阵时,从转台获取两幅点云的旋转角度,并根据旋转角度和旋转轴计算这两幅点云的旋转平移矩阵。
例如,三维扫描仪首先根据罗德里格斯公式求得两幅点云之间的旋转矩阵,具体如下:
其中,矩阵R为旋转矩阵,θ为旋转角度,(rx,ry,rz)为旋转轴的方向向量。
三维扫描仪然后将上述3*3的旋转矩阵转化为4*4的旋转平移矩阵,具体如下:
其中,矩阵S为旋转平移矩阵。
S105:将所述其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的所述点云进行拼接。
其中,三维扫描仪根据待扫描物体各组点云所对应的旋转平移矩阵对所有点云进行旋转平移变换。
具体地,以旋转轴所在坐标系为基准,三维扫描仪将扫描得到的多幅点云按照对应的旋转平移矩阵进行旋转平移变换,以换算成同一坐标系下的点云。然后,三维扫描仪将旋转平移后的多幅点云进行拼接,以形成待扫描物体的点云几何拼接模型。
在本实施例中,获取绕同一旋转轴扫描得到的两幅点云,并基于两幅点云计算得到旋转平移矩阵,基于旋转平移矩阵获取旋转轴的方向向量,基于两幅点云,获取其他点云的旋转角度,基于方向向量以及旋转角度,获取其他点云与两幅点云的旋转平移矩阵,将其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的点云进行拼接。本实施例的云点拼接方法通过两点云求得的旋转平移矩阵,可知其他点云的旋转平移矩阵,避免了多次运用两点云求解其他点云的旋转平移矩阵,有效地提高了点云拼接的效率。
在另一实施例中,如图2所示,三维扫描仪通过图1所示实施例中S102基于所述方向向量以及所述旋转角度,获取所述其他点云与所述两幅点云的旋转平移矩阵的步骤,进一步包括:
S201:基于所述旋转平移矩阵获取所述旋转轴的方向向量。
其中,S201的技术特征与上述S102技术特征相同,在此不在赘述。
S202:基于所述旋转平移矩阵获取所述两幅点云的旋转角度。
其中,三维扫描仪通过S101获得两幅点云的旋转平移矩阵后,基于该旋转平移矩阵可以计算得到转台的旋转轴,即待扫描物体的旋转轴。
具体地,三维扫描仪首先基于旋转平移矩阵换算得到旋转矩阵,其中,旋转平移矩阵可以为4*4的矩阵,三维扫描仪取旋转平移矩阵的前三行前三列构成旋转矩阵。进一步地,三维扫描仪基于旋转矩阵计算出旋转轴的旋转角度以及方向向量。
例如,旋转平移矩阵为:
则,三维扫描仪构成的旋转矩阵为:
基于上述旋转矩阵,三维扫描仪计算旋转轴的旋转角度为:
其中,θ为旋转角度。
S203:基于所述方向向量以及所述两幅点云的旋转角度计算得到所述旋转轴上的一轴点。
其中,三维扫描仪还可以基于S202中的旋转平移矩阵,获取旋转轴上的一轴点。
具体地,假设转台的旋转轴不经过坐标轴的坐标原点,为了拼接方便,三维扫描仪可以将所有点云以及旋转轴平移到坐标原点,即使得平移后的旋转轴经过坐标轴的坐标原点。为了实现上述平移操作,三维扫描仪需要获取旋转轴上的任一轴点,并以该轴点为基准计算平移后的旋转平移矩阵,具体如下:
此时,假设旋转轴上的任一轴点坐标为(x,y,z),三维扫描仪根据S202中的旋转平移矩阵和该坐标点建立方程组求解轴点。
具体方程组如下:
解方程,即可获得关于轴点(x,y,z)的表达式,如下:
S204:基于所述方向向量以及其他点云与所述两幅点云的旋转角度,获取所述其他点云与所述两幅点云的第一旋转矩阵。
其中,三维扫描仪根据S102的方向向量确定旋转轴的坐标,该旋转轴为转台以及待扫描物体的旋转轴。三维扫描仪进一步根据旋转轴获取其他点云与作为基准的两幅点云之间的旋转平移矩阵。
具体地,旋转轴的单位方向向量为(rx,ry,rz)。三维扫描仪计算两幅点云之间的旋转平移矩阵时,从转台获取两幅点云的旋转角度,并根据旋转角度和旋转轴计算这两幅点云的第一旋转矩阵。
例如,三维扫描仪首先根据罗德里格斯公式求得两幅点云之间的第一旋转矩阵,具体如下:
其中,矩阵R为第一旋转矩阵,θ为旋转角度,(rx,ry,rz)为旋转轴的方向向量。
S205:将所述旋转矩阵转换为所述其他点云与所述两幅点云的第一旋转平移矩阵。
具体地,三维扫描仪将根据罗德里格斯公式求得两幅点云之间的第一旋转矩阵转换为第一旋转平移矩阵,即将3*3的第一旋转矩阵转换成4*4的第一旋转平移矩阵,具体如下:
其中,矩阵S为第一旋转平移矩阵。
S206:基于所述旋转轴的一轴点,换算为第一矩阵及其对应的第二矩阵。
具体地,在被扫描物体的旋转轴上取任一轴点,即上述S203中的轴点(x,y,z),用4*4的两个矩阵T1、T2来表示该坐标点。
例如,矩阵T1表示为:
矩阵T2表示为:
其中,(x,y,z)为旋转轴上一轴点坐标,矩阵T1为第一矩阵,矩阵T2为第二矩阵。
S207:将所述第一矩阵、所述第一旋转平移矩阵以及所述第二矩阵相乘得到所述第二旋转平移矩阵。
其中,三维扫描仪将S206所得的第一矩阵和第二矩阵与S205所得的第一旋转平移矩阵相乘以求得第二旋转平移矩阵。具体如下:
M=T2ST1
即:
其中,(x,y,z)为旋转轴上一轴点坐标,矩阵M为第二旋转平移矩阵,矩阵T1为第一矩阵,矩阵T2为第二矩阵,矩阵S为第一旋转平移矩阵。
进一步地,当旋转轴经过坐标原点时,三维扫描仪可以选择坐标原点(0,0,0)作为旋转轴上的轴点,由此,上述矩阵T1表示为:
矩阵T2表示为:
则计算得到的第二旋转平移矩阵为:
本实施例中,基于旋转平移矩阵获取旋转轴的方向向量;基于旋转平移矩阵获取两幅点云的旋转角度;基于两幅点云,获取其他点云的旋转角度;基于方向向量以及旋转角度,获取其他点云与两幅点云的第一旋转矩阵;将旋转矩阵转换为其他点云与两幅点云的第一旋转平移矩阵;基于旋转轴的一轴点,换算为第一矩阵及其对应的第二矩阵;将第一矩阵、第一旋转平移矩阵以及第二矩阵相乘得到第二旋转平移矩阵。本实施例的云点拼接方法通过选择旋转轴上一轴点,并基于该轴点将所有点云以及旋转轴平移,以使旋转轴经过坐标系原点,将所有点云统一到同一坐标轴下,有效地提高了点云拼接的效率。
基于第一实施例S102的基于所述旋转平移矩阵获取所述旋转轴的方向向量的步骤,本实施例提出了另一种具体的方法。具体请参阅图3,图3是本申请提供的点云拼接方法第三实施例的流程示意图。
如图3所示,本实施例的点云拼接方法具体包括以下步骤:
S301:基于所述第二旋转平移矩阵,获取第二旋转矩阵。
其中,三维扫描仪通过S101获得两幅点云的第二旋转平移矩阵后,三维扫描仪首先基于第二旋转平移矩阵换算得到第二旋转矩阵。
具体地,第二旋转平移矩阵可以为4*4的矩阵,三维扫描仪取第二旋转平移矩阵的前三行前三列构成第二旋转矩阵。进一步地,三维扫描仪基于第二旋转矩阵计算出旋转轴的旋转角度以及方向向量。
例如,第二旋转平移矩阵为:
则,三维扫描仪构成的第二旋转矩阵为:
S302:基于所述第二旋转矩阵,获取所述两幅点云的旋转角度。
其中,三维扫描仪基于S301中的第二旋转矩阵计算出旋转轴的旋转角度,即两幅点云点旋转角度。
基于上述第二旋转矩阵,三维扫描仪计算旋转轴的旋转角度为:
S303:基于所述第二旋转矩阵及所述两幅点云的旋转角度,获得所述旋转轴的方向向量。
其中,基于计算得到的旋转角度及第二旋转矩阵,三维扫描仪进一步计算旋转轴的方向向量为:
其中,(rx,ry,rz)为旋转轴的单位方向向量。
在本实施例中,基于第二旋转平移矩阵,获取第二旋转矩阵,基于第二旋转矩阵,获取两幅点云的旋转角度,基于第二旋转矩阵及两幅点云的旋转角度,获得旋转轴的方向向量。本实施例已知旋转平移矩阵,通过变换为旋转矩阵,并引入两幅点云的旋转角度,以获取方向向量,有效地提高了点云拼接的效率。
为解决上述技术问题,本申请还提出了另一种点云拼接方法,具体请参阅图4,图4是本申请提供的终端设备一实施例的结构示意图。
其中,终端设备400包括获取模块41、处理模块42以及拼接模块43。获取模块41、拼接模块43分别与处理模块42耦接。
其中,获取模块41,用于获取绕同一旋转轴扫描得到的两幅点云。
处理模块42,用于基于所述两幅点云计算得到旋转平移矩阵,并基于所述旋转平移矩阵获取所述旋转轴的方向向量。
获取模块41,还用于基于所述两幅点云,获取其他点云的旋转角度。
处理模块42,还用于基于所述方向向量以及所述旋转角度,获取所述其他点云与所述两幅点云的旋转平移矩阵。
拼接模块43,用于将所述其他点云分别按照对应的旋转平移矩阵进行旋转平移,并将旋转平移后的所述点云进行拼接。
为实现上述实施例的点云拼接方法,本申请提出了另一种终端设备,具体请参阅图5,图5是本申请提供的终端设备另一实施例的结构示意图。
终端设备500包括存储器51和处理器52,其中,存储器51和处理器52耦接。
存储器51用于存储程序数据,处理器52用于执行程序数据以实现上述实施例的点云拼接方法。
在本实施例中,处理器52还可以称为CPU(Central Processing Unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器52也可以是任何常规的处理器等。
本申请还提供一种计算机存储介质,如图6所示,计算机存储介质600用于存储程序数据,程序数据在被处理器执行时,用以实现如本申请方法实施例中所述的点云拼接方法。
本申请点云拼接方法实施例中所涉及到的方法,在实现时以软件功能单元的形式存在并作为独立的产品销售或使用时,可以存储在装置中,例如一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。