【slowfast中ava数据集处理】ava数据集,将原视频裁剪为15分钟每段
下载完成ava的训练集后,下一步要做的就是把训练集切割为每个视频15分钟。
切割之前,要在windows下安装ffmpeg,git等东西,完成如下的操作
ffmpeg和git安装
Windows安装配置ffmpeg过程:
ffmpeg下载链接(最好使用迅雷下载)
windows下安装git(linux,macos都可以在官网下载): Downloading Git(最好使用迅雷下载,github最近不稳定)
git的安装过程
Windows 系统下.sh文件的运行
ffmpeg裁剪视频测试
先拿一个ava视频拿来裁剪看看
如下图:
编写1.sh这个脚本,这个脚本内容很简单:
ffmpeg -ss 900 -t 901 -i "./_145Aa_xkuE.mp4" "./1.mp4"
接下来运行1.sh
在1.sh所在的位置单击鼠标右键,选择:Git Bash Here
输入命令:sh 1.sh
使用cpu跑速度非常慢,可以看看cpu和GPU的消耗,cpu几乎满负荷,但是GPU基本没动。
使用ffmpeg剪辑训练视频
训练视频非常多,有299个,我的而电脑从上午8点半跑到晚上10点左右,剪辑了223个视频。
下面是剪辑视频的代码:
# videos文件里放的是原视频
# videos_15min文件里放的是剪辑的视频
IN_DATA_DIR="./videos"
OUT_DATA_DIR="./videos_15min"
# 剪辑处理代码
for video in $(ls -A1 -U ${IN_DATA_DIR}/*)
do
out_name="${OUT_DATA_DIR}/${video##*/}"
if [ ! -f "${out_name}" ]; then
ffmpeg -ss 900 -t 901 -i "${video}" "${out_name}"
fi
done
将这个代码保存为1.sh
然后单击鼠标右键选择Git Bash Here,在命令行输入:sh 1.sh
意外处理
这么多的视频。如果中途出现问题,就像我,剪辑到223个的时候,电脑就不小心关机了,总不能又花13个小时重新剪辑吧。
我们要做的就是,通过python把未处理的视频找出来,然后再次处理。
代码如下:
import os
import shutil
# 读出 videos_15min 文件里视频的名字
videos_15min = r'./videos_15min'
file1_list = os.listdir(videos_15min)
# 将 videos_15min 文件里视频名字保存到 数组 test_list 里
test_list = []
for file in file1_list:
test_list.append(file)
# 读出 videos 文件里视频的名字
videos = r'./videos'
file2_list = os.listdir(videos)
# videos2_path 里保存未被处理的视频
videos2_path = r'./videos2'
# a用来计数已经处理的视频个数
# b用来计数未被处理的视频个数
a=0
b=0
# 找出 videos_15min 和 videos不同的文件(即未被处理的文件),然后在videos2里保存未被处理的
for i in file2_list:
if i in test_list:
b=b+1
else:
new_name = videos2_path + '\\' + i
a=a+1
shutil.copyfile(os.path.join(videos,i), new_name)
最后把未被处理的视频剪辑为15分钟,那么ava数据集裁剪过程就完成
这里会长出一朵花-: 可以删不能增加好像是
LinKouunPhd: 对,根据自己配置文件来选择位置,可以自己配置
不学习太蕉绿了!: 谢谢up!!已解决!!
码海泛舟采莲子: 请问大佬这个有无单独的训练代码,谢谢!
不学习太蕉绿了!: 厉害厉害请问你刚开始下载的权重下到哪里去?是根目录下的slowfast文件夹吗?文章中说的slowfastFile我并没有看到啊。。。是要自己创建吗?