基于计算机视觉的学生上课姿态识别

这篇具有很好参考价值的文章主要介绍了基于计算机视觉的学生上课姿态识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【私信获取源码】

数据集

1.1 AVA数据集介绍

AVA数据集为目前行为数据集中背景最复杂、人体目标最多的数据集,是由Google在2018年所发表的一个用于训练动作检测的数据集,该数据集注释430个15分钟电影切片中的80个原子视觉动作,在空间和时间上定位了动作,从而产生了1.62万个动作标签。这个数据中的内容有以下特点:更多的使用原子动作而不是复合动作(如bow、kneel、jump、sleep等)、对于每个人有更多的的时空标注(每个人会同时具有多种行为)、在切片内的标注尽可能的详细(每个切片中的动作种类会尽可能丰富)、物体在跨段中尽可能的连续(对于出现过的人会有ID进行标注)和使用电影来收集尽可能多的动作类别。且视频内人物动作具有无规则性,例如站立、坐下、与他人谈话等。动作类别丰富且具有代表性、普遍性。其动作类型如图1所示:

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

1.2公开数据集处理

为了避免网络训练时对同一场景进行过多训练而产生过拟合现象,因此在数据的预处理过程中,通过ffmpeg工具将数据集中的视频时长统一处理成15分钟。处理代码如下:基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

2 截取视频代码

通过上述所说,在完成裁剪时长后需要对视频进行抽帧处理,从而实现由连续帧中提取时间信息特征的目的,便于后续对网络模型的训练。因此把视频裁剪完后再裁剪成图片,本文中使用1秒3帧的方式来裁剪,裁剪完后统一存放在myframes文件夹中,便于后续标注处理。

在运行抽帧代码对数据集进行处理后,需要对每帧图片中的人体行为进行行为标注,通过标注的工作才能进行下一步网络的训练以及测试。考虑到所需处理图片数量大,标注时间过长,因此为了减少人工标注时间,本文使用detectron2工具对图片进行自动标注。Detectron2工具由Facebook AI团队维护,其被广泛用于目标检测、行为估计等应用方向,同时能进行图像分割等处理。基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

3 via标注

采用detectron2项目中的Faster RCNN目标检测算法进行自动标注,检测出图片中的人的位置即检测框四个点的坐标,然后将检测结果导入via标注工具,审核筛选无用框和错误框进行修正。在通过自动标注处理后会自动生成csv文件及txt文件,csv文件中包含图像中被检测到目标的框坐标,而txt文件中则包含动作标签,其均用于后续Slowfast网络训练时处理。处理结果如图4所示:基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

图 4 数据集及处理文件存放结构

2SlowFast网络

视频动作识别是通过对预先分割好的时域序列进行时空信息建模,从而学习视频中所包含的表象(appearance)和运动(motion)信息,以此来建立视频内容与动作类别之间的映射关系,使得计算机能够有效地胜任视频理解的任务。相比较于图像分类,视频中的动作识别多出一个时序维度,如何捕获视频帧之间所包含时序信息是动作识别的重点。其难点在于以下几点:

  1. 不确定因素多

动作数据集中往往存在光照不均、背景变化、相机抖动、目标遮挡等问题。这些不确定因素的干扰,会严重影响模型的性能,这也是导致动作识别未能实用化的重要原因。

  1. 动作边界的不确定性

一段视频可能包含多个动作,一些动作持续时间较短,而有些动作持续时间较长,且速度变化快,难以在时序上对动作的边界进行精准的定位,模糊的动作边界将很大程度上影响识别的精度。

  1. 动作类间差距小

在视频动作数据集上,会存在动作类间差异性小的问题,即不同类别的动作之间只存在细微的差距。然而,要精确地区分这些动作往往是比较困难的。

在自然图像里,空间维度x轴和y轴两个方向具有相同的可能性,但视频里,并不是所有的时空方向都有相同的可能性,慢动作比快动作的可能性大。因此就不应该对称的看待空间和时间。对于视频数据集里的人类动作一样,视频里既有相对静止的画面,也会有快速的动作。人的的空间语义变化很缓慢,因此人这个类别的识别是“慢速”刷新的;而人的动作速度比其主体识别的速度要快得多。这样快速变化的动作需要“快速”刷新。另外,在自然界中,动物界灵长类动物观察外界时,大多视网膜神经细胞用于识别外界静态细节,而还有一小部分神经细胞则用于观察外界目标的运动快慢信息的现象。基于这些原因, Facebook AI研究团队提出了SlowFast网络这种并行网络结构,该方法如同名称一样,应用了slow和fast两个并行的卷积神经网络来进行行为识别目的网络架构。

SlowFast模型包括两个路径,如图5所示,C代表Channel,T代表采样的帧数。其中Slow路径用于提取目标静态特征,即以低时间分辨率捕捉空间信息,例如一个人在做跑步动作时,跑步动作并不会改变“腿”的身份,一个人也会保持人类的身份,即便是从站着的状态变成跑步的状态。而Fast路径则用于提取目标动态特征,即以高帧率运行,捕获到更细节的时间信息。该路径可通过减少通道个数来简化模型复杂度,同时学习到有用的时间特征信息便于行为识别,达到轻量化目标,提高网络推理速度。基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

图5 SlowFast网络结构

SlowFast网络模型中通过将Fast路径通道个数减小到达轻量化目的,占总总计算量的20%。虽然减小通道的同时降低了空间信息处理能力,但由于轻量化的特性,可以在任何高帧率上进行操作,保持时间保真度。图中上方Slow分支路径,帧率不需要很高,即T的大小不需很大,因为其路径目的是为了捕捉到更多的细节信息,由于空间目标信息并不会快速变化,因此在通道上的维度是足够的;而对于Fast分支路径而言,因为不需捕捉细节特征,因此其通道信息的维度不需要过多,反而为了捕获动作信息,相应的帧数T就需要调大了,从而对应更密集的帧图像。在这之后,通过横向连接将两个路径的学习后的信息融合在一起。每个阶段(stage)结束后,都会实现一次横向连接,在pool1、res2、res3、res4四个阶段后一共执行了四次横向连接的信息融合。由于每个阶段结束后Slow和Fast的计算结果会具有不同的形状,无法直接拼接或相加,因此需要先对Fast的计算结果进行变换。在图像的目标检测任务中,横向连接被广泛应用于融合多尺度空间分辨率特征中。

Slow通道和Fast通道都使用3D RestNet模型,捕捉若干帧之后立即运行3D卷积操作。在每个通道的末端,SlowFast执行全局平均池化,一个用来降维的标准操作,然后组合两个通道的结果并送入一个全连接分类层,该层使用softmax来识别图像中发生的动作。实验表明,SlowFast网络对于建模幅度大、变化快的动作更具优势。图6为SlowFast网络结构的具体操作。其中包括多个残差网络(Resnet),因为在一个普通网络中,其预测输出值应该尽量接近输入值,但整个调节过程比较困难。因此通过残差网络,即将输出值变为初始输出值加上输入值,这样通过观察调节残差的大小来训练网络会更加有效及快速。基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

图6 SlowFast具体结构

  1. Slowfast网络训练及测试

3.1实验环境配置

本章的实验环境基于Windows系统的pycharm编译平台上进行的,使用RTX3090显卡进行Slowfast网络模型的训练测试。SlowFast网络训练配置如表1所示,在完成数据集的处理后,为了使SlowFast网络模型训练时间尽可能缩短,因此选用Facebook提供的预训练模型,使网络更快收敛,提高网络训练速度。下载好预训练模型后,开始配置相关参数,本文中训练的batch_size为16,模型drop_out阈值为0.5,使用sigmoid函数作为激活函数。

表 1 SlowFast训练说明

说明

参数

配置

torch1.8.1+cu111,torchvision0.9.1+cu111,opencv3.4、tensorboard2.4,ffmpeg、fvorce、PyYaml、psutil,CUDA11.1

GPU

RTX3090 (24GB)

初始学习率

0.1

Epoch

400

batch_size

16

一个epoch训练时长

30min

3.2设置网络结构及训练

在完成数据集的处理后,为了使SlowFast网络模型训练时间尽可能缩短,因此选用Facebook提供的预训练模型SLOWFAST_32x2_R50_SHORT5.yaml。预训练模型,即已经在某一类数据集上训练好的模型,例如要训练出一个能识别出人的四肢的网络模型,则可通过使用在人体识别上准确度较高的预训练模型来训练四肢的数据集,这样就能减少部分网络参数的更新,提高网络训练速度。下载好预训练模型后,开始配置相关参数,本文中训练的batch_size为16,模型drop_out阈值为0.5,使用sigmoid函数作为激活函数。在网络模型训练完成后,通过测试集来检测网络模型的性能。

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

7相关配置文件代码

训练过程中可根据训练日志文件,通过 tools/analysis/analyze_logs.py 脚本绘制 loss/top-k 曲线。本功能依赖于 seaborn使用前先通过 pip install seaborn 安装依赖包。如下图8所示在top1和top5的条件下左上角为模型准确率,右上角为分类损失曲线图,左下角为召回率曲线图,右下角为精确率曲线图。由图可得训练过程良好,未出现过拟合或者欠拟合现象,模型的准确率先逐渐增大而损失值先减小最后二者都稳定于某一水平上保持稳态波动。基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

3.3测试样例

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能

基于计算机视觉的学生上课姿态识别,计算机视觉,人工智能文章来源地址https://www.toymoban.com/news/detail-786307.html

到了这里,关于基于计算机视觉的学生上课姿态识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于计算机视觉的坑洼道路检测和识别

    本研究论文提出了一种使用深度学习和图像处理技术进行坑洼检测的新方法。所提出的系统利用VGG16模型进行特征提取,并利用具有三重损失的自定义Siamese网络,称为RoadScan。该系统旨在解决道路上的坑洼这一关键问题,这对道路使用者构成重大风险。由于道路上的坑洼造成

    2024年02月05日
    浏览(57)
  • 基于cv2的手势识别-计算机视觉

      闲的无聊做的一个小玩意,可以调用你的计算机相机,识别框内的手势(剪刀、石头和布),提供一个判决平台,感兴趣的可以继续完善。 用到的参考小文献: 具体实现结果如下 并且我另写了一个框架平台,可以进行下一步的功能拓展,发在我的资源界面了;   我们

    2024年02月01日
    浏览(63)
  • 计算机竞赛 基于机器视觉的停车位识别检测

    简介 你是不是经常在停车场周围转来转去寻找停车位。如果你的车辆能准确地告诉你最近的停车位在哪里,那是不是很爽?事实证明,基于深度学习和OpenCV解决这个问题相对容易,只需获取停车场的实时视频即可。 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

    2024年02月11日
    浏览(61)
  • 计算机竞赛 基于机器视觉的手势检测和识别算法

    🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 废话不多说,先看看学长实现的效果吧 主流的手势分割方法主要分为静态手

    2024年02月11日
    浏览(56)
  • 计算机视觉丨基于OpenCV的人脸识别打卡系统

    本期内容:基于OpenCV的WANT公司人脸识别打卡系统。 项目需求 : pycharm opencv numpy 项目下载路径:https://download.csdn.net/download/m0_68111267/88754360 社会上很多公司,学院都需要使用手机或者智能软件进行打卡签到。随着计算机技术的飞速发展,计算机视觉技术也越来越成熟了,例如

    2024年01月18日
    浏览(53)
  • 毕业设计-基于计算机视觉的垃圾分类识别系统

    目录 前言 课题背景和意义 实现技术思路 一、单目标垃圾图像识别研究 二、多目标垃圾图像识别研究 三、垃圾分类检测系统应用程序设计 四、系统功能设计 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准

    2024年02月05日
    浏览(58)
  • 竞赛保研 基于计算机视觉的身份证识别系统

    🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 1.1.1 字符定位 在Android移动端摄像头拍摄的图片是彩色图像,上传到服务器后为

    2024年01月18日
    浏览(52)
  • 计算机竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 物体检测就是对数字图像中一类特定的物体的

    2024年02月11日
    浏览(64)
  • 计算机竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

    🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的动物识别算法研究与实现 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 目前,由于计算机能力和相关理论的发展获得了重大突破,基于深度学

    2024年02月09日
    浏览(86)
  • 计算机毕设 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    今天学长向大家介绍一个机器视觉的毕设项目,二维码 / 条形码检测与识别 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 物体检测就是对数字图像中一类特定的物体的位置进行自动检测。基本的检测框架有两种: 一种是以滑动窗口为单位对图像进行扫描

    2024年02月10日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包