博客
关于我
以图搜图系统概述及工程实践(上)
阅读量:460 次
发布时间:2019-03-06

本文共 1289 字,大约阅读时间需要 4 分钟。

以图搜图系统概述

以图搜图指的是根据图像内容搜索出相似内容的图像。

构建一个以图搜图系统需要解决两个最关键的问题:首先,提取图像特征;其次,特征数据搜索引擎,即特征数据构建成数据库并提供相似性搜索的功能。

图像特征表示

介绍三种方式。

图像哈希

图像通过一系列的变换和处理最终得到的一组哈希值称之为图像的哈希值,而中间的变换和处理过程则称之为哈希算法。

图像的哈希值是对这张图像的整体抽象表示。

比如 Average Hash 算法的计算过程:

1.Reduce size : 将原图压缩到 8 x 8 即 64 像素大小,忽略细节。

2.Reduce color : 灰度处理得到 64 级灰度图像。

3.Average the colors : 计算 64 级灰度均值。

4.Compute the bits : 二值化处理,将每个像素与上一步均值比较并分别记为 0 或者 1 。

5.Construct the hash : 根据上一步结果矩阵构成一个 64 bit 整数,比如按照从左到右、从上到下的顺序。最后得到的就是图像的均值哈希值。

参考:

图像哈希算法有很多种,包含但不限于:

  • AverageHash: 也叫 Different Hash

  • PHash: Perceptual

  • MarrHildrethHash: Marr-Hildreth Operator Based Hash

  • RadialVarianceHash: Image hash based on Radon transform

  • BlockMeanHash: Image hash based on block mean

  • ColorMomentHash : Image hash based on color moments

我们最常见可能就是 PHash。

图像哈希可以对抗一定程度的水印、压缩、噪声等影响,即通过对比图像哈希值的 Hamming distance (汉明距离)可以判断两幅图像的内容是否相似。

图像的哈希值是对这张图像的整体抽象表示,局限性也很明显,由于是对图像整体进行的处理,一旦我们对整体性进行了破坏,比如在原图加一个黑边就几乎无法判断相似性了。

传统特征

在计算机视觉领域早期,创造了很多经典的特征算法,比如 SIFT

如上图所示,通过 SIFT 算法提取出来的一系列的特征点。

一幅图像提取出来的特征点有多个,且每一个特征点都是一个多维的局部向量,为了进行相似性计算,通常需要先将这一系列特征点融合编码为一个全局特征,也就是局部特征向量融合编码为一个全局特征向量(用这个全局特征向量表示一幅图像),融合编码相关的算法包括但不限于:

  • BOW

  • Fisher vector

  • VLAD

CNN 特征

人工智能兴起之后,基于 CNN 卷积神经网络提取图像特征越来越主流。

搜索引擎

由于将图像转换为了特征向量,因此搜索引擎所要做的就是其实就是向量检索。

这里直接推荐 Milvus ( ),刚开源不久,可以很方便快捷的使用在工程项目上,具体的相关内容直接查阅官方文档即可。

推荐阅读

转载地址:http://drrfz.baihongyu.com/

你可能感兴趣的文章
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>