本发明涉及图像数据处理技术领域,具体涉及一种3D点云定位及配准方法、设备和介质。
在工业检测中,精确定位技术是非常重要的,通常采用点云配准实现精确定位。点云配准是指将多个不同时间或不同传感器采集的点云数据进行空间位置、姿态等方面的匹配,以实现多个视角或时间点下的点云数据融合,通过对点云数据的配准,实现工件在三维空间中的精确定位,从而为后续加工、检测等操作提供更精确的基础数据支撑。
在制造车间中,工作人员需要对零部件进行检测,以确保产品质量的稳定和可靠。通过点云精确定位技术,可以获得工件的精确位置信息,从而进行高效可靠的检测;在精密的测量任务中,如3D打印、数控加工、工业扫描等,需要精确地检测和定位工件。通过点云精确定位技术,可以快速得到工件的三维模型,并恢复与现实工件尺寸有关的精度,从而能够进行高精度的测量和制造。
现有的点云配准技术主要包括刚体变换、ICP算法、特征匹配算法以及三角网格配准。
刚体变换:刚体变换通过对点云进行旋转、平移、缩放等变换,将两个点云在同一坐标系下重合。优点是运行速度快、简单,但缺点是只能处理刚性变换,不适用于非刚性变换。
ICP算法:迭代近点算法是目前常用的点云配准算法,通过迭代计算点云之间的小平方误差,来得到两个点云的刚体变换。ICP算法适用于非常规形状的点云匹配,但对于大量噪声或遮挡等问题,会导致匹配失败。
特征匹配算法:特征匹配算法通过提取点云中的特征点,并在两个点云之间进行特征点匹配,从而估计刚体变换矩阵。常用的特征包括点法向量、曲率、表面特征、直线、平面等。这种方法对于非刚性变换非常有效,但在点云数据量大时,特征提取和匹配时间可能较长。
三角网格配准:将点云转换为三角网格模型,再进行配准。在三角网格配准中,主要采用ICP算法及其变种算法,包括ICP+MLS、ICP+ESF等。这种方法具有高精度,适用于各种形状的点云配准,但转换耗时长,对计算资源要求较高。
本发明所要解决的技术问题是对3D点云处理计算量庞大,耗时长,配准精度低,目的在于提供一种3D点云定位及配准方法、设备和介质,通过直线对进行转移矩阵的构建,优化匹配效率,同时采用重叠度评价函数优化转移矩阵,提高转移重合的精度,提高配准成功的概率。
本发明 第 一 方面提供一种3D点云定位及配准方法,包括以下具体步骤:
S1、获取 第 一 图像点云数据,采用滚球法确定点云轮廓数据;
S2、采用欧式聚类对轮廓数据进行分割,统计分割部分的点云数,保留点云数大于设定阈值的轮廓数据分割部分;
S3、对保留的轮廓数据进行直线的拟合,将拟合后的直线进行直线配对得到直线对;
S4、根据配对得到直线对构建转移矩阵,采用重叠度评价函数优化转移矩阵,输出 优转移矩阵。
本发明通过获取 第 一 图像点云数据,采用滚球法确定点云轮廓数据;采用欧式聚类对轮廓数据进行分割,统计分割部分的点云数,保留点云数大于设定阈值的轮廓数据分割部分;对保留的轮廓数据进行直线的拟合,将拟合后的直线进行直线配对得到直线对;根据配对得到直线对构建转移矩阵,采用重叠度评价函数优化转移矩阵,输出 优转移矩阵。通过直线对进行转移矩阵的构建,优化匹配效率,同时采用重叠度评价函数优化转移矩阵,提高转移重合的精度,提高配准成功的概率。克服了现有技术中存在的对3D点云计算量庞大和特征点提取不够简洁清晰,对待配准对象和目标对象相似度要求高的缺陷。
进一步的,所述S1具体包括:
根据被测件点云数据,设定滚球初始参数值,确定滚球半径r和圆心p;
获取滚球滚动轨迹,结合滚球半径和圆心,确定点云轮廓数据。
进一步的,所述确定点云轮廓数据包括:
获取滚球滚动轨迹点集P,在点集P中任选一点p1;
获取过点p和点p1且半径为0.5r的圆,得到圆心p2和圆心p3;
计算点集P中不包括点p1以外所有点到p2和p3的距离,得到数组D;
获取数组D中数值大于r的点,确定为边界点,将边界点进行融合,得到点云轮廓数据。
进一步的,所述S2具体包括:
S21、在获取点云轮廓数据中选取种子点,采用KD-Tree进行邻域搜索,遍历获取邻域内距离种子点小于设定阈值的点云数据,将筛选的点云数据和种子点聚类于集合Q;
S22、在集合Q中重新选取种子点,重复步骤S22,直至集合Q中的元素的个数不再增加。
进一步的,所述对保留的轮廓数据进行直线的拟合具体包括:
S31、根据保留的轮廓数据,选取拟合样本数据集;
S32、在拟合样本数据集随机选取两点作为假象拟合连线为L,获取距离L小于阈值s的点;
S33、从剩余样本数据集中随机抽取两点,重复步骤S31和步骤S32,直至遍历距离L小于阈值s的点,输出拟合结果。
进一步的,所述将拟合后的直线进行直线配对得到直线对具体包括:
将所有直线进行两两配对,计算配对直线的位置参数;
获取第二图像点云数据中直线对的位置参数;
基于配对直线的位置参数和第二图像点云数据中直线对的位置参数,从配对直线中筛选出有效直线对。
进一步的,所述根据配对得到直线对构建转移矩阵具体包括:
构建有效直线对的集合A,构建第二图像直线对的集合B;
计算集合A和集合B的中心点,根据中心点将集合A和集合B重新中心化,生成集合A′和B′,计算性的集合A′和B′之间的协方差矩阵;
采用SVD基于获得协方差矩阵的U、S和V,计算点集A与B之间的旋转矩阵;
根据旋转矩阵、中心点Pa和Pb,确定转移向量;
根据旋转矩阵和转移向量确定转移矩阵。
进一步的,所述采用重叠度评价函数优化转移矩阵,输出优转移矩SVD阵具体包括:
S41、遍历集合A中的点云数据,记为i;
S42、在集合B中寻找和i相对应的点云数据距离小于阈值的点云数量;
S43、根据点云数量、 第 一 图像点云点数和第二图像点云点数确定重叠度;
S44、判断重叠度是否大于重叠度设定阈值,若否,更新转移矩阵,重复步骤S41-S43,直至重叠度是否小于重叠度设定阈值。
本发明第二方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现一种3D点云定位及配准方法。
本发明第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种3D点云定位及配准方法。
本发明与现有技术相比,具有如下的优点和有益效果:
1.通过直线对进行转移矩阵的构建,优化匹配效率,同时采用重叠度评价函数优化转移矩阵,提高转移重合的精度,提高配准成功的概率;
2.通过对筛选有效直线对设置的夹角阈值的改变,针对不同点云主体数据的特点,可以通过调节阈值得到相对来说少但又足够有代表性的直线对,提高准确性和计算速度;
3.可以通过调节直线对角度差和距离差阈值来对配对直线对的相似性做调节,当点云噪点过多,相似性下降时,放宽这两个阈值,可以得到更多的直线对对应关系,提高配准成功的概率;
4.通过重叠度的计算,采用在变换后的第二图像点云中的每一点的邻域内搜索,是否在第二图像点云中有近点,提高了重合的精度。
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本发明实施例中的定位检测方法;
图2为本发明实施例中的平移量小时的配准对比图;
图3为本发明实施例中的平移量大时的配准对比图;
图4为本发明实施例中的旋转时的配准对比图;
图5为本发明实施例中的旋转加不共面时的配准对比图;
图6为本发明实施例中的平移时的配准对比图;
图7为本发明实施例中的旋转时的配准对比图;
图8为本发明实施例中的旋转加平移加不共面时的配准对比图。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
作为一种可能的实施例,如图1所示,本实施例 第 一 方面提供一种3D点云定位及配准方法,包括以下具体步骤:
S1、获取 第 一 图像点云数据,采用滚球法确定点云轮廓数据;
S2、采用欧式聚类对轮廓数据进行分割,统计分割部分的点云数,保留点云数大于设定阈值的轮廓数据分割部分;
S3、对保留的轮廓数据进行直线的拟合,将拟合后的直线进行直线配对得到直线对;
S4、根据配对得到直线对构建转移矩阵,采用重叠度评价函数优化转移矩阵,输出 优转移矩阵。
本实施例通过直线对进行转移矩阵的构建,优化匹配效率,同时采用重叠度评价函数优化转移矩阵,提高转移重合的精度,提高配准成功的概率。克服了现有技术中存在的对3D点云计算量庞大和特征点提取不够简洁清晰,对待配准对象和目标对象相似度要求高的缺陷。
具体的,步骤S1中,采用滚球法确定点云轮廓数据是一种快速获得边界的方法,比按照根据相邻点法向量夹角筛选边界的方法计算速度更快,提取到的是主要轮廓,而我们关心的也正是大轮廓特征,而不需要非常细节的轮廓特征;
步骤S2中,通过对各种轮廓设定点数阈值后再聚类,在符合要求的轮廓类中进行直线提取,有去噪的作用,筛选出真正反应轮廓信息的点做直线拟合;
步骤S3中,通过计算直线对的夹角,作为下一步直线对配对的依据;
步骤S4中,通过只需要用直线对中的三个点(直线对的中心点p1,中心点在两个直线上的投影点沿着各自直线的方向向量滑动一个单位长度得到点p2,p3),通过SVD(Singular Value Decomposition)奇异值分解的方法计算转移矩阵,比传统的用点云中所有的点先一一寻找对应点,再用所有点计算转移矩阵的方法更快,且克服了传统方法因点云位置关系相差大,而无法得到正确的点对应关系,从而计算不出能够配准的转移矩阵,本方法无论是在相差大还是小的情况下都适用。
S1具体包括:根据被测件点云数据,设定滚球初始参数值,确定滚球半径r和圆心p;获取滚球滚动轨迹,结合滚球半径和圆心,确定点云轮廓数据。提取轮廓用到的是alphashapes算法,具有简单快速性,同时提取内外所有轮廓的优点。原理如下:对于一个点云,若一个半径为α的圆,绕其进行滚动。若滚动圆半径α足够小时,则点云中每一点均为边界点;若适当增大到一定程度,其只在边界点上进行滚动,其滚动的轨迹为点云边界。
确定点云轮廓数据包括:
获取滚球滚动轨迹点集P,在点集P中任选一点p1;
获取过点p和点p1且半径为0.5r的圆,得到圆心p2和圆心p3;
计算点集P中不包括点p1以外所有点到p2和p3的距离,得到数组D;
获取数组D中数值大于r的点,确定为边界点,将边界点进行融合,得到点云轮廓数据。
提取到的点云轮廓数据中,有大轮廓的也有小轮廓的,从大轮廓点云中提取直线,对整体点云的姿态具有更好的代表性。区分是大轮廓还是小轮廓的方法是:采用欧式聚类的方法先对空间中连成一体的各个轮廓做彼此分割,统计每一个分割部分中点云的点数,对点数小的类进行去除。具体包括:
在获取点云轮廓数据中选取种子点,采用KD-Tree进行邻域搜索,遍历获取邻域内距离种子点小于设定阈值的点云数据,将筛选的点云数据和种子点聚类于集合Q;
在集合Q中重新选取种子点,重复上述步骤,直至集合Q中的元素的个数不再增加。
对保留的轮廓数据进行直线的拟合具体包括:
根据保留的轮廓数据,选取拟合样本数据集;
在拟合样本数据集随机选取两点作为假象拟合连线为L,获取距离L小于阈值s的点;
从剩余样本数据集中随机抽取两点,重复上述步骤,直至遍历距离L小于阈值s的点,输出拟合结果。
将拟合后的直线进行直线配对得到直线对具体包括:
将所有直线进行两两配对,计算配对直线的位置参数;
获取第二图像点云数据中直线对的位置参数;
基于配对直线的位置参数和第二图像点云数据中直线对的位置参数,从配对直线中筛选出有效直线对;
计算步骤包括:
获取两条异面直线m和直线n,获取直线m上一点M及其方向向量
获取直线n上一点N及其方向向量
确定两条异面直线m和直线n的距离d和夹角θ。
根据配对得到直线对构建转移矩阵具体包括:
构建有效直线对的集合A,构建第二图像直线对的集合B;
计算集合A和集合B的中心点Pa和Pb:
根据中心点将集合A和集合B重新中心化,生成集合A′和B′,计算性的集合A′和B′之间的协方差矩阵;
采用SVD基于获得协方差矩阵的U、S和V,计算点集A与B之间的旋转矩阵R;
根据旋转矩阵R中心点Pa和Pb,确定转移向量t,t=Pb-R×Pa;
根据旋转矩阵R和转移向量t确定转移矩阵。
采用重叠度评价函数优化转移矩阵,输出优转移矩阵具体包括:
遍历集合A中的点云数据,记为i;
在集合B中寻找和i相对应的点云数据距离小于阈值的点云数量;
根据点云数量、第 一 图像点云点数和第二图像点云点数确定重叠度;
判断重叠度是否大于重叠度设定阈值,若否,更新转移矩阵,重复上述步骤,直至重叠度是否小于重叠度设定阈值。
在点云直线集里面筛选有效直线对所给的夹角阈值可以预先设置为10°,这代表着从直线集中得到有效直线对的夹角为10°~90°。具体的,针对不同点云主体数据的特点,可以通过调节阈值得到相对来说少但又足够有代表性的直线对,提高准确性和计算速度。夹角阈值的取值范围是0°~90°。
寻找不同点云中的直线对的对应关系时,可以通过调节直线对角度差和距离差阈值来对配对直线对的相似性做调节,当点云噪点过多,相似性下降时,放宽这两个阈值,可以得到更多的直线对对应关系,提高配准成功的概率。
对于重叠度的计算,采用在变换后的source中的每一点的邻域r内搜索,是否在target中有近点。这个半径参数r调节了源点云变换后和目标点云相比,重合的精度,越小则输出的配准结果约精确。
本实施例第二方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现一种3D点云定位及配准方法。
本实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种3D点云定位及配准方法。
作为一种可能的实施例,如图2-图5所示,提供了不同配置情况的配置对比图,图2-图5中左边均为配准前 第 一 图像和第二图像的位置关系,右边是 第 一 图像和第二图像配准后的位置关系。其中, 第 一 图像为被测件的位置图像,第二图像为被测件定位配准后的目标位置图像。
实验一共检验了四种位置关系下的配准效果, 第 一 图像和第二图像的点云的初始位置关系:①平移量小,②平移量大,③旋转,④旋转加不共面,手机中框不是平放于实验台时会出现不共面情况,比如:扫描时手机中框和平台之间有异物。
四种情况下,点云的重叠度均达到要求,输出了有效的转移矩阵。