カメラ画像認識:交通標識を認識できるAIロボットを作ろう
公開プログラム「AIでクローラーを操作」では、Teachable Machineで交通標識の画像を識別できるAIモデルを作成し、スマホのカメラで撮影した物理的な標識画像に従ってTAMIYAのクローラーが右折・左折・停止するプログラムを紹介しています。
Teachable Machineは、Googleが提供する、画像認識や音声認識などのAI(機械学習)モデルを作成できる無料プラットフォームです。予備知識やプログラミングは不要で、ブラウザ上で誰でも簡単にデータ収集、トレーニング、テストが可能で、作成したモデルはダウンロードして外部アプリに組み込んだり、共有することができます。
ここでは、Teachable Machine で画像を学習させ、学習済みモデルをMind Renderに組み込んでクローラーを動かす方法について説明します。

1 必要なもの
- Teachable Machine の利用環境により、手順が異なります。
- (1) iOS、Android、Chromebook、macOSをご利用の場合
Teachable Machineの学習済みモデルをMind Renderにシームレスに取り込むことができます。比較的簡単なので、こちらをお勧めします。 - (2) Windows、Nintendo Switchをご利用の場合
Teachable Machineの学習済みモデルをPythonおよびUnity Editorで変換する必要があります。少し手間がかかります。
- (1) iOS、Android、Chromebook、macOSをご利用の場合
- TAMIYA マイコンロボット工作セット (クローラータイプ) (Item No: 71201)
*ご注意:この例題では、BBC micro:bit (V2) を使用します。micro:bit(v1)が使用されている場合は、別途micro:bit (V2)をご用意ください。 - 単3乾電池2本(BBC micro:bit 用)
- BBC micro:bit 用 hex ファイル(詳しくは下記3をご覧ください)
- Windows PCまたはMac(hexファイルのインストールに必要です)
2 Teachable Machine で画像識別モデルを作成する
*以下の説明は、2026年2月現在のTeachable Machine公式サイトの内容に基づいています。
1. 新規プロジェクトの作成
ブラウザーで「Teachable Machine 」にアクセスします。
「使ってみる」ボタンを押します。

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

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

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

3. 学習データの準備
以下のような標識を印刷物など実物で準備します。

4. 学習データの撮影
これらの標識を撮影します。
Teachable Machine の「画像サンプルを追加する」で「ウェブカメラ」を選択し、「長押しして録画」します。多数の画像が一度に撮影されます。

画像が学習データとして登録されます。

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

*エポック:この値を調整することでモデルの学習精度を調整することができます。値が大きいほどよく学習します。デフォルトは50ですが、サンプルでは200に設定しました。
6. トレーニングの完了と精度の確認
トレーニングが完了したら、精度を確認することができます。カメラで標識を撮影して認識率を確認します。

7. モデルのエクスポート
「モデルをエクスポートする」ボタンを押します。
以後の手順は、お使いの環境により異なります。
<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でモデルを読み込めるようになります。
3 Mind Render でモデルを読み込み、カメラ画像認識を実行する
ここから、Mind Renderでの作業となります。(ver2.3.16以降をご使用ください)
ストレージに保存したモデルをMind Renderで読み込み、Mind Renderに接続したロボットがスマホカメラで物理的な標識を識別し、その結果に従って右折・左折・停止するプログラムを作ります。
ここでは、モデルの読み込みと分類結果の取得で使用する命令を説明します。プログラムの詳細は、以下をご参照ください。
あそぶ>MIT提供>AIでクローラーを操作
ここから、Mind Renderでの作業となります。(ver2.3.16以降をご使用ください)
ストレージに保存したモデルをMind Renderで読み込み、Mind Render内でオブジェクトが標識に近づいたら識別し、その結果に従って右折・左折・停止するプログラムを作ります。
ここでは、モデルの読み込みと分類結果の取得で使用する命令を説明します。プログラムの詳細は、以下のラボをご参照ください。
つくる>新しいオブジェクト>49. AIで標識を判断しよう!
1. モデルの読み込み
モデルの読み込みには以下の命令を使用します。(「テクニック」カテゴリ)
[ID] 任意の文字列を入力します(「矢印」など)。同じプログラム内で重複はできず、「TMカメラ画像分類結果」ブロックのIDと一対一で対応させる必要があります。
[URL] クラウドストレージ(Google Driveなど)に保存した学習モデルのURLをコピー&ペーストします。
[強制読み込み] onにすると、プログラムをスタートするたびに学習モデルを再読み込みします。デフォルトはoffです。

*ご注意*
・Dropboxから貼り付ける場合:URLを貼り付けた後、末尾の「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}
2. 分類結果の取得
分類結果を取得するには以下の命令を使用します。
[ID] 「TM学習モデルを読み込む」で設定したIDと同じIDを入力します。(例えば「TM学習モデルを読み込む」のIDを「矢印」としたら、「TMカメラ画像分類結果」のIDも「矢印」とする)
[しきい値] 設定されている値を超えた場合のみ、判定します。デフォルト値は60%です。(例えば、「→」「←」という画像を認識させる場合、「→」の認識率が60%を超えた場合のみ「→」と判定する)

<公開プログラムについて補足>
・公開プログラム「AIでクローラーを操作」では、標識を認識するタイミングを決めるため、待機(2秒)→前方の標識を認識して動く(2秒)→待機(2秒)・・・を繰り返すようにしています。
・「画像ID」変数の値は、labels.txtの内容に基づいています。
0 STOP
1 LEFT
2 RIGHT
3 GO
*このモデルは Google Teachable Machine で作成されました。
