カメラで本物のダイスを読み取るのは、簡単そうに聞こえます。ダイスを見つけて、出目を読めばいいだけです。しかし実際には、テーブルという環境では、コンピュータービジョンの課題がいくつも同時に生じます。
システムはまず、どの物体がダイスなのかを特定する必要があります。次に、上を向いている面を判断し、回転や視点の違いに対応し、結果を確定する前にダイスが止まったかどうかを判定しなければなりません。
ダイスが違えば、課題も違う
一般的な6面ダイスは、平らな面にドットや数字が刻まれています。ほかのテーブルゲーム用ダイスには、面の数が多いもの、急な角度から見ることになるもの、数字がずっと小さいものもあります。素材もさまざまです。光沢のあるダイス、半透明のダイス、模様入りのダイスは、不透明なダイスとは光の反射の仕方が異なる場合があります。
つまり、実用的なダイス認識システムは、人々が実際に使っているさまざまな種類のダイスで学習させ、テストする必要があるのです。
タイミングも認識の一部
ダイスが転がっている間、カメラには複数の出目の候補が見えることがあります。そのためソフトウェアには、ロールが落ち着いたタイミングを判断する方法が必要です。動きの検出、フレームの履歴、信頼度のスコアリングは、いずれもその判断に役立ちます。
遮蔽も重要な要素です。手がダイスの一部を隠していたり、複数のダイスがすぐ近くに止まったりすることがあります。多くの場合、製品としての正しい振る舞いは、信頼度の低い結果を自信ありげに報告することではなく、確認を求めることです。
なぜ本物のダイスを残すのか
テーブルゲームにとって、目的は単に計算を置き換えることではありません。本物のダイスは、遊びの儀式の一部です。コンピュータービジョンを使えば、プレイヤーが本物のダイスを振る楽しみはそのままに、デジタルのシステムが結果を理解できます。
Realm Kineticsは、この原則を軸にDoungimを開発しています。そのカメラは、テーブル上の物理的な行動とゲームのデジタルの層をつなぐためのものです。
したがって、興味深いエンジニアリングの課題は「カメラは数字を見分けられるか?」ではありません。認識のパイプライン全体が、普段の遊びに溶け込めるほど確実に動作できるかどうかなのです。
