Published eval-val reports (DOTA le90)

July 11, 2026 · View on GitHub

Frozen make eval-val metrics for each Hub pretrained slug: full val split (7,669 tiles, filter_empty_gt=false), score ≥ 0.05, production decode, mAP matching IoU 0.50.

Each subdirectory is named after the manifest slug and is tracked in git (reports and analysis only — no predictions.json; see below).

FileIn gitPurpose
model_analysis.mdyesHuman-readable report (mAP50, per-class AP, GT alignment / mean best IoU, confusion matrix)
analysis_iou0.50.jsonyesStructured metrics (make metrics); includes gt_alignment_metrics
pr_curve.png, threshold_metrics.pngyesEvaluation plots (when present)
predictions.jsonnoRaw detections — too large for GitHub; keep under gitignored predictions/ locally

Slug index

Hub slugeval-val mAP50Local predictions.json (viewer)
oriented_rcnn_dota_le90_3x79.40%predictions/20260627_082942/
oriented_rcnn_dota_le90_1x74.79%predictions/20260618_140030/
rotated_faster_rcnn_dota_le90_1x77.57%predictions/20260710_044125/
rotated_faster_rcnn_dota_le90_3x83.42%predictions/20260705_055252/
rotated_faster_rcnn_dota_le90_3x_ce75.58%regenerate (see below)
rotated_retinanet_dota_le90_3x71.52%predictions/20260615_005855/
rotated_retinanet_dota_le90_1x64.14%regenerate (see below)

Viewer (needs predictions.json in the directory you pass):

make viewer VIEWER_PRED_DIR=predictions/20260627_082942 DOTA_DATA_ROOT=/path/to/DOTA-v1.0-tiled

Checkpoints and training logs live under runs/<model>/<timestamp>/, not prediction JSON.

Publish reports after eval-val

Run inference into gitignored predictions/, then copy lightweight artifacts into docs/eval-reports/<slug>/:

EXPERIMENT=runs/oriented_rcnn/20260621-092802
SLUG=oriented_rcnn_dota_le90_3x
SCRATCH=predictions/$(date +%Y%m%d_%H%M%S)

odet preds --experiment-dir "$EXPERIMENT" --output-dir "$SCRATCH" --no-diagnostics
odet preds --metrics-from-json "$SCRATCH"

DEST=docs/eval-reports/$SLUG
mkdir -p "$DEST"
cp "$SCRATCH"/analysis_iou0.50.json "$SCRATCH"/pr_curve.png "$SCRATCH"/threshold_metrics.png "$DEST/" 2>/dev/null || true
cp "$SCRATCH"/model_analysis_*.md "$DEST/model_analysis.md"
# Leave predictions.json in $SCRATCH only (gitignored)

Update oriented_det/pretrained/manifest.json eval_reportdocs/eval-reports/<slug>/model_analysis.md.