康 婷,沈 雷,周 帅
(1.江南大学 设计学院,江苏 无锡 214122; 2.北京理工大学 机电学院,北京 100081)
在全球,跌倒是造成伤害、意外死亡的第二大原因,其中65岁及以上的老年人占首位,且随着年龄的增长,跌倒的概率也会逐渐上升[1],若摔倒后救助不及时很可能对身体造成严重危害,针对此现象设计一款防摔检测智能服装以达到减轻跌倒致重大伤害的目的。
随着智能服装的发展,老年人智能服装领域出现了很多产品,如监测心率、血压和心情等智能服装,如独居监控服、太阳能红外线理疗服、太阳能测压服、防摔服等,这说明老年人对功能服装有较大需求[2]。目前市场上的防摔类服装多用于专业运动,如Alpinestars公司研发的电子安全气囊系统,推出Tech-AITTMTM安全气囊骑行服,Hit-air公司开发的专供赛车和马术竞技穿用的充气式夹克和背心[3],日本 Prop 公司发明防止老年人摔伤的安全气袋等[4],这类服装还未投入到人们的日常安全防护中使用,老年人群对这类防护服接受度较低,主要因为产品不符合日常穿着者的实际需求, 服用性较差且价格偏贵的原因[5]。
综合以上情况,本文基于服装设计结构、面料、色彩3要素以及结合摔倒检测算法设计一款适合老年人日常穿着的防摔智能服装。通过真人实验对检测算法的正确性进行实证研究,创新点在于将防摔和预警2种功能融合,以期推动老人防摔智能服装的设计开发。
目前摔倒检测算法已有大量的学者进行研究,可将现有的检测算法归为3个类别:①采用可穿戴式传感器,采集人体姿态、运动加速度进行检测[6-8];②基于视觉传感器检测,通过安装视频监控或者体感摄影机,从视频中提取人运动行为信息或者骨干信息来进行检测[9-12];③环境感知检测方式, 在老人正常活动区域中放置传感器,通过监测目标发出的声音以及碰撞地面时发出的震动来对摔倒的动作进行检测。采集人体姿态的可穿戴式传感器在长时间的使用过程中存在“漂移”的现象[9],导致检测误差,需要校准。使用视频监控或者体感摄像等方法限制了老年人的活动区域,且易受物体遮挡导致无法正常检测。本文根据摔倒行为发生幅度变化的剧烈程度进行区分检测。
首先进行人体模型的简化,模型简化如图1所示。将人的骨干视为连杆,活动关节视为一系列旋转关节的组合,其中人体的髋关节有3个旋转关节组合而成,如图1中(a)所示LEG_J0、LEG_J1、LEG_J3。膝关节由1个旋转关节组成,将人体简化成双足模型形式,如图1(b)所示。
图1 人体模型简化
1.2.1 姿态信息提取
如图2所示建立描述人体姿态的坐标系,定义绕x轴称为pitch角,绕y轴旋转的称为yaw角,绕z轴旋转的称为roll角,分别描述了人体姿态的俯仰信息、侧方向运动信息和运动正方向信息。
图2 人体坐标系
人体在正常运动过程中,roll角跟随着人体运动的方向时刻在改变。当人体朝前或朝后发生摔倒时,pitch角瞬时发生大的跳动。当人体发生侧摔时,yaw角瞬时会发生大的跳动。因此当人体发生摔倒时,姿态角的变化可以作为摔倒行为的识别方式之一。但是考虑到生活情景的复杂,当人体做一些相关关节锻炼时,或者整个摔倒过程发生比较缓慢时,存在误检的情况,基于姿态变化的识别方式可作为辅助检测的方式。在本方案中姿态信息的采集选用六轴陀螺仪模块,能够测量x、y、z的角度和加速度。
1.2.2 关节信息提取
关节信息主要指的是关节旋转角度的信息,膝关节的转动能够描述膝关节以上部分与腿部的关系。而描述人体上半身与下半身则需要检测髋关节LEG_J2的角度的变化,通过检测这2部分关节的角度信息,可判断大部分脚接触地面时人体的运动行为,结合角度的信息可以区分站立和非站立的动作行为。关节旋转的角度可使用编码器进行测量,通过累计编码器的脉冲数值换算成对应的角度。在本实验方案中使用绝对编码器采集角度信息,将2片柔性的长条在膝关节处连接,编码器与其中的1片相对固定安装,并且与另一片在连接处的轴相连接,2片长条紧贴裤子,如图3所示,膝关节转动时2片长条也会相对转动。
图3 关节角度信息提取
绝对编码器数值与角度可根据式(1)进行换算。
angle=value/value_max×360°
(1)
式中:value为当前绝对式编码器的数值,value_max为其量程的最大值,其与编码器的构造有关。
摔倒过程迅速发生,动作幅度较大,这类动作往往会造成较大伤害,但是这种摔倒的方式也更容易察觉,通过检测3个方向上的加速的变化,也是目前常见摔倒的检测方法,即计算x、y、z3个方向加速度ax、ay、az的和。不管朝哪个方向发生摔倒,这个值将会发生较大的跳动,但是仅仅根据加速度的跳动无法完全确定摔倒动作是否发生,当快跑或是下蹲时,合成加速度也会发生较大的跳动,此时容易造成误检测。
(2)
下蹲、快跑、前摔时的加速度及角度变化分别见图4~9。
图4 下蹲合成加速度变化
图5 下蹲角度变化
图6 快跑合成加速度变化
图7 快跑角度变化
图8 前摔合成加速度变化
图9 前摔角度变化
快跑时或是下蹲时发现其姿态角度的变化并不大,因此将角度的变化作为各个方向上的加权因子。重新定义合成加速度a′,a′的计算见式(3):
(3)
加权因子的计算如见式(4):
angle1=pitch;angle2=yaw;angle3=roll;
fi=Δanglei,i=1,2,3
(4)
为了减少数据抖动的影响,将采集姿态的数据进行“加窗”处理,即将一定范围内的数据进行平均值处理,如下图所示是window_width=10,window_width=25,window_width=50数据处理效果。
图10 数据平滑处理
通过加窗处理能够使数据变得平滑,同时又能够反映数据的真实变化趋势,减少数据抖动带来的影响,但是相对实际情况会有所延时,考虑到串口波特率为115 200 Hz,即使50帧10字节的数据,通讯时间不过0.035 s,这个延时只在启动时产生,后续不存在延时现象,因此加窗处理可行。通过将姿态的数据进行平滑处理后,使用式(3)重新计算3种行为的合成加速度的变化,如图11~13所示。
图11 下蹲合成加速度变化
图12 快跑合成角加速度变化
图13 前摔合成角加速度变化
使用式(3)计算得到的合成加速度的变化能够明显地将摔倒时的情况和下蹲、快跑的动作进行区分,而仅仅使用式(2)无法将摔倒的动作和快跑的动作进行区分。
对于动作幅度较小的摔倒行为,合成加速度值很小,不能够被捕捉。需要结合其他的方式进行识别,通过采集的关节角度信息,提取出其中的特征信息用于训练机器学习算法,机器学习算法流程如图14所示。
图14 机器学习算法流程
提取的特征信息作为分类算法的输入,通过数据预处理,包括将异常值的清理、特征选择、归一化等操作加快分类算法模型的收敛时间。训练阶段用于训练模型,所用数据称为训练集,训练阶段目的在于训练模型以达到最优的分类结果,测试阶段使用训练阶段训练好的模型对测试集数据进行分类。k近邻是一种常用的监督学习算法,分类的原理是基于距离的度量找出训练集中与测试样本最靠近的k个样本,通过这k个邻居的类别来进行预测,从中选择这k个样本中出现最多的类别标记作为预测的结果。距离的计算采用欧式距离公式计算,如式(5)所示。
(5)
其中x,y分别代表待分类样本与已知样本同名特征值。特征选择2个膝关节的角度及姿态角度,6个特征值见表1。
表 1 特征值
主控制器采用单片机(型号stm32f407VGT6),该单片机是基于高性能的ARM Corex-M4 32位内核,运行频率高达168 MHz,支持所有ARM单精度数据处理指令和数据类型,可根据项目的需求扩展相应的外设,负责数据的采集和处理,将处理后的数据打包发送至PC端或是手机端,本方案硬件系统结构框如图15所示。
图15 硬件系统软件
下位机软件系统设计需要考虑实时采集人体的多项信息,需要系统分时切换各个任务进行数据的采集与发送,通过搭载u/cos-III实时系统内核完成任务的分时调度,通过分配任务的优先级决定任务的重要性发送打印任务、按键任务,如图16所示。根据方案要求分为姿态采集任务、数据处理任务。
图16 下位机软件系统
上位机通过使用MatLab编写串口数据接收程序,将下位机通过蓝牙发送的数据进行接收和进一步处理。将角度和关节信息用于绘制人体模型的运动,同时将采集的数据进行处理,得到训练样本,用于训练机器学习摔倒检测算法。另一方面求解合成加速度信息用于摔倒的检测。
从人体工效学的角度,服装可以借助结构设计达到一定的安全防护。随着年龄的增长,老年人身体机能也会随之下降,出现身体形态变化、腿脚不灵活、穿脱不方便等问题,所以在防摔服装的结构设计中,要同时考虑防护作用和舒适性,服装的结构尽量以宽松型为主。可以采用H型和O型的服装廓形,便于老年人穿脱,且可以采用对襟式或者拉链式的服装形式[13]。
面料在实现服装防护功能和生理舒适功能方面也起着很大的作用,通过查阅资料发现目前市场上的防摔服装在面料选择上主要以防水、透气、耐磨、防护这几个方面的性能为主。面料成分主要有锦纶、涤纶等,此外护具是专业防摔服的核心,主要用在肩部、肘部、侧腰、胸腰椎、盆骨、髋关节、膝盖处等部位[14]。老年人防摔智能服装主要是日常穿着,所以不仅要考虑面料是否具有减震耐磨的效果,也要考虑面料的柔软度和着装舒适性。
色彩在功能服装的运用上具有生理及心理性功能和视觉效果功能。随着老年人年龄的增长,外貌、体型、心理以及审美水平都会发生一定的变化[14]。服装配色必须满足年龄段人物的需求,现今老年人退体后会选择多参与社会活动,活动的增加会使老年人更加注重自身的形象,故而注重自己的穿着和服装的色彩。可以通过分析老年人喜爱的颜色以及结合其肤色特征较为准确地找到老年人的色彩需求[15]。
主要运用拼接的手法,在最常见的几个易摔伤部位拼接减震耐磨的面料,再嵌入关节角度测量模块,使其同时具备检测和防摔的功能。关节角度信息测量采用AD转化器采集随关节转动电阻的电压值变化,通过映射关系得到角度变化,以减小采集模块的尺寸。检测报警方面通过嵌入处理器中的蓝牙模块实时发送人体数据至手机APP,结合GPS定位技术将老年人摔倒的信息和具体的地理位置发送到监护人手机上,让监护人能第一时间知道穿着者的身体状况,及时采取救助措施,保护老人的生命安全。
老年人防摔检测智能服设计及传感器嵌入位置见图17。
图17 老年人防摔检测智能服设计
为了验证本文提出的摔倒检测算法的有效性,模拟日常行为动作:前摔、侧摔、快跑、下蹲4个行为,每个行为重复进行50次实验,一共采集200组实验数据,将动作发生后的数据进行处理,其中的80%作为训练数据,其余作为测试数据,使用k近邻机器学习算法进行训练,得到的日常行为检测试验结果见表2。使用合成加速度的算法进行实时监测得到日常行为检测结果见表3。
表2 日常行为检测实验结果
表3 日常行为检测结果
从表2可以看出,准确率和精准率都是1,表明4个动作都能够被准确的识别和区分。但是这种检测在动作发生过程中容易误判,动作与动作之间的行为,即动作的过渡阶段不能够有效区分。从表3可以看出,使用新的合成加速度公式能够检测出摔倒行为的发生,相较于文献[6]有所提升。利用合成加速度检测摔倒行为的准确率取决于合成加速度阈值的大小,实验中使用合成加速度阈值为1.5g,g=9.8 m/s2,为重力加速度,未成功检测出的摔倒行为,其值大于1g,其值仍大于上述非摔倒的行为,非摔倒行为合成加速度的大小分布在(0.1,0.8)区间范围内。阈值大小的选取还需要综合考虑其他的日常行为因素影响。
本文针对老年人易摔倒造成损伤的问题,设计开发出一种具有防摔检测的智能服装,主要从2个方向进行研究。一是通过对人体模型中姿态信息与关节信息进行提取建模,得到相应数据。利用立体坐标轴中3个方向上加速度的变化情况,将人体数据代入进行算法训练,并将数据进行平滑处理,以提高算法精确值。依据算法提取的C1~C6的特征值,将相关数据代入stm32f407VGT6单片机,并利用下位机软件进行代码编译与烧录。二是针对服装本体的设计从结构设计、面料选取、色彩选择、硬件与服装的结合等方面入手,在满足相应防摔倒功能的同时,改善服装穿着舒适度及满足老人的心理安全感。
经过多组测试,该防摔智能服装针对快跑及下蹲的识别准确率及精确率均达到100%;对前侧摔倒及侧面摔倒的准确率分别为98.7%和97.2%,具体阈值可通过实际穿着时相关情况进一步调整,此外通过在上位机中根据姿态信息和关节角度信息构建的人体运动模型,监护人员可根据该模型的运动情况确定是否需要进行救助,可满足老人日常防摔倒需求。后续需采集更多老年人日常行为动作数据建立数据库,作为训练的样本达到更为准确的检测。