一种体温及口罩佩戴情况识别装置
2023-05-30高南
高南
摘要:设计了一种体温及口罩佩戴情况识别装置,以单片机 STM32F103为核心组成测温及控制系统,温度监测使用红外线温度传感器,目标人员体温的跟踪检测与个人身份识别。使用OpenMV摄像头由单片机对红外线测温仪和OpenMV的检测数据实时作出反应,并輸出控制指令,由核心控制电路完成测量温度、超标预警和摄像头身份识别等基本操作,以及被测人物不符报警、个人信息录入控制及识别等功能。电路采取了多种抗干扰措施,减少测量误差,工作稳定可靠,提高了测量多种数据的效率。
关键词:OpenMV;STM32F103单片机红外线测温
本文在传统的人工检测方法的基础上设计了一种体温监测及口罩佩戴情况识别装置,该装置具有体温监测、身份识别、是否佩戴口罩、自动报警、数值显示等功能,可在人员流动较大且人工检测复杂的地方安装,弥补了传统人力疲劳缺陷,进一步确保了疫情期间的人员安全。
1总体结构
体温监测及口罩佩戴情况识别装置系统由五大模块组成,分别是核心控制模块、身份识别模块、温度测量模块、LED 显示模块、Wi-Fi 接收模块和语音输出模块。核心控制模块选择 STM32F103单片机,既能搭载OpenMV摄像头,又能实现实时的数据处理。身份识别模块采用OpenMV摄像头。OpenMV搭载MicroPython解释器,可在 PC 机上使用 Python 来编程,并且带处理电路,使机器视觉算法的编程简单化,同时可获得预处理后的图像信息,提高身份识别的速度。温度测量模块 MLX90614是一款用于非接触式的红外温度传感器,得益 MLX90614良好性能﹐体积小、成本低、易集成等,应用广泛。Wi-Fi 接收模块使用 ESP8266, 是一款串口转无线模芯片,内部自带固件,用户操作简单,无需编写时序信号等。LED 模块和语音模块均为本装置的创新设计,分别使用 TFTLCD 液晶显示屏和 DY-SV17F 模块驱动语音,装置下位机结构见图1所示。
2硬件设计
根据本装置设计的基本功能和发挥部分功能的要求,本装置选用 STM32F103单片机为智能控制核心,并采用12 MHz 晶振和上电复位电路。该单片机内部有256kB ROM 和48kB RAM 以及定时器、计数器等,其配置对于本系统已完全够用。再配合上述方案中应用的电子元器件,通过对多个模块的组装,完成简易无接触温度测量与身份识别装置的全部设计和制作。
2.1身份识别电路设计
OpenMV是低功耗的 Python3可编程机器视觉硬件,结合摄像头可以支持一系列广泛的图像处理功能和神经网络。OpenMV使用跨平台 IDE 进行编程,该 IDE 允许查看摄像机的帧缓冲器、访问传感器控件、通过 USB 串行(或 Wi-Fi/BLE 将脚本上传到摄像机。OpenMV基板基于在400 MHz 下运行的 STM32H743 MCU,具有1 MB SRAM、2 MB 闪存、FPU、DSP 和硬件 JPEG 编码器。
2.2温度测量的电路设计
适合人体温度测量的小外形精确 MLX90614红外测温模块正适合本装置的使用。MLX90614电路图见图2,此高精度的温度传感器,温度分辨率要达到0.02℃;距离系数需要达到 S:D=10:1,既测温仪探头到目标之间的距离与被测目标直径之比;采用3.3 V 电源。通上电 MLX90614就会输出所检测出的数据,但此时的数据并非温度数据,而是电压,需要按照精确的电压温度转换计算公式进行运算,才能使返回的数据为温度数据。
红外测温模块 MLX90614有 MLX81101红外热电堆传感器和包括含有稳压电路、低噪声放大器、A/D 转换器、DSP 单元、脉宽调制电路及逻辑控制电路的 MLX90302信号处理芯片构成,见图3。
其中红外热电堆传感器输出的温度信号经过内部低噪声、低失调的运算放大器(OPA)放大后经过 A/D 转换器(ADC)转换为17位数字信号通过可编程 FIR 及 IIR 低通数字滤波器(即 DSP)处理后输出,输出结果存储在其内部 RAM 存储单元中。
2.3语音输出的电路设计
语音输出功能选用语音播放芯片 DY-SV17F,内置 MP3及 WAV 解码,能简单实现语音播放功能。“I/O 组合(独立)模式0”与“I/O 组合(独立)模式1”的区别在于前者模式释放电平后继续播放当前曲目至结束,后者模式释放电平后立即停止播放曲目。提示音需要完整播放,故此装置使用 IO 独立模式0播放报警提示音。I/O 独立模式可以播放8首曲目,分别由8个 I/O 单独控制,见图4。
2.4 LED 显示屏的电路设计
TFTLCD 显示模块的特点是响应时间短,画面清晰,但功耗稍高,显示模式
采用16位的并方式与外部连接。其对外接口见图5所示。
由于数字接口标准尚未统一,所以使用 LCD 时需要根据其手册了解具体接口定义。字符型 LCD 通常有14条引脚线或16条引脚线的 LCD,多出来的2条线是背光电源线 VCC(15脚)和地线 GND(16脚),其控制原理与14脚的 LCD 完全一样,说明如表1所示。
显示屏内部 SoC 的 LCD 控制器引出一定的引脚与 LCD 驱动器连接,按照标准设置一定的时序,再将 LCD 要显示的像素信息放入内存中,在通过设置 LCD 控制器中的寄存器,与 LCD 控制器建立映射,就能在 LCD 中显示出字符或图像。
2.5按键控制的电路设计
按键与 STM32F103单片机直接连接,只要在程序输入相应的代码就可以正常使用,当按下 KEY1按键时,报警温度阙值降低1℃,按下 KEY0按键时,报警温度阙值升高1℃。
2.6测量温度功能
MLX90614红外测温模块使用SMBus协议。对照时序图,首先初始化函数内部参数,接着产生停止位,用于判断是否可继续读取,接着发送起始位,然后发送从机地址和读取指令,如果一切正常就从发起始位,开始读取低8位和高8位数据,再读取校验位,發送停止位表示读取完成,最后对数据进行校验,数据正确就送回数据,否则重新读取。读取后的数据为被测物体表面温度,在测量体温时,通过对多种数据进行直线拟合,得到结果数据绘图。切换成体温测量模式时,红外测温模块所得的数据会经过以下函数的计算,将表面温度数据转换成体温数据输出,见图6。
所得函数为: y=0.4639x +20.841
2.7自动报警功能
由上文可知,语音输出功能选用语音播放芯片 DY-SV17F,自动报警功能即将语音播放芯片 DY-SV17F与 STM32F103单片机搭配,单片机接收从 LMT70温度检测电路输入的逻辑信号和脉冲信号,并将输入的信号进行处理运算,以控制电流或控制电压的形式输出给语音播放芯片 DY-SV17F,完成各项语音播报和警告提醒。
2.8数值显示功能
由原理图可知,TFTLCD 显示屏有128×64个像素点,这为字符及汉字的显示提供了基础。让数值显示在固定位置的流程如下:
首先在文件夹中找到液晶屏驱动文件 LQ12864.c,输入文件中的 LCD_P6x8Str()函数用来打印字符串,之后为 LCD_P6x8Str()函数进行解释,输入 x 和 y 的坐标,即字符串初始打印的坐标,测量温度及身份识别后,数据将会传输至 STM32F103单片机里进行处理,再通过LCD 显示在屏幕上。
2.9下位机 App 功能
手机客户端由 APP Inventor 编程完成,可对该装置的图像信息及温度,口罩佩戴情况进行观测。AppInventor是一款完全在线开发的编程软件,抛去复杂化的程序代码而采用积木式的推叠法来完成 Android 程式。该系列软件自行研发适合手机使用的任意应用程序。通过 ESP8266模块连接上位机和下位机,使服务端信息发送给手机页面,通过 TCP/IP 协议,使其一体化。
2.10 WI-FI 接收模块的电路设计
此芯片使用了 3.3 V 的直流电源,体积小,功耗低,支持透传,丢包现象不严重,价格低。ESP8266 还允许用户自己编写 rom,不仅可以实现数据传输功能,还可控制建立 Wi-Fi 热点,或者作为 Wi-Fi 客户端连接到某指定路由器,同时还可编程控制所有的 GPIO。Wi-Fi 接收模块电路原理图见图 7 所示。
3 软件设计
该装置的身份识别功能由身份学习功能、人脸识别功能、口罩识别功能组成。身份学习功能。OpenMV将所有的与摄像头有关的功能全部封装在了传感器模块中,可以很方便的调用。先使用sensor.reset() 函数初始化摄像头,设置采集照片的格式为灰度图像,灰度图像每个像素仅占 1 字节,在之后的图像特征的提取中处理速度快。再设置每帧的大小,等待摄像头设置完成后会自动拍摄人脸图像,每位拍摄者需要拍摄 20 张人脸图像,存入带有人员编号的文件夹里。常用图像特征提取方法有Haar-like、HoG、LBP 这三种方法,其中 LBP 为嵌入式开发最为推荐的方法,虽然精确度不如前者,但其运算速度快,适合题目实时检测人脸的要求。LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度级不变性等显著的优点。
由于OpenMV拥有图片提取 LBP 特征功能,在拍摄被测人员人脸样本时,先运行OpenMV的sensor.setpixformat(sensor.GRAYSCALE)灰度转换函数,出来的图片已经转化为灰度图,再提取出当前拍摄图像的 LBP 特征函数,将图片与之前文件夹里存入的被测人员的图像逐一比对,比对时会逐一比对所有被测人员的图片,比对完成一组文件夹的图片后会输出比对阙值,之后跳转至下一文件夹再次进行比对,全部识别完毕后找出比对阙值最低的文件夹,最后输出文件夹对应的人员编号或姓名。
口罩识别功能运用了口罩特征点检测和寻找口罩色块的功能,在程序运行前将不同口罩的特征点及各种色块提取完成,方便后续比对。在拍摄出的灰度图中,若被测者戴着口罩,OpenMV会寻找口罩的边缘并画出特征点,当口罩的特征点匹配正确至一定数量时,则程序将显示正确识别口罩并显示被测人员已戴口罩;若特征点识别较少,OpenMV将会寻找口罩色块,匹配成功将正确识别口罩,匹配失败则显示被测人员未佩戴口罩。口罩识别流程图见图9。
4结束语
基于32位微控制器 STM32F103,使用 MX90614红外测温传感器和OpenMV摄像头,再配合 TFTLCD显示屏、ESP8266模块、语音播放芯片 DY-SV17F 等设计了简易无接触温度测量与口罩佩戴情况识别装置。经过测试证明该系统可实现较高精度的温度测量,能够通过蓝牙向计算机传输温度数据,并且具有显示、识别、报警等辅助功能,可满足日常生活的需要。不过,该装置的精度和稳定性等有待进一步提高,以实现更好的红外测温。经验证,该装置测量数据都达到预期目标,实验结果准确。
参考文献:
[1]刘志军.基于SSD算法的口罩检测[J].科学技术创新,2021(24):68-69.
[2]刘启刚,孙向阳,徐伟.针对实时场景的口罩检测模型设计[J].实验技术与管理,2021,38(8):76-81.
[3]余阿祥,李承润,于书仪,等.多注意力机制的口罩检测网络[J].南京师范大学学报(工程技术版),2021,21(1):23-29.
[4]张秀丽,宋蔚.红外体温检测专利技术综述[J].河南科技,2021,40(11):144-146.
[5]淮旭鸽,庄未,梁才航,等.一种身高自适应智能体温检测系统[J].桂林电子科技大学学报,2021,41(5):407-413.
[6]李天睿,谢卫平.体温检测在人脸识别门禁终端的应用[J].电脑与电信,2021(7):68-70.