自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hybird_Transformer for OSA detection

3、使用DWT进行变换,为了消除噪声,包括工频干扰、肌电图噪声和与原始心电图数据的基线偏差,我们使用coif4小波将原始心电图数据分解为6个比例,并去除第一(25-50Hz)、第六(0.8-1.6Hz)比例细节分量和第六(0-0.8Hz)比例近似分量。5、R峰定位:step1:-将信号重采样值500Hz,然后,根据相应的放大率对预测的坐标进行缩放,以匹配原始的心电图段。step2:-这一步使用一个宽度为10个采样点的滑动窗口来微调r峰位置,并将窗口中最大点的坐标分配为r峰位置。7、输入网络,得到分类结果。

2023-02-21 16:28:00 214 1

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

这篇文章在之前读过一次,其主要的思路就是利用Gabor变换,将心电信号转变为光谱图进行识别研究,总体来讲,不同于其他的利用心电信号分类的算法,该论文将心电信号转换为光谱图,在此基础上,分类问题就从信号分类问题变为图像分类(或者检测)的问题。名词解释:😃:(😃: (😃: (😃: (time-frequency (T-F) spectral images) 时频图😃:the 2-D images of joint T-F representation 2D-时频光谱图。

2023-02-11 13:35:51 1260 1

原创 一种基于深度学习的单导联心电信号睡眠呼吸暂停检测方法

在R峰识别的基础上,加入S峰的识别,并论正了该策略对检测结果的有效性。

2023-02-10 13:51:34 711 1

原创 DETR:End-to-End Object Detection with Transformers

摘要第一句话,作者就阐明了我们使用的是一种新的思想,不同于以往的目标检测算法,作者将目标检测看做成集合预测的问题。由于思想的转变,该框架实际上真正做到了端到端的预测,在当前流行的目标检测算法里面,不管是one-stage的还是two-stage的算法,难免都要有其他的处理操作,比如nms的后处理,anchor base的网络等,他们都没有做到真正的端到端(在这里,我认为端到端其实可以理解为–给定一张输入的图片,模型能够直接输出完整的结果,而不再需要其他的后续操作)。

2022-10-11 14:26:37 1322

原创 Towards Open Set Deep Networks:开放世界的目标检测

但是在现实世界中,大多数检测任务都是开放的,在动态和不断变化的现实世界中部署识别系统时,绝大多数的识别系统是为静态封闭世界设计的,其中主要的假设是所有类别都是已知的。主要的问题出在了softmax层上,在大多数网络中,最后一层全连接层的输出被输入到softmax层中,从而在N个已知类别中产生一个概率分布,这就造成了在给定一个未知类作为输入时,网络总会找到一个最有可能的已知类。同时,将元学习的概念加入深度网络中,使用网络倒数第二层(Softmax层前面的全连接层)的分数来评估当前的输入是否远离已知类别。

2022-10-02 20:44:36 2095 1

原创 Attention Is All You Need:Transformer论文阅读笔记

在主流的序列转录模型里面,一般使用的是encoder(编码)和decoder(解码)架构,目前性能最好的模型也是通过将注意力机制引入encoder和decoder中来实现的。作者在此提出了一个新的模型–Transformer,通过与现存的机器翻译模型对比来说明了当前模型的优点。事实证明,transformer不仅仅在语言翻译领域应用,在视觉方面也有了新的应用,后面的DETR就是以Transformer为基础架构得到的目标检测器。

2022-09-30 16:15:22 467 1

原创 Leetcode---二叉树中和为某一值的路径

题目描述:解题方法: 递归使用深度优先搜索时间复杂度: O(n^2)空间复杂度; O(n)class Solution {public: vector<vector<int>>res; vector<int>temp; void recur(TreeNode*root, int val) { if(root == nullptr) return; temp.push_back(root->va

2022-05-08 20:09:03 512

原创 斐波那契数列的数学解法

介绍:最近刷题又遇到了求解斐波那契数列,当时初学C语言的时候就做过这种题目,其要求就是每一个数都等于前两个数之和(除了第一个数和第二个数),当时的做法就是循环里面存储一下前两个数,然后保存相加之和,再更新一下前两个数。最近又遇到了,原来的算法时间复杂度就是O(N),输入是几就循环几次,空间复杂度就是O(1),使用固定的空间。再次遇到的时候就在想,既然是在做算法题目,那么显然循环的操作是不好的,试着想了一下是否有降低时间复杂度的方法。然后就看到了官方题解,矩阵的思想进行求解,不得不佩服数学的魅力呀,时间

2022-04-30 21:43:04 695

原创 leetcode-----奇偶树

--------------------------------------------纯刷题笔记,不是自己的解题思路-------------------------------------、题目描述:如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减给

2022-04-19 21:05:18 86

原创 Leetcode---复制复杂链表

本题也是剑指offer的第35题请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]

2022-04-11 19:49:49 124

原创 Leetcode---反转链表

反转链表操作:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 50001、 双指针法时间复杂度: O(N) 需要的操作为链表长度空间复杂度:O(1) 消耗常数大小的内存空间解题思路:首先在循环内遍历链表,循环结束的条件就是当前的指针为空指针;使用一个中间变量(tem

2022-04-08 10:41:39 289

原创 Leetcode有效数独的Python解法

刷题时遇到了有效数独的问题,该题目也被收录在了leetcode学习库的初级算法这本书里面,今天分享一下个人的解题思路二和代码。先来看一下题目:在这里需要注意的是:1、程序输入为一个二维列表,其中每个数字都是字符串类型的,不是整型2、列表由’.'和’num’组成3、该数独不一定是可解的,我觉得这个应该起到了降低难度的作用思路:看到这个题目的时候首先想到的就是遍历这个数独,既然他要求每行,每列。每个方格都不能出现0-9重复的数字,那么就遍历一遍,发现重复的就返回False就好了。程序可以分为三

2022-02-22 12:56:29 544

原创 Fast-R-CNN论文解读

Fast-r-cnn是Ross在2015年发表的一篇论文,其网络全称为: Fast Region-based Convolutional Network method–用于目标检测的基于区域的快速卷积网络算法。在于先前的网络R-CNN对比之下,其训练速度要快9倍,检测时间快出来213倍(R-CNN的检测时间GPU工作下为47s一张图片),同时在检测精度上也作了进一步的提升。一、任务简介在介绍中,作者提出目标检测任务相比分类来说更为复杂和困难,首先计算机要处理众多的候选目标区域(也就是proposal

2022-02-20 17:42:48 3679 1

原创 目标检测网络R-CNN系列与yolov1算法原理概述

一、R-CNN算法简介R-CNN算法流程1、将一张图像生成1k-2k个候选区域(使用ss算法)2、对于每个候选区域,使用深度网络来提取特征3、将特征送入每一类的SVM分类器,判别是否属于该类。(有多少类别就有多少个SVM分类器)4、使用回归器精细修正候选框位置R-CNN算法缺陷1、测试速度慢2、训练速度慢,过程繁琐3、训练所需的空间很大FAST-R-CNN算法流程与R-CNN相比,训练时间快九倍,测试推理时间快213倍,准确率提升至66%1、将一张图像生成1k-2k个候选区域(使用

2022-02-19 16:37:55 1449 1

原创 Python正则表达式详解与re模块简单使用

一、正则表达式简介正则表达式是用于处理字符串的强大工具,Python中主要是由re模块来实现处理。从本质上讲,正则表达式是一种小型的、高度专业化的编程语言,它是对字符串操作的一种逻辑公式,使用先定义好的规则字符串对字符串进行过滤逻辑操作。正则表达式由两种字符构成,一种是在表达式中具有特殊意义的“元字符”, 一种是普通字符关于正则表达式表可以参考:https://www.jb51.net/shouce/jquery1.82/regexp.html二、re模块用法首先在python中安装re的安装包,使

2022-02-17 14:44:04 795

原创 Python的类与类继承、元类、新型类与super()的用法

一、类和对象面向对象是一种编程的思想。面向对象的核心概念就是抽象、继承、多态。类由属性和方法组成,通俗点理解就是,属性就是类内部包含的数据,而方法则是在类内部定义的函数。Python的类分为经典类和新式类,区别在于新式类默认继承object类。而object类是Python的内置类,其中具有很多方法,在3.x版本中左右的类均为object的子类。建议尽可能地使用新式类。1、创建类的例子:class class_name: data = [] def fun1(self):

2022-02-16 16:09:36 714

原创 Python数据结构 ----非线性结构-树

一、使用Python构建一个简易版的二叉树class Tree: def __init__(self, data): self.data = data self.left_child = None self.right_child = None def insertLeft(self, newNode): if self.left_child == None: self.left_child = Tr

2022-02-08 20:26:39 877

原创 Python数据结构 ----线性结构-栈的实现及应用

一、概念线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继(比如列表,可以使用顺序索引)。不同的线性结构关键区别在于数据项增减的方式。有的结构允许插入数据、前后端添加;有的则只允许从端添加。基本的线性结构:堆Stack、队列Queue、双端队列Deque、列表List。是四种最简单但是功能强大的数据结构。二、代码实现1、栈的实现可以把栈结构想象为一个杯子,数据就像是石头依次放入杯子中,那么栈的规则就是先进后出(因为在底部),最后放进去的数据存在于“杯子”的最上端,因此称为栈顶,而

2022-01-26 21:36:56 882

原创 Pytorch学习笔记---自动求导机制,线性回归模型搭建

torch搭建线性回归,Python代码实现

2022-01-25 13:12:55 1356 1

原创 Pytorch学习笔记 --基本使用方法

torch的基本使用方法一、创建矩阵\张量1、创建一个m*n*c的空矩阵:x = torch.empty(m,n,c)2、创建一个m*n*c的随机数值矩阵:x = torch.rand(m,n,c)3、创建一个m*n*c的0矩阵: y = torch.zeros(m, n, c)创建矩阵时,可以使用dtype参数来指定矩阵内存储的数据类型:y = torch.zeros(5,5,5, dtype=torch.long)4、读取图片,其类型为ndarray,将其转换为tensor类

2022-01-24 13:30:48 2370

原创 深度学习Pytorch框架学习-------安装torch避坑指南

新手避坑指南

2022-01-24 11:43:14 2698 2

原创 opencv-python图像处理 ---harris图像特征

一、原理对于一幅图像内的边界与角点,边界的特征是其边界的灰度级沿着水平或者竖直方向其中之一变化特别迅速,而另一方向变化则比较缓慢。而角点则是沿着两个方向的灰度级变化都比较明显。在定位角点的过程中,使用自相关函数来判断平移后的窗口与原来灰度变化的差异性,也就说选取图像某一部分然后将其沿着某一方向平移,通过其相关性函数来判断当前所选择的区域是平面还是角点还是边界。(平面的话无论沿那个方向移动,其灰度级变化都不是很明显)。详细的数学推导这里不再解释,通过数学变换自相关函数整理成一个对角矩阵形式,并使其近似于

2022-01-21 13:22:25 2422

原创 opencv-python图像处理 ---直方图与傅里叶变换、逆变换

Python代码实现

2022-01-10 17:18:57 2115 2

原创 opencv-python图像处理 ----边界矩形、外接圆、模板匹配

为了能好的体现函数,使用画板又画了一幅图像用来轮廓检测运行上一节的笔记代码,可以检测出来形状的轮廓。边界矩形可以将某一边界使用矩形绘制出来,确定一个矩形需要四个点,因此使用函数:def f_contours(): """ 轮廓查找与绘制 :return: """ img = cv.imread("bound.png") # draw会改变原图,这里做一个备份 img_copy = img draw_img = img.copy()

2022-01-09 20:46:16 1174 2

原创 opencv-python图像处理 ---图像轮廓检测与代码实现

一·、轮廓检测边缘检测虽然能够检测边缘,但是其边缘并不是连续的,图像轮廓用于检测一个整体,来用于后续进行其他处理。opencv提供了两个函数来完成这些操作:findContours():该函数可以查找轮廓drawContours():绘制轮廓轮廓与边缘的区别在于:轮廓是一条完整、连续的边缘。轮廓上的像素点表示实际图像中的连续曲线–即物体的外形轮廓。函数的具体用法: contours, hierarchy = cv2.findContours(img, mode=, method=)传入参数说

2022-01-09 20:03:49 5993

原创 opencv-python图像处理 ----详解高斯、拉普拉斯图像金字塔

一、概念图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合。这个图像集合是由原图像不断下采样;产生的,最底层是原图像,该层的上层图像是该层图像下采样产生,因此,图像的大小就是 : NN —N/2N/2----…一直到顶点1*1。根据下采样前使用的卷积核操作的不同,图像金字塔可以分为高斯金字塔、拉普拉斯金字塔等等。下采样的一般步骤为:先将图片滤波,然后将滤波后的图像去掉其偶数行和偶数列,在滤波器的选择上我们有多种方式,cv包中使用的默认滤波器为高斯滤波器。由于采样后的图像将越来越小,因此可以

2022-01-09 16:23:17 2036

原创 opencv-python图像处理 ---Canny边缘检测

Canny原理解析与Python实现Canny检测

2022-01-08 21:23:29 1901 4

原创 opencv-python图像处理 ----图像梯度、Sobel算子

一、图像的梯度处理1、Sobel算子梯度可以按照x方向或者y方向求梯度,其实就是在看像素点的差异变化情况,比如黑白物体的交界,其像素值变化差异是非常大的。求梯度计算使用的函数就叫做Sobel算子,可以分为水平梯度与竖直梯度。简单点说,Sobel算子是一种特殊的卷积核,可以用于图像的边缘检测。自定义一个水平及竖直方向的sobel算子:# 水平sobel算子Sobel_x = np.array([[-1, 0, 1], [-2, 0, 2],

2022-01-07 21:33:37 5167 4

原创 opencv-python图像处理基本操作 ---图像阈值、图像平滑、图像腐蚀、图像膨胀与开闭运算

一、图像的阈值操作阈值操作的形式有很多种,其主要的操作就是对一幅图像的每一个像素点进行阈值判断,然后再进行执行相应的操作处理。原函数:ret, dst = cv2.threshold(src, thresh, maxval, type)函数参数的介绍:src: 输入的原图片,只能是单通道的图像,通常来说是灰度图dst:输出图像,作为结果返回thresh:可设置的阈值maxval:阈值操作时对当前像素的重新设置type:二值化操作的类型,包含以下五种类型:cv2.THRESH_BINAR

2022-01-06 17:24:28 1582

原创 opencv-python图像处理安装与基本操作

一、安装opencv关于opencv的安装,如果是windows系统下使用pycharm,那么直接在在终端使用pip命令或者点击设置-python解释器输入opencv-python即可如果使用的是conda,那也可以使用pip命令或者conda install 安装在linux下的话更加简单。而且也会少很多无缘无故的bug,推荐使用linux系统。linux下使用终端输入pip或者pip3 install opencv-python即可,前提是已经安装了python并且设置好了路径变量。二、 o

2022-01-04 21:03:57 1139 3

原创 什么是随机变量、 离散随机变量、 连续随机变量

1、随机变量的概念将具体的情况使用离散数字来表示,构成X就是随机变量。百度的解释:简单地说,随机变量是指 随机事件 的数量表现。 例如一批注入某种毒物的动物,在一定时间内死亡的只数;某地若干名男性健康成人中,每人 血红蛋白 量的测定值;等等。 另有一些现象并不直接表现为数量,例如人口的男女性别、试验结果的阳性或阴性等,但我们可以规定男性为1,女性为0,则非 数量标志 也可以用数量来表示。离散型随机变量:有限个或者无限可列个时间连续型随机变量:一个或多个区间取值2、离散型随机变量及其概率分布将X的

2021-12-24 20:52:50 4642

原创 统计学习:决策树实现与梯度下降法(python实现, ID3算法)

一、ID3算法ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归的构建决策树。具体方法是:从根节点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点;在对子结点递归的调用以上方法,构建决策树;直到所有特征的信息增益均很小或者没有特征可以选择为止。在统计论里,熵是表示随机变量不确定性的度量。熵越大,随机变量的不确定性越大。信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。简而言之:信息增益大的特征具有更强的分类能

2021-12-24 17:11:57 1984 2

原创 统计学习:模型评估与选择--绘制性能度量P-R曲线(python代码)

将查准率与查全率作为坐标系构建坐标空间,就可以得到所谓的ROC空间。P-R曲线的定义为:根据学习器的预测结果(一般为一个实值或概率)对测试样本进行排序,将最可能是“正例”的样本排在前面,最不可能是“正例”的样本排在后面,按此顺序逐个把样本作为正例进行预测,每次计算出当前的P值和R值。。P-R曲线的评估方法:若一个学习器A的P-R曲线被另一个学习器B的P-R曲线完全包住,则称B的性能优于A。若A和B的曲线发生了交叉,则谁的曲线下面积大,谁的性能更优。但一般来说曲线下的面积是很难估算的,因此使用BEP(平衡

2021-12-20 18:14:51 1464

原创 统计学习:模型评估与选择--查准率与查全率(python代码)

模型评价指标及python代码实现

2021-12-20 12:57:10 4257 1

原创 统计学习:模型评估与选择--调参与最终模型(网格搜寻与贝叶斯优化hyperopt工具包)python代码

一、网格法超参数选择本次使用k近邻算法为例,k近邻算法需要的超参数类型有三个:1、n_neighbors= 邻居个数 输入为int型数据2、algorithm= 数据所使用的算法类型,有brute,ball_tree, kd_tree三种类型可选3、p= 距离表示选择 1表示哈曼顿距离, 2表示欧氏距离代码如下:代码的思路为首先导入鸢尾花数据集,然后将其划分为训练集和测试集,这一步使用工具为train_test_split,然后实例化一个k近邻算法的模型,创建三个列表分别存储k近邻算法需要用

2021-12-19 20:34:28 773

原创 统计学习:模型评估与验证--K折交叉验证与自助法

一、K折交叉验证如果给定的样本数据充足,进行模型选择的一种简单方法是随机的将数据集切分成三部分,分为训练集,验证集和测试集。训练集用来训练模型,一般来说数据量要更大一些,验证集用于模型的选择,而测试集用于最终对学习方法进行评估(查看模型泛化能力)在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,用他对模型选择也是有效的。但是,在许多实际应用中数据时不充足的。为了更好地选择模型,可以采用交叉验证的方法。交叉验证的基本思想就是重复的使用数据;把给定的数据进行切分,将

2021-12-18 18:35:22 2082

原创 统计学习:模型评估与选择--留出法(python实现)

使用测试集来测试学习器对新样本的判别能力,然后在测试集上的“测试误差”作为泛化误差的近似,且假设测试样本是从样本真实分布中独立同分布采用而得。这样的目的也就是利用测试样本模拟真实模型应用场景,看下模型对于现实的数据预测能力如何。

2021-12-18 12:19:14 3316 3

原创 统计学习:模型评估与模型选择---多项式拟合目标函数(python实现版)

统计学习的目的是使学到的模型不仅对已知数据,而且对于未知数据都能很好地预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准。如果一味的追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型更高。**这种现象被称为–过拟合。**通俗的的解释就是,模型在训练集上表现得非常好,但是在预测集上表现得很差。本次代码使用sklearn包来完成模型拟合,使用绘图包matplotl

2021-12-18 10:43:57 699

原创 C++基础(C++Primer学习)

C++基础(十三)<第十三章—继承与动态内存分配>问题:继承是怎样与动态内存分配进行互动的,如果基类使用动态内存分配,并重新定义赋值和复制构造函数,对派生类将产生什么影响?1、创建一个基类:头文件#pragma once#include"list.h" //一些基本的库class BaseDma{private: char* label; int rating;public: BaseDma(const char* la = NULL, int ra = 0); Ba

2021-12-14 19:37:18 895 1

原创 C++基础(C++Primer学习)

C++基础(十二)<第十一章—动态联编与静态联编、抽象类>一、联编程序调用函数时,将源代码中的函数调用解释为执行特定地函数代码块称为函数名联编。在编译过程中进行联编被称为静态联编。然而虚函数以及函数重载地存在使得静态联编出现困难,因为编译器可能不知道到底使用的是哪一个函数。编译器生成能够在程序运行时选择正确地虚方法地代码,被称为动态联编,又称为晚期联编。如果派生类不重新定义基类的方法,也不需要使用动态联编。在这些情况下,使用静态联编更合理,效率也更高。C++编译器默认使用静态联编。1

2021-12-11 16:48:34 385 1

myself_ID3tree.rar

myself_ID3tree.rar

2021-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除