(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156762
(43)【公開日】2024-11-06
(54)【発明の名称】自動テーブルゲーム行動認識のためのシステムおよび方法
(51)【国際特許分類】
A63F 1/06 20060101AFI20241029BHJP
A63F 9/00 20060101ALI20241029BHJP
G06Q 50/10 20120101ALI20241029BHJP
【FI】
A63F1/06 Z
A63F1/06 A
A63F9/00 513
G06Q50/10
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2024121001
(22)【出願日】2024-07-26
(62)【分割の表示】P 2022133902の分割
【原出願日】2017-05-16
(31)【優先権主張番号】2016901829
(32)【優先日】2016-05-16
(33)【優先権主張国・地域又は機関】AU
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000103301
【氏名又は名称】エンゼルグループ株式会社
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(72)【発明者】
【氏名】ヴォ,ニャット ディン ミン
(72)【発明者】
【氏名】チャラ,サブハッシュ
(72)【発明者】
【氏名】リ,ジ
(57)【要約】 (修正有)
【課題】自動ゲーム認識のためのシステム、方法及びコンピュータ可読媒体を提供する。
【解決手段】いくつかの実施形態に係るシステムは、テーブルゲームを含む視野の画像フレームを捕捉するように構成される少なくとも1つの画像センサと、視野の視野像の奥行きを捕捉するように構成される少なくとも1つの奥行きセンサと、画像フレームおよび視野像の奥行きを受信するように構成され、かつ視野内に現れる少なくとも1つのゲーム状態の自動認識を生成するために、受信した画像フレームおよび視野像の奥行きを処理するように構成されるコンピューティングデバイスとを備える。さらなる実施形態は、ゲームテーブル上でのゲームプレイおよび/またはゲームイベントをモニタするための方法およびシステムに関する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ゲームテーブルのテーブル表面上でのゲームプレイをモニタする方法であって、
少なくとも1つのカメラと通信状態にあるコンピューティングデバイスによって、前記少なくとも1つのカメラにより捕捉された前記テーブル表面の画像を、リアルタイムに受信することと、
前記テーブル表面の少なくとも1つの捕捉画像をリアルタイムに分析して、前記テーブル表面上のゲーム対象物の存在を識別することと、ここで、前記ゲーム対象物はカード又はチップであり、
前記テーブル表面上のゲーム対象物の存在を識別することに基づいて、前記識別されたゲーム対象物の少なくとも1つの視覚的特徴と、所定のゲーム開始トリガ作動ゲーム対象物に関して記憶された構成データとを比較することにより、前記識別されたゲーム対象物が、ゲーム開始トリガ作動ゲーム対象物であるかを決定することと、
前記識別されたゲーム対象物が、前記ゲーム開始トリガ作動ゲーム対象物であると決定されることに応じて、ゲーム開始イベントが発生したことを決定し、ゲームイベントのためのタイムスタンプを記録することと、
前記コンピューティングデバイスによって、ゲームイベントデータをサーバに送信することであって、前記ゲームイベントデータが前記ゲーム開始イベントの指標と、前記ゲームイベントの前記タイムスタンプとを含む、送信することと、
を含む、方法。
【請求項2】
前記テーブル表面の少なくとも1つの捕捉画像をリアルタイムに分析して、ゲーム開始トリガ作動ゲーム対象物が前記テーブル表面上に存在しないと識別することと、
ゲーム開始トリガ作動ゲーム対象物が前記テーブル表面上に存在しないと識別されることに応じて、ゲーム終了イベントが発生したことを決定し、ゲームイベントのためのタイムスタンプを記録することと、
前記コンピューティングデバイスによって、ゲームイベントデータをサーバに送信することであって、前記ゲームイベントデータが前記ゲーム終了イベントの指標と、前記ゲームイベントの前記タイムスタンプとを含む、送信することと、
を更に含む、請求項1に記載の方法。
【請求項3】
前記識別されたゲーム対象物が、ゲーム開始トリガ作動ゲーム対象物であるかを決定することは、
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することと、
前記事前処理画像内で少なくとも1つの輪郭を識別することと、
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較して、ゲーム開始トリガ作動ゲーム対象物と前記輪郭が関連するかを決定することと、
を含む、請求項1又は2に記載の方法。
【請求項4】
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することは、
前記捕捉画像にCannyエッジ検出処理を実行すること
を含む、請求項3に記載の方法。
【請求項5】
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することは、
エッジセグメント間の任意の穴を除去するために前記Cannyエッジ検出処理の出力を膨張すること
を更に含む、請求項4に記載の方法。
【請求項6】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画されたエリアを、前記ゲーム開始トリガ作動ゲーム対象物の予期されるサイズと対応する予め決定されたエリアと比較すること
を含む、請求項3~5のいずれか一項に記載の方法。
【請求項7】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画される頂点の数を、前記ゲーム開始トリガ作動ゲーム対象物の予期される頂点の数と対応する予め決定された頂点の数と比較すること
を含む、請求項3~6のいずれか一項に記載の方法。
【請求項8】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画される結合エッジ間の角度のコサインを、予め決定された数値と比較すること
を含む、請求項3~7のいずれか一項に記載の方法。
【請求項9】
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することは、
前記捕捉画像にグローバル閾値化処理を実施すること
を含む、請求項3~8のいずれか一項に記載の方法。
【請求項10】
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することは、
前記捕捉画像を浸食して、予め決定されたサイズより小さい対象物を除去することを含む、請求項9に記載の方法。
【請求項11】
前記ゲーム開始トリガ作動ゲーム対象物はカードである、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記テーブル表面の前記画像は、色画像、グレースケール画像、又は赤外線画像のいずれかである、請求項1~11のいずれか一項に記載の方法。
【請求項13】
コンピュータによって実行された際に、前記コンピュータに請求項1~12のいずれか一項に記載の方法を実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項14】
ゲームテーブルのテーブル表面上でのゲームプレイをモニタするシステムであって、
前記テーブル表面の画像を捕捉するように構成されている少なくとも1つのカメラと、
前記少なくとも1つのカメラと通信状態にあるコンピューティングデバイスであって、前記コンピューティングデバイスが、
前記少なくとも1つのカメラにより捕捉された前記テーブル表面の画像を、リアルタイムに受信することと、
前記テーブル表面の少なくとも1つの捕捉画像をリアルタイムに分析して、前記テーブル表面上のゲーム対象物の存在を識別することと、ここで、前記ゲーム対象物は、カード又はチップであり、
前記テーブル表面上のゲーム対象物の存在を識別することに基づいて、前記識別されたゲーム対象物の少なくとも1つの視覚的特徴と、所定のゲーム開始トリガ作動ゲーム対象物に関して記憶された構成データとを比較することにより、前記識別されたゲーム対象物が、ゲーム開始トリガ作動ゲーム対象物であるかを決定することと、
前記識別されたゲーム対象物が、前記ゲーム開始トリガ作動ゲーム対象物であると決定することに応じて、ゲーム開始イベントが発生したことを決定し、ゲームイベントのためのタイムスタンプを記録することと、
ゲームイベントデータをサーバに送信することであって、前記ゲームイベントデータが前記ゲーム開始イベントの指標と、前記ゲームイベントの前記タイムスタンプとを含む、送信することと、
を実行するよう構成されているコンピューティングデバイスと、
を備えるシステム。
【請求項15】
前記コンピューティングデバイスが、更に、
前記テーブル表面の少なくとも1つの捕捉画像をリアルタイムに分析して、ゲーム開始トリガ作動ゲーム対象物が前記テーブル表面上に存在しないと識別することと、
ゲーム開始トリガ作動ゲーム対象物が前記テーブル表面上に存在しないと識別されることに応じて、ゲーム終了イベントが発生したことを決定し、ゲームイベントのためのタイムスタンプを記録することと、
ゲームイベントデータをサーバに送信することであって、前記ゲームイベントデータが前記ゲーム終了イベントの指標と、前記ゲームイベントの前記タイムスタンプとを含む、送信することと、
を実行するように構成されている、請求項14に記載のシステム。
【請求項16】
前記識別されたゲーム対象物が、ゲーム対象物を初期化するゲーム開始トリガであるかを決定することは、
前記少なくとも1つの捕捉画像を事前処理して事前処理画像を取得することと、
前記事前処理画像内で少なくとも1つの輪郭を識別することと、
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較して、前記輪郭がゲーム開始トリガ作動ゲーム対象物と関連するかを決定することと、
を含む、請求項14又は15に記載のシステム。
【請求項17】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画されたエリアを、前記ゲーム開始トリガ作動ゲーム対象物の予期されるサイズと対応する予め決定されたエリアと比較すること
を含む、請求項16に記載のシステム。
【請求項18】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画される頂点の数を、前記ゲーム開始トリガ作動ゲーム対象物の予期される頂点の数と対応する予め決定された頂点の数と比較すること
を含む、請求項16又は17に記載のシステム。
【請求項19】
前記少なくとも1つの輪郭を少なくとも1つの輪郭基準と比較することは、
前記輪郭により区画される結合エッジ間の角度のコサインを、予め決定された数値と比較すること
を含む、請求項16~18のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 説明される実施形態は、概して、テーブルゲームをモニタすることに関する。具体的には、実施形態は、賭博場におけるテーブルゲーム内のイベントをモニタするためのシステムおよび方法に関する。
【背景技術】
【0002】
[0002] カジノおよびその他同様の会場は、現在、プレイヤをモニタし自らのビジネス戦略を計画することを目的として監視技術および他の管理ソフトウェアを使用している。これらの会場では、プレイヤ収益を最大限にするため、人員配置を最適化するため、および会場収益を最大限にするゲームの種類に対する会場フロアスペースの割り当てを最適化するために、リアルタイム行動分析、アルゴリズム(またはプロセス)、およびプレイヤ追跡技術を配備することを目指している。大半のカジノ常連客は、コイン、紙幣、またはチケットの代わりにプレイヤカードを使用することが求められるロイヤルティプログラムに参加している。これによりカジノは、個々のギャンブル行動を記録および分析し、プレイヤプロファイルを作成し、各賭け客が賭ける金額、賭け客の勝敗、および賭け客がスロットマシンボタンを押す比率などの事柄を記録する機会を得てきた。しかしながら、テーブルゲームは、スロットマシン、またはボタン操作されるゲームマシンのいずれかと比較すると、モニタすることが容易ではない。
【0003】
[0003] テーブルゲームをモニタおよび管理するためのシステムは、典型的には、設置および保守が高価であることが示されており、真に有益であることが必要とされる正確性レベルを達成することができていない。他の選択肢としては、カジノチップ内にセンサを設けること、および他のオフライン収益管理ソリューションが挙げられるが、これらは非効果的であることが示されている。賭博場の運営環境は、多くの視覚的および聴覚的なノイズおよび妨害を伴い、展開が速く、カードおよび賭けチップはテーブル上に乱雑に置かれる場合があり、照明は著しく変化し得る。
【0004】
[0004] カジノまたは他のこうした賭博場は、プレイヤが特定のイベントの発生または非発生に対して賭けることに関与するバカラ、ブラックジャック、ルーレットなどのいくつかのテーブルベースのゲームを執り行う。個々のゲームは、ゲームを開始する、ゲーム中に行われた賭けの結果を決定する、またはゲームを終了するという規定イベントの独自のセットを有する。大半のゲームは、ゲームを開始する、行われた賭けの結果を決定するイベントをトリガする、またはゲームを終了することができる各ゲームに対する特定の行動を請け負う指定のディーラによって行われる。
【0005】
[0005] カジノおよび他のこうした賭博場は、ゲームテーブルまたは競技面上で発生するイベントと関連付けられたトランザクションデータを確認することに興味がある。この情報は、カジノのビジネス戦略の計画、およびプレイヤの行動を監視することを援助することができる。テーブル上のゲームのイベントおよび結果に関する情報は、最適な人員配置、特定のゲームに対するフロアスペース割り当て、および他のこうした収益向上またはパトロン体験向上決定をカジノが確認するための基盤を形成することができる。カジノによって用いられるゲームテーブル上で発生するイベントと関連付けられたトランザクションデータを確認する1つの方法は、個人がテーブルの一部分で起こっているイベントを目視検証し、その観察した情報を報告するという無作為抽出である。報告された情報は外挿されて、カジノ内のテーブル上の活動の全体的なレベルを予測することができる。しかしながら、そのような目視検証は、1時間またはそれ以上の間隔で発生し、人間による判断を頼りにするため、そのような方法には非効率性が存在し得る。
【0006】
[0006] テーブルゲームをモニタおよび管理するためのシステムは、典型的には、設置および保守が高価であることが示されており、真に有益であることが必要とされる正確性レベルを達成することができていない。他の選択肢としては、カジノチップ内にセンサを設けること、および他のオフライン収益管理ソリューションが挙げられるが、これらは非効果的であることが示されている。賭博場の運営環境は、多くの視覚的および聴覚的なノイズおよび妨害を伴い、展開が速く、カードおよび賭けチップはテーブル上に乱雑に置かれる場合があり、照明は著しく変化し得る。
【発明の概要】
【発明が解決しようとする課題】
【0007】
[0007] 賭博場におけるテーブルゲーム内のイベントをモニタするための先行技術に関連する1つまたは複数の短所または欠点を解決もしくは改善する、または少なくとも、有益な代替案を提供することが望ましい。
【0008】
[0008] 本明細書全体を通して、用語「備える(comprise)」、または「備える(comprises)」もしくは「備える(comprising)」などの変形は、述べられた要素、整数、もしくは工程、または要素、整数、もしくは工程の群の包含を示唆するが、任意の他の要素、整数、もしくは工程、または要素、整数、もしくは工程の群の排除を示唆しないことが理解されるものとする。
【0009】
[0009] 本明細書において、要素が選択肢のリスト「のうちの少なくとも1つ」であり得るという記述は、その要素が、列挙された選択肢のうちの任意の1つであり得ること、または列挙された選択肢のうちの2つ以上の任意の組み合わせであり得ることが理解される。
【0010】
[0010] 本明細書に含まれている文書、法令、材料、デバイス、物品などのいかなる議論も、これら事項のいずれかもしくはすべてが先行技術ベースの部分を形成するという承認、またはそれが本出願の各請求の優先日付より前に存在したことから本開示に関連する分野における共通の一般知識であるという承認として受け止られないものとする。
【課題を解決するための手段】
【0011】
[0011] 第1の態様によると、いくつかの実施形態は、自動ゲーム認識のためのシステムを提供し、本システムは、テーブルゲームを含む視野の画像フレームを捕捉するように構成される少なくとも1つの画像センサと、視野の視野像の奥行きを捕捉するように構成される少なくとも1つの奥行きセンサと、画像フレームおよび視野像の奥行きを受信するように構成され、かつ視野内に現れる少なくとも1つのゲーム状態の自動認識を生成するために、受信した画像フレームおよび視野像の奥行きを処理するように構成されるコンピューティングデバイスとを備える。
【0012】
[0012] 第2の態様によると、いくつかの実施形態は、自動ゲーム認識の方法を提供し、本方法は、テーブルゲームを含む視野の画像フレームを獲得することと、視野の視野像の奥行きを獲得することと、視野内に現れる少なくとも1つのゲーム状態の自動認識を生成するために、受信した画像フレームおよび視野像の奥行きを処理することとを含む。
【0013】
[0013] さらなる態様によると、いくつかの実施形態は、自動ゲーム認識のための非一時的コンピュータ可読媒体を提供し、本非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されるとき、テーブルゲームを含む視野の画像フレームを獲得することと、視野の視野像の奥行きを獲得することと、視野内に現れる少なくとも1つのゲーム状態の自動認識を生成するために、受信した画像フレームおよび視野像の奥行きを処理することとの実施を引き起こす、命令を含む。
【0014】
[0014] 画像フレームは、可視スペクトル内の画像もしくは可視スペクトルを構成する画像を含むことができるか、または赤外線もしくは紫外線画像を含むことができる。視野像の奥行きは、視野の飛行時間データ点および/またはフィールドの奥行きを反映する位相情報データ点を含むことができる。視野内に現れる少なくとも1つのゲーム状態は、ゲーム開始、チップ検出、チップ値予測、チップ積み重ね高さ予測、およびゲーム終了のうちの1つもしくは複数またはすべてを含むことができる。ゲーム開始および/またはゲーム終了は、カード検出またはドリー検出によって成立され得る。テーブルゲームは、ポーカー、ブラックジャック、もしくはバカラなどのカードゲーム、またはルーレットなどの非カードベースのゲームであってもよい。
【0015】
[0015] いくつかの実施形態は、ゲームテーブルのテーブル表面上でのゲームプレイをモニタする方法に関し、本方法は、テーブル表面の捕捉画像をリアルタイムで分析して、テーブル表面上の目的とする複数の第1の予め規定された領域のうちのいずれか1つにおけるゲーム対象物の存在を識別することと、目的とする複数の第1の予め規定された領域のうちのいずれか1つにおいて存在すると識別されているゲーム対象物に応じて、ゲームイベントのタイムスタンプを記録することと、ゲームイベントデータをサーバに送信することであって、ゲームイベントデータが、タイムスタンプ、ゲームイベントの指標、および目的とする複数の第1の予め規定された領域のうちのいずれか1つの識別子を含む、送信することと、を含む。
【0016】
[0016] ゲーム対象物は、ゲームカードまたは位置マーカであってもよい。分析することは、テーブル表面上の少なくとも1つの賭け対象物の存在を識別することを含み得る。少なくとも1つの賭け対象物は、ゲーム対象物と異なってもよい。少なくとも1つの賭け対象物の存在は、目的とする複数の第2の予め規定された領域のうちの1つまたは複数において識別され得る。分析することは、目的とする1つまたは複数の第2の予め規定された領域内の賭け対象物の1つまたは複数の群を識別することを含み得る。
【0017】
[0017] 分析することは、テーブル表面に対する賭け対象物の1つまたは複数の群の各々の高さを予測することと、賭け対象物の各群内に存在する賭け対象物の数を予測することとをさらに含み得る。分析することは、賭け対象物の各群の一番上の賭け対象物の色を識別することをさらに含み得る。
【0018】
[0018] 本方法は、少なくとも1つの賭け対象物の存在が識別される目的とする各第2の予め規定された領域と関連付けられた賭け金を自動的に予測することをさらに含み得、この予測することは、賭け対象物の各群の一番上の賭け対象物の識別された色、および目的とするそれぞれの第2の領域内の賭け対象物の各群内の賭け対象物の予測された数に基づく。
【0019】
[0019] 捕捉画像は、マルチスペクトル画像を含み得、分析することは、テーブル表面上の複数の目的とする第1の予め規定された領域または目的とする第2の予め規定された領域のうちのいずれか1つにおけるゲーム対象物の存在を識別するために、マルチスペクトル画像のマルチフレーム処理をさらに含み得る。
【0020】
[0020] いくつかの実施形態は、ゲームテーブルのテーブル表面上でのゲームプレイをモニタするシステムに関し、本システムは、テーブル表面の画像を捕捉するように構成される少なくとも1つのカメラと、カメラと通信状態にあるコンピューティングデバイスであって、テーブル表面の捕捉画像をリアルタイムに分析して、テーブル表面上の目的とする複数の第1の予め規定された領域のうちのいずれか1つにおけるゲーム対象物の存在を自動的に識別するように構成されるコンピューティングデバイスと、を備える。
【0021】
[0021] ゲーム対象物は、例えば、ゲームカードまたは位置マーカであってもよい。コンピューティングデバイスは、テーブル表面上の賭け対象物のうちの少なくとも1つの存在を識別するように構成され得る。賭け対象物のうちの少なくとも1つは、ゲーム対象物と異なってもよい。少なくとも1つの賭け対象物の存在は、目的とする複数の第2の予め規定された領域のうちの1つまたは複数においてコンピューティングデバイスによって識別される。コンピューティングデバイスは、目的とする1つまたは複数の第2の予め規定された領域内の賭け対象物の1つまたは複数の群を識別するように構成され得る。
【0022】
[0022] 少なくとも1つのカメラは、テーブル表面に対するゲーム対象物の奥行きデータをコンピューティングデバイスに通信するための奥行き感知デバイスをさらに備え得る。コンピューティングデバイスは、テーブル表面に対する賭け対象物の1つまたは複数の群の各々の高さを予測するようにさらに構成され得る。コンピューティングデバイスは、賭け対象物の各群内に存在する賭け対象物の数を予測するようにさらに構成され得る。コンピューティングデバイスは、賭け対象物の各群の一番上の賭け対象物の色を識別するようにさらに構成され得る。
【0023】
[0023] コンピューティングデバイスは、少なくとも1つの賭け対象物の存在が識別される目的とする各第2の予め規定された領域と関連付けられた賭け金を自動的に予測するように構成され得、この予測することは、賭け対象物の各群の一番上の賭け対象物の識別された色、および目的とするそれぞれの第2の領域内の賭け対象物の各群内の賭け対象物の予測された数に基づく。
【0024】
[0024] 捕捉画像は、マルチスペクトル画像を含み得、コンピューティングデバイスは、テーブル表面上の複数の目的とする第1の予め規定された領域または目的とする第2の予め規定された領域のうちのいずれか1つにおけるゲーム対象物の存在を識別するために、マルチスペクトル画像のマルチフレーム処理を実施するように構成され得る。
【0025】
[0025] いくつかの実施形態は、ゲームテーブル上のゲームイベントを自動モニタするためのシステムに関し、本システムは、ゲームテーブルのゲーム領域上の複数のゲーム対象物の奥行きを捕捉するように構成される奥行き撮像デバイスと、ゲーム領域の視覚画像を捕捉するように構成される複数の視覚撮像カメラと、ゲーム構成モジュールであって、複数のゲーム、ゲームテーブルの構成、目的とする領域の場所、ゲーム対象物を認識するためのパターン、およびゲームテーブル上のゲーム対象物の状態の変化としてのゲームイベントの定義と関連付けられた構成データを含む、ゲーム構成モジュールと、奥行き撮像デバイスおよび複数の視覚撮像カメラからデータを受信し、ゲーム構成モジュール内の構成データにアクセスして、ゲーム領域上の対象物およびゲーム中に発生するゲームイベントを自動的に認識するように構成される、コンピュータシステムと、を備える。
【0026】
[0026] 本明細書に説明される方法は、完全に自動化され得るため、ゲーム行動モニタリングは、人間による判断または介入のいかなる必要性もなしに発生することができる。しかしながら、賭けのためおよびカードまたはドリーなどのゲーム対象物の位置特定のための目的とする領域を確立することなど、いくつかの人間による相互作用が、システム構成工程内で発生し得る。
【図面の簡単な説明】
【0027】
【
図1】[0027] ゲームモニタリングシステムのブロック図である。
【
図2】[0028]
図1のゲームモニタリングシステムの部分を形成する、自動テーブルゲーム認識のためのシステムの概略図である。
【
図3】[0029]
図1のシステムのゲーム環境の部分を形成し得るゲームテーブルの表面の画像である。
【
図4】[0030]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの表面の画像である。
【
図5】[0031]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの表面の画像である。
【
図6】[0032]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの表面の画像である。
【
図7】[0033]
図1のシステムにおける使用のための奥行き感知デバイスおよびカメラのブロック図である。
【
図8】[0034] いくつかの実施形態に従う奥行き感知デバイスおよびカメラのハウジングの内側の正面図である。
【
図9】[0035]
図1のシステムのコンピューティングデバイスのブロック図である。
【
図10】[0036]
図1のシステムのメッセージブローカサーバのブロック図である。
【
図11】[0037]
図1のシステムのデータベースサーバのブロック図である。
【
図12】[0038]
図1のシステムのウェブアプリケーションサーバのブロック図である。
【
図13】[0039]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの構成を管理するためのインターフェースを示すウェブアプリケーションのスクリーンショットである。
【
図14】[0040]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの構成を管理するためのインターフェースを示すウェブアプリケーションの別のスクリーンショットである。
【
図15】[0041]
図1のシステムのゲーム環境の部分を形成し得る別のゲームテーブルの構成を管理するためのインターフェースを示すウェブアプリケーションの別のスクリーンショットである。
【
図16】[0042] サンプル画像に対する数種類の閾値化操作の結果を例証するための画像のセットである。
【
図17】[0043] サンプル画像に対するさらなる種類の閾値化操作の結果を例証するための画像のセットである。
【
図18】[0044] サンプル画像に対する浸食および膨張演算の結果を例証するための画像のセットである。
【
図19】[0045] エッジ検出プロセスのフローチャートである。
【
図20】[0046]
図19のプロセスの部分におけるエッジ検出を例証するための図である。
【
図21】[0047]
図19のエッジ検出プロセスに適用される例示的な基準を例証するための例示的なグラフである。
【
図22】[0048] 異なるパラメータを用いたサンプル画像に対する輪郭検出の適用を例証するための画像のセットである。
【
図23(a)】[0049] 平面予測プロセスが適用されることになる点のセットのプロットである。
【
図23(b)】[0050] 平面予測プロセスの適用の結果、および
図23(a)のプロットに示される点までの予測平面の直交距離のプロットである。
【
図24】[0051] いくつかの実施形態に従うゲームモニタリングシステムのフローチャートである。
【
図25】[0052] さらなる実施形態に従うゲームモニタリングシステムのフローチャートである。
【
図26(a)】[0053] 別のゲームテーブルに対するいくつかのカード検出プロセスの適用を例証する画像フレームである。
【
図26(b)】別のゲームテーブルに対するいくつかのカード検出プロセスの適用を例証する画像フレームである。
【
図27(a)】[0054] カードおよびチップ検出プロセスが適用され得る別のゲームテーブルの画像フレームである。
【
図27(b)】[0055]
図27(a)の画像フレームに閾値化技術を提供することによって得られる
図27(a)のゲームテーブルの画像フレームである。
【
図28(a)】[0056] 別のゲームテーブルに対するいくつかのカードおよびチップ検出プロセスの適用を例証する、赤外線カメラによって得られる画像フレームである。
【
図28(b)】別のゲームテーブルに対するいくつかのカードおよびチップ検出プロセスの適用を例証する、赤外線カメラによって得られる画像フレームである。
【
図29(a)】[0057] チップ検出プロセスへの入力であり得る画像フレームである。
【
図29(b)】[0058]
図29(a)の画像フレームに対する2値閾値化操作の適用により得られる画像フレームである。
【
図29(c)】[0059]
図29(b)の画像フレームに対する浸食演算の適用により得られる画像フレームである。
【
図29(d)】[0060]
図29(c)の画像フレームに対する膨張演算の適用により得られる画像フレームである。
【
図29(e)】[0061]
図29(a)の入力画像フレームに対するチップ検出プロセスの適用の結果を例証する画像フレームである。
【
図30】[0062] ゲームテーブルの視野の部分が妨害されている、ゲームテーブルに対するチップ検出プロセスの適用の結果を例証する画像フレームである。
【
図31】[0063]
図30(a)における妨害が画像フレーム内になくなった後に得られた
図30(a)のゲームテーブルのチップ検出プロセスの適用の結果を例証する画像フレームである。
【
図32】[0064] 入力画像フレームが視覚画像カメラによって捕捉される画像に基づく、ゲームテーブルに対するチップ検出プロセスの適用の結果を例証する画像フレームである。
【
図33】[0065] 入力画像フレームが赤外線カメラによって捕捉される画像に基づく、
図32のゲームテーブルに対するチップ検出プロセスの適用の結果を例証する画像フレームである。
【
図34】[0066] いくつかの実施形態に従うマルチフレーム処理技術のフローチャートである。
【発明を実施するための形態】
【0028】
[0067] 説明される実施形態は、概して、テーブルゲームをモニタすることに関する。具体的には、実施形態は、賭博場におけるテーブルゲーム内のイベントをモニタするためのシステムおよび方法に関する。
【0029】
[0068] ゲームモニタリングシステム:
図1は、いくつかの実施形態に従うゲームモニタリングシステム100のブロック図である。システム100は、複数のゲームモニタリング設定105、ゲームモニタリングインフラストラクチャ115、アドミニストレータクライアント170、およびデータベースクライアント180を備え得る。ゲームモニタリング設定105は、ゲーム環境110、奥行き感知デバイスおよびカメラ120、ならびにコンピューティングデバイス130を含む。システム100は、カジノなどの賭博場の1つまたは複数のゲームルーム内での設置および運用に適している。ゲームルームは各々、1つまたは複数のゲームテーブルがその中に位置付けられており、それらのテーブルのうちのいくつかまたは各々が、それぞれのゲームモニタリング設定105の部分を形成し得る。Microsoft(商標)KinectまたはAsus(商標)XtionまたはInfineon(商標)3D画像センサREAL3(商標)などの市販のデバイス、カメラ機能付きの他の同様の奥行き感知デバイスが、例えば、奥行き感知デバイスおよびカメラとして用いられ得る。奥行き感知デバイスおよびカメラ120は、コンピューティングデバイス130と連結または接続されて、リンク107を使用してコンピューティングデバイス130から命令を受信し、記録されたデータをコンピューティングデバイス130に送信する。例えば、Microsoft(商標)Kinectデバイスは、コンピューティングデバイス上のUSBポートを使用してコンピューティングデバイスに接続され得る。
【0030】
[0069] 賭博場は、複数のゲーム環境、例えばテーブルゲームが競技されるエリアまたはルームを有し得、それらのゲーム環境の1つずつをモニタするために、複数のゲームモニタリング設定105が存在し得る。複数のゲームモニタリング設定105は、ネットワークリンク187を使用して共通のゲームモニタリングインフラストラクチャ115と連結またはリンクされ得る。ネットワークリンク187は、コンピューティングデバイス130とメッセージブローカサーバ140との間のネットワークリンク117、およびデータベースサーバ150とコンピューティングデバイス130との間のネットワークリンク167を含む。ゲームモニタリングインフラストラクチャ115はまた、2つ以上の異なる賭博場内のゲームモニタリング設定105と連結またはリンクされ得る。賭博場が多数のゲーム環境110を有し得るいくつかの実施形態においては、複数のゲームモニタリングインフラストラクチャ115が、同じ会場内のゲームモニタリング設定105の異なる一部分と連結され得る。
【0031】
[0070] ゲームモニタリングインフラストラクチャ115は、メッセージブローカサーバ140、データベースサーバ150、およびウェブアプリケーションサーバ160を含む。メッセージブローカサーバ140は、二方向ネットワークリンク117を介して複数のコンピューティングデバイス130に接続され得る。ネットワークリンク127は、データまたは命令の転送を可能にするためにメッセージブローカサーバ140とデータベースサーバ150との間に存在し得る。ネットワークリンク137は、データまたは命令の転送を可能にするためにウェブアプリケーションサーバ160とデータベースサーバ150との間に存在し得る。サーバ140、150、および160の各々は、スタンドアローンサーバとして実装され得るか、または1つもしくは複数の物理サーバ上の明白な仮想サーバとして実装され得るか、またはクラウドコンピューティングサービス内に実装され得る。サーバ140、150、および160の各々はまた、改善された性能または高いアベイラビリティ要件を取り扱うように構成される2つ以上のサーバのネットワークを通じて実装され得る。
【0032】
[0071] アドミニストレータクライアント170は、コンピュータまたはタブレットなどのエンドユーザコンピューティングデバイスであってもよく、例えば、ネットワークリンク147を介してウェブアプリケーションサーバ160に接続され得る。データベースクライアント180は、他のエンドユーザコンピューティングデバイスまたは他のデータベースにデータをリレーするためのエンドユーザコンピューティングデバイスまたはインターフェースであってもよく、ネットワークリンク157を介してデータベースサーバ150に接続され得る。
【0033】
[0072] ゲーム環境:ゲーム環境110の構成は、執り行われている特定のゲームに応じて様々であり得るが、本実施形態のいずれか1つによってモニタされる大半のゲームは、共通の要素を有する。
図2は、いくつかの実施形態に従う自動テーブルベーム認識のためのシステム200を例証する。現在説明される本発明の実施形態のシステムの主な機能は、ゲームが開始および終了するときを検出すること、置かれたチップの場所を検出すること、ならびにチップ積み重ねの値および高さ(チップがいくつかであるか)を予測することである。このシステムは、画像処理技術および感知デバイス機能の組み合わせに基づく。
【0034】
[0073] ゲーム環境110は、ゲームが執り行われる競技面またはゲームテーブル210を含む。競技面210は、一般的には略水平な平面表面であり、その上には、ゲームモニタリングシステム100によって検出され得るカード211もしくはチップ213などの様々なゲーム対象物または他の対象物が置かれている場合がある。奥行き感知デバイスおよびカメラ120は、奥行き感知デバイスおよびカメラ120を奥行き感知デバイスの視野内の任意の障害物の上に位置付けるような高さで支柱または柱220に装着され得、奥行き感知デバイスおよびカメラ120の視野をゲームテーブル210に向かっていくらか下方に向けるように角度付けされ得る。障害物は、例えば、テーブルにおいてゲームを執り行うディーラ、またはゲームの参加者、または通行人などの一時的な障害物であり得る。いくつかの実施形態において、奥行き感知デバイスまたはカメラ120は、ゲームテーブル210の競技面の見通しを得るために、ディーラの肩の後側かつ上に位置付けられ得る。奥行き感知デバイスまたはカメラ120およびコンピューティングデバイス130の位置は、ゲームテーブル210に位置する支柱または柱上の他のディスプレイスクリーンより上にあるか、またはそれに隣接し得る。
【0035】
[0074]
図3は、ブラックジャックのゲームのために構成されたゲームテーブルの競技面の部分を例証する画像300である。競技面またはゲームテーブルは、目的とする複数の予め規定された領域を含み、ゲームの特性に応じて、ゲームの運用に関して特定の配向および機能を有し得る。目的とする予め規定された領域は、ゲームカードまたは賭け対象物などの特定のゲーム対象物の検出のために指定され得る。例えば、
図3では、目的とする第1の予め規定された領域305は、プレイヤに配られたカード211を位置特定するために指定され、目的とする第2の予め規定された領域308は、プレイヤがゲーム内で賭け得るチップまたは賭け対象物213を位置特定するために指定され得る。いくつかの実施形態において、目的とする予め規定された領域のうちの1つまたは複数は、他の目的とする予め規定された領域のうちの1つまたは複数と重複してもよい。いくつかの実施形態において、1つの目的とする予め規定された領域は、他の目的とする予め規定された領域の部分を形成し得る。
【0036】
[0075] ゲームの参加者は、賭けを行い得るプレイヤおよびゲームを執り行うディーラを含む。賭けを行うまたはゲームを執り行うために、ゲーム対象物として説明される対象物が、プレイヤまたはディーラによって使用される。ゲーム対象物は、識別するために特定の印を有する特定の形状にあるカード211、チップもしくは賭け対象物213、またはプレイヤがゲーム内で賭け得る金額を指定し得る他のそのような対象物を含み得るか、または位置マーカまたはルーレットのゲームで使用されるドリーなどのゲームの結果を指定し得る明白な形状を有する他の対象物を含み得る。ゲームは、ゲームの開始、ゲーム中のプレイヤによる賭けの実施、ゲーム中の中間結果、およびゲームの最終結果を決定するゲームの終了を含む一連のゲームイベントを通じて執り行われる。ゲーム中、プレイヤは、賭けを行うための指定された目的とする領域内に自分の賭け対象物を置く(すなわち、トークンまたはチップを賭ける)ことによって賭けを行い得る。例えば、
図3に示されるようなブラックジャックのゲームにおいて、プレイヤは、賭けを行うための指定の領域308にチップ213などの1つまたは複数の賭け対象物を置くことによって、ゲーム中に賭けを行い得る。チップまたは賭け対象物は、目的とする領域内に群または積み重ねで配置され得る。多くの場合、賭け対象物の群または積み重ねは、共通色の賭け対象物を含む。
【0037】
[0076] 特定のゲームにおいて、プレイヤは、行われた賭けと関連付けられた勝利および支払いの可能性と関連付けられる目的とする領域を選択し得る。例えば、
図6の競技面210は、ルーレットのゲームのための賭けエリアのための印を有する競技面である。競技面600上の目的とする異なる領域308は、プレイヤの賭けに対する勝利および支払いの異なる可能性を有し得る。競技面は、ゲームと関連付けられた異なるルールおよび/または賭けの慣例に応じて、様々な目的とする領域の場所および構造に関していくつかの異なる構成を有し得る。
図4は、バカラのゲームのために指定されたゲームテーブルの画像400である。
図5は、いくつかの実施形態に従う別のゲームのために指定されたゲームテーブルの画像500である。
【0038】
[0077] 奥行き感知デバイスおよびカメラ:奥行き感知デバイスおよびカメラ120は、視覚画像およびデバイス前の視野の深さ情報を捕捉する機能を実施する。デバイス120は、ゲームテーブル上で識別される指定された目的とする領域すべてを捕捉するために、競技面またはゲームテーブルの前に置かれる。デバイス120は、赤外線プロジェクタ710、赤外線センサ720、カメラ730、プロセッサ740、通信ポート750、ならびに赤外線センサ720およびカメラ730をプロセッサ740と接続する内部データリンク705を備える。内部データリンク706は、プロセッサ740を通信ポート750と接続する。奥行き感知デバイスおよびカメラ120は、人間の目に見えるおよび/または人間の目に見えない光の複数のスペクトルから画像を捕捉することができる。例えば、奥行き感知デバイスおよびカメラ120は、カメラ730を通じて可視光スペクトルから、および赤外線センサ720を通じて赤外線スペクトルから画像を捕捉することができ、結果的に、マルチスペクトルカメラとして動作することができる。
【0039】
[0078] 奥行き感知デバイスおよびカメラ120は、その前の視野の奥行きまたは場面を感知するために飛行時間技術に依拠し得る。赤外線プロジェクタ710は、正弦波または方形波であり得る連続波でパルス光または調光を投影し得る。奥行き情報の正確性を向上するために、投影光の複数の位相が投影および感知され得る。赤外線プロジェクタ710によって発光された光パルスと赤外線センサ720によって感知された反射パルスとの間の測定された位相シフトは、デバイス前のフィールドの奥行きを計算するために、プロセッサ740によって依拠される。いくつかの実施形態において、奥行き感知デバイスおよびカメラ120は、投影光パターンおよび奥行き感知のためのカメラを使用するという原則に依拠する構造化光3Dスキャナを含み得る。いくつかの実施形態において、奥行き感知デバイスおよびカメラ120は、2つ以上のレンズおよび対応する画像センサからの画像を使用することによって奥行き感知の機能を実施するステレオカメラを含み得る。奥行き感知デバイスおよびカメラ120は、ゲーム環境および具体的にはテーブル競技面210の奥行き情報を得るために、奥行きもしくは範囲感知の他の代替手段、または2つ以上の技術の組み合わせに依拠し得る。
【0040】
[0079] 感知された奥行き情報は、プロセッサによって決定される画素グリッド情報と組み合わされ、通信ポート750への出力として提示される。画素グリッド情報はまた、カメラ730によって捕捉される視覚画像と組み合わされ、奥行き情報と組み合わせてポート750を通じた出力として提示される。奥行き情報とは別に、赤外線センサ720はまた、視野によって反射される赤外線光の強度を感知し、この情報は、プロセッサ740によって画素グリッド情報と組み合わされ、ポート750に渡される。ポート750は、例えばUSBポートなどの物理ポート、またはワイヤレスネットワークアダプタなどのワイヤレストランスミッタの形態にあり得る。奥行き感知デバイスおよびカメラ120は、感知された奥行き、色、および赤外線撮像データを、互いとマッピングされ得る異なる座標空間内に返して、デバイスの視野内の特定の領域または点と関連付けられた統合された奥行き、色、および赤外線データを得る。
図8は、1つの実施形態800に従う奥行き感知デバイスおよびカメラのハウジングの内側の正面図であり、赤外線プロジェクタ710、赤外線センサ720、およびカメラ730を含むそのコンポーネントの一部を例証する。
【0041】
[0080] コンピューティングデバイス:奥行き感知デバイスおよびカメラ120によって生成されるデータは、通信ポート990を介してコンピューティングデバイス130によって受信される。ポート990は、センサデータを受信するためまたは奥行き感知デバイスおよびカメラ120に命令を送信するために通信ポート750と連結するUSBポートまたはワイヤレスアダプタの形態にあり得る。コンピューティングデバイス130のハードウェアコンポーネント910は、メモリ914、プロセッサ912、およびコンピューティングデバイスの動作に必要な他のコンポーネントを備える。メモリ914は、必要なソフトウェアモジュール920を格納し、ソフトウェアモジュール920は、画像処理ライブラリ922、奥行き感知デバイスおよびカメラAPI924、ランタイム環境ドライバ926、ゲームモニタリングモジュール928、バッチスクリプト930、スケジュールされたジョブ932、ならびにメッセージ生成器モジュール934を備える。
【0042】
[0081] 画像処理ライブラリ922は、画像に対して閾値化操作、モルフォロジー演算を実施するなど、基本の画像処理演算を実施するためのプログラム、およびゲームモニタリングモジュール928によって行われる画像処理工程に必要な他のプログラムのセットである。OpenCVは、用いられ得る画像処理ライブラリの例である。奥行き感知デバイスおよびカメラAPI924は、コンピューティングデバイス930が1つまたは複数の奥行き感知デバイスおよびカメラ920との通信チャネルを確立することを可能にするプログラムのセットである。例えば、Microsoft(商標)Kinect(商標)デバイスが奥行き感知デバイスおよびカメラとして用いられる場合、Windows(商標)SDKのためのKinectが、奥行き感知デバイスおよびカメラAPI924として用いられる。このAPI924は、コンピューティングデバイス130が、適切なプロトコルで奥行き感知デバイスおよびカメラ120に対してクエリを行うこと、ならびに返された結果のフォーマットを理解することを可能にする。このAPI924は、奥行き感知デバイスおよびカメラ120によって生成されるデータが、ゲームモニタリングモジュール928によって受信され処理されることを可能にする。コンピューティングデバイス130はまた、ゲームモニタリングモジュール928の実行のための必要な従属性を提供するために、必要なランタイム環境ドライバ926を有する。ゲームモニタリングモジュール928は、ゲームの途中に発生するゲームイベントをモニタするプログラムを含む。
【0043】
[0082] ソフトウェアモジュール920はまた、ゲームモニタリングモジュール928のための必要なシステム管理業務および保全業務を実施するために、Windows PowerShellスクリプトまたは他のスクリプト言語でのスクリプトの形態にあり得るバッチスクリプトを含む。バッチスクリプト930は、Windowsスケジューラジョブまたは他の同様のジョブスケジューリングサービスの形態にあり得るスケジュールされたジョブ932を通じてスケジュールに基づいて実行され得る。ゲームモニタリングモジュール928からの命令に基づいたメッセージ生成器モジュール934は、メッセージブローカサーバ140に渡されるメッセージを生成する。メッセージ生成器モジュールは、例えばRabbitMQまたはKafkaなどの標準メッセージングシステムに基づき得る。構成モジュール940内の格納されたメッセージブローカ構成942に基づいて、メッセージ生成器モジュール934は、通信ポート990およびネットワークリンク117を介してメッセージブローカサーバ140にメッセージを通信することができる。構成モジュール940はまた、テーブル構成942ならびにゲーム開始および終了トリガ構成944を含む。構成モジュール940のコンポーネントは、メモリ914内に1つまたは複数の構成ファイルの形態で格納される。構成ファイルは、例えば、XMLフォーマットで格納され得る。
【0044】
[0083] メッセージブローカサーバ:メッセージブローカサーバ140は、メッセージブローカサービスを実装し、ネットワークリンク117を介した複数のコンピューティングデバイス130からのメッセージを待つ。メッセージブローカサーバ140は、共通のローカルネットワーク内のコンピューティングデバイス130と同じ敷地に位置し得るか、またはそれは敷地外に(遠隔に)位置し得るが、メッセージおよびデータの転送を可能にするために2つの敷地間に確立されたネットワークリンク117を介して依然として通信状態にある。メッセージブローカサーバ140は、集中型メッセージブローカサービスを提供するために、集中され、複数の賭博場内のコンピューティングデバイス130に接続され得る。メッセージブローカサーバ140は、メモリ1014、プロセッサ1012、およびサーバの動作のための他の必要なハードウェアコンポーネントを備えるハードウェアコンポーネント1010を有する。メッセージキューモジュール1020は、複数の構成デバイス130からのメッセージを受信し、解釈し、処理するためのキューを実装する。メッセージは、メッセージブローカサーバ140へのまたはメッセージブローカサーバ140からのデータおよび命令の二方向転送を可能にすることができるネットワークアダプタまたは他の同様のポートの形態にあり得る通信ポート1090を介して受信される。メッセージキューモジュール1020は、RabbitMQまたはKafkaなどのメッセージブローカパッケージを通じて実装され得る。メッセージキューモジュール1020は、ゲームテーブル上で発生するゲームイベントに関するトランザクション情報を含むメッセージを受信すると、データベース構文解析モジュール1030を開始する。データベース構文解析モジュール1030は、メッセージキューモジュール1020によって受信されるメッセージを、ネットワークリンク127を介して続いてデータベースサーバ150上で実行されるデータベースクエリへと構文解析する。
【0045】
[0084] データベースサーバ:データベースサーバ150は、メッセージブローカサーバ140からゲームイベントデータを受信すること、ウェブアプリケーションサーバ160を介して管理されるテーブル構成データを格納すること、およびゲームモニタリングシステム100によって捕捉されるゲームイベントデータへのアクセスを提供するためにデータベースクライアント180のためのレポジトリとしての機能を果たすことという目的を果たす。データベースサーバ150は、メモリ1114、プロセッサ1112、およびサーバの動作のための他の必要なハードウェアコンポーネントを備えるハードウェアコンポーネント1110を有する。通信ポート1190は、1つまたは複数のネットワークリンクを介してデータベースサーバ150へのまたはデータベースサーバ150からのデータおよび命令の二方向転送を可能にすることができるネットワークアダプタまたは他の同様のポートの形態にあり得る。データベースモジュール1120は、MySQL(商標)、PostgresまたはMicrosoft(商標)SQLサーバなどのデータベース管理システムを通じて実装され得る。
【0046】
[0085] データベースモジュール1120は、テーブル構成データ1122およびゲームイベントデータ1124を含むデータを保持する。ゲームイベントデータ1124は、ゲームテーブルまたは競技面上で発生するゲームイベントを表すトランザクションデータを含む。ゲームイベントデータを形成する記録は、ゲームイベントが認識された時間のタイムスタンプ、ゲームイベントが発生したゲームテーブルのための固有の識別子、賭けを行うこと、ゲームの中間結果、ゲームの最終結果などのゲームイベントの特性のための識別子、ゲームイベントと関連付けられた目的とする領域の識別子、目的とする領域と関連付けられた賭け値の予測、およびゲームイベントを表す他の関連属性を含み得る。
【0047】
[0086] テーブル構成データ1122は、ゲームテーブルおよび関連コンピューティングデバイス130のための固有の識別子と、多角形、および多角形の終点を形成する奥行き感知デバイスおよびカメラ120と関連付けられた画素の座標の形態にあるゲームテーブル上の目的とする領域308の場所と、目的とする領域308の特性であって、目的とする領域308が、カードを置くためまたはチップを置くためまたは検出されるべき特定のゲーム対象物を置くための領域である、特性と、ゲーム開始および終了トリガイベントの特性であって、ゲームの開始が目的とする領域にカードを置くことまたは目的とする特定の領域に特定のゲーム対象物を置くことによって検出される、特性と、例えばゲームモニタリングモジュール928による検出を可能にするためにカードまたはチップなどのゲーム対象物のモデル輪郭と、ゲームモニタリングシステム100によって依拠されるパラメータを表すのに必要な他の関連データとを含む。いくつかの実施形態において、テーブル構成データ1122およびゲームイベントデータ1124は、ゲームモニタリングシステム100のより大きなスケーラビリティおよび管理性を可能にするために別個のデータベースサーバ内に保持され得る。
【0048】
[0087] データベースサーバ150はまた、テーブル構成データ1122をそれぞれのコンピューティングデバイス130に伝達する機能を実施するテーブル構成伝達モジュール1140を備える。テーブル構成伝達モジュールは、まずテーブル構成942、ゲーム開始および終了トリガ構成944、ならびにメッセージブローカ構成946を、例えばXMLなどの構成ファイルの形態で生成するデータベーススクリプトおよびコマンドラインスクリプトの組み合わせを通じて実装され得る。生成された構成ファイルは、ネットワークリンク167上で応答する通信ポート1190を介してそれぞれのコンピューティングデバイス130に転送され得る。ネットワークリンク167は、データベースサーバ150およびコンピューティングデバイス130が同じローカルネットワーク内にある場合はローカルネットワークリンクであり得、またはデータベースサーバ150およびコンピューティングデバイス130が別個のネットワーク内に位置する場合には複数のコンピュータネットワークにまたがるネットワークリンクであり得る。構成ファイルの転送は、例えばファイル転送プロトコルまたはSSH転送プロトコルなどの適切なネットワークプロトコルを通じて達成され得る。
【0049】
[0088] ウェブアプリケーションサーバ:ウェブアプリケーションサーバ160は、データベースサーバ150上のテーブル構成データ1122の構成および管理を促進するウェブアプリケーションをホストする。ウェブアプリケーションサーバ160は、メモリ1214、プロセッサ1212、およびサーバの動作のための他の必要なハードウェアコンポーネントを備えるハードウェアコンポーネント1210を有する。通信ポート1290は、1つまたは複数のネットワークリンクを介してウェブアプリケーションサーバ160へのまたはウェブアプリケーションサーバ160からのデータおよび命令の二方向転送を可能にすることができるネットワークアダプタまたは他の同様のポートの形態にあり得る。ウェブアプリケーションサーバは、ユーザがデータベースサーバ150上のテーブル構成データ1122を作成および更新することを可能にするウェブインターフェースを備えるウェブアプリケーションモジュール1220を備える。ウェブアプリケーションは、例えば、pythonでのDjangoまたはASP.NETまたは他の同様のウェブフレームワークなどのウェブアプリケーションフレームワークを通じて実装され得る。ウェブアプリケーションサーバ160はまた、ウェブインターフェースを介してウェブアプリケーションモジュール1220によって受信される命令を、アドミニストレータクライアント170によって行われる操作を反映するためにテーブル構成データ1122を作成または更新する特定のデータベースクエリまたは命令に翻訳するデータベース構文解析モジュール1230を備える。データベースクエリまたは命令は、ネットワークリンク137を介してデータベースサーバ150上で実行される。ネットワークリンク137は、データベースサーバ150およびウェブアプリケーションサーバ150が共通のネットワーク内にある場合はローカルエリアネットワークリンクであり得、またはそれは、データベースサーバ150およびウェブアプリケーションサーバ150が別個のネットワーク内に位置する場合には複数のネットワークにまたがり得る。
【0050】
[0089] ウェブインターフェース:
図13は、ゲーム環境110の部分を形成し得るゲームテーブルの実施形態の構成を管理するためのインターフェースを示すウェブアプリケーションのスクリーンショット1300である。ゲームテーブルを設定することに必要とされ得るパラメータおよびパラメータは、テーブルのための固有の識別子、例えばスクリーン領域1310内に位置する関連コンピューティングデバイスのIPアドレスを含み得る。テーブル構成942を成文化するためにコンピューティングデバイス130に伝達され得るXML構成ファイルの部分がスクリーンエリア1320に示される。ボタン1330は、追加のゲームテーブルのための記録を作成するために使用され得、登録ボタン1340は、ユーザが新規構成を登録することを可能にする。
【0051】
[0090]
図14は、ゲーム環境110の部分を形成し得るゲームテーブルの実施形態の構成を管理するための別のインターフェースを示すウェブアプリケーションの別のスクリーンショット1400である。配備ボタン1410は、保存された構成のセットを、ネットワークリンク167を通じてコンピューティングデバイス130に配備するためにクリックされ得る。削除ボタン1424は、任意の保存された構成を削除するためにクリックされ得る。1420は、構成情報を保存しかつコンピューティングデバイス130に伝達するために使用され得る別のXMLファイルの部分のサンプルである。スクリーン領域1412、1414、および1416は、奥行き感知デバイスおよびカメラ130からの奥行き、色、および赤外線画像ストリームを表す。個々のストリームと関連付けられた構成の詳細は、ボタン1422をクリックすることによって閲覧することができる。構成詳細は、ボタン1418をクリックすることによって削除され得る。スクリーン領域1440は、保存ボタン1430をクリックすることによって保存され得るすべてのテーブルのためのデフォルト構成をユーザが設定することを可能にする。
【0052】
[0091] ボタン1430は、配備前のゲームテーブル構成への変更を保存するために使用され得る。
【0053】
[0092]
図15は、ゲーム環境110の部分を形成し得るゲームテーブルの実施形態の構成を管理するための別のインターフェースを示すウェブアプリケーションの別のスクリーンショット1500である。スクリーンショット1500に示されるインターフェースは、目的とする領域の種類、位置、および境界がユーザインターフェースツールを使用して規定されることを可能にする。そのような規定された目的とする領域は次いで、一旦ゲーム構成データ内に保存されると、本明細書内で言及されるような「目的とする予め規定された領域」となる。ボタン1510は、奥行き感知デバイスおよびカメラ120に対するゲームテーブルの位置が変化した場合に、ゲームテーブルのリフレッシュ画像を得るためにクリックされ得る。スクリーンショット1500に示される画像フレーム1515は、1つまたは複数の目的とする境界領域1520を含み、目的とする境界領域は各々、多角形1525によって規定されている。特注の多角形は、選択可能なハンドル1560を使用して描写され得、例えば、多角形のリスト1530に追加され得る。保存ボタン1540は、ユーザが多角形に対してなされた変更を保存することを可能にし、再マッピングボタン1550は、ユーザが既存の多角形を異なる場所に再マッピングすることを可能にする。
【0054】
[0093] ゲームの自動認識のためのシステムを開発するためには、ゲームの挙動を理解することが必要である。本明細書では2種類のゲームテーブルを取り扱う。1つは、ゲームが競技される際に用いられる主要デバイスとしてトランプを、それらが伝統的なものまたはゲーム専用であるにしろ使用する任意のゲームであるカードベースのゲームまたはカードゲームである。この種類の例は、ブラックジャック、バカラ、およびポーカーである。他の種類のテーブルゲームは、カードに基づかない、例えば、ルーレットである。このゲームでは、プレイヤは、単一の数字もしくは数字の範囲、赤色もしくは黒色、または数字が奇数もしくは偶数であるかのいずれかに対して賭けを行うことを選択することができる。勝利する数字および色を決定するために、ディーラは、ホイールを一方向にスピンし、次いで、ホイールの外周を取り巻く円状のトラックの周りにボールを反対方向にスピンする。
【0055】
[0094] カードベースのゲームの挙動は以下の通りである。
・プレイヤは、しばらくの間自由に賭けを行う。
・ディーラが「No more bets」と言い、プレイヤにカードを配り始める。これがゲーム開始のときである。
・ゲーム結果が決まった後、ディーラは、敗北プレイヤのチップを集め、勝利チップを配布する。
・その後、ディーラがすべてのカードを片付ける。これがゲーム終了のときである。
【0056】
[0095] 非カードベースのゲーム、特にルーレットの挙動。
・プレイヤは、しばらくの間賭けを行うことになる。
・ディーラがホイールをスピンし、ボールが停止しそうになるまでしばらくの間待ち、その後「 No more bets」とアナウンスする。これがゲーム開始のときである。
・ボールが停止した後、ディーラがドリーをテーブル上に勝利数字の上に置く。勝利/敗北チップは、ディーラによって割り当てられる/集められる。
・その後、ゲームが終了する。
【0057】
[0096] 全体モニタリングプロセス:ゲームモニタリングシステム100はその運用において輪郭検出および平面予測という2つの基本的側面を支持する。輪郭検出は、奥行き感知デバイスおよびカメラ120によって捕捉される画像内の形状を認識するために、リアルタイムまたはほぼリアルタイムで実施され得るセットまたはプロセスまたは技術を含む。ほぼリアルタイムの処理は、イベントの発生から数秒、例えば2~3秒以下の待ち時間を伴う処理を含み得る。平面予測は、奥行き感知デバイスおよびカメラ120によって捕捉される奥行きデータおよび画像に基づいてゲームテーブルまたは競技面を表す平面の位置を予測するために、リアルタイムまたはほぼリアルタイムで実施され得るプロセスまたは技術のセットを含む。平面予測の工程が実施されると、獲得された平面位置情報は、ゲームテーブル上のゲーム対象物の積み重ねの高さを予測し、例えばチップの積み重ねなどのゲーム対象物の積み重ねと関連付けられた値について推論するために、奥行き感知デバイスおよびカメラ120によって捕捉される追加の奥行きデータと組み合わされ得る。
【0058】
[0097] 画像事前処理工程:輪郭検出または平面予測技術が適用され得る前に、奥行き感知デバイスおよびカメラ120によって捕捉される画像に対していくつかの画像事前処理工程が適用される。これらの画像事前処理工程は、輪郭検出および平面予測技術を実施するプロセスの性能および精度を改善する。
【0059】
[0098] 閾値化:用いられ得る1つの画像事前処理技術が閾値化である。奥行き感知デバイスおよびカメラ120は、ゲーム環境110の色および赤外線画像フレーム内にデータを返す。閾値化技術は、色および赤外線データの両方のストリームに適用され得る。色または赤外線ストリームいずれかの特定のフレーム内の各画素は、画素の色または強度を示す数値によって表される。色画像フレームは、閾値化操作を実施する前にグレースケール画像フレームに変換され得る。グローバル閾値化は、閾値化を実施する1つの方法である。グローバル閾値化では、各画素値は、任意の閾値と比較され、画素値がこの閾値よりも大きい場合、それは白に対応する値、例えば8ビットスケールでは255を指定され、そうでない場合は、黒に対応する値、例えば8ビットスケールでは0を指定される。一連の画像1600を通じて、
図16は、サンプル画像1601に対する閾値化の結果の例を例証する。画像1602は、127の値を使用した画像1601へのグローバル閾値化の適用の結果であり、画像1601は8ビットフォーマットで表されている。グローバル閾値化は、様々な実際の応用では十分ではない場合がある。画像は、画像の様々な部分において異なる照明条件を有し得、グローバル閾値化技術の適用は、低照明条件を有する画像の部分を減少し得る。
【0060】
[0099] 適応型の閾値化は、グローバル閾値化の限界に対処するための代替案である。適応型の閾値化では、画像の異なる小さい領域のための閾値が存在し、閾値化の目的のためにそれらの領域に適用される。適応型の閾値化のための閾値は、ある画素の近傍における画素の平均値、または重みがガウス分布から得られ得る近傍画素の加重和を用いることによって計算され得る。
図16では、画像1603は、適応型の平均閾値化技術の適用の出力の例であり、画像1604は、元の画像1601への適応型のガウス閾値化技術の適用の出力の例である。閾値化の別の代替法は、大津の2値化である。この方法では、閾値化は、画像ヒストグラムに基づいて実施される。一連の画像1700を通じて、
図17は、代表的なヒストグラム1702を用いたサンプル画像1701のセットに対する大津の2値化技術の適用の例を例証する。代替的な閾値化技術のうちの1つまたは複数は、事前処理段階で、色または赤外線画像フレームに適用され得る。画像処理ライブラリ922は、画像事前処理段階においてゲームモニタリングモジュール928によって呼び出され得る提案された閾値化技術を実装する再利用可能なライブラリを提供し得る。
【0061】
[0100] モルフォロジー変換:モルフォロジー変換は、画像形状に基づく演算である。これは通常、2値画像に対して実施される。これは2つの入力を必要とし、1つは元の画像であり、2つ目は、演算の特性を決定する構造化要素またはカーネルと呼ばれる。2つの基本的なモルフォロジー演算子は、浸食および膨張である。
【0062】
[0101] モルフォロジー変換は、画像内で検出されるべき特徴を強化するため、ならびに輪郭検出プロセスの性能および精度を改善するために、奥行き感知デバイスおよびカメラ120によって捕捉される画像に対して実施される。浸食および膨張は、画像事前処理段階中に適用され得るモルフォロジー変換の例である。浸食プロセスおよび膨張プロセスは両方とも、奥行き感知デバイスおよびカメラ120によって捕捉されるマトリクスの形態にある画像データ、ならびに入力画像に対して実施されるモルフォロジー演算の特性を決定する構造化要素またはカーネルという2つの入力を必要とする。カーネルは、正方形または円形の形状にあり得、規定された中心を有し、入力画像を通って横断することによって演算として適用される。
【0063】
[0102] 浸食:浸食のモルフォロジー変換は、カーネルが画像を通って横断する際に、カーネルに対応する値すべてが1または白色に対応する値である場合にのみ、画素の値が1の値または白色に対応する値のままにされるという、カーネルを使用することによる画像内の前景オブジェクトの鮮鋭化を含む。サイズ3×3もしくは5×5または他のサイズのカーネルが浸食の演算のために用いられ得る。浸食演算は、前景オブジェクトの境界を浸食する。一連の画像1800を通じて、
図18は、浸食および膨張演算子の適用の例を例証する。入力画像1801に対する浸食演算の効果の例は、浸食出力画像1802に見られ得る。浸食の演算は、画像処理ライブラリ922内の予め規定されたライブラリによって実施され得る。例えば、OpenCVライブラリが使用される場合、関数「erode」が、奥行き感知デバイスおよびカメラ120によって捕捉された画像に対して働くようにゲームモニタリングモジュール928によって呼び出され得る。
【0064】
[0103] 浸食を達成するため、カーネルは画像を通ってスライドする(2D畳み込みにおいて見られるように)。元の画像内の画素(1または0のいずれか)は、カーネル下の画素すべてが1である場合にのみ1と見なされ、そうでない場合、それは浸食される(ゼロにされる)。
【0065】
[0104] 膨張:膨張の演算は浸食の逆である。例えば、3×3正方形マトリクスカーネルを使用する膨張演算では、カーネルの中心にある画素は、対応するカーネル内の値のいずれか1つが1または白色に対応する値である場合、1の値または白色に対応する値のままにされ得る。入力画像1802に対するこの演算の効果の例は、浸食出力画像1803に見られ得る。膨張の結果として、画像内の特徴はより連続的でかつ大きくなる。膨張の演算は、画像処理ライブラリ922内の予め規定されたライブラリによって実施され得る。例えば、OpenCVライブラリが使用される場合、関数「dilate」が、奥行き感知デバイスおよびカメラ120によって捕捉された画像に対して働くようにゲームモニタリングモジュール928によって呼び出され得る。
【0066】
[0105] 膨張は、浸食の真逆である。ここでは、カーネル下の少なくとも1つの画素が1である場合、画素要素は1である。そのため、それは画像内の白領域を増加させるか、または前景オブジェクトのサイズが増大する。通常、雑音除去などの場合、浸食の後に膨張が続く。なぜなら、浸食は白色雑音を除去するが、本明細書における対象物を縮小もする。そのため、本発明ではそれを膨張させる。雑音要素は浸食によって除去されるため、雑音要素が膨張によって再びもたらされることはないが、対象物エリアが増大する。それは、対象物の破損個所を結合することにも有用である。
【0067】
[0106] 画像への閾値化技術の適用は、2値画像を生成する。画像内に存在する特徴をさらに強化するため、浸食および膨張のモルフォロジー変換が適用される。有利には、モルフォロジー変換は、画像からの雑音の低減、個々の要素の分離、および画像内の異種要素の結合を助ける。
【0068】
[0107] 画像輪郭は、画像内に表される対象物の境界に沿った連続的な点すべてを結合する曲線を含む。輪郭は、形状分析ならびに対象物検出および再構成のための有用なツールである。輪郭近似は、特定の形状の相似をアプリケーション内の所望の形状のものに近似するために使用される。所望の形状は、例えば、多角形または円形または楕円の形態にあり得る。より優れた精度および性能のために、輪郭検出演算は、エッジ検出演算が実施された後に2値画像に対して実施され得る。
【0069】
[0108] エッジ検出:エッジ検出は、画像内の対象物の境界を見つけるための画像処理技術である。それは、明るさの不連続性を検出することによって機能する。中でも、Cannyは、以下の工程で説明され得る人気のマルチステージエッジ検出アルゴリズム(またはプロセス)である。
【0070】
[0109] エッジ検出は、近傍画素および画素クラスタ間の明るさ不連続性を検出することによって実施され得る。いくつかの画像処理技術が、この演算を実施するために用いられ得る。いくつかの実施形態は、奥行き感知デバイスおよびカメラ120によって捕捉された画像内のエッジを検出するためにCannyエッジ検出演算子またはプロセスを実装する。
図19は、Cannyエッジ検出演算子の実装に関与する一連の工程を表すフローチャート1900である。工程1910は、演算子への入力として使用するための画像の準備を伴う。この工程は、画像への適切な閾値化技術の適用、および残りのエッジ検出プロセスの性能を改善するための浸食または膨張の適用を含み得る。工程1920は、画像から望ましくない雑音を低減することを含む。これは、例えば、5×5ガウスフィルタリングカーネルの適用により達成され得る。この工程は、画像内の特徴を滑らかにし、残りのプロセスの性能を改善する。用いられ得るガウスフィルタリングカーネルの例は以下の通りである。
【0071】
【0072】
[0110] 工程1930は、画像の輝度勾配の予測を含む。この演算を実施するために、入力画像は、2つのSobelカーネルによってフィルタリングされる。カーネルGxの演算は、画像の第1の導関数を水平方向に返し、カーネルGyは、入力画像の第1の導関数を垂直方向に返す。使用され得るカーネルGxおよびGyは以下である。
【0073】
【0074】
[0112] 入力画像の第1の水平および垂直の導関数に基づいて、エッジ勾配Gおよび各画素の方向θが以下のように計算され得る。
【0075】
【0076】
[0114] 勾配方向は、エッジに対してほぼ垂直であり、垂直方向、水平方向、および2つの斜め方向を表す4つの角度のうちの1つに丸められ得る。
【0077】
[0115] 工程1940では、あるエッジまたは所望のエッジを構成することができないいかなる望ましくない画素も除去するために、エッジ強度画像の完全なスキャンが行われ得る。これは、各画素がその勾配の方向においてその近傍内で極大であるかどうかをチェックすることによって達成される。
図20のグラフ2000に例証されるように、点Aは、エッジ上に垂直方向にあり、勾配方向は、エッジに垂直である。点BおよびCは、勾配方向内に位置し、したがって、点Aは、それが極大を形成するかどうかを観察するために、点BおよびCと比較され得る。そうである場合、それはプロセス内の次の段階1950について検討され、そうでない場合、それは、点Aに0の画素値を指定することによって抑制され得る。その結果が、薄エッジに対応する値1およびエッジなしに対応する0の画素を有する2値画像である。
【0078】
[0116] 工程1950では、前の工程で検出されたエッジのうちのどれが真の陽性であるかが予測され、真の陽性とは、擬陽性ではなく、入力画像によって表される現実世界におけるエッジを表す可能性が最も高いものを意味する。この演算を実施するために、minValおよびmaxValという2つの閾値が規定され得る。maxValより大きい輝度勾配を有するエッジは、確実なエッジであると見なされ、minVal未満のものは、非エッジと見なされて廃棄され得る。2つの閾値内に入るエッジは、それらの接続性プロパティによってエッジまたは非エッジとしてさらに分類され得る。それらが確実なエッジ画素に接続される場合、それらはエッジの部分を形成すると見なされる。そうでない場合、それらは擬陽性として廃棄され得る。例えば、
図21のグラフ2100では、エッジAはmaxValを上回るため、それは真の陽性と見なされ得る。エッジCはmaxVal未満であるが、それはエッジAに接続されるため、それもまた真の陽性エッジとして取り扱われ得、曲線全体が有効と見なされ得る。エッジBはminValを上回り、かつエッジCのものと同じ領域内にあるが、いかなる真の陽性エッジにも接続されていないため、それは擬陽性として取り扱われ得る。minValおよびmaxValの値は、最適な結果を達成するように選択される。例えば、minValは20~60の間の値に設定され得、maxValは、60~180の間の値に設定され得る。この段階は、小画素クラスタの形態にある雑音も除去し得る。
【0079】
[0117]
図19において識別される工程の一部またはすべては、画像処理ライブラリ922内で利用可能なプログラムを通じて実施され得る。例えば、OpenCVライブラリが使用される場合、「Canny」エッジ検出関数呼び出しが使用され得る。エッジ検出の他の代替方法もまた、入力画像内のエッジの識別の同じ結果を得るためにCannyエッジ検出の代替案として利用され得る。
【0080】
[0118] 輪郭検出:エッジ検出演算子が、エッジを識別するために入力画像に適用された後、輪郭検出プロセスが、画像内の形状の相似を例えば多角形または円形などの特定のモデル形状に近似するためにエッジ検出演算の結果に適用され得る。
【0081】
[0119] 輪郭は、同じ色または強度を有する(境界に沿った)連続的な点すべてを結合する曲線として説明され得る。輪郭は、形状分析ならびに対象物検出および再構成のための有用なツールである。より優れた精度のために、2値画像が輪郭検出アルゴリズム(またはプロセス)への入力として使用されることが示唆される。そのため、輪郭を発見する前に、閾値化またはCannyエッジ検出を適用すべきであることが示唆される。本発明の応用においては、デジタル化された2値画像のトポロジー分析のために境界線追跡アルゴリズム(またはプロセス)を使用する。これらのアルゴリズム(またはプロセス)は、2値画像の境界線間の包囲関係を決定する。外側の境界線および穴境界線は、それぞれ、画素の接続された構成要素および穴への一対一対応を有するため、本アルゴリズム(またはプロセス)は、2値画像の表現をもたらし、そこからいくつかの特徴を画像を再構成することなく抽出することができる。第1の境界線追跡アルゴリズムの修正版である第2の境界線追跡アルゴリズム(またはプロセス)は、最も外側の境界線(すなわち、穴によって囲まれていない外側の境界線)のみを追跡する。
【0082】
[0120] 本発明において特定する正確性に応じて、輪郭形状をより少ない数の頂点を有する別の形状(多角形)に近似する輪郭近似も実施される。それは、Douglas-Peuckerアルゴリズムを通じて以下のように実装され得る。
function DouglasPeucker(PointList[],epsilon)
//Find the point with the maximum distance
dmax=0
index=0
end=length(PointList)
for i=2 to(end-1){
d=perpendicularDistance(PointList[i],
Line(PointList[1],PointList[end]))
if(d>dmax){
index=i
dmax=d
}
}
//If max distance is greater than epsilon,
//recursively simplify
if(dmax>epsilon){
//Recursive call
recResults1[]=DouglasPeucker(PointList[1...index ],
epsilon)
recResults2[]=DouglasPeucker(PointList[index...end],
epsilon)
//Build the result list
ResultList[]={recResults1[1...length(recResults1)-1],
recResults2[1...length(recResults2)]}
}else{
ResultList[]={PointList[1],PointList[end]}
}
//Return the result
return ResultList[]
end
【0083】
[0121]
図22では、一連の画像2200が、Douglas-Peuckerアルゴリズムの適用の様々な段階を表す。画像2210は、入力画像として使用され得る元の画像である。画像2220内の線2205は、アーク長の10%に等しいエプシロンの値のための近似曲線を表す。画像2230内の線2215は、アーク長の1%に等しいエプシロンの値のための近似曲線を表す。
【0084】
[0122] 輪郭予測演算は、画像処理ライブラリ922内の予め準備された関数を使用し、それらをゲームモニタリングモジュール928内で呼び出すことによって実施され得る。例えば、輪郭予測プロセスを実施するためにOpenCVが使用される場合、例えば、関数「findContours」または「drawContours」または「approxPolyDP」が、本プロセスを実施するために呼び出され得る。
【0085】
[0123] 平面検出プロセス:ゲームテーブルまたは競技面上のチップの積み重ねの高さの予測の前身として、ゲームモニタリングシステム100は、ゲームテーブルまたは競技面を含む平面の位置を予測する。平面の方程式を予測する1つの方法は、主成分分析(PCA)による。PCAは、データのセットから当てはめモデルまでの垂直距離を最小限にする。これは、直交回帰または総最小二乗として知られるものの線形ケースである。例えば、2つのデータベクトルxおよびyを前提とすると、2つの変数を有する線形方程式の形態にある線は、点(xi,yi)の各々から線までの垂直距離を最小限にすると予測され得る。より一般的には、r-次元超平面は、p-次元空間内にフィットされ得、ここでrはp未満である。rの選択は、PCA中に維持する成分の数の選択に同等である。
【0086】
[0124] 平面の基礎的な数学モデルは、以下のように式化され得る。
ax+by+cz+d=0
【0087】
[0125] 値a、b、c、およびdは、ゲームテーブルまたは競技面上の選択された点からの距離を最小限にするように予測される必要がある。チップ検出段階中に獲得される画像の2値バージョンに基づいて、チップとして検出されない100以上の点が、PCAのための入力点として選択され得る。これらの選択された点は2次元空間内にあるため、点と関連付けられた奥行き情報は、2次元空間内の座標を獲得するために利用される。ピンホールカメラモデルの原則は、2次元空間内の点を3次元空間内の点に変換するために依拠される。座標(x,y)を有する2次元空間内の点、奥行き値Z、ならびに奥行き感知デバイスおよびカメラ120の光心のx,y座標としての(Cx,Cy)を前提とすると、3次元空間内の同じ点の座標(X,Y,Z)は、以下の方程式を使用して決定され得る。
【0088】
【0089】
[0127]
図23(a)および
図23(b)は、3次元座標グラフ2300内の点のセット2310へのPCAの適用を例証する。
図23(b)内の座標グラフ2301では、PCAの適用が、点2310と平面2350との間の直交距離2320を最小限にするプレイス2350の識別を可能にする。平面予測演算は、画像処理ライブラリ922内の予め準備された関数を使用し、それらをゲームモニタリングモジュール928内で呼び出すことによって実施され得る。例えば、輪郭予測プロセスを実施するためにOpenCVが使用される場合、クラス「cv::PCA」によって実施される関数が、例えば、平面予測プロセスを実施するために呼び出され得る。
【0090】
[0128] チップの値を予測するために、画像の従来的なユークリッド距離を使用してチップを分類することができる。チップテンプレート画像は、比較目的のために事前に集められる。次いで、k近傍アルゴリズムがチップの値を指定するために使用される。しかしながら、類似の色を有するいくつかのチップ種類が存在する。これらの種類のチップを区別するために、本発明では、赤外線画像からチップ種類の反射率をさらに利用して、k近傍アルゴリズムを用いてそれらを分類する。
【0091】
[0129] テーブル平面が示された後、各チップの中心からその平面までの距離が、チップの積み重ねの高さを得るために予測され得る。チップの数はまた、線形または非線形マッピングによって、この高さに基づいて予測され得る。点から平面までの距離を計算することは、以下のように派生される。3次元空間内の平面を前提とし
ax+by+cz+d=0
および点x0=(x0;y0;z0)であり、平面までの法線ベクトルが、
【0092】
【数5】
によって得られ、その点から平面までの距離は、
【0093】
【0094】
[0130] カード検出のためのアルゴリズム(またはプロセス)が実施され得る。例えばカードベースおよび非カードベースのゲームの2種類のゲームが存在し得る。カードベースのゲームの場合、1内のアルゴリズム(またはプロセス)が、カードを検出し、ゲーム開始イベントをトリガするために使用され得る。ルーレットの場合、ドリー検出が、ゲーム開始および終了イベントをトリガするために使用され得る。ゲームモニタリングシステムがドリー(または位置マーカ)を検出するとき、それは、ドリーの検出の数秒前、例えば20~30秒前にゲームが開始した可能性があることを推論し得る。ドリーは、ディーラによって除去されるまでその位置にとどまり得る。初期検出後のドリーの除去は、ゲーム終了イベントをトリガし得る。ドリーの反射特徴に起因して、それを検出するには色画像ではなく赤外線画像が使用され得る。
【0095】
[0131] アルゴリズム1 カード検出アルゴリズム(プロセス):
1:手続きCardDection(img)。グレースケール画像imgを入力する
2:imgに対してCannyエッジ検出を適用する
3:エッジセグメント間の可能性のある穴を除去するためにCanny出力を膨張する
4:imgに対してCannyエッジ検出を適用する
5:輪郭を発見し近似する
6:以下の基準を満たす輪郭を承認する:
輪郭のエリアは、カードのエリアサイズ、例えば40~70cm2の間または50~60cm2の間以内でなければならない
輪郭は、近似後に4つの頂点を有さなければならない
結合エッジ間の角度のコサインは、例えば-0.2~0.2の間または-0.1~0.1の間など、小さくなければならない。
【0096】
[0132] アルゴリズム2 ドリー検出アルゴリズム(プロセス):
1:手続きDollyDection(img)。赤外線画像imgを入力する
2:imgに対してグローバル閾値化を適用する
3:小さい対象物を除去するために出力を浸食する。
4:サイズ基準を満たす対象物が残っている場合、それは検出されたドリーである。
5.チップを検出するためのチップ検出、本発明では、背景からチップをセグメント化するために適応型の閾値化を使用する。出力された2値は、小さい対象物を除去するために浸食および膨張される。その後、サイズ基準を満たすすべての小塊が、チップとして検出される。このアルゴリズム(またはプロセス)は、色画像および赤外線画像の両方に対して適用され得る。以下の細別事項は、使用される技術のレビューであり、アルゴリズム(またはプロセス)のレイアウト詳細は、アルゴリズム3において説明される。
【0097】
[0133] アルゴリズム3 チップ検出アルゴリズム(またはプロセス)(プロセス):
1:手続きCardDection(img)。グレースケール画像imgを入力する
2:imgに対して適応型の閾値化を適用する
3:小さい対象物を除去するために出力を浸食および膨張する。
4:サイズ基準を満たす対象物が残っている場合、それは検出されたチップである。
【0098】
[0134] サイズ基準または角度基準のコサインなどの特定の基準は、テーブル構成942の部分として構成モジュール940内に格納され得る。
【0099】
[0135] チップ高さ予測アルゴリズムは、アルゴリズム4において見られ得る:
【0100】
[0136] アルゴリズム4 チップ積み重ね高さ予測アルゴリズム(プロセス):
1:手続きChipHeightEstimate(img)。奥行き画像imgを入力する
2:チップではない選択されたテーブル点を3D座標に変換する
3:これらの点をテーブル平面と呼ばれる平面にフィットする
4:チップ積み重ね高さを得るためにチップ積み重ねの各中心からこの平面までの距離を見つける
5:積み重ねられたチップの数を予測するために単一のチップの高さから高さを割る
【0101】
[0137]
図26(a)および
図26(b)は、それぞれ、カード検出およびチップ検出が実施されているゲームテーブルの実施形態の画像フレーム2600および2650である。
図26(a)では、境界2620は、カードが検出された画像フレームのエリアを表す。境界2630は、チップが検出された画像フレームのエリアを表す。カード2610は、それが奥行き感知デバイスおよびカメラ120に完全に提示されておらず、およびゲームテーブル210上で配られているプロセスにあるため、カード検出アルゴリズム(またはプロセス)によって検出されていない。
図26(b)では、
図26(a)に提示されるカードとは異なるカード211が検出されており、境界2620に囲まれている。
図26(b)内のチップ213は、
図26(a)内のチップとは異なる位置にあり、境界2630を用いて検出されている。
【0102】
[0138]
図27(a)および
図27(b)は、それぞれ、カード検出およびチップ検出が実施されているゲームテーブルの実施形態の画像フレーム2700および2701を表す。
図27(b)は、2値閾値化技術のうちのいずれか1つの
図27(a)への適用の結果である。
図27(b)内の形状2710は、カード211の潜在的な擬陽性検出であり得る。これらの擬陽性は、ある形状のエリアをカードの予期されるエリアと比較するアルゴリズム1の工程6によって除外され得る。類似形状2720は、形状2720のエリアとチップ213の予期されるエリアとの比較によってチップ213の擬陽性検出として除外され得る。
図28(a)は、カード211およびチップ213などのゲーム対象物を有するゲームテーブル2800の実施形態の赤外線画像を表す。
図28(b)では、チップ211がチップ検出アルゴリズム3によって識別されており、検出を示すために灰色にされている。色画像フレームに対するゲーム対象物検出プロセスの適用の結果は、検出の精度およびチップ積み重ね高さの予測を改善するために赤外線画像フレームと組み合わされ得る。
【0103】
[0139]
図29(a)~
図29(e)は、いくつかの実施形態に従う画像フレーム2900へのチップ検出プロセスの適用を例証する。画像フレーム2900は、奥行き感知デバイスおよびカメラ120によって捕捉され得る。
図29(b)は、
図29(a)の入力画像フレーム2900への2値閾値化操作の適用によって得られる画像フレーム2901である。
図29(c)の画像フレーム2902は、
図29(b)の画像フレーム2901への浸食演算の適用によって得られる。
図29(d)は、
図29(c)の入力画像フレーム2902に対する膨張演算の適用により得られる画像フレーム2903である。浸食および膨張演算の組み合わせは、入力画像フレームから雑音を低減するのを助け、チップなどの観察可能な特徴をより目立たせる。
図29(e)は、チップ検出プロセスの結果を例証する画像フレーム2904である。検出されたチップ213は、外形2920によって識別される。
図29(d)の形状2910は、それらがチップ検出のプロセスの部分として基準を満たすことができないことから、チップとして識別されない。この基準は、チップとして検出されるべき形状のサイズ範囲、または他の同様の区別基準であり得る。
【0104】
[0140] いくつかの実施形態は、ゲームテーブルのゲームイベントをモニタするために
図24のフローチャート2400内の工程に従う。フレームグラバ2410は、カラービデオフレーム、奥行きフレーム、および赤外線フレームを含む、3つのフレームのストリームを集める。生の色画像は、1920×1080解像度を有する。奥行きストリームは、可視エリア内のすべての点の奥行き値を提供する。奥行き値は、観察された点のセンサからの距離である。赤外線ストリームは、視野のより暗い部分をより明白に閲覧できるようにする。
【0105】
[0141] ゲーム開始検出は2420で発生する。ゲームが開始するときを検出するために、いくつかの実施形態はトリガとしてカードを使用する。ルーレットのようなカードなしのゲームの場合、ゲームが終了するときにドリーが検出され得、ゲーム開始イベントはn番目のフレームに遡ってトリガされる。
【0106】
[0142] チップ検出および予測は2430で発生する。これは、チップの場所を検出し、チップ金銭価値およびそのチップ積み重ね内にいくつのチップがあるかを予測するプロセスである。このアルゴリズム(またはプロセス)は、適応型の閾値化およびモルフォロジー演算に基づく。これは、色画像および赤外線画像の両方に適用され得る。
【0107】
[0143] チップ値予測は、色画像内のテンプレートマッチングおよび赤外線画像内の各チップ種類の反射特徴を使用することによって、2460で実施される。次いで、チップ高さ予測が、チップの上面とテーブル平面との間の距離に基づいて計算される。
【0108】
[0144] ゲーム終了検出2460は、ゲーム開始検出と反対のプロセスである。ディーラがカードを片付けると、それがゲーム終了イベントをトリガする。ルーレットの場合、ドリーの除去の検出がこのイベントをトリガする。
【0109】
[0145] ゲーム開始および終了検出:
図25は、いくつかの実施形態がゲームテーブル上のイベントをモニタするために実施し得るゲームモニタリングプロセス2500のフローチャートを表す。本プロセス内の2つの重要な工程は、ゲーム開始検出2520およびゲーム終了検出2560である。ゲーム開始および終了トリガを規定するイベントの特定の特性は、ゲーム開始および終了トリガ構成944内に格納され得、ゲームがテーブル上で開始または終了されたことを予測するためにゲームモニタリングモジュール928によって参照され得る。例えば、ブラックジャックのゲーム用に指定されたテーブルの場合、工程2510において抽出された画像フレーム内の1つまたは複数のカードの存在は、ゲームの開始として取り扱われ得る。同様に、ゲームの開始後、画像フレーム内にいかなるカードもないことは、ゲーム終了検出2560の目的のためにゲームの終了として取り扱われ得る。ルーレットなどのカードに基づかないゲームの場合、ドリーなどの他のゲーム対象物の存在が、ゲームのための開始および終了トリガとして使用され得る。ゲーム開始または終了トリガを作動するゲーム対象物の特定の形状および特性は、コンピューティングデバイス130の構成モジュール940のゲーム開始および終了トリガ構成944に保存され得る。これらの構成は、データベースサーバ150上のウェブアプリケーションサーバ160を通じて管理され得、続いてテーブル構成伝達モジュール1140を介してコンピューティングデバイス130に転送され得る。
【0110】
[0146] 全体モニタリングプロセス:ゲームモニタリングプロセス2500は、画像フレーム2510の抽出の工程から始まる。この工程は、奥行き感知デバイスおよびカメラ120によってゲーム環境110の画像を捕捉すること、ならびにゲームモニタリングモジュール928による分析のために利用可能なコンピューティングデバイス130へのリンク107を介した捕捉画像の送信を含む。画像は、色フォーマットもしくは赤外線フォーマット、またはその両方、または奥行き感知デバイスおよびカメラが画像を捕捉することができる任意の他のフォーマットで捕捉され得る。次の工程2520は、例えば、アルゴリズム1:カード検出アルゴリズムまたはアルゴリズム2:ドリー検出アルゴリズムの適用によるゲームの開始の検出を含む。ゲームの始まりが検出されると、ゲームテーブルまたは競技面2530の平面を自動予測する工程が実施される。工程2530は、上で論じられたPCAを使用して実施され得、結果は、コンピューティングデバイス130のメモリに格納され得る。
【0111】
[0147] 次の工程2540は、チップの検出を含む。この工程は、アルゴリズム3:チップ検出アルゴリズムを通じて実施され得る。チップが検出される場合、次の工程2550は、画像内のチップの積み重ねの値を予測することであり得る。この工程は、リアルタイムまたはほぼリアルタイムで実施され得るアルゴリズム4:チップ積み重ね高さ予測アルゴリズムまたはプロセスを実施することによって実施される。本プロセスの部分はまた、積み重ねの上部のチップまたは賭け対象物の色を自動的に予測すること、およびテーブル構成モジュール942から色と関連付けられた値を読み出すことを含み得る。読み出された値は、積み重ね全体の値を自動的に予測するために、積み重ね内の賭け対象物またはチップの予測された数で乗算され得る。このアルゴリズムまたはプロセスの適用の結果は、コンピューティングデバイス130のメモリに格納され、イベントまたはトランザクションとして記録され得る。検出されたチップの積み重ねはまた、同じゲームテーブル上の他のチップの積み重ねからそれを区別するためにテーブル上の目的とする領域と関連付けられる。
【0112】
[0148] 単一の目的とする領域上のチップまたは賭け対象物の複数の積み重ねは、別個に検出され得、各積み重ねの予測された値は、目的とする領域の固有の識別子と共に別個に記録され得る。代替的に、単一の目的とする領域上のチップの複数の積み重ねの値は、合計され、目的とする領域の固有の識別子と共に記録され得る。チップの複数の積み重ねの高さは、アルゴリズム4の実施の1回の反復または数回の反復で予測され得る。チップの積み重ねの値を予測した後、別の画像フレームが、工程2514を通じてグラブされ、ゲーム終了検出工程2560が実施される。ゲーム終了検出は、例えば、任意のカードの不在を探すことによって、または工程2514でグラブされた画像フレーム内のゲームテーブル上のドリーの不在によって、実施され得る。ゲーム終了が検出されない場合、別の画像フレームが工程2512でグラブされ、この後に、工程2540においてチップの検出のさらにもう1回の反復が続く。
【0113】
[0149] ゲームの終了が検出されると、工程2570において、モニタリングプロセス中に捕捉されたイベントデータが、メッセージブローカサーバ140を介してゲームイベントデータ1124として格納されるように、データベースサーバ150に送信される。他の実施形態において、トランザクションをデータベースサーバ150に報告する工程は、イベントがリアルタイムまたはほぼリアルタイムの様式で検出されているときに発生し得る。このイベントデータは、イベントが発生したタイムスタンプ、チップが検出された目的とする領域、チップの積み重ねの予測値、ゲーム開始および終了時間、ならびにゲームモニタリングモジュール928によって捕捉される他の関連パラメータを含み得る。トランザクションをデータベースサーバに報告した後、ゲームモニタリングシステムは、工程2510および2520において、ゲームテーブルをモニタし続け、次のゲームの始まりを待ち得る。ゲーム中に捕捉されるイベントデータのいくつかの記録の例は、以下の通りである。
【0114】
[0150] ゲーム記録1<テーブルID:R.2745;ゲームID:17.0.20170421150202;ゲーム開始時間:2017-04-21 15:02:02;ゲーム終了時間:2017-04-21 15:04:02>
【0115】
[0151] ゲーム対象物記録1<テーブルID:R.2745;ゲームID:17.0.20170421150202;目的とする領域ID:プレイヤ-1、賭け対象物値:5;賭け対象物数:5>
【0116】
[0152] ゲーム対象物記録2<テーブルID:R.2745;ゲームID:17.0.20170421150202;目的とする領域ID:プレイヤ-2、賭け対象物値:10;賭け対象物数:2>
【0117】
[0153] ゲームイベントデータの上の例において、固有の識別子「ゲームID:17.0.20170421150202」を有するゲーム記録1は、固有の識別子「テーブルID:R.2745」によって識別される固有のゲームテーブルまたは競技面と関連付けられる。ゲーム記録はまた、ゲーム開始および終了タイムスタンプ値を含む。ゲーム記録1と関連付けられるのは、ゲーム対象物記録1およびゲーム対象物記録2という2つのゲーム対象物記録である。ゲーム対象物記録1は、固有の識別子「プレイヤ-1」を有する目的とする領域内で検出された値5の5つの賭け対象物の予測を表す。ゲーム対象物記録2は、固有の識別子「プレイヤ-2」を有する目的とする領域内で検出された値10の2つの賭け対象物の予測を表す。
【0118】
[0154] マルチフレーム処理:上に説明されるゲーム対象物検出への取り組みは、任意の処理を実施するために単一フレームまたはスナップショットを考慮する。この取り組みによってもたらされる結果は、マルチフレーム処理技術により擬陽性を回避しより高い精度を達成するためにさらに改善され得る。この技術は、ゲーム対象物検出およびチップ高さ予測のためのすべてのフレームを処理すること、ならびにすべての処理反復の後に得られる結果のロギングを含む。ゲーム対象物検出およびチップ積み重ね高さ予測工程を改善するために、特定の処理ルールがロギングされた結果に適用され得る。例えば、いくつかのフレームにわたって予測されたチップ積み重ね値の平均化が、誤った観察を有する数フレームを補償するために使用され得る。また、第1のカード検出が遅延され得るゲームにおいて、ゲームモニタリングモジュール928は、時間を遡って捕捉フレームを横断して、カード検出を再び実施し、新規ゲームの始まりを遡及的に識別し得る。ゲームをトリガする対象物を移動させることは、目的とする複数の領域内でカードを検出し、目的とする領域の特定の比率、例えば8領域のうちの3つ、または12領域のうちの2つがカードを有して検出された場合にのみゲームが開始されたと取り扱うことによって低減され得る。
【0119】
[0155] 奥行き感知デバイスおよびカメラ120の視野から一時的に妨害され得るゲーム対象物を検出するために、マルチフレーム処理技術も用いられ得る。
図31は、ディーラの頭3010の形態にある妨害物を有するゲームテーブルの視野を表す画像フレーム3000である。
図31は、画像フレーム3000の前後数秒に取られた
図30のゲームテーブルの視野を表す画像フレーム3100である。画像フレーム3100は、妨害物3010を有さず、チップ検出アルゴリズムの適用が、画像フレーム3000内で以前に検出されなかったチップ3113の識別を結果としてもたらす。2~4秒または1~2秒または1秒以内など、短時間で獲得され得た画像フレームに対するゲーム対象物検出プロセスの適用によって得られた結果の組み合わせは、ゲーム対象物検出プロセスの全体的な精度を改善するために使用され得る。
【0120】
[0156] 上に説明されるマルチフレーム処理技術はまた、例えば、視覚画像カメラおよび赤外線カメラから得られた画像、または2つ以上の奥行き感知デバイスおよびカメラ120から得られた画像など、異なるソースから得られた画像フレームまで拡大され得る。
図32は、奥行き感知デバイスおよびカメラ120の部分であり得る視覚画像カメラから得られた画像フレーム3200である。この画像3200では、チップ検出プロセスの適用は、チップ3210を識別することによって擬陽性結果を生成し得る。
図33は、画像事前処理工程ならびにエッジおよび輪郭検出技術が生の画像フレームに適用された後に赤外線カメラから得られた画像フレーム3300である。画像フレーム3300におけるチップ検出プロセスの適用は、画像フレーム3200内で生成された擬陽性結果を生成しない。したがって、複数の異なる(種類の)画像フレームに対するゲーム対象物検出プロセスの適用によって得られる結果の組み合わせは、ゲーム対象物検出結果の精度を改善するためにいくつかの実施形態において効果的であり得る。
【0121】
[0157]
図34のフローチャートは、いくつかの実施形態が実装し得るマルチフレーム処理技術3400の実装形態の例である。工程3410は、奥行き感知デバイスおよびカメラ120を通じて2つの画像フレームAおよびBを獲得することを含む。画像フレームAおよびBは、視覚画像カメラまたは赤外線カメラからのものであり得、例えば数ミリ秒だけ捕捉の時間が分離され得る。代替的に、画像フレームAおよびBは、例えば同じ時間点において、それぞれ視覚画像カメラおよび赤外線カメラから獲得されている。両方の画像フレームAおよびBは、実質的に同じ視点から取られ、同じゲームテーブルまたは競技面を表す。
【0122】
[0158] 工程3420は、画像フレームAおよびB内の各目的とする領域へのゲーム対象物検出プロセスの適用を含む。ゲーム対象物検出プロセスは、例えば、カード検出プロセス、またはチップもしくは賭け対象物検出プロセスであり得る。所与の目的とする領域のためのゲーム対象物検出プロセスから得られた結果は、例えば、目的とする領域内のゲーム対象物の存在の識別、目的とする領域内のゲーム対象物の数、目的とする領域内のゲーム対象物の異なる群の数、各識別された群内のゲーム対象物の数、および/またはゲーム対象物の色のうちの1つまたは複数を含み得る。ゲーム対象物検出プロセスが特定の目的とする領域内のゲーム対象物を識別しない場合、そのプロセスの結果は、NULL結果(結果が報告されない)またはゲーム対象物が検出されないことを示す結果であり得る。特定の目的とする予め規定された領域は、特定のゲーム対象物の存在の識別に指定され得る。例えば、目的とする予め規定された領域は、ゲーム対象物検出プロセスの部分としてゲームカードの識別に指定され得る。他の目的とする予め規定された領域は、ゲーム対象物検出プロセスの部分として賭け対象物の識別に指定され得る。
【0123】
[0159] 工程3430は、工程3420での画像フレームAおよびBに対するゲーム対象物検出プロセスの適用によって得られる結果の比較を含む。画像フレームAおよびBから得られた結果が一致する場合、例えば、画像フレームAおよびB内で検出されたゲーム対象物の場所、数、および色が同一である場合、工程3440において、得られた結果が承認され、コンピューティングデバイス130によってゲームイベントとして報告される。
【0124】
[0160] 画像フレームAおよびBから得られた結果が、検出されたゲーム対象物の場所または数または色のいずれかに関して一致しない場合、工程3450において、画像フレームCが奥行き感知デバイスおよびカメラ120から獲得される。画像フレームCは、異なるソース、例えば視覚画像カメラまたは赤外線カメラから捕捉され得るか、または、画像フレームAもしくはBが獲得された時間から例えば数ミリ秒だけ分離された時間点において得られていた可能性がある。すべての画像A、B、およびCは、実質的に同じ視点から得られ、同じゲームテーブルまたは競技面を表す。
【0125】
[0161] 工程3460において、工程3420で適用されたゲーム対象物検出プロセスがまた、画像フレームCに適用される。工程3470では、工程3420および3460での画像フレームA、B、およびCに対するゲーム対象物検出プロセスの適用により得られた結果が比較される。画像フレームAから得られた結果が画像フレームCから得られた結果と一致する場合、画像フレームBから得られた結果は、例外として廃棄され、画像フレームAまたはCから得られた結果が工程3440において承認される。画像フレームBから得られた結果が画像フレームCから得られた結果と一致する場合、画像フレームAから得られた結果は、例外として廃棄され、画像フレームBまたはCから得られた結果が工程3440において承認される。画像フレームAまたはBまたはCから得られた結果のいずれも一致しない場合、画像の新たなセットが、より優れたゲーム対象物検出結果を得るために工程3410において獲得され得る。
【0126】
[0162] いくつかの実施形態のこの説明において、実施形態を形成するために組み合わさるソフトウェアおよびハードウェアシステムの特定の抽象概念である図について言及がなされる。これらの抽象概念は、実施形態を理解するのを助けるためならびにそれらの再現および実施を可能にするものとして理解されるべきであり、そのために本明細書内に提示される。システムのブロックへの分割は、システムの機能に従っており、そのようなものとして、実施において、論理的または物理的にそのような様式で分割されるソフトウェアまたはハードウェアコンポーネントを有する必要がないという理解をもって提示される。システムの機能は本開示から逸脱することなく異なって分散され得るため、同様に、物理的設備設置が1つの可能性である。簡便性のため、システムおよび特定の例は、ブラックジャック、バカラ、およびルーレットのゲームという観点から説明される。システムのコンポーネントの一部またはすべてが他のテーブルゲームにも適用され得ることを理解されたい。
【0127】
[0163] いくつかの実施形態は、カメラ視野の初期背景画像をさらに用い得る。この背景画像は、空のテーブルのものであり得る。この画像は、画像内の主な特徴(テーブルレイアウト)に基づいた鳥瞰図へと歪曲され得る。この新規画像は、正規化背景画像と称され得、以後は背景抽象化のために使用され得る。
【0128】
[0164] 本開示の広範な一般範囲から逸脱することなく、多数の変形および/または修正が上記の実施形態になされ得ることが当業者によって理解され得る。したがって、本実施形態は、あらゆる点で例証的であり限定的ではないと見なされるべきである。