Skip to content

wikibook/dl-vision

Repository files navigation

실전! 텐서플로2를 활용한 딥러닝 컴퓨터 비전

텐서플로 2.0과 케라스로 딥러닝을 활용해 강력한 이미지 처리 앱을 생성한다.

《실전! 텐서플로2를 활용한 딥러닝 컴퓨터 비전》은 객체 탐지, 분할, 동영상 처리, 스마트폰 애플리케이션 등을 위한 고성능 시스템을 만드는 실습서다. 이 책은 구글이 내놓은 오픈소스 머신러닝 라이브러리의 새로운 버전인 텐서플로 2를 기반으로 한다.

이 저장소는 각 장의 내용을 설명하는 몇 가지 노트북과 함께 책에서 보여주는 프로젝트에 대한 전체 소스 코드를 제공한다. 이 저장소는 책을 보완하기 위한 것이다. 따라서 더 자세한 설명과 고급 팁에 대해서는 책 내용을 확인하는 것이 좋다.

🔎 이 책이 다루는 내용

컴퓨터 비전 솔루션은 점차 보편화되고 있어 의료, 자동차, 소셜미디어, 로봇 등의 분야에서 길을 개척하고 있다. 이 책은 머신러닝을 위한 구글 오픈소스 프레임워크의 새로운 버전인 텐서플로2를 살펴본다. 시각적 작업을 위해 합성곱 신경망(Convolutional Neural Network, CNN)을 활용하는 방법을 이해하게 될 것이다.

《실전! 텐서플로2를 활용한 딥러닝 컴퓨터 비전》은 컴퓨터 비전과 딥러닝 기초로 시작해 신경망을 처음부터 만드는 방법을 알려준다. 직관적인 케라스 인터페이스와 함께 텐서플로가 가장 널리 사용되는 AI 라이브러리로 자리잡게 한 기능들을 살펴보고, 계속해서 CNN을 효율적으로 만들고, 훈련시키고, 배포하는 방법을 알아본다. 또한 구체적인 코드 예제로 이 책은 Inception과 ResNet 같은 최신 솔루션으로 이미지를 분류하고, 욜로(You Only Look Once, YOLO), Mask R-CNN, U-Net을 사용해 특정 콘텐츠를 추출하는 방법을 설명한다. 또한 생성적 적대 신경망(Generative Adversarial Networks, GANs), 변분 오토인코더(Variational Auto-Encoders, VAEs)를 만들어 이미지를 생성하고 편집하고, LSTM을 만들어 동영상을 분석한다. 이 과정에서 전이 학습, 데이터 보강, 도메인 적응, 모바일/웹 배포 등의 핵심 개념에 대한 높은 식견을 얻게 될 것이다. 이 책을 마치면, 텐서플로 2.0으로 컴퓨터 비전 문제를 해결하기 위한 이론적 이해와 실용적 기술을 모두 얻게 될 것이다.

이 책은 다음의 흥미로운 내용을 다룬다.

  • 처음부터 신경망을 생성한다.
  • Inception, ResNet 등 최신 아키텍처로 이미지를 분류한다.
  • YOLO, Mask R-CNN, U-Net으로 이미지 안의 객체를 탐지하고 분할한다.
  • 자율 주행 자동차와 표정 인식 시스템에서 마주하게 되는 문제를 해결한다.
  • 전이 학습, GAN, 도메인 적응으로 애플리케이션 성능을 향상시킨다.
  • 순환 신경망을 사용해 동영상 분석을 수행한다.
  • 모바일 기기와 브라우저에서 신경망을 최적화하고 배포한다.

🔧 대상 독자 및 환경

딥 러닝을 처음 접하고 이미지 파일 읽기/쓰기와 픽셀 편집과 같은 파이썬 프로그래밍과 이미지 처리에 대한 배경 지식이 있다면, 이 책이 적합하다. 새로운 TensorFlow 2 기능에 대해 궁금한 전문가라도 이 책이 도움이 될 것이다. 일부 이론적 설명에는 대수 및 미적분 지식이 필요하지만 이 책은 자율 주행 자동차의 시각 인식 및 스마트 폰 앱과 같은 실용적인 응용 프로그램에 중점을 둔 학습자를 위한 구체적인 예를 다룬다.

코드는 주피터 노트북 형태로 제공한다. 따로 표기되지 않은 경우, 파이썬 3.5(이상) 및 텐서플로 2.0을 사용해 실행하면 된다. 설치 방법은 이 책에서 설명한다. (numpy, matplotlib 등과 같이 의존성을 관리하기 위해 Anaconda를 사용하는 것이 좋다.)

아래에서 설명하듯이, 여기에서 제공하는 주피터 노트북은 직접 연구하거나 책에서 제시된 실험을 실행하고 재현하기 위한 코드 레시피로 사용될 수 있다.

또한 이 책에서 사용된 화면/도표의 컬러 이미지를 담은 PDF 파일도 제공한다. 여기를 클릭해 파일을 내려 받으면 된다..

온라인에서 주피터 노트북 학습하기

제공된 코드와 결과를 살펴보고 싶다면 온라인으로 책의 깃허브 저장소를 접속하면 된다. 실제로 깃허브는 주피터 노트북을 렌더링하고 정적 웹 페이지로 표시 할 수 있다. 그렇지만 깃허브 뷰어는 일부 스타일 서식과 대화형 콘텐츠를 무시한다. 이를 해결하고 최상의 상태로 보려면, 온라인에 업로드된 주피터 노트북을 읽기 위해 사용할 수 있는 공식 웹 플랫폼인 주피터 nbviewer를 사용하는 것이 좋다. 이 웹사이트를 사용해 깃허브 저장소에 저장된 노트북을 렌더링할 수 있다. 따라서 여기서 제공하는 주피터 노트북은 다음 주소에서 읽을 수 있다. https://nbviewer.jupyter.org/github/PacktPublishing/Hands-On-Computer-Vision-with-TensorFlow-2

컴퓨터에서 주피터 노트북 실행하기

컴퓨터에서 이 문서를 읽고 실행하려면 먼저 주피터 노트북을 설치해야 한다. 파이썬 환경을 관리하고 배포하기 위해 이미 아나콘다를 사용하고 있다면(이 책에서 권장하는 바이다) 주피터 노트북을 바로 사용할 수 있다(아나콘다와 함께 설치되기 때문이다). 다른 파이썬 배포판을 사용하고 주피터 노트북이 익숙하지 않다면, 설치 방법과 튜토리얼을 읽어보기 바란다.

주피터 노트북을 컴퓨터에 설치했다면 이 책의 코드 파일이 포함된 디렉터리를 찾은 다음, 터미널을 열고 다음 명령어를 실행하라.

$ jupyter notebook

웹 인터페이스는 각자 설정한 기본 브라우저에서 열린다. 거기에서 이 디렉터리를 찾아가 제공된 주피터 노트북을 열어서 읽고, 실행하거나 편집할 수 있다.

어떤 문서는 고성능 컴퓨팅 파워를 요구할 수 있는 고급 실험(규모가 큰 데이터셋에서 인식 알고리즘을 훈련하는 등)을 포함한다. 적절하게 하드웨어를 가속화하지 않고는(즉, 2장, _텐서플로 기초와 모델 훈련_에서 설명하듯이 적절한 NVIDIA GPU가 없다면), 이 스크립트를 수행하는 데 수 시간 또는 수 일이 걸릴 수 있다(적절한 GPU가 있더라도 가장 고급 예제는 꽤 많은 시간이 걸릴 수 있다).

구글 코랩에서 주피터 노트북 실행하기

주피터 노트북을 직접 실행하거나 새로운 실험을 하고 싶지만 컴퓨터가 충분한 컴퓨팅 파워를 갖추지 못했다면 Google Colab을 사용하는 것이 좋다. 코랩은 강력한 컴퓨터에서 계산 집약적인 스크립트를 실행하고자 하는 사람을 위해 구글에서 제공하는 클라우드 기반의 주피터 환경이다.

소프트웨어, 하드웨어 목록

다음 소프트웨어와 하드웨어를 사용하면 이 책(1~9장)에서 제시하는 코드 파일을 모두 실행할 수 있다.

소프트웨어 요구사항 OS 요구사항
1~9 Jupyter Notebook 윈도우, 맥OS X, 리눅스 중 한 가지
1~9 Python 3.5 이상, NumPy, Matplotlib, Anaconda (선택) 윈도우, 맥OS X, 리눅스 중 한 가지
2~9 TensorFlow, tensorflow-gpu 윈도우, 맥OS X, 리눅스 중 한 가지
3 Scikit-Image 윈도우, 맥OS X, 리눅스 중 한 가지
4 TensorFlow Hub 윈도우, 맥OS X, 리눅스 중 한 가지
6 pydensecrf library 윈도우, 맥OS X, 리눅스 중 한 가지
7 Vispy, Plyfile 윈도우, 맥OS X, 리눅스 중 한 가지
8 opencv-python, tqdm, scikit-learn 윈도우, 맥OS X, 리눅스 중 한 가지
9 Android Studio, Cocoa Pods, Yarn 윈도우, 맥OS X, 리눅스 중 한 가지

📚 목차