学生课堂听课状态自动识别方法与流程

文档序号:18870791发布日期:2019-10-14 19:31阅读:2193来源:国知局
学生课堂听课状态自动识别方法与流程

本发明方法涉及一种学生课堂听课状态自动识别方法,尤其是一种实时且准确的学生课堂听课状态自动识别方法。



背景技术:

近年来图像处理技术日益成熟,数字图像处理的方法与学生听课状态的结合也越发的密切,教师可以根据学生的听课状态对自身授课内容进行反思与剖析,故课堂上学生的听课状态一直是教师们关注的焦点。现有的课堂听课状态分析大致分为非实时分析和实时分析两大类。非实时分析是对拍摄的课堂图像进行分析,其优点是效果比较精确,缺点是不具有实时性和随机性。实时分析考虑到了现实因素,但是分析的结果不是很精确。



技术实现要素:

本发明是为了解决现有技术所存在的上述技术问题,提供一种实时且准确的学生课堂听课状态自动识别方法。

本发明的技术解决方案是:一种学生课堂听课状态自动识别方法,其特征在于依次按照如下步骤进行:

步骤c011:初始化摄像头cam_1和cam_2,初始化编解码器;

步骤c012:启动摄像头cam_1和cam_2,摄像头cam_1取学生侧面1帧深度图像,记为cam1_image,摄像头cam_2取学生正面1帧深度图像,记为cam2_image,将cam1_image与cam2_image传输到pc机并保存,进入步骤c013;若接收到系统结束信号,则关闭系统;

步骤c013:pc机调用微软kinectforwindowssdk2.0中的get_bodycount()函数,获得cam1_image中人体头、颈、右肩、右手肘及臀部所在位置的坐标并对相应的点进行命名,头部点为a1,颈部点为b1,右肩点为c1,右手肘点为e1,臀部点为g1;获得cam1_image中人体头、颈、左肩、右肩、左手肘、右手肘及臀部所在位置的坐标并对相应的点进行命名,头部点为a2,颈部点为b2,左肩点为d2,右肩点为c2,左手肘点为f2,右手肘点为d2,臀部点为g2;

步骤c014:对cam1_image中的点a1与b1,b1与c1,c1与e1,b1与g1连线,生成骨架图,记为ske1_image并保存;对cam2_image中的点a2与b2,b2与c2,c2与e2,b2与d2,d2与f2及b2与g2连线,生成骨架图,记为ske2_image并保存;

步骤c021:对保存的图像ske1_image进行判断,如点b1g1连线延长线与kinect坐标系x轴的夹角在[60,120],判定为正常行为,进入c022步,否则判定为异常行为并进入c031步;

步骤c022:对保存的图像ske1_image进行判断,如点a1b1连线延长线与kinect坐标系x轴的夹角在[60,120],判定为正常行为,进入c023步,否则判断为异常行为并进入c031步;

步骤c023:对保存的图像ske2_image进行判断,点b2、点d2、f2点所构成的三角形中,点f2的纵坐标如果超过点d2的纵坐标,则∠d2f2b2的值为其测量值的补角值,否则∠d2f2b2的值取其测量值,判断∠d2f2b2的角度,如果取值在[5,90]内,则判定为正常行为,进入c024步,否则,判断为异常行为,进入c031步;

步骤c024:对保存的图像ske2_image进行判断,点b、点d、点f所构成的三角形中,点f的纵坐标如果大于或等于点d的纵坐标,则∠dfb的值为其测量值的补角值,否则取其测量值;判断∠dfb的角度,如果取值在[5,90],则判定为正常行为,进入c025步,否则,判断为异常行为,进入c031步;

步骤c025:对保存的图像ske2_image进行判断,点bg连线延长线与kinect坐标系x轴的夹角在[60,120],判定为正常行为,返回c012步,否则,判断为异常行为,进入c031步;

步骤c031:启动cam_1和cam_2的摄像功能录制10秒的视频段,记为wrong_actio1和wrong_actio2并保存,返回c012步。

本发明通过对kinect摄像头不断输入的当前帧图像进行处理而得到骨骼结构,再对骨骼结构中的点进行三角连线并判断角度来分析学生的听课状态,大大缩短了识别状态所需时间,具有较好的实时性,同时又能够准确判断课堂中学生的听课状态并能够对异常状态进行记录,对学生课堂听课状态的分析具有很高的实用价值。

附图说明

图1是本发明实施例听课状态侧面图。

图2是本发明实施例听课状态正面图。

图3是本发明实施例听课侧面骨架图。

图4是本发明实施例听课正面骨架图。

图5是本发明实施例听课状态正面骨架图测量角示意图。

具体实施方式

本发明的一种学生课堂听课状态自动识别方法,依次按照如下步骤进行:

步骤c011:初始化kinect摄像头cam_1和cam_2,初始化编解码器;

步骤c011:初始化摄像头cam_1和cam_2,初始化编解码器;

步骤c012:启动摄像头cam_1和cam_2,摄像头cam_1取学生侧面1帧深度图像(如图1所示),记为cam1_image,摄像头cam_2取学生正面1帧深度图像(如图2所示),记为cam2_image,将cam1_image与cam2_image传输到pc机并保存,进入步骤c013;若接收到系统结束信号,则关闭系统;

步骤c013:pc机调用微软kinectforwindowssdk2.0中的get_bodycount()函数,获得cam1_image中人体头、颈、右肩、右手肘及臀部所在位置的坐标并对相应的点进行命名,头部点为a1,颈部点为b1,右肩点为c1,右手肘点为e1,臀部点为g1;获得cam1_image中人体头、颈、左肩、右肩、左手肘、右手肘及臀部所在位置的坐标并对相应的点进行命名,头部点为a2,颈部点为b2,左肩点为d2,右肩点为c2,左手肘点为f2,右手肘点为d2,臀部点为g2;

步骤c014:对cam1_image中的点a1与b1,b1与c1,c1与e1,b1与g1连线,生成骨架图(如图3所示),记为ske1_image并保存;对cam2_image中的点a2与b2,b2与c2,c2与e2,b2与d2,d2与f2及b2与g2连线,生成骨架图(如图4所示),记为ske2_image并保存;

步骤c021:对保存的图像ske1_image进行判断,点b1g1连线延长线与kinect坐标系x轴的夹角在[60,120],判定为正常行为,进入c022步;

步骤c022:对保存的图像ske1_image进行判断,点a1b1连线延长线与kinect坐标系x轴的夹角在[60,120],判定为正常行为,进入c023步;

步骤c023:对保存的图像ske2_image进行判断,如图5所示,点b2、点d2、f2点所构成的三角形中,点f2的纵坐标未超过点d2的纵坐标,则∠d2f2b2的值取其测量值,判断∠d2f2b2的角度,因取值不在[5,90]内,则判断为异常行为,进入c031步;

步骤c031:启动cam_1和cam_2的摄像功能录制10秒的视频段,记为wrong_actio1和wrong_actio2并保存,返回c012步。

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