昨日投稿したGit Hubからソースコードをダウンロードして、OpenCV 3.4.4を導入と類似した内容なのですが、Raspberry PiへのOpenCVにぴったりの記事を見つけたので、紹介します。また、この記事を参考に最新のOpenCV4.1.Xを導入したので、記事にしておきます。
以下の記事を参考にインストールした内容となります。
Install OpenCV 4 on Raspberry Pi
他バージョンでもこの記事の手順でインストールして、問題なくOpen CVの導入が出来ております。
現時点の最新OpenCV(4.1.1)をGitHubよりソースコードをダウンロードしインストール
事前準備
システムのディスク容量の整理を行います。
sudo apt-get -y purge wolfram-engine sudo apt-get -y purge libreoffice* sudo apt-get -y clean sudo apt-get -y autoremove
インストール対象のOpen CVバージョンを変数に設定します。
cvVersion="4.1.1"
インストールに利用するフォルダを作成します。
mkdir installation mkdir installation/OpenCV-"$cvVersion"
カレントディレクトリを変数に入れます。
cwd=$(pwd)
導入パッケージのアップデートを行います。
sudo apt -y update sudo apt -y upgrade
swapfileサイズ変更
この手順前後で、「free -m」コマンドでスワップメモリサイズを確認してください。
以下の手順で、スワップサイズを1GBに拡張します。
sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/g' /etc/dphys-swapfile sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
必要パッケージのインストール
多くのパッケージを導入する必要があります。環境によっては、仮想Python環境に導入することをお勧めします。私は、Raspberry Piでは仮想環境を利用しておりません。
元の参考にしているサイトでは、一部のライブラリーを仮想環境に導入されております。
sudo apt-get -y remove x264 libx264-dev ## Install dependencies sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get -y install libxine2-dev libv4l-dev cd /usr/include/linux sudo ln -s -f ../libv4l1-videodev.h videodev.h cd $cwd sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y install libavresample-dev sudo apt-get -y install x264 v4l-utils # Optional dependencies sudo apt-get -y install libprotobuf-dev protobuf-compiler sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen # Install Python Libraries sudo apt-get -y install python3-dev python3-pip sudo -H pip3 install -U pip numpy sudo apt-get -y install python3-testresources sudo pip3 install numpy dlib
OpenCVのソースコード準備
Git HubよりOpenCVのソースコードをチェックアウト(ダウンロード)します。
git clone https://github.com/opencv/opencv.git cd opencv git checkout $cvVersion cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout $cvVersion cd ..
OpenCVのビルドおよびコンパイル、インストール
この記事で示すコンパイルオプションは、オリジナルサイトのビルドオプションとは少し異なっております。各種ビルドオプションの説明や、失敗するビルドオプションなどは各種ブログに記載されております。個人的には、できる限りコンパイルが通りやすいビルドオプションとしております。
cd opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D BUILD_EXAMPLES=ON -D ENABLE_MEON=ON ..
コンパイルです。
Raspberry Pi 3B +でコンパイル実施時は、4コアすべてを使ってコンパイルしても、6-8時間程度時間を要します。Raspberry Piの動作温度もコンパイル時間に大きく影響します。
make -j$(nproc)
コンパイルが無事に成功したら、インストールを実行してください。
make install
swqpfileサイズ変更(変更したサイズを元に戻す)
この手順前後で、「free -m」コマンドでスワップメモリサイズを確認してください。
以下の手順で、スワップサイズを拡張した1GBから100MBに戻します。
sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/g' /etc/dphys-swapfile sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
インストール後の確認
「python3」コマンドを実行し、「import cv2」「print(cv2.__version__)」で導入されたOpenCVのバージョンを確認します。
@raspberrypi:~ $ python3 Python 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> print(cv2.__version__) 4.1.1
最後に
当初は、結構苦労しましたが、慣れると簡単にコンパイル、インストール出来ます。OpenCVをガリガリ利用する人は、是非、自分でソースコードより導入することをお勧めします。新バージョン新バージョンでの進化が素晴らしいライブラリです。
現時点の私のRaspberry Piに導入しているOpenCVは、「4.1.1-openvino」となります。Movidius Neural Compute Stick 2、OpenVINO™ toolkit for Raspbian* OS導入