Buckets:
| import argparse | |
| from pathlib import Path | |
| import numpy as np | |
| from real2sim.reconstruction import MapAnythingReconstructor, sample_video | |
| def main(argv=None): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("video", type=Path) | |
| parser.add_argument("--output", type=Path, default=Path("outputs/mapanything")) | |
| parser.add_argument("--stride", type=int, default=15) | |
| parser.add_argument("--max-frames", type=int, default=16) | |
| parser.add_argument("--start", type=int, default=0) | |
| parser.add_argument("--device", default="cuda") | |
| parser.add_argument("--model", default="facebook/map-anything-apache") | |
| parser.add_argument( | |
| "--intrinsics", type=Path, help="Original video K as a 3x3 .npy file" | |
| ) | |
| parser.add_argument("--minibatch-size", type=int, default=1) | |
| parser.add_argument("--point-stride", type=int, default=4) | |
| parser.add_argument("--preview", action="store_true") | |
| args = parser.parse_args(argv) | |
| if args.point_stride < 1 or args.minibatch_size < 1: | |
| parser.error("point-stride and minibatch-size must be positive") | |
| if args.output.exists() and any(args.output.iterdir()): | |
| parser.error("Output directory must be empty; choose a new --output") | |
| frames, indices, timestamps = sample_video( | |
| args.video, args.stride, args.max_frames, args.start | |
| ) | |
| print(f"Reconstructing {len(frames)} views: frames {indices.tolist()}", flush=True) | |
| model = MapAnythingReconstructor(args.model, args.device) | |
| result = model.reconstruct( | |
| frames, | |
| indices, | |
| timestamps, | |
| intrinsics=np.load(args.intrinsics) if args.intrinsics else None, | |
| minibatch_size=args.minibatch_size, | |
| ) | |
| result.save(args.output, args.point_stride) | |
| if args.preview: | |
| from real2sim.reconstruction.preview import export_preview | |
| export_preview(result, args.output) | |
| print(f"Saved geometry and cameras to {args.output}") | |
| if __name__ == "__main__": | |
| main() | |
Xet Storage Details
- Size:
- 1.98 kB
- Xet hash:
- 0108440f9bdf628f38036a6b118d8c5fa8458dba4bb06f64a0eb8d5de3c5c9a6
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.