APP下载

基于深度学习的自主识别智能语音手杖设计

2022-09-14王岩田会峰

电子设计工程 2022年17期
关键词:摄像头阈值远程

王岩,田会峰

(江苏科技大学电气与信息工程学院,江苏张家港 215600)

设计的系统采用Raspberry Pi(树莓派)作为主控制器,其小巧经济,广泛应用于嵌入式与物联网领域。利用Raspberry Pi 自带的CSI 接口(相机串行接口)驱动Pi Camera(树莓派摄像头)捕捉实时画面,通过Frp(快速反向代理)内网穿透上传至华为云服务器ECS,两个USB 接口摄像头则分别进行照片的拍摄与物体的检测识别,照片将自动存储于云存储空间。语音交互综合利用了百度智能云语音技术以及图灵机器人。其余各功能模块,如HC-SR04 模块、MPU6050 模块、GPS 模块,经配置分别完成距离测量、状态检测、位置读取。整个系统使用Button Switch 按键模块作为控制开关。

1 硬件系统设计以及实现

1.1 系统总体设计

系统以Raspberry Pi 作为控制核心,硬件电路由ReSpeaker2-Mics Pi HAT 语音模块、HC-SR04 模块、MPU6050 模块、GPS 定位模块、Button Switch 按键模块、USB 摄像头、Pi Camera 以及扩音器组成,智能手杖总体硬件框图如图1 所示。

图1 总体硬件框图

1.2 系统功能分析

第一,系统能够自动测量前方障碍物的距离,HC-SR04 模块工作原理如图2 所示。距离计算公式为:

图2 HC-SR04模块工作原理

式中,L为模块与障碍物的距离,t2为返回信号接收时间,t1为发出信号时间[1]。一旦距离超过安全阈值,系统及时输出语音警报,以便使用者迅速作出反应[2];

第二,系统能够传输摄像头捕捉到的视频流,并且将实时画面共享至云服务器中,通过设置一定权限保证指定的第三方用户能够访问此监视画面;

第三,系统能够在用户与前方障碍物保持较大距离时满足语音交互需求,用户通过按动按键进行录音后即可享受天气预报、自由对话等多种服务;

第四,手杖能够充当相机,可供使用者随时随地进行拍摄,只需按下按键,系统便自动将照片上传至云存储空间中;

第五,系统能够对摄像头捕捉画面中的各物体进行检测与识别,并给出各自的识别结果及准确率;

第六,系统可对使用者的人体姿态进行检测,如若发现异常,可及时发出求救信息并保持发送状态直至危险解除;

第七,系统定时采集GPS 模块返回的经纬度数据,将其转换为地理位置发送至指定接收方。

涂装是现代产品制造工艺中的重要环节之一,它包括涂装前对被涂物表面的处理、涂布工艺和干燥三个基本工序以及设计合理的涂层系统。传统涂装工艺中,在喷漆、烘干工段会产生大量的有机溶剂气体,其主要成分是甲苯、二甲苯、苯等,这些有害物质外排不仅影响大气环境,而且有火灾和爆炸的环境风险。涂装工艺产生的环境污染与涂料选择、作业环境条件、质量及工艺管理各方面息息相关[1]。

1.3 系统硬件的选择

由于系统所需实现的功能包括语音交互、按键拍照,因而,为满足控制条件的需求,这里选用了两个Button Switch 按键模块。在距离测量方面,选用HC-SR04 超声波测距模块[3]。而对于状态检测,则选用MPU6050 陀螺仪模块,通过设置加速度阈值以保证跌倒即时求救。由于该系统功能模块较多,为避免I/O 口接线混乱,这里选用TTL 转USB 模块将GPS 模块连接到Raspberry Pi 的USB 接口上。

除上述模块选择外,由于Raspberry Pi 没有自带的语音输入通道,因而为满足智能语音交互功能的需求,选用ReSpeaker2-Mics Pi HAT 语音模块作为录音载体。此外,为便于警报语音能够有效反馈至用户处[4],这里选用了音量可调节的扩音器。系统I/O接线图如图3 所示。

图3 I/O接线图

2 系统软件设计

2.1 控制流程设计

系统开启后,Pi Camera 以及两个USB 摄像头独立工作,分别完成物体检测与识别及实时远程监控任务,其余各功能模块相互协调,在具体的控制策略下共同实现按键控制、智能语音交互、拍照存云、摔倒自动求救以及地址定时上报等。系统整体控制流程图如图4 所示。

图4 系统整体控制流程图

2.2 实时远程监控

实时远程监控涉及到的过程有Mjpg-streamer(视频流编码格式传送程序)与Frp 反向代理软件的安装、ini 文件的编辑以及华为云服务器ECS 安全组的配置。安装编译Mjpg-streamer 的目的是在局域网内传输视频流,实行小范围内的画面共享。而其余步骤的操作是为了在执行Frp 内网穿透指令后,Raspberry Pi 的IP 地址能够顺利搭载到公网IP 上,进而,在任一可供上网的设备中输入相应网址便可随时随地查看远程画面。

2.3 语音交互

语音交互关系到语音文件及文本文件的互相转换、机器人回复等过程[5]。前者主要依赖百度智能云语音技术,调用相应API 即可实现,后者则是依赖图灵机器人对转换后的文本作出答复,将其转为mp3文件后便可通过mplayer 语音输出至用户处。

2.4 拍照存云

这里的拍照本质上是摄像头画面的截取,依靠的是Raspberry Pi 小程序fswebcam,以Button Switch模块作为拍摄键。在此基础上,调用七牛云存储空间的API 接口即可实现照片自动存云。

2.5 地址上传

定位功能依赖GPS 模块以及minicom 串口通信工具,运行AT 指令并进行筛选,可从GPS 返回的大量数据中得到经纬度信息。调用百度开放平台的AK 密钥将此经纬度转换成地理位置,开启SMTP 协议后即可定时将其发送至指定邮箱。

3 物体检测与识别实现策略

3.1 YoloV3算法训练目标检测模型

该系统选用的是COCO 数据集,COCO 数据集是一个大型的、丰富的物体检测数据集,其拥有80个不同的物体类别,包含超过33万张图像。由于COCO 数据集是以json 格式存储的,经过必要的转换方可得到训练模型所需的各种图片以及txt 文件。利用labelimg软件对选用的图片进行标签标注后可得到xml文件。

通过YoloV3 算法对上述文件进行训练,经过一段时间可得到损失率最低的h5 权重模型,将此模型转换成TensorFlow的pb模型即可在OpenCV中调用。

3.2 OpenCV图像处理

该系统的物体检测应用OpenCV 对图像进行采集与预处理。图像处理包括将RGB 图像转换为灰度图像,然后将其二值化。处理步骤涉及将对象与背景和其他对象区分开,在此步骤中,使用了非常通用的图像处理方法,即边界检测(Canny 算法)、阈值化以与背景隔离、高斯模糊以柔化细节、从彩色到黑白和二值图像的转换以及轮廓检测。

其中,阈值化采用Otsu算法,使用一个阈值将像素划分为两类,其定义为每个群集的方差的加权和[6-7],如式(2):

式中,nB与no分别是阈值以下与之上的像素数,而δB与δo分别是它们的方差,T是阈值。这样,对既有物体又有背景的图像块进行阈值化、二值化、填充孔洞等处理便可将每个物体很好地分割出来。

3.3 CNN(卷积神经网络)基本原理

物体的识别模型采用的算法是卷积-神经网络[8-9],其依赖的是TensorFlow Lite 学习框架[10-11]。卷积神经网络的神经元模型如图5 所示。

其数学表达式为:

式中,x为输入;w为权重;b为偏置值;f为激活函数。

卷积神经网络主要包括输入层、卷积层、池化层、全连接层、输出层[12]。卷积和池化过程是为了更好地提取图像特征。输入层即输入的原始图像;卷积层一般使用一个正方形卷积核遍历图像上的每一个像素点,图片与卷积核重合区域中的每一个像素值乘上卷积核内相对应点的权重,求和后再加上偏置即可得到输出图片中的一个像素值,如图6 所示。

图6 卷积过程

池化层的目的是进一步降低维度,通过聚合卷积层收集的值进行降维。它们遵循与卷积层相同的滑动窗口思想,但不是计算所有值,而是选择其输入的最大值或平均值,这分别称为最大池化和平均池化。池化处理过程如图7 所示。

图7 池化处理过程

池化层得到的结果需要进行压缩后送入全连接网络,再使用神经元模型公式进行计算,即每个输入值乘以不同的权重并加入偏置,激活后经过多次神经网络连接,在训练过程中舍弃一定的神经元节点,通过Softmax 函数回归,即可得到输出层。

4 系统功能测试

4.1 远程监控测试

系统启动后,使能摄像头,在Linux 命令行中运行相应指令以启用Mjpg-streamer[13]。确定Mjpgstreamer 有效运行的情况下,分别在ECS 云服务器终端以及系统命令行下输入Frp 内网穿透命令,提示连接成功后实时视频流即可源源不断地传送至公网服务器[14]。远程监控实现流程图如图8 所示。

图8 远程监控实现流程图

顺利执行以上各流程后,在任一可上网的设备中输入网址http://公网IP 地址:端口号port/javascript_simple.html,便可进行实时远程监控[15]。经观察,此页面中的画面延迟保持在1 s 以内,延迟时间随云服务器ECS 的不同而发生微小变化。

4.2 物体检测与识别测试

系统开启后,首先确保tflite1-env 虚拟环境处于活动状态,从/home/pi/tflite1 目录中发出python3 TFLite_detection_webcam.py--modeldir=Sample_TFL ite_model 命令来指定识别模型并运行物体检测识别代码[16]。通过观察,物体检测识别画面的传输速率为1 fps 左右,受制于Raspberry Pi 本身的性能约束,此帧数上下波动但变化幅值不大,一般随后台程序数量的减少而有所提升,总体而言,并不影响观感。

4.3 系统总体调试

该系统在实际测试运行时,各功能模块之间相互协调,在具体的控制策略下保持有效运作。系统能够及时反馈距离预警,提供自由对话、天气预报等功能,供使用者便捷管理拍摄的照片,保证跌倒后及时且持续地发送求救信息,在正常使用过程中地理位置也可按照设定定时上报。

此外,在远程监控的第一次调试过程中,即使在确保Raspberry Pi 与云服务器ECS 成功连接的情况下,输入网址后也不能够访问实时画面。经查找,出现这个问题的原因是Raspberry Pi和云服务器ECS的设定时间不一致。该问题的解决方法是通过Python进行网络爬虫,请求一台可以响应的服务器,利用其中的date 属性获取实际时间,再调用os.system()函数执行终端命令,强制设置Raspberry Pi 时间。为实际操作的方便,这里编写了一个Shell 脚本,将此Python文件设为开机自启,这样就省去了每次开机后手动校准时间的麻烦。

5 结束语

该手杖的开发不但结合了现有智能手杖的优点,还充分调用了各种云服务器进行拓展与创新。受助于这些云计算技术,系统能够提供拍照存云、实时远程监控、GPS 定位以及语音交互等功能,这些功能能够有效消除系统受环境限制的弊端。此外,该系统还提出利用TensorFlow Lite 学习框架以及各类算法进行物体的检测与识别,进一步提高了系统对图像的处理能力,有效扩展了应用场景。

猜你喜欢

摄像头阈值远程
浙江首试公路非现场执法新型摄像头
远程求助
摄像头连接器可提供360°视角图像
远程工作狂综合征
土石坝坝体失稳破坏降水阈值的确定方法
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
远程诈骗
基于迟滞比较器的双阈值稳压供电控制电路
奔驰360°摄像头系统介绍
一种改进的小波阈值降噪方法