(57)【要約】  実施形態は、ゲームモニタリングのためのシステム及び方法に関する。具体的には、実施形態は、ゲームのモニタリングを行うために、捕捉画像を解析して、ゲームオブジェクト及びゲームイベントの識別又は検出を行うように構成された機械学習プロセスに基づいたゲームモニタリングのためのシステム及び方法に関する。
2020536324.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム台面の画像を捕捉するように構成された少なくとも１つのカメラと、
前記少なくとも１つのカメラと通信するコンピューティング装置であって、前記ゲーム台面の前記捕捉画像を解析して、前記捕捉画像内のゲームオブジェクト、ゲームイベント、及びプレイヤーを識別するための機械学習プロセスを自動的に適用するように構成されたコンピューティング装置と、
を含む、ゲームモニタリングシステム。
【請求項２】
前記機械学習プロセスが、１つ又は複数のニューラルネットワークを用いて実施される、請求項１に記載のシステム。
【請求項３】
前記１つ又は複数のニューラルネットワークが、１つ又は複数の深層ニューラルネットワークを含む、請求項２に記載のシステム。
【請求項４】
前記１つ又は複数の深層ニューラルネットワークが、１つ又は複数の畳み込みニューラルネットワークを含む、請求項３に記載のシステム。
【請求項５】
前記１つ又は複数の畳み込みニューラルネットワークの少なくとも１つが、領域提案ネットワークを含む、請求項４に記載のシステム。
【請求項６】
前記１つ又は複数の畳み込みニューラルネットワークの少なくとも１つが、オブジェクト検出ネットワークを含む、請求項４に記載のシステム。
【請求項７】
前記少なくとも１つのカメラが、高解像度画像を捕捉するように構成される、請求項１〜６の何れか一項に記載のシステム。
【請求項８】
ゲームオブジェクトが、トランプ、位置マーカー、又は通貨オブジェクトの少なくとも１つを含む、請求項１〜７の何れか一項に記載のシステム。
【請求項９】
ゲームオブジェクトが、１つ又は複数の賭けオブジェクトの１つ又は複数のスタックを含む、請求項１〜８の何れか一項に記載のシステム。
【請求項１０】
前記コンピューティング装置が、
訓練された第１の領域提案ネットワークを使用して、１つのゲームオブジェクトに関係する前記捕捉画像内の１つ又は複数の第１の関心領域を識別することと、
訓練された第１のオブジェクト検出ネットワークを使用して、１つ又は複数の賭けオブジェクトの単一のスタックに関係する前記１つ又は複数の第１の関心領域中の第１の関心領域のサブセットを識別することと、
訓練された第２の領域提案ネットワークを使用して、前記識別された第１の関心領域のサブセットのそれぞれにおいて、前記１つ又は複数の賭けオブジェクトの単一のスタックの一部を形成する各賭けオブジェクト上のエッジパターンの一部に関係する１つ又は複数の第２の関心領域を識別することと、
訓練された第２のオブジェクト検出ネットワークを使用して、前記１つ又は複数の第２の関心領域のそれぞれにおいて、価格パターンを識別することと、
前記識別された価格パターン及びルックアップテーブルを使用して、前記第１の関心領域のサブセットのそれぞれにおいて、前記１つ又は複数の賭けオブジェクトの単一のスタックの総賭け価格を推定することと、
によって１つ又は複数の賭けオブジェクトの各スタックの価格を自動的に識別及び推定するようにさらに構成される、請求項９に記載のシステム。
【請求項１２】
前記１つ又は複数の第１の関心領域のそれぞれを賭けエリア識別子に関連付けることをさらに含む、請求項１１に記載のシステム。
【請求項１３】
前記コンピューティング装置が、前記コンピューティング装置にアクセス可能なデータストアに保存されたゲーム開始及び終了トリガ構成に基づいて、ゲームの開始及び終了を識別するようにさらに構成される、請求項１〜１２の何れか一項に記載のシステム。
【請求項１４】
前記１つ又は複数のニューラルネットワークが、ファースター・リージョンベースド・コンボリューショナル・ニューラルネットワークを含む、請求項２に記載のシステム。
【請求項１５】
ゲームテーブルの捕捉画像を処理し、前記捕捉画像内のゲーム賭けオブジェクトを識別し、及び前記捕捉画像内の識別された賭けオブジェクトの価格を計算するようにニューラルネットワークシステムを訓練することを含む、方法。
【請求項１６】
訓練されたニューラルネットワークによってゲームテーブルの捕捉画像を処理して、前記捕捉画像内のゲーム賭けオブジェクトを識別することと、
前記捕捉画像内で識別された各ゲーム賭けオブジェクトに関連付けられた価格を識別することと、
前記識別されたゲーム賭けオブジェクトの前記識別された価格に基づいて、ゲーム賭け価格を決定することと、
を含む、方法。
【請求項１７】
前記処理することが、前記ゲームテーブル上の複数の別個の賭け領域の少なくとも１つにおいて、ゲーム賭けオブジェクトを識別する、請求項１６に記載の方法。
【請求項１８】
前記決定することが、ゲームオブジェクトが前記捕捉画像内で識別される各別個の賭け領域に関する総ゲーム賭けを決定することを含む、請求項１７に記載の方法。
【請求項１９】
訓練されたニューラルネットワークを使用して、ゲームテーブルの捕捉画像内の賭けオブジェクトに関する賭けオブジェクト価格を識別することを含む、方法。
【請求項２０】
ゲームオブジェクトの識別のためにニューラルネットワークシステムを実行するように構成されたコンピュータシステム又は装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにアクセス可能なメモリであって、
ゲームテーブルの捕捉画像から画像データを受信するように賭けオブジェクト領域提案ネットワーク（ＲＰＮ）と、
前記賭けオブジェクトＲＰＮの出力を受信するように賭けオブジェクト検出ネットワークと、
を実行させるためのコードを保存したメモリと、
を含み、
前記賭けオブジェクト検出ネットワークが、前記賭けオブジェクト検出ネットワークの出力に基づいて、前記捕捉画像内の１つ又は複数の賭けオブジェクトを検出する、コンピュータシステム又は装置。
【請求項２１】
ゲームテーブルの捕捉画像から画像データを受信するためのゲームテーブル領域提案ネットワーク（ＲＰＮ）と、
前記ゲームテーブルＲＰＮの出力を受信するためのゲームテーブルオブジェクト検出ネットワークと、
をさらに含み、
前記ゲームテーブルオブジェクト検出ネットワークが、前記ゲームテーブルオブジェクト検出ネットワークの出力に基づいて、前記捕捉画像内の１つ又は複数のゲームオブジェクトを検出し、前記１つ又は複数のゲームオブジェクトが、前記１つ又は複数の賭けオブジェクトとは異なる、請求項２０に記載のコンピュータシステム又は装置。
【請求項２２】
請求項１５〜１９の何れか一項に記載の方法を行うために構成された少なくとも１つのコンピュータプロセッサ及びメモリを含む、システム。
【請求項２３】
前記コンピューティング装置が、前記ゲーム台面上のディーリングデバイス上の表示灯の照明を決定するようにさらに構成される、請求項１〜１４の何れか一項に記載のゲームモニタリングシステム。
【請求項２４】
前記少なくとも１つのカメラ及び前記コンピューティング装置が、スマートフォンの一部である、請求項１〜１４の何れか一項に記載のゲームモニタリングシステム。
【請求項２５】
前記１つ又は複数の畳み込みニューラルネットワークが、前記捕捉画像内のゲームオブジェクトの外形を決定するために画像セグメント化を行うための畳み込みニューラルネットワークを含む、請求項４に記載のゲームモニタリングシステム。
【請求項２６】
画像セグメント化を行うための前記畳み込みニューラルネットワークが、Mask R-CNNである、請求項２５に記載のゲームモニタリングシステム。
【請求項２７】
前記１つ又は複数の畳み込みニューラルネットワークが、前記決定された外形の前記ゲームオブジェクトを分類するように構成されたゲームオブジェクト分類子ニューラルネットワークを含む、請求項２５に記載のゲームモニタリングシステム。
【請求項２８】
コンピュータシステムによって実行されると、前記コンピュータシステムに請求項１５〜１９の何れか一項に記載の方法を行わせるプログラムコードを保存する、有形コンピュータ可読ストレージ。
【請求項２９】
請求項１〜２８の何れか一項に記載の、又は本出願の明細書に個々に、若しくはまとめて示したステップ、プロセス、サブプロセス、システム、サブシステム、装置、インフラ、設備、及び／又は配置、並びに前記ステップ、前記プロセス、前記サブプロセス、前記システム、前記サブシステム、前記装置、前記インフラ、前記設備、及び／又は前記配置の２つ以上の任意の及びすべての組み合わせ。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  記載する実施形態は、一般に、機械学習駆動オブジェクト検出のためのシステム及び方法に関する。幾つかの実施形態は、かかるオブジェクト検出をテーブルゲームのモニタリングに適用する。特定の実施形態は、ゲーム会場におけるテーブルゲームのイベントをモニタリングするためのシステム及び方法に関する。
【背景技術】
【０００２】
[0002]  カジノ及び他のそのような会場では、現在、プレイヤーのモニタリングを行い、及びビジネス戦略を計画するために、監視技術及び他の管理ソフトウェアを使用している。彼らは、リアルタイムの行動分析論、アルゴリズム（又はプロセス）、及びプレイヤー追跡技術を展開することにより、プレイヤーの収益を最大化し、スタッフの配置を最適化し、及び会場のフロアスペースを会場の収益を最大化するゲームの種類に割り当てることを最適化しようと努める。ほとんどのカジノの常連は、硬貨、紙幣、又はチケットの代わりにプレイヤーカードを使用することを必要とするロイヤルティプログラムに参加する。これは、個人のギャンブル行動の記録及び分析を行い、プレイヤーのプロファイルを作成し、並びに各ギャンブラーが賭ける額、彼らの勝敗、及び彼らがスロットマシンのボタンを押す率といったことを記録する機会をカジノに与えてきた。しかし、テーブルゲームは、スロットマシン又はボタン操作されるゲーム機よりも簡単にモニタリングされない。
【０００３】
[0003]  テーブルゲームのモニタリング及び管理を行うためのシステムは、一般的に、導入及びメンテナンスが高価であることが証明されており、並びに真に有用であるために必要とされる精度レベルを達成できていない。他の選択肢には、カジノチップ内のセンサ及び他のオフラインイールドマネジメントソリューションを有することが含まれるが、これらは、効果的でなく、実施に費用がかかることが証明されている。カジノフロアのオペレータによるランダムサンプリングへの依存は、ゲーム会場におけるアクティビティ及びベッティングレベルの正確な状況を示さないことが多く、並びに記録及び報告が困難である場合がある。ゲーム会場の運営環境は、視覚及び聴覚的な雑音及び気を散らすことの量が多い状態でペースが速く、カード及びベッティングチップがテーブル上で不規則な位置にある可能性があり、並びに照明がかなり変化し得る。
【０００４】
[0004]  機械学習駆動オブジェクト検出の先行技術に関連した１つ若しくは複数の欠点若しくはデメリットに対処する、若しくはそれを改善すること、又は少なくとも有用な代替手段を提供することが望ましい。
【０００５】
[0005]  本明細書全体を通して、「含む（comprise）」という単語、又は「comprises」若しくは「comprising」などのバリエーションは、記載した要素、整数値、若しくはステップ、又は一群の要素、整数値、若しくはステップの包含を示唆すると理解されるが、他の要素、整数値、若しくはステップ、又は一群の要素、整数値、若しくはステップの排除は示唆しない。
【０００６】
[0006]  本明細書では、ある要素が、選択肢のリストの「少なくとも１つ」でもよいという記述は、その要素が、リストされた選択肢の何れか１つでもよいこと、又はリストされた選択肢の２つ以上の何れの組み合わせでもよいことが理解されるものとする。
【０００７】
[0007]  本明細書に含まれる文書、行為、材料、デバイス、物品などの何れの議論も、それが本出願の各クレームの優先日前に存在したため、これらの事柄の何れか若しくは全てが先行技術の基礎の一部を成す、又は本開示に関連する分野における共通の一般知識であったという承認と見なされるものではない。
【発明の概要】
【課題を解決するための手段】
【０００８】
[0008]  幾つかの実施形態は、
ゲーム台面の画像を捕捉するように構成された少なくとも１つのカメラと、
少なくとも１つのカメラと通信するコンピューティング装置であって、ゲーム台面の捕捉画像を解析して、捕捉画像内のゲームオブジェクト、ゲームイベント、及びプレイヤーを識別するための機械学習プロセスを自動的に適用するように構成された前記コンピューティング装置と、
を含むゲームモニタリングシステムに関する。
【０００９】
[0009]  機械学習プロセスは、１つ又は複数のニューラルネットワークを用いて実施され得る。１つ又は複数のニューラルネットワークは、１つ又は複数の深層ニューラルネットワークを含み得る。１つ又は複数の深層ニューラルネットワークは、１つ又は複数の畳み込みニューラルネットワークを含み得る。１つ又は複数のニューラルネットワークは、ファースター・リージョンベースド・コンボリューショナル・ニューラルネットワーク（Faster region-based convolutional neural network）を含み得る。１つ又は複数の畳み込みニューラルネットワークの少なくとも１つは、領域提案ネットワークを含み得る。１つ又は複数の畳み込みニューラルネットワークの少なくとも１つは、オブジェクト検出ネットワークを含み得る。
【００１０】
[0010]  少なくとも１つのカメラが、高解像度画像を捕捉するように構成され得る。
【００１１】
[0011]  ゲームオブジェクトは、トランプ又は位置マーカーを含み得る。ゲームオブジェクトは、１つ又は複数の賭けオブジェクトの１つ又は複数のスタックを含み得る。
【００１２】
[0012]  コンピューティングデバイスは、訓練された第１の領域提案ネットワークを使用して、１つのゲームオブジェクトに関係する捕捉画像内の１つ又は複数の第１の関心領域を識別することと、訓練された第１のオブジェクト検出ネットワークを使用して、１つ又は複数の賭けオブジェクトの単一のスタックに関係する１つ又は複数の第１の関心領域中の第１の関心領域のサブセットを識別することと、訓練された第２の領域提案ネットワークを使用して、識別された第１の関心領域のサブセットのそれぞれにおいて、１つ又は複数の賭けオブジェクトの単一のスタックの一部を形成する各賭けオブジェクト上のエッジパターンの一部に関係する１つ又は複数の第２の関心領域を識別することと、訓練された第２のオブジェクト検出ネットワークを使用して、１つ又は複数の第２の関心領域のそれぞれにおいて、価格パターンを識別することと、識別された価格パターン及びルックアップテーブルを使用して、第１の関心領域のサブセットのそれぞれにおいて、１つ又は複数の賭けオブジェクトの単一のスタックの総賭け価格を推定することと、によって１つ又は複数の賭けオブジェクトの各スタックの価格を自動的に識別及び推定するようにさらに構成され得る。
【００１３】
[0013]  システムは、１つ又は複数の第１の関心領域のそれぞれを賭けエリア識別子に関連付けることをさらに含み得る。
【００１４】
[0014]  コンピューティング装置は、コンピューティング装置にアクセス可能なデータストアに保存されたゲーム開始及び終了トリガ構成に基づいて、ゲームの開始及び終了を識別するようにさらに構成され得る。
【００１５】
[0015]  幾つかの実施形態は、ゲームテーブルの捕捉画像を処理し、捕捉画像内のゲーム賭けオブジェクトを識別し、及び捕捉画像内の識別された賭けオブジェクトの価格を計算するようにニューラルネットワークシステムを訓練することを含む方法に関する。
【００１６】
[0016]  幾つかの実施形態は、
訓練されたニューラルネットワークによってゲームテーブルの捕捉画像を処理して、捕捉画像内のゲーム賭けオブジェクトを識別することと、
捕捉画像内で識別された各ゲーム賭けオブジェクトに関連付けられた価格を識別することと、
識別されたゲーム賭けオブジェクトの識別された価格に基づいて、ゲーム賭け価格を決定することと、
を含む方法に関する。
【００１７】
[0017]  処理することは、ゲームテーブル上の複数の別個の賭け領域の少なくとも１つにおいて、ゲーム賭けオブジェクトを識別し得る。決定することは、ゲームオブジェクトが捕捉画像内で識別される各別個の賭け領域に関する総ゲーム賭けを決定することを含み得る。
【００１８】
[0018]  幾つかの実施形態は、訓練されたニューラルネットワークを使用して、ゲームテーブルの捕捉画像内の賭けオブジェクトに関する賭けオブジェクト価格を識別することを含む方法に関する。
【００１９】
[0019]  幾つかの実施形態は、ゲームオブジェクトの識別のためにニューラルネットワークシステムを実行するように構成されたコンピューティング装置であって、
少なくとも１つのプロセッサと、
少なくとも１つのプロセッサにアクセス可能なメモリであって、
ゲームテーブルの捕捉画像から画像データを受信するように賭けオブジェクト領域提案ネットワーク（ＲＰＮ）と、
賭けオブジェクトＲＰＮの出力を受信するように賭けオブジェクト検出ネットワークと、
を実行させるためのコードを保存したメモリと、
を含み、
賭けオブジェクト検出ネットワークが、賭けオブジェクト検出ネットワークの出力に基づいて、捕捉画像内の１つ又は複数の賭けオブジェクトを検出する、コンピューティング装置に関する。
【００２０】
[0020]  コンピューティング装置が、
ゲームテーブルの捕捉画像から画像データを受信するためのゲームテーブル領域提案ネットワーク（ＲＰＮ）と、
ゲームテーブルＲＰＮの出力を受信するためのゲームテーブルオブジェクト検出ネットワークと、
をさらに含んでもよく、
【００２１】
[0021]  ゲームテーブルオブジェクト検出ネットワークが、ゲームテーブルオブジェクト検出ネットワークの出力に基づいて、捕捉画像内の１つ又は複数のゲームオブジェクトを検出し、１つ又は複数のゲームオブジェクトが、１つ又は複数の賭けオブジェクトとは異なる。幾つかの実施形態のコンピューティング装置は、ゲーム台面上のディーリングデバイス上の表示灯の照明を決定するようにさらに構成される。
【００２２】
[0022]  幾つかの実施形態では、少なくとも１つのカメラ及びコンピューティング装置が、スマートフォンの一部である。
【００２３】
[0023]  幾つかの実施形態による１つ又は複数の畳み込みニューラルネットワークは、捕捉画像内のゲームオブジェクトの外形を決定するために画像セグメント化を行うための畳み込みニューラルネットワークを含む。
【００２４】
[0024]  幾つかの実施形態による画像セグメント化を行うための畳み込みニューラルネットワークは、Mask R-CNNである。
【００２５】
[0025]  幾つかの実施形態による１つ又は複数の畳み込みニューラルネットワークは、決定された外形のゲームオブジェクトを分類するように構成されたゲームオブジェクト分類子ニューラルネットワークを含む。
【図面の簡単な説明】
【００２６】
図面の簡単な説明
【図１】[0026]幾つかの実施形態によるゲームモニタリングシステムのブロック図である。
【図２】[0027]図１のゲームモニタリングシステムの一部を成す、幾つかの実施形態による自動化テーブルゲーム認識システムの模式図である。
【図３】[0028]図１のゲームモニタリングシステムの一部を成す、幾つかの実施形態による自動化テーブルゲーム認識システムの模式図である。
【図４Ａ】[0029]図１のシステムのゲーム環境の一部を成し得るゲームテーブルの表面の画像である。
【図４Ｂ】[0030]図４Ａの画像と同じであるが、ニューラルネットワーク訓練用のオブジェクト注釈を示すゲームテーブルの表面の画像である。
【図４Ｃ】[0031]図１のシステムのゲーム環境の一部を成し得るゲームテーブルの表面のニューラルネットワーク訓練画像の注釈付けを行うための注釈ツールインタフェースのスクリーンショットである。
【図５】[0032]幾つかの実施形態によるコンピューティングデバイスのブロック図である。
【図６】[0033]幾つかの実施形態によるメッセージブローカサーバのブロック図である。
【図７】[0034]幾つかの実施形態によるデータベースサーバのブロック図である。
【図８】[0035]幾つかの実施形態によるゲームの開始及び終了を検出する方法のフローチャートである。
【図９】[0036]幾つかの実施形態によるニューラルネットワークモジュールの動作を示すフローチャート及びブロック図のハイブリッドである。
【図１０】[0037]幾つかの実施形態によるニューラルネットワークを訓練する方法のフローチャートである。
【図１１】[0038]幾つかの実施形態によるオブジェクト検出方法のフローチャートである。
【図１２】[0039]チップゲームオブジェクトのスタックの画像例である。
【図１３】[0040]賭けオブジェクト画像内の関心領域の検出を示す、チップゲームオブジェクトのスタックの画像例である。
【図１４】[0041]幾つかの実施形態による非賭けオブジェクトの検出プロセスのフローチャートである。
【図１５】[0042]幾つかの実施形態による検出されたスタック賭けオブジェクトの画像である。
【発明を実施するための形態】
【００２７】
詳細な説明
[0043]  記載する実施形態は、一般に、機械学習駆動オブジェクト検出のためのシステム及び方法に関する。幾つかの実施形態は、かかるオブジェクト検出をテーブルゲームのモニタリングに適用する。特定の実施形態は、ゲーム会場におけるテーブルゲームのイベントをモニタリングするためのシステム及び方法に関する。本明細書に記載する実施形態は、本明細書によって、その内容全体がここに援用される、２０１７年５月１６日に出願された共有国際特許出願第ＰＣＴ／ＡＵ２０１７／０５０４５２号に記載されたシステム、方法、及び技術に対する改良及び／又は変更に関する。
【００２８】
ゲームモニタリングシステム
[0044]  図１は、幾つかの実施形態によるゲームモニタリングシステム１００のブロック図である。システム１００は、複数のゲームモニタリング設備１０５、ゲームモニタリングインフラ１１５、及びデータベースクライアント１８０を含み得る。ゲームモニタリング設備１０５は、ゲーム環境１１０、カメラ１２０、及びコンピューティングデバイス１３０を含む。システム１００は、カジノなどのゲーム会場の１つ又は複数のゲームルームにおける設置及び動作に適している。各ゲームルームは、内部に配置された１つ又は複数のゲームテーブルを有し、これらのテーブルの幾つか又はそれぞれは、各ゲームモニタリング設備１０５の一部を成し得る。
【００２９】
[0045]  ゲーム会場は、複数のゲーム環境（例えば、テーブルゲームが行われるエリア又はルーム）を有する場合があり、これらのゲーム環境のそれぞれのモニタリングを行うために、複数のゲームモニタリング設備１０５が存在し得る。複数のゲームモニタリング設備１０５は、ネットワークリンク１４７を使用して、共通のゲームモニタリングインフラ１１５に結合又はリンクさせることができる。ネットワークリンク１４７は、コンピューティングデバイス１３０とメッセージブローカサーバ１４０との間のリンク１１７、及びコンピューティングデバイス１３０とニューラルネットワークマネージャサーバ１６０との間のリンク１６７を含み得る。また、ゲームモニタリングインフラ１１５は、２つ以上の異なるゲーム会場にあるゲームモニタリング設備１０５に結合又はリンクされてもよい。ゲーム会場が多数のゲーム環境１１０を有し得る幾つかの実施形態では、複数のゲームモニタリングインフラ１１５が、同じ会場にあるゲームモニタリング設備１０５の異なるサブセットに結合されてもよい。
【００３０】
[0046]  ゲームモニタリングインフラ１１５は、メッセージブローカサーバ１４０、ニューラルネットワークマネージャサーバ１６０、及びデータベースサーバ１５０を含む。メッセージブローカサーバ１４０は、双方向ネットワークリンク１１７によって、複数のコンピューティングデバイス１３０に接続され得る。ネットワークリンク１２７は、メッセージブローカサーバ１４０と、データベースサーバ１５０との間に存在して、データ又は指示の転送を可能にし得る。ネットワークリンク１３７は、データベースサーバ１５０とニューラルネットワークマネージャサーバ１６０との間に存在し得る。システム１００のコンピューティングデバイス１３０及びモニタリングインフラ１１５は、別々のコンピューティングシステムであるが、これらは、本明細書に記載する様々な機能を行うために協働し、且つシステム１００の同じコンピュータアーキテクチャの一部を成すため、本明細書では、コンピューティング装置として組み合わせて記載される。
【００３１】
[0047]  サーバ１４０、１５０、及び１６０のそれぞれは、スタンドアロンサーバとして実装されてもよく、或いは１つ又は複数の物理サーバ上の別個の仮想サーバとして実装されてもよく、或いはクラウドコンピューティングサービスにおいて実装されてもよい。また、サーバ１４０、１５０、及び１６０のそれぞれは、より高い性能又は高い利用可能性要件に対処するように構成された２つ以上のサーバのネットワークを介して実装されてもよい。データベースクライアント１８０は、エンドユーザコンピューティングデバイス、又はデータを他のエンドユーザコンピューティングデバイス若しくは他のデータベースに中継するインタフェースでもよく、ネットワークリンク１５７を介してデータベースサーバ１５０に接続され得る。
【００３２】
ゲーム環境
[0048]  ゲーム環境１１０の構成は、実施されている特定のゲームに応じて異なり得るが、実施形態の何れか１つによってモニタリングされるほとんどのゲームは、幾つかの共通要素を有する。図２は、幾つかの実施形態によるゲームモニタリングシステム２００の一部を示す。このシステムは、特定のゲームの開始及び終了、賭けオブジェクト又はチップの１つ又は複数のスタックの位置、並びにスタックの賭けオブジェクト又はチップの価格を検出することができる。
【００３３】
[0049]  ゲーム環境１１０は、その上部及び上でゲームが実施される競技台面又はゲームテーブル２１０を含む。競技台面２１０は、通常、実質的に水平な平坦面を含み、その上に、ゲームモニタリングシステム１００によって検出され得る、カード２１１又はチップ２１３又は他のオブジェクトなどの様々なゲームオブジェクトが置かれている場合がある。カメラ１２０は、カメラの視野内のあらゆる障害物の上にカメラ１２０を位置付けることができる高さに、柱又は支柱２２０上に取り付けられ、カメラ１２０の視野をゲームテーブル２１０に向けて若干下向きに向けるように角度が付けられ得る。障害物は、例えば、テーブルでゲームを実施しているディーラー、又はゲームの参加者、又は通行人などの一時的な障害物の場合がある。カメラ１２０及びコンピューティングデバイス１３０の位置は、そのゲームテーブル２１０に位置する柱又は支柱上の他のディスプレイスクリーンに隣接してもよい。
【００３４】
[0050]  カメラ１２０は、競技台面上のカード及びプレイヤーを検出するために妥当な視点を維持しながら、賭けオブジェクトの１つ又は複数のスタックのより良好な断面ビューを提供するように位置付けられる。カメラ１２０の視点の一例は、図４Ａに示す画像フレーム４００である。画像フレーム４００では、競技台面２１０全体にわたる賭けオブジェクト２１３及びカード２１１が見える。同様に画像フレーム４００中に見えるのは、ゲームテーブル上で行われている特定のゲームのルールに従って、１つ又は複数の賭けオブジェクト２１３が置かれ得る競技台面２１０上の指定ベッティングエリア又は賭けエリア４１０である。
【００３５】
[0051]  図３は、幾つかの実施形態によるゲームモニタリングシステム３００の一部を示す。システム３００は、２つのカメラ１２０及び３２０を有する。カメラ１２０及び３２０は、ゲームテーブル２１０及びゲームテーブル上のゲームオブジェクトの画像を両側端から捕捉するために、競技台面２１０の両側端／サイドに取り付けられる。カメラ１２０及び３２０は、同じ物理的設備及び構成を有してもよく、及び／又は同一であってもよい。システム１００における２つのカメラ１２０、３２０の使用は、２つのカメラによって捕捉されたゲームテーブル２１０の競技台面全体の別々の画像セットの処理を可能にすることによって、ゲームオブジェクトの認識の精度を向上させることができる。別々の画像セットの処理は、１つのチップ又はチップスタックが、一方のカメラの視界からは隠れるが、他方のカメラの視界からは隠れない、チップ間オクルージョン（occlusion）の状況をシステム１００がより正確に考慮することを可能にする。
【００３６】
[0052]  他の実施形態では、各カメラが、競技台面の半分近く（又は全てよりは少ないゲームテーブル２１０の一部）のモニタリングを行うように構成されてもよく、そうすることで、オブジェクト検出の性能又は速度が向上し得る。他の実施形態では、ゲームモニタリングシステムは、３つ以上のカメラを有してもよい。カメラ３２０は、柱、支柱、保持台、壁、又は他の支持物などの支持構造３３０上に支持され得る。カメラ３２０は、カメラ３２０からコンピューティングデバイス１３０への捕捉画像及びコンピューティングデバイス１３０からカメラ３２０への指示の通信を可能にする通信リンク３１０を介してコンピューティングデバイス１３０に接続され得る。
【００３７】
[0053]  幾つかの実施形態では、コンピューティングデバイス１３０は、スマートフォンの形態であってもよい。カメラ１２０は、スマートフォンカメラの形態でコンピューティングデバイス１３０に埋め込まれてもよい。スマートフォンの形態のコンピューティングデバイス１３０は、実施形態による様々な機械学習プロセスを実施するために必要なハードウェア構成を有するべきである。例えば、Google Pixel 2電話機又は同等の技術仕様書を有する電話機が、コンピューティングデバイス１３０及びカメラ１２０を提供するスマートフォンとして使用され得る。コンピューティングデバイス１３０が、スマートフォンとして実装される場合、ニューラルネットワークマネージャサーバ１６０との通信を容易にするため、及びメッセージブローカサーバ１４０との通信のために、スマートフォンに設けられた通信インタフェースを使用することができる。スマートフォンで使用される通信インタフェースは、セルラー通信インタフェース、又はスマートフォンで提供されるWi-Fi通信インタフェースでもよい。コンピューティングデバイス１３０及びカメラ１２０としてのスマートフォンの使用は、ゲームモニタリングシステム１０５の一部を提供するように構成することができる市販品として入手可能なデバイスを利用することによって、ゲームモニタリングシステム１０５の実装を単純化する。スマートフォンの使用は、カメラ１２０とコンピューティングデバイス１３０との間のインタフェースも単純化する。スマートフォンでは、コンピューティングデバイス１３０及びカメラ１２０は、単一の物理ユニットの一部であり、互いに通信するように事前に構成される。ゲームモニタリング設備１０５において２つ以上のカメラが必要な場合がある実施形態では、２つのスマートフォンを使用して、それぞれが独自のコンピューティングデバイス１３０を備えた２つのカメラ１２０及び３２０を提供してもよい。
【００３８】
[0054]  ゲームの参加者は、賭けをし得るプレイヤー及びゲームを実施するディーラーを含む。賭けをするため、又はゲームを実施するために、ゲームオブジェクトと呼ばれるオブジェクトが、プレイヤー又はディーラーによって使用される。ゲームオブジェクトは、識別するための特定のマーキングを有する特定の形状のカード２１１を含んでもよく、チップ、又は賭けオブジェクト２１３、又は他のそのようなオブジェクトは、プレイヤーがゲームで賭け得る額を指定することができ、又はルーレットのゲームで使用される位置マーカー若しくはドリーなどのゲームの結果を指定し得る独自の形状を有する他のオブジェクトを含んでもよい。ゲームは、ゲームの開始、ゲーム中のプレイヤーによる賭け、ゲーム中の中間結果、及びゲームの最終結果を決定するゲームの終了を含む一連のゲームイベントを通して実施される。ゲーム中に、プレイヤーは、賭けをするために指定された賭けエリア又はベッティングエリアに自分の賭けオブジェクト２１３（すなわち、ベッティングトークン又はチップ）を置くことによって賭けをすることができる。チップ又は賭けオブジェクトは、競技台面２１０上の賭けエリア内にグループ又はスタックで配置され得る。賭けオブジェクトのグループ又はスタックは、賭けオブジェクトの共通の色又は額面（関連付けられた賭け価格）を含んでもよく、或いはそれは、２つ以上の色又は額面の賭けオブジェクトの組み合わせを含んでもよい。
【００３９】
[0055]  カメラ１２０及び３２０は、例えば、ゲームテーブルのエッジ付近から約０〜４（任意選択的に約２〜３）メートルの距離に取り付けられてもよく、及びテーブル高さの上約０〜３（任意選択的に約１〜２）メートルに上げられてもよい。カメラ１２０及び３２０は、例えば、水平から約１５〜４５度の範囲の角度で下向きに角度が付けられてもよい。カメラ１２０及び３２０は、例えば、７２０ｐ（最大１２８０×７２０ピクセルの画像）、又は１０８０ｐ（最大１９２０×１０８０ピクセルの画像）、又は４ｋ（最大４０９６×２１６０ピクセルの画像）の解像度などの高解像度で画像を捕捉するのに適し得る。カメラは、例えば、３０フレーム／秒（ｆｐｓ）、又は６０ｆｐｓ、又は９０ｆｐｓの率で画像を連続的に捕捉し得る。カメラは、ＵＳＢケーブル又は無線通信リンクの形態でもよい通信リンク１０７を介してコンピューティングデバイス１３０へと捕捉画像を通信し得る。カメラ１２０及び３２０のそれぞれに関して適切なカメラの一例は、LogitechのBRIO 4k Webcamカメラである。
【００４０】
コンピューティングデバイス
[0056]  カメラ１２０によって生成されたデータは、通信ポート５９０を介してコンピューティングデバイス１３０によって受信される。ポート５９０は、ＵＳＢポート、又はカメラ１２０と結合して捕捉された画像を受信する、或いは画像の捕捉を開始若しくは終了するための指示を送信する無線アダプタの形態でもよい。コンピューティングデバイス１３０のハードウェアコンポーネント５１０は、メモリ５１４、プロセッサ５１２、及びコンピューティングデバイスの動作に必要な他のコンポーネントを含む。メモリ５１４は、画像処理ライブラリ５２２、カメラＡＰＩ５２４、ランタイム環境ドライバ５２６、ニューラルネットワークモジュール５２８、ゲームイベント検出モジュール５３２、及びメッセージ生成モジュール５３４を含む必要なソフトウェアモジュール５２０を保存する。
【００４１】
[0057]  画像処理ライブラリ５２２は、閾値処理演算、画像に対するモルフォロジー演算、及びニューラルネットワークモジュール５２８への入力として画像を提供する前に画像の前処理に必要な他のプログラムを行うなどの基本画像処理演算を行うためのプログラムのセットである。OpenCVは、用いられ得る画像処理ライブラリの一例である。カメラＡＰＩ５２４は、コンピューティングデバイス１３０が１つ又は複数のカメラ１２０との通信チャネルを確立することを可能にするプログラムのセットである。このカメラＡＰＩ４２４は、カメラ１２０によって生成されたデータがニューラルネットワークモジュール５２８によって受信及び処理されることを可能にする。
【００４２】
[0058]  ニューラルネットワークモジュール５２８からの指示に基づいて、メッセージ生成モジュール５３４は、メッセージブローカサーバ１４０に渡されるメッセージを生成する。メッセージ生成モジュールは、例えば、RabbitMQ又はKafkaなどの標準メッセージングシステムに基づいてもよい。構成モジュール５４０内の保存されたメッセージブローカ構成５４６に基づいて、メッセージ生成モジュール５３４は、通信ポート５９０及びネットワークリンク１１７を介してメッセージブローカサーバ１４０にメッセージを通信することができる。構成モジュール５４０は、ゲーム開始及び終了トリガ構成５４４も含む。ゲーム開始及び終了トリガ構成５４４は、特定のテーブル上のゲームの開始及び終了を指定する特定のゲームイベントの詳細を含む。構成モジュール５４０のコンポーネントは、１つ又は複数の構成ファイルの形態でメモリ５１４に保存され得る。構成ファイルは、例えば、ＸＭＬフォーマットで保存され得る。
【００４３】
メッセージブローカサーバ
[0059]  メッセージブローカサーバ１４０は、メッセージ仲介サービスを実施し、及びネットワークリンク１１７を介して複数のコンピューティングデ]バイス１３０からのメッセージをリスンする。メッセージブローカサーバ１４０は、共通のローカルネットワーク内のコンピューティングデバイス１３０と同じ構内に位置してもよく、或いは構外（リモート）に位置するが、メッセージ及びデータの転送を可能にするために２つの構内間で確立されたネットワークリンク１１７を介して通信し得る。メッセージブローカサーバ１４０は、一元化され、及び一元化メッセージ仲介サービスを提供するために複数のゲーム会場にあるコンピューティングデバイス１３０に接続されてもよい。
【００４４】
[0060]  メッセージブローカサーバ１４０は、メモリ６１４、プロセッサ６１２、及びサーバの動作に必要な他のハードウェアコンポーネントを含むハードウェアコンポーネント６１０を有する。メッセージキューモジュール６２０は、複数の構成デバイス１３０からのメッセージの受信、解釈、及び処理を行うためにキューを実施する。メッセージは、ネットワークアダプタ、又はメッセージブローカサーバ１４０への及びメッセージブローカサーバ１４０からのデータ及び指示の双方向転送を可能にできる他の同様のポートの形態でもよい通信ポート６９０を介して受信される。メッセージキューモジュール６２０は、RabbitMQ又はKafkaなどのメッセージブローカパッケージを用いて実装され得る。メッセージキューモジュール６２０は、ゲームテーブル上で生じているゲームイベントに関するトランザクション情報を含むメッセージを受信すると、データベースパージングモジュール６３０を開始する。データベースパージングモジュール６３０は、メッセージキューモジュール６２０によって受信されたメッセージを、ネットワークリンク１２７を介して後にデータベースサーバ１５０上で実行されるデータベースクエリへとパースする。
【００４５】
データベースサーバ
[0061]  データベースサーバ１５０は、メッセージブローカサーバ１４０からゲームイベントデータを受信し、ゲームモニタリングシステム１００によって捕捉されたゲームイベントデータへのアクセスを提供するためにデータベースクライアント１８０のリポジトリとして機能する。データベースサーバ１５０は、メモリ７１４、プロセッサ７１２、及びサーバの動作に必要な他のハードウェアコンポーネントを含むハードウェアコンポーネント７１０を有する。通信ポート７９０は、ネットワークアダプタ、又は１つ若しくは複数のネットワークリンクを介したデータベースサーバ１５０への及びデータベースサーバ１５０からのデータ及び指示の双方向転送を可能にできる他の同様のポートの形態でもよい。データベースモジュール７２０は、MySQL（商標）、Postgres、又はMicrosoft（商標）SQL Serverなどのデータベース管理システムによって実装され得る。
【００４６】
[0062]  ゲームイベントデータ７２４は、ゲームテーブル又は競技台面上で生じるゲームイベントを表すトランザクションデータを含む。ゲームイベントデータを形成する記録は、ゲームイベントが認識された時刻に関するタイムスタンプ、ゲームイベントが生じたゲームテーブルに関する固有の識別子、賭け、ゲームの中間結果、ゲームの最終結果などのゲームイベントの性質に関する識別子、ゲームイベントに関連付けられた賭けエリアの識別子、関心領域に関連付けられた賭け額の推定値、及びゲームイベントを表す他の関連の属性を含み得る。
【００４７】
[0063]  テーブル構成データ７２２は、ゲームテーブル及び関連付けられたコンピューティングデバイス１３０の固有の識別子、ゲームの開始及び終了トリガイベントの性質（ゲームの開始が、競技台面上にカードを置くことによって、又は特定の関心領域上に特定のゲームオブジェクトを置くことによって検出されるかどうか）、並びにゲームモニタリングシステム１００によって依存されるパラメータを表すために必要な他の関連のデータを含む。幾つかの実施形態では、テーブル構成データ７２２及びゲームイベントデータ７２４は、別々のデータベースサーバに保持されることにより、ゲームモニタリングシステム１００のより高い拡張性及び管理容易性を可能にすることができる。
【００４８】
ゲームイベント検出
[0064]  幾つかの実施形態では、カメラ１２０は、リアルタイムでかなりの量のデータを生成し得る高解像度カメラでもよい。かかる高解像度カメラによって生成された全てのデータの保存及び処理を行うことは、捕捉されたデータを保存及び処理するためのかなりの保存及び処理能力を獲得する観点から、大きな課題を提示し得る。加えて、深層ニューラルネットワークにより大量のデータを処理することは、追加の処理コア又はグラフィカルプロセッシングユニット（ＧＰＵ）によるかなりの量の処理能力を必要とし得る。
【００４９】
[0065]  上記の課題に対処するために、ゲームモニタリングシステムは、ゲーム環境１１０においてゲームの開始及び終了を検出し、並びにゲームが開始されて初めて高解像度画像を捕捉するように構成される。幾つかの実施形態では、捕捉された高解像度画像は、ゲームオブジェクトを識別し、及び賭けオブジェクトの価格を推定するために、実質的にリアルタイムでニューラルネットワークモジュール５２８によって処理され得る。他の実施形態では、捕捉された高解像度画像は、コンピューティングデバイス１３０に保存され、及び非リアルタイムでニューラルネットワークモジュール５２８によって処理され得る。
【００５０】
[0066]  図８のフローチャート８００は、幾つかの実施形態によるゲームの開始及び終了を検出するためのプロセスを示す。ゲーム環境１１０における開始及び終了ゲームイベントの検出は、ほぼリアルタイムで生じる。開始及び終了ゲームイベントを検出するために、輪郭検出技術が用いられ得る。輪郭検出技術が適用され得る前に、幾つかの画像前処理ステップが、カメラ１２０によって捕捉された画像に適用される。これらの画像前処理ステップは、輪郭検出技術を実施するプロセス又はアルゴリズムの性能及び精度を向上させる。
【００５１】
[0067]  入力画像フレームは、ステップ８１０において、１つ又は複数のカメラ１２０、３２０によって獲得され得る。この入力画像は、必ずしも高解像度画像である必要はない。幾つかの実施形態は、カードゲームの開始時刻及び終了時刻を確認するために、カード検出プロセスを用いる。これは、例えば、テーブルの利用及びディーラーの効率を決定するために有用な情報となり得る。さらに、高解像度画像の保存及び処理は、ゲームが開始されたことが検出されるまで回避することができ、及びゲームが終了したと決定されるとすぐに停止することができ、これにより、画像処理における計算効率の向上が提供される。幾つかの実施形態によれば、高解像度画像は、例えば、７２０×４８０、又は１９２０×１０８０、又は３８４０×２１６０の解像度の画像を含む。幾つかの実施形態によれば、高解像度画像は、７２０×４８０を超える、１９２０×１０８０を超える、又は３８４０×２１６０を超える解像度の画像を含む。
【００５２】
[0068]  カード検出プロセスを用いる実施形態の場合、用いられ得る画像前処理技術の１つは、ステップ８２０における閾値処理である。大域的閾値処理又は適応閾値処理又は大津の二値化処理などの幾つかの閾値処理技術の１つを用いて、画像を入力画像において黒又は白の部分を表すピクセルを有する二値画像にセグメント化することができる。
【００５３】
[0069]  閾値処理の演算後に、ステップ８３０におけるモルフォロジー変換が、閾値処理演算の出力画像に適用され得る。モルフォロジー変換は、画像において検出されるフィーチャを強調し、並びに輪郭検出プロセスの性能及び精度を向上させる。ステップ８３２で適用されるエロージョン及びステップ８３４で適用されるダイレーションは、画像前処理段階中に適用され得るモルフォロジー変換の例である。エロージョン及びダイレーションプロセスは共に、２つの入力、すなわち、カメラ１２０によって捕捉された行列及び構造要素、又は入力画像に対して行われるモルフォロジー演算の性質を決定するカーネルの形態の画像データを必要とする。カーネルは、正方形又は円形状でもよく、定義された中心を有し、及び入力画像を横断することにより演算として適用される。
【００５４】
[0070]  エロージョンのモルフォロジー変換は、画像を横断する際にピクセルの値が、１の値、又は対応するカーネルにおける全ての値が１である場合にのみ白色に対応する値、又は白色に対応する値のままにされるカーネルを使用することによって、画像における前景オブジェクトの鮮明化を含む。サイズ３×３、又は５×５、又は他のサイズのカーネルが、エロージョンの演算に用いられ得る。エロージョン演算は、前景オブジェクトの境界のエロージョンを行う。エロージョンの演算は、画像処理ライブラリ５２２の既定のライブラリによって行われ得る。
【００５５】
[0071]  エロージョンを達成するために、カーネルは、画像全体をスライドする（２Ｄ畳み込みの場合のように）。オリジナル画像のピクセル（１又は０）は、カーネル下の全てのピクセルが１である場合にのみ１と見なされ、そうでなければ、エロージョンが行われる（ゼロにされる）。
【００５６】
[0072]  ダイレーションの演算は、エロージョンの逆である。例えば、３×３の正方形行列カーネルを用いたダイレーション演算において、カーネルの中心のピクセルは、１の値、又は対応するカーネルにおける値の何れか１つが１である場合に白色に対応する値、又は白色に対応する値のままにされる。ダイレーションの結果、画像におけるフィーチャは、より連続的且つより大きくなる。ダイレーションの演算は、画像処理ライブラリ５２２の既定のライブラリによって行われ得る。
【００５７】
[0073]  閾値処理技術を画像に適用することにより、二値画像が生成される。画像に存在するフィーチャをさらに強調するために、エロージョン及びダイレーションのモルフォロジー変換が適用される。モルフォロジー変換は、画像のノイズの減少、個々の要素の分離、及び画像における異種要素の結合に有利に役立つ。
【００５８】
[0074]  画像輪郭は、画像に表されるオブジェクトの境界に沿って、全ての連続点を結合する曲線を含む。輪郭は、形状解析と、オブジェクトの検出及び認識とに有用なツールである。輪郭近似を使用して、特定の形状の類似性を適用における所望の形状の類似性に近似させる。所望の形状は、例えば、多角形、又は円形、又は楕円状であってもよい。より高い精度及び性能のために、エッジ検出演算が行われた後に、輪郭検出演算が、二値画像に対して行われ得る。
【００５９】
[0075]  ステップ８４０で適用されるエッジ検出は、画像内のオブジェクトの境界を求める画像処理技術である。それは、入力画像における輝度の不連続性を検出することを伴う。幾つかのエッジ検出技術の中でも、キャニーエッジ検出は、幾つかの実施形態によって実施され得る一般的な多段エッジ検出アルゴリズム又はプロセスである。
【００６０】
[0076]  エッジ検出のステップの幾つか又は全ては、画像処理ライブラリ５２２で利用可能なプログラムによって行われ得る。例えば、OpenCVライブラリが使用される場合、「キャニー」エッジ検出関数呼び出しが使用され得る。エッジ検出の他の代替方法が、入力画像においてエッジの同じ識別結果を得るために、キャニーエッジ検出の代替手段として利用されてもよい。
【００６１】
[0077]  エッジを識別するためにエッジ検出演算子が入力画像に適用された後に、ステップ８５０において、輪郭検出プロセスが、画像における形状の類似性を例えば多角形又は円形などの特定のモデル形状に近似させるために、エッジ検出演算の結果に適用され得る。
【００６２】
[0078]  輪郭近似は、実施形態に明記される正確さに応じて、輪郭形状をより少ない頂点数の別の形状（多角形）に近似させる。幾つかの実施形態は、輪郭近似のためにDouglas-Peuckerアルゴリズムを実施し得る。
【００６３】
[0079]  輪郭近似演算は、画像処理ライブラリ５２２のプリパッケージ関数を使用して、それらをゲームモニタリングモジュール９２８で呼び出すことによって行われ得る。例えば、輪郭推定プロセスを実施するためにOpenCVが使用される場合、例えば、プロセスを実施するために、関数「findContours」、又は「drawContours」、又は「approxPolyDP」が呼び出され得る。
【００６４】
[0080]  幾つかの実施形態では、ゲームの開始は、ステップ８６０において、ゲームテーブル上のカードの最初の存在を検出することによって検出され得る。カードの存在を検出するために、輪郭近似ステップの終わりに識別された輪郭が解析される。解析は、輪郭の面積を計算すること、頂点の数及び輪郭のエッジによって形成される角度を識別することを含む。カードを識別するために、幾つかの実施形態では、以下の基準が適用され得る：４０〜７０ｃｍ２又は５０〜６０ｃｍ２の輪郭の面積、近似後の４つの頂点及び９０度に近い角度。識別された輪郭の１つ又は複数が、カードとして識別された場合、ゲームイベント検出モジュール５３２は、ゲームの開始の信号を送る。ゲームの開始を識別する信号は、ゲームモニタリングシステム１００によって、カメラ１２０による高解像度画像の捕捉及び保存を開始するためのトリガとして使用され得る。これらの基準は、ゲーム台面に対するカメラ１２０の角度若しくは配置、又は使用されているカードの性質に応じて、具体的に較正又は調節され得る。
【００６５】
[0081]  ゲームの開始及び終了トリガを定義するイベントの特定の性質は、ゲーム開始及び終了トリガ構成５４４に保存され、並びにテーブル上でゲームが開始した又は終了したかどうかを推定するために、ゲームイベント検出モジュール５３２によって参照され得る。例えば、ブラックジャックのゲームに指定されたテーブルの場合、画像フレーム内の１つ又は複数のカードの存在は、ゲームの開始として扱われ得る。同様に、ゲームの開始後に、画像フレーム内のカードの不在は、ステップ８８０において、ゲームイベント検出モジュール５３２によってゲームの終了として扱われ得る。ルーレットなどのカードに基づかないゲームの場合、ドリーなどの他のゲームオブジェクトの存在が、ゲームの開始及び終了トリガとして使用され得る。ゲーム開始又は終了トリガ始動ゲームオブジェクトの特定の形状及び性質は、コンピューティングデバイス１３０の構成モジュール５４０のゲーム開始及び終了トリガ構成５４４にセーブされ得る。
【００６６】
[0082]  ゲームの開始がゲームイベント検出モジュール５３２によって識別され、及びカメラ１２０がステップ８７０で高解像度画像の捕捉を開始すると、ニューラルネットワークモジュール５２８は、それをオブジェクト検出及び賭け価格推定プロセスに使用し得る。しかし、ニューラルネットワークモジュール５２８は、これらの演算を正確に行うことができる前に、特定のゲーム環境に従って所望の演算を最も良く行うように、ニューラルネットワークの較正、構築、又は重み付けを行うために必要な訓練を受ける。
【００６７】
ニューラルネットワークモジュール
[0083]  ゲームテーブル上のゲームオブジェクトを検出し、及び賭けオブジェクトの価格を推定するために、ゲームモニタリングシステム１００は、関数を行うように機械学習プロセスを訓練することに依存する。幾つかの実施形態における機械学習プロセスは、１つ又は複数のニューラルネットワークを用い得る。幾つかの実施形態では、１つ又は複数のニューラルネットワークは、１つ又は複数の深層学習ニューラルネットワークを含み得る。幾つかの実施形態では、深層学習ニューラルネットワークの１つ又は複数は、畳み込みニューラルネットワーク（ＣＮＮ）でもよい。
【００６８】
[0084]  幾つかの実施形態によって実装されるＣＮＮは、構造及び動作において互いに異なり得る複数のニューロン層を含み得る。ＣＮＮの第１の層は、ニューロンの畳み込み層でもよい。ニューロンの畳み込み層は、入力画像のピクセル間の空間的関係を維持しながら、入力画像からフィーチャを抽出する機能を行う。畳み込み演算の出力は、入力画像のフィーチャマップを含み得る。畳み込みの演算は、フィルタ又はカーネル行列を使用して行われ、及びフィルタ又はカーネル行列の特定の重みは、後に記載するプロセスによってＣＮＮを訓練することにより取得又は較正される。
【００６９】
[0085]  畳み込み層の後に、幾つかの実施形態におけるＣＮＮは、プーリング層又は正規化線形ユニット（ＲｅＬＵ）層又は両方を実装する。プーリング層は、最も重要なフィーチャ情報を保持しながら、各フィーチャマップの次元を減少させる。ＲｅＬＵ演算は、入力画像から学習される現実世界のデータのほとんどが非線形であるので、ＣＮＮに非線形性を導入する。ＣＮＮは、複数の畳み込み層、ＲｅＬＵ層、及びプーリング層を含んでもよく、先行プーリング層の出力が、後続の畳み込み層への入力として与えられ得る。この多数のニューロン層は、ＣＮＮが深層学習アルゴリズム又は技術と呼ばれる理由である。ＣＮＮの最終層１つ又は複数の層は、出力を生じさせるために畳み込み層及びプーリング層によって抽出された高レベルフィーチャを使用する従来の多層パーセプトロンニューラルネットワークでもよい。ＣＮＮの設計は、動物の視覚野のニューロンのパターン及び接続性から着想を得たものである。ＣＮＮの設計のこの基礎は、画像におけるオブジェクト検出の機能を行うためにＣＮＮが選択され得る理由の１つである。
【００７０】
[0086]  ニューラルネットワークモジュール４２８は、リージョンベースド・コンボリューショナル・ニューラル・ネットワーク（R-CNN（region-based convolutional neural network））又はファースター・リージョンベースド・コンボリューショナル・ニューラル・ネットワーク（Faster R-CNN）などの畳み込みニューラルネットワークの形態であってもよい。幾つかの実施形態は、Faster R-CNNの基礎フィーチャエクストラクタとしてResnet-101又はＳＳＤ（シングルショット検出器）を使用し得る。ニューラルネットワークモジュール４２８は、他の深層学習法又は他の機械学習法に基づいてもよい。本明細書の以下の部分は、Faster R-CNNニューラルネットワーク訓練プロセスに基づいた幾つかの実施形態に関するオブジェクト検出及び訓練方法を記載するが、これは、他の実施形態への他の適切な機械学習又は深層学習法の適用性を限定するものでは決してない。
【００７１】
[0087]  図９のフローチャート９００は、幾つかの実施形態によるニューラルネットワークモジュール５２８の動作を高レベルで示す。ニューラルネットワークモジュール５２８は、ゲームテーブル領域提案ネットワーク（ＲＰＮ）９２０、ゲームテーブルオブジェクト検出ネットワーク９３０、賭けオブジェクトＲＰＮ９４０、及び賭けオブジェクト検出ネットワーク９５０の訓練及び保守を行う。本明細書に記載するオブジェクト検出及び賭け価格推定プロセス又は方法は、Faster R-CNN訓練プロセスに従って訓練されたニューラルネットワークモデルによって行われ得る。この訓練プロセスは、２つの高レベルステップ又はモジュールを含む。第１のステップは、本明細書において領域提案ネットワーク（ＲＰＮ）とも呼ばれる深層完全畳み込みニューラルネットワークによる、入力画像の様々な提案関心領域の識別又は分離を伴う。この第１のステップは、ゲームテーブルＲＰＮ９２０及び賭けオブジェクトＲＰＮ９４０によって行われる。第２のステップは、ＲＰＮによって識別された提案関心領域を使用して、Fast R-CNNオブジェクト検出器に基づいてオブジェクト検出を行うことを伴う。このステップは、ゲームテーブルオブジェクト検出ネットワーク９３０及び賭けオブジェクト検出ネットワーク９５０によって行われる。
【００７２】
[0088]  ＲＰＮ９２０及び９４０は、入力として画像を取り込み、及び出力として、１つ又は複数のオブジェクト提案を生成し得る。各オブジェクト提案は、検出されたオブジェクトを有する関心領域の矩形境界を定義することができる画像上の座標、及びオブジェクトのクラスの１つが関心領域内に存在し得る可能性を反映する関連付けられたオブジェクトネススコアを含み得る。オブジェクトのクラスは、ＲＰＮが受けたかもしれない訓練に基づいて、検出の関心があるカード、賭けオブジェクト又はプレイヤー又は他の関連のオブジェクトを含み得る。
【００７３】
[0089]  ＲＰＮによるオブジェクト提案で識別された関心領域は、重なり合う場合があり、又は１つの関心領域が、別の関心領域によって完全に覆われる場合がある。関心領域は、オブジェクト提案において識別されたオブジェクトの形状をより良く近似するために様々なアスペクト比を有し得る。
【００７４】
訓練ニューラルネットワークモジュール
[0090]  ゲームテーブル又は競技台面上のオブジェクト検出を行うためにＲＰＮ又はFast R-CNNが用いられ得る前に、ニューラルネットワークは、かなりの訓練データセットに基づいた訓練を受ける。幾つかの既知の教師あり訓練方法論の１つ又は複数が、関連のニューラルネットワークの訓練に用いられ得る。訓練データセットは、関心領域の境界及び各関心領域のオブジェクトの識別情報が手動で識別及び記録されたかもしれない幾つかの画像を含み得る。関心領域の境界は、関心領域を定義する矩形の４つの点の座標を用いて記録され得る。
【００７５】
[0091]  図１０のフローチャート１０００は、幾つかの実施形態によって実装され得るＣＮＮの訓練技術又はプロセスを示す。この訓練方法論は、ゲームテーブルＲＰＮ９２０又は賭けオブジェクトＲＰＮ９４０などのＲＰＮを訓練するために実施され得る。この訓練方法論は、ゲームテーブルオブジェクト検出ネットワーク９３０又は賭けオブジェクト検出ネットワーク９５０などのオブジェクト検出ネットワークを訓練するために実施され得る。
【００７６】
[0092]  深層学習オブジェクト検出の訓練、テスト、及び実行を行うための方法１０００を行うために使用することができる適切なハードウェア及びソフトウェアの一例を以下に示す。
【００７７】
[0093]  ハードウェア：
ａ．ＣＰＵ：Intel i7 7700k Quad Core
ｂ．ＲＡＭ：１６ＧＢ
ｃ．ＧＰＵ：それぞれ１２ＧＢのメモリを備えたDual GTX 1080 Ti
【００７８】
[0094]  ソフトウェア：訓練及び推論プロセスが、Tensorflowフレームワークを使用して行われ得る。
ａ．Tensorboard:ネットワークの訓練及び評価のモニタリングを行うためのもの。
ｂ．モデル：Tensorflowオープンソースコミュニティ駆動モデルGitHubリポジトリ。
ｃ．事前訓練モデル：Tensorflowは、幾つかの事前訓練モデルを提供する。これらのモデルは、飛行機から犬に及ぶ数千の異なるクラスを有する大量のデータセットに関して訓練される。幾つかの一般的なデータセットは、ＭＳＣＯＣＯ（http://cocodataset.org/）及びPascal VOC（http://host.robots.ox.ac.uk/pascal/VOC/）である。このように、どのようなタスクにも合うようにモデルを微調整することが可能である。このプロセスは、転移学習と呼ばれる。
ｄ．Google Compute Cloud Engine：全てのローカル資源が使用されている場合、訓練ジョブは、Google Compute Cloud Engine上で展開することができる。
【００７９】
[0095]  Tensorflow Object Detection（ＯＤ）モデル（モデル例として）を訓練するために必要とされる情報は、
画像データ、
画像の高さ、幅、及び奥行き、
オブジェクト名（カード、チップ、現金、人）及び画像中のバウンディングボックス座標（xmin, ymin, xmax, ymax）、並びに
難しいオブジェクト、セグメント化などの他のパラメータが使用され得るが、主にデータベース評価のためである。
Pascal VOCフォーマット（http://host.robots.ox.ac.uk/pascal/VOC/）は、単一画像のＯＤ情報をパックするための適切なＸＭＬフォーマットである。
【００８０】
[0096]  第１のステップ１０１０として、ＣＮＮは、幾つかの実施形態においてガウス分布から得ることによってランダムに生成され得るパラメータ又は重みを用いて初期化され得る。代替的に、幾つかの実施形態では、訓練を開始するために、以前に訓練されたＣＮＮが使用され得る。一例として、ＲＰＮを訓練するために、１つ又は複数のグラウンドトゥルース領域又はボックスが、全ての訓練画像１０２０で識別され得る。グラウンドトゥルース領域又はボックスは、訓練画像においてオブジェクト及びその境界を識別する。訓練画像は、入力として初期化されたＲＰＮに渡されることにより、出力として潜在的な関心領域が取得され得る。
【００８１】
[0097]  ＲＰＮ又はＣＮＮの出力に基づいて、損失関数又は誤差関数が、ステップ１０３０において計算され得る。損失関数の出力は、入力画像のグラウンドトゥルースボックス又は領域と、ＲＰＮ又はＣＮＮによって生成された領域提案との間の差を示し得る。ステップ１０４０において、損失関数の出力を使用して、ＲＰＮ又はＣＮＮの重みに対して確率的勾配降下法が計算され得る。この誤差勾配は、計算された誤差関数又は損失関数を最小限にするように重みを調節するために、ＲＰＮ又はＣＮＮを通して逆伝搬され得る。このプロセスは、ステップ１０５０で訓練データセットが尽きるまで、複数（多数）の入力画像を用いて継続され得る。
【００８２】
[0098]  上記の誤差又は損失関数、並びに逆伝搬及び確率的勾配降下法の原理に依存して、ＲＰＮ又はＣＮＮは、端から端まで訓練されて、誤差又は損失関数を最適化することによってその精度を向上させることができる。かなりの訓練データセットを用いた訓練を複数繰り返した後に、ＲＰＮ又はＣＮＮは、許容できる精度レベルで動作することができ、及び後に、ニューラルネットワークモジュール５２８に組み込むことができる。
【００８３】
[0099]  ゲームテーブルオブジェクト検出ネットワーク９３０及び賭けオブジェクト検出ネットワーク９５０は、オブジェクト検出ネットワーク９３０及び９５０が、入力として識別された関心領域を受け入れ、及び出力として関心領域におけるオブジェクトのあるクラスの存在の確率を提示するという違いを除き、ＣＮＮ又はＲＰＮに対して識別された同じ原理に基づいて訓練され得る。
【００８４】
[0100]  さらに、オブジェクト検出ネットワーク９３０及び９５０は、ゲームテーブルＲＰＮ９２０及び賭けオブジェクトＲＰＮ９４０と共に訓練されることにより、ニューラルネットワークモジュール５２８の効率及び精度を向上させ得る２つのネットワーク間での畳み込み層の共有が可能となり得る。この一緒の訓練は、２つのネットワークの訓練を交互に行うこと、及び一方のネットワークの出力に他方の入力として依存することを含み得る。一緒の訓練に関する別の代替手段は、２つのネットワークを統合して単一のネットワークを形成すること、並びに各訓練反復でネットワーク全体の重みを変えるために、逆伝搬及び確率的勾配分布に依存することを含み得る。
【００８５】
[0101]  機械学習又はニューラルネットワークアルゴリズムを訓練するためのかなりのデータセットを準備するために、関心領域が、ゲームテーブル上のゲームから捕捉された画像において、手動で得られ、又は識別され得る。関心領域は、例えば図４Ｃに示されるような注釈又はタグ付けツールを使用して、賭けオブジェクト、人、カード、又は他のゲームオブジェクトなどの関連の識別子を用いて手動でタグ付けされ得る。適切な注釈ツールの一例は、Pascal VOCフォーマットの各ファイルの注釈ＸＭＬファイルを提供するGitHubを通じて利用可能な「Labellmg」ツールである。さらに、例えば異なるオブジェクト又はセグメント化されたオブジェクトに関係する追加のパラメータも、関心領域に対するタグ付けツールを使用した手動タグ付けによって識別され得る。
【００８６】
[0102]  訓練データセットにおける画像の注釈プロセスは、以前に訓練されたニューラルネットワーク又は手動で注釈が付けられた画像を用いて訓練されたニューラルネットワークによって生成された出力を利用することによって、改善することができる。以前に訓練されたニューラルネットワーク又は手動で注釈が付けられた画像を用いて訓練されたニューラルネットワークによって生成された出力は、関心領域の識別及び関心領域のオブジェクトの識別情報の両方における誤差を補正するために手動で修正され得る。補正された出力は、結果の精度をさらに向上させるために、ニューラルネットワークの訓練の次の反復において入力として使用され得る。このフィードバックループは、異なる条件下でオブジェクトを確実に識別できるロバストなニューラルネットワークを取得するために、幾つかの異なるデータセットを用いて繰り返され得る。
【００８７】
[0103]  ニューラルネットワークの訓練におけるさらなるロバスト性は、データ拡張、或いは入力画像をランダムに水平に反転させること、入力画像の輝度をランダムに変えること、設定された倍率によって訓練画像のサイズをランダムに倍率変更すること、ランダムなカラー画像をグレイスケールに変換すること、又はＲＰＮに対する入力として使用される入力関心領域のオブジェクトボックス寸法にジッター若しくはばらつきをランダムに導入することなどの他の技術を訓練データに適用することによって達成され得る。１つ又は複数のかかるデータ拡張プロセスは、ゲームテーブルＲＰＮ９２０及び／又は賭けオブジェクトＲＰＮ９４０の訓練において適用され得る。
【００８８】
賭けオブジェクト価格推定
[0104]  図１１のフローチャート１１００は、幾つかの実施形態による、全ゲームオブジェクト検出及び賭けオブジェクト価格推定プロセス又は方法を示す。この方法は、ほぼリアルタイムで捕捉された両画像、又は以前に行われたゲームから保存された画像に適用され得る。第１のステップ１１０２は、訓練されたゲームテーブルＲＰＮ９２０に対する入力として使用され得る画像フレームを読み出すことを伴う。ステップ１１０６では、訓練されたゲームテーブルＲＰＮ９２０は、入力画像の関心領域を識別する。一例として、図４Ａの画像フレームが入力として使用される場合、図４Ｂのスクリーンショットに示される画像フレームが、出力として生成され得る（提案関心領域４２１、４２２、４２３、４２５、及び４２７を示す）。
【００８９】
[0105]  ゲームテーブルＲＰＮ９２０は、特定の数以下の関心領域を識別するように制約される。この制約は、処理能力に関してコンピューティングデバイス１３０の過度に高い構成を必要とすることなく、ゲームテーブルＲＰＮ９２０の十分な性能を維持するために必要である。幾つかの実施形態では、この制約は、最大数（例えば、３０〜７０の範囲内）の関心領域を識別するように設定され得る。他の実施形態では、この制約は、例えば、最大４０〜６０の関心領域を識別するように設定され得る。
【００９０】
[0106]  提案関心領域が識別されると、ステップ１１１０において、各関心領域に対応する画像の部分が、ゲームテーブルオブジェクト検出ネットワーク９３０に対する入力として提供される。ゲームテーブルオブジェクト検出ネットワーク９３０は、関心領域４２２及び４２１内のプレイヤーを検出する。関心領域４２３及び４２５は、ゲームテーブルオブジェクト検出ネットワーク９３０によって、カードオブジェクトを含むと決定される。関心領域４２７は、賭けオブジェクト検出ネットワーク９５０によって、賭けオブジェクトを含むと決定される。ステップ１１１４において、賭けオブジェクトを包含する関心領域は、ステップ１１２４に進む。非賭けオブジェクトが検出された関心領域は、ステップ１１２０に進み、そこで、検出されたオブジェクトの性質が、その座標と共に記録される。
【００９１】
[0107]  賭けオブジェクトは、単一のチップ、又は複数のチップのスタックを含み得る。複数のチップのスタックは、様々な額面（すなわち、様々な関連付けられたチップ価格）のチップを含み得る。ほとんどのゲーム会場において、チップ又は賭けオブジェクトの額面は、チップの色で指定又は識別され、及びチップのエッジ上の特定のパターンによっても指定又は識別される。チップ又は賭けオブジェクトのエッジパターンは、チップ又は他の賭けオブジェクトの外周に対して又はその周りで、複数（例えば、４つ）の異なる点で対称的に位置付けられ得る。ある特定の価格のチップのエッジパターンは、異なる価格のチップの色又はエッジパターンとは異なる特定の色のストライプ又はエッジパターンを含み得る。
【００９２】
[0108]  本明細書に記載するシステム及び技術は、ゲームチップの形態のゲームオブジェクトが、各チップが短円柱（又は円柱は、その直径よりもかなり小さい高さを有する）に似るように、平面視で概ね円形のプロファイルを有し、及び側面図で概ね均一な深さ又は厚さを有すると仮定する。
【００９３】
[0109]  例えば、１ドルの額面のチップ又は賭けオブジェクトは、白色で、単一のグレーのストライプを有し得る。５ドルの額面のチップは、赤色で、複数の黄色のストライプを有し得る。チップのデザイン、並びにチップの価格を表す特定の色及びエッジパターンは、ゲーム会場ごとに異なり得る。それにもかかわらず、ゲームモニタリングシステム１００及び具体的にニューラルネットワークモジュール５２８は、システム１００が展開されるゲーム会場においてチップの特定のエッジパターンを検出又は識別するように構成することができる。
【００９４】
[0110]  ゲームテーブル上の賭けオブジェクト（チップ）のスタックの価格を推定するために、個々のチップの表面パターン（外円柱（環状）エッジ上のパターンなど）が識別される。加えて、チップスタックの一番上のチップに関して、チップの価格に関係する、又はチップの価格を定義する上面証印も、１つ又は複数の関心領域として識別され得る（検出されたエッジパターンに基づいて決定されたチップの価格を確認するために、かかる領域を使用できるように）。上面及びエッジパターンの識別は、賭けオブジェクトＲＰＮ９４０及び賭けオブジェクト検出ネットワーク９５０によって達成され得る。賭けオブジェクトＲＰＮ９４０及び賭けオブジェクト検出ネットワーク９５０は、ゲームテーブルＲＰＮ９２０及びゲームテーブルオブジェクト検出ネットワーク９３０と類似の初期化及び訓練技術を用い得る。しかし、ステップ１１２４において、賭けオブジェクトＲＰＮ９４０は、賭けオブジェクト画像フレーム内の関心領域（賭けオブジェクトのスタック中の各賭けオブジェクトのエッジパターン部分をカバーし、又はそれらの部分に境界を付ける関心領域、及びスタックの一番上の賭けオブジェクトの表面の部分をカバーし、又はそれらの部分に境界を付ける関心領域を含む）を提案するように訓練される。
【００９５】
[0111]  賭けオブジェクトＲＰＮ９４０は、単一の賭けオブジェクト上のエッジパターンの部分に境界を付ける関心領域を提案し、及び賭けオブジェクト検出ネットワーク９５０は、ステップ１１２８において、提案関心領域の価格パターンを識別する。価格パターンは、賭けオブジェクトＲＰＮ９４０によって提案された関心領域によって境界が付けられた賭けオブジェクト上のエッジパターンの特定の部分に関連付けられた価格となり得る。ニューラルネットワークモジュール５２８は、賭けオブジェクト検出ネットワーク９５０による特定の検出可能な価格パターン（一番上の賭けオブジェクトの上面証印を含む）と関連付けられた額面価格を記録する価格パターンルックアップテーブル１１５０を含み得る。価格パターンルックアップテーブル１１５０の内容は、異なる会場の賭けオブジェクト又はチップの異なるデザイン及びエッジパターンを反映するために、異なるゲーム会場間で異なり得る。一例として、画像フレーム１２００は、賭けオブジェクトＲＰＮ９４０の入力画像となり得る。エッジパターン１２１０及び１２１５は、画像フレーム１２００中の賭けオブジェクトのスタックの一部である特定の賭けオブジェクトに関連付けられた価格を反映し得る。図１３は、エッジパターンの部分に境界を付ける様々な異なる関心領域１３１０及び１３１５を有する、賭けオブジェクトＲＰＮ９４０によって生成される出力画像となり得る。
【００９６】
[0112]  賭けオブジェクトＲＰＮ９４０によって識別される関心領域は、矩形状であればよく、及び矩形のエッジは、入力画像のエッジと平行でなければならない。しかし、ゲームチップである賭けオブジェクトは、若干円形であり（テーブル上に載せられ、カメラ１２０及び／又は３２０からなどの高く、且つ角度が付けられた位置から見た場合）、賭けオブジェクトのエッジパターン全体が、矩形の関心領域内に包含される場合、矩形の（定義された）関心領域は、他の垂直又は水平に隣接した賭けオブジェクトのエッジパターンを含み得る。これは、提案関心領域において識別されるオブジェクトの分離が、オブジェクト検出の精度にとって必須であるので、賭け検出ネットワーク９５０の性能の精度を低下させ得る。これを克服するために、賭けオブジェクトのエッジパターン全体をオブジェクト検出のターゲットとして扱う代わりに、賭けオブジェクトＲＰＮ９４０は、ステップ１１２８において、目に見える各エッジパターンの端部を識別するように訓練される。例えば、画像フレーム１３００で識別された関心領域１３１０及び１３１５は、賭けオブジェクト上のエッジパターンの一部分のみに境界を付け、又はその部分をカバーする。このようなエッジパターンは、チップの外周周りで、別個に、及び間隔を置き、及び非パターン化エッジ領域によって分離される。従って、エッジパターンとして検出されるものは、チップのエッジに沿ったパターン化領域から非パターン化領域への遷移でもよい。
【００９７】
[0113]  ステップ１１３２において、検出された価格パターン（賭けオブジェクトのエッジパターン及びエッジパターンに関連付けられた価格の一部でもよい）が、賭けオブジェクトのスタック中の各単一の賭けオブジェクトの価格を推定するために、価格パターンルックアップテーブル１１５０の価格と比較される。各検出された価格パターンの関連付けられたチップ価格が、価格決定結果を生成するために、ニューラルネットワークモジュール５２８又はソフトウェアモジュール５２０の別の１つによって実行されるプロセスによって合計される。この結果を使用して、ステップ１１３２において、賭けオブジェクト（チップ）のスタック全体又は複数のスタックの価格が推定される。
【００９８】
[0114]  ステップ１１３６において、ニューラルネットワークモジュール５２８は、一連の画像フレーム中の次の画像フレームが、ゲームイベントの終了を表すかどうかをチェックする。ゲームイベントの終了が検出されると、ステップ１１４０において、ゲームオブジェクト、プレイヤーの数及び／又は位置、並びに賭けオブジェクトの推定価格に関する保存された観測が、メッセージブローカサーバ１４０を介してデータベースサーバ１５０に報告される。ゲームイベントの終了が検出されなければ、プロセス１１００全体が、ステップ１１０２に戻ることによって、次の画像フレームの処理を継続する。
【００９９】
[0115]  ニューラルネットワークモジュール５２８によってコンピューティングデバイス１３０において展開される際に、訓練されたニューラルネットワークは、必ずしも静的又は不変ではない。展開されたニューラルネットワークは、ゲームモニタリングシステム１００の実際の動作により取得された、データベースサーバ１５０上に記録されたデータに基づいて、後続の訓練を受け得る。ニューラルネットワークマネージャサーバ１６０は、ネットワークリンク１３７を介して、データベースサーバ１５０のゲームオブジェクト検出データ及び賭けオブジェクト価格推定データにアクセスできる。このデータ及び経時的にニューラルネットワークマネージャサーバ１６０に提供され得る追加の補正データに基づいて、展開されたニューラルネットワークモジュール５２８のさらなる訓練が実施され得る。さらなる訓練が、現在展開されているニューラルネットワークのセットよりも優れたニューラルネットワークを生成する場合、ニューラルネットワークマネージャサーバ１６０は、後続の訓練後に取得されたより良い性能のニューラルネットワークを展開されたニューラルネットワークと取り換える。このフィードバックは、ゲームモニタリングシステム１００の精度又は性能をさらに向上させることができる。
【０１００】
[0116]  幾つかの実施形態では、ゲーム環境１１０は、シュー、又はカードシャッフルデバイス、又はカードディーリングデバイス（２３２）などのデバイスを含み得る。多くの場合、シュー、又はシャッフル若しくはディーリングデバイスは、デバイスによって処理されているカードの信頼性を検証するための機構を含む。検証機構は、カードスイッチング（これにより、プレイヤーは、ゲームの結果に影響を与えるために、本物のカードを偽造カードと交換する）の実行を検出又は防止するために適所にあってもよい。シュー、又はシャッフル若しくはディーリングデバイスは、引かれるカードの順番を記録することによって、ディーラーによるカードのディーリングプロセスも検証し得る。シュー又はディーリングシャッフルデバイスは、各カードに印刷された固有のコードに依存し得る。固有のコードは、カードが配られる際に、シュー、又はディーリング若しくはシャッフルデバイスによって読み取られ、偽造カードは、ディーリングのプロセスにおいて検出される。シュー又はシャッフルデバイスは、ＬＥＤライト（２３４）などの表示灯を含むことが多い。表示灯の照明は、相違、又は予期せぬカード若しくはゲームの結果を示し得る。表示灯は、ディーラー及びゲームエリア内の一般の人々に見える、シュー又はシャッフルデバイスの上部に位置付けられることが多い。
【０１０１】
[0117]  幾つかの実施形態では、カメラ１２０は、シュー又はディーリング若しくはシャッフルデバイス上に位置付けられた表示灯の照明を捕捉するために位置付けられてもよい。コンピューティングデバイス１３０は、シュー、又はシャッフル若しくはディーリングデバイスによって示される相違の発生を識別するために、表示灯の照明のアセスメント又は決定を行うように構成され得る。アセスメント又は決定は、カメラ１２０によって捕捉された画像中の表示灯をカバーするピクセルの所定のセット又は領域に基づき得る。コンピューティングデバイス１３０は、メッセージブローカサーバ１４０によって相違の発生を伝え、及び記録することができ、この相違に対するカジノモニタリング責任者による応答を可能にする。
【０１０２】
[0118]  幾つかの実施形態では、コンピューティングデバイス１３０は、ゲーム台面上に置かれたトランプ、又は現金、紙幣、及び硬貨などの通貨オブジェクトを含むゲームオブジェクトの検出及び識別を行うように構成され得る。カード又は現金の検出は、機械学習プロセスによって実施され得る。機械学習プロセスは、関心領域を識別し、多角形抽出又はマスキング又は画像セグメント化に基づいて識別された関心領域内のオブジェクトを識別する機能を行う訓練されたニューラルネットワークの実装を含み得る。幾つかの実施形態では、カード又は現金検出機能を行うために、mask R-CNNが実装され得る。
【０１０３】
[0119]  mask R-CNNは、オブジェクトインスタンスセグメント化又はマスキングのフレームワークを提供する畳み込みニューラルネットワークの一種である。オブジェクトインスタンスセグメント化又はマスキングは、オブジェクト及び画像中の識別されたオブジェクトと関連付けられた全てのピクセルの識別を可能にする。訓練されたmask R-CNNによって識別されるピクセルは、既定の矩形状のものである必要はない。訓練されたmask R-CNNによって識別されるピクセルは、識別されたオブジェクトの外形を綿密に推定する。mask R-CNNの利点の１つは、重なり合うオブジェクトをより正確に識別する能力である。ゲーム台面上で、カード又は現金が、プレイヤー又はディーラーによって、重なり合うように置かれる場合がある。さらに、カード又は現金は、ゲーム台面上に置かれる際に可変の向きを有する場合があり、正確なオブジェクト検出を困難にしている。訓練されたmask R-CNNは、カード又は現金のようなオブジェクトの推定において、より高い精度を提供する。
【０１０４】
[0120]  mask R-CNNは、上記のfaster R-CNNと類似の構造を有する。しかし、faster R-CNNに含まれる構造に加えて、mask R-CNNは、インスタンスセグメント化又はマスキングを行い、及び入力画像の各ピクセルが識別された関心領域又はオブジェクトの一部であるか否かを識別するためのマスクを出力するブランチ又はマスキングブランチをさらに含む。幾つかの実施形態では、マスクの検出は、オブジェクトの識別と並行して生じ得る。マスキングブランチは、ピクセルが検出されたオブジェクトの一部であるか否かを識別する二値マスクの形態で、ピクセルレベルのセグメント化マスクを生成するために、各識別された関心領域に適用される別の完全畳み込みニューラルネットワークを含み得る。
【０１０５】
[0121]  図１４は、幾つかの実施形態による、トランプ又は現金などの非賭けオブジェクトのマスキング及び検出のフローチャート１４００を示す。フローチャート１４００は、図１１のフローチャート１１００のステップ１１０２、１１０６、１１１０、及び１１１４を含む。加えて、フローチャート１４００は、非賭けオブジェクトに関する画像セグメント化及びオブジェクト検出のステップを含む。ステップ１４１０では、ステップ１１１０で識別された関心領域が、画像セグメント化又はマスキングプロセスの後続のステップを改善するために、識別された関心領域の境界のアライメントを改善するための関心領域アライメントニューロン層を用いて処理される。ステップ１４２０において、アライメントされた関心領域が、訓練されたMask R-CNNによって処理される。訓練されたMask R-CNNによる処理後に、ステップ１１１４で識別された各非賭けオブジェクトに関する二値セグメント化マスクの形態の出力が、ステップ１４３０において生成される。この出力は、各識別されたオブジェクトに関する二値セグメント化マスクの形態でもよく、各二値セグメント化マスクは、識別されたオブジェクトに関連付けられた捕捉画像におけるピクセルのセットを表す。
【０１０６】
[0122]  ステップ１４４０では、識別された二値セグメント化マスクに対応する捕捉画像の領域が、訓練されたオブジェクト分類子によって処理される。訓練されたオブジェクト分類子は、各識別された二値セグメント化マスクにおいて識別されたオブジェクトをさらに分類する。例えば、オブジェクト分類子は、識別された二値セグメント化マスクにおいてスペードのエースとしてオブジェクトを分類し得る。代替的に、オブジェクト分類子は、オブジェクトを特定の額面の紙幣（note又はbill）（例えば、５０ドルの額面の紙幣）などの通貨オブジェクトであると分類することができる。識別及び分類されたオブジェクトに関する情報は、コンピューティングデバイス１３０によって保存されてもよく、又は代替的に、コンピューティングデバイス１３０は、通信リンク１１７を介して、情報をメッセージブローカサーバ１４０に送信してもよい。ゲーム台面上に提示されたカード又はプレイヤーによってゲーム台面上に差し出された通貨オブジェクトに関する情報は、ゲーム結果記録に対する過去のゲームイベントの照合を可能にし得る。さらに、ゲーム台面上に差し出された通貨オブジェクトの識別は、賭けオブジェクトの検出によるアセスメントが可能ではないテーブルでの賭けリングアクティビティのアセスメントを可能にし得る。
【０１０７】
[0123]  ステップ１４４０におけるオブジェクトの分類は、カプセルニューラルネットワーク、又はインセプションニューラルネットワーク、又は残りの学習フレームワークを用いて訓練された深層ニューラルネットワークを用いて行われ得る。
【０１０８】
[0124]  図１５は、幾つかの実施形態による、賭けオブジェクト領域検出の結果のスクリーンショット１５００を示す。幾つかの実施形態の賭けオブジェクトＲＰＮ９４０は、追加的に、一番上の賭けオブジェクト１５２０、及び賭けオブジェクトスタック又は賭けオブジェクト領域のためのベース領域１５３０を検出するように訓練されてもよい。例えば、スクリーンショット１５００において、一番上の賭けオブジェクト１５２０及び賭けオブジェクトベース領域１５３０は、賭けオブジェクトＲＰＮ９４０によって検出される。賭けオブジェクトＲＰＮ９４０は、賭けオブジェクトスタックの一部を形成する賭けオブジェクトのエッジパターン１５１０も検出する。一番上の賭けオブジェクト１５２０及び賭けオブジェクトベース領域１５３０は、賭けオブジェクト検出全体のアンカーポイントとして機能し、これによって、オブジェクト検出プロセス全体の精度及び性能が向上し、並びに結果の検証手段も提供する。
【０１０９】
[0125]  本開示の広い一般的範囲から逸脱することなく、多数の変形及び／又は変更を上記の実施形態に行い得ることが当業者には理解されるだろう。従って、本実施形態は、あらゆる点において、制限的なものではなく、例示的なものであると見なされるものである。
【図１】
2020536324.tif 000003
【図２】
2020536324.tif 000004
【図３】
2020536324.tif 000005
【図４Ａ】
2020536324.tif 000006
【図４Ｂ】
2020536324.tif 000007
【図４Ｃ】
2020536324.tif 000008
【図５】
2020536324.tif 000009
【図６】
2020536324.tif 000010
【図７】
2020536324.tif 000011
【図８】
2020536324.tif 000012
【図９】
2020536324.tif 000013
【図１０】
2020536324.tif 000014
【図１１】
2020536324.tif 000015
【図１２】
2020536324.tif 000016
【図１３】
2020536324.tif 000017
【図１４】
2020536324.tif 000018
【図１５】
2020536324.tif 000019
【手続補正書】
【提出日】令和2年6月2日(2020.6.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ゲーム台面の画像を捕捉するように構成された少なくとも１つのカメラと、
前記少なくとも１つのカメラと通信するコンピューティング装置であって、前記ゲーム台面の前記捕捉画像を解析して、前記捕捉画像内のゲームオブジェクト、ゲームイベント、及びプレイヤーを識別するための機械学習プロセスを自動的に適用するように構成されたコンピューティング装置と、
を含む、ゲームモニタリングシステム。
【請求項２】
前記機械学習プロセスが、１つ又は複数のニューラルネットワークを用いて実施される、請求項１に記載のゲームモニタリングシステム。
【請求項３】
前記１つ又は複数のニューラルネットワークが、１つ又は複数の深層ニューラルネットワークを含む、請求項２に記載のゲームモニタリングシステム。
【請求項４】
前記１つ又は複数の深層ニューラルネットワークが、１つ又は複数の畳み込みニューラルネットワークを含む、請求項３に記載のゲームモニタリングシステム。
【請求項５】
前記１つ又は複数の畳み込みニューラルネットワークの少なくとも１つが、領域提案ネットワークを含む、請求項４に記載のゲームモニタリングシステム。
【請求項６】
前記１つ又は複数の畳み込みニューラルネットワークの少なくとも１つが、オブジェクト検出ネットワークを含む、請求項４に記載のゲームモニタリングシステム。
【請求項７】
前記少なくとも１つのカメラが、高解像度画像を捕捉するように構成される、請求項１〜６の何れか一項に記載のゲームモニタリングシステム。
【請求項８】
ゲームオブジェクトが、トランプ、位置マーカー、又は通貨オブジェクトの少なくとも１つを含む、請求項１〜７の何れか一項に記載のゲームモニタリングシステム。
【請求項９】
ゲームオブジェクトが、１つ又は複数の賭けオブジェクトの１つ又は複数のスタックを含む、請求項１〜８の何れか一項に記載のゲームモニタリングシステム。
【請求項１０】
前記コンピューティング装置が、
訓練された第１の領域提案ネットワークを使用して、１つのゲームオブジェクトに関係する前記捕捉画像内の１つ又は複数の第１の関心領域を識別することと、
訓練された第１のオブジェクト検出ネットワークを使用して、１つ又は複数の賭けオブジェクトの単一のスタックに関係する前記１つ又は複数の第１の関心領域中の第１の関心領域のサブセットを識別することと、
訓練された第２の領域提案ネットワークを使用して、前記識別された第１の関心領域のサブセットのそれぞれにおいて、前記１つ又は複数の賭けオブジェクトの単一のスタックの一部を形成する各賭けオブジェクト上のエッジパターンの一部に関係する１つ又は複数の第２の関心領域を識別することと、
訓練された第２のオブジェクト検出ネットワークを使用して、前記１つ又は複数の第２の関心領域のそれぞれにおいて、価格パターンを識別することと、
前記識別された価格パターン及びルックアップテーブルを使用して、前記第１の関心領域のサブセットのそれぞれにおいて、前記１つ又は複数の賭けオブジェクトの単一のスタックの総賭け価格を推定することと、
によって１つ又は複数の賭けオブジェクトの各スタックの価格を自動的に識別及び推定するようにさらに構成される、請求項９に記載のゲームモニタリングシステム。
【請求項１１】
前記１つ又は複数の第１の関心領域のそれぞれを賭けエリア識別子に関連付けることをさらに含む、請求項１０に記載のゲームモニタリングシステム。
【請求項１２】
前記コンピューティング装置が、前記コンピューティング装置にアクセス可能なデータストアに保存されたゲーム開始及び終了トリガ構成に基づいて、ゲームの開始及び終了を識別するようにさらに構成される、請求項１〜１１の何れか一項に記載のゲームモニタリングシステム。
【請求項１３】
前記１つ又は複数のニューラルネットワークが、ファースター・リージョンベースド・コンボリューショナル・ニューラルネットワークを含む、請求項２に記載のゲームモニタリングシステム。
【請求項１４】
ゲームテーブルの捕捉画像を処理し、前記捕捉画像内のゲーム賭けオブジェクトを識別し、及び前記捕捉画像内の識別された賭けオブジェクトの価格を計算するようにニューラルネットワークシステムを訓練することを含む、方法。
【請求項１５】
訓練されたニューラルネットワークによってゲームテーブルの捕捉画像を処理して、前記捕捉画像内のゲーム賭けオブジェクトを識別することと、
前記捕捉画像内で識別された各ゲーム賭けオブジェクトに関連付けられた価格を識別することと、
前記識別されたゲーム賭けオブジェクトの前記識別された価格に基づいて、ゲーム賭け価格を決定することと、
を含む、方法。
【請求項１６】
前記処理することが、前記ゲームテーブル上の複数の別個の賭け領域の少なくとも１つにおいて、ゲーム賭けオブジェクトを識別する、請求項１５に記載の方法。
【請求項１７】
前記決定することが、ゲームオブジェクトが前記捕捉画像内で識別される各別個の賭け領域に関する総ゲーム賭けを決定することを含む、請求項１６に記載の方法。
【請求項１８】
訓練されたニューラルネットワークを使用して、ゲームテーブルの捕捉画像内の賭けオブジェクトに関する賭けオブジェクト価格を識別することを含む、方法。
【請求項１９】
ゲームオブジェクトの識別のためにニューラルネットワークシステムを実行するように構成されたコンピュータシステム又は装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにアクセス可能なメモリであって、
ゲームテーブルの捕捉画像から画像データを受信するように賭けオブジェクト領域提案ネットワーク（ＲＰＮ）と、
前記賭けオブジェクトＲＰＮの出力を受信するように賭けオブジェクト検出ネットワークと、
を実行させるためのコードを保存したメモリと、
を含み、
前記賭けオブジェクト検出ネットワークが、前記賭けオブジェクト検出ネットワークの出力に基づいて、前記捕捉画像内の１つ又は複数の賭けオブジェクトを検出する、コンピュータシステム又は装置。
【請求項２０】
ゲームテーブルの捕捉画像から画像データを受信するためのゲームテーブル領域提案ネットワーク（ＲＰＮ）と、
前記ゲームテーブルＲＰＮの出力を受信するためのゲームテーブルオブジェクト検出ネットワークと、
をさらに含み、
前記ゲームテーブルオブジェクト検出ネットワークが、前記ゲームテーブルオブジェクト検出ネットワークの出力に基づいて、前記捕捉画像内の１つ又は複数のゲームオブジェクトを検出し、前記１つ又は複数のゲームオブジェクトが、前記１つ又は複数の賭けオブジェクトとは異なる、請求項１９に記載のコンピュータシステム又は装置。
【請求項２１】
請求項１４〜１８の何れか一項に記載の方法を行うために構成された少なくとも１つのコンピュータプロセッサ及びメモリを含む、システム。
【請求項２２】
前記コンピューティング装置が、前記ゲーム台面上のディーリングデバイス上の表示灯の照明を決定するようにさらに構成される、請求項１〜１３の何れか一項に記載のゲームモニタリングシステム。
【請求項２３】
前記少なくとも１つのカメラ及び前記コンピューティング装置が、スマートフォンの一部である、請求項１〜１３の何れか一項に記載のゲームモニタリングシステム。
【請求項２４】
前記１つ又は複数の畳み込みニューラルネットワークが、前記捕捉画像内のゲームオブジェクトの外形を決定するために画像セグメント化を行うための畳み込みニューラルネットワークを含む、請求項４に記載のゲームモニタリングシステム。
【請求項２５】
画像セグメント化を行うための前記畳み込みニューラルネットワークが、Ｍａｓｋ  Ｒ−ＣＮＮである、請求項２４に記載のゲームモニタリングシステム。
【請求項２６】
前記１つ又は複数の畳み込みニューラルネットワークが、前記決定された外形の前記ゲームオブジェクトを分類するように構成されたゲームオブジェクト分類子ニューラルネットワークを含む、請求項２４に記載のゲームモニタリングシステム。
【請求項２７】
コンピュータシステムによって実行されると、前記コンピュータシステムに請求項１４〜１８の何れか一項に記載の方法を行わせるプログラムコードを保存する、有形コンピュータ可読ストレージ。
【請求項２８】
請求項１〜２７の何れか一項に記載の、又は本出願の明細書に個々に、若しくはまとめて示したステップ、プロセス、サブプロセス、システム、サブシステム、装置、インフラ、設備、及び／又は配置、並びに前記ステップ、前記プロセス、前記サブプロセス、前記システム、前記サブシステム、前記装置、前記インフラ、前記設備、及び／又は前記配置の２つ以上の任意の及びすべての組み合わせ。
【国際調査報告】
2020536324.tif 000020
2020536324.tif 000021
2020536324.tif 000022
2020536324.tif 000023
2020536324.tif 000024
2020536324.tif 000025