利用少量体压传感器和支持向量机算法的坐姿识别方法

2022-03-13 04:08黄文权王婉华陈冰莹
关键词:坐姿数值建模

黄文权, 王婉华, 陈冰莹

(1. 华侨大学 信息科学与工程学院, 福建 厦门 361021;2. 厦门大学附属第一医院, 福建 厦门 361021)

人的一生中许多时间处于坐姿状态,若长期处于不良坐姿可能会导致压疮和腰椎疾病,如脊柱损伤、腰椎间盘突出等[1-2].如果能用机器识别坐姿状态,就可以帮助人们保持正确坐姿,预防由坐姿不当产生的疾病.坐姿识别还可用于工业领域,如交通工具座椅的设计和安全气囊弹出时间的控制等[3-5].

国内外相关研究表明,人体臀部的压力大小及分布特征与坐姿有着密切的联系.Kamiya等[6]利用压力分布测试旳方法区分出人体的9种坐姿习惯,在熟悉测试集下的坐姿识别准确率达98.9%,在陌生测试集下的坐姿识别准确率达93.9%.Tan等[7]在椅面和椅背安装压力分布传感器,将实时捕获体压信息映射到三维特征姿势空间,在熟悉测试集和陌生测试集下的坐姿识别准确度分别为96%和79%.高振海等[8]依靠椅背和椅面压力分布传感器获得乘员在不同坐姿下的体压分布信息,从而进行坐姿识别,用于控制碰撞发生时安全气囊的起爆时间和充气强度以减少二次伤害.吴闻宇[9]采用Tekscan压力测量系统对高铁座椅的坐垫进行静态坐压测试实验,分析坐垫的坐压分布热区和压力值的分布情况,从而提高座椅的工程化设计效率,改良座椅的综合舒适度.

以往体压分布与坐姿识别研究通常采用Tekscan或Xsensor压力测量系统,这两种系统虽然具备准确、易用和稳定等特点,但也因传感器数量多、数据处理量大、系统较复杂、成本过高等缺点,难以大规模生产.因此,本文利用少量传感器搭建一套体压分布测试系统,获取不同坐姿下体压分布特征,结合支持向量机(SVM)算法进行坐姿识别建模,研究利用少量体压传感器进行静态坐姿识别的可行性.

1 测试环境

1.1 体压分布传感阵列的搭建

根据奈奎斯特采样原理,少量体压传感器获得的体压分布数据会丢失较多细节信息,但只要能够保留坐姿特征信息就可以满足坐姿识别的需要.人体在某个坐姿下体压分布图存在与坐骨结节相应的2个极值点[10-11].而确定椅面上的一个极值点,至少需要极值点及其附近4个方向的数据点.结合经济性,优先采用9个薄膜传感器组成传感器阵列的设计方案.

Tekscan压力测量系统用于座椅压力分布研究,其传感器阵列具有4 000个以上感应点,分辨率为每平方厘米1个感应点[12].文献[11,13-14]的测量数据表明,在座椅压力分布测试中,人体对座椅的压力约为几至几十千帕,假设取5~20 kPa,换算力与压强的关系,得出体压值约为50~200 g.因此,选用量程为500 g的DF9-16型柔性薄膜压力传感器(江苏省苏州能斯达电子科技有限公司).最后,将9个DF9-16型柔性薄膜压力传感器内置于坐垫中组成传感器阵列,以获取体压分布数据.不同传感器阵列参数对比,如表1所示.

表1 不同传感器阵列参数对比Tab.1 Comparison of different sensor array parameters

人体解剖医学中人体坐骨结节间径(TO)正常值为9 cm.单支撑点坐姿的压力中心点位置距离范围为8.73~15.58 cm[9,12].据此选用边长为45 cm的方形坐垫,内部是聚酯纤维海绵垫,外部配可拆洗布套.坐垫内部传感器安装示意图和体压分布测试系统实物,如图1所示.

(a) 坐垫内部传感器安装示意图 (b) 体压分布测试系统实物图1 坐垫内部传感器安装示意图和体压分布测试系统实物Fig.1 Installation diagram of sensor inside cushion and physical object of body pressure distribution test system

9个传感器按3行3列(图1(a))固定在海绵垫上,传感器间隔12.5 cm,外围传感器距坐垫四周各留10.0 cm.记下各传感器的模数转换(AD)采样通道,进行数字编号并连接好电路线缆,套上坐垫布套以保护传感器及其连接电路.以往研究表明,软体座椅面在随着人体质量变形的过程中能更好地保持坐垫与臀部的贴合[15-16],更好地获得不同坐姿下人体臀部区域的体压分布数据.因此,测试座椅选择可升降办公椅,网布椅面上放置传感器坐垫(图1(b)),参测人员可自行调节座椅至舒适高度,使腿部、肘部处于放松状态.

测试时将安装有传感器阵列的软坐垫置于椅面之上,串口转USB线缆连接至计算机后,等待参测人员入座.参测人员入座调整好坐姿并保持静止状态,操作人员操作计算机记录体压数据,标注好相应坐姿标签并保存,以便后续进行数据处理.

1.2 选取测试样本

为兼顾样本的广泛性与代表性,考虑参测人员的性别、年龄、身高、体质量等因素,尽量覆盖男、女、老、幼各个群体.从样本中选取的4个典型人员样本的体征参数,如表2所示.

表2 4个典型人员样本的体征参数Tab.2 Physical parameters of four typical personnel samples

参测人员应尽量居中坐下,让身体轴线与传感器阵列所在轴线尽量一致,采集体压数据时保持某个静态坐姿,但允许小范围的肢体活动.选取日常工作生活中4个典型的坐姿样本,分别是正常坐姿、二郎腿坐姿、前倾坐姿和单边坐坐姿,如图2所示.4种坐姿的坐姿细节,如表3所示.

(a) 正常坐姿 (b) 二郎腿坐姿 (c) 前倾坐姿 (d) 单边坐坐姿图2 4种坐姿样本示意图Fig.2 Schematic diagram of four kinds of sitting posture samples

表3 4种坐姿的坐姿细节Tab.3 Sitting posture details of four kinds of sitting postures

2 实例数据分析

2.1 体压分布等高线图的绘制

薄膜压力传感器是一种电阻式传感器,其输出电阻随着施加在传感器表面压力的增大而减小,输出电阻大小与AD采样数值成正比.因此,传感器压力值与AD采样数值存在特定的映射关系,文中以AD采样数值代替压力值生成体压分布等高线图.9个传感器的体压数据组成一个3×3的数值矩阵.利用线性插值法填充并扩展为7×7的数值矩阵,再绘制体压等高线图.数值矩阵插值扩展有以下5个步骤.

1) 将7×7矩阵边缘行、列值设为1 023,即假设边缘是未受外界压力的阻值最大状态.

2) 将行2,4,6,列2,4,6交叉位置对应原来3×3矩阵对应的数值,即第2行第2列填入C0,第4行第2列填入C1,第6行第2列填入C2,其余项如图3所示.

3) 将行2,4,6和列2,4,6间的空白单元格按照相邻单元格线性插值,填入数值.

4) 将7×7矩阵中剩余空白单元格按照相邻单元格线性插值,填入数值.

5) 从7×7体压数值矩阵生成体压分布等高线图.

图3 数据处理流程图Fig.3 Data processing flow chart

需注意的是,插值矩阵的行列是从左上角开始计数,而体压分布的等高线图坐标原点在左下角,因此,传感器C0,C3,C6的位置与传感器C2,C5,C8的位置要相互交换.最终获得体压分布等高线图中的关键点位的数据位置与图1(a)中的传感器位置保持一致.

2.2 体压分布等高线图分析

选取表2的4个参测人员样本的体压数据,按节2.1的数据处理流程进行插值,绘制体压分布等高线图,结果如图4所示.

(a) 样本1正常坐姿 (b) 样本1二郎腿坐姿 (c) 样本1前倾坐姿 (d) 样本1单边坐坐姿

2.2.1 同一参测人员不同坐姿的体压分布 前3个样本的体压分布图均来自成年人.正常坐姿时,体压分布存在2个极值点,压力分布向周围逐渐降低.二郎腿坐姿时,因一支脚交叉叠加于另一脚膝盖上,体压分布发生明显变化,以样本1为例,其左半部分的体压数值比正常坐姿更大,体压数值对应区域的颜色更深,范围更大,右半部分体压数值减小,颜色变浅.前倾坐姿时,身体重心前移,导致传感器C2,C8压力增大,坐骨结节附近的体压分布图说明重心略朝身体前方移动.单边坐坐姿时,仅半边臀部与座椅紧密接触,故呈现单极值点,单边体压数值比正常坐姿更大.

与成人的体压分布图相比,样本4儿童的体压分布图仅存在单个极值点.原因是儿童臀宽仅约20 cm,其坐姿的压力中心点位置距离小于相邻传感器间距12.5 cm.薄膜传感器数量有限导致所获得的体压分布图分辨率不足,仅能测量到1个体压分布极值点.此外,儿童体压分布主要集中在椅面前半部分,这是由儿童身高低、坐深小造成的.因此,如果要获得儿童正确的体压分布等高线图,需要增加传感器的数量以提高体压分布图的原始分辨率.

成年人除单边坐坐姿外,臀部体压分布图均有2个极值与坐骨结节支撑点对应.不同坐姿时重心的变化也较为明显,如二郎腿坐姿时上身重心会略微后移,而前倾坐姿时重心会前移.由此可知,同一参测人员不同坐姿的体压分布与生理体征基本相符.

2.2.2 不同性别参测人员的体压分布 样本3是青年女性,与样本1青年男性的体压分布等高线图相比,青年女性的体压分布等高线图存在以坐骨支撑点为中心的2个极值分布的特征没有变,前倾坐姿与二郎腿坐姿因身体重心变化导致的体压分布差异与青年男性类似.

此外,前3种坐姿条件下,青年女性所测量的体压数值明显小于青年男性的体压数值.这是因为参测女性的体质量较男性轻,另外女性的生理原因使得在相同坐姿下青年女性与座椅的接触面积会比青年男性更大[9],即相同体质量条件下,体压数值与接触面积成反比.

2.2.3 不同年龄参测人员的体压分布 样本2和样本3分别是老年女性与青年女性,身高和体质量相近,她们的体压分布图存在一些差异.由图4可知:相比样本3,样本2更接近样本1青年男性的体压分布,体压分布等高线图的特征也与青年男性更相近.

在相同体质量情况下,青年女性臀部比中老年女性臀部的脂肪更多,与座椅接触面积更大,所以在相同坐姿条件下,体压数值普遍略低于中老年女性的体压数值,符合相近体质量、相同性别但不同年龄的生理特征.

因此,尽管传感器数量有限,得到的体压分布图无法精确体现参测人员的臀宽和坐深等体征数值,但从体压分布等高线图的分析与对比结果可知,少量体压传感器能较好地还原不同人群在不同坐姿条件下的体压分布特征.青年男性与青年女性之间、不同年龄的女性之间的体压分布等高线图存在的差异与参测人员的体质量、年龄等体征差异相符合.除儿童样本4外,同一参测人员不同坐姿的体压分布图能够较清晰地体现坐姿不同引起的体压数值变化与分布特征,尤其是重心变化.

综上所述,体压分布等高线图的分析和对比结果初步说明利用少量薄膜压力传感器构成的传感器阵列能够采集相应位置的体压数据,数据处理后获得体压分布等高线图能反应相应坐姿特征如重心变化等,为后期静态坐姿识别建模提供了数据基础.

3 坐姿识别建模与分析

3.1 支持向量机分类理论

支持向量机是前苏联科学家Vapnik在统计学习理论的VC维理论和结构风险最小化原理的基础上发展而来的一种机器学习方法[17].它在学习训练过程中将分类问题转化成二次规划问题,避免了局部最优解,在解决小样本、高维度及非线性的分类问题中获得了广泛应用.

样本集合为D={(xi,yi)|i=1,2,…,n},yi∈{+1,-1},其中,+1和-1为样本类别标志.假设存在超平面H:ω·x+b=0使得D中的两类数据被正确区分开,其中,ω为最优分类面的法向量,b为偏置项.非线性SVM的优化问题可表示为

(1)

式(1)中:εi为松弛因子,引入松弛因子使得训练时允许少量错误样本存在;c为惩罚参数,用于表示对错分样本的惩罚程度.

将上述问题转化为对偶问题,求解可得到最优分类函数为

(2)

式(2)中:K(xi,xj)为核函数;αi为拉格朗日乘子.

通过不同的核函数将有限样本变换到高维空间,构造不同类型的非线性学习机,其中,高斯核函数RBF在各种数据建模场合具有较好的分类适应能力和分类精度.定义αi=c时的对应输入样本为支持向量,其集合为S,其他输入样本集合为U.偏置项b的计算式为

(3)

3.2 支持向量机的多分类方法

SVM算法最初是为二值分类问题设计的,当处理多类问题时,就需要通过组合多个二分类器来实现多分类器的构造,常见的方法有一对一法(one-versus-one)和一对多法(one-versus-rest).一对多法是应用较广泛的方法,训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM.分类时,将未知样本分类为具有最大分类函数值的那类.

将不同坐姿体压数据样本进行数据标准化处理,假设样本数据为i个n维向量Xi=[xi,1,xi,2,…,xi,n],数据标准化处理的公式为

(4)

图5 利用体压分布数据的SVM坐姿识别建模流程图Fig.5 Flow chart of SVM sitting posture recognition modeling using body pressure distribution data

(5)

式(5)中:N为训练样本数量.

将标准化后的数据样本分为测试样本和训练样本,训练样本再分为几个训练子集交叉验证进行模型训练和参数寻优.利用体压分布数据的SVM坐姿识别建模流程图,如图5所示.

3.3 SVM建模与分类验证

由于体压分布等高线图依靠人工分析进行坐姿识别的效率较低,拟用SVM算法对体压分布数据进行坐姿识别建模,以提高坐姿识别效率,同时证明少量传感器的体压数据中包含了坐姿特征信息.

建模的数据集共600组,样本来自10个成年人的4种坐姿体压数据.其中,青年男、女各3人,老年男性2人,老年女性2人,每个成人提取每种坐姿样本15个.选定样本集的坐姿类别标签为0,1,2,3,分别表示正坐、前倾、单边坐、二郎腿.

样本数据经标准化处理后作为特征向量,随机选取其中420组作为训练样本,剩余180组作为测试样本.420组测试样本再分成子集进行模型训练和参数寻优,利用5折交叉验证方法进行SVM模型训练.坐姿识别模型的预测结果,如表4所示.表4中:η为坐姿识别准确率.

表4 坐姿识别模型的预测结果Tab.4 Prediction results of sitting posture recognition model

选取径向基RBF函数作为核函数,采样网格搜索算法参数寻优,得到训练集的模型学习曲线,如图6所示.最终模型的坐姿识别准确率为98.1%,其最优参数分别为核函数系数γ=0.01,惩罚参数c=3.556 48.

图6 训练集的模型学习曲线Fig.6 Model learning curves of training set

由表4可知:使用420组训练样本对最优参数的支持向量机模型进行测试,其坐姿识别准确率为98.1%;使用180组测试样本集对最优参数的支持向量机模型进行测试,其坐姿识别准确率为98.3%,其中,有2个单边坐坐姿和1个二郎腿坐姿误判为正常坐姿;重新采集2个陌生成年人的4种坐姿体压分布数据进行坐姿识别,其坐姿识别准确率为92.5%.

而采用儿童样本的体压分布数据进行坐姿识别测试,其识别准确率仅为22.5%.这是因为儿童的体压分布数据未包含足够的坐姿特征信息,难以完成坐姿识别,这与体压分布等高线图的分析结果一致.由此可见,用SVM算法对成年人进行坐姿识别建模,模型的坐姿识别准确度较高且泛化能力较好.

综上所述,采用SVM算法对体压分布数据样本进行建模和参数寻优,所得模型能够较准确地识别不同的静态坐姿,且泛化能力较好.坐姿识别建模结果与体压分布等高线图的分析结果基本一致,说明利用少量体压传感器进行体压分布检测和坐姿识别是可行的,达到了预期设计的目标.

4 结论

采用少量体压传感器和支持向量机的坐姿识别方法,克服了传统方法中传感器数量多、数据处理量较大、系统复杂和成本高等缺点,得到的体压分布等高线图虽然分辨率有限,但保留了不同坐姿的体压分布特征.将体压数据标准化处理后作为特征向量,结合SVM分类算法进行坐姿识别建模,所得模型具有较高的识别准确度和较好的泛化能力,验证了利用少量体压传感器进行坐姿识别的可行性和实用性,同时得到以下3点主要结论.

1) 利用少量体压传感器构建低成本体压分布检测阵列应注意选取合适参数的传感器和合理的传感器布置方案.

2) 少量传感器的体压分布等高线图分辨率有限,丢失了臀宽、坐深等细节数值,但保留了体压中心点、坐姿重心等分布特征.数据分析表明,这些特征与参测人员的性别、年龄、坐姿种类和生理体征相关.

3) 用支持向量机算法对体压数据进行坐姿分类建模,参数寻优后所得模型对测试样本的坐姿识别准确率为98.3%,对陌生样本的坐姿识别准确率为92.5%,说明利用少量体压传感器进行坐姿识别是可行的.

猜你喜欢
坐姿数值建模
久坐伤身,有没有不伤身的办法呢
体积占比不同的组合式石蜡相变传热数值模拟
物理建模在教与学实践中的应用
在经历中发现在探究中建模
数值大小比较“招招鲜”
思维建模在连续型随机变量中的应用
舰船测风传感器安装位置数值仿真
铝合金加筋板焊接温度场和残余应力数值模拟
不同坐姿的6岁儿童乘员在MPDB碰撞测试中头颈部损伤评价
坐姿好习惯