基于机器视觉的沥青延度仪试模测量系统的设计与实现
2023-12-01■许林
■许 林
(1.福建省交通科研院有限公司,福州 350004;2.福建省交科计量技术有限公司,福州 350004)
沥青延度试验仪是用于测定沥青延度和弹性恢复变形能力的专用仪器,由主机、试模和底板组成[2]。 其中延度仪试模用于制作沥青标准试件,配合主机进行沥青拉伸试验使用,由于其形状为“8”字形,所以行业里也称之为“八字模”。 通常延度仪试模的校准主要使用的计量器具是游标卡尺。 由于延度仪试模本身并非固定一体成型的,是分散的、由两头的弧形端模和两侧的侧模拼接组成,在使用游标卡尺对试模尺寸进行测量的过程中,卡尺不可避免地会与试模发生触碰、挤压,从而导致试模部件间产生间隙,引入不小的测量的误差;另外,校准延度仪试模时,由于每个试模都需要测量4~5 个几何参数,批量校准、测量起来也是相当的非常费时费力的。 近年来机器视觉越来越广泛地应用于检测和测量领域,如:电子产品的生产、车身检测、机械部件缺陷检测及机械部件测量等。 结合实际计量校准、检定工作中遇到的问题,研究以延度仪试模为测量对象,运用机器视觉的技术,设计了一套试模测量系统, 为求在不影响测量准确度的前提下,更高效、便捷地实现延度仪试模的校准工作。
1 系统整体设计方案
机器视觉测量的工作原理是通过视觉传感器和图像采集系统,将目标的光线信号转换为图像模拟电信号,传送给图像处理系统[1],再利用计算机视觉算法和图像处理技术,提高图像质量,获取被测物的轮廓,识别图像特征,最终对目标被测物进行测量。
本系统主要由硬件和软件两大部分构成,其中硬件部分主要由光源、镜头、相机、图像采集器等组成,软件部分主要负责图像处理及数据分析,最终输出测量结果。
2 硬件的组成
硬件部分作为整个系统的基础,包括5 个关键组件:照明装置(光源)、镜头、摄像装置、图像采部件、图像处理器,具体连接如图1 所示。
图1 硬件连接图
本系统的光源选用了一款可调节亮度的平板作为背照式光源,选择背照式的光源,主要考虑到所获取的图像用于试模的轮廓检测和尺寸测量,并不需要被测物表面特征信息,背照式光源可以使被测物和背景产生很强的对比度,更易于图像轮廓的提取;系统的摄像头选择一枚CMOS 摄像头,因其低成本、低功耗的特点,成像质量虽然略低于CCD传感器,但是对于拍摄普通静态的图片,完全可以满足要求; 本次镜头采用了手动变焦工业相机镜头,焦距为16~48 mm,可以满足拍摄的视野范围和工作距离的要求。
3 软件的设计和开发
系统的开发是基于python 语言,整个过程包括前期的图像识别、处理以及后期的测量、计算,主要使 用 到opencv、numpy、scipy、matplotlib 等 扩 展 库。整体软件的设计考虑到以下几个主要模块:像素当量的标定、图像的预处理、轮廓的提取、尺寸的测量,主要流程如图2 所示。
图2 测量系统流程图
3.1 像素当量的标定
3.1.1 像素当量的定义
机器视觉测量中图像处理的结果是以像素为单位的,为了得到被测物的实际尺寸,必须建立物理尺寸与像素尺寸之间的关系,标定每个像素对应的实际物理尺寸,即为像素当量[1]。 理论上任何物体都可以作为像素当量标定标准参照物,但是实际上使用形状规则的标定参照物更便于图像的处理以及像素计算,本文选取标称长度为25 mm 的2 级量块作为标定参照物,2 级量块长度极限偏差为±0.60级量,远小于被测试模测量允许误差,可以忽略不计其长度偏差引入的测量误差的不确定度。
3.1.2 量块角点的识别
Harris 角点检测与Shi-Tomasi 角点检测都是经典且常用的角点检测算法,这些算法可识别图像中明显变化(如颜色、亮度等)的区域,本文使用了Shi-Tomasi 角点检测算法,因为相较于Harris 角点检测算法,Shi-Tomasi 算法在计算速度和角点定位的准确性上表现得更好。
首先将获取的原始图像转换为灰度图像,接着使用Shi-Tomasi 角点检测算法找到图像中前4 个最强的角点,效果如图3 所示。 可以看到图中发生角点识别错误的情况,原因可能是拍摄过程中混入了灰尘、杂质,使得图片产生小杂点,导致角点识别的错误。 为了去除这些零星小杂点,此处加入开运算处理, 即对目标区域进行先腐蚀再膨胀的处理,可以有效消除细小的噪声如杂点、 毛刺等。 再通过cornerSubPix 函数对这些关键点进行亚像素调整以提高定位精度,运行效果如图4 所示,4 个角点A、B、C、D 的像素坐标数据如表1 所示。
表1 量块角点的像素坐标
图3 量块原始图片角点检测效果
图4 经过图像处理后角点识别效果
3.1.3 像素当量的计算
在像素坐标系中,一般使用欧氏距离来计算量块2 个角点间的直线距离。假设图4 中A、B 2 个点在像素坐标系中的坐标分别为(xa,ya)和(xb,yb),则两点间的距离pixel_length 可以通过以下公式计算:
注意这个距离pixel_length 是以像素为单位的(即该距离中含有多少个像素点)。 根据式(1)中距离pixel_length 与量块实际物理尺寸的比例关系,就可以计算出每个像素点的长度:
式中:real_length 为量块边长的物理尺寸,单位mm;pixel_length 为图像中量块边长对应的像素数;length 为每个像素对应的实际长度(像素当量),单位mm/pixel。
像素当量换算结果显示,AB 线段像素数189.642698,物理尺寸为25 mm,像素当量为0.131827 mm/pixel。
3.2 图像预处理
图5 为相机采集的延度仪试模的原始图像,一般先要对图像进行预处理,目的是提高图像质量、减少噪声、增强特征。 常见的机器视觉图像预处理方法有:去噪、增强、平滑、灰度化、二值化、图像分割、图像校正等,这些方法可以根据具体的应用需求进行组合和调整,以达到最佳的图像预处理效果。本文中主要对图像依次进行了灰度化、去噪、二值化、形态学处理,最终提取试模的轮廓。
图5 采集的原始图像
3.2.1 图像去噪
虽然在图像拍摄采集过程已尽量控制环境因素、光照条件等因素的干扰,还是无法完全消除噪声的影响,为了减少噪声的干扰,在对图像进行灰度化处理后,考虑加入滤波进行去噪处理。 常见的滤波算法有:中值滤波、均值滤波、维纳滤波、高斯滤波等[1],本文采集的图像主要存在的是高斯噪声,高斯滤波可以有效去除图像中噪声,其原理是通过对图像进行平滑处理,使得噪声被模糊掉,从而减少噪声的影响。
高斯滤波函数其实就是正态分布函数,由于图像是二维的,需要使用二维的高斯函数,表示为:
式(3)中σ 是高斯滤波的标准偏差,它决定了图像的平滑程度,σ 值越大,滤波效果越好,但同时也会失去一些边缘细节信息[1]。 本文选用3×3 的卷积核进行卷积处理,去噪后效果如图6 所示,可以看出滤波处理后的图像,有了明显的平滑效果,有效消除了图像中存在的高斯噪声。
图6 高斯滤波后效果图
3.2.2 图像二值化
图像的二值化处理是将灰度图进行阈值分割,大于阈值的像素调为白色,小于或等于阈值的调整为黑色,也可以反过来。 常用的方法有:全局阈值法、自适应阈值法、Otsu 阈值法、迭代法等[3],由于此次测量采用背光拍摄, 背景和被测物灰度分明,形状颜色单一,没有复杂的细节,故选用全局固定阈值更为适用。
(1)OTSU 法。 OTSU 算法是一种常用的图形分割算法,可以自动确定图像的阈值,无需人为干预。它的基本原理是以最佳阈值将图像的灰度值分割成两部分(前景和背景), 使两部分之间的方差最大,即有最大的分离性。 图7 即为经过OTSU 法处理后的二值化效果,虽然整体效果较好,但是可以看到试模两头端模圆孔处以及内槽边缘,还存在一些阴影无法处理。
图7 OTSU 法二值化处理效果图
(2)直方图法。 由于OSTU 算法表现不是太理想,于是利用灰度直方图查看像素实际分布情况,如图8(a)所示,可以看出直方图呈明显的双峰状态,即:在灰度值0 点和255 点处2 个波峰(局部最大值),主要是被测试模和背景的像素[3]。 局部放大直方图灰度0 点附近区域,此区域主要是被测试模及其边缘阴影的像素集合,如图8(b)所示。 可以看到灰度值0 点附近的像素主要分布在[0,15),因此认为把阈值分割点选在灰度值20~50 可以有效消除阴影区域,选择固定阈值30,实际运行效果如图9 所示,较OSTU 算法,更有效地去除了边缘的阴影,整体表现比较理想。
图8 灰度直方图
图9 直方图法阈值分割效果图
3.2.3 形态学图像处理
图像经过高斯滤波、二值化处理后对于阴影部分去除的效果比较完美,但是可以看到被测物内部还是存在一些零星的小点和小裂缝,经过canny 算法提取边缘轮廓后如图10 所示, 可以明显看出瑕疵。 此处考虑使用闭运算去除这些瑕点、瑕缝,其原理是对二值图像先进行膨胀操作, 再进行腐蚀操作, 最终达到填补图像中的空洞及狭缝的作用,运行后效果令人满意,如图11 所示。 另外考虑到实际检测中试模的多样性、环境的复杂性,通常被测物还会存在毛刺、 小桥以及背景中混入一些小杂点,代码中也可以加入能够除去孤立的小点、毛刺和小桥的开运算,使图像处理能力具有更强的适应性。
图10 canny 算法处理后的轮廓提取
图11 闭运算处理后的轮廓提取
3.3 试模尺寸的测量
3.3.1 主要测量的参数
根据《沥青延度试验仪检定规程》(JJG(交通)023-2020)[2]中试模的计量性能要求:组装后的试模如图12 所示,内腔尺寸应符合表3 的要求。
表3 试模尺寸标称值
图12 试模形状示意图
3.3.2 试模特征提取
大部分机械部件的边缘都是由直线和圆弧组合而成,本文中的试模特征基本上也可以归结于直线和圆的结合[4]。 霍夫变换(Hough Transform)广泛地应用于图像中直线和几何形状的识别,此处在上文Canny 边缘检测的基础上,分别使用了霍夫直线检测(HoughLines)、霍夫圆检测(HoughCircles)2 个函数,从图像中识别并拟合目标直线和圆,并通过直线和直线、直线和圆弧的交点,结合角点检测算法,获取目标特征点,效果如图13 所示。
图13 特征提取
3.3.3 测量算法
(1)试模内腔总长l1。 首先识别内腔2 个半圆,对半圆轮廓进行圆拟合,连接弧形端模2 个小圆孔圆心C1、C2, 直线C1C2与内腔2 个半圆弧相交点A1、A2,线段A1A2即为内腔总长。 (2)(最小)横断面宽b1。 获取侧模2 条斜边,拟合直线,求其交点B1、B2,2 个交点的距离线段B1B2即为试模(最小)横断面宽。(3)端模口宽b2。利用Shi-Tomasi 角点检测算法在试模内腔中选取了E、F、M、N 这4 个角点为最佳候选点,线段EF、线段MN 即为端模口宽。 (4)内腔两半圆中心间距l2。 线段EM 和线段FN 的平均值就是内腔两半圆中心距。
3.4 运行效果展示
运行效果如图14 所示。
图14 运行效果展示图
4 实验结果与分析
4.1 测量系统与传统测量方式结果对比
测量系统与传统测量方式结果对比如表2 所示。
4.2 误差分析
从软件实际运行测试结果来看,机器视觉与传统校准方式对比未发生明显的数据偏差,当然测量系统还是存在各种各样的误差, 就本系统而言,主要的误差来源考虑以下几个方面。
4.2.1 环境因素的影响
机器视觉检测的效果很容易受到环境因素的影响,比如外界光照的强弱不均、拍摄过程中混入的杂质、被测试模表面划痕、脏污都会增加图像噪声,产生测量误差,影响图像的识别、轮廓的提取。
4.2.2 测量设备本身的误差
设备本身的误差主要包括镜头畸变、相机分辨率不足等。 镜头畸变分为径向畸变和切向畸变,通常来说镜头畸变是没办法完全消除的,一般来说可以通过相机标定算法来改善, 比如张正友标定法,通过校正算出镜头的畸变系数,一定程度优化了图片的径向畸变。
相机分辨率不足往往限制了测量的精度,从而增大了测量误差,本文中主要采用亚像素细分技术来提高图像系统的分辨率,降低分辨率引入的测量误差,同时也节省了系统硬件的投入成本。
4.2.3 人员操作引入的误差
测量过程中常常由于人员操作的不规范或者人工难以达到而引入测量误差,比如:镜头与被测物是否完全平行,被测物中心是否处于镜头的光轴上,被测物是否放置在镜头的工作距离上等,这些问题往往都需要从人员操作规范上加以控制,尽可能地降低误差[3]。 分析了误差产生的原因,可以采取措施减小环境、操作等引入的随机误差,通过技术手段有效控制相机分辨率、镜头畸变等系统误差。同时操作中也要综合考虑测量的需求,在合理范围内优化测量系统、控制误差的发生,但也不宜一味地为了提高测量精度、降低测量误差而过度投入,比如本文的测量对象沥青延度仪试模本身并非高精密零部件,检定规程对其测量结果的允许误差要求不高,所以此次设计中并未对成像模型的误差、透视误差、边缘检测算法的误差等展开分析与处理。
5 结语
由于研究时间以及实验条件有限,在系统的设计和实现上还有很多可以改进的地方,如误差的分析还不够系统很全面;图像采集设备的精度还有升级的空间;现有相机和镜头组成的硬件系统不适应于微距拍摄,对于小尺寸、高精度的机械部件的测量效果不佳等[4]。 总体来说,系统对于沥青延度仪试模的测量效果还是令人满意的,非接触式的测量方式,避免了传统人工测量的误差,自动化识别测量也很大程度上提高了工作效率,对应用于各类试模或者其他同类部件的检测、校准工作,具有一定实际意义。