Published eval-val reports¶
Frozen make eval-val metrics for published Hub slugs (and a few historical local baselines). DOTA le90: full val split (7,669 tiles, filter_empty_gt=false). HRSC2016: ImageSets test (453 images, whole-image keep_ratio). Score ≥ 0.05, final NMS IoU 0.1 via evaluation.final_nms_iou_threshold (MMRotate test parity; deploy recipes ship production NMS 0.3), 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).
| File | In git | Purpose |
|---|---|---|
model_analysis.md |
yes | Human-readable report (mAP50, per-class AP, GT alignment / mean best IoU, confusion matrix) |
analysis_iou0.50.json |
yes | Structured metrics (make metrics); includes gt_alignment_metrics |
pr_curve.png, threshold_metrics.png |
yes | Evaluation plots (when present) |
predictions.json |
no | Raw detections — too large for GitHub; keep under gitignored predictions/ locally |
Slug index¶
| Hub slug | eval-val mAP50 | Local predictions.json (viewer) |
|---|---|---|
oriented_rcnn_dota_le90_3x |
79.40% | predictions/20260627_082942/ |
rotated_faster_rcnn_dota_le90_3x |
83.46% | predictions/20260903_004825/ |
rotated_retinanet_dota_le90_3x |
71.52% | predictions/20260615_005855/ |
rotated_fcos_dota_le90_3x |
82.32% | predictions/20260901_053115/ |
oriented_rcnn_hrsc2016_le90_3x |
90.41% | predictions/20260831_011151/ |
rotated_faster_rcnn_hrsc2016_le90_3x |
88.77% | predictions/20260831_050947/ |
rotated_fcos_hrsc2016_le90_3x |
88.34% | predictions/20260831_033939/ |
Historical reports (not on Hub): oriented_rcnn_dota_le90_1x 74.79%, rotated_faster_rcnn_dota_le90_1x 77.57%, rotated_faster_rcnn_dota_le90_3x_ce 75.58%, rotated_retinanet_dota_le90_1x 64.14%, rotated_fcos_dota_le90_3x_kfiou_aux 77.18%, rotated_fcos_dota_le90_3x_l1 73.92% (local L1 baseline).
Viewer (needs predictions.json in the directory you pass):
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_report → docs/eval-reports/<slug>/model_analysis.md.