【多任务YOLO】 A-YOLOM: You Only Look at Once for Real-Time and Generic Multi-Task

news2024/12/25 9:23:50

You Only Look at Once for Real-Time and Generic Multi-Task

论文链接:http://arxiv.org/abs/2310.01641

代码链接:https://github.com/JiayuanWang-JW/YOLOv8-multi-task

一、摘要

  高精度、轻量级和实时响应性是实现自动驾驶的三个基本要求。本研究引入了A-YOLOM,这是一个自适应、实时且轻量级的多任务模型,旨在同时解决目标检测、可行驶区域分割和车道线分割任务。具体来说,作者开发了一个端到端的多任务模型,具有统一和简化的分割结构。引入了一个可学习的参数,该参数在分割任务中自适应地连接neck和骨干之间的特征,对所有分割任务使用相同的损失函数。这消除了定制化的需求,并增强了模型的一般化能力。还引入了一个仅由一系列卷积层组成的分割头,这减少了参数数量和推理时间。

  在BDD100k数据集上取得了具有竞争力的结果,尤其是在可视化结果方面。性能结果显示,目标检测的mAP50为81.1%,可行驶区域分割的mIoU为91.0%,车道线分割的IoU为28.8%。此外,还引入了真实场景来评估我们的模型在实际场景中的性能,这显著优于竞争对手。这表明,所提模型不仅表现出具有竞争力的性能,而且比现有的多任务模型更加灵活和快速。

二、创新点

  与为每个任务使用单独的模型相比,将三个不同的颈部和头部集成到一个具有共享骨干网络的统一模型中可以显著节省计算资源并减少推理时间。

  • 开发了一个轻量级模型,能够将三个任务集成到一个模型中。这对于需要实时处理的多任务特别有益,从而增强了模型在边缘设备上的部署能力。

  • 设计了一种针对分割架构neck区域的自适应拼接模块。该模块可以自适应地拼接特征,无需手动设计,并实现与精心设计的模块相似或更好的性能,从而进一步增强模型的一般性。

  • 设计了一个轻量级、简单且通用的分割头采用统一的损失函数来处理同类型的任务头,这意味着不需要为特定任务进行定制设计。它仅由一系列卷积层构建而成。

  • 实验表明,该模型在推理时间和可视化方面可以优于现有工作。此外,还进一步使用真实道路数据集进行了实验,这也证明了该模型在性能上显著优于最先进的方法。

目录

  • You Only Look at Once for Real-Time and Generic Multi-Task
    • 一、摘要
    • 二、创新点
    • 三、原理
      • A. Encoder
      • B. Decoder
      • C. Loss Function
      • D. Training Paradigm
    • 四、实验
      • A. Experiment Details
      • B. Experimental results
      • C. Ablation Studies
      • D. Real roads experiments
    • 五、总结

三、原理

  自动驾驶中的分割任务:
可行驶区域通常覆盖图像的大部分区域,但区域数量很少。如图 1所示,只有三个可行驶区域。车道线则相反:一个图像中有许多车道线,但每条线都很小、细长且狭窄。
在这里插入图片描述

  所提模型,包括三个主要组件:骨干网络、neck和head。此外,还包括了损失函数。如图 2所示。A-YOLOM模型是一个单阶段网络,具有简单的编码器-解码器架构。编码器包括骨干网络和neck,而解码器由head组成。值得注意的是,总共有三个neck:一个用于目标检测的检测neck和两个分割neck,一个用于可行驶区域分割,另一个用于车道线分割。该模型具有自适应、简单和高效的结构,这不仅扩大了其应用范围,还确保了实时推理。
在这里插入图片描述

A. Encoder

  本文将一个共享骨干网络和三个neck网络整合成一个单一模型以完成三个不同的任务。

  (1)Backbone:主干网络由一系列卷积层组成,用于从输入数据中提取特征。由于YOLOv8在检测任务中表现出色,主干网络遵循YOLOv8。具体来说,他们对CSPDarknet53进行了优化 [27],它作为YOLOv5的主干。与CSP-Darknet53相比,这个主干网络的关键区别在于用c2f模块替换了c3模块。c2f模块将高级特征与上下文信息相结合,进一步提升了性能。还有一些细微的差异,例如用 3 × 3 3 \times 3 3×3卷积代替了最初的 6 × 6 6 \times 6 6×6卷积,以及移除了第10层和第14层的卷积层。这些改进使得主干网络在YOLO系列的前辈中更加有效。

  (2) Neck:neck负责融合从主干网络提取的特征。在主干网络之后,使用空间金字塔池化融合(SPPF)模块来增加感受野并降低与SPP相比的计算需求。这些特征随后被导向到各个neck。

  所提模型使用了三个neck:一个用于目标检测任务,两个用于分割任务,分别是可行驶区域和车道线。值得注意的是,在图2中,由于有两个分割任务,左侧的分割颈部中的N值等于2。这意味着为不同的分割任务有两个相同的分割颈部。来自不同neck底层的天蓝色和棕色线条分别导向到独立的分割头部。

  检测neck采用了路径聚合网络(PAN)[28]结构,该结构包括自上而下和自下而上的两个特征金字塔网络(FPN) [29]。这种结构将低级细节与高级语义特征合并,丰富了整体特征表征。这对于目标检测至关重要,因为小物体依赖于低级特征,而较大的实体则受益于高级特征提供的更广泛上下文。在检测任务中,通常存在不同尺度的物体。物体尺寸的多样性是选择PAN结构作为检测neck的主要原因。

  分割neck采用了FPN结构,该结构因其有效处理多尺度物体而闻名。此外,在颈部和主干网络之间引入了一个自适应拼接模块。如图1所示,输入包括两个特征图:一个来自前一层的neck,另一个来自相同分辨率的骨干网络。该模块的核心是一个可学习的参数,旨在控制骨干特征的重叠,从而允许模型结构根据不同的分割任务进行自适应调整。该模块在每个分辨率级别上运行。这一添加增强了模型的一般性,使其易于应用于不同的分割任务而无需定制。

B. Decoder

  解码器处理从neck来的特征图以对每个任务进行预测。这包括预测对象类别、相应的边界框以及特定分割对象的掩码。该工作采用了两个不同的头部:检测头部和分割头部

检测头部采用了一种解耦的方法,遵循YOLOv8检测头部,使用卷积层将高维特征转换为类别预测和边界框,而不包含物体分支。这是一个无锚点检测器。其结构如图2中的检测模块所示。请注意,检测头部的输出在训练、验证和预测模式中各不相同。在验证和预测模式下,使用三种不同的分辨率作为输入,输出一个张量,包含类别预测及其相应的边界框。在训练模式下,检测头部循环对每个输入应用卷积层,总共输出三个张量。每个张量包含特定于其分辨率的类别预测和边界框。随后,这些结果用于计算损失函数

分割头部在不同分割任务中是相同的。其结构如图2中的分割模块所示。具体来说,它由一系列卷积层组成,用于提取上下文信息,以及一个反卷积层,用于将分辨率恢复到原始图像大小。最终,获得一个与原始图像大小匹配的像素级二值掩码。0代表背景,1代表对象。算法2说明了分割头部的处理过程。此外,分割头部简洁的架构,仅包含7,940个参数,显著增强了模型的部署能力。
在这里插入图片描述

C. Loss Function

  采用端到端训练方法,并使用多任务损失函数。具体来说,损失函数包含三个部分:一个检测和两个分割。公式如下所示:
L = L d e t + L s e g d a + L s e g l l   ( 1 ) L = L_{det} + L_{segda} + L_{segll} \ (1) L=Ldet+Lsegda+Lsegll (1)
其中 L d e t L_{det} Ldet 为目标检测任务, L s e g d a L_{segda} Lsegda 为可行驶区域分割任务, L s e g l l L_{segll} Lsegll 为车道线分割任务。

  对于检测任务,损失函数分为两个主要分支:分类分支和边界框分支。分类分支包括二元交叉熵损失,记为 L B C E L_{BCE} LBCE。边界框分支包括分布焦点损失(DFL) [30],记为 L D F L L_{DFL} LDFL 和完整IoU(CIoU)损失 [31],表示为 L C I o U L_{CIoU} LCIoU。因此,检测损失 L d e c L_{dec} Ldec 可以表示为

L d e t = λ B C E L B C E + λ D F L L D F L + λ C I o U L C I o U   ( 2 ) L_{det} = \lambda_{BCE}L_{BCE} + \lambda_{DFL}L_{DFL} + \lambda_{CIoU}L_{CIoU} \ (2) Ldet=λBCELBCE+λDFLLDFL+λCIoULCIoU (2)

其中 λ B C E \lambda_BCE λBCE λ D F L \lambda_DFL λDFL λ C I o U \lambda_CIoU λCIoU 是相应的系数。
L B C E = − [ y n l o g x n + ( 1 − y n ) l o g ( 1 − x n ) ]   ( 3 ) L_{BCE} = − [y_{n} log x_{n} + (1 − y_{n}) log (1 − x_{n})] \ (3) LBCE=[ynlogxn+(1yn)log(1xn)] (3)
其中 x n x_{n} xn 是每个对象的预测分类。 y n y_{n} yn 是每个对象的真实值(ground truth)。 L B C E L_{BCE} LBCE 衡量预测值与真实值之间的分类误差。

L D F L ( S i , S i + 1 ) = − ( ( y i + 1 − y ) l o g ( S i ) + ( y − y i ) l o g ( S i + 1 ) ) , S i = y i + 1 − y y i + 1 − y i , S i + 1 = y i − y y i − y i + 1   ( 4 ) L_{DFL} (S_{i}, S_{i+1}) = − ((y_{i+1}− y) log (S_{i}) + (y − y_{i}) log (S_{i+1})), \\ S_{i} = \frac{y_{i+1} − y}{y_{i+1} − y_{i}}, S_{i+1} = \frac{y_{i} − y}{y_{i} − y_{i+1}} \ (4) LDFL(Si,Si+1)=((yi+1y)log(Si)+(yyi)log(Si+1)),Si=yi+1yiyi+1y,Si+1=yiyi+1yiy (4)
其中, y y y 是边界框坐标的真实值,它是一个小数。 y i + 1 y_{i+1} yi+1 是真实值 y y y 的向上取整。 y i y_{i} yi 是真实值 y y y 的向下取整。 L D F L L_{DFL} LDFL 衡量预测值和真实值特征位置之间的位移,以使预测的边界框接近实际值。
L C I o U = 1 − C I o U C I o U = I o U − ρ 2 ( b , b g t ) c 2 − α v v = 4 p i 2 ( a r c t a n w g t h g t − a r c t a n w h ) 2   ( 5 ) α = v ( 1 − I o U ) + v L_{CIoU} = 1 − CIoU \\ CIoU = IoU −\frac{ρ^{2} (b, b^{gt})}{c^{2} − \alpha v} \\ v = \frac{4}{pi^{2}}(arctan \frac{w^{gt}}{h^{gt}} − arctan\frac{w}{h})^{2} \ (5) \\ \alpha = \frac{v}{(1- IoU) + v} LCIoU=1CIoUCIoU=IoUc2αvρ2(b,bgt)v=pi24(arctanhgtwgtarctanhw)2 (5)α=(1IoU)+vv
其中 b b b 是预测框的中心点, b g t b^{gt} bgt 是真实值框的中心点。 ρ ρ ρ是预测点和真实值点之间的欧几里得距离。 c c c两个框的最小外接矩形的对角线长度 v v v α \alpha α 都是用于控制比例的系数。 h h h 是预测框的宽度和高度, w g t w^{gt} wgt h g t h^{gt} hgt 是真实值框的宽度和高度。 L C I o U L_{CIoU} LCIoU 集成了重叠、距离和宽高比一致性的方面,以衡量预测框和真实值框之间的差异。因此,它使模型能够更精确地定位物体的形状、大小和方向。

  对于分割任务,使用相同的损失函数。这意味着 L s e g d a L_{segda} Lsegda L s e g l l L_{segll} Lsegll 具有相同的公式。将统称为 L s e g L_{seg} Lseg。公式如下所示:
L s e g = λ F L L F L + λ T L L T L   ( 6 ) L_{seg} = \lambda_{FL}L_{FL} + \lambda_{TL}L_{TL} \ (6) Lseg=λFLLFL+λTLLTL (6)
其中 L F L L_{FL} LFL L T L L_{TL} LTL 分别是焦点损失(focal loss)[24]和 Tversky 损失(Tversky loss) [32]。两者都是分割任务中广泛使用的损失函数。 λ F L \lambda_{FL} λFL λ T L \lambda_{TL} λTL 是相应的系数。

L F L = − α t ( 1 − p t ) γ l o g ( p t )   ( 7 ) L_{FL} = −\alpha_{t} (1 − p_{t})^{\gamma} log (p_{t}) \ (7) LFL=αt(1pt)γlog(pt) (7)
其中 p t p_{t} pt 是模型预测正类概率。 y y y是每个像素的真实值。 α t \alpha_{t} αt 是一个平衡正/负样本重要性的加权因子。 γ \gamma γ是一个调节每个样本对损失贡献的聚焦参数。焦点损失提供了一个鲁棒的解决方案来处理不平衡样本,确保模型不会过度偏向于主导的、易于学习的类别。相反,它更注重挑战性和代表性不足的区域。
L T L = 1 − T P T P + α F N + β F P   ( 8 ) L_{TL} = 1 − \frac{TP}{TP + \alpha FN + \beta FP} \ (8) LTL=1TP+αFN+βFPTP (8)
Tversky 损失是 Dice 损失的扩展,引入了两个额外的参数( α \alpha α β \beta β)以分配不同的权重给假阳性和假阴性,从而增强了其处理不平衡任务的能力。

D. Training Paradigm

  训练范式与在全景自动驾驶任务中普遍存在的多任务学习方法不同。采用端到端训练模式,每个批次仅进行一次反向传播。这意味着整个网络是集体优化的,没有冻结特定层或交替优化,从而减少了训练时间。算法3说明了逐步训练过程。在每个轮次中,通过单次正向传播获得所需的预测结果列表 KaTeX parse error: Expected group after '_' at position 5: \hat_̲{y},包括检测边界框、分类信息和分割掩码等信息。随后,计算每个任务的损失并将其汇总为单个损失 L L L。然后,仅进行一次反向传播以优化所有任务中的模型。完成一轮训练后,对模型进行评估。如果与上次50轮相比性能没有改进,则提前终止训练。否则,训练将在训练300轮后停止。

在这里插入图片描述

四、实验

  本章评估模 型在BDD100K数 据 集 上 的 性 能 和 推 理 时 间, 并 将 其与多任务自动驾驶全景感知中使用的经典方法进行了比较。此外,还进行了广泛的消融研究,并提供了实验结果的分析。

A. Experiment Details

  1. Dataset:
      BDD100K数据集是自动驾驶研究中的一个重要资源,包括10万个样本和多任务标注。除了数量上的优势,该数据集的重要性还体现在其多方面特性,涵盖了不同的地理环境、环境背景和天气条件。这些优势确保了在BDD100K上训练的模型具有鲁棒性和通用性,使其成为研究的一个理想选择。该数据集分为三个部分:一个包含70k图像的训练集,一个包含10k图像的验证集,以及一个包含20k图像的测试集。由于测试集的标签不公开,我们在验证集上评估所提模型。与YOLOP类似,检测任务仅关注“车辆”检测,包括汽车、公交车、卡车和火车等类别

  2. Evaluation Metrics:
      使用召回率和mAP50作为目标检测任务的评估指标。这两个指标在检测任务中
    得到了广泛的认可和接受。召回率表示模型准确检测指定类别中所有对象实例的能力。mAP50是通过在IoU阈值为0.5时计算所有类别的平均平均精度得到的。平均精度(AP)量化了精度-召回曲线下的面积。对于分割任务,类似于YOLOP [16],使用mIoU来评估可行驶区域分割任务。对于车道线分割任务,采用准确率和IoU作为评估指标。然而,由于车道线分割中背景和前景像素数量的不平衡,采用一个更有意义的平衡准确率指标进行评估。传统的准确率会通过偏好样本数量较多的类别来扭曲结果。相比之下,平衡准确率通过考虑每个类别的准确率提
    供了一个更公平的指标。公式如下:
    L i n e A c c u r a c y = S e n s i t i v i t y + S p e c i f i c i t y 2   ( 9 ) Line Accuracy = \frac{Sensitivity + Specificity}{2} \ (9) LineAccuracy=2Sensitivity+Specificity (9)

其中 S e n s i t i v i t y = T P T P + F N Sensitivity = \frac{T P}{T P +F N} Sensitivity=TP+FNTP S p e c i f i c i t y = T N T N + F P Specificity = \frac{T N}{T N +F P} Specificity=TN+FPTN.

  还比较了所提模型与其他方法的FPS。所有评估实验均在GTX 1080 Ti GPU上执行。

3)Experimental Setup and Implementation:
  比较了所提模型与几个突出的多任务模型。由于多任务模型的稀缺性,还包括了几个出色的单任务或双任务模型进行比较。YOLOPHybridNet代表了在BDD100K数据集上泛在自动驾驶领域的最先进技术和开源的多任务模型。Faster R-CNNYOLOv8分别 是 两 阶 段 和 单 阶 段 目 标 检 测 网 络 的 典 型 代 表。MultiNetDLT-Net能够解决多个泛在驾驶感知任务,它们在BDD100k数据集上的目标检测和可行驶区域分割中表现出良好的性能。PSPNet [33]由于其聚合全局信息的能力,在语义分割任务中表现出色。鉴于BDD100K数据集中缺乏处理车道线分割的适当多任务网络,将所提模型与Enet [34]、SCNN和EnetSAD [35]进行比较,它们是三个领先的车道检测网络。

  为了提高性能,采用了几种数据增强技术。具体来说,采用了masic增强,这有助于防止过拟合并增强训练数据。此外,为了解决光度失真,修改了图像的色调、饱和度和值参数。还结合了基本的增强技术来处理几何失真,如随机平移、缩放和水平翻转。

  使用SGD优化器以0.01的 学 习 率 (lr)、0.937的动量和0.0005的权重衰减来训练所提模型。最初,该模型进行3轮预热训练。在这个预热阶段,SGD优化器的动量设置为0.8,偏置学习率设置为0.1。训练过程采用线性学习率退火策略。这种策略有助于确保模型在训练的早期阶段快速学习,并在后期阶段更稳定地收敛。此外,将原始图像尺寸从 1280 × 720 1280 × 720 1280×720调整为 640 × 640 640 × 640 640×640。对于损失函数系数,设置 λ F L = 24.0 \lambda_{FL} = 24.0 λFL=24.0 λ T L = 8.0 \lambda_{TL} = 8.0 λTL=8.0 λ D F L = 1.5 \lambda_{DFL} = 1.5 λDFL=1.5 λ C I o U = 7.5 \lambda_{CIoU} = 7.5 λCIoU=7.5 λ B C E = 0.5 \lambda_{BCE} = 0.5 λBCE=0.5。在 L T L L_{TL} LTL中,采用 α = 0.7 \alpha = 0.7 α=0.7 β = 0.3 \beta = 0.3 β=0.3,在 L F L L_{FL} LFL中采用 α t = 0.25 \alpha_{t} = 0.25 αt=0.25 γ = 2 \gamma = 2 γ=2。最后,在三个RTX 4090上以120个批次的规模训练300轮。对于评估,将置信度阈值设置为0.001,将非极大值抑制(NMS)阈值设置为0.6。对于预测,置信度阈值设置为0.25,NMS阈值设置为0.45。遵循YOLOP的置信度阈值和NMS设置。因此,可视化可能略微不同于定量结果。

B. Experimental results

  本节将端到端地训练所提模型,并将其性能与其他先进方法进行比较。

  (1)推理时间:在深度学习应用中,推理时间是主要挑战之一。特别是在自动驾驶任务中,需要在边缘设备上部署模型,而这些设备通常计算资源有限。因此,确保模型既轻量又实时变得至关重要。表I重现并测试了YOLOP1HybridNet2、YOLOv8和所提模型的FPS,所有FPS测试都是在GTX 1080 Ti GPU上进行的,批大小为1和32。FPS的计算方法遵循HybridNet。此外,还提供了每个模型的参数数量作为评估结果之一。
在这里插入图片描述

  深度学习应用的主要挑战之一是推理时间。尤其是在自动驾驶任务中,需要在边缘设备上部署模型,这些设备通常具有有限的计算资源。因此,确保模型的轻量化和实时性至关重要。 表I对YOLOP、HybridNet、YOLOv8以及所提模型进行了FPS的重现和测试,所有FPS测试均在GTX 1080 Ti GPU上进行,批大小为1和32。FPS的计算方法遵循HybridNet。此外,还提供了每个模型的参数数量作为评估结果之一。

  A-YOLOM(n)和A-YOLOM(s)之间的主要区别在于骨干网络的复杂度。A-YOLOM(n)是设计的一个轻量级骨干网络,具有降低的复杂度,非常适合部署在边缘设备上。A-YOLOM(s)的骨干网络更复杂,提供了更强大的性能,但同时也增加了时间开销,尤其是在 b s = 32 bs=32 bs=32的场景中。与其他SOTA的多任务模型和单任务模型相比,A-YOLOM(n)以其轻量级和更高的效率脱颖而出。具体来说,与YOLOP相比,A-YOLOM(n)具有显著更少的参数和更高的FPS。它在 b s = 1 bs=1 bs=1时实现了1.53倍的速度提升,在 b s = 32 bs=32 bs=32时实现了1.28倍的速度提升。这表明所提模型更高效。与HybridNet相比,A-YOLOM(n)在参数和速度上都有显著优势。尽管A-YOLOM(s)的参数比HybridNet多,但它运行速度更快。HybridNet在 b s = 1 bs=1 bs=1 b s = 32 bs=32 bs=32的情况下都无法满足实时性能的要求。

  HybridNet推理时间更长是因为它是一个基于锚点的方法。生成大量的锚框会增加计算开销,从而降低推理的整体速度。在这种情况下,不会在下一节将其性能与所提模型进行比较。YOLOv8是一个单任务模型,意味着它只能在一个模型中实现一个任务。作者列出了两个版本:YOLOv8n(det)和YOLOv8n(seg)。尽管它们都比其他模型,包括所提模型,运行得更快,但它们需要在边缘设备上部署三个单独的模型,这意味着将一个检测模型和两个分割模型组合到一个边缘设备上,总共需要9.68M个参数。这比A-YOLOM(n)多出2.18倍,给边缘设备带来了巨大的压力。此外,YOLOv8在三个任务上的性能远低于所提模型。

  (2)这部分展示了多任务实验的结果,包括目标检测、可行驶区域分割和车道线分割。
在这里插入图片描述

检测任务遵循YOLOP的设置,将汽车、公交车、卡车和火车合并为“车辆”分类。比较结果如表 II所示。根据定量结果,我们的模型在mAP50方面均取得了最佳性能。这表明所提模型在预测检测目标方面的准确性非常出色。特别是与MultiNet和FasterR-CNN相比。 此 外,A-YOLOM(n)在主干网络、 检测neck和head复杂度方面与YOLOv8n(det)相当。然而,A-YOLOM(n)在 召 回 率 和mAP50方 面 都 显 著 优于YOLOv8n(det)。这表明在多任务学习中,各种任务可以隐式地辅助并进一步提高单个任务的性能。另一方面,YOLOv8n(det)优于YOLOv5s,因为’s’尺度模型通常具有更复杂的骨干网络以增强性能。所提模型的一个问题是召回率不令人满意。YOLOP和DLT-Net的召回率比所提模型更好。由于 L d e t L_{det} Ldet中边界框损失的权重较高。这意味着所提模型更加保守,以牺牲召回率性能为代价,专注于实现更高的mAP。相信mAP50更好地反映了检测任务的综合性能。此外,所提模型实现了实时性能。

在这里插入图片描述

  对于可驾驶区域分割任务,表III提供了定量结果。所提模型在mIoU方面取得了第二和第三好的性能。YOLOP的表现优于所提模型,因为它们为分割任务定制了损失函数。在mIoU方面,A-YOLOM(n)和AYOLOM(s)分 别 落 后YOLOP 1%和0.5%。 虽 然该模 型 可 能在 性 能 上 略 有 牺 牲, 但 它 更 加 灵 活 且 更 快。 此外, 该模 型 在 性 能 上 远 优 于 其 他 模 型, 例如YOLOv8n(seg)、MultiNet和PSPNet。值得注意的是,虽然YOLOv8n(seg)比所提模型更快,但其部署成本更高,且其性能显著低于所提模型

  对于可驾驶区域分割任务 (drivable area segmentation task),表 III提供了定量结果。所提模型在mIoU方面取得了第二和第三好的性能。YOLOP(YOLOP)的表现优于所提模型,因为它们为分割任务(segmentation task)定制了损失函数(customized the loss function)。在mIoU方面(In terms of mIoU),AYOLOM(n)和A-YOLO(s)分别落后YOLOP 1%和0.5%。这个结果是可接受的。虽然所提模型可能在性能上略有牺牲,但它更加灵活且更快。此外,该模型在性能上远优于其他模型。例如YOLOv8n(seg)、MultiNet和PSPNet。虽然YOLOv8n(seg)比所提模型更快,但其部署成本更高,且其性能显著低于所提模型。

在这里插入图片描述

  对于车道线分割任务,表 IV提供了定量结果。AYOLOM(s)在准确率和IoU方面均取得了最佳性能。具体来说,与YOLOP相比,A-YOLOM(s)在准确率上具有
竞争力,并且在IoU上高出2.3%。值得注意的是,所提模型在所有分割任务中保持相同的结构和损失函数,消除了在遇到新的分割任务时进行调整的需求。此外,
YOLOv8 (seg)略逊于所提模型。根据表 III和表 IV中的结果,提出的neck和head比YOLOv8(seg)更适合分割任务。由于使用平衡准确率进行评估,Enet、SCNN和ENet-SAD采用了不同的准确率计算方法。因此,无法直接将准确率与它们的进行比较。然而,在IoU指标上的结果显著优于它们。

  (3)Visualization:本节展示了YOLOP与所提模型之间的可视化比较。不仅评估了在良好天气条件下的性能,还评估了在不利条件下的性能,包括强阳光、夜间、雨和雪。将逐一分析每个场景。图 3显示了晴天下的结果。强烈的阳光会影响驾驶员的视线。同样,它会影响摄像头的图像采集,进而影响模型的表现。这对可行驶区域和车道线分割是一个挑战。在这种具有挑战性的场景中,所提模型优于YOLOP。具体来说,在强烈的阳光条件下(如图中左右两侧的图像所示),我们的模型提供了准确的车道线预测,并为可行驶区域提供了更平滑的指示。此外,模型在检测较小和较远的车辆方面表现出更高的准确性。如图中中间和右侧的图像所示,所提模型成功检测到远处道路上的车辆,包括相反行驶方向的车辆和靠近房屋的车辆。根据可视化结果,所提模型在这个场景中优于YOLOP。
在这里插入图片描述

  图 4 展示了夜间场景的结果。在夜间场景中,由于光照有限和迎面车辆的反光,图像质量下降。这对模型进行准确预测是一个挑战。在这种挑战下,模型在车道线和可行驶区域方面始终产生更准确和更平滑的预测。A-YOLOM(s)不仅在分割任务中表现出色,而且在检测任务中也表现出色。具体来说,它通过准确检测到对向行驶的车辆(即使在反光条件下),甚至在与YOLOP抗衡时也表现出色。基于右侧图像的检测结果,YOLOP在夜间检测远距离车辆方面略优于所提模型。然而,与YOLOP相比,所提模型在分割结果方面明显更好。特别是在中间图像中,YOLOP错误地将对向车道预测为可行驶区域。这种误判对自动驾驶任务极为危险。
在这里插入图片描述

  图5显示了雨天的情况。雨水会增加路面的反射,从而影响驾驶员的判断。这个问题也体现在深度学习模型中。此外,由于雨滴的折射和散射效应,挡风玻璃上的雨滴可能会使整个图像模糊,给模型的预测带来相当大的挑战。左侧图像的结果可以观察到YOLOP由于路面反射而无法准确分割可行驶区域。中间图像中也出现了类似的情况。YOLOP甚至难以区分汽车引擎盖和路面。然而,所提模型在这种情况下仍然表现出卓越的性能。特别是对于A-YOLOM(s),它受路面反射的影响较小。所提模型在车道线检测方面也比YOLOP表现出色,如右侧图像所示。然而,**在这个场景中,YOLOP在检测任务上优于所提模型。**如图所示,YOLOP可以在更远的地方检测到更多的车辆。
在这里插入图片描述

在这里插入图片描述

  图6显示了雪天的情况。在雪天条件下,积累的雪可能会遮蔽道路或车道,给模型带来额外的挑战。一些积累的雪被清理到道路两侧的雪堆中,这对模型的车辆预测构成了挑战。例如,在中间图像的左侧,YOLOP错误地将一个雪堆识别为车辆。如果道路上有一个小雪堆,车辆通常可以绕过它。将如此小的雪堆误识别为静止车辆可能是危险的。因此,召回率并不总是越高越好。在召回率和精确度之间取得平衡至关重要。在展示的所有三个结果中,模型在分割任务上显著优于YOLOP,特别是A-YOLOM(s)的表现尤为突出。然而,根据右侧图像的结果,模型在检测远距离车辆方面落后于YOLOP,尤其是在使用A-YOLOM(n)时。在各种天气条件下,模型始终提供更准确和更平滑的分割结果。然而,与YOLOP相比,在恶劣天气条件下,模型检测远距离和小目标的能力略有下降

C. Ablation Studies

  本节引入了一种消融研究,以验证自适应拼接模块的有效性。此外,还评估了分割neck和head对整体模型性能的影响。

  (1) Adaptive concatenation module: 为了评估自适应连接模块的影响,将其性能与有无该模块的情况进行了比较。具体来说,YOLOM(n) 和 YOLOM(s) 作为基线,代表了具有不同骨干的两个不同实验组。A-YOLOM(n) 和 A-YOLOM(s) 都包含了自适应连接模块。它们的分割neck结构完全相同,且没有良好的设计。结果展示在表V中。当比较 AYOLOM(n) 与 YOLOM(n) 时,发现检测和可行驶区域分割的性能相当。然而,车道线准确率和 IoU 均有显著提升。同样,当比较 A-YOLOM(s) 与 YOLOM(s)时,观察到相同的改进趋势。这些结果表明,自适应连接模块能够自适应地连接特征,无需手动设计,并实现与精心设计的分割头部相似或更好的性能,从而进一步增强模型的泛化能力
在这里插入图片描述

  (2) Multi-task model and segmentation structure:为 了 评 估 多 任 务 方 法 对 每 个 单 独 任 务 的 影响, 以 及提 出 的 分 割neck 和 head结 构,在 分 割 任 务 领 域 内 比 较 了YOLOv8(segda)、YOLOv8(segll)、YOLOv8(multi)和YOLOM(n)的性能和head参数。YOLOM(n)与YOLOv8具有相似的骨干网络, 这使得这种比较既公平又合理。 结果展示在表 VI中。YOLOv8(segda)和YOLOv8(segll)分别实现了可 行 驶 区 域 和 车 道 线 分 割 任 务。 YOLOv8(multi)是一 个 集 成 的 多 任 务 学 习 模 型, 将YOLOv8(segda)、YOLOv8(segll)和YOLOv8(det)的neck和head结构整合到一个共享的骨干中。观察到性能有显著提升。这表明多任务学习可以相互增强各个任务的性能。
在这里插入图片描述

  与YOLOv8(multi)相比,YOLOM(n)拥有精心设计的、针对分割任务量身定制的neck结构。此外,它还拥有显著更轻量级的头部结构, 其复杂度仅为0.008倍。这一显著改进归功于独特的头部设计,该设计仅依赖于一系列卷积层,直接输出掩码,无需额外的原型信息。YOLOM(n)在可行驶区域和车道线任务中分别实现了好的mIoU和IoU结果。此外,在车道线任务中实现了具有竞争力的精度。这些结果证明了提出的颈部和头部创新在参数和性能开销最小的情况下取得了更好的结果

D. Real roads experiments

在这里插入图片描述

  本节主要讨论在真实道路数据集上进行的实验。具体来说,使用行车记录仪捕获几个视频,并将它们逐帧转换为图像,以使用所提模型和YOLOP进行预测。每个转换后的图像数据集包含1428张图像,分辨率为 1280 x 720 1280x720 1280x720。这些图像涵盖了三种场景:高速公路、夜间和白天。图7显示了真实道路数据集的结果。然而,所提模型在A-YOLOM(s)上始终维持相对稳定的性能。在所有任务中,A-YOLOM(s)的表现优于YOLOP。同时,与YOLOP相比,A-YOLOM(n)仅在检测任务中略逊一筹。ADS必须能够在不熟悉的场景中平稳运行。这是至关重要的。真实道路上的结果表明,所提模型可以满足真实道路上自动驾驶汽车的需求。

五、总结

  本文介绍了一种针对实时自动驾驶应用的全端到端轻量级多任务模型设计。多任务模型的优势在于每个任务都能隐式地增强其他任务,从而进一步提高所有任务的表现,并增强模型在边缘设备上的部署能力。为了提高模型的一般性,集成了一个自适应拼接模块,并为每种类型的任务提出了统一的损失函数。这使得所提模型更加灵活。与使用BDD100k数据集的其他最先进的实时多任务方法相比,所提模型不仅展示了优越的可视化结果,而且具有更高的FPS。此外,实际道路数据集的评估证明了所提模型在新型环境中的鲁棒性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1939394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动TFT大屏_I2C_HW参考代码(v1.3) 硬件I2C方式

本篇介绍单片机使用硬件I2C方式控制RA8889驱动彩屏。 提供STC8H8K64U和STC8051U34K64的参考代码。 【硬件部份】STC8H8K64U/STC8051U34K64 RA8889开发板 7寸TFT 800x480 1. 实物连接图:STC8H8K64URA8889开发板,使用P2口I2C接口: 2.实物连…

怎样制作高品质的电子画册,一看就会

随着数字化进程的加速,电子画册以其便捷的传播方式、丰富的展现形式,越来越受到各类人士的青睐。一份高品质的电子画册,不仅需要有吸引人的内容,更需要有专业的制作技巧。下面,就让我来为您详细解析,如何制…

量子计划 Quark 捯饬

1 蓝牙 系统镜像中具有内置的蓝牙驱动程序,可以按照以下步骤启动蓝牙: bluetoothctl# 进入 bluetoothctl 界面后。运行scan扫描列出附近所有的蓝牙设备 scan on# 复制设备的MAC地址,然后使用以下命令连接到设备: pair A4:xx:xx:…

艺术与技术的交响曲:CSS绘图的艺术与实践

在前端开发的世界里,CSS(层叠样式表)作为网页布局和样式的基石,其功能早已超越了简单的颜色和间距设置。近年来,随着CSS3的普及,开发者们开始探索CSS在图形绘制方面的潜力,用纯粹的代码创造出令…

32_ConvNeXt网络详解

1.1 简介 ConvNeXt是一种计算机视觉模型,由Meta AI(前Facebook AI)的研究人员在2022年提出,它旨在探索卷积神经网络(CNN)在图像识别任务上的潜力,尤其是在与当时流行的Vision Transformer&…

【windows】【系统还原】亦是美kms执行一键关闭defender 之后,windows defender 被卸载了,无论如何都打不开

在那之后,你是否一直无法启动 defender??? 你是否一直担心电脑的安全问题?? 我也尝试了很多方法 无论是 powershell 执行 dism.exe /online /cleanup-image /scanhealth dism.exe /online /cleanup-ima…

【项目】星辰博客介绍

目录 一、项目背景 二、项目功能 1. 登录功能: 2. 列表页面: 3. 详情页面: 4. 写博客: 三、技术实现 四、功能页面展示 1. 用户登录 2. 博客列表页 3. 博客编辑更新页 4.博客发表页 5. 博客详情页 五.系统亮点 1.强…

c# 开发AutoCAD扩展

在C#中开发AutoCAD扩展涉及使用AutoCAD的.NET API, 利用AutoCAD的功能并创建自定义命令、对话框、块、图层和其他图形元素。以下是一些关键步骤和概念,可以帮助你开始使用C#开发AutoCAD扩展: 准备开发环境 安装AutoCAD:确保你有一…

图片转文档,和同行比我的优势在哪?

图片转Word/Excel | 极简AI工具箱,我自己做的这个在线工具。 图片转word,图片转excel这个功能,我认为还是有不小的需求的。百度上搜索,可以看到不少广告。说明有需求才会有这么多公司愿意花钱打广告。 我这里说的不是单纯的文字识…

CPU工作模式- 保护模式

保护模式 概述 随着软件的规模不断增加,需要更高的计算量、更大的内存容量内存一大,首先要解决的问题是寻址问题,因为16位的寄存器最好只能表示 2 16 2^{16} 216个地址,所以CPU的寄存器和运算单元都要扩展成32位虽然扩展CPU内部…

UDP详细总结

UDP协议特点 UDP是无连接的传输层协议; UDP使用尽最大努力交付,不保证可靠交付; UDP是面向报文的,对应用层交下来的报文,不合并,不拆分,保留原报文的边界; UDP没有拥塞控制&#…

ArrayList.subList的踩坑

需求描述&#xff1a;跳过list中的第一个元素&#xff0c;获取list中的其他元素 原始代码如下&#xff1a; List<FddxxEnterpriseVerify> companyList fddxxEnterpriseVerifyMapper.selectList(companyQueryWrapper);log.info("获取多个法大大公司数据量为&#…

【python 已解决】 ‘ValueError: invalid literal for int() with base 10’解决方案深度解析

【python 已解决】 ‘ValueError: invalid literal for int() with base 10’解决方案深度解析 在Python编程中&#xff0c;ValueError: invalid literal for int() with base 10是一个常见的错误&#xff0c;它通常表明在尝试将字符串转换为整数时&#xff0c;字符串中包含了无…

【开发踩坑】生僻字插入MySQL失败

背景 生产环境插入数据报错&#xff1a; java.sql.SQLException: Incorrect string value: \xF0\xAC\xB1\x96 for column answer at row 1设置answer字段值为 “&#x2cc56;”出现错误 生僻字设置出错&#xff1b; 排查 编码 查看库表属性&#xff1a; ENGINE InnoDB A…

【接口自动化_08课_Pytest+Yaml+Allure框架】

上节课一些内容 的补充 1、openxl这个方法&#xff0c;第一个元素是从1开始的&#xff0c;不是从0开始 回写的列在程序里写的是11&#xff0c;是因为是固定值 一、1. Yaml入门及应用 1、什么是yaml YAML&#xff08;/ˈjməl/&#xff0c;尾音类似camel骆驼&#xff09;是一…

springboot+vue+mybatis校园热点新闻系统+PPT+论文+讲解+售后

21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存储达到…

贪心算法(算法篇)

算法之贪心算法 贪心算法 概念&#xff1a; 贪心算法是一种思想&#xff0c;并不是一种算法&#xff0c;贪心算法是分阶段地工作&#xff0c;在每一个阶段&#xff0c;可以认为所作决定是好的&#xff0c;而不考虑将来地后果。算法的每个阶段总是选择当前阶段最优&#xff0…

ChatGPT成功背后的秘密——RLHF,北京大学NLP团队的论文详解来了

1、简介&#xff1a; 人工智能对齐(AIAlignment) 旨在使人工智能系统的行为与人类的意图和价值观相一致。随着人工智能系统的能力日益增强&#xff0c;对齐失败带来的风险也在不断增加。数百位人工智能专家和公众人物已经表达了对人工智能风险的担忧&#xff0c;他们认为“减轻…

【芯片设计- RTL 数字逻辑设计入门 番外篇 12 -- SoC 设计中的 ECO】

请阅读【ARM AMBA AXI 总线 文章专栏导读】 请阅读【芯片设计 RTL 数字逻辑设计扫盲 】 转自&#xff1a;简单了解SoC设计中的ECO — 快乐的芯片工程师 文章目录 ECO 概述Pre-Mask ECO&#xff08;预掩模ECO&#xff09;芯片设计前端与后端的区别 Post-Mask ECO&#xff08;后…

PyTorch Tabular:高效优化结构化数据处理的强大工具

PyTorch Tabular 是一个用于构建和训练深度学习模型以解决各种表格数据问题的库。这个库专为表格数据设计&#xff0c;通过提供灵活的、易于使用的API来简化模型的构建、训练和推理过程。PyTorch Tabular 基于 PyTorch&#xff0c;利用了 PyTorch 的动态计算图和强大的GPU加速能…