医院监测应用中毛毯遮挡下的患者动作捕捉:人体姿态估计
1. 引言
在医院的众多诊断流程中,人体运动分析是一项重要的技术。像步态分析和协调运动功能评估这类场景,患者可自由活动;但对于睡眠相关运动障碍诊断以及癫痫发作时的运动监测,患者则需住院长期观察。在专业监测病房,工作人员会通过视觉评估住院患者的动作,以检测关键事件,并分析诸如侧化、运动幅度或病理模式出现情况等参数。不过,患者运动分析主观性较强,为此一些团队开发了半自动方法来实现量化分析。然而,此前的工作都未尝试进行全身关节回归,而这对于自动、客观地量化患者运动是必不可少的。
本文提出了一种全新的系统,它能完全基于视觉数据,自动且持续地估计住院患者的姿态。为捕捉患者在病床上的受限身体动作,构建了一个大型运动数据库,该数据库整合了动作捕捉系统和深度传感器的同步数据。采用深度卷积神经网络和循环网络的新颖组合,以平滑的时间方式来判别性地预测患者的身体姿态。此外,还在数据集中添加了毛毯遮挡序列,结果表明该方法即使在有毛毯遮挡的情况下,也能学习推断身体姿态。具体贡献如下:
1. 提出一种基于深度学习的新颖框架,用于从深度视频实时回归 3D 人体姿态。
2. 收集了大量医院病床上的运动序列数据集,包含同步的深度视频和动作捕捉数据。
3. 开发了一种用模拟毛毯模型对医院病床帧进行合成遮挡的方法。
4. 将新方法与基于随机森林的先进姿态估计方法进行了对比评估。
2. 相关工作
以往针对医院病床上的人体姿态估计,主要是作为分类任务来处理,仅能估计大致姿态或患者状态。例如,Li 等人使用 Kinect 传感器 SDK 来获取患者姿态并估计相应状态,但要求测试对象不盖毛毯,这在实际医院场景中的实用性大打折扣。Yu 等人开发了提取躯干和头部位置的方法,用于测量呼吸运动和区分睡眠姿势,但未尝试推断精确的身体关节位置,且毛毯遮挡会降低躯干检测的准确性。
此前针对卧床患者姿态估计的研究较少,不过深度传感器的普及推动了无背景 3D 人体姿态估计的研究。Shotton 等人和 Girshick 等人在大型非公开合成深度帧数据集上训练随机森林,以捕捉多样的人体形状和姿态。与之不同的是,本文采用专门为评估病床上人体姿态估计方法而创建的真实数据集,并对其进行毛毯遮挡增强,且计划将数据集公开。近年来,深度学习也进入了人体姿态估计领域。Belagiannis 等人使用卷积神经网络(CNN)并设计了鲁棒损失函数来回归 RGB 图像中的 2D 关节位置,但这种一次性估计未利用时间一致性。Fragkiadaki 等人则依靠循环神经网络(RNN)来改进 RGB 视频中的姿态预测,不过他们将任务设定为每个关节的分类问题,导致在 12×12 网格上的检测较为粗糙。而本文方法能在连续域中产生准确的 3D 关节预测,还能处理医院监测场景中出现的毛毯遮挡问题。
3. 方法
3.1 卷积神经网络
卷积神经网络用于实现 3D 一次性姿态估计。该网络直接预测动作捕捉系统提供的所有 14 个关节位置 y。在随机梯度下降训练过程中,采用 L2 目标函数。错误的关节预测 ˆy 会产生梯度 g = 2 · (ˆy −y),通过反向传播来优化网络权重。实践证明,由三个卷积层和两个全连接层组成的架构在该任务中表现出色。各层配置为 [9 - 9 - 64]/[3 - 3 - 128]/[3 - 3 - 128]/[13 - 5 - 1024]/[1024 - 42](高度 - 宽度 - 通道数)。每次卷积后应用 [2x2] 最大池化操作。为使网络具有更好的泛化能力,在训练时,于第二层和第五层之前使用丢弃函数,以 50% 的概率随机关闭特征。每个学习层之后使用修正线性单元,以实现输入和输出的非线性映射。CNN 总共包含 880 万个可训练权重。收敛后,将第四层的 1024 维特征传递给循环神经网络,以提高关节估计的时间一致性。
3.2 循环神经网络
卷积神经网络虽能学习和利用数据的局部空间相关性,但无法学习时间依赖性。而循环神经网络专门用于处理时间序列数据,可与卷积神经网络形成互补。其循环连接通过传播状态向量来捕捉长距离依赖关系。本文的 RNN 采用长短期记忆(LSTM)方式构建,实现过程与 Graves 等人描述的方法相近。使用 CNN 的 1024 维输入向量,训练 128 个隐藏 LSTM 单元,以预测由 14 个关节的 x、y 和 z 坐标组成的 42 维输出。RNN 的可训练权重约为 59.6 万个。训练时,时间反向传播限制在 20 帧以内。
以下是数据生成和训练流程的 mermaid 流程图:
graph LR
A[Motion capture] --> B[Ground truth joint positions y]
C[Depth sensor] --> D[Frame 1]
C --> E[Frame 2]
C --> F[Frame 3]
C --> G[Frame 4]
C --> H[Frame N]
D --> I[CNN]
E --> I
F --> I
G --> I
H --> I
I --> J[RNN]
B --> I
J --> K[ˆy1]
J --> L[ˆy2]
J --> M[ˆy3]
J --> N[ˆy4]
J --> O[ˆyN]
3.3 患者动作捕捉数据集
数据集包含平衡的简单序列(无遮挡、小幅度运动)和困难序列(高遮挡、大幅度极端运动),并带有真实姿态信息。真实姿态由五个校准后的动作捕捉相机提供,这些相机跟踪每个受试者身上的 14 个刚性目标,从而推断出 14 个身体关节(头部、颈部、肩部、肘部、手腕、臀部、膝盖和脚踝)的位置。
测试对象包括 5 名女性和 5 名男性,每人进行 10 个时长为 1 分钟的序列活动,具体活动如下:
1. 上下床
2. 在水平/抬高的床上睡觉
3. 有/无杂物时进食
4. 使用物品
5. 阅读
6. 阵挛运动
7. 校准序列
在阵挛运动序列中,受试者需进行手臂和腿部的快速抽搐动作,模拟癫痫发作阵挛期的动作。使用校准并同步的 Kinect 传感器,以 30 fps 的帧率捕捉深度视频,数据集总计包含 180,000 个视频帧。训练时,选取仅包含病床的边界框,并将所有帧从固定于病床中心 2 米距离、70° 倾斜角度的一致相机视角进行渲染,以减少对不同医院环境的适应性问题。
3.4 毛毯模拟
由于标准动作捕捉技术要求物理标记可见,无法跟踪毛毯下的身体。因此,先在不盖毛毯的情况下捕捉每个受试者的真实数据,再借助物理模拟生成有虚拟毛毯遮挡的深度图。将每个 RGB - D 帧作为移动模拟毛毯的碰撞体,毛毯用规则三角形网格表示。序列开始时,毛毯置于病床上方约 2 米处,每帧中重力作用于毛毯顶点。使用 OpenVDB 实现的稀疏有符号距离函数表示深度帧来处理碰撞。为优化物理能量,采用基于投影的先进动力学求解器。优化中使用的几何能量包括毛毯的三角形面积保持、三角形应变和边缘弯曲约束,以及碰撞的接近约束,从而使模拟毛毯呈现出逼真的弯曲和折叠效果。
4. 实验
为验证方法的有效性,将其与 Girshick 等人提出的回归森林(RF)方法进行对比。该方法使用 RF 从深度数据估计身体姿态。训练阶段,从深度图像中随机选取像素作为训练样本,存储每个样本 3D 位置到关节位置的相对偏移向量集合。在每个分支节点,评估深度差异特征并与阈值比较,以此决定样本传递到左分支还是右分支。阈值和深度差异特征参数会联合优化,以在分支节点提供最大信息增益。当达到最大深度或信息增益过低时,树停止生长。在叶子节点,将偏移向量集合聚类并存储为投票向量。测试时,通过均值漂移组合所有像素的投票来推断身体关节位置。不过,在超过 10 万张图像上训练树集成的时间过长,原作者使用 1000 核计算集群来实现先进结果。为避免此要求,本文每棵树随机采样 10,000 帧。通过评估单棵树使用 20,000 和 50,000 帧的增益,发现准确率很快达到饱和,因此使用 10,000 个样本既能保证足够性能,又能将训练时间从数天缩短至数小时。
4.1 在患者动作捕捉数据集上的对比
固定训练集和测试集,使用 4 名女性和 4 名男性受试者的所有序列进行训练,剩余 1 名女性和 1 名男性受试者的序列用于测试。通过网格搜索确定 CNN 的最佳批量大小 B = 50、学习率 η = 3 · 10−2,RNN 的学习率 η = 10−4。回归森林在相同分布的训练数据上进行训练,每棵树随机采样 10,000 张图像。训练 5 棵最大深度为 15 的树后,RF 性能趋于饱和。
对比 CNN、RNN 和 RF 方法的平均关节误差(见表 1)以及最坏情况准确率(即所有关节误差满足最大距离约束 D 的帧的百分比)。RNN 的平均误差最低,为 12.25 cm;CNN 的异常值估计较少,最坏情况准确率曲线表现最佳。测试时,CNN 和 RNN 组合模块推断关节位置需 8.87 ms(CNN:1.65 ms,RNN:7.25 ms),而 RF 算法每帧需 36.77 ms。
| 序列 | CNN | RNN | RF |
|---|---|---|---|
| 所有 | 12.69 | 12.25 | 28.10 |
| 遮挡 | 9.05 | 9.23 | 21.30 |
| 遮挡 + r | 8.61 | 7.56 | 19.80 |
4.2 毛毯遮挡实验
在数据集的 10,000 帧子集上模拟毛毯遮挡,该子集选自阵挛运动序列,因其与临床应用相关性高,便于对比一次性方法(CNN 和 RF)和时间序列方法(RNN)在遮挡下的重复运动表现。
三种方法在新的混合数据集上进行训练,该数据集包含其他未遮挡序列和新的遮挡序列。对于 RF,增加了一棵在遮挡序列上训练的第 6 棵树。图 4 展示了在遮挡测试集上各关节的平均误差对比。对于臀部和腿部,RF 误差超过 20 cm,表现不如 CNN 和 RNN(除左脚外,误差均低于 10 cm)。不过,回归森林能很好地识别头部和上半身关节,在头部、右肩和右手的识别上甚至优于最佳方法(RNN)。
从表 1 可以看出,在遮挡测试集上,重新在毛毯遮挡序列上训练模型(+r)后,误差均有所降低。未重新训练时,CNN 在遮挡序列上的误差最低,为 9.05 cm;重新训练后,RNN 对遮挡关节的估计效果最佳,误差降至 7.56 cm。图 5 展示了 RNN 在未遮挡和遮挡测试帧上的预测结果。
综上所述,本文提出的基于 CNN - RNN 的方法在医院病床上的人体姿态估计任务中表现出色,尤其是在处理毛毯遮挡问题上具有明显优势,为医院的患者监测提供了更有效的技术手段。
医院监测应用中毛毯遮挡下的患者动作捕捉:人体姿态估计
5. 结论
本文呈现了一个独特的医院场景深度序列数据集,其中包含真实的关节位置数据。同时,提出了一种针对住院患者 3D 姿态估计的新方案。通过在 CNN 特征上训练循环神经网络,无论是在原始数据集还是添加了毛毯遮挡的增强版本数据集上,平均误差都有所降低。
值得注意的是,RNN 在训练过程中接触毛毯遮挡序列后受益显著,而 CNN 的提升幅度相对较小。这表明时间信息有助于确定那些虽未直接可见,但与毛毯有相互作用的肢体位置。回归森林在识别手臂和头部关节方面表现良好,但在处理靠近床面的被遮挡的臀部和腿部关节时,由于对比度较低,效果不佳。而本文提出的 CNN - RNN 组合模型的端到端特征学习能力,使其能更好地适应被遮挡肢体的低对比度情况,在现实环境中的姿态估计任务中具有很高的价值。
以下是对不同方法在不同场景下表现的总结表格:
| 方法 | 平均误差表现 | 处理遮挡能力 | 时间性能 |
| ---- | ---- | ---- | ---- |
| CNN | 在未遮挡和遮挡场景下误差相对稳定,重新训练后有一定改善 | 对遮挡情况有一定处理能力,但提升有限 | 单帧处理时间 1.65 ms |
| RNN | 在原始和遮挡数据集上平均误差较低,重新训练后在遮挡场景优势明显 | 借助时间信息能较好处理遮挡,训练后效果更佳 | 单帧处理时间 7.25 ms,与 CNN 组合共 8.87 ms |
| RF | 整体平均误差较高,在遮挡场景下臀部和腿部误差大 | 对头部和上半身关节遮挡识别较好,但整体处理遮挡能力弱 | 单帧处理时间 36.77 ms |
为了更清晰地展示整个流程,下面是一个 mermaid 流程图,涵盖了从数据采集到姿态估计的主要步骤:
graph LR
A[数据采集] --> B[患者动作捕捉数据集]
B --> C[毛毯模拟]
C --> D[混合数据集]
D --> E[模型训练]
E --> F[CNN 训练]
E --> G[RNN 训练]
E --> H[RF 训练]
F --> I[姿态估计]
G --> I
H --> I
I --> J[实验评估]
J --> K[对比平均关节误差]
J --> L[对比最坏情况准确率]
J --> M[对比遮挡场景表现]
未来,该技术有望在更多医院监测场景中得到应用,例如在重症监护室实时监测患者的细微动作变化,或者在睡眠实验室中更精准地分析患者的睡眠姿态和运动情况。同时,可以进一步优化模型,提高在复杂遮挡和快速运动情况下的姿态估计准确性,为医疗诊断和患者护理提供更有力的支持。
此外,还可以考虑将该技术与其他医疗监测设备相结合,如脑电图(EEG)、心电图(ECG)等,实现多模态的患者监测,从而获取更全面的患者健康信息。通过不断的研究和改进,相信这种基于视觉数据的人体姿态估计技术将在医疗领域发挥更大的作用。
超级会员免费看
757

被折叠的 条评论
为什么被折叠?



