首页 / 专利库 / 医疗设备 / 伽马相机 / 一种处于自然教学环境的课堂中学生学习状态实时分析方法

一种处于自然教学环境的课堂中学生学习状态实时分析方法

阅读:283发布:2020-08-26

专利汇可以提供一种处于自然教学环境的课堂中学生学习状态实时分析方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种处于自然教学环境的课堂中学生学习状态实时分析方法,包括:对摄像头传入的图像进行分 帧 处理,转化为静态图像;先用人脸粗检的方法检测教室中的 正面 人脸,在五分钟后,对学生的静态 位置 进行标定、分析,判断学生静态位置区域有无人脸出现,该学生位置没有人脸出现,则进行人脸精检;然后将表情识别的七种表情按照积极度进行排序,范围从-4到2,将头部 姿态 得到的X,Y,Z,通过函数得到的值按照学生注意 力 范围进行分类,使用多模态特征融合方法将学生表情和头部姿态融合,得到一个二维矢量,通过二维矢量的值判定当前学生的学习状态。,下面是一种处于自然教学环境的课堂中学生学习状态实时分析方法专利的具体信息内容。

1.一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于,包括如下步骤:
步骤1,对输入的视频进行分处理,将视频流中的每帧转换为静态图像;
步骤2,利用dlib人脸检测算法对传入的静态图像进行人脸粗检,获得人脸坐标数据集合,记人脸坐标为[face_xmin,face_ymin,face_xmax,face_ymax],并依此获得学生静态位置坐标数据集合,记学生静态位置坐标为[body_xmin,body_ymin,body_xmax,body_ymax,frame,hit],其中,frame为当前视频帧数,代表该学生静态位置坐标出现的帧数,hit值代表当前帧的单个学生静态位置区域内有无人脸,初始化hit值为0;
步骤3,分别根据学生静态位置坐标数据集合和人脸坐标数据集合计算学生静态位置区域和人脸区域,并对学生静态位置区域和人脸区域进行计算,得出重叠部分,根据重叠部分判断该学生静态位置坐标是否有人脸出现,如果有人脸出现则将hit值更新为1;
步骤4,根据人脸坐标数据集合中的历史人脸坐标逐一计算历史人脸区域,并计算人脸区域与历史人脸区域之间的重叠部分,根据重叠部分判断同一位置区域出现的人脸是否为同一个人,如果是同一人,则将hit值设为2;
步骤5,通过hit值判断是否进行人脸精检,hit值为非0值时,直接进入步骤6;hit值为0时,则通过四个级联的卷积神经网络实现人脸精检;
步骤6,针对每一帧图像,删除学生静态坐标位置数据集合中任意相邻两个学生静态位置的重叠区域超过位置重合阈值的坐标数据,即删除掉先出现的学生静态位置坐标,并将所有的学生静态位置坐标hit初始化为0,从而对学生静态位置坐标数据集合和学生人脸坐标数据集合进行更新维护;
步骤7,逐一读取当前帧精经过双层检测获得的人脸坐标,通过人脸坐标数据集合,剪辑得到人脸图像,将人脸图像传入训练完成的表情卷积神经网络模型中进行人脸表情识别,得到学生表情分类,并存储在人脸面部表情集合中;
步骤8,通过人脸坐标计算得出学生头部姿态,并存储在学生头部姿态集合中;
步骤9,根据步骤7和步骤8收集到的学生表情和头部姿态进行多模态特征融合分析,得出学生在课堂中的学习状态。
2.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤2的具体实现方式如下,
首先将RGB模式的静态图像进行灰度化处理,使用公式f(x)=xγ进行伽校正,其中输出是输入的幂函数,指数为γ;然后利用dlib人脸检测算法计算得到人脸矩形框,将人脸矩形框转换为数组形式的人脸坐标[face_xmin,face_ymin,face_xmax,face_ymax],并将检测到的所有人脸坐标进行逐帧存储,得到人脸坐标数据集合;人脸坐标[face_xmin,face_ymin,face_xmax,face_ymax]中的face_xmin代表人脸在静态图像中的左上横坐标、face_ymin代表人脸在静态图像中的左上角的纵坐标、face_xmax代表人脸在静态图像中的右下角横坐标、face_ymax代表人脸在静态图像中的右下角的纵坐标;
学生静态位置坐标通过在人脸坐标的基础上进行处理获得,假设学生静态位置坐标为[body_xmin,body_ymin,body_xmax,body_ymax,frame,hit],具体计算过程如下:
设w=face_xmax-face_xmin表示人脸粗检检测得到的人脸的宽,h=face_yamx-face_ymin表示人脸粗检检测得到的人脸的高;
则有:body_xmin=face_xmin-w//2,代表学生静态位置在静态图像中的左上角横坐标;
body_ymin=face_ymin-h//2,代表学生静态位置在静态图像中的左上角纵坐标;
body_xmax=face_xmax+w//2,代表学生静态位置在静态图像中的右下角横坐标;
body_ymax=face_ymax+h//2,代表学生静态位置在静态图像中的右下角纵坐标;
其中,//表示整除,frame为当前视频帧数,代表该学生静态位置坐标出现的帧数,hit值代表当前帧的单个学生静态位置区域内有无人脸,初始化hit值为0。
3.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤3的具体实现方式如下,
设人脸坐标为[face_xmin,face_ymin,face_xmax,face_ymax],学生静态位置坐标为[body_xmin,body_ymin,body_xmax,body_ymax,frame,hit],通过计算
xA=max(face_xmin,body_xmin)求得两个区域左上角横坐标的最大值,
yA=max(face_ymin,body_ymin)求得两个区域左上角纵坐标的最大值,
xB=min(face_xmax,body_xmax)求得两个区域右下角横坐标的最小值,
yB=min(face_ymax,body_max)求得两个区域右下角纵坐标的最小值;
然后计算两个区域的交集:
interArea=(xB-xA+1)*(yB-yA+1);
最后计算人脸区域所占的面积:
faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1);
如果通过计算得到学生的人脸区域与两个区域重叠部分的比值大于等于人脸归属阈值1.0,即interArea/faceArea大于等于人脸归属阈值1.0,则认为该学生静态位置内有学生人脸,并将该学生静态位置坐标中的hit值修改为1,然后重新进行下一个人脸坐标的计算。
4.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤4的具体实现方式如下,
假设当前传进来的人脸坐标表示为[face_xmin,face_ymin,face_xmax,face_ymax],人脸坐标数据集合中的历史人脸坐标表示为:[historic_face_xmin,historic_face_ymin,historic_face_xmax,historic_face_ymax]
则人脸区域为faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1);
则历史人脸区域为historic_faceAera=(historic_face_xmax-historic_face_xmin+1)*(historic_face_ymax-historic_face_ymin+1);
人脸区域与历史人脸区域的交集为:interArea,两个人脸区域的并集为:allArea=faceAera+historic_faceAera-interArea;
如果两个人脸区域的并集为零,则认为两个区域并没有重叠,重叠部分为零;否则进行以下计算:IOU(Intersection over Union)=interArea/allArea,如果IOU值大于等于人脸重合阈值,则认为是同一学生人脸。
5.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤8的具体实现方式如下,
将从人脸粗检得到的人脸坐标转化为矩形框的坐标,通过dlib68特征点检测器得到68个人脸关键点,从中挑选出6个特征点,分别是左眼外眼角、右眼外眼角、鼻尖、左唇部唇角、右唇部唇角、下巴尖;通过通用的3D人脸模型得到了六个特征点在世界坐标中的3D坐标,通过旋转和平移矩阵,将世界坐标中的3D点变换为相机坐标中的3D点;接着使用相机的固有参数(焦距,光学中心等)将相机坐标中的3D点投影到图像平面(即图像坐标系)上,与识别的静态图像上的6个特征点的2D位置进行对比计算,得到人脸的欧拉角,将得到的欧拉角转换为pitch,yaw,roll值,即为学生头部姿态,其中pitch也就是Y轴对应的是低头或者是抬头,yaw也就是X轴对应的是左右转头,roll也就是Z轴对应的是左右倾斜角度。
6.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤9的具体实现方式如下,
步骤7中人脸面部表情集合包括七个表情,分别是生气、沮丧、害怕、开心、悲伤、惊喜、中性,其中积极情绪有开心、惊喜,消极情绪有生气、沮丧、害怕、悲伤,中性则属于中性情绪;每种表情对于积极性的影响不同,根据消极情绪对积极性的影响作用用负值表示,将中性、生气、沮丧、悲伤、害怕用0,-1,-2,-3,-4表示程度;根据积极情绪对积极性的影响用正值表示,将惊喜、开心用1、2表示程度,那么将七种表情按照对学生积极性的影响程度降序排序:开心、惊喜、中性、生气、沮丧、悲伤、害怕,对应的表情影响值也就是2、1、0、-1、-2、-
3、-4;
步骤8中学生头部姿态为一个三维坐标[X,Y,Z],假设摄像头处在教室前方的正中间,所以将符合X轴方向的-45°—+45°,Y轴的0°到90°,Z轴的为-180°—180°的所有三维坐标认定为学生听讲角度 ;使用函数对学生听讲角度进行计算,
那学生听讲值也就为0—135,学生不听讲值范围为0—-315;
将从人脸面部表情集合得到的表情影响值和从学生头部姿态集合得到的学生听讲值用二维矢量表示(表情影响值,学生听讲值),也就是向量 其中x、y值都为正值的标记为学生认真听讲状态,积记性高,将x、y值都为负值的 标记为学生非认真听讲状态,积极度低。
7.如权利要求1所述的一种处于自然教学环境的课堂中学生学习状态实时分析方法,其特征在于:步骤5中四个级联的卷积神经网络分别是Nnet,Ncalib,aNnet,aNcalib,其中N是指小尺寸,取值范围在8到12之间,aN是指大尺寸,其中a是N的倍数。

说明书全文

一种处于自然教学环境的课堂中学生学习状态实时分析方法

技术领域

[0001] 本发明涉及一种处于自然教学环境的课堂中学生学习状态实时分析方法,更具体的,涉及自然教学环境双层人脸检测、学生头部姿态识别、表情识别,多模态信息特征融合分析处于自然教学环境的课堂中学生学习状态的实时分析方法。

背景技术

[0002] 在传统课堂中,由于时间和精的限制,老师无法兼顾所有学生的学习状态,实施公平、有效的教学;教师自价和他评需要耗费大量的人力和时间;教育研究者对于课堂的观察更多停留于主观评价层面,无法快速推动教师的专业发展。目前面临的问题是如何将人工智能和教育结合,帮助教师解决这种局面。本领域很多技术人员也在致力于解决这个问题,本专利通过使用双层的人脸检测可以更好地定位学生人脸区域,通过对表情分类的多样化使得多模态特征分析的结果的可信度更高。
[0003] 在已经公开的CN201810124929-学生课堂学习兴趣智能分析方法及系统专利中通过定位教室中的人脸区域,然后估计人脸区域中的学生头部姿态和学生面部表情,收集学生课堂上互动答题相关信息。通过对这三种特征融合分析来判断课堂学生学习兴趣。在该公开专利中,人脸检测模是通过使用本领域已经被大家通用的一些算法和特征来定位人脸区域,通过对场景图像进行人脸检测来定位人脸区域。当前对于复杂环境下的人脸检测有多种算法,可以根据检测精度和运行速度把当前的算法分为两类,一类是对于正面人脸和侧面人脸检测效果好,精度高但运行速度较慢;一类是对于正面人脸有很高的精度,运行速度快,但对于侧面人脸精度较低。由于在课堂这种复杂环境中,学生可能会因为低头、和其他人交谈,注意力不集中出现侧脸等面部区域不易识别的情况,所以单一人脸检测算法很难达到实时性和高精度。在发明CN201810124929-学生课堂学习兴趣智能分析方法及系统专利中,将笑脸定义为正面学习情绪,非笑脸则定义为负面学习情绪。这种表情简单的二分类,对于自然课堂学生情绪不具有很强的代表性,学生可能会出现困惑、中性等情绪,对于这种困惑和中性表情不能根据学生的笑脸与否来判断学生当前的学习情绪,因此该专利中存在学习情绪判断不准确的问题。

发明内容

[0004] 为了解决在传统课堂中,教师由于时间和精力的限制无法兼顾所有学生的学习状态,进而实施公平有效的教学,本发明通过在自然教学环境下,对教室学生进行双层人脸检测定位人脸区域,得到学生面部表情、头部姿态信息和学生静态位置信息,进而通过多模态信息特征融合分析得到学生在课堂中的学习状态。
[0005] 为解决上述技术问题,本发明采用如下的技术方案:一种处于自然教学环境的课堂中学生学习状态实时分析方法,包括如下步骤:
[0006] 步骤1,对输入的视频进行分处理,将视频流中的每帧转换为静态图像;
[0007] 步骤2,利用dlib人脸检测算法对传入的静态图像进行人脸粗检,获得人脸坐标数据集合,记人脸坐标为[face_xmin,face_ymin,face_xmax,face_ymax],并依此获得学生静态位置坐标数据集合,记学生静态位置坐标为[body_xmin,body_ymin,body_xmax,body_ymax,frame, hit],其中,frame为当前视频帧数,代表该学生静态位置坐标出现的帧数,hit值代表当前帧的单个学生静态位置区域内有无人脸,初始化hit值为0;
[0008] 步骤3,分别根据学生静态位置坐标数据集合和人脸坐标数据集合计算学生静态位置区域和人脸区域,并对学生静态位置区域和人脸区域进行计算,得出重叠部分,根据重叠部分判断该学生静态位置坐标是否有人脸出现,如果有人脸出现则将hit值更新为1;
[0009] 步骤4,根据人脸坐标数据集合中的历史人脸坐标逐一计算历史人脸区域,并计算人脸区域与历史人脸区域之间的重叠部分,根据重叠部分判断同一位置区域出现的人脸是否为同一个人,如果是同一人,则将hit值设为2;
[0010] 步骤5,通过hit值判断是否进行人脸精检,hit值为非0值时,直接进入步骤6;hit值为0时,则通过四个级联的卷积神经网络实现人脸精检;
[0011] 步骤6,针对每一帧图像,删除学生静态坐标位置数据集合中任意相邻两个学生静态位置的重叠区域超过位置重合阈值的坐标数据,即删除掉先出现的学生静态位置坐标,并将所有的学生静态位置坐标hit初始化为0,从而对学生静态位置坐标数据集合和学生人脸坐标数据集合进行更新维护;
[0012] 步骤7,逐一读取当前帧精经过双层检测获得的人脸坐标,通过人脸坐标数据集合,剪辑得到人脸图像,将人脸图像传入训练完成的表情卷积神经网络模型中进行人脸表情识别,得到学生表情分类,并存储在人脸面部表情集合中;
[0013] 步骤8,通过人脸坐标计算得出学生头部姿态,并存储在学生头部姿态集合中;
[0014] 步骤9,根据步骤7和步骤8收集到的学生表情和头部姿态进行多模态特征融合分析,得出学生在课堂中的学习状态。
[0015] 进一步的,步骤2的具体实现方式如下,
[0016] 首先将RGB模式的静态图像进行灰度化处理,使用公式f(x)=xγ进行伽校正,其中输出是输入的幂函数,指数为γ;然后利用dlib人脸检测算法计算得到人脸矩形框,将人脸矩形框转换为数组形式的人脸坐标[face_xmin,face_ymin,face_xmax,face_ymax],并将检测到的所有人脸坐标进行逐帧存储,得到人脸坐标数据集合;人脸坐标[face_xmin,face_ymin, face_xmax,face_ymax]中的face_xmin代表人脸在静态图像中的左上横坐标、face_ymin代表人脸在静态图像中的左上角的纵坐标、face_xmax代表人脸在静态图像中的右下角横坐标、 face_ymax代表人脸在静态图像中的右下角的纵坐标;
[0017] 学生静态位置坐标通过在人脸坐标的基础上进行处理获得,假设学生静态位置坐标为 [body_xmin,body_ymin,body_xmax,body_ymax,frame,hit],具体计算过程如下:
[0018] 设w=face_xmax-face_xmin表示人脸粗检检测得到的人脸的宽,h=face_yamx-face_ymin 表示人脸粗检检测得到的人脸的高;
[0019] 则有:body_xmin=face_xmin-w//2,代表学生静态位置在静态图像中的左上角横坐标;
[0020] body_ymin=face_ymin-h//2,代表学生静态位置在静态图像中的左上角纵坐标;
[0021] body_xmax=face_xmax+w//2,代表学生静态位置在静态图像中的右下角横坐标;
[0022] body_ymax=face_ymax+h//2,代表学生静态位置在静态图像中的右下角纵坐标;
[0023] 其中,//表示整除,frame为当前视频帧数,代表该学生静态位置坐标出现的帧数,hit值代表当前帧的单个学生静态位置区域内有无人脸,初始化hit值为0。
[0024] 进一步的,步骤3的具体实现方式如下,
[0025] 设人脸坐标为[face_xmin,face_ymin,face_xmax,face_ymax],学生静态位置坐标为 [body_xmin,body_ymin,body_xmax,body_ymax,frame,hit],通过计算
[0026] xA=max(face_xmin,body_xmin)求得两个区域左上角横坐标的最大值,[0027] yA=max(face_ymin,body_ymin)求得两个区域左上角纵坐标的最大值,[0028] xB=min(face_xmax,body_xmax)求得两个区域右下角横坐标的最小值,[0029] yB=min(face_ymax,body_max)求得两个区域右下角纵坐标的最小值;
[0030] 然后计算两个区域的交集:
[0031] interArea=(xB-xA+1)*(yB-yA+1);
[0032] 最后计算人脸区域所占的面积:
[0033] faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1);
[0034] 如果通过计算得到学生的人脸区域与两个区域重叠部分的比值大于等于人脸归属阈值 1.0,即interArea/faceArea大于等于人脸归属阈值1.0,则认为该学生静态位置内有学生人脸,并将该学生静态位置坐标中的hit值修改为1,然后重新进行下一个人脸坐标的计算。进一步的,步骤4的具体实现方式如下,
[0035] 假设当前传进来的人脸坐标表示为[face_xmin,face_ymin,face_xmax,face_ymax],人脸坐标数据集合中的历史人脸坐标表示为:[historic_face_xmin,historic_face_ymin, historic_face_xmax,historic_face_ymax]
[0036] 则人脸区域为faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1);
[0037] 则历史人脸区域为historic_faceAera=(historic_face_xmax-historic_face_xmin+1) *(historic_face_ymax-historic_face_ymin+1);
[0038] 人脸区域与历史人脸区域的交集为:interArea,两个人脸区域的并集为: allArea=faceAera+historic_faceAera-interArea;
[0039] 如果两个人脸区域的并集为零,则认为两个区域并没有重叠,重叠部分为零;否则进行以下计算:IOU(Intersection over Union)=interArea/allArea,如果IOU值大于等于人脸重合阈值,则认为是同一学生人脸。
[0040] 进一步的,步骤8的具体实现方式如下,
[0041] 将从人脸粗检得到的人脸坐标转化为矩形框的坐标,通过dlib 68特征点检测器得到68 个人脸关键点,从中挑选出6个特征点,分别是左眼外眼角、右眼外眼角、鼻尖、左唇部唇角、右唇部唇角、下巴尖;通过通用的3D人脸模型得到了六个特征点在世界坐标中的3D坐标,通过旋转和平移矩阵,将世界坐标中的3D点变换为相机坐标中的3D点;接着使用相机的固有参数(焦距,光学中心等)将相机坐标中的3D点投影到图像平面(即图像坐标系) 上,与识别的静态图像上的6个特征点的2D位置进行对比计算,得到人脸的欧拉角,将得到的欧拉角转换为pitch,yaw,roll值,即为学生头部姿态,其中pitch也就是Y轴对应的是低头或者是抬头,yaw也就是X轴对应的是左右转头,roll也就是Z轴对应的是左右倾斜角度。
[0042] 进一步的,步骤9的具体实现方式如下,
[0043] 步骤7中人脸面部表情集合包括七个表情,分别是生气、沮丧、害怕、开心、悲伤、惊喜、中性,其中积极情绪有开心、惊喜,消极情绪有生气、沮丧、害怕、悲伤,中性则属于中性情绪;每种表情对于积极性的影响不同,根据消极情绪对积极性的影响作用用负值表示,将中性、生气、沮丧、悲伤、害怕用0,-1,-2,-3,-4表示程度;根据积极情绪对积极性的影响用正值表示,将惊喜、开心用1、2表示程度,那么将七种表情按照对学生积极性的影响程度降序排序:开心、惊喜、中性、生气、沮丧、悲伤、害怕,对应的表情影响值也就是2、 1、0、-1、-2、-3、-4;
[0044] 步骤8中学生头部姿态为一个三维坐标[X,Y,Z],假设摄像头处在教室前方的正中间,所以将符合X轴方向的-45°—+45°,Y轴的0°到90°,Z轴的为-180°—180°的所有三维坐标认定为学生听讲角度;使用函数对学生听讲角度进行计算, 那学生听讲值也就为0—135,学生不听讲值范围为0—-315;
[0045] 将从人脸面部表情集合得到的表情影响值和从学生头部姿态集合得到的学生听讲值用二维矢量表示(表情影响值,学生听讲值),也就是向量 其中x、y值都为正值的 标记为学生认真听讲状态,积记性高,将x、y值都为负值的 标记为学生非认真听讲状态,积极度低。
[0046] 进一步的,步骤5中四个级联的卷积神经网络分别是Nnet,Ncalib,aNnet,aNcalib,其中N是指小尺寸,取值范围在8到12之间,aN是指大尺寸,其中a是N的倍数。
[0047] 与现有技术相比,本发明的优点和有益效果:在定位人脸区域时,使用双层检测人脸的方法,在人脸粗检模块能够快速而精确的定位正面人脸,对于侧面人脸则调用人脸精检模块通过这种双层人脸检测方法,能够在保证检测人脸精度的情况下,提高运算速度。对于识别人脸的面部表情,本发明进行精确分类,将人脸准确的分为生气、沮丧、害怕、开心、悲伤、惊喜、中性七种表情,表情分类的多样化能够提高多模态特征分析模块分析结果的可靠性。附图说明
[0048] 图1是本发明的方法结构图。
[0049] 图2是本发明实施例的方法流程图
[0050] 图3是本发明实施例的人脸精检流程图。
[0051] 图4是本发明实施例的表情识别方法流程图。
[0052] 图5是本发明实施例的头部姿态计算方法流程图。

具体实施方式

[0053] 下面结合附图和实施例对本发明的技术方案作进一步说明。如图1所示,本发明提供的一种处于自然教学环境的课堂学生状态实时分析方法,包括以下步骤:
[0054] 步骤1,对输入的视频进行分帧处理,将视频流中的每帧转换为静态图像;
[0055] 视频输入设备一般采用摄像机等设备,本发明不予赘述。将输入的视频信号逐帧转化为静态图像作为步骤2的处理对象,也可以边取样边将取得的静态图像送往步骤2进行处理。因为是逐帧进行处理,所以当前正在处理的帧被称为当前帧,将当前帧转化为静态图像进入步骤2。
[0056] 步骤2,本实例选择dlib人脸检测算法对传入的静态图像进行人脸粗检,获得人脸坐标数据集合,并依此获得学生静态位置坐标数据集合;
[0057] 由于传入的静态图像是RGB模式,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。本发明将得到的RGB模式的静态图像首先进行灰度化处理;重现摄像机拍摄的视频时要进行伽马校正,来调节图像的对比度,减少图像的光照不均和局部阴影,同时可以抑制噪音的干扰。本发明使用公式f(x)=xγ来进行伽马校正,其中输出是输入的幂函数,指数为γ;使用dlib人脸检测算法计算得到人脸矩形框;将人脸矩形框转换为数组形式的人脸坐标[face_xmin,face_ymin,face_xmax,face_ymax],并将检测到的所有人脸坐标进行逐帧存储,得到人脸坐标数据集合。
[0058] 人脸坐标[face_xmin,face_ymin,face_xmax,face_ymax]中的face_xmin代表人脸在静态图像中的左上角横坐标、face_ymin代表人脸在静态图像中的左上角的纵坐标、face_xmax代表人脸在静态图像中的右下角横坐标、face_ymax代表人脸在静态图像中的右下角的纵坐标。通过上述人脸粗检的方法可以准确检测教室中的正面人脸。
[0059] 学生在自然教学环境中,如果处于一般情况,学生处于认真听讲状态,则头部活动范围不会过大,可以通过人脸坐标标记学生静态位置坐标为[body_xmin,body_ymin,body_xmax, body_ymax,frame,hit],本发明将学生静态位置的坐标在人脸坐标的基础上进行处理,过程如下:
[0060] w=face_xmax-face_xmin,人脸粗检检测得到的人脸的宽
[0061] h=face_yamx-face_ymin,人脸粗检检测得到的人脸的高
[0062] 因为检测出的人脸尺寸大小不一,所以根据检测出人脸的宽和高作为修改参数,对学生静态位置坐标进行设置,将人脸的宽和高做以整除,也就是w//2和h//2,使得学生静态位置坐标值为整数:
[0063] body_xmin=face_xmin-w//2,代表学生静态位置在静态图像中的左上角横坐标[0064] body_ymin=face_ymin-h//2,代表学生静态位置在静态图像中的左上角纵坐标[0065] body_xmax=face_xmax+w//2,代表学生静态位置在静态图像中的右下角横坐标[0066] body_ymax=face_ymax+h//2,代表学生静态位置在静态图像中的右下角纵坐标[0067] frame为当前视频帧数,代表该学生静态位置坐标出现的帧数,hit值代表当前帧的单个学生静态位置区域内有无人脸,初始化hit值为0。
[0068] 步骤3,在课堂度过时间T3时,进入此步骤。分别根据学生静态位置坐标数据集合和人脸坐标数据集合计算学生静态位置区域和人脸区域,并对学生静态位置区域和人脸区域进行计算,得出重叠部分,根据重叠部分判断该学生静态位置坐标是否有人脸出现,如果有人脸出现则将hit值更新为1;在本实例中,时间T3为五分钟。
[0069] 因为自然教学环境中,在教师刚开始上课的几分钟内,学生往往处于不安定的状态。不可估算的因素太多,所以在五分钟后再对学生的动态位置进行分析。学生的位置一旦坐定,没有特殊状况不会进行调动,特殊状况则是起立或移动回答教师问题、注意力不集中、左顾右盼、更换座位。
[0070] 经过五分钟后,课堂中学生静态位置坐标数据集合中已经存储了一定的数据。本发明根据课堂中学生静态位置坐标数据集合中的学生静态位置坐标逐个计算出学生静态位置所占区域,同样也根据人脸坐标数据集合中的人脸坐标计算出人脸区域,并对学生静态位置区域和人脸区域进行计算,得出重叠部分;计算过程如下:
[0071] 假设人脸坐标为[face_xmin,face_ymin,face_xmax,face_ymax],学生静态位置为 [body_xmin,body_ymin,body_xmax,body_ymax],
[0072] xA=max(face_xmin,body_xmin)求得两个区域左上角横坐标的最大值,[0073] yA=max(face_ymin,body_ymin)求得两个区域左上角纵坐标的最大值,[0074] xB=min(face_xmax,body_xmax)求得两个区域右下角横坐标的最小值,[0075] yB=min(face_ymax,body_max)求得两个区域右下角纵坐标的最小值;
[0076] 然后计算两个区域的交集:
[0077] interArea=(xB-xA+1)*(yB-yA+1)
[0078] 最后计算人脸区域所占的面积:
[0079] faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1)
[0080] 因为学生静态位置坐标是在人脸坐标上加以调整和按照固定比例放大,那么学生的人脸区域与两个区域重叠部分的比值应该大于等于人脸归属阈值,即interArea/faceArea应该大于等于人脸归属阈值。在本实例中,人脸归属阈值设置为1.0。
[0081] 如果通过计算得到学生的人脸区域与两个区域重叠部分的比值大于等于人脸归属阈值 1.0,则认为该学生静态位置内有学生人脸,并将该学生静态位置坐标中的hit值修改为1,表示该学生静态位置坐标有人脸出现,然后重新进行下一个人脸坐标的计算。
[0082] 步骤4,根据人脸坐标数据集合中的历史人脸坐标逐一计算历史人脸区域,并计算人脸区域与历史人脸区域之间的重叠部分,如果重叠部分大于人脸重合阈值且次数达到人脸稳定阈值则认为同一位置区域出现的人脸是同一个人,如果是同一人,则将hit值设为2;在本实例中,人脸重合阈值设置为0.9,人脸稳定阈值设置为10。同理,在时间T3后进行学生静态位置估算,由于在学生动态位置分析中已经对特殊状况进行处理计算,因此本步骤只考虑一般情况。一般情况下,如果在同一区域多次出现人脸,并且这些人脸区域的重叠部分较多,则认为多个人脸属于同一个人,并且将这个同一区域标记为学生静态位置。
[0083] 本发明先将当前传入的人脸坐标计算为人脸区域,也将人脸坐标数据集合中的历史人脸坐标逐一计算历史人脸区域,并计算它们的重叠部分,计算过程如下:
[0084] 假设当前传进来的人脸坐标表示为[face_xmin,face_ymin,face_xmax,face_ymax],
[0085] 人脸坐标数据集合中的历史人脸坐标表示为:[historic_face_xmin,historic_face_ymin, historic_face_xmax,historic_face_ymax];
[0086] 则人脸区域为faceAera=(face_xmax-face_xmin+1)*(face_ymax-face_ymin+1),
[0087] 则历史人脸区域为historic_faceAera=(historic_face_xmax-historic_face_xmin+1) *(historic_face_ymax-historic_face_ymin+1);
[0088] 人脸区域与历史人脸区域的交集与上一步骤计算方法一样,直接表示为:interArea,
[0089] 人脸区域与历史人脸区域的并集为:allArea=faceAera+historic_faceAera-interArea,
[0090] 如果两个人脸区域的并集为零,则认为两个区域并没有重叠,重叠部分为零,否则进行以下计算:IOU(Intersection over Union)=interArea/allArea;
[0091] 通过计算人脸区域与历史人脸区域重叠部分得到的IOU值,如果IOU值大于等于人脸重合阈值,则认为是同一学生人脸。那么在T2五分钟内,人脸坐标与人脸坐标数据集合中的历史人脸坐标被认为同一学生人脸频率达到人脸稳定阈值,可以认为在人脸坐标存在学生静态位置坐标,并且将hit值设为2,表示该学生静态位置坐标是当前帧新生成的。将识别得到的所有学生静态位置坐标都逐帧存储在学生静态位置坐标集合中,那么学生静态位置坐标集合中则存储着经过学生静态位置估算的所有帧的人脸坐标。
[0092] 步骤5,通过hit值判断是否进行人脸精检,hit值为非0值时,直接进入步骤6;hit值为0时,通过四个级联的卷积神经网络实现人脸精检;
[0093] 首先对学生静态位置坐标集合中的所有学生静态位置坐标进行逐一判断,看当前学生静态位置坐标内有无人脸,判断依据为学生静态位置坐标中的hit值,hit值初始值为0,但当学生静态位置坐标出现人脸,hit值就会变为非0值。那么当hit值为0时,就可以认为该学生静态位置坐标中没有出现人脸。
[0094] 如果学生静态位置坐标中hit值为非0值,则直接进入步骤6。否则进行人脸精检,人脸粗检对于自然教学环境中的学生正面人脸具有很高的精确性,人脸精检对于自然教学环境中的学生侧面人脸具有很高的准确性。通过这种双层人脸检测可以在提高人脸检测精度的同时提高方法运算速度,进而保证结果分析的可靠性。
[0095] 如图3所示,人脸精检通过四个级联的卷积神经网络实现,他们分别是Nnet,Ncalib, aNnet,aNcalib。其中N是指小尺寸,取值范围在8到12之间,aN是指大尺寸,其中a是N 的倍数。
[0096] 将标记人脸坐标的正样本数据作为Nnet的输入,将正样本数据集中的所有图像进行金字塔处理,来覆盖不同尺寸不同像素的人脸。使用N*N的滑动窗口多尺度滑窗密集地暴力扫描经过金字塔处理的图像,可以筛选掉90%的非人脸区域。将Nnet卷积神经网络全连接层的数据集做为aN*aN的正样本输入。从正样本数据集中裁剪N*N的非人脸区域做为aN*aN的负样本,得到Nnet卷积神经网络模型。
[0097] 将Nnet网络得到的结果传给Ncalib进行非极大值抑制(Non-Maximum Suppression,NMS),消除IOU值高的重叠区域,通过Ncalib卷积神经网络来对Nnet的结果进行边框校准,得到 Ncalib卷积神经网络的模型。
[0098] 通过对负样本数据的处理,得到aN*aN的负样本数据集。将Nnet网络的正样本数据和负样本数据都调整尺寸为aN*aN做为输入,训练aNnet的卷积神经网络,得到aN卷积神经网络的的模型。
[0099] 将aNnet网络得到的结果传给aNcalib进行非极大值抑制(Non-Maximum Suppression, NMS),消除IOU值高的重叠区域,通过aNcalib卷积神经网络来对aNnet的结果进行边框校准,得到aNcalib卷积神经网络的模型。
[0100] 通过Nnet,Ncalib,aNnet,aNcalib多尺度的级联网络能够精确地检测出静态图像上的侧脸。
[0101] 根据学生静态位置坐标,将学生静态位置从原图像裁剪下来,得到学生静态位置图像,作为输入传进人脸精检的测试算法中,如果得到人脸坐标,将检测到的人脸坐标并入人脸坐标数据集合,作为多模态特征融合的数据。
[0102] 如表1所示,分别使用Harr特征和HOG特征对静态图像进行人脸特征检测进而定位出人脸区域,同时也使用了神经网络NN训练模型来对静态图像进行检测定位人脸区域。可以从表1中得出,本发明通过人脸粗检和人脸精检的双层检测,对静态图像中的人脸检测的精度和速度有较大的提升。
[0103] 表1
[0104]
[0105] 备注:时间/秒人脸/个
[0106] 步骤6,针对每一帧图像,删除学生静态坐标位置数据集合中任意相邻两个学生静态位置的重叠区域超过位置重合阈值的坐标数据,即删除掉先出现的学生静态位置坐标,并将所有的学生静态位置坐标hit初始化为0,从而对学生静态位置坐标数据集合和学生人脸坐标数据集合进行更新维护,使得两个数据集合都为最新的数据,确保接下来步骤计算的准确性。
[0107] 因为学生的人脸位置发生的变化极小,可能会出现同一区域有两个学生静态位置坐标,使用非极大值抑制(Non-Maximum Suppression,NMS)保存frame值(视频帧数)较大,也就是最新出现的学生静态位置坐标。实施步骤如下:首先将学生静态位置数据集合中的所有学生静态位置按照frame值进行降序排列,然后以此计算相邻两个学生静态位置的重叠区域,如果重叠区域超过位置重叠阈值0.9,则删除掉后一个学生也就是frame值低的静态位置坐标,保留最新出现的学生静态位置坐标。
[0108] 在整个课时45分钟内,学生的人脸活动范围和学生的位置不可能一成不变,会因为回答问题、教师走动、面部左右移动观看板书内容而发生变化。为了保证数据的可靠性,每隔固定时间T1(两分钟)对两个数据集合进行更新维护。
[0109] 实施步骤如下,从已经保存的两个数据集合中删除掉前两分钟的数据,因为时间一直在流动,前两分钟收集的数据已经成为过去式,所以被删除。此时两个数据集合是保存的最新的数据,其中包含上一帧刚出现的数据。数据一直在更新,但是为了计算的可靠性和速度,我们要保持数据集合的稳定性,不能每时每刻都在发生变化,所以现有的数据集合中选择固定时间段T2的数据,使得数据集合不发生变化。在本实例中,固定时间段T2为五分钟,也就是两个数据集每隔两分钟执行一次,先删除掉数据集中前两分钟的数据,保存从数据开始计时,五分钟内的数据。
[0110] 步骤7,逐一读取当前帧精经过双层检测获得的人脸坐标,通过人脸坐标集合数据,剪辑得到人脸图像,将人脸图像传入训练完成的表情卷积神经网络模型中进行人脸表情识别,得到表情分类,并存储在人脸面部表情集合中;
[0111] 如图4所示,通过接受人脸粗检传入的人脸坐标的值,可以在当前帧的静态图像上裁剪出人脸图像,对人脸图像灰度化处理,将裁剪的人脸图像调整尺寸为48*48,将48*48的人脸图像进行归一化处理,目的是降噪和增强对比。将处理后的人脸图像传入训练完成的表情卷积神经网络模型中,得到表情分类。表情分类一共七种,分别是生气、沮丧、害怕、开心、悲伤、惊喜、中性,储存当前帧所有人脸表情。已有研究证明,这七种表情是人类基本情感,对于学生在课堂上的情绪波动有很强的代表性,而且表情分类的多样化对于后续的多模态特征融合分析有帮助,使得多模态特征融合分析的结果更具有层次性和可靠性。
[0112] 步骤8,通过人脸坐标计算得出学生头部姿态,并存储在学生头部姿态集合中;
[0113] 如图5所示,将从人脸粗检得到的人脸坐标转化为矩形框的坐标,通过dlib 68特征点检测器得到68个人脸关键点,从中挑选出6个特征点,分别是左眼外眼角、右眼外眼角、鼻尖、左唇部唇角、右唇部唇角、下巴尖。通过通用的3D人脸模型得到了六个特征点在世界坐标中的3D坐标,通过旋转和平移矩阵,可以将世界坐标中的3D点变换为相机坐标中的3D点。接着使用相机的固有参数(焦距,光学中心等)将相机坐标中的3D点投影到图像平面(即图像坐标系)上,与识别的静态图像上的6个特征点的2D位置进行对比计算,可以得到人脸的欧拉角,将得到的欧拉角转换为pitch,yaw,roll值,可以得出学生头部姿态。其中pitch 也就是Y轴对应的是低头或者是抬头,yaw也就是X轴对应的是左右转头,roll也就是Z轴对应的是左右倾斜角度,具体计算过程可参考文献《Head Pose Estimation using OpenCV and Dlib》。
[0114] 为了更直观的看到学生的头部姿态,在实施例时会六个人脸关键点用红色点显示,学生的视线以一条蓝色的直线表示出来,并保存当前帧所有人脸的头部姿态。
[0115] 步骤9,根据步骤7和步骤8收集到的学生表情和头部姿态进行多模态特征融合分析,得出学生在课堂中的学习状态。
[0116] 本步骤当前帧一共接收到两个特征,分别是人脸面部表情集合和学生头部姿态集合。其中的人脸表情数据为七个表情,分别是生气、沮丧、害怕、开心、悲伤、惊喜、中性。其中头部姿态数据分别为X轴0°—180°、Y轴0°—180°、Z轴0°—180°。
[0117] 本发明将人脸面部表情的七种表情分为积极情绪和消极情绪,其中积极情绪有开心、惊喜,消极情绪有生气、沮丧、害怕、悲伤、中性。每种表情对于积极性的影响不同,消极情绪对积极性的影响作用用负值表示,将中性、生气、沮丧、悲伤、害怕用0,-1,-2,-3,-4 表示程度。积极情绪对积极性的影响作用用正值表示,将惊喜、开心用1、2表示程度,那么将七种表情按照对学生积极性的影响程度降序排序:开心、惊喜、中性、生气、沮丧、悲伤、害怕,对应的表情影响值也就是2、1、0、-1、-2、-3、-4。
[0118] 学生头部姿态为一个三维坐标(X,Y,Z),假设摄像头处在教室前方的正中间,所以将符合X轴方向的-45°—+45°,Y轴的0°到90°,Z轴的为-180°—180°的所有三维坐标认定为学生听讲角度。本发明使用函数对学生听讲角度进行计算, 因为X轴的X最小值为-45,而Y轴的Y最小值为0,所以为了更好的标表示学生听讲角度,本发明将 函数加上常量45,函数计算公式为 那学生听讲值也就
为0—135,学生不听讲值范围为0—-315。
[0119] 将从人脸面部表情集合得到的表情影响值和从学生头部姿态集合得到的学生听讲值用二维矢量表示(表情影响值,学生听讲值),也就是向量 本发明将x、y值都为正值的 标记为学生认真听讲状态,积记性高,将x、y值都为负值的 标记为学生非认真听讲状态,积极度低,本发明可以根据 的值来判断学生的积极性和听讲状态。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈