OpenCV 4 마스터 3/e [비전과 이미지 처리 앱을 만들기 위한]
- 원서명Mastering OpenCV 4, 3rd Edition: A comprehensive guide to building computer vision and image processing applications with C++ (ISBN 9781789533576)
- 지은이로이 실크롯(Roy Shilkrot), 데이비드 밀란 에스크리바(David Millán Escrivá)
- 옮긴이테크 트랜스 그룹 T4
- ISBN : 9791161754345
- 30,000원
- 2020년 07월 16일 펴냄
- 페이퍼백 | 348쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
책 소개
요약
OpenCV는 컴퓨터 비전, 머신러닝, 이미지 처리를 위한 기본적인 크로스 플랫폼 라이브러리다. 이 책은 컴퓨터 비전 엔지니어가 OpenCV를 마스터할 수 있는 첫걸음을 내딛도록 도와준다. 수학 공식은 최소한으로 유지하면서 아이디어 이해부터 실행 코드 작성까지 완벽한 프로젝트를 제공하고, 얼굴 인식, 랜드마크 감지 및 포즈 추정, 딥 컨볼루션망을 통한 숫자 인식과 같은 컴퓨터 비전의 최신 인기 주제를 다룬다.
완벽한 컴퓨터 비전 프로젝트를 사용해 API 기능을 익히고 설계를 어떻게 할지 파악할 수 있다. 또한 컴퓨터 비전의 기본 내용을 넘어 복잡한 이미지 처리 프로젝트를 위한 솔루션을 구현할 수 있도록 돕는다.
이 책에서 다루는 내용
■ OpenCV 코드 샘플 작업으로 실제 컴퓨터 비전 구축
■ OpenCV 프로젝트 엔지니어링 및 유지 관리 모범 사례
■ 복잡한 컴퓨터 비전 작업을 위한 알고리즘 설계 접근 방법
■ OpenCV의 최신 API(v4.0.0)
■ 3D 장면 재구성 및 SfM
■ ArUco 모듈을 사용한 카메라 보정 및 오버레이 AR
이 책의 대상 독자
OpenCV를 시작하려는 초보 컴퓨터 비전 엔지니어를 대상으로 하며, 대부분 C++ 환경에서 기존의 기초 지식을 주로 학습하는 것과는 달리 실습 방식을 이용한다. 현재의 일반적인 컴퓨터 비전 작업과 관련해 OpenCV API의 구체적인 사용 사례 예제를 제공하고 ‘복사-붙여넣기-실행’ 방법을 권장하므로 기초 수학 내용은 최소한으로만 유지한다.
이 책의 구성
필요한 내용을 다루는 장을 바로 읽거나 각 장의 코드, 설명을 살펴봄으로써 기배포된 모듈들을 포함한 OpenCV의 많은 기능을 어려움 없이 사용할 수 있다. 또한 웹, iOS, 안드로이드 장치와 파이썬 주피터 노트북Python Jupyter Notebook에서의 OpenCV 사용 방법을 제공한다. 각 장은 서로 다른 주제를 다루고 솔루션과 이론적 내용을 제공한다. 문제를 해결할 수 있도록 빌드하고 실행할 수 있는 전체 코드 예제를 제공한다.
1장, ‘라즈베리 파이의 카툰화와 피부색 변경’에서는 데스크톱과 라즈베리 파이(Raspberry Pi)같은 소형 임베디드 시스템에서 이미지 처리 필터를 만드는 방법을 보여준다.
2장, ‘SfM 모듈을 사용한 모션 구조 탐색’에서는 한 장면을 희소 포인트 클라우드(카메라 포즈 포함)로 재구성하기 위해 SfM 모듈을 사용하는 방법과 멀티 뷰 스테레오를 사용해 밀집 포인트 클라우드를 얻는 방법을 보여준다.
3장, ‘face 모듈을 사용한 얼굴 랜드마크와 포즈 분석’에서는 face 모듈을 사용한 얼굴 랜드마크(얼굴 마크라고도 함) 검출 프로세스를 설명한다.
4장, ‘딥 컨볼루션 네트워크를 사용한 번호판 인식’에서는 이미지 세그멘테이션, 특징 추출, 패턴 인식 기본 사항, 두 가지 주요 패턴 인식 알고리즘인 SVM과 DNN을 소개한다.
5장, ‘DNN 모듈을 사용한 얼굴 검출 및 인식’에서는 이미지에서 얼굴을 검출하는 다양한 기법을 보여준다. 하르(haar) 특징이 있는 캐스케이드 분류기를 사용하는 방법보다는 일반적인 알고리즘부터 딥러닝을 사용하는 최신 기법까지 모두 아우르는 다양한 방법을 제공한다.
6장, ‘OpenCV.js를 사용한 웹 컴퓨터 비전 소개’에서는 OpenCV의 자바스크립트용 컴파일 버전인 OpenCV.js를 사용해 웹용 컴퓨터 비전 알고리즘을 개발하는 새로운 방법을 보여준다.
7장, ‘ArUco 모듈을 사용한 안드로이드 카메라 보정과 AR’에서는 OpenCV의 ArUco 모듈, 안드로이드의 Camera2 API, JMonkeyEngine 3D 게임 엔진을 사용해 안드로이드 생태계 시스템에서 증강현실(AR) 애플리케이션을 구현하는 방법을 보여준다.
8장, ‘스티칭 모듈이 있는 iOS 파노라마’에서는 OpenCV의 사전 컴파일된 iOS용 라이브러리를 사용해 아이폰에서 파노라마 이미지 스티칭(stitching) 애플리케이션을 작성하는 방법을 보여준다.
9장, ‘작업에 가장 적합한 OpenCV 알고리즘 찾기’에서는 OpenCV 내의 옵션을 고려하고 따라야 할 여러 가지 방법을 설명한다.
10장, ‘OpenCV의 일반적인 함정 피하기’에서는 OpenCV의 역사적 발전, 점진적인 프레임워크/알고리즘 제공 증가 현황, 컴퓨터 비전의 발전을 살펴본다.
상세 이미지
목차
목차
- 1장. 라즈베리 파이의 카툰화와 피부색 변경
- 웹캠에 액세스하기
- 데스크톱 앱의 기본 카메라 처리 루프
- 흑백 스케치 생성하기
- 색 페인팅과 카툰 생성
- 윤곽선 필터를 사용해 이블 모드 생성
- 피부 검출 방법을 사용해 외계인 모드 생성
- 피부색 체인저 구현
- 스케치 이미지에서 임의의 페퍼 잡음 감소
- 데스크톱에서 임베디드 디바이스로 포팅
- 임베디드 디바이스의 코드를 개발하기 위한 장비 설정
- 임베디드 디바이스에서 OpenCV 설치
- 요약
- 2장. SfM 모듈을 사용한 모션 구조 탐색
- 기술 요구 사항
- SfM의 핵심 개념
- 보정된 카메라와 에피폴라(등극선) 기하학
- 스테레오 재구성과 SfM
- OpenCV에서 SfM 구현
- 이미지 특징 매칭
- 특징 추적하기
- 3D 재구성 및 시각화
- 밀집 재구성을 위한 MVS
- 요약
- 3장. face 모듈을 사용한 얼굴 랜드마크와 포즈 분석
- 기술 요구 사항
- 이론과 주요 내용
- 능동적 외양 모델과 제한된 로컬 모델
- 회귀 방법
- OpenCV로 얼굴 랜드마크 검출
- 측정 오차
- 랜드마크에서 얼굴 방향 예측
- 예측된 포즈 계산
- 이미지에 포즈 투영
- 요약
- 4장. 딥 컨볼루션 네트워크를 사용한 번호판 인식
- ANPR 소개
- ANPR 알고리즘
- 번호판 검출
- 세그멘테이션
- 분류
- 번호판 인식
- OCR 세그멘테이션
- 컨볼루션 신경망을 사용한 문자 분류
- 요약
- 5장. DNN 모듈을 사용한 얼굴 검출 및 인식
- 얼굴 검출 및 인식 방법 소개
- 얼굴 검출
- 얼굴 전처리
- 얼굴 수집과 훈련
- 얼굴 인식
- 마무리: 파일 저장하기 및 불러오기
- 마무리: 멋진 대화식 GUI 만들기
- 요약
- 참고 문헌
- 얼굴 검출 및 인식 방법 소개
- 6장. OpenCV.js를 사용한 웹 컴퓨터 비전 소개
- OpenCV.js란 무엇인가?
- OpenCV.js 컴파일하기
- OpenCV.js 개발의 기본 소개
- 웹캠 스트림에 액세스하기
- 이미지 처리와 기본 사용자 인터페이스
- 임계값 필터
- 가우시안 필터
- 캐니 필터
- 브라우저의 광류 지원
- 브라우저에서 하르 캐스케이드 분류기를 사용한 얼굴 검출
- 요약
- 7장. ArUco 모듈을 사용한 안드로이드 카메라 보정과 AR
- 기술 요구 사항
- 증강현실과 포즈 추정
- 카메라 보정
- 평면 재구성을 위한 증강현실 마커
- 안드로이드 운영체제에서 카메라 액세스
- 카메라 찾기 및 열기
- ArUco를 사용한 카메라 보정
- jMonkeyEngine으로 증강현실 수행
- 요약
- 8장. 스티칭 모듈이 있는 iOS 파노라마
- 기술 요구 사항
- 파노라마 이미지 스티칭 방법
- 파노라마를 위한 특징 추출과 강력한 매칭
- 파노라마 생성을 위한 와핑 이미지
- 프로젝트 개요
- CocoaPods로 iOS OpenCV 프로젝트 설정
- 파노라마 캡처를 위한 iOS UI
- 오브젝티브-C++ 래퍼의 OpenCV 스티칭
- 요약
- 더 읽을 거리
- 9장. 작업에 가장 적합한 OpenCV 알고리즘 찾기
- 기술 요구 사항
- OpenCV에 포함돼 있는가?
- OpenCV의 알고리즘 옵션
- 어떤 알고리즘이 가장 좋을까?
- 알고리즘의 비교 성능 테스트 예
- 요약
- 10장. OpenCV의 일반적인 함정 피하기
- OpenCV v1에서 v4까지의 역사
- 컴퓨터 비전에서 OpenCV와 데이터 혁신
- OpenCV의 히스토릭 알고리즘
- OpenCV에 알고리즘이 추가된 시기를 확인하는 방법
- 일반적인 함정과 제안된 솔루션
- 요약
- 더 읽을 거리
- OpenCV v1에서 v4까지의 역사