「基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法——ECG信号处理-第十五课」2025年6月6日

news2025/6/7 13:07:28

一、引言

        心律失常是心血管疾病的重要表现形式,其准确分类对临床诊断具有关键意义。传统的心律失常分类方法主要依赖于人工特征提取和经典机器学习算法,但这些方法往往受限于特征选择的主观性和模型的泛化能力。

        随着深度学习技术的发展,基于卷积神经网络(CNN)的方法逐渐成为研究热点。然而,心电信号是一维时间序列数据,直接应用 CNN 进行分类可能会丢失部分时频信息,影响分类性能。

        为了解决这一问题,本文档提出了一种结合小波变换和 CNN 的心律失常分类方法,旨在充分发挥小波变换在信号时频分析方面的优势以及 CNN 在处理二维图像数据方面的强大能力,实现对心律失常信号的高效、准确分类。

二、理论基础

(一)心电信号与心律失常

        心电信号(ECG)是心脏电活动的外在表现,反映了心脏的兴奋、传导和复极过程。正常心电信号具有一定的波形特征,如 P 波、QRS 波群和 T 波等,这些波形依次对应心房去极化、心室去极化和心室复极化过程,反映了心脏正常的电生理活动。

        心律失常是一类心脏电活动异常的疾病,其本质是心脏冲动的频率、节律、起源部位、传导速度或激动顺序出现异常。  

        心律失常的分类方式多样,按心率快慢可分为快速性心律失常(如窦性心动过速、心房扑动、心室颤动等)和缓慢性心律失常(如窦性心动过缓、窦性停搏、房室传导阻滞等);按起源部位可分为室上性心律失常(如窦性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收缩、室性心动过速、心室颤动等)。

图1:心律失常&常见类型

        心律失常的分类方式多样,按心率快慢可分为快速性心律失常(如窦性心动过速、心房扑动、心室颤动等)和缓慢性心律失常(如窦性心动过缓、窦性停搏、房室传导阻滞等);按起源部位可分为室上性心律失常(如窦性心律失常、房性心律失常、房室交界性心律失常等)和室性心律失常(如室性期前收缩、室性心动过速、心室颤动等)。不同类型的常见心律失常及其心电图特征如下:

  • 正常心搏(N):心电图表现为规律的窦性心律,P 波形态正常且规律,PR 间期恒定,QRS 波群形态正常,心率通常在 60-100 次 / 分之间。

  • 室性早搏(V):心电图可见提前出现的宽大畸形的 QRS-T 波群,其前无相关的 P 波,代偿间歇完全,常伴有继发性 ST-T 改变。

  • 左束支传导阻滞(L):心电图表现为 QRS 波群宽大,时限通常≥0.12s,V1、V2 导联呈 rsr’型或 M 型,I、aVL、V5、V6 导联呈宽大的 R 波,常伴有继发性 ST-T 改变。

  • 右束支传导阻滞(R):心电图特征为 QRS 波群宽大,时限≥0.12s,V1、V2 导联呈rsR’型或宽大R波,I、aVL、V5、V6 导联呈宽大的S波,ST-T 改变多为继发性。

  • 心房颤动(AF):心电图显示 P 波消失,代之以大小不等、形态各异的颤动波,频率 350-600 次 / 分;QRS 波群形态通常正常,R-R 间期绝对不规则。

  • 心室颤动(VF):心电图表现为不规则的颤动波,频率 200-500 次 / 分,无规律可循,是极其严重的心律失常,可导致心脏骤停。

  • 等等。。。

        心律失常可由多种因素引发,包括心脏本身疾病(如冠心病、心肌病、心肌炎等)、遗传因素(如长 QT 综合征、Brugada 综合征等)、电解质紊乱、药物影响、自主神经系统失调等。其临床表现因类型和严重程度而异,部分患者可无明显症状,而部分患者可能出现心悸、胸闷、头晕、乏力、晕厥,甚至猝死等严重症状。心律失常的诊断主要依赖于心电图检查,包括常规心电图、动态心电图、运动试验等,这些检查能够捕捉到心律失常的特征性表现,为临床诊断提供重要依据。

图2:心律失常症状表现示例

(二)小波变换

        小波变换是一种时频分析方法,能够同时提供信号的时间和频率信息。小波变换能够有效处理非平稳信号,如心电信号,提取信号中的瞬态特征和局部变化信息,为后续的分类提供更丰富的特征表示。连续小波变换(CWT)通过伸缩和平移基本小波函数,将信号分解为不同尺度和位置的小波系数,从而捕捉信号的局部特征。其数学表达式为:

        其中, a 表示尺度因子, b 表示平移因子, ψ(t) 为基本小波函数, ψ∗(t) 为其复共轭。

图3:连续小波变换CWT的时频分析示意图

(一维信号与二维图像的区别)        

        心电信号本质上是一维时间序列数据,它随时间变化反映了心脏电活动的动态过程。一维信号的特点是数据点按时间顺序排列,每个数据点仅包含幅值信息,难以直观展示信号的频率特性。直接对一维信号应用 CNN 进行分类时,CNN 难以充分利用其在空间特征提取方面的优势,且容易丢失信号的时频关联信息,影响分类性能。

        相比之下,二维图像是由像素点组成的矩阵,每个像素点包含位置和强度信息,能够直观展示信号的时频特性。通过将一维心电信号转换为二维图像,可以将信号的时域和频域信息融合到图像的二维空间中,使 CNN 能够更有效地提取信号的局部和全局特征。

(三)卷积神经网络

        卷积神经网络(CNN)是一种专门用于处理具有网格结构数据(如图像)的深度学习模型,其主要特点包括卷积层、池化层和全连接层。CNN 的网络结构和训练过程如下:

        1、卷积层:卷积层是 CNN 的核心部分,通过卷积核提取局部特征,卷积运算的数学表达式为:

        其中, yi,j​ 表示输出特征图的元素, wk,l​ 表示卷积核的权重, xi+k−1,j+l−1​ 表示输入数据的元素, b 表示偏置, f(⋅) 为激活函数,如 ReLU 函数。

图4:卷积层的计算过程示意图

        2、池化层:池化层用于降低特征维度,减少计算量,并增强模型对输入数据的平移不变性。常见的池化方法包括最大池化和平均池化。最大池化选取局部区域内的最大值作为输出,平均池化则计算局部区域内的平均值作为输出。

图5:池化层的计算过程示意图

        3、全连接层:全连接层将卷积层和池化层提取的特征进行整合,实现最终的分类决策。全连接层的神经元与前一层的所有神经元全连接,其输出为:

        其中, y 表示神经元的输出, wi​ 表示权重, xi​ 表示输入, b 表示偏置, f(⋅) 为激活函数。

        图6:全连接层的计算过程示意图

        CNN 的训练过程通过反向传播算法和优化方法(如:Adam 优化器)来更新网络参数,以最小化预测输出与真实标签之间的损失函数(如:交叉熵损失函数)。

  • 交叉熵损失函数 L = - [ y * log(p) + (1 - y) * log(1 - p) ]

  • 参数解释:

    • y: 样本的真实标签。通常取值为 0(负类)或 1(正类)。

    • p: 模型预测该样本属于正类的概率(取值范围在 [0, 1] 之间)。

    • log: 通常指自然对数(底数为 e),有时也用对数(底数为 2 或 10),但在机器学习中通常使用自然对数。

图7:Adam 优化器优化过程

(CWT 与 CNN 的结合优势)

将 CWT 与 CNN 结合用于心律失常分类具有显著优势:

  1. 丰富的时频特征:CWT 能够将一维心电信号转换为二维时频图像,保留了信号的时间和频率信息。这种时频表示能够更全面地反映心电信号的特征,如不同心律失常类型的频率成分变化和时域波形特征。

  2. 强大的特征提取能力:CNN 对二维图像数据具有强大的自动特征提取能力。通过卷积层和池化层,CNN 能够逐层提取图像的局部和全局特征,自动学习到对分类最有用的特征组合,避免了人工特征提取的主观性和局限性。

  3. 高效的分类性能:CNN 的全连接层能够将提取的特征进行整合,实现高效的分类决策。其非线性激活函数和 softmax 输出层能够将特征映射到类别概率分布,提供精确的分类结果。

  4. 良好的鲁棒性:CNN 的池化层和卷积层的局部连接特性使其对图像的平移、缩放和旋转具有一定的不变性,增强了模型对不同心电信号变化的鲁棒性。

三、方法流程

(一)数据预处理

        1、数据读取与筛选:从 MIT-BIH 心律失常数据库中读取心电信号数据,包括 .dat 文件(原始信号数据)、.hea 文件(头文件,包含采样率、增益等信息)和 .atr 文件(注释文件,包含 R 峰位置和标签信息)。根据注释文件中的标签信息,筛选出属于正常心搏(N)、室性早搏(V)、左束支传导阻滞(L)、右束支传导阻滞(R)四类的心电信号。

图8:数据划分结果图

(这里可以选择不同类别的心律失常,并根据MIT分类标签替换对应的标签字符)

%% 标签字典(AAMI 规则)
map = containers.Map({1, 5, 2, 3}, {'N', 'V', 'L', 'R'});  % MIT分类标签对应字符

     

  2、心拍提取:根据注释文件中的 R 峰位置,以每个 R 峰为中心,向前取 100 个采样点,向后取 200 个采样点,组成长度为 300 个采样点的心拍。将提取的心拍按类别分别存储。

图9: L 类、N 类、R 类和 V 类的心拍提取图像

        3、数据归一化:对提取的心拍数据进行归一化处理,将信号幅值归一化到 [0, 1] 范围内,以消除不同信号之间的幅值差异,提高模型训练的稳定性和收敛速度。

(二)小波去噪

       心电信号在采集过程中容易受到各种噪声的干扰,如基线漂移、肌电干扰等。为了提高信号质量,采用小波去噪方法对心拍数据进行预处理。小波去噪的基本原理是通过小波变换将信号分解为不同尺度的系数,然后对小波系数进行阈值处理,最后通过逆小波变换重建信号。具体步骤如下:

        1、选择小波函数和分解层次:根据信号的特点和去噪要求,选择合适的小波函数(如 db4)和分解层次。分解层次的选择应综合考虑信号的长度和噪声特性,一般通过计算最大可能的分解层次并适当调整来确定。

        2、小波分解:对心拍信号进行小波分解,得到不同尺度的近似系数和细节系数。

        3、阈值处理:对细节系数进行阈值处理,采用软阈值或硬阈值方法去除噪声成分。阈值的选择可以通过经验公式或自适应方法确定。

        4、信号重建:利用处理后的近似系数和细节系数进行逆小波变换,重建去噪后的心电信号。

(三)CWT 图像生成

        为了将一维心电信号转换为二维图像,以便利用 CNN 进行处理,采用连续小波变换(CWT)生成信号的时频图像。具体步骤如下:

        1、选择小波函数和尺度范围:选择合适的小波函数(如 Morlet 小波)和尺度范围,以覆盖心电信号的主要频率成分。

        2、计算 CWT 系数:对去噪后的心拍信号进行 CWT,得到时频域内的小波系数矩阵。

        3、生成图像:将小波系数矩阵转换为图像,其中横轴表示时间,纵轴表示尺度(对应频率),颜色表示小波系数的幅值。通过调整图像的显示范围和颜色映射,增强图像的可视化效果。

 

图10:通过 CWT 变换得到的 L 类、N 类、R 类和 V 类的图像

(四)CNN 模型训练

        1、构建 CNN 网络结构:设计一个适合心律失常分类的 CNN 网络结构,包括输入层、多个卷积层、池化层、全连接层和输出层。卷积层用于提取图像的局部特征,池化层用于降维和增强鲁棒性,全连接层用于实现最终的分类决策。输出层采用 softmax 激活函数,将输出映射到各类别的概率分布。

图11:CNN模型结构图

        2、数据集划分:将生成的 CWT 图像数据集按一定比例划分为训练集、验证集和测试集,通常训练集占 70%,验证集占 15%,测试集占 15%。训练集用于模型参数的更新,验证集用于模型的选择和超参数的调整,测试集用于最终模型性能的评估。

        

        3、模型训练:使用训练集对 CNN 模型进行训练,通过优化算法(如 Adam 优化器)最小化损失函数(如交叉熵损失函数),更新网络参数。在训练过程中,定期使用验证集评估模型性能,防止过拟合,并根据验证结果调整训练策略,如调整学习率、增加正则化等。

        下表展示的是 CNN 模型结构:

表1:卷积神经网络CNN架构概述

Layer

Type

Parameters

Output Size

Input

Image Input Layer

224×224×1

224×224×1

Conv1 + ReLU + Pool

Conv(3×3, 16) + MaxPool(2)

Stride=2, Padding=1

56×56×16

Conv2 + ReLU + Pool

Conv(3×3, 32) + MaxPool(2)

Padding=same

28×28×32

Conv3 + ReLU + AvgP

Conv(3×3, 64) + AvgPool(7)

Padding=same

4×4×64

FC1 + Dropout

Fully Connected + Dropout

128 neurons, Dropout 0.3

128

FC2

Fully Connected

64 neurons

64

Output

Fully Connected + Softmax

4 neurons

4 (class probs)

(五)SVM模型

        支持向量机(SVM)是一种强大的有监督学习分类器,它能在高维特征空间中找到最优超平面以区分各类别。这种方法对于那些在原始特征空间中数据并非线性可分但在更高维空间中可通过核函数实现分离的分类任务特别有效。为了进一步提升分类性能,提取 CNN 模型中间层的特征(如全连接层的输出),将其作为支持向量机(SVM)模型的输入,训练 SVM 分类器。

        其中:

        xi : 从卷积神经网络(CNN)中提取的特征向量。

        xi∈-1,1 : 类别标签。

        C : 正则化参数,用于控制最大化间隔与最小化分类误差之间的权衡。

        w :权重向量。

        b : 偏差项。

        ξi : 松弛变量,允许存在一些误分类。

       目标函数  的作用在于最大化不同类别的间隔,而项  则用于惩罚错误分类。参数 C 是一个超参数,需要进行调整以平衡最大化间隔和最小化分类错误之间的权衡。

图12:支持向量机模型结构图

        利用 SVM 模型对测试集进行分类,并评估其分类性能。通过比较 CNN 模型和基于 CNN 特征的 SVM 模型的分类结果,分析混合模型的优势。

四、实验结果与分析

        (一)数据划分

        本次实验采用 MIT-BIH 心律失常数据库,该数据库包含 48 个心电信号记录,采样率为 360Hz,每个记录包含两个导联(MLII 和 V1)。每个记录的时长约为 30 分钟,涵盖了正常和多种异常心律失常类型。通过读取数据文件并按照 AAMI 规则进行标签映射,将数据划分为四个类别:L(左束支传导阻滞)、N(正常)、R(右束支传导阻滞)、V(室性早搏)。

图13:原始数据划分为L类、N类、R类和V类的预处理过程

     (二)生成CWT图像        

        对心拍信号进行小波去噪,去除噪声干扰。并使用连续小波变换(CWT)将去噪后的一维心拍信号转换为二维图像,图像尺寸统一调整为 224×224 像素。

      

图14:V类的CWT图像生成过程图 

        模型训练过程如下所示:

图15:模型训练过程图

图16:CNN混淆矩阵结果

图17:CNN-SVM混淆矩阵结果

        为了比较基线卷积神经网络(CNN)和混合卷积神经网络 - 支持向量机(CNN-SVM)方法的效能,对这两个模型均在相同的测试数据集上进行了评估。分析了分类准确率和各类别的表现,特别关注了该模型区分形态相似的心跳类型的能力。

        下表展示的是不同模型结果对比:

表2:CNN与CNN-SVM的模型结果对比指标

Model

Acc%

Sen%

Spe%

CNN

98.45%

98.47%

99.47%

CNN+SVM

98.99%

99.03%

99.66%

        CNN 模型的测试准确率为 98.45%,在类别 N 和 V 上表现尤为出色。而利用全连接层 fc2 提取的 64 维特征的 CNN-SVM 模型进一步将准确率提高到 98.99%。SVM 在最大化间隔方面的能力显著提高了泛化能力,特别是在减少 L 和 R 类之间的混淆方面效果显著。这通过 CNN-SVM 模型(98.99% 对于 CNN 的 98.45%)的优越准确率得以体现,同时 L 和 R 类之间的误分类显著减少,从而验证了这种混合方法在细微心律失常检测方面的临床实用性。

五、结论与展望

(一)总结

        本文提出了一种基于小波变换和 CNN 的心律失常分类方法。通过小波去噪和 CWT 图像生成,将一维心电信号转换为二维图像,利用 CNN 模型自动学习图像特征,并通过 SVM 模型进一步提升分类性能。实验结果表明,该方法能够有效分类不同类型的心律失常,具有较高的准确率和较好的泛化能力,为心律失常的自动诊断提供了一种新的技术手段。

(二)创新点

        1、结合小波变换和 CNN 模型,充分发挥两者优势,利用小波变换提取信号的时频特征,通过 CNN 模型自动学习深度特征,实现对心律失常信号的高效、准确分类。

        2、提取 CNN 中间层特征并用于 SVM 训练,构建混合模型,进一步提高分类效果,充分利用两种模型的特点,弥补单一模型的不足。

        3、采用 CWT 图像生成方法将一维心电信号转换为二维图像,为 CNN 模型的应用提供了合适的数据形式,同时增强了信号特征的可视化和可分性。

六、参考文献

[1] Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database. IEEE Eng Med Biol Mag. 2001;20(3):45-50.

[2] Acharya UR, et al. Deep convolutional neural network for the automated detection and diagnosis of arrhythmias. IEEE Journal of Biomedical and Health Informatics. 2017;21(4):1329-1338.

[3] Cortes C, Vapnik V. Support-Vector Networks. Mach Learn. 1995;20(3):273-297.

[4] Zhang Y, et al. Deep learning for image-based arrhythmia detection. IEEE J Biomed Health Inform. 2020;24(1):252-261.

Tips:下一讲,我们将进一步探讨,心电信号处理与应用的其他内容。

以上就是基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法的全部内容啦~

我们下期再见,拜拜(⭐v⭐) ~

(Ps:有代码实现需求,请见主页信息,谢谢支持!~)

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

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

相关文章

用go从零构建写一个RPC(4)--gonet网络框架重构+聚集发包

在追求高性能的分布式系统中,RPC 框架的底层网络能力和数据传输效率起着决定性作用。经过几轮迭代优化,我完成了第四版本的 RPC 框架。相比以往版本,这一版本的最大亮点在于 重写了底层网络框架 和 实现了发送端的数据聚集机制,这…

OpenBayes 一周速览|TransPixeler 实现透明化文本到视频生成;统一图像定制框架 DreamO 上线,一键处理多种图像生成任务

公共资源速递 2 个公共数据集: * s1K-1.1 数学推理数据集 * HPA 人类蛋白质图谱数据集 3 个公共模型: * MedGemma-4B-IT * Devstral-Small-2505 * DeepSeek-Prover-V2-7B 12 个公共教程: 视频生成 * 2 语音交互 * 3 代码生成 * 3 …

4D毫米波雷达产品推荐

供应商链接 :https://mp.weixin.qq.com/s/GYarrc9VEZS0FafxRUeG9w 大陆 ARS548 采埃孚 博世 安波福 -------- Waymo MobileEye 华为(未找到官网资料) ------- 森思泰克 http://www.whst.com/contact.html 芜湖经济技术开发区东区…

yolo 训练 中间可视化

yolo训练前几个batch&#xff0c;会可视化target: if plots and ni < 33:f save_dir / ftrain_batch{ni}.jpg # filenameplot_images(imgs, targets, paths, f, kpt_labelkpt_label)

Rust 学习笔记:关于 Cargo 的练习题

Rust 学习笔记&#xff1a;关于 Cargo 的练习题 Rust 学习笔记&#xff1a;关于 Cargo 的练习题问题一问题二问题三问题四问题五问题六问题七 Rust 学习笔记&#xff1a;关于 Cargo 的练习题 参考视频&#xff1a; https://www.bilibili.com/video/BV1xjAaeAEUzhttps://www.b…

光伏功率预测 | BiLSTM多变量单步光伏功率预测(Matlab完整源码和数据)

光伏功率预测 | BiLSTM多变量单步光伏功率预测&#xff08;Matlab完整源码和数据&#xff09; 目录 光伏功率预测 | BiLSTM多变量单步光伏功率预测&#xff08;Matlab完整源码和数据&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 光伏功率预测 | BiLSTM多变…

20250606-C#知识:委托和事件

C#知识&#xff1a;委托和事件 使用委托可以很方便地调用多个方法&#xff0c;也方便将方法作为参数进行传递 1、委托 委托是方法的容器委托可以看作一种特殊的类先定义委托类&#xff0c;再用委托类声明委托变量&#xff0c;委托变量可以存储方法 delegate int Calculate(in…

AI数字人技术革新进行时:井云数字人如何重塑人机交互未来?

老板们注意了&#xff01;不用反复真人出镜拍摄&#xff0c;AI数字人来帮你做口播&#xff0c;只需3分钟克隆你的形象和声音&#xff0c;输入文案24小时随时都能生成视频&#xff01; 在元宇宙概念持续升温、虚拟与现实加速融合的当下&#xff0c;AI数字人正以惊人的速度从科幻…

ruoyi-plus-could 负载均衡 通过 Gateway模块配置负载均衡

这个很简单的&#xff0c;其实都不用配置。 在nacos中ruoyi-gateway.yml配置文件里面&#xff1a; 其实他已经给我们配置好了&#xff0c;只要uri&#xff1a;lb有【lb】就表示负载均衡配置 我们只需要在启动服务的时候改下端口就可以。 然后通过小工具测试下&#xff1a; 结…

Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!

Matlab回归预测大合集又更新啦&#xff01;新增2种高斯过程回归预测模型&#xff0c;已更新41个模型&#xff01;性价比拉满&#xff01; 目录 Matlab回归预测大合集又更新啦&#xff01;新增2种高斯过程回归预测模型&#xff0c;已更新41个模型&#xff01;性价比拉满&#xf…

主流 AI IDE 之一的 Cursor 介绍

一、什么是 Cursor Cursor 是由 Anysphere 公司开发的 AI 驱动的代码编辑器&#xff08;IDE&#xff09;&#xff1b;Anysphere 成立于 2022 年&#xff0c;创始团队包括来自麻省理工学院&#xff08;MIT&#xff09;的毕业生&#xff0c;如联合创始人 Aman Sanger 和 Michael …

0x-1 记一次SGA PGA设置失败,重新开库

0、生产侧定时平台上传数据库11g hang&#xff0c;修改无法startup 厂商统一发放的虚拟机作为前置机导入平台后&#xff0c;直接开机使用。主机在虚拟化平台中&#xff0c;实例卡死后&#xff0c;按照虚拟机系统64G&#xff0c;原SGA2g,不知哪个大聪明给默认设置的。保守计划修…

【科研绘图系列】R语言绘制和弦图(Chord diagram plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理相关性计算和弦图系统信息介绍 本文介绍了一个基于R语言的数据分析和可视化流程,主要用于生成和弦图(Chord Diagram)。和弦图是一种用于展示…

PPT转图片拼贴工具 v3.0

软件介绍 这个软件就是将PPT文件转换为图片并且拼接起来。 这个代码支持导入单个文件也支持导入文件夹 但是目前还没有解决可视化界面问题。 效果展示 软件源码 import os import re import win32com.client from PIL import Image from typing import List, Uniondef con…

关于安科瑞APD局部放电监测装置解决方案的应用分析

1 什么是局部放电&#xff1f; 局部放电&#xff08;Partial Discharge, PD&#xff09;是指发生在电气设备绝缘系统局部区域的、未贯穿整个电极的微小放电现象。它通常发生在高压电气设备&#xff08;如变压器、开关柜、电缆、GIS等&#xff09;内部存在绝缘缺陷、电场集中或…

设计模式-2 结构型模式

一、代理模式 1、举例 海外代购 2、代理基本结构图 3、静态代理 1、真实类实现一个接口&#xff0c;代理类也实现这个接口。 2、代理类通过真实对象调用真实类的方法。 4、静态代理和动态代理的区别 1、静态代理在编译时就已经实现了&#xff0c;编译完成后代理类是一个实际…

大量企业系统超龄服役!R²AIN SUITE 一体化企业提效解决方案重构零售数智化基因

《中国百货商业协会2024零售IT及数字化系统需求调查报告》为我们呈现了零售企业在数字化转型中的复杂图景。数据显示&#xff0c;82%的企业高管对AI改变行业未来充满信心 source&#xff1a;中国百货商业协会 &#xff0c;零售IT及数字化系统需求调查报告 &#xff0c;2024年 但…

Cesium使用glb模型、图片标记来实现实时轨迹

目录 1、使用glb模型进行实时轨迹 2、使用图片进行实时轨迹 基于上一篇加载基础地图的代码上继续开发 vue中加载Cesium地图&#xff08;天地图、高德地图&#xff09;-CSDN博客文章浏览阅读164次。vue中加载Cesium三维地球https://blog.csdn.net/ssy001128/article/details…

Android基础回顾】六:安卓显示机制Surface 、 SurfaceFlinger、Choreographer

在 Android 系统中&#xff0c;Surface 和 SurfaceFlinger 是图形渲染系统的核心组件&#xff0c;负责屏幕显示内容的合成与管理。它们协同工作&#xff0c;使各种 App 和系统界面能够高效地显示在屏幕上。 1 Surface 是什么&#xff1f; Surface 是一个抽象的图形缓冲区接口…

敏捷开发中如何避免过度加班

在敏捷开发过程中避免过度加班&#xff0c;需要明确敏捷原则、合理规划迭代任务、加强团队沟通、优化流程效率、设定合理的工作负荷、注重团队士气和成员健康。明确敏捷原则&#xff0c;即保证可持续发展的步调&#xff0c;避免频繁地变更需求、过度承诺任务量。合理规划迭代任…