APP下载

基于机器视觉的齿轮中心定位算法

2023-05-05任永强李掌珠

关键词:链码齿顶圆弧

任永强, 李掌珠, 李 润

(合肥工业大学 机械工程学院,安徽 合肥 230009)

0 引 言

机器视觉齿轮检测为非接触式的无损检测方法,与传统人工检测相比,具有不可取代的优越性。目前对齿轮研究多为缺陷检测和参数测量,而齿轮各项参数的提取与测量均以齿轮中心(基圆圆心)为基准,并以该基准为参照表示出各个参数以及它们之间的联系,因此齿轮中心定位是齿轮测量关键的一步,后续各参数如分度圆[1]、齿根圆、齿数以及齿廓偏差[2-4]的测量精度均受到齿轮中心定位精度的直接影响。

齿轮中心定位方法较多。文献[5]以使用最小二乘法和重心法拟合得到带偏差的齿轮中心作为配准中心来检测齿轮缺陷,但存在无法避免的误差;文献[6]采用最小二乘法圆拟合与直线拟合相结合并逐次逼近的方法来确定齿轮中心,但该方法对齿轮的摆放位置有一定的要求且精度不高;文献[7]提出了基于齿轮外轮廓凸包顶点的齿顶圆检测方法,但该方法中凸包顶点的选取对噪声比较敏感,而且在实际工业环境中会存在相当多的干扰;文献[8]采用超最小二乘法拟合CSS检测出齿顶圆亚像素角点,但存在角点数量少、时间复杂度高的问题。

齿轮的轮廓模型较为复杂,在检测过程中对许多优秀的算法限制非常高。本文提出在边缘序列化的基础上对齿顶圆弧进行预分割与亚像素级分割,最后使用改进抽样策略的随机抽样一致性(random sample consensus,RANSAC)算法拟合齿顶圆弧,在保证效率的同时提高检测的精度与鲁棒性。检测流程如图1所示。

图1 检测流程

1 边缘检测与跟踪

图像的边缘检测算法[9]有许多,其中Canny算子是一种非常实用的边缘定位算子。它首先采用高斯函数对图像进行平滑滤波以消除噪声,用f(x,y)表示二维图像;然后计算出平滑图像每个像素点的梯度和方向;再对梯度进行非极大值抑制,细化边缘;最后用双阈值算法定位和连接边缘,高阈值用于获取每条边缘线段,低阈值用于对这些边缘进行连接。

Canny算子抑制了多响应边缘,具有高的边缘定位精度和一定的抗噪能力。图像的二维高斯函数的公式为:

(1)

为了得到有序的边缘轮廓点且筛选掉轮廓中间可能存在的干扰边缘,需要对图像的边缘轮廓点进行跟踪连接。链码[10](又称为Freeman码)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,它用边界方向作为编码依据,为简化边界的描述,一般描述的是边界点集。它将物体边界上的某点设为起点,在其邻域内根据一定的规则搜索后续点,并给出每个后续点相对于前继点的方向编码。

常用的链码按照中心像素点邻接方向个数的不同分为4连通链码和8连通链码,而8连通链码正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息,具体如图2所示。

图2 8连通链码

本文采用基于8邻域边界Freeman链码。轮廓跟踪的算法如下:

(1) 将图像最左上角边界轮廓点P0的坐标记录下来并作为搜索起点,以链码值D=0为最开始搜索方向。

(2) 在当前方向搜索不到新点时,以该方向为基准,顺时针旋转45°,逆时针旋转90°,每次以45°递增并交替进行搜索,搜索到重复区域时,扩大搜索范围,以曼哈顿距离进行广度优先搜索,并记录该点坐标。

(3) 如果搜索到新的边界点,将此方向的D赋值给它前一个点,再以该点作为中心点,继续以该D值为方向重复步骤(2)。

(4) 当搜索到起点P0时,结束搜索。

在一段轮廓的Freeman链码上,多数点前后链码方向变化的角度不超过90°,即链码差的绝对值大于2的概率很小。基于此规律,该搜索方法在步骤(2)中沿当前方向双向扩展新的方向,并在不邻接的边缘进行了广度优先搜索,在步骤(3)时将上一点的链码方向作为当前点的初始搜索方向。该方法提高了搜索效率,稳定性更高,其搜索结果如图3所示。

图3 轮廓检测及跟踪处理前、后对比

2 圆弧分割

齿轮轮廓的拟合难点在于其模型是由多种曲线组成且不具备旋转不变性。许多模型拟合算法(如RANSAC、Hough圆检测)因圆弧在整体轮廓上占比太小而出现检测时间长、精度低的问题;而非模型拟合算法(如最小二乘法)因无法分离偏离的样本点,从而检测精度易受干扰。因此,将齿顶圆弧分割出来是很有必要的。

2.1 阈值分析

理想情况下,齿顶圆弧上不同的点相对齿轮中心的距离差为0,而渐开线齿廓上不同点到齿轮中心的距离差较大,可以设定一个极小的距离差阈值将2种曲线区分开。但是由于硬件误差、噪声干扰以及齿轮本身的缺陷,能否存在一个合适的阈值以及该阈值的取值范围需要进一步分析。

阈值分析示意图如图4所示。

图4 阈值分析示意图

图4中:O为齿轮理论中心;齿顶圆半径ra=R;C为齿顶圆弧MN的中点;H为最小二乘法得到的偏离中心。分析在偏移程度为r的情况下,圆弧MN与渐开线齿廓PQ上的点到H距离差的最大值或最小值。

(1)MN所对的圆心角为θ,OC与OH的夹角为φ,易知在MN圆弧上,M、N为离H最远或最近的点。最大距离差为:

Δd=|lHN-lHM|

(2)

其中,lHN、lHM可由余弦公式求得。由于图形具有对称性,只分析区间φ∈[0,π]的最大值Δd。令Δd对φ求导并对分子求其零点进行单调性分析,当

(3)

此时,Δd取得最大值。

(2) 由于渐开线齿廓上的连续线段PQ到H的距离差主要由其本身的曲线特性决定,忽略r的微小波动,以渐开线齿廓与齿顶圆的交点P为起点,取一段与MN长度相等的圆弧PQ,渐开线齿廓笛卡尔坐标表达式为:

(4)

其中:α为压力角;rb为基圆半径。αP可直接求得,αQ由下式积分反解可得:

(5)

则最小距离差为:

(6)

以参数m=2.25、Z=26的标准直齿圆柱缺齿齿轮为例, 通过Solidworks仿真实验可得其中心偏离约为0.4 mm,结合上述分析过程,可在距离差上限与下限之间选取高阈值Th与低阈值Tl。高阈值用于快速区分渐开线齿廓,低阈值用于实现圆弧的精确分割。

2.2 圆弧预分割

通过上节分析选取合适的阈值Th、Tl,在边缘跟踪后的有序轮廓上使用最小二乘法进行圆拟合,将得到的齿轮偏离中心H与齿顶圆半径R作为粗基准,从轮廓起点开始遍历,算法如下:

(1) 计算第p点与第p+n点到H的距离,若都大于R且其差值小于Th,则进入下一步。

(2) 从第p+n点依次计算至第p+2n点到H的距离,并与第p+n点到H的距离做差,若所有差值都小于Tl,则认为此处存在圆弧,记录最大的距离差Δdmax并进入下一步,否则从第p+n点开始重复步骤(1)。

(6) 遍历至终点时结束算法。

分割得到的齿顶圆弧如图5所示。

图5 间隔90°的4种位置圆弧

2.3 亚像素圆弧分割

预分割出的圆弧曲率较大,像素级的坐标不足以表征圆弧属性且样本点数量不够多,难以满足高精度要求。本文在将像素级圆弧坐标映射回原图坐标(i,j)的基础上,对原图坐标邻域内的点P(i,j)、P(i+1,j)、P(i,j+1)、P(i+1,j+1)采用双线性插值公式:

G(i+x,j+y)=(1-y)(1-y)P(i,j)+

x(1-y)P(i+1,j)+y(1-x)P(i,j+1)+

(1-x)(1-y)P(i+1,j+1)

(7)

以此来对坐标五等分细化,其中x、y为i、j的增量值。对重新得到的图像求解出其梯度图像R(i,j),在梯度图像X方向上取R(i,j)、R(i+0.2,j)、R(i+0.4,j)、R(i+0.6,j)、R(i+0.8,j)5个点,以5个点的梯度幅值作为函数值,以i、i+0.2、i+0.4、i+0.6、i+0.8为插值点,代入多项式插值公式,即

(8)

令df(x)/dx=0,从而得到亚像素边缘坐标。对亚像素坐标以更精确的阈值Th、Tl进行筛选。

亚像素插值方法的计算量比较大,本文仅在预分割所得圆弧上进行亚像素插值,从样本点精度和样本点数量上优化了拟合样本,所耗时间约为整个轮廓插值的1/10,极大地提高了运行效率。

3 改进RANSAC算法拟合

为了保证在不同程度、不同类别缺陷情况下都能准确地检测出圆弧,分割阈值通常不会太靠近齿顶圆弧的理论上限,此时分割的圆弧会带有少数的离群点,且其分布类似于计算机中的局部性原理,因此本文提出一种改进抽样策略的RANSAC算法来拟合齿顶圆。

3.1 RANSAC算法原理

RANSAC算法[11]的输入是一组包含局内点(inliers)和局外点(outliers)的观测数据,那些偏差不大的数据是局内点,偏差大的数据是局外点,它采用迭代的方式从一组包含局外点的被观测数据中估算出已知数学模型的参数。该算法基本流程如下:

(1) 从样本集中随机选取n个样本,计算得到模型参数(如直线n=2,圆n=3)。

(2) 判断模型参数的质量 (计算符合该模型的局内点数量,数量越多越好)。

(3) 重复上述步骤,记录质量最好的模型; 满足迭代条件时退出(达到迭代次数K)。

3.2 改进抽样策略的RANSAC算法

在计算机底层中存在局部性原理,即在一段时间内,程序访问了某个存储单元,其附近的存储单元也将被访问。本文中的轮廓边缘点不同于随机分布的数据点,其在空间上是有序相邻的,类似于此原理,在一段轮廓点中若存在一个局外点,则该点附近的点大概率是局外点。随机抽样的点越近,其误差的放大程度就越高。基于以上两点,本文在使用RANSAC算法拟合时对样本点的选取不再是随机的,而是将分割得到的齿顶圆弧分类整合,一个轮齿上的圆弧应该属于同一类,每一个样本点都来自不同的类。

改进算法流程如下:

(1) 检查序号1圆弧的开始点与序号最大的圆弧结束点的距离d,若d<πm/2,则标记为类1,将最大序号递减后再重复此步骤,直到不满足条件。

(2) 按序号从小到大对第N类圆弧的结束点与后一段圆弧的开始点计算距离d,当d<πm/2时,将后一段圆弧的类别改为N,若不满足则将类别改为N+1,对此圆弧重复此步骤直到最大序号。

(3) 随机抽取3类不同圆弧,从每一类中随机抽取一个样本,根据3个样本计算得到圆的模型后判断模型质量。

(4) 重复步骤(3),达到迭代次数K后,选取质量最好的模型作为齿顶圆,此时的圆心即齿轮中心。

改进算法避免了在误差较大的模型上进行模型质量判断,缩短了拟合时间。

4 实验结果与分析

本文实验环境为:Ubuntu 18.04系统,Intel Core i7处理器,16 GiB内存(RAM),相机分辨率为2 448×2 048,实验平台为CLion 2013,程序编写使用C++编程语言与OpenCV开源库。

实验图片采集自某公司自动化生产线的转台电机传动齿轮。为减少随机性带来的误差以及提供同一个对比标准值,在齿轮原图(实验1)上人为加入缺陷(实验2)和噪声(实验3)干扰,如图6所示,通过多组图片在不同条件下的齿轮中心定位实验进行算法性能的对比。

选取其中一组在缺陷和噪声干扰下分别使用本文算法、最小二乘法以及文献[7]算法进行中心定位实验,实验结果见表1所列。

将实验2、实验3的中心坐标与实验1的中心坐标做差,取其较大差值作为评估其稳定性的标准,10组实验的结果如图7所示。

图6 实验条件

表1 齿顶圆拟合对比

图7 不同算法的中心坐标波动分布

从实验结果可以看出:最小二乘法的拟合精度最低,在干扰影响下其中心定位波动最大可达0.025 5 mm;文献[7]算法的拟合精度较高,但在噪声干扰下凸包顶点的选取精度受到影响而呈现较大波动。

从图7可以看出,得益于RANSAC算法的抗干扰性与亚像素边缘的高精度,本文算法在齿顶圆直径与中心定位的精度上表现良好且稳定,检测速度虽不如其他2种算法,但在改进之后足以满足实际工业检测的要求。

5 结 论

本文提出一种基于亚像素圆弧分割与改进RANSAC算法相结合的定位方法来解决在实际工业检测中齿轮中心定位精度不高、抗干扰能力差的问题。使用Canny算子检测齿轮边缘并使用Freeman码进行边缘跟踪,以最小二乘法得到的圆心作为粗基准,在分析圆弧分割阈值的取值范围后,使用两次分割算法得到齿顶圆弧,最后使用改进抽样策略的RANSAC算法拟合齿顶圆得到精确的齿轮中心。实验结果表明,本文算法在轮廓存在缺陷、图像受到噪声干扰的情况下依然具有较高的定位精度,具有较强的实用性。

猜你喜欢

链码齿顶圆弧
齿顶间隙对双圆弧螺旋齿轮泵泄漏及空化特性的影响
浅析圆弧段高大模板支撑体系设计与应用
分数槽切向磁路永磁电机齿顶漏磁分析
外圆弧面铣削刀具
连续展成磨削小半径齿顶圆角的多刀逼近法
一种新压缩顶点链码
基于链码特征的几何图形快速识别算法*
数控车削圆弧螺纹程序编制与加工
等截面圆弧无铰板拱技术状况评价
无损链码技术的分析与比较