这是源代码定义的anchors概念:
实现过程:
假如有一张500×500的图片,那么经过第一步深度卷积网络之后(4次池化),最终就会变成一个32×32的特征:
在开源代码实现里面:
所以经过卷积完之后,每一个红点就是32×32上的每一个特征像素点经过乘以16(feat_stride)后映射回原图的位置。红点就是特征层经过反映射回原图的特征点,然后会在每个特征点上加上anchors偏移量,最后就会得到每一个像素点上会生成9个不同大小,不同形状比例的边框,如下:
anchors
至于9是如何来的以及生成红点的细节...后续会更 吧?
引入anchors的作用:
1.为了解决计算效率问题;
2.为了让rpn训练的时候有目标参考,做目标检测需要考虑的问题,始终要有一个参考值,每一个anchor是属于前景还是背景。