蔡永洪, 孙晓辉
(1.广州计量检测技术研究院,广东 广州 510663;2.广州工程技术职业学院,广东 广州 510075)
随着计算机与信息技术的发展,机器视觉技术迅速在工农业生产、智能交通、在线检测等领域[1~12]得到广泛应用和研究。其中,在检测应用方面,机器视觉技术因其信息化和自动化集成度高、现场作业能力强,越来越受到相关专业人员的关注[13~16]。
玻璃量器是一种用来度量液体介质容积或提取定量容积液体介质的工作计量器具,其材质为透明玻璃,玻璃外壁标有计量用的刻线。常见的玻璃量器有容量瓶、吸量管、量筒、量杯等,大量应用在生产、研发和检测领域。使用时,液体介质注入玻璃量器内,通过人眼读取液面对应数值,以视线、标线与液面处在同一水平面为正确操作[17]。这个操作对人眼视力和判断力要求较高。目前,关于玻璃量器自动化检测技术的研究报道绝大多数是与数据处理有关,而有机器视觉技术的应用研究较少。由于玻璃量器读数需要平视、示值需要估读而容易引入粗大误差,这些是机器视觉应用时需要解决的关键技术问题,其中如何实现摄像头自动平视玻璃量器标线是首要解决的问题之一。
使用摄像头代替人眼观察并判断液面是否达到与标线相切的位置,其关键是摄像头应“平视”标线,即摄像头与标线在同一水平面上。然而,不同规格的玻璃量器的标线所在位置是不同的,需要控制摄像头从当前位置移动到平视位置,这就需要首先获取平视位置。
摄像头成像模型如图1所示,当摄像头与标线AB不在一个水平面上(即不在平视位置)时,“看”到的标线呈开口的裂缝状。显而易见,摄像头越接近平视位置,像面上的标线开口就越小;达到平视位置时,开口作闭合状,标线在像面上为一条水平线段。因此,可以使用标线成像的开口大小的变化来判断摄像头距离平视位置的大小,并以其变化量来预测平视位置。
图1 摄像头成像模型
根据图1中几何关系,不难得到标线成像开口大小的算式:
(1)
式中:B′A′是标线成像开口大小;W、P分别是物距和像距;D是标线直径;Δh是摄像头距离标线的垂直距离。
由式(1)可知,标线成像开口大小与Δh成正比,即
B′A′∝Δh
(2)
为了预测平视位置,需要计算标线成像开口的变化量,若将摄像头的位移等效为标线的相对运动,则标线在运动坐标系与在图像坐标系的对应关系如图2所示。
图2 运动坐标系与图像坐标系的转换
图2中纵坐标Y、y表示标线所处的位置,这里取BA、B′A′的中点位置。当标线从Y1运动到Y2时,对应图像上的坐标则从y1变化到y2。根据图中几何关系,可以得到下面关系式:
(3)
式中:Y0、Y1、Y2和y0、y1、y2分别是标线在运动坐标系和图像坐标系的位置,其中下标0表示平视位置。
若用摄像头在运动坐标系的高度来表示,则变换为
(4)
令d1、d2表示位置1和2处标线成像开口的大小,根据上文所知成像开口大小d与Δh成正比,故有:
(5)
根据式(4),将式(5)改写为
(6)
根据式(6),可以计算得到图像坐标系里的平视位置y0:
(7)
根据式(4)和式(7),可以计算得到运动坐标系里的平视位置H0:
(8)
在Lab VIEW平台上使用VISON模块开发了摄像头自动平视容量瓶标线程序,程序流程框图如图3所示。
图3 自动平视标线算法流程框图
程序执行时,首先摄像头在高度为H1处采集图像,分析图像得到标线成像开口大小d1和标线几何中心像素坐标y1,然后移动摄像头至高度H2,同样得到d2和y2。根据式(7)和式(8),计算摄像头平视位置的高度H0,作为新的目标高度Hi=H0(i=3,4,…)。移动摄像头至目标高度Hi,再次采集图像,分析得到di。判断di是否小于等于阈值δ。“是”为达到平视位置,程序退出。“否”则继续判断di是否小于等于di-1。当di小于等于di-1时,设定新的目标高度为Hi+1=+sgn(Hi-Hi-1)·S,S为移动步长,即继续沿Hi-1→Hi的方向增加一个步长。当di大于di-1时,设定新的目标高度为Hi+1=-sgn(Hi-Hi-1)·S,即反方向移动一个步长。这里sgn(*)表示取*值的符号。于是,摄像头再次移动到新的目标高度,重新采集图像进行分析和判断,如此重复直到程序退出。
作者研制开发了一套容量瓶机器视觉系统。该系统包括摄像头、升降机构、拍摄场景等硬件和图像处理软件。容量瓶放在拍摄场景内,摄像头安装在升降机构上,在容量瓶正前方。该视觉系统使用至少2个像素识别最小特征——示值标线,结合物距、像距和视场大小等参数进行设计,图像大小为800×600像素。图像处理软件的前面板如图4所示,包括视频窗口和多个输入输出数值控件,其中右侧3列数组分别记录了每次采集图像后分析得到的标线开口大小(mark differ)、图像坐标系中标线位置(mark average)、运动坐标系里摄像头高度(array h_cam)。保持视觉系统在相同条件下进行实验,每次实验摄像头都从相同的高度开始采集图像,当采集到的图像中标线开口尺寸≤3像素时可认为摄像头达到平视高度。这里选用了3个像素而不是2个像素作为平视的判定标准,其误差是人眼难以察觉的,却能带来工作效率的提升。
图4 容量瓶机器视觉软件前面板
图5为标线高度与摄像头高度的预测值。图6和图7分别是实验过程中标线开口大小变化和摄像头高度变化的趋势图。
图5 标线高度与摄像头高度的预测值
图6 标线开口大小的变化趋势
图7 摄像头高度的变化趋势
图6和图7的实验编号为No.1~No.7, 其横坐标是图像采样时序,摄像头每到达新的高度都会重新采样。由于摄像头的初始高度和初始步长不变,所以每次实验采集的第1个图像和第2个图像都应该是相同的,那么理论上根据同样的图像进行分析和计算的结果也应该相等。然而,由图5看出,理论计算的结果并不完全相同,说明图像在处理分析——标线边缘检测与特征提取的过程中产生了偏差,正如图6采样时序2所示标线开口大小出现了差异。另外,从图6的趋势可以看出,标线开口越小即越接近平视时,实验的重复性越差,实验No.3和No.4仅需6次采样便达到平视,实验No.2却经历了11次采样才达到平视。这是因为边缘检测的误差相对平视判定标准(标线开口尺寸≤3像素)较大,是重复性实验不确定性的主要来源。
由图7可知,经历了3个拐点达到平视的实验有1个(No.2),经历了2个拐点达到平视的实验有2个(No.5、No.6),经历1个拐点即达到平视的实验却有4个(No.1、No.3、No.4、No.7),这说明本文提出的自动平视标线算法效率较高。
本文为实现摄像头自动平视玻璃量器容量标线提供了一种高效的算法。鉴于标线提取误差是影响重复性的主要不确定因素,为机器视觉系统选用高清的成像器件,改善场景条件,以及对图像进行必要的操作和处理(如边缘增强),以提高标线检测和分析的精度,提供了重要的措施,有助于增强算法的鲁棒性和准确性。