◈ 이 책에서 다루는 내용 ◈
◆ 카메라 보정을 수행하는 방법
◆ OpenCV을 사용해 자율주행차량에서 차로 감지 기능이 작동하는 방식 숙지
◆ 비디오 게임 시뮬레이터에서 자율주행을 통한 행동 복제 탐구
◆ 라이다를 사용해 파악
◆ 자율 주행 차량의 컨트롤 구성 방법
◆ 객체 감지 및 시맨틱 분할을 사용해 차로, 자동차 및 보행자 위치 파악
◆ 시뮬레이터에서 주행하는 자율주행차를 제어하기 위한 PID 컨트롤러 작성
◈ 이 책의 대상 독자 ◈
이 책은 자율 주행차를 만드는 데 필요한 몇 가지 측면을 다루고 있으며, 프로그래밍 언어에 대한 기본 지식을 갖춘 프로그래머(가급적이면 파이썬)를 대상으로 한다. 딥러닝 경험이 필요하지 않지만, 책의 앞부분을 완전히 이해하려면 제안된 판독값 중 일부를 살펴보는 것이 좋다. 11장 ‘환경 매핑’과 관련된 소스코드는 C++에 있다.
◈ 이 책의 구성 ◈
1장, ‘OpenCV 기초와 카메라 보정’은 OpenCV 및 넘파이(NumPy)에 대해 소개한다. OpenCV를 사용해 영상과 비디오를 조작하는 방법과 보행자를 감지하는 방법을 설명한다.
2장, ‘신호에 대한 이해와 작업’에서는 직렬, 병렬, 디지털, 아날로그, 싱글 엔드 및 차동 등 다양한 유형의 신호를 설명한다. 또한 매우 중요한 프로토콜인 CAN, 이더넷, TCP, UDP도 다룬다.
3장, ‘차로 인식’에서는 OpenCV를 사용해 도로의 차선을 감지하는 데 필요한 모든 사항을 설명한다.
4장, ‘신경망을 통한 딥러닝’은 네트워크 신경망에 대한 실용적인 소개로, 신경망을 쓰는 방법을 빠르게 가르치고자 고안됐다.
5장, ‘딥러닝 워크플로’는 4장, ‘신경망을 통한 딥러닝’의 이론을 보완한다. 데이터셋을 확보하거나 생성하고, 교육, 검증, 테스트 세트로 분할하고, 데이터 증강, 분류기에 사용되는 주요 계층 그리고 학습, 추론, 재학습 방법을 포함한 일반적인 워크플로의 단계를 보여 줄 것이다.
6장, ‘신경망 개선하기’에서는 배치 정규화, 조기 중지, 데이터 확대, 드롭아웃(dropout)을 사용해 중립 네트워크를 최적화하고 파라미터를 줄이는 방법과 정확성을 높이는 방법을 설명한다.
7장, ‘보행자 및 신호등 감지’는 당신을 CARLA에 소개한다. 교통 신호등의 데이터셋을 만드는 데 사용할 자율 주행 자동차 시뮬레이터 SSD라는 사전 학습된 신경망으로 보행자, 자동차, 신호등을 탐지하고, 전송 학습이라는 강력한 기술을 활용해 신호등을 색깔에 따라 분류하는 신경망을 학습할 예정이다.
8장, ‘행동 복제’에서는 CARLA를 구동하는 신경망을 학습시키는 방법을 설명한다. 또한 동작 복제, CARLA를 사용해 구동 데이터셋을 구축하는 방법, 이 작업에 적합한 네트워크를 생성하는 방법 및 학습 방법을 설명한다.
9장, ‘시맨틱 분할’은 딥러닝에 대한 최종적이고 가장 선구적인 장으로, 시맨틱 분할이 무엇인지 설명한다. DenseNet이라고 불리는 매우 흥미로운 아키텍처를 설명하고, 그것을 시맨틱 분할에 어떻게 적응시키는지 보여줄 것이다.
10장, ‘조향, 스로틀, 브레이크 제어’는 자율 주행차를 제어하는 것에 대해 설명한다. PID 컨트롤러에 초점을 맞추고 MPC 컨트롤러의 기본 사항을 다루는 컨트롤러가 무엇인지 설명한다.
11장, ‘주변 환경 매핑하기’에서는 지도에 대해 논하고 로컬라이제이션, 라이다 등 오픈소스 매핑 도구를 설명한다. 동시 로컬라이제이션 및 매핑(SLAM, Simultaneous Localization And Mapping)이 무엇인지, 아우스터 라이다(Ouster lidar) 및 구글 카르토그래퍼(Google Cartographer)를 사용해 SLAM을 구현하는 방법을 배운다.
◈ 옮긴이의 말 ◈
인공지능 기술의 눈부신 발전과 더불어 모든 자동차 제조사가 자율주행 기술 개발에 열을 올리고 있다. 덕분에 자율주행 기술은 현재도 매우 빠른 속도로 성장하고 있으며, 기술적 완성도와 안정성 역시 하루가 다르게 개선되고 있는 추세다.
이 책에서는 자율주행 차량의 완성을 위한 기술을 구현 관점에서 상세히 다루고 있다. 간단한 개념 설명부터 실제 파이썬 및 각종 라이브러리를 활용한 코딩에 이르기까지 현업 개발자를 목표로 공부하는 사람들에게 입문서와 같은 책이 될 것이다. 이 책을 통해 자율주행 기술 분야에 입문한 수많은 공학도들이 미래 대한민국의 자율주행 산업을 선도할 수 있기를 희망한다.
김은도
새롭게 출시되는 자동차에서는 자율주행 기술이 빠진 모델을 찾아보기 힘들다. 이는 자율주행차 관련 기술은 우리 삶의 일부가 되고 있음을 의미한다. 이 책은 영상 처리와 신호 처리 기법, 네트워크 프로토콜 등 기본적인 기술 소개부터 최근 화두가 되고 있는 딥러닝을 통한 성능 향상 기법까지 자율주행차를 구성하는 다양한 기술 전반을 실습 예제와 함께 다루고 있다. 자율주행차에 이제 막 관심을 갖기 시작한 학생과 현업에 종사하는 모든 독자들에게 하나의 안내서가 될 이 책을 통해 자율주행 기술이 더 안전한 방향으로 발전되길 희망한다.
신지호
이 책은 컴퓨터 비전과 딥러닝이 자율주행차량에 어떻게 적용되는지에 대한 심도 있는 탐구내용을 담고 있다. 체계적이고 자세한 설명, 직접 시도해 볼 수 있는 실제 코드를 통해 자율주행차를 개발하는 과정을 경험할 수 있다. 차량에 장착된 카메라의 비디오 스트림을 분석하기 위해 OpenCV, TensorFlow, Keras를 사용하는 법을 배우고, 라이다로 장애물과 위치를 식별하는 방법을 습득한다. 나아가 차선 감지, 보행자 인식, 세그멘테이션 등 자율주행차향의 핵심 도전 과제를 다루게 된다. 이 책은 이론적인 배경뿐만 아니라 실질적인 경험을 제공해 자율주행차량 개발에 필요한 역량을 기르는 데 도움을 줄 것이다.
박희웅
현대 자율주행차량의 발전에는 컴퓨터 비전과 인공지능 기술이 깊이 관여하고 있다. 이러한 기술을 이해하고 응용하는 것은 자율주행 산업에 입문하는 이들에게는 매우 중요한 역량이다. 이 책은 그러한 역량을 키우기 위한 실용 가이드로서, 시각 인식 기술을 기반으로 자율주행차량의 성능을 향상시키는 방법을 소개하고 있다. 독자들은 이 책을 통해 자율주행차량의 시각 인식 및 제어 기술에 대한 깊이 있는 이해를 얻을 수 있으며, 오픈소스를 활용해 실제 문제를 해결하는 능력을 키울 수 있다. 이 책이 자율주행 산업에 종사하는 모든 이들에게 유용한 지식과 통찰력을 제공하길 바란다.
이승열
레이다는 자율주행차의 핵심 센서 중 하나로 (주)레이다앤스페이스의 자율주행차에 대한 관심은 2015년부터 시작됐다. 비록 이 책에서는 영상 중심으로 서술돼 있지만 이는 인공지능의 적용분야로서 영상이 가장 적합한 이유이며, 이 책을 통해 자율주행차 산업이 앞으로도 더욱 활성화되기를 다른 옮긴이들과 함께 한마음 한뜻으로 바란다.
박세진