时间:2024-05-04
马再蓉,楼旭锋,吴茂念,2,郑 博,2
(1.湖州师范学院 信息工程学院,浙江 湖州 313000;2.浙江省现代农业资源智慧管理与应用研究重点实验室,浙江 湖州 313000)
根据世卫组织的统计,2006 年中国的盲人大概有500 万;到了2010 年,这一数字攀升到了824.8 万;而在2016 年,失明者更是增加到了1 731 万;截至2021 年底,我国盲人数量达1 730 万,占世界盲人总数的18%。盲人群体的生存状况是我国政府和社会长期关注的焦点。中国盲人协会官方网站发布数据显示,我国目前现有的盲人数量居世界第一,是不可忽视的残疾人群体。
2017 年,山东建筑大学对省内65 个公共场所的调查发现,有46%的盲道被占用[1];同年,石家庄的一份调查显示:盲道被占率约为11%[2];2018 年一份对宁波市79 个社区的调查发现,在危险地段设置警示性、提示性盲道的合格率仅为12%,合格率甚至低于商场[3]。由于城市建设规范对自行车、电瓶车的停放考虑欠佳,导致人行道被大量车辆占用,设置在人行道上的盲道也被殃及。这并不是“少数人素质低下乱停乱放”的问题,这一问题在全国都很常见。
盲人出行除了在盲道方面遇到很多问题外,在辅助盲人出行工具这一方面也存在诸多困难。帮助盲人出行的方式通常有三种:导盲犬、盲杖和智能导盲装置[4]。导盲犬数量极少,在盲人群体中拥有者并不普遍;盲杖由于检测路面范围不全面,在使用过程中会遇到对前方障碍物认知不清、无法察觉悬空的障碍物等问题;现存的智能导盲设备大多分为超声波导盲设备、红外导盲设备、引导式导盲设备。在使用超声波导盲设备时,超声波在途中会被反射或吸收,导致采集的信息不完整、检测出现盲区等;红外导盲设备在室外时太阳光会对红外线造成影响,导致测距出现一定程度的误差;导盲机器人存在开发成本高和不易携带维护等缺点,因此无法进行大范围推广应用。
如今,随着计算机视觉技术的发展与深度学习在图像识别与检测领域的广泛应用,机器能够自动从大量图像数据中提取图像或对应物体的特征进行识别与判断,达到了极高的准确率。例如,基于深度学习的目标检测算法利用AlexNet[5]、VGG[6]、GooleNet[7]、ResNet[8]及ResNext[9]等卷积神经网络[10]作为提取图像特征的主干网络,实现了高精确率的检测模型。基于深度学习的目标检测从早期最具代表性的Fast-RCNN[11]、SPP-Net[12]、Faster-RCNN[13]等到近三年的SNIPER[14]、NAS-FPN[15]等检测算法,多以高表征能力的CNN(Convolutional Neural Network, CNN)为主干网络实现了较高的检测精度。因此可将计算机视觉技术与硬件结合,应用于导盲设备中。
为了让盲人出行更加便捷,更加安全,本项目设计了一款能够完整采集信息,不易受环境影响,可察觉前方障碍物种类,且易携带的盲人专用智能眼镜,借助图像分类与超声波测距等技术,赋予盲人一双“慧眼”。开发的计算机视觉技术与深度学习算法相结合的盲人专用智能眼镜,综合超声波导盲和引导式导盲方式,将微处理器安装在眼镜架上,通过超声波与云端相配合对数据进行处理。在盲道上行走遇到障碍物时该智能眼镜会发出声音提醒盲人,引导盲人,帮助盲人在盲道上安全行走。
本项目的控制系统以V831 开发板为核心控制器(以下称V831 开发板核心控制器为主控),数据处理中心(ESP-32开发板)将超声波测距模块采集的信息经处理后传输至主控,摄像头模块采集的数据经图像识别模块分类后,将分类结果传输至主控,主控将得到的数据进行整理,根据所得结果控制语音模块的播报信息。系统总框图如图1 所示。
图1 智能眼镜控制系统总框图
系统主要包括基于深度学习算法的图像识别模块、超声波测距模块和语音模块,系统整体应用流程如图2 所示。打开开关为设备通电,系统启动后进行模型加载,模型加载完成后超声波模块和摄像头模块开始采集数据。通过对摄像头采集的盲人在盲道上行走时所获取的图像信息与超声波测距模块采集的当前设备与前方路面的距离信息进行同步分析,判断所得数据是否在设定的正常范围内,若数据异常表明前方遇到障碍物,系统将获取图像识别模块检测的障碍物种类、超声波测距模块检测的当前位置与障碍物间的距离数据,将数据整理后语音播报给使用者,然后继续检测;若数据在正常值范围内,系统将不做提醒并继续检测。
图2 系统总体应用流程数据采集与传输
本项目将VR 眼镜作为基础结构,在此基础上放置所需模块及电路,并与电池连接,大体形状如图3 所示。此款VR 眼镜长度为172 mm、宽度为89 mm、高度为93 mm,完全满足本项目模块对空间的需求。将摄像头模块放置于左眼位置处,将测距模块放置于右眼位置处;电池放在眼镜后部,减轻面部压力,如图4 所示。
图3 智能眼镜模型
图4 智能眼镜电池放置位置
本眼镜所用测距传感器为A21 超声波传感器模块,其具备高精度、盲区小(盲区≤0.03 m、探测量程0.02 ~5 m)、双FOV 探测角(水平角度40°~65°,垂直角度60 ~80°)、响应时间短、过滤同频干扰、体积小、安装适配性高、防尘防水、寿命长、可靠性高等优点;此传感器的双角度探测有不同等级可选,根据本眼镜应用情况,选取水平角度25°,垂直角度40°;不同身高、不同视角对于距离的测量准确度影响不大。具体测量区域如图5 所示。
图5 超声波传感器测量区域
本眼镜采用的摄像头模块为与V831 开发板配套的摄像头模块,该模块的摄像头具有200 万像素的固定焦点图像传感器,所拍摄的图片分辨率为1 600×1 200,摄像头模块以每秒20 帧的速度抓取图片,并传到主控,可以较真实且迅速地拍摄环境图片。
数据传输流程如图6 所示。一方面,超声波模块采集前方距离信息,ESP-32 开发板将超声波模块采集的数据加工处理后传给主控;另一方面,摄像头采集当前盲道情况的图像数据,后将图片传给主控。主控接收并处理数据得到结果,若遇到非正常结果,便根据当前情况对使用者进行语音播报提醒。
图6 数据传输流程
基于数字图像处理技术对盲道路况进行识别分类这一课题在深度学习领域属于新型研究项目,采用的训练集和验证集是团队成员由以下方式获得:
(1)团队成员实地拍摄;
(2)在百度、谷歌、必应等大型网站上搜集下载,具体情况见表1 所列。
表1 数据集详情
将每一类预留出20%作为测试集,其余作为训练集。具体分类实例如图7 所示。
图7 盲道图片分类部分示例
现在较为经典的深度学习模型是VGG 和ResNet。但这两种网络模型的参数量与计算量较大,效率较低,占用内存较大。为提升卷积层网络效率,研究人员在卷积层神经网络的基础上提出了轻量化卷积神经网络。
本项目的分类模型采用基于MobilenetV1[16]的图像分类模型。MobilenetV1 模型是Google 针对手机等嵌入式设备提出的一种轻量级深层神经网络,该模型的核心思想是使用深度可分离卷积块(Depthwise Separable Convolution)。深度可分离卷积块是由深度可分离卷积和普通1*1 卷积组成。其中,深度可分离卷积的卷积核一般为3*3,通常用于特征提取,而普通1*1 卷积可以完成通道数调整。使用深度可分离卷积块的目的是使用更少的参数来代替普通的3*3 卷积。深度可分离卷积块如图8 所示。MobilenetV1 网络结构见表2 所列。
表2 MobilenetV1 网络结构
图8 深度可分离卷积块
运用现有的数据集,训练并使用分类模型,将在盲道上所遇障碍物分为石墩、墙、消防栓、树、杆、电瓶车、车七类,当所遇环境检测出为以上七类的其中一种,并且概率大于35%时,就认为其所遇障碍物为该障碍物;但当其所遇环境被分类为以上七种的其中一种,但概率低于35%,则认为该环境为正常盲道。运用训练好的模型对测试集进行测试:盲道识别算法先读取测试集图片,然后依次对图片进行检测,并输出障碍物具体种类。共测试10 组,每组340 张图片,检测结果正确率约为95.02%。表3 所列为部分测试结果的分析记录。
表3 模型测试结果
通过对分类错误的图片进行分析,发现分类错误的图片主要分为两种:一种是图片内包含要素过多,另一种是图片内要素展露不充分。图片检测失败的原因主要是图片内容影响图片信息的读取,由此得出,盲道路况识别算法在障碍物较少且展露充分的情况下识别稳定并且准确率较高;但在障碍物种类较多和障碍物展露不充分的情况下,系统识别正确率下降,偏差数值范围为0.1%~0.9%。通过以上评估,认为此算法已经具备一定的盲道路况障碍物识别能力。
在模型训练完成后,生成onnx 深度学习网络文件。调用onnx2ncnn 转换工具,将生成的onnx 模型转换为ncnn 模型。同时,为使得生成的ncnn 模型可以被V831 开发板直接使用,将该模型量化,转换成V831 开发板可直接使用的awnn 模型,模型转化、移植完成且经过调试后,即可使用。本项目在深度学习图像识别算法选择上,尝试了多种经典的通用图像识别算法,首先在运算服务器端对比测试了不同模型的处理识别速度,最终将效果优良且轻量级的Mobilenet 模型移植入嵌入式设备。实践结果见表4 所列。
表4 3 个模型结果对比
通过对实践结果的分析,可以得知:传统的VGG、ResNet 算法模型精度优良但模型参数量过大,在嵌入式设备或移动设备上使用效果较差,MobilenetV1 模型效果优良且参数量较少,在嵌入式设备上应用效果极佳。因此本项目采用了目前在图像分类领域较为常用及轻量级,同时针对嵌入式设备开发的MobilenetV1 网络模型。
本设计经过电路实现后,进行了相应的模拟实验,将组装完成的眼镜(如图9 所示)拿到实地现场做定量测试,选择多段直线盲道作为测试路段,路途设置静止障碍物,定义试验者初始位置到障碍物的距离为起始距离,实际停止位置与障碍物之间的距离为终止距离,以障碍物处为起点,放置米尺。设定起始距离为5 m,指引试验者沿盲道行走,通过记录扬声器播报障碍物种类及距离(即终止距离),并于设定障碍物种类及米尺上显示距离进行对比,若播报终止距离与实际终止距离的误差在实际终止距离的±5%(±10%)范围内,即为测试成功;另外,将障碍物种类和与障碍物之间的距离数据在V831 的屏幕中显示,若语音播报功能出现故障,则将直接记录V831 屏幕中的数据,并将语音播报功能记为失败。多次重复试验后,所得结果见表5 所列。
表5 眼镜试验测试结果
图9 智能眼镜实物
试验结果表明,在实际测试中,本眼镜对“石墩”和“树”这两类障碍物识别效果较好,成功率分别约为96.67%和95%,对“杆”和“墙”这两类障碍物识别效果较差,成功率分别约为78.33%和71.43%,识别效果较差的原因是由于模拟环境中使用的图片较为单一,而实际环境中,环境嘈杂、图片要素过多或光线过亮,曝光度过高导致识别效果较差;语音播报功能效果良好,成功率约为96.75%;在与障碍物间的距离测量方面,误差小于5%,成功率约为93.75%,若误差小于10%,成功率约为99.25%,可以对距离进行较为准确地测量。
本项目通过对智能眼镜的设计,结合Python 对于V831开发板的控制、图像分类识别算法及超声波测距模块的配合,实现了对盲人出行过程进行实时路况识别的功能,达到较好的辅助盲人日常出行的效果。该眼镜分类系统的精度还不够高,分类种类还可以更多,模型需要进一步优化升级,使其更接近人眼感知效果。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!