2026年10月30日
028-1.CS&AI・Python入門(上級編)-第1回「Teachable Machineを使ってみる」
レゴ エデュケーションの「レゴ エデュケーション コンピューターサイエンス&AI(以後、CS&AI)」には対象年齢に合わせて「小学1~2年生(5+)」「小学3~6年生(8+)」「中学1~3年生(11+)」という3種類のセットがあります。CS&AIのプログラミングは「コーディングキャンバス」というアプリを使うか、Pythonで行います。 今回はPythonを使った上級編のプログラムを紹介したいと思います。
CS&AIの入手方法については次のページを参考にしてください。
◆ 画像認識システムを作りたい
今回、作りたいのはパソコンを使ってCS&AIの機器を動かすという画像認識システムです。具体的な内容は決めていませんが、「カメラの画像に反応してモーターを動かす」ようなものを想定しています。
Pythonのコードで、CS&AIのセンサーやモーターと通信するには「LEGO Education Python API」という公式のライブラリを使います。ライブラリはGitHubで公開されています。
https://github.com/LEGO/LEGOEducation
既にTechブログのGitHubのアカウントに「LEGO Education Python API」を使ったサンプルプログラムを公開しています。
https://github.com/afrel-tech-blog-team/csai-simple-examples
◆ Teachable Machine
このブログで過去に連載したAIカメラの記事(SPIKEプライム+ラズパイ+AIカメラを組み合わせてロボットを作る)では「PyTorch」という機械学習ライブラリを使って、画像認識を行いました。プログラムは「カメラ撮影用」「モデル作成用」「画像認識用」で3つ自作しないといけませんでした。さらに大量の写真をフォルダにまとめて学習したり、非常に手間がかかりました。今回はその手間を省くため、「Google Teachable Machine(以下、Teachable Machine)」を導入したいと思います。Webサイトはこちらです。
https://teachablemachine.withgoogle.com/
「Teachable Machine」は画像認識、音声認識、ポーズ認識のモデルが作れるサイトです。教育現場向けのサイトなので使いやすいです。ユーザー登録なしでサイトが使えます。作ったモデルをダウンロードしたり、JavaScriptやPythonの自作のプログラムで使うことができます。
メニューから「画像プロジェクト」→「標準の画像モデル」を選ぶとモデル作成のページに移行します。
今回、やりたいのはクラウドではなくローカルでの画像認識です。作ったモデルをローカルに保存します。
ページの右上にある「モデルをエクスポートする」をクリックします。 モデルの保存用の画面が表示されます。選択肢がいっぱいありますが、今回はPythonで使いたいので「Tensorflow」タブを選択します。そして、「Keras」ラジオボタンをオン→「モデルをダウンロード」ボタンをクリックします。ダウンロードしたzipファイルを展開すると、「keras_model.h5」と「labels.txt」というファイルが出来上がります。これらのファイルは作業用フォルダに置いておきます。
画面下にある「OpenCV Keras」タブをクリックすると、OpenCVを使ってカメラ撮影をして、画像認識をするサンプルプログラムが表示されます。これをコピーしておきます。
◆ Tensorflowを使って画像認識
エラーが全く解決できず、行き詰っていたのですが、その後、Meqdad Darwishさんという方が作った「teachable-machine」というライブラリを発見しました。
https://pypi.org/project/teachable-machine/
このライブラリを使うと、バージョンの違うライブラリを使っていても「TypeError」の問題を解決できるとのことです。大助かりです。上記のURLで公開されているサンプルプログラムをThonnyのエディタにコピー&ペーストします。 筆者の場合、ノートPCを使っているのですが、「VideoCapture」関数の引数が「0」の場合は備え付けのカメラで撮影します。引数を「1」にすると、USBポートに接続したWebカメラで撮影することができます。
実行中の画面です。最初にワーニングが大量に表示されて心配しましたが、「リンゴ」と「バナナ」の認識に成功しました。表示の「confidence」は「信頼度」という意味です。コンソールでは信頼度は少数(0.0~1.0)で表示されます。カメラの画像では信頼度はパーセントで表示されます。
筆者の使っているパソコンの性能が良くないので、認識が物凄く遅いです。1枚に4秒くらいかかります。下記で紹介しているyoutubeの動画では6倍の速度で再生しています。
これで、センサーやモーターの制御と画像認識の要素技術が一通り準備できました。あとは組み合わせるだけですが、記事が一杯になってしまったので、次回に紹介したいと思います。
動作中の様子です。
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。










