ADVERTISEMENT

[소년중앙] 달리면 달릴수록 정교해진다 완벽하진 않아도 똑똑한 자율주행차

중앙일보

입력

업데이트

10번 100번 1000번 반복해 머신러닝한 미니카로 자율주행 원리 쉽게 배웠죠 

왼쪽부터 맹서율(서울 중대초 5)·김율아(경기도 소하초 6)·김승겸(경기도 매송초 6) 학생기자가 직접 만든 자율주행 미니카를 들고 포즈를 취했다.

왼쪽부터 맹서율(서울 중대초 5)·김율아(경기도 소하초 6)·김승겸(경기도 매송초 6) 학생기자가 직접 만든 자율주행 미니카를 들고 포즈를 취했다.

소중 친구들은 ‘자율주행 자동차(Autonomous Car)’에 대해 알고 있나요? 자율주행 자동차란 운전자가 차량을 조작하지 않아도 스스로 움직이는 자동차를 말합니다. 많은 사람이 꿈꿔온 자율주행차의 모습은 영화로도 볼 수 있죠. 1993년 개봉한 영화 ‘데몰리션 맨’에는 2032년을 배경으로 자율주행 경찰차를 타고 질주하는 주인공이 등장하죠. 로봇과 인간이 공존하는 세상을 그린 영화 ‘아이, 로봇’(2004)에서도 시속 400km를 넘게 달리는 자율주행차 안에서 낮잠을 자고 독서하는 장면이 나와요. 이렇듯 SF영화 속에서만 볼 수 있었던 자율주행 자동차를 현실에서도 만날 수 있게 됐어요. 테슬라·벤츠·아우디·현대자동차 등 세계적 자동차 기업을 비롯해 IT·컴퓨터·제조 등 다양한 분야의 기업들이 자율주행 자동차 시장에 뛰어들고 있기 때문입니다. 우리나라에서는 2018년 국내 최초의 운전자 없는 자율주행차 ‘제로 셔틀’이 시범운행을 시작했죠. 어느새 우리 생활 속으로 성큼 다가온 자율주행 자동차. 그 속을 살펴볼까요.

글=박소윤 기자 park.soyoon@joongang.co.kr, 사진=임익순(오픈스튜디오), 동행취재=김승겸(경기도 매송초 6)·김율아(경기도 소하초 6)·맹서율(서울 중대초 5) 학생기자

미국 자동차공학회(SAE International)에 따르면 자율주행 단계는 0~5단계까지 총 6단계로 구분할 수 있습니다. 0단계는 자동화 기술이 적용되지 않은 기초 단계로, 가속·감속·제동 등 모든 부분을 운전자가 직접 제어해야 하죠. 자율주행의 시작이라고 할 수 있는 1단계는 기술이 운전자를 보조하는 수준이에요. 차량에 장착된 각종 카메라와 위치 센서를 통해 조향·가속·감속 등을 자동화할 수 있어요. 2단계에서는 부분 자율주행이 가능해요. 고속도로 주행 시 자동차가 직접 차량·차선을 인식하고 앞차와 간격을 유지하죠. 운전자는 계속해서 주변 상황을 주시해야 합니다. 첨단운전자보조시스템(ADAS)이 적용된 3단계에서는 일정 구간 조건적 자율주행이 가능해요. 하지만 여전히 운전자의 제어가 필요합니다. 4단계부터는 운전자 개입이 없을 정도로 고도화된 자율주행 시스템이 구현돼요. 자동차가 신호·교통 흐름·안전성까지 실시간으로 파악해 운전자가 신경 쓰지 않더라도 충분히 주행할 수 있죠. 현재 연구가 가장 활발하게 이루어지고 있는 구간이기도 합니다. 마지막 5단계는 운전자 개입 없이 목적지까지 주차하는 등 모든 기능이 완전 자동화된 단계인데요. 무인 자동차가 이에 속하죠. 아직은 특정 구간만 완전 자율주행이 가능한 수준입니다.

현재 전 세계 자동차 업계는 2021년까지 자율주행 3단계 차량의 양산화를 목표로 하고 있어요. 우리나라에서는 7월부터 자율주행 3단계 차량의 판매가 허가되죠. 도로 곳곳에서 한 단계 발전한 자율주행 자동차를 만날 날이 머지않은 겁니다. 그런데 이런 자율주행차, 도대체 어떻게 움직이는 걸까요?

이성훈 나우썸 대표가 자율주행 동키카에 대해 설명하고 있다.

이성훈 나우썸 대표가 자율주행 동키카에 대해 설명하고 있다.

궁금증을 안고 김승겸·김율아·맹서율 학생기자가 한자리에 모였습니다. 자율주행 자동차의 원리에 대해 알아보고, 자율주행 미니카를 만들어보기로 했죠. 오늘의 선생님인 이성훈 나우썸 대표가 자율주행 미니카 ‘동키카(Donkey Car)’를 들고 나타났습니다. “동키카는 RC카에 라즈베리파이(싱글 보드 컴퓨터)와 카메라를 연결해 만든 자율주행 미니카예요. 영상을 녹화하며 주행한 데이터를 바탕으로 머신러닝(기계 학습·Machine Learning)을 통해 스스로 길을 찾아가죠. 오늘 저와 함께 자율주행 자동차에 대해 공부하고, 직접 동키카를 만든 후 시범운행까지 해 볼 거예요.” RC카를 좋아하는 승겸 학생기자의 눈이 반짝였어요.

동키카는 실제 자동차의 1/18 크기를 가진 아마존의 인공지능(AI) 자동차 ‘딥레이서(Deep Racer)’의 메이커 버전이에요. 2017년 미국에서 처음 만들어졌죠. 동키카와 딥레이서의 가장 큰 차이점은 머신러닝의 종류가 다르다는 거예요. 머신러닝은 크게 지도·비지도·강화 학습 세 가지로 나뉘는데요. 지도 학습은 정답이 주어진 상태에서 문제를 입력해 컴퓨터를 학습시킵니다. 비지도 학습은 정답 없이 입력만을 통해 데이터를 모으고요. 강화 학습은 정확한 정답이 없는 상황에서 입력·출력을 반복하며 점수를 매겨 최적의 동작을 학습합니다. 바둑기사 이세돌과 대결한 알파고가 이 방법으로 학습했다고 해요. 딥레이서도 강화 학습을 통해 자율주행 기능을 학습하죠. 반면 동키카는 지도 학습법을 기반으로 해요. 인간이 리모컨으로 조종한 경로를 동키카가 지도 학습하면 자율주행이 가능해지는 원리죠.

다소 복잡한 기술 설명이 이어지자 학생기자단이 고개를 갸웃했어요. “조금 어렵고 지루할 수 있어요. 하지만 머신러닝을 통해 자율주행 인공지능이 완성되죠. 이렇게 완성된 인공지능은 어떨까요? 완벽할까요?” “인공지능 로봇이 나오는 SF영화를 본 적 있어요. 로봇이 아기도 키우고 세상을 지배하는 이야기였죠. 인간보다 뛰어날 것 같아요.” 이 대표의 질문에 서율 학생기자가 말했어요. “현재 많은 인공지능이 사람의 역할을 대신하긴 하지만요. 불확실하고 복잡한 상황에서 인간의 논리적·윤리적 판단까지 대체할 수는 없죠. 결국 인공지능은 사람의 능력을 컴퓨터 프로그램으로 실현한, 사람에 의해 만들어진 기술이거든요. 이 세 가지만 기억하면 돼요. 인공지능은 완벽하지 않다, 별거 아니다, 누구나 만들 수 있다.”

소중 학생기자단이 이성훈(왼쪽에서 두 번째) 나우썸 대표의 설명을 들으며 동키카를 제작하고 있다.

소중 학생기자단이 이성훈(왼쪽에서 두 번째) 나우썸 대표의 설명을 들으며 동키카를 제작하고 있다.

동키카의 원리와 특징을 배웠으니 직접 제작해볼 차례입니다. 율아 학생기자는 노란색, 서율 학생기자는 빨간색, 승겸 학생기자는 하늘색 동키카를 택했죠. 동키카를 만들기 위해서는 RC카·카메라·라즈베리파이뿐만 아니라 머신러닝을 위한 텐서플로(구글에서 개발한 머신러닝 엔진)·케라스(오픈소스 기반 딥러닝 프레임워크)가 필요해요. RC카에 카메라와 라즈베리파이를 조립해 하드웨어를 완성하고, 소프트웨어인 텐서플로와 케라스를 이용해 자율주행 기능을 구현하죠.

승겸 학생기자가 드라이버를 이용해 RC카 위에 조립된 투명 플레이트의 나사를 풀고 있다.

승겸 학생기자가 드라이버를 이용해 RC카 위에 조립된 투명 플레이트의 나사를 풀고 있다.

플레이트에 싱글 보드 컴퓨터인 라즈베리파이를 장착하는 모습.

플레이트에 싱글 보드 컴퓨터인 라즈베리파이를 장착하는 모습.

작은 부품으로 구성된 라즈베리파이에 선을 연결할 때는 매우 정교한 작업이 필요하다.

작은 부품으로 구성된 라즈베리파이에 선을 연결할 때는 매우 정교한 작업이 필요하다.

우선 하드웨어인 본체 만들기에 돌입했어요. RC카 위에 조립된 투명한 플레이트의 나사를 살살 풀어요. 완성 후 다시 조립해야 하니 잃어버리지 않도록 주의하세요. 육각형 나사인 서포터를 이용해 드라이버 보드를 고정해 줍니다. 드라이버 보드는 동키카가 작동할 때 프로그램이 요구하는 정보가 들어 있는 작은 판이에요. 생각보다 작은 나사 크기에 율아 학생기자가 당황했죠. 이리저리 대보더니 이내 조립에 성공했습니다. 이제 라즈베리파이를 연결해줄 차례인데요. 작은 부품으로 이루어진 만큼 조심스럽게 라즈베리파이의 양 끝을 잡고 서포터로 고정합니다. 마지막으로 카메라를 케이지에 달아 플레이트와 연결하면 완성이에요. 카메라의 선을 라즈베리파이에 연결하는 작업은 매우 정교하게 이루어져 이 대표의 도움을 받았죠.

각자 완성한 동키카를 들고 미니 트랙으로 향했습니다. 소프트웨어 설정, 즉 머신러닝을 완성하기 위해서였는데요. 트랙을 본 학생기자단은 흥분을 감추지 못했죠. “동키카의 핵심 부품은 라즈베리파이와 카메라예요. 두 부품이 주행 데이터를 기록하기 때문이죠. 160x120 크기의 화면이 초당 20프레임이나 찍힌답니다. 5분이면 6000프레임의 화상 데이터가 쌓이는 거죠. 이 화상 데이터와 앞·뒷바퀴 상태를 조합해 데이터를 서로 매치합니다. 수집한 데이터는 컴퓨터로 넘겨요. 머신러닝을 돌리기에는 라즈베리파이의 크기가 작거든요. 컴퓨터를 통해 주행 데이터를 학습하면 자율주행 인공지능이 완성되죠. 여러분이 오기 전에 제 동키카에 주행 데이터를 미리 학습시켜 놨어요. 함께 살펴보고 문제점을 찾아봅시다.”

학생기자단이 리모컨을 이용해 트랙 위 동키카를 조종하고 있다. 올바른 차선으로 달려야 양질의 주행 데이터를 저장할 수 있다.

학생기자단이 리모컨을 이용해 트랙 위 동키카를 조종하고 있다. 올바른 차선으로 달려야 양질의 주행 데이터를 저장할 수 있다.

이 대표의 동키카가 주행을 시작했어요. 트랙을 따라 쌩쌩 달리는가 싶더니 코너 부분에서 조금씩 주로를 벗어나기 시작했죠. “동키카는 머신러닝 중 지도 학습 방식으로 데이터를 학습한다고 했죠. 인간이 리모컨으로 동키카를 반복해서 조종하고, 그 주행 데이터를 머신러닝 하는 건데요. 사람이 하는 작업이다 보니 모든 경로를 완벽하게 똑같이 지나갈 수 없습니다. 첫 번째 바퀴에서 작은 원을 그리며 코너를 돌았다면 열 번째 바퀴에서는 조금 삐끗해 큰 원을 그릴 수도 있다는 거죠. 이런 오차를 줄이려면 우선 최대한 비슷한 경로로 동키카를 조종해야 하고요. 50회 조종하는 것보다 1000회 조종했을 때 인공지능은 더욱 똑똑해져요. 한 마디로 정확히, 여러 번 조종하면 되는 거죠. 여러분도 직접 동키카를 조종하고 주행 데이터를 입력해볼까요?”

RC카를 조종해본 적 있는 서율 학생기자가 첫 번째로 나섰어요. 직선 주로와 부드러운 곡선 트랙은 수월하게 지나갔지만, 급격하게 꺾이는 코너 부분에서 어려움을 겪었죠. 20바퀴가 넘어가자 처음보다 능숙하게 동키카를 다루기 시작했습니다. 두 번째로 나선 율아 학생기자는 미니카 조종이 처음이라며 걱정했어요. 역시나 코너가 난관이었죠. 동키카가 트랙을 벗어나 벽에 부딪혔어요. 율아 학생기자가 후진 버튼을 누르자 이 대표가 제지했어요. “후진은 되도록 하지 않는 게 좋아요. 뒤로 가는 행동까지 학습하기 때문이죠. 트랙을 달리던 중 갑자기 동키카가 후진하는 우스꽝스러운 일도 가끔 벌어진답니다. 조종을 잘못했을 때는 동키카를 들어 출발선에 놓고 다시 시작하면 돼요.” 율아 학생기자의 리모컨을 넘겨받은 승겸 학생기자가 빠른 속도로 주행을 시작했어요. 코너 부분에서 속도를 이기지 못하고 이탈하긴 했지만, 수준급의 조종 실력을 선보였죠.

세 사람의 주행 데이터를 모아 컴퓨터에서 머신러닝이 시작됐습니다. 텐서플로와 케라스를 활용했죠. 작은 데이터지만 화상 데이터의 특징을 찾아내고 특징에 따른 확률을 추출해 학습하기 때문에 꽤 많은 시간이 소요된다고 해요. 동키카가 똑똑해지는 동안 세 학생기자는 자율주행·인공지능과 관련해 궁금한 점을 질문했습니다.

이성훈 나우썸 대표.

이성훈 나우썸 대표.

승겸 동키카에 주입한 주행 데이터만 자율주행 가능한가요? 예를 들어 장애물의 위치나 종류를 바꾸면 경로가 다르다고 인식해 자율주행을 할 수 없나요?

네, 맞아요. 동키카의 경우 학습한 주행 데이터에 한해서만 자율주행할 수 있어요. 코스가 바뀌었다고 가정해 봅시다. 동키카는 이전에 학습한 코스대로 돌 거예요. 당연히 트랙을 이탈하게 되겠죠. 장애물의 위치를 바꿨을 때도 마찬가지고요. 바뀐 코스나 장애물의 위치에 맞춰 다시 머신러닝 해야 하죠.

승겸 주행 오류를 어떻게 줄일 수 있나요.

아까 말한 것처럼 동키카를 올바른 차선으로 주행하고, 데이터의 양을 늘려야겠죠. 또 다른 방법은요. 트랙이 아닌 다른 곳으로 달린 주행 데이터를 삭제하는 거예요. 나무가 좋은 거름과 물, 햇빛을 먹고 건강한 열매를 맺듯이 인공지능에도 양질의 데이터를 넣는 것이 굉장히 중요하거든요. 잘못된 데이터는 잘라내고 정확한 데이터만 남기면 동키카의 주행 오류도 줄어든답니다.

율아 동키카가 극복해야 할 문제점은 무엇인가요.

동키카는 단 하나의 센서만 가지고 있죠. 바로 카메라예요. 다른 센서를 더 추가한다면 안정적인 주행이 가능할 거예요. 동키카는 오픈소스를 기반으로 만들어졌어요. 누구나 자유롭게 의견을 공유할 수 있기 때문에 문제점도 금방 보완될 거라고 생각해요. ‘이렇게 해보니 더 잘 달린다’ ‘프로그램을 수정하니 오류가 사라졌다’ 등의 의견을 나눌 수 있는 거죠. 실제로 미국에서는 동키카에 카메라를 두 개 장착한다든지 라즈베리파이 대신 다른 메인보드를 쓰는 등 다양한 의견이 공유되고 있어요.  

율아 동키카에 카메라, 즉 센서가 많아질 경우 단점은 없나요.

카메라가 많아지면 당연히 부피가 커지고 필요한 부품도 늘어나겠죠. 배터리는 빨리 떨어질 거고요. 실제 자율주행차도 비슷한 고민을 안고 있어요. 무게나 날씨에 따라 배터리 사용 시간이 달라지거든요. 겨울에는 추운 날씨 때문에 배터리 용량이 절반 가까이 떨어지는 경우도 있다고 해요. 무조건 부품이 많고 크다고 좋은 게 아니라는 거죠.
주행 데이터를 입력하기 위해 트랙에 모인 세 사람이 각자 만든 동키카 앞에서 포즈를 취했다.

주행 데이터를 입력하기 위해 트랙에 모인 세 사람이 각자 만든 동키카 앞에서 포즈를 취했다.

서율 동키카처럼 동물 이름이 붙은 미니카가 또 있나요.

아직은 못 봤는데요. 여러분이 새로운 미니카를 개발해 이름을 붙여줘도 좋겠네요. 동키(Donkey)는 당나귀란 뜻이죠. 모든 연령대에서 친근하게 다가갈 수 있다는 의미로 당나귀가 연상되는 이름이 붙었어요. 가끔 오류가 나고 제멋대로 트랙을 벗어나는 게 주인 말을 잘 듣지 않는 당나귀와 닮기도 했고요.  

승겸 동키카의 메인보드에 아두이노보다 라즈베리파이가 적합한 이유는 무엇인가요.

아두이노를 알고 있다니 대단한데요. 아두이노는 다양한 센서나 부품을 연결할 수 있고 입출력·중앙처리장치가 포함된 기판이죠. 작은 컴퓨터라고 할 수 있어요. 하지만 라즈베리파이에 비해 연산 능력이 떨어집니다. 따라서 연산 능력이 충분한 라즈베리파이를 사용하죠. 라즈베리파이는 아두이노와 달리 키보드·마우스·모니터만 연결하면 PC가 될 수 있어요. 일반 컴퓨터와 더 유사하다는 게 특징이죠.

율아 자율주행 자동차가 흰색 자동차를 장애물로 인식하지 못해 사고가 났다고 들었어요. 왜 이런 문제점이 생겼나요.

모 회사의 자율주행 자동차가 흰색 트레일러를 피하지 못해 사망 사고가 났죠. 머신러닝 학습이 덜 됐기 때문이에요. 당시 커다란 흰색 차를 하늘로 인식했다고 해요. 인공지능이 완벽하지 않다는 증거죠.
직접 제작한 자율주행 미니카 '동키카(Donkey Car)'를 들고 웃어 보인 김율아·맹서율·김승겸(왼쪽부터) 학생기자. 동키카 레이싱 기념 티셔츠까지 갖춰 입었다.

직접 제작한 자율주행 미니카 '동키카(Donkey Car)'를 들고 웃어 보인 김율아·맹서율·김승겸(왼쪽부터) 학생기자. 동키카 레이싱 기념 티셔츠까지 갖춰 입었다.

서율 저희 부모님도 불안하다고 자율주행 기능을 이용하지 않아요.

아직은 완전 자율주행 기능에 대한 연구가 완벽하게 끝나지 않았어요. 현재 상용화된 자율주행 기능은 자동차가 운전자를 보조하는 수준에 불과하죠. 자동차 회사에서도 자율주행 기능을 이용할 때 핸들에서 손을 완전히 놓으면 안 된다고 경고합니다. 저도 가끔 고속도로에서 자율주행을 이용하는데요. ‘핸들에 손을 대라’는 안내 음성이 나오죠. 핸들을 잡지 않으면 자율주행 기능이 자동으로 정지해요. 편리하기 위해 사용하는 기능 때문에 큰 사고가 일어나서는 안 되겠죠. 자율주행 이용 시 주의사항을 숙지하고, 주변 상황을 주시해야 합니다.

승겸 자율주행 자동차를 머신러닝을 할 때 윤리적 기준은 어떻게 가르치나요.

인공지능에 윤리적 기술을 가르치는 건 참 어려워요. 그 기준을 정하는 것 자체도 힘든 일이죠. 두 갈래의 길이 있는데 왼쪽에는 사람 한 명이, 오른쪽에는 두 명이 있다고 가정할까요. 무조건 둘 중 한 길을 택해 가야 하고 차는 멈출 수 없어요. 둘 다 피하면 내가 죽습니다. 여러분은 어느 쪽으로 갈 건가요? 두 명보다 한 명이 다치는 게 낫다고 말할 수 있나요? 극단적인 예이긴 하지만 인간이 답하기에도 쉬운 문제가 아니죠. 새로운 기술이 탄생했을 때는 커다란 사회적 합의가 필요해요. 자동차 제조사, 인공지능 프로그램을 만든 개발자, 법을 만드는 국회의원, 자율주행 자동차의 운전자. 모두가 나눠서 책임질 영역을 정하는 것이 우선이겠죠.

이야기를 나누는 사이 동키카가 세 학생기자의 주행 데이터를 모두 학습했다는 알람이 떴어요. 떨리는 마음으로 동키카를 출발선에 놓자 트랙을 따라 힘차게 달리기 시작했죠. “생각보다 잘 달리는데요?” 이 대표의 말이 끝나기 무섭게 동키카가 벽으로 향했어요. 세 사람은 크게 웃음을 터뜨렸죠.

세 학생기자의 주행 데이터를 머신러닝한 동키카가 트랙을 자율주행하고 있다. 약간의 오류는 있었지만 비교적 무난하게 시범 자율주행을 완료했다.

세 학생기자의 주행 데이터를 머신러닝한 동키카가 트랙을 자율주행하고 있다. 약간의 오류는 있었지만 비교적 무난하게 시범 자율주행을 완료했다.

“아까 율아 학생기자의 동키카가 벽에 부딪혔었죠. 조종 오류까지 학습한 거예요. 완벽하지는 않지만 처음 한 것 치고는 꽤 괜찮은 인공지능 자율주행 동키카가 탄생했어요. 오늘 직접 자율주행 미니카를 만들어보니 어떤가요? 생각만큼 어렵지는 않다는 걸 알 수 있었죠. 작은 미니카를 직접 만들고 움직여보는 것만으로도 인공지능·머신러닝에 대해 배울 수 있답니다. 동키카를 통해 많은 사람이 인공지능·머신러닝에 쉽게 다가갈 수 있길 바라요. 잊지 마세요. 인공지능은 완벽하지 않고요. 별거 아니에요. 그리고 누구나 만들 수 있습니다.


학생기자단 취재 후기

이번 취재로 자율주행 동키카를 경험해봤어요. 제 손으로 만들고 주행을 해보는 데서 오는 짜릿함이 기대 이상이었죠. 머신러닝을 학습시키면서 양질의 데이터를 모으는 것이 얼마나 중요한지 알게 됐는데요. 인공지능도 좋은 선생님을 만나야 좋은 학생이 될 수 있다고 해요. 자율주행 기능이 적용된 대중교통이나 자동차를 타게 될 날이 머지않았다고 생각하니 기대감에 엉덩이가 들썩거려요.  김승겸(경기도 매송초 6) 학생기자

자율주행과 인공지능에 대해 자세히 알지 못했는데 이번 취재를 통해 온몸으로 배울 수 있었어요. 아직 자율주행 자동차에 보완해야 할 점이 많아서 연구 중이라는 이야기를 들었을 때 아주 아쉬웠어요. 앞으로 우리가 탈 교통수단이 어떻게 발전할지 기대됩니다. 대표님께서 앞으로 열릴 동키카 레이싱에도 초대해 주셨어요. 열심히 연습해서 레이싱에서도 직접 자율주행 미니카를 조종해보고 싶어요.  김율아(경기도 소하초 6) 학생기자

자율주행 기능은 유튜브로만 접했었는데 실제로 보니 더욱 놀라웠어요. 나만의 동키카도 만들고, 머신러닝을 통해 자율주행 경로를 학습시키기도 했죠. 실제로 동키카를 주행해보니 영상이나 글로 설명을 들을 때보다 인공지능이라는 개념이 잘 와 닿았어요. 어려운 줄만 알았는데 우리도 쉽게 구현할 수 있는 기술이라는 걸 알게 됐습니다. 머신러닝과 인공지능에 대해 더 공부해보고 싶어요.  맹서율(서울 중대초 5) 학생기자


ADVERTISEMENT
ADVERTISEMENT