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

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

使用原生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]  # 返回标量值
相关推荐
java资料站5 小时前
十一、Spring AI Alibaba · 高级 · 多智能体(Multi-agent)
人工智能·spring·microsoft
2601_955662465 小时前
情感解说视频如何提升感染力?配音细节很关键
人工智能·音视频·语音识别·视频
苏醒的人生5 小时前
电商品牌物料AI生图工具推荐:让品牌调性一套到底
人工智能
lank_M5 小时前
截图OCR预处理在普通屏上翻车,Retina截图却没事
图像处理·人工智能·计算机视觉·ocr
Aloudata5 小时前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
龙亘川5 小时前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化
通信大模型5 小时前
IEEE TCCN | 面向低空经济网络的Agentic AI驱动多无人机轨迹优化
网络·人工智能·无人机
爱编程的小白L6 小时前
2027 计算机毕业设计选题汇总|深度学习专项(2027最新)
人工智能·深度学习·课程设计