Unverified Commit 5b279fbd authored by Zaida Zhou's avatar Zaida Zhou Committed by GitHub
Browse files

[Docs] Refine reamde and installation (#2340)

* [Docs] Simplify README

* Simplify README_zh-CN

* Update installation docs

* Add mmyolo link in README

* update introduction

* update installation

* Update build docs

* remove io link in README

* update
parent cb2eb576
This diff is collapsed.
......@@ -20,6 +20,7 @@
</div>
[![docs](https://img.shields.io/badge/docs-2.x-blue)](https://mmcv.readthedocs.io/zh_CN/2.x/)
[![platform](https://img.shields.io/badge/platform-Linux%7CWindows%7CmacOS-blue)](https://mmcv.readthedocs.io/zh_CN/2.x/get_started/installation.html)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mmcv)](https://pypi.org/project/mmcv/)
[![PyPI](https://img.shields.io/pypi/v/mmcv)](https://pypi.org/project/mmcv)
[![badge](https://github.com/open-mmlab/mmcv/workflows/build/badge.svg)](https://github.com/open-mmlab/mmcv/actions)
......@@ -30,43 +31,21 @@
## 简介
MMCV 是一个面向计算机视觉的基础库,它支持了很多开源项目,例如
MMCV 是一个面向计算机视觉的基础库,它提供了以下功能
- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMLab 项目、算法、模型的统一入口
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准
- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准
- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准
- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准
- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱
- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台
- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准
- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱
- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱
- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架
MMCV 提供了如下众多功能:
- [图像和视频处理](https://mmcv.readthedocs.io/zh_CN/2.x/understand_mmcv/data_process.html)
- [图像和标注结果可视化](https://mmcv.readthedocs.io/zh_CN/2.x/understand_mmcv/visualization.html)
- [图像变换](https://mmcv.readthedocs.io/zh_CN/2.x/understand_mmcv/data_transform.html)
- [多种 CNN 网络结构](https://mmcv.readthedocs.io/zh_CN/2.x/understand_mmcv/cnn.html)
- [高质量实现的常见 CUDA 算子](https://mmcv.readthedocs.io/zh_CN/2.x/understand_mmcv/ops.html)
- 通用的 IO 接口
- 图像和视频处理
- 图像和标注结果可视化
- 图像变换
- 多种 CNN 网络结构
- 高质量实现的常见 CUDA 算子
MMCV 支持以下的系统:
MMCV 支持多种平台,包括:
- Linux
- Windows
- macOS
如想了解更多特性和使用,请参考[文档](http://mmcv.readthedocs.io/zh_CN/latest)
如想了解更多特性和使用,请参考[文档](http://mmcv.readthedocs.io/zh_CN/2.x)
提示: MMCV 需要 Python 3.6 以上版本。
......@@ -79,177 +58,57 @@ MMCV 有两个版本:
**注意**: 请不要在同一个环境中安装两个版本,否则可能会遇到类似 `ModuleNotFound` 的错误。在安装一个版本之前,需要先卸载另一个。`如果 CUDA 可用,强烈推荐安装 mmcv`
a. 安装完整版
在安装 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 PyTorch [官方文档](https://pytorch.org/)。对于使用 macOS M1 的用户,请确保你的 PyTorch 是 `Nightly` 版本。
我们提供了 **Linux 和 Windows 平台** PyTorch 和 CUDA 版本组合的 mmcv 预编译包,可以大大简化用户安装编译过程。强烈推荐通过预编译包来安装。另外,安装完成后可以运行 [check_installation.py](.dev_scripts/check_installation.py) 脚本检查 mmcv 是否安装成功。
### 安装 mmcv
i. 安装最新版本
在安装 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://github.com/pytorch/pytorch#installation)
如下是安装最新版 `mmcv` 的命令
在 Linux 和 Windows 平台安装 mmcv 的命令如下(如果你的系统是 macOS,请参考[源码安装 mmcv](https://mmcv.readthedocs.io/zh_CN/2.x/get_started/build.html#macos-mmcv)
```shell
pip install 'mmcv>=2.0.0rc1' -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
```bash
pip install -U openmim
mim install 'mmcv>=2.0.0rc1'
```
请将链接中的 `{cu_version}``{torch_version}` 根据自身需求替换成实际的版本号,例如想安装和 `CUDA 11.1``PyTorch 1.9.0` 兼容的最新版 `mmcv`,使用如下替换过的命令
如果需要指定 mmcv 的版本,可以使用以下命令
```shell
pip install 'mmcv>=2.0.0rc1' -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
```bash
mim install mmcv==2.0.0rc1
```
**注意**: PyTorch 在 1.x.0 和 1.x.1 之间通常是兼容的,故 mmcv 只提供 1.x.0 的编译包。如果你的 PyTorch 版本是 1.x.1,你可以放心地安装在 1.x.0 版本编译的 mmcv。例如,如果你的 PyTorch 版本是 1.8.1、CUDA 版本是 11.1,你可以使用以下命令安装 mmcv。
```shell
pip install 'mmcv>=2.0.0rc1' -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html
```
如果发现上述的安装命令没有使用预编译包(以 `.whl` 结尾)而是使用源码包(以 `.tar.gz` 结尾)安装,则有可能是我们没有提供和当前环境的 PyTorch 版本、CUDA 版本相匹配的 mmcv 预编译包,此时,你可以[源码安装 mmcv](https://mmcv.readthedocs.io/zh_CN/2.x/get_started/build.html)
如果想知道更多 CUDA 和 PyTorch 版本的命令,可以参考下面的表格,将链接中的 `=={mmcv_version}` 删去即可。
<details>
<summary>使用预编译包的安装日志</summary>
ii. 安装特定的版本
Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html<br />
Collecting mmcv<br />
<b>Downloading https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/mmcv-2.0.0rc1-cp38-cp38-manylinux1_x86_64.whl</b>
如下是安装特定版本 `mmcv` 的命令
</details>
```shell
pip install mmcv=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
```
<details>
<summary>使用源码包的安装日志</summary>
首先请参考版本发布信息找到想要安装的版本号,将 `{mmcv_version}` 替换成该版本号,例如 `2.0.0rc1`
然后将链接中的 `{cu_version}``{torch_version}` 根据自身需求替换成实际的版本号,例如想安装和 `CUDA 11.1``PyTorch 1.9.0` 兼容的 `mmcv` 2.0.0rc1 版本,使用如下替换过的命令
Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html<br />
Collecting mmcv==2.0.0rc1<br />
<b>Downloading mmcv-2.0.0rc1.tar.gz</b>
```shell
pip install mmcv==2.0.0rc1 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
```
</details>
对于更多的 PyTorch 和 CUDA 版本组合,请参考下表:
<table class="docutils">
<tbody>
<tr>
<th width="80"> CUDA </th>
<th valign="bottom" align="left" width="120">torch 1.12</th>
<th valign="bottom" align="left" width="120">torch 1.11</th>
<th valign="bottom" align="left" width="120">torch 1.10</th>
<th valign="bottom" align="left" width="120">torch 1.9</th>
<th valign="bottom" align="left" width="120">torch 1.8</th>
<th valign="bottom" align="left" width="120">torch 1.7</th>
<th valign="bottom" align="left" width="120">torch 1.6</th>
</tr>
<tr>
<td align="left">11.6</td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html</code></pre> </details></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
<tr>
<td align="left">11.5</td>
<td align="left"></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu115/torch1.11.0/index.html</code></pre> </details></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
<tr>
<td align="left">11.3</td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html</code></pre> </details></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
<tr>
<td align="left">11.1</td>
<td align="left"></td>
<td align="left"></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.10.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html</code></pre> </details> </td>
<td align="left"> </td>
<td align="left"> </td>
</tr>
<tr>
<td align="left">11.0</td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html</code></pre> </details> </td>
<td align="left"></td>
</tr>
<tr>
<td align="left">10.2</td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.12.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.11.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.9.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.7.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code>pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html</code></pre> </details> </td>
</tr>
<tr>
<td align="left">10.1</td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.7.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html</code></pre> </details> </td>
</tr>
<tr>
<td align="left">9.2</td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu92/torch1.7.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu92/torch1.6.0/index.html</code></pre> </details> </td>
</tr>
<tr>
<td align="left">cpu</td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.12.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.11.0/index.html</code></pre> </details></td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.10.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.9.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.8.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.7.0/index.html</code></pre> </details> </td>
<td align="left"><details><summary> 安装 </summary><pre><code> pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.6.0/index.html</code></pre> </details> </td>
</tr>
</tbody>
</table>
**注意**:mmcv 没有提供 Windows 平台 `cu102-torch1.8.0``cu92-torch*` 的预编译包。
除了使用预编译包之外,另一种方式是在本地进行编译,直接运行下述命令
```python
pip install 'mmcv>=2.0.0rc1'
```
更多安装方式请参考[安装文档](https://mmcv.readthedocs.io/zh_CN/2.x/get_started/installation.html)
但注意本地编译可能会耗时 10 分钟以上。
### 安装 mmcv-lite
b. 安装精简版
如果你需要使用和 PyTorch 相关的模块,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://github.com/pytorch/pytorch#installation)
```python
pip install mmcv-lite
```bash
pip install -U openmim
mim install 'mmcv-lite>=2.0.0rc1'
```
如果想从源码编译 MMCV,请参考[该文档](https://mmcv.readthedocs.io/zh_CN/2.x/get_started/build.html)
## FAQ
如果你遇到了安装问题,CUDA 相关的问题或者 RuntimeErrors,可以首先参考[问题解决页面](https://mmcv.readthedocs.io/zh_CN/2.x/faq.html)是否已有解决方案。
如果你遇到了安装问题或者运行时问题,请查看[问题解决页面](https://mmcv.readthedocs.io/zh_CN/2.x/faq.html)是否已有解决方案。如果问题仍然没有解决,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)
## 贡献指南
......@@ -259,6 +118,30 @@ pip install mmcv-lite
`MMCV` 目前以 Apache 2.0 的许可证发布,但是其中有一部分功能并不是使用的 Apache2.0 许可证,我们在 [许可证](LICENSES.md) 中详细地列出了这些功能以及他们对应的许可证,如果您正在从事盈利性活动,请谨慎参考此文档。
## OpenMMLab 的其他项目
- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab 深度学习模型训练基础库
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库
- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准
- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准
- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准
- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准
- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱
- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台
- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准
- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱
- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱
- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架
## 欢迎加入 OpenMMLab 社区
扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=3ijNTqfg),或添加微信小助手”OpenMMLabwx“加入官方交流微信群。
......
......@@ -16,5 +16,8 @@ RUN apt-get update && apt-get install -y libgl1 libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
# Install mmcv
ARG MMCV="2.0.0rc1"
RUN pip install openmim && mim install mmcv==${MMCV} && python -c 'import mmcv;print(mmcv.__version__)'
ARG MMCV=""
RUN if [ "${MMCV}" = "" ]; then pip install -U openmim && mim install 'mmcv>=2.0.0rc1'; else pip install -U openmim && mim install mmcv==${MMCV}; fi
# Verify the installation
RUN python -c 'import mmcv;print(mmcv.__version__)'
{
"Linux": [
{
"cuda": "11.6",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.5",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.0",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "9.2",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "9.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
}
],
"Windows": [
{
"cuda": "11.6",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.5",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
}
]
}
......@@ -58,6 +58,8 @@ extensions = [
myst_heading_anchors = 4
myst_enable_extensions = ['colon_fence']
# Configuration for intersphinx
intersphinx_mapping = {
'python': ('https://docs.python.org/3', None),
......
## Build MMCV from source
### Build on Linux or macOS
### Build mmcv
Clone the repo with
Before installing mmcv, make sure that PyTorch has been successfully installed following the [PyTorch official installation guide](https://pytorch.org/get-started/locally/#start-locally). This can be verified using the following command
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
git checkout 2.x
python -c 'import torch;print(torch.__version__)'
```
It is recommended to install `ninja` to speed up the compilation
If version information is output, then PyTorch is installed.
```bash
pip install -r requirements/optional.txt
```{note}
If you would like to use `opencv-python-headless` instead of `opencv-python`,
e.g., in a minimum container environment or servers without GUI,
you can first install it before installing MMCV to skip the installation of `opencv-python`.
```
You can either
#### Build on Linux
- install the lite version
1. Clone the repo
```bash
MMCV_WITH_OPS=0 pip install -e .
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
- or install the full version
2. Install `ninja` and `psutil` to speed up the compilation
```bash
pip install -e .
pip install -r requirements/optional.txt
```
If you are on macOS, add the following environment variables before the installing command. Meanwhile, please make sure you are using `PyTorch Nightly` in macOS M1.
3. Check the nvcc version (requires 9.2+. Skip if no GPU available.)
```bash
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++'
```
```bash
nvcc --version
```
e.g.,
If the above command outputs the following message, it means that the nvcc setting is OK, otherwise you need to set CUDA_HOME.
```bash
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e .
```
```
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:08:53_PST_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0
```
:::{note}
If you want to support ROCm, you can refer to [AMD ROCm](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html) to install ROCm.
:::
4. Check the gcc version (requires 5.4+)
```bash
gcc --version
```
5. Start building (takes 10+ min)
```bash
pip install -e . -v
```
6. Validate the installation
```bash
python .dev_scripts/check_installation.py
```
If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
#### Build on macOS
```{note}
If you would like to use `opencv-python-headless` instead of `opencv-python`,
e.g., in a minimum container environment or servers without GUI,
you can first install it before installing MMCV to skip the installation of `opencv-python`.
If you are using a mac with an M1 chip, install the nightly version of PyTorch, otherwise you will encounter the problem in [issues#2218](https://github.com/open-mmlab/mmcv/issues/2218).
```
### Build on Windows
1. Clone the repo
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
2. Install `ninja` and `psutil` to speed up the compilation
```bash
pip install -r requirements/optional.txt
```
3. Start building
```bash
MMCV_WITH_OPS=1 pip install -e .
```
4. Validate the installation
```bash
python .dev_scripts/check_installation.py
```
If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
#### Build on Windows
Building MMCV on Windows is a bit more complicated than that on Linux.
The following instructions show how to get this accomplished.
#### Prerequisite
##### Prerequisite
The following software is required for building MMCV on windows.
Install them first.
......@@ -72,7 +132,7 @@ Install them first.
You should know how to set up environment variables, especially `Path`, on Windows. The following instruction relies heavily on this skill.
```
#### Setup Python Environment
##### Common steps
1. Launch Anaconda prompt from Windows Start menu
......@@ -80,63 +140,39 @@ You should know how to set up environment variables, especially `Path`, on Windo
2. Create a new conda environment
```shell
conda create --name mmcv python=3.7 # 3.6, 3.7, 3.8 should work too as tested
conda activate mmcv # make sure to activate environment before any operation
```powershell
(base) PS C:\Users\xxx> conda create --name mmcv python=3.7
(base) PS C:\Users\xxx> conda activate mmcv # make sure to activate environment before any operation
```
3. Install PyTorch. Choose a version based on your need.
```shell
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
```powershell
# CUDA version
(mmcv) PS C:\Users\xxx> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
# CPU version
(mmcv) PS C:\Users\xxx> conda install install pytorch torchvision cpuonly -c pytorch
```
We only tested PyTorch version >= 1.6.0.
4. Clone the repo
4. Prepare MMCV source code
```shell
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
git checkout 2.x
```powershell
(mmcv) PS C:\Users\xxx> git clone https://github.com/open-mmlab/mmcv.git
(mmcv) PS C:\Users\xxx\mmcv> cd mmcv
```
5. Install required Python packages
5. Install `ninja` and `psutil` to speed up the compilation
```shell
pip install -r requirements/runtime.txt
```powershell
(mmcv) PS C:\Users\xxx\mmcv> pip install -r requirements/optional.txt
```
6. It is recommended to install `ninja` to speed up the compilation
```bash
pip install -r requirements/optional.txt
```
#### Build and install MMCV
MMCV can be built in three ways:
1. Lite version (without ops)
In this way, no custom ops are compiled and mmcv is a pure python package.
2. Full version (CPU ops)
Module `ops` will be compiled as a pytorch extension, but only x86 code will be compiled. The compiled ops can be executed on CPU only.
3. Full version (CUDA ops)
Both x86 and CUDA codes of `ops` module will be compiled. The compiled version can be run on both CPU and CUDA-enabled GPU (if implemented).
##### Common steps
1. Set up MSVC compiler
6. Set up MSVC compiler
Set Environment variable, add `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64` to `PATH`, so that `cl.exe` will be available in prompt, as shown below.
```none
(base) PS C:\Users\xxx> cl
```powershell
(mmcv) PS C:\Users\xxx\mmcv> cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
......@@ -147,128 +183,110 @@ MMCV can be built in three ways:
You may want to change the system language to English because pytorch will parse text output from `cl.exe` to check its version. However only utf-8 is recognized. Navigate to Control Panel -> Region -> Administrative -> Language for Non-Unicode programs and change it to English.
##### Option 1: Build MMCV (lite version)
##### Build and install MMCV
After finishing above common steps, launch Anaconda shell from Start menu and issue the following commands:
mmcv can be built in two ways:
```shell
# activate environment
conda activate mmcv
# change directory
cd mmcv
git checkout 2.x
# install
python setup.py develop
# check
pip list
```
##### Option 2: Build MMCV (full version with CPU)
1. Full version (CPU ops)
1. Finish above common steps
Module `ops` will be compiled as a pytorch extension, but only x86 code will be compiled. The compiled ops can be executed on CPU only.
2. Set up environment variables
2. Full version (CUDA ops)
```shell
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 # based on your available number of CPU cores and amount of memory
```
Both x86 and CUDA codes of `ops` module will be compiled. The compiled version can be run on both CPU and CUDA-enabled GPU (if implemented).
3. Following build steps of the lite version
###### CPU version
```shell
# activate environment
conda activate mmcv
# change directory
cd mmcv
git checkout 2.x
# build
python setup.py build_ext # if success, cl will be launched to compile ops
# install
python setup.py develop
# check
pip list
```
Build and install
##### Option 3: Build MMCV (full version with CUDA)
```powershell
(mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext
(mmcv) PS C:\Users\xxx\mmcv> python setup.py develop
```
1. Finish above common steps
###### GPU version
2. Make sure `CUDA_PATH` or `CUDA_HOME` is already set in `envs` via `ls env:`, desired output is shown as below:
1. Make sure `CUDA_PATH` or `CUDA_HOME` is already set in `envs` via `ls env:`, desired output is shown as below:
```none
(base) PS C:\Users\WRH> ls env:
```powershell
(mmcv) PS C:\Users\xxx\mmcv> ls env:
Name Value
---- -----
<... omit some lines ...>
CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
CUDA_PATH_V10_1 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDA_PATH_V10_2 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
<... omit some lines ...>
```
This should already be done by CUDA installer. If not, or you have multiple version of CUDA toolkit installed, set it with
```shell
$env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
```powershell
(mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
# OR
$env:CUDA_HOME = $env:CUDA_PATH_V10_2 # if CUDA_PATH_V10_2 is in envs:
(mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # if CUDA_PATH_V10_2 is in envs:
```
3. Set CUDA target arch
2. Set CUDA target arch
```shell
# Suppose you are using GTX 1080, which is of capability 6.1
$env:TORCH_CUDA_ARCH_LIST="6.1"
# OR build all supported arch, will be slow
$env:TORCH_CUDA_ARCH_LIST="3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5"
# Here you need to change to the target architecture corresponding to your GPU
(mmcv) PS C:\Users\xxx\mmcv> $env:TORCH_CUDA_ARCH_LIST="7.5"
```
```{note}
Check your the compute capability of your GPU from [here](https://developer.nvidia.com/cuda-gpus).
```
:::{note}
Check your the compute capability of your GPU from [here](https://developer.nvidia.com/cuda-gpus).
4. Launch compiling the same way as CPU
```powershell
(mmcv) PS C:\Users\xxx\mmcv> &"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite\deviceQuery.exe"
Device 0: "NVIDIA GeForce GTX 1660 SUPER"
CUDA Driver Version / Runtime Version 11.7 / 11.1
CUDA Capability Major/Minor version number: 7.5
```
```shell
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 # based on available number of CPU cores and amount of memory
# activate environment
conda activate mmcv
# change directory
cd mmcv
git checkout 2.x
The 7.5 above indicates the target architecture. Note: You need to replace v10.2 with your CUDA version in the above command.
:::
3. Build and install
```powershell
# build
python setup.py build_ext # if success, cl will be launched to compile ops
# install
python setup.py develop
# check
pip list
```
```{note}
If you are compiling against PyTorch 1.6.0, you might meet some errors from PyTorch as described in [this issue](https://github.com/pytorch/pytorch/issues/42467). Follow [this pull request](https://github.com/pytorch/pytorch/pull/43380/files) to modify the source code in your local PyTorch installation.
```
```{note}
If you are compiling against PyTorch 1.6.0, you might meet some errors from PyTorch as described in [this issue](https://github.com/pytorch/pytorch/issues/42467). Follow [this pull request](https://github.com/pytorch/pytorch/pull/43380/files) to modify the source code in your local PyTorch installation.
```
If you meet issues when running or compiling mmcv, we list some common issues in [Frequently Asked Question](../faq.html).
##### Validate installation
## \[Optional\] Build MMCV on IPU machine
```powershell
(mmcv) PS C:\Users\xxx\mmcv> python .dev_scripts/check_installation.py
```
Firstly, you need to apply for an IPU cloud machine, see [here](https://www.graphcore.ai/ipus-in-the-cloud).
If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
### Option 1: Docker
### Build mmcv-lite
1. Pull docker
If you need to use PyTorch-related modules, make sure PyTorch has been successfully installed in your environment by referring to the [PyTorch official installation guide](https://github.com/pytorch/pytorch#installation).
```shell
docker pull graphcore/pytorch
```
1. Clone the repo
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
2. Build MMCV under same python environment
2. Start building
### Option 2: Install from SDK
```bash
MMCV_WITH_OPS=0 pip install -e . -v
```
1. Build MMCV
3. Validate installation
2. Use pip to install sdk according to [IPU PyTorch document](https://docs.graphcore.ai/projects/poptorch-user-guide/en/latest/installation.html). Also, you need to apply for machine and sdk to Graphcore.
```bash
python -c 'import mmcv;print(mmcv.__version__)'
```
This diff is collapsed.
## Introduction
MMCV is a foundational library for computer vision research and supports many
research projects as below:
MMCV is a foundational library for computer vision research and provides the following functionalities.
- [Image/Video processing](../understand_mmcv/data_process.md)
- [Image and annotation visualization](../understand_mmcv/visualization.md)
- [Image transformation](../understand_mmcv/data_transform.md)
- [Various CNN architectures](../understand_mmcv/cnn.md)
- [High-quality implementation of common CUDA ops](../understand_mmcv/ops.md)
It supports the following systems:
- Linux
- Windows
- macOS
It supports many research projects as below:
- [MIM](https://github.com/open-mmlab/mim): MIM installs OpenMMLab packages.
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark.
- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO series toolbox and benchmark.
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark.
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox.
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark.
......@@ -21,22 +34,3 @@ research projects as below:
- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox.
- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab image and video generative models toolbox.
- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab model deployment framework.
It provides the following functionalities:
- Universal IO APIs
- Image/Video processing
- Image and annotation visualization
- Image transformation
- Various CNN architectures
- High-quality implementation of common CUDA ops
It supports the following systems.
- Linux
- Windows
- macOS
```{note}
MMCV requires Python 3.6+.
```
......@@ -16,6 +16,7 @@ You can switch between Chinese and English documents in the lower-left corner of
:caption: Understand MMCV
understand_mmcv/data_process.md
understand_mmcv/data_transform.md
understand_mmcv/visualization.md
understand_mmcv/cnn.md
understand_mmcv/ops.md
......
{
"Linux": [
{
"cuda": "11.6",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.5",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.0",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "9.2",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "9.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
}
],
"Windows": [
{
"cuda": "11.6",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.5",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.3",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "11.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.2",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "10.1",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.12.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.11.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.10.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.9.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.8.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.7.x",
"mmcv": [
"2.0.0rc1"
]
},
{
"cuda": "cpu",
"torch": "1.6.x",
"mmcv": [
"2.0.0rc1"
]
}
]
}
......@@ -59,6 +59,8 @@ extensions = [
myst_heading_anchors = 4
myst_enable_extensions = ['colon_fence']
# Configuration for intersphinx
intersphinx_mapping = {
'python': ('https://docs.python.org/3', None),
......
## 从源码编译 MMCV
### 在 Linux 或者 macOS 上编译 MMCV
### 编译 mmcv
克隆算法库
在编译 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)。可使用以下命令验证
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
git checkout 2.x
python -c 'import torch;print(torch.__version__)'
```
建议安装 `ninja` 以加快编译速度
:::{note}
```bash
pip install -r requirements/optional.txt
```
你可以安装 lite 版本
- 如果克隆代码仓库的速度过慢,可以使用以下命令克隆(注意:gitee 的 mmcv 不一定和 github 的保持一致,因为每天只同步一次)
```bash
MMCV_WITH_OPS=0 pip install -e .
git clone https://gitee.com/open-mmlab/mmcv.git
```
也可以安装 full 版本
- 如果打算使用 `opencv-python-headless` 而不是 `opencv-python`,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 `opencv-python-headless`,这样在安装 mmcv 依赖的过程中会跳过 `opencv-python`
- 如果编译过程安装依赖库的时间过长,可以[设置 pypi 源](https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)
```bash
pip install -e .
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
```
如果是在 macOS 上编译,则需要在安装命令前添加一些环境变量,同时对于使用 macOS M1 的用户,请确保你的 PyTorch 是 `Nightly` 版本。
:::
```bash
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++'
```
#### 在 Linux 上编译 mmcv
例如
| TODO: 视频教程
```bash
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e .
```
1. 克隆代码仓库
```{note}
如果你打算使用 `opencv-python-headless` 而不是 `opencv-python`,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 `opencv-python-headless`,这样在安装 mmcv 依赖的过程中会跳过 `opencv-python`
```
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
### 在 Windows 上编译 MMCV
2. 安装 `ninja``psutil` 以加快编译速度
在 Windows 上编译 MMCV 比 Linux 复杂,本节将一步步介绍如何在 Windows 上编译 MMCV。
```bash
pip install -r requirements/optional.txt
```
#### 依赖项
3. 检查 nvcc 的版本(要求大于等于 9.2,如果没有 GPU,可以跳过)
请首先安装以下的依赖项:
```bash
nvcc --version
```
- [Git](https://git-scm.com/download/win):安装期间,请选择 **add git to Path**
- [Visual Studio Community 2019](https://visualstudio.microsoft.com):用于编译 C++ 和 CUDA 代码
- [Miniconda](https://docs.conda.io/en/latest/miniconda.html):包管理工具
- [CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive):如果只需要 CPU 版本可以不安装 CUDA,安装CUDA时,可根据需要进行自定义安装。如果已经安装新版本的显卡驱动,建议取消驱动程序的安装
上述命令如果输出以下信息,表示 nvcc 的设置没有问题,否则需要设置 CUDA_HOME
```{note}
您需要知道如何在 Windows 上设置变量环境,尤其是 "PATH" 的设置,以下安装过程都会用到。
```
```
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:08:53_PST_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0
```
#### 设置 Python 环境
:::{note}
如果想要支持 ROCm,可以参考 [AMD ROCm](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html) 安装 ROCm。
:::
1. 从 Windows 菜单启动 Anaconda 命令行
4. 检查 gcc 的版本(要求大于等于**5.4**
```{note}
如 Miniconda 安装程序建议,不要使用原始的 `cmd.exe` 或是 `powershell.exe`。命令行有两个版本,一个基于 PowerShell,一个基于传统的 `cmd.exe`。请注意以下说明都是使用的基于 PowerShell
```
```bash
gcc --version
```
2. 创建一个新的 Conda 环境
5. 开始编译(预估耗时 10 分钟)
```shell
conda create --name mmcv python=3.7 # 经测试,3.6, 3.7, 3.8 也能通过
conda activate mmcv # 确保做任何操作前先激活环境
```bash
pip install -e . -v
```
3. 安装 PyTorch 时,可以根据需要安装支持 CUDA 或不支持 CUDA 的版本
6. 验证安装
```shell
# CUDA version
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
# CPU version
conda install pytorch torchvision cpuonly -c pytorch
```bash
python .dev_scripts/check_installation.py
```
4. 准备 MMCV 源代码
如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.html)是否已经有解决方案。
如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)
#### 在 macOS 上编译 mmcv
| TODO: 视频教程
```{note}
如果你使用的 mac 是 M1 芯片,请安装 PyTorch 的 nightly 版本,否则会遇到 [issues#2218](https://github.com/open-mmlab/mmcv/issues/2218) 中的问题。
```
1. 克隆代码仓库
```shell
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
5. 安装所需 Python 依赖包
2. 安装 `ninja``psutil` 以加快编译速度
```shell
pip3 install -r requirements/runtime.txt
```bash
pip install -r requirements/optional.txt
```
6. 建议安装 `ninja` 以加快编译速度
3. 开始编译
```bash
pip install -r requirements/optional.txt
pip install -e .
```
4. 验证安装
```bash
python .dev_scripts/check_installation.py
```
#### 编译与安装 MMCV
如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.md)是否已经有解决方案。
MMCV 有三种安装的模式:
如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)
1. Lite 版本(不包含算子)
#### 在 Windows 上编译 mmcv
这种方式下,没有算子被编译,这种模式的 mmcv 是原生的 python 包
| TODO: 视频教程
2. Full 版本(只包含 CPU 算子)
在 Windows 上编译 mmcv 比 Linux 复杂,本节将一步步介绍如何在 Windows 上编译 mmcv。
编译 CPU 算子,但只有 x86 将会被编译,并且编译版本只能在 CPU only 情况下运行
##### 依赖项
3. Full 版本(既包含 CPU 算子,又包含 CUDA 算子)
请先安装以下的依赖项:
同时编译 CPU 和 CUDA 算子,`ops` 模块的 x86 与 CUDA 的代码都可以被编译。同时编译的版本可以在 CUDA 上调用 GPU
- [Git](https://git-scm.com/download/win):安装期间,请选择 **add git to Path**
- [Visual Studio Community 2019](https://visualstudio.microsoft.com):用于编译 C++ 和 CUDA 代码
- [Miniconda](https://docs.conda.io/en/latest/miniconda.html):包管理工具
- [CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive):如果只需要 CPU 版本可以不安装 CUDA,安装 CUDA 时,可根据需要进行自定义安装。如果已经安装新版本的显卡驱动,建议取消驱动程序的安装
```{note}
如果不清楚如何安装以上依赖,请参考[Windows 环境从零安装 mmcv](https://zhuanlan.zhihu.com/p/434491590)。
另外,你需要知道如何在 Windows 上设置变量环境,尤其是 "PATH" 的设置,以下安装过程都会用到。
```
##### 通用步骤
1. 设置 MSVC 编译器
1. 从 Windows 菜单启动 Anaconda 命令行
如 Miniconda 安装程序建议,不要使用原始的 `cmd.exe` 或是 `powershell.exe`。命令行有两个版本,一个基于 PowerShell,一个基于传统的 `cmd.exe`。请注意以下说明都是使用的基于 PowerShell
2. 创建一个新的 Conda 环境
```powershell
(base) PS C:\Users\xxx> conda create --name mmcv python=3.7
(base) PS C:\Users\xxx> conda activate mmcv # 确保做任何操作前先激活环境
```
3. 安装 PyTorch 时,可以根据需要安装支持 CUDA 或不支持 CUDA 的版本
```powershell
# CUDA version
(mmcv) PS C:\Users\xxx> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
# CPU version
(mmcv) PS C:\Users\xxx> conda install install pytorch torchvision cpuonly -c pytorch
```
4. 克隆代码仓库
```powershell
(mmcv) PS C:\Users\xxx> git clone https://github.com/open-mmlab/mmcv.git
(mmcv) PS C:\Users\xxx> cd mmcv
```
5. 安装 `ninja``psutil` 以加快编译速度
```powershell
(mmcv) PS C:\Users\xxx\mmcv> pip install -r requirements/optional.txt
```
6. 设置 MSVC 编译器
设置环境变量。添加 `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64``PATH`,则 `cl.exe` 可以在命令行中运行,如下所示。
```none
(base) PS C:\Users\xxx> cl
```powershell
(mmcv) PS C:\Users\xxx\mmcv> cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
......@@ -138,60 +193,33 @@ MMCV 有三种安装的模式:
因为 PyTorch 将解析 `cl.exe` 的输出以检查其版本,只有 utf-8 将会被识别,你可能需要将系统语言更改为英语。控制面板 -> 地区-> 管理-> 非 Unicode 来进行语言转换。
##### 安装方式一:Lite version(不包含算子)
在完成上述的公共步骤后,从菜单打开 Anaconda 命令框,输入以下命令
```shell
# 激活环境
conda activate mmcv
# 切换到 mmcv 根目录
cd mmcv
# 切换到 2.x 分支
git checkout 2.x
# 安装
python setup.py develop
# 检查是否安装成功
pip list
```
##### 编译与安装 mmcv
##### 安装方式二:Full version(只编译 CPU 算子)
mmcv 有两个版本:
1. 完成上述的公共步骤
- 只包含 CPU 算子的版本
2. 设置环境变量
编译 CPU 算子,但只有 x86 将会被编译,并且编译版本只能在 CPU only 情况下运行
```shell
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
```
- 既包含 CPU 算子,又包含 CUDA 算子的版本
3. 编译安装
```shell
conda activate mmcv # 激活环境
cd mmcv # 改变路径
git checkout 2.x # 切换到 2.x 分支
python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
python setup.py develop # 安装
pip list # 检查是否安装成功
```
同时编译 CPU 和 CUDA 算子,`ops` 模块的 x86 与 CUDA 的代码都可以被编译。同时编译的版本可以在 CUDA 上调用 GPU
##### 安装方式三:Full version(既编译 CPU 算子又编译 CUDA 算子)
###### CPU 版本
1. 完成上述的公共步骤
编译安装
2. 设置环境变量
```powershell
(mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
(mmcv) PS C:\Users\xxx\mmcv> python setup.py develop # 安装
```
```shell
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
```
###### GPU 版本
3. 检查 `CUDA_PATH` 或者 `CUDA_HOME` 环境变量已经存在在 `envs` 之中
1. 检查 `CUDA_PATH` 或者 `CUDA_HOME` 环境变量已经存在在 `envs` 之中
```none
(base) PS C:\Users\WRH> ls env:
```powershell
(mmcv) PS C:\Users\xxx\mmcv> ls env:
Name Value
---- -----
......@@ -202,39 +230,71 @@ pip list
如果没有,你可以按照下面的步骤设置
```shell
$env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
```powershell
(mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
# 或者
$env:CUDA_HOME = $env:CUDA_PATH_V10_2 # CUDA_PATH_V10_2 已经在环境变量中
(mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # CUDA_PATH_V10_2 已经在环境变量中
```
4. 设置 CUDA 的目标架构
2. 设置 CUDA 的目标架构
```shell
$env:TORCH_CUDA_ARCH_LIST="6.1" # 支持 GTX 1080
# 或者用所有支持的版本,但可能会变得很慢
$env:TORCH_CUDA_ARCH_LIST="3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5"
```powershell
# 这里需要改成你的显卡对应的目标架构
(mmcv) PS C:\Users\xxx\mmcv> $env:TORCH_CUDA_ARCH_LIST="7.5"
```
```{note}
我们可以在 [here](https://developer.nvidia.com/cuda-gpus) 查看 GPU 的计算能力
```
:::{note}
可以点击 [cuda-gpus](https://developer.nvidia.com/cuda-gpus) 查看 GPU 的计算能力,也可以通过 CUDA 目录下的 deviceQuery.exe 工具查看
```powershell
(mmcv) PS C:\Users\xxx\mmcv> &"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite\deviceQuery.exe"
Device 0: "NVIDIA GeForce GTX 1660 SUPER"
CUDA Driver Version / Runtime Version 11.7 / 11.1
CUDA Capability Major/Minor version number: 7.5
```
上面的 7.5 表示目标架构。注意:需把上面命令的 v10.2 换成你的 CUDA 版本。
:::
5. 编译安装
3. 编译安装
```shell
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
conda activate mmcv # 激活环境
cd mmcv # 改变路径
git checkout 2.x # 切换到 2.x 分支
python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
python setup.py develop # 安装
pip list # 检查是否安装成功
```powershell
(mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
(mmcv) PS C:\Users\xxx\mmcv> python setup.py develop # 安装
```
```{note}
如果你的 PyTorch 版本是 1.6.0,你可能会遇到一些这个 [issue](https://github.com/pytorch/pytorch/issues/42467) 提到的错误,则可以参考这个 [pull request](https://github.com/pytorch/pytorch/pull/43380/files) 修改 本地环境的 PyTorch 源代码
```{note}
如果你的 PyTorch 版本是 1.6.0,你可能会遇到一些 [issue](https://github.com/pytorch/pytorch/issues/42467) 提到的错误,你可以参考这个 [pull request](https://github.com/pytorch/pytorch/pull/43380/files) 修改本地环境的 PyTorch 源代码
```
##### 验证安装
```powershell
(mmcv) PS C:\Users\xxx\mmcv> python .dev_scripts/check_installation.py
```
如果编译安装 mmcv 的过程中遇到了问题,你也许可以在 [Frequently Asked Question](../faq.html) 找到解决方法
如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.md)是否已经有解决方案。
如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)
### 编译 mmcv-lite
如果你需要使用和 PyTorch 相关的模块,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)
1. 克隆代码仓库
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
2. 开始编译
```bash
MMCV_WITH_OPS=0 pip install -e . -v
```
3. 验证安装
```bash
python -c 'import mmcv;print(mmcv.__version__)'
```
This diff is collapsed.
## 介绍 MMCV
MMCV 是一个面向计算机视觉的基础库,它支持了很多开源项目,例如:
MMCV 是一个面向计算机视觉的基础库,它提供了以下功能:
- [图像和视频处理](../understand_mmcv/data_process.md)
- [图像和标注结果可视化](../understand_mmcv/visualization.md)
- [图像变换](../understand_mmcv/data_transform.md)
- [多种 CNN 网络结构](../understand_mmcv/cnn.md)
- [高质量实现的常见 CUDA 算子](../understand_mmcv/ops.md)
MMCV 支持多种平台,包括:
- Linux
- Windows
- macOS
它支持的 OpenMMLab 项目:
- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
......@@ -20,25 +34,3 @@ MMCV 是一个面向计算机视觉的基础库,它支持了很多开源项目
- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱
- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱
- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架
MMCV 提供了如下众多功能:
- 通用的 IO 接口
- 图像和视频处理
- 图像和标注结果可视化
- 常用小工具(进度条,计时器等)
- 基于 PyTorch 的通用训练框架
- 多种 CNN 网络结构
- 高质量实现的常见 CUDA 算子
MMCV 支持以下的系统:
- Linux
- Windows
- macOS
如想了解更多特性和使用,请参考[文档](https://mmcv.readthedocs.io/zh_CN/latest)
```{note}
MMCV 需要 Python 3.6 以上版本。
```
## <a href='https://mmcv.readthedocs.io/en/latest/'>English</a>
## <a href='https://mmcv.readthedocs.io/en/2.x/'>English</a>
## <a href='https://mmcv.readthedocs.io/zh_CN/latest/'>简体中文</a>
## <a href='https://mmcv.readthedocs.io/zh_CN/2.x/'>简体中文</a>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment