# MMDetection — Open-Source Object Detection Toolbox for PyTorch > MMDetection is an open-source object detection and instance segmentation toolbox from OpenMMLab, offering 300+ pretrained models and a modular config system built on PyTorch. ## Install Save in your project root: # MMDetection — Open-Source Object Detection Toolbox for PyTorch ## Quick Use ```bash pip install openmim mim install mmengine mmcv mmdet python -c "from mmdet.apis import init_detector; print('MMDetection installed')" ``` ## Introduction MMDetection is the detection module of the OpenMMLab ecosystem. It provides a unified framework for training and evaluating object detection, instance segmentation, and panoptic segmentation models with a config-driven workflow that makes experimenting with different architectures straightforward. ## What MMDetection Does - Implements 50+ detection architectures: Faster R-CNN, DETR, YOLOX, Mask R-CNN, and more - Provides 300+ pretrained model checkpoints on COCO, VOC, and other benchmarks - Uses a modular config system to mix backbones, necks, heads, and losses without code changes - Supports distributed training on multiple GPUs and nodes out of the box - Integrates with MMEngine for logging, visualization, and experiment management ## Architecture Overview MMDetection follows a registry-and-config pattern. Each component (backbone, neck, head, loss, dataset) is registered by name. A Python config file specifies the full pipeline: `model = dict(type='FasterRCNN', backbone=dict(type='ResNet', depth=50), ...)`. The `Runner` from MMEngine orchestrates training loops, hook execution, and checkpoint management. Data pipelines use composable transforms for augmentation and preprocessing. ## Self-Hosting & Configuration - Install via MIM: `mim install mmdet` pulls compatible mmcv and mmengine versions - Config files live in `configs/` organized by model family (e.g., `configs/faster_rcnn/`) - Override any config field from the command line: `--cfg-options model.backbone.depth=101` - Use `tools/train.py` for training and `tools/test.py` for evaluation - Export models to ONNX or TensorRT via `tools/deployment/` ## Key Features - Broadest collection of detection model implementations in a single codebase - Config inheritance system reduces boilerplate — change a backbone in one line - Extensive benchmarks with reproducible results on standard datasets - Active community with regular releases tracking state-of-the-art methods - Seamless integration with other OpenMMLab projects (MMSegmentation, MMPose, MMTracking) ## Comparison with Similar Tools - **Detectron2 (Meta)** — strong alternative with Pythonic config; MMDetection has more model variety - **Ultralytics (YOLOv8)** — focused on YOLO variants with a simpler API; MMDetection covers far more architectures - **torchvision.models.detection** — limited set of models shipping with PyTorch - **PaddleDetection** — PaddlePaddle equivalent; MMDetection is PyTorch-native - **Hugging Face Transformers** — includes some detection models but not a dedicated detection framework ## FAQ **Q: Can I use a timm backbone in MMDetection?** A: Yes. MMDetection supports timm backbones via `mmdet.models.backbones.TIMMBackbone` in the config. **Q: How do I train on a custom dataset?** A: Convert your annotations to COCO JSON format, update `data_root` and `ann_file` in the config, and adjust `num_classes` on the head. **Q: Is MMDetection suitable for production inference?** A: For production, export the model to ONNX or TensorRT using the deployment tools; the training framework itself is designed for research workflows. **Q: What is the relationship between MMDetection and MMDet3.x?** A: MMDetection 3.x is the current major version built on MMEngine, replacing the older MMCV-based runner. ## Sources - https://github.com/open-mmlab/mmdetection - https://mmdetection.readthedocs.io/ --- Source: https://tokrepo.com/en/workflows/eeb52efe-3e25-11f1-9bc6-00163e2b0d79 Author: AI Open Source