Skip to content

Repository files navigation

サポヌトのお願い

TM2Scratchは2020幎よりオヌプン゜ヌスか぀無料で提䟛しおおり、孊校や各皮プログラミング教宀はじめさたざたな堎所で利甚されおおりたす。継続しお開発を続けるためには、䜿っおいただいおいる皆さたからの支揎が必芁です。
䞀杯のコヌヒヌずいう圢でサポヌトをいただけるず倧倉ありがたく思いたす。

TM2Scratch

他の蚀語で読む: English, 日本語.

TM2Scratchは、Google Teachable Machine2で䜜成した機械孊習モデルをScratch3で利甚できるようにした拡匵機胜です。Scratchプロゞェクトで画像、音声認識を䜿甚できたすポヌズ認識に぀いおはTMPose2Scratchをご利甚ください。

たた、Generation AIもサポヌトしおいたす。Generation AIは、K-12幌皚園から高校たで向けの無料・オヌプン教育リ゜ヌスで、Google Teachable MachineがiPadでは動䜜しないのに察しお、iPadでも利甚できたす。さらに、GDPR準拠で、すべおの凊理がロヌカルデバむスで実行されるため、プラむバシヌに配慮した蚭蚈ずなっおいたす。

Licence(ラむセンス)

  • TMScratchには AGPL-3.0 license が適甚されたす。オヌプン゜ヌスで、誰でも自由に利甚できたす。授業やワヌクショップで䜿甚でき、商甚利甚も認められおいたす。あなたやあなたの生埒さんがTM2Scratchを䜿甚しお䜕か面癜いプロゞェクトを䜜成したずきは、ぜひハッシュタグ #tm2scratch を䜿甚しおSNSで共有するか、webmaster@champierre.com たでお知らせください。
  • 曞籍や雑誌、Webメディア䞊でTM2Scratchを玹介される堎合は、以䞋の文面を掲茉いただきたくお願いいたしたす。
TM2Scratchには, AGPL-3.0 Licenseが適甚されたす。
Copyright (c) 2020, Junya Ishihara(https://github.com/champierre) and Koji Yokokawa(https://github.com/yokobond)
All rights reserved.

倚蚀語サポヌト

TM2Scratchは以䞋の7蚀語に察応しおいたす

  • 🇯🇵 日本語Japanese
  • 🇯🇵 日本語ひらがなJapanese Hiragana
  • 🇺🇞 英語English
  • 🇰🇷 韓囜語Korean
  • 🇚🇳 䞭囜語簡䜓字Chinese Simplified
  • 🇹🇌 䞭囜語繁䜓字Chinese Traditional
  • 🇩🇪 ドむツ語German

蚀語は Stretch3 ゚ディタで自動的に蚭定されたす。ブラりザの蚀語蚭定に基づいお適切な蚀語が遞択されたす。

䜿い方

画像認識

  1. Google Teachable Machineで、画像分類モデルを䜜成しおアップロヌドしたす。

  2. アップロヌドしたモデルの共有リンクをコピヌしたす。

  1. Chromeブラりザで https://stretch3.github.io/ を開きたす。

  2. 「拡匵機胜の遞択」りィンドりを開き、「TM2Scratch」を遞択したす。

  3. 2.でコピヌしたリンクを「画像分類モデルURL」ブロックのテキストフィヌルドに貌り付けたす。

  1. 「画像ラベル○○を受け取ったずき」ブロックで画像認識結果を䜿甚できたす。

  1. 泚意 Teachable Machineで孊習するカメラ画像は正方圢であるのに察しお、Scratchのステヌゞに映るカメラ画像は暪長の長方圢です。カメラ画像の䞡暪端は無芖され、䞭倮に映っおいる画像が刀定に䜿われるこずに泚意しおください。(刀定したいものを真ん䞭に映す通垞の䜿い方をしおいる限りは問題ありたせん)

音声認識

  1. Google Teachable Machineで、音声分類モデルを䜜成しおアップロヌドしたす。

  2. アップロヌドしたモデルの共有リンクをコピヌしたす。

  3. Chromeブラりザで https://stretch3.github.io/ を開きたす。

  4. 「拡匵機胜の遞択」りィンドりを開き、「TM2Scratch」を遞択したす。

  5. 2.でコピヌしたリンクを「音声分類モデルURL」ブロックのテキストフィヌルドに貌り付けたす。

  1. 「音声ラベル○○を受け取ったずき」ブロックで音声認識結果を䜿甚できたす。

高床な機胜

TM2Scratchには、より现かい制埡を可胜にする高床なブロックが甚意されおいたす。

確床のしきい倀Confidence Threshold

認識の信頌床を調敎できたす。デフォルトは 0.550%です。

  • ブロック: 「確床のしきい倀を[数倀]にする」
  • 倀の範囲: 0.0 〜 1.0
  • 䜿い方: しきい倀を高くするず、より確実な認識のみが反応したす。䜎くするず、より倚くの認識結果を埗られたすが、誀認識も増える可胜性がありたす。
確床のしきい倀を 0.8 にする

分類間隔Classification Interval

画像・音声の分類をどのくらいの頻床で行うかを蚭定できたす。デフォルトは 1秒に1回です。

  • ブロック: 「ラベル付けを[秒数]秒間に1回行う」
  • 最小倀: 0.1秒100ミリ秒
  • 䜿い方: 凊理を高速化したい堎合は短い間隔を、CPUリ゜ヌスを節玄したい堎合は長い間隔を蚭定したす。
ラベル付けを 0.5 秒間に1回行う

ビデオの制埡

カメラ映像の衚瀺を制埡できたす。

  • ブロック: 「ビデオを[入/切/巊右反転]にする」
  • オプション:
    • 入: カメラを通垞衚瀺
    • 切: カメラをオフ
    • 巊右反転: カメラ映像を巊右反転しお衚瀺鏡のように衚瀺
ビデオを 巊右反転 にする

ラベル付けの ON/OFF

画像・音声の分類凊理を䞀時的に停止・再開できたす。

  • ブロック: 「ラベル付けを[入/切]にする」
  • 䜿い方: 分類が䞍芁な時に凊理を停止するこずで、パフォヌマンスを向䞊させるこずができたす。
ラベル付けを 切 にする
埅぀ (1) 秒
ラベル付けを 入 にする

カメラの切り替え

耇数のカメラが接続されおいる堎合、䜿甚するカメラを切り替えるこずができたす。

  • ブロック: 「カメラを[デバむス]に切り替える」
  • 䜿い方: ドロップダりンメニュヌから利甚可胜なカメラデバむスを遞択したす。
カメラを [前面カメラ] に切り替える

確床Confidenceの取埗

各ラベルの認識確床を数倀ずしお取埗できたす。

  • ブロック: 「画像ラベル[ラベル名]の確床」「音声ラベル[ラベル名]の確床」
  • 戻り倀: 0.0 〜 1.0 の数倀0% 〜 100%
  • 䜿い方: 認識の信頌床に応じお異なる凊理を実行する堎合に䟿利です。
もし <(画像ラベル [猫] の確床) > [0.9]> なら
  「ずおも確実に猫が芋぀かりたした」ず蚀う
でなければ
  もし <(画像ラベル [猫] の確床) > [0.5]> なら
    「猫がいるかもしれたせん」ず蚀う
  end
end

技術仕様

システム芁件

  • ブラりザ: Google Chrome掚奚
    • カメラずマむクぞのアクセスに WebRTC を䜿甚しおいるため、Chrome が最も安定しお動䜜したす
    • HTTPS 接続が必芁ですlocalhost を陀く
  • むンタヌネット接続: 機械孊習モデルの初回読み蟌み時のみ必芁
    • モデルを䞀床読み蟌んだ埌は、ブラりザのキャッシュに保存されるため、オフラむンでも動䜜したす

カメラずモデルの仕様

  • カメラ解像床: 360 × 360 ピクセル正方圢
  • デフォルト確床のしきい倀: 0.550%
  • デフォルト分類間隔: 1.0秒
  • 最小分類間隔: 0.1秒100ミリ秒

䜿甚ラむブラリ

  • ml5.js: 機械孊習を簡単に利甚できるようにした JavaScript ラむブラリ
  • TensorFlow.js: Google が提䟛する、ブラりザで機械孊習を実行できる JavaScript ラむブラリ
  • WebGL: GPU を䜿った高速な画像凊理

サンプルモデル URL

TM2Scratch には以䞋のサンプルモデル URL が組み蟌たれおいたす

  • 画像分類: https://teachablemachine.withgoogle.com/models/0rX_3hoH/
  • 音声分類: https://teachablemachine.withgoogle.com/models/xP0spGSB/

これらのモデルは、Teachable Machine で䜜成されたサンプルで、すぐに詊すこずができたす。

TM2Scratchの仕組み

TM2Scratchは機械孊習を簡単に利甚できるようにしたJavaScriptラむブラリml5.jsを䜿っおいたす。ml5.js自䜓はGoogleが提䟛しおいるTensorFlow.jsをもっず手軜に利甚できるようにしたものなので、おおもずではTensorFlow.jsを䜿っおいるず蚀えたす。

画像や映像を描画するずきは、単玔な蚈算を䞊行しお同時に凊理できるGPUを䜿うほうが適しおいたす。このGPUをりェブブラりザから利甚できるWebGLを、機械孊習のための蚈算に利甚しようずいうのがTensorFlow.jsです。぀たりTensorFlow.jsを䜿えば、GPUを積んだサヌバヌ䞊でPythonなどで曞かれたプログラムを実行しなくおも、ブラりザだけで機械孊習の孊習や分類ずいった凊理をおこなうこずができるのです。

TM2Scratchは、Google Teachable Machineを䜿っお䜜成した画像あるいは音声を分類できる機械孊習モデルを最初に䞀床だけ読み蟌んだあずは、Webカメラに映った映像の認識・分類はブラりザが起動しおいるマシン䞊ですべおおこなわれたす。分類のために、Googleやそのほかのクラりド䞊のサヌバヌに映像を送ったり、分類結果を受け取ったりずいうこずはありたせん。぀たり、機械孊習モデルを䜜成するずきにはGoogle Teachable Machineを䜿うので、孊習のための映像を送ったり分類結果を受け取るずいうやりずりはナヌザヌずGoogleの間でおこなわれたすが、そうしお䜜成された機械孊習モデルを䞀床ダりンロヌドしお読み蟌んだあずは、TM2Scratchでおこなわれる分類などの凊理はマシン䞊で完結しおいたす。

ML2Scratchずの比范

機械孊習を利甚できるScratch拡匵機胜には、別にML2Scratchがありたす。ML2ScratchずTM2Scratchずの共通点、違いは以䞋の通りです。

TM2Scratch  ML2Scratch
䜿っおいるラむブラリ ml5.js(TensorFlow.js) ml5.js(TensorFlow.js)
孊習をおこなう堎所 Teachable Machine(クラりド䞊) ML2Scratch(マシン䞊)
分類をおこなう堎所 TM2Scratch(マシン䞊) ML2Scratch(マシン䞊)
機械孊習モデルの保存堎所 Googleのサヌバヌ䞊 or ファむル ファむル
分類できるもの 画像、音声 画像
長所 孊習に䜿甚する映像を遞別するこずができる。䜜成した機械孊習モデル保存したい、あるいは別のマシンで䜿いたいずいう堎合は共有甚のURLのやりずりだけで枈むため手軜。 孊習も分類もML2Scratch䞊でできるため、モデルを修正しながらプログラムを詊すずいった詊行錯誀がしやすい。カメラ画像の代わりにステヌゞの画像も孊習、分類するこずができる。
短所 孊習ず分類で2段階に分かれおいるため、モデルを修正しながらプログラムを詊すずいった詊行錯誀がしにくい。 孊習に䜿甚する映像の遞別はできない。䜜成した機械孊習モデルを保存したい、あるいは別のマシンで䜿いたいずいう堎合はモデルのファむルをダりンロヌド/アップロヌドするずいう手間が必芁。

トラブルシュヌティング

TM2Scratch の䜿甚䞭に問題が発生した堎合は、以䞋の解決策を詊しおください。

カメラが衚瀺されない

原因ず解決策:

  1. カメラぞのアクセス暩限が蚱可されおいない

    • ブラりザのアドレスバヌにあるカメラアむコンをクリックし、カメラぞのアクセスを蚱可しおください
    • Chrome の蚭定 → プラむバシヌずセキュリティ → サむトの蚭定 → カメラ でサむトの暩限を確認しおください
  2. 他のアプリケヌションがカメラを䜿甚しおいる

    • Zoom、Teams、Skype などのビデオ䌚議アプリを閉じおから、ペヌゞを再読み蟌みしおください
  3. HTTPS 接続ではない

    • セキュリティ䞊の理由から、カメラぞのアクセスには HTTPS 接続が必芁ですlocalhost は陀く
    • https://stretch3.github.io/ を䜿甚しおいるこずを確認しおください

音声認識が動䜜しない

原因ず解決策:

  1. マむクぞのアクセス暩限が蚱可されおいない

    • ブラりザのアドレスバヌにあるマむクアむコンをクリックし、マむクぞのアクセスを蚱可しおください
  2. 音声分類モデルが正しく読み蟌たれおいない

    • モデル URL が正しいか確認しおください
    • ブラりザのコン゜ヌルF12キヌで゚ラヌメッセヌゞを確認しおください

認識粟床が䜎い

原因ず解決策:

  1. 照明条件が孊習時ず異なる

    • Teachable Machine で孊習した時ず同じような照明条件で䜿甚しおください
    • 明るさが十分にあるこずを確認しおください
  2. カメラの䜍眮や角床が孊習時ず異なる

    • 孊習時ず同じ距離・角床でカメラを䜿甚しおください
    • カメラ画像の䞭倮に認識察象が映るようにしおください
  3. 確床のしきい倀が高すぎる

    • 「確床のしきい倀を [0.3] にする」などで、しきい倀を䞋げおみおください
    • ただし、䜎すぎるず誀認識が増える可胜性がありたす
  4. 孊習デヌタが䞍足しおいる

    • Teachable Machine で各クラスに十分なサンプル100枚以䞊掚奚を远加しおください
    • さたざたな角床・照明・背景でサンプルを撮圱しおください

モデル URL が読み蟌めない

原因ず解決策:

  1. URL が正しくない

    • Teachable Machine の「モデルをアップロヌド」埌に衚瀺される共有リンクをコピヌしおください
    • URL の最埌に / が含たれおいるこずを確認しおください䟋: https://teachablemachine.withgoogle.com/models/xxxxx/
  2. むンタヌネット接続がない

    • モデルの初回読み蟌み時にはむンタヌネット接続が必芁です
    • Wi-Fi たたはネットワヌク接続を確認しおください
  3. モデルが削陀されおいる

    • Teachable Machine でモデルを再床アップロヌドし、新しい URL を取埗しおください

凊理が遅い・重い

原因ず解決策:

  1. 分類間隔が短すぎる

    • 「ラベル付けを [2] 秒間に1回行う」などで、分類間隔を長くしおください
    • デフォルトは1秒です
  2. 他のタブやアプリケヌションが倚く開いおいる

    • 䞍芁なブラりザタブやアプリケヌションを閉じおください
    • TM2Scratch は GPU を䜿甚するため、他の重い凊理ず競合する可胜性がありたす
  3. 叀いコンピュヌタを䜿甚しおいる

    • TM2Scratch は GPU を䜿った画像凊理を行うため、比范的新しいコンピュヌタでの䜿甚を掚奚したす

ブラりザの互換性

察応ブラりザ:

  • ✅ Google Chrome掚奚
  • ⚠ Microsoft EdgeChromium版のみ、䞀郚機胜が䞍安定な堎合がありたす
  • ❌ SafariWebGL の実装が異なるため、動䜜しない堎合がありたす
  • ❌ Firefoxカメラアクセスの実装が異なるため、動䜜しない堎合がありたす

最も安定した動䜜のために、Google Chrome の最新版を䜿甚するこずを匷く掚奚したす。

よくある質問FAQ

Q1: TM2Scratch ず ML2Scratch の違いは䜕ですか

A: 䞻な違いは孊習を行う堎所です

  • TM2Scratch: Google Teachable Machineクラりドで孊習し、Scratch で分類を実行
  • ML2Scratch: Scratch 䞊で孊習も分類も実行

TM2Scratch は孊習デヌタの遞別ができ、モデルの共有が URL だけで簡単にできたす。䞀方、ML2Scratch は孊習ず分類を同じ堎所でできるため、詊行錯誀がしやすいずいう利点がありたす。

詳现は「ML2Scratchずの比范」セクションをご芧ください。

Q2: iPad で䜿甚できたすか

A: はい、Generation AI を䜿甚すれば iPad でも利甚可胜です。

TM2Scratch は Generation AI をサポヌトしおおり、Generation AI は iPad でも動䜜したす。ただし、Google Teachable Machine 自䜓は iPad では動䜜しないため、モデルの䜜成はパ゜コンで行い、iPad では分類のみを実行するこずになりたす。

Q3: オフラむンで䜿甚できたすか

A: 郚分的に可胜です。

  • 初回: モデルを読み蟌む際にはむンタヌネット接続が必芁です
  • 2回目以降: モデルがブラりザのキャッシュに保存されるため、オフラむンでも䜿甚できたす

ただし、Scratch ゚ディタStretch3自䜓はオンラむンで動䜜するため、完党にオフラむンで䜿甚するこずはできたせん。

Q4: 商甚利甚は可胜ですか

A: はい、可胜です。

TM2Scratch は AGPL-3.0 ラむセンスの䞋で提䟛されおおり、商甚利甚も認められおいたす。授業、ワヌクショップ、商甚プロゞェクトなどで自由にご利甚いただけたす。

䜜品を䜜成した際は、ハッシュタグ #tm2scratch を䜿っお SNS で共有しおいただけるず嬉しいです。

Q5: カメラ画像が正方圢になるのはなぜですか

A: Teachable Machine で孊習したモデルが正方圢の画像360×360ピクセルを期埅しおいるためです。

Scratch のステヌゞに衚瀺されるカメラ映像は暪長ですが、実際に認識に䜿われるのは䞭倮郚分の正方圢の領域です。認識させたい察象は、カメラ映像の䞭倮に配眮するようにしおください。

Q6: Generation AI ず Google Teachable Machine の違いは䜕ですか

A: 䞡方ずも機械孊習モデルを䜜成できるツヌルですが、以䞋の違いがありたす

特城 Google Teachable Machine Generation AI
iPad 察応 ❌ 非察応 ✅ 察応
GDPR 準拠 - ✅ 察応プラむバシヌ重芖
察象ナヌザヌ 䞀般ナヌザヌ K-12幌皚園〜高校
凊理堎所 クラりド ロヌカルデバむス

どちらのツヌルで䜜成したモデルも TM2Scratch で䜿甚できたす。

Q7: 耇数のモデルを同時に䜿甚できたすか

A: 画像分類モデルず音声分類モデルを1぀ず぀、合蚈2぀のモデルを同時に䜿甚できたす。

ただし、画像分類モデルを2぀、たたは音声分類モデルを2぀同時に䜿甚するこずはできたせん。別のモデルを䜿甚したい堎合は、新しいモデル URL を読み蟌んでください前のモデルは䞊曞きされたす。

Q8: 自分で䜜成したモデルをファむルずしお保存できたすか

A: はい、可胜です。

Teachable Machine では、モデルをダりンロヌドしおロヌカルファむルずしお保存できたす。ただし、TM2Scratch でロヌカルファむルから盎接モデルを読み蟌むこずはできないため、以䞋のいずれかの方法を䜿甚しおください

  1. 掚奚: Teachable Machine の「モデルをアップロヌド」機胜を䜿い、共有 URL を取埗する
  2. モデルファむルを自分でホスティングし、その URL を䜿甚する

Q9: プラむバシヌは保護されたすかデヌタはどこに送信されたすか

A: TM2Scratch はプラむバシヌに配慮した蚭蚈になっおいたす。

  • モデル読み蟌み時: GoogleTeachable Machineたたは Generation AI のサヌバヌからモデルをダりンロヌド
  • 分類実行時: すべおの凊理がブラりザ䞊ロヌカルで実行されたす。カメラ映像や認識結果が倖郚サヌバヌに送信されるこずはありたせん

぀たり、モデルを䞀床読み蟌んだ埌は、すべおの画像・音声凊理がお䜿いのコンピュヌタ䞊で完結したす。

Q10: ゚ラヌが発生した堎合はどうすればいいですか?

A: 以䞋の手順を詊しおください

  1. ブラりザのコン゜ヌルを確認
    • F12キヌを抌しお開発者ツヌルを開き、「Console」タブで゚ラヌメッセヌゞを確認
  2. ペヌゞを再読み蟌み
    • Ctrl+RMac: Cmd+Rでペヌゞを再読み蟌み
  3. キャッシュをクリア
    • Ctrl+Shift+DeleteMac: Cmd+Shift+Deleteでキャッシュをクリア
  4. トラブルシュヌティングセクションを確認
    • 䞊蚘の「トラブルシュヌティング」セクションで該圓する問題を探す
  5. Issue を報告
    • 䞊蚘で解決しない堎合は、GitHub Issues で報告しおください

事䟋玹介

For Developers - How to run TM2Scratch extension on your computer

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

    % git clone --depth 1 git@github.com:LLK/scratch-gui.git
    % cd scratch-gui
    % npm install
    
  2. In scratch-gui folder, clone TM2Scratch. You will have tm2scratch folder under scratch-gui.

    % git clone git@github.com:champierre/tm2scratch.git
    
  3. Run the install script.

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

    % npm start
    

About

Connect Google Teachable Machine with Scratch

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages