当前位置: 首页 > news >正文

学术分享:基于 ARCADE 数据集评估 Grounding DINO、YOLO 和 DINO 在血管狭窄检测中的效果

一、引言

冠状动脉疾病(CAD)作为全球主要死亡原因之一,其早期准确检测对有效治疗至关重要。X 射线冠状动脉造影(XCA)虽然是诊断 CAD 的金标准,但这些图像的人工解读不仅耗时,还易受观察者间差异的影响。本研究评估了三种先进的目标检测模型——Grounding DINO、YOLO 和 DINO —— 在 ARCADE 数据集上对冠状动脉造影图像中狭窄(血管变窄)的自动检测性能。

图1 X 射线冠状动脉造影图像,紫色高亮区域显示狭窄。狭窄表示血管变窄,限制了流向心肌的血流。

二、冠状动脉疾病与狭窄的理解

冠状动脉疾病主要发生在供应心脏的主要血管受损或者发生疾病时,通常由动脉中斑块堆积引起。这会导致血管变窄(狭窄),从而限制流向心肌的血流。若不及时治疗,可能会导致心绞痛(胸痛)、心脏病发作,甚至死亡。

CAD的传统诊断方法包括:

(1)临床评估:评估症状和风险因素;

(2)非侵入性测试:包括心电图、压力测试和CT扫描;

(3)X 射线冠状动脉造影(XCA):将造影剂注入冠状动脉并捕获 X 射线图像的确定性诊断程序。

放射科医师需要手动解读这些血管造影图像以识别狭窄区域,这一过程不仅耗时且解读结果可能存在差异。通过深度学习自动化这一过程,可以显著提高诊断效率和一致性。

三、ARCADE 数据集

本研究使用 ARCADE 数据集(冠状动脉疾病事件自动化注册分析),这是一个专为自动 CAD 诊断设计的公开基准数据集。该数据集包含由专家标记的 X 射线血管造影图像,附有狭窄检测注释,为评估不同检测算法提供了标准化资源。

ARCADE数据集的主要特点包括:

(1)包含专家标记的狭窄区域;

(2)代表不同程度狭窄的多样化患者案例;

(3)冠状动脉的多角度视图;

(4)用于对比不同算法的标准化格式。

四、目标检测模型

研究评估了三种不同的目标检测架构,各代表计算机视觉的不同方法:

1. YOLO (You Only Look Once)

YOLO 是一种基于 CNN 的目标检测系统,以其实时推理能力著称。它将图像分成网格,在单次处理中直接从完整图像预测边界框和类别概率。

图2 YOLO 架构展示了特征主干网络、特征金字塔和预测头部组件。

YOLO 的主要特点:

(1)拥有在一次处理中处理整个图像的单阶段检测器;

(2)用于多尺度特征提取的特征金字塔,能同时注意到大小不同的狭窄区域;

(3)高处理速度,就像快速诊断,适用于需要立即结果的情况;

(4)在处理小物体或复杂医学影像数据时表现不佳,可能会错过非常细小的狭窄区域。

2. DINO

DINO 是一种基于 Transformer 的模型,利用自注意力机制增强特征表示。该模型基于DETR(DEtection TRansformer)架构,改进了训练收敛性和性能。


图3 DINO 架构,其中展示了具有多尺度特征处理的编码器-解码器 Transformer 结构。

DINO 的主要特点:

(1)无需非极大值抑制的端到端目标检测,便于直接给出诊断而不需要多个处理步骤;

(2)多尺度特征处理,同时关注患者的主要症状和细微症状;

(3)增强的查询选择机制,用于更好的特征表示,能够更精确地定位狭窄位置;

(4)在复杂检测任务上表现强劲,但可能需要更高的计算资源。

3. Grounding DINO

Grounding DINO 将 DINO 架构与基础预训练相结合,用于开放集目标检测。它结合了视觉和文本特征,实现更强大的目标检测。

图4 Grounding DINO 架构,其中展示了文本和图像特征之间的跨模态处理。

Grounding DINO 的主要特点:

(1)文本和图像特征之间的跨模态学习;

(2)用于改进表示的特征增强层,就像使用放大镜增强观察细节;

(3)语言引导的查询选择,能根据具体的语言描述寻找对应区域,如“查找50%以上的狭窄区域”;

(4)最小监督检测能力,即使只有有限的标记数据也能学习得很好。

五、研究方法

本研究使用了 MMDetection 框架(一个开源目标检测工具箱)实现了所有三种目标检测模型。评估遵循以下关键步骤:

1. 数据预处理

注释文件被调整为与 ARCADE 数据集格式一致,并过滤了冗余注释以确保标签一致性。

2. 模型配置

每个模型都在 MMDetection 框架中配置了适当的超参数(hyperparameter):

(1)YOLO:使用带有特征金字塔网络的 ResNet 主干;

(2)DINO:使用 Swin Transformer 主干和 transformer 编码器-解码器结构;

(3)Grounding DINO:配置了视觉-语言融合和交叉注意力机制。

3. 训练过程

模型在 ARCADE 数据集上使用标准优化技术进行训练:

(1)学习率调度;

(2)医学图像数据增强;

(3)适用于目标检测的损失函数( IoU 损失,分类损失)。

4. 评估指标

本研究使用标准 COCO 评估指标来评估不同模型的检测性能:

(1)IoU(交并比):测量预测框和真实框之间的重叠;

(2)平均精度(AP):测量不同 IoU 阈值下的检测准确性;

(3)平均召回率(AR):测量找到所有狭窄区域的能力。

六、结果与性能比较

研究的对比评估揭示了三种模型之间不同的性能模式:

1. 定量结果

(1)基于 Transformer 的模型(DINO 和 Grounding DINO)在大多数 IoU 阈值下通常比 YOLO 实现更高的平均精度(mAP)。

(2)Grounding DINO 在 IoU = 0.50 时获得最高 mAP,表明对于中等重叠检测具有强大性能。

(3)DINO 在 IoU 阈值从 0.50 到 0.95 的 mAP 中优于其他模型,展示了在不同重叠要求下的卓越精度。

(4)YOLO 获得了有竞争力的 mAP50 结果,显示出该类模型对中等重叠目标的精度平衡性能。

实验的性能指标反映了不同架构之间对精度和召回率的权衡:

(1)DINO:精度最高但召回率较低;

(2)Grounding DINO:精度和召回率之间保持了良好的平衡;

(3)YOLO:召回率良好,而精度中等。

2. 检测可视化比较

以下图像展示了每个模型在相同冠状动脉造影图像上的表现:


图5 DINO 的检测结果,结果更少但更精确。


图6 Grounding DINO 的检测显示具有明确标签的高置信度狭窄检测。


图7 YOLO 检测显示多个具有置信度分数的检测区域。

3. 定性分析

除定量指标外,对检测结果的定性分析揭示了每个模型在狭窄检测方法上的重要差异:

3.1 DINO 检测模式

DINO 总体上检测结果较少,偶尔会错过相关的狭窄区域,但其检测到的区域通常都是准确的。这表明该模型学习了更严格的狭窄判断标准。例如,在某些测试案例中,DINO 以高置信度检测到单个狭窄区域,同时错过了更微妙的次要区域。这种模式在图 5 和图 8 中很明显,模型识别了主要狭窄区域但可能忽略了其他狭窄区域。

图8 DINO检测显示其倾向于更少、更精确的检测。

3.2 Grounding DINO 检测模式

Grounding DINO 识别出了更多的区域,但有时由于过度检测导致预测混乱。该模型似乎利用其跨模态理解来检测更广泛的狭窄表现。如图 6 和图 9 所示,Grounding DINO 通常以不同置信度分数检测多个狭窄区域。虽然这增加了捕获所有狭窄区域的可能性,但同时也提升了假阳性的可能性。


图9 Grounding DINO 检测显示多个具有置信度分数的检测区域。

3.3 YOLO 检测模式

YOLO 通过有效捕获解剖结构同时保持相对高的置信度分数提供了合理的权衡。与基于 transformer 的模型相比,它对小型狭窄区域的检测更好。

如图 7 和图 10 所示,YOLO 的检测模式通常包括具有不同置信度分数的多个区域。这种方法为临床应用提供了精度与召回率之间的合理平衡。

图10 YOLO 检测显示多个具有置信度分数的检测区域。

七、局限性与挑战

通过本次研究,我们发现了几个影响模型性能的通用局限:

1. 数据相关挑战

(1)与通用目标检测数据集相比,ARCADE 数据集规模有限;

(2)正常病例和狭窄病例之间的类别不平衡;

(3)图像质量和对比度水平的变化。

2. 模型特定局限性

(1)YOLO:难以处理非常小的狭窄区域和低对比度区域;

(2)DINO:计算密集且需要更长的训练时间;

(3)Grounding DINO:在某些复杂情况下倾向于过度检测。

3. 临床整合挑战

(1)需要更高的精度以避免临床环境中的假阳性;

(2)可解释性要求:医生需要理解AI为何做出某个判断;

(3)患者间冠状动脉解剖结构的差异。

八、未来研究方向

基于研究发现,我们确定了几个颇有前景的研究方向:

1. 后处理技术以提高检测准确性

(1)结合不同模型输出的集成方法,例如使用 YOLO 的快速检测能力初步筛选,然后用 DINO 的精确定位能力进行细化。

(2)优化边界框以实现更好的定位。

2. 模型改进

(1)替代模型配置和训练策略;

(2)使用医学影像领域特定的增强技术;

(3)通过半监督学习方法来利用未标记数据。

3. 混合方法

(1)集成 CNN 和 transformer 架构以获得平衡性能;

(2)整合解剖先验知识以提高检测准确性。

4. 临床验证

(1)通过前瞻性研究,将模型性能与放射科医师的诊断进行对比;

(2)与临床工作流程集成进行实际评估。

结语

在 CAD 诊断环境下,借助 ARCADE 数据集,对 YOLO、DINO 以及 Grounding DINO 开展狭窄检测的比较评估,为深入洞察这些前沿目标检测模型的优势与局限,提供了珍贵视角。基于 transformer 架构的 DINO 和 Grounding DINO,在 XCA 图像的 CAD 检测任务中,展现出精度提升、召回率良好的优势,适配性十分突出。反观 YOLO,其在计算效率上的优势,在资源受限的场景里,有着不可忽视的价值。研究表明,尽管目标检测技术已取得阶段性成果,但不管是优化模型、改良后处理技术,还是探索混合架构,仍存在广阔的优化空间。

本研究运用标准化指标进行系统评估,为自动化 CAD 诊断系统的持续迭代提供了参考,也进一步凸显深度学习在提升诊断准确率、减轻医疗人员负担方面的巨大潜力。

参考资料

1. 论文《Evaluating Stenosis Detection with Grounding DINO, YOLO, and DINO-DETR》,作者:Muhammad Musab Ansari。链接:https://arxiv.org/abs/2503.01601

2. 在 DINO-X 开放平台调用最新的 DINO 模型 API:https://cloud.deepdataspace.com/

3. Grounding DINO Playground:https://cloud.deepdataspace.com/playground/grounding_dino

相关文章:

学术分享:基于 ARCADE 数据集评估 Grounding DINO、YOLO 和 DINO 在血管狭窄检测中的效果

一、引言 冠状动脉疾病(CAD)作为全球主要死亡原因之一,其早期准确检测对有效治疗至关重要。X 射线冠状动脉造影(XCA)虽然是诊断 CAD 的金标准,但这些图像的人工解读不仅耗时,还易受观察者间差异…...

NLP高频面试题(四十一)——什么是 IA3 微调?

随着大型语言模型的广泛应用,如何高效地将这些模型适配到特定任务中,成为了研究和工程实践中的重要课题。IA3(Infused Adapter by Adding and Adjusting)微调技术,作为参数高效微调的一种新颖方法,提供了在保持模型性能的同时,显著减少可训练参数数量的解决方案。 IA3 …...

STM32 模块化开发指南 · 第 3 篇 环形缓冲区 RingBuffer 模块设计与单元测试

本文是《STM32 模块化开发实战指南》第 3 篇,聚焦于“如何设计一个高性能、稳定、安全的环形缓冲区模块”。我们将从基本结构讲起,逐步完成接口定义、边界处理、API 实现与单元测试,最终实现一个可移植、线程安全、可嵌入 UART/BLE/协议模块的通用 RingBuffer。 一、RingBuf…...

软件测试岗位:IT行业中的质量守护者

在当今数字化飞速发展的IT行业,软件如同空气般无处不在,从日常的手机应用到复杂的企业级管理系统,软件的稳定性和可靠性至关重要。而软件测试岗位的从业者,就像是软件世界的质检员,精心守护着软件的质量。 一、软件测…...

单片机方案开发 代写程序/烧录芯片 九齐/应广等 电动玩具 小家电 语音开发

在电子产品设计中,单片机(MCU)无疑是最重要的组成部分之一。无论是消费电子、智能家居、工业控制,还是可穿戴设备,小家电等,单片机的应用无处不在。 单片机,简而言之,就是将计算机…...

恐龙专利及商标维权行动,已获批TRO并冻结资金

2025年3月30日,原告Shenzhen xingyin technology co.,Ltd.,现化名为Shenzhen Z Tech Co., Ltd.委托kemet律所发起维权。目前该案件已获批TRO临时禁令,涉案账户资金已被冻结,案件详情如下: 案件基本情况:起…...

【北京市小客车调控网站-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

Vue 3中的 setup

Vue 3引入了Composition API,其中setup函数是这一新API的核心部分。setup函数为开发者提供了一种更灵活、更模块化的方式来组织组件逻辑。以下是关于Vue 3中setup函数的详细解释: 1. 基本概念 setup函数是组件内使用Composition API的入口点。它是一个…...

2025年实用新型专利审查周期要多久?

申请实用新型专利时,审查周期是申请人最关心的问题之一。尤其是近几年国家知识产权局不断优化流程,审查速度是否有变化?2025年申请需要等多久?本文结合最新政策和实际案例,为你全面解析! 一、实用新型专利…...

使用Python建立双缝干涉模型

引言 双缝干涉实验是物理学中经典的实验之一,它展示了光的波动性以及量子力学的奇异性。实验结果表明,当光或粒子通过两条狭缝时,它们会产生干涉现象,形成明暗相间的条纹图案。这种现象不仅说明了光的波动性,还揭示了量子力学的核心思想——粒子具有波动性。今天,我们将…...

路由交换网络专题 | 第二章 | RIP | OSPF | 路由聚合 | 路由过滤 | 静默接口

拓扑图 (1)作为企业网络边界设备,AR1 上配置什么命令,可以使 OSPF 域内所有路由都会有指向自己的默认路由。默认路由的优先级是多少。如果 OSPF 域内其他路由器同样有到达外网的路径,且优于通过 AR1 到达外网&#xff…...

python 语言 设计模式

python 语言 设计模式 设计模式是指在软件开发过程中,针对反复出现的问题所总结归纳出的通用解决方案。以下是一些常见的Python语言设计模式: 目录 python 语言 设计模式创建型模式结构型模式行为型模式创建型模式 单例模式 定义:保证一个类只有一个实例,并提供一个全局访…...

银行业务发展历史

银行业务发展历史 银行业务的发展可以追溯到古代,但其现代形式的发展可以追溯到中世纪。以下是银行业务发展的主要历史阶段: 1. 古代和中世纪时期 特点:商人提供贷款和存款服务,充当中间人转移资金,发行纸币作为支付…...

JAVA中多线程的基本用法

文章目录 一、基本概念(一)进程控制块PCB(二)并行和并发(三)进程调度1.进程的状态2.优先级3.记账信息4.上下文 (四)进程和线程1.概述2.线程为什么比进程更轻量3.进程和线程的区别和联…...

健康与好身体笔记

文章目录 保证睡眠饭后百步走,活到九十九补充钙质一副好肠胃肚子咕咕叫 健康和工作的取舍 以前对健康没概念,但是随着年龄增长,健康问题凸显出来。 持续维护该文档,健康是个永恒的话题。 保证睡眠 一是心态要好,沾枕…...

如何下载谷歌浏览器增强版(扩展支持版)

在日常浏览和工作中,Chrome 浏览器因其强大的性能和丰富的扩展插件,成为全球范围内使用最广泛的浏览器之一。然而,对于需要进行深度扩展管理或需要稳定扩展环境的用户来说,标准版的 Google Chrome 可能在某些方面仍显不足。这时候…...

TDDMS分布式存储管理系列文章--分片/分区/分桶详解

友情链接: 星环分布式存储TDDMS大揭秘(一)分布式存储技术推出背景以及当前存在的挑战TDDMS是什么 前情提要 通过上个系列的文章我们了解到了各节点数据副本间通过一致性算法确保每次写入在响应客户端请求之前至少被多数节点(N/2…...

Spring Boot(九十):集成SSE (Server-Sent Events) 服务器实时推送

1 SSE简介 Server-sent Events(SSE) 是一种基于 HTTP 协议的服务器推送技术,它允许服务器主动向客户端发送数据。与 WebSocket 不同,SSE 是单向通信,即服务器可以主动向客户端推送数据,而客户端只能接收数据。 2 SSE特点 单向通信:SSE 是服务器向客户端的单向推送,客户…...

ubuntu22.04安装ROS2 humble

参考: https://zhuanlan.zhihu.com/p/702727186 前言: 笔记本安装了ubuntu20.04安装ros一直失败,于是将系统升级为ununut22.04,然后安装ros,根据上面的教程,目前看来是有可能成功的。 系统升级为ununut…...

力扣第206场周赛

周赛链接:竞赛 - 力扣(LeetCode)全球极客挚爱的技术成长平台​​​​​​ 1. 二进制矩阵中的特殊位置 给定一个 m x n 的二进制矩阵 mat,返回矩阵 mat 中特殊位置的数量。 如果位置 (i, j) 满足 mat[i][j] 1 并且行 i 与列 j 中…...

C++17 主要更新

C17 主要更新 C17 是继 C14 之后的重要标准更新,引入了许多提升开发效率、简化代码和增强性能的特性。以下是 C17 的主要更新,按类别分类: 1. 语言核心特性 结构化绑定(Structured Bindings) 解构元组、结构体或数组…...

k8s master节点部署

一、环境准备 1.主机准备 192.168.10.100 master.com master 192.168.10.101 node1.com node1 192.168.10.102 node2.com node2 互信 时间同步 关闭防火墙 关闭selinux 2.创建/etc/sysctl.d/k8s.conf,添加如下内容 cat > /etc/sysctl.d/k8s.conf <<EOF net.br…...

YOLO学习笔记 | YOLOv8 全流程训练步骤详解(2025年4月更新)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 这里写自定义目录标题 一、数据准备1. 数据标注与格式转换2. 配置文件生…...

centos7.9 升级 gcc

本片文章介绍如何升级gcc&#xff0c;centos7.9 仓库默认的gcc版本为&#xff1a;4.8.5 4.8.5-44) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY…...

Linux基本指令

Linux目录结构 Linux的目录结构是一个树形结构。Windows系统可以拥有多个盘符&#xff0c;如C盘、D盘、E盘。而Linux没有盘符这个概念&#xff0c;只有一个根目录/,所有文件都在它下面。如下图所示&#xff1a; Linux路径的描述方式 在Linux系统中&#xff0c;路径之间的层级…...

Google A2A协议,是为了战略性占领标准?

一、导读 2025 年 4 月 9 日&#xff0c;Google 正式发布了 Agent2Agent&#xff08;A2A&#xff09;协议。 A2A 协议致力于打破智能体之间的隔阂&#xff0c;让它们能够跨越框架和供应商的限制&#xff0c;以一种标准化、开放的方式进行沟通与协作 截止到现在&#xff0c;代…...

每日一题(小白)暴力娱乐篇29

题目比较简单&#xff0c;主要是判断条件这块&#xff0c;一定要注意在奇数的位置和偶数的位置标记&#xff0c;若奇数位为奇数偶数位为偶数才能计数加一&#xff0c;否则都是跳过。 ①接收数据n ②循环n次&#xff0c;拆解n&#xff0c;每次拆解记录ans ③拆解n为若干次x&a…...

瀚天天成闯港交所上市:业绩波动明显,十分依赖少数客户和供应商

撰稿|张君 来源|贝多财经 近日&#xff0c;瀚天天成电子科技&#xff08;厦门&#xff09;股份有限公司&#xff08;下称“瀚天天成”&#xff09;递交招股书&#xff0c;报考港交所主板上市。据贝多财经了解&#xff0c;瀚天天成曾计划在上海证券交易所科创板上市&#xff0…...

全国产压力传感器常见的故障有哪些?

全国产压力传感器常见的故障如哪些呢&#xff1f;来和武汉利又德的小编一起了解一下&#xff0c;主要包括以下几类&#xff1a; 零点漂移 表现&#xff1a;在没有施加压力或处于初始状态时&#xff0c;传感器的输出值偏离了设定的零点。例如&#xff0c;压力为零时&#xff0c…...

计算机视觉卷积神经网络(CNN)基础:从LeNet到ResNet

计算机视觉卷积神经网络&#xff08;CNN&#xff09;基础&#xff1a;从LeNet到ResNet 一、前言二、卷积神经网络基础概念​2.1 卷积层​2.1.1 卷积运算原理​2.1.2 卷积核的作用与参数​ 2.2 池化层​2.2.1 最大池化与平均池化​2.2.2 池化层的优势与应用​ 2.3 全连接层​2.3…...

在封装DLL时,避免第三方命名空间的依赖方法[PIMPL模式技术指南]

1. 概述 PIMPL(Pointer to IMPLementation)模式是C++中实现信息隐藏和二进制兼容性的重要设计范式,通过创建实现细节的私有封装层,有效隔离接口与实现。本文档详细阐述其核心原理、现代实现方式和典型应用场景。 2. 核心架构 2.1 经典结构 // 头文件(widget.h) class Wid…...

镜舟科技亮相 2025 中国移动云智算大会,展示数据湖仓一体创新方案

4月10-11日&#xff0c;2025 中国移动云智算大会在苏州金鸡湖国际会议中心成功举办。大会以“由云向智&#xff0c;共绘算网新生态”为主题&#xff0c;汇聚了众多行业领袖与技术专家&#xff0c;共同探讨了算力网络与人工智能的深度融合与未来发展趋势。 作为中国领先的企业级…...

通过Python实现定时重启H3C AP设备

一、背景 因为H3C的AP设备老化&#xff0c;网络出现高延迟、高丢包率&#xff0c;需要隔一段时间去重启AP后恢复。但是由于白天在使用无法进行重启&#xff0c;并且容易遗忘等用户反馈又太晚了&#xff0c;但是AC版本太老没有定时重启功能&#xff0c;于是通过Python做了自动重…...

火山RTC 4 音视频引擎 IRTCVideo,及 音视频引擎事件回调接口 IRTCVideoEventHandler

一、IRTCVideo、IRTCVideoEventHandler 音视频引擎 IRTCVideo&#xff0c;及 音视频引擎事件回调接口 IRTCVideoEventHandler 负责音视频管理、创建房间/获得房间实例 1、创建引擎、及事件回调示例 如&#xff1a; void VideoConfigWidget::initRTCVideo() {m_handler.res…...

Matlab 考虑电机激励力的整车垂向七自由度模型参数研究

1、内容简介 Matlab 201-考虑电机激励力的整车垂向七自由度模型参数研究 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

Matlab 三容水箱系统故障诊断算法研究

1、内容简介 Matlab 190-三容水箱系统故障诊断算法研究 可以交流、咨询、答疑 2、内容说明 略 其次&#xff0c;对 DTS200 三容水箱系统进行机理建模&#xff0c;可分为对象建模和故障 建模&#xff0c;搭建了水箱系统的 SIMULINK 模型并建立了基于 Taylor 展开及 T-…...

Mac学习使用全借鉴模式

Reference https://zhuanlan.zhihu.com/p/923417581.快捷键 macOS 的快捷键组合很多&#xff0c;相应的修饰键就多达 6 个&#xff08;Windows 系统级就 4 个&#xff09;&#xff1a; Command ⌘ Shift ⇧ Option ⌥ Control ⌃ Caps Lock ⇪ Fn 全屏/退出全屏 command con…...

Arrays.asList() 隐藏的陷阱

在Java中&#xff0c;我们经常需要将数组转换为List来方便地进行操作。Arrays.asList()方法是一种常见的方式&#xff0c;但是它存在一个不太常见但需要注意的坑。 本文将深入探讨Arrays.asList()的使用&#xff0c;揭示其中的陷阱&#xff0c;并提供解决方案。 1、Arrays.as…...

Cables 现已正式启动积分计划 Alpha 阶段,开放早期白名单申请

Cables 现已正式启动积分计划&#xff0c;并开放白名单抢先体验通道&#xff0c;这标志着 Cables 平台进入第一阶段的部署&#xff0c;旨在为外汇及现实世界资产&#xff08;RWAs&#xff09;构建首个集成的流动性质押与永续期货 DEX。 Cables 平台的设计目标是通过单一系统实…...

Spring Cloud 远程调用

4.OpenFeign的实现原理是什么&#xff1f; 在使用OpenFeign的时候&#xff0c;主要关心两个注解&#xff0c;EnableFeignClients和FeignClient。整体的流程分为以下几个部分&#xff1a; 启用Feign代理&#xff0c;通过在启动类上添加EnableFeignClients注解&#xff0c;开启F…...

STM32单片机中EXTI的工作原理

目录 1. EXTI概述 2. EXTI的组成部分 3. 工作原理 3.1 引脚配置 3.2 中断触发条件 3.3 中断使能 3.4 中断处理 4. 使用示例 5. 注意事项 结论 在STM32单片机中&#xff0c;EXTI&#xff08;外部中断&#xff09;是一种用于处理外部事件的机制&#xff0c;能够提高对硬…...

排序算法详细介绍对比及备考建议

文章目录 排序算法对比算法逐一介绍1. 冒泡排序&#xff08;Bubble Sort&#xff09;2. 选择排序&#xff08;Selection Sort&#xff09;3. 插入排序&#xff08;Insertion Sort&#xff09;4. 希尔排序&#xff08;Shell Sort&#xff09;5. 归并排序&#xff08;Merge Sort&…...

网页布局思路

一、布局思路 1&#xff0c;确定页面的版心(可视区) 2、分析页面中的行模块&#xff0c;以及每个行模块中的列模块。&#xff08;页面布局第一准则&#xff09; 3、一行中的列模块经常用浮动布局&#xff0c;先确定每个列的大小&#xff0c;之后确定列的位置&#xff08;页面…...

CloudFlare Page 如何和 GitHub 创建连接

CloudFlare Page 能够对前端项目进行构建。 他们能支持从 GitHub 上直接拉取代码。 如果 GitHub 上的代码仓库不存在的话&#xff0c;首先需要创建一个连接才可以。 随后会要求登录 GitHub&#xff0c;然后可以在希望访问的组织中进行选择。 随后同意访问赋予权限即可。 Clou…...

Python爬虫第13节-解析库pyquery 的使用

目录 前言 一、pyquery 初始化 1.1 字符串初始化 1.2 URL 初始化 1.3 文件初始化 二、基本 CSS 选择器 三、pyquery 查找节点 3.1 子节点 3.2 父节点 3.3 兄弟节点 四、遍历 五、获取信息 5.1 获取属性 5.2 获取文本 六、节点操作 6.1 addClass 和 removeClass…...

【学习笔记】头文件中定义函数出现重复定义报错

目录 错误复现原因解决方案inlinestatic 扩展参考 错误复现 现在有一个头文件 duplicate_define.h 和两个源文件 duplicate_define_1.cpp 和 duplicate_define_2.cpp。 两个源文件都引入了头文件 duplicate_define.h&#xff0c;且在各自的函数中调用了定义在头文件中的全局函…...

Java 中的零拷贝技术:提升性能的利器

Java 中的零拷贝技术&#xff1a;提升性能的利器 在现代高性能应用中&#xff0c;数据传输的效率至关重要。传统的 I/O 操作通常涉及多次数据拷贝&#xff0c;这会导致性能瓶颈。而零拷贝&#xff08;Zero-Copy&#xff09;技术通过减少数据拷贝次数&#xff0c;显著提升了 I/…...

JavaScript:基本语法

今天我要介绍的新知识点内容为&#xff1a;JavaScript的基本语法以及使用说明。 首先我们先了解一下JS&#xff08;JavaScript简称&#xff09;是什么以及怎么使用JS&#xff1a; 介绍&#xff1a;JavaScript(JS)是一门弱类型的语言&#xff0c;用于给HTML页面上添加动态效果…...

Matlab 三维时频图

1、内容简介 Matlab 202-三维时频图 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

MySQL中动态生成SQL语句去掉所有字段的空格

在MySQL中动态生成SQL语句去掉所有字段的空格 在数据库管理过程中&#xff0c;我们常常会遇到需要对表中字段进行清洗和整理的情况。其中&#xff0c;去掉字段中的空格是一项常见的操作。当表中的字段数量较少时&#xff0c;我们可以手动编写 UPDATE 语句来处理。但如果表中包…...