DeepLearning.Earth
Oriented and rotated object detection in aerial and satellite images — notes on the oriented-det package and related work.
-
Which oriented detector should you train?
A practical pick: Rotated RTMDet-S for the Task 1 peak (77.60%, AP75 52.01), Oriented R-CNN when a diagonal pack needs oriented RoIAlign, Faster R-CNN or FCOS when recall and a cheaper schedule matter more.
-
Does MMRotate Faster R-CNN also mess up the bus lot?
Official MMRotate Rotated Faster R-CNN 1× is as messy as OrientedDet Faster R-CNN on the DOTA bus-lot demo tile. The failure is architectural and rare (dense ~45° objects). Oriented R-CNN is clean but heavy to finetune; FCOS follows the heading on this tile. RTMDet was not re-run here.
-
Oriented mAP: what to report, and how to read it
Oriented mAP matches rotated rectangles, not the axis-aligned box around them. DOTA’s headline is 11-point AP at IoU 0.5. AP75 is tightness. Write the protocol down before you subtract two percentages.
-
le90: one heading for a rotated box
DOTA stores four corners as eight coordinates. oriented-det trains on five numbers in the le90 convention: width is the long edge, and the angle lives in [-90°, 90°). Same rectangle, one parameter vector.
-
OSSDD — Sentinel-1 ships, finetuned with RTMDet, Faster R-CNN, and FCOS
OSSDD is Sentinel-1 GRD ship chips with rotated boxes. VH 1× finetunes from the DOTA hubs. Held-out test AP50 at IoU 0.5 and score 0.3: RTMDet-S 88.54%, Rotated Faster R-CNN 70.53%, Rotated FCOS 52.70%. The paper mAP on these rotated boxes is 69.09% / 60.10% / 62.65%. No OSSDD Hub.
-
Oriented-Det v0.4.0 — Rotated RTMDet, 77.60% Task 1
Oriented-det v0.4.0 is on PyPI — Rotated RTMDet-S at 77.60% official DOTA Task 1 (AP75 52.01), ahead of Oriented R-CNN, with the 3090 Ti training wall and the MMRotate latency next to it.
-
ONNX export in oriented-det — inference without PyTorch
oriented-det v0.3 ships pre-NMS ONNX export for Rotated FCOS, Oriented R-CNN, and Faster R-CNN. Consumers run ONNX Runtime + numpy + Pillow. Fixed 1024 canvas; keep_ratio and sliding windows stay out of graph.
-
Deploy oriented-det in Docker — Tile Geo Process, GeoJSON out
oriented-det v0.3 ships a Sanic Tile Geo Process example: bake a DOTA checkpoint into an NVIDIA CUDA image, POST a base64 tile, get oriented GeoJSON. PyTorch stays in the container. ONNX export is the thinner infer path.
-
HRSID in oriented-det — the larger SAR ship benchmark at 78.55%
Native HRSID loader in oriented-det v0.3: COCO polygons to le90, keep-ratio 800, Faster R-CNN 1× from DOTA Hub at 78.55% held-out rotated mAP50.
-
SSDD in oriented-det — optical DOTA to SAR ships in twelve epochs
Native SSDD SAR ship loader in oriented-det v0.3: keep-ratio 608, finetune DOTA Faster R-CNN 1×, held-out last-digit test 90.34% mAP50. No SSDD Hub zoo.
-
FAIR1M in oriented-det — 37 classes, and why 36.70% is not a failed train
Native FAIR1M support in oriented-det v0.3: convert + tile, finetune DOTA 1× Faster R-CNN, tiled-val 36.70% mAP50. The bottleneck is class ID, not boxes. No Hub zoo — CC BY-NC-SA dump.
-
Oriented-Det v0.3.1 — four datasets, ONNX, and RetinaNet OBB
Oriented-det v0.3.1 is on PyPI — native HRSC2016, FAIR1M, SSDD, and HRSID loaders, HRSC Hub 3× zoo, DOTA advertised from 1×, RetinaNet Hub OBB, and ONNX export.
-
Lessons learned on DOTA: official Task 1, leaky val, and the last mile
What I would keep from four months on DOTA: the official Task 1 number, MMRotate as a neighbour in the same band, and a better box loss when ships are still a few degrees off.
-
HRSC2016 in oriented-det — recipes, trains, and a held-out 90.41%
Native HRSC2016 ship detection in oriented-det: ImageSets trainval in, held-out test out, three 3× Hub weights. Oriented R-CNN 90.41%, Faster R-CNN 88.77%, FCOS 88.34% mAP50 on NVIDIA L4.
-
Apache 2.0 covers oriented-det. It does not cover DOTA or HRSC.
The oriented-det framework is Apache 2.0. DOTA and HRSC are research datasets with no commercial grant. Production detectors are trained on your own licensed imagery — this is not legal advice.
-
A static demo of three oriented detectors on optical satellite imagery
A browser demo of Oriented-Det’s three 3× DOTA checkpoints — Oriented R-CNN, Rotated Faster R-CNN, and Rotated FCOS — on six optical satellite scenes, with a side by side comparison that lands in parity with state of the art frameworks.
-
Rotated FCOS vs Oriented R-CNN on macOS
Hands-on Apple Silicon comparison of Hub 1× DOTA checkpoints — Rotated FCOS (73.07% official Task 1) vs Oriented R-CNN (76.73%) — MPS latency, 1× training wall on NVIDIA L4, score thresholds, and side-by-side detections.
-
Oriented-Det v0.2.0 — Rotated FCOS, decoded rIoU, and a four-family zoo
Oriented-det v0.2.0 is on PyPI — Rotated FCOS joins the zoo as the balanced one-stage detector, with a decoded rIoU 1× Hub checkpoint at 73.07% official DOTA Task 1, and the same Apache 2.0 stack.
-
Oriented-Det v0.1.1 — ProbIoU, MMRotate parity, and the updated zoo
Oriented-det v0.1.1 is on PyPI — ProbIoU ROI regression, MMRotate-aligned training fixes, a DOTA le90 zoo on official Task 1 led by Oriented R-CNN 1× at 76.73%, and a hands-on harbor-scene demo of the Faster R-CNN throughput pick.
-
Rotated Faster R-CNN on DOTA without custom CUDA: sampled rIoU, ProbIoU, and a 74.42% Task 1 checkpoint
Why OrientedDet avoids MMRotate's exact CUDA IoU kernels, how ProbIoU trains oriented boxes in pure PyTorch, and why the 1× Rotated Faster R-CNN Hub weight beats MMRotate on official DOTA Task 1.