解决两个问题:
1、低IOU时造成大量噪声框,高IOU时带来过拟合问题。
2、不同IOU阈值训练的Detector对不同IOU的Input(Foreground)的回归效果不同。
1、低IOU时造成大量噪声框,高IOU时带来过拟合问题。
低IOU和高IOU效果对比(低IOU的缺点):
高IOU时样本不足(高IOU的缺点)过拟合:
2、不同IOU阈值训练的Detector对不同IOU的Input(Foreground)的回归效果不同。
如果只采用单一检测器的话:
传统Faster RCNN:
Faster RCNN以同样的网络,进行多次迭代计算:
差就差在,我们的网络结构在训练的时候,也就是H1,是采用原始的样本,阈值固定为如0.5进行训练的。
可是每次经过迭代后的proposals的分布已经发生了改变,网络还是原始的网络,也就是:
造成结果不良。
共享H1结构的多次迭代结果:
另一种结构,共享pooling层,三个不同阈值分支预测ensample:
Cascade RCNN:
我们看到,每次得到的结果进行resample,大的IOU阈值的proposals反而增多:
输出分布结果:
最后来一张结果:
结论:
- 每一个stage的detector都不会过拟合,都有足够满足阈值条件的样本。
- 更深层的detector也就可以优化更大阈值的proposals。
- 每个stage的H不相同,意味着可以适应多级的分布。
- 在inference时,虽然最开始RPN提出的proposals质量依然不高,但在每经过一个stage后质量都会提高,从而和有更高IoU阈值的detector之间不会有很严重的mismatch。