Raspberry Pi 3にOpenCV 3.1をインストールしました。OpenCVは、インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリで、画像処理・画像解析および機械学習等の機能を持つC/C++、Java、Python、MATLAB用ライブラリを持ち、プラットフォームとしてOS XやFreeBSD等全てのPOSIXに準拠したUnix系OS、Linux、Windows、Android、iOS等をサポートしています。このブログは、「Install guide: Raspberry Pi 3 + Raspbian Jessie + OpenCV 3」を基に記述しました。ただし、Python記事に関する部分のインストールは省略しています。

Python2.7用のインストールについては、「OpenCV 3をPython 2.7言語で顔認識プログラム」を参照してください。

依存ファイルのインストール

OpenCVビルド処理の構成に役立つCMakeを含むいくつかの開発ツールを、次に示すコマンドでインストールします。

$ sudo apt-get install build-essential cmake pkg-config

JPEG, PNG, TIFなど、様々な画像ファイル形式をディスクからロードできるいくつかの画像I/Oパッケージを、次に示すコマンドでインストールします。

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

直接ビデオストリームで作業でき、様々なビデオファイル形式を読み込み可能なビデオI/Oパッケージも、次に示すコマンドでインストールします。

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

OpenCVは、画面に画像を表示し、基本的なGUIをビルドするために使用するサブモジュール「highgui」を備えています。highguiモジュールをコンパイルするために、次に示すコマンドでGTK開発ライブラリをインストールします。

$ sudo apt-get install libgtk2.0-dev

多くの操作は、いくつかの別の依存ファイルを次のコマンドでインストールすることによりさらに最適化されます。

$ sudo apt-get install libatlas-base-dev gfortran

OpenCVソースコードのダウンロード

OpenCVの3.1.0のアーカイブをオフィシャルOpenCVリポジトリから、次のコマンドでダウンロードします(将来新しいOpenCVのバージョンがリリースされると、3.1.0を最新のバージョン番号に置き換えてください)。

$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip

SIFTやSURFのような特徴にアクセスするため、OpenCV 3をすべてインストールするように、 opencv_contribリポジトリも次に示すコマンドでインストールします。

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip

OpenCVのコンパイル/インストール

次のように、CMakeを使用してビルドを設定する。

$ cd ~/opencv-3.1.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D BUILD_EXAMPLES=ON ..

2018/11/23
raspbian-stretchでは、パラメータ「-D ENABLE_PRECOMPILED_HEADERS=OFF」を付けないと「fatal error: stdlib.h: No such file or directory」のエラーが発生し、コンパイルが強制終了されます。

次のように、makeでビルドを開始する。約90分ビルドにかかります。「-j4」は、4コアでビルドすることを指示しています。

$ make -j4

Raspberry Pi 3にOpenCVを次のコマンドでインストールする。

$ sudo make install
$ sudo ldconfig

インストールしたOpenCVによる顔認識

「BUILD_EXAMPLES=ON」を指定してビルドした場合はサンプルもビルドされています。
OpenCVに含まれている画像「lena.jpg」で、定番の顔認識を試してみます。

$ cd ~/opencv-3.1.0/build/bin
$ ./cpp-example-facedetect --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ../../samples/data/lena.jpg

次のように、正常に顔と目が認識されました。

OpenCVによる顔認識