docstr: Parameters
  ----------
  image: RGB images
  
  Returns
  -------
docstr_tok: ["Parameters","--","--","--","--","--","image",":","RGB","images","Returns","--","--","--","-"]
code: def run_detection(
      self,
      image,
      tracking_box_indices,
      tracking_box_weights,
      tracking_box_classes,
  ):
      """
  
      Parameters
      ----------
      image: RGB images
  
      Returns
      -------
  
      """
      # pylint: disable=logging-format-interpolation
      with timeit_context("preprocess"):
          (
              data_tensor,
              padded_w,
              padded_h,
              expand,
          ) = mxnet_frame_preprocessing(
              image,
              self.data_shape,
              self.ratio,
              self.mean_mx,
              self.std_mx,
              self.ctx,
          )
  
          logging.info(
              "input tensor shape {}".format(data_tensor.shape)
          )
          mx.nd.waitall()
  
      with timeit_context("network"):
          real_tracking_indices = (
              tracking_box_indices
              + tracking_box_classes * self._anchor_num
          )
          (
              ids,
              scores,
              detection_bboxes,
              detection_anchor_indices,
              tracking_results,
              anchors,
          ) = self.net(
              data_tensor.as_in_context(self.ctx),
              real_tracking_indices,
              tracking_box_weights,
          )
  
          tracking_bboxes = tracking_results[:, [2, 3, 4, 5, 1]]
  
          detection_bboxes = _remap_bboxes(
              detection_bboxes[0, :, :],
              padded_w,
              padded_h,
              expand,
              self.data_shape,
              self.ratio,
          )
          tracking_bboxes = _remap_bboxes(
              tracking_bboxes,
              padded_w,
              padded_h,
              expand,
              self.data_shape,
              self.ratio,
          )
          mx.nd.waitall()
  
      # set anchors if needed
      if self._anchor_image_shape != (image.shape[:2]):
          self._anchor_image_shape = image.shape[:2]
          # initialize the anchor tensor for assignment
          self.anchor_tensor = anchors[0, :, :]
          half_w = self.anchor_tensor[:, 2] / 2
          half_h = self.anchor_tensor[:, 3] / 2
          center_x = self.anchor_tensor[:, 0].copy()
          center_y = self.anchor_tensor[:, 1].copy()
  
          # anchors are in the original format of (center_x, center_y, w, h)
          # translate them to (x0, y0, x1, y1)
          self.anchor_tensor[:, 0] = center_x - half_w
          self.anchor_tensor[:, 1] = center_y - half_h
  
          self.anchor_tensor[:, 2] = center_x + half_w
          self.anchor_tensor[:, 3] = center_y + half_h
  
          self.anchor_tensor = _remap_bboxes(
              self.anchor_tensor,
              padded_w,
              padded_h,
              expand,
              self.data_shape,
              self.ratio,
          )
          self._anchor_num = self.anchor_tensor.shape[0]
  
      return (
          ids[0],
          scores[0],
          detection_bboxes,
          tracking_bboxes,
          detection_anchor_indices[0].asnumpy(),
      )
  
file_path: gluon-cv/gluoncv/model_zoo/smot/general_detector.py
imports: import logging
  import numpy
  import mxnet
  from gluoncv.data import COCODetection
  from .utils import mxnet_frame_preprocessing, timeit_context
  from .utils import remap_bboxes
  from .presets import *
label_desc: Use image node_id 2 for calling the GeneralDetector obj's underlying member method code with example usage: obj.run_detection(image, tracking_box_indices, tracking_box_weights, tracking_box_classes) and returns: ids,  scores,  detection_bboxes,  tracking_bboxes,  detection_anchor_indices