SNIP算法详解(极端尺寸目标检测)
SNIP算法详解(极端尺寸检测)
-
- 论文背景
-
- 算法背景
- 算法详情
-
- 主要问题
- 已有解决方案
- 研究现状
- 思考问题
- SNIP算法
- 多尺寸图片分类器对比实验
- Deformable-RFCN
- 实例尺寸与数据对检测器的影响实验
- SNIP算法细节
- 实验
- 结论
论文背景
论文全称:An Analysis of Scale Invariance in Object Detection – SNIP
论文链接: https://arxiv.org/abs/1711.08189
论文日期:2018.5.25
算法背景
本文主要是对比了已有的目标检测算法,结合算法的优势,提出了本文中的SNIP算法,用于解决检测数据集上尺寸极端变化问题。
- 数据集背景:
COCO数据集中待检测物体相对图片而言,尺寸过小,而且不同对象之间的尺寸差距较大。针对此类极端尺寸变量问题,即待检测物体尺寸过小或者过大。一些分类与检测算法被提出。 - 理论基础
检测器的特定尺寸与尺寸不变性设计通过训练不同配置的输入数据来进行比较。
通过评估在ImageNet数据集上不同神经网络结构分类小尺寸对象的表现,也可以得到,CNN对于尺寸变化不鲁棒。
本文提出了一个基于相同尺寸的图片金字塔的训练与测试检测器。
由于小尺寸与大尺寸对象很难分别在较小和较大的尺寸下识别出来,本文提出了一个新的训练方案,图像金字塔的尺寸归一化(SNIP),有选择地反向传播不同尺寸的目标实例的梯度作为图像尺寸的公式。
- 优化结果
在COCO数据集上,单一模型的准确性为45.7% mAP,三个神经网络一起的准确性为48.3% mAP。使用现成的ImageNet-1000预训练模型,仅仅利用边界框监督训练。
算法详情
主要问题
在过去的几年中,分类取得了很大的进展,但是检测仍然表现不佳。因为检测数据集获取标签的代价太大。除此之外,分类数据集的目标尺寸适中,而检测数据集的对象尺寸偏小,且对象尺寸差异江大,对检测造成了很大影响,尤其是针对小目标的检测是一个很大的挑战。
检测数据集的缺点可以被归纳为两个方面:
- 对象尺寸小:ImageNet数据集与 COCO数据集目标实例尺寸的中位数分别是0.554与0.106,=意味着 COCO数据集大多数的对象面积都小于整张图片的1%。
- 对象尺寸差异大:前10%的最小对象尺寸与前10%的最大对象尺寸差异巨大, 分别是0.024与0.472。几乎是20倍。
这种尺寸异样对于神经网络的尺寸不变性性能是个极端挑战。
由于预训练是在分类数据集上进行的,分类与检测数据集的对象实例尺寸不同也导致了利用分类数据集预训练的神经网络进行微调时会有很大的域平移(domain-shift)。
已有解决方案
为了缓解待检测目标尺寸变化以及尺寸偏小的问题,有许多方法被提出:
- 将浅层的特征与深层的特征相结合,用于检测小目标实例。
- 拓展 / 变形的卷积被用来增加检测对象的感受野,用于检测大尺寸实例。
- 在不同分辨率网络层上进行的独立预测,用于检测不同尺寸的对象实例。
- 利用上下文信息来进行消歧。
- 在一个大范围的尺寸内进行训练。
- 在一个多尺寸的图片金字塔上进行推断,并且结合非极大值抑值进行预测。
研究现状
问题:
CNNs的更深层有很大的步长(32 pixels)会导致对于输入图片有个非常粗糙的表示,从而小目标的检测非常困难。
传统解决方案:
- 增加特征映射的分辨率: <
LittleMoOon: 请问大佬这个代码有pytorch的实现版本吗
yangyi_hust: sigmoid
海木石: 您好,“分类预测 不使用softmax,而是使用独立的逻辑分类器,在训练过程中,我们使用二元交叉熵损失来进行类别预测。”,这里面的二元交叉熵损失是什么
蓝绿色雨天: 写的很不错
业余狙击手19: 学习学习