Google Coral USB Accelerator最新アップデート

> Edge TPUランタイムがMacおよびWindowsで利用可能になりました

Coral USB Acceleratorは、コンピューターのコプロセッサーとしてEdge TPUを提供するUSBデバイスです。 Linux、Mac、またはWindowsホストコンピューターに接続すると、機械学習モデルの推論が高速化されます。 このページは、始めるためのガイドです。

![微信截图_20191206161349.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/3865d160-1ca5-9cf6-0893-bc71ed3b0488.png)



必要なことは、USBアクセラレータを接続するコンピューターにEdge TPUランタイムとTensorFlow Liteライブラリをダウンロードすることだけです。 次に、サンプルアプリを使用して画像分類を実行する方法を示します。

#### 必要条件
次のオペレーティングシステムのいずれかを搭載したコンピューター：

- Linux Debian 6.0以降、またはその派生物（Ubuntu 10.0+など）、およびx86-64またはARM64システムアーキテクチャ（Raspberry Piはサポートされていますが、Raspberry Pi 3 Model B +およびRaspberry Pi 4のみをテストしています）
- macOS 10.15、MacPortsまたはHomebrewのいずれかがインストールされている
- windows 10

1つの使用可能なUSBポート（最高のパフォーマンスを得るには、USB 3.0ポートを使用します）

Python 3.5、3.6、または3.7

#### 1. Edge TPUランタイムをインストールします
Edge TPUと通信するには、Edge TPUランタイムが必要です。 次のように、Linux、Mac、またはWindowsでホストコンピューターにインストールできます。

##### Linux
Debianパッケージリポジトリをシステムに追加します:

``` 
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 
```

Edge TPUランタイムをインストールします:

```
sudo apt-get install libedgetpu1-std 
```

付属のUSB 3.0ケーブルを使用して、USBアクセラレーターをコンピューターに接続します。 すでにプラグインしている場合は、新しくインストールしたudevルールを有効にするために、プラグインを削除してから再接続します。

次に、TensorFlow Liteライブラリのインストールを続行します。

最大動作周波数でインストール（オプション）
上記のコマンドは、デフォルトのクロック周波数でデバイスを動作させるLinux用の標準Edge TPUランタイムをインストールします。 代わりに、最大クロック周波数（デフォルトの2倍）で動作するランタイムバージョンをインストールできます。 これにより、推論速度が向上しますが、消費電力も増加し、USBアクセラレータが非常に熱くなります。

アプリケーションのパフォーマンスの向上が必要かどうか確信がない場合は、デフォルトの動作周波数を使用する必要があります。 それ以外の場合は、次のように最大周波数ランタイムをインストールできます:

```
sudo apt-get install libedgetpu1-max 
```

両方のバージョンのランタイムを同時にインストールすることはできませんが、上記のように代替ランタイムをインストールするだけで切り替えることができます。

> 注意：最大クロック周波数を使用してデバイスを動作させると、USBアクセラレータの金属部分が非常に熱くなります。 これは火傷の原因になる可能性があります。 怪我を避けるために、最大周波数で動作するときはデバイスを手の届かないところに置くか、デフォルトのクロック周波数を使用してください。

##### Mac
Edge TPUランタイムをダウンロードして解凍します:

```
curl -O https://dl.google.com/coral/edgetpu_api/edgetpu_runtime_20200128.zip

unzip edgetpu_runtime_20200128.zip
```

Edge TPUランタイムをインストールします:
```
cd edgetpu_runtime

sudo bash install.sh
```

インストールスクリプトは、最大動作周波数を有効にするかどうかを尋ねます。 最大動作周波数で実行すると、推論速度が向上しますが、消費電力も増加し、USBアクセラレータが非常に熱くなります。 アプリケーションのパフォーマンスの向上が必要かどうか確信がない場合は、「N」と入力してデフォルトの動作周波数を使用する必要があります。

パフォーマンス設定の詳細については、USBアクセラレータのデータシートをご覧ください。

付属のUSB 3.0ケーブルを使用して、USBアクセラレーターをコンピューターに接続します。

##### Windows
クリックして`edgetpu_runtime_20200128.zip`をダウンロードします。

ZIPファイルを抽出し、内部の`install.bat`ファイルをダブルクリックします。

コンソールウィンドウが開き、インストールスクリプトが実行され、最大動作周波数を有効にするかどうかを尋ねられます。 最大動作周波数で実行すると、推論速度が向上しますが、消費電力も増加し、USBアクセラレータが非常に熱くなります。 アプリケーションのパフォーマンスの向上が必要かどうか確信がない場合は、「N」と入力してデフォルトの動作周波数を使用する必要があります。

パフォーマンス設定の詳細については、USBアクセラレータのデータシートをご覧ください。

付属のUSB 3.0ケーブルを使用して、USBアクセラレーターをコンピューターに接続します。


#### 2. TensorFlow Liteライブラリをインストールします
TensorFlow Lite APIをインストールする方法はいくつかありますが、Pythonを開始するための最も簡単なオプションは`tflite_runtime`ライブラリをインストールすることです。 このライブラリは、Python（主に`Interpreter API`）で推論を実行するために必要な最小限のコードを提供するため、ディスクスペースを大幅に節約できます。

これをインストールするには、`TensorFlow Lite Python`クイックスタートを実行し、pip3 installコマンドを実行した後にこのページに戻ります。

#### 3. TensorFlow Lite APIを使用してモデルを実行する
これで、Edge TPUで推論を実行する準備が整いました。 サンプルコードとモデルで画像分類を実行するには、次の手順に従います:

GitHubからサンプルコードをダウンロードします:

```
mkdir coral && cd coral

git clone https://github.com/google-coral/tflite.git
```
鳥の分類器モデル、ラベルファイル、および鳥の写真をダウンロードします:

```
cd tflite/python/examples/classification

bash install_requirements.sh
```

![微信截图_20200204155640.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/a22953ee-5aad-6214-e68c-99f70ec09345.png)

鳥の写真で画像分類器を実行します:

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

おめでとうございます！ TensorFlow Liteを使用して、Edge TPUで推論を実行しました。

さまざまな推論速度を示すために、この例では同じ推論を5回繰り返します。 各推論を実行する時間と、最上位の分類結果（ラベルID /名前および信頼スコア、0〜1.0）を出力します。 推論速度は、ホストシステムとUSB 3.0接続を使用しているかどうかによって異なる場合があります。

コードの仕組みの詳細については、classify_image.pyソースコードを見て、TensorFlow Liteで推論を実行する方法について読んでください。

> 注：上記の例ではTensorFlow Lite Python APIを使用していますが、Edge TPU Python APIまたはTensorFlow Lite C ++ APIを使用して推論を実行することもできます。 各オプションの詳細については、Edge TPU推論の概要をご覧ください。


####次のステップ
他の種類のニューラルネットワークを実行するには、リアルタイムオブジェクト検出、ポーズ推定、キーフレーズ検出、デバイス上の転送学習などを実行するサンプルを含むサンプルプロジェクトをご覧ください。

Google Coralに興味がある場合は、こちらにアクセスしてください: Google Coral Edge TPU代理店Gravitylink!(https://store.gravitylink.com/global)

![1-13-Facebook.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/4ea9b5b2-1859-362c-48fd-083ffbb7479b.jpeg)