shjo-april/Tensorflow_FCOS

The implementation of head is different from that in the paper

Opened this issue · 1 comments

Centerness and Classification should be on the same branch,not regression!!

def build_head_loc(x, is_training, name, depth = 4):
with tf.variable_scope(name):
for i in range(depth):
x = conv_gn_relu(x, 256, (3, 3), 1, 'same', is_training, '{}'.format(i))

    **center_ness_x = conv_gn_relu(x, 1, (3, 3), 1, 'same', is_training, 'center-ness', gn = False, activation = False) 
    regression_x = conv_gn_relu(x, 4, (3, 3), 1, 'same', is_training, 'regression', gn = False, activation = False)**
return regression_x, center_ness_x

def build_head_cls(x, is_training, name, depth = 4):
with tf.variable_scope(name):
for i in range(depth):
x = conv_gn_relu(x, 256, (3, 3), 1, 'same', is_training, '{}'.format(i))

    x = tf.layers.conv2d(inputs = x, filters = CLASSES, kernel_size = [3, 3], strides = 1, padding = 'same', 
                         kernel_initializer = kernel_initializer, bias_initializer = class_bias_initializer, name = 'classification')
return x

@zcc720 In the updated paper they changed the original implementation. You can read more about it here.