Python(PyTorch)多语言图像感知质量指标算法

news2024/12/25 10:49:25

🎯要点

🎯算法实现:🖊PyTorch单尺度和多尺度质量指标算法 | 🖊C++单尺度质量指标算法 | 🖊Rust多尺度质量指标算法 | 🖊LabVIEW单尺度质量指标算法 | 🖊MATLAB单尺度质量指标算法 | 🖊PyTorch完整参考图像质量测量指标、和分布式图像特征质量测量指标 | 🖊多尺度质量模型应用:图像压缩,视频压缩、端到端优化图像压缩、神经图像压缩、GPU变速图像压缩

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python斯皮尔曼秩相关性

斯皮尔曼秩相关性是两个连续变量之间单调关系强度和方向的统计度量。因此,这些属性按其偏好排序或排列。它用符号“rho”(ρ)表示,可以取 -1 到 1 之间的值。rho 的正值表示两个变量之间存在正关系,而 rho 的负值表示负关系。rho 值为 0 表示两个变量之间没有关联。
ρ = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) \rho=1-\frac{6 \sum d_i^2}{n\left(n^2-1\right)} ρ=1n(n21)6di2

  • ρ = \rho= ρ=斯皮尔曼相关系数
  • 秩 = 变量值相对于数据集中其他值的位置或顺序
  • d i = d _i= di= 每个数据项的两个变量值的排名差异
  • n = 观察总数

创建秩涉及为数据集中的值分配数字顺序,其中最小值的秩为 1,第二小的值的秩为 2,依此类推。
 次序   X1   Y1  1 7 5 2 6 4 3 5 5 4 8 10 5 7 7 6 10 9 7 3 2 8 9 8 10 2 1 \begin{array}{|c|c|c|} \hline \text { 次序 } & \text { X1 } & \text { Y1 } \\ \hline 1 & 7 & 5 \\ \hline 2 & 6 & 4 \\ \hline 3 & 5 & 5 \\ \hline 4 & 8 & 10 \\ \hline 5 & 7 & 7 \\ \hline 6 & 10 & 9 \\ \hline 7 & 3 & 2 \\ \hline 8 & 9 & 8 \\ \hline 10 & 2 & 1 \\ \hline \end{array}  次序 1234567810 X1 7658710392 Y1 5451079281
X 1 X_1 X1 创建秩,

  1. 按升序对 X 1 X_1 X1 的值进行排序: 2 , 3 , 4 , 5 , 6 , 7 , 7 , 8 , 9 , 10 2,3,4,5,6,7,7,8,9,10 2,3,4,5,6,7,7,8,9,10
  2. 根据排序顺序分配秩:1、2、3、4、5、6.5、6.5、8、9、10。由于有两个并列值(6 和 7),因此分配它们的平均秩 (6.5)。

Y 1 Y_1 Y1 进行同样的处理,我们得到:
 次序   秩  X 1  秩  Y 1 1 6.5 4.5 2 5 3 3 3 4.5 4 8 10 5 6.5 7 6 10 9 7 2 2 9 9 1 10 1 8 \begin{array}{|c|c|c|} \hline \text { 次序 } & \text { 秩 } X_1 & \text { 秩 } Y_1 \\ \hline 1 & 6.5 & 4.5 \\ \hline 2 & 5 & 3 \\ \hline 3 & 3 & 4.5 \\ \hline 4 & 8 & 10 \\ \hline 5 & 6.5 & 7 \\ \hline 6 & 10 & 9 \\ \hline 7 & 2 & 2 \\ \hline 9 & 9 & 1 \\ \hline 10 & 1 & 8 \\ \hline \end{array}  次序 1234567910  X16.55386.510291  Y14.534.51079218

斯皮尔曼相关计算:

在斯皮尔曼的秩相关中,该过程涉及将原始数据转换为秩。这样做是为了评估两个变量之间的单调关系,而不依赖于数据点的具体数值。

让我们考虑在变量 X 1 X_1 X1 Y 1 Y_1 Y1 中获取 10 个不同的数据点。然后按照以下步骤操作:

  • 将值按从小到大的升序排列。
  • 根据每个值在排序顺序中的位置为每个值分配排名。最小值的等级为 1,第二小的值的等级为 2,依此类推。
  • 然后找出每项数据的两个变量值的排名差异的平方。

 次序  1 2 3 4 5 6 7 8 9 10 X 1 7 6 4 5 8 7 10 3 9 2 Y 1 5 4 5 6 10 7 9 2 8 1  秩  X 1 6.5 5 3 4 8 6.5 10 2 9 1  秩  Y 1 4.5 3 4.5 6 10 7 9 2 8 1 d 2 4 4 2.25 4 4 0.25 1 0 1 0 \begin{array}{|c|c|c|c|c|c|c|c|c|c|c|} \hline \text { 次序 } & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\ \hline X _1 & 7 & 6 & 4 & 5 & 8 & 7 & 10 & 3 & 9 & 2 \\ \hline Y _1 & 5 & 4 & 5 & 6 & 10 & 7 & 9 & 2 & 8 & 1 \\ \hline \text { 秩 } X_1 & 6.5 & 5 & 3 & 4 & 8 & 6.5 & 10 & 2 & 9 & 1 \\ \hline \text { 秩 } Y_1 & 4.5 & 3 & 4.5 & 6 & 10 & 7 & 9 & 2 & 8 & 1 \\ \hline d^2 & 4 & 4 & 2.25 & 4 & 4 & 0.25 & 1 & 0 & 1 & 0 \\ \hline \end{array}  次序 X1Y1  X1  Y1d21756.54.5426453434534.52.25456464581081046776.570.25710910918322209989811021110

计算 d 2 d^2 d2

获得秩后,您可以计算秩之间的差异。因此,在这种情况下,第一个数据点的秩差异为 2 ,我们对其进行平方,类似地,我们将 X i X_i Xi Y i Y_i Yi 之间的秩中的第二个数据点的差值设为 2,并将其平方,得到 4。因此,像这样,我们对秩进行差异化,并通过对其进行平方,我们得到了最终的 d 平方值。我们将所有值相加,然后在上述公式中使用该值来计算斯皮尔曼系数。

通过输入 d 2 d^2 d2 n n n 值的值
ρ = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) = 1 − 6 ( 4 + 4 + 2.25 + 4 + 4 + 0.25 + 1 + 0 + 1 + 0 ) 10 ( 1 0 2 − 1 ) = 1 − 6 × 20.5 990 = 1 − 123 990 = 1 − 0.12424242424242424 = 0.8757575757575757 ≈ 0.88 \begin{aligned} \rho & =1-\frac{6 \sum d_i^2}{n\left(n^2-1\right)} \\ & =1-\frac{6(4+4+2.25+4+4+0.25+1+0+1+0)}{10\left(10^2-1\right)} \\ & =1-\frac{6 \times 20.5}{990} \\ & =1-\frac{123}{990} \\ & =1-0.12424242424242424 \\ & =0.8757575757575757 \\ & \approx 0.88 \end{aligned} ρ=1n(n21)6di2=110(1021)6(4+4+2.25+4+4+0.25+1+0+1+0)=19906×20.5=1990123=10.12424242424242424=0.87575757575757570.88

Python绘图

import pandas as pd
from scipy.stats import spearmanr
import matplotlib.pyplot as plt

anscombe_data = pd.read_csv(data_url, index_col=0)
subset_data = anscombe_data[['x1', 'y1', 'x2', 'y2', 'x3', 'y3', 'x4', 'y4']]
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

for i, (x_col, y_col) in enumerate(zip(subset_data.columns[::2], subset_data.columns[1::2])):
	row = i // 2
	col = i % 2

	subset_data.plot.scatter(x=x_col, y=y_col, ax=axs[row, col], title=f'Dataset {i+1}')
	correlation = spearmanr(subset_data[x_col], subset_data[y_col]).correlation
	axs[row, col].text(0.5, 0.9, f'Spearman correlation: {correlation:.2f}',
					ha='center', va='center', transform=axs[row, col].transAxes)

	if correlation > 0:
		axs[row, col].text(0.5, 0.8, 'Positive correlation', ha='center', va='center', transform=axs[row, col].transAxes)
	elif correlation < 0:
		axs[row, col].text(0.5, 0.8, 'Negative correlation', ha='center', va='center', transform=axs[row, col].transAxes)
	else:
		axs[row, col].text(0.5, 0.8, 'No correlation', ha='center', va='center', transform=axs[row, col].transAxes)

	if abs(correlation) > 0.7: 
		axs[row, col].text(0.5, 0.7, 'Linear relationship', ha='center', va='center', transform=axs[row, col].transAxes)
	else:
		axs[row, col].text(0.5, 0.7, 'Non-linear relationship', ha='center', va='center', transform=axs[row, col].transAxes)

plt.tight_layout()
plt.show()

Python实现相关性

from scipy.stats import spearmanr

# sample data
x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1]

# calculate Spearman's correlation coefficient and p-value
corr, pval = spearmanr(x, y)

# print the result
print("Spearman's correlation coefficient:", corr)
print("p-value:", pval)

输出

Spearman's correlation coefficient: -0.9999999999999999
p-value: 1.4042654220543672e-24 

👉参阅、更新:计算思维 | 亚图跨际

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP+UDP通信

一、UDP协议 1.1、recvfrom() 参数说明 int sockfd, //socket 的fd void *buf, // 保存数据的一块空间的地址 size_t len, //这块空间的大小 int flags,// 0 默认的接收方式 -----阻塞方式 默认行为是阻塞 MSG_DONTWAIT 不阻塞方式&#xff0c;用他的话代表读的时候是非…

宠物掉毛、有异味怎么办?怎么选择宠物空气净化器?

每当我和朋友提起我家养猫养狗之后&#xff0c;不少朋友总会带着好奇与担忧的表情&#xff0c;半开玩笑地说&#xff1a;“你家里岂不是充满了‘特别’的味道&#xff1f;”这也不怪她们会有这种印象&#xff0c;因为大部分养宠家庭可能都会遇到浮毛满天飞的情况&#xff0c;但…

深入探讨SD NAND的SD模式与SPI模式初始化

在嵌入式系统和存储解决方案中&#xff0c;SD NAND的广泛应用是显而易见的。CS创世推出的SD NAND支持SD模式和SPI模式&#xff0c;这两种模式在功能和实现上各有优劣。在本文中&#xff0c;我们将深入探讨这两种模式的初始化过程&#xff0c;并比较它们在不同应用场景下的优劣&…

什么是上网行为管理呢?【上网行为管理系统功能介绍 】

小编想跟大家介绍上网行为管理系统的功能&#xff0c;可以提高工作效率和安全性。如果你也和部分管理者一样&#xff0c;经常为网络管理头疼&#xff0c;不妨看看小编解析的上网行为管理功能&#xff0c;会让眼前一亮哦&#xff01;上网行管控 应用场景&#xff1a;过滤非法网站…

Tomcat类加载机制详解

1.Tomcat类加载机制详解 1.1 JVM类加载器 Java中有 3 个类加载器&#xff0c;另外你也可以自定义类加载器 引导&#xff08;启动&#xff09;类加载器&#xff1a;负责加载支撑JVM运行的位于JRE的lib目录下的核心类库&#xff0c;比如rt.jar、charsets.jar等扩展类加载器&am…

流量掘金付费进群源码,最新无人直播变现玩法

外面1800流量掘金付费进群搭建 最新无人直播变现玩法 流量掘金付费进群网站源码 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89662670 更多资源下载&#xff1a;关注我。

消化学科的领军人物陈烨教授在会议上作了《幽门螺杆菌的规范检测与质控》的专题报告

由广东省药学会主办的“第十九届消化疾病诊疗会暨胃肠疾病药物临床研究交流会”于2024年8月8日-9日在广东省深圳市召开。陈烨教授&#xff0c;作为消化学科的领军人物、中华医学会消化病学分会的常务委员&#xff0c;以及全国幽门螺杆菌学组的组长&#xff0c;在会议上作了《幽…

用爬虫玩转石墨文档细解

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 石墨文档是一款受欢迎的在线协作工具&#xff0c;它允许多人实时编辑和共享文档。通过爬虫技术&#xff0c;我们可以自动化地获取石墨文档中的内容&#xff0c;进行数据分析或备份。不过&#xff0c;在使用爬虫技术时&a…

Nmap扫描六种端口状态介绍

传统意义上的端口状态只有 open 或 close 两种。网络发现扫描最常用的工具是Nmap&#xff0c;可以提供更细分的端口状态&#xff0c;共计六种&#xff0c;分别为open, closed, filtered, unfiltered, open|filtered, or closed|filtered。 1. 端口状态介绍 开放的&#xff08;o…

艾多美携手三星SDS,共筑物流优化与数字化转型新篇章!

8月20日下午&#xff0c;艾多美公司董事长朴炳宽受邀出席了由山东省人民政府、韩国产业通商资源部联合主办的“山东省—韩国经贸合作交流会”。在此次盛会上&#xff0c;艾多美中国与全球领先的IT解决方案提供商三星SDS达成了具有重要里程碑意义的战略合作&#xff0c;双方将共…

安防监控EasyCVR视频监控汇聚管理平台登录1分钟之后自动退出是什么原因?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、网络管理和安全管理等功能&#xff0c;还支持多种主流标准协议&#xff0c;如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

docker基本环境搭建

前面在虚拟机centos中搭建的fastdfs和minio分布式文件存储服务都是手动编译安装的&#xff0c;为了方便后续学习&#xff0c;本地开发环境的中间件服务部署&#xff0c;我们将交给docker来部署。下面先进行docker环境搭建。 后续相关教程&#xff08;待更新&#xff09;&#…

QT中通过TCP协议多线程的文件传输(客户端)

首先&#xff0c;新建一个项目&#xff0c;我命名为了SendFileClient 首先我们要在pro文件中 代码第一行加入network的后缀 一、窗口搭建 如图所示&#xff0c;在第一个QWidget中让客户端输入IP&#xff0c;端口号 连接服务器 第二个Qwidget 设置一个LineEdit,供客户端选择要…

二维中,若直线上两点q1和q2,输入一个点P1,求P1在直线上的垂点

一、计算过程 在二维空间中&#xff0c;若给定直线上两点Q1和Q2以及一个点P1&#xff0c;要求出点P1在直线上的垂点&#xff0c;可以通过以下步骤进行&#xff1a; ‌1、判断点P1是否在直线q1-q2上‌&#xff1a; 首先&#xff0c;需要判断点P1是否位于直线Q1-Q2上。这可以通过…

【Linux】实现三个迷你小程序(倒计时,旋转指针,进度条)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 目录 &#x1f4cc;倒计时小程序 &#x1f38f;项目效果展示 &#x1f38f;项目实现思路 &#x1f38f;项目完整代码 &#x1f4cc;旋转指针小程序 &#x…

视频监控接入汇聚平台如何根据客户要求定制资源树结构和资源的任意排序

目录 一、需求描述 1.1视频监控资源树 1.2客户要求 二、市场上产品常用处理方法 2.1 常用处理方法 &#xff08;1&#xff09;按笔画数排序 &#xff08;2&#xff09;按拼音排序 &#xff08;3&#xff09;按字典序排序 &#xff08;4&#xff09;按首字母排序 2.2 …

使用预训练的 ONNX 格式的目标检测模型(基于 YOLOv8n-pose)姿态监测

具体步骤如下&#xff1a; 加载图像&#xff1a; 从指定路径读取一张图像&#xff08;这里假设图像名为bus.jpg&#xff09;。将图像从 BGR 颜色空间转换为 RGB 颜色空间。 图像预处理&#xff1a; 计算图像的高度、宽度&#xff0c;并确定其中的最大值作为新图像的边长。创建一…

C语言新手小白详细教程:冒泡排序

&#x1f30f;个人博客主页&#xff1a;意疏-CSDN博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明冒泡排序简介冒泡排序代码 开篇说明 本文我们来介绍冒…

编码器精度

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、影响因素二、编码器精度三、位置因素四、环境因素五、磁编码器 前言 送给大学毕业后找不到奋斗方向的你&…

《九界ol游戏源码》(游戏源码+客户端+服务端+工具+视频教程)百度云盘下载

游戏制作精美&#xff0c;和天龙八部用一样的游戏引擎&#xff0c;就是ogre。有兴趣的朋友&#xff0c;可以下载来收藏研究。 《九界ol游戏源码》&#xff08;游戏源码客户端服务端工具视频教程&#xff09; 下载地址&#xff1a; 链接: https://pan.baidu.com/s/1KIWSVYyAcSpY…