0引言远程光体积描记(remote photoplethysmograph,rPPG)是一种非接触式的心率测量技术,利用普通摄像头录制环境光照射下的人脸视频,结合生理学/光学原理、图像处理技术,通过计算机分析即可从视频中的人脸皮肤区域提取脉搏信号,并从中估计心率。这项技术的出现对心血管疾病的预防和后期治疗都有重要的意义(马斌和王瑞英,2006)。其原理是环境光照射在皮肤表面会被皮下毛细血管中的血液微量吸收,吸收程度与血液体积成正比(赵彦涛等,2016)。心脏规律性跳动使血管中血液体积发生周期性变化,血液体积变化表现为皮肤表面周期性的肉眼无法辨别的微弱颜色变化。该技术在初生儿心率监控(Klaessens等,2014)、驾驶员心率监控(Zhang等,2017)和健身心率监控(Wang等,2017b)等领域有巨大的应用价值。rPPG提取脉搏信号的基本流程是:1)感兴趣区域(region of interest,ROI)(一般为人脸)的检测与跟踪;2)利用空间池化将感兴趣区域内的视频数据转换为时间序列(也称原始测量信号);3)利用信号处理技术从时间序列中提取脉搏信号。其中,感兴趣区域的检测与跟踪直接影响原始测量信号中噪声信号的种类和大小,从而间接影响脉搏信号提取的质量。因此,检测与跟踪算法的性能对rPPG测量精度影响很大。Zhao等人(2019)的研究表明,为了保证rPPG测量精度,需对检测与跟踪算法提出如下要求:1)跟踪轨迹需要平滑;2)跟踪区域需保持一致;3)跟踪需要具有较强的鲁棒性。在rPPG研究中,常用的目标检测与跟踪算法包括KLT(Kanade-Lucas-Tomasi)(Shi和Tomasi,1994),CSK(circulant structure of tracking-by-detection with kernels)(Henriques等,2012),Staple(sum of template and pixel-wise learners)(Bertinetto等,2016)等。例如,Lin和Lin(2018)利用KLT跟踪以鼻子为中心的一块皮肤区域;van Gastel等人(2015)用CSK跟踪整个脸颊区域。为了确保ROI处于人脸中,一些研究者使用人脸检测器检测每帧图像中的人脸,并从中裁剪出ROI。刘祎等人(2016)首先裁剪人脸框中间60%区域,再定位人眼区域,最后裁剪出人眼下方60%区域作为ROI。此类跟踪算法以物体的矩形框为跟踪目标,难免会囊括一些除人脸皮肤区域之外的背景像素,从而导致跟踪内容不一致。尤其当被测者转头时这种情况更为严重。此外,由于模型相对简单,此类算法的跟踪鲁棒性不佳,常常会因为目标移动过快或与背景颜色相近而跟丢目标。但这类方法计算量小,能够满足实时性要求,尤其适用于rPPG这种需要实时读取心率数值的场合。为了解决跟踪区域一致性问题,基于人脸地标点的跟踪方法被rPPG研究者广泛使用。如Lee等人(2018)通过人脸地标裁剪出去除鼻子嘴巴的脸颊部分作为ROI。Casalino等人(2019)通过4个地标点选定了包含整个人脸的矩形区域作为ROI。在人脸地标方法中,Kazemi和Sullivan(2014)提出的级联回归树的地标方法,由Dlib开源库(C++库,包含各类机器学习算法和工具)在300 W(300 Faces In-the-Wild Challege)数据集上所训练的模型被应用较多(下文统称Dlib)。该方法在应用时,首先通过模型中的平均地标点集和人脸检测器识别到的人脸框初始化第1次预测地标,再通过10个级联器逐级从第1次预测地标更新到最终的预测地标,级联器中每棵树每个节点保存了两个像素位置和阈值,最后的叶子节点保存每个地标点的偏移量。图 1表示了第1、2级联器间的更新过程。 图1 第1、2级联器间的更新过程 The update process between the first and second cascadesFig 1($\mathit{\boldsymbol{S}}$为地标点集,Δ$\mathit{\boldsymbol{S}}$为一棵回归树的偏移量)($\mathit{\boldsymbol{S}} $ is the landmark point set, and Δ$\mathit{\boldsymbol{S}} $ is the offset of a regression tree)此类方法能够很好地保证跟踪过程中始终提取基本相同的皮肤区域,且跟踪鲁棒性较强。但是此类方法存在跟踪轨迹不平滑的问题。当两帧图像的人脸框识别不同、或者某处树节点判定不同,就会取得不同的偏移量,两帧近似图像的预测地标就会有偏差。因此连续帧间地标点会出现无规则抖动。这种抖动问题会给原始测量信号带来额外的跟踪误差,降低脉搏提取精度。针对上述两类方法的缺点,本文提出一种结合KLT和级联回归树模型的人脸地标检测与跟踪算法,以期在保证区域一致性和跟踪鲁棒性的同时,减少地标点抖动,进而提高脉搏测量精度。所提算法的创新点总结如下:1) 提出结合KLT和级联回归树模型的人脸地标检测与跟踪算法;2) 提出基于阈值的地标点稳定判据解决无规则抖动问题;3) 提出旋转矫正算法保证跟踪区域的一致性。1心率测量流程本文所提的非接触式心率测量算法主要分3步:1)通过本文跟踪方法跟踪每帧图像中的感兴趣区域,提取出原始测量信号;2)采用目前rPPG领域应用较多的投影平面正交皮肤(plane-orthogonal-to-skin, POS)算法从皮肤颜色信号中提取出脉搏信号;3)通过快速傅里叶变换,从脉搏信号中估计心率。除非另有说明,本文公式中的向量默认为列向量。1.1输出轨迹平滑的人脸地标点跟踪算法给定相邻两帧图像,Dlib检测的人脸地标存在抖动问题,但地标整体轮廓大致相同。基于此现象,通过阈值判断两帧图像的地标轮廓近似情况,若当前帧地标与上帧地标近似,则当前帧沿用地标,以此解决地标抖动的问题。并且为了加快运算速度以及解决模型应用第1步中,人脸检测器无法检测一些侧脸的问题,人脸框在第1帧用人脸检测器检测,后续帧通过KLT跟踪。最后,通过左右眼地标中点计算旋转角度以旋转图像,摆正人脸,再从感兴趣区域中提取颜色信号。图 2为所提跟踪算法流程图,它包括两个核心步骤:1)稳定人脸地标点;2)旋转图像,矫正人脸。 图2 跟踪方法流程 Tracking method processFig 21.1.1地标稳定令$\mathit{\boldsymbol{S}}=(\mathit{\boldsymbol{l}}^{\rm T}_{1}, \mathit{\boldsymbol{l}}^{\rm T}_{2}, …, \mathit{\boldsymbol{l}}^{\rm T}_{m})^{\rm T}∈{\bf R}^{2×m}$表示图像中预测的地标点,其中$\mathit{\boldsymbol{l}}=(s_{x}, s_{y})∈{\bf R}^{2}$表示地标点, $s_{x}$和$s_{y}$分别是地标点在图像中的列序和行序,$m$为地标点数量。令$\mathit{\boldsymbol{B}}=(\mathit{\boldsymbol{b}}^{\rm T}_{1}, …, \mathit{\boldsymbol{b}}^{\rm T}_{n})^{\rm T}∈{\bf R}^{2×n}$表示图像中KLT跟踪框的顶点坐标,其中$\mathit{\boldsymbol{b}}=(b_{x}, b_{y})∈{\bf R}^{2}$表示顶点坐标,$b_{x}$和$b_{y}$分别是顶点坐标在图像中的列序和行序,$n$为顶点数量。第1帧后,Dlib模型输入的人脸框从$\mathit{\boldsymbol{B}}$裁剪,使人脸框每条边经过$\mathit{\boldsymbol{B}}$相邻两个顶点坐标的中点。将欧氏距离和标准差作为阈值进行稳定性判别。给定第$t-1$帧和第$t$帧的地标点和KLT跟踪框,参数计算为 1 $s e d_{i}=\left\|\boldsymbol{l}_{i}^{(t)}-\boldsymbol{l}_{i}^{(t-1)}\right\|_{2}, i=1, \cdots, m$ 2 ${s_m} = \frac{1}{m}\sum\limits_{i = 1}^m {se{d_i}} $ 3 ${\sigma (sed) = \sqrt {\frac{1}{m}\sum\limits_{i = 1}^m {{{\left({se{d_i} - {s_m}} \right)}^2}} } }$ 4 ${be{d_i} = {{\left\| {\mathit{\boldsymbol{b}}_i^{(t)} - \mathit{\boldsymbol{b}}_i^{(t - 1)}} \right\|}_2}, i = 1, \cdots, n}$ 5 ${{b_m} = \frac{1}{n}\sum\limits_{i = 1}^n b e{d_i}}$ 式中,$sed_{i}$为第$t$帧第$i$个地标点$\mathit{\boldsymbol{l}}^{(t)}_{i}$与第$t-1$帧第$i$个地标点$\mathit{\boldsymbol{l}}^{(t-1)}_{i}$间的欧氏距离,$s_{m}$为所有地标的平均欧氏距离,$σ(sed)$为这些欧氏距离的标准差。$bed_{i}$为第$t$帧第$i$个跟踪框顶点$\mathit{\boldsymbol{b}}^{(t)}_{i}$与第$t-1$帧第$i$个跟踪框顶点$\mathit{\boldsymbol{b}}^{(t-1)}_{i}$间的欧氏距离,$b_{m}$为4个顶点坐标的平均欧氏距离。当人脸处于静止或者正常平移,连续两帧间的地标轮廓基本一致,因此$σ(sed)$都偏小,而静止时的$s_{m}$小于移动时的$s_{m}$;当人脸表情变化或者地标在一些低头等模型训练不佳的场景出现跳变,连续两帧间的地标轮廓变化较大,$σ(sed)$会偏大,而地标跳变的$b_{m}$小于面部姿态变化的$b_{m}$。本文在人脸静止和地标跳变时沿用地标,在正常平移和表情变化时更新地标,阈值选取为2.5和2,计算流程如图 3所示。 图3 地标稳定流程 Landmark stabilization processFig 31.1.2旋转矫正本文跟踪的感兴趣区域设为眼睛下方到嘴巴上方的矩形区域,因该部分毛细血管丰富,信号明显,且有效避免了说话和眨眼带来的影响。通过5、13、29和53号地标点确定ROI,如图 4所示。 图4 跟踪的感兴趣区域 Tracking region of interestFig 4当视频中的人脸因晃动而旋转时,由上述地标点确定的ROI会混入其他皮肤区域,为了获取相同皮肤区域,采取旋转矫正处理,如图 5所示。 图5 旋转矫正 Rotation correctionFig 5戚刚等人(2017)在人脸跟踪时首次引入旋转矫正思想。他们利用KLT框架,首先利用DRMF(discriminative response map fitting)(Asthana等,2013)识别第1帧的66个脸部地标点作为特征点,然后跟踪该特征点集得到仿射变换矩阵,应用在上帧的人脸框,得到当前帧的人脸框,接着利用两帧人脸框的对角线计算旋转角度,最后通过对角线相交中点裁剪一定长宽的矩形区域作为ROI。这种方式存在一些问题。首先,跟踪过程中特征点可能因不满足条件而被舍弃,会影响变换矩阵。其次,跟踪的人脸框无法考虑表情变化,当人脸表情变化明显时无法获取相同ROI。本文所提的基于人脸地标确定的眼睛中点坐标旋转矫正算法,能够在很大程度上保证各种晃动角度的人脸都能矫正水平,确保ROI的一致性。首先计算左右眼6个地标的中点,通过两者计算得出旋转角度,旋转图像摆正人脸,接着将地标映射到旋转图像,再获取ROI,提取其中的颜色信号 6 $\theta = \arctan \left({\frac{{e_y^{\rm{r}} - e_y^{\rm{l}}}}{{e_x^{\rm{r}} - e_x^{\rm{l}}}}} \right)$ 式中,$e_{x}$和$e_{y}$分别为通过地标计算的眼睛中心点在图像中的列序与行序, 上标$\rm l$和$\rm r$表示左眼和右眼。$θ$为旋转角度,值为负数则顺时针旋转图像,值为正则逆时针旋转图像。每个地标点$\mathit{\boldsymbol{l}}=(s_{x}, s_{y})$到旋转图像中的映射点$\mathit{\boldsymbol{l}}′=(s′_{x}, s′_{y})$的映射操作具体为:先减去图像的宽高的一半,计算每个地标点相对图像中心的坐标,再进行旋转映射。旋转采用MATLAB的loose参数,会缩放原图,旋转映射后先乘以缩放比例,再添加旋转后图像的宽高的一半,得到在旋转图像中对应的地标点 7 $\left({\begin{array}{*{20}{l}}{{s_x}}\\{{s_y}}\end{array}} \right) = \left({\begin{array}{*{20}{l}}{{s_x}}\\{{s_y}}\end{array}} \right) - \frac{1}{2}\left({\begin{array}{*{20}{l}}w\\h\end{array}} \right)$ 8 $\left({\begin{array}{*{20}{c}}{s_x^\prime }\\{s_\gamma ^\prime }\end{array}} \right) = \left({\begin{array}{*{20}{l}}{{s_x} \times \cos \theta + {s_y} \times \sin \theta }\\{{s_\gamma } \times \cos \theta - {s_x} \times \sin \theta }\end{array}} \right) \times \alpha + \frac{1}{2}\left({\begin{array}{*{20}{l}}{{w^\prime }}\\{{h^\prime }}\end{array}} \right)$ 式中,$(s′_{x}, s′_{y})$为映射地标点在旋转图像中的列序和行序。$(w, h)$为原图像的宽和高。$(w′, h′)$为旋转图像的宽和高。$α$是缩放比例,为原图对角线与旋转图像中的原图对角线比值。具体计算不做详细介绍,最终结果为当$θ$值为负, 9 $\alpha = \frac{{{h^\prime }}}{{h \times \cos (|\theta |) + w \times \sin (|\theta |)}}$ 当$θ$值为正, 10 $\alpha = \frac{{{w^\prime }}}{{w \times \cos (\theta) + h \times \sin (\theta)}}$ 旋转矫正后提取皮肤颜色信号,令第$t$帧的颜色信号为$\mathit{\boldsymbol{c}}_{t}∈{\bf R}^{3}$, 表示当前ROI中RGB三通道所有像素的均值。令视频总的皮肤颜色信号为$\mathit{\boldsymbol{C}}=(\mathit{\boldsymbol{c}}^{\rm T}_{1}, \mathit{\boldsymbol{c}}^{\rm T}_{2}, …, \mathit{\boldsymbol{c}}^{\rm T}_{L})^{\rm T}∈{\bf R}^{3×L}$, $L$表示视频帧数。1.2脉搏信号提取投影平面正交皮肤(plane-orthogonal-to-skin,POS)方法(Wang等,2017a)基于皮肤反射模型,是一种目前较为准确并被广泛应用的脉搏信号提取算法。皮肤反射模型假定入射光照射后,小部分光被皮肤表面组织吸收,反射光中一部分包含运动干扰,其他则是含有脉搏信号的交流分量。首先对颜色信号$\mathit{\boldsymbol{C}}$进行归一化处理,将每帧的RGB值除以全部帧的对应均值。 11 ${\mathit{\boldsymbol{C}}_n} = \frac{\mathit{\boldsymbol{C}}}{{\mu (\mathit{\boldsymbol{C}})}}$ 式中,$\mathit{\boldsymbol{C}}_{n}$为归一化的皮肤颜色信号,$μ(\mathit{\boldsymbol{C}})$为$\mathit{\boldsymbol{C}}$的行均值。再将其投影到两个正交投影方向,投影方向表示为$\mathit{\boldsymbol{P}}$,计算为 12 $\mathit{\boldsymbol{P}} = \left({\begin{array}{*{20}{c}}0&1&{ - 1}\\{ - 2}&1&1\end{array}} \right)$ 通过$\mathit{\boldsymbol{P}}$将归一化的信号$\mathit{\boldsymbol{C}}_{n}$投影,得到投影向量 13 $\mathit{\boldsymbol{SG}} = \mathit{\boldsymbol{P}} \cdot {\mathit{\boldsymbol{C}}_n} = \left({\begin{array}{*{20}{l}}{\mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_1}}\\{\mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_2}}\end{array}} \right)$ 最后加上标准差项处理,得到脉搏信号 14 $\mathit{\boldsymbol{H}} = \mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_1} + \frac{{\sigma \left({\mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_1}} \right)}}{{\sigma \left({\mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_2}} \right)}} \cdot \mathit{\boldsymbol{S}}{\mathit{\boldsymbol{G}}_2}$ 式中,$\mathit{\boldsymbol{SG}}$为$\mathit{\boldsymbol{C}}_{n}$在正交投影方向上的两条投影,为运动干扰信号和脉搏信号。$σ(\mathit{\boldsymbol{SG}}_{1})$, $σ(\mathit{\boldsymbol{SG}}_{2})$分别为$\mathit{\boldsymbol{SG}}_{1}$, $\mathit{\boldsymbol{SG}}_{2}$的标准差。1.3心率估计根据POS方法估计的脉搏信号$\mathit{\boldsymbol{H}}$计算心率。每隔1 s以10 s的窗口长度更新一次心率。利用快速傅里叶变换(fast Fourier transform, FFT)转换信号的频谱。将一定区域内具有最大功率的频率指定为心率,乘以60将单位从赫兹(Hz)转换为每分钟心跳数(bpm)。2实验与结果2.1对比方法本文方法主要与Dlib对比在rPPG应用的表现性能差异。并且为了测试不同类型算法在rPPG中的表现,还选取了rPPG中常用的3种跟踪算法KLT、CSK以及Staple与Dlib对比。KLT稀疏光流跟踪方法是一种在亮度恒定、短距离移动、空间一致性下应用的经典的对象跟踪算法。CSK跟踪算法遵循跟踪检测范式,核心思想是使用跟踪过程中收集的样本在线训练分类器。与现有的对子窗口进行稀疏采样的跟踪器相比,CSK采用了密集采样策略,该策略可以对图像的所有子窗口进行分类。通过子窗口的循环结构,CSK可以快速准确地解决优化问题,从而提高训练效率。Staple跟踪器首先计算ROI中的方向梯度直方图特征(histogram of oriented gradient, HOG)和颜色直方图特征,然后分别对两者进行卷积,生成两个响应图。通过合并两个响应图获取最终响应图,将其中响应数值最大的位置认定为下帧新ROI的位置。2.2数据集选取了两个公开数据集测试,PURE(pulse rate detection dataset)(Stricker等,2014)和UBFC-RPPG(University Bourgogne Franehe-Comté Remote PhotoPlethysmoGraphy)(Bobbia等,2019), 示例图如图 6所示。 图6 数据集样本 Sample pictures of databaseFig 6((a)PURE; (b)UBFC-RPPG)PURE数据集中包含了10个人(男性8位,女性2位)在镜头前执行不同的头部动作的序列,每个序列包含视频的所有帧的图像。动作描述如表 1所示。 表1 PURE数据集描述 场景 描述 静止 受试者静止直视摄像机,避免头部晃动。 说话 要求受试者讲话,同时避免额外头部运动,模拟视频通话场景。 慢速平移 受试者做平行于相机平面的头部平移。 快速平移 与场景3)相同,只是移动速度提高了一倍。 小幅度旋转 在相机周围35 cm处放置许多目标。受试者被告知要以预定的顺序转动头部查看这些目标。头部旋转角度大约为20°。 中幅度旋转 与场景5)相同,但目标围绕相机放置距离变为70 cm,导致平均头部旋转角度大约为35°。 Description of PURE datasetTable 1该数据集在上述6种不同的动作中共记录了60个1 min的序列。序列由摄像机以30 Hz的帧频捕获,图像分辨率为640×480像素。通过指夹式脉搏血氧仪(pulox CMS50E)以60 Hz的采样率提供脉搏波形和SpO2读数。测试对象坐在相机前面,平均距离为1.1 m,光照条件是日光。UBFC-RPPG数据集使用自定义C++应用程序创建,通过普通摄像头(Logitech C920 HD Pro)以30帧/s的速度进行视频采集,视频分辨率为640×480像素,采用未压缩的8位RGB格式。用CMS50E透射式脉搏血氧仪获取真实PPG数据,包括PPG波形和PPG心率。在录制过程中,被摄对象坐在相机前面(距离相机约1 m),其脸部可见。所有对象均在室内进行录制,这些室内的阳光和室内照明量各不相同。受试对象有42名。2.3评价指标1) 信噪比(signal-to-noise-ratio,SNR)。用于评价估计的脉搏信号的质量,由de Haan和Jeanne(2013)首次提出应用于rPPG评估。计算为 15 $SNR = 10\;\lg \left({\frac{{\sum\limits_{f = 0.8}^5 U (f){S^2}(f)}}{{\sum\limits_{f = 0.8}^5 {(1 - U(} f)){S^2}(f)}}} \right)$ 式中,$S(f)$表示提取的脉搏信号波形的功率谱,$f$表示单位为Hz的频率。$U(f)$表示提取的脉搏信号中心率所占比 16 $\mathit{\boldsymbol{U}}(f) = \left\{ {\begin{array}{*{20}{l}}1&{{f_r} - \frac{\mathit{\pmb{\varpi}} }{2} \le f \le {f_r} + \frac{\mathit{\pmb{\varpi}} }{2}{\rm{ 且 }}}\\{}&{2{f_r} - \frac{\mathit{\pmb{\varpi}} }{2} \le f \le 2{f_r} + \frac{\mathit{\pmb{\varpi}} }{2}}\\0&{{\rm{ 其他 }}}\end{array}} \right.$ 式中,$f_{r}$表示根据脉搏血氧仪或心电图(electrocardiogram, ECG)测量设备计算的真实心率,$\mathit{\pmb{\varpi}}$表示频谱窗口长度。在此定义中,本文将主频的二次谐波作为有效信号。这是基于以下观察结果:在提取脉冲的大多数功率谱中都可以看到二次谐波。分子中包含二次谐波会更准确。2) 平均绝对误差(mean absolute error, MAE)和均方根误差(root mean square error, RMSE)。用于对比估计心率$HR(t)$和数据集给出的真实心率$HR_{r}(t)$,计算为 17 $MAE = \frac{1}{N}\sum\limits_{t = 1}^N {\left| {HR(t) - H{R_r}(t)} \right|} $ 18 $RMSE = \sqrt {\frac{1}{N}\sum\limits_{t = 1}^N {{{\left({HR(t) - H{R_r}(t)} \right)}^2}} } $ 2.4结果分析实验中几种算法初始化跟踪区域相同,如1.1.2节中图 3所示区域,脉搏提取算法与心率估计步骤均一致。由提取的脉搏信号计算出的SNR如表 2和表 3所示,表 2反映了UBFC-RPPG数据集测量结果,表 3反映了PURE数据集每种类型以及总体测量结果。 表2 UBFC-RPPG数据集测量结果 算法 SNR/dB MAE /bpm RMSE /bpm KLT 4.782 4 2.486 5 4.581 4 CSK 4.155 3.465 5 6.631 8 Staple 4.062 5 3.398 6.783 5 Dlib 4.142 4 3.0132 6.595 2 本文(稳定地标) 4.522 9 3.252 1 5.936 5 本文(旋转矫正) 4.565 4 3.304 7 5.949 9 Accuracy results on UBFC-RPPG datasetTable 2 加粗字体为每列最优值。表 2表明,在UBFC-RPPG数据集中,KLT的表现最佳,除此之外,本文方法下的rPPG测量结果与其他方法相比基本有较好的表现。表 3表明,在PURE数据集中,本文方法下的rPPG测量结果在全部对象里表现较好。稳定地标后SNR最高,MAE和RMSE也优于其他算法,并且两者在旋转矫正后更低。对于中幅度转头场景(medium rotation),因为人脸晃动程度大,旋转矫正后优化明显。Dlib综合表现则优于其他3种算法。 表3 PURE数据集测量结果 场景 指标 算法 KLT CSK Staple Dlib 本文(稳定地标) 本文(旋转矫正) 静止 SNR/dB 13.006 8 13.214 4 13.198 9 13.062 2 13.452 3 13.447 6 MAE/bpm 1.687 1 1.653 7 1.823 9 1.814 7 1.832 8 1.832 8 RMSE/bpm 2.178 5 2.131 7 2.718 8 2.710 2 2.739 1 2.736 1 说话 SNR/dB 7.031 6 6.732 6 6.205 6.257 5 6.537 6.497 6 MAE/bpm 3.805 3.742 7 4.657 9 4.347 3 3.984 3 3.985 5 RMSE/ bpm 7.054 5 6.256 5 8.235 3 6.615 6 5.769 6 5.758 5 慢速平移 SNR/dB 10.697 3 10.923 1 9.731 7 11.268 8 10.512 10.431 1 MAE/bpm 1.695 3 1.597 6 1.618 7 1.629 5 1.631 7 1.624 RMSE/bpm 2.230 9 2.103 4 2.106 9 2.138 6 2.132 9 2.120 4 快速平移 SNR/dB 9.368 4 9.483 5 8.736 4 10.497 9 10.308 3 10.239 1 MAE/bpm 2.318 1 1.842 8 1.774 5 1.824 2 1.837 3 1.850 3 RMSE/bpm 3.232 8 2.467 2 2.333 6 2.444 4 2.423 2 2.469 8 小幅度旋转 SNR/dB 10.436 1 9.489 3 8.259 1 11.207 9 11.415 11.295 8 MAE/bpm 1.480 3 1.561 2 1.641 5 1.459 1 1.473 4 1.474 RMSE/bpm 1.942 8 2.068 2.329 2 1.910 1 1.943 2 1.925 2 中幅度旋转 SNR/dB 8.436 5 7.861 7.090 2 10.358 2 10.472 9 10.527 1 MAE/bpm 1.932 2.224 3 2.289 2 1.727 8 1.779 1.615 RMSE/ bpm 3.540 8 3.863 6 4.139 3 2.950 8 3.047 9 2.070 4 全部 SNR/dB 9.876 9 9.666 2 8.915 4 10.513 7 10.515 9 10.472 6 MAE/bpm 2.125 2.075 9 2.262 7 2.096 2 2.057 6 2.031 RMSE/bpm 3.300 8 3.095 7 3.566 3.069 2 2.962 5 2.797 4 Accuracy results on PURE datasetTable 3 加粗字体为每行最优值。如引言中所述,适合rPPG应用的跟踪方法需要在目标静止和运动时准确跟踪给定皮肤区域,即满足两个条件,一是跟踪轨迹平滑,二是跟踪区域相同。2.4.1跟踪轨迹分析跟踪轨迹反映了跟踪算法的灵敏程度,在rPPG应用中,理想的状态是人脸静止时跟踪框保持稳定静止,运动时跟踪框能实时更新。针对静止和运动两种情况,分别分析对比本文方法和Dlib的跟踪框轨迹波动。跟踪框轨迹波动如图 7和图 8,其横坐标表示时间(以视频帧计),纵坐标表示跟踪框的左上角坐标$x$, $y$以及宽和高。图 7和图 8反映出Dlib应用于静止目标和运动目标时,跟踪轨迹过于灵敏,即跟踪框存在严重的抖动问题,无法保持稳定,且该抖动是无规则的。本文方法稳定地标后与Dlib相比,有效提高了跟踪框的稳定性,跟踪轨迹更加平滑。 图7 本文方法稳定地标后与Dlib在静止目标的对比 Comparison of the method in this paper with the stable landmark and Dlib at stationary targetFig 7((a)Dlib;(b)stable landmark ours) 图8 本文方法稳定地标后与Dlib在运动目标的对比 Comparison of the method in this paper with the stable target and Dlib in moving targetFig 8((a)Dlib;(b)stable landmark ours) 图 9显示了本文方法稳定地标后与Dlib在运动和静止两种情景中从ROI提取的绿色通道原始测量信号对比,均为两种情景中第1 300帧到第1 500帧的绿色通道变化。 图9 绿色通道信号对比 Green channel signal comparisonFig 9((a)static (b)motion) 由于Dlib无规则的抖动,跟踪框引入额外的皮肤区域,导致在静止和运动中都导入了诸多噪声信号,因此在绿色通道轨迹上存在许多细小的波动。本文方法稳定地标后与Dlib相比,跟踪框跟踪轨迹有效去除抖动,基本不引入额外皮肤区域,因此获取的皮肤颜色信号更好,绿色通道轨迹更加平滑。2.4.2跟踪区域分析运动情景非常考验跟踪算法的性能,因为在运动中跟踪ROI极有可能跟踪到背景或其他皮肤区域。跟踪区域覆盖背景时,假设背景和人脸颜色差异较大,就会掩盖人脸中的颜色信号,若背景是变化的,将会引入更多的噪声信号,增加脉搏信号提取难度,降低心率测量精度。人脸运动大致可分为转头和左右旋转。图 10为受试者左右中幅度转头的一个时间段中引入了背景的跟踪结果其横坐标为时间(以视频帧计),纵坐标表示像素强度。其中Dlib全程跟踪到人脸,KLT有少许跟踪到背景,两者绿色通道能观察出较明显的脉搏信号,CSK和Staple背景引入较多,由于背景颜色差异较大使得绿色通道数值变化剧烈并且掩盖了脉搏信号,使其难以辨别。本文方法稳定地标后与Dlib相比,两者跟踪框基本重合,绿色通道轨迹相似,均能明显看出脉搏波动。 图10 跟踪引入背景 Track introduction backgroundFig 10当受试者头部发生左右旋转时,由地标选取的跟踪区域通常会混入其他皮肤区域,从而引入噪声,使得颜色信号波动剧烈。假设跟踪区域覆盖了人眼和嘴巴等颜色差异较大的皮肤区域,变化则更加剧烈。图 11表示了UBFC-RPPG中某个对象的初始化跟踪区域,以及人脸晃动时本文方法和Dlib的跟踪区域对比。图 11(b)中绿框为Dlib的跟踪框,黑框为本文稳定地标后的跟踪框。 图11 人脸晃动时跟踪区域对比 Tracking area comparison when face shakingFig 11((a) initial tracking area; (b) face shaking; (c) rotation correction)从图 11可以看出,当受试者晃动人脸时,单纯由地标确定跟踪区域会混入其他皮肤区域,与初始跟踪区域产生区别。本文旋转矫正后能保证跟踪区域与初始跟踪区域相同,有效提高跟踪准确性。该晃动期间的绿色通道轨迹如图 12, 其横坐标表示时间(以视频帧计),纵坐标表示像素强度。 图12 人脸晃动期间的绿色通道数值对比 Comparison of green channels values during face shakingFig 12((a) Dlib; (b) ours; (c) rotation correction)图 12虚线框中受试者处于晃动瞬间。从图 2中可以看出,前两种在晃动瞬间绿色通道数值波动很大,而经过旋转矫正后,有效降低了晃动时的颜色波动,整体波形轨迹比Dlib和稳定地标后平稳,稳定性明显提高。实验表现可总结如下:在静止和运动中,Dlib都产生明显的波动,即地标点无规律的抖动,在目标完全静止时表现得十分明显,这个问题导致在rPPG测量时引入噪声信号。当对象转头时,目标跟踪算法跟踪的ROI大多会超出脸部范围,引入背景,假设背景颜色差异较大,将会引入大量噪声,掩盖皮肤颜色信号中的脉搏信号。虽然Dlib存在地标抖动问题,但其跟踪区域准确性强,能确保跟踪区域处于人脸,不引入背景。本文方法在Dlib的基础上,基于阈值方法稳定地标,有效解决了抖动的问题,与Dlib相比跟踪框轨迹平滑,获取的信号噪声少。并且对于人脸晃动频繁的受测对象,旋转矫正步骤优化效果明显,有效降低人脸晃动瞬间的颜色信号突变。3结论本文基于级联回归树的人脸地标点跟踪算法,提出了一种适用于rPPG技术的ROI跟踪方法。首先基于阈值方法判断连续两帧间地标近似情况,在近似两帧沿用前一帧地标解决地标抖动问题。其次针对人脸晃动,通过左右眼地标中点计算角度旋转矫正晃动的人脸,以便提取相同皮肤区域。本文方法在rPPG领域公开数据集UBFC-RPPG和PURE中进行了测试。与Dlib相比,本文方法有效解决其地标抖动问题,且克服人脸晃动带来的干扰,在静止和运动目标中均表现了较高的准确性和稳定性,跟踪轨迹更加平滑且测量精度有较好的改善,在一些场景中也优于对比的多种跟踪算法。在实际使用中的不足之处在于当人脸轻微变化时会沿用地标使得跟踪框静止,这有可能会影响到rPPG原始测量信号的精度。原因是人脸轻微变化时,两帧间地标全局变化程度与无规则抖动类似。在下一步研究中,拟按人脸各区域对地标点进行分类,分区域进行稳定性判定,提高本文方法在人脸轻微变化场景下的适用性。此外,将阈值参数更换为方差和差异系数也是一种可行方案。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读