深度学习——图像余弦相似度

计算机视觉是研究图像的学问,在图像的最终评价时,往往需要用到一些图像相似度的度量指标,因此,在本文中我们将详细地介绍原生和调用第三方库的计算图像余弦相似度的方法。

使用原生numpy实现

python 复制代码
import numpy as np

def image_cosine_similarity(img1, img2):
    """
    使用纯NumPy计算两张图像的余弦相似度
    """
    # 展平图像并转换为浮点数
    vec1 = img1.flatten()
    vec2 = img2.flatten()
    
    # 计算点积
    dot_product = np.dot(vec1, vec2)
    
    # 计算L2范数
    norm1 = np.linalg.norm(vec1)
    norm2 = np.linalg.norm(vec2)
    
    # 计算余弦相似度
    return dot_product / (norm1 * norm2)

使用sklearn实现

python 复制代码
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def image_cosine_similarity_sklearn(img1, img2):
    """
    使用 sklearn 计算两张图像的余弦相似度
    
    参数:
        img1, img2: 两张图像(2D 灰度或 3D 彩色 numpy 数组)
    
    返回:
        余弦相似度(范围 [-1, 1],但图像通常为 [0, 1])
    """
    # 展平图像并转换为 float
    vec1 = img1.flatten().reshape(1, -1).astype(float)
    vec2 = img2.flatten().reshape(1, -1).astype(float)
    
    # 计算余弦相似度
    similarity = cosine_similarity(vec1, vec2)
    return similarity[0][0]  # 返回标量值
相关推荐
agicall.com1 天前
信创电话助手自动录音功能说明
人工智能·语音识别·自动录音·座机录音·固话录音
初次攀爬者1 天前
RAG核心升级|多LLM模型动态切换方案
人工智能·后端·ai编程
bst@微胖子1 天前
HuggingFace项目实战之分类任务实战
pytorch·深度学习·分类
yunni81 天前
知识库 × AI写作:打通公文写作的“最后一公里”
大数据·人工智能
Baihai_IDP1 天前
Andrej Karpathy:2025 年 LLM 领域的六项范式转变
人工智能·面试·llm
踩着两条虫1 天前
VTJ.PRO「AI + 低代码」应用开发平台的后端模块系统
前端·人工智能·低代码
人工智能AI技术1 天前
开源模型落地指南:DeepSeek微调实战,在垂直场景打造差异化竞争力
人工智能
一个会的不多的人1 天前
人工智能基础篇:概念性名词浅谈(第二十二讲)
人工智能·制造·数字化转型
极新1 天前
新看点/818AI创始人冷煜:AI落地,决胜“最后100米” | 2025极新AIGC峰会演讲实录
大数据·人工智能
YukiMori231 天前
基于Paddle微调ERNIE的中文情感分析实战教程
深度学习·机器学习