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

图像处理之《基于语义对象轮廓自动生成的生成隐写术》论文精读

一、相关知识

在这里插入图片描述

首先我们需要了解传统隐写和生成式隐写的基本过程和区别。传统隐写需要选定一幅封面图像,然后使用某种隐写算法比如LSB、PVD、DCT等对像素进行修改将秘密嵌入到封面图像中得到含密图像,通过信道传输后再利用算法的逆过程提出秘密信息。而生成式隐写无需选择封面图像,主要使用GAN网络及GAN网络的变体,直接将秘密信息输入到生成器中生成含密图像,通过信道传输再使用提取器提取秘密信息。

可以很明显知道,传统隐写需要封面图像进行修改,很容易被隐写分析器检测到,而生成式隐写无需封面图像,在秘密信息的驱动下生成新的图像,具有较好的抗隐写能力。因此,生成式隐写已成为近年来信息隐藏领域最热门的研究课题之一。

在这里插入图片描述
在本文中,将生成式隐写分成两类:一类是单阶段方法,直接隐藏图像生成过程中的秘密信息,目前的单阶段方法主要是构造纹理、指纹等含密图像,比如第一个是2009年的《移动数据通信中的纹理合成》,第二个是构造大理石纹理含密图像,第三个是构造指纹含密图像。其主要缺点是:合成的含密图像内容不自然,视觉效果不够好,且隐藏容量低。

另外一类是两阶段方法,通常首先将给定的秘密信息编码为特征表示比如GAN的标签、潜变量等,然后通过GAN及GAN的变体将特征表示转换为相应的隐写图像。这幅框架图是我们阅读过的2022年的《基于生成对抗网络和梯度下降逼近的鲁棒无覆盖隐写术》,该文中将秘密信息映射成噪声向量,再通过WGAN-GP生成含密图像。目前的生成式隐写存在的问题主要有:信息提取准确率不高,特征域安全性低,性能差,隐藏容量低。本文主要针对前两个问题进行解决。

在这里插入图片描述

同时,本文通过了两个定义引出了刚才提出的目前生成式隐写存在的问题。

定义1主要是说明解耦特征和交织特征的定义,将一个数据空间映射到另一个特征空间中,如果变量xi满足这个公式为解耦特征,即该空间中的特征独立于其他空间中的特征变化,否则为交织特征,即指特征不易分离和解耦。该公式简单理解为在变量xj的条件下对变量xi本身概率无影响。

因为目前的大部分生成式隐写都将秘密信息映射成交织特征,在提取秘密信息时,特征不易分离,使秘密信息准确性受到影响

定义2主要是通过相对熵的概念来判断一个隐写系统是否为保持分布系统。当载体空间和隐写空间的相对熵为0时,表示该隐写系统为保持分布系统。显然,封面图像和隐写图像的分布完全相同,无法被隐写分析器检测,具有较好的安全性。

因为目前的大部分生成式隐写都是以非保持分布的形式将秘密信息映射成交织特征,且交织特征存在较低的安全性。当对隐写图像进行特征域分析,安全性较低

二、提出方法
在这里插入图片描述
本文提出的框架图如图所示,主要包括信息隐藏和信息提取两个阶段。其中信息隐藏阶段是通过CtrGAN将秘密信息编码成轮廓图像,然后通过BicycleGAN进行轮廓-图像变换生成含密图像;信息提取阶段是通过BicycleGAN的逆向过程进行图像-轮廓变换得到轮廓图像,再根据CtrGAN的逆向过程提取秘密信息。

在这里插入图片描述
本文提出了一种新的GAN模型,称为轮廓生成对抗网络即CtrGAN,所提出的CtrGAN由轮廓生成器和轮廓判别器组成。因为物体轮廓可以看作是由一系列连续的点组成的曲线,物体轮廓生成过程相当于在二维平面上选取一系列轮廓点。又因为LSTM长短期记忆网络可以根据前t−1时刻的数据计算t时刻数据的概率分布,具有强大的序列数据生成能力,所以CtrGAN的生成器采用的是LSTM。判别器使用简单的基于CNN的二分类网络,其中真实轮廓图像是通过HED算法进行提取,使用判别器对真实轮廓图像和生成轮廓图像进行判断。

在这里插入图片描述
算法1是对本文提出的CtrGAN的训练过程,其中对于生成器Gθ的训练主要使用强化学习。在公式3中,MC是一个搜索函数,由蒙特卡洛算法实现。将C1:t−1视为当前轮廓点,在剩下的T-t+1个点中进行N次搜索,并使用公式4计算这N个轮廓点的平均回报值,选择平均回报值最大的轮廓点序列作为生成轮廓点。

对于判别器Dφ的训练是使用Gθ生成的物体轮廓和D中的真实物体轮廓进行对抗性训练,公式7是Dφ的损失函数,使用梯度上升策略进行更新。

在这里插入图片描述
下面通过算法2说明秘密信息隐藏阶段中的基于CPS编码。首先通过加密安全伪随机数生成器CSPRNG生成秘密密钥序列对秘密信息M进行异或运算进行加密得到M’,再将M’等分成l位的片段,并将其转化为十进制。
对于第一个轮廓点c1,需要使用公式9进行特殊处理。我们可以通过代值观察,假设v1=6,l=3和w=h=256,则Ind1=7+8Rand(0,8191),其中Rand(x,y)表示在[x,y]范围内随机选择一个整数的函数。

当Rand(0,8191)=8191时,Ind1 = 7 + 8 * 8191 = 65535;当Rand(0,8191)=0时,Ind1=7 + 8 * 0 = 7。此处公式9主要是为了生成轮廓起始位置不过低,然后选择候选池中第Ind1个点作为c1,其中候选池pool1中由w*h个点组成。

在这里插入图片描述
对于其余轮廓点,将生成轮廓点c1~ci−1输入到CtrGAN的Gθ,使用公式11输出ci的条件概率分布,构建非零值的候选点池pooli。因为在生成轮廓时不能重复使用同一轮廓点。如果一个候选点已被占用,则设置该候选点的概率为0。再使用公式12将均匀分布vi映射到P(ci|ci,ci,…,ci−1)概率分布,其中RS()是拒绝采样函数,其主要功能是将一个变量从均匀概率分布映射到另一个概率分布。最后使用公式13选择pooli中的第Indi个点作为轮廓点vi。

在这里插入图片描述

该图是轮廓生成过程中的基于CPS编码示意图,我们通过一个例子具体理解CPS编码。

假设加密后秘密信息段110101…110…100,且分段长度l=3,则110/101/…/110/…/100,对应十进制为v1=6,v2=5,…,vi=6,…,vn=4。又假设通过公式9,计算v1的Ind1=7+597=600,即选取第600个点作为轮廓点。又假设通过公式12,计算vi的Indi=200,即选取第200个点作为轮廓点。

我们可以得出一个结论:假设总共生成含有n个轮廓点的轮廓线,分段长度为l,则在轮廓线生成过程中的隐藏总量为l*n位。另外感觉这个图有个地方画错了,对于第一个轮廓点v1并没有使用拒绝采样函数进行处理

在这里插入图片描述
秘密信息隐藏的第二个阶段是轮廓-图像变换,主要是通过BicycleGAN完成,它有两部分组成:cVAE-GAN即条件变分自编码器GAN 和cLR-GAN即条件隐回归GAN。其中条件变分自编码器GAN的损失有三部分组成:LKL(E)为生成的潜在编码和高斯分布的KL散度损失、LGANVAE(G,D,E)为cVAE-GAN的对抗损失和LVAE(G,E)为生成图像与真实图像的重建损失L1;条件隐回归GAN的损失有两部分组成:Llatent(G,E)为提取的潜在编码和高斯分布的L1损失和LGAN(G,D)为cLR-GAN的对抗损失。公式14是BicycleGAN的最终损失函数,两个对抗损失无超参数,而其余三个损失对应三个超参数λ、λlatent和λKL,将在实验部分确定其具体值。

BicycleGAN在2017年的论文《走向多模态图像到图像的翻译》被提出,本文只是重新训练和使用。同时生成器和判别器分别采用原文的中设置分别为U-Net和PatchGAN。另外感觉这个图有个地方画错了,对于cVAE-GAN部分,图中只给出两个损失LKL(E)和LVAE(G,E),还应该包括一个对抗损失LGANVAE(G,D,E),在2017年原文画出,但此处并没有标注

在这里插入图片描述
于秘密信息提取阶段,我们首先需要通过BicycleGAN的逆过程从隐写图像中恢复出轮廓图像,再通过算法3从恢复的轮廓图像中进行秘密解码。对于第一个轮廓点v1使用公式15计算,其余轮廓点使用公式16计算。将所有秘密段的十进制值转换为二进制位,并将所有二进制位连接起来,得到秘密比特流M’。最后,用Key对M’进行解密,恢复原来的秘密比特流M。算法3的伪码缺少十进制转二进制的操作

三、实验结果

在这里插入图片描述
本文采用的数据集有三个:(1)T-Zap50K(鞋子图像);(2)从亚马逊下载的产品集(手提包图像);(3)通过谷歌搜索下载的动物集(10,000张动物图像),都是不常见的数据集,同时并将图像处理成256*256大小。
对于前文提及的参数设置分别是BicycleGAN损失函数的三个超参数和秘密段长度l,本文通过消融实验进行说明。首先看超参数λ(LVAE(G,E)为生成图像与真实图像的重建损失L1),从该图的(a)可以看出当λ=10时,信息提取准确率开始稳定不变,从该图的(b)可以看出当λ=8时,生成图像的EMD开始微小波动,为了在信息提取的准确性和生成的隐写图像质量之间取得良好的平衡,设置λ = 10。

在这里插入图片描述
接下来,我们继续看λlatent和λKL。从(a)和(b)的纵轴观察可知,λlatent和λKL对信息提取的准确性和生成的隐写图像质量的影响比较小,小于超参数λ,因为这两个超参数都是针对衡量潜在编码和高斯分布之间的差异。同理由图可知,将超参数λlatent和λKL设置为1和0.01,所提方法达到最优。

最后观察秘密段长度l,l表示每个轮廓点选择过程中隐藏的比特数,随着l的增大,信息容量会显著增加,但信息提取的准确性和生成图像的质量会下降。所以本文测试l取2,4,6,8时的条件下各种指标的结果,均表现较好,EAR都在98%以上,EMD都在0.02左右。

在这里插入图片描述
我们从有效载荷的角度看一下本文所提方法的隐藏容量,分别计算l去2,4,6,8时的条件下的有效载荷,前面已经说明图像大小为256*256。由计算结果可知,当l=2时,有效载荷为0.0078125bpp;当l=4时,有效载荷为0.03125bpp。将该结果与2022年论文《基于生成对抗网络和梯度下降逼近的鲁棒无覆盖隐写术》对比可知,是比不过红色框的有效载荷结果,原因可能是他们设置的图像大小比较小,大部分为64 * 64,更有16 * 16

在这里插入图片描述
该表将本文方法与传统基于嵌入隐写方法和生成式隐写方法在信息提取精度进行比较。虽然在2*256位条件下,ISN的信息提取精度略高于本文提出的方法,但总体上高于其他方法。因为在基于嵌入的隐写方法中,秘密信息以有损方式编码和嵌入;生成式隐写方法将秘密信息编码为潜在噪声向量或抽象结构向量等交织特征,提取时难以分离。这些对比的方法有很多都是我们阅读过的论文,比如Deep-Stego、HiNet、ISN、IDEAS。

在这里插入图片描述
该表表示不同隐藏有效载荷的不同隐写方法对SRM和XuNet隐写分析器的反隐写分析能力,所使用的指标PE,当PE = 0.5时,抗隐写能力性能最佳。本文所提出方法的PE值最接近0.5。这表明在不同的隐藏载荷下,该方法对隐写分析器具有最高的抗检测能力。

同时可以发现,基于嵌入的隐写算法的抗隐写能力低于生成隐写术算法。主要原因是基于嵌入的隐写方法不可避免地留下修改痕迹,这将导致它们很容易被隐写分析器检测到

在这里插入图片描述
该表表示不同方法在特征域上的抗检测性,由表可知在高容量下,这些方法在特征域很容易被隐写分析器检测到,因为目前的生成隐写术直接以非保持分布的方式将秘密信息编码为特征,而我们的方法是以保持分布的方式实现秘密信息。

图像域和特征域抗隐写分析的区别:1)图像域直接对图像进行分析,而特征域将图像映射到另一个空间再分析该空间的特征;2)图像域中隐写算法对分析算法影响大,而特征域对所有隐写算法具有通用性

在这里插入图片描述
该表表示不同隐藏载荷下不同方法生成的隐写图像的FID值。其中FID越小,生成的隐写图像质量越高,与其他生成隐写术方法相比,所提出的方法通常具有较小的FID值。

下图是生成图像的展示,很难直接区分没有信息隐藏的生成图像和有信息隐藏的生成图像,涉及到前面提到的鞋子和手提袋数据集,但没有展示动物数据集

在这里插入图片描述
该表表示在不同类型的图像攻击下比如强度变化、对比度增强、椒盐噪声、高斯噪声、JPEG压缩和图像消毒,不同方法的信息提取精度。从表中可以看出,在这些图像攻击下,该方法的信息提取精度远高于SWE和ISWE。但个人存在一个问题:没有使用常见的图像攻击如右图所示,比如平移、旋转、裁剪等

四、总结

在这里插入图片描述

论文地址:Generative Steganography via Auto-Generation of Semantic Object Contours

中文参考论文地址:基于轮廓自动生成的构造式图像隐写方法

相关文章:

图像处理之《基于语义对象轮廓自动生成的生成隐写术》论文精读

一、相关知识 首先我们需要了解传统隐写和生成式隐写的基本过程和区别。传统隐写需要选定一幅封面图像,然后使用某种隐写算法比如LSB、PVD、DCT等对像素进行修改将秘密嵌入到封面图像中得到含密图像,通过信道传输后再利用算法的逆过程提出秘密信息。而生…...

Java 字节流

一、输入输出流 输入输出 ------- 读写文件 输入 ------- 从文件中获取数据到自己的程序中,接收处理【读】 输出 ------- 将自己程序中处理好的数据保存到文件中【写】 流 ------- 数据移动的轨迹 二、流的分类 按照数据的移动轨迹分为:输入流 输出流…...

华硕电脑怎么录屏?分享实用录制经验!

“华硕电脑怎么录屏呀,刚买的笔记本电脑,是华硕的,自我感觉挺好用的,但是不知道怎么录屏,最近刚好要录一个教程,怎么都找不到在哪里录制,有人能教教我吗?” 随着电脑技术的不断发展…...

python学习--python的异常处理机制

try…except try:n1int(input(请输入一个整数))n2int(input(请输入另一个整数))resultn1/n2print(结果为,result) except ZeroDivisionError: print(除数不能为0)try…except…else 如果try块中没有抛出异常,则执行else块,如果try中抛出异常&#xff0…...

nacos+Dubbo整合快速入门

官网&#xff1a;Nacos Spring Boot 快速开始 下载下载链接启动&#xff1a;进入bin目录&#xff0c;startup.cmd -m standalone引入依赖 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>3.0.9…...

QT实现钟表

1、 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPaintEvent> //绘制事件类 #include <QDebug> //信息调试类 #include <QPainter> //画家类 #include <QTimerEve…...

准备我们心爱的IDEA写Jsp

JSP学习 一、准备我们心爱的IDEA new一个项目&#xff1a;New Project --> Next -->Next -->Finsh 二、配置好服务器Tomcat-9.0.30 1.> 在WEB-INF下创建一个Lib包 将jsp-api.jar复制进去&#xff0c;并使其生效 未生效前&#xff1a; 生效过程&#xff1a; 2.>…...

将近 5 万字讲解 Python Django 框架详细知识点(更新中)

Django 框架基本概述 Django 是一个开源的 Web 应用后端框架&#xff0c;由 Python 编写。它采用了 MVC 的软件设计模式&#xff0c;即模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。在 Django 框架中&am…...

Arcgis提取每个像元的多波段反射率值

Arcgis提取每个像元的多波段反射率值 数据预处理 数据预处理阶段需要对遥感图像进行编辑传感器参数、辐射定标、大气校正、正射校正&#xff0c;具体流程见该文章 裁剪研究区 对于ENVI处理得到的tiff影像&#xff0c;虽然是经过裁剪了&#xff0c;但是还存在黑色的背景值&a…...

JavaScript面试题整理(一)

数据类型篇 1、JavaScript有哪些数据类型&#xff0c;它们的区别是什么&#xff1f; 基本数据类型&#xff1a;number、string、boolean、undefined、NaN、BigInt、Symbol 引入数据类型&#xff1a;Object NaN是JS中的特殊值&#xff0c;表示非数字&#xff0c;NaN不是数字…...

数据结构:树和二叉树之-堆排列 (万字详解)

目录 树概念及结构 1.1树的概念 1.2树的表示 ​编辑2.二叉树概念及结构 2.1概念 2.2数据结构中的二叉树&#xff1a;​编辑 2.3特殊的二叉树&#xff1a; ​编辑 2.4 二叉树的存储结构 2.4.1 顺序存储&#xff1a; 2.4.2 链式存储&#xff1a; 二叉树的实现及大小堆…...

爬虫入门基础:深入解析HTTP协议的工作过程

目录 一、HTTP协议简介 二、HTTP协议的工作过程 三、请求方法与常见用途 四、请求头与常见字段 五、状态码与常见含义 六、进阶话题和注意事项 总结 在如今这个数字化时代&#xff0c;互联网已经成为我们获取信息、交流和娱乐的主要渠道。而在互联网中&#xff0c;HTTP协…...

k8备份与恢复-Velero

简介 Velero 是一款可以安全的备份、恢复和迁移 Kubernetes 集群资源和持久卷等资源的备份恢复软件。 Velero 实现的 kubernetes 资源备份能力&#xff0c;可以轻松实现 Kubernetes 集群的数据备份和恢复、复制 kubernetes 集群资源到其他kubernetes 集群或者快速复制生产环境…...

基于Python开发的火车票分析助手(源码+可执行程序+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的火车票分析助手&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;…...

旺店通·企业奇门与金蝶云星空对接集成订单查询连通销售订单新增(旺店通销售-金蝶销售订单-小红书)

旺店通企业奇门与金蝶云星空对接集成订单查询连通销售订单新增(旺店通销售-金蝶销售订单-小红书) 接通系统&#xff1a;旺店通企业奇门 慧策最先以旺店通ERP切入商家核心管理痛点——订单管理&#xff0c;之后围绕电商经营管理中的核心管理诉求&#xff0c;先后布局流量获取、会…...

卡尔曼滤波应用在数据处理方面的应用

卡尔曼滤波应用到交通领域 滤波器介绍核心思想核心公式一维卡尔曼滤波器示例导入所需的库 滤波器介绍 卡尔曼滤波器是一种用于估计系统状态的数学方法&#xff0c;它以卡尔曼核心思想为基础&#xff0c;广泛应用于估计动态系统的状态和滤除测量中的噪声。以下是卡尔曼滤波器的核…...

PROFIBUS主站转ETHERCAT协议网关

产品介绍 JM-DPM-ECT是自主研发的一款PROFIBUS-DP主站功能的通讯网关。该产品主要功能是将各种PROFIBUS-DP从站接入到ETHERCAT网络中。 本网关连接到PROFIBUS总线中作为主站使用&#xff0c;连接到ETHERCAT总线中作为从站使用。 产品参数 技术参数 ◆ PROFIBUS-DP/V0 协议符…...

Vue路由的使用及node.js下载安装和环境搭建

目录 一、Vue路由 1.1 简介 ( 1 ) 特点 ( 2 ) 作用 1.2 实例 ( 1 ) 引入 ( 2 ) 组件 ( 3 ) 关系 ( 4 ) 路由 ( 5 ) 事件 ( 6 ) 锚点 二、nodeJS 2.1 下载 2.2 安装 2.3 环境搭建 新增 添加 测试 配置 运行 一、Vue路由 1.1 简介 Vue路由是Vue.…...

【算法训练-二叉树 三】【最大深度与直径】求二叉树的最大深度、求二叉树的直径

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【求二叉树的直径】&#xff0c;使用【二叉树】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件…...

查看linux是centos还是Ubuntu

查看linux是centos还是Ubuntu 命令&#xff1a;cat /etc/os-release...

win10怎么关闭自动更新,这个方法你知道吗?

Windows 10 操作系统自动更新是确保系统安全性和性能的关键功能。然而&#xff0c;有时用户可能希望手动控制更新&#xff0c;因此关闭自动更新可能是一个有用的选项。在本文中&#xff0c;我们将介绍win10怎么关闭自动更新的两种方法&#xff0c;以满足用户不同的需求。 方法1…...

「语音芯片」常见的OTP芯片故障分析

OTP语音芯片是指一次性可编程语音芯片,语音只能烧写一次&#xff0c;适合应用在不需要修改语音、语音长度短的场合&#xff0c;从放音的长度上可以分为20秒、40秒、80秒、170秒、340秒。语音芯片的特点是单芯片方案、价格便宜&#xff0c;适合批量生产&#xff0c;即便是小数量…...

孩子写作业买什么样台灯合适?适合孩子读写台灯推荐

现在孩子的普遍都存在视力问题&#xff0c;而导致孩子近视的原因可能跟光线太强或太弱、不用的用眼习惯、长时间的过度用眼等因素有关&#xff0c;根据数据表明目前中国近视患者人数达到6亿多&#xff0c;其中儿童青少年的视力不良率甚至高达八成&#xff0c;所以在孩子的学习道…...

DBAPI插件开发指南

DBAPI插件开发指南 插件市场 您可以去插件市场下载插件 插件的作用 DBAPI的插件分4类&#xff0c;分别是数据转换插件、缓存插件、告警插件、全局数据转化插件 缓存插件 对执行器结果进行缓存&#xff0c;比如SQL执行器&#xff0c;对查询类SQL&#xff0c;sql查询结果进…...

线程池使用之自定义线程池

目录 一&#xff1a;Java内置线程池原理剖析 二&#xff1a;ThreadPoolExecutor参数详解 三&#xff1a;线程池工作流程总结示意图 四&#xff1a;自定义线程池-参数设计分析 1:核心线程数(corePoolSize) 2:任务队列长度(workQueue) 3:最大线程数(maximumPoolSize) 4:最…...

Puppeteer无头浏览器:开启自动化之门,掌握浏览器世界的无限可能

大概还是入门期&#xff0c;我曾用Puppeteer做爬虫工具以此来绕过某网站的防爬机制。近期有需求要做任意链接网页截图&#xff0c;像这种场景非常适合用Puppeteer完成。无头浏览器我已知的还有Selenium。 完成截图需求踩的最大的坑不是具体的逻辑代码&#xff0c;而是Docker部…...

Ubuntu 23.10/24.04 LTS 放弃默认使用 snap 版 CUPS 打印堆栈

导读Canonical 的开发者、OpenPrinting 的项目负责人 Till Kamppeter 今年 5 月表示&#xff0c;计划在 Ubuntu 23.10&#xff08;Mantic Minotaur&#xff09;上默认使用 Snap 版本的 CUPS 打印堆栈。 不过经过数月的测试&#xff0c;官方放弃了这项决定。Ubuntu 23.10&#x…...

Linux CentOS7 history命令

linux查看历史命令可以使用history命令&#xff0c;该命令可以列出所有已键入的命令。 这个命令的作用可以让用户或其他有权限人员&#xff0c;进行审计&#xff0c;查看已录入的命令。 用户所键入的命令作为应保存的信息将记录在文件中&#xff0c;这个文件就是家目录中的一…...

XC5350A 单节锂电池保护芯片 过放2.9V/2.8V/2.4V保护IC

XC5350A产品是一个高集成度的鲤离子/聚合物电池保护解决方案。XC5350A包含先进的功率MOSFET&#xff0c;高精度电压检测电路和延迟电路XC5350A放入一个超小型SOT23-5封装&#xff0c;只有一个外部元件使其成为在电池组有限的空间的理想解决方案。 XC5350A具有包括过充&#xff…...

单片机论文参考:1、基于单片机的电子琴

摘要 随着社会的发展进步&#xff0c;音乐逐渐成为我们生活中很重要的一部分&#xff0c;有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲&#xff0c;作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物&#xff0c;是一…...

b2c网站开发多少钱/二十条优化措施全文

部分内容参考&#xff1a;http://www.aspbc.com/tech/showtech.asp?id1256 在开发的过程中&#xff0c;经常使用window.onload和body onload两种&#xff0c;很少使用document.onreadystatechange&#xff0c;但这次写了一个js&#xff0c;使用window.onload和body.onload都实…...

html网站标题怎么做的/排名优化工具下载

冒泡法 第1趟&#xff1a;依次比较0和1、1和2、2和3...n-2和n-1索引处的元素&#xff0c;发现前面的大于后面的&#xff0c;就交换它们&#xff0c;这样一趟下来&#xff0c;最大的…...

广州抖音推广/seo优化工具推荐

当线程200个请求数据同时越过redis 缓存访问sql 时 数据库顿时挂掉 设置错误率 值越少数组空间占用越大 转载于:https://www.cnblogs.com/zuochanzi/p/9378202.html...

做外贸生意用哪个网站/seo关键词推广价格

用户故事可能是捕获产品功能的最流行的敏捷技术&#xff1a;使用用户故事很容易。但讲述有效的故事可能很难。以下十个提示可帮助您创建好故事。 1位用户先到先得 顾名思义&#xff0c;用户故事描述了客户或用户如何使用该产品; 从用户的角度讲述它。此外&#xff0c;用户故事…...

西安网站开发费用/seo优化神器

一&#xff0c;简单介绍&#xff1a;防火墙防火墙&#xff08;Firewall&#xff09;是一项协助确保信息安全的设备&#xff0c;会依照特定的规则&#xff0c;允许或是限制传输的数据通过。防火墙可以是一台专属的硬件也可以是架设在一般硬件上的一套软件。防火墙是用来阻挡外部…...

链家在线网站是哪个公司做的/百度一下你就知道了官网

首先注册一个代理&#xff08;firewall&#xff09;&#xff1a; options->global options->firewall->add->socks5 在会话中设置成当前的代理&#xff1a; session->Session Options ->ssh2&#xff0c;在下拉菜单选择代理。...