Google Coral USB Accelerator を試す その2

f:id:pongsuke:20191127124210j:plain

RPI4でのセットアップメモ

冷却ファンは必須だと思います。

opencv コンパイル

ありがたく従う。

Install OpenCV 4.1.2 for Raspberry Pi 3 or 4 (Raspbian Buster) · GitHub

TensorFlow 2.0 インストール

配布しているので、ありがたく従う。

GitHub - PINTO0309/Tensorflow-bin: Prebuilt binary with Tensorflow Lite enabled (native build). For RaspberryPi / Jetson Nano. And, solved Tensorflow issues #15062,#21574,#21855,#23082,#25120,#25748,#29617,#29704,#30359.

$ uname -m
armv7l

なので、armv7l を使います。

$ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
$ sudo pip3 install keras_applications==1.0.8 --no-deps
$ sudo pip3 install keras_preprocessing==1.1.0 --no-deps
$ sudo pip3 install h5py==2.9.0
$ sudo apt-get install -y openmpi-bin libopenmpi-dev
$ sudo apt-get install -y libatlas-base-dev
$ pip3 install -U --user six wheel mock
$ wget https://github.com/PINTO0309/Tensorflow-bin/raw/master/tensorflow-2.0.0-cp37-cp37m-linux_armv7l.whl
$ sudo pip3 uninstall tensorflow
$ sudo -H pip3 install tensorflow-2.0.0-cp37-cp37m-linux_armv7l.whl

# wrapt のエラー対処
$ sudo pip3 install --upgrade --ignore-installed wrapt
$ sudo -H pip3 install tensorflow-2.0.0-cp37-cp37m-linux_armv7l.whl

$ python3 -c "import tensorflow as tf; print(tf.__version__)"
2.0.0

Coral サンプルを動かして遊ぶ

サンプルのインストール

$ 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
$ sudo apt-get install edgetpu-examples

object detect

Object detection example | Coral

$ cd /usr/share/edgetpu/examples/

$ python3 object_detection.py \
--model models/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite \
--label models/coco_labels.txt \
--input images/grace_hopper.bmp \
--output ${HOME}/object_detection_results.jpg

-----------------------------------------
person
score =  0.87890625
box =  [0.36061957478523254, 16.603958666324615, 513.4191654920578, 596.4085128307343]
-----------------------------------------
tie
score =  0.7890625
box =  [219.4967241883278, 421.0741320848465, 290.2605925798416, 542.6791430711746]
-----------------------------------------
remote
score =  0.12109375
box =  [88.86422845721245, 484.78841257095337, 170.81563928723335, 519.9595828056335]
-----------------------------------------
tie
score =  0.12109375
box =  [204.06080427765846, 398.90483021736145, 309.7189499735832, 469.27534461021423]
-----------------------------------------
tie
score =  0.12109375
box =  [222.6611628830433, 411.52891516685486, 294.7753555178642, 459.50881791114807]
-----------------------------------------
tie
score =  0.12109375
box =  [235.06781673431396, 442.72691202163696, 285.1113055944443, 532.0171551704407]
-----------------------------------------
person
score =  0.12109375
box =  [12.144120335578918, 35.299975633621216, 143.63851302862167, 424.1663646697998]
-----------------------------------------
person
score =  0.08984375
box =  [16.875516951084137, 184.32269310951233, 187.88965493440628, 447.9674062728882]
-----------------------------------------
tie
score =  0.08984375
box =  [195.26302713155746, 344.7151780128479, 329.2432219386101, 449.8947193622589]
-----------------------------------------
person
score =  0.08984375
box =  [3.0382719188928604, 22.73980575799942, 170.4458058476448, 538.9089303016663]
Please check  /home/kiyo/object_detection_results.jpg

f:id:pongsuke:20191127124926j:plain

face detect

$ python3 object_detection.py \
--model models/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite \
--input images/grace_hopper.bmp \
--output ${HOME}/face_detection_results.jpg

-----------------------------------------
score =  0.99609375
box =  [143.88912090659142, 40.834905445575714, 381.8060402870178, 365.49142384529114]
Please check  /home/kiyo/face_detection_results.jpg

f:id:pongsuke:20191127125006j:plain