From 7efebaba5a20897cf0a980f1d08b5ed95653bf4f Mon Sep 17 00:00:00 2001 From: Atakan Topaloglu Date: Tue, 18 Mar 2025 15:06:47 +0300 Subject: [PATCH] npz reader works, reconstruction fails, alignment wo overlapping camera poses --- .gitignore | 2 +- cli_demo.py | 336 ++++++++++++++ deneme.txt | 259 +++++++++++ deneme2.txt | 1118 ++++++++++++++++++++++++++++++++++++++++++++++ merged_scene.glb | Bin 0 -> 226252 bytes npz_reader.py | 229 ++++++++++ reconstruct.py | 269 +++++++++++ 7 files changed, 2212 insertions(+), 1 deletion(-) create mode 100644 cli_demo.py create mode 100644 deneme.txt create mode 100644 deneme2.txt create mode 100644 merged_scene.glb create mode 100644 npz_reader.py create mode 100644 reconstruct.py diff --git a/.gitignore b/.gitignore index 6677453..11c3ff3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ __pycache__/ **/__pycache__/ *.py[cod] *$py.class - +input_images* # C extensions *.so diff --git a/cli_demo.py b/cli_demo.py new file mode 100644 index 0000000..33aaf8f --- /dev/null +++ b/cli_demo.py @@ -0,0 +1,336 @@ +#!/usr/bin/env python +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import os +import cv2 +import torch +import numpy as np +import sys +import shutil +from datetime import datetime +import glob +import gc +import time +import argparse + +sys.path.append("vggt/") + +from visual_util import predictions_to_glb +from vggt.models.vggt import VGGT +from vggt.utils.load_fn import load_and_preprocess_images +from vggt.utils.pose_enc import pose_encoding_to_extri_intri +from vggt.utils.geometry import unproject_depth_map_to_point_map + +device = "cuda" if torch.cuda.is_available() else "cpu" + +print("Initializing and loading VGGT model...") +model = VGGT.from_pretrained("facebook/VGGT-1B") # alternative loading method + +# model = VGGT() +# _URL = "https://huggingface.co/facebook/VGGT-1B/resolve/main/model.pt" +# model.load_state_dict(torch.hub.load_state_dict_from_url(_URL)) + +model.eval() +model = model.to(device) + + +# ------------------------------------------------------------------------- +# 1) Core model inference +# ------------------------------------------------------------------------- +def run_model(target_dir, model) -> dict: + """ + Run the VGGT model on images in the 'target_dir/images' folder and return predictions. + """ + print(f"Processing images from {target_dir}") + + # Device check + device = "cuda" if torch.cuda.is_available() else "cpu" + if not torch.cuda.is_available(): + raise ValueError("CUDA is not available. Check your environment.") + + # Move model to device + model = model.to(device) + model.eval() + + # Load and preprocess images + image_names = glob.glob(os.path.join(target_dir, "images", "*")) + image_names = sorted(image_names) + print(f"Found {len(image_names)} images") + if len(image_names) == 0: + raise ValueError("No images found. Check your input.") + + images = load_and_preprocess_images(image_names).to(device) + print(f"Preprocessed images shape: {images.shape}") + + # Run inference + print("Running inference...") + with torch.no_grad(): + with torch.cuda.amp.autocast(dtype=torch.bfloat16): + predictions = model(images) + + # Convert pose encoding to extrinsic and intrinsic matrices + print("Converting pose encoding to extrinsic and intrinsic matrices...") + extrinsic, intrinsic = pose_encoding_to_extri_intri(predictions["pose_enc"], images.shape[-2:]) + print(f"extrinsic.shape {extrinsic.shape} \n") + print(f"extrinsic {extrinsic}") + print(f"extrinsic.shape {intrinsic.shape} \n") + print(f"intrinsic {intrinsic}") + predictions["extrinsic"] = extrinsic + predictions["intrinsic"] = intrinsic + + # Convert tensors to numpy arrays + for key in predictions.keys(): + if isinstance(predictions[key], torch.Tensor): + predictions[key] = predictions[key].cpu().numpy().squeeze(0) # remove batch dimension + + # Generate world points from depth map + print("Computing world points from depth map...") + depth_map = predictions["depth"] # (S, H, W, 1) + world_points = unproject_depth_map_to_point_map(depth_map, predictions["extrinsic"], predictions["intrinsic"]) + print(world_points.shape) + print(world_points) + predictions["world_points_from_depth"] = world_points + + # Clean up + torch.cuda.empty_cache() + print(f"predictions are: {predictions}") + return predictions + + +# ------------------------------------------------------------------------- +# 2) Handle uploaded video/images --> produce target_dir + images folder +# ------------------------------------------------------------------------- +def handle_uploads(input_video, input_images): + """ + Create a new folder (target_dir/images) and copy user-provided images or extract frames from video. + Returns (target_dir, list of image paths). + """ + start_time = time.time() + gc.collect() + torch.cuda.empty_cache() + + # Create a unique folder name + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") + target_dir = f"input_images_{timestamp}" + target_dir_images = os.path.join(target_dir, "images") + + # Clean up if folder already exists (unlikely) + if os.path.exists(target_dir): + shutil.rmtree(target_dir) + os.makedirs(target_dir) + os.makedirs(target_dir_images) + + image_paths = [] + + # --- Handle images --- + if input_images is not None: + for file_path in input_images: + dst_path = os.path.join(target_dir_images, os.path.basename(file_path)) + shutil.copy(file_path, dst_path) + image_paths.append(dst_path) + + # --- Handle video --- + if input_video is not None: + video_path = input_video + vs = cv2.VideoCapture(video_path) + fps = vs.get(cv2.CAP_PROP_FPS) + frame_interval = int(fps * 1) # extract 1 frame per second + + count = 0 + video_frame_num = 0 + while True: + gotit, frame = vs.read() + if not gotit: + break + count += 1 + if count % frame_interval == 0: + image_path = os.path.join(target_dir_images, f"{video_frame_num:06}.png") + cv2.imwrite(image_path, frame) + image_paths.append(image_path) + video_frame_num += 1 + + # Sort images + image_paths = sorted(image_paths) + + end_time = time.time() + print(f"Files copied to {target_dir_images}; took {end_time - start_time:.3f} seconds") + return target_dir, image_paths + + +# ------------------------------------------------------------------------- +# 3) Reconstruction: performs the 3D reconstruction and saves the GLB file +# ------------------------------------------------------------------------- +def gradio_demo( + target_dir, + conf_thres=3.0, + frame_filter="All", + mask_black_bg=False, + mask_white_bg=False, + show_cam=True, + mask_sky=False, + prediction_mode="Pointmap Regression", +): + """ + Perform reconstruction using the images in target_dir/images. + Returns the path to the GLB file and a log message. + """ + if not os.path.isdir(target_dir) or target_dir == "None": + return None, "No valid target directory found. Please provide valid input." + + start_time = time.time() + gc.collect() + torch.cuda.empty_cache() + + # Get list of image files in target directory + target_dir_images = os.path.join(target_dir, "images") + all_files = sorted(os.listdir(target_dir_images)) if os.path.isdir(target_dir_images) else [] + frame_filter_choices = ["All"] + [f"{i}: {filename}" for i, filename in enumerate(all_files)] + + print("Running run_model...") + with torch.no_grad(): + predictions = run_model(target_dir, model) + + # Save predictions to disk + prediction_save_path = os.path.join(target_dir, "predictions.npz") + np.savez(prediction_save_path, **predictions) + + if frame_filter is None: + frame_filter = "All" + + # Build a GLB file name + glbfile = os.path.join( + target_dir, + f"glbscene_{conf_thres}{frame_filter.replace('.', '').replace(':', '').replace(' ', '')}" + f"maskb{mask_black_bg}maskw{mask_white_bg}_cam{show_cam}_sky{mask_sky}_pred{prediction_mode.replace(' ', '')}.glb", + ) + + # Convert predictions to GLB + glbscene = predictions_to_glb( + predictions, + conf_thres=conf_thres, + filter_by_frames=frame_filter, + mask_black_bg=mask_black_bg, + mask_white_bg=mask_white_bg, + show_cam=show_cam, + mask_sky=mask_sky, + target_dir=target_dir, + prediction_mode=prediction_mode, + ) + glbscene.export(file_obj=glbfile) + + # Cleanup + del predictions + gc.collect() + torch.cuda.empty_cache() + + end_time = time.time() + print(f"Total time: {end_time - start_time:.2f} seconds") + log_msg = f"Reconstruction successful. Processed {len(all_files)} frames." + + return glbfile, log_msg + + +# ------------------------------------------------------------------------- +# 4) Main function to run from command line +# ------------------------------------------------------------------------- +def main(): + parser = argparse.ArgumentParser( + description="VGGT 3D Reconstruction from images/video (command-line mode)" + ) + parser.add_argument("--video", type=str, default=None, help="Path to input video file.") + parser.add_argument( + "--images", + type=str, + nargs="*", + default=None, + help="Paths to one or more input image files.", + ) + parser.add_argument( + "--image_dir", + type=str, + default=None, + help="Path to a directory containing input images.", + ) + parser.add_argument( + "--conf_thres", + type=float, + default=50.0, + help="Confidence threshold percentage (default: 50.0).", + ) + parser.add_argument( + "--mask_black_bg", + action="store_true", + help="Filter black background points (flag; default: False).", + ) + parser.add_argument( + "--mask_white_bg", + action="store_true", + help="Filter white background points (flag; default: False).", + ) + parser.add_argument( + "--show_cam", + action="store_true", + help="Include camera visualization (flag; default: False).", + ) + parser.add_argument( + "--mask_sky", + action="store_true", + help="Filter sky points (flag; default: False).", + ) + parser.add_argument( + "--prediction_mode", + type=str, + choices=["Depthmap and Camera Branch", "Pointmap Branch"], + default="Depthmap and Camera Branch", + help="Prediction mode to use.", + ) + args = parser.parse_args() + + # Ensure that at least one type of input is provided. + if args.video is None and args.image_dir is None and (args.images is None or len(args.images) == 0): + parser.error("You must provide at least a video file, an image directory, or one or more image files.") + + # If an image directory is provided, use it to build a list of image files. + image_list = None + if args.image_dir is not None: + image_list = [] + # Look for common image file types. + for ext in (".png", ".jpg", ".jpeg", ".bmp"): + image_list.extend(glob.glob(os.path.join(args.image_dir, f"*{ext}"))) + image_list = sorted(image_list) + if not image_list: + parser.error(f"No image files found in directory: {args.image_dir}") + elif args.images is not None and len(args.images) > 0: + image_list = args.images + + # Process inputs: copy images / extract frames from video + target_dir, image_paths = handle_uploads(args.video, image_list) + print("Images for reconstruction:") + for ipath in image_paths: + print(" ", ipath) + + # For command-line, we simply use "All" for frame filtering. + frame_filter = "All" + + # Run reconstruction + glbfile, log_msg = gradio_demo( + target_dir, + conf_thres=args.conf_thres, + frame_filter=frame_filter, + mask_black_bg=args.mask_black_bg, + mask_white_bg=args.mask_white_bg, + show_cam=args.show_cam, + mask_sky=args.mask_sky, + prediction_mode=args.prediction_mode, + ) + + print(log_msg) + print("Output GLB file saved at:", glbfile) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/deneme.txt b/deneme.txt new file mode 100644 index 0000000..fa84cdb --- /dev/null +++ b/deneme.txt @@ -0,0 +1,259 @@ +Initializing and loading VGGT model... +Initializing and loading VGGT model... +Files copied to input_images_20250318_113826_158596/images; took 0.213 seconds +Images for reconstruction: + input_images_20250318_113826_158596/images/sandalye1.jpg + input_images_20250318_113826_158596/images/sandalye2.jpg + input_images_20250318_113826_158596/images/sandalye3.jpg + input_images_20250318_113826_158596/images/sandalye4.jpg +Running run_model... +Processing images from input_images_20250318_113826_158596 +Found 4 images +Preprocessed images shape: torch.Size([4, 3, 518, 518]) +Running inference... +Converting pose encoding to extrinsic and intrinsic matrices... +extrinsic.shape torch.Size([1, 4, 3, 4]) + +extrinsic tensor([[[[ 1.0000e+00, 3.9872e-05, 2.8053e-04, -3.3790e-05], + [-3.9849e-05, 1.0000e+00, -8.0769e-05, 1.1223e-05], + [-2.8053e-04, 8.0758e-05, 1.0000e+00, -1.1633e-04]], + + [[ 8.7897e-01, -1.3935e-01, 4.5607e-01, -4.3532e-01], + [ 1.3684e-01, 9.8984e-01, 3.8704e-02, -2.3849e-02], + [-4.5683e-01, 2.8389e-02, 8.8910e-01, 1.1196e-01]], + + [[ 5.4024e-01, 2.4198e-01, -8.0597e-01, 7.7377e-01], + [-2.4684e-01, 9.6120e-01, 1.2313e-01, -1.2373e-01], + [ 8.0450e-01, 1.3242e-01, 5.7901e-01, 4.3251e-01]], + + [[-8.7065e-01, 1.3212e-01, -4.7383e-01, 4.1820e-01], + [-1.6372e-01, 8.3051e-01, 5.3240e-01, -5.3343e-01], + [ 4.6386e-01, 5.4111e-01, -7.0145e-01, 1.6244e+00]]]], + device='cuda:0') +extrinsic.shape torch.Size([1, 4, 3, 3]) + +intrinsic tensor([[[[635.5547, 0.0000, 259.0000], + [ 0.0000, 632.4077, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[673.3128, 0.0000, 259.0000], + [ 0.0000, 668.9824, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[647.9485, 0.0000, 259.0000], + [ 0.0000, 645.5082, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[657.2827, 0.0000, 259.0000], + [ 0.0000, 654.9764, 259.0000], + [ 0.0000, 0.0000, 1.0000]]]], device='cuda:0') +Computing world points from depth map... +(4, 518, 518, 3) +[[[[-0.32635777 -0.3277628 0.80045778] + [-0.32256861 -0.32521258 0.79423084] + [-0.32393473 -0.32785957 0.80069504] + ... + [ 0.3017545 -0.30691559 0.74978018] + [ 0.29972646 -0.30366574 0.74184234] + [ 0.29839372 -0.30114284 0.73568019]] + + [[-0.31818604 -0.31832302 0.78041975] + [-0.3173857 -0.31875226 0.78147245] + [-0.31967265 -0.32229703 0.79016251] + ... + [ 0.30374933 -0.30775166 0.75473664] + [ 0.30392252 -0.3067282 0.75222743] + [ 0.29965597 -0.30124899 0.73879209]] + + [[-0.31972387 -0.3186213 0.78419041] + [-0.32490816 -0.32504109 0.79998947] + [-0.32480285 -0.32619915 0.80283983] + ... + [ 0.30304874 -0.30585151 0.75299595] + [ 0.30336437 -0.30497799 0.75084603] + [ 0.2993832 -0.29980799 0.73811962]] + + ... + + [[-0.33901007 0.33658178 0.83136156] + [-0.32582639 0.32474639 0.80213335] + [-0.31179238 0.31196827 0.77057688] + ... + [ 0.30756927 0.30935648 0.7642391 ] + [ 0.29614456 0.29670384 0.73298793] + [ 0.27577959 0.27522561 0.67993796]] + + [[-0.34688456 0.34574441 0.85066747] + [-0.35423694 0.35443977 0.87205807] + [-0.33679196 0.33829626 0.83234564] + ... + [ 0.2973025 0.30019644 0.73872963] + [ 0.2851795 0.28683233 0.70584956] + [ 0.26956483 0.27007303 0.66461615]] + + [[-0.34381086 0.34401416 0.84313129] + [-0.34717483 0.34872546 0.85467628] + [-0.34365569 0.34653311 0.84930432] + ... + [ 0.28845039 0.29238992 0.71673515] + [ 0.29376423 0.29661765 0.72709672] + [ 0.29365914 0.29536141 0.72401809]]] + + + [[[-0.27946509 -0.29477718 0.69031692] + [-0.26531197 -0.29030559 0.68010908] + [-0.26449681 -0.29057286 0.68089283] + ... + [ 0.30653217 -0.34329744 0.87838063] + [ 0.30861049 -0.34085725 0.87222004] + [ 0.31028803 -0.33932096 0.86838007]] + + [[-0.2688719 -0.28984225 0.68177667] + [-0.25869788 -0.28679426 0.67483183] + [-0.24405615 -0.28214502 0.6641481 ] + ... + [ 0.30616927 -0.34339063 0.88149869] + [ 0.30734013 -0.34308526 0.8808186 ] + [ 0.31049251 -0.33810836 0.86809097]] + + [[-0.25766528 -0.28472603 0.67272506] + [-0.2610214 -0.28645689 0.67693901] + [-0.25939894 -0.28643477 0.67704571] + ... + [ 0.30660648 -0.34162906 0.87984014] + [ 0.30754778 -0.34185431 0.88052861] + [ 0.31080704 -0.33663796 0.86713213]] + + ... + + [[-0.26050822 0.39260375 0.78422529] + [-0.23273498 0.37591514 0.75874836] + [-0.19342003 0.35200265 0.72174699] + ... + [ 0.3749378 0.27278311 1.05199034] + [ 0.37321451 0.28736655 1.09755724] + [ 0.37564739 0.28077125 1.07865886]] + + [[-0.26893818 0.39936239 0.79274108] + [-0.27326109 0.40263491 0.79886063] + [-0.24693766 0.38678373 0.7747721 ] + ... + [ 0.3755698 0.27180026 1.0451034 ] + [ 0.37722163 0.26900011 1.03775596] + [ 0.38097745 0.25502119 0.99644519]] + + [[-0.23415218 0.37915543 0.75883711] + [-0.25543611 0.39302342 0.78156286] + [-0.244081 0.38648061 0.77219268] + ... + [ 0.38006765 0.25102234 0.97855636] + [ 0.38073792 0.25290644 0.9853092 ] + [ 0.38054548 0.25944408 1.00614963]]] + + + [[[-0.23509424 -0.41133813 1.08391587] + [-0.2495936 -0.40332443 1.06414579] + [-0.24803409 -0.4034823 1.06426301] + ... + [ 0.01272387 -0.23979517 0.54143505] + [ 0.01129287 -0.23923831 0.5401517 ] + [ 0.02229242 -0.24042661 0.54119231]] + + [[-0.25275668 -0.40132411 1.06256198] + [-0.26313683 -0.39544312 1.04792776] + [-0.25849008 -0.39717296 1.05189651] + ... + [ 0.01571067 -0.23917281 0.54219104] + [ 0.01542839 -0.23877725 0.54111911] + [-0.00361067 -0.23577585 0.53654601]] + + [[-0.26319948 -0.39502293 1.05013188] + [-0.2504369 -0.40083964 1.0641572 ] + [-0.25789636 -0.39645873 1.05314673] + ... + [ 0.00777232 -0.23702825 0.54087802] + [ 0.00771979 -0.23666892 0.53985876] + [-0.01090445 -0.23375314 0.53536792]] + + ... + + [[-0.17039119 0.40640899 1.60073241] + [-0.19096508 0.3885153 1.55737619] + [-0.19465709 0.38497204 1.54676109] + ... + [-0.02004279 0.38856792 0.6495685 ] + [ 0.0340838 0.42424778 0.66639606] + [ 0.03972201 0.4278182 0.66690115]] + + [[-0.15641601 0.42065152 1.62900647] + [-0.18368865 0.39695608 1.57258144] + [-0.19292603 0.38866549 1.55122962] + ... + [-0.03154959 0.38239768 0.64596448] + [-0.0069916 0.39855119 0.65292407] + [-0.0308108 0.38258874 0.64367914]] + + [[-0.19888478 0.38662463 1.54783547] + [-0.19650977 0.38824308 1.5489444 ] + [-0.22517428 0.3632996 1.49018289] + ... + [-0.0785455 0.35255071 0.63039331] + [-0.05018382 0.371291 0.63871399] + [-0.04201678 0.37657947 0.64020454]]] + + + [[[ 0.24408485 -0.35839285 1.02185841] + [ 0.22540079 -0.36147691 1.03593353] + [ 0.22383672 -0.36140655 1.03576627] + ... + [-0.33928249 -0.29961887 0.82623133] + [-0.33998192 -0.29910583 0.82418417] + [-0.33834201 -0.29527485 0.80836729]] + + [[ 0.22273443 -0.36127259 1.04010822] + [ 0.21128833 -0.36304563 1.04818302] + [ 0.21446391 -0.36209773 1.04408448] + ... + [-0.33926179 -0.29841579 0.8256513 ] + [-0.33948677 -0.29722773 0.82082631] + [-0.34343427 -0.30132617 0.83782139]] + + [[ 0.2181925 -0.36106792 1.04436677] + [ 0.22282258 -0.35983951 1.03905615] + [ 0.22128324 -0.35976713 1.03887214] + ... + [-0.34051235 -0.29900312 0.83243455] + [-0.34124158 -0.29853749 0.83059836] + [-0.34494142 -0.30232457 0.8462184 ]] + + ... + + [[ 0.71527314 0.81422378 1.12961781] + [ 0.63372771 0.72739113 1.16137676] + [ 0.63649916 0.73292072 1.15831854] + ... + [-0.36567945 1.18487171 0.38276409] + [-0.36379322 1.25170052 0.33228194] + [-0.3619157 1.32145128 0.27955365]] + + [[ 0.75121778 0.85613816 1.11595538] + [ 0.69141656 0.79312866 1.13858521] + [ 0.63250065 0.73083639 1.161045 ] + ... + [-0.36201864 1.24967404 0.33818433] + [-0.36173734 1.29338213 0.30484941] + [-0.36453465 1.29021636 0.30607512]] + + [[ 0.64923229 0.74657437 1.15902805] + [ 0.68824982 0.79207206 1.14100994] + [ 0.63004851 0.73044378 1.163124 ] + ... + [-0.35799937 1.32063673 0.28931232] + [-0.36057686 1.32153301 0.28752395] + [-0.37615691 1.11483374 0.43864225]]]] +Building GLB scene +Using Depthmap and Camera Branch +GLB Scene built +Total time: 2.53 seconds +Reconstruction successful. Processed 4 frames. +Output GLB file saved at: input_images_20250318_113826_158596/glbscene_50.0AllmaskbFalsemaskwFalse_camFalse_skyFalse_predDepthmapandCameraBranch.glb diff --git a/deneme2.txt b/deneme2.txt new file mode 100644 index 0000000..bfe74e6 --- /dev/null +++ b/deneme2.txt @@ -0,0 +1,1118 @@ +Initializing and loading VGGT model... +Files copied to input_images_20250318_115921_809868/images; took 0.218 seconds +Images for reconstruction: + input_images_20250318_115921_809868/images/sandalye1.jpg + input_images_20250318_115921_809868/images/sandalye2.jpg + input_images_20250318_115921_809868/images/sandalye3.jpg + input_images_20250318_115921_809868/images/sandalye4.jpg +Running run_model... +Processing images from input_images_20250318_115921_809868 +Found 4 images +Preprocessed images shape: torch.Size([4, 3, 518, 518]) +Running inference... +Converting pose encoding to extrinsic and intrinsic matrices... +extrinsic.shape torch.Size([1, 4, 3, 4]) + +extrinsic tensor([[[[ 1.0000e+00, 3.9872e-05, 2.8053e-04, -3.3790e-05], + [-3.9849e-05, 1.0000e+00, -8.0769e-05, 1.1223e-05], + [-2.8053e-04, 8.0758e-05, 1.0000e+00, -1.1633e-04]], + + [[ 8.7897e-01, -1.3935e-01, 4.5607e-01, -4.3532e-01], + [ 1.3684e-01, 9.8984e-01, 3.8704e-02, -2.3849e-02], + [-4.5683e-01, 2.8389e-02, 8.8910e-01, 1.1196e-01]], + + [[ 5.4024e-01, 2.4198e-01, -8.0597e-01, 7.7377e-01], + [-2.4684e-01, 9.6120e-01, 1.2313e-01, -1.2373e-01], + [ 8.0450e-01, 1.3242e-01, 5.7901e-01, 4.3251e-01]], + + [[-8.7065e-01, 1.3212e-01, -4.7383e-01, 4.1820e-01], + [-1.6372e-01, 8.3051e-01, 5.3240e-01, -5.3343e-01], + [ 4.6386e-01, 5.4111e-01, -7.0145e-01, 1.6244e+00]]]], + device='cuda:0') +extrinsic.shape torch.Size([1, 4, 3, 3]) + +intrinsic tensor([[[[635.5547, 0.0000, 259.0000], + [ 0.0000, 632.4077, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[673.3128, 0.0000, 259.0000], + [ 0.0000, 668.9824, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[647.9485, 0.0000, 259.0000], + [ 0.0000, 645.5082, 259.0000], + [ 0.0000, 0.0000, 1.0000]], + + [[657.2827, 0.0000, 259.0000], + [ 0.0000, 654.9764, 259.0000], + [ 0.0000, 0.0000, 1.0000]]]], device='cuda:0') +Computing world points from depth map... +(4, 518, 518, 3) +[[[[-0.32635777 -0.3277628 0.80045778] + [-0.32256861 -0.32521258 0.79423084] + [-0.32393473 -0.32785957 0.80069504] + ... + [ 0.3017545 -0.30691559 0.74978018] + [ 0.29972646 -0.30366574 0.74184234] + [ 0.29839372 -0.30114284 0.73568019]] + + [[-0.31818604 -0.31832302 0.78041975] + [-0.3173857 -0.31875226 0.78147245] + [-0.31967265 -0.32229703 0.79016251] + ... + [ 0.30374933 -0.30775166 0.75473664] + [ 0.30392252 -0.3067282 0.75222743] + [ 0.29965597 -0.30124899 0.73879209]] + + [[-0.31972387 -0.3186213 0.78419041] + [-0.32490816 -0.32504109 0.79998947] + [-0.32480285 -0.32619915 0.80283983] + ... + [ 0.30304874 -0.30585151 0.75299595] + [ 0.30336437 -0.30497799 0.75084603] + [ 0.2993832 -0.29980799 0.73811962]] + + ... + + [[-0.33901007 0.33658178 0.83136156] + [-0.32582639 0.32474639 0.80213335] + [-0.31179238 0.31196827 0.77057688] + ... + [ 0.30756927 0.30935648 0.7642391 ] + [ 0.29614456 0.29670384 0.73298793] + [ 0.27577959 0.27522561 0.67993796]] + + [[-0.34688456 0.34574441 0.85066747] + [-0.35423694 0.35443977 0.87205807] + [-0.33679196 0.33829626 0.83234564] + ... + [ 0.2973025 0.30019644 0.73872963] + [ 0.2851795 0.28683233 0.70584956] + [ 0.26956483 0.27007303 0.66461615]] + + [[-0.34381086 0.34401416 0.84313129] + [-0.34717483 0.34872546 0.85467628] + [-0.34365569 0.34653311 0.84930432] + ... + [ 0.28845039 0.29238992 0.71673515] + [ 0.29376423 0.29661765 0.72709672] + [ 0.29365914 0.29536141 0.72401809]]] + + + [[[-0.27946509 -0.29477718 0.69031692] + [-0.26531197 -0.29030559 0.68010908] + [-0.26449681 -0.29057286 0.68089283] + ... + [ 0.30653217 -0.34329744 0.87838063] + [ 0.30861049 -0.34085725 0.87222004] + [ 0.31028803 -0.33932096 0.86838007]] + + [[-0.2688719 -0.28984225 0.68177667] + [-0.25869788 -0.28679426 0.67483183] + [-0.24405615 -0.28214502 0.6641481 ] + ... + [ 0.30616927 -0.34339063 0.88149869] + [ 0.30734013 -0.34308526 0.8808186 ] + [ 0.31049251 -0.33810836 0.86809097]] + + [[-0.25766528 -0.28472603 0.67272506] + [-0.2610214 -0.28645689 0.67693901] + [-0.25939894 -0.28643477 0.67704571] + ... + [ 0.30660648 -0.34162906 0.87984014] + [ 0.30754778 -0.34185431 0.88052861] + [ 0.31080704 -0.33663796 0.86713213]] + + ... + + [[-0.26050822 0.39260375 0.78422529] + [-0.23273498 0.37591514 0.75874836] + [-0.19342003 0.35200265 0.72174699] + ... + [ 0.3749378 0.27278311 1.05199034] + [ 0.37321451 0.28736655 1.09755724] + [ 0.37564739 0.28077125 1.07865886]] + + [[-0.26893818 0.39936239 0.79274108] + [-0.27326109 0.40263491 0.79886063] + [-0.24693766 0.38678373 0.7747721 ] + ... + [ 0.3755698 0.27180026 1.0451034 ] + [ 0.37722163 0.26900011 1.03775596] + [ 0.38097745 0.25502119 0.99644519]] + + [[-0.23415218 0.37915543 0.75883711] + [-0.25543611 0.39302342 0.78156286] + [-0.244081 0.38648061 0.77219268] + ... + [ 0.38006765 0.25102234 0.97855636] + [ 0.38073792 0.25290644 0.9853092 ] + [ 0.38054548 0.25944408 1.00614963]]] + + + [[[-0.23509424 -0.41133813 1.08391587] + [-0.2495936 -0.40332443 1.06414579] + [-0.24803409 -0.4034823 1.06426301] + ... + [ 0.01272387 -0.23979517 0.54143505] + [ 0.01129287 -0.23923831 0.5401517 ] + [ 0.02229242 -0.24042661 0.54119231]] + + [[-0.25275668 -0.40132411 1.06256198] + [-0.26313683 -0.39544312 1.04792776] + [-0.25849008 -0.39717296 1.05189651] + ... + [ 0.01571067 -0.23917281 0.54219104] + [ 0.01542839 -0.23877725 0.54111911] + [-0.00361067 -0.23577585 0.53654601]] + + [[-0.26319948 -0.39502293 1.05013188] + [-0.2504369 -0.40083964 1.0641572 ] + [-0.25789636 -0.39645873 1.05314673] + ... + [ 0.00777232 -0.23702825 0.54087802] + [ 0.00771979 -0.23666892 0.53985876] + [-0.01090445 -0.23375314 0.53536792]] + + ... + + [[-0.17039119 0.40640899 1.60073241] + [-0.19096508 0.3885153 1.55737619] + [-0.19465709 0.38497204 1.54676109] + ... + [-0.02004279 0.38856792 0.6495685 ] + [ 0.0340838 0.42424778 0.66639606] + [ 0.03972201 0.4278182 0.66690115]] + + [[-0.15641601 0.42065152 1.62900647] + [-0.18368865 0.39695608 1.57258144] + [-0.19292603 0.38866549 1.55122962] + ... + [-0.03154959 0.38239768 0.64596448] + [-0.0069916 0.39855119 0.65292407] + [-0.0308108 0.38258874 0.64367914]] + + [[-0.19888478 0.38662463 1.54783547] + [-0.19650977 0.38824308 1.5489444 ] + [-0.22517428 0.3632996 1.49018289] + ... + [-0.0785455 0.35255071 0.63039331] + [-0.05018382 0.371291 0.63871399] + [-0.04201678 0.37657947 0.64020454]]] + + + [[[ 0.24408485 -0.35839285 1.02185841] + [ 0.22540079 -0.36147691 1.03593353] + [ 0.22383672 -0.36140655 1.03576627] + ... + [-0.33928249 -0.29961887 0.82623133] + [-0.33998192 -0.29910583 0.82418417] + [-0.33834201 -0.29527485 0.80836729]] + + [[ 0.22273443 -0.36127259 1.04010822] + [ 0.21128833 -0.36304563 1.04818302] + [ 0.21446391 -0.36209773 1.04408448] + ... + [-0.33926179 -0.29841579 0.8256513 ] + [-0.33948677 -0.29722773 0.82082631] + [-0.34343427 -0.30132617 0.83782139]] + + [[ 0.2181925 -0.36106792 1.04436677] + [ 0.22282258 -0.35983951 1.03905615] + [ 0.22128324 -0.35976713 1.03887214] + ... + [-0.34051235 -0.29900312 0.83243455] + [-0.34124158 -0.29853749 0.83059836] + [-0.34494142 -0.30232457 0.8462184 ]] + + ... + + [[ 0.71527314 0.81422378 1.12961781] + [ 0.63372771 0.72739113 1.16137676] + [ 0.63649916 0.73292072 1.15831854] + ... + [-0.36567945 1.18487171 0.38276409] + [-0.36379322 1.25170052 0.33228194] + [-0.3619157 1.32145128 0.27955365]] + + [[ 0.75121778 0.85613816 1.11595538] + [ 0.69141656 0.79312866 1.13858521] + [ 0.63250065 0.73083639 1.161045 ] + ... + [-0.36201864 1.24967404 0.33818433] + [-0.36173734 1.29338213 0.30484941] + [-0.36453465 1.29021636 0.30607512]] + + [[ 0.64923229 0.74657437 1.15902805] + [ 0.68824982 0.79207206 1.14100994] + [ 0.63004851 0.73044378 1.163124 ] + ... + [-0.35799937 1.32063673 0.28931232] + [-0.36057686 1.32153301 0.28752395] + [-0.37615691 1.11483374 0.43864225]]]] +predictions are: {'pose_enc': array([[-3.37897363e-05, 1.12232847e-05, -1.16327807e-04, + 4.03783160e-05, 1.40253847e-04, -1.99284423e-05, + 9.99912739e-01, 7.77416885e-01, 7.73941100e-01], + [-4.35319424e-01, -2.38493308e-02, 1.11960225e-01, + -2.65991432e-03, 2.35401675e-01, 7.12177083e-02, + 9.69018340e-01, 7.38768935e-01, 7.34434426e-01], + [ 7.73772895e-01, -1.23725161e-01, 4.32510823e-01, + 2.63635046e-03, -4.57028240e-01, -1.38719589e-01, + 8.74186814e-01, 7.63139784e-01, 7.60535240e-01], + [ 4.18201447e-01, -5.33430219e-01, 1.62442684e+00, + 8.42045713e-03, -9.06855464e-01, -2.86110312e-01, + 2.49913156e-01, 7.53128111e-01, 7.50727296e-01]], dtype=float32), 'depth': array([[[[0.8004065 ], + [0.7941787 ], + [0.8006431 ], + ..., + [0.7495544 ], + [0.7416174 ], + [0.7354558 ]], + + [[0.78036696], + [0.7814194 ], + [0.7901098 ], + ..., + [0.7545102 ], + [0.75200105], + [0.73856735]], + + [[0.784138 ], + [0.799938 ], + [0.80278826], + ..., + [0.7527699 ], + [0.75061995], + [0.7378951 ]], + + ..., + + [[0.8313675 ], + [0.80213463], + [0.7705732 ], + ..., + [0.76406145], + [0.73281246], + [0.6797665 ]], + + [[0.85067636], + [0.8720697 ], + [0.8323511 ], + ..., + [0.7385541 ], + [0.7056764 ], + [0.664446 ]], + + [[0.8431392 ], + [0.8546855 ], + [0.84931237], + ..., + [0.7165615 ], + [0.7269219 ], + [0.7238432 ]]], + + + [[[0.8450213 ], + [0.8296069 ], + [0.82992375], + ..., + [0.74315095], + [0.7367934 ], + [0.73265654]], + + [[0.832729 ], + [0.82199305], + [0.80593735], + ..., + [0.74608636], + [0.7449555 ], + [0.7323405 ]], + + [[0.8197069 ], + [0.8249376 ], + [0.8242919 ], + ..., + [0.744462 ], + [0.7446377 ], + [0.73138607]], + + ..., + + [[0.9393694 ], + [0.9035564 ], + [0.85201937], + ..., + [0.8837478 ], + [0.92546266], + [0.90736145]], + + [[0.9509837 ], + [0.95849234], + [0.9245999 ], + ..., + [0.877308 ], + [0.8699413 ], + [0.8310992 ]], + + [[0.9043747 ], + [0.93469703], + [0.9209929 ], + ..., + [0.8154963 ], + [0.8212476 ], + [0.84005034]]], + + + [[[0.8165018 ], + [0.7944513 ], + [0.7957529 ], + ..., + [0.7244871 ], + [0.72266656], + [0.73196083]], + + [[0.79125446], + [0.7752091 ], + [0.7810163 ], + ..., + [0.72741014], + [0.7266148 ], + [0.7090475 ]], + + [[0.77649057], + [0.7941085 ], + [0.7823124 ], + ..., + [0.7205475 ], + [0.71996266], + [0.7027654 ]], + + ..., + + [[1.2760837 ], + [1.232059 ], + [1.2224734 ], + ..., + [0.84394604], + [0.9019588 ], + [0.90726 ]], + + [[1.3055836 ], + [1.2478346 ], + [1.2269424 ], + ..., + [0.831785 ], + [0.8577106 ], + [0.83108145]], + + [[1.2199131 ], + [1.2226802 ], + [1.1622933 ], + ..., + [0.7810087 ], + [0.811125 ], + [0.8192587 ]]], + + + [[[0.8269379 ], + [0.80672926], + [0.80615914], + ..., + [0.72536004], + [0.7267492 ], + [0.7406776 ]], + + [[0.80267465], + [0.79074174], + [0.7956026 ], + ..., + [0.7264275 ], + [0.7303505 ], + [0.7143805 ]], + + [[0.7976914 ], + [0.80422896], + [0.80368316], + ..., + [0.7207715 ], + [0.7219732 ], + [0.7072511 ]], + + ..., + + [[1.6044316 ], + [1.4973423 ], + [1.5037652 ], + ..., + [1.8274568 ], + [1.8999041 ], + [1.975504 ]], + + [[1.6533688 ], + [1.5756605 ], + [1.4988701 ], + ..., + [1.8954905 ], + [1.9426546 ], + [1.9387842 ]], + + [[1.5165621 ], + [1.571919 ], + [1.4960619 ], + ..., + [1.9700347 ], + [1.9705786 ], + [1.7455028 ]]]], dtype=float32), 'depth_conf': array([[[1.0000988, 1.000005 , 1.0000015, ..., 1.0000001, 1.0000005, + 1.0000458], + [1.0000018, 1. , 1. , ..., 1. , 1. , + 1.0000029], + [1.0000001, 1. , 1. , ..., 1. , 1. , + 1.0000002], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1.0000013, 1. , 1. , ..., 1. , 1. , + 1.0000147]], + + [[1.0000044, 1. , 1. , ..., 1. , 1.0000004, + 1.0000345], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000014], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000001], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1.0000004, 1. , 1. , ..., 1. , 1. , + 1.0000064]], + + [[1.0000017, 1. , 1. , ..., 1. , 1. , + 1.0000036], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000004]], + + [[1.0000017, 1. , 1. , ..., 1. , 1. , + 1.0000013], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ]]], dtype=float32), 'world_points': array([[[[-0.38207695, -0.37434822, 0.8221682 ], + [-0.3659399 , -0.3726825 , 0.83042854], + [-0.3607235 , -0.36651862, 0.83189493], + ..., + [ 0.35602355, -0.36010328, 0.8068627 ], + [ 0.35760617, -0.36161196, 0.80047923], + [ 0.37884474, -0.3397629 , 0.67519534]], + + [[-0.3768304 , -0.35727033, 0.82274574], + [-0.3636568 , -0.36283225, 0.8284476 ], + [-0.36103976, -0.35936093, 0.8328328 ], + ..., + [ 0.35230455, -0.35493124, 0.8073631 ], + [ 0.35267535, -0.35174412, 0.7997998 ], + [ 0.3585685 , -0.34718755, 0.79951656]], + + [[-0.37289461, -0.3527929 , 0.8113627 ], + [-0.36289504, -0.3544993 , 0.82636696], + [-0.3597397 , -0.3538873 , 0.83367336], + ..., + [ 0.35135618, -0.3495785 , 0.8078512 ], + [ 0.3506884 , -0.3476811 , 0.80013776], + [ 0.35366994, -0.3438282 , 0.80015075]], + + ..., + + [[-0.36830413, 0.35748133, 0.76419127], + [-0.35492593, 0.34797996, 0.7916368 ], + [-0.34697104, 0.34429082, 0.79116416], + ..., + [ 0.3340354 , 0.33725494, 0.7647337 ], + [ 0.33699262, 0.33828783, 0.7597029 ], + [ 0.34208027, 0.33686462, 0.7498733 ]], + + [[-0.35946357, 0.35676062, 0.7551297 ], + [-0.34762868, 0.3525526 , 0.7893895 ], + [-0.3481523 , 0.34768277, 0.787237 ], + ..., + [ 0.33289802, 0.33926642, 0.75883836], + [ 0.33963385, 0.34004268, 0.7554627 ], + [ 0.34730786, 0.33893478, 0.73482615]], + + [[-0.31300932, 0.34076336, 0.6512748 ], + [-0.34658423, 0.35089338, 0.7654841 ], + [-0.34368286, 0.35195783, 0.77350545], + ..., + [ 0.32553282, 0.34684196, 0.74781704], + [ 0.33085003, 0.34468508, 0.7436888 ], + [ 0.23658852, 0.30123493, 0.55968964]]], + + + [[[-0.31517747, -0.32796425, 0.6956756 ], + [-0.3216872 , -0.33031985, 0.7150369 ], + [-0.3211644 , -0.32745454, 0.7179589 ], + ..., + [ 0.29960877, -0.39654562, 0.96303153], + [ 0.30712298, -0.39733675, 0.9615447 ], + [ 0.34398824, -0.3796651 , 0.7922976 ]], + + [[-0.31441432, -0.31001708, 0.6954669 ], + [-0.32174408, -0.32371062, 0.7162361 ], + [-0.3263315 , -0.32245383, 0.7235892 ], + ..., + [ 0.29798135, -0.3918182 , 0.9639515 ], + [ 0.30440602, -0.388992 , 0.960985 ], + [ 0.31573662, -0.38617328, 0.96469945]], + + [[-0.31575918, -0.30630842, 0.6816451 ], + [-0.32328364, -0.3169451 , 0.7153291 ], + [-0.328416 , -0.31827652, 0.72680545], + ..., + [ 0.29887557, -0.38684273, 0.961369 ], + [ 0.30352122, -0.38550383, 0.9593147 ], + [ 0.3101416 , -0.38415724, 0.96630037]], + + ..., + + [[-0.1742928 , 0.37868387, 0.6688211 ], + [-0.16806974, 0.36278448, 0.68365645], + [-0.16413157, 0.35764956, 0.6878358 ], + ..., + [ 0.3930191 , 0.2655134 , 0.9915667 ], + [ 0.39867783, 0.26677594, 0.98919153], + [ 0.41069597, 0.26502335, 0.983859 ]], + + [[-0.16518757, 0.37712416, 0.65953976], + [-0.15989457, 0.36525798, 0.6807556 ], + [-0.15932353, 0.36112165, 0.68165493], + ..., + [ 0.39757085, 0.26926363, 0.987552 ], + [ 0.40700194, 0.26820585, 0.98846155], + [ 0.42461094, 0.2722786 , 0.96192545]], + + [[-0.14644124, 0.3461824 , 0.5716882 ], + [-0.15905654, 0.36518747, 0.66400254], + [-0.15211369, 0.36627784, 0.674485 ], + ..., + [ 0.39915967, 0.27286488, 0.97812235], + [ 0.40582418, 0.27355766, 0.9734615 ], + [ 0.29239157, 0.24710833, 0.72397953]]], + + + [[[-0.24055123, -0.47555315, 1.1497489 ], + [-0.19349965, -0.48061496, 1.1566769 ], + [-0.17696705, -0.46833646, 1.1443497 ], + ..., + [ 0.14982298, -0.283005 , 0.57548344], + [ 0.14561023, -0.28357223, 0.5719869 ], + [ 0.18514743, -0.26552632, 0.4849398 ]], + + [[-0.22764814, -0.45216978, 1.1730809 ], + [-0.1856817 , -0.46743077, 1.1567357 ], + [-0.17669863, -0.46072018, 1.1519431 ], + ..., + [ 0.15052871, -0.27879876, 0.5779284 ], + [ 0.14420916, -0.27446195, 0.5738673 ], + [ 0.14493386, -0.26612192, 0.5714314 ]], + + [[-0.23258516, -0.4539681 , 1.1535513 ], + [-0.181767 , -0.46150786, 1.1605568 ], + [-0.17119458, -0.45782885, 1.1594217 ], + ..., + [ 0.15405403, -0.274233 , 0.5803859 ], + [ 0.14459692, -0.27119967, 0.5756619 ], + [ 0.13711502, -0.2668283 , 0.5761198 ]], + + ..., + + [[-0.45554873, 0.2417899 , 1.2232995 ], + [-0.4083282 , 0.23858957, 1.2188371 ], + [-0.3930919 , 0.23561895, 1.204185 ], + ..., + [-0.05860386, 0.39561367, 0.65330356], + [-0.05958155, 0.39870408, 0.64795417], + [-0.06153874, 0.40139127, 0.645928 ]], + + [[-0.4513191 , 0.23950979, 1.2133999 ], + [-0.4035942 , 0.24191493, 1.2178581 ], + [-0.40293935, 0.23431864, 1.2031474 ], + ..., + [-0.06532838, 0.39806318, 0.6496558 ], + [-0.06056233, 0.39879057, 0.6499951 ], + [-0.05666913, 0.39766705, 0.6369729 ]], + + [[-0.39089993, 0.2608139 , 1.0048475 ], + [-0.41036615, 0.2383695 , 1.1931527 ], + [-0.41098347, 0.23569778, 1.1992356 ], + ..., + [-0.07827827, 0.4016483 , 0.6466236 ], + [-0.06544286, 0.3962488 , 0.63554287], + [-0.09346812, 0.3663947 , 0.4739664 ]]], + + + [[[ 0.26599672, -0.42771608, 1.0628014 ], + [ 0.2798947 , -0.42830792, 1.0364765 ], + [ 0.29351172, -0.4140331 , 1.0120764 ], + ..., + [-0.3184959 , -0.31673416, 0.69558513], + [-0.31787267, -0.31612438, 0.70836174], + [-0.15245034, -0.32766804, 0.5663736 ]], + + [[ 0.2758744 , -0.4150789 , 1.0773362 ], + [ 0.28306904, -0.41604182, 1.0285493 ], + [ 0.28577894, -0.40328488, 1.0122644 ], + ..., + [-0.31102625, -0.30853462, 0.6971798 ], + [-0.3075836 , -0.30468467, 0.70801514], + [-0.28554764, -0.29588708, 0.69550085]], + + [[ 0.27397716, -0.41544712, 1.049261 ], + [ 0.27388158, -0.41776782, 1.0430392 ], + [ 0.28674185, -0.39752078, 1.0046728 ], + ..., + [-0.3048553 , -0.29980552, 0.6904644 ], + [-0.3128433 , -0.30089182, 0.70536673], + [-0.3118052 , -0.29874197, 0.7096921 ]], + + ..., + + [[ 0.13315384, 0.13102354, 1.4538139 ], + [ 0.1265733 , 0.14215223, 1.415358 ], + [ 0.1263011 , 0.14365917, 1.398633 ], + ..., + [-0.39899707, 0.2947014 , 1.0817419 ], + [-0.4066646 , 0.29733956, 1.0822508 ], + [-0.41065946, 0.29718485, 1.0956538 ]], + + [[ 0.12186164, 0.13410984, 1.4557084 ], + [ 0.13160238, 0.15125132, 1.4312451 ], + [ 0.12071934, 0.14570431, 1.4097552 ], + ..., + [-0.41316128, 0.291897 , 1.0904315 ], + [-0.40633118, 0.28890496, 1.1030972 ], + [-0.38653064, 0.2937777 , 1.0761658 ]], + + [[ 0.08610126, 0.16247226, 1.1858633 ], + [ 0.12233471, 0.14179857, 1.4216311 ], + [ 0.118797 , 0.14192834, 1.4256477 ], + ..., + [-0.4227929 , 0.2989565 , 1.1016617 ], + [-0.40015313, 0.30098018, 1.083959 ], + [-0.3857455 , 0.27955198, 0.7823402 ]]]], dtype=float32), 'world_points_conf': array([[[1.000235 , 1.0000138, 1.0000021, ..., 1.0000042, 1.0000052, + 1.0002447], + [1.0000091, 1.0000032, 1.0000002, ..., 1.0000004, 1.000001 , + 1.0000838], + [1.0000017, 1.0000002, 1. , ..., 1. , 1.0000001, + 1.0000285], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000014], + [1.0000001, 1. , 1. , ..., 1. , 1. , + 1.0000011], + [1.0000044, 1.0000011, 1.0000004, ..., 1.0000006, 1.0000007, + 1.0000303]], + + [[1.0000181, 1.0000004, 1. , ..., 1.0000008, 1.0000012, + 1.000071 ], + [1.0000001, 1. , 1. , ..., 1. , 1.0000001, + 1.0000206], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000057], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000002], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000001], + [1.0000021, 1.0000005, 1.0000001, ..., 1.0000001, 1.0000001, + 1.000006 ]], + + [[1.0000092, 1.0000002, 1. , ..., 1.0000001, 1.0000004, + 1.0000556], + [1.0000001, 1. , 1. , ..., 1. , 1. , + 1.000012 ], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000026], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1.0000004, 1.0000001, 1. , ..., 1. , 1. , + 1.0000031]], + + [[1.0000019, 1. , 1. , ..., 1. , 1. , + 1.0000043], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000011], + [1. , 1. , 1. , ..., 1. , 1. , + 1.0000001], + ..., + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1. , 1. , 1. , ..., 1. , 1. , + 1. ], + [1.0000005, 1.0000002, 1.0000001, ..., 1. , 1. , + 1.000001 ]]], dtype=float32), 'images': array([[[[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]]], + + + [[[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]]], + + + [[[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]]], + + + [[[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]], + + [[1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + ..., + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.], + [1., 1., 1., ..., 1., 1., 1.]]]], dtype=float32), 'extrinsic': array([[[ 9.99999940e-01, 3.98716875e-05, 2.80530570e-04, + -3.37897363e-05], + [-3.98490338e-05, 1.00000000e+00, -8.07692631e-05, + 1.12232847e-05], + [-2.80533772e-04, 8.07580873e-05, 9.99999940e-01, + -1.16327807e-04]], + + [[ 8.78966391e-01, -1.39345944e-01, 4.56070989e-01, + -4.35319424e-01], + [ 1.36840075e-01, 9.89836752e-01, 3.87043022e-02, + -2.38493308e-02], + [-4.56829131e-01, 2.83890143e-02, 8.89101326e-01, + 1.11960225e-01]], + + [[ 5.40236592e-01, 2.41980508e-01, -8.05971384e-01, + 7.73772895e-01], + [-2.46837318e-01, 9.61202145e-01, 1.23132966e-01, + -1.23725161e-01], + [ 8.04497302e-01, 1.32422894e-01, 5.79006374e-01, + 4.32510823e-01]], + + [[-8.70646954e-01, 1.32123172e-01, -4.73832339e-01, + 4.18201447e-01], + [-1.63717493e-01, 8.30508351e-01, 5.32402456e-01, + -5.33430219e-01], + [ 4.63864446e-01, 5.41109264e-01, -7.01448679e-01, + 1.62442684e+00]]], dtype=float32), 'intrinsic': array([[[635.55475, 0. , 259. ], + [ 0. , 632.4077 , 259. ], + [ 0. , 0. , 1. ]], + + [[673.3128 , 0. , 259. ], + [ 0. , 668.98236, 259. ], + [ 0. , 0. , 1. ]], + + [[647.94855, 0. , 259. ], + [ 0. , 645.50824, 259. ], + [ 0. , 0. , 1. ]], + + [[657.28265, 0. , 259. ], + [ 0. , 654.97644, 259. ], + [ 0. , 0. , 1. ]]], dtype=float32), 'world_points_from_depth': array([[[[-0.32635777, -0.3277628 , 0.80045778], + [-0.32256861, -0.32521258, 0.79423084], + [-0.32393473, -0.32785957, 0.80069504], + ..., + [ 0.3017545 , -0.30691559, 0.74978018], + [ 0.29972646, -0.30366574, 0.74184234], + [ 0.29839372, -0.30114284, 0.73568019]], + + [[-0.31818604, -0.31832302, 0.78041975], + [-0.3173857 , -0.31875226, 0.78147245], + [-0.31967265, -0.32229703, 0.79016251], + ..., + [ 0.30374933, -0.30775166, 0.75473664], + [ 0.30392252, -0.3067282 , 0.75222743], + [ 0.29965597, -0.30124899, 0.73879209]], + + [[-0.31972387, -0.3186213 , 0.78419041], + [-0.32490816, -0.32504109, 0.79998947], + [-0.32480285, -0.32619915, 0.80283983], + ..., + [ 0.30304874, -0.30585151, 0.75299595], + [ 0.30336437, -0.30497799, 0.75084603], + [ 0.2993832 , -0.29980799, 0.73811962]], + + ..., + + [[-0.33901007, 0.33658178, 0.83136156], + [-0.32582639, 0.32474639, 0.80213335], + [-0.31179238, 0.31196827, 0.77057688], + ..., + [ 0.30756927, 0.30935648, 0.7642391 ], + [ 0.29614456, 0.29670384, 0.73298793], + [ 0.27577959, 0.27522561, 0.67993796]], + + [[-0.34688456, 0.34574441, 0.85066747], + [-0.35423694, 0.35443977, 0.87205807], + [-0.33679196, 0.33829626, 0.83234564], + ..., + [ 0.2973025 , 0.30019644, 0.73872963], + [ 0.2851795 , 0.28683233, 0.70584956], + [ 0.26956483, 0.27007303, 0.66461615]], + + [[-0.34381086, 0.34401416, 0.84313129], + [-0.34717483, 0.34872546, 0.85467628], + [-0.34365569, 0.34653311, 0.84930432], + ..., + [ 0.28845039, 0.29238992, 0.71673515], + [ 0.29376423, 0.29661765, 0.72709672], + [ 0.29365914, 0.29536141, 0.72401809]]], + + + [[[-0.27946509, -0.29477718, 0.69031692], + [-0.26531197, -0.29030559, 0.68010908], + [-0.26449681, -0.29057286, 0.68089283], + ..., + [ 0.30653217, -0.34329744, 0.87838063], + [ 0.30861049, -0.34085725, 0.87222004], + [ 0.31028803, -0.33932096, 0.86838007]], + + [[-0.2688719 , -0.28984225, 0.68177667], + [-0.25869788, -0.28679426, 0.67483183], + [-0.24405615, -0.28214502, 0.6641481 ], + ..., + [ 0.30616927, -0.34339063, 0.88149869], + [ 0.30734013, -0.34308526, 0.8808186 ], + [ 0.31049251, -0.33810836, 0.86809097]], + + [[-0.25766528, -0.28472603, 0.67272506], + [-0.2610214 , -0.28645689, 0.67693901], + [-0.25939894, -0.28643477, 0.67704571], + ..., + [ 0.30660648, -0.34162906, 0.87984014], + [ 0.30754778, -0.34185431, 0.88052861], + [ 0.31080704, -0.33663796, 0.86713213]], + + ..., + + [[-0.26050822, 0.39260375, 0.78422529], + [-0.23273498, 0.37591514, 0.75874836], + [-0.19342003, 0.35200265, 0.72174699], + ..., + [ 0.3749378 , 0.27278311, 1.05199034], + [ 0.37321451, 0.28736655, 1.09755724], + [ 0.37564739, 0.28077125, 1.07865886]], + + [[-0.26893818, 0.39936239, 0.79274108], + [-0.27326109, 0.40263491, 0.79886063], + [-0.24693766, 0.38678373, 0.7747721 ], + ..., + [ 0.3755698 , 0.27180026, 1.0451034 ], + [ 0.37722163, 0.26900011, 1.03775596], + [ 0.38097745, 0.25502119, 0.99644519]], + + [[-0.23415218, 0.37915543, 0.75883711], + [-0.25543611, 0.39302342, 0.78156286], + [-0.244081 , 0.38648061, 0.77219268], + ..., + [ 0.38006765, 0.25102234, 0.97855636], + [ 0.38073792, 0.25290644, 0.9853092 ], + [ 0.38054548, 0.25944408, 1.00614963]]], + + + [[[-0.23509424, -0.41133813, 1.08391587], + [-0.2495936 , -0.40332443, 1.06414579], + [-0.24803409, -0.4034823 , 1.06426301], + ..., + [ 0.01272387, -0.23979517, 0.54143505], + [ 0.01129287, -0.23923831, 0.5401517 ], + [ 0.02229242, -0.24042661, 0.54119231]], + + [[-0.25275668, -0.40132411, 1.06256198], + [-0.26313683, -0.39544312, 1.04792776], + [-0.25849008, -0.39717296, 1.05189651], + ..., + [ 0.01571067, -0.23917281, 0.54219104], + [ 0.01542839, -0.23877725, 0.54111911], + [-0.00361067, -0.23577585, 0.53654601]], + + [[-0.26319948, -0.39502293, 1.05013188], + [-0.2504369 , -0.40083964, 1.0641572 ], + [-0.25789636, -0.39645873, 1.05314673], + ..., + [ 0.00777232, -0.23702825, 0.54087802], + [ 0.00771979, -0.23666892, 0.53985876], + [-0.01090445, -0.23375314, 0.53536792]], + + ..., + + [[-0.17039119, 0.40640899, 1.60073241], + [-0.19096508, 0.3885153 , 1.55737619], + [-0.19465709, 0.38497204, 1.54676109], + ..., + [-0.02004279, 0.38856792, 0.6495685 ], + [ 0.0340838 , 0.42424778, 0.66639606], + [ 0.03972201, 0.4278182 , 0.66690115]], + + [[-0.15641601, 0.42065152, 1.62900647], + [-0.18368865, 0.39695608, 1.57258144], + [-0.19292603, 0.38866549, 1.55122962], + ..., + [-0.03154959, 0.38239768, 0.64596448], + [-0.0069916 , 0.39855119, 0.65292407], + [-0.0308108 , 0.38258874, 0.64367914]], + + [[-0.19888478, 0.38662463, 1.54783547], + [-0.19650977, 0.38824308, 1.5489444 ], + [-0.22517428, 0.3632996 , 1.49018289], + ..., + [-0.0785455 , 0.35255071, 0.63039331], + [-0.05018382, 0.371291 , 0.63871399], + [-0.04201678, 0.37657947, 0.64020454]]], + + + [[[ 0.24408485, -0.35839285, 1.02185841], + [ 0.22540079, -0.36147691, 1.03593353], + [ 0.22383672, -0.36140655, 1.03576627], + ..., + [-0.33928249, -0.29961887, 0.82623133], + [-0.33998192, -0.29910583, 0.82418417], + [-0.33834201, -0.29527485, 0.80836729]], + + [[ 0.22273443, -0.36127259, 1.04010822], + [ 0.21128833, -0.36304563, 1.04818302], + [ 0.21446391, -0.36209773, 1.04408448], + ..., + [-0.33926179, -0.29841579, 0.8256513 ], + [-0.33948677, -0.29722773, 0.82082631], + [-0.34343427, -0.30132617, 0.83782139]], + + [[ 0.2181925 , -0.36106792, 1.04436677], + [ 0.22282258, -0.35983951, 1.03905615], + [ 0.22128324, -0.35976713, 1.03887214], + ..., + [-0.34051235, -0.29900312, 0.83243455], + [-0.34124158, -0.29853749, 0.83059836], + [-0.34494142, -0.30232457, 0.8462184 ]], + + ..., + + [[ 0.71527314, 0.81422378, 1.12961781], + [ 0.63372771, 0.72739113, 1.16137676], + [ 0.63649916, 0.73292072, 1.15831854], + ..., + [-0.36567945, 1.18487171, 0.38276409], + [-0.36379322, 1.25170052, 0.33228194], + [-0.3619157 , 1.32145128, 0.27955365]], + + [[ 0.75121778, 0.85613816, 1.11595538], + [ 0.69141656, 0.79312866, 1.13858521], + [ 0.63250065, 0.73083639, 1.161045 ], + ..., + [-0.36201864, 1.24967404, 0.33818433], + [-0.36173734, 1.29338213, 0.30484941], + [-0.36453465, 1.29021636, 0.30607512]], + + [[ 0.64923229, 0.74657437, 1.15902805], + [ 0.68824982, 0.79207206, 1.14100994], + [ 0.63004851, 0.73044378, 1.163124 ], + ..., + [-0.35799937, 1.32063673, 0.28931232], + [-0.36057686, 1.32153301, 0.28752395], + [-0.37615691, 1.11483374, 0.43864225]]]])} +Building GLB scene +Using Depthmap and Camera Branch +GLB Scene built +Total time: 2.35 seconds +Reconstruction successful. Processed 4 frames. +Output GLB file saved at: input_images_20250318_115921_809868/glbscene_50.0AllmaskbFalsemaskwFalse_camFalse_skyFalse_predDepthmapandCameraBranch.glb diff --git a/merged_scene.glb b/merged_scene.glb new file mode 100644 index 0000000000000000000000000000000000000000..cce0364170938499de1359d995e356e3486c20b4 GIT binary patch literal 226252 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

Fp<{rp(Z!gVyM;mT z`{3$JQLw&eA}ie!PM3Xsado^p{+_8umyO;*m+DBiAUZ-)oOKBAau;gzvjdWr={xbt zh12vz?-ksWOMy0(V{~|V7%rY1jJkVyu5Ir$*y;`!B0E6u1Rn6tj# z@5asy74~X(By@yoL6U_!>TFvln1_$Uomb7+@hxI9?g&I3n|vs&y+wWZcf zHq{QH)1`{6nCIwnwoPXPW{rW;)*y`geu}@3FC-^&<8aa46XI&infQ#~Ik{f>0&h;g zA*p%%d-YF^^V&-V3!cN=QhhePN9>K4+9_E(Gp}DIj zJ3n_MxLxu^@i=80l|$jQ`9T4;XRN3CWgjGGE`|epKLmO%NaN&D`mp?D3gu?k>zCrK}q~S)FJwo4WXbvxe1rF2jG}C`W$Enn>_?>~( zEgD$&Wg?W6+M|L)7ngos8UjvaK;0xw+SNH0Jo+X=|9~Fd-o2H)VSEOibwjQm3uWk+ z)KloYq90Z~S_{%4&!FaBE^NB+fgGFRjG|p%iNeY*GWK~EuA0I!@-7~@$Cc?4k@lRq zW-sxMJcZ9ZE(o&g)#%ZN`bKv44*S-_P>PCnwsYO@}d!SPl3!`X_v= zeMsJ|_9seJPvK?`w!D;&^!6pY+Y!BE<@-ua)z5WTj7%c?fMD(yTuu6srvop41E#$c0?=Rww-Ra`6ZgUEliryz8r=;0F=Q0VnoCdcXw%|VZ^!mngBJ>jToxU8_ z;dPws&`f$It}4)>X8C_fb!{jPoV)?Iic^W)uYEW><~A8QtVjhL7?0&)KZyMiqMst> zVFp)C;=7a3LIH7Fy#my@jR5xNFh8aYR)~3m;Jycr?5>5uFEhAt-5I#YSO^L(O$8&P zgWw|jkM$Fsgs0m=aOPMmqOy>2)7G5BWuIWgPIoPGOSVxXe_n{vrWc0cbO|B|LKH%-6B{MBaXj+UFEhfW%rZq0=m~K6>e{c z#=^9?TzwH?|1i zLpDZSZ4f{7qOEmAgWoHvF@ZPb#>kj6P>1k z=+V!xe@Zk&xw6jaQAoNlb+Zxx9nW{3hE?o;9 z+ZPj$6Aj>(HXeoJv`MgcE*a&gfJ-mg5Fec=ESjK%Hq9m6-_|rTv8@>In^@ARM)BP1 z?{U~_GYTV4^>f=V`QiIFim=di43#K5jI%yeagpCFa9y1$c)Rw4U%UwY>KTMt*~dU7 zyaswco8$GLCEQ%YMzAq8Mx&CMblF*R;{9?F%GcKl-YEVPtD-JW^$sb{0=<5 zOcKX_T@2%$Meu!Jdi_wt4^qfjsiB=R*zjV2GQySiegmt`74+vnT)fB}-hULQA+Yz5G@F6wt zH0eyoWB74~9x40TMJD@IVaiR$Pzo`C{6!|Hy-gUe^_?Q-)?w&=_$zE$K18^nP_)Pv z&@)8|ysuUiZr-Rx{Riqf)uo@H#JZW}2E2xaULpL{m7X+7*$ZzFb-XuUhZpmfz_7_7 zka<###yB@~GZm{qv-B4?MNy6#h{mD&COeE%E9BFr`k~asA?RE^OxBc#pwp(YB&K@< z_MW^BQHnz_DNLB2<`>|iVdkA}dQJXh8>2wQfs3~`!K87lN1lI1Bz048l(H}OzcA*O zUzh?~hosS%ecJ>tq^QQBgLu%hh%@`4L4C_}P|0c>xywBH!S5>2X^akD_uR$BDwyIA z=5_KBSKq^!W@B`i^v#Z!bd66N^wyqX9X3EeQ zpFMbRy)^rrc#@vI7;_Ge=dMne$Zh%(jTevhkR(Akh#OjC-@!(x3ue9+#yaq|tR`+= zXZb}F+`z8UkxpEEorp5+_(f)hVCEt(ly95~)z4c&we}?3)}4Ws6QroE?I_v}2{>Ky z2>0MQ^CC{q!%tfuL*}U4`g-P>2gY9qi=$Wl@TVU{b1glHXLC_5C@PO?nj z!!&X(ww&ERj_~cRjA{R(3fo-S?805*&6Jsj{>Ox#s!74y%XXkzl_a_`F3)<_-{I)Z zx*dubZzP(%woR-#*m^hdQq@5gJ)r#Gl_ciRIxLwejy{PMq_AcguFf!}O(M6*)2+&w zQE(grb9Ru=vyw1}FfF656i60_YD40XE#5;WH00tJD+SuL`yHe$QNh3m2K3g;Uh-Ho z8izkMkkdb2azRHH;D0G1L^06_xd(f$1U>Y?^)qAnl#od{wqKsj@sn7W^eVLP%z-Y~ z_ayYL1BS~ru=#EhpRqgzR|^@^-@;3|HN~vAQNfeU_`V+U78zh}_9UhSt|sO}4!Bxd zpNx%u1{-IJqfO&q@?X}%D-*{gF_u>>Nni1k$QaH;h5l%6U8DrHXx@l7F4==kgB^Et z%uXy#=p#z4#^AhdM6k@@BW!C71VKd?D2cQ0S>$T+__H_bFE~+OIn+e@oXfGk&w|?7 zNO8}{9mVVaSz};!1na2tL>Zw!5ZoQcau1*2U*80pYZ!y+EGzw5>oPfB+yolOj1ej( zxV$hGhc%4P*>9joEzHhxA~%4$CRtqDpjZ*uK=o6oyH)ukuO zPGV?9D+EcOh1&{~u=>VKxO=7*dZm@{+I0sU#jPOx(MecvHjij$=7Y^qaZX9hiLR)4 zNE$=JP((wMG14Z$7DXl8q+HAmFrHWNdl%H%lnFxNT_laMN5+Xvr>j1;lad@$EO^#T zW<}?M^X%0)|9u76ZxNw0l|yjtLnAopcn-ckbw?p(8JzWXKHU2thIc+xbGP5-K^v}x z*|b{FHFq4$8)JeNmJwvYvDE%uI_ntlhw~C~P&K^=cFcSZx*<-eJmbIm$T5D5RTWDXycVYp zirX<@LL29(mdR~RT7jQXjn2Q@1^2B(QN6%~ehd3SwjT_{rHgH8>>zUf2aEApWhT*n zbCw&n@8)*OeG6MT0x|doTWyq@BT-_j5KWyr)j@##rF^lXYZHQ4YFH+=b%h02{|<#{3qhs^XOxfA&4e=|2S%+7>d_ z7)7vSCc(`XmT_!1^r;D3Jssz)=ApHC_%8%E$y;Y89YR0ZkNKf&+&cj_i3 z4Uku5{q`?^AGofFb6XcajmN2d-z_ zdM3?4jPYl9+3iU?UmYMtBFoVDCiAR>t^>2^K``~S*+<@#iBND zq1jAy3wlL5GNR$B*CBj3=NGXY{twFDx@cl>Z46hN@MwU-` z+|Jb&bdiXkx~R}{oA|_@0Phi5bo(JfPg7g8@+^h21~;0%w3l$BnJ??B0~KDf4XstC z;)_|?IgfKKl|>7(0AP(Lt~C>(g!x^< zSyz{94r56Cn$MZv{KiSW=?DAKmL$@K`QcqOS#I_{(aV~EpLQ6~6h~id96XDy7sNnl zQ9W7sIu9Gnw26+Z2z4r{!1qeCXiByh-|4>sJ4m!zD@@@`j~OkuP(#g&i8l| zD?{oNQHBOHU$dQY7+L?w8W$Di!sC%{awO3VOFlgV_kHQ?x$yuVIyI2O!?{o|5{BDY z*E<@jlb|~;m>SqZ__lo5ccuy&ZYhx4o4vp^Kn2~V`$Ly@B7eV+v70o5NR-ugF7yVX z%1g#!H+n;w{`#Tz_)g+>eJ-Yac>!D30bXvbB#W-G9Cwy0^`E;JXWR-#o8YsgaQ7vs znpgl62Fe6cVgJb8%EdU{LXAqlSAxgdim*CeiF(9{gVMFlX!lkT$NA0yj}?exh6W(N zAptaudLeeipO#KhCjlesXp*sqx(nWqO=m4vWe>kzCwGl@>n`UBF3uVA{a z4&Q#do=pB;fv=+#pyh}VD!yYn)U5;Xm=h;et=ZU)PhobT1v%mwi&CA#f-fSOFe|_e zgxV&MBRPGfP906o7&U?9D+8SJx|;b=u8_Au6Y%0DJ+eh^HC8LTV#BCPSQT}U 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 literal 0 HcmV?d00001 diff --git a/npz_reader.py b/npz_reader.py new file mode 100644 index 0000000..f79ad7c --- /dev/null +++ b/npz_reader.py @@ -0,0 +1,229 @@ +import numpy as np +import os +import sys +import argparse +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D + +def load_predictions(npz_file): + """Load and return the predictions from an NPZ file.""" + if not os.path.exists(npz_file): + print(f"Error: File {npz_file} does not exist.") + sys.exit(1) + + try: + # Load the NPZ file + data = np.load(npz_file, allow_pickle=True) + + # Convert to dictionary for easier handling + predictions = {key: data[key] for key in data.files} + + return predictions + except Exception as e: + print(f"Error loading predictions file: {e}") + sys.exit(1) + +def print_predictions_summary(predictions): + """Print a summary of the predictions.""" + print("\n======== PREDICTIONS SUMMARY ========") + print(f"Number of entries: {len(predictions)}") + + for key, value in predictions.items(): + if isinstance(value, np.ndarray): + print(f"\n{key}:") + print(f" Shape: {value.shape}") + print(f" Type: {value.dtype}") + + # Print some statistics for numerical arrays + if np.issubdtype(value.dtype, np.number): + try: + print(f" Min: {np.min(value)}") + print(f" Max: {np.max(value)}") + print(f" Mean: {np.mean(value)}") + except: + print(" (Could not compute statistics)") + + # Print a sample of the data + print(" Sample data:") + if value.size > 0: + # For multi-dimensional arrays, flatten for sample display + flat_value = value.reshape(-1) + sample_size = min(5, flat_value.size) + print(f" {flat_value[:sample_size]} ...") + else: + print(f"\n{key}: {value}") + +def print_full_array(key, array): + """Print the full contents of an array.""" + print(f"\n======== FULL CONTENTS OF '{key}' ========") + print(f"Shape: {array.shape}") + print(f"Type: {array.dtype}") + + # For large arrays, ask for confirmation + if array.size > 1000: + confirm = input(f"Warning: This array has {array.size} elements. Do you want to print it all? (y/n): ") + if confirm.lower() != 'y': + print("Printing canceled.") + return + + # Print the array + print("\nArray contents:") + print(array) + +def visualize_depth_maps(predictions): + """Visualize the depth maps from the predictions.""" + if 'depth' not in predictions: + print("No depth maps found in predictions.") + return + + depth_maps = predictions['depth'] + + # Determine how many depth maps to display + num_frames = depth_maps.shape[0] if depth_maps.ndim > 3 else 1 + + # For multi-dimensional arrays, adapt accordingly + if depth_maps.ndim == 4: # (frames, height, width, 1) + num_frames = min(4, depth_maps.shape[0]) # Show up to 4 frames + fig, axes = plt.subplots(1, num_frames, figsize=(15, 5)) + + if num_frames == 1: + axes = [axes] # Make it iterable for consistency + + for i, ax in enumerate(axes): + if i < depth_maps.shape[0]: + # Remove the channel dimension if it exists + if depth_maps.shape[-1] == 1: + depth_map = depth_maps[i, :, :, 0] + else: + depth_map = depth_maps[i] + + im = ax.imshow(depth_map, cmap='viridis') + ax.set_title(f"Frame {i}") + plt.colorbar(im, ax=ax) + + plt.tight_layout() + plt.show() + +def visualize_point_cloud(predictions): + """Visualize the 3D point cloud.""" + point_cloud_key = None + if 'world_points_from_depth' in predictions: + point_cloud_key = 'world_points_from_depth' + + if point_cloud_key is None: + print("No point cloud data found in predictions.") + return + + points = predictions[point_cloud_key] + + # Choose a specific frame if multiple are available + if points.ndim == 4: # (frames, height, width, 3) + frame_idx = 0 + print(f"Showing point cloud for frame {frame_idx} (shape: {points.shape})") + points = points[frame_idx] + + # Flatten the spatial dimensions to get a list of 3D points + points_flat = points.reshape(-1, 3) + + # Create a scatter plot in 3D + fig = plt.figure(figsize=(12, 10)) + ax = fig.add_subplot(111, projection='3d') + + # Downsample if there are too many points + max_points = 10000 + if len(points_flat) > max_points: + # Random sampling + idx = np.random.choice(len(points_flat), max_points, replace=False) + points_flat = points_flat[idx] + + # Plot the points + ax.scatter( + points_flat[:, 0], + points_flat[:, 1], + points_flat[:, 2], + c='b', + marker='.', + alpha=0.5, + s=1 + ) + + ax.set_xlabel('X') + ax.set_ylabel('Y') + ax.set_zlabel('Z') + ax.set_title('3D Point Cloud') + + # Equal aspect ratio + ax.set_box_aspect([1, 1, 1]) + + plt.tight_layout() + plt.show() + +def main(): + parser = argparse.ArgumentParser(description='Read and analyze predictions.npz file from VGGT model.') + parser.add_argument('npz_file', help='Path to the predictions.npz file') + parser.add_argument('--key', help='Specific key to print from the npz file') + parser.add_argument('--visualize', choices=['depth', 'points', 'all'], + help='Visualize specific data: depth maps or 3D points') + + args = parser.parse_args() + + # Load predictions + predictions = load_predictions(args.npz_file) + + # If a specific key is provided, print it and exit + if args.key: + if args.key in predictions: + print_full_array(args.key, predictions[args.key]) + return + else: + print(f"Error: Key '{args.key}' not found.") + print("Available keys:") + for key in predictions.keys(): + print(f"- {key}") + return + + # Print summary + print_predictions_summary(predictions) + + # Handle visualization request + if args.visualize: + if args.visualize == 'depth' or args.visualize == 'all': + visualize_depth_maps(predictions) + if args.visualize == 'points' or args.visualize == 'all': + visualize_point_cloud(predictions) + else: + # Interactive mode + while True: + print("\n======== OPTIONS ========") + print("1: List all available keys") + print("2: Print contents of a specific key") + print("3: Visualize depth maps") + print("4: Visualize 3D point cloud") + print("5: Exit") + + choice = input("\nEnter your choice (1-5): ") + + if choice == '1': + print("\nAvailable keys:") + for key in sorted(predictions.keys()): + print(f"- {key}") + elif choice == '2': + key = input("Enter the key name: ") + if key in predictions: + print_full_array(key, predictions[key]) + else: + print(f"Error: Key '{key}' not found.") + print("Available keys:") + for k in sorted(predictions.keys()): + print(f"- {k}") + elif choice == '3': + visualize_depth_maps(predictions) + elif choice == '4': + visualize_point_cloud(predictions) + elif choice == '5': + break + else: + print("Invalid choice. Please try again.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/reconstruct.py b/reconstruct.py new file mode 100644 index 0000000..69e2ed8 --- /dev/null +++ b/reconstruct.py @@ -0,0 +1,269 @@ +import numpy as np +import open3d as o3d +import copy +import trimesh +import os +import matplotlib.pyplot as plt +from scipy.spatial.transform import Rotation + + +def merge_point_clouds(prediction_sets, voxel_size=0.02): + """ + Register and merge multiple point clouds from overlapping image sets + + Args: + prediction_sets: List of prediction dictionaries containing point clouds and camera parameters + voxel_size: Resolution for downsampling and registration + + Returns: + merged_scene: Final trimesh.Scene with merged point cloud + """ + # 1. Extract point clouds and camera positions from each prediction set + point_clouds = [] + camera_positions = [] + + for i, predictions in enumerate(prediction_sets): + # Extract point cloud data + if "world_points" in predictions: + points = predictions["world_points"] + else: + points = predictions["world_points_from_depth"] + + # Get confidence values if available + if "world_points_conf" in predictions: + conf = predictions["world_points_conf"] + else: + conf = np.ones_like(points[..., 0]) + + # Get RGB images + images = predictions["images"] + + # Extract camera matrices + extrinsics = predictions["extrinsic"] + + # Create colored point cloud + vertices, colors = extract_colored_point_cloud(points, images, conf, threshold=50.0) + + # Create Open3D point cloud + pcd = o3d.geometry.PointCloud() + pcd.points = o3d.utility.Vector3dVector(vertices) + pcd.colors = o3d.utility.Vector3dVector(colors / 255.0) # Normalize colors to [0,1] + + # Downsample to speed up registration + pcd_down = pcd.voxel_down_sample(voxel_size) + + # Extract camera centers from extrinsic matrices + cam_centers = extract_camera_centers(extrinsics) + + point_clouds.append(pcd_down) + camera_positions.append(cam_centers) + + print(f"Point cloud {i}: {len(pcd_down.points)} points, {len(cam_centers)} cameras") + + # 2. Register point clouds using both camera positions and point features + transformations = register_point_clouds(point_clouds, camera_positions) + + # 3. Transform and merge point clouds + merged_cloud = o3d.geometry.PointCloud() + + for i, pcd in enumerate(point_clouds): + # Apply transformation + if i > 0: # First cloud is reference + pcd_transformed = copy.deepcopy(pcd) + pcd_transformed.transform(transformations[i-1]) + merged_cloud += pcd_transformed + else: + merged_cloud += pcd + + # 4. Clean and optimize final point cloud + print("Cleaning merged point cloud...") + merged_cloud = merged_cloud.voxel_down_sample(voxel_size) + merged_cloud, _ = merged_cloud.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0) + + # 5. Create trimesh scene for output + merged_scene = trimesh.Scene() + + # Convert merged point cloud to trimesh + vertices = np.asarray(merged_cloud.points) + colors = (np.asarray(merged_cloud.colors) * 255).astype(np.uint8) + merged_trimesh = trimesh.PointCloud(vertices=vertices, colors=colors) + merged_scene.add_geometry(merged_trimesh) + + return merged_scene + + +def extract_colored_point_cloud(points, images, confidence, threshold=50.0): + """Extract points and colors based on confidence threshold""" + S, H, W, _ = points.shape + vertices_3d = points.reshape(-1, 3) + + # Handle different image formats + if images.ndim == 4 and images.shape[1] == 3: # NCHW format + colors_rgb = np.transpose(images, (0, 2, 3, 1)) + else: # NHWC format + colors_rgb = images + + colors_rgb = (colors_rgb.reshape(-1, 3) * 255).astype(np.uint8) + conf = confidence.reshape(-1) + + # Apply confidence threshold + if threshold > 0: + conf_threshold = np.percentile(conf, threshold) + mask = (conf >= conf_threshold) & (conf > 1e-5) + vertices_3d = vertices_3d[mask] + colors_rgb = colors_rgb[mask] + + return vertices_3d, colors_rgb + + +def extract_camera_centers(extrinsics): + """Extract camera centers from extrinsic matrices""" + centers = [] + for ext in extrinsics: + # Create 4x4 transformation matrix + T = np.eye(4) + T[:3, :4] = ext + + # Get camera center in world coordinates (-R^T * t) + R = T[:3, :3] + t = T[:3, 3] + center = -np.dot(R.T, t) + centers.append(center) + + return np.array(centers) + + +def register_point_clouds(point_clouds, camera_positions): + """ + Register point clouds using both camera positions and ICP + + Returns: + List of transformation matrices to align each point cloud to the first one + """ + if len(point_clouds) <= 1: + return [] + + transformations = [] + target_cloud = point_clouds[0] + target_cameras = camera_positions[0] + + # Process each subsequent point cloud + for i in range(1, len(point_clouds)): + source_cloud = point_clouds[i] + source_cameras = camera_positions[i] + + # 1. Initial alignment using camera positions (if sequential) + initial_transformation = estimate_transformation_from_cameras(source_cameras, target_cameras) + + # Apply initial transformation + source_aligned = copy.deepcopy(source_cloud) + source_aligned.transform(initial_transformation) + + # 2. Fine registration using Colored ICP + # Prepare for colored ICP + source_aligned.estimate_normals() + target_cloud.estimate_normals() + + # Run Colored ICP (slower but more accurate for colored point clouds) + print(f"Running colored ICP for point cloud {i}...") + reg_p2p = o3d.pipelines.registration.registration_colored_icp( + source_aligned, target_cloud, 0.05, + initial_transformation, + o3d.pipelines.registration.TransformationEstimationForColoredICP(), + o3d.pipelines.registration.ICPConvergenceCriteria(max_iteration=200) + ) + + # Combine transformations + final_transformation = reg_p2p.transformation @ initial_transformation + + transformations.append(final_transformation) + print(f"Point cloud {i} registered with fitness: {reg_p2p.fitness}, RMSE: {reg_p2p.inlier_rmse}") + + return transformations + + +def estimate_transformation_from_cameras(source_cameras, target_cameras): + """ + Estimate transformation between point clouds using camera positions + using a simplified version of Umeyama algorithm + """ + if len(source_cameras) < 3 or len(target_cameras) < 3: + # Not enough camera positions for reliable estimation + return np.eye(4) + + # Find corresponding cameras by proximity + # This works if the camera positions are in sequential order + s_cam = source_cameras + t_cam = target_cameras + + # If the number of cameras differs, use the minimum length + min_len = min(len(s_cam), len(t_cam)) + + # Try to find best alignment using first and last few cameras + source_pts = np.vstack([s_cam[:min(3, min_len)], s_cam[-min(3, min_len):]]) + target_pts = np.vstack([t_cam[:min(3, min_len)], t_cam[-min(3, min_len):]]) + + # Calculate centroids + source_centroid = np.mean(source_pts, axis=0) + target_centroid = np.mean(target_pts, axis=0) + + # Center the points + source_centered = source_pts - source_centroid + target_centered = target_pts - target_centroid + + # Compute rotation using singular value decomposition + H = np.dot(source_centered.T, target_centered) + U, _, Vt = np.linalg.svd(H) + R = np.dot(Vt.T, U.T) + + # Ensure proper rotation matrix (det=1) + if np.linalg.det(R) < 0: + Vt[-1, :] *= -1 + R = np.dot(Vt.T, U.T) + + # Translation + t = target_centroid - np.dot(R, source_centroid) + + # Create transformation matrix + transformation = np.eye(4) + transformation[:3, :3] = R + transformation[:3, 3] = t + + return transformation + + +def main(): + """Example usage""" + import argparse + + parser = argparse.ArgumentParser(description='Merge multiple point clouds from VGGT predictions') + parser.add_argument('--prediction_dirs', type=str, nargs='+', required=True, + help='Directories containing prediction.npz files') + parser.add_argument('--output', type=str, default='merged_scene.glb', + help='Output GLB file path') + parser.add_argument('--voxel_size', type=float, default=0.02, + help='Voxel size for downsampling') + + args = parser.parse_args() + + # Load predictions + prediction_sets = [] + for dir_path in args.prediction_dirs: + npz_path = os.path.join(dir_path, 'predictions.npz') + if not os.path.exists(npz_path): + print(f"Warning: No predictions.npz found in {dir_path}") + continue + + predictions = dict(np.load(npz_path, allow_pickle=True)) + prediction_sets.append(predictions) + + # Merge point clouds + merged_scene = merge_point_clouds(prediction_sets, args.voxel_size) + + # Export merged scene + merged_scene.export(file_obj=args.output) + print(f"Merged scene saved to {args.output}") + + +if __name__ == "__main__": + main() \ No newline at end of file