Dataset layout (bundled with this repository)
dataset/
├── train/images/ # SAHI-tiled training images (1024×1024)
├── train/labels/ # YOLO-OBB labels
├── train/labelTxt/ # DOTA format (MMRotate)
├── val/images/
├── val/labels/
├── val/labelTxt/
├── dataset.yaml # Ultralytics config (path: .)
├── gt_coco_filtered.json # COCO-OBB GT for unified eval
├── hrsc2016_source_test_gt.json
├── dota_test/ # DOTA 2.0 ships-only test images (cross-dataset eval)
├── hrsc2016/ # HRSC2016 images + Annotations/ (zero-shot eval)
└── pipeline/ # Scripts to rebuild from raw DOTA (optional)
All code defaults to REPO_ROOT/dataset/ — no cluster paths required.
If rebuilding from raw DOTA instead of using the bundled tiles:
python dataset/pipeline/filter_dataset_v2.py
python dataset/pipeline/build_dataset_v2.py
python dataset/pipeline/build_gt_coco.py