proposals由下图所示proposal模块产生,proposal模块在整个faster-rcnn网络中的位置如下图:
图中proposal模块做了两件事,最终输出为指定数目的包含正负例的proposals。在proposal模块的一系列操作中,本文只关注proposal模块中构成proposals正负例的代码。
先简单描述一下给proposals打上正负例标签的做法。faster-rcnn原文中,从一堆anchor给proposals打上正负标签的办法,是使用softmax模块,如上图所示。但mmdetection中似乎没有softmax模块,而是用以下过程替代:直接在一大堆anchor中根据anchor和gt的重合程度(IoU),来设定正负例。
然后看代码。从上述给proposal打正负例标签的做法中可以看出,首先要获取IoU,为了获取IoU,先要知道每一个anchor的4个坐标点的数值。这4个坐标点数值是在rpn_head.py文件获得的,在rpn_head.py中与之相关的两个代码段如图1和图2所示,
图1
图2
这里对一个样本(一张图片)所有的anchors给出