1.本发明涉及三维点云后处理的技术领域,尤其涉及一种平面占比较大的三维对象的点云配准方法。
背景技术:2.三维对象的配准是将对象三维模型和实际场景中对象进行对齐的过程,也称点云配准。点云配准的一个重要应用就是抓取(bin-picking)。传统解决方案是基于二维图像匹配,通过图像处理方法得到对象的姿态,但是由于图像丢失了对象的深度信息,因此很难得到其6自由度位姿,而获取场景对象的三维点云数据进行模板匹配则可以解决该问题,因此三维数据中自由形状物体的识别已经得到了广泛的应用。
3.目前基于三维数据的点云配准,针对不同的应用需求,实现方法多种多样,广泛应用在各行各业,且能达到不错的效果,但是,几乎所有的配准算法都具备自己的局限性,很难做到通用或兼顾算法的精度和耗时,特别是对于平面占比较高的被测对象,常见的形状匹配、特征匹配方法往往会产生误差较大甚至错误的定位结果。因此本发明针对该问题提出了一种平面占比较大的三维对象的配准方法。
技术实现要素:4.本发明的目的在于提供一种平面占比较大的三维对象的配准方法,用以解决现有配准技术中面对散乱场景难以快速精确实现点云匹配的问题。
5.一种平面占比较大的三维对象的配准方法,包括以下步骤:
6.s1,获取被测对象的点云模型;
7.s2,对点云模型进行简化,并计算点云模型中所有点的法向量;
8.s3,对简化后的点云模型进行特征计算,得到模型特征库;
9.s4,获取场景的点云数据并对其进行预处理;
10.s5,通过特征匹配获取场景中的各对象位姿,完成一次场景点云对象配准。
11.所述s2中,通过降采样对点云模型进行简化,对简化后的点云模型通过pca算法计算其各点的法向量。
12.所述s3还包括以下步骤:
13.s3-1,在降采样后的点云模型中随机选取两个点组成点对;
14.s3-2,计算各点对的特征加权值;
15.s3-3,创建点对特征列表、点对特征加权值列表和hash表,构成模型特征库。
16.所述s3-2还包括:对于点对(p1,p2),其特征加权值fw的计算式如下:
[0017][0018]
其中,和分别为点p1、p2对应的法向量,
[0019]
ω0、ω1、ω2、ω3表示式中每项的权重值,且满足ω0+ω1+ω2+ω3=1,
[0020]dm
表示模型的两点之间的最大尺寸。
[0021]
所述s3-3中:
[0022]
点对特征列表listf的长度为m
×
m,用于存储每个点对计算得到的ppf特征;
[0023]
点对特征加权值列表listw的长度为m
×
m,存储每个点对计算的特征置信度,与listf列表一一对应;
[0024]
hash表的长度为m
×
m,通过将点对特征值离散化,将每个点对的ppf特征通过计算转换成一个唯一键值,对应信息存储点对在原点云中的索引,hash表包括各点对索引关系。
[0025]
所述s4还包括以下步骤,
[0026]
s4-1,去除背景点和孤立噪声点,去除后场景点云中剩余的为被测对象表面的点云数据;
[0027]
s4-2,基于图像处理的方式获取点云数据中的感兴趣区域;
[0028]
s4-3,将点云数据中的点集划分为平面子集和非平面子集;
[0029]
s4-4,对非平面场景点云子集精简处理,得到精简后的非平面场景点云子集。
[0030]
所述s5还包括以下步骤,
[0031]
s5-1,计算非平面场景点云集sn中各点的法向量;
[0032]
s5-2,均匀从非平面场景点云子集sn中选取特征匹配的参考点,记作sr,且{sr∈sn|r=0,1,2
…
,nr};
[0033]
s5-3,选取一个参考点sr,且sr∈sr,选取非平面场景点云子集sn中的一点si,且si∈sn,si和sr组成点对(sr,si),根据离线建模部分中描述的点云特征计算方法,计算点对(sr,si)的ppf特征f
ri
、特征权重以及hash索引值,
[0034]
s5-4,设置阈值w
th
并判定点对特征是否为置信度较高点对;
[0035]
s5-5,对场景点云集sn中的其余点分别执行s5-3至s5-4,得到k组局部坐标(mr,α),并建立投票矩阵m
×nα
,m表示模型点数,n
α
表示旋转角的离散数量,且
[0036]
s5-6,选取投票矩阵中得票峰值对应的局部坐标(mr′
,α
′
)作为最优局部坐标,并计算得到全局刚性变换矩阵,即一个候选位姿;
[0037]
s5-7,重复执行s5-3至s5-6,计算所有参考点{sr∈sn|r=0,1,2
…
,nr}的最优局部坐标和候选位姿,得到所有候选位姿列表pose
list
,长度为nr,同时记录各个位姿的得票列表vote
num
,长度为nr,;
[0038]
s5-8,采用位姿聚类方法获取n
pose
个子类位姿;
[0039]
s5-9,对s5-8输出的n
pose
个子类内的每个位姿进行验证,去除假阳性位姿结果;
[0040]
s5-10,输出s5-9中各个子类剩余的所有位姿,对于n
pose
个子类中的每个子类,计算其类中剩余位姿的平均,所得平均位姿即为当前类的位姿输出,每个输出位姿代表场景中的一个对象相对于模型的位置关系,至此完成一次场景点云对象配准。
[0041]
所述s5-4还包括:
[0042]
若点对(sr,si)的特征权重值则进一步在模型特征库中搜索和点对(sr,si)特征hash值相同的点对;
[0043]
若模型特征库存在与点对(sr,si)特征hash值相同的点对,,则从hash表中获取hash值对应的信息,即点对的索引,记作(mr,mi);
[0044]
若点对(mr,mi)的特征权重则进一步计算点对(sr,si)和点对(mr,mi)之间的变换关系,得到两者之间变换关系并通过的局部坐标(m,α)表示。
[0045]
计算两个点对(sr,si)和(mr,mi)之间变换关系还包括:
[0046]
创建一个固定坐标系(o-xyz),将mr,mi,及中间的连线视作一个整体并记作u1,将sr,si,及中间的连线视作一个整体并记作u2,将u1平移到mr点和坐标系o-xyz的原点重合,然后旋转u1至的法向量和坐标系x轴重合,同理,将u2作与u1相同的变换,将变换后的u1和u2记作u1’,u2’,此时u1’和u2’之间只有si和mi没有对齐,两者之间相差一个绕x轴的旋转角α,两者之间的变换可表示为:
[0047][0048]
其中,表示将u2’反变换到u2,即u2到u2’的相反操作,tm→g表示将u1变换到u1’,r
x
(α)表示si沿着x轴旋转α角度与mi对齐;
[0049]
和tm→g均为已知量,通过上式可以求解出旋转角α的值,利用局部坐标(mr,α)可以表示点对(sr,si)和点对(mr,mi)之间的变换关系。
[0050]
所述s5-8还包括以下步骤:
[0051]
聚类将候选位姿分为多个子类,每个子类内各个位姿具有相近的平移和旋转,每个子类内位姿得票的总和作为得票分数,取得票分数较高的n
pose
个子类,并计算每个子类类内位姿平均作为对应子类的位姿。
[0052]
本发明的有益效果为:一方面,本发明提供了一种改进的点云特征计算方法,在ppf特征的基础上,增加特征置信度计算,可快速筛选出质量高的点对,提高配准效率;进一步的,取模型的非平面点计算特征建立模型特征库,保证特征计算选取的是信息含量大的点对;另一方面,本发明实施例还提出利用对象平面信息辅助验证,进一步剔除了误匹配点对,从而保证最终的配准精度。本发明提出的平面占比较大的三维对象的识别与定位方法,能够从复杂场景,如任意堆放的工件中快速精确定位出单个可抓取对象,引导机器人进行后续的抓取操作;可以有效克服复杂场景中包含大量来自背景或被测对象的平面点的情况,从而实现精确的点云配准,使得定位结果更加稳定,适用场景更广泛。
附图说明
[0053]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0054]
图1为本发明提出的平面占比较大的三维对象的配准方法的整体流程示意图;
[0055]
图2为本发明中点对之间特征匹配示意图;
[0056]
图3为本发明中两对点对间进行坐标变换的示意图。
具体实施方式
[0057]
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发
明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
[0058]
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
[0059]
本发明实施例中提供了一种平面占比较大的三维对象的配准方法,该方法针对平面占比大于50%的三维被测对象进行,具体的,该方法包括:
[0060]
s1,获取被测对象的点云模型,并将点云模型与被测对象对齐;
[0061]
其中,被测对象的点云模型可以通过cad生成或手动生成,以模型为参考对象,用来将实际场景中的对象和模型对齐,从而达到定位出对象的目的。
[0062]
具体的,将点云模型与被测对象对齐还包括:根据生成的点云模型,计算点云模型的特征库以及实际3d相机采集的场景数据的特征,并和模板特征库的特征作对比,找到相似特征,根据相似特征解算出被测对象和点云模型之间的变换关系,从而将模型和实际场景中的对象对齐。
[0063]
s2,对点云模型进行简化,并计算点云模型中所有点的法向量;
[0064]
其中,本发明通过降采样对点云模型进行简化,具体可以采用体素网格降采样方法,体素大小dv值越大,简化效果越明显,即模型点数越少。
[0065]
进一步的,对简化后的模型点云中所有点计算其法向量;其中,本实施例优选采用pca算法进行计算。
[0066]
采用s5预处理计算模型的平面点云子集和非平面点云子集,平面子集用于计算区域点集、面积以及平面参数,辅助位姿正确性验证,非平面点云子集用来进行特征计算,建立模型特征库
[0067]
s3,对简化后的点云模型进行特征计算,得到模型特征库;
[0068]
具体的,s3还包括以下步骤:
[0069]
s3-1,在降采样后的点云模型中随机选取两个点组成点对;
[0070]
设降采样后的点云模型共有m个点,则在点云模型中随机选取两个点组成的点对数量为m
×
m个,其中相同的两个点的ppf特征没有实际意义,因此不需要进行特征计算;但本实施例中为了方便并行化,提高计算速度,仍会留出其所占内存。
[0071]
s3-2,计算各点对的特征加权值;
[0072]
如图1所示,设两个点p1、p2组成点对(p1,p2),其中随机选取的两个点坐标分别为p1=(x1,y1,z1),p2=(x2,y2,z2),特征通过采用点云局部特征描述子ppf(point pair feature,点对特征)特征计算得到,点对(p1,p2)的ppf特征f(p1,p2)计算式如下:
[0073][0074]
其中,和分别为点p1、p2对应的法向量,且
表示向量和向量之间的夹角,表示向量和向量之间的夹角,表示向量和向量之间的法向量的夹角,表示p1和p2两点之间的距离,
[0075]
由ppf特征计算式可以看出,两个点之间的ppf特征由两个点之间的距离及三个向量夹角组成。
[0076]
本发明中提出特征加权值,由于对于平面上任意两点,其3个向量夹角近似,但是由于距离不同,会得到不同的误匹配结果;对于两个距离很近的点,向量夹角偏差不大,也会得到错误的匹配结果;同样两个距离很近的点,但是法向夹角偏差大,具有代表性,仍较大概率会得到正确的结果。因此,本发明基于ppf特征提出改进方案,增加ppf特征约束加权因子,为每个点对特征计算一个加权因子,辅助进行特征匹配判定。该方式在场景点云特征计算与匹配中也会用到。
[0077]
具体的,本发明中的点对特征加权值是为每个点对特征赋予一个匹配置信度,用来进行辅助配准判定。点对特征加权值fw的计算式如下:
[0078][0079]
其中,ω0、ω1、ω2、ω3表示式中每项的权重值,且满足ω0+ω1+ω2+ω3=1;
[0080]dm
表示模型的两点之间的最大尺寸;
[0081]
点对特征加权值fw的取值范围是[0,1],且计算得到的fw值越大,表示该点对的特征描述可信度越高,反之越低。
[0082]
s3-3,创建点对特征列表listf、点对特征加权值列表listw和hash表。
[0083]
具体的,点对特征列表listf的长度为m
×
m,用于存储每个点对计算得到的ppf特征;
[0084]
点对特征加权值列表listw的长度为m
×
m,存储每个点对计算的特征置信度,与listf列表一一对应;
[0085]
hash表(哈希表)类似字典,能够通过键值查找到对应的信息。本发明构建hash表的长度为m
×
m,将每个点对的ppf特征通过计算转换成一个唯一的值,该值称作键值,对应信息存储点对在原点云中的索引。
[0086]
hash值通过点对特征值离散化生成,点对特征离散化的方式如下:
[0087]
计算离散特征向量h(p1,p2):
[0088][0089]
其中,δ
dist
和δ
angle
为第一步长参数和第二步长参数,δ
dist
表示距离步长,取值范围为(0,dm),dm表示模型的最大尺寸;δ
angle
表示角度步长,取值范围(0,180
°
)。将特征值除以步长并进行取整,即可得到离散特征向量h。
[0090]
距离步长的取值与点云模型的大小有关,角度步长通常设置为12
°
,实际取值可以由本领域技术人员根据点云模型的情况进行选取,选取标准之一为使计算式中的
四个值在同一个量级,大小尽可能接近。
[0091]
根据离散特征向量h计算点对(p1,p2)的hash键值,hash表对应键值存储的信息为点对(p1,p2)在点云中的索引(i,j),即点对(p1,p2)是点云中第i个点和第j个点。
[0092]
完整的模型特征库包括:点对特征加权值列表listw和hash表。模型特征库用于将对象和对象模型对齐,从而得到对象的空间位置,该过程也称为点云配准。
[0093]
通过s3得到点对特征加权值列表listw和hash表,其中,hash表存储信息为点对在点云中的索引,信息则可以通过该点对特征生成的唯一hash键值查找到,该过程也称为模型特征库的创建,模板特征库包括点对特征加权值列表listw和hash表,且上述操作均为离线进行,从而免去在线特征建库的巨大耗时,且对于不同的对象,只需要修改导入模型、重新构建特征库,即可灵活实现不同对象的配准。
[0094]
点对特征可以通过量化转换后生成一个唯一值的值,将该唯一的值作为hash表的键值,将点对信息存储在相应位置的hash表中,可以通过键值找到对应的点对信息,因此创建模板特征库能够提前将模板中所有可能的点对特征都计算完成,在后续和模板匹配时,可以在场景中快速的找到相似的特征。
[0095]
s4,获取场景的点云数据并对其进行预处理;
[0096]
通过三维激光传感器等可以获得被测对象表面的三维点云数据。将被测对象放在传感器可以正常工作的区域,传感器采集到被测对象表面的点云数据,该数据成为场景点云。优选的,可以将多个待测对象同时进行三维点云数据的获取。
[0097]
本发明中采集的场景点云为有序的,即点云像图像一样,有固定的行列大小。场景点云中除了包含被测对象,还包含一些背景、噪声等,背景和噪声对于确定被测对象的位置是无用的,也会影响配准效果,因此需要对场景点云进行预处理。
[0098]
由于本发明中的模型具备占比较大平面的特征,为了保证输出位姿的准备性,通过预处理提取模型主平面信息,将场景点云感兴趣区域分为若干平面区域和非平面区域,即将各点分为平面子集和非平面子集。
[0099]
预处理包括去除孤立噪声点、基于图像处理的方式获取感兴趣区域、提取平面及感兴趣区域和对非平面场景点云子集精简处理。
[0100]
具体的,对点云数据预处理还包括以下步骤:
[0101]
s4-1,去除背景点和孤立噪声点,该过程可以采用半径滤波器实现,去除背景点和孤立噪声点后得到场景点云中被测对象表面的点云数据;
[0102]
s4-2,基于图像处理的方式获取点云数据中的感兴趣区域;
[0103]
由于采用图像处理的思想获取感兴趣区域实现相较于3d点云处理更为简单迅速,本发明采用基于图像处理的方式获取感兴趣区域,s5-2还包括以下步骤:
[0104]
将去除孤立噪声点后的点云数据按照z值范围映射成灰度图像,其中无效点的灰度值为0;
[0105]
采用图像边缘检测方法提取图像中的边缘,然后粗化边缘;其中图像边缘检测可以采用基于梯度算子的边缘检测方法。
[0106]
将粗化后的边缘点的像素灰度值置为0,非边缘点像素灰度值置1,以此实现二值化,执行图像开运算,去除孤立点及毛刺,这样场景中的图像会被分离成一块块独立的区
域,接着进行连通域提取,删除小的连通域;
[0107]
获取每个连通域的面积、最小外接矩形框等信息,而各个连通域的外接矩形组成一个感兴趣区域列表,并记作roi列表。
[0108]
s4-3,将点云数据中的点集划分为平面子集和非平面子集;
[0109]
还包括计算列表中每个roi在点云数据中包含的点集,具体如下:
[0110]
计算当前roi和列表中其他roi的相交区域,记作屏蔽roi,获取roi内点集时,排除屏蔽roi内的点。
[0111]
得到roi内的点集后,作如下处理:利用子集中所有数据计算鲁棒平面估计,计算子集平面度大小,由此判断当前子集是否组成平面形状,若是,记录平面参数、区域面积,反之将该子集归并到非平面点子集中。
[0112]
上述操作将点云数据分为若干平面子集和非平面子集。
[0113]
s4-4,对非平面场景点云子集精简处理,得到精简后的非平面场景点云子集。
[0114]
非平面子集用于进行后续的在线特征计算和配准。非平面点云子集为去除背景、噪声以及平面后的点集,此时的点集是无序的,其点云分辨率和原始场景点云相同,为了和模型点云分辨率一致,即相同点云分辨率下,所计算的点云法向量更一致,需要对非平面场景点云子集精简处理,s4-4还包括:采用和模型相同的体素大小进行体素网格降采样,保留降采样后的点集,记作sn,有n个点。
[0115]
其中,平面子集用于计算区域点集、面积以及平面参数,辅助位姿正确性验证,提出模型主平面参数变换后在平面区域参数中查找相似结果排除假阳性位姿方法,保证输出位姿的准确性;非平面子集用于在线点云配准。
[0116]
s5,通过特征匹配获取场景中的各对象位姿,完成一次场景点云对象配准。
[0117]
具体的,s5还包括以下步骤:
[0118]
s5-1,计算非平面场景点云集中各点的法向量;
[0119]
对s4得到的降采样后的非平面场景点云子集sn中的各点计算法向量,法向量计算采用pca(主成分分析)算法。
[0120]
s5-2,均匀从非平面场景点云子集sn中选取特征匹配的参考点,记作sr,且{sr∈sn|r=0,1,2
…
,nr};其中,本实施例中选取非平面场景点云集sn中5%-20%数量的点作为参考点。
[0121]
s5-3,选取一个参考点sr,且sr∈sr,选取非平面场景点云子集sn中的一点si,且si∈sn,si和sr组成点对(sr,si),根据离线建模部分中描述的点云特征计算方法,计算点对(sr,si)的ppf特征f
ri
、特征权重以及hash索引值,将得到的特征和模型特征库进行比对,从而寻找模型中的对应点对;
[0122]
s5-4,设置阈值w
th
并判定点对特征是否为置信度较高点对;
[0123]
具体的,若点对(sr,si)的特征权重值则进一步在模型特征库中搜索和点对(sr,si)特征hash值相同的点对,若存在这样的点对,则从hash表中获取hash值对应的信息,即点对的索引,记作(mr,mi),若点对(mr,mi)的特征权重则进一步计算点对(sr,si)和点对(mr,mi)之间的变换关系,得到两者之间变换关系并通过的局部坐标(m,α)表示。
[0124]
置信度值的取值范围为[0,1],且置信度值越大说明点对特征质量越好,因此阈值w
th
的取值范围为[0,1],具体可以由本领域技术人员根据实际需求进行设置,如设置为0.8。
[0125]
计算两个点对(sr,si)和(mr,mi)之间变换关系还包括:如图2所示,创建一个固定坐标系(o-xyz),将mr,mi,及中间的连线视作一个整体并记作u1,将sr,si,及中间的连线视作一个整体并记作u2。将u1平移到mr点和坐标系o-xyz的原点重合,然后旋转u1至的法向量和坐标系x轴重合,同理,将u2作与u1相同的变换,将变换后的u1和u2记作u1’,u2’。此时u1’和u2’之间只有si和mi没有对齐,两者之间相差一个绕x轴的旋转角α,总结两者之间的变换可表示为:
[0126][0127]
其中,表示将u2’反变换到u2,即u2到u2’的相反操作,tm→g表示将u1变换到u1’,r
x
(α)表示si沿着x轴旋转α角度与mi对齐。
[0128]
因此,上式中只有r
x
(α)是未知量,即待求量,通过上式可以求解出旋转角α的值,利用局部坐标(mr,α)可以记录点对(sr,si)和点对(mr,mi)之间的变换关系。
[0129]
s5-5,对场景点云集sn中的其余点分别执行s5-3至s5-4,得到k组局部坐标(mr,α),并建立投票矩阵m
×nα
,m表示模型点数,n
α
表示旋转角的离散数量,且
[0130]
其中,执行s6-4至s6-5的点需要满足s6-5中的阈值条件,因此k≤(n-1)。
[0131]
本发明采用投票累加的方式将所得的多组局部坐标映射到投票矩阵中,该过程中点对选取和计算局部坐标过程独立,使用gpu并行实现,保证了计算速度。
[0132]
s5-6,选取投票矩阵中得票峰值对应的局部坐标作为最优局部坐标,根据最优局部坐标计算得到全局刚性变换矩阵,即一个候选位姿;
[0133]
s5-7,重复执行s5-3至s5-6,计算所有参考点{sr∈sn|r=0,1,2
…
,nr}的最优局部坐标和候选位姿,得到所有候选位姿列表pose
list
,长度为nr,同时记录各个位姿的得票列表vote
num
,长度为nr,;
[0134]
s5-8,采用位姿聚类方法获取n
pose
个子类位姿;
[0135]
由于一个场景下,被测对象和模型之间的位置关系是固定的,使得同一被测对象表面的不同参考点得到的位姿是相似的,但是和真实位姿的偏差不同,即候选位姿列表pose
list
中属于同一被测对象的位姿是相近的,因此,聚类将候选位姿分为多个子类{clusteri|i=1,2,3
…
},子类最多数量为nr,即一个位姿划分入一个子类,每个子类包含多个候选位姿,计算每个子类内候选位姿的得票和,按照得票从高到低排序。
[0136]
本发明认为一个子类对应一个被测对象,因此取得票分数较高的n
pose
个子类,若场景中包含多个对象,则n
pose
等于场景中待测对象的数量。
[0137]
s5-9,对s5-8输出的n
pose
个子类内的每个位姿进行验证,去除假阳性位姿结果;
[0138]
具体的,为了避免误匹配,对s5-8输出的每个位姿进行验证,该过程还包括:
[0139]
s5-9-1,将模型的主平面按照计算得到的位姿执行变换,并计算变换后的主平面参数以及模型在场景坐标系的xoy投影平面下的可见面积;
[0140]
其中,理想情况下,变换后模型和场景中的待查找对象大致重合;模型在场景坐标
系的xoy投影平面下的可见面积即俯视角度下模型可见部分的面积。
[0141]
s5-9-2,对比s4场景点云数据预处理中的提取平面及感兴趣区域部分所提取到的平面参数和区域面积,查找是否存在和s5-9-1中主平面参数、区域面积相近的结果,具体为主平面差异小于预设阈值且面积差异小于预设阈值则判定为相近,若有相近结果,则该位姿判定为输出位姿,反之判定为假阳性位姿丢弃。
[0142]
s5-10,输出s5-9中各个子类剩余的所有位姿,对于n
pose
个子类中的每个子类,计算其类中剩余位姿的平均,所得平均位姿即为当前类的位姿输出。每个输出位姿代表场景中的一个对象相对于模型的位置关系,至此完成一次场景点云对象配准。
[0143]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0144]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0145]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0146]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0147]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:1.一种平面占比较大的三维对象的配准方法,其特征在于,包括以下步骤:s1,获取被测对象的点云模型;s2,对点云模型进行简化,并计算点云模型中所有点的法向量;s3,对简化后的点云模型进行特征计算,得到模型特征库;s4,获取场景的点云数据并对其进行预处理;s5,通过特征匹配获取场景中的各对象位姿,完成一次场景点云对象配准。2.如权利要求1所述的平面占比较大的三维对象的配准方法,其特征在于,所述s2中,通过降采样对点云模型进行简化,对简化后的点云模型通过pca算法计算其各点的法向量。3.如权利要求1所述的平面占比较大的三维对象的配准方法,其特征在于,所述s3还包括以下步骤:s3-1,在降采样后的点云模型中随机选取两个点组成点对;s3-2,计算各点对的特征加权值;s3-3,创建点对特征列表list
f
、点对特征加权值列表list
w
和hash表,构成模型特征库。4.如权利要求3所述的平面占比较大的三维对象的配准方法,其特征在于,所述s3-2还包括:对于点对(p1,p2),其特征加权值f
w
的计算式如下:其中,和分别为点p1、p2对应的法向量,ω0、ω1、ω2、ω3表示式中每项的权重值,且满足ω0+ω1+ω2+ω3=1,d
m
表示模型的两点之间的最大尺寸。5.如权利要求3所述的平面占比较大的三维对象的配准方法,其特征在于,所述s3-3中:点对特征列表list
f
的长度为m
×
m,用于存储每个点对计算得到的ppf特征;点对特征加权值列表list
w
的长度为m
×
m,存储每个点对计算的特征置信度,与list
f
列表一一对应;hash表的长度为m
×
m,通过将点对特征值离散化,将每个点对的ppf特征通过计算转换成一个唯一键值,对应信息存储点对在原点云中的索引,hash表包括各点对索引关系。6.如权利要求1所述的平面占比较大的三维对象的配准方法,其特征在于,所述s4还包括以下步骤,s4-1,去除背景点和孤立噪声点,去除后场景点云中剩余的为被测对象表面的点云数据;s4-2,基于图像处理的方式获取点云数据中的感兴趣区域;s4-3,将点云数据中的点集划分为平面子集和非平面子集;s4-4,对非平面场景点云子集精简处理,得到精简后的非平面场景点云子集。7.如权利要求1所述的平面占比较大的三维对象的配准方法,其特征在于,所述s5还包括以下步骤,s5-1,计算非平面场景点云集s
n
中各点的法向量;s5-2,均匀从非平面场景点云子集s
n
中选取特征匹配的参考点,记作s
r
,且{s
r
∈s
n
|r=
0,1,2
…
,n
r
};s5-3,选取一个参考点s
r
,且s
r
∈s
r
,选取非平面场景点云子集s
n
中的一点s
i
,且s
i
∈s
n
,s
i
和s
r
组成点对(s
r
,s
i
),根据离线建模部分中描述的点云特征计算方法,计算点对(s
r
,s
i
)的ppf特征f
ri
、特征权重f
wri
以及hash索引值,s5-4,设置阈值w
th
并判定点对特征是否为置信度较高点对;s5-5,对场景点云集s
n
中的其余点分别执行s5-3至s5-4,得到k组局部坐标(m
r
,α),并建立投票矩阵m
×
n
α
,m表示模型点数,n
α
表示旋转角的离散数量,且s5-6,选取投票矩阵中得票峰值对应的局部坐标(m
r
′
,α
′
)作为最优局部坐标,并计算得到全局刚性变换矩阵,即一个候选位姿;s5-7,重复执行s5-3至s5-6,计算所有参考点{s
r
∈s
n
|r=0,1,2
…
,n
r
}的最优局部坐标和候选位姿,得到所有候选位姿列表pose
list
,长度为n
r
,同时记录各个位姿的得票列表vote
num
,长度为n
r
,;s5-8,采用位姿聚类方法获取n
pose
个子类位姿;s5-9,对s5-8输出的n
pose
个子类内的每个位姿进行验证,去除假阳性位姿结果;s5-10,输出s5-9中各个子类剩余的所有位姿,对于n
pose
个子类中的每个子类,计算其类中剩余位姿的平均,所得平均位姿即为当前类的位姿输出,每个输出位姿代表场景中的一个对象相对于模型的位置关系,至此完成一次场景点云对象配准。8.如权利要求7所述的平面占比较大的三维对象的配准方法,其特征在于,所述s5-4还包括:若点对(s
r
,s
i
)的特征权重值则进一步在模型特征库中搜索和点对(s
r
,s
i
)特征hash值相同的点对;若模型特征库存在与点对(s
r
,s
i
)特征hash值相同的点对,,则从hash表中获取hash值对应的信息,即点对的索引,记作(m
r
,m
i
);若点对(m
r
,m
i
)的特征权重则进一步计算点对(s
r
,s
i
)和点对(m
r
,m
i
)之间的变换关系,得到两者之间变换关系并通过的局部坐标(m,α)表示。9.如权利要求8所述的平面占比较大的三维对象的配准方法,其特征在于,计算两个点对(s
r
,s
i
)和(m
r
,m
i
)之间变换关系还包括:创建一个固定坐标系(o-xyz),将m
r
,m
i
,及中间的连线视作一个整体并记作u1,将s
r
,s
i
,及中间的连线视作一个整体并记作u2,将u1平移到m
r
点和坐标系o-xyz的原点重合,然后旋转u1至的法向量和坐标系x轴重合,同理,将u2作与u1相同的变换,将变换后的u1和u2记作u1’,u2’,此时u1’和u2’之间只有s
i
和m
i
没有对齐,两者之间相差一个绕x轴的旋转角α,两者之间的变换可表示为:其中,表示将u2’反变换到u2,即u2到u2’的相反操作,t
m
→
g
表示将u1变换到u1’,r
x
(α)表示s
i
沿着x轴旋转α角度与m
i
对齐;和t
m
→
g
均为已知量,通过上式可以求解出旋转角α的值,利用局部坐标(m
r
,α)可以表
示点对(s
r
,s
i
)和点对(m
r
,m
i
)之间的变换关系。10.如权利要求7所述的平面占比较大的三维对象的配准方法,其特征在于,所述s5-8还包括以下步骤:聚类将候选位姿分为多个子类,每个子类内各个位姿具有相近的平移和旋转,每个子类内位姿得票的总和作为得票分数,取得票分数较高的n
pose
个子类,并计算每个子类类内位姿平均作为对应子类的位姿。
技术总结本发明公开了一种平面占比较大的三维对象的配准方法,该方法包括以下步骤:S1,获取被测对象的点云模型;S2,对点云模型进行简化,并计算点云模型中所有点的法向量;S3,对点云模型进行特征计算;S4,获取场景的点云数据并进行有序化;S5,对获取到的场景点云数据进行预处理;S6,通过特征匹配获取场景中的各对象位姿,完成一次场景点云对象配准。本发明能够从复杂场景中的快速精确定位出单个可抓取对象,有效克服复杂场景中包含大量来自背景或被测对象平面点的情况,从而实现精确的点云配准,使得定位结果更加稳定,适用场景更广泛。适用场景更广泛。适用场景更广泛。
技术研发人员:田青华 周才健 周柔刚 许允迪 王班 盛锦华
受保护的技术使用者:嘉兴逸君辰科技有限公司
技术研发日:2022.07.08
技术公布日:2022/11/1