《视觉检测系统设计与实践》课程设计的实现

2021-03-07 13:05魏源孙富昱刘力双
现代计算机 2021年1期
关键词:坐标系工件椭圆

魏源,孙富昱,刘力双

(北京信息科技大学光电信息科学与工程系,北京100089)

0 引言

随着数字化技术在当今生活中占得比重越来越高,数字图像处理的必要性日益增加。它综合了光学、机械、电子、计算机等多方面的技术应用,涉及到计算机、模式识别、图像处理、信号处理、人工智能、光机电一体化等多个领域。《数字图像处理》是随着计算机和信息技术发展应运而生的一门新兴课程,已经成为信息类专业本科生的重要专业课[1]。该课程主要讲授如何通过使用计算机对待操作的图像信息进行处理的方法与技术,具体处理过程如降噪、锐化、特征提取、增强等。课程通过上述处理过程实现对图像的质量的改善,如亮度增强、颜色转换等;实现对图像特征信息的提取,如边缘检测、颜色特征提取等;实现图像的数据变换,多应用于图像的传输过程。

MATLAB有强大的数字图像处理工具箱,用它进行实验,省去了复杂的编程过程,能大大地简化程序,从而把精力集中在算法的研究上,这些特点特别适合图像处理实验教学[2]。数字图像处理技术和视觉检测技术的理论与实验操作的高效结合,是将该技术应用于实践的基础。本文设计并制作基于MATLAB的学生用视觉检测实验系统。

1 视觉检测系统设计

本系统旨在提高学生的动手能力与编程能力,给高校教师和学生更大的系统设计空间,因此开放性较高,满足根据不同被测物体材质与测量环境而针对性提供光源、镜头、相机等硬件设备的现实要求。本系统主体由结构硬件部分与控制部分构成。结构硬件部分系统设计细分如下:平台底座、载物台、镜头升降及其移动结构、光源切换结构。控制部分由软件编程与硬件电路构成。

下文以2020年北京信息科技大学视觉检测课设为例,以学生视角展示利用该系统实现MATLAB GUI界面设计、颜色识别和精密工件尺寸参数测量功能。下文部分涉及系统功能实现原理和方法、系统功能实现过程、结果和误差分析等内容。

1.1 设计目标

(1)MATLAB GUI界面设计

①掌握MATLAB软件与GUI的基本操作方法。

②采用MATLAB编写GUI界面,实现可读入计算机内存储的图片显示。

③实现USB相机的图像采集和实时显示。

(2)颜色识别

①掌握视觉检测系统的图像颜色识别算法设计。

②实现读入计算机图片进行识别。

(3)精密工件尺寸参数测量

①掌握视觉检测系统的标定算法设计,并选择标定方法,实现标定程序,并完成系统的标定。

②掌握视觉检测系统的工件参数提取算法设计,实现如下图工件图像的检测和定位。

图1 待测工件图

1.2 系统功能实现原理

(1)MATLAB GUI界面功能实现原理与方法

通过使MATLAB编写程序实现利用GUI界面图像采集、实时显示和图像存储功能。利用MATLAB的GUI进行视觉检测系统的课程设计好处在于其实时性高、互动性强、自由度高、模块性高,采用GUI交叉设计的方法可实现多个模块进行互通互联,可以实现主GUI及其附属功能GUI的统一调配管理,展现了其强大的用户互动能力[3]。

学生通过选择合适光源以及成像设备,调试好焦距后通过电脑端MATLAB软件配对外设USB摄像头实现对图像的获取。

(2)颜色识别实现原理与方法

图像的彩色处理一般有RGB处理和HSV处理两种。

①RGB模型

RGB模型基于三基色原理,适当选取三种基色如红、绿、蓝(并不唯一),将它们按照不同的比例合成,就会产生不同的颜色。其中合成的颜色的亮度取决于三基色的亮度之和,色度(色调和饱和度)取决于三基色各分量的比例。这三种基色彼此独立,任一种基色不能由其他两种基色配出。

通过图2可以看到,三维立方体的三个轴分别是R、G、B,它所构成的颜色空间是一个单位立方体;三个坐标轴上的立方体顶点分别是红、绿、蓝;如果RGB三个分量相等产生的就是黑白灰颜色,其他比例时候合成就是彩色。

图2 RGB模型

一般情况下多次拍摄一种颜色图片,其RGB分量可能是有一定的波动范围的(受光线、CCD噪声等影响)。所以学生设计程序也是要有一定的区间范围,而不是绝对的。此次课设任务需要识别的颜色信息中,有一些颜色很相近,采用RGB划分可能需要划分很精确,才可以做到精准识别,因此不采用此类办法。

②HIS模型

HIS模型构成的颜色空间是一个枣核形的三维空间,由两个底面对接在一起的圆锥体构成,如下图所示。色调、饱和度和明度也是颜色的三个独立特性,其中I与颜色无关,而H和S与人对颜色的感知是密切相关的。

图3 HIS模型

本文中系统应用实例采取HIS模式获取图像颜色信息。因为I分量与图像的彩色信息无关,H和S分量与人感受颜色的方式是紧密相连的。如图3的枣弧形模型中下圆锥顶点为黑色,上圆锥顶点是白色,离黑色越近灰色越深,离白色越近则灰色越浅。在该模型中,一个切面圆内,到中心距离表示其饱和度,离中心越近饱和度越小,离中心越远饱和度越大。规范HSI分量的范围为H:0~180,S:0~255,I:0~255。

预设若干个颜色,设定其每一个颜色对应的HIS颜色分布区间。获取图像主要颜色信息,是要找到满足预设颜色区间范围内的最大面积的颜色。为实现上述过程应对图像每一个像素点进行颜色判断。读取每一个像素点对应的HSV信息,并将其与预设颜色的颜色区间进行比较,从而确定其所属颜色。下图出标准颜色的HIS区间,其中个别颜色数据根据摄像头采集图像颜色信息的差异进行微调,更细分颜色如橘黄色、明黄色可根据对应HIS区间进行调整。

表1 标准颜色的HIS区间

(3)精密工件尺寸参数测量实现原理与方法

复杂闭合图形都可通过基础图形变换和组合得到,因此对于基础图形如四边形、椭圆、圆的参数测量精度将直接影响到整个系统的工作精度。课程要求对2.1.3 所示工件图像中各个工件样本实现参数测量。本文将重点阐述椭圆、四边形的参数测量原理与方法。

标定方法一般可分为两类,一类为不考虑畸变的线性标定方法,这种情况下一般是采用了经过像差校正的镜头,而且测量和标定都采用图像中心区域,畸变带来的误差很小,不考虑畸变使得图像处理变得简单,需要考虑的参数少;另一类为考虑畸变的标定,即当镜头畸变较大时,标定就需要考虑畸变情况,从而在测量时对畸变带来的误差加以修正。本次工件参数测量的采集图片不存在图像畸变。

学生实验难点之一是将图像的像素空间与实物空间建立联系,获取图像实际尺寸与图像像素之间转换关系,并建立测量坐标系完成系统标定。根据两点坐标公式就可以求出实际该工件左下顶点和右下顶点坐标距离,然后利用“单位像素对应长度计算出图像实际尺寸与图像像素之间转换关系。

建立测量坐标系需要完成坐标转化,即将某点在当前图像坐标系中的坐标,转换到测量图像坐标系中的坐标。以实际工件左下的顶点作为坐标系原点,下侧边缘作为X轴。则能够获得两个坐标之间的转换关系。某点图像坐标系中坐标(X,Y),某点在测量坐标系中坐标(X’,Y’)。

图4 图像空间坐标系

转换公式为:

①椭圆工件尺寸参数测量

调用成型函数“fit_ellipse.m”椭圆拟合程序中时用的是二次曲线标准化法进行椭圆拟合。

其原理是:椭圆上的点在平面坐标系下的方程为二次多项式,为了获得标准曲线方程,通常需要两步,第一步是对平面坐标系的坐标进行拟合,确定平面坐标系下的二次曲线方程系数;第二步是通过坐标系之间的平移和旋转消去二次混乘项和一次项,求得标准坐标系下的曲线方程,进而确定椭圆参数。表示在某平面二次曲线上观测的n个点的坐标,二次曲线方程可表示为:

式(3)中,a0,a1,…,a5为待定系数,对坐标作正规化处理后,二次曲线方程可表示为:

式(5)中:

参数a'1,a'2,…,a'5的迭代初值可以取为0,对所有测量点列出误差方程,组成法方程后求解参数改正数,并迭代至改正数收敛,从而求得曲线方程系数。标准化后椭圆的几何特征参数可表示为:

椭圆中心坐标:

长半轴方位角:

短半轴方位角:

②四边形工件尺寸参数测量

拟合四边形各边用到了最小二乘拟合的原理:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。

设x和y之间的函数关系由直线方程

给出。式中有两个待定参数,a0代表截距,a1代表斜率。对于等精度测量所得到的N组数据(xi,yi),i=1,2,…,N,xi值被认为是准确的,所有的误差只联系着yi。下面利用最小二乘法把观测数据拟合为直线。

用最小二乘法估计参数时,要求观测值yi的偏差的加权平方和为最小。对于等精度观测值的直线拟合来说,可使:

最小即对参数a(代表a0,a1)最佳估计,要求观测值yi的偏差的平方和为最小。

根据式(12)的要求,应有:

整理后得到正规方程组:

解正规方程组便可求得直线参数a0和a1的最佳估计值â0和â1。即:

2.3 系统功能实现过程

(1)MATLAB GUI界面功能实现过程

MATLAB GUI设计的过程分为两部分,第一部分为获取摄像头的参数,第二部分为按键及图像窗口的设置及编程。

首先需要在MATLAB中安装摄像头外部支持以调用摄像头,安装完毕后,点击MATLAB菜单中App里面的Image Acquisition,在弹出的右侧窗口里可以选择要使用的摄像头。选取完毕后,从右下角的窗口中获取该摄像头的参数。

图5 摄像头的参数

第二部分为按键及图像窗口的设置及编程。根据本次实验目的分析,界面分为两部分,显示窗口区域和按键操作区域。显示窗口区域中包含读取计算机图片窗口、摄像头的实时显示窗口和图像采集窗口。按键操作区域应包含响应操作功能的按键。下面进行对按键及图像窗口的编程,选中对象右击——点击View Callbaks,选中Callback.跳转到.m文件对应位置,并对代码进行编辑。设置获取图片的位置及名称,将读取图片显示在图像窗口1中。将获取的摄像头参数粘贴在videoinput的括号内,并用imshow函数实现USB摄像所头采集图像的显示。将摄像头实时画面显示在图像窗口2中。用getsnaoshot语句实现摄像头当前画面的捕捉,并将捕捉的画面显示在图像窗口3中。最后,设置保存图片的位置及名称。

(2)颜色识别功能实现过程

因GUI有实时性高、互动性强、自由度高、模块性高特点,实现颜色识别中,将结果显示在GUI界面。读入图片获取的是RGB分量,通过函数rgb2hsv转换成HSV模型分量。认为当前图片同一颜色像素最多的即为当前图片主要颜色信息,因此设置了颜色计数变量。通过行列遍历的方式,扫描图片上每一点,并判断其颜色,每次判断一个点就把该颜色的计数加1。找到颜色最多的点,即为当前图片颜色显示,结果以文字形式显示在GUI界面静态文本框中。

(3)精密工件参数测量功能实现过程

因GUI有实时性高、互动性强、自由度高、模块性高特点,实现精密工件参数测量中,将结果显示在GUI界面。工件的尺寸参数测量部分设计过程分为两部分,第一部分获得图像中的像素和实际坐标之间的比例转换关系及实现测量坐标系的建立,第二部分为工件的拟合部分。

在第一部分,学生需要测定的参数包括以知实际长度线,在图像坐标系下,其左坐标点和右坐标点;单位像素对应的实际长度比例关系;图像坐标系与测量坐标系的偏转角。目前已知工件图内框的下边框的实际长度是36mm,选择边框左下交点作为测量坐标系的原点。要求首先在图像坐标系下,获取工件边框左下点和右下点的坐标并计算坐标距离。

第一部分实施步骤如下:

(1)读入工件图,对工件图经行灰度化和二值化,采用腐蚀算法对图片经行腐蚀。用原二值化图像减去经过腐蚀后的图像,获得工件图的边缘图像,如图6所示。

图6 腐蚀工件图像

(2)采用MATLAB自带轮廓跟踪算法函数bw⁃boundaries获得图像边缘并分类,为直线拟合做准备。

(3)通过求两直线交点方式,保证左下点及右下点坐标值的精度。学生需要分别对左、下、右三条边进行拟合。根据所获得的三条边的斜率和截距求交左下交点坐标和右下交点坐标。

已知任意相交两直线,其交点坐标可以通过如下关系获得,过程如下:

设两直线表达式如下:

求出角的坐标(X,Y),p1(2)是第一条直线方程中第一个元素。通过上述关系就可求出交点。进行代数计算可获得较为准确的图像坐标距离,进而求得图像实际尺寸与图像像素之间转换关系。

第二部分实施步骤如下:

(1)椭圆拟合实现过程

首先将椭圆轮廓单独提取出来,利用坐标转换公式转换其坐标系,最后调用椭圆拟合函数,输出椭圆拟合图像。

(2)四边形拟合实现过程

首先将其轮廓单独提取出来,利用坐标转换公式转换其坐标系,然后用最小二乘法拟合直线,并输出拟合结果,最后利用拟合直线求出所需参数。分别对四条边长区域进行遍历,分别获得四条直线的相关参数,然后分别对四条直线使用polyfit函数进行最小二乘拟合,再利用polyval函数生成拟合直线的表达式。拟合的四边形如图8所示。

图7 椭圆拟合图

图8 四边形拟合图

在参数计算部分中,首先需要求出四个角的坐标,利用公式:

求出角的坐标(X,Y),p1(2)是第一条直线方程中第一个元素。

再利用公式:

计算出每条边边长。

最后利用公式:

求出四个角的角度。其中a、b、c为所求角和角的两边确定的三角形的三条边长。

2.4 结果和误差分析

(1)MATLAB GUI界面

如图9所示,设计GUI界面由3个图像框,以及4个按键组成。其中按键1实现打开摄像头功能,按键2实现保存图片功能,按键3实现读取图片功能,按键4实现退出功能。

图9 按键1、按键2执行结果

图10 按键3选取目标文件图像

图11 按键3执行结果

(2)颜色识别

打开GUI界面,点击“选取图片”按键,便可以从计算机中选取相应的颜色识别图片。选取后,选取的图片会显示在图形窗口里,GUI界面上标有“颜色”字样的动态文本框内会自动显示选取图片的颜色识别结果。再次点击“重置”按键,可重置内容并重新选取待识别图像并识别图像颜色。进行下一幅图片的颜色识别。点击“退出”按键,可以关闭GUI界面。图像颜色识别的GUI界面如图12。

图12 红色识别案例

(3)精密工件参数测量

学生分别对最初的测试图片测量结果、修改后的测试图片测量结果和评比图片测试结果进行了误差分析。并将表格中,相对误差大于1%的值进行了标注,如图13。

测得的评比图片的工件参数也十分精确,误差也达到了评分标准的最好要求。椭圆的短轴虽然误差小于0.1mm,但是相对误差大于1%。经分析,应该是因为椭圆短轴的数值过小导致的其相对误差过高。

图13 误差分析

3 结语

为提升理工科学生们掌握数字图像处理技术和视觉检测技术的实践应用的能力,培养动手能力与设计能力,探索出符合OBE理念的教学模式。本文在《数字图像处理》课程理论基础上,提出完整的够锻炼学生的实践动手能力的视觉检测实验系统的设计思路。系统应用实例提供对图像信息采集处理的应用案例的教学实验应用,根据不同课程需求可提供不同实验的稳定的实验环境。该系统贴合教学实践目标,能有效激发学生兴趣与提升学生实践能力,将有效提高教学质量。

猜你喜欢
坐标系工件椭圆
带服务器的具有固定序列的平行专用机排序
机床与工件相对运动对去除函数形成稳定性的影响机制研究
独立坐标系椭球变换与坐标换算
工业机器人视觉引导抓取工件的研究
两台等级平行机上部分处理时间已知的半在线调度∗
极坐标系中的奇妙曲线
b=c的椭圆与圆
巧用点在椭圆内解题
三角函数的坐标系模型
求坐标系内三角形的面积