2019年5月3日金曜日

Edge TPU Object detection modelの生成状況(2019/5/14更新)

Edge TPUのObject Detectionモデルの生成について、できた、できないをまとめてみる(2019/05/14)。

更新履歴

  • 2019/5/12
    SSD MobileNet V1 0.75 depth , PPN, Inception V3の結果を追加
  • 2019/5/14
    各モデルの処理時間(Speed)、FPS、モデルのファイルサイズ(Model Size)を追加
    SSD ResNet101以外は結果を追加

現状生成できるモデルはSSDのみである(TF-Liteに変換できるモデルのみ)。
Faster RCNNなどは変換できない。詳しくはここを参照。

また、TF-liteのモデルに変換できたとしても、Edge TPUのモデルに変換できるとは限らない。FPN(Feature Pyramid Networks )のモデルはEdge TPU Compilerでエラーとなって変換できない(2019/05/03 サポートに問い合わせてみた)。
⇒有効な回答なし、、、


Model Name
Image size
TF-Lite ModelEdge TPU Model
ConvertSize
(MB)
Speed
(ms)
FPSConvertSize
(MB)
Speed
(ms)
FPS
SSD MoblieNet V1
(focal loss)
300 x 300OK6.96021.7OK7.45817.2
SSD Mobilenet V1 0.75 depth300 x 300OK3.23572.8OK3.62836.0
SSD Mobilenet V1 PPN300 x 300OK3.34982.0OK3.83132.2
SSD MobileNet V1 FPN
and focal loss
640 x 640OK45.0175680.1Failed
SSD ResNet50 FPN
and focal loss(a.k.a Retinanet)
640 x 640OK50.9273130.0Failed
SSD ResNet101 FPN
and focal loss(a.k.a Retinanet)
512 x 512
SSD MobileNet V2300 x 300OK6.25571.8OK6.96216.1
SSD Inception V2300 x 300OK13.416560.6OK15.32983.4
SSD Inception V3300 x 300OK25.621190.5OK27.66461.5


  • 空欄はまだ試していないモデル。
    SSD ResNet101 FPNのみ(現状、他のFPNモデルがEdge TPU Modelに変換できないので保留)
  • 学習はoxford pet のデータを利用(Edge TPUのRetrain an object detection modelを参考)。
    SSD MobileNet V1, V2はPre-trained Modelを使用。
  • 動作環境
    Raspberry Pi 3 B+ and Coral USB Accelerator
  • 計測方法は「Coral USB Accelerator(Edge TPU)のベンチマーク」と同じものを使用

所感(思いつくままに)

  • MobileNet V1に比べ、0.75 depth, PPN(Pooling Pyramid Network)は更に処理時間が早い。
    ただ、これがUSB3.0やDev Boardの場合は、ほぼ差がないか?
  • MoblieNet V1とV2のTF-Lite Model, Edge TPU Modelの処理時間の差がほぼない。
    MobileNet V2をデフォルトで選択してもよい気がする。
  • SSD Inception系はTF-Lite Modelでは、処理時間がネックになる。
    ただし、Edge TPU Modelは用途によっては使えそう。
  • やっぱり、FPN(Feature Pyramid Network)はほしい。
  • 精度(mAP)もTF-Lite, Edge TPU Modelでどの程度違いがあるのか?気になるところ
    (ちょっと、試すマシンリソースとかないなぁ)

やってみたいこと、知りたいことなど

  • ホストのスペックによってどの程度、処理時間に差が出るのか?
    Raspberry Pi 3, Raspberry Pi 2, AArch64とか。
  • USB3.0, DevBoardでの処理時間が知りたい。
  • Quantization-aware trainingすると、学習時間に影響あるの?