🤖

【環境構築】Raspberry Pi4のセットアップ

2023/12/05に公開

概要

この記事では、Raspberry Pi 4を活用したプロジェクトのスタートアップガイドについて記述しています。具体的な内容としては、Raspberry Pi 4の組み立てからOSの起動、初期設定、カメラの設定、そしてAI画像認識の環境構築までの手順を備忘録としてまとめています。

セットアップ

購入した商品

https://www.amazon.co.jp/gp/product/B0C8BBVVXK/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&th=1

https://www.amazon.co.jp/gp/product/B01F1SWTZE/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

https://www.amazon.co.jp/exec/obidos/ASIN/B006T9B6R2/karaage0703-22//ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=k-note-22&linkId=d94f8830e5d945dc2e65529203111bd4

マストの設定

※カメラ使用する場合はOSはLegacyを推奨

  1. 組み立てからOS起動まで - souichi.club
  2. Raspberry Pi ImagerのセットアップからSD書き込み - qiita.com
  3. 細かい設定(SSH, ibus-mozc等)のセットアップ - note.com
  4. Raspberry PiのLED制御 - cgbeginner.net

カメラ設定 - www.pc-koubou.jp

  • 記事によると、64ビットのOSではインターフェース設定メニューからカメラ機能を有効にすることができないことで、実際に自分が試してもカメラを有効にできなかった。
  • レガシー版のOSを使用した場合、カメラ接続コマンド vcgencmd get_camera は正常に機能し、以下のような結果が表示された。

supported=1 detected=1

  • sudo raspistill -o image.jpg コマンドも問題なく動作し、カメラからの画像取得が可能

【追記】

  • 機械学習モデルの利用では64ビットがベター。推論の速度等も考慮し64ビット版が望ましい。
  • 64ビットで再構築後、カメラが正常に起動。64ビットではlibcamera-helloコマンドが使用可能。legacy cameraはenableにしてはならない。また、 vcgencmd get_camera コマンドの結果が0でも気にしなくてよい。
  • Bullseyeでのカメラテストの記事

AI画像認識環境構築

唐揚げさんの記事を参考、というかほぼほぼ引用してセットアップ。ただし、以下の留意点あり。
https://zenn.dev/karaage0703/articles/3d3d443244da2c#ai環境セットアップ

  • 環境

    • 64ビットOS
    • bullseye (Debianのバージョン)
  • OpenCVインストール
    ※opencv-pythonは2回目の同じコード実行で成功。原因不明。

$ 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
  • TensorFlowインストール
    ※インストールURL変更あり。.shファイル実行時エラーなら、中身のコードを1行ずつ実行。
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"
# ↓のパスに変更
wget "https://github.com/PINTO0309/Tensorflow-bin/blob/main/previous_versions/download_tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221.sh"
# sudo chmod +x tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221_download.sh
sudo chmod +x download_tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221.sh
# ./tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221_download.sh
./download_tensorflow-2.8.0-cp39-none-linux_aarch64_numpy1221.sh
sudo pip3 uninstall tensorflow
sudo -H pip3 install tensorflow-2.8.0-cp39-none-linux_aarch64.whl

# インストール確認
python3 -c 'import tensorflow as tf; print(tf.__version__)'
  • TensorFlowLiteのインストール
    ※こちらもURLを1か所変更
# wget "https://raw.githubusercontent.com/PINTO0309/TensorflowLite-bin/main/2.8.0/download_tflite_runtime-2.8.0-cp39-none-linux_aarch64.whl.sh"
wget "https://github.com/PINTO0309/TensorflowLite-bin/blob/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://raspi.taneyats.com/entry/backup-sdcard

vscodeでのssh接続

  • 接続方法
  1. https://tec.tecotec.co.jp/entry/2021/12/11/000000#Raspberry-Piに接続
  2. ssh接続のボタンが表示されないときの対処
    https://zenn.dev/suisuinn/articles/6195c0cb8c54c8
  • 接続後、remote環境で以下の拡張機能をインストール
    • Python
    • Jupyter

よく使うやつ

ssh ユーザ名@ホスト名 → パスワード入力
sudo shutdown -h now

Discussion