개발자/파이썬 Python

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝

지구빵집 2023. 2. 10. 23:23
반응형

 

 

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝(길벗, 2019) 책은 컴퓨터 비전과 머신 러닝 알고리즘을 소개하고, OpenCV 라이브러리를 이용하여 구현하는 방법을 설명합니다.

 

저자의 오랜 OpenCV 강의 경험을 바탕으로 초보자도 쉽게 이해할 수 있는 커리큘럼과 실습 예제를 제공합니다. 간단한 밝기와 명암비 조절, 필터링, 에지 검출부터 객체 검출, 영상 매칭, 필기체 숫자 인식 등 컴퓨터 비전 고급 기법까지 OpenCV를 사용하여 구현합니다. 또한 k 최근방 이웃(kNN), 서포트 벡터 머신(SVM) 등의 머신 러닝 알고리즘과 OpenCV에서 딥러닝을 활용하는 방법까지 설명합니다. 

 

 

목차

1장 컴퓨터 비전과 영상의 이해
1.1 컴퓨터 비전 개요
1.2 영상의 구조와 표현 방법
1.2.1 영상의 획득과 표현 방법
1.2.2 그레이스케일 영상과 컬러 영상

2장 OpenCV 설치와 기초 사용법
2.1 OpenCV 개요와 설치
2.1.1 OpenCV 개요
2.1.2 OpenCV 설치하기
2.2 OpenCV 사용하기: HelloCV
2.2.1 OpenCV 프로젝트 만들기
2.2.2 영상을 화면에 출력하기
2.2.3 HelloCV에서 사용된 OpenCV 주요 함수 설명

3장 OpenCV 주요 클래스
3.1 기본 자료형 클래스
3.1.1 Point_ 클래스
3.1.2 Size_ 클래스
3.1.3 Rect_ 클래스
3.1.4 RotatedRect 클래스
3.1.5 Range 클래스
3.1.6 String 클래스
3.2 Mat 클래스
3.2.1 Mat 클래스 개요
3.2.2 행렬의 생성과 초기화
3.2.3 행렬의 복사
3.2.4 부분 행렬 추출
3.2.5 행렬의 원소 값 참조
3.2.6 행렬 정보 참조하기
3.2.7 행렬 연산
3.2.8 크기 및 타입 변환 함수
3.3 Vec과 Scalar 클래스
3.3.1 Vec 클래스
3.3.2 Scalar 클래스
3.4 InputArray와 OutputArray 클래스
3.4.1 InputArray 클래스
3.4.2 OutputArray 클래스

4장 OpenCV 주요 기능
4.1 카메라와 동영상 파일 다루기
4.1.1 VideoCapture 클래스
4.1.2 카메라 입력 처리하기
4.1.3 동영상 파일 처리하기
4.1.4 동영상 파일 저장하기
4.2 다양한 그리기 함수
4.2.1 직선 그리기
4.2.2 도형 그리기
4.2.3 문자열 출력하기
4.3 이벤트 처리
4.3.1 키보드 이벤트 처리
4.3.2 마우스 이벤트 처리
4.3.3 트랙바 사용하기
4.4 OpenCV 데이터 파일 입출력
4.4.1 FileStorage 클래스
4.4.2 데이터 파일 저장하기
4.4.3 데이터 파일 불러오기
4.5 유용한 OpenCV 기능
4.5.1 마스크 연산
4.5.2 연산 시간 측정
4.5.3 유용한 OpenCV 함수 사용법

5장 영상의 밝기와 명암비 조절
5.1 영상의 밝기 조절
5.1.1 그레이스케일 영상 다루기
5.1.2 영상의 밝기 조절
5.1.3 영상의 밝기 조절 직접 구현하기
5.1.4 트랙바를 이용한 영상의 밝기 조절
5.2 영상의 명암비 조절
5.2.1 기본적인 명암비 조절 방법
5.2.2 효과적인 명암비 조절 방법
5.3 히스토그램 분석
5.3.1 히스토그램 구하기
5.3.2 히스토그램 스트레칭
5.3.3 히스토그램 평활화

6장 영상의 산술 및 논리 연산
6.1 영상의 산술 연산
6.2 영상의 논리 연산

7장 필터링
7.1 영상의 필터링
7.1.1 필터링 연산 방법
7.1.2 엠보싱 필터링
7.2 블러링: 영상 부드럽게 하기
7.2.1 평균값 필터
7.2.2 가우시안 필터
7.3 샤프닝: 영상 날카롭게 하기
7.3.1 언샤프 마스크 필터
7.4 잡음 제거 필터링
7.4.1 영상과 잡음 모델
7.4.2 양방향 필터
7.4.3 미디언 필터

8장 영상의 기하학적 변환
8.1 어파인 변환
8.1.1 어파인 변환
8.1.2 이동 변환
8.1.3 전단 변환
8.1.4 크기 변환
8.1.5 회전 변환
8.1.6 대칭 변환
8.2 투시 변환

9장 에지 검출과 응용
9.1 에지 검출
9.1.1 미분과 그래디언트
9.1.2 마스크 기반 에지 검출
9.1.3 캐니 에지 검출기
9.2 직선 검출과 원 검출
9.2.1 허프 변환 직선 검출
9.2.2 허프 변환 원 검출

10장 컬러 영상 처리
10.1 컬러 영상 다루기
10.1.1 컬러 영상의 픽셀 값 참조
10.1.2 색 공간 변환
10.1.3 색상 채널 나누기
10.2 컬러 영상 처리 기법
10.2.1 컬러 히스토그램 평활화
10.2.2 색상 범위 지정에 의한 영역 분할
10.2.3 히스토그램 역투영

11장 이진화와 모폴로지
11.1 영상의 이진화
11.1.1 이진화
11.1.2 적응형 이진화
11.2 모폴로지 연산
11.2.1 이진 영상의 침식과 팽창
11.2.2 이진 영상의 열기와 닫기

12장 레이블링과 외곽선 검출
12.1 레이블링
12.1.1 레이블링의 이해
12.1.2 레이블링 응용
12.2 외곽선 검출
12.2.1 외곽선 검출
12.2.2 외곽선 처리 함수

13장 객체 검출
13.1 템플릿 매칭
13.2 캐스케이드 분류기와 얼굴 검출
13.3 HOG 알고리즘과 보행자 검출
13.4 QR 코드 검출

14장 지역 특징점 검출과 매칭
14.1 코너 검출
14.1.1 해리스 코너 검출 방법
14.1.2 FAST 코너 검출 방법
14.2 크기 불변 특징점 검출과 기술
14.2.1 크기 불변 특징점 알고리즘
14.2.2 OpenCV 특징점 검출과 기술
14.3 특징점 매칭
14.3.1 OpenCV 특징점 매칭
14.3.2 호모그래피와 영상 매칭
14.4 영상 이어 붙이기

15장 머신 러닝
15.1 머신 러닝과 OpenCV
15.1.1 머신 러닝 개요
15.1.2 OpenCV 머신 러닝 클래스
15.2 k 최근접 이웃
15.2.1 k 최근접 이웃 알고리즘
15.2.2 KNearest 클래스 사용하기
15.2.3 kNN을 이용한 필기체 숫자 인식
15.3 서포트 벡터 머신
15.3.1 서포트 벡터 머신 알고리즘
15.3.2 SVM 클래스 사용하기
15.3.3 HOG & SVM 필기체 숫자 인식

16장 딥러닝과 OpenCV
16.1 딥러닝과 OpenCV DNN 모듈
16.1.1 신경망과 딥러닝
16.1.2 OpenCV DNN 모듈
16.2 딥러닝 학습과 OpenCV 실행
16.2.1 텐서플로로 필기체 숫자 인식 학습하기
16.2.2 OpenCV에서 학습된 모델 불러와서 실행하기
16.3 OpenCV와 딥러닝 활용
16.3.1 구글넷 영상 인식
16.3.2 SSD 얼굴 검출

부록 A OpenCV 소스 코드 빌드하여 설치하기
A.1 OpenCV 소스 코드 내려받기
A.2 CMake를 이용하여 솔루션 파일 만들기
A.3 Visual Studio에서 OpenCV 빌드하고 설치하기

부록 B 리눅스에서 OpenCV 설치하고 사용하기
B.1 리눅스에서 OpenCV 설치하기
B.2 리눅스에서 OpenCV 프로그램 개발하기

 

 

참고

저자 강의: 라즈베리파이에서 OpenCV 예제 프로그램 실행하기 

책 소스코드와 영상을 볼 수 있는 깃 허브

 

 

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝

 

 

 

반응형