目标检测算法-Cascade RCNN

只有proposal自身的阈值和训练器训练用的阈值较为接近的时候训练器的性能才最好。Cascade RCNN在目标检测中主要解决检测框不是特别准,容易出现噪声干扰的问题。

为什么会出现这个问题?

因为基于anchor的检测方法中,一般会设置训练的正样本,负样本,选取正负样本的方式主要利用候选框与ground truth的IOU占比,常用的比例是50%,即IOU>0.5的为正样本,IOU<0.3作为负样本。但是这样就带来了一个问题。阈值取0.5是最好的吗?实验发现,1.设置不同阈值,阈值越高,其网络对准确度较高的候选框的作用效果越好。2.不论阈值设置多少,训练后的网络对输入的proposal都有一定的优化作用。以上两点,设计了Cascade RCNN网络,即通过级练的RCNN网络,每个级练的RCNN设置不同的IOU阈值,这样每个网络输出的准确度提升一点,用做下一个更高精度的网络的输入,逐步将网络输出的准确度进一步提高。

相关的一些工作

(b)

Iterative BBox:采用了级联结构来对Box进行回归,使用的是完全相同的级联结构,使用的全是相同的阈值,这样一来,就会有一些问题,单一阈值0.5是无法对所有proposal取得良好效果,proposal经过阈值的detector后IOU都在0.75以上在使用这一阈值就很不明智,detector会改变样本的分布,这时候再使用同一个结构效果也不好。

(c)Integral Loss:该结构使用了多个不同的检测器,第一个检测器即得proposal得类别,又对其边框进行回归,后两个检测器只对类别进行修正。训练时,这三个检测器同时训练。这种级联方式得缺陷就是对RPN生成得proposals后两级检测器因为使用了更高的IOU阈值,导致得到的正样本过少,因而会发生过拟合。

(d)Cascade RCNN:最终确定的结构一共是4个stages,一个RPN+3个检测器(阈值分别为0.5/0.6/0.7),后面三个检测器按照直接介绍的每个检测器的输入都是上一个检测器进行了边框回归后的结果。

原文地址:https://www.cnblogs.com/cucwwb/p/13285980.html