どうも~、IoT探検家のシンジです。
今日はラズパイへのOpenCVのインストールにチャレンジしてみました〜。
用意したもの
・ラズパイ本体(Raspberry Pi 4)
・モニター
・キーボードとマウス
・microSDカード
・HDMIケーブル(microHDMI→HDMI)
・USB-C接続の電源アダプター



全体の流れ
1)microSDカードの中のRaspbianのファイルシステムの拡張
2)OpenCVと依存関係のあるソフトのインストール
3)Pythonの仮想環境を作る
4)OpenCVをインストール
OpenCVをインストールするにあたり、準備としてラズパイの初期設定が必要です。まだの人は「ラズパイの初期設定」の記事や動画を参考にしてみてください^_^

OpenCVとは世界的に有名なAIの画像認識ライブラリーで、顔認識や物体検出の学習済みモデルを無料で使うことができます。

OpenCVとは
Open Source Computer Vision Libraryの略。インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリ。
参考にしたサイト
今回、ラズパイにOpenCVをインストールにあたり、PyImageSearch(パイイメージサーチ)というサイトの記事(Install OpenCV 4 on Raspberry Pi 4 and Raspbian Buster)を参考にしました。

それではOpenCVのインストールをやっていきましょう〜
(インストールのやり方はキーボードとマウスとモニターを利用してインストールする方法とパソコンからSSH(SSH:「Secure Shell」の略で、ネットワークに接続された機器を遠隔操作し、管理するための手段)で接続してインストールする方法がありますが、今回はキーボードとマウスとモニターを利用してインストールする方法でやっていきます。)
1)microSDカードの中のRaspbianのファイルシステムの拡張
まずはOpenCVをインストールできるように、microSDカードの中のRaspbianのファイルシステムの拡張します。
ラズパイで「LXTerminal」というコンピュータに対して命令を送るための画面を立ち上げて、コマンドを入力。
sudo raspi-config
このコマンドでRaspbianの環境設定ができます。
表示された画面で、6 Advanced Options > A1 Expand filesystem と選択してfinishをクリックすることで、ファイルシステムの拡張ができました。そして画面の指示に従って再起動。



df -h
念の為、このコマンドで拡張されたファイルシステムの中身が確認してみましょう。

2)OpenCVと依存関係のあるソフトのインストール
続いてOpenCVと依存関係のあるソフトをインストールしていきます。
sudo apt-get update && sudo apt-get upgrade
まずはこのコマンドで既にラズパイにインストールされているソフトを最新に更新。
sudo apt-get install build-essential cmake pkg-config
次にこのコマンドで、CMakeというビルド自動化のためのソフトなどの、OpenCVのビルドを簡単にしてくれる開発ツールをインストールしていきます。
以下、OpenCVと依存関係のあるソフトのインストールが続きます。面倒ですがコマンドを1つずつ入力していきます。
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
JPEGやPNGなどの静止画像を扱うためのI/Oパッケージをインストールしています。(I/O:Input/Outputの略で「入出力」を意味しています。)
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
この2つのコマンドで動画を扱うI/Oパッケージをインストールしています。
sudo apt-get install libfontconfig1-dev libcairo2-dev
sudo apt-get install libgdk-pixbuf2.0-dev libpango1.0-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
この3つのコマンドで画像や動画などのイメージをスクリーンに表示するGUI(Graphical User Interface(グラフィカル・ユーザ・インターフェイス))が使えるようにするためにGTK開発ライブラリーをインストールしています。(GTK:GUI Tool Kitの略)
sudo apt-get install libatlas-base-dev gfortran
OpenCV内での演算処理を最適化するためのライブラリーをインストールしています。
sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
この2つのコマンドはHDF5形式のデータへの対応とGUIのクロスプラットフォームのフレームワークをインストールするためのものです。(HDF:Hierarchical Data Formatの略。階層的データ形式を意味する)
sudo apt-get install python3-dev
このコマンドによって、C++という言語で実装されているOpenCVをPythonで扱えるようになります。
ここまででOpenCVと依存関係のあるソフトのインストールが完了しました。ふ〜、長かった〜。
3)Pythonの仮想環境を作る
ここからはPythonの仮想環境を作っていきます。
仮想環境とは
Python を使って開発や実験を行うときは、用途に応じて専用の実行環境を作成し、切り替えて使用するのが一般的です。こういった、一時的に作成する実行環境を、「仮想環境」 と言います。
仮想環境を利用する理由・システム全体で使うPython環境に影響を与えずにモジュールの追加・入れ替えをしたい。
・異なるバージョンの Python を使いわけたり、同じモジュールの、複数のバージョンを使い分けたい。
https://www.python.jp/install/windows/venv.html
仮想環境を管理するためにはAnacondaやcondaなどを使う方法もありますが、ここではpipを使ってやっていきます。
pipとは
Pythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システムである。
それではやっていきましょう。
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip
この3行のコマンドでpipそのものをインストールします。
sudo pip install virtualenv virtualenvwrapper
そしてpipを使ってvirtualenvという仮想環境をインストール。
nano ~/.bashrc
次はこれまでとはちょっとやることが違うので注意が必要です。このコマンドで.bashrcという設定ファイルを開きます。そして開かれたファイルの末尾に以下のコマンドを記入していきます。
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

入力できたらキーボードでenterを押して終了です。
source ~/.bashrc
そしてこのコマンドで変更を加えた.bashrcファイルを読み込み、変更内容を反映させます。
mkvirtualenv cv -p python3
最後のこのコマンドでPythonの仮想環境が作られました~
4)OpenCVをインストール
いよいよOpenCVのインストールです。
pip install opencv-contrib-python==4.1.0.25

このコマンド1つだけでOpenCVのインストールが完了しました〜。
ここでLXTerminalを使って、実際にラズパイでOpenCVが使えるかテストをしてみましょう。
workon cv
python
>>> import cv2
>>> cv2.__version__
workon cvで仮想環境に入ります。
そしてimport cv2でOpenCVのライブラリーをインストールしてcv2.__version__でOpenCVのバージョンが分かり、OpenCVがインストールできていることが確認できました~。

振り返り
最後に今回のラズパイへのOpenCVのインストールの振り返りです。
振り返り
・OpenCVをインストールする前に、依存関係のあるソフトをインストールしておく必要がある。
・Pythonの仮想環境の中でOpenCVを利用することで、システム全体で使うPython環境に影響を与えずにモジュールの追加・入れ替えできて便利になる。
・今回のOpenCVのインストールにかかった時間は60分でした。(コマンドでインストールするソフトが多くて面倒だった~)
コメント