Faster rnn中anchor的理解

第一篇学习记录博客。

主要写一下自己对Faster rcnn中anchor机制的理解,便于以后查阅。

因为最近在看cvpr2019的anchor-free的FSAF,核心即anchor,对这个理解不透彻,所以回来搞搞清楚。

水平有限,有什么错误,希望大家指正。

一、Rcnn→Fast Rcnn→Faster Rcnn

RCNN:用Selective Search 方法直接在图像上画框框(region proposal:理解为区域提名,就是提名这个框框里可能有目标),然后对每个框框内的图像提取特征,再把特征送入SVM分类器进行分类(看看这个框框里的目标是哪一类),再使用回归器对这个框框的位置进行修正。

Fast RCNN:嫌弃RCNN太慢太慢了,每个框框都提一遍特征,但是很多框框有重叠啊!这样就等于做了很多重复计算。那对整个图像提完特征再在特征图上画框框岂不是更好?于是在SSPNet上改进,做了classification和regression,端到端进行训练。但是画框框(proposal)还是用Selective Search方法。

Faster RCNN:就是把proposal的过程也交给了CNN!也就是Region Proposal Network(RPN)

 

二、Faster Rcnn

Faster rnn中anchor的理解_第1张图片

image→conv layers→feature maps

feature maps送入RPN

那么RPN如何产生proposal呢?

看下面这张图

Faster rnn中anchor的理解_第2张图片

在feature map上做3*3的卷积,每个卷积都有个中心位置,就是sliding window的蓝点。这个蓝点可以在原图像(image)中找到对应的点(即anchor)。以anchor为中心,我们设置3种比例、3种规模来确定anchor box,就是9种anchor box(在图片这里是k=9)!也就是说feature map上,做一次卷积(以一个点为中心),得到256维的向量,这个256维的向量(代表了原图上的9个anchor box内的图像特征),再通过cls layer和reg layer。通过cls layer,卷积得到2k=18维的向量,即代表9个anchor box是前景、背景的概率。通过reg layer,卷积得到4k=36维的向量,即代表9个anchor box regression的centerx,centery,w,d。

再过一遍整个过程:

feature map 13*13*256→13*13个 1*1*256,每个1*1*256代表9个proposal,13*13的feature map共产生13*13*9个proposal~

每个1*1*256→cls layer(1*1*256*18)→得到1*1*18的特征向量(代表9个proposal是前景、背景的概率)

每个1*1*256→reg layer(1*1*256*36)→得到1*1*36的特征向量(代表9个proposal的centerx,centery,w,d)

 

个人理解,有错误拜托大家指正,谢谢。

参考博客:

https://blog.csdn.net/gm_margin/article/details/80245470

https://blog.csdn.net/Site1997/article/details/79327265

你可能感兴趣的:(Faster rnn中anchor的理解)