APP下载

基于深度学习的视力保护系统

2021-11-15李子意于洋郭椿可李泽萱邢世琦

现代计算机 2021年27期
关键词:蜂鸣器边界视力

李子意,于洋,郭椿可,李泽萱,邢世琦

(天津师范大学计算机与信息工程学院,天津 300387)

0 引言

根据2018年青少年近视率与用眼习惯报告显示,我国现有盲人500多万人,低视力者有上千万,尤其是儿童及青少年,近视率高[1-2]。更令人震惊的是,有份调查报告称,国内因高度近视致盲者已达30多万人。实际上,我国青少年的整体视力情况不容乐观,有数据显示,目前中国近视患者人数多达6亿,几乎占到中国总人口的50%。青少年近视率已经居世界第一[1-2]。因此,保护视力,刻不容缓!相关研究报告指出,错误的用眼习惯、不正确的坐姿、阅读环境光线强度的不适宜都是导致近视的主要原因。若能纠正用户的错误用眼习惯,形成正确的阅读姿势,调整适宜的光线强度,将会大大降低近视率。

1 视力保护系统原理

系统从近视的成因出发,针对光线太弱(太强)、阅读时间太长、阅读距离太近等不良眼习惯,设计了一套可在用户办公或学习过程中使用的系统。全自动护眼系统,实时检测用户表情,分析用户阅读状态,提醒用户坐姿,并能自动调整最佳阅读距离。

2 系统方案设计

视力保护系统硬件主要由光敏电阻模块、压力传感器、红外测距模块、蜂鸣器报警模块、摄像头、STM32F103ZET6单片机和测控电路组成[3]。在软件方面,用C语言编写上位机的硬件程序,用Python语言编写深度学习模型和算法。使用Android Studio设计一个设计良好的交互界面。

2 硬件系统设计

2.1 单片机数据测控电路

系统以STM32F103ZET6单片机为核心,通过连接多个传感器模块,实现了数据采集和判断。当检测到读取环境的光强度不在适当范围内时,通过调整处理将光强度检测模块的电压值转换为相应的光强度,然后利用方波周期的长度来改变控制台灯的模拟电压,从而调整灯光强度和亮度[3-4]。当红外测距模块检测到椅背与桌子的距离不在正确范围内时,单片机驱动电机调整椅背的角度。摄像机实时采集图像,分析检测主机中视频流数据的读取状态。当用户的阅读时间过长时,分析检测到用户的阅读状态是疲劳的,单片机驱动蜂鸣器报警模块进行报警提示。

2.2 光强检测电路

光敏电阻采集的数据通过经验公式完成电阻值的转化。

计算公式为:

若光照过强或者过弱,单片机控制蜂鸣器发出警告;继电器模块控制台灯调节亮度。图1为光强检测电路。

图1 光强检测电路

2.3 红外测距电路

红外线测距模块是用来检测椅背距桌面的距离。如图2所示,模块包括红外线发生与接收电路。红外线的发生电路发射出连续的红外射线,再照射到物体后形成一个反射过程以供红外接收电路接收。接收电路的输出端根据其接收的红外光线而变化。经单片机处理后计算出距离[5]。

图2 红外测距电路

2.4 蜂鸣器报警电路

所使用的蜂鸣器工作频率是2000 Hz,驱动信号的波形周期是500μs,占空比为1/2 duty的方波,只需要每250μs进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号[6]。如图3所示当用户阅读时出现不正确的阅读状态,单片机通过I/O口输入,导通三极管驱动蜂鸣器鸣叫。

图3 蜂鸣器报警电路

3 软件系统设计

3.1 深度学习算法的实现

3.1.1 Tensorflow

Tensorflow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究[7]。

TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Applica⁃tion Programming Interface,API)[8]。提供Python语言下的四个不同版本:CPU版本、GPU版本以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。

3.1.2 网络结构

系统采用的深度学习算法是YOLOv3算法。如图4所示,是YOLOv3的特征提取网络Darknet 53。YOLOv3的输入一般是416×416×3的原始图片矩阵、n个坐标标签和n个分类标签,其中n代表每幅图中目标物体的个数[9]。在经过特征提取网络后,会得到三种不同尺寸的特征图:13×13×255、26×26×255、52×52×255。

图4 特征提取网络Darknet 53

YOLOv3网络在三个特征图中分别通过(4+1+c)×k个大小为1×1的卷积核进行卷积预测,k为预设边界框(bounding box prior)的个数(k默认取3),c为预测目标的类别数(在本系统中为2类),其中4k个参数负责预测目标边界框的偏移量,k个参数负责预测目标边界框内包含目标的概率,ck个参数负责预测这k个预设边界框对应c个目标类别的概率。目标边界框的预测过程如图5所示。

图5 预测过程

图中虚线矩形框为预设边界框,实线矩形框为通过网络预测的偏移量计算得到的预测边界框。其中(cx,cy)为预设边界框在特征图上的中心坐标,(pw,ph)为预设边界框在特征图上的宽和高,(tx,ty,tw,th)分别为网络预测的边界框中心偏移量以及宽高缩放比,(bx,by,bw,bh)为最终预测的目标边界框,从预设边界框到最终预测边界框的转换过程如图右侧公式所示,其中σ(x)函数是sigmoid函数其目的是将预测偏移量缩放到0到1之间[10]。

3.1.3 训练

本系统在训练时采用的是在配置了1080Ti的服务器上进行GPU训练,通过训练自己的数据集并进行参数的微调得到了适用于视力保护系统的深度学习模型。最终将得到的模型加载至上位机进行分析预测。

3.2 Android Studio开发APP

本系统利用Android Studio开发出了交互界面良好的APP,具有主页内容、数据显示、网络咨询和个人中心四个部分。用户通过APP可查询自己的用眼时长,坐姿是否正确;同时,APP也会定期推送相关护眼知识给用户。

4 测试

在将模型加载到上位机后,连接硬件对整个视力保护系统进行测试,实验结果显示,本套系统能将阅读环境的光照度控制在700~1000 lx范围内,当室内的环境光照度发生改变时且超出预设的光照度范围时,实现亮度的自动调整:光照度小于700 lx时,台灯亮度自动变亮;当光照度大于1000 lx时台灯亮度自动变暗,在700~1000 lx之间时,台灯亮度维持不变,能够提供适于人眼的阅读光照度。本实验通过利用刻度尺测量人体与书桌之间的距离,与红外传感器通过lcd屏显示的数值进行比较,计算相对误差,得到的实验数据如表1所示。当距离小于15 cm时系统发出外部中断信号,蜂鸣器发出警报,步进电机驱动椅背实现倾角调整,总体误差小于1.5%。

表1 距离相对误差统计表

模型能分析预测出疲劳和专注两种阅读状态,分析检测的结果如图6所示,硬件部分收集并处理过后的数据都会实时的在APP中展现,效果如图7所示。

图6 检测效果图

图7 软件效果图

用户可以在APP中查看自己的用眼时长,坐姿是否正确,以及一些护眼知识。

5 结语

大多视力保护系统只从某个方面来对用户的视力进行保护,相比之下,本视力保护系统将深度学习、传感器、单片机结合起来,可以从导致用户近视的原因出发帮助用户,有效的防治了近视,达到了保护视力的目的。

猜你喜欢

蜂鸣器边界视力
守住你的边界
掌控板制作简易钢琴
本尼丢了蜂鸣器
保护视力等
有边界和无边界
OF MALLS AND MUSEUMS
视力不好的犀牛
人蚁边界防护网
一种光感自动晾衣装置
信息的通讯: 制作一个真实的发报机