Detector / scripts /summarize_results.py
Benxelua's picture
Add reproducible six-run detector-domain training package
4409fdb verified
Raw History Blame Contribute Delete
946 Bytes
#!/usr/bin/env python3
from __future__ import annotations
import argparse,csv,json
from pathlib import Path
def main():
p=argparse.ArgumentParser(); p.add_argument("--outputs",type=Path,required=True); p.add_argument("--csv",type=Path,required=True); a=p.parse_args()
rows=[]
for family in ("rtdetr","fasterrcnn","ssdlite"):
for domain in ("D_B","D_L"):
root=a.outputs/family/domain; test=root/"test_metrics.json"; meta=root/"run_metadata.json"
if test.exists() and meta.exists():
metrics=json.loads(test.read_text()); m=json.loads(meta.read_text()); rows.append({"detector":family,"training_domain":domain,"params":m["params"],**{f"{k}_{s}":v for k,x in metrics.items() for s,v in x.items()}})
fields=sorted({k for r in rows for k in r}); a.csv.parent.mkdir(parents=True,exist_ok=True)
with a.csv.open("w",newline="") as f: w=csv.DictWriter(f,fieldnames=fields);w.writeheader();w.writerows(rows)
if __name__=="__main__":main()