基于STM32的智能体温监测系统

2021-11-08 08:21黄晨浩宋鑫钰卢诗骄薛奇琪
科技尚品 2021年10期
关键词:机器学习人脸识别

黄晨浩 宋鑫钰 卢诗骄 薛奇琪

摘 要:笔者基于STM32单片机和机智云平台,设计了一款智能体温监测系统。在红外测温模块的基础上,结合了人脸识别模块和超声波测距温度补偿模块,在被测量人员进入测量范围时,人脸识别模块采集人脸信息并与数据库对比,以确定人员身份信息;同时,启动红外测温模块检测体温,利用超声波测距补偿温度,降低因测量人员与测温装置之间距离的变化而产生的温漂现象;测量完成后,将人员身份信息和补偿后的温度数据发送给PC端串口助手和机智云App,使管理人员可以实时监测人员的体温信息。

关键词:体温监测;人脸识别;温度补偿;STM32;机器学习

中图分类号:TP332 文献标识码:A 文章编号:1674-1064(2021)10-003-02

DOI:10.12310/j.issn.1674-1064.2021.10.002

疫情常态化防控下,体温监测是一项重要任务,传统的体温监测不仅浪费大量人力,而且登记个人信息和体温的过程过于繁琐、效率低,增加了病毒传染的风险。本项目采用人脸识别+体温检测,在测量体温的同时,可以自动识别人脸信息、辨别身份,体温测量完成后将体温数据和被测量者的ID上传到PC端。同时,可以对测量的数据进行数据分析,方便提取。本项目可以应用于学校、车站、工厂、公司等人流密集的场所,可以提前将人脸信息采集进系统并编号,在测量体温时可以直接识别身份,也可以在测量体温的同时录入人脸信息。管理者可以实时监测人员的体温情况,以便更好地应对突发情况。本项目节省了测量体温时的人力成本,方便了管理者的监测,提高了测量体温的效率,应用潜力较大[1]。

1 系统总体设计

本系统主要分为硬件和软件部分。硬件部分包括STM32连接电路设计、红外测温模块、超声波测距模块;软件部分包括STM32单片机代码编写、OpenMV人脸识别模块相关代码的编写、机智云平台提供的相关代码的编写。

该系统能够利用红外测温模块检测体温,并利用超声波测距补偿温度,减少因测量人员与测温装置之间距离的变化而产生的温漂现象。当测量人员进入测温范围时,通过控制开关采集人脸信息,确定人员编号,将人员编号信息和温度数据通过串口传给PC端的串口调试助手,使管理人员可以实时监测人员体温信息。

2 系统硬件设计

硬件主要担任着温度采集、温度补偿、人脸识别,以及将温度数据和人员编号上传到PC端的串口调试助手等任务。本系统使用ST公司生产的STM32F103ZET6开发板为主控核心板,并配合红外测温模块、超声波测距模块以及OpenMV人脸识别模块等。

2.1 红外测温模块

笔者采用的测温模块是Melexis的红外传感器MLX90614,基于热反应堆技术,工作在3 V,工作温度范围在-40 ℃~125 ℃,其测量分辨率高达0.02 ℃,可以达到测量人体温度的要求。但是在实际长距离测温中,使用MLX90614测量的温度误差很大,这是因为红外传感器测温精度与被测热源距离有关。所以,在这个基础上,为了提高测量的精确度,笔者使用了超声波测距温度补偿模块来降低由于距离造成的误差。

2.2 超声波测距温度补偿模块

在测量过程中,笔者发现随着测温者距离的远近,相应的温度会有大幅度变化,这还远远达不到精准测温的目的。于是,笔者利用了机器学习中的有监督学习,利用一组已知类别的样本调整温度补偿模块的参数,使其达到所要求性能的过程,主要用于新数据的温度补偿。监督学习的最终目标是,根据在学习过程中所获得的经验、技能,对没有学习过的距离和温度数据进行补偿,使温度数据接近真实的温度数据[2]。

本次实验过程中,采集了多组实际温度为36.5 ℃,与红外传感器测温精度与被测热源不同距离下的测量温度,如表1所示,用于构建训练集模型,该模型如图1所示。

用训练集模型拟合温度补偿函数,经过比较,一元三次函数更接近实际温度,该函数如图2、图3、图4、图5所示。

f(x)=t0-0.0003595*x^3+0.02385*x^2+(-0.1949)*x+1.039(t0为测量温度)。

用测试集模型评估构建好的模型。采集实际温度为36.5 ℃的不同距离下的补偿温度,将补偿温度与实际温度比较,评估构建好的模型,如图6所示。

经验证,温度补偿函数得到的温度和实际温度误差小于0.4 ℃,能够满足疫情防控下的体温测量要求,如图6所示。

从实践意义上说,机器学习是一种通过利用数据,训练出模型,再使用模型进行预测的方法。通过监督学习,红外测温模块结合温度补偿函数,可以比较真实地测量不同距离下的人体温度。

3 软件系统设计

该系统的软件部分采用Python语言编程,Python语言功能强大又易于开发,具有可移植性、可扩展性、丰富的第三方库等优点。利用Python语言进行编程有很大的优势,在此基础上进行开发,可以极大提高开发效率。同时,在电脑端使用机智云,将得到的数据进行最基本的记录和分析,上传到手机客户端实现信息的实时观测,提醒被检测人的温度是否异常。

3.1 OpenMV人脸识别模块软件编写

前文已经详细介绍了OpenMV人脸识别模块的硬件部分,OpenMV与STM32通信和人脸识别代码采用Python语言编程。在OpenMV软件中采用Python语言编程,构造take_photoes函数、face_recognition1函数。当OpenMV通过串口接收到STM32发送来的“1”指令时,调用take_photoes函数,OpenMV识别现场人员,采集人脸特征值,并将人脸数据编号存在SD中。当OpenMV通过串口接收到STM32发送来的“2”指令时,调用face_recognition1函数,对人员进行拍照,并和SD卡人脸数据进行对比,找到特征值相似度最高的编号,将编号通过串口发给STM32。

3.2 手机App编写

3.2.1 机智云平台

机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务。同时,机智云现提供三种App(集成SDK、使用App开源框架、使用App自动生成)开发方式,针对不同开发者的不同需求,帮助开发者更加快速地开发自己的App。因此,笔者的系统接入机智云进行开发,可以实时在移动端监测人员体温。

3.2.2 App显示界面

手机App显示界面可以显示多人温度数据和一人温度数据,手机界面显示如圖7所示。管理人员可以同时查看多人的温度数据,也可以实时显示人员一人的温度数据。

4 结语

文章旨在用STM32和手机App搭建一套集体温采集、温度补偿、人脸识别、体温监测于一体的低成本现代化智能体温监测系统。通过手机App的实时监测,实现智能化管理,完善数据管理功能。本系统具有实用性,在疫情防控常态化背景下,高校封闭的同时,需要密切关注学生的体温情况。利用该系统,管理人员可以实时监测人员体温,及时发现异常情况。同时,该系统还有很大的扩展性,可以应用于学校、车站、工厂、公司等人员密集的场所。可以安装在学校内,在测量体温的同时,记录学生上课的出勤情况,便于学生养成良好的上课习惯。也可以结合门禁系统,安装在宿舍楼门口,在测量体温的同时,记录学生进出宿舍楼的时间。

参考文献

[1] 李俊杰,刘成林,朱明.基于多任务CNN的监控视频中异常行人快速检测[J].计算机系统应用,2018,27(11):78-83.

[2] 司家瑞.浅谈机器学习在医学大数据中的应用[J].科技展望,2016,26(23):304.

猜你喜欢
机器学习人脸识别
人脸识别的“国标”来了
中科视拓开放商业版本人脸识别算法
荣耀畅玩7C:人脸识别
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
“人脸识别”人工智能测谎仪研发成功