摘要
在监控应用中,检测场景中的小目标和远距离目标是一项重大挑战。这类目标在图像中仅由少量像素表示,缺乏足够的细节,因此难以使用常规检测器进行检测。本文提出一个名为切片辅助超推理(SAHI)的开源框架,为小目标检测提供了一种通用的切片辅助推理与微调流程。所提出的技术具有通用性,可直接应用于任何现有的目标检测器,无需任何微调。在Visdrone和xView航拍目标检测数据集上,使用多种目标检测基线进行的实验评估表明,所提出的推理方法可分别将FCOS、VFNet和TOOD检测器的目标检测AP(平均精度)提高6.8%、5.1%和5.3%。此外,通过切片辅助微调可以进一步提高检测精度,对于上述三种检测器,AP累计增幅分别达到了12.7%、13.4%和14.5%。该技术已集成到Detectron2、MMDetection和YOLOv5模型中,并在https://github.com/obss/sahi.git 公开可用。
索引词:小目标检测,切片推理,窗口推理,Visdrone,xView
1. 引言
近年来,目标检测在人脸检测、视频目标检测、视频监控、自动驾驶等不同应用中得到了广泛研究。在该领域,深度学习架构的采用催生了诸如Faster R-CNN [1]、RetinaNet [2]等高精度方法,并进一步发展成为Cascade R-CNN [3]、VarifocalNet [4]及其变体。所有这些最新的检测器都是在众所周知的数据集(如ImageNet [5]、Pascal VOC12 [6]、MS COCO [7])上进行训练和评估的。这些数据集主要包含低分辨率图像(640×480),且目标尺寸相当大,像素覆盖率高(平均覆盖图像高度的60%)。虽然在这些数据集上训练的模型对于此类输入数据具有成功的检测性能,但在处理高端无人机和监控摄像头生成的高分辨率图像中的小目标检测任务时,它们的准确性会显著降低。
<center>图1:使用TOOD检测器推理(左)、切片辅助超推理(中)、切片辅助微调后的切片辅助超推理(右)的结果对比。 </center>
无人机、4K摄像头和深度学习研究的最新进展使得远距离目标检测成为可能,这符合检测、观察、识别和辨识(DORI)标准 [8]。DORI标准针对不同任务定义了目标的最小像素高度:检测需要图像高度的10%,识别则需要20%(在全高清视频中为108像素)。相对较小的像素覆盖率对基于CNN的目标检测方法提出了挑战,此外,高分辨率图像对内存需求也提出了更高要求。
在本文中,我们提出了一种基于切片辅助推理和微调的通用解决方案,用于在高分辨率图像上进行小目标检测,同时保持更高的内存利用率。图1展示了Visdrone测试集样本图像上小目标检测的改进情况。
2. 相关工作
近年来基于学习的目标检测技术可分为两大类型:单阶段检测器,如SSD [9]、YOLO [10]、RetinaNet [2],直接预测目标位置,无需显式的候选区域阶段;两阶段候选区域生成方法,如Fast R-CNN [11]、Faster R-CNN [1]、Cascade R-CNN [3],则包含一个初始的候选区域生成阶段,这些候选区域随后被细化以确定目标的位置和大小。通常,单阶段方法比两阶段方法更快,而后者的准确性更高。
最近,无锚点检测器开始引起关注。它们不再使用预定义的锚框,而是将特征金字塔 [12] 上的每个点分类为前景或背景,并直接预测从前景点到真实边界框四边的距离,从而生成检测结果。FCOS [13] 是首个消除了预定义锚框集合及其计算需求的检测器。VarifocalNet (VFNet) [4] 学习预测IoU感知的分类分数,该分数将目标存在置信度和定位精度混合在一起,作为边界框的检测分数。该学习过程由提出的Varifocal Loss (VFL) 监督,其基于一种新的星形边界框特征表示。TOOD [14] 以基于学习的方式,利用新颖的任务对齐头部,明确地对齐了目标分类和定位这两个任务,该头部在学习任务交互和任务特定特征之间提供了更好的平衡,并通过设计的样本分配方案和任务对齐损失实现了任务对齐学习。
为通用目标检测设计的算法在处理包含小且密集目标的高分辨率图像时表现不佳,因此出现了针对小目标检测的特定方法。在 [15] 中,使用了一种基于粒子群优化(PSO)和细菌觅食优化(BFO)的学习策略(PBLS)来优化分类器和损失函数。然而,这些对原始模型的重大修改阻碍了从预训练权重进行微调,要求从头开始训练。此外,由于不寻常的优化步骤,它们难以适应现有的检测器。[16] 中提出的方法对包含小目标的图像进行过采样,并通过复制多个小目标来增强它们。但是,这种增强需要分割注释,因此与目标检测数据集不兼容。[17] 中的方法可以从原始图像中裁剪出的放大区域学习更丰富的小目标特征。额外的特征对检测性能有积极贡献,但选择要放大的区域会带来计算负担。在 [18] 中,提出了一个用于小目标检测的全卷积网络,它包含一个早期视觉注意力机制,用于选择包含小目标及其上下文的最有潜力的区域。[19] 中提出了一种基于切片的技术,但其实现不是通用的,仅适用于特定的目标检测器。[20] 中提出了一种新的网络(称为JCS-Net)用于小规模行人检测,该网络在一个统一的框架中集成了分类任务和超分辨率任务。[21] 提出了一种算法,通过采用生成对抗网络(GAN)直接从模糊的小图像生成清晰的高分辨率人脸。然而,由于这些技术提出了新的检测器架构,它们需要在大数据集上从头开始预训练,成本高昂。
与上述技术相比,我们提出了一种通用的切片辅助微调和推理流程,可以应用于任何现有的目标检测器之上。这样,无需任何微调(通过切片辅助推理)即可提升任何现有目标检测器的小目标检测性能。此外,通过对预训练模型进行微调,可以获得额外的性能提升。
3. 所提出的方法
为了处理小目标检测问题,我们提出了一个基于切片(slicing)的通用框架,应用于微调和推理阶段。将输入图像分割成有重叠的图块(patch),会使得小目标相对于网络输入图像而言占据的像素区域更大。
<center>图2:切片辅助微调(上)和切片辅助超推理(下)方法。在微调中,通过从图像中提取图块并将其调整到更大尺寸来增强数据集。在推理过程中,将图像划分为较小的图块,并从这些图块的较大调整版本生成预测。然后,在应用NMS(非极大值抑制)后,将这些预测转换回原始图像坐标。可选地,也可以添加来自完整图像推理的预测。 </center>
切片辅助微调 (SF):广泛使用的目标检测框架,如Detectron2 [22]、MMDetection [23] 和 YOLOv5 [24],提供了在 ImageNet [5] 和 MS COCO [7] 等数据集上的预训练权重。这使我们能够在更小的数据集上,在更短的训练周期内微调模型,而无需使用大型数据集从头开始训练。这些常见数据集主要包含低分辨率图像 (640×480),其中的目标尺寸相当大,像素覆盖率高(平均覆盖图像高度的60%)。在这些数据集上预训练的模型对于类似的输入提供了非常成功的检测性能。然而,在处理高端无人机和监控摄像头生成的高分辨率图像中的小目标检测任务时,它们的准确性会显著降低。
为了克服这个问题,我们通过从训练数据集的图像中提取图块来增强数据集,如图2所示。每张图像 I₁^F, I₂^F, …, Iⱼ^F 被切片成有重叠的图块 P₁^F, P₂^F, …, Pₖ^F,其尺寸 M 和 N 在预定义的范围 [M_min, M_max] 和 [N_min, N_max] 内选择,这些范围被视为超参数。然后在微调过程中,通过保持宽高比将图块调整大小,使图像宽度在800到1333像素之间,以获得增强图像 I₁', I₂', …, Iₖ',此时目标相对于原始图像而言尺寸更大。这些增强图像 I₁', I₂', …, Iₖ' 连同原始图像 I₁^F, I₂^F, …, Iⱼ^F (以便于检测大目标)一起用于微调。需要指出的是,随着图块尺寸的减小,较大的目标可能无法完整地放入一个图块或重叠区域内,这可能导致对大目标的检测性能下降。
切片辅助超推理 (SAHI):在推理步骤中也采用了切片方法,详见图2。首先,将原始查询图像 I 切片成 l 个 M×N 的有重叠图块 P₁^I, P₂^I, …, Pₗ^I。然后,在保持宽高比的同时调整每个图块的大小。之后,对每个有重叠的图块独立地应用目标检测前向传播。可以选择对原始图像应用全图推理(FI)以检测较大的目标。最后,使用NMS将重叠的预测结果以及(如果使用的)全图推理结果合并回原始尺寸。在NMS过程中,将具有交并比(IoU)高于预定义匹配阈值 T_m 的边界框进行匹配,对于每个匹配,移除检测概率低于阈值 T_d 的检测结果。
4. 实验结果
所提出的方法已被集成到基于MMDetection [23] 框架的 FCOS [13]、VarifocalNet [4] 和 TOOD [14] 目标检测器中,用于实验评估。相关的配置文件、转换和评估脚本、评估结果文件已公开提供¹。所有与切片相关的操作也已公开可用,以便集成到其他目标检测框架中²。
VisDrone2019-Detection [25] 是一个目标检测数据集,包含8599张图像,由无人机在不同地点和不同高度拍摄。该数据集中的大多数目标尺寸小、分布密集且部分遮挡。在不同场景中还存在光照和视角变化。超过54万个目标边界框被标注为十个预定义类别:行人、人、自行车、汽车、面包车、卡车、三轮车、带篷三轮车、公交车、摩托车。超类别定义为行人、摩托车、汽车和卡车。训练和验证子集分别包含6471张和548张图像,这些图像采集自不同地点但环境相似。
xView [26] 是用于卫星图像目标检测的最大公开数据集之一。它包含了来自世界各地复杂场景的图像,并使用边界框进行标注。它包含来自60个不同类别的超过100万个目标实例。在实验过程中,随机选择的75%和25%的数据分割分别用作训练集和验证集。
这两个数据集都包含小目标(目标宽度 < 图像宽度的1%)。


配置方案
AP50
AP50s
AP50m
AP50l
FCOS+FI
25.8
14.2
39.6
45.1
FCOS+SAHI+PO
29.0
18.9
41.5
46.4
FCOS+SAHI+FI+PO
31.0
19.8
44.6
49.0
FCOS+SF+SAHI+PO
38.1
25.7
54.8
56.9
FCOS+SF+SAHI+FI+PO
38.5
25.9
55.4
59.8
VFNet+FI
28.8
16.8
44.0
47.5
VFNet+SAHI+PO
32.0
21.4
45.8
45.5
VFNet+SAHI+FI+PO
33.9
22.4
49.1
49.4
VFNet+SF+SAHI+PO
41.9
29.7
58.8
60.6
VFNet+SF+SAHI+FI+PO
42.2
29.6
59.2
63.3
TOOD+FI
29.4
18.1
44.1
50.0
TOOD+SAHI
31.9
22.6
44.0
45.2
TOOD+SAHI+PO
32.5
22.8
45.2
43.6
TOOD+SAHI+FI
34.6
23.8
48.5
53.1
TOOD+SAHI+FI+PO
34.7
23.8
48.9
50.3
TOOD+SF+FI
36.8
24.4
53.8
66.4
TOOD+SF+SAHI
42.5
31.6
58.0
61.1
TOOD+SF+SAHI+PO
43.1
31.7
59.0
60.2
TOOD+SF+SAHI+FI
43.4
31.7
59.6
65.6
TOOD+SF+SAHI+FI+PO
43.5
31.7
59.8
65.4
表1:在 Visdrone19-Detection test-dev 集上计算的平均精度值。SF、SAHI、FI 和 PO 分别对应切片辅助微调、切片辅助推理、全图推理和重叠图块。


配置方案
AP50
AP50s
AP50m
AP50l
FCOS+FI
2.2
0.1
1.8
7.3
FCOS+SF+SAHI
15.8
11.9
18.4
11.0
FCOS+SF+SAHI+PO
17.1
12.2
20.2
12.8
FCOS+SF+SAHI+FI
15.7
11.9
18.4
14.3
FCOS+SF+SAHI+FI+PO
17.0
12.2
20.2
15.8
VFNet+FI
2.1
0.5
1.8
6.8
VFNet+SF+SAHI
16.0
11.9
17.6
13.1
VFNet+SF+SAHI+PO
17.7
13.7
19.7
15.4
VFNet+SF+SAHI+FI
15.8
11.9
17.5
15.2
VFNet+SF+SAHI+FI+PO
17.5
13.7
19.6
17.6
TOOD+FI
2.1
0.1
2.0
5.2
TOOD+SF+SAHI
19.4
14.6
22.5
14.2
TOOD+SF+SAHI+PO
20.6
14.9
23.6
17.0
TOOD+SF+SAHI+FI
19.2
14.6
22.3
14.7
TOOD+SF+SAHI+FI+PO
20.4
14.9
23.5
17.6
表2:在 xView 验证分割上计算的平均精度值。SF、SAHI、FI 和 PO 分别对应切片辅助微调、切片辅助推理、全图推理和重叠图块。
<center>图3:在 Visdrone19-Det test-dev 集上计算的 TOOD 检测器在 SF+SAHI 设置下的误差分析曲线。 </center><center>图4:在 xView 验证分割上计算的 TOOD 检测器在 SF+SAHI 设置下的误差分析条形图。 </center>
在实验过程中,使用了学习率为0.01、动量为0.9、权重衰减为0.0001、线性预热为500次迭代的SGD优化器。学习率调度采用指数衰减,在第16轮和第22轮进行衰减。对于切片辅助微调,通过对图像和标注进行切片来创建图块,然后使用这些图块增强Visdrone和xView训练集。对于Visdrone和xView数据集,每个图块的宽度和高度分别在480到640和300到500的范围内随机选择。输入图像被调整大小,使得宽度在800到1333像素之间(保持宽高比)。在推理过程中,NMS匹配阈值 T_m 设置为0.5。
评估采用了MS COCO [7] 评估协议,包括整体和按尺寸划分的AP50分数。具体来说,AP50是在单个IoU阈值0.5下,对所有类别计算的,最大检测数设置为500。
在表1和表2中,对原始图像的常规推理(FI,全图推理)被视为基线。SF(切片辅助微调)指的是在增强数据集上微调的模型,表1和表2中的图块尺寸范围分别为480到640和300到500。SAHI(切片辅助超推理)分别指表1和表2中使用640×640和400×400尺寸图块的推理。PO(图块重叠)表示在切片推理过程中图块之间有25%的重叠。
从表1可以看出,SAHI将目标检测AP分别提高了6.8%、5.1%和5.3%。通过SF(切片辅助微调)可以进一步提高检测精度,对于FCOS、VFNet和TOOD检测器,AP累计增幅分别达到了12.7%、13.4%和14.5%。在推理过程中对切片应用25%的重叠,增加了小/中目标AP和整体AP,但略微降低了大目标AP。AP的增加是由从切片预测出的额外的小目标真阳性引起的,而减少是由从切片预测出的与大尺寸真实框匹配的假阳性引起的。最佳的小目标检测AP是通过SF后接SAHI(切片辅助推理)实现的,而最佳的大目标检测AP是通过SF后接FI(全图推理)实现的,这证实了FI对大目标检测的贡献。
xView数据集的结果如表2所示。由于xView的目标非常小,使用原始图像进行常规训练会产生较差的检测性能,而SF显著改善了结果。集成FI使大目标AP最多提高了3.3%,但导致小/中目标AP略有下降,这是预期的,因为一些较大的目标可能无法从较小的切片中检测到。切片之间25%的重叠使检测AP最多提高了1.7%。xView包含高度不平衡的60个目标类别,尽管FCOS是一个较老且据报道较弱的检测器,但在此数据集上其性能与VFNet非常接近。这一观察结果证实了FCOS中用于处理类别不平衡的Focal Loss [2] 的有效性。TOOD在训练期间也从Focal Loss中受益,并在三种检测器中取得了最佳的检测结果。
TOOD检测器在Visdrone和xView数据集上的误差分析结果分别如图3和图4所示。图中C75、C50、Loc、Sim、Oth、BG、FN分别对应IoU阈值为0.75和0.50时的结果、忽略定位误差后的结果、超类别假阳性、类别混淆、所有假阳性以及所有假阴性。从图3可以看出,改善超类别假阳性、类别混淆和定位误差的余地较小,而改善假阳性和假阴性的余地较大。类似地,图4显示,在解决类别混淆和假阳性问题后,仍有很大的改进空间。
5. 结论
所提出的切片辅助超推理方案可以直接集成到任何目标检测推理流程中,并且不需要预训练。在Visdrone和xView数据集上使用FCOS、VFNet和TOOD检测器进行的实验表明,它可以带来高达6.8%的AP提升。此外,应用切片辅助微调可使小目标的AP额外增加14.5%,在切片之间应用25%的重叠可进一步使AP增加2.9%。通过更大的特征图训练更高分辨率的网络会导致更高的计算和内存需求。所提出的方法使计算时间线性增加,同时保持内存需求固定。计算和内存预算也可以通过调整图块尺寸来权衡,同时考虑目标平台。未来,将利用所提出的切片方法对实例分割模型进行基准测试,并评估不同的后处理技术。
6. 参考文献
[1] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards real-time object detection with region proposal networks,” Advances in neural information processing systems, vol. 28, pp. 91-99, 2015.
[2] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar, “Focal loss for dense object detection,” in Proceedings of the IEEE ICCV, 2017, pp. 2980-2988.
[3] Z. Cai and N. Vasconcelos, “Cascade R-CNN: Delving into high quality object detection,” in Proceedings of the IEEE conference on CVPR, 2018, pp. 6154-6162.
[4] H. Zhang, Y. Wang, F. Dayoub, and N. Sunderhauf, “Varifocalnet: An iou-aware dense object detector,” in Proceedings of the IEEE/CVF Conference on CVPR, 2021, pp. 8514-8523.
[5] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei, “Imagenet: A large-scale hierarchical image database,” in 2009 IEEE conference on CVPR. Ieee, 2009, pp. 248-255.
[6] M. Everingham, L. Van Gool, C. K. Williams, J. Winn, and A. Zisserman, “The pascal visual object classes (VOC) challenge,” ICCV, vol. 88, no. 2, pp. 303-338, 2010.
[7] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick, “Microsoft COCO: Common objects in context,” in ECCV. Springer, 2014, pp. 740-755.
[8] E. C. for Electro-technical Standardization, “Alarm systems - cctv surveillance systems for use in security applications,” August 2012.
[9] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg, “SSD: Single shot multibox detector,” in ECCV. Springer, 2016, pp. 21-37.
[10] A. Bochkovskiy, C.-Y. Wang, and H.-Y. M. Liao, “Yolov4: Optimal speed and accuracy of object detection,” arXiv preprint arXiv:2004.10934, 2020.
[11] R. Girshick, “Fast r-cnn,” in Proceedings of the IEEE ICCV, 2015, pp. 1440-1448.
[12] T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie, “Feature pyramid networks for object detection,” in Proceedings of the IEEE CVPR, 2017, pp. 2117-2125.
[13] Z. Tian, C. Shen, H. Chen, and T. He, “FCOS: Fully convolutional one-stage object detection,” in Proceedings of the IEEE/CVF ICCV, 2019, pp. 9627-9636.
[14] C. Feng, Y. Zhong, Y. Gao, M. R. Scott, and W. Huang, “TOOD: Task-aligned one-stage object detection,” in Proceedings of the IEEE/CVF ICCV, 2021, pp. 3510-3519.
[15] G. Wang, J. Guo, Y. Chen, Y. Li, and Q. Xu, “A PSO and BFO-based learning strategy applied to faster R-CNN for object detection in autonomous driving,” IEEE Access, vol. 7, pp. 18840-18859, 2019.
[16] M. Kisantal, Z. Wojna, J. Murawski, J. Naruniec, and K. Cho, “Augmentation for small object detection,” arXiv preprint arXiv:1902.07296, 2019.
[17] Z. Chen, K. Wu, Y. Li, M. Wang, and W. Li, “SSD-MSN: An improved multi-scale object detection network based on ssd,” IEEE Access, vol. 7, pp. 80622-80632, 2019.
[18] B. Bosquet, M. Mucientes, and V. M. Brea, “STDnet: A convnet for small target detection,” in BMVC, 2018, p. 253.
[19] A. Van Etten, “Satellite imagery multiscale rapid detection with windowed networks,” in 2019 IEEE WACV. IEEE, 2019, pp. 735-743.
[20] Y. Pang, J. Cao, J. Wang, and J. Han, “JCS-Net: Joint classification and super-resolution network for small-scale pedestrian detection in surveillance images,” IEEE Trans. Inf. Forensics Security, vol. 14, no. 12, pp. 3322-3331, 2019.
[21] Y. Bai, Y. Zhang, M. Ding, and B. Ghanem, “Finding tiny faces in the wild with generative adversarial network,” in Proceedings of the IEEE CVPR, 2018, pp. 21-30.
[22] Y. Wu, A. Kirillov, F. Massa, W.-Y. Lo, and R. Girshick, “Detectron2,” https://github.com/facebookresearch/detectron2, 2019.
[23] K. Chen, J. Wang, J. Pang, Y. Cao, Y. Xiong, X. Li, S. Sun, W. Feng, Z. Liu, J. Xu, et al., “MMDetection: Open mmlab detection toolbox and benchmark,” arXiv preprint arXiv:1906.07155, 2019.
[24] G. Jocher, A. Stoken, J. Borovec, A. Chaurasia, L. Changyu, V. Laughing, A. Hogan, J. Hajek, L. Diaconu, Y. Kwon, et al., “ultralytics/yolov5: v5. 0-yolov5-p6 1280 models aws super- vise. ly and youtube integrations,” Zenodo, vol. 11, 2021.
[25] D. Du, P. Zhu, L. Wen, X. Bian, H. Lin, Q. Hu, T. Peng, J. Zheng, X. Wang, Y. Zhang, et al., “Visdrone-det2019: The vision meets drone object detection in image challenge results,” in Proceedings of the IEEE/CVF ICCV Workshops, 2019, pp. 0-0.
[26] D. Lam, R. Kuzma, K. McGee, S. Dooley, M. Laielli, M. Klaric, Y. Bulatov, and B. McCord, “xView: Objects in context in overhead imagery,” arXiv preprint arXiv:1802.07856, 2018.

¹ https://github.com/fcakyon/sahi-benchmark
² https://github.com/obss/sahi

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐