一种基于计算机视觉的血氧饱和度测量方法与流程

未命名 08-15 阅读:132 评论:0


1.本发明涉及一种血氧饱和度测量方法,尤其涉及一种基于计算机视觉的血氧饱和度测量方法,属于计算机视觉领域。


背景技术:

2.血氧饱和度(sao2)是血液中被氧结合的氧合血红蛋白(hbo2)的容量占全部可结合的血红蛋白(hb,hemoglobin)容量的百分比。即血液中血氧的浓度,它是呼吸循环的重要生理参数。
3.很多呼吸道疾病,如哮喘、气管炎、老慢支、肺心病、慢阻肺等会引起人体血液中的血氧饱和度降低,肺炎也会造成血氧水平下降,血氧饱和度是检测呼吸循环系统导致的疾病重要的生理参数。万物生长靠太阳,雨露滋润禾苗壮。我们的生活离不开氧气,人体氧气含量一旦降低,就会出现犯困、精力不足、思维活跃度变低等症状,血氧长期不足,就会引起酸碱平衡紊乱,对大脑、心脏等重要器官造成伤害。
4.日常生活中,为了我们自身的健康和预防呼吸循环系统导致的疾病,可以自己测量血氧饱和度。现在人们多是购买智能穿戴设备进行测量血氧饱和度测量,但是大多数的智能手表或手环不具备血氧检测功能,需要购买血氧仪。血氧仪虽然体积不大,但很少有人携带,而且价格也不是很便宜。
5.监测动脉血氧饱和度(sao2)可以对肺的氧合和血红蛋白携氧能力进行估计。正常人体动脉血的血氧饱和度为98%,静脉血为75%。一般认sao2正常应不低于94%,在94%以下为供氧不足,也就是轻度缺氧。临床一般大于90%就可以了,低于90%,属于严重缺氧,需要尽快找医生治疗。血氧饱和度在临床医疗领域中的研究中起着非常重要的作用。医生会根据血氧饱和度来了解病人的身体情况,血氧饱和度低于90%就要及时进行诊治,需要经过医生拍片等各种一系列繁琐的检查。
6.因此,人们需要一款方便智能的血氧饱和度测量软件,可以使随时检测自己血氧情况。


技术实现要素:

7.本发明的目的是:提供一种基于计算机视觉的血氧饱和度测量方法。
8.为解决上述技术问题,本发明采用的技术方案是:
9.一种基于计算机视觉的血氧饱和度测量方法,包括以下步骤:
10.步骤1:采集k帧以上指尖图像,k大于预设值;
11.步骤2:判断指尖图像中是否包含指尖,由以下步骤组成:
12.步骤2-1:提取指尖图像的边缘轮廓;
13.步骤2-2:根据指尖图像的边缘轮廓将指尖图像划分为指尖部分和背景部分;
14.步骤2-3:计算指尖部分和背景部分的像素比,根据预设指尖部分像素数缩放指尖图像,将缩放后的指尖图像裁剪至指尖模板图像大小,得到预处理后的指尖图像;
15.步骤2-4:计算预处理后的指尖图像与指尖模板图像的相关系数;
16.步骤2-5:判断预处理后的指尖图像与指尖模板图像的相关系数是否大于预设相关阈值,如果是,转向步骤3,否则,转向步骤1;
17.步骤3:提取预处理后的指尖图像中指尖部分m
×
n大小的局部图像作为解析图像;
18.步骤4:分割解析图像,由以下步骤组成:
19.步骤4-1:提取各帧解析图像的红色分量rk(m,n)、蓝色分量bk(m,n)和绿色分量gk(m,n),1≤k≤k,1≤m≤m,1≤n≤n;
20.步骤4-2:将各帧解析图像的红色分量rk(m,n)中对应位置像素组成时间序列r
mn
(k),对时间序列r
mn
(k)进行傅立叶变换,dr
mn
为其直流系数,ar
mn
为其交流分量的最大值;将各帧解析图像的蓝色分量bk(m,n)中对应位置像素组成时间序列b
mn
(k),对时间序列b
mn
(k)进行傅立叶变换,db
mn
为其直流系数,ab
mn
为其交流分量的最大值;
21.步骤5:计算血氧饱和度sp:
[0022][0023]
式中,dr为解析图像的红色分量各时间序列傅立叶变换后直流系数dr
mn
的值,ar为解析图像的红色分量各时间序列傅立叶变换后交流分量的最大值ar
mn
的值,db为解析图像的蓝色分量各时间序列傅立叶变换后直流系数db
mn
的值,ab为解析图像的蓝色分量各时间序列傅立叶变换后交流分量的最大值ab
mn
的值,α和β分别为第一和第二参数。
[0024]
进一步,所述步骤1中还包括检测采集指尖图像的时间大于预设时间,且控制采集帧频为稳定的常数。
[0025]
进一步,所述步骤1中还包括数据质量检测步骤:
[0026]
步骤1-1:计算指尖图像的红色分量的平均值是否大于170,如果是,保留对应指尖图像,转向步骤1-2;否则,判断是否连续采集五次都是小于170,如果是,提示异常,结束采集。
[0027]
步骤1-2:采集数据3s后,计算指尖图像的红色分量的最大值最小值之间的差值是否小于2,如果是,重新采集,否则,判断指尖图像的红色分量的方差是否小于0.6,如果是,重新采集,否则,判断指尖图像的红色分量与其绿色分量的差值是否小于110,如果是,重新采集数据,否则,数据合格,继续采集。
[0028]
进一步,所述步骤4中还包括生物检测步骤:在时间序列r
mn
(k)的傅里叶变换系数fft_r中查找最大值,其对应的频率i作为红色判定值fft_red,查找范围从预设频率到最大频率,判断红色判定值fft_red值是否在预设合理区间内,如果是,转向步骤5,计算血氧饱和度sp,否则,转向步骤1,重新采集。
[0029]
进一步,所述步骤5中第一和第二参数α和β由机器学习模型训练得到,训练集由指尖图像序列和对应的血氧饱和度组成。
[0030]
采用上述技术方案,本发明的有益效果是:
[0031]
1、本发明基于计算机视觉技术和血氧仪原理,能够通过指尖图像数据准确的测量血氧饱和度;
[0032]
2、本发明可以适用多种采集设备,快速检测血氧饱和度,方便实用。
附图说明
[0033]
下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0034]
图1是数据流向图。
实施例1:
[0035]
一种基于计算机视觉的血氧饱和度测量方法,包括以下步骤:
[0036]
步骤1:采集k帧以上指尖图像,k大于预设值;
[0037]
步骤2:判断指尖图像中是否包含指尖,由以下步骤组成:
[0038]
步骤2-1:提取指尖图像的边缘轮廓;
[0039]
步骤2-2:根据指尖图像的边缘轮廓将指尖图像划分为指尖部分和背景部分;
[0040]
步骤2-3:计算指尖部分和背景部分的像素比,根据预设指尖部分像素数缩放指尖图像,将缩放后的指尖图像裁剪至指尖模板图像大小,得到预处理后的指尖图像;
[0041]
步骤2-4:计算预处理后的指尖图像与指尖模板图像的相关系数;
[0042]
步骤2-5:判断预处理后的指尖图像与指尖模板图像的相关系数是否大于预设相关阈值,如果是,转向步骤3,否则,转向步骤1;
[0043]
步骤3:提取预处理后的指尖图像中指尖部分m
×
n大小的局部图像作为解析图像;
[0044]
步骤4:分割解析图像,由以下步骤组成:
[0045]
步骤4-1:提取各帧解析图像的红色分量rk(m,n)、蓝色分量bk(m,n)和绿色分量gk(m,n),1≤k≤k,1≤m≤m,1≤n≤n;
[0046]
步骤4-2:将各帧解析图像的红色分量rk(m,n)中对应位置像素组成时间序列r
mn
(k),对时间序列r
mn
(k)进行傅立叶变换,dr
mn
为其直流系数,ar
mn
为其交流分量的最大值;将各帧解析图像的蓝色分量bk(m,n)中对应位置像素组成时间序列b
mn
(k),对时间序列b
mn
(k)进行傅立叶变换,db
mn
为其直流系数,ab
mn
为其交流分量的最大值;
[0047]
步骤5:计算血氧饱和度sp:
[0048][0049]
式中,dr为解析图像的红色分量各时间序列傅立叶变换后直流系数dr
mn
的值,ar为解析图像的红色分量各时间序列傅立叶变换后交流分量的最大值ar
mn
的值,db为解析图像的蓝色分量各时间序列傅立叶变换后直流系数db
mn
的值,ab为解析图像的蓝色分量各时间序列傅立叶变换后交流分量的最大值ab
mn
的值,α和β分别为第一和第二参数。
[0050]
进一步,所述步骤1中还包括检测采集指尖图像的时间大于预设时间,且控制采集帧频为稳定的常数。
[0051]
进一步,所述步骤1中还包括数据质量检测步骤:
[0052]
步骤1-1:计算指尖图像的红色分量的平均值是否大于170,如果是,保留对应指尖图像,转向步骤1-2;否则,判断是否连续采集五次都是小于170,如果是,提示异常,结束采集。
[0053]
步骤1-2:采集数据3s后,计算指尖图像的红色分量的最大值最小值之间的差值是否小于2,如果是,重新采集,否则,判断指尖图像的红色分量的方差是否小于0.6,如果是,重新采集,否则,判断指尖图像的红色分量与其绿色分量的差值是否小于110,如果是,重新
采集数据,否则,数据合格,继续采集。
[0054]
进一步,所述步骤4中还包括生物检测步骤:在时间序列r
mn
(k)的傅里叶变换系数fft_r中查找最大值,其对应的频率i作为红色判定值fft_red,查找范围从预设频率到最大频率,判断红色判定值fft_red值是否在预设合理区间内,如果是,转向步骤5,计算血氧饱和度sp,否则,转向步骤1,重新采集。
[0055]
进一步,所述步骤5中第一和第二参数α和β由机器学习模型训练得到,训练集由指尖图像序列和对应的血氧饱和度组成。训练过程如下:
[0056]

收集数据
[0057]
通过采集,获得了约3000样本量的数据集,其中,取字段作为自变量x,'sp'字段作为因变量y
[0058]

数据预处理
[0059]
对数据进行清洗、去重、缺失值填充、离群值检测和处理等操作,使数据更加干净、完整和可靠。同时,对于数据中的变量进行归一化操作,将其转换成同一规格的数据,方便模型的训练和比较。
[0060]

划分测试集和训练集
[0061]
使用sklearn.model_selection的train_test_split方法,按照0.8和0.2的比例,分别划分训练集x_train、测试集x_test、训练集y_train、测试集y_test。即2400条数据用作训练集,600条数据用作测试集。
[0062]

模型训练
[0063]
线性回归模型可以用于解决连续型变量与连续型变量之间的关系,因此选取线性回归模型进行建模。线性回归的基本原理是最小二乘法,通过最小二乘法正规方程,利用损失函数,损失越小线性方程越吻合。这样寻找最优解,得到最优的α和β。
[0064]

模型预测
[0065]
使用训练好的模型对新样本进行预测。
[0066]

模型评估
[0067]
在回归任务中,常见的评估指标有:平均绝对误差(mean absolute error,mae)、均方误差(mean square error,mse)、均方根误差(root mean square error,rmse)和平均绝对百分比误差(mean absolute percentage error,mape),其中用得最为广泛的就是mae和mse。
[0068]
sklearn在实现线性回归时默认采用了r^2指标,r^2越大表示模型越好。
[0069]
针对我们训练的线性回归模型,使用mean_squared_error,mean_absolute_error和r2_score方法分别计算模型的评估值。
[0070]

模型优化
[0071]
模型评估值较差时,说明模型表现不佳,需要进行优化。使用特征工程和数据增强的方式,选择更为相关和重要的特征,同时扩增数据集,增强模型在不同情况下的泛化能力。
[0072]
重新计算优化后模型的评估值,不断优化得到效果好的模型。最终的模型评估值如下:mse约为0.027,mae约为0.093,r^2约为0.741
[0073]

模型存储
[0074]
将优化好的模型保存,并应用于实际预测。
[0075]
本实施例中指尖数据采集时将手指放置在手机后置摄像头上,打开摄像头;使用手机闪光灯保持指尖的亮度,若指尖的亮度不够需要使用外部led的白色光源保持指尖亮度,持续采集指尖数据,保证指尖数据的稳定输出;采集相对固定采样率的数据来避免多种多样的手机型号造成的差距较大的采样频率和不稳定的采集间隔,保证rgb数值在稳定的间隔内采集,得到稳定的三通道的曲线,保证一些配置较差的手机也采集到符合要求采样率的数据,对采集的数据进行解析计算;
[0076]
对数据进行傅立叶变换的时候,将容易干扰的前几秒数据舍去,并使用机器学习模型训练得到的最终公式进行计算,使得多次测试的数值最接近血氧仪数值,能够准确的检测人体血氧情况。
[0077]
本实例中分别采用指尖正常数据、红色鼠标垫数据和手指中途离开数据三种数据计算血氧饱和度。
[0078]
通过指尖计算血氧饱和度时,同时利用血氧仪进行测量另一只手指,经过5s的准备时间,30s的数据采集时间,计算得到血氧饱和度数值;与血氧仪对比,数值相同;
[0079]
通过红色鼠标垫进行测量,经过5s的准备时间,测量时在第10秒显示非手指数据,提示用户重新检测;
[0080]
在测量初期,手指离开手机摄像头会提示正确摆放手指;在测量开始3秒后,手指离开,会立刻提示,手指离开摄像头,测量终止,请点击重试的提醒。

技术特征:
1.一种基于计算机视觉的血氧饱和度测量方法,其特征在于:包括以下步骤:步骤1:采集k帧以上指尖图像,k大于预设值;步骤2:判断指尖图像中是否包含指尖,由以下步骤组成:步骤2-1:提取指尖图像的边缘轮廓;步骤2-2:根据指尖图像的边缘轮廓将指尖图像划分为指尖部分和背景部分;步骤2-3:计算指尖部分和背景部分的像素比,根据预设指尖部分像素数缩放指尖图像,将缩放后的指尖图像裁剪至指尖模板图像大小,得到预处理后的指尖图像;步骤2-4:计算预处理后的指尖图像与指尖模板图像的相关系数;步骤2-5:判断预处理后的指尖图像与指尖模板图像的相关系数是否大于预设相关阈值,如果是,转向步骤3,否则,转向步骤1;步骤3:提取预处理后的指尖图像中指尖部分m
×
n大小的局部图像作为解析图像;步骤4:分割解析图像,由以下步骤组成:步骤4-1:提取各帧解析图像的红色分量r
k
(m,n)、蓝色分量b
k
(m,n)和绿色分量g
k
(m,n),1≤k≤k,1≤m≤m,1≤n≤n;步骤4-2:将各帧解析图像的红色分量r
k
(m,n)中对应位置像素组成时间序列r
mn
(k),对时间序列r
mn
(k)进行傅立叶变换,dr
mn
为其直流系数,ar
mn
为其交流分量的最大值;将各帧解析图像的蓝色分量b
k
(m,n)中对应位置像素组成时间序列b
mn
(k),对时间序列b
mn
(k)进行傅立叶变换,db
mn
为其直流系数,ab
mn
为其交流分量的最大值;步骤5:计算血氧饱和度sp:式中,dr为解析图像的红色分量各时间序列傅立叶变换后直流系数dr
mn
的值,ar为解析图像的红色分量各时间序列傅立叶变换后交流分量的最大值ar
mn
的值,db为解析图像的蓝色分量各时间序列傅立叶变换后直流系数db
mn
的值,ab为解析图像的蓝色分量各时间序列傅立叶变换后交流分量的最大值ab
mn
的值,α和β分别为第一和第二参数。2.根据权利要求1所述的一种基于计算机视觉的血氧饱和度测量方法,其特征在于:所述步骤1中采集指尖图像的时间大于预设时间,且控制采集帧频为稳定的常数。3.根据权利要求1所述的一种基于计算机视觉的血氧饱和度测量方法,其特征在于:所述步骤1中还包括数据质量检测步骤:步骤1-1:计算指尖图像的红色分量的平均值是否大于170,如果是,保留对应指尖图像,转向步骤1-2;否则,判断是否连续采集五次都是小于170,如果是,提示异常,结束采集。步骤1-2:采集数据3s后,计算指尖图像的红色分量的最大值最小值之间的差值是否小于2,如果是,重新采集,否则,判断指尖图像的红色分量的方差是否小于0.6,如果是,重新采集,否则,判断指尖图像的红色分量与其绿色分量的差值是否小于110,如果是,重新采集数据,否则,数据合格,继续采集。4.根据权利要求1所述的一种基于计算机视觉的血氧饱和度测量方法,其特征在于:所述步骤4中还包括生物检测步骤:在时间序列r
mn
(k)的傅里叶变换系数fft_r中查找最大值,其对应的频率i作为红色判
定值fft_red,查找范围从预设频率到最大频率,判断红色判定值fft_red值是否在预设合理区间内,如果是,转向步骤5,计算血氧饱和度sp,否则,转向步骤1,重新采集。5.根据权利要求1所述的一种基于计算机视觉的血氧饱和度测量方法,其特征在于:所述第一和第二参数α和β由机器学习模型训练得到,训练集由指尖图像序列和对应的血氧饱和度组成。

技术总结
本发明公开了一种基于计算机视觉的血氧饱和度测量方法,包括指尖相对固定采样率的数据采集、计算机视觉识别指尖和背景数据、数据质量监测机制、建立图像解析算法、生物检测机制、血氧饱和度计算公式、机器学习模型训练参数步骤。本发明使普通人群能更加便捷和精准地测量血氧,帮助普通人群日常检测血氧状况,帮助一些有基础疾病的人群随时检测血氧状况以便及时就医,有效保证人们对健康状况的监测。有效保证人们对健康状况的监测。有效保证人们对健康状况的监测。


技术研发人员:郭奇 田立军 请求不公布姓名 请求不公布姓名 请求不公布姓名
受保护的技术使用者:金叶天成(北京)科技有限公司
技术研发日:2023.05.12
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐