SNIP提出了一种适用于2-stage检测器的Image Pyramid训练方法。该训练方法能够做到:
为此,作者首先做了两个实验来验证
之后提出了SNIP,结合Image Pyramid和Scale匹配,获得了SOTA效果。
COCO数据集中存在的两个问题:1.大量小物体 2.尺度变化极大
Therefore,most object instances in COCO are smaller than 1% of image
area! To make matters worse, the scale of the smallest and largest 10%
of object instances in COCO is 0.024 and 0.472 respectively (resulting
in scale variations of almost 20 times!);
这两个问题迫使检测器需要具备很强的尺度不变性,同时还要具备从fintune前在ImageNet上训练的识别任务迁移到检测任务的能力。
已经有许多论文对该问题进行了探讨,但仍然有一些重要的问题没有被发现。
• Is it critical to upsample images for obtaining good performance for object detection? Even though the typical size of images in detectiondatasets is 480x640, why is it a common practice to up-sample them to00x1200? Can we pre-train CNNs with smaller strides on low resolution images from ImageNet and then fine-tune them on detection datasets for detecting small object instances?
• When fine-tuning an object detector from a pre-trained image classification model, should the resolution of the training object instances be restricted to a tight range (from64x64 to 256x256) after appropriately re-scaling the input images, or should all object resolutions (from 16x16 to 800x1000, in the case of COCO) participate in training after up-sampling input images?
尺度问题:[4, 30, 28, 21, 14, 5, 23,35, 26]
最后的stride为32:,解决:[32, 7, 5]
常用策略:上采样[8, 7, 15]
低级特征结合:[23, 31, 1, 31]
独立预测,合并:Methods like
SDP [36], SSH [29] or MS-CNN [3],
多层特征表示: FPN, Mask-RCNN, RetinaNet [23, 13, 24],
face[17]
这里的domain shift指的是测试和训练的图像分辨率不一致。
实验目的
探究该domain shift(测试和训练的图像分辨率不一致)的影响,并比较两种解决方案。
实验:·
网络名称 | 训练 | 测试 |
---|---|---|
CNN-B | 224*224 | 先下采样到48* 48,64* 64, 80* 80, 96* 96, 128*128。之后上采样 |
CNN-S | 48*48 | 48*48 |
CNN-B-FT | 以CNN-B为基础。下采样至48*48,再上采样 | 同训练集 |
结论
测试与训练使用的分辨率要匹配。
目的:探究几种MST的效果吧?主要是为了展示检测器的两个需求:
实验以及结果:
名称 | 训练 | 测试 | 结果 |
---|---|---|---|
140 0 a l l 1400_{all} 1400all | 1400*2000,所有物体 | 1400* 2000,小物体 | 19.9 |
80 0 a l l 800_{all} 800all | 800*1400,所有物体 | 同上 | 19.6 |
140 0 < 8 0 p x 1400_{<80_{px}} 1400<80px | 1400*2000,忽略>80像素的物体 | 同上 | 16.4 |
MST(Multi-Scale) | 训练时随机缩放图像尺寸 | 同上 | 19.5 |
解释:
1.
trainingat higher resolutions scales up small objects for better classification, but blows up the medium-to-large objects which degrades performance
对比 140 0 a l l 1400_{all} 1400all和 80 0 a l l 800_{all} 800all,大尺度的提升不明显,可能是因为大尺度图像虽然包含更多小物体的信息,但是大物体也更大了,并且进行了BP。扰乱了网络对于小物体特征的学习。
2.
lost a significant source of variation in appearance and pose by ignoring medium-to-large objects (about 30% of the total object instances) that hurt performance more than it helped by eliminating extreme scale objects.
对比 80 0 a l l 800_{all} 800all和 140 0 < 8 0 p x 1400_{<80_{px}} 1400<80px, 140 0 < 8 0 p x 1400_{<80_{px}} 1400<80px的效果更差,这可能是因为减少了大量物体的信息(包括中型物体的信息和一些在小、中之间的物体),降低了perfermance。
it is important to train a detector with appropriately scaled objects while capturing as much variation across the objects as possible.
对比MST和其他,MST的效果并不明显。这可能是因为虽然能够增加更多的可利用的物体信息(可利用指的是能够对网络识别物体更加有效),但是也增加了很多无效信息,如过小的bbox和过大的bbox。MST更强的改进了2中的问题,但是也加重了1中出现的问题。
结论
总体来说,就是要同时做到两点才可以:
*该实验在SNIP实验部分出现。
当使用标准配置(15种anchor,5 scales ,3 aspect ratios,IOU 0.7)时,只有30%的GT被匹配(匹配后的Anchor与其IOU超过0.7)。而IOU设置为0.5时,58%被匹配的GT满足此IOU。
目标:
maximal variations in appearance and pose whilerestricting scale to a reasonable range.
做法:
训练过程:
输入各个尺度的输入图像(实现目标1)。
RPN的训练:
1.对于每个尺度,判断GT是否是valid,也就是是否在合适的尺度内。
2.之后确认Anchor是否是Valid,如果与invalid的GT的overlap过大则排除。因为这说明这个Anchor与这个invalid的GT尺度过于相似,也是invalid的。
RCN的训练(C: Classfication)
3.对于提出的ROI也做与1相同的操作。
(1,2,实现目标1)
推断过程:
1.RPN生成,如果符合尺度则valid。
2.尺度合并,使用soft-NMS。
备注:如果是大分辨率图片,则将其随机裁剪为小图片进行训练(主要是GPU的内存不够)
实验配置:
RPN和RCN分开训练。
resolution:(480, 800), (800, 1200) and (1400,2000)
RPN valid range:
(1400,2000): [0, 80]
(800,1200): [40, 160]
(480,800): [120, ∞ ]
RCN valid range:
Since in RPN even a one pixel feature map can generate a proposal we use a validity range of [0,160] at (800,1200) for valid ground truths for RPN.
(1400,2000): [0, 80]
(800,1200): [0, 160] : 原因没读懂
(480,800): [120, ∞ ]
Improving RPN:将5 scales增加到7。
预训练使用到了3中实验1的结论。
实验结果:
首先是和单尺度、多尺度测试、多尺度训练+测试的对比。
之后是RPN的效果对比。左边三列应该是mmAR,IOU阈值为50的AR,IOU阈值为75的AR
右边三列是不同物体尺寸的AR。可以看出来,SNPI能明显改善在小物体上的AR,但这一部分原因也是因为大物体的AR本来就够高了。
最后是整体测试,对比了使用不同Backcone的结果,Ensemble为综合所有网络的结果。
DPN:
https://blog.csdn.net/darren2015zdc/article/details/78728947