[论文解读] SNIPER: Efficient Multi-Scale Training
SNIPER 在从真实实例周围提取的小型多尺度芯片上训练检测器,选取负样本,达到几乎全图金字塔的性能,且在单个GPU上实现约3x 的效率的大批量训练。
We present SNIPER, an algorithm for performing efficient multi-scale training in instance level visual recognition tasks. Instead of processing every pixel in an image pyramid, SNIPER processes context regions around ground-truth instances (referred to as chips) at the appropriate scale. For background sampling, these context-regions are generated using proposals extracted from a region proposal network trained with a short learning schedule. Hence, the number of chips generated per image during training adaptively changes based on the scene complexity. SNIPER only processes 30% more pixels compared to the commonly used single scale training at 800x1333 pixels on the COCO dataset. But, it also observes samples from extreme resolutions of the image pyramid, like 1400x2000 pixels. As SNIPER operates on resampled low resolution chips (512x512 pixels), it can have a batch size as large as 20 on a single GPU even with a ResNet-101 backbone. Therefore it can benefit from batch-normalization during training without the need for synchronizing batch-normalization statistics across GPUs. SNIPER brings training of instance level recognition tasks like object detection closer to the protocol for image classification and suggests that the commonly accepted guideline that it is important to train on high resolution images for instance level visual recognition tasks might not be correct. Our implementation based on Faster-RCNN with a ResNet-101 backbone obtains an mAP of 47.6% on the COCO dataset for bounding box detection and can process 5 images per second during inference with a single GPU. Code is available at https://github.com/MahyarNajibi/SNIPER/.
研究动机与目标
- 推动针对实例级视觉识别任务的高效多尺度训练。
- 提出基于芯片的采样策略,在降低像素处理量的同时尽量保持性能。
- 实现单个GPU上带批量归一化的大批量训练。
- 研究上下文与尺度对检测器性能的影响。
- 在COCO数据集上使用ResNet-101骨干的Faster-RCNN取得具有竞争力的结果。
提出的方法
- 生成多尺度图像金字塔,并在地面真实对象周围采样512×512的芯片(上下文区域)(正芯片)。
- 使用短时程(短排程)的区域建议网络(RPN)来选择覆盖潜在假阳性区域的负芯片。
- 在每个芯片内的候选框分配标签和边界框目标,而不按尺度范围进行筛选。训练端到端,像 Faster-RCNN 一样,输入基于芯片。
- 以贪心策略在合适的尺度下用芯片覆盖地面真实框,确保观测到所有实例。保留芯片内裁剪后的地面真实框用于标签分配。
- 使用低分辨率重新采样的芯片进行大批量小批量训练,以在单个GPU上启用批量归一化。
- 使用标准的COCO指标进行评估,并在三种尺度下与 SNIP 进行对比;分析召回率和负样本挖掘的效果。
实验结果
研究问题
- RQ1使用小型、尺度自适应芯片在多尺度下的训练能否与全图像金字塔多尺度训练的性能相匹配?
- RQ2负芯片挖掘能否在降低计算成本的同时提升检测器性能?
- RQ3在使用 SNIPER 风格芯片时,单个GPU上实现带批量归一化的大批量训练是否可行?
- RQ4通过基于芯片的采样减少上下文对不同物体尺度的召回率和平均精度的影响如何?
主要发现
| 方法 | 骨干网络 | AP | AP50 | AP75 | APs | APm | APl |
|---|---|---|---|---|---|---|---|
| SNIPER | ResNet-101 | 46.1 | 67.0 | 51.6 | 29.6 | 48.9 | 58.1 |
| SNIPER 2 scale | ResNet-101 | 43.3 | 63.7 | 48.6 | 27.1 | 44.7 | 56.1 |
| SNIPER w/o negatives | ResNet-101 | 43.4 | 62.8 | 48.8 | 27.4 | 45.2 | 56.2 |
- SNIPER 在处理的像素量大约比单尺度训练多30%,但远低于完整金字塔的情况下,与全图像金字塔多尺度训练的性能相当。
- 采用负芯片挖掘进行训练后,SNIPER(ResNet-101、端到端训练)的AP 从 43.4 提升到 46.1。
- RPN 的召回在有无负采样时都保持稳定,表明仅召回率不会因负芯片挖掘而下降。
- 三尺度训练(512、1.667×、3×)的性能优于两尺度配置,显示了多尺度采样的好处。
- 在 COCO 上,使用 ResNet-101 的 SNIPER 达到 46.1 AP(OpenImages 预训练和分割头下为 47.6%),并且在单个 V100 GPU 上能处理约每秒 5 张图像。
- SNIPER 使在单个 GPU 上进行大批量训练和批量归一化成为可能,挑战了高分辨率图像对实例级识别的必需性的观点。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。