【SNIPER】
- 目的:优化SNIP,减少计算量的同时提升精度(相比SNIP提升4.6个点)
- base model: Faster RCNN
- 速度:每秒5张图
- 思想:
SNIP借鉴了多尺度训练的思想,借助了图像金字塔作为模型的输入,提高了效果但是增加了计算量。
SNIPER在其基础上略作修改,引入context-regions(论文中也叫chips)思想,在做多尺度时,只关心两个类别:
- positive chips(包含gt)
- negtive chips,从ROI抽样获得的,可以理解为难分类的背景
论文的核心也是如何寻找positive chips是和negtive chips
过程:chip generator ——> positive chip selector ——> negtive chip selector
- chip生成
在多个尺度的图片中,滑窗,窗口大小512*512
三个尺度检测的面积是 (0, 80*80) , (32*32, 150*150), (120*120, inf),如果chip包围了gt但gt右不在检测范围内,gt是无效的,比如下图
- positive chips 的选择
目标:每个chip中尽可能包含合适的gt
问题:图像金字塔弊端:放大一张图片会放大这张图片内的所有物体,有的甚至超过了模型的感受野。
解:忽略高分辨图中的大目标和低分辨率中的小目标。
思路:如果一个gt完全处于一个chip中则认为被包围,作者根据chip保包围的gt数量多少排序,选取topk个chip作为positive。
- negtive chips的选择
定义:不包含gt,或者包含的gt比较少
思路:只用positive chip去训练几个epoch的垃圾rpn,根据这个垃圾rpn去选择“假正”样本,用作negitve chips。
理由:垃圾rpn没学好的肯定是难分类背景。
总结:用垃圾rpn选择negtive chip,作者思路清奇,主要是解决多尺度的问题,训练速度虽然慢了点但是对得起这个效果。