开始之前

安装 YOLOP 依赖项

pip install -qr https://github.com/hustvl/YOLOP/blob/main/requirements.txt  # install dependencies

YOLOP: 用于全景驾驶感知的你只看一次

模型描述

YOLOP Model  

  • YOLOP 是一个高效的多任务网络,可以联合处理自动驾驶中的三个关键任务:目标检测、可行驶区域分割和车道检测。它也是第一个在嵌入式设备上实现实时性能,同时在 BDD100K 数据集上保持最先进水平性能的网络。

结果

交通目标检测结果

模型 召回率(%) mAP50(%) 速度(帧/秒)
Multinet 81.3 60.2 8.6
DLT-Net 89.4 68.4 9.3
Faster R-CNN 77.2 55.6 5.3
YOLOv5s 86.8 77.2 82
YOLOP (我们) 89.2 76.5 41

可行驶区域分割结果

模型 mIOU(%) 速度(帧/秒)
Multinet 71.6 8.6
DLT-Net 71.3 9.3
PSPNet 89.6 11.1
YOLOP (我们) 91.5 41

车道检测结果

模型 mIOU(%) IOU(%)
ENet 34.12 14.64
SCNN 35.79 15.84
ENet-SAD 36.56 16.02
YOLOP (我们) 70.50 26.20

消融研究 1:端到端 vs. 分步

训练方法 召回率(%) AP(%) mIoU(%) 准确率(%) IoU(%)
ES-W 87.0 75.3 90.4 66.8 26.2
ED-W 87.3 76.0 91.6 71.2 26.1
ES-D-W 87.0 75.1 91.7 68.6 27.0
ED-S-W 87.5 76.1 91.6 68.0 26.8
端到端 89.2 76.5 91.5 70.5 26.2

消融研究 2:多任务 vs. 单任务

训练方法 召回率(%) AP(%) mIoU(%) 准确率(%) IoU(%) 速度(毫秒/帧)
检测(仅) 88.2 76.9 - - - 15.7
可行驶区域分割(仅) - - 92.0 - - 14.8
车道线分割(仅) - - - 79.6 27.9 14.8
多任务 89.2 76.5 91.5 70.5 26.2 24.4

注释:

  • 在表4中,E、D、S 和 W 分别指代 编码器、检测头、两个分割头 和 整个网络。因此,该算法(首先,我们只训练编码器和检测头。然后我们冻结编码器和检测头并训练两个分割头。最后,联合训练整个网络以完成所有三个任务。)可以标记为 ED-S-W,其他类似。

可视化

交通目标检测结果

Traffic Object Detection Result  

可行驶区域分割结果

Drivable Area Segmentation Result  

车道检测结果

Lane Detection Result  

注释:

  • 车道检测结果的可视化已经通过二次拟合进行后处理。

部署

我们的模型可以在 Jetson Tx2 上实时推理,使用 Zed Camera 捕获图像。我们使用 TensorRT 工具进行加速。我们在 github 代码中提供了模型的部署和推理代码。

从 PyTorch Hub 加载

此示例加载预训练的 YOLOP 模型并传递图像进行推理。

import torch

# load model
model = torch.hub.load('hustvl/yolop', 'yolop', pretrained=True)

#inference
img = torch.randn(1,3,640,640)
det_out, da_seg_out,ll_seg_out = model(img)

引用

更多详情请参阅 github 代码arxiv 论文

如果您发现我们的论文和代码对您的研究有用,请考虑给予星标和引用