从数据库中查找视觉相似照片的算法?

2024-01-10

TinEye、Google 和其他公司提供“反向图像搜索”——您可以上传照片,几秒钟内它就会找到类似的照片。

这些算法有开源版本吗?


我知道“SIFT”和其他用于查找“视觉上相似”照片的算法,但它们仅适用于将一张照片直接与另一张照片进行比较。即,找到与给定照片相似的照片是O(n)操作,找到所有视觉上相似的照片将是O(n^2)——两者都慢得令人望而却步。

我需要一个可由[关系]数据库索引的特征描述符,以将结果集减少为更易于管理的内容。

我所说的“视觉上相似”是指very相似的。即,在 Photoshop 中经过轻微修饰/重新着色、稍微裁剪或调整大小的照片、快速连续拍摄同一场景的照片,或者翻转或旋转的图像。


您可以考虑的一个有效方法是词袋模型 http://en.wikipedia.org/wiki/Bag-of-words_model_in_computer_vision.

基本上你可以对目标图像进行离线计算。您可以从这些图像中提取大量特征,以便使用以下算法创建密码本k-均值聚类 http://en.wikipedia.org/wiki/K-means_clustering。搜索最近的图像将导致像这样的算法的应用最近邻搜索 http://en.wikipedia.org/wiki/Nearest_neighbor_search在密码本的空间中。

对于邻居搜索,您可以使用 FLANN

  • http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN
  • http://opencv.willowgarage.com/documentation/cpp/flann_fast_approximate_nearest_neighbor_search.html http://opencv.willowgarage.com/documentation/cpp/flann_fast_approximate_nearest_neighbor_search.html

另请查看:视觉相似度搜索算法 https://stackoverflow.com/questions/987830/visual-similarity-search-algorithm?rq=1

这只是一种可能性,而且必须说实话,这个话题确实具有挑战性,相关文献也非常多。

只是一些参考:

  • http://www.cs.nott.ac.uk/~qiu/webpages/Papers/颜色模式识别.pdf http://www.cs.nott.ac.uk/~qiu/webpages/Papers/ColorPatternRecognition.pdf
  • http://cs.brown.edu/~th/papers/Hofmann-UAI99.pdf http://cs.brown.edu/~th/papers/Hofmann-UAI99.pdf
  • http://www.ifp.illinois.edu/~jyang29/ScSPM.htm http://www.ifp.illinois.edu/~jyang29/ScSPM.htm
  • http://johnwinn.org/Publications/papers/Savarese_Winn_Criminisi_Correlatons_CVPR2006.pdf http://johnwinn.org/Publications/papers/Savarese_Winn_Criminisi_Correlatons_CVPR2006.pdf
  • http://www-cvr.ai.uiuc.edu/ponce_grp/publication/paper/cvpr06b.pdf http://www-cvr.ai.uiuc.edu/ponce_grp/publication/paper/cvpr06b.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据库中查找视觉相似照片的算法? 的相关文章

  • 限制 sqlite 表的最大行数

    我希望实现一种 活动日志 表 其中用户执行的操作存储在 sqlite 表中 然后呈现给用户 以便他们可以看到他们所做的最新活动 然而 自然地 我觉得没有必要保留每一个历史记录 所以我想知道是否有一种方法可以配置表以在达到最大设置限制后开始修
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 定点数学比浮点运算快吗?

    多年前 即 20 世纪 90 年代初期 我构建了图形软件包 该软件包基于定点算术和预先计算的 cos sin 表格以及使用牛顿近似方法进行 sqrt 和对数近似的缩放方程来优化计算 这些先进技术似乎已经成为图形和内置数学处理器的一部分 大约
  • GrabCut - bgdModel 和 fgdModel 为空 - 断言错误

    我正在尝试使用 OpenCV2 1 C 中的 GrabCut 算法进行图像分割 这是我的代码 Mat rgbWorkImage imread argv 1 Mat mask mask Scalar 0 Mat bgdModel fgdMod
  • 通过 JDBC 将“daterange”字段值插入 PostgreSQL 表

    我在 PostgreSQL 9 3 有一个表日期范围 http www postgresql org docs 9 3 static rangetypes html字段类型 我可以像使用 JDBC 的字符串一样选择此字段 但无法将其插入表中
  • 使用 PIL 用附近的颜色填充空白图像空间(也称为修复)

    我用 PIL 创建一个图像 我需要填充空白区域 显示为黑色 我可以轻松地用静态颜色填充它 但我想做的是用附近的颜色填充像素 例如 边框之后的第一个像素可能是填充像素的高斯模糊 或者可能是中描述的推拉型算法Lumigraph Gortler
  • 如何在 PostgreSQL 中将数据库从一台服务器移动到另一台服务器?

    我正在尝试将数据库从旧服务器移动到新服务器 任何帮助 将不胜感激 Just pipe http www postgresql org docs current interactive migration html从旧服务器转储到新服务器 p
  • Sequelize.js - “不关联到”

    我在从数据库获取完整数据时遇到一些问题 那是我的模型 User module exports function sequelize DataTypes return sequelize define user id type DataTyp
  • Scrapy - 持续从数据库中获取要爬取的url

    我想不断地从数据库中获取要爬行的网址 到目前为止 我成功地从基地获取了 url 但我希望我的蜘蛛继续从该基地读取 因为该表将由另一个线程填充 我有一个管道 一旦爬行 工作 就会从表中删除 url 换句话说 我想使用我的数据库作为队列 我尝试
  • 当给定块大小时反转单链表

    有一个单连接链表 并给出了块大小 例如 如果我的链表是1 gt 2 gt 3 gt 4 gt 5 gt 6 gt 7 gt 8 NULL我的块大小是4然后反转第一个4元素 然后是第二个 4 个元素 问题的输出应该是4 gt 3 gt 2 g
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • 如何在C中实现带连分数的自然对数?

    这里我有一个小问题 根据这个公式创建一些东西 这就是我所拥有的 但它不起作用 弗兰基 我真的不明白它应该如何工作 我尝试用一 些错误的指令对其进行编码 N 是迭代次数和分数部分 我认为它会以某种方式导致递归 但不知道如何 谢谢你的帮助 do
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • 如何使用Android opencv使图像的白色部分透明

    我无法链接超过 2 个网址 因此我将我的照片发布到此博客 请在这里查看我的问题 http blog naver com mail1001 220650041897 http blog naver com mail1001 220650041
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们
  • 如何在列上创建外键,该列的每条记录都可能引用多个表之一中的列?

    我正在创建一个社交网络 它有新闻 照片等多个实体 可以有评论 由于所有评论都具有相同的列并且行为方式相同 唯一的区别是它们的类型 新闻 照片或将来添加的其他内容 我决定为所有评论创建一个表 其中的列名为type 它工作得很好 直到我决定将外
  • 为什么这个算法的Big-O复杂度是O(n^2)?

    我知道这个算法的大O复杂度是O n 2 但我不明白为什么 int sum 0 int i 1 j n n while i lt j sum 即使我们设定了j n n一开始 我们在每次迭代期间递增 i 并递减 j 因此最终的迭代次数不应该比n
  • 如何光栅化旋转矩形(通过 setpixel 在 2d 中)

    我有四个 2d 顶点 A B C D 的旋转矩形 我需要在像素缓冲区中 有效地 光栅化 绘制它 使用 setpixel x y 颜色 怎么做 我正在尝试使用一些代码 例如 convertilg a b c d do up down left
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • Android 相机未保存在特定文件夹 [MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA]

    当我在 Intent 中使用 MediaStore INTENT ACTION STILL IMAGE CAMERA 时遇到问题 相机正常启动 但它不会将文件保存在我的特定文件夹 photo 中 但是当我使用 MediaStore ACTI

随机推荐