자율주행과 기계학습
정성균

Autonomous Driving
CONTENTS
1. 자율주행차 구현을 위한 기술들

2. 자율주행을 위한 기계학습 연구

3. 이미지 기반 차선변경 학습 알고리듬
자율주행차 구현을 위한 기술들
ControlLocalization
Perception
자율주행차 구현을 위한 기술들
측위 (Localization & Mapping)
- 현재 차량의 위치를 알아내기 위한 기술들

- GPS, 고정밀지도, …
일반지도 정밀지도
자율주행차 구현을 위한 기술들
인식 (Perception)
- 차 주변의 사물과 교통 상황을 파악하는 기술들

- Computer vision, sensor fusion, …
자율주행차 구현을 위한 기술들
제어 (Control)
- 도로 상황에 맞게 차량을 이동하기 위한 기술들

- 경로계획, 차량 제어 기술
ControlLocalization
PerceptionPerception
Control
자율주행을 위한 기계학습 연구
자율주행을 위한 기계학습 연구
기존 자율주행 연구에서 기계학습의 역할
- (영상)입력을 해석하는 제한된 용도로만 사용됨
영상 입력 제어 알고리듬 제어 명령인식 알고리듬
- 인식 알고리듬: 사물 인식, 추적, 차선 인식,…

- 제어 알고리듬: 차선 이탈 경고 (LDW), 전방 추돌 경고 (FCW), 앞차 추종 제어 (ACC)
자율주행을 위한 기계학습 연구
기계학습을 활용한 자율주행 연구들
- (영상/주행기록) 입력 데이터로 부터 제어명령을 위한 로직을 직접 학습함
영상 입력 제어 명령
인식 알고리듬

+

제어 알고리듬
Pixels to Actuator
End-to-end learning for self-driving cars [Nvidia; Udacity]
- 입력 영상에 상응하는 조향값을 이용하여 CNN을 학습

- 72시간 분량의 주행영상을 사용
Pixels to Actuator
Pixels to Actuator
단점
- Behavior cloning 은 도로위의 이상상황에 대한 대응 (디버깅)이 어렵다
영상 입력 제어 명령CNN
Pixels to Actuator
단점
- Behavior cloning 은 도로위의 이상상황에 대한 대응 (디버깅)이 어렵다
?? !!!!!CNN
Mediated Perception
DeepDriving[Princeton; AutoX]
- 인식결과를 주행(제어)에 필요한 정보로 직접 변환해서 제공

- 헤딩방향, 차선내 오프셋, 차간 거리, …
Mediated Perception
시스템 구현
- TORCS (게임 시뮬레이터)을 통해서 학습 데이터를 생성
Mediated Perception
장점
- 간략한 형태로 전방의 도로상황을 효율적으로 묘사함

- 인간이 해석 가능한 중간 결과물 생성
단점
- 실제환경에서 학습 데이터를 취득하기 어려움

- 정확도
Mediated Perception
결과
Generic Driving Model
Large-scale video datasets [Berkeley]
- 블랙박스 (dashcam) 영상을 활용하여 

- 다양한 운전자의 주행기록과

- 다양한 도로 상황에 대한 데이터를 확보

- 일반적인 운전자 모델 학습을 목표
Generic Driving Model
접근방법
- N-gram 언어 모델에서 착안

- 주어진 히스토리를 이용하여 다음에 나올 단어(글자)가 나타날 확률을 통계적으로 계산
S T U D E N
…
P(Z |STUDEN ) = 0.002
P(T |STUDEN ) = 0.98
…
P(A|STUDEN ) = 0.001
Generic Driving Model
접근방법
- N-gram 언어 모델에서 착안

- 주어진 히스토리를 이용하여 다음에 나올 단어(글자)가 나타날 확률을 통계적으로 계산
S T U D E N T
…
P(Z |STUDEN ) = 0.002
P(T |STUDEN ) = 0.98
P(A|STUDEN ) = 0.001
…
Generic Driving Model
접근방법
- N-gram 언어 모델에서 착안

- 주어진 히스토리를 이용하여 다음에 나올 단어(글자)가 나타날 확률을 통계적으로 계산

- 과거의 주행기록/영상을 이용해서 다음 움직임을 예측
Generic Driving Model
결과 예측 결과
정답
Go
Stop
RightLeft
Generic Driving Model
결과
Go
Stop
RightLeft
기존 연구들은
시뮬레이터에서 구현됨
특수한 차량 플랫폼이 필요함
성능이 조금 아쉽…
이미지기반 차선 변경 학습 알고리듬
차선변경
운행중인 자동차와 같은 방향인 인접 차선으로 차량을 이동하는 조작
운전자 보조시스템
후방 추돌 경보 시스템 (BLIS, BSD, …)
- 레이더, 초음파 센서를 이용한 측후방 사각 추돌 위험시 알람

- 고가의 센서들이 범퍼에 매립되어 유지관리비용 증가
교통사고 발생원인
2%
3%
4%
7%
9%
11%
5%2%
56%
1%
앞지르기 방법위반
앞지르기 금지위반
부당한 회전
진로양보 의무 불이행
안전운전 의무 불이행
차로 위반
과속
중앙선 침범
신호위반
안전거리 미확보
서행 및 일시정지 위반
교차로 통행방법 위반
보행자 보호의무 위반
직진 및 우회전차의 통행 방해
기타
- 출처: 교통사고분석시스템 (TAAS), 2016년
교통사고 발생원인
2%
3%
4%
7%
9%
11%
5%2%
56%
1%
앞지르기 방법위반
앞지르기 금지위반
부당한 회전
진로양보 의무 불이행
안전운전 의무 불이행
차로 위반
과속
중앙선 침범
신호위반
안전거리 미확보
서행 및 일시정지 위반
교차로 통행방법 위반
보행자 보호의무 위반
직진 및 우회전차의 통행 방해
기타
- 출처: 교통사고분석시스템 (TAAS), 2016년
차선 변경을 실행하는데 걸리는 시간
- 출처: 미 도로교통안전국(NHTSA), 2009년
2초
저렴하고
빠르게
정확하고
카메라
빠르게
정확하고
카메라
빠르게
딥러닝
카메라
간단한 문제
딥러닝
연구차량 플랫폼
이미지기반 차선변경 학습 알고리듬
데이터 취득과 태깅
- 실험차량을 고속화도로와 도심에서 운전하면서 총 50,044 장의 좌/우 측후방 영상을 취득

- 아래의 기준에 따라서 취득된 데이터를 분류

- BLOCKED: 차량이 물리적으로 해당 차선으로 이동(진입)이 불가능한 경우

- FREE: 차량이 이동하기에 충분한 공간이 확보된 경우

- UNDEFINED: 특수한 도로, 차량이 이미 차선변경에 진입한 상태의 경우
데이터셋
BLOCKED
데이터셋
FREE
데이터셋
UNDEFINED
학습
- VGG16을 이용해서 이진 분류기 (Binary classifier) 를 만듦
Conv FC{좌 영상 / 차선변경?}
Conv FC{우 영상 / 차선변경?}
{0/1}
{0/1}
학습
- VGG16을 이용해서 이진 분류기 (Binary classifier) 를 만듦

- 오른쪽 영상을 좌/우반전 시켜 학습 데이터 양 증가
학습
- VGG16을 이용해서 이진 분류기 (Binary classifier) 를 만듦

- 오른쪽 영상을 좌/우반전 시켜 학습 데이터 양 증가
Conv FC{영상 / 차선변경?} {0/1}
Class Activation Map [CVPR’16]
- 입력: {이미지, 클래스} -> 출력:{클래스, 위치}

- 네트워크가 결정을 할때 어느 영역의 영상 특징을 주로 사용하는지 알 수 있음
Mc(x, y) =
∑
k
wc
k fk(x, y)
Conv5.shape = (512, 7, 7)
Class Activation Map
결과
Classification CAM
그런데...
Classification CAM
- 차선 폭이 다른 도로에서는 어쩌지?

- 빠르게 다가오는 차량에도 대응할 수 있을까?
자동차를 가르쳐보자!
Weakly-Supervised Learning
Positive samples Exceptions Negative samples
Weakly-Supervised Learning
Transfer Learning
Conv FC{영상 / 자동차?} {0/1}
Transfer Learning
Conv FC{영상 / 차선변경?} {0/1}
Transfer Learning
From scratch Transfer learning (car class)
감사합니다

[124]자율주행과 기계학습