LoginSignup
6
7

More than 3 years have passed since last update.

Raspi 3 + USB Accelerator で画像分類&物体検出

Last updated at Posted at 2019-05-23

Raspberry PiとUSB Acceleratorを使って
画像分類と物体検出をしてみました。

行ったのは、公式のスタートガイドです。

環境

  • Raspberry Pi 3 Model B+
  • ubuntu mate

Raspberry Pi のセットアップ

Edge TPU runtimeとPythonライブラリをインストールします

$ cd ~/
$ wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names
$ tar xzf edgetpu_api.tar.gz
$ cd edgetpu_api
$ bash ./install.sh

install.shを実行するとWould you like to enable the maximum operating frequency?と聞かれます。
最大でパフォーマンスでUSB Acceleratorを使うと、USB Acceleratorがとても熱くなり、やけどするかもしれないので、
最大パフォーマンスが必要かどうか分からないならNにしろ、とのことです。
この設定は後からでも変えられるそうです。

デモの実行

画像分類

サンプルデータをダウンロード

cd ~/Downloads/

wget https://dl.google.com/coral/canned_models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
https://dl.google.com/coral/canned_models/inat_bird_labels.txt \
https://coral.withgoogle.com/static/images/parrot.jpg

ラズパイを日本語で設定している方はDownloadsというディレクトリがないと思います。
その場合は、適当なディレクトリでよいです。

デモの実行

$ cd /usr/local/lib/python3.5/dist-packages/edgetpu/demo

$ python3 classify_image.py \
--model ~/Downloads/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--label ~/Downloads/inat_bird_labels.txt \
--image ~/Downloads/parrot.jpg

modellabelimageのファイルパスは、ダウンロード先に合わせて変更してください。
実行に成功すると、以下のような出力がされます。

Ara macao (Scarlet Macaw)
Score :  0.746094

物体検出

サンプルデータをダウンロード

cd ~/Downloads/

wget https://dl.google.com/coral/canned_models/mobilenet_ssd_v2_face_quant_postprocess_edgetpu.tflite \
 https://coral.withgoogle.com/static/images/face.jpg

デモの実行

$ cd /usr/local/lib/python3.5/dist-packages/edgetpu/demo

$ python3 classify_image.py \
--model ~/Downloads/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--label ~/Downloads/inat_bird_labels.txt \
--image ~/Downloads/parrot.jpg

もし実行エラーとなってNo such file or directory: 'feh'というメッセージが表示されたら
sudo apt-get install fehとしてから、再実行してください。

以下のような表示がされば成功です。

-----------------------------------------
score =  0.996094
box =  [471.33392310142517, 38.03488787482766, 741.695974111557, 353.5309683683231]
-----------------------------------------
score =  0.996094
box =  [209.30670201778412, 114.17187392981344, 491.6300288438797, 443.6261138225572]
-----------------------------------------
score =  0.832031
box =  [7.304725393652916, 184.98179422784176, 128.21268820762634, 326.07404544882104]
-----------------------------------------
score =  0.5
box =  [858.2628228664398, 211.6830582424526, 1007.3986599445343, 385.80091726725993]

detection_result.jpg

リアルタイム画像分類 & 物体検出

ラズパイ用カメラやUSBカメラから取得した画像に対して、リアルタイムで画像分類&物体検出ができるデモもあります。

デモ用プログラムの取得

$ git clone https://github.com/google-coral/examples-camera.git

サンプルデータをダウンロード

cd ~/Downloads/

# 物体分類用
wget https://dl.google.com/coral/canned_models/mobilenet_v2_1.0_224_quant_edgetpu.tflite \
 https://dl.google.com/coral/canned_models/imagenet_labels.txt

# 物体検出用
wget https://dl.google.com/coral/canned_models/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite \
 https://dl.google.com/coral/canned_models/coco_labels.txt

ラズパイカメラでの画像分類

事前にカメラが使えるようpip3 install picameraraspi-configでカメラを有効にしてください。

$ cd examples-camera/raspicam
$ python3 classify_capture.py --model ~/Downloads/mobilenet_v2_1.0_224_quant_edgetpu.tflite --labels ~/Downloads/imagenet_labels.txt

ウィンドウに画像が表示され、画面の上部に分類結果などが表示されれば成功です。

USBカメラによる画像分類

実行前に、gstreamなどのインストールをする必要があります。

$ cd examples-camera/gstreamer
$ sh install_requirements.sh

実行

$ cd examples-camera/gstreamer
$ python3 classify_capture.py --model ~/Downloads/mobilenet_v2_1.0_224_quant_edgetpu.tflite --labels ~/Downloads/imagenet_labels.txt

こちらもウィンドウに画像が表示され、画面の上部に分類結果などが表示されれば成功です。

USBカメラによる物体検出

$ cd examples-camera/gstreamer
$ python3 classify_capture.py --model ~/Downloads/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite --labels ~/Downloads/coco_labels.txt

ウィンドウに画像が表示され、物体検出の結果であるバウンディングボックスなどが表示されれば成功です。
こちらの環境では、たまに飛ぶことがあるものの、約5fpsくらいで動作しました。

他のサンプルデータ

ここのREADMEの一番下に、サンプルデータの一覧が記載してあります。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7