code: def read_captures(
      cls,
      scene_dir,
      tgt_size,
      mask_dir="segmentations",
      keypoints_dir="keypoints",
      densepose_dir="densepose",
  ):
      caps = []
      raw_scene = colmap_helper.ColmapAsciiReader.read_scene(
          os.path.join(scene_dir, "sparse"),
          os.path.join(scene_dir, "images"),
          tgt_size,
          order="video",
      )
      num_views = len(raw_scene.captures)
      num_cams = 1
      counter = 0
      for view_id in range(num_views):
          for cam_id in range(num_cams):
              raw_cap = raw_scene.captures[counter]
              depth_path = (
                  raw_cap.image_path.replace("/images/", "/depth_maps/")
                  + ".geometric.bin"
              )
              mono_depth_path = raw_cap.image_path.replace(
                  "/images/", "/mono_depth/"
              )
              if not os.path.isfile(depth_path):
                  depth_path = raw_cap.image_path + "dummy"
                  print(
                      f"can not find mvs depth for {os.path.basename(raw_cap.image_path)}"
                  )
              if not os.path.isfile(mono_depth_path):
                  mono_depth_path = raw_cap.image_path + "dummy"
                  print(
                      f"can not find mono depth for {os.path.basename(raw_cap.image_path)}"
                  )
              mask_path = os.path.join(
                  scene_dir,
                  mask_dir,
                  os.path.basename(raw_cap.image_path) + ".npy",
              )
              if not os.path.isfile(mask_path):
                  mask_path = os.path.join(
                      scene_dir,
                      mask_dir,
                      os.path.basename(raw_cap.image_path),
                  )
              keypoints_path = os.path.join(
                  scene_dir,
                  keypoints_dir,
                  os.path.basename(raw_cap.image_path) + ".npy",
              )
              if not os.path.isfile(keypoints_path):
                  print(
                      f"can not find keypoints for {os.path.basename(raw_cap.image_path)}"
                  )
                  keypoints_path = None
              densepose_path = os.path.join(
                  scene_dir,
                  densepose_dir,
                  "dp_" + os.path.basename(raw_cap.image_path) + ".npy",
              )
              if not os.path.isfile(densepose_path):
                  print(
                      f"can not find densepose for {os.path.basename(raw_cap.image_path)}"
                  )
                  densepose_path = None
              if tgt_size is None:
                  temp = NeuManCapture(
                      raw_cap.image_path,
                      depth_path,
                      mask_path,
                      raw_cap.pinhole_cam,
                      raw_cap.cam_pose,
                      view_id,
                      cam_id,
                      mono_depth_path=mono_depth_path,
                      keypoints_path=keypoints_path,
                      densepose_path=densepose_path,
                  )
              else:
                  temp = ResizedNeuManCapture(
                      raw_cap.image_path,
                      depth_path,
                      mask_path,
                      raw_cap.pinhole_cam,
                      raw_cap.cam_pose,
                      tgt_size,
                      view_id,
                      cam_id,
                      mono_depth_path=mono_depth_path,
                      keypoints_path=keypoints_path,
                      densepose_path=densepose_path,
                  )
              temp.frame_id = raw_cap.frame_id
              counter += 1
              caps.append(temp)
      return caps, raw_scene.point_cloud, num_views, num_cams
  
imports: import os
  import joblib
  import numpy
  import torch
  from tqdm import tqdm
  import PIL
  import scipy
  from data_io import colmap_helper
  from geometry import pcd_projector
  from cameras import captures, contents
  from scenes import scene
  from utils import utils, ray_utils
  from models.smpl import SMPL
label_desc: Use image node_id 4 for calling the NeuManReader obj's underlying member method code with example usage: obj.read_captures(cls, scene_dir, tgt_size, mask_dir, keypoints_dir, densepose_dir) and returns: caps,  raw_scene,  num_views,  num_cams