本開示は、生体認証技術を使用してユーザーを識別するためのシステム、技術、およびユーザーインターフェースについて説明する。以下に説明するように、ユーザーは、様々な生体認証ベースの認識技術を利用するユーザー認識システムに登録できるため、IDカードの提示や個人の電話へのアクセスなど、従来の形式の身分証明書を携帯したり使用したりする必要なしに、ユーザーは識別され得る。ユーザー認識システムは、登録ユーザーが施設内で選択したアイテムの購入を適切なユーザーアカウントに請求することにより、マテリアルハンドリング施設(または「施設」)での従来のチェックアウト体験を自動化するなど、様々な目的で登録ユーザーを認識または識別できる。
1つの用例では、このシステムおよび技術は、在庫管理システムを含むか、または在庫管理システムにアクセスできる、マテリアルハンドリング施設内のユーザーを認識または識別するために使用される。在庫管理システムは、アイテム、ユーザー、施設の状態などに関する情報を維持するように構成することができる。例えば、在庫管理システムは、特定のユーザーが選択または返品するアイテム、特定のユーザーの位置など、施設内で発生する様々なイベントの結果を示すデータを維持することができる。
在庫管理システムの運用は、1つ以上のセンサーによって取得されたセンサーデータによってサポートすることができる。センサーデータは、カメラなどのイメージングデバイスによって取得された画像データ、無線周波数タグ、重量センサーなどから取得された情報を含むことができる。例えば、在庫管理システムは、在庫場所から取り出されたアイテムと、そのアイテムを取り出したユーザーを自動的に識別することができる。それに応じて、在庫管理システムは、ユーザーの仮想ショッピングカートを自動的に更新することができる。
従来、ユーザーがショッピングセッションを終了すると、ユーザーはレジ係に商品をスキャンさせるか、専用のセルフチェックアウトスタンドを使用して商品の代金を支払う必要があった。本明細書で説明する技術は、ユーザー認識システムの使用に登録されたユーザーを認識または識別し、仮想ショッピングカートに含まれるアイテムのコストをそのユーザーのユーザーアカウントに請求することにより、従来のチェックアウ体験における摩擦を軽減する。本明細書に記載の技術によれば、ユーザー認識システムに登録されたユーザーは、ユーザー認識システムによって識別されるために、例えば、イメージングデバイスでユーザーの手のひらをスキャンする、ユーザーの指紋をスキャンする、施設内に設置されたユーザー認識デバイスのカメラを見つめるなどにより生体認証情報のみを提供しさえすればよい場合がある。
ユーザー認識システムを利用するために、ユーザーは、施設内に位置決めされたユーザー認識デバイスと対話することによって登録を要求することができる。例えば、ユーザーは、ユーザー認識デバイスのディスプレイ上で登録オプションを選択し、登録を要求する音声またはGUIベースのコマンドを発行し、ユーザーIDカードをユーザー認識デバイスに挿入し、および/または登録プロセスを促すために、単にユーザー認識デバイスの前に手または手のひらを提示することができる。
ユーザー認識システムへの登録を要求すると、ユーザー認識デバイスは、ユーザーからの許可を得て、および/またはユーザーからの明示的な要求に応じて、ユーザーのために様々なタイプの生体認証データおよび/または他のデータの収集を開始することができる。例えば、ユーザー認識デバイスは、ユーザーの手のひら、ユーザーの顔などのユーザーの少なくとも一部の画像データ(例えば、個々の画像、一連の画像、ビデオなど)のキャプチャを開始する1つ以上の画像センサー(例えば、カメラ)を含むことができる。手のひらの例では、ユーザー認識デバイスは、ユーザー認識デバイスが画像データをキャプチャするときに、ユーザーが異なる角度および/または向きに手を動かすことを要求することができ、また、異なる照明条件(例えば、フラッシュなし、フラッシュ、異なる光の偏光など)下で画像データをキャプチャして、異なる環境条件下のユーザーの手のひらを表す画像データを生成することができる。
いくつかの例では、ユーザーは、ショッピングセッション中に選択したアイテムの支払いを行うために在庫管理システムに登録されたアカウントをすでに持っている場合がある。このような例では、ユーザー認識デバイスは、ユーザーに、個人IDカード(例えば、運転免許証)を挿入する、ユーザーの電話のディスプレイに提示され得るバーコードをスキャンする、ユーザーのログイン資格情報を使用してログインする、などを要求することなどによって、様々な方法でユーザーが登録されているユーザーアカウントを判別することができる。
ユーザー認識デバイスが、ユーザーの手のひらまたは他の部分を表す画像データを取得すると、ユーザー認識デバイスは、このデータを利用して、ユーザーをユーザー認識システムに登録することができる。いくつかの例では、ユーザー認識システムは、本明細書で説明される技術を実装するためのソフトウェア、ファームウェア、および/またはハードウェアコンポーネントを含むことができるユーザー認識デバイス上に完全に実装できる。しかしながら、いくつかの例では、ユーザー認識システムは、ユーザー認識デバイスがクライアント側の登録および識別技術を実行し、より集中的および/または高度な処理がバックエンドのサーバベースの実装を使用して実行できる、分割アーキテクチャに従って実装することができる。例えば、ユーザー認識システムは、施設内の別個の位置、および/またはリモートのクラウドベースの位置に位置決めされた1つ以上のネットワークベースのコンピューティングデバイスを含むことができる。ネットワークベースのデバイスは、ユーザー認識システムを実装するための様々なコンポーネントを含むことができる。
そのような例では、ユーザー認識デバイスは、画像データ、および/または画像データを使用してユーザー認識デバイスによって生成された特徴データをネットワークベースのデバイスに送信して、ユーザーをユーザー認識システムに登録することができる。ユーザー認識システムのネットワークベースのデバイスは、ユーザー認識システムがその後に受信された画像データおよび/または特徴データからユーザーを識別できるように、画像データおよび/または特徴データに対して様々な処理技術を実行することができる。
ユーザー認識システムは、画像データを分析して、ユーザーの様々な特徴を決定することができる。例えば、ユーザー認識システムは、画像データに基づいて、ユーザーの手のひらを表す手のひら特徴データを抽出および/または生成することができる。この手のひらの特徴データは、ユーザーの手のひらのしわのパターン、ユーザーの手のひらの静脈のパターン、ユーザーの手の1つ以上の部分の形状(例えば、指のサイズ/形状、手のひらのサイズ/形状など)、および/または同様のものなど、ユーザーの手のひらに潜在的に固有の情報を表すことができる。ユーザー認識システムは、任意のタイプの処理技術を利用して手のひらの特徴データを生成することができ、特徴ベクトルなどの様々なタイプのデータ構造を使用して画像データに描写されるユーザーの手のひらを表すことができる。いくつかの例では、ユーザー認識システムは、入力としてユーザーの画像データを受信し、ユーザーの手のひらを表す特徴ベクトルを出力するように訓練された1つ以上の訓練されたモデル(例えば、機械学習モデル)を含むことができる。概して、訓練されたモデルは、ユーザーの手のひらおよび/またはユーザーの他の1つ以上の部分(例えば、顔など)を識別するように訓練できる、機械学習モデル(例えば、人工ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)、分類器、ランダムフォレストモデルなど)など、任意のタイプのモデルを含むことができる。
ユーザーの手のひらを表す特徴データを取得すると、ユーザー認識システムは、特徴データを登録データベースに格納し、その特徴データをその特定のユーザーのユーザープロファイルに関連付けることができる。このようにして、ユーザー認識デバイスでユーザーの後続の画像データを受信すると、登録データベースに格納された特徴データを後続の画像データから生成された特徴データと比較して、後続の画像データと音声データで表されたユーザーのユーザープロファイルを識別することができる。
このようにして、ユーザーは、ユーザー認識システムの使用のために登録され得るため、その後のショッピングセッションを完了した後、ユーザーは、ユーザー認識システムがユーザーを自動的に認識できるようにユーザー認識デバイスのイメージングコンポーネントの上に手のひらを置くことによってチェックアウトすることができる。ユーザー認識デバイスは、ユーザーの存在を検出し(例えば、手のひらを検出し、顔を検出し、発話を検出し、タッチディスプレイを介してタッチ入力を検出するなど)、画像データおよび音声データをユーザー認識システムのバックエンドデバイスにストリーミングし始めることができる。次に、ユーザー認識システムのバックエンドデバイスは、訓練されたモデルを利用して、特徴データを抽出し、その特徴データを、登録されたユーザーのユーザープロファイルの格納された特徴データと比較することができる。さらに、または代替として、ユーザーは施設に入るときに認識のために手のひらをスキャンすることができ、場合によっては、手のひらを再度スキャンすることなく、選んだアイテムを持ってただ施設を出るだけでよい。これらの例では、ユーザーは入室時に識別され、ユーザーが施設内を移動するときにシステムによって位置を特定されるため、ユーザーは施設内の従業員やデバイスとさらに対話することなく「ただ外に出る」ことができる。
上記のように、ユーザー認識デバイスは、ユーザー認識デバイスが画像データをキャプチャするときに、ユーザーに、異なる位置、角度、および/または向きに手を動かすことを要求することができる。場合によっては、ユーザー認識デバイスは、手を異なる位置、角度、および/または向きに動かすようにユーザーに指示するのに役立つ1つ以上のユーザーインターフェースを提供することができる。例えば、ユーザー認識デバイスは、ユーザー認識デバイスのイメージングコンポーネント上にユーザーの手を位置付けるための指示を含むユーザーインターフェース(「第1のユーザーインターフェース」と呼ばれる)を表示することができる。第1のユーザーインターフェースは、ユーザーがまだユーザープロファイルを作成していない場合に、ユーザーが新しいユーザープロファイルを作成するために選択することができるインターフェース要素をさらに含むことができる。さらに、場合によっては、第1のユーザーインターフェースは、どのようにイメージングコンポーネント上に手を位置付けるかの図を含むことができる。ユーザー認識デバイスは、ユーザーが最初にユーザー認識デバイスに近づくときに、この第1のユーザーインターフェースを表示することができる。
第1のユーザーインターフェースを表示している間、ユーザー認識デバイスは、イメージングコンポーネント上にあるユーザーの手を検出することができる。いくつかの例では、ユーザー認識デバイスは、距離センサーを使用して手を検出することができる。他の例では、ユーザー認識デバイスは、1つ以上のイメージングセンサーを使用して手を検出することができる。いずれの例においても、ユーザーの手を検出することに基づいて、ユーザー認識デバイスは、イメージングコンポーネント上の目標位置に手を置かせるための指示を提供するユーザーインターフェース(「第2のユーザーインターフェース」と呼ばれる)を表示することができる。
本明細書で説明するように、イメージングコンポーネント上の目標位置は、イメージングコンポーネントに対する目標垂直位置(例えば、z方向)と、イメージングコンポーネントに対する目標水平位置(例えば、x方向およびy方向)の両方を含むことができる。いくつかの例では、目標垂直位置は、イメージングコンポーネントの上方の8~5ミリメートルなど、イメージングコンポーネントの上方の垂直距離に関連付けることができる。しかしながら、他の例では、目標垂直位置は、イメージングコンポーネントの上方の他の任意の垂直距離に関連付けることができる。さらに、いくつかの例では、目標水平位置は、x方向およびy方向の両方で、イメージングコンポーネントの中央に関連付けることができる。場合によっては、目標垂直位置および/または目標水平位置はまた、生体認証データをキャプチャするときにいくらかのオフセットを許容できる。例えば、目標垂直位置は、手がイメージングコンポーネントから75ミリメートル~95ミリメートル上に位置することを許容できる。さらに、目標垂直位置は、手がx方向またはy方向のいずれかで20ミリメートルに位置することを許容できる。
第2のユーザーインターフェースは、イメージングコンポーネント上の目標位置に関連付けられた第1のグラフィカル要素を含むことができる。いくつかの例では、第1のグラフィカル要素は、第2のユーザーインターフェースの中心に近接して位置する円を含む。円は、実線、破線、および/または他の任意のタイプの線を含むことができる。他の例では、第1のグラフィカル要素は、異なるタイプの形状を含むことができる。例えば、第1のグラフィカル要素は、正方形、長方形、五角形、六角形、手の形状、および/または他の任意の形状を含むことができるが、これらに限定されない。さらに、他の例では、第1のグラフィカル要素は、第1のユーザーインターフェース上の任意のポジションに位置することができる。
第2のユーザーインターフェースは、イメージングコンポーネントの上のユーザーの手の位置に関連する第2のグラフィカル要素をさらに含むことができる。例えば、ユーザーの手がイメージングコンポーネントの上にある間、ユーザー認識デバイスは、1つ以上のセンサーを使用して、イメージングコンポーネントの上にあるユーザーの手の位置を検出することができる。ユーザーの手の位置は、イメージングコンポーネントに対する垂直位置およびイメージングコンポーネントに対する水平位置を含むことができる。いくつかの例では、ユーザー認識デバイスは、設定された時間間隔でユーザーの手の位置を検出することができる。例えば、ユーザー認識デバイスは、ミリ秒、秒ごとなどでユーザーの手の位置を検出することができる。いくつかの例では、例えば、ユーザー認識デバイスが1つ以上のイメージングセンサーを使用して位置を検出する場合、ユーザー認識デバイスは、画像データによって表される各フレーム、画像データによって表される1つおきのフレーム、画像データによって表される5つごとのフレーム、および/または同様のものを使用してユーザーの手の位置を検出することができる。
次に、ユーザー認識デバイスは、ユーザーの手の検出された位置に基づいて、第2のグラフィカル要素を更新することができる。例えば、ユーザー認識デバイスは、ユーザーの手の垂直位置に基づいて、第2のグラフィカル要素のサイズを更新することができる。例えば、ユーザーの手の垂直位置がイメージングコンポーネントの目標垂直位置に近接している場合(例えば、イメージングコンポーネントの上方8~5ミリメートル)、ユーザー認識デバイスは、第2のグラフィカル要素のサイズを第1のグラフィカル要素のサイズと一致させることができる。しかしながら、ユーザーの手の垂直位置が、設定された垂直位置よりもイメージングコンポーネントから離れている場合(例えば、イメージングコンポーネントの100ミリメートル上)、ユーザー認識デバイスは、第2のグラフィカル要素を第1のグラフィカル要素のサイズより大きくすることができる。これは、イメージングコンポーネントに近づくように手を下げるようにユーザーに通知することができる。それでも、ユーザーの手の垂直位置が目標垂直位置よりもイメージングコンポーネントに近い場合(例えば、イメージングコンポーネントの50ミリメートル上)、ユーザー認識デバイスは、第2のグラフィカル要素を第1グラフィカル要素よりも小さくすることができる。これは、手をイメージングコンポーネントよりさらに上に上げることをユーザーに通知することができる。
ユーザー認識デバイスはまた、ユーザーの手の水平位置に基づいて、第2のグラフィカル要素のポジションを更新することができる。例えば、ユーザーの手の水平位置がイメージングコンポーネントの目標水平位置に近接している場合(例えば、イメージングコンポーネントの中央近く)、ユーザー認識デバイスは、第2のグラフィカル要素を第1のグラフィカル要素内の中心に置くことができる。ただし、ユーザーの手の水平位置がイメージングコンポーネントの水平位置のセットの左または右にある場合(例えば、x方向のオフセット)、ユーザー認識デバイスは、第2のグラフィカル要素を第1のグラフィカル要素の中心から左または右方向にオフセットさせることができる。これは、イメージングコンポーネントに対してユーザーの手を左または右に動かすようにユーザーに通知することができる。それでも、ユーザーの手の水平位置が、イメージングコンポーネントの目標水平位置の前または後ろにある場合(例えば、y方向のオフセット)、ユーザー認識デバイスは、第2のグラフィカル要素を第1のグラフィカル要素の中心から上または下方向にオフセットさせることができる。これは、イメージングコンポーネントに対してユーザーの手を前または後ろの方向に動かすようにユーザーに通知することができる。これらは、ユーザーの手の位置に基づいて第2のグラフィカル要素を更新するほんの数例であるが、他の例では、ユーザー認識デバイスは、追加および/または代替の技術を使用して第2のグラフィカル要素を更新することができる。
場合によっては、第2のユーザーインターフェースは、目標位置に手を置かせる指示をさらに含むことができる。第1の例では、ユーザーの手の水平位置がイメージングコンポーネントの目標水平位置の左側にある場合、第2のユーザーインターフェースは、ユーザーが手を「右」に動かす必要があることを示す指示を含むことができる。第2の例では、ユーザーの手の水平位置がイメージングコンポーネントの目標水平位置の右側にある場合、第2のユーザーインターフェースは、ユーザーが手を「左」に動かす必要があることを示す指示をふくむことができる。第3の例では、ユーザーの手の水平位置がイメージングコンポーネントの目標水平位置の前にある場合、第2のユーザーインターフェースは、ユーザーが手を「後ろ」に動かす必要があることを示す指示を含むことができる。第4の例では、ユーザーの手の水平位置がイメージングコンポーネントの目標水平位置の後ろにある場合、第2のユーザーインターフェースは、ユーザーが手を「前方」に動かす必要があることを示す指示を含むことができる。
第5の例では、ユーザーの手の垂直位置が目標垂直位置よりもイメージングコンポーネントに近い場合、第2のユーザーインターフェースは、ユーザーが手を「より高く」動かす必要があることを示す指示を含むことができる。さらに、第6の例では、ユーザーの手の垂直位置が目標垂直位置よりもイメージングコンポーネントから離れている場合、第2のユーザーインターフェースは、ユーザーが手を「より低く」動かす必要があることを示す指示を含むことができる。これらは、第2のユーザーインターフェースがユーザーに提供できる指示のほんの数例であるが、他の例では、第2のユーザーインターフェースは、ユーザーに手を位置付ける場所を指示するのを助ける追加および/または代替の指示を提供することができる。
場合によっては、ユーザー認識デバイスは、1つ以上の追加および/または代替の技術を使用して、第2のグラフィカル要素を更新することができる。例えば、ユーザー認識デバイスは、手の位置(例えば、垂直位置または水平位置)、手のポーズ、手の向き、手の傾きなどに基づいて、第2のグラフィカル要素のサイズ、形状、ポジション、および/または色を更新することができる。さらに、第2のユーザーインターフェースは、ユーザーが手のポーズ、手の向き、および/または手の傾きを変更する必要があることを示す指示を提供することができる。これらの指示は、ユーザーがユーザー認識デバイス上に手を置くための正しい位置、ポジション、向き、および/または傾斜を決定するのにさらに役立ち得る。
ユーザー認識デバイスは、ユーザー認識デバイスが、ユーザーの手が目標位置に近接していることを検出するまで、ユーザーに指示を提供し続けることができる。いくつかの例では、ユーザー認識デバイスは、手の垂直位置が、目標垂直位置まで閾値距離以内にあり(例えば、閾値距離未満)かつ手の水平位置が、目標水平位置まで閾値距離以内にあると判断することに基づいて、手が目標位置に近接していることを検出することができる。本明細書に記載されるように、閾値距離は、10ミリメートル、20ミリメートル、30ミリメートル、および/または他の任意の距離を含むことができるが、これらに限定されない。
場合によっては、ユーザー認識デバイスが、ユーザーの手が目標位置の近くにあることを検出した後、ユーザー認識デバイスは、手が正しい場所にあることを示すユーザーインターフェース(「第3のユーザーインターフェースと呼ばれる)を表示することができる。さらに、ユーザーがすでにユーザー認識システムに登録している場合、ユーザー認識システムは、本明細書に記載のプロセスを実行して、ユーザーに関連付けられたユーザープロファイルを識別することができる。ユーザーがまだユーザー認識システムに登録していない場合、ユーザー認識デバイスは、ユーザー認識システムに登録するための追加情報を受信するための1つ以上の追加のユーザーインターフェースを提供することができる。
第1の例では、ユーザー認識デバイスは、ユーザーに関連する情報を入力するためのユーザーインターフェース(「第4のユーザーインターフェース」と呼ばれる)を表示することができる。情報は、ユーザーの識別子(例えば、名前、ユーザー名)、オンラインマーケットプレイスに関連付けられたアカウントの識別子、ユーザーに関連付けられた電話番号、ユーザーと関連付けられた電子メールアドレス、および/またはその他の情報を含むことができるが、これらに限定されない。第2の例として、ユーザー認識デバイスは、ユーザー認識デバイスのリーダーに支払い手段を挿入するようにユーザーに指示するユーザーインターフェース(「第5のユーザーインターフェース」と呼ばれる)を表示することができる。例えば、第5のユーザーインターフェースは、デビットカードまたはクレジットカードをユーザー認識デバイスのカードリーダーに挿入するようにユーザーに指示することができる。場合によっては、支払い手段をリーダーに挿入した後、第5のユーザーインターフェースは、支払い手段からの支払い情報が受信されたという表示を表示することができる。
上で論じたように、ユーザー認識デバイスは、1つ以上のセンサーを使用して、イメージングコンポーネントに対するユーザーの手の位置を決定することができる。いくつかの例では、ユーザー認識デバイスは、1つ以上の距離センサーを使用して、ユーザーの手の垂直位置を決定することができる。1つ以上の距離センサーは、赤外線センサー(IRセンサー)、LIDARセンサー、および/またはイメージングコンポーネントに対するユーザーの手の距離を検出できる他の任意のタイプのセンサーを含むことができるが、これらに限定されない。例えば、1つ以上の距離センサーは、イメージングコンポーネント内および/またはイメージングコンポーネントに近接して配置することができ、1つ以上の距離センサーが垂直方向(例えば、z方向)に上向きに向けられるように位置決めすることができる。いくつかの例では、ユーザー認識デバイスは、1つ以上の追加および/または代替のタイプのセンサーを使用して、ユーザーの手の垂直位置を決定することができる。
ユーザー認識デバイスは、1つ以上の画像センサーを使用して、ユーザーの手の水平位置を決定することができる。例えば、上記のように、ユーザー認識デバイスは、1つ以上の訓練されたモデルを使用して、ユーザーの手を描写した画像データを使用して特徴データを生成することができる。特徴データは、手のひら上の様々な場所、手のひらの中心の場所、指上の場所(例えば、指の始点、指の関節の位置、指の間の部分など)、親指上の位置、手の方向、手のポーズ、手の向き、および/または手に関連付けられているその他の属性などの、手に関連付けられた属性を少なくとも示すことができるが、これらに限定されない。特徴データを使用して、ユーザー認識デバイスは、ユーザーの手の水平位置を決定することができる。例えば、ユーザー認識デバイスは、手のひらの中心を使用して、イメージングコンポーネントに対するユーザーの手の水平位置を決定することができる。
場合によっては、手を表す画像データを受け入れる前、および/またはイメージングコンポーネントに対する手の水平位置を決定する前に、ユーザー認識デバイスは、1つ以上の訓練されたモデルによって生成された特徴データを使用して1つ以上の追加のチェックを実行できる。第1の例では、ユーザー認識デバイスは、1つ以上の画像センサーによって検出されている物体が本物の手であること、および/または手が1つ以上の画像センサーの視野内にあることを決定することができる。例えば、1つ以上の訓練されたモデルは、手が1つ以上の画像センサーの視野内に位置している、物体が手である、物体が手ではない、または手が1つ以上の画像センサーの視野内に位置していないことを示すデータを出力することができる。
第2の例では、ユーザー認識デバイスは、手の角度の程度がイメージングコンポーネントに対して閾値角度内にあると決定することができる。ユーザー認識デバイスは、手の1つ以上の点の位置などの属性を使用して、手の角度の程度を決定することができる。閾値角度は、2度、5度、10度、および/または他の任意の角度を含むことができるが、これらに限定されない。第3の例では、ユーザー認識デバイスは、手のポーズが許容可能であると決定することができる。場合によっては、ユーザー認識デバイスは、手がイメージングコンポーネントの平面に沿って位置決めされた平面形状を含むときに、ポーズが許容可能であると決定する。さらに、ユーザー認識デバイスは、手がカップ状、拳状に位置決めされているとき、および/または手がジェスチャをしているときに、手のポーズが許容できないと決定することができる。
第4の例では、ユーザー認識デバイスは、手の傾きが閾値傾き内にあると決定することができる。場合によっては、ユーザー認識デバイスは、手がイメージングコンポーネントの平面に平行であるとき、および/またはイメージングコンポーネントの平面に平行である閾値角度内にあるとき、手の傾きが閾値傾き内にあると決定することができる。さらに、ユーザー認識デバイスは、手がイメージングコンポーネントの平面と平行である閾値角度内にない場合、手の傾きが閾値傾き内にないと決定することができる。さらに、第5の例では、ユーザー認識デバイスは、手が右手を含むか左手を含むかを決定することができる。
いくつかの例では、1つ以上の追加のチェックを実行するとき、ユーザー認識デバイスは、少なくとも1つのチェックが失敗したときに、追加の画像データをキャプチャおよび分析する必要があると決定することができる。例えば、ユーザー認識デバイスが、手のポーズが拳を含むと決定した場合、ユーザー認識デバイスは、手の水平位置を決定するために、分析のために追加の画像データを生成することを決定することができる。別の例では、ユーザー認識デバイスが、手の角度の程度が閾値角度を超えると決定した場合、ユーザー認識デバイスは、手の水平位置を決定するために、分析のために追加の画像データを生成することを決定することができる。
場合によっては、ユーザー認識システムは、個々のユーザーについて、異なる時点でキャプチャされた画像データに対応する複数の画像データまたは手のひらの特徴データを格納することができる。例えば、特定のユーザーが最初にユーザー認識システムに登録するとき、システムは、ユーザーのアカウントに関連して、ユーザーの手のひらの画像データおよび/または画像データに基づいて生成された手のひら特徴データのうちの少なくとも1つを格納することができる。したがって、ユーザーが、識別のためにユーザー認識システムを利用し、ユーザーの手のひらの画像データを提供する施設に戻るとき、この新しい画像データを使用して生成された手のひら特徴データは、格納された手のひら特徴データと比較され、施設にいるユーザーがプロファイルに関連付けられたユーザーに対応する場合を決定することができる。この新しい手のひら特徴データは、ユーザーを識別するために、複数の異なるユーザープロファイルに関連付けられた手のひら特徴データと比較できることを理解されたい。
本明細書で説明する技術は、主に、マテリアルハンドリング施設から選択されたアイテムに請求するユーザーアカウントを識別する目的でユーザーを識別することに関するものであるが、この技術は、ユーザー認識に役立ち得る任意の業界に等しく適用可能である。例えば、ユーザー認識システムは、ロックされた場所へのアクセス、コンピューティングデバイスを介したユーザーアカウントへのアクセス、銀行口座へのアクセスなどのセキュリティ目的のために実装できる。さらに、特定のタイプの機械学習モデルとアルゴリズムが本明細書で論じられているが、この手法は他のタイプの技術を使用して採用でき、通常、様々なコンピューターベースの実装に拡張可能である。
さらに、上記の技術は、手の位置を決定するユーザー認識デバイスを含むが、他の例では、バックエンドデバイスが手の位置を決定することができる。例えば、ユーザー認識デバイスは、1つ以上のセンサーを使用して生成されたセンサーデータをバックエンドデバイスに送信することができる。次に、バックエンドデバイスは、ユーザー認識デバイスに関して、本明細書で説明されたプロセスを実行して、手の位置を決定することができる。さらに、バックエンドデバイスは、手の位置を示すデータをユーザー認識デバイスに送信することができる。次に、ユーザー認識デバイスは、ユーザーに指示を提供するときに、データを使用してユーザーインターフェースを更新することができる。
以下の説明では、マテリアルハンドリング施設内での技術の使用について説明する。本明細書に記載されている施設には、倉庫、配送センター、クロスドッキング施設、オーダーフルフィルメント施設、梱包施設、出荷施設、レンタル施設、図書館、小売店、卸売店、美術館、またはマテリアル(在庫)ハンドリングの1つ以上の機能を実行するためのその他の施設もしくは施設の組み合わせが含まれ得るが、これらに限定されない。他の実装では、本明細書で説明される技術は、他の施設または状況で実装できる。
ここで、本開示の特定の実装形態および実施形態は、様々な態様が示されている添付の図を参照して、以下でより完全に説明される。しかしながら、様々な態様は、多くの異なる形式で実装することができ、本明細書に記載の実装に限定されるものとして解釈されるべきではない。本開示は、本明細書に記載されるように、実施形態の変形を包含する。同様の数字は、全体を通して同様の要素を指す。
図1A~図1Bは、生体認証データをキャプチャする際の指示を提供するプロセス例100をまとめて示す。102において、ユーザー認識デバイス104は、デバイス上に位置する手106を検出することができる。例えば、ユーザー認識デバイス104は、手106をユーザー認識デバイス104の上に位置付けるための指示を含む第1のユーザーインターフェース108を表示することができる。図1A~図1Bの例では、指示は、ユーザーがユーザー認識デバイス104の部分(例えば、リング)の上に手をかざすべきであることを示している。しかしながら、他の例では、指示は、ユーザー認識デバイス104の上に手106を位置付けるようにユーザーに示す他の任意の指示を含むことができる。次に、ユーザー認識デバイス104は、1つ以上のセンサーを使用して、手106を検出することができる。例えば、ユーザー認識デバイス104は、距離センサーを使用して、ユーザー認識デバイス104の上に配置された手106を検出することができる。別の例では、ユーザー認識デバイス104は、1つ以上の画像センサーを使用して、手106を表す画像データを生成することができる。次に、ユーザー認識デバイス104は、画像データを分析して、手106がユーザー認識デバイス104の上に位置していると決定することができる。
110で、ユーザー認識デバイス104は、手106を配置するための目標位置を示す第1のグラフィカル要素112を表示することができる。例えば、手106の検出に基づいて、ユーザー認識デバイス104は、第1のグラフィカル要素112を含む第2のユーザーインターフェース114を表示することができる。第1のグラフィカル要素112は、ユーザー認識デバイス104上に手106を配置するための目標位置に関連付けることができる。場合によっては、目標位置は、ユーザー認識デバイス104上の目標垂直位置および目標水平位置に関連付けることができる。
116で、ユーザー認識デバイス104は、手106の第1の位置を示す第2のグラフィカル要素118を表示することができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104上の手106の第1の位置を決定することができる。場合によっては、ユーザー認識デバイス104は、1つ以上のセンサーを使用して第1の位置を決定する。例えば、ユーザー認識デバイス104は、1つ以上の画像センサーを使用して、手106を表す画像データを生成することができる。次に、ユーザー認識デバイス104は、画像データを使用して特徴データを生成することができ、ここで、特徴データは、手106に関連付けられた1つ以上の属性を表す。1つ以上の属性は、手のひら上の様々な場所、手のひらの中心の場所、指上の場所(例えば、指の始点、指の関節の位置、指の間の部分の位置など)、親指上の位置、手106の方向、手106のポーズ、手106の向き、および/または手106に関連付けられているその他の属性を含むことができるが、これらに限定されない。特徴データを使用して、ユーザー認識デバイス104は、ユーザーの手の水平位置を決定することができる。
さらに、ユーザー認識デバイス104は、距離センサーを使用して、ユーザー認識デバイス104の上の手106の垂直位置を決定することができる。水平位置および垂直位置に少なくとも部分的に基づいて、ユーザー認識デバイス104は、第2のグラフィカル要素118を第2のユーザーインターフェース114上に表示することができ、第2のグラフィカル要素118は、水平位置および垂直位置を示す。例えば、図1A~図1Bの例に示されるように、第2のグラフィカル要素118は、第2のユーザーインターフェース114上の第1のグラフィカル要素112から下方に位置している。これは、手106が、目標水平位置よりもユーザー認識デバイス104からさらに後ろに位置していることを示し得る。さらに、第2のグラフィカル要素118は、第1のグラフィカル要素112よりも小さい。これは、手106が、目標垂直位置よりもユーザー認識デバイス104の近くに位置していることを示し得る。
120で、ユーザー認識デバイス104は、デバイス上の手106の第2の位置を決定することができ、122で、ユーザー認識デバイス104は、手106の第2の位置を示す第2のグラフィカル要素118を表示することができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104上での手106の水平方向の動き124を検出することができる。場合によっては、ユーザー認識デバイス104は、1つ以上の画像センサーを使用して追加の画像データを生成することによって、水平方向の動き124を検出する。次に、ユーザー認識デバイス104は、追加の画像データを使用して特徴データを生成することができる。特徴データを使用して、ユーザー認識デバイス104は、手106の第2の位置を決定することができる。次に、ユーザー認識デバイス104は、第2のユーザーインターフェース114上の第2のグラフィカル要素118のポジションを更新して、手106の新しい水平位置を示すことができる。示されるように、第2のグラフィカル要素118は、ここで、第1のグラフィカル要素112内の中心に置かれる。これは、手106が目標水平位置に近接して位置していることを示し得る。
126で、ユーザー認識デバイス104は、デバイス上の手106の第3の位置を決定することができ、128で、ユーザー認識デバイス104は、手106の第3の位置を示す第2のグラフィカル要素118を表示することができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104上での手106の垂直方向の動き130を検出することができる。場合によっては、ユーザー認識デバイス104は、距離センサーを使用して垂直方向の動き130を検出する。次に、ユーザー認識デバイス104は、第2のユーザーインターフェース114上の第2のグラフィカル要素118のサイズを更新して、手106の新しい垂直位置を示すことができる。示されるように、第2のグラフィカル要素118のサイズは、ほぼ第1のグラフィカル要素112のサイズである。これは、手106が目標垂直位置に位置していることを示し得る。
132で、ユーザー認識デバイス104は、手106が目標位置に近接して位置していると決定することができる。例えば、ユーザー認識デバイス104は、手106の水平位置が目標水平位置まで閾値距離内に位置し、手106の垂直位置が目標垂直位置まで閾値距離内に位置することを決定することができる。したがって、ユーザー認識デバイス104は、手106が目標位置に近接して位置していると決定することができる。場合によっては、図1A~図1Bの例に示されるように、ユーザー認識デバイス104は、次に、第1のグラフィカル要素112を更新して、手106が標的位置に近接して位置していることを示すことができる。例えば、ユーザー認識デバイス104は、実線を含むように第1のグラフィカル要素112の線を更新することができる。
図2A~図2Fは、ユーザー認識デバイス104上の目標位置に手を置かせるための指示を提供するユーザー認識デバイス104の例を示す。示されるように、ユーザー認識デバイス104は、第1のグラフィカル要素204を含むユーザーインターフェース202を表示することができる。第1のグラフィカル要素204は、ユーザー認識デバイス104の上に手を置かせるための目標位置を示すことができる。例えば、第1のグラフィカル要素204は、ユーザー認識デバイス104上の目標垂直位置と目標水平位置の両方を示すことができる。場合によっては、図2A~図2Fの例に示されるように、第1のグラフィカル要素204は、破線の円を含む。しかしながら、他の例では、第1のグラフィカル要素204は、他のタイプの線を有する他の任意の形状を含むことができる。
ユーザーインターフェース202は、ユーザー認識デバイス104上の手の位置を示す第2のグラフィカル要素206をさらに含む。さらに、ユーザー認識デバイス104は、目標位置に手を置かせるための指示208を含む。例えば、図2Aの例では、第2のグラフィカル要素206は、第1のグラフィカル要素204の下に位置している。これは、手の水平位置が、目標水平位置よりもユーザー認識デバイス104のイメージングコンポーネントに対してさらに後ろ(例えば、負のy方向)に位置しているためであり得る。したがって、指示208(1)は、ユーザーが、イメージングコンポーネントに対して手を「前方に」(例えば、正のy方向に)動かす必要があることを示すことができる。
図2Bの例では、第2のグラフィカル要素206は、第1のグラフィカル要素204の上に位置している。これは、手の水平位置が、目標水平位置よりもイメージングコンポーネントに対してさらに前方(例えば、正のy方向)に位置しているためであり得る。したがって、指示208(2)は、ユーザーが、イメージングコンポーネントに対して手を「後方に」(例えば、負のy方向に)動かす必要があることを示すことができる。
図2Cの例では、第2のグラフィカル要素206は、第1のグラフィカル要素204の左側に位置している。これは、手の水平位置が、目標水平位置よりもイメージングコンポーネントに対してさらに左側(例えば、負のx方向)にあるためであり得る。したがって、指示208(3)は、ユーザーが、イメージングコンポーネントに対して手を「右」に(例えば、正のx方向に)動かす必要があることを示すことができる。
図2Dの例では、第2のグラフィカル要素206は、第1のグラフィカル要素204の右側に位置している。これは、手の水平位置が、目標水平位置よりもイメージングコンポーネントに対してさらに右側(例えば、正のx方向)にあるためであり得る。したがって、指示208(4)は、ユーザーが、イメージングコンポーネントに対して手を「左」に(例えば、負のx方向に)動かす必要があることを示すことができる。
図2Eの例では、第2のグラフィカル要素206のサイズは、第1のグラフィカル要素204のサイズよりも小さい。これは、手の垂直位置が目標垂直位置よりもイメージングコンポーネントの近くにある(例えば、負のz方向に)ためであり得る。したがって、指示208(5)は、ユーザーが、イメージングコンポーネントに対して手を「より高く」(例えば、正のz方向に)動かす必要があることを示すことができる。
図2Fの例では、第2のグラフィカル要素206のサイズは、第1のグラフィカル要素204のサイズよりも大きい。これは、手の垂直位置が、目標垂直位置よりもイメージングコンポーネントから離れている(例えば、正のz方向で)ためであり得る。したがって、指示208(6)は、ユーザーが、イメージングコンポーネントに対して手を「より低く」(例えば、負のz方向に)動かす必要があることを示すことができる。
図3A~図3Fは、生体認証データをキャプチャする際に追加情報を入力するための指示を提供するユーザーインターフェースの例を示す。例えば、図3Aの例に示されるように、ユーザー認識デバイス104は、手のひらをユーザー認識デバイス104上にかざして取引の支払いを行うことに関連する指示304を含むユーザーインターフェース302を提供することができる。ユーザーインターフェース302は、ユーザー認識デバイス104の画像306と、ユーザーが新しいアカウントにサインアップするために選択することができるグラフィカル要素308とをさらに含む。場合によっては、ユーザー認識デバイス104は、ユーザーが最初にユーザー認識デバイス104に接近したときに、ユーザーインターフェース302を表示することができる。
図3Bの例では、ユーザー認識デバイス104は、ユーザーの手のひらをユーザー認識デバイス104上にかざして取引の支払いを行うことに関連する指示312を含むユーザーインターフェース310を提供することができる。さらに、ユーザーインターフェース310は、ユーザー認識デバイス104の上に手のひらを置くユーザーの画像314を含む。言い換えれば、画像314は、ユーザーがどのように手のひらをユーザー認識デバイス104の上に位置付けるべきかを表す。場合によっては、ユーザー認識デバイス104は、ユーザーの手のひらを検出する直前にユーザーインターフェース310を表示することができる。
図3Cの例では、ユーザー認識デバイス104は、デビットカードまたはクレジットカードをユーザー認識デバイス104に挿入するための指示318を含むユーザーインターフェース316を提供することができる。ユーザーインターフェース316は、デビットカードまたはクレジットカードをどのようにユーザー認識デバイス104のカードリーダーに挿入するかの画像320をさらに含む。場合によっては、ユーザー認識デバイス104は、ユーザーが新しいアカウントを作成しているとき、および/または既存のアカウントの支払い情報を更新しているときに、ユーザーインターフェース316を表示することができる。
図3Dの例では、ユーザー認識デバイス104は、デビットカードまたはクレジットカードを取り出すための指示324を含むユーザーインターフェース322を提供することができる。ユーザーインターフェース322はまた、デビットカードまたはクレジットカードが依然としてユーザー認識デバイス104のカードリーダーにあることを示す画像326を含む。場合によっては、ユーザー認識デバイス104は、ユーザー認識デバイス104がデビットカードまたはクレジットカードから支払い情報を読み取り、デビットカードまたはクレジットカードが依然としてカードリーダーに挿入された後、ユーザーインターフェース322を表示する。
図3Eの例では、ユーザー認識デバイス104は、アカウントを選択するための指示330を含むユーザーインターフェース328を提供することができる。ユーザーインターフェース328は、ユーザーによって選択可能なグラフィカル要素332(1)~(3)をさらに含み、各グラフィカル要素332(1)~(3)は、ユーザーの可能なアカウントに関連付けられている。場合によっては、各グラフィカル要素332(1)~(3)は、アカウントに関連付けられた情報を含むことができる。情報は、電話番号、電子メールアドレス、ユーザー名、および/またはその他の種類の情報を含むことができるが、これらに限定されない。図3Eの例は、3つのグラフィカル要素332(1)~(3)を含むが、他の例では、ユーザーインターフェース328は、任意の数のグラフィカル要素を含むことができる。
図3Fの例では、ユーザー認識デバイス104は、アカウントに関連付けられた情報を入力するための指示336を含むユーザーインターフェース334を提供することができる。図3Fの例は電話番号を入力するためのものであるが、他の例では、ユーザーインターフェース334は、追加のおよび/または代替のタイプの情報を入力することを可能にし得る。示されるように、ユーザーインターフェース334は、情報がユーザー認識デバイス104に入力されているときにその情報338を表示する。ユーザーインターフェース334は、ユーザーが情報を入力するために使用することができるグラフィカル要素340をさらに含む。
図4A~図4Bは、ユーザー認識デバイスが生体認証データをキャプチャすることができるように、手を置くための目標位置の例を示す。例えば、図4Aの例に示されるように、ユーザー認識デバイス104は、ディスプレイ402(本明細書で説明されるユーザーインターフェースを表示することができる)、光リング404、およびイメージングコンポーネント406を含む。ユーザー認識デバイス104が画像データなどの生体認証データをキャプチャするために、ユーザーは、目標水平位置にあるイメージングコンポーネント406の上に手(例えば、手のひらの中心点)を位置付ける。目標水平位置は、x方向とy方向の両方に関連付けることができる。例えば、目標水平位置は、イメージングコンポーネント406の中心を含むことができ、これは、x方向の第1の線408とy方向の第2の線410との交点によって示される。
場合によっては、ユーザー認識デバイス104は、生体認証データをキャプチャするときに、手が目標水平位置に近接することを可能にできる。例えば、ユーザー認識デバイス104は、手が、目標水平位置の前の第1の閾値距離412(例えば、目標水平位置から正のy方向に移動する)、目標水平位置の後ろの第2の閾値距離414(例えば、目標水平位置から負のy方向に移動する)、目標水平位置の左側の第3の閾値距離416(例えば、目標水平位置から負のx方向に移動する)、および/または目標水平位置の右側の第4の閾値距離418(例えば、目標水平位置から正のx方向に移動する)にあることを可能にできる。場合によっては、第1の閾値距離412、第2の閾値距離414、第3の閾値距離416、および第4の閾値距離418は、同じ閾値距離を含むことができる。場合によっては、第1の閾値距離412、第2の閾値距離414、第3の閾値距離416、および第4の閾値距離418のうちの1つ以上は、異なる閾値距離を含むことができる。本明細書に記載されるように、閾値距離は、5ミリメートル、10ミリメートル、20ミリメートル、および/または他の任意の距離を含むことができるが、これらに限定されない。
さらに、図4Bの例に示されるように、ユーザー認識デバイス104は、イメージングコンポーネント406の上方の距離420(例えば、z方向)に位置する目標垂直位置を含むことができる。いくつかの例では、距離420は85ミリメートルを含む。しかしながら、他の例では、距離420は、他の任意の距離を含むことができる。場合によっては、ユーザー認識デバイス104は、手が目標垂直位置に近接することを可能にできる。例えば、ユーザー認識デバイス104は、手が、目標垂直位置より上の第1の閾値距離422、および/または目標垂直位置より下の第2の閾値距離424にあることを可能にできる。場合によっては、第1の閾値距離422は、第2の閾値距離424と同じである。他の場合では、第1の閾値距離422は、第2の閾値距離424とは異なる。
図4Bの例にさらに示されるように、ユーザー認識デバイス104は、イメージングコンポーネント406の上の最小距離426とイメージングコンポーネント406の上の最大距離428との間でユーザーの手を検出することができる。例えば、距離センサーは、最小距離426と最大距離428との間で手などの物体を検出するように構成することができる。場合によっては、最小距離426は、5ミリメートル、10ミリメートル、20ミリメートル、および/または他の任意の距離を含むことができるが、これらに限定されない。さらに、最大距離428は、100ミリメートル、120ミリメートル、150ミリメートル、および/または他の任意の距離を含むことができるが、これらに限定されない。
図4Cの例では、ユーザー認識デバイス104は、イメージングコンポーネント406の上の円錐の体積形状などの体積形状430を含む目標位置を含むことができる。例えば、目標垂直位置は、依然として、イメージングコンポーネント406の上方の距離420に位置することができ、第1の閾値距離422および第2の閾値距離424を含むことができる。次に、目標水平位置は、体積形状430内で、目標垂直位置内にある位置に位置することができる。場合によっては、手のひらを目標位置内に配置する必要があり得るが、他の例では、手全体を目標位置内に配置する必要があり得る。
図4Dの例では、ユーザー認識デバイス104は、イメージングコンポーネント406の上の体積形状432を含む目標位置を含むことができる。例えば、目標垂直位置は、依然として、イメージングコンポーネント406の上方の距離420に位置することができ、第1の閾値距離422および第2の閾値距離424を含むことができる。次に、目標水平位置は、体積形状432内で、目標垂直位置内にある位置に位置することができる。場合によっては、手のひらを目標位置内に配置する必要があり得るが、他の例では、手全体をターゲット位置内に配置する必要があり得る。
図5は、手のひら502の中心を識別するために、手502を分析する例を示す。例えば、ユーザー認識デバイス104は、手502を描写する画像504を表す画像データを生成することができる。次に、ユーザー認識デバイス104は、画像データに対応する特徴データを生成することができ、ここで、特徴データは、手502に関連する様々な属性を表す。様々な属性は、手502の上に位置する点506~518を少なくとも含むことができる。例えば、ユーザー認識デバイス104は、手首の第1の端部に位置する点506と、手首の第2の反対側の端部に位置する点508とを識別することができる。ユーザー認識デバイス104は、手502の指の底に位置する点510~518をさらに識別することができる。示されているように、点512~518は、指の間の部分に位置している。
点506~518を識別した後、ユーザー認識デバイス104は、識別された点506~518のすべてを含む境界ボックス520を生成することができる。境界ボックス520は、境界ボックス520の角を表す4つの追加の点522~528に関連付けることができる。次に、ユーザー認識デバイス104は、境界ボックス520を使用して、手のひら502の中心点530を識別することができる。例えば、ユーザー認識デバイス104は、手のひらの中心点530が境界ボックス520の中心を含むことを決定することができる。したがって、いくつかの例では、手のひらの中心点530は、手502の水平位置に対応することができる。
場合によっては、本明細書で説明するように、ユーザー認識デバイス104は、画像504を使用して、手502に関連する1つ以上の追加の属性を識別することができる。例えば、手502はy方向に向けられているので、ユーザー認識デバイス104は、手502の向きが満たされていると決定することができる。ユーザー認識デバイス104は、手502がカップ、拳の形状ではない、および/または手502がジェスチャを行っているので、手502の平面形状が満たされていることをさらに決定することができる。むしろ、手502は、ユーザー認識デバイス104が画像504を分析して属性を決定することができるように開いている。さらに、ユーザー認識デバイス104は、手502がユーザー認識デバイス104のイメージングコンポーネントに平行であると決定することができる。これは、イメージングコンポーネントに対する手502の向きに基づいて、手502の手のひらがイメージングコンポーネントの方を向いているためであり得る。
図5の例は、点506~518を識別し、次に点506~518を使用して手のひらの中心点を決定することを説明しているが、他の例では、ユーザー認識デバイス104は、手502上の追加および/または代替の点を識別し、次に、追加および/または代替の点を使用して、手のひらの中心点530を識別することができる。
図6は、ユーザーの生体認証データをキャプチャするためのユーザー認識デバイス104を含むマテリアルハンドリング施設602の環境600の例を示している。この例では、ユーザー認識システムの使用のために、ユーザー認識デバイス104は、ユーザー606の手のひらを描写する画像データを生成し、ユーザー606を登録するために使用される1つ以上のバックエンドサーバ608に画像データを送信する。概して、ユーザー認識システムは、ユーザー認識デバイス104および/またはサーバ608を含むことができる。
場合によっては、ユーザー認識システムの一部またはすべてがマテリアルハンドリング施設602から離れて存在し、他の場合では、ユーザー認識システムの一部またはすべてがマテリアルハンドリング施設602内またはその近くに存在する。図6で描写するように、ユーザー606は、マテリアルハンドリング施設602でのショッピングセッションに従事していてもよく、または従事しようとしていてもよい。例えば、ユーザー606は、在庫場所612(例えば、棚、通路など)からアイテム610を選択し、アイテム610をトート614(例えば、ショッピングカート)に入れる場合がある。在庫場所612は、1つ以上の異なるタイプのアイテム610を収容することができ、ユーザー606は、これらのアイテム610のうちの1つを選ぶ(すなわち、取り出す)ことができる。
図示のように、マテリアルハンドリング施設602(または「施設」)は、図示の画像センサー616などの1つ以上のセンサー、および/または在庫場所612上またはその近くに位置する他のセンサーのアレイを含むことができる。この例では、画像センサー616は、ユーザー606がアイテム610を選択するなどのイベントに関連する結果を決定する際に使用するために、施設602内のビデオデータをキャプチャするように構成される。図6は様々なセンサーの例を示しているが、施設602内のセンサーは、以下で詳細に説明するように、重量センサー(例えば、ロードセル)、マイクロフォンおよび/または同様のものなどの任意の他のタイプのセンサーを含むことができる。図13および図14に関してより詳細に説明されるように、施設602は、ユーザー606が購入したいアイテム610を取り出すなど、ユーザー606に関連する施設602内のイベントを決定するように構成された在庫管理システムに監視され、および/または他の方法で関連付けられ得る。在庫管理システムは、ユーザー606によって選択されたアイテム610を追跡し、ユーザー606によって取り出されたアイテム610のすべてを含む仮想ショッピングカートを維持することができる。したがって、ユーザー606が、ユーザーが取り出したアイテム610を持って施設602を離れたい場合、在庫管理システムは、取り出したアイテム610のコストを、ユーザー606に関連付けられたユーザーアカウントに請求することができる。
図6に示されるように、ユーザー606は、ユーザー認識デバイス104に関連付けられたチェックアウト位置618に近づくことができる。ユーザー606は、施設602をチェックアウトし、アイテム610の代金を支払うために、ユーザー認識システムの使用のために登録したいと決定することができる。あるいは、またはさらに、ユーザーは、施設602に入るときにユーザー認識デバイス104と対話することができる。いずれの場合でも、ユーザー606は、ユーザー認識システムに、ユーザー606を識別するために使用可能なデータを収集させたいと決定することができる。このデータは、ユーザー認識システムによって利用することができ、登録されると、ユーザー606は、ユーザーアカウントにアイテム610の購入を請求するためにユーザー認識システムによって識別されるために手のひらをスキャンするだけでよい。
図6は、ユーザー認識システムの使用のためにユーザー606を登録するための、およびユーザー認識システムがユーザー606の登録を経時的に更新するための技術を高レベルで説明する登録プロセス640の例を示す。ユーザー認識デバイス104は、サーバと同様に、登録プロセス640の技術の少なくとも一部を実行するためのコンポーネントを含むことができる。サーバ608のコンポーネントは、後続の図を参照して以下でさらに詳細に説明される。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104のコンポーネントに電力を供給するように構成された1つ以上のプロセッサ620を備えることができ、プロセッサ620によって少なくとも部分的に実行可能であるコンポーネント、および他のデータを格納するメモリ622をさらに含むことができる。例えば、メモリ622は、ユーザー606の存在を検出するための存在検出コンポーネント630、ユーザー認識システムの使用のためにユーザー606を登録するための様々な動作を実行するように構成されたフロントエンド登録コンポーネント632、およびディスプレイ636を介してユーザー606に提供されるユーザーインターフェースを制御するように構成されたユーザーインターフェースコンポーネント634を含むことができる。
642で、フロントエンド登録コンポーネント632は、ユーザー認識システムの使用のためにユーザー606を登録するための要求を受信することができる。要求は、登録プロセスを開始するためにディスプレイ636に提示されるユーザーインターフェース要素のI/Oインターフェース628(例えば、タッチスクリーン、マウス、キーボードなど)を介して行われる選択などの様々なタイプの入力を含むことができる。さらに、フロントエンド登録コンポーネント632は、登録要求を示すユーザー606からの発話を検出することができる(例えば、「私を登録してください」、「チェックアウトしたい」など)。別の要求例は、ユーザーが、クレジットカード、運転免許証などのようなユーザーIDカードをI/Oインターフェース628内へスライドさせることを含むことができる。しかし、任意のタイプの入力を、フロントエンド登録コンポーネント632によって要求として検出することができる。
いくつかの例では、登録プロセス640の644において、存在検出コンポーネント630は、ユーザー606の存在を示すトリガーを検出するために、プロセッサ620によって実行可能であり得る。存在検出コンポーネント630によって検出されるトリガーは、1つ以上のタイプの入力を含むことができる。例えば、存在検出コンポーネント630は、1つ以上のイメージングコンポーネント626および/または1つ以上の距離コンポーネント638を使用して、ユーザー認識デバイス104の上または近くにあるユーザー606の手のひらを検出するロジックを含むことができる。ユーザー606の存在を示すことができる存在検出コンポーネント630によって検出されるトリガーの他の例は、ユーザー認識デバイス104の1つ以上のI/Oインターフェース628を介してタッチ入力(またはマウスクリックなどの他の入力)を受信することを含むことができる。しかしながら、任意のタイプの入力を、644において存在検出コンポーネント630によってトリガーとして検出することができる。いくつかの例では、644でのトリガー検出は、実行されないことがあるか、または登録要求を受信することに含まれるか、もしくはそれと同じであることがある。
ユーザー606から登録要求を受信した後、フロントエンド登録コンポーネント632は、646で、1つ以上のイメージングコンポーネント626(例えば、カメラ)を使用して画像データ658の生成を開始することができる。例えば、フロントエンド登録コンポーネント632は、イメージングコンポーネント626を利用して、画像または静止画、一連の連続画像、および/またはビデオデータなどの画像データ658を取得することができる。画像データ658は、ユーザー606の手のひらを表すことができ、手のひらのしわ、手のひらの静脈、手のひらおよび手またはユーザー606のその他の部分などに関する幾何学的情報を識別するために使用することができる。場合によっては、画像データ658を取得している間、ユーザーインターフェースコンポーネント634は、ユーザー認識デバイス104に、ユーザー606の手をどのように位置付けるかについての指示を提供させることができる。フロントエンド登録コンポーネント632が、ユーザー606の手のひらまたは他の部分を表す画像データ658を取得すると、ユーザー認識デバイス104は、1つ以上の通信インターフェース624を使用して1つ以上のネットワーク660上で画像データ658をサーバ608に送信(例えば、アップロード、ストリーミングなど)することができる。
ネットワーク660は、機関もしくは個人のイントラネットなどのプライベートネットワーク、インターネットなどのパブリックネットワーク、またはそれらの組み合わせを含むことができる。ネットワーク660は、有線技術(例えば、ワイヤ、光ファイバーケーブルなど)、無線技術(例えば、無線周波数、赤外線、音響、光など)、または他の接続技術を利用することができる。ネットワーク660は、1つ以上のデータネットワークまたは音声ネットワークを含む、任意のタイプの通信ネットワークを表す。ネットワーク660は、有線インフラストラクチャ(例えば、銅ケーブル、光ファイバーケーブルなど)、無線インフラストラクチャ(例えば、セルラー、マイクロ波、衛星など)、または他の接続技術を使用して実装することができる。
通信インターフェース624は、パーソナルエリアネットワーク(PAN)、有線および無線ローカルエリアネットワーク(LAN)、有線および無線ワイドエリアネットワーク(WAN)などに結合するように構成されたデバイスを含むことができる。例えば、通信インターフェース624は、イーサネット、Wi-Fi(商標)などと互換性のあるデバイスを含むことができる。いくつかの例では、通信インターフェース624は、使用されているプロトコルまたは規格のタイプに応じて、ネットワーク660を介して送信する前に、ユーザー認識デバイス104によって生成された画像データ658および/または他のデータ662(例えば、距離センサーからの距離データ)を符号化することができる。
画像データ658を受信すると、バックエンドサーバ608の1つ以上のコンポーネントは、画像データ658を使用して特徴データを生成することができる。この特徴データは、ベクトル形式とすることができ、手のひらを他のユーザーの手のひらから区別するために使用することができる、ユーザーの手のひらに関する特性を表すことができる。この登録プロセス640は、特徴データを生成するサーバ608を説明しているが、他の場合では、ユーザー認識デバイス104は、特徴データを生成するように構成することができ、画像データ658に加えてまたは画像データ658以外の特徴データをサーバへ送信することができることを理解されたい。
650で、サーバ608の1つ以上のコンポーネントは、ユーザー606のユーザープロファイルに関連して、登録データベースに特徴データを格納する。すなわち、この手のひら特徴データは、施設602またはユーザー認識システムに関連する他の施設でユーザー606を後で識別するために、後続の画像データから生成される特徴データと比較できるように格納される。
例えば、652で、イメージングコンポーネント626は、ユーザー606が後日施設602に戻ったときなどに、ユーザー606の手のひらの追加の画像データ658を受信する。サーバ608がユーザー認識デバイス104から追加の画像データ658を受信した後、サーバは、追加の画像データに基づいて追加の特徴データを生成することができる。この時点で、サーバ608の1つ以上のコンポーネントは、追加の画像データ658に関連付けられたユーザー606を識別する目的で、追加の特徴データをそれぞれのユーザープロファイルに格納された特徴データと比較することができる。この例では、ユーザー認識システムは、654で生成された追加の特徴データを、648で生成され、ユーザー606のユーザープロファイルに関連して格納された特徴データと比較し、したがって、656で、それがユーザープロファイルを識別することを決定する。場合によっては、ユーザープロファイルを識別することに加えて、ユーザー認識システムは、ユーザー606のユーザープロファイルに関連する登録データベースに追加の特徴データを格納することができる。
図7は、ユーザー認識システムの機能の少なくとも一部をサポートするように構成されたサーバ608のブロック図、ならびにユーザー認識システムを使用するためにユーザー606を登録するためのシステム内のデータのフローの例を含む、環境700の例を示す。
図示のように、環境700は、クライアント側702およびサーバ側704を含む。しかしながら、これは単なる例示であり、技術の一部またはすべては、完全にクライアント側702で、または完全にサーバ側704で実行することができる。「1」で、フロントエンド登録コンポーネント632は、ユーザー認識システムの使用のためにユーザー606を登録するための要求を受信することができる。例えば、要求は、登録プロセスを開始するためにディスプレイ上に提示されるユーザーインターフェース要素のI/Oインターフェース628(例えば、タッチスクリーン、マウス、キーボードなど)を介して行われる選択などの様々なタイプの入力を含むことができる。さらに、フロントエンド登録コンポーネント632は、登録要求を示すユーザー606からの発話を検出することができる(例えば、「私を登録してください」、「チェックアウトしたい」など)。別の要求例は、ユーザー606が、クレジットカード、運転免許証などのようなユーザーIDカードをI/Oインターフェース628内へスライドさせることを含むことができる。しかし、任意のタイプの入力を、フロントエンド登録コンポーネント632によって要求として検出することができる。
登録要求を受信すると、フロントエンド登録コンポーネント632は、イメージングコンポーネント626をアクティブ化するか、他の方法で利用して、ユーザー606の手のひらを表す画像データ658を生成することができる。次に、「2」で、ユーザー認識デバイス104は、画像データ658をキャプチャし、「3」で、画像データ658をサーバ608に送信する。例えば、ユーザー認識デバイス104は、画像データ658を符号化して、ネットワーク660を介してサーバ608に送信することができる。さらに、場合によっては、焦点が合っていない場合、ユーザーの手のひらの特性の識別可能性の閾値レベルがない場合などに、画像のいくつかを削除することができる。この削除は、クライアント側702および/またはサーバ側704で生じ得る。
「4」で、サーバ608は、画像データを受信し、「5」で、手のひら識別コンポーネント708の手のひら特徴生成コンポーネント706は、画像データ658から手のひら特徴データを抽出することができる。いくつかの例では、手のひら特徴データを抽出する前に、手のひら特徴生成コンポーネント706は、手のひら特徴データを抽出する前に、画像データ658を処理するための様々な動作を実行することができる。例えば、手のひら特徴生成コンポーネント706は、最初にユーザー検出を実行して、画像データ658がユーザー606の手のひらを表すことを決定することができる。例えば、手のひら特徴生成コンポーネント706は、ハードウェアベースのユーザー検出技術を実行する統合センサープロセッサ(ISP)を利用することができる。いくつかの例では、様々なソフトウェア技術を追加的に、または代替的に実行することができる。いずれの場合も、ユーザー606の少なくとも一部を描写し、画像データ658によって表される画像について、境界ボックスを、ユーザー606の検出された手の周りに出力することができる。さらに、手のひら特徴生成コンポーネント706は、ユーザー606の手のひらを共通の座標系に位置合わせするために、手ポーズ推定を実行することができる。手の画像を共通の座標セクションに位置合わせした後、手のひらに対応する画像データの部分を識別してトリミングすることができる。画像データのこの残りの部分は、その後、例えば、画像データのトリミングされたセクション上でニューラルネットワークを実行することによって、そこから特徴を抽出するために使用することができる。いくつかの例では、手ポーズ推定は、ユーザー606の手のひらを表す特徴の抽出を改善することができる。ユーザー606の手が位置合わせされると、手のひら特徴生成コンポーネント706は、画像データ658から特徴(例えば、手のひら特徴データ)を抽出することができる。いくつかの例では、訓練されたモデルは、画像データ658を距離空間に埋め込まれた特徴(例えば、手のひら特徴データ)に変換する三重損失関数を利用することができ、これは、例えば二乗距離計算を使用する後続の特徴ベクトルとの比較を可能にし得る。
「6」で、手のひら特徴集約コンポーネント710は、様々な画像データ658から特徴データ(例えば、手のひら特徴データ)を集約することができる。例えば、画像データ658は、異なる角度、異なる照明条件、または他の異なる特性の下でのユーザー606の手を表すことができる。手のひら特徴集約コンポーネント710は、特徴ベクトルを平均化することなどによって、手のひら特徴データを一緒に集約することができる。
「7」で、品質チェックコンポーネント712は、手のひら特徴データに対して品質チェックを実行することができる。例えば、品質チェックコンポーネント712は、訓練されたモデルを利用して、抽出された手のひら特徴データの品質の全体的な測定基準を決定することができる。全体的な測定基準が不十分であるか、または閾値品質レベルを下回っている場合、ユーザー認識システムは、追加の画像データ658を取得することを要求することができる。さらに、または代替として、品質チェックコンポーネント712は、重複排除プロセスを実行して、手のひら特徴データに関連付けられたユーザーがまだシステムに登録されていないことを確認することができる。全体的な品質測定基準が良好または許容可能である場合、重複排除プロセスが、ユーザーが以前にシステムに登録したことを明らかにしない場合、バックエンド登録コンポーネント714は、データを「8」で集約することができる。
例えば、「8」で、バックエンド登録コンポーネント714は、手のひら特徴データを集約し、「9」で登録データベース716にユーザーを登録することができる。バックエンド登録コンポーネント714は、手のひら特徴データと、ユーザー認識システムの使用のために登録されることを要求するユーザー606のユーザープロファイルとの間の関連付け(例えば、マッピング)を格納することができる。
図8は、ユーザー認識システムの機能の少なくとも一部をサポートするように構成されたサーバ608のブロック図と、ユーザー認識システムのユーザー606を識別し、場合によってはユーザーの登録を更新するためのシステム内のデータフローの例を含む環境800の例を示す。図示のように、環境800は、クライアント側802およびサーバ側804を含む。しかしながら、これは単なる例示であり、技術の一部またはすべては、完全にクライアント側802で、または完全にサーバ側804で実行することができる。
「1」で、ユーザーはユーザー認識システムでサインインすることを要求する。例えば、存在検出コンポーネント630は、ユーザー606の存在を示すトリガーを検出するために、プロセッサ620によって実行可能であり得る。存在検出コンポーネント630によって検出されるトリガーは、1つ以上のタイプの入力を含むことができる。例えば、存在検出コンポーネント630は、1つ以上のイメージングコンポーネント626を使用して、ユーザー606の一部(例えば、ユーザー認識デバイス104のイメージングコンポーネント626の上の手)を検出するためのロジックを含むことができる。ユーザー606の存在を示すことができる存在検出コンポーネント630によって検出されるトリガーの他の例は、ユーザー認識デバイス104の1つ以上のI/Oインターフェース628を介してタッチ入力(またはマウスクリックなどの他の入力)を受信することを含むことができる。しかしながら、任意のタイプの入力は、存在検出コンポーネント630によってトリガーとして検出することができる。
ユーザーからのサインイン要求を識別すると、「2」で、1つ以上のイメージングコンポーネント626は、ユーザー606の手のひらおよび/またはユーザーの別の部分を表す画像データ658を生成することができる。「3」で、ユーザー認識デバイス104は、画像データ658をサーバ608に送信することができる。例えば、ユーザー認識デバイス104は、画像データ658を符号化して、ネットワーク660を介してサーバ608に送信することができる。この場合も、画像データ658の一部は、画像データの焦点が合っていない、画像データが閾値未満の識別可能性を有する、などに基づいて破棄することができる。
「4」で、サーバは、画像データ658を受信することができ、「5」で、手のひら特徴生成コンポーネント706は、画像データ658から手のひら特徴データを抽出することができる。いくつかの例では、手のひら特徴データを抽出する前に、手のひら特徴生成コンポーネント706は、手のひら特徴データを抽出する前に、画像データ658を処理するための様々な動作を実行することができる。例えば、手のひら特徴生成コンポーネント706は、最初に手のひら検出を実行して、画像データ658がユーザー606の手を表すことを決定することができる。例えば、手のひら特徴生成コンポーネント706は、ハードウェアベースのユーザー検出技術を実行する統合センサープロセッサ(ISP)を利用することができる。いくつかの例では、様々なソフトウェア技術を追加的に、または代替的に実行することができる。いずれの場合も、ユーザー606を描写し、画像データ658によって表される画像について、境界ボックスを、ユーザー606の検出された手の周りに出力することができる。さらに、手のひら特徴生成コンポーネント706は、手ポーズ推定を実行して、ユーザー606の顔を共通の座標系に位置合わせすることができる。いくつかの例では、手ポーズ推定は、ユーザー606の手を表す特徴の抽出を改善することができる。ユーザー606の手が位置合わせされると、手のひら特徴生成コンポーネント706は、画像データ658から特徴(例えば、手のひら特徴データ)を抽出することができる。いくつかの例では、訓練されたモデルは、画像データ658を距離空間に埋め込まれた特徴(例えば、手のひら特徴データ)に変換する三重損失関数を利用することができ、これは、例えば二乗距離計算を使用する後続の特徴ベクトルとの比較を可能にし得る。
「6」で、手のひら特徴集約コンポーネント710は、様々な画像データ658から特徴データ(例えば、手のひら特徴データ)を集約することができる。例えば、画像データ658は、異なる角度、異なる照明条件、または他の異なる特性の下でのユーザー606の手を表すことができる。手のひら特徴集約コンポーネント710は、特徴ベクトルを平均化することなどによって、手のひら特徴データを一緒に集約することができる。
「7」で、手のひら特徴対応コンポーネント806は、画像データ658に関連付けられた集約された特徴と、それぞれのユーザープロファイルに関連付けられて格納されたそれぞれの特徴データとの間の類似性を示す1つ以上のスコアを生成することができる。いくつかの例では、これらの対応スコアは、画像データに関連付けられた特徴ベクトルと、登録データベース716内のユーザープロファイルに関連付けられて格納されたそれぞれの手のひら特徴データのそれぞれの特徴ベクトルとの間の「距離」に少なくとも部分的に基づいて決定することができる。
「8」で、同一性決定コンポーネント808は、対応スコアに基づいてユーザーの同一性を決定することができる。例えば、同一性決定コンポーネント808は、画像データ658に関連付けられた特徴ベクトルに最も近い距離を有する特徴ベクトルに関連付けられたユーザープロファイルを識別することができ、関連するユーザーを、画像データ658に関連付けられたユーザーとみなすことができる。
「9」で、場合によっては、登録更新コンポーネント810は、画像データに関連付けられた最近受信された手のひら特徴データを使用して、識別されたユーザーの登録を更新することができる。例えば、登録更新コンポーネント810は、登録データの更新をもたらす事前定義されたイベントの発生を検出することができる。これは、画像データ658に関連した施設で発生する取引の特性(例えば、アイテムのコストまたは数)に基づき、ユーザープロファイルに関連付けられた現在の特徴データと以前の特徴データとの間の変化の閾値量に基づき、ユーザープロファイルに関連付けられたユーザーからの明白な要求などに基づき、最近のまたは最近でない特徴データがプロファイルに関連付けられてから経過した所定の時間を含むことができる。場合によっては、事前定義されたイベントは、受信した手のひら特徴データが、前述の高閾値信頼水準よりも高い信頼水準で識別されたユーザーに対応することを決定する監査コンポーネントを含むことができる。すなわち、ステップ「7」~「8」を参照して説明された認識プロセスは、登録データを参照して実行することができるが、監査コンポーネントは、登録データおよび画像の両方、ならびに/または以前の認識の試みに関連する特徴データを使用して信頼水準を決定することができる。その後、監査コンポーネントが比較的高い信頼水準よりも高い信頼水準を計算する場合、登録更新コンポーネント810は、識別されたユーザーの登録データを更新することを決定することができる。
「10」で、登録更新コンポーネント810は、登録データベース716内の対応するユーザープロファイルに関連付けられた登録データを更新する。上記のように、これは、特徴データおよび/または画像データを、プロファイルに関連付けられた既存の特徴データおよび/または画像データと一緒に格納すること、既存の特徴データと新しい特徴データとを平均化すること、および/または同様のことを含むことができる。
図9は、ユーザー認識システムの機能の少なくとも一部をサポートするように構成されたユーザー認識デバイス104の構成例を示している。いくつかの例では、本明細書で説明されるユーザー認識システムは、サーバ608と併せてユーザー認識デバイス104によって完全に、または少なくとも部分的にサポートすることができる。ユーザー認識デバイス104は、1つ以上の格納された指示を実行するように構成された1つ以上のハードウェアプロセッサ620(プロセッサ)を含むことができる。プロセッサ620は、1つ以上のコアを含むことができる。ユーザー認識デバイス104は、プロセッサ620またはユーザー認識デバイス104の他の部分が他のデバイスと通信することを可能にするために、1つ以上の入力/出力(I/O)インターフェース628を含むことができる。I/Oインターフェース628は、相互統合回路(I2C)、シリアルペリフェラルインターフェースバス(SPI)、USB実装者フォーラムRS-232によって公布されたユニバーサルシリアルバス(USB)、などを含むことができる。
ユーザー認識デバイス104はまた、1つ以上の通信インターフェース624を含むことができる。通信インターフェース624は、ユーザー認識デバイス104と、サーバ608、インターフェースデバイス、ルータなどの他のデバイスとの間の通信を提供するように構成される。通信インターフェース624は、パーソナルエリアネットワーク(PAN)、有線および無線ローカルエリアネットワーク(LAN)、有線および無線ワイドエリアネットワーク(WAN)などに結合するように構成されたデバイスを含むことができる。例えば、通信インターフェース308は、イーサネット、Wi-Fi(商標)などと互換性のあるデバイスを含むことができる。
ユーザー認識デバイス104は、1つ以上の距離コンポーネント638をさらに含むことができる。距離コンポーネント638は、IRセンサー、LIDARセンサー、および/または物体の距離を検出することができる任意の他のタイプのセンサーを含むことができるが、これらに限定されない。さらに、ユーザー認識デバイス104は、1つ以上の照明コンポーネント902を含むことができる。。場合によっては、照明コンポーネント902は、イメージングコンポーネント(例えば、イメージングコンポーネント406)の周りに配置された光リングを含む。場合によっては、ユーザー認識デバイス104は、照明コンポーネント902を使用して、ユーザーにフィードバックを提供する。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104が、ユーザーの手を検出したとき、ユーザーの手が目標位置に位置していると決定したとき、ユーザーに関連付けられたユーザープロファイルを識別したとき、および/または同様のとき、1つ以上のパターンを使用して照明コンポーネント902に光を放出させることができる。
ユーザー認識デバイス104はまた、ユーザー認識デバイス104の様々なモジュールとコンポーネントとの間でのデータの転送を可能にする1つ以上のバスまたは他の内部通信ハードウェアもしくはソフトウェアを含むことができる。
図9に示すように、ユーザー認識デバイス104は、1つ以上のメモリ622を含む。メモリ622は、1つ以上のコンピュータ可読記憶媒体(CRSM)を含む。CRSMは、電子記憶媒体、磁気記憶媒体、光学記憶媒体、量子記憶媒体、機械的コンピュータ記憶媒体などのうちの任意の1つ以上であり得る。メモリ622は、ユーザー認識デバイス104の動作のために、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。いくつかの機能モジュールの例が、メモリ622に格納されて示されているが、同じ機能は、代替的に、ハードウェア、ファームウェアにおいて、またはシステムオンチップ(SOC)として実装することができる。
メモリ622は、少なくとも1つのオペレーティングシステム(OS)904を含むことができる。OS904は、I/Oインターフェース628、イメージングコンポーネント626、ディスプレイ636、距離コンポーネント638、および照明コンポーネント902などのハードウェアリソースデバイスを管理するように構成され、プロセッサ620上で実行されるアプリケーションまたはモジュールに様々なサービスを提供する。OS904は、FreeBSDプロジェクトによって公布されたFreeBSD(商標)オペレーティングシステムのバリアント、その他のUNIX(商標)またはUNIXのようなバリアント、LinusTorvaldsによって公布されたLinux(商標)オペレーティングシステムのバリエーション、米国ワシントン州レドモンドのMicrosoftCorporationのWindows(登録商標)Serverオペレーティングシステムなどを実装することができる。
以下のコンポーネントのうちの1つ以上もまた、メモリ622に格納することができる。これらのモジュールは、フォアグラウンドアプリケーション、バックグラウンドタスク、デーモンなどとして実行できる。
通信コンポーネント906は、サーバ608および/または他のデバイスとの通信を確立するように構成することができる。通信は、認証され、暗号化などが行われ得る。
登録コンポーネント908は、ユーザー認識システムを使用するためにユーザーを登録するための様々な操作を実行するように構成することができる(例えば、バックエンド登録コンポーネント714と同様)。例えば、登録コンポーネント908は、様々な動作を実行することができ、および/または他のコンポーネントに様々な動作を実行させて、ユーザーをユーザー認識システムに登録することができる。場合によっては、登録コンポーネント908は、ユーザーの手のひらまたは他の部分を描写する画像データ658を分析するための動作を実行する手のひら識別コンポーネント910を少なくとも部分的に制御することができる。いくつかの例では、登録コンポーネント908は、手のひら識別コンポーネント910に画像データ658を分析させ、手のひら特徴データ912などの、ユーザーの手のひらを表す特徴を抽出させることができる。
手のひら特徴データ912を取得、決定、および/または生成した後、登録コンポーネント908は、ユーザーがユーザー認識システムの使用のために登録されていることを示す登録データベース914にユーザーを登録することができる。いくつかの例では、登録コンポーネント908は、様々なデータを、ユーザーに関連付けられているユーザープロファイル/アカウント916に関連付ける、またはマッピングすることができる。例えば、登録コンポーネント908は、登録されたユーザーごとに、それぞれの手のひら特徴データ912を、登録データベース914内の対応するユーザープロファイル916にマッピングすることができる。したがって、登録データベース914は、ユーザープロファイル916の表示、ならびに各ユーザープロファイル916に関連付けられたユーザーのデータを格納することができる。ユーザーがユーザー認識システムの使用のために登録されるとき、登録コンポーネント908は、ユーザーの手のひら特徴データ912とそのユーザーのユーザープロファイル916との間の関連付けをマッピングまたは格納することができる。
さらに、登録コンポーネント908は、訓練コンポーネント918に1つ以上の訓練されたモデル920を訓練させることができる。訓練コンポーネント918は、手のひら特徴データ912を利用して、訓練されたモデル920を訓練し、画像データ658から手のひら特徴データ912を抽出および/または生成するための様々な動作を実行することができる。訓練されたモデル920は、人工ニューラルネットワーク、分類器、決定木、サポートベクターマシン、ベイジアンネットワークなどを含むがこれらに限定されない機械学習モデルなどの任意のタイプのモデルを含むことができる。
特定の例として、訓練されたモデル920は、入力として受信された画像データ658を分析するように訓練された、1つ以上の畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク、および/または他の任意の人工ネットワークを含むまたは備えることができ、ユーザーの手のひらを表す手のひら特徴データ912を抽出、決定、識別、生成などすることができる。特定の例として、手のひら特徴データ912は、ユーザーの手のひらを表す128次元の特徴ベクトルを含むことができる。訓練されたモデル920が1つ以上のCNNを含む例では、様々な関数を利用して、画像データ658を三重項損失関数などの距離空間に変換することができる。したがって、訓練コンポーネント918は、三重項損失関数などの様々な関数を使用して、訓練されたモデル920のCNNを訓練して、入力画像データ658から手のひら特徴データ912を抽出、識別、または他の方法で決定することができる。距離空間に入ると、抽出された特徴データと、登録データベース914に格納された特徴データとの間の距離を計算することによって、抽出された特徴データを比較または照合することができる。例えば、特徴データが、訓練されたモデル920によって画像データ658から手のひら特徴データ912に抽出されるとき、抽出された手のひら特徴データ912は、次に、登録データベース914に格納されたデータと比較されて、入力画像データ658で表されるユーザーのユーザープロファイルを識別することができる。例えば、抽出された手のひら特徴データ912は、登録データベース914に格納されたベクトルと比較されるベクトルを含むことができ、これにより、どの格納されたベクトルが、抽出された特徴データ間の最小の「距離」を有するかを識別する。距離が小さいほど、抽出された特徴データと、ユーザー認識システムの使用のために登録されているユーザーを表す格納された特徴データとの間の対応の強さが近くなる。いくつかの例では、訓練されたモデル920によって利用されるネットワークに応じて、2つのベクトル間の角度の正弦を見つけるなど、他の計算を実行することができる。しかしながら、訓練されたモデル920には、任意のタイプのモデルを利用することができる。
手のひら識別コンポーネント910は、様々な動作を実行するための様々なサブコンポーネントを含むことができる。例えば、手のひら識別コンポーネント910は、画像データ658から特徴データを抽出するか、さもなければ生成するために、手のひら特徴生成コンポーネント922を含むことができる(例えば、手のひら特徴生成コンポーネント706と同様)。手のひら特徴生成コンポーネント910は、訓練されたモデル920を利用することができ、および/またはアルゴリズムを含み、任意のタイプの特徴抽出方法もしくは埋め込みを実行して、画像データ658を分析し、手のひら特徴データ912を抽出することができる。例えば、手のひら特徴生成コンポーネント922は、クラスタリング、人工ニューラルネットワーク、スケール不変特徴変換、エッジ検出、または任意の他のタイプの抽出もしくは埋め込み技術などの最先端のモデルを利用して、画像データ658から手のひら特徴データ912抽出することができる。
手のひら識別コンポーネント910は、ユーザーの特徴データを集約するように構成された手のひら特徴集約コンポーネント924をさらに含むことができる(例えば、手のひら特徴集約コンポーネント710と同様)。例えば、手のひら特徴集約コンポーネント924は、手のひら特徴データ912内の特徴を平均化することによってなど、ユーザーを描写する画像のグループから抽出された手のひら特徴データ912を組み合わせることができる。
ユーザーがユーザー認識システムの使用のために登録されると、同一性決定コンポーネント926を利用して、ユーザー認識デバイス104と相互作用したユーザーの同一性を決定および/または検証することができる。例えば、ユーザー認識デバイス104は、画像データ658および同一性決定コンポーネント926(同一性決定コンポーネント808と同様であり得る)を使用して、ユーザーの同一性を決定することができ、登録データベース914は、例えば、そのユーザーの同一性に関連付けられているユーザープロファイル916を示すことによって、ユーザーの同一性を示す。
同一性決定コンポーネント926は、手のひら特徴対応コンポーネント928に、受信した画像データ658に手のひらが描写されているユーザーを決定または識別するための様々な動作を実行させることができる。例えば、手のひら特徴対応コンポーネント928は、受信画像データ658の手のひら特徴データ912を、ユーザー認識システムに登録されたユーザーの異なるユーザープロファイル916について、登録データベース914に格納された手のひら特徴データ912と比較して、それぞれの手のひら特徴データ912が抽出された手のひら特徴データ912に対応する1人以上のユーザーのユーザープロファイル916を決定することができる。場合によっては、手のひら特徴対応コンポーネント928によって計算されたスコアは、閾値と比較することができ、スコアが閾値よりも大きい場合、ユーザーの識別をもたらすことができる。複数のユーザープロファイルが閾値よりも大きいスコアに関連付けられている場合、最高に関連付けられているユーザープロファイルは、画像データ658に関連付けられていると見なすことができ、および/または適切なユーザーを識別するためにさらに分析を実行することができる。さらに、場合によっては、ユーザー認識システムは、初期比較に基づいて、それぞれの手のひら特徴データ912が抽出された手のひら特徴データ912に最も強く対応するユーザーのユーザープロファイル916の上位の「N」グループを識別するために、セット削減技術を採用することができる。いくつかの例では、単一のユーザー識別情報/プロファイル916は、入力手のひら特徴データ912に対応するものとして決定することができる。しかしながら、いくつかの例では、上位の「N」候補のグループは、訓練されたモデル920によって、抽出された手のひら特徴データ912に対する閾値量の強度(例えば、50%の対応、95%の対応など)に対応するものとして識別することができる。次に、第2レベルのより詳細な分析を実行して、「N」候補から1人のユーザーを識別することができる。
さらに、メモリ622は、古い特徴データの削除およびより最近の特徴データの使用を可能にするために、ユーザープロファイルに関連して格納された手のひら特徴データ912を更新するように構成された登録更新コンポーネント930を格納し得る(例えば、登録更新コンポーネント810と同様)。上で紹介したように、ユーザーが経時的にユーザーの手のひらの画像データを提供すると、登録更新コンポーネント930は、この新しい画像データからの特徴データを使用して、ユーザーに関連する追加の特徴データを生成および格納することができる。さらに、登録更新コンポーネント930は、古い特徴データに関連する重みを削除または軽減することができる。
さらに、メモリ622は、1つ以上の事前定義されたイベントの発生に応答して1つ以上の監査プロセスを実行するように構成された監査コンポーネント932を格納することができる。例えば、監査コンポーネント932は、システムによって以前に行われたエラーを識別するために、それぞれのユーザープロファイルに関連付けられた手のひら特徴データの互いのリッチな比較を含む夜間の監査プロセスを実行することができる。エラーを識別した後、システムはエラーを修正することができ、またこの情報を使用して、登録コンポーネント908によって実行されるものと同様の技術を利用して、訓練されたモデル920をさらに訓練することができる。
さらに、メモリ622は、抽出された手のひら特徴データ912の品質の全体的な測定基準を決定する品質チェックコンポーネント934を格納することができる。例えば、品質チェックコンポーネント934は、様々な理由で、ユーザーのために追加の画像データ658を取得する必要があると決定することができる。
メモリ622はまた、ユーザー認識デバイス104(および/またはユーザー認識デバイス104のイメージングコンポーネント)に対して手の位置を決定するように構成された位置検出コンポーネント936を格納することができる。例えば、そして本明細書で説明されるように、位置検出コンポーネント936は、手に位置する1つ以上の点を決定することができる。次に、位置検出コンポーネント936は、1つ以上の点を使用して、ユーザー認識デバイス104に対して手のひらの中心を識別することができる。場合によっては、位置検出コンポーネント936は、所与の時間間隔で手の位置を決定する。例えば、位置検出コンポーネント936は、ミリ秒、秒、および/または同様のものごとにユーザーの手の位置を決定することができる。いくつかの例では、位置検出コンポーネント936は、画像データ658によって表される各フレーム、画像データ658によって表される1つおきのフレーム、画像データ658によって表される5つおきのフレーム、および/または同様のものを使用してユーザーの手の位置を決定する。
メモリ622はまた、本明細書で説明されるユーザーインターフェースを生成および/または更新するように構成されたユーザーインターフェースコンポーネント634を格納することができる。例えば、手が検出されると、ユーザーインターフェースコンポーネント634は、ディスプレイ636に、手を置くための目標位置を示すグラフィカル要素を含むユーザーインターフェースを提示させることができる。次に、ユーザーインターフェースコンポーネント634は、位置検出コンポーネント936によって決定された位置を使用して、手の現在の位置を示すグラフィカル要素を提示および/または更新することができる。位置検出コンポーネント936が、手の位置が目標位置に近接していることを決定すると、ユーザーインターフェースコンポーネント634は、ユーザー認識デバイス104が生体認証データをキャプチャしたことをユーザーインターフェースに表示させることができる。
図10A~図12は、生体認証データの入力に関連する指示を提供するための様々なプロセスを示している。本明細書で説明されるプロセスは、一連の動作を表す論理流れ図内のブロックの集合として示され、それらのいくつかまたはすべては、ハードウェア、ソフトウェア、またはそれらの組み合わせに実装することができる。ソフトウェアの文脈では、ブロックは、1つ以上のプロセッサによって実行されたとき、列挙された動作を実行するようにプロセッサをプログラムする、1つ以上のコンピュータ可読媒体に格納されたコンピュータ実行可能命令を表してもよい。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが記載されている順序は、特に断りのない限り、限定として解釈されるべきではない。記載されたブロックのうちのいくつでも、プロセス、または代替プロセスを実施するために、任意の順序および/または並列に組み合わされてもよく、すべてのブロックが実行される必要はない。
図10は、ユーザー認識デバイス104に対して目標位置に手を置くことに関連する指示を提供するためのプロセス1000の例の流れ図を示す。1002で、プロセス1000は、電子デバイス上に手を置くことに関連する指示を表示することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104の上に手を位置付けるための指示を含むユーザーインターフェースを表示することができる。場合によっては、ユーザーインターフェースは、ユーザー認識デバイス104の上にどのように手を位置付けるかを示す画像をさらに含む。場合によっては、ユーザー認識デバイス104は、ユーザーを検出する前にユーザーインターフェースを表示する。
1004で、プロセス1000は、電子デバイス上に位置する手を検出することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104の上に位置する手を検出することができる。ユーザー認識デバイス104は、手が、ユーザー認識デバイス104のイメージングコンポーネントの上方の閾値距離内に位置するときに、手を検出することができる。場合によっては、ユーザー認識デバイス104は、距離センサーを使用して手を検出する。場合によっては、ユーザー認識デバイス104は、1つ以上の画像センサーを使用して手を検出する。
1006で、プロセス1000は、電子デバイス上に手を置くための第1の位置を示す第1のグラフィカル要素を表示することを含むことができる。例えば、ユーザー認識デバイス104は、第1のグラフィカル要素を含むユーザーインターフェースを表示することができる。第1のグラフィカル要素は、イメージングコンポーネントの上の第1の垂直位置および第1の水平位置の両方に関連付けることができる。場合によっては、第1のグラフィカル要素は円を含む。しかしながら、他の場合では、第1のグラフィカル要素は他の任意の形状を含むことができる。
1008で、プロセス1000は、手を表す第1のセンサーデータを生成することを含むことができ、1010で、プロセス1000は、第1のセンサーデータに対応する第1の特徴データを分析して、手に関連する1つ以上の第1の属性を決定することを含むことができる。例えば、ユーザー認識デバイス104は、手の検出に基づいて第1のセンサーデータを生成することができる。第1のセンサーデータは、少なくとも、手を表す第1の画像データと、手までの第1の距離を示す第1の距離データとを含むことができる。次に、ユーザー認識デバイス104は、第1のセンサーデータに対応する第1の特徴データを生成することができる。例えば、第1の特徴データは、手の上の1つ以上のキーポイント(例えば、第1の画像データを使用して決定される)および手までの第1の距離(例えば、第1の距離データを使用して決定される)を示すことができる。次に、ユーザー認識デバイス104は、第1の特徴データを使用して、1つ以上の第1の属性を決定することができる。1つ以上の第1の属性は、1つ以上のキーポイントおよび第1の距離を含むことができる。
1012で、プロセス1000は、1つ以上の第1の属性に少なくとも部分的に基づいて、手の第2の位置を決定することを含むことができる。例えば、ユーザー認識デバイス104は、1つ以上の第1の特徴を分析して、手のひらの中心および手までの第1の距離を決定することができる。次に、ユーザー認識デバイス104は、手のひらの中心および第1の距離を使用して第2の位置を決定することができる。例えば、ユーザー認識デバイス104は、第1の距離を使用して手の第2の垂直位置を決定し、手のひらの中心を使用して手の第2の水平位置を決定することができる。
1014で、プロセス1000は、第2の位置が第1の位置に近接していないことを決定することを含むことができる。例えば、ユーザー認識デバイス104は、第2の位置が第1の位置に近接していないことを決定することができる。場合によっては、決定を行うために、ユーザー認識デバイス104は、第2の垂直位置が第1の垂直位置(例えば、z方向)までの閾値距離の外側(例えば、より大きい)にあり、および/または第2の水平位置が、第1の水平位置までの閾値距離の外側にある(例えば、x方向および/またはy方向)ことを決定することができる。
1016で、プロセス1000は、手の第2の位置を示す第2のグラフィカル要素を表示することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザーインターフェースを使用して、第1のグラフィカル要素とともに第2のグラフィカル要素を表示することができる。場合によっては、第2のグラフィカル要素のサイズは、手の第2の垂直位置に対応することができ、第2のグラフィカル要素のポジションは、手の第2の水平位置に対応することができる。場合によっては、ユーザー認識デバイス104は、手を第1の位置に移動させるための1つ以上の指示をさらに表示することができる。
1018で、プロセス1000は、手を表す第2のセンサーデータを生成することを含むことができ、1020で、プロセス1000は、第2のセンサーデータに対応する第2の特徴データを分析して、手に関連する1つ以上の第2の属性を決定することを含むことができる。例えば、ユーザー認識デバイス104は、第2のセンサーデータを生成することができる。第2のセンサーデータは、少なくとも、手を表す第2の画像データと、手までの第2の距離を示す第2の距離データとを含むことができる。次に、ユーザー認識デバイス104は、第2のセンサーデータに対応する第2の特徴データを生成することができる。例えば、第2の特徴データは、手の上の1つ以上のキーポイント(例えば、第2の画像データを使用して決定される)および手までの第2の距離(例えば、第2の距離データを使用して決定される)を示すことができる。次に、ユーザー認識デバイス104は、第2の特徴データを使用して、1つ以上の第2の属性を決定することができる。1つ以上の第2の属性は、1つ以上のキーポイントおよび第2の距離を含むことができる。
1022で、プロセス1000は、1つ以上の第2の属性に少なくとも部分的に基づいて、手の第3の位置を決定することを含むことができる。例えば、ユーザー認識デバイス104は、1つ以上の第2の特徴を分析して、手のひらの中心および手までの第2の距離を決定することができる。次に、ユーザー認識デバイス104は、手のひらの中心および第2の距離を使用して第3の位置を決定することができる。例えば、ユーザー認識デバイス104は、第2の距離を使用して手の第3の垂直位置を決定し、手のひらの中心を使用して手の第3の水平位置を決定することができる。
1024で、プロセス1000は、第3の位置が第1の位置に近接していることを決定することを含むことができる。例えば、ユーザー認識デバイス104は、第3の位置が第1の位置に近接していることを決定することができる。場合によっては、決定を行うために、ユーザー認識デバイス104は、第3の垂直位置が第1の垂直位置(例えば、z方向)までの閾値距離以内にあり、第3の水平位置が、第1の水平位置までの閾値距離以内にある(例えば、x方向およびy方向)ことを決定することができる。
1026で、プロセス1000は、第2のセンサーデータの処理を含むことができる。例えば、いくつかの例では、第3の位置が第1の位置に近接していると決定することに基づいて、ユーザー認識デバイス104は、1つ以上のユーザープロファイルに関連付けられた特徴データに関して第2の特徴データを分析することができる。分析に基づいて、ユーザー認識デバイス104は、第2の特徴データが、ユーザープロファイルに関連付けられた第3の特徴データに対応することを決定することができる。さらに、または代わりに、いくつかの例では、第3の位置が第1の位置に近接していると決定することに基づいて、ユーザー認識デバイス104は、処理のために第2のセンサーデータをサーバ608に送信することができる。
図11は、生体認証データの入力に関連する指示を提供するためのプロセス1100の例の流れ図を示している。1102において、プロセス1100は、電子デバイス上のユーザーの一部を検出することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザー認識デバイス104の上に位置するユーザーの部分を検出することができる。ユーザー認識デバイス104は、ユーザーの部分が、ユーザー認識デバイス104のイメージングコンポーネントの上の閾値距離内に位置するときに、ユーザーの部分を検出することができる。場合によっては、ユーザー認識デバイス104は、距離センサーを使用してユーザーの部分を検出する。場合によっては、ユーザー認識デバイス104は、1つ以上の画像センサーを使用してユーザーの部分を検出する。
1104において、プロセス1100は、電子デバイスに関連する第1の位置を示す第1のグラフィカル要素を表示することを含むことができる。例えば、ユーザーの部分を検出することに基づいて、ユーザー認識デバイス104は、第1のグラフィカル要素を含むユーザーインターフェースを表示することができる。第1のグラフィカル要素は、ユーザー認識デバイス104のイメージングコンポーネントの上の第1の垂直位置および第1の水平位置の両方に関連付けることができる。場合によっては、第1のグラフィカル要素は円を含む。しかしながら、他の場合では、第1のグラフィカル要素は他の任意の形状を含むことができる。
1106において、プロセス1100は、ユーザーの部分を表すセンサーデータを生成することを含むことができ、1108において、プロセス1100は、センサーデータに対応する特徴データを分析して、ユーザーの部分の第2の位置を決定することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザーの部分を検出することに基づいてセンサーデータを生成することができる。センサーデータは、少なくともユーザーの部分を表す画像データと、ユーザーの部分までの距離を示す距離データとを含むことができる。次に、ユーザー認識デバイス104は、センサーデータに対応する特徴データを生成することができる。例えば、特徴データは、ユーザーの部分上の1つ以上のキーポイント(例えば、画像データを使用して決定される)およびユーザーの部分までの距離(例えば、距離データを使用して決定される)を示すことができる。次に、ユーザー認識デバイス104は、1つ以上のキーポイントおよび距離を使用して第2の位置を決定することができる。第2の位置は、第2の垂直位置および第2の水平位置に関連付けることができる。
1110で、プロセス1100は、第2の位置が第1の場所に近接しているかどうかを決定することを含むことができる。例えば、ユーザー認識デバイス104は、第2の位置が第1の位置に近接しているかどうかを決定することができる。場合によっては、ユーザー認識デバイス104は、第2の垂直位置が第1の垂直位置までの閾値距離内にあり(例えば、z方向)、かつ第2の水平位置が第1の水平位置の閾値距離内にある(例えば、x方向およびy方向)という決定に基づいて、第2の位置が第1の位置に近接していると決定することができる。
1110で、第2の位置が第1の位置に近接していないと決定された場合、1112で、プロセス1100は、第2の位置を示す第2のグラフィカル要素を表示することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザーインターフェースを使用して、第1のグラフィカル要素とともに第2のグラフィカル要素を表示することができる。場合によっては、第2のグラフィカル要素のサイズは、ユーザーの部分の第2の垂直位置に対応することができ、第2のグラフィカル要素のポジションは、ユーザーの部分の第2の水平位置に対応することができる。場合によっては、ユーザー認識デバイス104は、ユーザーの部分を第1の位置に移動させるための1つ以上の指示をさらに表示することができる。場合によっては、プロセス1100は次いで、ユーザー認識デバイス104が第2の位置が第1の位置に近接していると決定するまで、1106~1110を繰り返すことができる。
しかしながら、1110で、第2の位置が第1の位置に近接していると決定された場合、1114で、プロセス1100は、センサーデータに関連するアクションを実行することを含むことができる。例えば、第2の位置が第1の位置に近接しているとの決定に基づいて、ユーザー認識デバイス104は、アクションを実行することができる。場合によっては、アクションは、センサーデータおよび/または特徴データを使用してユーザープロファイルを生成することを含むことができる。場合によっては、アクションは、センサーデータおよび/または特徴データに関連付けられたユーザープロファイルを識別することを含むことができる。さらに、場合によっては、アクションは、センサーデータおよび/または特徴データをサーバ608に送信することを含むことができる。
図12は、電子デバイスに対するユーザーの一部の位置を決定するためのプロセス1200の例の流れ図を示している。1202で、プロセス1200は、ユーザーの一部を表す画像データを生成することを含むことができ、1204で、プロセス1200は、画像データに対応する特徴データを生成することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザーの手などのユーザーの部分を表す画像データを生成することができる。次に、ユーザー認識デバイス104は、画像データに対応する特徴データを生成することができる。特徴データは、ユーザーの部分上の1つ以上の点を示すことができる。
1206において、プロセス1200は、特徴データに少なくとも部分的に基づいて、ユーザーの部分に関連する1つ以上の点を決定することを含むことができ、1208において、プロセス1200は、1つ以上の点に少なくとも部分的に基づいて、ユーザーの部分の水平位置を決定することを含むことができる。例えば、ユーザー認識デバイス104は、特徴データによって表される1つ以上の点を決定することができる。次に、ユーザー認識デバイス104は、1つ以上の点を含む境界ボックスを決定することができる。境界ボックスを使用して、ユーザー認識デバイス104は、ユーザーの部分の中心点を決定することができる。場合によっては、ユーザーの部分の中心点は、境界ボックスの中心を含むことができる。次に、ユーザー認識デバイス104は、ユーザーの部分の中心を使用して、ユーザーの部分の水平位置を決定することができる。
1210で、プロセス1200は、センサーデータを生成することを含むことができ、1212で、プロセス1200は、センサーデータに少なくとも部分的に基づいて、ユーザーの部分の垂直位置を決定することを含むことができる。例えば、ユーザー認識デバイス104は、ユーザーの部分までの距離データなどのセンサーデータを生成することができる。次に、ユーザー認識デバイス104は、センサーデータを使用して、ユーザーの部分までの垂直距離を決定することができる。さらに、ユーザー認識デバイス104は、垂直距離に基づいて、ユーザーの部分の垂直位置を決定することができる。次に、場合によっては、ユーザー認識デバイス104は、水平位置および垂直位置に基づいて、ユーザーの部分の位置を決定することができる。
図13および図14は、マテリアルハンドリング施設602などの例示的なマテリアルハンドリング環境を表しており、ここで、本明細書に記載の技術は、以下に記載されるように環境を監視するカメラに適用することができる。しかしながら、以下の説明は、本明細書で説明される技術を利用できる産業および環境の単なる一用例である。
在庫アイテムを保管および管理するように構成されたマテリアルハンドリング施設1302(例えば、施設1302)の実装が図13に示されている。マテリアルハンドリング施設1302は、1つ以上のアイテム1304(1)、1304(2)、...1304(Q)(概して1304と表記)を保持できる1つ以上の物理的構造または領域を含む。この開示で使用されているように、「(Q)」などの括弧内の文字は整数の結果を示す。アイテム1304は、本、医薬品、修理部品、電子ギア、食料品などの物理的な商品を含む。
施設1302は、在庫ハンドリングに関して異なる機能のために指定された1つ以上の領域を含むことができる。この図では、施設1302は、受け取り領域1306、保管領域1308、および遷移領域1310を含む。受け取り領域1306は、施設1302への取り込みのために、供給業者などからアイテム1304を受け取るように構成することができる。例えば、受け取り領域1306は、トラックまたは他の貨物輸送機がアイテム1304を降ろす積み込みドックを含むことができる。
保管領域1308は、アイテム1304を保管するように構成される。保管領域1308は、様々な物理的構成で配置することができる。一実装形態では、保管領域1308は、1つ以上の通路1312を含むことができる。通路1312は、通路1312の片側または両側における在庫位置1314によって構成することができるか、またはそれによって画定することができる。在庫位置1314は、アイテム1304を保持または保管するための棚、ラック、ケース、キャビネット、ビン、床の位置、または他の適切な保管機構のうちの1つ以上を含むことができる。在庫位置1314は、床もしくは施設の構造の別の部分に固定されていてもよく、または通路1312の配置が再構成可能であり得るように移動可能であってもよい。いくつかの実装形態では、在庫位置1314は、外部のオペレータとは独立して移動するように構成することができる。例えば、在庫位置1314は、ラックが施設1302内のある位置から別の位置に移動することを可能にするためにコンピューティングデバイスによって動作可能な、電源およびモーターを備えたラックを含むことができる。
1人以上のユーザー1316(1)、1316(2)、...、1316(U)(概して1316と表記)、トート1318(1)、1318(2)、...、1318(T)(概して1318と表記)または他のマテリアルハンドリング装置が、施設1302内を移動することができる。例えば、ユーザー1316は、施設1302内を動き回って、様々な在庫位置1314におけるアイテム1304を取り上げるか、または位置付け、輸送を容易にするためにそれらをトート1318に位置付けることができる。個々のトート1318は、1つ以上のアイテム1304を運ぶか、さもなければ輸送するように構成される。例えば、トート1318は、バスケット、カート、バッグなどを含むことができる。他の実装形態では、ロボット、フォークリフト、クレーン、空中ドローンなどの他の機関は、施設1302内を動き回って、アイテム1304を取り上げ、配置し、または他の方法で移動させることができる。
1つ以上のセンサー1320は、施設1302内の情報を取得するように構成することができる。施設1302内のセンサー1320は、環境に固定されたセンサー(例えば、天井に取り付けられたカメラ)、またはさもなければ、ユーザーが所有するセンサーなど(例えば、携帯電話、タブレットなど)を含むことができる。センサー1320は、カメラ1320(1)、重量センサー、無線周波数(RF)受信機、温度センサー、湿度センサー、振動センサーなどを含むことができるが、これらに限定されない。センサー1320は、施設1302に対して固定または移動可能とすることができる。例えば、在庫位置1314は、棚上のアイテム1304の取り上げまたは位置付けの画像、施設1302内のユーザー1316(1)および1316(2)の画像などを取得するように構成されたカメラ1320(1)を含むことができる。別の例では、施設1302の床は、ユーザー1316またはその上の他の物体の重量を決定するように構成された重量センサーを含むことができる。
施設1302の動作中、センサー1320は、施設1302内の物体または他の発生の新しい位置を識別するのに適した情報を提供するように構成することができる。例えば、カメラ1320(1)によって取得された一連の画像は、ユーザー1316のうちの1人による特定の在庫位置1314からのアイテム1304の取り出し、およびトート1318のうちの1つ上または少なくとも部分的にトート1318のうちの1つ内へのアイテム1304の位置付けを示すことができる。
保管領域1308は、1つ以上の通路1312、アイテム1304を保管する在庫位置1314、センサー1320などを有するものとして描写されているが、受け取り領域1306、移行領域1310、または施設1302の他の領域も同様に装備できることが理解される。さらに、施設1302内の様々な領域の配置は、概略的ではなく機能的に描かれている。例えば、複数の異なる受け取り領域1306、保管領域1308、および遷移領域1310は、施設1302内に分離されるのではなく、散在することができる。
施設1302は、在庫管理システム1322を含むことができるか、またはそれに結合することができる。在庫管理システム1322は、受け取り領域1306、保管領域1308、または遷移領域1310の1つ以上において、ユーザー1316、センサー1320などのデバイス、ロボット、マテリアルハンドリング機器、コンピューティングデバイスなどとのおよびそれらの間の相互作用を識別するように構成される。これらの相互作用は、1つ以上のイベント1324を含むことができる。例えば、イベント1324は、施設1302へのユーザー1316の入室、在庫位置1314でのアイテム1304のストック、在庫位置1314からのアイテム1304の取り上げ、在庫位置1314へのアイテム1304の返却、トート1318内へのアイテム1304の位置付け、互いに対するユーザー1316の移動、ユーザー1316によるジェスチャなどを含むことができる。ユーザー1316が関与する他のイベント1324は、ユーザー1316が、施設1302で認証情報を提供すること、在庫管理システム1322へ同一性を認証するために施設1302でコンピューティングデバイスを使用することなどを含むことができる。いくつかのイベント1324は、施設1302内の1つ以上の他の物体に関与することができる。例えば、イベント1324は、車輪に取り付けられたカウンターなどの、施設1302内での在庫位置1314の移動を含むことができる。イベント1324は、1つ以上のセンサー1320に関与することができる。例えば、センサーの故障、位置合わせの変化などのセンサー1320の動作の変化は、イベント1324として指定することができる。例を続けると、視野1328の向きの変化をもたらすカメラ1320(1)の動き(誰かまたは何かがカメラ1320(1)にぶつかることによるものなど)(例えば、カメラ)は、イベント1324として指定することができる。
イベント1324のうちの1つ以上の発生を決定することによって、在庫管理システム1322は、出力データ1326を生成することができる。出力データ1326は、イベント1324に関する情報を含む。例えば、イベント1324が、アイテム1304が在庫位置1314から取り出されることを含む場合、出力データ1326は、在庫位置1314から取り出された特定のアイテム1304を示すアイテム識別子と、アイテムを取り出したユーザーのユーザー識別子とを含むことができる。
在庫管理システム1322は、1つ以上の自動化されたシステムを使用して、出力データ1326を生成することができる。例えば、人工ニューラルネットワーク、1つ以上の分類器、または他の自動化された機械学習技術を使用して、1つ以上のセンサー1320からのセンサーデータを処理して、出力データ1326を生成することができる。自動化されたシステムは、確率的または非確率的技術を使用して動作することができる。例えば、自動化されたシステムはベイジアンネットワークを使用することができる。別の例では、自動化されたシステムは、サポートベクターマシンを使用して、出力データ1326または暫定的な結果を生成することができる。自動化されたシステムは、出力データ1326または暫定データが物理世界に対応するという正確さまたは信頼性を示す情報を提供する信頼水準データを生成することができる。
信頼水準データは、使用中の自動化されたシステムのタイプに少なくとも部分的に基づいて、様々な技術を使用して生成することができる。例えば、ベイジアンネットワークを使用する確率的システムでは、出力に割り当てられた確率を信頼水準として使用できる。例を続けると、ベイジアンネットワークは、画像データに描写されているアイテムが以前にメモリに格納されたアイテムに対応する確率が135%であることを示すことができる。この確率は、画像データに描写されているように、そのアイテムの信頼水準として使用できる。
別の例では、サポートベクターマシンなどの非確率的技術からの出力は、アイテムの画像データおよび以前に格納されたアイテムの画像が分類された数学的空間内の距離に基づく信頼水準を有することができる。以前に格納された画像などの基準点から発生中に取得された画像データまでのこの空間内の距離が大きいほど、信頼水準は低くなる。
さらに別の例では、アイテム1304、ユーザー1316などの物体の画像データは、以前に格納された画像のセットと比較することができる。画像データと以前に格納された画像との違いを評価することができる。例えば、形状、色、画像内の特徴間の相対的な比率などの違いなどである。違いは、数学的な空間で距離に換算して表すことができる。例えば、画像データに描写されている物体の色と、以前に格納された画像に描写されている物体の色は、色空間内の座標として表すことができる。
信頼水準は、これらの違いに少なくとも部分的に基づいて決定することができる。例えば、ユーザー1316は、在庫位置314から、概して立方体の形状である香水瓶などのアイテム1304(1)を取り上げることができる。近くの在庫位置1314にある他のアイテム1304は、主に球形とすることができる。隣接するアイテムとの形状の違い(立方体対球体)、および香水瓶アイテム1304(1)の以前に格納された画像との形状の一致(立方体および立方体)に基づいて、ユーザー606は香水瓶1304アイテム(1)を取り上げたという信頼水準が高い。
状況によっては、自動化された技術は、閾値の結果を超える信頼水準では出力データ1326を生成できない場合がある。例えば、自動化された技術は、ユーザー1316の群衆の中のどのユーザー1316が在庫位置1314からアイテム1304を取り上げたかを区別することができない場合がある。他の状況では、イベント1324または出力データ1326の正確さの人間による確認を提供することが望ましい場合がある。例えば、いくつかのアイテム1304は、それらが最小年齢閾値を超えるユーザー1316によってのみ取り扱われるように、年齢制限されていると見なされる場合がある。
人間による確認が望まれる場合、イベント1324に関連するセンサーデータを処理して、照会データを生成することができる。照会データは、イベント1324に関連するセンサーデータのサブセットを含むことができる。照会データは、自動化された技術によって決定された1つ以上の暫定的な結果または補足データのうちの1つ以上を含むこともできる。センサーデータのサブセットは、1つ以上のセンサー1320に関する情報を使用して決定することができる。例えば、施設1302内のカメラ1320(1)の位置、カメラ1320(1)の向き、およびカメラ1320(1)の視野1328などのカメラデータを使用して、施設1302内の特定の場所が視野1328内にあるかどうかを決定することができる。センサーデータのサブセットは、在庫位置1314またはアイテム1304が収納されたことを示すことができる画像を含むことができる。センサーデータのサブセットはまた、視野1328にその在庫位置1314を持たなかった他のカメラ1320(1)からの画像を省略することができる。視野1328は、センサー1320がセンサーデータを生成することができる施設1302内のシーンの一部を含むことができる。
例を続けると、センサーデータのサブセットは、アイテム1304を含む視野1328を有する1つ以上のカメラ1320(1)によって取得されたビデオクリップを含むことができる。暫定的な結果は、どのアイテム1304がイベント1324に関与したかについての「最良の推測」を含むことができる。例えば、暫定的な結果は、最小閾値を超える信頼水準を有する自動化されたシステムによって決定された結果を含むことができる。
施設1302は、様々な供給者から異なる種類のアイテム1304を受け取り、顧客が1つ以上のアイテム1304を注文または回収するまでそれらを保管するように構成することができる。施設1302を通るアイテム1304の一般的な流れは、図13の矢印によって示されている。具体的には、この例に示されるように、アイテム1304は、受け取り領域1306で、製造業者、流通業者、卸売業者などのような1つ以上の供給業者から受け取ることができる。様々な実装形態では、アイテム1304は、施設1302を運営する企業の性質に応じて、商品、日用品、生鮮食品、または任意の適切なタイプのアイテム1304を含むことができる。アイテム1304の受け取りは、在庫管理システム1322が出力データ1326を生成することができる1つ以上のイベント1324を含むことができる。
受け取り領域1306で供給業者から受け取られると、アイテム1304を保管のために準備することができる。例えば、アイテム1304は、開梱するか、さもなければ再配置することができる。在庫管理システム1322は、開梱または再配置に関連するイベント1324に基づいて在庫管理機能を提供するために、コンピュータシステム上で実行される1つ以上のソフトウェアアプリケーションを含むことができる。これらの在庫管理機能は、アイテム1304に関して、タイプ、数量、状態、コスト、位置、重量、または任意の他の適切なパラメータを示す情報を維持することを含むことができる。アイテム1304は、パッケージ、カートン、クレート、パレット、または他の適切な集合体などの、可算か、個々の単位か、または複数かに関して、保管、管理、または分配することができる。あるいは、バルク製品、日用品などのいくつかのアイテム1304は、本質的に可算単位に編成されないことがある連続的または任意に分割可能な量で保管することができる。そのようなアイテム1304は、長さ、面積、体積、重量、時間、持続時間の単位、または測定単位によって特徴付けられる他の寸法特性などの測定可能な量に関して管理することができる。一般的に言えば、アイテム1304の量は、必要に応じて、アイテム1304の個々の単位の可算数もしくは集合単位の可算数、またはアイテム1304の測定可能な量のいずれかを指すことができる。
受け取り領域1306を通って到着した後、アイテム1304は、保管領域1308内に保管することができる。いくつかの実装形態では、同様のアイテム1304は、ビンの中、棚の上、ペグボードからぶら下げるなど、在庫位置1314に、一緒に保管または陳列することができる。この実装形態では、所与の種類のすべてのアイテム1304が1つの在庫位置1314に保管される。他の実装形態では、同様のアイテム1304は、異なる在庫位置1314に保管することができる。例えば、大規模な物理的施設1302内で頻繁なターンオーバーがある特定のアイテム1304の回収を最適化するために、それらのアイテム1304は、単一の在庫位置1314において発生することがある混雑を低減するために、いくつかの異なる在庫位置1314に保管することができる。アイテム1304の保管およびそれらのそれぞれの在庫位置1314は、1つ以上のイベント1324を含むことができる。
1つ以上のアイテム1304を指定する顧客注文が受け取られると、またはユーザー1316が施設1302を通って進むとき、対応するアイテム1304は、それらのアイテム1304を含む在庫位置1314から選択するか、または「取り上げる」ことができる。様々な実装形態では、アイテムの取り上げは、手動から完全に自動化された取り上げまでの範囲に及ぶことができる。例えば、一実装形態では、ユーザー1316は、所望するアイテム1304のリストを有することができ、保管領域1308内の在庫位置1314からアイテム1304を取り上げ、それらのアイテム1304をトート1318に配置しながら施設1302を通って進むことができる。他の実装形態では、施設1302の従業員は、顧客の注文から導出された書面または電子の取り上げリストを使用して、アイテム1304を取り上げることができる。これらの取り上げられたアイテム1304は、従業員が施設1302を通って進むときにトート1318に位置付けることができる。取り上げは、1つ以上のイベント1324、例えば、在庫位置1314に移動する際のユーザー1316、在庫位置1314からのアイテム1304の回収などを含むことができる。
アイテム1304が取り上げられた後、それらは遷移領域1310において処理することができる。遷移領域1310は、アイテム1304が1つの位置から別の位置へ、またはあるエンティティから別のエンティティへと移される、施設1302内の任意の指定された領域とすることができる。例えば、遷移領域1310は、施設1302内のパッキングステーションとすることができる。アイテム1304が遷移領域1310に到着すると、アイテム1304は、保管領域1308からパッキングステーションに移すことができる。遷移は、1つ以上のイベント1324を含むことができる。遷移に関する情報は、それらのイベント1324に関連する出力データ1326を使用して、在庫管理システム1322によって維持することができる。
別の例では、アイテム1304が施設1302を出発する場合、アイテム1304のリストが取得され、在庫管理システム1322によって使用されて、アイテム1304の責任または保管を施設1302から別のエンティティに移すことができる。例えば、運送業者は、輸送のためにアイテム1304を受け取ることができ、その運送業者は、リストに示されたアイテム1304の責任を受け入れる。別の例では、顧客は、アイテム1304を購入またはレンタルし、施設1302からアイテム1304を取り出すことができる。購入またはレンタルは、1つ以上のイベント1324を含むことができる。
在庫管理システム1322は、施設1302、およびアイテム1304、ユーザー1316、トート1318などを含む施設の内容に関するセンサーデータにアクセスするか、またはそれを生成することができる。センサーデータは、1つ以上のセンサー1320、他のシステムによって提供されるデータなどによって取得することができる。例えば、センサー1320は、施設1302内のシーンの画像データを取得するように構成されたカメラ1320(1)を含むことができる。画像データは、静止画像、ビデオ、またはそれらの組み合わせを含むことができる。画像データは、在庫管理システム1322によって処理されて、ユーザー1316の位置、トート1318、ユーザー1316の同一性などを決定することができる。本明細書で使用される場合、ユーザーの同一性は、ユーザーの特有の識別子(例えば、名前、ユーザーに関連付けられた番号、ユーザー名など)、環境で識別される他のユーザーの間でユーザーを区別する識別子などを表すことができる。
在庫管理システム1322、またはそれに結合されたシステムは、ユーザー1316を識別するように、ならびに他の候補ユーザーを決定するように構成することができる。一実装形態では、この決定は、センサーデータを以前に格納された同一性データと比較することを含むことができる。例えば、ユーザー1316は、顔認識システムに顔を見せることによって、認証クレデンシャルを具備したトークンを提示することによって、指紋を提供することによって、施設に入るときにバーコードまたは他のタイプの特有の識別子をスキャンすることなどによって、識別することができる。ユーザー1316の同一性は、施設1302への入室前、入室中、または入室後に決定することができる。ユーザー1316の同一性の決定は、施設1302内のユーザー1316に関連付けられたセンサーデータを以前に格納されたユーザーデータと比較することを含むことができる。
場合によっては、在庫管理システムは施設内のユーザーをそれぞれのセッションにグループ化する。すなわち、在庫管理システム1322は、センサーデータを利用して、効果的に「一緒に」いる(例えば、一緒に買い物をする)ユーザーのグループを決定することができる。場合によっては、特定のセッションは、施設1302に一緒に入室し、場合によっては施設を一緒に通り抜ける複数のユーザーを含むことができる。例えば、大人2人と子供2人の家族が一緒に施設に入室すると、在庫管理システムは各ユーザーを特定のセッションに関連付けることができる。個々のユーザーに加えてセッションの位置を特定することは、セッション内のユーザーがアイテムを個別に取り上げるか、または返却するか、または別様に相互作用することがあるだけでなく、アイテムを相互にやり取りすることがあるとすると、個々のイベントの結果を判断するのに役立ち得る。例えば、上記の例の子供は、シリアルの箱を取り上げてからその箱を母親に渡すことができ、母親はそれをトート1318に入れることができる。子供と母親が同じセッションに属していることに注意すると、母親の仮想ショッピングカートにシリアルの箱を正常に追加する可能性が高くなり得る。
1つ以上のイベント1324の発生およびそれに関連する出力データ1326を決定することによって、在庫管理システム1322は、施設1302のユーザー1316に1つ以上のサービスを提供することができる。1人以上の人間の従業員を利用して照会データを処理し、応答データを生成し、それを使用して出力データ1326を生成することにより、システムの全体的な精度を高めることができる。精度を高めることで、施設1302の1人以上のユーザー1316のユーザー体験を改善することができる。いくつかの例では、出力データ1326は、ネットワーク1330を介して1つ以上のサーバ608に送信することができる。
図14は、1つ以上のサーバ608のブロック図を示している。サーバ608は、施設1402に物理的に存在することができるか、ネットワーク1430によってアクセス可能とすることができるか、または両方の組み合わせとすることができる。サーバ608は、サービスを配信するシステムの物理的な位置および構成についてエンドユーザーの知識を必要としない。サーバ608に関連する一般的な表現は、「オンデマンドコンピューティング」、「サービス型ソフトウェア(SaaS)」、「クラウドサービス」、「データセンター」などを含むことができる。サーバ608によって提供されるサービスは、1つ以上の物理的または仮想的なデバイスにわたって分散することができる。
サーバ608は、1つ以上の格納された指示を実行するように構成された1つ以上のハードウェアプロセッサ1402(プロセッサ)を含むことができる。プロセッサ1402は、1つ以上のコアを含むことができる。サーバ608は、プロセッサ1402またはサーバ608の他の部分が他のデバイスと通信することを可能にするために、1つ以上の入力/出力(I/O)インターフェース1404を含むことができる。I/Oインターフェース1404は、相互統合回路(I2C)、シリアルペリフェラルインターフェースバス(SPI)、USB実装者フォーラムRS-232によって公布されたユニバーサルシリアルバス(USB)、などを含むことができる。
サーバ608はまた、1つ以上の通信インターフェース1406を含むことができる。通信インターフェース1406は、サーバ608と、センサー1420、インターフェースデバイス、ルータなどの他のデバイスとの間の通信を提供するように構成される。通信インターフェース1406は、パーソナルエリアネットワーク(PAN)、有線および無線ローカルエリアネットワーク(LAN)、有線および無線ワイドエリアネットワーク(WAN)などに結合するように構成されたデバイスを含むことができる。例えば、通信インターフェース1406は、イーサネット、Wi-Fi(商標)などと互換性のあるデバイスを含むことができる。サーバ608はまた、サーバ608の様々なモジュールとコンポーネントとの間でのデータの転送を可能にする1つ以上のバスまたは他の内部通信ハードウェアもしくはソフトウェアを含むことができる。
サーバ608はまた、電源1440を含むことができる。電源1440は、サーバ608内のコンポーネントを動作させるのに適した電力を提供するように構成される。
図14に示されるように、サーバ608は、1つ以上のメモリ1410を含む。メモリ1410は、1つ以上のコンピュータ可読記憶媒体(CRSM)を含む。CRSMは、電子記憶媒体、磁気記憶媒体、光学記憶媒体、量子記憶媒体、機械的コンピュータ記憶媒体などのうちの任意の1つ以上とすることができる。メモリ1410は、サーバ608の動作のために、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。いくつかの機能モジュールの例が、メモリ1410に格納されて示されているが、同じ機能は、代替的に、ハードウェア、ファームウェアにおいて、またはシステムオンチップ(SOC)として実装することができる。
メモリ1410は、少なくとも1つのオペレーティングシステム(OS)コンポーネント1412を含むことができる。OSコンポーネント1412は、I/Oインターフェース1404、通信インターフェース1408などのハードウェアリソースデバイスを管理するように構成され、プロセッサ1402上で実行されるアプリケーションまたはコンポーネントに様々なサービスを提供する。OSコンポーネント1412は、FreeBSDプロジェクトによって公布されたFreeBSD(商標)オペレーティングシステムのバリアント、その他のUNIX(商標)またはUNIXのようなバリアント、LinusTorvaldsによって公布されたLinux(商標)オペレーティングシステムのバリエーション、米国ワシントン州レドモンドのMicrosoftCorporationのWindows(登録商標)Serverオペレーティングシステムなどを実装することができる。
以下のコンポーネントのうちの1つ以上もまた、メモリ1410に格納することができる。これらのコンポーネントは、フォアグラウンドアプリケーション、バックグラウンドタスク、デーモンなどとして実行できる。通信コンポーネント1414は、1つ以上のセンサー1220、1つ以上のユーザー認識デバイス104、従業員によって使用される1つ以上のデバイス、他のサーバ608、または他のデバイスとの通信を確立するように構成することができる。通信は、認証され、暗号化などが行われ得る。
メモリ1410は、在庫管理システム1416を格納することができる。在庫管理システム1416は、在庫管理システム1322に関して本明細書で説明されるような在庫機能を提供するように構成される。例えば、在庫管理システム1416は、施設1202内のアイテム1304の移動を決定し、ユーザーインターフェースデータを生成するなどを行うことができる。
在庫管理システム1416は、メモリ1410内の1つ以上のデータストア1418に格納された情報にアクセスすることができる。データストア1418は、フラットファイル、データベース、リンクリスト、ツリー、実行可能コード、スクリプト、または他のデータ構造を使用して情報を格納することができる。いくつかの実装形態では、データストア1418またはデータストア1418の一部は、他のサーバ608、ネットワーク接続ストレージデバイスなどを含む1つ以上の他のデバイスにわたって分散することができる。
データストア1418は、物理的レイアウトデータ1420を含むことができる。物理的レイアウトデータ1420は、センサー1320、在庫位置1314などのようなデバイスおよび物体の物理的レイアウト内の物理的位置のマッピングを提供する。物理的レイアウトデータ1420は、施設1302内の在庫位置1314の座標、その在庫位置1314の視野内のセンサー1320などを示すことができる。例えば、物理的レイアウトデータ1420は、施設1302内のカメラ1320(1)の1つ以上の位置、カメラ1320(1)の向き、動作状態などを含むカメラデータを含むことができる。例を続けると、物理的レイアウトデータ1420は、カメラ1320(1)の座標、視野1328が向けられている方向を示すパンおよびチルト情報、カメラ1320(1)が動作しているか誤動作しているかなどを示すことができる。
いくつかの実装形態では、在庫管理システム1416は、物理的レイアウトデータ1420にアクセスして、イベント1324に関連する位置が1つ以上のセンサー1320の視野1328内にあるかどうかを決定することができる。上記の例を続けると、施設1302内のイベント1324の位置およびカメラデータが与えられると、在庫管理システム1416は、イベント1324の画像を生成したかもしれないカメラ1320(1)を決定することができる。
アイテムデータ1422は、アイテム1304に関連する情報を含む。情報は、1つ以上のアイテム1304が保管されている1つ以上の在庫位置1314を示す情報を含むことができる。アイテムデータ1422はまた、注文データ、SKUまたは他の製品識別子、価格、手持ちの数量、重量、有効期限、アイテム1304の画像、詳細説明情報、評価、ランキングなどを含むことができる。在庫管理システム1416は、在庫管理機能に関連する情報をアイテムデータ1422に格納することができる。
データストア1418はまた、センサーデータ1424を含むことができる。センサーデータ1424は、1つ以上のセンサー1320から、またはそれに基づいて取得された情報を含む。例えば、センサーデータ1424は、施設1302内の物体に関する3D情報を含むことができる。上記のように、センサー1320は、1つ以上の画像を取得するように構成されたカメラ1320(1)を含むことができる。これらの画像は、画像データ1426として格納することができる。画像データ1426は、複数の画像要素またはピクセルを説明する情報を含むことができる。非画像データ1428は、マイクロフォン1320、重量センサー1320などからの入力など、他のセンサー1320からの情報を含むことができる。
ユーザーデータ1430もまた、データストア1418に格納することができる。ユーザーデータ1430は、同一性データ、プロファイルを示す情報、購入履歴、位置データ、ユーザー1316の画像、人口統計データなどを含むことができる。個々のユーザー1316またはユーザー1316のグループは、在庫管理システム1322が使用するためのユーザーデータ1430を選択的に提供することができる。個々のユーザー1316またはユーザー1316のグループはまた、施設1302の使用中のユーザーデータ1430の収集、または他のシステムから取得されたユーザーデータ1430へのアクセスを許可することができる。例えば、ユーザー1316は、施設1302を使用している間に拡張サービスを受けるために、ユーザーデータ1430の収集にオプトインすることができる。
いくつかの実装形態では、ユーザーデータ1430は、特別なハンドリングのためにユーザー1316を指定する情報を含むことができる。例えば、ユーザーデータ1430は、特定のユーザー1316が、出力データ1326に関するエラー数の増加に関連付けられていることを示すことができる。在庫管理システム1416は、この情報を使用して、このユーザー1316に関連付けられたイベント1324に追加の精査を適用するように構成することができる。例えば、閾値量を超えるコストまたは結果を有するアイテム1304を含むイベント1324は、自動化システムによって生成された出力データ1326の決定された信頼水準に関係なく、処理のために従業員に提供することができる。
在庫管理システム1416は、位置特定コンポーネント1432、識別コンポーネント1434、イベント決定コンポーネント1436、および照会コンポーネント1438のうちの1つ以上を含むことができる。
位置特定コンポーネント1432は、施設の環境内のアイテムまたはユーザーを位置特定して、在庫管理システム1416が特定のイベントを正しいユーザーに割り当てることを可能にするように機能する。すなわち、位置特定コンポーネント1432は、ユーザーが施設に入るときにユーザーに特有の識別子を割り当てることができ、ユーザーの同意を得て、ユーザーが施設1302に留まっている間、施設1302全体でユーザーのポジションを特定することができる。位置特定コンポーネント1432は、画像データ1426などのセンサーデータ1424を使用してこの位置特定を実行することができる。例えば、位置特定コンポーネント1432は、画像データ1426を受信することができ、顔認識技術を使用して、画像からユーザーを識別することができる。施設内の特定のユーザーを識別した後、位置特定コンポーネント1432は、ユーザーが施設1302内を移動するときに、画像内でユーザーを位置特定することができる。さらに、位置特定コンポーネント1432が特定のユーザーを一時的に「失う」場合、位置特定コンポーネント1432は、顔認識に基づいて、および/または音声認識などの他の技術を使用して、施設内のユーザーを再び識別しようとすることができる。
したがって、問題のイベントの時間および場所の指示を受信すると、位置特定コンポーネント1432は、データストア1418に問い合わせて、1人以上のどのユーザーが、特定のイベントの時間にイベントの位置の閾値距離にいたかまたはその範囲内にいたかを決定することができる。さらに、位置特定コンポーネント1432は、異なるユーザーに異なる信頼水準を割り当てることができ、信頼水準は、対応する各ユーザーが実際に関心のあるイベントに関連付けられているユーザーである可能性がどの程度あるかを示す。
位置特定コンポーネント1432は、ユーザーおよび/またはアイテムのこの位置データを決定するために、センサーデータ1424にアクセスすることができる。位置データは、アイテム1304、ユーザー1316、トート1318などのような物体の位置を示す情報を提供する。位置は、施設1302に対して絶対的であってもよく、または別の物体または基準点に対して相対的であってもよい。絶対的という用語は、測地学的な基準点に対する緯度、経度、および高度を含むことができる。相対的という用語は、施設1302の平面図で指定されているように、x軸に沿って25.4メートル(m)、y軸に沿って75.2mの位置、169°の方位に沿って在庫位置1314から5.2mの位置、などを含むことができる。例えば、位置データは、ユーザー1316(1)が通路1312(1)に沿って25.2mにいて、在庫位置1314の前に立っていることを示すことができる。比較すると、相対的な位置は、ユーザー1316(1)がトート1318に対して73°の方位でトート1318から32cmにいることを示すことができる。位置データは、ユーザー1316がどの方向を向いているかなどの向き情報を含むことができる。向きは、ユーザー1316の体が向いている相対的な方向によって決定することができる。いくつかの実装形態では、向きは、インターフェースデバイスに相対的であり得る。例を続けると、位置データは、ユーザー1316(1)が0°の方位を向いているか、または北を向いていることを示すことができる。別の例では、位置データは、ユーザー1316がインターフェースデバイスの方を向いていることを示すことができる。
識別コンポーネント1434は、物体を識別するように構成される。一実装形態では、識別コンポーネント1434は、アイテム1304を識別するように構成することができる。別の実装形態では、識別コンポーネント1434は、ユーザー1316を識別するように構成することができる例えば、識別コンポーネント1434は、顔認識技術を使用して、画像データ1426を処理し、画像データ1426の特性を以前に格納された結果と比較することによって、画像に描かれたユーザー1316の同一性データを決定することができる。識別コンポーネント1434はまた、RFIDリーダー1320、RF受信機1320、指紋センサーなどの他のセンサー1320からのデータにアクセスすることができる。
イベント決定コンポーネント1436は、センサーデータ1424を処理し、出力データ1326を生成するように構成される。イベント決定コンポーネント1436は、イベント記述データ1442、信頼水準1444、または閾値1446を含むがこれらに限定されない、データストア1418に格納された情報にアクセスすることができる。
イベント記述データ1442は、1つ以上のイベント1324を示す情報を含む。例えば、イベント記述データ1442は、「取り上げ」のイベント1324で在庫場所1314からのアイテム1304の移動を指定する事前定義されたプロファイルを含むことができる。イベント記述データ1442は、手動で生成することも、自動で生成することもできる。イベント記述データ1442は、施設1302で発生するイベントに関連するトリガーを示すデータを含むことができる。イベントは、トリガーの検出時に発生していると決定することができる。例えば、在庫位置1314での重量センサー1320(6)からの重量の変化などのセンサーデータ1424は、在庫位置1314から追加または削除されるアイテム1304のイベントの検出をトリガーすることができる。別の例では、トリガーは、在庫位置1314に向かって手を伸ばすユーザー1316の画像を含むことができる。さらに別の例では、トリガーは、互いに閾値距離内に接近する2人以上のユーザー1316を含むことができる。
イベント決定コンポーネント1436は、人工ニューラルネットワーク、分類器、決定木、サポートベクターマシン、ベイジアンネットワークなどを含むがこれらに限定されない1つ以上の技術を使用してセンサーデータ1424を処理することができる。例えば、イベント決定コンポーネント1436は、決定木を使用して、センサーデータ1424に基づいて「取り上げ」イベント1324の発生を決定することができる。イベント決定コンポーネント1436は、センサーデータ1424をさらに使用して、1つ以上の暫定的な結果1448を決定することができる。1つ以上の暫定的な結果1448は、イベント1324に関連するデータを含む。例えば、イベント1324がユーザー1316の曖昧性解消を含む場合、暫定的な結果1448は、可能なユーザー同一性のリストを含むことができる。別の例では、イベント1324がアイテム間の曖昧性解消を含む場合、暫定的な結果1448は、可能なアイテム識別子のリストを含むことができる。いくつかの実装形態では、暫定的な結果1448は、可能なアクションを示すことができる。例えば、アクションは、ユーザー1316がアイテム1304を取り上げ、配置し、移動すること、アイテム1304に損傷を与えること、ジェスチャ入力を提供することなどを含むことができる。
いくつかの実装形態では、暫定的な結果1448は、他のコンポーネントによって生成することができる。例えば、イベント1324に関与するユーザー1316の1つ以上の可能な同一性または位置などの暫定的な結果1448は、位置特定コンポーネント1432によって生成することができる。別の例では、イベント1324に関与していたかもしれない可能性のあるアイテム1304などの暫定的な結果1448は、識別コンポーネント1434によって生成することができる。
イベント決定コンポーネント1436は、暫定的な結果1448の決定に関連する信頼水準1444を提供するように構成することができる。信頼水準1444は、暫定的な結果1448の期待される精度の水準に関するしるしを提供する。例えば、低い信頼水準1444は、暫定的な結果1448が、イベント1324の実際の状況に対応する可能性が低いことを示すことができる。比較すると、高い信頼水準1444は、暫定的な結果1448がイベント1324の実際の状況に対応する可能性が高いことを示すことができる。
いくつかの実装形態では、閾値結果1446を超える信頼水準1444を有する暫定的な結果1448は、十分に正確であると見なすことができ、したがって、出力データ1326として使用することができる。例えば、イベント決定コンポーネント1436は、「取り上げ」イベント1324に対応する3つの可能なアイテム1304(1)、1304(2)、および1304(3)を示す暫定的な結果1448を提供することができる。可能なアイテム1304(1)、1304(2)、および1304(3)に関連する信頼水準1444は、それぞれ25%、70%、142%であり得る。例を続けると、140%の信頼水準1444が十分に正確であると見なされるように、閾値結果を設定することができる。結果として、イベント決定コンポーネント1436は、アイテム1304(3)に関与するものとして「取り上げ」イベント1324を指定することができる。
照会コンポーネント1438は、イベント1324に関連するセンサーデータ1424の少なくとも一部を使用して照会データ1450を生成するように構成することができる。いくつかの実装形態では、照会データ1450は、1つ以上の暫定的な結果1448または補足データ1452を含むことができる。照会コンポーネント1438は、1人以上の人間の従業員に関連付けられた1つ以上のデバイスに照会データ1450を提供するように構成することができる。
従業員のユーザーインターフーイスは、従業員のそれぞれのデバイスに提示される。従業員は、特定の暫定的な結果1448を選択し、新しい情報を入力し、問い合わせに答えることができないことを示すことなどによって、応答データ1454を生成することができる。
補足データ1452は、イベント1224に関連する情報、またはセンサーデータ1424を解釈するのに役立ち得る情報を含む。例えば、補足データ1452は、アイテム1304の以前に格納された画像を含むことができる。別の例では、補足データ1452は、1つ以上のグラフィカルオーバーレイを含むことができる。例えば、グラフィカルオーバーレイは、関心のある物体のしるしを描写するオーバーレイなどのグラフィカルユーザーインターフェース要素を含むことができる。これらのしるしは、従業員への提示中に画像データ1426の上に重ね合わされるか、または位置付けられたハイライト、境界ボックス、矢印などを含むことができる。
照会コンポーネント1438は、1人以上の従業員によって提供された応答データ1454を処理する。処理は、応答データ1454に関連する1つ以上の統計結果を計算することを含むことができる。例えば、統計結果は、従業員が特定の暫定的な結果1448を選択した回数のカウント、特定の暫定的な結果1448を選択した従業員のパーセンテージの決定などを含むことができる。
照会コンポーネント1438は、応答データ1454に少なくとも部分的に基づいて出力データ1326を生成するように構成される。例えば、従業員の大多数が、「取り上げ」イベント1324に関連付けられたアイテム1304がアイテム1304(5)であることを示す応答データ1454を返したとすると、出力データ1326は、アイテム1304(5)が取り上げられたことを示すことができる。
照会コンポーネント1438は、照会を特定の従業員に選択的に配信するように構成することができる。例えば、一部の従業員は、特定の種類の問い合わせに回答するのにより適している場合がある。従業員のパフォーマンスに関する統計データなどのパフォーマンスデータは、従業員によって提供された応答データ1454から照会コンポーネント1438によって決定することができる。例えば、特定の従業員が大多数の従業員と一致しなかった応答データ1454を選択したという異なる問い合わせのパーセンテージを示す情報を維持することができる。いくつかの実装形態では、以前に既知の正解を有する試験または練習照会データ1450を、訓練または品質保証の目的で従業員に提供することができる。使用する従業員のセットの決定は、パフォーマンスデータに少なくとも部分的に基づくことができる。
照会コンポーネント1438を使用することにより、イベント決定コンポーネント1436は、イベント1324を正確に表す高信頼性出力データ1326を提供することが可能になり得る。応答データ1454から照会コンポーネント1438によって生成された出力データ1326はまた、在庫管理システム1416によって使用される自動化されたシステムをさらに訓練するために使用することができる。例えば、応答データ1454に基づくセンサーデータ1424および出力データ1326は、プロセス改善の訓練のために、在庫管理システム1416の1つ以上の構成要素に提供することができる。例を続けると、この情報は、人工ニューラルネットワーク、ベイジアンネットワークなどに提供され、同じまたは同様の入力に対して将来生成される信頼水準1444および暫定的な結果1448が改善されるように、これらのシステムをさらに訓練することができる。
場合によっては、サーバ608は、ユーザー認識デバイス104に関して図9に示されるコンポーネントのうちの1つ以上をさらに含むことができる。そのような場合、サーバ608は、ユーザー認識デバイス104に関して本明細書で説明されるプロセスのうちの1つ以上を実行することができる。さらに、サーバ608は、実行されたプロセスに関連するデータ(例えば、他のデータ662)をユーザー認識デバイス104に送信することができる。例えば、データは、ユーザーがユーザー認識デバイス104を使用しているときのユーザーの部分の位置を示すことができる。
前述の本発明は、特定の例に関して説明されているが、本発明の範囲は、これらの特定の例に限定されないことを理解されたい。特定の動作要件および環境に適合するように変化する他の修正および変更は、当業者には明らかであるため、本発明は、開示の目的のために選択された例に限定されるものとは見なされず、本発明の真の趣旨および範囲から逸脱しないすべての変更および修正を包含する。
本出願は、特定の構造的特徴および/または方法論的行為を有する実施形態を記載しているが、特許請求の範囲は、記載された特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および行為は、本出願の特許請求の範囲内にあるいくつかの実施形態を単に例示するものである。
例示的な条項
A:電子デバイスであって、1つ以上の距離センサーと、1つ以上のイメージングデバイスと、ディスプレイと、1つ以上のネットワークインターフェースと、1つ以上のプロセッサと、命令を記憶する1つ以上のコンピュータ可読媒体とを含み、命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに動作を実行させ、動作は、第1の時点で1つ以上の距離センサーを使用して、電子デバイス上に位置する手を検出し、電子デバイス上に手を位置決めするための目標垂直位置および目標水平位置を示す第1のグラフィカル要素をディスプレイに提示させ、第2の時点で1つ以上の距離センサーを使用して、手までの第1の距離に基づく第1の距離データを生成し、第1の距離データに少なくとも部分的に基づいて、電子デバイスの上の手の第1の垂直位置を決定し、第3の時点で1つ以上のイメージングデバイスを使用して、手を表す第1の画像データを生成し、手に関連する1つ以上の第1の属性を決定するために、第1の画像データに対応する第1の特徴データを分析し、1つ以上の第1の属性に少なくとも部分的に基づいて、電子デバイス上の手の第1の水平位置を決定し、第1の垂直位置が目標垂直位置までの第1の閾値距離よりも大きいこと、または第1の水平位置が目標水平位置までの第2の閾値距離よりも大きいことのうちの少なくとも1つを決定し、ディスプレイに、第1の垂直位置および第1の水平位置を示す第2のグラフィカル要素を提示させ、第4の時点で1つ以上の距離センサーを使用して、手までの第2の距離に基づいて第2の距離データを生成し、第2の距離データに少なくとも部分的に基づいて、電子デバイスの上の手の第2の垂直位置を決定し、第4の時点で1つ以上のイメージングデバイスを使用して、手を表す第2の画像データを生成し、第2の画像データに対応する第2の特徴データを分析して、手に関連する1つ以上の第2の属性を決定し、1つ以上の第2の属性に少なくとも部分的に基づいて、電子デバイス上の手の第2の水平位置を決定し、第2の垂直位置が、目標垂直位置までの第1の閾値距離よりも小さいと決定し、第2の水平位置が、目標水平位置までの第2の閾値距離よりも小さいと決定し、1つ以上のネットワークインターフェースを使用して、第2の画像データまたは第2の特徴データのうちの少なくとも1つをリモートシステムに送信することを含む、電子デバイス。
B:動作はさらに、第1の垂直位置に少なくとも部分的に基づいて第2のグラフィカル要素のサイズを決定し、第1の水平位置に少なくとも部分的に基づいて、ディスプレイ上の第2のグラフィカル要素のポジションを決定することをさらに含み、ディスプレイに第2のグラフィカル要素を提示させることは、サイズおよびポジションに従って、ディスプレイに第2のグラフィカル要素を提示させることを含む、段落Aに記載の電子デバイス。
C:手の第1の水平位置を決定することは、1つ以上の第1の属性に少なくとも部分的に基づいて、手に位置する1つ以上の点を決定し、1つ以上の点に少なくとも部分的に基づいて手のひらの中心を決定し、手のひらの中心を使用して第1の水平位置を決定することを少なくとも含む、段落Aまたは段落Bのいずれかに記載の電子デバイス。
D:方法であって、電子デバイスによって、第1のグラフィカル要素を表示し、電子デバイスによって、ユーザーの一部を表す第1のセンサーデータを生成し、電子デバイスに対するユーザーの部分の第1の位置を決定するために、第1のセンサーデータに対応する第1の特徴データを分析し、第1の位置が目標位置からの閾値距離より大きいと決定し、第1の位置に少なくとも部分的に基づいて、第2のグラフィカル要素のサイズまたはポジションのうちの少なくとも1つを決定し、電子デバイスによって、第1のグラフィカル要素とともに、形状またはポジションのうちの少なくとも1つに従って第2のグラフィカル要素を表示し、電子デバイスによって、ユーザーの部分を表す第2のセンサーデータを生成し、第2のセンサーデータに対応する第2の特徴データを分析して、ユーザーの部分の第2の位置を決定し、第2の位置が目標位置の閾値距離よりも小さいと決定し、第2のセンサーデータまたは第2の特徴データのうちの少なくとも1つをリモートシステムに送信することを含む、方法。
E:第1の位置に関連した垂直位置を決定することをさらに含み、第2のグラフィカル要素のサイズまたはポジションのうちの少なくとも1つを決定することは、垂直位置に少なくとも部分的に基づいて第2のグラフィカル要素のサイズを決定することを含む、段落Dに記載の方法。
F:第1の位置に関連した水平位置を決定することをさらに含み、第2のグラフィカル要素のサイズまたはポジションのうちの少なくとも1つを決定することは、水平位置に少なくとも部分的に基づいて第2のグラフィカル要素のポジションを決定することを含む、段落Dまたは段落Eのいずれかに記載の方法。
G:第1の位置と目標位置との間の垂直方向の差を決定し、第1の位置と目標位置との間の水平方向の差を決定することをさらに含み、第2の位置が目標位置からの閾値距離よりも大きいことを決定することは、垂直方向の差が閾値距離よりも大きいことを決定するか、または水平方向の差が閾値距離よりも大きいことを決定することの少なくとも一方を含む、段落D~Fのいずれか1つに記載の方法。
H:第1のセンサーデータが、ユーザーの部分を表す画像データを含み、画像データに対応する第1の特徴データを分析して、電子デバイスに対するユーザーの部分の第1の位置を決定することは、少なくとも、第1の特徴データを分析して、ユーザーの部分に位置する1つ以上の点を決定し、1つ以上の点に少なくとも部分的に基づいてユーザーの部分に関連する中心点を決定し、中心点に少なくとも部分的に基づいて第1の位置を決定することを含む、段落D~Gのいずれか1つに記載の方法。
I:第1のセンサーデータが、ユーザーの部分までの距離を表す距離データを含み、距離データに対応する第1の特徴データを分析して、電子デバイスに対するユーザーの部分の第1の位置を決定することは、少なくとも、第1の特徴データを分析して、電子デバイスとユーザーの部分との間の距離を決定することを含み、第1の位置は距離に関連付けられている、段落D~Hのいずれか1つに記載の方法。
J:ユーザーの部分を表す第3のセンサーデータを生成し、第3のセンサーデータに対応する第3の特徴データを分析して、電子デバイスに対するユーザーの部分の第3の位置を決定し、第3の位置が目標位置までの閾値距離よりも大きいことを決定し、第3の位置に少なくとも部分的に基づいて第2のグラフィカル要素の追加のサイズまたは追加のポジションのうちの少なくとも1つを決定し、第1のグラフィカル要素とともに、追加のサイズまたは追加のポジションのうちの少なくとも1つに従って第2のグラフィカル要素を表示することをさらに含む、段落D~Iのいずれか1つに記載の方法。
K:第2のグラフィカル要素のサイズまたはポジションのうちの少なくとも1つを決定することは、少なくとも、第1の位置に関連する垂直位置に少なくとも部分的に基づいて第2のグラフィカル要素のサイズを決定し、第1の位置に関連する第1の水平位置に少なくとも部分的に基づいて第2のグラフィカル要素のポジションを決定することを含み、第2のグラフィカル要素の追加のサイズまたは追加のポジションのうちの少なくとも1つを決定することは、少なくとも、第3の位置に関連する第2の垂直位置に少なくとも部分的に基づいて第2のグラフィカル要素の追加のサイズを決定し、第3の位置に関連する第2の水平位置に少なくとも部分的に基づいて第2のグラフィカル要素の追加のポジションを決定することを含む、段落D~Jのいずれか1つに記載の方法。
L:電子デバイス上にユーザーの部分を置くことに関連する指示を表示し、第3のセンサーデータを生成し、第3のセンサーデータに少なくとも部分的に基づいて、ユーザーの部分が電子デバイス上に位置していることを検出することをさらに含み、第1のグラフィカル要素を表示することは、ユーザーの部分を検出した後に少なくとも部分的に行われる、段落D~Kのいずれか1つに記載の方法。
M:第2のグラフィカル要素とともに、ユーザーの部分を環境内の目標位置に移動させることに関連する指示を表示することをさらに含む、段落D~Lのいずれか1つに記載の方法。
N:第2の位置が目標位置までの閾値距離より小さいと決定することに少なくとも部分的に基づいて、遠隔システムに第2のセンサーデータまたは第2の特徴データのうちの少なくとも1つを送信することをさらに含む、段落D~FMのいずれか1つに記載の方法。
O:第2の特徴データを分析して、ユーザーの部分のポーズ、ユーザーの部分の方向、またはユーザーの部分の向きのうちの少なくとも1つを決定することをさらに含む、段落D~Nのいずれか1つに記載の方法。
P:1つ以上の距離センサーと、1つ以上のイメージングデバイスと、ディスプレイと、1つ以上のプロセッサと、命令を記憶する1つ以上のコンピュータ可読媒体とを含み、命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに動作を実行させ、動作は、ディスプレイに第1のグラフィカル要素を提示させ、1つ以上の距離センサーを使用して電子デバイスに対するユーザーの一部の垂直位置を決定し、1つ以上のイメージングデバイスを使用してユーザーの部分を表す画像データを生成し、画像データに対応する特徴データを分析して電子デバイスに対するユーザーの部分の水平位置を決定し、ディスプレイに第1のグラフィカル要素とともに第2のグラフィカル要素を提示させることを含み、第2のグラフィカル要素は垂直位置および水平位置を表す、電子デバイス。
Q:動作は、垂直位置に少なくとも部分的に基づいて第2のグラフィカル要素のサイズを決定し、水平位置に少なくとも部分的に基づいて第2のグラフィカル要素のポジションを決定することをさらに含み、ディスプレイに第2のグラフィカル要素を提示させることは、ディスプレイに第1のグラフィカル要素とともにサイズおよびポジションに従って第2のグラフィカル要素を提示させることを少なくとも含む、段落Pに記載の電子デバイス。
R:動作は、1つ以上の距離センサーを使用して電子デバイスに対するユーザーの部分の追加の垂直位置を決定し、1つ以上のイメージングデバイスを使用してユーザーの部分を表す追加の画像データを生成し、追加の画像データに対応する追加の特徴データを分析して、電子デバイスに対するユーザーの部分の追加の水平位置を決定し、ディスプレイに第1のグラフィカル要素とともに追加の垂直位置および追加の水平位置を示す第2のグラフィカル要素を提示させることをさらに含む、段落Pまたは段落Qのいずれかに記載の電子デバイス。
S:動作は、1つ以上の距離センサーを使用して、電子デバイスに対するユーザーの部分の追加の垂直位置を決定し、1つ以上のイメージングデバイスを使用してユーザーの部分を表す追加の画像データを生成し、追加の画像データに対応する追加の特徴データを分析して、電子デバイスに対するユーザーの部分の追加の水平位置を決定し、追加の垂直位置が目標垂直位置までの第1の閾値距離よりも小さいことを決定し、追加の水平位置が目標水平位置までの第2の閾値距離よりも小さいことを決定し、ディスプレイに入力が受信されたことを表示させることをさらに含む、段落P~Rのいずれか1つに記載の電子デバイス。
T:動作は、垂直位置が目標垂直位置までの第1の閾値距離よりも大きいこと、または水平位置が目標水平位置までの第2の閾値距離よりも大きいことのうちの少なくとも1つを決定することをさらに含み、垂直位置が目標垂直位置までの第1の閾値距離よりも大きいことに少なくとも部分的に基づいて、第2のグラフィカル要素の第1のサイズが第1のグラフィカル要素の第2のサイズと異なるか、または水平位置が目標水平位置までの第2の閾値距離よりも大きいことに少なくとも部分的に基づいて、第2のグラフィカル要素の少なくとも一部が第1のグラフィカル要素の部分よりも離れて位置しているか、のうちの少なくとも一方である、段落P~Sのいずれか1つに記載の電子デバイス。