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

一种点云配准方法、装置、存储介质和计算机设备与流程

2021-11-24 21:39:00 来源:中国专利 TAG:

一种点云配准方法、装置、存储介质和计算机设备
【技术领域】
1.本发明涉及点云配准技术领域,具体地涉及一种点云配准方法、装置、存储介质和计算机设备。


背景技术:

2.现有技术中,在进行点云配准时,先进行粗配准,以将输入点云变换到与目标点云大体重合的位置处,之后直接进行精配准,以使得输入点云和目标点云更加重合。其中,精配准过程通常采用的是迭代最近点算法(iterative closest point,简称icp算法),每一次精配准过程是直接根据目标点云和粗配准后的输入点云寻找对应点来进行。然而现有技术中,根据目标点云和粗配准后的输入点云寻找对应点的过程中,会产生一定量的错误的对应点,那么下一次在进行精配准时,如果还是根据目标点云和粗配准后的输入点云中的所有点云数,则还会产生上述这些错误的对应点,从而根据这些错误的对应点所进行的配准,将造成配准精度较低的问题。


技术实现要素:

3.有鉴于此,本发明提供一种点云配准方法、装置、存储介质和计算机设备,用于解决现有技术种点云配准低的问题。
4.一方面,本发明实施例提供了一种点云配准方法,包括:
5.获取待配置的多个三维点集;
6.基于所述多个三维点集,确定出平移参数和旋转参数;
7.基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;
8.判断所述变换点集与所述第一点集是否满足预设条件;
9.若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算。
10.可选地,所述预设条件包括所述变换点集与所述第一点集之间的平均距离小于设定阈值。
11.可选地,所述多个三维点集可包括第一点集和第二点集。
12.可选地,还包括:若判断出所述变换点集与所述第一点集未满足预设条件,将所述变换点集作为新的第二点集,并继续执行所述计算所述第二点集中每个点在所述第一点集中对应的近点的步骤。
13.可选地,在所述基于所述多个三维点集,确定出平移参数和旋转参数之前,包括:
14.计算所述第二点集中每个点在所述第一点集中对应的近点。
15.可选地,所述基于所述多个三维点集,确定出平移参数和旋转参数,包括:
16.基于所述近点构建所述近点对应的点集;
17.初始化平移参数和旋转参数,并基于所述近点对应的点集通过预设公式计算出平移参数和旋转参数。
18.可选地,所述基于所述近点对应的点集通过预设公式计算出平移参数和旋转参数,包括:
19.设置所述平移参数包括dx,dy,dz,所述旋转参数包括rx,ry,rz,以及预设的缩放比例为m;
20.通过公式:
21.计算出平移参数和旋转参数,其中,所述{x
a
,y
a
,z
a
}表示为所述近点对应的点集中的某一点,所述{x
b
,y
b
,z
b
}表示为所述近点对应的点集中的另一点。
22.另一方面,本发明实施例提供了一种点云配准装置,所述装置包括:
23.获取模块,用于获取待配置的多个三维点集;
24.确定模块,用于基于所述多个三维点集,确定出平移参数和旋转参数;
25.生成模块,用于基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;
26.判断模块,用于判断所述变换点集与所述第一点集是否满足预设条件;
27.处理模块,用于若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算。
28.另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的点云配准方法。
29.另一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行上述的点云配准方法的步骤。
30.本发明实施例提供的技术方案中,获取待配置的多个三维点集;基于所述多个三维点集,确定出平移参数和旋转参数;基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;判断所述变换点集与所述第一点集是否满足预设条件;若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算,通过上述方式能够解决现有技术种点云配准低的问题。
【附图说明】
31.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
32.图1是本发明一实施例所提供的一种点云配准方法的流程图;
33.图2是本发明又一实施例所提供的一种点云配准方法的流程图;
34.图3是本发明一实施例所提供的一种点云配准装置的结构示意图;
35.图4为本发明实施例提供的一种计算机设备的示意图。
【具体实施方式】
36.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
37.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
38.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
39.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
40.在对本发明实施例所提供的一种点云配准方法进行介绍之前,先对本发明实施例所涉及的相关算法进行介绍:
41.(1)icp算法
42.1992年,paul j.besl and neil d.mckay在他们的文章《a method for registration of 3d shape》中提出了icp(iterative closest point)算法,通过迭代、寻找来不断搜索最近点,定义一个阀值(threhold)最终完成多视图的拼合。
43.其中,icp算法是一种典型的迭代算法,其单次迭代的效率和总的迭代次数均会影响算法整体的收敛效率。该算法每次迭代都需进行最近点云的查找,这一过程耗费大量的时间。点数越多,查找效率越低。为提高icp算法的效率,研究人员提出了许多方法来提高最近点点云的查找效率,进而减少单次迭代所需的时间。例如,基于k

d树结构的最近点云搜索方法提高了搜索速度,或者对待配准点云进行随机采样以减少参与计算的点云个数。
44.基于上述icp算法,本发明一实施例提供的一种点云配准方法,图1为本发明一实施例提供的一种点云配准方法的流程图,如图1所示,该方法包括:
45.步骤101、获取待配置的多个三维点集。
46.在该步骤中,多个三维点集可包括第一点集和第二点集,其中,第二点集可理解为是第一点集通过平移或者旋转得到的。
47.步骤102、基于所述多个三维点集,确定出平移参数和旋转参数。
48.在该步骤中,基于上述步骤101,可获取到由于第二点集可理解为是第一点集通过平移或者旋转得到的,因此,步骤102需要计算出将第二点集重新转化为第一点集,所需要进行的平移与旋转的尺度,即需要计算出平移参数和旋转参数,而根据该平移参数进行平移,根据旋转参数进行旋转,从而使得第一点集与第二点集之间的点距离最小,从而完成第一点集与第二点集之间的配准。在实际应用中可理解为,第一点集与第二点集在视觉效果上达到重合。
49.步骤103、基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集。
50.在该步骤中,步骤103的目的即是根据于所述平移参数和所述旋转参数,对第二点集进行平移及旋转,以生成变换点集,并通过后续步骤判断所述变换点集与所述第一点集是否满足预设条件。
51.该步骤可理解为,通过根据该平移参数将第二点集进行平移,且根据旋转参数将第二点集进行旋转后,生成处理后的点集,该点集即为变换点集。以便后续判断出变换点集与第一点集之间的点距离是否为最小,从而确定是否完成配准。换句话说,需要判断变换点集与第一点集在视觉效果上是否达到重合(若达到重合或者接近于重合状态则两个点之间的距离是最小的)。
52.步骤104、判断所述变换点集与所述第一点集是否满足预设条件。
53.在该步骤中,若判断出所述变换点集与所述第一点集满足预设条件,则表明变换点集与第一点集在视觉效果上达到重合,即完成点集配准;若判断出所述变换点集与所述第一点集未满足预设条件,则表明变换点集与第一点集在视觉效果上未达到重合,需要继续进行平移和/或旋转,以使得变换点集与第一点集在视觉效果上达到重合。
54.步骤105、若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算。
55.本发明实施例提供的技术方案中,获取待配置的多个三维点集;基于所述多个三维点集,确定出平移参数和旋转参数;基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;判断所述变换点集与所述第一点集是否满足预设条件;若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算,通过上述方式能够解决现有技术种点云配准低的问题。
56.图2为本发明一实施例提供的一种点云配准方法的流程图,如图2所示,该方法包括:
57.步骤201、获取待配置的多个三维点集。
58.在该步骤中,多个三维点集可包括第一点集和第二点集,其中,第二点集可理解为是第一点集通过平移或者旋转得到的。
59.本发明实施例中,本实施例的执行主体可以为点云配准装置,该点云配准装置可以为程序软件,也可以为存储有相关计算机程序的介质,例如,u盘等;或者,该点云配准装置还可以为集成或安装有相关计算机程序的实体设备,例如,芯片、智能终端、电脑、服务器等。
60.本发明实施例中,例如,可通过rgb

d相机得到了第一点集p={p1,p2,

,pn},相机经过位姿变换(旋转加平移)后又拍摄了第二点集q={q1,q2,

,qn}。注意这里的p={p1,p2,

,pn}和q={q1,q2,

,qn}的坐标分别对应移动前和移动后的坐标系。例如,以车间产品校准场景为例,可将对产品模型(如规则的水杯模型)进行扫描之后,将描述所获得的产品模型的点云数据作为第一点集,将对待检测的产品(实际生产的水杯)进行扫描之后,再将描述所获得的待检测产品的点云数据作为第二点集,从而获取到待配置的第一点集和第二点集,并对第一点集和第二点集进行配准。
61.需要说明的是,本发明通过获取第一点集和第二点集的目的在于,通过获取这两
个点集并计算第一点集和第二点集之间的平移参数和旋转参数,从而对第二点集进行调整,以使得第二点集和第一点集达到视觉效果上的重合,从而完成配准。
62.步骤202、计算所述第二点集中每个点在所述第一点集中对应的近点。
63.在该步骤中,近点表示为第二点集中的点a与第一点集点集中的点b,其两点之间的距离最短,则点b为点a的近点。
64.本发明实施例中,通过获取第二点集中的一点与第一点集中距离最近的那个点,则将该点作为其对应点,即近点。
65.需要说明的是,由于每个点均需要进行步骤202的操作,容易造成时间复杂度很高的问题,因此为了加速计算,在实际应用中不需要计算第二点集中每个点到第一点集中一点的距离,而是通过设定一个阈值,当距离小于阈值时,就将其作为近点。
66.步骤203、基于所述近点构建所述近点对应的点集。
67.本发明实施例中,将具有近点关系的第二点集中某点与第一点集中的某点筛选出,并分别将具有近点关系的第二点集中的多个点,以及具有近点关系的第一点集中的多个点分别作为所述近点对应的点集。
68.步骤204、初始化平移参数和旋转参数,并基于所述近点对应的点集通过预设公式计算出平移参数和旋转参数。
69.在该步骤中,所述平移参数包括dx,dy,dz,所述旋转参数包括rx,ry,rz,以及预设的缩放比例为m。初始化平移参数,即设置为dx=0,dy=0,dz=0,初始化旋转参数,即设置为rx=0,ry=0,rz=0。
70.本发明实施例中,设置所述平移参数包括dx,dy,dz,所述旋转参数包括rx,ry,rz,以及预设的缩放比例为m;
71.通过公式:
72.计算出平移参数和旋转参数,其中,所述{x
a
,y
a
,z
a
}表示为所述近点对应的点集中的某一点,所述{x
b
,y
b
,z
b
}表示为所述近点对应的点集中的另一点。
73.在上述步骤中,可将上述公式转化为转换成方程式组,即:
74.通过基于转化后的公式更能快速计算出平移参数和旋转参数。
75.步骤205、基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集。
76.在该步骤中,步骤103的目的即是根据于所述平移参数和所述旋转参数,对第二点集进行平移及旋转,以生成变换点集,并通过后续步骤判断所述变换点集与所述第一点集是否满足预设条件。
77.该步骤可理解为,通过根据该平移参数将第二点集进行平移,且根据旋转参数将第二点集进行旋转后,生成处理后的点集,该点集即为变换点集。以便后续判断出变换点集与第一点集之间的点距离是否为最小,从而确定是否完成配准。换句话说,需要判断变换点集与第一点集在视觉效果上是否达到重合(若达到重合或者接近于重合状态则两个点之间的距离是最小的)。
78.步骤206、判断所述变换点集与所述第一点集是否满足预设条件,若是,执行步骤207;若否,执行步骤208。
79.在该步骤中,所述预设条件包括所述变换点集与所述第一点集之间的平均距离小于设定阈值。
80.本发明实施例中,在该步骤中,若判断出所述变换点集与所述第一点集满足预设条件,则表明变换点集与第一点集在视觉效果上达到重合,即完成点集配准;若判断出所述变换点集与所述第一点集未满足预设条件,则表明变换点集与第一点集在视觉效果上未达到重合,需要继续进行平移和/或旋转,以使得变换点集与第一点集在视觉效果上达到重合。
81.步骤207、配置完成,并停止迭代计算。
82.步骤208、将所述变换点集作为新的第二点集,并继续执行所述计算所述第二点集中每个点在所述第一点集中对应的近点的步骤。
83.本发明实施例提供的技术方案中,获取待配置的多个三维点集;基于所述多个三维点集,确定出平移参数和旋转参数;基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;判断所述变换点集与所述第一点集是否满足预设条件;若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算,通过上述方式能够解决现有技术种点云配准低的问题。
84.需要说明的是,手动配准工具可用于点云与点云、点云与影像、影像与影像之间的数据校正。将参考数据和待配准数据放在两个窗口中,在两个窗口中点选或拟合球(针对点云数据)得到至少三对同名点数据,通过同名点对计算两个数据之间坐标变换矩阵进行数据的坐标校正。通过点选点对,用户可在同名点对列表中查看数据之间的残差。
85.图3是本发明一实施例所提供的一种点云配准装置的结构示意图,如图3所示,所述装置包括:
86.获取模块11,用于获取待配置的多个三维点集;
87.确定模块12,用于基于所述多个三维点集,确定出平移参数和旋转参数;
88.生成模块13,用于基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;
89.判断模块14,用于判断所述变换点集与所述第一点集是否满足预设条件;
90.处理模块15,用于若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算。
91.本发明实施例中,所述预设条件包括所述变换点集与所述第一点集之间的平均距
离小于设定阈值。
92.本发明实施例中,所述多个三维点集可包括第一点集和第二点集。
93.本发明实施例中,该装置的判断模块14还用于若判断出所述变换点集与所述第一点集未满足预设条件,将所述变换点集作为新的第二点集,并继续执行所述计算所述第二点集中每个点在所述第一点集中对应的近点的步骤。
94.本发明实施例中,该装置还包括:计算模块。
95.计算模块用于计算所述第二点集中每个点在所述第一点集中对应的近点。
96.本发明实施例中,该装置的确定模块12体用于基于所述近点构建所述近点对应的点集;初始化平移参数和旋转参数,并基于所述近点对应的点集通过预设公式计算出平移参数和旋转参数。所述基于所述近点对应的点集通过预设公式计算出平移参数和旋转参数,包括:
97.设置所述平移参数包括dx,dy,dz,所述旋转参数包括rx,ry,rz,以及预设的缩放比例为m;
98.通过公式:
99.计算出平移参数和旋转参数,其中,所述{x
a
,y
a
,z
a
}表示为所述近点对应的点集中的某一点,所述{x
b
,y
b
,z
b
}表示为所述近点对应的点集中的另一点。
100.本发明实施例提供的技术方案中,获取待配置的多个三维点集;基于所述多个三维点集,确定出平移参数和旋转参数;基于所述平移参数和所述旋转参数对所述第二点集进行计算,生成变换点集;判断所述变换点集与所述第一点集是否满足预设条件;若判断出所述变换点集与所述第一点集满足预设条件,配置完成,并停止迭代计算,通过上述方式能够解决现有技术种点云配准低的问题。
101.本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述点云配准方法的实施例的各步骤,具体描述可参见上述点云配准方法的实施例。
102.本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述点云配准方法的步骤。具体描述可参见上述点云配准方法的实施例。
103.图4为本发明实施例提供的一种计算机设备的示意图。如图4所示,该实施例的计算机设备4包括:处理器41、存储器42以及存储在存储42中并可在处理器41上运行的计算机程序43,该计算机程序43被处理器41执行时实现实施例中的应用于点云配准方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器41执行时实现实施例中应用于点云配准装置中各模型/单元的功能,为避免重复,此处不一一赘述。
104.计算机设备4包括,但不仅限于,处理器41、存储器42。本领域技术人员可以理解,图4仅仅是计算机设备4的示例,并不构成对计算机设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备4还可以包括输入输出设备、网络接入设备、总线等。
105.所称处理器41可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
106.存储器42可以是计算机设备4的内部存储单元,例如计算机设备4的硬盘或内存。存储器42也可以是计算机设备4的外部存储设备,例如计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器42还可以既包括计算机设备4的内部存储单元也包括外部存储设备。存储器42用于存储计算机程序以及计算机设备4所需的其他程序和数据。存储器42还可以用于暂时地存储已经输出或者将要输出的数据。
107.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
108.在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
109.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
110.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
111.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
112.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

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

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

相关文献