엔비디아의 딥 러닝을 활용한 자율주행 자동차 연구
첫 운전면허 시험을 앞두고 두근거렸던 마음, 기억나시나요? 특히 처음으로 도로를 주행하는 실기시험을 볼 때는 이미 알고 있는 작은 운전 규칙 조차도 잊어버릴 만큼 긴장하지는 않으셨나요?
운전을 시작한다는 것은 마치 성인이 되는 것처럼 느껴지기도 합니다. 처음에는 겁도 나고 상당히 조심스럽지만 경험이 쌓이면서 점차 실력이 나아지게 됩니다. 차의 움직임에 영향을 미치는 여러 요소들과 주행 상황을 이해하게 되면서 운전을 잘 할 수 있게 되는 것이죠. 그렇다면 자율주행 자동차의 경우 이러한 ‘운전에 필요한 경험’들이 어떻게 이해될 수 있을까요?
최근 IT 업계를 휩쓸고 있는 딥 러닝(Deep Learning) 혁명의 발원지라 할 수 있는 벨 연구소(Bell Labs)내에 자리잡은 엔비디아 뉴저지 사무실의 엔지니어들은 딥 러닝을 통해 자율주행 자동차 시스템에게 운전을 가르치고 있습니다. 바로 나선형 신경망(Convolutional neural network, CNN)을 이용한 딥 러닝 기법으로 운전에 필요한 전체 과정을 학습시키고 있답니다.
이 프로젝트의 이름은 ‘DAVE2’인데요. 약 9개월 전부터 엔비디아에서는 일반 도로 주행이 가능한 안정적인 시스템 개발의 일환으로 탄생된 DARPA 자율주행 자동차(DARPA Autonomous Vehicle, DAVE)의 후속 프로젝트입니다. 차선, 가드레일, 타차량 등과 같은 개체를 감지하는 기능은 물론 예상치 못한 요소들로 발생할 수 있는 무수히 많은 결과들을 일일이 코딩하더라도 무작위적으로 발생하는 상황에 대처하는 것은 사실상 불가능하며 비효율적일 수밖에 없습니다. 그래서 엔비디아 연구팀은 자율주행 차량이 나선형 신경망을 통해 운영될 수 있도록 하였답니다.
자율주행 자동차를 훈련시키기 위해 머신 러닝(Machine Learning) 라이브러리인 엔비디아 데브박스 및 토치 7(DevBox and Torch 7)과 정보 처리를 담당하는 DRIVE PX 자율주행 컴퓨터가 사용되었습니다. 이를 사용하여 운전자가 핸들을 움직이는 각도와 동기화된 차량 전면 카메라의 타임스탬프 영상을 통해 나선형 신경망을 훈련시켰습니다.
차선 표시가 있거나 없는 2차선 도로의 정보, 차들이 주차된 주택가 거리, 터널 및 비포장도로와 같은 데이터는 대부분 뉴저지에서 수집했습니다. 또한 그 외에도 맑은 날, 흐린 날, 눈이 온 날, 비가 온 날들의 주야간 상황 데이터도 수집했습니다.
딥 러닝을 이용하여 자율주행 자동차를 만들어 낸 엔비디아
이러한 데이터를 이용하여 나선형 신경망이 노면의 특정 상태를 인지할 시에 실제 운전자와 똑같이 핸들을 조작하도록 훈련시켜 시뮬레이션을 실행했습니다. 그리고 시뮬레이터는 수집된 영상 데이터를 바탕으로 나선형 신경망이 운전을 할 경우에 발생할 수 있는 상황에 근접한 이미지들을 생성했습니다.
훈련을 마친 나선형 신경망은 시뮬레이터에서 좋은 성과를 보였으며, 이 나선형 신경망을 DRIVE PX에 탑재하고 실제 주행 테스트를 실시했습니다. 그 결과 포장/비포장 도로 및 차선 표시 유무를 비롯하여 다양한 날씨 상황에서도 큰 문제 없이 주행을 마쳤습니다. 데이터가 늘어날수록 운전 실력도 좋아졌으며, 심지어 뉴저지주를 횡으로 가로 지르는 가든 스테이트 파크웨이 도로를 완벽하게 달리기도 했답니다.
엔비디아의 엔지니어링 팀은 나선형 신경망이 도로에 존재하는 요소들을 일일이 인지하도록 훈련시키지 않았습니다. 그 대신 나선형 신경망이 인간의 핸들 조작 각도와 노면 조건을 가이드로 활용하여 차량과 도로 사이의 상호작용 규칙을 이해하기 시작한 것이죠.
더 자세한 정보가 궁금하신 분들은 엔비디아의 연구 논문인 ‘자율주행 자동차 개발을 위한 엔드-투-엔드 학습법(End to End Learning for Self-Driving Cars)’을 읽어 보시면 어떨까요?
앞으로도 계속 발전해 나가는 자율주행 자동차의 소식을 전해 드릴 것을 약속 드리며, 더욱 놀랍고 재미있는 소식으로 돌아오겠습니다. 여러분의 많은 기대 부탁드려요~^^