(57)【要約】  自動化ショッピングのためのシステム及び技術が提供される。システムは、センサ・データのシーケンスを処理して、商品識別子及び分類信頼度スコアを含む在庫イベントを識別する。システムは、チェックアウト・イベントに応答して、デジタル・レシートを生成し、被写体にリンクされたデバイスに送信するためのロジックを含む。デジタル・レシートは、特定の被写体に対する商品のログ内の商品に基づく商品のリストを含む。デジタル・レシートには、商品のリストの変更を要求するための入力を促すデバイス上に表示するグラフィック構成へのリンクを含めることができる。システムは、特定の被写体に対するデバイスからのメッセージに応答して返金要求を処理するロジックを含む。【選択図】  図８
2021535512.tif 000002
【特許請求の範囲】
【請求項１】
自動化ショッピングのためのシステムであって、
実空間のエリアのセンサ・データのシーケンスを受信する処理システムを備え、
前記処理システムが、
前記センサ・データのシーケンスを処理して、個々の被写体にリンクされた前記実空間のエリア内の在庫イベントを識別し、商品識別子と前記商品の分類信頼度スコアを含む在庫イベントを在庫イベントのログとして維持するロジックを含み、但し、前記在庫イベントが識別される前記センサ・データのシーケンスからのセンサ・データは、前記処理システムにより格納され、
個々の被写体についての商品のログを維持し、特定の被写体のチェックアウト・イベントに応答して、デジタル・レシートを生成し、前記デジタル・レシートを特定の被写体に関連付けられたデバイスに送信するロジックを含み、但し、前記デジタル・レシートには、前記特定の被写体に関する前記商品のログの前記商品に基づく商品のリストが含まれ、前記商品のリスト内の変更を要求するための入力を促す前記デバイス上に表示するためのグラフィック構成へのリンクが付されており、且つ、
前記特定の被写体の前記デバイスからの前記商品のリスト内の変更を要求するメッセージに応答して、前記要求された変更に対応する前記特定の被写体の前記在庫イベントのログ内のエントリにアクセスし、エントリにおける前記分類信頼度スコアを信頼度閾値と比較し、前記信頼度スコアが前記閾値よりも低い場合は、前記変更を受け入れ、前記デジタル・レシートを更新し、前記信頼度スコアが前記閾値よりも高い場合は、前記変更に対応する前記在庫イベントを識別し、前記識別された在庫イベントの確証のために、前記格納されたセンサ・データのシーケンスからセンサ・データのセットを取り出すロジックを含むシステム。
【請求項２】
前記処理システムが、人間のオペレータによる検査のために、前記センサ・データのセットまたは前記センサ・データのセットへのリンクをモニタ・デバイスに送信するロジックを含む請求項１に記載のシステム。
【請求項３】
前記処理システムが、前記要求された変更に応答するメッセージを前記デバイスに送信するロジックを含む請求項１に記載のシステム。
【請求項４】
前記処理システムが、前記信頼度スコアが前記閾値よりも低い場合に、前記要求された変更を受け入れるメッセージを前記デバイスに送信するように動作可能なロジックを含む請求項１に記載のシステム。
【請求項５】
前記処理システムが、前記信頼度スコアが前記閾値よりも高い場合に、前記要求された変更が検査中であることを示すメッセージを前記デバイスに送信するように動作可能なロジックを含む請求項１に記載のシステム。
【請求項６】
前記処理システムが、前記センサ・データを処理して、前記実空間のエリア内の個々の被写体を追跡し、個々の被写体を在庫イベントにリンクするロジックと、前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、特定の被写体から前記メッセージを受信し、特定の被写体にメッセージを送信するロジックを含む請求項１に記載のシステム。
【請求項７】
前記処理システムが、前記センサ・データを処理して、前記実空間のエリア内の個々の被写体の位置を追跡し、特定の被写体の前記位置が前記実空間のエリアの特定の領域まで追跡される場合に、前記特定の被写体に対する前記チェックアウト・イベントを信号で伝えるロジックを含む請求項１に記載のシステム。
【請求項８】
前記処理システムが、前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、前記チェックアウト・イベントとして解釈される特定の被写体からのメッセージを受信するロジックを含む請求項１に記載のシステム。
【請求項９】
前記センサ・データのシーケンスが、重複する視野を有する複数の画像シーケンスを備える請求項１に記載のシステム。
【請求項１０】
前記商品のログが、在庫商品を置くこと及び取ることを含む請求項１に記載のシステム。
【請求項１１】
自動化ショッピングのための方法であって、
実空間のエリアのセンサ・データのシーケンスを受信すること、
前記センサ・データのシーケンスを処理して、個々の被写体にリンクされた前記実空間のエリア内の在庫イベントを識別し、商品識別子と前記商品の分類信頼度スコアを含む在庫イベントを在庫イベントのログとして維持すること、
前記在庫イベントが識別される前記センサ・データのシーケンスからのセンサ・データを格納すること、
個々の被写体についての商品のログを維持し、特定の被写体のチェックアウト・イベントに応答して、デジタル・レシートを生成し、前記デジタル・レシートを特定の被写体に関連付けられたデバイスに送信すること、但し、前記デジタル・レシートには、前記特定の被写体に関する前記商品のログの前記商品に基づく商品のリストが含まれ、前記商品のリスト内の変更を要求するための入力を促す前記デバイス上に表示するためのグラフィック構成へのリンクが付されており、及び、
前記要求された変更に対応する前記特定の被写体の前記在庫イベントのログ内のエントリにアクセスして、前記特定の被写体の前記デバイスからの前記商品のリスト内の変更を要求するメッセージに応答し、
エントリにおける前記分類信頼度スコアを信頼度閾値と比較し、前記信頼度スコアが前記閾値よりも低い場合は、前記変更を受け入れ、前記デジタル・レシートを更新し、前記信頼度スコアが前記閾値よりも高い場合は、前記変更に対応する前記在庫イベントを識別し、前記識別された在庫イベントの確証のために、前記格納されたセンサ・データのシーケンスからセンサ・データのセットを取り出すことを、含む方法。
【請求項１２】
人間のオペレータによる検査のために、前記センサ・データのセットまたは前記センサ・データのセットへのリンクをモニタ・デバイスに送信することを、更に含む請求項１１に記載の方法。
【請求項１３】
前記要求された変更に応答するメッセージを前記デバイスに送信することを、更に含む請求項１１に記載の方法。
【請求項１４】
前記信頼度スコアが前記閾値よりも低い場合に、前記要求された変更を受け入れるメッセージを前記デバイスに送信することを含む請求項１１に記載の方法。
【請求項１５】
前記信頼度スコアが前記閾値よりも高い場合に、前記要求された変更が検査中であることを示すメッセージを前記デバイスに送信することを含む請求項１１に記載の方法。
【請求項１６】
前記センサ・データを処理して、前記実空間のエリア内の個々の被写体を追跡し、個々の被写体を在庫イベントにリンクすること、及び、
前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、特定の被写体から前記メッセージを受信し、特定の被写体にメッセージを送信することを含む請求項１１に記載の方法。
【請求項１７】
前記センサ・データを処理して、前記実空間のエリア内の個々の被写体の位置を追跡し、特定の被写体の前記位置が前記実空間のエリアの特定の領域まで追跡される場合に、前記特定の被写体に対する前記チェックアウト・イベントを信号で伝えることを含む請求項１１に記載の方法。
【請求項１８】
前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、前記チェックアウト・イベントとして解釈される特定の被写体からのメッセージを受信することを含む請求項１１に記載の方法。
【請求項１９】
前記センサ・データのシーケンスが、重複する視野を有する複数の画像シーケンスを備える請求項１１に記載の方法。
【請求項２０】
前記商品のログが、在庫商品を置くこと及び取ることを含む請求項１１に記載の方法。
【請求項２１】
自動化ショッピングに対するコンピュータ・プログラム命令を記憶した非一時的コンピュータ可読記憶媒体であって、
前記命令がプロセッサ上で実行されると実施される方法が、
実空間のエリアのセンサ・データのシーケンスを受信すること、
前記センサ・データのシーケンスを処理して、個々の被写体にリンクされた前記実空間のエリア内の在庫イベントを識別し、商品識別子と前記商品の分類信頼度スコアを含む在庫イベントを在庫イベントのログとして維持すること、
前記在庫イベントが識別される前記センサ・データのシーケンスからのセンサ・データを格納すること、
個々の被写体についての商品のログを維持し、特定の被写体のチェックアウト・イベントに応答して、デジタル・レシートを生成し、前記デジタル・レシートを特定の被写体に関連付けられたデバイスに送信すること、但し、前記デジタル・レシートには、前記特定の被写体に関する前記商品のログの前記商品に基づく商品のリストが含まれ、前記商品のリスト内の変更を要求するための入力を促す前記デバイス上に表示するためのグラフィック構成へのリンクが付されており、及び、
前記要求された変更に対応する前記特定の被写体の前記在庫イベントのログ内のエントリにアクセスして、前記特定の被写体の前記デバイスからの前記商品のリスト内の変更を要求するメッセージに応答し、
エントリにおける前記分類信頼度スコアを信頼度閾値と比較し、前記信頼度スコアが前記閾値よりも低い場合は、前記変更を受け入れ、前記デジタル・レシートを更新し、前記信頼度スコアが前記閾値よりも高い場合は、前記変更に対応する前記在庫イベントを識別し、前記識別された在庫イベントの確証のために、前記格納されたセンサ・データのシーケンスからセンサ・データのセットを取り出すことを、備える非一時的コンピュータ可読記憶媒体。
【請求項２２】
実施される前記方法が、人間のオペレータによる検査のために、前記センサ・データのセットまたは前記センサ・データのセットへのリンクをモニタ・デバイスに送信することを、更に備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
実施される前記方法が、前記要求された変更に応答するメッセージを前記デバイスに送信することを、更に備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記信頼度スコアが前記閾値よりも低い場合に、前記方法が、前記要求された変更を受け入れるメッセージを前記デバイスに送信することを備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
前記信頼度スコアが前記閾値よりも高い場合に、前記方法が、前記要求された変更が検査中であることを示すメッセージを前記デバイスに送信することを備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２６】
実施される前記方法が、
前記センサ・データを処理して、前記実空間のエリア内の個々の被写体を追跡し、個々の被写体を在庫イベントにリンクすること、及び、
前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、特定の被写体から前記メッセージを受信し、特定の被写体にメッセージを送信することを、更に備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２７】
実施される前記方法が、前記センサ・データを処理して、前記実空間のエリア内の個々の被写体の位置を追跡し、特定の被写体の前記位置が前記実空間のエリアの特定の領域まで追跡される場合に、前記特定の被写体に対する前記チェックアウト・イベントを信号で伝えることを、更に備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
実施される前記方法が、前記個々の被写体に関連付けられたデバイスへの通信リンクを確立し、前記通信リンク上で、前記チェックアウト・イベントとして解釈される特定の被写体からのメッセージを受信することを、更に備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
前記センサ・データのシーケンスが、重複する視野を有する複数の画像シーケンスを備える請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３０】
前記商品のログが、在庫商品を置くこと及び取ることを含む請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先出願】
【０００１】
本出願は、２０１８年８月３１日出願の米国仮特許出願第６２／７２６，０７０号（代理人整理番号ＳＴＣＧ １０１０−１）の利益を主張し、該米国仮特許出願は参照により本明細書に組み込まれる。
【技術分野】
【０００２】
本発明は、実空間のエリア内の在庫商品を追跡するシステムに関する。
【背景技術】
【０００３】
顧客にレジ無しショッピング体験を提供することにより、多くの技術的課題を提示することができる。顧客はショッピングストアに入り、通路を通って移動し、購入する必要のある商品を選び、店舗から出ることができる。レジ無しショッピング体験の重要な要素は、買い物客が店舗から持ってきた商品を正確に決定し、次いで顧客のためのデジタル・レシートを生成することである。これは、システムが顧客のバイオメトリック情報を使用して顧客を追跡しない場合に、より困難になる。別の技術的課題は、顧客がシステムが課金した商品またはその数量について異議を唱えることを可能にすることである。既存のシステムでは、顧客が電話、電子メールを介してショッピングストアに連絡を取る必要があるか、または物理的にショッピングストアに行き、顧客のレシートに対する返金または修正を要求する必要がある。次に、ショッピングストアの管理者は、顧客から受け取った異議を検査し、レシートのエラーを訂正する。
【０００４】
電話、電子メールを介してショッピングストアに連絡することを顧客に要求したり、物理的にショッピングストアに行くことを顧客に要求したりすることなく、顧客のためのデジタル・レシートをより効果的かつ自動的に生成し、返金要求を処理することができるシステムを提供することが望ましい。
【発明の概要】
【０００５】
自動化ショッピングのためにシステムを動作させるためのシステム及び方法が提供される。デジタル・レシートが買い物客に関連付けられたデバイスに配信される自動化ショッピング環境では、デジタル・レシートで識別された商品の異議申立て及び訂正をサポートする技術が提供される。一実施態様では、デジタル・レシートが、レシートにリストされた商品への異議申立てを促すウィジェットを含むグラフィカル・ユーザ・インタフェースで提示される。ウィジェットに係合するユーザ入力を検出すると、検証手順が自動的に実行される。検証手順は、自動化ショッピング環境で使用されるセンサ・データの評価と、センサ・データの評価に関連する信頼度スコアの評価とを含む。更に、検証手順は、さらなる検査に使用するのに適した特定のイベントに関連するセンサ・データを取り出すための効率的な手法を含むことができる。
【０００６】
システムは、実空間のエリアのセンサ・データのシーケンスを受信する。センサ・データは、視野が重なった複数のセンサによって送信することができる。システムは、１または複数のプロセッサを含む。１または複数のプロセッサは、センサ・データのシーケンスを処理して、個々の被写体にリンクされた実空間のエリア内の在庫イベントを識別するロジックを含むことができる。システムは、在庫イベントを在庫イベントのログとして維持する。在庫イベントには、商品識別子と商品の分類信頼度スコアを含めることができる。処理システムは、在庫イベントが識別されるセンサ・データのシーケンスからのセンサ・データを格納する。システムは、個々の被写体についての商品のログを維持するためのロジックを含む。システムは、特定の被写体のチェックアウト・イベントに応答して、デジタル・レシートを生成し、そのデジタル・レシートを特定の被写体に関連付けられたデバイスに送信する。デジタル・レシートには、特定の被写体に関する商品のログの商品に基づく商品のリストが含まれ、商品のリスト内の変更を要求するための入力を促すデバイス上に表示するためのグラフィック構成へのリンクが付されている。システムは、特定の被写体のデバイスから商品のリスト内の変更を要求するメッセージを受信するロジックを含む。変更を要求するデバイスからのメッセージに応答して、システムは、要求された変更に対応する特定の被写体の在庫イベントのログ内のエントリにアクセスする。システムは、エントリにおける分類信頼度スコアを信頼度閾値と比較する。信頼度スコアが閾値よりも低い場合は、システムは変更を受け入れ、デジタル・レシートを更新する。信頼度スコアが閾値よりも高い場合は、システムは変更に対応する在庫イベントを識別し、識別された在庫イベントの確証のために、格納されたセンサ・データのシーケンスからセンサ・データのセットを取り出す。
【０００７】
一実施形態では、システムが人間のオペレータによる検査のために、センサ・データのセットまたはセンサ・データのセットへのリンクをモニタ・デバイスに送信するためのロジックを含む。一実施形態では、システムが要求された変更に応答するメッセージをデバイスに送信するロジックを含む。一実施形態では、システムが信頼度スコアが閾値よりも低い場合に、要求された変更を受け入れるメッセージをデバイスに送信するように動作可能なロジックを含む。一実施形態では、システムが信頼度スコアが閾値よりも高い場合に要求された変更が検査中であることを示すメッセージをデバイスに送信するように動作可能なロジックを含む。
【０００８】
一実施形態では、システムがセンサ・データを処理して、実空間のエリア内の個々の被写体を追跡し、個々の被写体を在庫イベントにリンクするロジックを含む。このシステムは、個々の被写体に関連付けられたデバイスへの通信リンクを確立し、この通信リンク上で、特定の被写体から前記メッセージを受信し、特定の被写体にメッセージを送信するロジックを含む。
【０００９】
一実施形態では、システムがセンサ・データを処理して、実空間のエリア内の個々の被写体の位置を追跡し、特定の被写体の位置が実空間のエリアの特定の領域まで追跡される場合に、特定の被写体に対する前記チェックアウト・イベントを信号で伝えるロジックを含む。
【００１０】
一実施形態では、システムが個々の被写体に関連付けられたデバイスへの通信リンクを確立し、その通信リンク上で、前記チェックアウト・イベントとして解釈される特定の被写体からのメッセージを受信するロジックを含む。センサ・データのシーケンスは、重複する視野を有する複数の画像シーケンスを備える。商品のログは、在庫商品を置くこと及び取ることを含む。
【００１１】
コンピュータ・システムによって実行することができる方法及びコンピュータ・プログラム製品も、本明細書において説明されている。
【００１２】
本明細書では、特定の在庫商品を識別し、個々の被写体または買い物客にリンクすること、特定の被写体についてのチェックアウト・イベントに応答して個々の被写体に対しデジタル・レシートを生成すること、及び被写体からの返金要求を受信し、処理することを含むが、これらに限定されない機能が説明される。これらの機能は、例えば、処理される画像データのタイプ、画像データのどの処理を実行するか、及び、画像データからどのように高い信頼性で動作を決定するかに関する、コンピューティング・エンジニアリングの複雑な問題を提示する。
【００１３】
本発明の他の実施態様及び利点は、以下の図面、詳細な説明、及び特許請求の範囲を検討することによって理解することができる。
【図面の簡単な説明】
【００１４】
【図１】デジタル・レシート処理エンジンと被写体追跡エンジンが被写体に対してアクショナブル・デジタル・レシートを生成するシステムのアーキテクチャ・レベルの概略図を示す。
【００１５】
【図２Ａ】モバイル・コンピューティング・デバイス、在庫陳列構造、及びカメラ配置とともに被写体を示すショッピングストア内の通路の側面図である。
【００１６】
【図２Ｂ】モバイル・コンピューティング・デバイス及びカメラ配置とともに被写体を示すショッピングストア内の図２Ａの通路の上面図である。
【００１７】
【図３】在庫陳列構造内の棚から商品を取り出す被写体を示す図２Ａ及び図２Ｂの通路における在庫陳列構造の斜視図である。
【００１８】
【図４】被写体の関節情報を記憶するための例示的なデータ構造を示す。
【００１９】
【図５】関連する関節を含む被写体の情報を記憶するための例示的なデータ構造を示す。
【００２０】
【図６】第１の画像プロセッサ、第２の画像プロセッサ、及び第３の画像プロセッサを備える画像処理パイプラインの例示的な高レベル・アーキテクチャである。
【００２１】
【図７】被写体のショッピングカートを記憶するために使用可能な商品のログ・データ構造の例を示している。
【００２２】
【図８】アクショナブル・デジタル・レシートを生成し、顧客から受け取った返金要求を処理するための高レベル・アーキテクチャである。
【００２３】
【図９Ａ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｂ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｃ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｄ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｅ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｆ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｇ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図９Ｈ】第１の実施形態においてアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。（図９Ａ〜図９Ｈをまとめて図９と称す。）
【００２４】
【図１０Ａ】第２の実施形態におけるアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図１０Ｂ】第２の実施形態におけるアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図１０Ｃ】第２の実施形態におけるアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。
【図１０Ｄ】第２の実施形態におけるアクショナブル・デジタル・レシートを表示するためのユーザ・インタフェースの例を示す。（図１０Ａ〜図１０Ｄをまとめて図１０と称す。）
【００２５】
【図１１】アクショナブル・デジタル・レシートを生成するためのサーバ側の処理ステップを示すフローチャートである。
【００２６】
【図１２】コンピューティング・デバイスに表示されたアクショナブル・デジタル・レシートを用いて返金を要求する処理ステップを示すフローチャートである。
【００２７】
【図１３】返金要求を処理するサーバ側の処理ステップを示すフローチャートである。
【００２８】
【図１４】図１のデジタル・レシート処理エンジンをホストするように構成されたカメラ及びコンピュータ・ハードウェア配置である。
【発明を実施するための形態】
【００２９】
以下の説明は、当業者が本発明を作成し使用することを可能にするために提示され、特定の用途及びその要件に即して提供される。開示された実施態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義される一般原則は、本発明の精神及び範囲から逸脱することなく、他の実施態様及び用途に適用され得る。従って、本発明は、示された実施態様に限定されることを意図するものではなく、本明細書に開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。
［システム概要］
【００３０】
図１〜図１４を参照して、対象技術のシステム及び様々な実施態様を説明する。システム及び処理は、本実施態様によるシステムのアーキテクチャ・レベル概略図である図１を参照して説明される。図１は、アーキテクチャ図であるため、説明の明確性を向上させるために、特定の詳細は省略されている。
【００３１】
図１の説明は、以下のように編成される。最初に、システムの要素を説明し、次にそれらの相互接続を説明する。次に、システムにおける要素の使用についてより詳細に説明する。本明細書で説明する実施例では、例えばＲＧＢ色空間でカラー画像を出力する画像フレームを生成するセンサとして、カメラが使用される。開示される実施形態の全てにおいて、他の色空間で動作する画像センサ、赤外線画像センサ、ＵＶ画像センサ、超音波画像センサ、ＬＩＤＡＲベースのセンサ、レーダ・ベースのセンサ等を含む、カメラとともにまたはカメラの代わりに使用可能な他のタイプのセンサまたは様々なタイプのセンサの組合せを使用して、画像フレームを生成することができる。
【００３２】
図１は、システム１００のブロック図レベルの説明図を提供する。本システム１００は、カメラ１１４、ネットワーク・ノードがホストする画像認識エンジン１１２ａ、１１２ｂ及び１１２ｎ、モバイル・コンピューティング・デバイス１１８ａ、１１８ｂ、１１８ｍ（まとめてモバイル・コンピューティング・デバイス１２０と呼ぶ）、ネットワーク上のネットワーク・ノード（または、ノード）１０４内に配置されたデジタル・レシート処理エンジン１８０、被写体追跡エンジンをホストするネットワーク・ノード１０２、被写体データベース１４０、在庫イベント・データベース１５０、商品のログまたはショッピングカート・データベース１６０、デジタル・レシート（アクショナブル・デジタル・レシートとも呼ばれる）データベース１７０、及び、１または複数の通信ネットワーク１８１を含む。ネットワーク・ノードは、１つの画像認識エンジンのみ、または、本明細書で説明されるように、複数の画像認識エンジンをホストすることができる。システムは、また、被写体（またはユーザ）アカウント・データベース、及び、他のサポート・データを含むことができる。
【００３３】
本明細書で使用されるように、ネットワーク・ノードは、ネットワークに接続され、通信チャネルを介して他のネットワーク・ノードとの間で情報を送信、受信、または転送することができる、アドレス可能なハードウェア・デバイスまたは仮想デバイスである。ハードウェア・ネットワーク・ノードとして配置することができる電子デバイスの例には、あらゆる種類のコンピュータ、ワークステーション、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、及びスマートフォンが含まれる。ネットワーク・ノードは、クラウドベースのサーバ・システムで実施することができる。ネットワーク・ノードとして構成された複数の仮想デバイスを、単一の物理デバイスを使用して実施することができる。
【００３４】
明確性のために、画像認識エンジンをホストする３つのネットワーク・ノードのみがシステム１００に示されている。しかしながら、画像認識エンジンをホストする任意の数のネットワーク・ノードを、ネットワーク１８１を介して被写体追跡エンジン１１０に接続することができる。同様に、本明細書で説明するデジタル・レシート処理エンジン、被写体追跡エンジン、及び、他の処理エンジンは、分散アーキテクチャ内の複数のネットワーク・ノードを使用して実行することができる。
【００３５】
次に、システム１００の要素の相互接続について説明する。ネットワーク１８１は、画像認識エンジン１１２ａ、１１２ｂ、及び１１２ｎをそれぞれホストするネットワーク・ノード１０１ａ、１０１ｂ、及び１０１ｎ、デジタル・レシート処理エンジン１８０をホストするネットワーク・ノード１０４、被写体追跡エンジン１１０をホストするネットワーク・ノード１０２、被写体データベース１４０、在庫イベント・データベース１５０、商品のログ・データベース１６０、及び、アクショナブル・デジタル・レシート・データベース１７０を結合する。カメラ１１４は、画像認識エンジン１１２ａ、１１２ｂ、及び１１２ｎをホストするネットワーク・ノードを介して被写体追跡エンジン１１０に接続される。一実施形態では、カメラ１１４がショッピングストア（スーパーマーケット等）に設置され、重なり合う視野を有するカメラ１１４のセット（２つ以上）が各通路の上に配置されて、店舗内の実空間の画像フレームを取得する。図１では、２つのカメラが通路１１６ａの上に配置され、２つのカメラが通路１１６ｂの上に配置され、３つのカメラが通路１１６ｎの上に配置されている。カメラ１１４は、重なり合う視野を有する通路上に設置される。斯かる実施形態では、カメラは、ショッピングストアの通路内を移動する顧客がいつの時点でも２つ以上のカメラの視野内に存在することを目標として構成される。
【００３６】
カメラ１１４は、互いに時間的に同期させることができ、その結果、画像フレームは、同時にまたは時間的に近く、かつ同じ画像キャプチャレートで取得される。カメラ１１４は、画像認識エンジン１１２ａ〜１１２ｎをホストするネットワーク・ノードに、所定のレートでそれぞれの継続的な画像フレームのストリームを送ることができる。同時にまたは時間的に近くに、実空間のエリアをカバーする全てのカメラにおいて取得された画像フレームは、同期された画像フレームが実空間において固定された位置を有する被写体の異なる光景を表すものとして処理エンジンにおいて識別され得るという意味で、同期している。例えば、一実施形態では、カメラが、３０フレーム／秒（ｆｐｓ）のレートで、画像認識エンジン１１２ａ〜１１２ｎをホストするそれぞれのネットワーク・ノードに画像フレームを送信する。各フレームは、画像データと共に、タイムスタンプ、カメラの識別情報（「カメラＩＤ」と略される）、及びフレーム識別情報（「フレームＩＤ」と略される）を有する。開示された技術の他の実施形態は、このデータを生成するために、カメラに代えて、イメージ・センサ、ＬＩＤＡＲベースのセンサ等の様々なタイプのセンサを使用することができる。一実施形態では、カメラ１１４に追加して、複数タイプのセンサが使用され得る。複数のセンサは互いに時間的に同期され、その結果、フレームは、センサによって同時または時間的に近接して、同じフレーム・キャプチャレートで取得される。
【００３７】
通路上に設置されたカメラは、それぞれの画像認識エンジンに接続される。例えば、図１において、通路１１６ａ上に設置された２つのカメラは、画像認識エンジン１１２ａをホストするネットワーク・ノード１０１ａに接続される。同様に、通路１１６ｂ上に設置された２つのカメラは、画像認識エンジン１１２ｂをホストするネットワーク・ノード１０１ｂに接続される。ネットワーク・ノード１０１ａ〜１０１ｎ内でホストされる各画像認識エンジン１１２ａ〜１１２ｎは、図示の例ではそれぞれ１つのカメラから受信した画像フレームを別々に処理する。
【００３８】
一実施形態では、各画像認識エンジン１１２ａ、１１２ｂ、及び１１２ｎは、畳み込みニューラル・ネットワーク（ＣＮＮと略す）などの深層学習アルゴリズムとして実装される。斯かる実施形態では、ＣＮＮがトレーニング・データベース１５０を使用してトレーニングされる。本明細書で説明される実施形態では、実空間内の被写体の画像認識が、画像フレーム内で認識可能な関節を識別しグループ化することに基づいており、関節のグループは個々の被写体に帰属することができる。この関節ベースの分析のために、トレーニング・データベース１５０は、被写体のための異なるタイプの関節の各々に対して膨大な画像を収集している。ショッピングストアの例示的な実施形態では、被写体は、棚の間の通路を移動する顧客である。例示的な実施形態では、ＣＮＮのトレーニング中に、システム１００は「トレーニング・システム」と呼ばれる。トレーニング・データベース１５０を使用してＣＮＮをトレーニングした後、ＣＮＮは、プロダクション・モードに切り替えられ、ショッピングストア内の顧客の画像をリアルタイムで処理する。
【００３９】
例示的な実施形態では、プロダクション中に、システム１００はランタイム・システムと呼ばれる（推論システムとも呼ばれる）。それぞれの画像認識装置のＣＮＮは、それぞれの画像ストリーム中の画像フレームに対して関節データ構造の配列を生成する。本明細書に記載される実施形態では、関節データ構造の配列が、各処理された画像フレームに対して生成されることで、各画像認識エンジン１１２ａ〜１１２ｎが、関節データ構造の配列の出力ストリームを生成する。重なり合う視野を有するカメラからの関節データ構造のこれらの配列は、関節のグループを形成し、斯かる関節のグループを被写体として識別するために、更に処理される。システムは、被写体が実空間のエリア内に存在している間、「被写体ＩＤ」等の被写体識別子を使用して被写体を識別及び追跡することができる。
【００４０】
被写体追跡エンジン１１０は、ネットワーク・ノード１０２上でホストされ、この例では、 画像認識エンジン１１２ａ〜１１２ｎから被写体の関節データ構造の配列の継続的なストリームを受信する。被写体追跡エンジン１１０は、関節データ構造の配列を処理し、様々なシーケンスの画像フレームに対応する関節データ構造の配列内の要素の座標を、実空間内の座標を有する候補関節に変換する。同期した画像フレームの各セットについて、実空間全体にわたって識別された候補関節の組み合わせは、類推目的のために、候補関節の銀河に似ていると考えることができる。後続の各時点において、銀河が経時的に変化するように、候補関節の動きが記録される。被写体追跡エンジン１１０は、ある時点での実空間のエリア内の被写体を識別する。
【００４１】
追跡エンジン１１０は、実空間内の座標を有する候補関節のグループまたはセットを、実空間内の被写体として識別するロジックを使用する。類推目的のために、候補点の各セットは、各時点における候補関節の星座（コンステレーション）に似ている。候補関節のコンステレーションは、時間とともに移動することができる。ある期間にわたる被写体追跡エンジン１１０の出力の時系列分析は、実空間のエリア内の被写体の動きを識別する。
【００４２】
例示的な実施形態では、候補関節のセットを識別するロジックが、実空間内の被写体の関節間の物理的関係に基づくヒューリスティック関数を含む。これらのヒューリスティック関数は、候補関節のセットを被写体として識別するために使用される。候補関節のセットは、他の個々の候補関節とのヒューリスティック・パラメータに基づく関係を有する個々の候補関節、及び、個々の被写体として識別された、または識別され得る特定され得る所与のセット内の候補関節のサブセットを含む。
【００４３】
ショッピングストアの例では、顧客（上記の被写体とも呼ばれる）が通路内及びオープンスペース内を移動する。顧客は、在庫陳列構造内の棚上の在庫位置から商品を取り出す。在庫陳列構造の一例では、棚はフロアから様々なレベル（または高さ）に配置され、在庫商品は棚上にストックされる。棚は、壁に固定されるか、または、ショッピングストア内の通路を形成する自立棚として配置され得る。在庫陳列構造の他の例には、ペグボード棚、マガジン棚、回転式棚、倉庫棚、及び、冷蔵棚ユニットが含まれる。在庫商品は、積み重ねワイヤバスケット、ダンプビン等の他のタイプの在庫陳列構造にストックすることもできる。また、顧客は商品を、それらが取り出された棚から同じ棚に、または別の棚に戻すこともできる。
【００４４】
開示される技術は、複数のカメラ内のカメラによって生成された画像フレームのシーケンスを使用して、ある期間にわたって実空間のエリア内で検出された被写体によるジェスチャを識別し、識別されたジェスチャを表すデータを含む在庫イベントを生成する。システムは、在庫イベントを在庫イベント・データベース１５０にエントリとして記憶するロジックを含む。在庫イベントは検出された被写体を識別する被写体識別子と、検出された被写体によって識別されたジェスチャのジェスチャ・タイプ（例えば、置くまたは取る）と、検出された被写体によるジェスチャにリンクされた在庫商品を識別する商品識別子と、実空間のエリアの３次元における位置によって表されるジェスチャの位置と、ジェスチャに対するタイムスタンプとを含む。在庫イベントは、被写体のイベントのログにエントリとして格納される。イベントのログには、個々の被写体にリンクされたイベントのエントリを含めることができる。在庫イベント・データは、在庫イベント・データベース１５０にエントリとして格納される。
【００４５】
一実施形態では、画像分析は匿名であり、すなわち、関節分析によって作成された被写体に割り当てられた固有識別子は実空間内の任意の特定の被写体の個人識別詳細を識別しない。例えば、顧客がショッピングストアに入ると、システムは上述のように関節分析を使用して顧客を識別し、「被写体ＩＤ」が割り当てられる。しかしながら、この識別子は、ユーザ・アカウント、名前、運転免許証、電子メールアドレス、郵送先住所、クレジットカード番号、銀行口座番号、運転免許証番号等のような被写体の実社会の識別情報、または、指紋、顔認識、手の幾何学的形状、網膜スキャン、虹彩スキャン、音声認識等のようなバイオメトリック識別情報にリンクされない。従って、識別された被写体は匿名である。被写体の識別及び追跡のための例示的技術の詳細は、２０１８年８月２１日発行の米国特許第１０，０５５，８５３号、「画像認識エンジンを用いた被写体の識別及び追跡」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。被写体データベース１４０、在庫イベント・データベース１５０、商品のログまたはショッピングカート・データベース１６０、及びアクショナブル・デジタル・レシート・データベース１７０に格納されるデータは、個人識別情報を含まない。デジタル・レシート処理エンジン１８０及び被写体追跡エンジン１１０の動作は、被写体に関連するバイオメトリック情報を含むいかなる個人識別情報も使用しない。
［チェックイン用マッチング・エンジン］
【００４６】
システムは、実空間のエリア内でクライアント・アプリケーションを実行しているモバイル・デバイス（識別された被写体によって携行される）の位置を識別することによって、識別された被写体をそれぞれのユーザ・アカウントとマッチングさせるロジックを含むマッチング・エンジンを含むことができる。識別された被写体とそれぞれのユーザ・アカウントとのマッチングは、「チェックイン」とも呼ばれる。一実施形態では、マッチング・エンジンが識別された被写体をユーザ・アカウントとマッチングさせるために、複数の手法を、独立してまたは組み合わせて使用する。このシステムは、ユーザに関するバイオメトリック識別情報を維持することなく実施可能であり、それにより、アカウント保持者に関するバイオメトリック識別情報は、そのような情報の配布によって引き起こされるセキュリティ及びプライバシーの懸念に晒されない。
【００４７】
一実施形態では、顧客がショッピングストアに入ると、パーソナル・モバイル・コンピューティング・デバイス上で実行されるクライアント・アプリケーションを使用してシステムにログインし、モバイル・デバイス上のクライアント・アプリケーションに関連付けられる真正なユーザ・アカウントを識別する。次に、システムは、画像データベース（図１には不図示）内の未割り当てセマフォ画像のセットから選択された「セマフォ」画像を、モバイル・デバイス上で実行されているクライアント・アプリケーションに送る。セマフォ画像は、同じ画像が、システムがユーザ・アカウントを識別された被写体とマッチングさせるまで、店舗内の別のクライアント・アプリケーションで使用するために開放されないため、ショッピングストア内のクライアント・アプリケーションに固有である。そのマッチング後は、セマフォ画像は再び使用可能になる。クライアント・アプリケーションは、モバイル・デバイスにセマフォ画像を表示させ、セマフォ画像の表示は、システムによって検出されるモバイル・デバイスによって発せられる信号である。マッチング・エンジンは、画像認識エンジン１１２ａ−ｎまたは別個の画像認識エンジン（図１には不図示）を用いて、セマフォア画像を認識し、ショッピングストア内での該セマフォアを表示するモバイル・コンピューティング・デバイスの位置を決定する。マッチング・エンジンは、モバイル・コンピューティング・デバイスの位置を、識別された被写体の位置にマッチングさせる。次に、マッチング・エンジンは、識別された被写体（被写体データベース１４０に記憶されている）を、その被写体がショッピングストア内に存在する間、クライアント・アプリケーションにリンクされたユーザ・アカウント（ユーザ・アカウント・データベースに記憶されている）にリンクする。識別された被写体とユーザ・アカウントとのマッチングには、バイオメトリック識別情報は使用されず、この処理のサポートには何も記憶されない。すなわち、この処理のサポートにおいて識別された被写体をユーザ・アカウントとマッチングさせる目的で、記憶されたバイオメトリック情報と比較するために使用される画像シーケンス内の情報はない。
【００４８】
他の実施形態では、マッチング・エンジンが、識別された被写体をユーザ・アカウントにリンクするために、モバイル・コンピューティング・デバイス１２０からの他の信号を、代替手段としてまたは組み合わせて使用する。斯かる信号の例には、実空間のエリア内のモバイル・コンピューティング・デバイスの位置、モバイル・コンピューティング・デバイスの加速度計及びコンパスから得られるモバイル・コンピューティング・デバイスの速度及び方向を識別するサービス位置信号が含まれる。
【００４９】
幾つかの実施形態では、アカウント保有者に関する如何なるバイオメトリック情報も維持しない実施形態が提供されるが、システムは、バイオメトリック情報を使用して、未だリンクされていない識別された被写体をユーザ・アカウントにマッチングさせるのを支援することができる。例えば、一実施形態では、システムが、顧客の「毛髪の色」をユーザ・アカウント・レコードに記憶する。マッチング処理中に、システムは例えば、被写体の毛髪の色を追加の入力として使用して、被写体の曖昧さを解消し、被写体をユーザ・アカウントにマッチングさせることができる。ユーザが赤色の毛髪を有し、実空間のエリア内またはモバイル・コンピューティング・デバイスの近傍に赤色の毛髪を有する被写体が１つしかない場合、システムは、ユーザ・アカウントにマッチングするように赤色の毛髪を有する被写体を選択することができる。被写体及びそのユーザ・アカウントをマッチングさせるための例示的な技術の詳細は、２０１９年１月２３日出願の米国特許出願第１６／２５５，５７３号、「レジ無し店舗で買い物客をチェックインさせるシステム及び方法」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
【００５０】
ネットワーク１８１を介した、在庫イベント位置処理エンジン１８０をホストするネットワーク・ノード１０４、及び、在庫イベント・シーケンシング・エンジン１９０をホストするネットワーク・ノード１０６への実際の通信経路は、公衆ネットワーク及び／またはプライベート・ネットワーク上のポイント・ツー・ポイントとすることができる。通信は、プライベート・ネットワーク、ＶＰＮ、ＭＰＬＳ回路、またはインターネット等の様々なネットワーク１８１を介して行うことができ、適切なアプリケーション・プログラミング・インターフェース（ＡＰＩ）及びデータ交換フォーマット、例えば、ＲＥＳＴ（Representational State Transfer）、ＪＳＯＮ（JavaScript（商標）Object Notation）、ＸＭＬ（Extensible Markup Language）、ＳＯＡＰ（Simple Object Access Protocol）、ＪＭＳ（Java（商標）Message Service）、及び／またはＪａｖａプラットフォーム・モジュール・システム等を使用することができる。全ての通信は、暗号化することができる。通信は、一般に、ＥＤＧＥ、３Ｇ、４ＧＬＴＥ、Ｗｉ−Ｆｉ、及びＷｉＭＡＸ等のプロトコルを介して、ＬＡＮ(ローカル・エリア・ネットワーク）、ＷＡＮ(ワイド・エリア・ネットワーク）、電話ネットワーク（公衆交換電話網（ＰＳＴＮ））、セッション開始プロトコル（ＳＩＰ）、無線ネットワーク、ポイント・ツー・ポイント・ネットワーク、星型ネットワーク，トークンリング型ネットワーク，ハブ型ネットワーク、インターネット（モバイルインターネットを含む）等のネットワーク上で行われる。更に、ユーザ名／パスワード、オープン許可（ＯＡｕｔｈ）、Ｋｅｒｂｅｒｏｓ、ＳｅｃｕｒｅＩＤ、デジタル証明書などの様々な承認及び認証技術を使用して、通信を保護することができる。
【００５１】
本明細書に開示される技術は、データベース・システム、マルチテナント環境、または、Ｏｒａｃｌｅ（商標）と互換性のあるデータベース実施態様、ＩＢＭ  ＤＢ２  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｅｒ（商標）と互換性のあるリレーショナル・データベース実施態様、ＭｙＳＱＬ（商標）またはＰｏｓｔｇｒｅＳＱＬ（商標）と互換性のあるリレーショナル・データベース実施態様またはＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ（商標）と互換性のあるリレーショナル・データベース実施態様等のリレーショナル・データベース実施態様、または、Ｖａｍｐｉｒｅ（商標）と互換性のある非リレーショナル・データベース実施態様、Ａｐａｃｈｅ  Ｃａｓｓａｎｄｒａ（商標）と互換性のある非リレーショナル・データベース実施態様、 ＢｉｇＴａｂｌｅ（商標）と互換性のある非リレーショナル・データベース実施態様、またはＨＢａｓｅ（商標）またはＤｙｎａｍｏＤＢ（商標）と互換性のある非リレーショナル・データベース実施態様、等のＮｏＳＱＬ（商標）の非リレーショナル・データベース実施態様を含む何かのコンピュータ実装システムという状況下で実施され得る。更に、開示された技術は、ＭａｐＲｅｄｕｃｅ（商標）、バルク同期プログラミング、ＭＰＩプリミティブ等の様々なプログラミングモデル、または、Ａｐａｃｈｅ  Ｓｔｏｒｍ（商標）、Ａｐａｃｈｅ  Ｓｐａｒｋ（商標）、Ａｐａｃｈｅ  Ｋａｆｋａ（商標）、Ａｐａｃｈｅ  Ｆｌｉｎｋ（商標）、Ｔｒｕｖｉｓｏ（商標）、Ａｍａｚｏｎ  Ｅｌａｓｔｉｃｓｅａｒｃｈ  Ｓｅｒｖｉｃｅ（商標）、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＡＷＳ）（商標）、ＩＢＭ  Ｉｎｆｏ‐Ｓｐｈｅｒｅ（商標）、Ｂｏｒｅａｌｉｓ（商標）、及びＹａｈｏｏ！ Ｓ４（商標）等の様々なスケーラブルなバッチ及びストリーム管理システムを使用して実施され得る。
［カメラ配置］
【００５２】
カメラ１１４は、３次元（３Ｄと略される）実空間において多関節被写体（または存在物）を追跡するように配置される。ショッピングストアの例示的な実施形態では、実空間は、販売用の商品が棚に積み重ねられるショッピングストアのエリアを含むことができる。実空間内の点は、（ｘ，ｙ，ｚ）座標系で表すことができる。システムが適用される実空間のエリア内の各点は、２つ以上のカメラ１１４の視野によってカバーされる。
【００５３】
ショッピングストアでは、棚及び他の在庫陳列構造は、ショッピングストアの側壁に沿って、または通路を形成する列に、または２つの構成の組合せでなど、様々な方法で配置することができる。図２Ａは、通路１１６ａの一端から見た、通路１１６ａを形成する棚の配置を示す。２つのカメラ、カメラＡ ２０６及びカメラＢ ２０８は、棚等の在庫陳列構造の上のショッピングストアの天井２３０及びフロア２２０から所定の距離で通路１１６ａの上に配置される。カメラ１１４は、実空間内の在庫陳列構造及びフロアエリアのそれぞれの部分を包含する視野を有し、その上に配置されたカメラを備える。被写体として識別された候補関節のセットのメンバーの実空間内の座標は、フロアエリア内の被写体の位置を識別する。図２Ａでは、被写体２４０が、モバイル・コンピューティング・デバイス１１８ａを持って、通路１１６ａ内のフロア２２０上に立っている。モバイル・コンピューティング・デバイスは、ワイヤレス・ネットワーク１８１を介して、信号を送受信できる。一実施例では、モバイル・コンピューティング・デバイス１２０は、例えば、ワイヤレス・アクセス・ポイント（ＷＡＰ）２５０及び２５２を介して、Ｗｉ−Ｆｉプロトコル、または、Ｂｌｕｅｔｏｏｔｈ、超広帯域無線、ＺｉｇＢｅｅ等の他のプロトコルを用いて、ワイヤレス・ネットワークを介して通信する。
【００５４】
ショッピングストアの例示的な実施形態では、実空間は、在庫にアクセス可能なショッピングストア内のフロア２２０の全てを含むことができる。カメラ１１４は、フロア２２０及び棚のエリアが少なくとも２つのカメラによって見えるように配置され、配向される。カメラ１１４は、また、少なくとも棚２０２及び２０４の一部と棚２０２及び２０４の前のフロアスペースとを覆う。カメラの角度は急峻な視点、真っ直ぐな視点及び角度の付いた視点の両方を有するように選択され、これにより、顧客のより完全な身体画像が得られる。一実施形態では、カメラ１１４が、ショッピングストア全体を通して、８フィート高さ以上で構成される。図１３に、斯かる実施形態の説明図を示す。
【００５５】
図２Ａでは、カメラ２０６及び２０８が重なり合う視野を有し、それぞれ重なり合う視野２１６及び２１８で棚Ａ ２０２と棚Ｂ ２０４との間の空間をカバーする実空間内の位置は、実空間座標系の（ｘ，ｙ，ｚ）点として表される。「ｘ」及び「ｙ」は、ショッピングストアのフロア２２０とすることができる２次元（２Ｄ）平面上の位置を表し、値「ｚ」は、１つの構成ではフロア２２０における２Ｄプレーン上の点の高さである。
【００５６】
図２Ｂは、図２Ａの上から見た通路１１６ａを示し、通路１１６ａ上のカメラ２０６及び２０８の位置の例示的な配置を更に示す。カメラ２０６及び２０８は、通路１１６ａの両端の近くに配置される。カメラＡ ２０６は棚Ａ ２０２から所定の距離に配置され、カメラＢ ２０８は棚Ｂ ２０４から所定の距離に配置される。３つ以上のカメラが通路上に配置される別の実施形態では、カメラは互いに等しい距離に配置される。このような実施形態では、２つのカメラが両端の近くに配置され、第３のカメラが通路の中央に配置される。多数の異なるカメラ配置が可能であることが理解される。
【００５７】
図３において、被写体２４０は在庫陳列構造の棚ユニットＢ ２０４の傍に立っており、片手は、棚ユニットＢ ２０４内の棚（目に見えない）の近くに位置している。図３は、フロアから異なる高さに配置された４つの棚、棚１、棚２、棚３、及び棚４を備えた棚ユニットＢ ２０４の斜視図である。在庫商品はこれらの棚にストックされる。
［３次元シーン生成］
【００５８】
実空間内の位置は、実空間座標系の（ｘ，ｙ，ｚ）点として表される。「ｘ」及び「ｙ」は、ショッピングストアのフロア２２０とすることができる２次元（２Ｄ）平面上の位置を表し、値「ｚ」は、１つの構成ではフロア２２０における２Ｄプレーン上の点の高さである。システムは、２つ以上のカメラからの２Ｄ画像フレームを組み合わせて、実空間のエリア内における関節及び在庫イベント（商品を棚へ置く及び棚から商品を取ることを示している）の３次元位置を生成する。本項では、関節及び在庫イベントの３Ｄ座標を生成するための処理を説明する。該処理は、３Ｄシーン生成の一例である。
【００５９】
在庫商品を追跡するために訓練または推論モードでシステム１００を使用する前に、２つのタイプのカメラ較正、すなわち、内部較正と外部較正が実行される。内部較正では、カメラ１１４の内部パラメータが較正される。内部カメラ・パラメータの例には、焦点距離、主点、スキュー、魚眼係数等がある。内部カメラ較正のための種々の技術を使用することができる。斯かる技術の１つは、Ｚｈａｎｇによって、２０００年１１月の第２２巻第１１号、パターン解析と機械知能に関するＩＥＥＥトランザクションで発表された「カメラ較正のためのフレキシブルな新手法」において提示されている。
【００６０】
外部較正では、外部カメラ・パラメータが、２Ｄ画像データを実空間の３Ｄ座標に変換するためのマッピング・パラメータを生成するために較正される。一実施形態では、人物などの１つの多関節被写体が実空間に導入される。多関節被写体は、各カメラ１１４の視野を通過する経路上で実空間を移動する。実空間内の任意の所与の点において、多関節被写体は、３Ｄシーンを形成する少なくとも２つのカメラの視野内に存在する。しかしながら、２つのカメラは、それぞれの２次元（２Ｄ）画像平面において同じ３Ｄシーンの異なるビューを有する。多関節被写体の左手首などの３Ｄシーン内の特徴は、それぞれの２Ｄ画像平面内の異なる位置にある２つのカメラによって見られる。
【００６１】
点対応は、所与のシーンについて重複する視野を有する全てのカメラ・ペアの間で確立される。各カメラは同じ３Ｄシーンの異なる視野を有するので、点対応は３Ｄシーンにおける同じ点の投影を表す２つのピクセル位置（重なり合う視野を有する各カメラからの１つの位置）である。外部較正のために、画像認識エンジン１１２ａ〜１１２ｎの結果を使用して、各３Ｄシーンについて多くの点対応が識別される。画像認識エンジンは関節の位置を、それぞれのカメラ１１４の２Ｄ画像平面内のピクセルの（ｘ，ｙ）座標、例えば、行及び列番号として識別する。一実施形態では、関節は、多関節被写体の１９の異なるタイプの関節のうちの１つである。多関節被写体が異なるカメラの視野を通って移動するとき、追跡エンジン１１０は、較正に使用される多関節被写体の１９の異なるタイプの関節の各（ｘ，ｙ）座標を、画像毎にカメラ１１４から受け取る。
【００６２】
例えば、カメラＡからの画像と、カメラＢからの画像との両方が同じ時点に、重なり合う視野で撮影された場合を考える。カメラＡからの画像には、カメラＢからの同期画像のピクセルに対応するピクセルがあり、カメラＡとカメラＢの両方の視野内の或る物体または表面の特定の点があり、その点が両方の画像フレームのピクセルに取り込まれていると考える。外部カメラ較正では、多数のそのような点が識別され、対応点と呼ばれる。較正中にカメラＡ及びカメラＢの視野内に１つの多関節被写体があるので、この多関節被写体の主要な関節、例えば左手首の中心が識別される。これらの主要な関節がカメラＡ及びカメラＢの両方からの画像フレーム内に見える場合、これらは対応点を表すと仮定される。この処理は、多くの画像フレームについて繰り返され、重なり合う視野を有する全てのカメラ・ペアについて対応点の大きな集合を構築する。一実施形態では、画像フレームが３０ ＦＰＳ(フレーム／秒）以上のレートで、フルＲＧＢ(赤、緑、及び青）カラーで７２０ピクセルの解像度で、全てのカメラからストリーミングされる。これらの画像フレームは、一次元配列（フラット配列とも呼ばれる）の形態である。
【００６３】
多関節被写体について上記で収集された多数の画像フレームを使用して、重なり合う視野を有するカメラ間の対応点を決定することができる。重なり合う視野を有する２つのカメラＡ及びＢを考える。カメラＡ、Ｂのカメラ中心と３Ｄシーンの関節位置（特徴点ともいう）を通る平面を「エピポーラ平面」と呼び、エピポーラ平面とカメラＡ、Ｂの２Ｄ画像平面との交差箇所を「エピポーラ線」と定義する。これらの対応点が与えられると、カメラＡからの対応点を、カメラＢの画像フレーム内の対応点と交差することが保証されるカメラＢの視野内のエピポーラ線に正確にマッピングすることができる変換が決定される。多関節被写体について上記で収集された画像フレームを使用して、変換が生成される。この変換は非線形であることが当技術分野で知られている。更に、一般形態では、投影された空間へ及び投影された空間から移動する非線形座標変換と同様に、それぞれのカメラのレンズの半径方向の歪み補正が必要であることが知られている。外部カメラ較正では、理想的な非線形変換への近似が非線形最適化問題を解くことによって決定される。この非線形最適化機能は、重なり合う視野を有するカメラ１１４の画像フレームを処理する様々な画像認識エンジン１１２ａ〜１１２ｎの出力（関節データ構造の配列）内の同じ関節を識別するために、被写体追跡エンジン１１０によって使用される。内部カメラ較正及び外部カメラ較正の結果は、較正データベースに格納される。
【００６４】
実空間におけるカメラ１１４の画像フレーム内の点の相対位置を決定するための様々な手法を使用することができる。例えば、Ｌｏｎｇｕｅｔ−Ｈｉｇｇｉｎｓが、「Ａ ｃｏｍｐｕｔｅｒ ａｌｇｏｒｉｔｈｍ ｆｏｒ ｒｅｃｏｎｓｔｒｕｃｔｉｎｇ ａ ｓｃｅｎｅ ｆｒｏｍ ｔｗｏ ｐｒｏｊｅｃｔｉｏｎｓ」（Ｎａｔｕｒｅ、第２９３巻、１９８１年９月１０日）を公表している。本論文では、２つの投影間の空間的関係が未知であるとき、遠近投影の相関ペアからシーンの３次元構造を計算することが提示されている。Ｌｏｎｇｕｅｔ−Ｈｉｇｇｉｎｓの論文は、実空間での各カメラの他のカメラに対する位置を決定する手法を提示する。更に、その手法は、実空間における多関節被写体の三角測量を可能にし、重なり合う視野を有するカメラ１１４からの画像フレームを使用してｚ座標の値（フロアからの高さ）を識別する。実空間の任意の点、例えば、実空間の一角の棚ユニットの端を、実空間の（ｘ，ｙ，ｚ）座標系上の（０，０，０）点とする。
【００６５】
本技術の一実施形態では、外部較正のパラメータが２つのデータ構造に格納される。第１のデータ構造は、固有パラメータを格納する。固有パラメータは、３Ｄ座標から２Ｄ画像座標への射影変換を表す。第１のデータ構造は以下に示すように、カメラ毎の固有パラメータを含む。データ値は全て浮動小数点数値である。このデータ構造は、「Ｋ」及び歪み係数として表される３×３固有行列を格納する。歪み係数は、６つの半径方向歪み係数と２つの接線方向歪み係数とを含む。半径方向の歪みは、光線がその光学的中心よりも、レンズの縁部の近傍でより大きく屈曲するときに生じる。接線方向の歪みは、レンズと像平面が平行でないときに生じる。以下のデータ構造は、第１のカメラのみの値を示す。同様のデータが全てのカメラ１１４に対して記憶される。
{
1: {
K: [[x, x, x], [x, x, x], [x, x, x]],
distortion _coefficients: [x, x, x, x, x, x, x, x]
}, 
......
}
【００６６】
第２のデータ構造は、カメラ・ペア毎に、３×３基本行列（Ｆ）、３×３必須行列（Ｅ）、３×４投影行列（Ｐ）、３×３回転行列（Ｒ）、及び３×１平行移動ベクトル（ｔ）を記憶する。このデータは、１つのカメラの基準フレーム内の点を別のカメラの基準フレームに変換するために使用される。カメラの各ペアについて、１つのカメラから別のカメラへフロア２２０の平面をマッピングするために、８つのホモグラフィ係数も記憶される。基本行列は、同じシーンの２つの画像フレーム間の関係であり、シーンからの点の投影が両方の画像フレームにおいて起こり得る場所を制約する。必須行列は、カメラが較正されている状態での、同じシーンの２つの画像フレーム間の関係でもある。投影行列は、３Ｄ実空間から部分空間へのベクトル空間投影を与える。回転行列は、ユークリッド空間における回転を実行するために使用される。平行移動ベクトル「ｔ」は、図形または空間の全ての点を所与の方向に同じ距離だけ移動させる幾何学的変形を表す。ホモグラフィ・フロア係数は、重なり合う視野を有するカメラによって見られるフロア２２０上の被写体の特徴の画像フレームを結合するために使用される。第２のデータ構造を以下に示す。同様のデータが、全てのカメラ・ペアについて記憶される。前述のように、ｘは浮動小数点数値を表す。
{
1: {
2: {
F: [[x, x, x], [x, x, x], [x, x, x]],
E: [[x, x, x], [x, x, x], [x, x, x]],
P: [[x, x, x, x], [x, x, x, x], [x, x, x, x]],
R: [[x, x, x], [x, x, x], [x, x, x]],
t: [x, x, x],
homography_floor_coefficients: [x, x, x, x, x, x, x, x]
}
},
.......
}
［２次元マップ及び３次元マップ］
【００６７】
ショッピングストア内の棚等の在庫位置は、固有識別子（例えば、棚ＩＤ）によって識別することができる。同様に、ショッピングストアは、固有識別子（例えば、店舗ＩＤ）によって識別することができる。システムは、それぞれの座標に沿った実空間のエリア内の在庫位置を識別する２次元（２Ｄ）及び３次元（３Ｄ）マップ・データベースを含むことができる。例えば、２Ｄマップでは、マップ内の位置が、図３に示されるように、フロア２２０に垂直に形成された平面、すなわちＸＺ平面上の２次元領域を規定する。マップは、在庫商品が配置される在庫位置のエリアを規定する。図３において、棚ユニットＢ ２０４内の棚１の２Ｄビューは、棚１の４隅を示す４つの座標位置（ｘ１，ｚ１）、（ｘ１，ｚ２）、（ｘ２，ｚ２）、及び（ｘ２，ｚ１）によって形成されるエリアを示し、これらの座標位置が、在庫商品が棚１上に配置される２Ｄ領域を規定する。同様の２Ｄ領域が、ショッピングストア内の全ての棚ユニット（または他の在庫陳列構造）内の全ての在庫位置に対して規定される。この情報は、マップ・データベース１４０に記憶される。
【００６８】
３Ｄマップでは、マップ内の位置が、Ｘ、Ｙ、及びＺ座標によって定義される３Ｄ実空間内の３次元領域を規定する。マップは、在庫商品が配置される在庫位置の容積を規定する。棚ユニットＢ ２０４内の棚１の３Ｄビューは、該容積の８隅に対応する８つの座標位置（ｘ１，ｙ１，ｚ１）、（ｘ１，ｙ１，ｚ２）、（ｘ１，ｙ２，ｚ１）、（ｘ１，ｙ２，ｚ２）、（ｘ２，ｙ１，ｚ１）、（ｘ２，ｙ１，ｚ２）、（ｘ２，ｙ２，ｚ１）、（ｘ２，ｙ２，ｚ２）によって形成される容積を示す。これらの座標位置は、在庫商品が棚１上に配置される３Ｄ領域を規定する。同様の３Ｄ領域が、ショッピングストア内の全ての棚ユニット内の在庫位置について規定され、マップ・データベース内に実空間（ショッピングストア）の３Ｄマップとして格納される。３つの軸に沿った座標位置を使用して、在庫位置の長さ、深さ、及び高さを計算することができる。
【００６９】
一実施形態では、マップが、実空間のエリア内の在庫陳列構造上の在庫位置の部分と相関する容積のユニットの構成を識別する。各部分は、実空間の３つの軸に沿った開始位置及び終了位置によって規定される。在庫位置の部分の同様の構成は、陳列構造の前面図を分割する２Ｄマップ在庫位置を使用して生成することもできる。
【００７０】
ショッピングストア内の商品は、特定の商品が配置されることが計画されている（棚等の）在庫位置を識別するプラノグラムに従って配置される。例えば、図３の例示３６０に示すように、棚３及び棚４の左半分は、商品（缶の形状でストックされている）に指定されている。一日の始めまたは他の在庫追跡間隔（時間ｔ＝０によって識別される）で、プラノグラムに従って在庫位置がストックされると考える。
【００７１】
開示される技術は、実空間のエリア内の在庫商品の位置のリアルタイム・マップである任意の時間「ｔ」におけるショッピングストアの「リアログラム」を計算することができ、これは、幾つかの実施形態では更に、店舗内の在庫位置と相関させることができる。リアログラムは、在庫商品及び店舗内の位置を識別し、それらを在庫位置にマッピングすることによって、プラノグラムを作成するために使用することができる。一実施形態では、システムまたは方法が実空間のエリア内に座標を有する複数のセルを規定するデータセットを作成することができる。システムまたは方法は、実空間の座標に沿ったセルの長さを入力パラメータとして使用して、実空間を複数のセルを規定するデータセットに分割することができる。一実施形態では、セルは、実空間のエリア内に座標を有する２次元グリッドとして表される。例えば、セルは、棚ユニット（在庫陳列構造とも呼ばれる）における在庫位置の前面図の２Ｄグリッド（例えば、１フィート間隔で）と相関することができる。各グリッドは、ｘ座標やｚ座標のような２次元平面の座標上で、その開始位置と終了位置によって規定される。この情報は、マップ・データベースに記憶される。
【００７２】
別の実施形態では、セルが実空間のエリア内に座標を有する３次元（３Ｄ）グリッドとして表される。一例では、セルは、ショッピングストア内の棚ユニットの在庫位置（または在庫位置の一部）上の容積と相関することができる。この実施形態では、実空間のマップが、実空間のエリア内の在庫陳列構造上の在庫位置の部分と相関することができる容量の単位の構成を識別する。この情報は、マップ・データベースに記憶される。ショッピングストアのリアログラムは、在庫イベント・データベース１５０に記憶された在庫イベントのタイムスタンプを使用することによって、任意の時間ｔにおいて、それらの位置によってセルにマッチングされた在庫イベントに関連付けられた在庫商品を示す。在庫イベントは、商品識別子、置くまたは取るインジケータ、実空間のエリアの３つの軸に沿った位置によって表される在庫イベントの位置、及び、タイムスタンプを含む。
［関節データ構造］
【００７３】
画像認識エンジン１１２ａ〜１１２ｎは、カメラ１１４からの画像フレームのシーケンスを受け取り、画像フレームを処理して、関節データ構造の対応する配列を生成する。システムは、複数のカメラによって生成された画像フレームのシーケンスを使用して、実空間のエリア内の複数の被写体（またはショッピングストア内の顧客）の位置を追跡する処理ロジックを含む。一実施形態では、画像認識エンジン１１２ａ〜１１２ｎが、在庫商品を取っているまたは置いている可能性のあるエリア内の被写体を識別するために使用可能な画像の各要素における被写体の１９個の可能な関節の内の１つを識別する。可能な関節は、足関節と非足関節の２つのカテゴリに分類することができる。関節分類の１９番目のタイプは、被写体の全ての非関節特徴（すなわち、関節として分類されない画像の要素）に対するものである。他の実施形態では、画像認識エンジンが特に手の位置を識別するように構成されてもよい。また、ユーザ・チェックイン手順またはバイオメトリック識別処理等の他の技法を、被写体を識別し、被写体が店舗内を移動する際に被写体の手の検出された位置と被写体をリンクさせる目的のために展開することができる。
足関節：
足首関節（左右）
非足関節：
首
鼻
眼（左右）
耳（左右）
肩（左右）
肘（左右）
手首（左右）
尻（左右）
膝（左右）
非関節
【００７４】
特定の画像の関節データ構造の配列は、関節タイプ、特定の画像の時間、及び特定の画像内の要素の座標によって、特定の画像の要素を分類する。一実施形態では画像認識エンジン１１２ａ〜１１２ｎが畳み込みニューラル・ネットワーク（ＣＮＮ）であり、関節タイプは被写体の１９種類の関節のうちの１つ、特定の画像の時間は特定の画像についてソースカメラ１１４によって生成された画像のタイムスタンプであり、座標（ｘ，ｙ）は２Ｄ画像平面上の要素の位置を特定する。
【００７５】
ＣＮＮの出力は、カメラ当たりの各画像に対する信頼度配列の行列である。信頼度配列の行列は、関節データ構造の配列に変換される。図４に示すような関節データ構造４００は、各関節の情報を記憶するために使用される。関節データ構造６００は、画像が受信されるカメラの２Ｄ画像空間内の特定の画像内の要素のｘ位置及びｙ位置を識別する。関節番号は、識別された関節のタイプを識別する。例えば、一実施形態では、値は１〜１９の範囲である。値１は関節が左足首であることを示し、値２は関節が右足首であることを示し、以下同様である。関節のタイプは、ＣＮＮの出力行列内のその要素に対する信頼度配列を使用して選択される。例えば、一実施形態では、左足首関節に対応する値がその画像要素の信頼度配列において最も高い場合、関節番号の値は「１」である。
【００７６】
信頼度数は、その関節を予測する際のＣＮＮの信頼度の程度を示す。信頼度数の値が高ければ、ＣＮＮは自身の予想に確信していることになる。関節データ構造を一意に識別するために、関節データ構造に整数ＩＤが割り当てられる。上記マッピングに続いて、画像毎の信頼度配列の出力行列５４０は、画像毎の関節データ構造の配列に変換される。一実施形態では、関節分析が、各入力画像に対して、ｋ最近傍、ガウス混合、及び、様々な画像形態変換の組み合わせを実行することを含む。この結果は、各時点において画像数をビットマスクにマッピングするリング・バッファ内にビットマスクの形式で格納することができる関節データ構造の配列を含む。
［被写体追跡エンジン］
【００７７】
追跡エンジン１１０は、重なり合う視野を有するカメラからの画像フレームのシーケンス内の画像フレームに対応する、画像認識エンジン１１２ａ〜１１２ｎによって生成された関節データ構造の配列を受信するように構成される。画像当たりの関節データ構造の配列は、画像認識エンジン１１２ａ〜１１２ｎによってネットワーク１８１を介して追跡エンジン１１０に送られる。追跡エンジン１１０は、様々な画像フレームのシーケンスに対応する関節データ構造の配列内の要素の座標を、実空間内の座標を有する候補関節に変換する。実空間内の位置は、２つ以上のカメラの視野によってカバーされている。追跡エンジン１１０は、実空間における座標（関節のコンステレーション）を有する候補関節のセットを、実空間における被写体として検出するためのロジックを備える。一実施形態では、追跡エンジン１１０が、所与の時点における全てのカメラについて、画像認識エンジンからの関節データ構造の配列を蓄積し、候補関節のコンステレーションを識別するために使用されるように、この情報を辞書として被写体データベース１４０に格納する。辞書は、キー値ペアの形式で編成することができ、ここで、キーはカメラＩＤであり、値はカメラからの関節データ構造の配列である。斯かる実施形態では、この辞書が候補関節を決定し、関節を被写体に割り当てるために、ヒューリスティックス・ベースの分析で使用される。斯かる実施形態では、追跡エンジン１１０の高レベル入力、処理、及び出力が表１に示されている。候補関節を組み合わせて被写体を検出し、実空間のエリア内の被写体の動きを追跡する被写体追跡エンジン１１０によって適用されるロジックの詳細は、２０１８年８月２１日発行の米国特許第１０，０５５，８５３号、「画像認識エンジンを用いた被写体の認識及び追跡」に示されており、これは、参照により本明細書に組み込まれる。検出された被写体は、実空間内の被写体の存在する至る所において被写体を追跡する固有識別子（被写体ＩＤ等）に割り当てられる。
表１：例示的な実施形態における被写体追跡エンジン１１０からの入力、処理、及び出力
2021535512.tif 000003
［被写体データ構造］
【００７８】
被写体追跡エンジン１１０は、ヒューリスティックを用いて、画像認識エンジン１１２ａ〜１１２によって識別された被写体の関節を接続する。その際、被写体追跡エンジン１１０は、新しい被写体を検出し、それぞれの関節位置を更新することによって識別された被写体（以前に検出されている）の位置を更新する。被写体追跡エンジン１１０は、三角測量技法を用いて、関節位置を２Ｄ空間座標（ｘ，ｙ）から３Ｄ実空間座標（ｘ，ｙ，ｚ）へ投影する。図５は、被写体を格納するための被写体データ構造５００を示す。該データ構造５００は、被写体関連データをキー値辞書として格納する。キーはフレームＩＤであり、値は別のキー値辞書であり、ここでは、キーはカメラＩＤであり、値は（被写体の）１８個の関節と実空間内のそれらの位置のリストである。被写体データは、被写体データベースに格納される。新しい被写体毎に、被写体データベース内の被写体のデータにアクセスするために使用される固有識別子も割り当てられる。
【００７９】
一実施形態では、システムが被写体の関節を識別し、被写体の骨格を作成する。骨格は、実空間に投影され、実空間における被写体の位置及び向きを示す。これは、マシンビジョンの分野では「姿勢推定」とも呼ばれる。一実施形態では、システムがグラフィカル・ユーザ・インタフェース（ＧＵＩ）上に実空間内の被写体の向き及び位置を表示する。一実施形態では、被写体識別及び画像分析は匿名であり、すなわち、関節分析によって作成された被写体に割り当てられた固有識別子は、上述したように、被写体の個人識別情報を識別しない。
【００８０】
この実施形態では、関節データ構造の時系列分析によって生成された、識別された被写体の関節のコンステレーションを使用して、被写体の手の位置を見つけることができる。例えば、手首関節単独の位置、または手首関節と肘関節との組み合わせの投影に基づく位置を使用して、識別された被写体の手の位置を識別することができる。
［在庫イベント］
【００８１】
図６は、実空間のエリア内の被写体による変化を追跡するためのシステムを実施するサブシステム・コンポーネントを示す。システムは、実空間における対応する視野のそれぞれの画像フレームのシーケンスを生成する複数のカメラ１１４を備える。各カメラの視野は上述したように、複数のカメラの内の少なくとも１つの他のカメラの視野と重なる。一実施形態では、複数のカメラ１１４によって生成された画像フレームに対応する画像フレームのシーケンスが循環バッファ６０２（リング・バッファとも呼ばれる）に格納される。各画像フレームは、画像データと共に、タイムスタンプ、カメラの識別情報（「カメラＩＤ」と略される）、及びフレーム識別情報（「フレームＩＤ」と略される）を有する。循環バッファ６０２は、それぞれのカメラ１１４からの連続的にタイムスタンプされた画像フレームのセットを格納する。一実施形態では、カメラ１１４が同期された画像シーケンスを生成するように構成される。一実施形態では、個別の循環バッファがカメラ１１４毎の画像フレームを格納する。
【００８２】
第１の画像プロセッサ６０４（被写体識別サブシステムとも呼ばれる）は、複数のカメラ１１４から対応する画像フレームのシーケンスを受信する第１の画像認識エンジン（被写体画像認識エンジンとも呼ばれる）を含む。被写体画像認識エンジンは、画像フレームを処理して、実空間における画像フレームの、対応するシーケンス内の画像フレームに表される被写体と被写体の位置とを識別する第１データセットを生成する。一実施形態では、被写体画像認識エンジンが関節ＣＮＮ１１２ａ〜１１２ｎと呼ばれる畳み込みニューラル・ネットワーク（ＣＮＮ）として実装される。単一の被写体の関節は、それぞれの画像チャネル内の複数のカメラの画像フレーム内に現れ得る。重なり合う視野を有するカメラに対応する関節ＣＮＮ１１２ａ〜１１２ｎの出力は、各カメラの２Ｄ画像座標から実空間の３Ｄ座標に関節の位置をマッピングするために組み合わされる。ｊが１〜ｘに等しい被写体（ｊ）毎の関節データ構造４００は、各画像について実空間及び２Ｄ空間における被写体（ｊ）の関節の位置を識別する。関節データ構造４００の幾つかの詳細を図４に示す。システムはまた、上述した３次元シーン生成を適用することにより、実空間のエリアの３Ｄ座標における被写体の関節の位置を決定することができる。その結果得られた被写体の関節の３Ｄ位置は、図５に示される被写体データ構造５００内に格納される。
【００８３】
第２の画像プロセッサ６０６（領域提案サブシステムとも呼ばれる）は、画像フレームのシーケンスから画像フレームを受信する第２の画像認識エンジン（前景画像認識エンジンとも呼ばれる）を含む。第２の画像プロセッサは、対応する画像シーケンス内の画像フレームに表される前景変化を識別且つ分類するロジックを含む。第２の画像プロセッサ６０６は、（被写体を識別する）第１データセットを処理して、画像フレームのシーケンス内の画像フレーム内の識別された被写体の手の画像を含む有界ボックスを指定するロジックを含む。図６に示すように、サブシステム６０６は、有界ボックス生成器６０８、ＷｈａｔＣＮＮ６１０、及びＷｈｅｎＣＮＮ６１２を含む。循環バッファ６０２からのカメラ当たりの関節データ構造４００及び画像フレームは、有界ボックス生成器６０８への入力として与えられる。有界ボックス生成器６０８は、データセットを処理して、画像フレームのシーケンス内の画像フレーム内の識別された被写体の手の画像を含む有界ボックスを指定するロジックを実装する。有界ボックス生成器は、例えば、それぞれのソース画像フレームに対応する多関節被写体データ構造５００内の手首関節（それぞれの手に対する）と肘関節の位置を使用して、カメラ毎に各ソース画像フレーム内の手の位置を識別する。被写体データ構造内の関節の座標が３Ｄ実空間座標内の関節の位置を示す一実施形態では、有界ボックス生成器が、関節位置を３Ｄ実空間座標からそれぞれのソース画像の画像フレーム内の２Ｄ画像座標にマッピングする。
【００８４】
有界ボックス生成器は、カメラ１１４毎に循環バッファ内の画像フレーム内の手のための有界ボックスを作成する。一実施形態では、有界ボックスが、画像フレームの１２８ピクセル（幅）×１２８ピクセル（高さ）部分であり、手は有界ボックスの中心に位置する。他の実施形態では、有界ボックスのサイズが６４ピクセル×６４ピクセルまたは３２ピクセル×３２ピクセルである。カメラからの画像フレーム内のｍ個の被写体について、最大２ｍ個の手、従って２ｍ個の有界ボックスが存在し得る。しかしながら、実際には、他の被写体または他の物体による遮蔽のために、２ｍより少ない手が画像フレーム内で見える。１つの例示的な実施形態では、被写体の手の位置が肘関節及び手首関節の位置から推測される。例えば、被写体の右手の位置は、右肘の位置（ｐ１として識別される）及び右手首の位置（ｐ２として識別される）を用いて、外挿量×(ｐ２−ｐ１)＋p２として外挿される。ここで外挿量は０．４である。別の実施形態では、関節ＣＮＮ１１２ａ〜１１２ｎが左手画像及び右手画像を使用してトレーニングされる。従って、斯かる実施形態では、関節ＣＮＮ１１２ａ〜１１２ｎがカメラ当たりの画像フレーム内の手の位置を直接識別する。画像フレーム当たりの手の位置は、識別された手当たりの有界ボックスを生成するために有界ボックス生成器によって使用される。
【００８５】
一実施形態では、ＷｈａｔＣＮＮ及びＷｈｅｎＣＮＮモデルは、実装された畳み込みニューラル・ネットワーク（ＣＮＮ）である。ＷｈａｔＣＮＮは、識別された被写体の手の分類を生成するために、画像フレーム内の指定された有界ボックスを処理するようにトレーニングされた畳み込みニューラル・ネットワークである。１つの訓練されたＷｈａｔＣＮＮは、１つのカメラからの画像フレームを処理する。ショッピングストアの例示的な実施形態では、各画像フレーム内の各手について、ＷｈａｔＣＮＮは手が空であるかどうかを識別する。ＷｈａｔＣＮＮは、また、手の中の在庫商品のＳＫＵ(在庫管理単位）番号、手の中の商品を示す信頼値が非ＳＫＵ商品（すなわち、ショッピングストア在庫に属さない）、及び画像フレーム内の手の位置の状況を識別する。
【００８６】
全てのカメラ１１４のＷｈａｔＣＮＮモデル６１０の出力は、所定の時間帯の間、単一のＷｈｅｎＣＮＮ６１２モデルによって処理される。ショッピングストアの例では、ＷｈｅｎＣＮＮが被写体の両手について時系列分析を実行して、検出された被写体によるジェスチャを識別し、在庫イベントを生成する。在庫イベントが、被写体が棚から店舗在庫商品を取るか、または店舗在庫商品を棚に置くかを識別する。 開示された技術は、複数のカメラの内の少なくとも２つのカメラによって生成された画像フレームのシーケンスを用いて、在庫イベントの位置を見つける。ＷｈｅｎＣＮＮは、少なくとも２つのカメラからの画像フレームのシーケンスからのデータセットの分析を実行して、３次元における在庫イベントの位置を決定し、在庫イベントに関連する商品を識別する。ジェスチャを識別し、在庫イベント及びそれらの発生時間を生成するために、ある期間にわたる被写体当たりのＷｈｅｎＣＮＮの出力の時系列分析が実行される。この目的のために、非最大抑制（ＮＭＳ）アルゴリズムが使用される。１つの在庫イベント（すなわち、被写体による商品を置くことまたは取ること）がＷｈｅｎＣＮＮによって複数回（同じカメラ及び複数のカメラの両方から）が生成されると、ＮＭＳは、被写体に対する余分なイベントを除去する。ＮＭＳは、２つの主要なタスク、すなわち、余分な検出にペナルティを課す「マッチングロス」と、より良好な検出が手近に存在するかどうかを知るための近隣の「関節処理」とを含む再スコアリング技術である。
【００８７】
各被写体に対する取ること及び置くことの真のイベントは、真のイベントを有する画像フレームの前の３０画像フレームに対するＳＫＵロジットの平均を計算することによって更に処理される。最後に、最大値の引数(ａｒｇ  ｍａｘまたはａｒｇｍａｘと略す）を使用して、最大値を決定する。ａｒｇｍａｘ値によって分類された在庫商品は、棚に置かれたまたは棚から取られた在庫商品を識別するために使用される。開示された技術は、在庫に関連する在庫イベントを被写体のログ・データ構造６１４（または、ショッピングカート・データ構造）に割り当てることで、在庫イベントを被写体に帰属させる。在庫商品は、それぞれの被写体のＳＫＵ（ショッピングカートまたはバスケットとも呼ばれる）のログに追加される。在庫イベントの検出につながった画像フレームの画像フレーム識別子「フレームＩＤ」も、識別されたＳＫＵとともに格納される。在庫イベントを被写体に帰属させるロジックは、在庫イベントの位置と複数の顧客中の顧客の一人の位置とをマッチングさせる。例えば、画像フレームは、被写体データ構造５００を用いて在庫イベントとして分類されるシーケンス中の少なくとも１時点における被写体の手の位置によって表される在庫イベントの３Ｄ位置を識別するのに使用することができ、そして、商品が取り出されたか、または置かれた場所からの在庫位置を決定するのに使用することができる。開示された技術は、複数のカメラの内の少なくとも２つのカメラによって生成された画像フレームのシーケンスを用いて、在庫イベントの位置を見つけ、在庫イベント・データ構造を作成する。一実施形態では、在庫イベント・データ構造は、商品識別子、置くまたは取るインジケータ、実空間のエリアの３次元の座標、及びタイムスタンプを格納する。一実施形態では、在庫イベントは、エントリとして在庫イベント・データベース１５０に格納される。
【００８８】
在庫イベント（空間のエリア内の被写体による在庫商品の置くこと及び取ることを示す）の位置は、被写体が商品を取り出した、または商品を置いた棚等の在庫位置を識別するために、店舗のプラノグラムまたは他のマップと比較することができる。一実施形態では、在庫イベントに関連付けられた手の位置からの最短距離を計算することによる、棚ユニット内の棚の判定が実行される。次に、この棚の判定は、棚の在庫データ構造を更新するために使用される。図７に、例示的な商品のログ・データ構造６１４（ログ・データ構造またはショッピングカート・データ構造とも呼ばれる）が示されている。この商品のログ・データ構造は、被写体、棚または店舗の在庫をキー値辞書として記憶する。キーは、被写体、棚または店舗の固有識別子であり、値は、別のキー値辞書であり、この場合、キーが在庫管理単位（ＳＫＵ）のような商品識別子であり、値が在庫イベント予測をもたらした画像フレームの「フレームＩＤ」と共に商品の数量を識別する番号である。フレーム識別子（「フレームＩＤ」）は、在庫商品と被写体、棚、または店舗との関連をもたらす在庫イベントの識別をもたらした画像フレームを識別するために使用することができる。他の実施形態では、ソースカメラを識別する「カメラＩＤ」をフレームＩＤと組み合わせて、在庫データ構造６１４内に格納することもできる。一実施形態では、フレームが被写体の手を有界ボックス内に有するので、「フレームＩＤ」は被写体識別子である。他の実施形態では、実空間のエリア内の被写体を明示的に識別する「被写体ＩＤ」のような他のタイプの識別子を、被写体を識別するために使用することができる。
【００８９】
システムは、被写体が棚から商品を取るか、商品を棚に置いて戻すと、被写体の商品のログ・データ構造を更新する。一実施態様では、システムは、被写体、棚及び店舗に対する商品のログ・データ構造を統合して、被写体のショッピングカート内の商品の数量及び棚上に位置する商品の数量を反映するように、各データ構造を更新する。棚在庫データ構造が、被写体のログ・データ構造と統合されると、棚在庫は、顧客が棚から取り出した商品の数量を反映するように減少される。顧客が商品を棚に置くか、または、従業員が商品を棚にストックした場合、商品は、それぞれの在庫位置の在庫データ構造に追加される。ある期間にわたって、この処理は、ショッピングストア内の全ての在庫位置についての棚在庫データ構造の更新をもたらす。実空間のエリア内の在庫位置の在庫データ構造を統合して、その時点における店舗内の各ＳＫＵの商品の総数を示す実空間のエリアの在庫データ構造を更新する。一実施形態では、そのような更新が各在庫イベントの後に実行される。別の実施形態では、店舗在庫データ構造は定期的に更新される。
【００９０】
在庫イベントを検出するＷｈａｔＣＮＮ及びＷｈｅｎＣＮＮの実施態様の詳細は、２０１８年１１月２０日登録の米国特許第１０，１３３，９３３号、「画像認識を用いた商品を置くこと及び取ることの検出」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
【００９１】
一実施形態では、システムが、実空間のエリアにおける置く及び取る在庫イベントを識別するために、第３の画像プロセッサ６１６（意味的差分抽出サブシステムとも呼ばれる）を含む。第３の画像プロセッサは、同じカメラ１１４からの画像及び第１の画像プロセッサ（被写体識別サブシステム）の出力を使用することができる。意味的差分抽出サブシステムの出力は、実空間のエリア内の被写体に対する在庫を置くこと及び取ることのイベントである。在庫イベントを検出するための意味的差分抽出サブシステムの実施態様の詳細な実施態様は、２０１８年１１月１３日発行の米国特許第１０，１２７，４３８号、「意味的差分抽出を使用した在庫イベントの予測」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。この実施形態では、システムが選択ロジック６２０を含むことができる。真の在庫イベント（取るまたは置くこと）ごとに、選択ロジック・コントローラ６２０は、第２の画像プロセッサ（領域提案サブシステム）または第３の画像プロセッサ（意味的差分抽出サブシステム）の何れかからの出力を選択する。一実施形態では、選択ロジックがその在庫イベントの予測のために、より高い信頼度スコアを有する画像プロセッサからの出力を選択する。
【００９２】
本出願に記載されているように、買い物客が棚から商品を取るか、または商品を棚に置いて戻すときに、取る及び置く在庫イベントが生成される。在庫イベント・データ構造はまた、実空間のエリアに在庫イベントの３Ｄ位置を格納することができる。別の実施形態では、在庫イベントの位置が在庫イベント・レコードにリンクされた別個のレコードに格納することができる。商品のログ・データ構造は、在庫イベントのタイプ（またはアクション） を含む。「取る」タイプの在庫イベントは被写体が棚から商品を取り出したことを示し、「置く」タイプの在庫イベントは、被写体が棚に商品を戻したことを示す。取る在庫イベントの結果、商品は、被写体の商品のログまたはショッピングカート・データ構造に含まれることになる。ＳＫＵ識別子は、店舗在庫内の商品を一意に識別する。数量フィールドは、棚から取り出された、または棚上に置かれた商品の数を示す。システムはまた、在庫イベントの信頼レベルを記録する。例えば、信頼レベル値は、０〜１の範囲の浮動小数点数とすることができる。信頼度数の値が高いほど、システムが、イベントの発生の確率が高い在庫イベントを予測したことを示す。信頼度スコアのより低い値は、システムがより低い確率スコアで在庫イベントを予測したことを示す。以下は、在庫イベント・データベース１５０とも呼ばれる在庫イベントのログに在庫イベントを格納するためのデータ構造の例である。
{
action: 'take'/'put'
sku_id: uuid,
quantity: 1,
confidence: float
}
［チェックアウト・イベント］
【００９３】
システムは、実空間のエリア内の被写体に対してチェックアウト・イベントを検出するためのロジックを含む。システムは、センサ・データ（カメラ１１４から受信した画像等）を処理して、実空間のエリア内の個々の被写体の位置及び動きを追跡する。特定の個人または特定の被写体に対するチェックアウト・イベントは、システムが特定の領域（例えば、実空間のエリアからの出口または実空間のエリアからの出口の周りの領域）に対する被写体の位置を追跡するときに生成される。一実施形態では、システムが実空間のエリアから出口に向かう被検体の動きを検出し、被検体が出口から所定の距離（例えば、５メートル）内にあるときにチェックアウト・イベントを生成する。被写体のチェックアウト・イベントに応答して、システムは被写体に対してデジタル・レシートを生成し、デジタル・レシートを被写体に関連付けられたデバイス（例えば、モバイル・コンピューティング・デバイス）に送信する。別の実施形態では、システムが被写体が出口を通って実空間のエリア（例えば、ショッピングストア）から出るときに、デジタル・レシートを生成することができる。デジタル・レシートには、被写体の商品のログにある商品に基づく商品のリストが含まれる。デジタル・レシートは、商品のリストにおいて変更（例えば返金）を要求するための被写体からの入力を促すデバイス上に表示するためのグラフィック構成を含むことができる。以下の項では、デジタル・レシートを生成し、被写体から受け取った返金要求を処理するためのシステム及び処理を提示する。
［デジタル・レシート］
【００９４】
ここで、デジタル・レシートを生成し、被写体に関連するコンピューティング・デバイスにデジタル・レシートを送信し、返金要求を処理することができるシステムの高レベル・アーキテクチャを提示する。デジタル・レシートは、ユーザ・デバイス上またはサーバ内で実行可能なコンピュータ・プログラム等の機能ロジックを含むか、または、該機能ロジックへのリンクを含む電子文書を備えることができ、グラフィカル・ユーザ・インタフェースと、自動化されたシステムにおけるデジタル・レシートへの異議の申立てと、デジタル・レシート内のエントリの検証をサポートする手順を実装する。システムのアーキテクチャは、図８に示されており、カメラ１１４が実空間のエリアの画像シーケンスを捕捉する。画像シーケンスは、重なり合う視野を有することができる。また、システムは、センサを使用して、重複する視野を有するセンサ・データのシーケンスを生成することができる。機械学習システム８０１は、センサ・データのシーケンスを処理して、実空間のエリア内の在庫イベントを識別するロジックを含む。斯かるシステムの一例は、図６を参照して上述されている。機械学習システム８０１は、個々の被写体について商品のログまたはショッピングカート・データ６１４を生成することができる。システムは、上述のように被写体をチェックインさせることができる。システムは、出口のような特定のエリアまたは実空間のエリアの出口の周りのエリアに追跡される被写体のチェックアウト・イベントを生成することができる出口検出ロジック８０５を含む。
【００９５】
デジタル・レシート処理エンジン１８０は、デジタル・レシート８０７を生成するロジックを含むことができる。デジタル・レシートには、特定の被写体の商品のログ内の商品に基づく商品のリストが含まれる。デジタル・レシートで商品を表す例示的なデータ構造を以下に示す：
{
refund_status: NONE/PENDING/ACCEPTED/DENIED
purchase_list: [
{
sku_id: uuid,
quantity: Number
price: Number
},
…
],
total: Number,
tax: Number,
subtotal: Number
}
【００９６】
デジタル・レシートには返金状態フィールドが含まれており、「保留」、「承認」、「否認」、「無し」等の値を割り当てることができる。購買リスト は、被写体の商品のログ内の商品ごとの要素を含むリスト・タイプ・データ構造の配列にすることができる。各商品について、デジタル・レシートは、在庫管理単位識別子（ＳＫＵ・ＩＤ）、数量、及び、価格等の情報を含む。デジタル・レシートは、すべての商品の価格にそれぞれの数量を乗じた合計である「小計」を含む。「合計」は、「小計」額に「税金」額を含めることによって計算することができる。デジタル・レシートは、商品の名前、被写体の名前、レシート作成日時、被写体が商品を購入した店舗名及び住所を含む店舗識別子、被写体のロイヤリティ・ポイント等の他のフィールドを含むこともできる。
【００９７】
デジタル・レシート処理エンジン１８０は、デジタル・レシートが生成される特定の被写体に関連するデバイス８１１にデジタル・レシートを送信するロジックを含む。デバイス８１１は、携帯電話、タブレット等のモバイル・コンピューティング・デバイスとすることができる。デジタル・レシート処理エンジン１８０はまた、電子メールを介して、被写体にデジタル・レシートを送ることができ、この被写体は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、またはモバイル・コンピューティング・デバイス等のコンピューティング・デバイスを使用して、電子メール・クライアントまたはウェブ・ブラウザでデジタル・レシートを開くことができる。
【００９８】
デジタル・レシートは、図８に示すように、モバイル・コンピューティング・デバイス８１１上に表示することができる。デジタル・レシートはまた、商品のリストの変更及び他のインタラクションを要求する入力を促す、デバイス上に表示するためのボタン、ウィジェット等のグラフィック構成とリンクされたデジタル・レシートとのインタラクションを支援する手順へのリンクを含むことができる。例えば、デジタル・レシートは、図８に示すような「返金」ボタンを含むことができる。被写体は、返金ボタンを押して、デジタル・レシート内の商品のリスト内の１つまたは複数の商品の返金を要求することができる。ここに記載されているようなデジタル・レシート内のエントリを検証する手順を起動するグラフィカル・ユーザ・インタフェースである。一実施形態では、デジタル・レシートは、手順をサポートする埋め込みソフトウェア、またはグラフィカル・ユーザ・インタフェースを使用して実行される手順をサポートするソフトウェアへのリンクを含む、拡張マークアップ言語（ＸＭＬ）等の電子文書の形態である。文書はブラウザでユーザに表示され、商品のログ内の商品はグラフィック構成（すなわち、返金を処理するための１つ以上のボタン）へのリンクと共に文書に表示される。別の実施形態では、デジタル・レシートは、コンピューティング・デバイス８１１上のアプリケーション（店舗アプリケーション等）を使用して表示される。デバイス上で実行されるアプリケーションは、デジタル・レシートを処理し、ユーザからの入力を受け取り、グラフィカル・ユーザ・インタフェースにリンクされた手順を呼び出して、返金要求または他のインタラクションをサポートする。
【００９９】
一実施形態では、デジタル・レシート上の返金ボタンを押すと、デジタル・レシート内の商品及びそれらの各数量を表示するユーザ・インタフェース８０９が表示される。商品の量は、「＋」及び「−」記号を有するグラフィック構成８１１として表示される。グラフィック構成は商品の現在の数量を表示し、被写体がグラフィック構成８１１上の「＋」記号を押して商品の数量を増加させ、「−」記号を押して商品の数量を減少させることを可能にする。商品の新しい数量は、返金要求メッセージ８１３と共にデジタル・レシート処理エンジン１８０に送られる。返金要求メッセージ８１３内の返金要求を送信するために使用できるデータ構造の例を以下に示す：
{
sku_id: uuid
quantity: number
}
【０１００】
デジタル・レシート処理エンジン１８０は、要求された変更に対応する特定の被写体の在庫イベントのログ内のエントリにアクセスするために、商品のリスト内の変更を要求する、特定の被写体のデバイスからのメッセージに応答するロジックを含む。ロジックは、エントリにおける分類信頼度スコアを信頼度閾値と比較する。信頼度スコアが閾値よりも低い場合、システムは、被写体によって要求された変更を受け入れ、デジタル・レシートを更新する。分類信頼度スコアが閾値を上回る場合、システムはセンサ・データの格納されたシーケンスからセンサ・データのセット（またはカメラからの画像シーケンス内の画像）を取り出し、人間のオペレータによる検査のために返金検査メッセージ８１５をモニタ・デバイス８１７に送信するロジックを含む。最後に、検査により承認または否認されたロジック８１９は、デジタル・レシートを必要に応じて更新し、検査処理の結果とともにメッセージをコンピューティング・デバイス８１１に送信することができる。
【０１０１】
図９Ａ〜図９Ｈは、デジタル・レシートがコンピューティング・デバイス８１１上に表示され、被写体が返金を要求するための入力を提供する一連のユーザ・インタフェースの例を示す。図９Ａは、モバイル・コンピューティング・デバイス８１１のユーザ・インタフェース上に表示される例示的なデジタル・レシートを示す。デジタル・レシートは、顧客によって購入された商品をリストする。この例では、デジタル・レシートは、被写体によって購入された３つの商品を、それらの写真、名前、及び数量と共に表示する。複数の数量を有する商品については、数量は、顧客がこの商品を３つ購入したことを意味する「×３」のような乗算記号で商品の画像の右上隅に表示される。デジタル・レシートは、デジタル・レシート上の個々の商品の額にそれぞれの数量を乗じたものを合計することによって計算される小計額を示す。税金は、適用される税金を使用して計算される。例えば、この例では、税金は小計額の１０％として計算される。総額は、小計額と税金額とを合計することによって計算される。デジタル・レシートは、商品が購入される店舗の名前及び住所、購入日時等の他の情報を表示することができる。デジタル・レシートは、支払いが行われたクレジットカードのカードタイプ及び最後の４桁等の支払いに関する情報を表示することができる。なお、決済情報はユーザ・アカウント・データベースに格納することができ、上述のチェックイン手順を用いて、被写体と連動させることができる。
【０１０２】
デジタル・レシートは、被写体がデジタル・レシートの変更を要求できるようにする１つ以上のボタンまたはリンクを表示することができる。例えば、「返金要求」とラベル付けされたグラフィック構成（ボタンまたはリンク等）９０３を、被写体がクリックまたは押下して、返金要求処理を開始することができる。被写体がボタン９０３を押下すると、図９Ｂに示すように、次のユーザ・インタフェースが表示される。ユーザは、図９Ｃに示すようなユーザ・インタフェースを表示する図９Ｂの「次へ」ボタンを押すことができる。デジタル・レシートの各商品について、図９Ｃに示すように、グラフィック構成９０７、９０９、及び９１１等が表示される。グラフィック構成９０７は、商品の現在の数量を中央に、数量の左側及び右側にそれぞれ「−」及び「＋」記号を表示する。被写体は、「＋」と「−」の記号を押下またはクリックして、商品の数量を増減させることができる。例えば、被写体が「ドール」缶の１つの商品を購入したが、デジタル・レシートが、被写体がグラフィック構成９０９に示すように「ドール」缶の３つを取ったことを示すと仮定する。被写体は、図９Ｄのグラフィック構成９１３に示すように、数量を１に減らすために、グラフィック構成９０９上の「−」記号を押す。同様に、被写体は「ドリトス」商品の数量を、図９Ｄのグラフィック構成９０７に示されるような１から、図９Ｅのグラフィック構成９１５に示されるようなゼロに減少させる。被写体は、デジタル・レシートの商品数を修正した後、図９Eの「次へ」ボタン９１７を押下する。図９Ｆは、返金の概要が被写体に表示されるユーザ・インタフェースを示す。図９Ｆは、被写体が返金を要求した商品及びその数量を示す。被写体は、図９Ｆの「要求提出」ボタン９２１を押して、返金要求を提出する。メッセージ９２３（図９Ｇ）が、被写体にその返金要求がシステムによって処理されていることを知らせるために、デジタル・レシートのユーザ・インタフェース上に表示される。返金要求が処理されると、図９Ｈに示すように、返金要求が承認されたというメッセージ９２５が表示される。ここで、デジタル・レシートは修正された数量の商品を表示し、返金額も表示することができる。
【０１０３】
図１０Ａ〜図１０Ｄは、被写体が「スワイプ」ジェスチャを使用して返金を要求することができる、デジタル・レシートの例示的なユーザ・インタフェースを示す。図１０Ａは、図９Ａに示すデジタル・レシートと同様のデジタル・レシートを示す。この例では、被写体が図１０Ｂに示されるように、商品の返金を要求するために、左スワイプのジェスチャ１００１を実行することができる。ユーザが左スワイプのジェスチャを実行すると、図１０Ｃに示すように、グラフィック構成１００３がユーザ・インタフェース上に表示される。グラフィック構成１００３は、商品の名前、写真または他の識別子を表示することができる。また、商品の現在の数量を、「−」と「＋」の記号の間に表示する。被写体は、「＋」と「−」記号を押下またはクリックして、商品の数量を増減させることができる。例えば、被写体は、数量を図１０Ｃの１から図１０Ｄのゼロに低下させる。次に、被写体は、グラフィック構成１００５内の「保存」ボタンを押して、返金要求を提出することができる。次いで、返金メッセージは、上述のように返金要求を処理するサーバ（デジタル・レシート処理エンジン等）に送信される。
【０１０４】
ここで、アクショナブル・デジタル・レシートを生成し、買い物客のコンピューティング・デバイス上でデジタル・レシートを受信及び表示し、サーバ側で商品異議（返金等）の要求を処理する処理を提示する。処理は、図１１、図１２、及び図１３にフローチャートとして示される。フローチャートによって示されるロジックは、コンピュータ・システムにアクセス可能なメモリに記憶され、プロセッサによって実行可能なコンピュータ・プログラムを用いてプログラムされたプロセッサを用いて、フィールド・プログラマブル集積回路を含む専用ロジック・ハードウェアを用いて、及び、専用ロジック・ハードウェアとコンピュータ・プログラムの組合せを用いて実現することができる。本明細書の全てのフローチャートと同様に、ステップの多くは、達成される機能に影響を及ぼすことなく、組み合わされ、並列に実行され、または異なる順序で実行され得ると理解されるであろう。幾つかの場合では、読者が理解するように、ステップの再配置は特定の他の変更が同様に行われる場合にのみ、同じ結果を達成する。他の場合には、読者が理解するように、ステップの再配置は特定の条件が満たされる場合にのみ、同じ結果を達成する。更に、本明細書のフローチャートは本発明の理解に関連するステップのみを示しており、他の機能を達成するための多数の追加のステップが、示されたステップの前、後、及びそれらの間で実行され得ると理解されるであろう。
【０１０５】
図１１のフローチャートは、デジタル・レシートを生成するための処理ステップを示す。処理は、ステップ１１０１で開始する。ステップ１１０３において、システムは、実空間のエリア内の被写体を追跡する。一実施形態では、システムが被写体追跡エンジン１１０に実装されたロジックを使用して、実空間のエリア内の被写体を追跡する。被写体追跡エンジン１１０は、３Ｄシーン生成、及び、被写体データ構造の作成及び更新によって、被写体を識別及び追跡することができる。システムは、ステップ１１０５で、被写体の在庫イベント（商品を置く及び取る等）を決定する。在庫イベントは、在庫イベントのログに格納される。システムは、被写体によって取得された商品を決定し、この情報を被写体毎の商品のログ・データ構造に格納する。一実施形態では、システムが一定間隔（３０秒毎、１５秒毎、または毎秒等）でステップ１１０３及び１１０５を実行し、被写体データ構造、在庫イベントの商品のログを更新する。
【０１０６】
ステップ１１０７において、システムは、被写体のチェックアウト・イベントを検出する。被写体が実空間のエリアから出口に向かって移動しているか、または被写体が実空間のエリアから出口に居るか、または出口の周りに居る場合、チェックアウト・イベントが検出される。条件が偽である場合、システムは、実空間のエリア内の全ての被写体について一定間隔でステップ１１０３及び１００５を実行する。ステップ１１０７の条件が被写体について真である場合、すなわち、被写体が出口に居るか出口の周りに居る場合、システムは、被写体について以下の処理ステップを実行する。ステップ１１０９で、システムは、チェックアウト・イベントが検出された被写体の商品のログ・データ構造を使用して、被写体のデジタル・レシート（アクショナブル・デジタル・レシートとも呼ばれる）を生成する。ステップ１１１１で、システムは、被写体に関連するモバイル・コンピューティング・デバイス上に表示するためのアクショナブル・デジタル・レシートを送信する。モバイル・デバイスは上述のように、チェックイン処理中に被写体と関連付けられる。他の実施形態では、システムは、電子メールを介して、被写体に関連付けられた電子メールアドレスにデジタル・レシートを送信することができる。被写体はデジタル・レシート上で商品について異議を唱えることができ、例えば、被写体は、１または複数の商品の返金を要求できる。一実施形態では、システムは、デジタル・レシートを送信した後の所定の持続時間、例えば、１週間、２週間等の間に返金要求を受け入れることができる。ステップ１１１３において、システムは、顧客から受け取った異議を処理する。異議を処理する前に、システムは、異議要求が許可された時間枠内にあるかどうかをチェックすることができる。もし時間枠内であれば、システムは、ステップ１１１５で異議手順を開始することができる。処理は、ステップ１１１７で終了する。
【０１０７】
図１２は、モバイル・コンピューティング・デバイス上に表示されたアクショナブル・デジタル・レシートからサーバに異議申立てを送信するためのプロセス・ステップのフローチャートを提示する。処理はステップ１２０１で開始する。ステップ１２０３で、サーバからのデジタル・レシートがモバイル・コンピューティング・デバイスで受信される。デジタル・レシートを受信したことを被写体に注意喚起する通知を生成することができる。通知は、被写体にデジタル・レシートを開くように促すサウンドアラーム、またはユーザ・インタフェース上に表示されるメッセージを含むことができる。デジタル・レシートは、ステップ１２０５において、モバイル・コンピューティング・デバイスのユーザ・インタフェース上に表示される。ステップ１２０７で、アクショナブル・デジタル・レシートは、ボタンまたはウィジェットのようなグラフィック構成からの被写体からの入力を検出する。ステップ１２０９で、返金要求等の異議申立てがサーバ（デジタル・レシート処理エンジンとも呼ばれる）に送信される。ステップ１２１１で、サーバからのレスポンス・メッセージが受信される。異議申立ての要求が承認された場合（ステップ１２１３）、ステップ１２１７で、更新されたデジタル・レシートがユーザに表示される。承認されなければ、ステップ１２１５において、返金要求が承認されていないというメッセージが表示される。メッセージはまた、顧客が返金要求を上申するために店舗に連絡することができるように、店舗の電話番号または電子メールアドレス等の連絡先番号を含むことができる。処理は、ステップ１２１９で終了する。
【０１０８】
図１３は、クライアント側（モバイル・コンピューティング・デバイス等）に表示されるアクショナブル・デジタル・レシートから受信した商品異議申立てメッセージを処理するための、サーバ側の処理ステップのフローチャートである。処理はステップ１３０１で開始する。ステップ１３０３において、サーバ（例えば、デジタル・レシート処理エンジン）は、特定の被写体に関連付けられたコンピューティング・デバイスからアクショナブル・デジタル・レシートからの異議申立てメッセージを受信する。ステップ１３０５で、システムは、要求された変更に対応する特定の被写体の在庫イベントのログ内のエントリにアクセスする。システムは、在庫イベントのログ内のアクセスされたエントリ内の信頼度スコアを、閾値と比較する（ステップ１３０７）。一実施形態では、信頼度スコアが０と１との間の実数とすることができる。閾値は、０．５の値に設定することができる。閾値を、０．５より大きいかまたは小さい他の値に設定することができる。在庫イベントの信頼度スコアが閾値未満である場合、システムは、ステップ１３０９で異議申立て（返金等）を受け入れる。逆に信頼度スコアが閾値未満でない場合、システムは、識別された在庫イベントに対応する格納されたセンサ・データのシーケンスからセンサ・データのセットを取り出す。一実施形態では、システムが在庫イベントにおける商品の「取り出し」の検出に至ったセンサ・データ（または画像フレーム）のフレーム番号を決定する。システムは、被写体が返金要求した商品に対応する被写体に対する商品のログ内のエントリに格納されたフレーム識別子（フレームＩＤ等）を使用して、センサ・データを検索することができる。商品のログを格納するための例示的なデータ構造は、図７の上方に示されており、商品を取るイベントに至ったフレーム番号を含んでいる。また、システムは、商品のログのエントリで識別されたフレームの前後の一連のフレームを取得することもできる。例えば、一実施形態では、システムが識別されたフレームの前５０フレーム及び後５０フレームを検索して、商品のログのエントリ内のフレーム識別子によって識別されたフレームを含む１００個のフレームのシーケンスを形成することができる。他の実施形態では、フレームのシーケンス内の識別されたフレームの前後に、５０未満または５０を超えるフレームを取り出すことができる。
【０１０９】
次に、このセンサ・データのセット（またはフレームのセット）を検査して、被写体が棚から商品を取り出したかどうかを判定する。一実施形態では、システムが、人間のオペレータによる検査のために、センサ・データのセットまたはセンサ・データのセットへのリンクをモニタ・デバイスに送信する（ステップ１３１３）。検査により、商品が被写体によって棚から取られたと判定した場合（ステップ１３１５）、システムは返金要求を拒絶する（ステップ１３１７）。そうでなければ、システムは返金要求を承認する（ステップ１３０９）。ステップ１３１９において、システムは、ユーザ・アカウント・レコード内の被写体によって選択された支払い方法を介して顧客に返金額を送信することによって、返金要求を処理する。システムは、更新された商品及びその数量で顧客のデジタル・レシートを更新する（ステップ１３２１）。返金要求に更なる商品がある場合（ステップ１３２３）、システムは、ステップ１３０５から開始して、上記の処理ステップを繰り返す。返金要求において処理されるべき商品がもはや存在しない場合、システムは、返金処理の結果について顧客に通知する応答メッセージを顧客に送信する（ステップ１３２５）。メッセージは、更新されたデジタル・レシートと、返金要求が承認された場合の返金の詳細とを含むことができる。処理は、ステップ１３２７で終了する。
［ネットワーク構成］
【０１１０】
図１４は、ネットワーク・ノード１０４上でホストされるデジタル・レシート処理エンジン１８０をホストするネットワークのアーキテクチャを示す。システムは、図示された実施形態では複数のネットワーク・ノード１０１ａ、１０１ｂ、１０１ｎ、及び１０２を含む。斯かる実施形態では、ネットワーク・ノードは処理プラットフォームとも呼ばれる。処理プラットフォーム（ネットワーク・ノード）１０４，１０１ａ〜１０１ｎ，及び１０２、並びに、カメラ１４１２，１４１４，１４１６，・・・１４１８（纏めて、カメラ１１４）は、ネットワーク１４８１に接続される。
【０１１１】
図１４は、ネットワークに接続された複数のカメラ１４１２，１４１４，１４１６，・・・１４１８を示す。多数のカメラを特定のシステムに配備することができる。一実施形態では、カメラ１４１２〜１４１８が、イーサネット（登録商標）ベースのコネクタ１４２２，１４２４，１４２６，及び１４２８をそれぞれ使用して、ネットワーク１４８１に接続される。斯かる実施形態では、イーサネット・ベースのコネクタがギガビット・イーサネットとも呼ばれる１ギガビット／秒のデータ転送速度を有する。他の実施形態では、カメラ１１４がギガビット・イーサネット（登録商標）よりも高速または低速のデータ転送速度を有することができる他のタイプのネットワーク接続を使用してネットワークに接続されることを理解されたい。また、代替の実施形態では、１組のカメラを各処理プラットフォームに直接接続することができ、処理プラットフォームをネットワークに結合することができる。
【０１１２】
記憶サブシステム１４３０は、本発明の特定の実施形態の機能を提供する基本的なプログラミング及びデータ構成を記憶する。例えば、デジタル・レシート処理エンジン１８０の機能を実施する様々なモジュールを、記憶サブシステム１４３０に格納することができる。記憶サブシステム１４３０は、非一時的データ記憶媒体を備えるコンピュータ可読メモリの一例であり、実空間のエリア内の被写体を、ユーザ・アカウントにリンクし、画像内に描写された識別された被写体の位置を決定し、本明細書で説明される処理によって、内でクライアント・アプリケーションを実行するモバイル・コンピューティング・デバイスの識別することにより識別された被写体をユーザ・アカウントにマッチングさせるロジックを含む、本明細書で説明されるデータ処理機能及び画像処理機能の全てまたは任意の組み合わせを実行するための、コンピュータによって実行可能なメモリに記憶されるコンピュータ命令を備える。他の例では、コンピュータ命令は、コンピュータ可読の非一時的データ記憶媒体または媒体を含む、携帯用メモリを含む他のタイプのメモリに記憶することができる。
【０１１３】
これらのソフトウェア・モジュールは一般に、プロセッサ・サブシステム１４５０によって実行される。ホスト・メモリ・サブシステム１４３２は、通常、プログラム実行中の命令及びデータの記憶のためのメイン・ランダム・アクセス・メモリ（ＲＡＭ）１４３４と、固定命令が記憶される読み出し専用メモリ（ＲＯＭ）１４３６とを含む幾つかのメモリを含む。一実施形態では、ＲＡＭ １４３４が商品のログ、在庫イベント、及び他の関連するデータを格納するためのバッファとして使用される。
【０１１４】
ファイル記憶サブシステム１４４０は、プログラム及びデータ・ファイルのための永続的記憶を提供する。例示的な一実施形態では、記憶サブシステム１４４０が、番号１４４２によって識別されるＲＡＩＤ０（独立ディスクの冗長配列）構成内に４つの１２０ギガバイト（ＧＢ）ソリッド・ステート・ディスク（ＳＳＤ）を含む。該例示的な実施形態では、被写体データベース１４０内の被写体データ、在庫イベント・データベース１５０内の在庫イベント・データ、商品のログ・データベース１６０内の商品のログ・データ、及びＲＡＭにないアクショナブル・デジタル・レシート・データベース１７０内のデジタル・レシート・データが、ＲＡＩＤ０に記憶される。該例示的な実施形態では、ハードディスク・ドライブ１４４６はＲＡＩＤ０ １４４２ストレージよりもアクセス速度が遅い。ソリッド・ステート・ディスク（ＳＳＤ）１４４４は、デジタル・レシート処理エンジン１８０のためのオペレーティング・システム及び関連ファイルを含む。
【０１１５】
例示的な構成では、４つのカメラ１４１２，１４１４，１４１６，１４１８が、処理プラットフォーム（ネットワーク・ノード）１０３に接続される。各カメラは、カメラによって送られた画像フレームを処理するために、専用グラフィックス処理ユニットＧＰＵ１ １４６２，ＧＰＵ２ １４６４，ＧＰＵ３ １４６６，及びＧＰＵ４ １４６８を有する。１つの処理プラットフォームにつき、３つより少ないまたは多いカメラを接続することができると理解される。従って、各カメラが、カメラから受信した画像フレームを処理するための専用ＧＰＵを有するように、より少ないまたはより多いＧＰＵがネットワーク・ノード内に構成される。プロセッサ・サブシステム１４５０、記憶サブシステム１４３０、及びＧＰＵ１４６２，１４６４、及び１４６６は、バス・サブシステム１４５４を使用して通信する。
【０１１６】
ネットワーク・インタフェース・サブシステム１４７０は、処理プラットフォーム（ネットワーク・ノード）１０４の一部を形成するバス・サブシステム１４５４に接続される。ネットワーク・インタフェース・サブシステム１４７０は、他のコンピュータ・システムにおける対応するインタフェース・デバイスへのインタフェースを含む、外部ネットワークへのインタフェースを提供する。ネットワーク・インタフェース・サブシステム１４７０は、ケーブル（または配線）を使用して、またはワイヤレスで、処理プラットフォームがネットワークを介して通信することを可能にする。実空間のエリア内のモバイル・コンピューティング・デバイス１２０によって発信されたワイヤレス信号１４７５は、マッチング・エンジンによる処理のために、ネットワーク・インタフェース・サブシステム１４７０によって（ワイヤレス・アクセス・ポイントを介して）受信される。同様に、モバイル・コンピューティング・デバイス１２０は、デジタル・レシート処理エンジンによってワイヤレス信号１４７５を介して送信されたデジタル・レシートを受信することができる。ユーザ・インタフェース出力デバイス及びユーザ・インタフェース入力デバイスのような幾つかの周辺デバイスも、処理プラットフォーム１０４の一部を形成するバス・サブシステム１４５４に接続されている。これらのサブシステム及びデバイスは、説明の明確性を改善するために、図１４には意図的に示されていない。バス・サブシステム１４５４は、単一のバスとして概略的に示されているが、バス・サブシステムの代わりの実施形態は複数のバスを使用することができる。
【０１１７】
一実施形態では、カメラ１１４が、１２８８×９６４の解像度、３０ＦＰＳのフレームレート、及び１．３メガピクセル／イメージで、３００ｍｍ〜無限大の作動距離を有する可変焦点レンズ、９８．２°〜２３．８°の１／３インチセンサによる視野を有するＣｈａｍｅｌｅｏｎ３ １．３ ＭＰ  Ｃｏｌｏｒ  ＵＳＢ３  Ｖｉｓｉｏｎ（Ｓｏｎｙ  ＩＣＸ４４５）を使用して実装することができる。
【０１１８】
上述または上記で参照された任意のデータ構造及びコードは、多くの実施態様に従って、コンピュータ・システムによって使用されるコード及び／またはデータを記憶することができる任意のデバイスまたは媒体であり得る、非一時的なコンピュータ可読記憶媒体を含むコンピュータ可読メモリに記憶される。これには、揮発性メモリ、不揮発性メモリ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、ディスク・ドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル・バーサタイル・ディスクまたはデジタル・ビデオ・ディスク）等の磁気及び光記憶デバイス、または、現在知られているまたは今後開発されるコンピュータ可読媒体を記憶することができる他の媒体が含まれるが、これらに限定されない。
【０１１９】
先行する説明は、開示された技術の使用及び実施を可能にするために提示されている。開示された実施態様に対する種々の変形は明らかであり、本明細書で規定された原理は、開示された技術の趣旨及び範囲から逸脱することなく、他の実施態様及び応用例に適用され得る。従って、開示された技術は、示された実施態様に限定されることを意図するものではなく、本明細書で開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。開示される技術の範囲は、添付の特許請求の範囲によって規定される。
【図１】
2021535512.tif 000004
【図２Ａ】
2021535512.tif 000005
【図２Ｂ】
2021535512.tif 000006
【図３】
2021535512.tif 000007
【図４】
2021535512.tif 000008
【図５】
2021535512.tif 000009
【図６】
2021535512.tif 000010
【図７】
2021535512.tif 000011
【図８】
2021535512.tif 000012
【図９Ａ】
2021535512.tif 000013
【図９Ｂ】
2021535512.tif 000014
【図９Ｃ】
2021535512.tif 000015
【図９Ｄ】
2021535512.tif 000016
【図９Ｅ】
2021535512.tif 000017
【図９Ｆ】
2021535512.tif 000018
【図９Ｇ】
2021535512.tif 000019
【図９Ｈ】
2021535512.tif 000020
【図１０Ａ】
2021535512.tif 000021
【図１０Ｂ】
2021535512.tif 000022
【図１０Ｃ】
2021535512.tif 000023
【図１０Ｄ】
2021535512.tif 000024
【図１１】
2021535512.tif 000025
【図１２】
2021535512.tif 000026
【図１３】
2021535512.tif 000027
【図１４】
2021535512.tif 000028
【国際調査報告】
2021535512.tif 000029
2021535512.tif 000030
2021535512.tif 000031