Raspberry Pi 3 で Open CV 3.2
Open CVというものをご存知だろうか、近年では情報系の中にOpenなんとかという色々なものが流行っている気がする・・・(例えばOpenGL OpenData )
このようなOpenとは大抵の場合は誰でも自由に扱えるものということが多い。
OpenCVとはインテルが開発を始めた(今は他の会社に引き継がれている)オープンソースのビジョンライブラリである。
つまりなんぞやというと、比較的に自由に使える画像や動画等の制御・認識ライブラリである。
例えばコンピュータに搭載されたカメラを使って顔認識ができたり、与えられた画像に移ったターゲットをトラッキングできたりと一般的に見たことあるような画像や動画の制御、認識はほぼこれだけで出来てしまうと言っても過言ではないだろう。
これを今回はRaspberry Pi 3に積んで搭載したカメラから得たデータを使って色々遊べないかととりあえず入れてみた。
OpenCVのリリースは大体一年に2回ほどらしい。出来れば最新バージョンを入れた方が良いだろうから今回はOpenCV 3.2を積んでみた。
Raspberry Pi 3にOpenCVを積んでる人はネットを探せば他にも結構いたが、バージョン 3.2を入れていて日本語で解説している人は見つけられなかったから一応誰かの役に立てばいいかな・・・
インストール手順
インストール手順はいくつかあるし正直バージョン3.0以降からは変わってない気もする。英文だがRaspberry Pi 3にOpen CV 3.0を入れ方を丁寧に説明している方がいたのでこちらを参考にした。
まず注意するべきことはapt-get等は使わないこと。
確かにapt-getを使えば簡単に導入することはできるが今(2017,6)apt-getでOpenCVをインストールするとバージョンが古いものが導入されてしまう。そこでバージョンが新しいものを使いたいならapt-get等は使うべきではない。
というわけで実際に入れてみる。
一応、最新にしとく
$ sudo apt-get update
$ sudo apt-get upgrade
依存ライブラリ等の導入
$ sudo apt-get install build-essential cmake pkg-config
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk2.0-dev$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python2.7-dev python3-dev
OpenCVの依存ライブラリは結構膨大で色々結構めんどくさい。時間もそれなりにかかった。
OpenCVの導入
まずはダウンロードから
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
$ unzip opencv.zip
OpenCVをフルインストールするためにはopencv_contribも必要っぽい。そっちも落としておく。
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
$ unzip opencv_contrib.zip
次にインストール
$ cd ~/opencv-3.2.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.2.0/modules \
-D BUILD_EXAMPLES=ON ..
そしていよいよmake
$ make -j4
ここでmakeするときのオプションだが-j4というのはmakeに使用するコア数を指定できるオプションらしい。-j4でやったらCPU使用率が跳ね上がりフリーズの嵐だったのでクロスコンパイラを使うか他のプロセスを切ってから行うべきかもしれない。ちなみに僕はめんどくさかったので-j3で気長に待った。
結構失敗するので無理だったらmake cleanしてからやり直す
$ make clean
$ make
終わったら最後にインストールして終了。
$ sudo make install
$ sudo ldconfig
お疲れ様です
はい。実際にやってみるとビルド失敗しまくって発狂しかけましたが多分入れれたと思う。使ってはないから成功してるかは謎なので次回はこれで遊んでみます。ちなみにRaspberry Pi使ってる人はPython系はすでに入れてると思ったので省いてます、入れてない人は参考リンクの英文のページには省かず書いてあるので試してみて下さい。
次回