Top

파이썬 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) 검색과 같은 서비스가 어떻게 구축되는지 확인할 수 있다.

상세 이미지

저자/역자 소개

지은이의 말

컴퓨터 비전은 지난 몇 년 동안 상당한 진보를 이뤄냈다. 이러한 발전은 컴퓨터 과학뿐만 아니라 의학, 우주 탐사, 국방과 같은 다른 분야에도 큰 영향을 미쳤다. 연구자들은 컴퓨터 비전 기술을 이용해 이미지를 분석함으로써 미생물부터 수광년 떨어진 천체 입자에 이르기까지 다양한 분야에서 진전을 이룰 수 있었다. 컴퓨터 비전은 현재 많은 분야에서 유용한 연구 개발 도구로 사용되고 있다. 앞으로 컴퓨터 비전의 영향력은 더 커질 것이다. 가장 최근의 응용 사례는 무인 자동차다. 이런 혁명의 일부가 되려면 무엇보다 컴퓨터 비전 알고리즘을 이해하고 구현할 수 있는 것이 중요하다. 이 책은 파이썬에서 사용할 수 있는 세 가지 컴퓨터 비전 라이브러리(Pillow, scikit-image, OpenCV)를 소개한다. 예제와 코드를 통해 기본적인 이미지 처리, 모폴로지 연산, 복잡한 특징 검출 알고리즘에 관한 내용을 이해할 수 있도록 도울 것이다.

지은이 소개

사우랍 카푸(Saurabh Kapur)

인도델리공과대학(Indraprastha Institute of Information Technology, Delhi)의 컴퓨터과학과 학생이며 컴퓨터 비전, 수치 해석, 알고리즘 설계에 관심이 많다. 도전적인 컴퓨터 프로그래밍 문제들을 해결하면서 많은 시간을 보낸다. IoT 응용프로그램을 제작하거나 하드웨어에 납땜하는 것도 즐긴다. 여가 시간에는 크리켓을 하거나 관람한다.

옮긴이의 말

최근 컴퓨터를 이용한 이미지의 인식률이 사람의 능력을 뛰어넘는다는 소식이 들려오고 있다. 이와 같은 기술 발전으로 매장에서 물건을 살 때 별도로 결제하지 않더라도 물건을 집는 장면을 인식해 자동으로 결제하는 아마존 고(Amazon Go)와 같은 서비스가 생겼고, 길/차량/사람/신호/표지판 인식 기술을 활용한 자율 주행 자동차가 등장했다. 이처럼 이미지에 포함된 정보를 추출해내는 컴퓨터 비전 기술은 여러 분야에서 핵심적인 역할을 하고 있으며, 이 활용처가 확대될 것이란 전망이 매우 우세하다. 이 책에서는 컴퓨터 비전을 쉽게 적용하기 위한 방법들을 소개한다. 이전에 컴퓨터 비전은 수학적 배경 없이 접근하기 어려웠지만, OpenCV와 같은 훌륭한 라이브러리들이 등장하면서 비전 알고리즘 내부 내용을 모두 이해하거나 직접 구현하지 않아도 컴퓨터 비전을 원하는 곳에 적용할 수 있게 됐다. 또한 이런 라이브러리와 더불어 프로그램을 쉽게 작성하게 해주는 파이썬을 사용하면, 컴퓨터 비전 활용이 더욱 더 쉽다. 나는 물체 인식과 추적에 OpenCV를 활용해왔다. 처음 OpenCV를 활용하기 시작한 2005년쯤에는 직접 구현해 사용했던 많은 알고리즘이, 현재 라이브러리에 포함돼 있다. 그리고 이 라이브러리가 파이썬을 지원함에 따라 C나 C++를 이용해 구현하는 것보다 생산성이 높아졌다. 그래서 요즘은 빠른 속도를 요하는 경우를 제외하고는 파이썬을 활용해 프로그램을 작성하고 있다. 좋은 도구의 등장은 원래 해결하고자 하는 문제에 더욱 집중해 빠르게 해결하도록 도움을 주고 있다. 이 책에서는 유용한 도구를 활용해 컴퓨터 비전이 어떻게 적용될 수 있는지, 쉬운 주제부터 복잡한 것까지 단계적으로 보여준다. 단순히 라이브러리 소개에 그치지 않고 이를 활용하고 통합해 실제 컴퓨터 비전 서비스의 구축 과정을 보여줌으로써 컴퓨터 비전이 실제로 활용되는 방법에 대한 아이디어를 얻는 데 무척 유용할 것이다. 또한 컴퓨터 비전에 대해 흥미를 느끼지만 어디서부터 시작할지 고민하는 독자에게도 도움이 될 것이다. 아무쪼록 컴퓨터 비전 기술을 활용해 자신만의 응용 예를 만들고자 하는 독자들에게 도움이 됐으면 한다.

옮긴이 소개

김정중

학습에 기반한 로봇의 동작 계획/생성으로 박사 학위를 받았고, 복잡한 환경에서 잘 움직이고 여러 작업을 잘하기 위한 로봇의 동작 계획/생성에 관련된 연구를 진행 중이다. 추적, 인식에 관한 여러 컴퓨터 비전 알고리즘을 구현하고 시스템을 구축했으며, OpenCV 라이브러리의 경우 0.x 버전부터 활용하고 있다. 취미로 사진 찍는 것을 즐기며, 컴퓨터 비전 기술을 바탕으로 상황을 인식하고 멋진 사진을 스스로 찍는 로봇을 틈틈이 만들고 있다.

목차

목차
  • 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 키포인트 설명자
    • 요약

  • 9장. OpenCV를 이용한 비디오 처리
    • 비디오 읽기/쓰기
      • 비디오 읽기
      • 비디오 쓰기
    • 비디오에 대한 기본 연산
      • 그레이스케일로 변환
    • 색상 추적
    • 물체 추적
      • 커널화된 상관필터(KCF)
      • 루카스 카나데 추적기(LK 추적기)
    • 요약

  • 10장. 컴퓨터 비전을 서비스로 제공하기
    • 컴퓨터 비전을 서비스로 제공하기: 구조 개요
    • 환경 설정
      • http-server
      • virtualenv
      • flask
    • 서버-클라이언트 모델 개발
      • 클라이언트
      • 서버
    • 컴퓨터 비전 엔진
    • 모두 다 합치기
      • 클라이언트
      • 서버
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.45 첫 번째 코드 4행]
>>> io.imshow(hsv)
->
>>> io.imshow(img_hsv)