File size: 1,568 Bytes
729628a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f1c3ff2
 
 
729628a
 
 
 
 
f1c3ff2
 
 
 
 
 
 
 
 
 
 
729628a
f1c3ff2
 
729628a
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python3
"""Ingest and fuse multi-vendor sensor data."""

import argparse
import json
from pathlib import Path

from sensorflow.dataset_fusion_engine import DatasetFusionEngine


def main():
    parser = argparse.ArgumentParser(description="Ingest and fuse sensor data")
    parser.add_argument("--vendors", nargs="+", default=["alpamayo", "waymo"])
    parser.add_argument("--sequence-id", default="seq_001")
    parser.add_argument("--alpamayo-source", default=None)
    parser.add_argument("--waymo-source", default=None)
    parser.add_argument("--a2d2-source", default=None)
    parser.add_argument("--source-path", default=None, help="Local image folder or video for vendor=local")
    parser.add_argument("--max-frames", type=int, default=None, help="Cap for local ingest (default 10000)")
    args = parser.parse_args()

    engine = DatasetFusionEngine()
    alp_src = json.loads(args.alpamayo_source) if args.alpamayo_source else None
    way_src = json.loads(args.waymo_source) if args.waymo_source else None
    a2d2_src = json.loads(args.a2d2_source) if args.a2d2_source else None

    sequence = engine.ingest(
        args.vendors,
        args.sequence_id,
        alp_src,
        way_src,
        a2d2_src,
        source_path=args.source_path,
        max_frames=args.max_frames,
    )
    manifest_path = engine.save_manifest(sequence)
    stub = "demo stub: " if sequence.taxonomy_manifest.get("demo_stub") else ""
    print(f"Ingested {stub}{len(sequence.frames)} frames -> {manifest_path}")


if __name__ == "__main__":
    main()