Raspberry PiでOpenCV3をビルドする方法

Raspberry PiでOpenCV3をビルド

2017年9月、Raspberry PiでOpenCV3をビルドしました。USBカメラを接続して、簡単なPythonスクリプトでカメラ画像を表示することができました。

USBカメラ

USBカメラ

Raspberry PiでOpenCVパッケージをインストールすると、OpenCVのバージョンは、2.4.9.1 となりました。

Raspberry PiでPython版OpenCVによるカメラ画像を表示する方法

ARM NEONの最適化を行った OpenCV3を使用するために、OpenCV3.3.0のソースからビルドしました。


OSバージョンを調べます。

$ uname -a
Linux pi3 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.1 (stretch)
Release:        9.1
Codename:       stretch

開発ツールとライブラリのインストール

開発ツールパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install build-essential cmake pkg-config cmake-qt-gui

画像入出力パッケージをインストールします。

$ 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

OpenCVソースコードの取得

OpenCV 3.3.0 WEB

OpenCV 3.3.0 WEB

OpenCVリポジトリーから、OpenCV 3.3.0の Source code (tar.gz)をダウンロードして展開します。

 

$ wget https://github.com/opencv/opencv/archive/3.3.0.tar.gz
$ tar -zxvf 3.3.0.tar.gz 
opencv-3.3.0/
・・・

OpenCVのビルド

ソースコードを展開した opencv-3.3.0 のディレクトリに入り、ビルド用の build ディレクトリを作成します。

$ cd opencv-3.3.0
$ mkdir build
$ cd    build

cmake-gui を起動します。

$ cmake-gui
cmake1

cmake1

[Browse Source…]ボタンで、ソースコードディレクトリ、[Browsw Build…]ボタンでビルド用ディレクトリを指定します。

  • Where is the source code : ソースコードのディレクトリ
  • Where to build the binaries : ビルド用ディレクトリ

[Configure]ボタンを押します。

cmake2

cmake2

CMakeSetup 画面で、「Specify the generator for this project」 で、「Unix Makefile」を指定します。「Use default native compilers」を選択します。

[Finish]ボタンを押して、Configureを開始します。

cmake3 Configuer

cmake3 Configuer

Configureが終了すると、オプション一覧が表示されます。

cmake4 オプション選択

cmake4 オプション選択

オプションを選択します。

  • Serach: に「neon」を入力して、「ENABLE_NEON」をチェックします。
  • Serach: に「vfp」を入力して、「ENABLE_VFP3」をチェックします。
  • CPU_BASELINE_DISABLE」を空欄にします。

オプションを変更したので、もう一度 [Configure]ボタンを押します。

cmake9 Configuer

cmake9 Configuer

Configureが終了します。

cmake10 Configuer done

cmake10 Configuer done

[Generate]ボタンを押して Makefile の生成を行います。

cmake11 Generate

cmake11 Generate

Generating が終了したら、cmake-guiを終了させます。

cmake12 Generate Done

cmake12 Generate Done


OpenCVをビルドして、インストールします。ビルドは、「-j4」オプションを指定で並列実行するジョブの個数を指定します。

$ make -j4
$ sudo make install

サンプルによる動作確認

Pythonのサンプルコードで、カメラ画像表示の動作確認をします。

$ cd ../samples/python
$ ./video.py
ビデオ表示サンプル

ビデオ表示サンプル

カメラ画像表示のスクリプト

以前に作成した Pythonスクリプトで動作確認します。

$ cat caminput.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import cv2
print(cv2.__version__)

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    cv2.imshow('Capture',frame)
    key = cv2.waitKey(1)
    if key & 0x00FF  == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
カメラ画像表示サンプル

カメラ画像表示サンプル

OpenCVのバージョンを表示すると「3.3.0」になりました。

まとめ

OpenCV 3.3.0 のソースコードをビルドして、OpenCV3をインストールしました。ビルドは時間を要しますが、最新のOpenCVを使用することができます。