彭聚森 黄艳丽 赵若冰 周潇琦
摘 要:文章設计具有测温及统计功能的人脸识别系统。设计包含 2个模式:防控模式和非防控模式非防控期间,学生可正常刷人脸进出;防控期间,学生需佩戴口罩并监测体温,异常时发出警告。该设计为校园管控提供一定的参考。
关键词:测温:人脸识别;防控
中图法分类号:TP391文献标识码:A
1 引言
后疫情时代,大部分高校将采取开放式管理。正常情况下,学生进出校园只需进行人脸识别,但疫情防控期间,佩戴口罩和检测就成为必然,每天进出校园人口众多,当未佩戴口罩时,1 秒钟内检测者被感染的概率是较大的,因此设计一个具有口罩识别及测温功能的系统就显得尤为重要。
同时,随着科技的快速发展,人脸识别技术也在不断地突破,尤其是在日常生活中,技术带来的便捷大幅提高了人们的生活效率。其中,OpenCV 是特别关键的技术。其不仅可以应用在科研跨平台计算机视觉和机器学习软件库, 也可以运行在Linux、Windows、Android 和Mac OS 操作系统上。它具有轻量级且高效的特点, 同时也提供了Python, Ruby,Matlab 等语言的接口,实现了图像处理和计算机视觉方面的通用算法[1?4] 。
2 具有测温及统计功能的人脸识别系统的介绍
具有测温及统计功能的人脸识别系统是基于Opencv 跨平台计算机视觉库,在PyCharm 和Python平台下进行设计开发。设计包括2 个模式:防控模式和非防控模式。非防控期间,学生可正常刷人脸进出;防控期间,学生需佩戴口罩并监测体温。流程介绍如图1 所示。
3 原理介绍
3.1 口罩识别原理
利用OpenCV 库的级联分类器,并选取了Haar 特征和Adaboost 级联分类。机器的眼睛是摄像头,机器看到的只有数据,也就是像素,当需要识别某一种特定的图像时,就需要找到图像的一系列特征,这个就是Haar 特征(Haar?like features 是用于物体识别的一种数字图像特征)[5] 。当对图像进行运算特征值时,由于彩色图像的通道数较多,以及像素的数据较大,为了高效进行运算,需先将图像转化为灰度图像,然后进行Haar 特征运算,而Haar 特征运算一共有14种,较为基础的为BASIC 的5 种运算。由于要对口罩识别模型进行构建,因此为了增强模型的识别度,使用了ALL 的14 种特征运算。
3.2 测温原理
任何物体在高于绝对零度(?273℃)时都会向外发出红外线,而额温枪通过传感器接收红外线,从而得出感应温度数据。
4 模块设计
4.1 信息录入
导入cv2 模块,调取摄像头,拍照录取信息。首先检查摄像头是否处于开启状态,开启后通过摄像头进行拍照,按“s”键保存照片,并按照指定的格式进行命名照片,最后释放摄像头和内存。
4.2 数据训练
将保存的照片导入模块,进行数据训练。通过遍历将所有图片导入模块,并将黑白化图像转换为数组;获取图片人脸特征及对应的id 和姓名并数字化存储;对比脸部特征和id,以确保识别的准确性。
4.3 疫情情况下的人脸识别系统
人脸识别系统进行图片的读取利用了OpenCV 库的级联分类器,选取了Haar 特征和Adaboost 级联分类,若检测到鼻子、嘴巴,则证明没有戴口罩。若未检测到鼻子、嘴巴,则接着使用opencv 的haar 眼睛特征分类器,若未检测到眼睛,则结束。若检测到眼睛,则把RGB 颜色空间转为HSV 颜色空间,进行口罩区域的检测。口罩区域检测流程是把距离坐标原点较近的横坐标作为口罩区域开始的横坐标,离坐标原点较远的横坐标作为口罩区域结束的横坐标。离坐标原点较远的纵坐标作为口罩区域开始的纵坐标,离坐标原点较远的纵坐标与眼睛高度2 倍的和作为口罩区域结束的纵坐标。检测到口罩之后,对比数据,进行识别[6] 。
Haar 特征和Adaboost 级联分类模块运行过程如下。
face _ cascade = cv2. CascadeClassifier ( ' D:/opencv/ sources/ data/ haarcascades/ haarcascade _cdefault.xml')
eye_cascade = cv2.CascadeClassifier('D:/ opencv/sources/ data/ haarcascades/ haarcascade_eye.xml')
mouth _ cascade = cv2. CascadeClassifier ( ' D:/opencv/ sources/ data/ haarcascades/ haarcascade _ mcs _mouth.xml')
upper_body = cv2.CascadeClassifier('D:/ opencv/sources/ data/ haarcascades/ haarcascade_ upperbody. xml')
#Adjust threshold
bw_threshold = 80 # User message
font = cv2.FONT_HERSHEY_SIMPLEX
org = (30, 30)
weared_mask_font_color = (255, 255, 255)
not_weared_mask_font_color = (0, 0, 255)
thickness = 2
font_scale = 1
weared_mask = "Thank You for wearing MASK"
not_weared_mask = " Please wear MASK to d
efeat
Corona"
def name():
path = './ data/ jm/ '#names = []
imagePaths = [os.path.join(path,f) for f inos.listdir(path)]
for imagePath in imagePaths:
name = str ( os. path. split ( imagePath)
[1].split('.',2)[1])
names.append(name)
def tw():
webdu = int(input(""))
if webdu >= 37.3:
print("体温异常,请稍等!!")
else:
print("体温正常")# Read video
cap = cv2.VideoCapture(0)
name()
tw()
while 1:
ret, img = cap.read()
img = cv2.flip(img, 1)
# Convert Image into gray
gray = cv2. cvtColor ( img, cv2. COLOR _BGR2GRAY)# Convert image in black and white
(thresh, black_and_white) = cv2.threshold
(gray, bw_threshold, 255, cv2.THRESH_BINARY)
# detect face
faces = face_cascade.detectMultiScale(gray,1.1, 4) # Face prediction for black and white
faces _ bw = face _ cascade. detectMultiScale(black_and_white, 1.1, 4)
if (len(faces) = = 0 and len(faces_bw) = =0):
cv2. putText(img, " have_mask pjs",org, font, font _ scale, weared _ mask _ font _ color,thickness, cv2.LINE_AA)
else:
for (x, y, w, h) in faces:
roi_gray = gray[y:y + h, x:x + w]
roi_color = img[y:y + h, x:x + w]
mouth _ rects = mouth _ cascade.
detectMultiScale(roi_gray, 1.5, 5)
if (len(mouth_rects) = = 0):
cv2.rectangle(img, (x, y), (x+ w, y + h), (0, 255, 0), 2)
else:
cv2.rectangle(img, (x, y), (x+ w, y + h), (0, 0, 255), 2)
4.4 非疫情情况下的人脸识别系统
关闭口罩识别功能和体温测量功能,只进行人脸识别功能。
5 设备功能及实现
在非疫情状态下,当人员靠近摄像头时,会对人脸进行扫描并对比数据库,对比成功人员方可通过;在疫情状态下,当人员靠近摄像头时,若未佩戴口罩,则图像会将人像显示红框以此来警告,当戴上口罩时,摄像头显示绿框并测量体温,体温正常人员可通过,体温异常会及时通知管理人员并上传数据[7?8] 。
6 结束语
在门禁系统的基础上,增加防控模式。当通行人员进行人脸识别时,判断其是否佩戴口罩,同时对其温度进行测量,整个识别测量过程是非接触式。对体温超出一定阈值的人员,终端会发出异常预警,并对其体温进行展示。本文产品设计遵循经济实用、安全稳定的设计思想,设计采用技术成熟、性能卓越、简约时尚的门禁设备及体温测量,既能满足当前管理需要,又能适应未来发展。
参考文献:
[1] 谭俭辉.基于K210人脸身份识别与测温系统设计[D].广东:广东工业大学,2021.
[2] 刘鹏锋.嵌入式健康信息处理系统的研究与设计[D].武汉:武汉纺织大學,2018.
[3] 李天睿,谢卫平.体温检测在人脸识别门禁终端的应用[J].电脑与电信,2021(7):68?70.
[4] 侯国栋,常迎梅.具有红外测温功能的人脸识别门禁系统设计[J].科技信息,2010(20):519?520.
[5] 任启宏,侯国栋,常迎梅.具有红外测温功能的非接触式智能门禁系统[J].常熟理工学院学报,2010,24(2):83?86.
[6] 张宣妮,马秀霞,鲁方莹,等.智慧小区的人脸识别门禁系统[J].信息系统工程,2021(4):95?96.
[7] RATHKANTHIWAR S, CHAUDHARY T, GAJBHE A, etal. Access Control system with contactless temperaturedetection[J]. International Research Journal of Engineeringand Technology,2021,8(5):3446?3449.
[8] COSTANZO S, FLORES A M. IoT Non?contact BodyTemperature Measurement System Implementing AccessControl for COVID?19 [ J ]. Trends and Applications inInformation Systems and Technologie,2021,13 (20): 255?264.
作者简介:
彭聚森(2000—),本科,研究方向:通信工程嵌入式。
黄艳丽(1984—),硕士,讲师,研究方向:计算机通信、电子技术、模块识别。
赵若冰(2001—),本科,研究方向:单片机。
周潇琦(2001—),本科,研究方向:计算机通信。