機械学習で「じゃんけんぽん」判定をする

この投稿で紹介した機械学習のデモを使って「じゃんけんぽん」の判定を行ってみました。

この3種類の画像からそれぞれ「グー」、「チョキ」、「パー」を判定させてみます。

今回使う機械学習のデモ

手軽に試せる TensorFlow.js を使いました。
TensorFlow.jsは、JavaScriptの機械学習用のライブラリです。
JavaScriptで機械学習モデルを開発し、ブラウザやNode.jsで機械学習を直接使用することができます。

3種類の手の画像を学習させる

まずは、「グー」の画像を学習させます。
WEBカメラに写した状態でサンプリングを行いそのまま機械学習が行えます。

「トレーニング GREEN」ボタンをクリックした状態でサンプリングが開始し、押している間は連続で取り込まれます。
これを30サンプル以上取り込みます。

今回は限られた条件下でのテストなので撮影のアングルは1種類としました。
一般的にアングルを増やすことで判定時の判別できる許容範囲が広がります。
・・・が、同時に他の種類の手の形との特徴の差が曖昧になるため誤った判断をする確率も高くなるようです。機械学習の難しいところです。

同様に、「チョキ」と「パー」も学習させます。
サンプリングと行いながら学習もしているので判定の信頼性を見ながらサンプリングが行えます。
チョキは、パープル。パーはオレンジに登録しました。

しれっと完成!

3種類の学習が終われば「じゃんけんぽん」判定機は完成です。(4種類登録できるように改良したらどうなるか!?時間があるときにでも試してみたい)

判定を試してみる

「グー」、「チョキ」、「パー」を変えながら試してみました。
このアングルは完璧に判定されています。(これだけで信用してはいけない)

下の動画は別なサンプルを登録して試した際のものですが、「グー」がちょっと怪しい。