Mmrotate - OpenMMLab Rotated Object Detection Benchmark

Overview

Introduction

English | 简体中文

MMRotate is an open-source toolbox for rotated object detection based on PyTorch. It is a part of the OpenMMLab project.

The master branch works with PyTorch 1.6+.

video.MP4
Major Features
  • Support multiple angle representations

    MMRotate provides three mainstream angle representations to meet different paper settings.

  • Modular Design

    We decompose the rotated object detection framework into different components, which makes it much easy and flexible to build a new model by combining different modules.

  • Strong baseline and State of the art

    The toolbox provides strong baselines and state-of-the-art methods in rotated object detection.

Installation

Please refer to install.md for installation guide.

Get Started

Please see get_started.md for the basic usage of MMRotate. There are also tutorials:

Model Zoo

Results and models are available in the README.md of each method's config directory. A summary can be found in the Model Zoo page.

Supported algorithms:

Model Request

We will keep up with the latest progress of the community, and support more popular algorithms and frameworks. If you have any feature requests, please feel free to leave a comment in MMRotate Roadmap.

Data Preparation

Please refer to data_preparation.md to prepare the data.

FAQ

Please refer to FAQ for frequently asked questions.

Contributing

We appreciate all contributions to improve MMRotate. Please refer to CONTRIBUTING.md for the contributing guideline.

Acknowledgement

MMRotate is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new methods.

Citation

If you find this project useful in your research, please consider cite:

@misc{mmrotate2022,
  title={MMRotate: A Rotated Object Detection Benchmark using PyTorch},
  author =       {Zhou, Yue and Yang, Xue and Zhang, Gefan and Jiang, Xue and Liu, Xingzhao and Yan, Junchi and Lyu, Chengqi and Zhang, Wenwei, and Chen, Kai},
  howpublished = {\url{https://github.com/open-mmlab/mmrotate}},
  year =         {2022}
}

License

This project is released under the Apache 2.0 license.

Projects in OpenMMLab

  • MMCV: OpenMMLab foundational library for computer vision.
  • MIM: MIM Installs OpenMMLab Packages.
  • MMClassification: OpenMMLab image classification toolbox and benchmark.
  • MMDetection: OpenMMLab detection toolbox and benchmark.
  • MMDetection3D: OpenMMLab next-generation platform for general 3D object detection.
  • MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
  • MMAction2: OpenMMLab next-generation action understanding toolbox and benchmark.
  • MMTracking: OpenMMLab video perception toolbox and benchmark.
  • MMPose: OpenMMLab pose estimation toolbox and benchmark.
  • MMEditing: OpenMMLab image and video editing toolbox.
  • MMOCR: A comprehensive toolbox for text detection, recognition and understanding.
  • MMGeneration: OpenMMLab next-generation toolbox for generative models.
  • MMFlow: OpenMMLab optical flow toolbox and benchmark.
  • MMFewShot: OpenMMLab fewshot learning toolbox and benchmark.
  • MMHuman3D: OpenMMLab 3D human parametric model toolbox and benchmark.
  • MMSelfSup: OpenMMLab self-supervised learning toolbox and benchmark.
  • MMRazor: OpenMMLab model compression toolbox and benchmark.
  • MMDeploy: OpenMMLab model deployment framework.
  • MMRotate: OpenMMLab rotated object detection toolbox and benchmark.
Issues
  • [Fix] Fix typos and bugs.

    [Fix] Fix typos and bugs.

    • Add CITATION.cff
    • Refact import BACKBONES -> import MODELS in mmrotate/models/builder.py
    • Fix getting_started.md and download link bugs
    • Fix typo: rotation detection -> rotated detection in docs
    • Update bibtex.

    Motivation

    Please describe the motivation of this PR and the goal you want to achieve through this PR.

    Modification

    Please briefly describe what modification is made in this PR.

    BC-breaking (Optional)

    Does the modification introduce changes that break the back-compatibility of the downstream repos? If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

    Use cases (Optional)

    If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

    Checklist

    1. Pre-commit or other linting tools are used to fix the potential lint issues.
    2. The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
    3. The documentation has been modified accordingly, like docstring or example tutorials.
    opened by zytx121 0
  • I train normally, but there is no validation process

    I train normally, but there is no validation process

    I train normally, but there is no validation process

    i use this shell: python -m torch.distributed.launch --nproc_per_node 4 train.py ./configs/r3det/r3det_tiny_r50_fpn_1x_dota_oc.py --launcher pytorch --gpus 4

    got:

    2022-02-19 09:47:48,227 - mmrotate - INFO - workflow: [('train', 1)], max: 12 epochs 2022-02-19 09:47:48,227 - mmrotate - INFO - Checkpoints will be saved to /home/ai/yumo/ship_det/mmrotate-main/work_dirs/r3det_tiny_r50_fpn_1x_dota_oc by HardDiskBackend. 2022-02-19 09:48:13,565 - mmcv - INFO - Reducer buckets have been rebuilt in this iteration. 2022-02-19 09:48:32,743 - mmrotate - INFO - Epoch [1][50/100] lr: 9.967e-04, eta: 0:17:03, time: 0.890, data_time: 0.494, memory: 3223, s0.loss_cls: 1.0393, s0.loss_bbox: 0.3072, sr0.loss_cls: 0.9379, sr0.loss_bbox: 0.3254, loss: 2.6098, grad_norm: 4.0230 2022-02-19 09:48:52,601 - mmrotate - INFO - Exp name: r3det_tiny_r50_fpn_1x_dota_oc.py 2022-02-19 09:48:52,602 - mmrotate - INFO - Epoch [1][100/100] lr: 1.163e-03, eta: 0:11:48, time: 0.397, data_time: 0.006, memory: 3224, s0.loss_cls: 0.5890, s0.loss_bbox: 0.2449, sr0.loss_cls: 0.4457, sr0.loss_bbox: 0.2588, loss: 1.5385, grad_norm: 4.9931 2022-02-19 09:49:37,768 - mmrotate - INFO - Epoch [2][50/100] lr: 1.330e-03, eta: 0:12:40, time: 0.885, data_time: 0.490, memory: 3224, s0.loss_cls: 0.4540, s0.loss_bbox: 0.2310, sr0.loss_cls: 0.3741, sr0.loss_bbox: 0.2568, loss: 1.3159, grad_norm: 4.4678 2022-02-19 09:49:57,411 - mmrotate - INFO - Exp name: r3det_tiny_r50_fpn_1x_dota_oc.py 2022-02-19 09:49:57,411 - mmrotate - INFO - Epoch [2][100/100] lr: 1.497e-03, eta: 0:10:41, time: 0.393, data_time: 0.006, memory: 3224, s0.loss_cls: 0.3914, s0.loss_bbox: 0.2394, sr0.loss_cls: 0.3382, sr0.loss_bbox: 0.2556, loss: 1.2246, grad_norm: 4.6190 2022-02-19 09:50:42,743 - mmrotate - INFO - Epoch [3][50/100] lr: 1.663e-03, eta: 0:10:56, time: 0.893, data_time: 0.492, memory: 3224, s0.loss_cls: 0.3672, s0.loss_bbox: 0.2198, sr0.loss_cls: 0.3200, sr0.loss_bbox: 0.2618, loss: 1.1688, grad_norm: 4.4310

    opened by JY00002 1
  • The installation of mmrotate will install an additional mmcv.

    The installation of mmrotate will install an additional mmcv.

    Describe the bug The installation of mmrotate will install an additional mmcv although I have mmcv-full installed.

    The output of the pip list command is as follows:

    mmcv                1.4.5
    mmcv-full           1.4.5
    mmdet               2.21.0
    mmrotate            0.1.0     
    

    Reproduction

    1. What command or script did you run?
    pip install -v -e .
    

    Bug fix

    Compared with other mmlab project, i think the difference may appeare in requirements/runtime.txt, maybe remove mmcv in runtime.txt can fix it.

    opened by liuyanyi 1
  • Mixed Precision Training

    Mixed Precision Training

    Describe the feature

    Motivation Mixed precision training is a common feature of many OpenMMLab projects. It should be easy to integrate it with MMRotate. We need to release some configs and their corresponding models to verify the feature and provide examples.

    opened by ZwwWayne 1
  • Clean FAQ

    Clean FAQ

    There is no configs/fp16 directory in mmrotate. We should update the faq.md and fix them.

    opened by ZwwWayne 1
  • Docstring should be updated with arguments

    Docstring should be updated with arguments

    This argument is not described in the docstring. May check whether there are similar issues in the code. https://github.com/open-mmlab/mmrotate/blob/6c6bd4805028fd893b829e5d7ad1fe132ed54572/mmrotate/models/dense_heads/rotated_anchor_head.py#L53

    opened by ZwwWayne 1
  • Roadmap of MMRotate

    Roadmap of MMRotate

    We keep this issue open to collect feature requests from users and hear your voice. Our monthly release plan is also available here.

    You can either:

    Suggest a new feature by leaving a comment. Vote for a feature request with 👍 or be against with 👎. (Remember that developers are busy and cannot respond to all feature requests, so vote for your most favorable one!) Tell us that you would like to help implement one of the features in the list or review the PRs. (This is the greatest things to hear about!)

    opened by zytx121 1
Releases(v0.1.0)
Code for "PV-RAFT: Point-Voxel Correlation Fields for Scene Flow Estimation of Point Clouds", CVPR 2021

PV-RAFT This repository contains the PyTorch implementation for paper "PV-RAFT: Point-Voxel Correlation Fields for Scene Flow Estimation of Point Clou

Yi Wei 36 Dec 17, 2021
Steer OpenAI's Jukebox with Music Taggers

TagBox Steer OpenAI's Jukebox with Music Taggers! The closest thing we have to VQGAN+CLIP for music! Unsupervised Source Separation By Steering Pretra

Ethan Manilow 24 Jan 13, 2022
This repository implements WGAN_GP.

Image_WGAN_GP This repository implements WGAN_GP. Image_WGAN_GP This repository uses wgan to generate mnist and fashionmnist pictures. Firstly, you ca

Lieon 6 Dec 09, 2021
最新版本yolov5+deepsort目标检测和追踪,支持5.0版本可训练自己数据集

使用YOLOv5+Deepsort实现车辆行人追踪和计数,代码封装成一个Detector类,更容易嵌入到自己的项目中。

184 Feb 03, 2022
A production-ready, scalable Indexer for the Jina neural search framework, based on HNSW and PSQL

🌟 HNSW + PostgreSQL Indexer HNSWPostgreSQLIndexer Jina is a production-ready, scalable Indexer for the Jina neural search framework. It combines the

Jina AI 11 Jan 15, 2022
VGGFace2-HQ - A high resolution face dataset for face editing purpose

The first open source high resolution dataset for face swapping!!! A high resolution version of VGGFace2 for academic face editing purpose

Naiyuan Liu 113 Feb 10, 2022
Object detection (YOLO) with pytorch, OpenCV and python

Real Time Object/Face Detection Using YOLO-v3 This project implements a real time object and face detection using YOLO algorithm. You only look once,

1 Dec 08, 2021
Code release for "MERLOT Reserve: Neural Script Knowledge through Vision and Language and Sound"

merlot_reserve Code release for "MERLOT Reserve: Neural Script Knowledge through Vision and Language and Sound" MERLOT Reserve (in submission) is a mo

Rowan Zellers 17 Jan 20, 2022
clDice - a Novel Topology-Preserving Loss Function for Tubular Structure Segmentation

README clDice - a Novel Topology-Preserving Loss Function for Tubular Structure Segmentation CVPR 2021 Authors: Suprosanna Shit and Johannes C. Paetzo

73 Jan 06, 2022
Codes and pretrained weights for winning submission of 2021 Brain Tumor Segmentation (BraTS) Challenge

Winning submission to the 2021 Brain Tumor Segmentation Challenge This repo contains the codes and pretrained weights for the winning submission to th

44 Jan 17, 2022
This is a JAX implementation of Neural Radiance Fields for learning purposes.

learn-nerf This is a JAX implementation of Neural Radiance Fields for learning purposes. I've been curious about NeRF and its follow-up work for a whi

Alex Nichol 32 Jan 02, 2022
A flexible and extensible framework for gait recognition.

A flexible and extensible framework for gait recognition. You can focus on designing your own models and comparing with state-of-the-arts easily with the help of OpenGait.

Shiqi Yu 198 Jan 18, 2022
Spherical CNNs

Spherical CNNs Equivariant CNNs for the sphere and SO(3) implemented in PyTorch Overview This library contains a PyTorch implementation of the rotatio

Jonas Köhler 857 Jan 24, 2022
中文语音识别系列,读者可以借助它快速训练属于自己的中文语音识别模型,或直接使用预训练模型测试效果。

MASR中文语音识别(pytorch版) 开箱即用 自行训练 使用与训练分离(增量训练) 识别率高 说明:因为每个人电脑机器不同,而且有些安装包安装起来比较麻烦,强烈建议直接用我编译好的docker环境跑 目前docker基础环境为ubuntu-cuda10.1-cudnn7-pytorch1.6.

发送小信号 167 Jan 11, 2022
Final report with code for KAIST Course KSE 801.

Orthogonal collocation is a method for the numerical solution of partial differential equations

Chuanbo HUA 3 Dec 27, 2021
Implementation of Stochastic Image-to-Video Synthesis using cINNs.

Stochastic Image-to-Video Synthesis using cINNs Official PyTorch implementation of Stochastic Image-to-Video Synthesis using cINNs accepted to CVPR202

CompVis Heidelberg 83 Jan 13, 2022
Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting

Autoformer (NeurIPS 2021) Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting Time series forecasting is a c

THUML @ Tsinghua University 133 Jan 17, 2022
ElasticFace: Elastic Margin Loss for Deep Face Recognition

This is the official repository of the paper: ElasticFace: Elastic Margin Loss for Deep Face Recognition Paper on arxiv: arxiv Model Log file Pretrain

Fadi Boutros 66 Feb 06, 2022
Random-Afg - Afghanistan Random Old Idz Cloner Tools

AFGHANISTAN RANDOM OLD IDZ CLONER TOOLS Install $ apt update $ apt upgrade $ apt

MAHADI HASAN AFRIDI 5 Jan 25, 2022
Classify the disease status of a plant given an image of a passion fruit

Passion Fruit Disease Detection I tried to create an accurate machine learning models capable of localizing and identifying multiple Passion Fruits in

3 Nov 08, 2021