[发明专利]基于光照生成对抗网络的课堂听课异常检测方法有效
申请号: | 201810831224.5 | 申请日: | 2018-07-26 |
公开(公告)号: | CN109241830B | 公开(公告)日: | 2021-09-17 |
发明(设计)人: | 谢昭;张安杰;吴克伟;肖泽宇;童赟 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G06K9/00 | 分类号: | G06K9/00;G06Q50/20 |
代理公司: | 安徽合肥华信知识产权代理有限公司 34112 | 代理人: | 余成俊 |
地址: | 230009 *** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 光照 生成 对抗 网络 课堂 听课 异常 检测 方法 | ||
1.一种基于光照生成对抗网络的课堂听课异常检测方法,其特征在于:包括有以下步骤:
步骤S1:采集真实课堂头部姿态数据:
采集并获取真实课堂中的视频帧,构建头部位置检测模型,标记候选头部位置图像,获取训练集和训练参数;
步骤S2:渲染光照课堂头部姿态数据:
根据设计的课堂学生3D模型,设置模型中头部姿态、光照条件、摄像机拍摄角度参数,多次渲染,获取渲染光照下的课堂图像集合;
步骤S3:构建光照生成对抗网络:
根据11层光照生成对抗网络,求解光照生成对抗网络的目标损失,训练光照生成对抗网络;
步骤S4:产生生成对抗样本:
使用真实课堂头部姿态数据,获取不同光照条件、拍摄角度、不同人物的光照渲染头部位置图像,使用训练后的光照生成对抗网络模型参数,生成优化后的渲染光照头部位置图像,计算光照优化头部位置图像的判决得分,设置逼真图像阈值,选取大于阈值的作为逼真的渲染光照头部位置图像;
步骤S5:构建头部姿态检测模型:
将逼真的渲染光照头部位置图像作为头部姿态检测的训练数据,利用标记头部姿态检测的训练数据,设置头部姿态检测模型,通过训练获得头部姿态检测模型的参数;
步骤S6:课堂头部姿态检测:
使用生成对抗头部姿态检测模型,实现课堂头部姿态检测;
步骤S7:课堂听课异常检测:
输入课堂实时采集视频,提取视频帧,使用构建的模型和训练参数,设置听课异常检测机制,获得不同状态学生的比例;
所述的采集真实课堂头部姿态数据,具体包括以下步骤:
步骤S1-1:采集真实课堂视频;
步骤S1-2:获取课堂视频中的视频帧,并进行滑动窗口采样,获得候选头部位置图像,每个头部位置图像包含RGB三层颜色通道;
步骤S1-3:构建头部位置检测模型,共8层的神经网络模型,其中前6层为卷积神经网络,第7层和第8层为全连接网络;
步骤S1-3-1:前6层卷积神经网络使用相同的参数,每层的滤波器尺寸为3*3,滤波器数量为256,池化方法为求和池化,即256通道中响应值求和结果,保留为最后的输出响应,激励函数形式为relu函数;
步骤S1-3-2:第7层的全连接层,将256特征神经元映射为4096特征神经元,全连接映射参数矩阵为256*4096;
步骤S1-3-3:第8层的全连接层,将4096特征神经元映射为单个神经元,全连接映射参数矩阵为4096*2,其中,最后输出层神经元的类别为1表示是头部位置图像,0表示不是头部位置图像;
步骤S1-4:对步骤S1-2获取的候选头部位置图像进行标记,获得头部训练数据,和非头部训练数据,构建头部位置检测训练集;
步骤S1-5:使用步骤S1-4获取的头部位置检测训练集,对步骤S1-3构建的头部位置检测模型进行训练,获得训练后的头部位置检测模型参数wheadpos;
步骤S1-6:对步骤S1-2获取的候选头部位置图像,使用训练后的头部位置检测模型参数wheadpos,进行人脸判断,可以辨别出头部和非头部,从而可以提取测试视频的真实头部位置图像realheadpos;
所述的渲染光照课堂头部姿态数据,具体包括以下步骤:
步骤S2-1:设计课堂学生3D模型;
步骤S2-2:在课堂学生3D模型中设置学生听课的头部姿态;
步骤S2-3:在课堂学生3D模型中设置光照条件;
步骤S2-4:在课堂学生3D模型中设置摄像机拍摄角度;
步骤S2-5:根据步骤S2-1,步骤S2-2,步骤S2-3,步骤S2-4设置的条件,进行多次拍摄,获取渲染光照下的课堂图像集合;
步骤S2-6:对渲染光照下的课堂图像集合,使用步骤S1-5训练后的头部位置检测模型参数wheadpos,获得光照渲染头部位置图像renderheadpos;
所述的构建光照生成对抗网络,具体包括以下步骤:
步骤S3-1:设置光照生成对抗网络,其中前4层为光照生成优化网络,第5 层到第11层为光照生成判决网络;
步骤S3-1-1:设置光照生成优化网络,使用4层的卷积神经网络;
步骤S3-1-1-1:在优化网络中,每层的卷积神经网络使用相同的参数,每层的滤波器尺寸为3*3,滤波器数量为256,池化方法为最大池化,即256通道中最大的响应值保留为最后的输出响应,激励函数形式为relu函数;
步骤S3-1-1-2:将光照生成优化网络中的所有参数,记做wref;
步骤S3-1-1-3:输入图像经过光照生成优化网络,会得到优化后的图像,优化后的图像和原始图像分辨率相同;
步骤S3-1-2:设置光照生成判决网络,使用7层的神经网络,其中前5层为卷积神经网络,第6层、第7层为全连接神经网络;
步骤S3-1-2-1:在判决网络中,前5层使用相同的参数,每层的滤波器尺寸为3*3,滤波器数量为64,池化方法为求和池化,即64通道中响应值求和结果,保留为最后的输出响应,激励函数形式为relu函数;
步骤S3-1-2-2:第6层的全连接层,将256特征神经元映射为4096特征神经元,全连接映射参数矩阵为256*4096;
步骤S3-1-2-3:第7层的全连接层,将4096特征神经元映射为单个神经元,全连接映射参数矩阵为4096*2,其中,最后输出层神经元的类别yreal,yreal为1表示是真实头部位置图像,0表示光照优化头部位置图像;
步骤S3-1-2-4:将光照生成判决网络中的所有参数,记做wjudge;
步骤S3-1-2-5:将一张光照渲染图像,输入光照生成判决网络,可以判决出其得分较接近于0;将一张真实头部位置图像,输入光照生成判决网络,可以判决出其得分较接近于1;
步骤S3-2:求解光照生成对抗网络的目标损失;
步骤S3-2-1:计算光照渲染图像的优化损失;
步骤S3-2-1-1:将光照渲染头部位置图像renderheadpos,输入步骤S3-1-1光照生成优化网络,获得光照优化头部位置图像refineheadpos;
步骤S3-2-1-2:求解光照渲染头部位置图像的优化损失,即光照优化头部位置图像refineheadpos和光照渲染头部位置图像renderheadpos的距离,使用1范数来计算2张图像之间的距离,即
dref=||renderheadpos-refineheadpos||1
步骤S3-2-2:计算图像的判决损失;
步骤S3-2-2-1:构建头部位置图像集合imgheadpos,其中包含真实头部位置图像realheadpos和光照优化头部位置图像refineheadpos;
步骤S3-2-2-2:根据图像类型,对头部位置图像集合imgheadpos设置图像标记yreal,yreal为1表示是真实头部位置图像,0表示光照优化头部位置图像;
步骤S3-2-2-3:将头部位置图像imgheadpos,输入步骤S3-1-2光照生成判决网络,获得判决得分sjudge;
步骤S3-2-2-4:根据判决得分和图像标记,求解一张图像的判决损失
步骤S3-2-3:求解光照渲染头部位置图像的总体损失,总体损失包括优化损失和判决损失2个部分,光照渲染头部位置图像的总体损失为
loss=dref+djudge
步骤S3-3:训练光照生成对抗网络;
步骤S3-3-1:训练光照生成优化网络;
步骤S3-3-1-1:输入光照渲染头部位置图像renderheadpos;
步骤S3-3-1-2:计算光照优化头部位置图像refineheadpos;
步骤S3-3-1-3:计算光照优化头部位置图像的判决得分sjudge;
步骤S3-3-1-4:根据步骤S3-2-3,计算光照渲染头部位置图像的总体损失loss;
步骤S3-3-1-5:调整光照生成优化的模型参数,并根据光照渲染头部位置图像的总体损失loss和梯度下降方法确定更新后的光照生成优化模型参数其中t表示模型参数的第t次更新;
步骤S3-3-2:训练光照生成判决网络;
步骤S3-3-2-1:重复步骤S3-2-2-4计算图像集合中所有图像的判决损失djudge;
步骤S3-3-2-2:调整光照生成判决的模型参数,并根据梯度下降方法确定更新后的光照生成判决模型参数其中t表示模型参数的第t次更新;
步骤S3-3-3:交替重复步骤S3-3-1和S3-3-2,迭代优化光照生成优化模型参数和光照生成判决模型参数直到模型损失收敛不再发生变化;
步骤S3-3-4:将收敛后的光照生成优化模型参数和光照生成判决模型参数记做训练后的光照生成对抗网络模型参数wadv={wref,wjudge};
所述的产生生成对抗样本,具体包括以下步骤:
步骤S4-1:使用步骤S2,获得不同光照条件,不同拍摄视角,不同人物的光照渲染头部位置图像renderheadpos;
步骤S4-2:使用步骤S3-3-4训练后的光照生成对抗网络模型参数,生成优化后的渲染光照头部位置图像refineheadpos;
步骤S4-3:使用光照生成判决模型,计算光照优化头部位置图像的判决得分sjudge;
步骤S4-4:设置逼真图像阈值,将判决得分sjudge大于0.5的作为逼真的渲染光照头部位置图像;
所述的构建头部姿态检测模型,具体包括以下步骤:
步骤S5-1:将逼真的渲染光照头部位置图像,和步骤S1-6获得的真实头部位置图像,均作为头部姿态检测的训练数据;
步骤S5-2:对头部姿态检测的训练数据进行类别标记ylisten,头部姿态训练数据中包括听课样本和不听课样本,其中ylisten为1表示认真听课,ylisten为0表示不听课;
步骤S5-3:设置头部姿态检测模型,使用7层的神经网络,其中前5层为卷积神经网络,第6层、第7层为全连接神经网络;
步骤S5-3-1:在判决网络中,前5层使用相同的参数,每层的滤波器尺寸为3*3,滤波器数量为64,池化方法为求和池化,即64通道中响应值求和结果,保留为最后的输出响应,激励函数形式为relu函数;
步骤S5-3-2:第6层的全连接层,将256特征神经元映射为4096特征神经元,全连接映射参数矩阵为256*4096;
步骤S5-3-3:第7层的全连接层,将4096特征神经元映射为单个神经元,全连接映射参数矩阵为4096*2,其中,最后输出层神经元的类别ylisten,其中ylisten为1表示认真听课,ylisten为0表示不听课;
步骤S5-4:使用步骤S5-1和步骤S5-2构建的训练集,对步骤S5-3构建的神经网络模型进行训练,获得训练后的头部姿态检测模型的参数wlisten;
所述的课堂头部姿态检测,具体包括以下步骤:
步骤S6-1:输入课堂实时采集视频,并提取视频帧;
步骤S6-2:使用步骤S1-6训练后的头部位置检测模型参数wheadpos,提取真实头部位置图像realheadpos;
步骤S6-3:使用步骤S5-4训练后的头部姿态检测模型的参数wlisten,计算学生头部姿态得分;
步骤S6-4:根据学生头部姿态得分,判断课堂学生是否在听课,其中ylisten为1表示认真听课,ylisten为0表示不听课;
步骤S6-5:对视频帧中的所有学生进行遍历,判断所有人的听课状态,计算不听课人数的比例;
步骤S6-6:设置不听课比例的状态阈值,如果全部不听课比例大于等于5%,则输出不听课状态,如果全部不听课比例小于5%,则输出正常听课状态;
所述的课堂听课异常检测,具体包括以下步骤:
步骤S7-1:输入实时监控视频,读取视频帧;
步骤S7-2:判断视频是否结束,如果监控视频结束,则结束课堂听课异常状态的实时判断;
步骤S7-3:如果监控视频仍然有效,使用步骤S6-6,对连续视频帧的不听课状态进行检测,提取每帧的不听课状态;
步骤S7-4:如果没有出现不听课状态,则清除不听课状态,清除不听课状态的开始时间,清除课堂听课异常状态;
步骤S7-5:如果出现不听课状态,则进行课堂听课异常判断;
步骤S7-5-1:如果首次出现不听课状态,则初始化当前时间为不听课状态的开始时间,初始化不听课持续时间为1帧;
步骤S7-5-2:如果不是首次出现不听课状态,则更新不听课状态的持续时间,增加持续时间1帧;
步骤S7-5-3:如果不听课状态的持续时间达到50帧,则输出课堂听课异常状态;
步骤S7-6:重复步骤S7-1到步骤S7-5实现对课堂听课实时数据的分析,并提供课堂听课异常状态检测,实现实时判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810831224.5/1.html,转载请声明来源钻瓜专利网。