画像認識:AIで交通標識を認識できる車を作ろう

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

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

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

ここでは、Teachable Machine で画像を学習させ、学習済みモデルをMind Renderに組み込んでて動かす方法について説明します。

1 必要なもの

  • PC(Windows、macOS)、Chromebook(Teachable Machineでの学習で使用します。)
  • インターネット接続環境

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

1. 新規プロジェクトの作成
ブラウザーで「Teachable Machine 」にアクセスします。
「使ってみる」ボタンを押します。

「新しいプロジェクト」を選択します。

「標準の画像モデル」を選択します。

2. 学習するアクション(クラス)の設定
この例題では、STOP(停止)、RIGHT(右折)、LEFT(左折)という3つの標識を認識させます。それぞれのアクション(クラス)を設定します。

3. 学習データの準備
以下のような標識をMind Renderオブジェクトで準備します。
*学習データ作成用のMind Renderプログラムを公開しています。ご活用ください(プログラム内はWASDキーで移動できます)
 共有コード:AI-TEST
 タイトル:AI学習データ作成用

この標識を様々な角度で100枚程度撮影します。
*画像の撮影は、指定した秒数ごとに画面を連続撮影・保存できるフリーソフトを利用することもできます(例:ShareXなど)
*特定の標識の認識が悪い場合は、その標識のデータ量を増やすとよいでしょう。

4. 学習データの登録
Teachable Machine に作成した学習データを登録します。
画像を保存しているフォルダから複数枚をまとめて登録可能です。

学習データの登録が完了します。

5. トレーニング
モデルをトレーニングします。

*エポック:この値を調整することでモデルの学習精度を調整することができます。値が大きいほどよく学習します。デフォルトは50ですが、サンプルでは200に設定しました。

6. トレーニングの完了と精度の確認
トレーニングが完了したら、精度を確認することができます。サンプルデータを与えて認識率を確認します。

4 モデルをエクスポートする

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

以後の手順は、お使いの環境により異なります。
<iOS、Android、Chromebook、macOSをご利用の場合>
Teachable Machineの学習済みモデルをMind Renderにシームレスに取り込むことができます。比較的簡単なので、こちらをお勧めします。
<Windows、Nintendo Switchをご利用の場合>
Teachable Machineの学習済みモデルをPythonおよびUnity Editorで変換する必要があります。少し手間がかかります。

<iOS、Android、Chromebook、macOSをご利用の場合
 1. Tensorflow Lite、浮動小数点を選択し、「モデルをダウンロード」します。

 2. converted_tflite.zipファイルがダウンロードされるので、展開します。
 3. Mind Renderで利用できるよう、model_unquant.tfliteファイルを外部のクラウドストレージ(Google Drive、Dropbox等)に保存します。
  *labels.txtファイルはMind Renderでプログラムを作成する際に参照します。そのまま置いておきます。

<Windows、Nintendo Switchをご利用の場合
詳細はこちらをご参照ください
 1. Tesorflow、Savedmodelを選択し、「モデルをダウンロード」します。

 2. converted_savedmodel.zipファイルがダウンロードされるので、展開します。
 3. model.savedmodelフォルダをPython環境(3.1011)でONNXに変換します。
  labels.txtファイルはMind Renderでプログラムを作成する際に参照するので、変換する必要はありません。そのまま置いておきます。
 4. ONNXをUnity EditorでSentisに変換します。

 5. Mind Renderで利用できるよう、変換したファイルを外部のクラウドストレージ(Google Drive、Dropbox等)に保存します。

これにより、Mind Renderでモデルを読み込めるようになります。

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

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

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

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

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

[ID] 任意の文字列を入力します(「矢印」など)。同じプログラム内で重複はできず、「TM画像分類結果」ブロックのIDと一対一で対応させる必要があります。
[URL] クラウドストレージに保存した自分の学習モデルの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判定結果」変数の値は、labels.txtの内容に基づいています。
 0 STOP
 1 RIGHT
 2 LEFT

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