14、构建图像相似度引擎

构建图像相似度引擎

1. 图像数据处理与算法选择

1.1 图像数据表示

在处理图像数据时,我们已具备将其输入算法所需的条件。此前主要讨论了黑白图像的处理,而彩色图像的处理同样简单。每个像素可用三个特征表示,分别对应 RGB 值;若希望保留单一特征,也可使用三个 RGB 值的均值。

1.2 寻找相似图像

通常,MNIST 数字数据库用于分类任务,即根据手写数字找出其目标标签。这里我们采用不同方式,对于给定图像,尝试在数据集中找到与之最相似的图像,这是无监督任务,不使用标签信息。

我们先使用之前处理文本特征时介绍的余弦相似度算法。该算法为 X 矩阵的每一行计算单位向量,然后计算两两向量的点积,得到向量间的余弦夹角,以此衡量两幅图像的“接近”程度。以下是具体代码:

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# 假设 digits 是已加载的图像数据
X = digits.data
co_sim = cosine_similarity(X[0].reshape(1,-1), X)

cosf = pd.DataFrame(co_sim).T
cosf.columns = ['similarity']
cosf.sort_values('similarity', ascending=False)

运行上述代码后,第一行的相似度为 1,因为这是原始图像本身。下面按相似度排序展示其他图像。例如,查看图像编号 877: <

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值