锚定更快的 RCNN

机器算法验证 深度学习 计算机视觉
2022-02-28 06:51:06

在 Faster RCNN 论文中谈到锚定时,使用“参考框金字塔”是什么意思,这是如何做到的?这是否仅仅意味着在每个 W*H*k 锚点处生成一个边界框?

其中 W = 宽度,H = 高度,k = 纵横比数量 * 比例

论文链接: https ://arxiv.org/abs/1506.01497

2个回答

锚点解释

锚点

暂时忽略“参考框金字塔”这个花哨的术语,anchors 只不过是要馈送到 Region Proposal Network 的固定大小的矩形。锚点是在最后一个卷积特征图上定义的,这意味着有(HfeaturemapWfeaturemap)(k)其中,但它们对应于图像。对于每个锚点,RPN 会预测包含一般对象的概率和四个校正坐标,以将锚点移动并调整到正确位置。但是锚的几何形状与 RPN 有什么关系呢?

锚点实际上出现在损失函数中

在训练 RPN 时,首先为每个锚点分配一个二进制类标签。具有Intersection-over-Union ( IoU ) 的锚与真实框重叠,高于某个阈值,被分配一个正标签(同样,IoU 小于给定阈值的锚将被标记为负)。这些标签进一步用于计算损失函数:

RPN 损失函数

p是RPN的分类头输出,它决定了anchor包含对象的概率。对于标记为 Negative 的锚点,回归不会产生任何损失——p,真实标签为零。换句话说,网络不关心负锚的输出坐标,只要它正确分类它们就很高兴。在正锚点的情况下,会考虑回归损失。t是 RPN 的回归头输出,表示预测边界框的 4 个参数化坐标的向量。参数化取决于锚的几何形状,如下所示:

在此处输入图像描述

在哪里x,y,w,h 表示盒子的中心坐标及其宽度和高度。变量x,xa,x分别用于预测框、锚框和真实框(同样适用于y,w,h)。

另请注意,没有标签的锚既不分类也不重塑,RPM 只是将它们排除在计算之外。一旦 RPN 的工作完成并生成了提案,其余部分与 Fast R-CNN 非常相似。

我昨天读了这篇论文,乍一看,我也很困惑。重读后得出这样的结论:

  • 原始网络的最后一层(ZF 或 VGG-16)作为 Region Proposal Network 和 RoI pooling 的输入。在 VGG-16 的情况下,最后一个 conv 层是7x7x512 (HxWxD).
  • 这个层被映射到一个 512 维的层和一个3x3conv 层。输出大小为7x7x512(如果使用填充)。
  • 该层被映射到一个7x7x(2k+4k)(例如7x7x54)层1x1,每个k锚盒都有一个卷积层。

现在根据论文中的图 1,您可以拥有一个输入图像金字塔(具有不同比例的相同图像)、一个过滤器金字塔(不同比例的过滤器,在同一层中)或一个参考框金字塔。后者指k的是区域提议网络最后一层的锚框。不同尺寸的滤镜不是堆叠在一起(中间情况),而是不同尺寸和纵横比的滤镜堆叠在一起。

简而言之,对于每个锚点(HxW例如7x7),使用了一个参考框金字塔(k例如9)。