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)
## Introduction
MMCV is a foundational python 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
- [MMClassification ](https://github.com/open-mmlab/mmclassification ): Image classification toolbox and benchmark
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-12 11:32:40 +08:00
**For pip < 20.3 , please refer to the following table: * *
2020-08-09 15:44:44 +08:00
< table class = "docutils" >
< tbody >
2020-11-14 12:05:57 +08:00
< tr >
< th width = "80" > CUDA < / th >
< 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 >
< tr >
< td align = "left" > 11.0< / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.7.0+cu110 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
2020-08-09 15:44:44 +08:00
< tr >
< td align = "left" > 10.2< / td >
2020-11-14 12:05:57 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.7.0+cu102 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-09-27 00:20:13 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.6.0+cu102 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.5.0+cu102 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-08-09 15:44:44 +08:00
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
< tr >
< td align = "left" > 10.1< / td >
2020-11-14 12:05:57 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.7.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-09-27 00:20:13 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.4.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.3.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-08-09 15:44:44 +08:00
< / tr >
< tr >
< td align = "left" > 9.2< / td >
2020-11-14 12:05:57 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.7.0+cu92 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-09-27 00:20:13 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.6.0+cu92 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.5.0+cu92 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.4.0+cu92 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.3.0+cu92 -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-08-09 15:44:44 +08:00
< / tr >
< tr >
< td align = "left" > cpu< / td >
2020-11-14 12:05:57 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.7.0+cpu -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-09-27 00:20:13 +08:00
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.6.0+cpu -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.5.0+cpu -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.4.0+cpu -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
< td align = "left" > < details > < summary > install < / summary > < pre > < code > pip install mmcv-full==latest+torch1.3.0+cpu -f https://download.openmmlab.com/mmcv/dist/index.html< / code > < / pre > < / details > < / td >
2020-08-09 15:44:44 +08:00
< / tr >
< / tbody >
< / table >
2020-07-09 02:19:02 +08:00
2020-12-12 11:32:40 +08:00
**For pip >= 20.3, please refer to the following table:**
(NOTE: Please refer to the Releases and replace ``{mmcv_version}`` a specified one. e.g. ``1.2.1``; BTW, specifying version using ``latest`` is currently disabled.)
< table class = "docutils" >
< tbody >
< tr >
< th width = "80" > CUDA < / th >
< 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 >
< tr >
< td align = "left" > 11.0< / td >
< 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 >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
< tr >
< td align = "left" > 10.2< / 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.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 >
< td align = "left" > < / td >
< td align = "left" > < / td >
< / tr >
< tr >
< td align = "left" > 10.1< / 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.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 >
< / tr >
< tr >
< td align = "left" > 9.2< / 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.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 >
< / tr >
< tr >
< td align = "left" > cpu< / 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.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 >
< / tr >
< / tbody >
< / table >
2020-07-09 02:19:02 +08:00
Another way is to compile locally by running
```python
pip install mmcv-full
```
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-07-09 02:19:02 +08:00
Note that the local compiling may take up to 10 mins.
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 ).