1. Introduction
E2E driving에서 Existing method의 한계
- unobserved environment에 대해 정확한 결정을 내리기 어렵다.
- untrained urban area, weather condition, traffic congestion
- Network가 얼마나 safety-critical visual input을 얼마나 잘 인식하는지가 중요하다.
New method
- Visual recognition sub task 또한 학습시키는 것이 unobserved environment에 대해 정확한 결정을 내리도록 한다.
- semantic segmentation, depth estimation, traffic light classification task
- Attention mechanism을 통해 salient region에 focusing 하도록 한다.
Contribution
- E2E driving 기반의 새로운 multi-task attention aware network를 제안했다.
- CARLA에서 기존 SOTA 결과보다 좋은 결과를 냈다.
- Traffic Light Infraction Analysis를 추가로 수행하여 신호등을 처리하는 New Method의 효율성을 정량적으로 보여줬다.
2. Background
Conditional Imitation Learning
- Imitation Learning
- learning policy π를 정해서 expert behavior π∗을 따라하도록 학습시키는 것
- Conditional Imitation Learning
Multi-task deep learning
Attention in vision model
- Attention : 인간의 시각적 집중현상을 구현한 mechanism
SENet
![](https://velog.velcdn.com/images/kowoonho/post/a11ae38e-da7d-40fd-b130-2315e35f6d70/image.png)
- Squeeze operation
- Feature map U는 각 채널마다 다르게 학습된 filter들로 부터 생성된 feature map이므로, 목표하는 바 가 다르기 때문에 Global Average Pooling(GAP)을 통해 1x1xC로 압축한다. ⇒ feature map을 대표하는 벡터 형태로 변환
![](https://velog.velcdn.com/images/kowoonho/post/8a897eca-c918-4fc4-8438-12032fcb817c/image.png)
* Excitation operation을 통해 만들어진 1x1xC 벡터를 원래 feature map U에 곱해 어떤 채널에 집중할지 골라주는 역할을 한다.
CBAM
![](https://velog.velcdn.com/images/kowoonho/post/58afc54d-a940-4296-b73b-f8f16b9ee8dd/image.png)
![](https://velog.velcdn.com/images/kowoonho/post/740b0ca9-4e7d-4156-812b-bdaccf366639/image.png)
- H X W 개의 픽셀 중 어느 부위에 집중할지 인코딩하는 단계
3. Method
Network Architecture
![](https://velog.velcdn.com/images/kowoonho/post/2b47510c-bcac-4937-b21e-b4d4215a528c/image.png)
- Input
- Image I from front-facing camera
- velocity v
- high-level command c ⇒ one-hot encoded vector(follow lane, turn left, turn right, go straight)
- Output
- main task
- control signal(steering : s^, throttle : t^, brake : b^)
- sub-task
- semantic segmentation : S^
- depth estimation : D^
- classification of the traffic light state : t^ ⇒ one-hot vector(red, yellow, green, none)
Residual network with attention
![](https://velog.velcdn.com/images/kowoonho/post/61bcae47-709a-4c23-a083-dca68d498985/image.png)
-
Type 1
- 각 ResNet stage가 끝날 때마다, feature map을 attention module과 convolution block을 통과시킨다.
- Attention module은 CBAM을 통해 생성된 attention value를 더해줘서 global feature map을 emphasize한다.
- For segmentation & depth estimation
- segmentation & depth estimation은 high resolution feature map에 접근하는 것이 필요하기 때문이다. ⇒ Like U-Net
![](https://velog.velcdn.com/images/kowoonho/post/1f52b479-272e-4edd-8d4b-eed39df14ea4/image.png)
-
Type 2
- ResNet의 last layer로 부터 나온 feature map을 attention module을 통과시킨다.
- For traffic light classification & control command prediction
- require more abstract features in the hidden representation
Decoder Network
![](https://velog.velcdn.com/images/kowoonho/post/056e3d2b-84bf-4074-8fe8-c3f76e2239ba/image.png)
- Goal : control prediction을 위한 generalizable latent representation을 학습하는 것
- encoder가 feature map에 what, where, how far에 관한 정보를 담을 수 있도록 한다.
- Output : 384 x 160 resolution image (same with input)
Traffic Light classifier
![](https://velog.velcdn.com/images/kowoonho/post/6b8c1244-2d99-4ff8-a64e-791461316f55/image.png)
- Vision-based e2e driving approach로 traffic light에 반응하는 것은 아직 부족하다.
- traffic light를 보고 있는 상황에서, traffic light가 어떤 state인지 파악하는 sub-task가 필요하다. ⇒ Frame마다 traffic light state를 4가지 class로 분류한다.
Driving module
![](https://velog.velcdn.com/images/kowoonho/post/fdf0302f-8e8b-4fae-86ea-ee9e34ac2a0e/image.png)
- Input
- Flattened feature map
- encoded velocity input v
- high-level command c
- Output
- control signal
-
s^,t^,b^
⇒ by regression task
- Branched prediction head
- Command input c 에 따라서, control command를 예측할 때 필요한 branch가 결정된다.
Loss Function
![](https://velog.velcdn.com/images/kowoonho/post/167e9514-b024-4d41-9506-272e10f1d96c/image.png)
- Lcontrol
- Control regression loss
- Lcontrol=∑c=13γcLc
- c =1, 2, 3 ⇒ steering, throttle, brake
- Ltl
- Loss for traffic light classification
- class-weighted categorical cross-entropy losses
- Lseg
- Loss for segmentation
- class-weighted categorical cross-entropy losses
- Ldep
- Loss for depth estimation
4. Experiment
Environment and Dataset
- CARLA simulator ver 0.84
- Town01 for training, Town02 for testing
Dataset collection
- CARLA simulator ver 0.84
- Town01 for training, Town02 for testing
- Town01로 부터 466,000 frame
- 372,000 ⇒ training set
- 94,000 ⇒ validation set
- 각 frame마다 여러 input, output들이 포함되어 있다.
- I,S,D,s,t,b,v,c
- Dataset은 4가지 다른 날씨 조건에서 수집되었다.
- ClearNoon, WetNoon, Hard Rain Noon, Clear Sunset
![](https://velog.velcdn.com/images/kowoonho/post/aea70734-2a2d-4e06-bc12-2507bf64512a/image.png)
Data augmentation and balancing
- Augmentation
- Gaussian noise, blur, pixel dropout, contrast normalization
- PCA color augmentation
- PCA를 통해서 Color 채널을 변경한다. ⇒ 이미지의 중요한 특성은 유지하고, 학습하고자 하는 물체의 조명 강도나 색상을 변화시킨다.
![](https://velog.velcdn.com/images/kowoonho/post/eaa3a723-0f33-491b-8ffa-46c6ff44ce61/image.png)
- Balancing
- Driving dataset은 unbalanced distribution을 가진다.
- 예를 들어, dataset에서 직진 control이 대부분인 경우
- 이 unbalance를 해결하기 위해, steering value에 따라 undersampling을 했다. ⇒ 같은 제어 신호가 너무 많을 경우, training 때 skip 됨.
Experimental setup
- Starting point, Goal point를 정해 놓고 route planner로 global path를 계산
- 이 planner로 부터 high level command c 를 매 frame마다 받아서 현재 position에서 어떻게 진행할지 예측
- 모든 evaluation trials은 다음 네가지의 상황에서 시행
- Training condition ⇒ 4 weathers, Town01
- New weather ⇒ 2 weathers, Town01
- New town ⇒ 4 weathers, Town02
- New town & weather ⇒ 2 weathers, Town02
![](https://velog.velcdn.com/images/kowoonho/post/72fca259-3d5f-4e22-82ac-417e3bfcbcd3/image.png)
Benchmark
- CoRL2017
- 4가지 driving condition으로 구성
- driving straight
- driving with one turn at an intersection
- full navigation with multiple turns at intersections
- The same full navigation but with dynamic obstacles
- But, 빨간불 신호등을 지나치는 것은 실패로 처리하지 않는다.
- lane-keeping과 목표지점에 도달하는 것에만 중점을 두고 디자인되었기 때문이다.
- NoCrash
- more complex scenario
- under 6 weather scenario
- difficulty level ⇒ full navigation with 3 traffic congestion
- empty town
- regular traffic
- dense traffic
- collision이 일정 threshold 이상이면 실패로 간주한다.
- traffic light violation도 평가에 포함되지만, 실패로 처리하지는 않는다.
Result(CoRL2017, success rate)
![](https://velog.velcdn.com/images/kowoonho/post/0566487d-1dff-4991-a133-c1a26fe38011/image.png)
- 특히, New town, New town & weather과 같은 새로운 환경에서 좋은 성능을 보인다.
Result(CoRL2017, traffic light infraction)
![](https://velog.velcdn.com/images/kowoonho/post/3cbfc30b-c49c-4d61-a22c-5a607b953f97/image.png)
- 모든 조건에서 traffic light infraction에 관한 성능이 좋다.
Result(NoCrash, success rate)
![](https://velog.velcdn.com/images/kowoonho/post/0f00f16b-4370-4144-8a88-ebbfccb13193/image.png)
- CoRL2017과 마찬가지로 New town에서 성능이 다른 모델에 비해 좋다.
Result(NoCrash, traffic light infraction)
![](https://velog.velcdn.com/images/kowoonho/post/bec5b85f-dfb1-4b4e-b59a-a0017c1f2312/image.png)
- NoCrash에는 New weather로 Wet Sunset과 같은 weather condition이 존재하기 때문에, New weather 상황에서 햇빛에 의해 input image가 가려지는 현상이 발생해 성능이 좋지 않다.