概要
ようやく技適を取れたラズパイ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
最後に
こういった新しめの環境構築はナマモノですので、いつまで公式の方法で簡単にインストール出来るかはわかりませんが、少なくとも私はこれで動作しました。やはり自分で公式のものを試してどこで詰まるかなどは確認しておたほうが良いですね。