9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Pi 4にEdge TPUを付けて動かす

Posted at

概要

ラズパイ4にEdge TPUを付けて、公式のサンプルを動かすまでにすることを書いてます。

最終的には、サンプルコードの物体分類が4.4msでできました。(早すぎないか...?

準備

用意するもの

  • ラズベリーパイ4本体
  • 5V3A USB Type-C 電源用ケーブル
  • ストレージ用microSDカード
  • Coral USB Accelerator (Edge TPU)

OSをSDカードに焼く

ダウンロード

https://www.raspberrypi.org/downloads/raspbian/
ここからOSのイメージをzipで落としてきます。
Raspbian Busterにはfull, desktop, liteの3種類がありますが、今回はliteを使います。

焼く

https://www.balena.io/etcher/
を使って用意したmicroSDに、先ほどダウンロードした.imgファイルを書き込んでいきます。
Validationに成功したら、SDカードは勝手にアンマウントされます。
が、もう一度マウントしてください。やることが残っています。

事前設定

SSHの有効化

ヘッドレス起動(画面無し起動)をするには、SSHの有効化は必要です。
bootパーティション内に、sshという名前のファイルを作成します。
拡張子は無くても、.txtなどでも大丈夫です。

sshという名前のファイルがある場合、sshがboot時から有効になります。

Wifiの設定

bootパーティション内にwpa_supplicant.confという名前のファイルを作ると、boot時にしかるべき場所にコピーしてくれます。
wpa_supplicant.confには主にWifiのSSIDと、パスワードの組み合わせを書いていく形になります。

https://mascii.github.io/wpa-supplicant-conf-tool/
ここに、パスワードを暗号化しつつwpa_supplicant.confを自動生成してくれるツールがあるので、これを使うといいと思います。

起動

ラズパイに必要な場合hdmiケーブルを接続しモニタにつなげます。
マウス、キーボード、有線LANなどの周辺機器も電源を入れる前に接続してください。
ただし、Edge TPUはまだ接続しないでください。

全て繋ぎ終えたら、ラズパイに電源ケーブルを刺します。

SSHで接続

あなたのパソコンがmDNSに対応しているか確認してください。
この辺の記事とかに色々書いてあります。私は2019/12/10時点で最新のwindows10を使っているのですが、ファイアーウォールの設定などをせずともできました。

https://qiita.com/maccadoo/items/48ace84f8aca030a12f1
この記事が参考になるかも

mDNSが使える場合、raspberrypi.localがラズパイのIPアドレスを表すので

>ssh pi@raspberrypi.local

初期起動時はユーザー名pi、パスワードはraspberryです。

設定とか

  • passwdコマンドでパスワードを変更しましょう。
  • 好きなエディタとか入れましょう。
  • .bashrcHISTSIZEHISTFILESIZEをお好みで変更しましょう。
  • gitを入れましょう。
>sudo apt install git

raspi-configコマンドで色々設定できます。地域をJPにする以外はお好みで。

>sudo raspi-config

後は適当に更新しましょう。

>sudo apt update
>sudo apt upgrade

Edge TPU関連の設定

基本的にはhttps://coral.ai/docs/accelerator/get-started#1-install-the-edge-tpu-runtime に従ってやっていくので、コマンドだけ貼っておきます。

>echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

>curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

>sudo apt-get update

>sudo apt-get install libedgetpu1-std

ここまでやったら、Coral USB Acceleratorをラズパイに接続します。(やっとだ!

Tensorflow Lite Libraryのインストール

ここがちょっとしんどかった😢。

まずpipを入れるのですが、python-pip(python2系)とpython3-pip(3系)があるので気を付けてください。いれるのは3系のほうです。

>sudo apt install python3-pip
# バージョンチェック
>pip3 -V

そして、https://www.tensorflow.org/lite/guide/python#install_just_the_tensorflow_lite_interpreter にアクセスします。

image.png

このように、様々なアーキテクチャにビルド済みのtensorflow lite interpreterだけを切り離したライブラリがあるのでpipを使ってインストールします。(推論以外もしたい場合は、普通のtensorflowを入れてください)

念の為アーキテクチャの再確認をします。

>uname -a
# Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
>python3 --verison
# Python 3.7.3

よって、上の画像の左下のARM32,Python3.7のwhlをダウンロードします。そして、pipでそのファイルを使ってライブラリをインストールします。

pip3 install tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl

サンプルを動かす

https://coral.ai/docs/accelerator/get-started#2-install-the-tensorflow-lite-library に従ってコンソールを叩いていきます。

>mkdir coral && cd coral

>git clone https://github.com/google-coral/tflite.git

>cd tflite/python/examples/classification

>bash install_requirements.sh

最後のbash install_requirements.shでエラーになった場合、必要なライブラリが入っていないことによるエラーだと思います。

私は

sudo apt-get install libjpeg-dev
sudo apt install libatlas-base-dev

を入れ、もう一度実行してみたところ上手くいきました。

実行結果

>python3 classify_image.py --model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels models/inat_bird_labels.txt --input images/parrot.jpg
INFO: Initialized TensorFlow Lite runtime.
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
17.2ms
4.4ms
4.4ms
4.4ms
4.4ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

というわけで、なんと4.4msという驚異的な速度で物体分類ができました。

see also

https://jyn.jp/raspbian-setup/
https://qiita.com/shuichiro/items/d9e388fad3a00dbd4028

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?