qiuzitao深度学习之PyTorch实战(十六)
史上最简单、实际、通俗易懂的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实战(十六)相关推荐
- qiuzitao深度学习之PyTorch实战(六)
史上最简单.实际.通俗易懂的PyTorch实战系列教程!(新手友好.小白请进.建议收藏) 手把手教你搭建PyTorch神经网络进行气温预测 数据集:链接:https://pan.baidu.com/s ...
- 深度学习入门笔记(十六):计算机视觉之边缘检测
欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...
- 深度学习之图像分类(十六)-- EfficientNetV2 网络结构
深度学习之图像分类(十六)EfficientNetV2 网络结构 目录 深度学习之图像分类(十六)EfficientNetV2 网络结构 1. 前言 2. 从 EfficientNetV1 到 Eff ...
- 《深度学习之pytorch实战计算机视觉》第6章 PyTorch基础(代码可跑通)
上一篇文章<深度学习之pytorch实战计算机视觉>第5章 Python基础讲了Python基础.接下来看看第6章 PyTorch基础. 目录 6.1 PyTorch中的Tensor 6. ...
- 深度学习入门(五十六)循环神经网络——循环神经网络RNN
深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...
- 《深度学习之pytorch实战计算机视觉》第8章 图像风格迁移实战(代码可跑通)
上一章<深度学习之pytorch实战计算机视觉>第7章 迁移学习(代码可跑通)介绍了迁移学习.本章将完成一个有趣的应用,基于卷积神经网络实现图像风格迁移(Style Transfer).和 ...
- pytorch 预测手写体数字_深度学习之PyTorch实战(3)——实战手写数字识别
如果需要小编其他论文翻译,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 上一节,我们已经 ...
- 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析
之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...
- 深度学习自学(二十六):人脸数据集
人脸检测,关键点检测,人脸识别,人脸表情,人脸年龄,人脸姿态等方向的数据集. 01 人脸检测 所谓人脸检测任务,就是要定位出图像中人脸的大概位置. 1.1 Caltech 10000 数据集地址:ht ...
最新文章
- JavaScript语言基础7
- msyql主从同步实践
- Ubuntu下eclipse indigo版在线安装struts插件
- JDK踩坑: Smart LocalDate
- php redis 队列抢红包_php+redis实现消息队列
- mysql从盘延迟_Mysql-主从延迟解决方法
- 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
- 小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?
- java用中点画圆法_OpenGL通过中点法绘制直线和圆
- js逆向解析技巧--selenium
- C#学习笔记第一篇——类进阶
- thymeleaf 的hello world
- Android三横变叉动画,90%的孩子会写错的笔顺,动画演示来一波!一看就会!
- 微信小程序开发者工具平台+Hbuilder开发平台下载
- Power bi 3.14 饼图
- 信息隐藏的原理与应用
- Termux外置硬盘挂载——rclone WebDav 挂载网盘
- USB音频芯片/TYPE-C音视频处理芯片方案选型表
- linux ip route 命令详细解释
- Mysql 增加表注释