• 问答
  • 技术
  • 实践
  • 资源
在目标检测中如何解决小目标的问题?
技术讨论

作者丨Nabil MADALI
来源丨AI公园
编辑丨极市平台

在深度学习目标检测中,特别是人脸检测中,由于分辨率低、图像模糊、信息少、噪声多,小目标和小人脸的检测一直是一个实用和常见的难点问题。然而,在过去几年的发展中,也出现了一些提高小目标检测性能的解决方案。本文将对这些方法进行分析、整理和总结。

图像金字塔和多尺度滑动窗口检测

一开始,在深学习方法成为流行之前,对于不同尺度的目标,通常是从原始图像开始,使用不同的分辨率构建图像金字塔,然后使用分类器对金字塔的每一层进行滑动窗口的目标检测。

006C3FgEly1gq8w5jq3fmj30lw0jk40p

在著名的人脸检测器MTCNN中,使用图像金字塔法检测不同分辨率的人脸目标。然而,这种方法通常是缓慢的,虽然构建图像金字塔可以使用卷积核分离加速或简单粗暴地缩放,但仍需要做多个特征提取,后来有人借其想法想出一个特征金字塔网络FPN,在不同层融合特征,只需要一次正向计算,不需要缩放图片。它也被应用于小目标检测,这将在后面的文章中讨论。

简单,粗暴和可靠的数据增强

通过增加训练集中小目标样本的种类和数量,也可以提高小目标检测的性能。有两种简单而粗糙的方法:

  • 针对COCO数据集中含有小目标的图片数量较少的问题,使用过采样策略:
    006C3FgEly1gq8w5w14b9j30zc0b477b

不同采样比的实验。我们观察到,不管检测小目标的比率是多少,过采样都有帮助。这个比例使我们能够在大小物体之间做出权衡。

  • 针对同一张图片中小目标数量少的问题,使用分割mask切出小目标图像,然后使用复制和粘贴方法(当然,再加一些旋转和缩放)。

006C3FgEly1gq8w69w5syj30zy0c6wm4

通过复制粘贴小目标来实现人工增强的例子。正如我们在这些例子中所观察到的,粘贴在同一幅图像上可以获得正确的小目标的周围环境。

在Anchor策略方法中,如果同一幅图中有更多的小目标,则会匹配更多的正样本。

006C3FgEly1gq8w6kktlkj310q0x24gt

与ground truth物体相匹配的不同尺度anchor示意图,小的目标匹配到更少的anchor。为了克服这一问题,我们提出通过复制粘贴小目标来人工增强图像,使训练过程中有更多的anchor与小目标匹配。

特征融合FPN

不同阶段的特征图对应不同的感受野,其所表达的信息抽象程度也不同。

浅层特征图感受野小,更适合检测小目标,深层特征图较大,更适合检测大目标。因此,有人提出将不同阶段的特征映射整合在一起来提高目标检测性能,称之为特征金字塔网络FPN。

006C3FgEly1gq8w733tqoj311g0m0jxd

(a)利用图像金字塔建立特征金字塔。特征的计算是在每个图像的尺度上独立进行的,这是很缓慢的。(b)最近的检测系统选择只使用单一尺度的特征以更快地检测。另一种选择是重用由ConvNet计算出的金字塔特征层次结构,就好像它是一个特征图金字塔。(d)我们提出的特征金字塔网络(FPN)与(b)和©一样快,但更准确。在这个图中,特征图用蓝色轮廓线表示,较粗的轮廓线表示语义上较强的特征。

由于可以通过融合不同分辨率的特征图来提高特征的丰富度和信息含量来检测不同大小的目标,自然会有人进一步猜测,如果只检测高分辨率的特征图(浅层特征)来检测小人脸,使用中分辨率特征图(中间特征)来检测大的脸。

006C3FgEly1gq8w7ibekuj30y80bydi6

SSH的网络结构

合适的训练方法SNIP, SNIPER, SAN

在机器学习中有一点很重要,模型预训练的分布应该尽可能接近测试输入的分布。因此,在大分辨率(如常见的224 x 224)下训练的模型不适合检测小分辨率的图像,然后放大并输入到模型中。

如果输入的是小分辨率的图像,则在小分辨率的图像上训练模型,如果没有,则应该先用大分辨率的图片训练模型,然后再用小分辨率的图片进行微调,最坏的情况是直接使用大分辨率的图像来预测小分辨率的图像(通过上采样放大)。

因此,在实际应用中,对输入图像进行放大并进行高速率的图像预训练,然后对小图像进行微调比针对小目标训练分类器效果更好。

006C3FgEly1gq8w7uaqscj310m086dh9

所有的图都报告了ImageNet分类数据集验证集的准确性。我们对48、64、80等分辨率的图像进行上采样,在图(a)中绘制出预训练的ResNet-101分类器的Top-1精度。图(b、c)分别为原始图像分辨率为48,96像素时不同cnn的结果。

更密集的Anchor采样和匹配策略S3FD, FaceBoxes

如前面的数据增强部分所述,将一个小目标复制到图片中的多个位置,可以增加小目标匹配的anchor数量,增加小目标的训练权重,减少网络对大目标的偏置。同样,在逆向思维中,如果数据集已经确定,我们也可以增加负责小目标的anchor的设置策略,使训练过程中对小目标的学习更加充分。

例如,在FaceBoxes中,其中一个贡献是anchor策略。

Anchor变的密集例子。为了清晰起见,我们只对一个感受野中心(即中央黑色网格)密集化锚点,并只给对角锚点上色。

Anchor密集化策略,使不同类型的anchor在图像上具有相同的密度,显著提高小人脸的召回率。

总结

本文较详细地总结了一般目标检测和特殊人脸检测中常见的小目标检测解决方案。

英文原文:https://medium.datadriveninvestor.com/how-to-deal-with-small-objects-in-object-detection-44d28d136cbc

  • 0
  • 0
  • 368
收藏
暂无评论