RPN与ROI Pooling

Faster R-CNN网络结构
RPN与ROI Pooling_第1张图片

一、RPN

RPN与ROI Pooling_第2张图片
第一条线路:在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的positive anchor,哪些是没目标的negative anchor。
feature maps每一个点都有9个anchors,同时每个anchors又有可能是positive和negative,所有这些信息都保存WxHx(9*2)大小的矩阵。通过softmax获得positive anchors,相当于初步提取了检测目标候选区域box(一般认为目标在positive anchors中)。
第二条线路:通过1 * 1 * 36的滤波器,获得每个anchor的坐标的调整量,9个anchor即获得了9 * 4个坐标(中心坐标与宽和高)
RPN输出:
大小为50 * 38 * 18的positive/negative softmax分类特征矩阵
大小为 50 * 38 * 36 的regression坐标回归特征矩阵

Proposal Layer的作用:
1、生成anchors,对所有的anchors做bbox regression回归
2、根据scores由大到小排序anchors,提取前N个anchors,即提取修正位置后的positive anchors
3、剔除尺寸非常小的positive anchors
4、对剩余的positive anchors进行NMS

RPN网络结构就是:
生成anchors -> softmax分类器提取positvie anchors -> bbox reg回归positive anchors -> Proposal Layer生成proposals

二、ROI Pooling

目的是对非均匀尺寸的输入执行最大池化以获得固定尺寸的特征图
我们获得的anchor尺寸是不同的,所以我们不可以直接对其全连接,所以我们应该将区域提案划分为相等大小的部分(其数量与输出的维度相同)
;然后进行max pooling
RPN与ROI Pooling_第3张图片
RPN与ROI Pooling_第4张图片
输出如果是2 * 2的,就要划分成2 * 2的方格
RPN与ROI Pooling_第5张图片
在每个方格中进行maxpooling,选出最大的
RPN与ROI Pooling_第6张图片
这就是ROI Pooling的输出

你可能感兴趣的:(目标检测,计算机视觉,python,深度学习,机器学习)