code: def __init__(self, opt, projection="orthogonal"):
      self.opt = opt
      self.projection_mode = projection
  
      self.root = self.opt.dataroot
      self.img_files = sorted(
          [
              os.path.join(self.root, f)
              for f in os.listdir(self.root)
              if f.split(".")[-1]
              in ["png", "jpeg", "jpg", "PNG", "JPG", "JPEG"]
              and os.path.exists(
                  os.path.join(
                      self.root,
                      f.replace(
                          ".%s" % (f.split(".")[-1]), "_keypoints.json"
                      ),
                  )
              )
          ]
      )
      self.IMG = os.path.join(self.root)
  
      self.phase = "val"
      self.load_size = self.opt.loadSize
  
      if self.opt.crop_type == "face":
          self.crop_func = face_crop
      elif self.opt.crop_type == "upperbody":
          self.crop_func = upperbody_crop
      else:
          self.crop_func = fullbody_crop
  
      # PIL to tensor
      self.to_tensor = transforms.Compose(
          [
              transforms.ToTensor(),
              transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
          ]
      )
  
      # only used in case of multi-person processing
      self.person_id = 0
  
imports: import os
  import random
  import numpy
  from PIL import Image, ImageOps
  from PIL.ImageFilter import GaussianBlur
  import cv2
  import torch
  import json
  from torch.utils.data import Dataset
  import torchvision.transforms
label_desc: Use image node_id 2 to create a new EvalWPoseDataset object from inherited base classes: Dataset with example: obj = EvalWPoseDataset(opt, projection)