U-Net在影像组学:医学图像分割中的研究进展|顶刊速递·24-07-04

小罗碎碎念

本期文献主题:U-Net在影像组学/医学图像分割中的研究进展

U-Net对于研究影像组学的老师/同学,应该非常熟悉,今天这期推文就是想系统的盘一盘它在医学图像分析中的应用情况。六篇文献最新的是上个月刚发表的,最旧的也是23年发表的,所以模型的时效性可以得到保证。

事先说明,今天的推文只有三篇与肿瘤相关,并且还都是脑肿瘤分割,但是对于拓展我们的思路,还是非常具有参考价值的。

例如第六篇文献提出的分割能力图,给每个分割结果都打一个分,我觉得这个就可以迁移到病理组学中呀。虽然我们工科有很多指标(本期推文作了总结,往下滑)可以体现模型的分割效果,但是临床的医生看不懂呀,觉得不够直观,所以模型的解释性是不是打折扣了。并且我们如果每一个步骤都有量化的评价标准,那么最后是不是对于模型的改进,以及结果的分析,又多了一个切入角度?

我是罗小罗同学,回见!!

image-20240704001249534


知识点梳理

在正式开始今天推文之前,小罗先带着大家梳理一下,哪些指标可以用于评价医学图像分割模型的效果

先列举一部分今天六篇推文中涉及到的指标:

  1. Dice分数(Dice Score):这是衡量图像分割质量的一个常用指标,用于计算两个样本集合的相似度。Dice分数越高,表示分割结果与真实标注(ground truth)越接近,其值范围在0到1之间。

  2. RAVD(Relative Absolute Volume Difference):即相对绝对体积差异,这个指标衡量的是分割结果与真实标注在体积上的相对差异。一个较低的RAVD分数表示较小的体积差异。

  3. ASSD(Average Symmetric Surface Distance):即平均对称表面距离,这个指标衡量的是分割结果与真实标注之间的表面距离。ASSD分数越低,表示分割的表面与真实标注的表面越接近。

  4. MSSD(Maximum Symmetric Surface Distance):即最大对称表面距离,与ASSD类似,但是这里考虑的是最大的表面距离,而不是平均值。


再补充一些今天推文不涉及的指标:

评价医学图像分割模型效果的指标有很多,每种指标都从不同的角度衡量模型的性能。以下是一些常用的评价指标:

  1. Jaccard指数(Jaccard Index):也称为交集比,与Dice系数类似,但计算方式是两个集合交集与并集的比例。
  2. 精确率(Precision):正确预测为正的样本占预测为正的样本的比例,反映模型的准确性。
  3. 召回率(Recall)或灵敏度(Sensitivity):正确预测为正的样本占实际为正的样本的比例,反映模型的完整性。
  4. F1分数(F1 Score):精确率和召回率的调和平均值,是一个综合考虑精确率和召回率的指标。
  5. Hausdorff距离(Hausdorff Distance):衡量两个集合之间的最大距离,常用于评价分割的精度。
  6. Matthews相关系数(Matthews Correlation Coefficient, MCC):衡量二分类问题的模型性能,考虑了真正、假正、真负和假负的情况。
  7. 轮廓相关性(Contour Accuracy):衡量分割结果与真实标注在轮廓层面的一致性。
  8. 鲁棒性(Robustness):模型在不同条件或噪声下保持性能稳定的能力。
  9. 计算效率(Computational Efficiency):模型的运算速度和资源消耗情况。
  10. 泛化能力(Generalization Ability):模型在未见过的数据上的表现能力。

这些指标可以根据具体的应用场景和需求进行选择和组合,以全面评价医学图像分割模型的性能。在实际应用中,通常会综合多个指标来对模型进行评估。


一、异常感知3D分割方法,用于从膝关节磁共振(MR)图像中分割骨骼和软骨

image-20240703233112822

一作&通讯

角色姓名单位单位(中文)
第一作者Boyeong WooSchool of Electrical Engineering and Computer Science, The University of Queensland, Australia澳大利亚昆士兰大学电气工程与计算机科学学院

文献概述

文章主要介绍了一种自动化的异常感知3D分割方法,用于从膝关节磁共振(MR)图像中分割骨骼和软骨,特别关注了不同程度膝关节炎患者的骨骼异常情况。

研究的核心内容包括:

  1. 异常检测:使用基于U-Net模型的多步方法,最初用于检测膝关节远端股骨、近端胫骨和髌骨中的异常(如骨髓病变、骨囊肿)。
  2. 数据提取与下游任务:提取的数据用于涉及个体骨骼和软骨体积以及骨骼异常的语义分割的下游任务。
  3. 异常感知分割网络:与异常不感知的分割网络相比,异常感知分割网络在包含骨异常的膝关节MR图像中提供最终的自动化分割,显著减少了骨分割的Hausdorff距离,并具有更高的敏感性和特异性。

文章还讨论了深度学习方法,尤其是卷积神经网络(CNNs)在图像识别任务中的前景,并指出了在使用深度学习进行医学图像分析时面临的挑战,例如缺乏注释数据和解剖实体中异常的可变存在。

研究使用了Osteoarthritis Initiative(OAI)数据库中的3D MR图像,并开发了一种新颖的3D CNN方法来提高分割性能。此外,文章还介绍了所使用的背景信息、方法、实验设置、数据集、评估指标和结果。

最后,文章得出结论,所提出的异常感知网络在分割任务中平均表现优于基线网络,并在检测骨病变方面也表现更好。研究还指出了当前流程的复杂性,并提出了未来工作的方向,例如将异常检测和分割合并为一个单一的多任务模型,以及将异常感知方法与其他基于CNN的方法结合以进一步提高模型性能。


重点关注

Fig. 1 展示了一个用于异常检测和下游分割任务的整体流程。

image-20240703234157735

这个流程分为三个主要组件:

  1. 组件 1 (模型 𝐺): 这个组件负责图像修复(inpainting)。它使用参考分割掩膜从MR图像中擦除特定区域,例如股骨和胫骨的轮廓。然后,这个组件通过3D U-Net基础的模型来填充(修复)被擦除的区域,以便重建原始图像。

  2. 组件 2 (模型 𝐶): 这个组件的作用是图像压缩。它与模型 𝐺 同时训练,目的是压缩原始MR图像。压缩后的图像随后被送入模型 𝐺 的解码器部分。图像压缩器 𝐶 必须是一个小型网络,并且具有显著的瓶颈,以确保在输出中不恢复异常;如果网络较大,可能会在填充图像中恢复异常。

  3. 组件 3 (模型 𝑆): 这是下游的分割任务,使用异常感知分割方法。它利用从组件 2 提取的信息来指导自动化分割骨骼和软骨体积。具体来说,与没有考虑异常的标准(anomaly-naïve)分割网络相比,模型 𝑆 旨在改善含有可见骨异常的膝关节MR图像中股骨和胫骨骨骼及软骨体积的分割。

图中的蓝色箭头指向一个骨病变(异常),这表明异常检测模型能够识别并处理这些区域。流程中的FB、FC、TB和TC分别代表:

  • FB: 股骨 (femoral bone)
  • FC: 股软骨 (femoral cartilage)
  • TB: 胫骨 (tibial bone)
  • TC: 胫软骨 (tibial cartilage)

整体来看,这个流程的目标是通过异常检测和修复技术提高医学图像分析的准确性,尤其是在处理具有骨病变的膝关节MR图像时。通过这种方式,研究者能够更准确地分割出膝关节的骨骼和软骨,这对于骨关节炎的诊断和治疗规划非常重要。


二、医学图像分割领域中的跨维度迁移学习

image-20240703233246803

一作&通讯

角色姓名单位名称(中文)
第一作者Hicham Messaoudi贝贾亚大学技术学院医学信息学实验室(LIMED)

文献概述

这篇文章是关于医学图像分割领域中跨维度迁移学习的研究。

文章首先指出了卷积神经网络(CNN)在图像分析和计算机视觉应用中取得的进展,尤其是在自然图像的2D图像分类方面。然而,在医学图像分析领域,尽管也取得了显著进展,但由于标注数据的相对缺乏以及与获取过程相关的固有限制,这些进展有所放缓。特别是在医学成像数据的体积测量方面,这些限制更加明显。

为了解决这一问题,文章提出了一种有效的方法,将训练有素的2D分类网络的效率转移到2D、3D单模态和多模态医学图像分割应用中

研究者设计了基于两个关键原则的新架构:

  1. 通过嵌入预训练的2D编码器到更高维度的U-Net中进行权重转移
  2. 通过将2D分割网络扩展到更高维度进行维度转移

所提出的网络在包括MR、CT和超声图像在内的不同模态的基准测试中进行了测试。研究结果显示,所提出的2D网络在针对超声心动图数据分割的CAMUS挑战中排名第一,超越了现有技术水平。在CHAOS挑战中,针对2D/3D MR和CT腹部图像的方法,在Dice、RAVD、ASSD和MSSD分数上大幅超越了其他2D基础方法,并在在线评估平台上排名第三。应用于2022年BraTS比赛的3D网络也取得了有希望的结果,平均Dice分数达到91.69%(整体肿瘤)、83.23%(肿瘤核心)和81.75%(增强肿瘤)。


文章还讨论了深度学习在图像分类、分割、注释和计算机辅助诊断等领域的成功应用,并强调了自动化在癌症诊断中的重要性。此外,文章还介绍了几种基于不同方法的CNN架构,包括U-Net、SegNet、注意力U-Net、U-Net++和U-Net3+等,并探讨了它们在医学图像分割中的应用

最后,文章总结了通过实验和定性结果证明了所提出方法在多维医学图像分割中的有效性,并讨论了未来的研究方向,包括探索从2D到更高维度的权重转移的其他方法,以实现在更高维度中更好的性能保持和提高图像分割质量。


重点关注

Fig. 2 展示了来自 CAMUS 测试集的舒张末期(ED)和收缩末期(ES)的超声心动图样本。

image-20240703234135056

图从左到右展示了以下内容:

  1. 超声心动图数据:这是原始的超声心动图图像,用以展示心脏的各个腔室和结构。
  2. Omnia-Net 预测的注释:这是 Omnia-Net 网络针对原始超声心动图数据进行分割后的结果。Omnia-Net 是一种深度学习网络,用于医学图像分割,能够识别和区分不同的心脏结构。

在颜色编码上:

  • 蓝色代表左心室的心外膜(epicardium)。
  • 红色代表左心室的心内膜(endocardium)。
  • 绿色代表左心房壁(left atrium wall)。

这种可视化结果对于评估 Omnia-Net 在超声心动图分割任务上的性能至关重要。通过比较原始图像和预测注释,可以直观地看到网络是否准确地识别了心脏的关键结构,这对于心脏功能的评估和疾病诊断具有重要意义。颜色编码有助于区分不同的心脏组织和腔室,使评估过程更为清晰和准确。


三、Factorizer:一种应用于脑肿瘤分割的可扩展、可解释上下文模型

image-20240703233256913

一作&通讯

角色姓名单位名称(中文)
第一作者Pooya Ashtaria比利时鲁汶大学电气工程系(ESAT), STADIUS中心

文献概述

这篇文章介绍了一种新的医学图像分割方法,称为"Factorizer",它是一种可扩展的、可解释的上下文建模方法。

Factorizer模型利用低秩矩阵分解(LRMA)的能力,通过将非负矩阵分解(NMF)作为一个可微分层整合到U型网络架构中,提出了一种线性可扩展的上下文建模方法。该方法还结合了移位窗口技术来有效聚合局部信息。

Factorizer在准确性、可扩展性和可解释性方面与卷积神经网络(CNN)和Transformer模型相媲美,在脑肿瘤分割的BraTS数据集和中风病变分割的ISLES’22数据集上取得了最先进的结果。

此外,NMF分量的高度可解释性为Factorizer提供了额外的优势。消融研究还揭示了Factorizer的一个独特特征,即在不牺牲太多准确性的情况下,可以显著加快训练后模型的推理速度,而不需要任何额外的步骤。

文章的主要贡献包括:

  • 首次提出将矩阵分解层用于医学图像分割的端到端深度模型。
  • 使用块坐标下降求解器构建了可微分的NMF层,以有效建模上下文信息。
  • 引入了移位窗口(SW)矩阵化操作,并与NMF结合,充分利用局部上下文。
  • 提出了基于NMF的可扩展可解释U型分割模型。
  • 在BraTS和ISLES’22数据集上取得了最先进的结果。

文章还讨论了相关工作,包括基于CNN的分割模型、视觉Transformer以及医学图像分析中的Transformer方法。此外,还详细介绍了Factorizer的方法,包括矩阵分解用于上下文建模的动机、整体架构、Factorizer块、包裹NMF模块以及NMF的实现细节。

最后,文章通过在BraTS和ISLES’22数据集上的实验验证了所提出方法的有效性,并与现有的CNN和Transformer模型进行了比较。


重点关注

Fig. 1 展示了 Factorizer 模型的整体架构,该模型遵循了 U-Net 风格的结构,包含编码器(encoder)和解码器(decoder)部分,并在相同分辨率的中间通过跳跃连接(skip connections)相连。

image-20240703234106316

  1. 输入和输出:Factorizer 接受一个多通道的 3D 图像作为输入,并输出一个与输入图像分辨率相同的对数概率图(logit map)。

  2. Stem 层:输入图像首先通过一个 3D 卷积(kernel size of (3, 3, 3))的 stem 层,以增加通道数。

  3. 编码器(Encoder):编码器部分由多个阶段组成,每个阶段都会将输入张量的分辨率降低到原来的一半,同时将通道数翻倍。在每个阶段,使用具有 (2, 2, 2) 核和步长为 2 的卷积进行下采样。

  4. 桥接(Bridge):在编码器的末端,即分辨率降至原始分辨率的 1/16 时,添加了可学习的 position embeddings。

  5. 解码器(Decoder):解码器部分执行与编码器相反的操作,即通过转置卷积(transposed convolution)逐步上采样张量,同时减少通道数。

  6. 跳跃连接(Skip Connections):在编码器和解码器的相同分辨率阶段之间存在跳跃连接,这些连接有助于恢复在下采样过程中丢失的空间信息。

  7. 深度监督(Deep Supervision):在解码器的三个最高分辨率上应用了深度监督,通过逐点卷积(pointwise convolution)生成输出和两个辅助的低分辨率对数概率张量。

  8. Factorizer 块:Factorizer 块由 NMF 模块和 MLP(多层感知器)组成,每个模块后面跟着层归一化(Layer Normalization)和残差连接。

  9. NMF 模块:NMF 模块是 Factorizer 的主要组成部分,负责对输入张量进行低秩近似,以建模局部或全局上下文。

  10. Matricize 和 Dematricize 操作:在 NMF 模块中,输入张量首先通过 Matricize 操作转换为矩阵批次,然后应用 ReLU 激活函数和 NMF。之后,使用 Dematricize 操作将重建的矩阵转换回原始大小。

整体来看,Fig. 1 描述了一个深度学习模型,该模型通过结合传统的卷积神经网络和新颖的矩阵分解技术,来实现对医学图像的精确分割。这种设计旨在充分利用全局和局部上下文信息,以提高分割任务的性能。


四、弱监督学习:联邦学习+知识蒸馏技术可提高多器官分割的准确性

image-20240703233309758

一作&通讯

角色姓名单位名称(中文)
第一作者Soopil Kim大邱庆北科学技术院(Daegu Gyeongbuk Institute of Science and Technology)
第一作者(共同)Heejung Park大邱庆北科学技术院(Daegu Gyeongbuk Institute of Science and Technology)
通讯作者Sang Hyun Park大邱庆北科学技术院(Daegu Gyeongbuk Institute of Science and Technology)

文献概述

这篇文章是关于一种新的医学图像分析方法,即利用联邦学习与知识蒸馏技术来提高多器官分割的准确性,尤其是在数据集部分标记的情况下。

文章首先介绍了使用深度学习模型进行多器官CT图像分割的挑战,尤其是在数据集部分标记或跨多个机构获取数据时。

文章提出了一种基于联邦学习的解决方案,通过在不同机构的数据上训练模型,并通过中心服务器合并模型参数,同时使用知识蒸馏来解决模型在本地更新时可能出现的“灾难性遗忘”问题。

研究者们实现了一个多头U-Net架构模型,该模型学习不同器官分割的共享嵌入空间,避免了重复过程,提高了多器官预测的效率。他们使用8个公开的腹部CT数据集对7个不同的器官进行了评估,包括889个CT图像用于训练,233个用于内部测试,30个用于外部测试。实验结果表明,所提出的方法在准确性、推理时间以及参数数量方面,都显著优于其他最新技术。

文章还讨论了在医学图像分割领域,如何处理部分标记数据集的现有方法,以及它们在集中式和联邦学习设置中的效率和准确性问题。此外,文章还提出了一种新的基线结构,包括共享的编码器-解码器和轻量级分割头,每个目标器官只有162个参数。

最后,文章通过与其他方法的比较,验证了所提出方法的有效性,并讨论了在不同客户端数量下模型的准确性和鲁棒性。作者指出,尽管模型提高了性能,但它需要在中心服务器和客户端之间进行大量通信,这可能取决于节点的网络基础设施,成为训练的瓶颈。未来的工作将设计一个能够在几次通信轮次内学习的分割模型。


重点关注

Fig. 1 描述了所提出的用于多类分割的联邦学习方法,该方法处理的数据集是部分标记的。

image-20240703234044840

在这张图的简化表示中,每个数据集仅包含一个器官的分割。图示中使用了几种不同的模型:

  1. 全局模型(Global model):表示为 ( $\mathbf{f}_{\theta_g} $),是在所有客户端(或节点)上训练并用于聚合更新的模型。

  2. 本地模型(Local model):表示为 ($ \mathbf{f}_{\theta_k}$ ),每个客户端都有自己的本地模型,该模型使用自己的部分标记数据集进行训练。

  3. 预训练的特定器官模型(Pre-trained organ-specific model):表示为 ( $\tilde{\mathbf{h}}_{\theta_l} $),这是在每个客户端上分别预训练的特定器官的模型。

在训练过程中,每个客户端首先使用自己的数据集训练本地模型。在本地训练期间,本地模型的参数 ( $\theta_k $) 通过最小化局部知识蒸馏(Local Knowledge Distillation, KD)损失函数和全局知识蒸馏(Global Knowledge Distillation, KD)损失函数来更新。在这个过程中,全局模型的参数 ( θ g \theta_g θg) 和预训练的特定器官模型的参数 $\tilde{\theta}_l $是固定的,不会更新。

具体来说,知识蒸馏是一种正则化技术,它通过迫使模型的输出模仿一个更复杂或更高级的模型的输出来提高模型性能。在这里,全局KD损失函数衡量全局模型 ( $\mathbf{f}{\theta_g} $) 的预测与本地模型 ( $\mathbf{f}{\theta_k} $) 对未标记器官的预测之间的交叉熵。局部KD损失函数则利用其他客户端的预训练特定器官模型的预测来更新当前客户端的本地模型。

通过这种方式,即使客户端的数据集是部分标记的,模型也能够学习到如何更好地分割目标器官,并且通过联邦学习框架,各个客户端的本地模型可以协作学习,同时保护数据隐私。这种方法有助于减少在训练过程中由于“灾难性遗忘”导致的问题,即在更新模型以识别新器官时不会丢失对旧器官的识别能力。


五、 I 2 I^2 I2U-Net:一种用于医学图像分割的具有丰富信息交互的双路径U-Net

image-20240703233321452

一作&通讯

角色姓名单位
第一作者杜伟西安交通大学第二附属医院,国家生物诊断与生物治疗联合工程研究中心
通讯作者李宗芳西安交通大学第二附属医院,国家生物诊断与生物治疗联合工程研究中心,以及西安交通大学数学与统计学院
通讯作者徐松江西安交通大学第二附属医院,医学人工智能研究所

文献概述

这篇文章是关于一种新型的医学图像分割网络—— I 2 I^2 I2U-Net的研究。

I 2 I^2 I2U-Net是一种具有丰富信息交互的双路径U-Net,旨在解决现有U-Net网络在处理边界模糊和形状不规则的病变时分割结果不尽人意的问题。

文章首先指出了传统U-Net网络的局限性,然后详细介绍了 I 2 I^2 I2U-Net网络的结构和特点,包括多功能信息交互模块(MFII)和整体信息融合与增强模块(HIFA)。

通过在皮肤病变、息肉、脑肿瘤和腹部多器官分割等四个具有挑战性的任务上的广泛实验,证明了 I 2 I^2 I2U-Net在性能和泛化能力方面均优于其他最先进方法。

文章还讨论了 I 2 I^2 I2U-Net的潜在局限性和未来的研究方向,包括设计更轻量级和高效的网络主干,以及将所提出的双分支网络扩展到更多的2D/3D医学图像分割任务。


重点关注

Fig. 1 展示了U-Net网络中四个不同层级的热图(Heat maps)。

image-20240703234023921

热图是一种数据可视化手段,通常用来展示数据的分布情况,其中颜色的深浅代表数据值的大小。在神经网络中,热图常用于可视化网络层级的激活情况,帮助我们理解网络在处理图像时哪些特征被激活,以及这些激活是如何随着网络层级的加深而变化的。

在U-Net网络中,随着网络层次的加深,理论上网络能够捕捉到更抽象的特征,但同时可能会丢失一些细节信息。热图可以帮助我们观察到这些变化:

  1. 第一层(浅层):可能主要捕捉到图像中的一些基础边缘和纹理信息,热图上的颜色变化可能较为明显和细致。
  2. 第二层:随着网络层次的加深,可能开始捕捉到更加复杂的形状和模式。
  3. 第三层:在这一层可能能够看到更高层次的特征,例如物体的部分结构。
  4. 第四层(深层):在最深层,网络可能专注于捕捉最抽象的特征,如整体形状和对象的类别信息。在这一层,热图上的颜色变化可能变得较为平滑,表明细节信息的减少。

六、分割能力图:解释医学图像分割中的深层特征

image-20240703233332806

一作&通讯

角色姓名单位(英文)单位(中文)
一作Sheng HeBoston Children’s Hospital and Harvard Medical School波士顿儿童医院和哈佛医学院
通讯Yangming OuMassachusetts General Hospital and Harvard Medical School麻省总医院和哈佛医学院

文献概述

文章提出了一种名为ProtoSeg(Prototype Segmentation)的新方法,用于计算基于深度特征的二元分割图,并量化不同层和单元的深度特征的分割能力。

  • 引言:介绍了医学图像分割的重要性以及深度卷积神经网络(CNNs)在该领域的应用。

  • 深度特征的分割能力:提出了分割能力得分(Segmentation Ability Score, SA score),通过计算特征分割图与真实标注之间的Dice系数来量化。

  • ProtoSeg方法:介绍了ProtoSeg方法,这是一个无需参数、可微分、计算效率高的插件式模块,可以用于离线和在线两种模式来提高分割能力。

  • 实验:在五个不同的数据集上应用ProtoSeg方法,包括

    • 脑部MRI肿瘤分割
    • 皮肤图像病变分割
    • CT图像中COVID相关异常分割
    • 腹部MRI前列腺分割
    • CT图像胰腺肿块分割
  • 结果:展示了ProtoSeg方法在不同数据集上的表现,并提供了对深度学习模型U-Net的洞察,有助于解释和理解医学图像分割中的AI系统。

  • 结论和未来工作:文章总结了ProtoSeg方法的贡献,并讨论了其在提高深度特征可解释性方面的潜力,同时提出了未来工作的方向,包括将ProtoSeg方法应用于3D网络模型和分类任务。


重点关注

Fig. 2 展示了使用原型分割(prototype segmentation)方法得到的脑部肿瘤和皮肤病变的特征图及其对应的分割图。

image-20240703233955763

  • 顶部两行:展示了脑部肿瘤的特征图和分割图。这些图像展示了从深度学习网络中提取的特征图,以及通过ProtoSeg方法计算得到的分割能力图(Segmentation Ability Map, SAM)。
  • 底部两行:展示了皮肤病变的特征图和分割图。与脑部肿瘤的图像类似,这些图像同样展示了特征图和基于这些特征图通过ProtoSeg方法得到的分割图。

在每个特征图的下方,都标注了分割能力得分(Segmentation Ability Score, SA score)。SA score是通过计算SAM与真实标注(ground-truth)之间的Dice相似系数来量化分割能力的指标。Dice系数越高,表明特征图的分割能力越强,即SAM与真实标注越接近。


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

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

相关文章

java入门-基础语法(运算符)

运算符是对变量、字面量进行运算的 符号 (一)基本的算术运算符、符号做连接符 (1)基本运算符:(加), - (减)、 * (乘)、 / (除)、%&…

DP:背包问题----0/1背包问题

文章目录 💗背包问题💛背包问题的变体🧡0/1 背包问题的数学定义💚解决背包问题的方法💙例子 💗解决背包问题的一般步骤?💗例题💗总结 ❤️❤️❤️❤️❤️博客主页&…

什么是分库分表?它有哪些实现类型?

假如你正在使用关系型数据库开发一款健康类系统。业务发展很好,系统有很多活跃的新老用户,这些用户会和平台的医生团队进行交互,每天可能会生成数万甚至数十万级别的业务数据。这样的话,随着数据量越来越大,系统中的某…

Java项目:基于SSM框架实现的游戏攻略网站系统分前后台【ssm+B/S架构+源码+数据库+毕业论文+任务书】

一、项目简介 本项目是一套基于SSM框架实现的游戏攻略网站系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

静态方法与实例方法的区别

静态方法与实例方法的区别 1、静态方法(Static Methods)1.1 调用方式1.2 访问权限 2、实例方法(Instance Methods)2.1 调用方式2.2 访问权限 3、总结 💖The Begin💖点点关注,收藏不迷路&#x1…

使用 Smart-doc 记录 Spring REST API

如果您正在使用 Spring Boot 开发 RESTful API,您希望让其他开发人员尽可能容易地理解和使用您的 API。文档是必不可少的,因为它为将来的更新提供了参考,并帮助其他开发人员与您的 API 集成。很长一段时间以来,记录 REST API 的方…

用Python轻松转换Markdown文件为PDF文档

Markdown,以其简洁的语法和易于阅读的特性,成为了许多作家、开发者和学生记录思想、编写教程或撰写报告的首选格式。然而,在分享或打印这些文档时,Markdown的纯文本形式可能无法满足对版式和布局的专业需求。而将Markdown转换为PD…

模拟退火算法1——简介

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温…

【C++】 解决 C++ 语言报错:Stack Overflow

文章目录 引言 栈溢出(Stack Overflow)是 C 编程中常见且严重的错误之一。栈溢出通常发生在程序递归调用过深或分配过大的局部变量时,导致栈空间耗尽。栈溢出不仅会导致程序崩溃,还可能引发不可预测的行为。本文将深入探讨栈溢出…

周下载量20万的npm包---store

https://www.npmjs.com/package/store <script setup> import { onMounted } from vue import store from storeonMounted(() > {store.set(user, { name: xutongbao })let user store.get(user)console.log(user) //对象console.log(localStorage.getItem(user)) //…

各种特殊损失函数

死区损失函数 点击查看代码 import numpy as np import matplotlib.pyplot as plt# Define the parameters a 2 b 5 epsilon 0.1# Define the loss function L(x) and its derivative def L(x, a, b, epsilon):if x < a:return (x - a)**2 / (2 * epsilon)elif x > b:…

Windows编程原理-消息驱动的机制

Windows为每一个输入事件产生一个输入消息&#xff0c;如&#xff1a; 移动鼠标按键…… 从程序角度看待Windows消息处理 Windows使用一个窗口前必须&#xff1a; 填充一个结构&#xff1a;WNDCLASS注册窗口创建窗口使用窗口撤销窗口 从这个机制看&#xff0c;windows操作系统…

Java | Leetcode Java题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; class Solution {public String shortestPalindrome(String s) {int n s.length();int[] fail new int[n];Arrays.fill(fail, -1);for (int i 1; i < n; i) {int j fail[i - 1];while (j ! -1 && s.charAt(j 1) ! s.charAt…

Rural Access Index (RAI)农村通达指数

农村通达指数&#xff08;RAI&#xff09; 简介 农村通达指数&#xff08;RAI&#xff09;是全球交通领域最重要的发展指标之一。它是目前可持续发展目标中唯一一个直接衡量农村通达性的指标&#xff0c;通过评估农村人口的四季道路通达性来实现。在 2015 年作为可持续发展目…

Go语言--自定义函数

定义格式 函数构成代码执行的逻辑结构。在 Go语言中&#xff0c;兩数的基本组成为:关键字 func、函数名、参数列表、返回值、所数体和返回语句。 函数定义说明: func:函数由关键字func开始声明FuncName:函数名称&#xff0c;根据约定&#xff0c;数名首字母小写即为private…

Git 操作补充:变基

变基 在 Git 中&#xff0c;整合来自不同分支的修改&#xff0c;除了 merge&#xff0c;还有一种方法&#xff0c;变基 rebase。git rebase 命令基本是是一个自动化的 cherry-pick 命令&#xff0c;它计算出一系列的提交&#xff0c;然后在其他地方以同样的顺序一个一个的 che…

华为 eNSP 模拟器 配置RIP实例 动态路由协议

1 实验拓扑 2 配置路由器 #R1 Huawei>sys [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1]rip [R1-rip-1]network 192.168.1.0 [R1-rip-1]version 2 [R1-rip-…

C++:求梯形面积

梯形面积 已知上底15厘米&#xff0c;下底25厘米&#xff0c;问梯形面积值是多少&#xff1f; #include<iostream> using namespace std; int main() {//梯形的面积公式&#xff08;上底下底&#xff09; 高 2//上底变量、下底变量int s,d,h,m;s15;d25;h 2*150 * 2/s ;…

Bootstrap 图片

Bootstrap 图片 Bootstrap 是一个流行的前端框架,它提供了一套丰富的工具和组件,用于快速开发响应式和移动优先的网页。在本文中,我们将探讨如何使用 Bootstrap 来处理和展示图片,包括图片的响应式设计、图片样式和图片布局。 响应式图片 Bootstrap 通过其栅格系统提供了…

接口自动化测试高频面试题

一、json和字典的区别&#xff1f; json就是一个文本、字符串&#xff1b;有固定的格式&#xff0c;格式长的像python字典和列表的组合&#xff1b; 以key-value的键值对形式来保存数据&#xff0c;结构清晰&#xff0c;。可以说是目前互联网项目开发中最常用的一种数据交互格…