一种工件三维点云数据平滑滤波方法与流程

文档序号:11775782阅读:2696来源:国知局
一种工件三维点云数据平滑滤波方法与流程
本发明涉及一种工件三维点云数据处理的方法,具体说是一种工件三维点云数据平滑滤波方法。可以结合机器人应用于工业领域,获取工件的相关信息,属于工业机器人视觉应用领域。
背景技术
:视觉系统配合机器人,成为“手眼系统”。在现代智能工业应用中,利用“手眼系统”代替产线工人完成生产线流水作业、产线装配,或者利用视觉系统完成物料的测量、质量检查等繁琐工作,提高机器人对环境的感知与应变能力,利用机器人的视觉控制,不需要预先对工业机器人的运动轨迹进行示教或离线编程,可节约大量的编程时间,提高生产效率和加工质量,在一定程度上将人工从生产劳动中解放出来。立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。立体视觉的研究具有重要的应用价值,其应用包括移动机器人的自主导航系统,航空及遥感测量,工业自动化系统等。基于传感器获取三维信息的方法有很多种,主要分为主动式和被动式,工业领域一般采用主动式三维方式获取深度信息,即通过打结构光或者光编码等方式获取立体深度信息,此立体深度信息亦成为三维点云信息。获取三维点云数据之后,需要对点云数据进行滤波处理。目前的点云滤波算法主要有:lidar数据形态学滤波算法、基于坡度变化的滤波算法等。lidar数据形态学滤波算法主要问题是坡度阈值的人工选取和细节地形的方块效应,如果阈值设定太大,可能平滑掉噪声,同时将工件的细节平滑处理,算法的普遍适用性很差。基于坡度变化的滤波算法原理是根据工件轮廓确定最优的滤波函数,虽然算法简单,但是需要提前知道工件的轮廓变化信息以及设定的窗口信息,算法适用性差。技术实现要素:本发明的目的在于,克服现有技术存在的缺陷,提供一种工件三维点云数据平滑滤波方法。本发明方法基于savitzky-golay滤波,消除原始数据的不光滑,提高点云处理数据的质量,能更真实反映出物体的本来面貌。本发明一种工件三维点云数据平滑滤波方法,包含以下步骤:步骤1:采集工件的点云数据基于工件的形状,选取一个视角,采集工件的三维轮廓点云数据。步骤2:将采集的工件点云数据按照点的三维坐标值获取对应的灰度图,并将点云投影到视平面上面。步骤3:得到投影的灰度图,并对灰度图进行二值化阈值处理,得到二值图。步骤4:对二值图进行开闭合运算。步骤5:用savitzky-golay滤波去除图像的噪声1)确定m和n的值。n表示领域内的点个数,m表示多项式的次数。n取值相同,m值越小,平滑效果越好,但是为了确保滤波后的点云和原点云差别不大,一般取m=3。m相同,n越大,细节丢失越大,因此通过曲率的相关关系确定m和n的值。(1)利用m次样条插值计算点云的曲率ci(i=1,2,...,n)以及曲率导数dci(i=1,2,...,n-1),n表示点云的总数。(2)令nmax=n/4,nmin=5;若满足(n/4)<5,则n=5,若点云数n小于5,则结束处理。(3)确定n的值;若某点的曲率值ci<q1,那么可以认为这点和其领域点在一条直线上,然后在其领域内寻找满足dci<q2的点,确定点后,如果n1>n2,则n=2n1+1;否则:n=2n2+1,若某点的曲率值ci>q1,则该点曲率变化dci在其领域内寻找满足或者的点,其中其中q,q1,q2为曲率分割阈值的经验值,如果n1>n2,则n=2n1+1;否者:n=2n2+1,确定n和m的值。n1表示曲率小于并接近q2的点个数,n2表示曲率值大于并接近q2的点个数。2)确定n和m的值之后,用savitzky-golay滤波器去除图像的噪声对任意点xi领域内的n个点用m阶多项式进行拟合,运用最小二乘则确定多项式的系数,多项式在xi处的值是对应点的光滑值gi;n要大于多项式的阶数m;由扫描数据xi拟合的m次多项式pi(x)表示为:其中x表示n个点云中除了点xi外的任意一点。假设对于任意xi都有xi+1-xi=δx,拟合多项式需要计算出(1-1)中的系数bk,使其达到最优,即:bk的系数的矩阵表达:其他参数用向量表示为:和y表示滤波值,yi,分别点i+n1、点i、点i+n2的滤波值。由式(1-3)和(1-4),式(1-2)可写为:式(1-5)可以表示为:atabk=aty(1-6)因为ata是正定矩阵,且存在逆矩阵,系数bk:bk=(ata)-1aty(1-7)步骤6:用分水岭分割识别法进行区域分割识别,将图像区域划分成几个部分,获取最大的区域,基于最大区域裁剪的彩色图,得到去噪后的彩色图。步骤7:根据彩色图中的点反推算点云数据中个点的三维坐标值,得到去噪后的点云。步骤8:判断点云数据中噪音情况,如果有,换视角,再次滤波,如果没有,输出结果,本发明相较于其它算法的优点:1.保持几何特征不变(算法滤波处理,采用拟合算法处理,去除图像中的噪声,保持工件的几何特征不变);2.精度和速度比其它算子高;(基于灰度图,获取铸件的点云数据,数据运算量减少,加快了数据的处理速度,采用拟合计算的方法,提供点云计算的精度。)3.适用性强(数据拟合计算,适用于不同的铸件,适应性强)。附图说明图1是savitzky-golay算法的流程图。图2是本发明工件三维点云数据平滑滤波方法程序框图。图3是工件样本灰度图。图4是savitzky-golay滤波前的效果图。图5是savitzky-golay滤波后的效果图。具体实施方式下面结合附图和实施例,对本发明作进一步详细说明。实施例,本发明以铁管铸件为工件,具体介绍本发明提出的工件三维点云数据平滑滤波方法,如图2所示,具体实施过程如下:步骤1:加载工件的点云数据,在vs2013软件平台上上利用vc读取铁管铸件的点云数据。步骤2:择一个投影方向,调用pcl(pointcloudlibrary)点云算法库,采用贪婪投影三角化方法,计算点云法向量,并将法向量和点云坐标放在一起,确定点云投影的角度和方向。步骤3:加载灰度图,如图3。在vs2013软件平台上加载读取灰度图,并对灰度图进行二值化处理。步骤4:用圆形结构对二值图像进行先膨胀后腐蚀的开合闭运算。以3为半径,创建圆形结构,利用圆形结构对二值图进行腐蚀处理,再利用圆形结构对腐蚀后的图像进行膨胀处理,得到处理后的二值图,确定需要处理的数据区域。步骤5:用savitzky-golay滤波去除图像的噪声。采用savitzky-golay滤波首先需要确认几个参数:多项式的拟合次数m,点xi领域内的总点数n,点xi两边的点数n1和n2。为了使计算的精度和速度达到较好的水平,m一般取2,3,4。本实施例m=3,n不能设置太大,否则影响处理数据的速度,但又不能影响拟合的精度,且n为基数,因此设置设n的值为47。基于各方向上矢量值一致性原则,令n1=n2。确定n和m的值之后,用savitzky-golay滤波器去除图像的噪声:对任意点xi领域内的n=47个点用m=3阶多项式进行拟合,运用最小二乘则确定多项式的系数,多项式在xi处的值是对应点的光滑值gi。由扫描数据xi拟合的m=3次多项式pi(x)可表示为:假设对于任意xi都有xi+1-xi=δx,拟合多项式需要计算出(1-1)中的系数bk,使其达到最优,即:bk的系数的矩阵表达:其他参数用向量表示为:和由式(1-3)和(1-4),式(1-2)可写为:式(1-5)可以表示为:atabk=aty(1-6)因为ata是正定矩阵,且存在逆矩阵,系数bk:bk=(ata)-1aty(1-7)图4滤波后的效果图为图5。步骤6:用分水岭分割识别法进行区域分割识别,将图像区域划分成几个部分,获取最大的区域,处理滤波后的图,获取最大有效区域。步骤7:根据灰度图中的点反推算点云数据中个点的三维坐标值,得到去噪后的点云。反求点云的三维坐标,获取去噪后的点云。步骤8:判定去噪是否合格。如果合格,输出点云,如果不合格,则再次选择一个可以清物体轮廓的角度,再次滤波。表1体现了本文算法与常用的阈值滤波算法在时间上的比较。表1点云数据量阈值滤波平均花费的时间(s)本文算法的平均花费的时间(s)19420124301990135081317980061250240190158033450387实验数据在cpu为3.0ghz,内存为4g,系统为win7的pc上获取。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1