LoginSignup
8
5

More than 3 years have passed since last update.

ラズパイ4でEdgeTPUを使用する

Last updated at Posted at 2019-12-03

概要

ようやく技適を取れたラズパイ4が購入出来るようになり、手に入れたので、動作確認がてらにUSB3.0搭載のラズパイ4でEdgeTPUを利用して速度を見たいと思います。この記事ではインストールまで。

他インストール記事との違い

他にも同じような記事がありますが、どれも公式手順ではインストールできなかったという報告が多くインストール方法が公式と少し異なっています。今回公式手順を改めて行ったところ(2019/12/03時点)特に問題なくインストールできましたので、メモしておきます。特に公式手順と変わらないのでそちらで問題ない人はそれが確実かと思います。

公式: https://coral.ai/docs/accelerator/get-started/

環境

  • ラズパイ4 4GBメモリ
  • OS: Raspbian Buster

インストール

Edge TPU runtimeをインストール

Edge TPUを既に挿している人はinstall後、udevのルールを有効化するため一度抜き差し必要です。

公式: https://coral.ai/docs/accelerator/get-started/

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

Tensoflow Lite Libraryのインストール

こちらをインストールすることでラズパイにTensoflowをいれずに最小構成のTensorflow Liteの実行環境をインストールできます。
今回RaspbianのBusterということでデフォルトのPython環境がPython3.7環境となっています。ARM32のPython3.7のwhlを取得してきてインストールします。

参考: https://www.tensorflow.org/lite/guide/python

wget https://dl.google.com/coral/python/tflite_runtime-1.14.0-cp37-cp37m-linux_armv7l.whl

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

サンプル動作

これで準備は完了です。一瞬で環境準備できました。いつものインコ画像のサンプルを動作させます。

サンプルをgitからダウンロード

mkdir coral && cd coral

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

必要なものをインストール

cd tflite/python/examples/classification

bash install_requirements.sh

サンプルの画像分類を動作させる

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

以下が出力されればOKです。

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.
11.8ms
3.0ms
2.8ms
2.9ms
2.9ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

Edge TPU Python APIのインストール

上記のサンプルはTensorFlow Lite APIからの利用までだとこれでOK。より抽象化されたAPI(簡単に書ける)のEdge TPU Python APIのインストールも行う場合は以下でインストールする。

参考: https://coral.ai/docs/edgetpu/api-intro/

sudo apt-get update

sudo apt-get install python3-edgetpu

その他

EdgeTPUの動作を確認するのにOpenCVを入れて画像認識系をお試しに動かそうとしたが、OpenCVのVideoCaptureがGstreamerのエラーで動作しない状態となり結構ハマったのでこちらもメモっておく。

ラズパイ: Buster向け OpenCV4
→いつもお世話になっているdebパッケージインストールだけど、今回うまく動かなかった。(指定したバージョンが悪かったのかもしれないが...)

以下エラー内容:

[ WARN:0] global /home/pi/opencv-4.1.2/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Failed to allocate required memory.
[ WARN:0] global /home/pi/opencv-4.1.2/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/pi/opencv-4.1.2/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

以下のURL先にあるインストール方法を行うことで問題発生しなくなった。

Install OpenCV 4 on Raspberry Pi 4 and Raspbian Buster

最後に

こういった新しめの環境構築はナマモノですので、いつまで公式の方法で簡単にインストール出来るかはわかりませんが、少なくとも私はこれで動作しました。やはり自分で公式のものを試してどこで詰まるかなどは確認しておたほうが良いですね。

8
5
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
8
5