简易无接触温度测量与身份识别装置
2022-06-21蔡斌杰周牡丹
蔡斌杰,李 哲,周牡丹,陈 锦
(厦门大学嘉庚学院,福建 漳州 363123)
0 引 言
目前,新冠肺炎在多国肆虐,对人们的生命健康和社会经济发展带来了巨大威胁。中国在防控疫情的过程中,在人员流动的各类入口位置(包括超市入口、地铁/火车站入口等),以及其他各类公共场所进行了广泛的体温筛查,经验表明,这对于及早发现潜在感染者、阻断疫情传播具有帮助。我国在2003年初步应用红外测温技术筛查体温,其无接触、高效、准确的优势得到了专业人员的认可,在之后防御禽流感、甲型流感,包括新冠肺炎疫情中都发挥了重大作用。但市面上现有的全自动红外测温装置大多为医院、商超等人流量大的公共场所设计,体积大,价格昂贵。而手持式红外测温装置的测量准确度受其操作方法的影响大,且功能单一。市面上现有这两类红外测温装置并不完全适合学校、办公室这类规模相对较小的公共场所。为了将传染病防控落实到每一个角落,设计一款价格低廉、功能多样的新型红外测温装置具有重要的社会意义。
1 主要算法和原理
1.1 类Haar人脸检测算法
1.1.1 Haar-Like特征
在最早对于人脸检测的研究中,像素特征被大量使用,但识别效果并不理想。为了实现更好的人脸检测,Viola提出了由2个或2个以上全等矩形相邻组合形成的Haar-Like特征。Haar-Like特征是黑色矩形和白色矩形在图像子窗口中对应区域的灰度级总和之差。Haar-Like特征能够有效反映图像局部灰度变化信息,而且具有可以通过积分图快速计算的特点。在实际应用中,4种Haar-Like特征不足以满足对于不同应用场景下对于人脸识别检测的需求。后续,基于4种基本Haar-Like特征衍生出Haarlem-Like特征,可以被分为边缘特征、线性特征和中心特征,方便并加快了对于目标的识别。
1.1.2 Adaboost算法
Adaboost是一种迭代算法,通过多次迭代将大量弱分类器按照权重叠加,得到效果理想的强分类器。初始时各训练样本权值默认相等,按照既定程序训练后得到弱分类器,反复迭代。在第次迭代中,权值由第-1次迭代的结果决定。每次迭代完成都需要重新计算一次权值,被分类错误样本的权值不断提高,突出显现。将反复迭代后得到的个最优弱分类器按照一定的级联方式联合,形成一个强分类器。
1.2 LBPH人脸识别算法
LBP算法是当前一类比较成熟的人脸部特征提取技术。LBP算法最早由Ojala等在1994年提出,通过比较3×3模板中心像素与其邻域像素的大小,得到邻域像素的二进制代码,从而得到LBP特征。
Local Binary Patterns Histograms,即LBP特征统计直方图。这种表示方法由Ahonen等人在2004年提出,他们将LBP特征图像分成个局部块,并提取每个局部块的直方图,然后将这些直方图依次连接形成LBP特征统计直方图,即LBPH。LBPH算法的优势在于计算量小,运行速度快,且基本不受光线和图像旋转的影响。
1.3 SSD目标检测算法
针对YOLO和Faster R-CNN的不足与优势,WeiLiu等人提出了SSD算法。SSD基于一个前向传播卷积神经网络,产生一系列固定大小的活动边框,以及每一个盒中包含物体实例的可能性。之后,进行非极大值抑制(Non-maximum suppression),得到最终的预测结果。SSD算法属于onestage方法,通过直接在网络中提取特征来预测物体分类和位置,在识别速度方面具有优势。
总体目标损失函数是位置损失(loc)和置信损失(conf)的加权和,总体目标损失函数公式如下:
式中:为匹配的默认框数量;为置信损失和位置损失的权重。位置损失是预测框和真实标签值框参数之间的smooth-L1损失,而置信损失是softmax对多类别的损失。
2 系统架构和运行流程
2.1 总体架构
测温部分的工作可以分为如下2个阶段:
(1)通过STM32读取红外温度传感器传回的温度数据;
(2)通过温度补偿拟合曲线对传回的温度数据进行处理,减小温度测量的误差。
总体架构如图1所示。
图1 总体架构
图像识别处理部分的工作可以分为4个阶段:
(1)读取摄像头模块传回的图像信息并进行相应处理;
(2)利用基于Haar-Like特征和Adaboost算法检测图像中的人脸位置;
(3)通过LBPH算法获取人脸特征,与本地识别器进行匹配,匹配结果即为人脸识别结果;
(4)通过基于caffe模型的SSD算法处理人脸信息,由训练后的神经网络模型判断人员是否佩戴口罩。
2.2 运行流程
2.2.1 温度数据处理
将系统测温模块上的摄像头对准待测温人员,即可在系统副屏上查看温度测量结果、报警温度、温度是否在合理范围内(如图2所示)。如果温度结果高于报警温度,系统将发出警报。报警温度可以通过按钮调节。
图2 副屏显示温度检测结果
2.2.2 人脸识别系统
点击“录制人脸”按钮,程序进入采集人脸模式。将采集的人脸用白色线框框选,并保存至本地文件夹,右上角显示完成度。当完成度达到100%时,程序进入人脸训练模式,并发送指令至STM32单片机,STM32单片机控制语音模块播放“人脸学习中”与“人脸学习完毕”的提示语。人脸识别系统的训练本质是将获取的图像信息训练成可用于辨识的LBPH识别器,并将其保存到本地。人脸识别系统训练流程如图3所示。
图3 人脸识别系统训练流程
人脸检测过程中,检测到人脸后将人脸使用蓝色线框选出,并显示匹配度。若识别失败,则用红色线框框选人脸;若识别成功,则用绿色线框框选人脸,并在右侧显示识别结果。将识别ID通过串口发送至STM32单片机,由STM32控制语音模块播放对应人员的问候语句。
2.2.3 口罩检测
点击“口罩识别”按钮,程序进入口罩识别模式。若人员未佩戴口罩用红色线框框选出,并发送警报指令至STM32单片机,STM32单片机控制语音模块播放“请佩戴口罩”警示语;若人员已佩戴口罩,则用绿色线框框选出来。口罩检测运行结果显示如图4所示,佩戴口罩识别流程如图5所示。
图4 口罩检测运行结果
图5 佩戴口罩识别流程
3 系统测试
3.1 测温部分测试
测试方案:将温度传感器分别对准液态水、额头,距离
1~4 cm,记录误差。
测试条件与仪器:28~48℃随机温度的液态水;单通道热电偶测温仪、体温计。
测试1:非接触温度测量功能,测试距离1~4 cm。非接触测量体温结果见表1所列。
表1 非接触测量体温结果表
测试2:温度测量范围28~48 ℃,具有温度报警功能。报警温度在30~46℃范围内可设置。温度报警功能测试结果见表2所列。
表2 温度报警功能测试结果表
3.2 图像处理部分测试
3.2.1 人脸识别与检测
测试:身份识别功能,被测人身份识别和身份不符报警(判断输入的人脸信息是否与本地已存储的人脸信息相匹配)。身份识别功能测试结果见表3所列。
表3 身份识别功能测试结果表
3.2.2 口罩识别
测试:被测人是否符合防疫要求(佩戴口罩)判别功能。口罩识别功能测试结果见表4所列。
表4 口罩识别功能测试结果表
4 结 语
文中设计了一款基于树莓派和STM32的简易无接触温度测量和人脸识别装置,该装置充分利用了基于Haar-Like特征的Adaboost算法,人脸识别测试成功率高,同时具备造价低廉、性能稳定等优势。下一步希望在人脸识别检测与识别实现的算法上进行优化,保证在嵌入式平台流畅运行的基础上优化人脸识别算法的成功率和准确性。