08【mmaction2 行为识别商用级别】自定义ava数据集 之 将视频裁剪为帧

github(新版):https://github.com/Whiffe/mmaction2_YF
码云(新版):https://gitee.com/YFwinston/mmaction2_YF.git
github(老版本):https://github.com/Whiffe/YF-OpenLib-mmaction2
码云(老版本):https://gitee.com/YFwinston/YF-OpenLib-mmaction2.git
mmaction2 官网:https://github.com/open-mmlab/mmaction2
平台:极链AI
b站:https://www.bilibili.com/video/BV1tb4y1b7cy#reply5831466042

之前的mmaction2项目:【mmaction2 slowfast 行为分析(商用级别)】总目录

本系列的链接

00【mmaction2 行为识别商用级别】快速搭建mmaction2 pytorch 1.6.0与 pytorch 1.8.0 版本

03【mmaction2 行为识别商用级别】使用mmaction搭建faster rcnn批量检测图片输出为via格式

04【mmaction2 行为识别商用级别】slowfast检测算法使用yolov3来检测人

08【mmaction2 行为识别商用级别】自定义ava数据集 之 将视频裁剪为帧

12【mmaction2 行为识别商用级别】X3D复现 demo实现 检测自己的视频 Expanding Architecturesfor Efficient Video Recognition

前言

自定义ava数据集是一个较大的部分,我会分为多节来写,这次先写第一步,就是将视频裁剪为帧,但是有些规则必须遵守,不然在训练就会出问题。

一,准备好视频

将视频存放在一个文件夹(video)中,然后对视频进行有规律的取名(自定义)
在这里插入图片描述

在这里插入图片描述

二,裁剪视频代码

下面的代码位于(老版 新版的github项目我都做了上传,都是一样的):
老版 https://github.com/Whiffe/YF-OpenLib-mmaction2/blob/main/demo/video2frames.sh
新版 https://github.com/Whiffe/mmaction2_YF/tree/main/demo

video2frames.sh

IN_DATA_DIR=$1 #这里传入输入视频的路径
OUT_DATA_DIR=$2 #这里传入输出视频的路径
#IN_DATA_DIR="../../data/ava/videos_15min"
#OUT_DATA_DIR="../../data/ava/frames"

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

其中 ffmpeg -i "${video}" -r 30 -q:v 1 "${out_name}"
30代表1秒钟裁剪30帧,这是mmaction2官方用的参数,一般都是一秒裁剪30帧。

这一行out_name="${out_video_dir}/${video_name}_%06d.jpg" 代表视频帧的命名格式

三,安装ffmpeg

安装ffmpeg,如果权限不够,前面加入(sudo)

add-apt-repository ppa:djcj/hybrid
apt-get update
apt-get install ffmpeg -y

参考:https://blog.csdn.net/lwgkzl/article/details/77836207

三,执行代码与结果

将视频裁剪为视频帧:

bash ./demo/video2frames.sh /user-data/mmactionVideo/video /user-data/mmactionVideo/frames 1
# 第一个参数:/user-data/mmactionVideo/video  输入视频的路径
# 第二个参数:/user-data/mmactionVideo/frames 输出视频的路径
# 第三个参数:1  每秒裁剪多少帧图片

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/WhiffeYF/article/details/121712075
今日推荐