モチベーション
ラズパイとカメラでPythonを使って顔認識による顧客分析をやってみようと思い、VMでテスト環境を構築する。今回のゴールは、MacにUbuntuの仮想環境を作り、Ubuntu上でPython3とOpenCVを動作させるまでとする。
環境
- Ubuntu16.04が動作することが前提
- Python 3.6.9を導入
- OpenCV 4.2.0を導入
OpenCVと依存するライブラリのインストール
gitコマンドを使って、ソースコードを取得しています。
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
#ソースコードの入手
gitコマンドを使って、ソースコードを取得しています。
$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git
wgetコマンドでダウンロードする場合はunzipコマンドでzipファイルを解凍してください。
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip
$ unzip opencv.zip
$ unzip opencv_contrib
ソースが保存されたディレクトリを確認します。
OpenCVのコンパイル・ビルド
OpenCVをビルドします。
cmakeのとき、-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules をつけることでcontribの方もまとめてビルドされます。
$ cd ~/opencv-4.2.0
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
OpenCVをコンパイルします。
$ make -j4
[100%] Build target opencv_python3 //この表示が出ればコンパイル成功
私のMac Book ProのVM環境では、1時間ほどコンパイル・ビルドに時間がかかりました。
無事、コンパイル・ビルドに成功したら、OpenCVをインストールします。
$ sudo make install
$ sudo ldconfig
OpenCVのバージョンを確認します。
$ opencv_version
4.2.0
Python3と関連モジュールのインストール
まずは、Pythonパッケージを管理するpipをインストールします。次のモジュール(numpy, pandas, matplotlib, sklearn)が使えるようにします。
$ sudo install pip3
$ pip3 install numpy pandas matplotlib sklearn
動作確認
pythonコンソールに入り、各種モジュールがimportできるかを確認する。
エラーが出なければ、無事モジュールがインストールされている。念のためopnecvのバージョンを確認する。
$ python3
>>>import numpy
>>>import pandas
>>>import sklearn
>>>import matplotlib
>>>import cv2 //これがopencvのライブラリ
>>>cv2.__version__ //opencvのバージョン確認
'4.2.0'
>>>
これで仮想マシンのUbuntuでPython3とOpenCVが利用できるようになりました。ディープラーニングをやりたい方はディープラーニング用のライブラリ(tensorflow, kerasなど)をpip3でインストールしてあげると利用できるはずです。それでは、次回、OpenCVを使った顔認識サンプルコードを実行してみたいと思います。
参考サイト
・こちらPython3.6とOpenCVのインストール (Ubuntu18.04LTS)の記事がとても参考になりました。
・こちらopencvをソースからビルドするの記事も参考になりました。
・OpenCV公式サイトはこちらです。