我正在阅读code以获得更快的rcnn。我有几个问题:
(1)我不知道cfg.TRAIN.OHEM的含义是什么。
(2)rpn_bbox_inside_weights和rpn_bbox_outside_weights之间的区别是什么。
(3)在TFFRCNN-master / lib / networs / network.py(build_loss)中,计算损失时,一些代码如下所示:
tf.gather(rpn_cls_score, rpn_keep)
tf.gather(rpn_label, rpn_keep)
为什么要收集rpn_keep?
(4)计算损失
loss = cross_entropy + loss_box + rpn_cross_entropy + rpn_loss_box
这意味着它结合了分类和rpn步骤。但是在论文中,作者意味着rpn首先被训练,并且分类是第二次训练。我的理解错了吗?
(5)在RPN网中,它将生成m * n * 9个锚点。但我找不到相关代码。
非常感谢您提前。
答案 0 :(得分:0)
我将回答我自己的两个问题。
(4)原始论文提供了三种训练网络的方法。在其中一种方法中,将RPN和分类组合起来进行训练。
当然,在另一种方法中,更快的rcnn可以首先训练RPN并进行分类。
(5)关于如何生成m * n * 9个锚点,在代码lib / networsk / VGGnet_train第51行中,基于特征映射生成的m * n * 36是9个锚点。
关于问题(1)(2)(3),我找不到答案。如果有人知道答案,请告诉我。
最佳, 强