class_docstr: This is the custom objects detection class for videos and camera live stream inputs in the ImageAI library. It provides support for YOLOv3 and TinyYOLOv3 object detection networks. After instantiating this class, you can set it's properties and
  make object detections using it's pre-defined functions.
  The following functions are required to be called before object detection can be made
  * setModelPath()
  * At least of of the following and it must correspond to the model set in the setModelPath()
  [setModelTypeAsRetinaNet(), setModelTypeAsYOLOv3(), setModelTinyYOLOv3()]
  * loadModel() [This must be called once only before performing object detection]
  Once the above functions have been called, you can call the detectObjectsFromVideo() function
  or the detectCustomObjectsFromVideo() of  the object detection instance object at anytime to
  obtain observable objects in any video or camera live stream.
code: def __init__(self):
      self.__detector = CustomObjectDetection()
  
imports: import os
  import time
  import math
  import json
  import warnings
  from typing import List, Union, Tuple, Dict
  from collections import defaultdict
  import numpy
  from PIL import Image
  import cv2
  import torch
  from torch.cuda import amp
  from torch.utils.data import DataLoader
  from torch.optim import SGD, lr_scheduler
  from tqdm import tqdm
  from .yolo.dataset import LoadImagesAndLabels
  from .yolo.custom_anchors import generate_anchors
  from .yolo.compute_loss import compute_loss
  from .yolo import validate
  from ...yolov3.tiny_yolov3 import YoloV3Tiny
  from ...yolov3.yolov3 import YoloV3
  from ...yolov3.utils import draw_bbox_and_label, get_predictions, prepare_image
  from ...backend_check.model_extension import extension_check
label_desc: Use image node_id 1 to create a new CustomVideoObjectDetection object  with example: obj = CustomVideoObjectDetection()