LIRe:Lucene图像检索 - 可扩展Java CBIR库

LIRe:Lucene图像检索 -可扩展Java CBIR库

摘要:

LIRe(Lucene Image Retrieval)是一个轻量级的开源的用于基于内容的图像检索的Java库。它提供共同的和最先进的全局图像特征和用于索引和检索的方法。由于事实上它是基于一个轻量级的嵌入式文本搜索引擎,它可以在不依赖于数据库服务器的情况下轻松集成到应用程序中。
类别和主题描述符:

H.3.3 [信息存储和检索]:信息搜索和检索

概述:

文档

关键字:

图像检索,图像特征,图像搜索,图像索引

1.引言

基于内容的图像检索(CBIR)的领域自20世纪90年代初以来被发现和检索独立于元数据而不是从图像本身提取的想法。然而,还没有找到满意的解决方案,但一个问题已被孤立:研究人员定义语义空白[5],其中提到机器不能基于自动提取的数据完全理解和解释图像(参见实例[7])。在目前的视觉信息检索,特别是全局特征的研究努力中,其表示捕获整个图像的特征而不是聚焦在片段,区域或面片上,已经失去了部分它们的意义[4]。然而在应用研究中,基于内容的图像检索 - 例如作为一个复杂系统的一部分 - 通常依赖于快速,全局的特性至少作为进一步研究的基础。LIRe(Lucene图像检索)是一个有效的库允许研究人员以简单的方式基于全局特征集成CBIR。

本文按以下方式组织:一般LIRe的概述在下一节中给出,并且在随后的部分中给出详细的技术描述。在总结本文之前描述了演示应用LIReDemo和关于LIRe及其适用性的一些结论。

2.LIRE

LIRe是用于基于内容的图像检索的Java库。LIRe从光栅图像中提取图像特征并存储它们在Lucene索引以供以后检索。LIRe还提供用于搜索索引的手段。LIRe面向开发人员和研究人员,他们希望在其应用程序中集成基于内容的图像检索功能。由于方法的简单性(没有数据库,只需要几行代码来集成LIRe),这是一种简单的方法来测试单一应用程序域的传统CBIR方法的能力。另外,可以容易地集成附加的图像特征以进一步扩展LIRe的功能。目前LIRe中包含以下图像功能:

1.RGB和HSV颜色空间中的颜色直方图

2.MPEG-7描述符可缩放的颜色,颜色布局和边缘直方图,参见[1]。

3.Tamura纹理特征具有粗糙,对比度和方向性,见[8]

4.颜色和边缘方向性描述符,CEDD,参见[2]

5.模糊颜色和纹理直方图,FCTH,参见[3]

6.由Huang etal定义的自动颜色相关特征。 [6]



虽然LIRe本身是一个开发库,但是还有一个名为LIRe Demo的附加演示包,它允许使用图1所示的图形用户界面测试LIRe的所选CBIR特性。为了加快索引速度的目的,并行使用多个线程和为了从Flickr的简单照片可以索引,而不是指定本地图像集合用于测试目的。LIRe Demo还集成了一个基于LIRe创建图像镶嵌功能的应用程序。LIRe已于2006年2月首次发布,目前可在v0.6版本中使用。LIRe和LIRe Demo都可以通过GPL在线授权1。除了Java类文档外还有一个文档Wiki为用户和开发人员提供代码示例,回答常见问题和描述最佳实践方法。最新的开发代码可以在http://www.sourceforge.net上的subversion(SVN)服务器上访问。请注意,LIRe作为子项目托管在项目Caliph和Emir内,该项目提供基于Java的工具MPEG-7图像注释和检索。

3.技术细节

LIRe建立在开源文本搜索引擎Lucene之上,托管在http://lucene.apache.org。像在文本检索图像中必须索引以供稍后检索。索引被组织为Lucene索引,其中由具有名称和值的字段组成的文档被组织在通常存储在文件系统中的索引结构中。

3.1索引

索引使用DocumentBuilder接口的实现完成。一个简单的方法是使用DocumentBuilderFactory,它为所有可用功能以及功能的常用组合(例如所有MPEG-7功能或所有可用功能)创建DocumentBuilder实例。DocumentBuilder基本上是一个图像特征的包装器,从JavaBufferedImage创建一个Lucene文档。由特征实现提取的签名或向量作为文本包装在文档中。DocumentBuilder输出的文档可以添加到Lucene索引中。

3.2搜索

对于搜索,使用实现ImageSearcher接口的类。ImageSearcher接受给定的查询特征或从查询图像提取特征。然后从索引顺序读取文档并将其与查询图像进行比较(线性搜索)。虽然Lucene的主要索引特征(例如,倒排列表或词干)不用于这种类型的搜索,LIRe利用了Lucene的高效快速磁盘访问层,与使用嵌入式数据库HSQLDB2(在Open Office中使用)和Apache Derby3(也包括在Java运行时版本中)的实施相比,这导致比Java DB更短的搜索时间。此外,使用Lucene允许索引大于普通RAM限制(例如,32位Java上小于2 GB),并为图像附加索引文本元数据。

3.3 Features

LIRe中的图像功能也可用于应用外部提供的搜索和索引机制。LIRe特性通常实现LireFeature接口,因此提供了从Java BufferedImage中提取的通用方法以及描述符的文本表示的输出和解析。此外,距离函数是特征实现的一部分。当前可用的功能在第2节中给出。

4.性能

为了测试运行时性能,众所周知的1,000个图像SIMPLIcity数据集,Wang et al。[9]已被使用。所有测试都在台式计算机上完成,该计算机配有带有四个2.4 GHz内核和2 GB RAM的IntelCore 2 Quad CPU,运行安装了Sun Java 1.6 u6的Windows XP。测试在具有Java客户端VM的单个线程中完成。测试在具有Java客户端VM的单个线程中完成。测试的VM的最大内存设置为512MB。



表1给出了用所提到的描述符索引Wang数据集所需的时间的概述。请注意,自动颜色关联是高度可配置的,运行时间很大程度上取决于所选择的参数。已使用CEDD描述符测试了搜索性能。用于搜索的索引王数据集为1000副图像需要78.1ms,相应的索引具有368KB的大小。对于搜索在更大的数据集的王9,908图像需要303.2 ms,各自的索引具有大小为3.54 MB。

4.1扩展LIRe

扩展LIFe的最常见方法是添加其他图像特征。在这种情况下,必须实现LireFeature接口。类GenericImageSearcher和GenericDocumentBuilder提供了简单的方法来实现索引和基于实现接口的任意特征的搜索。为了提供不同的功能组合,ChainedDocumentBuilder可以用来链接几个不同的DocumentBuilder实现。

5. LIRE演示

除了Java库外,还有一个演示应用程序是LIRe项目的一部分。演示提供了一种简单的方法来测试任意图像数据(支持PNG和JPEG图像)的基本功能。LIRe演示允许索引一组图像并将图像添加到现有索引。如果没有来自本地存储库的图像,从Flickr5下载一组示例照片。然后它允许浏览索引的图像和通过示例发出查询。结果窗口如图2所示。所有基本集成的ImageSearcher实现都可用于检索。此外,基于LIRe创建图像镶嵌(参见图3)的示例应用程序是演示的一部分。



6.总结和结论

LIRe是一个轻量级的Java库,用于基于GPL许可提供的基于内容的图像检索。LIRe足够快,足以为依靠标准CBIR技术的应用研究提供一个平台。由于它使用Lucene文本搜索引擎而不是数据库服务器,因此很容易将LIRe集成到现有的原型和应用程序中。对于从大数据库或具有许多并发用户的应用程序检索图像的应用程序,LIRe的线性搜索方法是不合适的。然而,LIRe项目的开源性质允许将LIRe扩展到更好的索引策略,并且比线性搜索更快。

Reference:

http://xueshu.baidu.com/s?wd=paperuri:(6ed97a2a7816dfc3bf5f7649a208e62c)&filter=sc_long_sign&sc_ks_para=q%3DLire%3A+lucene+image+retrieval%3A+an+extensible+java+CBIR+library&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=16303084758296661835


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值