0引言
在对象检测、光学字符识别等系统中,模板匹配是一种用得较多的方法,它可以用来研究在一幅图中是否存在已知模板。若在搜索图中有待寻的目标,且同模板有一样的尺寸和方向,匹配的基本原则是通过相关函数或归一化相关函数的计算来找到待寻目标[1]。用相关函数实现匹配的计算量很大,对一幅大小为
的图像而言,
若模板的大小是
,采用像
素逐点匹配的计算复杂度将是
2
范围内,以一定角度增量旋转模板后再计算搜索区域
同模板之间的相似性。显然,这种匹配处理的运算量很大,很难用于实时处理系统中。基于不变矩的匹配方法[4]
可以用来解决目标的旋转问题,但对噪声相当敏感。下面就提出一种具有旋转不变性的快速模板匹配方法,该方法包括两个步骤:①用运算量较低的图像特征来选取可能的匹配点(候准点),即进行粗匹配;②用Zernike矩在候准点中进行精匹配。本文
首先将介绍候准点的选取,并介绍Zernike矩的相关知识以及基于它的精匹配方法,接着给出用文中提出的方法进行匹配的实验结果,最后做出总结。
1候准点的选取
同许多快速匹配方法类似,本文中候准点的选取同样是
对整个图像进行快速的粗搜索,将满足相似性准则的点定义为可能的匹配点。若将搜索时的一块图像区域称为子图,那么粗搜索时使用的图像特征就是子图的圆投影值。
1.1圆投影
为了获得圆投影值,我们首先需要将方形的子图变换为
圆形的子图,也就是说,我们要找到一种方法来定义数字圆。如图1所示,圆心定义为子图的中心,子图中的任一点与圆心
的距离用欧氏距离来衡量,将距离为
的数字圆。
用
,表示子图,半径为
、
的模板圆投影数据
定义为
si
n
-2667-
=
tan=
=0
!
+2
1
!
2
(6
)
2
,
ÐýתºóµÄͼÏñµÄZernike
矩
==
上式表示将半径为
1
ºóµÄͼÏñ£¬Ôò
就为
,
×÷ΪĿ±êµÄÐýת²»±äÐÔÌØÕ÷¡£
2.3
,
衡量模板与子图之间的相似性
,
±íʾ×î´ó°ë¾¶¡£
[5]
用Zernike矩进行精匹配
若我们用k个Zernike
矩作为特征失量,设
的第
是模板
个
,
ÔÚ½øÐÐÄ£°åÆ¥Åäʱ£¬²ÉÓÃʽ£¨2)所定义的规格化相关函数来
Zernike矩。点,
处的相似性就可用下式来度量
=
1
=
=0
2=0
2
(2)
{
=1
2
}
1
规格化相似性系
与分别表示模板和子图圆投影的均值。数当模板与子图完全相同时,
1,1],
2
2
个参考位置上做相似性计算,其中除
一点以外都是在非匹配点上做无用功。若匹配时能充分利用模板的特征信息,如灰度级数,就能很快地判断出该点是否为匹配候准点。在匹配之前,预先统计出模板的灰度级,根据这个灰度级确定两个阈值:灰度级,若灰度级小于阈值一行的起点处计算
2
,然后沿着图像从左到右,从上
就不进行后面的相
(a)模板图像
(b)Lena原图
(c)添加了椒盐噪声且
旋转30度后的图像
到下进行匹配。每次匹配时,统计模板覆盖下的那块子图的
2
似性计算,直接跳过该点。在统计子图的灰度级时,只需在每
的方形区域的灰度级,朝右移动一点
不必重新计算整个子图的灰度级,将新加入子图的最右一列像素的灰度级进行合并处理即可,这样可最大限度地降低匹配所需时间。
(d)改变了亮度的图像(e)改变了对比度的图像
图2模板匹配结果
2精匹配
在式(2)中定义的规格化相似性系数可以用来选择可能的
匹配候准点,对每一个匹配候准点,计算其Zernike矩[6],然后用Zernike矩进行精匹配。
2.1Zernike矩
它具有Zernike矩将图像映射为一系列正交多项式的和,
2
≤1}内是正交旋转不变的特征。这组多项式在单位圆{的,
具有如下形式
,
=
图像的二维Zernike
矩
=
式中
2
10
d
(4)
≤为偶数。
(3)
+
(下转第2672页
)
-2668-
认证模块时序模块加密模块服务:
服务:服务:1.数据完整性服务1.合时性1.数据加2.数据源认证服务检查服务
密服务
协议:1.MD52.SHA
图5
安全子系统模型
图6
认证与加密接口模型
则认为该流入的消息在时窗之外。
1)snmpEngineBoots=231
150。
第1个条件表示如果引擎的远程snmpEngineBoots锁定在其最大值,则流入消息都被认为不可靠。第2个条件表示消息用的重启时间可能比本地的重启时间要小,如果消息的重启时间比本地的重启时间小,则该消息被认为时在最近一次重启之前所发出。最后一个条件表示如果重启时间匹配,则流入消息的时钟时间不能早于远程权威引擎的时钟时间150秒。
对于USM的及时性实现,本协议栈由TimeWindow组建实现。其接口如下
publicclassTimeWindow
{
publicjava.lang.StringgetSnmpEngineId(java.lang.Stringhost,intport);
publicbooleanisSnmpEngineIdKnown(java.lang.Stringhost,intport);
publicvoidsetSnmpEngineId(java.lang.Stringhost,intport,java.lang.StringsnmpEngineId);
publicbooleanisEngineIdOK(java.lang.Stringhost,intport,java.lang.StringsnmpEngineId);
publicbooleanisTimeLineKnown(java.lang.StringsnmpEn-gineId);
publicbooleanisOutsideTimeWindow(java.lang.StringsnmpEn--2672-
gineId,intbootsA,inttimeA);
protectedvoidupdateTimeWindows();
protectedjava.lang.StringgetKey(java.lang.Stringhost,intport);}
3结束语
本文分析了SNMPv1、SNMPv2c、SNMPv3通信协议,
提出了SNMP管理器协议栈实现模型,实现了管理器的协议栈。当
的高层应用,例如高级图形化组件、基于RMI或者CORBA的
分布式应用或者基于J2EE架构等。
参考文献:
[1]
MarkAMiller,PE.ManaginginternetwordswithSNMP[M].ThirdEdition.北京:中国电力出版社,2001.42-43.
[2]WilliamStallings.SNMP网络管理[M].北京:中国电力出版社,2001.38-39.
[3]岑贤道,安常青.网络管理协议及应用开发[M].北京:清华大学出版社,1999.19.
[4]
DouglasMauro,KevinJ.SchmidtessentialSNMP[M].O'ReillyandAssociates,2001.61-64.[5]http://snmp.westhawk.co.uk/[EB/OL].
[6]
IETFRFC2271-1998.AnarchitecturefordescribingSNMPmanagementframeworks[S].
[7]IETFRFC2272-1998.Messageprocessinganddispatchingforthesimplenetworkmanagementprotocol(SNMP)[S].[8]IETFRFC2273-1998.SNMPv3applications[S].
[9]IETFRFC2274-1998.User-basedsecuritymodel(USM)forversion3ofthesimplenetworkmanagementprotocol(SNMPv3)[S].
[10]IETFRFC2275-1998.View-basedaccesscontrolmodel(VAC
M)forthesimplenetworkmanagementprotocol(SNMP)[S].[11]IETFRFC3411-2002.Anarchitecturefordescribingsimplenet-workmanagementprotocol(SNMP)managementframeworks[S].
[12]IETFRFC3412-2002.Messageprocessinganddispatchingfor
thesimplenetworkmanagementprotocol(SNMP)[S].[13]IETFRFC3413-2002.Simplenetworkmanagementprotocol
(SNMP)applications[S].[14]IETFRFC3414-2002.User-basedsecuritymodel(USM)for
version3ofthesimplenetworkmanagementprotocol(SNMPv3)[S].
0引言
在对象检测、光学字符识别等系统中,模板匹配是一种用得较多的方法,它可以用来研究在一幅图中是否存在已知模板。若在搜索图中有待寻的目标,且同模板有一样的尺寸和方向,匹配的基本原则是通过相关函数或归一化相关函数的计算来找到待寻目标[1]。用相关函数实现匹配的计算量很大,对一幅大小为
的图像而言,
若模板的大小是
,采用像
素逐点匹配的计算复杂度将是
2
范围内,以一定角度增量旋转模板后再计算搜索区域
同模板之间的相似性。显然,这种匹配处理的运算量很大,很难用于实时处理系统中。基于不变矩的匹配方法[4]
可以用来解决目标的旋转问题,但对噪声相当敏感。下面就提出一种具有旋转不变性的快速模板匹配方法,该方法包括两个步骤:①用运算量较低的图像特征来选取可能的匹配点(候准点),即进行粗匹配;②用Zernike矩在候准点中进行精匹配。本文
首先将介绍候准点的选取,并介绍Zernike矩的相关知识以及基于它的精匹配方法,接着给出用文中提出的方法进行匹配的实验结果,最后做出总结。
1候准点的选取
同许多快速匹配方法类似,本文中候准点的选取同样是
对整个图像进行快速的粗搜索,将满足相似性准则的点定义为可能的匹配点。若将搜索时的一块图像区域称为子图,那么粗搜索时使用的图像特征就是子图的圆投影值。
1.1圆投影
为了获得圆投影值,我们首先需要将方形的子图变换为
圆形的子图,也就是说,我们要找到一种方法来定义数字圆。如图1所示,圆心定义为子图的中心,子图中的任一点与圆心
的距离用欧氏距离来衡量,将距离为
的数字圆。
用
,表示子图,半径为
、
的模板圆投影数据
定义为
si
n
-2667-
=
tan=
=0
!
+2
1
!
2
(6
)
2
,
ÐýתºóµÄͼÏñµÄZernike
矩
==
上式表示将半径为
1
ºóµÄͼÏñ£¬Ôò
就为
,
×÷ΪĿ±êµÄÐýת²»±äÐÔÌØÕ÷¡£
2.3
,
衡量模板与子图之间的相似性
,
±íʾ×î´ó°ë¾¶¡£
[5]
用Zernike矩进行精匹配
若我们用k个Zernike
矩作为特征失量,设
的第
是模板
个
,
ÔÚ½øÐÐÄ£°åÆ¥Åäʱ£¬²ÉÓÃʽ£¨2)所定义的规格化相关函数来
Zernike矩。点,
处的相似性就可用下式来度量
=
1
=
=0
2=0
2
(2)
{
=1
2
}
1
规格化相似性系
与分别表示模板和子图圆投影的均值。数当模板与子图完全相同时,
1,1],
2
2
个参考位置上做相似性计算,其中除
一点以外都是在非匹配点上做无用功。若匹配时能充分利用模板的特征信息,如灰度级数,就能很快地判断出该点是否为匹配候准点。在匹配之前,预先统计出模板的灰度级,根据这个灰度级确定两个阈值:灰度级,若灰度级小于阈值一行的起点处计算
2
,然后沿着图像从左到右,从上
就不进行后面的相
(a)模板图像
(b)Lena原图
(c)添加了椒盐噪声且
旋转30度后的图像
到下进行匹配。每次匹配时,统计模板覆盖下的那块子图的
2
似性计算,直接跳过该点。在统计子图的灰度级时,只需在每
的方形区域的灰度级,朝右移动一点
不必重新计算整个子图的灰度级,将新加入子图的最右一列像素的灰度级进行合并处理即可,这样可最大限度地降低匹配所需时间。
(d)改变了亮度的图像(e)改变了对比度的图像
图2模板匹配结果
2精匹配
在式(2)中定义的规格化相似性系数可以用来选择可能的
匹配候准点,对每一个匹配候准点,计算其Zernike矩[6],然后用Zernike矩进行精匹配。
2.1Zernike矩
它具有Zernike矩将图像映射为一系列正交多项式的和,
2
≤1}内是正交旋转不变的特征。这组多项式在单位圆{的,
具有如下形式
,
=
图像的二维Zernike
矩
=
式中
2
10
d
(4)
≤为偶数。
(3)
+
(下转第2672页
)
-2668-
认证模块时序模块加密模块服务:
服务:服务:1.数据完整性服务1.合时性1.数据加2.数据源认证服务检查服务
密服务
协议:1.MD52.SHA
图5
安全子系统模型
图6
认证与加密接口模型
则认为该流入的消息在时窗之外。
1)snmpEngineBoots=231
150。
第1个条件表示如果引擎的远程snmpEngineBoots锁定在其最大值,则流入消息都被认为不可靠。第2个条件表示消息用的重启时间可能比本地的重启时间要小,如果消息的重启时间比本地的重启时间小,则该消息被认为时在最近一次重启之前所发出。最后一个条件表示如果重启时间匹配,则流入消息的时钟时间不能早于远程权威引擎的时钟时间150秒。
对于USM的及时性实现,本协议栈由TimeWindow组建实现。其接口如下
publicclassTimeWindow
{
publicjava.lang.StringgetSnmpEngineId(java.lang.Stringhost,intport);
publicbooleanisSnmpEngineIdKnown(java.lang.Stringhost,intport);
publicvoidsetSnmpEngineId(java.lang.Stringhost,intport,java.lang.StringsnmpEngineId);
publicbooleanisEngineIdOK(java.lang.Stringhost,intport,java.lang.StringsnmpEngineId);
publicbooleanisTimeLineKnown(java.lang.StringsnmpEn-gineId);
publicbooleanisOutsideTimeWindow(java.lang.StringsnmpEn--2672-
gineId,intbootsA,inttimeA);
protectedvoidupdateTimeWindows();
protectedjava.lang.StringgetKey(java.lang.Stringhost,intport);}
3结束语
本文分析了SNMPv1、SNMPv2c、SNMPv3通信协议,
提出了SNMP管理器协议栈实现模型,实现了管理器的协议栈。当
的高层应用,例如高级图形化组件、基于RMI或者CORBA的
分布式应用或者基于J2EE架构等。
参考文献:
[1]
MarkAMiller,PE.ManaginginternetwordswithSNMP[M].ThirdEdition.北京:中国电力出版社,2001.42-43.
[2]WilliamStallings.SNMP网络管理[M].北京:中国电力出版社,2001.38-39.
[3]岑贤道,安常青.网络管理协议及应用开发[M].北京:清华大学出版社,1999.19.
[4]
DouglasMauro,KevinJ.SchmidtessentialSNMP[M].O'ReillyandAssociates,2001.61-64.[5]http://snmp.westhawk.co.uk/[EB/OL].
[6]
IETFRFC2271-1998.AnarchitecturefordescribingSNMPmanagementframeworks[S].
[7]IETFRFC2272-1998.Messageprocessinganddispatchingforthesimplenetworkmanagementprotocol(SNMP)[S].[8]IETFRFC2273-1998.SNMPv3applications[S].
[9]IETFRFC2274-1998.User-basedsecuritymodel(USM)forversion3ofthesimplenetworkmanagementprotocol(SNMPv3)[S].
[10]IETFRFC2275-1998.View-basedaccesscontrolmodel(VAC
M)forthesimplenetworkmanagementprotocol(SNMP)[S].[11]IETFRFC3411-2002.Anarchitecturefordescribingsimplenet-workmanagementprotocol(SNMP)managementframeworks[S].
[12]IETFRFC3412-2002.Messageprocessinganddispatchingfor
thesimplenetworkmanagementprotocol(SNMP)[S].[13]IETFRFC3413-2002.Simplenetworkmanagementprotocol
(SNMP)applications[S].[14]IETFRFC3414-2002.User-basedsecuritymodel(USM)for
version3ofthesimplenetworkmanagementprotocol(SNMPv3)[S].