LoginSignup
4
3

More than 3 years have passed since last update.

Google Edge TPU:Coral USBアクセラレータ+ RaspPi+ Docker

Last updated at Posted at 2019-07-23

2018年夏、Googleは機械学習用の2つのEdge TPUデバイスを発表しました。 これらは現在コーラルブランドで入手可能です。 2週間前、私はCoral USB Acceleratorを購入しました。 それは既存のシステムに機械学習推論をもたらすポータブルUSBアクセサリーです、そしてそれはラズベリーパイと他のLinuxシステムと互換性があります。

微信图片_20190531135204_副本.jpg

購入です:https://store.gravitylink.com

Raspberry Pi 3でEdge-TPUのパフォーマンスをテストしたいと思いました。RaspberryPiのDocker上ですべてのアプリケーションを実行しているので、Coral USBアクセラレータを使い始めるために必要なすべてのものを含むDockerイメージを作成しました。 。 さらに、PIカメラを使用して画像をWebサーバーにストリーミングする例を追加しました。分類の結果はカメラ画像の上に印刷されています。また、Jupyterも例として使用しています。

これが、このチュートリアルで達成しようとしていることです。

  • ラズベリーパイにDockerをインストールする

  • lemariva / raspbian-edgetpu Dockerイメージをデプロイする

  • sshとを使ってDockerコンテナに接続します。

  • Jupyterを使用するか、Webサーバー機能を使用して画像分類器を起動します。

微信截图_20190723142604.png

CoralとTensorFlow Liteを始めよう

Rasbperry PiにRaspbianをインストールした後。 次に、カメラをCSIインターフェース(人生の画像を分析する場合)に接続し、アクセラレータUSB Egde-TPUをUSBポートに接続してRaspberry Piの電源を入れます。 次に、raspiconfigを使用してカメラのインターフェースを有効にし、ラズベリーを再起動します。 それが終わったら、Dockerエンジンをインストールする必要があります。 私はチュートリアルを書きました:#チュートリアル:Docker on Embedded Systems(Raspberry PiとBeagleboard) はあなたを助けることができます。 Dockerエンジンをインストールしたら、Portainerコンテナをデプロイすることをお勧めします。 これはそのチュートリアルでも説明されています。

それで、あなたがPortainerを使うならば:

  • 1.Portainer.io Docker管理ユーザーインターフェイスを開きます。 (通常はhttp:// <<ip-address-rpi>>:9000
  • 2.コンテナ>コンテナの追加で以下のパラメータを入力します。

名前:rasbian-google(またはあなたが望むものなら何でも)
イメージ:lemariva / raspbian-edgetpu
ポートマッピング
ホスト25(未使用のもの) - >コンテナ22
ホスト8000(未使用のもの) - >コンテナ8000
ホスト8888(未使用のもの) - >コンテナ8888
ポリシーを再起動します。
ランタイム>特権モード:オン
ボリュームバインド>/ dev / bus / usb:/ dev / bus / usb
- 3.「アクション」>「コンテナーの開始/デプロイ」ボタンを押します。

Portainer.ioを使用したくない場合は、次の行を使用してlemariva / raspbian-edgetpuコンテナを実行します:

shell
docker run -d --privileged -p 25:22 -p 8000:8000 -p 8888:8888 --restart unless-stopped -v /dev/bus/usb:/dev/bus/usb  lemariva/raspbian-edgetpu

数分待ってから、すべて問題なければ、コンテナーは稼働しているはずです。 あなたは私の場合のようにsshを使ってそれに接続することができます(ポート25はマップされました):

shell
ssh root@<<ipaddress>> -p 25

デフォルトのパスワードはrootです。 sshを使用して実行中のコンテナにログインしたら、PIカメラを使用して画像分類器を起動できます:

shell
python3 /notebooks/web_streaming_classify.py --model /notebooks/test_data/mobilenet_v2_1.0_224_quant_edgetpu.tflite --label /notebooks/test_data/imagenet_labels.txt

その後、あなたは上のウェブサイトにアクセスすることができます。 http:// <ip address address>:8000。 このWebサイトへの並列アクセスは機能していません、そしてあなたがWebサイトを更新したい場合は、それを2回実行してください。

Jupyterも利用可能です、あなたはノートブックにアクセスすることができます。 http:// <>:8888 sshセッションを使用して次のように入力して取得できるトークンが必要です。

shell
jupyter notebook list

[I 11:59:16.597 NotebookApp] The Jupyter Notebook is running at:
http://0.0.0.0:8888/?token=c8de56fa4deed24899803e93c227592aef6538f93025fe01

画像分類子の例と、それをテストするための動物画像も含めました。 必要に応じて、コンテナを反復モードでも実行できます。

5c99e4e7b6de3677414165.png

TensorFlow Lite

事前に訓練されたモデルを使用することも、モデルをウェットトレーニングすることも、最初からモデルを構築することもできます。ここでは、情報を入手します。

トレーニング済みモデル

CoralのWebサイトには、Coralハードウェアでの使用に最適化された、事前にトレーニングされたTensorFlow Liteモデルがあります。 Dockerイメージの中に "MobileNet V2"モデルを含めました。 これは1000種類のオブジェクトを認識します。 始めたばかりの場合は、他のモデルをダウンロードしてデバイスに展開するだけです。

モデルを退避させる

トランスファーラーニングと呼ばれるプロセスを使用して、既存のモデルを再トレーニングしたり、事前にトレーニングされたコーラルの機械学習モデルをカスタマイズして自分のイメージやオブジェクトを認識させることができます。 これを行うには、既存のモデルの再保存の手順に従ってください。

あなた自身のTensorFlowモデルを構築してください

モデルを最初からトレーニングする必要がある場合は、Edge TPU用の新しいモデルの作成の手順に従うことができます。 モデルはモデル要件を満たす必要があります。

TensorFlow、他のフレームワーク(例:PyTorch)、そしてコーラルプロジェクト

現在、Edge-TPUはTensorFlow Liteモデルのみをサポートしています。 つまり、tfliteモデル をtflite-tpuに変換する必要があります。 あなたがPyTorchユーザであるか、他のフレームワークを好むならば、あなたはONNXを使ってあなたのモデルをTensorFlowに変換しようとすることができます。

結論

この記事では、Docker、Jupyter、Raspberry Pi、Pi Camera、およびCoral USB Acceleratorの5つのことをまとめています。 ポータブルEdge-TPUアクセサリをテストしたい場合は、これが簡単な方法です。 Edge-TPUのパフォーマンスは本当に良いです。 オフラインカメラ画像とPiカメラのライブ画像を分類する時間が大幅に短縮されます。 次の記事では、結果をいくつか掲載します。

4
3
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
4
3