孙棪伊,范文晶,曾远帆,干兴业,汤日佳,韩 锐
(上海机电工程研究所,上海 201109)
现代战争中武器系统为适应自动化、快速化的作战要求,装填作业的快速化和智能化作为一项新兴技术具有很大的发展空间,并作为一项融合多领域技术的热门课题被各界广泛研究[1]。这项技术现已在火炮装填、舰载弹装填、地空弹装填中实现了应用,而对基于机器视觉的装填定位方式的研究则刚刚起步[2]。机器视觉是指通过图像摄取装置得到图像信号,然后将其传输给图像处理系统以得到所需的目标信息,图像处理系统对这些信号进行各种运算来抽取目标特征,进而根据处理结果采取不同的后续操作策略[3]。
对基于机器视觉的定位方法而言,选择合适的图像处理算法是识别精度与速度的决定因素之一,由于野外雨雾天气影响需要对目标信号进行滤波处理来降噪,以减少后续对特征提取的干扰[4]。特征提取所包含的内容非常广泛,近年来异军突起的机器学习、卷积神经网络等技术可自行提取特征,但这些算法通常非常复杂,又需要大量的样本为训练基础。
根据靶标图像的特点,选择图像处理中的角点特征进行靶标图像的特征识别。角点特征具有梯度变化明显、易于识别、伪角点筛查简便,易定位,受光照影响小等优点,适用于光照变化多样、图像需要快速识别的应用工程。
针对角点特征,角点检测的鼻祖是Moravec算法,之后Harris在Moravec算子思想上提出Harris算法[5-6]。当前的角点检测技术可以分为2类:第一类是基于图像边缘信息,此方法经过3个步骤才能完成,分别为图像预分割、轮廓链码提取及角点检测(如基于边界小波变换的角点检测和基于边界链码的角点检测等);第二类是基于图像灰度信息,此方法主要通过计算梯度及边缘曲率来判断角点的存在性(如Harris算法和Susan算法等[7-9])。
算法通过计算目标像素在任意方向上的灰度变化以及目标像素的角点响函数(corner response function)来确定角点,其计算简单,稳定性强,具有对光照、相机姿态变化、旋转和仿射均不变的特性,适用于野外装填作业。
本文提出一种针对目标特征点的检测方法,省去了绝大多数算法的图像增强部分,降噪后可直接提取特征点信息。该算法可以极大提高识别与定位的速度,以适应武器系统野外作战的机动性要求,是实现自动化、智能化作战的关键一步。
装填靶标图像如图1所示。
图1 靶标原图像Fig.1 Original target image
传统算法利用高斯函数对图像进行加权,用以消除孤立点和突起,越靠近中心点的像素,赋予越高的权重[10]。
可以定义一个n×n的模板,沿各个梯度改变方向移动这个模板,当模板内图像灰度发生明显变化则说明模版内存在特征点,如果灰度变化不明显,则说明不存在特征点。
ω(x,y)为模板,ω决定像素周围感兴趣的区域,(Ix,y)为目标图像,Ix、Iy为水平与垂直方向上的差分,[u,v]为模板的移动量。模板移动过程中产生的灰度变化可表示为一自相关函数E(u,v),如式(1)所示。
图2所示为Ix、Iy的梯度直方图,设矩阵M,然后将加权后的图像进行泰勒展开,辐射任意方向梯度(近似)可表达为
图2 靶标图像梯度直方图Fig.2 Gradient histogram of target image
如果忽略局部微小移动量[u,v],有近似二项式,如式(5)所示。
可得
M为偏导矩阵,可以进行对称矩阵变化,由于矩阵M的2个特征值会随局部特性变化而变化(矩阵M的特征值是自相关函数E(u,v)的一阶曲率),分别设为α、β,如果梯度变化MI的特征值不再是0,特征不变MI值不变[10-13]。
忽略余项,近似得到
特征值大小关系可以对应靶标图像上的3种情况。如果2个特征值一大一小,那么E(u,v)只在一个方向上突出,模板移动过程中,灰度只在一个方向有明显变化;如果2个特征值均为很小的值,那么E(u,v)在各个方向均不突出,模板移动过程中,灰度值无明显变化;如果2个特征值都大且2个特征值近似相等,则E(u,v)在所有方向突出,模板移动过程中梯度变化均很明显[10-17]。
我们通过矩阵M的2个特征值的大小来进行图像部分、边缘、特征点的检测分类。定义角点响应函数traceM、detM、R,traceM和detM为M的迹和行列式。
式中:k定义为经验常数,近似表达一个阈值,传统算法常取[0.04,0.06];M是梯度的协方差矩阵,由M决定角点函数R。如果R为正,且数值大于阈值则为角点;如果R为负数,但|R|大于阈值则为边缘;如果|R|小于阈值则为平坦区域。
图3所示为矩阵M特征值预交点分布的关系。
图3 矩阵M特征值预交点分布的关系Fig.3 The distribution of the pre-intersection points of the matrix M
α、β都较大且相似,含角点;都较小且相似,则为平坦区域。图4为传统算法角点与区域的角点响应函数示意图。
图4 传统算法角点与区域的角点响应函数示意图Fig.4 Traditional algorithm corner and the region of the corner response function
为了提高装填效率,为机械臂与抓取装置提供更充裕的时间,降低主控计算机时间复杂度,本文提出了一种无需进行图像增强的特征点检测方法。改进算法基于Harris算法,缩短了算法运行时间。
图1所示为靶标图像,本文所用的特征点检测方法可以有效保存图像对于识别与检测的重要信息,并排除一些不必要信息,从而提高主控计算机计算速度,可对识别到的靶标图像进行实时处理。这种特征点提取在机器视觉范畴内的目标跟踪、识别与图像匹配中的均被广泛应用。
特征点可以被定义为:两个边缘的交叉部分或邻域内同时具有两个主方向的像素。前者很大程度上依赖边缘提取,如果图像边缘由于某种原因发生中断,则会对特征点提取造成严重影响,还需进行前期的预处理从而影响计算速度。因此选择邻域内同时具有两个主方向的像素作为特征点进行后续操作。
1)不同于传统的Harris算法,改进后的算子采用小窗口的模板来改变靶标图像灰度。高斯窗口过小时,会产生较多的伪角点,但在求得角点后,改进算法进行极大值抑制来去除伪角点。图5为改进算法角点与区域的角点响应函数示意图。
图5 改进算法角点与区域的角点响应函数示意图Fig.5 Schematic diagram of the improved algorithm corner point and regional corner point response function
2)同时,由于靶标图像在水平与竖直方向上特征明显,改进算法在计算自相关函数E(u,v)后不进行泰勒展开以辐射其他方向,只计算Ix、Iy水平与垂直方向上的差分,这样就减少了算法运行时间。图6为改进算法水平垂直方向差分分布。
图6 改进算法水平垂直方向差分分布Fig.6 Improved algorithm for horizontal and vertical difference distribution
3)最后进行局部非极大值抑制去除被误识别为角点的边缘(或噪声)。识别会产生多个结果,通过抑制不是极大值的元素搜索局部极大值。
选取1个3×3的模板,判断中间的一个像素与周围8值邻域相比是否为最大值。计算该像素梯度方向,假设局部最大值分布在这一方向上,梯度方向与模板有2个焦点A和B,判断这3个像素的灰度值,如果中心点像素灰度值不是最大的,则说明它不是极大值,就将该点排除。
这个模板可以包含2个可变参数,即邻域的维数和大小。确定梯度幅值矩阵中目标像素点是否在邻域内为最大值。
寻找像素点的局部极大值,置非极大值点的灰度值为0,进而保留最终角点结果。对靶标图像的梯度幅值进行极大值抑制,幅值矩阵中的元素值越大意味着该点的梯度值也越大。
对比传统harris与改进算法的响应函数示意图,传统算法识别出的角点偏移量明显小于传统算法。
图7~10为实验结果图像,表1为实验数据结果对比。
由图7~8识别结果看出:传统算法存在伪角点和角点偏移现象。传统算法识别结果会增加后续靶标定位误差,使靶标坐标出现偏移,影响后续装填。
对比图7~10及表1可知,改进算法分析结果较传统算法相对准确,无伪角点产生,偏移量小,且算法精简,运行时间短。
表1 实验数据结果对比Tab.1 Comparison of experimental data result
图7 传统算法角点识别结果1Fig.7 Traditional algorithm corner recognition result 1
图8 传统算法角点识别结果2Fig.8 Traditional algorithm corner recognition result 2
图9 改进算法角点识别结果1Fig.9 Improved algorithm corner recognition results 1
图10 改进算法角点识别结果2Fig.10 Improved algorithm corner recognition results 2
在智能装填靶标识别的过程中,针对靶标图像特征,结合Harris角点算法本身具有旋转不变性、对光照不敏感等特点,经过改进的特征点检测算法很好地规避了传统算法检测后存在伪角点的问题,提高了对目标识别的精度。
通过对梯度计算的处理,改进算法缩短了传统算法第一步的运行时间,为装填作业争取了足够的时间,提高了算法的实时性。但算法仍有局限,改进的检测算法仍未能解决传统算法不具备尺度不变性这一不足,有待后续改进。