LIRE原理与源码分析(一)——代码结构
来源:互联网 发布:淘宝圆形logo图 编辑:程序博客网 时间:2024/05/29 14:18
LIRE:Lucene Image Retrieval
1. LIRE原理与源码分析(二)—— 代码结构
2. LIRE原理与源码分析(二)—— 相关接口
LIRE是一个基于Lucene实现的开源图像检索引擎,最早是由澳大利亚人Mathsia Lux用Java语言开发的。使用LIRE进行图像检索的过程可以概括为两部分:构建索引和查询。首先,LIRE可以读取一个目录内的图片,并基于多种不同的图像特征提取算法提取出这些图片的特征,然后基于Lucene对特征构建索引文件。搜索阶段则通过比较查询图片的特征和索引文件获得相似图片。过程如图1所示。
图1
从图1中可以看出,这里涉及的接口主要有三种:LireFeature,DocumentBuilder和ImageSearcher。
代码结构
LIRE中的文件很多,但实现代码都在net.semanticmetadata.lire(下文称此目录为根目录)中,并且包目录很清晰。
- 根目录中主要是一些接口和抽象类。其中类名跟DocumentBuilder相关的接口定义了构建索引相关的方法,跟ImageSearcher相关的接口定义了搜索相关的方法。ImageSearchHits用来保存搜索的结果。
- clustering:KMeans方法和多线程并行KMeans方法的实现类
- filter:两个对搜索结果进行过滤的实现类。
- imageanalysis:包含LireFeature接口,以及多种实现了LireFeature接口的具体的特征实现类。
- impl:定义了创建多种具体的DocumentBuilder的实现类和创建多种ImageSearcher的实现类。
- indexing:这个包内的类比较杂,有一些还不太清楚,包括LSH等哈希方法进行索引的实现类等。
- matrix:包括距离矩阵(DistanceMatrix)和相似度矩阵(SimilarityMatrix)的接口
- utils:一些常用的工具类,包括数据转换(ConversionUtils)、文件操作(FileUtils)、图像操作(ImageUtils)、索引创建与优化(LuceneUtils)、计算距离度量(Metricsutils)、序列化(SerializationUtils)、采样数据(StatsUtils)。
0 0
- LIRE原理与源码分析(一)——代码结构
- LIRE原理与源码分析(二)——相关接口
- LIRe图像检索:CEDD算法原理与源码分析
- LIRe图像检索:FCTH算法原理与源码分析
- Lire源码解析一
- MySQL源码分析——代码结构与基本流程
- Reids源码分析(一)——整体结构分析
- Flume源码分析—代码结构理解(四)
- LIRE代码剖析3——常用的特征提取与匹配方法
- LIRE代码剖析3——常用的特征提取与匹配方法
- LIRE代码剖析4——LIRE中比较重要的方法
- LIRe 源代码分析 1:整体结构
- LIRE源代码分析 3:整体结构
- ExtJs源码分析与学习—ExtJs核心代码(一)
- ExtJs源码分析与学习—ExtJs源码结构
- hive原理与源码分析-hive源码架构与理论(一)
- nsq源码分析(1):代码结构
- Hadoop源代码分析(一)源码结构
- jquery内置函数
- 在win7下如何以兼容模式运行matlab
- 总结1:: springweb项目基本包结构/eclipse编辑器
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- 简单易学的机器学习算法——极限学习机(ELM)
- LIRE原理与源码分析(一)——代码结构
- 定位显示出经纬度和当前的位置名
- ARC指南 - ARC的开启和禁止
- 渗透测试工具网站集合---持续更新
- RHCE 系列(二):如何进行包过滤、网络地址转换和设置内核运行时参数
- Linux终端的几个常用快捷方式,记下!
- 开发app 积累
- 三范式数据库设计和反范式的思考(转)
- 页用JavaScript验证函数