OpenCV
RaspberryPi
Python3

RaspberryPi (3 Model B+) へのOpenCV(3.4.2)のインストール

(この記事は2018/8/17に作成しました)

RaspberryPiにOpenCVをインストールします。

以前に別の方法で
sudo apt autoremove libopencv3

  • RaspberryPi3 Model B+ (OS: RASPBIAN, version: June 2018)
  • Python3
  • OpenCV3.4.2

を想定しています。下の記事を全面的に参考にさせていただきました。
参考リンク:https://qiita.com/nanbuwks/items/422eb405ceef84826ab4

1. microSDからメモリのスワップ

作業にあたり、スワップメモリ容量を変更しておきます。当該モデルのメモリは1GBありますが、インストール時にメモリ容量がなくなる可能性があるためです。
メモリ容量は、以下のコマンドで確認します。

スワップメモリ容量の確認
$ free -h

microSDのメモリを割り当てます。1GB程度あれば十分と思われます。32GBであれば、2GBでも問題ないでしょう。
容量の変更は、"/etc/dphys-swapfile" を編集することで可能です。nanoを用いて編集します。

メモリスワップに関する設定の変更
$ sudo nano /etc/dphys-swapfile

実行すると、nanoで当該ファイルの編集ができます。単位はMBになっていますので、1024に書き換えます。

dphys-swapfile
CONF_SWAPSIZE=1024

書き換え後、control + Xで終了、その後Yで編集内容を保存、Enterで離脱します。
設定が完了したら、スワップメモリの変更を実行します。
設定の反映のために、stop→startとコマンドを実行します。

設定の反映
$ sudo systemctl stop dphys-swapfile
$ sudo systemctl start dphys-swapfile

変更ができたか、もう一度容量を確認します。

スワップメモリ容量の確認
$ free -h

2. インストール

OpenCVをインストールする前に、必要となるパッケージをインストールしておきます。
参考リンク先の内容をそのまま踏襲して、以下のように入力すれば良さそうです(すでにインストール済みのパッケージはスキップされます)。

必要となるパッケージのインストール
$ sudo apt-get install build-essential git cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk2.0-dev libatlas-base-dev gfortran
Python3、pipのインストール
$ sudo apt-get install python3-dev python3-pip

3. OpenCVおよびOpenCV_contribをダウンロード

OpenCVに加え、基本的なパッケージが含まれるOpenCV_contribも同時にインストールします。
下記の通りにダウンロードします。参考リンク先では3.2.0となっているところは、最新バージョンの数字である3.4.2に変更します。

OpenCVおよびOpenCV_contribをダウンロード
$ cd ~
$ git clone https://github.com/Itseez/opencv.git
$ cd opencv
$ git checkout 3.4.2
$ cd ..
$ git clone https://github.com/Itseez/opencv_contrib.git
$ cd opencv_contrib/
$ git checkout 3.4.2
$ cd ..

numpyをインストールします。pipがインストール済みですので、pipを使用します。
使用するコマンドはpipではなく、pip3ですので注意してください。

numpyをダウンロード
$ sudo pip3 install numpy

それでは、ダウンロードしたOpenCVをインストールします。cmake以下に多くの変数がありますが、 "\" を挟めば改行することができます。その場合にも、行頭の "-D" は毎回指定してください。最後の".."まで記述してください。

ビルド
$ cd opencv
$ 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/modules \
>     -D BUILD_EXAMPLES=ON ..
$ make -j 4

"make -j 4 "はCPUコアを4つ使ってビルドするという意味です。
ビルドには2時間以上かかりますので、RaspberryPiには手を触れないで待ちます。

最後にインストールします。

インストール
$ sudo make install
$ sudo ldconfig

インストールが終了したら、インストールができているか確認します。

インストール確認
$ Python3
>>>import cv2
>>>cv2.__version__

最新バージョン "3.4.2" が表示されていれば成功です。

(おわり)