2. 工业安全与应急技术安徽省重点实验室, 合肥 230009;
3. 合肥工业大学 软件学院, 合肥 230009
2. Anhui Province Key Laboratory of Industry Safety and Emergency Technology, Hefei 230009, China;
3. School of Software, Hefei University of Technology, Hefei 230009, China
随着生活节奏的加快, 呼吸系统疾病已经成为了严重危害人们身体健康的频发病, 呼吸频率与人体健康状况息息相关, 定期监测呼吸率能够有效预防呼吸系统疾病. 最初, 接触式检测是呼吸率检测的主要方法, 包括阻抗式、心电图、温度传感器[1]、压电传感器[2]等. 现如今, 随着计算机视频图像处理技术的不断迭代和家用摄像机的逐渐普及, 非接触式呼吸率检测成为了未来呼吸率检测领域的发展方向.
基于视频的非接触式呼吸率检测的原理是先选定呼吸运动检测区域, 通过提取检测区域像素点的亮度或者相位变化波形间接得到了呼吸率. 相较于传统的接触式呼吸率检测, 非接触式呼吸率检测成本低廉、不会对检测者造成不适. 不仅适合在普通医院里进行呼吸监测, 未来还可以广泛应用于家庭日常健康监测之中. 基于视频的呼吸率检测方法存在两个关键性问题: 如何准确的选定呼吸运动区域、如何提取出鲁棒性强的呼吸信号.
Alinovi等[3]提出使用亮度值提取呼吸信号, 该方法首先使用欧拉视频放大方法[4, 5]放大呼吸运动, 然后使用帧间差法确定呼吸运动区域, 最终求该区域的平均亮度值检测呼吸率, 但是该方法基于帧差法的呼吸运动区域检测对衣服纹理要求高、抗光照干扰能力差.霍亮等[6]方法使用相位的方法提取呼吸信号, 该方法使用人脸检测结合人体结构确定人体胸腹位置, 然后求得该区域的相位信号检测呼吸率, 上述研究都聚焦于人体坐在椅子上正对摄像机进行呼吸率检测, 限制了呼吸率的检测场景, 不适用于日常的家用健康监测. Siam等[7]提出利用运动特征点[8]亮度值总和提取呼吸信号, 但是仅适用于人体平躺时的呼吸率检测. 刘今越等[9]近期提出一种基于欧拉视频放大方法、光流法和像素亮度序列的提取呼吸信号方法, 该方法可以在不同睡姿下检测呼吸率, 适用范围广. 但是欧拉视频放大不仅会放大呼吸运动, 也会放大图像噪声, 同时基于亮度序列的呼吸信号提取极易受到环境亮度变化的干扰, 都会造成检测精度的降低.
针对上述文献提出的方法中存在的检测场景受限、检测精度低的问题, 本文提出一种利用图像金字塔光流法和多尺度多方向相位信息的视频呼吸率检测方法. 通过图像金字塔光流法获得人体胸腹呼吸运动区域, 有效避免人脸检测对检测呼吸率时人体姿态的限制; 利用复可控金字塔提取多尺度多方向相位信息和幅度信息, 通过幅度信息对相位信息的加权增强了呼吸信号, 并对提取到的信号进行判断, 得到鲁棒性强的呼吸信号; 最终通过峰值检测得到呼吸率.
1 本文方法本文提出了一种基于视频分析的人体呼吸率检测方法.该方法主要实现步骤如下: 1)采集人体呼吸视频, 利用基于图像金字塔LK光流法处理视频连续图像得到运动前景区域[10], 选取其中最大连通区域作为初始呼吸运动区域; 2)利用复可控金字塔将视频的每一帧图像进行多尺度分解, 得到多尺度多方向相位谱和幅度谱[11, 12], 利用幅度谱对相位谱进行加权得到相位-时间信号; 3)对提取到的呼吸信号进行判断: 若信号主峰频率在呼吸信号合理范围内(0.1–0.8 Hz)[6]并且主频能量占比高则使用峰值检测得到呼吸率, 否则回到步骤1重新选取视频连续图像进行后续检测. 整体方法流程框图如图1所示.
1.1 呼吸区域提取
胸腹部的一次起伏记为一次呼吸运动, 光流法是常用的运动检测算法, 刘今越等[9]通过光流法得到呼吸运动区域. 一般光流法需要满足泰勒展开故只能检测小运动[13], 基于图像金字塔LK光流法有效解决了这一问题, 首先对两帧图像使用降采样和低通滤波进行分层处理, 下一层图像是上一层图像的1/4大小, 因为图像分辨率的降低, 原本不满足泰勒展开的大运动在图片分辨率降到一定程度的时候已经成为了小运动, 然后先计算最底层分辨率最低图像的光流作为上一层光流的初始值, 通过递归得到原始图片的光流. 使用图像金字塔光流法提取的呼吸运动光流场如图2所示.
一般情况下, 室内呼吸检测时人体胸腹区域是视频中运动最大的区域, 首先将光流场运动矢量转化为二值化图像; 然后对二值化图像中的各连通域进行标记并且记录大小; 因为人体呼吸时胸腹部起伏具有运动范围大、整体性的特点, 所以最后选取其中最大连通域的最小外接矩形为最终的呼吸运动区域. 在提取呼吸区域时会因人体头部的大幅晃动或者视频采集区域有其他人走过等原因造成呼吸区域提取错误, 故在后续步骤会根据提取的呼吸区域信号对呼吸区域进行判断, 判断结果不合理则选择3 s后的连续图像提取呼吸区域.
1.2 呼吸区域相位信息提取相位信息和亮度信息都是蕴含在图像中的重要信息. Ghiglia等[14]通过交换两幅图像的相位谱证明相位信息更加符合人类视觉感知特性, 具有高稳定性优势. 同时相位信息的变化代表着运动信息, Wadhwa等[12]提出通过放大某一频段相位信号实现视频微小振动放大, 取得了良好效果.
本文使用一维图像的像素分布
$ f(x) = \sum\limits_{w = - \infty }^\infty {{A_w}{{\rm{e}}^{jwx}}} $ | (1) |
其中,
$ {S_w}(x) = {A_w}{{\rm{e}}^{jwx}} $ | (2) |
$ f(x + \delta (t)) = \sum\limits_{w = - \infty }^\infty {{A_w}{{\rm{e}}^{jw(x + \delta (t))}}} $ | (3) |
同样将式(3)分解, 则每个频率
$ {S_w}(x, t) = {A_w}{{\rm{e}}^{jw(x + \delta (t))}} $ | (4) |
容易观察得到:
$ {S_w}(x, t) = {S_w}(x){{\rm{e}}^{jw\delta (t)}} $ | (5) |
由式(5)可得图像在
复可控金字塔是对图像在频域的多分辨率处理, 其实质是通过构建一组不同尺度、不同方向的频域滤波器对原图像进行频域滤波[15]. 将视频每一帧图像进行复可控金字塔分解, 得到一组不同尺度、不同方向的频带, 然后对各频带进行傅里叶逆变换, 返回空间域, 此时得到的像素点值会变成复数, 可以提取出空域幅度和相位. 通过复可控金字塔得到输入图像在多尺度多方向相位谱和幅度谱基带步骤如下所示:
1) 设输入图像的宽度为
$ N{\text{ = }}floor(\log_2{\min(h, w)}) - 2 $ | (6) |
2) 复可控金字塔的带通模板和多方向模板相乘得到一层多方向滤波器[16], 将带通模板缩小为原来大小的1/4, 再与多方向模板相乘就得到了下一层多方向滤波器组, 最终得到
3) 利用
输入复可控滤波器的呼吸区域包含着呼吸运动信号和其他干扰信号, 常见的干扰信号包括其他振动源以及人体轻微晃动带来的相位噪声等, 输入图像经复可控滤波器滤波后得到的幅度谱突出了振动区域的边缘, 利用幅度谱对相位谱进行加权, 可以增强呼吸信号, 提高信号信噪比. 对于第
$ {S_i}(x, y, t) = (G \otimes {A_i}{(x, y, t)^2}) \cdot {S_i}(x, y, t) $ | (7) |
相位差信号可以有效表征运动变化[17]. 对于一个帧数
对于第
$ {P_i}[t] = \frac{1}{{{w_i} \times {h_i}}}\sum\limits_{x = 1}^{{w_i}} {\sum\limits_{y = 1}^{{h_i}} {({S_i}(x, y, t) - {S_i}(x, y, 1))} } $ | (8) |
最后对
$ P[t] = \frac{1}{{N \times M}}\sum\limits_{i = 1}^{N \times M} {{P_i}[t]} $ | (9) |
1.4 信号判断
本文在呼吸运动区域提取中将二值化光流矢量图的最大连通区域作为呼吸区域, 在实际场景中, 却可能因为身体其他部位的大幅度晃动、其他人走过摄像机等原因导致呼吸区域提取错误, 故需要对提取信号的合理性进行判断.
记提取的呼吸信号为
$ {f_{\max}} = \arg \max \left(\int_{ - \infty }^\infty {P[t]{{\rm{e}}^{ - i2\pi ft}}} \right) $ | (10) |
$ \alpha {\text{ = }}\frac{{{A^2}({f_{\max}})}}{{\displaystyle\sum\limits_{i = 1}^n {{A^2}({f_i})} }} $ | (11) |
呼吸率的频带范围在0.1–0.8 Hz, 若提取出的呼吸信号的最大峰值频率
本文使用峰值检测得到呼吸率, Ganfure[18]实验证明使用峰值检测提取呼吸率相较于传统的快速傅里叶变换方法总体上提升了11.61%的准确率. 如果实验视频时长
$ RR{\text{ = }}\frac{K}{N} $ | (12) |
常见的人体呼吸率检测姿态包括正坐、平躺、侧躺、平趴4种, 本节将设计3组对比实验来验证本文在上述4种姿态下的呼吸率检测的准确性和鲁棒性. 实验过程中使用型号为YX-1207的压电传感器记录呼吸波形作为实验真值, 如图4所示. 再与刘今越等[9]方法进行对比, 同时利用手动框选呼吸区域与霍亮等[6]信号处理方式得到呼吸率作为对比. 3组对比实验实验设置分别为: 不同姿态下检测准确率测试、不同衣服厚度测试、不同时长实验视频测试.
2.1 实验设计
实验采用普通摄像机拍摄人体在不同姿态下的呼吸视频, 分辨率为1280×720, 帧率为50 fps. 实验环境为室内, 实验者躺在泡沫垫上, 实验人体姿态包括正坐、平躺、平趴、侧躺4种, 摄像机距离人体约1.2 m, 同时使用笔记本电脑和型号为YX-1207的压电传感器记录呼吸波形以及波形峰值数作为实验真值. 实验场景如图5所示.
实验使用呼吸信号波形的波峰数
$ {M_e} = \frac{1}{N}\sum\limits_{i = 1}^N {\left| {R{P_{\rm{cal}}} - R{P_{\rm{real}}}} \right|} $ | (13) |
其中,
$ R{P_{ac}} = 1 - \frac{1}{N}\sum\limits_{i = 1}^N {\frac{{\left| {R{P_{\rm{cal}}} - R{P_{\rm{real}}}} \right|}}{{R{P_{\rm{real}}}}}} $ | (14) |
第3个评价指标是均方根误差
$ {\textit{RMSE}} = \sqrt {\frac{1}{N}\sum\limits_{i = 1}^N {{{(R{P_{{\rm{cal}}}} - R{P_{\rm{real}}})}^2}} } $ | (15) |
均方根误差
实验以YX-1207压电传感器记录的呼吸波形峰值数作为真值并且复现文献[6]方法以及文献[9]方法进行对比验证. 实验选取实验者在正坐、平躺、侧躺、平趴4种姿态实验视频各11组作为实验数据集, 同时实验数据集中已经剔除在以上方法中出现
本文对人体正坐、平躺、侧躺、平趴4种姿态使用图像金字塔光流法提取出的呼吸运动区域如图6所示.
表1是本文方法、YX-1207压电传感器以及对比方法在实验数据集下的呼吸率检测实验结果. 表2所示是利用上文中3个评价指标对表1中实验数据的分析结果. 表2单元格中的数据单位为:
由表1和表2数据可知本文方法在人体正坐、平躺、侧躺和平趴4种姿态下具有良好的呼吸率检测性能, 相较于文献[6]方法以及文献[9]方法在人体正坐和平躺两种姿态下的呼吸检测平均误差略有提升, 在人体侧躺和平趴两种姿态下的呼吸检测准确率有显著提升. 文献[9]方法通过视频放大、普通光流法和亮度方法提取出呼吸信号, 视频放大会放大噪声, 普通光流法难以提取准确的呼吸区域并且基于亮度信号的呼吸信号提取容易受到光照变化的干扰以及噪声的影响. 文献[6]方法在侧躺和平趴两种姿态下呼吸率检测效果差, 因胸腹部区域运动起伏小, 呼吸信号微弱, 难以被提取. 本文采用图像金字塔光流法的呼吸区域提取能够减弱呼吸运动幅度大小以及噪声对于呼吸区域提取的影响, 基于相位信号的呼吸信号经过空间分解以及相位谱加权后有效去除了呼吸区域的噪声并且增强了呼吸信号. 另外, 本文方法在人体4种姿态下呼吸率检测均方根误差均显著低于其他两种方法.
实验数据集在本文方法检测出的呼吸波峰数和YX-1207压电传感器记录值之间数据关系如图7散点图所示.
4散点图中人体4种姿态下的实验数据集中于45度线周围, 最差的数据误差为2次/min, 表明本文方法在这人体4种姿态下的呼吸率检测与YX-1207压电传感器的记录值误差很小.
2.3 方法稳定性分析本文方法目的在于实现准确性高、鲁棒性强, 能适用于家庭健康监测的呼吸率检测方法, 为了验证本文方法稳定性, 本节将进行本文方法在不同衣服厚度和不同实验时长下的方法稳定性测试, 并与YX-1207压电传感器记录值对比.
使用视觉方法检测呼吸率, 衣服厚度会影响呼吸运动的起伏大小从而影响最终的检测效果. 实验环境如图5所示, 实验者穿上两种不同厚度的衣服(T恤和毛衣)在人体正坐、平躺、侧躺和平趴4种姿态进行测试, 实验以平均准确率
表3中的实验结果可以看出当实验者穿着毛衣时对比穿着T恤检测平均准确率仅有略微降低, 整体保持着高平均检测准确率. 原因在于本文方法使用多尺度多方向空间分解获取了更多的图像信息包括轮廓和细节部分, 基于相位的方法具有抗光照干扰和良好的抗噪性能[11], 同时利用空间分解得到的幅度谱对相位谱进行加权增强了呼吸信号, 提升了提取的信号鲁棒性.
使用视觉方法检测呼吸率, 拍摄视频的时长也会影响呼吸率检测最终的结果[6]. 实验环境如图5所示, 实验者在人体正坐、平躺、侧躺和平趴4种姿态进行测试实验, 拍摄时长分别为60 s、30 s、10 s. 实验以平均准确率
表4中的实验结果表明本文方法检测平均准确率随着实验视频时长的减少而递减, 而总体上的检测平均准确率较好. 原因在于本文方法使用图像金字塔光流法提取呼吸运动区域定位准确并且通过相位信号处理实现了突出呼吸运动信号、增强呼吸信号使得即使较少的数据量也能得到良好的检测结果.
2.4 长时间的呼吸率检测
本文方法目的在于检测人体在短时间(2 min)内的呼吸率, 当检测时间过长时因人体呼吸率的不断变化所以使用峰值检测提取的呼吸率并不能真实反映人体在这一段时间内的呼吸情况. 针对长时间的呼吸率检测每30 s使用本文方法得到一个呼吸率, 最终得到动态的呼吸率. 这种方法可以有效反映出一段时间内受测者的呼吸率变化情况, 可以有助于呼吸暂停综合症[19]等呼吸系统疾病的及时诊断. 实验环境如图5所示, 在人体平躺姿态下进行6 min的实验, 并与YX-1207压电传感器记录值做对比, 实验证明本文方法取得了良好的检测效果, 实验结果如图8所示.
3 结论与展望
本文提出一种多种姿态下的人体呼吸率视觉检测方法. 首先, 利用图像金字塔光流法得到人体呼吸运动胸腹部区域. 然后, 将视频的每一帧图像中呼吸区域输入复可控金字塔进行多尺度多方向空间分解, 得到每一帧图像的多个尺度多个方向的幅度谱和相位谱, 使用幅度谱对相位谱进行加权增强呼吸运动信号, 接下来将每一帧的多个尺度多个方向相位谱进行平均得到初步的呼吸信号. 在此基础上, 如果提取的呼吸信号主频在呼吸信号频段内并且主频能量占比高则使用峰值检测得到最终的呼吸率. 本文以YX-1207压电传感器记录值为参考值, 与两种前沿的呼吸率检测方法进行了对比. 实验结果表明本文方法在人体正坐、平躺、侧躺、平趴4种姿态下均具有良好的准确性和鲁棒性, 拓宽了呼吸率检测的应用场景. 然而, 本文方法仍有改进的空间. 如何减小相机晃动、人体挪动带来的误差, 以及在有其他干扰振动源的情况下准确提取出人体呼吸区域, 将会是未来研究的重点.
[1] |
严旭, 刘洪英, 贾子如, 等. 呼吸频率检测技术研究现状. 北京生物医学工程, 2017, 36(5): 545-549. DOI:10.3969/j.issn.1002-3208.2017.05.020 |
[2] |
彭昊, 彭敏, 赵林, 等. 基于陶瓷压电传感器的睡眠检测系统. 传感器与微系统, 2019, 38(5): 97-99, 103. |
[3] |
Alinovi D, Cattani L, Ferrari G, et al. Spatio-temporal video processing for respiratory rate estimation. IEEE International Symposium on Medical Measurements & Applications. Turin: IEEE, 2015. 12–17.
|
[4] |
Wu HY, Rubinstein M, Shih E, et al. Eulerian video magnification for revealing subtle changes in the world. ACM Transactions on Graphics, 2012, 31(4): 1-8. |
[5] |
戴阳, 郑婷婷, 杨雪. 基于视频放大与盲源分离的非接触式心率检测. 计算机系统应用, 2021, 30(1): 228-234. DOI:10.15888/j.cnki.csa.007739 |
[6] |
霍亮, 杨学志, 李江山, 等. 适用于昼夜环境的呼吸率视频检测. 中国图象图形学报, 2018, 23(1): 144-154. DOI:10.11834/jig.170310 |
[7] |
Siam AI, El-Bahnasawy NA, El Banby GM, et al. Efficient video-based breathing pattern and respiration rate monitoring for remote health monitoring. Journal of the Optical Society of America A, 2020, 37(11): C118-C124. DOI:10.1364/JOSAA.399284 |
[8] |
Shi JB, Tomasi C. Good features to track. 1994 Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 1994. 593–600.
|
[9] |
刘今越, 刘浩, 贾晓辉, 等. 基于视觉的非接触呼吸频率自动检测方法. 仪器仪表学报, 2019, 40(2): 51-58. |
[10] |
Bouguet JY. Pyramidal implementation of the Lucas Kanade feature tracker. Open Source Computer Vision Library, 2003. |
[11] |
宋正伟, 陈鲸, 杨学志, 等. 基于振动相位信号分解的非接触式心率检测. 计算机系统应用, 2021, 30(10): 171-179. DOI:10.15888/j.cnki.csa.008125 |
[12] |
Wadhwa N, Rubinstein M, Durand F, et al. Phase-based video motion processing. ACM Transactions on Graphics, 2013, 32(4): 80. |
[13] |
Han G, Li XF, Sun N, et al. A robust object detection algorithm based on background difference and LK optical flow. 2014 11th International Conference on Fuzzy Systems & Knowledge Discovery. Xiamen: IEEE, 2014. 554–559.
|
[14] |
Ghiglia DC, Pritt MD. Two-dimensional Phase Unwrapping: Theory, Algorithms, and Software. New York: Wiley, 1998.
|
[15] |
Portilla J, Simoncelli EP. A parametric texture model based on joint statistics of complex wavelet coefficients. International Journal of Computer Vision, 2000, 40(1): 49-70. DOI:10.1023/A:1026553619983 |
[16] |
卢晶. 基于非下采样方向可控金字塔变换的图像融合方法研究[硕士学位论文]. 西安: 西安理工大学, 2014.
|
[17] |
杨金钊. 基于相位的视频振动分析技术研究[硕士学位论文]. 合肥: 中国科学技术大学, 2018.
|
[18] |
Ganfure GO. Using video stream for continuous monitoring of breathing rate for general setting. Signal, Image and Video Processing, 2019, 13(7): 1395-1403. DOI:10.1007/s11760-019-01486-5 |
[19] |
孟泽民, 林生生. 基于神经网络的家用型睡眠呼吸暂停综合症监测系统. 计算机系统应用, 2014, 23(3): 220-223, 131. DOI:10.3969/j.issn.1003-3254.2014.03.042 |