人工智能在影像组学与放射组学中的最新进展|顶刊速递·24-06-22

小罗碎碎念

本期文献速递的主题——人工智能在影像组学中的最新进展。

小罗一直以来的观点,是把大问题分模块拆解——既然我们想做多模态,那么就先了解单模态的研究套路,再去研究不同模态提取的特征如何融合,搞科研的过程也是管理人才,管理自己的过程。

我是罗小罗同学,明天见!!

image-20240622082241799


一、评估人工智能(AI)系统通过MRI检测前列腺癌方面的性能,并与传统的放射科医生使用前列腺成像-报告和数据系统进行比较

image-20240622075649992

文献概述

这篇文章的目的是评估人工智能(AI)系统在通过MRI检测前列腺癌方面的性能,并与传统的放射科医生使用前列腺成像-报告和数据系统(PI-RADS 2.1)进行比较。

研究团队训练并外部验证了一个AI系统,用于检测Gleason评分2组或更高级别的癌症。

研究使用了10207例来自9129名患者的回顾性MRI检查队列。其中,9207例来自荷兰的三个中心(11个地点)的案例用于训练和调整,1000例来自荷兰和挪威的四个中心(12个地点)的案例用于测试。与此同时,研究还组织了一个多读者、多案例的观察者研究,涉及62名放射科医生(来自20个国家的45个中心),他们使用PI-RADS 2.1对测试队列中的400对MRI检查进行了评估。


研究的主要终点是AI系统的敏感性、特异性以及接收者操作特征曲线下面积(AUROC)与所有使用PI-RADS 2.1的读者以及多学科常规实践中的历史放射学读数(即标准护理)进行比较。使用组织病理学和至少3年(中位数5年)的随访来建立参考标准。统计分析计划是预先设定的,主要假设是AI系统的非劣效性(考虑0.05的边界),如果确认非劣效性,则进行AI系统的优越性测试。

研究发现,在400个测试案例的子集中,AI系统显示出统计上优越且非劣的AUROC为0.91(95% CI 0.87–0.94;p<0.0001),与62名放射科医生的AUROC 0.86(0.83–0.89)相比,AUROC差异的双侧95% Wald CI的下限为0.02。

在所有读者的平均PI-RADS 3或更高操作点,AI系统在相同的特异性下检测到6.8%更多的Gleason评分2组或更高级别的癌症案例,或者在相同的敏感性下减少了50.4%的假阳性结果和20.0%的Gleason评分1组癌症案例。在所有1000个测试案例中,AI系统与多学科实践中的放射学读数相比,未能确认非劣效性,因为AI系统在相同的敏感性(96.1%,94.0–98.2)下显示出较低的特异性(68.9% [95% CI 65.3–72.4] vs 69.0% [65.5–72.5])。

研究解释为AI系统在检测临床意义的前列腺癌方面平均优于使用PI-RADS 2.1的放射科医生,并且与标准护理相当。这样的系统显示出在初级诊断设置中作为支持工具的潜力,为患者和放射科医生带来多种相关好处。需要进行前瞻性验证来测试该系统在临床应用中的可行性。


重点关注

AI系统与放射科医生在诊断临床显著前列腺癌方面的表现对比。

image-20240622080600989

(A) 接收者操作特征曲线(Receiver Operating Characteristic Curve, ROC Curve)显示了AI系统和62位放射科医生在400个测试案例上的诊断性能。这些案例用于促进读者研究。每位放射科医生的PI-RADS操作点用浅灰色的圆圈、星号和三角形标记表示。对角虚线代表了随机分类器的ROC曲线,其AUROC(曲线下面积)为0.50,这是一个没有诊断能力的分类器的表现。

(B) 第二个ROC曲线展示了AI系统和在多学科常规实践中进行的放射学读数的PI-RADS操作点,考虑了所有1000个测试案例。同样,对角虚线代表了随机分类器的ROC曲线,AUROC为0.50。

© 展示了AI系统与62位放射科医生在AUROC度量上的差值,这是基于400个测试案例的子集,这些案例用于促进读者研究。这个度量表明了AI系统与放射科医生平均表现的差异。

(D) 当AI系统的阈值调整以匹配多学科常规实践中放射学读数的PI-RADS 3或更高操作点的相同敏感性(96.1%)时,展示了特异性的差异。这是基于所有1000个测试案例的考虑。如果AI系统的特异性与放射科医生的表现相当或更好,这将表明AI系统在减少假阳性诊断方面具有潜在的优势。


从这些图表中可以得出结论,AI系统在诊断临床显著的前列腺癌方面表现出了与经验丰富的放射科医生相当的或更优越的性能。特别是在AUROC的比较上,AI系统显示出较高的值,这表明它在敏感性和特异性之间取得了更好的平衡。

此外,调整阈值后的特异性比较也显示了AI系统在减少不必要的生物活检方面可能具有潜在的优势。然而,这些结果需要通过前瞻性验证来进一步测试其临床应用性。


二、一项关于鼻咽癌诱导化疗疗效预测的研究

image-20240622075756309

文献概述

这篇文章是一项关于鼻咽癌(Nasopharyngeal Carcinoma, NPC)诱导化疗(Induction Chemotherapy, IC)疗效预测的研究。

研究目的是通过血浆代谢组学分析建立一个预测分类器,以预测IC对晚期NPC患者的疗效

研究设计为一项双向临床试验,共纳入166名接受IC治疗的NPC患者。使用1H-NMR技术在IC治疗前后获取血浆脂蛋白谱,并通过人工智能辅助的放射组学方法有效评估疗效。通过基于机器学习的方法在发现队列中识别代谢生物标志物,并在模拟现实世界最不利情况的验证队列中进行验证。

研究发现,IC的疗效在不同患者间存在差异,并且与代谢物谱的变化相关。利用机器学习技术,特别是XGB模型,显示出显著的预测效果,其下曲线面积(Area Under the Curve, AUC)值达到0.792。在验证队列中,模型显示出强大的稳定性和泛化能力,AUC值为0.786。

研究结果表明,血浆脂蛋白的失调可能导致NPC患者对IC的耐药性,并且基于血浆代谢物谱构建的预测模型具有良好的预测能力和现实世界泛化潜力。这项发现对治疗策略的发展以及提高IC疗效的潜在靶点提供了见解。

研究还讨论了IC在治疗晚期NPC中的矛盾效果,强调了识别个体患者反应的重要性,以及如何利用AI辅助方法评估肿瘤负担,并识别与IC疗效相关的生物标志物。研究结果有助于开发更精确的预测模型,为临床治疗决策提供支持,并可能改善患者的生活质量。


重点关注

评估诱导化疗(IC)疗效的工作流程。

image-20240622081313091

以下是对该流程的分析:

  1. 图像数据收集:在IC治疗前后,收集患者的磁共振成像(MRI)和计算机断层扫描(CT)图像数据。如果图像数据缺失或质量较低,则将其排除在外。

  2. 图像处理:使用PV-iRT自动化目标勾画系统对收集到的成像数据进行处理。PV-iRT系统用于半自动地勾画出包含肿瘤和淋巴结的兴趣区域(ROI)。

  3. 3D模型构建:将勾画好的ROI转换为三维(3D)模型。这些模型能够更直观地展示肿瘤和淋巴结的空间结构。

  4. 体积计算:通过基于体素的分析方法计算肿瘤和淋巴结的体积。体素是构成3D模型的最小单元,通过计算体素数量可以得到肿瘤和淋巴结的体积。

  5. 肿瘤负担评估:通过上述步骤得到的3D模型和体积数据,评估每位患者当前条件下的肿瘤负担。

  6. 疗效评估:通过比较治疗前后肿瘤负担的变化来评估IC的疗效。具体来说,计算治疗前后肿瘤体积的变化率,这通常通过以下公式来表示:
    TBRR (Tumor Burden Reduction Ratio) = ( Initial Tumor Burden Volume − Final Tumor Burden Volume Initial Tumor Burden Volume ) × 100 % \text{TBRR (Tumor Burden Reduction Ratio)} = \left( \frac{\text{Initial Tumor Burden Volume} - \text{Final Tumor Burden Volume}}{\text{Initial Tumor Burden Volume}} \right) \times 100\% TBRR (Tumor Burden Reduction Ratio)=(Initial Tumor Burden VolumeInitial Tumor Burden VolumeFinal Tumor Burden Volume)×100%
    其中,TBRR大于12.6%的患者被认为是对IC敏感的,TBRR小于0%的患者被认为是对IC有抵抗性的,而TBRR在0%至12.6%之间的患者被认为是对IC无反应的。

整个流程利用先进的影像技术和自动化工具,提高了评估IC疗效的准确性和效率。通过这种方法,研究人员能够更精确地量化治疗效果,并为患者提供个性化的治疗决策支持。


三、使用深度学习算法预测前列腺癌在主动监测期间的分级重分类

image-20240622075816558

文献概述

这篇文章是关于使用深度学习(Deep Learning, DL)算法来预测前列腺癌(Prostate Cancer, PCa)在主动监测(Active Surveillance, AS)期间的分级重分类的研究。

研究使用了一种名为AIRAProstate的DL算法,对两个独立的PCa AS队列中的初始前列腺活检样本进行了重新分级。研究发现,与当代泌尿病理学家的评估相比,AIRAProstate算法在预测AS期间的分级重分类方面表现更好。

  1. 研究背景:前列腺癌的分级是管理PCa的关键,特别是在AS环境中。近年来,基于DL的算法已经被开发出来,用于识别整个幻灯片图像(Whole Slide Images, WSIs)上的Gleason模式,并与泌尿病理学家确定的分级进行比较进行验证。
  2. 研究目的:评估DL分级算法在AS患者风险分层中的性能,通过分析算法确定的初始前列腺活检的分级与随后AS的临床结果之间的关联。
  3. 研究方法:研究分析了在约翰霍普金斯大学使用AS管理的两个独立队列的患者。比较了当代泌尿病理学家为这些患者初始前列腺活检分配的分级与DL算法确定的分级,并评估了两组分级与随后AS期间分级重分类的关联。
  4. 研究结果
    • 在最初使用系统活检诊断为GG1 PCa的队列中(n=138),AIRAProstate将初始活检升级为≥GG2与AS期间快速或极端分级重分类相关联(比值比3.3,p=0.04),而当代泌尿病理学家的评估则没有显示出这种关联。
    • 在进行前列腺磁共振成像(MRI)的当代验证队列中(n=169),AIRAProstate将初始活检(所有由泌尿病理学家分级为GG1)升级为≥GG2与AS期间的分级重分类相关联(风险比1.7,p=0.03)。
  5. 结论:DL算法在预测AS期间的PCa分级重分类方面具有实用性,可能有助于标准化PCa分级并改善AS的风险分层。
  6. 研究限制:研究的局限性包括其回顾性性质和单一机构设计。研究的优势包括使用了两个特征鲜明的独立AS队列,一个来自MRI时代之前,一个来自MRI时代,每个队列评估了不同的临床结果。

重点关注

表1提供了在病例对照AS队列(N=138)中,单变量和多变量逻辑回归分析的结果,用以评估快速或极端的前列腺癌分级重分类的影响因素。

image-20240622081556294

以下是对表中数据的分析:

  1. Uropathologist Consensus GG for Initial Biopsy(初始活检的泌尿病理学家共识分级)

    • 在单变量回归中,GG1被用作参照组(排除)。
    • GG2或更高分级在单变量回归中与快速或极端分级重分类的比值比(OR)为1.69,但不具有统计学意义(P=.39)。
  2. AIRAProstate GG for Initial Biopsy(初始活检的AIRAProstate分级)

    • 同样,GG1作为参照组。
    • GG2或更高分级在单变量回归中的OR为5.53,具有统计学意义(P=.001),表明使用AIRAProstate算法对初始活检样本进行分级与快速或极端分级重分类显著相关。
    • 在多变量回归模型中,调整了其他已知的AS预后因素后,OR降至3.33,但仍然具有统计学意义(P=.04)。
  3. Year of Biopsy(活检年份)

    • 活检年份每增加一年,快速或极端分级重分类的风险比在单变量和多变量模型中均显著增加,表明近年来活检的患者重分类风险更高。
  4. Age at Biopsy(活检时年龄)

    • 活检时年龄每增加一岁,与重分类风险呈负相关,但这种关系在多变量模型中不显著。
  5. Race(种族)

    • 黑人患者的重分类风险在单变量模型中显著高于其他种族,但在多变量模型中不再显著。
  6. PSA Density(PSA密度)

    • PSA密度每增加0.1 ng/mL^2,与重分类风险的关系在所有模型中均不显著。
  7. Number of Positive Biopsy Cores(阳性活检核心数)

    • 阳性活检核心数每增加一个,与重分类风险的关系在单变量模型中不显著,但在多变量模型中没有提供数据。
  8. Maximum Percent Core Involvement(最大核心受累百分比)

    • 核心受累百分比每增加10%,在单变量和多变量模型中均与重分类风险显著相关。
  9. Underwent mpMRI before Biopsy(活检前是否进行mpMRI)

    • 在活检前进行多参数磁共振成像(mpMRI)与重分类风险的关系在所有模型中均不显著。

表中的“P values <.05 are marked in bold”说明P值小于0.05的结果被认为是统计学上显著的,并以粗体显示。多变量模型的Harrell’s concordance statistic值接近1表示模型预测的准确性较高,0.81和0.82表明模型具有较好的预测能力。

总的来说,表1显示AIRAProstate算法在预测前列腺癌分级重分类方面可能比泌尿病理学家的共识分级更为有效,且活检年份和核心受累的百分比是影响重分类风险的重要因素。


四、使用基于影像组学的方法预测脑转移瘤患者在接受术后立体定向放疗后的局部控制情况

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文献概述

这篇文章是一项关于使用基于影像组学的方法预测脑转移瘤患者在接受术后立体定向放疗后的局部控制情况的研究。

研究的目的是开发并验证一个预治疗的影像组学工具,以识别具有高局部失败(LF)风险的患者

研究包括来自多中心分析的**253名患者(两个中心的训练队列)和99名患者(五个中心的外部测试队列)**的数据。从对比增强的脑转移瘤(T1-CE MRI序列)及其周围水肿(FLAIR序列)中提取影像组学特征,并比较了不同的影像组学和临床特征组合。最终模型在训练队列中通过内部5折交叉验证确定的最佳参数进行训练,并在外部测试集上进行测试。

研究结果显示,结合影像组学和临床特征的弹性网回归模型在外部测试中表现最佳,一致性指数(CI)为0.77,超过了任何仅使用临床特征的模型(最佳CI为0.70)。该模型有效地通过Kaplan-Meier分析(p < 0.001)对患者按LF风险进行了分层,并展示了增量的净临床效益。在24个月时,低风险和高风险组的LF发生率分别为9%和74%。

研究的结论是,结合临床和影像组学特征的预测模型比单独使用任何临床特征集更好。高风险LF患者可能从更严格的随访程序或强化治疗中受益。研究强调了多模态数据分析在这一挑战性任务中的潜力,并可能通过根据个体的局部失败风险定制随访和治疗来改善脑转移瘤患者的管理。

研究还指出,尽管结果有前景,但存在一些限制,包括模型仅使用有限数量的特征,以及需要一致质量的分割。此外,研究还提到了使用自动生成的分割作为完全自动化工作流程的可行性。最后,研究提供了一个易于使用的网络应用程序,用户可以上传所需的MRI序列和分割或输入之前提取的影像组学特征。


重点关注

研究中用于开发预测模型的关键步骤

image-20240622081820480

具体包括以下几个环节:

  1. 定义兴趣体积(VOI):无论是手动还是自动,首先定义了需要分析的脑部转移瘤和水肿的体积区域。

  2. 特征提取:从每个转移瘤和水肿的分割图像中提取了104个原始影像组学特征。这些特征可能包括图像的纹理、形状和信号强度分布等定量属性。

  3. 特征数量减少:使用最小冗余-最大相关性(MRMR)方法来减少每组特征的数量。MRMR是一种特征选择技术,旨在选择出既相关又不会彼此重复的特征,以提高模型的性能并减少复杂性。

  4. 临床特征的整合:在影像组学特征的基础上,研究者还添加了多达8个临床特征。这些临床特征可能包括患者的年龄、性别、病史等信息。

  5. 特征集的组合:将影像组学特征与临床特征结合,形成了多个不同的特征集,以探索它们对预测结果的贡献。

  6. 特征数量的优化:使用嵌套交叉验证来确定每个特征集中最优的特征数量。嵌套交叉验证是一种模型选择方法,可以更稳健地评估不同特征数量组合的性能。

  7. 学习器参数的选择:基于5折交叉验证来选择最优的学习器参数。交叉验证是一种统计方法,用于评估并提高模型的预测性能,通过将数据集分成几个子集进行训练和验证。

  8. 外部测试队列的验证:使用外部测试队列来测试每个学习器-特征组合的最佳参数。这是为了验证模型在新的、独立的数据集上的泛化能力。

这个过程展示了一个系统的方法来开发和验证一个预测模型,其中包括了特征的提取、优化和临床验证,确保了模型的准确性和可靠性。


五、一种新型的人工智能(AI)框架,用于从腹部计算机断层扫描(CT)图像中进行器官分割和肿瘤检测

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文献概述

这篇文章是关于一种新型的人工智能(AI)框架,用于从腹部计算机断层扫描(CT)图像中进行器官分割和肿瘤检测。

主要贡献和特点:

  1. 通用性和可扩展性:该框架能够处理多个公共数据集,并能够适应新类别(例如器官/肿瘤)。
  2. 语言驱动的参数生成器:利用大型语言模型的语言嵌入来丰富语义编码,与传统的一位有效编码相比,能够更好地捕捉器官和肿瘤之间的语义关系。
  3. 类特定的输出层:用轻量级、类特定的头(class-specific heads)替代传统的输出层,允许模型同时分割25个器官和六种肿瘤类型,并简化新增类别的流程。
  4. 训练和测试:在3410个CT体积上训练,并在来自四个外部数据集的6173个CT体积上进行测试。
  5. 性能:在医学分割十项全能(Medical Segmentation Decathlon, MSD)公共排行榜上的六项CT任务中取得第一名,并在Beyond The Cranial Vault (BTCV)数据集上展现出领先的性能。
  6. 计算效率:比特定数据集模型快6倍,且在不同医院的数据上展现出强大的泛化能力,能够很好地转移到多个下游任务,并且在学习新类别的同时减轻了对之前学习类别的灾难性遗忘。

相关工作:文章还讨论了器官分割和肿瘤检测的相关研究,包括深度学习技术、基于 Transformer 的模型,以及增量学习等。


方法论

  • 问题定义:学习一个统一的多器官分割模型来处理部分标记的数据集。
  • CLIP驱动的通用模型:包含语言分支和视觉分支,利用大型语言模型的嵌入作为语义编码的新方法。
  • 优化:使用二元交叉熵和二元Dice损失函数进行监督。

实验

  • 在MSD和BTCV数据集上进行了广泛的实验,证明了所提出框架的有效性。
  • 对比其他部分标记学习方法,使用MOTS数据集作为基准。
  • 对于肿瘤检测,评估了在五个数据集上的性能,使用敏感性和特异性进行评估。

结论:文章提出了一个新颖的多器官分割和肿瘤检测框架,通过将语言嵌入与分割模型相结合,实现了一个灵活强大的分割器。实验结果验证了CLIP驱动的通用模型在效率、泛化能力、迁移能力和可扩展性方面的重要临床优势。

此外,作者还讨论了当前工作的局限性,并提出了未来的研究方向,如多模态集成、语言嵌入的优化,以及未标记区域的利用等。


重点关注

Fig. 1 提供了对持续CLIP驱动的通用模型(continual CLIP-Driven Universal Model)的概述,该模型是基于14个公共数据集的3410个CT体积开发的。

image-20240622082013616

这些数据集中总共包含了25个器官和6种类型的肿瘤的部分标签。为了处理这些部分标签,通用模型由语言分支(language branch)和视觉分支(vision branch)组成,如图中Section 3.2所述。

  1. 语言分支(Language Branch):利用大型语言模型(如CLIP的文本编码器)的嵌入来生成每个器官/肿瘤类别的语言嵌入,以捕捉类别之间的语义关系。

  2. 视觉分支(Vision Branch):专注于从CT体积中提取特征嵌入,然后使用类特定分割头(Class-Specific Segmentation Head, CSH)结合语言嵌入来预测每个器官/肿瘤的二进制掩模。

  3. 性能基准测试(Benchmarking Performance):使用MSD(Medical Segmentation Decathlon)和BTCV(Beyond The Cranial Vault)的官方测试集来评估器官分割(Section 4.2)和肿瘤检测(Section 4.3)的性能。

  4. 外部验证(External Validation):使用3D-IRCADb、TotalSegmentator和一个包含5038个CT体积的大型私有数据集,这些数据集共有21个带注释的器官,用于独立评估模型的泛化能力(Section 4.5)和迁移能力(Section 4.6)。

  5. 持续学习(Continual Learning):LPG(Language-driven Parameter Generator)模块为每个器官使用独立的多层感知器(MLP),以解决ICCV版本(Liu et al., 2023a)中存在的纠缠问题,该版本依赖于单一的MLP。

这个框架的设计允许模型在不断学习新类别的同时,最小化对旧类别的干扰,即所谓的灾难性遗忘(catastrophic forgetting)。通过这种方式,通用模型能够适应新数据,同时保留对旧数据的知识,这对于医学图像分割和肿瘤检测领域是一个重要的进步。


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

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

相关文章

Flutter Android 调试桥 (adb)

客户端&#xff1a;用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。 守护程序adbd&#xff1a;用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 服务器&#xff1a;用于管理客户端与守护程序之间的通信。服务器在开…

刷代码随想录有感(113):动态规划——爬楼梯plus

题干&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std;int main(){int n,m;cin>>n>>m;vector<int>dp(n 1, 0);dp[0] 1;for(int j 0; j < n; j){for(int i 1; i < m; i){if(j > i)dp[j] dp[j - i];}}cout<&…

【吊打面试官系列-Mysql面试题】什么是存储过程?用什么来调用?

大家好&#xff0c;我是锋哥。今天分享关于 【什么是存储过程&#xff1f;用什么来调用&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 什么是存储过程&#xff1f;用什么来调用&#xff1f; 答&#xff1a;存储过程是一个预编译的 SQL 语句&#xff0c;优点是…

PyScada(三)后端应用

PyScada 的后端应用 使用后端 要使用后端&#xff0c;请在浏览器中打开http://127.0.0.1 &#xff08;将 127.0.0.1 替换为 PyScada 服务器的 IP 或主机名&#xff09;&#xff0c;然后使用安装过程 中定义的管理员帐户登录 &#xff08;TODO 链接到创建超级用户文档&#xf…

【数据分享】《中国法律年鉴》1987-2022

而今天要免费分享的数据就是1987-2022年间出版的《中国法律年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 自1987年起&#xff0c;《中国法律年鉴》作为一部全面记录中国法律发展进程的重要文献&#xff0c;见证了中国法治建设的每…

G7易流赋能化工物流,实现安全、环保与效率的共赢

近日&#xff0c;中国物流与采购联合会在古都西安举办了备受瞩目的第七届化工物流安全环保发展论坛。以"坚守安全底线&#xff0c;追求绿色发展&#xff0c;智能规划化工物流未来"为主题&#xff0c;该论坛吸引了众多政府部门、行业专家和企业代表的参与。G7易流作为…

unity中使用commandbuffer将自定义画面渲染到主相机上

CommandBuffer 保存渲染命令列表&#xff08;例如设置渲染目标或绘制给定网格&#xff09;。您可以指示 Unity 在内置渲染管线中的各个点安排和执行这些命令&#xff0c;因此&#xff0c;您可以自定义和扩展 Unity 的渲染功能。 这句话意味着你可以通过command buffer让相机渲…

数组和链表的区别是什么?

引言&#xff1a;本文旨在深入探讨数组和链表之间的区别&#xff0c;分析它们在不同情境下的优缺点&#xff0c;并探讨如何根据应用需求选择合适的数据结构。通过深入理解数组和链表的内部工作原理和应用场景&#xff0c;读者将能够更好地应用这些知识解决实际问题&#xff0c;…

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell Jenkins弱口令 默认用户一般为jenkins/jenkins 使用admin/admin123登陆成功 Jenkins反弹shell 格式为 println"命令".execute().text 在/tmp目录中生成shell.sh文件&#xff0c;并向其中写入反弹shell的语句 new…

【金】?Y? python网页前端streamlit

1、如何从 Google Colab Notebook 启动 streamit参考-How to Launch Streamlit App from Google Colab Notebook !streamlit run web.py & npx localtunnel --port 8501 & curl ipv4.icanhazip.com

【Excel经验】字符串处理方法

概览-公式汇总 序号公式功能公式公式示例公式说明1把多列内容拼接在一起&#xff0c;作为新的一列的内容CONCATENATE (text1,text2,…)CONCATENATE(A2,“#”,B2,“”,C2)用于根据多个列的内容拼成我们指定格式的内容&#xff0c;拼接的内容通常来源于原始数据&#xff0c;同时…

keep-alive实现页面缓存

<!--router-view 实现页面缓存--> <router-view v-slot"{Component}"><keep-alive :max"8"><component :is"Component"></component></keep-alive> </router-view>

人工智能导论笔记

有关知识表示和推理的零碎知识点 人工智能导论复习题和概念-CSDN博客 机器学习篇 机器学习分类&#xff08;根据样本数据是否带有标签&#xff09;&#xff1a;监督的机器学习、无监督的机器学习、半监督学习。 监督学习又称为“有教师学习”。在监督学习中&#xff0c;模型…

不到3毛钱的SOT23和SOT89封装18V耐压低功耗高PSRR高精度LDO稳压芯片ME6231电流0.5A电压3.3V和1.8V

前言 SOT23-5封装ME6231外观和丝印 一款国产LDO&#xff0c;某些场合&#xff0c;要把1117扔了吧&#xff0c;SOT23封装&#xff0c;虽然不是最小&#xff0c;但也是够小的了。 参考价格&#xff1a;约0.25元 概述 ME6231 系列是以 CMOS 工艺制造的 18V 耐压、低功耗、高 PSR…

windows-docker-本地部署-前端

前置条件 docker已有需要打包的文件也已经写好了 打包镜像 ip地址修改 需要根据自身修改的文件 .env.local文件存放你前端访问的端口 172.24.240.1:这部分是自己电脑的ip 如何查看本机ip&#xff0c;使用IPV4的地址。 #本地 #API_HOST_URLhttp://172.24.240.1:8091打包文…

【Linux】基础IO_3

文章目录 六、基础I/O3. 软硬链接4. 动静态库 未完待续 六、基础I/O 3. 软硬链接 使用 ln 就可以创建链接&#xff0c;使用 ln -s 可以创建软链接&#xff0c;直接使用 ln 则是硬链接。 我们对硬链接进行测试一下&#xff1a; 根据测试&#xff0c;我们知道了 硬链接就像一…

kettle从入门到精通 第七十三课 ETL之kettle kettle调用http分页接口教程

场景&#xff1a;kettle调用http接口获取数据&#xff08;由于数据量比较大&#xff0c;鉴于网络和性能考虑&#xff0c;所以接口是个分页接口&#xff09;。 方案&#xff1a;构造页码list&#xff0c;然后循环调用接口。 1、总体设计 1&#xff09;、初始化分页参数pageNum1…

LeetCode 算法:排序链表 c++

原题链接&#x1f517;&#xff1a;排序链表 难度&#xff1a;中等⭐️⭐️ 题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输…

VLAN单臂路由

1、搭建网络 搭建拓扑、规划IP、划分网段 2、交换机配置 配置脚本&#xff08;设置trunk和创建vlan很重要&#xff09; Switch>enable Switch#conf t Enter configuration commands, one per line. End with CNTL/Z.//创建vlan20 Switch(config)#vlan 20 Switch(config…

Android 添加自己的时钟小部件

小部件&#xff0c;也叫微件&#xff0c; 它的介绍参考官网 应用 widget 概览 https://developer.android.google.cn/develop/ui/views/appwidgets/overview?hlzh-cn 直接上图&#xff0c;原生系统上&#xff0c;时钟应用的小部件效果。 我也整一个。 1.创建小部件布局文…