想要了解如何开发图像检索系统

时间:2009-11-17 20:32:04

标签: algorithm image-processing search-engine content-based-retrieval

我只想更多地了解Google如何搜索图片。我知道这对我来说太复杂了,但我想尝试在我自己的一组图像上进行。

这就是我的建议:对于文件夹中的大量随机图像,我可以使用一些关键字(可能不合适,可根据您的想法进行更改),搜索一些图像并对它们进行排序,就像谷歌图片。

我和一些图形人员谈过如何确定图像之间的相似之处,他们告诉我类似的事情:

  1. 全局颜色直方图
  2. 图像布局和基于块的直方图(我不是很熟悉)
  3. 基于RAG的描述。
  4. 所以,现在我真的需要你的想法,我不需要任何代码或其他东西,请你分享你在设计这样一个本地图像搜索系统时可能会想到的,你如何定义图像之间的相似性,你将如何代表图像等。

    我将继续与一些图形人员交流学习,但我也非常希望你的想法能让我开始。

5 个答案:

答案 0 :(得分:3)

TinEye是我见过的唯一基于图像的搜索引擎。 FAQ有一些技术细节,但重要的限制(也告诉你一些关于他们用来构建“图像签名”的检测器):

  

Can TinEye能找到类似的图片吗? TinEye做面部识别吗?

     

TinEye查找您提交的图像的准确和更改副本,   包括已经存在的那些   裁剪,调整颜色,调整大小,   大量编辑或略微旋转。   TinEye通常不会返回   类似的比赛,它不能   识别任何图像的内容。   这意味着TinEye找不到   与同一个人的不同图像   或其中的东西。

答案 1 :(得分:3)

Google不仅仅是对图片进行简单的文字搜索,请参阅Google Official Blog上的这篇文章。请记住, visual 功能(基于内容的图像检索 - CBIR)上的图像搜索是开放式研究问题

全局颜色直方图可能令人失望(例如,美国和法国的旗帜呈现相似的全局颜色直方图 - 但它们非常不同)。局部颜色直方图可以为该标志示例产生更好的结果。

您可以在加州大学圣地亚哥分校Nuno Vasconcelos' work查看。

答案 2 :(得分:1)

Google图片搜索使用各种技术来返回您看到的结果,但(令人失望的)最大的一种是其他网页中的上下文。就像常规的谷歌搜索结果一样,图像附近的文字有助于确定图像中的内容。

有些图片会使用谷歌的协作标签游戏等工具进行标记,但除此之外全部都是上下文。

这可能无法帮助你实现目标,但不幸的是,目前还没有能够可靠地告诉白马的白色小猫的代码。面部识别是另一回事,但这不是你所要求的。

答案 3 :(得分:0)

我认为谷歌图片是基于关联文字搜索。大多数对图像内容进行识别的尝试都有可能在今天很难准确地使用。如果您真的有兴趣开发这样的算法,首先要针对一个简单的问题,其中可能的对象的数量和照片的性质在一定程度上受到控制。你想看看:

Computer Vision:如何从数字图像中检索有用信息,第一手原始信息,如颜色分布,边缘,圆圈等。

Object recognition:如何检测物体。

Machine learning:让您的应用程序自我改进。

ImageJ,一个计算机视觉开源应用程序可能是一个很好的起点。

答案 4 :(得分:0)

与其他建议一起,您可能需要查看facial recognition

此类技术的商业示例是Apple's iPhoto