当前位置: 首页 > 专利查询>张三明专利>正文

一种基于BigBase的海量图片搜索系统及方法技术方案

技术编号:7319685 阅读:319 留言:0更新日期:2012-05-04 20:21
本发明专利技术涉及一种基于BigBase的海量图片搜索系统和方法,方法包括:提取每张图片的SIFT特征向量存储到BigBase中;通过KDIndexer算法为特征向量编制索引,使具有相同索引号的向量成为一堆,每堆的向量个数在一个固定范围内。搜索时,首先,提取输入图片的SIFT特征向量;然后,逐一按SBBF算法计算其所属的堆号,到特征向量库的相应堆中查找与其匹配的特征向量;最后,按匹配结果得到相似图片的排序列表。本发明专利技术的关键在于通过建立索引将特征向量库分堆的方法,将全局计算变成了小范围固定规模的计算;这样就可以借助于BigBase良好的可扩展性,只要保证机器的规模与图片库的规模成固定比值,就可以确保查找操作在相对固定的时间内完成,以满足对海量图片库的实时搜索需求。

【技术实现步骤摘要】

本专利技术涉及计算机处理领域,尤其涉及。
技术介绍
当前,国内外有很多的搜索引擎提供图片搜索服务,其搜索方式大都是按照图片的关键字进行搜索,而基于图像内容的海量图片搜索引擎还没有通用的成熟产品。所谓基于图片内容的搜索引擎是指给定一张图片,在海量的图片库中能够检索到所有与其内容相同或者相似图片的搜索引擎。这种搜索引擎难产的主要原因在于随着信息社会的不断发展,图片的数量呈现出爆炸性增长的趋势,从而导致图片的总量过于庞大;而当前的图像匹配方法经过多年的发展,虽然已经很好地解决了图片两两比对的问题,但是由于其计算的复杂性,难以满足海量图片的实时搜索需求。因此,迫切需要从系统结构的角度,利用当前分布式系统的新思想和新方法结合已有的技术来解决旧的问题。一方面,在图像匹配领域,近几十年来,许多研究者进行了广泛深入的研究,提出了大量的算法。目前的图像匹配算法主要有基于特征和基于区域两种方法。由于视角、拍摄时间、分辨率、光照强度、传感器类型等的差异,待匹配的图像往往存在平移、旋转、光照、 尺度变化等差别。基于特征的方法首先从待匹配图像中提取特征集合。特征是图像的一些显著位置例如图像的边缘、角点等。基于特征的方法利用了图像的显著特征,具有计算量小,速度较快等特点,对图像的几何变形、噪声、畸变等具有一定的鲁棒性。因此,基于特征的方法成为当前研究最多应用最广的方法。在基于特征的匹配方法方面,David G.Lowe在 2004年提出了一种基于尺度空间的,对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子-SIFT (Scale Invariant Feature Transform)算子。SIFT 算法首先在尺度空间进行特征检测,并确定关键点(Keypoints)的位置和关键点所处的尺度,然后使用关键点邻域梯度的主方向作为该点的方向特征,以实现算子对尺度和方向的无关性。 SIFT特征向量对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;同时该类特征向量个数多,即使少数的几个物体也可以产生大量SIFT 特征向量;每一个向量的维数多,一般为1 维;可扩展性好,可以很方便的与其他形式的特征向量进行联合。因此,SIFT算法一经提出,迅速成为该领域的一个经典算法。但是,基于SIFT特征建立海量图片库存在着很多难题,一是由于SIFT特征数量多,一副图片往往具有成千上万个特征向量,导致图片的特征库非常巨大;二是每个特征向量的维数高,一般为1 维,高维向量的相似性计算一直是计算机界的研究难题。一个包含一亿张图片的特征库,至少要存储千亿条特征向量,传统的数据库已经无法有效地支持这种规模的应用。因此,必须解决特征库的海量存储和实时检索问题。另一方面,在分布式系统的研究领域,近几年来有关云计算的一系列理论、方法和工具为解决大规模数据处理问题提供了新的手段。其中,基于开源实现的Hadoop和由北京亿联国科数据科技有限公司研发的商业数据库产品BigBase就是两个重要的大规模数据3处理工具,前者用于构建集大规模数据存储(HDR5)和分布式计算(Map-Reduce模型)为一体的分布式系统平台;后者基于HDFS提供高可扩展性、高可靠性、高性能、列存储、可伸缩、 实时读写的数据库系统。BigBase是中国第一款通用的商业版本NoSQL数据库,支持多索引列,支持单行事务,可以用来存储非结构化和结构化的松散数据。该数据库的特点是读写速度快,可以做到在线查询,同时支持大量用户的并发查询。与hadoop—样,BigBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。BigBase可以用来存储非常大规模的表,一个表可以有上亿行,上百万列;支持面向列(族)的存储和权限控制,列(族)独立检索;能够更好地支持稀疏表,对于为空(null)的列,并不占用存储空间。因此,Hadoop和BigBase等工具的出现,为解决上述海量图片以及对应的海量特征库的存储和查询问题提供了有力的支持。然而,仅仅有SIFT算法和Hadoop、BigBase还不够,实现一个海量图片搜索系统必须要解决海量高维特征向量的快速匹配的问题。对于任何一条输入特征向量而言,基于 SIFT特征的匹配方法要求在整个特征库中找到与输入特征向量欧氏距离最小和次小的两个特征向量,如果最小距离与次小距离的比值小于一个阈值,则认为最小距离的特征向量与输入的特征向量匹配。为此,要想精确地得到匹配的特征向量,输入特征向量必须与特征库中的每一个向量计算欧氏距离。由于特征库的巨大,采用这种蛮力搜索的方法是不可能实现实时搜索的。因此,必须采取某种方法有效地缩小搜索范围,同时保证该范围不会随着图片总量的扩大而增长,从而将搜索时间控制在用户可以接受的范围内。
技术实现思路
为了解决上述的技术问题,本专利技术提供了,其目的在于1、应用SIFT算法,提取图片的特征值,从而确保搜索的结果对于图片的旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声保持一定程度的稳定性;2、利用Hadoop的HDFS实现海量图片的存储,应用Hadoop的Map-Reduce框架实现图片特征提取、大规模并发查询等操作的并发执行;采用BigBase实现海量SIFT特征向量的存储和高效查询;3、设计一种KWndexer算法,为每一个特征向量编制索引,使得具有相同索引号的向量成为一堆,该索引号就是对应堆的堆号;每个堆中的向量个数设定为一个固定范围 (默认值200到400)。在进行匹配时采用SBBF(Simplified Best Bin First)算法,仅对某一堆中的向量计算欧氏距离,从而将匹配算法复杂度控制在0(1)级。这样,整个检索的时间更多依赖于从BigBase中按照堆号查询堆中记录的时间,该时间为0(log2n)。BigBase 良好的扩展性和实时性,使得当图片库的规模显著增大时可以通过扩展硬件资源的方法, 保证这种查询操作的实时性。本专利技术公开了一种基于内容的海量图片搜索系统的实现方法,包括步骤1,建立图片特征库。提取图片库中每张图片的SIFT特征向量;将所有图片的特征向量存储到BigBase的一个表中。步骤2,为特征向量建立索引。通过KWndexer算法,为每一个特征向量编制索引, 通过索引号将向量分堆,每个向量的索引号就是其所在堆的堆号;4步骤3,对输入的图片检索实施按内容检索。首先,提取输入图片的SIFT特征向量;然后,将这些特征向量逐一到特征向量库中按照SBBF算法查找与其匹配的特征向量; 最后,按照特征向量的匹配结果得到相似图片的排序列表。步骤2中的KWndexer算法描述如下有η (η > 0)个D (D > 0)维度的向量组成的集合S = {V(1,V1,…,vn_J,其中任何一个向量Vi可以表示为Vi = {Vid0, ViCl1,…,ViCVJ,将S分成k个规模为M的子集P1, P2,…,Pk,使得DP1 U P2 U …U Pk = S ;2)对于任意的 Pi (0 彡 i 彡 k)和 Pj (0 彡 j 彡 k),PiHPj= 0;3)对于任意的Pi,其所包含向量的个数为x,M<x<2M,M>0;如图3所示,该算法的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:张三明付希全
申请(专利权)人:张三明付希全
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术