파이썬 3로 컴퓨터 비전 다루기 [이미지 인식, 추적, 기계 학습, 비디오 처리, 컴퓨터 비전 웹서비스]
- 원서명Computer Vision with Python 3: Image classification, object detection, video processing, and more (ISBN 9781788299763)
- 지은이사우랍 카푸(Saurabh Kapur)
- 옮긴이김정중
- ISBN : 9791161751061
- 24,000원
- 2018년 01월 31일 펴냄
- 페이퍼백 | 232쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
Pillow, Scikit-image, OpenCV와 같은 컴퓨터 비전 라이브러리를 활용해 파이썬으로 컴퓨터 비전을 다루는 방법을 소개한다. 컴퓨터 비전이 어떻게 활용될 수 있는지 쉬운 주제부터 복잡한 것까지 단계적으로 보여준다. 독자가 관심 있는 분야에 컴퓨터 비전을 적용하는데 많은 도움이 될 것이다.
이 책에서 다루는 내용
■ Pillow, scikit-image, OpenCV 등의 오픈소스 라이브러리 사용
■ 에지 검출, 색상 처리, 이미지 특징 추출과 같은 프로그램 작성
■ LBP와 ORB 등의 특징 검출 알고리즘 구현
■ 외부 카메라나 비디오 파일을 이용한 물체 추적
■ 머신 러닝을 이용한 글자 인식
■ 합성곱 신경망을 이용한 이미지 패턴 학습 방법
■ 클라우드 인프라를 통한 컴퓨터 비전 서비스 제공
이 책의 대상 독자
이 책은 파이썬에 대한 기본 지식을 바탕으로 컴퓨터 비전 알고리즘 구현의 기초 능력을 쌓고자 하는 개발자에게 적합하다. 또한 컴퓨터 비전에 대한 이론적 지식은 갖췄지만, 알고리즘 구현 경험이 부족한 개발자에게도 적합하다.
이 책의 구성
1장. '이미지 처리에 대한 소개'에서는 이미지 처리의 기본적인 내용을 소개한다. 이미지 처리의 일반적인 사용 예부터 시작해 여러 이미지 처리 라이브러리의 설치 방법을 설명하고, 뒷부분에서는 이미지 읽기/쓰기 및 기본 이미지 조작 연산 방법을 설명한다.
2장. '필터와 특징'에서는 컴퓨터 비전에서 필터(filter)와 특징(feature)이 무엇을 의미하는지 간략히 설명한다. 이미지에 필터를 적용할 때 기본이 되는 합성곱(convolution)부터 가우시안 블러와 중간값 블러 등의 일반적인 필터를 살펴본다. 후반부에서는 기본 이미지 특징을 설명하고 이 특징을 파이썬을 이용해 구현하는 방법을 다룬다.
3장. '특징들에 대해 더 알아보기: 물체 검출'에서는 지역 이진 패턴(local binary pattern)과 ORB 같은 정교한 이미지 특징 추출 알고리즘을 소개한다. 이러한 알고리즘은 이미지에 있는 물체를 인식하고 동일한 물체가 있는 다른 이미지와 대응시키는 데 이용된다. 이와 같은 대응 알고리즘은 복잡한 컴퓨터 비전 알고리즘의 기초가 된다.
4장. '분할: 이미지 더 이해하기'에서는 이전 두 장과는 다른 주제를 다룬다. 이 장에서는 윤곽선 검출, 슈퍼픽셀, 워터쉐드(watershed), 정규화된 그래프 컷과 같은 이미지 분할 알고리즘을 살펴본다. 이러한 알고리즘은 구현하기가 매우 쉽고 거의 실시간으로 실행된다. 이미지 분할은 배경 제거, 이미지 이해, 장면 레이블 등의 실제 응용 예에서 사용할 수 있다. 최근에는 머신 러닝, 특히 딥러닝의 발전으로 인해 파라미터를 수동으로 거의 조정하지 않고도 좀 더 정교한 이미지 분할이 가능해졌다.
5장. '컴퓨터 비전과 머신 러닝의 통합'에서는 두 개의 다른 분야를 하나로 통합한다. 이 장에서는 머신 러닝 알고리즘을 이미지 처리에 어떻게 적용할 수 있는지 보여준다. 숫자 인식을 위한 고전적인 이미지 분류 프로그램을 구현한다.
6장. '신경망을 이용한 이미지 분류'에서는 앞 장에 이어서 신경망(neural network)이라는 고급 머신 러닝 기법을 사용해 숫자 분류기를 구현한다. 케라스(Keras)라는 새로운 라이브러리를 설치해 신경망을 구현한다.
7장. 'OpenCV를 이용한 컴퓨터 비전 소개'에서는 새로운 컴퓨터 비전 라이브러리인 OpenCV를 소개한다. 지금까지 다룬 모든 이미지 처리의 개념과 알고리즘을 다시 살펴보고 OpenCV를 사용해 구현한다.
8장. 'OpenCV를 이용한 물체 검출'에서는 여러 특징 추출 알고리즘을 설명하고 OpenCV를 사용해 구현해본다.
9장. 'OpenCV를 이용한 비디오 처리'에서는 이미지 대신 비디오로 작업하는 방법을 설명한다. 코드를 통해 비디오를 캡처하고 저장하는 법을 안내한 후 크기 조정 및 비디오의 색상 공간(color space) 변경 등의 작업을 어떻게 수행하는지 설명한다. 마지막 절에서는 비디오에서 물체 추적을 구현하는 방법을 살펴본다.
10장. '컴퓨터 비전을 서비스로 제공하기'에서는 실제 서비스되는 컴퓨터 비전 시스템을 구축하는 방법에 대한 개요를 제공하며, 컴퓨터 비전 알고리즘에 필요한 인프라에 초점을 맞춘다. 간단한 컴퓨터 비전 서비스를 구현해보면서 구글 이미지(Google Image) 검색과 같은 서비스가 어떻게 구축되는지 확인할 수 있다.
상세 이미지
목차
목차
- 1장. 이미지 처리에 대한 소개
- 이미지 처리: 응용 사례
- 이미지 처리 라이브러리
- Pillow
- scikit-image 소개
- 요약
- 2장. 필터와 특징
- 이미지 미분
- 커널
- 합성곱
- 이미지 필터의 이해
- 가우시안 블러
- 중간값 필터
- 팽창과 침식
- 커스텀 필터
- 이미지 임계 처리
- 에지 검출
- 소벨 에지 검출기
- 캐니 에지 검출기
- Hough 직선
- Hough원
- 요약
- 이미지 미분
- 3장. 특징들에 대해더 알아보기: 물체 검출
- 이미지 특징 다시 보기
- 해리스 코너 검출
- 지역 이진 패턴
- ORB
- oFAST: FAST 키포인트 방향
- FAST 검출기
- 강도값 중심에 의한 방향
- rBRIEF: 회전 인식 BRIEF
- 조정된 BRIEF
- 분산과 상관관계
- 이미지 이어 붙이기
- 요약
- 4장. 분할: 이미지더 이해하기
- 이미지 분할 소개
- 윤곽선 검출
- 워터쉐드 알고리즘
- 슈퍼픽셀
- 정규화된 그래프 컷
- 요약
- 5장. 컴퓨터 비전과 머신 러닝의 통합
- 머신 러닝 소개
- 데이터 전처리
- scikit-learn(sklearn)
- 컴퓨터 비전을 위한 머신 러닝의 응용 예
- 로지스틱 회귀
- 서포트 벡터 머신
- k-평균 클러스터링
- 요약
- 머신 러닝 소개
- 6장. 신경망을 이용한 이미지 분류
- 신경망 소개
- 기본 신경망 설계
- 네트워크 학습
- 신경망을 이용한 MNIST 숫자 분류
- 히든 레이어 다루기
- 합성곱 신경망
- 머신 러닝의 난제들
- 요약
- 신경망 소개
- 7장. OpenCV를 이용한 컴퓨터 비전 소개
- 설치
- 맥 OS
- 윈도우
- 리눅스
- OpenCV API들
- 이미지 읽기
- 요약
- 설치
- 8장. OpenCV를 이용한 물체 검출
- Haar Cascades
- 적분 이미지
- SIFT
- SIFT의 내부 알고리즘
- SURF
- SURF 키포인트 검출
- SURF 키포인트 설명자
- 요약
- Haar Cascades
- 9장. OpenCV를 이용한 비디오 처리
- 비디오 읽기/쓰기
- 비디오 읽기
- 비디오 쓰기
- 비디오에 대한 기본 연산
- 그레이스케일로 변환
- 색상 추적
- 물체 추적
- 커널화된 상관필터(KCF)
- 루카스 카나데 추적기(LK 추적기)
- 요약
- 비디오 읽기/쓰기
- 10장. 컴퓨터 비전을 서비스로 제공하기
- 컴퓨터 비전을 서비스로 제공하기: 구조 개요
- 환경 설정
- http-server
- virtualenv
- flask
- 서버-클라이언트 모델 개발
- 클라이언트
- 서버
- 컴퓨터 비전 엔진
- 모두 다 합치기
- 클라이언트
- 서버
- 요약
도서 오류 신고
정오표
정오표
[p.45 첫 번째 코드 4행]
>>> io.imshow(hsv)
->
>>> io.imshow(img_hsv)