시작하기 전 참고 사항

YOLOP 종속 패키지를 설치하려면 아래 명령을 수행해주세요:

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

YOLOP: You Only Look Once for Panoptic driving Perception

모델 설명

YOLOP Model  

  • YOLOP는 자율 주행에서 중요한, 다음의 세 가지 작업을 공동으로 처리할 수 있는 효율적인 다중 작업 네트워크 입니다. 이 다중 네트워크는 물체 감지(object detection), 주행 영역 분할(drivable area segmentation), 차선 인식(lane detection)을 수행합니다. 또한 YOLOP는 BDD100K 데이터셋에서 최신 기술(state-of-the-art)의 수준을 유지하면서 임베디드 기기에서 실시간성에 도달한 최초의 모델입니다.

결과

차량 객체(Traffic Object) 인식 결과

Model Recall(%) mAP50(%) Speed(fps)
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(ours) 89.2 76.5 41

주행 가능 영역 인식 결과

Model mIOU(%) Speed(fps)
Multinet 71.6 8.6
DLT-Net 71.3 9.3
PSPNet 89.6 11.1
YOLOP(ours) 91.5 41

차선 인식 결과

Model mIOU(%) IOU(%)
ENet 34.12 14.64
SCNN 35.79 15.84
ENet-SAD 36.56 16.02
YOLOP(ours) 70.50 26.20

조건 변화에 따른 모델 평가 1 (Ablation Studies 1): End-to-end v.s. Step-by-step

Training_method Recall(%) AP(%) mIoU(%) Accuracy(%) 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
End-to-end 89.2 76.5 91.5 70.5 26.2

조건 변화에 따른 모델 평가 2 (Ablation Studies 2): Multi-task v.s. Single task

Training_method Recall(%) AP(%) mIoU(%) Accuracy(%) IoU(%) Speed(ms/frame)
Det(only) 88.2 76.9 - - - 15.7
Da-Seg(only) - - 92.0 - - 14.8
Ll-Seg(only) - - - 79.6 27.9 14.8
Multitask 89.2 76.5 91.5 70.5 26.2 24.4

안내:

  • 표 4에서 E, D, S, W는 인코더(Encoder), 검출 헤드(Detect head), 2개의 세그먼트 헤드(Segment heads) 와 전체 네트워크를 의미합니다. 그래서 이 알고리즘(이 알고리즘은 첫째, 인코더 및 검출 헤드만 학습합니다. 그 후, 인코더 및 검출 헤드를 고정하고 두 개의 분할(segmentation) 헤드를 학습합니다. 마지막으로, 전체 네트워크는 세 가지 작업 모두에 대해 함께 학습됩니다.)은 ED-S-W로 표기되며, 다른 알고리즘도 마찬가지입니다.

시각화

차량 객체(Traffic Object) 인식 결과

Traffic Object Detection Result  

주행 가능 영역 인식 결과

Drivable Area Segmentation Result  

차선 인식 결과

Lane Detection Result  

안내:

  • 차선 인식의 시각화 결과는 이차함수 형태로 근사하는 과정(quadratic fitting)을 통해 후처리(post processed) 되었습니다.

배포

YOLOP 모델은 이미지 캡쳐를 Zed Camera가 장착된 Jetson Tx2에서 실시간으로 추론할 수 있습니다. 속도 향상을 위해 TensorRT를 사용합니다. 모델의 배포와 추론을 위해 github code 에서 코드를 제공합니다.

파이토치 허브로부터 모델 불러오기

이 예제는 사전에 학습된 YOLOP 모델을 불러오고 추론을 위한 이미지를 모델에 전달합니다.

import torch

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

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.

본 논문과 코드가 여러분의 연구에 유용하다고 판단되면, GitHub star를 주는 것과 본 논문을 인용하는 것을 고려해 주세요: