ラズパイのUSB3.0でエッジAIデバイスを接続!USB2.0との比較

ラズベリーパイ(raspberry pi)

ラズパイ4でエッジAIデバイスのUSB Acceleratorを動かし方を紹介します。

ラズベリーパイのUSB3.0とUSB2.0でエッジデバイスとしての性能・速度を比較しています。

スポンサーリンク

ラズパイのUSB3.0でエッジAIデバイスを接続!USB2.0との比較

結論としてはラズパイ4のUSB3.0でエッジデバイスを使うことでUSB2.0と比べて推論速度が2倍以上となりました。

 

エッジ端末側のデバイス速度向上にUSB3.0は使える!

USB3.0を搭載したことにより、ラズパイ4がエッジ向け端末として更にスペックアップしたことになります。

 

USB接続のエッジデバイスをUSB3.0接続してどれだけ高速化になるか確認した方法を紹介します。

ラズパイ4(USB3.0)でストレージ接続した場合も高速化した

下記記事でもラズパイ4と外付けHDDをUSB3.0で接続した場合、単純なRead速度のUSB2.0比で5~6倍になっていました。

ラズパイのサーバーを性能比較!NASの速度・負荷を確認してみた
最新のラズベリーパイでNASサーバーを作り、通信速度・メモリ負荷を確認しました。 ラズパイ+外付けHDD(SSD)でサーバーの自作を検討している方に対して、満足なスペックを出すためのポイントを紹介します。 ラズパイのサーバー...

(サーバーとしての性能向上には影響しなかったが…)

 

USB3.0(5.0Gbps)のストレージとして認識して、190.96MB/sの読み込み速度が出ていました。

 

ラズパイ4でEdge TPU USB Acceleratorを動かす

以前の記事でEdge TPUの使い方を説明していましたが、ラズパイ4には未対応でした。

Google Edge TPUを購入してラズベリーパイと機械学習してみた
ついにGoogleからエッジ向けのプロセッサ「Google Edge TPU」が発売されました。今回はUSB Acceleratorとラズベリーパイを使って機械学習のデモを試してみます。 Google Edge TPUとは 20...

 

これから紹介するインストール手順はラズパイ4(ラズパイ3B+にも)対応していますので安心です。

前回とはインストール手順・コマンドも異なっていますので注意してください

TensorFlow Lite のライブラリ含めてインストールする

正式なインストール手順はCoralのHPを参考にお願いします(リンク先はこちらから)

USBアクセラレータをラズパイ4に接続してインストール作業を開始します

Edge TPU runtimeをインストールする(必須)

Coral USB Acceleratorをラズパイに接続して、下記コマンドを実行します。

 

 

Edge TPUを最高周波数で動作させるruntimeを入れる(任意)

Edge TPUが電力を消費して発熱するようになりますが、最高スペック(周波数)で動かせるようにできます。

特にインストールしなくても十分に動作しますので任意箇所です。

 

EdgeTPUの推奨雰囲気温度が25℃以下になるということです

 

※もし誤ってインストールしてしまい、通常Verにしたい場合は「libedgetpu1-std」を再インストールすれば大丈夫です。

 

TensorFlow Lite libraryをダウンロード・インストールする(必須)

ここが前回と大きく違う箇所です。TensorFlow Liteのライブラリをダウンロード・インストールする必要があります。

PythonのVerでもコマンドが異なってきますので注意してください。下記コマンドでVerは確認できます。

 

ラズベリーパイのwebブラウザでTensorFlow Liteのダウンロードサイトに行きます。

Python quickstart  |  TensorFlow Lite

 

最初にご自身のPythonにあったVerのTensorFlow Liteのライブラリをダウンロードします。

今回(筆者の)はラズパイのPythonが3.7.3ですのでサイトに書いてあるコマンドのVerをダウンロードしました。

 

ダウンロードすると基本「/home/pi/Downloads」に入っていると思います。

 

そのため下記コマンドを打ってインストールしました。

 

TensorFlow Lite APIを使ってデモプログラムを実行する。(必須)

後はディレクトリ作ってサンプルプログラムをダウンロードして動かすだけです。

 

正式な手順のコマンドだと「coral」というフォルダを作ってダウンロードしていきます。(そのため新たなターミナルを開いて実行していきます)

 

 

最後にデモプログラムを動かします

 

おそらく下記のような結果が帰ってきていると思います。(USB3.0接続で実施)

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.
18.2ms
4.9ms
5.1ms
5.0ms
5.0ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

 

デモプログラムの内容・結果

このプログラム何を行っているかというと、「Google Edge TPU」で「鳥」のデータを読み込んで機械学習させて「この写真の鳥は何か?」と聞いています。

 

今回の結果だと「Google Edge TPU」はコンゴウインコ(Scarlet Macaw)と判断したようです。

ラズベリーパイのUSB3.0とUSB2.0での速度比較

先ほどはUSB3.0で接続したので、今度はUSB2.0で接続して推論速度を確認します。

 

同様にデモプログラムを走らせると下記結果になりました。

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.
118.1ms
11.8ms
11.4ms
11.4ms
11.3ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562

 

「Note: The first inference on Edge TPU is slow」と注記されています。

1回目の推論時間はEdgeTPUのメモリにモデルをロードする時間があり遅いということです。

そのため、2回目~5回目の平均で推論時間を比較しますと…

 

「USB3.0…5.0ms」「USB2.0…11.5ms」となりUSB3.0はUSB2.0比で2倍以上の推論速度となりました。

 

やはりUSB2.0(480Mbps)の箇所がエッジデバイスを使う上で大分ボトルネックとなっている様子です。

 

リアルタイムの画像認識でもラズパイの性能を比較しました

<<20191230追記>>

下記記事でカメラを使ったリアルタイムの画像認識でもラズパイ4の性能を確認しました。

よろしければご覧ください(リンク先はこちらから)

ラズパイでカメラの使い方!Pythonとコマンドの基本・応用例を紹介
ラズベリーパイとカメラの使い方をまとめてみました。初心者の方でも簡単に撮影できます Pythonとコマンドのどちらでも写真・動画撮影が対応できる旨を紹介して、最後には画像認識まで実施してみます。 ラズパイでカメラの使い方!Pytho...

 

まとめ・感想

ラズベリーパイ(raspberry pi)Coral USB AcceleratorをUSB3.0で接続することで高速化できました。

USB接続のエッジAIデバイス使う上でもUSB3.0を持つラズパイ4は使えそうです。

ぜひ皆さまも試してみてください

コメント