docstr: Run per image evaluation on given images and store results (a list of dict) in self.evalImgs
  :return: None
docstr_tok: ["Run","per","image","evaluation","on","given","images","and","store","results","(","a","list","of","dict",")","in","self.evalImgs",":","return",":","None"]
code: def evaluate(self):
      """
      Run per image evaluation on given images and store results (a list of dict) in self.evalImgs
      :return: None
      """
      tic = time.time()
      print("Running per image evaluation...")
      p = self.params
      # add backward compatibility if useSegm is specified in params
      if not p.useSegm is None:
          p.iouType = "segm" if p.useSegm == 1 else "bbox"
          print(
              "useSegm (deprecated) is not None. Running {} evaluation".format(
                  p.iouType
              )
          )
      print("Evaluate annotation type *{}*".format(p.iouType))
      p.imgIds = list(np.unique(p.imgIds))
      if p.useCats:
          p.catIds = list(np.unique(p.catIds))
      p.maxDets = sorted(p.maxDets)
      self.params = p
  
      self._prepare()
      # loop through images, area range, max detection number
      catIds = p.catIds if p.useCats else [-1]
  
      if p.iouType == "segm" or p.iouType == "bbox":
          computeIoU = self.computeIoU
      elif p.iouType == "keypoints":
          computeIoU = self.computeOks
      self.ious = {
          (imgId, catId): computeIoU(imgId, catId)
          for imgId in p.imgIds
          for catId in catIds
      }
  
      evaluateImg = self.evaluateImg
      maxDet = p.maxDets[-1]
      self.evalImgs = [
          evaluateImg(imgId, catId, areaRng, maxDet)
          for catId in catIds
          for areaRng in p.areaRng
          for imgId in p.imgIds
      ]
      self._paramsEval = copy.deepcopy(self.params)
      toc = time.time()
      print("DONE (t={:0.2f}s).".format(toc - tic))
  
imports: import numpy
  import datetime
  import time
  from collections import defaultdict
  from .mask import *
  import copy
label_desc: Use image node_id 3 for calling the COCOeval obj's underlying member method code with example usage: obj.evaluate() without return types