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

深度学习——图像相似度评价指标

这里写目录标题

  • PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)
    • 定义
    • 公式
    • 代码
  • SSIM
  • MS-SSIM (Multi Scale Structural Similarity Index Measure,多尺度结构相似性)
  • CSS (Contrast-Structure Similarity 对比结构相似度)
  • MAE
  • FID
  • 补充协方差
  • 参考文献

PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)

定义

峰值信噪比(PeakSignal toNoiseRatio,PSNR),表示的是信号的最大功率与噪声功率的比值。峰值信噪比越高,表示噪声影响越小;峰值信噪比越低,表示噪声影响越大,单位是分贝dB。PSNR是基于像素值的全局评估,不考虑图像的结构信息

  1. PSNR接近50dB:表示压缩后的图像质量非常高,仅有非常小的误差。在这种情况下,原始图像和压缩后的图像之间的差异几乎不可察觉。
  2. PSNR大于30dB:通常认为,人眼很难察觉到这种压缩水平下图像的失真。这意味着压缩后的图像在视觉上与原始图像非常接近。
  3. PSNR介于20dB到30dB之间:在这个范围内,人眼可以开始察觉到图像的一些差异,但这些差异通常不会太显著。
  4. PSNR介于10dB到20dB之间:在这个范围内,人眼可以较为明显地看出图像的差异,但仍然可以辨识出图像的基本结构。尽管存在失真,但人们可能仍然会认为两张图像是相似的。
  5. PSNR低于10dB:当PSNR值非常低时,图像的质量会显著下降,以至于人眼很难判断两个图像是否为同一场景的图像,或者一个图像是否为另一个图像的有效压缩版本。

公式

假设原始图像是 x x x,生成图像是 y y y,图像大小是 H × W H \times W H×W,两张图像的均方差公式 ( M S E ) (MSE) (MSE)定义为: M S E = 1 H W ∑ i = 0 H − 1 ∑ j = 0 W − 1 ( x i j − y i j ) 2 MSE=\frac{1}{HW}\sum_{i=0}^{H-1}\sum_{j=0}^{W-1}(x_{ij}-y_{ij})^2 MSE=HW1i=0H1j=0W1(xijyij)2 我们假设图像是 B B B位图像,像素的最大值 M A X = 2 B − 1 MAX=2^B-1 MAX=2B1,例如如果是8位图像,图像最大值为255, P S N R PSNR PSNR的公式可以定义为:
P S N R = 10 l o g 10 ( M A X 2 M S E ) PSNR=10 log_{10}(\frac{MAX^2}{MSE}) PSNR=10log10(MSEMAX2)

代码

from PIL import Image
import numpy as npdef psnr(img1, img2):mse = np.mean((img1-img2)**2)if mse == 0:return float('inf')else:return 20*np.log10(255/np.sqrt(mse))if __name__ == "__main__":img1 = np.array(Image.open('original.jpg')).astype(np.float64)img2 = np.array(Image.open('compress.jpg')).astype(np.float64)print(psnr(img1, img2))

SSIM

我们假设原图为 x x x,生成图像为 y y y.其均值和方差分别为 μ x , μ y , σ x , σ y \mu_x,\mu_y,\sigma_x,\sigma_y μx,μy,σx,σy。他们的协方差为 σ x , y \sigma_{x,y} σx,y,我们从三个角度考虑图像的相似度,亮度(luminance)对比度(contrast)结构(structure)

亮度相似度比较: l ( x , y ) = 2 μ x μ y + c 1 μ x 2 + μ y 2 + c 1 l(x,y)=\frac{2\mu_x\mu_y+c_1}{\mu_x^2+\mu_y^2+c_1} l(x,y)=μx2+μy2+c12μxμy+c1

对比相似度比较: c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 c(x,y)=\frac{2\sigma_x\sigma_y+c_2}{\sigma_x^2+\sigma_y^2+c_2} c(x,y)=σx2+σy2+c22σxσy+c2

结构相似度比较: s ( x , y ) = σ x y + c 3 σ x σ y + c 3 s(x,y)=\frac{\sigma_{xy}+c_3}{\sigma_x\sigma_y+c_3} s(x,y)=σxσy+c3σxy+c3

S S I M = l ( x , y ) c ( x , y ) s ( x , y ) = ( 2 μ x μ y + c 1 ) ( 2 σ x , y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) SSIM=l(x,y)c(x,y)s(x,y)=\frac{(2\mu_x\mu_y+c_1)(2\sigma_{x,y}+c_2)}{(\mu_x^2+\mu_y^2+c_1)(\sigma_x^2+\sigma_y^2+c_2)} SSIM=l(x,y)c(x,y)s(x,y)=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σx,y+c2)

其中 c 1 , c 2 , c 3 c_1,c_2,c_3 c1,c2,c3是稳定除法运算的常数, c 1 = ( k 1 L ) 2 , c 2 = ( k 2 L ) 2 , c 3 = c 2 / 2 c_1=(k_1L)^2 ,c_2=(k_2L)^2,c_3=c_2/2 c1=(k1L)2,c2=(k2L)2,c3=c2/2, L L L是像素值的动态范围 2 B − 1 2^B-1 2B1,默认值: k 1 = 0.01 , k 2 = 0.03 k_1=0.01,k_2=0.03 k1=0.01,k2=0.03

然而,上面的 SSIM 不能用于一整幅图。因为在整幅图的跨度上,均值和方差往往变化剧烈;同时图像上不同区块的失真程度也有可能不同,不能一概而论;此外类比人眼睛每次只能聚焦于一处的特点,作者采用 sliding window 以步长为 1 计算两幅图各个对应 sliding window 下的 patch 的 SSIM,然后取平均值作为两幅图整体的 SSIM,称为 Mean SSIM,简写为 M-SSIM。代码中,计算每个 patch 的均值和方差时,作者采用了方差为 1.5 的高斯卷积核作加权平均,滑窗大小为 11*11 ,如果整幅图有 M 个 patch,那么 Mean-SSIM 公式为:
M e a n − S S I M = 1 M ∑ m M S S I M ( x p a t c h , y p a t c h ) Mean-SSIM=\frac{1}{M}\sum_m^MSSIM(x_{patch},y_{patch}) MeanSSIM=M1mMSSIM(xpatch,ypatch)

MS-SSIM (Multi Scale Structural Similarity Index Measure,多尺度结构相似性)

MS-SSIM(多尺度结构相似性指数)是SSIM(结构相似性指数)的扩展版本,用于评估图像质量。它通过多个尺度来捕捉图像的结构信息,从而更全面地评估图像相似度。MS-SSIM的公式如下:

MS-SSIM ( x , y ) = [ l M ( x , y ) ] α M ⋅ ∏ j = 1 M [ c j ( x , y ) ] β j ⋅ [ s j ( x , y ) ] γ j \text{MS-SSIM}(x, y) = [l_M(x, y)]^{\alpha_M} \cdot \prod_{j=1}^{M} [c_j(x, y)]^{\beta_j} \cdot [s_j(x, y)]^{\gamma_j} MS-SSIM(x,y)=[lM(x,y)]αMj=1M[cj(x,y)]βj[sj(x,y)]γj

其中:

  • x x x y y y 分别是待比较的两幅图像。
  • $ M $ 是尺度的总数。
  • l M ( x , y ) l_M(x, y) lM(x,y) 是在第 M 个尺度上的亮度比较。
  • c j ( x , y ) c_j(x, y) cj(x,y)是在第 j 个尺度上的对比度比较。
  • s j ( x , y ) s_j(x, y) sj(x,y) 是在第 j 个尺度上的结构比较。
  • α M \alpha_M αM, β j \beta_j βj, 和 γ j \gamma_j γj 是权重参数,用于调整各部分的贡献。

CSS (Contrast-Structure Similarity 对比结构相似度)

CSS是SSIM的一个变体,去除了SSIM中的亮度这一项,
C S S ( x , y ) = 2 σ x y + c σ x 2 + σ y 2 + c CSS(x,y)=\frac{2\sigma_{xy}+c}{\sigma_x^2+\sigma_y^2+c} CSS(x,y)=σx2+σy2+c2σxy+c

MAE

图像相似度计算中,MAE(Mean Absolute Error,平均绝对误差)是一种常用的指标,用于衡量两幅图像之间的差异。MAE 的计算公式如下:

MAE = 1 H W ∑ i = 0 H − 1 ∑ i = 0 W − 1 ∣ x i , j − y i , j ∣ \text{MAE} = \frac{1}{HW} \sum_{i=0}^{H-1} \sum_{i=0}^{W-1}|x_{i,j} - y_{i,j}| MAE=HW1i=0H1i=0W1xi,jyi,j

FID

FID(Fréchet Inception Distance)是一种用于评估生成图像质量的指标,尤其在生成对抗网络(GAN)中广泛应用。它通过比较生成图像与真实图像的统计特征来衡量相似度。

FID = ∥ μ g − μ r ∥ 2 + Tr ( Σ g + Σ r − 2 ( Σ g Σ r ) 1 / 2 ) \text{FID} = \|\mu_g - \mu_r\|^2 + \text{Tr}(\Sigma_g + \Sigma_r - 2(\Sigma_g \Sigma_r)^{1/2}) FID=μgμr2+Tr(Σg+Σr2(ΣgΣr)1/2)

  • 其中, ∥ μ g − μ r ∥ 2 \|\mu_g - \mu_r\|^2 μgμr2是均值差的平方, Tr \text{Tr} Tr 是矩阵的迹。

补充协方差

两张图像的协方差公式用于衡量它们之间的线性关系。对于图像 x x x y y y,假设它们的大小均为 H × W H \times W H×W,协方差公式如下:

σ ( x , y ) = 1 H W ∑ i = 0 H − 1 ∑ j = 0 W − 1 ( x i j − μ x ) ( y i j − μ y ) \sigma(x, y) = \frac{1}{HW} \sum_{i=0}^{H-1} \sum_{j=0}^{W-1} (x_{ij} - \mu_x)(y_{ij}- \mu_y) σ(x,y)=HW1i=0H1j=0W1(xijμx)(yijμy)

其中: x ( i , j ) x(i,j) x(i,j) y ( i , j ) y(i,j) y(i,j)分别是图像 x x x y y y在像素点 ( i , j ) (i,j) (i,j)处的灰度值。 μ x \mu_x μx μ y \mu_y μy分别是图像 x x x y y y的均值,计算公式为:
μ x = 1 H W ∑ i = 0 H − 1 ∑ j = 0 W − 1 x i j , μ y = 1 H W ∑ i = 0 H − 1 ∑ j = 0 W − 1 y i j \mu_x = \frac{1}{HW} \sum_{i=0}^{H-1} \sum_{j=0}^{W-1} x_{ij}, \quad \mu_y = \frac{1}{HW} \sum_{i=0}^{H-1} \sum_{j=0}^{W-1} y_{ij} μx=HW1i=0H1j=0W1xij,μy=HW1i=0H1j=0W1yij
协方差为正表示两图像变化趋势一致,为负则表示变化趋势相反,接近零则表明两者无明显线性关系。

参考文献

https://zhuanlan.zhihu.com/p/661510928
https://blog.csdn.net/sinat_29957455/article/details/125119550
https://zhuanlan.zhihu.com/p/622244511
代码实现SSIM,MS-SSIM,

相关文章:

深度学习——图像相似度评价指标

这里写目录标题 PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)定义公式代码 SSIMMS-SSIM (Multi Scale Structural Similarity Index Measure,多尺度结构相似性)CSS (Contrast-Structure Similarity 对比结构相似度)MA…...

CentOS安装sshpass工具-自动化SSH密码认证

sshpass是一个在Linux环境下用于自动化SSH密码认证的工具。 一、功能特点 自动化SSH登录:sshpass允许用户在命令行中直接传递密码,从而无需在SSH连接时手动输入密码。这对于自动化脚本和批处理任务非常有用,因为它可以在非交互式环境下完成…...

js 中 如何获取数组的交集【面试题】

一、数组元素为基本类型:Number、String、等基本类型时 1、使用 Set 和 filter(适用于两个数组) const intersection (arr1, arr2) > {const set new Set(arr2);return [...new Set(arr1)].filter(item > set.has(item)); };将第二…...

value-key 的作用

在 el-autocomplete 组件中,value-key 是一个非常重要的属性,它用于指定选项对象中作为值的字段名。当选项列表是一个包含多个属性的对象数组时,value-key 能帮助组件明确哪个属性是实际要使用的值。比如,选项列表为 [{id: 01, na…...

Spring MVC:从历史演变到实战入门

1. Java Web的发展历史与MVC模式 1.1 Model I与Model II的演进 Model I(JSPJavaBean) 作为早期Java Web开发的主流模式,其核心架构如下: graph LR A[客户端] --> B[JSP页面] B --> C{业务逻辑} C --> D[JavaBean] D -…...

Matlab设置表table的表头

用到matlab的table很好用。经常涉及放入数据,读取数据,下面总结常用的知识点。 1. 把不同数据类型放到同一个表中 想把时间类型和数值类型放到统一table中。困扰的点是,我已经知道了表头名称, 如何批量的为表头命名,…...

预测蓝桥杯16届嵌入式省赛客观题

以下是15道蓝桥杯嵌入式省赛客观题预测,每道题均包含**选项列表**、**答案**和**解析**,格式清晰便于快速查阅: 一、预测1 ### **一、STM32G4硬件基础与外设配置** 1. **STM32G431RBT6的Flash和RAM容量分别为?** **选项**&a…...

综合章节:游戏网络化、模组化与深度扩展

模块一:网络功能与玩家数据同步 目标:实现玩家得分上传、全球排行榜展示及云端数据同步。 # network_manager.py(网络请求封装) import requests import threadingclass NetworkManager:def __init__(self, base_url"http:…...

PostgreSQL:索引与查询优化

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...

Android Compose 框架的 ViewModel 委托深入剖析(二十)

Android Compose 框架的 ViewModel 委托深入剖析 一、引言 在 Android 开发中,数据的管理和状态的保存是至关重要的。ViewModel 作为 Android 架构组件的一部分,为我们提供了一种在配置更改(如屏幕旋转)时保存数据和管理 UI 状态…...

android|生成二维码qrcode(android)

1.build.gradle implementation com.google.zxing:core:3.4.1引入zxing库 只是生成的话引入core库就可以了 2.封装方法 import android.graphics.Bitmap; import android.graphics.Color;import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; imp…...

element-plus中el-empty空盒子组件和Collapse 折叠面板组件的使用

一.el-empty空盒子组件的使用 直接复制下面的代码&#xff1a; <el-empty description"description" /> 展示效果&#xff1a; 还可以自定义文字描述&#xff1a; <el-empty description"暂未选择患者"/> 二.Collapse 折叠面板组件的使用 复制…...

Windows 和 Linux 操作系统架构对比以及交叉编译

操作系统与架构兼容性详解 1. 可执行文件格式&#xff1a;PE vs ELF Windows: PE (Portable Executable) 格式 详细解释&#xff1a; PE 格式是 Windows 下的可执行文件标准 包含多个区段&#xff08;Sections&#xff09;&#xff0c;如代码段、数据段、资源段 文件头包含…...

【区块链安全 | 第一篇】密码学原理

文章目录 1.哈希函数1.1 哈希函数的性质1.2 常见哈希算法1.3 Merkle Tree&#xff08;默克尔树&#xff09;1.4 HMAC&#xff08;哈希消息认证码&#xff09; 2. 公钥密码学2.1 对称加密 vs 非对称加密2.2 RSA 算法2.3 ECC&#xff08;椭圆曲线密码学&#xff09;2.4 Diffie-He…...

3.23[A]linux

gedit 是 GNOME 桌面环境下的文本编辑器&#xff0c;类似于 Windows 中的记事本&#xff0c;但功能更强大&#xff0c;支持语法高亮、多文件编辑等特性。它是一个图形化界面的文本编辑器&#xff0c;适合在需要直观编辑文本文件的场景中使用。 gedit 通常用于编辑配置文件、源代…...

AI革命之下的前端将会如何发展?

一、AI 为前端开发带来的变革 &#xff08;一&#xff09;提升开发效率 传统的 Web 前端开发常常面临大量重复性工作&#xff0c;如编写简单表单、布局组件等&#xff0c;这些工作耗时费力且易出错&#xff0c;严重影响开发效率和项目进度。而 AI 的出现&#xff0c;通过自动…...

【2025】基于springboot+vue的农产品商城系统设计与实现(源码、万字文档、图文修改、调试答疑)

项目完整功能以演示视频为准 基于Spring Boot Vue的农产品商城系统设计与实现功能结构图如下&#xff1a; 课题背景 随着互联网的普及和电子商务的快速发展&#xff0c;农产品线上销售成为推动农业现代化和乡村振兴的重要力量。传统的农产品销售模式存在信息不对称、销售渠道单…...

沪深300股指期货的看涨看跌方式是怎样的?

沪深300指数代表了中国A股市场中300家大公司的整体表现。股指期货交易允许老板们预测指数未来的涨跌&#xff0c;并从中获利。 沪深300股指期货基础操作 首先&#xff0c;沪深300股指期货中的看涨操作&#xff1a;老板们可以通过买入沪深300股指期货合约&#xff0c;代码也就是…...

使用selenium来获取数据集

使用selenium来获取数据集 1、下载最新的chrome浏览器与chromedriver.exe 查看chrome的版本,打开谷歌浏览器,点击右上角的三个点,然后点击【帮助】, 点击【关于Google Chrome】 然后去下载同样为134版本号的chromedriver.exe, 网址:https://googlechromelabs.github.…...

MCP(大模型上下文协议)

以下是关于大模型MCP协议&#xff08;Model Context Protocol&#xff09;的详细介绍&#xff0c;综合其定义、技术架构、应用场景及行业影响&#xff1a; 一、定义与核心目标 **MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;**是由Anthropic…...

FPGA中串行执行方式之流水线(Pipeline)

FPGA中串行执行方式之流水线(Pipeline) 在FPGA设计中,​流水线(Pipeline)​ 是一种常见的优化技术,用于提高系统的吞吐量和性能。流水线通过将复杂的逻辑分解为多个阶段,每个阶段在一个时钟周期内完成一部分工作,并将中间结果传递到下一阶段。这种方式可以显著提高时钟…...

Python 3.8 Requests 爬虫教程(2025最新版)

遵守网站的爬虫规则、避免爬取敏感信息、保护个人隐私&#xff01; 一、环境配置与基础验证 # 验证 Python 版本&#xff08;需 ≥3.8&#xff09; import sys print(sys.version) # 应输出类似 3.8.12 的信息# 安装 requests 库&#xff08;若未安装&#xff09; # 命令行执…...

【深度学习】GAN生成对抗网络:原理、应用与发展

GAN生成对抗网络&#xff1a;原理、应用与发展 文章目录 GAN生成对抗网络&#xff1a;原理、应用与发展1. 引言2. GAN的基本原理2.1 核心思想2.2 数学表达2.3 训练过程 3. GAN的主要变体3.1 DCGAN (Deep Convolutional GAN)3.2 CGAN (Conditional GAN)3.3 CycleGAN3.4 StyleGAN…...

LINUX基础 [三] - 进程创建

目录 前言 进程创建的初次了解&#xff08;创建进程的原理&#xff09; 什么是fork函数&#xff1f; 初识fork函数 写时拷贝 fork函数存在的意义 fork调用失败的原因 进程终止 运行完毕结果不正确 main函数返回 库函数函数exit 系统调用接口_exit 进程异常终止 进…...

AI比人脑更强,因为被植入思维模型【24】替身决策思维模型

定义 替身决策思维模型是一种在面对复杂问题或决策情境时&#xff0c;通过将自己代入到不同的角色&#xff08;即“替身”&#xff09;中&#xff0c;从这些角色的视角出发去思考、分析和做出决策的思维方式。这种思维模型要求决策者暂时摆脱自身固有的思维定式和立场&#xf…...

数据清洗:基于python抽取jsonl文件数据字段

基于python抽取目录下所有“jsonl”格式文件。遍历文件内某个字段进行抽取并合并。 import os import json import time from tqdm import tqdm # 需要先安装&#xff1a;pip install tqdmdef process_files():# 设置目录路径dir_path r"D:\daku\关键词识别\1623-00000…...

spring后端处理各种请求

在Spring MVC中处理JSON请求和返回JSON消息的步骤如下&#xff1a; 1. 添加依赖 确保项目中包含处理JSON的库&#xff0c;如Jackson。 Maven配置&#xff08;pom.xml&#xff09;&#xff1a; <dependency><groupId>com.fasterxml.jackson.core</groupId>…...

企业级部署zabbix分布式监控系统

目录 一、Zabbix分布式监控系统介绍 1.什么是“Zabbix” 2.Zabbix分布式监控系统的特点 3.Zabbix分布式监控系统的原理 4.Zabbix分布式监控系统的运用 5. Zabbix分布式监控系统的部署顺序 二、搭建 1.设备硬件配置参考 2.zabbix分布式监控系统各节点设备名称和IP规划 …...

OkHttp 的证书设置

在 Android 开发中&#xff0c;通过 OkHttp 自定义 SSLSocketFactory 和 X509TrustManager 可以有效增强 HTTPS 通信的安全性&#xff0c;防止中间人攻击&#xff08;如抓包工具 Charles/Fiddler 的拦截&#xff09;。以下是实现防抓包的关键技术方案&#xff1a; 一、Okhttp设…...

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代&#xff0c;数据已成为企业最为宝贵的资产之一。然而&#xff0c;数据的海量增长也伴随着诸多问题&#xff0c;如数据来源多样、结构复杂以及质量问题等&#xff0c;这些问题严重阻碍了数据的有效处理与深度分析。在此背景下&#xff0c;ETL&…...

蓝桥杯备考:图的遍历

这道题乍一看好像没什么不对的&#xff0c;但是&#xff01;但是&#xff01;结点最大可以到10的5次方&#xff01;&#xff01;&#xff01;我们递归的时间复杂度是很高的&#xff0c;我们正常遍历是肯定通过不了的&#xff0c;不信的话我们试一下 #include <iostream>…...

【多媒体交互】Unity Kinect实现UI控件的点击

在Unity中&#xff0c;通过Kinect实现UI控件的点击功能&#xff0c;主要涉及手部追踪、坐标映射和手势检测三个核心环节。 实现步骤 初始化Kinect与关节追踪 使用KinectManager获取用户ID和手部关节点&#xff08;如JointType.HandLeft&#xff09;的坐标。 long userId _…...

QinQ项展 VLAN 空间

随着以太网技术在网络中的大量部署&#xff0c;利用 VLAN 对用户进行隔离和标识受到很大限制。因为 IEEE802.1Q 中定义的 VLAN Tag 域只有 12 个比特&#xff0c;仅能表示 4096 个 VLAN&#xff0c;无法满足城域以太网中标识大量用户的需求&#xff0c;于是 QinQ 技术应运而生。…...

OBS虚拟背景深度解析:无需绿幕也能打造专业教学视频(附插件对比)

想要录制教学视频却苦于背景杂乱&#xff1f;本文将手把手教你用OBS实现专业级虚拟背景效果&#xff0c;无需绿幕也能轻松营造沉浸式教学场景。文末附6个提升画面质感的免费背景资源&#xff01; 一、虚拟背景的核心价值&#xff1a;从「教师宿舍」到「虚拟讲堂」的蜕变 我们调…...

26考研——图(6)

408答疑 文章目录 一、图的基本概念二、图的存储三、图的遍历四、图的应用五、图的代码实操六、参考资料鲍鱼科技课件26王道考研书 七、总结图的存储结构邻接矩阵邻接表 图的遍历图的相关概念完全图和连通图图的连通性 关键路径学习建议 一、图的基本概念 文章链接: link 二、…...

Redis常用数据类型深度解析:从理论到最佳实践

Redis常用数据类型深度解析&#xff1a;从理论到最佳实践 一、引言二、Redis数据类型全景图三、核心数据类型详解**1. String&#xff08;字符串&#xff09;****2. Hash&#xff08;哈希表&#xff09;****3. List&#xff08;列表&#xff09;****4. Set&#xff08;集合&…...

DeepSeek-V3 模型更新,加量不加价

DeepSeek V3-0324 是 DeepSeek V3 系列的重要升级版本&#xff0c;虽然被官方称为「小版本迭代」&#xff0c;但其在技术能力、开源策略和用户体验上均有显著提升。以下是主要新特性功能和核心变化&#xff1a; 推理能力 基准测试性能显著提升&#xff1a; MMLU-Pro&#xff1…...

Vue项目的 Sass 全局基础样式格式化方案,包含常见元素的样式重置

步骤 1&#xff1a;创建全局样式文件 在项目中创建文件&#xff1a;src/assets/scss/global.scss 内容如下&#xff1a; // 全局盒模型设定&#xff08;边框计入宽高&#xff09; *, *::before, *::after {box-sizing: border-box;margin: 0;padding: 0; }// 基础元素样式重置…...

【Spring篇】Spring的生命周期

一、Bean 生命周期的核心阶段 1. 实例化&#xff08;Instantiation&#xff09; • 触发时机&#xff1a;容器启动时&#xff08;单例 Bean&#xff09;或请求时&#xff08;原型 Bean&#xff09;。 • 实现方式&#xff1a; 通过反射&#xff08;Class.newInstance() 或构造…...

Qt中通过QLabel实时显示图像

Qt中的QLabel控件用于显示文本或图像&#xff0c;不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示&#xff1a; Widgets_Test.h&#xff1a; class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…...

[数据结构]1.时间复杂度和空间复杂度

这里写目录标题 1. 算法复杂度2. 时间复杂度2.1 执行次数2.2 大O渐进表示法2.3 常见时间复杂度计算eg1eg2eg3eg4eg5eg6eg7eg8eg9 3. 空间复杂度eg1eg2eg3eg4 4. 常见复杂度对比5. 复杂度练习eg1 1. 算法复杂度 衡量一个算法的好坏&#xff0c;一般是从时间空间两个维度来衡量&…...

【每日算法】Day 6-1:哈希表从入门到实战——高频算法题(C++实现)

摘要 &#xff1a;掌握高频数据结构&#xff01;今日深入解析哈希表的核心原理与设计实现&#xff0c;结合冲突解决策略与大厂高频真题&#xff0c;彻底掌握O(1)时间复杂度的数据访问技术。 一、哈希表核心思想 哈希表&#xff08;Hash Table&#xff09; 是一种基于键值对的…...

物联网平台架构介绍

物联网是连接物理设备、传感器、软件等的网络系统&#xff0c;使设备能够自动收集、交换和处理数据&#xff0c;实现智能化识别、定位、跟踪、监控和管理。随着物联网技术的飞速发展&#xff0c;物联网平台架构的设计变得至关重要&#xff0c;它决定了物联网系统的性能、可扩展…...

TCP/IP三次握手的过程,为什么要3次?

一&#xff1a;过程 第一次&#xff08;SYN&#xff09;&#xff1a; 客户端发送一个带有SYN标志的TCP报文段给服务器&#xff0c;设置SYN1&#xff0c;并携带初始序列号Seqx&#xff08;随机值&#xff09;&#xff0c;进入SYN_SENT状态。等待服务器相应。 第二次&#xff08…...

开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(四)

一、前言 语音转文本技术具有重要价值。它能提高信息记录和处理的效率,使人们可以快速将语音内容转换为可编辑、可存储的文本形式,方便后续查阅和分析。在教育领域,可帮助学生更好地记录课堂重点;在办公场景中,能简化会议记录工作。同时,该技术也为残障人士提供了便利,让…...

Qt开发:QInputDialog的使用

文章目录 一、QInputDialog的介绍二、 QInputDialog的基本用法三、使用 QInputDialog的实例四、QInputDialog的信号与槽 一、QInputDialog的介绍 QInputDialog 是 Qt 提供的一个对话框类&#xff0c;用于获取用户输入的文本、整数或浮点数。它提供了简单易用的静态方法和可定制…...

【系统架构设计师】软件质量管理

目录 1. 说明2. 软件质量保证2.1 说明2.2 质量保证的主要目标2.3 目标2.4 主要作用2.5 主要任务 3. 软件质量保证3.1 说明3.2 ISO 90003.3 CMM 4. 例题4.1 例题1 1. 说明 1.软件质量就是软件与明确地和隐含地定义的需求相一致的程度&#xff0c;更具体地说&#xff0c;软件质量…...

医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)

医院挂号预约小程序 目录 基于微信小程序的医院挂号预约系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序用户端 2、系统服务端 &#xff08;1&#xff09; 用户管理 &#xff08;2&#xff09;医院管理 &#xff08;3&#xff09;医生管理 &#xf…...

UE4-UE5虚幻引擎,前置学习一--Console日志输出经常崩溃,有什么好的解决办法

有些差异 这么牛逼的引擎&#xff0c;居然有这种入门级别的问题&#xff0c;一触发清理&#xff0c;大概率(80%)会崩溃 无论虚幻5还是UE4都有这个问题&#xff0c;挺烦人的 实在忍不了了&#xff0c;这次&#xff0c;今天 就想问问有什么好的处理方法么&#xff1f;&#x…...

javaSE.多维数组

1 final 引用类型 final int[] arr 继承Object 的引用类型&#xff0c;不能改变引用的对象 存的其实是引用 数组类型数组&#xff0c;其实存的是引用 int [][] arr new int[][] { {1,2,3}, {4,5,6} };int [] a arr[0]; int [] b arr[1];...