小目标检测
图片来自数据集WIDER FACE.
1. 难点
小目标的检测(一般认为,目标占整图面积的1%以下为小目标)的难点我认为可以主要从两个方面出发进行考虑,一方面是模型训练,一方面是特征前传。
-
从模型训练的角度来说,1)数据。小目标的样本量在整体数据中偏少,其在训练和评测过程中的权重较低,模型的训练会被中、大目标主导。2)损失函数。一般的检测框回归损失,如L2,SmoothL1 loss,对小检测框的惩罚力度很小(如差半个身位,也只有几个像素的偏差),使小目标回归精度较低。3)正负样本采样。由于小目标较小,在正负样本采样时会产生大量的负样本,导致负样本远多于正样本。
-
从特征前传的角度来说,由于小目标本身的信息量就少,通过CNN的池化、下采样等前传会进一步减少目标信息。如何能在输出层尽可能多保留小目标的信息,保证小目标在特征层的感受野,是小目标检测的一个关键问题。
2. 解决方案
2.1 数据增强——增加小目标样本数量
-
通过复制-拷贝,将小样本进行跨图像拷贝,增加样本多样性;
-
图像缩放后拼接,将大目标缩小,增加小目标数量;
-
GAN生成小目标样本;
2.2 训练策略
-
专职专干。在特征金字塔中(FPN),不同尺度特征回归不同尺度检测框,避免不同尺寸目标互相影响。参考SNIP, SNIPER;
-
基于IoU回归检测框。如IoU Loss、IoU Net、DIoU loss、CIoU loss、GIoU loss、Repulsion Loss;
-
避免正样本损失被大量负样本淹没。参考Focal Loss对正负样本加权, 根据损失进行hard example mining OHEM,将分类损失换为排序损失 AP loss;
2.3 特征网络
-
根据目标尺寸切图resize,在网络输入阶段对目标尺寸进行对齐。简单粗暴。
-
使用多尺度特征进行目标检测。如将图片resize到不同尺寸进行特征提取 featurized image pyramid,特征金字塔FPN, 多尺度特征融合multi-scaled fusion, 金字塔特征拼接;
-
调整感受野。dilated conv, deconv;
-
结合目标周围信息进行检测。基于Transformer的DETR, 基于LSTM的GBDNet, multi-region CNN, attention to context CNN;
2.4 More Tricks
-
对小目标进行区域抠图放大,能直接检出就是感受野的问题;
-
ResNet最后一层卷积stride设为1;
-
增加anchor尺寸;
欢迎大家做进一步补充
参考资料
1: 目标检测——深度学习下的小目标检测
2: 高新波, 莫梦竟成, 汪海涛, & 冷佳旭. (2021). 小目标检测研究进展. 数据采集与处理, 36(3), 27.
3: Tong, K., Wu, Y., & Zhou, F. (2020). Recent advances in small object detection based on deep learning: A review. Image and Vision Computing, 97, 103910.
4: Muzammul, M., & Li, X. (2021). A Survey on Deep Domain Adaptation and Tiny Object Detection Challenges, Techniques and Datasets. arXiv preprint arXiv:2107.07927.