场景:目标检测中存在尺寸很小的目标,或同时存在大小差距很大的目标,小目标由于下采样/数量少丢失风险大
方案一:构造传统多尺度图像空间
在传统的图像处理,多尺度问题通常通过上/下采样得到不同分辨率图像,构造多尺度图像空间,在各层使用不同大小检测器进行检测。可认为是密集采样检测,无法有效区分小目标与背景干扰。
方案二:提高神经网络训练集小目标样本占比,或提升小目标样本的loss权重
神经网络学习训练数据的分布,如果小目标太少,容易在网络参数的优化中被稀释,因此提升小样本目标的占比属于基础且高性价比操作:
2.1 copy paste
随机选择目标,copy并缩小后paste到新的训练样本中,以增加小样本数量
2.2 mosaic
将原始样本进行多合一拼接,达到下采样效果,同时改变目标的尺寸、位置、形态,增加每张图中小样本的数量。
2.3 oversampling
训练过程中过采样包含小尺度目标的图像,即更多使用包含小目标进行训练,且增加程度Rate可调节。
方案三:增加anchor的覆盖范围
基于anchor的目标检测中,anchor的存在降低了坐标回归的难度,同时也一定程度上决定了网络检测的范围,因此在网络设定anchor的时候,更多的设置小尺寸的anchor,将对网络在不同尺度捕获小目标起到积极作用。此外,小目标的回归难度显著大于大目标,因此计算小目标的Anchor IoU时,阈值可适当降低。
方案四:提升不同尺度的feature的融合程度
神经网络的核心是对输入数据进行特征表征,以适应label监督的分布,FPN与传统图像多尺度空间的思路类似,不同之处在于:1、不同尺度层之间存在特征的融合;2、各层特征由网络动态学习得到,而传统多尺度空间是静态的特征。
放大输入图像+使用高分率图像预训练再在小图上微调,在实践中要优于专门针对小目标训练一个分类器。同时必须控制下采样率,避免小目标信息丢失。
方案六:结合anchor和anchor-free的方法
在FSAF中结合了anchor和anchor-free两条检测分支,anchor分支根据预设的anchor size可以检测绝大部分预期的目标,anchor-free的分支对于anchor范围外的目标(例如小目标)可以起到补充检测的作用。
方案七:大小目标分开检测
如果同一场景中,目标尺度差异过大,可采用两个模型来检测,针对小目标进行调小iou阈值,以保留更多的小目标,检测结果后处理合并。