行为识别(一):UCF101视频数据集预处理

文章目录

  • 行为识别(一):UCF101视频数据集预处理
    • 1 数据集介绍
      • 1.1 UCF101
    • 2 UCF101预处理
      • 2.1 划分train_set和test_set
      • 2.2 将视频提取为图像

1 数据集介绍

基于视频的行为识别常见的数据库有UCF101、HMDB-51、Something-Something V2、AVA v2.2、Kinetic-700等。其中UCF101的标记方式是针对一段视频做一个类别的标记,AVA v2.2的标记共包含五个部分,video_id(视频名称)、middle_Frame_timestam(关键帧位置)、person_box(视频中人物的边界框)、action_id(动作类别)、person_id(bbox中人物编号)。UCF101是分类的任务,而AVA v2.2针对的是检测的任务,更多对AVA v2.2数据集的详细解析可以点击这里。

1.1 UCF101

本文选用的行为识别数据集为UFC101。

UCF数据集包含两个压缩文件,UCF101.rar和UCF101TrainTestSplits-RecognitionTask.zip,前者将不同类别的视频存放于不同的文件夹下,后者存放UCF101数据集的3种训练集与测试集划分方式以及标签文件。其中testlist01.txt和trainlist01.txt对应第一种划分方式。

`-- ucfTrainTestlist|-- classInd.txt|-- testlist01.txt|-- testlist02.txt|-- testlist03.txt|-- trainlist01.txt|-- trainlist02.txt`-- trainlist03.txt1 directory, 7 files
  • 内含13320 个短视频
  • 视频来源:YouTube
  • 视频类别:101 种
  • 主要包括这5大类动作 :人和物体交互,只有肢体动作,人与人交互,玩音乐器材,各类运动
  • 分辨率:320*240

2 UCF101预处理

2.1 划分train_set和test_set

目的:将UCF101划分为以下存储结构方式(使用trainlist01.txt和testlist01.txt进行划分)

.
`-- dataset|-- test|   |-- class1|   |   |-- 01.mp4|   |   |-- 02.mp4|   |   |-- 03.mp4|   |   `-- 04.mp4|   |-- class2|   |   |-- 01.mp4|   |   |-- 02.mp4|   |   |-- 03.mp4|   |   `-- 04.mp4|   |-- class3|   |   |-- 01.mp4|   |   |-- 02.mp4|   |   |-- 03.mp4|   |   `-- 04.mp4|   `-- class4|       |-- 01.mp4|       |-- 02.mp4|       |-- 03.mp4|       `-- 04.mp4`-- train|-- class1|   |-- 01.mp4|   |-- 02.mp4|   |-- 03.mp4|   `-- 04.mp4|-- class2|   |-- 01.mp4|   |-- 02.mp4|   |-- 03.mp4|   `-- 04.mp4|-- class3|   |-- 01.mp4|   |-- 02.mp4|   |-- 03.mp4|   `-- 04.mp4`-- class4|-- 01.mp4|-- 02.mp4|-- 03.mp4`-- 04.mp4

使用到的工具为shutil,环境为python,工具pip安装命令为

pip install pytest-shutil

python程序如下,程序的设计思想是先将testlist01中的文件移到“dataset/test/”路径下,再将剩下的文件夹重命名为“train”后移到dataset目录下

import shutil
import ostest_src_path = "T:/Dataset/UCF101/UCF-101/"
test_dest_path = "T:/Dataset/UCF101/dataset/test/"
train_src_path = "T:Dataset/UCF101/UCF-101/"
train_src_path_rename = "T:/Dataset/UCF101/train"
train_dest_path = "T:/Dataset/UCF101/dataset/"
# move testlist
with open("./UCF101TrainTestSplits/testlist01.txt", encoding='utf-8') as f:test_video_paths = f.readlines()
test_video_paths = [c.strip() for c in test_video_paths]  # 去掉换行符for test_video_path in test_video_paths:if not os.path.exists(os.path.join(test_dest_path, test_video_path[:-4])):os.makedirs(os.path.join(test_dest_path, test_video_path[:-4]))os.rmdir(os.path.join(test_dest_path, test_video_path[:-4]))shutil.move(os.path.join(test_src_path, test_video_path), os.path.join(test_dest_path, test_video_path))# move trainlist
os.rename(train_src_path, train_src_path_rename)
shutil.move(train_src_path_rename, train_dest_path)

2.2 将视频提取为图像

工具:ffmpeg
ffmpeg下载地址:https://ffmpeg.org/download.html

压缩ffmpeg-release-essentials.zip到指定目录,进入bin目录,里面有三个文件

ffmpeg.exe
ffplay.exe
ffprobe.exe

将这三个文件的路径放到conda创建的python环境中,和pythonw.exe在同一个路径,然后打开控制台激活这个python环境,输入ffmpeg -h命令查看帮助

脚本(extract_frames.sh):

IN_DATA_DIR="./dataset"
OUT_DATA_DIR="./UCF101_frames"if [[ ! -d "${OUT_DATA_DIR}" ]]; thenecho "${OUT_DATA_DIR} doesn't exist. Creating it.";mkdir -p ${OUT_DATA_DIR}
fifor dir1 in $(ls -A1 -U ${IN_DATA_DIR})
dofor dir2 in $(ls -A1 -U ${IN_DATA_DIR}/${dir1})dofor video in $(ls -A1 -U ${IN_DATA_DIR}/${dir1}/${dir2})dovideo_name=${video##*/}if [[ $video_name = *".webm" ]]; thenvideo_name=${video_name::-5}elsevideo_name=${video_name::-4}fiout_video_dir=${OUT_DATA_DIR}/${dir1}/${dir2}/${video_name}/mkdir -p "${out_video_dir}"out_name="${out_video_dir}/${video_name}_%06d.jpg"ffmpeg -i "${IN_DATA_DIR}/${dir1}/${dir2}/${video}"  "${out_name}"donedone
done

将脚本放在dataset同一级目录下,然后在安装有ffmpeg的conda环境下bash执行

./extract_frames.sh

C3D行为识别(一):UCF101视频数据集预处理相关推荐

  1. 视频数据集 | 视频动作识别video recognition常用数据集整理

    一 写在前面 未经允许,不得转载,谢谢~~~ 这篇文章主要整理一下视频动作识别领域常用的数据集~~~ 大概但不严格按照时间顺序排列. 二 视频分类数据集 HMDB51 来源:HMDB: a large ...

  2. [当人工智能遇上安全] 6.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例

    您或许知道,作者后续分享网络安全的文章会越来越少.但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个<当人工智能遇上安全>系列博客,详细介绍人工智能与安全相关的论文. ...

  3. 二十四.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Web渗透的第一步工作,涉及网站信息.域名信息.端口信息.敏感信息及指纹 ...

  4. 一些用于拥挤场景的异常检测的视频数据集

    UCSD Anomaly Detection Dataset http://www.svcl.ucsd.edu/projects/anomaly/dataset.htm UCSD(加州圣地亚哥大学分校 ...

  5. 表情识别------CNN训练fer2013数据集

    目录 1.概述 2.环境 3.数据读取 4.VGG 5.Resnet 6.摄像头表情识别 1.概述 分别用vgg和resnet对fer2013做了训练,只是简单的实现,没有做什么其他改进方法,在测试集 ...

  6. BDD100K:大规模、多样化的驾驶视频数据集

    文章目录 BDD100K:大规模.多样化的驾驶视频数据集 Annotations (一)道路目标检测 (二)车道线标记 (三)可行驶区域 (四)全帧实例分割 Driving Challenges Fu ...

  7. MATLAB实现基于BP神经网络的手写数字识别+GUI界面+mnist数据集测试

    文章目录 MATLAB实现基于BP神经网络的手写数字识别+GUI界面+mnist数据集测试 一.题目要求 二.完整的目录结构说明 三.Mnist数据集及数据格式转换 四.BP神经网络相关知识 4.1 ...

  8. 行人重识别(4)——行人重识别(基于视频)综述

    !转载请注明原文地址!--东方旅行者 本文目录 基于视频的行人重识别的常用方法 一.传统方法 二.深度学习方法 三.基于视频的行人重识别常见数据集 四.参考文献 基于视频的行人重识别的常用方法 一.传 ...

  9. 安保人脸识别技术与视频监控系统的结合应用

    随着信息技术不断发展,视频信息越来越广泛地应用在娱乐.教育.安全.生活等各种领域.基于人脸识别技术的智能视频监控系统具有十分广泛的应用前景.本文将重点针对人脸识别技术的研究方向.应用领域及技术优势,人 ...

  10. 推出 Pr-VIPE:识别图像和视频中的姿态相似度

    文 / Jennifer J. Sun 学生研究员和 Ting Liu 高级软件工程师,Google Research 日常活动,如慢跑.看书.倒水或运动,都可以看作是由人体的位置和方向组成的一连串姿 ...

最新文章

  1. 力扣算法题—073矩阵置零
  2. c语言求数列中连续数值组成的等差数列最大长度_电子工程师笔记,常用的C语言算法总结,值得转发收藏...
  3. centos nginx离线安装
  4. ANSI和UNICODE字符串处理函数
  5. VTK:Rendering之TransparentBackground
  6. cmos逻辑门传输延迟时间_CMOS和TTL都有哪些区别?图腾柱电路又是什么,详情进来一瞧!...
  7. 【图像去噪】基于matlab小波变换+Contourlet变换+PCA图像去噪【含Matlab源码 610期】
  8. 车险赔付率分析报告_车险经营情况分析报告模板.ppt
  9. 春节假期,把“电影院”搬回家,泰捷WEBOX T1S 投影仪全面评测
  10. 【Git】675- 让你的 commit 更有价值
  11. C语言使用josn库解析数据
  12. 来看看2022年各地移动政务服务新变化
  13. 为什么c语言输出到文件慢,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  14. 基于安卓的民宿客栈预定App丨有微信小程序
  15. 数据结构PTA 进阶实验5-3.2 新浪微博热门话题
  16. MySQL性能问题以及查找和处理
  17. 数据挖掘技术的应用领域
  18. PNETLAB中可以导入的交换机、防火墙等设备镜像
  19. 前田约翰《简单法则》十条
  20. 对程序员而言,有什么终身受用的底层知识?

热门文章

  1. (转)史上最全人工智能产品清单(1/3)
  2. python回文字符串编程_Python回文字符串及回文数字判定功能示例
  3. 字体转换,woff,ttf,otf,eot,svg
  4. SQL语句设置标识种子
  5. 日语毕业论文日文参考文献怎么找?
  6. 阿里巴巴代码规范插件
  7. AutoJs学习-几个QQ群脚本(群引流\提取成员\加群友\加群)
  8. python调用按键精灵插件_按键精灵 插件命令 重中之重务必要记住怎么操作
  9. 17个机器学习的常用算法
  10. cvs数据格式 gps_CSV、TXT 和 GPX 文件