基于灰度的亚像素插值视觉测量方法

您所在的位置:网站首页 尺寸测量原理 基于灰度的亚像素插值视觉测量方法

基于灰度的亚像素插值视觉测量方法

2023-10-28 05:07| 来源: 网络整理| 查看: 265

0 引 言

几何尺寸测量在现代工业中有着重要作用,是保证产品质量的关键。随着科技与工业生产的发展,对零件几何尺寸的测量精度及效率提出了更高要求。传统的接触式测量主要利用探头接触待测物体表面,从而获得所需参数信息,如卡尺、千分尺等。但该方法易受设备和人为因素影响,只适合小批量和一般精度的测量。在高精度测量中,如三坐标测量机、光学影像测量机等检测设备复杂昂贵难以广泛应用。近年来兴起的非接触测量技术因其高效、无损、高分辨率的检测优点而逐渐受到重视[1-3],随着图像处理等技术的发展,视觉测量作为一种非接触测量方法已得到广泛研究与应用。

国外对几何尺寸视觉检测方面的研究起步较早,目前已经达到较高水平,Jan Fischer等[4]研究了线性插值的亚像元位置测量系统,针对传感器不同质像素敏感性分布的缺点,提出一种线性插值方法。Eric等[5]研究了高精度机械位移与应变的视觉测量,提出视觉敏感性概念。国内杨剑等[6]进行了大尺寸视觉测量精度的理论和实验研究,提出了一种基于距离约束的大尺寸三维视觉测量算法,并应用在大型设备曲面测量上。申晓彦等[7]研究了轴对称构件几何尺寸的图像测量技术,构建一组适合工程应用的图像测量系统。

本文在现有的几何尺寸测量算法基础上,首先介绍边缘检测的常规方法,并探讨了基于边缘点插值测量尺寸的数学原理;在此基础上,融合常规边缘检测方法,提出一种针对标准薄片零件几何尺寸的亚像素插值视觉测量方法。

1 边缘提取与亚像素测量方法 1.1 常规边缘提取方法

视觉测量大多是通过处理图像目标区域边缘而获得物体的几何参数。边缘提取方法主要分为灰度值提取和灰度梯度值提取[8-9]。基于灰度值的边缘提取一般是根据阈值对图像进行二值化处理[10-11],这种方法简单,计算量小,但是提取精度不高,边缘定位的准确性依赖于阈值的计算方法。

基于灰度值梯度的边缘检测根据图像边缘的变化情况,检测出图像中的边缘点[12],再将边缘点连接成轮廓,从而实现边缘提取。灰度的变化率和变化方向通常作为图像边缘像素点的评价指标,分别以梯度向量的幅值和方向来表示。平面区域 $D$ 内,坐标为 $(x,y)$ 的像素点 $f\left( {x,y} \right)$ 在 $\theta $ 方向沿 $x$ 的梯度定义为

$\frac{{\partial f}}{{\partial r}} = \frac{{\partial f}}{{\partial x}} \cdot \frac{{\partial x}}{{\partial r}} + \frac{{\partial f}}{{\partial y}} \cdot \frac{{\partial y}}{{\partial r}} = \mathop f\nolimits_x \cos \theta + \mathop f\nolimits_y \sin \theta $ (1)

对于连续图像 $f\left( {x,y} \right)$ 来说,其方向导数将在边缘(法线)方向上有局部最大值。因此,边缘检测就是求 $f\left( {x,y} \right)$ 梯度的局部最大值。根据式(1),当 $\displaystyle\frac{{\partial f}}{{\partial r}}$ 达到局部最大值时,有 $\displaystyle\frac{{\partial \left( {\partial f/\partial r} \right)}}{{\partial \theta }} = 0$ ,于是有

$\mathop f\nolimits_x \sin \mathop \theta \nolimits_g + \mathop f\nolimits_y \cos \mathop \theta \nolimits_g = 0$ (2)

其中,梯度最大 $g = \mathop {\left( {\displaystyle\frac{{\partial f}}{{\partial r}}} \right)}\nolimits_{\max } = \sqrt {\mathop {\mathop f\nolimits_x }\nolimits^2 + \mathop {\mathop f\nolimits_y }\nolimits^2 } $ ,一般称之为梯度模;灰度的变化方向为 $\mathop \theta \nolimits_g = \mathop {\tan }\nolimits^{ - 1} \left( {\displaystyle\frac{{\mathop f\nolimits_y }}{{\mathop f\nolimits_x }}} \right)$ ,实际计算中一般以微分算子的形式表示。

常用的微分算子有Roberts算子、Sobel算子和Canny算子等[13],其中Roberts算子和Sobel算子是根据图像边缘处梯度最大(正的或负的)的特性来进行边缘检测。这两种方法,Roberts边缘定位准,但对噪声敏感;而Soble加权平均,适用边宽≥2像素的检测。Canny算子是最优的阶梯型边缘(step edge)检测算子,对受到白噪声影响的图像检测准确。

1.2 亚像素测量方法

传统边缘检测算法的定位精度只能达到像素的整数级,为了进一步提高检测精度,基于亚像素的边缘检测与提取方法得到了深入研究。常用的亚像素方法有拟合法[14]、插值法[15]、灰度矩法[16] 和一些组合算法[17-18]等。德国 MVTec的 Halcon,加拿大 Adept 的Hexsight,美国 Cognex 的 VisionPro 等图像处理软件,其测量精度都已达到亚像素级。赵敏等[19]应用概率统计的方法提高了图像测量分辨率,娄训志等[20]研究了基于小波的亚像素检测方法。一般常用的亚像素算法的精度为0.1~0.5个像素,一些算法在理想的情况下可以达到0.01个像素。

2 一种新的亚像素高精度测量方法

由于视觉测量中一般需要复杂的光学系统,且要求在特殊场合、特殊环境下使用,精度较低、效率和实时性较差。针对该问题,本文提出灰度插值的亚像素精确测量方法,基本过程包括:利用标准长度进行亚像素自适应阈值选择、基于阈值分割的亚像素测量。

2.1 亚像素阈值的标定

系统首先利用标准值进行标定,即确定测量阈值。本文采用自适应阀值的线性插值算法,如图1所示, $f$ 为焦距; $D$ 为物距; $h$ 为CCD靶面尺寸(高); $v$ 为CCD靶面尺寸(宽)。

图 1 测视场原理图 图选项

由图可知,镜头离被测物的高度为 $D$ 时,由线阵CCD传感器的靶面尺寸可知:系统所能测量的最大宽度 $V$ 、最大高度 $H$ 范围(量程)为

$ V = \frac{{vD}}{f}\;\;\;\;H = \frac{{hD}}{f} $ (3)

则单位像长对应的实际长度 $\mu $ 为

$\mu = \frac{V}{v} = \frac{H}{h} = \frac{D}{f}$ (4)

而每个像素对应的实际宽度 ${\beta _v}$ 、实际高度 ${\beta _h}$ 为

$ {\beta _v} = {k_v} \times \mu = {k_v}\frac{D}{f}\;\;\;\;{\beta _h} = {k_h} \times \mu = {k_h}\frac{D}{f} $ (5)

其中 ${k_v} \times {k_h}$ 为像元尺寸。

其阈值的确定过程如图2所示,其中 $X$ 表示边缘像素点的位置, $Y$ 表示对应像素点的灰度值,设标准件长为 $l$ ,则可知其理论像素个数 $N = \left[ {\displaystyle\frac{l}{{{\beta _v}}}} \right]$ ,其中 $\left[ {} \right]$ 表示取整数。

图 2 插值算法原理图 图选项

首先利用Canny算子对图像进行边缘提取(粗定位),得到边缘点的像素坐标 $(x,j)$ ,设第 $j$ 处两边缘点为 ${C_1}$ $\left( {{x_{{\rm t}1}},{y_{{\rm t}1}}} \right)$ 、 ${C_2}$ $\left( {{x_{{\rm t}2}},{y_{{\rm t}2}}} \right)$ ,边缘间的像素数为 ${N_j}$ 。

若N>Nj,则 ${C_1}$ 点向左移动, ${C_2}$ 点向右移动;若N

其中 ${l_1} = {x_{i + 1}} - {x_{{\rm th}i}}$ , ${l_2} = {x_{{\rm th}j}} - {x_j}$ ,单位均为μm,有:

$l = \mu L$ (7)

由图2中几何关系,利用线性插值方法,有:

$\left\{ \begin{gathered} \frac{{{l_1}}}{{{y_{\rm th}}_j - {y_{i + 1}}}} = \frac{{{x_{i + 1}} - {x_i}}}{{{y_i} - {y_{i + 1}}}} \\ \frac{{{l_2}}}{{{y_{{\rm th}j}} - {y_j}}} = \frac{{{x_{j + 1}} - {x_j}}}{{{y_{j + 1}} - {y_j}}} \\ \end{gathered} \right.$ (8)

其中 ${x_{i + 1}} - {x_i} = {x_{j + 1}} - {x_j} = {k_v}$ ,由式(5)~式(8)解得:

$\begin{split} {y_{{\rm th}j}} =& \frac{{\left( {{y_i}{y_j} + {y_{i + 1}}{y_{j + 1}} - 2{y_{i + 1}}{y_j}} \right)}}{{{y_i} - {y_j} + {y_{j + 1}} - {y_{i + 1}}}} + \\ & \frac{{\left( {l - N{\beta _v}} \right)\left( {{y_i} - {y_{i + 1}}} \right)\left( {{y_{j + 1}} - {y_j}} \right)}}{{{\beta _v}\left( {{y_i} - {y_j} + {y_{j + 1}} - {y_{i + 1}}} \right)}} \\ \end{split} $ (9)

则标准件平均灰度阈值为

${y_{\rm th}} = \frac{{\displaystyle\sum\limits_{j = k}^n {{y_{{\rm th}j}}} }}{{N - k + 1}}$ (10)

此时的 ${y_{\rm th}}$ 即为标定所得的阈值。

2.2 亚像素测量

测量时,首先对获取的图像预处理后灰度化,然后根据图像第 ${j'}$ 列处的灰度曲线以 ${y_{\rm th}}$ 为阈值进行分割,得到光强低于阈值的像素个数为 ${N_j}'$ ,则其对应的图像长度为

${l_{{\rm th}j}} = {N'}_jk$ (11)

根据图2,设此处阈值边缘点分别为 $B_1'$ $\left( {x_{_{i + 1}}',y_{_{i + 1}}'} \right)$ 、 $B_{_2}'$ $\left( {x_{_j}',y_{_j}'} \right)$ ,且相邻两点为 $A_{_1}'$ $\left( {x_{_i}',y_{_i}'} \right)$ 、 $A_{_2}'$ $\left( {x_{j + 1}',y_{_{j + 1}}'} \right)$ ,由式(8)可得其亚像素对应的图像长度为

$\begin{split} {l_{{\rm sub}j}} =& l_{_1}' + l_2'= \\ & k\left( {\frac{{{y_{\rm th}} - y_{_{i + 1}}'}}{{y_{_i}' - y_{_{i + 1}}'}} + \frac{{{y_{\rm th}} - y_{_j}'}}{{y_{_{j + 1}}' - y_{_j}'}}} \right) \\ \end{split} $ (12)

于是,测量图像在第 ${j'}$ 列处对应的图像长度为

${L_j}' = {l_{{\rm th}j}} + {l_{{\rm sub}j}}$ (13)

测量长度为

$l_j' = \mu {L_j}' = \mu ({l_{{\rm th}j}} + {l_{{\rm sub}j}})$ (14)

由式(5)、(11)、(12)、(14)可得:

$l_j' = {\beta _v}\left( {\frac{{{y_{\rm th}} - y_{_{i + 1}}'}}{{y_{_i}' - y_{_{i + 1}}'}} + \frac{{{y_{\rm th}} - y_{_j}'}}{{y_{_{j + 1}}' - y_{_j}'}}} \right) + N_j'{\beta _v}$ (15)

目标物体的尺寸为

${l'} = \frac{{\displaystyle\sum\limits_{j = k}^n {l_j'} }}{{N - k + 1}}$ (16) 3 实验结果及误差分析

亚像素精确尺寸测量方法设计和实验如图4所示,镜头离被测物的距离为2.93 cm,系统亚像素定位精度理论为0.001 9像素,传感器像元个数M=1 024,镜头角度理论精度约为 0.012 μm。相机采用Baumer公司的TXG03c,工业镜头H0514-MP,镜头的焦距为5 mm,CCD分辨率为 $656 \times 490$ 像素,为了减少外界的干扰,提高测量准确性,在测量时采用平行光光源,对三等标准量块进行灰度阈值的标定。现场实验如图4所示。

图 4 现场实验图 图选项 3.1 标准量块测量实验

表1是在上述实验条件下所测的不同规格的量块尺寸,并与用Canny算子进行边缘提取所得数据进行了对比。从表中可以看出,本方法测量误差均比Canny方法测量误差值小。8次测量平均绝对误差值,本方法为0.000 438 mm,Canny方法为0.000 813 mm,本方法误差为Canny方法误差的53.8%。从表中可以看出,本系统的测量结果更接近标准量块实际值,实验表明本算法测量结果可靠且能够实现快速无接触的测量。

表 1 实验测量对比 标准量块值/ mm 本方法测量/ mm 绝对误差/ mm Canny测量/ mm 绝对误差/ mm 5.122 0 5.122 2 0.000 2 5.123 0 0.001 0 10.240 6 10.240 7 0.000 1 10.241 4 0.000 8 15.360 1 15.360 2 0.000 1 15.360 5 0.000 4 21.500 4 21.500 1 −0.000 3 21.500 8 0.000 4 30.122 6 30.122 1 −0.000 5 30.121 7 −0.000 9 35.240 8 35.240 3 −0.000 5 35.241 3 0.000 5 40.362 0 40.363 0 0.001 0 40.363 4 0.001 4 46.500 2 46.501 0 0.000 8 46.501 3 0.001 1 表选项 3.2 误差分析

从上述实验数据可以看出,本检测系统存在一定的测量误差,主要由以下4方面引起:1)镜头到被测物的高度即物距由于存在测量误差,引起 ${\beta _v}$ 的变化,从而导致检测系统存在系统误差。2)由于本实验所选用镜头的焦距短,镜头畸变相对较大,造成图像的非线性失真,从而影响目标的边缘定位,导致测量结果的偏差。3)系统光源的影响,线阵光源的准直性和稳定性将直接影响到测量结果。理想模型中,线阵光线应该是平行投射的,但在实际中,由于光源发散性的影响,将不能得到稳定的平行光源,从而产生了误差。4)被测物体放置的影响,只有当被测物体和传感器完全垂直的时候,成像才能反映出物体的真实轮廓。上述结果表明,经过本文提出的插值方法后,可以得到准确的结果,对于批量检验薄片零件是否合格有应用价值。

4 结束语

基于视觉系统的几何尺寸测量技术已得到了广泛的研究与应用。本文介绍了图像测量的基本原理,包括测量光学成像系统和测量结构;深入研究了基于光强线性插值的亚像素自适应阈值的测量原理和方法,分析了测量系统的误差影响因素。实验结果表明该算法的测量精度较高,可以快速、精确地测量出物体的几何尺寸。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3