Faster rcnn代码理解

Posted outthinker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Faster rcnn代码理解相关的知识,希望对你有一定的参考价值。

上一篇我们说完了AnchorTargetLayer层,然后我将Faster rcnn中的其他层看了,这里把ROIPoolingLayer层说一下;

我先说一下它的实现原理:RPN生成的roi区域大小是对应与输入图像大小(而且每一个roi大小都不同,因为先是禅城九种anchors,又经过回归,所以大小各不同),所以在ROIPoolingLayer层中,先将每一个roi区域映射到经过conv5的feature map上,然后roi对应于feature map上的这一块区域再经过pooling操作映射到一个固定大小的区域,这里我们用feature map_2表示,Faster rcnn中这个feature map_2的大小设为了6*6。而pooling操作就是feature map_2上的每一个点对应于feature map上roi区域上的一个部分中的最大值~具体看代码:

上面代码中的spatial_scale在Faster rcnn中为1/16(因为卷积层没有改变大小,只有pool层改变了大小,所以1/16实际就是pool层的级联),上面实现了setup()函数和reshape()函数,接下来就看前向传播了:

               

上面代码中:

这一部分实现了RoiPooling中的pool操作,其实就是max操作;

最后为了理解,附上灵魂画师的图:

 

以上是关于Faster rcnn代码理解的主要内容,如果未能解决你的问题,请参考以下文章

Faster rcnn代码理解

Faster RCNN算法训练代码解析

从端到端的Fast RCNN到走向实时的Faster RCNN (原理及Pytorch代码解析)

Faster RCNN算法代码解析

Faster RCNN代码解析

Keras版Faster-RCNN代码学习(IOU,RPN)1