EC2에 OpenCV, Tensorflow 설치
2016-08-14 00:00:00Ubuntu 14.04.3 LTS (EC2 Free Tier) 환경에 설치하였습니다.
Python을 이용한 Image Processing & Deep Learning 환경을 구성하는 것이 목적입니다.
이 포스트는 Pyimagesearch 홈페이지를 기반으로 작성하였습니다.
라이브러리 설치
Python 버전은 Tensorflow의 Python 버전과 맞추기 위해 기본적으로 설치된 2.7.6 버전으로 진행합니다.
그렇기에 따로 virtualenv 환경을 만들지 않습니다.
패키지 업데이트
먼저 EC2에 Putty로 접속 한 뒤 기존 패키지를 업데이트하고 업그레이드 합니다.
sudo apt-get update sudo apt-get upgrade
개발도구 설치
sudo apt-get install build-essential cmake git pkg-config
이미지 로드 라이브러리
jpeg, tiff, png 파일 등을 로드할 수 있는 라이브러리를 설치합니다.
sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev
GTK 설치
EC2 내의 이미지를 X window로 볼 수 있고, OpenCV의 highgui 모듈을 위해서 설치하는 라이브러리 입니다.
sudo apt-get install libgtk2.0-dev
비디오 프로세싱 라이브러리
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
Compiler
sudo apt-get install libatlas-base-dev gcc gfortran g++
Python 개발도구
sudo apt-get install python-dev
Pip 최신 버전 설치
EC2의 $HOME 디렉터리가 /home/ubuntu이기 때문에 발생하는 permission issue를 방지하기 위한 것입니다.
이 명령어로 설치한 pip 버전은 1.x 버전이기 때문에 아래와 같이 8.1.2 버전을 설치합니다.
wget https://bootstrap.pypa.io/get-pip.py sudo -H python get-pip.py
SSL 보안 에러 방지
sudo apt-get install libffi-dev libssl-dev sudo -H pip install pyopenssl ndg-httpsclient pyasn1
Numpy install
sudo -H pip install numpy
Matplotlib install
sudo -H pip install matplotlib을 하지 않고 다음과 같은 방법으로 설치합니다.
matplotlib을 설치했을 경우에 스크린으로 출력되지 않는 문제를 해결한 pyimagesearch 홈페이지 내용을 기반으로 작성하였습니다.
# 추가 패키지 설치 sudo apt-get install tcl-dev tk-dev python-tk # TkAgg 문제 해결 git clone https://github.com/matplotlib/matplotlib.git cd matplotlib sudo -H python setup.py install # 느리게 로드되는 현상 해결 rm -rf ~/.cache
OpenCV 설치
Git project clone, checkout
cd git clone https://github.com/Itseez/opencv.git cd opencv git checkout 3.0.0
cd git clone https://github.com/Itseez/opencv_contrib.git cd opencv_contrib git checkout 3.0.0
Setup build
cd ~/opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..
이제 컴파일 할 준비가 끝났습니다.
Compile
make -j4
약 10 ~ 15분 소요됩니다.
끝났으면 에러가 없는지 확인합니다.
sudo make install sudo ldconfig
Tensorflow 설치
OpenCV와 같은 Python 버전 2.7.6을 사용합니다.
그러므로 같은 프로젝트로서 Pip installation을 진행합니다.
# EC2 Free Tier는 GPU를 지원하지 않습니다. export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl # sudo apt-get install python-pip python-dev sudo -H pip install --upgrade $TF_BINARY_URL
위 작업까지 진행하시면 Tensorflow 설치가 완료됩니다.
이렇게 OpenCV, Tensorflow 설치가 완료되었습니다. 잘 설치되었는지 확인합니다.
# python으로 확인 >>> import numpy >>> import matplotlib >>> import tensorflow >>> import cv2 >>> cv2.__version__ '3.0.0' >>>
에러 메시지가 뜨지 않으면 설치가 정상적으로 된 것입니다.
Additional pip package
본인에게 필요하지 않은 라이브러리가 포함되어 있을 수 있습니다.
아나콘다 패키지를 사용하실 경우 matplotlib와 pandas는 이미 설치 되어 있습니다.
이때 pip 옵션인 --no-cache-dir를 적용할 수 있습니다.
pip 6.x 버전 이상만 가능한 옵션입니다.
sudo -H pip install scipy sudo -H pip install panda sudo -H pip install seaborn
.cache에 matplotlib 디렉터리가 자동으로 생겨 느리게 로드되는 경고가 발생합니다.(해결안됨)