基于Halcon的水平仪气泡自动分类系统研究 [PDF全文]
(浙江科技学院 自动化与电气工程学院,杭州 310023)

为了实现生产过程中水平仪气泡实时快速分类而研发机器视觉水平仪气泡自动分类系统,这是水平仪生产机器换人的关键。研究了基于Halcon的图像处理与识别技术,结合Qt语言设计了自动分类系统软件。介绍了自动分类系统的硬件构成、工作原理,以及图像获取和识别水平仪气泡特定参数的方法。分析了自动分类过程中图像滤波、边缘检测、轮廓提取等图像处理技术,并进行了实验验证。结果 表明,使用基于Halcon的机器视觉图像处理技术,能使水平仪的气泡分类速度更快、更准确,单张图像平均检测时间≤786 ms,长度检测平均误差≤0.02 mm,满足水平仪生产机器换人的需要。

Research on level bubble automatic classification system based on Halcon
XIANG Xinjian, HUANG Pei, ZHENG Yongping, WANG Wenli
(School of Automation and Electrical Engineering, Zhejiang University of Science and Technology, Hangzhou 310023, Zhejiang, China)

The level bubble automatic classification system based on machine vision, which is developed for the sake of real-time rapid classification of level bubbles in the production process, is the key to machine substitution for level production. The study designed the software of automatic classification system with Qt language, on the basis of Halcon image processing and recognition technology. It introduced hardware composition, working principle, image acquisition, and method of identifying the specific parameters of the level bubble. It analyzed the image processing techniques such as image filtering, edge detection and contour extraction in the automatic classification process, and implemented experiments for verification. The results show that using Halcon-based machine vision and image processing technology can accelerate level bubble classification and make it more accurate. The average detection time of a single image is not more than 786 ms, and the average error of length detection is not more than 0.02 mm, which can meet the needs of machine substitution for level production.

引言

水平仪作为测量小角度的常用工具,在机械行业和仪表制造中,广泛应用于水平位置的倾斜角测量以及机床类设备导轨的平面度和直线度与设备安装的水平位置等测量。水平仪按照工作原理主要分为气泡水平仪、激光水平仪、电子水平仪等[1-3]。其中气泡水平仪使用最广泛,它的水准管用透明材料制成,内部装有酒精液体或乙醚,向水准管内充稀薄气体形成气泡,测量时根据气泡偏离中心刻度来判断平面是否水平。刘玲[4]提出用图像检测方法检测万向水准器,通过图像灰度转换、阈值分割等预处理,采用Hough变换检测水准器的刻度圆心与气泡圆心。该方法主要侧重于用机器视觉的技术测量水泡的偏移量,但是阈值分割的准则是将图像分割为相似的区域,当气泡周围有一些不连续的相似区域会对轮廓的提取产生影响。魏煜等[5]介绍了一套基于计算机图像处理和识别的水平尺标定系统,通过最优阈值变换和边缘检测相结合的方法提取图像的轮廓进行跟踪,得到气泡偏移中心的实际距离,检测精度能够达到0.1 mm,但检测精度有待提高。在水平仪气泡的实际生产过程中,由于生产技术的局限,有的水平仪气泡会过大或过小,从而影响测量精度。目前,还没有一个十分完善精确的系统能够直接对水平仪气泡大小进行分类。而国内的许多厂家主要依据人工测量来判断气泡的大小从而进行区分[6],这存在人眼判断偏差大、速度慢,易随着外界环境的变化而使判断失误等问题。为了能快速剔除气泡过大或过小的水准管,保证水平仪测量时高精度使用,有必要研发一种高效的识别系统将水平仪气泡快速分类。

Halcon是一套完善标准的机器视觉算法软件[7],拥有应用广泛的机器视觉集成开发环境。它由1 000多个各自独立的函数,以及底层的数据管理核心构成,其中包含各类滤波、数学转换、分类识别、形状搜寻等基本功能,以及3D相机标定、双目视觉、立体匹配等性能优良的算法,尤其是Halcon基于形状的匹配,由于速度快,在视频处理中得到了广泛的应用。使用Halcon软件来实现分拣系统的设计具有快速性、全面性、精确性和鲁棒性的特点[8]。针对现有工业生产中水平仪气泡分类检测技术的不足,笔者设计了一种基于Halcon视频图像处理技术的水平仪气泡自动分类系统。本系统可用于水平仪气泡生产流水线上,先在特定位置装设摄像头以获取水平仪气泡信息,再结合企业要求,通过对比特定参数,将不同大小的气泡自动分类,以达到剔除气泡大小不符合要求水准管的目的。

1 系统硬件构成

图1 系统硬件构成<br/>Fig.1 System hardware composition

图1 系统硬件构成
Fig.1 System hardware composition

本系统的硬件部分主要包括上位机控制系统和下位机控制系统。如图1所示,上位机主要包括计算机、工业摄像机(含远心镜头),下位机由STM32、传送带、红外传感器和分类执行机构组成。本文使用的工业摄像头选用一款型号为CM-140GE的千兆网接口工业数字相机,此型号的相机具有特定的时序控制特点,可以实现动态修改相机曝光时间、增益和ROI的功能。且远心镜头能保持相机CCD上物体尺寸基本不变,不会随着目标物的距离发生畸变,镜头的解析度高,特别适合用于高精度尺寸的测量。同时采取正反面打光措施,减弱环境光照对采集图片的影响。红外传感器价格低廉、性能稳定、响应时间短,选择红外传感器检测水平仪气泡到达检测点以实现外部触发。在实际工业生产应用中,水平仪气泡在传送带上传输,当红外传感器检测气泡到达检测点后,通过外部触发工业摄像机采集获取图片,并对所采集图像采用基于Halcon的图像处理技术进行识别处理,获得水平仪气泡的各项参数,包括椭圆气泡的长轴、短轴以及面积。最后按照用户设定的分类标准进行分类,计算机将类别信息经过串口传送到网络数据库和STM32控制器,控制器控制分类处理机构的机械手进行抓取分类。

2 基于Halcon的图像处理方法2.1 图像采集

采集图像之前先采用栅格识别的方式进行标定[9]。获取AcqHandled的图像采集算子主要有:grab_image(Image,AcqHandle); grab_image_async(Image,AcqHandle,MaxDelay)。

这两个函数对应的采集方式分别为同步采集和异步采集[10]。前者采集完图像后先通过算法处理图像,之后再采集下一张图像; 后者是采集完一张图像之后马上采集下一张图像,不会受到前面一幅图像处理速度的影响。为了符合本设计中流水线上采集图片的实际操作,选择后者。

2.2 滤 波

采集的图像一般都存在随机噪声污染,为了能够更进一步地提取有效的图像信息,需要对采集的图像进行滤波操作,消除噪声干扰[11]。中值滤波采用排序理论非线性方法,它将每一像素点的灰度值设置为该点某邻域窗口内灰度值的中值,在处理平滑脉冲噪声方面非常有效,同时可以保护图像尖锐的边缘。其中中值滤波公式为:

q(x,y)=med{f(x-k,y-l)},(k,l∈D)。(1)

式(1)中:f(x,y)、q(x,y)分别为原始图像和处理后图像的灰度值; D为二维模板。

图2 采集的原图和中值滤波后的图像<br/>Fig.2 Original image and median filtered image

图2 采集的原图和中值滤波后的图像
Fig.2 Original image and median filtered image

边缘的噪声都是一些灰度不连续的点,在频域分量中均为高频,直接使用微分运算难以克服噪声的影响。在未经预处理的原始图像中任何边缘检测算法都不能很有效地处理图像,本文调用函数mean_image(Image,ImageMean,7,7)进行去噪,获得的图像比原始采集图像有些许模糊,这样孤立的一个像素噪声在经过平滑处理的图像上变得基本上没有影响。而且由于中值滤波具有保护边缘信息的优势,使后期的边缘检测更加清晰。原图与滤波后图像对比见图2

2.3 边缘检测

边缘检测是机器视觉关键的处理技术之一,是仿照人类视觉的一个处理过程,是目标检测、识别、跟踪和形状分析的重要基础。图像边缘包含数字图像重要信息[12],所以提取边缘信息能够降低图像处理数据量。在进行物体边缘检测时,先大致对其轮廓点进行提取检测,然后通过特定的连接方式将轮廓点连接,包括原来遗留的边界点,同时去除虚假的边界。本文利用基于灰度图像的亚像素边缘提取函数edges_sub_pix(Image,Edges,Filter,Alpha,Low,High),直接返回由像素点构成的边缘,具有亚像素精度[13-14]。其中各参数含义见表1

表1 各参数含义<br/>Table 1 Meaning of each parameter

表1 各参数含义
Table 1 Meaning of each parameter

Canny边缘检测是一种相对较好的边缘提取方法[15],其检测的边界连续性好,非常适合本系统。实现Canny边缘检测算法的主要过程有:

2.3.1 寻找图像中的强度梯度

Canny算法主要是找到图像中灰度强度变化最强的位置当做边沿。变化最强,就是指梯度方向。平滑处理后图像中每个像素点的梯度可以通过Sobel算子得到。沿水平(x)方向和垂直(y)方向的梯度Gx和Gy计算如下:

式(2)中,K为原始图像作用点像素值。

像素点的梯度度量值G计算如下:

为了标定边界的真正位置,还必须存储梯度角θ:

θ=arctan(Gy/Gx)。

2.3.2 利用滞后的边界跟踪

为了避免使用单阈值造成的轮廓中断,滞后处理根据设置的高阈值和低阈值来判定灰度梯度,认为和强边界相连的弱边界是边界,其他的弱边界则被抑制。图3(a)为文献[4]中采用的阈值分割提取感兴趣的边缘图像,图3(b)为采用文献[5]中提到的Sobel算子提取的边缘图像,图3(c)为采用本文基于亚像素Canny算法提取的边缘图像。

图3 3种方法提取的边缘图像<br/>Fig.3 Edge images extracted by three kinds of methods

图3 3种方法提取的边缘图像
Fig.3 Edge images extracted by three kinds of methods

图3中的比较可以看出,使用基于亚像素的Canny算法提取的边缘更加清晰,有效地抑制了弱边缘,且基本上完整地保留了目标边缘,有利于后期轮廓的提取与拟合,从而提高了检测精度,所以本文选择函数edges_sub_pix提取边缘。

2.4 轮廓提取

为了在检测到的所有轮廓中准确选择出气泡轮廓,采用函数select_contours_xld(Contours,Selected Contours,Feature,Min1,Max1,Min2,Max2)进行提取。参数Feature的类型含义见表2

表2 参数Feature的类型含义<br/>Table 2 Type meaning of parameter feature

表2 参数Feature的类型含义
Table 2 Type meaning of parameter feature

图4 轮廓提取图像<br/>Fig.4 Contour extraction image

图4 轮廓提取图像
Fig.4 Contour extraction image

经过对大量不同水平仪气泡的检测表明,Feature的参数选择closed,设置固定的Max1的值来提取出气泡轮廓是最有效的方式,筛选后轮廓如图4所示。

2.5 椭圆拟合

椭圆拟合的基本思路是将图像中的一组数据以椭圆方程为模型进行拟合,使某一椭圆方程尽可能包含这些数据,并求出该椭圆方程的各个参数。本文选择基于最小二乘法的椭圆拟合函数fit_ellipse_contour_xld(Contours:Algorithm,MaxNumPoints,maxCloisureDist,ClippinhEndPoints,VossTabSize,Iteration,ClippingFactor:Row,Column,Phi,Radius2,StartPhi,EndPhi,PointOrder)来提取目标轮廓。此算法通过约束条件4ac-b2=1,最小化距离误差。利用最小二乘法进行求解,首先引入拉格朗日因子获得等式组,然后求解等式组得到最优的拟合椭圆。其原理如下:

设椭圆方程为

ax2+bxy+cy2+dx+ey=1。

设m=[a b c d e]T,X=[x2 xy y2 x y]T,则椭圆方程可表示为mTX=1。那么拟合椭圆的最优化问题可表示为:

min‖Dm‖2,

s.t. mTC m=1。(3)

式(3)中:Dn*5为数据样本集合,n为采样点个数; C为常数矩阵。

根据拉格朗日乘子法,引入拉格朗日因子λ,得到以下方程:

2DTDm-2λCm=0。(4)

令S=DTD,那么式(4)改写为:

Sm=λCm。(5)

求解式(5)的特征值λi和特征向量ui,i=1,2,…,5。那么μui也是式(5)的特征解,其中μ≠0是任意的实数。根据式(3),可以找到一个μi,使得μ2iuTiCui=1,即:

μi=(1/(uTiCui))2=((λi)/(uTiSui))2

最后令mi-iui,则mi-可作为曲线拟合的方程解。

此算法用在本设计具有计算高效性,且由于椭圆的特异性,在任何噪声的情况下都会给出有用的结果,对噪声具有很高的鲁棒性。拟合的椭圆图像如图5所示。拟合后的椭圆与实际的的轮廓有微小的误差,如图6所示。从图6中可以看出两个轮廓之间没有完全重合,存在一定的误差。通过大量的试验表明,此误差可以控制在±0.02 mm以内,对水平仪的分类基本上没有影响。

图5 拟合椭圆图像<br/>Fig.5 Fit ellipse image

图5 拟合椭圆图像
Fig.5 Fit ellipse image

图6 轮廓误差图像<br/>Fig.6 Contour error image

图6 轮廓误差图像
Fig.6 Contour error image

3 自动分类系统软件

本设计采用Qt作为GUI界面的编程工具。图7为系统软件设计流程图,图8为设计的用户界面,图9为分类标准按键打开后的设置子窗口。

图7 系统软件设计流程图<br/>Fig.7 Design flow chart of system software

图7 系统软件设计流程图
Fig.7 Design flow chart of system software

图8 用户界面<br/>Fig.8 User interface

图8 用户界面
Fig.8 User interface

图9 分类标准子窗口<br/>Fig.9 Classification standard sub-window

图9 分类标准子窗口
Fig.9 Classification standard sub-window

此软件用户界面左侧有操作按钮,同时可以直接显示检测窗口,通过按钮的选择可以打开不同的子窗口进行基本的设置,界面的底部有即时的状态提示,可以直接显示检测成功或失败。检测全部完成后可以直观地从页面读出各类水平仪气泡个数,也可根据具体需要刷新重置参数。

4 试验与结果分析

为测试系统的检测速率和检测精度,在相同的测试条件下,采集了150张不同的水平仪气泡图像,得到的检测结果见表3。长度检测平均误差d-计算如下:

式(6)中:n为样本数; xj为第j个样本长轴误差。

通过试验测试,单张图像检测平均时间为786 ms,控制在1 000 ms以内,可见,检测速率足以满足实际需求。

表3 样本测试结果<br/>Table 3 Sample test results

表3 样本测试结果
Table 3 Sample test results

5 结 语

本文介绍了基于Halcon的视频图像处理技术自动分类识别系统,通过摄像头获取生产线上水平仪气泡图像信息,经过图像滤波、轮廓检测、形状提取信息等图像处理,根据检测的气泡轮廓的面积对比用户设定的分类标准,可以准确识别水平仪气泡所属的类别。经过大量的试验表明,本系统能够在实际生产线上将气泡快速准确地进行分类,实现真正的机器换人。需要说明的是,由于个别水平仪气泡在生产的过程中表面会有比较深的划痕,故采集图片后在检测过程中会有较大的误差影响,接下来会在进一步的试验中针对有缺陷的气泡进行缺陷检测并剔除。

参考文献