2020-07-08 01:20:27 +08:00
< div align = "center" >
2020-07-08 12:47:37 +08:00
< img src = "https://raw.githubusercontent.com/open-mmlab/mmcv/master/docs/mmcv-logo.png" width = "300" / >
2020-07-08 01:20:27 +08:00
< / div >
[](https://pypi.org/project/mmcv) [](https://github.com/open-mmlab/mmcv/actions) [](https://codecov.io/gh/open-mmlab/mmcv) [](https://github.com/open-mmlab/mmcv/blob/master/LICENSE)
2021-02-21 21:24:53 +08:00
English | [简体中文 ](README_zh-CN.md )
2020-07-08 01:20:27 +08:00
## Introduction
2021-02-21 21:24:53 +08:00
MMCV is a foundational library for computer vision research and supports many
2020-07-21 14:48:16 +08:00
research projects as below:
2020-07-13 00:53:30 +08:00
- [MMDetection ](https://github.com/open-mmlab/mmdetection ): Detection toolbox and benchmark
- [MMDetection3D ](https://github.com/open-mmlab/mmdetection3d ): General 3D object detection toolbox and benchmark
- [MMSegmentation ](https://github.com/open-mmlab/mmsegmentation ): Semantic segmentation toolbox and benchmark
- [MMEditing ](https://github.com/open-mmlab/mmediting ): Image and video editing toolbox
- [MMPose ](https://github.com/open-mmlab/mmpose ): Pose estimation toolbox and benchmark
- [MMAction2 ](https://github.com/open-mmlab/mmaction2 ): Action understanding toolbox and benchmark
2021-04-14 20:07:07 +08:00
- [MMTracking ](https://github.com/open-mmlab/mmtracking ): Video perception toolbox and benchmark
2020-07-13 00:53:30 +08:00
- [MMClassification ](https://github.com/open-mmlab/mmclassification ): Image classification toolbox and benchmark
2021-04-14 20:07:07 +08:00
- [MMOCR ](https://github.com/open-mmlab/mmocr ): A Comprehensive Toolbox for Text Detection, Recognition and Understanding
2020-07-08 01:20:27 +08:00
It provides the following functionalities.
- Universal IO APIs
- Image/Video processing
- Image and annotation visualization
- Useful utilities (progress bar, timer, ...)
- PyTorch runner with hooking mechanism
- Various CNN architectures
- High-quality implementation of common CUDA ops
See the [documentation ](http://mmcv.readthedocs.io/en/latest ) for more features and usage.
Note: MMCV requires Python 3.6+.
## Installation
2020-07-09 02:19:02 +08:00
There are two versions of MMCV:
2020-07-08 01:20:27 +08:00
2020-07-09 02:19:02 +08:00
- **mmcv**: lite, without CUDA ops but all other features, similar to mmcv< 1.0.0. It is useful when you do not need those CUDA ops .
- **mmcv-full**: comprehensive, with full features and various CUDA ops out of box. It takes longer time to build.
2020-07-21 14:48:16 +08:00
**Note**: Do not install both versions in the same environment, otherwise you may encounter errors like `ModuleNotFound` . You need to uninstall one before installing the other.
2020-07-09 02:19:02 +08:00
a. Install the lite version.
```python
2020-07-08 01:20:27 +08:00
pip install mmcv
```
2020-07-09 02:19:02 +08:00
b. Install the full version.
2020-07-21 14:48:16 +08:00
Before installing mmcv-full, make sure that PyTorch has been successfully installed following the [official guide ](https://pytorch.org/ ).
We provide pre-built mmcv packages (recommended) with different PyTorch and CUDA versions to simplify the building.
2020-07-09 02:19:02 +08:00
2020-12-28 14:20:37 +08:00
i. Install the latest version.
2020-12-24 19:51:54 +08:00
The rule for installing the latest ``mmcv-full`` is as follows:
2020-12-28 14:20:37 +08:00
```shell
2020-12-24 19:51:54 +08:00
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
```
Please replace ``{cu_version}`` and ``{torch_version}`` in the url to your desired one. For example,
to install the latest ``mmcv-full`` with ``CUDA 11`` and ``PyTorch 1.7.0``, use the following command:
2020-12-28 14:20:37 +08:00
```shell
2020-12-24 19:51:54 +08:00
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html
```
For more details, please refer the the following tables and delete ``=={mmcv_version}``.
2020-12-28 14:20:37 +08:00
ii. Install a specified version.
2020-12-24 19:51:54 +08:00
The rule for installing a specified ``mmcv-full`` is as follows:
2020-12-28 14:20:37 +08:00
```shell
2020-12-24 19:51:54 +08:00
pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
```
First of all, please refer to the Releases and replace ``{mmcv_version}`` a specified one. e.g. ``1.2.2``.
Then replace ``{cu_version}`` and ``{torch_version}`` in the url to your desired versions. For example,
to install ``mmcv-full==1.2.2`` with ``CUDA 11`` and ``PyTorch 1.7.0``, use the following command:
2020-12-28 14:20:37 +08:00
```shell
2020-12-24 19:51:54 +08:00
pip install mmcv-full==1.2.2 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html
```
For more details, please refer the the following tables.
2020-12-12 11:32:40 +08:00
< table class = "docutils" >
< tbody >
< tr >
< th width = "80" > CUDA < / th >
2021-03-28 14:04:24 +08:00
< th valign = "bottom" align = "left" width = "100" > torch 1.8< / th >
2020-12-12 11:32:40 +08:00
< th valign = "bottom" align = "left" width = "100" > torch 1.7< / th >
< th valign = "bottom" align = "left" width = "100" > torch 1.6< / th >
< th valign = "bottom" align = "left" width = "100" > torch 1.5< / th >
< th valign = "bottom" align = "left" width = "100" > torch 1.4< / th >
< th valign = "bottom" align = "left" width = "100" > torch 1.3< / th >
< / tr >
2021-03-28 14:04:24 +08:00
< tr >
< td align = "left" > 11.1< / td >
< td align = "left" > < details > < summary > install < / 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 >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
2020-12-12 11:32:40 +08:00
< tr >
< td align = "left" > 11.0< / td >
2021-03-28 14:04:24 +08:00
< td align = "left" > < / td >
2020-12-24 19:51:54 +08:00
< td align = "left" > < details > < summary > install < / 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 >
2020-12-12 11:32:40 +08:00
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
< tr >
< td align = "left" > 10.2< / td >
2021-03-28 14:04:24 +08:00
< td align = "left" > < details > < summary > install < / 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 >
2020-12-24 19:51:54 +08:00
< td align = "left" > < details > < summary > install < / 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 > install < / 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 >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.5.0/index.html< / code > < / pre > < / details > < / td >
2020-12-12 11:32:40 +08:00
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
< tr >
< td align = "left" > 10.1< / td >
2021-03-28 14:04:24 +08:00
< td align = "left" > < details > < summary > install < / 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 >
2020-12-24 19:51:54 +08:00
< td align = "left" > < details > < summary > install < / 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 > install < / 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 >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.5.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html< / code > < / pre > < / details > < / td >
2020-12-12 11:32:40 +08:00
< / tr >
< tr >
< td align = "left" > 9.2< / td >
2021-03-28 14:04:24 +08:00
< td align = "left" > < / td >
2020-12-24 19:51:54 +08:00
< td align = "left" > < details > < summary > install < / 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 > install < / 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 >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu92/torch1.5.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu92/torch1.4.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu92/torch1.3.0/index.html< / code > < / pre > < / details > < / td >
2020-12-12 11:32:40 +08:00
< / tr >
< tr >
< td align = "left" > cpu< / td >
2021-03-28 14:04:24 +08:00
< td align = "left" > < details > < summary > install < / 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 >
2020-12-24 19:51:54 +08:00
< td align = "left" > < details > < summary > install < / 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 > install < / 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 >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.5.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.4.0/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.3.0/index.html< / code > < / pre > < / details > < / td >
2020-12-12 11:32:40 +08:00
< / tr >
< / tbody >
< / table >
2020-07-09 02:19:02 +08:00
Another way is to compile locally by running
```python
pip install mmcv-full
```
2021-02-21 21:24:53 +08:00
Note that the local compiling may take up to 10 mins.
2020-12-23 11:03:55 +08:00
c. Install full version with custom operators for onnxruntime
- Check [here ](docs/onnxruntime_op.md ) for detailed instruction.
2020-12-01 10:36:20 +08:00
If you would like to build MMCV from source, please refer to the [guide ](https://mmcv.readthedocs.io/en/latest/build.html ).
2020-12-22 17:02:42 +08:00
## FAQ
If you face some installation issues, CUDA related issues or RuntimeErrors,
you may first refer to this [Trouble Shooting Page ](https://mmcv.readthedocs.io/en/latest/trouble_shooting.html ).
2021-02-21 21:24:53 +08:00
## Contributing
2021-02-24 10:07:18 +08:00
We appreciate all contributions to improve MMCV. Please refer to [CONTRIBUTING.md ](CONTRIBUTING.md ) for the contributing guideline.