Реализация пула ROI в tensorflow

#python #tensorflow

#python #tensorflow

Вопрос:

Я написал следующий код, который принимает тензор feature_map формы (n_channels, img_height, img_width) и область интереса формы (5,) (элементами которой являются (1, xmin, ymin, xmax, ymax) ) и возвращает максимальный элемент каждого канала в указанной области:

 def tf_box_pool(self, feature_map, roi):
        ''' Extracts region of interest from feature map
        '''

        # Compute the scaled down region of interest
        self.spatial_scale = K.cast(self.spatial_scale, 'float32')

        roi_start_w = tf.math.scalar_mul(self.spatial_scale, tf.cast(roi[1], 'float32'))
        roi_start_h = tf.math.scalar_mul(self.spatial_scale, tf.cast(roi[2], 'float32'))
        roi_end_w = tf.math.scalar_mul(self.spatial_scale, tf.cast(roi[3], 'float32'))
        roi_end_h = tf.math.scalar_mul(self.spatial_scale, tf.cast(roi[4], 'float32'))

        roi_height = tf.math.round(tf.math.maximum(roi_end_h - roi_start_h   1, 1))
        roi_width = tf.math.round(tf.math.maximum(roi_end_w - roi_start_w   1, 1))

        h_start = K.cast(roi_start_h, 'int32')
        height = K.cast(roi_height, 'int32')
        h_end = h_start   height
        w_start = K.cast(roi_start_w, 'int32')
        width = K.cast(roi_width, 'int32')
        w_end = w_start   width     

        mapped_region = feature_map[:, h_start:h_end, w_start:w_end]

        pooled_features = tf.math.reduce_max(mapped_region, axis=[1,2])

        return pooled_features
  

Теперь у меня есть два тензора, представляющих пакет изображений и пакет списков областей интересов, формы которых являются соответственно (batch_size, n_channels, img_width, img_height) и (batch_size, n_rois, 5) .

Я хочу применить функцию, описанную выше, n_rois раз к каждому изображению в первом тензоре, передавая ее вместе с каждой интересующей областью во втором тензоре. Конечным результатом должен быть тензор формы (batch_size, n_rois, n_channels)

Как я могу это сделать?

Комментарии:

1. Вы все это поняли?

2. @rigo Я сделал и написал статью об этом! medium.com/xplore-ai /…