win11系统AVA2.1数据集制作、训练、测试、本地视频验证(完整已跑通)

这篇具有很好参考价值的文章主要介绍了win11系统AVA2.1数据集制作、训练、测试、本地视频验证(完整已跑通)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面:

本文参照杨帆老师的博客,根据自己的需要进行制作,杨帆老师博客原文链接如下:

自定义ava数据集及训练与测试 完整版 时空动作/行为 视频数据集制作 yolov5, deep sort, VIA MMAction, SlowFast-CSDN博客文章浏览阅读2.2w次,点赞31次,收藏165次。前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至2022年4月底。我已经将这篇博客的内容写为论文,上传至arxiv:https://arxiv.org/pdf/2204.10160.pdf欢迎大家指出我论文中的问题,特别是语法与用词问题在github上,我也上传了完整的项目:https://github.com/Whiffe/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset关于自定义ava数据集,也是后台_ava数据集https://blog.csdn.net/WhiffeYF/article/details/124358725

一、环境准备

1、数据集制作环境

conda create -n your-env-name python=3.8 -y
conda activate your-env-name

数据集制作环境只需要YOLOv5和torch,下面命令是安装cuda11.1版本的torch的torchvision。

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install opencv-python-headless==4.1.2.30

提前下载好YOLOv5源码,cd到YOLOv5根目录,使用如下命令安装YOLOv5的依赖。

pip install -r requirements.txt

2、训练环境

训练环境本文严格依照MMaction2框架的安装环境,如有需要可参考如下链接:

安装 — MMAction2 1.2.0 文档https://mmaction2.readthedocs.io/zh-cn/latest/get_started/installation.html

2.1创建训练环境

conda create -n your-env-name python=3.8 -y
conda activate your-env-name

 2.2安装Pytorch和对应版本的torchvision

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html

2.3安装MMaction2依赖(使用mim安装命令)

使用mim命令可以自动解决版本问题

pip install -U openmim
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmpose

2.4从源码构建MMaction2

git clone https://github.com/open-mmlab/mmaction2.git
cd mmaction2
pip install -v -e .

2.5验证安装

请参考其他博客,进行MMaction2的安装验证

Win11系统下使用SlowFast训练AVA数据集-CSDN博客文章浏览阅读237次。本文主要讲述如何在Win11系统使用MMaction2框架下SlowFast网络进行AVA数据集的训练。https://blog.csdn.net/Yayisheng/article/details/135116428?spm=1001.2014.3001.5501

二、数据集制作(以下内容请在一.1创建的环境下运行)

请先下载杨帆老师的裁剪程序包

git clone https://gitee.com/YFwinston/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset.git

1、视频裁剪

本文以11秒视频为例,读者可以根据自己的需求变更视频长度,建议每个视频里都有动作并且持续11秒时间,裁剪软件可以使用剪映,ffmpeg裁剪出来的视频长度有出入,一定务必保证裁剪出来的视频为11:00:00,不能多一毫秒!!!!

2、视频抽帧

2.1每秒30帧抽取

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset下运行如下命令

sh cut_video.sh

生成的结果保存在 Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/frames文件夹下

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

 2.2整合和缩减帧

每秒一帧,整合在一个文件夹中的原因是方便yolov5检测,初步得到打标框 ,在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset下运行如下命令

python choose_frames_all.py 10 0

运行结果保存在 Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/choose_frames_all下

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

2.3不整合缩减

不整合主要是方便via的标注,文件结构会根据对应的视频 ,在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset下运行如下命令

python choose_frames.py 10 0

结果保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/choose_frames下

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

3、YOLOv5对帧进行检测

推荐使用YOLOv5x作为检测的预训练权重,虽然模型较大,但是检测性能较好,如有需要可以在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/yolov5/detect.py修改对应代码

3.1对choose_frames_all进行检测

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort下运行如下代码

python ./yolov5/detect.py --source ../Dataset/choose_frames_all/ --save-txt --save-conf 

结果会保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/yolov5/runs/detect/exp,请挨个检查是否每张图片都有人的标注框,如果没有,请先将label里的txt文件转成xml后,使用labelimg标注,之后再将xml转为txt

3.2 生成dense_proposals_train.pkl

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/mywork下运行如下代码

python dense_proposals_train.py ../yolov5/runs/detect/exp/labels ./dense_proposals_train.pkl show

4、 使用VIA工具

4.1choose_frames_all_middle

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset下运行如下代码

python choose_frames_middle.py

4.2自定义动作

请在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/mywork/dense_proposals_train_to_via.py 中修改自己的动作类别(注意:动作类别请尽量使用英文,中文动作可能在训练阶段会报编码错误!)

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/mywork下运行如下代码

python dense_proposals_train_to_via.py ./dense_proposals_train.pkl ../../Dataset/choose_frames_middle/

结果保存在 Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/choose_frames_middle文件夹中的json文件

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

4.3 去掉其他多余的标签

由于YOLOv5的预训练权重包含了80种物品类别,我们只需要人这一种类别,所以我们需要删除其他类别

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset下运行如下代码

python chang_via_json.py

结果保存在 Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/choose_frames_middle文件夹中的_s.json文件

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

4.4 VIA标注

via标注工具下载链接:https://www.robots.ox.ac.uk/~vgg/software/via/downloads/via3/via-3.0.11.ziphttps://www.robots.ox.ac.uk/~vgg/software/via/downloads/via3/via-3.0.11.zip点击 via_image_annotator.html

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

点击1,导入choose_frames_middle的图片文件,点击2,导入_s.json文件

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

 标注完之后点击保存,会下载一个json文件,请按照1_finish.json,2_finish.json重命名文件之后,放在choose_frames_middle对应的文件夹下

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

4.5VIA标注信息提取和整合

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/下执行

python json_extract.py

结果保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/train_without_personID.csv文件内

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

5、使用deepsort进行人物追踪

请提前下载deepsort的权重文件ckpt.t7,梯子下载过慢可以使用下面的百度网盘链接:

链接:https://pan.baidu.com/s/1zPBlLgJ8o3i5R5H539p_QQ
提取码:ww9c

将权重文件放在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/deep_sort_pytorch/deep_sort/deep/checkpoint文件夹内

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

5.1生成train_personID.csv

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/执行(注意:请修改source的路径)

python yolov5_to_deepsort.py --source /path/to/your/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/frames

结果保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/train_personID.csv

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

5.2融合两个csv文件

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/下执行

python train_temp.py

结果保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/train_temp.csv

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

5.3修正文件

会发现有些ID是-1,这些-1是deepsort未检测出来的数据,原因是人首次出现或者出现时间过短,deepsort未检测出ID

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/下执行

python train.py

结果保存在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/annotations/train.csv

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

6、其余标注文件

6.1生成train_excluded_timestamps.csv

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/annotations执行

type nul > train_excluded_timestamps.csv
type nul > included_timestamps.txt

然后在included_timestamps.txt 中写入

02
03
04
05
06
07
08

 6.2创建动作文件

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/annotations执行

type nul > action_list.pbtxt

在文件内写入你需要的动作

item {
  name: "your action1"
  id: 1
}
item {
  name: "your action2"
  id: 2
}
item {
  name: "your action3"
  id: 3
}

6.3复制dense_proposals_train.pkl文件

将3.2生成的dense_proposals_train.pkl文件复制到Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/annotations下

6.4创建val.csv

由于本文使用的数据集较小,所以不区分训练集和验证集,使用训练集作为验证集,如果有需要区分的读者,验证集的制作过程需要重复本文以上的所有操作

6.5创建val_excluded_timestamps.csv

复制6.1生成的文件即可

7、视频帧重命名

请将Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/frames内的所有文件,复制到Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/Dataset/rawframes中

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/mywork下运行如下代码

python change_raw_frames.py

8、标注文件修正

在Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset/yolovDeepsort/mywork下运行如下代码

python change_dense_proposals_train.py
python change_dense_proposals_val.py

9、所有标注文件一览

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

10、AVA2.1数据集所有文件一览

Dataset
├─annotations
│  ├─dense_proposals_train.pkl
│  ├─dense_proposals_val.pkl
│  ├─dense_proposals_test.pkl
│  ├─train.csv
│  ├─val.csv
│  ├─included_timestamps.csv
│  ├─train_excluded_timestamps.csv
│  ├─val_excluded_timestamps.csv
│  └─action_list.pbtxt
├─videos
│  ├─1.mp4
│  ├─2.mp4
│  └─...
├─video_crop
│  ├─1.mp4
│  ├─2.mp4
│  └─...
└─rawframes
   ├─1
   │  ├─img_00001.jpg
   │  ├─img_00002.jpg
   │  └─...
   ├─2
   │  ├─img_00001.jpg
   │  ├─img_00002.jpg
   │  └─...
   └─...

三、模型训练

请参考下面的博客,对代码进行修改

Win11系统下使用SlowFast训练AVA数据集-CSDN博客文章浏览阅读240次。本文主要讲述如何在Win11系统使用MMaction2框架下SlowFast网络进行AVA数据集的训练。https://blog.csdn.net/Yayisheng/article/details/135116428?spm=1001.2014.3001.5502修改的地方如下所示

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

使用如下命令启动训练

python tools/train.py path/to/your/config

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

模型权重保存在work_dir文件下

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

四、模型测试

使用如下命令进行测试

python tools/test.py path/to/your/config path/to/your/weights 

得到如下结果

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

五、使用本地视频进行推理

在MMaction2的根目录下创建Checkpoints文件夹

1、下载slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth

将slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth文件放入Checkpoints/mmaction文件夹内

2、下载faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth

 将faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth放入Checkpoints/mmdetection文件夹内

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

以上文件的百度网盘链接如下:

链接:https://pan.baidu.com/s/1gUs3Ec_Ux2rfEBmY3AWRjw
提取码:8cx2

3、创建新的label_map

在MMaction2/tools/data/ava文件夹下,创建my_label_map.txt,里面放入自己的动作类别,前后顺序严格按照4.2的顺序

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

4、视频推理

使用如下命令进行视频推理(请根据自己的需求修改命令行的路径)

python demo/demo_spatiotemporal_det.py --config path/to/your/config --checkpoint path/to/your/weights --det-config demo/demo_configs/faster-rcnn_r50_fpn_2x_coco_infer.py --det-checkpoint Checkpoints/mmdetection/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth --video path/to/your/input/video --out_filename demo/det_1.mp4 --det-score-thr 0.5 --action-score-thr 0.5 --output-stepsize 4  --output-fps 6 --label-map path/to/your/labelmap

视频保存在demo/det_1.mp4

ava计算机,AVA数据集,mmaction,行为识别,深度学习,pytorch,python,opencv,目标检测,人工智能,计算机视觉

六、写在最后

如果在任何一步出现问题,可以在评论区进行讨论,谢谢大家的关注文章来源地址https://www.toymoban.com/news/detail-827420.html

到了这里,关于win11系统AVA2.1数据集制作、训练、测试、本地视频验证(完整已跑通)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • YOLO 格式数据集制作

    目录 1. YOLO简介 2.分割数据集准备 3.代码展示 整理不易,欢迎一键三连!!! YOLO(You Only Look Once)是一种流行的目标检测和图像分割模型,由华盛顿大学的 Joseph Redmon 和 Ali Farhadi 开发。YOLO 的第一个版本于 2015 年发布,并因其高速度和准确性而迅速流行起来。 YOLO不同版本发

    2024年02月05日
    浏览(30)
  • 《如何制作类mnist的金融数据集》——1.数据集制作思路

    1 .数据集制作思路(生成用于拟合金融趋势图像的分段线性函数)        那么如何去制作这样的一个类minist的金融趋势曲线数据集呢?        还是如上图所示,为了使类别平均分布,因此可以选取三种“buy”的曲线、三种“sell”的曲线以及三种“no”的曲线来作为新

    2024年01月16日
    浏览(37)
  • pytorch实战5——DataLoader数据集制作

    目录 1.如何自定义数据集: 咱们以花朵数据集为例: 任务1:读取txt文件中的路径和标签 任务2:通过上面字典返回数据,分别把数据和标签都存在list里 任务3:图像数据路径得完整 任务4:把上面那几个事得写在一起,整合到一个类。 任务5:数据预处理(transform)¶ 任务6:根据

    2024年02月04日
    浏览(32)
  • 基于arcgis的遥感深度学习数据集制作

    由于很多时候,我们在研究过程中往往需要根据实际情况使用自己的影像数据来提取目标物,如果没有合适的公开数据集的话,为了满足实际需要,我们就需要制作符合自己要求的数据集。 今天我们就根据实际情况来详细讲解如何利用arcgis,来制作属于自己的数据集。 首先

    2024年02月01日
    浏览(42)
  • 通信调制信号及时频图数据集制作(MATLAB)

    实现平台:MATLAB2022b         首先产生调制信号,包括八种数字调制类型和三种模拟调制类型: 二相相移键控 (BPSK) 四相相移键控 (QPSK) 八相相移键控 (8-PSK) 十六相正交幅值调制 (16-QAM) 六十四相正交幅值调制 (64-QAM) 四相脉冲幅值调制 (PAM4) 高斯频移键控 (GFSK) 连续相位频移

    2024年02月08日
    浏览(37)
  • yolov8-pose姿态估计数据集制作(一)

    最近在搞yolo-pose姿态识别算法,现成的模型已经挺好用了,但是在某些特定的场景下,还是识别不准。所以想着自己搞搞数据,查了网上相关的博客,基本思路都是先按照coco格式来标,然后再转化成yolo格式。不废话,直接说咋干。 这里推荐使用CVAT,好用,没啥说。GitHub链接

    2024年02月11日
    浏览(38)
  • 【GAN】pix2pix算法的数据集制作

    以代码在pycharm中运行为例: 点击上图中的“编辑配置”,如下图: 编辑上图中画红线地方Parameters:

    2024年02月10日
    浏览(29)
  • 【计算机图形学】【代码复现】A-SDF中的数据集制作与数据生成

    Follow A-SDF 的 Data Generation 部分: We follow (1) ANSCH to create URDF for shape2motion dataset (1-2) URDF2OBJ(本人认为是1-2之间需要进行的重要的过渡部分) (2) Manifold to create watertight meshes (3) and modified mesh_to_sdf for generating sampled points and sdf values. follow这个github: ANSCH 在 global_info.py 中,主要修改

    2024年02月08日
    浏览(49)
  • python实现视频抽帧,文件批量操作,文件批量处理(数据集制作的工具箱)

    环境准备 数据集制作 文件批量重命名 文件批量移动 将文件批量按照一定格式进行重命名 修改xml文件内容的方法 Pathlib库的常用接口 在计算机视觉项目中,文件批量操作和文件批量预处理是必不可少的步骤。它们涉及处理大量的图像文件,包括读取、处理、保存和预处理。

    2024年02月09日
    浏览(61)
  • 通过微软MediaCreationToolW11制作Win11系统安装U盘,安装纯净版Win11的教程

    安装前注意事项 1、准备8G或8G以上U盘(32G以内)。 2、安装系统前备份好个人需要数据(制作U盘会格式化U盘,U盘内的重要文件也要事先备份好)。 3、预装office的务必记住自己激活office账户和密码以免重装后账户和密码忘记。 4、因为安装的win11是纯净版本的系统,需联网点

    2024年02月10日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包