全文共3082字,预计学习时长6分钟

android 使用摄像头测量心率 手机摄像头测心率软件_计算机视觉

有没有想象过:现实生活中笨重的听诊器变成《星际迷航》(Star Trek)里的医用三录仪(tricorders)?那该多棒呀!本文将通过解释医疗保健领域的一项具体发展来帮助你更好地理解这项技术——一项仅通过视频就能知晓患者心率的技术。

通过视频识别心率的技术能够解锁医院内外的一些出色的应用程序:

· 将监控摄像机转换成心脏病早期预警探测器

· 舍弃昂贵的监测设备,降低医院医疗成本

· 在投保前让保险公司了解投保人的实际心血管健康状况,以便自动与120保持联络

· 通过电脑直接读取人们的情绪波动,改善人机互动

大家可以想象,如果看到了一段来自最喜欢的政治家发表的相关视频,其言论匪夷所思又令人发指,而这位政治家的心率始终为零,那么就可以得出这样的结论:要么该政治家是丧尸,要么所见的是一个由deepfake产生的虚假视频。

当下的心率测量技术

目前测量心率的技术通常分为三类:

技术1:电波信号。测量心率最可靠的方法是直接监测心脏的电波活动。和人们身上所有的肌肉一样,心脏是由神经系统所控制的。附着在皮肤表面适当位置的电极可以探测到这些电脉冲的变化。

技术2:机械信号。急诊医生通常通过将手指放在病人手腕上15秒来测量心率。这个工作原理是因为心脏跳动的力量是很强大的,以至于动脉会随着每一次心脏跳动而移动。医生计算每分钟静脉或动脉搏动的次数来给出判断,肌肉收缩是非常强烈的所以手腕和脚踝都能明显地感觉到脉搏。

技术3:光吸收。光体积描记技术(PPG)利用光的反射和吸收特性。不同数量的血液吸收不同数量的光,所以血液容量的变化可以通过光的吸收来跟踪(因此也可以通过心跳来跟踪)。通常情况下,当LED灯照亮皮肤,就会有另一个设备测量有多少光被反射回来。反射光量的变化与心跳频率相对应。

算法技术运用了许多相同的物理现象。

利用算法测量运动心率

软件可以通过观察头部的细微运动来运用机械信号技术。血液从心脏流向头部的运动导致头部周期性地运动,测量运动心率的算法试图测量出在预期内头部循环大致所需的运动频率,然后反向计算并推断出心率(类似于上文中所提到的心率技巧2)。下图显示了该算法的具体流程。

android 使用摄像头测量心率 手机摄像头测心率软件_数据集_02



从[1]中所得的技术原理图。



步骤a:追踪头部和颈部。这是用传统的计算机视觉技术实现的。

步骤b:在1D轴上绘制出头部运动轨迹。笔者发现,垂直方向最能捕捉到由心脏跳动引起的非自愿运动,因为水平方向的运动主要由非自愿摇摆而控制。

步骤c:即使在垂直方向上,除了心率这个因素之外还有很多运动的来源。例如,呼吸和姿势的变换也会移动头部和颈部。为了消除这些噪声源,笔者使用传统的信号技术处理滤波技术,仅在与“正常”心率对应的频率范围内对运动进行目标定位。

步骤d:即使在过滤处理后,也只有部分头部和颈部的垂直运动是由心率引起的。笔者将剩余的混合运动分解为子运动向量,并假设周期运动向量和心率一致。研究人员使用标准的分解技术(主成分分析法,或PCA)来提取运动的主导方向和幅度等数据。请参见下图,以获得此步骤结果的可视化描述。

android 使用摄像头测量心率 手机摄像头测心率软件_android 使用摄像头测量心率_03



两名受试者的前两个特征向量的例子。 人脸上的每个白色箭头表示特征点对该特征向量的贡献的大小和方向。 特征向量分解对于每个受试者都是唯一的。 图片来自[1]。



私人数据集上的结果非常好:18名受试者在70-90秒内的平均心率误差小于4%,平均误差为1.5%。

从颜色角度使用算法测量心率

在2008年视频中的心率推出使用正常的环境光线(使用普通环境光的视频的心率是在2008年引入的)。[2]使用了一个精心控制、仔细收集的数据集,从面部的细微颜色波动中检测心率(类似于上文中所提到的心率技术3)。研究人员通过记录志愿者在精心控制的环境中静止不动时的背景光和头部运动,避免了改变背景光和头部运动的问题。有趣的是,研究人员发现大多数心率信息是由数字RGB颜色空间中的绿色通道携带的,这与绿光比红光更容易被红细胞吸收的事实是一致的。

2014年,[3]对2008年算法进行了改进。研究人员在公共数据集[4]上进行了评估,这意味着结果更具可重复性。数据集在光照和运动方面也有更多的变化,因此结果更接近于真实场景。下面是方法示意图,接下来本文将进行详细介绍。




android 使用摄像头测量心率 手机摄像头测心率软件_android 使用摄像头测量心率_04


来自面部视频的心率测量框架。 来自[3]。


第一步:检测人脸,通过视频帧可靠、稳定地跟踪人脸。稳定跟踪人脸是重要的,因为本文利用人脸区域像素的平均绿色值来估计脉搏。不断变化的人脸区域会导致对脉搏的错误预判。

第二步:控制光照的变化。假设脸部和背景是由相同的光源照亮的,那么如果它们与背景中的颜色同时发生变化,则可以忽略面部的颜色变化。

步骤3:从步骤1开始的面部跟踪处理特定类型的面部运动(例如翻译),但是其他类型的基于绿色分析的面部运动仍然存在问题(例如眨眼或微笑)。为了避免这个问题,笔者简单地排除了包含大量有问题运动的时间段。之所以能做到这一点,是因为测量了一段时间内(比如30秒)的平均心率。研究人员通过观察有颜色通道差异的时间段来识别这些有问题的区域。换句话说,如果脸部平均颜色变化太快太剧烈,研究人员(自然而然地)就会产生怀疑。

第四步:最后,笔者应用滤波器来排除不可信的信号信息。众所周知,心率在每分钟42到240次之间(通常存在于一个更小的范围内),因此,比标准信号处理技术排除的颜色变化更快或更慢。

在[4]公共数据集上,27名受试者使用30秒视窗,其结果是在实际心跳值3.5范围内,平均而言,标准差略低于7。

目标

在这项技术成为主流之前,还有许多挑战需要解决。一个是准确性,另一个是稳健性。这两个问题都可以通过更多的数据来解决,但在现在的医疗情况下收集大型数据集需要高水平的护理程度与之匹配,以便匿名保护患者信息。另一个问题是潜在的偏见:从数据中训练出来的算法适用于任何肤色的人。

总而言之…

从视频中测量心率的技术,有望使得现有的医疗服务去实现该技术,并解锁许多不可能通过人工循环实现的应用程序。本文希望能够揭开这种技术背后的一些算法魔法的神秘面纱。

参考文献

[1]刘建明,“在视频中基于头部运动的脉冲检测方法研究”,《计算机视觉与模式识别学术研讨会》,波特兰,俄勒冈州,2003,第3430–3437页。Doi链接: 10.1109 / CVPR.2013.440

[2] W. Verkruysse, L.O. Svaasand和 J.S. Nelson。“使用环境光进行远程体积成像”(2008),第16卷,第 26期,第21434 – 21445页。Doi链接: 10.1364 / oe.16.021434

[3]李晓霞,陈建杰,赵国明和M. Pietikainen,“基于人脸视频的实时心率测量”(2014),《IEEE计算机视觉与模式识别会议》,哥伦比亚,俄亥俄州,2014,第4264-4271页。Doi链接: 10.1109 / CVPR.2014.543

[4] M. Soleymani, J. Lichtenauer, T. Pun 和 M. Pantic,“一个用于情感识别和隐式标记的多模态数据库 ”(2012),《IEEE情感计算学报》,第3卷,第1期,第42-55页,1 - 3月。Doi链接: 10.1109 / T-AFFC.2011.25



android 使用摄像头测量心率 手机摄像头测心率软件_数据集_05