计算机系统应用  2020, Vol. 29 Issue (6): 112-120   PDF    
基于阅读姿态视觉识别与自适应调整的智能阅读架
张永亮1, 安超群1, 潘必超1, 陈榕福1, 李凌2     
1. 广东机电职业技术学院 电子与通信学院, 广州 510515;
2. 苏州先进技术研究院, 苏州 215123
摘要:设计了一种能够自适应调整的智能阅读架, 该智能阅读架采用ARM Cortex-A53树莓派微处理器架构, 整机系统由阅读架终端、云端服务器和应用端用户平台3部分构成. 阅读架终端配置单目摄像头, 能实时识别读者前倾、后仰、左偏、右偏、抬头、低头以及正确的坐姿, 并能通过步进电机控制阅读架实现上下、左右角度调节, 自适应跟踪读者的阅读姿态. 此外, 智能阅读架能够将用户使用时间、阅读姿态等信息上传云端服务器, 组建用户档案库, 供用户访问. 该设计产品可以广泛推广到幼儿园及中小学、图书馆阅览室、普通家庭等场合, 帮助阅读者端正坐姿, 养成良好的阅读习惯, 社会和经济效益显著.
关键词: 智能阅读架    树莓派主机    云端服务器    阅读姿态    视觉识别    
Intelligent Adaptive Adjustment Reading Shelf Based on Visual Recognition of Reading Posture
ZHANG Yong-Liang1, AN Chao-Qun1, PAN Bi-Chao1, CHEN Rong-Fu1, LI Ling2     
1. School of Electronics and Communication, Guangdong Mechanical and Electrical Polytechnic, Guangzhou 510515, China;
2. Advanced Technology Institute of Suzhou, Suzhou 215123, China
Foundation item: Leading Innovative Talent Project of Higher Vocational Education of Guangdong Province (ZHANG Yong-Liang)
Abstract: A new intelligent adaptive adjustment reading shelf is designed in this study, and the application of dual CPU is adopted. In this system, the raspberry processor ARM Cortex-A53 is used to design the system. The whole system is composed of three parts: the reading shelf terminal, the cloud server, and the application end user platform. The terminal of the reading shelf is equipped with a single camera, which can recognize the reader’s forward, backward, left, right, head, bow, and correct sitting posture in real time, and can control the reading shelf up and down, right and left adjustment through controlling the rotation of the stepping motor, so as to track the reader’s posture automatically. In addition, the intelligent reading shelf can upload the users’ time, reading attitude, and other information to the cloud server and form the user archives for the users to visit. The design product can be widely applied to kindergartens, primary and secondary schools, library reading rooms, and ordinary families. It helps readers to sit upright, develop good reading habits, and achieve significant social and economic benefits.
Key words: intelligent reading shelf     raspberry host     cloud server     reading posture     visual recognition    

根据最新调查显示, 目前小学生、初中生、高中生的近视率分别达到了39.05%、64.3%和72.8%, 我国青少年近视率居世界之首[1]. 而读写姿势不正确、视距过近是造成青少年近视的主要原因; 同时中小学阶段是孩子成长发育的关键时期, 坐姿和读写姿势不正确, 会影响到孩子骨骼的健康成长, 容易造成驼背等不良后果. 国内外有很多企业在研究并已投入生产视力保护仪, 大部分基于红外传感器、超声波测距的原理实现[2-4], 产品功能比较单一, 不能从多个角度保护青少年的视力.

除了保护视力以外, 纠正坐姿也是预防近视的有效办法. 目前, 市场上用于矫正学生坐姿的产品主要有坐姿矫正器、背背佳等. 首先, 这类产品需要用户将仪器设备穿戴在身上, 从使用者的舒适性、方便性等方面来讲具有很差的用户体验. 其次, 市场上的该类产品在功能上具有局限性和单一性等缺点, 其功能已经无法满足当前“互联网+”的经济社会发展形式, 以及人们对智能化产品的需要和追求.

因此, 本文提出了一种基于阅读姿态视觉识别与自适应调整的智能阅读架, 该阅读架能够利用采集的图像信息实现对读者阅读姿态的实时监控与识别, 并根据识别到的阅读姿态智能调控阅读架的高低、倾斜、角度等参量, 自适应用户的坐姿. 此外, 智能阅读架能够将用户使用时间、阅读姿态等信息上传云端服务器, 组建用户档案库, 供用户访问. 调研发现, 该智能阅读架不仅能够帮助阅读者端正坐姿, 挺直腰背, 养成良好的读写习惯, 提高学习效率, 还能有效防止驼背、脊椎弯曲, 保护青少年的身心健康.

1 系统硬件及功能设计

智能阅读架主要由阅读架终端、云端服务器和应用端用户平台3部分构成, 整机架构如图1所示. 其中, 阅读架终端采用ARM Cortex-A53树莓派微型电脑平台架构, 搭载四核高性能处理器, 运行主频可达 1.2 GHz, 运行Raspbian系统, 扩展摄像头、步进电机驱动模块, 实现摄像头模块实时采集并处理读者的阅读姿态, 并通过3组步进电机实现读书架前后、左右、上下调节, 以适应读者前倾、后仰、左偏、右偏、抬头、低头等坐姿. 扩展LED照明模块、光线传感器, 以调节LED照明亮度到合适阅读亮度. 此外, 扩展4G、WiFi模块, 将阅读状态数据实时送到云端, 建立读者阅读档案, 供用户访问.

图 1 智能阅读架整机架构图

智能阅读架的工作流程主要包括训练、工作、休眠、上传4个阶段.

(1)训练: 阅读架首次开机时, 根据系统提示, 读者在阅读架单目摄像头前保持标准及前倾、后仰、左偏、右偏、抬头、低头这7种主要坐姿, 机器将各种姿态的特征参数存储到阅读架系统模板库, 完成训练.

(2)工作: 在智能阅读架工作时, 摄像头实时监控读者的坐姿, 当读者身体前倾、后移姿态变化时, 摄像头捕捉并识别到读者姿态, 并通知系统控制前后步进电机1动作, 智能阅读架向前或后移动, 保持读者与阅读架之间的健康距离; 同样, 当读者抬头或低头阅读时, 摄像头也会通过识别读者姿态, 通知系统控制转动步进电机2动作, 智能阅读架向上或向下转动, 保持读者与阅读架之间的健康角度. 当读者出现左偏、右偏等不正确的坐姿时, 系统将控制步进电机3动作, 智能阅读架向左或向右, 保持读者与阅读架之间的健康角度.

(3)休眠: 如果系统检测到长时间无人使用实时, 自动进入休眠状态.

(4)上传: 智能阅读架实时将读者的阅读时间、阅读姿态等信息上传到云端数据库, 建立读者阅读档案, 用户可以通过手机进行访问和控制, 方便家长或老师对学生阅读姿势的监控、提醒和纠正.

1.1 阅读架终端设计 1.1.1 树莓派主控系统

智能阅读架终端基于树梅派/Raspberry Pi 3B平台设计, 运行Raspbian操作系统. 树莓派3相比树莓派2在CPU上做了全方位的升级, 从32位A7升级到64位A53 BCM2837芯片, 主频从900 MHz升级到1.2 GHz; GPU主频从250 MHz提升到400 MHz; 功能上增加了WiFi/BLE, 方便对智能产品的开发; 供电电路升级到2.5A@5V, 增加了扩展更多模块的可能性. 支持浮点计算, BCM2837核心电路核心电路如图2所示.

图 2 BCM2837核心电路

1.1.2 摄像头电路

Raspberry Pi 3B扩展索尼IMX219 800万像素摄像头, 静态图片分辨率为3280×2464, 支持1080p 30, 720p 60以及640×480p 90视频录像, 并具有夜视功能, 可以实时检测并识别阅读者前倾、后仰、左偏、右偏、抬头、低头以及标准的阅读坐姿. 摄像头模组通过CSI接口与树梅派连接如图3所示.

1.1.3 扩展GPIO接口

Raspberry Pi 3B扩展了40个引脚接口, 其端口明细如图4所示. 通过安装Wiring Pi库函数, 可实现对GPIO管脚的控制, 此外, Wiring Pi中包含了I2C、SPI、UART库, 可以配置并使用树莓派上的特殊功能接口.

图4可见, 树莓派扩展的40个引脚中, 有13个普通输入和输出管脚, 一个I2C、两个SPI和一个UART接口. 如果不使用I2C, SPI和UART等复用接口, 那么树莓派总共具有26个普通IO.

1.1.4 电机控制及角度检测电路

Raspberry Pi 3B通过9个IO口连接步进电机控制器, 控制3组步进电机转动, 分别实现对阅读架前后、左右、上下等姿态的精确控制. 其中, 步进电机采用山社SS1102A10A型号, 尺寸为28 mm的二相电机, 静力矩150 mNm, 定位精度高, 动态特性好; 驱动器采用山社MD-2522型号, 内置有PID电流控制算法, 具有过压、欠压, 相电流过流保护功能. 每个驱动器的STEP+, DIR+, EN+与树梅派的3个IO连接, 如图5所示. 其中, GPIO5、6、12连接步进电机驱动器1; GPIO13、16、19连接步进电机驱动器2; GPIO20、21、26连接步进电机驱动器3.

图 3 扩展摄像头模块接口电路

图 4 扩展GPIO口的连接关系

采用ADXL345三轴加速度传感器,实现加速度的测量,并通过计算得到X、Y、Z 3个方向的倾角值, 与步进电机控制实现闭环系统. ADXL345三轴加速度传感器具有在16 GB下高分辨率(13 Bit)测量能力, 允许测量小于1度的倾角. ADXL345模块上电后, 加速度使惯性质量偏转、差分电容失衡, 使传感器输出与加速度成正比的电压值. 模块对得到的电压值进行模数转换后进行数字滤波, 再存入FIFO存储器, 最后根据中断指令将数字信号通过4线SPI接口输出, 如图6所示. 这里, ADXL345通过SPI总线连接到树梅派SPI接口.

1.1.5 LED智能照明电路

为了实时采集阅读架工作环境的光线强度, 并实现自动照明功能. 采用BH1750FVI进行环境光强度测量, 该芯片是日本RHOM推出的一款内置16 Bit AD转换器的不区分环境光源的光电转换芯片, 具有接近于视觉灵敏度的分光特性, 分辨率可达1 LX, 采用标准IIC通信接口, 连接至树莓派SDA1(GPIO2)、SCL1(GPIO3), 如图7所示.

LED照明调节电路采用LED大功率照明恒流驱动芯片AMC7150, AMC7150具有4~40 V的宽工作电压, 驱动电流最高可达1.5 A, 可以驱动24 W的高功率LED. AMC7150内建PWM(脉冲宽度调变)与功率晶体管, 只需5颗外部零件, 工作频率由外部电容控制可达200 KHz. LED照明调节电路电路图8所示, AMC750芯片5脚, 即LED_Ctrl信号连接至树莓派GPIO25, 如图8所示. 当输出为高电平(2–3.3 V)时, 芯片内部驱动器被关断; 当输出为低电平时, 芯片内部驱动器导通. 因此, 通过调节GPIO25控制信号的占空比, 则可以调节LED的亮度, 满足阅读架智能照明的需求.

图 5 树梅派与步进电机驱动器接口电路

图 6 ADXL345与树莓派接口电路

图 7 BH1750FVI与树莓派接口

1.2 云服务器功能设计

云服务器软件能接收读者的阅读状态数据, 并建立读者阅读档案, 供用户访问. 为了方便移动端用户的高并发访问, 有效利用Web服务器的, 防止服务器线程阻塞, 云服务器采用Memcached高效内存缓存技术+RabbitMQ作为消息队列服务, 提供更快的访问速度和更高的并发访问能力. 以Web API的形式同时面向设备上传与数据下载, 提供基于Restful API的接口, 如图9所示.

1.3 用户端手机功能设计

用户移动端APP功能包括注册, 登陆、信息浏览、数据监测、数据查询、互动讨论等. 在用户使用过程中, 手机APP通过监听云服务器的信息, 实时显示用户信息、设备信息、阅读时间、阅读姿态等阅读信息, 以方便用户体验, 监测和分析用户的阅读习惯. 智能阅读架使用一段时间后, 系统将自动的给出整体的评价参数、注意事项, 建立用户阅读习惯档案, 供用户查阅.

图 8 LED照明调节电路与树莓派接口

图 9 云服务器框图

2 系统软件设计 2.1 基于Wiring Pi库函数的控制系统软件设计

控制系统软件主要包括3组步进电机驱动、阅读架XYZ方向三轴角度检测、阅读架光强度信息采集、LED控制照明等4部分. 通过安装WiringPi控制库函数, 基于C语言编程, 调用树莓派板载的 GPIO、UART、IIC、SPI等资源的驱动, 由gcc编译器生成文件, 并用sudo调用执行文件, 实现阅读架控制系统的软件设计, 具体流程如图10所示.

树莓派默认是将SPI和I2C功能关闭的, 因此需要先开启SPI和IIC接口功能. 然后, 通过轮询方式每隔一个固定时间, 查询读者的阅读坐姿, 阅读架三轴的角度, 并根据检测到的数据, 控制3组步进电机运动, 适应读者坐姿的要求. 同时, 查询环境光强度, 通过GPIO25控制LED照明装置, 实现阅读架亮度的智能调节.

2.2 基于OpenCV视觉库的阅读姿态训练和分类识别

OpenCV是一个基于发行的跨平台计算机视觉库, 可以运行在Linux、Windows和Mac OS操作系统上, 由一系列 C 函数和少量 C++ 类构成. 这里, 采用OpenCV及其Python接口实时读取摄像头数据, 并完成阅读姿态训练和分类算法移植和软件系统搭建. 首先在树莓派中安装OpenCV库, 为了能够利用VideoCapture、cvtColor、imshow等命令调用CSI接口的摄像头, 需要打开/etc/下面的modules-load.d/ rpi-camera.conf, 在最后添加一行bcm2835-v4l2, 即在系统启动之后加载bcm2835-v4l2这个模块.

图 10 控制系统软件流程

为了保证智能阅读架可靠、稳定的工作, 读者阅读姿态的实时监控与识别是系统的关键技术, 其系统框图如图11所示.

阅读架的单目摄像头实时收集阅读者的标准、前倾、后仰、左偏、右偏、抬头、低头等姿态数据, 并对收集到的实时图片数据进行灰度二值化处理, 提取特征参数, 构建读者基本姿态模板库, 最后将读者的姿态和模板库姿态实时对比, 进行读者姿态动作的识别.

2.2.1 姿态图像加权灰度处理

摄像头获取的读者姿态实时RGB图像, 具有丰富的形变, 运动以及纹理特征, 因此, 为了降低识别的复杂度, 减小计算工作量, 保证识别的正确率, 需要进行灰度化处理. 这里采用加权平均进行灰度化处理, 如式(1)所示.

$ {V_{gray}} = \left( {{W_r}R + {W_g}G + {W_b}B} \right)/3 $ (1)

大量的实验表明, 取Wr=0.30, Wg=0.59, Wb=0.11时, 能得到最合适的灰度图像.

图 11 阅读姿态识别流程图

2.2.2 姿态图像二值化

读者姿态的边缘分割是系统稳定工作的关键技术之一[5,6], 这里采用分块自适应阈值设定法, 即对图像按区域分成16×16小块, 然后取每一小块灰度平均值的1/8作为阈值进行二值化, 实验表明, 采用分块自适应阈值设定法, 读者姿态图像边缘提取效果好, 能满足识别的要求.

2.2.3 特征提取和姿态识别

姿态图像经二值化后, 阅读姿态轮廓已经基本呈现出来. 观察分析发现, 左偏、右偏阅读姿态图中, 主要边缘成分具有明显的偏离中心线的特征, 因此, 为了保证识别的效果, 采用两级识别法, 第一级先识别左右偏阅读姿态; 第二级再识别其他阅读姿态.

第一级识别过程如下:

(1)以二值图片中心点为界, 将图片分为左右两侧;

(2)分别统计二值图像左、右两侧的黑色像素点的总数量;

(3)若左侧像素点明显大于右侧像素点, 则读者阅读姿态为左偏; 反之, 读者阅读姿态为右偏.

大量的实验表明, 步骤3中, 左右两侧黑色像素点差异超过20%, 能保证识别的精度.

第二级识别采用模板匹配技术[7,8], 即将待识别阅读者的二值姿态图与预先存储的各种姿态模板进行匹配, 通过测量两者之间的欧式距离, 如式(2)所示, 最小距离值所对应的模板姿态即为当前阅读姿态.

$\begin{split} \! \\ d = \sqrt {\sum\nolimits_{i = 1}^N {{{\left( {{x_i} - {y_i}} \right)}^2}} } \end{split} $ (2)
2.3 云服务器和数据库设计

服务器软件主要负责读者阅读姿态数据接收、存储, 阅读姿态分析等功能. 包含3个功能模块: Web API接口、数据存储和阅读姿态统计分析平台. Web API使用 Java 语言、Tomcat容器、MyBatis-Spring技术框架来构建. 用户的智能手机 APP和阅读习惯分析平台均通过 Web API 来访问数据. 此外, 与 Web API 的通讯采用 HTTPS 加密通道, 以确保数据的安全性. 阅读数据在服务器后台采用MySQL+MongoDB数据库实现存储功能. 阅读架终端数据上传后, MySQL 数据库主要保存读者的个人基本信息、阅读时间, 阅读次数、7种阅读姿态时间统计, MongoDB用于在线坐姿特征分析的存储等, 阅读数据E-R图如图12所示.

2.4 手机APP设计

用户Android手机或平板可以通过Wifi或移动网络接入因特网来访问阅读架云端服务器. Android版采用Java语言、Android Studio工具开发. 手机或平板APP由注册/登录、用户信息、阅读信息、阅读姿态统计、阅读分析报告5个模块构成. APP的数据接口采用JSON技术与数据接口交换数据. 访问前, 读者首先通过智能手机 APP注册用户账号, 注册成功并登录后, 可以修改用户信息、浏览阅读时间、阅读姿态等信息, 查看阅读姿态统计图等阅读习惯档案.

3 测试结果及分析

用户阅读姿态的正确识别是确保整个系统可靠工作的关键. 因此, 在实验室环境下, 选取了50个读者, 每个读者的7种阅读姿态各拍摄了10次, 建立了读者姿态库, 其中, 姿态库中的图片大小均为320×180像素, RGB格式. 图13所示为某一读者的阅读姿态图.

图 12 阅读数据E-R图

图 13 阅读姿态图

图13中RGB图, 按照式(1)进行加权灰度处理以及分块二值化处理, 结果如图14所示.

对比图13图14可见, 图像二值化后, 背景图像得到了有效的过滤, 读者的7种阅读姿态凸显出来. 由于读者坐在阅读架的正中间, 左偏和右偏具有明显的偏离中心线的特征, 另外5种阅读姿态边缘轮廓清晰, 肉眼可以直观的进行辨别.

随机选取25人进行标准、前倾、后仰、抬头、低头、左偏、右偏7种阅读姿态训练; 剩余的25人, 采用两级识别技术进行读者阅读姿态识别, 其中摄像头每隔2 s捕捉一次读者的坐姿, 其识别正确率如表1所示.

分析表1数据发现, 标准、前倾、后仰、抬头、低头5种阅读姿态识别率在90%以上, 但是左偏和右偏识别率稍低于90%, 究其原因发现, 由于摄像头每隔2 s采集一次读者的坐姿, 在采集该坐姿瞬间, 可能处于姿态过渡阶段, 因此造成了识别的误判. 此外, 采集读者阅读姿态的时候, 个别读者没有坐到阅读架的正中间, 也造成了左偏和右偏的识别稍微偏低. 但是, 7种阅读姿态的识别率整体在88%以上, 仍然能够满足智能阅读架日常使用的要求.

4 结束语

本文提出的智能阅读架通过集成视频模组, 利用图像识别算法实现对人体姿态的监控, 在用户不需要可穿戴设备的情况下就可以对使用者的姿态进行识别. 通过识别到的用户姿态, 智能阅读架可以进行智能调节, 主动满足使用者的姿态需求. 同时, 阅读架与云端数据库相连, 能够将用户的使用时间、阅读姿态等信息实时上传组建用户信息档案库, 用户可以随时通过手机APP访问档案库, 了解相关信息或进行远程控制.

该设计产品可以广泛推广到幼儿园及中小学、高校、图书馆阅览室、普通家庭, 帮助阅读者端正坐姿, 挺直腰背, 养成良好的阅读习惯, 提高学习效率, 有效防止驼背、脊椎弯曲, 保护青少年的身心健康, 社会和经济效益显著.

图 14 灰度二值化后图

表 1 各阅读姿态下系统的识别正确率

参考文献
[1]
商莹. 视力保护仪的研究与设计. 新技术新工艺, 2015(6): 34-36. DOI:10.3969/j.issn.1003-5311.2015.06.010
[2]
孙佰顺, 武传佳, 陈旭东. 多功能视力保护仪的设计. 科技创新导报, 2017(14): 176, 193.
[3]
张敏. 基于红外传感器的人体信号检测保护系统设计. 装备制造技术, 2008(1): 50-52. DOI:10.3969/j.issn.1672-545X.2008.01.022
[4]
王启强, 刘文彬. 基于MSP430单片机的智能视力保护仪的设计. 数码世界, 2017(4): 10.
[5]
胡琼, 秦磊, 黄庆明. 基于视觉的人体动作识别综述. 计算机学报, 2013, 36(12): 2512-2524.
[6]
陈坤, 马燕, 李顺宝. 融合直方图阈值和K-均值的彩色图像分割方法. 计算机工程与应用, 2013, 49(4): 170-173. DOI:10.3778/j.issn.1002-8331.1108-0301
[7]
刘蓉, 刘家祺, 刘红. 基于加速度轨迹图像的手势特征提取与识别. 计算机应用研究, 2017, 34(3): 924-927. DOI:10.3969/j.issn.1001-3695.2017.03.066
[8]
王浩宇, 漆晶, 方天恩, 等. 基于轨迹模板匹配的动态手势识别方法. 单片机与嵌入式系统应用, 2017, 17(7): 39-43, 46.