YOLOP


Before You Start

To install YOLOP dependencies:

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

YOLOP: You Only Look Once for Panoptic driving Perception

Model Description

  • YOLOP is an efficient multi-task network that can jointly handle three crucial tasks in autonomous driving: object detection, drivable area segmentation and lane detection. And it is also the first to reach real-time on embedded devices while maintaining state-of-the-art level performance on the BDD100K dataset.

Results

Traffic Object Detection Result

ModelRecall(%)mAP50(%)Speed(fps)
Multinet81.360.28.6
DLT-Net89.468.49.3
Faster R-CNN77.255.65.3
YOLOv5s86.877.282
YOLOP(ours)89.276.541

Drivable Area Segmentation Result

ModelmIOU(%)Speed(fps)
Multinet71.68.6
DLT-Net71.39.3
PSPNet89.611.1
YOLOP(ours)91.541

Lane Detection Result

ModelmIOU(%)IOU(%)
ENet34.1214.64
SCNN35.7915.84
ENet-SAD36.5616.02
YOLOP(ours)70.5026.20

Ablation Studies 1: End-to-end v.s. Step-by-step

Training_methodRecall(%)AP(%)mIoU(%)Accuracy(%)IoU(%)
ES-W87.075.390.466.826.2
ED-W87.376.091.671.226.1
ES-D-W87.075.191.768.627.0
ED-S-W87.576.191.668.026.8
End-to-end89.276.591.570.526.2

Ablation Studies 2: Multi-task v.s. Single task

Training_methodRecall(%)AP(%)mIoU(%)Accuracy(%)IoU(%)Speed(ms/frame)
Det(only)88.276.915.7
Da-Seg(only)92.014.8
Ll-Seg(only)79.627.914.8
Multitask89.276.591.570.526.224.4

Notes:

  • In table 4, E, D, S and W refer to Encoder, Detect head, two Segment heads and whole network. So the Algorithm (First, we only train Encoder and Detect head. Then we freeze the Encoder and Detect head as well as train two Segmentation heads. Finally, the entire network is trained jointly for all three tasks.) can be marked as ED-S-W, and the same for others.

Visualization

Traffic Object Detection Result

Drivable Area Segmentation Result

Lane Detection Result

Notes:

  • The visualization of lane detection result has been post processed by quadratic fitting.

Deployment

Our model can reason in real-time on Jetson Tx2, with Zed Camera to capture image. We use TensorRT tool for speeding up. We provide code for deployment and reasoning of model in github code.

Load From PyTorch Hub

This example loads the pretrained YOLOP model and passes an image for inference.

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)

Citation

See for more detail in github code and arxiv paper.

If you find our paper and code useful for your research, please consider giving a star and citation.

YOLOP pretrained on the BDD100K dataset

Model Type: Vision
Submitted by: Hust Visual Learning Team