吴禹伦
(中国民用航空飞行学院 航空工程学院,四川 广汉 618307)
飞机驾驶舱仪中存在着大量旋钮,飞行员在飞机运行过程中通过旋钮对飞机仪表进行调节,从而保证飞机安全运行。本文拟进行识别的旋钮形状为圆形,旋钮表面有指示线指示其对应档位,这种旋钮常具有固定档位。因其形状与指针式仪表相似,所以可以借鉴指针式仪表进行识别。
现在关于指针式仪表读数图像识别的研究很多。文献[1]分别利用二值化、连通域提取、图像细化等图像处理方法提取指针,利用指针顶点和底点坐标位置关系以及指针图像坐标完成读数识别。文献[2]概述了几种常用的仪表读数识别检测方法,提出了一种基于计算机视觉的仪表读数方法。首先对图像进行滤波处理以改善图像质量,并改进类间方差法(Otsu)进行,实现仪表图像的二值化。其次,提取仪表的边缘,采用骨架提取方法提取指针。最后,利用最大梯度下降法实现指针读数识别。文献[3]改进了梯度下降法提取直线的缺点,且在对比度较低时优势明显,但抗噪性差。为克服外界环境的影响,文献[4]在进行图像处理前利用图像中值滤波和基于Retimex 的图像增强算法进行图像预处理。该方法对外界复杂因素的影响具有较好的鲁棒性。
本文以位于飞机驾驶舱仪表板上的旋钮为原始图像,如图1 所示。以识别旋钮所在档位为研究重点,先决条件是旋钮水平放置且在识别过程中旋钮位置与摄像头位置相对固定。由图1 可知,该图像中最长的直线为旋钮指示线,且该指示线像素值与其他区域像素值相差明显,所以可以利用像素值特征提取旋钮指示线。如图1 所示,旋钮一般具有几个固定档位。分别确定指示线位于这些档位时所在直线在参数空间的角度,当旋钮旋转到某一档位时,找到其对应的角度,即可确定旋钮当前的档位。
图1 旋钮原始图像
对旋钮工作状态进行图像处理的目标是提取图像中旋钮指示线,同时去除图像的干扰像素信息,包括图像灰度处理、图像二值化和图像腐蚀3 个环节。
2.1.1 图像灰度处理
旋钮工作状态图像识别的核心是提取旋钮指示线,与颜色无关。利用灰度处理将彩色图像转换成灰度图像。采用加权平均法进行灰度处理,处理公式如下:
GrayBuf[i]=(Inage[3*i+2]*76+Image[3*i+1]*150+I mage[3*i]*30)
经过灰度处理的图像最显著的变化是将原有24 位真彩色图像转换为8 位灰度图,在减少数据量的同时保留了关键数据。旋钮图像灰度处理结果如图2 所示。
图2 指针式仪表灰度处理图像
2.1.2 图像二值化处理
图像二值化是设置合理的阈值将图像分为前景和背景两部分。具体做法是遍历图像所有像素值,以阈值为判断条件,当图像点像素值大于该阈值时该图像点赋值为0xFF,当图像点像素值小于阈值时该图像点像素值赋值为0。利用灰度直方图对图2 的灰度值进行统计,确定旋钮指示线的灰度值,以此为二值化阈值对图像进行处理。图像二值化结果如图3 所示。
图3 旋钮二值化图像
可见,经过二值化处理后,旋钮图像中与示数等无关信息被去除,同时图像中存在的阴影被去除,进一步突出了旋钮指示线像素信息。
2.1.3 图像腐蚀处理
利用腐蚀函数进一步去除图像中的残留干扰像素信息,具体做法可以分成两步。
(1)建立结构元素。结构元素又称图像掩膜,是图像处理的最小单元。建立一个3×3 的结构元素,常用的两种结构元素为十字交叉型和标准的正方形。十字交叉型结构元素可以保留图形的细节信息,但是腐蚀速度较慢。相比之下,标准正方形结构元素则在腐蚀大区域像素时效果更好,但是会丢失图像细节信息。
(2)图像遍历。将结构元素与图像重合,找到图像像素的八邻域像素中掩膜值为1 对应的像素中的最小值,将其设置为该点像素值。多次遍历所有像素点,直到去除图像中干扰像素点为止。将上述两种结构元素相结合对图像进行腐蚀,腐蚀结果如图4 所示。由图3 可见,腐蚀函数将与旋钮工作状态识别无关的像素全部去除,并且没有影响旋钮指示线的连续性。
图4 指针式仪表腐蚀处理图像
2.2.1 旋钮指示方向的确定
旋钮多为类似圆形的形状,档位线常常分布在圆形四周。旋钮的两个档位存在分布在一条直线上的可能,会给读数造成困难。所以,在识别前将旋钮分为4个部分,比较旋钮指示线在4 个区域内的像素点数,确定其所在位置,区分在一条直线上的档位。根据先决条件可知,旋钮的位置相对固定,识别前可预先人为确定旋钮中心像素点位置,将旋钮图像大致分为4个位置。统计像素坐标分布位置,找到分布点数最多的区域,即为旋钮指示线的方向。
2.2.2 旋钮指示线角度确定
经过上述图像处理后,图像中仅剩余旋钮指示线像素。确定该指示线所在直线的最常用方法为霍夫(Hough)变换。霍夫变换(Hough)受图像中噪声影响较小,识别结果精度较高。
霍夫变换一般被称为线-点变换,利用线与点的对偶性,位于图像空间中的一条直线在参数空间中有唯一一点与之对应。它将直角坐标系中线变为极坐标系中的点。在霍夫变换中,直线方程式的极坐标形式为:
其中,ρ为在直角坐标系中这条直线到坐标原点的距离。在直角坐标系中,α表示该直线的法线与x轴的夹角。
霍夫变换利用了直线与点的对偶性,即位于图像空间中的一条直线在参数空间中有唯一一点与之对应[3]。采用投票机制,将参数空间离散细化成多个小单元,并在每个小单元中设置一个累加器,每个累加器的坐标为(β,ρ)。将图像中非背景点的坐标带入式中,遍历(-90°,90°)上所有点求出对应的ρ值,并在对应的累加器(β,ρ)上进行累加。找到累加器中最大值位置坐标,即所求直线对应的参数。霍夫变换的另外一个优点是这种形式有效解决了直线斜率为0的情况。
由霍夫变换原理可知,首先要对参数空间进行离散化。离散化提高了检测直线的精度,同时增大了霍夫(Hough)变换的计算量,所以应对参数空间进行合理划分。β角的取值范围设定为-90°~90°,将其离散成300 个取样点,则共有300 个离散点。设置的ρ的离散点为600 个,则极径最大长度被离散成600 个点,则霍夫空间共由180 000 个离散点构成。为减少计算量,提高运算效率,提取旋钮指示线的像素坐标,并将其带入霍夫(Hough)变换进行计算,得到该直线所在霍夫空间。遍历参数空间,找到最大值点对应的坐标,即为直线在参数空间的参数。
首先,验证霍夫变换检测旋钮指示直线的位置。用图5 进行验证,结果分别为-25.585 3°和-90°。
经上述图像测试可知,霍夫(Hough)变换识别结果准确,可用于识别旋钮指示线所在直线。图4 中的两条直线为平行关系,在遍历霍夫空间寻找最大值时会找到两个最大值。因为本文是以角度确定直线,仅需扫描到第一个极大值即可。
利用霍夫变换检测图1 中6 个档位对应的角度分 别 为 -90 °、-45.451 5 °、0.900 83 °、45 °、90.127°、-45.451 5°。结合前文旋钮指示方向确定方法,即可实现读数识别。
图5 检测直线图像
本文利用旋钮指示线像素值与其他颜色像素值相差明显的特点,将旋钮指示线从背景中分割出来,再经过图像形态学处理腐蚀操作得到旋钮指示线所在直线,然后对旋钮图像进行区域划分,得出直线方向;利用霍夫变换检测档位对应角度,根据角度与旋钮档位对应关系完成旋钮档位识别。实验表明,测试结果与旋钮实际所在档位误差较小,表明该方法在一定条件下有效、可行。但是,该算法还存在不足的地方,如不同光线条件对旋钮档位识别的影响。因此,对于上述两种情况还需进一步研究。