论文阅读:All-In-One Image Restoration for Unknown Corruption

发表时间:2022 cvpr
论文地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Li_All-in-One_Image_Restoration_for_Unknown_Corruption_CVPR_2022_paper.pdf
项目地址:https://github.com/XLearning-SCU/2022-CVPR-AirNet
代码解读:https://hpg123.blog.csdn.net/article/details/139564071?spm=1001.2014.3001.5502
在这里插入图片描述
在本文中,我们研究了图像恢复中的一个具有挑战性的问题,即如何开发一种能够从各种未知的退化类型和级别中恢复图像的一体化方法。为此,我们提出了一个由两个神经模块组成的全一体图像恢复网络(AirNet),分别是基于对比的退化编码器(CBDE)退化引导恢复网络(DGRN)。AirNet的主要优势有两个。首先,它是一个一体化的解决方案,可以在一个网络中恢复各种退化的图像。其次,AirNet没有图像退化类型和级别的先验,它只使用观察到的损坏图像来执行推断。这两个优势使AirNet在现实世界中享有更好的灵活性和更高的经济效益,在这些场景中,图像退化的前期很难知道,退化将随着空间和时间的变化而变化。大量的实验结果表明,该方法在4个具有挑战性的数据集上优于17个图像恢复基线。

从论文方法上看,AIRNet提出了一种较为简易的pipeline,以单一网络结构应对多种任务需求(不同类型,不同程度)。但在效果上看,ALL-In-One是不如One-By-One的,且本文方法的亮点是batch内选择patch进行对比学习。在与sota对比上,仅是Denoise任务精度占优,在Derain与Dehaze任务上,效果不如One-By-One的MPRNet方法。虽然精度不足,但方向是对了,在2024年,该方向或许有更优秀的论文。
在这里插入图片描述

1、Introduction

单图像恢复的目的是从给定的退化对应关系中生成一个视觉上令人愉快的高质量图像,例如,嘈杂、下雨或模糊的图像。在过去的几年中,图像恢复已经被广泛应用于许多现实世界的应用,从自动驾驶到医学成像和监测。

虽然在特定领域如去噪、去模糊、去雨、脱雾已经取得了有希望的效果,但图像恢复在实践中遇到了以下障碍。一方面,有必要知道正确的图像退化情况,才能使用对应的方法进行图像修复。一旦退化类型或者退化率发生变化,由于真实情况与模型构建或训练所采用的先前情况不一致,模型将达到不理想的性能。另一方面,在复杂的环境中,退化通常会发生变化,例如自动驾驶汽车可能同时连续遭受多雨、雾霾天气的影响。总之,我们高度期望开发一种一体化的方法,它能够从各种未知的1种损坏类型和级别中恢复图像,如图1所示。
指出现有的方法,针对不同的图像退化类型,需要针对的处理方法,不够灵活。同时对应不同退化程度,效果也存在明显差异
在这里插入图片描述
为了解决上述问题,我们提出了由两个模块组成的All-in-one图像恢复网络(AirNet)。具体来说,基于对比的退化编码器(CBDE)被设计为通过利用具有相同退化的图像的一致性和在不同退化中存在的不一致性来学习退化表示。在CBDE学习到的退化表示的指导下,退化引导恢复网络(DGRN)旨在恢复各种退化的图像。由于CBDE和DGRN的组成,AirNet具有两个高度期望的优点,即,i)它提供了一个一体化的解决方案来恢复具有不同的退化类型和比率的图像;ii)它没有退化类型和比例的先验。
AirNet基于对比的退化编码器(CBDE),将各种退化类型统一到同一嵌入空间;然后,基于退化引导恢复网络(DGRN)将嵌入空间修复为目标图像

值得注意的是,AirNet所引用的一体化解决方案在给定的方面不同于现有的所谓的统一图像恢复方法。一方面,方法[3,8,23]必须指定损坏类型和比率,而我们的方法则没有。另一方面,他们通常将多个退化视为具有多个输入和输出头的多任务学习问题,其中每个输入和输出头对应一个给定的腐败率。相比之下,AirNet是一个单通道网络,它不区分不同的腐败类型和比率,因此具有更好的灵活性和更高的经济性。综上所述,本研究的贡献和新颖性如下:

  • AirNet可能是第一个以一体化的方式从多个损坏中恢复图像的方法之一。由于我们的方法不需要任何退化信息来提前恢复,所以它可能更接近真实世界的场景。
  • AirNet以双重方式工作,即从观察到的图像中学习退化表示,然后使用学习到的退化表示来恢复干净的图像。需要指出的是,对比学习的成功在很大程度上依赖于正对和负对的构建。在本文中,我们提出了一种有效的捕获多重降解的遗传特性的新方法。
  • 在不丧失通用性的情况下,我们进行了广泛的实验来验证AirNet在去噪、脱皮和脱雾方面的有效性,并与17个基线进行了比较。

2. Related Works

2.1. Image Restoration

根据本文的重点,现有的图像恢复方法可以分为单退化(IRSD)图像恢复和多退化(IRMD)两类。
Image Restoration for Single Degradation: IRSD的目标是从退化观察中恢复干净的图像,该观察仅被具有固定破坏比的特定退化类型破坏。例如,DnCNN作为一种先进的深度去噪方法,即使在训练过程中噪声比不可知,也不能处理多退化的情况。其他的图像恢复任务也面临着类似的挑战,如去模糊[2,12,29,32-34,36],去雨[10,17,24,42,46,49,50,52]和去雾[1,15,20,25,28,35,37,38]。最近,一些研究表明[13,26,39,51]对不同的图像降质模型具有一定的通用性。然而,它们需要为不同的退化训练不同的模型,这并不是像实践中预期的那样是一体化的解决方案。

Image Restoration for Multiple Degradations: 近年来,一些工作通过采用多输入输出网络结构将注意力转移到IRMD上。例如,Li等人[23]提出了一种单一模型来处理多种恶劣天气退化(例如雨、雾和雪),每一种退化都由编码器专门处理。Chen等人[3]提出了一种基于变压器的图像恢复方法,该方法通过使用多头和多尾的体系结构来处理多重退化。与我们的方法最相似的方法可能是[8]。然而,该方法仍然需要知道输入的一些先验(例如,噪声比和JPEG质量),以以元学习的方式参数化网络。综上所述,虽然上述方法已经走向了IRMD,但它们仍然需要提前获得退化信息,以便将输入发送到校正后的头部或生成元信息。

2.2. Contrastive Learning

对比学习[4,14,41]是一种最先进的无监督表示学习方法,其目的是最大化正对之间的相似性,同时最小化负对之间的相似性,其中正对和负对是通过数据扩充获得的。近年来,一些研究表明了对比学习在图像修复[43,47]中的有效性。值得注意的是,尽管DASR [43]和我们的AirNet都利用对比学习来捕获退化信息,但它们在给定方面存在显著不同。首先,正、负对的定义是不同的。 事实上,对比学习的成功在很大程度上依赖于构建正对和负对,因此是许多工作的焦点。第二,任务是不同的。简而言之,DASR是专门为图像超分辨率而设计的,而AirNet则被提出以一体化的方式处理多重退化。第三,尽管任务存在差异,但DASR需要指定图像的超分辨率尺度,而AirNet则不需要任何退化参数。

3. The Proposed Method

在本节中,我们将详细阐述所提出的方法,该方法包括基于对比的降解编码器(CBDE、 f C ( ⋅ ) f_C(·) fC())和降解引导恢复网络(DGRN, f D ( ⋅ ) f_D(·) fD()),如图2所示。
在这里插入图片描述
给定一个的退化图像x,AirNet首先将其输入 f C ( ⋅ ) f_C(·) fC(),以学习潜在的退化表示z = f C ( x ) f_C(x) fC(x)。然后,将x和z进一步通过 f D ( x , z ) f_D(x,z) fD(x,z),得到恢复的图像 y ′ = f D ( x , z ) y' = f_D (x,z) y=fD(x,z。在不丧失通用性的情况下,我们考虑三种流行的退化作为展示,即噪声、雾霾和雨。下面,我们将首先介绍总体损失函数,然后详细说明具有相应损失的两个子网。

3.1. The Objective Function (loss定义)

为了从观察到的图像中去除损坏,我们提出了以下目标函数:
在这里插入图片描述
其中, L R e c L_{Rec} LRec是真实标签 Y t Y_t Yt与恢复的干净图像 Y p Y_p Yp之间的重建损失。第二个损失 L c l L_{cl} Lcl是CBDE的对比损失。

对于给定的退化图像x, L R e c L_{Rec} LRec的目标是通过AirNet最小化真实标签 Y t Y_t Yt与恢复的干净图像 Y p Y_p Yp之间的l1-距离,具体定义为:
在这里插入图片描述
L R e c L_{Rec} LRec不同, L c l L_{cl} Lcl是CBDE的特异性损失,其目的是学习不同退化模式的表示,同时保留它们可能的差异。

3.2. Contrastive-Based Degradation Encoder

基于对比的退化编码器的目的是从输入x中提取潜在的退化表示z。为了使AirNet能够解决多个非特异性降解,预计将享受以下两个特性。

首先,z应该能够适应不同的退化情况。换句话说,对于具有不同退化类型的输入,即使图像内容相同,对应的z也应该是不同的。为此,我们利用对比学习来学习z,通过最大化两个具有相同退化的输入的一致性(即正样本),同时最小化不同退化类型(即负样本)之间的一致性。具体来说,对于退化表示q, k + k^+ k+ k i − k_i^− ki分别是对应的正和负对应。然后,Lcl可以被重新表述为,
在这里插入图片描述
主要是学习到退化类型的潜在表示,使同一图像内局部patch相同的退化类型靠近,不同图像的局部patch退化类型远离

详细来说,对于给定的输入x,我们从x中随机裁剪两个补丁,命名为 x q x_q xq x k + x_{k+} xk+。由于同一图像中的退化类型应该是一致的,我们将 x q x_q xq x k + x_{k+} xk+视为正样本对。相反,来自其他图像的补丁被视为负的 x q x_q xq x k − x_{k-} xk。利用得到的对,将它们通过CBDE得到相应的中间表示vq、vk+和vk−,并将它们输入两层MLP,得到q、k+和k−。为了学习一个保留不同降解识别能力的降解空间,使用公式3进行优化。

由于我们基于对比学习的解决方案,学习的退化表示包含以下优势。确切地说,它不依赖于一个数学模型,明确定义损坏和干净图像之间的关系作为现有的方法[1,37]。因此,它避免了对这种先验的知识,其性能与精确的定义无关。特别是,当由于混合的多重降解或退化来自自然而导致的关系总是未知或不精确时,我们的方法更具竞争力。 ---- 另一方面,我们的方法将不同的退化统一到相同的子空间,同时保持它们的差异。相比之下,现有的单/多降解方法从不同的子空间学习不同降解的表示,从而失去了降解的可比性和关系。例如,与雾霾破坏率相比,破坏率分别为0.1和0.2的高斯噪声在潜在空间中应该很接近。显然,我们的对比退化表示可能拥有这样一个属性,这对于处理具有多个降级的数据至关重要。

其次,z应该尽可能多地保留空间结构,以有利于图像的恢复。为此,我们采用CBDE的第一层而不是最后一层的输出作为z。换句话说,z是一个张量而不是向量,因此可以保留上下文信息。此外,由于z具有中间层的输入和输出的相同维度,因此它可以灵活地连接其他特征,并与现有的神经网络如DCN [6]和SFT [44]兼容。

3.3. Degradation-Guided Restoration Network

利用CBDE学习到的z,DGRN从未知退化的输入中恢复干净的图像。如图2所示,DGRN由5个降解引导组(DGG)组成,每个组还由5个降解引导块(DGB)组成。在每个DGB中,采用两个降解引导模块(DGM)在z的引导下恢复干净的图像。

如上所述,DGM是DGRN的基本模块,它由一个可变形的卷积(DCN)层空间特征变换(SFT)层组成。
在这里插入图片描述
DGM旨在实现以下两个目标。一方面,由于不同的降解应该有不同的空间接受域,人们期望该模型可以适应不同的降解。为此,DGM采用了可变形卷积(DCN)[56],它可以基于调制的偏移量和掩模动态地调整接受场。具体地说,给定K个采样位置的可变形卷积核,让 w k w_k wk p k ∈ ( − 1 , − 1 ) , ( − 1 , 0 ) , ⋅ ⋅ ⋅ , ( 1 , 1 ) pk∈{(−1,−1),(−1,0),···,(1,1)} pk(1,1),(1,0)⋅⋅⋅,(1,1)表示第K个位置的权重和预定义的偏移量,然后是DGM中使用的DCN层,定义为:
在这里插入图片描述
公式过于复杂,不做详细翻译了
在这里插入图片描述

4. Experiments

在本节中,我们通过比较17个基线,在四个广泛使用的数据集上比较所提出的方法。接下来,我们将首先介绍实验设置,然后在基准测试上展示定性和定量的结果。最后,我们将进行一些消融研究来验证我们的方法的有效性。

4.1. Experimental Settings

在本节中,我们将介绍所使用的数据集、基线、评估度量和实现细节的详细信息。
Datasets: 在我们的实验中,我们使用以下6个数据集进行评估,即BSD400、BSD68 [31]、WED [30]和Urban100进行去噪;Rain100L[49] 用于去雨;RESIDE[22]用于脱雾。
具体来说,BSD400包含400张干净的自然图像,BSD68包含68张自然图像。WED包含了从互联网上收集的4,744张自然图像,而Urban100有100张干净的图像。对于图像去噪,我们使用BSD400和WED的组合作为训练集,BSD68和Urban100的组合作为测试集。通过遵循[40,53-55],手动将σ = 15、25、50的干净图像,即σ = 15,25、50,生成噪声图像。对于图像去雨,我们在Rain100L上进行实验,其中包括200对雨清洁训练对和100对测试图像对。对于图像去模糊处理,我们分别在由户外训练集(OTS)和合成目标测试集(SOTS)组成的驻留数据集[22]上进行了实验。简而言之,OTS由72,135对户外雾净图像对组成,而SOTS包含500对户外雾净图像对组成。

Baselines: 为了全面比较,我们将该方法与5种去噪方法、五种去雨方法、5种去雾方法、一种图像恢复方法和一种IRMD方法进行了比较。具体来说,去噪基线包含CBM3D [5]、DnCNN [53]、IRCNN [54]、FFDNet [55]和BRDNet [40]。去雨基线为DIDMDN [52]、UMRL [50]、SIRR [46]、MSPFN [17]和LPNet [11]。去雾基线为DehazeNet [1]、MSCNN [37]、AOD-Net [21]、EPDN [35]和FDGAN [7]。图像恢复基线是MPRNet [51]。IRMD的基线是解耦学习(DL)[8]。

为了全面证明其有效性,在我们的方法中,对比了两种不同的设置,即训练AirNet在一个指定的退化(OBO)训练AirNet在所有退化(AIO)。换句话说,AIO下的AirNet是收集所有数据集的模型,这些数据集包含三个不同退化水平(即σ = 15、25、50)的退化(即噪声、雨和雾霾)。

Evaluation metrics: 在[7,11,40]之后,使用两个流行的指标用于定量比较,即峰值信噪比(PSNR)[16]和结构相似度(SSIM)[45]。这些指标的值越高,表明这些方法的性能越好。

Training details: 我们在NVIDIA GeForce RTX 2080Tigpu上使用PyTorch进行了实验。为了优化AirNet,我们使用了具有默认的 { β i } i = 1 2 \{β_i\} ^2_{i=1} {βi}i=12的ADAM优化器[18],并将最大迭代次数设置为1,500。为了预热,我们首先通过优化 L c l L_{cl} Lcl对CBDE进行100次迭代。然后,我们用L训练整个网络进行1400次迭代。学习速率被初始化到0.001,然后在60个时代后下降到0.0001。之后,每过了125个时代后,学习率就会下降到一半。在实验中,我们用批量大小为400×N的补丁大小和128来训练我们的模型,其中N是降解类型的数量。

4.2. Comparisons on Single Degradation

在本节中,我们将展示对三个分离的图像恢复任务的定量和定性结果,即去噪、脱噪和去雾。

Denoising: 表1报告了BSD68和Urban100与5种去噪方法在逐个设置下的比较结果。从结果中可以发现,AirNet在几乎所有的测试中都取得了最好的结果。除了在定量评价方面的优势外,AirNet在定性比较方面也显示出了优势,如图3所示。由于空间的限制,我们在补充材料中留下了更多的结果
在这里插入图片描述
在这里插入图片描述
Deraining: 从表2和图4中可以观察到,AirNet的性能也显著优于所有下降基线。例如,在PSNR和SSIM中的AirNet分别比OBO设置下的最佳方法高出1.4和0.0074。
在这里插入图片描述
Dehazing: 如表3和图5所示,AirNet略优于PSNR中的最佳基线。AirNet比FDGAN高0.03。然而,视觉结果显示,AirNet可以恢复更多对人类有利的细节。
在这里插入图片描述
在这里插入图片描述

4.3. Comparisons on Multiple Degradations

AirNet最吸引人的地方是在一体化框架中处理不同未知退化的能力。在本节中,我们进行了实验来验证AirNet在这种设置下的有效性。为此,我们选择了5种IRSD方法(即BRDNet [40]、LPNet [11]、FDGAN [7]和MPRNet [51])和一种IRMD方法(即DL [8])作为基线。为了进行公平和广泛的比较,我们用上述两种设置重新训练这些方法,即逐个和一体化。如表4所示,我们可以观察到AirNet在大多数情况下都优于所有的基线。需要指出的是,尽管DL也可以处理多个降级,但它需要知道图像退化的类型和级别,以便可以指定正确的网络的头和尾。
在这里插入图片描述

4.4. Results on Combined Degradations

在本节中,我们用多重降级的不同组合来训练AirNet,以分析损坏的数据集如何影响性能。如表5所示,更多的退化将导致去噪的困难,而不能从脱噪和脱雾任务中无法得到同样的结论。有趣的是,脱雾将有助于去噪,而去脱雾受益于所有降解的组合。预计未来还会有更多的实证研究和理论分析。
在这里插入图片描述

4.5. Results on Spatially Variant Degradation

在本节中,我们进行了实验来证明AirNet对空间变异退化的有效性,即同一图像的不同区域具有不同的退化程度。为此,我们合成了一个具有空间变化噪声的BSD68的退化版本。详细地说,我们将每个干净的图像划分为四个区域,其中分别添加了具有σ∈{0、15、25、50}的高斯噪声。表6显示,在这种评估协议下,AirNet也能有效地恢复潜在的干净图像。
在这里插入图片描述

4.6. Ablation Study

为了证明我们的网络结构的有效性,我们对BSD68进行了消融研究,通过去除其中一个DCN层和SFT层。从表7中可以看出,DCN层和SFT层对于提高AirNet的性能都很重要。
在这里插入图片描述

5. Conclusion

在网络(AirNet)上,没有任何损坏的类型和级别。同时,该方法是一种恢复不同退化情况下图像的单一解决方案,它可以与先验难以预测或退化可能随时间和空间变化的各种实际场景相竞争。大量的实验结果表明,AirNet在定性和定量比较方面都具有优越性。

6. Shortcomings and Broader Impact

虽然AirNet在实验中显示了在三种图像恢复任务及其组合中的优势,但尚不清楚其在模糊和下雪等其他破坏下的表现如何。此外,也值得进一步探讨为什么不同的组合降解会导致不同的结果w.r.t.如第4.5节所示的单一任务。从更广泛的角度来看,虽然AirNet可以适应不同的腐败,避免同一算法对不同退化的多个模型,但仍需要大量的资源来优化方法,从而导致碳排放和间接的气候变暖。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

诊所管理系统免费软件哪个好一点?

不少诊所管理者,想要寻找一款适合自己诊所的免费诊所管理系统。市场上有多个选择,那么,哪个会好一点呢?在选择适合自己诊所的免费诊所管理系统时,考虑系统的易用性、功能全面性、技术支持以及未来可扩展性是非常重要的。下面&…

在AMD GPU上加速大型语言模型的Flash Attention

Accelerating Large Language Models with Flash Attention on AMD GPUs — ROCm Blogs 引言 在这篇博客文章中,我们将指导您如何在AMD GPU上安装Flash Attention,并提供与在PyTorch中标准SDPA比较其性能的基准测试。我们还将测量Hugging Face中多个大型…

win11联想版,如何下载Visual Basic 6.0精简版

一、背景 Visual Basic 6.0精简版、Visual Basic Mini,等 Win11系统,网上找压缩包下载,无法成功。 二、解决 通过下载联想应用商店,在应用商店中下载 步骤一 hi,推荐你使用联想应用商店,商店提供上万款…

积累和消耗,人生本质的两件事

人生的本质其实就两件事,消耗和积累。 纵观你身边所有的人,他们做的所有的事,基本都可以分为两类。 一、积累 二、消耗 比如说感情,在我们每一个人的青春回忆里,都或多或少有一段刻骨铭心的感情,有些人的感…

sklearn深度学习指南:掌握机器学习的利器

sklearn深度学习指南:掌握机器学习的利器! 1. 简介1.1 什么是sklearn?1.2 sklearn的优势和应用领域1.3 为什么要学习和使用sklearn? 2. 安装和环境设置2.1 如何安装sklearn?安装Anaconda(Windows/macOS/Lin…

6.8日志系统

当做大型项目的时候,出了bug可能需要借助于日志检查,小项目一般是打断点。 服务器是一直在运行的,不能停止,可以借助于日志检查错误。 日志分为两种:业务级别的日志(供用户分析业务过程)&…

BarTender软件下载附加详细安装教程

BarTender是美国海鸥科技推出的一款优秀的条码打印软件,应用于 WINDOWS95 、 98 、 NT 、 XP 、 2000 、 2003 和 3.1 版本, 产品支持广泛的条形码码制和条形码打印机, 不但支持条形码打印机而且支持激光打印机,还为世界知名品牌条…

C语言 指针——字符数组与字符指针:字符串的表示与存储

目录 字符串常量 字符串变量? 字符数组的定义和初始化 字符指针的定义和初始化 将字符指针指向一个字符串 用字符数组保存一个字符串 将字符指针指向一个字符数组 使用字符指针的基本原则 使用指针的基本原则 字符串常量 字符串变量?  C 语言…

Steam下载游戏很慢?一个设置解决!

博主今天重装系统后,用steam下载发现巨慢 500MB,都要下载半小时。 平时下载软件,一般1分钟就搞定了,于是大致就知道,设置应该出问题了 于是修改了,如下设置之后,速度翻了10倍。 另外&#x…

神经网络 torch.nn---Convolution Layers

torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) torch.nn和torch.nn.functional的区别 torch.nn是对torch.nn.functional的一个封装,让使用torch.nn.functional里面的包的时候更加方便 torch.nn包含了torch.nn.…

随心笔记,第六更

目录 一、 三步构建 XML转成java bean 1.XML转XSD 2.XSD转JavaBean 3.jaxb 工具类 4.测试 📢📢📢📣📣📣 哈喽!大家好,我是「Leen」。刚工作几年,想和大家一同进步&am…

从零开始手把手Vue3+TypeScript+ElementPlus管理后台项目实战十(整体布局03之界面美化)

删除style.css 删除style.css(和main.ts同级) 并且注释掉main.ts中对style.css的导入。 修改App.vue 添加样式设置高度100% 安装sass pnpm install -D sass修改PageSidebar.vue 修改index.vue 修改src/layout/index.vue src/layout/index.vue添加样式 <style lang&quo…

pyinstaller打包exe多种失败原因解决方法

pyinstaller打包exe多种失败原因解决方法 目录 pyinstaller打包exe多种失败原因解决方法1、pyinstaller安装有问题1.1 安装pyinstaller1.2 采用anconda的环境启动 2、pyqt5与pyside6冲突2.1 打包生成.spec文件2.2 编辑spec文件 3、打包成功后打不开exe&#xff0c;exe闪退3.1 s…

用表头设置控制表格内列的排序和显示隐藏

项目背景 : react ant 需求 : 点击表头设置弹窗 , 拖拽可控制外部表格列的排序 , 开关可控制外部表格列的显示和隐藏 实现效果如下 :注意 : 1. 拖拽效果参考了ant-table中的拖拽效果(这块代码放最后) 2. 后台反了json格式(用is_show控制显示和隐藏 , 我给他传…

把Vue文件转至树莓派上遇到的问题和解决方案

把整个文件夹复制进树莓派后&#xff0c;运行 npm run dev ,报错sh: 1: vite: Permission denied 解决方案&#xff1a;删除项目里的 node_modules 重新 npm install 再运行即可 rm -rf node_modules/ npm install 在安装过程中&#xff0c;遇到下图问题&#xff0c;vulnerabi…

一二三应用开发平台应用开发示例(2)——创建应用、模块、实体及配置模型

创建应用 文档管理系统对于开发平台是一个业务应用。 业务应用是通过平台内置的数据字典来维护的&#xff0c;因此访问系统管理模块下的数据字典管理功能&#xff0c;在实体配置分组下找到“应用编码”&#xff0c;点击行记录上的“字典项”。 在打开的新窗口中&#xff0c;在…

CTFHUB-SQL注入-MySQL结构

目录 sqlmap工具夺flag 查看数据库名 查看数据库中表名 查看第一个表中数据 查看第二个表的数据 手动注入 判断是否存在注入 判断字段数量 查询注入点 查询数据库版本 查询数据库名 查看所有数据库 查看表名 查看表中字段 查看表中数据 本题用到sqlmap工具&…

采用ava+B/S架构开发的工业级UWB(Ultra-Wideband)室内定系统源码UWB定位系统技术接口及技术特点

采用avaB/S架构开发的工业级UWB&#xff08;Ultra-Wideband&#xff09;室内定系统源码UWB定位系统技术接口及技术特点 UWB&#xff08;Ultra-Wideband&#xff09;定位技术本身并不直接连接蓝牙或其他无线通信技术进行定位。然而&#xff0c;在实际应用中&#xff0c;UWB定位技…

鸿蒙轻内核A核源码分析系列五 虚实映射(5)虚实映射解除

虚实映射解除函数LOS_ArchMmuUnmap解除进程空间虚拟地址区间与物理地址区间的映射关系&#xff0c;其中参数包含MMU结构体、解除映射的虚拟地址和解除映射的数量count,数量的单位是内存页数。 ⑴处函数OsGetPte1用于获取指定虚拟地址对应的L1页表项数据。⑵处计算需要解除的无效…

使用MATLAB对地铁站、公交站等求解最短路径

使用MATLAB对城市的地铁站、公交站等站点&#xff0c;根据站点的经纬度坐标和彼此之间的权重&#xff0c;求解其最短路径、途径站点和路程 已知的数据如图&#xff0c;是西安市地铁站点的数据&#xff0c;保存在一个Excel里 如图&#xff0c;每列的内容都在上面&#xff0c;不…