以图搜图系统概述

简介: 以图搜图系统概述

以图搜图系统概述

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

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

图像特征表示

介绍三种方式。

图像哈希

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

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

比如 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 整数,比如按照从左到右、从上到下的顺序。最后得到的就是图像的均值哈希值。

参考:http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html

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

AverageHash : 也叫 Different HashPHash : Perceptual HashMarrHildrethHash : Marr-Hildreth Operator Based HashRadialVarianceHash : Image hash based on Radon transformBlockMeanHash : Image hash based on block meanColorMomentHash : Image hash based on color moments

我们最常见可能就是 PHash

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

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

传统特征

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

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

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

BOWFisher vectorVLAD

CNN 特性

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

通过 CNN 提取出来的图像特征其实也是一个多维向量,比如使用 VGG16 模型提取特征可参考: https://keras.io/applications/#extract-features-with-vgg16

搜索引擎

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

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

目录
相关文章
|
8月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
以图搜图系统工程实践
以图搜图系统工程实践
77 0
|
11天前
|
搜索推荐 算法 关系型数据库
基于协同过滤算法实现海洋馆预约服务平台的设计与开发
基于协同过滤算法实现海洋馆预约服务平台的设计与开发
|
11天前
|
机器学习/深度学习 存储 PyTorch
基于Aidlux平台的智能版面分析
版面分析是将文档图像进行文档对象识别并判断各区域所属类别,如配图、表格、公式、分栏等,并对不同类型的区域进行切分、识别。后面的工作是实现包括组卷、以题搜题、文档电子化存储、结构化解析等功能。
|
10月前
|
小程序 图形学
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
|
8月前
|
SQL 数据可视化 数据挖掘
货拉拉云台系统架构设计(简称:BI(商业智能)可视化平台)
货拉拉云台是货拉拉内部自研BI(Business Intelligence(商业智能),简称:BI)可视化平台。 截至2022年12月,货拉拉业务范围已覆盖352座中国内地城市,月活司机达66万,月活用户达950万,随着公司业务不断扩张,对数据分析和数据价值转化的需求愈加明显,原先提供的数据分析平台在一定程度上已经无法满足业务的多样化需求,且无法直接与公司现有的权限管理系统、业务应用系统打通,更存在一定的数据权限管控和数据泄露风险,此时打造自研BI平台的迫切性越来越强,货拉拉云台便应运而生。
|
10月前
|
小程序 安全 图形学
课程设计项目——基于3D建模技术的车位在线销售平台(序言)
课程设计项目——基于3D建模技术的车位在线销售平台(序言)
|
SQL 存储 数据挖掘
ChatGPT 数据仓库实战:Kaggle 酒店入住数据分析与维度建模
ChatGPT 数据仓库实战:Kaggle 酒店入住数据分析与维度建模
|
算法 测试技术 BI
推荐引擎-如何进行场景上线|学习笔记
快速学习推荐引擎-如何进行场景上线
98 0
|
数据采集 数据可视化 前端开发
采集+图谱可视化|手把手教你采集明星人物关系并进行图谱展示
今天教大家获取采集(某度百科)的明星人物关系数据,并进行图谱可视化展示。
291 0
|
数据采集 数据挖掘
淘宝广告数据分析实战!(附代码和100W数据源)(上)
在广告展示数一定的条件下,点击率的高低就是决定一个广告能否被更多人看到的因素。本文主要针对“点击率”这一因素进行分析,与大家分享。
474 0
淘宝广告数据分析实战!(附代码和100W数据源)(上)