Topics

Blogblog

Scratch環境で機械学習に挑戦してみた(エンジニアカフェアドベントカレンダー2022)

この記事はQiita x エンジニアカフェ共催!今年がんばった技術(と好きなラーメンと麺のかたさ) Advent Calendar 202223日目の記事です。

https://qiita.com/advent-calendar/2022/qiita-engineercafe
アドベントカレンダー
【背景】
みなさん、こんにちは!
エンジニアカフェ コミュニティマネージャの國武です。

2015年から、夏休みのイベントとして小学生向けのプログラミング講座を担当しています。
この講座ではScratchhttps://scratch.mit.edu/ )を使って、簡単なゲームを作っていました。
Scratch画像
2020年度から、論理的思考やコンピュータを積極的に活用する力を身につけようと小学校でプログラミング教育が実施されるようになりました。
その影響からか、既に学校で似たようなプログラムを作ったことがあるよ、という子供たちが増えてきました。

そこで、昨年(2021年)はScratchのプログラムを見直し、難易度を上げて実施しました。
子供たちを見ていると、もう少し難易度を上げられるかも、もう少し発展させてみても面白いかもという気持ちが大きくなり、今年(2022年)は機械学習にチャレンジしました。

【機械学習にチャレンジ】
なぜ、機械学習かと言いますと
テキスト画像
こちらの本と出会ってしまったからです!
Scratchではじめる機械学習( https://www.oreilly.co.jp/books/9784873119182/ )

機械学習という言葉はよく聞くけど、なんだか難しそう。
線形代数・微分・確率統計など、高校数学からやり直す必要があるのかな?と思っていました。
こちらの本は、小学校高学年くらいの年齢から読める機械学習入門書で、難しい数学の知識がなくても、画像認識や音声認識などを利用したプログラムを作ることができ、機械学習の仕組みを学ぶことができるとのこと。すごいです。

1章では画像認識を使ったじゃんけんゲームのプログラムが紹介されています。
じゃんけんゲームはScratchでも作っていましたので、このプログラムを参考に機械学習にチャレンジすることにしました。
Scratchプログラム

【画像認識を使ったじゃんけんゲーム】

1.Stretch3を開く
機械学習のプログラムを作るためには、カスタマイズされたScratchであるStretch3を使う必要があります。
Stretch3は、「Scratchではじめる機械学習」の著者の1人であるJunya Ishiharaさんが開発された、カスタマイズされたScratchです。
Chromeブラウザで以下のURLにアクセスします。
https://stretch3.github.io/

2.拡張機能を追加する
機械学習を使った画像認識をScratchで使うためには、ML2Scratch(Machine Learning to Scratch)という拡張機能を使います。
他にもStretch3にはたくさんの拡張機能が用意されています。
拡張機能の画像
3.画像を学習させる
「グー」「チョキ」「パー」の手の形をカメラに写し、機械に学習してもらいます。
ラベル1をグー、ラベル2をチョキ、ラベル3をパーと、じゃんけんの手の形を20枚ほど学習させます。
パーの画像
本来、機械学習で画像を認識しようとする際、大量の画像を学習させる必要があります。
ですが、ML2Scratchは転移学習(既に十分学習された学習済みモデルを利用すると、少ないデータ量・短い時間で学習可能になる)を使っているとのことで、20枚くらいの画像を学習しただけで、グー、チョキ、パーを認識できるようになるそうです。

4.プログラミング
Stretch3上でプログラムを組み立てていきます。
じゃんけんゲームのアルゴリズムは、基本的にはScratchで作ったアルゴリズムと同じです。

ML2じゃんけんプログラム

【その他のプログラム】

Scratchではじめる機械学習」では、じゃんけんゲーム以外にも、デジタルペットや着せ替えアプリのプログラムが紹介されています。
着せ替えアプリでは、自分の画像に眼鏡をかけることができ、カメラの前で左右に動くと眼鏡も一緒に動き、前後に動くと眼鏡の大きさが変わって面白かったです!
眼鏡の画像
【ラーメンとかうどんとか】

福岡にあるラーメン屋さんはどのお店も美味しいです!
(福岡出身の人はみんなそう思っているはず・・・)
一蘭、一風堂、Shin-Shin、一幸舎、暖暮、大砲、丸幸、などなど
私はどこのお店でも麺の硬さは「ふつう」を頼みます。

うどん屋さんだったら、ウエスト!
ウエストのやわもち麺とあっさりスープが大好きです。
エンジニアカフェ周辺の店舗です。
https://www.shop-west.jp/store/

SHARE ON