MMDetection——1.安装(中文官方文档一)

MMDetection——1.开始使用(翻译版)

内容基本上都是自己理解并翻译过来的,原文有些小前提没讲,我在自己安装的时候出现了一些小问题,这里加上了一点点补充。供大家参考!

先决条件

  • Linux or macOS (Windows 正在实验测试支持中)
  • Python 3.6+
  • PyTorch 1.3+
  • CUDA 9.2+ (如果 PyTorch 是从源代码安装的, CUDA 9.0 也兼容)
  • GCC 5+
  • MMCV

兼容的MMDetection和MMCV版本如下。请正确安装版本的MMCV,以避免安装问题。

MMDetection version MMCV version
master mmcv-full>=1.2.4, <1.4.0
2.11.0 mmcv-full>=1.2.4, <1.4.0
2.10.0 mmcv-full>=1.2.4, <1.4.0
2.9.0 mmcv-full>=1.2.4, <1.4.0
2.8.0 mmcv-full>=1.2.4, <1.4.0
2.7.0 mmcv-full>=1.1.5, <1.4.0
2.6.0 mmcv-full>=1.1.5, <1.4.0
2.5.0 mmcv-full>=1.1.5, <1.4.0
2.4.0 mmcv-full>=1.1.1, <1.4.0
2.3.0 mmcv-full==1.0.5
2.3.0rc0 mmcv-full>=1.0.2
2.2.1 mmcv==0.6.2
2.2.0 mmcv==0.6.2
2.1.0 mmcv>=0.5.9, <=0.6.1
2.0.0 mmcv>=0.5.1, <=0.5.8

注意:如果已安装mmcv,则需要首先运行 pip uninstall mmcv 。 如果同时安装了mmcv和mmcv-full,将出现ModuleNotFoundError

安装

  1. 你可以使用以下命令简单地安装mmdetection: pip install mmdet

  2. 创建一个conda虚拟环境并激活它.

    conda create -n open-mmlab python=3.7 -y
    conda activate open-mmlab
    
  3. 按照 official instructions安装PyTorch和Torchvision,例如,

    conda install pytorch torchvision -c pytorch
    

    注意:确保您的编译CUDA版本和运行时CUDA版本匹配。 您可以在 PyTorch website上检查支持的CUDA版本以获取预编译的软件包。

    例1: 如果您在 /usr/local/cuda 下安装了CUDA10.1,并且想安装PyTorch 1.5, 则需要使用CUDA10.1安装预构建的PyTorch.

    conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
    

    例2: 如果您在 /usr/local/cuda 下安装了CUDA9.2,并且想安装PyTorch 1.3.1, 则需要使用CUDA9.2安装预构建的PyTorch.

    conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch
    

    如果您从源代码构建PyTorch而不是安装预构建的pacakge,则可以使用更多的CUDA版本,例如9.0。

  4. 安装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和PyTorch 1.7.0中安装最新的mmcv-full,请使用以下命令:

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

    请参阅 here 以了解与不同PyTorch和CUDA版本兼容的MMCV的不同版本。 **(可选)**您可以选择通过以下命令从源代码编译mmcv

    git clone https://github.com/open-mmlab/mmcv.git
    cd mmcv
    MMCV_WITH_OPS=1 pip install -e .  # package mmcv-full will be installed after this step
    cd ..
    

    或直接运行

    pip install mmcv-full
    
  5. 克隆MMDetection存储库。

    git clone https://github.com/open-mmlab/mmdetection.git
    cd mmdetection
    
  6. 安装生成要求,然后安装MMDetection。

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

注意:

a. 按照上述说明,MMDetection将以 dev 模式安装 , 对代码进行的任何本地修改都将生效,而无需重新安装。

b. 如果要使用 opencv-python-headless 而不是 opencv -python, 你可以在安装 MMCV之前先安装它。

c. 一些依赖关系是可选的。 只需运行 pip install -v -e . 只会安装最低的运行时要求。 要使用可选的依赖项(例如,albumentationsimagecorruptions),要么使用pip install -r requirements/optional.txt 手动安装它们,要么在调用 pip 时指定所需的附加项(例如 pip install -v -e .[optional])。 extras字段的有效关键字是:all, tests, build, and optional.

仅使用CPU安装

可以为仅CPU环境(CUDA不可用)构建代码。

例如,在CPU模式下,您可以运行 demo/webcam_demo.py . 但是,某些功能在此模式下消失了:

  • Deformable Convolution可变性卷积
  • Modulated Deformable Convolution调制变形卷积
  • ROI pooling ROI池化
  • Deformable ROI pooling可变性的ROI池化
  • CARAFE: Content-Aware ReAssembly of FEatures
  • SyncBatchNorm
  • CrissCrossAttention: Criss-Cross Attention
  • MaskedConv2d
  • Temporal Interlace Shift
  • nms_cuda
  • sigmoid_focal_loss_cuda
  • bbox_overlaps

因此,如果您尝试使用包含上述操作的模型进行推理,则会收到报错信息。下表列出了由于依赖这些运算符而无法推断CPU的相关方法。

Operator Model
Deformable Convolution/Modulated Deformable Convolution DCN、Guided Anchoring、RepPoints、CentripetalNet、VFNet、CascadeRPN、NAS-FCOS、DetectoRS
MaskedConv2d Guided Anchoring
CARAFE CARAFE
SyncBatchNorm ResNeSt

注意: MMDetection 目前不支持使用CPU进行训练.

另一个选择: Docker Image

我们提供了一个 Dockerfile 来构建映像. 确保您使用的是 docker version >=19.03.

# build an image with PyTorch 1.6, CUDA 10.1
docker build -t mmdetection docker/

运行它

docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmdetection/data mmdetection

从零开始的安装脚本

假设您已经安装了CUDA10.1,下面是使用conda设置MMDetection的完整脚本。

conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch -y

# install the latest mmcv
pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html

# install mmdetection
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e .

使用多个MMDetection版本进行开发

训练脚本和测试脚本已经修改了 PYTHONPATH ,以确保脚本使用当前目录中的MMDetection。

要使用安装在环境中而不是您正在使用的默认MMDetection,可以在这些脚本中删除以下行

PYTHONPATH="$(dirname $0)/..":$PYTHONPATH

确认

为了验证是否正确安装了MMDetection和所需的环境,我们可以运行示例Python代码来初始化检测器并推断出演示图像:

注意:原文中的前提是自己创建了checkpoints文件夹并下载了权重文件,我在下面的注释中说到了。

from mmdet.apis import init_detector, inference_detector

config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# 在mmdetection下创建一个名为checkpoints的文件夹,并从模型库(model zoo)下载权重并放入`checkpoints/`中
# 本demo权重下载地址: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image
inference_detector(model, 'demo/demo.jpg')

上面的代码应该在您完成安装后成功运行。

你可能感兴趣的:(python,计算机视觉)