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

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

以图搜图系统概述

以图搜图(Content-Based Image Retrieval, CBIR)是一种根据图像内容进行搜索的技术,旨在从图像数据库中快速找到与给定图像相似的图片。该技术的核心任务包括图像特征提取和特征检索。

在构建以图搜图系统时,两个关键问题需要重点解决:图像特征的提取以及特征数据的检索引擎设计。特征提取的目标是将图像的视觉信息转化为可以量化描述的特征向量,而检索引擎则需要基于这些特征向量快速匹配相似图片。

图像特征表示

图像特征表示是以图搜图系统的基础,主要包括以下三种方法:

图像哈希(Image Hashing)

图像哈希是一种将图像转化为固定长度的二进制字符串的方法,通过对图像进行一系列变换处理后生成哈希值。常用的算法包括Average Hash、PHash等。其中,Average Hash算法通过以下步骤生成图像哈希值:

1. **图像缩减(Reduce size)**:将原图像压缩至固定大小(如8x8,共64个像素),忽略细节信息。

2. **图像灰度化(Reduce color)**:将彩色图像转换为64级灰度图像。

3. **图像均值化(Average the colors)**:对灰度图像进行均值计算,生成一维特征向量。

4. **二值化(Compute the bits)**:将均值向量转化为二进制形式,确定每个像素是否高于均值值,并生成64位二进制字符串。

5. **哈希值构建(Construct the hash)**:将二进制字符串转化为整数,得到图像的均值哈希值。

图像哈希具有简单高效的特点,可对抗一定程度的图像处理干扰(如压缩、噪声等),但其局限性在于对整体图像的破坏会导致哈希值发生较大变化。

传统特征

在计算机视觉领域,传统特征提取方法通过手工设计算法提取图像的局部特征。典型代表是SIFT算法,它通过特征点检测和描述生成一系列多维向量。这些特征点需要进行融合编码(如BOW、Fisher vector、VLAD等方法),将局部特征向量转化为全局特征向量,以表示图像的整体特性。

深度学习特征(CNN特征)

随着人工智能技术的发展,基于卷积神经网络(CNN)的特征提取逐渐成为主流。CNN通过多层非线性变换自动学习图像特征,能够捕捉图像中复杂的视觉信息。例如,CNN提出的VGG网络能够有效提取图像的空间特征,为图像分类和相似度计算提供强有力的支持。

搜索引擎

在以图搜图系统中,特征向量的检索是核心任务。推荐使用开源工具如Milvus进行高效的向量检索,支持快速的相似性搜索。其优势在于:

1. **快速检索**:基于向量索引结构,实现子向量匹配和ANN(Approximate Nearest Neighbor)搜索,提升检索效率。

2. **灵活扩展**:支持多种向量索引算法(如Annoy、LSH等),适用于不同规模的图像数据。

推荐阅读

如果需要深入了解以图搜图系统的实现细节,可以参考以下内容:

1. 《图像处理与内容基于的检索》

2. 《深度学习在图像检索中的应用》

3. 《Milvus开源项目文档》

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

你可能感兴趣的文章
Python到底能做什么?它的优点在哪?
查看>>
python利用pytorch库导出图像分割算子
查看>>
python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
查看>>
python利用excel分析过杀漏失
查看>>
python判断汉字数目
查看>>
python判断文件是空的,如果是空的,就删除
查看>>
python判断密码是否正确_python密码判断是否符合要求的方法
查看>>
python判断字符串包含中文_Python 判断字符串是否包含中文
查看>>
python删除第一行_Python 乱码指北:一行删掉根目录
查看>>
Python删除列表元素的三种方法
查看>>
python初步学习-python数据类型-集合(set)
查看>>
python列表生成字典_Python中将字典转换为列表的方法
查看>>
python列表对应元素合并为列表及判断一个列表是几维
查看>>
python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
查看>>
python列表前几个_python之列表
查看>>
python列表元组
查看>>
Python列表/元组/字典和集合使用
查看>>
python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
查看>>
python列表
查看>>
python列出当前目录、子目录和文件的脚本
查看>>