😊

M1 MacでYOLOv5 その2

2021/10/30に公開

こちらの続きです。
https://zenn.dev/lm_mh/articles/e653a0d9c14bd4

学習

画像集めとラベリング

物体検知で一番面倒なところです。でもゲームなら楽ちんなんです。
なぜかというと、

  • 画像内に表示される場所や大きさをadbで制御できる
  • 今回の場合は領地内でしか表示されない

30分くらいで以下の作業を終え、trainするためのデータが揃いました。

  1. ゲーム内で一定の速度で少しずつスワイプしながらスクショをとる
  2. 始状態と終状態の建物の座標から直線的に補間してラベリングする

ゲーム内では相対的な位置関係を利用できるため、クラスは2つの建物だけにしました。

  • 召喚の神殿:訓練所と精製の塔にタップするため
  • ヒーローモードに入る像:商船、兵舎、辺境の門にタップするため

train

画像はそれぞれ100枚、デフォルトの設定で実行したところ、実に5時間30分もかかりました。
CPUを使っているのだから当然と言えば当然かかる時間です。
M1チップのGPUはtrainにそれほど特化していないという話もありますが、対応したら試してみたいですね。

物体検知についてはほとんど勉強したことがないのでアレですが、重要な指標の1つであるmAPが 0.995になり、十分実用に耐えうるモデルが作成できたことが分かりました。

実際に使用してみた結果です。ちゃんと認識できています。

普段adbで操作しているスマホだけでなく、iPhoneのスクショも試してみましたがダメでした。OSが異なっていることもありますが、非常に残念です。

detect

実際に組み込んで使用してみました。
速度感は全然気になるほどではありません。むしろスクリーンショットの転送にかかる時間の方が長いです。それほど速度を重視する処理をしているわけではないので気になりませんが、戦争で使うためにはエミュレータとエミュレータがシームレスに動くハイスペックマシンが必要ですね。

Discussion