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


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

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

前提

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

  • Raspberry Pi 4
  • Raspberry Pi OS(64-bit) with Desktop 2022-01-28(Bullseye)
  • USBカメラ

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

$ pip3 install opencv-python

ONNX runtime

$ pip3 install onnxruntime

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

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://zenn.dev/karaage0703/articles/96013d71ab764c