win10下安装mmaction2并运行demo示例

MMaction2

安装

前提,这次安装是在系统win10下CUDA11.1+CUDNN8.0+Pytorch1.8.0下完成的。官方安装手册,大家也可以看这个。

安装依赖包

  • Linux (Windows 系统暂未有官方支持)

  • Python 3.6+

  • PyTorch 1.3+

  • CUDA 9.2+ (如果要从源码对 PyTorch 进行编译, CUDA 9.0 版本同样可以兼容)

  • GCC 5+

  • mmcv 1.1.1+

  • Numpy

  • ffmpeg (4.2 版本最佳)

  • decord (可选项, 0.4.1+):使用 pip install decord==0.4.1 命令安装其 CPU 版本,GPU 版本需从源码进行编译。

  • PyAV (可选项):conda install av -c conda-forge -y。

  • PyTurboJPEG (可选项):pip install PyTurboJPEG。

  • denseflow (可选项):可参考 这里 获取简便安装步骤。

  • moviepy (可选项):pip install moviepy. 官方安装步骤可参考 这里。特别地,如果安装过程碰到 这个问题,可参考:

    1. 对于 Windows 用户, ImageMagick 将不会被 MoviePy 自动检测到,用户需要对 moviepy/config_defaults.py 文件进行修改,以提供 ImageMagick 的二进制文件(即,magick)的路径,如 IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"

    2. 对于 Linux 用户, 如果 ImageMagick 没有被 moviepy 检测到,用于需要对 /etc/ImageMagick-6/policy.xml 文件进行修改,把文件中的 代码行修改为

  • Pillow-SIMD (可选项):可使用如下脚本进行安装:

conda uninstall -y --force pillow pil jpeg libtiff libjpeg-turbo
pip   uninstall -y         pillow pil jpeg libtiff libjpeg-turbo
conda install -yc conda-forge libjpeg-turbo
CFLAGS="${CFLAGS} -mavx2" pip install --upgrade --no-cache-dir --force-reinstall --no-binary :all: --compile pillow-simd
conda install -y jpeg libtiff

准备环境

a.创建并激活conda虚拟环境,如:

conda create -n mmaction2 python=3.8.5 -y
conda activate mmaction2

b.根据pytorch官网进行pytorch和torchvision的安装,如:

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

注意:要确保CUDA的编译版本和CUDA的运行版本相匹配。Previous Pytorch Versions这里每个版本对应的都写得很详细,可以对应的下载。

MMaction2的安装步骤

MMaction2在github上的地址。下载代码,如下图。
win10下安装mmaction2并运行demo示例_第1张图片
a.安装mmcv-full
通用的代码:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

请将链接中的 {cu_version}{torch_version} 根据自身需求替换成实际的版本号,例如想安装和 CUDA 11.1、PyTorch 1.8.0 兼容的最新版 mmcv-full,使用如下替换过的命令:

我使用(cuda11.1和pytorch1.8.0)的代码:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html

win10下安装mmaction2并运行demo示例_第2张图片

b.安装依赖包和mmaction2
在mmaction2文件下使用cmd后,进入虚拟环境。然后运行以下命令:

pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

这边注意 第二句这里e的后面有个这个不能忽略的
win10下安装mmaction2并运行demo示例_第3张图片
win10下安装mmaction2并运行demo示例_第4张图片
c.安装mmdetection以支持时空检测任务
mmdetection安装教程
install MMdetection:
建议使用MIM安装 MMDetection ,它会自动处理 OpenMMLab 项目的依赖关系,包括 mmcv 和其他 python 包。
第一句就是安装openmim的命令。

pip install openmim
mim install mmdet

安装过程中出现的一些报的错解决方案

1.如果这步安装失败或者报错了,可以手动下mmdetection来安装,github-mmdetection
win10下安装mmaction2并运行demo示例_第5张图片
下载代码并解压,然后在文件夹中进入终端并进入虚拟环境。(这边还需要安装好VS)

pip install -r requirements.txt
python setup.py develop

2.如果出现ERROR: No matching distribution found for mmtrack (unavailable)
win10下安装mmaction2并运行demo示例_第6张图片
则一样在github上面搜mmtrack:
win10下安装mmaction2并运行demo示例_第7张图片
下载代码并解压,然后在文件夹中进入终端并进入虚拟环境,安装mmtrack。

pip install -r requirements.txt
python setup.py develop

安装验证

官方给的代码,创建一个py文件然后将这个代码复制进去,然后进入虚拟环境运行。
记得需要在mmaction2代码的路径下运行这个文件,或者就需要改一下config_fileinference_recognizer 里路径的地址
其中 device 中 cuda:0 是调用显卡使用gpu的意思。如果没有显卡 这里则需要改成 cpu

import torch
from mmaction.apis import init_recognizer, inference_recognizer

config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py'
device = 'cuda:0' # 或 'cpu'
device = torch.device(device)

model = init_recognizer(config_file, device=device)
# 进行演示视频的推理
inference_recognizer(model, 'demo/demo.mp4')

安装依赖包

之前的都安装完后,我们运行时会发现还缺少一些包,我们需要另外下载。
win10下安装mmaction2并运行demo示例_第8张图片

只需要在终端输入:

pip install av
pip install imgaug
pip install librosa
pip install lmdb
pip install moviepy
pip install onnx
pip install onnxruntime
pip install pims
pip install PyTurboJPEG
pip install timm
pip install coverage
pip install flake8
pip install interrogate
pip install isort==4.3.21
pip install pytest
pip install pytest-runner
pip install xdoctest==0.10.0
pip install webcolors

demo演示

demo的outline

  • Video demo: A demo script to predict the recognition result using a single video.
  • SpatioTemporal Action Detection Video Demo: A demo script to predict the SpatioTemporal Action Detection result using a single video.
  • Video GradCAM Demo: A demo script to visualize GradCAM results using a single video.
  • Webcam demo: A demo script to implement real-time action recognition from a web camera.
  • Long Video demo: a demo script to predict different labels using a single long video.
  • SpatioTemporal Action Detection Webcam Demo: A demo script to implement real-time spatio-temporal action detection from a web camera.
  • Skeleton-based Action Recognition Demo: A demo script to predict the skeleton-based action recognition result using a single video.
  • Video Structuralize Demo: A demo script to predict the skeleton-based and rgb-based action recognition and spatio-temporal action detection result using a single video.
  • Audio Demo: A demo script to predict the recognition result using a single audio file.

Video demo

win10下安装mmaction2并运行demo示例_第9张图片
在win10上面运行的:

python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth demo/demo.mp4 tools/data/kinetics/label_map_k400.txt

官网给的代码(在ubuntu上面运行):

# The demo.mp4 and label_map_k400.txt are both from Kinetics-400
python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \
    checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \
    demo/demo.mp4 tools/data/kinetics/label_map_k400.txt

这样对比发现,在win10上面运行时,代码为一行,然后每个值的设置不像在ubuntu上运行那般,用 \ 去分割开。在win10上每个设置的值用空格间隔开。
注意:这里configscheckpoints两个文件夹里文件需要提前下好才能使用代码,否则就需要跑带有 url 的代码。 url的代码官网有这边我就不演示了。
在这里插入图片描述

Webcam demo

在win10上面运行的:

python demo/webcam_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth tools/data/kinetics/label_map
_k400.txt --average-size 5 --threshold 0.2 --device cuda:0

win10下安装mmaction2并运行demo示例_第10张图片

SpatioTemporal Action Detection Video Demo

在win10上运行的代码:

python demo/demo_spatiotemporal_det.py --video demo/demo.mp4  --config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py --checkpoint checkpoints/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth --det-config demo/faster_rcnn_r50_fpn_2x_coco.py --det-checkpoint checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth --det-score-thr 0.9 --action-score-thr 0.5 --label-map tools/data/ava/label_map.txt --predict-stepsize 8 --output-stepsize 4 --output-fps 6

win10下安装mmaction2并运行demo示例_第11张图片
效果如图所示:
win10下安装mmaction2并运行demo示例_第12张图片

你可能感兴趣的:(python,opencv,计算机视觉,目标检测,深度学习)