UCF101数据集处理

在复现动作识别类的算法时,常需要用到数据集。ucf101就是其中一个。

之前复现代码时所用的ucf101数据集是直接将原数据集中的视频处理成图片。数据集目录如下:
UCF101/ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01/img_00001.jpg
(此时通过train.txt和test.txt两个文本文档来读取数据集信息。两个文本中有三列内容,第一列是路径,第二列是视频的帧数,第三列是视频的类别)

这次代码复现则需要将整个数据集分成两个部分 训练集 和测试集。那么数据集目录需要转换成以下形式:
UCF101/train/ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01/img_00001.jpg
UCF101/test/ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c02/img_00001.jpg

因为手动复制文件夹过于麻烦,所以采用python编程来完成。主要思想就是通过读取上面所说的train.txt和test.txt文件,然后将对应的文件夹放入train、test文件夹下面。代码如下:

#coding:utf-8
import os,shutil
#移动文件夹的函数,将一个文件夹下所有文件移动到另一个文件夹下
def move_file(orgin_path,moved_path):  dir_files=os.listdir(orgin_path)   #得到该文件夹下所有文件for file in dir_files:file_path = os.path.join(orgin_path,file) #路径拼接成绝对路径if os.path.isfile(file_path):  #如果是文件,则打印这个文件路径if file.endswith(".jpg"):if os.path.exists(os.path.join(moved_path,file)):print("有重复文件,跳过,不移动")continueelse:shutil.move(file_path, moved_path)if os.path.isdir(file_path): #如果是目录,就递归子目录moved_path=os.path.join(moved_path,file)if not os.path.exists(moved_path):os.mkdir(moved_path)move_file(file_path,moved_path)print("移动文件成功!")list_file='yourpath/ucf101test02.txt' #存有train/test.txt文件的路径
root='yourpath/UCF101/origin' #原数据集的目录
destinate='yourpath/UCF101/test'  #目标位置的目录
tmp = [x.strip().split(',') for x in open(list_file)] #将.txt文档中的内容以逗号分隔class_ = sorted(os.listdir(root))for c in class_:class_path = os.path.join(destinate, c) #在目标位置下建好分类级的文件夹,如/mnt/data/public/UCF101/testApplyEyemakeup,#因为不可以越过一个不存在的目录,新建更深层的目录if not os.path.exists(class_path):os.mkdir(class_path)for i in range(0,len(tmp)):root_path=os.path.join(root,tmp[i][0])   #原路径dest_path=os.path.join(destinate,tmp[i][0])  #目标路径if not os.path.exists(dest_path):  #若不存在目标路径则新建os.mkdir(dest_path)  move_file(root_path,dest_path)  #将原路径下的文件移动到目标目录下

通过该程序就可以将原有的整个UCF101数据集分成 训练集 和测试集 了

UCF101数据集处理相关推荐

  1. UCF101数据集的处理问题

    UCF101是.avi视频,我用opencv把每个视频裁剪成一帧一帧的图片保存,但是当我用opev去读这些图片的时候,为什么有的视频读出来的像素值都为0,但是我不管用cv.imshow()还是plt. ...

  2. UCF-101 完整版数据集 阿里云下载链接

    数据集过大,分成五个部分上传,每个部分有20个视频集(20种动作) 01-20:https://www.aliyundrive.com/s/d5VqMP24s4f 21-40:https://www. ...

  3. 【技术综述】视频分类/行为识别研究综述,从数据集到方法

    视频分类/行为识别是计算机视觉领域中非常有挑战性的课题,因为其不仅仅要分析目标体的空间信息,还要分析时间维度上的信息,如何更好的提取出空间-时间特征是问题的关键.本文总结了该领域的技术进展和相关数据集 ...

  4. 视频分类之 UCF-101 上的 CNN 方法详解

    视频分类之 UCF-101 上的 CNN 方法详解 Code at Github: https://github.com/sujiongming/UCF-101_video_classificatio ...

  5. 动作识别、检测、分割、解析相关数据集介绍

    文章目录 动作识别 UCF101(UCF101 Human Actions dataset) Kinetics (Kinetics Human Action Video Dataset) 动作检测 / ...

  6. Temporal Shift Module(TSM) 部署在自己电脑上并训练自己的数据集

    引言: 本小白第一次写博客,如有不妥请多多包含. 能接触到TSM还是因为毕设的原因.本小白今年本科大四,在毕设的时候选择了 "用事件相机进行人体动作的识别" 这个项目.该项目旨在应 ...

  7. 使用UCF101完成的视频动作分类识别

    文章目录 前言 一.UCF101数据集简述及下载 二.使用Conv3D来处理 0. 装好各种包 1. 修改main.ipynb的path路径代码,然后运行main.ipynb的全部代码 2. 修改pr ...

  8. PaddleVideo使用自己的数据集训练pp-tsm

    PaddleVideo使用自己的数据集训练pp-tsm 前言 一:UCF101数据集 (1)UCF101视频数据 (2)UCF101标注文件 classInd.txt testlist0x.txt t ...

  9. 数据集学习笔记(一):常用检测、行为检测数据集

    文章目录 常用检测数据集 一 CIFAR系列 二 COCO 三 VOC系列 四 CIFAR10 五.TT100K 六 将图像数据集划分为训练集,验证集,测试集 常用行为检测数据集 UCF101 常用检 ...

  10. 用tsm动作识别训练自己的数据集

    1.准备数据 类似ucf101数据集格式 1.1生成class.txt train.txt test.txt #makelabel.py import os #图片数据集路径 baseDir = &q ...

最新文章

  1. SVM+二分类+多分类
  2. bootstrap 评价页面_文章评论《 HTML5 与 Bootstrap 应用实例 》
  3. [leetcode]Sort Colors
  4. 创业者如何小步快跑,从0开始实现自己的产品?
  5. 'module' object is not callable
  6. jsp中未登录用户也可以浏览页面的功能实现代码
  7. php获取两个输入框的值,PHP获取多个文本框中值的实例代码
  8. 【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)
  9. window的war发布Linux失败,为什么war包在Windows的tomcat正常运行,在linux服务器报errorpage错误?...
  10. rotateleft_Java Integer类rotateLeft()方法与示例
  11. 大数据之-Hadoop三大发行版本---大数据之hadoop工作笔记0010
  12. Python之Python3本地安装教程
  13. jieba java_【NLP】【一】中文分词之jieba
  14. 小米CC9BL解锁、root方法测试
  15. RGB888转换为RGB565原理及工具
  16. 服装设计师和时尚达人必看的实用网站信息大全
  17. 前端阿里矢量图的使用步骤
  18. 机器学习——凸优化基础知识
  19. java中的数据结构——树
  20. 打印图形 鸟瞰金字塔

热门文章

  1. BC95方案NBIOT入网配置教程
  2. macbook pro安装JDK
  3. arduino 下载 https://downloads.arduino.cc/packages/package_index.json error 出错的解决方法
  4. 对计算机网络考研知识点归纳(不断更新中T)
  5. Navicat Premium 12 安装教程 + 注册机 Navicat_Keygen_Patch_v5.0_By_DFoX_CHS [附资源]
  6. 猿创征文 | 国产数据库之神通数据库详解安装和使用
  7. RMSProp算法和AdaDelta算法
  8. csv 计算机系统化验证,计算机化系统CSV验证问答.doc
  9. yml文件配置数据库
  10. 记录:zlog交叉编译出aarch64的libzlog.a