UbuntuにOpenCVとChainerをインストール

|環境  |  |
|---|---|
|Ubuntu  | 14.04.4 LTS  |

## 目的
画像から顔を取得して誰なのか解析したい。
そのためにまずは環境を立ち上げる。

## しないこと
OpenCVで動画解析はしない。
なので動画関連のパッケージは極力入れない。

## 入れるもの

|入れるもの  |  |
|---|---|
|Python  |3.4.3  |
|OpenCV  |3.0.0  |
|Chainer  |1.10.0  |

## 環境を最新に更新
```
$ sudo apt-get update
$ sudo apt-get upgrade
```

## pytnon3を入れる

### 既に入っているバージョンを確認
```
$ python -V
```

### インストール
```
$ sudo apt-get install build-essential
$ sudo apt-get install python3-dev
```

### バージョンを確認
```
$ python -V
$ python3 -V
```

### pipもインストールしておく
```
$ sudo apt-get install python3-pip
$ pip3 -V
$ pip3 list
```

## OpenCVを入れる

### 必要なパッケージをインストール
```
$ sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
$ sudo apt-get -y install build-essential libopenexr-dev python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra default-jdk ant libvtk5-qt4-dev unzip
$ sudo apt-get -y install libdc1394-22-dev libdc1394-22 libdc1394-utils
```

### ダウンロード
```
$ cd ~
$ wget -O opencv-3.0.0.zip https://github.com/Itseez/opencv/archive/3.0.0.zip
$ unzip opencv-3.0.0.zip
```

### CMakeの作成
```
$ cd opencv-3.0.0
$ mkdir build
$ cd build
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_PYTHON_EXAMPLES=ON -D PYTHON_EXECUTABLE=$(which python3) -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=ON BUILD_EXAMPLES=ON -D WITH_FFMPEG=OFF -D  BUILD_opencv_java=OFF BUILD_opencv_test_java=OFF ..

   General configuration for OpenCV 3.0.0 =====================================
  
   省略
  
     Python 3:
       Interpreter:                 /usr/bin/python3.4 (ver 3.4.3)
       Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
       numpy:                       /usr/local/lib/python3.4/dist-packages/numpy/core/include (ver 1.11.1)
       packages path:               lib/python3.4/dist-packages
  
     Python (for build):            /usr/bin/python3
  
   省略
  
     Install path:                  /usr/local
  
     cvconfig.h is in:              /home/ubuntu/opencv-3.0.0/build
   -----------------------------------------------------------------
```

### ビルド＆インストール
```
$ sudo make
$ sudo make install
```

### Pathを追記
```
$ sudo vi /etc/ld.so.conf.d/opencv.conf
  /usr/local/lib
  /usr/lib
```

### Pathを再読み込み＆確認
```
$ sudo ldconfig 
$ ldconfig -v
```

### バージョンを確認
```
$ python3 -c "import cv2;print(cv2.__version__)" 
```

### libdc1394のエラーがでるなら
```
$ sudo ln /dev/null /dev/raw1394
```

## Chainerを入れる

### インストール
```
$ sudo pip3 install chainer
```

### 必要なパッケージをインストール
```
$ sudo apt-get install python3-numpy python3-scipy
$ sudo pip3 install -U scikit-learn
```

### 分析結果を画像化できるようにしておく
```
$ sudo pip3 install matplotlib
```

### バージョンを確認
```
$ python3 -c "import chainer;print(chainer.__version__)" 
```

## おわり
Chainerがすごくすんなり入ったのでびっくり。
さあ使うぞっ。