史上最简单、实际、通俗易懂的PyTorch实战系列教程!(新手友好、小白请进、建议收藏)

基于3D卷积的视频分析与动作识别

一、3D卷积原理解读

视频就是一帧一帧的图像按照时间拼接组成的,3D卷积就是比2D的卷积多了个时间维度。


二、UCF 101动作识别数据集简介

UCF 101动作识别数据集官网地址下载:https://www.crcv.ucf.edu/data/UCF101.php

101类视频,每一类里面是一个人在做一类的动作,比如射击、画口红、画眼线等等,数据集有6.5G,我也上传了网盘供大家下载或者大家自己去数据集的官网下载。

UCF101数据集的操作类别为:涂抹眼妆,涂抹口红,射箭,婴儿爬行,平衡木,乐队游行,棒球场,篮球投篮,篮球扣篮,卧推,骑自行车,台球射击,吹干头发,吹蜡烛,体重蹲,保龄球,拳击沙袋,拳击速度袋,蛙泳,刷牙,清洁和挺举,悬崖跳水,板球保龄球,板球射击,在厨房切割,潜水,打鼓,击剑,曲棍球罚款,地板体操,飞盘接球,前爬网,高尔夫挥杆,理发,链球掷,锤击,倒立俯卧撑,倒立行走,头部按摩,跳高,跑马,骑马,呼啦圈,冰舞,标枪掷,杂耍球,跳绳,跳跃杰克,皮划艇,针织,跳远,刺,阅兵,混合击球手,拖地板,修女夹头,双杠,披萨折腾,弹吉他,弹钢琴,弹塔布拉琴,弹小提琴,弹大提琴,弹Daf,弹Dhol,弹长笛,弹奏Sitar,撑竿跳高,鞍马,引体向上,拳打,俯卧撑,漂流,室内攀岩,爬绳,划船,莎莎旋转,剃胡子,铅球,滑冰登机,滑雪,Skijet,跳伞,足球杂耍,足球罚球,静环,相扑,冲浪,秋千,乒乓球拍,太极拳,网球秋千,投掷铁饼,蹦床跳跃,打字,高低杠,排球突刺,与狗同行,墙上俯卧撑,在船上写字,溜溜球。剃胡须,铅球,滑冰登机,滑雪,Skijet,跳伞,足球杂耍,足球罚款,静物环,相扑,冲浪,秋千,乒乓球射击,太极拳,网球秋千,掷铁饼,蹦床跳跃,打字,不均匀酒吧,排球突刺,与狗同行,壁式俯卧撑,在船上写字,溜溜球。剃胡须,铅球,滑冰登机,滑雪,Skijet,跳伞,足球杂耍,足球罚款,静物环,相扑,冲浪,秋千,乒乓球射击,太极拳,网球秋千,掷铁饼,蹦床跳跃,打字,不均匀酒吧,排球突刺,与狗同行,壁式俯卧撑,在船上写字,溜溜球。

三、《基于3D卷积的视频分析与动作识别》项目实战

代码链接:https://pan.baidu.com/s/1rEVP8jJB2HGKukfFK2nIGQ
提取码:agpd

3.1、测试效果与项目配置

记得把上面下载好的数据在工程文件夹同目录下创建一个data文件夹放解压的数据,然后才能运行测试,已经训练了100代的模型给大家测试了。运行 inference.py 就可以进行测试了。


训练的话,在 mypath 这个地方得设置一下路径,新建一个 data_process 文件夹。然后先运行 dataset.py 对数据进行一个处理,然后在用 train.py 训练,不过因为数据集的原因,可能会跑个几天吧,训练很久的。


这些就是数据预处理的结果,把视频预处理成一张张图片,也把数据集分成了训练集测试集验证集。


3.2、视频数据预处理方法

dataset 这里我们得到两个路径,第一个就是我们从哪去读这个数据(self.root_dir),第二个就是保存预处理数据的路径(self.output_dir)。

然后要进行一个resize操作,操作后每一帧的规格才会相同。


接下来要创建三个文件夹,然后遍历101类的类别文件夹当中的类别名字,也就是数据标签,把数据集按比例拆分:train、val、test


然后取数据,我们不一帧一帧取,这样子太相似了,我们每 4 帧取一帧。判断如果一共取出来的特征少于 16 了,我们就-1,隔3帧取一帧,再少于16再 -1,再少于16再-1。

然后再将取出来的那些图片做一个处理,resize操作呀等等,然后再写进去存储的文件夹。

3.3、数据Batch制作方法

先把数据读进来
然后再去截取16张图片,self.crop(),就是我们一帧一帧的视频可能不止16张,但我们一次要16张,取哪16张呢,这就是我们从哪开始截取了,而不是随机取16张的。然后重新去截取区域的 h 和 w ,这里是112*112。



这里的16就是一次(一个样本)读取16帧(16张)的图片。batch_size = 6 ,就是一次拿6个样本去训练。

3.4、3D卷积网络所涉及模块

初始化网络参数,卷积-池化-卷积-池化,现在是3d就改为 nn.Conv3d,然后kernel_size = (3,3,3),比之前多了一个维度,多了一个3,每3帧提取一个特征。然后MaxPool3d比之前多了个3d,kernel_size = (1,2,2)这里的1就是在时间维度上不去压缩,其他都变成原来的二分之一。往下的卷积池化就正常了,时间维度也会去压缩了。最后的全连接层的8192就是卷积池化后得到的特征图的大小,然后再转化成4096维,然后再转化成几类,最后再加 dropout 和 relu 激活函数,完事。

3.5、训练网络模型

前向传播一开始的网络结构变化和输出


模型保存操作

qiuzitao深度学习之PyTorch实战(十六)相关推荐

  1. qiuzitao深度学习之PyTorch实战(六)

    史上最简单.实际.通俗易懂的PyTorch实战系列教程!(新手友好.小白请进.建议收藏) 手把手教你搭建PyTorch神经网络进行气温预测 数据集:链接:https://pan.baidu.com/s ...

  2. 深度学习入门笔记(十六):计算机视觉之边缘检测

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  3. 深度学习之图像分类(十六)-- EfficientNetV2 网络结构

    深度学习之图像分类(十六)EfficientNetV2 网络结构 目录 深度学习之图像分类(十六)EfficientNetV2 网络结构 1. 前言 2. 从 EfficientNetV1 到 Eff ...

  4. 《深度学习之pytorch实战计算机视觉》第6章 PyTorch基础(代码可跑通)

    上一篇文章<深度学习之pytorch实战计算机视觉>第5章 Python基础讲了Python基础.接下来看看第6章 PyTorch基础. 目录 6.1 PyTorch中的Tensor 6. ...

  5. 深度学习入门(五十六)循环神经网络——循环神经网络RNN

    深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...

  6. 《深度学习之pytorch实战计算机视觉》第8章 图像风格迁移实战(代码可跑通)

    上一章<深度学习之pytorch实战计算机视觉>第7章 迁移学习(代码可跑通)介绍了迁移学习.本章将完成一个有趣的应用,基于卷积神经网络实现图像风格迁移(Style Transfer).和 ...

  7. pytorch 预测手写体数字_深度学习之PyTorch实战(3)——实战手写数字识别

    如果需要小编其他论文翻译,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 上一节,我们已经 ...

  8. 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析

    之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...

  9. 深度学习自学(二十六):人脸数据集

    人脸检测,关键点检测,人脸识别,人脸表情,人脸年龄,人脸姿态等方向的数据集. 01 人脸检测 所谓人脸检测任务,就是要定位出图像中人脸的大概位置. 1.1 Caltech 10000 数据集地址:ht ...

最新文章

  1. JavaScript语言基础7
  2. msyql主从同步实践
  3. Ubuntu下eclipse indigo版在线安装struts插件
  4. JDK踩坑: Smart LocalDate
  5. php redis 队列抢红包_php+redis实现消息队列
  6. mysql从盘延迟_Mysql-主从延迟解决方法
  7. 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
  8. 小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?
  9. java用中点画圆法_OpenGL通过中点法绘制直线和圆
  10. js逆向解析技巧--selenium
  11. C#学习笔记第一篇——类进阶
  12. thymeleaf 的hello world
  13. Android三横变叉动画,90%的孩子会写错的笔顺,动画演示来一波!一看就会!
  14. 微信小程序开发者工具平台+Hbuilder开发平台下载
  15. Power bi 3.14 饼图
  16. 信息隐藏的原理与应用
  17. Termux外置硬盘挂载——rclone WebDav 挂载网盘
  18. USB音频芯片/TYPE-C音视频处理芯片方案选型表
  19. linux ip route 命令详细解释
  20. Mysql 增加表注释

热门文章

  1. 专家看台:阿里软件产品设计师成长之路
  2. PDA与CFG之间的转换
  3. 漂浮式数据中心降低成本及功耗
  4. ps实例二:使用高斯滤镜制作图片阴影效果?
  5. 【服务网格架构】Envoy 部署类型
  6. 解决浏览器DNS错误码
  7. 如何解决winows启动后出现grub?
  8. freeswitch php监听,程序员罗杰-freeswitch对接asterisk压测
  9. 推荐一款免费开源的OCR软件
  10. 一步一步学android之布局管理器——LinearLayout