计算机的飞速普及,让人们将越来越多的工作放在计算机上去完成,各行各业,尤其是程序开发人员、文字工作者,在计算机上的工作时间越来越长,这种情况下不良的坐姿对颈肩腰椎都会产生很大影响,容易导致多种疾病的发生。青少年接触计算机的年龄越来越小,保持良好的坐姿对于青少年的成长发育以及保护视力都大有裨益。调查显示肩部腰部疾病的发病率越来越高,发病年龄越来越小,跟长期坐着工作有关,我们还发现有一些奇特的办公是站立办公甚至在跑步机上办公。这些问题都说明,坐姿正确与否对健康有很大影响。在工作强度越来越大、休息锻炼时间越来越少的今天,如何保持正确坐姿就变得非常有必要了。

  本文首先介绍英特尔RealSense实感设备[1]的组成结构以及该设备是如何获得现实场景下的三维数据。针对本课题,利用英特尔RealSense官方SDK提取出用户面部大约70个特征点的三维数据。这些特征点的三维数据是本文坐姿检测算法的基础。在得到用户面部70多个点的三维数据之后,计算出用户此时头部的转动及俯仰角度、头部与计算机显示屏之间的距离,并使用支持向量机(SVM) [2]进行训练和识别实验,实现了对“歪头”“驼背”“仰视过大”“俯视过大”“距离屏幕过近”等不良坐姿的判定,并经过多次实验取得了较好的实验结果。通过与MySQL数据库[3] 结合,将坐姿特征、每日不同坐姿的时间长度记录下来,进行数据分析,生成报表给用户,从而达到完整的检测、提醒、矫正的目的。

1 实时坐姿检测算法

1.1 硬件及开发环境

  RealSense是英特尔推出的深度摄像头,最新一代设备是全VGA分辨率(640 x 480 60fps)的深度摄像头,以及1080p分辨率的RGB摄像头,在拍摄1080p画面的时候传输速率为30fps。检测范围在0.2米至1.2米之间,根据不同的使用场景和使用的算法,检测的距离也不一样的。目前已经有多款笔记本电脑默认配备RealSense实感摄像头,本文采用的是开发版本的RealSense摄像头,用于开发人员进行开发,如图1。

  开发款的基本尺寸是150mm x 30mm x 58mm,根据官方介绍,需要的环境配置如下,需要具备USB3.0接口,根据实际测试,台式机最好使用后置USB3.0接口,保证足够稳定的供电。官方声称需要使用Intel 第四代以及之后的酷睿系列CPU才能够完成开发,在本文开发过程中使用的是第三代的Core i5 CPU同样能够正常使用。

  需要注意的是,目前Intel RealSense SDK仅支持Windows 8.1以及之后的Windows 64位操作系统,暂不支持Mac OS 以及Linux。

1.2 坐姿检测算法

1.2.1 坐姿检测系统设计

  整套坐姿检测系统的设计流程如图2。

  坐姿检测系统包括五个主要部分,分别是用户信息的录入,设备初始化以及图像预处理,实时坐姿检测、坐姿信息进行统计、内容结果展示与提醒。其中实时坐姿检测模块是本文的重点研究,设计流程如图3。

  在实时坐姿检测当中,如果开启目光跟踪技术,则利用目光跟踪技术进行校正,进行辅助判断,以增强系统的稳定性和准确性。

1.2.2 算法判定

  用户的头部运动以及头部状态是主要的特征提取空间,通过RealSense,在三维坐标中,对头部的仰角(PITCH,绕X轴旋转)、偏航角(YAW,绕Y轴旋转)、翻滚角(ROLL,绕Z轴旋转)、高度信息、空间位置信息进行坐标变换提取,将转换过的数据进行卡尔曼滤波[4],获得较为准确的数据进行坐姿比对,如果头部信息各项参数满足一定指标,则判定该用户的坐姿是端正的,如下图4。

  当欧拉角[5]的翻滚角ROLL的绝对值大于10度时,可以认为用户头部左右歪头幅度过大,是错误的坐姿,需要进行提醒,更准确来说,当ROLL值为正的10度以上时,用户头部向右倾斜角度过大,当值小于负10度时,用户头部向左倾斜角度过大;当欧拉角的YAW的绝对值大于18度,可以认为用户头部的左右转头扭头的幅度过大,这样的错误坐姿经常出现在程序员群体中,因为很多程序员都是使用两台显示器或更多台显示器,由于桌子不足够大,用户与显示器之间距离过近,在观看显示器的时候需要大幅度的扭头,对颈部肩部造成了额外的负担,也属于不良坐姿,更确切的描述,当YAW值大于正18度时,用户头部向右旋转幅度过大,当YAW值小于负18度时,用户头部向左旋转的幅度过大;当欧拉角的PITCH值加5之后的绝对值大于25度,则可以判定用户的头部俯仰程度过大,属于不正确坐姿,通常情况下,用户在使用电脑的时候显示器都会略低于用户的头部高度,而且最适宜的坐姿也不是头部一定要平视显示器,而是稍微低一点点头,这样有助于减轻肩部脊椎等的压力,较适合长时间的工作,更准确地说,当欧拉角的PITCH值大于20度,用户是在仰起头在看显示器画面,这种情况的典型错误坐姿就是手托下巴抬头看显示器,如图5,在阅读长段文字或者浏览视频内容的时候经常会出现这样的坐姿,而当欧拉角的PITCH值小于负30度时,用户低头幅度过大,可以判定用户坐姿不正确,这种情况下对脊柱的损伤较为严重,出现这种不良坐姿的多为佩戴眼睛的用户;

  另外一种典型的错误坐姿就是距离显示器过近,通过RealSense的深度信息,可以快速地获得到用户的头部、肩部相对于摄像头的距离,并且可以精确地获得到用户眼睛到摄像头的距离信息,因此可以快速地判断用户是否距离显示器过近,本文实验的显示器尺寸是17寸,用户与显示器的最佳距离在70厘米至80厘米,小于70厘米时距离显示器过近,通常这样的情况都是因为驼背造成的,而且反过来距离显示器过近,不但会对视力造成严重损伤,也会加重驼背的情况。正确坐姿如图-6。

1.2.3 实验结果分析

  实验组数为4组,每组一名同学,共四人,实验结果数据如表1-表4。

  通过对不同同学的测试数据进行分析,可以发现,算法的准确率在90%以上,相比于传统的智能硬件识别方法40%的准确率有了大幅度的提升,但是在实验中也发现,第二组的检测准确率较低,通过对测试同学的身高、视力等信息的咨询,还发现另外一个重要因素,用户平时使用的桌子大小、座椅高低对用户的坐姿会造成很大影响,一套合适的座椅书桌对健康也是非常有必要的。

2 总结

  本文设计了一种利用Intel RealSense摄像头完成的实时坐姿检测算法,适用人群主要针对需要长时间坐在电脑前进行工作的白领或者程序员群体,综合分析用户头部、眼部的数据,准确的判断出用户当前坐姿是否端正,相比于传统的智能硬件[6]解决方案,省去了单独佩戴智能硬件设备的繁琐,并且极大地提高了检测准确度,达到了90%以上的准确率,同时极低的误警率也保证了在实际应用场景中不会干扰到用户的正常工作。在算法和整体系统软件的设计上仍有一定的优化改进空间,在对图像信息进行处理之前可以采用更好的图像降噪算法,用户面部特征数据在处理的时候可以进行滤波处理,以减少采集数据误差及跳变对检测造成的影响。

基于RealSense的坐姿检测技术的更多相关文章

  1. 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN

    object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...

  2. (转)基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN

    object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...

  3. 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN

    基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...

  4. 基于深度学习的病毒检测技术无需沙箱环境,直接将样本文件转换为二维图片,进而应用改造后的卷积神经网络 Inception V4 进行训练和检测

    话题 3: 基于深度学习的二进制恶意样本检测 分享主题:全球正在经历一场由科技驱动的数字化转型,传统技术已经不能适应病毒数量飞速增长的发展态势.而基于沙箱的检测方案无法满足 APT 攻击的检测需求,也 ...

  5. javascript客户端检测技术

    1. Firefox  Gecko是firefox的呈现引擎.当初的Gecko是作为通用Mozilla浏览器一部分开发的,而第一个采用Gecko引擎的浏览器是Netscape6: 我们可以使用用户代理 ...

  6. paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

    1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...

  7. 伪AP检测技术研究

    转载自:http://www.whitecell-club.org/?p=310 随着城市无线局域网热点在公共场所大规模的部署,无线局域网安全变得尤为突出和重要,其中伪AP钓鱼攻击是无线网络中严重的安 ...

  8. OpenCV探索之路(二十七):皮肤检测技术

    好久没写博客了,因为最近都忙着赶项目和打比赛==| 好吧,今天我打算写一篇关于使用opencv做皮肤检测的技术总结.那首先列一些现在主流的皮肤检测的方法都有哪些: RGB color space Yc ...

  9. 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)

    文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文字都找不到,那何谈文字识别.今天我们首先来谈一下当今流行的文字检测技术有哪些. 文本检测不是一件简 ...

随机推荐

  1. (转)Linux上的Shebang符号(#!)

    https://linux.cn/article-3664-1.html 本文了将给你简单介绍一下Shebang(”#!”)这个符号. 首先,这个符号(#!)的名称,叫做”Shebang”或者”Sha ...

  2. j2ee的13个标准

    1:JDBC(Java Database Connectivity)JDBC API为访问不同数据库提供了统一的路径,向ODBC一样,JDBC开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具 ...

  3. angular+rails集成实战

    http://start.jcolemorrison.com/setting-up-an-angularjs-and-rails-4-1-project/ 1. 添加gemgem 'sprockets ...

  4. HDU 5744 Keep On Movin

    Keep On Movin Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  5. Java异常的分类

    1. 异常机制       异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器.       传 ...

  6. 《C++ primer》--第11章

    习题11.1 algorithm头文件定义了一个count的函数,其功能类似于find.这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果.编写程序读取一系列int型数据,并将它们存储 ...

  7. HDU 4638-Group(线段树+离线处理)

    题意: 给n个编号,m个查询每个查询l,r,求下标区间[l,r]中能分成标号连续的组数(一组内的标号是连续的) 分析: 我们认为初始,每个标号为一个组(线段树维护区间组数),从左向右扫序列,当前标号, ...

  8. IOS文章地址暂时记录

    动画  http://www.jianshu.com/p/1c6a2de68753 iOS App性能优化  http://www.hrchen.com/2013/05/performance-wit ...

  9. 查看系统或者Jmeter的Properties

    工作台-非测试元件-Property Display,可以显示系统或者Jmeter的Properties

  10. U盘安装Centos5.3

    一.制作 U 盘启动引导盘 1. 插上 U 盘,打开 UltraISO 软件,打开CentOS-5.3-i386-bin-DVD.iso 文件: 2.点启动--写入硬盘镜像,在硬盘驱动器里面选择你的 ...