RPN网络详解
2020-02-06 本文已影响0人
默写年华Antifragile
Region Proposal Network (RPN)
参考:https://towardsdatascience.com/region-proposal-network-a-detailed-view-1305c7875853#46ea
产生背景:
- 由 Faster R-CNN 提出,作用:产生前景候选框框和前景框的位置偏移
- 解决的问题:R-CNN 是在原始图片上通过 Selective Search算法提出多个候选框,再把多个候选框送入CNN进行特征提取;Fast R-CNN则是将整张图片送入CNN进行特征提取,再在特征图上通过 Selective Search 算法提取候选框;这两种方法都是使用离线的选择性搜索算法,耗时大,且无法端到端的学习如何提取候选框;RPN 则是将这个候选框的提取纳入到端到端的学习中来;
流程步骤
- 输入:经过backbone网络得到的特征图;
- 对于特征图上的每一个点(称之为锚点 anchor point),生成具有不同 尺度 和 宽高比 的锚点框,这个锚点框的坐标(x,y,w,h)是在原图上的坐标
-
然后将这些锚点框输入到两个网络层中去,一个(rpn_cls_score )用来分类,即这个锚点框里面的特征图是否属于前景;另外一个(rpn_bbox_pred)输出四个位置坐标(相对于真实物体框的偏移);这时候就需要GT来进行loss学习,GT的来源如4
image.png - anchor target generation:将锚点框与Ground Truth中的标签框进行 IoU 对比,如果其 IoU 高于某个阈值,则该锚点框标定为前景框,否则属于背景框;对于前景框,还要计算其与真实标签框的4个位置偏移;将这个标注好的锚点框(带有 前背景类别 和 位置偏移 标注)与3中卷积网络层的两个输出进行loss比较(类别:CrossEntrpy loss 和 位置回归:smooth L1 loss),从而学习到如何提取前景框
- 学习到如何提取前景框后,就根据 rpn_cls_score 层的输出概率值确定前景框;位置偏移值则被整合到锚点框的坐标中以得到实际的框的坐标;这样子就得到了前景框,起到了selective search的作用。
RPN生成的proposal就称为 Region of Interest.由于他们具有不同的尺度和长度,因此需要通过一个 ROI pooling层获得统一的大小
image.png
ROI pooling的解释如https://towardsdatascience.com/region-of-interest-pooling-f7c637f409af