3D resnet根据UCF101数据集制作自己的数据集实现动作识别

2023-05-16

3D resnet根据UCF101数据集制作自己的数据集实现动作识别

    • 配置要求
    • 数据集
      • 数据集结构
    • 构建数据集
    • 训练
    • 测试

配置要求

作者代码 3D resnet

  • pytorch>0.4
  • FFmpeg, FFprobe
  • Python 3
    我这里使用的是torch1.8.1+cu102+torchvision0.9.1

数据集

为了测试作者代码的准确性,我先下载原作者所使用的数据集,作者所使用的4个数据集分别是ActivityNet,Kinetics,UCF-101,HMDB-51,其实最开始是想使用Kinetics700数据集,但在网上查阅资料发现,该数据集是来自youtube,下载不仅慢,而且有可能视频资源已经不存在,因此我最终选择UCF-101数据集,需要下载该数据集的童鞋记住!血泪教训!一定要用迅雷下载!
数据集下载链接在此:UCF101
数据集划分链接:https://www.crcv.ucf.edu/wp-content/uploads/2019/03/UCF101TrainTestSplits-RecognitionTask.zip

数据集结构

data
	UCF101_videos
	  	ApplyEyeMakeup
	  	...
	  	YoYo
 
  	UCF101_jpg
	  	ApplyEyeMakeup
	  	...
	  	YoYo
  	
  	UCF101_json
  		ucf101_01.json
 
  	UCF101_txt
	  	classInd.txt
	  	testlist01.txt
	  	testlist02.txt
	  	testlist03.txt
	  	trainlist01.txt
	  	trainlist02.txt
	  	trainlist03.txt
 
  	models
  		resnet-50-kinetics.pth #需要去下载
 
    results

将解压好的视频数据集全部放入UCF101_videos文件夹中,将数据集划分文件txt放入UCF101_txt文件夹中

构建数据集

在代码中作者其实已经给出划分数据集的代码,将数据集按7:3的比例划分训练集与测试集,如下:

python -m util_scripts.generate_video_jpgs data/UCF101_videos data/UCF101_jpg ucf101

data/UCF/UCF101_videos为数据集路径,data/UCF101_jpg为保存图片路径,它会自动将每个视频拆分的图片保存成一个文件夹存在data/UCF101_jpg里,ucf101为数据集名称

接着生成标注文件,如下:

python -m util_scripts.ucf101_json data/UCF101_txt data/UCF101_jpg data/UCF101_json

data/UCF101_txt为下载好的切分数据集的txt文件,data/UCF101_json为保存数据集标注文件夹。
再生成json文件时,我们可能遇到这种问题:

Error tokenizing data. C error: Expected 6 fields in line 3, saw 9

我的做法是将txt文件转换为csv文件在将util_scripts.ucf101_json中部分代码所用的文件后缀修改就可以生成json文件。(方法不唯一)

生成的json文件打开之后,可能会遇到这种情况:

"labels": [NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN]

这个时候只需要手动的将这个label改为classInd.txt里面的标签就可以,记住,一定要加双引号,不可以用单引号,如下:

"labels": ["Basketball","BasketballDunk","Biking","CliffDiving","CricketBowling","Diving","Fencing","FloorGymnastics","GolfSwing","HorseRiding","IceDancing","LongJump","PoleVault","RopeClimbing","SalsaSpin","SkateBoarding","Skijet","SoccerJuggling","Surfing","TennisSwing","TrampolineJumping","VolleyballSpiking","WalkingWithDog"]

训练

接下来就可以训练UCF101数据集,如下:

python main.py --root_path ./data --video_path UCF101_jpg/ --annotation_path  UCF101_json/ucf101_01.json \
--result_path results --dataset ucf101 --n_classes 101 --model resnet --model_depth 50 --batch_size 32 \
--n_threads 1 --checkpoint 10

–root_path为根目录,–video_path为数据集图片所在的位置,–annotation_path为标注文件速所在位置,–result_path为保存权重以及日志文件所在位置,–dataset为该数据集名称,–n_classes为该数据集的类别,–model与–model_depth为resnet 50,–batch_size设为32,–n_threads为只用1个GPU,–checkpoint为10个epoch保存一次。

测试

python main.py --root_path ./data --video_path UCF101_jpg/ --annotation_path  UCF101_json/ucf101_01.json \
--result_path results --dataset ucf101 --resume_path results/save_200.pth \
--model_depth 50 --n_classes 2 --n_threads 1 --no_train --no_val --inference --output_topk 5 --inference_batch_size 1

我们可以从results文件夹里的val.log查看每个测试集的类别和置信度。最后,我们就可以根据UCF101数据集的组成构建出自己的数据集与类别。最后,感谢各位大佬的分享,才能将该网络配置成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3D resnet根据UCF101数据集制作自己的数据集实现动作识别 的相关文章

  • python内置库csv

    csv文件 xff1a csv xff0c Comma Separated Values的缩写 xff0c 以英文逗号 分隔值纯文本形式存储数字和文本文件由任意数目的记录组成每行记录由多个字段组成 python内置了csv库 列表数据读写

随机推荐

  • docker入门教程

    Docker是一个开源的应用容器引擎 xff0c 基于Go语言开发 xff0c Docker可以打包应用及其依赖包到一个轻量级 可移植的容器中 xff0c 然后发布到任何流行的系统 docker相关资源 xff1a Docker 官方主页
  • 解决阿里云盾占用80端口的问题

    一 检查端口 输入以下命令 xff0c 检查服务器上的所有端口 netstat anput grep 80 嗯 xff0c 很好 xff0c 看到第一排明晃晃的出现了被占用的80端口 xff0c 特此截图为证 xff0c 免得所谓的 大厂
  • flask入门教程之请求与响应

    Flask是一个轻量级的web开发框架 xff0c 依赖jinja2和Werkzeug WSGI服务的一个微型框架 官方文档 xff1a https flask palletsprojects com en 2 0 x 中文文档 xff1a
  • Jenkins入门

    Jenkins是一个开源的 提供友好操作界面的持续集成 CI 工具 持续集成 xff08 CI xff09 是在源代码变更后自动检测 拉取 构建和 xff08 在大多数情况下 xff09 进行单元测试的过程 可以简单将jenkins理解为一
  • python常用库random

    random是python自带的库 xff0c 用来生成随机数 xff0c 或随机取值等 随机生成值 随机浮点数 random random random random xff1a 生成 0 1 之间的随机浮点数并返回 span class
  • Jenkins之allure测试报告邮件通知

    Jenkins入门教程 xff1a Jenkins入门 一般情况下 xff0c 我们想让Jenkins将构建结果或构建中的代码执行结果 xff08 比如跑批数据 xff09 通知我们 xff0c 这个是构建后的操作 经常用的是邮件通知 邮件
  • 按键控制电机控制窗帘

    include lt reg52 h gt define uchar unsigned char define uint unsigned int sbit in1 61 P0 0 sbit in2 61 P0 1 sbit in3 61
  • CentOS 8上安装Docker

    参考连接 https www cnblogs com famine p 14065690 html 参考连接 https www a5idc net helpview 591 html 参考连接 https blog csdn net zh
  • OpenCV第七篇:车牌识别

    目录 1 调整图片大小 xff0c 并获取灰度图 2 双边滤波去除噪音 xff1a cv2 bilateralFilter 3 边缘检测 xff1a cv2 Canny xff08 image xff0c threshold1 xff0c
  • gitee如何添加仓库成员

    1 进入gitee项目中 xff0c 如图 xff0c 点击 管理 2 点击 仓库成员管理 xff0c 展开该节点 3 点击 所有 xff0c 也可以选择其他选项 xff0c 比如 开发者 4 点击 添加仓库成员 xff0c 邀请用户 5
  • A*寻路算法之解决目标点不可达问题

    在游戏世界的寻路中 xff0c 通常会有这样一种情况 xff1a 在小地图上点击目标点时 xff0c 点击到了障碍物或者建筑上 xff0c 然后游戏会提示我们目标地点无法到达 玩家必须非常小心的在小地图上点击目标区域的空白部分 xff0c
  • Windows访问samba共享时,提示:“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问”

    此问题需要修改Win10 网络策略 按window 43 R键输入gpedit msc 来启动本地组策略编辑器 xff0c 如下 xff1a 依次找到 计算机配置 管理模板 网络 Lanman工作站 这个节点 xff0c 在右侧内容区可以看
  • 解决XCode错误:Command PhaseScriptExecution failed with a nonzero exit code

    一 环境 XCode版本 xff1a 14 3 二 错误场景信息 使用模拟器或真机调试 编译等都不出错 xff0c 唯独在进行Archive时 xff0c 会出现以下错误 xff1a Command PhaseScriptExecution
  • ubuntu+nvidia显卡驱动安装+(顺带)解决rviz卡顿/CPU使用率过高问题/compiz占用CPU过高问题

    前言 我原本安装nvidia显卡驱动的方式为 xff1a 从官网下载 run文件 xff0c 参考教程link 虽然安装成功 xff0c 运行深度学习相关代码没有出状况 xff0c 但仍然存在一些问题 重新通过ppa方式安装后 xff0c
  • Docker与ROS可视化(RViz)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 Docker中构建ROS环境二 Docker内ROS与主机ROS通信三 Docker内开启RViz1 OpenGL2 n
  • 卡尔曼滤波

    文章目录 前言一 初印象二 基本概念三 公式及参数四 其他总结 前言 之前看Fast LIO的时候 xff0c 了解过卡尔曼滤波的知识 xff0c 重新整理下 同时推荐一个很棒的Kalman Filter讲解网站 xff1a https w
  • 京东云前端JS分片上传完整版

    京东云上传我是写了以下几步 注 xff1a 京东云分片上传时成功则有data返回 失败则返回err 1 请求后台接口获取身份信息等数据用于访问 2 createMultipartUpload创建上传请求 身份信息 data为第一步时请求后台
  • Windows10环境下Python 开发环境搭建

    目录 前言 xff1a 一 安装包 二 Python安装 三 Pycharm安装 四 pip使用 前言 xff1a 本文档使用的安装包版本 xff1a python3 9 6 pycharm community 2021 1 3 本文安装提
  • Docker run 命令常用参数

    docker run xff1a 创建一个新的容器并运行一个命令 docker run OPTIONS IMAGE COMMAND ARG OPTIONS说明 xff1a it 以交互模式运行容器 xff1b gpus all xff1a
  • 3D resnet根据UCF101数据集制作自己的数据集实现动作识别

    3D resnet根据UCF101数据集制作自己的数据集实现动作识别 配置要求数据集数据集结构 构建数据集训练测试 配置要求 作者代码 3D resnet pytorch gt 0 4FFmpeg FFprobePython 3 我这里使用