SensorflowStudio / sensorflow /cli /auto_label.py
whassan's picture
Deploy Sensorflow Studio
729628a verified
Raw History Blame Contribute Delete
1.08 kB
#!/usr/bin/env python3
"""Run SAM-based 3D auto-labeling on a fused sequence."""
import argparse
from pathlib import Path
from sensorflow.perception_automator import PerceptionAutomator
from sensorflow.schemas.unified_frame import UnifiedSequence
def main():
parser = argparse.ArgumentParser(description="3D auto-labeling with SAM")
parser.add_argument("--manifest", required=True)
parser.add_argument("--sam-checkpoint", default="models/sam_vit_b.pth")
parser.add_argument("--device", default="cpu")
parser.add_argument("--no-sam", action="store_true")
args = parser.parse_args()
manifest_path = Path(args.manifest)
sequence = UnifiedSequence.load(manifest_path)
output_dir = manifest_path.parent / "proposals"
automator = PerceptionAutomator(
sam_checkpoint=args.sam_checkpoint,
device=args.device,
use_sam=not args.no_sam,
)
proposals = automator.run_sequence(sequence, output_dir)
print(f"Generated proposals for {len(proposals)} frames -> {output_dir}")
if __name__ == "__main__":
main()