【半监督图像分割 2023 】BHPC

【半监督图像分割 2023 】BHPC

论文题目:Semi-supervised medical image segmentation via hard positives oriented contrastive learning

中文题目:通过面向硬阳性的对比学习进行半监督医学图像分割

论文链接:

论文代码:https://github.com/PerPerZXY/BHPC

论文团队:

发表时间:

DOI:

引用:

引用数:

摘要

半监督学习(Semi-supervised learning, SSL)是解决模式识别和医学图像分割中标注稀缺性问题的常用技术,主要集中在两个关键问题上:1)学习结构良好的可分类嵌入空间,2)建立嵌入空间到像素空间的鲁棒映射

  • 在本文中,为了解决第一个问题,我们提出了一种硬正定向对比(HPC)学习策略来预训练基于编码器-解码器的分割模型

    与传统的对比学习倾向于只关注硬阴性不同,我们的HPC学习策略还关注硬阳性(即具有相同类别但与锚点不同特征表示的样本),这被认为在为半监督医学图像分割提供判别知识方面发挥更重要的作用。具体来说,HPC由两个层次构成,包括无监督图像级HPC (IHPC)和监督像素级HPC (PHPC),使编码器学习的嵌入空间具有局部和全局感知。特别是,PHPC学习策略以基于区域的方式实现,在提供更多多粒度信息的同时节省了内存使用。

  • 针对第二个问题,我们在预训练的解码器中插入了几个特征交换(FS)模块。这些FS模块旨在扰动中间嵌入空间到像素空间的映射,试图鼓励更稳健的分割预测
  • 在两个公共临床数据集上的实验表明,我们提出的框架在很大程度上超过了最先进的方法。

1. 介绍

医学图像分割是计算机视觉和模式识别的一项基本任务,近年来随着深度学习(DL)的发展取得了重大进展[1-3]。通过使用大量标记数据进行训练,这些基于数据驱动的基于深度学习的方法可以以全监督的方式生成有希望的分割结果。但在临床中,医学图像的标注耗时长,专业性强,这对上述全监督方法提出了现实挑战。为了缓解标注稀缺性的问题,一个可行的解决方案是采用基于半监督学习(SSL)的方法来有效地利用标记和未标记的数据

一般来说,分割方法的一个关键问题是学习一个结构良好的嵌入空间,使每个像素可以轻松准确地分类。但是,对于SSL设置,这可能更具挑战性,因为几乎没有像素级监督。为此,一些研究工作致力于探索有效的预训练策略,使分割模型能够从嵌入空间中提取判别特征,从而大大提高SSL的性能[4]。其中,对比学习(CL)以其强大的提取能力受到了表征学习界的广泛关注没有注释的判别特征。CL的核心思想在于,给定一个锚点样本,鼓励语义相似的样本(或阳性)聚集在锚点周围,而不相似的样本(或阴性)则被迫远离锚点。基于这一理念,CL已被证明对图像分类等许多图像级下游计算机视觉任务是有益的[5]。为了使CL适应语义分割等密集预测任务,一些研究试图通过对比局部像素级表示而不是全局图像级表示来定制像素级CL以适应分割任务[6,7]。此外,一些艺术[8,9]试图从局部层面和全局层面形成双层CL方案,进一步提升CL的性能。由于局部和全局线索对于学习有意义的分割嵌入空间都很重要,因此这些具有双级别方案的方法通常比仅关注单级别CL的方法有显着改进。

尽管如此,大多数现有的基于对比学习的方法都是简单而统一地根据类别等固有设置构建正、负样本,并对其进行平等对待,没有进行有效的区分(如图1(a)所示),忽略了正、负样本聚类内部的分布差异。考虑到分布边缘的样本更靠近决策边界,Robinson等[10]提出了对硬负(靠近锚点的负,如图1(b)所示)进行更多约束,并揭示了它们有助于将学习到的知识空间向决策边界扩展。此外,之前在自然图像分类/分割任务方面的一些工作(Alonso等[11];Wang等人[12]也证实了硬否定对度量学习至关重要。然而,硬阳性(远离锚点的阳性,如图1©左侧所示)的巨大潜力在大多数当前分割模型中仍未得到充分开发。特别是在医学图像分割领域,这个问题更值得关注,因为硬阳性比硬阴性出现的频率更高。直观地说,更多硬正面的原因来自以下两个因素。一方面,由于医疗数据采集的程序、设备或实验参数的异质性,同一器官/类别在不同的图像/病例中往往具有巨大的特征差异。另一方面,即使是同一幅图像,由于边缘不清晰和可能存在的噪声,同一器官/类别的不同区域的像素级特征也会有很大差异。上述两个因素经常导致错误分类,其中一些应该属于同一类(正数)的硬样本(像素)被分类到其他类中(如图2所示)。鉴于这一观察结果,我们认为硬正数也可以或更好地提供判别知识,以形成良好的嵌入空间,并从另一个角度指出医学分割任务中的决策边界(如图1©所示)。在我们的研究中,我们希望将硬负选择策略和我们提出的硬正选择策略整合到双水平CL中,并进一步使用它来预训练特定的SSL框架,而很少甚至不需要额外的监督。

image-20240217214032187

除了形成结构良好的嵌入空间外,半监督分割的另一个关键问题是建立从嵌入空间到输出像素空间的鲁棒映射,当全监督模型退化为具有稀缺标记数据的半监督模型时,这可能会困难得多。为了解决这个问题,已经进行了大量的研究,开发了各种SSL策略,其中伪标签和一致性正则化是两种常用的技术。具体而言,伪标记方法[13,4]将像素级模型预测作为未标记数据的伪标签,并使用这些生成的伪标签进行迭代自训练。然而,由于监管的限制和可能产生的噪音,伪标签的质量很难得到保证。一致性正则化尝试从另一个方面执行SSL,它假设模型预测对于不同的扰动应该是不变的。最近,MixMatch[14]和FixMatch[15]成功地将一致性正则化策略与基于伪标签的自训练框架结合起来,取得了最先进的性能。然而,这些组合研究往往只在输出水平施加一致性约束,在输入水平施加扰动,很少考虑中间嵌入空间。这种端到端的约束会给从嵌入空间到输出像素空间的鲁棒映射学习带来很大的负担。鉴于此,在中间嵌入空间中加入更多的扰动应该有利于减轻这种负担,进一步增强学习映射的鲁棒性

在本文中,为了更好地解决上述两个关键问题,我们提出了一种新的三阶段双层面的硬正性导向半监督医学图像分割的对比学习框架。前两个阶段对编码器-解码器模型进行预训练,目的是全面获得结构良好的嵌入空间。具体而言,这两个阶段都配备了一种新颖的硬阳性导向对比(HPC)学习策略,该策略创新性地专注于选择硬阴性样本之外的硬阳性样本。特别地,HPC学习策略分别从前两个阶段的两个层次构建。第一阶段采用无监督图像级HPC (IHPC)学习策略来挖掘图像级硬阳性,第二阶段采用监督像素级HPC (PHPC)学习策略来挖掘像素级硬阳性。这两个阶段共同挖掘出更多的线索来构建判别嵌入。在这种双层硬正CL结构的指导下,鼓励模型产生鲁棒表示。然后,第三阶段在基于伪标签的SSL框架上采用简单而有效的一致性正则化策略,进一步构建从嵌入空间到像素空间的鲁棒映射。该策略是通过我们提出的解码器中的特征交换(FS)模块来实现的,该模块旨在对中间嵌入空间而不仅仅是输入空间增加更多的扰动,并提高像素级建模的能力。

总的来说,我们的主要贡献有四个方面:(1)除了关注硬阴性样本外,我们还提出了一种针对硬阳性样本的新型双水平CL策略,以充分探索其中包含的判别知识,从而产生无监督IHPC学习策略和监督PHPC学习策略。通过将上述双层CL注入前两个预训练阶段,我们提出的方法可以学习具有全局和局部感觉的结构良好的嵌入空间,促进半监督分割任务的像素分类。(2)我们通过计算其在大区域和小区域内/跨区域的损失而不是单独在整个特征映射中计算损失来仔细实现PHPC学习策略。这不仅缓解了像素级对比损失对内存的过度消耗要求,而且丰富了多粒度信息,便于更全面的对比学习。(3)与大多数SSL方法仅在输入层扰动增强视图引入一致性不同,我们还设计了特征交换(FS)模块,通过交换未标记数据的部分特征对中间嵌入空间产生更多扰动,从而进一步增强了学习映射的鲁棒性。(4)在两个公共临床数据集上获得的实验结果表明,我们提出的方法在定性和定量度量方面都优于最先进的方法。据我们所知,这项工作是第一次将硬阳性策略注入到医学图像分割的双层对比学习中。

2. 相关工作

2.1 半监督医学图像分割

在临床中,由于标注成本巨大,大量未标注的医学图像未被使用。为了充分利用这些数据,许多研究都采用了半监督学习(SSL),旨在挖掘包含的知识以提高分割性能。一般来说,有两种流行的SSL范例。一种是伪标注[13,16]。例如,Fan等[13]提出先对未标记的图像进行伪标签预测,然后将这些伪标签图像与人工标记的图像一起参与分割模型的训练。通过几轮伪标签训练,模型的性能得到了提高。Seibold等[16]根据标记图像中相似的语义对偶为未标记的图像分配伪标签,在一定程度上避免了确认偏差。另一种SSL范例是一致性正则化[17,18]。例如,Li等人[17]基于均值教师模型研究了变换后的图像之间的一致性[19],提高了分割预测的泛化程度。Liu和Tan[18]提出了半监督学习的确定性驱动一致性损失(certain -driven Consistency Loss, CCL),利用一致性损失中的预测不确定性,让学生模型从可靠的目标中动态学习,与现有方法相比,性能得到了提高。此外,不确定性估计[20,21]、注意力[6]、共同训练[22]、课程学习[23]和相互学习[24]等机制被进一步纳入一致性正则化中,以确保预测的可靠性。除了上述方法外,也有研究考虑将伪标记和一致性正则化结合起来,以一种简单而有效的方式,如MixMatch[14]和FixMatch[15],并证明了它们在图像分类任务上的优越性。

2.2 对比学习

自监督学习通过从未标记的数据中学习有效的嵌入,为计算机视觉任务提供了好处。这样的成功是基于一个共识,即更高质量的嵌入可以获得更好的性能收益。近年来,自我监督学习的代表——对比学习[25,7]受到了越来越多的关注。对比学习的核心是学习一个强大的嵌入空间,可以帮助在数据集中区分相似(正)对和不相似(负)对。从这种结构良好的嵌入空间中得到的嵌入有望对下游的视觉任务做出重大贡献。如Xie等[7]提出采用全局图像和局部patch之间的对比学习,提高目标检测的性能。Chen等人[25]也提出了一种使用动量对比学习的COVID-19诊断方法,训练编码器用于特征表示和原型网络用于分类,并在两个公开可用的COVID-19 CT数据集上展示了优异的性能。与这些任务相比,语义分割需要更密集、更精细的嵌入。为此,Alonso等[11]建立了像素级的对比学习,生成局部特征嵌入进行语义分割。Yuan等人提出了一种用于弱监督语义分割(WSSS)的多策略对比学习(MuSCLe)框架,该框架利用不同层次(图像、区域、像素和对象边界)的对比样本对来改进特征表示,并在PASCAL VOC 2012数据集上实现最先进的性能。Chaitanya等[8]开发了一种两步自监督对比学习方案来学习图2。海马数据集特定扫描上分割结果的可视化。

image-20240217214041762

这里展示了两种基于简单或硬负向对比学习的半监督方法进行比较,包括SCLM[4]和SimSiam (Chen和He, 2021)。可以看出,在某些情况下,它们相对容易出现将目标类分类为背景类(分割不足)或其他类(误分割)的错误(用圆圈标出),而我们提出的方法同时关注硬正和硬负样本,可以在一定程度上避免这些问题。C. Tang等。在预训练阶段从未标记数据中提取全局和局部特征。Hu等[4]进一步在类似的两步对比学习框架中引入标签信息,以获得更高质量的嵌入,提高分割性能。然而,这些方法最多考虑的是如何利用来自负样本的信息,而很少考虑硬正样本中的判别信息,这些信息也可以指示决策边界。我们认为,探索硬阳性可以进一步促进对比学习的性能,有助于为下游分割任务学习更具代表性的嵌入空间。

3. 方法

我们提出的方法的架构如图3所示,其中包括三个阶段。在第一阶段,两批增强的未标记数据被送入编码器E和投影仪P1,以获得实时图像级表示。同时,维护一个内存库M来存储先前生成的表示。在此基础上,设计了一种无监督图像级硬正定向对比(IHPC)学习策略,使编码器E能够形成结构化的特征空间。然后,在第二阶段,预训练的编码器E与解码器D和另一个投影仪P2一起接收不同的增强标记数据作为输入,以产生分割类感知嵌入。在每个嵌入中,衍生出多个大小区域,并开发了基于区域的像素级硬正定向对比(PHPC)学习策略来计算这些区域内和交叉标记像素上的损失。因此,编码器E和解码器D被赋予了生成判别特征空间进行逐像素分割的能力。最后,在第三阶段,训练有素的编码器E和解码器D进一步适应半监督医学图像分割任务。其中,我们采用自训练策略对未标记的数据生成伪标签,从而指导分割像素的预测。在此期间,提出了特征交换(FS)模块,并将其加入到解码器中,以增强嵌入空间中的扰动,提高分割预测的鲁棒性。在下面的小节中,我们将首先简要介绍硬阳性样品的原理,然后再详细说明我们方法中的每个阶段。

3.1 硬阳性样品原理

受Robinson等人[10]的启发,我们提出了硬阳性样本应遵循的两个指导原则:

原则1。所选的硬阳性图像应该与有监督情况下的锚具有相同的标签,或者与无监督情况下的锚具有相同的图像内容。

原则2。所选硬阳性体在埋设空间内应尽可能远离锚体。

简而言之,我们认为与锚点更不相似的阳性样本“更硬”。实际上,这些硬正值可以为模型训练带来更多的梯度贡献,揭示更多的判别知识[10]。基于以上两个原则,我们提出了图像级和像素级两种硬正性取向对比(HPC)学习策略,分别称为图像级硬正性取向对比(IHPC)学习策略和像素级硬正性取向对比(PHPC)学习策略。此外,我们的方法还引入了负样本来计算损耗。

为简单起见,我们在以下小节中省略了面向损失的硬消极因素,而只关注硬积极因素。

image-20240217112702305

3.2 第一阶段:无监督图像级对比学习

3.2.1 处理流程

本阶段拟在无监督IHPC学习的指导下,在未标记数据上预训练编码器E,使编码器E能够生成图像级的判别特征表示。在我们的问题设置中,未标记的数据集记为 D u = { X i } i = 1 N D^{u}=\{X_{i}\}_{i=1}^{N} Du={Xi}i=1N,其中 X i ∈ R C × H × W X_i\in R^{C\times H\times W} XiRC×H×W表示一个特定的图像,N为总数,C、H、W分别为 X i X_i Xi的通道号、高度和宽度。为每个输入 X i X_i Xi,我们对它进行两个不同的增广得到两个共轭图像 X i a , X i b X_{i}^{a},X_{i}^{b} Xia,Xib。然后通过编码器E和投影仪 P 1 P_1 P1将这两幅图像投影到图像级特征空间中,产生两个图像级表示 ε i , ε i + \varepsilon_{i},\varepsilon_{i}^{+} εi,εi+。上述过程的数学表达式为 ε i , ε i + = P 1 ( E ( X i a , X i b ) ) \varepsilon_{i},\varepsilon_{i}^{+}=P_{1}(E(X_{i}^{a},X_{i}^{b})) εi,εi+=P1(E(Xia,Xib))。与MoCo[26]类似,我们将 ε i \varepsilon_{i} εi作为锚样本, ε i + \varepsilon_{i}^+ εi+作为正样本。表示为 { ε j − } \{\varepsilon_{j}^{-}\} {εj}的其他图像的表示被视为负样本。为了收集尽可能多的负样本,我们维护一个内存库M来存储它们,并用动态的 ε i \varepsilon_{i} εi更新M,同时丢弃最旧的 ε j − \varepsilon_{j}^{-} εj。基于锚点样本 ε i \varepsilon_{i} εi、正样本 ε i + \varepsilon_{i}^+ εi+和负样本 { ε j − } \{\varepsilon_{j}^{-}\} {εj},我们计算了IHPC学习的以下损失。

3.2.2 IHPC学习

对于对比学习,性能很大程度上取决于判别样本的构造。然而,大多数方法仅通过利用负样本来考虑这一点,而忽略了阳性中包含的强判别信息,特别是在那些硬阳性中。因此,在第一阶段,我们尝试将非浪漫的对比学习提升为IHPC学习。其核心是对特征空间中距离较远的锚正对赋予更大的权值,可以表示为:
w 1 = exp ⁡ ( − β i m g ∗ r 1 ( ε i , ε i + ) ) , w_{1}=\exp\bigl(-\beta_{img}*r_{1}\bigl(\varepsilon_{i},\varepsilon_{i}^{+}\bigr)\bigr), w1=exp(βimgr1(εi,εi+)),
其中βimg是图像级浓度超参数[27],“∗”表示元素乘法,r1(⋅)表示用于测量对(ε I, ε+ I)的距离(即硬度)的内点积。请注意,我们并没有人为地给出一个阈值来强制将样本分类为硬或不硬,而是让网络通过相似性度量来自行判断。这种加权策略可以强制编码器E更多地关注那些更难的正信息,并学习更多的图像级知识。由此,第一阶段IHPC学习的损失可表述为:
L I H P C = − 1 ∣ A I ∣ ∑ ϵ i ∈ Λ I l o g exp ⁡ ( ε i ⋅ ε i + / τ ) ∗ w 1 exp ⁡ ( ε i ⋅ ε i + / τ ) ∗ w 1 + ∑ ϵ j − ∈ S i e x p ( ε i ⋅ ε j − / τ ) , L_{IHPC}=-\frac{1}{|A_{I}|}\sum_{\epsilon_{i}\in\Lambda_{I}}log\frac{\exp(\varepsilon_{i}\cdot\varepsilon_{i}^{+}/\tau)*w_{1}}{\exp(\varepsilon_{i}\cdot\varepsilon_{i}^{+}/\tau)*w_{1}+\sum_{\epsilon_{j}^{-}\in S_{i}}exp(\varepsilon_{i}\cdot\varepsilon_{j}^{-}/\tau)}, LIHPC=AI1ϵiΛIlogexp(εiεi+/τ)w1+ϵjSiexp(εiεj/τ)exp(εiεi+/τ)w1,
式中, A I A_{I} AI为图像级锚点集, S i S_{i} Si为锚点εi的负集。 ε j − ∈ S i \varepsilon_{j}^{-}\in S_{i} εjSi表示从内存库加载的相应的负样本。τ是一个温度超参数。

3.3 步骤二: 监督像素训练

3.3.1 流程

经过IHPC学习的预训练后,在监督式PHPC学习的指导下,在第二阶段的标记数据上进一步优化编码器E,形成像素级判别特征空间。在这里,我们将标记的数据集定义为 D l = { X i , Y i } i = N + 1 M \mathscr{D}^{l}=\{X_{i},Y_{i}\}_{i=N+1}^{M} Dl={Xi,Yi}i=N+1M,其中 Y i ∈ { 0 , 1 } H × W Y_{i}\in\{0,1\}^{H\times W} Yi{0,1}H×W表示图像 X i X_i Xi的分割标签。与第一阶段相同,我们采用相同的增强技术对Xi进行增强,从而得到成对的增强图像 X i a X_i^{a} Xia X i b X_i^{b} Xib。然后,我们将它们与从头开始训练的新解码器D一起发送到阶段I预训练的编码器E中,随后是另一个投影仪P2,以像素对像素的方式将D的特征映射到相应的特征 z i a z_i^a zia z i b z_i^b zib。这个过程可以表示为 z i a , z i b = P 2 ( D ( E ( X i a , X i b ) ) ) z_{i}^{a},z_{i}^{b}=P_2(D(E(X_i^a,X_i^b))) zia,zib=P2(D(E(Xia,Xib)))。最后,在 z i a z_i^a zia z i b z_i^b zib内的标记像素上计算PHPC学习的损失。

3.3.2 基于区域的PHPC学习

考虑到半监督情况下提供了多个像素级标注数据,充分利用这些已有的标注可能会为对比学习提供更可靠的指导,提高对比学习的性能。同时,以ground truth作为输入,可以提供更多标记的正负样本,这使得模型能够获得更可靠和鲁棒的上下文。因此,我们在第二阶段以监督的方式进行PHPC学习。这里,为了简单起见,我们省略了zi, zbi的上标,因为它们经历了相同的操作。具体来说,我们随机将特征映射zi的第u列、第v行处的像素级表示 z i ( u , v ) ∈ R c z_{i(u,v)}\in R^{c} zi(u,v)Rc作为锚点样本,其中c为维数。然后选取其对应的正样本为 z i ( u + , v + ) z_{i(u^{+},v^{+})} zi(u+,v+),位于u+行和v+列,具有相同的像素标签,而其对应的负样本为 z i ( u − , ν − ) z_{i(u^{-},\nu^{-})} zi(u,ν),位于u¶行和v¶列,具有不同的标签。与第一阶段的IHPC学习类似,我们还通过为更不相似的锚定-正对分配更大的权重来放大硬正的贡献,这可以用以下公式表示:
w 2 = e x p ( − β p i x ∗ r 2 ( z i ( u , v ) , z i ( u + , v + ) ) ) , w_2=exp\big(-\beta_{pix}*r_2\big(z_{i(u,v)},z_{i(u^+,v^+)}\big)\big), w2=exp(βpixr2(zi(u,v),zi(u+,v+))),
其中 β p i x \beta_{pix} βpix为像素级浓度超参数[27],r2(⋅)表示余弦相似度测量值。显然,正样本zi(u+,v+)离锚点zi(u,v)越远,即难度越大,则在网络学习过程中获得的关注越多。更进一步,PHPC学习的损失可以计算如下:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#开源免费的Windows右键菜单管理工具

前言 今天分享一个C#开源、免费、纯粹的Windows右键菜单管理工具:ContextMenuManager。 工具主要功能 程序支持国际化多语言显示。启用或禁用文件、文件夹、新建、发送到、打开方式、自定义文件格式、IE浏览器、WinX等右键菜单项目。对上述场景右键菜单项目进行修…

量子算法入门——3.狄拉克符号与量子态(1)

参考资料: 【【零基础入门量子计算-第04讲】狄拉克符号与量子态】 来自b站up:溴锑锑跃迁 建议关注他的更多高质量文章:CSDN:【溴锑锑跃迁】 1. 狄拉克符号 从生活实例引导到狄拉克符号狄拉克符号 注意这里ket是| >(右矢)&a…

[力扣 Hot100]Day28 两数相加

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

基于JAVA的新能源电池回收系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

如何使用python 挑战将ai生成的概念图制作成2d游戏

要使用Python将AI生成的概念图制作成2D游戏,你可以遵循以下步骤: 生成概念图: 使用AI图像生成工具(如DALL-E、DeepArt等)来创建你的游戏概念图。保存生成的图像文件,通常为PNG或JPEG格式。选择游戏引擎: 对于Python,一个流行的游戏开发库是Pygame(pygame.org)。安装P…

Mamba详解

深度学习新架构Mamba 论文介绍 Mamba: Linear-Time Sequence Modeling with Selective State Spaces 关注微信公众号: DeepGoAI 项目地址:https://github.com/state-spaces/mamba (已经6.3k) 论文地址:https://arxiv.org/abs/…

【Java多线程进阶】JUC常见类以及CAS机制

1. Callable的用法 之前已经接触过了Runnable接口,即我们可以使用实现Runnable接口的方式创建一个线程,而Callable也是一个interface,我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…

GEE使用 Sentinel-1 SAR影像 和 Otsu 方法绘制洪水地图

洪水是世界上最常见、破坏性最大的自然灾害之一,造成了巨大的生命和财产损失。此外,随着气候变化的影响,近年来,洪灾变得更加频繁和不可预测。为了最大限度地减少生命和财产损失,必须迅速发现洪水蔓延的情况,并及时采取必要的干预措施。洪水蔓延探测大多使用光学传感器或…

【力扣】169.多数元素

这道题的解法是运用哈希表打擂台的思想 首先题目的意思是存在数字,意思就是最后返回的结果不可能为空就是了,所以便不用考虑{1,2,3,4,5}这种例子。那么就可以用哈希表存所出现数字出现的次数,然…

文生图提示词:天气条件

天气和气候 --天气条件 Weather Conditions 涵盖了从基本的天气类型到复杂的气象现象,为描述不同的天气和气候条件提供了丰富的词汇。 Sunny 晴朗 Cloudy 多云 Overcast 阴天 Partly Cloudy 局部多云 Clear 清晰 Foggy 雾 Misty 薄雾 Hazy 朦胧 Rainy 下雨 Showers …

EasyUI动态加载组件

要实现如下的效果,在表格中显示进度条 主要是需要再次初始化组件,借用ChatGPT的意思是: 在许多 JavaScript UI 框架中,包括 EasyUI,在动态地创建或插入新的 DOM 元素后,通常需要手动初始化相关的组件或特性…

视觉设计师的项目评审复盘攻略:如何提升设计质量与效率

视觉设计师的角色是至关重要的,以确保设计项目满足预期的质量和结果。作为一名视觉设计师,有必要进行定期的项目审查,以确保项目在正轨上进行,并尽早解决任何问题。在本文中我们将讨论可视化设计人员如何做好项目评审,…

【Anaconda】conda创建、删除、查看虚拟环境,安装pytorch

1.删除环境 首先退出现有的环境 conda deactivate然后查看要删除的环境名称与路径 conda env list接下来就可以删除环境了 有两种方法 方法1: conda env remove -p 要删除的虚拟环境路径对我来说就是: conda env remove -p D:\Anaconda3\envs\MVDet…

家庭动态网络怎么在公网访问主机数据?--DDNS配置(动态域名解析配置)

前言 Dynamic DNS是一个DNS服务。当您的设备IP地址被互联网服务提供商动态变更时,它提供选项来自动变更一个或多个DNS记录的IP地址。 此服务在技术术语上也被称作DDNS或是Dyn DNS 如果您没有一个静态IP,那么每次您重新连接到互联网是IP都会改变。为了避免每次IP变化时手动更…

BulingBuling - 《研究巴菲特》 [ Buffettology ]

研究巴菲特 使沃伦-巴菲特成为世界上最著名的投资者的那些以前未曾解释过的技术 作者:玛丽-巴菲特 Buffettology The Previously Unexplained Techniques That Have Made Warren Buffett The Worlds Most Famous Investor By Mary Buffett 内容提要 《Buffetto…

mysql数据库 mvcc

在看MVCC之前我们先补充些基础内容,首先来看下事务的ACID和数据的总体运行流程 数据库整体的使用流程: ACID流程图 mysql核心日志: 在MySQL数据库中有三个非常重要的日志binlog,undolog,redolog. mvcc概念介绍: MVCC(Multi-Version Concurr…

高效宣讲管理:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Ubuntu Desktop - Details (设备详情)

Ubuntu Desktop - Details [设备详情] 1. OverviewReferences 1. Overview System Settings -> Details -> Overview ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

Code Composer Studio (CCS) - 文件比较

Code Composer Studio [CCS] - 文件比较 References 鼠标单击选中一个文件,再同时按住 Ctrl 鼠标左键来选中第二个文件,在其中一个文件上鼠标右击选择 Compare With -> Each Other. References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.n…

[VulnHub靶机渗透] Fowsniff

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…