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

【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准

在这里插入图片描述


这是一个Benchmark,超分辨率+视频编码(2024)

  • 专题介绍
  • 一、研究背景
  • 二、相关工作
    • 2.1 SR的发展
    • 2.2 SR benchmark的发展
  • 三、Benchmark细节
    • 3.1 数据集制作
    • 3.2 模型选择
    • 3.3 编解码器和压缩标准选择
    • 3.4 Benchmark pipeline
    • 3.5 质量评估和主观评价研究
  • 四、实验论证
    • 4.1 视频质量评估结果
    • 4.2 比特率降低测试
    • 4.3 视频质量度量指标评估
  • 五、总结
    • 个人思考

本文将对SR+Codec: a Benchmark of Super-Resolution for Video Compression Bitrate Reduction进行解读,正如标题所示,建立了新的benchmark。参考资料如下:
[1]. SR+Codec Benchmark 论文地址
[2]. Benchmark(课题组成果展示)地址


专题介绍

现在是数字化时代,图像与视频早已成为信息传递的关键载体。超分辨率(super resolution,SR)技术能够突破数据源的信息瓶颈,挖掘并增强低分辨率图像与视频的潜能,重塑更高品质的视觉内容,是底层视觉的核心研究方向之一。并且SR技术已有几十年的发展历程,方案也从最早的邻域插值迭代至现今的深度学习SR,但无论是经典算法还是AI算法,都在视觉应用领域内发挥着重要作用。

本专题旨在跟进和解读超分辨率技术的发展趋势,为读者分享有价值的超分辨率方法,欢迎一起探讨交流。

一、研究背景

截至2022年,视频流量占比超80%互联网流量且持续增长,视频压缩技术能有效降低数据带宽消耗,但压缩意味着有损失。而SR技术可通过恢复细节以增强视频质量,具备优化压缩的潜力;不过现有SR模型对强压缩视频恢复效果有限且易出瑕疵(如下图示例)。
在这里插入图片描述
那么针对效果问题该如何做改进呢?哎,这不是本文的目的,本文的核心工作是:

  1. 提出了一个新的针对视频压缩复原的SR模型评测的benchmark。
  2. 评估了5个视频编解码器和19个SR模型。考虑了不同压缩比特率下的测试情况,考虑了在编码前对视频做降分辨率的情况。得出了几个结论
  3. 提出了将客观度量和主观评价(5397名受试者)相结合的评判标准。重点关注细节恢复和主观感知的表现,以及消除压缩伪影问题的能力。并构建了一个与主观评价相关性高的简单度量组合。
  4. 量化分析了SR在视频质量恢复与比特率优化中的实际效能,为编解码器设计(如LCEVC)提供模型选型依据。

作者期望本工作能够为低带宽高清视频传输提供技术路径,推动SR在实时编解码场景中的应用。

“我们来定更好的标准,你们来做更好的算法。”

有些新入坑的朋友可能会想,啥是benchmark呢?
benchmark是一种标准化的测试方法或数据集,用于衡量和比较不同算法或模型在特定任务上的性能。它提供了一种客观的评估标准,帮助研究人员和开发者了解他们的算法或模型在实际应用中的表现。根据类型划分,包括了数据集基准任务基准性能指标基准

二、相关工作

2.1 SR的发展

言归正传,作者捋了捋当前的SR技术发展。这里基于文章内容简单整理了一个表。

功能维度时间冗余利用类视频 SR 方法GAN 类 SR 方法扩散模型类 SR 方法
核心思想通过递归/双向传播对齐时空上下文利用对抗训练生成逼真纹理多步推理生成高质量结果
代表模型RBPN [17], COMISR [27], BasicVSR++ [15], VRT [29], RVRT [30], Swin2SR [16]ESRGAN [38], Real-ESRGAN [39]diffusion SR系列 [33,35,41,51]
技术优势双向递归扭曲(COMISR)、局部-全局注意力(Swin2SR)、跨片段预测(RVRT)高阶退化建模(Real-ESRGAN)、增强感知损失图像生成质量优异
局限性对压缩伪影敏感(如 VRT 在强压缩场景失效)过度锐化风险推理步骤多(>100 步)→ 实时性差
适用场景视频序列中运动连续性强(如手持抖动视频 [45])压缩图像纹理修复(如自然图像)离线非实时任务(如存档修复)

鉴于设计用于压缩视频的SR模型数量有限,所以作者认为评估现有SR模型在压缩视频上的性能仍是一项关键任务。(因少故难,不忘督促各位学者赶紧研究)

另外,有些方案会对视频做降分辨率的操作,从而降低比特率,在解码端设计特殊的解码器将同时实现解码和SR。

在本次基准测试中,仅考虑编解码器和SR方法彼此独立的情况,评估不同编解码器和SR方法如何结合在一起最佳。

2.2 SR benchmark的发展

其实关于SR的benchmark已有很多,本文更加聚焦于SR与Codec相结合。当然,前两年也有类似的benchmark

  1. NTIRE 2022 Challenge on Super-Resolution and Quality Enhancement of Compressed Video
  2. AIM 2022 Challenge on Super-Resolution of Compressed Image and Video

But!本项工作做了几个点的改进,采用了更广泛的视频质量度量和更多的视频编解码器。还做了不同SR对优化比特率能力的测试。

特地去看了下NTIRE2022,编码仅采用了HEVC。评价指标仅采用了PSNR,确实单一。同时建立了数据集LDV2.0。而AIM2022中关于视频压缩的超分挑战规则跟NTIRE2022中是一样的,只是将LDV数据集升级至3.0,新增了30个4K视频(来自youtube)。

博主对比了一下LDV2.0和LDV3.0的描述,基本上就是ctrl+c和ctrl+v,仅仅是数据量上增加了一些。(那为何要在同一年搞两次类似的挑战?难以理解) LDV1.0-3.0的数据集路径https://github.com/RenYang-home/LDV_ dataset,感兴趣的可以去看下。

三、Benchmark细节

3.1 数据集制作

作者没有考虑沿用LDV系列,而是自己搜集制作。为了保证基准数据集足够多样化,从多个来源收集了1920x1080的视频,包括:

  • 视频网站片段:从视频网站截取了50个序列,包括real world和动画,并用VQMT将数据拆分成多个场景类型。
  • 相机实拍:用佳能EOS 7D去拍摄室内室外场景,保证亮度和清晰度较为合适,共20个室内素材和30个室外素材,包含了目标运行和相机水平运动的两种情况。(大家可以思考下:这两种运动的区别是什么,为什么要区分?)
  • 游戏视频片段,截取了20个片段,包括的2D和3D游戏视频。

然后获取了每个视频的特征,包括google时空特征,fps,颜色和最大face数量。基于这些特征,用k-means进行聚类,分成20个簇,每个簇选择一个视频,将其称为源视频。如下图所示。

在这里插入图片描述

在这里插入图片描述

这里有个新词汇,Google Spatial and Temporal features(google时空特征),其实就是空间复杂度和时间复杂度,前者用I帧的编码比特来计算,后者用P帧的编码比特来计算。(详情可参考引文《YouTube UGC dataset for video compression research》)

作者为了保证重要细节在降尺度和压缩后不完全丢失,只考虑了空间和时间复杂度低的视频,且没有很重的模糊和噪声。还表示相机运动有助于SR算法利用帧间信息做恢复。

拍脑袋想,所谓空间复杂度低就是没有很丰富的细节纹理,时间复杂度低就是没有大范围的剧烈运动。
为啥这么选?因为丰富的细节纹理压缩后损失明显,难以复原,也就很难体现SR的效果,那岂不是等于白评估。

3.2 模型选择

数据标准搞定了,模型怎么选?

作者从细节复原和感知质量提升这两个维度评估和考虑,排除了一些类似的方案,选择了19种模型,包括BasicVSR++,COMISR,DBVSR,EGVSR,LGFN,RBPN,Real-ESRGAN,RealSR,RSDN,SOF-VSR-BD,SOF-VSR-BI,SwinIR,TMNet,VRT,RVRT,IART,AnimeSR,Topaz Video AI 和 bicubic插值。 均采用原作者的预训练权重。

等等,里面怎么还有图像超分算法呢?原来是作者认为高质量视频SR模型稀缺,所以加入了图像SR一起作为比较。

3.3 编解码器和压缩标准选择

作者选择5种编码器,突出一个丰富且全面。

在这里插入图片描述

3.4 Benchmark pipeline

benchmark pipeline如下图所示。
在这里插入图片描述

  • 先用FFmpeg将源视频降分辨率至480x270,用双三次选型。
  • 选用0.6、1.0和2 Mbps的比特率对低分辨率视频做压缩。(客观评价时还增加了0.1,0.3,4.0Mbps的压缩档位)
  • 编码器均采用了medium配置(应该理解为中等质量)。
  • 压缩后的视频使用FFmpeg对PNG序列进行转码,作为SR模型输入。
  • 将图像SR模型单独应用于每一帧;视频SR模型按照正确的顺序接收到包含帧的目录路径。
  • 测试4x放大的效果,部分模型只支持2x,这种情况就处理2次。

说实话,图像SR会吃亏一些(缺少时域维度信息),个人感觉缺乏点严谨性,要么就图像SR相互对比,视频SR相互对比。

3.5 质量评估和主观评价研究

客观评价指标有:PSNRMS-SSIMVMAFLPIPSMDTVSFA(唯一的无参考)和ERQA。主要考虑了全参考指标,优先关注细节恢复,而不是感知质量。

主观评价采用了众包评价(找一堆不相干的人来评估)。由于在整个画面中,细节丢失和压缩伪影可能不容易被注意到,因此改为对剪裁块做评估。裁剪区域则是通过计算视频的显著性区域来确定。为了让评估者在屏幕上能够更好地进行比较,他们将剪裁的分辨率设置为480×270。这种方法使得评估者能够更清晰地观察到细节和压缩伪影,从而更准确地比较不同超分辨率模型的效果。除此之外,用对应的裁剪块计算客观指标,以确定客观指标与主观评分的相关性。

具体主观评价过程是随机给出两个SR模型的一对视频,让评价者选择看起来更真实、压缩伪影更少的视频(“不可区分”也是选择)。

那么由于担心有些人浑水摸鱼,睁眼说瞎话。还很机智地设置了3个验证性问题。还真筛选出了265位摸鱼侠(剔除了)。最后用Bradley-Terry模型计算最终的主观分数。(共120316个评估结果)

四、实验论证

针对每个编解码器,基于LPIPS指标,挑选了10个最佳的模型进行评估。(并不是所有模型都有资格进入决赛圈,肯定不是为了省事)

4.1 视频质量评估结果

作者选了每个编解码方案下,无SR和两种最佳SR效果作为结果展示。发现了几个有意思的点:

  • x264编码器: SwinIR和Real-ESRGAN抗压缩伪影效果最优,带生成能力的方案有优势。
  • AV1编码器: 直接压缩(无需SR)表现最佳,加SR反而冗余。
  • H.265/H.266: RVRT和RBPN模型恢复能力突出。
    在这里插入图片描述
    作者解释这种差异性跟编解码器的特性是相关的。

4.2 比特率降低测试

下表说明了,主观评分下,没有一种SR模型是具备通用性的。例如RealSR在高比特率效果不佳,但低比特率的效果反而有优势,在AVI数据上甚至NO SR是最好的。原因表述与上个结论一样。
在这里插入图片描述
在这里插入图片描述

效果上看,低比特率+SR能改善伪影问题,但至于比特率下降到多少是合适的,得看具体任务目标还有选用的编解码器。

4.3 视频质量度量指标评估

通过计算PLCC和SRCC来评价主观和客观指标的相关性,发现相关性普遍较低。

在这里插入图片描述

结合**ERQA(边缘恢复质量)MDTVSFA(多维度时空质量)**的复合指标,与主观评分相关性提升至0.801。建议可以用该复合指标来逼近主观评价。

五、总结

最后回顾一下,作者建立了一个关于SR+Codec的benchmark,然后研究过程中有以下几个结论:

  1. 例如RealSR和RVRT能够在解码之后提升低比特率视频的主观感知质量。
  2. RVRT可以提高x265和vvenc编解码后的视频质量。
  3. RealSR可以配合x264一起使用,在不降质的情况下,将视频比特率降低65%以上。
  4. 现有视频质量评价指标与主观评分的相关性很差,不适合评估基于降尺度的视频编码结果。
  5. ERQAxMDTVSFA组合的评价方式与主观评价的相关性较高,可以采用该组合作为评价指标。
  6. 对于一些高级编解码器而言,如uavs3e,aomenc等,用SR算法做增强处理的价值不大,主观效果不如无SR的。

根据文章提供的benchmark网址,博主点进去看了看,好家伙,这个实验室或是专门搞benchmark的,有个专题列表,这里截了点一部分,感兴趣的可以去详细了解一下。(组织名:MCU Graphics & Media Laboratory)
在这里插入图片描述

不过有一说一,好的benchmark确实能够给领域内的研究人员或开发人员提供不错参考和对比。

个人思考

AI SR+Codec的组合可能已经在一些视觉产品上落地使用了。Codec实现低成本数据传输,SR实现高质量结果展示。博主认为这个方向的研究与探索是很有价值的,特别是对于轻量化采集设备而言。

当然,确实没有一个SR方案能够通吃,很多模型都有各自的局限性(不考虑大模型)。要做好此类任务,需要开发者了解各模型的优劣势,同时掌握一些Codec的知识,这样才能针对性地做调整和改进。


感谢阅读!如有疑问,欢迎留言或私信。
关注博主,一起学习更多的底层视觉技术!

相关文章:

【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准

这是一个Benchmark,超分辨率视频编码(2024) 专题介绍一、研究背景二、相关工作2.1 SR的发展2.2 SR benchmark的发展 三、Benchmark细节3.1 数据集制作3.2 模型选择3.3 编解码器和压缩标准选择3.4 Benchmark pipeline3.5 质量评估和主观评价研…...

操作系统之进程和线程听课笔记

计算机的上电运行就是构建进程树,进程调度就是在进程树节点进程进行切换 进程间通信的好处 经典模型 生产者和消费者 进程和线程的区别 线程引入带来的问题线程的优势 由于unix70年代产生,90年代有线程,当时数据库系统操作需要线程,操作系统没有来得及重造,出现了用户态线…...

Mac安装Navicat16

我的电脑用的是M3芯片,然后在安装的时候也踩了很多的坑 先分享一下链接 通过网盘分享的文件:Navicat Premium v16.2.dmg 链接: https://pan.baidu.com/s/1ENLtU7VLCvzntLKqSyFiqg?pwd1234 提取码: 1234 其实按理说用navicat17也是可以的 首先下载完成后…...

表的设计、聚合函数

目录 1、表的设计 1.1、一对一 1.2、一对多 1.3、多对多 2、插入查询结果 3、聚合查询 3.1、聚合函数 3.2、GROUP BY子句 1、表的设计 根据实际的需求场景,明确当前要创建几个表,每个表什么样子,这些表之间是否存在一定联系 1. 梳理…...

React学习———React Router

React Router React Router 是 React 应用中用于管理路由的流行库&#xff0c;它允许你在单页应用&#xff08;SPA&#xff09;中实现导航和页面切换而无需重新加载页面。 安装 npm install react-router-dom核心组件 <BrowserRouter> 使用HTML5的历史记录API&#…...

【前端】[vue3] [uni-app]使用 vantUI 框架

npm 安装&#xff1a; npm i vant/weapp -S --productionmain.js 中挂载 App.vue 引入 vantUI 样式 完成&#xff1a;...

upload-labs通关笔记-第8关 文件上传之点绕过

目录 一、点绕过原理 二、deldot()函数 三、源码分析 四、渗透实战 1、构建脚本test8.php 2、打开靶场 3、bp开启拦截 4、点击上传 5、bp拦截 6、后缀名增加点 7、发包并获取脚本地址 8、访问脚本 本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗…...

XML简要介绍

实际上现在的Java Web项目中更多的是基于springboot开发的&#xff0c;所以很少再使用xml去配置项目。所以我们的目的就是尽可能快速的去了解如何读懂和使用xml文件&#xff0c;对于DTD&#xff0c;XMLSchema这类约束的学习可以放松&#xff0c;主要是确保自己知道这里面的大致…...

我设计的一个安全的 web 系统用户密码管理流程

作为一名有多年经验的前端&#xff0c;在刚开始学习web后端的时候&#xff0c;就对如何设计一个安全的 web 系统用户密码管理流程有很多疑问。之前自己也实践过几种方法&#xff0c;但一直觉得不是十分安全。 我们知道&#xff0c;用户在注册或登录界面填写的密码是明文的&…...

事件驱动架构:从传统服务到实时响应的IT新风潮

文章目录 事件驱动架构的本质&#xff1a;从请求到事件的范式转变在EDA中&#xff1a; 事件驱动架构的演进&#xff1a;从消息队列到云原生标配核心技术&#xff1a;事件驱动架构的基石与工具链1. 消息队列&#xff1a;事件传递的枢纽2. 消费者&#xff1a;异步处理3. 事件总线…...

YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点

YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点 引言 在目标检测领域&#xff0c;YOLO系列算法因其卓越的速度-精度平衡而广受欢迎。YOLOv11作为该系列的最新演进版本&#xff0c;在Neck部分引入了创新的跨尺度跨通道融合模块(CCFM, Cross-scale…...

Unity:场景管理系统 —— SceneManagement 模块

目录 &#x1f3ac; 什么是 Scene&#xff08;场景&#xff09;&#xff1f; Unity 项目中的 Scene 通常负责什么&#xff1f; &#x1f30d; 一个 Scene 包含哪些元素&#xff1f; Scene 的切换与管理 &#x1f4c1; 如何创建与管理 Scenes&#xff1f; 什么是Scene Man…...

官方 Elasticsearch SQL NLPChina Elasticsearch SQL

官方的可以在kibana 控制台上进行查询&#xff1a; POST /_sql { “query”: “SELECT client_ip, status FROM logs-2024-05 WHERE status 500” } NLPChina Elasticsearch SQL就无法以在kibana 控制台上进行查询&#xff0c;但是可以使用postman接口进行查询&#xff1a;...

Kubernetes 1.28 无 Docker 运行时环境下的容器化构建实践:Kaniko + Jenkins 全链路详解

背景说明 随着 Kubernetes 1.28 正式弃用 Docker 作为默认容器运行时&#xff08;CRI 规范演进&#xff09;&#xff0c;传统的 docker build 方式已无法直接在集群内运行。Kaniko 作为 Google 开源的容器镜像构建工具&#xff0c;凭借其无需特权容器、兼容 OCI 标准的特性&am…...

【Linux】序列化与反序列化、会话与进程组、守护进程

一.序列化和反序列化 协议其实就是结构化的数据。但是再网络通信中&#xff0c;我们不直接发送结构化的数据给对方。我们一般会将结构化的数据序列化成字符串/字节流&#xff0c;然后通过网络在发送出去。而接收方收到之后&#xff0c;要对收到的字符串/流式数据进行反序列化&…...

Python机器学习笔记(二十五、算法链与管道)

对于许多机器学习算法,特定数据表示非常重要。首先对数据进行缩放,然后手动合并特征,再利用无监督机器学习来学习特征。因此,大多数机器学习应用不仅需要应用单个算法,而且还需要将许多不同的处理步骤和机器学习模型链接在一起。Pipeline类可以用来简化构建变换和模型链的…...

自媒体工作室如何矩阵?自媒体矩阵养号策略

一、自媒体工作室矩阵搭建方法 1.纵向矩阵&#xff1a;在主流平台都开设账号&#xff0c;覆盖不同用户触达场景。 短视频&#xff1a;抖音、快手、视频号&#xff08;侧重私域沉淀&#xff09; 2.主账号导流&#xff1a;通过关联账号、评论区跳转链接实现流量互通 本地生活…...

Pywinauto:轻松实现Windows桌面自动化实战

你是否厌倦了每天重复点击软件界面的枯燥操作&#xff1f;是否希望能像自动化网页那样&#xff0c;轻松控制桌面程序&#xff1f;在自动化测试逐渐扩展到客户端桌面的今天&#xff0c;你还不知道 pywinauto&#xff0c;就真的落后了&#xff01; 手动测试Windows桌面应用&…...

告别传统的防抖机制,提交按钮的新时代来临

目录 背景 目标 核心代码 样式定义&#xff1a;让图标居中、响应父级颜色 SVG 图标&#xff1a;轻量、无依赖的 loading 图标 指令注册&#xff1a;全局注册 v-bLoading DOM 操作&#xff1a;添加与清除 loading 图标 1. 添加 loading 图标 2. 清除 loading 图标 动画…...

【Linux】Linux安装并配置MongoDB

目录 1.添加仓库 2.安装 MongoDB 包 3.启动 MongoDB 服务 4. 验证安装 5.配置 5.1.进入无认证模式 5.2.1创建用户 5.2.2.开启认证 5.2.3重启 5.2.4.登录 6.端口变更 7.卸载 7.1.停止 MongoDB 服务 7.2.禁用 MongoDB 开机自启动 7.3.卸载 MongoDB 包 7.4.删除数…...

PT2031K单触控单输出触摸IC

1.产品概述 ● PT2031K是一款电容式触摸控制ASIC&#xff0c;支持单通道触摸输入和单路同步开关输出。适用于雾化器、车载用品、电子玩具、消费类电子产品等领域&#xff0c;具有低功耗、高抗干扰、宽工作电压范围的突出优势。 2.主要特性 ● 工作电压范围&#xff1a;2.4~5.5…...

MySQL 与 FastAPI 交互教程

目录 1. 使用 Docker 启动 MySQL2. 创建 FastAPI 应用安装必要的依赖创建项目结构创建数据库连接模块创建数据模型创建 Pydantic 模型&#xff08;用于请求和响应&#xff09;创建主应用 3. 运行和测试应用启动应用访问 API 文档 4. 测试 API 端点创建用户获取所有用户获取特定…...

分布式 ID 生成的五种方法:优缺点与适用场景

0.简介 在分布式系统中&#xff0c;生成全局唯一的id是一个常见的需求。由于分布式系统的特性&#xff08;多节点&#xff0c;网络分区&#xff0c;时钟不同步等&#xff09;&#xff0c;传统的单机ID生成方式不再适用&#xff0c;所以一些分布式生成方式应运而生&#xff0c;…...

ES(Elasticsearch)的应用与代码示例

Elasticsearch应用与代码示例技术文章大纲 一、引言 Elasticsearch在现代化应用中的核心作用典型应用场景分析&#xff08;日志分析/全文检索/数据聚合&#xff09; 二、环境准备(前提条件) Elasticsearch 8.x集群部署要点IK中文分词插件配置指南Ingest Attachment插件安装…...

MinIO 开源的分布式文件服务器

如下是java代码调用MinIO的SDK实现文件的上传,并获取url <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.3</version> <!-- 你可以选择4.8.1或更高版本 --></dependenc…...

蓝牙AVRCP协议概述

AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和 audio/video 控制功能通信的特 点和过程&#xff0c;另用于远程控制音视频设备&#xff0c;底层传输基于 AVCTP 传输协议。该 Profile 定义了AV/C 数字命令控制集。命令和信息通过 AVCTP(Audio/Video Control Trans…...

【全网首发】解决coze工作流批量上传excel数据文档数据重复的问题

注意&#xff1a;目前方法将基于前一章批量数据库导入的修改&#xff01;&#xff01;&#xff01;&#xff01;请先阅读上篇文章的操作。抄袭注明来源 背景 上一节说的方法可以批量导入文件到数据库&#xff0c;但是无法解决已经上传的条目更新问题。简单来说&#xff0c;不…...

Hue面试内容整理-Hue 架构与前后端通信

Cloudera Hue 是一个基于 Web 的 SQL 助手,旨在为数据分析师和工程师提供统一的界面,以便与 Hadoop 生态系统中的各个组件(如 Hive、Impala、HDFS 等)进行交互。其架构设计强调前后端的分离与高效通信,确保系统的可扩展性和可维护性。以下是 Hue 架构及其前后端通信机制的…...

【八股战神篇】Java高频基础面试题

1 面向对象编程有哪些特性&#xff1f; 面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称 OOP&#xff09;是一种以对象为核心的编程范式&#xff0c;它通过模拟现实世界中的事物及其关系来组织代码。OOP 具有三大核心特性&#xff1a;封装、继承、多态。…...

matlab建立整车模型,求汽车的平顺性

在MATLAB中建立整车模型评估汽车平顺性&#xff0c;通常采用多自由度振动模型。以下是基于四分之一车模型的详细步骤和代码示例&#xff0c;可扩展至整车模型。 1. 四分之一车模型&#xff08;简化版&#xff09; 模型描述 自由度&#xff1a;2个&#xff08;车身垂直位移 z2…...

在Linux服务器上部署Jupyter Notebook并实现ssh无密码远程访问

Jupyter notebook版本7.4.2&#xff08;这个版本AI提示我Jupyter7&#xff08;底层是 jupyter_server 2.x&#xff09; 服务器开启服务 安装Jupyter notebook 7.4.2成功后&#xff0c;终端输入 jupyter notebook --generate-config 这将在 ~/.jupyter/ 目录下生成 jupyter_…...

C#数组与集合

&#x1f9e0; 一、数组&#xff08;Array&#xff09; 1. 定义和初始化数组 // 定义并初始化数组 int[] numbers new int[5]; // 默认值为 0// 声明并赋值 string[] names { "Tom", "Jerry", "Bob" };// 使用 new 初始化 double[] scores …...

服务器内部可以访问外部网络,docker内部无法访问外部网络,只能docker内部访问

要通过 iptables 将容器中的特定端口请求转发到特定服务器&#xff0c;你需要设置 DNAT&#xff08;目标地址转换&#xff09;规则。以下是详细步骤&#xff1a; 假设场景 容器端口: 8080&#xff08;容器内服务监听的端口&#xff09;目标服务器: 192.168.1.100&#xff08;请…...

mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》

推荐深蓝学院的《深度神经网络加速&#xff1a;cuDNN 与 TensorRT》&#xff0c;课程面向就业&#xff0c;细致讲解CUDA运算的理论支撑与实践&#xff0c;学完可以系统化掌握CUDA基础编程知识以及TensorRT实战&#xff0c;并且能够利用GPU开发高性能、高并发的软件系统&#xf…...

ssti刷刷刷

[NewStarCTF 公开赛赛道]BabySSTI_One 测试发现过滤关键字&#xff0c;但是特殊符号中括号、双引号、点都能用 可以考虑拼接或者编码&#xff0c;这里使用拼接 ?name{{()["__cla"~"ss__"]}}?name{{()["__cla"~"ss__"]["__ba&…...

Zephyr OS Nordic芯片的Flash 操作

目录 概述 1. 软硬件环境 1.1 软件开发环境 1.2 硬件环境 2 Flash操作库函数 2.1 nRF52832的Flash 2.2 Nordic 特有的 Flash 操作 2.2.1 nrfx_nvmc_bytes_write 函数 2.2.2 nrfx_nvmc_page_erase函数 2.2.3 nrfx_nvmc_write_done_check 函数 3 操作Flash的接口函数…...

傅里叶变换实战:图像去噪与边缘提取

傅里叶变换在图像处理中的应用与实践详解&#xff08;超详细教程实战代码&#xff09; &#x1f680; 本文从零开始详解傅里叶变换在图像处理中的应用&#xff0c;手把手教你实现图像去噪与边缘提取&#xff01;全文配套Python代码&#xff0c;新手也能轻松上手&#xff01; 一…...

go-中间件的使用

中间件介绍 Gin框架允许开发者在处理请求的过程中加入用户自己的钩子(Hook)函数这个钩子函数就是中间件&#xff0c;中间件适合处理一些公共的业务逻辑比如登录认证&#xff0c;权限校验&#xff0c;数据分页&#xff0c;记录日志&#xff0c;耗时统计 1.定义全局中间件 pac…...

昇腾NPU环境搭建

如果进入服务器输入npu-smi info可以看到npu情况&#xff0c;请直接跳转第三步 STEP1: 服务器安装依赖 sudo yum install -y gcc gcc-c make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran python3-develyu…...

【HTML5学习笔记2】html标签(下)

1表格标签 1.1表格作用 显示数据 1.2基本语法 <table><tr> 一行<td>单元格1</td></tr> </table> 1.3表头单元格标签 表头单元格会加粗并且居中 <table><tr> 一行<th>单元格1</th></tr> </table&g…...

开源轻量级地图解决方案leaflet

Leaflet 地图&#xff1a;开源轻量级地图解决方案 Leaflet 是一个开源的 JavaScript 库&#xff0c;用于在网页中嵌入交互式地图。它以轻量级、灵活性和易用性著称&#xff0c;适用于需要快速集成地图功能的项目。以下是关于 Leaflet 的详细介绍和使用指南。 1. Leaflet 的核心…...

LLM学习笔记(六)线性代数

公式速查表 1. 向量与矩阵&#xff1a;表示、转换与知识存储的基础 向量表示 (Vectors): 语义的载体 在LLM中&#xff0c;向量 x ∈ R d \mathbf{x}\in\mathbb{R}^d x∈Rd 是信息的基本单元&#xff0c;承载着丰富的语义信息&#xff1a; 词嵌入向量 (Word Embeddings)&am…...

Vue 3.0双向数据绑定实现原理

Vue3 的数据双向绑定是通过响应式系统来实现的。相比于 Vue2&#xff0c;Vue3 在响应式系统上做了很多改进&#xff0c;主要使用了 Proxy 对象来替代原来的 Object.defineProperty。本文将介绍 Vue3 数据双向绑定的主要特点和实现方式。 1. 响应式系统 1.1. Proxy对象 Vue3 …...

Quasar组件 Carousel走马灯

通过对比两个q-carousel组件来&#xff0c;了解该组件的属性 官方文档请参阅&#xff1a;Carousel 预览 源代码 <template><div class"q-pa-md"><div class"q-gutter-md"><q-carouselv-model"slide"transition-prev&quo…...

Vue 2.0学习

个人简介 &#x1f468;‍&#x1f4bb;‍个人主页&#xff1a; 魔术师 &#x1f4d6;学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全栈发展 &#x1f6b4;个人状态&#xff1a; 研发工程师&#xff0c;现效力于政务服务网事业 &#x1f1e8;&#x1f1f3;人生格言&…...

LangFlow技术深度解析:可视化编排LangChain应用的新范式 -(3)组件系统

Component System | langflow-ai/langflow | DeepWiki 组件系统 相关源文件 组件系统是核心基础设施&#xff0c;使 Langflow 能够在工作流中创建、配置和连接模块化构建块。该系统通过为组件提供一致的接口来定义其输入、输出、执行行为以及与其他组件的连接&#xff0c;从…...

【Win32 API】 lstrcmpA()

作用 比较两个字符字符串&#xff08;比较区分大小写&#xff09;。 lstrcmp 函数通过从第一个字符开始检查&#xff0c;若相等&#xff0c;则检查下一个&#xff0c;直到找到不相等或到达字符串的末尾。 函数 int lstrcmpA(LPCSTR lpString1, LPCSTR lpString2); 参数 lpStr…...

LabVIEW光谱检测系统

腔衰荡光谱技术&#xff08;CRDS&#xff09;凭借高精度和高灵敏度特性&#xff0c;成为微量气体浓度检测的常用方法&#xff0c;而准确获取衰荡时间是该技术应用的关键。基于LabVIEW平台设计腔衰荡信号在线处理系统&#xff0c;实现对衰荡信号的实时采集、平均、拟合、显示和保…...

深入解读WPDRRC信息安全模型:构建中国特色的信息安全防护体系

目录 前言1 WPDRRC模型概述2 模型结构详解2.1 预警&#xff08;Warning&#xff09;2.2 保护&#xff08;Protect&#xff09;2.3 检测&#xff08;Detect&#xff09;2.4 响应&#xff08;React&#xff09;2.5 恢复&#xff08;Restore&#xff09;2.6 反击&#xff08;Count…...

uniapp-商城-59-后台 新增商品(属性的选中,进行过滤展示,filter,some,every和map)

前面讲了属性的添加&#xff0c;添加完成后&#xff0c;数据库中已经存在数据了&#xff0c;这时再继续商品的添加时&#xff0c;就可以进行属性的选择了。 在商品添加过程中&#xff0c;属性选择是一个关键步骤。首先&#xff0c;界面需要展示嵌套的属性数据&#xff0c;用户通…...