• Stars
    star
    106
  • Rank 325,871 (Top 7 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated almost 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

機械学習 x スクラッチ(Connect Machine Learning with Scratch)

サポートのお願い

ML2Scratchは2018年よりオープンソースかつ無料で提供しており、学校や各種プログラミング教室はじめさまざまな場所で利用されております。継続して開発を続けるためには、使っていただいている皆さまからの支援が必要です。
一杯のコーヒーという形でサポートをいただけると大変ありがたく思います。

ML2Scratch(Scratch2ML)

ML2ScratchはTensorFlow.jsを使った機械学習をScratchから簡単に体験、利用できるようにします。

Webカメラでいくつかの画像を撮り、ラベルを付けて学習すれば、似たような新たな画像を、学習結果をもとに分類することができます。キャプチャした画像はサーバーに送られることはなく、学習および分類はすべてブラウザ上で行われるのが特徴です。(ただし、起動時にアプリケーションを読み込むのと、学習モデルをダウンロードするためにはネットワーク接続が必要です。)

ブロックの言語は、English、日本語、にほんご、简体中文(陶旭 https://twitter.com/taoxu_toukyoku 提供)、繁體中文(CAVEDU Education https://github.com/cavedunissin 提供)、に対応しています。その他の言語への翻訳にご協力いただける方がいましたら、Issue に登録いただくか、連絡先までご連絡ください。

他の言語で読む: English, 日本語, 简体中文.

ML2Scratch ホームページ

Demo Movie(デモ動画)

ステージの画像を学習

Webカメラの画像を学習

その他のデモ動画

Requirements(推奨環境)

  • OS
    • Windows 8
    • Windows 10
    • MacOS
    • Chrome OS
    • iOS
  • ブラウザ
    • Chrome
    • Safari(iOS)

Chrome の拡張機能を使用している場合に、正常に動作しないことがあるので、もしうまく動かないという場合には、ゲストモードに切り替えてお試しください。

How to use(使い方)

Setup(準備)

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

  2. 「拡張機能を選ぶ」画面を開き、「ML2Scratch」を選びます。

  3. Chromeがカメラの使用の許可を求めるダイアログが表示されるので、「許可」をクリックします。

  4. 「ラベル」、「ラベル1の枚数」、「ラベル2の枚数」、「ラベル3の枚数」の横のチェックボックスにチェックを入れます。

Training(学習)

  1. ジャンケンの「グー」のサインをカメラに映し、「ラベル1を学習する」ブロックをクリックします。この操作で、「グー」をラベル1として機械に学習させます。

  2. 撮った写真の枚数が20枚になるまで「ラベル1を学習する」ブロックをクリックし続けます。撮った写真の枚数はステージ上の「ラベル1の枚数」に表示されています。

  3. 次に「パー」をカメラに映し、同様に「ラベル2の枚数」が20になるまで、「ラベル2を学習する」ブロックをクリックし続けます。

  4. 「チョキ」をカメラに映し、「ラベル3の枚数」が20になるまで、「ラベル3を学習する」ブロックをクリックし続けます。

Recognition(認識)

  1. 学習を終えると、認識結果が常にステージ上の「ラベル」に表示されるようになります。「グー」を見せれば「1」に、「パー」を見せれば「2」に、「チョキ」を見せれば「3」と表示されます。

  2. 「ラベル◯◯を受け取ったとき」ブロックを使って、以下のようなサンプルプログラムを作ることができます。

学習/判定する画像の切り替え

学習/判定する画像を切り替えることができます。

デフォルトではScratchのステージ画像を学習/判定に使っています。

ステージにWebカメラの画像を映していれば、Webカメラの画像を学習/判定しますし、「ビデオを切にする」ブロックでWebカメラの画像を映すのをやめて、ゲームやアニメーションの画面などを表示した場合は、その画面を学習/判定に使用します。

「ビデオを入にする」でWebカメラの画像を映すと同時に、ゲームやアニメーションのキャラクターも表示しているのだけれども、Webカメラの画像だけを学習/判定したい場合には、

で学習/判定する画像をWebカメラの画像に切り替えることができます。カメラの画像に映ったジェスチャーでキャラクターを動かしたいという場合は、こちらの方が精度良く判定できると思います。

Download/Upload(学習データとプロジェクトのダウンロード/アップロード)

ML2Scratch では、学習したモデルを「学習データをダウンロード」ブロックを使うことで、PC上にダウンロードして保存しておくことができます。

をクリックし、ファイルのダウンロード先を指定して「保存」ボタンを押すと <数字の列>.json というファイルとして学習データが保存されます。

プロジェクト自体は、通常の Scratch とは違って自動で保存されないので、「ファイル」>「コンピューターに保存する」を選び、.sb3 ファイルとして自分の PC 上に保存します。

保存しておいたプロジェクトを再び開くには、「ファイル」>「コンピューターから読み込む」を選び、保存してあった .sb3 ファイルを選びます。そのあとに学習データをアップロードします。

保存しておいた学習データは、「学習データをアップロード」ブロックでアップロードすることができます。

をクリックすると、「学習データをアップロード」というウィンドウが開くので、「ファイルを選択」ボタンをクリックして、学習データのファイル(<数字の列>.json)を選んだあと、「アップロード」ボタンをクリックします。

このとき、いままで学習していたデータは上書きされてしまうので注意してください。

How to use from Xcratch(Xcratch からの利用)

ML2Scratch は必要な独自拡張機能を読み込むことができる Scratch Mod の「Xcratch」からも利用できます。

Xcratch の URL である https://xcratch.github.io/ をブラウザで開き、「エディターを開く」を選んだあと、「拡張機能を選ぶ」画面から「拡張機能を読み込む」を選んでから URL 入力欄に https://champierre.github.io/ml2scratch/ml2scratch.mjs を入力するか、以下のプロジェクトファイル付き URL から直接アクセスすれば、すでに ML2Scratch の拡張機能を読み込み済みの状態で Xcratch を開くことができます。

» ML2Scratch を読み込み済みの Xcratch を開く

For Developers - How to run ML2Scratch extension on your computer

  1. Setup LLK/scratch-gui on your computer.

    % git clone [email protected]:LLK/scratch-gui.git
    % cd scratch-gui
    % npm install
    
  2. In scratch-gui folder, clone ML2Scratch. You will have ml2scratch folder under scratch-gui.

    % git clone [email protected]:champierre/ml2scratch.git
    
  3. Run the install script.

    % sh ml2scratch/install.sh
    
  4. Run Scratch, then go to http://localhost:8601/.

    % npm start
    

Acknowledgments(謝辞)

このプロジェクトは以下の方々の貢献で成り立っています。その他、以下に挙げきれていないバグ報告や機能改善を提案してくれた方々、ワークショップなどで使っていただきフィードバックをくださった方々などに感謝いたします。

Licence(ライセンス)

  • ML2Scratchには BSD 3-Clause License が適用されます。オープンソースで、誰でも自由に利用できます。授業やワークショップで使用でき、商用利用も認められています。あなたやあなたの生徒さんがML2Scratchを使用して何か面白いプロジェクトを作成したときは、ぜひハッシュタグ #ml2scratch を使用してSNSで共有するか、連絡先までお知らせください。以下の「活用例」に追加させていただきます。

Contacts(連絡先)

  • Twitter

Examples of use(活用例)

Tシャツ

ML2Scratchのロゴ入りTシャツ、こちらで販売しています -> https://suzuri.jp/is8r_/1251743/t-shirt/s/white

Release Notes

  • 1.0.0 2018/04/09 ScratchXバージョン
  • 2.0.0 2019/01/20 Scratch3バージョン
  • 3.0.0 2020/03/28 Scratchのステージ画像を学習/判定できるようにした。
  • 3.0.1 2020/03/29 デフォルトで、カメラの画像を学習/判定するようにする。ラベル名を自由に設定できるようにする。
  • 3.0.2 2020/04/18 「ビデオを切にする」と「カメラの画像を学習/判定する」などのブロックを続けて使用した時、あとに続けたブロックが実行されないバグを修正しました。

Reference(参考)

More Repositories

1

facemesh2scratch

JavaScript
37
star
2

posenet2scratch

Pose Detection on Scratch 3 using PoseNet
JavaScript
27
star
3

tm2scratch

Connect Google Teachable Machine with Scratch
JavaScript
24
star
4

scratch2sphero

With this library, you can control Sphero 2.0 from Scratch 1.4.
Ruby
24
star
5

sheet2gmap

HTML
23
star
6

scratch2airborne

Control Parrot mini drone Airborne from Scratch
JavaScript
18
star
7

libron

Amazon のページから最寄りの図書館の蔵書を検索できる便利なツールです。
JavaScript
14
star
8

handpose2scratch

JavaScript
14
star
9

Romo

All of Romo's smarts, open sourced!
Objective-C
13
star
10

scratch2mip

Control self balancing robot WowWee MiP from ScratchX
JavaScript
11
star
11

Scratch2Romo

Control Romo by Scratch
Objective-C
11
star
12

scratch3

Shell
6
star
13

fiscal_year

Add 'fiscal_year' method, that returns the fiscal year, to Ruby Date, Time and DateTime classes.
5
star
14

scratch_curriculum_chain_reaction

5
star
15

scratch2html

Scratch2HTML enable to build HTML page using Scratch blocks.
JavaScript
5
star
16

s2ar

S2AR(Scratch2ARKit) connects Scratch (more specifically ScratchX) and iOS ARKit, then enables anyone to program building blocks in Augmented Reality world.
Swift
5
star
17

tmpose2scratch

TMPose2Scratch connects Google Teachable Machine 2 with Scratch 3. You can use pose recognition on Scratch project.
JavaScript
5
star
18

simple-bbs

HTML
4
star
19

geo_scaffold

Ruby
4
star
20

canvas_resize_sample

A sample Rails app that uses Javascript canvasResize Plugin and paperclip(https://github.com/thoughtbot/paperclip) to demonstrate how to implement file resizing before upload.
JavaScript
4
star
21

glnmaps

TypeScript
3
star
22

scratch2maqueen

Control DFRobot Maqueen from Scratch
JavaScript
3
star
23

microbit_for_beginner

3
star
24

c2dm_on_rails_sample

A Sample of rails project using "c2dm_on_rails" gem
Ruby
3
star
25

lokka-redirect

Lokka(http://lokka.org) plugin that can creates redirect rules. Useful for migrating from WordPress to Lokka.
Ruby
3
star
26

pgcafe_atnd

ATNDに、「三鷹プログラマーズカフェ」イベント情報を簡単に登録できるGreasemonkeyスクリプト
JavaScript
3
star
27

image_submit_tag_ext

Added :disable option to image_submit_tag helper, which functions like :disable_with option of submit_tag, prevents the submit button being pressed when the form is submitted.
Ruby
3
star
28

mopa

Ruby
2
star
29

libron-api

JavaScript
2
star
30

monumento-style

JavaScript
2
star
31

scratch2web

Control browser(currently only chrom) from scratch
Ruby
2
star
32

lokka-redirect_if_heroku

Lokka(http://lokka.org) plugin that redirect http://*.heroku.com to any url
Ruby
2
star
33

TeidenChecker

Teiden Checker(Titanium)
JavaScript
2
star
34

lokka-facebook_like_button

Facebook Like Button plugin for Lokka.
Ruby
2
star
35

annotate_views

Add a comment identifying own relative path to the top and to the end of each view source file
Ruby
2
star
36

geolonia2scratch

Show Geolonia map on Scratch
JavaScript
2
star
37

about_scratch

2
star
38

base_template

Ruby
2
star
39

HelpMeTutor

JavaScript
2
star
40

scratch2python

JavaScript
2
star
41

scratch2gluemotor

Control GlueMotor from Scratch using Remote Sensors Protocol
Processing
1
star
42

textlists-ios-app

Objective-C
1
star
43

scratch_atnd

scratch_atnd
JavaScript
1
star
44

japanese-prefectural-capitals

JavaScript
1
star
45

dojos-map

HTML
1
star
46

resume

My resume
1
star
47

t-lab-editor-guide

1
star
48

libron_greasemonkey

Greasemonkey version of Libron. Currently not supported.
JavaScript
1
star
49

gm_updater_test

1
star
50

MakesThisLink

Add links to http://makesthis.com on Twitter web page if the person has "MADE" something.
1
star
51

takadanobaba-keizai-map

HTML
1
star
52

pwamap

TypeScript
1
star
53

speech2scratch

JavaScript
1
star
54

chofu-anzen

Ruby
1
star
55

GCDSample

Sample code of Grand Central Dispatch on iOS
Objective-C
1
star
56

scratch2romo_old

Objective-C
1
star
57

hubot-gcal-reminder

CoffeeScript
1
star
58

lokka-dropbox

Ruby
1
star
59

ogijima

1
star
60

mega_lotto

Ruby
1
star
61

Amazon-Chofu-Library-Linky

Amazonに調布市立図書館の蔵書検索リンクを追加するGreasemonkeyスクリプト
JavaScript
1
star
62

sinatraxscratch

Ruby
1
star
63

Watch2Romo

Objective-C
1
star
64

ios-lock-rotation-sample

Objective-C
1
star
65

lokka-simple_reach

Simple Reach plugin for Lokka
Ruby
1
star
66

anzen-tweet

Many cities have notification services to Keitai mail that inform you local security information including blackout schedules after the earthquake happened on Mar. 11th 2011, but few have Twitter accounts. Anzen Tweet is a tiny bridge Rails app that receives the mail and tweet the contents. It can be setup easily on Heroku.
Ruby
1
star