본문 바로가기

논문 리뷰

YOLOP 논문 요약 - 2021

Panoptic : 모든 것이 한 눈에 보이는, 파노라마적인 - 아하사전

yolop모델은 자율주행에서의 객체탐지를 위한 모델이다.

자동차, 오토바이, 보행자 뿐만 아니라 도로, 차선까지도 탐지해낸다.

 

 

YOLOP: You Only Look Once for Panoptic Driving Perception

Dong Wu Manwen Liao Weitian Zhang Xinggang Wang Xiang Bai Wenqing Cheng Wenyu Liu School of EIC, Huazhong University of Science & Technology

 

 

 

Abstract

panoptic driving perception 시스템은 자율주행에서 필수적이다. 높은 정확도를 가진 실시간 인지 시스템은 운전자에게 필요한 의사결정을 보조해줄 수 있다.  YOLOP는 신호 탐지, 주행 가능 도로 segmentation, 차선 탐지를 동시에 수행 하는 것이 가능하다. YOLOP는 특징 추출을 위한 인코더 하나와 특정 작업을 수행하는 3개의 디코더로 이루어져 있다. BDD100K 데이터셋에서 3가지 작업에 대해 가장 높은 정확도와 속도를 달성하며 우수한 수행 능력을 보였다.

 

1. Indroduction

카메라로부터 얻어지는 정보들은 자율주행에서 큰 역할을 한다. 그에 따라 panoptic driving perception 시스템의 중요성이 부각되며 최근 많은 연구들이 이루어지고 있다. 이는 주행 중 방해물의 위치, 해당 도로가 운전 가능한지, 차선의 위치 등의 정보를 이용하여 계획적인 운전과 사고를 회피하도록 보조해준다.

정확도와 속도는 안전을 보장하기 위해 panoptic driving perception 시스템에서 가장 중요한 요구사항이다. 그러나 ADAS의 경우 종종 계산자원의 한계를 보이기 때문에 실시간의 경우에서 두마리 토끼를 잡기는 어렵다.

 

3개의 작업에 대한 개별적인 연구들(객체탐지 : Faster R-CNN, YOLOv4, sementic segmentation : Enet, PSPNet, 차선 탐지 : SCNN, SADENet)은 좋은 결과를 보이지만 각 작업을 개별 작업으로 처리하기엔 한번에 처리할 때 보다 긴 시간이 걸린다. 교통상황에서 각각의 작업은 서로 깊은 연관성을 띄기도한다. 차선은 교통객체에 의해 둘러쌓여 있거나 운전구역의 경계선이기도 하다. 그러므로 각 작업들을 연속적인 작업이 아닌 멀티태스킹과 같은 하나의 작업으로 처리하는 탐구적인 접근이 필요하다.

 

멀티태스킹에서의 어려움을 해결하기 위해 우리는 lightweight CNN기반의 인코더, 1-stage detector 디코더를 사용하였다. 1-stage detector은 2-stage detector에 비해 속도가 빠르고 다른 두 semantic segmentation 작업과도 결합된다. 또한 다양한 크기와 척도의 인코더에서 출력된 특성맵들도 예측을 더욱 완벽하게 해준다.

 

2. Related word

2.1. Traffic Object Detection : SSD-series, YOLO-series

2.2. Drivable Area Segmentation : FCN, PSPNet, ENet, EdgeNet

2.3. Lane Detection : SCNN, Enet-SAD

2.4. Multi-task Approaches : Mask R-CNN, LSNet, MultiNet, DLT-Net, Faster R-CNN

 

3. Methodology

우리는 간단하고 효율적인 방법으로 3가지 작업을 한번에 처리하기 위해 Figure2 와 같이 YOLOP를 구성했다.

Figure 2. YOLOP의 구조도. 하나의 인코더와 각각 다른 작업을 하는 3개의 디코더로 구성되어 있다.

 

3.1 Encoder

3.1.1 Backbone

3.1.2 Neck

 

인코더는 입력으로 부터 특징을 추출하는 Backbone 네트워크와 추출된 특징들을 융합하는 Neck 네트워크로 구성되어 있다. Backbone 네트워크는 YOLOv4 에서 사용된 CSP-Darknet을, Neck 네트워크는 SPP(Spatial Pyramid Pooling)와 FPN(Feature Pyramid Network)을 이용하였다.

 

3.2 Decoders

디코더는 특정 작업을 위한 3개의 헤드로 구성되어 있다.

 

3.2.1 Detect Head

bottom-up 구조의 PAN(Path Aggregation Network)은 semantic feature를, top-down 구조의 FPN은 positioning feature를 전송하며 feature들을 결합시켜 융합효과를 얻는데, 이는 PAN에서 탐지를 위해 쓰인다. 이후 다양한 척도의 3개의 우선순위 앵커를 이용하여 신뢰도를 예측한다.

 

3.2.2 Drivable Area Segment Head & Lane Line Segment Head

FPN의 하위 계층(W/8, H/8, 256의 사이즈)을 입력으로 하는 똑같은 2개의 구조를 가진 네트워크를 통해 Drivable area와 Lane line을 segment한다. 3번의 업샘플링 과정을 통해 (W, H, 2)크기의 출력을 내는데 이는 입력 이미지를 배경으로 하고 drivable area와 lane line에 대한 확률을 나타낸다. 우리는 다른 연구와 다르게 추가적인 SPP모듈없이 네트워크를 구성했다. 또한 업샘플링 과정은 계산량을 줄이기위해 최근접 보간법을 이용하였다.

 

3.3 Loss Function

논문 참고

 

3.4 Training Paradigm

다양한 방법으로 모델을 훈련해보았지만 가장 간단한 방법은 3개의 작업을 동시에 훈련하는 종단간 종단 훈련 방식이다.

 

4. Experiments

4.1. Setting

4.1.1 Dataset Setting

BDD100K 데이터셋을 이용하였는데 이는 다양한 지형, 환경, 계절의 이미지를 담고있기 때문이다. 우리는 70K를 훈련, 10K를 검증, 20K를 테스트 셋으로 분할하였다.

 

4.1.2 Implementation Details

교통상황에서 detector의 능력을 향상시키기 위해 K-means clustering을 사용하였고 최적화 함수로 Adam을, 초기 학습률, β1, β2,에 대해 각각 0.001, 0.937, 0.999를 적용하였다. 빠르고 안정적인 수렴을 위해 cosine annealing 을 이용한 warm-up과정을 적용시키고 다양한 이미지 왜곡 방법을 적용시켜 데이터를 증강시켰다.(random rotatin, scaling, translating, shearing, left-right flipping)

 

4.1.3 Experimental Setting

우리는 각 작업에대한 우수 모델, 멀티태스킹 모델과 단일 모델에 대해 정확도와 속도를 비교했다. BDD100k 데이터셋에 대해 1280x720x3 의 이미지를 640x384x3의 크기로 재설정 후 진행하였다.

 

4.2 Result

4.2.1 Traffic Object Detection Result

Figure 3. 주간과 야간에서 YOLOP의 교통객체 탐지 결과

 

Figure 4. Faster R-CNN과 YOLOP의 객체 탐지 결과 비교. 초록색은 정답, 노란색은 false negative, 빨간색은 false positive에 해당한다.

 

Table 1. 객체탐지결과에 대한 모델들간의 비교

 

Table 2. Drivable Area Segmentation 결과에 대한 모델들간의 비교

 

객체탐지에 대해서는 YOLOP가 우리보다 더 많은 기술이 접목된 YOLOv5s보다 높은 정확도를 보였지만 YOLOv5s는 lane line/drivable area segment가 없기 때문에 더욱 빠른 속도를 보인다.

 

Figure 4는 Faster R-CNN과 YOLOP를 비교한 결과인데 YOLOP는 멀티태스킹과정을 통해 더욱 많은 정보를 공유하기 때문에 더욱 합리적인 예측을 출력한다. 예를들어 도로에서 멀리 떨어진 객체를 차로 인식하는 실수는 하지 않는다.

 

4.2.2 Drivable Area Segmentation Result

 

Figure 5. 주간과 야간에서 YOLOP의 Drivable area segmentation 결과

 

 

Figure 6. PSPNet과 YOLOP의 drivable area segmentation 결과 비교. 노란부분은 false negative, 빨간 부분은 false positive이다.

 

Table2와 같이 다른모델들에 비해 YOLOP가 우수한 성능을 보였고 Figure6 에서는 PSPNet, YOLOP 모두 훌륭한 결과를 보인다. 하지만 YOLOP는 차와 차선의 경계에서 더욱 우수한 성능을 보이고 반대편 차선을 주행가능 구역으로 판단하는 것과 같은 실수를 줄였다.

 

4.2.3 Lane Detection Result

 

Figure 7. 주간과 야간에서 YOLOP의 Lane detection 결과

 

 

Figure 8. ENet-SAD 와 YOLOP의 Lane detection 결과. 노란색은 false negative, 빨간색은 false positive를 뜻한다.

 

 

Table 3. YOLOP와 다른모델들간의 Line detection 결과

 

BDD100K 데이터셋은 차선을 2개의 선으로 표시하였기 때문에 이를 사용하기엔 매우 까다롭다. 그래서 우리는 두개 선의 가운데를 8pixel로 그어 훈련에 이용하였다(테스트 셋은 2pixel). Table2 에서 다른모델들에 비해 매우 우수한 정확도를 보였고 Figure 8에서는 Enet-SAD와 달리 차가 있는곳, 혹은 drivable area를 차선으로 구분하는 오류는 보이지 않았다.

 

4.3 Ablation Studies

4.3.1 End-to-end vs Step-by-step

Table 4. end-to-end vs step-by-step

Table4 는 실험결과를 정리한 표이다. E, D, S, W는 각각 Encoder, Detect-head, two-Segment-heads, Whole network를 뜻한다. Detection task에서는 우수한 성능을 보이는가 싶었지만 two step 모델보다는 three step에서 약간 더 우수한 성능을 보였다.

 

4.3.2 Multi-task vs Single task

 

Table 5. Multi-task vs Single task

한번에 3가지 작업에 대한 훈련을 동시에 진행하는 multitask와 각각의 작업을 분리해서 훈련하는 single task를 비교한 결과 정확도는 single task에 가깝게 나왔지만 속도는 더욱 빠르다.

 

4.3.3 Region-based vs Grid-based

 

Table 6. Region-based vs Grid-based

 

grid-based 가 region-based보다 semantic segmentation에 적합한것을 검증하기 위해 우리는 Faster R-CNN에 두개의 헤드를 결합한 R-CNNP모델을 만들었다. 두 모델에 대해 detection 과 segmentation 작업을 분리해서 훈련하는, 동시에 훈련하는 2가지의 실험을 진행했다. Table 6를 토대로 R-CNNP는 YOLOP에 비교해 낮은 성능을 보였다.

 

 

5. Conclusion

우리의 모델은 BDD100k의 3가지 task에서 성공적인 결과를 보였고 실시간에서도 작동할 수 있다는 것을 확인하였다. 또한 격자기반의 예측 매커니즘은 semantic segmentation task에 더욱 적합하다는 것을 검증하였고 우리의 모델은 이 3가지 task에 국한되지 않고 depth estimation과 같은 기술들도 추가될 수 있을 것이다.