一不小心,做个全省一等奖:额温枪其实很简单!
扫描二维码
随时随地手机看文章
赛题分析
通过对赛题的分析研究,完成题目的要求需要满足以下几点功能要求:
(1)非接触测量时应当满足的温度范围够大,0-100摄氏度的测温,并且保证精确度;测量体温的时候注意超标报警这一功能,考虑报警的方式为蜂鸣器报警和LED灯闪烁。
(2)身份识别是能分辨不同的人,注意同时出现的情况。
(3)通过神经网络来进行防疫要求的识别(是否佩戴口罩)。
(4)考虑无接触测量模块的灵敏度和面部识别的精确性。
系统原理
利用红外传感器、面部识别模块可以获取人的体温,判断他是否符合防疫标准和身份是否正确,经过信号调理以后,便把数据发送给STM32单片机进行运算处理与判断,并将人的身份和人的体温送OLED显示。
人体体温不在正常范围内时将发出报警。
图1 系统结构框图
硬件部分
我们的装置由控制电路模块、面部识别模块、温度检测模块、电源模块、报警模块和显示模块等多部分组成。
电源模块用于对各电路模块进行供电,面部识别模块由摄像头进行检测识别,红外测温传感器采集温度检测的温度数据值,还会检测温度是否合理,有没有出现异常;
信号调理电路主要采用I/V转换电路、信号放大电路实现对传感器信号的调理;控制电路以STM32单片机为控制核心,对各类信号进行运算处理;
显示模块用于显示系统的相关参数。对于各个模块的选择思路如下:
3.1 控制器的选择
在控制器的选择是,我们需要考虑的大部分参数为时钟频率、单片机上的外设、外设的基本参数、单片机计算位数。我们先选择单片机位数,在8位、16位与32位之间,我们最终选择了32位,因为其成本相差不大,32位单片机也是我们使用的最多的。
我们可以使用的32位单片机有STM32与TIVA C 俩款,但由于赛题没有要求,所以我们选择的是最熟悉的STM32单片机作为控制器。
3.2 无接触测温方案的选用
在无线测温方面,我们赛前训练时,学习了单点式(一个测量点)测温传感器TN901、矩阵式(8*8个测温点)测温传感器AMG8833,等2种无线测温模块。
但是通过赛题分析,我们发现题目要求中更多的单个测温位置的温度测量,虽然矩阵式也可以当作单点式来使用,不过由于我们学习了单点式的使用,而且矩阵式转换成单点式传感器使用时测量精度不够理想。
所以最终我们选择的还是单点式传感器TN901。
3.3 身份识别方案的选用
身份识别的方案上,我们遇到了难题,我们一开始选用的是Openmv摄像头模块,但是它在人脸识别上的测量精度都没有达到我们心中的要求,正在我们一筹莫展的时候,我们发现了一款新的摄像头模块--K210,它对人脸识别准确度让我们很惊喜,并且在口罩识别的方面,K210的测试效果也很好,所以最终我们敲定了K210摄像头模块作为我们的身份识别方案。
3.4 作品结构的设计:
对于电子设计来说,如果电路是作品的神经,那么作品结构就是它的骨骼了,结构是作品至关重要的一环,它对作品的稳定性、测量误差的影响是不小的。如果设计不好,小则误差范围失控,大则整个系统都会出现不可逆转的崩溃。
所以我们最终为了摄像头模块的稳定,选择了三脚架作为支持,使得人脸识别
更加精准。
软件部分
软件程序主要由显示程序、身份识别、温度测量、滤波算法等多个部分组成,单片机主要采用C语言编程,执行效率高,完成温度测量与补偿,温度超标报警等功能;
K210则是采用python编程,编程效率高,便于实现复杂算法。显示程序用于显示各个功能的测量参数与菜单界面,温度测量程序通过SPI的协议测量温度,并通过滤波算法使温度测量值的误差降低。
身份识别程序则是通过K210进行人脸识别与口罩识别 。
4.1 显示程序思路
在OLED上显示菜单,菜单主要功能有设置模式:温度报警值设置、温度测量功能选择、温度测量模式切换、人脸识别与口罩检测功能的选择;
温度测量时可以将温度数值小数部分也显示出来,人脸识别的时候,可以将识别到的人名字显示出来,若带了口罩,会增加一个口罩符号的显示,如果是陌生人怎会显示ERROR。
4.2 温度测量设计思路
无接触式温度测量时,我们采用的TN901的测温模块,它工作后通过特殊通讯格式,将数据传输给单片机,而它给单片机的数据就是二进制数据,我们需要将二进制数据进行解码、转换、提取得到一个简单的、可以用于计算与显示的数值数据。
4.3 身份识别设计思路
在身份识别上,我们对K210模块进行程序编写时,采用的是Python语言,通过Python语言编写代码可以让摄像头检测到人脸,然后对比人脸的多点数据,如果匹配到对应的人员,便通过串行数据传输总线,发送一个简单的数值数据给单片机,单片机接收到以后便进行相应的显示,口罩识别也同样如此。
而现场录入功能,我们通过按键作为信息录入的开关,按键按下便将摄像头中的人脸数据录入系统。
4.4 滤波算法
在滤波算法上,由于数据的稳定性好看的过去,只是时不时会出现偶然的干扰数据。
所以我们选用的是中位值平均滤波算法,它又被称为防脉冲干扰平均滤波算法。通过连续采集多个数据,去掉最大与最小值;
然后计算N-2个数据的平均值作为滤波后的温度值。这种滤波算法对周期性干扰有良好的抑制作用,平滑度高。
结论
通过多次的测试,我们的设计满足题目的要求,可以通过非接触式测量人体和物体温度,有光标指示被测点,超标,身份识别,身份不符报警,防疫要求判别,现场学习被测人身份并识别等任务,识别戴了口罩的同时识别戴口罩人的身报警份这一功能超出题目要求。
基本部分功能与发挥部分功能均工作正常,各动作所用时间短,各项指标均达到题目要求。
展示
图2 测温
图3 人脸识别
飞机上一般是什么操作系统?
高速CAN、容错CAN、LIN总线有什么区别?
大佬终于把鸿蒙OS讲明白了,收藏了!
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!