当前位置: 首页 > article >正文

图像/特征相似计算

Pixel-wise:

计算预测图像和目标图像的像素间损失。损失函数,如 MSE或L2损失、MAE或L1损失、交叉熵损失等,大部分都可以应用于在目标变量的每一对像素之间进行预测。

MSE:

 MSE 衡量的是两幅图像对应像素值差异的平方的平均值。

计算公式:

pytorch计算代码:

import torch.nn as nn
mse = nn.MSELoss()

优势和缺陷:

  • 优点
    • 计算简单直观,对特征之间的差异比较敏感,能够有效地衡量特征的整体差异程度。
    • 数学性质良好,容易求导,方便在基于梯度下降的训练过程中进行优化。
  • 缺点
    • 只关注特征值的差异,忽略了特征的结构信息。例如,即使两个特征在结构上相似,但数值上有较大差异,MSE 也会给出较大的值。
    • 对于特征的分布差异等信息利用不足,可能导致学生网络只是简单地拟合教师网络的特征值,而没有很好地学习到特征的内在结构。

SSIM(结构相似性指数)

计算公式:
SSIM是基于亮度、对比度和结构三个比较衡量的指标,其计算公式为:


 

缺陷和优势:

  • 对亮度、对比度和结构敏感,能够捕捉图像中细微的亮度、对比度和结构变化,对于某些应用场景更为准确;
  • 对灰度变化比较敏感,对灰度差异较大的图像评价可能不够准确。
  • 参数选择敏感,SSIM的计算中涉及到一些参数,选择不当可能导致评价结果不准确。
  • 容易受局部噪声影响;
    SSKM的输出值范围是[-1,1],但通常实际值范围是[0,1],值越大表示相似度越高;

MS-SSIM(多尺度结构相似性指数)


MS-SSIM是在SSIM的基础上,增加了多尺度比较,其计算方式为:

优势和缺陷:

  • 充分考虑了人眼在不同尺度上的感知特性,且对于某些类型的失真,如缩放或旋转,都能给出准确的评估。
  • 基于多层(图片按照一定规则,由大到小缩放)的SSIM损失函数,相当于考虑了分辨率;
     
  • 计算复杂度相对较高,且需要额外的参数来控制不同尺度的比较。
  • MS-SSIM容易导致亮度的改变和颜色的偏差,但它能保留高频信息(图像的边缘和细节)
  • 输出值范围是[0,1];

余弦相似度

  • 参考:计算两幅图像的相似度(PSNR、SSIM、MSE、余弦相似度、MD5、直方图、互信息、Hash)& 代码实现 与举例_图的相似度计算 cdcn-CSDN博客

把图片表示成一个向量,通过计算向量之间的余弦距离来表征两张图片的相似度。
余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。

余弦相似度可以更好地捕捉图像的结构信息,因为它关注的是向量之间的相对方向,而不是像素值的绝对差异。

  • 余弦相似度输入取值范围:任意实数。
  • 余弦相似度输出取值范围:[-1, 1]。
     
  • 优点
    • 重点关注特征向量的方向,对于特征的尺度变化相对不敏感。这使得它在教师网络和学生网络的特征可能存在不同尺度差异(例如,由于网络结构不同导致特征的幅值不同)的情况下,仍然能够较好地衡量其相似性。

    • 能够在一定程度上反映特征之间的方向一致性,有助于学生网络学习教师网络特征的主要方向信息。

  • 缺点
    • 没有考虑特征向量的幅值信息,可能会忽略特征在强度上的差异。例如,两个特征向量方向相同,但幅值差异很大,余弦相似度仍然会给出较高的值。

    • 对于复杂的特征结构(如具有多个不同方向的重要信息的特征),单纯的余弦相似度可能无法全面地衡量其相似性。


http://www.kler.cn/a/460567.html

相关文章:

  • Spring源码分析之事件机制——观察者模式(二)
  • 高频java面试题
  • 网络分析工具-tcpdump
  • DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解
  • 免登录游客卡密发放系统PHP网站源码
  • Spring Boot 中的 classpath详解
  • PostgreSQL数据库缓冲区管理模块
  • Binlog 深度解析:数据灾难下的绝地反击
  • 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  • [实用指南]如何将视频从iPhone传输到iPad
  • XGPT用户帮助手册
  • SQLiteDataBase数据库
  • Python 青铜宝剑十六维,破医疗数智化难关(下)
  • docker compose部署kafka集群
  • Linux -- 死锁、自旋锁
  • Oracle库锁表处理
  • 在Ubuntu下通过Docker部署MySQL服务器
  • 论文分享 | PromptFuzz:用于模糊测试驱动程序生成的提示模糊测试
  • 【Docker】:Docker容器技术
  • SAP B1 认证考试习题 - 解析版(六)
  • ChatGPT-4助力学术论文提升文章逻辑、优化句式与扩充内容等应用技巧解析。附提示词案例
  • 百度贴吧的ip属地什么意思?怎么看ip属地
  • 2024年前端工程师总结
  • 提示词工程教程(零):提示词工程教程简介
  • 【基于语义地图的机器人路径覆盖】Radiant Field-Informed Coverage Planning (RFICP)高斯扩散场轨迹规划算法详解
  • 详细了解Redis分布式存储的常见方案