基于机器视觉技术的球杆系统小球定位的研究
2016-03-18Researchofballpositioninginballandbeamcontrolsystembasedonmachinevision
Research of ball positioning in ball and beam control system based on machine vision
李嘉楠,朱成海,王富东,侍晓丽
LI Jia-nan, ZHU Cheng-hai, WANG Fu-dong, SHI Xiao-li
(苏州大学 机电工程学院自动化系,苏州 215021)
基于机器视觉技术的球杆系统小球定位的研究
Research of ball positioning in ball and beam control system based on machine vision
李嘉楠,朱成海,王富东,侍晓丽
LI Jia-nan, ZHU Cheng-hai, WANG Fu-dong, SHI Xiao-li
(苏州大学 机电工程学院自动化系,苏州 215021)
摘 要:球杆控制系统的实现难点在于对轨道中的小球的位置进行精确定位,传统的传感器检测定位方法定位精度低且可靠性不高。为高可靠性的实现对球杆系统中小球的精确定位,提出全新的基于机器视觉的图像识别技术进行定位。在搭建相关试验平台的基础上,通过感兴趣区域的提取、滤波、颜色识别、Hough圆检测等图像学算法,最终在MATLAB中成功的实现了对球杆装置轨道中小球的定位。实验结果表明,这种定位方法具有快速性和准确性。
关键词:球杆控制系统;图像识别;位置定位;MATLAB;Hough变换
0 引言
球杆系统,是一个典型的控制实验研究设备[1],其主要用于以下两大途径,教学实验和控制理论的验证。作为教学实验用途,不仅能满足现代控制工程以及自动控制原理等课程的实验要求,而且也可以作为模式识别、电机学等课程的实验研究设备,是教师学生进行科学研究的理想平台;作为对控制理论的检验设备,它可以完成对新提出的控制理论的可行性进行验证。综上显然,对球杆系统的研究具有重要意义。
目前主流球杆系统中关于小球位置的检测方法主要有两种,直线位移传感器检测法和光电传感器法。光电传感器对周围环境适应性差,精度不高,测量时存在一定的抖动性。而直线位移传感器检测法,其要求小球必须为钢球,这使得小球在运动时惯性较大,控制难度较大。再者,这种接触式方式易造成传感器磨损,使用寿命短,抗干扰能力差,并且要求有绝对稳定的电压输入。
图像识别技术的研究目标是根据观测到的图像,对其中的物体分辨类别,做出有意义的判断[2]。本文摒弃了传统检测方法,提出了一种基于图像学识别技术的全新定位方法。主要思路如下:通过调用摄像头获取视屏资料,进而提取感兴趣区域,通过图像识别算法进行小球特征识别,并进行优化滤波,最终完成对球杆系统轨道中小球的位置的定位。
1 试验平台
1.1 系统结构
为完成对小球定位的研究,本设计搭建试验平台,其示意图如图1所示。
图1 球杆系统试验平台示意图
该球杆系统的组成主要包括底座、支撑部分、舵机、连杆1、连杆2、横杆、小球、摄像头等部分。系统通过舵机转动带动连杆控制小球的位置。
1.2 图像的获取及转换
图像的获取主要是通过USB摄像头的拍摄传送到电脑,并完成YUV模型[3,4]到RGB模型的转换。其转换公式如式(1)所示:
上式中U、V分别表示色差分量,Y代表亮度值,R、G、B代表红色、绿色、蓝色的像素值。
2 球体的图像识别
2.1 感兴趣区域设置
本设计是以图片为处理对象,因此所含信息量相对较大,进行感兴趣区域,将大大减小系统的处理时间[5]。基于本系统特定条件下,图片中除轨道部分以外区域均为无用信息。因此为减少计算量,加快系统的运算速率,本文采用设置感兴趣区域的方案。实际操作中,在固定好球轨道,以及摄像头后,规定轨道及其周围邻近区域为感兴趣区域。选取感兴趣区域可以调用MATLAB中的imcrop函数,通过设置所需区域的坐标范围,对图片进行裁剪。
2.2 颜色特征识别
颜色识别就是根据不同颜色空间各分量的关系识别出物体的颜色,实现颜色的识别[6]。
2.2.1 欧式距离法识别小球
基于颜色形成原理,对分离特征对象小球进行分析。要从RGB图像中识别分割出某个具有特定颜色特征的物体,通常需要给定一个感兴趣的颜色集合,这个感兴趣集合中含有代表性彩色的色彩特点,即特定的红、绿、蓝像素值范围空间。本文利用几何学知识,以R、G、B分别作为三个坐标轴,建立三维的坐标系,通过RGB空间的向量或者某一点来表示某种色彩。现假设这个RGB空间的向量为向量a。
每种颜色,其映射到RGB坐标系中为一个向量。该向量在R轴、G轴、B轴的分量值即为合成这种颜色所需的R像素值、G像素值、B像素值。实际中,由于光照等各种因素影响,某一种颜色的像素值并不是一个固定值,存在一定的可允许波动范围,即在RGB某一空间区域内即可认为它是某一种颜色。
欧式距离法则是目前最普遍的一种度量的方法。假设n代表RGB三维色彩空间中的一点,只要n和a之间的欧式距离D0在某一个允许范围之内,则认为n与a是相似的。n和a间的空间欧氏距离计算公式由式(2)给出[7]:
上述公式中字母的下标R、G、B分别表示向量n和向量a在三维空间中的R分量、G分量、B分量的像素值。满足D(z,a)≤D0的所有点的轨迹,是一个以D0为半径的实心球体,如图2所示。
图2 RGB向量分割圈定数据区域方法
如图2所示,任何在球体表面上或者是包含在球体内部的点都认为符合某个特定色彩条件,可以归类于某一种颜色范畴。具体伪代码如下:
条件1:|待判断向量R分量值—橙色像素的R分量|<橙色色彩空间R半径;
条件2:|待判断向量G分量值—橙色像素的G分量|<橙色色彩空间G半径;
条件3:|待判断向量B分量值—橙色像素的B分量|<橙色色彩空间B半径。
若同时满足上述三个条件,则认为该点的颜色为橙色。
2.2.2 彩色图像二值化
图像数据的处理大多都是将二值图像作为直接对象[8]。本设计中图像范围不大,处理量相对较小,故采用彩色图像直接二值化的方法。彩色图像二值化,即感兴趣区域内的任何一个像素点只要其像素值满足欧式距离,就将其编码为1(颜色表现为白色),否则编码为0(颜色表现为黑色)。本设计中小球色彩为橙色,因此只要在RGB空间内满足橙色区域的欧式距离,就编码为1。
2.3 图像的优化处理部分
2.3.1 面积滤波处理
图像噪声大大降低了图像质量,干扰了图像的可测性,给后续图像的边沿检测等工作造成了极大影响[9]。图像噪声导致所获得的二值图像存在一些孤立点小面积噪声[10],并且小球的边缘存在毛刺。因此,本文采用面积滤波法,对二值图像中的小面积干扰点进行滤除。在本系统中的具体操作为,把面积小于20的作为小面积干扰噪声点进行滤除。
2.3.2 腐蚀膨胀处理
如2.3.1节所述,小球边沿由于光照的影响出现毛刺影响控制精度。为消除毛刺对控制精度的影响,本文采用腐蚀膨胀算法对球边缘进行优化处理。腐蚀膨胀算法可分为先腐蚀后膨胀(又称为开运算),和先膨胀后腐蚀又(称为闭运算)两种。先腐蚀再膨胀,具有平滑功能,能清除图像某些微小连接、边缘毛刺和孤立点;先膨胀再腐蚀具有过滤功能,可填平图像内部的空洞、小沟和裂缝,使断线相连[11]。
所谓腐蚀,就是沿着图像对象的边缘内侧,通过一个腐蚀结构体依次进行腐蚀擦除。因此腐蚀运算起到影像收缩的作用[12]。腐蚀算法如式(3)所示。
上式中,X为被腐蚀对象,B为腐蚀结构元素,Bv为B平移v所得。
膨胀,是腐蚀的对偶运算,定义为对图像的补集进行的腐蚀运算[13]。其沿着对象边沿的外侧,依次进行膨胀扩大,起到扩大边沿作用,其算法如式(4)所示。
显然,无论是进行开运算还是闭运算,对于边缘平滑的结构体,其边缘特征保持不变。图3为腐蚀算法示意图,图4是膨胀算法示意图。
图3 腐蚀过程示意图
图4 膨胀过程示意图
3 霍夫拟合法定位球心坐标
3.1 霍夫变换的概述
Hough变换最初是由Paul Hough于1962年提出的,其基本思想是将图像空间的一点变换到参数空间的一条曲线或者一个曲面,而具有同一参量特征的点经变换后在参数空间中相交,通过判断交点处的积累程度来完成特征曲线的检测[14]。它是一种特征提取技术,对特定形状的物体具有一定的辨识能力,在处理由于光照不均引起图像二值化后边缘不连续的问题时十分有意义。霍夫变换可以用来检测直线、圆和椭圆等图形。
3.2 霍夫变换的累加器单元
霍夫变换又被认为是一种投票算法,这是得名于霍夫变换中的累加器单元。这同时也是霍夫变换的最大亮点,即把参数空间细分为了一个个累加器单元。这些单元累加器值在最初被设为0,当有直线,或者曲线在某个累加器单元相交时,只要有一次相交,就给这个单元投一票,即该单元的累加器就加1。然后根据最终的累加结果,在该参数空间中寻求局部最大值,在局部最大值中求得一个符合特定形状的集合作为它的变换结构。
3.3 基本霍夫变换
通常,一条直线在直角坐标系中,经过点(xi,yi)的直线的函数表达式如式(7)所示:
其中参数a为斜率b为截距。对应于不同的a、b值,通过该点(xi,yi)的直线有无数条,都能满足式(7)。如果将xi和yi均视为常量,将参数a和b分别看作变量,则将式(7)表示为:
式(8)就是完成从直角坐标变为参数平面a-b坐标系的变换。该变换即为直角坐标系中对于(xi,yi)点的Hough变换。同理另一点(xi,yi),则式(9)与之对应:
式(9)表示的直线与式(8)表示的直线在参数空间内一定相交于点(a0,b0)。
而上述公式有一个缺点,无法处理垂直于坐标轴的直线,即斜率a接近无限大。因此实际中采用使用直线标准表示法来解决,其标准公式如式(10)所示,变前、换后的坐标图如图5和图6所示。其具体算法原理类似,此处不再作明细阐述。
图5 直线在x-y坐标系的标准表示法
图6 直线标准表示法的Hough变换
3.4 霍夫变换圆检测原理
圆霍夫变换(CHT)是目前应用最为广泛的圆检测方法,该方法的最大特点是可靠性高,在噪声、变形、部分区域丢失的状态下依然能取得理想的结果[15]。霍夫圆变换和霍夫线变换的基本原理相似。其极坐标空间到参数空间变换公式如式(11)、式(12)所示。
式中(a,b)是圆心,r为圆半径。霍夫圆变换中,将圆上的点对应的二维极坐标转化为由圆心点(a,b)和半径r组成的三维空间。图像极坐标空间中的一点,映射到参数空间中就是一条曲线。同一条曲线上的两个点在参数空间坐标中表现为两条不同的空间曲线在某一点相交,因此,图像坐标空间中同一个圆上间断的点映射在参数空间里的曲线必定相交于同一点。
3.5 霍夫变换定位圆心算法
霍夫变换检测定位圆心及其半径的基本算法步骤如下:
第一,检测图像中非零的边缘点,并保存点的位置信息。
第二,预估待检测圆半径r大致范围,根据精度要求,设置半径r变化步长以及圆心角θ合适步长。
第三,根据精度细分参数空间为累加器单元。
第四,取第一个非零点,从预估半径r的最小值开始,根据(x,y)的值,r的值和式(11)和式(12)计算(a,b),若计算出的(a,b)的值在合理范围之内,就给点(a,b)所在累加器单元累加器值加1,计算直到θ按步长增加到2π为止。
第五,按照步长扩大r的值,反复完成第四步的操作。
第六,取下一个非零点的(x,y)位置信息,返回第四步继续运算。
第七,完成所有上述运算后,寻找累加器值最大的累加单元,该单元所对应的参数坐标(a,b,r),就是圆的中心坐标和半径。
4 实验及其结果
根据上述理论算法,笔者根据需求搭建了如图7的球杆系统实验平台,在MATLAB中进行了算法设计,构建了GUI人机交互界面,通过图像识别,完成了对轨道中橙色小球的定位。图8为MATLAB中调用USB摄像头获取的图像信息,图9为选取感兴趣区域后的效果图,图10为对小球进行颜色提取并二值化后的效果图,图11为进行一系列滤波优化处理后的二值图像,图12为霍夫圆检测最终定位小球位置的效果图。
图7 球杆系统实验平台
图8 USB摄像头获取的图像信息
图9 感兴趣区域效果图
图10 小球颜色提取并二值化效果图
图11 滤波优化处理后二值图像
图12 小球坐标定位效果图
由图9和图10可见,利用颜色识别配合相关的滤波技术,完全可以分离出小球这个特征对象并滤除噪声点。而图9验证了霍夫圆检测对小球的定位是准确的。
5 结束语
目前,对于球杆系统中球体的定位方法,仅限于传统的传感器测量。本文摒弃传统方法,提出了一种全新的基于图像识别技术的小球定位方案,并通过实验验证
【下转第101页】
作者简介:李嘉楠(1991 -),男,江苏南通人,硕士研究生,研究方向为工业自动化。
收稿日期:2015-11-05
中图分类号:TP216+.1
文献标识码:A
文章编号:1009-0134(2016)01-0082-04