APP下载

一种无接触温度测量与身份识别装置的设计

2022-05-19邱意敏

平顶山学院学报 2022年2期
关键词:人脸卷积神经网络

邱意敏,李 炜

(1.安徽工程大学 电气工程学院,安徽 芜湖 241000;2.安徽工程大学 检测技术与节能装置安徽省重点实验室,安徽 芜湖 241000)

0 引言

目前,常见的体温测量装置有水银温度计、红外额温枪、红外耳温枪及远距离测温仪.其中,水银温度计虽然测量体温相对比较准确,但存在不能快速得知测量结果、破损后易造成较大危害、不能自动上报记录等缺点[1];红外额温枪测量温度较为准确,价格适中,但存在不能自动上报记录的缺点[2];红外耳温枪测量温度较为准确,但存在操作烦琐、对操作人员要求高、不能自动上报记录等缺点[3];远距离测温仪虽然能够实现远距离温度的自动测量,但存在易受环境温度影响、测量误差较大、价钱昂贵、不能自动上报记录等缺点[4].因此,设计与研究一个操作方便、测量温度较为准确且能够自动上报记录的测温装置,可以将工作人员从繁复机械式的工作中解放出来,具有一定的意义.

1 总体设计

针对目前体温测量装置存在的测量误差大、操作烦琐、不能自动上报记录等缺点,设计了一个简易无接触温度测量与身份识别装置.该装置由处理器模块、温度测量模块、身份识别模块、电源模块、语音模块、通信模块和按键模块组成,具体框架如图1所示.

图1 总体架构

其中,处理器模块主要是协调处理其他各个模块的工作,如处理温度测量模块和身份识别采集的数据、存储温度和身份信息、发送控制指令等;温度测量模块主要是利用红外检测的原理进行无接触的温度测量;身份识别模块主要是对被测者身份进行识别;按键模块主要是对温度阈值进行设置;语音模块主要是用语音播报温度、身份及报警提示;通信模块主要是将相关温度和身份信息上传.为了提高该装置的检测准确性,拟使用基于遗传算法的BP神经网络算法、卷积神经网络和联合稀疏表示对采集的温度数据和人脸图片进行处理.

2 硬件设计

2.1 电源模块

根据总体设计,该装置中各模块的工作电压不同,故对电源模块进行设计时,需将该装置3种不同的工作电压,即7.2 V、5 V和3.3 V考虑进来.其中,7.2 V电压可以直接由镍镉电池提供;5 V电压可以通过两块AMS1117-5V芯片将7.2 V电压转换为5 V,分别为STM32F407最小系统板和身份识别模块供电,具体电压转换电路如图2所示;3.3 V电压可以再通过两块AMS1117-3.3V芯片将5V电压转换成3.3 V,分别为温度检测模块和其他3.3 V模块供电,具体电压转换电路如图3所示.在这里,由于使用了多个LDO芯片,故所有模块均能保持稳定的工作电源.

图2 7.2 V转5 V电路

图3 5 V转3.3 V电路

2.2 处理器模块

由无接触温度测量与身份识别装置的总体设计可以看出,该装置需要快速处理大量数据,且需要快速简便地记录数据.STM32F407是一款32位高性能的ARM Cortex-M4处理器,数据处理速度快,即时响应度高,内存较大,可供选择的引脚数量多[5],库函数丰富,性价比高,能够较好地满足该装置设计的需要.

2.3 温度测量模块

温度检测分为接触式和非接触式[6],由于非接触式测温受空间的影响较小,能够有效减少测试者与被测者的接触,故选择非接触式温度触感器.MLX90614是一款利用红外检测温度原理的传感器[7],通过内部状态机控制被测物体的温度测量,其输出数据和物体温度呈线性比例,具有高精度和高分辨率的特点.测量温度的原理如图4所示.MLX90614的温度测量范围在-70 ℃和382.2 ℃之间,在室温范围内温度测量误差为±0.5 ℃,在人体温度范围内温度测量误差为±0.1 ℃,分辨率为0.02 ℃.温度测量模块的具体设计电路如图5所示.其中,J5端子中的4个接口用杜邦线与相应管脚连接,具体如下:1口接地,2、3口接STM32F407的PD1和PD2管脚,4口接3.3 V电源.

图4 温度传感器测温原理

图5 温度测量模块电路

2.4 身份识别模块

根据身份识别模块的功能需要,选择Maix Dock开发板的AI芯片K210作为核心单元.K210是一款具有独立FPU的双核处理器,64位的CPU位宽、8M片内SRAM、400M可调标称频率,支持乘法、除法和平方根运算的双精度FPU,在机器识别和人脸检测方面表现突出.身份识别模块的具体设计电路如图6所示.

图6 身份识别模块电路

2.5 通信模块

通信模块主要是将相关温度和身份信息上传,为了避免有线连接的束缚,这里选用无线通信方式.nRF2401是一款工作频率高达2.4 GHz的基于射频技术的无线通信芯片,具有抗干扰性强、功耗低、传输速率快、所需外围元器件少等优点,能较好地满足无接触温度测量与身份识别装置的设计需要.通信模块的具体设计电路如图7所示.

图7 通信模块电路

3 软件设计

3.1 温度数据处理

该装置利用MLX90614作为温度传感器,通过对比热电堆的输出电压和冷端温度信号的差值得出被测物体温度,温度测量的准确性易受冷端温度信号的准确性影响.此外,作为红外温度传感器,测温的准确性受到被测物体表面发射率的影响,仅依靠人工改变发射率的修正系数难免会对温度数据的精度有一定的影响.因此,为了提高测量温度数据的准确性,利用基于遗传算法的BP神经网络算法对检测的温度数据进行处理[8].具体步骤如下.

1)收集大量的MLX90614的测量温度数据和标准仪器测量温度数据,构成一个温度数据集.

2)将温度数据集分成两个部分,一个作为训练样本,一个作为测试样本,并用训练样本对BP神经网络进行训练.

3)计算预测输出与实际输出的误差值,以此值作为遗传算法的适应度值.

4)设置进化代数计数器t和最大进化代数T,随机产生M个个体,并将这些个体作为初始群体P(0).

5)计算出P(t)中个体的适应度值,选出最优个体,看其是否满足迭代要求,若满足条件,则进入步骤6);若不满足条件,则通过选择、交叉、变异操作,产生新的群体P(t+1),再重复此步骤的过程直至满足迭代要求为止.

6)用得到的最优个体对BP神经网络的权值和阈值进行赋值,并对新的BP神经网络进行训练.

7)计算新的BP神经网络预测输出和实际输出的误差是否满足误差要求,若满足条件,则结束,若不满足条件,则返回步骤3).

3.2 身份识别设计

该装置身份识别的功能主要是通过对人脸进行识别实现的,而目前常用的人脸识别技术是特征提取识别和模式分类识别.通常来说,神经网络在人脸特征提取方面具有一定优势,而稀疏表示在模式分类方面具有一定优势.在这里,采用卷积神经网络和联合稀疏表示相结合的方式对人脸进行识别,具体流程如图8所示.其中,卷积神经网络主要用于人脸特征的提取,联合稀疏表示主要对特征进行融合并分类,该方法能实现优势互补,提高人脸识别的准确率.

图8 人脸图像训练的流程

3.2.1 深度特征提取

卷积神经网络是一个类似人工神经网络的多层感知器,主要是利用卷积核对输入图像的多层次特征进行学习,再根据特征对其进行分类[9-12].由此可看出,它能以多个特征图作为输入,无须经过特征提取和数据重建的过程就能对图像进行训练,能够较好地满足人脸识别的要求[13-14].根据该装置身份识别的需要,设计了一个如图9所示的卷积神经网络结构,包括3个卷积层、3个池化层和2个全连接层,最终完成对同一幅图像多个深度特征的提取.其中:3个卷积层分别通过不同数量的卷积核对输入图像的多层次特征进行学习,并利用向量串联得到相应的特征向量;3个池化层主要是利用最大值池化降低卷积层输出特征矢量的维度,以便简化网络的复杂度;全连接层是先利用Dropout机制去拟合化,再利用Softmax函数进行分类,进而得到多个深度特征向量和相应的全局字典.整个深度特征的过程均利用Python编程实现,而为了提升网络的非线性处理能力,选取ReLU(分段线性函数)作为激活函数.

图9 卷积神经网络结构

3.2.2 深度特征融合及分类

为了更好地进行人脸识别,利用联合稀疏表示对上述卷积神经网络训练得到的深度特征进行特征融合并判定目标类型[15-16].结合该装置人脸识别精度的需要,以20类人脸和3个深度特征分别作为联合稀疏表示的模式类种类数量和特征种类数量.

yi=XiΓi+Ni,i=1,2,3.

(1)

为了使识别的准确性提高,就需使表达式y≈XΓ成立.而联合稀疏矩阵可以通过组合各个深度特征对应的稀疏矩阵得到,再将稀疏矩阵Γ范数约束取为l1/l2.因此,该问题可以优化成对式(2)进行求解的问题.式中,λ是预设的参数,αk是稀疏矩阵的Γ的第k行.

(2)

(3)

3.3 程序设计

无接触温度测量与身份识别装置的程序流程如图10所示,一旦检测到温度不在设置的温度范围内,则语音提示温度异常.与此同时,进行身份识别:若身份识别不正确,则语音提示温度和身份均异常;若身份识别正确,则将检测到的温度数据和身份信息进行打包通过通信模块发送至后台,以实现异常温度数据的自动上传.

图10 程序设计总框图

根据前面的叙述,为了提高装置的温度和身份识别的准确性,该装置还具有对非接触测温和身份识别数据进行训练的功能.为了降低无接触温度测量与身份识别装置程序编写和调试的难度,这里采用模块化编程.其中:非接触温度测量部分主要是通过不断地将测量的人体和液体的温度数据与标准温度测量设备测出的温度数据进行对比,再利用基于遗传算法的BP神经网络算法对数据进行处理,得出准确的温度测量模型;身份识别部分则是使用大量的目标图片通过卷积神经网络和联合稀疏表示训练出准确的人脸识别模型,并利用该模型进行人脸的识别,具体流程如图11所示.

图11 身份识别流程

部分程序如下:

train_data=np.random.permutation(train_data) #

test_data=np.random.permutation(test_datal)

train_label=np.random.permutation(train_label)

test_data=np.random.permutation(test_datal)

……

self.model.add(Convolution2D(64,5,5,border_mode='same')) #卷积层

self.model.add(Activation('relu')) #激活函数

self.model.add(MaxPooling2D(pool_size=(2,2))) #池化层

self.model.add(Dropout(0.25)) #Dropout层

self.model.add(Activation('softmax')) #分类层

4 测试方案与测试结果

4.1 测试方案

笔者设计的非接触温度测量和身份识别装置的实物如图12所示.为了检测装置各项功能的准确性,利用液体容器和标准温度测量设备,分别进行非接触温度测量功能和身份识别功能的测试.

图12 无接触温度测量与身份识别装置实物图

非接触温度测量功能的测试情形做如下分类:被测者和容器中的液态水依次位于无接触温度测量装置前1~4 cm处,按下按键开始检测,并通过语音模块播报温度数据,同时使用标准温度测量设备测量被测物体,将两者温度进行比较,观察测量误差;在28 ℃到48 ℃之间进行测量,通过按键设置报警温度阈值在30 ℃到46 ℃之间,当检测温度超过阈值时,装置报警,反之不报警.

身份识别功能的测试情形做如下分类:提前输入被测者姓名,当输入的姓名与识别到的人身份不符时,装置报警,反之不报警;观察装置是否能够现场随机录入工作人员的身份信息,若是则记录完成学习的时间,并且验证装置在完成学习之后能否进行身份识别.

4.2 测试结果

根据上述测试步骤,可以得到人体体温测量、液体温度测量、温度超标报警、身份识别和现场学习的部分测试结果(表1~表5).

表1 人体体温测量 单位:℃

表2 液体温度测量 单位:℃

表3 温度超标报警 单位:℃

表4 身份识别

表5 现场学习

从测试结果可以看出,该装置能够实现非接触温度测量及身份识别的功能,测量出的温度值与标准温度测量设备的误差在2 ℃以内,测量人体体温的误差不超过0.5 ℃,测量精度较高.此外,该装置能在10 min内学习被测人的身份特征并进行身份识别.

5 结论

笔者设计的非接触温度测量和身份识别装置,利用基于遗传算法的BP神经网络算法、卷积神经网络和联合稀疏表示分别对温度数据、人脸图片进行处理,能较好地实现温度测量及报警、人脸识别、现场学习等功能.

猜你喜欢

人脸卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
玻璃窗上的人脸
三次样条和二次删除相辅助的WASD神经网络与日本人口预测