# open-mmlab/mmdetection

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/open-mmlab-mmdetection).**

32,756 stars · 9,827 forks · Python · Apache-2.0

## Links

- GitHub: https://github.com/open-mmlab/mmdetection
- Homepage: https://mmdetection.readthedocs.io
- awesome-repositories: https://awesome-repositories.com/repository/open-mmlab-mmdetection.md

## Topics

`cascade-rcnn` `convnext` `detr` `fast-rcnn` `faster-rcnn` `glip` `grounding-dino` `instance-segmentation` `mask-rcnn` `object-detection` `panoptic-segmentation` `pytorch` `retinanet` `rtmdet` `semisupervised-learning` `ssd` `swin-transformer` `transformer` `vision-transformer` `yolo`

## Description

This project is a modular research toolkit designed for developing, training, and evaluating deep learning models for object detection, segmentation, and video instance tracking. It provides a flexible training engine that manages complex neural network execution, including distributed training, custom lifecycle hooks, and weight optimization. The framework is built around a hierarchical configuration system that allows users to define architectures, data pipelines, and training hyperparameters through composable, inheritable files.

The project distinguishes itself through its highly modular architecture, which utilizes a registry-based component injection system to allow users to swap model components or implement custom modules without modifying core source code. It supports advanced workflows such as semi-supervised learning, where models are trained by combining labeled and unlabeled data through multi-branch pipelines and teacher-student weight synchronization. Additionally, the framework includes specialized utilities for video-based tracking, enabling the evaluation of algorithms that maintain object identities across frames.

Beyond its core training capabilities, the project offers a comprehensive suite for data management, model evaluation, and production deployment. It features a standardized data pipeline architecture that handles loading, augmentation, and annotation conversion for diverse computer vision datasets. The toolkit also includes diagnostic utilities for benchmarking performance, visualizing predictions, and exporting trained models into optimized formats for production inference.

The project is distributed as a Python package with comprehensive installation utilities that support environment setup and hardware-specific configuration. Documentation and verification scripts are provided to assist users in validating installations and executing inference demos.

## Tags

### Artificial Intelligence & ML

- [Computer Vision Toolkits](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-toolkits.md) — Provides a modular library for developing, training, and evaluating deep learning models for object detection, segmentation, and tracking tasks.
- [Object Detection](https://awesome-repositories.com/f/artificial-intelligence-ml/object-detection.md) — Develops and benchmarks computer vision models for identifying and localizing objects within images.
- [Training Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/training-pipelines.md) — Enables executing training scripts using custom configuration files to initiate the model learning process. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/new_model.html))
- [Video Object Tracking](https://awesome-repositories.com/f/artificial-intelligence-ml/video-object-tracking.md) — Implementing and evaluating algorithms that detect and maintain object identities across video frames for complex motion analysis tasks.
- [Distributed Training Runtimes](https://awesome-repositories.com/f/artificial-intelligence-ml/distributed-training-runtimes.md) — Executes training across various hardware environments including single GPUs, multi-GPU clusters, and multi-node setups. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/tracking_train_test.html))
- [Model Architectures](https://awesome-repositories.com/f/artificial-intelligence-ml/model-architectures.md) — Supports defining new model components by registering custom classes to replace default architecture modules. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/new_model.html))
- [Object Tracking Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/object-tracking-frameworks.md) — Executes multi-object tracking and video instance segmentation on video files. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/tracking_inference.html))
- [Semi-supervised Learning Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/semi-supervised-learning-pipelines.md) — Training detection models by combining labeled and unlabeled data through multi-branch pipelines and teacher-student weight synchronization strategies. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/semi_det.html))
- [Training Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/training-engines.md) — Manages training loops, distributed execution, custom hooks, and weight optimization for complex neural networks.
- [Configuration Management](https://awesome-repositories.com/f/artificial-intelligence-ml/configuration-management.md) — Provides a hierarchical inheritance system to compose model and training parameters with minimal duplication. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/tracking_config.html))
- [Data Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/data-pipelines.md) — Builds complex data processing workflows to load, augment, and format diverse image and annotation datasets.
- [Detection Model Configurations](https://awesome-repositories.com/f/artificial-intelligence-ml/detection-model-configurations.md) — Provides a modular dictionary structure to define detection algorithms and training hyperparameters. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html))
- [Learning Rate Schedulers](https://awesome-repositories.com/f/artificial-intelligence-ml/learning-rate-schedulers.md) — Supports specifying parameter schedulers in the configuration file to implement custom learning rate strategies. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Model Evaluation Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/model-evaluation-frameworks.md) — Enables large-scale model evaluation across single or multi-GPU environments. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/test.html))
- [Model Evaluation Tools](https://awesome-repositories.com/f/artificial-intelligence-ml/model-evaluation-tools.md) — The project supports evaluating object detection models using standard metrics or custom datasets to measure precision, recall, and mean average precision across various object categories. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/evaluation.html))
- [Model Optimization Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/model-optimization-frameworks.md) — Converting trained neural network models into optimized formats for efficient inference and production deployment across various hardware backends.
- [Training Loop Control](https://awesome-repositories.com/f/artificial-intelligence-ml/training-loop-control.md) — Allows controlling the training process flow by switching between epoch-based and iteration-based loops. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Transfer Learning](https://awesome-repositories.com/f/artificial-intelligence-ml/transfer-learning.md) — Enables adjusting class numbers for new datasets by modifying the model head while reusing pre-trained weights. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html))
- [Configuration Inheritance](https://awesome-repositories.com/f/artificial-intelligence-ml/configuration-inheritance.md) — Allows building model structures and training schedules by inheriting existing files to avoid writing configurations from scratch. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html))
- [Dataset Abstraction Layers](https://awesome-repositories.com/f/artificial-intelligence-ml/dataset-abstraction-layers.md) — Provides a standardized abstraction layer for accessing diverse annotation formats and dataset structures.
- [Hyperparameter Optimization](https://awesome-repositories.com/f/artificial-intelligence-ml/hyperparameter-optimization.md) — Supports optimizing the finetuning process by adjusting hyperparameters such as learning rates and epoch counts. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html))
- [Inference Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/inference-engines.md) — The project enables performing inference on high-resolution images by slicing them into smaller patches, processing them, and merging results with configurable overlap and NMS parameters. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/inference.html))
- [Model Architecture Wrappers](https://awesome-repositories.com/f/artificial-intelligence-ml/model-architecture-wrappers.md) — Defines model architectures by wrapping detectors with multi-branch preprocessors and teacher-student interaction parameters. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/semi_det.html))
- [Model Checkpoints](https://awesome-repositories.com/f/artificial-intelligence-ml/model-checkpoints.md) — Supports initializing models before finetuning by specifying a URL or local path to pre-trained weights. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html))
- [Model Composition Architectures](https://awesome-repositories.com/f/artificial-intelligence-ml/model-composition-architectures.md) — Enables flexible model composition by routing data through distinct processing branches.
- [Model Deployment Utilities](https://awesome-repositories.com/f/artificial-intelligence-ml/model-deployment-utilities.md) — Converts trained research models into optimized formats for production inference and cross-platform deployment.
- [Optimization Wrappers](https://awesome-repositories.com/f/artificial-intelligence-ml/optimization-wrappers.md) — Enables defining optimization wrappers to select optimizers, set learning rates, and apply gradient clipping. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Training Hooks](https://awesome-repositories.com/f/artificial-intelligence-ml/training-hooks.md) — Enables registering custom logic to execute at specific lifecycle points during training, validation, or testing. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Dataset Integration](https://awesome-repositories.com/f/artificial-intelligence-ml/dataset-integration.md) — Enables integrating custom or supported datasets into the training pipeline by updating configuration parameters. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/finetune.html))
- [Experiment Tracking](https://awesome-repositories.com/f/artificial-intelligence-ml/experiment-tracking.md) — Stores training metrics and visualization data in local or external backends. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/visualization.html))
- [Inference Tools](https://awesome-repositories.com/f/artificial-intelligence-ml/inference-tools.md) — Provides command-line scripts to execute object detection on images, webcam feeds, and video files. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/inference.html))
- [Model Interfaces](https://awesome-repositories.com/f/artificial-intelligence-ml/model-interfaces.md) — The project provides a unified high-level interface for object detection inference that supports pre-trained models, custom configurations, and automatic weight management for various input types. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/inference.html))
- [Test Time Augmentation](https://awesome-repositories.com/f/artificial-intelligence-ml/test-time-augmentation.md) — Applies flipping and scaling during inference to improve prediction accuracy. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/test.html))
- [Video Tracking Data Management](https://awesome-repositories.com/f/artificial-intelligence-ml/video-tracking-data-management.md) — Provides specialized structures to manage video-based tracking datasets, supporting clip-based training and key frame sampling. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/tracking_config.html))
- [Data Loading Utilities](https://awesome-repositories.com/f/artificial-intelligence-ml/data-loading-utilities.md) — Manages the ratio of labeled and unlabeled data samples within each training batch using multi-source samplers. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/semi_det.html))
- [Data Preparation Utilities](https://awesome-repositories.com/f/artificial-intelligence-ml/data-preparation-utilities.md) — Provides utilities to organize data files and convert annotations into standard formats for training pipelines. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/new_model.html))
- [Dataset Management](https://awesome-repositories.com/f/artificial-intelligence-ml/dataset-management.md) — Provides a unified interface for managing detection data samples, ground truth, and metadata during training and inference. ([source](https://mmdetection.readthedocs.io/en/latest/api.html))
- [Evaluation Metrics](https://awesome-repositories.com/f/artificial-intelligence-ml/evaluation-metrics.md) — Computes spatial overlap accuracy between bounding boxes to evaluate detection performance. ([source](https://mmdetection.readthedocs.io/en/latest/api.html))
- [Loss Management Systems](https://awesome-repositories.com/f/artificial-intelligence-ml/loss-management-systems.md) — Enables calculating and returning a dictionary of losses and metrics from model forward passes. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/conventions.html))
- [Model Component Registries](https://awesome-repositories.com/f/artificial-intelligence-ml/model-component-registries.md) — Allows defining and registering custom model components like backbones, necks, heads, or loss functions. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_models.html))
- [Model Serving](https://awesome-repositories.com/f/artificial-intelligence-ml/model-serving.md) — Supports model deployment and serving using dedicated inference servers. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/useful_tools.html))
- [Performance Metrics](https://awesome-repositories.com/f/artificial-intelligence-ml/performance-metrics.md) — The project calculates average precision metrics for detection models by evaluating precision-recall curves or specific recall points across single or multiple scales. ([source](https://mmdetection.readthedocs.io/en/latest/api.html))
- [Training Loop Schedulers](https://awesome-repositories.com/f/artificial-intelligence-ml/training-loop-schedulers.md) — Allows switching training loops from epoch-based to iteration-based by updating schedulers and data samplers. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html))
- [Weight Initialization](https://awesome-repositories.com/f/artificial-intelligence-ml/weight-initialization.md) — Allows defining initializer types and override rules within model configurations to set initial weights. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/init_cfg.html))

### Data & Databases

- [Data Processing Pipelines](https://awesome-repositories.com/f/data-databases/data-processing-pipelines.md) — Handles loading, augmentation, annotation conversion, and formatting for diverse computer vision datasets.
- [Data Transformation Pipelines](https://awesome-repositories.com/f/data-databases/data-transformation-pipelines.md) — Allows composing sequences of data transformation operations to process and format image data. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/transforms.html))
- [Custom Data Augmentation Frameworks](https://awesome-repositories.com/f/data-databases/custom-data-augmentation-frameworks.md) — Enables defining and registering custom data augmentation steps within training pipelines. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/customize_transforms.html))
- [Dataset Configuration Systems](https://awesome-repositories.com/f/data-databases/dataset-configuration-systems.md) — Enables configuring custom datasets by defining paths and transformation pipelines. ([source](https://mmdetection.readthedocs.io/en/latest/advanced_guides/datasets.html))
- [Dataset Preparation Tools](https://awesome-repositories.com/f/data-databases/dataset-preparation-tools.md) — The project provides scripts to prepare public detection datasets by downloading, extracting, and symlinking them into the project directory structure for configuration compatibility. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/dataset_prepare.html))

### Software Engineering & Architecture

- [Configuration Management Systems](https://awesome-repositories.com/f/software-engineering-architecture/configuration-management-systems.md) — Provides a hierarchical configuration system for modular, layered parameter overrides.
- [Component Registries](https://awesome-repositories.com/f/software-engineering-architecture/component-registries.md) — Uses a central registry to map configuration strings to classes for modular component swapping.
- [Lifecycle Hook Systems](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-hook-systems.md) — Implements a pluggable event system for executing custom logic at specific training or inference stages.

### Part of an Awesome List

- [Computer Vision](https://awesome-repositories.com/f/awesome-lists/ai/computer-vision.md) — Comprehensive toolbox for object detection.
- [Object Detection Frameworks](https://awesome-repositories.com/f/awesome-lists/ai/object-detection-frameworks.md) — Open-source PyTorch-based toolbox for object detection research.
- [Object Detection](https://awesome-repositories.com/f/awesome-lists/more/object-detection.md) — Listed in the “Object Detection” section of the The Incredible Pytorch awesome list.

### Development Tools & Productivity

- [Configuration Inheritance](https://awesome-repositories.com/f/development-tools-productivity/configuration-inheritance.md) — Enables building new models efficiently by inheriting settings from base files and overriding specific fields. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html))
- [Command Line Configuration](https://awesome-repositories.com/f/development-tools-productivity/command-line-configuration.md) — Allows updating nested configuration keys during script execution using command-line arguments. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/config.html))
- [Configuration Management](https://awesome-repositories.com/f/development-tools-productivity/configuration-management.md) — Defines model architectures, training hyperparameters, and data pipelines through composable and inheritable configuration files.
- [Package Managers](https://awesome-repositories.com/f/development-tools-productivity/package-managers.md) — Provides dedicated tools to install necessary dependencies and the project package using source-based methods. ([source](https://mmdetection.readthedocs.io/en/latest/get_started.html))

### DevOps & Infrastructure

- [Model Conversion](https://awesome-repositories.com/f/devops-infrastructure/model-conversion.md) — Converts trained models into backend-specific formats like ONNX for deployment and inference. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/deploy.html))

### Testing & Quality Assurance

- [Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/benchmarks.md) — Benchmarks model training and inference performance by measuring throughput, memory usage, and accuracy. ([source](https://mmdetection.readthedocs.io/en/latest/model_zoo.html))
- [Model Benchmarks](https://awesome-repositories.com/f/testing-quality-assurance/model-testing/model-benchmarks.md) — The project enables evaluating object detection and instance segmentation model robustness by testing performance against various image corruptions and severity levels using analysis scripts. ([source](https://mmdetection.readthedocs.io/en/latest/user_guides/robustness_benchmarking.html))
