OpenCVは、Intelで開発された画像処理ライブラリです。
機能が多岐にわたるため、様々な用途で使用することが可能です。
本記事では、OpenCVの概要と、OpenCVをラズパイ(Raspberry Pi)にインストールする方法を紹介します。
この記事で分かること
本記事を読み終わると、下記の内容が分かるようになります。
- OpenCVの機能概要
- OpenCVの拡張モジュールOpenCV_contribの機能概要
- ラズパイへのOpenCVのインストール方法
スポンサーリンク
OpenCVとは
インストール方法を紹介する前に、OpenCVの機能を簡単に紹介します。
OpenCVでは、主に下記の機能を使うことができます。
- フィルター処理
- 変形処理
- フィッティング
- オプティカルフロー検出、オブジェクト追跡
- 領域分割
- カメラキャリブレーション
- 特徴点抽出
- デプス推定、姿勢推定
- 物体認識、機械学習
- コンピテーショナルフォトグラフィ
ITmediaのサイトにわかりやすい解説が載っていたので引用します。
引用:ITmedia
標準ライブラリ以外に、
OpenCV_contribという拡張モジュールを使用すると、比較的新しいアルゴリズムや試験的な機能を使うことができます。
次項で、OpenCV_contribについて簡単に紹介します。
opencv_contrib
opencv_contribは、比較的最新のアルゴリズム、試験的な機能を使用できる"拡張モジュール群"です。
opencv_contribについても、ITmediaのサイトに詳しい説明が記載されています。
また、opencv公式のチュートリアルも参考になると思います。
例えば、arucoというモジュールでは、
2次元のマークを検出し、画面上の座標を抽出することができます。
arucoのマーク検出 引用:OpenCV公式チュートリアル
筆者は、ARマーカー検出やステレオマッチングを実装したかったため、opencv_contribをインストールすることにしました。
スポンサーリンク
OpenCVをラズパイ(Raspberry Pi)にインストール
OpenCVがどんなものか簡単に紹介してきました。
ここからは、本題であるラズパイへのインストール方法を説明します。
OpenCVのインストール方法には下記2つの方法がありますが、
- OpenCVのソースコードからビルド
- ビルド済パッケージ(opencv-python)をpipでインストール
2の方が圧倒的に簡単なので、2の方法でインストールします。
また、仮想環境を作り、その仮想環境内にインストールする方法もよく紹介されていますが、筆者は"ラズパイの環境が壊れたらSDを再フォーマットすればいい"、という考え方なので、今回は仮想環境は作っていません。
PCではなかなかそういうわけにはいかないので、仮想環境を作り管理しています。
ちなみに、筆者のラズパイのバージョンは、
Raspberry Pi 4 Model B / 8GB
になります。
OpenCVのインストールは下記手順で進めます。
OpenCVのインストール手順
- ラズパイのパッケージ更新
- OpenCVの依存関係にあるライブラリをインストール
- pipコマンドでOpenCVをインストール
ラズパイのパッケージ更新
まず初めに、インストール可能なパッケージ "一覧" の更新と、インストール済みパッケージの更新を行います。
ターミナルに、下記2つのコマンドを入力します。
$sudo apt-get update
$sudo apt-get upgrade
続いて、pipの更新を行います。
sudo pip install --upgrade pip
OpenCVと依存関係にあるライブラリをインストール
次に、OpenCVと依存関係にあるライブラリをインストールします。
ターミナルに下記のコマンドを入力します。
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev
libhdf5-100のインストールがうまくいかない場合は、libhdf5-103も試してみてください。
環境によって変わるようです。
pipコマンドでOpenCVをインストール
pipコマンドで、OpenCVをインストールします。
なお、pipコマンドにはいくつか種類があるので注意してください。
Python 2とPython 3の共存環境では、pipがPython 2、pip3がPython 3へのインストールとなります。
ラズパイはデフォルト状態でPython 2とPython 3がインストールされているので、pipとpip3を間違うと想定していない挙動となる可能性があります。
インストール前に、pythonのバージョンを確認することをオススメします。
ラズパイのpythonのバージョン確認・変更方法については下記の記事で紹介しているので、気になる方は確認してみてください。
ラズパイ(Raspberry Pi)のpythonバージョン確認、python3への変更方法
OpenCVのメインモジュールだけのインストールでよければ、下記のコマンドでインストールします。
$ sudo pip3 --default-timeout=1000 install opencv-python
拡張モジュール群まで含めてインストールしたい場合は、"opencv-pythonをインストール後"、下記コマンドでopencv-contribをインストールします。
なお、その場合は、"opencv-python"と"opencv-contrib-python"のバージョンは揃えるようにしてください。
バージョン指定の方法は、次の項で紹介します。
$ sudo pip3 --default-timeout=1000 install opencv-contrib-python
スポンサーリンク
OpenCVをインストール時にエラーが発生してしまう場合
インストールがうまくいかない場合は、OSのバージョンが古くOpenCVの最新バージョンに対応していない可能性があります。
下記のコマンドを入力し、インストールできるバージョンを確認します。
$ sudo pip3 install opencv-contrib-python==
$ sudo pip3 install opencv-python==
インストールするバージョンが決まったら、バージョン指定コマンドでインストールします。
opencv-contrib-pythonの最新バージョンは4.5.2.52でしたが、筆者の環境ではバージョンを3.4.14.51まで下げることで、インストールできました。
$ sudo pip3 --default-timeout=1000 install opencv-contrib-python==3.4.14.51
これでもうまくインストールできない場合は、下記コマンドで一度アンインストールしてから、再度インストールしてみてください。
$ sudo pip3 uninstall opencv-contrib-python
OpenCVが正しく動作することを確認する
OpenCVが正しくインストールされていることを確認するため、Pythonを起動してOpenCVをインポートしてみます。
ターミナルで下記のコマンドを入力して、Pythonを立ち上げます。
$ python3
続いて、OpenCVをインポートします。
>>> import cv2
バージョンを確認します。
>>> cv2.__version__
ここで、バージョンが表示されれば、インストール成功です。
ちなみに、筆者の環境では、下記のエラーが発生しました。
ImportError: numpy.core.multiarray failed to import
これは、numpyのバージョンが古いときに発生するエラーなので、下記のコマンドでnumpyをアップデートします。
$ sudo pip3 install -U numpy
スポンサーリンク
まとめ
OpenCVの機能と、ラズパイへのインストール方法について紹介しました。
OpenCVをインストールすると、できることが格段に広がります。
工夫次第で様々なことが実現できますので、ラズパイとOpenCVでいろいろ遊んでみましょう!
スポンサーリンク