基于霍夫变换与时频域特征的VNE指示图像自动识别
2022-04-27刘辉煌王国潞占日新
刘辉煌, 王国潞, 李 雷, 占日新
(1.中国直升机设计研究所,江西 景德镇 333001; 2.中国人民解放军32075部队,江苏 南京 210018)
不可超越速度(Velocity Never-Exceed,VNE)是指飞行器禁止在该速度以上运行,否则会导致机体结构损坏、操纵失效或其他直接影响飞行安全的情况出现[1]。在直升机试验试飞时,不可超越速度是衡量直升机性能的一项重要指标,在其制定过程中需要经过严格的理论验证和试飞论证,其测试结果也将直接影响到新型号的经济性和市场前景。
VNE分为有动力和无动力两种,前者表示发动机正常提供动力时的不可超越速度,后者表示脱开发动机动力状态时的不可超越速度,两者都受高度、旋翼转速、温度和质量的影响[2]。在VNE的测试中,其计算模型将多个机载传感器变量作为输入,通过改变输入值来对比空速表上VNE值是否与实际计算值相等。因此在常规测试中,往往需要人工输入测试用例,并采用目视估计进行测试用例比对,不仅费时费力,而且测试准确率不高,给直升机性能参数测试论证带来很大困难[3-4]。此外,VNE测试为实现覆盖测试所需的用例多、结合地面联试的特点,测试用例的执行总次数将非常庞大。
近些年,从设备的显示界面出发,各种自动化测试方法不断被提出,且取得了不错的效果,其主要原因在于能够从非结构化的图像中提取结构化的描述,具有较强的针对性,而且能够确保系统的安全性。一般而言,采用人工智能算法可确保一定的效率和精度,但是其缺点是具有较高的复杂度,而且鲁棒性无法得到保证。而采用传统的识别方法往往无法对特征进行有效的提取,因此存在识别率低的问题。而且在测试过程中,采集图像时容易受到环境光照和各种噪声的影响,从而导致VNE的自动准确识别具有较大挑战性[5]。
为了实现VNE的自动准确识别,本文提出一种基于霍夫变换和时频域特征的VNE自动识别算法。为了缓解环境中噪声带来的影响,采用高斯滤波对图像进行增强处理,避免因噪声带来后续的误识别。然后将图像转化为二值图像,并采用霍夫变换对图像中的直线进行检测,通过先验信息筛选得到有动力VNE和无动力VNE指示线。为了获得指示线对应的读数,同样采用霍夫变换定位并提取到实时空速区域,并从时域和频域构造图像的LBP(Local Binary Pattern,局部二值模式)和感知哈希融合特征,进而进行模板匹配识别读数,最后定位到实时空速区域上下刻度的位置,利用相对位置关系估算得到指示线的VNE值。将该识别算法集成到VNE自动测试系统中,在软件层面实现了自动化测试,从而为VNE自动化测试系统的实现提供了可行性和可靠性论证,为直升机性能参数自动化测试等提供了新的思路。
1 自动化测试框架
在自动化测试场景中,基于图像识别技术的VNE自动化测试系统架构主要包括图像采集、图像自动识别和测试结果显示与输出三大模块。主要流程可以概述如下。
① 相机接收到计算机给出的触发信号,开始采集图像,并将采集到的图像传输给计算机,每一次触发信号采集一帧图像,并对应一个测试用例。
② 计算机在接收到图像数据后,首先进行图像预处理,随后提取空速刻度带区域,并定位到有动力VNE和无动力VNE指示线。之后,提取刻度带上实时空速区域,并对实时空速进行识别,从而定位到当前画面中任意的两个刻度所对应的值和位置,最后通过位置关系换算得到有动力VNE和无动力VNE所对应指示线的值。
③ 将有动力VNE和无动力VNE识别结果与测试用例基准值进行对比,从而得到测试结果并输出。
2 VNE指示图像自动识别算法
VNE自动识别算法作为自动测试系统中的核心部分,通过对已采集的图像进行空速表区域提取、图像预处理、指示线定位、实时空速上下刻度识别和VNE估算等一系列算法处理,从而将识别的VNE值和测试用例进行比对,得到最终的测试结果输出,VNE自动识别流程如图1所示。
高斯滤波作为自动识别算法的预处理操作,主要为了缓解环境因素所带来的噪声干扰,增强图像的细节表现。指示线定位主要采用霍夫变换进行处理,从而准确有效地检测到图像中的直线,并通过长度等先验信息筛选有动力VNE和无动力VNE指示线。实时空速识别与位置获取主要为了获得实时空速区域,并识别对应的空速值,最终采用时频域特征结合的方式获得指示线对应的刻度值,从而计算有动力VNE和无动力VNE。
3 空速表区域提取与指示线定位
3.1 空速表区域提取
在自动化测试过程中,图像尺寸成为制约VNE识别速度的主要因素,为了提升算法的识别效率,仅提取空速表区域进行处理。由于测试图像为固定位置的相机所采集,图像中空速表的位置不变,通过交互提取空速表的左上和右下顶点坐标,并定位后续图像中的空速表区域。
由于环境中光照变化、硬件电路元器件相互影响和图像传输过程中存在噪声等因素,导致采集的图像受到一定程度的噪声污染,因此需要对其进行去噪、增强等处理,从而凸显细节区域。
图1 VNE自动识别流程
高斯滤波[6]是一种线性平滑滤波,通过对图像中每个像素点本身和其邻域进行加权平均,从而达到去除图像中噪声和平滑图像的目的。高斯模板由高斯公式计算得到,表达式为
(1)
式中:(x,y)为滤波器的中心像素点坐标;σ为标准差。本文分别对图像的R、G、B三个通道进行滤波处理,再将3个滤波后的通道图像进行合并,经过高斯滤波后的图像如图2所示。
图2 图像高斯滤波结果
从图2中可以发现,经过高斯滤波后的图像细节信息更为明显,局部特征保留完好,有利于后续VNE值识别。
3.2 VNE指示线定位
霍夫变换作为一种从图像空间到参数空间映射的方法,具有清晰的几何解析性,容错性和鲁棒性较好,而且具有较可靠的直线提取能力,因此能够有效提取图像中的直线特征,获得不同颜色和线型的指示线位置[7-8]。其基本原理是利用点与线的对偶性,将图像坐标系中一条直线上所有点通过参数表达式转换到参数坐标系中,形成N条直线,将检测问题从原始图像空间的整体变换到参数空间中的局部问题[9-10]。
直线在直角坐标系下的直线方程式为
y=kx+b
(2)
式中:k为斜率;b为截距;(x,y)为直线上任意一点的坐标。当使用霍夫空间参数为ρ-θ时,将直角坐标系中的某一直线使用参数方程表达式变换到极坐标系中,极坐标方程为
ρ=xcosθ+ysinθ, 0≤θ≤π
(3)
将直角坐标系中任意一点(xi,yi)作为已知量,那么k、b为变量坐标。将极坐标系(ρ,θ)作为变换空间,点(xi,yi)在极坐标系中的参数方程式为
ρ=xicosθ+yisinθ, 0≤θ≤π,ρ≥0
(4)
式中:x=ρcosθ;y=ρsinθ;ρ为极点O与点P的距离;θ为射线按逆时针方向与极轴的夹角。直角坐标系中直线上的所有点通过极坐标方程转换到极坐标系中可以得到N条正弦曲线,且聚焦于同一点。
有动力VNE和无动力VNE指示线具有明显的颜色区分性,红色实线代表有动力VNE指示线,红白相间线表示无动力VNE指示线。为了识别红色线,采用颜色特征将像素点逐一判别转换为二值图像。指示线的定位采用霍夫变换进行直线检测,并利用长度等特征筛选符合条件的直线,从而得到有动力VNE指示线的上下端,进而得到刻度线的中心位置。二值图像与其对应的霍夫空间如图3所示。采用同样的步骤对无动力VNE指示线进行处理,得到的二值图像和其对应的霍夫空间如图4所示,定位结果如图5所示。
图3 有动力VNE二值图像及对应的霍夫空间
图4 无动力VNE二值图像以及对应的霍夫空间
图5 有动力VNE和无动力VNE指示线定位结果
4 实时空速识别与位置提取
4.1 基于时频域特征的模板匹配
模板匹配[11-12]作为一种高效的图像相似度计量方法,其将待识别图像或图像区域中提取的若干特征量与模板相应的特征量逐个进行比较,计算它们之间归一化的互相关量,并将图像分到最大互相关量对应的类。在匹配过程中,图像相似度计算是对两幅图像进行相似程度打分,根据分数的高低判断图像内容的相近程度。其中常见的相似度计算方法有直方图匹配[13]、奇异值分解(Singular Value Decomposition,SVD)[14]和特征点相似性[15-16]等。直方图匹配方法反映的是图像像素灰度值的概率分布,而忽略了像素在图像中的位置信息,而且采用归一化相关系数计算向量的相似性,会导致图像的空间信息丢失,因此度量结果具有一定的局限性。SVD是基于图像整体的表示,虽然通过SVD可以得到稳定、唯一且低维度的特征描述,提高抵抗干扰和噪声的能力,但是由于SVD得到的奇异矢量中有负数存在,难以较好地解释其物理意义[17]。基于特征点的相似性度量方法主要思想是提取图像特征点,以此表示图像中的角点、拐点等信息,最后通过两幅图像特征点的个数或差异衡量其相似程度。常见的特征点表示方法有Harris角点[18]、SIFT特征点[19-20]、LBP特征点[21]和感知哈希编码[22]等。
LBP算法一般用来描述图像局部纹理特征,在图像处理和计算机视觉领域具有广泛的应用。由于LBP主要用于描述图像局部纹理特征,通过测量像素与其周围像素之间的差异,并捕获局部图像纹理的空间结构[23],有利于描述各种复杂场景下的图像,十分适用于低维图像特征表示。LBP编码的计算方式为
(5)
(6)
式中:gc为中心像素的灰度值;gp为半径R圆域内像素的灰度值,其中,下标p为邻域内每个像素点对应的标号,p=0,1,…,P-1,P为邻域像素点个数。
操作算子CLBP_P,R通过中心像素点周围的P个像素产生2P个不同的二进制模式,但是图像一旦旋转,相邻像素将沿着围绕中心像素的圆周相应地移动,因此将产生不同的CLBP_P,R值。为了获得唯一的CLBP_P,R值,研究者提出了旋转不变LBP[24],对应表达式为
(7)
(8)
仅采用LBP特征来衡量两张图像相似度往往只关注时域内容,而忽略了图像频域上的差异,因此具有一定的局限性。为了增强模板匹配的稳定性和准确性,本文采用时频域特征融合的相似度计算方法,分别提取目标图像和匹配图像中时频域特征,并将其进行编码和融合,计算其相似度。感知哈希算法具有良好的频域特性,计算过程较为简单,其原理是采用离散余弦变换来获取图像的低频成分,有效减少了图像中的冗余特征,并且有效避免伽马射线校正或颜色直方图被调整所带来的影响[25]。但是,由于感知哈希算法仅考虑了图像的低频分量,而忽略了高频分量带来的影响,因此损失了图像中对边缘和轮廓的度量。为了避免图像频率分量的损失,本文将频域图像分块,并分别计算每个图像块的哈希编码,最后对所有图像块哈希编码进行连接。综合考虑时域和频域特征上的优势,将图像进行LBP特征提取之后,再采用感知哈希算法进行编码,从而得到时域特征,将时域编码和频域编码进行连接,得到图像的时频域特征表示。最后对目标图像和匹配图像的特征进行异或运算,从而得到相似度。基于时频域特征的模板匹配过程如图6所示。
图6 基于时频域特征的模板匹配
4.2 实时空速值提取与识别
实时空速区域的上下端具有两条较长的灰色直线,因此可以利用该先验信息进行定位。采用VNE指示线定位的思路,首先利用颜色特征将其转换为二值图像,随后采用霍夫变换得到上下直线的位置,最后提取实时空速区域。具体处理过程如图7所示。
图7 实时空速区域提取流程
为了准确识别空速区域的数值,先对空速区域进行字符分割,然后分别识别单个字符。由于字符在垂直方向上的投影必然在字符间或字符内间隙处取得局部最小值的附近,因此在较为复杂的环境下垂直投影法能对字符进行较为准确的分割。
通过对字符进行分割,可以对每个字符进行识别,一般采用神经网络算法[6]和模板匹配算法。相较于神经网络算法,模板匹配算法具有简单易理解、速度快且精度高的特点,因此本文采用模板匹配算法对单个数字进行识别,具体处理流程如图8所示。
图8 实时空速识别流程
4.3 实时空速参考刻度位置获取
为了得到实时空速上下刻度值,在实时空速基础上增加和减少一个偏移量,即可得到上下刻度值。然后采用基于时频域特征的模板匹配分别进行定位,具体处理流程如图9所示,具体步骤如下。
图9 上刻度值定位流程
① 由于刻度值都是10的倍数,因此模板库可以针对这一特性进行制作,即每一张模板图像都是10的倍数的数字,且图片以该数值进行命名。
② 为了提升模板匹配的效率,对刻度带的数值区域进行提取,从而使得宽度与模板图像宽度相同。
③ 从模板库中读取上刻度所对应的模板图像,并从上至下依次从刻度带区域进行滑动,每滑动一次计算一个匹配相似度,相似度最大的位置即为上刻度的位置。对于下刻度值的定位,重复上述步骤即可。
当得到上下刻度值的位置后,直接采用相对位置关系换算得到指示线处的读数,即VNE值。具体表达式为
(9)
式中:Su、Sd、SVNE分别为上刻度值、下刻度值和VNE指示值;lu、ld、lVNE分别为上刻度坐标、下刻度坐标和VNE指示坐标。
5 软件实现与评估
VNE自动测试软件基于MATLAB开发,可以实现测试用例导入、VNE识别和测试结果显示与输出。VNE指示线定位作为软件算法实现过程中的关键环节,对识别结果有较大的影响,因此本文对软件的指示线定位性能进行分析。为了分析VNE指示线在不同位置处软件的指示线定位性能,本文对测试图像进行处理,得到部分测试结果如图10所示,蓝色线表示定位位置。
图10 部分指示线定位结果
为测试软件的实际检测效果,将测试用例导入到系统中,通过软件读取每一帧图像,并对每一帧图像进行识别,将识别结果与测试用例进行比对得到相应的测试结果。由于测试用例有限,本文仅采用1000份测试样例进行分析,分别计算识别准确性、系统稳定性和检测效率,进而对软件的可行性进行探讨,测试结果如表1所示。系统稳定性的评估通过随机抽取100个测试用例,对其进行重复测试,每个测试用例的测试结果相同则表示稳定,否则表示不稳定。
表1 测试结果对比
上述特征提取方法中,基于Harris和SIFT提取图像特征点的方法具有较高的时间复杂度,在耗时方面均比其他方法长,但是其能保持一定的准确性。而采用直方图匹配和SVD的方法虽然具有较短的检测时间,但是其准确率偏低。而采用LBP特征的方法具有一定的优势,由于其提取特征的稀疏性,能够表达图像中更多的特征,因此其准确率和检测效率均较高。
综合分析不同的方法,不同特征构造方法在准确率、稳定性和检测时间方面均存在不足,而本文采用的时频特征融合方法具有较强的鲁棒性,能够有效提高VNE识别的准确率,检测效率相比其他方法有了较大提升,也能够满足实际场景的需要。总之,本文提出的方法无论是系统稳定性方面,还是识别准确率和效率方面,都具有一定的竞争性。
4 结束语
为了实现VNE值的高效自动化识别,本文提出一种基于霍夫变换和时频域特征的VNE自动识别算法,并在此基础上设计了一款自动化测试软件。经过实际测试验证,结果表明该软件能够高效地对VNE值进行准确自动化识别,且操作简单,交互界面友好,在直升机VNE参数的自动化识别中具有较高的效率,同时为其他自动化测试提供了新的思路,有效节省了测试时间和测试成本。