SSIM学习
SSIM原文链接:https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Structural-Similarity.pdf
SSIM用途
SSIM是结构相似性度量(Structural Similarity Index),是一种衡量两个图像相似性的指标。在深度学习中,SSIM常被用来评估生成模型(如GAN)生成的图像与真实图像之间的相似程度。
SSIM通过比较图像的亮度、对比度和结构等方面的相似性,计算出两幅图像之间的相似性分数。它基于人眼对图像的感知,能够更好地反映图像质量,与传统的误差测量方法(如均方误差)相比,更具有鲁棒性和准确性。
我们通过肉眼,可以观察到在相同MSE,不同SSIM下图片的区别:

SSIM计算公式
SSIM在计算的时候主要由图片的3个关键特征决定,分别是:亮度(Luminance),对比度(Contrast),结构 (Structure)。
1. 亮度
亮度以单个像素的灰度值进行描述,用x表示predict图片某个通道中某个像素的灰度值,y表示label图片对应通道中对应像素的灰度值,我们通过求取x,y的样本均值来得到对应亮度的项:

我们能够发现μx=μy\mu_x=\mu_yμx=μy的时候,l=1l=1l=1,引入C1是为了防止均值为0的情况。
2. 对比度
对比度以像素距离均值的偏移程度来进行描述,你可以想到如果一张图对比度越大,那它距离灰度的均值远的像素点就越多。我们通过求取样本标准差来得到对应对比度的项:

3. 结构
结构以像素的线性相关性来进行描述。我们通过求取协方差来得到对应结构的项:

4. SSIM最终公式
SSIM的最终计算公式为:
SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γSSIM(x, y) = [l(x, y)]^α [c(x, y)]^β [s(x, y)]^γSSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ
其中,x和y分别表示待比较的两幅图像,l(x,y)、c(x,y)、s(x,y)分别为亮度相似度、对比度相似度和结构相似度,α、β、γ为加权系数,一般取1。
我们将上面计算的l,c,sl, c, sl,c,s带入公式得到如下:

在实际应用中,由于像素总是正值,例如真彩色RGB 24bit,SSIM的值通常在0到1之间,越接近1表示两幅图像越相似。
相关文章:
SSIM学习
SSIM原文链接:https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Struct…...
selenium自动化测试用例需要关注的几点
自动化测试设计简介注:参看文章地址 我们在本章提供的信息,对自动化测试领域的新人和经验丰富的老手都是有用的。本篇中描述最常见的自动化测试类型, 还描述了可以增强您的自动化测试套件可维护性和扩展性的“设计模式”。还没有使用这些技术…...
harfbuzz 的用法
hb-blob: HarfBuzz Manual harfbuzz 的用法 HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字…...
JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc
一、源码特点 JSP 在线学习管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…...
Python学习笔记——PIL库(Pillow库)总结
一、图像数据的格式 ①jpg 支持高级别的压缩,利用部分损耗,使图片变小,方便网络传播。 ②png 无损压缩格式,比jpg略大,较好的保存图片画质,支持透明效果。 ③gif 动图效果,多帧图像组合到…...
C. Build Permutation【整数理论、构造、思维】
链接 理论基础 结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。 构造⌈n⌉2构造\lceil \sqrt{n}\rceil^2构造⌈…...
关于ETL的两种架构(ETL架构和ELT架构)
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象…...
android系统目录
环境:android studio引入android系统源码android和ubuntu策略路由的差异android源码编译问题(单编)repo(android源码)命令使用和注意事项wifi:wifi的加密类型梳理android11 wifisetting 流程跟踪android wifi热点settingandroid n…...
【C/C++】中【typedef】用法大全
总结一下typedef用法,一共七种,分别是:为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。 目录 一、为基本数据类型起别名 二、为结构体起别名 三、为指针类型起别名 四…...
超实用的公众号运营攻略分享,纯干货
很多小伙伴抱怨,公众号运营真的越来越难做了! 每天会因为少得可怜的阅读量发愁,每天会因为纠结写什么选题发愁,每天更会因为公众号没有什么起色而感到无力。 现阶段公众号运营趋于饱和状态,公众号创建门槛低…...
编写NodeJs脚本实现接口请求
要编写运行脚本,需要先搭建开发环境 环境搭建 nodeJs脚本运行,当然需要先安装nodejs环境 官方地址在这里: nodejs官网 打开官网地址,可以看到下面一句话: Node.js is an open-source, cross-platform JavaScript runtime environment. 在打开的页面,可以直接下载最新的…...
【无人机】回波状态网络(ESN)在固定翼无人机非线性控制中的应用(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
YAML 文件简介
简介 我们在安装 kubernetes 集群的时候使用了一些 YAML 文件来创建相关的资源,但是对 YAML 文件还是非常陌生。所以我们先来简单看一看 YAML 文件是如何工作的,并使用 YAML 文件来定义一个 kubernetes pod,然后再来定义一个 kubernetes dep…...
Python四大主题之一【 Web】 编程框架
目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django、Tornado、Flask、Twisted。 …...
【C++】哈希表
1. unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 ,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行…...
深度学习入门(六十七)循环神经网络——注意力机制
深度学习入门(六十七)循环神经网络——注意力机制前言循环神经网络——注意力机制课件心理学注意力机制注意力机制是显式地考虑随意线索非参注意力池化层Nadaraya-Watson 核回归:总结教材(注意力提示)1 生物学中的注意…...
阿里云云通信风控系统的架构与实践
作者:铭杰 阿里云云通信创立于 2017 年,历经 5 年发展已经孵化出智能消息、智能语音、隐私号、号码百科等多个热门产品。目前,已成为了国内云通信市场的领头羊,在国际市场上服务范围也覆盖了 200 多个国家。随着业务的不断壮大&am…...
【性能测试】loadrunner(一)知识准备
【性能测试】loadrunner(一)知识准备 目录:导读 1.0. 前言 1.1 性能测试术语介绍 1.2 性能测试分类 1.3 HTTP我们需要知道的 1.4 Loadrunner 12.55安装 1.0. 前言 在性能测试中,牵扯到了许多比较杂的知识点,…...
【Vue3源码】第五章 ref的原理 实现ref
【Vue3源码】第五章 ref的原理 实现ref 上一章节我们实现了reactive 和 readonly 嵌套对象转换功能,以及shallowReadonly 和isProxy几个简单的API。 这一章我们开始实现 ref 及其它配套的isRef、unRef 和 proxyRefs 1、实现ref 接受一个内部值,返回一…...
[Flink]部署模式(看pdf上的放上面)
运行一个wordcountval dataStream: DataStream[String] environment.socketTextStream("hadoop1", 7777) //流式数据不能进行groupBy,流式数据要来一条处理一次.0表示第一个元素,1表示第二个元素 //keyBy(0)根据第一个元素进行分组 val out: DataStream[(String, In…...
模拟调音台数字化改造:基于STM32与MOTU音频接口的智能控制方案
1. 项目概述:为老旧模拟调音台注入数字灵魂在不少社区广播电台、校园电台或是小型制作室里,你依然能看到那些服役了十几年甚至几十年的模拟调音台。它们皮实耐用,推子手感扎实,旋钮的阻尼感让人安心,但面对如今以数字文…...
OpenPLC虚拟PLC:5分钟搭建开源工业控制器的完整指南
OpenPLC虚拟PLC:5分钟搭建开源工业控制器的完整指南 【免费下载链接】OpenPLC Software for the OpenPLC - an open source industrial controller 项目地址: https://gitcode.com/gh_mirrors/op/OpenPLC 想要零成本学习工业自动化?OpenPLC虚拟PL…...
从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录
从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录 第一次双击Godot图标时,我正坐在堆满Unity参考书的办公桌前。作为用过五年Unity、三年Unreal的"引擎老油条",我带着审视新玩具的心态点开了这个不到100MB的绿色软件——没想…...
学习课程学习报告
本周主要学习了深度学习的基础理论,包括深度学习的数学本质、激活函数、前向传播与反向传播的原理。重点理解了非线性激活函数对模型表达能力的作用,掌握了前向传播的矩阵表示,并推导了反向传播的梯度计算过程,为后续神经网络训练…...
VTube Studio插件开发终极教程:构建你的第一个互动工具
VTube Studio插件开发终极教程:构建你的第一个互动工具 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio VTube Studio是一款功能强大的虚拟主播软件,提供了丰富的API接…...
机器学习势函数预测体弹性模量:FCC与HCP结构基准测试与选型指南
1. 项目概述:为什么我们需要关注机器学习势函数对体弹性模量的预测?在材料研发的第一线,无论是设计下一代航空发动机的高温合金,还是开发用于固态电池的新型固态电解质,一个绕不开的核心力学参数就是体弹性模量。你可以…...
保姆级教程:用UE5 Niagara系统10分钟搞定一个逼真的烟雾特效(附材质与帧动画设置)
10分钟用UE5 Niagara打造电影级烟雾特效:从零到实战的极简指南在游戏开发与影视动画领域,烟雾特效一直是营造沉浸感的关键元素。传统粒子系统需要复杂参数调节,而UE5的Niagara系统通过模块化设计,让初学者也能快速实现专业级效果。…...
避坑指南:在openEuler 22.03上配置vsftpd虚拟用户,解决gdbm数据库和SELinux权限问题
openEuler 22.03虚拟用户FTP配置实战:从gdbm数据库到SELinux的完整解决方案当你在openEuler 22.03上尝试配置vsftpd虚拟用户时,是否遇到过这样的场景:按照CentOS教程一步步操作,却在PAM认证阶段卡壳,系统不断提示"…...
Appium Android自动化环境四段链路深度验证指南
1. 这不是装几个软件就能跑起来的事:为什么90%的人卡在环境搭建第一步 “PythonAndroidAppium App自动化测试环境搭建”——光看标题,很多人第一反应是:不就是装Python、配JDK、下Android SDK、跑个appium命令?我试过三次&#x…...
颜色矩阵滤镜ColorMatrixFilter 简单使用技巧
滤镜是对现有的图片颜色的一种处理方法。而矩阵则做为滤镜的一种很有效的控制数据表达方式。我们先看下颜色的RGB的效果图: 接着我们看下颜色矩阵的结构: ColorMatrixFilter为4行5列的二维矩阵,第一行表示红色,第二行表示绿色,第三行表示红色,第四行表示透明值。前四列表…...
