【图卷积网络和知识提取】

news2024/12/24 9:36:01

When Pansharpening Meets Graph Convolution Network and Knowledge Distillation

(当全色锐化遇到图卷积网络和知识提取时)
空洞卷积(Dilated/Atrous Convolution)
在本文中,我们提出了一种新颖的用于全色锐化的图卷积网络(graph convolutional network (GCN) ),被定义为GCPNet,其由三个主要模块组成:空间GCN模块(spatial GCN module (SGCN))、光谱带GCN模块(spectral band GCN module (BGCN))和空洞空间金字塔模块(atrous spatial pyramid module (ASPM))。具体而言,由于GCN的性质,所提出的SGCN和BGCN能够在空间和光谱方面探索目标与全局状态之间的长程关系,这有利于泛锐化结果,而这在以前没有得到充分的研究。此外,所设计的ASPM算法还配备了多尺度空洞卷积,学习更丰富的局部特征信息,以覆盖卫星图像中不同大小的目标。为了进一步增强GCPNet的表示能力,引入异步知识提取机制,通过教师-学生(teacher–student)模式下的异构任务模仿来提供简洁的特征。在该范例中,教师网络充当变分自动编码器以提取地面实况MS图像的紧凑特征。设计用于全色锐化的学生网络在教师网络的协助下进行训练,以传输预期地面实况MS图像的重要信息。

介绍

在遥感领域,随着成像系统和卫星技术的发展,人们的日常生活中有着丰富的卫星图像。但受多光谱成像设备硬件条件的限制,目前常用的光学卫星(如WordView、Gaofen)通常提供两种类型的遥感图像:光谱信息丰富但空间分辨率较低的低分辨率多光谱图像(LMS)和空间细节丰富但只有灰度信息的全色图像(PAN)。为了获得高空间质量的多光谱图像,全色锐化的目的是综合LMS和PAN的优势互补,将它们进行融合,在尽可能保留多光谱信息的前提下,提高融合图像的空间质量。考虑到上述效用,全色锐化任务通常被视为许多遥感数据应用的关键预处理步骤,例如对象检测、土地覆盖分类、城市不透水表面提取和变化检测。传统的全色锐化方法通常需要基于先验知识的合理假设;否则容易造成融合图像的失真。此外,传统变换的这些方法只具有浅层非线性表达的能力;因此难以在空间质量的改善和频谱质量的维持之间实现良好的平衡。
之后,受深度学习在自然图像处理上的成功启发,深度学习凭借其显著表示局部复杂结构的强大能力,近年来被引入到全色锐化领域。已经提出了基于卷积神经网络(CNN)的全色锐化网络,其可以从大量成对图像学习非线性映射和高语义特征,从而显著提高全色锐化处理的性能和鲁棒性。尽管取得了显著成果,但仍有几个公认的问题有待解决
1)特征提取不足:现有方法大多仅通过叠加纯前馈卷积运算来提取特征,没有充分挖掘其长程信息和互谱关系等潜力,从而限制了模型的性能。和最新的进展一样,Cai 和 Huang倾向于通过不断加深网络来提高性能,这导致在深度网络的训练过程中引入更多的参数,从而导致内存和计算量的增加。
2)规模差异:不同的卫星影像分辨率不同,成像对象的尺度也会不同,多尺度问题不容忽视。一些解决方案利用具有不同感受野的多个卷积核,但是带来巨大的计算成本。此外,旨在根据光谱信息和多尺度信息的特性处理特征之间的差异的无监督全色锐化方法不需要大数据集和地面实况MS的可用性,但需要设计适当的约束以获得有用的特征表示。
3)对真实数据的利用效率低下:如所认识到的,地面实况多光谱(MS)图像拥有补充信息(例如,高频分量),可以作为优先信息来缓解频谱失真和空间纹理增强不足的问题。现有的全色锐化方法仅利用地面真值MS图像来指导网络训练,其潜在价值尚未得到充分挖掘。
为了解决上述问题,我们提出了用于全色锐化的新颖的图卷积网络(GCN),被定义为GCPNet,其包括三个主要模块:空间GCN模块(SGCN)、光谱带GCN模块(BGCN)和atrous空间金字塔模块(ASPM)。GCPNet的目标是通过GCN集成长程信息,充分利用空间和光谱两个维度的内在联系,通过获取全局空间信息和跨光谱关系支持图像重建。这正好弥补了CNN只关注局部信息,不利于图像重建,且由于先验几何形状导致特征信息丢失的缺点。所设计的ASPM通过不同大小的空洞卷积串并联学习多尺度特征信息,获得不同的感受野,以适应卫星图像中不同大小的目标。此外,为了充分挖掘地面真值的潜力,我们还采用了一种新的知识蒸馏方法–异步知识蒸馏,即教师和学生处理不同的任务,但教师可以学习到更紧凑的信息,并通过特征蒸馏将知识传递给学生,进一步增强学生的锐化能力。

贡献

1)提出了一种高效的GCPNet全色锐化模型,该模型使用SGCN和光谱BGCN探索长程空间和光谱关系,并使用ASPM学习多尺度信息。由于GCN模块的创新设计能够有效捕捉特征,整个模型在参数数量和计算量方面也较最新模型具有绝对优势。
2)设计了一种ASPM,通过空卷积的串并联获得多种感受野大小,具有较强的非线性表达能力,避免了以往多尺度模块中常用的上采样和下采样操作所带来的信息丢失。ASPM能够聚合多尺度特征,显著提高神经网络的表达能力。
3)我们重新开发了一个新的用于全色锐化的知识提取框架,并设计了一个知识提取的编码器-解码器教师网络,将地面实况MS图像的重要知识转移到学生网络以增强其表示。

相关工作

Pansharpening

遥感图像融合技术在许多遥感应用中有着重要的应用价值;近年来研究人员提出了许多全色锐化算法。传统的图像融合方法很多,主要有分量替换法和多分辨率分析法。当然,存在基于模型优化的其他方法,混合方法、变分方法和稀疏表示方法。作为最传统的融合方法,分量替换法首先将多光谱图像投影到一个新的空间,然后用PAN整体或部分替换其结构分量,再通过空间的逆变换得到最终的融合结果。它主要包括强度-色调-饱和度(IHS)方法,主成分分析(主成分分析)方法、[19]、Gram-Schmidt(GS)方法、Brovey变换方法等,但是由于MS的某个分量被认为是所有的空间信息,它实际上包含了一定的光谱信息,因此用PAN简单代替这些组分得到的融合结果往往存在光谱失真。多分辨率分析方法主要有小波变换、拉普拉斯金字塔变换、非下采样轮廓波变换、曲波变换等,通过从PAN中提取空间细节并注入到不同尺度、空间分辨率和分解层数的上采样多光谱图像中,可以获得最终的高分辨率多光谱图像。这些方法在很大程度上能保持较好的光谱特征,但会使卫星图像的空间结构发生畸变。
上述这些传统方法多为线性模型融合,只能反映图像有限的先验知识,难以在提高空间质量和保持光谱质量之间取得良好的平衡。谱域和空间域之间的复杂变换应该被认为是高度非线性的。为了保持观察到的这些图像的保真度,我们需要高度非线性的函数来进行模拟。随着深度学习的发展,CNN被应用于卫星图像融合的研究,并依靠其在映射过程中的非线性优势取得了良好的融合效果。例如,Zhong等人提出了一种结合超分辨率卷积神经网络SRCNN模型和GS变换的全色锐化方法。这种方法虽然取得了很好的效果,但它不是一个端到端的映射过程,也没有完全脱离传统方法。为了将全色锐化过程建模为端到端映射,Masi等人提出了一种称为PNN的网络。然而,直接学习低分辨率图像和高分辨率图像之间的关系将具有更多的冗余,使得难以很好地学习模型。Yang等人通过将上采样多光谱图像添加到网络输出、将光谱信息直接传输到重建图像并在高通滤波域中训练网络参数,设计了PANNet架构。但是,这些方法在图像分类中只是简单的叠加模型;尽管如此,该模型的最终效果还是远远上级传统的方法。Cai和Huang采用图像超分辨率的方法进行全色锐化,取得了较好的效果,但计算量和参数都大大增加。MSDCNN和GPPNN 都被精心设计用于全色锐化,以提高效率并生成高质量图像,MSDCNN 被提出用于提取多尺度特征,GPPNN具有两个由深度先验正则化的优化问题。Qu等人在全色锐化网络中采用了全连通层,但网络参数数量会显著增加,网络测试时间也会增加。

Graph Convolutional Network

关于图神经网络(GNN)的研究可以追溯到Scarselli等人的开创性工作。他们设计了从图结构空间到m维欧氏空间的映射函数,并提出了一种监督学习算法,可以更新GNN模型中的参数。但是,此模型不使用卷积。后来,Bruna等人将谱图论中卷积的思想与GNN结合起来,提出了图卷积网络(graph convolution network (GCN))。与CNN严重依赖于先验条件的几何结构不同,GCN减轻了对先验条件的假设,它以研究对象为节点,以对象之间的相关性或相似性为边。它可以处理复杂的成对交互和整合全局空间数据,充分利用对象之间的内在联系,挖掘对象之间的隐形关系。近年来,图卷积理论得到了迅速的发展。它不仅被广泛应用于各种高级视觉任务,如动作识别和语义分割,而且开始被用于解决低级视觉任务,如图像修复、图像去噪和图像去噪。
此外,具有不同映射策略的对偶GCN变得流行。Bandara等人提出了空间和交互空间图推理来从航空影像中提取道路。据我们所知,全球通信网络目前很少用于超光谱图像。Qin等人和Wan等人也有相关工作,但仅限于高光谱图像分类的任务。我们是第一个将GCN应用于全色锐化以提高结果质量的公司,我们提出了SGCN和BGCN的级联方式,以高效和有效地捕获长期和全球空间和光谱信息。

Knowledge Distillation

早期的知识蒸馏框架利用庞大而繁琐的教师模型来监督较小而快速的学生模型的学习过程,以达到压缩模型的目的。如今,知识蒸馏通常在两个深层模型之间转移知识,将教师模型的表示能力转移到学生模型上,以提高学生模型的性能。受此启发,提出了一种异步知识提炼方法来提高轻量级学生模型的性能。具体来说,教师和学生处理不同的任务,教师可以在做自己任务的同时,学习到更多潜在的知识,然后将这些信息通过蒸馏传递给学生,帮助学生完成锐化任务。

方法

Overall Network Architecture

CNN只能处理局部结构的数据,但我们希望能有效地提取出长程和全局的特征。因此,能够描述数据间一对多关系的GCN成为研究的热点。然而,大多数现有的深度学习方法处理全色锐化任务通常只是使用CNN块作为主要特征提取单元。我们设计了一个新的网络,可以通过GCN非常有效地提取空间和光谱信息。
图2所示为所提出方法的流程图,该流程图由两个主要部分组成:编码器网络和解码器网络。在异步知识提取的训练过程中,将使用编码器-解码器网络,但我们只需要称为GCPNet的解码器网络来执行实际的全色锐化任务。请添加图片描述
我们将输入图像表示为X,将网络输出图像表示为Y。因此,解码器网络的输入和输出可以表示为XBMS R W × H × C R^{W×H×C} RW×H×C。XPAN ∈ $R^{W×H×1},YMS R W × H × C R^{W×H×C} RW×H×C,其中W和H表示图像的宽度和高度,C为图像波段数,XBMS由XLMS R w × h × C R^{w×h×C} Rw×h×C通过双三次插值上采样得到。最初的目标是通过解决以下优化问题从输入图像XLMS和XPAN生成高空间分辨率和高光谱分辨率图像:
请添加图片描述
我们将问题转化为近似优化问题:
请添加图片描述

在下文中,我们将详细介绍GCPNet。在网络的输入和输出部分均采用大卷积核,这是现有方法中使用的常见技术。由于其较大的感受野,可以在获得全局特征的同时保持原有的图像结构,有利于GCN提取特征和重构网络的输出图像。在网络的中间结构中,采用了较小的卷积核尺寸,以关注细节,减少参数数量
我们部署了SGCN模块来捕获局部到全局的空间信息。然后,将这些空间信息送入ASPM,以辅助网络提取多尺度局部空间特征。不同地形的形状在不同的空间尺度下是不同的,因此在全色锐化时也必须考虑这种效应。为了获得与空间信息互补的光谱信息,我们使用光谱BGCN模块来探索包含丰富的全局和局部光谱表示的特征之间的相关性。此外,我们采用对称跳跃连接来连接浅层和深层。这样既可以避免梯度消失,又可以传播图像细节,提高全色锐化性能。

Spatial GCN Module (SGCN)

图形卷积允许模型将所有空间位置处的全局像素聚集为某个位置处的响应。本模块的目的是探索特征图中一个像素与所有像素之间的关系。设特征映射为F ∈ R N × W × H R^{N×W×H} RN×W×H,其中N为通道数,W和H分别为F的宽和高。Kipf和Welling将图卷积定义为简单形式在这里插入图片描述
类似于非局部网络,它可以被认为是一种全连通GCN的形式,我们在输入特征映射Fin R N × W × H R^{N×W×H} RN×W×H上使用三个卷积层来将通道数从N减少到(N/2)。如图3所示,请添加图片描述

我们用φ(·),θ(·)和δ(·)来表示上面提到的三个卷积层。该特征是以空间图卷积学习的形式定义的在这里插入图片描述为模拟块运算,实现了这些1 × 1卷积层[φ(·),θ(·),δ(·)],以取代传统非局部算法中使用的n × n滑动窗口。根据结合律,将原项(φ(·),θ(· ) T )^T )T)δ(·)替换为φ(·)(θ(· ) T )^T )Tδ(·))。通过这样做,与一般非局部模块相比,测量矩阵的计算复杂度可以从O((WH ) 2 )^2 )2)降低到O((WH))。为了获得全局特征相关性,我们将δ(·)卷积层和θ(·)卷积层的输出特征乘以矩阵,然后乘以φ(·)卷积层的输出特征。softmax运算用于避免数值不稳定性,并发现其收敛性更好。Θ的加权过程通过使用一个1 × 1卷积层来执行运算,来进行隐输出权重矩阵。
最后,在输出之前,通过1 × 1卷积模块按照以下公式进一步调整特征:在这里插入图片描述

Spectral Band GCN Module (BGCN)

与自然图像不同,MS图像除了红色、绿色和蓝色通道之外还具有独特的近红外波段(NIR)。但是,PAN图像只有单波段通道。全色(PAN)和多光谱(MS)图像的全色锐化不仅需要在空间分辨率上进行权衡,而且需要在光谱空间上进行权衡。为了有效利用不同波段的PAN图像和MS图像之间的内在联系,设计了光谱BGCN模块来推理光谱相关性。我们将光谱BGCN建模为
在这里插入图片描述
请注意,这两个矩阵都是通过1 × 1一维卷积实现的,并从数据中学习。我们利用单位矩阵I在图上传播节点特征以执行拉普拉斯平滑。
在实际应用中,我们首先在输入特征Fin R N × W × H R^{N×W×H} RN×W×H上采用两个1 × 1的2-D卷积层[σ(·)和υ(·)]。σ(·)以降维为目的,可以减少计算量和参数个数。υ(· ) T )^T )T是投影权重,它可以将原始特征映射到谱相互作用空间。因此,式(6)中特征F的大小为(N/8)×(N/4)。从图的角度来看,这意味着存在(N/8)个节点,并且每个节点的维度是(N/4)。通过ABGCN和ΘBGCN中,我们构造了F上的一个全连通图,得到了F的谱关系。
请添加图片描述
如图3所示,该模块的流程可以表示为:
请添加图片描述

其中,函数fR(·)表示用于图像重建的隐藏到输出操作。由于生成图ZBGCN的维数为(N/8)×(N/4),因此我们增加了一个函数fR(·),将特征反向投影并重新调整为特征图的形式。具体地说,我们首先将生成的图ZBGCN乘以υ(Fin),然后利用一个二维卷积层ε(·)将频带数转换为N。最后输出的特征图FBGCN R N × W × H R^{N × W × H} RN×W×H可以参与后续操作,其形状与Fin相同。通过在GCPNet中部署光谱BGCN模块,我们的模型可以关注生成的MS图像中不同光谱之间的相关性。

Atrous Spatial Pyramid Module (ASPM)

在遥感图像中,图像的对象通常是车辆、房屋、田野、山脉等,然而这些对象之间往往存在着较大的尺度差异。因此,在恢复高空间分辨率图像时,空间尺度是一个相对重要的因素。对于多尺度问题,金字塔合并模块(pyramid pooling module (PMM))和atrous空间金字塔合并(atrous spatial pyramid pooling (ASPP))方法被广泛用于相关任务。与以往方法不同的是,我们专门设计了用于全色锐化的ASPM结构,负责不同尺度下的特征提取。
PMM通过汇集不同大小的层来提取不同尺度的特征,最后通过双线性插值来恢复原始输入特征地图大小。但是,使用模块中的池化层进行降采样可能会导致信息丢失。ASPP摒弃了池化层,利用原子卷积的并行连接,从不同的空间尺度生成多种类型的特征,使得到的特征与原始图像保持相同的大小,避免了PMM中的下采样和上采样操作。
请添加图片描述
如图4所示,我们的ASPM也采用了空洞(atrous)卷积,通过结合空洞卷积的并联和级联获得了不同的感受野。这样,我们只需要两种类型的空洞卷积就可以使融合特征FASPM具有与ASPP相同的感受野,即3 × 3、5 × 5、7 × 7和13 × 13。最后利用1 × 1卷积运算融合不同感受野特征,提高特征表示能力。
该模块可以从融合特征中包含的局部空间区域获得多尺度特征,并通过两个GCN模块分别学习全局空间和光谱波段来精确补偿

Asynchronous Knowledge Distillation

请添加图片描述

如图5所示,我们提出了一个异步知识提取框架,它包含一个编码器-解码器教师网络和一个全色锐化网络(GCPNet)。学生和教师的解码器网络被设计成具有相同的架构,但是它们应该处理的任务不同。为了帮助后期训练全色锐化网络,我们让教师网络学习如何从高分辨率多光谱(MS)图像和高分辨率单波段全色(PAN)图像重建地面真相。在实验中,教师网络能够准确地恢复地面真值,因此我们认为教师学习了高分辨率多光谱图像的分布,可以为学生提供有利的先验知识,帮助学生学习如何从低分辨率多光谱(LMS)图像和高分辨率单波段全色(PAN)图像恢复高分辨率多光谱图像(MS)。
由于教师网络的输入是MS图像XMS,所以输出 Y T Y^T YTMS应该尽可能地与输入图像XMS相似,使得教师网络仅学习复制输入图像以重建MS图像,而不能提取有用的特征。因此,我们开发了编码器-解码器架构,以促进教师提取有价值的信息,并促进有利的先验知识通过解码器网络传递给学生。首先将MS图像投影到低维特征空间,然后利用生成的BMS和PAN图像恢复原始MS图像,使教师能够学习提取更好的特征表示来完成MS图像重建任务。我们用锐化损失 L T L^T LTp和模仿损失 L T L^T LTi来训练教师网络。具体地, L T L^T LTp损失被定义为XMS Y T Y^T YTMS之间的均方误差
在这里插入图片描述
其中W和H分别是MS图像的宽度和高度。N表示训练批次中的图像的数量。 X n X^n XnMS(i,j)表示位置(i,j)处的第n个XMS的强度值, Y n T Y^{nT} YnTMS(i,j)也是如此。 L T L^T LTi项限制了编码器的表示能力,使编码器的输出接近XBMS图像。模拟损失计算XBMS和YBMS之间的平均绝对误差,定义为
在这里插入图片描述
其中W’和H’分别为BMS图像的宽度和高度。总之,最终教师的损失函数是两个损失之和
在这里插入图片描述
在训练好教师网络后,用教师网络中解码器的权值初始化学生网络的权值,从而将教师网络的重构能力传递给学生网络。然后,固定教师网络的参数,用锐化损失 L S L^S LSp和蒸馏损失 L S L^S LSd进一步训练学生网络。 L S L^S LSd类似地定义为 L S L^S LSp在这里插入图片描述
实验结果表明,教师具有较强的锐化能力,因此采用“distillation”一词来向学生传授教师知识。具体地, L S L^S LSd损失最小化教师的特征映射和学生的特征映射之间的特征方面的误差。利用解码器中倒数第二卷积层的特征映射计算蒸馏损失。 L S L^S LSd损失计算公式为在这里插入图片描述
其中 F T F^T FTn F S F^S FSn分别是教师和学生网络的特征映射。总体而言,我们使用以下损耗来训练学生网络:在这里插入图片描述
其中 λ S λ^S λS是蒸馏参数。实验结果表明,异步知识提取可以进一步提高GCPNet的性能。

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

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

相关文章

7. 表现层数据封装

表现层数据封装[TOC](表现层数据封装)1. 表现层响应数据的问题2. 定义ResponseResults类封装响应结果3. 定义Code类封装响应码4. 表现层数据封装返回Result对象5.postman发送请求结果1. 表现层响应数据的问题 ​ 目前表现层增删改方法返回true或者false表示是否成功&#xff0…

Kubernetes网络自学系列 | 网络虚拟化基石:network namespace

素材来源:《Kubernetes网络权威指南》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:Kubernetes网络自学系列 | 汇总_COCOgsta的博客-CSDN博客 1.1 网络虚拟化基石:netw…

【Pandas入门教程】如何计算汇总统计数据

如何计算汇总统计数据 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 笔记托管:https://gitee.com/DingJiaxiong/machine-learning-study 文章目录如何计算汇总统计数据导包数据准备【1】如何…

【学习Seata1.6源码#03】TC 集群具有高可用架构的秘密

一、背景 TC 集群具有高可用架构,应用到集群是这样一个间接的关系:应用 -》事务分组 -》TC 集群,应用启动后所指定的事务分组不能变,可通过配置中心变更事务分组所属的 TC 集群,Seata 客户端监听到这个变更后&#xf…

TIA博途中进行积分运算的具体方法

TIA博途中进行积分运算的具体方法 如下图所示,积分是对给定函数曲线的面积进行数学计算。但是实际曲线往往没有明确的数学关系,而是随时间变化的模拟量。积分计算就是把所有由两个过程值与时间所围成的梯形区域面积相加,梯形面积等于两个过程值的平均值乘以时间间隔。 如下…

MAC 下编译调试 MySQL8.0 源码

MAC 下编译调试 MySQL8.0 源码 最近遇到几个关于 MySQL 死锁的问题,但是查看网上的资料发现并不能解决我遇到的问题,于是决定从源码寻找答案,所以在这里记录一下自己编译 MySQL 源码的过程。 环境配置如下: macOS Ventura 版本 1…

达势股份IPO前紧急叫停:年内已有多家公司急刹车,王怡为董事长

又一家准上市公司在IPO前紧急叫停。 近日,达美乐比萨(Domino’s Pizza,NYSE:DPZ)在中国的运营商——达势股份(DPC Dash Ltd,HK:01405)发布《延迟全球发售及退回香港公开发售的申请股款》&#…

箭头函数的使用

一、什么是箭头函数 从 ES6 开始支持箭头函数,它是一种新的函数表达方式,可以在某些情况下使函数的使用更加的简洁。 二、箭头函数的使用 1、单个参数的使用 例: var f v > v;// 等同于var f function (v) {return v;};2、如果箭头函…

upload-labs(writeup)

pass1 前端验证,使用bp抓包改后缀 pass2 验证MIME类型,使用bp抓包,更改Content-Type 即可 pass3 黑名单限制,可以上传 .php3 .php5 .pthml 等等后缀, 但是要在phpstydy配置文件中更改,(我使…

网络编程 基于tcp/ip协议的C/S模型

1.socket编程的一些概念 socket作用:运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。socket提供了流(stream),是基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢失、不会重复、…

C#中的String和StringBuilder

一:前言 String和StringBuilder都是引用类型 StringBuilder是可变的字符串,它不会创建当前字符串的新修改实例而是在现有字符串对象中进行修改 String是不可变字符串,一旦被初始化后就不能改变其内容,String值改变的过程其实是创…

如何自定义注解

在 Spring Boot 应用中&#xff0c;使用自定义注解时需要用到 AOP&#xff0c;因此引入 AOP 相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependenc…

Python办公自动化|批量生成请假条

大家好&#xff0c;我是毕加锁 本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word&#xff0c;主要将涉及以下三个知识点 “ openpyxl 读取 Excel 文件 python-docx 写入 Word 文件 python-docx 各类样式的设计和调整 ”需求描述 你是公司的底层小虾米&…

2022年AIGC简单展望

2022 对于社会是不平凡的一年&#xff0c;而对于科技也同样是不平凡的一年。人们在社会中遭受着失意&#xff0c;却在科技中寻找希冀。对于一个命运共同体&#xff0c;它想着如何破除衰退&#xff0c;而同样对于一个活生生的个体或者家庭&#xff0c;他们也在摸索改变命运的机遇…

SpringBoot拦截器HandlerInterceptor

一、HandlerInterceptor是什么&#xff1f; Spring Boot 拦截器主要应用于登陆校验、权限验证、乱码解决&#xff0c;同样提供了拦截器功能。 二、使用方式 在项目中实现HandlerInterceptor接口开箱即用 三、HandlerInterceptor 中实现的方法 方法介绍preHandle(HttpServletRe…

Linux操作系统之进程间的通讯—管道

文章目录进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f;1、管道有名管道无名管道2、信号量进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f; 管道、信号量、共享内存、消息队列、套接字 1、管道 什么是管道&#xff1f; 有名管道…

JavaScript 入门基础 - 变量 / 数据类型(二)

JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09; 文章目录JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09;1.变量1.1 什么是变量1.2 变量在内存中的存储1.3 变量的使用1.4 变量语法扩展1.4.1 更新变量1.4.2 声明多个变量1.4.3 声明变量的特…

node.js+uni计算机毕设项目个性化服务系统小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

一文稿定 Appium 环境配置

Appium 是一个开源的、跨平台的测试框架&#xff0c;可以用来测试 Native App、混合应用、移动 Web 应用&#xff08;H5 应用&#xff09;等&#xff0c;也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念&#xff1a; •无需用户对 App 进行任何修改或…

vue后台管理系统项目-vue-quill-editor实现富文本编辑器功能

富文本编辑器功能实现详细过程 目录 富文本编辑器功能实现详细过程 1.安装富文本插件 2.实现效果 3.实现详细过程 可直接使用 全局引入 局部引入 配置option 扩展需求 自定义配置文字大小 1.安装富文本插件 npm install vue-quill-editor --save //或者 yarn add vu…