Raspberry Pi で OpenCV のインストール(Python 仮想環境上)
Raspberry Pi 上に Python の仮想環境を作成し,その中に OpenCV をインストールする手順をまとめる.
配布されているパッケージを使う方法と,ソースコードからビルドする方法の 2 通りを示す.
リモートログイン
- ssh でリモートログインする
ユーザ名は,Raspberry Pi Imager で書き込みを行うときに設定したものを使う. Raspberry Pi OS では,既定のユーザ名・パスワードは設定されていない. パスワードの入力中に画面に文字が表示されないのは正常動作である.
X アプリケーションの画面を手元のパソコンに転送する場合は -X を付ける.
ssh -X <ユーザ名>@raspberrypi.localWindows で MobaXTerm を使ってリモートログインしている画面を示す.
Python の仮想環境の作成
- 作成する Python の仮想環境の名前を決めておく
- Python の仮想環境の名前: py3env
- Python 3 の仮想環境を作成する
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh mkvirtualenv --python=/usr/bin/python3 py3env lsvirtualenv
OpenCV のインストール(パッケージを使用)
Raspberry Pi(64 ビット版 Raspberry Pi OS)では,pip でビルド済みの OpenCV をインストールできる.
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
workon py3env
pip install -U pip
pip install -U numpy opencv-python opencv-contrib-python
OpenCV のインストール(ソースコードからビルド)
最新のソースコードを使う場合や,ビルド済みパッケージが用意されていない環境の場合は,ソースコードからビルドする. ビルドには数時間かかることがある.
- ビルドに必要なパッケージのインストール
sudo apt update sudo apt -y install build-essential cmake git pkg-config \ python3-dev libjpeg-dev libpng-dev libtiff-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libgtk-3-dev libatlas-base-dev gfortran - ソースコードの取得
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh workon py3env pip install -U pip pip install -U numpy cd /tmp rm -rf opencv opencv_contrib git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git - スワップ領域の拡大
メモリ容量が小さい機種では,ビルド中にメモリ不足になることがある.スワップ領域を一時的に拡大する.
sudo sed -i 's/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2048/' /etc/dphys-swapfile sudo systemctl restart dphys-swapfile - ビルドとインストール
cd /tmp/opencv rm -rf build mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_contrib/modules \ -D BUILD_opencv_python3=ON \ -D PYTHON3_EXECUTABLE=$(which python3) \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=OFF .. make -j$(nproc) sudo make install sudo /sbin/ldconfig - スワップ領域を元に戻す
sudo sed -i 's/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=100/' /etc/dphys-swapfile sudo systemctl restart dphys-swapfile
OpenCV がインストールされたことの確認
端末で,次のコマンドを実行し,バージョン番号が表示されることを確認する.
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
workon py3env
python3 -c "import cv2; print(cv2.__version__)"