最新Raspberry Pi OS(Bullseye)のAI画像認識環境構築方法
ラズパイでAI画像認識環境構築
ひさしぶりにラズパイでディープラーニングしようと思ったら、色々変わっていたのでメモ。
追記:ラズパイ5に関しては以下記事参照ください。
前提
ハードウェアやソフトウェアの前提は以下です。
- Raspberry Pi 4
- Raspberry Pi OS(64-bit) with Desktop 2023-02-21(Bullseye)
- USBカメラ
OSは64bitを使用します。32bitだとライブラリのバージョンが変わってくるのでこの記事のままだとインストールできませんので注意してください。
SDカードの書き込みやハードウェアのセッティングに関しては、以下記事参照ください。
また、上記記事では、カメラとしてRaspberry Pi カメラモジュールを使っていますが、Raspberry Pi OSがBullseyeになってから、使用するライブラリが変わった(Picamera -> Picamera2)関係でそのままでは動かないため、USBカメラを使っています。
初期設定
特別な初期設定は不要です。基本的な初期設定に関しては、ネット情報や書籍を参照ください。
私は、VNCやエディタ(VS Code)のセットアップを実施します。
AI環境セットアップ
起動した後、セットアップしていきます。TensorFlow関係は、公式より速いと噂の最速エンジニアのPINTOさん謹製のバイナリを使用します。
ターミナルで以下のコマンドを実行していけばセットアップ完了です。
OpenCVインストール
$ sudo apt-get update
$ sudo apt-get install -y libatlas-base-dev
$ sudo pip3 install -U pip
$ sudo pip3 --default-timeout=1000 install opencv-python==4.7.0.72
ONNX runtimeインストール
以下コマンドでインストールできます。
$ sudo pip3 install onnxruntime
上記コマンドは64bitの場合有効です。32bitの場合はインストールできません。こちらにラズパイ用のバイナリがあるので、以下の通り実行することでダウンロードしてインストールできます。
$ wget https://github.com/nknytk/built-onnxruntime-for-raspberrypi-linux/raw/master/wheels/bullseye/onnxruntime-1.14.0-cp39-cp39-linux_armv7l.whl
$ pip3 install onnxruntime-1.14.0-cp39-cp39-linux_armv7l.whl
フォロワーの AirPocketさんに教えていただきました。
TensorFlowインストール
$ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev gcc gfortran libgfortran5 \
libatlas3-base libatlas-base-dev libopenblas-dev libopenblas-base libblas-dev \
liblapack-dev cython3 libatlas-base-dev openmpi-bin libopenmpi-dev python3-dev
$ sudo pip3 install pip --upgrade
$ sudo pip3 install keras_applications==1.0.8 --no-deps
$ sudo pip3 install keras_preprocessing==1.1.0 --no-deps
$ sudo pip3 install numpy==1.22.1
$ sudo pip3 install h5py==3.1.0
$ sudo pip3 install pybind11
$ pip3 install -U --user six wheel mock
$ wget "https://raw.githubusercontent.com/PINTO0309/Tensorflow-bin/main/tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221_download.sh"
$ sudo chmod +x tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221_download.sh
$ ./tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221_download.sh
$ sudo pip3 uninstall tensorflow
$ sudo -H pip3 install tensorflow-2.8.0-cp39-none-linux_aarch64.whl
参照: https://github.com/PINTO0309/Tensorflow-bin
インストール確認は以下コマンドを実行してください。
$ python3 -c 'import tensorflow as tf; print(tf.__version__)'
以下のようにバージョンが表示されたらOKです。
2.8.0
TensorFlowLiteのインストール
$ wget "https://raw.githubusercontent.com/PINTO0309/TensorflowLite-bin/main/2.8.0/download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh"
$ chmod +x download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh
$ ./download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh
$ sudo pip3 install --upgrade tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl
参照: https://github.com/PINTO0309/TensorflowLite-bin
以上で完了です。PyTorchとか他の環境が必要な人は…まあよしなに。
ラズパイで動くAI画像認識アプリ
以下あたりを試してみましょう。だいたい動きました(動かないものもある)。オススメは、やはりPINTO_model_zooですね。
まとめ
ラズパイでAI画像認識を動かしてみました。Picameraが2になって大きく変わってしまったのは辛いですね。またPicamera2でAI画像認識する方法も試していきたいと思います。
参考記事
補足情報
この記事を参考にしていただき、最新情報を補足してくださっている記事です。
関連記事
変更履歴
- 2023/04/01 32bit, 64bitの差に関して追記
Discussion