2022-10-28 20:57:59 [显示全部楼层]
8324浏览
查看: 8324|回复: 3

[M10项目] 【物联网项目】基于行空板的智能视力检测助手

[复制链接]
本帖最后由 仔爸 于 2022-10-28 21:00 编辑

一、项目背景
随着中小学生年级的不断提高,近视率呈上升趋势,能否准确测量学生(孩子)视力,做到随时追踪、时刻提醒,是一件值得我们重视的事情。
本项目是基于行空板、物联网和人工智能的简易视力检测助手,既可以用于个人家庭检测,又可以增加终端设备用于学校班级检测,并收集检测数据发送到物联网服务器供分析使用,如追踪学生视力情况,计算年段近视率,近视率预警等。项目主要能实现按照视力表随机出示不同朝向的字母E,被测试人员通过语音反馈字母方向,程序通过语音识别判断与出示的字母是否一致,当达到一定的正确率,则继续缩小字母的尺寸,直到看不清楚为止或达到最高视力值。
由于行空板的尺寸大小有限,可通过两种方式实现正常的测量,一种是外接更大的屏幕,另一种是根据字母大小,同测量人员与屏幕之间的距离进行一个换算,这样就可以不采用标准的5米测量距离。本项目采用后面一种方法,直接使用行空板屏幕出示字母进行测量。

二、项目演示
【物联网项目】基于行空板的智能视力检测助手图17



三、材料清单
  • 行空板1块
  • 百度AI账号1个


四、项目实施
(一)  准备百度AI账号用于语音识别
本项目将使用到人工智能中的语音识别技术,这里采用百度智能云中的语音能力引擎,请注意新账号有一定的赠送量,否则需要充值使用。
步骤1:浏览器打开网址https://ai.baidu.com/,注册一个百度账号,在右上角单击“控制台”链接登录。
步骤2:单击左上角导航按钮,在左侧的导航窗格中单击“语音能力引擎”按钮。
【物联网项目】基于行空板的智能视力检测助手图4
步骤3:单击页面中间的“创建应用”下面的“去创建”链接,然后在创建页面,输入应用名称,选择人工智能相关的功能,此处因为创建的是语音能力引擎的应用,所以语音技术内所有的项目都已经默认勾选。
【物联网项目】基于行空板的智能视力检测助手图1
【物联网项目】基于行空板的智能视力检测助手图2
步骤4:应用创建成功后,在应用列表中会显示已经创建的一些应用,可以复制“API Key”和“Secret Key”到记事本备用,特别要注意,复制Secret Key时一定要显示后再复制。
【物联网项目】基于行空板的智能视力检测助手图3
(二)  软硬件准备
考虑到本项目只是一个小小的演示,因此许多硬件并没有准备充分,比如大屏幕,比如usb音箱,比如行空板独立供电等,可在适当的时候采购使用。
因此只要使用一根USB连接线与电脑连接即可。然后在电脑浏览器中输入http://10.1.2.3进入行空板的网页管理界面,打开SIoT服务,因为行空板提供了该项物联网服务,因此我们无须使用其他物联网服务器。
【物联网项目】基于行空板的智能视力检测助手图6
在下面的网络设置中,使行空板通过Wifi与网络连接,如果周围没有无线网络,也可以使用手机热点。
【物联网项目】基于行空板的智能视力检测助手图5
此外也可以进入https://wiki.unihiker.com/随时查阅相关的资料。

(三)  程序编写
根据项目构思,确定本项目的程序主要包括三个部分:字母生成部分、检测判断部分和语音识别与物联网发布部分,如思维导图所示。
【物联网项目】基于行空板的智能视力检测助手图16
1.       字母生成
一开始我打算采用图片的方式来直接呈现字母E,通过图片大小缩放来实现不同视力值的测量。结果发现这样做并不理想,首先考虑不同视力值用不同大小的图片,到底是准备一张还是多张图片?其次,如果准备一张,缩放后会失真,同时也比较难确定字母的大小。思路至此打断……
经过多日思考、查阅资料,突然想到之前学习计算机基础知识时,有接触过点阵字符的原理,在一个点阵中,通过某些点填充黑色,某些点填充白色,最终呈现字符。因此,我想是否采用点阵的方式来呈现字母E?我在Excel中进行了尝试,发现是可行的。只要将5X5点阵的一些格子填充黑色,就可以实现不同朝向E的呈现。至于大小,通过控制格子的大小来确定。而每个格子就是一个正方形。
【物联网项目】基于行空板的智能视力检测助手图13
因此,可以创建一个包含4个元素的元组,每个元素是一个由0和1组成的长度为25的字符串,程序中根据字符值来创建四个方向的E。
xz=("1111110000111111000011111"  #朝右,下,左,上
  ,"1111110101101011010110101"
  ,"1111100001111110000111111"
  ,"1010110101101011010111111")
另外,每个E的大小是根据上面点阵大小决定的,根据网上资料的查询,考虑到行空板屏幕相对于普通的视力表较小,因此,需要经过距离和大小的换算,得出视力值与大小的对应值(测试距离为1.5米,)。

  
视力值5分记录
  
4
4.3
4.5
4.6
4.7
4.8
4.9
5.0
5.1
5.2
5.3
视力值2分记录
0.1
0.2
0.3
0.4
0.5
0.6
0.8
1.0
1.2
1.5
2.0
屏幕上正方形边长
47.52
23.76
15.84
11.88
9.5
7.92
5.94
4.752
3.96
3.17
2.38
所以我们继续创建2个元组,将上面两项值存入元组中备用(元组sl1是2分记录值,sl2是五分记录值,选择其中一种即可)。
sl1=(0.1,0.2,0.3,0.4,0.5,0.6,0.8,1.0,1.2,1.5,2.0)
sl2=(4,4.3,4.5,4.6,4.7,4.8,4.9,5.0,5.1,5.2,5.3)
width1=(47.52,23.76,15.84,11.88,9.504,7.92,5.94,4.752,3.96,3.168,2.376)

另外,为了使产生的E字能始终显示在行空板屏幕的正中间,经过计算,得到正方形边长与屏幕尺寸之间的关系,从而确定最左上角正方形起始位置的坐标(x1,y1)是:
x1=120-2.5*width   #width是正方形边长
y1=160-2.5*width

通过以上分析和研究,我们可以编写一个函数,根据方向(方向在主程序中将随机生成)和边长,来呈现字母E:
【物联网项目】基于行空板的智能视力检测助手图7
2.       检测和判断部分
根据平时我们上医院或学校里检测视力的流程,通常医生会从上往下(字符从大到小)指向测试字符,然后同一排连续正确,则往下一排继续测试,直到测试到最下一排(最高视力值)或中间某一排看不清为止(上一排即为视力值)。因此在我们的程序中,规定同一排在5个字符内有3个指向正确,则缩小字符的大小,最后确定视力值。
在此我们写一个函数,模拟手工视力测试的方式,并结合语音识别进行判断。
【物联网项目】基于行空板的智能视力检测助手图8
反馈正确则显示一个对勾,错误则显示错叉,也是采用点阵显示方法。编写一个函数实现。
【物联网项目】基于行空板的智能视力检测助手图9
3.       语音识别和物联网发布部分
判断部分相对简单,但需要用到人工智能中的语音识别技术,最终将某个学生的测试视力值上传到物联网平台供存储和分析。此处我们撰写两个函数,一个是实现语音识别并返回识别后的文字,另一个是发送消息到物联网平台。
  • 语音识别函数:

【物联网项目】基于行空板的智能视力检测助手图11
这里使用了百度AI中的短语音识别python库,

  • 上传消息到物联网平台函数:

【物联网项目】基于行空板的智能视力检测助手图12
4.       调用模块和主函数
本程序需要调用一些第三方模块,如unihiker模块,pinpong模块,百度语音识别模块等,在程序的开头调用。而主函数放在最后,根据用户按下行空板上的A键开始测试,同时会出示一些提示信息,并在每一个完成测试后清屏供下一个同学测试。
  • 模块调用和初始化

【物联网项目】基于行空板的智能视力检测助手图10

  • 主函数

【物联网项目】基于行空板的智能视力检测助手图14
五、项目拓展
通过本项目,可以完成简单的视力测试,在此基础上,可以进行一些拓展,如:
  • 多块行空板下的学校批量视力自测,也就是比如每班一个终端,依次测试学生视力,测试视力数据上传到物联网服务器。

【物联网项目】基于行空板的智能视力检测助手图15
  • 多种交互判断方式。本程序只是使用了语音识别进行判断,其实也可以通过手势识别,结合二哈进行图像识别,当然,还可以通过更简单的按钮。
  • 数据分类存储。保护学生视力任重道远,对于每一个学生的检测数据,如果能以个人身份信息作为区分,保存在数据库中则更佳。可以探索在测试前确定身份,测试结束将数据保存在数据库中。

源程序:

shiliceshi.rar

2.52 KB, 下载次数: 2951

视力测试python源程序

木子呢  管理员

发表于 2022-10-31 10:20:35

终于。。。。终于。。。。辛苦徐老师啦
回复

使用道具 举报

许培享  中级技神

发表于 2024-1-6 23:41:27

学习学习
回复

使用道具 举报

达拉斯  高级技师

发表于 2024-2-19 16:25:01

66666666666666666666666666666666666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail