🧠

最新Raspberry Pi OS(Bullseye)のAI画像認識環境構築方法

2022/04/03に公開

ラズパイでAI画像認識環境構築

ひさしぶりにラズパイでディープラーニングしようと思ったら、色々変わっていたのでメモ。

追記:ラズパイ5に関しては以下記事参照ください。
https://zenn.dev/karaage0703/articles/f1eb992f426d0f

前提

ハードウェアやソフトウェアの前提は以下です。

  • Raspberry Pi 4
  • Raspberry Pi OS(64-bit) with Desktop 2023-02-21(Bullseye)
  • USBカメラ

OSは64bitを使用します。32bitだとライブラリのバージョンが変わってくるのでこの記事のままだとインストールできませんので注意してください。

SDカードの書き込みやハードウェアのセッティングに関しては、以下記事参照ください。

https://karaage.hatenadiary.jp/entry/rpi4-dl-setup

また、上記記事では、カメラとしてRaspberry Pi カメラモジュールを使っていますが、Raspberry Pi OSがBullseyeになってから、使用するライブラリが変わった(Picamera -> Picamera2)関係でそのままでは動かないため、USBカメラを使っています。

初期設定

特別な初期設定は不要です。基本的な初期設定に関しては、ネット情報や書籍を参照ください。

私は、VNCやエディタ(VS Code)のセットアップを実施します。

https://qiita.com/karaage0703/items/9650e7aeceb6e1b81612

https://zenn.dev/karaage0703/books/80b6999d429abc8051bb

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さんに教えていただきました。

https://twitter.com/airpocketrobot/status/1641351983847329792

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ですね。

https://zenn.dev/karaage0703/articles/a4973dc094ee1c

https://qiita.com/karaage0703/items/8c3197d11f61812546a9

https://github.com/Kazuhito00/PyCon-mini-Shizuoka-2021-Talk4

まとめ

ラズパイでAI画像認識を動かしてみました。Picameraが2になって大きく変わってしまったのは辛いですね。またPicamera2でAI画像認識する方法も試していきたいと思います。

参考記事

https://www.raspberrypi.com/news/using-the-picamera2-library-with-tensorflow-lite/

https://elchika.com/article/10487527-afbe-48c7-afc6-6c088a462a3c/

補足情報

この記事を参考にしていただき、最新情報を補足してくださっている記事です。

https://zenn.dev/zinziroge/articles/74856bdb4aae86

関連記事

https://zenn.dev/karaage0703/articles/96013d71ab764c

変更履歴

  • 2023/04/01 32bit, 64bitの差に関して追記

Discussion