【基于交叉注意力的泛锐化深度展开迭代网络】

news2024/11/18 5:35:43

CADUI: Cross-Attention-Based Depth Unfolding Iteration Network for Pansharpening Remote Sensing Images

(CADUI:基于交叉注意力的泛锐化深度展开迭代网络)

全色锐化是遥感成像系统获取高分辨率多光谱图像的重要技术。它主要通过融合低分辨率多光谱(LRMS)图像和高空间分辨率全色(PAN)图像,获得光谱分布均匀、空间细节丰富的HRMS图像。因此,如何完整地提取特征并重建高质量的图像是获得理想的融合图像的关键。在这篇文章中,我们提出了一种新的泛锐化方法,称为基于交叉注意的深度展开迭代网络泛锐化遥感图像(CADUI),它通过迭代优化深度先验正则化并将其与交叉注意机制相结合来实现所需的融合效果。网络由两部分组成:深度先验正则化(DEIN-Block)和交叉注意机制(CAFM-Block)的优化迭代。其中,DEIN-Block引入深度先验作为隐式正则化,通过迭代提高重建图像相关数据的适应性和表示能力。CAFM-Block通过交叉注意融合和通道注意融合实现了双分支融合,获得了更好的融合效果。在标准数据集上进行模拟实验和真实的实验:QuickBird(QB)和WorldView-2(WV 2)。通过定量比较和定性分析,证明该方法优于现有方法。

INTRODUCTION

REMOTE传感信息从宏观上看具有人类无法企及的优势,对当今人们的工作和生活不可或缺。随着卫星传感器技术的飞速发展,遥感图像在学术领域、军民领域、医学领域、社会学领域、生态学领域等领域得到了广泛的应用。遥感信息的重要性不言而喻。对于需要遥感信息的人们来说,遥感信息的准确性极大地影响着工作和生活的质量。其精度的提高可以大大保存人力、物力、财力的产出。然而,正如许多人所认识到的那样,遥感传感器在空间分辨率和光谱分辨率之间存在固有的折衷。由于不同传感器的各种物理和技术限制,不可能用单个传感器获得高空间和光谱图像。当前的远程卫星通常配备有两个成像传感器:多光谱(MS)和全色(PAN)传感器,其分别产生低空间分辨率MS和PAN图像。其中,低分辨率MS(LRMS)图像可以提供丰富的光谱信息,而足够的光谱分辨率可以识别地物。空间分辨率是用于描述图像特征的指标,反映图像的空间细节。PAN图像可以提供丰富的空间信息。高分辨率MS(HRMS)图像可以提供生动的空间信息和足够的光谱分辨率。但由于成像设备的技术限制。提供所需的高空间分辨率MS图像具有挑战性。Pansharing试图通过融合LRMS图像和PAN图像来构建HRMS图像。图1示出了卫星提供的MS和PAN图像,以及各种全色锐化结果图像。目前,全色锐化被认为是一些图像处理任务的初始步骤,例如变化检测和土地覆盖分类,这表明了全色锐化在实际应用中的重要作用。
在这里插入图片描述
在过去的几十年中,已经提出了各种泛锐化方法。传统的全色锐化方法可以分为四类:基于元件替换的方法(基于CS的方法),基于多分辨率分析方法的方法(基于MRA的方法),基于变分优化的方法(基于VO的方法),以及基于深度学习(DL)的方法。基于CS和MRA的方法构成经典方法。随着先进计算能力的发展,以VO类和DL类为代表的方法正在蓬勃发展。
基于CS的方法:基于CS的锐化方法是最经典和主要的全色锐化方法。它的发展主要包括传统认识和一般认识两个阶段:1)传统认知是以正向投影变换CS反投影变换(也称为投影替换方法)为特征的过程,2)新认知的一般形式是基于不区分正向变换和逆变换的统一框架。基于CS的方法的主要思想是在合适的空间中分离MS图像的空间信息和光谱信息,并进一步将其与PAN图像融合。典型的基于CS的方法包括主成分分析(PCA)方法、强度-色调-饱和度(IHS)方法、自适应Gram-Schmidt(GSA)算法和Gram-Schmidt(GS)算法。
基于MRA的方法:与上述基于CS的方法类似的基于MRA的方法也从传统理解演变为一般理解,其中传统理解是严格基于MRA算法的多分辨率分解-融合-图像重建的三步过程,而一般理解具有统一融合框架的特点。代表性MRA方法包括具有调制传递函数匹配滤波器(HTF-GLP)的广义拉普拉斯金字塔、高通滤波器(HPF)、提取小波变换(DWT)和基于平滑滤波器的强度调制(SFIM)。其主要原理是基于高频注入的量,其中提取的PAN图像的空间结构被注入到质谱图像中,导致具有均匀的光谱和丰富的空间细节的图像。最近,Wang等人提出了基于不同时间的MS和PAN图像的基于变化因子的MRA通用锐化方法,有效地解决了MRA方法由于无法有效地分析不同时间的MS和PAN图像之间的多时相失准而导致融合结果不理想的问题。
基于VO的方法:基于VO的方法基于变分理论,并通过最小化损失函数将全色锐化任务视为病态问题。Li和Yang 首先提出了一种稀疏表示泛锐化方法,该方法在PAN空间中表示非局部关系,并在MS空间中重建HR补丁。Cheng等人进一步采用了两步学习策略来提高其表达能力。后来,各种正则化项,如非局部、贝叶斯正则化和全变分算子被配置来表示系数优化。然而,这些方法的性能是有限的浅层非线性表达式的模型。研究结果表明,属于VO和MRA类别的方法往往具有更长的运行时间,而基于CS的方法通常表现出更快的运行时间。Wen等人提出了一个新的变分模型LNM-PS。LNM-PS旨在通过简单地将传统的光谱保真度项集成到新的空间保真度项来进一步提高变分优化模式的性能。
基于DL的方法:它主要基于特征提取/表示阶段,网络参数的训练,以及对真实世界数据的测试。基于DL的方法在各个领域取得了优异的结果,如图像超分辨率、图像分割、土地覆盖和图像融合。在遥感图像全色锐化领域,Masi等人提出了一种基于超分辨率卷积神经网络(CNN)的全色锐化神经网络[概率神经网络(PNN),使用三层网络架构来处理全色锐化MS图像的任务。He等人提出了动态泛锐化CNN(DyPNNs)。DyPNN遵循全色锐化CNN范例,生成空间自适应规则,以设计基于内部和外部连接的两组DyPNN,以获得良好的动态全色锐化结果。Peng等人提出了PSCFNet,这是一种新的端到端深度耦合反馈网络,它使用不同的特征提取块从PAN图像和MS图像中提取特征,然后通过耦合和反馈机制实现不同层次的图像特征的高质量融合。Hou等人提出了一种基于Swin Transformer(ST)的PAN引导多分辨率融合(PMRF)网络,旨在将从PAN图像中提取的多分辨率特征与从MS图像中提取的特征进行融合,引导空间分辨率的逐步提高以获得良好的融合效果。Javan等人提出了一种用于高保真PAN锐化的监督-无监督联合融合网络(SUFNet)。该方法旨在充分利用原始PAN和MS图像的空间和光谱信息,从而获得出色的全色锐化结果。为了提高图像的质量,清晰度,空间和光谱信息,我们引入了一个交叉注意为基础的深度展开迭代网络泛锐化遥感图像称为CADUI。这个概念的灵感来自算法展开技术。还在QuickBird(QB)和WorldView-2(WV 2)数据集上进行了实验,以评估网络性能。本研究的主要贡献如下
CADUI首先将深度先验结合到神经网络中以重建图像,随后采用注意力机制来提取特征以进一步细化重建图像。在这里插入图片描述

1)使用深度先验正则化方法需要捕获细节的特征图。认为卫星获得的MS图像和PAN图像分别包含丰富的光谱信息和精细的空间细节。为了充分利用MS图像和HRMS图像中包含的细节特征,本文提出了基于深度先验的四个优化问题,利用梯度投影法可以有效地解决这些问题。我们已经将这四个步骤推广到四个神经块的基础上的算法展开技术。DEIN块是通过交替堆叠这四个块来构建的,如图2所示。通过有效地提高模型的泛化性能和表示能力,深度先验允许我们提出的DEIN-Block准确地保留PAN图像的底层细节,并有效地表征MS图像的内在结构。
2)为了提高融合图像的分辨率,我们引入U形残差链接模块(UKDU),它可以提取多尺度空间细节信息。为了更好地利用MS图像中的空间-光谱相关性,我们提出了残余注意力增强模块(ACDU)。我们可以通过将UKDU和ACDU合并到DEIN-Block的两个神经块中来实现良好的融合结果。
3)我们提出了一种新的图像融合块,CAFM块,它结合了交叉注意融合(CR融合)模块,以补偿由于曝光不足或曝光过度的内容损失,利用图像的亮点。CAFM-Block由两部分组成。首先,CR-Fusion用于通过利用突出信息来增强绘画的曝光不足部分。其次,通道注意融合(CH-Fusion)被设计为执行双分支融合,产生良好的融合结果。

RELATED WORK

Deep Learning-Based General Sharpening Methods

由于DL算法在非线性映射学习和特征提取方面的突出能力,在全色锐化中得到了广泛的应用。DL网络训练侧重于学习观测值与融合图像之间的转换关系,并在监督下训练所有参数,以获得理想的学习网络。Huang等人首先提出了一种基于DL的全色锐化方法,其处理过程是基于预处理网络得到融合图像。随着DL的发展,出现了几种更成功的基于CNN的图像融合方法。这些方法利用基于CNN的架构来在特征级集成LDR图像以生成颜色一致的HDR图像。Prabhakar等人构建了一个具有两个卷积层的网络,以从输入中提取和融合低级特征。然后,使用接下来的三个卷积层来生成HDR图像。然而,简单地融合两个图像将遭受细节损失或无法监控图像质量,并且不能保证图像的质量。Yin等人将从高斯金字塔和拉普拉斯金字塔提取的图像先验与他们提出的编码器-解码器架构相结合,该架构将拉普拉斯先验与解码器特征融合,高斯先验与编码器特征融合,以补偿融合过程中的细节损失。Luo等人提出了一种新的基于无监督CNN的全色锐化方法。具体而言,他们设计了一种迭代网络架构,其中采用PAN引导策略和一组跳过连接(SC)来连续提取和融合输入的特征,从而增强了信息的重用和传输。Seo等人提出了一种用于全色锐化的配准学习的无监督学习框架,称为UPSNet。UPSNet可以有效地在原始尺度上训练,并隐式学习PAN和MS图像之间的配准,而不涉及任何专门设计的配准模块。Ciotola等人提出了一个基于DL的全色锐化的全分辨率训练框架。该框架是完全通用的,可以用于任何基于DL的全色锐化模型。训练发生在高分辨率域,仅依赖原始数据,从而避免任何信息丢失。
Masi等人提出了一种基于超分辨率CNN的全色锐化PNN。PNN网络利用三个卷积单元映射LRMS、PAN和HRMS图像之间的关系。在PNN的启发下,大量基于DL的全色锐化研究应运而生。例如,PanNet使用Resnet中的残差学习模块在图像重建期间直接接收光谱信息。MSDCNN增加了基于残差连接的多尺度模块,采用多级特征融合和残差连接进行特征提取,在提取深层特征的同时进行更全面的图像重建工作,减少特征损失。Fu等人引入了群组的多尺度扩展卷积以获得多尺度上下文特征。SRPPNN参考了SRCNN 在图像超分辨率领域的设计思想。TFNet使用超分辨率方案来融合特征域中的空间和光谱特征,以解决一般的锐化问题。Shao和Cai设计了一种具有两个分支的网络结构,称为RSIFNN,用于提取PAN和MS图像的空间和光谱特征,并使用提取的特征最终生成融合图像。PSGAN 、RED-cGAN和PanGAN都基于生成对抗网络,使用生成器和鉴别器来保留PAN图像的空间信息和MS图像的光谱信息。

Attention Mechanism

目前,注意机制已被证明可以提高模型的性能。注意机制广泛应用于计算机视觉和自然语言处理。注意机制分为空间域、混合域和通道域。注意机制的作用主要是将焦点区域集中在寻找有用信息和抑制无用信息上。早期,挤压和激励网络SENet主要作为可视化模型来探索频道注意机制,主要是给不同的频道分配不同的权重,将SE块堆叠成块,形成SENet网络架构。该算法利用特征信道上的注意力模型,通过学习信道关系和校正信道权值,自适应地选择重要信息,抑制无用信息。Zhang等人提出了一种用于图像超分辨率的通道注意机制,并通过利用通道之间的相互依赖性来自适应地调整通道模式的特性。Wang等人将自我注意力引入图像处理中,以提高网络学习效率,避免信息丢失。当将自我注意力添加到网络模型中时,可以提高结果的质量和速度。Liu等人提出了一种用于图像超分辨率的基于注意力的反投影网络。该模块使用空间注意力块来学习不同层的元素之间的相关性。近年来,研究人员提出了高效信道注意网络(ECANet)和卷积块注意模块(CBAM)。不仅可以任意加入CNN训练网络进行端到端训练,而且ECANet和CBAM都是轻量级模型,几乎不增加计算量,可以使网络专注于特征图像中的关键信息。

MODEL CONSTRUCTION

在本节中,我们将描述和解释我们提出的CADUI的概要架构和具体算法,用于解决PAN图像和MS图像的融合和全色锐化问题,根据图2所示的网络结构。由于MS图像包含了丰富的光谱信息,而PAN图像又包含了丰富的空间信息,因此,遥感图像的全色锐化是将PAN图像和MS图像按照一定的规则进行融合,以融合空间细节和光谱信息。在这里插入图片描述
在提高融合结果空间分辨率的基础上,尽可能保留光谱信息,最终得到HRMS图像。第二节提出的提取空间细节的方法不能充分反映较复杂的空间和光谱变化。我们提出了CADUI,因为在不同的光谱信息和方向的空间细节的差异。该方法首先采用深度先验正则化方法将空间细节特征映射注入待处理图像中,并分别对PAN和MS图像进行模型生成,进行图像重建。处理MS和PAN图像的模型生成块依次迭代以形成我们提出的DEIN-Block迭代神经块组。最后,对特征图进行卷积,并使用ReLU函数优化训练过程

DEIN-Block

我们的深度先验正则化方法的利用需要使用注入细节的特征图。为了实现这一点,我们对LRMS图像S ∈ R h × w × C R^{h×w×C} Rh×w×C(其中h、w和C表示LRMS图像的高度、宽度和通道数)进行上采样,以获得MS图像S_∈ R H × W × C R^{H×W×C} RH×W×C,其具有与PAN图像A∈ R H × W R^{H×W} RH×W相同的大小。然后,我们用高分辨率的PAN图像替换MS图像的空间细节分量。因此,我们提出的方法涉及到增加空间细节ε∈ R H × W × C R^{H×W×C} RH×W×C到S,以获得HRMS图像H∈ R H × W × C R^{H×W×C} RH×W×C在这里插入图片描述
我们使用深度先验正则化的知识来求解上述方程。大多数现有的基于优先级的方法从贝叶斯的角度考虑PAN锐化作为优化问题。使用最大后验概率(MAP)的方法将最大化后验概率转换为最小化能量函数。方法如下:在这里插入图片描述
Ik =(I1,I2,…,Im)。正则化器Φ(I)和Ψ(H)分别表示I和H的先验结构,这使得我们的模型具有更好的预测能力,并且不会由于模型的复杂性而产生过拟合。γ和κ是正则化参数。DEIN-Block旨在开发一种新的算法,该算法通过使用近端梯度技术交替更新I和H来解决(4)。为了实现这一点,我们将(4)划分为以下两个子问题:在这里插入图片描述
为了确保融合的结果图像更好地反映MS图像和PAN图像的详细特征,我们制定了两个额外的优化问题深度先验正则化。这些问题是MS图像和PAN图像生成模块的原因,并且嵌入在(5)和(6)之间。我们假设LRMS图像是通过对HRMS图像进行模糊和下采样而生成的,并且PAN图像是由HRMS图像的光谱响应产生的。在这里插入图片描述
(5)的最终特征结果用于处理MS图像并形成PAN图像模型的主要输入。来自模型输出的重建HRMS图像然后用于在(6)中再处理HRMS图像。然而,上述方程不适用,其配方惩罚优化如下:在这里插入图片描述
为了充分利用深度先验,我们将(7)分成以下两个子方程,每个子方程分别考虑LRMS图像感知问题和PAN图像感知问题,在这里插入图片描述
总之,我们的DEIN-Block网络的目标是使用一种新算法来交替公式(4)和(7)中的1、2、3和4。我们的网络由T个阶段组成,T对应于求解公式(4)和(7)的迭代次数。整个DEIN-Block定义为在这里插入图片描述

  1. I-Block:该模块对应于由子公式(5)解决的问题,并且主要目标是提取PAN图像中的空间细节特征。通常,求解子式(5)的传统优化方法主要是迭代求解。因此,我们通过迭代方法将公式(5)更新为以下步骤:在这里插入图片描述
    据研究,与先验人工正则化相比,深度先验正则化能够更好地描述图像的结构,能够更好地隐式学习数据,适应不同的任务和观测模型。因此,在此基础上,我们提出了图3基于U-Net的多尺度分支UKDU,更好地完成不同尺度下空间细节信息的提取。在这里插入图片描述
    考虑到特征图提取空间细节的多级特征,参考基于元素的加法运算来代替传统的U-Net运算,减少模型中涉及的参数数量,缓解过拟合。因此,我们用UKDU捕获的隐式先验替换(13)中的先验正则化项Φ(I),并根据空间细节更新特征图
    在这里插入图片描述
  2. Q-Block: 该模块旨在用梯度投影方法求解(8),并且我们提出的更新规则给出如下:在这里插入图片描述

在这里插入图片描述
等式(17)表示MS图像和处理后的特征图像的残差。等式(18)类似于(16)以获得高分辨率残差,但其滤波器相互转置。等式(19)表示深度网络下的深度先验的邻近算子,以从数据隐式地学习。
3) A-Block:该模块侧重于PAN的观察模型,如(9)所述。(9)的更新规则是使用梯度投影方法提出的,并且可以表示如下:在这里插入图片描述
在这里插入图片描述

从模型驱动DL 的原理中得到启发,我们采用了模型算法-网络方法,并将(20)转换为神经网络块,如图2所示。为了实现这一点,我们首先使用以下步骤更新(20):在这里插入图片描述
4) H-Block:该模块的主要目的是基于A块的最终输出重建HRMS图像H。因此,我们使用近端梯度投影技术来更新公式(6)如下:在这里插入图片描述
该块与I-Block相同,并且我们还在实现HRMS图像H的重建之前使用隐式深度。不同于I-Block,如图4所示,我们在该块中提出ACDU来代替公式(27)。在这里插入图片描述
从图4中的ACDU的架构可以看出。为了将部分注意力机制集成到我们提出的网络中,我们设计并使用了几个SC来利用MS图像的空间和光谱相关性。因此,输出HRMS图H的更新规则如下:在这里插入图片描述
近年来,DL展开技术在图像去模糊、图像去噪、图像融合、超分辨率等各种低层图像复原方面取得了显著的成就。因此,在我们提出的全色锐化网络中的DEIN-Block涉及迭代上述算法的各个步骤作为展开子网络用于处理HRMS,LRMS和PAN图像。同时,在求解I、H、Q、A时,可以使用隐式深度先验网络来实现端到端的数据学习和驱动。我们提出的DEIN-Block架构如图2所示。它由T个阶段组成,表示公式(4)和(7)的算法解的迭代次数。每个阶段包含四个子网:I-Block、Q-Block、A-Block和H-Block。我们将其定义为在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要指出的是,我们专门设计了UKDU和ACDU来代替(13)和(27)中的这两个邻近算子,以便嵌入多尺度深度先验,提高特征提取能力。我们设计了UKDU和AKDU来取代这两个近端运营商。为了提高特征提取的能力,嵌入多尺度和多级深度先验。

CAFM-Block

如图2,我们将介绍CR-Fusion模块CAFM-Block的整体架构。我们将DEIN-Block的最后一级中的I-Block的输出和H-Block的输出标记为CAFM-Block的两个输入,然后进入卷积层。CAFM-Block由两部分组成:CR-Fusion和CHFusion。

  1. CR-Fusion:为了更好地集成细节特征图和HRMS图在DEIN-Block的最后阶段,我们提出了CR-Fusion,它已被广泛用于关联细节特征和全局不同的特征。该机制以DEIN-Block最后一级的I-Block结果(记为In 1 ∈ R H × W × C R^{H×W×C} RH×W×C)和H-Block结果(记为In 2 ∈ R H × W × C R^{H×W×C} RH×W×C)作为输入。作为主输入Inm的补充,侧输入Ins使用条带池化在特征平面上水平和垂直地定位曝光良好的内容。与通过2-D全局池化将特征张量转换为单个特征向量的通道注意力不同,CR-Fusion将通道注意力分解为两个1-D特征编码过程,该过程沿着垂直和水平方向聚合特征。这样,可以沿着一个空间方向捕获长距离依赖性,同时可以在另一个空间方向中保留准确的位置信息。然后将得到的特征图编码成方向感知和位置敏感的注意力图,分别,这可以补充地应用到输入特征图,并帮助我们的网络更准确地定位感兴趣的对象。如图5,垂直卷积块和水平卷积块分别用于处理Ins,垂直和水平结果(表示为OLn,c和OHm,c在这里插入图片描述
    在这里插入图片描述
    卷积核为1 × 1和3 × 3的卷积连接层获得M在这里插入图片描述
  2. CH-Fusion:其次是CH-Fusion,旨在通过渠道融合全球信息。首先,我们合并上游和下游特征(Mu和Md)。全局平均池化层提取信道信息。然后在这里插入图片描述
    使用softmax函数将这些权重转换为注意力权重,结果是在这里插入图片描述
    综上所述,我们提出的CADUI的过程可以总结为算法1。在这里插入图片描述

Loss Function

我们使用损失函数来计算CADUI输出图像和地面实况图像的损失。在图像恢复任务中的几项研究已经证明了这一点,因为L2损失函数将具有模糊图像的效果,因此L1损失函数优于L2损失函数。拉普拉斯金字塔损失函数Lap 与L1损失相同。主要目的是最小化颜色信息的差异。因为拉普拉斯损失可以直接优化评估矩阵,所以它可以直接测量预测结果并将真实值之间对应像素上的色差接地。因此,为了使融合图像的颜色信息和边缘细节更加全面,本文采用L1和Lap的加权组合来训练网络在这里插入图片描述
其中x对应于CADUI网络的最终输出图像,并且y表示地面实况; L1的公式表示如下:在这里插入图片描述
在这里插入图片描述

x和y各自经受拉普拉斯金字塔运算,并且减去通过每个过程获得的新x与原始x之间的差。Y做同样的事情,都是针对上面提到的第i个级别。该损失函数取N层的拉普拉斯金字塔之间的差的和。L1和Lap的加权组合产生更好的定量结果。

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

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

相关文章

异或和大小比较类问题——抓住最高位:CF1863F

https://codeforces.com/contest/1863/problem/F 因为有等于,所以考虑异或和为0的合法区间,它可以随意切现在考虑切开后左边大于右边,可以发现左右边最高位可以互相抵消,似乎不太可做?此时可以换个考虑,考…

Jetpack业务架构—四件套(Lifecycle、ViewModel、LiveData、DataBinding)

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。 Android Jetpack组件的优势: Jetpack推出的主要目的是为了能够…

【LeetCode75】第四十四题 省份数量

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个二维数组,表示城市之间的连通情况,连在一起的城市为一个省份,问我们一共有多少个省份。 这…

Python实现多子图绘制系统

文章目录 修改DrawTypeDrawType的调用逻辑绘图逻辑源代码 Python绘图系统: 📈从0开始的3D绘图系统📉一个3D坐标系,多个函数图表类型和风格:📉极坐标绘图📊散点图和条形图📊混合类型…

推进数据要素化,数据云为何是“加速器”?

数据要素化,一个世界性难题。 相比于传统生产要素,数据要素具有获得非竞争性、使用非排他性等独有特征,在流通、产权、安全和使用等方面需要法规制度与基础设施的双重保障。 我国无疑是最早探索数据要素化的国家之一。从早期成立的各种大数…

win10下的CLion控制台中文乱码终极解决方案

win10下的CLion控制台中文乱码终极解决方案 如果你也是,用Clion时候,CPP文件中有中文,然后终端运行会有乱码,改了设置发现,项目中的中文乱码了,但是终端又不乱码了,,,&am…

使用java代码给Excel加水印,保真,新鲜出炉

首先,往表格里贴透明图片,这个很智障,会严重干扰正常阅读和操作 设置文件背景图; 其次,其实就是给excel加一个背景图,但是问题就麻烦在java中基本没有这么干过的,可用方案很少,有spi…

基于java+springboot+vue的置换网站-lw

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql Webstorm Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: ssm mybatis Maven mysql5.7或8.0等等组成,B/S模式 Maven管理等等。 环境需要 1.…

Java-HashMap中put()方法是如何实现的,内含详细流程图

文章目录 Java中的HashMap什么是HashMap?对比其他Map中put()方法HashMap中put()方法使用示例 HashMap中put()源码解析手绘流程图实现原理源码探究(JDK 1.8) 设计put()的意义总结 Java中的HashMap 什么是HashMap? HashMap是Java中…

ARP欺骗

ARP欺骗定义 ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术&#x…

Qt —UDP通信QUdpSocket 简介 +案例

1. UDP通信概述 UDP是无连接、不可靠、面向数据报(datagram)的协议,可以应用于对可靠性要求不高的场合。与TCP通信不同,UDP通信无需预先建立持久的socket连接,UDP每次发送数据报都需要指定目标地址和端口。 QUdpSocket…

SpringCloudAlibaba Gateway(一)简单集成

SpringCloudAlibaba Gateway(一)简单集成 随着服务模块的增加,一定会产生多个接口地址,那么客户端调用多个接口只能使用多个地址,维护多个地址是很不方便的,这个时候就需要统一服务地址。同时也可以进行统一认证鉴权的需求。那么服…

vcs仿真教程(查看断言)

VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。 1.vcs的基本指令 vcs的常见指令后缀 sim常见指令 2.使用vcs的实例 (1)新建文件夹: …

linux 开设端口

1,查看端口情况 firewall-cmd --list-all2,开设端口 firewall-cmd --zonepublic --add-port6379/tcp --permanent–zonepublic 表示作用域为公共的 –add-port6379/tcp 添加 tcp 协议的端口端口号为 6379 –permanent 永久生效,如果没有此参…

每日一题 1372二叉树中的最长交错路径

题目 给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方…

枚举的简单介绍

目录 概念: 枚举的声明: 枚举的使用: 枚举的取值: 枚举的优点: #define的功能: 而与#define对比,枚举的优点有: 概念: 枚举顾名思义就是⼀⼀列举。 把可能的取值…

WireShark流量抓包详解

目录 Wireshark软件安装Wireshark 开始抓包示例Wireshakr抓包界面介绍WireShark 主要界面 wireshark过滤器表达式的规则 Wireshark软件安装 软件下载路径:wireshark官网。按照系统版本选择下载,下载完成后,按照软件提示一路Next安装。 Wire…

CUDA小白 - NPP(2) - Arithmetic and Logical Operations(2)

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化,具体的可以参考别的博主的介绍,都比较详细。还有一些cuda中的专有名词的含义,可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…

【100天精通python】Day50:python web编程_Django框架从安装到使用

目录 1 安装Django Web框架 2 创建一个Django 项目 3 数据模型 3.1 在应用程序的 models.py 文件中定义数据模 3.2 创建模型的迁移文件并应用 3.2.1 查询模型对象: 3.2.2 创建新模型对象: 3.2.3 更新模型对象: 3.2.4 删除模型对象&a…

JUC并发编程---Lock锁

文章目录 什么是Locksynchronized加锁和Lock加锁代码示例synchronized使用Lock加锁 公平锁和非公平锁公平锁:非公平锁:Lock和Synchronized的区别 synchronized 版的生产者和消费者Lock 版的生产者和消费者生产者和消费者出现的问题Condition精准通知和唤…