OpenCV 컴퓨터 비전 프로젝트 [증강현실부터 자동차 번호판, 얼굴 인식, 3D 머리 포즈 추적까지]
- 원서명Mastering OpenCV with Practical Computer Vision Projects (ISBN 9781849517829)
- 지은이다니엘 렐리스 바지우(Daniel Lélis Baggio), 셰르빈 이마미(Shervin Emami), 다비드 밀란 에스크리바(David Millán Escrivá), 크베드체니아 아이에브젠(Khvedchenia Ievgen), 노린 마흐무드(Naureen Mahmood), 제이슨 사라기(Jason Saragih), 로이 실크롯(Roy Shilkrot)
- 옮긴이이문호
- ISBN : 9788960778337
- 35,000원
- 2016년 03월 18일 펴냄 (절판)
- 페이퍼백 | 460쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
OpenCV에 대한 기본 지식을 갖췄으며, 관심 있는 프로젝트를 시도하면서 컴퓨터 비전 이론을 적용하려는 독자를 위한 책이다. 컴퓨터 비전 분야의 실시간 모바일 앱, 증강현실, 3D 모양 재구성, 자동차 번호판 인식, 3D 머리 포즈 추적, 얼굴 검출, 얼굴 추적, 얼굴 인식 등 다양한 OpenCV 기반 프로젝트 구현 과정을 이론과 연계해 상세하게 설명함으로써 현장에서 접할 수 있는 문제를 해결하는 데 지름길을 제공한다.
이 책에서 다루는 내용
간단한 얼굴, 눈, 피부 검출, 피셔 얼굴, 얼굴 인식, 3D 머리 방향과 복잡한 얼굴 특징 추적을 이용한 얼굴 분석
SVM과 신경망을 포함한 인공지능(AI)을 이용해 자동차 번호판 검출과 광학 문자 인식(OCR)
간단한 인공 마커나 복잡한 자연 영상으로 데스크톱과 아이폰 및 아이패드용 증강현실 구현
3D SfM 카메라 재투영 방법을 이용해 평면 2D 카메라를 이동한 후 3D 객체 모델 생성
실시간 데스크톱 컴퓨터 비전 애플리케이션을 안드로이드와 iOS 모바일 앱으로 훨씬 적합하게 재설계
엑스박스 키넥트 센서로 동적 입력인 몸 전체를 사용해 인간-컴퓨터 상호작용 실행
이 책의 대상 독자
이 책은 자신의 기술에 컴퓨터 비전 기술을 더 추가하려는 노련한 OpenCV 전문가뿐만 아니라 실전 컴퓨터 비전 프로젝트를 개발하기 위한 OpenCV 기본 지식을 가진 개발자에게도 완벽한 책이다. 실전 단계별 지침을 통해 OpenCV C++ 인터페이스를 사용하여 실제 문제를 해결하려는 컴퓨터과학 대학 고학년이나 대학원생, 연구자, 컴퓨터 비전 전문가를 대상으로 한다.
이 책의 구성
1장, '안드로이드용 만화 생성기와 피부 변환기'에서는 완벽한 지침서와 피부색 변환기를 비롯해 가능한 여러 가지 가능한 만화 유형과 실제 카메라 영상으로부터 만화나 그림을 자동으로 만드는 데스크톱 애플리케이션과 안드로이드 앱 모두에 대한 완벽한 튜토리얼과 소스코드를 다룬다.
2장, '아이폰과 아이패드의 마커 기반 증강현실'에서는 각 단계에 대한 설명과 소스코드로 아이패드와 아이폰 기기용 마커 기반 증강현실(AR) 애플리케이션을 구축하는 방법을 알아본다.
3장, '비마커 증강현실'에서는 비마커 AR에 대한 설명과 소스코드로 비마커 증강현실 데스크톱 애플리케이션을 개발하는 방법에 대해 다룬다.
4장, 'OpenCV를 활용한 SfM 탐색'에서는 OpenCV의 SfM 개념 구현을 통해 SfM을 소개한다. 독자는 다중 2D 영상과 카메라 위치 추정으로부터 3D 기하학을 재구성하는 방법을 배운다.
5장, 'SVM과 신경망을 활용한 번호판 인식'에서는 완벽한 지침서와 서포트 벡터 머신(SVM, Support Vector Machine)과 신경망을 이용해 자동차 번호판 인식 애플리케이션을 구축하는 는 소스코드를 다룬다. 독자는 학습하고 영상이 번호판인지 아닌지 결정하는 패턴 인식 알고리즘을 익히고 예측하는 방법을 배운다. 특징 집합을 문자로 분류할 때 도움이 될 것이다.
6장, '비강체 얼굴 추적'에서는 완벽한 지침서와 사람 얼굴에서 복잡한 부분들을 모델링하고 추적하는 동적 얼굴 시스템을 구축에 대한 튜토리얼과 소스코드를 다룬다.
7장, 'AAM과 POSIT을 활용한 3D 머리 포즈 추정'에서는 능동 외양 모델(AAM, Active Apperance Model)이 무엇인지 이해할 때 필요한 모든 배경과 OpenCV로 서로 다른 얼굴 표현이 있는 얼굴 프레임 집합을 이용해 AAM을 생성하는 방법을 살펴본다. 또한 AAM이 제공하는 맞춤 기능을 통해 주어진 프레임과 어떻게 정합하는지에 대해 설명한다. 그 다음에는 3D 머리 포즈자세를 찾을 수 있는 POSIT 알고리즘을 적용한다.
8장, '고유얼굴과 피셔 얼굴을 활용한 얼굴 인식'에서는 완벽한 지침서와 영상 내의 회전된 얼굴과 다양한 조명 조건을 제어하는 기본 얼굴과, 눈 검출을 포함한 실시간 얼굴 인식 애플리케이션에 대한 튜토리얼과 소스코드를 다룬다.
9장, '마이크로소프트 키넥트를 이용한 플루이드 월 개발'에서는 키넥트 센서를 이용해 플루이드 월이라고 불리는 대화식 유체 시뮬레이션 개발을 완벽하게 다룬다. OpenCV의 옵티컬 플로우 방법과 유체 해석기를 통합해 키넥트 데이터를 다루는 방법도 설명한다.
목차
목차
- 1 안드로이드용 만화 생성기와 피부 변환기
- 웹캠에 접근
- 데스크톱 앱용 주 카메라 처리 반복문
- 흑백 스케치 생성
- 컬러 페인팅과 만화 생성
- 에지 필터를 이용한 ‘악마’ 모드 생성
- 피부 검출을 이용한 ‘에일리언’ 모드 생성
- 피부 검출 알고리즘
- 얼굴이 있는 곳 보여주기
- 피부색 변환기 구현
- 데스크톱에서 안드로이드로 이식
- OpenCV를 이용한 안드로이드 프로젝트 설정
- 안드로이드의 영상 처리에 사용하는 컬러 포맷
- 카메라의 입력 컬러 포맷
- 띄우기 위한 결과 컬러 포맷
- 안드로이드 NDK 앱에 만화 생성기 코드 추가
- 안드로이드 앱 검토
- 사용자가 화면을 탭하면 영상을 만화로 생성
- 영상을 파일로 저장하고 안드로이드 사진 갤러리에 저장
- 저장한 영상에 관한 안드로이드 통지 메시지 보여주기
- 안드로이드 메뉴 바를 통해 만화 모드로 변경
- 스케치 영상에 있는 무작위 후추 잡음 줄이기
- 앱에 FPS 보여주기
- 여러 카메라 해상도 사용
- 앱을 사용자 정의
- OpenCV를 이용한 안드로이드 프로젝트 설정
- 요약
- 2 아이폰과 아이패드상의 마커 기반 증강현실
- OpenCV를 이용한 iOS 프로젝트 생성
- OpenCV 프레임워크 추가
- OpenCV 헤더 인클루드
- 애플리케이션 구조
- 카메라 접근
- 마커 검출
- 마커 식별
- 그레이스케일 변환
- 영상 이진화
- 외곽선 검출
- 후보 검색
- 마커 코드 인식
- 마커 코드 읽기
- 마커 위치 정제
- 마커 식별
- 3D에서 마커 배치
- 카메라 보정
- 마커 포즈 추정
- 3D 가상 객체 렌더링
- OpenGL 렌더링 레이어 생성
- AR 장면 렌더링
- 요약
- 참고 문헌
- 3 비마커 증강현실
- 마커 기반 AR과 비마커 AR
- 비디오에 있는 임의 영상을 찾기 위한 특징 기술자 사용
- 특징 추출
- 패턴 객체 정의
- 특징점 정합
- PattternDector.cpp
- 이상치 제거
- 교차 정합 필터
- 비율 판정법
- 호모그래피 추정
- 호모그래피 정제
- 클래스에 모두 넣기
- 패턴 포즈 추정
- PattternDetector.cpp
- 카메라 내부 행렬 얻기
- Pattern.cpp
- 애플리케이션 인프라스트럭처
- ARPipeline.hpp
- ARPipeline.cpp
- OpenCV의 3D 시각화 지원 활성화
- OpenCV를 이용한 OpenGL 창 생성
- OpenCV를 이용한 비디오 캡처
- 증강현실 렌더링
- ARDrawingContext.hpp
- ARDrawingContext.cpp
- 시연
- main.cpp
- 요약
- 참고 문헌
- 4 OpenCV를 활용한 SfM 탐색
- SfM 개념
- 영상 쌍으로부터 카메라 모션 추정
- 풍부한 특징 기술자를 이용한 점 정합
- 옵티컬 플로우를 이용한 점 정합
- 카메라 행렬 찾기
- 장면 재구성
- 많은 시점으로부터 재구성
- 재구성 정제
- PCL로 3D 점 구름 시각화
- 예제 코드 사용
- 요약
- 참고 문헌
- 5 SVM과 신경망을 활용한 번호판 인식
- ANPR 소개
- ANPR 알고리즘
- 번호판 검출
- 분할
- 분류
- 번호판 인식
- OCR 분할
- 특징 추출
- OCR 분류
- 평가
- 요약
- 6 비강체 얼굴 추적
- 개요
- 유틸리티
- 객체지향 설계
- 데이터 컬렉션: 영상과 비디오 주석
- 학습 데이터 유형
- 주석 도구
- 사전 주석 데이터(MUCT 데이터 집합)
- 기하학적 제약
- 프로크러스티즈 분석
- 선형 모양 모델
- 국부-전역 표현 조합
- 학습 후 시각화
- 얼굴 특징 검출기
- 상관관계 기반 패치 모델
- 식별 패치 모델 학습
- 생성와 식별 패치 모델
- 전역 기하 변환 처리
- 학습과 시각화
- 상관관계 기반 패치 모델
- 얼굴 검출과 초기화
- 얼굴 추적
- 얼굴 추적기 구현
- 학습과 시각화
- 범용 모델과 개인 고유 모델
- 요약
- 참고 문헌
- 7 AAM과 POSIT를 활용한 3D 머리 포즈 추정
- 능동 외양 모델 살펴보기
- 능동 모양 모델
- PCA 감 잡기
- 삼각화
- 삼각 텍스처 워핑
- 모델 인스턴스 생성: 능동 외양 모델 활용
- AAM 탐색과 맞춤
- POSIT
- POSIT에 빠져 보기
- POSIT과 머리 모델
- 웹캠이나 비디오 파일에서 추적
- 요약
- 참고 문헌
- 8 고유 얼굴과 피셔 얼굴을 활용한 얼굴 인식
- 얼굴 인식과 얼굴 검출 소개
- 1단계: 얼굴 검출
- OpenCV를 이용한 얼굴 검출 구현
- 객체나 얼굴 검출을 위한 하르 혹은 LBP 검출기 적재
- 웹캠 접근
- 하르나 LBP 분류기를 이용한 객체 검출
- 얼굴 검출
- 2단계: 얼굴 전처리
- 눈 검출
- 눈 탐색 영역
- 3단계: 얼굴을 수집하고 학습
- 학습하기 위한 전처리 얼굴 수집
- 수집한 얼굴로 얼굴 인식 시스템 학습
- 배운 지식 살펴보기
- 평균 얼굴
- 고윳값, 고유 얼굴과 피셔 얼굴
- 4단계: 얼굴 인식
- 얼굴 식별: 얼굴로 사람 인식
- 얼굴 검증: 요청 받은 사람이 맞는지 입증
- 마무리: 파일 저장과 적재
- 마무리: 멋진 대화형 GUI 개발
- GUI 요소 그리기
- 마우스 클릭을 확인하고 제어
- 1단계: 얼굴 검출
- 요약
- 참고문헌
- 9 마이크로소프트 키넥트를 이용한 플루이드 월 개발
- 플루이드 월이란?
- 단일 컬러 모드
- 다중 컬러/다중 사용자 모드
- 흰 배경을 갖는 다중 사용자 모드
- 속도 벡터 모드
- 키넥트 센서
- 깊이와 사용자 추적 데이터를 검색하기 위해 키넥트 센서 설정
- 유체 시뮬레이션
- 시뮬레이션 렌더링
- 옵티컬 플로우
- 유체 시뮬레이션에서 키넥트 데이터와 옵티컬 플로우 통합
- 옵티컬 플로우를 이용한 키넥트 사용자 추적과 깊이
- 유체 방출과 시각화 모드
- 요약
도서 오류 신고
정오표
정오표
[본문 전체]
엔디비아
->
엔비디아
[p.24 : 5행]
기본을 설명하지 않지는 않지만
->
기본을 설명하지는 않지만
2016. 11. 11. 수정 사항
[p.385: 마지막행 ~ p.386: 1행, p.390: 아래에서 7행, p.401: 2행, p.402: 사진 위 2행, p.405: 아래에서 6행]
신뢰도 행렬, 신뢰도 미터
->
신뢰도 측정치
2016. 11. 14 수정 사항
[p.259: 마지막행]
베이커(Baker)와 콜리지스(Colleges)가
->
베이커와 동료 연구자들이