赞
踩
当我们准备好训练集和配置文件后就可以着手训练的事情了。首先安装好slowfast环境,然后打开源码,slowfast/configs/AVA/SLOWFAST_32x2_R50_SHORT.yaml作如下配置
- TRAIN:
- ENABLE: True
- DATASET: ava
- BATCH_SIZE: 4
- EVAL_PERIOD: 5
- CHECKPOINT_PERIOD: 1
- AUTO_RESUME: True
- # CHECKPOINT_FILE_PATH: /home/fut/Downloads/slowfast/pre-model/SLOWFAST_32x2_R101_50_50.pkl
- CHECKPOINT_TYPE: caffe2
- DATA:
- NUM_FRAMES: 32
- SAMPLING_RATE: 2
- TRAIN_JITTER_SCALES: [256, 320]
- TRAIN_CROP_SIZE: 224
- TEST_CROP_SIZE: 224
- INPUT_CHANNEL_NUM: [3, 3]
- PATH_TO_DATA_DIR: './myava'
- DETECTION:
- ENABLE: True
- ALIGNED: True
- AVA:
- FRAME_DIR: 'myava/frame'
- FRAME_LIST_DIR: 'myava/frame_lists'
- ANNOTATION_DIR: 'myava/annotations'
- DETECTION_SCORE_THRESH: 0.8
- TRAIN_PREDICT_BOX_LISTS: [
- "ava_train_v2.2.csv",
- "person_box_67091280_iou90/ava_detection_train_boxes_and_labels_include_negative_v2.2.csv",
- ]
- TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
- SLOWFAST:
- ALPHA: 4
- BETA_INV: 8
- FUSION_CONV_CHANNEL_RATIO: 2
- FUSION_KERNEL_SZ: 7
- RESNET:
- ZERO_INIT_FINAL_BN: True
- WIDTH_PER_GROUP: 64
- NUM_GROUPS: 1
- DEPTH: 50
- TRANS_FUNC: bottleneck_transform
- STRIDE_1X1: False
- NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
- SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
- SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
- NONLOCAL:
- LOCATION: [[[], []], [[], []], [[], []], [[], []]]
- GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
- INSTANTIATION: dot_product
- POOL: [[[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]]]
- BN:
- USE_PRECISE_STATS: False
- NUM_BATCHES_PRECISE: 200
- SOLVER:
- BASE_LR: 0.1
- LR_POLICY: steps_with_relative_lrs
- STEPS: [0, 10, 15, 20]
- LRS: [1, 0.1, 0.01, 0.001]
- MAX_EPOCH: 300
- MOMENTUM: 0.9
- WEIGHT_DECAY: 1e-7
- WARMUP_EPOCHS: 5.0
- WARMUP_START_LR: 0.000125
- OPTIMIZING_METHOD: sgd
- MODEL:
- NUM_CLASSES: 2
- ARCH: slowfast
- MODEL_NAME: SlowFast
- LOSS_FUNC: bce
- DROPOUT_RATE: 0.5
- HEAD_ACT: sigmoid
- TEST:
- ENABLE: True
- DATASET: ava
- BATCH_SIZE: 8
- DATA_LOADER:
- NUM_WORKERS: 2
- PIN_MEMORY: True
- NUM_GPUS: 4
- NUM_SHARDS: 1
- RNG_SEED: 0
- OUTPUT_DIR: .
1 TRAIN:CHECKPOINT_FILE_PATH 就是我们下载的与训练模型的位置
2 DATA:PATH_TO_DATA_DIR 就是我们第二部分制作的数据集文件
3 AVA: 下面的路径也是对应第二部分数据集文件对应的地方
4 MODEL:NUM_CLASSES: 1 这里是最需要主义的,这里classes必需为2,因为我们有fight和person 2个分类。
开始训练:
python tools/run_net.py --cfg configs/AVA/SLOWFAST_32x2_R50_SHORT5.yaml
训练出来的模型文件在chekpoints文件里面,我截图看看
惊喜不?是pyth格式文件,后面我们开始测试模型效果
首先 新建slowfast/demo/AVA/SLOWFAST_32x2_R50_SHORT.yaml文件,写下面代码
- TRAIN:
- ENABLE: False
- DATASET: ava
- BATCH_SIZE: 1
- EVAL_PERIOD: 1
- CHECKPOINT_PERIOD: 1
- AUTO_RESUME: True
- CHECKPOINT_FILE_PATH: 'checkpoints/checkpoint_epoch_00140.pyth' #path to pretrain model
- CHECKPOINT_TYPE: pytorch
- DATA:
- NUM_FRAMES: 16
- SAMPLING_RATE: 2
- TRAIN_JITTER_SCALES: [256, 320]
- TRAIN_CROP_SIZE: 224
- TEST_CROP_SIZE: 256
- INPUT_CHANNEL_NUM: [3, 3]
- DETECTION:
- ENABLE: True
- ALIGNED: False
- AVA:
- BGR: False
- DETECTION_SCORE_THRESH: 0.8
- TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
- SLOWFAST:
- ALPHA: 4
- BETA_INV: 8
- FUSION_CONV_CHANNEL_RATIO: 2
- FUSION_KERNEL_SZ: 5
- RESNET:
- ZERO_INIT_FINAL_BN: True
- WIDTH_PER_GROUP: 64
- NUM_GROUPS: 1
- DEPTH: 101
- TRANS_FUNC: bottleneck_transform
- STRIDE_1X1: False
- NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
- SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
- SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
- NONLOCAL:
- LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]]
- GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
- INSTANTIATION: dot_product
- POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]
- BN:
- USE_PRECISE_STATS: False
- NUM_BATCHES_PRECISE: 200
- SOLVER:
- MOMENTUM: 0.9
- WEIGHT_DECAY: 1e-7
- OPTIMIZING_METHOD: sgd
- MODEL:
- NUM_CLASSES: 2
- ARCH: slowfast
- MODEL_NAME: SlowFast
- LOSS_FUNC: bce
- DROPOUT_RATE: 0.5
- HEAD_ACT: sigmoid
- TEST:
- ENABLE: False
- DATASET: ava
- BATCH_SIZE: 1
- DATA_LOADER:
- NUM_WORKERS: 2
- PIN_MEMORY: True
-
- NUM_GPUS: 1
- NUM_SHARDS: 1
- RNG_SEED: 0
- OUTPUT_DIR: .
- #TENSORBOARD:
- # MODEL_VIS:
- # TOPK: 2
- DEMO:
- ENABLE: True
- LABEL_FILE_PATH: "myava/annotations/myava.json"
- INPUT_VIDEO: "myava/videos/fight1.mp4"
- OUTPUT_FILE: "myava/fight1_out.mp4"
- 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
由于我的显存6GB老是out of memory于是设置NUM_FRAMES为16,如果你显存够可以设置32,这个是默认值。
测试开始:
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R50_SHORT.yaml
稍等一会结果就出来了。最终效果还可以。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。