首页 > 编程知识 正文

开源3d视觉(大脑中负责人类视觉的地方)

时间:2023-05-03 13:06:44 阅读:91448 作者:1333

作者丨happy

编辑丨极市平台

arxiv:https://arxiv.org/ABS/2108.11250

代码: https://Github.com/Hust VL/yolop

code @ opencv:https://github.com/HPC 203/yolop-opencv-dnn

本文是华中科技大学集中的柚子团队全景驾驶感知工作,提出了一种可以在嵌入式平台上实时处理三项感知任务(目标检测、可驾驶区域划分、车道检测)的方案YOLOP。 提出的YOLOP不仅拥有超高速的推理速度,而且在极具挑战性的ljdch100K三大任务中获得了非常优异的性能。

Abstract

全景驾驶感知系统是自动驾驶非常重要的部分,实时高精度感知系统有助于车辆合理的驾驶决策。

我们提出了一种全景驾驶感知网络YOLOP,可以同时进行交通目标的检测、驾驶区域的分割以及车道的检测。 YOLOP包括用于特征提取的编码和用于处理特定任务的三个解码器。 提出的方法在极具挑战性的ljdch100K数据集上非常出色,从精度和速度的观点来看,提出的方法通过3个任务获得了SOTA性能。 另外,我们通过消融实验验证了多任务学习模型的有效性。

据我们所知,这项工作是第一个可以用嵌入式设备(Jetson TX2 )实时处理三个视觉任务的方案,同时具有非常好的精度。

Method

上图显示了本论文中提出的YOLOP网络体系结构的简图。 这是一个分阶段的网络,包含共享编码器和三个特定任务的解码器。 由于不同的解码器之间没有复杂冗余的共享模块,因此可以大幅减少计算量,同时便于网络的端到端训练。

Encoder

该网络的编码器由主干网和Neck网构成。

主干网:主干网用于提取输入图像的特征,考虑到YOLOv4在目标检测方面的优越性能,选择了CSPDarkNet作为主干网。

Neck :Neck用于融合主干网提取的特征,主要利用SPP和FPN构建了Neck模块。 SPP用于生成融合不同尺度的特征; FPN在不同的语义层面融合特征,使生成特征包含多尺度、多语义层面的信息。

Decoders

YOLOP包括三个用于三个任务的解码器。

Detect Head类似于YOLOv4,我们采用了基于Anchor的多尺度检测机制。 首先,我们用PAN进行更优良的特征融合,并用融合后的特征进行检查。 在多尺度特征的各个grid中给出了3个先验anchor (包括不同的宽高比),检测头预测位置偏移、kxdsb、类概率以及预测可靠性。

Driable AREASEG Menthe ADLANELInese GMenthead驾驶区域分割头和车道分割头采用了相同的结构。 我们把FPN的输出特征(分辨率)发送到分割分支。 我们设计的分割分支非常简单,通过3次上采样处理输出特征大小,是表示各像素是驾驶区域/车道还是背景的概率。 由于Neck已经包含了SPP模块,所以不会像PSPNet那样添加SPP模块。 此外,为了削减计算量,采用了最近的采样层。 因此,分割解码器不仅具有高精度的输出,推理速度也非常快。

Loss Function

由于这个网络包含三个解码器,多任务损失包括三个部分。

检测丢失:这是分类丢失、目标检测和目标帧丢失的加权和,描述如下:

其中,为了降低类别不平衡的Focal Loss,采用了CIoU损失。

分割:采用带Logits的交叉熵损失。 必须提到的是,已经增加了IoU损失。 因此,这两个损失的定义如下。

总之,最终损失由上述三种损失加权。

Training Paradigm

我们尝试了不同的模式训练

练上述模型。最简答的是端到端训练,然后三个任务可以进行联合学习。当所有任务相当时,这种训练范式非常有用。此外,我们也尝试了交替优化算法:即每一步聚焦于一个或多个相关任务,而忽视不相关任务。下图给出了本文所用到的step-by-step训练方案。

Experiments

Setting

Dataset Setting 训练数据采用了ljdch100K,其中70K用于训练,10K用作验证,20K用于测试。由于测试数据无标签,故我们在验证数据集上进行评估。

Implementation Details 为提升模型性能,我们采用了一些实用技术与数据增广策略。比如,采用K-means聚类生成anchor先验信息;warm-up与cosine学习率衰减机制;Photometric distortion与Geometric distortion数据增广策略。

Result

在这里,我们采用简单的端到端训练方式,将所得结果与其他方案进行对比。

Traffic Object Detection Result 上表给出了所提方案与其他方案的检测性能对比,从中可以看到:

从检测精度来看,YOLOP优于Faster R-CNN、MultiNet以及DLTNet,并与使用大量训练trick的YOLOv5s相当;从推理耗时来看,YOLOv5s更快,因为YOLOP不仅要进行检测还要进行分割,而YOLOv5s仅需进行检测。交通目标检测结果见下图。

Drivable Area Segmentation Result 上表给出了驾驶区域分割性能对比,从中可以看到:

从推理速度来看,所提方法要比其他方案快4-5倍。从性能角度来看,所提方案以19.9%、20.2%以及1.9%优于MultiNet、DLTNet以及PSPNet。分割结果可参考下图。

Lane Detection Result 上表给出了车道线检测性能对比,可以看到:所提方案性能远超其他三个方案,下图给出了车道线检测结果示意图。

Ablation Studies

我们设计了两个消融实验进一步说明所提方案的有效性。

End-to-End vs Step-by-Step 上表给出了不同训练机制的性能对比,从中可以看到:

通过端到端训练,所提YOLOP已经表现的非常好,没有必要再进行交替训练优化;然而,我们发现:先训练检测任务可以取得更高精度。

Multi-task vs Single-task 上表对比了多任务与单任务机制的性能,从中可以看到:多任务机制可以取得与聚焦单一任务训练相当的性能 ;重要的是,相比独立执行每个任务,多任务训练可以节省大量的时间。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。