0 前言
去年写了一篇博客:【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测
facebookresearch SlowFast :https://github.com/facebookresearch/SlowFast
但是没有整理出快速安装的流程,这次就是把所有的安装指令整理处理,实现快速安装 facebookresearch SlowFast,如果不受国内网速限制,1分钟左右就可以安装好。
1 准备
我采用的AI平台:https://cloud.videojj.com/auth/register?inviter=18452&activityChannel=student_invite
AI平台镜像选择:pytorch 1.8.0,python 3.8,CUDA:11.1.1
为了能够每次都能快速安装 facebookresearch SlowFast,需要提前下好两个权重,一个是slowfast的权重,一个是faster rcnn的权重。
需要先将这两个权重下载到AI平台的:/user-data/slowfastFile
model_final_280758.pkl:https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
SLOWFAST_32x2_R101_50_50.pkl:https://dl.fbaipublicfiles.com/pyslowfast/model_zoo/ava/SLOWFAST_32x2_R101_50_50.pkl
mkdir -p /user-data/slowfastFile
cd /user-data/slowfastFile
wget https://dl.fbaipublicfiles.com/pyslowfast/model_zoo/ava/SLOWFAST_32x2_R101_50_50.pkl
wget https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
2 开始安装
pip install 'git+https://gitee.com/YFwinston/fvcore'
pip install simplejson
conda install av -c conda-forge -y
conda install x264 ffmpeg -c conda-forge -y
pip install -U iopath or conda install -c iopath iopath
pip install psutil
pip install tensorboard
pip install moviepy
pip install pytorchvideo
pip install 'git+https://gitee.com/YFwinston/fairscale'
cd /home
pip install cython; pip install git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI
git clone https://gitee.com/YFwinston/detectron2 detectron2_repo
cd detectron2_repo
python setup.py build develop
cd ..
pip install -e detectron2_repo
apt update
apt install libgl1-mesa-glx
cd /home
git clone https://gitee.com/YFwinston/slowfast.git
export PYTHONPATH=/home/slowfast:$PYTHONPATH
cd slowfast
python setup.py build develop
cd /home/slowfast/demo/AVA
touch ava.json
touch SLOWFAST_32x2_R101_50_50s.yaml
cp /user-data/slowfastFile/SLOWFAST_32x2_R101_50_50.pkl /home/slowfast/configs/AVA/c2/
cp /user-data/slowfastFile/model_final_280758.pkl /home/slowfast/configs/AVA/c2/
然后在/home/slowfast/demo/AVA下面的ava.json写入:
{"bend/bow (at the waist)":0,"crawl":1,"crouch/kneel":2,"dance":3,"fall down":4,"get up":5,"jump/leap":6,"lie/sleep":7,"martial art":8,"run/jog":9,"sit":10,"stand":11,"swim":12,"walk":13,"answer phone":14,"brush teeth":15,"carry/hold (an object)":16,"catch (an object)":17,"chop":18,"climb (e.g., a mountain)":19,"clink glass":20,"close (e.g., a door, a box)":21,"cook":22,"cut":23,"dig":24,"dress/put on clothing":25,"drink":26,"drive (e.g., a car, a truck)":27,"eat":28,"enter":29,"exit":30,"extract":31,"fishing":32,"hit (an object)":33,"kick (an object)":34,"lift/pick up":35,"listen (e.g., to music)":36,"open (e.g., a window, a car door)":37,"paint":38,"play board game":39,"play musical instrument":40,"play with pets":41,"point to (an object)":42,"press":43,"pull (an object)":44,"push (an object)":45,"put down":46,"read":47,"ride (e.g., a bike, a car, a horse)":48,"row boat":49,"sail boat":50,"shoot":51,"shovel":52,"smoke":53,"stir":54,"take a photo":55,"text on/look at a cellphone":56,"throw":57,"touch (an object)":58,"turn (e.g., a screwdriver)":59,"watch (e.g., TV)":60,"work on a computer":61,"write":62,"fight/hit (a person)":63,"give/serve (an object) to (a person)":64,"grab (a person)":65,"hand clap":66,"hand shake":67,"hand wave":68,"hug (a person)":69,"kick (a person)":70,"kiss (a person)":71,"lift (a person)":72,"listen to (a person)":73,"play with kids":74,"push (another person)":75,"sing to (e.g., self, a person, a group)":76,"take (an object) from (a person)":77,"talk to (e.g., self, a person, a group)":78,"watch (a person)":79}
然后在/home/slowfast/demo/AVA下面的SLOWFAST_32x2_R101_50_50s.yaml 写入:
TRAIN:
ENABLE:False
DATASET: ava
BATCH_SIZE:16
EVAL_PERIOD:1
CHECKPOINT_PERIOD:1
AUTO_RESUME:True
CHECKPOINT_FILE_PATH:'/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl'#path to pretrain model
CHECKPOINT_TYPE: pytorch
DATA:
NUM_FRAMES:32
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:80
ARCH: slowfast
MODEL_NAME: SlowFast
LOSS_FUNC: bce
DROPOUT_RATE:0.5
HEAD_ACT: sigmoid
TEST:
ENABLE:False
DATASET: ava
BATCH_SIZE:8
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:"/home/slowfast/demo/AVA/ava.json"
INPUT_VIDEO:"/home/slowfast/demo/1.mp4"
OUTPUT_FILE:"/home/slowfast/demo/out.mp4"
DETECTRON2_CFG:"COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"
DETECTRON2_WEIGHTS:"/home/slowfast/configs/AVA/c2/model_final_280758.pkl"
3 测试
在/home/slowfast/demo/中传入一个视频:1.mp4
执行:
cd /home/slowfast/
python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50s.yaml
最后结果:
版权归原作者 CV-杨帆 所有, 如有侵权,请联系我们删除。