一、faster_rcnn中,第一阶段的rpn中的overlaps有很多重复数据
可视化overlaps数据的时候,发现里面有很多重复数据,让我百思不得其解,想不明白,gt中的坐标不相同,虽然anchors框的大小不相同,但是anchors坐标不相同,也就是与gt的iou是不相同的,overlaps里面为啥这么多重复数据呢?
二、重复数据来自完全包含框
当gt框比较大,anchors框比较小,完全在gt框之内时,且 overlap 是两个框的交集除以两个框的并集,这种情况下,并集是gt框面积,交集是anchor框面积,三种颜色的anchor框,即灰色、绿色、蓝色,的面积是相同的。
在faster_rcnn中,anchor框的生成参数有,scale = 8, 当feature_map的stride=4时,ratios=[0.5, 1.0, 2.0],有下面的代码生成需要的参数
h_ratios = torch.sqrt(ratios) # h_ratios: tensor([0.7071, 1.0000, 1.4142]
w_ratios = 1 / h_ratios # w_ratios: tensor([1.4142, 1.0000, 0.7071]
anchor1_w = 4 x 8 x1 = 32.0000
anchor1_h = 4 x 8 x1 = 32.0000
anchor2_w = 4 x 8 x 0.7071 = 22.6274
anchor2_h = 4 x 8 x 1.4142 = 45.2548
anchor3_w = 4 x 8 x 1.4142 = 45.2548
anchor3_h = 4 x 8 x 0.7071 = 22.6274
然后我们发现, anchor1_w * anchor1_h = anchor2_w * anchor2_h = anchor3_w * anchor3_h
当overlap相同时,anchor框的设计就是要让三种框的面积相同,长宽比分别为1:2, 1:1, 2:1的三种框在同一种情况下都被选中,这样会增加目标检测出来的概率。