Top

자율주행차량의 비전과 행동

  • 원서명Hands-On Vision and Behavior for Self-Driving Cars: Explore visual perception, lane detection, and object classification with Python 3 and OpenCV 4 (ISBN 9781800203587)
  • 지은이루카 벤투리(Luca Venturi), 크리쉬토프 코르다(Krishtof Korda)
  • 옮긴이김은도, 신지호, 박희웅, 이승열, 박세진
  • ISBN : 9791161757513
  • 40,000원 (eBook 32,000원)
  • 2023년 04월 28일 펴냄
  • 페이퍼백 | 452쪽 | 188*235mm
  • 시리즈 : 임베디드 시스템

책 소개

2023년 세종도서 학술부문 선정도서

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/self-driving-cars

요약

"누구나 손쉽게 자율주행차 AI를 구성해보자."라는 이 책의 모토는 우리의 눈길을 끌었다.
AI가 이만큼 많은 사람의 입에 오르내리는 시대는 드물다. 하지만 AI를 실질적으로 사용하기 위해 접근하면 갑자기 저 먼 안드로메다 쯤의 이야기로 들릴 사람들이 많을 것이다. 이 책은 그런 거리감을 수천 광년 단위로 줄여주는 멋진 책이다. 이 책에서 하라는 것만 따라하면 당신이 정치외교학과를 졸업했더라도 나도 왕년에 AI 좀 만져봤다는 생색을 낼 수 있을 것이다. 왜냐하면 당신이 짠 간단한 자율주행차 AI 코드가 모니터에 떠있을 것이기 때문이다.
이 책은 총 3부로 이루어져 있다. 1부에서는 센서의 특성에 대한 이해와 구성하는 코드를 간단히 소개한다. 2부에서는 본격적으로 신경망을 이용한 딥러닝에 대한 내용이 담겨 있으며, 마지막으로 3부에서는 당신의 자율주행차가 달릴 맵을 구성해 달리게 해볼 것이다.

이 책에서 다루는 내용

◆ 카메라 보정을 수행하는 방법
◆ 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을 구현하는 방법을 배운다.

상세 이미지