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格式
08【mmaction2 行为识别商用级别】自定义ava数据集 之 将视频裁剪为帧
前言
自定义ava数据集是一个较大的部分,我会分为多节来写,这次先写第一步,就是将视频裁剪为帧,但是有些规则必须遵守,不然在训练就会出问题。
一,准备好视频
将视频存放在一个文件夹(video)中,然后对视频进行有规律的取名(自定义)
二,裁剪视频代码
下面的代码位于(老版 新版的github项目我都做了上传,都是一样的): 老版 https://github.com/Whiffe/YF-OpenLib-mmaction2/blob/main/demo/video2frames.sh 新版 https://github.com/Whiffe/mmaction2_YF/tree/main/demo
IN_DATA_DIR=$1
OUT_DATA_DIR=$2
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" 代表视频帧的命名格式
三,执行代码与结果
将视频裁剪为视频帧:
bash ./demo/video2frames.sh /user-data/mmactionVideo/video /user-data/mmactionVideo/frames 1
# 第一个参数:/user-data/mmactionVideo/video 输入视频的路径
# 第二个参数:/user-data/mmactionVideo/frames 输出视频的路径
# 第三个参数:1 每秒裁剪多少帧图片
|