code: def draw_item(self, eimg, item):
      # bbox, kps, eye_kps = item
      eye_kps = item
      # eye_kps[:,2] *= 10.0
      eye_l = eye_kps[: self.num_eye, :]
      eye_r = eye_kps[self.num_eye :, :]
      for _eye in [eye_l, eye_r]:
          tmp = _eye[:, 0].copy()
          _eye[:, 0] = _eye[:, 1].copy()
          _eye[:, 1] = tmp
      # img_crp, trf_crp = image.crop_to_pointcloud_proportion(PointCloud(np.concatenate((eye_l[:, :2], eye_r[:, :2]))), 0.4,  return_transform=True)
      # img_crp.view(1)
      # trf_crp.pseudoinverse().apply(TriMesh(eye_l, tri481).with_dims([0, 1])).view(1, marker_size=0.01, line_width=0.1)
      # trf_crp.pseudoinverse().apply(PointCloud(eye_l[iris_idx_481]).with_dims([0, 1])).view(1)
      # trf_crp.pseudoinverse().apply(TriMesh(eye_r, tri481).with_dims([0, 1])).view(1, marker_size=0.01, line_width=0.1)
      # trf_crp.pseudoinverse().apply(PointCloud(eye_r[iris_idx_481]).with_dims([0, 1])).view(1)
  
      for _eye in [eye_l, eye_r]:
          _kps = _eye[self.iris_idx_481, :].astype(np.int)
          for l in range(_kps.shape[0]):
              color = (0, 255, 0)
              cv2.circle(eimg, (_kps[l][1], _kps[l][0]), 4, color, 4)
          # print(tri481.shape)
          for _tri in self.tri481:
              color = (0, 0, 255)
              for k in range(3):
                  ix = _tri[k]
                  iy = _tri[(k + 1) % 3]
                  x = _eye[ix, :2].astype(np.int)[::-1]
                  y = _eye[iy, :2].astype(np.int)[::-1]
                  cv2.line(eimg, x, y, color, 1)
  
      theta_x_l, theta_y_l, vec_l = angles_and_vec_from_eye(
          eye_l, self.iris_idx_481
      )
      theta_x_r, theta_y_r, vec_r = angles_and_vec_from_eye(
          eye_r, self.iris_idx_481
      )
      gaze_pred = np.array(
          [(theta_x_l + theta_x_r) / 2, (theta_y_l + theta_y_r) / 2]
      )
  
      diag = np.sqrt(float(eimg.shape[0] * eimg.shape[1]))
  
      # img_crp, trf_crp = image.crop_to_pointcloud_proportion(PointCloud(lms[17:-20]), 0.1, return_transform=True)
      # diag = img_crp.diagonal()
  
      eye_pos_left = eye_l[self.iris_idx_481].mean(axis=0)[[0, 1]]
      eye_pos_right = eye_r[self.iris_idx_481].mean(axis=0)[[0, 1]]
  
      ##fig = plt.figure(0)
      ##image.view(0, figure_size=(4,4))
      # PointCloud(eye_l[iris_idx_481]).with_dims([0, 1]).view(0, marker_size=3, figure_size=(4,4))
      # PointCloud(eye_r[iris_idx_481]).with_dims([0, 1]).view(0, marker_size=3, figure_size=(4,4))
  
      ## pred ---
      gaze_pred = np.array([theta_x_l, theta_y_l])
      dx = 0.4 * diag * np.sin(gaze_pred[1])
      dy = 0.4 * diag * np.sin(gaze_pred[0])
      x = np.array([eye_pos_left[1], eye_pos_left[0]])
      y = x.copy()
      y[0] += dx
      y[1] += dy
      x = x.astype(np.int)
      y = y.astype(np.int)
      color = (0, 255, 255)
      cv2.line(eimg, x, y, color, 2)
  
      gaze_pred = np.array([theta_x_r, theta_y_r])
      dx = 0.4 * diag * np.sin(gaze_pred[1])
      dy = 0.4 * diag * np.sin(gaze_pred[0])
      x = np.array([eye_pos_right[1], eye_pos_right[0]])
      y = x.copy()
      y[0] += dx
      y[1] += dy
      x = x.astype(np.int)
      y = y.astype(np.int)
      color = (0, 255, 255)
      cv2.line(eimg, x, y, color, 2)
      return eimg
  
imports: from models import GazeModel
  import sys
  import glob
  import torch
  import os
  import os.path
  import numpy
  import cv2
  import os.path
  import insightface
  from insightface.app import FaceAnalysis
  from insightface.utils import face_align
  import menpo.io
  from menpo.image import Image
  from menpo.shape import PointCloud, TriMesh
label_desc: Use image node_id 2 for calling the GazeHandler obj's underlying member method code with example usage: obj.draw_item(eimg, item) and returns: eimg