webcam-pulse-detector摄像头测量脉搏,心率(实验记录)

webcam-pulse-detector摄像头测量脉搏,心率(实验记录)

 记录一下实验过程,以免人老了忘记

 项目介绍

此项目使用 OpenCV 查找用户面部的位置,然后隔离额头区域。

通过从这个隔离出的额头区域收集数据,并随着时间推移来估计用户的心率。测量数据的方法是测量额头区域的平均光学强度——仅提取图像的绿色通道(因为绿色通道具有最强的心率信号)(可能有更好的颜色混合比,但蓝色通道往往非常嘈杂)。

原理是利用(氧)血红蛋白的光学吸收特性,可以通过这种方法估算出生理数据,有兴趣的可以查看项目中提到的论文

文中提到目前测量心率脉搏等信息最简单易用的方法——PPG的原理是血液比周围组织更容易吸收光线,因此血容量的变化会相应地影响透射率或反射率。所以作者认为在正常环境光下可以远程测量PPG信息,也就是这个项目的方法。

 项目地址

github项目:GitHub - thearn/webcam-pulse-detector: A python application that detects and highlights the heart-rate of an individual (using only their own webcam) in real-time.

在github项目中,该项目的作者准备了python源代码文件和可执行文件,目前可执行文件只有win环境和mac环境下,linux环境则需要跑源代码,不过二者执行都比较简单

使用源码

 在github网站上下载源码,解压后使用编译器打开

 需要配置的环境较低,在此不过多赘述(使用的是anaconda的虚拟环境)

有什么包没安装就无脑pip install,如果下载很慢就进行换源操作(如下面这行指令,把numpy换成没安装的包)

pip install numpy -i https://pypi.tuna.tsinghua.edu.***/simple

 安装好环境后根据作者的提示执行代码,如果你使用的是本地的摄像头,如笔记本摄像头或USB摄像头

python get_pulse.py

 在此处我遇到了一个错误

这个错误应该是因为文件路径中有中文导致,但在搜索资料的过程中发现也有人是因为配置文件的路径,找到提示中的processors_noopenmdao.py,原文中为相对路径,将其修改为绝对路径

 解决这个简单的问题后就能执行代码,默认调用的是camara0,也就是笔记本内置摄像头。运行后会打开摄像头并显示窗口进行人脸检测,如果人脸对准后按下S键就能锁定(这个项目测心率需要锁定分割额头),开始测试以后按下D能够显示对应的波形图

使用可执行文件

可以直接下载windows和mac版本(本文在win10下测试)

下载解压后,可以直接运行get_pulse.exe(注意,路径中还是不能有中文)

 如果有其他需求可以看README.txt的提示,有更细致的指令


使用windos下的串口
      get_pulse.exe --serial ***5 --baud 9600

使用mac下的串口
      open -n ./get_pulse.app --args -serial /dev/tty.usbmodemfa131

windows下的UDP
      get_pulse.exe --udp 192.168.1.100:5050

MAC下的UDP
      open -n ./get_pulse.app --args --udp 192.168.1.100:5050

开始执行后与源码执行是一样的,按S确定人脸位置,按D查看波形,不过可执行程序的人脸识别似乎比源码快点 

效果

 人脸框锁定后就算人离开了或者有遮挡物它还是继续测量,不过这个方面可以通过自己修改代码来优化。

但我与真实仪器对比后,由于检测区域的局限性,如果在十分理想的状态下倒是能与仪器数值相近,但大多数情况都相差较多。

转载请说明出处内容投诉
CSS教程_站长资源网 » webcam-pulse-detector摄像头测量脉搏,心率(实验记录)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买