Top

컴퓨터 비전과 알고리즘 [OpenCV 알고리즘을 활용한 컴퓨터 비전 프로그래밍]

  • 원서명Hands-On Algorithms for Computer Vision: Learn how to use the best and most practical computer vision algorithms using OpenCV (ISBN 9781789130942)
  • 지은이아민 아마디 타제칸디(Amin Ahmadi Tazehkandi)
  • 옮긴이테크 트랜스 그룹 T4
  • ISBN : 9791161753072
  • 30,000원
  • 2019년 05월 30일 펴냄
  • 페이퍼백 | 360쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

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

요약

컴퓨터의 처리 능력 및 성능 향상으로 인해 컴퓨터 비전 영역의 활용 가능성은 매우 긍정적인 평가를 받고 있다. 애플리케이션에서 컴퓨터 비전 작업을 좀 더 효율적으로 수행하기 위해 많은 알고리즘이 개발되고 있다.
이 책은 비전 알고리즘에 대한 기본 내용으로 시작하며, 실습 예제를 통해 내부의 각 동작이 어떻게 이루어지는 지를 학습할 수 있다.
컴퓨터 비전 개발에 필요한 도구의 설치, 구성 방법을 비롯해 OpenCV 프레임 워크와 강력한 라이브러리, 기능 모음을 알아보고, 가장 간단한 이미지 수정, 필터링 및 변환, 딥러닝 알고리즘을 사용한 실시간으로 물체를 탐지하는 알고리즘에 대한 지식을 차근차근 학습할 수 있다.

이 책에서 다루는 내용

■ 머신 러닝 및 인공지능 알고리즘 학습
■ 이미지와 비디오 읽기, 쓰기 및 처리
■ 수학, 행렬 및 기타 유형의 이미지 데이터 작업 수행
■ 역 투영 이미지의 히스토그램 생성 및 사용
■ 동작 감지, 전경 추출 및 객체 추적
■ 특징 검출기 알고리즘으로 키포인트 추출
■ 캐스케이드 분류기 개발 및 테스트
■ 텐서플로(TensorFlow) 객체 탐지를 통한 여러 객체 탐지

이 책의 대상 독자

운영체제에서 C++ 프로그래밍 언어와 타사 라이브러리 사용법에 대한 지식을 쌓은 개발자의 경우에는 이 책의 주제를 매우 쉽게 이해하고 사용할 수 있다. 반면에 파이썬 프로그래밍 언어에 익숙한 개발자라면 OpenCV 라이브러리 사용법을 익히고자 이 책을 활용할 수 있다. 그러나 이 책은 C++로 구현된 알고리즘에 초점 두고 있기 때문에 예제를 C++에서 파이썬까지 스스로 적용해봐야 할 것이다.

이 책의 구성

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 방법을 학습한다. 끝에서는 텐서플로와 같은 타사 라이브러리의 사전 모델을 사용해서 다른 유형의 여러 객체를 실시간으로 검색하는 방법도 파악한다.

상세 이미지

저자/역자 소개

지은이의 말

컴퓨터 비전 영역은 컴퓨터의 처리 능력 및 성능 향상으로 인해 긍정적인 영향을 받고 있다. 그리고 시간이 지남에 따라 컴퓨터 비전 작업을 효율적으로 수행하기 위해 점점 더 많은 알고리즘이 도입되고 있다. 컴퓨터 비전 알고리즘 실습은 컴퓨터 비전 분야에 관심이 있고, 전문 컴퓨터 비전 개발자가 사용하는 가장 실용적인 알고리즘을 알고자 하는 이들을 위한 출발점이 된다. 이 책은 기본 내용으로 시작해 각 알고리즘에 대한 실습 예제를 통해 내부의 과정들을 학습할 수 있다. 처음에는 컴퓨터 비전 개발에 필요한 도구의 설치, 구성 방법을 학습한다. 그리고 OpenCV 프레임 워크와 강력한 라이브러리, 기능 모음을 살펴본다. 가장 간단한 이미지 수정, 필터링 및 변환부터 시작하며 딥러닝 알고리즘을 사용해 실시간으로 물체를 탐지하는 등의 정교한 작업을 수행 할 수 있을 때까지 다양한 알고리즘에 대한 지식을 점진적으로 구축한다.

지은이 소개

아민 아마디 타제칸디(Amin Ahmadi Tazehkandi)

이란 출신 작가이자 개발자이며 컴퓨터 비전 전문가다. 이란에서 컴퓨터 소프트웨어 공학을 전공했으며 전 세계의 수많은 소프트웨어 및 산업 회사에서 근무했다.

옮긴이의 말

컴퓨터 비전은 시각을 컴퓨터에 부여해 이미지에 대한 분석으로 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등의 다양한 객체를 인식하는 데 응용된다. 인공지능 기술이 발전하면서 객체 인식 기술 진화에 속도가 붙고 있다.
컴퓨터가 사물을 정확하게 인식해 유용한 정보를 제공할 수 있게 되면서 컴퓨터 인터페이스에 변혁이 일어나고 있다. 스마트폰에서 얼굴을 인식하는 기술이라던가, 도로를 주행하는 차량의 차선 인식, 보행자 인식에 이르기까지 매우 다양한 디바이스에서 활용되고 있다.
컴퓨터 비전을 구현하기 위한 프로젝트에서 컴퓨터 비전 알고리즘을 시작하고 싶어도 어디서부터 시작해야 할지를 찾는 것은 어려울 수 있다. 컴퓨터 엔지니어라고 해도 비전과 관련해서 더 많은 내용을 알려면 관련 알고리즘들을 많이 알아야 한다. 이 책에서는 비전 구현을 위한 알고리즘을 소개하고 활용할 수 있도록 도와준다.
기본적인 OpenCV의 내용부터 시작해서 이미지에 도형, 텍스트를 그리는 방법과 히스토그램 시각화에 이르기까지 기초를 탄탄히 다진 후, 실전에 활용 가능한 비디오 분석, 객체 탐지, 머신 러닝과 같은 알고리즘들을 소개한다.
6장의 ‘비디오 분석 - 동작 검출 및 추적’에서는 컴퓨터 비전에서 가장 널리 사용되는 추적 알고리즘을 사용해 실시간 객체 탐지 및 추적과 같은 작업을 위해 비디오를 처리하는 방법을 설명한다. 7장의 ‘객체 탐지 - 특징 및 기술자’는 템플릿 매칭을 사용해 객체 검출에 대한 간단한 소개부터 시작해 형상 분석에 사용할 수 있는 광범위한 알고리즘에 대해 알려준다. 8장의 ‘컴퓨터 비전에서의 머신 러닝’은 OpenCV 내 머신 러닝(ML) 및 심층 신경망(DNN) 모듈과 가장 중요한 알고리즘, 클래스 및 기능에 대해 다룬다. SVM 알고리즘으로 시작해 유사한 훈련 그룹을 기반으로 모델을 훈련시키는 방법을 배우고 그 모델을 사용해 입력 데이터를 분류한다. 이러한 내용들을 학습하면서 각자의 실력을 배양할 수 있을 것이다. 진심으로 이 책이 독자들에게 OpenCV와 머신 러닝 등에 대한 알고리즘들을 이해하고 실제로 구현하는 데 많은 도움이 되길 바란다.

옮긴이 소개

테크 트랜스 그룹 T4

최신 IT 테크놀로지에 대한 리서치를 목적으로 하는 스터디 그룹이다. 엔터프라이즈 환경에서 오픈 소스를 활용한 프레임워크 구축에 관심이 많으며 Spring, React.js, Node.js, OpenCV, ML 등의 기술에 주목하고 있다. 또한 다양한 오픈 소스 기반의 플랫폼 개발 활용에 많은 관심을 가지고 있다. 『OpenCV를 위한 머신 러닝』(에이콘, 2017), 『파이썬과 OpenCV를 이용한 컴퓨터 비전 학습』(에이콘, 2018) 등을 번역했다.

목차

목차
  • 장. 컴퓨터 비전 소개
    • 기술적 요구 사항
    • 컴퓨터 비전 이해
    • 이미지에 대해 학습하기
      • 색상 공간
      • 입력, 처리 및 출력
    • 컴퓨터 비전 프레임워크 및 라이브러리
    • 요약
    • 질문 사항

  • 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장

도서 오류 신고

도서 오류 신고

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

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

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