刘少华, 徐 超, 许金林, 许胜强, 元沐南
1(安徽大学 计算智能与信号处理教育部重点实验室, 合肥 230601)
2(安徽大学 安徽省农业生态大数据工程实验室, 合肥 230601)
3(中国科学院 合肥物质科学研究院, 合肥 230031)
随着社会的发展、生活节奏的加快, 青少年的读写时长也在增长, 坐立状态逐渐成为青少年大多数时间所处的状态之一[1]. 利用人体解剖学的生理知识可知, 当人体处于不同坐姿时, 腿部、臀部、背部、脊椎等部位所承受的压力均大不相同[2]. 如图1所示, 人体脊椎分为4个主要部分: 颈椎, 胸椎, 腰椎和骶, 直立时整个脊柱呈现S型, 称为脊柱的正常生理弯曲[3]. 当人体以正常坐姿入座时, 脊椎压力分布均匀, 骨骼以及肌肉所承受的负担减小, 身体舒适, 可提高青少年的学习效率[4,5]; 而人体长时间处于不良坐姿时, 脊椎及其他部位的压力分布极其不均匀. 根据研究表明, 坐姿不良所将产生的人体受力不均衡直接导致驼背、颈椎病、腰椎病、肌肉损伤等身体健康疾病[6], 对青少年的身体发育非常不利且难以矫正, 严重损害青少年的身体健康.
图1 人体直立时脊椎解刨结构图
目前国内外主流的坐姿矫正器基本上分为: 穿戴式坐姿矫正器、机械平衡式坐姿矫正器、支架式坐姿矫正器、电子平衡式坐姿矫正器和测距式坐姿矫正器,如背背佳的U9坐姿矫正器、益视宝支架式坐姿矫正器、猫太子电子电子平衡式坐姿矫正器等. 然而, 这些传统的坐姿矫正器存在着比较笨重、占用空间大、安装复杂、缺少数据分析和监控等缺点, 同时对使用者存在一定的干扰, 容易分散使用者的注意力[7]. 由于坐姿情况和座椅接触面压力场分布有着密切的联系, 因此, 研究青少年坐姿时的压力分布, 对坐姿状态进行实时的分析和反馈提醒, 可以帮助青少年预防由于坐姿不当而产生的各种疾病、指导青少年坐姿矫正还是很有意义的. 针对于以上缺点, 本文基于柔性力敏传感器,设计了一套新型的便携式读写坐姿实时监测及智能提醒系统. 该系统通过在座椅上的铺设点阵式柔性力敏垫, 以及安装在写字板上的光敏传感器与温湿度传器,可以应用在任何环境下, 安装简易、拆卸灵活、占用空间小、无干扰, 具有较好的便携性, 但是还存在着能够识别的不良坐姿种类较少、存在一定的误差等问题.
此青少年读写坐姿监测系统, 能够实时监测和分析青少年读写过程中坐姿情况和环境变化, 系统总体结构主要由坐姿采集模块、通信处理模块、APP客户端三大部分组成. 坐姿采集模块包括数据采集电路、柔性力敏传感器、光强传感器、温度传感器、湿度传感器, 实时采集青少年读写过程中的坐姿压力分布数据、环境光强、温度、湿度信息并将相关数据传入通信处理模块; 通信处理模块对传入的数据进行分析处理, 通过以太网发送给手机APP端; APP接收到通信处理模块发送的分析结果, 实时显示青少年当前的坐姿情况和环境参数, 并且完成数据的存储, 达到实时预警的效果.系统总体示意图如图2所示.
图2 系统总体示意图
实时采集用户的坐姿信息与环境参数, 利用无线通讯模块, 将坐姿信息与环境参数传递至手机APP客户端, 通过坐姿动作识别与分析算法对坐姿状态进行分类, 将处理结果以图表的形式显示在客户端, 实时提醒用户达到反馈预警的效果, 系统结构框图如图3所示.
系统硬件结构如图4所示, 主要包括铺设于座椅上的点阵式压力垫、安装于写字板上的光敏传感器与温湿度传感器以及网络通讯模块.铺设于座椅上的点阵式柔性压力垫用于实时采集坐垫的压力分布信息; 安装在写字板上光敏传感器与温湿度传感器用于实时监测当前的环境参数; 通信处理模块实时接收采集到的压力分布信息与环境参数, 并且对数据进行分析处理,将分析结果传递给手机APP客户端.
图3 系统结构框架
图4 系统硬件结构示意图
(1) 柔性力敏传感器
本文采用柔性力敏传感器, 由两片超薄耐高温聚酯薄膜组成. 采用上下层结构, 基于压阻敏感机理和隧道效应理论, 在上下层接触表面形成接触电阻. 在没有压力时, 其具有稳定的初始接触电阻; 在有压力时, 其接触电阻随压力的增加而线性减小, 通过检测其接触电阻的变化值可以计算出其相对应敏感单元或区域的压力值[8]. 上层薄膜内铺设40行的带状导体, 下层薄膜内铺设40列的带状导体, 则形成了40×40的压力传感器阵列, 一共具有1600个有效传感器节点. 图5为柔性力敏传感器图集, 其中a(1)为行引线, a(2)为列引线,a(3)为敏感单元. 由于此传感器厚度非常薄, 柔性较好易于弯曲, 因此它可以随身携带, 用于日常生活中的各种场合, 具有很好的便携性. 在本文的试验中, 为了增加青少年坐立时的舒适度, 在将柔性力敏传感器的上面放置了一块厚底8 mm的坐垫, 并且镶嵌在座椅表面.
所采用的柔性力敏传感器, 由中科院合肥智能机械研究所自主研制, 具有完全自主知识产权, 每块压力垫的大小为40 cm×40 cm, 由均匀分布的40×40个压阻传感器构成, 传感器密度1个/cm2, 采样频率100 Hz.
图5 柔性力敏传感器图集
(2)采集电路设计
以STM32103单片机作为核心控制器, 采用二次测量法对传感器进行扫描[8]. 利用放大器输入端等电位的原理, 在同一时间下, 允许一行和一列分别被选中与ADC电路连接, 通过地址的循环依次得到每个节点的实时电压值, 然后根据压力与电压的变化模型, 计算获得各个压力节点的压力值.采集电路结构框图和实物图如图6所示.
(3)设备驱动
驱动主要分为采集、控制和通讯三个主要部分.采集驱动部分, 通过MCU片上ADC模块将模拟电路调理后的压力信息、环境信息(温度、湿度、光强)转换为数字信号供后期处理; 控制驱动部分, 通过ADC模块将压力参数、环境参数传输至MCU,MCU根据提出的算法对这些数据进行实时处理分析;通讯驱动部分, 坐垫和写字板通过WiFi将MCU的分析结果传递给手机App客户端, 实时显示给用户, 实现交互体验.
图6 采集电路原理图和实物图
客户端软件是基于Android操作系统、采用MVC设计模式实现.相对于其他智能手机操作系统而言, 它的优势体现在它的开放性: 开放的系统源码, 主要应用于移动终端设备, 例如智能手机、平板电脑、电视、游戏机等, 是目前市场占有率第一的移动终端操作系统[9].
通过坐姿监测客户端软件, 用户能够随时随地的监测读写过程中坐姿情况和环境参数的变化情况, 达到实时预警的效果. 同时以报表的形式直观统计监测时长、不良坐姿次数的饼状图、环境参数的折线图以及微动作的详情, 方便家长分析和纠正青少年坐姿. 具有用户注册登录模块、系统参数调节模块、坐姿监测模块、报表信息模块、微动作详情模块, 客户端软件结构图如图7所示.
在初始界面完成初始设置, 即可开始监测, 以图表的形式对坐姿监测情况进行实时显示. 当停止监测后,则显示在监测期间的相关报表信息, 包括监测时长统计、不良坐姿统计、温度统计、湿度统计等信息. 在此页面, 可以进入微动作详情页面. 坐姿监测页面如图8(a)所示; 报表信息页面如图8(b); 微动作详情页面如图8(c).
图7 客户端软件结构图
图8 图片合集
大面积、高密度的柔性力敏传感器主要用于测量接触界面的压力分布信息, 其通过其信号检出电路获得输出的电压信号, 根据其典型输入输出关系图可知,输出电压和压力分区间成线性关系, 通过直线拟合得到输入-输出关系, 因此, 通过输出电压即可以解算出压力值. 开展逐点标定实验, 实验方法: 首先按照量程分为10个标定点; 由小到大依次加载, 记录每次的输出电压; 由大到小依次卸载, 记录每次的输出电压值.
按照上述实验方法重复30次, 对30次记录的数据进行均值处理后, 得到传感器的压力-电压变化曲线如图9, 通过直线拟合拟合得到输入-输出关系, 实验误差±0.25%.
(1)原始数据
图9 压力-电压变化曲线
将坐垫上压力分布的原始数据经过预处理后用MFC画出来如图10所示, 该图形象的描绘出了臀部的压力分布情况, 可以清晰的观察出压力的变化情况.
图10 臀部压力分布图
(2)数据预处理
在数据采集的过程中, 由于震动和电磁干扰等原因可能会产生一些杂点数据, 因此需要对原始数据进行预处理, 消除图像中混入的噪声.
均值滤波是一种线性滤波算法, 它是指在图像上对目标像素给一个模板(本文选取的模板尺寸为3×3,即以目标像素为中心的周围8个像素, 构成一个滤波模板), 该模板包括了其周围的临近像素, 再用模板中的全体像素的平均值来代替原来像素值.
每个人坐在板凳上会使铺设于坐垫上的柔性力敏传感器产生形变, 产生M行×N列的二维压力矩阵. 正常坐姿时, 身体处于端正状态, 压力矩阵具有左右对称性, 且接触压力值处于稳定状态. 当人出现前后倾、左右倾、翘腿等不良坐姿时, 压力矩阵不具有对称性. 此外, 当人出现抖腿等不良坐姿时, 接触压力值处于上下波动状态, 帧与帧之间的接触压力变化差值较大. 系统首先实时对坐姿的判断结果进行统计, 分别记录正确坐姿、不良坐姿以及离座三种情况的次数, 识别并统计导致不良坐姿的微动作, 在此基础上, 通过大量数据将坐姿微动作信息与其心理变化以及环境因素等进行关联分析, 并建立坐姿微动作与用户的行为习惯、心理特征以及环境因素之间的综合模型.
算法首先进行是否离座判别, 计算总压力值p, 若p没有超过阈值t1, 即p<t1则判断为离座, 否则进行对称性判别; 对称性判别是寻找压力矩阵对称的中心线,通过中心线划分出左右两个区域, 统计左边区域的压力总值p1和右边区域的压力总值p2, 计算出对称系数w1=p1/p2, 当w1没有超过阈值t2, 即w1<t2则判定为正常坐姿, 否则进行波动性判别; 波动性判别是统计前帧压力值p3和后帧压力值p4, 计算波动系数w2=p3/p4,当w2超过阈值t3时, 即w2>t3时则判断为抖腿. 否则,将此不良坐姿和已有的样本库通过K-means聚类, 识别出此不良坐姿的具体类别, 进一步识别出前倾、后倾、左倾、右倾、翘腿[11]. 由于本文的数据样本中只有一部分是有标签的, 很大一部分没有标签, 考虑到数据增强有利于优化分类模型, 将更多的数据应用到模型中, 所以本文利用K-means算法在已有标签数据下对未有标签数据进行聚类, 聚类完成后将此不良坐姿的样本添加并且更新样本库, 这样增加了带有数据标签的样本.
K-means主要算法流程如下[12]:
1) 为每个聚类确定一个初始聚类中心.由于样本库中有5类不良坐姿, 所以有5个初始聚类中心.
2) 将未知标签的样本按照最小距离原则分配到最近邻聚类.
3) 使用每个聚类中的样本均值作为新的聚类中心.
4) 重复2)、3)知道聚类中心不再变化.
5) 结束, 得到5个聚类.
本文使用的K-means算法具体描述如下:
2) 重复下面的过程直到收敛.
{对于每一个样例i, 计算其应该属于的类:
算法流程如图11所示.
本文中, 我们将读写过程中常见的坐姿分为正常坐姿、前倾、后倾、左倾、右倾、抖腿、翘腿、离座八种, 如表1所示.
我们选取了20名青少年参加测试, 年龄在15–20岁之间, 体重在40–80 kg之间. 测试人员首先按照指引保持正常坐姿作为标定标准, 也就是脊柱端直略前倾, 稍低头, 不能歪、扭躯干和头颈部(严格要求做到“三个一”, 即胸距桌缘一拳约7–10 cm, 眼距书一尺约33 cm, 握笔手指距笔尖一寸约3 cm[13]. 然后, 测试人员依次按照前倾→后倾→左倾→…→翘腿的顺序依次更换坐姿, 每种坐姿保持4秒, 每个测试对象重复采集10次测试流程. 采集完20个测试对象后, 其中,所有测试者的8次试验数据作为训练样本, 2次试验数据作为测试样本, 各个坐姿识别率如图12所示[14].
图11 坐姿微动作识别与分析算法流程
表1 八种坐姿
本文设计了一款便携式、操作简单、检测准确度高的坐姿实时监测及智能提醒系统, 通过柔性力敏传感器采集坐姿臀部压力分布, 能够检测出正常坐姿、前倾、后倾、左倾、右倾、抖腿、翘腿、离座8种坐姿情况, 平均识别准确率达到98%. 同时采用手机APP客户端实时显示坐姿情况和环境参数, 并且完成数据的存储, 提醒用户及时纠正坐姿, 达到实时预警的效果. 在接下的研究工作中, 我们将结合微动作心理学,重点研究并分析青少年读写过程中坐姿微动作与心理变化的关系, 进一步提高坐姿干预矫正效果[15].
图12 坐姿识别率