code: def read_obj(path):
      vert = []
      uvs = []
      faces = []
      with open(path) as f:
          for line in f:
              line = line.rstrip("\n")
              if line[:2] == "v ":
                  v = line[2:].split()
                  v = [float(i) for i in v]
                  vert.append(np.array(v))
              elif line[:3] == "vt ":
                  uv = line[3:].split()
                  uv = [float(i) for i in uv]
                  uvs.append(np.array(uv))
              elif line[:2] == "f ":
                  f = line[2:].split()
                  fv = [int(i.split("/")[0]) for i in f]
                  ft = [int(i.split("/")[1]) for i in f]
                  faces.append(np.array(fv + ft))
  
      vert = np.array(vert)
      uvs = np.array(uvs)
      faces = np.array(faces) - 1
      return vert, uvs, faces
  
imports: import os
  import random
  import numpy
  import open3d
  import torch
  import pytorch3d
  import matplotlib.pyplot
  import matplotlib
  from scipy import ndimage
  from tqdm import tqdm
  from models.smpl import SMPL, vertices2joints
label_desc: Use image node_id 12 for calling a global function with example usage: read_obj(path) and returns: vert,  uvs,  faces