【Coral USB】Edge TPUのPoseNetを試してみる

はじめに

こんにちは、がんがんです。
以前Edge TPUの実験をラズパイで行いました。
gangannikki.hatenadiary.jp
gangannikki.hatenadiary.jp

Edge TPUのリポジトリにPoseNetのモデルがありましたのでそちらを試してみようと思います。

目的

  • Edge TPUのPoseNetモデルをラズパイで試してみる

参考

本家のGitHub
github.com

参考サイト
tech-blog.optim.co.jp

環境

Edgetpuのバージョンアップ

PoseNetモデルに必要なEdgetpuのバージョンは2.11.1以上でした。2.11.1は7月のアップデート時に追加されたバージョンです。
(現在の最新は9月のアップデートバージョンの2.12.1)

f:id:gangannikki:20191005202234j:plain
現在のバージョン

以前セットアップしたときのバージョンは1.9.2だったため、まずはバージョンアップから行っていきます。
一応以前のバージョンとの衝突を防ぐために名前を変更しておきます。

$ mv edgetpu_api edgetpu_api_1.9.2
$ wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_2.11.1.tar.gz
$ tar xzf edgetpu_api_2.11.1.tar.gz
$ cd edgetpu_api
$ sudo bash install.sh 

デモの実行(simple.py)

デモの実行コマンドは以下の通りです。実行すると必要画像をwgetしてきて、それに対する推定結果をprintするプログラムみたいです。

$ python3 simple.py

Image.openを変えてやれば画像は変更可です。
試しに以前使用した五等分の花嫁の画像で試してみましたが、さすがにpose検出出来なかったです(笑)。

カメラを用いたデモの実行

コマンドは以下の通りです。--mirrorの追加で反転表示をしてくれるようになっています。

$ python3 pose_camera.py
# ディスプレイとカメラがどちらも正面にある場合
$ python3 pose_camera.py --mirror

カメラについてはUSBカメラ、ラズパイカメラの両方で動作することが出来ました。
思っていたよりも簡単に扱えるのはすごく良いですね。

GitHubをみると…

Edge TPUの公式GitHubを見てみると、test_dataに追加されてました。
github.com

コードはexamplesにはなさそうだった(調査不足の可能性もあり)ので、project-posenetから直接cloneするのが良いかもです。

おわりに

今回はEdge TPUバージョンのPoseNetを試してみました。思っていたよりも簡単に試すことができました。
ほかにもGitHub上に遊べるプログラムが置いてあったので時間があればそちらも試してみようかなと思います。