基于深度学习的图像去雾研究进展

🌞欢迎莅临我的个人主页👈🏻这里是我专注于深度学习领域、用心分享知识精粹与智慧火花的独特角落!🍉

🌈如果大家喜欢文章,欢迎:关注🍷+点赞👍🏻+评论✍🏻+收藏🌟,如有错误敬请指正!🪐

🍓“请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信生活中总有美好值得我们全力以赴,哪怕粉身碎骨!”🌹

前言

        图像去雾技术是计算机视觉领域中的一个重要研究方向,它旨在通过算法处理,改善因大气散射作用(如雾、霾等)导致的图像质量下降问题。近年来,随着深度学习技术的发展,基于神经网络的去雾算法取得了显著进展,尤其是基于Transformer的去雾算法在多个场景下表现出了良好的性能。因此,本文将探讨近年来图像去雾领域的研究进展,包括不同方法的性能表现,以及评估去雾效果的性能指标。

目录

基于物理模型和先验知识

🍁DehazeNet

🍁AOD-Net

基于像素域端到端映射

🍁EPDN

🍁FFA-Net

基于非成对低质量—高质量样本对

🍁CycleDehaze

🍁RefineDNet

🍁ZID

基于域知识迁移学习

🍁MADN

🍁SSL

🍁DADN

往年模型性能对比

2023年图像去雾进展

2023 年图像去雾新方法有哪些

2023 年图像去雾的研究热点

新模型

🍁MB-TaylorFormer

🍁DFC-dehaze

去雾性能评价指标

PSNR

SSIM


💥本文参考论文地址:贾童瑶,卓力,李嘉锋,等. 基于深度学习的单幅图像去雾研究进展[J]. 电子学报,2023,51(1):231-245. DOI:10.12263/DZXB.20220838.

基于深度学习的图像去雾技术可以大致的分为4种,如下图示:

基于物理模型和先验知识

原理:根据雾霾图像成像模型或降质退化模型,利用先验知识或通过学习的方法估计模型中的参数,然后根据退化模型计算得到去雾图像。

🌵经典雾霾成像模型大气散射模型,现象如下图示:

其中,接收到的光线来源于物体本身和大气光源散射,退化模型公式:

  • I(x) 是有雾图像
  • J(x)是物体(或场景)的原始辐 射
  • A是 全 局 大 气 光 值
  • t(x)被 称 作 介 质 透 射 率 且t(x)=e^{-\beta d(x)}
  • \beta为全散射系数,d为场景深度 

🪵经典的先验知识暗通道先验(DCP),用数学公式表达为:

根据此方法预测图像透射图, 利用大气散射模型得到去雾结果。

🍁DehazeNet

论文:DehazeNet: An End-to-End System for Single Image Haze Removal

        2016年, Cai等人提出了DehazeNet去雾网络,这是早期具有代表性的利用深度学习进行去雾的算法,目前经常作为基准对比方法 。该网络包含结合传统手 工特征的特征提取层、多尺度映射层、局部极值层以及 非线性回归层,通过学习雾霾退化模型中的介质透射率t(x)进行去雾。

🍁AOD-Net

论文:An All-in-One Network for Dehazing and Beyond

GitHub:https://github.com/weberwcwei/AODnet-by-pytorch

        由于DehazeNet在计算时,假设大气光值 A 为固定经验值与实际大气光值之间会有差异,通过退化模型求解得到的去雾图像也相应地会产生偏差。为了解决这一问题,2017年,Li 等人在大气散射公式的基础上, 将介质透射率t(x)和大气光值 A统一到一个变量 K(x)中,只需要求解一个 K(x)就可以实现图像增强 。具体计 算方式如下:

其中:

b为常量,K(x)一体化去雾网络(AOD-Net)来求解,网络仅包含 5 个卷积 层,计算复杂度低,去雾效果有了进一步的提升。

⭐️总结:基于成像物理模型和先验知识的去雾算法仅仅是利用深度学习或先验知识估计出模型参数, 本质上讲属于传统方法的扩展。受限于成像物理模型的准确性先验知识的表达能力以及估计模型参数时引入的误差,这种方法的去雾效果虽比传统方法有了一定程度的提升,但是未能取得大的突破。

基于像素域端到端映射

原理:以大量成对低质量—高质量图像样本作为训练数据,利用 CNN 强大的 非线性建模能力建立二者之间的映射模型,实现方式简单,而且可以取得很好的性能。其核心在于如何设计 CNN 网络架构以及有效的网络训练策略

        基于像素域映射的图像去雾算法借鉴图像分割领域常用的编码—解码结构对图像中的信息进行挖掘,结合注意力机制、特征融合等策略,提升特征的表达能力,从而提升去雾能力。编码—结构示意图如下:

编码器用于对输入图像进行特征提取,解码器利用编码器得到的特征重构目标图像。为了利用图像各个层级的特征,常常在编码和解码器间加入跳跃连接,有效提升了网络利用率。

随着GAN网络的不断演进,各种网络架构如深度卷积生成对抗网络(DCGAN)、条件生成对抗网络(CGAN)、Wasserstein距离生成对抗网络(WGAN)等被应用于解决小样本数据扩充、图像风格迁移以及图像增强等问题。

🍁EPDN

论文:Enhanced Pix2pix Dehazing Network

GitHub:https://github.com/ErinChen1/EPDN

        2018年,Qu等人将图像去雾问题简化为图像到图像转换问题,并提出了增强型去雾网络(EPDN),在不依赖物理散射模型的情况下生成无雾图像。EPDN 由多分辨率生成器模块增强器模块多尺度判别器模块组成。多分辨率生成器对雾霾图像在两个尺度上进行特征提取;增强 模块用于恢复去雾图像的颜色和细节信息;多尺度判别器用于对生成的去雾结果进行鉴别。虽然算法在主客观结果上都有了一定提升,但是对真实雾霾图像进行处理时,会存在过增强现象。

🍁FFA-Net

论文:FFA-Net: Feature Fusion Attention Network for Single Image Dehazing

GitHub:https://github.com/zhilin007/FFA-Net

        2020年,Qin 等人去除了上下采样操作,提出了一种端到端特征融合注意网络(FFA-Net)来直接恢复无雾霾图像。该方法的主要思想是自适应地学习特征权重,给重要特征赋予更多的权重。在每一个残差块后加入特征注意力,并且对各个组的特征进行加权自适应选择,提升网络的映射能力。该模型在合成数据集上取得了很好的客观指标,常被作为基准对比方法。

⭐️总结

        基于像素域端到端映射的图像去雾方法实现简单,通过针对性地设计网络结构以及有效的特征加权融合策略,在合成数据集上取得了很不错的客观指标。但是这类方法存在两个重要缺陷 。

     (1)网络训练需要以大量的低质量—高质量图像样本对作为支撑,实际应用中低质量—高质量图像数据样本对获取困难。目前普遍的做法是以仿真的方式由已知的高质量图像,经过退化模型得到低质量图像,组成训练样本对,很显然,图像质量退化模型往往无法很好地模拟真实的降质过程,采用仿真数据训练得到的去雾模型在处理真实图像时常常会失效,使得研究成果难以真正得到应用。

     (2)网络模型的泛化能力差。在一个数据集上训练的模型应用于另一个数据集上,由于样本分布不一致, 去雾后的图像效果难以尽如人意。

🌟改进

        为此,研究者们尝试从两个角度出发,来解决上述问题:一是利用实际采集的非成对图像样本对网络进 行训练,提升对真实图像的处理性能;二是利用域知识迁移学习的思路,提升网络模型的泛化能力,从而提高 对实际图像的去雾效果。

基于非成对低质量—高质量样本对

原理:基于生成对抗网络(GAN)架构,采用数据驱动的方式,从大量无标注、非成对的数据中分别学习低质图像和高质图像的特征,用于图像去雾。

        2017年,Zhu 等人提出的循环一致对抗网络(CycleGAN)是一种比较具有代表性的基于非成对样本的网络结构,该网络是面向图像风格迁移任务设计的。整体架构如下:

CycleGAN包含 了两个生成器(G,F)和两个判别器(D_{x},D_{y})。生成器 G负责将 X域图像映射到 Y域,生成器 F负责将 Y域图像映射 到 X域;判别器 D_{x}用于判断输入判别器的图像是否属于 X域。假设存在一对非成对样本\left \{x_{i},y_{i}\right \},x_{i}\epsilon X,y_{i}\epsilon Y,以 正向训练为例,x_{i}用于训练 D_{x},标签为真,G(x_{i})用于训练 D_{y},标签为假,此时判别器 D_{y}可以监督生成器 G 的训练;通过优化输入 x_{i}F(G(x_{i}))之间进行 L_{1}范式损失,可以 同时监督生成器 GF的训练。这个损失称为循环一致性损失;反向训练时同理。通过正反向交替训练可以达到训练生成器 GF的目的 。

🍁CycleDehaze

论文:Cycle-Dehaze: Enhanced CycleGAN for Single Image Dehazing

GitHub:https://github.com/engindeniz/Cycle-Dehaze

        2018年,Engin 等人基于 CycleGAN 非成对样本无监督学习的思想,提出了 CycleDehaze 网络,用于图像去雾。该网络在循环一致性损失中增加了感知损失,并且通过基于拉普拉斯金字塔的上采样方法获得高分辨率图像,利用大量的无标记图像样本进行无监督训练,使得网络更适用于真实雾霾图像。但是由于缺乏有力的约束,去雾结果常常不尽如人意。

🍁RefineDNet

论文:RefineDNet: A Weakly Supervised Refinement Framework for Single Image Dehazing

GitHub:https://github.com/xiaofeng94/RefineDNet-for-dehazing

        2021年,Zhao 等人将基于先验和基于学习的方法结合起来,提出了一个两阶段弱监督去雾框架 RefineDNet,以发挥二者的优势。在第一阶段,采用暗通道先验恢复可见性;在第二阶段,细化第一阶段的初步去雾结果,通过非成对的雾霾和清晰图像的对抗学习来提高真实性。为了获得更优越的结果,还提出了一种有效的感知融合策略来混合不同的去雾输出,可以有效提升去雾效果。

🍁ZID

论文:Zero-Shot Image Dehazing

GitHub:https://github.com/liboyun/ZID

        2020年,Li 等人提出了一种基于零样本学习的图像去雾方法(ZID)。利用解耦思想根据先验模型将雾霾图像视为清晰图像、透射图和大气光的融合。利用单个雾霾图像进行学习和推理,不遵循在大规模数据集上训练深度模型的传统范式,这能够避免数据收集和使用合成雾霾图像来解决现实世界图像的域转移问题,但是,对一张图像需要 500 轮次迭 代,而且去雾结果中常常存在大量伪像

⭐️总结

        由于缺少有力的监督信息,现有基于自监督学习的去雾方法普遍存在网络训练效率低下、有用信息难以获取或过度依赖于降质建模等问题。

        对比来看,无监督学习虽然减轻了收集成对样本 数据的压力,但是由于缺少必要的监督信息,会导致网络模型在训练过程中不易收敛。而自监督学习方法旨在利用图像自身特性,虽然在一定程度上降低了对训练数据的依赖,但是需要加入强有力的先验知识约束,去雾性能仍有待于进一步提升。

基于域知识迁移学习

原理:利用从机器学习领域任务中学到的知识来指导辅助模型的训练和学习,从而提升模型的泛化能力。

🍂元学习是“迁移学习”中的一种,可以模拟人类的学习过程。模型通过不断适应每个具体任务学习到 “元”知识,使其具备了一种抽象的学习能力,可以快速适应新的目标任务。元学习在小样本学习中得到了广泛应用,并取得了不错的性能。

🍁MADN

论文:Effective Meta-Attention Dehazing Networks for Vision-Based Outdoor Industrial Systems

GitHub:https://github.com/TongyJia/MADN

        2022年,JIA 等人提出了一种元注意去雾网络(MADN),可以从雾霾图像中直接恢复清晰图像。结合并行操作和增强模块元注意模块根据当前输入的雾霾图像自动选择最合适的去雾网络结构。研究结果表明,该方法可以获得更优的主客观去雾效果。

🍁SSL

论文:Semi-Supervised Image Dehazing

GitHub:https://github.com/luojie326/semi-dehazing

        2020年,Li 等人提出了一种有监督和无监督相结合的半监督图像去雾网络(SSL),该网络包含有监督学习分支无监督学习分支两个部分,两部分共享权重。在有监督分支中使用合成数据集进行网络训练,深度神经网络受到监督损失函数的约束,从有标注的样本中学习知识。而无监督 分支则使用无标签的真实数据,并通过稀疏的暗通道和先验梯度来充分利用清晰图像的属性约束网络。二个分支学到的知识相结合,充分利用学到的知识,提升去雾效果。研究结果表明,与无监督学习相比,这种学习方式可以充分发挥合成数据和真实数据的作用,从 而获得更优的去雾性能。

🍂域泛化(DG)的目标是学习一个模型,该模型在一个未知的新域中也可以取得很好的性能。域自适应(DA)旨在减少不同域之间的差异,利用现有的源域数据对模型进行训练,使其在给定目标域上的性能最大化。

     域自适应和域泛化的区别在于,域自适应在模型训练过程中可以访问目标域数据,而域泛化不可访问这些数据,这使得域泛化比域自适应更具挑战性,但在实际应用中更有意义。

🍁DADN

论文:Domain Adaptation for Image Dehazing

GitHub:https://github.com/HUSTSYJ/DA_dahazing

        为了缓解合成数据真实图像域之间的差异, 2020年,Shao 等人提出了一种端到端的域自适应网络框架 (DADN)。该网络由一个图像转换模块两个图像去雾模块组成。具体而言,首先采用双向变换网络将图像从一个域变换到另一个域,以弥补合成域和真实域之间的差距。然后, 使用变换前后的图像来训练所提出的两个去雾网络。在此阶段,通过利用清晰图像的特性(如暗通道先验和图像梯度平滑)将真实图像纳入到去雾训练中,以进一 步提升真实图像的去雾效果。目前,上述两种方法常被 作为基准对比方法。

⭐️总结

        元学习、零样本学习、域自适应等机器学习领域最新的研究成果应用于图像去雾领域,极大地提升了真实雾霾图像的去雾效果,在解决模型的泛化能力方面取得了重要的研究进展。这为开展 图像去雾的研究工作提供了新的思路,已经成为目前新的研究趋势。

        然而,利用上述新思想解决图像去雾问题仍存在一些挑战亟待解决,如元学习训练稳定性差需要大量的训练样本零样本学习在测试阶段需要多次迭代,对于实时任务有很大限制;域自适应算法对于域间差距较大的样本泛化能力仍然十分有限,等等。

往年模型性能对比

🌒10种去雾算法客观指标对比

🌓合成数据集上的性能表现

🌔真实数据集上的性能表现

🌟总结

        早期基于物理模型的DehazeNet和 AOD-Net等算法受限于成像模型的表达能力,去雾效果较差;而基于像素域映射的算法EPDN,FFA-Net,MADN则明显取得了更好的客观指标,这不仅得益CNN网络强大的映射能力,同时也受助于大规模合成数据集的支撑。

        但是上述有监督图像去雾算法对真实雾霾图像的主观处理效果并不理想,存在去雾不彻底或过度增强问题。目前基于物理模型的无监督图像去雾算法CycleDehaze,RefineDNet和自监督图像去雾算法 ZID仍处于探索阶段。由于使用非成对的数据或未使用数据对网络进行训练,网络的鲁棒性十分有限,对合成和真实数据集的处理效果并不尽如人意。

        而基于域知识迁移学习的半监督去雾算法 SSL和 DADN,可以学习来自其他域的知识,虽然在合成数据上的指标不如有监督算法,但是其对真实雾霾图像的泛化能力非常突出

2023年图像去雾进展

2023 年图像去雾新方法有哪些

        2023 年图像去雾新方法呈现出多元化的发展态势。基于深度学习的图像去雾技术不断创新,利用深度学习算法建立深度模型,学习场景中的深度信息,更准确地估计雾的程度和位置,从而提高去雾效果。例如,通过神经网络对大气退化模型中的参数进行估计,利用输入的有雾图像直接输出去雾后的图像,实现端到端的处理。

        基于多传感器数据融合的去雾技术也在发展,利用多个传感器获取场景信息并进行融合,以更全面、更准确的方式估计雾的程度和位置,更好地进行图像去雾处理。还有基于物理模型的去雾技术,通过分析大气散射的物理过程,建立大气散射模型,更精确地估计雾的程度和位置。像 Single Image Fog Removal 方法主要通过估计图像中的大气光照和散射系数来进行去雾;Dark Channel Prior 方法利用图像中暗通道的先验知识去雾;Color Attenuation Prior 方法将颜色信息引入去雾过程;Multi-Scale Retinex 方法利用多尺度 Retinex 算法去雾并针对不同场景调整参数;Non-Local Image Dehazing 方法利用非局部相似性寻找图像中相似像素进行去雾。

        基于超分辨率技术的去雾方法通过提高图像分辨率,以更细致的粒度去除雾霾,更好地重建清晰图像。此外,基于人工智能的去雾技术利用人工智能算法,通过识别和分类图像中的不同部分来去除雾霾,提高图像质量和清晰度。

2023 年图像去雾的研究热点

        2023 年图像去雾的研究热点主要集中在几个方面。一是深度学习与传统方法的结合,利用深度学习的强大学习能力和传统方法的先验知识,提高去雾效果。例如暗通道先验等传统方法与深度学习算法相结合,在单幅图像去雾中发挥重要作用。
        二是多传感器融合,通过融合多个传感器的数据,更全面准确地估计雾的程度和位置,为图像去雾提供更丰富的信息。
        三是新模型的创新,如 MB-TaylorFormer DFC-dehaze 等模型,通过独特的结构设计和损失函数优化,提高去雾性能。
        四是实际应用场景的拓展,包括自动驾驶、监控系统、摄影后期和无人机影像等领域,对图像去雾的需求不断增加,促使研究更加注重实际应用效果。

新模型

🍁MB-TaylorFormer

论文:MB-TaylorFormer: Multi-branch Efficient Transformer Expanded by Taylor Formula for Image Dehazing

GitHub:https://github.com/FVL2020/ICCV-2023-MB-TaylorFormer

        Qiu等人以多支路线性 Transformer 网络 MB-TaylorFormer 为例,基于泰勒展开的线性 Transformer 网络,对像素间的长距离关系进行建模。通过引入 MSAR 模块纠正对 softmax-attention 进行泰勒展开的误差。多尺度 Patch Embedding 设计具有多尺度感受野多级语义信息更灵活的感受野形状。通过多个并行的具有不同尺度卷积核的可变形卷积,生成粗糙和精细的视觉标记,具备灵活的表达能力。

🍁DFC-dehaze

 论文:DFC-dehaze: an improved cycle-consistent generative adversarial network for unpaired image dehazing

        Wang等人设计了DFC-dehaze 模型,它是一种改进的 CycleGAN 模型,用 Dehazeformer-t 模型取代基于卷积神经网络的生成器,采用局部 - 全局鉴别器处理局部变化的雾霾,当生成图像模糊或颜色不真实时,鉴别器通过负样本惩罚机制给予低分。将结构相似指数测量损失与循环一致损失相结合,提高去雾图像的视觉质量。

去雾性能评价指标

        在评价去雾算法性能方面,常用的客观评价指标包括峰值信噪比(PSNR)结构相似度(SSIM)。PSNR通过比较去雾后的图像与原始清晰图像之间的均方误差(MSE)来评估图像质量,而SSIM则从亮度、对比度和结构三个方面度量图像的相似性,更能反映人眼的视觉特性。此外,还有基于小波变换的图像融合算法等其他方法也被用于去雾效果的评价,但本部分只重点说明PSNR和SSIM指标。

PSNR

🧑🏼‍🏫指标课堂  

  如果你有两张照片,一张是非常清晰的原始照片,另一张是经过某种处理(比如图像压缩、去噪、去雾等)后的照片。PSNR 就是用来衡量这两张照片有多相似的一个指标。

  PSNR 的数值越大,就说明处理后的照片和原始照片越接近,质量越好。可以把它理解成一种 “相似程度的打分”。比如说,如果 PSNR 的值很高,可能就意味着处理后的照片几乎和原始照片一样清晰,颜色也很接近,没有太多的失真。但如果 PSNR 的值比较低,那就说明处理后的照片和原始照片差别比较大,可能出现了模糊、颜色偏差或者有奇怪的噪点等问题。

1️⃣计算均方误差(MSE)

对于两个尺寸m\times n的图像IKMSE的计算公式为:

其中I(i,j)表示原始图像在坐标(i,j)处的像素值,K(i,j)表示处理后图像在坐标(i,j)处的像素值。

2️⃣计算PSNR

PSNR计算公式为:

这里MAX_{I}是图像可能的最大像素值。如果图像的每个像素是8位表示,那么MAX_{I}=255

SSIM

🧑🏼‍🏫指标课堂  

        同样还是那两张照片,SSIM 也是用来判断它们的相似程度。不过和 PSNR 有点不同,SSIM 不仅仅看照片的像素值是不是一样,还会考虑照片的结构信息
        什么是结构信息呢?可以简单理解为照片中的物体形状边缘纹理等特征。SSIM 会比较处理后的照片和原始照片在这些方面是不是相似。如果两张照片的结构很相似,比如物体的边缘都很清晰,纹理也差不多,那么 SSIM 的值就会比较高。反之,如果处理后的照片中物体的形状都变了,边缘模糊不清,纹理也和原始照片不一样,SSIM 的值就会比较低

1️⃣亮度比较

亮度计算公式为:

其中\mu _{I}\mu _{K}分别是图像IK的平均亮度,C_{1}是一个很小的常数,避免分母为0

2️⃣对比度比较

对比度计算公式为:

这里\sigma _{I}\sigma _{K}分别是IK的协方差

3️⃣结构比较

结构计算公式为:

其中\sigma _{IK}是图像IK的协方差

4️⃣计算SSIM

SSIM计算公式为:

通常\alpha =\beta =\gamma =1,并且为了简化计算,可将C_{3}=C_{2}/2

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

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

相关文章

个人随想-gpt-o1大模型中推理链的一个落地实现

​首先祝大家中秋节快乐。 最近openai又推出了新的模型openai o1​还有它的mini版。官网的介绍,就是它的推理能力很强,比gpt-4o​有很大的提升。 最近也跟同行在聊这个o1,​看看落地方面有哪些可行性。在我们自己的实验上,把o1用…

JavaScript web API完结篇---多案例

BOM window对象 >包含docment Browser Object Model 定时器–延时函数 之前学的是间歇函数 让代码延迟执行 仅执行一次 setTimeout(回调函数,等待毫秒数) 消除 clearTimeout(timer) > 用于递归时需要进行去除 JS执行机制 单线程 > 一个任务结束&…

【C++笔记】类和对象的深入理解(三)

【C笔记】类和对象的深入理解(三) 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】类和对象的深入理解(三)前言一.日期类的实现1.1声明和定义分离1.2日期类整数1.3日期类整数1.4日期类-整数1.5日期类-日期1.6复用对…

Linux中安装maven

Linux中安装maven 1.下载2.安装3.配置环境变量4.maven相关配置 1.下载 下载地址:https://maven.apache.org/download.cgi 2.安装 指定位置上传压缩包: 解压: tar -zxvf apache-maven-3.9.5-bin.tar.gz修改解压缩后的文件名: mv apac…

Netty笔记09-网络协议设计与解析

文章目录 前言一、协议设计1. 数据格式2. 消息长度3. 编码方式4. 错误处理5. 安全性 二、协议解析1. 消息分隔2. 粘包与半包处理3. 校验机制 三、为什么需要协议?四、redis 协议五、HTTP 协议六、自定义协议要素编解码器💡 什么时候可以加 Sharable 前言…

【论文阅读】Act3D: 3D Feature Field Transformers for Multi-Task Robotic Manipulation

Abstract 3d感知表示非常适合机器人操作,因为它们很容易编码遮挡并简化空间推理。许多操作任务在末端执行器姿态预测中需要较高的空间精度,这通常需要高分辨率的3d特征网格,这对于处理来说计算成本很高。因此,大多数操作policies…

基于密码的大模型安全治理的思考

文章目录 前言一、大模型发展现状1.1 大模型技术的发展历程1.2 大模型技术的产业发展二、大模型安全政策与标准现状2.1 国外大模型安全政策与标准2.2 我国大模型安全政策与标准前言 随着大模型技术的迅速发展和广泛应用,其安全性问题日益凸显。密码学作为网络空间安全的核心技…

Unity webgl跨域问题 unity使用nginx设置跨域 ,修改请求头

跨域 什么是跨域 跨域是指浏览器因安全策略限制,阻止一个域下的网页访问另一个域下的资源。 一些常见的跨域情况: 协议不同 从 http://example.com 请求 https://example.com。域名不同 从 http://example.com 请求 http://anotherdomain.com。端口不…

《锐捷AP 胖模式配置示例》

目录 WEB配置方式: 1. 登录 AP 管理界面 2. 配置无线服务 3. 配置射频参数 4. 配置 VLAN (如果需要) 5. 配置 IP 地址 6. 其他高级设置(根据需求) 命令行配置: 1. 进入特权模式 2. 进入全局配置模式 3. 配置管理 IP 地址 4. 创建无线 SSID 5. 配置 SSID 加密…

多线程下的共享变量访问数据竞争的问题

多线程下对共享变量的写存在数据竞问题可导致数据与预期不一致。最近在研究race conditions漏洞,用以下python 代码记录一下,以此论证,如下: from concurrent.futures import ThreadPoolExecutor globalNum 5 def test():global…

【深度分析】OpenAI o1是最强的推理模型,却不是最强模型!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

一般在写SQL时需要注意哪些问题,可以提高查询的效率?

很多人写SQL按照自己喜好,没有规则意识,这对于自主查询影响不大,你爱怎么搞就怎么搞,一旦涉及到提交任务或团队共享,就不能乱写了,会浪费资源影响到开发效率,严重的甚至会服务器瘫痪。 提几个关…

python-在PyCharm中使用PyQt5

文章目录 1. 安装 PyQt5 和QtTools2. QtDesigner 和 PyUIC 的环境配置2.1 在 PyCharm 添加 Create Tools2.2 添加 PyUIC 工具 3. 创建ui界面4. 使用python调用ui界面参考文献 1. 安装 PyQt5 和QtTools QT 是最强大的 GUI 库之一,PyQt5 是 Python 绑定 QT5 应用的框…

idea一个窗口打开多个仓库的代码

一、背景 最近新进了一家外包公司,这个项目由于是微服务的,且每个微服务都独立用一个仓库进行代码管理。看项目的时候,我们不能一个窗口,只打开一个仓库代码,那样看起来会非常麻烦,一开始对项目全貌的了解…

Get包中的根组件

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

多线程篇(Fork/Join)(持续更新迭代)

目录 知识大纲 一、简介 二、工作窃取算法 三、设计思想 步骤一:分割任务 步骤二:执行任务并合并结果 四、使用 五、异常处理 六、Fork/Join框架的实现原理 1. ForkJoinTask的fork方法实现原理 2. ForkJoinTask的join方法实现原理 七、源码剖…

Java-数据结构-二叉树-习题(三)  ̄へ ̄

文本目录: ❄️一、习题一(前序遍历非递归): ▶ 思路: ▶ 代码: ❄️二、习题二(中序遍历非递归): ▶ 思路: ▶ 代码: ❄️三、习题三(后序遍历非递归): ▶ 思路: …

数据结构(7.3_3)——平衡二叉树的删除

平衡二叉树的删除 删除结点后&#xff0c;要保持二叉排序树的特性不变(左<中<右) 若删除结点导致不平衡&#xff0c;则需要调整平衡 平衡二叉树的删除步骤 删除结点(方法同"二叉排序树")一路向北找到最小不平衡子树&#xff0c;若没有找到&#xff0c;则不需…

【秋招笔试-支持在线评测】8.28华为秋招(已改编)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 华为专栏传送🚪 -> 🧷华为春秋招笔试 目前今年秋招的笔…

01Frenet与Cardesian坐标系(基础知识)

1 简介 Frenet坐标系是一种在几何学和物理学中常用的坐标系&#xff0c;特别是在轨迹规划和机器人控制中。它由法国数学家Jean Frenet于1847年为了解决在求解某些几何问题时遇到的环形坐标系的问题而提出的。它依据曲线的切线和法线来定义坐标轴&#xff0c;主要用于局部地描述…