End to End Learning for Self-Drivings Cars (NVIDIA DAVE-2)
인간의 개입을 최소화한 상태에서 단일 전면 카메라에서 들어오는 이미지를
차량의 스티어링 명령으로 직접 매핑하도록 CNN을 학습시킨 모델 NVIDIA DAVE-2임
학습 시에 input으로 장면(주행 환경 image)을 받음
정답지를 조향각만 줌 == 윤곽선 탐지와 같은 것을 명시적으로 학습하지 않아도 스스로 처리 과정을 알아서 학습해냈음
input
- 좌측, 우측, 중앙 3대의 카메라에서 촬영된 원본 이미지
- 궤도 복구를 위한 위치 및 회전이 무작위로 조정된 이미지 (증강처리)
단순히 이미지를 무작위로 흔든 게 끝이 아니라,
우측으로 치우친 카메라 이미지에는 '좌측으로 핸들을 꺾으라'는 교정용(Corrective) 조향각 정답지를 매핑하여 학습시킴
모방 학습(Imitation Learning)에서 모델이 스스로 실수를 복구하게 만들기 위함
output
Center camera
- 1대의 전면 중앙 카메라만 사용함
- 여기서 촬영된 이미지가 CNN input
CNN
- 단일 이미지를 바탕으로 네트워크가 계산한 조향 명령을 만들어냄
Drive by wire interface
- 계산된 명령은 차량의 실제 스티어링 휠을 물리적으로 움직이게 됨
학습 시에 camera 3대 사용하는 이유
차가 실수로 중앙에서 조금만 벗어나도 대처가 불가능해지기 때문에 궤도 이탈함
이 궤도 복구 능력을 위해 중심에서 벗어난 시점인 좌, 우 이미지 데이터로 복구하는 방법을 학습시킴
https://www.youtube.com/watch?v=NJU9ULQUwng
카메라 이미지 기반으로 차선을 따라가거나 (lane following) 장애물을 피하기 가능
(교차로에서 좌우직진 선택하는 상황에서는 예측 불가능한 단점이 있음)
End to End Driving via Conditional Imitation Learning (CIL)
위에서 봤던 NVIDIA DAVE-2의 단점인
교차로에 진입하여 좌회전, 우회전, 직진 중 하나를 선택해야 하는 상황에서는 예측할 수 없음을 해결한 논문
CIL (조건부 모방 학습)을 통해 해결하고자 함
(a) command input
Input
- Image (전방, 좌측, 우측)
- Measurements (측정값, 차량의 현재 속도 데이터)
- Command (주행 명령, 경로 유지, 좌, 우 , 직진 명령을 one-hot vector 형식으로 줌)
j
A
- MLP, Action a를 만들어내기 위한 마지막단 신경망임
Action a (output)
한계점: 명령(C)의 정보량이 이미지(I)에 비해 너무 작아,
신경망(A)이 명령을 무시하고 갈팡질팡(Oscillation)하는 문제가 발생함
따라서 아래 구조가 나온 듯
(b) branched (분기형 구조)
Input
- Image (전방, 좌측, 우측)
- Measurements (측정값, 차량의 현재 속도 데이터)
Command C (input)
- 명령 관련된 값들이 신경망 안으로 들어가는 것이 아닌 스위치 역할을 함
- ex) 좌회전 명령 -> 좌회전 전용 신경망 쪽으로 연결함
A^k
- 전문가 분기 (Specialized Branches)
- (a) 구조에서는 A라는 하나의 MLP가 모든 상황(직진, 좌회전, 우회전)을 처리해야 했음
(b) 는 여러가지 제어 처리를 분기별로 쪼개서 하나의 상황에 특화되어 있음
왜 분기형(Branched) 구조가 더 좋은지?
= 모델이 헷갈릴 일이 없어짐.
이전에는 교차로에서 직진해야 할지, 좌회전해야 할지
고민하다가 이도 저도 아닌 길로 가버리는(Oscillation) 문제가 있었음
분기형 구조에서는 스위치가 좌회전 명령을 받았다면 거기에 특화된 신경망으로 연결해주는 형식임
https://www.youtube.com/watch?v=cFtnflNe5fM
카페 게시글
과제게시판
[E2EAD] End to End Learning for Self-Drivings Cars(2016) & CIL(ICRA 2018)
신민서
추천 0
조회 43
26.04.08 14:59
댓글 0
다음검색