code: def forFrame(
      frame_number, output_array, output_count, detected_frame
  ):
      assert isinstance(detected_frame, ndarray)
      assert isinstance(frame_number, int)
      assert isinstance(output_array, list)
      assert isinstance(output_array[0], dict)
      assert isinstance(output_array[0]["name"], str)
      assert isinstance(
          output_array[0]["percentage_probability"], float
      )
      assert isinstance(output_array[0]["box_points"], list)
  
      assert isinstance(output_count, dict)
      for a_key in dict(output_count).keys():
          assert isinstance(a_key, str)
          assert isinstance(output_count[a_key], int)
  
file_path: ImageAI/test/test_custom_video_detection.py
imports: import os, sys
  from typing import List
  from numpy import ndarray
  from os.path import dirname
  from mock import patch
  from imageai.Detection.Custom import CustomVideoObjectDetection
label_desc: Use image node_id 1 for calling the CallbackFunctions obj's underlying member method code with example usage: obj.forFrame(frame_number, output_array, output_count, detected_frame) without return types