对于这个网络的理解,着实花了一点时间,这也是写下这篇文章的初衷,以方便自己以后来复习,看了作者的论文,论文可能由于翻译的原因,加上自己没有耐下心,看着有些烦躁,然后去看其他人的博客,因为这种几年前的文章,肯定有很多博客,但是发现,这些博客要么内容一致,要么就是讲的不是很清晰,还好发现了一篇文章:RFCN的解释,这篇文章还可以,我结合这篇文章,加上看论文,终于大概搞清楚了RFCN,现在再说下一自己的理解。
先附上作者的对结构的附图:
图1 RFCN整体框架
图二 RFCN分割出来的部分
整篇论文,其实就可以用这两张图片来解释,我一直不理解的是,为什么在featuermaps之后要用1x1的卷积来生成通道数为k^2 * (c+1),后面才理解了。我们注意看图二,c指的是类别总数,c+1是由于把背景算成一个类别加在里面了。这里的k^2可以理解为得分标准,比如k等于3,那么就可以有9个得分标准,注意看图二,每个得分标准里面有c+1个类,指的就是每个类按照当前的得分标准获得的分数。所以最后对position-sensitive score maps中的的k^2 * (c+1)理解为:每个像素在不同类别下的不同得分标准下的分数。而对于图二倒数第二层的理解为:roi(经过rpn删选出来的预选边框)中每一个小块中每个像素在相同类别下,用不同的得分标准得到的平均分,最后会得到一个(c+1)xkxk的矩阵w,我们在w中的每一层求和,就降w的维度变为c+1了,再用softmax来进行分类。
接下来探讨一下为什么为k^2的问题了,我们知道,经过rpn获取的ROI区域,将其分成k∗k个区域,我们要将每个区域制定一个得分标准,这样才能一一对应,所以最后才是k ^ 2 x (c+1)。
而对于边框回归,采取的方法是从基CNN的feature map部分连接出一个4 x k ^ 2通道的maps(与位置敏感maps并列),用来做候选框坐标微调,这里之所以为4,可以理解为判定x,y,w,h这四个预测边框位置的微调得分标准,然后接下来的操作跟上面差不多,最后每个就可以获得一个4x1维的矩阵,分别对应预测边框的x,y,w,h的纠正参数,这几个参数会随着模型训练去更新梯度。让预测的边框和真实的边框尽可能一致。
以上就是我的一点理解,可能有些理解偏差,希望能帮到大家。
2020 6.3