一种非接触式的学习状态监测系统及学习状态检测方法与流程

文档序号:18602021发布日期:2019-09-03 22:46阅读:247来源:国知局
一种非接触式的学习状态监测系统及学习状态检测方法与流程

本发明涉及在线学习支持服务和情感计算领域,尤其涉及一种非接触式的学习状态监测系统,同时还涉及一种非接触式的学习状态检测方法。



背景技术:

自2012年美国多所顶尖大学设立大型开放式网络课程(massiveopenonlinecourses,mooc)开始,网络学习平台获得了蓬勃的发展。此后,coursera、udacity、edx三大课程提供商的兴起更为网络学习平台的发展注入了众多免费且优秀的课程。这使原本只能在顶尖学校才能学习到的高等教育变得触手可及,让学习不再受到地理、时间和身份的约束。但时至今日,仍缺少一个成熟的mooc学习支持服务系统来满足学习者、教师和管理员的三者需求。因此构建学习支持服务系统中学习者学习状态的监测与反馈这方面成为首要任务。

学习状态的检测主要从学习者的疲劳程度和注意力程度两方面着手。疲劳检测和注意力检测都属于picard提出的情感计算(affectivecomputing)范畴,因此两者所考虑指标耦合性较强,主要从学习者的图像特征、生理特征和行为特征三方面选取。基于图像特征的研究方法一般是通过摄像头等设备采集学习者学习的即时图像,然后利用计算机视觉技术和图像处理技术获取特征参数。基于生理特征的研究方法一般是使用专用的传感器设备采集生理信号进行处理。基于行为特征的研究方法一般通过监测鼠标键盘行为和浏览器浏览记录等来分析。

但实际上,目前远程学习状态监测有如下难点和问题:

(1)通过生理特征来监测学习者的学习状态的方法准确性较高,但需要价格昂贵的传感器设备,且对学习者具有较大的干扰性。通过行为特征的来检测学习者学习状态容易收到学习者使用习惯的影响,因此准确性较差。

(2)目前通过图像特征来监测学习者的学习状态是权衡准确率与干扰性之间的方法。但目前的研究都只采用了基于传统知识(如轮廓规则、对称性规则等)和几何特征(如ycbcr、特征点等)来进行学习者人脸抓取,这些方法准确率较低且容易受到学习者身体姿势的影响,不能够满足实时性监测的需求。



技术实现要素:

发明目的:为了解决现有技术存在的问题,本发明的目的是提供一种非接触式的学习状态监测系统,本发明的另一目的是提供一种非接触式的学习状态检测方法,能够以较高的准确率和实时性和较小的干扰性对学习者的学习状态进行监测和反馈。

技术方案:一种非接触式的学习状态监测系统,包括数据采集模块、特征检测模块和可视化界面模块;所述数据采集模实时获取图像,并将图像数据传输至特征采集模块进行处理,完成学习状态检测,可视化界面模块读取特征采集模块中所存储的数据,并将其显示于界面上,为远程学习的管理员和学习者本身提供特征值检测结果。

一种基于所述学习状态监测系统的非接触式的学习状态检测方法,包括如下步骤:

(1)数据采集模块通过摄像头,以固定频率读取实时图像帧,按时间先后顺序依次传递给特征检测模块;

(2)特征采集模块通过图像处理,进行人脸关键点检测、头部偏转角度估计、眨眼检测、哈欠检测和心率估计;

(3)可视化界面模块实时读取特征检测模块在数据库内保存的数据,并将其展示于界面,为远程学习的管理员和学习者本身提供特征值检测结果。

具体的,步骤(2)中,所述人脸关键点检测具体包括以下步骤:

(3.1)按时间先后顺序将图像传递给dlib工具包中的正向人脸检测器,得到在当前帧内检测到的人脸数量和人脸区域;

(3.2)若步骤(3.1)中检测到的人脸数量为0,则本步骤省略;若检测到的人脸数量不为0,则利用dlib中68点特征预测器,得到人脸区域最大的人脸的68个面部特征点在帧图像的像素点位置。

所述头部偏估计步骤具体包括以下步骤:

(4.1)选取人脸特征点检测中鼻尖、下巴、左眼的左眼角、右眼的右眼角、左嘴角和右嘴角这6个关键点;记录其图像中的2d位置和3d头部模型中的位置;

(4.2)用平移矩阵和旋转矩阵来描述头部相对于摄像头的姿态;其中,平移矩阵t表示头部相对于摄像头的空间位置关系矩阵,旋转矩阵r表示头部相对于摄像头的空间姿态关系矩阵;

(4.3)记关键点的世界坐标系中3d位置为(u,v,w),在相机坐标系中的位置为(x,y,z),世界坐标系位置和相机坐标系位置与平移矩阵t和旋转矩阵r满足如下关系:

其中,x,y,z为关键点在相机坐标系三个方向上的坐标值,u,v,w为关键点在世界坐标系三个方向上的坐标值,r为头部相对于相机中心的旋转矩阵,t为头部相对于相机中心的平移矩阵;

(4.4)根据已有的6个关键点求解以上关系中的旋转矩阵,并将旋转矩阵转化为欧拉角,得到学习者头部的俯仰角、偏航角和滚转角,即抬头低头程度、左右转头程度和左右摆头程度,并将数据记录进入数据库中。

所述眨眼检测和哈欠检测步骤具体包括以下步骤:

(5.1)选取人脸关键点检测中的眼部6个关键点,实时读取这六个点在帧图像中的位置;

(5.2)考虑到学习者的姿态影响,根据头部角度估计所得到的结果对当前图像做仿射变换,将原图片矫正为以学习者正脸为中心,得到仿射变换后的6个关键点位置;

(5.3)计算人眼纵横比;

(5.4)设置眨眼检测的阈值,当人眼纵横比低于阈值时,判定为闭眼;同理选取嘴部关键点进行哈欠检测;将每一帧的检测结果存入数据库中,并标记闭眼/睁眼状态;阈值的设置区间为[0.15,0.2];

(5.5)从数据库中读入当前时刻及之前的n帧图像,计算出闭眼状态的帧数m,计算疲劳状态m/n的值,当m/n超过30%以后,判定当前学习者为疲劳状态;将当前疲劳状态值记录进数据库;n的取值区间为[150,300]。

所述心率估计具体包括以下步骤:

(8.1)根据人脸关键点的位置,确定额头区域为感兴趣区域;在每一帧图像中截取额头区域并保存;

(8.2)将截取的额头区域图像转换为rgb图像,提取其中的绿色信道值,计算额头区域的平均绿色信号值作为特征值;

(8.3)保存分析时序的感兴趣区域平均绿色信号值;使用巴特沃斯滤波器进行数据的预处理,过滤掉噪声干扰;

(8.4)计算当前时序数据中的最大差值,并归一化处理;检测当前时序内的波峰,统计波峰个数为n个,计算当前时序所占的连续时间为t秒,近似估计心率为n/s。

有益效果:和现有技术相比,本发明具有如下显著进步:1、本发明采用摄像头采集数据,对学习者几乎没有干扰影响且实时性较好。2、本发明通过眨眼检测和哈欠检测、头部偏转估计和心率估计多方面监测,能够较为准确地描述学习者地疲劳程度和注意力程度。3、为管理者和学习者本身了解当前学习状况提供便捷的途径,解决了学习支持服务系统中学习者学习状态的监测与反馈的问题。

附图说明

图1是本发明中非接触式的学习状态检测方法及监测系统的系统结构和流程图。

图2是本发明中眨眼检测中人眼关键点选区和纵横比计算的示意图。

图3是本发明中非接触式的学习状态监测系统的原型系统展示图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式。

本发明所解决的问题是现有技术方案中,因需要专用传感器导致不能普遍推广使用,或是由于采用传统人脸检测方法导致状态分析准确率较低的难题。通过摄像头以固定频率读取实时图像,进行人脸关键点识别,判断当前是否有人并获取当前学习者人数。提取检测出的人脸关键点中的眼部关键点和嘴部关键点,计算纵横比,分析出学习者眨眼和哈欠行为。进一步,选取多个关键点,根据目前已有的头部3d模型,解已知多个空间3d点与图像2d点对应的点对计算获取头部姿态的问题。根据人脸关键点,确定人脸感兴趣区域,根据利用光电容积描记原理进行实时的心率估计。通过这些指标的检测,能够较为准确并较高实时地确定学习者地疲劳程度和注意力程度。

图1示出了将本发明应用到学习者学习状态检测的方法和系统流程图,下面参照图1详细说明实施的详细步骤。

如图1所示,本实施例的非接触式的学习状态监测系统共包括三个模块六个功能:

(1)数据采集模块

该模块通过摄像头,以固定频率读取实时图像帧,按时间先后顺序依次传递给特征检测模块。具体的,读取的固定频率设置为15fps或者30fps。变量i表示帧的序号,image[i]表示第i帧的图像。

(2)特征检测模块

该模块通过对图像处理,进行人脸检测,识别并存储人脸关键点数据。根据目前已有的头部3d模型,对应多个空间3d点与图像2d点的点对,计算获取头部姿态。利用已有的人脸关键点数据,计算眼睛和嘴部纵横比,进行眨眼和哈欠检测并存储结果。根据人脸关键点,确定人脸感兴趣区域,根据利用光电容积描记原理进行实时的心率估计。

具体的,人脸关键点检测方法为:

步骤1,按时间先后顺序将image[i]传递给dlib工具包中的正向人脸检测器,得到在当前帧内检测到的人脸数量face_number和人脸区域。

步骤2,若步骤1中检测到的人脸数量face_number为0,则本步骤省略。若检测到的人脸数量face_number不为0,则利用dlib中68点特征预测器,得到人脸区域最大的人脸的68个面部特征点在帧图像的位置position(c)[x,y],其中变量c表示特征点的序号,x和y分别表示在帧图像中横向和纵向的像素点位置。

完成人脸关键点检测后,若检测到有人脸时,才会进行后续的头部偏转估计、人眼检测和哈欠检测以及心率估计功能。头部偏转角度估计核心是通过算法完成3d世界坐标系、2d特征点输入和相机坐标系之间的映射转换以及参数标定。

具体的,头部偏转角度估计方法为:

步骤1,选取人脸特征点检测中鼻尖、下巴、左眼的左眼角、右眼的右眼角、左嘴角和右嘴角这六个关键点。记录其图像中的2d位置和3d头部模型中的位置。

步骤2,头部相对于摄像头的姿态可以用平移矩阵和旋转矩阵来描述。其中,平移矩阵t表示头部相对于摄像头的空间位置关系矩阵,旋转矩阵r表示头部相对于摄像头的空间姿态关系矩阵。

步骤3,记关键点的世界坐标系中3d位置为(u,v,w),在相机坐标系中的位置为(x,y,z),那么世界坐标系位置和相机坐标系位置与平移矩阵t和旋转矩阵r有如下关系:

步骤4,根据已有的六个关键点求解以上关系中的旋转矩阵,并将旋转矩阵转化为欧拉角,得到学习者头部的俯仰角、偏航角和滚转角,即抬头低头程度、左右转头程度和左右摆头程度,并将数据记录进入数据库中。

具体的,眨眼检测和哈欠检测方法为:

步骤1,如图2所示,选取人脸关键点检测中的眼部6个关键点,分别如图示记为p1,p2,p3,p4,p5和p6。实时读取这六个点在帧图像中的位置position(p_e)[x,y],其中变量p_e表示p1到p6这六个关键点。

步骤2,考虑到学习者的姿态影响,根据头部角度估计所得到的结果对当前图像做仿射变换,将原图片矫正为以学习者正脸为中心,得到仿射变换后的六个关键点位置position(p_e)’[x,y]。

步骤3,跟据以下公式计算人眼纵横比ear:

其中,position(pi)'[x,y]表示关键点i在二维平面内的像素位置,x,y分别表示横纵方向上的像素坐标值,双竖线运算符表示计算两个二维点之间的欧式距离。

步骤4,设置眨眼检测的阈值e,当ear<e时,判定为闭眼,一般的,e可以设置为区间[0.15,0.2]之间。同理可以选区嘴部关键点进行哈欠检测。将每一帧的检测结果存入数据库中,标记是闭眼状态还是睁眼状态。

步骤5,从数据库中读入最近时间内的n帧图像,计算出闭眼状态的帧数m,计算疲劳状态m/n的值,当m/n超过30%以后,可以判定当前学习者为疲劳状态。一般的,n可取[150,300]之间。将当前疲劳状态值记录进数据库。

具体的,心率估计方法为:

步骤1,根据人脸关键点的位置,确定额头区域为感兴趣区域。在每一帧图像中截取额头区域并保存。

步骤2,将截取的额头区域图像转换为rgb图像,提取其中的绿色信道值,计算额头区域的平均绿色信号值average[i]作为特征值。

步骤3,保存分析时序的感兴趣区域平均绿色信号值。使用巴特沃斯滤波器进行数据的预处理,过滤掉噪声干扰。

步骤4,计算当前时序数据中的最大差值,并归一化处理。检测当前时序内的波峰,统计波峰个数为n个,计算当前时序所占的连续时间为t秒,近似估计心率为n/s。

至此,完成了特征检测部分的相关工作。

(3)可视化界面模块

该模块为远程学习的管理员和学习者本身提供特征值检测结果。如图3所示,特征检测模块在数据库内保存了所有的数据,可视化界面模块实时读取这些结果展示在界面上,为管理员和学习者本身了解当前学习状况提供便捷的途径。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1