rt,就当碎碎念了,我也是才调了一个月不到,表示太难调了。
1、千万千万不要拿自己随便录制的那种MP4视频去测rppg信号,现在rppg对摄像头的要求并不是特别特别的高,但对帧的质量要求比较高,现在的视频算法会吧这些帧里的小细节给优化掉。我试着吧心率抬高到145后,计算出的rppg信号,求心率居然只有8,90?如果直接使用电脑相机去测,心率与指夹式的误差几乎只有2上下。这里得注意,别想着手机录一段视频,然后丢电脑上跑,要想这么搞,也得自己写个程序无损吧每一个bitmap给写存起来
2、目前的rppg不管是机器学习,还是代码算法硬扣bvp信号,都对伪影非常敏感,rppg技术说毛糙点,实际上就是比对前后输入帧的变化来求rppg信号的。所以测的时候别乱动,环境变化也尽量小点,这样测出的rppg信号是有较高可信度的,可以测一些更细节的东西,比如我最近正在找rppg测血氧和血压这方面的方法。
3、rppg信号虽然目前深度学习方面标签都是ppg信号,但如果你直接拿去用,比如灌heartpy求心率呼吸率ibi这些的时候,会出现值有一定偏差,至少目前我用heartpy求的心率和rppg自带的whelch求波峰算心率比,大的时候有2,30的偏差,当然whelch求波峰算心率是对的,heartpy那个bpm不知道为什么是错的。
4、目前的数据集和rppg技术相比较。。数据集有点过糙了。如果想学习这么技术,提前学习一下ppg技术,然后买个ppg设备采集ppg信号和实时视频,自己做数据集也是可行的。反正现在的rppg是靠ppg和推测的rppg,以及将rppg转为心率后和ppg的心率算loss的,先自己做一下也是可以的。
5、目前比较经典的监督算法rppg信号提取是phynet,无监督是pos皮肤平面正交,可以先看看这俩,看懂了基本上就没什么大碍了
先写这些吧,我现在已经试着导出rppg信号和心率了,并且吧rppg信号灌入heartpy求一些别的特征值(这一步应该是漏了什么,heartpy和我求出心率不统一,心里痒痒的)。现在heartpy已经简单用c++重写了一部分功能,求出的一些值和python的有一点点点对不太上。。过段时间有空了开源出来吧。rppg灌heartpy出值,尤其心率还是歪的,呼吸率到还好。。。偶尔会过低过高,等后面有时间了可以看看。最近主要精力放在rppg求血压上了,感觉目前几个ppg求血压的公式都是先求abp,再abp拟合sbp和dbp。当然也有一个猛人直接硬靠heartpy输出的值去求血压(BloodPressure_PPG_ML),这个我测了一下,感觉不管是ppg信号,还是rppg信号,求的血压都不准,尤其低压稳定在60上下就很淦。等后面吧测血压这个功能稳定了以后,会提个github开源一下的