brunch

You can make anything
by writing

C.S.Lewis

by 전영환 Jun 23. 2019

Uber의 Data 기반 자율주행차

Tech Review of Uber #2

Power On: Accelerating Uber's Self-Driving Vehicle Development with Data


Self-driving vehicle에서 마주하고 있는 가장 큰 challenge는 보행자와 상호작용이 있는 상황이다. 우리가 self-driving vehicle들을 개발하는 데 있어, Data Engineering과 Data Science 팀은 이 상호작용을 안전하게 하기 위하여 data preprocessing과 data analysis를 통해 기여하고 있다.


데이터를 통해, 우리는 도시 내에서 자동차와 보행자들이 어떻게 움직이는지 배웠고, 어떻게 운전해야 하는지 self-driving vehicle들을 학습하였다. 우리는 LiDAR가 장착된 자동차를 통해 도시 내 보행자들의 움직임을 mapping 하였다. 도로로부터 수집된 비디오들 중, 실제 상황인 우리가 관심을 가질만한 비디오를 검색하여 모델을 학습하고, 개발하며, 시뮬레이션하는 데 사용하였다. 또한 우리의 학습을 강화하기 위하여, 실제 도로와 폐쇄된 트랙 두 곳에서 모두 테스트한다.

Figure 1. Uber ATG는 Data-driven insight로 보행자와 자율주행 차량 간의 안전한 상호작용을 보장한다.


Self-driving vehicle의 컴퓨터 두뇌는 데이터를 통해서만 그것의 환경을 이해할 수 있다. 데이터를 수집하고 모델링하는 것을 통해, 우리는 self-driving vehicle에게 도시에 대한 더 깊은 이해를 제공하려 한다.


Data Engineering팀에서 서로 다른 데이터 source로부터 데이터를 수집하고 분석할 수 있는 환경을 제공하며, Data Science팀에서 데이터로부터 insight를 도출한다.



A city full of data


Figure 2. Uber ATG는 서로 다른 지역에서 주행하는 자율주행차의 두 모습을 시각화하였다. 흰색 점들은 자율주행차의 움직임이며, 다른 색 점은 보행자의 움직임이다.


Self-driving vehicle이 운전하는 관점에서 도시를 이해하기 위해, 우리는 몇 가지 질문을 해보았다.


1. 얼마나 많은 수의 보행자들이 도로에 걸어 다니는가?

2. 얼마나 빠르게 그들은 걸어 다니는가?

3. 얼마나 자주 길을 건너가는가?


본질적으로,  우리는 self-driving vehicle들이 마주할 수 있는 문제 상황에 대한 능력을 정의하기 위해, 실제 도로에서 발생할 수 있는 문제 상황들을 결정하고자 한다. 예를 들어, 실제 도로에서 길을 건너는 보행자들의 방법이 어떻게 self-driving vehicle들이 그러한 상황을 마주하였을 때, 어떻게 행동해야 하는지 가르쳐준다.


Figure 3.  자율주행차는 시간 단축을 위해 보행자 감지를 위한 데이터를 주행 중 수집한다.


우리는 어떻게 이 질문에 답할 수 있을까? 하나의 접근 방식은 카메라와 함께 자동차를 운전하고, LiDAR로 보행자들이 실제 도로에서 어떻게 움직이는지를 기록하는 것이다. 


예를 들어, 위의 Figure 2, 3에서 우리는, ATG의 self-driving vehicle들이 기록한 보행자들의 움직임을 지도에 시각화하였다. 하얀색의 점선은 self-driving vehicle이 움직인 기록이며, 색이 있는 점과 원들은 그 시점에 걷거나 멈춰있는 보행자들을 나타낸다. 이렇게 시각화를 하기 위해, ATG Data Engineering 팀은 Self-driving vehicle로부터 수집된 데이터를 Data Scientist들이 분석할 수 있는 형태로 변형하여 전달할 수 있는 pipeline을 만들었다. Data Science 팀은 데이터를 분석하여 insight를 도출하였다. 그렇게 도출된 insight로는 self-driving vehicle들이 보행자를 탐지하는 machine-learned 모델을 개발하는데 필요한 보행자 움직임의 특성들과 정보가 있다.



Machine Learning in the city


Figure 4. 보행자를 감지한 데이터를 모아서, 평균적으로 보행자가 많은 지역을 시각화하였다.


보행자 움직임의 특성을 파악하면, self-driving vehicle이 마주할 특별한 상황들(ex. 횡단보도를 건너는 상황들)을 정의할 수 있다. 수천 개의 예시들을 통해, 보행자들의 행동을 이해하고 예측할 수 있는 높은 정확도의 machine-learned 모델을 학습시킬 수 있다. 위의 visualization을 보면, data scientist는 Data Engineering 팀에 의해 수집된 데이터를 통해, historical log들을 검색하고 도시 내에서 보행자가 많은 지역을 찾는다. 이 중 특별한 예시들은 보행자의 행동을 예측하는 모델을 개선하는 데 사용되고, 그 결과로 우리는 실제 보행자 행위에 대해 더 정확하게 시뮬레이션할 수 있다.



To simulate a city

Figure 5. 다양한 변화를 준 시뮬레이션 시나리오의 수백 건의 pass/fail 결과를 3차원으로 시각화한 것이다.


실제 도시에서 보행자의 움직임에 대한 지식은 도시의 모습을 시뮬레이션을 통해 구성할 때 도움을 준다. 예를 들어, 보행자들은 다양한 조합은 보행자 시뮬레이션의 대표 조합을 정의하는데 도움을 준다. 이러한 정의는 시뮬레이션된 세상과 실제 세상을 연결시켜 준다. 예를 들어, 보행자들이 평균적으로 얼마나 빠르게 걷는지, 무단횡단 스타일은 어떠한지, 얼마나 빠르게 걷고 멈추고를 하는지. 이러한 모든 상황들에 대해 값의 범위를 설정하여, 실제 상황에서 보행자가 보일 것이라고 예상되는 변화를 시뮬레이션에 다양하게 포함시킬 수 있다. 


Figure 5는 걷는 속도와 같은 3차원 parameter들을 통해 예측한 특별한 시나리오의 다양한 경우에 대하여 pass/fail 결과를 시각화한 것이다. 녹색 점(pass)과 붉은 점(fail) 사이의 경계는 self-driving vehicle이 해당 조건(ex. 보행자가 예상보다 빠르게 움직이는 경우)에서 판단할 수 없는 경우이다. 이 경계는 마주한 상황이 현실적이지 않을 때, 모델이 개선이 될 기회를 제공한다.



A miniature city at the track


트랙 테스트는 물리적 환경과 시뮬레이션 결과를 연결해준다. 시뮬레이션 시나리오에 대한 정보로 사용된 보행자 정보는 트랙에서의 보행자 시나리오 설계를 개선하는데도 사용된다. Figure 6은 많은 시나리오 테스트 과정에서 서로 다른 추적 값이 발생하는 위치를 나타내기 위해 색칠된 트랙의 self-driving 데이터를 시각화한 것이다. (Figure 6은 용량 관계로 첨부하지 못했습니다. 원문에 가시면 보실 수 있습니다.)


안전에 중요한 시나리오가 트랙에서 성공하는 경우, self-driving vehicle이 해당 시나리오들이 존재하는 도시에서 주행할 수 있다는 것을 의미한다.



Continually learn the city through road testing


실제 도시의 거리를 운전하는 것은 일련의 과정을 다시 한번 수행하게 한다. 도로에서의 주행은 ATG가 분석을 위해 새로운 데이터를 수집하면서 공공 도로에서 self-driving vehicle을 시험하는데 도움이 된다. 이러한 데이터 기반의 feedback 과정은 우리가 예측한 self-driving vehicle이 현실과 일치하는지를 확인해주며, 그 능력을 테스트해준다.


실제 도로에서 주행하는데 것부터, 수집된 데이터로 학습을 하는 것, 시뮬레이션과 트랙 주행을 위한 테스트 시나리오를 만들고 수행하는 것, 실제 도로에서 다시 주행해보는 것 까지, 데이터는 self-driving vehicle을 개발하고 작동 시키는데 필수적인 부분이다. 즉, 스스로 자동차가 주행하도록 하는데, 데이터는 연료이다.





이 글은 아래의 원문을 번역/의역 및 요약하였습니다. 중간중간 파란색으로 표시된 글씨는 번역자의 견해입니다.


https://eng.uber.com/accelerating-self-driving-vehicle-development-with-data/




지난 리뷰 보기


https://brunch.co.kr/@sonjoosik/5

https://brunch.co.kr/@andrewhwan/53


매거진의 이전글 Uber의 머신러닝을 통한 용량 안전성 보장
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari