1.配置环境
由于不想租服务器,于是自己配了pytorch,但是在切帧的时候发现总是报错参数错误,于是去租了服务器,发现Linux环境下运行切帧命令不报错
(1)服务器配置如下
(2) 接着安装一些库,这些库都是来自于这个c3d代码里面的installa说明
首先此时环境是
通过ls进去一个文件夹
在这个文件夹下安装这些库
pip install -U openmim
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmpose
下载源代码
git clone https://github.com/open-mmlab/mmaction2.git
cd mmaction2
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without re-installation.
2.下载数据集
(1)下载ucf101数据集,通过FileZilla软件将其传入autodl-tmp下新建的user-data文件夹下
(2)然后在/user-data下创建ucf101文件夹,将UCF-101移入ucf101文件夹中, 将UCF-101改名为videos文件夹。
(3)在/user-data/ucf101/ 文件夹下 创建 annotations 文件夹,然后进入annotations
wget https://www.crcv.ucf.edu/wp-content/uploads/2019/03/UCF101TrainTestSplits-RecognitionTask.zip --no-check-certificate
然后解压
unzip UCF101TrainTestSplits-RecognitionTask.zip
接着把解压后的annotations/ucfTrainTestlist文件夹里面的所有文件
放到annotations下
3.抽取视频帧
(1)首先在进入/autodl-tmp/mmaction2/tools/data下运行这个,可生成视频帧,最后会在/user-data/ucf101/rawframes/下生成视频帧
python build_rawframes.py ../../../user-data/ucf101/videos/ ../../../user-data/ucf101/rawframes/ --task rgb --level 2 --ext avi --use-opencv --new-short 0 --new-width 320 --new-height 240
(2)生成文件列表
A.首先需要修改路径/autodl-tmp/mmaction2/tools/data下generate_rawframes_filelist.sh和generate_videos_filelist.sh这两个文件,改成如下图格式(因为原代码使用的是软链接,但是我建立软链接之后一直有报错,于是换成了实际路径)
再将 autodl-tmp/mmaction2/tools/data下的parse_file_list.py文件的94到96这三行的data/ucf101/annotations/classInd.txt路径中的data都改为user-data
最后将autodl-tmp/mmaction2/tools/data下的文件下的build_file_list.py文件的71行的data也改为user-data即可
B.进入/autodl-tmp/mmaction2/tools/data/ucf101下
输入
bash generate_rawframes_filelist.sh
bash generate_videos_filelist.sh
最后可生成文件列表
4.训练
1. 将软链接的路径进行修改,改为实际路径
将mmaction2/configs/recognition/c3d/c3d_sports1m-pretrained_8xb30-16x1x1-45e_ucf101-rgb.py里面的data换成../user-data即可
dataset_type = 'VideoDataset'
data_root = '../user-data/ucf101/videos'
data_root_val = '../user-data/ucf101/videos'
split = 1 # official train/test splits. valid numbers: 1, 2, 3
ann_file_train = f'../user-data/ucf101/ucf101_train_split_{split}_videos.txt'
ann_file_val = f'../user-data/ucf101/ucf101_val_split_{split}_videos.txt'
ann_file_test = f'../user-data/ucf101/ucf101_val_split_{split}_videos.txt'
2. 在autodl-tmp/mmaction2下使用此命令即可
python tools/train.py configs/recognition/c3d/c3d_sports1m-pretrained_8xb30-16x1x1-45e_ucf101-rgb.py
主要参考第一个博客,中间因为软链接的路径问题,于是修改了一些代码中的路径,加上01【C3D 行为识别】项目下载 环境配置 数据集转化视频帧 UCF101数据集处理_ucf101数据集下载_CV-杨帆的博客-CSDN博客Installation — MMAction2 1.1.0 documentation