苏欣
(南京鼓楼医院总务处,南京 210000)
图像是军事侦查领域情报获取的重要来源。在军事应用领域,数字图像处理技术的应用也越来越广泛,主要体现在其对情报信息的获取及分析等方面。具体而言,在导弹的精确制导,具有图像传输、存储与显示功能的军事自动化指挥系统,各类侦察图像的判读与分析以及军舰、飞机或坦克模拟训练系统方面,数字图像处理技术都发挥着重要作用。
新时期作战模式的最大特点是以战场信息为基础的信息战。战场环境下,军事目标都具有鲜明特性,对军事侦察图像中的这些具有鲜明特性的军事目标进行识别与处理,可以快速提取和识别这些军事目标的特征,对战场环境的侦测有着重要的现实意义。本文基于图像识别机理,通过对图像识别方法和识别模型的研究,设计出一个敏感目标识别系统,实现战场环境下敏感目标的快速识别。
模板匹配是计算机视觉领域中对目标图像进行识别和理解的重要方法,它是对模板图像和目标图像进行相似度的检测[1]。在计算机识别过程,常需要将同一空间不同时间和拍摄条件下获得的图像进行对准,或根据已知图像在另一幅图像中搜寻相同或近似的部分,这就需要用到图像匹配[2-3]。图像匹配是图像识别中的一个重要手段。图像的模块匹配即在一幅图像中查找已给定的图像,若在该图像中找到了已给定图像,那么我们就认为匹配成功,否则匹配失败。
模板匹配从某种角度上可以分为两种,狭义的模板匹配和广义上的模板匹配。狭义上的模板匹配所需要搜索的目标与待搜索的对象在本质上是同一件事物,只是在不同条件下获得的影像存在区别。广义上的模板匹配要搜索的不再是同一件事物,而是一类事物,它需要更加智能的系统来解决并处理未知的问题,这需要计算机在储备大量数据的同时具备有一定的学习和推理能力。在本文中主要讨论和研究狭义上的模板匹配。
模板匹配模型是在编制模拟人类的图像识别活动的计算机程序时,人们提出的一种图像识别模型。在模板匹配模型中,我们在识别某一特定图像时,需要在已有的经验中存在该图像的记忆模式,也称为模板。图像输入时的刺激,若可以与大脑中的模板匹配成功,那么就可以认为该图像被识别了。
比如,有一个字母M,如若在大脑中已经有一个字母M的模板,字母M的形状、方位以及大小等特征都与字母M的模板一致,那么字母M就被识别了。这个模型的特点是,简单易应用。但这样的模型也存在着一个比较明显的缺陷,就是目标图像必须完全与大脑中的模板符合,才能够被识别。然而,人们不仅可以识别与大脑中的模板一模一样的图像,也可以识别具有一定差异性的图像。比如,人们可以识别某一个具体的字母H,同时也能识别与该H不一样手写体的,或者不同方向、不同大小的各种字母H。
设模板T(M*H)叠放在被搜索图S(W*H)上平移,模板覆盖下的那块区域称为子图Sij,i,j是这块子图的左上角像素点在S中的坐标,叫做参考点,如图1所示。则搜索范围是:
图1 被搜索图与模板图
基于上述的描述,则可以通过比较模板T和每一个子图Sij的相似性,来完成模板匹配的过程。相似性关系函数为:
将上式展开可以得到:
对于上式的解释为:第一项为模板覆盖下的子图的能量,第三项为模板的总能量,他们都与模板匹配无关。第二项是模板和子图的互相关系,随着(i,j)改变而改变。当模板T和子图Sij匹配时,该项有极大值。因此可以定义相关函数为:
归一化得:
当模板和子图完全一样时,相关系数R(i,j)=1。否则,R(i,j)<1,那么相关系数越大,则模板与搜索图片越相似。可以在被搜索图S中完成全部搜索后,找出相关s系数的最大值Rmax(i,j),则其对应的子图Sij即为匹配目标。显然,用这种公式做图像匹配计算量大,速度较慢。特别地,当被搜索图越大时,匹配速度越慢;模板越小,匹配速度越快。
另一种匹配方法是衡量T和Sij的误差,其公式为:其中,D(i,j)为最小值处即为匹配目标。为提高计算速度,可以取一个误差阈值D0,当D(i,j)>D0时就停止该点的计算,继续下一个点的计算。只用误差法进行匹配速度较快,阈值的大小对匹配速度影响较大,且与模板的尺寸有关。
模板匹配TemplateMatching是在图像中寻找目标的方法之一。这种方法的原理就是遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,我们就认为找到了目标。在上一节中已经对模板匹配的算法进行了介绍。本文中我们主要基于OpenCV中的match⁃Template函数完成相应的模板匹配算法,match⁃Template函数:在模板和输入图像之间寻找匹配,获得匹配结果图像。
本文主要讨论其中的标准相关匹配CV_TM_CCOEFF_NORMED,也称为归一化相关系数匹配法。归一化相关系数匹配法是一种典型的基于灰度相关的算法,具有不受比例因子误差影响和抗白噪声干扰能力强等优点。它基于空间二维滑动模板实现,并在制导导航方面得到了广泛应用。目前基于灰度的匹配算法有MAD算法、序贯相似性检测法等。它使用的相似性度量定义如下:
当模板与原图找到最佳匹配部分时,R值最大,原理类似于:,当a,b越接近时,R值越大,趋近于1。
与上文中相同,R即为相似性的度量值,该值越大,代表相似性越大。T是模板,S是搜索图。将模板图T放在搜索图S上平移,模板覆盖下的那块搜索图叫做Sij,(i,j)为这块子图左上角像点在S图中的坐标,称为参考点。式中分子位置的项是子图像和模板的互相关系,随(i,j)的改变而改变,分母的第二项表示的是模板的总能量,第一项表示的是子图S的总能量。当T和Sij匹配时,R即为最大值。
那么,首先给出这样的几个符号:T(i,j)用来表示我们的模板。S(i,j)是我们的目标图像。R(i,j)是用来描述相似度的函数。
我们给出两幅图像:
原图像(S):待搜索图像。通过比对,我们希望能够在该图像中找到与模板匹配的区域。
模板(T):将用于和原图像比照的图像块。
我们的目标是检测最匹配的区域,如图2所示。
图2 样图(一)
为了确定匹配的区域,我们尝试滑动模板图像与原图像进行比对,如图3所示。
图3 样图(二)
通过从左往右、从上往下的滑动方向,将图像块一次移动一个像素。而且,在每一个位置,都需要进行一次度量计算,以表明它与当前位置的匹配程度,换言之,即块图像与原图像的特定区域的相似度是多少。
对于T覆盖在S上的每个位置,把得到的每一个度量值保存到结果图像矩阵(R)中。这样在R中就包含了所有可能匹配位置(i,j)的匹配度量值。再通过仔细看看输出矩阵的大小(其包含了所有可能匹配的位置),这里可以通过使用另一个函数minMaxLoc来确定结果矩阵R中的最大值和最小值的位置,这样就可以得到结果图像矩阵(R)中的最佳匹配位置点,如图4所示。
图4 匹配结果图像
图4就是TM_CCORR_NORMED方法处理后的结果图像R。最白的位置代表最高的匹配。正如图中所示,红色椭圆框住的位置就是结果图像矩阵中的最大数值,所以这个区域(以这个点为顶点,长宽和模板图像一样大小的矩形)被认为是匹配的。
本系统的主要功能包括用户交互,模板的训练,目标识别3个部分。具体设计如下:
2.1.1 用户交互部分
用户通过该部分可以直观的观察到系统工作的过程,包括图像文件的载入、模板导入、识别结果的输出、识别过程的反馈。该部分设计主要方便用户使用,并展示反馈结果,为用户提供友好的使用体验。
2.1.2 模板训练部分
该部分主要完成对模板库的建立、对导入模板的处理、效果显示等。
2.1.3 目标识别部分
该部分为系统的主要功能部分,载入待识别图像,导入模板图,完成模板在待识别图像中逐个像素点覆盖匹配的过程,得到识别结果,并得到目标的分布位置,将识别的过程显示输出。
其功能结构如图5所示。
图5 系统功能结构
根据对系统功能结构分析,可以将系统的结构模块设计如图6所示。每一个模块都是本系统在实现目标识别时不可缺少的部分,而每一个结构模块都有其各自需要完成的功能和对实现目标识别的作用。
图6 系统结构模型
结合图6,可以概括出该系统从图像输入到完成目标识别并输出识别结果的一个基本流程,如图7所示。
本文采用的是图像识别方法中的模板匹配法,此方法首先需要在系统中建立一个包含多类军事敏感目标的图像模板库。这里通过人工的方式来实现模板库的建立,收集含有军事敏感目标物的遥感图片、无人机图片,以及从互联网收集到的图片,并对收集到的图片进行统一处理,建立含有战斗机、舰船、装甲车等几类目标物的模板库。还可以根据实际需要对已建立的模板库进行修改和更新。
在.net平台下采用Visio studio的Winform项目完成本系统的程序设计。程序主体采用C#语言,并借助于OpenCV中所提供的图像处理函数库。Winform功能强大,可用于设计窗体和可视控件,以创建丰富的Windows应用程序,具有操作方便、控件灵活、使用安全等特点。
在设计敏感目标识别系统界面的过程中,重点突出了系统界面的简洁明了以及各功能板块的鲜明特点。系统界面如图8所示,用户可以通过“加载文件”按钮来载入识别文件,载入的图片会在图像加载区域显示。然后导入模板,模板图片会在右侧的模板处理区域完成模板图像处理并显示效果。之后完成识别目标的过程,程序将在后台自动进行目标识别计算,识别结果会在结果输出区域显示,其中识别结果包括目标的数量和目标位置。
图8 系统界面设计
根据本系统的功能结构图可知所实现的具体模块功能有:图像文件的加载导入、图像处理中图像灰度化、图像二值化、图像边缘检测、模板匹配、图像均衡化、目标定位等方面,以下分别说明。
3.3.1 模板处理模块
此部分将导入的模板图进行图像处理转化为灰度图像,利用OpenCV中的局部自适应二值化方法完成图像的二值化处理。采用Canny边缘算子进行边缘检测[4-5],并显示模板的轮廓图。实验效果如图9所示。
图9 模板处理效果
3.3.2 目标识别模块
此部分完成模板在原图上的覆盖搜索计算匹配度量值的过程,并从每个模板在原图匹配过程中计算得到的相似性度量值中取得最大值,即得到的最佳匹配相似点,用模板图大小的矩形在原图中标识,并根据相似点的位置信息生成目标分布图,同时在目标输出部分输出识别结果。实现的效果如图10所示。
图10 目标识别效果
3.4.1 模板的筛选
当模板库准备好后,打开待识别文件进行识别。有如图11待识别图像:
图11 实验待识别图像
同时在现有的模板库里相关的模板图片,如图12所示。
图12 模板图片
接下来在系统中载入模板,进行目标识别,结果如图13所示。
图13 实验结果(一)
系统成功的从待识别的原图中识别出8个与模板匹配的结果,并分别进行了标识。那么,当在模板库中存在与识别图像无关的模板时,系统正常的识别结果又会是怎样的。
在原有的模板库中增加一组无关的模板图片,如图14所示。
图14 无关模板图片(一)
待识别图像保持不变,系统载入新的模板图后进行目标识别,得到如图15识别结果:
图15 实验结果(二)
从两次实验的对比结果我们可以看到,原待识别图像的被识别的目标物与第一次识别的结果相同,这里说明本程序是对模板的匹配,具备有对模板的筛选能力,模板可匹配的保留,不可匹配的剔除。
但在多次实验中也发现了不一样的结果,当再次载入一组其他的无关模板时,载入如图16所示的第二组无关模板。
图16 无关模板图片(二)
待识别图像与实验一、实验二中的图像相同,在新组成的模板库条件下进行目标物的识别,得到如图17所示的实验结果(三)。
从图17所示的实验结果(三)可以看到,相比于前两次的实验结果,在原图像的识别结果中出现了新的识别结果,并且可以判断出新增的识别结果并不正确。对比实验二和实验三,可以发现无关模板中其中一组被筛选出去了,但有一组被识别了,无关模板的筛选出现了问题。而这个的问题涉及到下文所验证的匹配相似度参数的确定。
图17 实验结果(三)
在模板选择的实验中,在多次载入无关模板识别时,程序可以实现无关模板的剔除,但有时候会出现错误的识别结果,这里需要引入匹配相似度参数,相当于在模板匹配算法中提到过的误差阈值。在本程序中,所定义的匹配相似度参数决定了匹配程度地大小,其所定义的参数值越大,对于模板与原图比对匹配时所计算的度量值要求就越高,以此来增加匹配的精确度。在上述的验证实验中,程序中所定义的匹配相似度参数为参考值0.6,对于同样的实验,我们将匹配相似度参数提高后再次进行实验。
将程序中的匹配相似度参数由0.6改为0.7,如图18中(a)、(b)所示:
图18 改变匹配相似度参数
用增加两组无关模板图后的模板库进行实验,得到图19所示结果。
图19 目标识别效果图
区别于图17中的结果,可以发现在提高匹配相似度参数后,实验的结果出现了不同,在原来10个目标物识别基础上,成功的去除了两个不正确的匹配结果。因此得到这样的结论,当程序进行模板匹配识别图像中的目标物时,对于不同的图像有着不同的精度,本程序可以通过改变匹配相似度参数的固定值来改变程序识别的精准程度。而在程序中给出的经验值有时候并不适用于所有的识别过程,具体情况具体对待。
本文利用模板匹配的图像识别方法对战场环境下的敏感目标进行目标识别,识别速度较快,但识别的正确率稍有欠缺,其相关的匹配相似度参数需人工手动调整,不具备自适应调整。系统对提供的模板要求较高,其自我学习和训练的能力较低。另外本系统识别目标的针对性较强,设计较粗糙简单,不具备一定的适用性,尚需改进和完善。