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
### Install with pip
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-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
Another way is to compile locally by running
```python
pip install mmcv-full
```
Note that the local compiling may take up to 10 mins.
### Install from source
After cloning the repo with
2020-07-08 01:20:27 +08:00
```bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
```
2020-07-09 02:19:02 +08:00
You can either
- install the lite version
```bash
pip install -e .
```
- install the full version
```bash
MMCV_WITH_OPS=1 pip install -e .
```
If you are on macOS, add the following environment variables before the installing command.
2020-07-08 01:20:27 +08:00
```bash
2020-08-09 21:56:15 +08:00
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++'
2020-07-08 01:20:27 +08:00
```
2020-07-09 02:19:02 +08:00
e.g.,
2020-07-08 01:20:27 +08:00
2020-07-09 02:19:02 +08:00
```bash
2020-08-09 21:56:15 +08:00
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' MMCV_WITH_OPS=1 pip install -e .
2020-07-09 02:19:02 +08:00
```
2020-07-08 01:20:27 +08:00
2020-09-04 15:08:12 +08:00
If you are on Windows10, set the following environment variable before the installing command.
```bash
set MMCV_WITH_OPS=1
```
e.g.,
```bash
set MMCV_WITH_OPS=1
pip install -e .
```
2020-07-08 01:20:27 +08:00
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` .
2020-08-13 22:04:58 +08:00
### TroubleShooting
If you meet issues when running or compiling mmcv, we list some common issues in [TROUBLESHOOTING.md ](docs/trouble_shooting.md ).