Google Coral Edge TPU USB Accelerator をWindows10で動かす

#目的
Google Coral **Edge TPU** のUSB Acceleratorのもの（白いやつ）を**Windows10**でWindows上で普通に動かしました。
適当に、大間違いして苦労しましたが、**普通の人は、簡単に動くハズ**なので、ご紹介。
**時間がかかる作業、なかったです。**

#環境
Windows10
Python 3.7.2　<--自分の環境は、これ。
tflite-runtime           2.1.0　<-- これは、下記手順でインストール

#動かし方
##何をみたか
**Coralの以下のページ**のとおりやりました。
Get started with the USB Accelerator
https://coral.ai/docs/accelerator/get-started/

##手順1(1. Install the Edge TPU runtime)

以下の記載のとおりやりました。
https://coral.ai/docs/accelerator/get-started/

>On Windows
Click to download edgetpu_runtime_20200331.zip.
Extract the ZIP files and double-click the install.bat file inside.

##手順2(2. Install the TensorFlow Lite library)

示されている
https://www.tensorflow.org/lite/guide/python
から、以下をインストールしました。
	https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-win_amd64.whl

##手順3(3. Run a model using the TensorFlow Lite API)

記載されているとおりに実行しました。
ただ、ここの記載は、linux向けなので、適当に解釈して実行しました。

例えば、bash install_requirements.sh
とかは、３つほどのファイルを取得するという内容なので、そのファイルを取得しました。
中に記載の
TEST_DATA_URL=https://github.com/google-coral/edgetpu/raw/master/test_data
から取得することになります。

##手順4(結果）
＊オーム？？*が、検出できました。
(時間の情報をみるために、繰り返し回数を15回にしました。）

↓は、**間違えてUSB2.0で実行してしまいました。**後続のUSB3.0のほうを見て下さい。（そもそも、USBの記号を勘違いしました。USB3.0は、SSみたいな記号が着くんでしたよね。。。ボケました。）

```
C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\classification>python classify_image.py --model mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels inat_bird_labels.txt --input images/parrot.jpg
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
96.9ms
10.2ms
9.8ms
9.0ms
9.4ms
8.8ms
9.1ms
9.2ms
9.0ms
9.6ms
9.2ms
10.5ms
9.4ms
9.8ms
10.1ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.77734

C:\_work1\
```

↓は、**USB3.0で接続しました。やり直し！。
随分、速くなりました。**

```
C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\classification>python classify_image.py --model mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels inat_bird_labels.txt --input images/parrot.jpg
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
11.9ms
3.0ms
5.5ms
4.0ms
3.4ms
3.3ms
3.7ms
4.4ms
3.4ms
3.6ms
3.7ms
4.2ms
2.9ms
4.1ms
3.5ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.77734

C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\exa
```

##手順5(結果 ※比較のため、CPUでも動作させてみる）

CPUのスペックは、
	Specification		Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz

この結果だけをみると、CPU比**40倍**速などのレベル。
ただし、感覚としては、絶対値として、**CPUが最適化されなさすぎる**気がする。別途、具体的に示す。

```
C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\classification>python classify_image.py --model mobilenet_v2_1.0_224_inat_bird_quant.tflite --labels inat_bird_labels.txt --input images/parrot.jpg
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
418.7ms
357.6ms
360.0ms
389.0ms
356.0ms
356.2ms
382.5ms
357.0ms
357.7ms
382.8ms
359.0ms
358.1ms
391.1ms
357.2ms
357.8ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.77734

C:\_work1\_win_


```

#追加
物体検出（SSD)も動作させてみた。（当然、USB3です。）

mobilenet-v1。

```
C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\detection>python detect_image.py --model mobilenet_ssd_v1_coco_quant_postprocess_edgetpu.tflite --labels coco_labels.txt --input grace_hopper.bmp --output grace_hopper_processed.bmp
----INFERENCE TIME----
Note: The first inference is slow because it includes loading the model into Edge TPU memory.
152.92 ms
75.88 ms
68.13 ms
50.30 ms
58.70 ms
55.15 ms
36.27 ms
36.49 ms
37.81 ms
37.50 ms
44.43 ms
35.63 ms
25.74 ms
23.98 ms
26.70 ms
-------RESULTS--------
person
  id:     0
  score:  0.70703125
  bbox:   BBox(xmin=-1, ymin=5, xmax=522, ymax=597)
tie
  id:     31
  score:  0.484375
  bbox:   BBox(xmin=222, ymin=414, xmax=294, ymax=552)

C:\_w

```

mobilenet-v2。

```
C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\detection>python detect_image.py --model mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite --labels coco_labels.txt --input grace_hopper.bmp --output grace_hopper_processed.bmp
----INFERENCE TIME----
Note: The first inference is slow because it includes loading the model into Edge TPU memory.
107.69 ms
79.47 ms
57.26 ms
44.76 ms
39.30 ms
35.65 ms
115.65 ms
51.78 ms
36.63 ms
39.74 ms
78.76 ms
54.51 ms
39.01 ms
39.79 ms
35.65 ms
-------RESULTS--------
tie
  id:     31
  score:  0.83984375
  bbox:   BBox(xmin=226, ymin=417, xmax=290, ymax=539)
person
  id:     0
  score:  0.83984375
  bbox:   BBox(xmin=2, ymin=5, xmax=507, ymax=590)

C:\_work1\_win_corel1\edgetpu_runtime\corel\tflite-master\python\examples\detection>

```

モデルデータ等は、紹介されている以下のサイトから取得した。

https://github.com/google-coral/edgetpu/tree/master/test_data



#まとめ
**何も引っかからない**ハズなので、やってみて下さい。
コメントなどあれば、お願いします。