自定义AVA数据集(在window上实现)

一、视频的处理

1.1ffmpeg安装

ffmpeg的官网地址是:https://www.ffmpeg.org/
在这里插入图片描述
下载完成后解压,打开bin就会看到有三个程序。在这里插入图片描述

1.1.1ffmpeg环境变量的配置

1.将下载的ffmpeg解压到指定的目录下,我解压在D盘目录下
2.右击此电脑——>属性——>高级系统设置——>环境变量。或者键盘按win键输入环境变量。在系统变量的path变量中添加ffmpeg解压的路径。在这里插入图片描述

3.配置完成后运行win+r,输入cmd回车。输入ffmpeg。若显示如下图,则说明配置成功。在这里插入图片描述

1.2视频准备

若我们下载的视频很长,而我们只需要几秒或者几分钟的视频的时候,我们则需要使用ffmpeg对视频进行剪辑。
例如,下面使用ffmpeg将一段长视频剪辑为0-4s视频的命令。

ffmpeg -ss 00:00:00.0 -to 00:00:4.0 -i "d:\Users\zlx\Desktop\train.mp4" "d:\Users\zlx\Desktop\1.mp4"

在这里插入图片描述
到这一步就算把需要使用的视频准备好了。接下来我们要对视频进行切割。在对视频进行切割前,我们需要先下载git软件。因为我们切割视频所使用的是.sh文件,在Ubuntu上我们可以直接用bash xxx.sh就可以直接运行了,但是现在我们需要在window上实现,就需要借助git。

1.3git安装

大家可以参考这篇博客,写的很详细了Git 详细安装教程

1.4切割视频

用两种切割方式去切割视频,第一种是一秒一帧,第二种是一秒三十帧。
!!这个注意哦两个代码的路径他的斜杠和电脑属性直接复制的不一样,要记得改
在这里插入图片描述
第一种,一秒一帧
代码(cut_videos.sh)如下:

#切割图片,每秒1帧
IN_DATA_DIR="d:/Users/zlx/Desktop"
OUT_DATA_DIR="d:/Users/zlx/Desktop"

if [[ ! -d "${OUT_DATA_DIR}" ]]; then
  echo "${OUT_DATA_DIR} doesn't exist. Creating it.";
  mkdir -p ${OUT_DATA_DIR}
fi

for video in $(ls -A1 -U ${IN_DATA_DIR}/*)
do
  video_name=${video##*/}

  if [[ $video_name = *".webm" ]]; then
    video_name=${video_name::-5}
  else
    video_name=${video_name::-4}
  fi

  out_video_dir=${OUT_DATA_DIR}/${video_name}/
  mkdir -p "${out_video_dir}"

  out_name="${out_video_dir}/${video_name}_%06d.jpg"

  ffmpeg -i "${video}" -r 1 -q:v 1 "${out_name}"
done

第二种,一秒三十帧
代码(cut_videos_frames.sh)如下:

#切割图片,每秒30帧
IN_DATA_DIR="d:/Users/zlx/Desktop"
OUT_DATA_DIR="d:/Users/zlx/Desktop"

if [[ ! -d "${OUT_DATA_DIR}" ]]; then
  echo "${OUT_DATA_DIR} doesn't exist. Creating it.";
  mkdir -p ${OUT_DATA_DIR}
fi

for video in $(ls -A1 -U ${IN_DATA_DIR}/*)
do
  video_name=${video##*/}

  if [[ $video_name = *".webm" ]]; then
    video_name=${video_name::-5}
  else
    video_name=${video_name::-4}
  fi

  out_video_dir=${OUT_DATA_DIR}/${video_name}/
  mkdir -p "${out_video_dir}"

  out_name="${out_video_dir}/${video_name}_%06d.jpg"

  ffmpeg -i "${video}" -r 30 -q:v 1 "${out_name}"
done

在window里面如何创建.sh文件:
在桌面创建一个txt文档,然后将代码复制进去并保存。然后选中文档,按F2进行重命名(修改文件后缀名,将txt改成sh)。
如果电脑不显示后缀名的话,打开我的电脑——点击查看——在文件扩展名那边打勾。在这里插入图片描述

1.5在window中运行sh文件,进行切割视频

将上面的步骤都完成后,在window上运行.sh文件需要用到git。
方法一:
1.打开git bash ,进入到你.sh所在的文件路径下。(也可以在该路径下输入git bash 回车也可以快速进入——进入后就是在这个路径下了)在这里插入图片描述
2.输入sh cut_videos.sh
他就会将该路径下的所有视频进行切割。

二、数据集文件的处理

2.1labelimg安装

2.1.1下载与安装Anaconda3

anaconda官网点击下载,并安装。
anaconda安装完成之后记得切换国内的源来提高下载速度,命令如下(在cmd上运行):

conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

查看自己是否换源成功:
在自己C:\Users\zlx用户路径下,会看到一个.condarc,打开方式用记事本,就会看到
在这里插入图片描述
出现这个就算成功了。

然后创建并激活虚拟环境:
这里mmaction2,是我虚拟环境的名字,你们可以替换成自己想要的名字。

conda create -n mmaction2 python==3.8.5
conda activate mmaction2

2.1.2下载与安装labelimg

labelimg下载地址
点击Clone or download——选择Doenload ZIP,下载完成后解压。

安装依赖库:
分别需要安装lxml、PyQt5、PyQt5_tools:

pip install lxml 

在这里插入图片描述

pip install PyQt5 

在这里插入图片描述

pip install PyQt5_tools 

在这里插入图片描述

如果遇到下载失败,可能是pip需要更新:

pip install --upgrade setuptools && python -m pip install --upgrade pip

运行:
在这里插入图片描述

在文件中labelimg.py就是我们要执行的文件,它相当于主函数。
在图片标1的地方输入cmd,进入到命令窗口。就会发现这样进入命令窗口后的路径是该文件夹,如果是win+r,输入cmd的话,进入命令窗口的路径是C盘下的用户路径。
然后在labelimg文件夹路径下输入python labelimg.py就可以运行该py文件。
回车后弹出以下界面,说明安装成功。
在这里插入图片描述

2.2labelimg使用

labelimg界面:在这里插入图片描述
labelimg的快捷键如下:

按键功能
ctrl+Q退出软件
ctrl+Oopenfile
ctrl+UopenDir
ctrl+RChangeSaveDir
ctrl+S保存
ctrl+LboxlineColor
ctrl+Jmove and edit Boxes
ctrl+D复制框
ctrl+H隐藏所有的框
ctrl+A显示所有的框
ctrl+ +放大
ctrl+ -缩小
ctrl+ =原始大小
ctrl+Ffit window
ctrl+E编辑标签
ctrl+shift+O打开的文件夹只显示.xml文件
ctrl+shift+S
ctrl+shift+Ffit Width
d下一张图
a上一张图
space标记当前图片已标记
w创建一共矩形框
Delete删除

2.3描写数据集

2.3.1person_box

在这里插入图片描述
然后在保存标签的地址里就会看到1_000001.txt,打开就能得到四个数据。这就是我们所需要的person_box数据。
标记完后,如下图:在这里插入图片描述
标记了多少张图就会有多少个文本,然后可以使用dos命令轻松实现合并。
在这里插入图片描述
在当前目录下,输入合并指令:

type *.txt >>d:\Users\zlx\Desktop\2\A.txt

然后就会得到合并好的A.txt文件了。在这里插入图片描述

2.4labelimg使用遇到的问题

1.遇到切下一张图闪退问题
报错如下图:
在这里插入图片描述

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
自定义时空动作/行为视频数据集的制作过程需要以下步骤: 1. 数据收集:收集与目标动作/行为相关的视频片段。可以通过在公共视频平台上搜索相关关键词,或者使用摄像头拍摄自己感兴趣的动作/行为。确保视频片段的质量和多样性。 2. 数据预处理:对收集到的视频进行预处理,包括视频剪辑、格式转换和标注。选择关键帧或者将视频切割成短小的视频片段,并将其转换成计算机可读取的格式(如mp4)。同时,根据视频内容对每个视频片段进行标注,标注目标动作/行为的位置和类别。 3. 数据标注:使用标注工具(如LabelImg)对每个视频片段进行标注。通过框选或者用关键点标记目标动作/行为的起始点和终止点,以形成标注数据。 4. 数据划分:将整个数据集分成训练集和测试集。通常,将80%的数据作为训练集,20%的数据作为测试集。确保训练集和测试集的数据分布均匀,避免数据集不平衡的问题。 5. 数据增强:对训练集进行数据增强,以提高模型的泛化能力。可以使用图像处理技术如平移、旋转、缩放等进行图像增强,也可以使用视频处理技术如帧采样、速度调整等进行视频增强。 6. 模型训练:选择合适的深度学习模型(如YOLOv5、Deep等),使用训练集对模型进行训练。在训练过程中,将训练集输入到模型中,通过最小化损失函数来优化模型参数,使其能够准确地检测时空动作/行为。 7. 模型评估:使用测试集对训练好的模型进行评估。将测试集输入到模型中,计算模型的精确度、召回率等评价指标,以评估模型的性能。 8. 模型优化:根据评估结果,对模型进行优化。可以调整模型的超参数,增加训练集的规模,或者增加训练轮数等,以进一步提高模型的性能。 通过以上步骤,就可以完成自定义的时空动作/行为视频数据集的制作,并使用YOLOv5、Deep等深度学习模型进行训练和测试。这样训练出来的模型可以用于检测和识别视频中的时空动作/行为。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值