论文阅读: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.mzph.cn/news/850883.shtml

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

相关文章

c++中, 直接写浮点数, 是float 还是 double?

如果直接一个浮点数, 那么他默认是float还是double呢? 测试用例 #include <iostream> using namespace std;int main() {auto x 0.2;float f 0.2;double d 0.2;cout << "x Size : " << sizeof(x) << " bytes" << endl…

vue28:组件化开发和根组件

简单写个点击事件 <template> <div class"app"><div class"box" click"fn"></div></div> </template><script> export default {//导出当前组件的配置项//里面可以提供 data methods computed wat…

AtCoder Beginner Contest 356 G. Freestyle(凸包+二分)

题目 思路来源 quality代码 题解 对n个泳姿点(ai,bi)建凸包&#xff0c;实际上是一个上凸壳&#xff0c; 对于询问(ci,di)来说&#xff0c;抽象画一下这个图&#xff0c;箭头方向表示询问向量 按x轴排增序&#xff0c;并且使得后面的y不小于前面的y&#xff0c;因为总可以多…

C++ Easyx案例实战:Cookie Maker工作室1.0V

前言 //制作属于自己的工作室&#xff01; 注&#xff1a;运行效果以及下载见Cookie Maker 工作室成立程序。 关于Cookie Maker工作室成立的信息&#xff0c;I am very happy&#xff08;唔……改不过来了&#xff09;。 OKOK&#xff0c;第一次用图形库写程序&#xff08;图形…

在开源处理器架构RISC-V中发现可远程利用的中危漏洞

在RISC-V SonicBOOM处理器设计中发现中度危险的漏洞 最近&#xff0c;西北工业大学的网络空间安全学院胡伟教授团队在RISC-V SonicBOOM处理器设计中发现了一个中度危险的漏洞。这个团队的研究人员发现了一个可远程利用的漏洞&#xff0c;该漏洞存在于开源处理器架构RISC-V中。…

单灯双控开关原理

什么是单灯双控&#xff1f;顾名思义&#xff0c;指的是一个灯具可以通过两个不同的开关或控制器进行控制。 例如客厅的主灯可能会设置成单灯双控&#xff0c;一个开关位于门口&#xff0c;另一个位于房间内的另一侧&#xff0c;这样无论你是从门口进入还是从房间内出来&#x…

java web:springboot mysql开发的一套家政预约上门服务系统源码:家政上门服务系统的运行流程

java web&#xff1a;springboot mysql开发的一套家政预约上门服务系统源码&#xff1a;家政上门服务系统的运行流程 家政上门服务系统的优势 服务质量更稳定&#xff1a;由专业的家政人员提供服务&#xff0c;经过严格的培训和筛选。 价格更透明&#xff1a;采用套餐式收费&…

Word多级标题编号不连续、一级标题用大写数字二级以下用阿拉伯数字

Word多级标题编号不连续 &#xff1a; 一级标题用大写数字二级以下用阿拉伯数字&#xff1a;

墨雨云间王星越雨中情深

墨雨云间&#xff1a;王星越的雨中情深&#xff0c;吻上萧蘅&#xff0c;宿命之恋在烟雨朦胧的《墨雨云间》中&#xff0c;王星越饰演的角色&#xff0c;以其深邃的眼神和细腻的演技&#xff0c;将一段宿命之恋演绎得淋漓尽致。当镜头聚焦于他与阿狸在雨中的那一幕&#xff0c;…

(南京观海微电子)——温度对TFT影响及改善方式

温度如何损坏 LCD&#xff1f; 这个工作温度范围会影响设备内的电子部分&#xff0c;超出范围会导致 LCD 技术在高温下过热或在寒冷时变慢。 至于液晶层&#xff0c;如果放在高温下&#xff0c;它会变质&#xff0c;导致它和显示器本身出现缺陷。 LCD 温度限制&#xff1a; 什…

unity3d:GameFramework+xLua+Protobuf+lua-protobuf,与服务器交互收发协议

概述 1.cs收发协议&#xff0c;通过protobuf序列化 2.lua收发协议&#xff0c;通过lua-protobuf序列化 一条协议字节流组成 C#协议基类 CSPacketBase&#xff0c;SCPacketBaseC#用协议基类 proto生成的CS类&#xff0c;基于这两个基类。分别为CSPacketBase是客户端发送至服…

《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆

在0&#xff0c;0点处绘制10个圆。 其实这个题先要记住python不会0&#xff0c;0为原点进行绘画。 它是按半径来画&#xff0c;所以我们要先把turtle这个小画笔送到它应该去的起点。&#xff08;我经常有这样的错觉&#xff0c;每次都是这样想办法把自己拉回来&#xff09; 我…

AI视频教程下载:如何用ChatGPT来求职找工作?

这是一个关于使用ChatGPT找工作的课程&#xff0c;作者分享了自己的求职经验和技巧&#xff0c;介绍了如何使用人工智能来改进个人资料和简历&#xff0c;以及如何研究公司和面试。通过细节处理职业目标、分享个人兴趣和技能、寻求导师和专业发展机会&#xff0c;以及在行业内建…

各地业主们开始换着花样保房价了

不止杭州&#xff0c;还在广州、南京、成都...更多城市蔓延开来 各位有没有想过&#xff0c;为什么会有“保房价” 我想很多人最先听说这个词还是来自杭州业主 的确&#xff0c;作为曾经受房价影响最大的一个城市&#xff0c;杭州业主们可以说是最深谙房价上涨逻辑的那泼人了…

【计算机网络基础知识】

首先举一个生活化的例子&#xff0c;当你和朋友打电话时&#xff0c;你可能会使用三次握手和四次挥手的过程进行类比&#xff1a; 三次握手&#xff08;Three-Way Handshake&#xff09;&#xff1a; 你打电话给朋友&#xff1a;你首先拨打你朋友的电话号码并等待他接听。这就…

为什么在 TypeScript 中应优先使用类型而非接口

类型和接口是每个 TypeScript 程序中常用的强大功能。然而&#xff0c;由于类型和接口在功能上非常相似&#xff0c;这就引出了一个问题&#xff1a;哪一个更好&#xff1f; 今天&#xff0c;我们将评估类型和接口&#xff0c;并得出结论&#xff0c;为什么在大多数情况下你应该…

HikariCP连接池初识

HikariCP的简单介绍 hikari-光&#xff0c;hikariCP取义&#xff1a;像光一样轻和快的Connetion Pool。这个几乎只用java写的中间件连接池&#xff0c;极其轻量并注重性能&#xff0c;HikariCP目前已是SpringBoot默认的连接池&#xff0c;伴随着SpringBoot和微服务的普及&…

ssm汽车在线销售系统

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

稀疏高效扩散模型:推动扩散模型的部署与应用

数据驱动的世界中&#xff0c;生成模型扮演着至关重要的角色&#xff0c;尤其是在需要创建逼真样本的任务中。扩散模型&#xff08;Diffusion Models, DM&#xff09;&#xff0c;以其卓越的样本质量和广泛的模式覆盖能力&#xff0c;已经成为众多数据生成任务的首选。然而&…

nginx: [error] invalid PID number ““ in “/run/nginx.pid“

两种问题&#xff0c;我自己碰到的情况 ./nginx -s reload执行命令后报错 nginx: [error] invalid PID number ““ in “/run/nginx.pid“ 第一种情况&#xff0c;pid被注释了 /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1;// 可能是这里被注释了…