疫情常态化背景下密集场所人流与安全监控系统设计
2022-01-28李澳鹏刘鑫潘文敏刘会衡通讯作者
李澳鹏,刘鑫,潘文敏,刘会衡(通讯作者)
(湖北文理学院 物理与电子工程学院,湖北襄阳,441053)
0 引言
2019 年全球经历了新冠肺炎,在如今经济复苏的情况下,维护公共卫生安全是重中之重。在公共场合暴露出了很多需要解决的问题,如控制密集场所下的人流量、人体体温的检测、佩戴口罩的情况等等。这些问题的疏忽都会导致疫情的传播,也会对经济复苏带来较大的影响。所以在密集场所对人流与安全监控是非常积极而且有效益的,本文针对这一问题设计了一种密集场所人流监控和体温检测系统,以实现密集场所人流、体温和口罩佩戴情况的智能化监管。
1 系统总体方案设计
疫情常态化背景下的密集场所人流控制与安全监控系统基本原理如图1 所示。该系统主要以STM32 单片机为主控制器,采用OpenMV4 进行人头像的采集,通过STM32单片机对采集好的头像进行分析,通过STM32 单片机的温度检测系统来对行人进行体温检查,检测行人的体温是否异常,同时利用STM32 单片机的语音系统来进行语音播报。首先,系统会对行人的体温进行检测,如果行人的体温大于37.3℃,系统将语音播报“您体温异常”,在体温正常的情况下,其次会对行人继续是否佩戴口罩的检测,如果发现行人未佩戴口罩,语音系统将播报“请佩戴口罩”,系统会根据当时场所的人流量是否达到最大值,如果达到最大值,系统将语音播报“请稍等”,如果未达到最大值,系统将语音播报“欢迎进入”。
图1 系统总体结构图
2 硬件系统设计
■2.1 人流监控模块
人流监控模块的结构如图2 所示。人流监控模块选OpenMV4 H7 作为硬件控制器,OpenMV 是以STM32CPU为核心,是个集成图像识别算法的摄像头,用它本身自带的OV7725 感光原件的摄像头对来往的人群头像进行采集,在硬件模块上,合理运用C 语言实现了核心机器的视觉算法,再通过Python 编程接口,其中MicroPython 是Python3 语言的软件实现,系统使用MicroPython 语言在OpenMV 上调用图像处理相关算法和相关库函数对人流进行检测是否佩戴口罩。把labbles.txt 和trained.tflite 拖到OpenMV4 H7 中,使用OpenMV IDE运行ei_image_classification.py,在液晶显示器上就可以看到结果。采用STM32 单片机的优点在于使用ARM 构架的Cortex-M4 内核,利用TFT 液晶显示器呈现出图片。
图2 人流监管系统设计
■2.2 体温检测模块
本系统是基于STM32 微控制器所设计的人体温度测量系统,STM32 控制电路图如图3 所示。电压采集用数字模块,单片机通过与模块通信获取温度,驱动LED 数码管进行显示。整个系统模块分成了四个模块,分别是主芯片模块,电源模块,液晶显示模块和温度检测模块和电源模块。其中DS18B20 是进行温度测量单总线数字温度测量芯片,它具有体积很小,硬件开销低,抗干扰能力强的特点,DS18B20 连接地和电源之后,它的数据端接在STM32 单片机的引脚,DS18B20 返回16 位二进制数据,高五位表示温度正负信息量,五位全1 代表负值,反之则代表为正值,其低十一位数据表示温度的绝对值,11 位数据值转换为10 进制,乘以0.0625,即是测量温度值。最后将温度值用数码管进行驱动显示,液晶是控制显示部分。主控电路由SITM32F103RBT6 及外围电路组成,是系统的核心部分,用来完成数据的传输和处理工作整个系统。
图3 STM32 控制电路结构图
■2.3 语音播报模块
语音播报模块利用串口使STM32 和LD3320 模块进行数据通信,采用这样的设计是因为只需要预留一个串口,就可以为设备添加语音控制功能,而且这种方式特别灵活我们可以自己修改其中的程序。LD3320 是非特定语音识别芯片,LD3320 语音模块可以工作在三种模式下,分别为普通模式,按键模式,口令模式。LD3320 语音芯片的驱动主要是依靠模块中自带的STC11L08 单片机驱动的,我们自己可以修改模块自带的Demo 程序,修改程序中的关键词,然后将识别的结果通过串口打印出来,我们可以使用另外一个MCU 与该模块进行串口通信,然后分析系统收到的串口指令,进而做出响应的指令动作。简单来说我们首先编译程序下载程序至LD3320 模块中,对LD3320 串口输出测试,然后硬件连接,收到来自LD3320 的串口数据,检测是否正确,如果在检测过程中出现语音播报的错误,我们可以添加一些其他词汇进入识别列表,这些词汇可以用来吸收一些错误词汇,从而有效地使错误率降低,最终可以使系统准确地播报出“您体温异常”,“请佩戴口罩”,“请等候”以及“欢迎光临”的语音。
3 系统软件设计
■3.1 人流监控系统
程序框图如图4 所示。
图4 人流监控程序框图
编程主要通过C 语音实现核心机器的视觉算法,用MicroPython 语言在OpenMV 上调用图像处理相关算法和相关库函数,人脸识别系统首先通过对加载分类器文件进行处理,处理完之后加载待检测的图像,显示出即将分析的图像,通过判断图像是否为灰度图,若图像不符合灰色度要求就进行灰色都处理,若符合灰色度的要求继续通过一级到三级的逐级处理和分析,分析中出现不符合灰色度的要求,就需要重新进行灰色度处理,最后做到人脸识别。使用MicroPython 语言在OpenMV 上调用图像处理的代码相关部分代码如下:
■3.2 体温检测系统
程序框图如图5 所示。对STM32 单片机系统温度检测系统设置好限定的温度之后,当人群进入可以检测的范围的时候,首先通过测量行人的体温,如果行人温度超过37.3℃,语音播报就会播报出“您的体温异常”,行人体温未超过温度报警值,语音就会播报“欢迎进入”。其中DS18B20 模块进行初始化操作,写操作,读操作的过程,温度读取的过程主要是先复位,进行发SKIP ROM 命令,发送开始转换命令,进行延时、复位、发送SKIP ROM 命令,发读存储器命令,连续读出两个字节数据然后结束,最后达到温度测量及显示,部分代码如下所示:
图5 温度检测程序框图
■3.3 语音播报系统
程序首先记录识别码,然后进行延时初始化,LED初始化,SD 卡初始化,通过对采集的信息处理之后,PlayDemoSound_mp3 表示播放文件,将口令录入播放文件中。设计了1s 的时延,这样可以避免出现紊乱,收到不同的指令之后做出不同的声音播报,分别设计了四种口令,口令1 为“欢迎进入”,口令2 为“请佩戴口罩”,口令3 为“您体温异常”,口令4 为“请稍等”,当温度检测和人脸识别系统做出回应之后,语音播报系统就做出相应的语音播报,没有语音播报的情况下,就关闭了LED 显示。主要程序代码如下:
4 结束语
本文设计了一种疫情常态化背景下密集场所人流与安全监控系统。该系统主要由人流监测和语音播报以及温度检测模块组成,可以检测人流的情况以及对人员体温和人员是否佩戴口罩的情况进行监测,从而加强超市、商场、景区等密集场所的疫情防控,促进社会公共卫生安全。所设计的系统结构简单,成本较低,具有较好的应用前景。