twanghcmut/ego-real2sim / basic_pick_place /code /examples /reconstruct_mapanything.py
twanghcmut's picture
download
raw
1.98 kB
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.