14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

地味な物体検出ですみません。 ープロジェクトの立て直しー

Posted at

以前に、こちらで「ラズパイで将棋駒を物体検出する」プロジェクトを開始しました。

その後、とんでもない間違いをしていたことに気が付きました。
今回はプロジェクトを仕切り直して、再開したいと思います。

game_syougi.png

#物体検出方法の選定ミス
以前に、こちらで将棋駒の検出をやりましたが、物体検出方法は適当に選んでいました。
その結果、検出精度がイマイチでした。

##YOLOv3-tiny

このとき使った検出器はYOLOv3-tinyでした。tinyモデルを使った理由はこのシステムを
ラズパイに搭載したかったからです。

ところが、このYOLOv3-tiny、調べてみるとスペックがかなり悪いものでした。
YOLOv3の論文には出てきませんが、darknetのサイトに載っています。

mAP50 mAP(推測値)
YOLOv3-tiny 33.1 19.9

なお、サイトではmPAという表記になっていますが、論文と照らし合わせるとmAP50の
ことだと思われます。mAPについて、詳しく知りたい方は以下のリンクを参照してください。
https://note.mu/seishin55/n/n542b2b682721
https://qiita.com/panchokyutech/items/2c972ede2bc883597a87

mAP50をmAPに直接変換することはできませんが、他の手法を見てみると、mAPは高くても
mAP50の6割ほどしか出ていません。従って、上の表では推測値を記入しました。

なお、YOLOv3-tinyの推論速度は爆速です。速さは以下の記事で実感できるはずです。
https://qiita.com/PINTO/items/526d2f35d5271d353f20#-%E7%B5%90%E6%9E%9C

##MobileNET + SSDLite

そして、YOLOv3-tinyの対抗馬となるのが、MobileNET(v1/v2) + SSDLiteです。
こちらのスペックは論文にありました。

無題.png

特筆すべきは、MobileNet v1 + SSDLiteは、フルモデルのYOLOv2に対し精度でも
モデルサイズでも、(恐らく)推論速度でも上回っているということです!
正に、「早い!安い!うまい!」の3拍子が揃っています。

ちなみに、「SSDLite」は通常のSSDに対し、深さ方向のフィルタについてサイズを1に
変更して計算コストを下げたモデルだそうです。

物体検出方法はSSD以外にもたくさんあります。気になる方は以下のサイトをご覧ください。
https://github.com/hoya012/deep_learning_object_detection

##どちらの検出方法にすべきか?

以上をまとめると、以下の表になります。

精度(mAP) ラズパイの動作速度
YOLOv3-tiny 19.9 爆速
YOLOv2 21.6 遅い
MobileNet v1 + SSDLite 22.2 通常
YOLOv3 33.0 非常に遅い

どこまでも速さを追い求めるなら、YOLOv3-tinyでしょう。

しかし、今回はUSB型GPUを使って、計算速度を補完できるため、「MobileNET v1 +
**SSDLite」を使います。**これにより、速度と精度が両立できるでしょう。

最終的に目指す姿は、以下の記事のようにサクサク動く感じです!
https://qiita.com/PINTO/items/fc1fcecce4d5600c20bb#-%E7%B5%90%E6%9E%9C

ちなみに、YOLOv3をラズパイで動かすのは至難の業のようです。
https://qiita.com/PINTO/items/c766ac9614052f4d6304

#使うモジュールの選定ミス
今回は、USB型GPUにMovidiusを使います。

Movidiusのモジュールは、従来NCSDKという悪名高きものが用意されていました。
このモジュールはv2まで更新されましたが、バグだらけで全然収集がつかない状態でした。

その後、OpenVINOが登場してIntelボードだけではなく、ラズパイでも動作できる
ようになり、NCSDKにとって代わり、だいぶ開発環境が改善されたと聞きます。

次回以降は、OpenVINOのインストールから進めたいと思います。

#まとめ

  • ラズパイで物体検出するなら、「MobileNET v1 +SSDLite」が無難。精度と速度が両立できます(まだやってないけど)。
  • Movidiusの開発はOpenVINOを使いましょう。
14
11
3

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
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?