code: def report(self, average=False):
      dic = {}
      pre_time = self.preprocess_time_s.value()
      infer_time = self.inference_time_s.value()
      post_time = self.postprocess_time_s.value()
      track_time = self.tracking_time_s.value()
  
      dic["preprocess_time_s"] = (
          round(pre_time / max(1, self.img_num), 4)
          if average
          else pre_time
      )
      dic["inference_time_s"] = (
          round(infer_time / max(1, self.img_num), 4)
          if average
          else infer_time
      )
      dic["postprocess_time_s"] = (
          round(post_time / max(1, self.img_num), 4)
          if average
          else post_time
      )
      dic["img_num"] = self.img_num
      total_time = pre_time + infer_time + post_time
      if self.with_tracker:
          dic["tracking_time_s"] = (
              round(track_time / max(1, self.img_num), 4)
              if average
              else track_time
          )
          total_time = total_time + track_time
      dic["total_time_s"] = round(total_time, 4)
      return dic
  
imports: import time
  import os
  import sys
  import ast
  import argparse
label_desc: Use image node_id 4 for calling the Timer obj's underlying member method code with example usage: obj.report(average) and returns: dic