目标检测技能点|一步一步带你实验并重新思考目标检测不同检测头的作用
多尺度检测在目标检测模型中占有重要地位。然而,研究人员通常对如何在不同输入分辨率下结合多尺度特征合理配置检测头感到空白。作者发现在不同的输入分辨率下,目标分布和检测头之间存在不同的匹配关系。基于这些有指导意义的发现,作者提出了一种基于检测头和目标分布之间匹配的轻量化交通目标检测网络,称为
MHDNet
。它由三个主要部分组成。第一种是检测头和目标分布匹配策略,它指导检测头的合理配置,以便利用多尺度特征有效地检测不同尺度的目标。第二个是跨尺度检测头配置指南,该指南指示用2个具有丰富特征表示的检测头替换多个检测头,以在检测精度、模型参数、FLOP
和检测速度之间实现极好的平衡。第三种是感受野扩大方法,它将扩大的卷积模块与主干的浅特征相结合,以略微增加模型参数为代价,进一步提高检测精度。该模型在
BDD100K
数据集和提出的ETFOD-v2
数据集上比其他模型具有更强的竞争性能。
1、简介
作为智能驾驶的重要组成部分,目标检测对于确保驾驶安全至关重要。通常,为了平衡FLOP
的检测精度,缩放输入分辨率是一种常见的方法。作者回顾了BDD100K
数据集上检测模型的细节,意外地发现不同的检测头可以在不同的输入分辨率下匹配不同尺度的目标。如图1所示,在低输入分辨率下,有大量物体与H1
和H2
检测头匹配。然而,随着输入分辨率的提高,与H1
和H2
检测头匹配的目标数量显著减少,而与H4
和H5
检测头匹配目标的数量显著增加。
这一发现令人兴奋,并促使重新思考现有模型中检测头的配置是否最佳。例如,在输入分辨率较低的情况下,是否可以使用3个与YOLOv5设置的检测头类似的检测头来实现最佳的检测性能,尤其是对于大量的小目标?在高输入分辨率下,5个类似于IDYOLO
的检测头是否会导致检测头冗余,并增加模型优化的难度?此外,对于不同的输入分辨率,如何配置合适的检测头,以在非常不同的尺度上实现更好的交通目标检测性能?
另一方面,为了减少模型参数和提高检测速度,使用较少的检测头是一种常见的方法。Yolov3-tiny
和YOLOv4-tiny
使用H4
和H5
检测头检测物体。该方法减少了模型参数,提高了检测速度,但牺牲了检测精度。YOLOF
采用单H5
检测头,减少了模型参数,提高了检测精度,但对小目标的检测不友好。CornerNet
和CenterNet
使用单个H2
检测头取得了具有竞争力的性能,但对大目标的检测性能可能不足。对于计算资源有限、目标尺度不同的交通场景,如何配置合理的检测头,在检测精度、模型参数、FLOP和检测速度之间取得良好的平衡,是一个值得研究的问题。
为了解决上述问题,首先对检测头的配置对BDD100K
数据集在不同输入分辨率下的检测性能的影响进行了初步研究。
实验结果表明,3个检测头(H3-5
)的检测精度低于4个检测头,低分辨率为416。高分辨率为1504,H3-5
检测头的检测精度高于H2-5
检测头。
作者认为,这种完全相反的结果主要是由于检测头和目标分布之间的不匹配造成的。由于输入分辨率较低,大量小目标与对应于高分辨率特征图的检测头相匹配。在这种情况下,只有3个检测头无法有效检测大量的小物体。据了解,增加H2
检测头有利于小目标检测。随着高输入分辨率,目标规模整体变大,3个检测头几乎可以匹配所有目标。在这种情况下,使用更多的检测头可能会导致检测头冗余,这不利于模型优化。为了缓解不匹配导致的检测性能下降,基于上述发现做出了以下3点贡献:
提出了一种适用的检测头和目标分布匹配策略。该匹配策略可以指导合理配置检测头,以检测不同尺度的目标。
提出了一种简单有效的跨尺度检测头配置指南。根据该准则,可以用2个检测头代替多个检测头,这可以显著降低模型参数和FLOP,提高检测速度,同时保持较高的检测精度。
将扩展卷积模块与骨干网的浅层特征相结合,构建了一个轻量级的交通目标检测网络,称为MHD网。实验结果表明提出的模型在
BDD100K
数据集和提出的ETFOD-v2
数据集上取得了比其他模型更具竞争力的性能。
2、相关工作
2.1、Multi-scale detection
多尺度检测在目标检测模型中占有重要地位。以VIT-YOLO
、FCOS
、VFNet
和GFL
为代表的模型利用5个不同的特征级别融合上下文信息,从而获得了令人印象深刻的检测性能。考虑到小目标的特征在下采样过程中容易丢失,Libra RCNN
、OPANAS
、ABFPN
和GCA RCNN
集成了4个不同的特征层次,构建了不同尺度下目标检测的检测模型。YOLOv5
、YOLOv7
、CSPNet
和YOLOv-4-P5
只使用了3种尺度的特征来表示不同尺度的对象,并且取得了优异的性能。
与上述多尺度表示不同,YOLOv3 Tiny
、YOLOv 4 Tiny
和YOEO
将两种尺度的特征结合起来进行目标检测,从而实现检测精度、模型参数和检测速度之间的平衡。尽管这些模型取得了令人印象深刻的性能,但它们没有充分考虑不同分辨率下目标分布和检测头之间的匹配关系。在提出的方法中,基于上一节中的指导性发现,可以根据匹配关系简单合理地配置检测头,并且可以充分利用更合适和更具代表性的多尺度信息来检测不同尺度的目标。
2.2、Traffic object detection
随着智能驾驶的兴起,交通目标检测受到越来越多的关注。Yang等人提出了一种具有两个检测头的部分感知多尺度全卷积网络,用于检测行人。基于YOLOv5
模型和决策树,Aboah等人构建了一个交通监控系统来监控异常交通事件,并取得了预期的效果。为了检测铁路中的目标,建立了具有先验目标检测模块和目标检测模块的DFF
网络,并取得了比其他模型更好的性能。Lin等人将注意力图与多尺度特征相结合,提出了一种更加关注小规模行人的模型,并在多个数据集上取得了良好的性能。与检测交通场景中的所有物体不同,秦等人提出了IDYOLO
模型来检测驾驶员注意区域内的物体,并获得了具有竞争力的结果。虽然上述多检测头模型利用多尺度特征获得了较好的结果,但没有充分考虑目标分布与检测头之间的匹配关系。根据图1所示的结果,本文充分利用两个跨尺度检测头而不是多个检测头来构建一个轻量级模型,在检测精度、模型参数、FLOP和探测速度之间取得了出色的平衡。
3、本文方法
基于以上分析采用YOLOv5-S
模型结构,用3×3卷积代替主干网第一下采样层的6×6卷积,构建了一个轻量级交通目标检测网络,称为MHDNet
。它由三个主要部分组成:
第一种是检测头和目标分布匹配策略,它指导检测头的合理配置,以有效地检测不同尺度的目标。 第二个是跨尺度检测头配置指南,该指南指示用两个检测头替换多个检测头,以在检测精度、模型参数、 FLOP
和检测速度之间取得极好的平衡。第三种是感受野放大方法,它将扩展卷积模块与主干的浅特征相结合,以略微增加模型参数为代价,进一步提高检测精度。MHDNet的示意图如图2所示。
3.1、检测头与目标分布匹配策略
虽然多尺度在目标检测中起着重要作用,但固定检测头配置一直是传统的模型构建范式,例如YOLOv5
使用的H3-5
检测头。作者发现在不同输入分辨率下,目标分布和检测头之间存在不同的匹配关系。这一发现值得重新思考,现有的检测头配置范式是最佳选择吗?此外,对于不同的输入分辨率,应该如何配置合理的检测头来检测不同尺度的交通目标?基于这种思想提出了一种简单有效的检测头与目标分布的匹配策略。首先计算第i个检测头对应的刻度范围(SR),如公式(1)所示:
其中,和分别表示原始交通图像和调整大小后的图像的宽度。表示向上取整函数。然后,目标分布与每个检测头之间的匹配关系(R)可以计算如下:
其中,表示训练集中目标框的区域。是与第i个检测头匹配的目标数。是训练集中所有目标的数量。如果输入分辨率为800,则可以使用公式(1)和(2)计算检测头与目标分布之间的匹配关系,如图1所示。可以看出,大量目标与H2-H5检测头匹配,而H1检测头与不到1%的目标匹配。自然,我们选择具有足够特征表示的H2-H5检测头来构建目标检测模型。检测头是根据匹配关系配置的,它不仅可以使每个检测头利用分治策略从局部角度检测对应尺度的对象,还可以从全局角度最大限度地覆盖不同尺度的对象。此外,在不同的输入分辨率下,所提出的公式(1)和(2)可用于计算检测头和目标分布之间的匹配关系,从而指导适当的检测头配置。
3.2、跨尺度检测头配置指南
基于检测头和目标分布匹配策略的检测头配置可以实现更好的检测精度。然而,由于采用了多个检测头,模型参数和FLOP将不可避免地增加。具有较少参数和较低FLOP的模型具有较高的检测速度和精度,是交通目标检测的理想模型。YOLOF
仅使用单个H5
探测头来实现竞争性能,但对小物体的探测效果较差。TTFNET
通过使用单个H2
探测头实现了类似的性能,但对于大型物体,可能存在探测性能下降的风险。对于不同规模的交通目标检测,一种简单的方法是将H2
和H5
检测头结合起来,但这种固定配置的组合是最佳选择吗?此外,对于不同输入分辨率的交通对象检测,如何配置检测头,以在检测精度、模型参数、FLOP
和检测速度之间实现更好的平衡?
为了解决这个问题,提出了一种基于检测头与由公式(1)和(2)计算的目标分布之间的匹配关系的跨尺度检测头配置准则。
假设输入分辨率为800,我们知道大量目标与H2-H5
检测头匹配。为了有效地检测小目标,首先选择H2探头作为检测器结构。考虑到与H3-H5
头匹配的目标数量众多,仅使用一个H2
头检测所有目标是不够的。因此,采用跨尺度检测头配置,即在H2
头的基础上选择H4
头共同构建检测器。
基于跨尺度检测头配置准则的双检测头模型不仅可以充分利用浅层和深层特征来探测不同尺度的目标,而且可以显著降低模型参数和FLOP
,提高检测速度。此外,基于匹配关系,提出的跨尺度检测头配置指南可以指导利用两个检测头而不是多个检测头,以在不同输入分辨率下实现检测精度、模型参数、FLOP和检测速度之间的良好平衡。
3.3、感受野扩大法
空洞卷积由于可以用较少的参数增加感受野,在目标检测任务中得到了广泛的应用。YOLOF
、RFB-Net
、LFD-Net
和SA-YOLOv3
将空洞卷积与深度特征相结合,以提高检测性能,但显著增加了模型参数。作者认为,对于交通目标检测而言,一种能够提高检测精度并保持较高检测速度,同时具有较少参数的模型无疑更具前景。
基于这一愿景,作者建议在主干浅层结合空洞卷积模块,以实现模型参数、检测精度、FLOP
和检测速度之间的良好平衡。提出的空洞卷积模块如图3所示。其核心思想包括两个方面:
一是尽可能少地使用卷积核和小卷积核,以减少模块参数;
另一种方法是采用
shortcut
将2个不同空洞率的卷积和一个标准的3×3卷积结合起来,以增加模型的感受野,同时缓解网格问题。
提出的空洞卷积模块简洁、轻便。它很容易与任何主干层结合。
4、实验
4.1、检测头配置的影响
1、416x416分辨率
从图1可以看出,大量的物体与5个分辨率为416的检测头匹配。根据提出的探测头与物体分布的匹配策略,设置H1-5检测头来检测物体,从而达到最高的mAP值,如表1所示,这表明提出的策略是有效的。在这种情况下,5个检测头的配置最大限度地覆盖不同尺度的物体,从而达到最高的检测精度。
此外,根据提出的跨尺度检测头配置准则,选择具有丰富特征表示的H1
和H3
检测头来检测交通目标。从表1可以看出,与使用5个检测头相比,充分利用两个跨尺度检测头获得的mAP
仅略有下降,但模型参数急剧下降了31%以上,FLOP
也下降了14%以上,FPS提高了20%以上。检测精度、模型参数、FLOP
和检测速度之间的出色平衡证明了提出的跨尺度检测头配置的效率。
此外,当部署连续H1
和H2
检测头时mAP
值减小,这表明大量不匹配这两个检测头的目标可能超出检测头的有效感知范围,从而降低了探测精度。H1
和H5
检测头配置的检测精度也有类似的降低。用H4
和H5
检测头构建的模型获得最低的mAP
值,特别是对于小目标。原因可能是在向下采样过程中,大量小目标的位置信息很容易丢失。在这种情况下,低分辨率特征图对应的检测头不能有效地表示小目标特征,导致检测结果很差。随着高分辨率特征图对应的检测头的增加,与检测头匹配的小目标数量逐渐增加,检测头对小目标的表示能力增强,检测性能提高。
2、800x800分辨率
输入分辨率为800时,计算目标分布与每个检测头之间的匹配关系,如图1所示。可以发现大量目标与H2-5
检测头匹配。基于提出的检测头与目标分布的匹配策略,这4个检测头被用于检测交通目标。检测结果如表2所示。毫不奇怪,这4个检测头配置获得了最高的mAP
值,这再次验证了提出的策略的有效性。
此外,根据提出的跨尺度检测头配置指南,采用H2
和H4
检测头,以在检测精度、模型参数、FLOP
和检测速度之间取得良好的平衡。与输入分辨率为416的检测性能一致,连续H2
和H3
检测头的配置降低了检测精度。H4
和H5
检测头获得的mAP
最低。通过添加与高分辨率特征图相对应的检测头,提高了小目标的检测性能。
然而,检测头越多越好。使用5个检测头获得的检测性能不如使用4个检测头得到的检测性能好。随着参数和FLOP
的增加,检测精度和速度降低。原因可能是大量物体与H2-5
检测头匹配,而与H1
检测头匹配的物体不到1%。在这种情况下,增加H1
检测头会导致检测头冗余,不利于模型优化。
3、1504x1504分辨率
从图1可以看出,输入分辨率为1504,大量目标与H3-5
检测头匹配,而与H1
和H2
检测头匹配的物体很少,占不到1%。根据提议的检测头和目标分布匹配策略,使用H3-5
检测头检测目标并获得最高mAP
值,如表3所示。
此外,根据提议的跨尺度检测头配置指南,利用H3
和H5
检测头获得了与H3-5
检测头相同的mAP
值。虽然基于提议的跨尺度检测头H3,5
配置的模型参数的减少和FPS
的增加略好于使用H3-5
检测头的那些,但提议的跨规模检测头配置指南的指导意义仍然有效。与输入分辨率为416和800的检测性能一致,H4
和H5
检测头获得的mAP
最低。通过增加与高分辨率特征图相对应的检测头,提高了小目标的检测性能。同样,当继续添加与许多目标不匹配的检测头时,例如H2
头,检测精度和速度会降低,模型参数和FLOP
也会增加。
通常,检测头配置对不同输入分辨率下的检测性能有很大影响。基于提出的检测头和目标分布匹配策略,可以构建一个适用的模型,以实现比其他检测头配置更高的检测精度。根据提出的跨尺度检测头配置指南,只有两个检测头可以用来代替多个检测头,以在检测精度、模型参数、FLOP
和检测速度之间取得极好的平衡。
4、空洞卷积的影响
使用配置有H1
和H3
检测头的轻量级模型作为基线,建议的空洞卷积模块与基线主干的不同下采样层相结合,以探讨空洞卷积对检测性能的影响。
从表5可以看出,将空洞卷积模块与第一个下采样层相结合,mAP
值增加1.6,而模型参数仅增加了0.01M。将空洞卷积模块与第一个和第二个向下采样层相结合,mAP
值提高了2.6,模型参数仅提高了0.06M。当空洞卷积模型进一步集成到主干的深层时,mAP数值略有增加,但模型参数和FLOP
显著增加。原因可能是提出的空洞卷积模块利用大的空洞率来产生大的感受野,对于高分辨率的浅层特征具有明显的增益,但对于低分辨率的深层特征,增益将很弱。为了更好地平衡检测精度、参数、FLOP
和检测速度,作者将空洞卷积模块与两个浅层下采样层相结合,构建了一个用于交通目标检测的轻量级检测模型。
4.2、SOTA对比
5、参考
[1].Rethinking the Detection Head Configuration for Traffic Object Detection.
6、推荐阅读
全新Backbone | 超越PvT,TWins等方法,ECOFormer使用哈希注意力成就高峰!
精度超越ConvNeXt的新CNN!HorNet:通过递归门控卷积实现高效高阶的空间信息交互
扫描上方二维码可联系小书童加入交流群~
想要了解更多前沿AI视觉感知全栈知识【分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF】、行业技术方案【AI安防、AI医疗、AI自动驾驶以及AI元宇宙】、AI模型部署落地实战【CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架等】,欢迎扫描下方二维码,加入集智书童知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!