邓 黎,张 博,冯丹彤,方祝平
(成都工业学院 自动化与电气工程学院,四川 成都 611700)
近几年,智能制造技术发展迅速,作为其重要技术之一的机器视觉也将迎来巨大的发展,该技术被广泛应用于零件加工及识别、无人驾驶等领域,应用前景较好,将成为未来的研究热点。冯恩娟等构建了基于机器视觉的电解加工对刀间隙检测系统,实现了在保持相对误差小于3.62%的情况下,缝隙距离介于0.1至1毫米之间的测量[1]。陈曼等基于机器视觉搭建了一套获取刀口运动信息的测量系统,验证了测量系统对运动的刀口速度测量精度为0.31%[2]。陈恺悦等通过将图像处理以及机器视觉技术像结合,构建了一套可以通过双模摄像头进行距离测定的系统,该系统在测量的真实距离小于1m 时可以保证误差在0.9%以内[3],宋克峰等针对传统背景模型在检测过程中所存在的问题提出了算法改进,并验证了算法的实用性[4-5]。然而,在零件尺寸越小的情况下,为了保证实验精度,系统的搭建变得越来越复杂。由此可见,研发一种较为简单的距离实时检测系统具有较大意义。
测量运动中物体与物体的间距要考虑多种因素,例如速度的不确定性和外界环境影响。测距的方法有多种,例如手动塞尺测距、激光测距[6-7]、模板匹配等等。手动塞尺法操作繁琐,且对实验仪器有因为摩擦产生的损坏;激光测距法对激光的依赖较大,受背景光影响严重;本文提出一种基于模板匹配的方法进行测距。模板匹配法是将观测对象的特征作为模板,将目标图像与模板进行匹配。模板匹配法在观测对象与环境存在较大差别时,具有较好的效果,能够进行实时的跟进匹配,故可用于物体跟踪,并可为距离测算提供依据。
因此,本文在基于模板匹配的方法下,提出了一种运动物体间距离的实时检测方法,以达到无需人员操作测量,运算效率高的目的。
测距算法部分分为图像预处理、模板匹配、以及间距计算。
由于本文不需要对彩色图像的R、G、B三个分量都进行处理,因此将图片进行灰度化以及阈值分割处理,达到有效减小图像原始数据量的目的,以减少后续计算量,达到提高系统实时性的目的。基于此,通过目标匹配定位目标物体在图像中的坐标信息,并通过像素标定计算出物体的实际距离,即物体间距。
彩色图像中每个像素点的颜色由R、G、B三个分量共同决定,每个分量有255 种不同的值可取,这样一个像素点可以有255*255*255种不同的颜色可取[8]。而灰度图是R、G、B三个分量相同的一种特殊的图像,若将图像灰度化,每个像素点的变化范围则为255 种。本系统由于不需要运动物体的颜色信息,因此图像处理时,将原图灰度处理,以减少图片处理时间,提高系统实时性。
图像灰度化的方法有多种,本系统采用平均值法,实现方法为:求出每个像素点的R、G、B三个分量的平均值,再将求得的平均值赋给这个像素的三个分量。灰度化平均值法实现公式如式(1):
模板匹配时图像处理过程中的关键部分,根据已知目标模板图在另一幅图像中寻找目标位置并定位的过程叫做模板匹配[9]。
目前比较多使用的模板匹配方法有平方差匹配[10]、标准平方差匹配、相关匹配、标准相关匹配等。随着从简单的匹配方法如平方差匹配,到复杂的匹配方法如标准相关匹配,获得的匹配结果会越来越精确[11],但同时意味着计算时长会随之增加。多次实验证明,较为简单的平方差匹配法即可满足本系统需求,故本文采用平方差匹配法作为本文的模板匹配方法,以提高系统实时性。
模板匹配前,首先提供两幅图像,一幅是原图像,另一幅是和原图像进行比照的图像块,即模板图。在匹配过程中,将模板图在原图像中进行从左往右,从上到下的滑动,模板图在原图中一次移动一个像素,在每一个位置,都进行一次度量计算来判断图像块和原图像在该区域的“相似度”。
本文在基于平方差匹配方法下,开发了一种在匹配背景为视频而非图片的情况下进行模板匹配的程序。图1 所示为模板匹配效果图,表1所示为模板定位结果,图1矩形框内是模板图在原图像中的移动区域,在进行模板匹配时,模板从原图像左上角开始每次以模板的左上角像素点为基准从左至右,从上至下移动,每到达一个像素点,就会以这个像素点为左上角顶点从源图像中截取出与模板一样大小的图像与模板进行相似度的度量运算。因此,模板图像在原图像的移动区域应满足如下约束条件:
表1 模板匹配定位结果
图1 模板匹配
式中W、H为原图像的像素长度和宽度,m、n为模板图的像素长度和宽度,i、j为模板图在原图像中的左上角点坐标。
不同的度量值计算方法,对应不同的模板匹配方法,即不同的模板匹配方法的不同点在于度量值计算方法不同,对于平方差匹配法,其度量值R的计算方法见式(3)。
式中R(x,y)为度量值构成的矩阵,T(x',y')为模板图像矩阵,I(x,y)为原图像矩阵。上式表示模板图像某一像素点灰度值减去覆盖的原图像在该像素点的灰度值之差的平方和为对应矩阵的点的值。
平方差匹配法特点在于其度量值R越小,则越相似,最好的匹配结果为R=0。故模板的寻找依据为模板图在原图中遍历完成之后,度量值R最小的区域即为原图中模板对应的位置。
本文所述模板匹配法为在原图中寻找一个目标,而本文所讨论问题为两物体间距的实时检测方法,即需要在原图中寻找两个不同的目标。针对此问题,本文在处理每一帧时,提供两个不同的模板并进行两次模板匹配,以此获得每一帧不同物体的坐标,即可在处理每一帧时实现两个目标的模板匹配。同理,若提供多个不同模板,即可在每一帧实现多个目标的模板匹配。
模板匹配为测量物体间距提供了模板在图像中四个顶点的坐标,利用两物体在图像中的顶点坐标信息,即可计算两物体间的像素间距。
本文主要讨论两个物体间的间距测量,故以下讨论均以两个待测物体进行展开讨论。
将模板匹配获取的待检测物体的坐标信息存入数组中,不同待检测物体坐标信息存入不同数组,如A数组中存放A物体四个顶点坐标信息,B数组中存放B物体四个顶点坐标信息,再计算A数组中所有元素与B数组中所有元素的两点距离,公式见式(4)。
式中xi、yi表示A数组中第i个元素的横纵坐标;xj、yj表示数B组中第j个元素的横纵坐标;dij表示A数组中i元素与B数组中j元素的间距值。
根据上述方法,计算出数A组中4 个坐标元素分别与B数组中4 个坐标元素之间的两两间距,最终获得16 个间距值,从16个元素中找出最小值,即为两物体最近点间的间距。
在进行物体间距检测时,无论是在任何领域,如零件装配、零件对位等,都希望获得实际的距离值,而非像素值,对此,本文利用相机标定中常用的传统相机标定法,以实现像素值与实际值的转换,标定原理如下:
在进行间距检测前,首先将相机位置以及置物台位置固定,在相机所拍摄的画面内,放置一个形状规则的参照物,如外形为圆形或方形的物体,本文选择表3中B类别零件作为参照物,测量其外径真实长度并精确至百分位,为rreal=11.05mm,通过视觉检测系统获得其外径长度的像素值,为rpixel=124,计算出此时画面中真实长度与像素长度的比例值,记为k,即:
最后算得k=0.089,通过获取待测物体之间的间距像素值,带入公式(6)进行转换,即可算出间距的实验值。
式中dreal为间距实验值,dpixel为间距像素值。
若相机与置物台的位置均保持不变时,该比值同样不会改变,故本文在进行各项实验时获得的像素均均可通过该比值进行换算。
视觉检测平台是由硬件及软件系统共同构成的对待测物体进行非接触测量的光学图像测量系统。视觉平台硬件包括:照明系统、CCD相机、计算机及移动台等其它相关联的处理设备。软件以Python 为开发平台,基于OpenCV 图像处理库研发的一套距离测量算法。测量平台结构图如图2。
图2 机器视觉检测平台
本系统相机参数如表2所示。
表2 相机具体参数
系统所用移动台类型为滚珠丝杆移动台,主要包括两个部分:机械部分和控制部分。在机械系统部分主要有滚珠丝杆副,导轨副,步进电机,工作台等;滚珠丝杠副具有轴向刚度高,不易磨损,运动平稳等优点。工作台采用直线滚动导轨副以提高运动平稳性、减少工作台的摩擦系数;在该工作台中分别用两个步进电机控制两个丝杠副运动,两个丝杆副垂直放置,以达到控制工作台可在X、Y 两个方向运动的功能,控制系统根据用户编制的程序的要求,发出脉冲型号控制两个步进电机。同时,将物体夹持工具固定于工作台上,以实现夹持工具随电机的运动而运动,最终实现控制夹具上物体移动的功能。
控制系统主要包括驱动器,变频信号源等。驱动器是将变频信号源送来的脉冲信号及方向信号按要求的配电方式自动的循环供给电动机的各相绕组,以驱动电动机转子的正反向旋转。同时,根据驱动器受stm32 单片机控制的特点,通过改变stm32pwm 波的频率即可改变单片机在相同时间内发出pwm波的数量,以达到改变电机的转速的目的,电机的转速与工作台移动速度成正比关系,因此,通过改变stm32的频率即可改变工作台的移动速度,即改变了夹持工具的移动速度。
最终,分析视觉检测系统实时返回的物体间距值,判断夹持工具上物体应如何移动,以达到控制物体间距的功能。
测量流程图如图3 所示。处理过程如下:获取第一帧,进行灰度处理。在灰度处理过的图像的基础上,提供两待测物体各自的模板图,通过该模板进行模板匹配,在原图像里寻找模板,找到后返回两模板各顶点的坐标,通过给定的坐标计算出两模板间的间距,即两物体间距,返回间距后继续处理下一帧图像。
图3 间距检测流程
本文研究了平方差模板匹配方法,基于像素值的测距方法,搭建实时的视觉检测系统,验证了本系统的实时性与精度。开展了如下三种实验,验证本文提出观点的实用性及可行性。
实验一:针对不同类型的零件,通过对视觉检测系统返回的间距值与实际间距对比,验证本文所提出像素间距与实际间距转换方法的可行性。
实验二:针对不同类型的零件,在其移动过程中,利用平方差匹配法实时反馈零件尺寸,验证本系统是否满足匹配精度需求。
实验三:针对不同类型的零件,测量视频中的每一帧从模板匹配到间距计算的时间,验证本系统的实时性是否满求。
上述实验所用到零件的具体信息如表3所示。
表3 不同类别零件的模板图片、外径尺寸
实验一开展原理:使零件B 逐渐靠近零件C,在靠近的过程中,通过视觉检测系统实时反馈间距实验值,并与间距真实值进行对比。图4所示为零件B靠近零件C时返回的不同阶段的间距实验值与真实值,在五个不同的阶段,阶段1间距误差为0.6mm,准确度为98.44%;阶段2 间距误差为0.42mm,准确度为98.65%;阶段3间距误差为0.5mm,准确度为98.08%;阶段4 间距误差为0.39,准确度为98.05%;阶段5间距误差为0.32,准确度为98.3%,其中,匹配准确度最低的是阶段4 的98.05%,匹配准确度最高的是阶段2 的98.65%。根据实验一结果统计,我们认为,当匹配准确度高于98%时,零件尺寸的匹配误差可视为远小于零件真是尺寸,对实际情况影响较小,可忽略。
图4 不同阶段间距实验值与真实值对比
为了进一步研究视觉检测系统的可行性,开展实验二:选择不同类型的零件A、B、C、D,利用平方差匹配法返回各零件尺寸,与真实零件尺寸进行对比实验。图5实验结果表明,五种零件中,零件A 的外径测量误差为0.04mm,准确率为99.64%;零件B的外径测量误差为0.03mm,准确率为99.73%;零件C 的外径测量误差为0.06mm,准确率为99.46%;零件D的外径测量误差为0.03mm,准确率为99.64%。根据实验二结果统计,我们认为,零件尺寸的实验值的准确率高于98%时,对间距检测影响较小,可忽略。对于如何提高零件尺寸实验值的准确率,见如下分析。
图5 不同类型零件外径实验值与真实值对比
对实验一以及实验二的结果图进行分析可以看出,实验一以及实验二中,对于外径、间距,其真实值均大于实验值,为找出造成该情况的原因,本文对公式(5)以及公式(6)进行分析,分析过程如下:
式(6)表示,待测间距的实验值为k与待测间距像素值的乘积,其中,k值的确定由式(5)可以知道,为参照物的真实尺寸与像素尺寸的比值,真实尺寸为定值,即k值随参照物像素尺寸的变化而变化,参照物像素尺寸即为本文提供的模板图片的尺寸,在进行模板图裁剪时,会由于人工裁剪而导致模板图边缘处有一定的留白,从而使模板图的像素尺寸偏大,即式(5)中分母偏大,进而使k值偏小,进而使式(6)中待测间距的实验值偏小。
为使待测对象的尺寸实验值更加接近尺寸的真实值,在进行模板图裁剪时,减少模板图片边缘的空白,即可使值更加的精确,从而减小该误差。
模板匹配满足系统的精度需求,为本系统奠定了一定的基础,然而本系统的核心不仅在于模板匹配,是否满足实时效果同样是本系统的关键问题。要在物体移动过程中,达到实时返回物体间距的效果,图像处理速度,则成为尤为重要的指标。基于此,针对本系统图像处理的速度,开展实验三:准备三种不同类型的零件B、C、D,分为零件B 与C、C 与D组别,在不同组别间距检测时返回处理每一帧的时间。此时的时间即为本系统模板匹配与间距计算的时间和,若处理每一帧的时间能低于100ms或高于该时间较少,则实时性满足要求,并开展多次实验以减少偶然误差。图6 及表4 结果表明,在针对多类型零件开展的多次实验中,无论是结构复杂或是结构简单的零件,模板匹配与间距计算的时间和均波动于100ms 附近,其中处理时间最长的为105ms,高于100ms较少,最短处理时间为90ms,满足实时要求。
图6 不同类型零件间距测量时间
表4 不同类型零件间距测量时间极值与平均值
视觉检测系统在进行每一次测距实验时,对于获取的每一帧,首先进行模板匹配,继而对匹配到的模板获取的关键信息进行计算,效果图如图7 所示。若模板匹配不成功,一般是由于待测对象移动过程中受光程度不同而导致,此时直接跳入对下一帧的处理。
图7 间距实时检测
本文基于机器视觉原理,提出了一种匹配测量两物体之间距离的方法,通过测量前给出的模板进行模板匹配进而确定出图像中待测物体的关键点坐标,以此计算待测物体间的距离。并实现了在模板匹配误差小于2%、间距检测准确率高于98%的测量。主要工作总结如下:
设计了一种基于平方差模板匹配法的不同物体间距实时检测方法。该方法首先对获取的图像进行灰度化、阈值分割处理,通过给定的模板,对处理后的图片进行模板匹配,获得待测物体的关键点坐标,最终根据关键点坐标计算出不同物体的间距。
多次实验验证该系统在进行间距检测时有较快的数据处理速度以及较高的间距检测精度。对于每一帧,模板匹配与间距计算时间和波动于0.1s,在进行间距计算时能达到实时效果;同时保持较高的间距检测精度,间距检测准确率高于98%。
提出了一项新的机器视觉检测系统,减轻了在传统的检测系统中复杂的系统搭建问题,同时保持着较高精度。且该系统已应用于笔者所在的实验室内,通过与机械臂的联动,可实现对物体的抓取以及位置的实时跟踪。
笔者虽然在机器视觉测距技术上进行了一定程度的研究,但测距算法仍存在一定不足,并不能应用于所有场合,对于复杂或环境干扰较大的场合,还需对测距算法进行更深层次的研究。结合本文的不足,对未来工作做如下设想[12]:
(1) 本文的研究工作均基于固定单目相机的设备条件中,此设备条件下对于目标遮挡、死角拍摄等问题无法有效的解决。若通过多个相机协作拍摄,有望解决上述问题,同样的,相机移动也可以在未来进行深入研究。
(2) 待测物体在移动过程中,由于物体形状、大小等影响,会导致待测物体受光程度有一定的影响,从而导致模板匹配过程中无法正确、快速识别待测物体。若给予充分的光源使待测物体受光充分、均匀,未来有望解决上述问题。