前言
首先思考这样一个问题:为什么目标检测与图像分类相比要更加困难呢?作者认为,这是由于目标的尺度变化,尤其当检测非常小的目标时很难达到理想的效果。在ImageNet和COCO中,目标的中等尺度分别为0.554和0.106,也就是说,COCO数据集中的大多数目标的尺度都小于图像区域的1%。更糟的是,在COCO中最小和最大的10%目标的尺度分别为0.024和0.472,这几乎是20倍的尺度变化!如下图所示:
检测器需要处理COCO中目标的尺度变化,而这对于CNN的尺度不变性来说是一种巨大的挑战。并且,ImageNet预训练的模型在迁移到样本大小差异较大的COCO中时很可能产生domain-shift偏差。目前也有很多方法解决尺度变化和小目标带来的问题,比如:
- 结合深层特征和浅层特征以检测小目标;
- 使用dilated/deformable卷积以提升感受野,从而检测大目标;
- 不同分辨率的卷积层进行独立预测,将预测结果用于捕获不同大小的目标。
上述方法虽然能够改善目标检测,但与训练相关的许多重要问题依然没有得到解决:
- 为了提高对小目标的检测效果,对图像进行上采样真的有必要吗?能不能直接用低分辨率的图像对CNN进行预训练(需要调小stride),然后在检测数据集上对网络进行微调以检测小目标?
- 当从一个预训练的图像分类模型来对目标检测器进行微调时,在调整输入图像的大小后,是将训练样本的分辨率控制在一个固定范围(比如从 64 × 64 64\times 64 64×64到 256 × 256 256 \times 256 256×256)之内呢?还是将所有分辨率的样本都投入训练呢?
尺度变化对分类网络的影响
这一节主要研究domain shift的影响,在训练和测试时,当输入不同分辨率的图像时,就会引入domain shift。作者设计了三个实验,如下图所示,讨论了在对小目标进行分类时,是设计专门的网络结构的效果好,还是就在原来的网络上进行微调的效果好。
- CNN-B是用分辨率为 224 × 224 224 \times 224 224×224的图像训练的,对ImageNet中的图像先进行下采样,再上采样到 224 × 224 224 \times 224 224×224,作为CNN-B的输入。
- CNN-S是专门为小目标设计的网络,对于 48 × 48 48 \times 48 48×48的图像,第一个卷积层步长为1,卷积核大小为 3 × 3 3\times 3 3×