引言

本人所在实验室研究组是从事视频医学方向研究,目前主要针对非接触式的视频脉搏波提取技术被称作图像光电容积脉搏波描记法**(image Photoplethysmography ,iPPG)。具体为从人面部或者指尖等皮肤区域提取由于心脏跳动引起的颜色变化信号**BVP(Blood Volume Pulse,血液容积脉搏波)。


这种微弱的颜色变化虽然不能被人眼观察到,但是可以被相机采集再通过图像处理的方法进行放大得到。但是由于非接触式的相机采集会受到的环境干扰要比指夹式的PPG传感器信号质量差很多,如灯光干扰、运动干扰等,获取的信号处理难度要比普通的(Photoplethysmography,PPG信号难上许多。所以如何获取提取高质量的BVP信号的一系列去噪算法就成为了研究重点。根据获取的稳定的BVP信号就可以对许多心血管参数进行估计,如心率、血氧饱和度、心律不齐、房颤甚至是血压
由于研一主要负责组内的安卓App开发工作,虽然大致的处理流程也是了解的,但是还没有认真总结过,下面我就对相关的技术和背景进行介绍,如有疏漏还请大家批评指正。

PPG技术介绍

光电容积脉搏波描记法所使用的PPG技术是指利用光学心率传感器,通过传感器上的发光LED发射特定颜色波长的光入射进人体特定部位的表皮皮肤,再根据光敏传感器接收对应的反射光或入射光来达到检测脉搏信号的目的。

ppg传感器分类

根据接收光的方式可分为:

1.反射式光电心率传感器
2.透射式光电心率传感器


根据入射光线颜色可分为:

1.绿色光源

2.红色光源

3.红外光源

以及在同一块传感器上布置不同颜色的光源用以采集不同的生理信号。


例如根据相关论文测量心率时可以选择绿色光源,提取出的脉搏波信噪比时最高的,这也就是许多运动手环和智能手表在测量心率时,底部会透出绿色光的原因(但是经过我们实测至少是在指尖的iPPG信号提取时,红色通道的信噪比会比绿色通道好很多,这个我后续会做实验进行验证)。
除此以外还可以根据红色通道近红外通道提取的波形,进行血氧饱和度SpO2的计算,因为血液中的氧合血红蛋白浓度和还原血红蛋白浓度在红光和近红外段光谱有着明显不同的吸收比,因此可以直接利用两个通道采集的BVP信号差异,进行SpO2的估计。

PPG传感器原理

为什么皮肤反射的光信号变化可以进行心率的计算呢?

当光照经过皮肤组织然后再反射到接收端的光敏传感器时,获得的光信号强度是会有一定变化的。除去人体肌肉、骨骼、静脉和其他组织等等对光的吸收基本恒定的区域,流经皮肤下的动脉血管对光的吸收或者衰减却是时刻变化的。由于心脏的跳动规律的将血液泵进动脉,动脉的血液容积也是随之改变的,因此会造成光敏传感器端接收的光信号变化,而这种变化就可以间接用来表示血液容积的改变。当把这种光信号的变化转化成对应电信号的改变时,那些吸收不变的区域分为直流DC信号,而由于心跳血液容积变化产生的信号称之为交流AC信号。提取光敏二极管产生的AC信号,进而就可以根据得到的BVP信号进行诸如心率等心血管参数的估计。

心率估计原理

由上图可以看出原始的脉搏波信号是有很多高频噪声基线漂移情况的,所以需要先对原始脉搏进行一系列滤波和降噪处理,转换为相对标准的脉搏信号在进行心率估计的算法。

上图可以看出,滤波有点过度把原始脉搏波的重搏波特征都过滤没了如果在对脉搏波的一些细节特征进行分析时可能就会影响精度。但是在这里的心率计算并不影响,因为心率只关注特定时间段内的波形峰值个数或者频率值。

时域分析-峰值检测

时域分析故名思意就是研究脉搏波的时域特征,通过计算特定时间内的峰值个数进行心率估计。公式如下:

HeartRate =60/duration*No.of peaks //其中duration是特定时间的长度

频域分析-FFT变换

频域分析就是将获得的脉搏波波形数据进行快速傅里叶的变化,对得到的频率freq乘以60就可以得到心率数值。需要注意的是,当脉搏波数组点数长度过短,根据奈奎斯特定理可能导致频率分辨率不足进而导致心率变化区间过大问题,其可以通过在数组后端补0来提升频率分辨率。具体公式如下:

HearRate = freq*60 //freq是没秒钟变化的次数,乘以60是因为心率是每分钟跳动的次数beats per minute


iPPG技术简介

iPPG技术是基于PPG而产生的,其主要的不同是:相较于PPG技术需要的专门的采集传感器,iPPG可以直接利用现如今大量智能手机和监控设备的摄像头获取视频信息提取画面内人体表皮颜色变化(一般为面部或者指尖皮肤),而不需要专用的传感器设备,也无需始终接触才可以进行测量。但是非接触式的代价也是显而易见的,iPPG的信号质量除非视频录制环境特别完美,在真实场景下容易受到光照和用户的运动干扰等影响。因此,也有很多学者针对不同的场景下进行算法优化,提升脉搏波提取的鲁棒性。但是目前为止,真实复杂场景下的脉搏波采集还是没有达到如今商用人脸识别的效果。截至目前为止,考虑到准确性等方面iPPG技术还没有特别好的商业前景。相信等到iPPG的鲁棒性可以达到人脸识别的地步,一定会催生大量的产品形态极大的方便我们生活和健康检测。

基于PPGiPPG的心率检测原理相关推荐

  1. 基于单片机智能心率检测设备设计方案

    点击查看:基于单片机智能心率检测设备设计方案 文件大小:12M 源码说明:带中文注释 开发环境:C编译器 简要概述: 包含keil工程 与原理图 PCB图 及产品说明 产品主要由五个模块构成,分别为S ...

  2. 【毕业设计】基于单片机的心率检测系统 - stm32 物联网 嵌入式

    1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于STM32的血氧心率检测器的设计与实现 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: h ...

  3. 物联网毕设 -- 基于STM32的心率检测

    目录 前言 1 演示视频 一 连线图 1. 原理图 2.功能概括 二 底层代码使用方式 1. 下载程序 2.  查看云平台数据 三 APP使用方式 1. 下载APP 2. 配对蓝牙 四 网盘链接 前言 ...

  4. 基于视频分析的rPPG心率检测

    基于视频分析的rPPG心率检测 YTimo PKU EECS 注:本文内容主要来自于综述文章:Video-Based Heart Rate Measurement: Recent Advances a ...

  5. matlab计算胎心率,基于盲分离的胎心音心率检测算法与实现

    基于盲分离的胎心音心率检测算法与实现 胎心监护是保障胎儿和产妇安全,实现国家优生优育的重要手段,在围产阶段对母体内的胎儿进行监护,可以在了解胎儿发育状况的同时,大大地减少因缺氧.缺血而出现的窘迫,导致 ...

  6. 毫米波雷达心率、呼吸检测原理 TI mmWave Labs —— Driver Vital Signs

    毫米波雷达心率.呼吸检测原理 1. 概述 普通成年人的心跳.呼吸的位移.频率参数如下: Frome Front Frome Back Vital Signs Frequency Amplitude A ...

  7. 连通域最小外接矩形算法原理_基于分割的文本检测算法之PSENet/PAN/DBNet

    1. 文本检测难点 文本内包含文本,艺术字体,任意方向 ,曲线文字 ,多语言,其他环境因素等是文本检测中的难点 2. 分割 问题1: 语义分割模型是对pixel进行分类,所以理论上讲,可以检测不规则的 ...

  8. 基于WIFI信号的呼吸和心率检测(论文总结)

    高频率信号: 频率越高波长越短,饶射(衍射效果)能力越弱,但穿透能力(不变方向)越强,信号穿透会损失很大能量,所以传输距离就可能越近,频率越高在传播过程的损耗越大. 超带宽的理解: 超宽带技术(UWB ...

  9. 基于单片机MAX30100血氧、心率检测系统设计-整套资料

    基于美信MAX30100/MAX30102传感器设计的血氧和心率检测,以单片机STM32F103CBT6为主控核心,其中涉及电源模块.心率血氧模块.蓝牙模块.电源模块是提供所有系统的供电,心率血氧是整 ...

最新文章

  1. 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的...
  2. 直播这把“开鱼刀”能否救蘑菇街于“扑街”?
  3. Django套用现成模板,导入css,js,images等文件【转】
  4. 每日英语:Why is Ye Shiwen’s Swim “Disturbing”?
  5. 机器人抓取方式,值得研究。
  6. 腾达路由器dns服务器未响应,腾达路由器的设置方法
  7. 基于生命周期理论的农业科学数据中心化管理模式
  8. CDN缓存服务器现状
  9. 守护线程 java 1615478655
  10. PAT乙级(1033 旧键盘打字)
  11. java知识点(记录用)
  12. Eclipse 使用
  13. chart控件做实时曲线显示_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(5)
  14. Java教程_软件开发基础
  15. mysql用户管理设置权限_mysql 用户管理和权限设置
  16. xis表格怎么打印_《如何通过虚拟打印机将文件打印成excel文档》 表格怎么打印出来...
  17. DELL G3 3590 重装win10后,显卡不识别,喇叭x号没声解决办法
  18. LCD1602液晶显示屏
  19. Unity3D U3D安装教程
  20. 如何处理httpclient的ssl错误

热门文章

  1. 为什么这项技术一经Google推出问世就迅速成为主流?
  2. SAP WEB IDE local 安装
  3. 新一代 OIer 的快速入门命令行教程
  4. aria2 32bit Android,【各版本整合】32/64位Aria2 Tools - 支持RPC协议 AriaNG(客户端+网页版)...
  5. Slf4j+logback的使用与配置以及详情介绍
  6. gb2312中的英文字母占几个字节?
  7. 做好拼多多的几个小技巧-拼多多出评技巧
  8. 07 不同 vcf 注释结果转 maf
  9. AD16常用命令高效编辑命令
  10. ad16中如何改变栅格颜色