【機械学習】AIで遊戯王とデュエルマスターズカードを見分ける【Scratchプログラミング】

今回は、遊戯王カードとデュエルマスターズカードを見分けるAIを作ります。

プログラミングには、ML2Scratchという機械学習拡張機能が扱える特別なScratchを使います。

Scratchを使ったことのある人なら、小中学生でも簡単に機械学習プログラムが作れてしまうのが、ML2Scratchのすごいところです。

動画で簡単な手順を紹介しております。
本記事では、動画の内容に加えて、プログラムの中身の解説もします。

動画はこちら

スポンサーリンク

カード判別AIを作ろう

ML2Scratchを開こう

https://stretch3.github.io/ をChromeで開きます。

プログラム作成画面

通常のScratchとほとんど同じ画面が開きます。(ログインやウェブ上への保存等は今のところできません。)
使い方も通常のScratchと同じです。

違うところは、拡張機能でML2Scratchというものが選べます。これを追加することで、機械学習用のブロックが扱えるようになります。追加しましょう。

ML2Scratch拡張機能

プログラムしよう

プログラムしていきます。ここでは、今回使うブロックについてだけ解説します。以下の図と同じブロックを用意しましょう。

学習プログラム

これらが今回使うブロックです。順に説明します。

まず、左のブロックを実行しましょう。「ビデオを入にする」でwebカメラを起動します。「ビデオを左右反転にする」ことで、画像が反転してしまうのを防ぎます(任意)。「ステージの画像を学習判定する」で、学習するターゲットがステージに移されているものになります。

今回は、デュエルマスターズと遊戯王の2種類のカードを学習するので
「ラベル1を学習する」「ラベル2を学習する」ブロックを使います。
(ラベルの枚数が表示されるようにチェックをつけておくと学習した枚数が確認しやすいです。)

ステージをカスタマイズしていきます。図のように、カードの部分だけが映し出されるように、四角くくり抜いたスプライトを画面に配置しましょう(色は何でもいいです)。また、デュエマと遊戯王のロゴもスプライトとして追加します。

学習の様子

これで学習の準備が整いました。

ディエルマスターズカードをカメラに映るように置いて、「ラベル1を学習する」ブロックを押しましょう。
今回は、20枚の学習用カードを用意したので、この作業を20回繰り返します。

終わったら、次は遊戯王カードです。
遊戯王カードも学習用20枚を用意したので、カメラに映るように配置し「ラベル2を学習する」ブロックをクリック、これを20回行います。

さて、これで学習完了です。
ちゃんと判定できるか確かめていきましょう。

判定プログラム

判定プログラムを作りましょう。まずは、↓のブロックをクリックします。

ラベル付けプログラム

これで、1秒ごとに判定をしてくれます。

デュエルマスターズカードだと「ラベル1」、遊戯王カードだと「ラベル2」が送られてきます。わかりやすいように、対応するロゴが光るようにしましょう。

周りを黄色くしたコスチュームを追加します。(デュエマロゴも同様)

判定ロゴ

以下のプログラムを追加して、ラベル1、ラベル2が送られてきたら、対応するロゴのコスチュームが光ったものに切り替り、0.5秒後に元に戻るようにします。

ロゴ光らすプログラム
ロゴ光らすプログラム2

これでプログラム完成です。

実行してみよう!

実行の様子は動画を見てもらった方がわかりやすいと思います。

実行の様子

このように、判定結果と対応するロゴが光ります。

テストデータ20枚(遊戯王10枚、デュエマ10枚)について試したところ、
20枚中19枚を見事的中させました!

実行結果

簡単に作れる割に高精度に判定できて驚きです。

以上となります。最後までお読みいただきありがとうございました。

カード
今回使ったカードたち、久々に引っ張り出して懐かしい気分になった。
タイトルとURLをコピーしました