mapvggt / scripts /convert.py
ChenmingWu's picture
Upload folder using huggingface_hub
8cf92b3 verified
Raw
History Blame Contribute Delete
1.98 kB
#!/usr/bin/env python3
"""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()