class_docstr: Transforms anchors and RPN predictions into object proposals.
  
  Using the fixed anchors and the RPN predictions for both classification
  and regression (adjusting the bounding box), we return a list of objects
  sorted by relevance.
  
  Besides applying the transformations (or adjustments) from the prediction,
  it tries to get rid of duplicate proposals by using non maximum supression
  (NMS).
class_docstr_tok: ["Transforms","anchors","and","RPN","predictions","into","object","proposals",".","Using","the","fixed","anchors","and","the","RPN","predictions","for","both","classification","and","regression","(","adjusting","the","bounding","box",")",",","we","return","a","list","of","objects","sorted","by","relevance",".","Besides","applying","the","transformations","(","or","adjustments",")","from","the","prediction",",","it","tries","to","get","rid","of","duplicate","proposals","by","using","non","maximum","supression","(","NMS",")","."]
code: def __init__(
      self, num_anchors, config, debug=False, name="proposal_layer"
  ):
      super(RPNProposal, self).__init__(name=name)
      self._num_anchors = num_anchors
  
      # Filtering config
      # Before applying NMS we filter the top N anchors.
      self._pre_nms_top_n = config.pre_nms_top_n
      self._apply_nms = config.apply_nms
      # After applying NMS we filter the top M anchors.
      # It's important to understand that because of NMS, it is not certain
      # we will have this many output proposals. This is just the upper
      # bound.
      self._post_nms_top_n = config.post_nms_top_n
      # Threshold to use for NMS.
      self._nms_threshold = float(config.nms_threshold)
      # Currently we do not filter out proposals by size.
      self._min_size = config.min_size
      self._filter_outside_anchors = config.filter_outside_anchors
      self._clip_after_nms = config.clip_after_nms
      self._min_prob_threshold = float(config.min_prob_threshold)
      self._debug = debug
  
imports: import sonnet
  import tensorflow
  from luminoth.utils.bbox_transform_tf import decode, clip_boxes, change_order
label_desc: Use image node_id 1 to create a new RPNProposal object from inherited base classes: snt with example: obj = RPNProposal(num_anchors, config, debug, name)