자율 차량과 인공지능(AI)
  • 2016-06-03
  • 김영학 기자, yhk@elec4.co.kr
  • 글|박 재 호 CTO, 엑셈



운전자의 개입 없이 운행이 가능한 인공지능 기반의 자율주행 차량을 중심으로 현재까지 기술발전 상황을 간단히 정리해본다

최근 들어 인공지능이 다시 부각되는 이유는 무엇일까? 빅데이터와 클라우드 기술이 발전함에 따라 과거에 비해 수집된 자료량이 엄청나게 늘어났을 뿐 아니라, 컴퓨터 자체의 성능도 날이 갈수록 좋아지고 있기 때문에 방대한 자료 처리에 필요한 계산량을 뒷받침하고 있다는 점이 주요 요인으로 볼 수 있다. 또한 전통적인 산업에 IT 기술이 접목되면서 복잡한 작업을 처리할 수 있는 소프트웨어 기술 향상도 또 다른 요인으로 볼 수 있다.

융복합 기술의 발전은 생산 자체를 고도화할 뿐만 아니라 제품에도 부가가치를 더하는 촉매로 작용하고 있다. 인공지능이야 말로 차세대 산업의 주축이 될 것으로 기대하는 사람도 많다. 그렇다면 차량 분야에서 인공지능은 어떤 영향을 미치고 있을까? 

스마트폰 기반의 교통 서비스를 제공하는 우버(UBER)의 예를 들면, 자사 서비스에 인공지능 개념을 적극적으로 활용해 차량이 필요한 수요자와 차량을 운행하는 공급자(개인/법인) 사이에 원활한 연결을 제공함으로써 자원의 활용을 극대화하고 있다. 여기서 한 걸음 더 나가 우버는 운전기사의 인건비를 줄이고 차량 가동률을 높이는 동시에, 시간 구애를 받지 않는 진정한 24 x 7 x 365 서비스를 목표로 자율주행 차량 기술에 집중하고 있다. 차량 소유 시대의 종말에 대비한 자동차 업계의 관심까지 합쳐지면서 자율주행 차량에 대한 연구는 더 이상 먼 미래의 이야기가 아니다.

구글 같은 회사는 플랫폼을 확장해 가는 관점에서 차량에 주목하고 있다. 차량은 기존 웹(검색 엔진)과 스마트 폰(안드로이드)에 이어, 사용자의 데이터를 축적하고 이를 활용하는 새로운 플랫폼으로 떠오르고 있으며, 그 중에서도 가장 강력한 애플리케이션이 바로 자율주행 기능으로 보면 틀림없다. 자율주행 차량에 장착된 센서에서 수집된 각종 정보를 IoT를 지원하는 클라우드 컴퓨팅 환경으로 보내고, 빅데이터 기술을 사용해 운행 패턴과 도로 상황을 분석한 다음에 해당 정보를 내려 받아 안전한 운전을 가능하게 만든다.

그렇다면 사람들이 자율주행 차량에 관심을 기울이는 이유는 무엇일까? 다음과 같은 사안을 생각해보자.

안전성: 사람 운전자와는 달리 과속 운전, 난폭 운전, 졸음, 음주, 스마트폰 사용에 영향을 받지 않는다. 교통법규를 정확하게 지키기 때문에 자율주행 차량만 운행될 경우 사고 가능성이 극도로 낮아진다.
효율성: 네트워크에 항상 물려있기 때문에 도로 정보를 활용해 정체 구간을 회피하며, 주변 차량과 협력해 차간 거리를 유지함으로써 도로의 처리량을 극대화한다. 또한 군집 주행 기술을 활용해 대량의 물류를 신속하게 운송할 수 있다.
편의성: 운전자의 피로를 줄이며, 차량 이동 중에도 휴식, 여가 활용, 업무가 가능해진다. 또한 정상적인 운전이 힘든 노약자와 장애인을 배려할 수 있다. 차량 공유 서비스와 결합할 경우 차량의 대수를 줄일 수 있으므로 주차난과 같은 기반 시설 부족 현상에 따른 시간 낭비도 완화할 수 있다.

이렇듯 장점이 많은 자율주행 차량을 지탱하는 기술은 무엇일까? 하드웨어(센서, CPU/GPU)와 소프트웨어(인공지능) 관점에서 바라볼 필요가 있다.

자율주행 차량의 눈과 귀: 센서

사람은 시각과 청각을 활용해 운전 중에 도로 상황을 파악하는 반면, 자율주행 차량은 다양한 센서에 의존해 경로를 결정하고 사고를 회피해야 한다. 쉽게 말해 센서는 자율주행 차량의 눈과 귀에 해당한다. 자율주행 차량은 크게 다음과 같은 센서를 탑재한다.

레이더: 무선 신호를 방출한 다음 부딪혀서 돌아오는 신호를 찾는 원리로 동작하는 가장 범용적으로 사용되는 센서다. 단거리, 중거리, 장거리 특성을 모두 갖추고 날씨에 무관하게 동작한다. 레이더는 움직이는 물체가 산란된 파형의 주파수를 바꾼다는 도플러 효과를 이용하므로 정지된 물체를 추적할 수 없으며, 금속이 아닌 다른 재질의 물체를 감지하기 힘들다는 단점이 존재한다.

라이다(LIDAR): 레이저를 발사해 감지되는 반향을 센서가 잡아내는 원격 감지 기술을 일컫는다. 이런 정보는 물체에 대한 범위 또는 거리를 계산하는 데 쓰인다. 언뜻 보면, 레이더와 비슷하지만 별개의 레이저 파동에 기반을 한다. 라이다는 레이더와 달리 구름, 비, 눈, 짙은 연무를 통과할 수 없다는 단점이 존재한다. 최근 자율주행 차량에서 많이 사용 중인 벨로다인 HDL(High-Definition Lidar)는 64개의 회전하는 레이저를 사용해 초당 220만 개의 지점을 수집하며, 이런 정보를 토대로 주변의 가상 모델을 생성한다.

레이더 대신 라이다를 사용하는 한 가지 이유는 레이저의 고 에너지, 단파장 레이저가 비금속 표면(예: 인간과 나무 전신주)에 더 잘 반사되기 때문이다. 기존 시스템과 달리 벨로다인 HDL은 조밀하게 레이저를 발사하므로 눈이나 비가 내리는 환경에서도 빈틈을 찾아 주변 환경을 파악할 수 있다.

(일반/3D) 카메라: 특정 이미지를 개별 픽셀로 인식해 숫자로 변환하는 장비로 물체에서 반사되는 빛을 광학 센서가 잡는 원리로 동작한다. 일반 카메라는 깊이를 인식하지 못하는 반면에 3D 카메라는 렌즈를 두 개 사용하거나 다른 센서의 도움을 받아 깊이를 인식할 수 있다. 카메라는 다른 센서에 비해 높은 해상도를 자랑하므로 정확한 배경/물체 인식이 가능하다는 장점이 있는 반면, 빛의 반사를 이용하므로 주변 환경에 크게 영향을 받는 단점도 있다.

초음파: 음파(50 kHz 주변 초음파)를 보내서 되돌아오는 반향을 듣는 장비로 음파가 미치는 주변 지역에 위치하는 물체를 감지할 수 있다. 잡음과 반사파의 반향으로 인해 아주 정밀하지는 않지만 보조적인 수단으로 활용이 가능하다. 자율주행 차량이 아닌 일반 차량에는 주로 후방 감지 센서와 측면 감지 센서로 사용되고 있으며, 자율주행 차량의 경우 저속에서 벌어지는 근접 이벤트(예: 병렬 주차와 저속 충돌 회피)를 감지하기 위해 사용된다.

GPS: 중궤도를 도는 24개 이상의 인공위성에서 발신하는 마이크로파를 수신기가 수신해 위치 벡터를 계산하는 방식으로 동작한다. 3개 이상의 GPS 위성이 송신한 신호를 수신해 위성과 수신기의 위치를 결정한다. GPS를 사용할 경우 현재 이동 중인 자율주행 차량의 정확한 위치를 구한 다음에, 미리 구축된 정밀한 도로 지도 데이터베이스를 토대로 정적인 주변 상황을 파악할 수 있다. 기상 상태나 주변 장애물에 영향을 받지 않는 장점이 있다. 하지만 터널, 교량 아래, 지하도에 들어설 경우 GPS를 사용할 수 없는 상황이 발생하기 때문에 100% GPS를 신뢰할 수 없다는 단점이 있다.

적외선 LED와 광센서: 비탐지/와이퍼 동작과 같은 분야에 사용되며, 충돌 회피를 위해 차량 외부에 장착되어 상향등의 조명 범위를 벗어난 물체를 감지하기 위해 사용되기도 한다. 또한 에어백의 전개 속력을 조절하기 위해 탑승자의 위치를 파악하거나, 운전자의 눈꺼풀을 감지해 졸음운전을 막기 위해 사용될 수도 있다.


자율주행 차량의 두뇌: CPU와 범용 GPU

사람의 감각 기관에서 들어오는 전기적인 신호는 두뇌에서 처리한다. 마찬가지로 차량의 센서에서 들어오는 각종 정보 역시 CPU와 범용 GPU(GPGPU)에서 처리하게 된다. CPU는 소프트웨어의 실행이 이뤄지는 핵심이며 외부에서 정보를 입력받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하고, 연산하고, 외부로 출력한다.

각종 전자 부품을 단일 칩에 내장한 마이크로프로세서 형태로 만들어지면서부터 CPU는 복잡한 범용 컴퓨터는 물론이고 가전제품이나 차량에 탑재되기 시작했다. 또한 중앙처리 장치의 한 블록인 코어를 여러 개 탑재한 칩이 등장하면서 단일 코어의 성능 한계(클록 주파수의 한계, 슈퍼 스칼라 아키텍처의 한계)를 극복해가는 추세다.

기존 임베디드 부문에서는 신호처리를 빠르게 하기 위해 특화된 칩인 DSP가 많이 사용되었는데, 실시간으로 아날로그 신호를 표현하는 복잡한 수치 데이터를 빠르게 처리하기 위한 기능이 탑재돼 있었다. 하지만 DSP는 1차원(오디오)이나 2차원(이미지) 데이터는 어느 정도 실시간으로 처리할 수 있었지만, 자율주행 차량에서 요구하는 복잡한 2차원(높은 해상도나 복잡한 영상 인식)이나 3차원(레이더) 데이터는 처리하기가 곤란하다는 문제가 존재한다. 따라서 CPU와 DSP의 문제점을 해결하기 위해 뭔가 해법이 필요하다.

게임을 많이 하는 독자라면 GPU에 대해 이미 알고 있을 것이다. GPU는 CPU에서 그래픽과 관련된 각종 연산 기능을 가져와서 전용으로 처리하게 만든 칩이며, 초기에는 2차원 가속(비트맵 복사와 이동) 기능을 중심으로 화면 출력을 빠르게 하는 쪽에 집중했지만, 점차 3차원 가속을 위한 각종 수치 연산 기능을 강화하는 쪽으로 발전하고 있다.

이를 위해 병렬처리용으로 특별히 설계된 수 천 개에 이르는 소형 코어를 탑재하고 있으며 계산이 필요한 작업을 CPU로부터 가져와서 빠르게 처리한다. GPU는 앞서 언급한 CPU와 DSP의 제약을 극복하기 위한 훌륭한 대안으로 자리잡고 있다.

현대적인 GPU는 기본적으로 SIMD(Single Instruction Multiple Data) 계산 방식에 기반을 한다. 이런 유형의 GPU를 GPGPU라 부른다. GPGPU는 SIMD 계산 유닛으로 여러 독립적인 데이터에 대한 병행 연산을 수행할 능력을 갖추고 있다. 현대적인 GPGPU는 수천 개에 이르는 병행 스레드를 띄우고 모든 스레드를 배치 방식으로 처리한다. 이런 특성으로 인해, GPGPU는 복잡한 대규모 DSP 문제를 여러 개의 작은 수치 문제로 쪼개고 한 번에 처리한다. 따라서 전반적인 시간 복잡도를 엄청나게 줄일 수 있다.

GPGPU를 사용하는 주요 분야 중에는 자율주행 차량의 제어를 위한 3D 이미지 인식이 있다.


인공지능: 기계학습과 딥러닝

자율주행 차량에서 인공지능 기술을 바로 논하기 앞서 우선 인공지능을 응용하는 기능부터 짚고 넘어갈 필요가 있다. 앞서 GPGPU를 사용하는 주요 분야를 설명할 때 자율주행 차량 부문에서 차량 제어를 위한 3D 이미지 인식을 언급했다.

각종 차량 경보 기능을 구현하기 위해 일반적인 영상처리 알고리즘을 사용할 수도 있지만, 최근에는 맥락에 무관하고 정확도를 높이기 위한 방안으로 인공지능을 도입하는 추세다. 즉 알고리즘을 먼저 만들고 데이터를 넣어 가공하는 대신 데이터를 넣어 알고리즘을 만들어내는 방법이다. 이렇게 되면 매번 상황에 맞춰 알고리즘을 수정하지 않고 데이터를 추가로 넣어 학습하는 방법으로 문제를 해결할 수 있다. 즉 기계 학습을 도입해 수많은 데이터를 토대로 정교한 패턴 인식과 분류 작업을 수행할 수 있게 되었다.

요즘 알파고 때문에 유명해진 딥러닝에 대해 살펴보자. 딥러닝은 국소 최저치라는 문제를 해결하기 위해 데이터의 전처리 과정을 도입해 비지도 학습법으로 각 층을 손질한 다음에, 이렇게 처리한 데이터를 여러 층으로 쌓아 올려 최적화를 수행한다. 딥러닝의 성공 요인을 크게 다섯 가지로 정리하면 다음과 같다.

비지도 학습방법: 사람이 데이터에 의미를 부여하지 않고 컴퓨터가 스스로 군집(cluster)를 찾게 만든다. 이 과정에서 잡음을 줄이고 특이한 자료를 필터링하는 효과를 얻는다.

CNN(Convolutional Neural Network)의 진화: 기계 학습은 데이터에서 직접 지식을 추출하도록 학습할 수도 있지만, 보통 중간 단계인 특징(feature) 추출을 거쳐 데이터에서 특징을 찍고 이를 사용해 지식을 추출하게 학습한다. 사물을 인식하기 위해 2차원 이미지의 픽셀 값에서 먼저 특징적인 선이나 색 분포를 추출한 다음에 이를 기반으로 실제 사물을 분류하는 방법을 사용한다. 기계 학습의 성능은 얼마나 좋은 특징을 추출하느냐에 달려 있다. 딥 러닝에서는 사람의 개입 없이 특징조차도 기계 학습으로 뽑기 때문에 특징 추출과 학습 양쪽을 모두 기계가 처리할 수 있게 되었다.

RNN(Recurrent Neural Network)의 진화: 시간의 흐름에 따라 변화하는 시계열 데이터를 처리하기 위해 등장한 RNN은 매 순간마다 인공신경망 구조를 쌓아올리는 방식을 사용한다. 과거 RNN은 인공신경망이 너무 깊기 때문에 오래 전 데이터를 잊어먹는 현상으로 인해 학습이 어려운 문제가 있었는데, LSTM(Long-Short Term Memory)라는 게이트 유닛을 노드마다 배치하는 방법으로 이런 문제를 극복했다.

GPUGPU의 등장과 학습 방법의 진보: GPGPU로 대표되는 병행 컴퓨팅에 필요한 기반이 일반화됨에 따라 누구나 복잡한 계산이 가능해졌다. 또한 빅데이터 시대가 도래하면서 천만 장의 고해상도 사진(ImageNet)과 엄청나게 많은 동영상 클립(유튜브)을 확보할 수 있게 되었다. 또한 인공신경망의 알고리즘적인 측면에서 비선형 변환에 사용되는 ReLU(Rectified Linear Unit)의 개발도 한몫 거들었다.

프레임워크의 오픈소스화: 딥러닝을 가능하게 만들어주는 프레임워크가 오픈소스로 공개됨에 따라, 프로그래머들이 마음만 먹으면 GPU를 장착한 PC에서 쉽게 프로그램을 만들고 테스트할 수 있게 되었다.

결론

지금까지 자율주행 차량에 대한 기술적인 내용과 인공지능에 대한 사항을 간략하게 살펴봤다. 이 글에서는 주로 이미지/동영상에 대해 집중했지만, 기계 학습은 데이터의 유형에 중립적이므로 카메라뿐만 아니라 다른 센서에서 들어오는 데이터 역시 충분히 처리가 가능하다. 실제로 자율주행 차량 업계의 선도주자들은 카메라는 물론이고 라이다에서 얻는 정보를 빅데이터 기술로 처리해 차량의 주변 환경을 더 정확하게 파악하는 데 총력을 기울이고 있다.

차량과 보행자의 안전을 보장하고 정확하고 빠르게 목적지에 도달하기 위해 사용되는 다양한 기술이 하드웨어뿐만 아니라 소프트웨어에도 크게 의존하고 있다는 사실을 기억하면, 선도적인 기업이 엄청난 자본을 투자해 데이터를 확보하고, 확보한 데이터를 사용해 의미 있는 분석 작업을 수행하는 이유를 알게 될 것이다. 

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>


#자동차   #자율주행   #인공지능  

  • 100자평 쓰기
  • 로그인

세미나/교육/전시
TOP