MiniPC ✕ DL ✕ Drone

<a href="https://github.com/PINTO0309/gesture-drone"><img src="https://github-link-card.s3.ap-northeast-1.amazonaws.com/PINTO0309/gesture-drone.png" width="460px"></a>
**gesture-drone**　[![GitHub stars](https://img.shields.io/github/stars/PINTO0309/gesture-drone.svg?style=social&label=Stars)](https://github.com/PINTO0309/gesture-drone)

この記事は、2019年07月13日(土) に名古屋駅至近で開催の「ディープラーニングガジェット品評会」の発表用資料です。

**ディープラーニングガジェット品評会**
**https://connpass.com/event/129065/**

---
# １．はじめに

---
## １−１．PINTO何者？

- Tensorflow の ビルドジャンキー
- Intel Software Innovator
- COBOLer<br>
![0008_PINTO-half.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/a2c48eea-9dcc-8c44-e0d0-87846e733d8d.png)<br>**https://qiita.com/PINTO**<br>**https://github.com/PINTO0309**

---
ふざけたことばかりやってます。
![MultiStick](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/1f55c855-492e-2b1f-14af-2f62abb57791.jpeg)　![MultiTPU.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/c039f434-8e95-778e-c3ab-4cf34aabd1ce.jpeg)

---
## １−２．本日のネタ

- 小型PC (<font color="red">GPUなし</font>)
- ドローン
- ディープラーニング (Pose Estimation)<br>

　↓で、

爆速ガジェットを組みたい

---
GPU つかわない
ココが飛び出てるのがヤダ
　　　↓
![nano.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/a7295fde-8be1-6327-8486-6c2c468ede3c.png)
発売直後に購入してまだ電源１度も入れていない

---
# ２．構成

---
## ２−１．小型PC
**`GPD Pocket 2　(超高価)`**
良い子はぜったいマネして買わないように ![0001_GPD.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/bcdc01b2-2b56-f948-c3e1-510742edaee6.jpeg)

||スペック||スペック||スペック|
|:--|:--|:--|:--|:--|:--|
|OS|Ubuntu Mate 18.04|GPU|Intel HD 615|ストレージ|128 GB eMMC|
|CPU|Intel Core m3-yY30|ディスプレイ|7インチ IPS<br>ゴリラガラス4|バッテリー|8時間|
|メモリ|8GB|解像度|1920x1200|重量|510g|

---
## ２−２．ドローン
**`Tello`**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/67c65a36-74aa-800a-f5ad-c979d26ba80c.jpeg" alt="0002_Tello.jpg" width="40%">![0003_Tello.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/5c47d5c6-88fa-fefa-68ff-d6d12f87367c.jpeg)

- Pythonで動かせる
- 安価
- 安全
- おもちゃ

---
## ２−３．ディープラーニング
**`Pose Estimation (MobileNetV2)`**

- 軽量 (2 MB 〜 9 MB)
- 速い (10 FPS 〜 30 FPS)
- 精度ボチボチ

---
# ３．MobileNetV2 based Pose Estimation 動画デモ

---
## ３−１．OpenVINOあり + CPU推論
<blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">PoseEstimation + MobileNetV2, OpenVINO, 30 FPS++, Qiita埋め込み用<a href="https://t.co/Fp8RNqAmQ0">https://t.co/Fp8RNqAmQ0</a></p>&mdash; PINTO0309 (@PINTO03091) <a href="https://twitter.com/PINTO03091/status/1142437345863450624?ref_src=twsrc%5Etfw">June 22, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
## ３−２．OpenVINO<font color="gray">なし</font> + GPU (NVIDIA GTX 1070) 推論
<blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">PoseEstimation + MobileNetV2, OpenVINOなし+NVIDIA GPU, 30 FPS++, Qiita埋め込み用<a href="https://t.co/quPjJlZM03">https://t.co/quPjJlZM03</a></p>&mdash; PINTO0309 (@PINTO03091) <a href="https://twitter.com/PINTO03091/status/1142611234665009152?ref_src=twsrc%5Etfw">June 23, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

---
# ４．OpenVINO

---
**全体像**
![deep-learning-inference-intel-processor-fig1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/66aa007f-a6ca-d574-ec2b-20e2ea836adb.jpeg)

---
**もうちょっとシンプルに**
![workflow_steps.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/fa5e0c95-7e43-2857-d9b6-6750de27a5dc.png)

---
**推論**
![integration_process.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/02c97365-41e2-f511-c470-bb56de937d35.png)


---
# ５．OpenVINO・CPU/GPU/VPU スピード比較

|速||||||遅|
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|①|＞|②|＞|③|＞|④|

①：OpenVINOなし + GPU (NVIDIA GTX 1070) 推論
<font color="red">②：OpenVINOあり + CPU (x86) 推論</font>
③：OpenVINOあり + GPU (Intel HD 650) 推論
④：OpenVINOあり + VPU (Neural Compute Stick) 推論
⑤：OpenVINOなし + CPU (x86) 推論

※ TPUはUSB3.0で圧倒的なパフォーマンス

---
# ６．様々なデバイスによる性能比較

完璧な比較ブログが公開されている。
1. **[Google Coral Edge TPU vs NVIDIA Jetson Nano: A quick deep dive into EdgeAI performance - Sam Sterckval 氏](https://blog.usejournal.com/google-coral-edge-tpu-vs-nvidia-jetson-nano-a-quick-deep-dive-into-edgeai-performance-bc7860b8d87a)**
2. **[dd_performances - Github - jolibrain](https://github.com/jolibrain/dd_performances)**

---
# ７．PINTOのこだわり

- 安定性
- 調達性
- 汎用性
- GPU / VPU / TPU(ASIC) 使わない
    - 消費電力
    - 発熱
    - 取り回しのしにくさ
- CPU単体で極限まで早く
- インタプリタの限界へ

---
## ７−１．安定性

- OpenVINO + CPU
  - オンボード稼働による安定性
  - 処理負荷のコア分散
  - CPU負荷高め
- GPU/VPU
  - 物理インタフェース介在によるレイテンシ
  - 物理インタフェースの不安定さ
  - 発熱によるスロットリング

---
## ７−２．調達性

- OpenVINO + CPU
  - 市販の普通のノートPCで十分
  - 即納
- GPU/VPU搭載の開発ボード
  - 技適
  - 納期

---
## ７−３．汎用性

- OpenVINO + CPU
  - パフォーマンス控えめ
      - だけどPCは近所の量販店でも調達できる
          - 事務機としても使用できる
- GPU/VPU搭載の開発ボード
  - 何やら怪しい
      - 特定用途に寄りがち

---
# ８．本日のガジェット
空撮ダンスダンスレボリューション
<a href="https://github.com/PINTO0309/gesture-drone"><img src="https://github-link-card.s3.ap-northeast-1.amazonaws.com/PINTO0309/gesture-drone.png" width="460px"></a>
<blockquote class="twitter-tweet" data-lang="en"><p lang="et" dir="ltr">Drone + MovileNetV2 Pose Estimation + CPU only + OpenVINO, Qiita投稿用<a href="https://t.co/AKQhUHSYz0">https://t.co/AKQhUHSYz0</a></p>&mdash; PINTO0309 (@PINTO03091) <a href="https://twitter.com/PINTO03091/status/1149596478530211841?ref_src=twsrc%5Etfw">July 12, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

---
# ９．ハマったこと

1. Flask 分からん！！
2. Drone が10分ぐらいでオーバーヒートしてしまう
3. Wi-Fiがたまに不安定
4. ジェスチャーの判定がとても難しい
5. マウス壊れた
6. 酷使しすぎてキーボードの <kbd>E</kbd> と <kbd>M</kbd> と <kbd>-</kbd> が壊れた

---
# １０．本当は。。。

---
- ラズパイ ＋ Edge TPU Accelerator で爆速ガジェットが作りたかった
- ResNet-50で性能改善を図りたい
- 3D-PoseEstimation にチャレンジしたい
- ジェスチャーでDrone操作できるようにしたい

---
- Brandonさんの Myriad X 搭載ラズパイHatで爆速ガジェットが作りたかった (カメラ画像を直接Xへインタフェースするらしい)<br>
![D71a_htUIAEPgtr.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/730304b4-41cb-129f-a6f4-06a915a62dc1.jpeg)

---
# １１．さいごに
![FireShot Capture 053 - kodamap - Qiita - qiita.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/a3b8d146-5394-23a8-7205-cfbc8db27f34.png)
本日のガジェットは @Kodamapさん の協力を得て作成されています。 というか、ほぼ @Kodamapさんの功績です。
とても助かりました！ ありがとうございます！
**https://qiita.com/kodamap**
**https://github.com/kodamap**

---
# ご清聴有難うございました。

---
コレ欲しい。。。 ラズパイZeroクラスタ化ハット
![Clster_HAT_v2_4_of_4_1024x1024.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/52e808aa-862c-6dc2-ef4c-32d5186f08e6.jpeg)
https://www.notebookcheck.net/Raspberry-Pi-Combine-a-Raspberry-Pi-with-up-to-4-Raspberry-Pi-Zeros-for-less-than-US-50-with-the-Cluster-HAT.426998.0.html