🤖

BOCCO emo:ビジュアルプログラミング ✖️ TM2Scatch で遊んでみる

2024/08/14に公開

はじめに

ユカイ工学からコミュニケーションロボット「BOCCO emo」が発売されています。

そしてBOCCO emoでは、発話やモーションを制御するといったAPI(BOCCO emo Platform API)が公開されています。
以前、そのAPIを使って遊んでいたのですが、最近は触っていませんでした。

https://zenn.dev/takudooon/articles/fc2b8acc7f1bd2

すると最近、公式noteでBOCCO emoがビジュアルプログラミングに対応した、とアナウンスがありました。
どうやら、Scratchベースの環境でプログラミングできるようです。

https://note.com/ux_xu/n/n05bc25db4c46

早速、試してみることにしました。
今回は、その環境内で機械学習を扱うことができる拡張機能「TM2Scratch」で遊んでみました。

https://note.com/kurikit/n/nc65451c5296b

手順

全体

BOCCO emoとビジュアルプログラミング環境のセットアップは公式ページを確認してください。
Teachable Machineで、「Happy」もしくは「Sad」な表情を判定する機械学習モデルを作成します。そしてTM2Scrachをつかってモデルを呼び出します。スペースキーを押した時にプログラムが実行され、カメラ映像に映った顔から「Happy」もしくは「Sad」を判定し、BOCCO emoを発話させる例になります。

モデルの作成

「Happy」もしくは「Sad」な表情を判定する機械学習モデルの作成はこちらを参考にしました。

https://knowledge.insight-lab.co.jp/aidx/google-teachable-machine-how-to-use

Teachable Machineの使い方は、直感的でわかりやすいですね。
モデル構築で使用するデータは、Kaggleのオープンデータを使用しました。

https://www.kaggle.com/datasets/msambare/fer2013

ダウンロードしたデータをそれぞれアップロードして、「モデルをトレーニングする」をクリックして完了するのを待ちます。この処理は多少時間がかかります。

モデル作成完了後は、適当な顔画像をアップロードすると表情に応じて判別できることが確認できます。

このモデルを利用できるように、「モデルをエクスポートする」→「エクスポート」で共有リンクを発行します。

そのURLを「画像分類モデルURL」に入れます。

動作確認

これでスペースキーを押して、カメラに顔向けた時、Happyな表情(笑顔)もしくはSadな表情(悲しい顔)のとき、BOCCO emoがそれぞれのテキストを発話するようになります。

余談:WebカメラがなかったのでIPカメラで代用する

Mac miniを使用していて、Webカメラが手元にありませんでした。
ちょうどIPカメラを動かしていたので、RTSPでストリーミングした映像をOBS Studioで仮想カメラにして、Webカメラの代用にしました。

まず RTSPストリーミングするためVLC Media playerとビデオ録画と生放送用の無料でオープンソースのソフトウェア「OBS Studio」をインストールします。

そして、OBS Studioから

  1. 「ソース」→「+」→「VLCビデオソース」
  2. 「新規作成」

  1. 「VLCビデオソースのプロパティ」画面からプレイリスト横の「+」をクリック
  2. 「パスURLを追加」をクリック

  1. 「rtsp://」から始まるURLを入力し「OK」を選択
  2. メイン画面から、「仮想カメラ開始」を選択

これで設定は終了です。
IPカメラをビジュアルプログラミング環境で使用できるようになります。

おわりに

ビジュアルプログラミングを利用することで、お手軽にBOCCO emoを制御することができました。
初心者のプロトタイピングにはちょうど良さそうです。

Discussion