OSACN-Net:使用深度学习和Gabor心电图信号谱图进行睡眠呼吸暂停分类

news2024/10/3 2:18:11

在这里插入图片描述
这篇文章在之前读过一次,其主要的思路就是利用Gabor变换,将心电信号转变为光谱图进行识别研究,总体来讲,不同于其他的利用心电信号分类的算法,该论文将心电信号转换为光谱图,在此基础上,分类问题就从信号分类问题变为图像分类(或者检测)的问题。

名词解释:
😃OSA:(Obstructive sleep apnea睡眠呼吸暂停综合征

😃 SGS: (Gabor spectrogram smoothed by a third-order Savitzky–Golay (S-G) filter.) 平滑的Gabor谱图

😃 GS: (Gabor spectrogram) Gabor光谱图

😃 T-F : (time-frequency (T-F) spectral images) 时频图

😃 TFR:the 2-D images of joint T-F representation 2D-时频光谱图

一、主要工作的阐述

作者在论文中阐述了自己所做的主要工作:
1)本文提出了一种集成了SGS和基于深度学习的OSA自动检测方法的新方法。
2)本研究首次采用了S-G滤波器与TFR的融合技术,显著提高了OSA的检测性能。
3)最合适的特征的提取、选择和分类是一项耗时的主观任务。因此,利用T-F光谱图作为输入信号,开发了一个DLM------OSACN-Net。
4)开发的OSACN-Net是不那么复杂的轻量级模型,因为它只包括四个卷积层(CLs)、三个池化层(PLs)和两个完全连接的层(FCLs)。
该算法的流程图大致如下:
1、利用Gabor变换将60s的信号片段由一阶时间序列转变为二维时频光谱图
2、将光谱图使用SG滤波器滤波,得到smoothed Gabor spectrogram (SGS)
images。
3、得到的SGS送入OSA-net当中得到分类。
在这里插入图片描述

二、技术细节

1、数据集处理
论文作者使用的是The Apnea-ECG database数据集,该数据集曾用于心脏病识别挑战赛。其中,将数据集划分为60s的片段,其中每个片段都带有专家标记的是否患有OSA。

2、Gabor Transform
Gabor变换将ECG信号由时间序列转换到频域,这一步还将生成额外的时频图。
3、S-G滤波器
上一步得到的时频图,经过三阶S-G滤波器平滑滤波后,就得到了S-G-S图,由下图所示。
在这里插入图片描述
4、 OSACN-net网络结构
该网络的结构非常简单,如下图所示:
作者前面的主要贡献里也提到了该网络模型的优势在于轻量级和低复杂性,在检测精度上优于Squeezenet和Resnet50
在这里插入图片描述

三、实验结果

在保证输入数据不变的情况下,作者做了以下几组对比实验,并最终论证了OSACN-Net的优势。
在这里插入图片描述

附录

😆 Q1: 如何将一维时间序列转换为二维图像
参考链接:点击链接,一维时间序列处理
😆 Q2:数据集划分的方式
该数据库包含70条心电图记录和整个夜间记录。每条记录时长约为7-10小时,并包括每分钟正常和呼吸暂停的注释。记录根据ApI和呼吸暂停-非呼吸暂停分钟进行划分,每个记录被分割成60秒(6000个样本)片段。分割后共得到11 620个片段。每个片段都被标记为正常或呼吸暂停。因为它比较了不同的周期长度,受试者Id分别为x27m和c01m。
在数据计划分上,80%的数据集用作训练集,10%数据集用作验证集,10%数据集用作测试集。
在这里插入图片描述
😆 Q3:训练以及实验的部分细节
本研究的重点是利用心电信号对正常和呼吸暂停发作进行准确的分类,以获得一个可靠和稳健的OSA检测系统。使用呼吸暂停心电图数据库。这项研究包括三个步骤。首先,心电图记录被分割成60秒的片段。其次,利用GT获得了60秒分段心电信号的频谱图。第三,利用3阶S-G滤波器对获得的光谱图图像进行平滑处理,并馈入DLM。为了选择性能最好的TFR和DLM,将GS和SGS图像作为输入输入预先训练的net50,并开发OSACN-Net对OSA和正常类别进行分类。
📌Gabor变换使用Guassian窗口函数,窗口长度为251
📌使用三阶、窗口长度为5的S-G滤波器提供了更高的信噪比(SNR)和结构相似度指数(SSI)
至此,使用长度为251的高斯窗口将一维信号转换为二维光谱图,并使用窗口长度为5的三阶S-G滤波器得到SGS。
📌为了匹配输入图像的大小,所有图像的大小都被调整压缩, Squeeze-Net、OSACN-Net为227×227,Res-Net50为224×224。
📌优化器使用Adam,训练策略采用十折交叉验证方法;训练了25个epochs,batch_size大小为128.
📌Squeeze-Net and Res-Net50 provide the STD of 0.71 and 0.65 and the CI of 90.34 ±0.44 and 94.51 ± 0.40. The developed OSACN-Net marks as the STD of 0.49 and CI of 94.81 ± 0.30 with SGS images.

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

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

相关文章

java面试题(二十)中间件redis

1.1 Redis可以用来做什么? 参考答案 Redis最常用来做缓存,是实现分布式缓存的首先中间件;Redis可以作为数据库,实现诸如点赞、关注、排行等对性能要求极高的互联网需求;Redis可以作为计算工具,能用很小的…

基于微信小程序 java高校后勤报修系统 Springboot校园报修管理系统

1绪论 5 1.1项目研究的背景 5 1.2开发意义 5 1.3项目研究内容 5 2开发技术介绍 6 2.1 B/S架构 6 2.2Java技术 6 2.3MySQL 介绍 7 2.4MySQL环境配置 7 2.5SpringBoot技术 8 3系统分析 9 3.1可行性分析 9 3.1.1技术可行性 9 3.1.2经济可行性 9 3.1.3操作可行性 9 3.2网站性能需求…

跟开发打了半个月后,我终于get报bug的正确姿势了

在测试人员提需求的时候,大家经常会看到,测试员和开发一言不合就上BUG。然后开发一下就炸了,屡试不爽,招招致命。 曾经看到有个段子这么写道: 不要对程序员说,你的代码有BUG。他的第一反应是:…

C语言学习笔记-强制类型转换

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型…

《Redis实战篇》六、秒杀优化

6、秒杀优化 6.0 压力测试 目的:测试1000个用户抢购优惠券时秒杀功能的并发性能~ ①数据库中创建1000用户 这里推荐使用开源工具:https://www.sqlfather.com/ ,导入以下配置即可一键生成模拟数据 {"dbName":"hmdp",…

Java中的Set集合

Set不能存储重复元素,元素无序(指的是不按照添加的顺序,List集合是按照添加顺序存储的)hashSet注:源码底层是hashMap实现的,因为hashMap是双列的,其中键是不能重复的,而hashSet是单列…

使用f-string格式化构建字符串

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 字符串的格式化输出(f-string) print(f字符串{变量}字符串) [太阳]选择题 对于以下python代码最后输出的结果是? name "小明" print("【显示】f输出…

全新视角!带你一文读懂ChatGPT!

最了解你的人不是你的朋友,而是你的敌人。 ——《东邪西毒》 目录 什么是ChatGPT? ChatGPT为什么会突然爆红网络? ChatGPT能帮助我们做什么? 获取源码?私信?关注?点赞?收藏&…

记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 很多前端都喜欢用 console.log 调试,先不谈调试效率怎么样,首先 console.log 有个致命的问题:会导致内存泄漏。 为什么这么说呢? 用 Performance 和 Mem…

【信管11.4】合同及合同管理过程(二)

合同及合同管理过程(二)合同管理过程不属于项目管理过程中的知识域,所以它也不是 PMP 中的内容。其实截止到这里,整个 PMP 中的相关知识你已经学完了。如果抛开我们第一大章信息化和信息管理相关的内容,你就可以直接去…

Spring Boot(五十九):Sa-Token-Quick-Login插件快速登录认证

1 Sa-Token-Quick-Login解决的问题 Sa-Token-Quick-Login 可以为一个系统快速的、零代码 注入一个登录页面 试想一下,假如我们开发了一个非常简单的小系统,比如说:服务器性能监控页面, 我们将它部署在服务器上,通过访…

Docker不做虚拟化内核,对.NET有什么影响?

引子前两天刷抖音,看见了这样一个问题。问题:容器化不做虚拟内核,会有什么弊端?Java很多方法会跟CPU的核数有关,这个时候调用系统函数,读到的是宿主机信息,而不是我们限制资源的大小。思考&…

FoveaBox原理与代码解析

paper:FoveaBox: Beyond Anchor-based Object Detectorcode:https://github.com/taokong/FoveaBox背景基于anchor的检测模型需要仔细设计anchor,常用方法之一是根据特定数据集的统计结果确定anchor的number、scale、ratio等,但这种…

elasticsearch8.3.2搭建部署

Elasticsearch8.3.2搭建部署详细步骤 0.过往文章 ES-6文章: Elasticsearch6.6.0部署、原理和使用介绍: https://blog.csdn.net/wt334502157/article/details/119515730 ES-7文章: Elasticsearch7.6.1部署、原理和使用介绍: https://blog.csdn.net/wt…

堆排序

章节目录:一、相关概述1.1 基本介绍1.2 排序思想二、基本应用2.1 步骤说明2.2 代码示例三、结束语一、相关概述 1.1 基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序。它的最坏最好平均时间复杂度均为 O(nlogn)&#x…

(深度学习快速入门)第五章第二节:GAN变体

文章目录一:CycleGAN(1)概述(2)双判别器(3)损失函数二:StyleGAN(1)解耦表征学习(2)概述三:DCGAN一:CycleGAN …

4.5.8 Set接口与HashSet

文章目录1.概述2.Set集合的特点3.常用方法4.HashSet4.1 概述4.2 练习: Set相关测试一4.3 练习: Set相关测试二1.概述 Set是一个不包含重复数据的CollectionSet集合中的数据是无序的(因为Set集合没有下标)Set集合中的元素不可以重复 – 常用来给数据去重 2.Set集合的特点 数据…

排序算法学习

文章目录前言一、直接插入排序算法二、折半插入排序算法三、2路插入排序算法四、快速排序算法学习前言 算法是道路生涯的一个巨大阻碍。今日前来解决这其中之一:有关的排序算法,进行实现以及性能分析。 一、直接插入排序算法 插入排序算法实现主要思想…

Kubernetes_从Linux的cgroup配置到Kubernetes中的cgroup配置

系列文章目录 文章目录系列文章目录前言一、Linux层面的cgroup二、Kubernetes层面的cgroup driver2.1 kubelet和docker的Cgroup Driver不同导致kubelet开启失败2.1.1 命令2.1.2 演示总结前言 一、Linux层面的cgroup cgroup是控制组,用来控制进程对资源的分配&…

Cesium-数字仿真-你总要了解

Cesium(专注于时空数据的实时可视化) cesium是一款三维地球开源框架(可以多平台、跨平台使用)cesium隶属于美国AGI公司(Analytical Graphics Incorporation),美国通用公司宇航部的工程师创始开源 周边产…