Title: SLICING AIDED HYPER INFERENCE AND FINE-TUNING FOR SMALL OBJECT DETECTION
Abstract: Detection of small objects and objects far away in the scene is a major challenge in surveillance applications. Such objects are represented by small number of pixels in the image and lack sufficient details, making them difficult to detect using conventional detectors. In this work, an open-source framework called Slicing Aided Hyper Inference (SAHI) is proposed that provides a generic slicing aided inference and finetuning pipeline for small object detection. The proposed technique is generic in the sense that it can be applied on top of any available object detector without any fine-tuning. Experimental evaluations, using object detection baselines on the Visdrone and xView aerial object detection datasets show that the proposed inference method can increase object detection AP by 6.8%, 5.1% and 5.3% for FCOS, VFNet and TOOD detectors, respectively. Moreover, the detection accuracy can be further increased with a slicing aided fine-tuning, resulting in a cumulative increase of 12.7%, 13.4% and 14.5% AP in the same order. Proposed technique has been integrated with Detectron2, MMDetection and YOLOv5 models and it is publicly available at https://github.com/obss/sahi.git
Keywords: small object detection; sliced inference; windowed inference; Visdrone; xView
摘要:对场景中的小物体和远处物体的检测是监控应用中的一个主要挑战。这样的物体由图像中的少量像素表示,并且缺乏足够的细节,使得使用传统检测器很难检测到它们。在这项工作中,提出了一个名为切片辅助超推理(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
近年来,物体检测已被广泛研究用于不同的应用,包括人脸检测、视频物体检测、视频监控、自动驾驶汽车。在该领域,深度学习架构的采用产生了高度准确的方法,如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测试集样本图像上小物体检测的改进。
最近的基于学习的对象检测技术可以分为两种主要类型。单阶段检测器,如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]利用新颖的任务对齐头(task-aligned head),以基于学习的方式明确对齐两个任务(对象分类和定位),通过设计的样本分配方案和任务对齐损失,在学习任务交互特征和特定任务特征与任务对齐学习之间实现了更好的平衡。
为一般物体检测设计的算法在包含小而密集物体的高分辨率图像上表现不佳,导致了小物体检测的特定方法。在[15]中,使用基于粒子群优化(PSO)和细菌觅食优化(BFO)的学习策略(PBLS)来优化分类器和损失函数。然而,对原始模型的这些重大修改阻止了对预训练权重的微调,并需要从头开始训练。此外,由于不寻常的优化步骤,它们很难适应当前的检测器。[16]中提出的方法对具有小对象的图像进行过采样,并通过制作多个小对象的副本来增强它们。然而,这种增强需要分割注释,因此,它与对象检测数据集不兼容。[17]中的方法可以从放大的区域中学习小物体的更丰富的特征,这些区域是从原始图像中截取的。额外的特征对检测性能有积极贡献,但要放大的区域的选择带来了计算负担。在[18]中,提出了一种用于小对象检测的全卷积网络,该网络包含一种早期视觉注意机制,该机制用于选择具有小对象及其上下文的最有前途的区域。在[19]中,提出了一种基于切片的技术,但该实现不是通用的,仅适用于特定的对象检测器。在[20]中,提出了一种用于小规模行人检测的新型网络(称为JCS-Net),该网络将分类任务和超分辨率任务集成在一个统一的框架中。[21]提出了一种通过采用生成对抗性网络(GAN)从模糊的小人脸直接生成清晰的高分辨率人脸的算法。然而,由于这些技术提出了新的检测器体系结构,它们需要用大型数据集从头开始进行预训练,这是昂贵的。
与上述技术相比,我们提出了一种通用的切片辅助微调和推理流水线,可以在任何现有的对象检测器之上使用。这样,任何当前可用的对象检测器的小对象检测性能都可以在没有任何微调的情况下得到提高(通过切片辅助推理)。此外,可以通过微调预训练的模型来获得额外的性能提升。
为了解决小对象检测问题,我们在微调和推理阶段提出了一个基于切片的通用框架。将输入图像划分为重叠的块导致小对象相对于馈送到网络中的图像的相对较大的像素区域。
图2:切片辅助微调(顶部)和切片辅助超推理(底部)方法。在微调中,通过从图像中提取补丁并将其调整为更大的大小来增强数据集。在推理过程中,图像被划分为较小的补丁,并且预测是从这些补丁的较大的调整大小的版本中生成的。然后,这些预测在NMS之后被转换回原始图像坐标。可选地,还可以添加来自完全推断的预测。
切片辅助微调(Slicing Aided Fine-tuning, SF): Detectron2[22], MMDetection [23]和YOLOv5[24]等广泛使用的对象检测框架在ImageNet[5]和MS COCO[7]等数据集上提供预训练的权重。这使我们能够使用较小的数据集和较短的训练跨度来微调模型,而不是使用大型数据集从头开始训练。这些常见的数据集大多涉及低分辨率图像(640×480),这些图像具有相当大的对象和大的像素覆盖范围(平均覆盖图像高度的60%)。使用这些数据集预训练的模型为类似的输入提供了非常成功的检测性能。另一方面,在高端无人机和监控摄像机生成的高分辨率图像中,它们对小物体检测任务的准确性明显较低。
为了克服这个问题,我们通过从图像中提取图像块来扩充数据集,对数据集进行微调,如图2所示。每个图像I1F , I2F , ……, IjF 被切成规定范围为[Mmin, Mmax] 和[Nmin, Nmax] 的超参数M和N尺寸的重叠图像块P1F , P2F , ……, PkF ,然后在微调期间,通过保持纵横比来调整图像块的大小,使得图像宽度在800到1333像素之间,以获得增强图像I1' , I2' , ……, Ik' ,从而相对对象尺寸与原始图像相比更大。连同原始图像I1F , I2F , ……, IjF (以便于检测大型物体),I1' , I2' , ……, Ik' 这些图像一起在微调期间使用,必须注意的是,随着切片图像尺寸的减小,较大的物体可能不适配切片和相交区域,这可能导致较大物体的检测性能较差。
切片辅助超推理(Slicing Aided Hyper Inference,SAHI):在推理步骤中也使用切片方法,如图2所示。首先,将原始需求图像I 切片成l 个尺寸为M×N 的重叠切片P1I , P2I , ……, PlI . 然后,调整每个切片图像的大小,同时保持纵横比。之后,将对象检测前向通过独立地应用于每个重叠补丁。可以应用使用原始图像的可选完全推断(full-inference,FI)来检测较大的物体。最后,使用NMS将重叠的预测结果和(如果使用的话)FI结果合并回原始大小。在NMS期间,具有比预定义匹配阈值Tm 更高的交并比(IoU)的框被匹配,并且对于每个匹配,具有比Td 更低的检测概率的检测被去除。
所提出的方法已使用MMDetection[23]框架集成到FCOS[13]、V arifocalNet[4]和TOOD[14]对象检测器中进行实验评估。相关配置文件、转换和评估脚本、评估结果文件已公开提供(GitHub - fcakyon/small-object-detection-benchmark: icip2022 paper: sahi benchmark on visdrone and xview datasets using fcos, vfnet and tood detectors)。所有与切片相关的操作也已公开,以实现与其他对象检测框架的集成(GitHub - obss/sahi: Framework agnostic sliced/tiled inference + interactive ui + error analysis plots)。VisDrone2019 Detection[25]是一个物体检测数据集,由无人机平台在不同位置和不同高度捕获8599张图像。该数据集中的大多数对象都很小,分布密集,并且部分被遮挡。在不同的场景中也有照明和视角的变化。超过540k个目标的边界框被注释为十个预定义的类别:行人、人、自行车、汽车、面包车、卡车、三轮车、遮阳篷三轮车、公共汽车、汽车。超级类别被定义为行人、汽车、汽车和卡车。训练子集和验证子集分别由6471幅和548幅图像组成,这些图像采集于不同地点,但环境相似。
xView[26]是从卫星图像中进行物体检测的最大的公开可用数据集之一。它包含来自世界各地复杂场景的图像,并使用边界框进行注释。它包含来自60个不同类的超过1M个对象实例。在实验过程中,随机选择的75%和25%的分裂分别用作训练集和验证集。
这两个数据集都包含小对象(对象宽度<图像宽度的1%)。
在实验过程中,使用了学习率为0.01、动量为0.9、权重衰减为0.0001和线性预热为500次迭代的SGD优化器。学习率调整是在第16和第22个时期以指数衰减的方式完成的。对于切片辅助微调,通过对图像和注释进行切片,然后使用这些切片图像来增强Visdrone和xView训练集。对于Visdrone和xView数据集,每个切片的大小被随机选择为宽度和高度分别在480到640和300到500的范围内。输入图像的大小被调整为具有800到1333的宽度(通过保持长宽比)。在推断期间,NMS匹配阈值Tm被设置为0.5。
已采用MS COCO[7]评估方案进行评估,包括总体和规模方面的AP50 得分。具体地,在所有类别上以单个IoU阈值0.5计算AP50 ,并且最大检测次数被设置为500。在表1和2中,以原始图像的常规推断FI(完全推断)作为基准。SF(Slicing Aided Fine tuning,切片辅助微调)是在表1和表2中切片尺寸大小分别在480到640和300到500范围内的增强数据集上进行微调的模型。SAHI(切片辅助超推理)是指在表1和表2中分别使用大小为640×640 和400×400 的切片进行推理。PO(Patch Overlap,切片重叠)是指在切片推理过程中,切片图像之间有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]在FCOS中的有效性,FCOS旨在处理类别失衡。TOOD还受益于训练过程中的焦点损失,并在3个检测器中产生最佳检测结果。TOOD检测器在Visdrone和xView数据集上的误差分析结果如图所示。分别为图3和4。这里,C75、C50、Loc、Sim、Oth、BG、FN分别对应于在0.75和0.50的IoU阈值下的结果、忽略定位误差后的结果、超类别假阳性、类别混淆、所有假阳性和所有假阴性。如图3所示,超级类别误报、类别混淆和定位错误的改进空间较小,误报和误报的改进空间较大。同样,图4显示,在修复类别混淆和误报之后,还有很大的改进空间。
所提出的切片辅助超推理方案可以直接集成到任何对象检测推理流水线中,并且不需要预训练。在Visdrone和xView数据集上使用FCOS、VFNet和TOOD检测器的实验表明,它可以导致高达6.8%的AP增加。此外,应用切片辅助微调会导致小物体的AP增加14.5%,而在切片之间应用25%的重叠会导致AP进一步增加2.9%。通过更大的特征图训练具有更高分辨率图像的网络导致更高的计算和内存需求。所提出的方法线性地增加了计算时间,同时保持了固定的内存需求。考虑到目标平台,还可以通过调整补丁大小来权衡计算和内存预算。未来,将利用所提出的切片方法对实例分割模型进行基准测试,并对不同的后处理技术进行评估。