关于anchor的解释

        第一次接触anchor是Faster-R-CNN中提及的RPN(Region Proposal Network)。在我的博文里【Faster-R-CNN总结】也有介绍Faster-R-CNN的几点总结,但是对anchor的定义没有详细说明。在学习过程中,发现很多人其实没有真正搞懂anchor,本人也是如此,反复研究后总算弄清楚原理。

        首先明确anchor的位置。anchor是在原图上的区域,而不是在特征图上。然后放一张RPN网络解析图,网上很多地方有引用,如有侵权,请联系我,会及时添加原作者引用:

关于anchor的解释_第1张图片

 

只看anchors和feature map。重点来了。为什么在特征图上滑动的3*3区域,映射回原图,能得到anchors。这个是基于什么机制。基于SPPnet机制。在SPPnet中,一张原图经过一系列卷积,得到feature map,原图上每个Region Proposal,就可以在这个feature map中找到一个区域,当然这时的区域不一定是2维的,比如7*7*3,是7*7大小区域3通道,然后根据下图机制,把任何大小区域都池化到固定维数。

       所以反过来看。上面RPN网络中的feature map中的3*3区域,就可以看成是经过SPPnet机制池化后得到的固定维数区域。这里是假想有这么一个SPPnet模块的作用(即上图中虚线的表示),其实Faster-R-CNN没有这样一个模块。所以原图上,相同中心,不同比例和面积的anchor,经过这样一个假想机制,确实都可以池化成3*3的区域。假想过程:每个anchor经过一系列卷积,得到feature map,这个feature map经过spp机制池化得到了3*3*nchannels维度的特征图。这里的anchors不就相当于SPPnet中原图上的Region Proposals。END!

关于anchor的解释_第2张图片

 

你可能感兴趣的:(机器学习)