论文:SNIPER: Efficient Multi-Scale Training
论文链接:https://arxiv.org/abs/1805.09300
代码链接:https://github.com/MahyarNajibi/SNIPER
这篇文章是之前SNIP论文的升级,升级点在于减少SNIP的计算量。SNIP借鉴了multi-scale training的思想进行训练,multi-scale training是用图像金字塔作为模型的输入,这种做法虽然能够提高模型效果,但是计算量的增加也非常明显,因为模型需要处理每个scale图像的每个像素,而SNIPER(Scale Normalization for Image Pyramids with Efficient Resampling)算法通过引入context-regions(文中用chips表示,chip翻译过来就是碎片的意思,因为是从一张完整的图像中裁剪出多个chip,所以这个用词也比较形象),使得模型不再处理每个尺寸图像的每个像素点,而是选择那些对检测最有帮助的区域参与训练,这样就大大减少了计算量。这些chips主要分为两大类,一种是postivice chips,这些chips包含ground truth;另一种是从RPN网络输出的ROI抽样得到的negative chips,这些chips相当于是难分类的背景,而那些容易分类的背景就没必要进行多尺度训练了。因此模型最终只处理这些chips,而不是处理整张图像,这样就达到提升效果的同时提升速度(在单卡V100上,每秒能处理5张图像,这速度在two-stage类型的目标检测算法中其实并不算快,毕竟是基于多尺度图像训练,但是效果是真的好)。
因此这篇文章的核心内容就是关于如何选择positive