1장. OpenCV 기초와 카메라 보정
__기술 요구 사항
__OpenCV와 넘파이소개
____OpenCV와 넘파이
____이미지 크기
____회색조 이미지
____RGB 이미지
__이미지 파일 다루기
__비디오 파일 다루기
____웹캠 다루기
__이미지 파일 작업하기
____이미지 뒤집기
____이미지 블러
____이미지 명암, 밝기, 감마 값 바꾸기
____사각형 그리기와 텍스트 입력하기
__HOG를 이용한 보행자 감지
____슬라이딩 윈도우
____OpenCV와 함께 HOG 사용하기
____카메라 소개
____카메라 용어
____카메라 구성 요소
____카메라 선택을 위한 고려 사항
____카메라의 장점 및 단점
__OpenCV를 통한 카메라 보정
____왜곡 탐지
____보정
__요약
__질문
2장. 신호에 대한 이해와 작업
__기술 요구 사항
__신호 유형 이해하기
__아날로그 VS 디지털
__시리얼 VS 병렬
____범용 비동기 수신 및 전송 방식
____차동 vs 단일 종단
____I2C
____SPI
__프레임 기반 시리얼 프로토콜
____CAN 통신 이해하기
____이더넷과 인터넷 프로토콜
____UDP 이해하기
____TCP 이해하기
__요약
__질문
__더 읽어 보기
____오픈소스 프로토콜 도구
3장. 차로 인식
__기술 요구 사항
__임계치 다루기
____각기 다른 색상 공간에서의 임계치 다루기
____RGB/BGR
____HLS
____HSV
____LAB
____YCbCr
____우리의 선택
__원근 수정
__경계 인식
____임곗값 보간법
____임곗값 결합
__히스토그램을 활용한 차로 찾기
__슬라이딩 윈도우 알고리듬
____초기화
____슬라이딩 윈도우의 좌표
____다항식을 이용한 피팅 기법
__비디오를 활용한 차로 인식 성능 향상
____부분 히스토그램
____롤링 평균
__요약
__질
이 책에서 다루는 내용
- 카메라 보정을 수행하는 방법
- OpenCV을 사용해 자율주행차량에서 차로 감지 기능이 작동하는 방식 숙지
- 비디오 게임 시뮬레이터에서 자율주행을 통한 행동 복제 탐구
- 라이다를 사용해 파악
- 자율 주행 차량의 컨트롤 구성 방법
- 객체 감지 및 시맨틱 분할을 사용해 차로, 자동차 및 보행자 위치 파악
- 시뮬레이터에서 주행하는 자율주행차를 제어하기 위한 PID 컨트롤러 작성
이 책의 대상 독자
이 책은 자율 주행차를 만드는 데 필요한 몇 가지 측면을 다루고 있으며, 프로그래밍 언어에 대한 기본 지식을 갖춘 프로그래머(가급적이면 파이썬를 대상으로 한다. 딥러닝 경험이 필요하지 않지만, 책의 앞부분을 완전히 이해하려면 제안된 판독값 중 일부를 살펴보는 것이 좋다. 11장 ‘환경 매핑’과 관련된 소스코드는 C++에 있다.
이 책의 구성
1장, ‘OpenCV 기초와 카메라 보정’은 OpenCV 및 넘파이(NumPy에 대해 소개한다. OpenCV를 사용해 영상과 비디오를 조작하는 방법과 보행자를 감지하는 방법을 설명한다.
2장, ‘신호에 대한 이해와 작업’에서는 직렬, 병렬, 디지털, 아날로그, 싱글 엔드 및 차동 등 다양한 유형의 신호를 설명한다. 또한 매우 중요한 프로토콜인 CAN, 이더넷, TCP, UDP도 다룬다.
3장, ‘차로 인식’에서는 OpenCV를 사용해 도로의 차선을 감지하는 데 필요한 모든 사항을 설명한다.
4장, ‘신경망을 통한 딥러닝’은 네트워크 신경망에 대한 실용적인 소개로, 신경망을 쓰는 방법을 빠르게 가르치고자 고안됐다.
5장, ‘딥러닝 워크플로’는 4장, ‘신경망을 통한 딥러닝’의 이론을 보완한다. 데이터셋을 확보하거나 생성하고, 교육, 검증, 테스트 세트로 분할하고, 데이터 증강, 분류기에 사용되는 주요 계층 그리고 학습, 추론, 재학습 방법을 포함한 일반적인 워크플로의 단계를 보여 줄 것이다.
6장, ‘신경망 개선하기’에서는 배치 정규화, 조기 중지, 데이터