男妈妈级教学—Detectron2_SlowFast在Kinetics400数据集上的推理
本文目录
- 1. 选择部署的平台:极链云AI
- 2. 论文简介
- 3. Detectron2的部署
- 3.1 机器配置
- 3.2 安装过程的代码
- 4. 进行推理
- 4.1 模型准备
- 4.2 Kinetics.json文件的制作传输
- 4.3 SLOWFAST_8x8_R50.yaml文件的更改
- 4.4 准备mp4格式的素材视频
- 4.5 执行推理
- 5. 运行结果
1. 选择部署的平台:极链云AI
优势特点:价格优惠,按小时计费;服务器类型多样,选择多;暑期学生优惠较多,冲冲冲!!!
在这里贴一个极链云AI的官网:https://cloud.videojj.com
2. 论文简介
Github官网:点这里!
论文pdf:论文点这里!
Kinetics数据集:数据集点这里!
官网给出的大致运行效果:
tips:仅支持单人在画面中的识别

3. Detectron2的部署
3.1 机器配置
项目环境所需机器环境:Pytorch 1.6.0, Python 3.7, CUDA 10.2
tips:先选择低版本的,进环境后由于Detectron2需要pytorch>=1.7,在极链云中的机器没有完美适配版本的环境,因此需要在进入python3.7的环境后,再升级pytorch版本至1.7。
3.2 安装过程的代码
进入root目录后在终端进行配置
pip install 'git+https://github.com/facebookresearch/fvcore'
pip install simplejson
conda install av -c conda-forge
y
pip install -U iopath
pip install psutil
pip install moviepy
pip install tensorboard
pip install pytorchvideo
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
git clone https://github.com/facebookresearch/detectron2.git
pip install -e detectron2
git clone https://github.com/facebookresearch/SlowFast.git
cd SlowFast
python setup.py build develop
在安装结束后,会有如下错误(正常现象):
error: Could not find suitable distribution for Requirement.parse(‘PIL’)
以防万一输入以下命令查看是否含有pillow库。
pip list

解释:大致是因为库名称不同PIL与pillow可以看成相同。
4. 进行推理
官方教程:https://github.com/facebookresearch/SlowFast/blob/master/GETTING_STARTED.md
4.1 模型准备
首先需要准备.pkl预训练模型,官方下载地址:Model_ZOO.md
注意选择!!!!

在本地下载后,通过Filezilla传输到/root/SlowFast文件夹下
使用filezilla传输到极链AI云平台的方法:点这里!
4.2 Kinetics.json文件的制作传输
json文件地址:点这里跳转!
放入项目的地址:/root/SlowFast/demo/Kinetics
方法一:利用jupyter lab的可视化界面进行文件创建
方法二:在本地文件创建后用filezilla将文件传输
4.3 SLOWFAST_8x8_R50.yaml文件的更改
在/root/SlowFast/demo/Kinetics文件夹中有SLOWFAST_8x8_R50.yaml文件
需要更改的地方我用注释标注
TRAIN:ENABLE: FalseDATASET: kineticsBATCH_SIZE: 64EVAL_PERIOD: 10CHECKPOINT_PERIOD: 1AUTO_RESUME: TrueCHECKPOINT_FILE_PATH: "/root/SlowFast/SLOWFAST_8x8_R50.pkl" # 更改为pkl模型文件的路径CHECKPOINT_TYPE: caffe2
DATA:NUM_FRAMES: 32SAMPLING_RATE: 2TRAIN_JITTER_SCALES: [256, 320]TRAIN_CROP_SIZE: 224TEST_CROP_SIZE: 256INPUT_CHANNEL_NUM: [3, 3]
SLOWFAST:ALPHA: 4BETA_INV: 8FUSION_CONV_CHANNEL_RATIO: 2FUSION_KERNEL_SZ: 7
RESNET:ZERO_INIT_FINAL_BN: TrueWIDTH_PER_GROUP: 64NUM_GROUPS: 1DEPTH: 50TRANS_FUNC: bottleneck_transformSTRIDE_1X1: FalseNUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [2, 2]]SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [1, 1]]
NONLOCAL:LOCATION: [[[], []], [[], []], [[], []], [[], []]]GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]INSTANTIATION: dot_product
BN:USE_PRECISE_STATS: TrueNUM_BATCHES_PRECISE: 200
SOLVER:BASE_LR: 0.1LR_POLICY: cosineMAX_EPOCH: 196MOMENTUM: 0.9WEIGHT_DECAY: 1e-4WARMUP_EPOCHS: 34.0 # 这里有个坑,34改成34.0不然参数值类型不同,会报错WARMUP_START_LR: 0.01OPTIMIZING_METHOD: sgd
MODEL:NUM_CLASSES: 400ARCH: slowfastLOSS_FUNC: cross_entropyDROPOUT_RATE: 0.5
TEST:ENABLE: FalseDATASET: kineticsBATCH_SIZE: 64
DATA_LOADER:NUM_WORKERS: 8PIN_MEMORY: True
DEMO:ENABLE: TrueLABEL_FILE_PATH: "/root/SlowFast/demo/Kinetics/kinetics.json" # Add local label file path here.INPUT_VIDEO: "/root/SlowFast/input/1.mp4" # 添加INPUT_VIDEO路径,文件夹可以自己创造,以input文件夹为例OUTPUT_FILE: "/root/SlowFast/output/1.mp4" # 添加OUTPUT_FILE路径,文件夹可以自己创造,以output文件夹为例# DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"# DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl# WEBCAM: 0
NUM_GPUS: 1
NUM_SHARDS: 1
RNG_SEED: 0
OUTPUT_DIR: .
4.4 准备mp4格式的素材视频
传入上一步创建的INPUT_VIDEO路径的文件夹,以1.mp4为例,传入后即可。
4.5 执行推理
cd到SlowFast文件夹下执行
python tools/run_net.py --cfg demo/Kinetics/SLOWFAST_8x8_R50.yaml
5. 运行结果


可以看到基于Kinetics的训练在多人环境中是比较困难的,对于单人动作的识别较为准确。快来学习学习!!!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
