'Extracts second stage box classifier features.
Args:
proposal_feature_maps: A 4-D float tensor with shape
[batch_size * self.max_num_proposals, crop_height, crop_width, depth]
representing the feature map cropped to each proposal.
scope: A scope name (unused).
Returns:
proposal_classifier_features: A 4-D float tensor with shape
[batch_size * self.max_num_proposals, height, width, depth]
representing box classifier features for each proposal.'

def _extract_box_classifier_features(self, proposal_feature_maps, scope):

    with tf.variable_scope(self._architecture, reuse=self._reuse_weights):
        with slim.arg_scope(resnet_utils.resnet_arg_scope(batch_norm_epsilon=1e-05, batch_norm_scale=True, weight_decay=self._weight_decay)):
            with slim.arg_scope([slim.batch_norm], is_training=False):
                blocks = [resnet_utils.Block('block4', resnet_v1.bottleneck, ([{'depth': 2048, 'depth_bottleneck': 512, 'stride': 1}] * 3))]
                proposal_classifier_features = resnet_utils.stack_blocks_dense(proposal_feature_maps, blocks)
    return proposal_classifier_features
