吴禹伦,彭卫东
(中国民用航空飞行学院 航空工程学院,四川 广汉 618307)
随着计算机视觉技术的广泛应用,仪表读数图像识别技术广泛应用于电气系统、汽车无人驾驶等领域,而对飞机驾驶舱中的仪表却少有涉及。利用图像识别技术对飞机仪表进行读数识别,大大精简了飞行员监视飞机飞行状态所需要的精力和时间。现阶段,已有很多学者对指针式仪表读数识别进行了研究。目前,常见的指针式仪表自动判读方法有差影法[1-3]、霍夫变换法[4-8]等。李治玮等[1]利用最大灰度差构造无指针仪表图像模板,通过差影法将待测图像与模板图相减确定指针位置,但识别结果准确性受光照影响严重。利用霍夫变换法可提取指针中轴线,求得指针与零刻度线的夹角。该方法受光线干扰小,识别结果不易受图像中噪声点的影响,具有较强的鲁棒性。本文针对某一特征的指针仪表进行识别,具体表现形式为:表盘背景固定,刻度均匀分布在指针四周;指针形状为等腰三角形,指针位置跟随飞机状态发生改变。对图像进行二值化、形态学处理,并应用连通域法提取到清晰的指针图像,再基于霍夫变换计算得到指针与起始刻度夹角,利用角度法实现仪表读数的自动判读。
待识别图像的颜色格式是RGB色彩格式。以飞机迎角表为例,原始图像如图1所示。本文以识别指针读数为研究重点,先决条件是仪表水平放置,且指针式仪表与摄像头位置相对固定。在平行光下进行拍摄,拍摄过程中光照条件不发生剧烈改变。
对指针式仪表进行读数识别分为3个部分——图像预处理、图像处理以及图像识别。通过上述步骤完成指针所在直线的提取,利用指针所在直线与指针式仪表刻度之间的对应关系,实现指针式仪表读数识别。
图像预处理包括图像灰度处理和图像二值化。
1.1.1 图像灰度处理
待识别图像为彩色图像,为提高算法效率,需先将图像进行灰度化处理。利用灰度处理将彩色图像转换成灰度图像,采用加权平均法进行灰度处理。RGB色彩格式表明图像色彩由红、蓝、绿3个基本颜色构成,根据人眼对3种颜色敏感程度的强弱顺序为绿>蓝>红,即绿色通道权值为最大,红色通道权值最小[9]。
对图形进行灰度处理,公式为:
经过灰度处理的图像最显著的变化是将原有24位真彩色图像转换为8位灰度图,数据量减少为原来的1/3,同时并未减少与读数识别有关的关键信息。指针式仪表图像灰度处理结果如图2所示。
图2 指针式仪表灰度处理结果
1.1.2 图像二值化处理
图像二值化是在灰度图像的基础上,设置合理的阈值将图像分为前景和背景两部分。具体做法为遍历图像所有像素值,以阈值为判断条件。当图像点像素值大于该阈值时,该图像点赋值为0xFF;当图像点像素值小于阈值时,该图像点像素值赋值为0。图像表现为黑白效果。图像二值化可去除一些干扰因素,与识别相关的有用信息不会丢失。二值化处理可突出前景目标,将识别对象与背景分离。
根据图像处理知识可知,红、黄、黑三色在任何光线条件下灰度值均小于白色。同时,在不同光线条件下对该仪表进行多次拍摄实验发现,受指针材质影响,指针的亮度略高于表盘的其他部分。在进行图像灰度处理后,指针的灰度值也会略高于表盘中其他区域的灰度值。所以,将阈值设定较高有助于分割图像。指针式仪表图像二值化结果如图3所示。
由图3可知,指针会与白色刻度块和字符发生重叠。利用图像形态学处理进一步突出指针,在此基础上进行指针提取。
1.2.1 指针区域分割
当指针顶部与白色刻度区域重合时,指针一侧连接部位较狭窄;当字符与指针重叠时,指针周围会出现细小的黏连像素。采用图像形态学开运算与图像腐蚀处理实现指针图像分离。
图3 指针式仪表二值化图像
图像形态学处理中,无论进行何种图像处理都需要设置结构元。结构元是图像处理的最小单元,图像与结构元进行卷积运算实现图像开运算,结构元与图像进行与运算来实现图像腐蚀操作。本文利用半径大小为1(像素)的圆形结构元(‘disk’)进行图像形态学处理。形态学开运算常用来做消噪处理,可选择性地保留目标图像中符合结构原色几何性质的部分,过滤掉残损的部分[10]。图像腐蚀是图像由外向内收缩的过程,同时若目标区域中含有细小连接部分,可通过腐蚀处理对区域进行分割。指针图像分割结果如图4所示。
图4 指针图像分割结果
1.2.2 指针提取
首先利用连通域法提取图像指针,并标记为不同的颜色,如图5所示。确定图像连通域后,利用特征进行指针提取。
图5 连通域法处理结果
对图像中各个区域进行面积统计,确定指针区域面积值。经多次试验发现,指针区域面积分布在400~500(像素个数)之间,且指针外接矩形的长宽比变化较小。根据上述特征提取指针像素分布区域,提取结果如图6所示。
图6 指针区域提取结果
由图6可见,经过连通域和特征提取处理,图像中干扰被去除,仅存在指针像素区域。
在提取到指针后,首先进行骨架提取,并利用Hough变换找到指针所在直线。找到直线与水平向右方向夹角与刻度的对应关系,实现仪表读数识别。
1.3.1 指针骨架提取
利用骨架提取算法进行指针骨架提取,从而确定指针所在直线。根据指针骨架图像确定指针所在直线的斜率,找到斜率与读数间的对应关系,实现读数识别。
根据指针的形状特征,指针具有灰度中线对称性,可应用基于迭代的拓扑细化算法实现指针中轴线的提取。本质是由外向内逐层腐蚀图像,直至图像中仅存单像素指针骨架。图像骨架提取要满足两个条件:(1)要保证图形的连续性;(2)应尽可能避免图像骨架提取过程中产生毛刺。指针骨架提取结果如图7所示。
图7 指针骨架提取结果
1.3.2 指针直线提取
经过上述图像处理后,图像中仅剩余仪表的指针骨架,需先确定指针所在直线。指针骨架形状特征表现为连续直线,可采用直线识别算法实现指针提取。现有大量算法可进行直线检测,如链码算法、神经元DOG函数以及最小二乘法直线拟合等。但是,现阶段直线识别应用最广泛、算法最成熟的仍然是霍夫(Hough)变换。所以,本文采用霍夫变换实现指针直线提取。
霍夫变换是基于点与线的对偶性,将像素点在直角坐标系中的坐标转换至参数空间求极值点的过程[11]。直线在直角坐标系中可以用y=kx+b,其中k表示斜率,b表示截距。对于图像中任意点A(xn,yn),都可以表示为b=-kxn+yn,表明图像中任意一点A’(xj,yj)都可以在参数空间中找到一条对应直线。同样,直角坐标系中直线上的点均满足上述关系。根据对偶性原则,参数空间中的这些直线相交于一点,利用霍夫变换确定参数空间中的交点坐标便可实现直线检测。
霍夫变换利用图像坐标空间与参数空间的对偶性,针所在直线的提取结果如图8所示。经过霍夫变换后,指针骨架边缘变得更为光滑,也去掉了指针骨架提取时残留的毛刺像素。
1.3.3 指针读数计算
本文侧重点是关于指针式仪表读数识别的研究,读数前需要将表盘校正至水平方向。由图1所示,图像像素点坐标已知,且拍摄过程中仪表位置不会发生明显变化。所以,在进行图像识别前预先确定表盘中心大致位置,根据圆心将表盘分成4个区域,如图9所示。
图8 指针所在直线提取结果图
图9 表盘区域划分
当指针所在直线落在每个区域时,直线的起点与终点相继确定:靠近表盘中心的端点为(X1,Y1);远离表盘中心的端点为直线终点坐标为(X2,Y2)。因此,指针所在直线在4个象限的对应角度值如表1所示。
表1 指针位于不同区域对应的角度值
表1中,α表示指针所在直线与水平的夹角,取值范围是0°~90°。
如图10所示,图中M0表示仪表起始刻度,M2表示仪表终止刻度,M对应仪表总量程,M1为测量的仪表读数。首先利用HOUGH变换测量仪表总量程对应的角度,记为θ。然后再测量起始刻度与指针所在位置之间的角度,记为β。这样,仪表读数可由公式(2)表示:
将人工读数识别结果与图像识别程序识别结果进行对比分析,如表2所示。
图10 仪表读数示意图
表2 不同位置的指针仪表结果
识别数据显示,该识别仪表算法测得的指针式仪表读数与实际目测结果偏差较小,最大偏差为0.012,说明设计的算法具有较好的仪表读数识别性能。
以飞机迎角表为例,对飞机上的单指针仪表进行以飞机迎角表为例对飞机上的单指针仪表进行读数识别,利用图像灰度值特点,突出前景目标。经过图像形态学开运算去除指针周围的像素黏连。利用连通域法结合指针像素特征进行指针提取,对指针式仪表盘进行区域划分,得出指针的方向;利用霍夫变换检测指针所在直线的对应角度,根据角度与仪表读数对应关系完成指针式仪表读数识别。通过实验表明,测试结果与指针式仪表实际读数误差较小,表明该方法在一定条件下有效、可行。但该算法还存在不足的地方,如没有考虑光线条件对仪表读数识别的影响、图像发生旋转时的图像校正、以及在识别之前需要预先确定仪表起始刻度位置对应的角度,因此对于上述几种情况还需进一步研究。