基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用

基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用

  • 摘要
  • 引言
  • 方法

Segmentation information with attention integration for classification of breast tumor in ultrasound image

摘要

乳腺癌是世界范围内女性最常见的癌症之一。基于超声成像的计算机辅助诊断(CAD)技术的发展促进了乳腺病变的诊断,引起了研究者的关注,深度学习是一种流行且有效的方法。然而,大多数基于深度学习的CAD方法忽略了两个视觉任务之间的关系肿瘤区域分割和分类。在本文中,考虑到医学的一些先验知识,我们提出了一种新的分割到分类方案,通过将基于分割的注意力(SBA)信息添加到深度卷积网络(DCNN)中进行乳腺肿瘤分类。训练分割网络以生成肿瘤分割增强图像。两个并行网络分别对原始图像和分割增强后的图像进行特征提取,一个基于通道注意力的特征聚合网络将两个特征网络提取的特征自动融合,以提高乳腺超声图像中恶性肿瘤的识别性能。为了验证我们的方法,实验已经进行了乳腺超声数据集。我们的方法的分类结果进行了比较与现有的11种方法。实验结果表明,该方法具有最高的准确性(90.78%),灵敏度(91.18%),特异性(90.44%),F1-评分(91.46%)和AUC(0.9549)。

引言

乳腺癌是世界范围内女性最常见的癌症之一,给女性健康带来了极大的威胁。由于病因复杂,医学界难以提供有效的预防措施,因此早期发现和诊断是降低死亡率(40%或以上)的关键[1]。乳腺X线摄影、磁共振成像(MRI)、乳腺X线摄影和超声是发现和诊断乳腺癌最常用的技术。近年来,超声成像因其无辐射、成像速度快、灵敏度和准确度高、成本低等优点而受到越来越多的关注[2]。然而,超声波是一种依赖于操作者的方法。此外,阅读超声图像需要训练有素且经验丰富的放射科医师,并且具有不同医学造诣的医师的诊断结果非常不同。由于乳腺超声图像的个体差异性和图像质量差,放射科医生在诊断乳腺超声图像时往往不能做出正确的判断。为了减少不同放射科医生之间的观察者间差异,并帮助生成更可靠和准确的诊断结论,已经提出了计算机辅助诊断(CAD)系统[3,4]。随着计算机技术和人工智能技术的飞速发展,计算机辅助诊断技术已成为现代医学影像学研究的热点之一,其临床价值已在真实的诊断中得到证实,可辅助放射科医生对乳腺肿瘤进行分类和识别。
通常,传统的乳腺肿瘤分类方法的关键包括两个方面,即特征提取和机器学习分类器[5]。在传统方法中,提取的特征是明确设计或手工制作的,主要是纹理特征和形态特征[6]。常用的纹理特征提取方法包括灰度共生矩阵(GLCM)[7]、自协方差系数[9]、空间灰度相关性(SGLD)[10]、共生矩阵的相关性[11]、全局纹理特征[12]、小波变换[13]、基于剪切波的特征[14]等,其中,纹理的提取方法有灰度共生矩阵法和小波变换法,它们首先计算矩阵或变换域表示,然后计算多个统计量作为纹理特征。然而,有些方法,如全局纹理特征,将直接表示为纹理特征。常见的形态学特征包括边缘清晰度[8]、深宽比[11,15]、分支模式[16]、圆形度[11,16]等,虽然手工制作的特征数量已达数万种,但这些特征较浅且层次较低,可能无法完全表征肿瘤内部的异质模式。此外,手工制作的功能高度依赖于专家的经验,并在很大程度上取决于在放射学水平上对肿瘤的良好理解。
近年来,流行的深度学习方法能够自动而不是手动提取特征。深度卷积网络(DCNN)已被广泛认为是学习图像分类、对象检测、语义分割和其他计算机视觉任务的预测特征的可靠方法。目前,DCNN在医学影像分析界也开始流行[ 17,18 ]。对于乳腺超声图像的分类,已经提出了一些研究,并取得了比经典方法更好的分类结果。在乳腺超声分类的研究中,有两种深度学习方法。一个是从头开始训练CNN。然而,从头开始训练CNN需要一个大的数据集,因为CNN通常很深,以获得更好的性能。超声数据集的数量通常很小,这是医学数据分析的一个重要特征。在少量数据集上从头开始训练深度CNN会导致过度拟合,从而导致性能不佳。一些研究[19-21]将注意力放在训练用于乳腺超声分类的浅层网络上。Masud等人。[19],Wang等人。[20]和Zeimarani等人。[21]分别提出了用于乳腺超声分类的自定义卷积神经网络。其中,[19-21]中的方法主要有一个,两个和四个卷积层,分别与全连接,池化,dropout和批量归一化层相结合。另一种方法是基于迁移学习。将在大型标记数据集上预训练的网络应用于乳房超声数据集。预训练的网络可以直接用于特征提取,也可以在可用的数据集上进行微调。在2019年,Daoud等人。[22],Hijab等人。[23]和Cao等人。[24]分别应用预训练的AlexNet,VGG 16网络和DenseNet 121并对超声图像进行微调,以区分良性和恶性乳腺肿块。Fujioka等人[25]应用基于GoogleNet的DCNN架构从乳腺超声图像中区分良性和恶性乳腺肿块,并且与放射科医生相比具有相同或更好的诊断性能。Byraa等人。[26]设计了一个匹配层,将灰度超声图像转换为RGB图像,并对预训练的VGG 19网络进行微调,用于乳腺肿瘤分类。Tanaka等人。[27]通过结合VGG 19和ResNet 152构建了一个集成网络,对乳腺超声图像进行微调,用于乳腺肿块分类。Zhuang等人[28]采用图像分解方法获得模糊增强和双边滤波图像,输入到预训练的VGG模型中进行乳腺肿块分类,并获得了良好的改进结果。目前,更有效的深度学习方法是应用不同的预训练模型,然后在乳腺超声数据集上进行微调。
然而,目前基于深度学习的超声图像分类方法还存在一些问题。一个显著的困难是超声数据集的量通常很小,这是医学数据分析的一个重要特征。与自然图像相比,超声数据更难以收集,并且数据的使用必须得到患者的同意。标记超声图像是非常严格的,需要有经验的放射科医生或活检。同时,乳腺肿瘤的类型,以及相应的影像学结果,可能是不同的和多样的。少量的数据集可能无法覆盖所有类型。如何提取最有效、最鲁棒的乳腺超声特征是提高诊断性能的重要内容。
此外,医学和影像的发展为我们提供了大量的诊断知识。在对少量数据集的分析中,将先验知识引入到乳腺肿瘤分类深度学习网络的设计中,是弥补样本数量不足的有效方法。在实际的临床诊断中,放射科医生根据肿瘤的位置、形状、大小、深宽比、圆形、边缘完整性、分叶、边缘锐度等因素来判断肿瘤的类型[29]。2003年,美国放射学会开发了乳腺影像报告和数据系统(BI-RADS)[30],形成的评分数据总结了专家的实践经验。评分指标是从大量数据中总结出来的,作为国际标准被广泛应用于乳腺癌的分类中。
但是,由于深度学习模型是一种自动特征提取方法,提取的特征与普遍接受的BI-RADS并不完全一致,更多地依赖于训练数据的特征。在分析少量数据集时,很难学习深度学习模型中最具代表性的特征。在BI-RADS中,18个评分指标中的10个,包括形状、方向、边缘完整性、边缘模糊性、角度、微分叶、毛刺、后部特征、肿块钙化和结构变形,与肿瘤分割密切相关。这些指标是乳腺超声临床诊断的重要依据[31]。如果我们能够引导深度学习模型更多地关注这些特征,那么对于乳腺癌的分类将非常有帮助。因此,肿瘤的分割可以进一步指导与肿瘤分类相关的特征提取,提高性能[32]。然而,在以往的深度学习分类方法中,仅将识别出的包含乳腺肿瘤的感兴趣区域(ROI)图像作为网络的输入,没有添加肿瘤轮廓先验信息。这些方法可以提取但不能增强肿瘤分割相关的临床标准,这使得分类性能难以提高。在临床诊断中,放射科医生可以专注于肿瘤区域,自动排除正常组织的干扰,这是现有深度学习CAD方法无法实现的。因此,有必要从临床诊断的标准出发,设计网络,增强包含分割信息的特征。

读一下的论文
肿瘤的分割可以进一步指导与肿瘤分类相关的特征提取,提高性能[32]
由于缺乏公开的大规模标记的医学超声数据集,我们选择非医学ImageNet作为预训练的数据集。虽然ImageNet与超声数据集不同,但低级特征对大多数图像分析任务都是通用的[37]
关注信息
放射科医生可以专注于肿瘤区域,自动排除正常组织的干扰

因此,我们提出了一种新的架构,以提高肿瘤分割和相关的临床诊断信息的特征提取。为了获得分割先验信息,我们提出了一个分割到分类的框架来实现这些目标。与传统的DCNN框架不同,该系统增加了一个包含分割先验信息的并行特征提取分支。分割结果由分割网络获得,并作为卷积网络的输入来提取特征。然后利用基于注意机制的特征聚合网络对两个并行特征提取分支的特征进行合成。考虑该框架的进一步细节描述如下。
如文献[19-28]所示,常用的乳房超声分类深度网络没有考虑分割先验信息在乳房分类中的作用。在经典方法中,基于分割结果的特征提取在乳腺肿瘤分类中占有重要地位[33],这与一系列临床特征和乳房鉴别密切相关。对于乳腺良、恶性肿瘤的分割结果已被证明是提高性能的有效特征。将两个平行分支用于超声肿瘤的特征提取,丰富了特征提取的内容,可以得到更有效的分类特征

如果用分类信息指导分割呢?
不同类别的概率值不同--》融合不同情况下的分割情况

其次,基于信道注意力的特征聚合网络是必要的。两个并行网络的特征提取存在冗余信息,因此,利用一个聚合网络对两个并行网络提取的特征进行聚合,增强有用特征,去除冗余特征,得到更有效的特征表示,有助于乳腺图像分类。通道注意力网络可以分析两个特征网络中不同通道的重要性,并对不同的通道特征进行加权,得到更有效的特征。综上所述,本文的主要贡献归纳如下:
(1)提出了一种新的分类方案,将分割信息作为先验信息输入网络进行乳腺超声诊断。对分割网络进行训练,得到肿瘤区域,形成分割增强图像,并行提取分割增强图像和原始图像的特征进行分类。
(2)提出了一种通道注意方法,用于两个并行网络的特征聚合,以增强对分类有用的特征,得到更有效的特征表示。由于分割增强信息被添加到网络中,并进行通道注意力方法以获得最具信息量的特征,因此我们的方法被称为基于分割的注意力网络(SBANet)。
(3)实验结果表明,分割分类框架是能够提高诊断性能。

方法

在本节中,说明了所提出的方法的整体架构,包括分割模型的架构、两个并行特征提取网络、基于通道注意力的特征聚合网络和最终分类网络。
2.1. Overall architecture—2.1.整体架构
所提出的架构如图1所示。与传统的框架不同,我们的系统是一个分割到分类的框架,由四个组件组成:
(1)分割模型
为了获得后续分类任务的形状和形态先验,避免实际使用中专业放射科医生标记的巨大工作量,首先训练分割模型来估计肿瘤的边缘。分割网络接收超声图像的样本作为输入,并输出分割的二值图像。经过形态学开闭算法处理后,得到包含肿瘤和组织的分割图像。
(2)两个并行的特征提取网络
在得到分割结果后,我们将原始图像和分割后的图像进行联合收割机组合,形成分割增强图像。为了获得更鲁棒的图像表示,分别对应于原始图像和分割增强图像,设计了两个并行的特征提取网络。这些特征是从两个并行特征提取网络的输出中获得的。
(3)两个网络的特征聚合
在特征提取之后,设计了一个特征聚合网络,专注于两个网络获得的不同通道特征图之间的关系,并自动学习不同通道特征的重要性,以生成更有效的特征表示。将特征图乘以自适应重要性权重以获得更有效的特征表示。
(4)分类网络
在获得图像的特征表示之后,训练分类网络以获得乳腺超声图像的最终分类。
我们的乳腺肿瘤分类方案涉及三个问题:(1)如何自动获取肿瘤分割,形成有效的分割增强图像进行特征提取;(2)如何在超声图像上提取特征,避免过拟合;(3)如何自动学习两个网络提取的不同通道特征的重要性,生成更有效的特征表示。第2.2、2.3和2.4节将分别介绍问题的解决方案。
2.2. Segmentation model–
用u-net充当
为了减少过拟合的影响,我们在第4块和第5块中增加了dropout方法。在我们的工作中,辍学率的值是0.5。
原始图像作为输入,肿瘤和正常组织分别为1和0的二值图像作为输出来训练U-Net_tumor。在用U-Net_tumor分割乳腺肿瘤图像之后,获得包含对象(肿瘤)和背景(组织)的二值图像。接下来,进行形态学打开和闭合以细化肿瘤轮廓,打开以减少骨针,闭合以填充孔。椭圆核用于打开和关闭操作。经形态学开闭算法处理后,得到包含肿瘤和组织的分割图像。
2.3. Feature extraction network–
对肿瘤进行分割后,得到超声图像及其相应的分割结果。为了进行最终的分类,我们需要提取超声图像的特征。在目前提出的方法中,选择ResNet50作为特征提取网络,因为它具有强大的特征表示能力。为了避免过度拟合,应用迁移学习,并且应用预训练的参数来初始化网络的参数,并进行微调以适应乳腺超声数据集。由于缺乏公开的大规模标记的医学超声数据集,我们选择非医学ImageNet作为预训练的数据集。虽然ImageNet与超声数据集不同,但低级特征对大多数图像分析任务都是通用的[37]。因此,传输的参数可以帮助提供一组强大的特征,从而减少对大型数据集的需求以及训练时间和内存成本。在此基础上,对模型进行微调,可以提取出最适合具体超声图像分类的特征。如图3所示,ResNet50模型由相似残差块的堆栈组成,并且存在连接残差块的输入和输出的标识映射路径。为了将原始图像和分割增强图像的信息联合收割机结合起来,设计了两个ResNet作为原始图像和分割增强图像的特征提取网络,分别称为ResNet_ORI和ResNet_SEI。

2.3.1.ResNet_ORI
用于提取原始图像的特征。在ImageNet数据集上分配预训练参数后,ResNet_ORI在乳腺超声数据集上进行微调,以适应目标域数据集。ResNet_ORI的输入是原始乳腺超声图像,Conv5_x的最后一个卷积层的输出是原始图像的特征表示。更技术性地说,令μori =(μ(0)ori,μ(1)ori,.,μ(K−1)ori)是从Conv5_x的最后一个卷积层输出的张量,K表示该层中的通道数。因此,μori是ResNet_ORI的特征表示。方法
在本节中,说明了所提出的方法的整体架构,包括分割模型的架构、两个并行特征提取网络、基于通道注意力的特征聚合网络和最终分类网络。
2.1. Overall architecture—2.1.整体架构
所提出的架构如图1所示。与传统的框架不同,我们的系统是一个分割到分类的框架,由四个组件组成:
(1)分割模型
为了获得后续分类任务的形状和形态先验,避免实际使用中专业放射科医生标记的巨大工作量,首先训练分割模型来估计肿瘤的边缘。分割网络接收超声图像的样本作为输入,并输出分割的二值图像。经过形态学开闭算法处理后,得到包含肿瘤和组织的分割图像。
(2)两个并行的特征提取网络
在得到分割结果后,我们将原始图像和分割后的图像进行联合收割机组合,形成分割增强图像。为了获得更鲁棒的图像表示,分别对应于原始图像和分割增强图像,设计了两个并行的特征提取网络。这些特征是从两个并行特征提取网络的输出中获得的。
(3)两个网络的特征聚合
在特征提取之后,设计了一个特征聚合网络,专注于两个网络获得的不同通道特征图之间的关系,并自动学习不同通道特征的重要性,以生成更有效的特征表示。将特征图乘以自适应重要性权重以获得更有效的特征表示。
(4)分类网络
在获得图像的特征表示之后,训练分类网络以获得乳腺超声图像的最终分类。
我们的乳腺肿瘤分类方案涉及三个问题:(1)如何自动获取肿瘤分割,形成有效的分割增强图像进行特征提取;(2)如何在超声图像上提取特征,避免过拟合;(3)如何自动学习两个网络提取的不同通道特征的重要性,生成更有效的特征表示。第2.2、2.3和2.4节将分别介绍问题的解决方案。
2.2. Segmentation model–
用u-net充当
为了减少过拟合的影响,我们在第4块和第5块中增加了dropout方法。在我们的工作中,辍学率的值是0.5。
原始图像作为输入,肿瘤和正常组织分别为1和0的二值图像作为输出来训练U-Net_tumor。在用U-Net_tumor分割乳腺肿瘤图像之后,获得包含对象(肿瘤)和背景(组织)的二值图像。接下来,进行形态学打开和闭合以细化肿瘤轮廓,打开以减少骨针,闭合以填充孔。椭圆核用于打开和关闭操作。经形态学开闭算法处理后,得到包含肿瘤和组织的分割图像。
2.3. Feature extraction network–
对肿瘤进行分割后,得到超声图像及其相应的分割结果。为了进行最终的分类,我们需要提取超声图像的特征。在目前提出的方法中,选择ResNet50作为特征提取网络,因为它具有强大的特征表示能力。为了避免过度拟合,应用迁移学习,并且应用预训练的参数来初始化网络的参数,并进行微调以适应乳腺超声数据集。由于缺乏公开的大规模标记的医学超声数据集,我们选择非医学ImageNet作为预训练的数据集。虽然ImageNet与超声数据集不同,但低级特征对大多数图像分析任务都是通用的[37]。因此,传输的参数可以帮助提供一组强大的特征,从而减少对大型数据集的需求以及训练时间和内存成本。在此基础上,对模型进行微调,可以提取出最适合具体超声图像分类的特征。如图3所示,ResNet50模型由相似残差块的堆栈组成,并且存在连接残差块的输入和输出的标识映射路径。为了将原始图像和分割增强图像的信息联合收割机结合起来,设计了两个ResNet作为原始图像和分割增强图像的特征提取网络,分别称为ResNet_ORI和ResNet_SEI。

2.3.1.ResNet_ORI
用于提取原始图像的特征。在ImageNet数据集上分配预训练参数后,ResNet_ORI在乳腺超声数据集上进行微调,以适应目标域数据集。ResNet_ORI的输入是原始乳腺超声图像,Conv5_x的最后一个卷积层的输出是原始图像的特征表示。更技术性地说,令μori =(μ(0)ori,μ(1)ori,.,μ(K−1)ori)是从Conv5_x的最后一个卷积层输出的张量,K表示该层中的通道数。因此,μori是ResNet_ORI的特征表示。
2.3.2.ResNet_SEI
如上所述,获得超声图像的对应分割结果,并将其应用于形成分割增强图像。由于二值图像不能表示与纹理和形状相关联的特征,因此分割的二值图像不能直接用作深度卷积网络的输入以获得图像特征。因此,我们提出了一种新的三通道人工RGB图像的方法,通过连接的原始图像及其分割的二值图像。在本研究中,三种形式的组成,并在实验中进行了比较。形式1是两个通道是原始超声图像,另一个通道是分割的二值图像。形式2是一个通道是原始超声图像,另外两个通道是分割的二值图像。形式3是一个通道是原始超声图像,而其他通道是分割的二值图像和具有黑色和白色反转的分割的二值图像。在目前的研究中,SBANet进行了几个实验,在三种形式的分割增强方法,和形式1的方法被称为建议的方法,和其他应用作为比较算法。
设I ori表示原始灰度图像,I seg表示分割后的二值图像,I seg_resort表示白色反转后的分割后的二值图像,I mul_1、I mul_2、I mul_3分别表示三种形式的分割注意图像。因此,I ∈ R M × M × C,M表示宽度和高度的大小,而C表示通道数。合成过程的三种形式如下:
在这里插入图片描述
其中运算符expand_dims将三个单通道灰度图像组合成三通道图像。如图4所示,叠加图像相当于突出显示了肿瘤区域和分割增强信息,包括肿瘤形状相关特征和边缘相关纹理特征。随后的ResNet_SEI可以自动学习这些增强分割信息的特征。具体的网络结构与ResNet_ORI中的一致。类似地,令μsei =(μ(0)sei,μ(1)sei,.,μ(K−1)sei)是一个张量,它是Conv5_x的最后一个卷积层的输出,K表示该层中的节点数。同时,μsei ∈ R K ×1是子网络_SEI的特征表示。
2.4.基于通道注意力的特征聚合网络
由于两种网络提取的特征既有相似之处,又有不同之处,为了了解两种网络提取的不同通道特征的重要性,更关注信息量最大的通道特征,提出了一种特征聚合网络来自动聚合原始图像和分割增强图像的特征。首先,将两个网络提取的特征图连接起来。给定两个网络的提取特征图μori,μsei,级联特征图μconcat = concatenate(μori,μsei)=(μ(0)ori,μ(1)ori,.,μ(K−1)ori,μ(0)sei,μ(1)sei,.,μ(K−1)sei)。这里,concatenate是将两个张量连接成一个张量的算子,μori和μsei是原始图像和分割增强图像的DCNN特征图。然后,采用通道注意力方法,主要包括挤压步骤和激发步骤,来衡量不同的通道特征。压缩步骤是一个全局平均池化操作,对每个连接的特征图执行该操作以获得通道级全局特征。通道上的整个空间特征被编码为全局特征。然后,激励步骤根据全局特征学习通道之间的关系,得到不同通道的自适应权值,即注意力得分。设计了两个完全连接的层,分别具有激活层ReLu和sigmoid,以获得每个通道的注意力得分。最后,通过将注意力分数与连接的特征图相乘来获得最终的特征表示。我们的特征聚合和分类网络的架构如图5所示。分类网络由全连接层和softmax层组成。乳房超声图像的聚合特征可以公式化如下:

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

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

相关文章

prompt 工程案例

目录 prompt 工程是什么? 案例 vllm 推理加速框架 prompt 工程是什么? prompt:提示词,也就是我们使用网页版输入给大模型的内容就叫 prompt,那什么是 prompt 工程呢? 简单理解其实就是利用编写的 prom…

使用自己训练的superpoint与superglue模型进行图像配准

基于官方团队发布的预训练模型,使用SuperPoint与SuperGlue实现图像配准,可以参考https://blog.csdn.net/a486259/article/details/129093084 基于官方团队发布的代码训练自己的模型,可以参考https://blog.csdn.net/a486259/article/details/…

如何理解UDP 和 TCP? 区别? 应用场景?

文章目录 一、UDP二、TCP三、区别参考文献 一、UDP UDP(User Datagram Protocol),用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在…

什么是运放噪声频率曲线?怎么算噪声有效值?只需要3个公式!

原文来自微信公众号:工程师看海,与我联系:chunhou0820 看海原创视频教程:《运放秘籍》 大家好,我是工程师看海,原创文章欢迎点赞分享! 运放有哪些噪声源?什么是噪声频率曲线&#x…

使用Autodl与Xftp远程训练模型及管理远程文件

1 AutoDL网站登录创建实例 AutoDL网站:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL 1)进入算力市场,选取可用显卡(工作日一般白天抢不到,晚上才能抢到) 2)选择配置环境 3)创建成功实例…

蓝桥集训之阶乘分解

蓝桥集训之阶乘分解 核心思想&#xff1a;线性筛质数 筛出每一个质数后 只要将所有质数的1 2 3 … 次方个数都加上即可 #include <iostream>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int N 1e610;int …

python中如何使用help()

help()函数帮助我们了解模块、类型、对象、方法、属性的详细信息。 1、帮助查看类型详细信息&#xff0c;包含类的创建方式、属性、方法 >>> help(list) Help on class list in module builtins: class list(object)| list() -> new empty list| list(iterable)…

企微知识库优缺点解析:如何让其效益最大化

企业搭建企微知识库&#xff0c;作为企业内部知识的集中存储和共享平台&#xff0c;为企业带来了很多便利。但是&#xff0c;任何事物都有其两面性&#xff0c;企微知识库也不例外。今天我们就来详细探讨搭建企微知识库的优点和缺点&#xff0c;如何在使用企微知识库时使其发挥…

联达动力OA 多处任意文件上传漏洞复现

0x01 产品简介 联达动力OA是PHPOA推出的新一代OA系统,系统支持性好、安全、数据高速缓存化;支持100+应用自行安装与定义,应用表单自定义,支持应用无代码开发,支持多语言。 0x02 漏洞概述 联达动力OA /FileManage/UpLoadFile.aspx、/Hosp_Portal/uploadLogo.aspx、/Dept_Por…

7.stack容器的使用

文章目录 stack容器常用接口代码工程运行结果 stack容器 常用接口 /*1.push - 入栈*/ /*2.top - 查看栈顶元素*/ /*3.pop - 出栈*/代码工程 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<stack>using namespace std;/*1.push - 入栈*/ /*2.top…

Linux-Arm GDB调试(本地和远程)

目录 问题描述 已有coredump 没有coredump 小结 问题描述 Linux本机调试使用GDB非常方便&#xff0c;但嵌入式Linux设备资源有限&#xff0c;通常并没有交叉编译工具&#xff0c;那嵌入式设备上的应用发生问题如何查找问题&#xff1f;通常IDE有远程DEBUG功能&#xff0c;这…

3.冒泡排序

冒泡排序 基本思想&#xff1a;每次比较两个相邻的元素 如果它们的顺序错误就把它们交换过来 重点&#xff1a;交换 时间复杂度为&#xff1a;O(n^2)&#xff08;平均情况、最坏情况&#xff09; 最优情况&#xff1a;输入的数组已经是完全有序的时候 冒泡排序只需要进行一…

IT外包服务:企业数据资产化加速利器

随着数字化时代的兴起&#xff0c;数据成为企业最为重要的资源之一。数据驱动创新对于企业的竞争力和可持续发展至关重要。在这一进程中&#xff0c;IT外包服务发挥着关键作用&#xff0c;加速企业数据资产化进程&#xff0c;为企业提供了重要支持。 首先&#xff0c;IT外包服务…

第七讲 索引并发控制

我们假设迄今为止讨论的所有数据结构都是单线程访问的。 但 DBMS 需要允许多个线程安全地访问数据结构&#xff0c;以充分利用额外的 CPU &#xff0c;并隐藏磁盘 I/O 停顿。 并发控制协议【concurrency control protocol】是 DBMS 用于确保在共享对象上的并发操作得到“正确”…

【React】基于JS 3D引擎库实现关系图(图graph)

主角&#xff1a;3D Force-Directed Graph 简介&#xff1a;一个使用ThreeJS/WebGL进行3D渲染的Graph图库 GitHub: https://github.com/vasturiano/3d-force-graph Ps: 较为复杂或节点巨大时&#xff0c;对GPU>CPU消耗较大&#xff0c;同量级节点对比下优于AntV G6和Echarts…

树(Tree) - 概念与基础

树的基本概念 树(Tree)是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用于各种算法和程序中。树是由节点(node)组成的层次结构&#xff0c;其中每个节点都有一个父节点&#xff0c;除了根节点外&#xff0c;每个节点都有零个或多个子节点。树的一个关键特点是没有…

【算法每日一练]-数论(保姆级教程 篇1 埃氏筛,欧拉筛)

目录 保证给你讲透讲懂 第一种&#xff1a;埃氏筛法 第二种&#xff1a;欧拉筛法 题目&#xff1a;质数率 题目&#xff1a;不喜欢的数 思路&#xff1a; 问题&#xff1a;1~n 中筛选出所有素数&#xff08;质数&#xff09; 有两种经典的时间复杂度较低的筛法&#xff0…

蓝桥杯真题:路径

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {int n 2022; //从下标为1开始&#xff0c;方便计算int[] q new int[n]; //存储最短路q[1] 0; //起始条件for (int i 2; i < 202…

C语言 | Leetcode C语言题解之3题无重复字符的最长子串

题目&#xff1a; 题解&#xff1a; int lengthOfLongestSubstring(char * s) {//类似于hash的思想//滑动窗口维护int left 0;int right 0;int max 0;int i,j;int len strlen(s);int haveSameChar 0;for(i 0; i < len ; i ){if(left < right){ //检测是否出现重…

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组

5.2 通用代码&#xff0c;数组求和&#xff0c;拷贝数组&#xff0c;si配合di翻转数组 1. 通用代码 通用代码类似于一个用汇编语言写程序的一个框架&#xff0c;也类似于c语言的头文件编写 assume cs:code,ds:data,ss:stack data segmentdata endsstack segmentstack endsco…