原文链接

One Ring to rule them all, One ring to find them; One ring to bring them all
and in the darkness bind them.

我们即将建造的图像搜索引擎将会非常棒,它可能已经摧毁了The One Ring本身,而没有Mt.的火焰的帮助。厄运。好吧,在过去的一周里,我显然一直在观看很多“霍比特人”和“指环王”。
我心想,你知道什么会很棒吗?使用电影中的屏幕截图构建简单的图像搜索引擎。而这正是我所做的。

这是一个简单概述:

  • 我们要做的是:使用The Hobbit和Lord of the Rings截图,从头到尾构建一个图像搜索引擎。
  • 您将要学的是:构建图像搜索引擎所需的4个步骤,包括代码示例。从这些示例中,您将能够构建自己的图像搜索引擎。
  • 你需要的是:Python,NumPy和OpenCV。对像素和直方图等基本图像概念的一点了解会有所帮助,但绝对不是必需的。这篇博文旨在成为构建图像搜索引擎的操作指南。

步入正题

我以前从未见过关于构建简单图像搜索引擎的“操作方法”指南。但这正是这篇文章的内容。我们将使用(可以说)最基本的图像描述符之一来量化和描述这些屏幕截图 - 颜色直方图。

我在之前的文章中讨论了颜色直方图,这是计算机视觉和图像搜索引擎使用颜色直方图的指南。如果您还没有阅读,请不要担心,但我建议您在查看此博客文章后再回过头来阅读它以进一步了解颜色直方图。

但在我深入了解构建图像搜索引擎的细节之前,让我们看看我们的霍比特人和指环王截图的数据集:

Figure 1: Our dataset of The Hobbit and Lord of the Rings screenshots. We have 25 total images of 5 different categories including Dol Guldur, the Goblin Town, Mordor/The Black Gate, Rivendell, and The Shire.

如您所见,我们的数据集中共有25个不同的图像,每个类别有5个。我们的类别包括:

  • Dol Guldur:“亡灵巫师的地下城”,索伦在幽暗密林中的据点。
  • Goblin Town:迷雾山脉中的兽人小镇,The Goblin King的故乡。
  • Mordor/The Black Gate:索伦的堡垒,周围环绕着山脉和火山平原。
  • Rivendell:中土世界的精灵前哨。
  • The Shire:霍比特人的家园。

Dol Guldur,Goblin Town和Rivendell的照片来自The Hobbit:A Unexpected Journey。我们的夏尔图像来自指环王:戒指的团契。最后,我们的Mordor / Black Gate截图来自指环王:王者归来。

目标:

我们要做的第一件事是索引数据集中的25个图像。索引是通过使用图像描述符从每个图像中提取特征并存储结果特征以供以后使用(例如执行搜索)来量化我们的数据集的过程。

图像描述符定义了我们如何量化图像,因此从图像中提取特征称为描述图像。图像描述符的输出是特征向量,是图像本身的抽象。简而言之,它是用于表示图像的数字列表。

可以使用距离度量来比较两个特征向量。距离度量用于通过检查两个特征向量之间的距离来确定两个图像的“相似”程度。在图像搜索引擎的情况下,我们为脚本提供一个查询图像,并要求它根据它们与查询的相关性对我们索引中的图像进行排名。

这样想吧。当您访问Google并在搜索框中输入“指环王”时,您希望Google向您返回与Tolkien的图书和电影特许经营相关的网页。类似地,如果我们提供带有查询图像的图像搜索引擎,我们希望它返回与图像内容相关的图像 - 因此,我们有时将图像搜索引擎称为学术界中更常见的基于内容的图像搜索引擎图像检索(CBIR)系统。

那么我们的指环王图像搜索引擎的总体目标是什么?

给定来自五个不同类别之一的查询图像的目标是在前10个结果中返回类别的相应图像。 --口头上这么说。让我们用一个例子来说明一点。

如果我将The Shire的查询图像提交给我们的系统,我希望它能够在我们的数据集中返回前10个结果中的所有5个Shire图像。再次,如果我提交了Rivendell的查询图像,我希望我们的系统能够在前10个结果中给我所有5个Rivendell图像。

明白了吗?好。我们来谈谈构建图像搜索引擎的四个步骤。

构建图像搜索引擎的4个步骤

在最基本的层面上,构建图像搜索引擎有四个步骤:

pyimagesearch-5 霍比特人和直方图 - 使用Python构建您的第一个图像搜索引擎的操作指南相关推荐

  1. 独家 | 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)

    翻译:吴金笛 校对:郑滋 本文约4600字,建议阅读12分钟. 本文明确了多标签图像分类的概念,并讲解了如何构建多标签图像分类模型. 介绍 你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情 ...

  2. python如何训练模型生产_手把手教你用Python构建你的第一个多标签图像分类模型(附案例)...

    你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情: 对象检测 图像分割 图像翻译 对象跟踪(实时),还有更多-- 这让我思考--如果一个图像中有多个对象类别,我们该怎么办?制作一个图像分类 ...

  3. 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)

    原文链接: https://www.analyticsvidhya.com/blog/2019/04/build-first-multi-label-image-classification-mode ...

  4. python图片分类技术介绍_手把手教你用Python构建你的第一个多标签图像分类模型(附案例)!...

    介绍 你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情:对象检测 图像分割 图像翻译 对象跟踪(实时),还有更多-- 这让我思考--如果一个图像中有多个对象类别,我们该怎么办?制作一个图像 ...

  5. python图像分类_手把手教你用Python构建你的第一个多标签图像分类模型(附案例)...

    介绍 你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情:对象检测 图像分割 图像翻译 对象跟踪(实时),还有更多-- 这让我思考--如果一个图像中有多个对象类别,我们该怎么办?制作一个图像 ...

  6. python 机器人聊天_使用python构建您的第一个聊天机器人并将其集成到电报中

    python 机器人聊天 Did you know? 你知道吗? "Chatbots can cut operational costs by up to 30%. eCommerce ch ...

  7. 霍比特E姐有约|Exploit Network 如何打造 Web3.0 匿名支付协议

    4月20日,第19期「霍比特E姐有约」,进行了主题为「Exploit Network 如何打造Web3.0匿名支付协议」的线上AMA,本期AMA由霍比特HBTC全球商务VP Elsa Qiu主持,邀请 ...

  8. python用numpy和pil处理图像成灰度图_「火炉炼AI」机器学习047-图像的直方图均衡化操作...

    [火炉炼AI]机器学习047-图像的直方图均衡化操作 [火炉炼AI]机器学习047-图像的直方图均衡化操作 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, sc ...

  9. python 灰度直方图_数字图像处理灰度变换之灰度直方图及python实现

    图像灰度直方图 灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率.直方图显示图像数据时会以左暗右亮的分布曲线形式呈现出来.横坐标是灰度级,纵坐标是该灰度级出现的频率.图 ...

  10. 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)

    使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones) 1. 效果图 2. 原理 3. 源码 参考 这篇博客将介绍如何只使用基本的图 ...

最新文章

  1. 自己写一个树形导航菜单
  2. flex页面布局练习--知乎
  3. git 在ssh情况下提交代码
  4. 解决: /bin/sh: 1: java: not found
  5. (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
  6. vue 打包html静态页面,vue项目打包、vue项目打包后空白界面解决办法
  7. DHCP中继原理与配置
  8. windows时间服务器搭建
  9. django项目介绍
  10. iOS 一行代码集成微信浮窗功能
  11. php 新浪微博登陆,PHP使用新浪微博登入第三方网站实例代码
  12. 输入文本的html,输入文本的步骤主要包括
  13. ubuntu上打开markdown文件
  14. 怎么查看当前登录的svn账号_svn 用户名,密码 查看/删除方法
  15. Proteus8.12 基于51单片机的家用供暖系统
  16. #最详细# 常见服务器错误
  17. 参加前端培训班哪个好
  18. linux中wps默认安装目录,在Linux中安装和使用wps
  19. 2021-07-17 吾日三省吾身
  20. 模拟山羊mmo服务器的位置,模拟山羊mmo老山羊在哪 老羊山位置一览

热门文章

  1. 便携版的FeedDemon
  2. 机器学习之CART树
  3. 如何修改网卡的MAC地址?
  4. 山丽防水墙客户端的卸载
  5. 雷锋科普:联发科MT6577,国产平民双核手机的芯
  6. 计算机网络图标不见了,电脑网络图标不见了怎么恢复
  7. Ubuntu 16下Linaro 交叉编译器的安装
  8. Dev-C++下的char字符数组strlen()诡异事件
  9. centos yum 第三方仓库 scl 应用
  10. 【科普】波特率和比特速率的理解