← all repositories
Shank2358/GGHL

Rotated boxes without the anchor headache

A PyTorch detector that assigns arbitrary-oriented objects via Gaussian heatmaps instead of hand-tuned anchors.

GGHL
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

GGHL detects objects at any rotation angle—think satellite imagery, aerial photos, or skewed warehouse shelves—using a CenterNet-style backbone. It replaces the usual anchor-and-angle-heuristic pipeline with a Gaussian heatmap that naturally handles label assignment for oriented bounding boxes. The repo includes training and testing scripts, pretrained weights for DOTA variants and SKU, and a label conversion tool for the DOTA dataset format.

The interesting bit

The core trick is encoding rotated boxes as Gaussian heatmaps so the network learns orientation implicitly during label assignment, rather than explicitly predicting angles with custom loss hacks. There’s also a TensorRT/Jetson deployment fork maintained by a collaborator, which suggests the authors actually want this used outside a Jupyter notebook.

Key highlights

  • Anchor-free, single-stage detector built on CenterNet/FCOS-R lineage
  • Supports DOTA v1.0, v1.5, v2.0 and SKU datasets out of the box
  • Pretrained weights available via Google Drive and Baidu Disk
  • Distributed training supported (PyTorch ≥1.11)
  • Deployment versions exist for TensorRT C++ and Nvidia Jetson edge devices
  • Published in IEEE TIP (2022), not just an arXiv preprint

Caveats

  • Label formatting is finicky: you must convert DOTA’s polygon format to a custom train.txt with explicit angle and area-ratio fields
  • Poly NMS defaults to a slower shapely/numpy implementation; the faster C++ version requires manual SWIG compilation
  • OpenCV ≥4.5.3 is mandatory, and the author notes multi-scale training bugs with torch ≥1.7 (fixed in 1.11)
  • README is a mix of Chinese and English with scattered formatting; the “pretend there’s a table” weights section is charmingly blunt

Verdict

Worth a look if you’re doing remote-sensing or oriented object detection and want to escape anchor-tuning purgatory. Skip if you need a polished, batteries-included framework like MMRotate—the author themselves admits they’re learning MMRotate for a future rewrite.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.