二十五章:用于弱监督语义分割的激活调节和重新校准方案

news2024/11/16 13:04:30

0.摘要

        图像级弱监督语义分割(WSSS)是一项基础而具有挑战性的计算机视觉任务,有助于场景理解和自动驾驶。大多数现有方法利用基于分类的类激活图(CAMs)作为初始伪标签,但这些方法往往关注区分性的图像区域,缺乏针对分割任务的定制特征。为了缓解这个问题,我们提出了一种新颖的激活调节和重新校准(AMR)方案,利用聚光灯分支和补偿分支获得加权的CAMs,提供重新校准的监督和任务特定的概念。具体而言,我们采用了注意力调节模块(AMM)来从通道-空间顺序的角度重新分配特征重要性的分布,从而有助于明确建模通道间的依赖关系和空间编码,以自适应地调节面向分割的激活响应。此外,我们引入了双分支的交叉伪监督,可以看作是一种语义相似性正则化,用于相互改进两个分支。大量实验证明,AMR在PASCAL VOC 2012数据集上取得了最新的最佳性能,不仅超过了使用图像级监督训练的当前方法,还超过了一些依赖于更强监督,如显著性标签的方法。实验证明,我们的方案是即插即用的,可以与其他方法结合以提升其性能。我们的代码可在以下链接获取:https://github.com/jieqin-ai/AMR

1.引言

        语义分割是计算机视觉领域中的一项基础且关键的任务,由于其在许多应用中的广泛应用。它旨在对图像的像素级进行预测,将属于同一对象类别的图像部分聚类在一起。尽管在不同程度上取得了一些进展,但其最近的成功大多在完全监督的设置下实现(Chen等,2017年,2018年)。获得这种精细的像素级注释仍然是一项艰巨的任务,需要大量的人工努力。为了减轻这些昂贵且繁琐的注释,许多研究倾向于采用弱监督方式(Wu等,2020年,2021年),如边界框监督(Dai,He和Sun,2015年),涂鸦监督(Lin等,2016年),点监督(Bearman等,2016年)和图像级监督(Chang等,2020年;Ahn和Kwak,2018年)。图像级弱监督是一种非常有利的方案,因为这种粗糙的注释与实际情况一致,这种弱标签在实践中更容易获取。在我们的工作中,我们专注于图像级弱监督范式。

        先前的图像级弱监督语义分割(WSSS)方法(Lee等,2019年;Singh和Lee,2017年;Wang等,2020b年;Choe,Lee和Shim,2020年)大多采用分类网络生成类激活图(CAMs)(Zhou等,2016年)作为分割的初始伪标签。然而,这种CAM针对分类而设计,缺乏针对分割特性的定制优化。也就是说,分类器似乎只突出显示最具区别性的区域,因此获得的CAM种子只覆盖了与聚光灯CAM中一致的目标对象的一部分,如图1所示。为了解决这个问题,一些方法尝试扩大区别性响应区域并改进初始的CAM种子。SEAM(Wang等,2020b年)在不同转换图像上添加等变性正则化来获取更多的种子区域。类似地,(Wei等,2017年)通过迭代擦除CAM种子,使模型集中关注其他区域。然而,这些方法通常将扩展过程形式化为复杂的训练阶段,例如迭代擦除方式耗时且难以确定最佳迭代次数。此外,它严重依赖于通过分类网络提供的区别性区域,很容易忽视次要的重要区域。

        为了更好地应对上述问题,我们提出了一种新颖的激活调节和重校准方案,称为AMR。该方案利用聚光灯分支和补偿分支为WSSS提供互补和面向任务的CAMs。聚光灯分支表示基本的分类网络以生成CAMs,通常突出显示具有区别性和分类特定的区域,例如马的头部和汽车的窗户(参见图1)。AMR缓解了在先前的工作中使用基于分类的CAMs执行分割任务时的任务差距问题,这有助于提供更多语义分割特定的线索。此外,还使用了一个注意力调制模块(AMM),从通道-空间顺序的角度重新安排激活重要性的分布,有助于自适应地调节面向分割的激活响应。AMR的贡献可以总结如下:

        1.据我们所知,我们是第一个尝试在WSSS中探索插入式补偿分支的人,以提供互补的监督和任务特定的CAMs。补偿分支可以挖掘出分割的关键区域(例如图1中的马的腿和汽车的底盘),这对于突破基于分类的CAMs在分割任务中的应用瓶颈非常关键。补偿CAMs通过重新校准聚光灯CAMs来帮助生成面向分割的CAMs。此外,我们引入了一个交叉伪监督来优化来自双分支的输出CAMs,可以看作是语义相似的正则化,以避免补偿CAMs过于集中在背景上,并使其接近聚光灯CAMs。

        2.我们设计了一个注意力调制模块(AMM),通过在通道和空间维度上依次进行特征调制,鼓励激活图对整个目标对象均匀分配注意力。调制函数被用来重新排列激活特征的分布,试图强调次要特征并惩罚已被聚光灯分支捕捉到的显著特征。通道-空间顺序的方式有助于明确地建模通道间的相互依赖关系和每个层次局部感受野内的空间编码,以自适应地调节面向分割的特征响应。

        3.我们的方法在验证集和测试集上的mIoU分别达到了68.8%和69.1%,在PASCAL VOC2012数据集(Everingham等,2015年)上取得了新的最先进的WSSS性能。大量实验证明,AMR不仅超过了使用图像级监督训练的当前方法,还超过了一些依赖于更强监督(如显著性标签)的方法。实验还揭示了我们的方案是即插即用的,可以与其他方法结合以提升它们的性能。

图1:AMR方案中CAMs的可视化。"聚光灯CAMs"更加关注与传统CAMs类似的区域。"补偿CAMs"有助于挖掘重要但容易被忽视的区域。聚光灯CAMs通过补偿CAMs进行重新校准,并进一步获得"加权CAMs",从而提供更多面向分割的概念。

2.相关工作

2.1.弱监督语义分割

        随着对语义分割的深入研究,一方面,AutoML(Li等,2021;Ren等,2021;Li等,2020,2019;Xuefeng Xiao和Lianwen Jin,2017;Xia和Ding,2020)等基于技术被应用于提高分割质量。另一方面,训练成本低廉的轻量级注释是近年来广泛研究的图像级WSSS。现有的先进方法通常依赖于由分类网络生成的类激活图(CAMs)的种子区域(Zhou等,2016)。这些努力大多可以分为两个方面:生成高质量的CAM种子和改进伪标签。一方面,一些方法直接扩展了CAMs的响应区域,因为原始的激活图只突出显示图像的有区别的区域。(Wei等,2018)使用具有不同扩张率的空洞卷积来增加目标区域。(Wang等,2020b)通过等变正则化在分类网络中从变换后的图像中捕捉不同的区域。另一方面,一些工作集中在基于初始CAMs改进伪标签上。(Kolesnikov和Lampert,2016)探索了改进种子的三个原则,即种子、扩展和约束。(Ahn和Kwak,2018)学习像素之间的关系,并通过随机游走算法传播相似的语义像素。此外,一些方法(Yao等,2021;Lee等,2019)将CAMs作为前景线索,将显著性图(Zhang等,2019)作为背景线索。(Yao等,2021)引入了一个基于图的全局推理单元,以发现非显著区域中的对象。然而,这些方法在迭代和随机方式下进行,可能丢失关键信息。为了解决这个问题,我们提出了一种激活调制和重新校准方案来生成高质量的CAMs。

2.2.注意力机制

        注意机制(Wu, Hu和Yang,2019年;Wu, Hu和Wu,2018年)已被广泛应用于分割网络中,以建立图像的全局上下文关系。Non-local(Wang等,2018a年)是第一个考虑特征图中每个空间点之间的相关性。然后,asymmet(Zhu等,2019年)提出了一个不对称的非局部网络,以加强非局部网络的连接。SE(Hu, Shen和Sun,2018年)通过计算通道之间的交互作用来学习通道特征的重要性。在这项工作之后,(Wang等,2020a年)使用基于通道的卷积来学习交互作用。CBAM(Woo等,2018年)利用空间和通道注意力来突出通道和空间维度中的重要线索。(Cao等,2019年)将长距离依赖关系引入基本的注意力模块。在本文中,我们引入了一个注意力调制模块来增强分割任务中次要但关键的特征。

图2:AMR方案的框架。 (a) 表示AMR的整个流程。AMR由两个分支组成,即聚光灯分支和补偿分支。 "GAP"表示全局平均池化。 (b) 展示了AMM的示意图,其目标是以通道-空间顺序的方式调制特征的激活图。

3.方法论

        在本节中,我们首先简要介绍了用于生成CAMs的传统方法。然后我们介绍了激活调制和重新校准方案(AMR)。下一节介绍了提出的AMM的动机和细节。最后,我们说明了调制函数和训练损失函数。

3.1.预先准备工作

        类激活图(CAMs)(Zhou等,2016年)表示输入图像I ∈ R3×H×W中特定类别的响应区域。使用多标签分类网络对所有类别的特征进行编码,可以利用这些特征图F(I) ∈ RC×H×W在最后的分类层之前提取特征图。C表示特征图的通道数。然后,我们简单地对F(I)进行矩阵乘法来生成CAMs。

        其中M(I) ∈ RN×H×W是获得的CAMs。w T N是用于N个类别的最后一个全连接层的权重。 然而,这些CAMs是以分类为导向的,忽视了语义分割的任务特定性。换句话说,网络是通过基于分类的损失进行优化的,这样可以通过一些具有辨别性的区域来完成分类任务。这将牺牲弱监督语义分割的性能,而弱监督语义分割需要获取整个对象的完整边界。为了解决这个问题,我们提出了激活调制和重新校准(AMR)方案,将初始的CAMs重新校准为更具任务特定性的CAMs。

3.2.激活调节和重新校准方案

        我们在图2中说明了激活调制和重新校准(AMR)方案。AMR包括聚光灯分支和补偿分支。聚光灯分支类似于先前的方法(Wei等,2017年; Jiang等,2019年; Lee,Kim和Yoon,2021年),它使用分类损失来优化自身并生成聚光灯CAMs MS。因为聚光灯分支在训练过程中经常激活信息丰富的特征,所以获得的CAMs主要突出了目标对象的辨别性区域。

        补偿分支被巧妙地设计为聚光灯CAMs的辅助监督作用。它缓解了在先前的工作中使用基于分类的CAMs执行分割任务时的任务差距问题,有助于提供更多语义分割特定的线索。补偿分支可以被视为即插即用的组件,它可以挖掘出聚光灯分支容易忽视的分割关键区域。获得的补偿CAMs MC有助于重新校准聚光灯CAMs MS生成最终的加权CAMs MW,表示如下: 

3.3.注意力调节模块

        提出了注意力调节模块(AMM)来帮助补偿分支提取对语义分割任务至关重要的更多区域。如图2所示,AMM包括通道注意力调节和空间注意力调节。我们首先将特征F(I)输入通道AMM。通道间的相互依赖性通过平均池化和卷积层进行明确建模,这反映了对信息丰富特征的敏感性。受到(Jiang等,2019年)的启发,最敏感的特征对应于具有区分性的区域,次要的特征表示重要但容易被忽视的区域,平淡的特征可能表示背景概念。因此,我们利用调制函数增强次要特征,并抑制最敏感和最不敏感的特征。上述操作可以表示为:

        其中Ac是通道注意力图。我们将Ps表示为空间平均池化函数,H表示卷积层。然后,利用调制函数G来重新分配特征的分布,以突出通道维度中的次要特征。 然后,我们对通道注意力图和输入特征图进行逐元素乘法,生成重新分配的特征,定义为:

        其中A˜c表示扩展到特征图维度的通道注意力图。Fc(I)表示输出特征图。 为了进一步建模空间维度上的空间间关系,我们还引入了一个空间AMM,紧接在通道AMM之后。具体而言,我们首先在通道维度上对Fc(I)进行通道平均池化Pc,然后对它们应用卷积操作H。输出特征图显示了空间维度上特征的重要性。然后我们对输出特征图进行调制函数操作,增加次要激活。实现过程可以表示为:

        其中As是空间注意力图。As中的高激活值反映了容易被忽视的区域。然后我们在空间注意力图和通道注意力图之间进行逐元素乘法,以生成调制后的注意力图。这个过程可以表示为:

图3:调制函数的示意图。轴上的值表示激活分布的范围。(a)表示原始的激活分布。(b)表示重新分布的激活,通过高斯函数进行调制以突出次要激活。

3.4.调节函数

        其中µ和σ是激活图的均值和标准差。我们按照µ和σ的设置来映射G中的激活值。 我们在图3中可视化了调制前后的激活分布。我们观察到,高斯投影大大抑制了最重要和最不重要的激活。它强调次要激活来直接提取容易被忽视的区域,这对于分割任务至关重要。此外,我们还探索了直接设置阈值来改变重要性分布。但是很难确定适用于所有图像的统一阈值。不同调制函数的实验结果总结在表4中。

3.5.损失函数

        在训练过程中,我们使用全局平均池化操作和全连接层来获取预测值Y,它表示所有类别的类别概率。最后,我们使用多标签软边缘损失函数来进行训练。表1:在PASCAL VOC2012验证集和测试集上与最先进方法的比较。所有结果都以mIoU(%)进行评估。I表示图像级标签,S表示显著性标签。

4.实验

4.1.数据集和评估策略

        我们在PASCAL VOC2012数据集(Everingham et al. 2015)上评估我们的方法。该数据集包含20个前景对象类别和一个背景类别。按照常见的方法(Wei et al. 2017; Wang et al. 2020b),我们使用10,582张图像进行训练,1,449张图像进行验证,以及1,456张图像进行测试。在整个训练过程中,我们只使用图像级别的类别标签进行监督。每个图像可能包含多个类别标签。为了评估实验的性能,我们计算所有类别的平均交并比(mIoU)。

4.2.实现细节

        我们使用ResNet50 (He et al. 2016)作为AMR的主干网络。我们使用批大小为16的训练数据进行8个epoch的训练。初始学习率设置为0.01,动量设置为0.9。我们使用随机梯度下降算法进行网络优化,并设置0.0001的权重衰减。我们还对训练图像进行了一些典型的数据增强操作,如随机缩放和水平翻转。在获得CAMs后,我们采用随机游走算法对伪标签进行优化。在获得用于分割的最终伪标签后,我们使用DeepLab-v2 (Chen et al. 2017)和ResNet101 (He et al. 2016)作为主干网络进行训练,该网络在ImageNet (Russakovsky et al. 2015)。

4.3.与当前最先进方法的对比

在语义分割任务上的比较。我们使用DeepLab v2 (Chen et al. 2017)和训练集的伪标签进行实验。我们在PASCAL VOC2012验证集和测试集上报告结果,如表1所示。一方面,AMR明显优于基于图像级弱监督的方法,并取得了最新的最佳性能。AMR在验证集上的mIoU达到了68.8%,在测试集上为69.1%,分别比DRS (Kim, Han, and Kim 2021)高出2.0%和1.7%。另一方面,AMR甚至在更细粒度的监督线索下取得了更好或相当的结果。例如,AMR在验证集上超过了(Yao et al. 2021)的0.5%,在测试集上超过了0.6%,而后者使用了额外的显著性监督。这是一个令人鼓舞的结果,它揭示了我们的方法可以通过从大量且廉价的标注中学习来获得令人印象深刻的结果,这对于实际应用非常有益。

CAM和伪标签的比较。我们的方法旨在提供特定于分割的CAM以改善伪标签的质量。为了验证我们的方法在生成CAM和伪标签方面的有效性,我们总结了PASCAL VOC2012训练集上几种竞争方法的CAM和伪标签结果(见表2)。结果显示,AMR分别在CAM和伪标签上达到了56.8%和69.7%的mIoU。我们的方法在CAM上超过了先进的SEAM方法(Wang et al. 2020b) 1.4%,在伪标签上超过了CONTA方法(Zhang et al. 2020b) 1.8%。值得注意的是,SEAM方法(Wang et al. 2020b)使用Wide ResNet38 (Wu, Shen, and Van Den Hengel 2019)作为主干网络,在他们的工作中比ResNet50取得了更好的性能。实验结果表明,我们的补偿CAM可以有效提高初始CAM和伪标签的质量。为了说明AMR如何提高伪标签的质量,我们在图4中展示了AMR生成的CAM。从这个图中,我们可以得出以下观察结果:i) 聚光灯分支生成的聚光灯CAM主要关注区分性区域。ii) 补偿CAM突出显示了对目标至关重要但容易被忽略的区域。这是因为AMM帮助调制激活图以强调次要特征。iii) 加权CAM比聚光灯CAM包含更完整的区域,这与语义分割任务的本质一致。

图4:我们的方法在VOC2012训练集上生成的CAM的可视化结果。 (a) 输入图像。 (b) 聚光灯分支生成的聚光灯CAM。 (c) 补偿分支生成的补偿CAM。 (d) 由两个互补CAM合并得到的加权CAM。

表2:VOC2012训练图像上伪标签的质量结果(mIoU)。“CAM”列表示分类网络生成的初始CAM种子。“Pseudo”表示用于监督分割的经过精细化的伪标签。

表3:我们方法中每个组件的不同效果比较。“Baseline”代表单个分类网络。“AMMc”和“AMMs”分别表示提出的通道AMM和空间AMM。Lcps代表语义正则化。

表4:不同调制函数的比较。使用VOC2012训练图像的CAM评估mIoU。

4.4.消融研究

核心组件的有效性。为了验证我们方法中核心组件的有效性,我们在只包含聚光灯分支的单个分类网络(简称为“基准线”)的基础上逐渐增加每个关键组件。我们在表3中将不同组件的性能与变体“基准线”进行了比较。 如表3所示,AMMc和AMMs分别将CAM的mIoU提高到52.9%和53.5%。整个AMM实现了54.9%的mIoU。此外,交叉伪监督Lcps有助于提高1.9%的性能。整个框架实现了最佳性能56.8%。这些消融实验证明了我们方法中每个核心组件的有效性。

调制函数的有效性。在表4中,我们比较了图3中介绍的不同调制函数的结果。“Threshold”调制函数在超过阈值时将激活设置为1,当激活低于阈值时设置为0,这可以在基准线上获得1.8%的改进,因为它保留了最重要的特征并增强了一些较小的激活。"Gauss"函数实现了56.8%的mIoU,在所有候选函数中排名第一。这可能是因为高斯函数可以适当地重新分布激活图以挖掘一些容易被忽视的重要概念。

重新校准系数的有效性。为了探索最佳的重新校准系数(ξ),我们在表5中报告了结果。ξ表示聚光灯CAM对加权CAM的贡献。我们观察到,将ξ设置为0.5可以获得最佳结果,即56.8%。当增加或减小ξ的值时,性能会显著下降,这可能是因为它破坏了两个CAM之间区域补偿的平衡。当系数接近0.1或0.9时,框架近似为单个分支,这会带来显著的性能下降。

4.5.泛化讨论

        为了验证AMR的泛化性,我们将提出的AMR扩展到两种先进的方法,即IRNet(Ahn, Cho和Kwak 2019)和SEAM(Wang等人2020b)。我们保留他们论文中的原始训练设置,并比较初始CAM的结果。如表6所示,我们的方法在IRNet上实现了8.5%的mIoU改进。对于基准线SEAM,我们将分类骨干网络转换为Wide ResNet38(Wu, Shen和Van Den Hengel 2019),与SEAM相同。结果表明,AMR将CAM的质量提高了2.5%,这证明了我们的方法与其他方法相结合以改进基于分割的CAM的泛化性和鲁棒性。

4.6.可视化分割结果

        如图5所示,我们在PASCAL VOC2012(Everingham等人2015)的验证集上将我们的方法与IRNet(Ahn, Cho和Kwak 2019)进行了分割结果的比较。从图中可以看出,IRNet(Ahn, Cho和Kwak 2019)的结果在一些模糊的区域经常出现错误判断。相反,我们的方法成功地挖掘出更多属于目标对象的区域,从而实现了更优秀的分割性能。

图5:PASCAL VOC2012验证集上的定性结果。(a) 输入图像。(b) 真实标签。(c) IRNet(Ahn, Cho和Kwak 2019)的分割结果。(d) 我们方法的分割结果。

表5:与不同的重新校准系数的比较。 mIoU是在VOC2012训练图像的CAM上进行评估的。

表6:AMR在IRNet(Ahn, Cho和Kwak 2019)和SEAM(Wang等人2020b)上的泛化结果。

5.结论

        在本文中,我们提出了一种新颖的激活调节和校准(AMR)方案用于弱监督语义分割(WSSS),它利用了一个聚光灯分支和一个即插即用的补偿分支,以获取加权的CAM并提供更多面向语义分割的概念。设计了一个AMM模块,从通道-空间顺序的角度重新排列特征重要性的分布,有助于突出一些对分割任务至关重要但容易被忽视的区域。在PASCAL VOC2012数据集上进行了大量实验,结果表明,AMR实现了弱监督语义分割的最新技术性能。

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

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

相关文章

Leetcode刷题---C语言实现初阶数据结构---单链表

1 删除链表中等于给定值 val 的所有节点 删除链表中等于给定值 val 的所有节点 给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.valval的节点,并返回新的头节点 输入:head [1,2,6,3,4,5,6], val 6 输出:[…

Tomcat 的使用(图文教学)

Tomcat 的使用(图文教学) 前言一、什么是Tomcat?二、Tomcat 服务器和 Servlet 版本的对应关系三、Tomcat 的使用1、安装2、目录介绍3、如何启动4、Tomcat 的停止5、如何修改 Tomcat 的端口号6、如何部暑 web 工程到 Tomcat 中6.1 方式一6.2 …

建设银行秋招指南,备考技巧和考试内容详解

建设银行秋招简介 银行作为非常吃香的岗位,每年都有不少同学通过投递简历,进入笔试,再到面试成功,成功到银行就职,也有相当一部分同学因为信息差,符合条件却没有报名。无法进入银行工作。 建设银行的秋招…

从保存受限的手机APP中提取文件(读取Android系统中的新增缓存文件)

这个手机APP的权限可能设置了无法在应用内保存文件,但是这个文件实际上一定存在于本地的某个地方,本文的方法通过遍历最后修改日期在今天的文件,很容易就可以找到它。 首先安装一个QPython,这个软件可以允许你在安卓手机上运行Py…

Linux常用命令——dpkg-reconfigure命令

在线Linux命令查询工具 dpkg-reconfigure Debian Linux中重新配制一个已经安装的软件包 补充说明 dpkg-reconfigure命令是Debian Linux中重新配置已经安装过的软件包,可以将一个或者多个已安装的软件包传递给此指令,它将询问软件初次安装后的配置问题…

平板光波导中导模的(注意不是泄露模)传播常数β的matlab计算(验证了是对的)

参照的是导波光学_王建(清华大学)的公式(3-1-2、3-1-3),算的参数是这本书的图3-3的。 function []PropagationConstantsMain() clear;clc;close all lambda01.55;%真空或空气中的入射波长,单位um k02*pi/lambda0; m3;%导模阶数(需要人为指定) n11.62;%芯…

Godot 4 源码分析 - 动态导入图片文件

用Godot 4尝试编一个电子书软件,初步效果已经出来,并且通过管道通信接口可以获取、设置属性、调用函数,貌似能处理各种事宜了。 其实不然,外因通过内因起作用,如果没把里面搞明白,功能没有开放出来&#x…

Android 13(T) - Media框架(1)- 总览

从事Android Media开发工作三年有余,刚从萌新变成菜鸟,一路上跌跌撞撞学习,看了很多零零碎碎的知识,为了加深对Android Media框架的理解,决定在这里记录下学习过程中想到的一些问题以及一些思考,也希望对初…

国产颗粒更快更稳,价格厚道的光威天策弈系列DDR4内存条值得安排

想要用最少的费用打造出一台性能强悍的电脑,自己动手DIY组装电脑是个更好的选择,特别是今年硬盘和内存方面降价潮此起彼伏,出现了很多神价,高性能内存和硬盘对平台性能提升的效果也是非常显著的。 相比于传统大厂的内存&#xff0…

心法利器[92] | 谈校招:刷题和笔试准备

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

Linux NUMA架构(非统一内存访问)

NUMA架构 NUMA Architecture| Non Uniform Memory Access Policy/Model | Numa Node Configuration (CPU Affinity) NUMA架构产生的原因 cpu的高速处理功能和内存存储直接的速度会严重影响cpu的性能。传统的计算机单核架构,cpu通过内存总线(内存访问控制器)直接连接到一…

【Linux基础】WSL安装Ubuntu

说明 本文使用的Windows环境是Windows 11 专业版。 WSL现在有二代WSL2,后续都通过WSL2来安装Linux,使用的是Ubuntu发行版,版本是20.04。 安装过程使用了PowerShell,且是管理员权限打开的。 参考适用于 Linux 的 Windows 子系统…

【 Spring AOP学习二】统一功能处理:拦截器异常返回数据格式

目录 一、用户登录权限效验 🍑1、Spring拦截器实现用户统一登录验证(重要) (1)定义一个拦截器 (2)将自定义拦截器加入到系统配置中 🍑2、拦截器实现原理 🍑3、统一…

car tire

汽车轮胎规则参数 小车、轿车轮胎规格参数图解-有驾 半挂车轮胎尺寸多少 货车轮胎尺寸对照表【汽车时代网】

二叉树的最大深度和最小深度(两种方法:递归+迭代)

二叉树的最大深度: class Solution { public:int maxDepth(TreeNode* root) {//DFS 深度优先搜索if(rootNULL) return 0;//深度等于max(左子树的深度,右子树的深度)1;return max(maxDepth(root->left),maxDepth(roo…

QT自定义控件实现并导入

QT自定义控件 介绍 QT Creator自定义控件和designer控件导入 1.安装QT5.7.1 2.将QT编译器目录、lib目录、include目录导入path 使用说明 使用说明按照 1.创建QtDesigner自定义控件工程,打开Qt Creator,创建一个Qt 设计师自定义控件,如下图所示&#xf…

靠着AI自动生成视频撸自媒体收益,赚了包辣条~

友友们,小卷今天给大家分享下如何通过AI自动生成视频,只需要3分钟就能做出一个视频,把视频发到B站、抖音、西瓜上,还能赚包辣条哦~ 文末给大家准备了AI变现的案例及AIGC知识库,记得领取哦! 1.收益 先看看收…

手写SpringBoot模拟核心流程

首先,SpringBoot是基于的Spring,所以我们要依赖Spring,然后我希望我们模拟出来的SpringBoot也支持Spring MVC的那一套功能,所以也要依赖Spring MVC,包括Tomcat等,所以在SpringBoot模块中要添加以下依赖&…

13. Mybatis-Plus

目录 1. MyBatis-Plus 简介 2. 新建项目 3. 添加依赖 4. 配置数据库 5. 编码 1. MyBatis-Plus 简介 通过官网:MyBatis-Plus MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyB…

浅谈 AI 大模型的崛起与未来展望:马斯克的 xAI 与中国产业发展

文章目录 💬话题📋前言🎯AI 大模型的崛起🎯中国 AI 产业的进展与挑战🎯AI 大模型的未来展望🧩补充 📝最后 💬话题 北京时间 7 月 13 日凌晨,马斯克在 Twiiter 上宣布&am…