はじめに
Wallprime(ワルプライム)という素因数分解をして壁をどんどん破壊していくスマホのゲームを、AIの物体検出を使用して解いてみました。
こんなゲームです。
このゲームの画面をPythonのOpenCVを使用して映像を読み取り、Microsoft Azure Cognitive ServicesのCustom Visionを使用して物体検出して、その結果から素因数分解を行い、表示を行います。
作ったもの
作ったものはこのようなものになってます。
(打つのが遅くてあまりスコアは出せてません。。)
どうやって作ったか
Custom Visionを使用することで、「画像分類」や「物体検出」を行うことができます。また、クラウド上で、「アノテーション」、「学習」、「推論」の一連の流れを行うことができます。
作成したアプリケーションは、以下を行います。
- wallprimeで表示された数値の認識(Custom Vision)
- 認識した数値を素因数分解
- 認識した数値と素因数分解した数値を画面に表示
Custom Visionを使用して、アプリケーションを構築する流れは、一般的な物体検出を行うディープラーニングと同様で以下の流れになります。
- データ収集(wallprimeのアプリケーション画像を集める)
- アノテーション(数値の0~9のタグ付けを行う)
- 学習
- 推論
詳しい作り方と使用したソースコードはブログに記載しています。
https://remix-yh.net/1156/
さいごに
AzureのCustom Visionを使うことで、AIを詳しくなくても簡単に作成することができました。(アノテーション含めて、半日くらい)
AIで物体検出をする全体像(アノテーションから推論まで)を知るという意味でも、面白くて良い題材かと思いますので、やってみてはいかがでしょうか。