The plumbing behind OpenMMLab's computer vision stack
MMCV exists so that two dozen OpenMMLab toolboxes don't each have to rewrite image transforms, CNN layers, and custom CUDA kernels.

What it does
MMCV is the foundational Python library for the OpenMMLab computer vision ecosystem. It bundles image and video processing, annotation visualization, data transforms, reusable CNN architectures, and hand-optimized CPU and CUDA operations. In short, it is the shared plumbing that keeps MMDetection, MMSegmentation, and their many siblings from reinventing the same wheels.
The interesting bit
Version 2.0.0, released in April 2023, performed a major refactor: it stripped out all training-related components, which migrated to the newer MMEngine library, and replaced them with a dedicated data-transformation module. The project now maintains a legacy 1.x branch in maintenance mode while iterating on 2.x, and it offers both a full CUDA-enabled build and a lightweight mmcv-lite variant for CPU-only environments.
Key highlights
- Bundles common CV primitives—image/video I/O, transforms, visualization, and CNN layers—into one dependency shared across the entire OpenMMLab suite.
- Ships high-quality custom CPU and CUDA operations, though pre-built wheels are not guaranteed for every PyTorch and CUDA combination.
- Split responsibilities in v2.0: training logic moved to MMEngine, while MMCV focuses on data processing and low-level ops.
- Dual packaging:
mmcvfor full GPU support andmmcv-litefor leaner, CPU-only installs. - Cross-platform support for Linux, Windows, and macOS, requiring Python 3.7+.
Caveats
- The 1.x branch is frozen in maintenance mode as of January 2024, so new features land only on 2.x.
- Some specific operations carry licenses other than Apache 2.0, which means commercial users need to audit
LICENSES.mdbefore shipping. - If your PyTorch/CUDA version lacks a pre-built wheel, expect to compile from source.
Verdict
If you are building or extending any OpenMMLab project, you are already depending on this. For standalone CV research, it is a solid but opinionated collection of utilities; if you do not need its tightly coupled ecosystem, standard PyTorch plus torchvision may be less baggage.
Frequently asked
- What is open-mmlab/mmcv?
- MMCV exists so that two dozen OpenMMLab toolboxes don't each have to rewrite image transforms, CNN layers, and custom CUDA kernels.
- Is mmcv open source?
- Yes — open-mmlab/mmcv is open source, released under the Apache-2.0 license.
- What language is mmcv written in?
- open-mmlab/mmcv is primarily written in Python.
- How popular is mmcv?
- open-mmlab/mmcv has 6.4k stars on GitHub.
- Where can I find mmcv?
- open-mmlab/mmcv is on GitHub at https://github.com/open-mmlab/mmcv.