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

图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读

一、文章摘要

近年来,基于深度学习的数字水印框架得到了广泛的研究。现有的方法大多采用基于“编码器-噪声层-解码器”的架构,其中嵌入和提取过程分别由编码器和解码器完成。然而,这种框架的一个潜在缺点是编码器和解码器可能不能很好地耦合,导致编码器可能会将一些冗余特征嵌入到主机图像中,从而影响整个算法的不可见性和鲁棒性。为了解决这一问题,本文提出了一种基于流的鲁棒水印框架。该框架的基本组成部分是一个可同时实现嵌入和提取的可逆上下采样神经块。因此,编码后的特征与解码器需要的特征保持高度的一致性,有效地避免了冗余特征的嵌入。此外,为了保证黑盒扰动的鲁棒性,设计了一个可逆噪声层(INL)来模拟黑盒扰动,并在训练阶段作为噪声层。利用INL的可逆性,在提取前进行预处理,消除了扰动,进一步提高了算法的鲁棒性。大量的实验证明了该框架在视觉质量和鲁棒性方面的优越性。与现有的框架相比,该框架的视觉质量(以PSNR衡量)提高了2dB, JPEG压缩后的提取精度(QF=50)提高了4%以上。此外,提取精度在95%以上,对黑盒扰动具有较强的鲁棒性。
在这里插入图片描述

二、提出的方法

2.1 综述

该方法的主要目的是设计一个鲁棒的水印框架,不仅可以用于白盒扰动,也可以用于黑盒扰动,如图2所示。要训练的主要组件是一个基于流的编码器/解码器(FED),它有几个可逆的神经块。由于FED的结构可逆性,它可以在相同的参数下实现前向编码和后向解码。前向编码过程将主机图像Io中的水印信息M隐藏起来,得到带水印的图像Iem和冗余的Rf。然后,噪声层对水印图像进行有效的扰动处理,并为解码器训练提供扰动图像Id。后向解码过程以经过噪声层处理的扰动图像Id和全零矩阵Rb为输入,对其进行解码,得到提取的水印信号Mex。对于白盒扰动,我们使用现有的可微噪声层进行训练。对于黑盒扰动,我们将采用另一种INN来模拟这种扰动,并使用训练良好的模型作为噪声层,称为INL (invertible noise layer,可逆噪声层),详细内容将在章节中说明。在测试阶段,当面对黑盒扰动时,我们首先使用INL的后向处理将扰动的图像Id去噪为去噪后的图像Ide,并将Ide送入FED进行进一步解码

在这里插入图片描述
图2 所提出方法的框架。该算法的主要架构是基于流的编码器和解码器,它由几个可逆的神经块组成,可用于前向编码过程和后向解码过程。在编码器和解码器之间,执行包含白盒和黑盒扰动的噪声层,以将带水印的图像扰动为用于解码器训练的扰动版本

2.2 基于流的编码器/解码器

如前所述,基于流的网络自然适合于水印任务。基于流的模型有两个基本组成部分,即表示为fθ的前向编码函数和相应的具有相同参数θ的逆函数f−1θ。在前向编码过程中,接收水印矩阵M∈Rh×w×1和主机图像Io∈RH×W×3作为输入,输出水印图像Iem∈RH×W×3和冗余信息Rf∈Rh×w×1。后向解码过程中,将全零矩阵Rb∈Rh×w×1和扰动图像Id∈RH×W×3输入FED进行解码,得到提取的水印Mex∈Rh×w×1和恢复后的图像Ire∈RH×W×3。

FED与n个可逆神经块相结合。图3显示了第i个可逆神经块的结构,它由一个上行子网络Ui和两个下行子网络D1i和D2i组成。Ui的目标是将mi∈Rh×w×1上采样到与图像Io∈RH×W×3相同的大小。D1i和D2i的目标是将样本xi+1∈RH×W×3降至与mi∈Rh×w×1相同的大小。对于前向编码过程中的第i个可逆神经块,输入为mi和xi,输出mi+1和xi+1可表示为:
在这里插入图片描述

其中⊗表示点积运算。经过最后一个可逆神经网络,我们可以得到mn+1和xn+1,它们对应于最终输出,即冗余信息Rf和水印图像Iem。

对于后向解码过程,信息流从第(i + 1)个可逆神经网络到第i个可逆神经网络,如图3所示。其中,第一个可逆神经网络的输入是全零矩阵Rb和噪声层产生的扰动图像Id,后向解码的最后一个可逆神经网络的输出是rn和x’n。对于第i个可逆神经网络,输入为ri+1和x’i +1,输出为ri和x’i,可以用:
在这里插入图片描述
在这里插入图片描述
图3 第i个可逆神经块的主干,由一个上行子网络Ui和两个下行子网络D1i和D2i组成

经过后向解码过程中最后一个可逆神经网络的处理,得到输出Mex,即r1,作为提取的水印。需要说明的是,Rb∈Rh×w×1是一个全零矩阵,因此在解码时,除了扰动图像Id外,不需要任何先验信息,保证了盲提取。在本文中,每个Ui和Di的基本组件由6个“ConvLeakyReLU”块组成,如图2所示。

2.3 噪声层

噪声层是保证鲁棒性的关键。在本文中,我们分别对白盒扰动和黑盒扰动使用不同的噪声层。对于白盒扰动,我们直接使用现有的可微分噪声层(例如JPEGSS (Shin and Song 2017)用于JPEG压缩)。对于黑盒扰动(如风格转移),我们提出了一种新的方法,通过使用INN模拟扰动并将训练良好的模型作为噪声层来实现相应的鲁棒性。具体可以描述如下:

INL的训练数据 为了训练INL(记为Nθd,参数为θd),我们首先通过查询黑盒扰动过程生成训练数据。具体来说,我们输入原始图像I+,得到相应的扰动版本I−。然后使用图像对{I+, I−}作为INL的训练数据

INL体系结构 INL的架构如图4所示。整个INL由k个具有相同结构的可逆噪声块组成,其构造如下:对于正向过程中的第i块,输入为yhi和yli,对应的输出为yhi+1和yli+1,可表示为:
在这里插入图片描述

其中φ, ρ和ω可以是任意函数,我们在(Jing等人2021)中选择密集块,这被证明可以确保良好的表示能力。对于第一个块,{yh1∈RH/2×W/2×9, yl1∈RH/2×W/2×3}的输入分别是图像I+∈RH×W×3经过DWT后的高频分量和低频分量。每个yhi和yli与yh1和yl1保持相同的大小。在最后一个块之后,对输出的yhk+1和ylk+1进行逆DWT,生成最终的图像Id+。然后用输入I−进行反向处理,输出恢复后的图像Ide_。

在这里插入图片描述
图4 可逆噪声层的主干,由几个可逆噪声块组成。每个可逆噪声块由三个模块φ, ρ和ω组合而成,它们是任意函数

INL训练损失 要求扰动后的图像Id+在前向处理过程中应尽可能与原图像I-相似,在后向处理过程中输入原图像I-时,得到的图像Ide_也应与原图像I+相似。在这里,我们使用术语Ldis来最小化每对训练数据之间的平均距离,可以表示为:
在这里插入图片描述

其中Id+等于Nθd(I+),其中Nθd表示INL的正向过程;Ide_等于N−1θd (I−),其中N−1θd表示INL的反向过程。θd表示INL参数,MSE表示均方误差。训练完INL后,将其固定为一个噪声层来训练前FED。

2.4 损失函数

总损失函数由两种不同的损失组成:保证不可见性的图像损失和保证鲁棒性的信息损失

图像损失 前向编码的目的是将水印M嵌入到主机图像Io中,生成水印图像Iem。为了实现不可见性,需要水印图像接近主机图像。为了实现这一目标,图像损失Limage定义如下:
在这里插入图片描述

式中,Iem等价于fθ(Io,M),其中θ表示所拟FED的参数。

信息损失 反向解码的目的是从扰动的图像Id中无损地提取水印。为此,我们定义消息丢失Lmessage如下:
在这里插入图片描述

式中Mex等于f−1θ(Id,Rb),其中f−1θ表示逆向过程。Rb是与M大小相同的全零矩阵。

全部损失 总损失函数Ltotal是图像损失Limage,消息损失Lmessage的加权和,如下:
在这里插入图片描述

这里,λ1和λ2是平衡这两个损失的权重。需要注意的是,我们没有对前向冗余信息Rf和恢复图像Ire进行任何限制,因为这两个变量在整个水印过程中并不重要

三、实现细节

数据集和设置 本文使用DIV2K (Agustsson and Timofte 2017)训练数据集进行训练。我们选择的测试数据集是经典的USC-SIPI (Viterbi 1977)图像数据集。将图像的宽度W和高度H设置为128,水印信息的长度设置为64位,即H和W设置为8。λ1和λ2的参数分别固定为1和10。FED n中可逆神经块的个数设为8,可逆噪声块k的个数设为8。该框架由PyTorch (Collobert, Kavukcuoglu和Farabet 2011)实现,并在一台NVIDIA RTX 3090ti上运行。1对于每个网络的参数优化,我们使用Adam (Kingma and Ba 2015)作为默认超参数,其学习率为1e-4。

基准 为了验证所提出方法的不可见性和鲁棒性,我们将其与几种最先进的(SOTA)水印方法进行了比较,包括三种基于DNN的方法:HiDDeN (Zhu等人2018), TSDL (Liu等人2019)和MBRS (Jia, Fang,和Zhang 2021)。为了测试鲁棒性,我们选择了7种白盒扰动(“Cropout”、“Dropout”、“Gaussian Noise”、“Salt&Pepper Noise”、“Gaussian Blur”、“Median Blur”和“JPEG Compression”)和4种黑盒扰动(“Crayon”、“Heavy Color”、“Reverse Color”、“Sketch”),如图5所示。对于每种扰动,我们训练一个特定的水印网络以更好地说明。值得注意的是,对于黑盒扰动训练,我们使用INL结合“高斯噪声”预训练模型,以获得更好的收敛性。为了公平比较,所有基于DNN的方法都使用相同的数据集和相同的噪声层进行重新训练。所有实验均以尺寸为128×128的图像和尺寸为8× 8比特的水印进行

在这里插入图片描述
图5测试的四个黑盒扰动

评价 为了衡量水印图像的不可见性,我们采用峰值信噪比(peak signal-to-noise ratio,PSNR)作为度量标准,其值越大表示不可见性越好。对于鲁棒性,我们直接使用提取位精度(extraction bit accuracy, ACC)作为评价指标,ACC越大表示鲁棒性越好。

论文地址:Flow-Based Robust Watermarking with Invertible Noise Layer for Black-Box Distortions

源码地址:FIN

在这里插入图片描述

相关文章:

图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读

一、文章摘要 近年来,基于深度学习的数字水印框架得到了广泛的研究。现有的方法大多采用基于“编码器-噪声层-解码器”的架构,其中嵌入和提取过程分别由编码器和解码器完成。然而,这种框架的一个潜在缺点是编码器和解码器可能不能很好地耦合…...

一个Vivado仿真问题的debug

我最近在看Synopsys的MPHY仿真代码,想以此为参考写个能实现PWM-G1功能的MPHY,并应用于ProFPGA原型验证平台。我从中抽取了一部分代码,用Vivado自带的仿真器进行仿真,然后就遇到了一个莫名其妙的问题,谨以此文作为debug…...

C#阿里云消息列队推送消息

推送消息到队列 IMNS nativeclient new Aliyun.MNS.MNSClient(accessKeyId, accessKeySecret, endpoint, _stsToken);var nativeSend nativeclient.GetNativeTopic("SMQ");nativeSend.PublishMessage("推送消息内容"); 需要引用Aliyun.MNS.dll 下载地址…...

Stable Diffusion 模型下载:majicMIX sombre 麦橘唯美

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...

WindowsLinuxmeterepreter渗透命令回顾

最近小编发现在学红队的时候总会忘记一些命令(基础的),导致整天红温,于是今天就来偷个懒记一下(一起回顾一下) 1.Linux 1.查看当前按目录 pwd2.查看文件内容 cat filename.txt3.cd 家族 cd ..|| cd ../…...

KingSCADA实现按钮点击效果

哈喽,你好啊,我是雷工! 在做SCADA项目的时候,按钮是不可缺少的功能,但软件自带的按钮太丑,已经无法满足现如今客户对界面美观度的要求。 这时候就需要UI小姐姐设计美观大气的SCADA界面,但UI设计…...

Python编程-二万字浅谈装饰器原理与装饰器设计模式和函数式编程案例讲解

Python编程-浅析装饰器原理与装饰器设计模式和函数式编程案例讲解 本文制作时基于Python3.11.8与Python3.12.1,存在谬误,请联系修改,希望对你有所帮助 什么是函数式编程 函数式编程(Functional Programming)是一种编程…...

基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)

🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告) 前言 👑由于无线传感器网络(也即是Zigbee)作为🌐物联网工程的一门必修专业课,具有很强的实用性,因此很多院校都开设了zigbee的实训课程;👑同时最近很多使用了我的单片机课…...

【Web】Redis未授权访问漏洞学习笔记

目录 简介 靶机配置 Redis持久化 Redis动态修改配置 webshell 反弹shell Redis写入反弹shell任务 加固方案 简介 Redis(Remote Dictionary Server 远程字典服务器)是一个开源的内存数据库,也被称为数据结构服务器,它支持…...

【JAVA WEB】 css背景属性 圆角矩形的绘制

目录 背景属性设置 圆角矩形 背景属性设置 背景颜色,在style中 background-color:颜色; 背景图片 background-image:url(……) 背景图片的平铺方式 background-repeat: 平铺方式 repeat 平铺(默认)no-repeat 不平铺repeat-x 水平平铺repea…...

Docker-现代化应用部署的利器

一、容器部署的发展 今天我们来说说容器部署。我们知道容器部署的发展大致分三个阶段,下面来介绍一下不同阶段的部署方式的优缺点 物理机部署 优点是可以提供更高的性能、资源控制,也可以提供更好的数据隔离和安全性,因为不同的应用程序运行在…...

「优选算法」:山脉数组的峰顶索引

一、题目 符合下列属性的数组 arr 称为 山脉数组 &#xff1a; arr.length > 3存在 i&#xff08;0 < i < arr.length - 1&#xff09;使得&#xff1a; arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i1] > ... > arr[arr.length - 1] …...

网络安全红队基础建设与介绍

1.ATT&CK相关背景 ATT&CK在各种日常环境中都很有价值。开展任何防御活动时&#xff0c;可以应用ATT&CK防御法&#xff0c;参考攻击者及其行为。ATT&CK不仅对网络防御者提供通用技术库&#xff0c;还为渗透测试和红队提供了基础。提到对抗行为时&#xff0c;这为…...

Java语法学习反射

Java语法学习反射 大纲 基本介绍class的介绍 具体案例 1. 基本介绍 流程图&#xff08;程序在计算机的阶段&#xff09; 反射的主要的类 这个提高效率不大 2. class的介绍 对于第三点&#xff1a;首先类只会加载一次&#xff0c;得到的class的对象&#xff0c;也只有一…...

【MySQL】操作库 —— 库的操作 -- 详解

一、增删数据库 1、创建数据库 create database db_name; 本质就是在 /var/lib/mysql 创建一个目录。 说明&#xff1a; 大写的表示关键字。[ ] 是可选项。CHARACTER SET&#xff1a;指定数据库采用的字符集。COLLATE&#xff1a;指定数据库字符集的校验规则。 2、数据库删除…...

Rust安装——Win10

安装步骤 1、下载RUSTUP-INIT.EXE&#xff08;64-BIT&#xff09; 2、由于国外源下载依赖太慢&#xff0c;因此建议增加win10环境变量配置国内源&#xff0c;增加RUSTUP_DIST_SERVER、RUSTUP_UPDATE_ROOT环境变量即可 RUSTUP_DIST_SERVER随便选择其中的一个源就行&#xff0c;…...

【教学类-46-07】20240212立体春字1.0

背景需求&#xff1a; 在南浔古镇的非遗文化馆里看到一个新年活动折纸——立体春字&#xff0c; 我记得这个就是一个双三角结构折纸&#xff0c;完全可以用15*15的手工纸给孩子们做一套。 折纸教程 双三角折法 【“鼠”你有才】纸艺教学 剪纸——立体春字&#xff08;2月23日…...

Python语言例题集(003)

#!/usr/bin/python3 #猜数字 import random secretNumberrandom.randint(1,20) print(‘我想了一个1到20间的整数&#xff0c;你能猜出来吗&#xff1f;’) for guessesTaken in range(1,7): print(‘猜一下&#xff01;’) guessint(input()) if guess<secretNumber: pr…...

UE5 播放本地MP3、MP4

1.创建一个媒体播放器 2.如创建视频&#xff0c;勾选。 它会多一个媒体纹理给你 3.1 设置音频 在一个actor上添加“媒体音频组件” “音频媒体播放器”赋值给它 3.2播放音频 添加一个音频媒体播放器变量&#xff0c; 赋值 地址使用绝对地址 4.1设置视频 UI上创建一个imag…...

NLP_“预训练+微调大模型”模式和Prompt/Instruct模式的异同

文章目录 “预训练微调大模型”的模式以提示/指令模式直接使用大模型“预训练微调大模型”模式和Prompt/Instruct模式的异同小结 “预训练微调大模型”的模式 经过预训练的大模型所习得的语义信息和所蕴含的语言知识&#xff0c;很容易向下游任务迁移。NLP应用人员可以根据自己…...

普通人应该如何使用GPT

现在GPT4推出的GPTs&#xff0c;包含了各个行业方向&#xff0c;比如DALL&#xff08;绘图&#xff09;、Diagrams&#xff08;图标、流程图&#xff09;、KAYAK&#xff08;航旅助手&#xff09;、Murder Mystery Mayhem&#xff08;侦探扮演&#xff09;、Canva&#xff08;设…...

pycharm像jupyter一样在控制台查看后台变量

更新下&#xff1a;这个一劳永逸不用一个一个改 https://blog.csdn.net/Onlyone_1314/article/details/109347481 右上角运行...

Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。

目录 参数介绍练习环境配置主机清单配置无密码链接ping模块 command 命令模块也可以用来安装点东西看个路径 command 指定目录来 指定命令 参数介绍 chdir    # 在执行命令之前&#xff0c;先切换到该目录 executable # 切换shell来执行命令&#xff0c;需要使用命令的绝对…...

C语言-3

定义指针 /*指针的概念:1.为了方便访问内存中的内容&#xff0c;给每一个内存单元&#xff0c;进行编号&#xff0c;那么我们称这个编号为地址&#xff0c;也就是指针。2.指针也是一种数据类型&#xff0c;指针变量有自己的内存&#xff0c;里面存储的是地址&#xff0c;也就是…...

Quartus工程的qsf配置约束文件介绍

一、qsf文件概述 qsf&#xff1a;Quartus Setting File&#xff0c;是Quartus工程的配置文件&#xff1b; 包含一个Quartus工程的所有约束&#xff0c;包括工程的软件版本信息、FPGA器件信息、引脚约分配、引脚电平分配&#xff0c;编译约束和用于Classic TimingAnalyzer的时…...

【网工】华为设备命令学习(Telnet)

本次实验AR3为我们实际中远程的路由&#xff0c;AR4模拟我们的设备&#xff0c;最终实现Telnet的远程控制路由&#xff01; 本次笔记主要记录Telnet技术实现原理&#xff0c;后续再补充具体配置代码。 Telnet协议是TCP/IP协议族中的一员&#xff0c;是Internet远程登录服务的…...

搜索专项---最短路模型

文章目录 迷宫问题武士风度的牛抓住那头牛 一、迷宫问题OJ链接 本题思路:只需要记录各个点是有哪个点走过来的&#xff0c;就能递推得出路径。记录前驱假设从 1,1 这个点向下走到了2, 1&#xff0c;则将2,1这个点的前驱记为1,1。这样&#xff0c;将整张地图 bfs 后&#xff0c…...

安装PostgreSQL和PostGIS

安装环境 Windows 2019 Standard Server 安装PostgreSQL 安装PostgreSQL 16 安装PostGIS 用PostgreSQL 16对应的PostGIS https://download.osgeo.org/postgis/windows/pg16/ https://download.osgeo.org/postgis/windows/pg16/postgis-bundle-pg16x64-setup-3.4.1-1.exe 创建…...

MySQL-----DCL基础操作

▶ DCL简介 DCL英文全称是Data ControlLanguage(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 DCL--管理用户 ▶ 查询用户 use mysql; select * from user; ▶ 创建用户 ▶ 语法 create user 用户名主机名 identified by 密码 设置为在任意主机上访问…...

Unity报错Currently selected scripting backend (IL2CPP) is not installed

目录 什么是il2cpp il2cpp换mono Unity打包报错Currently selected scripting backend (IL2CPP) is not installed 什么是il2cpp Unity 编辑器模式下是采用.net 虚拟机解释执行.net 代码,发布的时候有两种模式,一种是mono虚拟机模式,一种是il2cpp模式。由于iOS AppStore…...

LeetCode79. Word Search——回溯

文章目录 一、题目二、题解 一、题目 Given an m x n grid of characters board and a string word, return true if word exists in the grid. The word can be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally or vertic…...

Linux命令-blkid命令(查看块设备的文件系统类型、LABEL、UUID等信息)

说明 在Linux下可以使用 blkid命令 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备&#xff08;包括交换分区&#xff09;所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。 语法 blkid -L | -U blkid [-c…...

服务治理中间件-Eureka

目录 简介 搭建Eureka服务 注册服务到Eureka 简介 Eureka是Spring团队开发的服务治理中间件&#xff0c;可以轻松在项目中&#xff0c;实现服务的注册与发现&#xff0c;相比于阿里巴巴的Nacos、Apache基金会的Zookeeper&#xff0c;更加契合Spring项目&#xff0c;缺点就是…...

Javaweb之SpringBootWeb案例之异常处理功能的详细解析

3. 异常处理 3.1 当前问题 登录功能和登录校验功能我们都实现了&#xff0c;下面我们学习下今天最后一块技术点&#xff1a;异常处理。首先我们先来看一下系统出现异常之后会发生什么现象&#xff0c;再来介绍异常处理的方案。 我们打开浏览器&#xff0c;访问系统中的新增部…...

苹果Mac键盘如何将 F1 到 F12 取消按Fn

苹果电脑安装了Win10操作系统之后&#xff0c;F1到F12用不了怎么办的解决方法。本文将介绍一些解决方法&#xff0c;帮助您解决无法使用F1到F12功能键的问题。 使用 Mac系统的人都知道&#xff0c;Mac系统默认是没有开启 F1-F12 的使用的&#xff0c;平时我们使用的系统都可以使…...

linux下ipconfig命令报:command not found 解决方法

参考博文&#xff1a; linux下ipconfig命令报:command not found 解决方法 CentOS7更新yum报Could not resolve host:mirrorlist.centos.org; Unknown error解决办法...

Android导入其它项目慢,Gradel下载失败,另辟蹊径:使用离线gradle加载,附镜像方式

最近在开发中需要测试以前写的小项目。结果忘了换本地的gradle&#xff0c;提示下载失败。换了现在用的gradle&#xff0c;项目能跑了。虽然网上有很多很多教程了&#xff0c;但对我的情况也不是都适用。所以自己记录一下。本人水平有限&#xff0c;有不对的地方请帮我指正&…...

神经语言程式(NLP)项目的15 个开源训练数据集

一个聊天机器人需要大量的训练数据,以便在无需人工干预的情况下快速解决用户的询问。然而,聊天机器人开发的主要瓶颈是获取现实的、面向任务的对话数据来训练这些基于机器学习的系统。 我们整理了训练聊天机器人所需的对话数据集,包括问答数据、客户支持数据、对话数据和多…...

H5 红色文字抖动网址发布页/引导页源码

H5 红色文字抖动网址发布页/引导页源码 源码介绍&#xff1a;一款红色文字抖动网页源码&#xff0c;可用于引导页或网址发布页。 下载地址&#xff1a; https://www.changyouzuhao.cn/10470.html...

MacOS - 菜单栏上显示『音量』

教程步骤 点击打开系统偏好『设置』&#xff0c;并找到『控制中心』 在『控制中心模块』找到『声音』&#xff0c;选择『始终在菜单栏显示』...

深入理解常见的设计模式

目录 引言 1. 单例模式&#xff08;Singleton Pattern&#xff09; 应用场景&#xff1a; 示例代码&#xff1a; . 工厂模式&#xff08;Factory Pattern&#xff09; 应用场景&#xff1a; 示例代码&#xff1a; 3. 观察者模式&#xff08;Observer Pattern&#xff09…...

服务器解析漏洞及任意文件下载

1.服务器文件解析漏洞 文件解析漏洞,是指Web容器&#xff08;Apache、nginx、iis等&#xff09;在解析文件时出现了漏洞,以其他格式执行出脚本格式的效果。从而,黑客可以利用该漏洞实现非法文件的解析。 &#xff08;1) Apache linux系统中的apache的php配置文件在/etc/apac…...

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 &#xff08; 1 &#xff09;合并数组 &#xff08; 2 &#xff09;与解构赋值结合 &#xff08; 3 &#xff09;函数的返回值 &#xff08; 4 &#xff09;字符串 &#xff08; 5 &#xff09;实现了 Iter…...

限制资源使用

限制资源使用 您需要显示对服务器资源的访问来保护Web应用程序和应用程序数据不受未授权用户的访问。在Java EE Web应用程序中,您可以通过在应用服务器中创建用户和用户组来保护资源免受未经授权的访问。您可以为应用程序定义角色并在部署过程中将角色分配给用户。 1. 创建授权…...

结合Next项目实际认识webpack.splitChunks

本文的目的在于简单的介绍webpack的优化功能配置&#xff1a;splitChunks。 webpack5出于“开箱即用”的目的&#xff0c;将大部分曾经要使用插件的功能集成到了config配置中&#xff0c;因此用户只需要了解如何配置&#xff0c;即可达到优化目的&#xff0c;其中最常使用接触的…...

【Tauri】(2):使用Tauri应用开发,使用开源的Chatgpt-web应用做前端,使用rust 的candle做后端,本地运行小模型桌面应用

视频演示地址 https://www.bilibili.com/video/BV17j421X7Zc/ 【Tauri】&#xff08;2&#xff09;&#xff1a;使用Tauri应用开发&#xff0c;使用开源的Chatgpt-web应用做前端&#xff0c;使用rust 的candle做后端&#xff0c;本地运行小模型桌面应用 1&#xff0c;做一个免…...

C#where T :通用的泛型约束(generic constraint)语法

在C#中&#xff0c;where T :是一种通用的泛型约束&#xff08;generic constraint&#xff09;语法&#xff0c;用于限制泛型类型参数T的特定条件。通过使用泛型约束&#xff0c;我们可以对泛型类型参数进行更具体的限制&#xff0c;以确保在使用泛型时满足特定的要求。 wher…...

vue使用Mars3d弹框嵌套video视频/实时视频(m3u8)使用hls.js

下载hls.js http://mars3d.cn/lib/video/hls/hls.js下载 1.首先绘制地图我使用的天地图 async infoMars3d() {const that this;var mapOptions {scene: {center: {lat: 30.435192,lng: 103.936535,alt: 200000,heading: 359,pitch: -79},highDynamicRange: false},// 方式1&a…...

Python爬虫之Ajax数据爬取基本原理

前言 有时候我们在用 requests 抓取页面的时候&#xff0c;得到的结果可能和在浏览器中看到的不一样&#xff1a;在浏览器中可以看到正常显示的页面数据&#xff0c;但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档&#xff0c;而浏览器中…...

osg操控器和键盘切换操控器学习

osg提供了很多操控器,在src\osgGA目录下,cpp文件名含有Manipulator的都是操控器,每个这样的cpp表示一种类型的操控器。 名字带 Manipulator 的类都是操控器; 其中KeySwitchMatrixManipulator.cpp文件实现了键盘切换操控器; 操控器是指:操控相机运动,从而实现场景视图…...