(57)【要約】  実空間のエリア内の在庫商品を追跡するためのシステム及び手法が提供される。複数のカメラまたはその他のセンサは、実空間内の対応する視野内にそれぞれの画像シーケンスを生成する。各カメラの視野は、少なくとも１つの他のカメラの視野と重なる。システムは、複数のカメラに連結され、複数のカメラ内の少なくとも２つのカメラによって生成された画像シーケンスを使用して、在庫イベントを識別する。在庫イベントは、商品識別子、位置、及び、タイムスタンプを含む。実空間のエリア内に座標を有する複数のセルは、データセットとしてメモリ内に記憶される。処理システムは、在庫イベントのそれぞれのカウントを使用して、特定のセルにマッチングする位置を有する在庫商品について、スコアリング時にスコアを計算する。【選択図】  図１１Ａ
2021533449.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]
}
},
.......
}
［２次元マップ及び３次元マップ］
【００７３】
ショッピングストア内の棚等の在庫位置は、固有識別子（例えば、棚ＩＤ）によって識別することができる。同様に、ショッピングストアは、固有識別子（例えば、店舗ＩＤ）によって識別することができる。２次元（２Ｄ）及び３次元（３Ｄ）マップ・データベース１４０は、それぞれの座標に沿った実空間のエリア内の在庫位置を識別する。例えば、２Ｄマップでは、マップ内の位置が、図３に示されるように、フロア２２０に垂直に形成された平面、すなわちＸＺ平面上の２次元領域を規定する。マップは、在庫商品が配置される在庫位置のエリアを規定する。図３において、棚ユニットＢ ２０４内の棚１の２Ｄビュー３６０は、４つの座標位置（ｘ１，ｚ１）、（ｘ１，ｚ２）、（ｘ２，ｚ２）、及び（ｘ２，ｚ１）によって形成されるエリアを示し、在庫商品が棚１上に配置される２Ｄ領域を規定する。同様の２Ｄ領域が、ショッピングストア内の全ての棚ユニット（または他の在庫陳列構造）内の全ての在庫位置に対して規定される。この情報は、マップ・データベース１４０に記憶される。
【００７４】
３Ｄマップでは、マップ内の位置が、Ｘ、Ｙ、及びＺ座標によって定義される３Ｄ実空間内の３次元領域を規定する。マップは、在庫商品が配置される在庫位置の容積を規定する。図３において、棚ユニットＢ ２０４内の棚１の３Ｄビュー３５０は、３Ｄ領域を規定する８つの座標位置（ｘ１，ｙ１，ｚ１）、（ｘ１，ｙ１，ｚ２）、（ｘ１，ｙ２，ｚ１）、（ｘ１，ｙ２，ｚ２）、（ｘ２，ｙ１，ｚ１）、（ｘ２，ｙ１，ｚ２）、（ｘ２，ｙ２，ｚ１）、（ｘ２，ｙ２，ｚ２）によって形成される容積を示し、在庫商品は、棚１上のその３Ｄ領域内に配置される。同様の３Ｄ領域が、ショッピングストア内の全ての棚ユニット内の在庫位置について規定され、マップ・データベース１４０内に実空間（ショッピングストア）の３Ｄマップとして格納される。図３に示すように、３つの軸に沿った座標位置を使用して、在庫位置の長さ、深さ、及び高さを計算することができる。
【００７５】
一実施形態では、マップが、実空間のエリア内の在庫陳列構造上の在庫位置の部分と相関する容積のユニットの構成を識別する。各部分は、実空間の３つの軸に沿った開始位置及び終了位置によって規定される。在庫位置の部分の同様の構成は、陳列構造の前面図を分割する２Ｄマップ在庫位置を使用して生成することもできる。
［関節データ構造］
【００７６】
画像認識エンジン１１２ａ〜１１２ｎは、カメラ１１４からの画像シーケンスを受け取り、画像を処理して、関節データ構造の対応する配列を生成する。システムは、複数のカメラによって生成された画像シーケンスを使用して、実空間のエリア内の複数の被写体（またはショッピングストア内の顧客）の位置を追跡する処理ロジックを含む。一実施形態では、画像認識エンジン１１２ａ〜１１２ｎが、在庫商品を取っているまたは置いている可能性のあるエリア内の被写体を識別するために使用可能な画像の各要素における被写体の１９個の可能な関節の内の１つを識別する。可能な関節は、足関節と非足関節の２つのカテゴリに分類することができる。関節分類の１９番目のタイプは、被写体の全ての非関節特徴（すなわち、関節として分類されない画像の要素）に対するものである。他の実施形態では、画像認識エンジンが特に手の位置を識別するように構成されてもよい。また、ユーザ・チェックイン手順またはバイオメトリック識別処理等の他の技法を、被写体を識別し、被写体が店舗内を移動する際に被写体の手の検出された位置と被写体をリンクさせる目的のために展開することができる。
足関節：
足首関節（左右）
非足関節：
首
鼻
眼（左右）
耳（左右）
肩（左右）
肘（左右）
手首（左右）
尻（左右）
膝（左右）
非関節
【００７７】
特定の画像の関節データ構造の配列は、関節タイプ、特定の画像の時間、及び特定の画像内の要素の座標によって、特定の画像の要素を分類する。一実施形態では画像認識エンジン１１２ａ〜１１２ｎが畳み込みニューラル・ネットワーク（ＣＮＮ）であり、関節タイプは被写体の１９種類の関節のうちの１つ、特定の画像の時間は特定の画像についてソースカメラ１１４によって生成された画像のタイムスタンプであり、座標（ｘ，ｙ）は２Ｄ画像平面上の要素の位置を特定する。
【００７８】
ＣＮＮの出力は、カメラ当たりの各画像に対する信頼度配列の行列である。信頼度配列の行列は、関節データ構造の配列に変換される。図４に示すような関節データ構造４００は、各関節の情報を記憶するために使用される。関節データ構造６００は、画像が受信されるカメラの２Ｄ画像空間内の特定の画像内の要素のｘ位置及びｙ位置を識別する。関節番号は、識別された関節のタイプを識別する。例えば、一実施形態では、値は１〜１９の範囲である。値１は関節が左足首であることを示し、値２は関節が右足首であることを示し、以下同様である。関節のタイプは、ＣＮＮの出力行列内のその要素に対する信頼度配列を使用して選択される。例えば、一実施形態では、左足首関節に対応する値がその画像要素の信頼度配列において最も高い場合、関節番号の値は「１」である。
【００７９】
信頼度数は、その関節を予測する際のＣＮＮの信頼度の程度を示す。信頼度数の値が高ければ、ＣＮＮは自身の予想に確信していることになる。関節データ構造を一意に識別するために、関節データ構造に整数ＩＤが割り当てられる。上記マッピングに続いて、画像毎の信頼度配列の出力行列５４０は、画像毎の関節データ構造の配列に変換される。一実施形態では、関節分析が、各入力画像に対して、ｋ最近傍、ガウス混合、及び、様々な画像形態変換の組み合わせを実行することを含む。この結果は、各時点において画像数をビットマスクにマッピングするリング・バッファ内にビットマスクの形式で格納することができる関節データ構造の配列を含む。
［被写体追跡エンジン］
【００８０】
追跡エンジン１１０は、重なり合う視野を有するカメラからの画像シーケンス内の画像に対応する、画像認識エンジン１１２ａ〜１１２ｎによって生成された関節データ構造の配列を受信するように構成される。画像当たりの関節データ構造の配列は、画像認識エンジン１１２ａ〜１１２ｎによってネットワーク１８１を介して追跡エンジン１１０に送られる。追跡エンジン１１０は、様々な画像シーケンスに対応する関節データ構造の配列内の要素の座標を、実空間内の座標を有する候補関節に変換する。実空間内の位置は、２つ以上のカメラの視野によってカバーされている。追跡エンジン１１０は、実空間における座標（関節のコンステレーション）を有する候補関節のセットを、実空間における被写体として識別するためのロジックを備える。一実施形態では、追跡エンジン１１０が、所与の時点における全てのカメラについて、画像認識エンジンからの関節データ構造の配列を蓄積し、候補関節のコンステレーションを識別するために使用されるように、この情報を辞書として被写体データベース１４０に格納する。辞書は、キー値ペアの形式で編成することができ、ここで、キーはカメラＩＤであり、値はカメラからの関節データ構造の配列である。斯かる実施形態では、この辞書が候補関節を決定し、関節を被写体に割り当てるために、ヒューリスティックス・ベースの分析で使用される。斯かる実施形態では、追跡エンジン１１０の高レベル入力、処理、及び出力が表１に示されている。候補関節を組み合わせて被写体を生成し、実空間のエリア内の被写体の動きを追跡する被写体追跡エンジン１１０によって適用されるロジックの詳細は、２０１８年８月２１日発行の米国特許第１０，０５５，８５３号、「画像認識エンジンを用いた被写体の認識及び追跡」に示されており、これは、参照により本明細書に組み込まれる。 
表１：例示的な実施形態における被写体追跡エンジン１１０からの入力、処理、及び出力
2021533449.tif 000003
［被写体データ構造］
【００８１】
被写体追跡エンジン１１０は、ヒューリスティックを用いて、画像認識エンジン１１２ａ〜１１２によって識別された被写体の関節を接続する。その際、被写体追跡エンジン１１０は、新しい被写体を生成し、それぞれの関節位置を更新することによって既存の被写体の位置を更新する。被写体追跡エンジン１１０は、三角測量技法を用いて、関節位置を２Ｄ空間座標（ｘ，ｙ）から３Ｄ実空間座標（ｘ，ｙ，ｚ）へ投影する。図５は、被写体を格納するための被写体データ構造５００を示す。該データ構造５００は、被写体関連データをキー値辞書として格納する。キーはフレームＩＤであり、値は別のキー値辞書であり、ここでは、キーはカメラＩＤであり、値は（被写体の）１８個の関節と実空間内のそれらの位置のリストである。被写体データは、被写体データベースに格納される。新しい被写体毎に、被写体データベース内の被写体のデータにアクセスするために使用される固有識別子も割り当てられる。
【００８２】
一実施形態では、システムが被写体の関節を識別し、被写体の骨格を作成する。骨格は、実空間に投影され、実空間における被写体の位置及び向きを示す。これは、マシンビジョンの分野では「姿勢推定」とも呼ばれる。一実施形態では、システムがグラフィカル・ユーザ・インターフェース（ＧＵＩ）上に実空間内の被写体の向き及び位置を表示する。一実施形態では、被写体識別及び画像分析は匿名であり、すなわち、関節分析によって作成された被写体に割り当てられた固有識別子は、上述したように、被写体の個人識別情報を識別しない。
【００８３】
この実施形態では、関節データ構造の時系列分析によって生成された、識別された被写体の関節のコンステレーションを使用して、被写体の手の位置を見つけることができる。例えば、手首関節単独の位置、または手首関節と肘関節との組み合わせの投影に基づく位置を使用して、識別された被写体の手の位置を識別することができる。
［在庫イベント］
【００８４】
図６は、通路１１６ａの上面図６１０において棚ユニットＢ ２０４の棚から在庫商品を取り出す被写体２４０を示す。開示される技術は、複数のカメラ内の少なくとも２つのカメラによって生成される画像シーケンスを使用して、在庫イベントの位置を見つける。単一の被写体の関節は、それぞれの画像チャネル内の複数のカメラの画像フレーム内に現れ得る。ショッピングストアの例では、被写体は、実空間のエリア内を移動し、在庫位置から商品を取り出し、また、在庫位置に商品を置き戻す。一実施形態では、システムが、ＷｈａｔＣＮＮ及びＷｈｅｎＣＮＮと呼ばれる畳み込みニューラル・ネットワークのパイプラインを使用して、在庫イベント（置くことまたは取ること、プラスまたはマイナス・イベントとも呼ばれる）を予測する。
【００８５】
被写体データ構造中の関節によって識別された被写体と、カメラ当たりの画像フレームのシーケンスからの対応する画像フレームとを含むデータセットは、有界ボックス生成器への入力として与えられる。有界ボックス生成器は、データセットを処理して、画像シーケンス内の画像内の識別された被写体の手の画像を含む有界ボックスを指定するロジックを実装する。有界ボックス生成器は、例えば、それぞれのソース画像フレームに対応する多関節データ構造５００内の手首関節（それぞれの手に対する）と肘関節の位置を使用して、カメラ毎に各ソース画像フレーム内の手の位置を識別する。被写体データ構造内の関節の座標が３Ｄ実空間座標内の関節の位置を示す一実施形態では、有界ボックス生成器が、関節位置を３Ｄ実空間座標からそれぞれのソース画像の画像フレーム内の２Ｄ座標にマッピングする。
【００８６】
有界ボックス生成器は、カメラ１１４毎に循環バッファ内の画像フレーム内の手のための有界ボックスを作成する。一実施形態では有界ボックスが、画像フレームの１２８ピクセル（幅）×１２８ピクセル（高さ）部分であり、手は有界ボックスの中心に位置する。他の実施形態では、有界ボックスのサイズが６４ピクセル×６４ピクセルまたは３２ピクセル×３２ピクセルである。カメラからの画像フレーム内のｍ個の被写体について、最大２ｍ個の手、従って２ｍ個の有界ボックスが存在し得る。しかしながら、実際には、他の被写体または他の物体による遮蔽のために、２ｍより少ない手が画像フレーム内で見える。１つの例示的な実施形態では、被写体の手の位置が肘関節及び手首関節の位置から推測される。例えば、被写体の右手の位置は、右肘の位置（ｐ１として識別される）及び右手首の位置（ｐ２として識別される）を用いて、外挿量×(ｐ２−ｐ１)＋p２として外挿される。ここで外挿量は０．４である。別の実施形態では、関節ＣＮＮ１１２ａ〜１１２ｎが左手画像及び右手画像を使用してトレーニングされる。従って、斯かる実施形態では、関節ＣＮＮ１１２ａ〜１１２ｎがカメラ当たりの画像フレーム内の手の位置を直接識別する。画像フレーム当たりの手の位置は、識別された手当たりの有界ボックスを生成するために有界ボックス生成器によって使用される。
【００８７】
ＷｈａｔＣＮＮは、識別された被写体の手の分類を生成するために、画像内の指定された有界ボックスを処理するようにトレーニングされた畳み込みニューラル・ネットワークである。１つの訓練されたＷｈａｔＣＮＮは、１つのカメラからの画像フレームを処理する。ショッピングストアの例示的な実施形態では、各画像フレーム内の各手について、ＷｈａｔＣＮＮは手が空であるかどうかを識別する。ＷｈａｔＣＮＮは、また、手の中の在庫商品のＳＫＵ(在庫管理単位）番号、手の中の商品を示す信頼値が非ＳＫＵ商品（すなわち、ショッピングストア在庫に属さない）、及び画像フレーム内の手の位置の状況を識別する。
【００８８】
全てのカメラ１１４のＷｈａｔＣＮＮモデルの出力は、所定の時間帯の間、単一のＷｈｅｎＣＮＮモデルによって処理される。ショッピングストアの例では、ＷｈｅｎＣＮＮが被写体の両手について時系列分析を実行して、被写体が棚から店舗在庫商品を取るか、または店舗在庫商品を棚に置くかを識別する。 開示された技術は、複数のカメラの内の少なくとも２つのカメラによって生成された画像シーケンスを用いて、在庫イベントの位置を見つける。ＷｈｅｎＣＮＮは、少なくとも２つのカメラからの画像シーケンスからのデータセットの分析を実行して、３次元における在庫イベントの位置を決定し、在庫イベントに関連する商品を識別する。ある期間にわたる被写体当たりのＷｈｅｎＣＮＮの出力の時系列分析が実行されて、在庫イベント及びそれらの発生時間が識別される。この目的のために、非最大抑制（ＮＭＳ）アルゴリズムが使用される。１つの在庫イベント（すなわち、被写体による商品を置くことまたは取ること）がＷｈｅｎＣＮＮによって複数回（同じカメラ及び複数のカメラの両方から）検出されると、ＮＭＳは、被写体に対する余分なイベントを除去する。ＮＭＳは、２つの主要なタスク、すなわち、余分な検出にペナルティを課す「マッチングロス」と、より良好な検出が手近に存在するかどうかを知るための近隣の「関節処理」とを含む再スコアリング技術である。
【００８９】
各被写体に対する取ること及び置くことの真のイベントは、真のイベントを有する画像フレームの前の３０画像フレームに対するＳＫＵロジットの平均を計算することによって更に処理される。最後に、最大値の引数(ａｒｇ  ｍａｘまたはａｒｇｍａｘと略す）を使用して、最大値を決定する。ａｒｇｍａｘ値によって分類された在庫商品は、棚に置かれたまたは棚から取られた在庫商品を識別するために使用される。開示された技術は、在庫に関連する在庫イベントを被写体のログ・データ構造（または、ショッピングカート・データ構造）に割り当てることで、在庫イベントを被写体に帰属させる。在庫商品は、それぞれの被写体のＳＫＵ（ショッピングカートまたはバスケットとも呼ばれる）のログに追加される。在庫イベントの検出につながった画像フレームの画像フレーム識別子「フレームＩＤ」も、識別されたＳＫＵとともに格納される。在庫イベントを被写体に帰属させるロジックは、在庫イベントの位置と複数の顧客中の顧客の一人の位置とをマッチングさせる。例えば、画像フレームは、被写体データ構造５００を用いて在庫イベントとして分類されるシーケンス中の少なくとも１時点における被写体の手の位置によって表される在庫イベントの３Ｄ位置を識別するのに使用することができ、そして、商品が取り出されたか、または置かれた場所からの在庫位置を決定するのに使用することができる。開示された技術は、複数のカメラの内の少なくとも２つのカメラによって生成された画像シーケンスを用いて、在庫イベントの位置を見つけ、在庫イベント・データ構造を作成する。一実施形態では、在庫イベント・データ構造は、商品識別子、置くまたは取るインジケータ、実空間のエリアの３次元の座標、及びタイムスタンプを格納する。一実施形態では、在庫イベントは、在庫イベント・データベース１５０に格納される。
【００９０】
在庫イベント（空間のエリア内の被写体による在庫商品の置くこと及び取ること）の位置は、被写体が商品を取り出した、または商品を置いた棚等の在庫位置を識別するために、店舗のプラノグラムまたは他のマップと比較することができる。例示６６０は、在庫イベントに関連付けられた手の位置６４０からの最短距離を計算することによる、棚ユニット内の棚の判定を示す。次に、この棚の判定は、棚の在庫データ構造を更新するために使用される。図７に、例示的な在庫データ構造７００（ログ・データ構造とも呼ばれる）が示されている。この在庫データ構造は、被写体、棚または店舗の在庫をキー値辞書として記憶する。キーは、被写体、棚または店舗の固有識別子であり、値は、別のキー値辞書であり、この場合、キーが在庫管理単位（ＳＫＵ）のような商品識別子であり、値が在庫イベント予測をもたらした画像フレームの「フレームＩＤ」と共に商品の数量を識別する番号である。フレーム識別子（「フレームＩＤ」）は、在庫商品と被写体、棚、または店舗との関連をもたらす在庫イベントの識別をもたらした画像フレームを識別するために使用することができる。他の実施形態では、ソースカメラを識別する「カメラＩＤ」をフレームＩＤと組み合わせて、在庫データ構造７００内に格納することもできる。一実施形態では、フレームが被写体の手を有界ボックス内に有するので、「フレームＩＤ」は被写体識別子である。他の実施形態では、実空間のエリア内の被写体を明示的に識別する「被写体ＩＤ」のような他のタイプの識別子を、被写体を識別するために使用することができる。
【００９１】
棚在庫データ構造が、被写体のログ・データ構造と統合されると、棚在庫は、顧客が棚から取り出した商品の数量を反映するように減少される。顧客が商品を棚に置くか、または、従業員が商品を棚にストックした場合、商品は、それぞれの在庫位置の在庫データ構造に追加される。ある期間にわたって、この処理は、ショッピングストア内の全ての在庫位置についての棚在庫データ構造の更新をもたらす。実空間のエリア内の在庫位置の在庫データ構造を統合して、その時点における店舗内の各ＳＫＵの商品の総数を示す実空間のエリアの在庫データ構造を更新する。一実施形態では、そのような更新が各在庫イベントの後に実行される。別の実施形態では、店舗在庫データ構造は定期的に更新される。
【００９２】
在庫イベントを検出するＷｈａｔＣＮＮ及びＷｈｅｎＣＮＮの実施態様の詳細は、２０１８年２月２７日出願の米国特許出願第１５／９０７，１１２号、「画像認識を用いた商品を置くこと及び取ることの検出」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
［リアルタイム棚及び店舗在庫更新 ］
【００９３】
図８は、実空間のエリア内の棚在庫構造を更新する処理ステップを示すフローチャートである。処理はステップ８０２から始まる。ステップ８０４では、システムが、実空間のエリア内での取るまたは置くイベントを検出する。在庫イベントは、在庫イベント・データベース１５０に記憶される。在庫イベント・レコードは、ＳＫＵ等の商品識別子、タイムスタンプ、３次元ｘ、ｙ、及びｚに沿った位置を示す実空間の３次元エリア内のイベントの位置を含む。在庫イベントは、また、置くまたは取るインジケータを含み、被写体が商品を棚に置いたかどうか（プラス在庫イベントとも呼ばれる）、または商品を棚から取り出したかどうか（マイナス在庫イベントとも呼ばれる）を識別する。在庫イベント情報は、被写体追跡エンジン１１０からの出力と組み合わされて、この在庫イベントに関連する被写体を識別する。次に、この分析の結果を使用して、在庫データベース１６０内の被写体のログ・データ構造（ショッピングカート・データ構造とも呼ばれる）を更新する。一実施形態では、被写体識別子（例えば、「被写体ＩＤ」）が在庫イベント・データ構造に格納される。
【００９４】
システムは、在庫イベントに関連する被写体の手の位置（ステップ８０６）を使用して、ステップ８０８において、在庫陳列構造（上記の棚ユニットとも呼ばれる）内の最も近い棚の位置を見つけることができる。店舗在庫エンジン１８０は、ショッピングストア内の在庫位置のｘｚ平面（フロア２２０に垂直）上の２次元（２Ｄ）領域またはエリアまでの手の距離を計算する。在庫位置の２Ｄ領域は、ショッピングストアのマップ・データベース１４０内に格納される。手が実空間内の点Ｅ(ｘevent，ｙevent，ｚevent） で表されるとする。実空間内の点Ｅから該平面上の任意の点Ｐまでの最短距離Ｄは、該平面に対する法線ベクトルｎ上にベクトルＰＥを射影することによって決定することができる。既存の数学的技法を使用して、在庫位置の２Ｄ領域を表す全ての平面に対する手の距離を計算することができる。
【００９５】
一実施形態では、開示される技術は、在庫イベントの位置から在庫陳列構造上の在庫位置までの距離を計算すること、及び計算された距離に基づいて在庫イベントを在庫位置とマッチングさせることを含む手順を実行することによって、在庫イベントの位置を在庫位置とマッチングさせる。例えば、在庫イベントの位置から最短距離にある在庫位置（棚等）が選択され、この棚の在庫データ構造がステップ８１０で更新される。一実施形態では、在庫イベントの位置が、実空間の３つの座標に沿った被写体の手の位置によって決定される。在庫イベントが、ケチャップのボトルが被写体によって取られたことを示す取るイベント（またはマイナスイベント）である場合、棚の在庫は、ケチャップボトルの数を１つ減らすことによって更新される。同様に、在庫イベントが、被写体が棚にケチャップのボトルを置くことを示す置くイベントである場合は、ケチャップボトル数を１つ増やして、棚の在庫を更新する。同様に、店舗の在庫データ構造もそれに応じて更新される。在庫位置に置かれた商品の数量は、店舗在庫データ構造において同じ数だけ増分される。同様に、在庫位置から取られた商品の数量は、在庫データベース１６０内の店舗の在庫データ構造から差し引かれる。
【００９６】
ステップ８１２において、プラノグラムがショッピングストアに対し利用可能であるか、或いは、プラノグラムが利用可能であること知り得るかがチェックされる。プラノグラムは、ショッピングストア内の在庫位置に在庫商品をマッピングするデータ構造であり、これは、店舗内の在庫商品の配置のための計画に基づくことができる。ショッピングストアに対しプラノグラムが利用可能である場合、ステップ８１４で、被写体によって棚に置かれた商品が、プラノグラム内の棚上の商品と比較される。一実施形態では、開示される技術は、在庫イベントがプラノグラムとマッチングしない在庫位置とマッチングする場合に、誤配置された商品を決定するロジックを含む。例えば、在庫イベントに関連付けられた商品のＳＫＵが、在庫位置における在庫商品の配置とマッチングする場合、商品の位置は正しく（ステップ８１６）、マッチングしない場合、商品は誤配置されている。一実施形態では、ステップ８１８において、誤配置された商品を現在庫位置（棚等）から取り出し、プラノグラムに従ってその正しい在庫位置に移動させるための通知が、従業員に送信される。システムは、ステップ８２０において、被写体がショッピングストアから出て行くかどうかを、店舗の出口までのスピード、向き、及び近さを用いてチェックする。被写体が店舗から出て行こうとしていない場合（ステップ８２０）、処理はステップ８０４において再開する。そうでない場合、被写体が店舗を出て行くと判定された場合、ステップ８２２で、被写体のログ・データ構造（またはショッピングカート・データ構造）及び店舗の在庫データ構造が統合される。
【００９７】
一実施形態では、ステップ８１０において、被写体のショッピングカート・データ構造内の商品が店舗在庫から差し引かれない場合、統合はこれらの商品を店舗在庫データ構造から差し引くことを含む。このステップにおいて、システムは、低識別信頼度スコアを有する被写体のショッピングカート・データ構造内の商品を識別し、店舗出口付近に位置する店舗従業員に通知を送信することもできる。次いで、従業員は、顧客のショッピングカート内の低識別信頼度スコアの商品を確認することができる。この処理は、顧客のショッピングカート内の全ての商品を顧客のショッピングカート・データ構造と比較することを店舗従業員に要求せず、信頼度スコアが低い商品のみがシステムによって店舗従業員に対して識別され、店舗従業員によって確認される。処理は、ステップ８２４で終了する。
［リアルタイム棚及び店舗在庫更新のためのアーキテクチャ］
【００９８】
顧客在庫、在庫位置（例えば棚）在庫、及び、店舗在庫（例えば店舗全体）データ構造が、ショッピングストア内の顧客による商品を置くこと及び取ることを使用して更新されるシステムのアーキテクチャ例を、図９Ａに示す。図９Ａはアーキテクチャ図であるため、説明の明確性を向上させるために、特定の詳細は省略されている。図９Ａに示すシステムは、複数のカメラ１１４から画像フレームを受信する。上述のように、一実施形態では、カメラ１１４が、画像が同時に、または時間的に近く、かつ同じ画像キャプチャレートで取得されるように、互いに時間的に同期させることができる。同時にまたは時間的に近い実空間のエリアをカバーする全てのカメラにおいて取得された画像は、同期された画像が実空間において固定された位置を有する被写体のある時点での様々な光景を表すものとして処理エンジンにおいて識別されることができるという意味で同期される。画像は、カメラ毎に画像フレームの循環バッファ９０２内に格納される。
【００９９】
「被写体識別」サブシステム９０４（第１の画像プロセッサとも呼ばれる）は、カメラ１１４から受け取った画像フレームを処理して、実空間内の被写体を識別し追跡する。第１の画像プロセッサは、実空間内の被写体の関節を検出する被写体画像認識エンジンを含む。関節は接続され被写体を形成し、そして、実空間内での移動として追跡される。被写体は匿名であり、内部の識別子「被写体ＩＤ」を使用して追跡される。
【０１００】
「領域提案」サブシステム９０８（第３の画像プロセッサとも呼ばれる）は、前景画像認識エンジンを含み、複数のカメラ１１４から対応する画像シーケンスを受信し、前景内の意味的に重要な物体（すなわち、顧客、顧客の手、及び在庫商品）が、各カメラからの画像において経時的に、在庫商品を置くこと及び取ることに関連するときに、当該物体を認識する。領域提案サブシステム９０８は、また、被写体識別サブシステム９０４の出力を受信する。第３の画像プロセッサは、カメラ１１４からの画像シーケンスを処理して、対応する画像シーケンス内の画像に表される前景変化を識別し且つ分類する。第３の画像プロセッサは、識別された前景変化を処理して、識別された被写体による在庫商品を取ることの検出、及び、識別された被写体による在庫陳列構造上の在庫商品を置くことの第１の検出セットを作成する。一実施形態では、第３の画像プロセッサは、上述のＷｈａｔＣＮＮ等の畳み込みニューラル・ネットワーク（ＣＮＮ）モデルを備える。第１の検出セットは、在庫商品を置くこと及び取ることの前景検出とも呼ばれる。この実施形態では、ＷｈａｔＣＮＮの出力が第２の畳み込みニューラル・ネットワーク（ＷｈｅｎＣＮＮ）で処理されて、在庫位置に在庫商品の置くイベント、及び、顧客及び店舗の従業員による在庫陳列構造内の在庫位置上の在庫商品の取るイベントを識別する第１の検出セットを作成する。領域提案サブシステムの詳細は、２０１８年２月２７日出願の米国特許出願第１５／９０７，１１２号、「画像認識を用いた商品を置くこと及び取ることの検出」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
【０１０１】
別の実施形態では、アーキテクチャが、在庫商品を置くこと及び取ることを検出し、これらの置くこと及び取ることをショッピングストア内の被写体に関連付けるために、第３の画像プロセッサと並列に使用することができる「意味的差分抽出」サブシステム（第２の画像プロセッサとも呼ばれる）を含む。この意味的差分抽出サブシステムは、背景画像認識エンジンを含み、背景画像認識エンジンは、複数のカメラから対応する画像シーケンスを受信し、例えば、背景（すなわち、棚のような在庫陳列構造）内の意味的に重要な差異が、各カメラからの画像において経時的に、在庫商品を置くこと及び取ることに関連するときに、当該差異を認識する。第２の画像プロセッサは、被写体識別サブシステム９０４の出力と、カメラ１１４からの画像フレームとを入力として受け取る。「意味的差分抽出」サブシステムの詳細は、２０１８年４月４日出願の米国特許第１０，１２７，４３８号、「意味的差分抽出を使用した在庫イベントの予測」、及び、２０１８年４月４日出願の米国特許出願第１５／９４５，４７３号、「前景／背景処理を使用した在庫イベントの予測」に示されており、これらの両方は本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。第２の画像プロセッサは、識別された背景変化を処理して、識別された被写体による在庫商品を取ることの検出、及び、識別された被写体による在庫陳列構造上の在庫商品を置くことの第２の検出セットを作成する。第２の検出セットは、在庫商品を置くこと及び取ることの背景検出とも呼ばれる。ショッピングストアの例では、第２の検出が、在庫位置から取られた在庫商品、または、顧客または店舗従業員によって在庫位置上に置かれた在庫商品を識別する。意味的差分抽出サブシステムは、識別された背景変化を識別された被写体に関連付けるロジックを含む。
【０１０２】
図９Ａに記載されるシステムは、第１及び第２の検出セットを処理して、識別された被写体についての在庫商品のリストを含むログ・データ構造を生成するための選択ロジックを含む。実空間内の置くこと及び取ることのために、選択ロジックは、意味的差分抽出サブシステムまたは領域提案サブシステム９０８の何れかからの出力を選択する。一実施形態では、選択ロジックが、第１の検出セットについて意味的差分抽出サブシステムによって生成された信頼度スコアと、第２の検出セットについて領域提案サブシステムによって生成された信頼度スコアとを使用して、選択を行う。特定の検出に対するより高い信頼度スコアを有するサブシステムの出力が選択され、識別された被写体に関連付けられた在庫商品及びその数量のリストを含むログ・データ構造７００（ショッピングカート・データ構造とも呼ばれる）を生成するために使用される。棚及び店舗在庫データ構造は、上述したように被写体のログ・データ構造を用いて更新される。
【０１０３】
被写体出口検出エンジン９１０は、顧客が出口ドアに向かって移動しているかどうかを判定し、信号を店舗在庫エンジン１９０に送信する。店舗在庫エンジンは、顧客のログ・データ構造７００内の１以上の商品が第２または第３のイメージ・プロセッサによって判定された低識別信頼度スコアを有するかどうかを判定する。もし有する場合、在庫統合エンジンは、顧客によって購入された商品を確認するために、出口近くに位置する店舗従業員に通知を送る。被写体、在庫位置、及びショッピングストアの在庫データ構造は、在庫データベース１６０に記憶される。
【０１０４】
図９Ｂは、顧客在庫、在庫位置（例えば棚）在庫、及び、店舗在庫（例えば店舗全体）データ構造が、ショッピングストア内の顧客による商品を置くこと及び取ることを使用して更新される、システムの別のアーキテクチャを示す。図９Ａは、アーキテクチャ図であるため、説明の明確性を向上させるために、特定の詳細は省略されている。上述したように、システムは、複数の同期されたカメラ１１４から画像フレームを受信する。ＷｈａｔＣＮＮ ９１４は、画像認識エンジンを使用して、実空間（ショッピングストア等）のエリア内の顧客の手の中にある商品を判定する。一実施形態では、カメラ１１４毎に１つのＷｈａｔＣＮＮがあり、それぞれのカメラによって生成された画像フレームのシーケンスの画像処理を実行する。ＷｈｅｎＣＮＮ９１２は、ＷｈａｔＣＮＮの出力の時系列分析を実行して、置くまたは取るイベントを識別する。商品及び手の情報と共に在庫イベントがデータベース９１８に記憶される。次いで、この情報は、個人・商品属性コンポーネント９２０によって、顧客追跡エンジン１１０（上記では被写体追跡エンジン１１０とも呼ばれる）によって生成された顧客情報と組み合わされる。ショッピングストア内の顧客のログ・データ構造７００は、データベース９１８に記憶された顧客情報をリンクすることによって生成される。
【０１０５】
開示される技術は、複数のカメラによって生成される画像のシーケンスを使用して、実空間のエリアからの顧客の離脱を検出する。顧客の離脱の検出に応答して、開示された技術は、顧客に起因する在庫イベントに関連する商品について、メモリ内の店舗在庫を更新する。出口検出エンジン９１０が、ショッピングストアからの顧客「Ｃ」の離脱を検出すると、ログ・データ構造９２２に示されるように顧客「Ｃ」によって購入された商品は店舗の在庫データ構造９２４と統合されて、更新された店舗在庫データ構造９２６を生成する。例えば、図９Ｂに示されるように、顧客は２個の商品１と４個の商品３と１個の商品４を購入した。顧客のログ・データ構造９２２に示されるように顧客「Ｃ」によって購入されたそれぞれの商品の数量は店舗在庫９２４から差し引かれて、商品１の数量が４８から４６に減少し、同様に、商品３及び４の数量が顧客「Ｃ」によって購入された商品３及び商品４のそれぞれの数量のだけ減少したことを示す更新された店舗在庫データ構造９２６を生成する。顧客「Ｃ」は商品２を購入しなかったため、更新された店舗在庫データ構造９２６において、商品２の数量は、現在の店舗在庫データ構造９２４の以前のものと同じままである。
【０１０６】
一実施形態では、顧客の離脱検出は、また、顧客が商品を取り出した（ショッピングストアの棚等の）在庫位置の在庫データ構造の更新を始動させる。斯かる実施形態では、在庫位置の在庫データ構造は、上述したように、取るまたは置く在庫イベントの直後には更新されない。この実施形態では、システムが顧客の離脱を検出すると、顧客に関連付けられた在庫イベントがトラバースされ、在庫イベントをショッピングストア内のそれぞれの在庫位置にリンクする。この処理によって決定された在庫位置の在庫データ構造が更新される。例えば、顧客が在庫位置２７から２個の商品１を取った場合、在庫位置２７の在庫データ構造は、商品１の数量を２つ減らすことによって更新される。在庫商品は、ショッピングストア内の複数の在庫位置にストックされ得ることに留意されたい。システムは在庫イベントに対応する在庫位置を識別し、従って、商品が取り出される在庫位置が更新される。
［店舗リアログラム］
【０１０７】
ショッピングストアの在庫位置を含む、店舗内の実空間全体にわたる在庫商品の位置は、顧客が在庫位置から商品を取り出し、購入したくない商品を、商品が取り出された同じ棚上の同じ位置に戻すか、商品が取り出された同じ棚上の異なる場所に戻すか、または異なる棚上に置くときに、ある期間にわたって変化する。開示された技術は、複数のカメラ内の少なくとも２つのカメラによって生成された画像シーケンスを使用して、在庫イベントを識別し、在庫イベントに応答して、実空間のエリア内の在庫商品の位置を追跡する。幾つかの実施形態では、ショッピングストア内の商品は、特定の商品が配置されることが計画されている（棚等の）在庫位置を識別するプラノグラムに従って配置される。例えば、図１０の例示９１０に示すように、棚３及び棚４の左半分は、商品（缶の形状でストックされている）に指定されている。一日の始めまたは他の在庫追跡間隔（時間ｔ＝０によって識別される）で、プラノグラムに従って在庫位置がストックされると考える。
【０１０８】
開示される技術は、実空間のエリア内の在庫商品の位置のリアルタイム・マップである任意の時間「ｔ」におけるショッピングストアの「リアログラム」を計算することができ、これは、幾つかの実施形態では更に、店舗内の在庫位置と相関させることができる。リアログラムは、在庫商品及び店舗内の位置を識別し、それらを在庫位置にマッピングすることによって、プラノグラムを作成するために使用することができる。一実施形態では、システムまたは方法が実空間のエリア内に座標を有する複数のセルを規定するデータセットを作成することができる。システムまたは方法は、実空間の座標に沿ったセルの長さを入力パラメータとして使用して、実空間を複数のセルを規定するデータセットに分割することができる。一実施形態では、セルは、実空間のエリア内に座標を有する２次元グリッドとして表される。例えば、セルは、図１０の例示９６０に示されるように、棚ユニット（在庫陳列構造とも呼ばれる）における在庫位置の前面図の２Ｄグリッド（例えば、１フィート間隔で）と相関することができる。各グリッドは、図１０に示すように、ｘ座標やｚ座標のような２次元平面の座標上で、その開始位置と終了位置によって規定される。この情報は、マップ・データベース１４０に記憶される。
【０１０９】
別の実施形態では、セルが実空間のエリア内に座標を有する３次元（３Ｄ）グリッドとして表される。一例では、セルは、図１１Ａに示すように、ショッピングストア内の棚ユニットの在庫位置（または在庫位置の一部）上の容積と相関することができる。この実施形態では、実空間のマップが、実空間のエリア内の在庫陳列構造上の在庫位置の部分と相関することができる容量の単位の構成を識別する。この情報は、マップ・データベース１４０に記憶される。店舗リアログラム・エンジン１９０は、在庫イベント・データベース１５０を使用して、時間「ｔ」におけるショッピングストアのリアログラムを計算し、それをリアログラム・データベース１７０に格納する。ショッピングストアのリアログラムは、在庫イベント・データベース１５０に記憶された在庫イベントのタイムスタンプを使用することによって、任意の時間ｔにおいて、それらの位置によってセルにマッチングされた在庫イベントに関連付けられた在庫商品を示す。在庫イベントは、商品識別子、置くまたは取るインジケータ、実空間のエリアの３つの軸に沿った位置によって表される在庫イベントの位置、及び、タイムスタンプを含む。
【０１１０】
図１１Ａ中の例示は、ｔ＝０における１日目の始めに、第１の棚ユニット（列方向配列を形成する）における在庫位置の左側部分が「ケチャップ」ボトルを収納することを示す。セル（またはグリッド）の列は、図式的な視覚化において黒色で示され、セルは暗緑色等の他の色でレンダリングすることができる。他の全てのセルは空白のままであり、これらが商品を収納していないことを示す色で塗りつぶされていない。一実施形態では、リアログラム内のセル内の商品の視覚化は、店舗内の（セル内の）その位置を示す一度に１つの商品について生成される。別の実施形態では、リアログラムは、区別するために異なる色を使用して、在庫位置上の商品のセットの位置を表示する。斯かる実施形態では、セルがそのセルにマッチングする在庫イベントに関連付けられた幾つかの商品に対応する複数の色を有することができる。別の実施形態では、他の図式的な視覚化またはテキストベースの視覚化を使用して、セル内のＳＫＵまたは名前を列挙すること等によって、セル内の在庫商品を示す。
【０１１１】
システムは、在庫イベントのそれぞれのカウントを使用して、特定のセルにマッチングする位置を有する在庫商品について、スコアリング時にＳＫＵスコア（スコアとも呼ばれる）を計算する。セルに対するスコアの計算は、取ること及び置くことのタイムスタンプとスコアリング時との間の分離によって重み付けされた在庫商品を取ること及び置くことの合計を使用する。一実施形態では、スコアはＳＫＵ当たりの在庫イベントの加重平均である。他の実施形態では、ＳＫＵ当たりの在庫イベントのカウント等、様々なスコアリング計算を使用することができる。一実施形態では、システムは、リアログラムを、複数のセル内のセル、及び、該セルのスコアを表す画像として表示する。例えば、図１１Ａ内の例示として、スコアリング時ｔ＝１（例えば、１日後）を考える。時間ｔ＝１のリアログラムは、「ケチャップ」商品のスコアを黒色の異なる濃淡で表している。時間ｔ＝１の店舗リアログラムは、１番目の棚ユニットと２番目の棚ユニット（１番目の棚ユニットの後ろ）の４列全てが「ケチャップ」商品を収納している。「ケチャップ」ボトルのＳＫＵスコアが高いセルは、「ケチャップ」ボトルのスコアが低いセルに比べて、濃い灰色でレンダリングされている。ケチャップのスコア値がゼロのセルは、空白のままではなく、色で塗りつぶされていない。従って、リアログラムは、時間ｔ＝１の後（例えば、１日後）に、ショッピングストア内の在庫位置上のケチャップボトルの位置に関するリアルタイム情報を提示する。リアログラムの生成頻度は、ショッピングストアの管理によって、その要求に応じて設定することができる。また、リアログラムは、店舗管理によってオンデマンドで生成することもできる。一実施形態では、リアログラムによって生成された商品位置情報が、誤配置された商品を識別するために、店舗プラノグラムと比較される。通知は、誤配置された在庫商品を、店舗のプラノグラムに示されるように、指定された在庫位置に戻すことができる店舗従業員に送信することができる。
【０１１２】
一実施形態では、システムが、複数のセル内のセル及び該セルのスコアを表す表示画像をレンダリングする。図１１Ｂは、ユーザ・インタフェース・ディスプレイ１１０２上に図１１Ａのリアログラムがレンダリングされたコンピューティング・デバイスを示す。リアログラムは、タブレット、モバイル・コンピューティング・デバイス等の他のタイプのコンピューティング・デバイス上に表示することができる。システムは、セルを表す表示画像内において色の変化を使用して、セルのスコアを示すことができる。例えば、図１１Ａでは、ｔ＝０で「ケチャップ」を収納するセルの列をその列の暗緑色のセルによって表すことができる。ｔ＝１では、「ケチャップ」ボトルがセルの１番目の列を越えて複数のセルに分散されている。システムは、セルのスコアを示すために、緑色の異なる濃淡を使用することによって、これらのセルを表すことができる。緑色の濃い色調はより高いスコアを示し、明るい緑色のセルはより低いスコアを示す。ユーザ・インタフェースには、生成されたその他の情報が表示され、機能を呼び出したり表示したりするためのツールが用意されている。
［店舗リアログラムの計算］
【０１１３】
図１２は、他のタイプの在庫陳列構造に適合させ得る、時間ｔにおける実空間のエリア内における棚のリアログラムを計算するための処理ステップを提示するフローチャートである。処理はステップ１２０２で開始する。ステップ１２０４では、システムは、実空間のエリア内の在庫イベントを在庫イベント・データベース１５０から検索する。在庫イベント・レコードは、商品識別子、置くまたは取るインジケータ、実空間のエリアの３次元（ｘ、ｙ、及びｚ等）内の位置によって表される在庫イベントの位置、及びタイムスタンプを含む。置くまたは取るインジケータは、顧客（被写体とも呼ばれる） が商品を棚に置いたか、棚から商品を取り出したかを識別する。置くイベントはプラス在庫イベントとも呼ばれ、取るイベントはマイナス在庫イベントとも呼ばれる。ステップ１２０６において、在庫イベントは、被写体追跡エンジン１１０からの出力と組み合わされて、この在庫イベントに関連する被写体の手を識別する。
【０１１４】
このシステムは、在庫イベントに関連する被写体の手の位置（ステップ１２０６）を使用して、位置を決定する。幾つかの実施形態では、在庫イベントが、ステップ１２０８において、棚ユニットまたは在庫陳列構造において、最も近い棚、またはその他の可能性のある在庫位置とマッチングさせることができる。図８のフローチャートにおける処理ステップ８０８は、手の位置に最も近い棚上の位置を決定するために使用され得る手法の詳細を示す。ステップ８０８中の手法で説明されているように、実空間内の点Ｅから平面上の任意の点Ｐ（ｘｚ平面上の棚の前面領域を表す）までの最短距離Ｄは、ベクトルＰＥを該平面に対する法線ベクトルｎ上に射影することによって決定され得る。平面に対するベクトルＰＥの交点は、手に対して棚上の最も近い点を与える。この点の位置は「ポイントクラウド」データ構造（ステップ１２１０）に、実空間のエリア内の点の３Ｄ位置、商品のＳＫＵ、及びタイムスタンプを含むタプルとして格納され、後の２つは、在庫イベント・レコードから取得される。在庫イベント・データベース１５０に在庫イベント・レコード（ステップ１２１１）が更に存在する場合、処理ステップ１２０４〜１２１０が繰り返される。更に存在しない場合は、処理はステップ１２１４に進む。
【０１１５】
開示された技術は、実空間のエリア内に座標を有する複数のセルを規定するメモリに記憶されたデータセットを含む。セルは、座標軸に沿った開始位置及び終了位置によって境界付けられた実空間のエリアを規定する。実空間のエリアは、複数の在庫位置を含み、複数のセル内のセルの座標は、複数の在庫位置内の在庫位置と相関させることができる。開示された技術は、在庫イベントに関連する在庫商品の位置をセルの座標とマッチングさせ、複数のセル内のセルとマッチングされた在庫商品を表すデータを維持する。一実施形態では、システムは、在庫イベントの位置からデータセット内のセルまでの距離を計算し、計算された距離に基づいて在庫イベントをセルとマッチングさせるための手順（図８のフローチャートのステップ８０８に記載されているように）を実行することによって、在庫イベントの位置に基づいてデータセット内の最も近いセルを決定する。イベント位置と最も近いセルとのこのマッチングは、ポイントクラウド・データが存在するセルを識別するポイントクラウド・データの位置を与える（ステップ１２１２）。一実施形態では、セルが、在庫陳列構造内の在庫位置（棚等）の部分にマッピングすることができる。従って、このマッピングを使用することによって、棚の部分も識別される。上述のように、セルは、実空間のエリアの２Ｄグリッドまたは３Ｄグリッドとして表すことができる。システムは、特定のセルにマッチングする位置を有する在庫商品についてスコアリング時にスコアを計算するロジックを含む。一実施形態では、スコアは在庫イベントのカウントに基づいている。この実施形態では、セルのスコアは、取ること及び置くことのタイムスタンプとスコアリング時との間の分離によって重み付けされた在庫商品を取ること及び置くことの合計を使用する。例えば、スコアは、ＳＫＵ（ＳＫＵスコアとも呼ばれる）毎の加重移動平均とすることができ、セルにマッピングされた「ポイントクラウド」のデータ・ポイントを使用してセル毎に計算される：
2021533449.tif 000004
【０１１６】
式（１）によって計算されるＳＫＵスコアは、セル内のＳＫＵの全てのポイントクラウドのデータ・ポイントのスコアの合計であり、各データ・ポイントは、置く及び取るイベントのタイムスタンプからの日数での時間のポイント＿ｔによって重み付けされる。グリッド内の「ケチャップ」 商品に２つのポイントクラウドのデータ・ポイントがあるとする。第１のデータ・ポイントにはリアログラムが計算される時間「ｔ」 の２日前にこの在庫イベントが発生したことを示すタイムスタンプがある。従って、ポイント＿ｔ の値は「２」 になる。第２のデータ・ポイントは時間「ｔ」 の１日前に発生した在庫イベントに対応するため、ポイント＿ｔ は「１」 になる。（棚ＩＤによって識別される棚にマッピングするセルＩＤによって識別される）セルのケチャップのスコアは、以下のように計算される：
2021533449.tif 000005
【０１１７】
在庫イベントに対応するポイントクラウドのデータ・ポイントが古くなる（すなわち、イベントからより多くの日が経過する）につれて、ＳＫＵスコアに対するそれらの寄与は減少する。ステップ１２１６では、上位「Ｎ」個のＳＫＵが、ＳＫＵスコアの最も高いセルに対して選択される。一実施形態では、システムは、スコアに基づいてセル毎の在庫商品のセットを選択するロジックを含んでいる。例えば、「Ｎ」の値は、ＳＫＵスコアに基づいてセル毎の上位１０商品を選択するために１０として選択することができる。本実施形態では、リアログラムがセル当たり上位１０商品を記憶する。時間ｔにおける更新されたリアログラムが、ステップ１２１８において、時間ｔにおける棚内のセル当たりの上位「Ｎ」個のＳＫＵを示すリアログラム・データベース１７０に記憶される。処理はステップ１２２０で終了する。
【０１１８】
別の実施形態では、開示された技術は、在庫イベントに対応する棚の部分におけるポイントクラウド・データを計算するために、マップ・データベース１４０に格納された棚の部分の２Ｄまたは３Ｄマップを使用しない。この実施形態では、ショッピングストアを表す３Ｄ実空間が３Ｄ立方体（例えば、１フィート立方体）として表されるセルに区分される。３Ｄの手の位置は、（３つの軸に沿ったそれぞれの位置を使用して）セルにマッピングされる。全ての商品に対するＳＫＵスコアは、上述の式（１）を用いてセル毎に計算される。結果として得られるリアログラムは、店舗内の棚の位置を必要とせずに、店舗を表す実空間内のセル内の商品を示す。この実施形態では、ポイントクラウドのデータ・ポイントが、実空間内の座標上で在庫イベントに対応する手の位置と同じ位置にあってもよいし、或いは、手の位置に近いか、または手の位置を包含するエリア内のセルの位置にあってもよい。これは、棚のマップがない可能性があり、従って、手の位置が最も近い棚にマッピングされないためである。このため、この実施形態におけるポイントクラウドのデータ・ポイントは、必ずしも同一平面上にある必要はない。実空間における容積の単位（例えば、１立方フィート）内の全てのポイントクラウドのデータ・ポイントは、ＳＫＵスコアの計算に含まれる。
【０１１９】
幾つかの実施形態では、リアログラムが反復的に計算され、店舗内の活動の時刻分析のために使用されるか、または、店舗内の在庫商品の移動を経時的に表示するためのアニメーション（ストップモーション・アニメーションのような）を生成するために使用され得る。
［店舗リアログラムの応用例］
【０１２０】
店舗リアログラムは、ショッピングストアの多くの業務で使用することができる。リアログラムの幾つかの応用例を以下のパラグラフに示す。
［在庫商品の再ストック］
【０１２１】
図１３Ａは、在庫商品が在庫位置（棚等）に再ストックされる必要があるかどうかを決定するための店舗リアログラムの１つのそのような応用例を提示する。処理は、ステップ１３０２で開始する。ステップ１３０４で、システムは、リアログラム・データベース１７０からスコアリング時「ｔ」でリアログラムを検索する。一例では、これは、つい最近に生成されたリアログラムである。リアログラム内の全てのセルのＳＫＵスコアが、ステップ１３０６で閾値スコアと比較される。ＳＫＵスコアが閾値より上の場合（ステップ１３０８）、処理は、次の在庫商品「ｉ」に対してステップ１３０４及び１３０６を繰り返す。プラノグラムを含む実施形態、または、プラノグラムが利用可能な場合では、商品「ｉ」のＳＫＵスコアが、プラノグラム内の在庫商品「ｉ」の配置にマッチングするセルに対する閾値と比較される。別の実施形態では、在庫商品のＳＫＵスコアが、「置く」在庫イベントをフィルタリングすることによって計算される。この実施形態では、ＳＫＵスコアは、閾値と比較し得るリアログラム内のセル当たりの在庫商品「ｉ」の「取る」イベントを反映する。別の実施形態では、セル当たりの「取る」在庫イベントのカウントは、在庫商品「ｉ」の再ストックを決定するための閾値と比較するためのスコアとして、使用することができる。この実施形態では、閾値は、在庫位置にストックされる必要がある在庫商品の最小カウントである。
【０１２２】
在庫商品「ｉ」のＳＫＵスコアが閾値未満である場合、在庫商品「ｉ」を再ストックする必要があることを示す警告通知が、店長または他の指定された従業員に送信される（ステップ１３１０）。システムは、また、ＳＫＵスコアが閾値未満のセルを在庫位置とマッチングさせることによって、在庫商品を再ストックする必要のある在庫位置を識別することができる。他の実施形態では、システムは、ショッピングストアのストック・ルーム内の在庫商品「ｉ」の在庫レベルをチェックして、在庫商品「ｉ」を卸業者から注文する必要があるかどうかを判定することができる。処理は、ステップ１３１２で終了する。図１３Ｂは、在庫商品についての再ストック警告通知を表示する、例示的なユーザ・インタフェースを提示する。警告通知は、タブレット及びモバイル・コンピューティング・デバイス等の他のタイプのデバイスのユーザ・インタフェース上に表示することができる。警告は、電子メール、携帯電話上のＳＭＳ（ショート・メッセージ・サービス）、または、モバイル・コンピューティング・デバイスにインストールされたアプリケーションを保存するための通知を介して、指定された受信者に送信することもできる。
［誤配置された在庫商品］
【０１２３】
プラノグラムを含む実施形態では、または、店舗のプラノグラムが他の方法で利用可能である場合、プラノグラムのコンプライアンスのために、リアログラムが、誤配置された商品を識別することによって、プラノグラムと比較される。斯かる実施形態では、システムが、実空間のエリア内の在庫位置における在庫商品の配置を指定するプラノグラムを含む。システムは、複数のセル内のセルとマッチングする在庫商品を表すデータを維持するロジックを含む。システムは、セルとマッチングした在庫を表すデータを、プラノグラムで指定された在庫位置における在庫商品の配置と比較することによって、誤配置された商品を決定する。図１４は、リアログラムを使用してプラノグラムのコンプライアンスを判定するためのフローチャートを示す。処理はステップ１４０２で開始する。ステップ１４０４で、システムは、スコアリング時「ｔ」で在庫商品「ｉ」についてのリアログラムを検索する。リアログラム内の全てのセル内の在庫商品「ｉ」のスコアが、プラノグラム内の在庫商品「ｉ」の配置と比較される（ステップ１４０６）。リアログラムが、プラノグラム内の在庫商品「ｉ」の配置とマッチングしないセルにおける閾値を超える在庫商品「ｉ」に対するＳＫＵスコアを示す場合（ステップ１４０８）、システムは、これらの商品を誤配置として識別する。プラノグラム内の在庫商品の配置とマッチングしない商品についての警告または通知が、誤配置された商品を現在の位置から取って、指定された在庫位置に置き戻すことができる店舗従業員に送信される（ステップ１４１０）。ステップ１４０８で、誤配置された商品が識別されない場合、処理ステップ１４０４及び１４０６が、次の在庫商品「ｉ」について繰り返される。
【０１２４】
一実施形態では、店舗アプリが店舗マップ上に商品の位置を表示し、店舗従業員を誤配置された商品に導く。これに続いて、店舗アプリは店舗マップ上の商品の正しい位置を表示し、従業員を正しい棚の部分に導いて、商品を指定された位置に置くことができる。別の実施形態では、店舗アプリが、店舗アプリに入力されたショッピング・リストに基づいて、顧客を在庫商品に案内することもできる。店舗アプリは、リアログラムを使用して在庫商品のリアルタイム位置を使用し、顧客をマップ上の在庫商品に最も近い在庫位置に案内することができる。この例では、在庫商品の最も近い位置が、店舗のプラノグラムに従って在庫位置に配置されていない誤配置された商品の位置であり得る。図１４Ｂは、誤配置された在庫商品「ｉ」の警告通知をユーザ・インタフェース・ディスプレイ１１０２上に表示する例示的なユーザ・インタフェースを示す。図１３Ｂで上述したように、この情報を店舗従業員に送信するために、様々なタイプのコンピューティング・デバイス及び警告通知メカニズムが使用できる。
［在庫商品予測精度の向上］
【０１２５】
リアログラムの別の応用例は、画像認識エンジンによる在庫商品の予測を改善することである。図１５のフローチャートは、リアログラムを使用して在庫商品予想を調整するための例示的な処理ステップを示す。処理は、ステップ１５０２で開始する。ステップ１５０４で、システムは、画像認識エンジンから商品「ｉ」の予測信頼度スコア確率を受け取る。上述のように、ＷｈａｔＣＮＮは、被写体（または顧客）の手にある在庫商品を識別する例示的な画像認識エンジンである。ＷｈａｔＣＮＮが予測された在庫商品の信頼度スコア（または信頼値）確率を出力する。ステップ１５０６で、信頼度スコア確率が閾値と比較される。確率値が閾値を超え、予測のより高い信頼度を示す場合（ステップ１５０８）、処理は次の在庫商品「ｉ」について繰り返される。そうでなく、信頼度スコア確率が閾値未満である場合は、処理はステップ１５１０に続く。
【０１２６】
スコアリング時「ｔ」での在庫商品「ｉ」のリアログラムは、ステップ１５１０において検索される。一例において、これは最新のリアログラムであってもよく、別の例においては、在庫イベント時と時間的にマッチングまたはより近いスコアリング時「ｔ」におけるリアログラムが、リアログラム・データベース１７０から検索され得る。ステップ１５１２で、在庫イベントの位置における在庫商品「ｉ」のＳＫＵスコアが閾値と比較される。ＳＫＵスコアが閾値を上回る場合（ステップ１５１４）、画像認識による在庫商品「ｉ」の予測を受け付ける（ステップ１５１６）。在庫イベントに関連付けられた顧客のログ・データ構造をそれに応じて更新する。在庫イベントが「取る」イベントである場合、在庫商品「ｉ」を顧客のログ・データ構造に追加する。在庫イベントが「置く」イベントである場合、在庫商品「ｉ」を顧客のログ・データ構造から除去する。ＳＫＵスコアが閾値を下回る場合（ステップ１５１４）、画像認識エンジンの予測は拒絶される（ステップ１５１８）。在庫イベントが「取る」イベントである場合、結果として、在庫商品「ｉ」は顧客のログ・データ構造に追加されない。同様に、在庫イベントが「置く」である場合、結果として、 在庫商品「ｉ」は顧客のログ・データ構造から除去されない。処理は、ステップ１５２０で終了する。別の実施形態では、在庫商品「ｉ」のＳＫＵスコアを使用して、商品予測信頼度スコアを決定するための画像認識エンジンに対する入力パラメータを調整することができる。畳み込みニューラル・ネットワーク（ＣＮＮ）であるＷｈａｔＣＮＮは、在庫商品を予測する画像認識エンジンの一例である。
［ネットワーク構成］
【０１２７】
図１６は、ネットワーク・ノード１０６上でホストされる店舗リアログラム・エンジン１９０をホストするネットワークのアーキテクチャを示す。システムは、図示された実施形態では複数のネットワーク・ノード１０１ａ、１０１ｂ、１０１ｎ、及び１０２を含む。斯かる実施形態では、ネットワーク・ノードは処理プラットフォームとも呼ばれる。処理プラットフォーム（ネットワーク・ノード）１０３，１０１ａ〜１０１ｎ，及び１０２、並びに、カメラ１６１２，１６１４，１６１６，・・・１６１８は、ネットワーク１６８１に接続される。同様のネットワークは、ネットワーク・ノード１０４上でホストされる店舗在庫エンジン１８０をホストする。
【０１２８】
図１３は、ネットワークに接続された複数のカメラ１６１２，１６１４，１６１６，・・・１６１８を示す。多数のカメラを特定のシステムに配備することができる。一実施形態では、カメラ１６１２〜１６１８が、イーサネット（登録商標）ベースのコネクタ１６２２，１６２４，１６２６，及び１６２８をそれぞれ使用して、ネットワーク１６８１に接続される。斯かる実施形態では、イーサネット・ベースのコネクタがギガビット・イーサネットとも呼ばれる１ギガビット／秒のデータ転送速度を有する。他の実施形態では、カメラ１１４がギガビット・イーサネット（登録商標）よりも高速または低速のデータ転送速度を有することができる他のタイプのネットワーク接続を使用してネットワークに接続されることを理解されたい。また、代替の実施形態では、１組のカメラを各処理プラットフォームに直接接続することができ、処理プラットフォームをネットワークに結合することができる。
【０１２９】
記憶サブシステム１６３０は、本発明の特定の実施形態の機能を提供する基本的なプログラミング及びデータ構成を記憶する。例えば、店舗リアログラム・エンジン１９０の機能を実施する様々なモジュールを、記憶サブシステム１６３０に格納することができる。記憶サブシステム１６３０は、非一時的データ記憶媒体を備えるコンピュータ可読メモリの一例であり、本明細書で説明される処理によって実空間のエリアのリアログラムを計算するロジックを含む、本明細書で説明されるデータ処理機能及び画像処理機能の全てまたは任意の組み合わせを実行するための、コンピュータによって実行可能なメモリに記憶されるコンピュータ命令を備える。他の例では、コンピュータ命令は、コンピュータ可読の非一時的データ記憶媒体または媒体を含む、携帯用メモリを含む他のタイプのメモリに記憶することができる。
【０１３０】
これらのソフトウェア・モジュールは一般に、プロセッサ・サブシステム１６５０によって実行される。ホスト・メモリ・サブシステム１６３２は、通常、プログラム実行中の命令及びデータの記憶のためのメイン・ランダム・アクセス・メモリ（ＲＡＭ）１６３４と、固定命令が記憶される読み出し専用メモリ（ＲＯＭ）１６３６とを含む幾つかのメモリを含む。一実施形態では、ＲＡＭ １６３４が店舗リアログラム・エンジン１９０によって生成されたポイントクラウド・データ構造タプルを格納するためのバッファとして使用される。
【０１３１】
ファイル記憶サブシステム１６４０は、プログラム及びデータ・ファイルのための永続的記憶を提供する。例示的な一実施形態では、記憶サブシステム１６４０が、番号１６４２によって識別されるＲＡＩＤ０（独立ディスクの冗長配列）構成内に４つの１２０ギガバイト（ＧＢ）ソリッド・ステート・ディスク（ＳＳＤ）を含む。該例示的な実施形態では、マップ・データベース１４０内のデータ、在庫イベント・データベース１５０内の在庫イベント・データ、在庫データベース１６０内の在庫データ、及びＲＡＭにないリアログラム・データベース１７０内のリアログラム・データが、ＲＡＩＤ０に記憶される。該例示的な実施形態では、ハードディスク・ドライブ１６４６はＲＡＩＤ０ １６４２ストレージよりもアクセス速度が遅い。ソリッド・ステート・ディスク（ＳＳＤ）１６４４は、店舗リアログラム・エンジン１９０のためのオペレーティング・システム及び関連ファイルを含む。
【０１３２】
例示的な構成では、４つのカメラ１６１２，１６１４，１６１６，１６１８が、処理プラットフォーム（ネットワーク・ノード）１０３に接続される。各カメラは、カメラによって送られた画像を処理するために、専用グラフィックス処理ユニットＧＰＵ１ １６６２，ＧＰＵ２ １６６４，ＧＰＵ３ １６６６，及びＧＰＵ４ １６６８を有する。１つの処理プラットフォームにつき、３つより少ないまたは多いカメラを接続することができると理解される。従って、各カメラが、カメラから受信した画像フレームを処理するための専用ＧＰＵを有するように、より少ないまたはより多いＧＰＵがネットワーク・ノード内に構成される。プロセッサ・サブシステム１６５０、記憶サブシステム１６３０、及びＧＰＵ１６６２，１６６４、及び１６６６は、バス・サブシステム１６５４を使用して通信する。
【０１３３】
ネットワーク・インタフェース・サブシステム１６７０は、処理プラットフォーム（ネットワーク・ノード）１０４の一部を形成するバス・サブシステム１６５４に接続される。ネットワーク・インタフェース・サブシステム１６７０は、他のコンピュータ・システムにおける対応するインタフェース・デバイスへのインタフェースを含む、外部ネットワークへのインタフェースを提供する。ネットワーク・インタフェース・サブシステム１６７０は、ケーブル（または配線）を使用して、またはワイヤレスで、処理プラットフォームがネットワークを介して通信することを可能にする。ユーザ・インタフェース出力デバイス及びユーザ・インタフェース入力デバイスのような幾つかの周辺デバイスも、処理プラットフォーム１０４の一部を形成するバス・サブシステム１６５４に接続されている。これらのサブシステム及びデバイスは、説明の明確性を改善するために、図１３には意図的に示されていない。バス・サブシステム１６５４は、単一のバスとして概略的に示されているが、バス・サブシステムの代わりの実施形態は複数のバスを使用することができる。
【０１３４】
一実施形態では、カメラ１１４が、１２８８×９６４の解像度、３０ＦＰＳのフレームレート、及び１．３メガピクセル／イメージで、３００ｍｍ〜無限大の作動距離を有する可変焦点レンズ、９８．２°〜２３．８°の１／３インチセンサによる視野を有するＣｈａｍｅｌｅｏｎ３ １．３ ＭＰ  Ｃｏｌｏｒ  ＵＳＢ３  Ｖｉｓｉｏｎ（Ｓｏｎｙ  ＩＣＸ４４５）を使用して実装することができる。
【０１３５】
本明細書に記載された技術は、また、在庫陳列構造を含む実空間のエリア内の在庫商品を追跡するためのシステムを含み、対応する方法及びコンピュータ・プログラム製品と共に、在庫陳列構造の上方に配置された複数のカメラまたはその他のセンサと、実空間内の対応する視野内の在庫陳列構造のそれぞれの画像シーケンスを生成する複数のセンサ内のセンサと、但し、各センサの視野は、複数のセンサ内の少なくとも１つの他のセンサの視野と重なり合っており、データセットを記憶するメモリと、但し、該データセットは実空間のエリア内の座標を有する複数のセルを規定し、複数のセンサに結合され処理システムとを備え、該処理システムは、複数のセンサによって生成された画像シーケンスを処理して、実空間のエリア内の３次元における在庫イベントの位置を見つけ、在庫イベントに応答して、在庫イベントの位置に基づいてデータセット内の最も近いセルを決定するロジックを含み、該処理システムは、在庫イベントのそれぞれのカウントを使用して特定のセルにマッチングする位置を有する在庫イベントと関連する在庫商品について、スコアリング時にスコアを計算するロジックを含む。システムは、スコアに基づいてセル毎の在庫商品のセットを選択するロジックを含むことができる。在庫イベントは、商品識別子、置くまたは取るインジケータ、実空間のエリアの３つの軸に沿った位置によって表される位置、及びタイムスタンプを含むことができる。システムは、実空間のエリア内に座標を有する２次元グリッドとして表される複数のセルを規定するデータセットを含むことができ、セルは在庫位置の前面図の部分と相関し、処理システムは、在庫イベントの位置に基づいて最も近いセルを決定するロジックを含む。システムは、実空間のエリア内に座標を有する３次元グリッドとして表される複数のセルを規定するデータセットを含むことができ、セルは在庫位置上の容積の部分と相関し、処理システムは、在庫イベントの位置に基づいて最も近いセルを決定するロジックを含む。置くインジケータは商品が在庫位置に置かれたことを識別することができ、置くインジケータは、商品が在庫位置から取り出されたことを識別する。複数のセンサによって生成された画像シーケンスを処理するロジックは、手に対応する画像内の要素を表すデータセットを生成する画像認識エンジンを備え、少なくとも２つのセンサからの画像シーケンスからのデータセットの分析を実行して、３次元における在庫イベントの位置を判断することができる。画像認識エンジンは、畳み込みニューラル・ネットワークを含むことができる。セルのスコアを計算するロジックは、置くこと及び取ることのタイムスタンプとスコアリング時との間の分離によって重み付けされた在庫商品の置くこと及び取ることの合計を使用し、スコアをメモリに記憶することができる。在庫イベントの位置に基づいてデータセット内の最も近いセルを決定するロジックは、在庫イベントの位置からデータセット内のセルまでの距離を計算することと、計算された距離に基づいて在庫イベントをセルとマッチングさせることとを含む手順を実行することができる
【０１３６】
上述または上記で参照された任意のデータ構造及びコードは、多くの実施態様に従って、コンピュータ・システムによって使用されるコード及び／またはデータを記憶することができる任意のデバイスまたは媒体であり得る、非一時的なコンピュータ可読記憶媒体を含むコンピュータ可読メモリに記憶される。これには、揮発性メモリ、不揮発性メモリ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、ディスク・ドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル・バーサタイル・ディスクまたはデジタル・ビデオ・ディスク）等の磁気及び光記憶デバイス、または、現在知られているまたは今後開発されるコンピュータ可読媒体を記憶することができる他の媒体が含まれるが、これらに限定されない。
【０１３７】
先行する説明は、開示された技術の使用及び実施を可能にするために提示されている。開示された実施態様に対する種々の変形は明らかであり、本明細書で規定された原理は、開示された技術の趣旨及び範囲から逸脱することなく、他の実施態様及び応用例に適用され得る。従って、開示された技術は、示された実施態様に限定されることを意図するものではなく、本明細書で開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。開示される技術の範囲は、添付の特許請求の範囲によって規定される。
【図１】
2021533449.tif 000006
【図２Ａ】
2021533449.tif 000007
【図２Ｂ】
2021533449.tif 000008
【図３】
2021533449.tif 000009
【図４】
2021533449.tif 000010
【図５】
2021533449.tif 000011
【図６】
2021533449.tif 000012
【図７】
2021533449.tif 000013
【図８】
2021533449.tif 000014
【図９Ａ】
2021533449.tif 000015
【図９Ｂ】
2021533449.tif 000016
【図１０】
2021533449.tif 000017
【図１１Ａ】
2021533449.tif 000018
【図１１Ｂ】
2021533449.tif 000019
【図１２】
2021533449.tif 000020
【図１３Ａ】
2021533449.tif 000021
【図１３Ｂ】
2021533449.tif 000022
【図１４Ａ】
2021533449.tif 000023
【図１４Ｂ】
2021533449.tif 000024
【図１５】
2021533449.tif 000025
【図１６】
2021533449.tif 000026
【国際調査報告】
2021533449.tif 000027
2021533449.tif 000028