基于机器视觉的航空铆钉尺寸检测技术

2020-06-10 12:19邢雪亮甘文波蒋朝根
计量学报 2020年5期
关键词:铆钉像素点轮廓

邢雪亮, 甘文波, 蒋朝根

(西南交通大学信息科学与技术学院,四川成都611756)

1 引 言

目前,航空铆钉检测逐步由人工发展到用自动化设备进行智能化检测。一架军用飞机需要150~180万个航空铆钉[1],同时,随着航空产业的发展,高出勤率以及经常性部件更换,航空铆钉的用量巨大并日益增加。然而在实际生产中,普遍仍以人工通过肉眼进行检测[2],用量需求与检测方法存在客观性的矛盾,使得航空具有潜在的事故风险。日航123号班机因机尾连接面板的铆钉不及时维修致使520人遇难[3]。可见,改善航空铆钉的安全状况对于减少人员伤亡与财产损失,提高航空出行有着重要意义。

近年来航空铆钉尺寸检测技术引起了重视,影响航空铆钉质量的参数中,除了涉及表面光滑度、缺陷等之外,还包括航空铆钉各部位尺寸等因素[4]。目前在航空铆钉检测的研究中,主要是优化人工检测设备[5],而人工检测效率低并受检测人员的主观因素影响,导致尺寸检测的误差随机性大。文献[1,6]中提出了铆钉检测系统硬件结构,但缺少较优检测算法;文献[7]提出了基于畸变补偿尺寸检测算法,但是检测的精度不足,不能达到工业精密连接件的要求。

当前,机器视觉技术广泛应用于检测系统方面,如电子包装领域的载带检测[8]、新型车牌检测识别方法[9]等。在图像处理方面,文献[10]提出了一种基于方差和显著性特征的图像分割方法,但该方法只针对超声图像;文献[11]提出了一种Contourlet变换和遗传算法相结合的图像增强方法。

航空铆钉检测作为一类安全苛求技术,航空铆钉的尺寸偏差将增加航空事故发生的可能性。本文采用CCD工业相机[12]进行数据采集,获取完全匹配的航空铆钉表面数据。对传统硬件在检测方式方面进行改进,并提出结合阈值分割算法和分水岭算法[13]进行图像处理,同时,通过采用Canny算子[14]作为边缘检测算子获得较高的检测精度和较大的信噪比[15]。实现了对航空铆钉的非接触式尺寸检测。

2 数据采集及系统总体构架

2.1 采集设备

研究采用IDS的uEye driver SDK 工业相机,以垂直于航空铆钉上表面进行数据采集。最高分辨率为3 840×2 748像素,侧面标定后的单个像素精度为0.004 175 mm/pixel。

航空铆钉检测系统的光照起着至关重要的作用。本文使用Narovision公司的Naro-24-4-RS232型光源控制器作为驱动LED光源的可编程数字控制器。检测光源采用环形LED,将LED环形密集排列,光照从360°向中心部集中照射,搭配漫射板保障光照均匀[16],同时,特设黑色亚克力板作为图像采集背景以与金属光泽航空铆钉形成较高的对比度。

2.2 数据样本

所用数据图像采集地点为成都某飞机制造厂 ,实验选取3枚标准铆钉样品,型号为Q/611S97-4*10。依据Q/CACPS6401TY0154A《样板检测校准方法》,经成都飞机工业(集团)有限责任公司计量检测中心检测结果如表1。

表1 检测结果Tab.1 Inspection & test results mm

2.3 系统总体构架

本文所设计的航空铆钉尺寸检测系统由硬件部分和软件部分组成。根据文献[17],硬件部分包括计算机、工业相机和光源等部分,如图1。软件部分由图像采集模块、数字图像处理模块和操作界面等部分组成。

图1 整体构造图Fig.1 Overall structure diagram

基于航空铆钉产品规范,首先,未检测航空铆钉通过传动装置以统一姿态被送入工业相机的拍摄范围内,在传送过程中4台工业相机分别从4个不同方向对其上表面、侧面和沉头面进行图像采集,并标记为待分类铆钉。完成采集后,将所采集图像转换为数字图像,再通过MSComm控件从串行端口发送到上位机。上位机将分析结果传回下方。根据分析结果将合格的待分类铆钉按照不同尺寸范围从预订出口吹出;不合格的待分类铆钉统一从不合格出口吹出。流程如图2所示。

图2 检测系统中的事件流程图Fig.2 Events flow chart of detection system

3 基于机器视觉的铆钉尺寸识别

3.1 检测铆钉是否存在

在航空铆钉运输过程中可能会出现不连续运输的现象,导致图像采集时出现无航空铆钉的无效图像。本文设计通过计算图像中心一条垂直方向上所有像素点的灰度值来判定铆钉是否存在。实验表明:当铆钉不存在时,灰度值大于30的像素点数量小于100;当铆钉存在时,灰度值大于30的像素点数量在500以上。因此,可判断是否存在铆钉。若存在,则进行图像处理,否则直接释放内存,提高检测效率。

3.2 图像剪裁及平滑

图像采集所得图像为3 840×2 748个像素点,对整个图像进行的处理会产生巨大的时间冗余。由于图像采集与铆钉相对位置较固定,本文通过给定图像左上角坐标,给定剪裁图像宽度与长度进行直接剪裁。

本节采用中值滤波[18]对图像进行处理,去除图像采集过程中的细小噪声,以及背景图像中存在的少数噪点。

3.3 图像二值化

在图像二值化过程中,阈值的选择对边缘检测的效果有着极大程度的影响[19]:阈值过大,会导致边缘检测不完整;阈值过小,会导致非真实边缘检测干扰增加。为了分离背景与目标区域,由于对比度较高,本文采用全局阈值的方式进行景物分离。

设图像f(i,j)的灰度值范围为[α,β],全局阈值为T,α≤T≤β,则有式(1):

(1)

式中:g(i,j)为二值化后各像素点灰度值。

实验表明,黑色背景的灰度值接近0,目标区域的灰度值大约在60。因此,全局阈值设定为40,对图像进行阈值分割。

3.4 图像形态学

利用形态学进行边缘检测主要通过结构元素对图像进行膨胀、腐蚀、开运算和闭运算[20]。令输入图像为f(i,j),结构元素为B(i,j),其定义域分别为Df和DB。

膨胀的定义为:

(f⊕B)(i,j)=max{f(i-x,j-y)-B(x,y)}

(2)

腐蚀的定义为:

(f⊗B)(i,j)=min{f(i+x,j+y)-B(x,y)}

(3)

式中:(i-x,j-y)∈Df;(i+x,j+y)∈Df;(x,y)∈DB。

开运算是用结构元素B对灰度图像先进行腐蚀运算再进行膨胀运算,即:

f∘B=(f⊗B)⊕B

(4)

闭运算是用结构元素B对灰度图像先进行膨胀运算再进行腐蚀运算,即:

f·B=(f⊕B)⊗B

(5)

本文采用开运算对二值化图像进行处理。

3.5 图像分割

为了解决检测航空铆钉尺寸误差导致的问题,本文在对图像进行处理时,采用基于数学形态学的分水岭(watershed)算法。该算法最早由法国数学家Mathern G等提出。分水岭算法[21]以像素代替雨滴来计算灰度数字图像的分水岭变换:首先,计算图像的梯度值f(i,j),将梯度值较大的边缘看做分水岭,较小的边缘看做积水盆地;然后往盆地中注水,随着水平面上升,积水盆地最终汇聚成一个完整区域,梯度较大的分水岭区域就得以保留。原理如图3所示。

(6)

图3 分水岭算法原理Fig.3 Watershed algorithm principle

4 边缘提取

4.1 轮廓提取

为了找到最大轮廓,目标轮廓曲线反映了目标的形状特征[22]。通过边缘检测算法得到的边界轮廓为离散点,并没有视为一个整体,本文利用内存存储器CV_RETR_CCOMP方式,即搜索所有轮廓并构成两层结构,最外层为外轮廓,外轮廓包括内轮廓。搜索所有外轮廓,对所有外轮廓所含像素点数进行判定。经实验表明:轮廓像素点数小于2 000,则证明受到干扰噪声影响,同时也达到了除噪效果;轮廓像素点数大于2 000,则为最大外轮廓。

4.2 特征分析

得到轮廓后,分析其形状,几何特征是图像目标区域最显著的特征。常见的几何特征[23]有:

矩形度R:表示轮廓最小外边界矩形宽度与长度的比值,定义为:

(7)

式中:W为最小外接矩形的宽度;L为最小外接矩形的长度。

重心C:表示缺陷像素点分布属性,是像素平均值,当目标区域均匀时密度为1,则重心即为几何图形中心,重心横纵坐标iC和jC定义为:

(8)

式中:S为输入图像f的总像素点数。

圆形度D:表示轮廓最小边界的圆度,当D越接近1时,轮廓越接近标准圆,定义为:

(9)

(10)

(11)

式中:M为重心到轮廓边界点的距离均值;N为重心到轮廓边界点的距离均值方差。

5 Canny边缘检测

边缘检测是图像检测常用的检测方式,标识出数字图像中亮度变化明显的点。Canny边缘检测算子采用最优化的思想,具有良好的信噪比、高精度以及较优的定位性能[24]。

设二维高斯函数G(i,j)

(12)

在某一方向上G(i,j)的一阶导数为:

(13)

式中:n=[cos ϑ,sin ϑ]T为单位方向矢量;G=[Gi,Gj]T为梯度矢量。

图像f(i,j)和高斯函数G(i,j)进行卷积运算。改变n的方向,当∂(Gn*f(i,j))/∂n=0时,解得Gn*f(i,j) 取最大值时的n:

(14)

此时n正交于检测边缘,即在该方向上Gn*f(i,j)有最大输出响应。

|Gn*f(i,j)|=G*f(i,j)

(15)

同时设置2个梯度阈值,使用双阈值处理边缘连接,大于高阈值的点即为边缘点;介于2个阈值之间的点,判定其相邻像素点中有大于高阈值的点,则为边缘点;否则即为非边缘点。所有边缘点构成图像的最终边缘。

6 实测结果与分析

本文实测以Intel I7 4790四核八线程CPU、DDR3 1600 16GB的RPC-610为硬件平台;开发环境为VS2010环境下的MFC(Microsoft Foundation Classes微软基础类库),以C++作为核心语言。

6.1 图像处理效果

图4为图像处理结果,采集原图见图4(a),大小为3 840×2 748,铆钉上表面与背景的对比度明显,同时采集到下方运输转盘。

对原图图4(a)进行剪裁及平滑处理,效果见图4(b),图4(b)较图4(a)的铆钉占比提高,图像像素点有明显减少。图4(c)为图像二值化及形态学处理效果图,可以看出铆钉整体图像清晰,边界毛点较多,同时在右下角存在噪声干扰;轮廓提取效果见图4(d),右下角的噪声已被清除,目标边缘已提取。可见,本文算法可以很好地检测出航空铆钉边缘,处理效果较为稳定,对本文图像有较好的处理效果。

6.2 尺寸检测

对3枚样品航空铆钉的头部直径分别进行5次尺寸检测,结果如表2。从表中可以看出,本文算法处理结果与实际尺寸在误差精度的允许下已达到了所需的检测效果。

表2 实验结果Tab.2 Experimental results mm

注:(1)检测结果=∑每次检测结果/检测次数;

(2)“实际尺寸”参照表1中“检测结果”。

7 结 论

本文利用IDS工业相机自动采集航空铆钉上表面数据,结合一系列算法对图像进行平滑、二值化和边缘提取,实现对航空铆钉头部直径的自动识别与检测。

图4 图像处理结果Fig.4 Image processing results

(1)针对传统航空铆钉尺寸检测方法,从根本上进行改进:从主观人工检测到基于机器视觉的自动检测,经验证,在尺寸检测时,使用本文所提方法得到的检测结果在精度±0.000 5 mm的要求下和实际尺寸的吻合度在90%以上。

(2)引入分水岭算法结合全局阈值分割算法可以有效地检测出目标边缘,大幅降低噪声以及非真实边缘干扰,实际测量效果较优。通过各步骤图像处理效果图,表明该算法在边缘连续性,抗噪声干扰方面效果较好。

(3)提出基于机器视觉的航空铆钉尺寸检测方法,可推广应用于航空铆钉头部直径、杆部直径,以及沉头面倾角的尺寸测量。

猜你喜欢
铆钉像素点轮廓
黑色铆钉
基于局部相似性的特征匹配筛选算法
OPENCV轮廓识别研究与实践
油密铆钉冷镦过程优化改进
PA44-180飞机油门钢索固定铆钉断裂原因及预防措施
基于实时轮廓误差估算的数控系统轮廓控制
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
高速公路主动发光轮廓标应用方案设计探讨
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割