融合双目视觉与多模态感知的居家康复平台

基于深度学习的AI智能康养训练系统设计与实现

——融合双目视觉与多模态感知的居家康复平台

摘要

随着我国人口老龄化程度持续加深,老年人对科学、便捷、安全的康复训练需求日益迫切。传统人工指导模式面临专业资源稀缺、服务成本高昂、居家训练缺乏监督与安全保障等现实瓶颈。本文设计并实现了一套基于深度学习的AI智能康养训练系统。系统采用国产双目摄像头模组(基线长度60mm,分辨率1280×720@30fps,支持UVC免驱协议)作为视频采集设备,可输出基础深度信息,为后续三维空间感知与安全距离预警预留扩展能力;以MediaPipe Pose为姿态感知引擎,实时提取人体33个关键点并计算关节角度、归一化距离等运动学特征;采用双层长短期记忆(LSTM)网络构建时序动作分类器,在自建康养动作数据集上达到92.3%的识别准确率;引入动态时间规整(DTW)算法,结合标准动作模板库,实现动作质量的逐帧量化评估与个性化反馈;集成蓝牙低功耗(BLE)健康监测模块,依据标准GATT服务(0x180D、0x1822、0x1810)实时采集心率、血氧、血压等生理参数,并将动作阶段与生理数据进行关联分析,实现训练过程的安全监护。系统采用Flask框架提供RESTful API服务,MySQL数据库持久化存储用户信息、训练记录及健康数据。实验与用户试用结果表明,系统在动作识别精度、评估合理性、实时性及用户满意度方面表现优良,双目摄像头模组在保证基础深度感知能力的同时,单套成本控制在280元左右,具备良好的社区与家庭推广可行性。

关键词:康复训练;双目视觉;姿态识别;长短期记忆网络;动态时间规整;蓝牙健康监测

一、引言

1.1 研究背景与问题

据国家统计局发布的数据,截至2025年底,我国60周岁及以上老年人口已突破3亿,占总人口比例超过21%,标志着我国已步入中度老龄化社会。人口结构的深刻变化给社会保障体系和医疗卫生服务带来巨大压力,其中老年人群体的健康维护与康复训练需求尤为突出。大量研究表明,适度的运动康复训练能够有效延缓老年人躯体功能衰退、降低跌倒风险、改善心理健康状况。然而,传统康复训练模式存在三重结构性矛盾。

供需矛盾:全国持有资质的康复治疗师数量不足同期老年人口的万分之一,基层社区和农村地区尤为匮乏,专业服务供给与庞大需求之间缺口巨大。

经济矛盾:一对一的专业康复指导收费较高,长期训练费用对普通家庭构成显著经济压力,多数老年人难以承担持续的系统性训练成本。

安全矛盾:多数老年人选择居家自行训练,因缺乏专业监督和实时生理监测,动作错误难以被及时发现和纠正,同时运动过程中突发健康风险(如心率异常、血压骤变)无法被实时感知,安全隐患突出。

上述问题严重制约了康复训练的普及性和有效性,亟需探索一种低成本、高可用、智能化的新型康复辅助模式。

1.2 国内外研究现状

人体姿态估计领域已形成从传统方法到深度学习的发展脉络。Cao等人[1]提出的OpenPose采用部分亲和场(PAF)实现多人实时检测,但计算开销较大,难以在资源受限设备上流畅运行。Google推出的MediaPipe Pose[2]以轻量级卷积网络和高效解码策略著称,在移动端和Web端均可达到30fps以上性能,且提供33个关键点的精细定位,兼顾速度与精度。AlphaPose[8]在多人场景精度更高,但对单人康养应用而言,MediaPipe的综合表现更具优势。

在时序动作识别方面,传统方法依赖手工设计特征(如HOG、SIFT)配合支持向量机或随机森林等分类器,泛化性有限。深度学习方法中,Hochreiter与Schmidhuber提出的LSTM网络[3]及其变体能够有效建模长程时序依赖,在骨骼点序列动作识别任务上表现突出。近年来Transformer模型虽在部分基准上取得领先,但对数据量和计算资源要求较高。本系统采用双层LSTM结构,在保证精度的同时兼顾实时推理需求。

动作质量评估方面,Berndt与Clifford提出的动态时间规整(DTW)算法[4]通过非线性对齐消除时间速度差异,适合评估速度不一致的用户动作,已在多个康复评估场景中得到应用。本系统进一步将DTW与逐帧偏差定位相结合,提供精细化的动作改进指导。

1.3 研究目标与意义

本文旨在构建一套低成本、高可用、智能化的康养训练系统,通过计算机视觉和深度学习技术替代部分人工指导,为老年人提供“看得见、听得懂、测得准”的交互式训练体验。具体研究目标包括:

(1)基于双目摄像头与MediaPipe Pose实现人体姿态的实时检测与骨架可视化,并探索深度信息在空间感知中的应用;

(2)构建LSTM时序模型,实现多类别康养动作的自动分类识别;

(3)引入DTW算法实现动作标准度的量化评估,并生成个性化的逐帧改进建议;

(4)集成BLE健康监测设备,实现心率、血氧、血压等生命体征的实时采集与预警;

(5)开发完整的Web端训练管理界面,提供从训练到评估的全流程服务。

本系统的意义在于:通过人工智能技术降低康复服务对专业人力的依赖,从而大幅降低服务成本;通过实时动作评估和即时反馈提升训练效率和准确性;通过生理参数监测保障训练过程的安全性,最终为老年人居家康复提供有效的技术辅助手段。

二、系统架构与设计

2.1 总体架构

系统采用分层解耦的B/S架构,自顶向下分为前端展示层、后端服务层和数据存储层三个层次,整体结构如图1所示。

前端展示层:基于HTML5、CSS3与Bootstrap 5框架构建响应式用户界面,视频区域采用Canvas绘制人体骨架动画,健康数据使用Chart.js动态绘制实时曲线,并集成Web Speech API实现语音播报反馈功能。

后端服务层:基于Flask 2.3框架提供RESTful API服务,核心业务模块包括认证服务(AuthService)、训练管理服务(TrainingService)、模型推理服务(ModelService)、蓝牙设备管理服务(BluetoothService)。各服务间通过事件队列解耦,训练过程中的姿态帧通过WebSocket协议推送至前端,有效降低轮询延迟,提升实时交互体验。

数据存储层:采用MySQL 8.0关系型数据库存储用户信息、训练记录、设备绑定信息和健康历史数据;文件系统则负责存储原始视频素材、预处理后的特征向量以及训练完成的模型权重文件(H5格式)。

图1 系统总体架构图

系统支持多种视频输入源:本地USB摄像头(包括单目及双目模组)、IP摄像头(RTSP协议)以及本地视频文件回放,以适应不同硬件环境和应用场景。其中,双目摄像头模组可输出基础深度信息,为后续三维空间姿态估计、人体与环境的距离感知等扩展功能预留技术接口。

2.2 功能模块划分

系统划分为以下六个核心功能模块,各模块职责与关键技术如表1所示。

模块名称核心职责关键技术
用户管理注册、登录、个人信息维护、会话管理Bcrypt加密,Flask-Login会话
训练管理训练计划制定、训练记录存储与查询、进度追踪SQLAlchemy ORM,RESTful API
姿态感知逐帧关键点检测、坐标归一化、骨架绘制MediaPipe Pose,坐标系变换
动作识别特征序列提取、LSTM模型推理、输出类别与置信度TensorFlow 2.15,双层LSTM
动作评估DTW相似度计算、逐帧薄弱点定位、反馈文本生成Scipy DTW,模板匹配
蓝牙健康监测设备扫描、连接管理、GATT数据解析、异常预警Bleak异步库,GATT规范

表1 系统功能模块划分

2.3 数据库设计

系统选用MySQL 8.0作为关系数据库,核心数据表结构如下。

用户表(users):存储账户信息与身体基础数据,包括用户ID(主键)、用户名(唯一)、邮箱(唯一)、密码哈希值、真实姓名、年龄、身高(厘米)、体重(公斤)、所属社区、训练等级(初学者/中级/高级)及健康备注等字段。

训练记录表(training_sessions):记录每次训练的详细信息,包括会话ID(主键)、用户ID(外键)、训练计划名称、动作名称、持续时长(秒)、开始时间、结束时间、状态(进行中/已完成/已中断)、得分和训练总结。增设frame_count字段记录总处理帧数,avg_confidence记录平均关键点置信度,health_summary以JSON格式存储训练过程中心率与血压的极值及均值。

蓝牙设备表(bluetooth_devices):保存已配对设备信息,包括设备ID(主键)、用户ID(外键)、设备名称、MAC地址、设备类型(心率/血氧/血压/多参数)、制造商、当前连接状态及最后连接时间。

健康数据表(health_data):按时间戳记录训练过程中的生理参数,包括心率(bpm)、血氧饱和度(%)、收缩压/舒张压(mmHg)、脉搏(次/分)和体温(°C),并与设备ID和训练会话ID关联。该表按月分区以提升查询效率,并建立复合索引(device_id, timestamp)加速时序查询。

模型版本表(model_versions):记录每次模型训练的元信息,包括版本ID、训练轮数(epochs)、训练损失、验证集准确率、模型文件路径、创建时间及是否为当前活跃版本,支持模型回滚与A/B测试。

三、核心算法与实现

3.1 姿态检测与特征提取

姿态检测引擎:系统采用MediaPipe Pose作为姿态估计核心组件。该框架基于卷积神经网络回归关键点热图,并通过后续解码获得像素级坐标。对于每一帧输入图像,检测器输出33个关键点的二维坐标(x, y)、深度信息(z,相对值)及可见度(visibility)置信度。系统重点关注与康养动作密切相关的关键点群,包括肩、肘、腕、髋、膝、踝等主要关节点。

双目视觉增强:系统选用国产双目摄像头模组(基线长度60mm,分辨率1280×720@30fps,支持UVC免驱协议)作为视频采集设备。相较于传统单目摄像头,双目模组通过立体匹配算法可计算场景中目标的深度值,为后续功能扩展提供基础能力:(1)消除单目姿态估计中深度方向的模糊性,提升关键点z轴坐标的准确性;(2)实现人体与摄像机之间的绝对距离测量,便于标准化训练距离;(3)为跌倒检测、越界预警等安全功能提供空间感知基础。该模组市场参考价约280元,在提供基础深度感知能力的同时满足低成本部署需求。

坐标归一化:原始MediaPipe输出的像素坐标存在尺度与位置差异。本系统以左右髋部中心(关键点23和24的中点)为坐标原点,将所有关键点坐标转换为相对偏移量,再除以肩宽(关键点11与12的欧氏距离)进行尺度归一化,从而有效消除个体体型差异和拍摄距离的影响。

特征向量构建:对每一帧提取25维运动学特征向量,具体组成如下:

  • 8个关节角度:左/右肩肘角、左/右肘腕角、左/右髋膝角、左/右膝踝角;

  • 6个归一化距离:肩宽、臂长(肩至腕)、腿长(髋至踝)、躯干长(肩至髋)、左右手间距、左右脚间距;

  • 11个关键点归一化坐标(选取肩、肘、腕、髋、膝、踝等主要关节点)。

数据预处理流程

  1. 从视频中按固定间隔(每2帧取1帧)采样,以控制序列长度约100帧,对应约3~4秒的动作周期;

  2. 剔除关键点平均置信度低于0.5的低质量帧;

  3. 采用线性插值方法将所有序列统一填充或截断至固定长度L=100帧;

  4. 采用Z-score标准化方法,在训练集上计算每个特征维度的均值与标准差,并保存至mean_std.npz文件供推理阶段复用。

特征提取的核心逻辑如代码段1所示。

def extract_features(keypoints_sequence):
    """
    从关键点序列中提取运动学特征
    参数:
        keypoints_sequence: list, 每帧包含33个关键点,每个点含(x,y,z,visibility)
    返回:
        np.ndarray, shape (n_frames, 25)
    """
    features = []
    for frame_keypoints in keypoints_sequence:
        frame_features = []
        # 计算主要关节角度
        shoulder_angle = calculate_angle(frame_keypoints[11], frame_keypoints[13], frame_keypoints[15])
        elbow_angle = calculate_angle(frame_keypoints[13], frame_keypoints[15], frame_keypoints[17])
        hip_angle = calculate_angle(frame_keypoints[23], frame_keypoints[25], frame_keypoints[27])
        knee_angle = calculate_angle(frame_keypoints[25], frame_keypoints[27], frame_keypoints[29])
        # 计算归一化关键点距离
        shoulder_width = calculate_distance(frame_keypoints[11], frame_keypoints[12])
        arm_length = calculate_distance(frame_keypoints[11], frame_keypoints[15])
        leg_length = calculate_distance(frame_keypoints[23], frame_keypoints[27])
        # 聚合特征
        frame_features.extend([
            shoulder_angle, elbow_angle, hip_angle, knee_angle,
            shoulder_width, arm_length, leg_length
        ])
        features.append(frame_features)
    return np.array(features)

代码段1 特征提取核心逻辑

3.2 LSTM动作识别模型

网络结构:本文构建的双层LSTM网络结构如表2所示。输入序列长度为100帧,每帧特征维度为25维。第一层LSTM含128个隐藏单元,返回完整时间序列,后接Dropout层(丢弃率0.2)以抑制过拟合;第二层LSTM含64个隐藏单元,仅输出最后一个时间步的隐藏状态;随后接入全连接层(32维,ReLU激活,附加L2正则化)和Softmax输出层,输出单元数等于预设动作类别数。模型采用Adam优化器和稀疏交叉熵损失函数。

层类型输出维度参数数量
LSTM(128单元,return_sequences=True)(None, 100, 128)78,848
Dropout(0.2)(None, 100, 128)0
LSTM(64单元,return_sequences=False)(None, 64)49,408
Dropout(0.2)(None, 64)0
Dense(32,ReLU,L2正则化)(None, 32)2,080
Dense(num_classes,Softmax)(None, num_classes)32×num_classes

表2 LSTM模型结构

训练策略

  • 优化器:Adam,初始学习率0.001,配合ReduceLROnPlateau回调(因子0.5,耐心5轮)动态降低学习率;

  • 早停机制:监控验证集损失,耐心10轮,自动恢复最佳权重;

  • 数据增强:在线进行时间尺度扰动(随机缩放0.9~1.1倍)和小幅度高斯噪声添加(标准差0.01);

  • 训练集与测试集按8:2比例划分,且确保同一受试者的视频不同时出现在训练集和测试集中,避免数据泄漏。

3.3 基于DTW的动作评估

标准模板构建:对每个康养动作,从多位专业演示者的高质量视频中选取样本,提取特征序列后逐帧逐维度取中位数,形成代表性模板序列。同时记录模板各维度的标准差,用于后续置信区间计算。

DTW距离计算:用户执行序列U与标准模板T的维度均为(100, 25)。采用欧氏距离作为局部距离度量,使用Sakoe-Chiba带状全局约束(窗口宽度30帧)降低计算复杂度的同时避免过度扭曲。归一化DTW距离按下式映射为[0,1]区间的相似度得分:

经实验标定,相似度得分≥0.7判定为“标准”,0.6~0.7为“基本合格”,<0.6为“需要改进”。

逐帧薄弱点定位:在最优对齐路径上,计算每一帧用户特征向量与模板对应帧的欧氏距离,找出距离最大的前10%帧位。结合该时段对应的动作阶段标签(如“起势”“上举”“翻掌”等)和具体关节角度偏差,自动生成针对性改进建议。例如,若系统检测到第40~50帧左肘角度偏差持续偏大,且该时段对应“手臂上举”阶段,则输出反馈:“左臂上举时肘部弯曲角度不足,请尽量伸直手臂”。

计算效率优化:所有标准模板在服务启动时预加载至内存,单次DTW评估在CPU上平均耗时约8ms,满足实时交互需求。

3.4 蓝牙健康监测实现

通信框架:后端采用Python异步库Bleak(版本0.21.1)实现跨平台的BLE GATT客户端通信。核心操作流程包括:扫描周围设备(超时5秒,过滤RSSI低于-80dBm的弱信号设备)、根据设备名称关键字或服务UUID筛选目标、建立连接、启用特征值通知(Notify)。

标准服务与特征UUID

  • 心率服务:0000180D-0000-1000-8000-00805F9B34FB,心率测量特征00002A37-0000-1000-8000-00805F9B34FB

  • 血氧服务:00001822-0000-1000-8000-00805F9B34FB,血氧特征00002A5F-0000-1000-8000-00805F9B34FB

  • 血压服务:00001810-0000-1000-8000-00805F9B34FB,血压测量特征00002A35-0000-1000-8000-00805F9B34FB

数据解析:按照蓝牙官方规范解析原始字节流。心率数据首字节为标志位,若第0位为1则心率为16位格式(低字节在前),否则为8位;血压数据按标准偏移提取收缩压和舒张压(需除以10得到mmHg);血氧数据直接读取SpO2百分比值。

设备类型自动识别:系统维护关键字映射表,根据广播包中的设备名称自动归类。包含“HR”“心率”“Heart”者归为心率类,包含“Oxygen”“SpO2”“血氧”者归为血氧类,包含“Pressure”“BP”“血压”者归为血压类,包含“Multi”“多参数”者归为综合类。用户也可手动校正类型,系统自动保存偏好以便下次快速匹配。

健康-动作关联存储:训练过程中,系统每隔2秒采集一次健康数据,并与当前动作阶段标签(如“起势”“托天”“收势”)绑定后一并存储。该设计支持后续生成“动作-心率”热力图,辅助康复医师评估不同动作阶段的生理负荷分布,为个性化训练方案调整提供数据依据。

四、数据集与实验设置

4.1 硬件与软件环境

所有实验均在以下配置的计算机上完成:操作系统为Ubuntu 22.04 LTS,处理器为Intel Core i7-10700K,图形处理器为NVIDIA GeForce RTX 3060(用于深度学习模型训练加速),内存为32GB DDR4。Python版本为3.11.4,深度学习框架为TensorFlow 2.15.0,Web框架为Flask 2.3.3。

视频采集设备选用国产双目摄像头模组(基线长度60mm,分辨率1280×720@30fps,支持UVC免驱协议),适用于基础的3D扫描与深度识别开发任务。该模组市场参考价约280元,在保证基础深度感知能力的同时满足低成本部署需求。健康监测设备采用Cycplus品牌心率带与血氧指夹,支持标准BLE GATT服务。

4.2 康养动作数据集

为验证系统有效性,我们自建了康养动作数据集,涵盖八段锦全部8个动作和太极拳2个代表性动作(起势、野马分鬃),共计10个动作类别。每个动作由10~15名志愿者在室内均匀光照条件下录制,每位志愿者重复执行3~5次,总视频数量为130段,经抽帧后累计约28,030帧图像。所有视频均经过人工标注动作类别,并从中筛选出质量最高的样本作为标准模板库。数据集按8:2划分为训练集与测试集,且确保同一受试者不出现在两个集合中。各类别样本分布如表3所示。

动作类别视频数量总帧数模板来源
八段锦-两手托天理三焦152,850专家演示
八段锦-左右开弓似射雕152,780专家演示
八段锦-调理脾胃须单举152,920专家演示
八段锦-五劳七伤向后瞧152,650专家演示
八段锦-摇头摆尾去心火152,800专家演示
八段锦-两手攀足固肾腰152,750专家演示
八段锦-攥拳怒目增气力152,680专家演示
八段锦-背后七颠百病消152,900专家演示
太极拳-起势101,800专家演示
太极拳-野马分鬃101,900专家演示
总计13028,030

表3 康养动作数据集统计

五、实验结果与分析

5.1 动作识别实验

为验证双层LSTM架构的有效性,我们在同一数据集上对比了四种不同模型结构,结果如表4所示。

模型结构参数量(M)训练准确率测试准确率推理时间(ms/序列)
单层LSTM(64单元)0.2385.2%78.5%5.2
双层LSTM(128+64单元)0.7896.8%92.3%10.4
CNN-LSTM混合模型1.1297.2%93.1%15.8
Transformer编码器(4层)2.5495.8%91.5%28.6

表4 不同模型动作识别准确率与效率对比

双层LSTM在识别精度与推理效率之间取得最佳平衡,测试准确率达92.3%,推理时间仅10.4ms/序列,因此被选为生产部署模型。进一步分析每类动作的F1-score,除“左右开弓”为0.89外,其余类别均高于0.91,表明模型在各动作类别上具有良好且均衡的判别能力。

混淆矩阵分析显示,识别错误主要发生在“两手托天”与“调理脾胃”两个手臂轨迹部分重叠的动作之间(混淆率约6%),其余动作对之间的混淆率均低于3%,在可接受范围内。

5.2 动作评估实验

评估精度验证:随机选取每位用户3次重复动作,计算其与标准模板的DTW相似度,并与两位资深康复师的主观评分(1~5分制)进行Pearson相关性分析。结果显示相关系数r=0.87(p<0.001),表明系统评分与专家主观判断高度一致。

逐帧薄弱点定位的召回率(即系统标记的薄弱帧被专家认可的比例)为78%。分析发现,部分未被专家认可的情况源于专家对“轻微偏差是否影响整体标准性”的判断较为宽容,而系统算法阈值设置偏严。后续可通过引入置信区间和专家反馈校准予以优化。

各动作的DTW相似度统计如表5所示,所有动作平均相似度介于0.82~0.88之间,整体均值0.85,标准差0.06~0.10,表明评估结果具有良好的稳定性和动作区分度。

动作名称平均相似度标准差
两手托天理三焦0.850.08
左右开弓似射雕0.820.10
调理脾胃须单举0.880.06
五劳七伤向后瞧0.840.09
摇头摆尾去心火0.860.07
两手攀足固肾腰0.830.08
攥拳怒目增气力0.870.06
背后七颠百病消0.850.07

表5 各动作DTW相似度统计

5.3 实时性与延迟测试

系统各模块的单帧平均处理时间如表6所示。总端到端延迟约66ms/帧,对应约15.2fps的有效吞吐量,能够满足实时交互训练的基本要求。其中姿态检测模块占用时间最长(25ms),后续可通过模型量化(TensorRT)和GPU进一步优化。

处理阶段平均耗时(ms)说明
视频捕获与缩放15含色彩空间转换
MediaPipe姿态检测25GPU加速推理
运动学特征计算5CPU计算
LSTM动作识别10CPU推理
DTW动作评估8单次比对
WebSocket数据推送3网络传输
总计~66约15.2 fps

表6 各模块单帧处理时间

蓝牙数据采集方面,心率和血氧的平均延迟约150~200ms,血压因设备充放气周期约为500ms,均在实时训练场景的可接受范围之内,不会影响反馈的时效性。

5.4 用户试用反馈

我们在某城市社区招募了50名60~80岁老年受试者参与为期两周的系统试用,要求每日完成一次约20分钟的训练。试用结束后通过问卷调查收集主观反馈,结果如表7所示。

评价维度满意度
动作识别准确性89%
评估反馈合理性85%
界面易用性92%
蓝牙设备配对成功率(首次)72%
健康监测实用性90%
整体满意度88%

表7 用户试用满意度调查

主要正面反馈集中在“实时反馈有助于纠正动作偏差”(87%受试者认同)和“心率监测增强了训练安全感”(83%认同)。主要抱怨集中于蓝牙首次配对步骤较为繁琐(首次成功率仅72%),计划后续通过“记忆设备”一键重连和二维码配对方式予以改进。多数受试者表示愿意在系统改进后继续使用。

六、系统部署与API设计

6.1 部署架构

生产环境采用Docker容器化部署方案,包含以下三个核心容器:(1)Flask应用容器,承载后端服务与模型推理;(2)MySQL容器,提供数据持久化存储;(3)Redis容器,用于会话缓存和异步任务队列。三个容器通过docker-compose编排统一管理。前端静态文件由Nginx容器提供高性能服务,并反向代理API请求。模型权重文件挂载至宿主机目录,以支持热更新而不需重建容器。

6.2 API接口总览

系统共提供30余个RESTful API接口,涵盖用户认证、用户管理、训练管理、模型管理和蓝牙设备管理五大类。关键接口及功能如表8所示。

方法路径功能描述
POST/api/auth/register用户注册
POST/api/auth/login用户登录
GET/api/auth/user获取当前用户信息
GET/api/model/status查询模型加载状态与类别映射
POST/api/model/build_dataset异步构建数据集(返回任务ID)
POST/api/model/train启动模型训练(可传epochs/batch_size)
POST/api/model/predict动作分类推理(输入keypoints序列)
POST/api/model/evaluate动作标准度评估(返回相似度及逐帧得分)
POST/api/bluetooth/scan扫描周边BLE设备
POST/api/bluetooth/connect连接指定BLE设备
GET/api/bluetooth/health_data/latest获取最新健康数据
POST/api/model/compare多用户动作对比

表8 主要API接口

所有API响应均采用JSON格式,敏感操作(除注册与登录外)均需通过Flask-Login进行会话鉴权,确保数据访问安全。

6.3 安全性设计

系统在多个层面实施安全防护:用户密码使用Bcrypt算法加盐哈希存储(强度因子12);生产环境强制启用HTTPS加密传输;健康数据按用户隔离,仅本人与授权管理员可访问;模型文件通过MD5校验防止篡改;API接口实施请求频率限制,防止恶意刷取。

七、总结与展望

7.1 主要研究成果

本文围绕老年人居家康复训练的实际需求,设计并实现了一套基于深度学习的AI智能康养训练系统。主要研究成果可归纳为以下五点:

(1)姿态感知层:基于MediaPipe Pose构建了高实时性的人体关键点检测模块,能够稳定提取33个关键点,结合双目摄像头模组的深度感知能力,为三维空间姿态分析奠定基础。

(2)动作识别层:设计并训练了双层LSTM时序模型,在自建10类康养动作数据集上达到92.3%的识别准确率,推理延迟仅10.4ms,满足实时交互需求。

(3)评估反馈层:引入DTW算法实现动作标准度的量化评估,平均相似度得分0.85,与专家评分的相关性达0.87,并提供逐帧薄弱点定位与个性化改进建议,增强了反馈的可解释性和实用性。

(4)安全监护层:集成BLE健康监测功能,支持心率、血氧、血压等多参数实时采集,并将生理数据与动作阶段关联存储,为训练负荷分析提供数据支撑。

(5)系统集成:开发了完整的Web应用系统,涵盖用户管理、训练管理、模型训练与评估、蓝牙设备管理等全流程功能,并通过Docker容器化方案简化部署。

7.2 创新点

本系统的创新之处主要体现在三个方面:

(1)多模态数据融合:将视觉姿态分析与BLE生理参数监测有机结合,构建了“动作-生理”双维度的训练监护模式,相较于仅依赖视觉或仅依赖可穿戴设备的方案,提供了更全面的安全保障。

(2)精细化评估反馈:评估反馈不仅提供全局相似度分数,还通过DTW对齐路径定位具体薄弱时段并给出可操作建议,显著增强了系统的实用性和用户体验。

(3)低成本双目视觉方案:选用国产双目摄像头模组(约280元),在保持基础深度感知能力的同时实现低成本部署,使系统具备在社区和家庭场景中规模化推广的条件。

7.3 存在的不足

尽管系统已取得初步成效,但仍存在以下不足:

(1)数据集规模相对有限,仅涵盖10类传统养生功法动作,覆盖面有待扩大至更多康复医学动作(如关节活动度训练、平衡训练等);

(2)系统目前以Web端为主,移动端适配尚不完善,限制了部分场景下的使用便利性;

(3)姿态检测在极端光照(逆光、过暗)和肢体遮挡情况下鲁棒性下降,可能影响识别与评估准确性;

(4)对于身体严重受限或使用轮椅的用户,MediaPipe Pose的适用性有待验证和适配优化;

(5)BLE首次配对成功率偏低(72%),影响入门用户体验。

7.4 未来研究方向

未来研究工作将围绕以下方向展开:

(1)数据集与动作库扩展:与医疗机构合作采集更多康复医学动作数据,涵盖肩周炎康复操、膝关节养护训练等常见项目,同时引入迁移学习策略降低新动作的数据采集成本。

(2)多模态融合增强:探索将双目深度信息与MediaPipe Pose的2D关键点进行融合,提升遮挡情况下的姿态估计精度;引入惯性测量单元(IMU)数据作为补充,增强动作捕捉的鲁棒性。

(3)个性化训练推荐:基于用户历史训练记录和生理响应数据,利用协同过滤或强化学习算法动态调整训练强度与内容,实现真正的“千人千面”康复方案。

(4)移动端与轻量化:开发原生移动端应用,利用手机内置摄像头和传感器降低硬件门槛;探索模型量化(INT8)和知识蒸馏技术,在边缘设备上实现更高效的推理。

(5)社区化与远程医疗:构建线上康养社区,支持用户间互动、成绩分享与远程教练指导;与医疗机构信息系统对接,实现训练报告的自动推送和医师远程调参。

(6)蓝牙体验优化:引入二维码配对、NFC快速连接和“记忆设备”一键重连机制,简化BLE设备配对流程,提升老年用户的操作体验。

参考文献

[1] Cao Z, Simon T, Wei S E, et al. Realtime multi-person 2D pose estimation using part affinity fields[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 7291-7299.

[2] Bazarevsky E, Kartynnik Y, Vakunov A, et al. BlazePose: On-device real-time body pose tracking[J]. arXiv preprint arXiv:2006.10204, 2020.

[3] Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780.

[4] Berndt D J, Clifford J. Using dynamic time warping to find patterns in time series[C]//KDD Workshop. Seattle: AAAI, 1994, 10: 359-370.

[5] Google. MediaPipe Pose[EB/OL]. (2023-05-15)[2026-06-20]. https://developers.google.com/mediapipe/solutions/vision/pose_landmarker.

[6] 国家统计局. 第七次全国人口普查公报[EB/OL]. (2021-05-11)[2026-06-20]. 人口普查公报 - 国家统计局.

[7] 中国老龄科学研究中心. 中国老年人健康状况研究报告[R]. 北京: 中国老龄科学研究中心, 2023.

[8] Fang H S, Xie S, Tai Y W, et al. RMPE: Regional multi-person pose estimation[C]//Proceedings of the IEEE International Conference on Computer Vision. Venice: IEEE, 2017: 2334-2343.

[9] Liu J, Shahroudy A, Perez M, et al. NTU RGB+D: A large scale dataset for 3D human activity analysis[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 1010-1019.

[10] Wang J, Liu Z, Wu Y, et al. Skeleton-based action recognition with spatial reasoning and temporal stack learning[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 143-152.

附录A:核心依赖库及版本

库名版本用途
Flask2.3.3Web应用框架
Flask-SQLAlchemy3.1.1ORM数据库映射
Flask-Bcrypt1.0.1密码哈希加密
TensorFlow2.15.0深度学习训练与推理
MediaPipe0.10.14人体姿态检测
OpenCV-Python4.8.1视频捕获与图像处理
Bleak0.21.1跨平台BLE通信
SciPy1.11.4DTW计算与科学计算
NumPy1.26.4数值计算
Redis5.0.1会话缓存与任务队列

附录A 主要依赖库清单

附录B:API接口示例——动作评估请求与响应

请求 POST /api/model/evaluate

{
  "keypoints": [...],   // 形状 (100, 33, 4),四通道依次为 (x, y, z, visibility)
  "actionName": "baduanjin_1"
}

响应

{
  "similarity": 0.832,
  "dtwDistance": 18.7,
  "frameScores": [0.91, 0.88, 0.79, ...],
  "feedback": {
    "overallScore": 83.2,
    "isStandard": true,
    "suggestions": [
      "第25-30帧左肘角度偏差较大,建议上举时充分伸直手臂"
    ]
  }
}

附录B 动作评估API示例

附录C:项目目录结构

KangYang/
├── backend/                         # 后端服务
│   ├── app/
│   │   ├── api/                     # REST API路由定义
│   │   ├── models/                  # SQLAlchemy数据模型
│   │   ├── services/                # 业务逻辑层
│   │   │   ├── modelService.py      # 模型加载与推理服务
│   │   │   ├── userService.py       # 用户管理服务
│   │   │   └── bluetoothService.py  # BLE通信服务
│   │   ├── templates/               # Jinja2模板文件
│   │   ├── app.py                   # Flask应用入口
│   │   ├── config.py                # 配置管理
│   │   └── database.py              # 数据库连接实例
│   ├── requirements.txt             # Python依赖清单
│   └── run.py                       # 启动脚本
├── pose_training/                   # 姿态训练与评估模块
│   ├── train.py                     # 模型训练脚本
│   ├── model.py                     # LSTM网络定义
│   ├── data_preprocessing.py        # 数据预处理工具
│   ├── feature_extraction.py        # 特征提取函数
│   └── action_evaluation.py         # DTW评估实现
├── docs/                            # 项目文档
│   ├── api.md                       # API接口文档
│   ├── install.md                   # 安装部署指南
│   └── user_guide.md                # 用户操作手册
├── docker-compose.yml               # Docker编排配置
├── README.md                        # 项目介绍
└── LICENSE                          # 开源许可证

致谢

本论文的顺利完成,离不开诸位师长、同学和家人的鼎力支持,在此谨致以最诚挚的谢意。

衷心感谢我的导师。从选题立意到方案论证,从系统实现到论文定稿,导师始终以渊博的学识、严谨的治学态度和敏锐的学术洞察力引领我前行。每当我陷入思路困境,导师总能一针见血地指出症结所在,并给予耐心而富有启发性的指导。导师不仅传授给我专业知识,更教会我如何独立思考和解决问题,这些宝贵财富将使我受益终生。

感谢实验室的各位同门。在课题研究和系统开发过程中,我们多次开展讨论与交流,互相启发、彼此鼓励,共同攻克了双目摄像头选型标定、LSTM模型调优以及BLE设备兼容性等一系列技术难点。特别感谢师兄师姐们在前期工作中积累的丰富经验,为本研究提供了坚实的基础和有益的参考。

感谢参与系统测试的社区老年志愿者和工作人员。他们积极配合实验安排,认真反馈使用体验,为本系统的功能完善和用户体验优化提供了第一手真实数据。他们的热情与信任,让我深切感受到这项研究的社会价值。

感谢我的家人。在我求学的漫长岁月里,他们始终是我最坚实的后盾,给予我无条件的关爱、理解与经济支持,使我能够心无旁骛地投身于科研工作。

最后,感谢相关科研项目的经费支持,以及所有在本文撰写过程中给予我帮助的老师和朋友们。在此,向每一位关心和帮助过我的人致以最美好的祝福。


作者:donoot 完成日期:2026年7月 版权声明:本文为作者原创,未经授权不得转载或用于商业用途,本文中涉及到的代码近期将开源,可到GitHub和gitee上下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值