class_docstr: ROIPoolingLayer applies ROI Pooling (or tf.crop_and_resize).
  
  RoI pooling or RoI extraction is used to extract fixed size features from a
  variable sized feature map using variabled sized bounding boxes. Since we
  have proposals of different shapes and sizes, we need a way to transform
  them into a fixed size Tensor for using FC layers.
  
  There are two basic ways to do this, the original one in the FasterRCNN's
  paper is RoI Pooling, which as the name suggests, it maxpools directly from
  the region of interest, or proposal, into a fixed size Tensor.
  
  The alternative way uses TensorFlow's image utility operation called,
  `crop_and_resize` which first crops an Tensor using a normalized proposal,
  and then applies extrapolation to resize it to the desired size,
  generating a fixed size Tensor.
  
  Since there isn't a std support implemenation of RoIPooling, we apply the
  easier but still proven alternatve way.
code: def _roi_pooling(self, roi_proposals, conv_feature_map, im_shape):
      raise NotImplementedError()
  
file_path: luminoth/luminoth/models/fasterrcnn/roi_pool.py
imports: import sonnet
  import tensorflow
label_desc: Use image node_id 4 for calling the ROIPoolingLayer obj's underlying member method code with example usage: obj._roi_pooling(roi_proposals, conv_feature_map, im_shape) without return types