基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用
基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用
- 摘要
- 引言
- 方法
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层组成。乳房超声图像的聚合特征可以公式化如下:
相关文章:
基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用
基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用 摘要引言方法 Segmentation information with attention integration for classification of breast tumor in ultrasound image 摘要 乳腺癌是世界范围内女性最常见的癌症之一。基于超声成像的计算机辅助诊断&#x…...
数据库重点知识(个人整理笔记)
目录 1. 索引是什么? 1.1. 索引的基本原理 2. 索引有哪些优缺点? 3. MySQL有哪几种索引类型? 4. mysql聚簇和非聚簇索引的区别 5. 非聚簇索引一定会回表查询吗? 6. 讲一讲前缀索引? 7. 为什么索引结构默认使用B…...
[技术闲聊]checklist
电路设计完成后,需要确认功能完整性,明确是否符合设计规格需求;需要确认电路设计是否功能符合但是系列项不符合设计规则,如果都没有问题,那么就可以发给layout工程师。 今天主要讲讲电路设计规则,涉及到一…...
力扣刷题 二叉树的迭代遍历
题干 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输…...
【二】Django小白三板斧
今日内容 静态文件配置 request对象方法初识 pycharm链接数据库(MySQL) django链接数据库(MySQL) Django ORM简介 利用ORM实现数据的增删查改 【一】Django小白三板斧 HttpResponse 返回字符串类型的数据 render 返回HTML文…...
MyBatis的基本应用
源码地址 01.MyBatis环境搭建 添加MyBatis的坐标 <!--mybatis坐标--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql驱动坐…...
Day80:服务攻防-中间件安全HW2023-WPS分析WeblogicJettyJenkinsCVE
目录 中间件-Jetty-CVE&信息泄漏 CVE-2021-34429(信息泄露) CVE-2021-28169(信息泄露) 中间件-Jenkins-CVE&RCE执行 cve_2017_1000353 CVE-2018-1000861 cve_2019_1003000 中间件-Weblogic-CVE&反序列化&RCE 应用金山WPS-HW2023-RCE&复现&上线…...
使用generator实现async函数
我们先来看一下async函数是怎么使用的 const getData (sec) > new Promise((resolve) > {setTimeout(() > resolve(sec * 2), sec * 1000);})// aim to get this asycnFun by generator async function asyncFun() {const data1 await getData(1);const data2 awa…...
go并发请求url
sync.WaitGroup写法 package mainimport ("database/sql""fmt""net/http""sync""time"_ "github.com/go-sql-driver/mysql" )func main() {//开始计时start : time.Now()//链接数据库,用户名…...
刷题之Leetcode704题(超级详细)
704. 二分查找 力扣题目链接(opens new window)https://leetcode.cn/problems/binary-search/ 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标&am…...
leetcode热题100.前k个高频元素
作者:晓宜 🌈🌈🌈 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力😊 Problem: 347. 前 K 个高频元…...
LangChain Demo | Agent X ReAct X wikipedia 询问《三体》的主要内容
背景 LangChain学习中,尝试改了一下哈里森和吴恩达课程当中的问题,看看gpt-3.5-turbo在集成了ReAct和wikipedia后,如何回答《三体》的主要内容是什么这个问题,当然,主要是为了回答这问题时LangChain内部发生了什么。所…...
Revit 2025新功能一览~
Hello大家好!我是九哥~ Revit2025已经更新,安装后,简单试了下,还是挺不错的,流畅度啊,新功能啊,看来还是有听取用户意见的,接下来就简单看看都有哪些新功能。 好了,今天的…...
Head First Design Patterns -代理模式
什么是代理模式 代理模式为另一个对象提供替身或者占位符,以便控制客户对对象的访问,管理访问的方式有很多种。例如远程代理、虚拟代理、保护代理等。 远程代理:管理客户和远程对象之间的交互。 虚拟代理:控制访问实例化开销大的对…...
第十三题:天干地支
题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(w)、己&a…...
8000预算可以购买阿里云服务器配置整理
一个月8000元预算如何选择阿里云服务器配置?八千预算可选的阿里云服务器配置相当高了,这个预算可以购买阿里云企业级独享型云服务器,至少8核以上的配置,这个预算可以支持复杂、高负载或大规模的业务需求。阿里云服务器网整理8000元…...
游戏APP如何提高广告变现收益的同时,保证用户留存率?
APP广告变现对接第三方聚合广告平台主要通过SDK文档对接,一些媒体APP不具备专业运营广告变现的对接能力和资源沉淀,导致APP被封控,设置列入黑名单,借助第三方聚合广告平台进行商业化变现是最佳选择。#APP广告变现# 接入第三方平台…...
Linux ulimit命令教程:如何查看和设置系统资源限制(附实例详解和注意事项)
Linux ulimit命令介绍 ulimit是一个内置的Linux shell命令,它允许查看或限制单个用户可以消耗的系统资源量。在有多个用户和系统性能问题的环境中,限制资源使用是非常有价值的。 Linux ulimit命令适用的Linux版本 ulimit命令在所有主流的Linux发行版中…...
(delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
8.5.2 封闭类和Final方法 如前所述,Java 采用非常动态的方法,默认情况下采用延迟绑定(或虚函数)。因此,Java 语言引入了一些概念,如不能继承的类(封闭类)和不能在派生类中覆盖的方法…...
vue3从精通到入门12:vue3的生命周期和组件
生命周期: 生命周期钩子主要包括: beforeCreate:组件实例被创建之前调用。在这个阶段,组件的 props 和 data 还未被初始化。created:组件实例创建完成后调用。在这个阶段,组件的 props 和 data 已经被初始…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
