> 文章列表 > Faster RCNN系列——RPN的真值与预测值

Faster RCNN系列——RPN的真值与预测值

Faster RCNN系列——RPN的真值与预测值

  对于目标检测任务,模型需要预测物体的类别和位置,即类别、边框中心点坐标 xxxyyy 、边框宽 www 与高 hhh 这5个量,基于Anchor这个先验框,RPN可以预测Anchor的类别作为预测边框的类别,可以预测真实的边框相对于Anchor的偏移量进而求解真实边框的位置。

  因此,RPN有两种真实和预测值,分别是类别偏移量

  如下图所示,输入图像中有3个Anchor和2个标签,Anchor A与label M有重叠,Anchor C与label N有重叠,Anchor B不与任何label重叠。

在这里插入图片描述

图1 Anchor与标签的关系

1.1 真值

  • 类别真值

  这里的类别真值是指Anchor是属于前景还是属于背景。RPN通过计算Anchor与标签的IoU来判断一个Anchor是属于前景还是属于背景。图1中Anchor A与label M的IoU计算公式如下:

IoU(A,M)=A∩MA∪MIoU(A,M)=\\frac{A\\cap M}{A\\cup M}IoU(A,M)=AMAM

  当IoU大于一定值时,该Anchor的类别真值为前景;当IoU小于一定值时,该Anchor的类别真值为背景。具体的判断标准如下:

  • 对于任何一个Anchor,与所有标签的最大IoU小于0.3,则视为负样本。

  • 对于任何一个标签,与其有最大IoU的Anchor视为正样本。

  • 对于任何一个Anchor,与所有标签的最大IoU大于0.7,则视为正样本。

  • 偏移量真值

  假设图1中Anchor A的中心坐标为xax_{a}xayay_{a}ya,宽高分别为waw_{a}wahah_{a}ha,标签M的中心坐标为xxxyyy,宽高分别为wwwhhh,则偏移量真值的计算公式如下:

{tx=(x−xa)waty=(y−ya)hatw=log(wwa)th=log(hha)\\left\\{\\begin{matrix} t_{x}= \\frac{(x-x_{a})}{w_{a}}\\\\ t_{y}= \\frac{(y-y_{a})}{h_{a}} \\\\ t_{w}=log(\\frac{w}{w_{a}}) \\\\ t_{h}=log(\\frac{h}{h_{a}}) \\end{matrix}\\right.tx=wa(xxa)ty=ha(yya)tw=log(waw)th=log(hah)

1.2 预测值

  RPN通过搭建如图2所示的网络结构,实现对类别和偏移量的预测,即通过分类分支求得类别预测值、通过回归分支求得偏移量预测值。

在这里插入图片描述

图2 RPN网络结构

  • 类别预测值

  在分类分支中,首先使用1×11×11×1卷积输出18×37×5018×37×5018×37×50的特征,由于每个点默认有9个Anchors,并且每个Anchor 只预测其属于前景还是背景,因此通道数为18。随后利用torch.view()函数将特征映射到2×333×752×333×752×333×75,这样第一维仅仅是一个Anchor的前景背景得分,并送到Softmax函数中进行概率计算,得到的特征再变换到18×37×5018×37×5018×37×50的维度,最终输出的是每个Anchor属于前景与背景的概率。

  • 偏移量预测值

  在回归分支中,利用1×11×11×1卷积输出36×37×5036×37×5036×37×50的特征,第一维的36包含9个Anchors的预测,每一个Anchor有4个数据,分别代表了每一个Anchor的中心点横纵坐标及宽高这4个量相对于真值的偏移量。