PJiii

  • 5

    获得赞
  • 2

    发布的文章
  • 0

    答辩的项目

目标检测中Rpn的简单理解(Faster R-CNN部分)

目标检测 FasterRCNN

最后更新 2020-04-16 14:36 阅读 7966

最后更新 2020-04-16 14:36

阅读 7966

目标检测 FasterRCNN

1. 锚点anchor的真实含义

特征图的某一像素对应的原始图像的某一个像素,本质上指的是特征图上当前滑窗(也就是3*3的卷积核)中心在原始像素空间的映射点。

即anchor是在原始图像上然后以这个锚点为中心,配上9个基本的候选框。 特征图作为RPN输入,首先是512channel,3*3kernel的卷积层,然后并行两个1*1卷积,这里分类只分为有和无两类,即候选框有没有目标,至于目标到底是什么先不管。

每一个anchor对应K个候选框,每一个候选框的取值(即有和无,用概率表示),所以每一个anchor对应的输出应该为一个2k维度的向量,分类卷积使用2k个channel。回归对应4K个channel

image.png

其中,i表示mini-batch中第i个anchor,pi表示第i个anchor是前景的概率,当第i个anchor是前景时pi为1反之为0,ti表示预测的bounding box的坐标,ti∗为ground truth的坐标。 一个是交叉熵损失,一个是smooth_L1损失函数。

2. RPN生成RoIs的过程(ProposalCreator)如下:

对于每张图片,利用它的feature map, 计算 (H/16)× (W/16)×9(大概20000)个anchor属于前景的概率,以及对应的位置参数。(这里的W、H表示原始图像的宽和高,前面已经有说过了)

选取概率较大的12000个anchor,利用回归的位置参数,修正这12000个anchor的位置,得到RoIs,利用非极大值((Non-maximum suppression, NMS)抑制,选出概率(rpn只分类为前景和背景,提供的是前景最大)最大的2000个RoIs 注意:在inference的时候,为了提高处理速度,12000和2000分别变为6000和300。

3. RPN的输出

RoIs(形如2000×4或者300×4的tensor)RoI Pooling 是一种特殊的Pooling操作,给定一张图片的Feature map (512×H/16×W/16) 和128个候选区域的座标(128×4),RoI Pooling将这些区域统一下采样到 (512×7×7),就得到了128×512×7×7的向量。可以看成是一个batch-size=128,通道数为512,7×7的feature map。 FC 21 用来分类,预测RoIs属于哪个类别(20个类+背景) FC 84 用来回归位置(21个类,每个类都有4个位置参数)  

4. RPN网络中bounding-box回归的实质

其实就是计算出预测窗口,然后以生成的anchor为基准,计算Ground Truth对其的平移缩放变化参数,以及预测窗口【可能第一次迭代就是anchor】对其的平移缩放参数,因为是以anchor窗口为基准,所以只要使这两组参数越接近,以此构建目标函数求最小值,那预测窗口就越接近Ground Truth,达到回归的目的。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/article/artccb3edf8bb6f2586d827e23e
讨论
500字
表情
发送
删除确认
是否删除该条评论?
取消 删除