Ubuntu20.04LTS从零开始配置运行SlowFast

Ubuntu20.04LTS从零开始配置SlowFast环境

注意:除个别包外尽量使用anaconda安装,方便以后备份和恢复环境

1. 安装Anaconda并换源(按需)

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

2. 安装CUDA11.0

3. 安装cudnn8

4. 新建虚拟环境

conda create -n slowfast python=3.8

5. 安装git

conda install git

6. 安装pytorch

conda install pytorch torchvision torchaudio cudatoolkit=11.0

如果中途断了或者失败,重新运行指令。成功的标志是出现这几行
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
安装好后进入python,import torch看看是否报错,报错可以卸载用pip重装

7. 安装OpenCV

用conda安装opencv会有各种小毛病比如说无法调用,或者python版本不支持。
所以用pip安装好一点。

pip3 install opencv-python

自动安装最新版本的opencv
安装完成后进入python检查是否可以调用

$python3
>>>import cv2
>>>print(cv2.__version__)
4.4.0

8. 安装simplejson

conda install simplejson

9. 安装fvcore

按照作者团队说的安装完这个会自动安装ffmepg,PyYaml等包,但是我这边并没有安装,还需要按下面写的手动安装一下。

pip install 'git+https://github.com/facebookresearch/fvcore'

10. 安装PyAV

conda install av -c conda-forge

11. 安装PyYaml

conda install pyyaml

12. 安装tqdm

conda install tqdm

13. 安装tensorboard和moviepy(选装)

如果暂时不想调试可以先不装

pip install tensorboard
conda install -c conda-forge moviepy

14. 安装psutil(注)

如果之前的包装的没问题这个应该已经是装好的了,以防万一还是运行一下这个指令吧。

pip install psutil

15. 安装detectron2

  1. 安装ninja,缺少可能会在安装detectron2时报错
conda install ninja
  1. 安装detectron2
方法1
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
方法2

git clone https://github.com/facebookresearch/detectron2.git
下载到本地后进入~
输入指令
python -m pip install -e detectron2

方法3

进入detectron2找到你配置对应的预安装指令,直接运行即可

报错处理

1.报错 Command '['ninja', '-v']' returned non-zero exit status 1.
. 解决办法:修改torch包里的cpp_extention.py的1479行

#command = ['ninja', '-v'] (line1479)
command = ['ninja', '--version']
  1. 报错error: command ':/usr/local/cuda-11.0/bin/nvcc' failed with exit status 1
    解决方法:修改cuda路径为以下形式
gedit ~/.bashrc
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda=11.0
# 将上面的语句修改成:
export CUDA_HOME=/usr/local/cuda=11.0
source ~/.bashrc
  1. 一些依赖项报错
    conda uninstall卸载报错的依赖项改用pip安装。

16. 测试detectron2

测试video

python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input--video input/video/video_0002.mp4  --opts MODEL.WEIGHTS ../models/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/model_final_f10217.pkl

报了个警告124:UserWarning: This overload of nonzero is deprecated:
解决办法
修改your-path/detectron2/detectron2/modeling/roi_heads/fast_rcnn.py文件的124行。

filter_inds = filter_mask.nonzero()
#将124行修改为
filter_inds=torch.nonzero(filter_mask, as_tuple=False)

我习惯性的把输出格式改成MPEG-4
修改demo.py的
138行.mkv---->.mp4和
147行改为fourcc=cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),

再运行一遍:
输入视频:

600x400 fps=10
输出视频:

在这里插入图片描述

17. 安装SlowFast

git clone https://github.com/facebookresearch/slowfast

将Slowfast加入python环境

gedit ~/.bashrc
#在结尾加入
export PYTHONPATH=$PYTHONPATH:/home/你的路径/slowfast/slowfast
#保存关闭
source ~/.bashrc

进入slowfast根目录(注意大小写,原来的是SlowFast,我改成slowfast了)后安装。

cd slowfast
python setup.py build develop

成功的标志:
出现Finished processing dependencies for slowfast==1.0

18. 运行Demo

ava.json下载
简单修改一下配置文件

TRAIN:
  ENABLE: False
  DATASET: ava
  BATCH_SIZE: 64
  EVAL_PERIOD: 5
  CHECKPOINT_PERIOD: 1
  AUTO_RESUME: True
  CHECKPOINT_FILE_PATH: /home/abali/slowfast/pre_model/AVA/SLOWFAST_32x2_R101_50_50_v2.1.pkl 
  #path to the pretrain checkpoint file.
  CHECKPOINT_TYPE: caffe2
DATA:
  NUM_FRAMES: 4
  SAMPLING_RATE: 16
  TRAIN_JITTER_SCALES: [256, 320]
  TRAIN_CROP_SIZE: 224
  TEST_CROP_SIZE: 256
  INPUT_CHANNEL_NUM: [3]
DETECTION:
  ENABLE: True
  ALIGNED: False
AVA:
  DETECTION_SCORE_THRESH: 0.9
  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"]
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], [4], [6], [3]]
  SPATIAL_DILATIONS: [[1], [1], [1], [2]]
  SPATIAL_STRIDES: [[1], [2], [2], [1]]
NONLOCAL:
  LOCATION: [[[]], [[]], [[]], [[]]]
  GROUP: [[1], [1], [1], [1]]
  INSTANTIATION: softmax
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: 20
  MOMENTUM: 0.9
  WEIGHT_DECAY: 1e-7
  WARMUP_EPOCHS: 5.0
  WARMUP_START_LR: 0.000125
  OPTIMIZING_METHOD: sgd
MODEL:
  NUM_CLASSES: 80
  ARCH: slow
  MODEL_NAME: ResNet
  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: .
DEMO:
  ENABLE: True
  LABEL_FILE_PATH:  "./demo/AVA/ava.json" # Add local label file path here.
  INPUT_VIDEO:  "./data/input/0002.mp4"
  OUTPUT_FILE:  "./data/output/0002.mp4"
  WEBCAM: -2
  DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"
  DETECTRON2_WEIGHTS: "/home/abali/detectron2/models/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/model_final_f10217.pkl"

然后运行

python tools/run_net.py  --cfg configs/conv/AVA/SLOW_8x8_R50_SHORT.yaml

输出结果:

demo_net.py: 119: Finish demo in: 31.476146697998047

在这里插入图片描述

2020/11/15 19:50:44

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值