忘記密碼
在真實場景中,通常見到的圖像不都是方方正正的,比如掃描的圖書和遙感圖像,需要檢測的目標是有一定旋轉角度的。這時候就需要用到旋轉目標檢測方法,對目標進行精確的定位,方便后面的識別、分析等高級任務。
所謂旋轉目標檢測(Rotated Object Detection),又稱為有向目標檢測(Oriented Object Detection),試圖在檢測出目標位置的同時得到目標的方向信息。它通過重新定義目標表示形式,以及增加回歸自由度數量的操作,實現旋轉矩形、四邊形甚至任意形狀的目標檢測。旋轉目標檢測在人臉識別、場景文字、遙感影像、自動駕駛、醫學圖像、機器人抓取等領域都有廣泛應用。
遺憾的是,現有的開源旋轉目標檢測代碼庫,往往支持的方法較少,角度定義法各不相同,并且不同代碼庫所依賴的關鍵算子、深度學習算法框架不一致。這給代碼復現、借鑒、公平對比都帶來了很大的困難。
為了解決這些問題,OpenMMLab 正式開源了 MMRotate!這是一個專注于旋轉目標檢測的工具箱,它提供了高效、強大的基準模型!
MMRotate代碼庫已經全面開源。
GitHub鏈接:https://github.com/open-mmlab/mmrotate
【MMRotate 有三大特點】
為當下流行的基于深度學習的旋轉目標檢測算法提供了統一的訓練、推理、評估的算法框架。
簡潔的用戶接口與高效、強大的基準模型,部分實現精度超出官方版本。
延續了 OpenMMLab 系列的模塊化風格,繼承了高度靈活 config 功能。
【首個統一的旋轉目標檢測工具箱】
MMRotate 中包含了 15 種旋轉目標檢測算法,從之前 Tensorflow 獨占的 GWD、KLD,到目前在 DOTA 數據集上達到 SOTA 的 ReDet、Oriented RCNN 都有實現。
目前支持的算法一覽:
- Rotated RetinaNet-OBB/HBB (ICCV'2017)
- Rotated FasterRCNN-OBB (TPAMI'2017)
- Rotated RepPoints-OBB (ICCV'2019)
- RoI Transformer (CVPR'2019)
- Gliding Vertex (TPAMI'2020)
- R3Det (AAAI'2021)
- S2A-Net (TGRS'2021)
- ReDet (CVPR'2021)
- Beyond Bounding-Box (CVPR'2021)
- Oriented R-CNN (ICCV'2021)
- GWD (ICML'2021)
- KLD (NeurIPS'2021)
- KFIoU (arXiv)
- G-Rep (stay tuned)
此外,MMRotate支持 OpenCV、長邊135°、長邊90° 3 種角度定義法,也支持 DOTA、SSDD、HRSID 3 個遙感數據集。
在OpenMMLab的MMCV中,實現了RiRoIAlignRotated, RotatedFeatureAlign 等高性能旋轉框 CUDA 算子,因此 MMRotate 無愧是真正的史上最全、最統一的旋轉目標檢測算法框架。
【高效強大的基準模型】
在 MMRotate 中,復現了大量旋轉目標檢測算法,部分模型在 DOTA v1.0 數據集上甚至超越了官方公布的精度。
【模塊化設計和豐富靈活的配置文件】
同 OpenMMLab 其他算法庫一樣,MMRotate使用統一框架和模塊化設計實現了各個算法。一方面可以盡量實現代碼復用,另一方面,方便大家基于此框架實現新的算法。
以下是 MMRotate 的大致框架:
MMRotate 主要由4個部分組成,datasets、models、core 和 apis。
datasets 用于數據集加載和預處理,其中包含訓練所需的數據集,旋轉框數據增廣的 pipelines,和加載數據時的 samplers 。
models 是最關鍵的部分,包括旋轉檢測模型和損失函數。
在 apis 中,為模型訓練、測試和推理配置了一鍵啟動的接口。
core 中實現了用于模型訓練的評估工具和定制的 hooks 。
另外,得益于 OpenMMLab 強大的且高度靈活的 config 模式和注冊器機制, MMRotate 可以做到不改動代碼只編輯配置文件便能自由切換不同的旋轉框定義法。
項目地址:https://github.com/open-mmlab/mmrotate