基于TensorFlow Lite的智能辅助行进系统的设计实现

2022-11-21 13:06胡深奇李云鹏
技术与市场 2022年11期
关键词:树莓舵机头盔

胡深奇,李云鹏

(西北工业大学,陕西 西安 710072)

1 概述

随着计算机视觉技术的快速发展以及人工智能领域研究的逐步深入,有关高效解决视力障碍群体出行难的问题逐渐有了许多可行性方案。一些科技巨头如微软、谷歌已经开始研制出了一批具有一定成熟的导盲产品,例如Doogo团队以导盲犬为灵感,研发了电子导盲犬Doogo。Doogo拥有导航、避障等功能,盲人用户只需要手握牵引杆跟随Doogo电子导盲犬即可。在美国,乔治亚大学也研制了一款导盲背包,该产品利用先进的神经网络框架,结合Movidius图像处理技术,不仅可以分辨出周围物体分布情况,还能播报车辆行人的移动方位。但以上提及到的产品由于装置复杂,成本高昂,大部分视力障碍群体无法承担高昂的价格。为此本文提供了一种基于深度学习框架TensorFlow Lite的智能辅助行进系统的设计方案。

在本系统中,提供算力支持、搭载TensorFlow Lite深度学习框架的是基于ARM架构的便携式微型电脑主板Raspberry Pi(“树莓派”)(见图1)。在物联网领域,智能家居领域以及其他人工智能领域,树莓派因其低功耗、高效能、小体积等诸多优点,被业余开发者以及科技公司所青睐,已被应用在了各种项目中。

图1 Raspberry Pi 实物图

传统的深度学习模型往往需要高性能的显卡进行复杂的计算,这意味着高能耗且花费高昂,这显然不适用于嵌入式轻量级开发。而借助深度学习框架TensorFlow Lite,通过对学习模型的压缩、剪枝,将训练模型中不重要的权重进行稀疏化处理,在保证必要精度的情况下,满足了系统功能需求。在本智能辅助行进系统中,主要借助此框架实现了实时动态监测视野前方物体,判断前方道路平整性,并进行语音播报提示等功能。

借助3D建模软件进行外壳部分的建模,通过3D打印技术,利用光滑细腻,环保无害的TUP热塑性聚氨酯材料,将设计好的搭载树莓派的辅助头盔打印成型,装载树莓派及其部件,即可完成整套智能辅助行进系统的制作。

2 系统的总体设计

智能辅助行进系统设计目的是使视力障碍群体通过佩戴智能化头盔,识别视野前方的物体,以语音播报的方式告知物体的名字及距离并且判断前面道路是否平整,以满足视力障碍群体在无人帮助的情况下独自出门的需求。

智能辅助行进系统以智能头盔外壳为主体,以基于ARM架构Raspberry Pi 4B为提供算力的主控系统,树莓派通过接口连接URM09-Analog超声波测距传感器、IMX219-200 Camera摄像头、SG902舵机云台、UPS-18650-Lite电源扩展板,WM8960音频解码扩展板。系统的整个系统设计框图如图2所示。

图2 系统设计框图

3 系统的各模块设计

本智能辅助系统采用模块化设计思路,主要分为影像采集模块、数据分析及智能处理模块、输出模块和外壳模块。各模块间软硬件配合,联系紧密。下面从各模块组成及其功能实现原理进行论述。

3.1 影像采集模块

影像采集模块主要由两部分组成。一部分是IMX219-200 Camera单目摄像头,通过树莓派上的CSI接口与树莓派进行通信,将捕获到的160°视角范围内的实时影像以1 280×720分辨率、30帧的视频流的形式传到数据分析及智能处理模块的处理程序中。

该模块另一部分为舵机云台,整个摄像头由一个2自由度的SG90舵机云台搭载,舵机云台由GPIO串口和树莓派连接。舵机接收到发送的PWM信号,使其内部电路产生一个偏置电压,从而触发电机通过减速齿轮带动电位器移动;当电压差为零时,电机停转,从而达到伺服的效果,使得舵机旋转到需要的角度。通过舵机云台的转动,可以使摄像头在不同场合拍摄到需要的场景,从而助于系统进行识别并语音播报给用户。在树莓派中可利用Python的GPIO库操作舵机,代码如图3所示,整个影像采集模块如图4所示。

图3 操控舵机的代码

图4 影像采集模块

3.2 数据分析及智能处理模块

数据分析及智能处理模块为整个系统中最为重要的模块,主要分为两部分,一部分为硬件部分,即负责提供算力支持的基于ARM架构的树莓派主控板和提供电力支持的UPS-18650-Lite电源扩展板;另一部分为软件部分,即借助轻量级深度学习框架TensorFlow Lite实现的物体检测、语音播报、道路平整性检测功能的可运行程序。

本模块的硬件部分是搭配Broadcom BCM2711芯片的树莓派4B开发板,该开发板包含1.5 GBHz的四核ARM Cortex-A72 64位处理器,较上一代3B版本运行速度提高了3倍以上,LAN接口支持千兆以太网连接,USB接口支持USB3.0协议,IO扩展接口为拥有40个管脚的GPIO接口,在编程中通过BCM编码或者物理位置编号可以精准定位每一个管脚,从而可以对管脚上接入的每一个电子元件进行通信。为满足系统开发需要,树莓派开发板需安装基于Linux内核的Raspbian操作系统作为底层开发环境。

为树莓派进行供电的为18650-Lite电源扩展板,该扩展板装配了2节可循环充电的3.7 V锂电池,为树莓派提供智能化不间断供电服务。电源供电规格为5 V/3 A。经测试,该智能辅助行进系统可在其电力支持的情况下连续工作5 h。此外,本模块还包括URM09-Analog超声波测距传感器,可以对程序检测到的物体进行测距,以便后期语音播报距离;在平整度检测时也用到该超声波测距传感器进行一定的辅助计算。

本模块的软件部分为基于TensorFlow Lite框架下的可运行程序。TensorFlow Lite是应用于资源受限的边缘设备上的轻量级深度学习优化框架。TensorFlow Lite模型较PyTorch、Caffe等面向复杂工程的人工智能框架而言,具有更快的推理时间和更少的空间消耗,可以在嵌入式设备中使用较小的二进制文件快速初始化,适用于在树莓派上实现实时检测。此框架的工作机理为:首先Converter使用TF模型生成FlatBuffer文件(.tflite),然后将FlatBuffer文件部署到客户端设备(如本系统中的树莓派主板)并使用TensorFlow Lite解释器在本地运行。当运行实时检测程序时,通过训练好的模型运行并处理数据(通过影像采集模块传输的实时视频流),经过解释器(Interpreter)解析检测物,以获得正确的预测结果(以置信度的形式标识,并以矩形框的形式圈出检测物)。整个框架的架构图如图5所示。

图5 TensorFlow Lite架构图

本系统的可运行程序主要实现物体检测和道路平整性检测两个功能。下面将论述各功能点的实现原理。

物体检测功能:物体检测,即系统判定模型识别到的物体的置信度大于设定的数值阈值后,通过矩形框在实时视频流里圈出检测物体的轮廓,并标识置信度,后续通过语音播报的形式告知用户前方出现某某物体,通过超声波测距,告知该物体距离用户多少米。为了训练模型,首先,下载微软的开源数据集MS COCO,其中包含20万张有标注的图片,一共标注了80余个类别,可满足日常见到的大部分物体。通过CNN模型对数据集进行迭代训练,在测试集上正确率达到90%后停止训练。将训练好的模型经过量化处理后转换为tflite格式,减少内存访问中读和存(中间临时量)的时间和空间开销,以便解释器进行高效解析。最后将模型部署在树莓派,通过接收影视采集模块传输过来的视频流,即可实时检测前方物体,以便输出模块进行语音播报。本模块物体检测的测试效果如图6所示。

图6 物体检测效果图

道路平整性检测:此功能依靠超声波传感器,传感器安装在辅助头盔上。传感器向垂直于地面方向发送超声波获得垂直距离h,传感器以偏离垂直方向,倾角30°的方向朝地面发送超声波获得实际倾斜距离值y。根据垂直距离h,通过简单的余弦计算,计算出理论倾斜距离值,若前方道路无隆起或凹陷,理论倾斜距离应等于实际倾斜距离y,若二者不相等,则证明前方道路不平。此时通过输出模块,进行语音提醒。

3.3 输出模块

输出模块的硬件部分为WM8960音频解码扩展板,通过GPIO接口与树莓派相连,板载双通道喇叭接口,可直接驱动扬声器进行语音播报;同时搭载标准3.5 mm耳机接口,也可通过外接耳机进行语音播报。该扩展板功耗低,且支持立体声解码,在本系统中应用效果良好。

输出部分的软件部分为用Python语言编写的可运行程序,借助Python的文本语音转换库pyttsx3实现。通过pyttsx3库中setProperty方法设置好语速、音量等声音信息,通过say方法,以语音的方式告知用户前方障碍物名称以及障碍物到用户的距离,如果前方道路不平,则通过扬声器提醒用户注意脚下安全。此模块的程序需要与数据分析及智能处理模块的程序进行交互,获得实时监测到的物体名称和距离值,以及前方道路平整程度的判断结果。该模块每隔1 s自动接收来自数据分析及智能处理模块传来的数据,进行处理分析后,每隔5 s实时以语音播报的形式告知用户,帮助用户避开前方障碍物,减少因视觉不便产生的困扰。

3.4 外壳模块

本系统的核心软硬件全部装配在外壳,即智能头盔内,由用户佩戴在头部,以辅助出行。外壳整体颜色为灰白色,材质为TUP热塑性聚氨酯材料。头盔中间有销,可以单独旋转,调整到用户需要的角度。树莓派及其配件安置在头盔后部盒盖中,摄像头部分,舵机云台以及超声波测距模块安装在头盔前部,各个模块组装完成后会对头盔的数据线进行封闭处理,并加上柔软的布料使佩戴者佩戴舒适。该外壳通过SolidWorks建模后交由3D打印机打印,各组件轻盈且易于安装,方便用户佩戴。外壳的示意图如图7所示。

图7 智能头盔示意图

4 测试结果

本智能辅助行进系统经过测试后,效果良好。在室外常规场地测试时,可以识别出汽车、行人、树木、猫狗宠物等80余种常见物,识别精度均在90%以上。通过识别算法,优先识别距离小于5 m的物体;识别成功后,在0.5 s内及时进行语音播报处理。在室外道路不平的场地测试时,该系统可实时判断出前方2~5 m处,是否出现凹陷或凸出程度±40 mm的不平路段,并进行语音提醒,避免视力障碍群体摔倒,识别准确度达到85%以上。

5 结语

本文以TensorFlow Lite框架为核心,通过可运行程序处理摄像头拍摄的视频流数据,对实时影像进行检测分析,以语音播报的形式告知视力障碍群体前方的路况信息,道路平整性信息等,从而辅助视力障碍群体单独出行,解决出行不便的问题。该系统通过树莓派提供算力的支持,应用了基于深度学习的物体检测算法,自主研发的道路平整性检测算法等,并通过3D打印技术打印头盔外壳,为视力障碍群体出行提供了一套完整可行的智能化解决方案。

猜你喜欢
树莓舵机头盔
犬用战术头盔
含齿隙弹载舵机的全局反步模糊自适应控制
基于树莓派的骑行智能头盔设计
小头盔,大防护
当头盔遇上高科技
基于dsPIC单片机的飞艇舵机控制实现
基于树莓派的远程家居控制系统的设计
基于高速同步485总线通信的多通道舵机控制器设计
汉字戴头盔
响应面法优化红树莓酒发酵工艺