一种基于CCD的零件尺寸测量方法
技术领域
本发明属于测量仪器制造及测量技术领域,具体指的是一种基于CCD的零件尺寸测量方法。
背景技术
近些年来,视觉化测量技术在国内外发展很快,已广泛应用于几何量的尺寸测量、航空遥感测量、精密复杂零件微尺寸测量、外观监测、光波干涉图、应力应变场状态分布图等和图像有关的技术领域。在理论研究方面,主要研究图像的边缘检测算法。长期以来,人们一直在研究各种能较好实现边缘检测的方法。1965年,L.G Roberts最早开始系统的研究边缘检测,提出了Roberts边缘检测算子,随后,在1970年左右,J.Prewitt,L Sobel就分别提出了自己的边缘检测算子:Prewitt算子和Sobel算子,这些经典的边缘检测算子计算比较简单,运算速度快。1980年,Marr和Hidreth提出了一种新的边缘检测理论和技术,即log算子。
1986年,John Canny提出了边缘检测的三条准则,即著名的Canny三准则,这使得寻找给定条件下最优算子的工作转化为一个泛函优化的问题,从而为寻找给定条件下最优滤波器开辟了新的也更有效的道路。
这些算子都能够很好地提取图像边缘,但是由于图像本身的复杂性、有效边缘与噪声均为高频信号导致的易混淆性、光照阴影和物体表面纹理,以及对于不同的使用者来说所关注的边缘信息也不相同等因素的影响,使得边缘检测仍然是一个现实的难题,寻找一种对噪声不敏感,定位精确,不漏检真边缘又不引入假边缘的检测方法,始终是人们努力的目标。
在实际应用方面,电荷耦合元件CCD(Charge-coupled Device),称为CCD图像传感器;CCD是一种半导体器件,能够把光学影像转化为数字信号。国外许多大学、科研机构和企业都把CCD与光学仪器相结合,研制了许多应用CCD实现光电转换的新型光电测量仪器。例如日本三丰公司研制的三坐标CNC图像测量机Quick Vision可利用其自身复杂的探测系统来测量形状复杂的工件,该系统采用直流伺服电机控制X轴、Y轴和Z轴的机械运动。美国OGP公司研制的图像测量系统,具有精密的XYZ工作台,采用变焦镜头,可实现对工件的自动调焦。美国Sevenocean公司生产的ECON-IV型影像式精密测绘仪可对物体的长宽及线圆弧角度以及形位公差等进行测量与标注,并可将图形输入到AutoCAD软件中进行编辑,其测量精度可达5um。
国内用CCD进行非接触测量始于80年代初,现在己经取得了一些进展和成果,例如:中科院长春光学精密机械与物理研究所的陈爱华等人针对涡轮叶片上的圆孔特点,开发了涡轮叶片孔距测量系统。上海交通大学自动检测技术研究所研制的ICMM系列图像式坐标测量机,该系统采用具有专利的“电子准星技术”和模式识别技术,实现对被测工件的自动调焦自动瞄准,测量精度达到了0.5um。上海科源电子科技有限公司研制的LHMS微孔测量仪,实现了对微孔直径最大直径,最小直径,平均直径,面积,圆度的精确测量和计算。深圳赛克数码科技开发有限公司研制的SK8850(I2C-2A)型精密零件显微测量系统集合了数个科技成果与计算机屏幕测量技术的数码投影测量系统,该系统具有高速精确急停功能(专利技术)采用了全触摸屏操作方式,点哪走哪自动测量。
通过的光学成像技术,然后结合计算机图像处理技术,得到较高的测量精度与测量结果,可以解决传统接触测量所不能解决的一些机械几何量测量问题,方便操作,人性化屏幕显示与操作界面,成为未来图像测量仪器的发展趋势。
但是现有光学成像测量技术存在一个共性的问题就是需要先验知识,即预先知道所测量或者是零件类型,而且机械结构复杂,价格十分昂贵,难于推广。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于CCD的零件尺寸测量方法。所述零件尺寸测量方法采用基于特征点识别技术,利用零件的特征点来分类图元,从整体零件出发,而无需零件的先验知识。本方法实现只需CCD与计算机,无需复杂的机械结构,成本较低。
为达到上述目的,本发明所采用的技术方案是:
一种基于CCD的零件尺寸测量方法,所述方法通过CCD采集待测零件数字图像,用计算机对采集到的数字图像信号进行处理,测量待测零件的尺寸;具体步骤如下:
步骤A,由CCD采集待测零件数字图像,通过高速数字接口传递给计算机实时处理;
步骤B,使用计算机实时图像处理方法测量待测零件尺寸;该图像处理方法中具体包括以下步骤:
步骤B-1,图像预处理:去除噪声和光学干扰;该步骤采用中值滤波进行图像预处理,该中值滤波为二维中值滤波,该二维中值滤波的输出为:g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,med是取中值操作;f(x,y),g(x,y)分别为原始图像和处理后图像,W为二维模板,维度为L,所述二维模板W为2*2区域或3*3区域;k,l是整数,取值为
(x,y)为像素点;
步骤B-2,边缘检测:检测出待测零件的边缘;包括如下过程:
步骤B-2-1,计算待测零件的边缘,差值计算待测零件的边缘,待测零件边缘输出公式为:g(x,y)=f(x,y)-h(x,y),其中f为零件图像,h为背景图像;
步骤B-2-2,对待测零件的边缘进行二值化处理,处理方法为:求取全局阈值T1,判断考察点(x,y)的灰度f(x,y):
如果考察点(x,y)的灰度f(x,y)>(1+a)*T1,则b(x,y)=255,表示黑色;
如果考察点(x,y)的灰度f(x,y)<(1-a)*T1,则令b(x,y)=0,表示白色;
其中,a为0与1之间的常数;b(x,y)为黑白度量函数;
步骤B-3,轮廓信息提取;该步骤具体过程如下:
步骤B-3-1,按从上到下,从左到右的顺序扫描图像,寻找没有标记跟踪结束记号的第一个具有最小行值和最小列值的边界起始点A0,定义一个扫描方向变量dir,该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,其初始化取值为:
1)对4连通区域取dir=3;
2)对8连通区域取dir=7;
步骤B-3-2,按逆时针方向搜索当前象素的3*3邻域,其起始搜索方向设定如下:
a.对4连通区域取(dir+3)mod4;
b.对8连通区域,若dir为奇数取(dir+7)mod8;若dir为偶数取
(dir+6)mod8;
在3*3邻域中搜索到的第一个与当前像素值相同的像素便为新的边界点An,同时更新变量dir为新的方向值;n为自然数,表示边界点序数;
步骤B-3-3,如果An等于第二个边界点A1且前一个边界点An-1等于第一个边界点A0,则停止搜索,结束跟踪,否则重复步骤B-3-2继续搜索;
步骤B-3-4,由边界点A0、A1、A2、……、AN-2构成的边界便为要跟踪的边缘点,存储边缘点坐标为(N-1)×2矩阵;N为自然数,表示所有边界点的总数;
步骤B-4,特征点检测与识别方法:
步骤B-4-1,利用DP(Douglas-Peucker)算法检测轮廓角点,其方法为:先从轮廓选择2个最远的点,然后将2个点连成一个线段,再查找轮廓上到线段距离最远的点,添加到逼近后的新轮廓;算法反复迭代,不断将最远的点添加到结果中,直到所有的点到多边形的最短距离小于parameter参数指定的精度;
步骤B-4-2,利用自适应k-曲率算法和映射高度函数PHF算法识别分割图元;在断点提取中,AKC函数用于提取拐角和光滑连接之间的特征点,PHF函数用于从圆弧中区分出直线段的特征点;其方法为:求得每个特征点处的AKC函数,通过AKC函数有无最大值判断该点为角点或平滑结点;利用PHF函数,判断特征点两侧的曲线是直线或曲线;
步骤B-4-3,利用最小二乘法拟合直线或者曲线,其方法为:
对分割出的图元,根据步骤B-4-2判断结果,拟合成线性直线或圆;得到最小二乘法拟合曲线的参数,包括曲率、斜率、长度和角度参数。
本发明的有益效果是:本发明提出了一种基于CCD的零件尺寸测量方法,所述零件尺寸测量方法采用基于特征点识别技术,利用零件的特征点来分类图元,从整体零件出发,而无需零件的先验知识,实现通用的零件测量;所述方法可以在满足精度要求的同时进行高速的测量。本发明算法简单,硬件实现只需CCD与计算机,无需复杂的机械结构,成本较低,有良好的应用前景。
附图说明
图1是本发明一种基于CCD的零件尺寸测量方法流程图。
具体实施方式
下面结合附图所示流程对本发明提出的一种基于CCD的零件尺寸测量方法进行详细说明:
一种基于CCD的零件尺寸测量方法,其具体实施步骤如下:
步骤1,图像采集
利用CCD摄像机拍摄零件表面的数字灰度图像,以Gige标准视频信号输出给千兆网卡(Gigabit Ethernet Network Card);千兆网卡将Gige Vision标准的数字图像信号传给计算机内存进行处理;计算机对接收或存储的数字图像信号进行处理分析。本发明的图像采集步骤中采用的图像采集装置包括CCD摄像机、光源、CCD摄像机控制器;本发明采用的光源为背面光源。所述光源由LED矩形盒与挡光金属罩组成,LED矩形盒内有若干个LED发光管,在挡光金属罩内壁贴有玻璃纸,金属罩可以排除外界干扰光线,玻璃纸可增加遮光罩表面的漫反射,使得零件图像区域光照均匀。所述CCD控制器包括分别用于控制CCD摄像机的光圈、变倍、聚焦的三个双向选择开关,即第一开关控制CCD摄像机的光圈参数,第二开关控制CCD摄像机的变倍参数、第三开关控制CCD摄像机的聚焦参数。
在CCD摄像机输出的目标图像信息输入到计算机处理系统的过程中,千兆网卡起到了至关重要的作用。由于Gige Vision是一种基于千兆以太网通信协议开发的相机接口标准。在工业机器视觉产品的应用中,GigE Vision允许用户在很长距离上用廉价的标准线缆进行快速图像传输。它还能在不同厂商的软、硬件之间轻松实现互操作。因此计算机不能直接识别图像信息,需采用千兆网卡(软件基本控制库)对摄像机摄取的图像信号进行数字转化,提供计算机处理所需的数字图像信号。从物理位置上看,千兆网卡插在微机扩展槽上,并和摄像机连接使用。
步骤2,图像预处理
在CCD摄像机获取零件图像时,由于受诸多噪声因素的影响,比如图像采集外部产生的噪声、系统内部产生的噪声、光电噪声、电磁信号干扰、光照变化、摄像机镜头的畸变等,使得经灰度变化后的图像质量参差不齐,采集过程中的噪声必然影响图像二值化、图像分割和测量。图像预处理阶段是去除噪声和光学干扰的重要步骤。本发明方法的图像预处理主要采用中值滤波算法。中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。本发明的方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,med是取中值操作;f(x,y),g(x,y)分别为原始图像和处理后图像,W为二维模板,维度为L,k,l是整数,取值为
所述二维模板W为2*2区域或3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。因为中值滤波方法不仅简单,易于实现,而且比小尺寸的线性平滑滤波器的模糊程度明显要低。
步骤3,边缘检测
经过CCD的图像采集和图像预处理后的图像,具有对比度高,噪声小的特点,这就为边缘检测提供了帮助。边缘检测的常用方法是利用一阶和二阶导数检测。有许多用于边缘检测的方法,他们大致可分为两类:基于搜索和基于零交叉。
基于搜索的边缘检测方法首先计算边缘强度,通常用一阶导数表示,例如梯度模,然后,用计算估计边缘的局部方向,通常采用梯度的方向,并利用此方向找到局部梯度模的最大值。
基于零交叉的方法找到由图像得到的二阶导数的零交叉点来定位边缘。通常用拉普拉斯算子或非线性微分方程的零交叉点。
已发表的边缘检测方法应用计算边界强度的度量,这与平滑滤波有本质的不同。正如许多边缘检测方法依赖于图像梯度的计算,他们用不同种类的滤波器来估计x-方向和y-方向的梯度。
但上述两类方法,实时性差,不适合用于高速的工业检测,因此本方法采用更为简单快速的差值算法。差值是通过计算这两幅图像所有对应像素点的差而得出的:g(x,y)=f(x,y)-h(x,y),其中f为零件图像,h为背景图像。减法处理最主要的作用就是增强两幅图像的差异。
因为在实际的工业系统中,拍摄背景图像十分容易。而实际的零件图像与背景图像的差异即为零件的信息,因此采用差值算法可以迅速定位零件,得出零件信息。然后再进行二值化处理:求取全局阈值T1,若考察点(x,y)的灰度f(x,y)远远大于或远远小于由T1确定的阈值,则将考察点二值化为白或黑,即:如果f(x,y)>(1+a)*T1,则b(x,y)=255;若f(x,y)<(1-a)*T1,则令b(x,y)=0,其中a为0与1之间的常数;这样可得到边缘清晰的二值图像。更为重要的是,二值化图像数据简单,使下一步的轮廓提取速度变快。
步骤4,轮廓信息提取
在识别图像中的目标时,需要对目标边缘作跟踪处理,也叫轮廓提取。顾名思义,轮廓跟踪就是通过顺序找出边缘点来跟踪边界。由于零件图像已经被二值化,则采用如下算法可完成基于4连通或8连通区域的轮廓跟踪。本发明的轮廓信息提取包括以下步骤:
步骤41:首先按从上到下,从左到右的顺序扫描图像,寻找没有标记跟踪结束记号的第一个边界起始点A0,A0是具有最小行和列值的边界点。定义一个扫描方向变量dir,该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,其初始化取值为:
(1)对4连通区域取dir=3;
(2)对8连通区域取dir=7;
步骤42:以3*3的区域为例,按逆时针方向搜索当前象素的3*3邻域,其起始搜索方向设定如下:
(1)对4连通区域取(dir+3)mod4;
(2)对8连通区域,若dir为奇数取(dir+7)mod8;若dir为偶数去(dir+6)mod8;
在3*3邻域中搜索到的第一个与当前像素值相同的像素便为新的边界点An,同时更新变量dir为新的方向值;n为自然数,表示边界点序数;
步骤43:如果An等于第二个边界点A1且前一个边界点An-1等于第一个边界点A0,则停止搜索,结束跟踪,否则重复步骤2继续搜索。
步骤44:由边界点A0、A1、A2、……、AN-2构成的边界便为要跟踪的边界。
图像中的零件轮廓是我们考虑的重点,其他的信息可以抛弃。这样既可以减少存储量,又可以加快处理速度。因此用轮廓提取算法扫描零件,存储边缘点坐标到(N-1)×2的矩阵数组中保存;N为自然数,表示所有边界点的总数;
步骤5,特征检测与识别
零件的设计一般遵循从二维到三维的原则,而且大多数零件的草图轮廓都是由直线、圆弧等简单的特征曲线段组成的平面组合曲线,然后经过拉伸、旋转、扫掠等操作生成相应的曲面。因此,在基于CCD的零件检测技术中,如仅用一条统一的自由曲线来表达零件轮廓是不准确的,也无法体现原始的设计意图。所以,必须对截面数据进行分段处理,从截面数据中提取特征的特征点(即不同特征曲线段的连接点),并判断每个分段的曲线类型。之后在拟合各个特征曲线,得到测量结果。
步骤51:利用Douglas-Peucker(DP)算法检测轮廓角点,其方法为:先从轮廓选择2个最远的点,然后将2个点连成一个线段,然后再查找轮廓上到线段距离最远的点,添加到逼近后的新轮廓。算法反复迭代,不断将最远的点添加到结果中。知道所有的点到多边形的最短距离小于parameter参数指定的精度。
步骤52:基于Hsin-Teng Sheu,Wu-Chin和Blurred Segment的算法思想,利用AKC-PHF函数识别分割图元。其方法为:求得每个特征点处的k-cosine序列,即为AKC函数,通过AKC函数有无最大值判断该点为角点(corners)还是平滑结点(smooth joints)。然后利用垂直距离即PHF函数,推断特征点两侧的曲线类型(直线或者曲线)。
步骤53:利用最小二乘法拟合直线或者曲线,其方法为:
(1)对分割出的图元,数字直线拟合成线性直线,数字曲线拟合成圆。
(2)得到最小二乘法拟合的曲线参数,得出曲率,斜率,长度,角度等几何参数。