| |
| """Convert a source dataset into the unified clip format (mapgs.data.unified). |
| |
| # synthetic (runnable anywhere; verifies the pipeline) |
| python scripts/convert.py --source synthetic --out data/unified/synth --split train --n 64 |
| |
| # real data (needs the devkits + data) |
| python scripts/convert.py --source waymo --data /data/waymo_v2 --out data/unified/waymo --split train |
| python scripts/convert.py --source av2 --data /data/av2_sensor --out data/unified/av2 --split train |
| |
| Then train jointly on the mix: |
| python scripts/train.py --config configs/base.yaml \\ |
| --override data.name=unified data.root=data/unified/waymo,data/unified/av2 |
| """ |
|
|
| import argparse |
|
|
| from mapgs.config import load_config |
| from mapgs.data.convert import convert_synthetic, convert_waymo, convert_argoverse2 |
|
|
|
|
| def main(): |
| ap = argparse.ArgumentParser() |
| ap.add_argument("--source", required=True, choices=["synthetic", "waymo", "av2", "argoverse2"]) |
| ap.add_argument("--config", default="configs/base.yaml") |
| ap.add_argument("--override", nargs="*", default=[]) |
| ap.add_argument("--data", default=None, help="source data dir (real datasets)") |
| ap.add_argument("--out", required=True, help="unified output root") |
| ap.add_argument("--split", default="train") |
| ap.add_argument("--n", type=int, default=64, help="synthetic: number of clips") |
| ap.add_argument("--max", type=int, default=None, help="real: max segments/logs") |
| args = ap.parse_args() |
|
|
| cfg = load_config(args.config, args.override) |
| if args.source == "synthetic": |
| out = convert_synthetic(cfg, args.out, args.split, n_clips=args.n, device=cfg.device) |
| elif args.source == "waymo": |
| out = convert_waymo(args.data, args.out, cfg, args.split, max_segments=args.max) |
| else: |
| out = convert_argoverse2(args.data, args.out, cfg, args.split, max_logs=args.max) |
| print(f"wrote unified clips to {out}") |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|