基于MTCNN的人眼状态检测与判断

2021-08-17 08:10董雪晴冯晓婉
关键词:人眼中心点虹膜

吴 迪,董雪晴,冯晓婉

(沈阳师范大学 物理科学与技术学院,沈阳 110034)

0 引 言

2020年年初的疫情导致学生无法按期开学,为不延误课程,教育部支持学校开展线上教学活动,确保“停课不停学”[1]。但疫情冲击下流行起来的线上授课方式是利弊共存的,优点是教师可远距离、无接触完成教学任务,缺点是对于自律性差的学生,家长需要一直监督学生线上学习,这极大影响了家长的工作和生活[2]。因此,在线上授课期间需要利用电子产品自动监督学生的听课状态。

近年,随着人工智能技术的发展,人脸检测成为人工智能应用开发中一项基础且重要的研究内容,例如人脸识别打卡[3]、人脸表情识别[4]等。而深度学习作为当前的研究热点,也早已被应用到人脸检测之中,基于深度学习的人脸检测算法模型已有许多,例如Faster R-CNN[5],SSD[6],MTCNN[7]等。人眼状态检测依赖于人脸检测,通过人脸检测结合人眼定位先验知识[8]可得到人眼图像,以不同方法处理和分析人眼图像,可检测不同的人眼状态[9-12]。疲劳驾驶检测[13]技术正是通过分析人眼图像中人眼的闭合程度,检测驾驶员是否处于疲劳状态[14-15]。本文综合上述诸多因素,针对线上课堂学生的听课状态,设计了基于多任务卷积神经网络(MTCNN)的人眼状态检测与判断系统,在线上课堂教师授课过程中,判断学生人眼关注点是否放在屏幕两侧,从而确定学生是否认真听课。

1 基于MTCNN的人脸与人脸特征点检测

1.1 MTCNN模型结构

MTCNN采用了Viola-Jones检测器[16]中的级联概念,级联3个CNN,分别是Proposal Network(P-Net),Refine Network(R-Net),Out Network(O-Net)。在MTCNN模型结构中,P-Net用于获取人脸区域候选窗口和边界框回归向量,利用边界框回归对候选窗口进行校准,通过非极大值抑制(NMS)合并高度重合的候选框;R-Net在前者基础上丢弃错误的候选窗口,使用边界框回归校准候选窗口,通过NMS合并高度重合的候选框;O-Net与R-Net相似,但O-Net描述更多人脸细节,并输出5个人脸特征点。

1.2 MTCNN模型训练

MTCNN模型训练用不同类型的数据学习3个不同的任务:利用Negative和Positive数据训练人脸与非人脸的分类;利用Positive和Part faces数据训练边界框回归;利用Landmark face数据训练特征点定位。

1)人脸检测是一个分类任务,使用交叉熵损失函数:

2)边界框回归(bounding box regression)是一个回归问题,使用欧式距离计算回归损失:

3)特征点定位是回归问题,同样使用欧式距离计算回归损失:

2 系统设计过程

实验设备是一台普通笔记本电脑,具体配置:处理器Intel Core i3,显示适配器NVIDA GeForce 710 M,内存4.0 GB,操作系统Windows 8。如下为人眼状态检测与判断系统流程图:

图1 人眼状态检测与判断系统流程图Fig.1 Flow chart of human eye state detection and judgment system

2.1 人眼定位

设置视频显示窗口像素为500×500。视频经过MTCNN模型检测得到实时人脸框和人脸特征点的位置信息以及人脸置信度值(Score),在显示窗口中画出人脸框,并标记置信度值和5个特征点位置,如图2所示;根据人眼特征点位置信息、人脸框位置信息和人眼定位先验知识,可得式(1):

图2 人脸框图Fig.2 Face block

(1)

这里:(x,y)是人眼特征点坐标;(sx,sy)与(ex,ey)分别是人脸框左上点坐标和右下点坐标;(SX,SY)与(EX,EY)分别是矩形人眼框左上点坐标和右下点坐标。由式(1)可得人眼框相对于整个视频帧的坐标,再根据矩形人眼框坐标信息在视频帧中获取人眼图3。

图3 人眼图Fig.3 Human eye map

2.2 人眼提纯

由于已获人眼框的中心位置无法准确反映人眼的中心位置,因此,在已获人眼框的基础上进行人眼提纯。将人眼框内的人眼图像进行灰度化处理。在灰度图中分别以竖直和水平方向选取2条穿过虹膜中心的线,摘取2条线上像素点的像素值,并向坐标轴进行投影(图5)。根据图5(a)和图5(b)中2条投影曲线中像素值随坐标变化的趋势,选择适当像素阈值对灰度图做二值化处理,得到图4(a),其中黑色区域为眼睛轮廓和虹膜。以人眼左右眼角点的横坐标作提纯框的初、末横坐标,以虹膜区域最高点和最低点的纵坐标作提纯框的初、末纵坐标,得到提纯人眼框坐标。图4(b)为提纯人眼。提纯的人眼中心位置能够准确地反映人眼的中心点。

图4 眼睛提纯过程图Fig.4 Eye purification process chart

图5 投影曲线图Fig.5 Projection graph

2.3 虹膜定位

对提纯后得到的人眼图像进行灰度二值化处理,二值化阈值选择小于人眼提纯中的阈值,尽可能排除眼睛轮廓的像素点,保留虹膜区域的像素点,得到图6。

图6 灰度-二值化图Fig.6 Grayscale-binary image

根据式(2)计算的虹膜中心大致位置(虹膜中心),即图7人眼中标记的红点。

图7 虹膜中心Fig.7 Iris center

(2)

这里:(xi,yi)表示像素点i的坐标;Sum(X,Y)是所有像素值为0的像素点的坐标总和;n表示像素值为0的像素点个数。利用已得到的虹膜中心位置与提纯的人眼中心位置计算二者之间距离:

(3)

其中:D表示虹膜中心与提纯人眼中心之间的距离;(x,y)表示虹膜中心位置;(mx,my)表示提纯人眼中心位置。设置适当虹膜中心至人眼中心的阈值距离,若虹膜大致停留在人眼中心,即虹膜中心与提纯人眼中心的距离小于阈值距离,代表人眼的关注点放在屏幕上;若虹膜距人眼中心较远,即虹膜中心与提纯人眼中心距离大于阈值距离,则表示人眼的关注点在屏幕两侧,即表示学生一定没有认真观看屏幕中播放的内容。

3 实验结果分析

实验条件:非过亮或过暗的光线环境,人脸及人眼无任何遮挡。实验测试规则:设置初始值为0的计数变量k,当检测到虹膜中心点与提纯人眼中心点之间的距离(D)大于阈值距离(DT)时开始计数,k值加1,即k=k+1;若连续5张(5 s)人眼图像均为D>DT,即当k=5时,则表示人眼状态异常,提示警告;否则表示人眼状态正常,不作提示。

表1中选取了2幅提纯后的人眼图像,蓝点表示提纯人眼中心点,红点表示虹膜中心点。比较系统计算的2个中心点距离与利用画图软件获取的2个中心点坐标人为计算距离,2个值之间相差较小,不影响判断效果,所以系统计算的距离结果可信度高。

表1 人为与系统计算距离对比表Table 1 Comparison of man-made and systematic distances

表2中展示了3组人眼图像及其图像中心点与虹膜中心点之间的距离。表中第1组、第3组图像宽度范围在40~50像素,对应的阈值距离为4.5像素;第2组图像宽度范围在30~40像素,对应的阈值距离为3个像素。比较2个中心点距离与阈值距离,得出系统判断的人眼状态结果。系统判断的人眼状态与直观感受得到的人眼状态一致,因此文中利用人眼中心点与虹膜中心点之间距离判断人眼状态的结果可靠。

表2 人眼状态判断Table 2 Human eye state judgement

4 结 论

本文主要设计了基于MTCNN的人眼状态检测与判断系统。根据MTCNN模型检测得到正面人脸的人脸框及人脸特征点的位置信息,结合人眼定位的先验知识,得到了粗略的人眼图像,再利用灰度二值化处理人眼图像,结合处理后图像的像素值分布特点,提纯了人眼图像,并得到准确的人眼中心点以及大致的虹膜中心点,最后通过计算二者之间的距离,实现了人眼关注点是否落在屏幕中的判断。实验结果表明,该方法能够有效判断学生在线上课堂听课时是否关注屏幕。

猜你喜欢
人眼中心点虹膜
双眼虹膜劈裂症一例
基于轮廓匹配和多项式拟合的虹膜分割算法
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
如何设置造型中心点?
人眼X光
一种基于虹膜识别技术的车辆启动系统
人眼为什么能看到虚像
“刷眼”如何开启孩子回家之门
闪瞎人眼的,还有唇