WindowsまたはNintendo SwitchでTeachable Machineの学習済みモデルを読み込む

*このページでは、Windows版またはNintendo Switch版Mind Renderの以下のプログラムに関連する説明を行います。
 つくる(ラボ):「49. AIで標識を判断しよう!」
 あそぶ(公開プログラム):「[AI] AIで標識を認識しよう!」

ラボ「49.AIで標識を判断しよう」では、Teachable Machineで交通標識の画像を識別するAIモデルを作成し、それを組み込んだMind Renderオブジェクトが標識を認識して右折・左折・停止するプログラムを紹介しています。
(あそぶ>MIT提供>[AI] AIで標識を判断しよう!でもご覧いただけます。)

Teachable Machineは、Googleが提供する、画像認識や音声認識などのAI(機械学習)モデルを作成できる無料プラットフォームです。予備知識やプログラミングは不要で、ブラウザ上で誰でも簡単にデータ収集、トレーニング、テストが可能で、作成したモデルはダウンロードして外部アプリに組み込んだり、共有することができます。

ここでは、Windows版および、Nintendo Switch版Mind Renderでは学習済みモデルの読み込み手順を説明します。(少し手間がかかります。)

1 必要なもの

  • PythonおよびUnityが円滑に動作するPC(Windows、macOS)
  • インターネット接続環境
  • Switch版Mind Renderを利用する場合は、Nintendo Switch

*学習済みモデルの作成はPC(WindowsまたはmacOS)で行うため、Nintendo Switch版の場合もPCが必要です。

モデルの学習はこちらをご参照ください
学習(トレーニング)が終わったら本ページに戻り、以下の手順に従ってください。

*以下の説明は、2026年2月現在のTeachable Machine公式サイトの内容に基づいています。

1. プレビューの「モデルをエクスポートする」ボタンを押します。

2. Tesorflow、続いてSavedmodelを選択し、「モデルをダウンロード」ボタンをクリックします。

3. 「ダウンロード」フォルダにconverted_savedmodel.zipファイルがダウンロードされます。
4. これを展開し、model.savedmodelフォルダを任意の場所に移動します。
*以降の説明では、Cドライブの直下に work というフォルダを作成し、そこに移動した前提で進めます

3 Pythonとライブラリをインストールする

Teachable Machineの学習済みモデル(model.savedmodel)をWindows版またはSwitch版Mind Renderで読み込むには、Pythonでonnxフォーマットに変換後、さらにUnity Editorで sentisフォーマットに変換する必要があります。

以下の変換ツールを使うことで、1つ目の変換(Pythonでonnxフォーマットに変換)する手間を簡略化することができます。お急ぎの場合等はご活用ください。
<変換ツールの使う場合>
1. 変換ツールをダウンロードします。
2. 変換ツールをダブルクリックします。
3. 「SavedModel to ONNX (DnD)」という小さなウィンドウが開きます。
4. このウィンドウ上に、workフォルダにある「model.savedmodel」を(フォルダごと)ドラッグ&ドロップします。
5. workフォルダに変換後のファイル「model.savedmodel.onnx」が作成されます。
6. 「4 Unityをインストールする」に進みます。

<変換ツールを使わない場合>
model.savedmodelフォルダをPython(3.10.11)でonnx形式に変換します。

*以下の説明は、2026年4月現在のPython公式サイトの内容に基づいています。

1. (お手持ちのPCにPythonがインストールされていない場合は)インストールします。
2. Python公式サイトにアクセスし、トップページ上部のメニューからDownloads、表示されるサブメニューからWindowsを選択します。

3. Python3.10.11を探し、ダウンロードします。

4. ダウンロードしたインストーラー(python-3.10.11-amd64.exe)をダブルクリックしてPythonをインストールします。

5. 以下のライブラリをインストールします。

ライブラリバージョン
tensorflow / tensorflow-intel2.13.1
numpy1.23.5
typing-extensions4.5.0
onnx1.14.1
tf2onnx最新

5-1. 画面下部にある「検索ボックス」に「cmd」と入力してコマンドプロンプトを起動します。
5-2. 表示される画面で、以下のコマンドを入力し(コピー可)、Enterキーを押します。
py -3.10 -m pip install tensorflow tensorflow-intel==2.13.1 numpy==1.23.5 typing-extensions==4.5.0 onnx==1.14.1 tf2onnx

5-3. インストールが完了します。

6.以下のコマンドを入力し(コピー可)、Enterキーを押します。 先ほど作成した work フォルダに移動します。
cd c:\work
7. 以下のコマンドを入力し(コピー可)、model.savedmodelをonnxファイルに変換します。
python -m tf2onnx.convert –saved-model C:\work\model.savedmodel –output model.onnx

8. 変換処理が終了すると、workフォルダにmodel.onnxというファイルが作成されます。

4 Unity をインストールする

次に、model.onnx ファイルを Unity Editor で model.sentis に変換します。
1. (お手持ちのPCにUnity Editorがインストールされていない場合は)Unity TechnologiesのウェブサイトからUnityをダウンロード、インストールします。
Unity IDを持っていない場合は、IDの新規作成が必要です。
2. インストールが完了すると、Unity Hubが起動します。

4. 続いてUnity Editorをインストールします。Unity Hubの左メニューから「Installs」を選択します。右上の「Install Editor」ボタンをクリックします。

5. Unity 6.4の「Install」ボタンをクリックします。

6. インストールが完了するのを待ちます(少し時間がかかります)。完了すると、Installs画面にUnity 6.4が追加されます。
7. 新しいプロジェクトを作成します。
左メニューから「Projects」を選択し、右下の「New Project」ボタンをクリックします。

8. 画面の入力項目に従い作成します。
*以降の説明では、Cドライブの直下に Unity Projectというフォルダを作成し、プロジェクトを保存する前提で進めます。

「Unity organization」は自分のユーザー名、「Project name」は任意のプロジェクト名、「Location」はc:\Unity Projectを指定します。

9. 「Create Project」ボタンをクリックします。
10. Unity Editorが起動します(起動するまで少し時間がかかります)。
11. 上部の「Window」メニューを選択し、続いて「Package Management」、「Package Manager」を選択します。

12. Package Manager画面の左メニューから「Unity Registry」を選択します。
13. メニューの右側上部にある検索ボックスに「sentis」と入力し、Enterキーを押します。Sentisが結果表示されるので、「Install」ボタンをクリックしてインストールします。

14. Package Manager画面を閉じます。
15. エクスプローラーで Cドライブ直下に作成したworkフォルダ を開き、model.onnx を Unity EditorのProject画面の「Assets」にドラッグ&ドロップします。modelが追加されます。

16. model をクリックすると、Inspector画面が表示されます。画面を一番下までスクロールし、「Serialize To StreamingAssets」ボタンをクリックします。

17. Project画面で、「Assets」、続いて「StreamingAssets」を選択すると、作成されたファイルを確認できます。

5 学習モデルをアップロードする

Mind Renderで読み込めるようにするため、model.sentis ファイルを外部のクラウドストレージ(Google Drive、Dropbox等)に保存します。
1. 学習モデルはプロジェクトと同じフォルダに保存されているので、エクスプローラーで、以下の場所に移動します。(「My project」はご自身のプロジェクト名に合わせてください。)
C:/Unity Project/My project/Assets/StreamingAssets
2. model.sentis というファイルをクラウドストレージに保存します。

6 Mind Render でモデルを読み込み、画像認識を実行する

ここから、Mind Renderでの作業となります。Nintendo Switchを使用する場合は、Switchをご準備ください。

ストレージに保存したモデルをMind Renderで読み込み、Mind Renderオブジェクトが標識を認識して右折・左折・停止するプログラムを作ります。

サンプルプログラムを利用して自分の学習モデルに書き換えることもできます。
つくる>新しいオブジェクト>49. AIで標識を判断しよう!
あそぶ>MIT提供>AIで標識を判断しよう!

機械学習に関するブロックは以下の2つです。

1. モデルの読み込み
モデルの読み込みに使用する命令です。(「テクニック」カテゴリ)

[ID] 任意の文字列を入力します(「矢印」など)。同じプログラム内で重複はできず、「TM画像分類結果」ブロックのIDと一対一で対応させる必要があります。
[URL] クラウドストレージ(Google Driveなど)に保存した学習モデルのURLをコピーして貼り付けます。もしくはキーボードで入力します。
このとき、URLを以下のように編集してください
・Dropboxの場合:末尾の「dl=0」を「dl=1」に変更する
・Google Driveの場合:
 1. Google DriveでTeachable Machine のファイルを選択し、「共有」メニュー>「共有」メニューと進む
 2. 「リンクを知っている全員」が閲覧者または編集者となるよう選択し、「リンクをコピー」する
 3. リンクを以下のように変更する
  元のリンク:https://drive.google.com/file/d/{ファイルID}/view?usp=sharing
  編集後のリンク:https://drive.google.com/uc?export=download&id={ファイルID}
[強制読み込み] onにすると、プログラムをスタートするたびに学習モデルを再読み込みします。デフォルトはoffです。

2. 分類結果の取得
分類結果を取得するには以下の命令を使用します。サンプルプログラムのまま使用します。

[ID] 「TM学習モデルを読み込む」で設定したIDと同じIDを入力します。(例えば「TM学習モデルを読み込む」のIDを「矢印」としたら、「TM画像分類結果」のIDも「矢印」とする)
[しきい値] 設定されている値を超えた場合のみ、判定します。デフォルト値は60%です。(例えば、「→」「←」という画像を認識させる場合、「→」の認識率が60%を超えた場合のみ「→」と判定する)

<ラボのプログラムについて補足>
・「49. AIで標識を判断しよう!」ラボでは、標識を認識するタイミングを一定にするため、キャラクターにサーチエリアを設定し、サーチエリアと標識が接触したら判定するようにしています。
・「AI判定結果」変数の値は、Teachable Machineからエクスポートした converted_saved model フォルダ内の labels.txt の内容に基づいています。
 0 STOP
 1 RIGHT
 2 LEFT

*このモデルは Google Teachable Machine で作成されました。