Roi-Pooling学习

    GBD-Net的finetune有两步,第一步是微调一个没有GBD模块的基础网络,第二步是微调一个插入GBD之后的网络,然后两个模型整合到一起得到最终的模型。(怎么整合的?)


图1

    可以看到没有GBD的基础网络微调model中有一层roi-pooling,最近经常看到,现在来学习一下。

     FasterRcnn在输入的时候,对不同尺度的图像进行了reshape归一,而在对目标区域进行学习的时候,因为会生成各种尺度的框,所以也需要一个层来进行reshape,roi-pooling就是干这个事情的,跟前者的区别是:前者是针对输入图像的,后者是针对roi的,即输入是不同大小的featuremap,输出是固定尺寸的featuremap 。现在,我们定位出了它的位置以及需要发挥的功能,那么我们来看看roi-pooling的操作对象:ROI。

    ROI就是region of interest,说白了就是感兴趣区域,如果是原图,roi就是目标,如果是featuremap,roi就是特征图像目标的特征了。总之就是一个框。它在Fast-RCNN中和Faster-RCNN中有所区别:前者是经过Selective Search得到的,后者是经过RPN得到的。就是推荐框的算法不同。下图是Fast-RCNN的ROI获取流程,更好理解一点。


图2

Roi-Pooling的输入:

    1.特征图

    2.roi信息,包括:四个坐标信息以及Index(roi信息在Fast-RCNN中从Selective Search得到,在Faster-RCNN中从RPN得到)    。坐标信息是对应原图中的绝对坐标。

Roi-Pooling的输出:batch个roi矩阵,每一个roi矩阵为:通道数xWxH,也就是从selective search得到batch个roi,然后映射为固定大小。


过程描述:


图3

    首先将Selective search 中得到的原图中的roi信息映射到feature上(按原图与featuremap的比例缩小roi坐标就行了),然后经过最大池化或者xx池化,池化到固定大小w*h。但这个pooling不是一般的Pooling,而是将区域等分,然后取每一小块的平均值或者最大值,最后才能得到固定尺寸的roi,当然,这里面还有crop的过程!也就是不是对feature map来pooling,而是对feature map中roi部分进行pooling到固定大小。

    

参考资料:

https://blog.csdn.net/lanran2/article/details/60143861

https://www.cnblogs.com/believe-in-me/p/6645402


猜你喜欢

转载自blog.csdn.net/gusui7202/article/details/80651416