■ 머신 러닝 및 인공지능 알고리즘 학습
■ 이미지와 비디오 읽기, 쓰기 및 처리
■ 수학, 행렬 및 기타 유형의 이미지 데이터 작업 수행
■ 역 투영 이미지의 히스토그램 생성 및 사용
■ 동작 감지, 전경 추출 및 객체 추적
■ 특징 검출기 알고리즘으로 키포인트 추출
■ 캐스케이드 분류기 개발 및 테스트
■ 텐서플로(TensorFlow) 객체 탐지를 통한 여러 객체 탐지
저자 소개
저자 : 아민 아마디 타제칸디
이란 출신 작가이자 개발자이며 컴퓨터 비전 전문가다. 이란에서 컴퓨터 소프트웨어 공학을 전공했으며 전 세계의 수많은 소프트웨어 및 산업 회사에서 근무했다.
목 차
1장. 컴퓨터 비전 소개
__기술적 요구 사항
__컴퓨터 비전 이해
__이미지에 대해 학습하기
____색상 공간
____입력, 처리 및 출력
__컴퓨터 비전 프레임워크 및 라이브러리
__요약
__질문 사항
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장
__8장
출판사 서평
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 방법을 학습한다. 끝에서는 텐서플로와 같은 타사 라이브러리의 사전 모델을 사용해서 다른 유형의 여러 객체를 실시간으로 검색하는 방법도 파악한다.