FC2カウンター FPGAの部屋 Edge TPU(USB Accelerator)のdemo をやってみる
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Edge TPU(USB Accelerator)のdemo をやってみる

Edge TPU(USB Accelerator)の”Get started with the USB Accelerator”をやってみた”の続き。

続けてEdge TPU のデモをやってみたい。
~python-tflite-source/edgetpu/demo のPython ファイルのコメントにサンプルの実行方法が書いてあるので、それをやってみよう。

最初に object_detection.py から、顔認識をやってみたい。
python3 demo/object_detection.py \
--model='test_data/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite' \
--input='test_data/face.jpg'

コマンドを実行した。
Edge_TPU_14_190311.png

ログを示す。

masaaki@masaaki-H110M4-M01:~/python-tflite-source/edgetpu$ python3 demo/object_detection.py \
> --model='test_data/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite' \
> --input='test_data/face.jpg'
-----------------------------------------
score =  0.99609375
box =  [474.22854804992676, 38.03488787482766, 738.8013491630554, 353.5309683683231]
-----------------------------------------
score =  0.99609375
box =  [205.4297697544098, 110.28378465056959, 487.75309658050537, 439.73802454331343]
-----------------------------------------
score =  0.83203125
box =  [7.522284880280495, 183.90177454883695, 125.84126299619675, 324.99404113217173]
-----------------------------------------
score =  0.5
box =  [859.8422718048096, 213.5472493581642, 1008.978108882904, 383.9367261515483]


4人の顔が認識されている。
認識画像を示す。
Edge_TPU_15_190311.jpg

次に、classification_transfer_learning.py を使用して転移学習をやってみよう。
まずは、転移学習用のデータセットを用意する。画像をダウンロードしよう。
bash test_data/download_imprinting_test_data.sh
Edge_TPU_16_190311.png

~python-tflite-source/edgetpu/test_data/open_image_v4_subset/ ディレクトリに 10 個の画像のディレクトリが作成された。
Edge_TPU_17_190311.png

その内の Alarm_Clock ディレクトリを見てみよう。20 個のワイン 時計の画像がある。
Edge_TPU_18_190311.png

~python-tflite-source/edgetpu/test_data/ ディレクトリの下に imprinting ディレクトリを作成し、mobilenet_v1_1.0_224_quant_embedding_extractor_edgetpu.tflite を wget する。
cd ../test_data
mkdir imprinting
cd imprinting
wget http://storage.googleapis.com/cloud-iot-edge-pretrained-models/canned_models/mobilenet_v1_1.0_224_quant_embedding_extractor_edgetpu.tflite

Edge_TPU_19_190311.png
Edge_TPU_20_190311.png

demo ディレクトリに行って、 classification_transfer_learning.py を実行するがエラーになった。
cd ../../demo
python3 classification_transfer_learning.py --output='my_model.tflite'

Edge_TPU_21_190311.png

エラー内容を示す。

Traceback (most recent call last):
  File "classification_transfer_learning.py", line 210, in <module>
    main()
  File "classification_transfer_learning.py", line 179, in main
    labels_map = engine.TrainAll(train_input)
  File "/home/masaaki/python-tflite-source/edgetpu/learn/imprinting/engine.py", line 20, in TrainAll
    ret[self.Train(tensors)] = category
  File "/home/masaaki/python-tflite-source/edgetpu/swig/edgetpu_cpp_wrapper.py", line 175, in Train
    return _edgetpu_cpp_wrapper.ImprintingEngine_Train(self, input)
TypeError: Cannot cast array data from dtype('O') to dtype('uint8') according to the rule 'safe'



エラーなってしまったので、もう1つ Object Detection をやってみよう。
mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite を使用して、転移学習用にダウンロードした猫の画像で Object Detection してみた。
python3 demo/object_detection.py \
--model='test_data/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite' \
--label='test_data/coco_labels.txt' \
--input='test_data/open_image_v4_subset/Cat/4278078325_fe95b2d365_o.jpg'

Edge_TPU_22_190312.png

ログを示す。

masaaki@masaaki-H110M4-M01:~/python-tflite-source/edgetpu$ python3 demo/object_detection.py \
> --model='test_data/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite' \
> --label='test_data/coco_labels.txt' \
> --input='test_data/open_image_v4_subset/Cat/4278078325_fe95b2d365_o.jpg'
-----------------------------------------
cat
score =  0.7890625
box =  [544.3585515022278, 161.8559150240529, 906.7766070365906, 574.1258810512984]
-----------------------------------------
cat
score =  0.5
box =  [544.8259115219116, 180.16657727447586, 780.6186676025391, 557.7862670074156]
-----------------------------------------
bench
score =  0.16015625
box =  [0.0, 286.536341216696, 1000.0, 664.0]
-----------------------------------------
cup
score =  0.12109375
box =  [927.8294444084167, 9.622623872517341, 996.2391257286072, 125.93606662510628]
-----------------------------------------
car
score =  0.12109375
box =  [347.52047061920166, 159.55350482883165, 548.1888055801392, 321.0489713965948]
-----------------------------------------
bench
score =  0.12109375
box =  [3.985762596130371, 350.9136437171668, 989.7855520248413, 664.0]
-----------------------------------------
cup
score =  0.12109375
box =  [829.7642469406128, 9.965896396780732, 932.0130348205566, 139.7531082881755]
-----------------------------------------
bench
score =  0.12109375
box =  [17.50752329826355, 482.14271655633826, 998.0459213256836, 664.0]
-----------------------------------------
bench
score =  0.12109375
box =  [0.0, 0.0, 339.12184834480286, 514.3285784889106]
-----------------------------------------
cat
score =  0.08984375
box =  [407.7613055706024, 186.5492222297132, 986.0997200012207, 610.9205907313668]


猫の Object Detection された画像を示す。
Edge_TPU_23_190312.jpg
  1. 2019年03月12日 05:17 |
  2. Edge TPU
  3. | トラックバック:0
  4. | コメント:2

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
  1. 2019/03/12(火) 06:32:28 |
  2. |
  3. #
  4. [ 編集 ]

修正しました。
最初はワインの画像を使っていたのですが、最初のディレクトリの方が良いかな?ということで時計に変更しました。
  1. 2019/03/12(火) 06:45:08 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/4470-d5c87ae7
この記事にトラックバックする(FC2ブログユーザー)