class_docstr: Proposal generator for RPN.
  
  RPNProposal takes RPN anchors, RPN prediction scores and box regression predictions.
  It will transform anchors, apply NMS (if set to true) to get clean foreground proposals.
  
  Parameters
  ----------
  clip : float
      Clip bounding box target to this value.
  min_size : int
      Proposals whose size is smaller than ``min_size`` will be discarded.
  stds : tuple of float
      Standard deviation to be multiplied from encoded regression targets.
      These values must be the same as stds used in RPNTargetGenerator.
  nms : boolean
      Whether to do nms.
  minimal_opset : bool
      We sometimes add special operators to accelerate training/inference, however, for exporting
      to third party compilers we want to utilize most widely used operators.
      If `minimal_opset` is `True`, the network will use a minimal set of operators good
      for e.g., `TVM`.
code: def __init__(self, clip, min_size, stds, minimal_opset=False):
      super(RPNProposal, self).__init__()
      self._box_to_center = BBoxCornerToCenter()
      self._box_decoder = NormalizedBoxCenterDecoder(
          stds=stds,
          clip=clip,
          convert_anchor=True,
          minimal_opset=minimal_opset,
      )
      self._clipper = BBoxClipToImage()
      # self._compute_area = BBoxArea()
      self._min_size = min_size
  
file_path: gluon-cv/gluoncv/model_zoo/rcnn/rpn/proposal.py
imports: from __future__ import absolute_import
  from mxnet import autograd
  from mxnet import gluon
  from ....nn.bbox import BBoxCornerToCenter, BBoxClipToImage
  from ....nn.coder import NormalizedBoxCenterDecoder
label_desc: Use image node_id 1 to create a new RPNProposal object from inherited base classes: gluon with example: obj = RPNProposal(clip, min_size, stds, minimal_opset)