code: def dump_romp_estimates(romp_output_dir, dump_path, scene=None):
      if os.path.isfile(dump_path):
          return
      vibe_estimates = {
          "verts": [],
          "joints3d": [],
          "joints2d_img_coord": [],
          "pose": [],
          "betas": [],
      }
  
      for cur, dirs, files in os.walk(romp_output_dir):
          for file in sorted(files):
              if file.endswith("npz"):
                  cur_res = np.load(
                      os.path.join(cur, file), allow_pickle=True
                  )["results"]
                  assert len(cur_res) == 1
                  cur_res = cur_res[0]
                  vibe_estimates["verts"].append(cur_res["verts"])
                  vibe_estimates["joints3d"].append(
                      cur_res["j3d_all54"]
                  )
                  vibe_estimates["joints2d_img_coord"].append(
                      cur_res["pj2d_org"]
                  )
                  vibe_estimates["pose"].append(cur_res["poses"])
                  vibe_estimates["betas"].append(cur_res["betas"])
          break
  
      for k, v in vibe_estimates.items():
          vibe_estimates[k] = np.array(v).astype(np.float32)
  
      vibe_results = {}
      vibe_results[1] = vibe_estimates
  
      joblib.dump(vibe_results, dump_path)
      print(f"dumped ROMP results to pkl at {dump_path}")
  
imports: import sys
  import argparse
  import os
  import copy
  import torch
  import joblib
  import numpy
  import open3d
  import cv2
  from tqdm import tqdm
  from data_io import colmap_helper
  from utils import debug_utils, ray_utils
  from cameras import camera_pose
  from geometry.basics import Translation, Rotation
  from geometry import transformations
label_desc: Use image node_id 2 for calling a global function with example usage: dump_romp_estimates(romp_output_dir, dump_path, scene) without return types