以前の記事では「AI」や「機械学習」について紹介し、アタリが出る確率を予測するプログラムを作成してみました。
今回は、複数枚の画像を学習させてカメラにかざすと識別して、お買い物かごに追加してくれるプログラムを作ってみようと思います。
言葉だけ聞くと難しそうに感じますが、意外と簡単に作成出来るので、ぜひ最後まで読んで挑戦してみて下さい!
用意するもの
- 色の違うペンを3本
(無い場合は「消しゴムとハサミとボールペン」など、なんでもいいので3つ用意して下さい) - パソコンに付いているカメラ
「Teachable Machine」について
スクラッチの標準機能ではありませんが「Teachable Machine」というものを使うことで、簡単に画像を学習させることが出来てしまいます。
まずはこちらをクリックしてサイトを開いてみて下さい。
開くことが出来たら「使ってみる」をクリックしましょう。
このような画面が表示されました。
今回は画像を使ったプログラムを作成したいので「画像プロジェクト」をクリックして下さい。
この画面では「標準の画像モデル」の方を選べばOKです。
「Class1」や「トレーニング」など、難しい言葉が並ぶページが表示されました。
ひとつずつ説明していくので安心して下さい!
「Class」について
まず「Class1」や「Class2」という部分には、「(モノなどの)名前」を入力します。
今回は「赤」と「緑」と「黄」の3色のペンを用意したので、このように変更しました。
(「Class1」と書かれた部分か「ペンのようなマーク」をクリックすると入力出来ます)
最初、枠が2つしかないので「クラスを追加」をクリックして、枠を3つにしましょう。
名前は、日本語だけでも大丈夫です。
「消しゴム」や「ハサミ」を用意した方は、その名前にしてくださいね。
画像を追加
画像の追加方法はふたつなので、好きな方でやって頂いて大丈夫です。
パソコンのカメラで撮影
「ウェブカメラ」をクリックすると「カメラの使用を許可しますか?」というような表示が出るので「許可」を選択すると、カメラが起動して、上の画像のような状態になると思います。
撮影したいものをカメラに近づけて「長押しして録画」をクリックしましょう。
ただし、長押しすると同じ画像が何枚も撮影されてしまうので、ペンの向きを変えたりしながら最低でも10枚は撮影してみて下さい。
ひとつめのClassの撮影が終わったら、同じようにふたつめとみっつめも撮影して下さい。
スマホのカメラで撮影
今回、Scratch星人はこちらの方法を行いました。
まずは、スマホで撮影した写真をパソコンに移します。
(やり方が分からない場合は、お父さんやお母さんに聞いてみて下さいね!)
「アップロード」をクリックすることで、次の画面が表示されます。
この枠内に画像を全部(最低10枚)ドラッグ&ドロップすると、追加することが出来ます。
全てのClassに画像の追加が完了すると、このようになります。
トレーニング(学習)させる
画像の追加が終わったら、いよいよトレーニングです。
早速「モデルをトレーニングする」をクリックしてみましょう。
少し時間が掛かるかもしれませんが、色の違うペンの特徴をコンピューターが、一生懸命学習してくれます。
モデルをエクスポート
学習が完了した状態のデータのことを「モデル」と呼びます。
「エクスポート」というのは「スクラッチで使える状態にする」と思ってください。
学習が完了すると、パソコンのカメラが起動して、モデルの精度を確認できます。
「モデルの精度」というのは、上の画像の場合、緑のペンの確率が96%となっているので、とても精度の高い、良いモデルが出来た、と言えます。
ここで、50%以下などの数字で表示される場合は、さらに画像を追加して、もう一度学習させる必要がありますので、前の手順に戻って、目安として80%以上の精度が出る学習モデルを作成してみて下さい。
確認が完了したら「モデルをエクスポートする」をクリックしましょう。
このような画面が表示されるので「アップロード(共有可能なリンク)」が選択されているのを確認したら「モデルをアップロード」をクリックして下さい。
https:から始まる「共有可能なリンク」というものが作成されました。
(URLと呼びます)
作成されたURLをコピーして、スクラッチで使用していくのですが、一旦画面はこのままにして「新しいタブ」でスクラッチを開きましょう。
新しいタブの開き方は、画面の左上の「+」マークをクリックします。
スクラッチでプログラムを作成する
学習したモデルをスクラッチで使用する場合、いつも使用しているスクラッチではなく、専用の「拡張機能」が追加されたスクラッチ(カスタム版)を使用していきます。
開けましたか?
いつも使っているスクラッチとほとんど違いがありません。
次に使う時のために、お気に入りなどにブックマークしておくと便利です。
拡張機能を開いてみると、見慣れないものがたくさん並んでいると思います。
その中の「TM2 Scratch」を追加してください。
上から4つめの「画像分類モデルURL」というブロックの中に、先ほど作成したモデルの共有リンクをコピーして貼り付けてから、ブロックをクリックして下さい。
読み込みに少し時間が掛かりますが、正しく動作するか確認してみましょう。
ブロックの画像ラベルにチェックを入れると、画面上に表示されるようになります。
その状態で、カメラに向かって用意したペンなどを映してみると、ラベルの文字が映ったモノと連動して変わるのが確認出来ると思います。
ここまでくれば、後は、その「画像分類モデル」を使って、いつも通りスクラッチのプログラムを作成するだけです。
お買い物プログラムを作成
今回は、Scratch星人が作ったプログラムを参考に、同じようにブロックを作成してみて下さい。
カメラに商品をかざして、ネコをクリックすると「購入しますか?」と聞いてきます。
「はい」の場合、1と入力することで、買い物かごに「100」と追加されます。
続けて商品を購入することも出来ます。
購入できる商品を増やしたい場合は「Teachable Machine」のClassを増やして、もう一度学習させ、新たにモデルを作成することで可能になるので、ぜひ試してみて下さい。
保存データの注意点
通常のスクラッチを使用する場合と違い、カスタム版のスクラッチで作成したデータを保存する場合は「自分のパソコンに保存」しないとデータが消えてしまいます。
「コンピューターに保存する」を選びます。
データを開きたい場合は、カスタム版のスクラッチを開いてから「コンピューターから読み込む」を選び「Scratchのプロジェクト(もしくは自分が付けた名前).sb3」という名前のファイルを読み込むことで、使用できるようになります。
画像分類モデルを使ったデータは通常のスクラッチでは正しく動作しない、ということを覚えておきましょう。
まとめ
学習モデルを使った「AIのお買い物プログラム」を作成してみました。
思ったより、難しくなかったのではないでしょうか?
今回紹介した基本をマスター出来れば、後はアイデアひとつで、面白いAIプログラムが作成できるようになると思います。
AIプログラムが正しく動作するかは「学習モデルの精度」に掛かっています。
うまくいかない時は学習させる画像を、100枚や1000枚にする必要がある場合もあると思います。
試行錯誤しながら、楽しく作成してみて下さいね(*^▽^*)
コメント