Top

[기본 영상처리부터 고급 컴퓨터 비전까지 아우르는]
(개정판) OpenCV를 활용한 컴퓨터 비전 프로그래밍

  • 원서명OpenCV Computer Vision Application Programming Cookbook, 2nd Edition (ISBN 9781782161486)
  • 지은이로버트 라가니에(Robert Laganière)
  • 옮긴이이문호
  • ISBN : 9788960777224
  • 35,000원
  • 2015년 06월 16일 펴냄 (절판)
  • 페이퍼백 | 472쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

판매처

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

책 소개

요약

C++ 인터페이스 기반 OpenCV 라이브러리의 최신 내용을 담아냈으며, 초판의 모든 예제를 재검토해 수정하고, OpenCV 라이브러리의 필수 기능에 관한 더 많은 범위를 추가한 책이다. 이론과 프로그래밍을 모두 겸하면서 처리 결과를 직접 보고 분석해야 하는 분야인 영상처리와 컴퓨터 비전 이론 중 주요 알고리즘을 선정해, 초보자도 쉽게 읽으면서 객체지향 프로그래밍으로 구현한 예제로 배울 수 있도록 구성했다. 또한 C++로 효율적으로 구현하는 방법이 구현된 예제 소스를 제공하므로, 독자는 마음껏 수정해 자신만의 컴퓨터 비전 애플리케이션을 개발할 수 있다. 이 책에서 다루는 OpenCV 버전은 2.4.x을 기준으로 한다.

이 책에서 다루는 내용

■ OpenCV 라이브러리를 이용한 프로그램 설치와 생성
■ 화소 다루기를 통한 영상처리
■ 히스토그램을 이용한 영상 분석
■ 영상을 동질 영역으로 분할하고, 의미 있는 객체 추출
■ 영상 내용을 개선하는 영상 필터 적용
■ 묘사 장면의 다른 시점을 정합하기 위해 영상 기하 활용
■ 서로 다른 영상 관찰로부터 카메라 보정
■ 기계 학습 기술을 이용한 얼굴 검출과 사람 검출

이 책의 대상 독자

이 책은 컴퓨터 비전 애플리케이션을 구축하기 위해 OpenCV 라이브러리를 사용하는 방법을 배우려는 초보 C++ 프로그래머에게 적합한 책이다. 컴퓨터 비전 프로그래밍의 개념을 알기 원하는 전문 소프트웨어 개발자에게도 안성맞춤이다. 학부 수준의 컴퓨터 비전 코스에서 교재로 사용할 수 있으며, 영상처리와 컴퓨터 비전의 대학원생과 연구자에게 최고의 참고서다.

이 책의 구성

1장, ‘영상처리 준비’에서는 OpenCV 라이브러리를 소개하고 영상을 읽고 띄울 수 있는 간단한 애플리케이션을 구축하는 방법을 보여준다. OpenCV의 기본 데이터 구조체도 소개한다.

2장, ‘화소 다루기’에서는 영상을 읽을 수 있는 방법을 설명한다. 각 화소에 작업을 수행하기 위해 영상을 조회하는 여러 방법을 설명한다.

3장, ‘클래스를 이용한 컬러 영상처리’에서는 훨씬 나은 컴퓨터 비전 애플리케이션을 구축하는 데 도움이 되는 여러 가지 객체지향 디자인 패턴을 제시하는 예제로 구성한다. 또한 영상에서 컬러의 개념을 설명한다.

4장, ‘히스토그램으로 화소 세기’에서는 영상 히스토그램을 계산하는 방법과 영상 수정에 사용할 수 있는 방법을 보여준다. 영상 분할, 객체 검출, 영상 검색을 해낼 수 있는 히스토그램에 기반을 둔 여러 응용을 제시한다.

5장, ‘형태학 연산으로 영상 변환’에서는 수학적 형태학의 개념을 살펴본다. 여러 연산자를 제시하고, 에지, 코너, 분할 검출에 사용할 수 있는 방법을 알려준다.

6장, ‘영상 필터링’에서는 주파수 분석과 영상 필터링의 원리를 알려준다. 저주파 필터와 고주파 필터를 영상에 어떻게 적용하는지 보여주고, 미분 연산자의 개념을 제시한다.

7장, ‘선, 외곽선, 성분 검출’에서는 기하 영상의 특징 검출에 중점을 둔다. 영상에서 외곽선, 선, 연결 성분을 추출하는 방법을 설명한다.

8장, ‘관심점 검출’에서는 영상에서 여러 가지 특징점을 검출하는 검출기에 대해 설명한다.

9장, ‘관심점 기술과 정합’에서는 관심점의 기술자를 계산할 수 있는 방법과 영상 간의 점 정합에 사용하는 방법을 설명한다.

10장, ‘영상에서 투영 관계 추정’에서는 동일한 장면의 두 영상 간에 존재하는 투영 관계를 살펴본다. 카메라 보정 과정도 설명하며, 특징점 정합 문제를 재검토한다.

11장, ‘비디오 시퀀스 처리’에서는 비디오 시퀀스를 읽고, 쓰고, 비디오 시퀀스의 프레임을 처리하는 프레임워크를 제공한다. 한 프레임에서 다음 프레임까지의 특징점을 추적할 수 있는 방법과 카메라 전방에서 움직이는 전경 객체를 추출하는 방법도 보여준다.

저자/역자 소개

지은이의 말

OpenCV(Open Source Computer Vision)는 영상과 비디오 분석에 최적화된 500개 이상의 알고리즘을 포함한 오픈소스 라이브러리다. 1999년에 소개된 이후로 컴퓨터 비전 분야의 연구자와 개발자 커뮤니티에서 주요 개발 툴로 채택했다. 원래 OpenCV는 비전에서의 고급 연구를 주도하고, 비전 기반 CPU 집약 애플리케이션 같은 부가 개발을 촉진하기 위해 게리 브라드스키(Gary Bradski)가 이끄는 팀에 의해 인텔에서 개발했다. 베타 시리즈를 배포한 후 2006년에 1.0 버전을 선보였다. 2009년, OpenCV 2 출시와 함께 두 번째 메이저 배포를 단행했다. 특히 주요 변경 사항으로는 이 책에서 사용하는 새로운 C++ 인터페이스다. 2012년에 OpenCV는 미래 개발을 위해 크라우드펀딩(crowdfunding)으로 운영되는 비영리 재단(http://opencv.org)으로 탈바꿈했다.
이 책은 『OpenCV 2 Computer Vision Application Programming Cookbook』(한국어판은 에이콘출판사에서 2012년 출간되었다. – 옮긴이)의 개정판이며, 이전 판의 모든 예제를 검토해서 수정했다. 또한 OpenCV 라이브러리의 필수 기능에 대한 훨씬 더 넓은 범위를 독자에게 제공하기 위해 새로운 내용을 추가했다.
이 책은 OpenCV 라이브러리의 특징을 다루고 특정 작업을 완수하기 위해 OpenCV 라이브러리를 사용하는 방법을 보여준다. 이 책의 목표는 OpenCV 함수와 클래스가 제공하는 모든 옵션을 자세히 설명하지는 않지만, 처음부터 끝까지 애플리케이션 구축에 필요한 요소를 제공하는 데 있다. 이 책에서는 영상 분석에 관한 기본 개념도 살펴보며, 컴퓨터 비전에서 중요한 알고리즘도 일부 설명한다.
이 책은 영상과 비디오 분석의 세계를 접할 수 있는 기회다. 그러나 시작일뿐이다. 좋은 소식은 OpenCV가 끊임없이 발전하고 확장 중이라는 점이다. OpenCV 라이브러리로 무엇을 할 수 있는지에 대해서는 http://opencv.org/에 있는 계속 업데이트 중인 OpenCV 문서를 찾아보면 된다. 또한 이 책의 업데이트 정보를 제공하는 www.laganiere.name도 방문하기 바란다.

지은이 소개

로버트 라가니에(Robert Laganière)

캐나다의 오타와 대학교 전자공학/컴퓨터과학 대학 교수이며, 현재 VIVA 연구실의 공동 설립자이자, 내용 기반 비디오 분석, 비디오 감시, 객체 인식, 3D 재구성 분야에 관한 여러 과학 논문의 공저자이며, 특허를 보유했다. 『OpenCV 2 Computer Vision Application Programming Cookbook 한국어판』(에이콘출판, 2012)의 저자이며, 2001년에 맥그로힐 출판사에서 출간한 『Object-oriented Software Development』의 공저자다. 2006년에 오타와 기반 비디오 분석 스타트업 회사인 비주얼 코텍스(Visual Cortex)를 공동 창업했으며, 이 회사는 아이워치라이프(iWatchLife)(www.iwatchlife.com)가 2009년에 인수했다. 아이워치라이프에서도 수석 과학자 역할을 맡았다. 2011년부터는 임베디드 비전 솔루션의 선도자인 코그니뷰(Cognivue) 사의 수석 과학자로 일하고 있다. 몬트리올의 에콜 폴리테크닉(Ecole Polytechnique)에서 전자공학 학사학위를 받았고, 몬트리올의 INRS-Telecommuncations에서 석사학위와 박사학위를 받았다. 웹사이트 주소는 www.laganiere.name이다.

옮긴이의 말

로버트 라가니에 교수가 집필한 『OpenCV 2 Computer Vision Application Programming Cookbook 한국어판』 초판이 2012년에 국내 출간된 이후에도, OpenCV는 학계와 산업계에서 가장 널리 사용되는 컴퓨터 비전 라이브러리로 꾸준히 인정받으면서 많은 기능이 추가돼 끊임없이 성능을 개선하고 있다. 현재 2.4.x를 넘어 최신 버전인 3.0으로 판올림하기를 컴퓨터 비전 애플리케이션 개발자가 오랫동안 기다렸을 정도로 주목을 받고 있다.
『(개정판) OpenCV를 활용한 컴퓨터 비전 프로그래밍』은 초판의 모든 예제를 재검토해 수정하고, OpenCV 라이브러리의 기능에 관한 더 많은 범위를 추가한 책이다. 영상처리와 컴퓨터 비전에 필요한 OpenCV의 주요 함수를 중심으로 영상처리 준비를 위한 작업부터 시작해 영상처리 기본 알고리즘부터 컴퓨터 비전의 주요 알고리즘인 특징점 검출과 정합, 투영 관계 등까지 고르게 다루고 있다. 특히 초판의 특징점 추출과 정합에 관련된 내용을 개정판에서 2개의 장으로 분리해 자세하게 다룬다. 개정판을 번역하면서 초판을 본 독자의 의견을 취합하고 관련 문헌을 참조해 업계와 학계에서 쓰이는 용어를 가능한 한 반영했으므로 독자마다 조금은 다르게 느낄 수도 있다.
초판의 ‘옮긴이의 말’에 언급했듯이 이 책은 지금까지 출간된 C 언어 기반 OpenCV 책과 차별화한 책이다. 특히 OpenCV 2.X부터 도입된 C++ 인터페이스를 중심으로 디자인 패턴을 반영한 객체지향 프로그래밍으로 구현된 예제와 함께 공부할 수 있는 프로그래밍 입문서이기도 하다. 따라서 C++를 올바르게 활용하고 싶거나 영상처리와 컴퓨터 비전 분야에 관심이 많은 C++ 전문 개발자에게 길라잡이가 될 것이라 믿는다. 또한, 이 책에서 다루는 OpenCV 버전은 2.4.x을 기준으로 한다. 출판 시점에 최신 버전이 3.0 RC1까지 나왔으므로 새로운 기능이 어떤지 확인하고 싶을 경우 OpenCV 공식 홈페이지에서 제공하는 릴리스 노트를 참조하길 바란다.
잘 쓰면 약, 못 쓰면 독이라는 속담이 있다. 실제로 OpenCV가 제공하는 함수나 클래스를 제대로 사용하려면 해당 알고리즘에 대해 잘 알고 있어야 한다. 그만큼 OpenCV에서 제공하는 온라인 문서와 관련 알고리즘을 기술한 이론서를 함께 보면서 명확하게 이해하고, 올바르게 활용할 수 있을 때까지 시간이 걸리는 한이 있더라도 끊임없이 실험해볼 것을 권하고 싶다. 이 책과 더불어 최신 OpenCV의 흐름을 잘 반영한 다른 OpenCV 책인 『OpenCV 프로그래밍』(에이콘출판, 2015)과 출간 예정인 OpenCV를 이용한 고급 애플리케이션 개발 과정을 다룬 『OpenCV for Secret Agents』(Packt Publishing, 2015) 원서를 같이 참고한다면 자신만의 컴퓨터 비전 애플리케이션 프로젝트에 더 많은 도움이 될 것이다.

옮긴이 소개

이문호

관심 분야는 정보 검색이며, 매일 4시간 이상 출퇴근하면서 다방면의 원서를 읽는 쏠쏠한 즐거움에 빠져 사는 아날로그 세대다. 현재 문헌정보학 박사 과정에 있으며, 온톨로지 플랫폼 관련 솔루션 개발에 전념하고 있다. 오픈소스 자바 검색 엔진인 루씬(Lucene)에 관한 첫 국내서인 『루씬 인 액션』(에이콘출판사, 2005)을 공역했다. 오픈소스 영상처리 라이브러리를 다룬 오픈소스 라이브러리 실무 시리즈 도서를 펴낸 저자로도 잘 알려져 있다. 『MATLAB을 활용한 실용 디지털 영상처리』(홍릉과학출판사, 2005), 『오픈소스 OpenCV를 이용한 컴퓨터 비전 실무 프로그래밍』(홍릉과학출판사, 2007) 등 7권의 책을 저술했으며, 번역서로는 에이콘출판사에서 출간한 『OpenCV 2 Computer Vision Application Programming Cookbook 한국어판』(2012), 『EmguCV와 테서렉트 OCR로 하는 컴퓨터 비전 프로그래밍』(2014), 『OpenCV 프로그래밍』(2015), 『matplotlib을 이용한 데이터 시각화 프로그래밍』(2015)이 있다.

목차

목차
  • 1 영상처리 준비
    • 소개
    • OpenCV 라이브러리 설치
    • 영상을 불러오고, 띄우고, 저장하기
    • cv::Mat 데이터 구조체 살펴보기
    • 관심 영역 정의

  • 2 화소 다루기
    • 소개
    • 화소 값에 접근
    • 포인터로 영상 조회
    • 반복자로 영상 조회
    • 영상을 조회하는 효율적인 반복문 작성
    • 이웃 접근으로 영상 조회
    • 간단한 영상 산술 수행
    • 영상 재사상

  • 3 클래스를 이용한 컬러 영상처리
    • 소개
    • 알고리즘 설계 과정에서 전략 패턴 사용
    • 처리 모듈과 통신하기 위한 컨트롤러 디자인 패턴 사용
    • 컬러 표현 변환
    • 색상, 채도, 밝기로 컬러 표현

  • 4 히스토그램으로 화소 세기
    • 소개
    • 히스토그램 계산
    • 영상 모습을 변경하는 룩업 테이블 적용
    • 영상 히스토그램 평활화
    • 특정 영상 내용을 검출하기 위한 히스토그램 역투영
    • 객체를 찾는 평균 이동 알고리즘 사용
    • 히스토그램 비교를 이용한 유사 영상 검색
    • 적분 영상으로 화소 개수 세기

  • 5 형태학 연산으로 영상 변환
    • 소개
    • 형태학 필터를 이용한 영상 침식과 팽창
    • 형태학 필터를 이용한 영상 열림과 닫힘
    • 형태학 필터를 이용한 에지와 코너 추출
    • 워터쉐드를 이용한 영상 분할
    • MSER를 이용해 두드러진 영역 추출
    • 그랩컷 알고리즘으로 전경 객체 추출

  • 6 영상 필터링
    • 소개
    • 저주파 통과 필터를 이용한 영상 필터링
    • 중간 값 필터를 이용한 영상 필터링
    • 에지를 검출하는 방향성 필터 적용
    • 영상의 라플라시안 계산

  • 7 선, 외곽선, 성분 추출
    • 소개
    • 캐니 연산자로 영상 외곽선 검출
    • 영상에서 허프 변환으로 선 검출
    • 선을 점집합에 맞추기
    • 성분의 외곽선 추출
    • 성분의 모양 기술자 계산

  • 8 관심점 검출
    • 소개
    • 영상에서 코너 검출
    • 특징을 빠르게 검출
    • 크기에 불변한 특징 검출
    • 다중 크기에서 FAST 특징 검출

  • 9 관심점 기술과 정합
    • 소개
    • 지역 템플릿 정합
    • 지역 명도 패턴 기술
    • 이진 특징으로 특징점 기술

  • 10 영상에서 투영 관계 추정
    • 소개
    • 영상 형성
    • 카메라 보정
    • 영상 쌍의 기본 행렬 계산
    • RANSAC을 이용한 영상 정합
    • 두 영상 간의 호모그래피 계산

  • 11 비디오 시퀀스 처리
    • 소개
    • 비디오 시퀀스 읽기
    • 비디오 프레임 처리
    • 비디오 시퀀스 쓰기
    • 비디오에서 특징점 추적
    • 비디오에서 전경 객체 추출

도서 오류 신고

도서 오류 신고

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

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

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