컴퓨터 비전과 알고리즘 [OpenCV 알고리즘을 활용한 컴퓨터 비전 프로그래밍]
- 원서명Hands-On Algorithms for Computer Vision: Learn how to use the best and most practical computer vision algorithms using OpenCV (ISBN 9781789130942)
- 지은이아민 아마디 타제칸디(Amin Ahmadi Tazehkandi)
- 옮긴이테크 트랜스 그룹 T4
- ISBN : 9791161753072
- 30,000원
- 2019년 05월 30일 펴냄
- 페이퍼백 | 360쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
컴퓨터의 처리 능력 및 성능 향상으로 인해 컴퓨터 비전 영역의 활용 가능성은 매우 긍정적인 평가를 받고 있다. 애플리케이션에서 컴퓨터 비전 작업을 좀 더 효율적으로 수행하기 위해 많은 알고리즘이 개발되고 있다.
이 책은 비전 알고리즘에 대한 기본 내용으로 시작하며, 실습 예제를 통해 내부의 각 동작이 어떻게 이루어지는 지를 학습할 수 있다.
컴퓨터 비전 개발에 필요한 도구의 설치, 구성 방법을 비롯해 OpenCV 프레임 워크와 강력한 라이브러리, 기능 모음을 알아보고, 가장 간단한 이미지 수정, 필터링 및 변환, 딥러닝 알고리즘을 사용한 실시간으로 물체를 탐지하는 알고리즘에 대한 지식을 차근차근 학습할 수 있다.
이 책에서 다루는 내용
■ 머신 러닝 및 인공지능 알고리즘 학습
■ 이미지와 비디오 읽기, 쓰기 및 처리
■ 수학, 행렬 및 기타 유형의 이미지 데이터 작업 수행
■ 역 투영 이미지의 히스토그램 생성 및 사용
■ 동작 감지, 전경 추출 및 객체 추적
■ 특징 검출기 알고리즘으로 키포인트 추출
■ 캐스케이드 분류기 개발 및 테스트
■ 텐서플로(TensorFlow) 객체 탐지를 통한 여러 객체 탐지
이 책의 대상 독자
운영체제에서 C++ 프로그래밍 언어와 타사 라이브러리 사용법에 대한 지식을 쌓은 개발자의 경우에는 이 책의 주제를 매우 쉽게 이해하고 사용할 수 있다. 반면에 파이썬 프로그래밍 언어에 익숙한 개발자라면 OpenCV 라이브러리 사용법을 익히고자 이 책을 활용할 수 있다. 그러나 이 책은 C++로 구현된 알고리즘에 초점 두고 있기 때문에 예제를 C++에서 파이썬까지 스스로 적용해봐야 할 것이다.
이 책의 구성
1장, ‘컴퓨터 비전 소개’에서는 컴퓨터 비전 과학의 기본 원리, 사용처에 대해 설명한다. 컴퓨터 비전 세계를 완전히 처음 접하는 사람들을 위해 이미지의 정의와 픽셀, 깊이 및 채널과 같은 기본 속성 등등에 대해서 설명한다.
2장, ‘OpenCV 시작하기’에서는 OpenCV 라이브러리를 소개하고 OpenCV 개발의 가장 중요한 빌딩 블록들을 통해 핵심 내용을 자세히 설명한다. 정보를 얻을 수 있는 곳과 정보를 사용하는 방법에 대한 내용도 함께 제공된다. CMake의 사용법과 OpenCV 프로젝트를 만들고 빌드하는 방법을 간략하게 살펴본 다음, Mat 클래스와 Mat의 변형 항목에 대해 배운다. 그리고 이미지와 비디오를 읽고 쓰며 (여러 가지 다른 입력 소스 유형 중에서) 카메라에 액세스하는 방법도 배운다.
3장, ‘배열 및 행렬 연산’에서는 행렬을 만들거나 변경하는 데 사용되는 기본 알고리즘을 다룬다. 또한 교차 제품, 내적 및 반전과 같은 행렬 작업을 수행하는 방법을 학습한다. 평균, 합 및 푸리에 변환과 같은 수학 연산과 함께 요소별 행렬 연산의 많은 부분에 대해서 소개한다.
4장, ‘그리기, 필터링 및 변환’에서는 이 책의 범위 내에서 다룰 수 있는 광범위한 이미지 처리 알고리즘을 다룬다. 이미지에 도형과 텍스트를 그리는 방법을 설명하며 선, 화살표, 직사각형 등을 그리는 법도 배운다. 필터, 확장, 침식 및 이미지의 형태학적 연산을 부드럽게 하는 것과 같은 이미지 필터링 작업에 사용되는 광범위한 알고리즘에 대해서도 설명한다. 강력한 재매핑 알고리즘과 컴퓨터 비전의 컬러 맵 사용법에 대해 잘 알게 것이다.
5장, ‘역투영 및 히스토그램’에서는 히스토그램의 개념을 소개하고 단일 및 다중 채널 이미지에서 어떻게 계산되는지 알려준다. 그레이 스케일 및 컬러 이미지의 히스토그램 시각화, 즉 픽셀의 색조 값으로 계산한 히스토그램도 다루며, 역투영 이미지에 대해서도 배운다(히스토그램 추출의 역동작을 학습한다).
6장, ‘비디오 분석-동작 검출 및 추적’은 컴퓨터 비전에서 가장 널리 사용되는 추적 알고리즘을 사용해 실시간 개체 탐지 및 추적과 같은 작업을 위해 비디오를 처리하는 방법을 설명한다. 비디오를 전반적으로 처리하는 방법에 대해 간략히 소개한 후, 실제 사례 및 객체 추적 시나리오를 사용해 평균 시프트와 CAM 시프트 알고리즘, 칼만 필터링을 학습한다. 끝 부분에서는 배경 및 전경 추출 알고리즘과 실제로 사용되는 방법에 대해서도 배운다.
7장, ‘객체 탐지 - 특징 및 기술자’는 템플릿 매칭을 사용해 객체 검출에 대한 간단한 소개부터 시작해 형상 분석에 사용할 수 있는 광범위한 알고리즘에 관해 설명한다. 키포인트(keypoint) 검출, 기술자 추출 및 기술자 매칭 체인이 포함돼 있으며, 간단한 픽셀 색상(color)과 명도(intensity) 값 대신 특징을 기반으로 객체를 탐지하는 데 사용된다.
8장, ‘컴퓨터 비전에서의 머신 러닝’은 OpenCV 내 머신 러닝(ML) 및 심층 신경망(DNN) 모듈과 가장 중요한 알고리즘, 클래스 및 기능에 대해 다룬다. SVM 알고리즘으로 시작해 유사한 훈련 그룹을 기반으로 모델을 훈련시키는 방법을 배우고 그 모델을 사용해 입력 데이터를 분류한다. HOG 기술자와 SVM을 사용해 이미지를 분류하는 방법도 배운다. 또한 OpenCV에서의 인공 신경망 구현에 대해서도 다루며, 그런 다음에 캐스케이딩 분류cascade classification 방법을 학습한다. 끝에서는 텐서플로와 같은 타사 라이브러리의 사전 모델을 사용해서 다른 유형의 여러 객체를 실시간으로 검색하는 방법도 파악한다.
상세 이미지
목차
목차
- 장. 컴퓨터 비전 소개
- 기술적 요구 사항
- 컴퓨터 비전 이해
- 이미지에 대해 학습하기
- 색상 공간
- 입력, 처리 및 출력
- 컴퓨터 비전 프레임워크 및 라이브러리
- 요약
- 질문 사항
- 2장. OpenCV 시작하기
- 기술적 요구 사항
- OpenCV 소개
- OpenCV의 기본 모듈
- OpenCV 다운로드와 빌드/설치
- C++, 파이썬에서 OpenCV 사용
- Mat 클래스의 이해
- Mat 객체 만들기
- Mat 객체 삭제하기
- 픽셀에 액세스하기
- 이미지 읽기 및 쓰기
- 비디오 읽기 및 쓰기
- 카메라에 액세스하기
- RTSP 및 네트워크 피드 액세스
- 매트-유사 클래스
- 요약
- 질문 사항
- 추가 읽기
- 기술적 요구 사항
- 3장. 배열 및 행렬 연산
- 기술적 요구 사항
- Mat 클래스에 포함된 작업
- 행렬 복제
- 외적(교차곱) 계산
- 대각선 추출
- 내적 계산
- 단위 행렬 학습
- 역행렬
- 요소 단위의 행렬 곱셈
- 1과 0 행렬
- 전치행렬
- Mat 객체의 형상 바꾸기
- 요소 단위의 행렬 연산
- 기본 작업
- 비트 논리 연산
- 비교 연산
- 수학 연산
- 행렬 및 배열 방식의 연산
- 외삽을 위한 테두리 만들기
- 이미지 뒤집기(미러링) 및 이미지 회전
- 채널 작업
- 수학 함수
- 검색 및 위치 함수
- 요약
- 질문사항
- 4장. 그리기, 필터링 및 변환
- 기술적 요구 사항
- 이미지 그리기
- 이미지에 텍스트 출력하기
- 도형 그리기
- 이미지 필터링
- 블러링/스무딩 필터
- 모폴로지 필터
- 미분 기반 필터
- 임의적 필터링
- 이미지 변환
- 임계 알고리즘
- 색 공간 및 유형 변환
- 기하학적 변환
- 색상맵 적용
- 요약
- 질문사항
- 5장. 역 투영 및 히스토그램
- 기술적 요구 사항
- 히스토그램 이해하기
- 히스토그램 표시
- 히스토그램 역 투영
- 역 투영에 대해 더 배우기
- 역 투영 및 히스토그램
- 히스토그램 비교
- 히스토그램 평활화
- 요약
- 질문사항
- 추가 읽기
- 6장. 비디오 분석 - 동작 검출 및 추적
- 기술적 요구 사항
- 비디오 처리
- Mean Shift 알고리즘의 이해
- CAM Shift 알고리즘 사용하기
- 추적 및 잡음 감소를 위한 칼만 필터 사용
- 배경 / 전경 추출 방법
- 배경 세그멘테이션의 예
- 요약
- 질문사항
- 7장. 객체 검출 - 특징과 기술자
- 기술적 요구 사항
- 객체 검출을 위한 템플릿 매칭
- 모서리와 에지 검출하기
- 해리스(Harris) 모서리 탐지 알고리즘 학습
- 에지 검출 알고리즘
- 윤곽선 계산 및 분석
- 검출, 설명 및 매칭 특징
- 요약
- 질문사항
- 기술적 요구 사항
- 8장. 컴퓨터 비전에 머신러닝 적용하기
- 기술적 요구 사항
- SVM
- SVM 및 HOG를 사용해 이미지 분류하기
- 인공 신경망을 이용한 훈련 모델
- 캐스케이딩 분류 알고리즘
- 캐스케이딩 분류기를 사용한 객체 검출
- 캐스케이딩 분류기 훈련
- 샘플 만들기
- 분류기 생성
- 딥러닝 모델 사용
- 요약
- 질문사항
- 9장. 질문 사항
- 1장
- 2장
- 3장
- 4장
- 5장
- 6장
- 7장