自制图片搜索引擎(一)
2015-08-20 15:43
375 查看
一般来说有三种模式的图片搜索引擎:基于元数据、基于例子和混合模式。
基于元数据的搜索引擎是指手动为图片添加注释或标签,这种方式很少检测图像本身的内容,而是用相关的文本信息。
基于例子搜索仅仅依赖于图像的内容,不需要提供关键字。引擎会分析、量化并存储图像,然后返回其他相关的图像。
混合式图像搜索引擎可以同时基于图像和文本描述搜索。
在构建图像搜索引擎时,首先要对数据集编列索引。索引化数据集是量化数据集的过程,即通过图像描述符(image descriptor,也称描述子)提取每幅图像的特征。
构建CBIR系统的大致步骤可归纳为:
定义图像描述符:在这一阶段,需要决定描述图像的哪一方面。是关注图像的颜色,还是图像中的物体形状,或是图像中的纹理?
索引化数据集:现在有了图像描述符,接着就是将这个图像描述符应用得到数据集中的每幅图像,提取这些图像的特征,将其存储起来(如CSV文件、RDBMS、Redis数据库中,等),这样后续步骤就能使用以便比较。
定义相似矩阵:很好,现在有了许多特征向量。但如何比较这些特征向量呢?流行的方式是比较欧几里德距离、余弦距离、或卡方距离。但实际中取决于两点:1、数据集;2、提取的特征类型。
搜索:最后一步是进行实际的搜索。用户会向系统提交一幅需要搜索的图片(例如从上传窗口或通过移动App提交),而你的任务是:1、提取这幅图像的特征;2、使用相似度函数将这幅图像的特征与已经索引化的特征进行比较。这样,只需根据相似度函数的结果,返回相关的图像就可以了。
基于元数据的搜索引擎是指手动为图片添加注释或标签,这种方式很少检测图像本身的内容,而是用相关的文本信息。
基于例子搜索仅仅依赖于图像的内容,不需要提供关键字。引擎会分析、量化并存储图像,然后返回其他相关的图像。
混合式图像搜索引擎可以同时基于图像和文本描述搜索。
在构建图像搜索引擎时,首先要对数据集编列索引。索引化数据集是量化数据集的过程,即通过图像描述符(image descriptor,也称描述子)提取每幅图像的特征。
构建CBIR系统的大致步骤可归纳为:
定义图像描述符:在这一阶段,需要决定描述图像的哪一方面。是关注图像的颜色,还是图像中的物体形状,或是图像中的纹理?
索引化数据集:现在有了图像描述符,接着就是将这个图像描述符应用得到数据集中的每幅图像,提取这些图像的特征,将其存储起来(如CSV文件、RDBMS、Redis数据库中,等),这样后续步骤就能使用以便比较。
定义相似矩阵:很好,现在有了许多特征向量。但如何比较这些特征向量呢?流行的方式是比较欧几里德距离、余弦距离、或卡方距离。但实际中取决于两点:1、数据集;2、提取的特征类型。
搜索:最后一步是进行实际的搜索。用户会向系统提交一幅需要搜索的图片(例如从上传窗口或通过移动App提交),而你的任务是:1、提取这幅图像的特征;2、使用相似度函数将这幅图像的特征与已经索引化的特征进行比较。这样,只需根据相似度函数的结果,返回相关的图像就可以了。
相关文章推荐
- linux各种下载地址
- Javascript(二)-04-(常见对象-String-自定义功能)
- 正则匹配
- UIStepper使用的具体解释的控制
- win7系统下如何配置php-Apache-mysql环境
- UVA 679 Drop 完全二叉树
- jquery中$.getJSON()
- 在Spring中使用Quartz任务调度支持集群(转载)
- 如何减少3D打印常见问题的方法以及发展方向
- php socket
- Android-监听SD卡状态(BroadcastReceiver)
- IOS开发 APNS消息推送实现
- MyEclipse 编辑spring配置文件,包名提示
- 消息队列MQ比较
- SO_REUSEPORT学习笔记
- POJ 2601 Simple calculations
- 深入介绍iOS Runtime机制
- 排序的辅助空间问题
- C语言项目:学生成绩管理系统
- Atitit.ati orm的设计and架构总结 适用于java c# php版