目标检测技能点|一步一步带你实验并重新思考目标检测不同检测头的作用(一)

简介: 目标检测技能点|一步一步带你实验并重新思考目标检测不同检测头的作用(一)

多尺度检测在目标检测模型中占有重要地位。然而,研究人员通常对如何在不同输入分辨率下结合多尺度特征合理配置检测头感到空白。作者发现在不同的输入分辨率下,目标分布和检测头之间存在不同的匹配关系。基于这些有指导意义的发现,作者提出了一种基于检测头和目标分布之间匹配的轻量化交通目标检测网络,称为MHDNet。它由三个主要部分组成。第一种是检测头和目标分布匹配策略,它指导检测头的合理配置,以便利用多尺度特征有效地检测不同尺度的目标。第二个是跨尺度检测头配置指南,该指南指示用2个具有丰富特征表示的检测头替换多个检测头,以在检测精度、模型参数、FLOP和检测速度之间实现极好的平衡。第三种是感受野扩大方法,它将扩大的卷积模块与主干的浅特征相结合,以略微增加模型参数为代价,进一步提高检测精度。

该模型在BDD100K数据集和提出的ETFOD-v2数据集上比其他模型具有更强的竞争性能。


1、简介


作为智能驾驶的重要组成部分,目标检测对于确保驾驶安全至关重要。通常,为了平衡FLOP的检测精度,缩放输入分辨率是一种常见的方法。作者回顾了BDD100K数据集上检测模型的细节,意外地发现不同的检测头可以在不同的输入分辨率下匹配不同尺度的目标。如图1所示,在低输入分辨率下,有大量物体与H1H2检测头匹配。然而,随着输入分辨率的提高,与H1H2检测头匹配的目标数量显著减少,而与H4H5检测头匹配目标的数量显著增加。

image.png

这一发现令人兴奋,并促使重新思考现有模型中检测头的配置是否最佳。例如,在输入分辨率较低的情况下,是否可以使用3个与YOLOv5设置的检测头类似的检测头来实现最佳的检测性能,尤其是对于大量的小目标?在高输入分辨率下,5个类似于IDYOLO的检测头是否会导致检测头冗余,并增加模型优化的难度?此外,对于不同的输入分辨率,如何配置合适的检测头,以在非常不同的尺度上实现更好的交通目标检测性能?

另一方面,为了减少模型参数和提高检测速度,使用较少的检测头是一种常见的方法。Yolov3-tinyYOLOv4-tiny使用H4H5检测头检测物体。该方法减少了模型参数,提高了检测速度,但牺牲了检测精度。YOLOF采用单H5检测头,减少了模型参数,提高了检测精度,但对小目标的检测不友好。CornerNetCenterNet使用单个H2检测头取得了具有竞争力的性能,但对大目标的检测性能可能不足。对于计算资源有限、目标尺度不同的交通场景,如何配置合理的检测头,在检测精度、模型参数、FLOP和检测速度之间取得良好的平衡,是一个值得研究的问题。

为了解决上述问题,首先对检测头的配置对BDD100K数据集在不同输入分辨率下的检测性能的影响进行了初步研究。

实验结果表明,3个检测头(H3-5)的检测精度低于4个检测头,低分辨率为416。高分辨率为1504,H3-5检测头的检测精度高于H2-5检测头。

作者认为,这种完全相反的结果主要是由于检测头和目标分布之间的不匹配造成的。由于输入分辨率较低,大量小目标与对应于高分辨率特征图的检测头相匹配。在这种情况下,只有3个检测头无法有效检测大量的小物体。据了解,增加H2检测头有利于小目标检测。随着高输入分辨率,目标规模整体变大,3个检测头几乎可以匹配所有目标。在这种情况下,使用更多的检测头可能会导致检测头冗余,这不利于模型优化。为了缓解不匹配导致的检测性能下降,基于上述发现做出了以下3点贡献:

  1. 提出了一种适用的检测头和目标分布匹配策略。该匹配策略可以指导合理配置检测头,以检测不同尺度的目标。
  2. 提出了一种简单有效的跨尺度检测头配置指南。根据该准则,可以用2个检测头代替多个检测头,这可以显著降低模型参数和FLOP,提高检测速度,同时保持较高的检测精度。
  3. 将扩展卷积模块与骨干网的浅层特征相结合,构建了一个轻量级的交通目标检测网络,称为MHD网。实验结果表明提出的模型在BDD100K数据集和提出的ETFOD-v2数据集上取得了比其他模型更具竞争力的性能。

2、相关工作


2.1、Multi-scale detection

多尺度检测在目标检测模型中占有重要地位。以VIT-YOLOFCOSVFNetGFL为代表的模型利用5个不同的特征级别融合上下文信息,从而获得了令人印象深刻的检测性能。考虑到小目标的特征在下采样过程中容易丢失,Libra RCNNOPANASABFPNGCA RCNN集成了4个不同的特征层次,构建了不同尺度下目标检测的检测模型。YOLOv5YOLOv7CSPNetYOLOv-4-P5只使用了3种尺度的特征来表示不同尺度的对象,并且取得了优异的性能。

与上述多尺度表示不同,YOLOv3 TinyYOLOv 4 TinyYOEO将两种尺度的特征结合起来进行目标检测,从而实现检测精度、模型参数和检测速度之间的平衡。尽管这些模型取得了令人印象深刻的性能,但它们没有充分考虑不同分辨率下目标分布和检测头之间的匹配关系。在提出的方法中,基于上一节中的指导性发现,可以根据匹配关系简单合理地配置检测头,并且可以充分利用更合适和更具代表性的多尺度信息来检测不同尺度的目标。

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探测头实现了类似的性能,但对于大型物体,可能存在探测性能下降的风险。对于不同规模的交通目标检测,一种简单的方法是将H2H5检测头结合起来,但这种固定配置的组合是最佳选择吗?此外,对于不同输入分辨率的交通对象检测,如何配置检测头,以在检测精度、模型参数、FLOP和检测速度之间实现更好的平衡?

为了解决这个问题,提出了一种基于检测头与由公式(1)和(2)计算的目标分布之间的匹配关系的跨尺度检测头配置准则。

假设输入分辨率为800,我们知道大量目标与H2-H5检测头匹配。为了有效地检测小目标,首先选择H2探头作为检测器结构。考虑到与H3-H5头匹配的目标数量众多,仅使用一个H2头检测所有目标是不够的。因此,采用跨尺度检测头配置,即在H2头的基础上选择H4头共同构建检测器。

基于跨尺度检测头配置准则的双检测头模型不仅可以充分利用浅层和深层特征来探测不同尺度的目标,而且可以显著降低模型参数和FLOP,提高检测速度。此外,基于匹配关系,提出的跨尺度检测头配置指南可以指导利用两个检测头而不是多个检测头,以在不同输入分辨率下实现检测精度、模型参数、FLOP和检测速度之间的良好平衡。

3.3、感受野扩大法

空洞卷积由于可以用较少的参数增加感受野,在目标检测任务中得到了广泛的应用。YOLOFRFB-NetLFD-NetSA-YOLOv3将空洞卷积与深度特征相结合,以提高检测性能,但显著增加了模型参数。作者认为,对于交通目标检测而言,一种能够提高检测精度并保持较高检测速度,同时具有较少参数的模型无疑更具前景。

image.png

基于这一愿景,作者建议在主干浅层结合空洞卷积模块,以实现模型参数、检测精度、FLOP和检测速度之间的良好平衡。提出的空洞卷积模块如图3所示。其核心思想包括两个方面:

  • 一是尽可能少地使用卷积核和小卷积核,以减少模块参数;
  • 另一种方法是采用shortcut将2个不同空洞率的卷积和一个标准的3×3卷积结合起来,以增加模型的感受野,同时缓解网格问题。

提出的空洞卷积模块简洁、轻便。它很容易与任何主干层结合。

相关文章
|
5月前
|
机器学习/深度学习 算法 计算机视觉
基于深度学习的停车位关键点检测系统(代码+原理)
基于深度学习的停车位关键点检测系统(代码+原理)
|
5月前
|
存储 XML JSON
开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)
开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)
|
5月前
|
机器学习/深度学习 自然语言处理 计算机视觉
YOLOv8改进 | 2023 | 给YOLOv8换个RT-DETR的检测头(重塑目标检测前沿技术)
YOLOv8改进 | 2023 | 给YOLOv8换个RT-DETR的检测头(重塑目标检测前沿技术)
293 0
|
4月前
|
机器学习/深度学习 人工智能 监控
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
|
4月前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(2)
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割
|
4月前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(1)
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割
|
11月前
|
机器学习/深度学习 传感器 算法
单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法
本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。 基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。 基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
996 2
|
JSON 算法 数据格式
优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注
可以看到cv2.findContours()函数可以将目标的所有边界点都进行导出来,但是他的点存在一个问题,太过密集,如果我们想将语义分割的结果重新导出成labelme格式的json文件进行修正时,这就会存在点太密集没有办法进行修改,这里展示一个示例:没有对导出的结果进行修正,在labelme中的效果图。
174 0
|
机器学习/深度学习 传感器 算法
基于深度学习的目标姿态检测方法_kaic
伴随着人工智能技术的发展,物体探测和辨识技术已被广泛用于各个领域,而作为物体探测的一个重要分支,物体姿态探测在机器人控制、自动驾驶等领域中扮演着重要角色。本文的目的在于探究基于单目相机的目标三维姿态检测方法,以实现对目标物体的快速、精确的三维姿态检测和识别,提高目标检测的准确率和效率,并为人工智能技术的发展提供新的思路和方法。 本文系统地介绍了基于单目相机的三维目标检测技术,并详细讨论了基于深度学习的单阶段目标检测算法,即YOLOv5算法。具体来说,本文采用YOLOv5算法搭建神经网络模型,在KITTI数据集构建训练集后对模型进行训练,再采集部分环境照片以及KITTI数据的部分照片构建测试集.
|
机器学习/深度学习 编解码 移动开发
目标检测技能点|一步一步带你实验并重新思考目标检测不同检测头的作用(二)
目标检测技能点|一步一步带你实验并重新思考目标检测不同检测头的作用(二)
320 0
下一篇
无影云桌面