IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スタンダード コグニション コーポレーションの特許一覧

特開2022-123015ディープ・ラーニング・ベースの被写体連続性のためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022123015
(43)【公開日】2022-08-23
(54)【発明の名称】ディープ・ラーニング・ベースの被写体連続性のためのシステム及び方法
(51)【国際特許分類】
   G06T 7/70 20170101AFI20220816BHJP
   G06V 10/82 20220101ALI20220816BHJP
   G06T 7/00 20170101ALI20220816BHJP
【FI】
G06T7/70 A
G06V10/82
G06T7/00 350C
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022094071
(22)【出願日】2022-06-10
(62)【分割の表示】P 2021561616の分割
【原出願日】2020-04-16
(31)【優先権主張番号】16/388,765
(32)【優先日】2019-04-18
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ZIGBEE
(71)【出願人】
【識別番号】518394684
【氏名又は名称】スタンダード コグニション コーポレーション
(74)【代理人】
【識別番号】100114476
【弁理士】
【氏名又は名称】政木 良文
(72)【発明者】
【氏名】フィッシャー, ジョーダン イー.
(72)【発明者】
【氏名】グリーン, ウォレン
(72)【発明者】
【氏名】フィシェッティ, ダニエル エル.
(57)【要約】      (修正有)
【課題】実空間のエリア内の被写体を追跡するためのシステム及び手法を提供する。
【解決手段】処理システムにおいて、候補位置特定被写体を、欠落追跡被写体にマッチングさせる方法は、実空間内の対応する視野の複数の画像シーケンスを受信することと、画像シーケンスを使用して、識別間隔中に実空間のエリア内の被写体を位置特定することと、現在の識別間隔からの位置特定被写体の現在のセットを、複数の過去の識別間隔からの位置特定被写体の過去のセットと比較して、エリア内の追跡被写体の位置を追跡することと、を含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
実空間のエリア内の被写体をユーザ・アカウントとリンクするためのシステムであって、
前記実空間内の対応する視野の複数の画像シーケンスを受信するように構成された処理システムを備え、
前記ユーザ・アカウントは、モバイル・コンピューティング・デバイスで実行可能なクライアント・アプリケーションとリンクされており、
前記処理システムが、前記画像内に表される識別された被写体の位置を決定するロジックと、前記実空間のエリア内でクライアント・アプリケーションを実行するモバイル・デバイスの位置を識別し、前記モバイル・デバイスの位置を前記被写体の位置とマッチングさせることによって、前記識別された被写体をユーザ・アカウントとマッチングさせるロジックと、現在の識別間隔からの位置特定された被写体の現在のセットを、過去の識別間隔からの位置特定された被写体の過去のセットと比較して、前記エリア内の追跡被写体の位置を追跡するロジックと、を含むシステム。
【請求項2】
前記モバイル・コンピューティング・デバイスが、前記実空間のエリア内の前記モバイル・コンピューティング・デバイスの位置を示すために使用可能な信号を発信し、
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記発信された信号を使用してモバイル・コンピューティング・デバイスの位置を識別する請求項1に記載のシステム。
【請求項3】
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記ユーザ・アカウントに関連する個人を識別するバイオメトリック情報を使用せずに動作する請求項1に記載のシステム。
【請求項4】
前記モバイル・コンピューティング・デバイス上の前記クライアント・アプリケーションが、前記実空間のエリア内の前記モバイル・コンピューティング・デバイス上で、セマフォ画像の表示を発生させ、
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、セマフォ画像を表示する前記モバイル・コンピューティング・デバイスの位置を決定する画像認識エンジンを含み、前記モバイル・コンピューティング・デバイスの位置を識別する請求項1に記載のシステム。
【請求項5】
前記処理システムにアクセス可能なセマフォ画像のセットを含み、
前記処理システムが、前記ユーザ・アカウントを前記実空間のエリア内の識別された被写体にマッチングさせる前に、ユーザ・アカウントを識別するモバイル・コンピューティング・デバイス上のクライアント・アプリケーションからのログイン通信を受け入れるロジックを含み、ログイン通信を受け入れた後、前記セマフォ画像のセットから選択されたセマフォ画像を前記モバイル・デバイス上の前記クライアント・アプリケーションに送信する請求項4に記載のシステム。
【請求項6】
前記モバイル・コンピューティング・デバイス上の前記クライアント・アプリケーションが、位置データを前記処理システムに送信し、
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記モバイル・コンピューティング・デバイスから送信された前記位置データを使用する請求項1に記載のシステム。
【請求項7】
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記実空間のエリア内のある時間間隔にわたる複数の位置からの、前記モバイル・コンピューティング・デバイスから送信された前記位置データを使用するロジックを備え、
当該ロジックが、
マッチングされていないユーザ・アカウントの位置情報を送信する他の全てのモバイル・コンピューティング・デバイスが前記モバイル・コンピューティング・デバイスから所定の距離だけ離れていることを決定すること、
前記モバイル・コンピューティング・デバイスに最も近いマッチングされていない識別された被写体を決定すること、及び、
前記識別された被写体を前記モバイル・コンピューティング・デバイス上で実行する前記クライアント・アプリケーションの前記ユーザ・アカウントとマッチングさせることを、更に含む請求項6に記載のシステム。
【請求項8】
前記モバイル・コンピューティング・デバイス上の前記クライアント・アプリケーションが、加速度計データを前記処理システムに送信し、
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記モバイル・コンピューティング・デバイスから送信された前記加速度計データを使用する請求項1に記載のシステム。
【請求項9】
前記モバイル・コンピューティング・デバイスが、前記実空間のエリア内での前記モバイル・コンピューティング・デバイスの位置を示すのに利用可能な信号を発信し、
前記識別された被写体をユーザ・アカウントとマッチングさせる前記ロジックが、前記モバイル・コンピューティング・デバイスが発信した前記信号に基づいて、前記実空間のエリア内のモバイル・コンピューティング・デバイスの位置を識別するトレーニングされたネットワークを含む請求項1に記載のシステム。
【請求項10】
前記識別された被写体に対する在庫商品のリストを含むログ・データ構造を更に含み、
前記処理システムが、前記マッチングした識別された被写体の前記ログ・データ構造を、前記識別された被写体の前記ユーザ・アカウントに関連付けるロジックを含む請求項1に記載のシステム。
【請求項11】
実空間のエリア内の被写体をユーザ・アカウントとリンクするための方法であって、
前記ユーザ・アカウントは、モバイル・コンピューティング・デバイスで実行可能なクライアント・アプリケーションとリンクされており、
前記実空間内の対応する視野の複数の画像シーケンスを受信すること、
前記画像シーケンス内に表される識別された被写体の位置を決定すること、
前記実空間のエリア内でクライアント・アプリケーションを実行するモバイル・コンピューティング・デバイスの位置を識別し、前記モバイル・コンピューティング・デバイスの位置を前記被写体の位置とマッチングさせることによって、前記識別された被写体をユーザ・アカウントとマッチングさせること、及び、
現在の識別間隔からの位置特定された被写体の現在のセットを、過去の識別間隔からの位置特定された被写体の過去のセットと比較して、前記エリア内の追跡被写体の位置を追跡することを、含む方法。
【請求項12】
前記モバイル・コンピューティング・デバイスが、前記実空間のエリア内の前記モバイル・コンピューティング・デバイスの位置を示すために使用可能な信号を発信し、
前記識別された被写体をユーザ・アカウントとマッチングさせることが、前記発信された信号を使用してモバイル・コンピューティング・デバイスの位置を識別することを、更に含む請求項11に記載の方法。
【請求項13】
前記識別された被写体をユーザ・アカウントとマッチングさせることが、前記ユーザ・アカウントに関連する個人を識別するバイオメトリック情報を使用せずに実行される請求項11に記載の方法。
【請求項14】
前記モバイル・コンピューティング・デバイス上の前記クライアント・アプリケーションが、前記実空間のエリア内の前記モバイル・コンピューティング・デバイス上で、セマフォ画像の表示を発生させ、
前記識別された被写体をユーザ・アカウントとマッチングさせることが、セマフォ画像を表示する前記モバイル・コンピューティング・デバイスの位置を決定する画像認識エンジンを使用し、モバイル・コンピューティング・デバイスの位置を識別することを更に含む請求項11に記載の方法。
【請求項15】
前記ユーザ・アカウントを前記実空間のエリア内の識別された被写体にマッチングさせる前に、ユーザ・アカウントを識別するモバイル・コンピューティング・デバイス上のクライアント・アプリケーションからのログイン通信を受け入れること、及び、ログイン通信を受け入れた後、セマフォ画像のセットから選択されたセマフォ画像を前記モバイル・デバイス上の前記クライアント・アプリケーションに送信することを、更に含む請求項14に記載の方法。
【請求項16】
前記識別された被写体をユーザ・アカウントとマッチングさせることが、前記モバイル・コンピューティング・デバイスから送信された位置データを使用することを、更に含む請求項11に記載の方法。
【請求項17】
前記実空間のエリア内のある時間間隔にわたる複数の位置からの、前記モバイル・コンピューティング・デバイスから送信された前記位置データを使用して、前記識別された被写体をユーザ・アカウントとマッチングさせることを更に含み、
当該マッチングさせることが、
マッチングされていないユーザ・アカウントの位置情報を送信する他の全てのモバイル・コンピューティング・デバイスが前記モバイル・コンピューティング・デバイスから所定の距離だけ離れていることを決定すること、
前記モバイル・コンピューティング・デバイスに最も近いマッチングされていない識別された被写体を決定すること、及び、
前記識別された被写体を前記モバイル・コンピューティング・デバイス上で実行する前記クライアント・アプリケーションの前記ユーザ・アカウントとマッチングさせることを、含む請求項16に記載の方法。
【請求項18】
前記識別された被写体をユーザ・アカウントとマッチングさせることが、前記モバイル・コンピューティング・デバイスから送信された加速度計データを使用することを、更に含む請求項11に記載の方法。
【請求項19】
前記識別された被写体をユーザ・アカウントとマッチングさせることが、前記モバイル・コンピューティング・デバイスが発信した信号に基づいて、前記実空間のエリア内のモバイル・コンピューティング・デバイスの位置を識別するトレーニングされたネットワークを含む請求項11に記載の方法。
【請求項20】
前記マッチングした識別された被写体に対する在庫商品のリストを含むログ・データ構造を、前記識別された被写体の前記ユーザ・アカウントに関連付けることを、更に含む請求項11に記載の方法。
【請求項21】
コンピュータに請求項11~20の何れか1項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【優先出願】
【0001】
本出願は、2019年4月18日出願の米国特許出願第16/388,765号「ディープ・ラーニング・ベースの被写体連続性のためのシステム及び方法」(代理人整理番号STCG 1013-1)の利益を主張し、該出願は参照により本明細書に組み込まれる。
【技術分野】
【0002】
本発明は、実空間のエリア内の被写体を追跡するシステムに関する。
【背景技術】
【0003】
画像処理における困難な問題は、カメラからの被写体の画像がショッピングストアのような実空間のエリア内における被写体を識別し追跡するために使用されるときに生じる。システムは、被写体の存在期間中、実空間のエリア内の被写体を追跡し続ける必要がある。被写体は、システムと通信することなく、実空間のエリアを離れることができる。システムはまた、他の理由により、被写体の追跡を見失うことがある。例えば、被写体が、一時的に不明瞭になったり、被写体を追跡するために使用されるカメラやセンサの視野外の実空間のエリア内の位置に移動したりする場合、または、システムのエラーに起因する場合である。
【0004】
新しい被写体は実空間のエリア内に位置するので、システムは、新しい被写体が一時期不明になった追跡された被写体(「追跡被写体」と略称する。)であるか、または実空間のエリアに入ったばかりの新しい被写体であるかを判定する必要がある。
【0005】
本発明の目的は、実空間のエリア内の被写体をより効果的且つ自動的に追跡することができるシステムを提供することである。
【発明の概要】
【0006】
実空間のエリア内で被写体を追跡するためのシステム及びシステムを動作させるための方法が提供される。システムは、実空間内の対応する視野の複数の画像シーケンスを受信する。システムは、識別間隔中に実空間のエリア内の被写体の位置を特定するために画像シーケンスを使用するロジックを含む処理システムを含む。システムは、現在の識別間隔からの位置特定された被写体(「位置特定被写体」と略称する。)の現在のセットを、複数の過去の識別間隔からの位置特定被写体の過去のセットと比較して、エリア内の追跡被写体の位置を追跡するロジックを含む。
【0007】
一実施形態では、処理システムが(例えば、チェックインされた、またはアカウントにリンクされた)識別された被写体のセットを格納するデータベースにアクセスする。処理システムは、追跡被写体を識別された被写体とリンクするロジックを含む。現在の位置特定被写体が、過去の識別間隔からの追跡被写体とリンクできない場合、チェックイン・ルーチンのような、現在の位置特定被写体をアカウントにリンクする手順を実行しなければならない。本明細書に記載されるような連続性ロジックを利用して、よりロバストな追跡連続性を伴って、位置特定被写体をアカウントにリンクするために繰り返し動作を実行する必要性を低減することができる。
【0008】
一実施形態では現在の識別間隔からの位置特定被写体の現在のセットを、複数の過去の識別間隔からの位置特定被写体の過去のセットと比較するロジックは、現在のセット内の
位置特定被写体の数が複数の過去の間隔内の第1の先行する識別間隔からの位置特定被写体の数とマッチングしない条件を検出するロジックを含む。該条件が検出されると、システムは、現在のセット内の位置特定被写体の少なくとも1つを、第1の先行する識別間隔に先行する、複数の過去の識別間隔内の第2の先行する識別間隔からの位置特定被写体のセットと比較する。
【0009】
一実施形態では、該条件が検出されると、第1の先行する識別間隔からの位置特定被写体のセットがN個のメンバーを含み、第2の先行する識別間隔からの位置特定被写体のセットがN個のメンバーに欠落している追跡被写体(「欠落追跡被写体」と略称する。)を加えたものを含み、現在の位置特定被写体のセットがN個のメンバーに候補位置特定被写体を加えたものを含む場合、次に、システムは、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔から位置特定された欠落追跡被写体とリンクさせる。
【0010】
斯かる実施形態では、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔から位置特定された欠落追跡被写体とリンクさせることは、それぞれの位置タイムスタンプ間の差を計算することを含む。候補位置特定被写体及び欠落追跡被写体は、候補位置特定被写体及び欠落追跡被写体の位置の時間のタイムスタンプの差が第1の閾値未満である場合にリンクされる。
【0011】
別の実施形態では、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔から位置特定された欠落追跡被写体とリンクさせることは、実空間のエリア内のそれぞれの位置間の距離を計算することを含む。候補位置特定被写体と欠落追跡被写体との間の距離が第2の閾値未満である場合、候補位置特定被写体と欠落追跡被写体とがリンクされる。
【0012】
別の実施形態では、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔から位置特定された欠落追跡被写体とリンクさせることは、これらの被写体のシンク(sink)(または出口または入口領域の境界)とも呼ばれる実空間のエリア内の位置までのそれぞれの距離を計算することを含む。これらの被写体のそれぞれの位置と実空間のエリアの該位置との間の距離が第3の閾値未満である場合、候補位置特定被写体と欠落追跡被写体とがリンクされる。
【0013】
一実施形態では、システムが現在の識別間隔(第3の識別間隔とも呼ばれる)内に2以上の候補位置特定被写体を位置特定する。斯かる実施形態では、システムは、現在の識別間隔内の位置特定被写体を、先行する識別間隔内の追跡被写体とマッチングさせ、追跡被写体を更新するための以下のロジックを含む。第1の先行する識別間隔からの位置特定被写体のセットが追跡されるN個のメンバーを含む場合、現在の識別間隔からの位置特定被写体のセットは、N個のメンバーに加えて1以上の候補位置特定被写体を含む。次いで、システムは、現在の識別間隔からの位置特定被写体のセットのN個のメンバーを、第1の先行する識別間隔からの追跡被写体のセットのN個のメンバーにリンクすることを単純化するためのロジックを含む。システムは、現在の識別間隔からの位置特定被写体のセットのメンバーに優先順位を付けて、第1の先行する識別間隔からのN個の追跡被写体のセットにリンクするN個の位置特定被写体のセットを識別する。
【0014】
斯かる実施形態では、N個の位置特定被写体のセットを識別するために、現在の識別間隔からの位置特定被写体のセットのメンバーに優先順位を付けることは、N個のメンバーのペアと、現在の識別間隔から位置特定された2以上の候補位置特定被写体との間の距離を計算するロジックを含む。次いで、システムは、計算された距離を第2の閾値と比較することによって、N個の位置特定被写体のセットを識別する。
【0015】
斯かる実施形態では、システムは、第1の先行する識別間隔からのN個の追跡被写体のセットのメンバーを、現在の識別間隔内のN個の位置特定被写体のセットのメンバーにリンクするロジックを含む。システムは、第1の先行する識別間隔からのN個の追跡被写体のセットのメンバーの位置と、現在の識別間隔内のN個の位置特定被写体のセットのメンバーとの間の距離を計算する。システムは、計算された距離を第2の閾値と比較する。
【0016】
システムは、第1の先行する識別間隔からのN個の追跡被写体のセットのメンバーを、現在の識別間隔内のN個の位置特定被写体のセットのメンバーにリンクするロジックを含む。システムは、第1の先行する識別間隔からのN個の追跡被写体のセットのメンバーの位置と、現在の識別間隔内のN個の位置特定被写体のセットのメンバーの位置の、シンク、すなわち出口または入口領域の境界までの距離を計算する。システムは、計算された距離を第3の閾値と比較する。
【0017】
システムは、第1の先行する識別間隔からのN個の追跡被写体のセットには、現在の識別間隔内のN個の位置特定被写体のセットのメンバーとマッチングする他のメンバーのいないことを決定することによって、第1の先行する識別間隔からのN個の追跡被写体のセットのメンバーを、現在の識別間隔内のN個の位置特定被写体のセットのメンバーにリンクする。
【0018】
システムは、欠落追跡被写体の位置と、実空間のエリア内の指定非監視位置との間の距離を計算するロジックと、候補位置特定被写体の位置と実空間のエリア内の指定非監視位置との間の距離を計算するロジックとを含む。システムは、計算された距離を第3の閾値と比較する。システムは、第2の先行する識別間隔における追跡被写体のセット及び現在の識別間隔における位置特定被写体のセット内には第3の閾値よりも指定非監視位置に近い他の被写体がないと判定することによって、現在の識別間隔からの候補位置特定被写体を、欠落追跡被写体とマッチングさせる。
【0019】
一実施態様において、実空間のエリア内の対応する視野の複数の画像シーケンスは、実空間のエリア内のそれぞれの視野の同期した画像シーケンスを生成する複数のセンサにより生成される。一実施形態では、センサはカメラを含む。
【0020】
一実施形態では、複数のシーケンスの各々における1つの画像が各画像キャプチャ・サイクルにおいて取得され、識別間隔は画像キャプチャ・サイクルに対応する。別の実施形態では、識別間隔が2以上の画像キャプチャ・サイクルを含む。
【0021】
一実施形態では、識別間隔中に実空間のエリア内の被写体の位置を特定するために画像シーケンスを使用するロジックが、実空間のエリア内の関節のコンステレーションとして被写体の位置を特定することを含み、関節のコンステレーション内の関節は実空間のエリアの3次元内の位置及びタイムスタンプによって表される位置を含む。一実施形態では、タイムスタンプが画像キャプチャ・サイクルにおいて画像が取得される時間に対応する。
【0022】
また、本明細書に記載されるシステムは、実空間内の対応する視野の複数の画像シーケンスを受信する処理システムであって、識別間隔中に実空間のエリア内の被写体の位置を特定するために画像シーケンスを使用するロジックと、追跡被写体を識別するために複数の識別間隔からの位置特定被写体をマッチングさせるロジックと、追跡被写体をユーザ・アカウントにリンクし、実空間のエリア内の識別された被写体の記録を維持するロジックと、識別された被写体の位置を更新するために、現在の識別間隔における位置特定被写体を、複数の先行する識別間隔における識別された被写体と比較し、現在の識別間隔中の位置特定被写体の数と、第1の先行する識別間隔中の識別された被写体の数とにミスマッチ
がある場合に、次に、現在の識別間隔中の位置特定被写体の少なくとも1つを、少なくとも1つの他の先行する識別間隔中の識別された被写体と比較することを含むロジックと、を含む。
【0023】
本明細書で説明する実施形態では、追跡被写体をユーザ・アカウントにリンクするロジックが、ユーザに関する個人的なバイオメトリック情報なしで動作する。
【0024】
また、本明細書で説明される実施形態では、追跡被写体をユーザ・アカウントにリンクするロジックが、実空間のエリア内でクライアント・アプリケーションを実行するモバイル・デバイスの位置を識別し、モバイル・デバイスの位置を追跡被写体または位置特定被写体の位置とマッチングさせる手順を含む。
【0025】
コンピュータ・システムによって実行することができる方法及びコンピュータ・プログラム製品も、本明細書において説明されている。
【0026】
本明細書に記載される機能は、限定されるものではないが、実空間のエリア内の特定の識別間隔における候補位置特定被写体を識別し追跡することと、異なる識別間隔において位置特定された欠落追跡被写体に候補位置特定被写体をマッチングさせることと、欠落追跡被写体に候補位置特定被写体をマッチングさせるために使用するように構成されたデータ構造とを含み、例えば、処理される画像データのタイプ、画像データのどの処理を実行すべきか、及び画像データからどのように動作を高信頼度で決定するかに関するコンピュータ・エンジニアリングの複雑な問題を提示する。
【0027】
発明の他の実施態様及び利点は、以下の図面、詳細な説明、及び特許請求の範囲を検討することによって理解することができる。
【図面の簡単な説明】
【0028】
図1】実空間内の被写体を追跡する被写体連続性処理エンジンのアーキテクチャ・レベルの概略図を示す。
【0029】
図2A】被写体、在庫陳列構造、及びショッピングストア内のカメラ配置を示すショッピングストア内の通路の側面図である。
【0030】
図2B】実空間のエリア内における在庫陳列構造内の棚から商品を取り出す被写体を示す斜視図である。
【0031】
図3A】被写体の関節情報を記憶するための例示的なデータ構造を示す。
【0032】
図3B】関連する関節の情報を含む被写体を記憶するための例示的なデータ構造を示す。
【0033】
図4A】第2の先行する識別間隔における実空間のエリア内の追跡被写体を示す。
【0034】
図4B】第2の先行する識別間隔において位置特定された1つの追跡被写体が欠落している、第1の先行する識別間隔における実空間のエリア内の追跡被写体を示す。
【0035】
図4C】候補被写体が位置特定された現在の識別間隔における実空間のエリア内の位置特定された被写体を示す。
【0036】
図5】候補位置特定被写体を、欠落追跡被写体にマッチングさせるための例示的なフローチャートである。
【0037】
図6A】第1の先行する識別間隔において位置特定された実空間のエリア内の追跡被写体を示す。
【0038】
図6B】第1の先行する識別間隔において位置特定された追跡被写体とマッチングしない1以上の位置特定被写体を有する現在の識別間隔における実空間のエリア内の位置特定された被写体を示す。
【0039】
図7】現在の識別間隔内の2以上の位置特定被写体が第1の先行する識別間隔内の追跡被写体とマッチングしない場合に、現在の識別間隔において位置特定された被写体を、第1の先行する識別間隔内の追跡被写体とマッチングさせるための処理ステップを示す例示的なフローチャートである。
【0040】
図8A】指定非監視位置と、指定非監視位置の近くに位置し、第2の先行する識別間隔において位置特定された追跡被写体とを有する実空間のエリアを示す。
【0041】
図8B】第1の先行する識別間隔において位置特定された追跡被写体を有し、第1の先行する識別間隔において指定非監視位置の近くに位置する図8Aの追跡被写体が欠落している実空間のエリアを示す。
【0042】
図8C】指定非監視位置の近くに位置する候補位置特定被写体を含む実空間のエリア内において、現在の識別間隔において位置特定された被写体を示す。
【0043】
図9】指定非監視位置の近くの候補位置特定被写体を、欠落追跡被写体にマッチングさせるための処理ステップを有する例示的なフローチャートである。
【0044】
図10図1の被写体連続性処理エンジンをホストするように構成されたカメラ及びコンピュータ・ハードウェア配置である。
【0045】
図11】ショッピングストア内のモバイル・コンピューティング・デバイスを持つ被写体、及びカメラ配置を示すショッピングストア内の通路の側面図である。
【0046】
図12】モバイル・コンピューティング・デバイスを持つ被写体、及びカメラ配置を示すショッピングストア内の図11の通路内の上面図である。
【0047】
図13】モバイル・コンピューティング・デバイス上に表示されたセマフォ画像を使用して、追跡被写体をユーザ・アカウントにマッチングさせることにより被写体を識別させるための処理ステップを示すフローチャートである。
【0048】
図14】モバイル・コンピューティング・デバイスのサービス位置を使用して、追跡被写体をユーザ・アカウントにマッチングさせることにより被写体を識別させるための処理ステップを示すフローチャートである。
【0049】
図15】被写体及びモバイル・コンピューティング・デバイスの速度を使用して、追跡被写体をユーザ・アカウントにマッチングさせることにより被写体を識別させるための処理ステップを示すフローチャートである。
【0050】
図16A】ネットワーク・アンサンブルを使用して、追跡被写体をユーザ・アカウントにマッチングさせるための処理ステップの第1の部分を示すフローチャートである。
【0051】
図16B】ネットワーク・アンサンブルを使用して、追跡被写体をユーザ・アカウントにマッチングさせるための処理ステップの第2の部分を示すフローチャートである。
【0052】
図16C】ネットワーク・アンサンブルを使用して、追跡被写体をユーザ・アカウントにマッチングさせるための処理ステップの第3の部分を示すフローチャートである。
【0053】
図17図13図16Cに示される4つの手法を実空間のエリア内において適用して、追跡被写体をユーザ・アカウントに確実にマッチングさせるための例示的なアーキテクチャである。
【発明を実施するための形態】
【0054】
以下の説明は、当業者が本発明を作成し使用することを可能にするために提示され、特定の用途及びその要件に即して提供される。開示された実施態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義される一般原則は、本発明の精神及び範囲から逸脱することなく、他の実施態様及び用途に適用され得る。従って、本発明は、示された実施態様に限定されることを意図するものではなく、本明細書に開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。

[システム概要]
【0055】
図1図17を参照して、対象技術のシステム及び様々な実施態様を説明する。システム及び処理は、本実施態様によるシステムのアーキテクチャ・レベル概略図である図1を参照して説明される。図1は、アーキテクチャ図であるため、説明の明確性を向上させるために、特定の詳細は省略されている。
【0056】
図1の説明は、以下のように編成される。最初に、システムの要素を説明し、次にそれらの相互接続を説明する。次に、システムにおける要素の使用についてより詳細に説明する。
【0057】
図1は、システム100のブロック図レベルの説明図を提供する。本システム100は、カメラ114、ネットワーク・ノードがホストする画像認識エンジン112a,112b及び112n、モバイル・コンピューティング・デバイス118a,118b,118m(集合的に、モバイル・コンピューティング・デバイス120と呼ぶ)、ネットワーク上のネットワーク・ノード(または、ノード)104内に配置された被写体連続性処理エンジン180、被写体追跡エンジン110をホストするネットワーク・ノード102、ネットワーク・ノード、または、ノード(処理プラットフォームとしても知られている)103内に配置されたマッチング・エンジン170を含む。ネットワーク・ノードは、この例では、マップ・データベース140、被写体データベース150、連続性ヒューリスティック・データベース160、トレーニング・データベース162、ユーザ・アカウント・データベース164、画像データベース166、及び、通信ネットワーク181を含む、被写体の追跡及び連続性をサポートするメモリを含むか、或いは、該メモリへのアクセスを有することができる。ネットワーク・ノードは、1つの画像認識エンジンのみ、または、複数の画像認識エンジンをホストすることができる。
【0058】
本明細書で説明される実施形態は、例えばRGBカラー出力画像を生成することができる可視範囲のカメラを使用する。他の実施形態では、画像シーケンスを生成するために、異なる種類のセンサが使用される。斯かるセンサの例には、実空間において対応する視野の画像シーケンスを生成するために使用される、超音波センサ、熱センサ、Lidar等が含まれる。一実施形態では、カメラ114に加えてセンサを使用することができる。複
数のセンサを互いに時間的に同期させることができ、その結果、フレームは同時に、または時間的に近接して、同じフレーム・キャプチャ・レートでセンサによって取得される。本明細書に記載される実施形態の全ては、カメラ以外のセンサ、または、カメラに追加されたセンサを含むことができる。
【0059】
本明細書で使用されるように、ネットワーク・ノードは、ネットワークに接続され、通信チャネルを介して他のネットワーク・ノードとの間で情報を送信、受信、または転送することができる、アドレス可能なハードウェア・デバイスまたは仮想デバイスである。ハードウェア・ネットワーク・ノードとして配置することができる電子デバイスの例には、あらゆる種類のコンピュータ、ワークステーション、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、及びスマートフォンが含まれる。ネットワーク・ノードは、クラウドベースのサーバ・システムで実施することができる。ネットワーク・ノードとして構成された複数の仮想デバイスを、単一の物理デバイスを使用して実施することができる。
【0060】
データベース140、150、160、162、164、及び166は、1または複数の非一時的コンピュータ可読媒体に記憶される。本明細書で使用されているように、データベースがコンピュータ可読媒体上またはコンピュータ可読媒体内の何れに配置されているかの区別は意図されていない。更に、本明細書で使用されているように、用語「データベース」は何らかの構造の単一性を必ずしも意味するものではなく、例えば、2以上の別個のデータベースは、一緒に考慮される場合、その用語が本明細書で使用されているように、依然として「データベース」を構成する。従って、図1では、データベース140,150,160,162,164,及び166は単一のデータベースであると考えることができる。
【0061】
明確性のために、画像認識エンジンをホストする3つのネットワーク・ノードのみがシステム100に示されている。しかしながら、画像認識エンジンをホストする任意の数のネットワーク・ノードを、ネットワーク181を介して被写体追跡エンジン110に接続することができる。同様に、画像認識エンジン、被写体追跡エンジン、被写体連続性処理エンジン、マッチング・エンジン、及び、本明細書で説明する他の処理エンジンは、分散アーキテクチャ内の複数のネットワーク・ノードを使用して実行することができる。
【0062】
次に、システム100の要素の相互接続について説明する。ネットワーク181は、画像認識エンジン112a,112b,及び112nをそれぞれホストするネットワーク・ノード101a、101b、及び101n、被写体連続性処理エンジン180をホストするネットワーク・ノード104、被写体追跡エンジン110をホストするネットワーク・ノード102、マッチング・エンジン170をホストするネットワーク・ノード103、マップ・データベース140、被写体データベース150、連続性ヒューリスティック・データベース160、トレーニング・データベース162、ユーザ・データベース164、画像データベース166及び、モバイル・コンピューティング・デバイスを結合する。カメラ114は、画像認識エンジン112a,112b,及び112nをホストするネットワーク・ノードを介して被写体追跡エンジン110に接続される。一実施形態では、カメラ114がショッピングストアに設置され、重なり合う視野を有するカメラ114のセット(2つ以上)が配置されて、店舗内の実空間の画像を取得する。図1では、2つのカメラが通路116aの上に配置され、2つのカメラが通路116bの上に配置され、3つのカメラが通路116nの上に配置されている。カメラは、オープンスペース、通路上、及び ショッピングストアへの入口及び出口付近に設置される。斯かる実施形態では、カメラは、ショッピングストア内を移動する顧客がいつの時点でも2つ以上のカメラの視野内に存在することを目標として構成される。
【0063】
カメラ114は、互いに時間的に同期させることができ、その結果、画像は、画像キャプチャ・サイクルで同時にまたは時間的に近く、且つ同じ画像キャプチャ・レートで取得される。カメラ114は、画像認識エンジン112a~112nをホストするネットワーク・ノードに、所定のレートでそれぞれの継続的な画像ストリームを送ることができる。同時にまたは時間的に近くに、実空間のエリアをカバーする全てのカメラにおいて取得された画像は、同期された画像が実空間において固定された位置を有する被写体の異なる光景を表すものとして処理エンジンにおいて識別され得るという意味で、同期している。例えば、一実施形態では、カメラが、30フレーム/秒(fps)のレートで、画像認識エンジン112a~112nをホストするそれぞれのネットワーク・ノードに画像フレームを送信する。各フレームは、画像データと共に、タイムスタンプ、カメラの識別情報(「カメラID」と略される)、及びフレーム識別情報(「フレームID」と略される)を有する。上述の開示された技術の他の実施形態は、このデータを生成するために、赤外線または高周波イメージ・センサ、超音波センサ、熱センサ、ライダ(Lidar)等の様々なタイプのセンサを使用することができる。RGBカラー出力を生成するカメラ114に追加して、例えば、赤外線または高周波イメージ・センサを含む、複数タイプのセンサが使用され得る。複数のセンサは互いに時間的に同期され、その結果、フレームは、センサによって同時または時間的に近接して、同じフレーム・キャプチャ・レートで取得される。明細書に開示される全ての実施形態において、カメラ以外のセンサ、または、複数タイプのセンサが、使用される画像シーケンスを生成するために使用され得る。
【0064】
カメラは、それぞれの画像認識エンジンに接続される。例えば、図1において、通路116a上に設置された2つのカメラは、画像認識エンジン112aをホストするネットワーク・ノード101aに接続される。同様に、通路116b上に設置された2つのカメラは、画像認識エンジン112bをホストするネットワーク・ノード101bに接続される。ネットワーク・ノード101a~101n内でホストされる各画像認識エンジン112a~112nは、図示の例ではそれぞれ1つのカメラから受信した画像フレームを別々に処理する。本明細書で説明される被写体追跡システムの実施形態では、カメラは頭上に設置され、その結果、カメラの視野は、組み合わされて、ショッピングストア内等の追跡が行われるべき実空間のエリアを包含する。
【0065】
一実施形態では、各画像認識エンジン112a、112b、及び112nは、畳み込みニューラル・ネットワーク(CNNと略す)等の深層学習アルゴリズムとして実装される。斯かる実施形態では、CNNがトレーニング・データベースを使用してトレーニングされる。本明細書で説明される実施形態では、実空間内の被写体の画像認識が、画像内で認識可能な関節を識別しグループ化することに基づいており、関節のような被写体の特徴のグループは個々の被写体に帰属することができる。この関節ベースの分析のために、トレーニング・データベース130は、被写体のための異なるタイプの関節の各々に対して膨大な画像を収集している。ショッピングストアの例示的な実施形態では、被写体は、棚の間の通路を移動する顧客である。例示的な実施形態では、CNNのトレーニング中に、システム100は「トレーニング・システム」と呼ばれる。トレーニング・データベースを使用してCNNをトレーニングした後、CNNは、プロダクション・モードに切り替えられ、ショッピングストア内の顧客の画像をリアルタイムで処理する。
【0066】
例示的な実施形態では、プロダクション中に、システム100はランタイム・システムと呼ばれる(推論システムとも呼ばれる)。それぞれの画像認識装置のCNNは、それぞれの画像ストリーム中の画像に対して関節データ構造の配列を生成する。本明細書に記載される実施形態では、関節データ構造の配列が、各処理された画像に対して生成されることで、各画像認識エンジン112a~112nが、関節データ構造の配列の出力ストリームを生成する。重なり合う視野を有するカメラからの関節データ構造のこれらの配列は、関節のグループを形成し、斯かる関節のグループを被写体として識別するために、更に処
理される。システムは、被写体が実空間のエリア内に存在している間、追跡識別子「追跡ID」を使用して被写体を追跡することができる。追跡被写体は被写体データベース150に保存される。
【0067】
被写体追跡エンジン110は、ネットワーク・ノード102上でホストされ、この例では、 画像認識エンジン112a~112nから被写体の関節データ構造の配列の継続的なストリームを受信する。被写体追跡エンジン110は、画像キャプチャ・サイクルでカメラより受信した画像シーケンスから認識された関節データ構造の配列を処理する。そして、様々な画像シーケンスに対応する関節データ構造の配列内の要素の座標を、実空間内の座標を有する候補関節に変換する。同期画像の各セットについて、実空間全体にわたって識別された候補関節の組み合わせは、類推目的のために、候補関節の銀河に似ていると考えることができる。後続の各時点において、銀河が経時的に変化するように、候補関節の動きが記録される。被写体追跡エンジン110の出力は、識別間隔中に実空間のエリア内の被写体を位置特定するために使用される。カメラによって生成された、複数の画像シーケンスの各々における1つの画像が、各画像キャプチャ・サイクルにおいて取得される。
【0068】
被写体追跡エンジン110は、実空間内の座標を有する候補関節のグループまたはセットを、実空間内の被写体として決定するロジックを使用する。類推目的のために、候補点の各セットは、各時点における候補関節の星座(コンステレーション)に似ている。一実施形態では、関節のこれらのコンステレーションが位置特定被写体を表すものとして識別間隔毎に生成される。被写体は、関節のコンステレーションを使用して、識別間隔中に位置特定される。候補関節のコンステレーションは、時間とともに移動することができる。複数の時間的に順序付けられた識別間隔にわたるような、ある期間にわたる被写体追跡エンジン110の出力の時系列分析は、実空間のエリアにおける被写体の動きを識別する。システムは、実空間内の固有識別子、関節、及びそれらの位置を含む被写体データを、被写体データベース150内のに格納することができる。
【0069】
例示的な実施形態では、位置特定被写体を表す候補関節のセット(すなわち、コンステレーション)を識別するロジックが、実空間内の被写体の関節間の物理的関係に基づくヒューリスティック関数を含む。これらのヒューリスティック関数は、候補関節のセットを被写体として位置特定するために使用される。候補関節のセットは、他の個々の候補関節とのヒューリスティック・パラメータに基づく関係を有する個々の候補関節、及び、個々の被写体として位置特定された、または位置特定され得る所与のセット内の候補関節のサブセットを含む。
【0070】
1つの識別間隔内の位置特定被写体は、位置及びタイミングデータに基づいて、他の識別間隔内の位置特定被写体とマッチングすることができる。このようにマッチングした位置特定被写体は、本明細書では追跡被写体と呼ばれ、それらの位置は、識別間隔を横断して実空間のエリアを動き回るときに、システム内で追跡することができる。本システムでは、例えば、固有追跡識別子を、識別間隔毎に位置特定被写体のリストのメンバーに割り当てること等によって、或る期間にわたる各識別間隔からの追跡被写体のリストを維持することができる。現在の識別間隔内の位置特定被写体は、1または複数の過去の識別間隔からの追跡被写体に対応するかどうかを判定するために処理される。それらがマッチングする場合、追跡被写体の位置は、現在の識別間隔の位置に更新される。過去の間隔からの追跡被写体とマッチングしない位置特定被写体は、それらが新しく到着した被写体を表すか、または以前に追跡されたが、前の識別間隔から欠落している被写体を表すかどうかを決定するために、更に処理される。
【0071】
被写体を追跡するために、被写体連続性処理エンジン180は、現在の識別間隔内の新
たな位置特定被写体を、1または複数の先行する識別間隔と比較する。システムは、新たな位置特定被写体が、前の識別間隔で既に追跡され、被写体データベースに記憶されたが、直前の識別間隔の位置特定被写体とマッチングしなかった欠落追跡被写体であるかどうかを判定するロジックを含む。現在の識別間隔における新たな位置特定被写体が、以前の識別間隔において位置特定された欠落追跡被写体とマッチングする場合、システムは、現在の識別間隔から位置特定された候補位置特定被写体を使用して、被写体データベース150内の欠落追跡被写体を更新する。
【0072】
被写体が上述のように関節のコンステレーションとして表される一実施形態では、欠落追跡被写体の関節の位置は、現在の識別間隔から位置特定された候補位置特定被写体の対応する関節の位置を用いて、データベース内で更新される。この実施形態では、システムが追跡被写体に関する情報を被写体データベース150に記憶する。これは、追跡被写体が位置特定された識別間隔等の情報を含むことができる。更に、システムは、追跡被写体について、追跡被写体が位置特定されていない識別間隔を記憶することもできる。別の実施形態では、システムが、追跡被写体が欠落し、実空間のエリア内の欠落追跡被写体の最後の既知の位置における識別間隔といった追加情報と共に、欠落被写体データベースへ欠落追跡被写体を格納すること、或いは、追跡被写体に欠落している旨のタグを付けることができる。幾つかの実施形態では、追跡され位置特定された被写体の状態は、識別間隔毎に記憶することができる。
【0073】
被写体連続性エンジン180は、様々な被写体連続性シナリオを処理することができる。例えば、2以上の候補位置特定被写体が現在の識別間隔において位置特定されるが、追跡被写体とマッチングしない状況、または、位置特定被写体が実空間のエリア内の指定非監視位置に移動するが、ある時間後に再び現れ、現在の識別間隔内の指定非監視位置の近くで位置特定される状況である。実空間のエリア内における指定非監視位置は例えば、トイレであってもよい。この技術は、連続性ヒューリスティックを使用して、上記の分析を実行することができる。一実施形態では、被写体連続性ヒューリスティックは、連続性ヒューリスティック・データベース160に格納される。
【0074】
ショッピングストアの例では、顧客(上記の被写体とも呼ばれる)が通路内及びオープンスペース内を移動する。顧客は、在庫陳列構造内の棚上の在庫位置から商品を取り出す。在庫陳列構造の一例では、棚はフロアから様々なレベル(または高さ)に配置され、在庫商品は棚上にストックされる。棚は、壁に固定されるか、または、ショッピングストア内の通路を形成する自立棚として配置され得る。在庫陳列構造の他の例には、ペグボード棚、マガジン棚、回転式棚、倉庫棚、及び、冷蔵棚ユニットが含まれる。在庫商品は、積み重ねワイヤバスケット、ダンプビン等の他のタイプの在庫陳列構造にストックすることもできる。また、顧客は商品を、それらが取り出された棚から同じ棚に、または別の棚に戻すこともできる。
【0075】
一実施形態では、画像分析は匿名であり、すなわち、関節分析によって作成された被写体に割り当てられた固有追跡識別子は実空間内の任意の特定の被写体の個人識別詳細(名前、電子メールアドレス、郵送先住所、クレジット・カード番号、銀行口座番号、運転免許証番号等)を識別しない。被写体データベース150に格納されるデータは、個人識別情報を含まない。被写体連続性処理エンジン180及び被写体追跡エンジン110の動作は、被写体に関連するバイオメトリック情報を含むいかなる個人識別情報も使用しない。
【0076】
一実施形態では、追跡被写体は、例えば被写体によって提供される好ましい支払い方法を含むそれぞれの「ユーザ・アカウント」にそれらをリンクすることによって識別される。ユーザ・アカウントにリンクされると、追跡被写体は、本明細書では識別された被写体として特徴付けられる。追跡被写体は店舗で拾得した商品とリンクされ、例えば、ユーザ
・アカウントとリンクされ、店舗を出ると、請求書が生成され、識別された被写体に配送することができ、或いは、オンラインで実行される金融取引が、そのアカウントに関連する支払方法を使用して識別された被写体に課金することができる。識別された被写体は、例えば、固有アカウント識別子または被写体識別子等によって一意に識別することができる。レジ無し店舗の例では、顧客が棚から商品を取り出すことによって買い物を完了すると、システムは顧客によって購入された商品の支払いを処理する。
【0077】
システムは、識別された被写体をユーザ・アカウントとマッチングさせるために、モバイル・コンピューティング・デバイス120(被写体によって携帯される)から受信した信号を処理するマッチング・エンジン170(ネットワーク・ノード103上でホストされる)を含む。マッチングは、画像から個人を識別するバイオメトリック情報を使用することなく、実空間(例えば、ショッピングストア)のエリア内でクライアント・アプリケーションを実行するモバイル・デバイスの位置を識別し、モバイル・デバイスの位置を被写体の位置とマッチングさせることによって実行することができる。
【0078】
ネットワーク181を介した、被写体連続性処理エンジン180をホストするネットワーク・ノード104、及び、被写体追跡エンジン110をホストするネットワーク・ノード102への実際の通信経路は、公衆ネットワーク及び/またはプライベート・ネットワーク上のポイント・ツー・ポイントとすることができる。通信は、プライベート・ネットワーク、VPN、MPLS回路、またはインターネット等の様々なネットワーク181を介して行うことができ、適切なアプリケーション・プログラミング・インターフェース(API)及びデータ交換フォーマット、例えば、REST(Representational State Transfer)、JSON(JavaScript(商標)Object Notation)、XML(Extensible Markup Language)、SOAP(Simple Object Access Protocol)、JMS(Java(商標)Message Service)、及び/またはJavaプラットフォーム・モジュール・システム等を使用することができる。全ての通信は、暗号化することができる。通信は、一般に、EDGE、3G、4GLTE、Wi-Fi、及びWiMAX等のプロトコルを介して、LAN(ローカル・エリア・ネットワーク)、WAN(ワイド・エリア・ネットワーク)、電話ネットワーク(公衆交換電話網(PSTN))、セッション開始プロトコル(SIP)、無線ネットワーク、ポイント・ツー・ポイント・ネットワーク、星型ネットワーク,トークンリング型ネットワーク,ハブ型ネットワーク、インターネット(モバイルインターネットを含む)等のネットワーク上で行われる。更に、ユーザ名/パスワード、オープン許可(OAuth)、Kerberos、SecureID、デジタル証明書等の様々な承認及び認証技術を使用して、通信を保護することができる。
【0079】
本明細書に開示される技術は、データベース・システム、マルチテナント環境、または、Oracle(商標)と互換性のあるデータベース実施態様、IBM DB2 Enterprise Server(商標)と互換性のあるリレーショナル・データベース実施態様、MySQL(商標)またはPostgreSQL(商標)と互換性のあるリレーショナル・データベース実施態様またはMicrosoft SQL Server(商標)と互換性のあるリレーショナル・データベース実施態様等のリレーショナル・データベース実施態様、または、Vampire(商標)と互換性のある非リレーショナル・データベース実施態様、Apache Cassandra(商標)と互換性のある非リレーショナル・データベース実施態様、 BigTable(商標)と互換性のある非リレーショナル・データベース実施態様、またはHBase(商標)またはDynamoDB(商標)と互換性のある非リレーショナル・データベース実施態様、等のNoSQL(商標)の非リレーショナル・データベース実施態様を含む何かのコンピュータ実装システムという状況下で実施され得る。更に、開示された技術は、MapReduce(商標)、バルク同期プログラミング、MPIプリミティブ等の様々なプログラミングモデル、または、Apache Storm(商標)、Apache Spark(商標)、Apac
he Kafka(商標)、Apache Flink(商標)、Truviso(商標)、Amazon Elasticsearch Service(商標)、Amazon Web Services(AWS)(商標)、IBM Info-Sphere(商標)、Borealis(商標)、及びYahoo! S4(商標)等の様々なスケーラブルなバッチ及びストリーム管理システムを使用して実施され得る。

[カメラ配置]
【0080】
カメラ114は、3次元(3Dと略される)実空間において被写体(または存在物)を追跡するように配置される。ショッピングストアの例示的な実施形態では、実空間は、販売用の商品が棚に積み重ねられるショッピングストアのエリアを含むことができる。実空間内の点は、(x,y,z)座標系で表すことができる。システムが適用される実空間のエリア内の各点は、2つ以上のカメラ114の視野によってカバーされる。
【0081】
ショッピングストアでは、棚及び他の在庫陳列構造は、ショッピングストアの側壁に沿って、または通路を形成する列に、または2つの構成の組合せ等、様々な方法で配置することができる。図2Aは、通路116aの一端から見た、通路116aを形成する棚ユニットA202及び棚ユニットB204の配置を示す。2つのカメラ、カメラA 206及びカメラB 208は、棚等の在庫陳列構造の上のショッピングストアの天井230及びフロア220から所定の距離で通路116aの上に配置される。カメラ114は、実空間内の在庫陳列構造及びフロアエリアのそれぞれの部分を包含する視野を有し、その上に配置されたカメラを備える。例えば、カメラA206の視野216とカメラB208の視野218は、図2Aに示すように重なる。被写体の位置は、実空間のエリアの3次元でのそれらの位置によって表される。一実施形態では、被写体が実空間における関節のコンステレーションとして表される。この実施形態では、関節のコンステレーションにおける関節の位置を使用して、実空間のエリア内の被写体の位置を決定する。
【0082】
ショッピングストアの例示的な実施形態では、実空間は、ショッピングストア内のフロア220の全てを含むことができる。カメラ114は、フロア220及び棚のエリアが少なくとも2つのカメラによって見えるように配置され、配向される。カメラ114は、また、棚202及び204の前のフロアスペースを覆う。カメラの角度は急峻な視点、真っ直ぐな視点及び角度の付いた視点の両方を有するように選択され、これにより、顧客のより完全な身体画像が得られる。一実施形態では、カメラ114が、ショッピングストア全体を通して、8フィート高さ以上で構成される。一実施形態では、実空間のエリアがトイレ等の1または複数の指定非監視位置を含む。
【0083】
マップ・データベースには、被写体追跡エンジンにおける被写体のソース及びシンクとして機能する実空間のエリアの入口及び出口が格納される。また、指定非監視位置は、カメラ114の視野内にはないが、追跡被写体が入ることができるエリアであるが、トイレ等、しばらくしてから追跡されるエリア内に戻らなければならないエリアを表することができる。指定非監視位置の位置は、マップ・データベース140に記憶される。該位置は、指定非監視位置の境界を定義する実空間内の位置を含むことができ、指定非監視位置への1または複数の入口または出口の位置を含むこともできる。

[3次元シーン生成]
【0084】
図2Aにおいて、被写体240は在庫陳列構造の棚ユニットB 204の傍に立っており、片手は、棚ユニットB 204内の棚(目に見えない)の近くに位置している。図2Bは、フロアから異なる高さに配置された4つの棚、棚1、棚2、棚3、及び棚4を備えた棚ユニットB 204の斜視図である。在庫商品はこれらの棚にストックされる。
【0085】
実空間内の位置は、実空間座標系の(x,y,z)点として表される。“x”及び“y”は、ショッピングストアのフロア220とすることができる2次元(2D)平面上の位置を表し、値“z”は、1つの構成ではフロア220における2Dプレーン上の点の高さである。システムは、2つ以上のカメラからの2D画像を組み合わせて、実空間のエリア内における関節の3次元位置を生成する。本項では、関節の3D座標を生成するための処理を説明する。該処理はまた、3Dシーン生成とも呼ばれる。
【0086】
在庫商品を追跡するために訓練または推論モードでシステム100を使用する前に、2つのタイプのカメラ較正、すなわち、内部較正と外部較正が実行される。内部較正では、カメラ114の内部パラメータが較正される。内部カメラ・パラメータの例には、焦点距離、主点、スキュー、魚眼係数等がある。内部カメラ較正のための種々の技術を使用することができる。斯かる技術の1つは、Zhangによって、2000年11月の第22巻第11号、パターン解析と機械知能に関するIEEEトランザクションで発表された「カメラ較正のためのフレキシブルな新手法」において提示されている。
【0087】
外部較正では、外部カメラ・パラメータが、2D画像データを実空間の3D座標に変換するためのマッピング・パラメータを生成するために較正される。一実施形態では、人物等の1つの被写体(多関節被写体とも呼ばれる)が実空間に導入される。被写体は、各カメラ114の視野を通過する経路上で実空間を移動する。実空間内の任意の所与の点において、被写体は、3Dシーンを形成する少なくとも2つのカメラの視野内に存在する。しかしながら、2つのカメラは、それぞれの2次元(2D)画像平面において同じ3Dシーンの異なるビューを有する。被写体の左手首等の3Dシーン内の特徴は、それぞれの2D画像平面内の異なる位置にある2つのカメラによって見られる。
【0088】
点対応は、所与のシーンについて重複する視野を有する全てのカメラ・ペアの間で確立される。各カメラは同じ3Dシーンの異なる視野を有するので、点対応は3Dシーンにおける同じ点の投影を表す2つのピクセル位置(重なり合う視野を有する各カメラからの1つの位置)である。外部較正のために、画像認識エンジン112a~112nの結果を使用して、各3Dシーンについて多くの点対応が識別される。画像認識エンジンは関節の位置を、それぞれのカメラ114の2D画像空間内のピクセルの(x,y)座標、例えば、行及び列番号として識別する。一実施形態では、関節は、被写体の19の異なるタイプの関節のうちの1つである。被写体が異なるカメラの視野を通って移動するとき、追跡エンジン110は、較正に使用される被写体の19の異なるタイプの関節の各(x,y)座標を、画像毎にカメラ114から受け取る。
【0089】
例えば、カメラAからの画像と、カメラBからの画像との両方が同じ時点に、重なり合う視野で撮影された場合を考える。カメラAからの画像には、カメラBからの同期画像のピクセルに対応するピクセルがあり、カメラAとカメラBの両方の視野内の或る物体または表面の特定の点があり、その点が両方の画像フレームのピクセルに取り込まれていると考える。外部カメラ較正では、多数のそのような点が識別され、対応点と呼ばれる。較正中にカメラA及びカメラBの視野内に1つの被写体があるので、この被写体の主要な関節、例えば左手首の中心が識別される。これらの主要な関節がカメラA及びカメラBの両方からの画像フレーム内に見える場合、これらは対応点を表すと仮定される。この処理は、多くの画像フレームについて繰り返され、重なり合う視野を有する全てのカメラ・ペアについて対応点の大きな集合を構築する。一実施形態では、画像が30FPS(フレーム/秒)以上のレートで、フルRGB(赤、緑、及び青)カラーで720ピクセルの解像度で、全てのカメラからストリーミングされる。これらの画像は、一次元配列(フラット配列とも呼ばれる)の形態である。
【0090】
被写体について上記で収集された多数の画像を使用して、重なり合う視野を有するカメラ間の対応点を決定することができる。重なり合う視野を有する2つのカメラA及びBを考える。カメラA、Bのカメラ中心と3Dシーンの関節位置(特徴点ともいう)を通る平面を「エピポーラ平面」と呼び、エピポーラ平面とカメラA、Bの2D画像平面との交差箇所を「エピポーラ線」と定義する。これらの対応点が与えられると、カメラAからの対応点を、カメラBの画像フレーム内の対応点と交差することが保証されるカメラBの視野内のエピポーラ線に正確にマッピングすることができる変換が決定される。被写体について上記で収集された画像フレームを使用して、変換が生成される。この変換は非線形であることが当技術分野で知られている。更に、一般形態では、投影された空間へ及び投影された空間から移動する非線形座標変換と同様に、それぞれのカメラのレンズの半径方向の歪み補正が必要であることが知られている。外部カメラ較正では、理想的な非線形変換への近似が非線形最適化問題を解くことによって決定される。この非線形最適化機能は、重なり合う視野を有するカメラ114の画像を処理する様々な画像認識エンジン112a~112nの出力(関節データ構造の配列)内の同じ関節を識別するために、被写体追跡エンジン110によって使用される。内部カメラ較正及び外部カメラ較正の結果は、較正データベースに格納される。
【0091】
実空間におけるカメラ114の画像内の点の相対位置を決定するための様々な手法を使用することができる。例えば、Longuet-Higginsが、「A computer algorithm for reconstructing a scene from two projections」(Nature、第293巻、1981年9月10日)を公表している。本論文では、2つの投影間の空間的関係が未知であるとき、遠近投影の相関ペアからシーンの3次元構造を計算することが提示されている。Longuet-Higginsの論文は、実空間での各カメラの他のカメラに対する位置を決定する手法を提示する。更に、その手法は、実空間における被写体の三角測量を可能にし、重なり合う視野を有するカメラ114からの画像を使用してz座標の値(フロアからの高さ)を識別する。実空間の任意の点、例えば、実空間の一角の棚ユニットの端を、実空間の(x,y,z)座標系上の(0,0,0)点とする。
【0092】
本技術の一実施形態では、外部較正のパラメータが2つのデータ構造に格納される。第1のデータ構造は、固有パラメータを格納する。固有パラメータは、3D座標から2D画像座標への射影変換を表す。第1のデータ構造は以下に示すように、カメラ毎の固有パラメータを含む。データ値は全て浮動小数点数値である。このデータ構造は、“K”及び歪み係数として表される3×3固有行列を格納する。歪み係数は、6つの半径方向歪み係数と2つの接線方向歪み係数とを含む。半径方向の歪みは、光線がその光学的中心よりも、レンズの縁部の近傍でより大きく屈曲するときに生じる。接線方向の歪みは、レンズと像平面が平行でないときに生じる。以下のデータ構造は、第1のカメラのみの値を示す。同様のデータが全てのカメラ114に対して記憶される。

{
1: {
K: [[x, x, x], [x, x, x], [x, x, x]],
distortion _coefficients: [x, x, x, x, x, x, x, x]
},
......
}
【0093】
第2のデータ構造は、カメラ・ペア毎に、3×3基本行列(F)、3×3必須行列(E)、3×4投影行列(P)、3×3回転行列(R)、及び3×1平行移動ベクトル(t)を記憶する。このデータは、1つのカメラの基準フレーム内の点を別のカメラの基準フレ
ームに変換するために使用される。カメラの各ペアについて、1つのカメラから別のカメラへフロア220の平面をマッピングするために、8つのホモグラフィ係数も記憶される。基本行列は、同じシーンの2つの画像間の関係であり、シーンからの点の投影が両方の画像において起こり得る場所を制約する。必須行列は、カメラが較正されている条件での、同じシーンの2つの画像間の関係でもある。投影行列は、3D実空間から部分空間へのベクトル空間投影を与える。回転行列は、ユークリッド空間における回転を実行するために使用される。平行移動ベクトル“t”は、図形または空間の全ての点を所与の方向に同じ距離だけ移動させる幾何学的変形を表す。ホモグラフィ・フロア係数は、重なり合う視野を有するカメラによって見られるフロア220上の被写体の特徴の画像を結合するために使用される。第2のデータ構造を以下に示す。同様のデータが、全てのカメラ・ペアについて記憶される。前述のように、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]
}
},
.......
}

[2次元マップ及び3次元マップ]
【0094】
ショッピングストア内の棚等の在庫位置は、マップ・データベース上の固有識別子(例えば、棚ID)によって識別することができる。同様に、ショッピングストアは、マップ・データベース上の固有識別子(例えば、店舗ID)によって識別することができる。システムは、それぞれの座標に沿った実空間のエリア内の在庫位置を識別する2次元(2D)及び3次元(3D)マップ・データベース140を含むことができる。例えば、2Dマップでは、マップ内の位置が、図2Bに示されるように、フロア220に垂直に形成された平面、すなわちXZ平面上の2次元領域を規定する。マップは、在庫商品が配置される在庫位置のエリアを規定する。図3において、棚ユニットの2D位置は、4つの座標位置(x1,y1)、(x1,y2)、(x2,y2)、及び(x2,y1)によって形成されるエリアを示す。これらの座標位置は、棚が位置特定されるフロア220上の2D領域を規定する。同様の2D領域が、ショッピングストア内の全ての在庫陳列構造の位置、入口、出口そして指定非監視位置に対して規定される。この情報は、マップ・データベース140に記憶される。
【0095】
3Dマップでは、マップ内の位置が、X、Y、及びZ座標によって定義される3D実空間内の3次元領域を規定する。マップは、在庫商品が配置される在庫位置の容積を規定する。図2Bでは、棚ユニット内の棚1の3Dビュー250は、該容積の8隅に対応する8つの座標位置(x1,y1,z1)、(x1,y1,z2)、(x1,y2,z1)、(x1,y2,z2)、(x2,y1,z1)、(x2,y1,z2)、(x2,y2,z1)、(x2,y2,z2)によって形成される容積を示し、在庫商品が棚1上に配置される3D領域を規定する。同様の3D領域が、ショッピングストア内の全ての棚ユニット内の在庫位置について規定され、マップ・データベース140内に実空間(ショッピング
ストア)の3Dマップとして格納される。3つの軸に沿った座標位置を使用して、図2Bに示されるように、在庫位置の長さ、深さ、及び高さを計算することができる。
【0096】
一実施形態では、マップが、実空間のエリア内の在庫陳列構造上の在庫位置の部分と相関する容積のユニットの構成を識別する。各部分は、実空間の3つの軸に沿った開始位置及び終了位置によって規定される。2D地図と同様に、3D地図は、ショッピングストア内のすべての在庫陳列構造位置、入口、出口、及び指定非監視位置の位置を記憶することもできる。
【0097】
ショッピングストア内の商品は、特定の商品が配置されることが計画されている(棚等の)在庫位置を識別するプラノグラムに従って配置される。例えば、図2Bの例示250に示すように、棚3及び棚4の左半分は、商品(缶の形状でストックされている)に指定されている。一日の始めまたは他の在庫追跡間隔(時間t=0によって識別される)で、プラノグラムに従って在庫位置がストックされると考える。

[関節データ構造]
【0098】
画像認識エンジン112a~112nは、カメラ114からの画像シーケンスを受け取り、画像を処理して、関節データ構造の対応する配列を生成する。システムは、複数のカメラによって生成された画像シーケンスを使用して、実空間のエリア内の複数の被写体(またはショッピングストア内の顧客)の位置を追跡する処理ロジックを含む。一実施形態では、画像認識エンジン112a~112nが、実空間のエリア内で動いたり、在庫商品を立って見たり、または、在庫商品を取っているまたは置いている可能性のある、エリア内の被写体を識別するために使用可能な画像の各要素における被写体の19個の可能な関節の内の1つを識別する。可能な関節は、足関節と非足関節の2つのカテゴリに分類することができる。関節分類の19番目のタイプは、被写体の全ての非関節特徴(すなわち、関節として分類されない画像の要素)に対するものである。他の実施形態では、画像認識エンジンが特に手の位置を識別するように構成されてもよい。また、ユーザ・チェックイン手順またはバイオメトリック識別処理等の他の技法を、被写体を識別し、被写体が店舗内を移動する際に被写体の手の検出された位置と被写体をリンクさせる目的のために展開することができる。
足関節:
足首関節(左右)
非足関節:


眼(左右)
耳(左右)
肩(左右)
肘(左右)
手首(左右)
尻(左右)
膝(左右)
非関節
【0099】
特定の画像の関節データ構造の配列は、関節タイプ、特定の画像の時間、及び特定の画像内の要素の座標によって、特定の画像の要素を分類する。一実施形態では画像認識エンジン112a~112nが畳み込みニューラル・ネットワーク(CNN)であり、関節タイプは被写体の19種類の関節のうちの1つ、特定の画像の時間は特定の画像についてソースカメラ114によって生成された画像のタイムスタンプであり、座標(x,y)は2
D画像平面上の要素の位置を特定する。
【0100】
CNNの出力は、カメラ当たりの各画像に対する信頼度配列の行列である。信頼度配列の行列は、関節データ構造の配列に変換される。図3Aに示すような関節データ構造310は、各関節の情報を記憶するために使用される。関節データ構造310は、画像が受信されるカメラの2D画像空間内の特定の画像内の要素のx位置及びy位置を識別する。関節番号は、識別された関節のタイプを識別する。例えば、一実施形態では、値は1~19の範囲である。値1は関節が左足首であることを示し、値2は関節が右足首であることを示し、以下同様である。関節のタイプは、CNNの出力行列内のその要素に対する信頼度配列を使用して選択される。例えば、一実施形態では、左足首関節に対応する値がその画像要素の信頼度配列において最も高い場合、関節番号の値は“1”である。
【0101】
信頼度数は、その関節を予測する際のCNNの信頼度の程度を示す。信頼度数の値が高ければ、CNNは自身の予想に確信していることになる。関節データ構造を一意に識別するために、関節データ構造に整数IDが割り当てられる。上記マッピングに続いて、画像毎の信頼度配列の出力行列540は、画像毎の関節データ構造の配列に変換される。一実施形態では、関節分析が、各入力画像に対して、k最近傍、ガウス混合、及び、様々な画像形態変換の組み合わせを実行することを含む。この結果は、各時点において画像数をビットマスクにマッピングするリング・バッファ内にビットマスクの形式で格納することができる関節データ構造の配列を含む。

[被写体追跡エンジン]
【0102】
追跡エンジン110は、重なり合う視野を有するカメラからの画像シーケンス内の画像に対応する、画像認識エンジン112a~112nによって生成された関節データ構造の配列を受信するように構成される。画像当たりの関節データ構造の配列は、画像認識エンジン112a~112nによってネットワーク181を介して追跡エンジン110に送られる。追跡エンジン110は、様々な画像シーケンスに対応する2D画像空間からの関節データ構造の配列内の要素の座標を、3D実空間内の座標を有する候補関節に変換する。実空間内の位置は、2つ以上のカメラの視野によってカバーされている。追跡エンジン110は、実空間における座標(関節のコンステレーション)を有する候補関節のセットを、実空間における位置特定被写体として決定するためのロジックを備える。一実施形態では、追跡エンジン110が、所与の時点における全てのカメラについて、画像認識エンジンからの関節データ構造の配列を蓄積し、候補関節のコンステレーションを識別するために使用されるように、この情報を辞書として被写体データベース140に格納する。辞書は、キー値ペアの形式で編成することができ、ここで、キーはカメラIDであり、値はカメラからの関節データ構造の配列である。斯かる実施形態では、この辞書が候補関節を決定し、関節を位置特定被写体に割り当てるために、ヒューリスティックス・ベースの分析で使用される。斯かる実施形態では、追跡エンジン110の高レベル入力、処理、及び出力が表1に示されている。候補関節を組み合わせて被写体を生成し、実空間のエリア内の被写体の動きを追跡する被写体追跡エンジン110によって適用されるロジックの詳細は、2017年12月19日出願の米国特許出願第15/847,796、現在、2018年8月21日発行の米国特許第10,055,853号、「画像認識エンジンを用いた被写体の認識及び追跡」に示されており、これは、参照により本明細書に組み込まれる。
【0103】
被写体追跡エンジン110は、ヒューリスティックを用いて、画像認識エンジン112a~112によって識別された関節を実空間内のエリア内の位置特定被写体に接続する。その際、被写体追跡エンジン110は、それぞれの識別間隔において、実空間のエリア内で追跡する新たな位置特定被写体を生成し、それぞれの関節位置を更新することによって位置特定被写体とマッチングする現存する追跡被写体の位置を更新する。被写体追跡エンジン110は、三角測量技法を用いて、関節位置を2D画像空間座標(x,y)から3D実空間座標(x,y,z)へ投影することができる。図3Bは、被写体を格納するための被写体データ構造320を示す。該データ構造320は、被写体関連データをキー値辞書として格納する。キーはフレームIDであり、値は別のキー値辞書であり、ここでは、キーはカメラIDであり、値は(被写体の)18個の関節と実空間内のそれらの位置のリストである。被写体データは、被写体データベース150に格納される。被写体には、被写体データベース内の被写体のデータにアクセスするために使用される固有識別子が割り当てられる。
【0104】
一実施形態では、システムが被写体の関節を識別し、被写体の骨格(またはコンステレーション)を作成する。骨格は、実空間に投影され、実空間における被写体の位置及び向きを示す。これは、マシンビジョンの分野では「姿勢推定」とも呼ばれる。一実施形態では、システムがグラフィカル・ユーザ・インタフェース(GUI)上に実空間内の被写体の向き及び位置を表示する。一実施形態では、被写体識別及び画像分析は匿名であり、すなわち、関節分析によって作成された被写体に割り当てられた固有識別子は、上述したように、被写体の個人識別情報を識別しない。
【0105】
この実施形態では、関節データ構造の時系列分析によって生成された、被写体の関節のコンステレーションを使用して、被写体の手の位置を見つけることができる。例えば、手首関節単独の位置、または手首関節と肘関節との組み合わせの投影に基づく位置を使用して、被写体の手の位置を識別することができる。

[被写体の連続性分析]
【0106】
識別間隔において被写体追跡エンジン110によって実行される関節分析は、関節のコンステレーションを識別する。識別間隔は1つの画像キャプチャ・サイクルに対応することができ、または複数の画像キャプチャ・サイクルを含むことができる。識別間隔において位置特定される関節のコンステレーションは、現在の識別間隔において実空間のエリアに入った新たな被写体に属することができ、または、前の識別間隔において既に追跡された被写体の更新された位置を表すことができる。時には、前の識別間隔において位置特定され追跡された被写体が現在の識別間隔より前の中間識別間隔において欠落している可能性がある。これは、被写体が実空間のエリア内の指定非監視位置に移動すること、または、被写体追跡の誤差によることを含む、様々な理由で起こり得る。
【0107】
位置特定被写体が現在の識別間隔において識別されると、開示された技術は、位置特定被写体を新たな被写体として追跡し、それに新たな固有識別名を割り当てる前に、被写体連続性分析を実行する。システムは、現在の識別間隔からの位置特定被写体を、先行する識別間隔からの追跡被写体とマッチングさせる。追跡被写体とマッチングする位置特定被写体は、マッチングする追跡被写体としてタグ付けすることができる。追跡被写体とマッチングしない位置特定被写体は、追加の処理の対象となる。例えば、システムは先行する識別間隔において、1または複数の前の識別間隔において追跡被写体が欠落している(即ち、位置特定被写体とマッチングしない)かどうかを決定する。斯かる欠落追跡被写体は、現在の識別間隔においてマッチングしていない位置特定被写体(候補被写体)に対する潜在的なマッチングとして評価することができる。
【0108】
例えば、システムは、被写体データベース150内の追跡被写体のセットを処理して、データベース内に存在する欠落追跡被写体を検出するロジックを含むことができる。欠落追跡被写体は、第1の先行する識別間隔において位置特定されていないが、第2の先行する識別間隔において追跡されている。第1の先行する識別間隔は、第2の先行する識別間隔に続く。システムは、第1の先行する識別間隔に続く現在の識別間隔から位置特定された候補位置特定被写体を位置特定するためのロジックを含む。現在の識別間隔は、第3の識別間隔とも呼ばれる。
【0109】
開示された技術は、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔で位置特定された欠落追跡被写体にマッチングさせる。欠落追跡被写体が候補位置特定被写体とマッチングする場合、欠落追跡被写体は、候補被写体の位置を用いてデータベース内で更新され、もはや欠落ではないとしてマークされる。これにより、追跡被写体が欠落し、識別間隔において位置特定されない場合であっても、実空間のエリア内における被写体の連続性を可能にする。
【0110】
被写体の連続性分析のバリエーションが可能であることが理解される。例えば、システムは、現在の識別間隔において新たに位置特定された候補被写体を、現在の識別間隔より前の2以上の中間識別間隔の間、システムによって位置特定及び追跡されていない欠落追跡被写体にマッチングさせることができる。
【0111】
以下の項は、被写体連続性分析が実空間のエリア内で実行され得る3つの例示的なシナリオを提示する。

[単一の新規被写体連続性分析]
【0112】
第1の例は、第2の先行する識別間隔において位置特定される欠落追跡被写体を、現在の(または第3の)識別間隔から位置特定される候補位置特定被写体にマッチングさせるために、3つの識別間隔にわたって被写体連続性を実行することを含む。システムは、現在のセット内の位置特定被写体の数が複数の過去の間隔内の第1の先行する識別間隔からの位置特定被写体の数とマッチングしない条件を検出する。該条件が検出されると、システムは、現在のセット内の位置特定された被写体の少なくとも1つを、第1の先行する識別間隔に先行する、複数の過去の識別間隔内の第2の先行する識別間隔からの位置特定された被写体のセットと比較する。次の例では、3つの識別間隔を使用してこのシナリオを示す。しかし、このプロセスは、3つ以上の識別間隔に適用することができる。
【0113】
図4Aは、3つの被写体440、442、及び444が時間t_0における第2の先行する識別間隔において追跡される実空間のエリアの側面図402を示す。被写体は、それぞれの固有追跡識別子と位置情報と共にデータベースに保存される。上面図404(天井
から見下ろす)における3つの被写体の位置もまた、上面図404に示されている。上述のように、実空間のエリア内の被写体の位置は、それぞれの被写体データ構造320によって識別される。被写体データ構造は、実空間のエリアの3次元(x、y、z)における関節の位置を含む。別の実施形態では、関節の位置または被写体の他の特徴が2次元(略して2D)画像空間(x、y)で表される。第2の先行する識別間隔において追跡される被写体442は、図4Bに示されるように、時間t_1において第1の先行する識別間隔では欠落している。側面図(402)及び上面図(404)の両方は、第1の先行する識別間隔において追跡された被写体440及び444を示す。候補被写体442Aは、図4Cに示すように、時間t_2における現在の識別間隔において位置特定される。候補位置特定被写体は、側面図402及び上面図404で見ることができる。
【0114】
開示される技術は、被写体連続性分析を実行して、候補位置特定被写体442Aが現在の識別間隔中に実空間のエリアに入った新たな被写体であるかどうか、または候補位置特定被写体442Aが第2の先行する識別間隔において追跡されたが第1の先行する識別間隔において欠落している欠落追跡被写体442であるかどうかを判定する。
【0115】
図5は、現在の識別間隔から位置特定された1つの候補位置特定被写体に対して被写体連続性を実行するための例示的な処理ステップを有するフローチャートを示す。処理はステップ502で開始する。システムは、時間t_2において、現在の識別サイクル内の被写体を位置特定する。一実施形態では、システムは、上述の関節分析を使用して、関節のコンステレーションとして被写体を位置特定する。別の実施形態では、システムは、顔の特徴等の被写体の他の特徴を独立して、または関節と組み合わせて使用して、実空間のエリア内の被写体を位置特定することができる。
【0116】
ステップ506において、処理は、t_2における現在の識別間隔において位置特定される被写体を、時間t_1における第1の先行する識別間隔において位置特定される追跡被写体とマッチングさせる。一実施形態では、処理は、被写体追跡エンジン110によって適用されるロジックを使用して、実空間のエリア内の被写体の候補関節及び追跡運動を組み合わせることによって被写体を作成する。このことは、2017年12月19日出願の米国特許出願第15/847,796号(現在は2018年8月21日発行の米国特許第10,055,853号)の「画像認識エンジンを使用した被写体の識別及び追跡」に提示されており、同出願は参照により本明細書に組み込まれる。ステップ508において、システムは、現在の識別間隔内において位置特定される全ての被写体が、第1の先行する識別間隔において追跡被写体とマッチングするかどうかを判定する。全ての被写体がマッチングする場合、システムは、次の識別間隔の間、ステップ504及び506を繰り返す。一実施形態では、このステップにおいて、システムは、現在のセット内の位置特定被写体の数が、複数の過去の間隔内の第1の先行する識別間隔からの位置特定被写体の数とマッチングしない条件を検出する。該条件が真である場合(ステップ508)、システムは、現在のセット内の位置特定被写体の内の少なくとも1つを、第1の先行する識別間隔に先行する複数の過去の先行する識別間隔内の第2の先行する識別間隔からの追跡被写体のセットと比較する。
【0117】
現在の識別間隔からの候補位置特定被写体が第1の先行する識別間隔におけるどの追跡被写体ともマッチングしない場合、開示された技術は、第2の先行する識別間隔において位置特定され追跡されたが、第2の先行する識別間隔に続く第1の先行する識別間隔において欠落した欠落追跡被写体が存在するかどうかを判定する。第2の先行する識別間隔で追跡されるが、第1の先行する識別間隔で欠落している、欠落追跡被写体を識別する場合、処理はステップ516に進む。そうではなく、システムが第2の先行する識別間隔において欠落追跡被写体を識別しない場合、システムは、この被写体に新しい追跡識別子を割り当てることによって、現在の識別間隔から位置特定された候補位置特定被写体の追跡を
開始する。これは、第1の先行する識別間隔内の全ての追跡被写体が第2の先行する識別間隔内の対応する追跡被写体とマッチングする場合である。
【0118】
図4A図4Cに示される例では、被写体442A(図4Cに示される)は、現在の識別間隔から位置特定された候補位置特定被写体であり、被写体442(図4Aに示される)は、欠落追跡被写体である。ステップ512において、システムが、欠落追跡被写体は存在しないと判定した場合、候補位置特定被写体442Aには固有追跡識別子が割り当てられ、システムは、現在の識別間隔中に被写体の追跡を開始する。
【0119】
欠落追跡被写体と候補位置特定被写体とをマッチングさせる処理については、以下の処理フローのステップで説明する。処理ステップ516では、時間制約ヒューリスティックを適用してから、現在の識別間隔から位置特定された候補位置特定被写体の位置を、第2の先行する識別間隔における欠落追跡被写体の位置にマッチングさせる。システムは、例えば、候補位置特定被写体の位置のタイムスタンプと、欠落追跡被写体の位置のタイムスタンプの差を計算する。タイムスタンプは識別間隔の識別子であってもよいし、複数の画像キャプチャ・サイクルを含む識別間隔内の特定のタイムスタンプであってもよい。例えば、タイムスタンプは、現在の識別間隔から位置特定された候補被写体に対してt_2として、及び第2の先行する識別間隔において位置特定された欠落追跡被写体に対してt_0として表すことができる。識別間隔がカメラの画像キャプチャ・サイクルとマッチングする場合、タイムスタンプは、画像キャプチャ・サイクルにおいて画像が取り込まれる時間とマッチングすることができる。タイムスタンプ間の差、すなわちt_2-t_0は、タイミング閾値と比較される。一例では、タイミング閾値は10秒である。10秒よりも長い、または短いタイミング閾値の他の値を使用することができることが理解される。この時間差の計算には、画像キャプチャ・サイクルにおける被写体の関節検出のタイムスタンプを用いることもできる。タイムスタンプの差がタイミング閾値よりも小さい場合、システムは、候補位置特定被写体の位置と欠落追跡被写体の位置とをマッチングさせる。
【0120】
システムは、実空間のエリア内における候補位置特定被写体の位置(p_2)と、欠落追跡被写体の位置(p_0)との間の距離、すなわち、(p_2-p_1)を計算する。上述したような関節分析を使用する一実施形態では、距離が候補位置特定被写体及び欠落追跡被写体の関節のコンステレーション内の関節の位置を使用して計算される。距離は、関節のそれぞれのコンステレーションにおける対応する関節を表す2点間のユークリッド距離として計算できる。ユークリッド距離は3D実空間と2D画像空間の両方で計算できる。ユークリッド距離は、被写体が第2の先行する識別間隔における初期位置から現在の識別間隔における新しい位置に移動した距離を表す。次いで、この距離を距離閾値と比較する。該距離が距離閾値未満である場合、候補位置特定被写体は、欠落追跡被写体とマッチングされる。距離閾値の距離の例は1メートルである。1メートルを超える、または1メートル未満の距離閾値の他の値を使用することができる。候補位置特定被写体の位置と、欠落追跡被写体の位置とのタイムスタンプ間の差異が時間閾値よりも大きいか、候補位置特定被写体と欠落追跡被写体との間の距離が距離閾値よりも大きい場合(ステップ518)、システムスタートは、欠落追跡被写体に候補被写体をマッチングさせず、ステップ514において、それを新たな位置特定被写体として識別することができる。そうでない場合には、ステップ520において、候補位置特定被写体と欠落追跡被写体とをリンクする処理が継続される。
【0121】
ステップ520では、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔で位置特定された欠落追跡被写体にリンクする前に、“シンク”制約を適用する。シンク制約は、候補位置特定被写体の位置、及び、欠落追跡被写体の位置と、実空間のエリア内からの入口または出口等の被写体のソース及びシンクを提供することができる実空間のエリア内の位置までの間の距離を計算することを含むことができる。一
実施形態では、距離計算が入口または出口領域の境界位置を使用する。該位置までの候補位置特定被写体の距離、すなわちd(p_2-sink)、及び、該位置までの欠落追跡被写体の距離、すなわちd(p_0-sink)が、距離閾値と比較される。これらの距離の何れかが距離閾値未満である場合(ステップ522)、ステップ514で、システムは、候補位置特定被写体の追跡を開始できる。ステップ520における距離閾値の例は1メートルであり、他の実施形態では、1メートルより大きいか、または1メートル未満の距離閾値を使用することができる。一実施形態では、閾値は、識別間隔の長さ(または持続時間)と、被写体がその持続時間内で移動することができる距離とに依存する。シンク制約が満足される場合、すなわち、候補位置特定被写体及び欠落追跡被写体の両方が、入口及び出口から距離閾値より更に遠くに位置している場合、システムは、現在の識別間隔から位置特定された候補位置特定被写体を使用して、データベース内の欠落追跡被写体を更新することができる(ステップ524)。処理は、ステップ526で終了する。

[複数の新規被写体連続性分析]
【0122】
開示された技術を使用して被写体連続性分析を実行するための第2の例示的なシナリオが、図6A及び6Bに提示されている。この例は第1の先行する識別間隔からの追跡被写体のセットがN個のメンバーを含み、現在の識別間隔からの位置特定被写体のセットがN個のメンバーと1または複数の候補位置特定被写体とを含む場合を想定する。システムは、現在の識別間隔からの位置特定被写体のセットのN個のメンバーを、第1の先行する識別間隔からの追跡被写体のセットのN個のメンバーにリンクする処理を、より効率的に行うために、ロジックを使用することができる。この効率改善は、現在の識別間隔からの位置特定被写体のセットのメンバーに優先順位を付けて、位置特定被写体の相対位置を使用して、第1の先行する識別間隔からのN個の追跡被写体のセットにリンクするために、N個の位置特定被写体のセットを識別することによって達成することができる。一実施形態では、N個の位置特定被写体のセットを識別するための、現在の識別間隔からの位置特定被写体のセットのメンバーの優先順位付けは、現在の識別間隔からの位置特定被写体のペア間の距離を計算することを含むことができる。次いで、システムは、計算された距離を1メートル等の距離第2閾値と比較することによって、N個の位置特定被写体のセットを識別する。距離閾値を満たす位置特定されたメンバーは、距離閾値を満たさないメンバーよりも高い優先順位で、先行する識別間隔について追跡されたメンバーとのマッチングについて評価され得る。
【0123】
図6A及び図6Bに示す例は、図6Aに示されるように、t_1における第1の先行する識別間隔において3つの被写体640、642及び644を追跡することによって、このシナリオを示す。3つの追跡被写体640、642、及び644は、それらの固有追跡識別子と共に被写体データベース150に格納される。5つの被写体640A、642A、644A、646及び648は、図6Bに示されるように、t_2における現在の識別間隔において位置特定される。現在の識別間隔において位置特定される被写体のセットは、第1の先行する識別間隔において追跡されない複数のメンバーの被写体を有する。システムは、先行する識別間隔において追跡されるデータベースに存在する追跡被写体のセットを比較して、先行する識別間隔で追跡されない複数の被写体が現在の識別間隔において位置特定されるという条件を検出する。
【0124】
システムは、現在の識別間隔において位置特定される被写体のセットSを決定するために、現在の識別間隔から位置特定される被写体のセット(N+2つ以上の候補位置特定被写体)に優先順位を付ける。一実施形態では、セットSの濃度(cardinality)が先行する識別間隔における追跡被写体のセットNの濃度に等しい。他の実施形態では、セットSの濃度は、先行する識別間隔における追跡被写体のセットNよりも小さくすることができる。一実施形態では、セットSのメンバーシップが、セットS内の任意の2つのメンバー
間の3次元または2次元ユークリッド距離が距離閾値未満であるように決定される。距離閾値の例は、1メートルである。図6Bにおいて、円610は、被写体640A、642A、及び644Aを含む現在の識別間隔における位置特定被写体のセットSを識別する。この例では、セットSの濃度が先行する識別間隔における追跡被写体のセットNの濃度に等しい。
【0125】
システムは、現在の識別間隔における位置特定被写体のセットSのメンバーを、第1の先行する識別間隔における追跡被写体のセットNのメンバーにマッチングさせるロジックを含む。セットSのメンバーが追跡被写体のセットNのメンバーとマッチングする場合、システムは、マッチングした位置特定被写体をマッチングした追跡被写体にリンクし、マッチングした位置特定被写体を使用してデータベース内の追跡被写体を更新する。一実施形態では、位置特定被写体のセットSのメンバーが、関節のそれぞれのコンステレーション内の関節の位置を使用して、第1の先行する識別間隔における追跡被写体のセットNのメンバーにマッチングされる。位置特定被写体のセットSのメンバーの関節の位置と追跡被写体のセットNの関節の位置間の距離は第2の閾値(例えば、1メートル)と比較される。現在の識別間隔における位置特定被写体のセットSの各々のメンバーにおいて第1の先行する識別間隔における追跡被写体と固有なマッチングがある場合、システムは、位置特定被写体のセットSのマッチングしたメンバーを使用して、データベース内の追跡被写体を更新する。追跡被写体を、現在の識別間隔における位置特定被写体にリンクする前に、システムは、マッチングした位置特定被写体及び追跡被写体に上述のようなシンク制約を適用して、それらが第3の閾値距離を超えて実空間のエリアの出口及び入口から離れていることを判定することができる。
【0126】
図7は、上述のシナリオにおいて被写体連続性を実行するための処理フローチャートを示す。処理はステップ702で開始する。ステップ704で、システムは現在の識別間隔内における実空間のエリア内の被写体の位置を特定する。ステップ706において、現在の識別間隔における位置特定被写体の数が、第1の先行する識別間隔における追跡被写体の数と比較される。例えば、現在の識別間隔において位置特定される5つの被写体を示す図6Bの例示図を考える。先行する第1の先行する識別間隔において追跡された3つの被写体があったと仮定する。現在の識別間隔における位置特定被写体の数を第1の先行する識別間隔における追跡被写体の数と比較することによって、2以上の候補被写体が現在の識別間隔において位置特定されると判定する(ステップ708)。一実施形態では、システムは、ステップ706において、現在の識別間隔における位置特定被写体の数を、先行する識別間隔における追跡被写体の数と比較して、2以上の候補被写体が現在の識別間隔において位置特定されることを判定する。言い換えれば、現在の識別間隔における位置特定被写体の数は、1に先行する識別間隔における追跡被写体の数を加えたものより大きい。現在の識別間隔に1つの追加のメンバーしかない場合、図5に上記で提示された手法を適用することができる。現在の識別間隔に1つの追加のメンバーしか存在せず、そのメンバーが(トイレ等の)実空間のエリア内の指定非監視位置の近くに位置している場合、以下の図9に示す手法を使用することができる。
【0127】
システムは、以下の例において説明するように、現在の識別間隔における位置特定被写体のセットSを識別する(ステップ710)。M_2個の被写体が時間t_2で現在の識別間隔において位置特定され、それ故、M_2個の被写体は、0,1,2,・・・,M_2-1としてインデックス付けされ、且つ、M_0個の被写体が、時間t_1で第1の先行する識別間隔において追跡され、0,1,2,・・・,M_0-1とインデックス付けされる場合を想定する。更に、i=0,1,2,・・・,M_2-1に対して、現在の識別間隔における位置特定被写体の位置がp_{2,i}と表され、i=0,1,2,・・・,M_0-1に対して、第1の先行する識別間隔における追跡被写体の位置が、q_{0,i}と表される。ステップ710では、任意の2つの被写体p_{2,i}及びp_
{2,j}について、間隔d(p_{2,i},p_{2,j})が第2の閾値、例えば1メートル未満であるように、現在の識別間隔における位置特定被写体のセットSが決定される。距離は、3D実空間または2D画像空間において、それぞれの被写体の関節のコンステレーションにおける関節の位置を使用して計算することができる。1メートルより大きいかまたは小さい距離閾値の他の値が使用され得ることが理解される。
【0128】
次に、ステップ712において、位置特定被写体のセットSのメンバーが、第1の先行する識別間隔における追跡被写体にマッチングされる。セットSの各位置特定被写体p_{2,i}メンバーの位置は、距離d(p_{2,i},q_{0,j})を決定するために、第1の先行する識別間隔における追跡被写体q_{0,j}の位置にマッチングされる。距離“d”が1メートル等の第2の閾値未満であり、位置特定被写体のセットS内の1つのメンバーp_{2,i}が上記の閾値を使用して、1つの追跡被写体q_{0,j}のみにマッチングする場合、システムは、位置特定被写体と、先行する識別間隔において位置特定された追跡被写体との間にマッチングがあると判定する(ステップ714)。
【0129】
位置特定被写体のセットSのメンバーが、上記の処理ステップにおいて追跡被写体とマッチングしない場合、ステップ716において、位置特定被写体に新しい追跡識別子を割り当てることができる。次いで、システムは、現在の識別間隔において、位置特定被写体の追跡を開始することができる。被写体は、固有追跡識別子とともに被写体データベースに格納される。
【0130】
現在の識別間隔における位置特定被写体のセットSのメンバーが、第1の先行する識別間隔における追跡被写体とマッチングする場合、システムは、位置特定被写体のセットSの他のメンバーはその追跡被写体にマッチングしないと判定する。追跡被写体q_{0,j}に一意にマッチングする位置特定被写体のセットSのメンバーp_{2,i}について、ステップ718において、シンク制約が適用される。シンク制約は、図5のフローチャートのステップ520に記載されているように、位置特定被写体または追跡被写体のセットSのメンバーが、実空間のエリアへの入口または実空間のエリアからの出口に第3の閾値距離だけ近いかどうかを決定する。位置特定被写体のセットSのメンバー及び追跡被写体についてシンク制約が満たされる(ステップ720)場合(すなわち、位置特定被写体のセットSのメンバー及び追跡被写体の両方がシンクから第3の閾値よりも遠い)、第1の先行する識別間隔における追跡被写体q_{0,j}は、位置特定被写体のセットSのメンバーp_{2,i}を使用して、データベース内で更新される(ステップ722)。処理は、ステップ724で終了する。

[指定非監視位置に対する被写体連続性分析]
【0131】
開示された技術を使用して被写体連続性分析を実行するための第3の例示的なシナリオが、図8A図8Cに提示される。この例は、被写体が実空間のエリア内のトイレ等の指定非監視位置に移動するときの被写体連続性を示す。被写体が指定非監視位置に存在する以下の1または複数の識別間隔において、そのとき被写体は追跡されない。システムは、被写体が指定非監視位置から移動し、1以上のカメラ114の視野内に位置した後続の識別間隔中に、欠落追跡被写体を再度位置特定する。
【0132】
図8Aは、トイレ等の指定非監視位置804を含む実空間のエリアの上面図(下向きに見た)を示す。指定非監視位置804は、カメラ114の視野内にはない。被写体は、ドア806を介して指定非監視位置に出入りすることができる。図8Aに示されるように、時間t_0における第2の先行する識別間隔において、追跡被写体のセットには、5つの被写体840、842、844、846、及び848が存在する。時間t_1における第1の先行する識別間隔では、図8Bに示されるように、追跡被写体のセット内に4つの追
跡被写体840、842、844、及び846が存在する。第2の先行する識別間隔における追跡被写体848は、第1の先行する識別間隔において欠落している。欠落追跡被写体848の位置は、被写体848が欠落している第1の先行する識別間隔より前の第2の先行する識別間隔における指定非監視位置に近い。
【0133】
図8Cは、時間t_1における第1の先行する識別間隔より後の時間t_2における現在の識別間隔において、指定非監視位置804の近くに位置する候補位置特定被写体848Aを示す。現在の識別間隔において候補位置特定被写体848Aの追跡を開始する前に、開示された技術は、被写体連続性分析を実行して、候補位置特定被写体848Aを欠落追跡被写体848にリンクする。欠落追跡被写体848は、第2の先行する識別間隔において位置特定されていたが、第2の先行する識別間隔に続く第1の先行する識別間隔において位置特定されていなかった。候補位置特定被写体が欠落追跡被写体とマッチングする前に、開示された技術は、第2の先行する識別間隔において指定非監視位置の近くに被写体(欠落追跡被写体848以外)が存在せず、第1の先行する識別間隔において指定非監視位置に他の被写体(欠落追跡被写体848以外)が入っていないと判定することができる。
【0134】
システムは、欠落追跡被写体848のみが第2の先行する識別間隔において非監視位置の近くに位置していると判定するために、第2の先行する識別間隔におけるすべての追跡被写体の位置を指定非監視位置の位置にマッチングさせる。一実施形態では、第2の先行する識別間隔における追跡被写体の位置とドア806上の(3D実空間または2D画像空間内の)点との間の距離が計算される。システムは、どの追跡被写体が指定非監視位置に近いかを、指定非監視位置804とのそれぞれの距離を第3の閾値と比較することによって判定する。第3の閾値距離の値の一例は、1メートルである。欠落追跡被写体848が第2の先行する識別間隔においてドア806に近い唯一の被写体であり、候補被写体848Aが指定非監視位置の近くに位置する現在の識別間隔から位置特定された唯一の候補位置特定被写体である場合、システムは、欠落追跡被写体848を候補位置特定被写体848Aにリンクする。システムは、現在の識別間隔における候補位置特定被写体848Aを使用してデータベース内の欠落追跡被写体848を更新し、現在の識別間隔において被写体848の追跡を続ける。
【0135】
図9は、候補位置特定被写体と欠落追跡被写体の両方がそれぞれの識別間隔において指定非監視位置の近くに位置する場合に、現在の識別間隔から位置特定された候補位置特定被写体を、第2の先行する識別間隔における欠落追跡被写体にリンクする処理ステップを示すフローチャートである。処理はステップ902で開始する。処理ステップ904、906、908、910、及び912は、それぞれ処理ステップ504、506、508、510、及び512について説明したのと同様の動作を実行する。ステップ916において、第2の先行する識別間隔における追跡被写体と、現在の識別間隔における位置特定被写体との、指定非監視位置までの距離が計算される。第2の先行する識別間隔における追跡被写体のセットにM_0個の被写体が存在し、追跡被写体が0,1,2,・・・,k-1とインデックス付けされると仮定する。追跡被写体の位置は、それぞれ、p_0,p_1,p_2,・・・,p_{k-1}として与えられる。システムは、指定非監視位置の位置に対する追跡被写体の距離をd(p_i,B)として計算し、ここで、Bは、3次元実空間または2次元画像空間における指定非監視位置の位置である。
【0136】
指定非監視位置に対する追跡被写体の距離は、1メートル等の距離閾値と比較される。第2の先行する識別間隔における1つの追跡被写体のみが、第3の閾値よりも指定非監視位置の近くに位置する場合、現在の識別間隔において位置特定された被写体の位置と指定非監視位置の位置との間の同様の距離計算が実行される。現在の識別間隔において位置特定された1つの被写体のみが、非監視指定位置により近く位置する場合、ステップ918
における条件は真になる。そうでなければ、システムは、現在の識別間隔からの候補位置特定被写体に新しい追跡識別子を割り当て、該被写体の追跡を開始することができる(ステップ914)。
【0137】
第2の先行する識別間隔において位置特定された欠落追跡被写体を、現在の識別間隔から位置特定された候補位置特定被写体にリンクすることの一部として、追加の制約をステップ920でチェックすることができる。距離閾値よりも指定非監視位置の近くに位置していた(ステップ910での欠落追跡被写体を除く)第2の先行する識別間隔及び第1の先行する識別間隔からの他の追跡被写体が、現在の識別間隔において欠落していないと判定される。これは、候補位置特定被写体と欠落追跡被写体との間の不正確なマッチングを回避するためである。第2の先行する識別間隔において指定非監視位置の近くに位置する1つの追跡被写体のみが、第1の先行する識別間隔において追跡されず、1つの候補被写体のみが、現在の識別間隔において指定非監視位置の近くに位置する場合、システムは以下の制約をチェックする。処理ステップ904~912を実行することによって、他の追跡被写体が指定非監視位置に入らなかったことを判定する(ステップ922)。他の追跡被写体が第2の先行する識別間隔及び第1の先行する識別間隔において指定非監視位置に入らなかった場合、システムは、第2の先行する識別間隔において位置特定された欠落追跡被写体を、現在の識別間隔から位置する位置特定された候補位置特定被写体を用いてリンクする(ステップ924)。次いで、システムは、現在の識別間隔において、候補位置特定被写体の位置を使用して、欠落追跡被写体の追跡を続ける。処理は、ステップ926で終了する。

[ネットワーク構造]
【0138】
図10は、ネットワーク・ノード104上でホストされる被写体連続性処理エンジン180をホストするネットワークのアーキテクチャを示す。システムは、図示された実施形態では複数のネットワーク・ノード101a、101b、101n、及び102を含む。斯かる実施形態では、ネットワーク・ノードは処理プラットフォームとも呼ばれる。処理プラットフォーム(ネットワーク・ノード)103,101a~101n,及び102、並びに、カメラ1012,1014,1016,・・・,1018は、ネットワーク1081に接続される。同様のネットワークが、ネットワーク・ノード103上でホストされるマッチング・エンジン170をホストする。
【0139】
図10は、ネットワークに接続された複数のカメラ1012,1014,1016,・・・,1018を示す。多数のカメラを特定のシステムに配備することができる。一実施形態では、カメラ1012~1018が、イーサネット(登録商標)ベースのコネクタ1022,1024,1026,及び1028をそれぞれ使用して、ネットワーク181に接続される。斯かる実施形態では、イーサネット・ベースのコネクタがギガビット・イーサネットとも呼ばれる1ギガビット/秒のデータ転送速度を有する。他の実施形態では、カメラ114がギガビット・イーサネット(登録商標)よりも高速または低速のデータ転送速度を有することができる他のタイプのネットワーク接続を使用してネットワークに接続されることを理解されたい。また、代替の実施形態では、1組のカメラを各処理プラットフォームに直接接続することができ、処理プラットフォームをネットワークに結合することができる。
【0140】
記憶サブシステム1030は、本発明の特定の実施形態の機能を提供する基本的なプログラミング及びデータ構成を記憶する。例えば、被写体連続性処理エンジン180の機能を実施する様々なモジュールを、記憶サブシステム1030に格納することができる。記憶サブシステム1030は、非一時的データ記憶媒体を備えるコンピュータ可読メモリの一例であり、追跡被写体を用いて位置特定被写体を識別するロジック、実空間のエリア内
の被写体を、ユーザ・アカウントにリンクし、画像内に描写された追跡被写体の位置を決定し、本明細書で説明される処理によって、実空間のエリア内でクライアント・アプリケーションを実行するモバイル・コンピューティング・デバイスの識別することにより追跡被写体をユーザ・アカウントにマッチングさせるロジックを含む、本明細書で説明されるデータ処理機能及び画像処理機能の全てまたは任意の組み合わせを実行するための、コンピュータによって実行可能なメモリに記憶されるコンピュータ命令を備える。他の例では、コンピュータ命令は、コンピュータ可読の非一時的データ記憶媒体または媒体を含む、携帯用メモリを含む他のタイプのメモリに記憶することができる。
【0141】
これらのソフトウェア・モジュールは一般に、プロセッサ・サブシステム1050によって実行される。ホスト・メモリ・サブシステム1032は、通常、プログラム実行中の命令及びデータの記憶のためのメイン・ランダム・アクセス・メモリ(RAM)1134と、固定命令が記憶される読み出し専用メモリ(ROM)1036とを含む幾つかのメモリを含む。一実施形態では、RAM 1034が在庫イベント位置処理エンジン180によって生成されたポイント・クラウド・データ構造のタプルを格納するためのバッファとして使用される。
【0142】
ファイル記憶サブシステム1040は、プログラム及びデータ・ファイルのための永続的記憶を提供する。例示的な一実施形態では、記憶サブシステム1040が、番号1042によって識別されるRAID0(独立ディスクの冗長配列)構成内に4つの120ギガバイト(GB)ソリッド・ステート・ディスク(SSD)を含む。該例示的な実施形態では、マップ・データベース140内のマップ・データ、在庫イベント・データベース150内の在庫イベント・データ、在庫商品アクティビティ・データベース160内の在庫商品アクティビティ・データ、及びRAMにないアクショナブル・デジタル・レシート・データベース170内のデジタル・レシート・データが、RAID0に記憶される。該例示的な実施形態では、ハードディスク・ドライブ1046はRAID0 1042ストレージよりもアクセス速度が遅い。ソリッド・ステート・ディスク(SSD)1044は、在庫イベント位置処理エンジン180のためのオペレーティング・システム及び関連ファイルを含む。
【0143】
例示的な構成では、4つのカメラ1012,1014,1016,1018が、処理プラットフォーム(ネットワーク・ノード)103に接続される。各カメラは、カメラによって送られた画像を処理するために、専用グラフィックス処理ユニットGPU1 1062,GPU2 1064,GPU3 1066,及びGPU4 1068を有する。1つの処理プラットフォームにつき、3つより少ないまたは多いカメラを接続することができると理解される。従って、各カメラが、カメラから受信した画像フレームを処理するための専用GPUを有するように、より少ないまたはより多いGPUがネットワーク・ノード内に構成される。プロセッサ・サブシステム1050、記憶サブシステム1030、及びGPU1062,1064、及び1066は、バス・サブシステム1054を使用して通信する。
【0144】
ネットワーク・インタフェース・サブシステム1070は、処理プラットフォーム(ネットワーク・ノード)104の一部を形成するバス・サブシステム1054に接続される。ネットワーク・インタフェース・サブシステム1070は、他のコンピュータ・システムにおける対応するインタフェース・デバイスへのインタフェースを含む、外部ネットワークへのインタフェースを提供する。ネットワーク・インタフェース・サブシステム1070は、ケーブル(または配線)を使用して、またはワイヤレスで、処理プラットフォームがネットワークを介して通信することを可能にする。実空間のエリア内のモバイル・コンピューティング・デバイス120によって発信されたワイヤレス信号1075は、マッチング・エンジン170による処理のために、ネットワーク・インタフェース・サブシス
テム1070によって(ワイヤレス・アクセス・ポイントを介して)受信される。ユーザ・インタフェース出力デバイス及びユーザ・インタフェース入力デバイスのような幾つかの周辺デバイスも、処理プラットフォーム104の一部を形成するバス・サブシステム1054に接続されている。これらのサブシステム及びデバイスは、説明の明確性を改善するために、図140には意図的に示されていない。バス・サブシステム1054は、単一のバスとして概略的に示されているが、バス・サブシステムの代わりの実施形態は複数のバスを使用することができる。
【0145】
一実施形態では、カメラ114が、1288×964の解像度、30FPSのフレームレート、及び1.3メガピクセル/イメージで、300mm~無限大の作動距離を有する可変焦点レンズ、98.2°~23.8°の1/3インチセンサによる視野を有するChameleon3 1.3 MP Color USB3 Vision(Sony ICX445)を使用して実装することができる。

[被写体識別分析]
【0146】
以下の説明は、追跡被写体をそれぞれのユーザ・アカウントにマッチングさせることによって、追跡被写体を識別するためのアルゴリズムの例を提供する。上述したように、開示された技術は、被写体連続性分析を実行することによって、現在の識別間隔における位置特定被写体を、先行する識別間隔における追跡被写体にリンクする。レジ無し店舗の場合、被写体は店舗の通路及びオープンスペース内を移動し、棚から商品を取り出す。開示された技術は、追跡被写体によって取られた商品を、それぞれのショッピングカートまたはログ・データ構造に関連付ける。開示された技術は、追跡被写体を識別し、それらをそれぞれのユーザ・アカウントにマッチングさせるために、以下のチェックイン技術の1つを使用する。ユーザ・アカウントは、識別された被写体のための好ましい支払い方法等の情報を有する。開示された技術は、ショッピングストアを離れる識別された被写体に応答して、ユーザ・アカウント内の好ましい支払い方法に自動的に課金することができる。一実施形態では、開示された技術は、現在の識別間隔における位置特定被写体を、過去の識別間隔において識別された(またはチェックインされた)被写体(ユーザ・アカウントにリンクされた被写体)と比較することに加えて、現在の識別間隔内の位置特定被写体を、過去の識別間隔における追跡被写体と比較することを開示する。別の実施形態では、開示された技術は、現在の識別間隔における位置特定被写体を、過去の識別間隔で識別された(または追跡及びチェックインされた)被写体(ユーザーアカウントにリンクされた被写体)と比較する代わりに、現在の識別間隔における位置特定被写体を、過去の間隔における追跡被写体と比較する。
【0147】
ショッピングストアでは、棚及び他の在庫陳列構造は、ショッピングストアの側壁に沿って、または通路を形成する列に、または2つの構成の組合せ等、様々な方法で配置することができる。図11は、通路116aの一端から見た、通路116aを形成する棚の配置を示す。2つのカメラ、カメラA 206及びカメラB 208は、棚等の在庫陳列構造の上のショッピングストアの天井230及びフロア220から所定の距離で通路116aの上に配置される。カメラ114は、実空間内の在庫陳列構造及びフロアエリアのそれぞれの部分を包含する視野を有し、その上に配置されたカメラを備える。被写体として位置特定された候補関節のセットのメンバーの実空間内の座標は、フロアエリア内の被写体の位置を識別する。図11では、被写体240が、モバイル・コンピューティング・デバイス118aを持って、通路116a内のフロア220上に立っている。モバイル・コンピューティング・デバイスは、ワイヤレス・ネットワーク181を介して、信号を送受信できる。一実施例では、モバイル・コンピューティング・デバイス120は、例えば、ワイヤレス・アクセス・ポイント(WAP)250及び252を介して、Wi-Fiプロトコル、または、Bluetooth、超広帯域無線、ZigBee等の他のプロトコルを用
いて、ワイヤレス・ネットワークを介して通信する。
【0148】
ショッピングストアの例示的な実施形態では、実空間は、在庫にアクセスし得るショッピングストア内のフロア220の全てを含むことができる。カメラ114は、フロア220及び棚のエリアが少なくとも2つのカメラによって見えるように配置され、配向される。カメラ114は、また、棚202及び204の前のフロアスペースを覆う。カメラの角度は急峻な視点、真っ直ぐな視点及び角度の付いた視点の両方を有するように選択され、これにより、顧客のより完全な身体画像が得られる。一実施形態では、カメラ114が、ショッピングストア全体を通して、8フィート高さ以上で構成される。
【0149】
図11において、カメラ206及び208は、重なり合う視野を有し、それぞれ重なり合う視野216及び218を有する棚A 202と棚B 204との間の空間を覆う。実空間内の位置は、実空間座標系の(x,y,z)点として表される。“x”及び“y”は、ショッピングストアのフロア220とすることができる2次元(2D)平面上の位置を表し、値“z”は、1つの構成ではフロア220における2Dプレーン上の点の高さである。
【0150】
図12は、図11の上から見た通路116aを示し、通路116a上のカメラ206及び208の位置の例示的な配置を更に示す。カメラ206及び208は、通路116aの両端の近くに配置される。カメラA 206は棚A 202から所定の距離に配置され、カメラB 208は棚B 204から所定の距離に配置される。3つ以上のカメラが通路上に配置される別の実施形態では、カメラは互いに等しい距離に配置される。このような実施形態では、2つのカメラが両端の近くに配置され、第3のカメラが通路の中央に配置される。多数の異なるカメラ配置が可能であることが理解される。

[マッチング・エンジン]
【0151】
マッチング・エンジン170は、実空間のエリア内でクライアント・アプリケーションを実行しているモバイル・デバイス(追跡被写体によって携行される)の位置を識別することによって、追跡被写体をそれぞれのユーザ・アカウントとマッチングさせることにより識別するロジックを含む。一実施形態では、マッチング・エンジンが追跡被写体をユーザ・アカウントとマッチングさせるために、複数の手法を、独立してまたは組み合わせて使用する。このシステムは、ユーザに関するバイオメトリック識別情報を維持することなく実施可能であり、それにより、アカウント保持者に関するバイオメトリック識別情報は、そのような情報の配布によって引き起こされるセキュリティ及びプライバシーの懸念に晒されない。
【0152】
一実施形態では、顧客(または被写体)がショッピングストアに入ると、パーソナル・モバイル・コンピューティング・デバイス上で実行されるクライアント・アプリケーションを使用してシステムにログインし、モバイル・デバイス上のクライアント・アプリケーションに関連付けられる真正なユーザ・アカウントを識別する。次に、システムは、画像データベース166内の未割り当てセマフォ画像のセットから選択された「セマフォ」画像を、モバイル・デバイス上で実行されているクライアント・アプリケーションに送る。セマフォ画像は、同じ画像が、システムがユーザ・アカウントを追跡被写体とマッチングさせるまで、店舗内の別のクライアント・アプリケーションで使用するために開放されないため、ショッピングストア内のクライアント・アプリケーションに固有である。そのマッチング後は、セマフォ画像は再び使用可能になる。クライアント・アプリケーションは、モバイル・デバイスにセマフォ画像を表示させ、セマフォ画像の表示は、システムによって検出されるモバイル・デバイスによって発せられる信号である。マッチング・エンジン170は、画像認識エンジン112a-nまたは別個の画像認識エンジン(図1には不
図示)を用いて、セマフォア画像を認識し、ショッピングストア内での該セマフォアを表示するモバイル・コンピューティング・デバイスの位置を決定する。マッチング・エンジン170は、モバイル・コンピューティング・デバイスの位置を、追跡被写体の位置にマッチングさせる。次に、マッチング・エンジン170は、追跡被写体(被写体データベース140に記憶されている)を、その被写体がショッピングストア内に存在する間、クライアント・アプリケーションにリンクされたユーザ・アカウント(ユーザ・アカウント・データベース164に記憶されている)にリンクする。追跡被写体とユーザ・アカウントをマッチングすることにより被写体を識別するために、バイオメトリック識別情報は使用されず、この処理のサポートには何も記憶されない。すなわち、この処理のサポートにおいて追跡被写体をユーザ・アカウントとマッチングさせる目的で、記憶されたバイオメトリック情報と比較するために使用される画像シーケンス内の情報はない。
【0153】
他の実施形態では、マッチング・エンジン170が、追跡被写体をユーザ・アカウントにリンクするために、モバイル・コンピューティング・デバイス120からの他の信号を、代替手段としてまたは組み合わせて使用する。斯かる信号の例には、実空間のエリア内のモバイル・コンピューティング・デバイスの位置、モバイル・コンピューティング・デバイスの加速度計及びコンパスから得られるモバイル・コンピューティング・デバイスの速度及び方向を識別するサービス位置信号が含まれる。
【0154】
幾つかの実施形態では、アカウント保有者に関する如何なるバイオメトリック情報も維持しない実施形態が提供されるが、システムは、バイオメトリック情報を使用して、未だリンクされていない追跡被写体をユーザ・アカウントにマッチングさせるのを支援することができる。例えば、一実施形態では、システムが、顧客の「毛髪の色」をユーザ・アカウント・レコードに記憶する。マッチング処理中に、システムは例えば、被写体の毛髪の色を追加の入力として使用して、被写体の曖昧さを解消し、追跡被写体をユーザ・アカウントにマッチングさせることができる。ユーザが赤色の毛髪を有し、実空間のエリア内またはモバイル・コンピューティング・デバイスの近傍に赤色の毛髪を有する被写体が1つしかない場合、システムは、ユーザ・アカウントにマッチングするように赤色の毛髪を有する被写体を選択することができる。マッチング・エンジンの詳細は、2019年1月23日出願の米国特許出願第16/255,573、「レジ無し店舗で買い物客をチェックインさせるシステム及び方法」に示されており、これは、参照により本明細書に組み込まれる。
【0155】
図13乃至図16Cのフローチャートは、単独で、またはマッチング・エンジン170によって組み合わせて使用可能な4つの手法の処理ステップを示す。

[セマフォ画像]
【0156】
図13は、実空間のエリア内の追跡被写体をそれぞれのユーザ・アカウントとマッチングすることによって被写体を識別する第1の手法のための処理ステップを示すフローチャート1300である。ショッピングストアの例では、被写体が棚と他のオープンスペースとの間の通路内で店内を移動する顧客(または買い物客)である。処理はステップ1302で開始する。被写体が実空間のエリアに入ると、被写体はモバイル・コンピューティング・デバイス上でクライアント・アプリケーションを開き、ログインを試みる。システムは、ステップ1304で、(例えば、ユーザ・アカウント・データベース164を照会することによって)ユーザ資格を検証し、クライアント・アプリケーションからのログイン通信を受け入れて、認証されたユーザ・アカウントをモバイル・コンピューティング・デバイスに関連付ける。システムは、クライアント・アプリケーションのユーザ・アカウントが追跡被写体にまだリンクされていないと判断する。システムは、ステップ1306で、モバイル・コンピューティング・デバイス上に表示するためのセマフォ画像をクライア
ント・アプリケーションに送信する。セマフォ画像の例には、赤い長方形またはピンクの象等のベタ一色の様々な形状が含まれる。様々な画像が、セマフォとして、好ましくは、画像認識エンジンによる高信頼度認識に適して、使用することができる。それぞれのセマフォ画像は、固有の識別子を持つことができる。処理システムは、ユーザ・アカウントを実空間のエリア内の追跡被写体とマッチングさせる前に、ユーザ・アカウントを識別するモバイル・デバイス上のクライアント・アプリケーションからのログイン通信を受け入れるロジックを含み、ログイン通信を受け入れた後、セマフォ画像のセットから選択されセマフォ画像をモバイル・デバイス上のクライアント・アプリケーションに送信する。
【0157】
一実施形態では、システムは、クライアント・アプリケーションに送信するために、画像データベース160から利用可能なセマフォ画像を選択する。セマフォ画像をクライアント・アプリケーションに送信した後、システムは、この画像が他のどのクライアント・アプリケーションにも割り当てられないように、画像データベース166内のセマフォ画像の状態を「割り当て済」に変更する。画像の状態は、追跡被写体をモバイル・コンピューティング・デバイスにマッチングさせる処理が完了するまで、「割り当て済」のまま維持される。マッチングが完了した後、状態は「利用可能」に変更され得る。これにより、所与のシステムにおけるセマフォの小さなセットの逐次交代使用が可能になり、画像認識問題が単純化される。
【0158】
クライアント・アプリケーションがセマフォ画像を受信し、モバイル・コンピューティング・デバイスに表示する。一実施形態では、クライアント・アプリケーションはまた、画像の可視性を高めるために、ディスプレイの輝度を増加させる。画像は、1または複数のカメラ114によって取得され、WhatCNNと呼ばれる画像処理エンジンに送られる。システムは、ステップ1308において、WhatCNNを使用して、モバイル・コンピューティング・デバイス上に表示されたセマフォ画像を認識する。一実施形態では、WhatCNNは、追跡被写体の手の分類を生成するために、画像内の指定された有界ボックスを処理するようにトレーニングされた畳み込みニューラル・ネットワークである。1つの訓練されたWhatCNNは、1つのカメラからの画像フレームを処理する。ショッピングストアの例示的な実施形態では、各画像フレーム内の各手関節について、WhatCNNは手関節が空であるかどうかを識別する。WhatCNNは、また、(画像データベース166内の)セマフォ画像識別子、または、手関節の中の在庫商品のSKU(在庫管理単位)番号、手関節の中の商品を示す信頼値が非SKU商品(すなわち、ショッピングストア在庫に属さない)、及び画像フレーム内の手関節の位置の状況を識別する。
【0159】
上述したように、重なり合う視野を有する2以上のカメラは、実空間における被写体の画像を取得する。単一の被写体の関節は、それぞれの画像チャネル内の複数のカメラの画像フレーム内に現れ得る。カメラ当たりのWhatCNNモデルは、被写体の手(手の関節によって表される)におけるセマフォ画像(モバイル・コンピューティング・デバイス上に表示される)を識別する。座標ロジックは、WhatCNNモデルの出力を、追跡被写体の左手及び右手のセマフォ画像の識別子(左手クラスID、右手クラスIDと呼ばれる)をリストする統合データ構造に結合する(ステップ1310)。システムは、追跡IDを左手クラスID及び右手クラスIDに、実空間での関節の位置を含むタイムスタンプとともにマッピングする辞書にこの情報を格納する。WhatCNNの詳細は、2018年2月27日出願の米国特許出願第15/907,112号、現在は2018年11月20日登録の米国特許第10,133,933、「画像認識を用いた商品を置くこと及び取ることの検出」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
【0160】
ステップ1312において、システムは、全ての追跡被写体の両手に対するWhatCNNモデルの出力を繰り返すことによって、クライアント・アプリケーションに送られた
セマフォ画像がWhatCNNによって認識されているかどうかをチェックする。セマフォ画像が認識されていない場合、システムは、ステップ1314で、リマインダをクライアント・アプリケーションに送信して、モバイル・コンピューティング・デバイス上にセマフォ画像を表示し、処理ステップ1308~1312を繰り返す。そうではなく、セマフォ画像がWhatCNによって認識されている場合、システムは、クライアント・アプリケーションに関連する(ユーザ・アカウント・データベース164からの)ユーザ・アカウントと、モバイル・コンピューティング・デバイスを保持する追跡被写体の追跡ID(被写体データベース150からの)とをマッチングさせる(ステップ1316)。一実施形態では、システムは、被写体が実空間のエリアに現れるまで、このマッピング(追跡ID-ユーザ・アカウント)を維持する。一実施態様では、システムは、固有の被写体識別子(例えば、被写体IDと呼ばれる)を識別された被写体に割り当て、その被写体識別子の追跡ID-ユーザ・アカウントのタプルへのマッピングを格納する。処理は、ステップ1318で終了する。

[サービス位置]
【0161】
図14のフローチャート1400は、追跡被写体をユーザ・アカウントとマッチングすることにより被写体を識別する第2の手法のための処理ステップを提示する。この手法は、モバイル・デバイスの位置を示すモバイル・デバイスが発信する無線信号を使用する。処理はステップ1402から始まり、システムは、ステップ1404で、上述したようにモバイル・コンピューティング・デバイス上のクライアント・アプリケーションからのログイン通信を受け入れて、認証されたユーザ・アカウントをモバイル・コンピューティング・デバイスにリンクさせる。ステップ1406において、システムは、一定間隔で実空間のエリア内のモバイル・デバイスからサービス位置情報を受信する。一実施形態では、システムは、位置を決定するために、モバイル・コンピューティング・デバイスの全地球測位システム(GPS)受信機から発信されるモバイル・コンピューティング・デバイスの緯度及び経度座標を使用する。一実施形態では、GPS座標から得られるモバイル・コンピューティング・デバイスのサービス位置が1メートルから3メートルの間の精度を有する。別の実施形態では、GPS座標から得られるモバイル・コンピューティング・デバイスのサービス位置が1メートルから5メートルの間の精度を有する。
【0162】
モバイル・コンピューティング・デバイスのサービス位置を決定するために、上記の手法と組み合わせて、または独立して、他の手法を使用することができる。斯かる手法の例には、モバイル・コンピューティング・デバイスがそれぞれのアクセス・ポイントからどれだけ離れているかを示すものとして、図11及び図12に示す例えば異なるワイヤレス・アクセス・ポイント(WAP)250及び252等からの信号強度を使用することが含まれる。次いで、システムは、ワイヤレス・アクセス・ポイント(WAP)250及び252の既知の位置を使用して、実空間のエリア内のモバイル・コンピューティング・デバイスの位置を三角測量し、決定する。モバイル・コンピューティング・デバイスによって発信される他のタイプの信号(Bluetooth、超広帯域無線、及びZigBee等)も、モバイル・コンピューティング・デバイスのサービス位置を決定するために使用することができる。
【0163】
システムは、ステップ1408において、追跡被写体にまだリンクされていないクライアント・アプリケーションを有するモバイル・デバイスのサービス位置を、毎秒等の一定間隔で監視する。ステップ1408で、システムは、マッチングしていないユーザ・アカウントを有する他の全てのモバイル・コンピューティング・デバイスからの、マッチングしていないユーザ・アカウントを有するモバイル・コンピューティング・デバイスの距離を決定する。システムは、この距離を、3メートル等の所定の閾値距離“d”と比較する。モバイル・コンピューティング・デバイスがマッチングしていないユーザ・アカウント
を有する他の全てのモバイル・デバイスから少なくとも“d”距離だけ離れている場合(ステップ1410)、システムは、モバイル・コンピューティング・デバイスにまだリンクされていない最も近い被写体を決定する(ステップ1414)。ステップ1412において、追跡被写体の位置が関節CNNの出力から得られる。一実施形態では、関節CNNから取得された被写体の位置は、モバイル・コンピューティング・デバイスのサービス位置よりも正確である。ステップ1416において、システムは、フローチャート1300において上述したのと同じ処理を実行して、追跡被写体の追跡IDをクライアント・アプリケーションのユーザ・アカウントとマッチングさせる。処理は、ステップ1418で終了する。
【0164】
追跡被写体とユーザ・アカウントとのマッチングには、バイオメトリック識別情報は使用されず、この処理のサポートには何も記憶されない。すなわち、この処理のサポートにおいて追跡被写体をユーザ・アカウントとマッチングさせる目的で、記憶されたバイオメトリック情報と比較するために使用される画像シーケンス内の情報はない。従って、追跡被写体をユーザ・アカウントとマッチングさせるこのロジックは、ユーザ・アカウントに関連する個人を識別するバイオメトリック情報を使用せずに動作する。

[速度と方向]
【0165】
図15のフローチャート1500は、追跡被写体をユーザ・アカウントとマッチングすることにより被写体を認識する第3の手法のための処理ステップを提示する。この手法は、モバイル・コンピューティング・デバイスの加速度計によって発信される信号を使用して、追跡被写体をクライアント・アプリケーションとマッチングさせる。処理はステップ1502から始まる。処理はステップ1504で開始し、第1及び第2の手法で上述したように、クライアント・アプリケーションからのログイン通信を受け入れる。ステップ1506において、システムは、実空間のエリア内のモバイル・コンピューティング・デバイス上の加速度計からのデータを搬送する、モバイル・コンピューティング・デバイスから送信された信号を受信する。この信号は一定間隔で送信され得る。ステップ1508で、システムは、マッチングしていないユーザ・アカウントを有する全てのモバイル・コンピューティング・デバイスの平均速度を計算する。
【0166】
加速度計は、3つの軸(x、y、z)に沿ったモバイル・コンピューティング・デバイスの加速度を提供する。一実施形態では、時間“t”での現速度を計算するために、速度が、小さな時間間隔(例えば、10ミリ秒毎)で加速度値を取ることによって計算される。すなわち、vt=v0+at、ここで、v0 は初速度である。一実施形態では、v0は“0”として初期化され、その後、t+1のたびに、vtはv0になる。次いで、3つの軸に沿った速度を組み合わせて、時間“t”におけるモバイル・コンピューティング・デバイスの全体的な速度を決定する。最後に、ステップ808において、システムは、平均的な人物の歩行に十分な長さである3秒等のより長い期間にわたって、または、更に長い期間にわたって、全てのモバイル・コンピューティング・デバイスの速度の移動平均を計算する。
【0167】
ステップ1510において、システムは、未だリンクされていない追跡被写体に対するマッチングされていないクライアント・アプリケーションを有するモバイル・コンピューティング・デバイスの全てのペアの速度間のユークリッド距離(L2ノルムとも呼ばれる)を計算する。被写体の速度は、関節分析から得られ、タイムスタンプを有するそれぞれの被写体データ構造320に記憶された、時間に対する関節の位置の変化から導出される。一実施形態では、関節分析を使用して、各被写体の質量中心の位置が決定される。被写体の質量中心位置データの速度または他の微分は、モバイル・コンピューティング・デバイスの速度との比較のために使用される。各追跡ID-ユーザ・アカウントのペアについ
て、それぞれの速度間のユークリッド距離の値が閾値0より小さい場合、追跡ID-ユーザ・アカウントのペアのスコア・カウンタが増加される。上記処理は一定の時間間隔で実行されるため、各追跡ID-ユーザ・アカウントのペアのスコア・カウンタが更新される。
【0168】
一定の時間間隔(例えば、1秒毎)で、システムは、マッチングしていない全てのユーザ・アカウントとまだリンクされていない全ての追跡被写体とのペアのスコア・カウンタ値を比較する(ステップ1512)。最高スコアが閾値1より大きい場合(ステップ1514)、システムは、ステップ1516で、最高スコアと2番目に高いスコア(同じユーザ・アカウントと異なる被写体とのペアについて)との間の差を計算する。差異が閾値2より大きい場合、システムは、ステップ1518において、追跡被写体に対するユーザ・アカウントのマッピングを選択し、ステップ1516において上述したのと同じ処理に続く。処理は、ステップ1520で終了する。
【0169】
別の実施形態では、関節CNNがモバイル・コンピューティング・デバイスを保持する手を認識する場合、モバイル・コンピューティング・デバイスを保持する(追跡被写体の)手の速度は、被写体の質量中心の速度を使用する代わりに、上記の処理で使用される。これは、マッチング・アルゴリズムの性能を改善する。閾値(閾値0、閾値1、閾値2)の値を決定するために、システムは、画像に割り当てられたラベルを有するトレーニング・データを使用する。トレーニングの間、閾値の種々の組み合わせが使用され、アルゴリズムの出力はその性能を決定するために、画像のグラウンド・トゥルース・ラベルとマッチングされる。最良の全体的な割り当て精度をもたらす閾値の値は、プロダクション(または推論)において使用するために選択される。
【0170】
追跡被写体とユーザ・アカウントとのマッチングには、バイオメトリック識別情報は使用されず、この処理のサポートには何も記憶されない。すなわち、この処理のサポートにおいて追跡被写体をユーザ・アカウントとマッチングさせる目的で、記憶されたバイオメトリック情報と比較するために使用される画像シーケンス内の情報はない。従って、追跡被写体をユーザ・アカウントとマッチングさせるこのロジックは、ユーザ・アカウントに関連する個人を識別するバイオメトリック情報を使用せずに動作する。

[ネットワーク・アンサンブル]
【0171】
ネットワーク・アンサンブルは、多くのネットワークが問題を解決するために共同で使用される学習パラダイムである。アンサンブルは、通常、単一の分類器から得られる予測精度を、複数のモデルの学習に関連する労力とコストを検証する因子によって改善する。ユーザ・アカウントを未だリンクされていない追跡被写体にマッチングさせるための第4の手法では、上記で提示された第2及び第3の手法が、アンサンブル(またはネットワーク・アンサンブル)において共同で使用される。アンサンブルで2つの手法を使用するために、関連する特徴が、2つの手法のアプリケーションから抽出される。図16A~16Cは、特徴を抽出し、アンサンブルを訓練し、訓練されたアンサンブルを使用して、ユーザ・アカウントを未だリンクされていない追跡被写体とのマッチングを予測する処理ステップ(フローチャート1600)を示す。
【0172】
図16Aは、モバイル・コンピューティング・デバイスのサービス位置を使用する第2の手法を使用して特徴を生成するための処理ステップを示す。処理はステップ1602で開始する。ステップ1604で、第2の手法について、マッチングしていないユーザ・アカウントを有するモバイル・コンピューティング・デバイスのサービス位置が、マッチングしていないユーザ・アカウントを有する他の全てのモバイル・コンピューティング・デバイスからXメートル離れている回数を示すカウントXが計算される。ステップ1606
で、システムは、追跡ID-ユーザ・アカウントのペアの全てのタプルのカウントX値を、アンサンブルによる使用のために格納する。一実施形態では、Xの複数の値、例えば、1m、2m、3m、4m、5mが使用される(ステップ1608及び1610)。X の各値に対して、カウントは、追跡ID-ユーザ・アカウントのタプルを、整数であるカウント・スコアにマッピングする辞書として保存される。Xの5つの値が使用される例では、5つの斯かる辞書がステップ1612で作成される。処理は、ステップ1614で終了する。
【0173】
図16Bは、モバイル・コンピューティング・デバイスの速度を使用する第3の手法を使用して特徴を生成するための処理ステップを示す。処理はステップ1620で開始する。ステップ1622で、第3の手法について、特定の追跡ID-ユーザ・アカウントのペア間のユークリッド距離が閾値0を下回る回数を示すスコア・カウンタ値に等しいカウントYが決定される。ステップ1624で、システムは、追跡ID-ユーザ・アカウントのペアの全てのタプルのカウントY値を、アンサンブルによる使用のために格納する。一実施形態では、閾値0の複数の値、例えば5つの異なる値が使用される(ステップ1626及び1628)。閾値0の各値に対して、カウントYは、追跡ID-ユーザ・アカウントのタプルを、整数であるカウント・スコアにマッピングする辞書として保存される。閾値の5つの値が使用される例では、5つの斯かる辞書がステップ1630で作成される。処理は、ステップ1632で終了する。
【0174】
次いで、第2及び第3の手法からの特徴を使用して、ラベル付きトレーニング・データセットを作成し、ネットワーク・アンサンブルをトレーニングするために使用する。斯かるデータセットを収集するために、複数の被写体(買い物客)が、ショッピングストアのような実空間のエリア内を歩く。これらの被写体の画像は、一定の時間間隔でカメラ114を用いて収集される。人間のラベラーは画像を検査し、トレーニング・データの画像に正しい識別子(追跡IDとユーザ・アカウント)を割り当てる。この処理は、図16Cに示されるフローチャート1600に記載される。処理はステップ1640で開始する。ステップ1642で、第2及び第3の手法から得られたカウントX及びカウントY辞書の形式の特徴が、追跡IDとユーザ・アカウントの正しいマッチング(真)及び間違ったマッチング(偽)を識別するために、画像上の人間のラベラーによって割り当てられた対応する真のラベルと比較される。
【0175】
追跡IDとユーザ・アカウントの各マッピングに対する結果のカテゴリは真または偽の2つのみであるため、二項分類器がこのトレーニング・データセットを使用してトレーニングされる(ステップ1644)。二項分類のために一般に使用される方法には、決定木、ランダム・フォレスト、ニューラル・ネットワーク、勾配ブースト、サポート・ベクター・マシン等が含まれる。トレーニングされた二項分類器は、新しい確率論的観察を真または偽として分類するために使用される。トレーニングされた二項分類器は、追跡IDとユーザ・アカウントのタプルの入力カウントX及びカウントY辞書を与えることによって、プロダクション(または推論)で使用される。トレーニングされた二項分類器は、ステップ1646において、各タプルを真または偽として分類する。処理は、ステップ1648で終了する。
【0176】
上記4つの手法の適用後に実空間のエリア内にマッチングしていないモバイル・コンピューティング・デバイスがある場合、システムは、モバイル・コンピューティング・デバイスに、クライアント・アプリケーションを開くように通知を送信する。ユーザが通知を受け入れると、クライアント・アプリケーションは、第1の手法で説明されているようにセマフォ画像を表示する。その後、システムは、第1の手法の手順に従って、買い物客をチェックインする(追跡IDをユーザ・アカウントにマッチングさせる)。顧客が通知に応答しない場合、システムは、マッチングしていない顧客の位置を示す通知をショッピン
グストア内の従業員に送信する。次いで、従業員は顧客に歩み寄り、自分のモバイル・コンピューティング・デバイス上のクライアント・アプリケーションを開いて、セマフォ画像を使用してシステムにチェックインするように要求することができる。
【0177】
追跡被写体とユーザ・アカウントとのマッチングには、バイオメトリック識別情報は使用されず、この処理のサポートには何も記憶されない。すなわち、この処理のサポートにおいて追跡被写体をユーザ・アカウントとマッチングさせる目的で、記憶されたバイオメトリック情報と比較するために使用される画像シーケンス内の情報はない。従って、追跡被写体をユーザ・アカウントとマッチングさせるこのロジックは、ユーザ・アカウントに関連する個人を識別するバイオメトリック情報を使用せずに動作する。

[アーキテクチャ]
【0178】
ユーザ・アカウントを実空間のエリア内の未だリンクされていない追跡被写体にマッチングさせることにより被写体を識別するために上述の4つの手法が適用されるシステムのアーキテクチャ例を、図17に示す。図17はアーキテクチャ図であるため、説明の明確性を向上させるために、特定の詳細は省略されている。図17に示すシステムは、複数のカメラ114から画像フレームを受信する。上述のように、一実施形態では、カメラ114が、画像が同時に、または時間的に近く、且つ同じ画像キャプチャ・レートで取得されるように、互いに時間的に同期させることができる。同時にまたは時間的に近い実空間のエリアをカバーする全てのカメラにおいて取得された画像は、同期された画像が実空間において固定された位置を有する被写体のある時点での様々な光景を表すものとして処理エンジンにおいて識別されることができるという意味で同期される。画像は、カメラ毎に画像フレームの循環バッファ1702内に格納される。
【0179】
「被写体追跡」サブシステム1704(第1の画像プロセッサとも呼ばれる)は、カメラ114から受け取った画像フレームを処理して、実空間内の被写体を位置特定し追跡する。第1の画像プロセッサは、実空間内の被写体の関節を検出する上記関節CNN等の被写体画像認識エンジン含む。
【0180】
「意味的差分抽出」サブシステム1706(第2の画像プロセッサとも呼ばれる)は、背景画像認識エンジンを含み、背景画像認識エンジンは、複数のカメラから対応する画像シーケンスを受信し、例えば、背景(すなわち、棚のような在庫陳列構造)内の意味的に重要な差異が、各カメラからの画像において経時的に、在庫商品を置くこと及び取ることに関連するときに、当該差異を認識する。第2の画像プロセッサは、被写体追跡サブシステム1704の出力と、カメラ114からの画像フレームとを入力として受け取る。「意味的差分抽出」サブシステムの詳細は、2018年4月4日出願の米国特許出願第15/945,466号、現在、2018年11月13日登録の米国特許第10,127,438号、「意味的差分抽出を使用した在庫イベントの予測」、及び、2018年4月4日出願の米国特許出願第15/945,473号、「前景/背景処理を使用した在庫イベントの予測」に示されており、これらの両方は本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。第2の画像プロセッサは、識別された背景変化を処理して、追跡被写体による在庫商品を取ることの検出、及び、追跡被写体による在庫陳列構造上の在庫商品を置くことの第1の検出セットを作成する。第1の検出セットは、在庫商品を置くこと及び取ることの背景検出とも呼ばれる。ショッピングストアの例では、第1の検出が、棚から取られた在庫商品、または、顧客または店舗従業員によって棚上に置かれた在庫商品を識別する。意味的差分抽出サブシステムは、識別された背景変化を追跡被写体に関連付けるロジックを含む。
【0181】
「領域提案」サブシステム1708(第3の画像プロセッサとも呼ばれる)は、前景画
像認識エンジンを含み、複数のカメラ114から対応する画像シーケンスを受信し、前景内の意味的に重要な物体(すなわち、買い物客、買い物客の手、及び在庫商品)が、各カメラからの画像において経時的に、在庫商品を置くこと及び取ることに関連するときに、当該物体を認識する。領域提案サブシステム1708は、また、被写体追跡サブシステム1704の出力を受信する。第3の画像プロセッサは、カメラ114からの画像シーケンスを処理して、対応する画像シーケンス内の画像に表される前景変化を識別し且つ分類する。第3の画像プロセッサは、識別された前景変化を処理して、追跡被写体による在庫商品を取ることの検出、及び、追跡被写体による在庫陳列構造上の在庫商品を置くことの第2の検出セットを作成する。第2の検出セットは、在庫商品を置くこと及び取ることの前景検出とも呼ばれる。ショッピングストアの例では、第2の検出セットは、在庫陳列構造上における顧客及び店舗の従業員による在庫商品を置くこと、及び、在庫商品を取ることを識別する。領域提案サブシステムの詳細は、2018年2月27日出願の米国特許出願第15/907,112号、現在、2018年11月20日登録の米国特許第10,133,933号、「画像認識を用いた商品を置くこと及び取ることの検出」に示されており、これは、本明細書に完全に記載されているかのように、参照により本明細書に組み込まれる。
【0182】
図17に記載されるシステムは、第1及び第2の検出セットを処理して、追跡被写体についての在庫商品のリストを含むログ・データ構造を生成するための選択ロジック1710を含む。実空間内の置くこと及び取ることのために、選択ロジック1710は、意味的差分抽出サブシステム1706または領域提案サブシステム1708の何れかからの出力を選択する。一実施形態では、選択ロジック1710が、第1の検出セットについて意味的差分抽出サブシステムによって生成された信頼度スコアと、第2の検出セットについて領域提案サブシステムによって生成された信頼度スコアとを使用して、選択を行う。特定の検出に対するより高い信頼度スコアを有するサブシステムの出力が選択され、追跡被写体に関連付けられた在庫商品及びその数量のリストを含むログ・データ構造1712(ショッピングカート・データ構造とも呼ばれる)を生成するために使用される。
【0183】
ログ・データ構造1712内の商品に対する支払いを処理するために、図17のシステムは、追跡被写体(ログ・データに関連する)を、クレジット・カードまたは銀行口座情報等の支払い方法を含むユーザ・アカウントにマッチングさせるための4つの手法を適用する。一実施形態では、図に示すように、4つの手法が順次適用される。第1の手法のためのフローチャート1300の処理ステップが、被写体とユーザ・アカウントとの間のマッチングを生成する場合、この情報は、支払いプロセッサ1736によって使用されて、ログ・データ構造内の在庫商品について顧客に課金する。そうでない場合(ステップ1728)、第2の手法のためのフローチャート1400に示された処理ステップが次に行われ、ユーザ・アカウントが支払いプロセッサ1736によって使用される。第2の手法がユーザ・アカウントを被写体とマッチングさせることができない場合(1730)、第3の手法のためのフローチャート1500に示される処理ステップが次に行われる。第3の手法がユーザ・アカウントを被写体とマッチングさせることができない場合(1732)、フローチャート1600の第4の手法の処理ステップが、ユーザ・アカウントを被写体とマッチングさせるために次に行われる。
【0184】
第4の手法がユーザ・アカウントを被写体とマッチングできない場合(1734)、システムは、モバイル・コンピューティング・デバイスにクライアント・アプリケーションを開くための通知を送信して、第1の手法のためのフローチャート1300に示されるステップを次に行う。顧客が通知に応答しない場合、システムは、マッチングしていない顧客の位置を示す通知をショッピングストア内の従業員に送信する。次に、従業員は顧客に歩み寄り、セマフォ画像を使用してシステムにチェックインするために、自分のモバイル・コンピューティング・デバイス上でクライアント・アプリケーションを開くように依頼
することができる(ステップ1740)。図17に示されるアーキテクチャの他の実施形態では、ユーザ・アカウントを未だリンクされていない追跡被写体にマッチングさせるために、4つより少ない手法を使用し得ることが理解される。
【0185】
上述されたまたは上記で参照された任意のデータ構造及びコードは、多くの実施態様に従って、コンピュータ・システムによって使用されるコード及び/またはデータを記憶することができる任意のデバイスまたは媒体であり得る、非一時的なコンピュータ可読記憶媒体を含むコンピュータ可読メモリに記憶される。これには、揮発性メモリ、不揮発性メモリ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、ディスク・ドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル・バーサタイル・ディスクまたはデジタル・ビデオ・ディスク)等の磁気及び光記憶デバイス、または、現在知られているまたは今後開発されるコンピュータ可読媒体を記憶することができる他の媒体が含まれるが、これらに限定されない。
【0186】
先行する説明は、開示された技術の使用及び実施を可能にするために提示されている。開示された実施態様に対する種々の変形は明らかであり、本明細書で規定された原理は、開示された技術の趣旨及び範囲から逸脱することなく、他の実施態様及び応用例に適用され得る。従って、開示された技術は、示された実施態様に限定されることを意図するものではなく、本明細書で開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。開示される技術の範囲は、添付の特許請求の範囲によって規定される。

図1
図2A
図2B
図3A
図3B
図4A
図4B
図4C
図5
図6A
図6B
図7
図8A
図8B
図8C
図9
図10
図11
図12
図13
図14
図15
図16A
図16B
図16C
図17
【外国語明細書】