class_docstr: Assign object detection proposals to ground-truth targets. Produces proposal
  classification labels and bounding-box regression targets.
class_docstr_tok: ["Assign","object","detection","proposals","to","ground-truth","targets",".","Produces","proposal","classification","labels","and","bounding-box","regression","targets","."]
docstr: Compute bounding-box regression targets for an image.
docstr_tok: ["Compute","bounding-box","regression","targets","for","an","image","."]
code: def _compute_targets(self, ex_rois, gt_rois, labels):
      """Compute bounding-box regression targets for an image."""
  
      assert ex_rois.shape[0] == gt_rois.shape[0]
      assert ex_rois.shape[1] == 4
      assert gt_rois.shape[1] == 4
  
      targets = bbox_transform(ex_rois, gt_rois)
      if self._normalize_targets:
          # Optionally normalize targets by a precomputed mean and stdev
          targets = (
              targets - np.array(self._normalize_means)
          ) / np.array(self._normalize_stds)
  
      return np.hstack((labels[:, np.newaxis], targets)).astype(
          np.float32, copy=False
      )
  
file_path: CNTK/Examples/Image/Detection/utils/rpn/proposal_target_layer.py
imports: from cntk import output_variable, FreeDimension
  from cntk.ops.functions import UserFunction
  import yaml
  import numpy
  import numpy.random
  from utils.rpn.bbox_transform import bbox_transform
  from utils.cython_modules.cython_bbox import bbox_overlaps
label_desc: Use image node_id 9 for calling the ProposalTargetLayer obj's underlying member method code with example usage: obj._compute_targets(ex_rois, gt_rois, labels) and returns: np