ラズベリーパイ(Raspberry Pi) で、情報工学関係ソフトウェア(人工知能,プログラミング,データベース,3次元,画像その他)を一度にインストール(Miniforge を一部利用)
前提とする環境
- Raspberry Pi 3 以降の本体(64ビット(aarch64)対応の機種)
- 64ビット版の Raspberry Pi OS(Debian ベース)
普通のパソコン Linux との主な違い
- Anaconda3 の公式インストーラは arm64 版が配布されていないため、代わりに Miniforge(conda-forge 公式の conda インストーラ)を使用する
- Berryconda(かつて Raspberry Pi 向けに配布されていた conda ディストリビューション)は、2022年12月に GitHub リポジトリがアーカイブされ、開発が終了している。対応 CPU も 32ビット(armv6l, armv7l)のみである。そのため、このページでは Miniforge を使用する
- conda や pip でインストールできない、あるいは aarch64 用のビルド済みパッケージが提供されていない Python パッケージがある。その場合はソースコードからのビルドになり、時間がかかる
【目次】
- 前準備
- システムパッケージのインストール
- Miniforge のインストール
- Python の仮想環境の作成(Miniforge を使用)
- Python の仮想環境を使いたいとき
- Python の仮想環境に,OpenCV など,種々の Python パッケージをインストール
- Python の仮想環境に,PyTorch, TensorFlow をインストール
- Python の仮想環境に,Dlib, face_recognition をインストール
- Python の仮想環境に,地図・地理情報関係その他のパッケージをインストール
- カメラを使うとき(Picamera2)
【サイト内の Raspberry Pi 関連ページ】
小型コンピュータ Raspberry Pi について: 別ページ »にまとめ
1. 前準備
Raspberry Pi OS のインストール
Raspberry Pi OS のインストールについては, 「別のページ」で説明している. 64ビット版(arm64)を選んでインストールする.
Raspberry Pi OS のシステム更新
最初に、Raspberry Pi OS のシステム更新を行っておく
端末で,次のコマンドを実行
# パッケージリストの情報を更新
sudo apt update
sudo apt -yV full-upgrade
sudo apt -yV autoremove
sudo apt autoclean
sudo shutdown -r now
タイムゾーンとロケールの設定
端末で,次のコマンドを実行
sudo timedatectl set-timezone Asia/Tokyo
sudo sed -i 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen
sudo locale-gen
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8
設定は再ログイン後に反映される.現在の端末にすぐ反映させたいときは、次のコマンドを実行
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
Raspberry Pi OS の初期設定
Raspberry Pi OS の初期設定については、 「Raspbian の初期設定」のページで説明している.このページの記述のうち,必要なものを実行すること.
2. システムパッケージのインストール
端末で,次のコマンドを実行.
1個ずつインストールしているのは、パッケージ名が存在しないなどでエラーになったときに、残りのインストールを続行させるためである.
RASPI_PACKAGES="openssh-server net-tools pciutils \
python3-dev python3-pip python3-venv python3-setuptools \
git wget curl p7zip-full zip unzip \
cmake build-essential gcc g++ dpkg-dev pkg-config \
make autoconf automake flex bison clang binutils swig ccache subversion \
zlib1g-dev libbz2-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libcurl4-gnutls-dev \
libopenblas-dev liblapack-dev libatlas-base-dev gfortran libtbb-dev libeigen3-dev \
libjpeg-dev libpng-dev libtiff-dev libopenexr-dev \
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavdevice-dev \
libx264-dev libxvidcore-dev libmp3lame-dev libv4l-dev \
libsndfile1-dev libvorbis-dev libopenal-dev \
libgtk-3-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxrandr-dev libxcursor-dev libxxf86dga-dev libfreetype6-dev \
libprotobuf-dev protobuf-compiler protobuf-c-compiler libgoogle-glog-dev libhdf5-dev \
libboost-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev \
libbullet-dev libode-dev libceres-dev qtbase5-dev \
libopencv-dev libpcl-dev openni2-utils libopenni2-dev \
gdal-bin libgdal-dev \
default-jdk swi-prolog \
spyder pylint flake8 \
emacs emacs-mozc catfish hwinfo \
imagemagick ffmpeg vlc pinta \
blender meshlab \
tesseract-ocr tesseract-ocr-jpn libtesseract-dev libleptonica-dev \
mecab libmecab-dev mecab-utils mecab-ipadic-utf8 \
sqlite3 sqlitebrowser \
i2c-tools"
for i in ${RASPI_PACKAGES}; do
sudo apt -y install ${i}
done
3. Miniforge のインストール
Miniforge は、conda-forge が公式に配布している conda のインストーラであり、aarch64(64ビット ARM)に対応している.conda と mamba が同梱され、既定のパッケージ取得先(チャンネル)は conda-forge である.
- CPU アーキテクチャの確認
端末で,次のコマンドを実行.
aarch64 と表示されることを確認する.armv7l と表示された場合は 32ビット OS で動作しており、Miniforge は使用できない.その場合は 64ビット版の Raspberry Pi OS を導入する.
uname -m - Miniforge のインストール
端末で,次のコマンドを実行.
画面に表示される指示に従う.ライセンスの表示では内容を確認し、インストール先の確認と、初期化(conda init)を行うかどうかの質問に答える.
cd /tmp wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh bash Miniforge3-Linux-aarch64.sh - 確認
端末で,次のコマンドを実行.
エラーメッセージが出なければ OK.
source ~/.bashrc which python which conda python --version conda --version
4. Python の仮想環境の作成(Miniforge を使用)
- 今から作成するPython の仮想環境の名前と、Python のバージョンを決めておく
- Python の仮想環境の名前: ai
- Python のバージョン: 3.11
- 端末を開く
- Python の仮想環境を作成する
次のコマンドを実行.
source ~/.bashrc conda create -y -n ai python=3.11 - Python 環境が作成できたことを確認
conda info -eこれで、もとからの Python 環境と, 新規作成された Python 環境(Python のバージョン 3.11,名前は ai)の共存ができた。
- いま作成したPython の仮想環境を有効にする
次のコマンドを実行.
* 「conda activate ai」は Python 環境(名前は ai)を有効にするためのコマンド(各自の環境の名前にあわせること)
conda activate ai「Could not find conda environment: ai」というメッセージが出たときは、上の「Python の仮想環境の作成」を行う - pip の更新
python -m pip install -U pip setuptools wheel pip list - conda パッケージの更新、古い conda パッケージファイルの削除
conda upgrade -y --allconda clean -y --packages - conda の動作確認
エラーメッセージが出ないことを確認.
conda info
5. Python の仮想環境を使いたいとき
- 端末を開く
- 端末で,次のコマンドを実行し,Python 環境(名前は ai)に切り替える
conda activate ai* もとの Python 環境に戻るときは「conda deactivate」
conda deactivate
6. Python の仮想環境に,OpenCV など,種々の Python パッケージをインストール
conda を用いて,conda 形式の Python パッケージを扱うことができる. Python パッケージ以外のソフトウェア(コンパイラ、ライブラリなど)をインストールすることもできる.
- 端末を開く
- Python の仮想環境を有効にする
次のコマンドを実行.
* 「conda activate ai」は Python 環境(名前は ai)を有効にするためのコマンド(各自の環境の名前にあわせること)
conda activate ai「Could not find conda environment: ai」というメッセージが出たときは、上の「Python の仮想環境の作成」を行う - パッケージのインストール
次のコマンドを実行.
* 「conda install」,「pip install ...」は,Pythonのライブラリをインストールするための操作
CONDA_PACKAGES="opencv \ numpy scipy h5py scikit-image pillow matplotlib seaborn pandas statsmodels scikit-learn sympy \ jupyterlab ipython notebook plotly bokeh \ sqlalchemy flask pyyaml cython msgpack-python \ pytest flake8 pylint xlrd openpyxl" PIP_PACKAGES="csvkit docopt imutils mecab-python3" for i in ${CONDA_PACKAGES}; do conda install -y ${i} done for i in ${PIP_PACKAGES}; do pip install -U ${i} done - OpenCV のバージョン確認
python -c "import cv2; print( cv2.__version__ )"
7. Python の仮想環境に,PyTorch, TensorFlow をインストール
- 端末を開く
- Python の仮想環境を有効にする
次のコマンドを実行.
* 「conda activate ai」は Python 環境(名前は ai)を有効にするためのコマンド(各自の環境の名前にあわせること)
conda activate ai「Could not find conda environment: ai」というメッセージが出たときは、上の「Python の仮想環境の作成」を行う - PyTorch のインストール
次のコマンドを実行.
Raspberry Pi には NVIDIA GPU が搭載されていないため、CPU 版を使用する.
pip install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpuインストールの確認
python -c "import torch; print( torch.__version__ ); print( torch.tensor([1.0, 2.0]).sum() )" - TensorFlow のインストール
次のコマンドを実行.
64ビット(aarch64)環境では、PyPI から TensorFlow のビルド済みパッケージを取得できる場合がある.Python のバージョンによっては該当する wheel が存在せず、インストールできないことがある.
pip install -U tensorflowインストールの確認
python -c "import tensorflow as tf; print( tf.__version__ )"TensorFlow のフルパッケージは、Raspberry Pi では読み込みや学習に時間がかかる.学習済みモデルによる推論だけを行う場合は、軽量な実行環境である LiteRT(旧 TensorFlow Lite)の利用を検討する.pip install -U ai-edge-litert - Keras, MTCNN のインストール
MTCNN は顔検出のライブラリであり、TensorFlow/Keras を使用する.
pip install -U keras mtcnnインストールの確認
python -c "import mtcnn; print( mtcnn.__version__ )"
8. Python の仮想環境に,Dlib, face_recognition をインストール
Dlib は、aarch64 用のビルド済みパッケージが配布されていないため、ソースコードからのビルドになる.ビルドには時間がかかり(Raspberry Pi 4 で数十分程度)、メモリも必要である.
- 端末を開く
- Python の仮想環境を有効にする
次のコマンドを実行.
* 「conda activate ai」は Python 環境(名前は ai)を有効にするためのコマンド(各自の環境の名前にあわせること)
conda activate ai「Could not find conda environment: ai」というメッセージが出たときは、上の「Python の仮想環境の作成」を行う - スワップ(仮想メモリ)のサイズを増やす
メモリが 2G バイト以下の機種では、ビルド中のメモリ不足を避けるためにスワップを増やす.
sudo sed -i -e "s/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2048/g" /etc/dphys-swapfile sudo sed -i -e "s/^#\?CONF_MAXSWAP=.*/CONF_MAXSWAP=2048/g" /etc/dphys-swapfile cat /etc/dphys-swapfile | grep CONF_ sudo systemctl restart dphys-swapfile - ビルドに必要なパッケージのインストール
# パッケージリストの情報を更新 sudo apt update sudo apt -y install cmake sudo apt -y install libopenblas-dev sudo apt -y install libatlas-base-dev - Dlib のインストール
しばらく待つ
pip install -U dlib - Dlib のバージョン確認
python -c "import dlib; print( dlib.__version__ )" - face_recognition のインストール
pip install -U face_recognitionインストールの確認
python -c "import face_recognition; print( face_recognition.__version__ )" - スワップのサイズを元に戻す
スワップへの書き込みは SD カードの寿命を縮めるため、ビルドが終わったら元の値(既定値は 100 または 200)に戻す.
sudo sed -i -e "s/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=100/g" /etc/dphys-swapfile cat /etc/dphys-swapfile | grep CONF_SWAPSIZE sudo systemctl restart dphys-swapfile
9. Python の仮想環境に,地図・地理情報関係その他のパッケージをインストール
- 端末を開く
- Python の仮想環境を有効にする
次のコマンドを実行.
* 「conda activate ai」は Python 環境(名前は ai)を有効にするためのコマンド(各自の環境の名前にあわせること)
conda activate ai「Could not find conda environment: ai」というメッセージが出たときは、上の「Python の仮想環境の作成」を行う - geopandas, folium その他のインストール
geopandas は GDAL, PROJ, GEOS などのライブラリに依存する.依存関係をまとめて解決できるため、conda でインストールする.
conda install -y geopandas folium shapely pyproj fiona rasterio - overpy, ExifRead, haversine, utm のインストール
pip install -U overpy ExifRead haversine utm - インストールの確認
python -c "import geopandas; print( geopandas.__version__ )" python -c "import folium; print( folium.__version__ )"
10. カメラを使うとき(Picamera2)
Raspberry Pi のカメラモジュールを Python から扱うライブラリは Picamera2 である.従来の picamera は、Raspberry Pi OS Bullseye 以降で使用されている新しいカメラスタック(libcamera)に対応しておらず、公式に非推奨とされている.
Picamera2 は、Raspberry Pi OS のシステムパッケージとして提供されており、システムの libcamera と組み合わせて動作する.conda の仮想環境からは利用できないため、システム Python から使用する.
端末で,次のコマンドを実行.
sudo apt update
sudo apt -y install python3-picamera2
動作確認(システム Python で実行する.conda 環境を有効にしている場合は「conda deactivate」で無効にしてから実行する)
conda deactivate
/usr/bin/python3 -c "from picamera2 import Picamera2; print( Picamera2.global_camera_info() )"