分享好友 最新动态首页 最新动态分类 切换频道
OpenCV实现图像搜索引擎(Image Search Engine)
2024-12-29 05:57

欢迎参观我的博客:HuHaoyu’s Blog。

OpenCV实现图像搜索引擎(Image Search Engine)

简单介绍一下OpenCV。

OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform. Adopted all around the world, OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 9 million. Usage ranges from interactive art, to mines inspection, stitching maps on the web or through advanced robotics.

OpenCV(Open Source Computer Vision Library)的计算效率很高且能够完成实时任务。OpenCV库由优化的C/C++代码编写而成,能够充分发挥多核处理和硬件加速的优势。OpenCV有大量技术社区和超过900万的下载量,它的使用范围极为广泛,如人机互动、资源检查、拼接地图等。

之前看到谷歌和百度出了图像搜索引擎,查阅了相关资料深入了解了图像搜索引擎的算法原理。一部分参考了用Python和OpenCV创建一个图片搜索引擎的完整指南。决定自己实现一个简单的图像搜索引擎,也可以让自己更快地查找mac中的图片。为什么使用OpenCV+Python实现图像搜索引擎呢?

  • 首先,OpenCV是一个开源的计算机视觉处理库,在计算机视觉图像处理模式识别中有广泛的应用。接口安全易用,而且跨平台做的相当不错,是一个不可多得的计算机图像及视觉处理库。

  • 其次,Python的语法更加易用,贴近自然语言,极为灵活。虽然计算效率并不高,但快速开发上它远胜于C++或其他语言,引入pysco能够优化python代码中的循环,一定程度上缩小与C/C++在计算上的差距。而且图像处理中需要大量的矩阵计算,引入numpy做矩阵运算能够降低编程的冗杂度,更多地把精力放在匹配的逻辑上,而非计算的细枝末节。

图像搜索算法基本可以分为如下步骤:

  • 提取图像特征。如采用SIFT、指纹算法函数、哈希函数、bundling features算法等。当然如知乎中所言,也可以针对特定的图像集群采用特定的模式设计算法,从而提高匹配的精度。如已知所有图像的中间部分在颜色空间或构图上有显著的区别,就可以加强对中间部分的分析,从而更加高效地提取图像特征。

  • 图像特征的存储。一般将图像特征量化为数据存放于索引表中,并存储在外部存储介质中,搜索图片时仅搜索索引表中的图像特征,按匹配程度从高到低查找类似图像。对于图像尺寸分辩率不同的情况可以采用降低采样或归一化方法

  • 相似度匹配。如存储的是特征向量,则比较特征向量之间的加权后的平方距离。如存储的是散列码,则比较Hamming距离。初筛后,还可以进一步筛选最佳图像集。

基本步骤

  • 采用颜色空间特征提取器和构图空间特征提取器提取图像特征
  • 图像索引表构建驱动程序生成待搜索图像库的图像特征索引表
  • 图像搜索引擎驱动程序执行搜索命令,生成原图图像特征并传入图片搜索匹配器。
  • 图片搜索匹配内核执行搜索匹配任务。返回前个最佳匹配图像。

所需模块

  • numpy。科学计算和矩阵运算利器。
  • cv2。OpenCV的python模块接入。
  • re。正则化模块。解析csv中的图像构图特征和色彩特征集。
  • csv。高效地读入csv文件。
  • glob。正则获取文件夹中文件路径。
  • argparse。设置命令行参数。

封装类及驱动程序

  • 颜色空间特征提取器ColorDescriptor。

    1. 类成员。记录HSV色彩空间生成的色相、饱和度及明度分布直方图的最佳bins分配。bins分配过多则可能导致程序效率低下,匹配难度和匹配要求过分苛严;bins分配过少则会导致匹配精度不足,不能表证图像特征。
    2. 成员函数。生成图像的色彩特征分布直方图。为待处理图像,为图像处理区域的掩模,判断是否为图像中心,从而有效地对色彩特征向量做加权处理。权重取。采用OpenCV的方法获得直方图,方法归一化。
    3. 成员函数。将图像从BGR色彩空间转为HSV色彩空间(此处应注意OpenCV读入图像的色彩空间为BGR而非RGB)。生成左上、右上、左下、右下、中心部分的掩模。中心部分掩模的形状为椭圆形。这样能够有效区分中心部分和边缘部分,从而在方法中对不同部位的色彩特征做加权处理
  • 构图空间特征提取器StructureDescriptor。

    1. 类成员。将所有图片归一化(降低采样)为所规定的尺寸。由此才能够用于统一的匹配和构图空间特征的生成。
    2. 成员函数。将图像从BGR色彩空间转为HSV色彩空间(此处应注意OpenCV读入图像的色彩空间为BGR而非RGB)。返回HSV色彩空间的矩阵,等待在搜索引擎核心中的下一步处理。
最新文章
海南实现部省系统互通数据共享业务协同突破
原标题:海南实现部省系统互通数据共享业务协同突破来源:海南日报“发现某某号船舶配员不符合最低安全配员要求,请交通运输部门对该船加强关注。”12月6日9时许,海南海事局“海巡03”执法船上,该局执法人员将上述水上交通安全违法线索输
深圳研学-深圳企业参访-走进商汤科技参观
2009年12月02日赵建飞50企业研学/游学活动,教育文化活动组织策划、文化艺术交流活动策划、游学交流活动策划;企业管理咨询、信息咨询;会务服务、展览服务;企业管理咨询;企业形象策划;会务策划及培训策划;企业管理培训;美术培训;展
超全面!wordpress后台控制面板的各项功能介绍
wordpress安装完,接下来就是开始使用wordpress,一灯之前已经介绍了新手错误,入门基础,WP术语词汇和FTP的使用,我想是时候介绍下wordpress的后台控制面板了。如果想要熟练使用wordprewss建设外贸网站,首先要知道wordpress后台控制面板
微信聊天记录删了怎样才能恢复 教你几招轻松找回
无论是出于误操作还是其他原因,删除微信聊天记录后,发现这些记录对你来说非常重要,都会感到十分困扰。幸运的是,通过一些方法和技巧,你可能能够找回这些宝贵的聊天记录。本文将详细介绍几种恢复微信聊天记录的方法,帮助你轻松找回这些
用js代码禁止用户复制粘贴
要想实现这一功能,需要考虑三个方向来入手: 1.禁止用户选中文本并复制。 2.禁止鼠标右键复制粘贴。 3.禁止使用快捷键(如 Ctrl + C、Ctrl + V)复制粘贴。 需要注意的是,完全禁止用户复制内容是
白山快速熔断器170M7978 1250V/2500A作用+2025排名一览
白山快速熔断器170M7978 1250V/2500A作用+2025排名一览 1. 产品概述 - WSK - S-(TH)智能温湿度控制器是一种能够对环境温湿度进行精确监测和控制的设备。它结合了先进的传感器技术和智能控制算法,用于维持环境温湿度在设定的范围内。2. 功
高清美女写真一键生成,教你轻松玩转AI绘画工具!
步骤1:访问搜狐简单AI小程序在手机或电脑上搜索并打开搜狐简单AI小程序,创建你的免费账户(如果未注册的话)。步骤2:选择生成类型登录后,选择“美女写真”生成功能。在这里,你可以找更多模板和参考图。步骤3:输入提示语根据自己对想
绕不开!越高级别的机器人,散热占比越大!(思泉新材301489)机器人+AI人工
绕不开!越高级别的机器人,散热占比越大!(思泉新材301489)机器人+AI人工智能双重概念!散热核心小盘股,3字头几个20cm更暴利!AI手机、AI眼镜、AI玩具、电脑、AI服务器,对散热需求暴增,更别说人形机器人了!现在只要跟AI相关和机器人
恐怖躲猫猫二破解版最新版:恐怖躲猫猫二破解版最新版解密指南
恐怖躲猫猫二破解版最新版:恐怖躲猫猫二破解版最新版解密指南恐怖躲猫猫二是一款备受玩家喜爱的恐怖求生游戏,其中的谜团和机关设计让许多玩家犯难。如果您正在寻找恐怖躲猫猫二破解版最新版的解密指南,那么您来对地方了。本文将为您揭秘
智能游戏体验的新篇章
随着科技的发展,人工智能在各个领域的应用越来越广泛,特别是游戏行业,它作为人们休闲娱乐的重要组成部分,也逐渐引入了智能机器人的技术,阿里巴巴旗下的阿里云与国内知名游戏网站4399联合推出了一款名为“智能机器人助手”的新型产品,
相关文章
推荐文章
发表评论
0评