在本节中,我们将演示如何使用PyTorch准备环境。
MMRotate 能够在 Linux 和 Windows 上运行。它依赖于 Python 3.7+, CUDA 9.2+ 和 PyTorch 1.6+。
如果您对 PyTorch 有经验并且已经安装了它,只需跳过此部分并跳到 [下一节](#安装) 。否则,您可以按照以下步骤进行准备。
第0步: 从 官网 下载并安装 Miniconda。
第1步: 创建一个 conda 环境并激活它.
conda create --name openmmlab python=3.8 -y
conda activate openmmlab
第2步: 根据 官方说明 安装 PyTorch, 例如:
conda install pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=10.2 -c pytorch
我们建议用户按照我们的最佳实践安装 MMRotate。然而,整个过程是高度可定制的。有关详细信息,请参阅 自定义安装 部分。
第0步: 使用 MIM 安装 MMCV 和 MMDetection
pip install -U openmim
mim install mmcv-full
mim install mmdet
第1步: 安装 MMRotate.
案例a:如果您直接开发并运行 mmrotate,请从源代码安装:
git clone https://github.com/open-mmlab/mmrotate.git
cd mmrotate
pip install -v -e .
# "-v" 表示详细或更多输出
# "-e" 表示以可编辑模式安装项目,
# 因此,对代码进行的任何本地修改都将在不重新安装的情况下生效。
案例b:如果将 mmrotate 作为依赖项或第三方软件包,请使用 pip 安装它:
pip install mmrotate
为了验证是否正确安装了 MMRotate,我们提供了一些示例代码来运行推理演示。
第1步: 我们需要下载配置文件和检查点文件。
mim download mmrotate --config oriented_rcnn_r50_fpn_1x_dota_le90 --dest .
下载需要几秒钟或更长时间,具体取决于您的网络环境。当下载完成之后,您将会在当前文件夹下找到 oriented_rcnn_r50_fpn_1x_dota_le90.py
和 oriented_rcnn_r50_fpn_1x_dota_le90-6d2b2ce0.pth
这两个文件。
第2步: 验证推理演示
选项(a):如果从源代码安装 mmrotate,只需运行以下命令。
python demo/image_demo.py demo/demo.jpg oriented_rcnn_r50_fpn_1x_dota_le90.py oriented_rcnn_r50_fpn_1x_dota_le90-6d2b2ce0.pth --out-file result.jpg
您将在当前目录下看到一张名为 result.jpg
的新图片,其中旋转边界框绘制在汽车、公共汽车等目标上。
选项(b):如果使用 pip 安装 mmrotate,请打开 python 解释器并复制和粘贴以下代码。
from mmdet.apis import init_detector, inference_detector
import mmrotate
config_file = 'oriented_rcnn_r50_fpn_1x_dota_le90.py'
checkpoint_file = 'oriented_rcnn_r50_fpn_1x_dota_le90-6d2b2ce0.pth'
model = init_detector(config_file, checkpoint_file, device='cuda:0')
inference_detector(model, 'demo/demo.jpg')
您将看到打印的数组列表,表示检测到的旋转边界框。
安装 PyTorch 时,需要指定 CUDA 的版本。如果您不清楚选择哪一个,请遵循我们的建议:
- 对于基于安培架构的 NVIDIA GPU,如 GeForce 30 系列和 NVIDIA A100,必须使用 CUDA 11。
- 对于较旧的 NVIDIA GPU,CUDA 11 向后兼容,但 CUDA 10.2 更轻量并且具有更好的兼容性。
请确保 GPU 驱动程序满足最低版本要求。 请查询 表格 以获得更多信息。
如果遵循我们的最佳实践,安装 CUDA 运行时库就足够了,因为不会在本地编译 CUDA 代码。但是,如果您希望从源代码处编译 MMCV 或开发其他 CUDA 算子,则需要从 NVIDIA 的 [网站](https://developer.nvidia.com/cuda-downloads) 安装完整的 CUDA 工具包,其版本应与 PyTorch 的 CUDA 版本匹配。例如使用 `conda install` 命令指定 cudatoolkit 的版本。
MMCV 包含 C++ 和 CUDA 扩展,因此以复杂的方式依赖于 PyTorch。MIM 会自动解决此类依赖关系,并使安装更容易。然而,这不是必须的。
要使用 pip 而不是 MIM 安装 MMCV,请遵循 MMCV 安装指南 。 这需要根据 PyTorch 版本及其 CUDA 版本手动指定 find-url。
例如, 以下命令安装了为 PyTorch 1.9.x 和 CUDA 10.2 构建的 mmcv-full。
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8/index.html
Google Colab 通常已经安装了 PyTorch, 因此,我们只需要使用以下命令安装 MMCV 和 MMDetection。
第1步: 使用 MIM 安装 MMCV 和 MMDetection 。
!pip3 install -U openmim
!mim install mmcv-full
!mim install mmdet
第2步: 从源码安装 MMRotate。
!git clone https://github.com/open-mmlab/mmrotate.git
%cd mmrotate
!pip install -e .
第3步: 验证。
import mmrotate
print(mmrotate.__version__)
# Example output: 0.3.1
在Jupyter中,感叹号 `!` 用于调用外部可执行文件,`%cd` 是一个 [魔术命令](https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-cd) 用于更改 Python 的当前工作目录。
我们提供了 Dockerfile 用于创建镜像。 请确保您的 docker 版本 >=19.03。
# build an image with PyTorch 1.6, CUDA 10.1
# If you prefer other versions, just modified the Dockerfile
docker build -t mmrotate docker/
使用下列命令运行
docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmrotate/data mmrotate