
摘要
检测场景中的小物体和远处的物体是监控应用中的一大挑战。此类物体在图像中由少量像素表示,缺乏足够的细节,因此难以使用传统检测器进行检测。在这项工作中,提出了一个名为切片辅助超推理 (SAHI) 的开源框架,该框架为小物体检测提供了通用的切片辅助推理和微调管道。所提出的技术是通用的,因为它可以应用于任何可用的物体检测器而无需任何微调。使用 Visdrone 和 xView 空中物体检测数据集上的物体检测基线进行的实验评估表明,所提出的推理方法可以分别将 FCOS、VFNet 和 TOOD 检测器的物体检测 AP 提高 6.8%、5.1% 和 5.3%。此外,通过切片辅助微调可以进一步提高检测精度,从而以相同的顺序累计增加 12.7%、13.4% 和 14.5% AP。所提出的技术已与 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%)的相当大的物体。虽然训练后的模型对这些类型的输入数据具有成功的检测性能,但它们在高端无人机和监控摄像机生成的高分辨率图像中的小物体检测任务中的准确率明显较低。
无人机、4K 摄像机和深度学习研究的最新进展使得远程物体检测能够满足检测、观察、识别和鉴别 (DORI) 标准 [8]。DORI 标准针对不同任务定义了物体的最小像素高度:检测物体需要图像高度的 10%,识别物体需要图像高度的 20%(全高清视频中为 108 像素)。相对较小的像素覆盖范围推动了基于 CNN 的物体检测方法的极限,此外,高分辨率图像对内存要求更高。
在本文中,我们提出了一种基于切片辅助推理和微调的通用解决方案,用于高分辨率图像上的小物体检测,同时保持更高的内存利用率。图 1 说明了 Visdrone 测试集样本图像上小物体检测的改进。
图 1:使用 TOOD 检测器进行推理的结果(左)、切片辅助超推理(中)、切片辅助微调后的切片辅助超推理(右)。
2. 相关工作
近期基于学习的物体检测技术可分为两大类。单阶段检测器,如 SSD [9]、YOLO [10]、RetinaNet [2],直接预测物体的位置,无需明确的提议阶段。基于两阶段区域提议的方法,如 Fast R-CNN [11]、Faster R-CNN [1]、Cascade R-CNN [3],涉及初始区域提议阶段。然后细化这些提议以定义物体的位置和大小。通常,单阶段方法比两阶段方法更快,而后者具有更高的准确性
最近,无锚点检测器开始引起人们的关注。它们消除了锚点框的使用,将特征金字塔 [12] 上的每个点分类为前景或背景,并直接预测从前景点到 ground-truth 边界框四边的距离,以进行检测。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. 提出的方法
为了解决小物体检测问题,我们提出了一个基于微调和推理阶段切片的通用框架。将输入图像划分为重叠的块会导致小物体的像素面积相对于输入网络的图像相对较大。
图 2:切片辅助微调(顶部)和切片辅助超推理(底部)方法。在微调中,通过从图像中提取补丁并将其调整为更大的尺寸来扩充数据集。在推理过程中,图像被分成较小的补丁,并从这些补丁的较大调整大小版本生成预测。然后,这些预测在 NMS 之后转换回原始图像坐标。也可以选择添加来自完整推理的预测。
切片辅助微调 (SF):广泛使用的物体检测框架,例如 Detectron2 [22]、MMDetection [23] 和 YOLOv5 [24],在 ImageNet [5] 和 MS COCO [7] 等数据集上提供预训练权重。与使用大型数据集从头开始训练相比,这使我们能够使用较小的数据集和较短的训练跨度来微调模型。这些常见数据集大多涉及低分辨率图像 (640 × 480),其中具有相当大的物体和较大的像素覆盖率(平均覆盖图像高度的 60%)。使用这些数据集预训练的模型对于类似的输入提供了非常成功的检测性能。另一方面,它们在高端无人机和监控摄像机生成的高分辨率图像中的小物体检测任务中产生的准确率明显较低。
为了解决这个问题,我们通过从图像微调数据集中提取补丁来扩充数据集,如图 2 所示。每个图像 I 1 F , I 2 F , … , I j F I_1^F, I_2^F, \dots, I_j^F I1F,I2F,…,IjF 被切成重叠的补丁 P 1 F , P 2 F , … P k F P_1^F, P_2^F, \dots P_k^F P1F,P2F,…PkF,尺寸为 𝑀 和 𝑁,在预定义范围 [ M m i n , M m a x ] [M_{min}, M_{max}] [Mmin,Mmax] 和 [ N m i n , N m a x ] [N_{min}, N_{max}] [Nmin,Nmax] 内选择,这些范围被视为超参数。然后在微调期间,通过保留纵横比来调整补丁大小,以使图像宽度介于 800 到 1333 像素之间,以获得增强图像 I 1 ′ , I 2 ′ , … , I k ′ I_1', I_2', \dots, I_k' I1′,I2′,…,Ik′,从而使相对物体尺寸比原始图像更大。这些图像 I 1 ′ , I 2 ′ , … , I k ′ I_1', I_2', \dots, I_k' I1′,I2′,…,Ik′ 和原始图像 I 1 F , I 2 F , … , I j F I_1^F, I_2^F, \dots, I_j^F I1F,I2F,…,IjF(以便于检测大物体)在微调期间使用。需要注意的是,随着补丁尺寸减小,较大的物体可能不适合切片和相交区域,这可能会导致较大物体的检测性能不佳。
切片辅助超推理 (SAHI):如图 2 所示,在推理步骤中也使用了切片方法。首先,将原始查询图像 𝐼 切成 𝑙 个 𝑀×𝑁 重叠块 P 1 I , P 2 I , … , P l I P_1^I, P_2^I, \dots, P_l^I P1I,P2I,…,PlI。然后,在保持纵横比的同时调整每个块的大小。之后,将对象检测前向传递独立应用于每个重叠块。可以应用使用原始图像的可选全推理 (FI) 来检测更大的对象。最后,使用 NMS 将重叠预测结果和(如果使用)FI 结果合并回原始大小。在 NMS 期间,将匹配交并比 (IoU) 比率高于预定义匹配阈值 T m T_m Tm 的框,并且对于每个匹配,将删除检测概率低于 T d T_d Td 的检测。
4. 结果
所提出的方法已集成到 FCOS [13]、VarifocalNet [4] 和 TOOD [14] 物体检测器中,并使用 MMDetection [23] 框架进行实验评估。相关配置文件、转换和评估脚本、评估结果文件已公开提供 1 ^1 1。所有切片相关操作也已公开,以便集成到其他物体检测框架中 2 ^2 2。
VisDrone2019-Detection [25] 是一个物体检测数据集,包含无人机平台在不同位置和不同高度拍摄的 8599 张图像。此数据集中的大多数物体都很小、分布密集且部分被遮挡。不同场景下也有光照和透视变化。超过 540k 个目标边界框标注有十个预定义类别:行人、人、自行车、汽车、货车、卡车、三轮车、遮阳篷三轮车、公共汽车、摩托车。超类定义为行人、摩托车、汽车和卡车。训练和验证子集分别包含 6471 张和 548 张图像,这些图像是在不同位置但相似环境中收集的。
xView [26] 是用于从卫星图像进行物体检测的最大的公开数据集之一。它包含来自世界各地复杂场景的图像,并使用边界框进行注释。它包含来自 60 个不同类别的 100 多万个对象实例。在实验期间,随机选择的 75% 和 25% 分割分别用作训练集和验证集。
这两个数据集都包含小物体(物体宽度 < 图像宽度的 1%)。
在实验期间,使用学习率为 0.01、动量为 0.9、权重衰减为 0.0001 和线性预热为 500 次迭代的 SGD 优化器。学习率调度在第 16 和第 22 个时期以指数衰减完成。对于切片辅助微调,通过切片图像和注释创建补丁,然后使用这些补丁扩充 Visdrone 和 xView 训练集。每个补丁的大小是随机选择的,对于 Visdrone 和 xView 数据集,宽度和高度分别在 480 到 640 和 300 到 500 的范围内。输入图像的大小被调整为宽度为 800 到 1333(通过保持纵横比)。在推理过程中,NMS 匹配阈值 T m T_m Tm 设置为 0.5。
评估采用了 MS COCO [7] 评估协议,包括整体和大小方面的 A P 50 AP_{50} AP50 分数。具体而言, A P 50 AP_{50} 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 由 SF 和 SI 实现,而最佳大物体检测 AP 由 SF 和 FI 实现,证实了 FI 对大物体检测的贡献。xView 数据集的结果如表 2 所示。由于 xView 目标非常小,使用原始图像进行常规训练会产生较差的检测性能,而 SF 可以显着改善结果。 FI 的集成使大物体 AP 增加了 3.3%(???这里何以得出这个结论),但导致小/中物体 AP 略有下降,这是预料之中的,因为一些较大的物体可能无法从较小的切片中检测到。切片之间 25% 的重叠使检测 AP 增加了 1.7%(???这里何以得出这个结论)。xView 包含高度不平衡的 60 个目标类别,尽管 FCOS 是一个较旧且据报道较弱的检测器,但与 VFNet 相比,它在这个数据集上的性能非常接近。这一观察证实了 FCOS 中焦点损失 [2] 的有效性,它旨在处理类别不平衡。TOOD 也受益于训练期间的焦点损失,并在 3 个检测器中产生最佳检测结果。TOOD 检测器在 Visdrone 和 xView 数据集上的误差分析结果分别如图 3 和图 4 所示。这里 C75、C50、Loc、Sim、Oth、BG、FN 分别对应 IoU 阈值为 0.75 和 0.50 的结果,即忽略定位错误、超类别误报、类别混淆、所有假阳性和所有假阴性后的结果。如图 3 所示,超类别误报、类别混淆和定位错误有较小的改进空间,而假阳性和假阴性有较大的改进空间。同样,图 4 表明,在修复类别混淆和假阳性后,有很大的改进空间。
表 1:在 Visdrone19-Detection 测试集上计算的mAP。SF、SAHI、FI 和 PO 分别对应于切片辅助微调、切片辅助推理、全图像推理和重叠补丁。
表 2:在 xView 验证分割上计算的mAP。SF、SAHI、FI 和 PO 分别对应于切片辅助微调、切片辅助推理、全图像推理和重叠补丁
图 3:基于 Visdrone19-Det 测试集计算的 SF+SAHI 设置中的 TOOD 物体检测器的误差分析曲线。
图 4:根据 xView 验证分割计算的 SF+SAHI 设置中的 TOOD 物体检测器的误差分析条形图。
5. 结论
所提出的切片辅助超推理方案可以直接集成到任何对象检测推理管道中,并且不需要预训练。在 Visdrone 和 xView 数据集上使用 FCOS、VFNet 和 TOOD 检测器进行的实验表明,它可以使 AP 增加高达 6.8%。此外,应用切片辅助微调可以使小物体的 AP 额外增加 14.5%,而应用切片之间 25% 的重叠可以使 AP 进一步增加 2.9%。通过更大的特征图使用更高分辨率图像训练网络会导致更高的计算和内存需求。所提出的方法线性增加了计算时间,同时保持内存需求不变。考虑到目标平台,还可以通过调整补丁大小来权衡计算和内存预算。未来,实例分割模型将利用所提出的切片方法进行基准测试,并评估不同的后处理技术。
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!