面向二进制特征的图像匹配方法及其系统技术领域
本发明涉及图像检索技术领域,尤其涉及一种面向二进制特征的图像匹配
方法及其系统。
背景技术
互联网图像视觉信息的迅速增长,给信息的组织与管理带来了巨大挑战,
对海量图像进行内容分析与检测的需求越来越大,基于内容的图像检索技术
应运而生。基于内容的图像检索技术主要分为两个部分,第一部分主要是图
像特征的提取,包括特征点的位置,特征点的主方向以及特征点的描述子。
第二部分主要是图片匹配技术,包括图片特征索引以及相应的匹配规则,由
于图片特征库往往是巨大的海量数据,因此需要高效、稳定的索引技术配合
合理的匹配规则,才能满足实时海量数据的检索需求。
现有的主流的图像匹配方法主要是用到了BOW(bagofword,词袋模型)
以及倒排索引技术,配合(Hamming_Embedding,海明嵌入)等匹配规则,
达到海量图片匹配检索的目的。然后,在词袋模型中,首先需要训练视觉单
词中心,再把特征描述子分配到距离最近的视觉中心,这个过程中视觉中心
的个数难以确定,如果个数太多,需要巨大的计算量,往往需要GPU协助,
如果太小,则检索效果不好,同时分配特征描述子的过程也是计算密集型的
过程。另外一方面,词袋模型以及海明嵌入的规则往往只应用于实数特征描
述子(即每个描述子分量是个实数),不能满足实时监控领域的图像检索需
求。
综上可知,现有的图像匹配技术在实际使用上,显然存在不便与缺陷,所
以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种面向二进制特征的图像匹配
方法及其系统,以提高图像匹配的准确性及速度。
为了实现上述目的,本发明提供一种面向二进制特征的图像匹配方法,所
述方法包括:
特征提取步骤:提取待检测的图片的多个特征点的信息以及多个所述特征
点的第一二进制描述子;
第一匹配步骤:将多个所述第一二进制描述子与预设的图片库中的所有图
片的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹配数最
多的第二二进制描述子所对应的第一图片;
第二匹配步骤:将所述待检测的图片和所述第一图片进行特征点的信息的
匹配,获得所述待检测图片的匹配结果信息。
根据所述的图像匹配方法,所述特征点的信息包括:所述特征点的特征点
主方向、特征点位置和特征点覆盖面积;
所述特征提取步骤包括:提取所述待检测的图片的多个特征点的特征点主
方向、特征点位置以及所述特征点的第一二进制描述子;
在所述第一匹配步骤之前包括:
二进制索引建立步骤:建立所述图片库的二进制索引,所述二进制索引包
括由多个第二二进制描述子组成的二进制特征空间和每个所述第二二进制描述
子所在图片的图片序号。
根据所述的图像匹配方法所述第一匹配步骤包括:
分别将每个所述第一二进制描述子在所述二进制特征空间中与所述第二二
进制描述子进行匹配;
选择包括与多个所述第一二进制描述子匹配数最多的所述第二二进制描述
子的所述第一图片,若所述匹配数大于预设的第一阈值,则记录匹配的多个所
述第一二进制描述子和第二二进制描述子所对应的特征点对,并执行所述第二
匹配步骤,否则所述第一匹配步骤失败。
根据所述的图像匹配方法所述第二匹配步骤包括:
特征点方向匹配步骤:分别计算匹配的多个所述特征点对的特征点的主方
向变化率;若两者的所述主方向变化率小于预设的第二阈值,则执行特征点位
置匹配步骤,否则所述第一图片不是与所述待检测的图片匹配的图片;
特征点位置匹配步骤:通过分别计算匹配的多个所述特征点对之间的透视
变化矩阵以计算多个所述特征点对的内点比率,若所述内点比率大于预设的第
三阈值,则执行特征点覆盖面积匹配步骤,否则所述第一图片不是与所述待检
测的图片匹配的图片;
特征点覆盖面积匹配步骤:计算多个所述特征点对中所述待检测图片中的
特征点的特征点覆盖面积,若所述覆盖面积大于预设的第四阈值,则第一图片
是与所述待检测的图片匹配的图片,否则所述第一图片不是与所述待检测的图
片匹配的图片。
根据所述的图像匹配方法所述特征提取步骤还包括:将所述第一二进制描
述子进行精简;
所述二进制索引建立步骤还包括:将所述图片库的二进制索引中的第二二
进制描述子进行精简。
为了实现本发明的另一发明目的,本发明还提供了一种面向二进制特征的
图像匹配系统,所述系统包括:
特征提取模块,用于提取待检测的图片的多个特征点的信息以及多个所述
特征点的第一二进制描述子;
第一匹配模块,用于将多个所述第一二进制描述子与预设的图片库中的所
有图片的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹配
数最多的第二二进制描述子所对应的第一图片;
第二匹配模块,用于将所述待检测的图片和所述第一图片进行特征点的信
息的匹配,获得所述待检测图片的匹配结果信息。
根据所述的图像匹配系统,所述特征点的信息包括:所述特征点的特征点
主方向、特征点位置和特征点覆盖面积;
所述特征提取模块提取所述待检测的图片的多个特征点的特征点主方向、
特征点位置以及所述特征点的第一二进制描述子;
所述系统还包括:
二进制索引建立模块,用于建立所述图片库的二进制索引,所述二进制索
引包括由多个第二二进制描述子组成的二进制特征空间和每个所述第二二进制
描述子所在图片的图片序号。
根据所述的图像匹配系统,所述第一匹配模块包括:
第一匹配子模块,用于分别将每个所述第一二进制描述子在所述二进制特
征空间中与所述第二二进制描述子进行匹配;
第一选择子模块,用于选择包括与多个所述第一二进制描述子匹配数最多
的所述第二二进制描述子的所述第一图片,若所述匹配数大于预设的第一阈值,
则记录匹配的多个所述第一二进制描述子和第二二进制描述子所对应的特征点
对,并执行所述第二匹配模块的匹配操作,否则所述第一匹配模块的匹配操作
失败。
根据所述的图像匹配系统,所述第二匹配模块包括:
特征点方向匹配子模块,用于分别计算匹配的多个所述特征点对的特征点
的主方向变化率;若两者的所述主方向变化率小于预设的第二阈值,则执行特
征点位置匹配模块的匹配操作,否则所述第一图片不是与所述待检测的图片匹
配的图片;
特征点位置匹配子模块,用于通过分别计算匹配的多个所述特征点对之间
的透视变化矩阵以计算多个所述特征点对的内点比率,若所述内点比率大于预
设的第三阈值,则执行特征点覆盖面积匹配模块的匹配操作,否则所述第一图
片不是与所述待检测的图片匹配的图片;
特征点覆盖面积匹配子模块,用于计算多个所述特征点对中所述待检测图
片中的特征点的特征点覆盖面积,若所述覆盖面积大于预设的第四阈值,则第
一图片是与所述待检测的图片匹配的图片,否则所述第一图片不是与所述待检
测的图片匹配的图片。
根据所述的图像匹配系统,所述特征提取模块将所述第一二进制描述子进
行精简;
所述二进制索引建立模块将所述图片库的二进制索引中的第二二进制描述
子进行精简。
本发明通过提取待检测的图片的多个特征点的信息以及多个所述特征点的
第一二进制描述子;然后,将多个所述第一二进制描述子与预设的图片库中的
所有图片的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹
配数最多的第二二进制描述子所对应的第一图片;最后,将所述待检测的图片
和所述第一图片进行特征点的信息的匹配,获得所述待检测图片的匹配结果信
息,由此,提高了图片匹配的效率及准确性能。具体的,在本发明中,创新的
引入了四个匹配准则,依次通过待检测图片与图片库中的二进制描述子个数
匹配、特征点主方向匹配、特征点位置匹配、以及特征点覆盖面积匹配,实
现在保证速度以及召回率的同时,保证了极高的匹配精度。在现在主流的CPU
(酷睿i74770)平台上,检索索引能覆盖一百万的图片所包含的特征库,内
存仅需占用2GB,单核单线程每秒能检索500张图片,速度极快。在精度保
证99%的情况下,召回率保证在85%以上,因此,本发明的技术方案极其适
合应用在对速度要求高的嵌入式平台以及实时监控平台上。
附图说明
图1是本发明实施例提供的面向二进制特征的图像匹配系统的组成示意
图;
图2是本发明实施例提供的面向二进制特征的图像匹配系统的组成示意
图;
图3是本发明实施例提供的二进制倒排索引的示意图;
图4A是本发明实施例提供的二进制描述子匹配规则示意图;
图4B是本发明实施例提供的二进制描述子匹配规则示意图;
图5A是本发明实施例提供的特征点主方向匹配规则示意图;
图5B是本发明实施例提供的特征点主方向匹配规则示意图;
图5C是本发明实施例提供的特征点主方向匹配规则示意图;
图6A是本发明实施例提供的特征点位置匹配规则示意图;
图6B是本发明实施例提供的特征点位置匹配规则示意图;
图7是本发明实施例提供的特征点覆盖面积规则的示意图;
图8是本发明实施例提供的面向二进制特征的图像匹配方法的流程图;
图9是本发明实施例提供的面向二进制特征的图像匹配方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实
施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅
仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中,提供了一种面向二进制特征的图像
匹配系统100,包括:
特征提取模块10,用于提取待检测的图片的多个特征点的信息以及多个所
述特征点的第一二进制描述子;
第一匹配模块20,用于将多个所述第一二进制描述子与预设的图片库中的
所有图片的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹
配数最多的第二二进制描述子所对应的第一图片;
第二匹配模块30,用于将所述待检测的图片和所述第一图片进行特征点的
信息的匹配,获得所述待检测图片的匹配结果信息。
在该实施例中,首先提取待检测图片的特征。具体的,可以通过特征提取
模块10提取待检测的图片的多个特征点的信息以及多个所述特征点的第一二进
制描述子。优选的,所述特征点的信息包括:所述特征点的特征点主方向、特
征点位置和特征点覆盖面积。然后,需要第一匹配模块20对待检测图片的特征
与后台图片库中的特征分别进行匹配。第一匹配模块20首先匹配二进制描述
子个数,第一匹配模块20将多个所述第一二进制描述子与预设的图片库中的所
有图片的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹配
数最多的第二二进制描述子所对应的第一图片。最后,第二匹配模块30匹配特
征点的信息。第二匹配模块30将所述待检测的图片和所述第一图片进行特征点
的信息的匹配,若两者的所述特征点的信息匹配成功后,则所述第一图片为与
所述待检测的图片匹配的图片;若两者的所述特征点的信息匹配失败后,则所
述第一图片不是与所述待检测的图片匹配的图片。即在该实施例中,待检测图
片的特征与后台图片库中的特征分别进行二进制描述子个数匹配及特征点的
信息的匹配,如果匹配都通过,则表示匹配成功,否则表示失败。
参见图2,在本发明的第二实施例中,特征提取模块10提取所述待检测的
图片的多个特征点的特征点主方向、特征点位置以及所述特征点的第一二进制
描述子;面向二进制特征的图像匹配系统100还包括:
二进制索引建立模块40,用于建立所述图片库的二进制索引,所述二进制
索引包括由多个第二二进制描述子组成的二进制特征空间和每个所述第二二进
制描述子所在图片的图片序号。并且,在第一二进制描述子长度比较长时,可
以通过特征提取模块10将所述第一二进制描述子进行精简;另一方面,二进制
索引建立模块40将所述图片库的二进制索引中的第二二进制描述子进行精简,
便于待检测图片的检索。
在该实施例中,特征提取模块10提取待检测的图片的多个特征点的特征点
主方向、特征点位置以及所述特征点的第一二进制描述子。并且,在检索前需
要由二进制索引建立模块40预先建立图片库及其二进制索引。如图3所示,该
二进制索引包括由多个第二二进制描述子组成的二进制特征空间和每个所述第
二二进制描述子所在图片的图片序号。
具体的,图片库构成了所述二进制索引。然后借助此二进制索引,比较待
检测图片的第一二进制描述子与图片库中所有图片的特征点的第二二进制描
述子。此二进制倒排索引如图3所示。左边表示二进制的视觉单词中心,也
可以理解为二进制特征。假设对第二二进制描述子进行精简后的描述子长度为
N,由于描述子是二进制的01串,则第二二进制描述子的二进制特征空间大
小为2N,即由全0构成的特征到全1构成的特征。在一个实施方式中,精简
后的第二二进制描述子的长度为20,则特征空间的大小为220,第二个第二二
进制特征由20个0构成,最后一个第二二进制特征由20个1构成。每个第二
二进制特征后面接图片库中包含有此特征的图片序号。在一个实施例中,全0
构成的二进制特征被图片序号为000110、000123、000159的图片所拥有,全
1构成的二进制特征被图片序号为000110的图片所拥有,从图3中也可以看
出,图片序号为000110的图片拥有全0构成的二进制特征,全1构成的二进
制特征以及11111111111111111101的二进制特征。这样在检索匹配之前先建
立起图片库的二进制倒排索引,加速后续匹配操作。
参见图2,在本发明的第三实施例中,第一匹配模块20包括:
第一匹配子模块21,用于分别将每个所述第一二进制描述子在所述二进制
特征空间中与所述第二二进制描述子进行匹配;
第一选择子模块22,用于选择包括与多个所述第一二进制描述子匹配数最
多的所述第二二进制描述子的所述第一图片,若所述匹配数大于预设的第一阈
值,则记录匹配的多个所述第一二进制描述子和第二二进制描述子所对应的特
征点对,并执行所述第二匹配模块30的匹配操作,否则所述第一匹配模块20
的匹配操作失败。
在该实施例中,特征提取模块10提取的待检测图片的第一二进制描述子
与图片库中所有图片的第二二进制描述子进行比较,找出匹配最多的图片,如
果对应的匹配数大于第一阈值,则记录所匹配的特征对,然后进入特征点的信
息匹配。否则表示匹配失败。如图4A所示,假设待检测图片的描述子仅包含
这三种特征:全0构成的特征(假设为A)、全1构成的特征(假设为B)以
及除倒数第二位为0其他都为1(假设为C)的特征。首先,开辟一个数组score,
长度为图片库图片的数量,并全部置零。这里假设图片库的图片序号连续,
即图片库有100万张图片,最大的图片序号即为100万。然后,在二进制索
引中,在左边中找到A特征,A特征后面接的所有图片,在score中递增1。
例如,这里A特征包含000110、000123、000159三张图片,即在score数组
中,第110、第123、第159的位置上递增1。接着在索引中找到B特征,B
特征中包含图片000110、000432、000123、000268四张图片,在score数组
中,第110、第432、第123、第268的位置上递增1。C特征同理。最后可以
得到一个score数组,如图4B所示,这个score数组可以理解为待检测图片的
第一二进制描述子与图片库中图片的第二二进制描述子的相似度,数值越高
表示相似度越高,在本实施例中,000110的图片与待检测图片相似度最高,
得分3的具体含义为两者拥有相同描述子的数量。如果得分大于某个阈值,
在一个实施方式中,选取的第一阈值是10,即如果待检测图片与图片库中的
图片有至少10个描述子是相同的,则认为其通过这一级的匹配进入下一级的
特征点的信息的匹配,并记录匹配的特征点之间的匹配关系,方便后续使用。
如果最大的得分小于阈值,则认为匹配失败,程序直接返回结果。
在本发明的第四实施例中,第二匹配模块30包括:
特征点方向匹配子模块31,用于分别计算匹配的多个所述特征点对的特征
点的主方向变化率;若两者的所述主方向变化率小于预设的第二阈值,则执行
特征点位置匹配模块的匹配操作,否则所述第一图片不是与所述待检测的图片
匹配的图片;
特征点位置匹配子模块32,用于通过分别计算匹配的多个所述特征点对之
间的透视变化矩阵以计算多个所述特征点对的内点比率,若所述内点比率大于
预设的第三阈值,则执行特征点覆盖面积匹配模块的匹配操作,否则所述第一
图片不是与所述待检测的图片匹配的图片;
特征点覆盖面积匹配子模块33,用于计算多个所述特征点对中所述待检测
图片中的特征点的特征点覆盖面积,若所述覆盖面积大于预设的第四阈值,则
第一图片是与所述待检测的图片匹配的图片,否则所述第一图片不是与所述待
检测的图片匹配的图片。
在该实施例中,特征点方向匹配子模块31利用第一匹配模块20记录的匹
配的特征点,计算其主方向变化率,如果小于第二阈值,则进入步骤104,否
则认为匹配失败,程序直接返回结果。在一个实施例中,假设待检测图片特
征点的主方向为θai,图片库中图片的主方向为θbi,如图5A,5B所示,θa1与θb1
相匹配,θa2与θb2相匹配,依次类推,这些匹配信息是特征点方向匹配子模块
31最后记录的。同时采用var(data)表示一组数(data)的方差,则主方向变化率
c定义如下:
c=var(θbi-θai),其中i为匹配对数
假设待检测图片为图5A,图片库中的图片为图5B,主方向如图中箭头所
示,按照上式定义的结果计算,主方向变化率c是个比较小的值。如果图片库
中的图片为5C,即图5B旋转90度后获得,按照上式定义计算,由于计算的
是两张图片主方向之差的方差,所以θbi-θai计算结果基本稳定在90度,变
化率会比较小,因此主方向变化率c亦是个比较小的值。综上所述,特征点方
向匹配子模块31对图片的旋转鲁棒,可以有效的应对任意角度的旋转。如果
c值小于第二阈值,则表示两张图片主方向相似,认为通过这一级的匹配,进
入下一级的匹配,否则表示匹配失败,程序直接返回结果。
特征点位置匹配子模块32通过计算匹配特征点集之间的透视变化矩阵从
而计算内点比率,如果内点比率大于第三阈值,则进入特征点覆盖面积匹配,
否则表示匹配失败,程序直接返回结果。匹配点对依然用到了第一匹配模块
20最后记录的匹配点对信息。假设待检测图片中的特征点坐标为
(xi,yi),i为匹配对数,设此点集为X,图片库中图片的特征点坐标为
(si,ti),i为匹配对数,设此点集为S,特征点位置匹配子模块32首先计算点
集S和点集X之间的透视变化矩阵H:
s
i
t
i
1
~
H
x
i
y
i
1
,
]]>其实H是一个3×3矩阵
同时保证误差最小:
e
r
r
o
r
=
Σ
i
(
s
i
-
h
11
x
i
+
h
12
y
i
+
h
13
h
31
x
i
+
h
32
y
i
+
h
33
)
2
+
(
t
i
-
h
21
x
i
+
h
22
y
i
+
h
23
h
31
x
i
+
h
32
y
i
+
h
33
)
2
]]>
依据平面透视变化理论,如果匹配对数小于等于4对,则H矩阵是唯一确
定的,误差为0。如果匹配点数大于4对,且有外点,类似最小二乘法,则能
找到一个矩阵H,使误差达到最小。具体做法如下:
假设匹配对数为N,随机选出4对,一共有种选法。每种算法计算一
个透视变化矩阵H,然后应用到所有的N对匹配中,计算误差。遍历所有种
选法,选取误差最小的那个变化矩阵,作为最终的透视变化矩阵。
有了透视变化矩阵H后,即可以把X点集映射到X′点集。如果两张图片确
实是匹配图片,则X′点集与S点集之间的误差是很小的。如图6A和图6B所
示,图6A的黑色点表示X点集,图6B的灰色点表示通过透视变换矩阵映射后
成的X′点集,由于左右两张图片确实是相似的匹配图片,所以灰色X′点集与S
点集之间的误差是很小的。在一个实施例中,假设当灰色点与白色点之间的
距离小于10像素时,认为灰色点变换之前的黑色点是一个内点。这样可以计
算所有匹配点的内点个数从而计算内点比率,在一个实施例中,当比率大于
第三阈值,如67%时,则认为待检测图片通过这一级的匹配,进入下一级的
特征点覆盖面积匹配,否则返回匹配失败。这里有一点值得注意,即使两张图
片不是匹配图片,他们特征点之间的透视变换矩阵也可以找到的,也就是X点
集亦可以映射到X′点集,只是X′点集与S点集之间的误差是很大的,从而导
致内点个数大大减少。
特征点覆盖面积匹配子模块33依然使用第一匹配模块20记录的匹配点对,
只不过只计算待检测图片的特征点覆盖面积,如果覆盖面积大于第四阈值,
例如70%,则表示匹配成功,否则失败。如图7所示中框线所示,黑色的特
征点都在方框线内;表示特征点覆盖面积匹配子模块33的匹配操作主要是为
了去除一些文字以及图案边界的错误匹配。
在上述多个实施例中,面向二进制特征的图像匹配系统100的多个模块可
以是软件单元,硬件单元或软硬件结合单元。
参见图8,在本发明的第五实施例中,提供了一种面向二进制特征的图像
匹配方法,所述方法包括:
步骤S801中,提取待检测的图片的多个特征点的信息以及多个所述特征点
的第一二进制描述子;该步骤为特征提取步骤,由特征提取模块10实现;
步骤S802中,将多个所述第一二进制描述子与预设的图片库中的所有图片
的第二二进制描述子进行比较,找出与多个所述第一二进制描述子匹配数最多
的第二二进制描述子所对应的第一图片;该步骤为第一匹配步骤,该步骤由第
一匹配模块20实现;
步骤S803中,将所述待检测的图片和所述第一图片进行特征点的信息的匹
配,获得所述待检测图片的匹配结果信息。该步骤为第二匹配步骤,由第二匹
配模块30实现。
在该实施例中,首先,提取待检测图片的特征。优选的,特征点的信息包
括:所述特征点的特征点主方向、特征点位置和特征点覆盖面积。接着,待检
测图片的特征与后台图片库中的特征分别进行匹配。如包括二进制描述子个
数匹配,特征点主方向匹配,特征点位置匹配以及特征点覆盖面积匹配。第二
匹配模块30将所述待检测的图片和所述第一图片进行特征点的信息的匹配,若
两者的所述特征点的信息匹配成功后,则所述第一图片为与所述待检测的图片
匹配的图片;若两者的所述特征点的信息匹配失败后,则所述第一图片不是与
所述待检测的图片匹配的图片。即如果四级匹配都通过,则表示匹配成功,否
则表示失败。而所述特征提取步骤包括:特征提取模块10提取所述待检测的图
片的多个特征点的特征点主方向、特征点位置以及所述特征点的第一二进制描
述子;在所述第一匹配步骤之前包括:二进制索引建立步骤:二进制索引建立
模块40建立所述图片库的二进制索引,所述二进制索引包括由多个第二二进制
描述子组成的二进制特征空间和每个所述第二二进制描述子所在图片的图片序
号。
为了实现面向二进制特征的图像匹配,需要建立图片库,如图3所示,
该图片库的检索索引采用了二进制视觉中心,视觉中心个数可以根据平台的
计算能力动态调整,同时省略了分配特征二进制描述子的过程,保证了极快
的计算速度以及高检索召回率。此二进制倒排索引如图3所示。左边表示二
进制的视觉单词中心,也可以理解为二进制特征。假设对第二二进制描述子进
行精简后的描述子长度为N,由于描述子是二进制的01串,则第二二进制描
述子的二进制特征空间大小为2N,即由全0构成的特征到全1构成的特征。
在一个实施方式中,精简后的第二二进制描述子的长度为20,则特征空间的
大小为220,第二个第二二进制特征由20个0构成,最后一个第二二进制特征
由20个1构成。每个第二二进制特征后面接图片库中包含有此特征的图片序
号。
在本发明的第七实施例中,所述第一匹配步骤包括:
第一匹配子模块21分别将每个所述第一二进制描述子在所述二进制特征空
间中与所述第二二进制描述子进行匹配;
第一选择子模块22选择包括与多个所述第一二进制描述子匹配数最多的所
述第二二进制描述子的所述第一图片,若所述匹配数大于预设的第一阈值,则
记录匹配的多个所述第一二进制描述子和第二二进制描述子所对应的特征点对,
并执行所述第二匹配步骤,否则所述第一匹配步骤失败。
在该实施例中,特征提取模块10提取的待检测图片的第一二进制描述子与
图片库中所有图片的第二二进制描述子进行比较,找出匹配最多的图片,如果
对应的匹配数大于第一阈值,则记录所匹配的特征对,留待后级匹配使用。然
后进入特征点的信息匹配。否则表示匹配失败。
在本发明的第八实施例中,所述第二匹配步骤包括:
特征点方向匹配步骤:特征点方向匹配子模块31分别计算匹配的多个所述
特征点对的特征点的主方向变化率;若两者的所述主方向变化率小于预设的第
二阈值,则执行特征点位置匹配步骤,否则所述第一图片不是与所述待检测的
图片匹配的图片;
特征点位置匹配步骤,特征点位置匹配子模块32通过分别计算匹配的多个
所述特征点对之间的透视变化矩阵以计算多个所述特征点对的内点比率,若所
述内点比率大于预设的第三阈值,则执行特征点覆盖面积匹配步骤,否则所述
第一图片不是与所述待检测的图片匹配的图片;
特征点覆盖面积匹配步骤,特征点覆盖面积匹配子模块33计算多个所述特
征点对中所述待检测图片中的特征点的特征点覆盖面积,若所述覆盖面积大于
预设的第四阈值,则第一图片是与所述待检测的图片匹配的图片,否则所述第
一图片不是与所述待检测的图片匹配的图片。
在该实施例中,提供了一种面向二进制特征的图像匹配方法,具体的匹
配过程包括:二进制描述子个数匹配、特征点主方向匹配、特征点位置匹配、
5、特征点覆盖面积匹配。而预先的,若第一二进制描述子长度太长可以进行
精简;图片库中的图片的第二二进制描述子也进行精简。由于通过了,四级
匹配,包括二进制描述子个数匹配,特征点主方向匹配,特征点位置匹配以
及特征点覆盖面积匹配,在保证召回率的情况下能有效提高匹配的准确度。
经过实际数据测试,通过第一级描述子个数匹配的召回率达到98%,准确率
在30%,通过第二级特征点主方向匹配的召回率达到95%,准确率在70%,
通过第三级特征点位置匹配的召回率达到90%,准确率在95%,最后第四级
特征点覆盖面积匹配召回率保持在85%,准确率在99%以上,同时速度保持
在每秒单核单线程500张图片(除去提取特征时间),如果包括主流二进制
特征提取的时间,速度大约在60张图片。
参见图9,在本发明的第九实施例中提供了面向二进制特征的图像匹配方
法,所述方法流程描述如下:
在步骤S901中,首先提取待检测图片的特征,包括特征点的位置、特征
点的主方向以及特征点的二进制描述子,以供后续操作使用。当然,图片库
中的图片也需要以相同的算法提取相同的特征信息并将一部分信息载入内存
方便后续比较。如果提取的二进制描述子长度较长,为了防止后续的二进制
索引的特征空间过大,需要进行描述子精简,将精简后的描述子作为此特征
点的描述子。这样在检索匹配之前先建立起图片库的二进制倒排索引,加速
后续匹配操作。
在步骤S902(二进制描述子个数匹配)中,将步骤S901中提取的待检测
图片的描述子与图片库中所有图片的描述子进行比较,找出匹配最多的图片,
如果对应的匹配数大于阈值,则记录所匹配的特征对,然后进入步骤S903,
否则表示匹配失败。
在步骤S903(特征点主方向匹配)中,利用步骤S902中记录的匹配的特
征点,计算其主方向变化率,如果小于阈值,则进入步骤S904,否则认为匹
配失败,程序直接返回结果。
在步骤S904(特征点位置匹配)中,通过计算匹配特征点集之间的透视
变化矩阵从而计算内点比率,如果内点比率大于阈值,则进入步骤S905,否
则表示匹配失败,程序直接返回结果。匹配点对依然用到了步骤S902最后记
录的匹配点对信息。
在步骤S905(特征点覆盖面积)中,依然使用步骤S902记录的匹配点对,
只不过只计算待检测图片的特征点覆盖面积,如果覆盖面积大于阈值,则表
示匹配成功,否则失败。这个步骤主要是为了去除一些文字以及图案边界的
错误匹配。
在本发明的又一个实施例中,还提供了一种面向二进制特征的图像匹配
系统。系统分为五个模块,索引加载模块、特征点描述子个数匹配模块、特
征点主方向匹配模块、特征点位置匹配模块、特征点覆盖面积匹配模块。索
引加载模块的工作时从磁盘加载图片库的信息,生成二进制索引,并常驻内
存,方便后续匹配使用。特征点描述子个数匹配模块、特征点主方向匹配模
块、特征点位置匹配模块、特征点覆盖面积匹配模块分别执行步骤S902、步
骤S903、步骤S904以及步骤S905。
在该实施例中,通过四级匹配,包括描述子个数匹配,特征点主方向匹
配,特征点位置匹配以及特征点覆盖面积匹配,在保证召回率的情况下能有
效提高匹配的准确度。在一个实施例中,经过实际数据测试,通过第一级描
述子个数匹配的召回率达到98%,准确率在30%,通过第二级特征点主方向
匹配的召回率达到95%,准确率在70%,通过第三级特征点位置匹配的召回
率达到90%,准确率在95%,最后第四级特征点覆盖面积匹配召回率保持在
85%,准确率在99%以上,同时速度保持在每秒单核单线程500张图片(除去
提取特征时间),如果包括主流二进制特征提取的时间,速度大约在60张图
片。
综上所述,本发明通过提取待检测的图片的多个特征点的信息以及多个所
述特征点的第一二进制描述子;然后,将多个所述第一二进制描述子与预设的
图片库中的所有图片的第二二进制描述子进行比较,找出与多个所述第一二进
制描述子匹配数最多的第二二进制描述子所对应的第一图片;最后,将所述待
检测的图片和所述第一图片进行特征点的信息的匹配,获得所述待检测图片的
匹配结果信息,由此,提高了图片匹配的效率及准确性能。具体的,在本发明
中,创新的引入了四个匹配准则,依次通过待检测图片与图片库中的二进制
描述子个数匹配、特征点主方向匹配、特征点位置匹配、以及特征点覆盖面
积匹配,实现在保证速度以及召回率的同时,保证了极高的匹配精度。在现
在主流的CPU(酷睿i74770)平台上,检索索引能覆盖一百万的图片所包含
的特征库,内存仅需占用2GB,单核单线程每秒能检索500张图片,速度极
快。在精度保证99%的情况下,召回率保证在85%以上,因此,本发明的技
术方案极其适合应用在对速度要求高的嵌入式平台以及实时监控平台上。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情
况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但
这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。