Top

파이썬과 OpenCV를 이용한 컴퓨터 비전 학습 [컴퓨터 비전 애플리케이션을 만들기 위한 강력한 OpenCV 3와 파이썬 활용하기]

  • 원서명OpenCV 3 Computer Vision with Python Cookbook: Leverage the power of OpenCV 3 and Python to build computer vision applications (ISBN 9781788474443)
  • 지은이알렉세이 스피쉐보이(Alexey Spizhevoy), 알렉산드르 류브니코프(Aleksandr Rybnikov)
  • 옮긴이테크 트랜스 그룹 T4
  • ISBN : 9791161752396
  • 35,000원
  • 2018년 11월 30일 펴냄 (절판)
  • 페이퍼백 | 416쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

OpenCV 3는 컴퓨터 비전, 머신 러닝, 이미지 처리를 위한 기본적인 크로스 플랫폼 라이브러리다. 이 책에서 보여주는 다양한 방법으로 현재 막혀 있는 컴퓨터 비전 문제를 해결할 수 있을 것이며, 관련 애플리케이션의 성능을 향상시킬 수 있다.
픽셀 단위의 조작을 통한 이미지 처리 방법과 히스토그램을 사용해 이미지를 분석하는 방법을 배울 수 있다. 그리고 이미지 콘텐츠를 더 향상시키기 위해서 이미지 필터를 어떻게 사용해야 하는지, 촬영된 장면의 다른 뷰들을 연결 처리하기 위해서 이미지 기하학을 어떻게 사용할 것인지를 보여준다. 카메라 보정과 멀티 뷰 분석을 위한 기법도 제공한다. 객체 검출과 인식과 같은 애플리케이션에서 활용할 수 있는 저수준 픽셀 정보를 고수준 개념으로 전환해주는 방법을 배울 수 있다. 파일이나 카메라에 있는 동영상을 처리하는 방법, 움직이는 객체를 검출하고 추적하는 방법에 대해서도 다룬다. 끝으로 딥러닝, 객체 분류 및 뉴럴 네트워크와 같은 최신 주제에 대해서도 살펴볼 수 있다.

이 책에서 다루는 내용

■ 저수준 이미지 처리 방법
■ 컴퓨터 비전에서 필요한 일반적인 선형 대수 도구
■ 다양한 카메라 모델과 에피폴라 기하학
■ 이미지 내에 있는 관심 점을 검출하는 방법과 각 방법의 비교
■ 이미지 이진화와 관심 영역의 마스크 처리
■ 동영상에서의 객체 검출과 추적

이 책의 대상 독자

파이썬에 관한 기본 지식이 있는 개발자를 위한 책이다. OpenCV에 대해 어느 정도 알고 있는 상태에서 다른 개발자보다 성능이 좋고 빠르며, 복잡하지만 더 실용적인 컴퓨터 비전 시스템을 만들고자 한다면 이 책을 추천한다.

이 책의 구성

1장, '입출력과 GUI'에서는 이미지와 동영상의 기본 동작(불러오기, 저장하기, 표시하기)을 알아본다.
2장, '행렬, 색상, 필터'에서는 행렬을 처리하는 동작을 알아본다. 이미지, 채널, 픽셀에 대한 영역을 처리하는 방법도 보여준다. 또한 많은 색상 공간 사이의 전환과 필터 사용법도 다룬다.
3장, '윤곽선과 분할'에서는 이미지 마스크를 만드는 방법, 윤곽선을 찾는 방법, 이미지를 분할하는 방법을 알아본다.
4장, '객체 검출과 머신 러닝'에서는 특별한 용도로 만들어진 객체(QR 코드와 ArUCo 마커)부터 일상에서 볼 수 있는 객체까지 여러 가지 형태의 객체를 검출하고 추적하는 방법을 알아본다.
5장, '딥러닝'에서는 심층 신경망을 사용하는 OpenCV 내의 새로운 기능을 알아본다. 딥러닝 모델을 사용하고, 그 모델을 컴퓨터 비전 태스크에서 사용하는 예제를 살펴볼 수 있다.
6장, '선형 대수'에서는 선형 대수 문제를 풀기 위한 유용한 수학적 방법을 자세히 살펴본다. 이러한 수학적 방법을 컴퓨터 비전에 적용하는 예제도 볼 수 있다.
7장, '검출기와 기술자'에서는 이미지 특징 기술자를 어떻게 사용하는지 알아본다. 여러 가지 방법들로 특징 기술자를 연산하고, 표시하며, 객체 검출과 추적을 위해 어떻게 매칭시킬 것인지를 살펴볼 수 있다.
8장, '이미지 및 동영상 처리'에서는 여러 장의 이미지들을 어떻게 사용하는지와 각 시퀀스 간의 상관관계에 기반해 어떻게 결과를 얻는지 알아본다.
9장, '다중 뷰 기하학'에서는 장면 내의 3D 기하학적 정보를 얻기 위해 카메라를 어떻게 사용할지 알아본다.

저자/역자 소개

지은이의 말

컴퓨터 비전은 많은 분야에서 광범위한 주제로 사용된다. 사용자 프로젝트에서 컴퓨터 비전 알고리즘을 시작하고자 하더라도 어디서부터 시작해야 할지 애매할 수 있다. 이 책의 독자가 컴퓨터 비전 엔지니어라고 하더라도 심도 있게 접근하거나 더 많은 내용을 알려면 많은 기술을 알아야 함은 자명하다. 이와 같은 두 경우 모두, 실전과 관련된 내용을 아는 것이 가장 중요하다. 실제 문제를 해결하는 방법을 통해 지금 존재하는 방법들을 사용자 요구 사항에 맞춰 나갈 수 있으며, 샘플 코드들을 통해 컴퓨터 비전 알고리즘의 가능성과 한계를 많이 이해할 수 있을 것이다. 이 책은 특히 실제 컴퓨터 비전 작업을 할 때 직접적인 도움을 많이 주고자 한다. 이 책에서는 OpenCV를 사용해 다양한 기술을 소개한다. OpenCV는 가장 많이 사용되고, 다양한 기능이 있다. 또한 광범위하게 사용되는 오픈소스 컴퓨터 비전 라이브러리다.
간단한 예제부터 매우 복잡한 예제까지 제공한다. 따라서 이해하기 쉬운 유용하고 도움이 되는 정보를 많이 찾을 수 있을 것이다.

지은이 소개

알렉세이 스피쉐보이(Alexey Spizhevoy)

컴퓨터 비전 분야에서 7년의 R&D 경력이 있다. 주요 OpenCV 컨트리뷰터인 잇시즈(Itseez)에서 인텔에 인수되기 전 5년간 근무했다. OpenCV 라이브러리의 동영상 흔들림 방지와 포토 스티칭 모듈에 기여했고 3D 복원, 비디오 콘퍼런스, 객체 검출과 추적, 의미론적 분할, 운전 보조 등의 많은 분야에 사용되는 다양한 OpenCV 프로젝트에 참여했다. 컴퓨터 과학으로 석사 학위를 받았고, 현재 박사 과정에 있다.

알렉산드르 류브니코프(Aleksandr Rybnikov)

C++ 프로그래밍에 5년 이상의 경력이 있고 컴퓨터 비전 분야에서는 3년의 경력이 있다. OpenCV의 개발과 지원을 했던 잇시즈에서 근무했고, 그 후에는 인텔에서 근무했다. 기존 기능을 더욱더 좋게 개선시켰고, 추가적인 2개의 딥러닝 프레임워크와 많은 기능들을 추가해 OpenCV의 dnn 모듈을 향상시켰다. 엔지니어로서 붓꽃 인식, 객체 검출, 의미론적 분할, 6 DOF 자세 추정 및 디지털 홀로그램 같은 CV와 DL 프로젝트에 참가했다. 물리학 석사 학위가 있다.

옮긴이의 말

컴퓨터 비전은 컴퓨터에 시각을 부여해 이미지를 분석함으로써 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등의 다양한 객체를 인식하는 데 응용한다. 또한 인공지능 기술이 발전하면서 객체 인식 기술의 진화 속도가 빨라지고 있다. 최근에는 컴퓨터가 사물을 정확하게 인식해 유용한 정보를 제공할 수 있게 되면서 컴퓨터 인터페이스에 변혁이 일어나고 있다. 아이폰 X에는 얼굴을 인식하는 기능인 페이스 ID가 탑재됐고, 스마트폰의 카메라를 이용한 신용카드 스캔 등의 기술이 실제로 적용되고 있다. 컴퓨터 비전을 구현하기 위한 사용자의 프로젝트에서 컴퓨터 비전 알고리즘을 시작하길 원하더라도 어디서부터 시작해야 할지 다소 막막할 수 있다. 시작이 어렵거나 해결하기 막막한 문제점이 있다면 이 책을 통해 해소할 수 있다. 이론으로 시작하며, 각각의 작은 주제를 하나의 예제로 나타내 원리와 실행 결과를 한꺼번에 살펴볼 수 있다. 레시피를 보고 그대로 따라 조리하는 것처럼 책의 본문을 보고 그대로 따라 하고 결과를 확인하면 기본적인 동작의 이해에 쉽게 다가갈 수 있을 것이다.
이 책에서 다루는 OpenCV는 비전 작업에 필요한 많은 기능을 지원하는데, 이 책은 이와 같은 오픈소스 컴퓨터 비전 라이브러리를 사용해 비전 애플리케이션 개발까지 나갈 수 있는 발판이 될 것이다. 간단한 예제를 위주로 다루지만, 이를 토대로 비전과 관련된 내용을 하나씩 이해하면 유용한 많은 정보를 얻게 될 것이다. 이 책을 통해 비전 학습을 위해 필요한 개념인 객체 검출과 머신 러닝에 대한 내용을 학습할 수 있다. 그리고 여러 가지 다른 형태의 객체를 검출하고 추적하는 방법을 파악할 수 있으며, 딥러닝 부분에서는 심층 신경망을 사용하는 OpenCV 내의 새로운 기능을 살펴볼 수 있다. 또한 사용된 딥러닝 모델을 소개하고 그 모델을 컴퓨터 비전 태스크에서 사용하는 예제를 확인할 수 있다. 이미지 특징 기술자를 어떻게 사용하는지에 대한 내용도 다룬다. 여러 가지 방법들로 특징 기술자를 연산하고 표시하며, 객체 검출과 추적을 위한 매칭 방법도 살펴볼 수 있다.
이 책이 모든 독자가 OpenCV와 머신 러닝 등에 관련된 기본 이론을 이해하고 실제로 구현하는 데 많은 도움이 되길 진심으로 바란다.

옮긴이 소개

테크 트랜스 그룹 T4

최신 테크놀로지에 대한 리서치를 목적으로 하는 IT 스터디 그룹이다. 엔터프라이즈 환경에서 오픈소스를 활용해 프레임워크를 구축하는 데 관심이 많으며, 스프링(Spring), React.js, Node.js, OpenCV, ML 등의 기술에 주목하고 있다. 오픈소스 기반의 플랫폼 개발 및 활용도 주요 관심 분야다. 에이콘출판사에서 펴낸 『OpenCV를 위한 머신 러닝』(2017), 『추천 엔진을 구축하기 위한 기본서』(2017) 등을 번역했다.

목차

목차
  • 1장. 입출력과 GUI
    • 소개
    • 파일에서 이미지 읽어오기
    • 간단한 이미지 변환: 크기 조절 및 뒤집기
    • 손실 및 무손실 압축을 사용한 이미지 저장
    • OpenCV 창에 이미지 표시
    • OpenCV 창에서 버튼 및 탐색바와 같은 UI 요소로 작업
    • 2D 프리미티브 그리기: 마커, 선, 타원, 사각형 및 텍스트
    • 사용자의 키보드 입력 처리
    • 사용자의 마우스 입력을 처리해 앱을 대화형으로 만들기
    • 카메라 프레임 캡처 및 표시
    • 비디오 프레임 스트림 재생
    • 프레임 스트림 프로퍼티 얻기
    • 프레임 스트림을 비디오로 저장
    • 비디오 파일의 프레임 간 이동

  • 2장. 행렬, 색상, 필터
    • 소개
    • 행렬 조작: 생성하기, 채우기, 요소 접근하기, ROI
    • 데이터 타입과 스케일 변환
    • NumPy를 사용한 비이미지 데이터 영속성
    • 이미지 채널 조작
    • 이미지의 색 공간 변환
    • 감마 보정과 요소 단위의 수학
    • 평균/분산 이미지 정규화
    • 이미지 히스토그램 계산
    • 이미지 히스토그램 평활화
    • 가우시안 필터, 중앙값 필터, 양방향 필터를 사용한 노이즈 제거
    • 소벨 필터로 이미지 경사도 계산
    • 자체 필터 생성과 적용
    • 실수 값으로 된 가버(Garbor) 필터로 이미지 처리
    • 이산 푸리에 변환을 사용한 공간 도메인과 주파수 도메인 간 변환
    • 이미지 필터링을 위한 이미지 주파수 조작
    • 다양한 이미지 임계 처리법
    • 형태 연산자
    • 이미지 마스크와 이진 연산

  • 3장. 윤곽선과 분할
    • 소개
    • Otsu 알고리즘을 사용한 그레이스케일 이미지 이진화
    • 이진 이미지에서 외부 및 내부 윤곽선 찾기
    • 이진 이미지에서 연결된 구성 요소 추출
    • 선과 원을 2차원 점의 집합으로 맞추기
    • 이미지 모멘트 계산
    • 곡선으로 작업: 근사, 길이, 면적
    • 윤곽선 내부에서 점의 포함 여부 확인
    • 거리 맵 계산
    • 평균 알고리즘을 k- 이용한 이미지 분할
    • 분할 시드를 사용해 이미지 분할: 워터쉐드 알고리즘

  • 4장. 객체 검출과 머신 러닝
    • 소개
    • GrabCut 알고리즘을 사용해 객체 마스크 얻기
    • Canny 알고리즘을 사용해 에지 찾기
    • Hough 변환을 사용해 직선과 원 검출
    • 템플릿 매칭을 통한 객체 찾기
    • 메디안 플로우 객체 추적기
    • 추적 API의 다양한 알고리즘을 사용해 객체 추적
    • 두 프레임 사이의 밀집 옵티컬 플로우 계산
    • 체스판과 원 그리드 패턴 검출
    • SVM 모델을 사용한 단순 보행자 검출기
    • 다양한 머신 러닝 모델을 사용한 광학 문자 인식
    • Haar/LBP 캐스케이드를 사용해 얼굴 검출
    • AR 애플리케이션을 위한 AruCo 패턴 검출
    • 자연 영상에서 텍스트 검출
    • QR 코드 검출기

  • 5장. 딥러닝
    • 소개
    • 이미지를 텐서/blobs로 표현
    • Caffe, Torch, TensorFlow 형식의 딥러닝 모델 불러오기
    • 모든 레이어에 대한 입/출력 텐서 형태 가져오기
    • 이미지 사전 처리와 컨벌루션 네트워크로 추론
    • 추론 시간과 각 계층의 기여도 측정
    • GoogleNet/Inception, ResNet 모델로 이미지 분류
    • SSD 모델로 객체 검출
    • FCN(Fully Convolution Network) 모델을 사용해 장면 분할
    • SSD, ResNet 모델을 사용해 얼굴 검출
    • 연령 및 성별 예측

  • 6장. 선형 대수
    • 소개
    • 직교 프로쿠르스테스 문제
    • 순위 제한과 행렬 근사 방법
    • 주성분 분석
    • 선형 방정식 풀기(underdetermined, overdetermined 포함)
    • 다항 방정식 풀기
    • 심플렉스 방법을 사용한 선형 프로그래밍

  • 7장. 검출기와 기술자
    • 소개
    • 이미지의 코너 찾기: 해리스(Harris)와 FAST
    • 추적을 위한 이미지 내 좋은 코너 선택
    • 키포인트, 기술자 및 매칭 결과 나타내기
    • 크기 불변 키포인트의 검출
    • 이미지 키포인트에 대한 컴퓨팅 기술자: SURF, BRIEF, ORB
    • 여러 기술자 간의 대응 관계를 찾기 위한 매칭 기법
    • 신뢰할 수 있는 매칭 결과 찾기: 교차 검증 및 비율 테스트
    • 모델 기반 매칭 필터링: RANSAC
    • 전역 이미지 기술자 구축을 위한 BoW 모델

  • 8장. 이미지 및 동영상 처리
    • 소개
    • 아핀과 원근감 변환을 사용해 이미지 뒤틀기
    • 임의 변환을 사용한 이미지 재매핑
    • 루카스-카나데 알고리즘을 사용해 프레임 간 키포인트 추적
    • 배경 제거
    • 많은 이미지를 파노라마 형태로 스티칭
    • 비지역적 평균 알고리즘을 사용해 사진 노이즈 제거
    • HDR 이미지 만들기
    • 이미지 수리 방법을 사용해 사진 내의 결함 제거

  • 9장. 다중 뷰 기하학
    • 소개
    • 핀홀 카메라 모델 보정
    • 어안 렌즈 카메라 모델 보정
    • 스테레오 장비 보정: 외부 추정
    • 왜곡 점과 비왜곡 점
    • 이미지에서 렌즈 변형 효과 제거
    • 삼각 측량을 통해 두 가지 관찰 지점으로부터 3D 점 복원
    • PnP 알고리즘을 사용해 상대적 카메라 객체의 자세(포즈) 찾기
    • 스테레오 정류기를 통한 두 개의 뷰 정렬
    • 에피폴라 기하학: 컴퓨팅 기본과 필수 행렬
    • 회전과 이동을 위한 필수적인 행렬 분해
    • 스테레오 이미지의 불일치 맵 추정
    • 호모그래피 변환 추정을 통한 특별한 2개 뷰의 기하학 특성 살펴보기
    • 평면 영상: 호모그래피 분해 방법을 사용해 회전과 이동
    • 회전 카메라 케이스: 호모그래피 변환에서 카메라 회전 추정 사용

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안