DetectionTeamUCAS / FPN_Tensorflow

This is a tensorflow re-implementation of Feature Pyramid Networks for Object Detection.
https://github.com/DetectionTeamUCAS/FPN_Tensorflow
MIT License
347 stars 132 forks source link

损失函数的问题 #133

Closed gbyy422990 closed 4 years ago

gbyy422990 commented 4 years ago

你好,我想问一下您在计算smooth l1的时候bbox_pred返回的是[y_min, x_min, height, width]吗?还是别的格式?谢谢

yangxue0827 commented 4 years ago

是偏移量dx dy dw dh @gbyy422990

gbyy422990 commented 4 years ago
def calculate_iou(b1, b2,):
    zero = tf.convert_to_tensor(0., b1.dtype)
    b1_xmin, b1_ymin, b1_xmax, b1_ymax = tf.unstack(b1, 4, axis=-1)
    b2_xmin, b2_ymin, b2_xmax, b2_ymax = tf.unstack(b2, 4, axis=-1)
    b1_width = tf.maximum(zero, b1_xmax - b1_xmin)
    b1_height = tf.maximum(zero, b1_ymax - b1_ymin)
    b2_width = tf.maximum(zero, b2_xmax - b2_xmin)
    b2_height = tf.maximum(zero, b2_ymax - b2_ymin)
    b1_area = b1_width * b1_height
    b2_area = b2_width * b2_height

    intersect_ymin = tf.maximum(b1_ymin, b2_ymin)
    intersect_xmin = tf.maximum(b1_xmin, b2_xmin)
    intersect_ymax = tf.minimum(b1_ymax, b2_ymax)
    intersect_xmax = tf.minimum(b1_xmax, b2_xmax)
    intersect_width = tf.maximum(zero, intersect_xmax - intersect_xmin)
    intersect_height = tf.maximum(zero, intersect_ymax - intersect_ymin)
    intersect_area = intersect_width * intersect_height

    union_area = b1_area + b2_area - intersect_area
    iou = tf.math.divide_no_nan(intersect_area, union_area)
    return iou

能帮忙看一下这么写iou损失作为回归的损失有没有什么问题?我试了一下好像不收敛,bbox的coord结果基本都不对,谢谢您的回复。

gbyy422990 commented 4 years ago

@yangxue0827

yangxue0827 commented 4 years ago

看起来没有问题 @gbyy422990

gbyy422990 commented 4 years ago

@yangxue0827 再问一下哈,您上面提到的dx,dy是center的吧,还是top left的?

yangxue0827 commented 4 years ago

中心点和长宽的偏移量 @gbyy422990

gbyy422990 commented 4 years ago

@yangxue0827 好哒,谢谢你。但是为啥会不收敛你有啥建议吗?在tensorboard中看到loss还算正常,但是图像上都检测不到

yangxue0827 commented 4 years ago

这个不好说,我觉得大概率是你相关代码写的有问题。你可以检查一下box的编解码那有没有弄错,因为你这iou我看是没问题的,有可能是计算iou的两个框没有弄对。 @gbyy422990

gbyy422990 commented 4 years ago

@yangxue0827 好哒,太感谢啦,回复好及时,哈哈哈