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

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

▶ セブン-イレブン インコーポレイテッドの特許一覧

特開2025-24697第1のアイテムとの関連性に基づいて第2のアイテムを識別するためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024697
(43)【公開日】2025-02-20
(54)【発明の名称】第1のアイテムとの関連性に基づいて第2のアイテムを識別するためのシステム及び方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250213BHJP
【FI】
G06T7/00 C
G06T7/00 350B
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024130045
(22)【出願日】2024-08-06
(31)【優先権主張番号】18/366,155
(32)【優先日】2023-08-07
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ZIGBEE
(71)【出願人】
【識別番号】520068870
【氏名又は名称】セブン-イレブン インコーポレイテッド
【氏名又は名称原語表記】7-Eleven, Inc.
【住所又は居所原語表記】3200 Hackberry Road, Irving TX 75063 US
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】サムド ヴィラス ダター
(72)【発明者】
【氏名】セイルシ バハラスワージ クリシュナムルティ
(72)【発明者】
【氏名】シャシパル レディ マシニ
(72)【発明者】
【氏名】シャーミアー アリ ミルザ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096CA05
5L096DA02
5L096HA11
5L096JA03
5L096KA04
(57)【要約】
【課題】第1のアイテムとの関連性に基づいて第2のアイテムを識別するためのシステム及び方法を提供する。
【解決手段】 アイテム追跡システムは、複数のカメラと、各アイテムのアイテム識別子同士の間の関連付けを記憶するメモリと、プロセッサとを含み、プロセッサは、第1のアイテムの複数の第1の画像を取り込み、第1の画像に基づいて第1のアイテムの第1のアイテム識別子を識別するように構成される。プロセッサは、第2のアイテムの複数の第2の画像を取り込み、各第2の画像から第2のアイテムの切り抜き画像を生成し、各切り抜き画像のアイテム識別子を識別する。プロセッサは、メモリに記憶した関連付けに基づいて、第1のアイテムの第1のアイテム識別子と第2のアイテム識別子との間に関連付けが存在すると判定し、切り抜き画像に対応するアイテム識別子のうちの少なくとも1つが第2のアイテム識別子である場合に、第2のアイテム識別子を第2のアイテムに割り当てる。
【選択図】図29
【特許請求の範囲】
【請求項1】
アイテム追跡システムであって、当該アイテム追跡システムは、
複数のカメラであって、各カメラがプラットフォームの少なくとも一部の画像を取り込むように構成される、前記複数のカメラと、
各アイテムのアイテム識別子同士の間の関連付けを記憶するように構成されるメモリと、
前記複数のカメラ及び前記メモリに通信可能に結合したプロセッサと、を含み、
該プロセッサは、
前記プラットフォームでの第1のトリガーイベントを検出することであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、こと、
前記第1のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むこと、
前記複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別すること、
前記第1の画像で取り込まれた前記第1のアイテムに前記第1のアイテム識別子を割り当てること、
前記プラットフォームでの第2のトリガーイベントを検出することであって、該第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、こと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むこと、
複数の切り抜き画像を生成することであって、各切り抜き画像が、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、こと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別すること、
前記メモリから前記関連付けにアクセスすること、
前記第1のアイテムの前記第1のアイテム識別子と前記第2のアイテム識別子との間の関連付けを特定すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であると検出すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の前記特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てること、を行うように構成される、
アイテム追跡システム。
【請求項2】
前記プロセッサは、さらに、
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力することであって、該機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、こと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得すること、及び
前記出力に基づいて前記切り抜き画像を背面画像又は前面画像としてタグ付けすること、を行うように構成され、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項1に記載のアイテム追跡システム。
【請求項3】
前記メモリは、エンコード化ベクトル・ライブラリを記憶するようにさらに構成され、
前記エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
前記プロセッサは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、前記第1のエンコード化ベクトルは、前記切り抜き画像に基づいて前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを前記エンコード化ベクトル・ライブラリ内で前記エンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられた前記アイテム識別子を識別すること、によって、各切り抜き画像の前記アイテム識別子を識別するようにさらに構成される、請求項2に記載のアイテム追跡システム。
【請求項4】
前記プロセッサは、複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定するようにさらに構成される、請求項3に記載のアイテム追跡システム。
【請求項5】
前記プロセッサは、
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定したことに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、前記複数の切り抜いた第2の画像のそれぞれに対して識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、を行うようにさらに構成される、請求項4に記載のアイテム追跡システム。
【請求項6】
前記プロセッサは、
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットのアイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、を行うようにさらに構成される、請求項5に記載のアイテム追跡システム。
【請求項7】
前記第1のアイテム及び前記第2のアイテムは同じアイテム識別子によって識別され、
前記第1のアイテム識別子及び前記第2のアイテム識別子は、前記同じアイテム識別子の2つのインスタンスである、請求項1に記載のアイテム追跡システム。
【請求項8】
アイテムを識別する方法であって、当該方法は、
プラットフォームでの第1のトリガーイベントを検出するステップであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、ステップと、
前記第1のトリガーイベントの検出に応じて、複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むステップと、
該複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別するステップと、
前記第1の画像で取り込んだ前記第1のアイテムに前記第1のアイテム識別子を割り当てるステップと、
前記プラットフォームでの第2のトリガーイベントを検出するステップであって、該第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、ステップと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むステップと、
複数の切り抜き画像を生成するステップであって、各切り抜き画像は、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、ステップと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別するステップと、
メモリから、各アイテムのアイテム識別子同士の間の関連付けにアクセスするステップと、
前記第1のアイテムの前記第1のアイテム識別子と第2のアイテム識別子との間の関連付けを特定するステップと、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であると検出するステップと、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てるステップと、を含む、
方法。
【請求項9】
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力するステップであって、前記機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、ステップと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得するステップと、
前記出力に基づいて、前記切り抜き画像を背面画像又は前面画像としてタグ付けするステップと、をさらに含み、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項8に記載の方法。
【請求項10】
前記メモリは、エンコード化ベクトル・ライブラリを記憶するように構成され、
前記エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
各切り抜き画像の前記アイテム識別子を識別することは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、該第1のエンコード化ベクトルは、前記切り抜き画像に基づいて前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを、前記エンコード化ベクトル・ライブラリ内でエンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられる前記アイテム識別子を識別すること、を含む、請求項9に記載の方法。
【請求項11】
複数の前記切り抜いた第2の画像が前面画像としてタグ付けされると判定することをさらに含む、請求項10に記載の方法。
【請求項12】
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定したことに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、複数の切り抜いた第2の画像のそれぞれに対して識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、をさらに含む、請求項11に記載の方法。
【請求項13】
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、をさらに含む、請求項12に記載の方法。
【請求項14】
前記第1のアイテム及び前記第2のアイテムは同じアイテム識別子によって識別され、
前記第1のアイテム識別子及び前記第2のアイテム識別子は前記同じアイテム識別子の2つのインスタンスである、請求項8に記載の方法。
【請求項15】
命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令がプロセッサによって実行されると、該プロセッサに、
プラットフォームでの第1のトリガーイベントを検出することであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、こと、
前記第1のトリガーイベントの検出に応じて、複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むこと、
前記複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別すること、
前記第1の画像で取り込んだ前記第1のアイテムに前記第1のアイテム識別子を割り当てること、
前記プラットフォームでの第2のトリガーイベントを検出することであって、前記第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、こと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むこと、
複数の切り抜き画像を生成することであって、各切り抜き画像は、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、こと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別すること、
メモリから、各アイテムのアイテム識別子同士の間の関連付けにアクセスすること、
前記第1のアイテムの前記第1のアイテム識別子と第2のアイテム識別子との間の関連付けを特定すること、
前記識別したアイテム識別子のうちの少なくとも1つが第2のアイテム識別子であると検出すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の前記特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てること、を行わせる、
非一時的なコンピュータ可読媒体。
【請求項16】
前記命令によって、前記プロセッサに、
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力することであって、該機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、こと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得すること、及び
前記出力に基づいて、前記切り抜き画像を背面画像又は前面画像としてタグ付けすること、をさらに行わせ、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記メモリは、エンコード化ベクトル・ライブラリを記憶するように構成され、
該エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
各切り抜き画像の前記アイテム識別子を識別することは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、該第1のエンコード化ベクトルは、前記切り抜き画像に基づいて、前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを、前記エンコード化ベクトル・ライブラリ内で前記エンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び、
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられた前記アイテム識別子を識別すること、を含む、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記命令によって、前記プロセッサに、複数の前記切り取られた第2の画像が前面画像としてタグ付けされると決定することをさらに行わせる、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記命令によって、前記プロセッサに、
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると決定することに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、前記複数の切り抜いた第2の画像のそれぞれについて識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、をさらに行わせる、請求項18に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記命令によって、前記プロセッサに、
前記複数の切り抜いた第2の画像の前記大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、をさらに行わせる、請求項19に記載の非一時的なコンピュータ可読媒体。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2021年11月19日に出願した、“ITEM LOCATION DETECTION USING HOMOGRAPHIES”という表題の米国特許出願第17/455,903号の一部継続出願であり、これは、Sailesh Bharathwaaj Krishnamurthyらによって2021年6月29日に出願した、“ITEM IDENTIFICATION USING DIGITAL IMAGE PROCESSING”という表題の米国特許出願第17/362,261号の一部継続出願であり、両方とも参照により本明細書に組み込まれる。
【0002】
技術分野
本開示は、概して、デジタル画像処理に関するものであり、より具体的には、第1のアイテムとの関連性に基づいて第2のアイテムを識別するためのシステム及び方法に関する。
【背景技術】
【0003】
空間内のオブジェクトの識別及び追跡には、いくつかの技術的課題がある。例えば、画像に複数のアイテムが含まれる場合に、後で画像内のアイテムを識別するために使用できるアイテムの様々な特徴を識別するには、計算量が多くかかる。このプロセスには、画像内の個々のアイテムを識別し、次にアイテムの特徴を、数千のアイテムを含む可能性のあるデータベース内の全てのアイテムと比較することが含まれ得る。計算量が多いことに加えて、このプロセスにはかなりの時間が必要であるため、このプロセスはリアルタイムアプリケーションと互換性がない。この問題は、複数のアイテムを同時に識別及び追跡しようとすると解決が困難になる。
【発明の概要】
【0004】
本願で開示するシステムは、カメラと3次元(3D)センサとの組合せを使用してプラットフォーム上に置かれたアイテムを識別及び追跡することにより、上記の技術的課題に対する技術的解決策を提供する。開示するシステムは、プラットフォーム上に置かれたアイテムの画像を取り込むためにイメージング装置上のカメラの組合せを選択し、プラットフォーム上に置かれたアイテムを識別し、アイテムをユーザに割り当てるプロセスを含む、いくつかの実用的なアプリケーション及び技術的利点を提供する。ユーザにアイテムをスキャン又は手動で識別することを要求すると、アイテムを迅速に識別するシステムの能力にボトルネックが生じる。対照的に、開示するプロセスは、ユーザがアイテムをスキャン又は識別する必要なく、アイテムの画像からアイテムを識別し、アイテムをユーザに割り当てることができる。このプロセスは、複数のアイテムを迅速に識別するシステムの能力を向上させることにより、画像検出及び追跡の実用的なアプリケーションを提供する。これらの実用的なアプリケーションは、アイテムを識別するシステムの能力を向上させるだけでなく、基礎となるネットワーク及びネットワーク内の装置も向上させる。例えば、この開示するプロセスにより、アイテムを識別してアイテムをユーザに割り当てるのにかかる時間が短縮され、画像検出処理のスループットが向上し、システムはより多くのユーザにサービスを提供できるようになる。換言すれば、このプロセスは追加のハードウェアリソースを必要とせずにハードウェアの使用率を向上させ、他のプロセスに使用できるハードウェアリソースの数を増やし、システムのスループットを向上させる。さらに、これらの技術的な改善により、本明細書で説明するアイテムの識別及び追跡機能の拡張が可能になる。
【0005】
一実施形態では、アイテム追跡システムは、イメージング装置のプラットフォームでトリガーイベントを検出するように構成されたアイテム追跡装置を含む。トリガーイベントは、ユーザがプラットフォーム上にアイテムを置くことによってイメージング装置に近づくか、又はイメージング装置と対話する場合に対応し得る。アイテム追跡装置は、3Dセンサを使用してプラットフォーム上のアイテムの深度画像を取り込み、深度画像に基づいてプラットフォーム上の各アイテムのオブジェクト姿勢(pose)を決定するように構成される。姿勢は、プラットフォームに対するアイテムの位置及び向きに対応する。アイテム追跡装置は、プラットフォーム上の各アイテムのオブジェクト姿勢に基づいて、イメージング装置上の複数のカメラの中から1つ又は複数のカメラを特定するようにさらに構成される。このプロセスにより、アイテム追跡装置が、プラットフォーム上のアイテムの最良のビューを有するカメラを選択でき、アイテムを識別するために処理される画像の数が削減される。アイテム追跡装置は、特定したカメラを使用してプラットフォーム上のアイテムの画像を取り込み、アイテムの特徴に基づいて画像内のアイテムを識別するようにさらに構成される。アイテム追跡装置は、プラットフォーム上の識別したアイテムに関連付けられたユーザを識別し、ユーザに関連付けられたアカウントを識別し、ユーザに関連付けられたアカウントにアイテムを追加するようにさらに構成される。
【0006】
別の実施形態では、アイテム追跡システムは、第1の時点(time instance)で3Dセンサを使用してプラットフォームの第1の俯瞰(overhead:上部)深度画像を取り込み、第2の時点で3Dセンサを使用して第1のオブジェクトの第2の俯瞰深度画像を取り込むように構成されたアイテム追跡装置を含む。アイテム追跡装置は、第2の俯瞰深度画像において第1のオブジェクトの第1の部分が関心領域内にあり、第1のオブジェクトの第2の部分が関心領域外にあると決定するようにさらに構成される。アイテム追跡装置は、第3の時点で3Dセンサを使用してプラットフォーム上に置かれた第2のオブジェクトの第3の俯瞰深度画像を取り込むようにさらに構成される。アイテム追跡装置は、プラットフォームに対して第1のオブジェクトが関心領域外にあり、第2のオブジェクトが関心領域内にあるとの決定に応じて、カメラを使用して第2のオブジェクトの第1の画像を取り込むようにさらに構成される。
【0007】
別の実施形態では、アイテム追跡システムは、第1の画像内のアイテムに対応する第1の複数のピクセル内の第1のピクセル位置を特定し、第1のピクセル位置に第1のホモグラフィを適用して第1の(x,y)座標を決定するように構成されたアイテム追跡装置を含む。アイテム追跡装置は、第2の画像内のアイテムに対応する第2の複数のピクセル内の第2のピクセル位置を特定し、第2のピクセル位置に第2のホモグラフィを適用して第2の(x,y)座標を決定するようにさらに構成される。アイテム追跡装置は、第1の(x,y)座標と第2の(x,y)座標との間の距離が距離閾値以下であると決定し、第1の複数のピクセル及び第2の複数のピクセルをアイテムのクラスタに関連付け、第1の複数のピクセル及び第2の複数のピクセルを出力するようにさらに構成される。
【0008】
別の実施形態では、アイテム追跡システムは、ユーザがプラットフォーム上に第1のアイテムを置くことに対応するトリガーイベントを検出し、カメラを使用してプラットフォーム上の第1のアイテムの第1の画像を取り込み、第1の画像に存在する第1のアイテムの特徴に基づいて第1のエンコード化(encoded)ベクトルを出力するように構成された機械学習モデルに第1の画像を入力するように構成されたアイテム追跡装置を含む。アイテム追跡装置は、エンコード化ベクトル・ライブラリ内で第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを識別し、エンコード化ベクトル・ライブラリ内で第2のエンコード化ベクトルに関連付けられた第1のアイテム識別子を識別するようにさらに構成される。アイテム追跡装置は、ユーザを識別し、ユーザに関連付けられたアカウントを識別し、第1のアイテム識別子をユーザのアカウントに関連付けるようにさらに構成される。
【0009】
別の実施形態では、アイテム追跡システムは、第1のエンコード化ベクトルを受け取り、第1のオブジェクトの1つ又は複数の特徴記述子を受け取るように構成されたアイテム追跡装置を含む。アイテム追跡装置は、エンコード化ベクトル・ライブラリから、1つ又は複数の特徴記述子に関連付けられていない1つ又は複数のエンコード化ベクトルを除去し、第1のエンコード化ベクトル内の数値に基づいて、エンコード化ベクトル・ライブラリ内で第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを識別するようにさらに構成される。アイテム追跡装置は、エンコード化ベクトル・ライブラリ内で第2のエンコード化ベクトルに関連付けられる第1のアイテム識別子を識別し、第1のアイテム識別子を出力するようにさらに構成される。
【0010】
別の実施形態では、アイテム追跡システムは、カメラを使用してプラットフォーム上のアイテムの第1の画像を取り込み、アイテムに対応する第1の画像内の第1のピクセル数を決定するように構成されたアイテム追跡装置を含む。アイテム追跡装置は、3次元(3D)センサを使用してプラットフォーム上のアイテムの第1の深度画像を取り込み、アイテムに対応する第1の深度画像内の第2のピクセル数を決定するようにさらに構成される。アイテム追跡装置は、第1の画像内の第1のピクセル数と第1の深度画像内の第2のピクセル数との間の差が差閾値未満であると決定し、第1の画像から第1の画像内のアイテムに対応する複数のピクセルを抽出して第2の画像を生成し、第2の画像を出力するようにさらに構成される。
【0011】
別の実施形態では、アイテム追跡システムは、第1のアイテムの第1の点群データを受け取り、第1の点群データ内の第1のオブジェクトの第1の複数のデータポイントを識別し、第1の点群データから第1の複数のデータポイントを抽出するように構成されたアイテム追跡装置を含む。アイテム追跡装置は、第1のアイテムの第2の点群データを受け取り、第2の点群データ内の第1のオブジェクトの第2の複数のデータポイントを識別し、第2の点群データから第2の複数のデータポイントを抽出するようにさらに構成される。アイテム追跡装置は、第1の複数のデータポイント及び第2の複数のデータポイントをマージして結合した点群データを生成し、結合した点群データに基づいて第1のオブジェクトの寸法を決定するようにさらに構成される。
【0012】
本開示の特定の実施形態は、これらの利点の一部、全部を含む、又はいずれも含まない可能性がある。これらの利点及び他の特徴は、添付の図面及び特許請求の範囲と併せて以下の詳細な説明を読むことで、より明確に理解されるだろう。
【図面の簡単な説明】
【0013】
本開示をより完全に理解するために、添付の図面及び詳細な説明と併せて以下の簡単な説明を参照する。ここで、同様の参照符号は同様の部分を表す。
図1】デジタル画像処理を使用するように構成されたアイテム追跡システムの一実施形態の概略図である。
図2A】イメージング装置の一実施形態の斜視図である。
図2B】エンクロージャを含むイメージング装置の別の実施形態の斜視図である。
図2C】開いたエンクロージャを含むイメージング装置の別の実施形態の斜視図である。
図3】アイテム追跡システムのアイテム追跡プロセスの一実施形態のフローチャートである。
図4】アイテムをプラットフォームに置く前と置いた後の、イメージング装置のプラットフォームの深度画像の比較の例である。
図5A】アイテムの画像の例である。
図5B】アイテムの画像の例である。
図5C】アイテムの画像の例である。
図6】アイテム追跡システムのために構成されたアイテム追跡装置の一実施形態である。
図7】アイテム識別をトリガーするための手検出プロセスの一実施形態のフローチャートである。
図8A】アイテムをイメージング装置のプラットフォーム上に置いていない状態のプラットフォームの俯瞰深度画像の例である。
図8B】イメージング装置のプラットフォームの上に手があるときのプラットフォームの俯瞰深度画像の例である。
図8C】イメージング装置のプラットフォームの上に手があるときのプラットフォームのオーバーヘッド画像の例である。
図8D】アイテムをイメージング装置のプラットフォーム上に置いた状態のプラットフォームの俯瞰深度画像の例である。
図9】アイテム識別のための画像切り抜きプロセスの一実施形態のフローチャートである。
図10A】イメージング装置のプラットフォーム上のアイテムの深度画像と、アイテムを取り込む画像からの関心領域の例である。
図10B】アイテムを取り込む画像からの関心領域をアイテムの深度画像に重ね合わせた例である。
図10C】イメージング装置のプラットフォーム上のアイテムの深度画像と、アイテムを取り込む画像からの関心領域の別の例である。
図10D】アイテムを取り込む画像からの関心領域をアイテムの深度画像に重ね合わせた別の例である。
図11】アイテム位置検出プロセスの一実施形態のフローチャートである。
図12A】アイテム追跡システムのホモグラフィの例である。
図12B】追跡システムの逆ホモグラフィの例である。
図13A】イメージング装置のプラットフォーム上のアイテムの関心領域をカメラで取り込んだ画像の例である。
図13B】イメージング装置のプラットフォーム上のアイテムの関心領域をカメラで取り込んだ画像の別の例である。
図13C】イメージング装置のプラットフォーム上のアイテムの関心領域をカメラで取り込んだ画像の別の例である。
図14】アイテムの位置検出中にアイテムクラスタを含むイメージング装置のプラットフォームの俯瞰図の例である。
図15】エンコード化ベクトル・ライブラリの検索空間削減プロセスの一実施形態のフローチャートである。
図16】エンコード化ベクトル・ライブラリの例である。
図17】エンコード化ベクトルとエンコード化ベクトル・ライブラリ内のエントリとの間の類似ベクトルを生成するプロセスの例である。
図18】点群情報を使用したアイテムの寸法決定プロセスの一実施形態のフローチャートである。
図19】3Dセンサからの、イメージング装置のプラットフォーム上のアイテムの点群データの俯瞰図の例である。
図20】3Dセンサからの、イメージング装置のプラットフォーム上のアイテムの点群データの斜視図の例である。
図21】3Dセンサからの、イメージング装置のプラットフォーム上のアイテムの点群データの斜視図の別の例である。
図22】複数の3Dセンサからのアイテムの結合した点群データの例である。
図23】エンコード化ベクトルを使用するアイテム追跡プロセスの一実施形態のフローチャートである。
図24】イメージング装置のプラットフォーム上で検出したアイテムを表示するグラフィカルユーザインターフェイスの例である。
図25】イメージング装置のプラットフォーム上で検出したアイテムを表示するグラフィカルユーザインターフェイスの別の例である。
図26】イメージング装置のプラットフォームからアイテムを削除するための確認メッセージを表示するグラフィカルユーザインターフェイスの例である。
図27】本開示の1つ又は複数の実施形態による、第1のアイテムとの関連性に基づいて第2のアイテムを識別することを示す図である。
図28】本開示の1つ又は複数の実施形態による、アイテム識別子同士の間の関連性を示す図である。
図29】本開示の1つ又は複数の実施形態による、第1のアイテムとの関連性に基づいて第2のアイテムを識別するための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0014】
システムの概要
図1は、デジタル画像処理を使用するように構成されたアイテム追跡システム100の一実施形態の概略図である。アイテム追跡システム100は、デジタル画像処理を使用して、イメージング装置102のプラットフォーム202上に置かれたアイテム204を識別し、アイテム204を特定のユーザに割り当てることができる。このプロセスにより、ユーザが、スキャンしたり、取得したいアイテム204を手動で識別したりすることなく、空間からアイテム204を取得することができる。一実施形態では、アイテム追跡システム100は、買い物客が従来の勘定(checkout:会計)プロセスに従事する必要がないように、空間(例えば、店舗)に設置することができる。本開示では店舗の例を使用するが、本開示では、アイテム追跡システム100を任意のタイプの物理的空間(例えば、部屋、オフィス、屋外スタンド、ショッピングモール、スーパーマーケット、コンビニエンスストア、ポップアップストア、倉庫、保管センタ、遊園地、空港、オフィスビル等)に設置し、使用し得ることを想定している。一例として、空間は、購入可能な複数のアイテム204を含む店舗であり得る。アイテム追跡システム100は、買い物客が店舗からアイテムを購入するために従来の勘定プロセスに従事する必要がないように、店舗に設置され得る。この例では、店舗はコンビニエンスストア又は食料品店であり得る。他の例では、店舗は、物理的な建物ではなく、買い物客が買い物できる物理的な空間又は環境である可能性がある。例えば、店舗は、空港の「持ち帰り用」パントリ、オフィスビルのキオスク、公園の屋外マーケット等であり得る。別の例として、空間は、ユーザが使用又は借りることができる複数のアイテム204を含む倉庫又は備品室であり得る。この例では、アイテム追跡システム100は、ユーザが自分で部品又は備品を勘定できるようにインストールできる。他の例では、アイテム追跡システム100は、他の適切なアプリケーションに使用できる。
【0015】
一実施形態では、アイテム追跡システム100は、ネットワーク106を介して互いに信号通信する1つ又は複数のイメージング装置102及びアイテム追跡装置104から構成される。ネットワーク106によって、アイテム追跡システム100の様々なコンポーネント同士の間の通信が可能になる。本開示では、ネットワーク106が、アイテム追跡システム100のコンポーネント同士の間の通信を容易にするために動作可能な任意の適切なネットワークであることを想定している。ネットワーク106には、オーディオ、ビデオ、信号、データ、メッセージ、又はこれらの任意の組合せを送信できる任意の相互接続システムが挙げられ得る。ネットワーク106には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、オバーレイネットワーク、ソフトウェア規定ネットワーク(SDN)、仮想プライベートネットワーク(VPN)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、4G又は5G等のセルラーネットワーク等)、一般電話(POT)ネットワーク、無線データネットワーク(例えば、WiFi、WiGig、WiMax等)、LTE(Long Term Evolution)ネットワーク、UMTS(Universal
Mobile Telecommunications System)ネットワーク、ピアツーピア(P2P)ネットワーク、Bluetoothネットワーク、近距離無線通信(NFC)ネットワーク、Zigbeeネットワーク、及び/又は他の適切なネットワークの全て又は一部が含まれ得る。
【0016】
イメージング装置
イメージング装置102は、一般に、イメージング装置102のプラットフォーム202上に置かれたアイテム204の画像122及び深度画像124を取り込むように構成される。一実施形態では、イメージング装置102は、1つ又は複数のカメラ108、1つ又は複数の3次元(3D)センサ110、及び1つ又は複数の重量センサ112を含む。イメージング装置102のハードウェア構成に関する追加情報は、図2A図2Cで説明する。
【0017】
カメラ108及び3Dセンサ110はそれぞれ、プラットフォーム202の少なくとも一部の画像122及び深度画像124をそれぞれ取り込むように構成される。カメラ108は、アイテム204の画像122(例えば、RGB画像)を取り込むように構成される。カメラ108の例には、カメラ、ビデオカメラ、ウェブカメラ、及びプリント回路基板(PCB)カメラが挙げられるが、これらに限定されない。3Dセンサ110は、アイテム204の深度マップ又は点群データ等の深度画像124を取り込むように構成される。深度画像124は複数のピクセルで構成される。深度画像124内の各ピクセルは、3Dセンサ110と深度画像124内の表面との間の距離を特定する深度情報で構成される。3Dセンサ110の例には、深度感知カメラ、飛行時間センサ、LiDAR、構造化光カメラ、又は他の適切なタイプの深度感知装置が挙げられるが、これらに限定されない。いくつかの実施形態では、カメラ108及び3Dセンサ110は、単一の装置内に統合してもよい。他の実施形態では、カメラ108及び3Dセンサ110は、別々の装置である場合がある。
【0018】
重量センサ112は、イメージング装置102のプラットフォーム202上に置かれたアイテム204の重量を測定するように構成される。例えば、重量センサ112は、入力した機械的な力(例えば、重量、張力、圧縮、圧力、又はトルク)を出力電気信号(例えば、電流又は電圧)に変換するトランスデューサを含むことができる。入力する力が増大するにつれて、出力される電気信号は比例して増大し得る。アイテム追跡装置104は、出力される電気信号を解析して、重量センサ112上のアイテム204の総重量を決定するように構成される。重量センサ112の例には、圧電ロードセル又は圧力センサが挙げられるが、これらに限定されない。例えば、重量センサ112は、ロードセルが受ける重量を示す電気信号を伝達するように構成された1つ又は複数のロードセルを含むことができる。例えば、ロードセルは、ロードセルが受ける重量又は力に応じて変化する電流を生成することができる。ロードセルは、生成した電気信号を、処理するためにアイテム追跡装置104に伝達するように構成される。
【0019】
アイテム追跡装置
アイテム追跡装置104の例には、サーバ、コンピュータ、ラップトップ、タブレット、又は他の適切なタイプの装置が挙げられるが、これらに限定されない。図1では、イメージング装置102及びアイテム追跡装置104が2つの装置として示される。いくつかの実施形態では、イメージング装置102及びアイテム追跡装置104は、単一の装置内に統合してもよい。一実施形態では、アイテム追跡装置104は、アイテム追跡エンジン114及びメモリ116を含む。アイテム追跡装置104のハードウェア構成に関する追加の詳細が図6に記載される。メモリ116は、アイテム情報118、ユーザアカウント情報120、機械学習モデル126、エンコード化ベクトル・ライブラリ128、及び/又は他の適切なタイプのデータを記憶するように構成される。
【0020】
一実施形態では、アイテム追跡エンジン114は、一般に、画像122及び深度画像124を処理して、イメージング装置102のプラットフォーム202上に置かれたアイテム204を識別し、識別したアイテム204をユーザに関連付けるように構成される。アイテム追跡エンジン114の動作の例については、図3及び図7図26でより詳細に説明する。
【0021】
アイテム情報118には、一般に、複数のアイテムに関連付けられた情報が含まれる。アイテム情報118の例には、価格、重量、バーコード、アイテム識別子、アイテム番号、アイテムの特徴、又はアイテム204に関連付けられた他の適切な情報が挙げられるが、これらに限定されない。アイテムの特徴の例には、テキスト、ロゴ、ブランド、色、バーコード、パターン、形状、又はアイテム204の他の適切なタイプの属性が挙げられるが、これらに限定されない。ユーザアカウント情報120には、ユーザに関連付けられた1つ又は複数のアカウントの情報が含まれる。アカウントの例には、顧客アカウント、従業員アカウント、学校アカウント、ビジネスアカウント、金融アカウント、デジタルカート、又は他の適切なタイプのアカウントが挙げられるが、これらに限定されない。ユーザアカウント情報120は、ユーザに関連付けられたアカウントにユーザ情報を関連付けるように構成され得る。ユーザ情報の例には、名前、電話番号、電子メールアドレス、識別番号、従業員番号、英数字コード、特典会員情報、又はユーザに関連付けられた他の適切な種類の情報等が挙げられるが、これらに限定されない。いくつかの実施形態では、アイテム情報118及び/又はユーザアカウント情報120は、アイテム追跡装置104の外部にある装置(例えば、クラウドサーバ)に記憶され得る。
【0022】
機械学習モデル126の例には、多層パーセプトロン、リカレントニューラルネットワーク(RNN)、RNN長短期メモリ(LSTM)、畳み込みニューラルネットワーク(CNN)、トランスフォーマ、又は他の適切な種類のニューラルネットワークモデル等が挙げられるが、これらに限定されない。一実施形態では、機械学習モデル126は、一般に、入力として画像122を受け取り、提供された画像122に基づいてアイテム識別子を出力するように構成される。機械学習モデル126は、対応するラベル(例えば、アイテム識別子)を有するアイテム204の異なる画像122を含む教師あり学習トレーニングデータを使用してトレーニングされる。トレーニングプロセス中に、機械学習モデル126は、機械学習モデル126がアイテム204の画像122を異なるアイテム識別子にマッピングできるようにする重み及びバイアス値を決定する。このプロセスを通じて、機械学習モデル126は、画像122内のアイテム204を識別することができる。アイテム追跡エンジン114は、当業者に理解される任意の適切な技術を使用して機械学習モデル126をトレーニングするように構成され得る。いくつかの実施形態では、機械学習モデル126は、アイテム追跡装置104の外部にある装置によって記憶及び/又はトレーニングされる場合がある。
【0023】
エンコード化ベクトル・ライブラリ128には、一般に、アイテム追跡装置104によって識別できるアイテム204の情報が含まれる。エンコード化ベクトル・ライブラリ128の例が図16に示される。一実施形態では、エンコード化ベクトル・ライブラリ128は複数のエントリ1602を含む。各エントリ1602は、アイテム追跡装置104によって識別できる異なるアイテム204に対応する。図16を例として参照すると、各エントリ1602は、アイテム識別子1604及び複数の特徴記述子1608にリンクされたエンコード化ベクトル1606を含むことができる。エンコード化ベクトル1606は、数値の配列を含む。各数値は、アイテム204の物理的属性(例えば、アイテムタイプ、サイズ、形状、色等)に対応し、それを記述する。エンコード化ベクトル1606は、任意の適切な長さであってもよい。例えば、エンコード化ベクトル1606のサイズは、1×256、1×512、1×1024、又は他の適切な長さを有してもよい。アイテム識別子1604は、アイテム204を一意に識別する。アイテム識別子1604の例には、製品名、在庫管理単位(SKU)番号、英数字コード、グラフィカルコード(例えば、バーコード)、又は他の適切なタイプの識別子が挙げられるが、これらに限定されない。各特徴記述子1608は、アイテム204の物理的特性を記述する。特徴記述子1608の例には、アイテムタイプ1610、支配的な色1612、寸法1614、重量1616、又はアイテム204の物理的属性を記述する他の適切なタイプの記述子が挙げられるが、これらに限定されない。アイテムタイプ1610によって、アイテム204の分類が識別される。例えば、アイテムタイプ1610は、アイテム204が、缶、ボトル、箱、果物、バッグ等であるかどうかを示す。支配的な色1612によって、アイテム204の表面(例えば、パッケージ)に表示される1つ又は複数の色が識別される。寸法1614によって、アイテム204の長さ、幅、及び高さが識別され得る。いくつかの実施形態では、寸法1614は昇順でリストされ得る。重量1616によって、アイテム204の重量が識別される。重量1616は、ポンド、オンス、リットル、又は他の適切な単位で表示され得る。
【0024】
イメージング装置のハードウェア構成
図2Aは、イメージング装置102の一実施形態の斜視図である。この例では、イメージング装置102は、プラットフォーム202、フレーム構造206、複数のカメラ108、複数の3Dセンサ110、及び重量センサ112を含む。イメージング装置102は、図2Aに示されるように構成することも、他の適切な構成にすることもできる。いくつかの実施形態では、イメージング装置102は、ライト、ディスプレイ、及びグラフィカルユーザインターフェイスを含むが、これらに限定されない追加のコンポーネントをさらに含む場合がある。
【0025】
プラットフォーム202は、複数のアイテム204を保持するように構成された表面208を含む。いくつかの実施形態では、プラットフォーム202は重量センサ112と統合され得る。例えば、プラットフォーム202は重量センサ112上に位置付けされ、重量センサ112はプラットフォーム202上に置かれたアイテム204の重量を測定することができる。別の例として、重量センサ112は、プラットフォーム202内に配置され、プラットフォーム202上に置かれたアイテム204の重量を測定することができる。いくつかの実施形態では、表面208の少なくとも一部は透明であってもよい。この場合に、カメラ108又はスキャナ(例えば、バーコードスキャナ)は、プラットフォーム202の表面208の下に配置され、画像122を取り込むか、又はプラットフォーム202上に置かれたアイテム204の底部をスキャンするように構成してもよい。例えば、カメラ108又はスキャナは、プラットフォーム202の透明な表面208を通してアイテム204の製品ラベル及び/又はバーコード(例えば、SKU)を識別して読み取るように構成してもよい。プラットフォーム202は、アルミニウム、金属、木材、プラスチック、ガラス、又は他の適切な材料で形成してもよい。
【0026】
フレーム構造206は、一般に、カメラ108及び3Dセンサ110を支持し、位置付けするように構成される。図2Aでは、フレーム構造206は、プラットフォーム202上のアイテム204の斜視図を撮影する第1のカメラ108A及び第2のカメラ108Cをイメージング装置102の両側面に位置付けするように構成される。フレーム構造206は、プラットフォーム202上のアイテム204の斜視図を撮影する第3のカメラ108Dをイメージング装置102の背面に位置付けするようにさらに構成される。いくつかの実施形態では、フレーム構造206は、プラットフォーム202上のアイテム204の斜視図を撮影する第4のカメラ108(図示せず)をイメージング装置102の前面にさらに含んでもよい。フレーム構造206は、側面カメラ108A及び108C、背面カメラ108D、及び前面カメラ108の任意の数及び組合せを使用するように構成してもよい。例えば、特定したカメラ108の1つ又は複数はオプションであり、省略してもよい。斜視画像122又は深度画像124は、プラットフォーム202上に置かれたアイテム204の側面を取り込むように構成される。フレーム構造206は、プラットフォーム202上のアイテム204の上面図又は俯瞰図を撮影する第3のカメラ108B及び3Dセンサ110を位置付けするようにさらに構成される。俯瞰画像122又は深度画像124は、プラットフォーム202上に置かれたアイテム204の上向きの表面を撮影するように構成される。他の例では、フレーム構造206は、カメラ108及び3Dセンサ110の任意の他の適切な数及び組合せを支持及び位置付けするように構成することができる。フレーム構造206は、アルミニウム、金属、木材、プラスチック、又は他の適切な材料で形成してもよい。
【0027】
図2Bは、エンクロージャ210を含むイメージング装置102の別の実施形態の斜視図である。この構成では、エンクロージャ210は、イメージング装置102のフレーム構造206、カメラ108、3Dセンサ110、及びプラットフォーム202を少なくとも部分的に包み込むように構成される。フレーム構造206、カメラ108、3Dセンサ110、及びプラットフォーム202は、図2Aで説明したものと同様に構成してもよい。一実施形態では、フレーム構造206は、カメラ108及び3Dセンサ110をエンクロージャ210内で再位置付けできるように構成されたレール又はトラック212をさらに含んでもよい。例えば、カメラ108A、108C、及び108Dは、レール212を使用して、プラットフォーム202に対して垂直軸に沿って再位置付け可能であってもよい。同様に、カメラ108B及び3Dセンサ110は、レール212を使用して、プラットフォーム202に対して水平軸に沿って再位置付け可能であってもよい。
【0028】
図2Cは、開いたエンクロージャ214を含むイメージング装置102の別の実施形態の斜視図である。この構成では、エンクロージャ214は、イメージング装置102のフレーム構造206、カメラ108、3Dセンサ110、及びプラットフォーム202を少なくとも部分的に覆うように構成される。フレーム構造206、カメラ108、3Dセンサ110、及びプラットフォーム202は、図2Aで説明したものと同様に構成してもよい。一実施形態では、フレーム構造206はエンクロージャ214内に統合してもよい。例えば、エンクロージャ214は、カメラ108及び3Dセンサ110を収容するように構成された開口部216を含むことができる。図2Cでは、エンクロージャ214は、角が丸い長方形の断面を有する。他の実施形態では、エンクロージャ214は、他の任意の適切な形状の断面で構成してもよい。
【0029】
アイテム追跡プロセス
図3は、アイテム追跡システム100のアイテム追跡プロセス300の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス300を使用して、イメージング装置102のプラットフォーム202上に置かれたアイテム204を識別し、アイテム204を特定のユーザに割り当てることができる。例として、アイテム追跡システム100は、店舗内でプロセス300を使用して、購入のためにユーザのデジタルカートにアイテム204を追加することができる。別の例として、アイテム追跡システム100は、倉庫又は備品室内でプロセス300を使用して、ユーザにアイテムをチェックアウト(会計)することができる。他の例では、アイテム追跡システム100は、アイテム204が特定のユーザに割り当てられるか、又は関連付けられる、他の適切なタイプのアプリケーションでプロセス300を使用することができる。このプロセスにより、ユーザは、取得したいアイテム204をスキャンしたり、他の方法で識別したりすることなく、空間からアイテム204を取得することができる。
【0030】
動作302では、アイテム追跡装置104は、イメージング装置102の自動除外を実行する。初期キャリブレーション期間中に、プラットフォーム202にはアイテム204が置かれていない可能性がある。この期間中に、アイテム追跡装置104は、1つ又は複数のカメラ108及び3Dセンサ110を使用して、プラットフォーム202にアイテム204を置かない状態で、プラットフォームの参照画像122及び参照深度画像124を取り込む。次に、アイテム追跡装置104は、取り込んだ画像122及び深度画像124を参照画像として使用して、アイテムがプラットフォーム202に置かれたことを検出できる。例えば、アイテム追跡装置104は、プラットフォーム202の上面図又は俯瞰図を撮影するように構成された3Dセンサ110を使用して、プラットフォーム202にアイテム204を置いていないときのプラットフォーム202の参照深度画像124を取り込むことができる。この例では、取り込んだ深度画像124は、プラットフォーム202の表面208に対応する深度画像124全体にわたって実質的に一定の深度値を含み得る。後で、アイテム追跡装置104は、後続の深度画像124と参照深度画像124との間の深度値の差に基づいて、アイテム204がプラットフォーム202の表面208上に置かれたことを検出することができる。別の例として、アイテム追跡装置104は、プラットフォーム202の上面図又は斜視図を撮影するように構成されたカメラ108を使用して、プラットフォーム202上にアイテム204を置いていないときのプラットフォームの参照画像122を取り込むことができる。この例では、取り込んだ画像122は、プラットフォーム202上にアイテム204が存在しないときのプラットフォームのシーンに対応するピクセル値を含む。後で、アイテム追跡装置104は、後続の画像122と参照画像122との間のピクセル値の差に基づいて、アイテム204がプラットフォーム202上に置かれたことを検出することができる。
【0031】
動作304では、アイテム追跡装置104は、トリガーイベントを検出したかどうかを判定する。トリガーイベントは、ユーザがイメージング装置102と対話していることを示すイベントに対応する。例えば、トリガーイベントは、ユーザがイメージング装置102に近づいたり、アイテム204をイメージング装置102の上に置いたりしたときに発生し得る。一例として、アイテム追跡装置104は、3Dセンサ110を使用して動きを検出したことに応じて、又は3Dセンサ110によって取り込んだ深度画像124の変化に基づいて、トリガーイベントが発生したことを判定することができる。例えば、アイテム追跡装置104は、3Dセンサ110によって取り込んだ深度画像124と参照深度画像124との間の深度値の差に基づいて、アイテム204がプラットフォーム202の表面208に置かれたことを検出できる。図4を例として参照すると、図4は、図2Aに示されるアイテム204をプラットフォーム202上に置く前と置いた後の、イメージング装置102のプラットフォーム202の俯瞰図からの深度画像124同士の間の比較の例を示している。深度画像124Aは、アイテム204をプラットフォーム202上に置いていないときに取り込まれた参照深度画像124に対応する。深度画像124Bは、アイテム204をプラットフォーム202上に置いた後に取り込まれた深度画像124に対応する。この例では、深度画像124内の色又はピクセル値は、異なる深度値を表す。深度画像124Aでは、深度画像124Aの深度値はほぼ一定であり、これはプラットフォーム202上にアイテム204がないことを意味する。深度画像124Bでは、異なる深度値は、プラットフォーム202上に置かれたアイテム204(つまり、アイテム204A、204B、及び204C)に対応する。この例では、アイテム追跡装置104は、深度画像124Aと深度画像124Bとの間の差に基づいて、プラットフォーム202上にアイテム204が存在すると検出したことに応じて、トリガーイベントを検出する。アイテム追跡装置104は、画像122又は深度画像124を使用して、プラットフォーム202上にあるアイテム204の数をカウントすることもできる。この例では、アイテム追跡装置104は、深度画像124Bに基づいて、プラットフォーム202上に置かれたアイテム204が3つあると決定する。アイテム追跡装置104は、決定したアイテム204の数を後で使用して、全てのアイテム204を識別したかどうかを確認することができる。このプロセスについては、以下の動作312でより詳細に説明する。
【0032】
別の例として、アイテム追跡装置104は、カメラ108を使用して動きを検出したことに応じて、又はカメラ108によって取り込んだ画像122の変化に基づいて、トリガーイベントが発生したと判定することができる。例えば、アイテム追跡装置104は、後続の画像122と参照画像122との間のピクセル値の差に基づいて、アイテム204がプラットフォーム202に置かれたことを検出できる。別の例として、アイテム追跡装置104は、イメージング装置102の重量センサ112に対する重量増大に応じて、トリガーイベントが発生したと判定することができる。この場合に、重量センサ112によって測定した重量の増大は、1つ又は複数のアイテム204がプラットフォーム202に置かれたことを示す。他の例では、アイテム追跡装置104は、ユーザがイメージング装置102に近づいたとき、又はアイテム204をプラットフォーム202に置いたときを検出するために、他の適切なタイプのセンサ又は技術を使用することができる。
【0033】
アイテム追跡装置104は、トリガーイベントを検出しなかったと判定することに応じて、動作304のままになる。この場合に、アイテム追跡装置104は、ユーザが未だイメージング装置102と対話していないと判定する。アイテム追跡装置104は、ユーザがイメージング装置102と対話し始めるまで、動作304のままでトリガーイベントのチェックを続ける。アイテム追跡装置104は、トリガーイベントを検出したと判定することに応じて、動作306に進む。この場合に、アイテム追跡装置104は、ユーザがイメージング装置102と対話し始めたと判定する。アイテム追跡装置104は、動作306に進み、イメージング装置102のプラットフォーム202上に置かれたアイテムの識別を開始する。
【0034】
動作306では、アイテム追跡装置104は、イメージング装置102のプラットフォーム202上のアイテム204の画像122を取り込むための1つ又は複数のカメラ108を特定する。アイテム追跡装置104は、プラットフォーム202上のアイテム204の姿勢(例えば、位置及び向き)に少なくとも部分的に基づいて、アイテム204の画像122を取り込むためのカメラ108を特定することができる。アイテム204の姿勢は、アイテム204の位置、及びアイテム204がプラットフォーム202に対してどのように位置付けされるかに対応する。図2Aの例を参照すると、第1のアイテム204A及び第2のアイテム204Cがプラットフォーム202に対して垂直向きに位置付けされる。垂直向きでは、アイテム204の識別可能な特徴は主に垂直向きにある。斜視図を撮影するカメラ108A及び108C等のカメラ108は、垂直向きにあるアイテム204の識別可能な特徴の画像122を取り込むのに適している場合がある。例えば、アイテム追跡装置104は、アイテム204Aの識別可能な特徴の殆ど、例えばブランド、テキスト、バーコード等がアイテム204Aの側面に位置しており、アイテム204の斜視図を使用すると最もよく見えるため、アイテム204Aの画像122を取り込むためにカメラ108Aを選択することができる。同様に、アイテム追跡装置104は、次に、アイテム204Cの画像122を取り込むためにカメラ108Cを選択することができる。この例では、第3のアイテム204Bは、プラットフォーム202に対して水平向きに位置付けされる。水平向きでは、アイテム204の識別可能な特徴は主に水平向きである。上面図又は俯瞰図を撮影するカメラ108B等のカメラ108は、水平向きにあるアイテム204の識別可能な特徴の画像122を取り込むのに適している可能性がある。この場合に、アイテム追跡装置104は、アイテム204Bの識別可能な特徴の殆どがアイテム204Bの上部に位置しており、アイテム204Bの俯瞰図を使用すると最もよく見えるため、アイテム204Bの画像122を取り込むためにカメラ108Bを選択することができる。
【0035】
一実施形態では、アイテム追跡装置104は、深度画像124を使用してプラットフォーム202上のアイテム204の姿勢を決定することができる。図4を例として参照すると、深度画像124Bは、図2Aに示されるアイテム204(すなわち、アイテム204A、204B、及び204C)をプラットフォーム202上に置いた後に取り込まれた俯瞰深度画像124に対応する。この例では、アイテム追跡装置104は、深度画像124B内の各アイテム204に対応する領域を使用して、アイテム204の姿勢を決定することができる。例えば、アイテム追跡装置104は、深度画像124B内のアイテム204Aに対応する領域(area:面積)402を決定することができる。アイテム追跡装置104は、決定した面積402を所定の面積閾値614と比較する。アイテム追跡装置104は、アイテム204の決定した面積402が所定の面積閾値614以下である場合に、アイテム204が垂直向きであると判定する。そうでない場合に、アイテム追跡装置104は、アイテム204の決定した面積402が所定の面積閾値614より大きい場合に、アイテム204が水平向きであると判定する。この例では、アイテム追跡装置104は、アイテム204A及び204Cの面積402及び406がそれぞれ面積閾値614以下であるため、アイテム204A及び204Cが垂直向きであると判定する。アイテム追跡装置104は、アイテム204Bの面積404が面積閾値614より大きいため、アイテム204Bが水平向きであると判定する。この判定は、アイテム追跡装置104が、アイテム204A及び204Cの画像122を取り込むために、プラットフォーム202の斜視図を撮影するカメラ108(例えば、カメラ108A及び108C)を選択することを意味する。アイテム追跡装置104は、アイテム204Bの画像122を取り込むために、プラットフォーム202の上面図又は俯瞰図を撮影するカメラ108(例えば、カメラ108B)を選択する。
【0036】
一実施形態では、アイテム追跡装置104は、アイテム204とカメラ108との間の距離に少なくとも部分的に基づいて、アイテム204の画像122を取り込むためのカメラ108を特定することができる。例えば、アイテム追跡装置104は、イメージング装置102のカメラ108及び/又は3Dセンサ110の間のホモグラフィ608を生成することができる。ホモグラフィ608を生成することにより、アイテム追跡装置104は、画像122内のアイテム204の位置を使用して、プラットフォーム202、カメラ108、及び3Dセンサ110に対するアイテム204の物理的な位置を決定することができる。これにより、アイテム追跡装置104は、アイテム204の物理的な位置を使用して、アイテム204と、カメラ108及び3Dセンサ110のそれぞれとの間の距離を決定することができる。ホモグラフィ608は、画像122又は深度画像124内のピクセル位置と、グローバル平面(つまり、プラットフォーム202上の物理的な位置)内の(x,y)座標との間の変換を行うように構成された係数を含む。アイテム追跡装置104は、ホモグラフィ608を使用して、特定のカメラ108又は3Dセンサ110内のピクセル位置と、プラットフォーム202上の物理的な位置とを相関させる。換言すれば、アイテム追跡装置104は、ホモグラフィ608を使用して、カメラ108又は3Dセンサ110それぞれからの画像122又は深度画像124内のピクセル位置に基づいて、アイテム204がプラットフォーム202上のどこに物理的に位置しているかを判定する。アイテム追跡装置104が、複数のカメラ108及び3Dセンサ110を使用してプラットフォーム202を監視するため、各カメラ108及び3Dセンサ110は、カメラ108又は3Dセンサ110のイメージング装置102上の物理的位置に基づいて、異なるホモグラフィ608に一意に関連付けられる。この構成により、アイテム追跡装置104は、アイテム204がどのカメラ108又は3Dセンサ110に表示されるか、及びそのカメラ108又は3Dセンサ110によって取り込んだ画像122又は深度画像124内のアイテムの位置に基づいて、アイテム204がプラットフォーム202上の物理的位置にある場所を決定することができる。ホモグラフィ608の生成及びホモグラフィ608の使用に関する追加情報は、“DRAW WIRE ENCODER BASED HOMOGRAPHY”という表題の米国特許第11,023,741号(代理人整理番号090278.0233)に開示されており、この文献はその全体が複製されたかのように本明細書に引用により組み込まれる。
【0037】
例として、アイテム追跡装置104は、プラットフォーム202の上面図又は俯瞰図を撮影するカメラ108又は3Dセンサ110からの画像122又は深度画像124をそれぞれ使用して、プラットフォーム202上のアイテムの物理的位置を決定することができる。この例では、アイテム追跡装置104は、画像122又は深度画像124内のアイテム204のピクセル位置を決定することができる。次に、アイテム追跡装置104は、ホモグラフィ608を使用して、アイテム204のピクセル位置に基づいて、プラットフォーム202に対するアイテム204の物理的位置を決定することができる。プラットフォーム202上のアイテム204の物理的な位置を決定した後に、アイテム追跡装置104は、どのカメラ108がアイテム204に物理的に最も近くに位置にあるかを特定し、特定したカメラ108を選択することができる。図2Aの例に戻ると、アイテム追跡装置104は、カメラ108Aがカメラ108Cよりもアイテム204Aに近いため、カメラ108Aを選択してアイテム204Aの画像122を取り込む。同様に、アイテム追跡装置104は、カメラ108Cがカメラ108Aよりもアイテム204Cに近いため、カメラ108Cを選択してアイテム204Cの画像122を取り込む。このプロセスにより、アイテム204の最もよく見えるカメラ108を選択して、アイテム204の画像122を取り込むことが確保される。
【0038】
動作308では、アイテム追跡装置104は、特定したカメラ108を使用して、プラットフォーム202上のアイテム204の画像122を取り込む。ここで、アイテム追跡装置104は、特定したカメラ108を使用して、アイテム204の画像を取り込む。図5A図5B、及び図5Cを例として参照すると、アイテム追跡装置104は、カメラ108A、108B、及び108Cをそれぞれ使用して、アイテム204Aの第1の画像122A、アイテム204Bの第2の画像122B、及びアイテム204Cの第3の画像122Cを取り込むことができる。アイテム追跡装置104は、処理のために各アイテム204の1つ又は複数の画像122を収集することができる。イメージング装置102で利用可能なカメラ108のサブセットを使用してアイテム204の画像を取り込むことにより、アイテム追跡装置104は、プラットフォーム202上のアイテム204を識別するために取り込み及び処理される画像122の数を減らすことができる。このプロセスにより、アイテム204を識別するための検索空間が削減され、アイテム追跡装置104が、イメージング装置102上の全てのカメラ108からの画像122(同じアイテム204の複数の画像122を含み得る)を処理する代わりに、アイテム204を識別するために処理する画像122の数が少なくなるため、アイテム追跡装置104の効率及びハードウェア利用率が向上する。さらに、アイテム追跡装置104は、動作306で説明したように、アイテム204の向き及び位置に基づいて、アイテム204を識別するのに最も役立つ特徴を取り込むように位置付けされるカメラ108も選択する。特徴の例には、テキスト、ロゴ、ブランド、色、バーコード、パターン、形状、又はアイテム204の他の適切な種類の属性が挙げられるが、これらに限定されない。
【0039】
図3の動作310に戻ると、アイテム追跡装置104は、取り込んだ画像122に基づいてプラットフォーム202上のアイテム204を識別する。ここで、アイテム追跡装置104は、画像122内のアイテム204の特徴に基づいて、各画像122内のアイテム204を識別する。例として、機械学習モデル126はCNNであり得る。この例では、機械学習モデル126には、入力層、出力層、及び1つ又は複数の隠れ層が含まれる。隠れ層には、少なくとも1つの畳み込み層が含まれる。例えば、機械学習モデル126には、次の一連の層:入力層、畳み込み層、プーリング層、畳み込み層、プーリング層、1つ又は複数の完全接続層、出力層が含まれる。機械学習モデル126の各畳み込み層は、畳み込みカーネルのセットを使用して、画像122を形成するピクセルから特徴を抽出する。特定の実施形態では、機械学習モデル126の畳み込み層は周波数領域で実装され、畳み込みプロセスは離散フーリエ変換を使用して実行される。これは、機械学習モデル126をトレーニングして画像分類の目的で使用することに関連する計算時間を短縮する上で望ましい場合がある。例えば、周波数領域に変換することにより、畳み込みに関連する離散フーリエ変換を実行するために高速フーリエ変換アルゴリズム(FFT)を実装できる。FFTアルゴリズムのみを使用すると、単一のCPUで実装する場合の計算時間が大幅に短縮されるだけでなく(空間領域で畳み込みカーネルを適用する場合と比較して)、FFTアルゴリズムは1つ又は複数のグラフィックス処理装置(GPU)を使用して並列化できるため、計算時間をさらに短縮できる。周波数領域に変換することは、機械学習モデル126が平行移動及び回転不変であることを保証するためにも望ましい場合がある(例えば、機械学習モデル126による画像122のアイテム識別子への割り当ては、画像122内のアイテム204の存在に基づいて、画像122内のアイテム204の位置及び/又は向きに依存してはならない)。
【0040】
別の例として、機械学習モデル126は、教師あり学習アルゴリズムであってもよい。従って、特定の実施形態では、アイテム追跡装置104は、機械学習モデル126をトレーニングして、入力画像122を所定のアイテム識別子のセットのいずれかに割り当てるように構成される。アイテム追跡装置104は、機械学習モデル126を任意の適切な方法でトレーニングすることができる。例えば、特定の実施形態では、アイテム追跡装置104は、入力画像122に添付されたラベルのセット(例えば、アイテム識別子)を含むトレーニングデータ(例えば、画像122)を機械学習モデル126に提供することによって、機械学習モデル126をトレーニングする。別の例として、機械学習モデル126は、教師なし学習アルゴリズムであってもよい。このような実施形態では、アイテム追跡装置104は、機械学習モデル126に画像122のコレクションを提供し、且つ機械学習モデル126に指示して、画像122から抽出した共通の特徴に基づいて、アイテム追跡装置104によって識別したアイテム識別子を使用してこれらの画像122を分類することによって、機械学習モデル126をトレーニングするように構成される。アイテム追跡装置104は、取り込んだ画像122を機械学習モデル126に入力する前であればいつでも機械学習モデル126をトレーニングすることができる。
【0041】
機械学習モデル126をトレーニングした後に、アイテム追跡装置104は、取り込んだ画像122のそれぞれを機械学習モデル126に入力することができる。画像122を機械学習モデル126に入力することに応じて、アイテム追跡装置104は、機械学習モデル126からアイテム204のアイテム識別子を受け取る。アイテム識別子は、画像122内で識別したアイテム204に対応する。アイテム識別子の例には、アイテム名、バーコード、アイテム番号、シリアル番号、又はアイテム204を一意に識別する他の適切なタイプの識別子が挙げられるが、これらに限定されない。
【0042】
いくつかの実施形態では、アイテム追跡装置104は、機械学習モデル126を使用せずに、1つ又は複数の画像処理技術を使用して、画像122内のアイテム204を識別することができる。例えば、アイテム追跡装置104は、オブジェクト検出及び/又は光学文字認識(OCR)を使用して、アイテム204を識別するために使用できるアイテム204のテキスト、ロゴ、ブランド、色、バーコード、又は他の特徴を識別することができる。この場合に、アイテム追跡装置104は、画像122内のピクセルを処理して、アイテム204のテキスト、色、バーコード、パターン、又は他の特性を識別することができる。次に、アイテム追跡装置104は、アイテム204の識別した特徴を、様々なアイテム204に対応する一連の特徴と比較できる。例えば、アイテム追跡装置104は、画像122からテキスト(例えば、製品名)を抽出し、そのテキストを異なるアイテム204に関連付けられたテキストセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内の支配的な色を決定し、その支配的な色を異なるアイテム204に関連付けられた色のセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のバーコードを識別し、そのバーコードを異なるアイテム204に関連付けられたバーコードのセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のロゴ又はパターンを識別し、識別したロゴ又はパターンを異なるアイテム204に関連付けられたロゴ又はパターンのセットと比較することができる。他の例では、アイテム追跡装置104は、他の適切なタイプ又は組合せの特徴を識別し、識別した特徴を異なるアイテム204に関連付けられた特徴と比較することができる。画像122から識別した特徴を、異なるアイテム204に関連付けられた特徴のセットと比較した後に、アイテム追跡装置104は、次に、一致が見つかったかどうかを判定する。アイテム追跡装置104は、識別した特徴の少なくとも意味のある部分がアイテム204に対応する特徴と一致する場合に、一致が見つかったと判定することができる。画像122内の特徴の意味のある部分がアイテム204の特徴と一致すると判定されたことに応じて、アイテム追跡装置104は、一致するアイテム204に対応するアイテム識別子を出力できる。他の実施形態では、アイテム追跡装置104は、機械学習モデル126と組み合わせて1つ又は複数の画像処理技術を使用し、前述の技術の任意の組合せを用いて、画像122内のアイテム204を識別することができる。
【0043】
いくつかの実施形態では、アイテム追跡装置104は、アイテム204を正しく識別した確率を示す信頼スコア610を出力するように構成される。例えば、アイテム追跡装置104は、決定したアイテム識別子を使用して機械学習モデル126から信頼スコア610を取得することができる。この例では、機械学習モデル126は、アイテム識別子を決定する際に使用した又は一致した特徴の数に比例する信頼スコア610を出力する。別の例として、アイテム追跡装置104は、識別した特徴が識別したアイテム204の特徴とどの程度一致するかに基づいて信頼スコア610を決定してもよい。例えば、アイテム追跡装置104は、画像122内で識別したテキストの半分が識別したアイテム204に関連付けられたテキストと一致する場合に、50%の信頼スコア610を取得してもよい。別の例として、アイテム追跡装置104は、画像122内のバーコードが識別したアイテム204のバーコードと一致する場合に、100%の信頼スコア610を取得するように決定してもよい。別の例として、アイテム追跡装置104は、画像122内の支配的な色が識別したアイテム204の支配的な色と一致する場合に、25%の信頼スコア610を取得してもよい。他の例では、アイテム追跡装置104は、他の適切なタイプ又は組合せの特徴が識別したアイテム204の特徴とどの程度一致するかに基づいて信頼スコア610を取得してもよい。例信頼スコア610に影響を与える可能性のある他の情報には、オブジェクトの向き、プラットフォーム202上のアイテムの数(例えば、プラットフォーム202上のアイテムの数が少ないほど、プラットフォーム202上のアイテムの数が多い場合よりも識別が容易である)、プラットフォーム上のアイテム同士の間の相対距離(例えば、プラットフォーム202上のアイテムが間隔を空けて配置される場合は、プラットフォーム202上のアイテムが密集している場合よりも識別が容易である)等が挙げられるが、これらに限定されない。アイテム追跡装置104は、識別したアイテム204の信頼スコア610を信頼スコア閾値612と比較して、アイテム204を識別したかどうかを判定することができる。アイテム追跡装置104は、アイテム204の信頼スコア610が信頼スコア閾値612未満である場合に、アイテム204を識別していないと判定することができる。アイテム追跡装置104は、アイテム204の信頼スコア610が信頼スコア閾値612以上である場合に、アイテム204を識別したと判定する。信頼スコア閾値612は、90%、80%、75%、又は他の適切な値に設定してもよい。
【0044】
動作312では、アイテム追跡装置104は、プラットフォーム202上の全てのアイテム204を識別したかどうかを判定する。例えば、アイテム追跡装置104は、取り込んだ画像122から識別したアイテム204の数を、動作304で決定したプラットフォーム202上のアイテム204の数と比較することができる。アイテム追跡装置104は、取り込んだ画像122から識別したアイテム204の数がプラットフォーム202上の決定したアイテム204の数と一致する場合に、プラットフォーム202上の全てのアイテム204を識別したと判定する。そうでない場合に、アイテム追跡装置104は、取り込んだ画像122から識別したアイテム204の数がプラットフォーム202上の決定したアイテム204の数と一致しない場合に、アイテム204の少なくとも1つを識別していないと判定する。
【0045】
アイテム追跡装置104は、プラットフォーム202上のアイテム204の1つ又は複数を識別していないと判定することに応じて、動作314に進む。この場合に、アイテム追跡装置104は、アイテム追跡装置104がプラットフォーム上のアイテム204の一部を識別することができるように、ユーザにプラットフォーム202上の1つ又は複数のアイテム204の位置を変更するよう要求を出力することができる。動作314では、アイテム追跡装置104は、プラットフォーム202上の1つ又は複数のアイテム204を再配置するためのプロンプトを出力する。例として、1つ又は複数のアイテム204が、カメラ108のうちの1つからアイテム204の視界を遮っている可能性がある。この例では、アイテム追跡装置104は、イメージング装置102にあるグラフィカルユーザインターフェイスに、プラットフォーム202上のアイテム204の位置を再配置するようにユーザに指示するメッセージを出力できる。いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202上の識別しなかった1つ又は複数のアイテム204の位置を特定することもできる。例えば、アイテム追跡装置104は、プラットフォーム202の上又は下の光源をアクティブにして、認識されなかったアイテム204を照らすことができる。一実施形態では、プラットフォーム202上のアイテム204を再配置するメッセージを出力した後に、アイテム追跡装置104は、動作306に戻り、プラットフォーム202上のアイテム204を識別するプロセスを再開する。このプロセスにより、アイテム追跡装置104が、アイテム204をプラットフォーム202上で再配置した後にアイテム204を二重にカウントすることが防止される。
【0046】
動作312に戻り、アイテム追跡装置104は、プラットフォーム202上の全てのアイテム204を識別したと判定することに応じて、動作316に進む。いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202上のアイテム204の重量に基づいて、識別したアイテム204の検出精度を検証することができる。例えば、アイテム追跡装置104は、識別したアイテム204に関連付けられたアイテム情報118に基づいて、識別したアイテム204の重量に関連付けられた第1の重量を決定することができる。例えば、アイテム追跡装置104は、識別したアイテム204のアイテム識別子を使用して、識別したアイテム204のそれぞれに対応する重量を決定することができる。アイテム追跡装置104は、識別したアイテム204の個々の重量を合計して、第1の重量を決定することができる。アイテム追跡装置104は、重量センサ112からプラットフォーム202上のアイテム204の第2の重量を受け取ることもできる。次に、アイテム追跡装置104は、第1の重量と第2の重量との間の重量差を決定し、重量差を重量差の閾値と比較する。重量差の閾値は、第1の重量と第2の重量との間の最大重量差に対応する。重量差が重量差の閾値を超える場合に、アイテム追跡装置104は、イメージング装置102のプラットフォーム202上のアイテム204の重量と、識別したアイテム204の予想重量との間に不一致があると判定することができる。この場合に、アイテム追跡装置104は、エラーメッセージを出力し、及び/又は動作306に戻ってアイテム追跡プロセスを再開することができる。重量差が重量差閾値以下である場合に、アイテム追跡装置104は、イメージング装置102のプラットフォーム202上のアイテム204の重量と、識別したアイテム204の予想重量との間に一致があると判定することができる。この場合に、アイテム追跡装置104は、動作316に進むことができる。
【0047】
動作316では、アイテム追跡装置104は、プラットフォーム202上に禁止又は制限アイテム204が存在するかどうかを確認する。禁止又は制限アイテム204とは、許可制限、年齢制限、又は他のタイプの制限により、ユーザが取得することを許可されないアイテム204である。アイテム追跡装置104は、識別したアイテム204のアイテム識別子を、制限又は禁止アイテム616のアイテム識別子のリストと比較することができる。アイテム204が制限又は禁止アイテム616のリスト上のアイテムのうちの1つと一致すると判定されることに応じて、アイテム追跡装置104は、動作318に進み、プラットフォーム202上にあるアイテム204のうちの1つをユーザが取得するのを禁止されることを示す警告又は通知を出力する。例えば、アイテム追跡装置104は、禁止アイテム204を識別し、イメージング装置102にあるグラフィカルユーザインターフェイスを使用して、ユーザに禁止アイテム204をプラットフォーム202から除去するように求める警告メッセージを出力できる。別の例として、アイテム追跡装置104は、空間に関連付けられる別のユーザ(例えば、従業員)に、禁止アイテム204を識別する警告メッセージを出力できる。他の例では、アイテム追跡装置104は、プラットフォーム202上の禁止アイテム204の検出に応じて、他の適切なタイプの警告メッセージを出力してもよい。
【0048】
動作320で、アイテム追跡装置104は、禁止アイテム204をプラットフォーム202から取り除いたかどうかを判定する。例えば、アイテム追跡装置104は、重量センサ112を使用して、プラットフォーム202上のアイテム204の測定重量が、禁止アイテム204の重量に対応する量だけ減少したかどうかを判定してもよい。別の例として、アイテム追跡装置104は、カメラ108及び/又は3Dセンサ110を使用して、禁止アイテム204がプラットフォーム202上に未だ存在するかどうかを判定してもよい。禁止アイテム204がプラットフォーム202上に未だ存在すると判定したことに応じて、アイテム追跡装置104は、プロセス300を一時停止し、禁止アイテム204がプラットフォーム202から取り除かれるまで動作320に留まることができる。このプロセスにより、ユーザは禁止アイテム204を入手できなくなる。アイテム追跡装置104は、禁止アイテム204をプラットフォーム202から取り除いた後に、動作322に進むことができる。
【0049】
それ以外の場合に、アイテム追跡装置104は、プラットフォーム202に禁止アイテム204が存在しないと判定することに応じて、動作322に進む。動作322では、アイテム追跡装置104はアイテム204をユーザに関連付ける。一実施形態では、アイテム追跡装置104は、プラットフォーム202上のアイテム204に関連付けられたユーザを識別することができる。例えば、ユーザは、イメージング装置102にあるスキャナ又はカードリーダを使用して、自分自身を識別することができる。スキャナの例には、QRコード(登録商標)スキャナ、バーコードスキャナ、近距離無線通信(NFC)スキャナ、又は人物を一意に識別する情報が埋め込まれた電子コードを受信できる他の適切なタイプのスキャナが挙げられるが、これらに限定されない。他の例では、ユーザは、イメージング装置102にあるグラフィカルユーザインターフェイスでユーザ情報を提供することによって、自分自身を識別することができる。ユーザ情報の例には、名前、電話番号、電子メールアドレス、識別番号、従業員番号、英数字コード、又はユーザに関連付けられた他の適切なタイプの情報が挙げられるが、これらに限定されない。
【0050】
アイテム追跡装置104は、ユーザが提供した情報を使用して、ユーザに関連付けられたアカウントを識別し、次に、識別したアイテム204をユーザのアカウントに追加する。例えば、アイテム追跡装置104は、ユーザが提供した情報を使用して、ユーザに関連付けられるユーザアカウント情報120内のアカウントを識別することができる。一例として、アイテム追跡装置104は、ユーザに関連付けられるデジタルカートを識別することができる。この例では、デジタルカートは、ユーザが購入するためにプラットフォーム202に置いたアイテム204に関する情報を含む。アイテム追跡装置104は、識別したアイテム204のアイテム識別子をデジタルカートに追加することにより、アイテム204をユーザのデジタルカートに追加することができる。アイテム追跡装置104は、アイテム204に関連する他の情報をデジタルカートに追加することもできる。例えば、アイテム追跡装置104は、アイテム識別子を使用して、記憶したアイテム情報118から識別したアイテム204の価格情報を検索することができる。次に、アイテム追跡装置104は、識別したアイテム204のそれぞれに対応する価格情報をユーザのデジタルカートに追加することができる。
【0051】
アイテム追跡装置104がアイテム204をユーザのデジタルカートに追加した後に、アイテム追跡装置104は、アイテム204のトランザクション(tranzaction:取引)をトリガー又は開始することができる。一実施形態では、アイテム追跡装置104は、以前に記憶した情報(例えば、支払いカード情報)を使用して、アイテム204のトランザクションを完了できる。この場合に、ユーザは、空間を離れるときに、デジタルカート内のアイテム204の料金を自動的に請求され得る。他の実施形態では、アイテム追跡装置104は、イメージング装置102にあるスキャナ又はカードリーダを使用してユーザから情報を収集して、アイテム204のトランザクションを完了できる。このプロセスにより、ユーザが持ち帰りたいアイテム204をスキャンしたり特定したりすることなく、アイテム204をユーザのアカウント(例えば、デジタルカート)に自動的に追加することができる。アイテム204をユーザのアカウントに追加した後に、アイテム追跡装置104は、ユーザのアカウントに追加したアイテム204に関する情報を含む通知又は概要をユーザに出力できる。例えば、アイテム追跡装置104は、イメージング装置102にあるグラフィカルユーザインターフェイスに概要を出力できる。別の例として、アイテム追跡装置104は、ユーザに関連付けられた電子メールアドレス又はユーザ装置に概要を送信することによって、概要を出力できる。
【0052】
アイテム追跡装置のハードウェア構成
図6は、アイテム追跡システム100のアイテム追跡装置104の一実施形態である。一実施形態では、アイテム追跡装置104は、プロセッサ602、メモリ116、及びネットワークインターフェイス604を含むことができる。アイテム追跡装置104は、図のように構成することも、他の適切な構成にすることもできる。
【0053】
プロセッサ
プロセッサ602は、メモリ116に動作可能に結合された1つ又は複数のプロセッサを含む。プロセッサ602は、ステートマシン、1つ又は複数の中央処理装置(CPU)チップ、ロジックユニット、コア(例えば、マルチコアプロセッサ)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又はデジタル信号プロセッサ(DSP)を含む任意の電子回路であるが、これらに限定されない。プロセッサ602は、プログラマブルロジック装置、マイクロコントローラ、マイクロプロセッサ、又は前述の任意の適切な組合せである。プロセッサ602は、メモリ116及びネットワークインターフェイス604に通信可能に接続され、信号通信を行う。1つ又は複数のプロセッサは、データを処理するように構成されており、ハードウェア又はソフトウェアで実装できる。例えば、プロセッサ602は、8ビット、16ビット、32ビット、64ビット、又は他の適切なアーキテクチャである。プロセッサ602には、算術演算及び論理演算を行う算術論理ユニット(ALU)、ALUにオペランドを供給してALU演算の結果を記憶するプロセッサレジスタ、及びメモリから命令をフェッチして、ALU、レジスタ、及び他のコンポーネントの協調動作を指示することによって命令を実行する制御ユニットが挙げられ得る。
【0054】
1つ又は複数のプロセッサは、様々な命令を実施するように構成される。例えば、1つ又は複数のプロセッサは、プロセッサにアイテム追跡エンジン114を実装させるアイテム追跡命令606を実行するように構成される。このようにして、プロセッサ602は、本明細書で開示する機能を実現するように設計された専用コンピュータであってもよい。一実施形態では、アイテム追跡エンジン114は、ロジックユニット、FPGA、ASIC、DSP、又は他の適切なハードウェアを使用して実装される。アイテム追跡エンジン114は、図1及び図3で説明したように動作するように構成される。例えば、アイテム追跡エンジン114は、図3で説明したプロセス300の動作を行うように構成してもよい。
【0055】
メモリ
メモリ116は、プロセッサ602によって実行するときに、図1及び図3に関して上で説明した情報のいずれかと、本明細書で説明した機能を実現するために動作可能な他のデータ、命令、ロジック、ルール、又はコードのいずれかを記憶するように動作できる。メモリ116は、コンピュータディスク、テープドライブ、又はソリッドステートドライブ等の1つ又は複数の非一時的なコンピュータ可読媒体で構成され、オーバーフローデータストレージ装置として使用して、実行用に選択したプログラムを記憶し、プログラム実行中に読み取られる命令及びデータを記憶することができる。メモリ116は、揮発性又は不揮発性であってもよく、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値コンテンツアドレス可能メモリ(TCAM)、ダイナミックランダムアクセスメモリ(DRAM)、及びスタティックランダムアクセスメモリ(SRAM)で構成され得る。
【0056】
メモリ116は、アイテム追跡命令606、アイテム情報118、ユーザアカウント情報120、機械学習モデル126、画像122、深度画像124、ホモグラフィ608、信頼スコア610、信頼スコア閾値612、面積閾値614、制限又は禁止アイテムのリスト616、エンコード化ベクトル・ライブラリ128、及び/又は他のデータ又は命令を記憶するように動作できる。アイテム追跡命令606は、アイテム追跡エンジン114を実行するために動作可能な任意の適切な命令セット、ロジック、ルール、又はコードで構成され得る。アイテム情報118、ユーザアカウント情報120、機械学習モデル126、画像122、深度画像124、ホモグラフィ608、信頼スコア610、信頼スコア閾値612、面積閾値614、制限又は禁止アイテムのリスト616、及びエンコード化ベクトル・ライブラリ128は、それぞれ図1図26で説明するアイテム情報118、ユーザアカウント情報120、機械学習モデル126、画像122、深度画像124、ホモグラフィ608、信頼スコア610、信頼スコア閾値612、面積閾値614、制限又は禁止アイテムのリスト616、及びエンコード化ベクトル・ライブラリ128と同様に構成される。
【0057】
ネットワークインターフェイス
ネットワークインターフェイス604は、有線及び/又は無線通信を可能にするように構成される。ネットワークインターフェイス604は、イメージング装置102と他の装置、システム、又はドメインとの間でデータを通信するように構成される。例えば、ネットワークインターフェイス604は、NFCインターフェイス、Bluetoothインターフェイス、Zigbeeインターフェイス、Z-waveインターフェイス、無線周波数識別(RFID)インターフェイス、WiFiインターフェイス、LANインターフェイス、WANインターフェイス、PANインターフェイス、モデム、スイッチ、又はルータで構成され得る。プロセッサ602は、ネットワークインターフェイス604を使用してデータを送受信するように構成される。ネットワークインターフェイス604は、当業者に理解されるような任意の適切なタイプの通信プロトコルを使用するように構成され得る。
【0058】
アイテム識別をトリガーするための手検出プロセス
図7は、アイテム追跡システム100のアイテム識別プロセスをトリガーするための手検出プロセス700の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス700を使用して、ユーザがプラットフォーム202の上に手を置いてアイテム204をプラットフォーム202上に置いたときに対応するトリガーイベントを検出することができる。このプロセスにより、アイテム追跡装置104は、プラットフォーム202と対話しているユーザの存在を検出し、これを使用して、図3及び図23でそれぞれ説明するプロセス300及び2300等のアイテム検出プロセスを開始することができる。
【0059】
動作702では、アイテム追跡装置104は、第1の時点において、3Dセンサ110を使用して第1の俯瞰深度画像124を取り込む。ここで、アイテム追跡装置104は、まずプラットフォーム202の俯瞰深度画像124を取り込んで、プラットフォーム202上にアイテム204が置かれておらず、プラットフォーム202の上に手が存在しないことを確認してから、プラットフォーム202の上にユーザの手が存在するかどうかを定期的にチェックする。俯瞰深度画像124は、オブジェクト及びプラットフォーム202の上向きの表面を取り込む。図8Aを例として参照すると、アイテム追跡装置104は、プラットフォーム202の上に位置付けされた3Dセンサ110を使用して、プラットフォーム202の俯瞰深度画像124を取り込むことができる。プラットフォーム202の俯瞰深度画像124内で、アイテム追跡装置104は、プラットフォーム202の関心領域802を規定する。関心領域802(図8A図8Cで太線で囲まれる)は、プラットフォーム202の表面に対応する俯瞰深度画像124内の所定のピクセル範囲を識別する。アイテム追跡装置104は、規定した関心領域802を使用して、アイテム204がプラットフォーム202上に置かれているかどうか、又はユーザが手をプラットフォーム202の上に位置付けたかどうかを判定する。関心領域802は、3Dセンサ110によって取り込んだ全ての深度画像124の同じ所定のピクセル範囲である。
【0060】
図7の動作704に戻ると、アイテム追跡装置104は、第2の時点において、同じ3Dセンサ110を使用して、第2の俯瞰深度画像124を取り込む。第1の俯瞰深度画像124を取り込んだ後に、アイテム追跡装置104は、プラットフォーム202の追加の俯瞰深度画像124を定期的に取り込み始め、ユーザの手がプラットフォーム202の関心領域802に入ったかどうかをチェックする。アイテム追跡装置104は、1秒毎、10秒毎、30秒毎、又は他の適切な時間間隔で、追加の俯瞰深度画像124を取り込むことができる。いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202の近くで動きを検出したことに応じて、第2の俯瞰深度画像124を取り込んでもよい。例えば、アイテム追跡装置104は、第2の俯瞰深度画像124を取り込む前に、プラットフォーム202の近くで動きを検出するように構成された近接センサを使用してもよい。別の例として、アイテム追跡装置104は、動きを検出するために、追加の俯瞰深度画像124を定期的に取り込んでもよい。この例では、アイテム追跡装置104は、第1の俯瞰深度画像124を、その後に取り込んだ俯瞰深度画像124と比較し、俯瞰深度画像124同士の間の差、例えばオブジェクトの存在に基づいて動きを検出する。
【0061】
動作706で、アイテム追跡装置104は、第2の俯瞰深度画像124の関心領域802内にオブジェクトが存在するかどうかを判定する。一実施形態では、アイテム追跡装置104は、第1の俯瞰深度画像124と第2の俯瞰深度画像124との間の差に基づいて、関心領域802内にオブジェクトが存在するかどうかを判定する。図8Bを例として参照すると、アイテム追跡装置104は、第2の俯瞰深度画像124(図8Bに示される)を第1の俯瞰深度画像124(図8Aに示される)と比較して、第1の俯瞰深度画像124と第2の俯瞰深度画像124との間の差を識別する。この例では、アイテム追跡装置104は、第2の俯瞰深度画像124内の関心領域802内で、ユーザの手に対応するオブジェクト804を検出する。図8Cは、第2の俯瞰深度画像124内に存在するオブジェクト804の対応する画像122を示す。
【0062】
図7の動作706に戻ると、アイテム追跡装置104は、第2の俯瞰深度画像124の関心領域802内にオブジェクトが存在しないと判定したことに応じて、動作704に戻る。この場合に、アイテム追跡装置104は、動作704に戻り、プラットフォーム202の俯瞰深度画像124を定期的に取り込み続け、ユーザの手がプラットフォーム202の関心領域802のどこに入ったかをチェックする。アイテム追跡装置104は、第2の俯瞰深度画像124の関心領域802内にオブジェクトが存在すると判定したことに応じて、動作708に進む。この場合に、アイテム追跡装置104は、動作708に進み、第2の俯瞰深度画像124内のオブジェクトがユーザの手に対応しているかどうかを確認する。
【0063】
アイテム追跡装置104は、プラットフォーム202上に置かれたアイテム204とユーザの手とを区別するように構成される。ユーザの手がプラットフォーム202の上にある場合に、ユーザの手は、典型的に、第2の俯瞰深度画像124の関心領域802内にある一方、ユーザの腕は第2の俯瞰深度画像124の関心領域802の外側にある。アイテム追跡装置104は、これらの特性を使用して、例えばユーザがアイテム204をプラットフォーム202上に置いたときに、ユーザの手がプラットフォーム202の上にあることを確認する。
【0064】
動作708では、アイテム追跡装置104は、第1のオブジェクトの第1の部分806(例えば、ユーザの手及び腕)が第2の俯瞰深度画像124の関心領域802内にあると判定する。ここで、アイテム追跡装置104は、ユーザの手に対応する検出したオブジェクトの第1の部分806が第2の俯瞰深度画像124の関心領域802内にあることを確認する。図8Bの例に戻ると、ユーザの手(オブジェクト804の部分806として示される)は、第2の俯瞰深度画像124の関心領域802内に少なくとも部分的にある。
【0065】
図7の動作710に戻ると、アイテム追跡装置104は、第1のオブジェクトの第2の部分808(例えば、ユーザの手首又は腕)が関心領域802外にある一方、第1のオブジェクトの第1の部分806(例えば、ユーザの手)が第2の俯瞰深度画像124の関心領域802内にあると判定する。図8Bの例に戻ると、ユーザの手首及び腕(オブジェクト804の部分808として示される)は、少なくとも部分的に関心領域802外にある一方、ユーザの手(オブジェクト804の部分806として示される)は、第2の俯瞰深度画像124の関心領域802内にある。これらの特性により、アイテム追跡装置104は、ユーザの手が第2の俯瞰深度画像124で検出したと確認できる。
【0066】
ユーザの手を検出した後に、アイテム追跡装置104は、プラットフォーム202の追加の俯瞰深度画像124を定期的に取り込み始め、ユーザの手がプラットフォーム202の関心領域802から出たかどうかをチェックする。動作712では、アイテム追跡装置104は、第3の時点において、3Dセンサ110を使用して第3の俯瞰深度画像124を取り込む。アイテム追跡装置104は、1秒毎、10秒毎、30秒毎、又は他の適切な時間間隔で、追加の俯瞰深度画像124を取り込むことができる。いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202上の重量の変化又は差に応じて、第3の俯瞰深度画像124を取り込むことができる。例えば、アイテム追跡装置104は、重量センサ112を使用して、プラットフォーム202上にアイテム204が置かれていない第1の時点で第1の重量値を決定する。その後、アイテム追跡装置104は、重量センサ112を使用して、ユーザがプラットフォーム202上にアイテム204を置いた後の時点で第2の重量値を決定する。この例では、アイテム追跡装置104は、第1の重量値と第2の重量値との間の重量差を検出し、次に、重量差の検出に応じて第3の俯瞰深度画像124を取り込む。
【0067】
動作714では、アイテム追跡装置104は、第1のオブジェクト(つまり、ユーザの手)が第3の俯瞰深度画像124の関心領域802内に未だ存在するかどうかを判定する。ここで、アイテム追跡装置104は、第2の俯瞰深度画像124と第3の俯瞰深度画像124との間の差に基づいて、第1のオブジェクトが関心領域802内に未だ存在するかどうかを判定することができる。図8Dの例を参照すると、アイテム追跡装置104は、第3の俯瞰深度画像124(図8Dに示される)を第2の俯瞰深度画像124(図8Bに示される)と比較して、第3の俯瞰深度画像124と第2の俯瞰深度画像124との間の差を識別する。この例では、アイテム追跡装置104は、ユーザの手に対応する第1のオブジェクト804が、もはや第3の俯瞰深度画像124の関心領域802内に存在しなくなったことを検出する。
【0068】
図7の動作714に戻ると、アイテム追跡装置104は、第1のオブジェクト804が第3の俯瞰深度画像124の関心領域802内に未だ存在していると判定したことに応じて、動作712に戻る。この場合に、アイテム追跡装置104は、動作712に戻り、ユーザの手がプラットフォーム202の関心領域802からいつ出たかを定期的に確認し続ける。アイテム追跡装置104は、第1のオブジェクト804がもはや第3の俯瞰深度画像124の関心領域802内に存在しないと判定したことに応じて、動作716に進む。この場合に、アイテム追跡装置104は、ユーザがプラットフォーム202上に置いたアイテム204のチェックを開始する。
【0069】
動作716では、アイテム追跡装置104は、アイテム204が第3の俯瞰深度画像124の関心領域802内にあるかどうかを判定する。アイテム204がプラットフォーム202上に置かれている場合に、アイテム204は、典型的に、第3の俯瞰深度画像124の関心領域802内に完全に入る。アイテム追跡装置104は、この特性を使用して、プラットフォーム202上に置かれているアイテム204とユーザの手とを区別する。図8Dの例に戻ると、アイテム追跡装置104は、第3の俯瞰深度画像124の関心領域802内にアイテム204があると検出する。
【0070】
図7の動作716に戻ると、アイテム追跡装置104は、アイテム204が第3の俯瞰深度画像124の関心領域802内に存在しないと判定したことに応じて、動作704に戻る。この場合に、アイテム追跡装置104は、ユーザがアイテム204をプラットフォーム202上に置かなかったと判定する。アイテム追跡装置104は、ユーザの手がプラットフォーム202の関心領域802に再び入ったことを検出するために、動作704に戻って手検出プロセスを繰り返す。アイテム追跡装置104は、アイテム204が第3の俯瞰深度画像124の関心領域802内に存在すると判定したことに応じて、動作718に進む。この場合に、アイテム追跡装置104は、動作718に進み、アイテム識別等の追加処理のために、アイテム204の画像122及び/又は深度画像124の取り込みを開始する。
【0071】
動作718では、アイテム追跡装置104は、第1のオブジェクト804がもはや第3の俯瞰深度画像124の関心領域802内に存在しなくなり、アイテム204が第3の俯瞰深度画像124の関心領域802内に存在すると判定したことに応じて、アイテム204の画像122を取り込む。アイテム追跡装置104は、1つ又は複数のカメラ108及び/又は3Dセンサ110を使用して、プラットフォーム202上に置かれたアイテム204の画像122又は深度画像124をそれぞれ取り込むことができる。
【0072】
いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202上の重量の変化又は差を検出すると、画像122を取り込むことができる。例えば、アイテム追跡装置104は、重量センサ112を使用して、プラットフォーム202上にアイテム204が置かれていない第1の時点における第1の重量値を決定することができる。その後、アイテム追跡装置104は、重量センサ112を使用して、ユーザがアイテム204をプラットフォーム202上に置いた後の時点で第2の重量値を決定することができる。この例では、アイテム追跡装置104は、第1の重量値と第2の重量値との間の重量差を検出し、次に、重量差の検出に応じて画像122を取り込む。
【0073】
アイテム204の画像122を取り込んだ後に、アイテム追跡装置104は、図3及び図23それぞれで説明するプロセス300及び2300と同様のプロセスを使用して、取り込んだ画像122内に存在するアイテム204の物理的属性に基づいて、プラットフォーム202上に置かれたアイテム204を識別することができる。
【0074】
アイテム識別のための画像切り抜きプロセス
図9は、アイテム追跡システム100によるアイテム識別のための画像切り抜きプロセス900の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス900を使用して、画像122内のアイテム204を分離することができる。例えば、カメラ108がプラットフォーム202の画像122を取り込むと、画像122には、プラットフォーム202上に置かれた複数のアイテム204が含まれ得る。アイテム204を識別する際の精度を向上させるために、アイテム追跡装置104は、まず画像122を切り取って、画像122内の各アイテム204を分離する。画像122を切り取ると、アイテム204に対応する元の画像122のピクセルを含む新しい画像122(すなわち、切り抜き画像122)が生成される。アイテム追跡装置104は、このプロセスを繰り返して、切り抜き画像122のセットを作成し、各切り抜き画像122がアイテム204に対応する。
【0075】
動作902では、アイテム追跡装置104は、カメラ108を使用して、プラットフォーム202上のアイテム204の第1の画像122を取り込む。アイテム追跡装置104は、俯瞰、斜視、又は側面プロファイルのビューを撮影するカメラ108を使用して、プラットフォーム202上のアイテム204の第1の画像122を取り込むことができる。例として、カメラ108は、アイテム204の上向きの表面を取り込むために俯瞰ビューで構成され得る。別の例として、カメラ108は、アイテム204の側面を取り込むために斜視又は側面プロファイルのビューで構成され得る。
【0076】
動作904では、アイテム追跡装置104は、第1の画像122内のアイテム204の関心領域1002を識別する。関心領域1002は、第1の画像122内のアイテム204に対応する複数のピクセルで構成される。関心領域1002の例としては、境界ボックスがある。いくつかの実施形態では、アイテム追跡装置104は、1つ又は複数の画像処理技術を使用して、第1の画像122内のアイテム204の関心領域1002を識別することができる。例えば、アイテム追跡装置104は、オブジェクト検出及び/又はOCRを使用して、アイテム204を識別するために使用できるアイテム204のテキスト、ロゴ、ブランド、色、バーコード、又は他の特徴を識別することができる。この場合に、アイテム追跡装置104は、第1の画像122内のピクセルを処理して、アイテム204のテキスト、色、バーコード、パターン、又は他の特徴を識別することができる。次に、アイテム追跡装置104は、アイテム204の識別した特徴を、異なるアイテム204に対応する特徴のセットと比較することができる。例えば、アイテム追跡装置104は、第1の画像122からテキスト(例えば、製品名)を抽出し、そのテキストを異なるアイテム204に関連付けられたテキストのセットと比較することができる。別の例として、アイテム追跡装置104は、第1の画像122内の支配的な色を決定し、その支配的な色を、異なるアイテム204に関連付けられた色のセットと比較することができる。別の例として、アイテム追跡装置104は、第1の画像122内のバーコードを識別し、そのバーコードを、異なるアイテム204に関連付けられたバーコードのセットと比較することができる。別の例として、アイテム追跡装置104は、第1の画像122内のロゴ又はパターンを識別し、識別したロゴ又はパターンを、異なるアイテム204に関連付けられたロゴ又はパターンのセットと比較することができる。他の例では、アイテム追跡装置104は、他の適切なタイプ又は組合せの特徴を識別し、識別した特徴を、異なるアイテム204に関連付けられた特徴と比較することができる。
【0077】
第1の画像122から識別した特徴を、異なるアイテム204に関連付けられた特徴のセットと比較した後に、アイテム追跡装置104は、次に、一致が見つかったかどうかを判定する。アイテム追跡装置104は、識別した特徴の少なくとも意味のある部分がアイテム204に対応する特徴と一致する場合に、一致が見つかったと判定することができる。第1の画像122内の特徴の意味のある部分がアイテム204の特徴と一致すると判定されたことに応じて、アイテム追跡装置104は、一致するアイテム204に対応する関心領域1002を識別する。他の実施形態では、アイテム追跡装置104は、関心領域1002を識別するために、他の適切なタイプの画像処理技術を使用してもよい。図10A図10B図10C、及び図10Dは、アイテム204の関心領域1002の例を示している。
【0078】
動作906では、アイテム追跡装置104は、第1の画像122内のアイテム204に対応する関心領域1002内の第1のピクセル数を決定する。ここで、アイテム追跡装置104は、識別した関心領域1002の複数のピクセル内のピクセル数をカウントする。関心領域1002内のピクセル数は、第1の画像122内で第1のアイテム204をどれだけ検出したかに比例する。例えば、関心領域1002内のピクセル数が多いということは、第1の画像122内でアイテム204のより大きな部分を検出したことを示す。あるいはまた、関心領域1002内のピクセル数が少ないということは、アイテム204のより小さな部分を第1の画像122内で検出したことを示す。場合によっては、関心領域1002内のピクセル数が少ないことは、選択したカメラ108にアイテム204の小さな一部しか見えなかったか、又は関心領域1002を誤って識別したことを示している可能性がある。アイテム追跡装置104は、動作908に進み、関心領域1002を正しく識別したかどうかを判定する。
【0079】
動作908では、アイテム追跡装置104は、3Dセンサ110を使用して、プラットフォーム上のアイテム204の第1の深度画像124を取り込む。ここで、アイテム追跡装置104は、3Dセンサ110を使用して、動作902でカメラ108によって取り込んだアイテム204の同様のビューで第1の深度画像124を取り込む。例えば、アイテム追跡装置104は、アイテム204の俯瞰ビューを撮影するカメラ108を使用して第1の画像122を取り込む場合に、アイテム204の俯瞰ビューを撮影するように構成された3Dセンサ110を使用することができる。別の例として、アイテム追跡装置104は、アイテム204の斜視又は側面プロファイルビューを撮影するカメラ108を使用して第1の画像122を取り込む場合に、アイテム204の斜視又は側面プロファイルビューを撮影するように構成された3Dセンサ110を使用することができる。他の例では、アイテム追跡装置104は、第1の画像122で取り込んだビューに類似するアイテム204の他のタイプのビューを有する3Dセンサ110を使用することができる。図10A図10B図10C、及び図10Dは、第1の深度画像124の例を示す。
【0080】
動作910では、アイテム追跡装置104は、アイテム204に対応する第1の深度画像124内の第2のピクセル数を決定する。ここで、アイテム追跡装置104は、アイテム204に対応する第1の深度画像124内のピクセルの数をカウントする。いくつかの実施形態では、アイテム追跡装置104は、深度閾値を使用して、アイテム204に対応するピクセルと、他のアイテム204又はプラットフォーム202に対応するピクセルとの間を区別することができる。例えば、アイテム追跡装置104は、3Dセンサ110に面しているアイテム204の表面の背後にある深度閾値を設定することができる。深度閾値を適用した後に、第1の深度画像124内の残りのピクセルは、アイテム204に対応する。次に、アイテム追跡装置104は、深度閾値を第1の深度画像124に適用した後に、第1の深度画像124内の残りのピクセルの数をカウントすることができる。
【0081】
動作912では、アイテム追跡装置104は、第1のピクセル数と第2のピクセル数との間の差を決定する。ここで、アイテム追跡装置104は、関心領域1002からのアイテム204のピクセル数と、第1の深度画像124からのアイテム204のピクセル数との間の差を計算して、2つの値が互いにどの程度類似しているかを決定する。例えば、アイテム追跡装置104は、第2のピクセル数から第1のピクセル数を減算して、2つの値の間の差を決定することができる。この例では、アイテム追跡装置104は、2つの値間の差の絶対値を使用する。
【0082】
動作914では、アイテム追跡装置104は、差が差閾値以下であるかどうかを判定する。距離閾値は、識別した関心領域1002が追加処理に有効であるとみなされる最大ピクセル差を識別するユーザ規定の値である。無効な関心領域1002は、関心領域1002内のアイテム204のピクセル数と、第1の深度画像124内のアイテム204のピクセル数との間の差が大き過ぎることを意味する。無効な関心領域1002は、関心領域1002がカメラ108及び3Dセンサ110から見えるよりも小さいアイテム204の部分を取り込んでいることを示す。無効な関心領域1002がアイテム204の小さな部分しか取り込めないため、関心領域1002を使用して第1の画像122を切り取った後の後続の画像処理には関心領域1002が適さない場合がある。無効な関心領域1002の例として図10Aを参照すると、アイテム追跡装置104は、アイテム204の第1の関心領域1002A及び第1の深度画像124を識別する。この例では、関心領域1002内のアイテム204のピクセル数と第1の深度画像124内のアイテム204のピクセル数との間の差が、差閾値より大きい。第1の深度画像124内のアイテム204に重ねられた第1の関心領域1002Aの例を図10Bに示す。
【0083】
有効な関心領域1002とは、関心領域1002内のアイテム204のピクセル数と、第1の深度画像124内のアイテム204のピクセル数との間の差が、所定の許容レベル(つまり、差の閾値)内であることを意味する。有効な関心領域1002の例として図10Cを参照すると、アイテム追跡装置104は、アイテム204の第2の関心領域1002B及び第1の深度画像124を識別する。この例では、関心領域1002内のアイテム204のピクセル数と、第1の深度画像124内のアイテム204のピクセル数との間の差は、差閾値以下である。第1の深度画像124内のアイテム204に重ねられた第2の関心領域1002Bの例を図10Dに示す。
【0084】
図9に戻ると、アイテム追跡装置104は、差が差閾値より大きいと判定したことに応じて、動作904に戻る。この場合に、アイテム追跡装置104は、現在の関心領域1002を破棄し、動作904に戻って、アイテム204の新しい関心領域1002を取得する。アイテム追跡装置104は、差が差閾値以下であると判定したことに応じて、動作916に進む。この場合に、アイテム追跡装置104は、特定した関心領域1002を使用して第1の画像122を切り取るために、動作916に進む。
【0085】
動作916では、アイテム追跡装置104は、関心領域1002に基づいて第1の画像122を切り抜く。関心領域1002が有効な追加処理であると判定した後に、アイテム追跡装置104は、第1の画像122から関心領域1002内のピクセルを抽出することによって、第1の画像122を切り抜く。第1の画像122を切り取ることによって、アイテム追跡装置104は、第1の画像122の関心領域1002内の抽出したピクセルを含む第2の画像122を生成する。
【0086】
動作918では、アイテム追跡装置104は、第2の画像122を出力する。第2の画像122を生成した後に、アイテム追跡装置104は、追加の処理のために第2の画像122を出力できる。例えば、アイテム追跡装置104は、図23で説明するプロセス2300と同様のプロセスを使用してアイテム204を識別するために、第2の画像122を機械学習モデル126に入力又は読み込むことによって、第2の画像122を出力できる。別の例として、アイテム追跡装置104は、図23で説明するプロセス2300と同様のプロセスを使用して、第2の画像122をアイテム204の特徴記述子1608(例えば、アイテムタイプ1610、支配的な色1612、寸法1614、重量1616)に関連付けることができる。
【0087】
アイテム位置検出プロセス
図11は、アイテム追跡システム100のアイテム位置検出プロセス1100の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス1100を使用して、同じアイテム204に対応する画像122のグループを識別することができる。アイテム追跡装置104は、典型的に、複数のカメラ108を使用して、プラットフォーム202上のアイテム204の画像122を複数の視点から取り込む。このプロセスにより、アイテム追跡装置104は、冗長性を使用して、全てのアイテム204が取り込んだ画像122の少なくとも1つに表示されるようにすることができる。各カメラ108がプラットフォーム202の物理的な位置及び視点が異なるため、アイテム204は取り込んだ画像122のそれぞれで異なる位置に表示される。この問題を解決するために、アイテム追跡装置104は、ホモグラフィ608を使用して、プラットフォーム202上の各アイテム204の物理的な位置に基づいて、同じアイテム204の画像122を一緒にクラスタ化する。このプロセスにより、アイテム追跡装置104は、複数のカメラの視点から取り込んだ画像122を使用して、プラットフォーム202上にある各アイテム204の画像122のセットを生成することができる。
【0088】
ホモグラフィの生成
アイテム追跡装置104は、ホモグラフィ608を生成して使用し、カメラ108及び3Dセンサ110からのピクセルをプラットフォーム202にマッピングするように構成される。ホモグラフィ608の例について以下で図12A及び図12Bで説明する。ホモグラフィ608を生成することにより、アイテム追跡装置104は、画像122内のアイテム204の位置を使用して、プラットフォーム202、カメラ108、及び3Dセンサ110に対するアイテム204の物理的な位置を決定することができる。これにより、アイテム追跡装置104は、アイテム204の物理的な位置を使用して、処理するためにアイテム204の画像122及び深度画像124を一緒にクラスタ化できる。各ホモグラフィ608は、画像122又は深度画像124内のピクセル位置と、グローバル平面(つまり、プラットフォーム202上の物理的な位置)の(x,y)座標との間で変換するように構成された係数で構成される。各画像122及び深度画像124は、複数のピクセルで構成される。画像122又は深度画像124内の各ピクセルの位置は、そのピクセル位置1202によって記述され、ピクセル位置1202は、画像122又は深度画像124内でピクセルが位置しているピクセルのピクセル行及びピクセル列を識別する。
【0089】
アイテム追跡装置104は、ホモグラフィ608を使用して、特定のカメラ108又は3Dセンサ110内のピクセル位置とプラットフォーム202上の物理的な位置を関連付ける。換言すると、アイテム追跡装置104は、ホモグラフィ608を使用して、カメラ108又は3Dセンサ110それぞれからの画像122又は深度画像124内のピクセル位置1202に基づいて、アイテム204がプラットフォーム202上のどこに物理的に位置しているかを決定する。アイテム追跡装置104が、複数のカメラ108及び3Dセンサ110を使用してプラットフォーム202を監視するため、各カメラ108及び3Dセンサ110は、イメージング装置102上のカメラ108又は3Dセンサ110の物理的な位置に基づいて、異なるホモグラフィ608に一意に関連付けられる。この構成により、アイテム追跡装置104は、アイテム204がどのカメラ108又は3Dセンサ110に表示されるか、及びそのカメラ108又は3Dセンサ110によって取り込んだ画像122又は深度画像124内のアイテムの位置に基づいて、アイテム204がプラットフォーム202上のどこに物理的に位置しているかを決定することができる。この構成では、カメラ108及び3Dセンサ110は、それぞれ、プラットフォーム202の少なくとも部分的に重なり合う部分の画像122及び深度画像124を取り込むように構成される。
【0090】
図12Aを参照すると、ホモグラフィ608は、画像122又は深度画像124内のピクセル位置1202と、プラットフォーム202の上面に対応するグローバル平面内の物理的位置(例えば、(x,y)座標1204)との間で変換するように構成された複数の係数から構成される。この例では、ホモグラフィ608はマトリックスとして構成され、ホモグラフィ608の係数は、H11、H12、H13、H14、H21、H22、H23、H24、H31、H32、H33、H34、H41、H42、H43、及びH44として表される。アイテム追跡装置104は、係数を使用して、画像122又は深度画像124内のピクセル位置1202とグローバル平面内の物理的位置(例えば、(x,y)座標1204)との間の関係又は関数を規定することによって、ホモグラフィ608を生成することができる。例えば、アイテム追跡装置104は、係数を使用して1つ又は複数の関数を規定し、回帰(例えば、最小二乗回帰)を行って、画像122又は深度画像124のピクセル位置1202をグローバル平面内の(x,y)座標1204に投影する係数の値を解くことができる。各(x,y)座標1204は、アイテムがプラットフォーム202上に位置しているグローバル平面内のx値及びy値を識別する。他の例では、アイテム追跡装置104は、他の適切な技術を使用してホモグラフィ608の係数を解くことができる。図5Aに示される例では、ピクセル位置1202のz値は、距離、深度、高度、又は高さを表すピクセル値に対応し得る。この場合に、ホモグラフィ608は、深度画像124のピクセル値とグローバル平面のz座標(例えば、高さ又は高度)との間で変換するようにさらに構成される。
【0091】
アイテム追跡装置104は、ホモグラフィ608の逆行列を使用して、グローバル平面の(x,y)座標1204から画像122又は深度画像124のピクセル位置1202に投影することができる。例えば、アイテム追跡装置104は、オブジェクトのグローバル平面の(x,y)座標1204を受け取る。アイテム追跡装置104は、オブジェクトが映っているカメラ108又は3Dセンサ110に関連付けられたホモグラフィ608を識別する。次に、アイテム追跡装置104は、逆ホモグラフィ608を(x,y)座標1204に適用して、オブジェクトが画像122又は深度画像124に位置しているピクセル位置1202を決定することができる。アイテム追跡装置104は、ホモグラフィ608が行列として表される場合に、ホモグラフィ608の逆行列を計算することができる。図12Bを例として参照すると、アイテム追跡装置104は、グローバル平面の(x,y)座標1204と逆ホモグラフィ608との間で行列乗算を行って、画像122又は深度画像124内の対応するピクセル位置1202を決定することができる。
【0092】
ホモグラフィ608の生成及びホモグラフィ608の使用に関する追加情報は、“DRAW WIRE ENCODER BASED HOMOGRAPHY”という表題の米国特許第11,023,741号(代理人整理番号090278.0233)に開示されており、この特許は、その全体が複製されるかのように、参照により本明細書に組み込まれる。
【0093】
ホモグラフィを使用してアイテムの位置を決定する
図11に戻ると、カメラ108及び/又は3Dセンサ110のホモグラフィ608を生成した後に、アイテム追跡装置104は、次に、ホモグラフィ608を使用して、処理のためにアイテム204の画像122及び深度画像124を一緒にクラスタ化することができる。動作1102では、アイテム追跡装置104は、第1のカメラ108を使用して、アイテム204の第1の画像122を取り込む。第1のカメラ108は、プラットフォーム202上のアイテム204の上向きの表面及び/又は側面を撮影するように構成することができる。図13Aを参照すると、アイテム追跡装置104は、第1のカメラ108を使用して、プラットフォーム202上にあるアイテム204A及び204Bの第1の画像1302を取り込む。
【0094】
図11の動作1104に戻ると、アイテム追跡装置104は、第1の画像122内のアイテム204の第1の関心領域1304を識別する。第1の関心領域1304は、第1の画像122内のアイテム204に対応する複数のピクセルで構成される。関心領域1304の一例は、境界ボックスである。いくつかの実施形態では、アイテム追跡装置104は、1つ又は複数の画像処理技術を使用して、第1の画像122内のアイテム204の関心領域1304を識別することができる。例えば、アイテム追跡装置104は、オブジェクト検出及び/又はOCRを使用して、アイテム204を識別するために使用できるアイテム204のテキスト、ロゴ、ブランド、色、バーコード、又は他の任意の特徴を識別することができる。この場合に、アイテム追跡装置104は、画像122内のピクセルを処理して、アイテム204のテキスト、色、バーコード、パターン、又は他の任意の特徴を識別することができる。次に、アイテム追跡装置104は、アイテム204の識別した特徴を、異なるアイテム204に対応する特徴のセットと比較することができる。例えば、アイテム追跡装置104は、画像122からテキスト(例えば、製品名)を抽出し、そのテキストを異なるアイテム204に関連付けられたテキストのセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内の支配的な色を決定し、支配的な色を、異なるアイテム204に関連付けられた色のセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のバーコードを識別し、そのバーコードを、異なるアイテム204に関連付けられたバーコードのセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のロゴ又はパターンを識別し、識別したロゴ又はパターンを、異なるアイテム204に関連付けられたロゴ又はパターンのセットと比較することができる。他の例では、アイテム追跡装置104は、他の適切なタイプ又は組合せの特徴を識別し、識別した特徴を、異なるアイテム204に関連付けられた特徴と比較することができる。
【0095】
画像122から識別した特徴を、異なるアイテム204に関連付けられた特徴のセットと比較した後に、アイテム追跡装置104は、次に、一致が見つかったかどうかを判定する。アイテム追跡装置104は、識別した特徴の少なくとも意味のある部分がアイテム204に対応する特徴と一致する場合に、一致が見つかったと判定することができる。画像122内の意味のある部分の特徴がアイテム204の特徴と一致すると判定されたことに応じて、アイテム追跡装置104は、一致するアイテム204に対応する関心領域1304を識別することができる。他の実施形態では、アイテム追跡装置104は、他の適切なタイプの画像処理技術を使用して、関心領域1304を識別することができる。図13Aの例に戻ると、アイテム追跡装置104は、第1の画像1302内の第1のアイテム204Aに対応する第1の関心領域1304Aと、第2のアイテム204Bに対応する第2の関心領域1304Bとを識別する。
【0096】
図11の動作1106に戻ると、アイテム追跡装置104は、第1の関心領域1304内の第1のピクセル位置1202を特定する。ピクセル位置1202は、第1の関心領域1304内の任意のピクセルであってもよい。いくつかの実施形態では、アイテム追跡装置104は、プラットフォーム202に最も近いピクセル位置1202を特定することができる。例えば、アイテム追跡装置104は、関心領域1304の下端の中間点にあるピクセル位置1202を特定することができる。図13Aの例に戻ると、アイテム追跡装置104は、第1のアイテム204Aの第1の関心領域1304A内のピクセル位置1202Aと、第2のアイテム204Bの第2の関心領域1304B内のピクセル位置1202Bとを特定することができる。
【0097】
図11の動作1108に戻ると、アイテム追跡装置104は、第1のホモグラフィ608を第1のピクセル位置1202に適用して、アイテム204のプラットフォーム202上の第1の(x,y)座標1204を決定する。例えば、アイテム追跡装置104は、第1のカメラ108に関連付けられたホモグラフィ608を識別し、次に、識別したホモグラフィ608を各アイテム204のピクセル位置1202に適用して、プラットフォーム202上の対応する(x,y)座標1204を決定する。
【0098】
動作1110では、アイテム追跡装置104は、第2のカメラ108を使用してアイテム204の第2の画像122を取り込む。ここで、アイテム追跡装置104は、異なるカメラ108を使用して、プラットフォーム202上のアイテム204の異なるビューを取り込む。第2のカメラ108は、プラットフォーム202上のアイテム204の上向きの表面及び/又は側面を撮影するように構成することができる。図13Bの例を参照すると、アイテム追跡装置104は、第2のカメラ108を使用して、プラットフォーム202上にあるアイテム204A及び204Bの第2の画像1306を取り込む。この例では、第2のカメラ108は、第1のカメラ108とは反対側のプラットフォーム202にある。この例では、第1のカメラ108は、プラットフォーム202上のアイテム204の第1の側面を取り込み、第2のカメラ108は、プラットフォーム202上のアイテム204の反対側を取り込む。他の例では、第2のカメラ108は、他の適切な場所に配置してもよい。
【0099】
図11の動作1112に戻ると、アイテム追跡装置104は、第2の画像122内のアイテム204の第2の関心領域1304を識別する。第2の関心領域1304は、第2の画像122内のアイテム204に対応する第2の複数のピクセルを含む。アイテム追跡装置104は、動作1104で説明したプロセスを繰り返して、第2の関心領域1304を識別することができる。図13Bの例に戻ると、アイテム追跡装置104は、第2の画像1306内の第1のアイテム204Aに対応する第3の関心領域1304Cと、第2のアイテム204Bに対応する第4の関心領域1304Dとを識別する。
【0100】
図11の動作1114に戻ると、アイテム追跡装置104は、第2の関心領域1304内の第2のピクセル位置1202を特定する。図13Bの例に戻ると、アイテム追跡装置104は、第1のアイテム204Aの第3の関心領域1304C内のピクセル位置1202Cと、第2のアイテム204Bの第4の関心領域1304D内のピクセル位置1202Dとを識別することができる。
【0101】
図11の動作1116に戻ると、アイテム追跡装置104は、第2のホモグラフィ608を第2のピクセル位置1202に適用して、アイテム204のプラットフォーム202上の第2の(x,y)座標1204を決定する。ここで、アイテム追跡装置104は、第2のカメラ108に関連付けられたホモグラフィ608を識別し、次に、識別したホモグラフィ608を各アイテム204のピクセル位置1202に適用して、プラットフォーム202上の対応する(x,y)座標1204を決定する。
【0102】
アイテム追跡装置104は、任意の他の適切な数のカメラ108に対してこのプロセスを繰り返すことができる。別の例として図13Cを参照すると、アイテム追跡装置104は、第3のカメラ108を使用して、プラットフォーム202上のアイテム204の第3の画像1308を取り込む。次に、アイテム追跡装置104は、各アイテム204の関心領域1304及びピクセル位置1202を特定する。この例では、アイテム追跡装置104は、第1のアイテム204Aの関心領域1304E及びピクセル位置1202Eを特定し、第2のアイテム204Bの関心領域1304F及びピクセル位置1202Fを特定する。アイテム204のピクセル位置1202を決定した後に、アイテム追跡装置104は、次に、第3のカメラ108に関連付けられたホモグラフィ608を識別し、識別したホモグラフィ608を各アイテム204のピクセル位置1202に適用して、プラットフォーム202上の対応する(x,y)座標1204を決定する。
【0103】
図11の動作1118に戻ると、アイテム追跡装置104は、第1の(x,y)座標1204と第2の(x,y)座標1204との間の距離1402を決定する。図14を例として参照すると、図14は、各アイテム204の(x,y)座標1204がプラットフォーム202に投影されるプラットフォーム202の俯瞰図を示している。この例では、(x,y)座標1204A、1204B、及び1204Cが第1のアイテム204Aに関連付けられ、(x,y)座標1204D、1204E、及び1204Fが第2のアイテム204Bに関連付けられる。アイテム追跡装置104は、(x,y)座標1204のペアを反復的に選択し、一対の(x,y)座標1204の間の距離1402を決定するように構成される。一実施形態では、アイテム追跡装置104は、一対の(x,y)座標1204の間のユークリッド距離を決定するように構成される。
【0104】
図11の動作1120に戻ると、アイテム追跡装置104は、距離1402が距離閾値以下であるかどうかを判定する。距離閾値は、アイテム204の同じクラスタ1404のメンバーと見なされる一対の(x,y)座標1204の間の最大距離を特定する。距離閾値は、任意の適切な値に設定できるユーザ規定の値である。距離閾値の単位は、インチ、センチメートル、ミリメートル、又は他の適切な単位であってもよい。アイテム追跡装置104は、一対の(x,y)座標1204の間の距離1402と距離閾値を比較し、一対の(x,y)座標1204の間の距離1402が距離閾値より小さいかどうかを判定する。
【0105】
アイテム追跡装置104は、距離1402が距離閾値より大きいと判定したことに応じて、プロセス1100を終了する。この場合に、アイテム追跡装置104は、一対の(x,y)座標1204がアイテム204の同じクラスタ1404のメンバーではないと判定する。いくつかの実施形態では、アイテム追跡装置104はプロセス1100を終了せず、代わりに、距離閾値と比較するための追加の(x,y)座標1204が利用可能な場合に、別の一対の(x,y)座標1204を選択する。
【0106】
アイテム追跡装置104は、距離1402が距離閾値以下であると判定したことに応じて、動作1122に進む。この場合に、アイテム追跡装置104は、一対の(x,y)座標1204がアイテム204の同じクラスタ1404のメンバーであると判定する。動作1122では、アイテム追跡装置104は、第1の画像122の第1の関心領域1304内のピクセルと、第2の画像122の第2の関心領域1304内のピクセルとを、アイテム204のクラスタ1404に関連付ける。図14を例として参照すると、アイテム追跡装置104は、第1のアイテム204Aの第1のクラスタ1404Aと、第2のアイテム204Bの第2のクラスタ1404Bとを識別することができる。第1のクラスタ1404Aは、(x,y)座標1204A、1024B、及び1204Cと、関心領域1304A、1304C、及び1304Eとに関連付けられる。第2のクラスタ1404Bは、(x,y)座標1204D、1024E、及び1204Fと、関心領域1304B、1304D、及び1304Fとを関連付けられる。
【0107】
図11の動作1124に戻ると、アイテム追跡装置104は、第1の画像122からの第1の関心領域1304内のピクセルと、第2の画像122からの第2の関心領域1304内のピクセルとを出力する。一実施形態では、アイテム追跡装置104は、画像122から識別した関心領域1304内のピクセルを抽出することによって、取り込む画像122を切り抜く。画像122を切り取ることによって、アイテム追跡装置104は、元の画像122の関心領域1304内の抽出したピクセルを含む新しい画像122を生成する。このプロセスにより、アイテム追跡装置104は、アイテム204の新しい画像122のセットを生成することができ、各画像が、アイテム204に関連付けられた識別した関心領域1304から抽出したピクセルを含む。アイテム追跡装置104は、追加の処理のためにアイテム204の新しい画像122を出力できる。例えば、アイテム追跡装置104は、図23で説明するプロセス2300と同様のプロセスを使用して、画像122内のアイテム204の物理的属性に基づいて、アイテム204を識別するために画像122を機械学習モデル126に入力又はロードして出力することによって、画像122を出力できる。
【0108】
いくつかの実施形態では、アイテム追跡装置104は、識別した特徴記述子をアイテム204の画像122に関連付け、アイテム204の画像122と共に特徴記述子を出力することもできる。例えば、アイテム204の関心領域1304を決定する際に、アイテム追跡装置104は、アイテム204のアイテムタイプを識別することができる。この例では、アイテム追跡装置104は、アイテムタイプを関心領域1304に関連付け、関心領域1304に基づいて生成したアイテム204の画像122と共にアイテムタイプを出力できる。別の例として、アイテム追跡装置104は、重量センサ122を使用してアイテム204の重量を取得することができる。この例では、アイテム追跡装置104は、重量を関心領域1304に関連付け、関心領域1304に基づいて生成したアイテム204の画像122と共に重量を出力できる。他の例では、アイテム追跡装置104は、関心領域1304を出力する前に、他の適切なタイプの特徴記述子を識別して関心領域1304に関連付けるように構成され得る。
【0109】
エンコード化ベクトル・ライブラリの検索空間削減プロセス
図15は、エンコード化ベクトル・ライブラリ128の検索空間削減プロセス1500の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス1500を使用して、エンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタリングし、プラットフォーム202上に置かれたアイテム204を識別しようとするときに考慮されるアイテム204の量を減らすことができる。このプロセスは、エンコード化ベクトル・ライブラリ128内の対応するエントリ1602を検索するために必要な時間を削減するとともに、エンコード化ベクトル・ライブラリ128内のエントリ1602を識別した結果の精度を向上させる。
【0110】
動作1502では、アイテム追跡装置104は、アイテム204の特徴記述子1608を取得する。特徴記述子1608のそれぞれは、アイテム204の物理的特性又は属性を記述する。特徴記述子1608の例には、アイテムタイプ1610、支配的な色1612、寸法1614、重量1616、又はアイテム204を記述する他の適切なタイプの記述子のいずれかが含まれるが、これらに限定されない。一実施形態では、アイテム追跡装置104は、図11の動作1104で説明したプロセスと同様のプロセスを使用して、特徴記述子を取得してもよい。例えば、アイテム追跡装置104は、オブジェクト検出及び/又はOCRを使用して、アイテム204を識別するために使用できるテキスト、ロゴ、ブランド、色、バーコード、又はアイテム204の他の特徴を識別してもよい。いくつかの実施形態では、アイテム追跡装置104は、図18で説明したプロセス1800と同様のプロセスを使用して、アイテム204の寸法を決定してもよい。アイテム追跡装置104は、重量センサ112を使用してアイテム204の重量を決定することができる。他の実施形態では、アイテム追跡装置104は、アイテム204の特徴記述子を決定するための他の適切なプロセスを使用することができる。
【0111】
動作1504では、アイテム追跡装置104は、特徴記述子1608がアイテム204のアイテムタイプ1610を識別するかどうかを判定する。ここで、アイテム追跡装置104は、アイテム204のアイテムタイプ1610に関連付けられた情報が利用可能かどうかを判定する。アイテムタイプ1610は、アイテム204の分類を識別する。例えば、アイテムタイプ1610は、アイテム204が缶、ボトル、箱、果物、バッグ等であるかどうかを示すことができる。アイテム追跡装置104は、特徴記述子1608がアイテム204のアイテムタイプ1610を識別すると判定することに応じて、動作1506に進む。この場合に、アイテム追跡装置104は、アイテムタイプ1610を使用してエンコード化ベクトル・ライブラリ128をフィルタリングし、アイテム204の識別を試みる前に、エンコード化ベクトル・ライブラリ128内のエントリ1602の数を減らす。
【0112】
動作1506では、アイテム追跡装置104は、アイテムタイプ1610に基づいてエンコード化ベクトル・ライブラリ128をフィルタリングする。図16を例として参照すると、エンコード化ベクトル・ライブラリ128は、複数のエントリ1602で構成される。各エントリ1602は、アイテム追跡装置104によって識別できる異なるアイテム204に対応する。各エントリ1602は、アイテム識別子1604及び複数の特徴記述子1608にリンクされたエンコード化ベクトル1606で構成され得る。エンコード化ベクトル1606は、数値の配列で構成される。各数値は、アイテム204の属性(例えば、アイテムタイプ、サイズ、形状、色等)に対応し、その属性を記述する。エンコード化ベクトル1606は、任意の適切な長さであってもよい。例えば、エンコード化ベクトル1606のサイズは、1×256、1×512、1×1024、又は他の適切な長さであってもよい。アイテム識別子1604は、アイテム204を一意に識別する。アイテム識別子1604の例には、製品名、SKU番号、英数字コード、グラフィカルコード(例えば、バーコード)、又は他の適切なタイプの識別子が挙げられるが、これらに限定されない。この例では、アイテム追跡装置104は、アイテムタイプ1610を使用して、同じアイテムタイプ1610を含まないエンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタリング処理又は削除する。このプロセスにより、アイテム204を識別するときに考慮されるエンコード化ベクトル・ライブラリ128内のエントリ1602の数が削減される。
【0113】
図15の動作1504に戻ると、アイテム追跡装置104は、特徴記述子1608がアイテムタイプ1610を特定していないと判定したことに応じて、動作1508に進む。この場合に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタリングするために使用できる他のタイプの特徴記述子1608をチェックする。動作1508では、アイテム追跡装置104は、特徴記述子1608がアイテム204の支配的な色1612を特定しているかどうかを判定する。支配的な色1612は、アイテム204の表面(例えば、パッケージ)に表示される1つ又は複数の色を特定する。
【0114】
アイテム追跡装置104は、特徴記述子1608がアイテム204の支配的な色1612を特定していることに応じて、動作1510に進む。この場合に、アイテム追跡装置104は、アイテム204の支配的な色1612に基づいて、エンコード化ベクトル・ライブラリ128内のエントリ1602の数を減らすために、動作1510に進む。動作1510では、アイテム追跡装置104は、アイテム204の支配的な色1612に基づいて、エンコード化ベクトル・ライブラリ128をフィルタリングする。ここで、アイテム追跡装置104は、支配的な色1612を使用して、同じ支配的な色1612を含まないエンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタ除去又は削除する。
【0115】
動作1508に戻り、アイテム追跡装置104は、特徴記述子1608がアイテム204の支配的な色1612を特定していないと判定することに応じて、動作1512に進む。動作1512では、アイテム追跡装置104は、特徴記述子1608がアイテム204の寸法1614を特定しているかどうかを判定する。寸法1614は、アイテム204の長さ、幅、及び高さを特定することができる。いくつかの実施形態では、寸法1614は昇順でリストされ得る。
【0116】
アイテム追跡装置104は、特徴記述子1608がアイテム204の寸法1614を特定したと判定したことに応じて、動作1514に進む。この場合に、アイテム追跡装置104は、アイテム204の寸法1614に基づいて、エンコード化ベクトル・ライブラリ128内のエントリ1602の数を減らすために動作1514に進む。動作1514では、アイテム追跡装置104は、アイテム204の寸法1614に基づいて、エンコード化ベクトル・ライブラリ128をフィルタリングする。ここで、アイテム追跡装置104は、寸法1614を使用して、アイテム204と同じ寸法1614を含まない、又はアイテム204の寸法1614の所定の許容範囲内にある、エンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタ除去又は削除する。いくつかの実施形態では、アイテム204のこの寸法1614は、アイテム204の寸法1614とエンコード化ベクトル・ライブラリ128内のアイテム204の寸法1614との間の比較を容易にするために、昇順でリストされ得る。
【0117】
動作1512に戻り、アイテム追跡装置104は、特徴記述子1608がアイテム204の寸法1614を特定していないと判定することに応じて、動作1516に進む。動作1516では、アイテム追跡装置104は、特徴記述子1608がアイテム204の重量1616を特定するかどうかを判定する。重量1616は、アイテム204の重量を特定する。重量1616は、ポンド、オンス、リットル、又は他の適切な単位で表してもよい。
【0118】
アイテム追跡装置104は、特徴記述子1608がアイテム204の重量1616を特定すると判定したことに応じて、動作1518に進む。この場合に、アイテム追跡装置104は、アイテム204の重量1616に基づいて、エンコード化ベクトル・ライブラリ128内のエントリ1602の数を減らすために、動作1518に進む。
【0119】
動作1518では、アイテム追跡装置104は、アイテム204の重量に基づいてエンコード化ベクトル・ライブラリ128をフィルタリングする。ここで、アイテム追跡装置104は、重量1616を使用して、アイテム204と同じ重量1616を含まない、又はアイテム204の重量1616の所定の許容範囲内にあるエンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタ除去又は削除する。
【0120】
いくつかの実施形態では、アイテム追跡装置104は、同様のプロセスを繰り返して、他の適切なタイプ又は組合せの特徴記述子1608に基づいて、エンコード化ベクトル・ライブラリ128内のエントリ1602の数をフィルタリング又は削減することができる。
【0121】
類似ベクトル
アイテム204の特徴記述子1608に基づいてエンコード化ベクトル・ライブラリ128をフィルタリングした後に、アイテム追跡装置104は、受け取ったエンコード化ベクトルの類似ベクトル1704を生成することができる。類似ベクトル1704は数値1710の配列で構成され、各数値1710は、受け取ったエンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606の値とどの程度類似しているかを示す。一実施形態では、アイテム追跡装置104は、受け取ったエンコード化ベクトル1702とエンコードしたライブラリ128内のエンコード化ベクトル1606との間の行列乗算を使用して類似ベクトル1704を生成できる。図17を例として参照すると、エンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606の次元はM×Nであり、ここでMは、例えばエンコード化ベクトル・ライブラリ128をフィルタリングした後の、エンコード化ベクトル・ライブラリ128内のエントリ1602の数であり、Nは各エンコード化ベクトル1606の長さであり、これはエンコード化ベクトル1606内の数値1706の数に対応する。未識別アイテム204のエンコード化ベクトル1702はN×1の次元を有しており、ここでNはエンコード化ベクトル1702の長さであり、これはエンコード化ベクトル1702内の数値1708の数に対応する。この例では、アイテム追跡装置104は、エンコード化ベクトル1702とエンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606との間で行列乗算を行うことによって類似ベクトル1704を生成できる。結果として得られる類似ベクトル1704はN×1の次元を有しており、ここで、Nは類似ベクトル1704の長さであり、これはエンコード化ベクトル1702と同じ長さである。類似ベクトル1704内の各数値1710は、エンコード化ベクトル・ライブラリ128内のエントリ1602に対応する。例えば、類似ベクトル1704内の第1の数値1710は、エンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128の第1のエントリ1602内のエンコード化ベクトル1606の値とどの程度類似しているかを示し、類似ベクトル1704内の第2の数値1710は、エンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128の第2のエントリ1602内のエンコード化ベクトル1606の値とどの程度類似しているかを示し、以下同様である。
【0122】
類似ベクトル1704を生成した後に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128内のどのエントリ1602が、識別したアイテム204のエンコード化ベクトル1702に最もよく一致するかを特定することができる。一実施形態では、類似ベクトル1704内の最も高い数値1710に関連付けられたエントリ1602が、アイテム204のエンコード化ベクトル1702に最もよく一致するエントリ1602に対応する。エンコード化ベクトル・ライブラリ128から、識別したアイテム204のエンコード化ベクトル1702に最もよく一致するエントリ1602を特定した後に、アイテム追跡装置104は、次に、識別したエントリ1602に関連付けられたアイテム識別子1604を特定することができる。このプロセスを通じて、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128のどのアイテム204が、未識別アイテム204に対応するかを、エンクロージャしたベクトル1702に基づいて決定することができる。次に、アイテム追跡装置104は、識別したアイテム識別子1604を、出力するか、又は図23で説明するプロセス2300等の他のプロセスに使用する。
【0123】
点群情報を使用したアイテム寸法決定プロセス
図18は、点群情報を使用したアイテム寸法決定プロセス1800の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス1800を使用して、プラットフォーム202上に置かれたアイテム204の寸法1614を決定することができる。このプロセスでは、一般に、最初に複数の3Dセンサ110を使用してアイテム204の3D点群データを取り込み、次に全ての3Dセンサ110からの3D点群データを結合して、アイテム204のより完全な点群表現を生成する。3Dセンサ110からの点群データを結合した後に、アイテム追跡装置104は、次に、新しい点群データ表現に基づいてアイテム204の寸法1614を決定する。このプロセスにより、アイテム追跡装置104は、ユーザがアイテム204の物理的な測定を行うことなく、アイテム204の寸法1614を決定することができる。
【0124】
動作1802では、アイテム追跡装置104は、オーバーヘッド3Dセンサ110を使用して、プラットフォーム202上のアイテム204の点群データ1902を取り込む。点群データ1902は、3D空間内の複数のデータポイント1901で構成される。各データポイント1901は、3D空間内のデータポイント1901の位置を特定する(x,y,z)座標に関連付けられる。一般に、点群データ1902は、3Dセンサ110に見えるオブジェクトの表面に対応する。図19を例として参照すると、図19は、オーバーヘッド3Dセンサ110を使用して取り込んだ点群データ1902の例を示している。この例では、3Dセンサ110は、プラットフォーム202の真上に位置付けされ、プラットフォーム202上のアイテム204の上向きの表面を表す点群データ1902を取り込むように構成される。3Dセンサ110は、第1のアイテム204に対応する点群データ1902Aと、第2のアイテム204に対応する点群データ1902Bとを取り込む。
【0125】
図18の動作1804に戻ると、アイテム追跡装置104は、点群データ1902内のクラスタ1904に基づいて点群データ1902をセグメント化する。一実施形態では、アイテム追跡装置104は、点群データ1902内のデータポイント1901同士の間の距離に基づいて、点群データ1902内のクラスタ1904を識別することができる。例えば、アイテム追跡装置104は、距離閾値を使用して、同じクラスタ1904のメンバーであるデータポイント1901を識別することができる。この例では、アイテム追跡装置104は、一対のデータポイント1901同士の間のユークリッド距離を計算して、データポイント1901が同じクラスタ1904のメンバーであるかどうかを判定することができる。例えば、一対のデータポイント1901が互いに距離閾値内にある場合に、アイテム追跡装置104は、データポイント1901を同じクラスタ1904に関連付けることができる。一対のデータポイント1901同士の間の距離が距離閾値より大きい場合に、アイテム追跡装置104は、データポイント1901が同じクラスタ1904のメンバーではないと判定する。アイテム追跡装置104は、1つ又は複数のクラスタ1904を点群データ1902内で識別するまで、このプロセスを繰り返すことができる。他の例では、アイテム追跡装置104は、k平均法クラスタ化又は他の適切なクラスタ化手法を使用して、データポイント1901をクラスタ化することができる。点群データ1902内のクラスタ1904を識別した後に、アイテム追跡装置104は、識別したクラスタ1904に基づいて点群データ1902をセグメント化する。点群データ1902をセグメント化すると、点群データ1902内のデータポイント1901が、識別したクラスタ1904に基づいて、より小さなグループの点群データ1902に分割される。データポイント1901の各クラスタ1904は、プラットフォーム202上に置かれた異なるアイテム204に対応する。
【0126】
動作1806では、アイテム追跡装置104は、セグメント化した点群データ1902から第1のアイテム204を選択する。ここで、アイテム追跡装置104は、プラットフォーム202上のアイテム204のうちの1つを識別して、第1のアイテム204に関連付けられた他の3Dセンサ110からの点群データ1902の集約を開始する。アイテム追跡装置104は、プラットフォーム202から各アイテム204を繰り返し選択できる。図19の例に戻ると、アイテム追跡装置104は、クラスタ1904Aに対応する第1のアイテム204を選択できる。
【0127】
図18の動作1808に戻ると、アイテム追跡装置104は、点群データ1902内の第1のアイテム204の関心領域1906を識別する。関心領域1906は、3D空間内の領域を特定する。例えば、関心領域1906は、3D空間内のx値、y値、及び/又はz値の範囲を規定してもよい。図19の例に戻ると、アイテム追跡装置104は、第1のアイテム204の点群データ1902Aを含む関心領域1906Aを識別することができる。この例では、アイテム追跡装置104は、点群データ1902Aを含む3D空間内のx値、y値、及びz値の範囲を識別する。
【0128】
図18の動作1810に戻ると、アイテム追跡装置104は、識別した関心領域1906から点群データ1902を抽出する。ここで、アイテム追跡装置104は、第1のアイテム204の関心領域1906内から点群データ1902を識別し、抽出する。関心領域1906内の点群データ1902を抽出することにより、アイテム追跡装置104は、点群データ1902内の第1のアイテム204のデータポイント1901を、プラットフォーム202上の他のアイテム204に関連付けられたデータポイント1901から分離することができる。図19の例に戻ると、アイテム追跡装置104は、プラットフォーム202上の全てのアイテム204の点群データ1902から、関心領域1906A内のデータポイント1901(すなわち、点群データ1902A)を抽出することができる。
【0129】
図18の動作1812に戻ると、アイテム追跡装置104は別の3Dセンサ110を選択する。オーバーヘッド3Dセンサ110から第1のアイテム204の点群データ1902を抽出した後に、アイテム追跡装置104は、同じプロセスを繰り返して、他の3Dセンサ110の視点から第1のアイテム204の追加の点群データ1902を抽出することができる。各3Dセンサ110は、3Dセンサ110に見える第1のアイテム204の部分の点群データ1902のみを取り込むことができる。第1のアイテム204の異なるビューを撮影する複数の3Dセンサ110から点群データ1902を取り込むことにより、アイテム追跡装置104は、第1のアイテム204のより完全な点群データ表現を生成することができる。アイテム追跡装置104は、イメージング装置102の3Dセンサ110から異なる3Dセンサ110を繰り返し選択することができる。
【0130】
動作1814では、アイテム追跡装置104は、選択した3Dセンサ110を使用して点群データ1902を取り込む。ここで、アイテム追跡装置104は、動作1802で説明したプロセスと同様のプロセスを使用して、選択した3Dセンサ110を使用して点群データ1902を取り込む。図20を例として参照すると、アイテム追跡装置104は、プラットフォーム202上のアイテム204の側面斜視図を有する3Dセンサ110を選択することができる。換言すれば、選択した3Dセンサ110は、プラットフォーム202上のアイテム204の側面を表す点群データ1902を取り込む。この例では、3Dセンサ110は、第1のアイテム204に対応する点群データ1902Cと、第2のアイテム204に対応する点群データ1902Dとを取り込む。
【0131】
図18の動作1816に戻ると、アイテム追跡装置104は、選択した3Dセンサ110の第1のアイテム204に対応する関心領域1906を識別する。一実施形態では、アイテム追跡装置104は、ホモグラフィ608を使用して、オーバーヘッド3Dセンサ110によって識別した関心領域1906に基づいて、選択した3Dセンサ110の関心領域1906を決定することができる。この場合に、アイテム追跡装置104は、選択した3Dセンサ110に関連付けられたホモグラフィ608を識別することができる。ホモグラフィ608は、図12A及び図12Bで説明したものと同様に構成される。3Dセンサ110に関連付けられたホモグラフィ608を識別した後に、アイテム追跡装置104は、ホモグラフィ608を使用して、オーバーヘッド3Dセンサ110の関心領域1906に関連付けられた3D空間内のx値、y値、及びz値の範囲を、選択した3Dセンサ110に関連付けられた3D空間内の対応するx値、y値、及びz値の範囲に変換する。他の例では、アイテム追跡装置104は、第1のアイテム204の関心領域1906を識別するために、他の任意の適切な手法を使用してもよい。例えば、アイテム追跡装置104は、動作1808で説明したプロセスと同様のプロセスを使用してもよい。図20の例に戻ると、アイテム追跡装置104は、第1のアイテム204の点群データ1902Cを含む関心領域1906Bを識別する。この例では、アイテム追跡装置104は、点群データ1902Cを含む3D空間内のx値、y値、及びz値の範囲を識別する。
【0132】
図18の動作1818に戻ると、アイテム追跡装置104は、第1のアイテム204に対応する関心領域1906から点群データ1902を抽出する。ここで、アイテム追跡装置104は、第1のアイテム204の識別した関心領域1906内から点群データ1902を識別し、抽出する。図20の例に戻ると、アイテム追跡装置104は、プラットフォーム202上の全てのアイテム204の点群データ1902から、関心領域1906B内のデータポイント1901(つまり、点群データ1902C)を抽出することができる。
【0133】
図18の動作1820に戻ると、アイテム追跡装置104は、別の3Dセンサ110を選択するかどうかを決定する。ここで、アイテム追跡装置104は、第1のアイテム204の追加の点群データ1902を収集するかどうかを決定する。一実施形態では、アイテム追跡装置104は、収集した点群データ1902の量に基づいて、別の3Dセンサ110を選択するかどうかを決定することができる。例えば、アイテム追跡装置104は、所定の数(例えば、3つ)の3Dセンサ110から点群データ1902を収集するように構成してもよい。この例では、アイテム追跡装置104は、点群データ1902のセットの数をどの位収集するかを追跡してもよい。収集した点群データ1902の各セットは、3Dセンサ110から取得した点群データ1902に対応する。次に、アイテム追跡装置104は、収集した点群データ1902のセットの数を、3Dセンサ110の所定の数と比較する。アイテム追跡装置104は、収集した点群データ1902のセットの数が3Dセンサ110の所定の数より少ない場合に、別の3Dセンサ110を選択すると決定する。
【0134】
別の例として、アイテム追跡装置104は、第1のアイテム204について収集したデータポイント1901の数に基づいて、追加の点群データ1902を収集するために別の3Dセンサ110を選択するかどうかを決定することができる。この例では、アイテム追跡装置104は、第1のアイテム204の全ての抽出した点群データ1902から取得したデータポイント1901の数を決定することができる。アイテム追跡装置104は、取得したデータポイント1901の数を所定のデータポイント閾値と比較する。データ閾値は、第1のアイテム204に対して収集する必要があるデータポイント1901の最小数を特定する。アイテム追跡装置104は、収集したデータポイント1901の数が所定のデータポイント閾値よりも少ない場合に、別の3Dセンサ110を選択すると決定する。他の例では、アイテム追跡装置104は、他の適切なタイプの基準に基づいて、追加の点群データ1902を収集するために別の3Dセンサ110を選択するかどうかを決定することができる。
【0135】
アイテム追跡装置104は、別の3Dセンサを選択すると決定したことに応じて、動作1812に戻る。この場合に、アイテム追跡装置104は、動作1812に戻り、別の3Dセンサ110を選択し、第1のアイテム204の追加の点群データ1902を取得する。図21を例として参照すると、アイテム追跡装置104は、プラットフォーム202上のアイテム204の側面斜視図を有する別の3Dセンサ110を選択すると決定することができる。この例では、3Dセンサ110は、第1のアイテム204に対応する点群データ1902Eと、第2のアイテム204に対応する点群データ1902Fとを取り込む。次に、アイテム追跡装置104は、第1のアイテム204の点群データ1902Eを含む関心領域1906Cを識別する。この例では、アイテム追跡装置104は、点群データ1902Eを含む3D空間内のx値、y値、及びz値の範囲を識別する。関心領域1906Cを識別した後に、アイテム追跡装置104は、プラットフォーム202上の全てのアイテム204の点群データ1902から、関心領域1906C内のデータポイント1901(つまり、点群データ1902E)を抽出する。アイテム追跡装置104は、選択した他の3Dセンサ110に対してこのプロセスを繰り返すことができる。
【0136】
図18の動作1820に戻ると、アイテム追跡装置104は、別の3Dセンサ110を選択しないと決定したことに応じて、動作1822に進む。動作1822において、アイテム追跡装置104は、第1のアイテム204について抽出した点群データ1902を結合する。ここで、アイテム追跡装置104は、収集した点群データ1902の全てを、単一の点群データ1902セットにマージする。複数の3Dセンサ110からの点群データ1902を結合することにより、アイテム追跡装置104は、第1のアイテム204の寸法1614を決定するために使用できる、第1のアイテム204のより完全な点群データ表現を生成することができる。図22を一例として参照すると、アイテム追跡装置104は、点群データ1902A、1902C、及び1902Eを単一つの点群データ1902Gセットに結合することができる。結合した点群データ1902Gには、点群データ1902A、1902C、及び1902Eからの全てのデータポイント1901が含まれる。
【0137】
図18の動作1824に戻ると、アイテム追跡装置104は、結合した点群データ1902に基づいて、第1のアイテム204の寸法1614を決定する。一実施形態では、アイテム追跡装置104は、結合した点群データ1902の縁にあるデータポイント1901同士の間の距離を決定することによって、アイテム204の寸法1614を決定することができる。例えば、アイテム追跡装置104は、結合した点群データ1902の両端にある一対のデータポイント1901を識別し、次に、一対のデータポイント1901同士の間の距離(例えば、ユークリッド距離)を計算する。この例では、データポイント1901同士の間の距離は、第1のアイテム204の長さ2202、幅2204、又は高さ2206に対応する。他の例では、アイテム追跡装置104は、他の適切な技術を使用して第1のアイテム204の寸法1614を決定することができる。図22の例に戻ると、アイテム追跡装置104は、結合した点群データ1902Gに基づいて、第1のアイテム204の長さ2202、幅2204、及び高さ2206を決定することができる。
【0138】
図18の動作1826に戻ると、アイテム追跡装置104は、別のアイテム204の寸法1614を決定するかどうかを決定する。一実施形態では、アイテム追跡装置104は、プラットフォーム202上にある全てのアイテム204の寸法1614を決定するように構成することができる。この場合に、アイテム追跡装置104は、プラットフォーム202上にある全てのアイテム204の寸法1614を決定したかどうかを判定することができる。アイテム追跡装置104は、アイテム204の寸法1614が未だ不明で、未だ決定していない場合に、別のアイテム204の寸法1614を決定する。他の例では、アイテム追跡装置104は、他の適切な基準に基づいて、別のアイテム204の寸法1614を決定するかどうかを判定することができる。
【0139】
アイテム追跡装置104は、別のアイテム204の寸法1614を見出すと決定したことに応じて、動作1806に戻る。この場合に、アイテム追跡装置104は、異なるアイテム204の点群データ1902を収集するために動作1806に戻る。次に、アイテム追跡装置104は、複数の3Dセンサ110から点群データ1902を集約し、点群データ1902を結合し、結合した点群データ1902に基づいてアイテム204の寸法1614を決定するという同じプロセスを繰り返すことができる。
【0140】
別のアイテム204の寸法1614を決定しないと判定したことに応じて、アイテム追跡装置104は、第1のアイテム204の寸法1614を記憶することができる。例えば、アイテム追跡装置104は、第1のアイテム204のアイテム識別子1604を取得し、次に、エンコード化ベクトル・ライブラリ128にエントリ1602を生成することができ、エントリ1602は、決定した長さ2202、幅2204、及び高さ2206を特徴記述子1608として第1のアイテム204に関連付ける。いくつかの実施形態では、アイテム追跡装置104は、エントリ1602を生成するときに、第1のアイテム204の長さ2202、幅2204、及び高さ2206を昇順で記憶することができる。
【0141】
他の実施形態では、アイテム追跡装置104は、第1のアイテム204の決定した長さ2202、幅2204、及び高さ2206を、アイテム識別等の他のプロセスのための特徴記述子1608として出力又は記憶することができる。例えば、アイテム追跡装置104は、図23で説明するプロセス2300と同様のプロセスを使用して、特徴記述子1608を使用して第1のアイテム204を識別するのに役立ち得る。
【0142】
エンコード化ベクトルを使用したアイテム追跡プロセス
図23は、アイテム追跡システム100のエンコード化ベクトル1606を使用するアイテム追跡プロセス2300の一実施形態のフローチャートである。アイテム追跡システム100は、プロセス2300を使用して、イメージング装置102のプラットフォーム202上に置かれたアイテム204を識別し、アイテム204を特定のユーザに割り当てることができる。例として、アイテム追跡システム100は、店舗内でプロセス2300を使用して、ユーザの購入用のデジタルカートにアイテム204を追加することができる。別の例として、アイテム追跡システム100は、倉庫又は備品室内でプロセス2300を使用して、ユーザにアイテムをチェックアウトすることができる。他の例では、アイテム追跡システム100は、アイテム204が特定のユーザに割り当てられるか、又は特定のユーザに関連付けられる、他の適切なタイプのアプリケーションでプロセス2300を使用することができる。このプロセスにより、ユーザは、取得したいアイテム204をスキャンしたり、他の方法で識別したりすることなく、空間からアイテム204を取得することができる。
【0143】
動作2302では、アイテム追跡装置104は、イメージング装置102の自動除外を実行する。アイテム追跡装置104は、図3の動作302で説明したプロセスと同様のプロセスを使用して自動除外を実行できる。例えば、初期キャリブレーション期間中に、プラットフォーム202にはアイテム204が置かれていない場合がある。この期間中に、アイテム追跡装置104は、1つ又は複数のカメラ108及び/又は3Dセンサ110を使用して、プラットフォーム202にアイテム204が置かれていない状態でプラットフォーム202の参照画像122及び参照深度画像124をそれぞれ取り込む。次に、アイテム追跡装置104は、取り込んだ画像122及び深度画像124を参照画像として使用して、アイテム204がプラットフォーム202に置かれたことを検出できる。その後、アイテム追跡装置104は、後続の深度画像124と参照深度画像124との間の深度値の差、及び/又は後続の画像122と参照画像124との間のピクセル値の差に基づいて、アイテム204がプラットフォーム202の表面208に置かれたことを検出できる。
【0144】
動作2304では、アイテム追跡装置104は、プラットフォーム202の上に手を検出したかどうかを判定する。一実施形態では、アイテム追跡装置104は、図7で説明したプロセス700と同様のプロセスを使用して、プラットフォーム202の上で検出したユーザの手に対応するトリガーイベントを検出することができる。例えば、アイテム追跡装置104は、参照深度画像124と後続の深度画像124との間の差をチェックして、プラットフォーム202の上にオブジェクトが存在すると検出することができる。次に、アイテム追跡装置104は、オブジェクトが、ユーザの手に対応するか、又はプラットフォーム202上に置かれたアイテム204に対応するかをチェックする。アイテム追跡装置104は、オブジェクトの第1の部分(例えば、ユーザの手首又は腕)がプラットフォーム202の関心領域802の外側にあり、オブジェクトの第2の部分(例えば、ユーザの手)がプラットフォーム202の関心領域802の内側にある場合に、オブジェクトがユーザの手であると判定する。この条件が満たされると、アイテム追跡装置104は、ユーザの手をプラットフォーム202の上で検出したと判定する。他の例では、アイテム追跡装置104は、近接センサ、モーションセンサ、又は他の適切な技術を使用して、プラットフォーム202の上でユーザの手を検出したかどうかを検出できる。
【0145】
アイテム追跡装置104は、プラットフォーム202の上でユーザの手を検出しなかったと判定することに応じて、動作2304のままになる。この場合に、アイテム追跡装置104は、トリガーイベントとしてユーザの手の存在をチェックし続けるために動作2304のままになる。アイテム追跡装置104は、ユーザの手を検出したと判定することに応じて、動作2306に進む。この場合に、アイテム追跡装置104は、ユーザの手の存在をトリガーイベントとして使用し、動作2306に進み、ユーザがプラットフォーム202上に置いたアイテム204の識別を開始する。
【0146】
動作2306では、アイテム追跡装置104は、プラットフォーム202の俯瞰図を使用してセグメント化を実行する。一実施形態では、アイテム追跡装置104は、プラットフォーム202上のアイテム204の俯瞰図又は斜視図で構成された3Dセンサ110からの深度画像124を使用してセグメント化を実行できる。この例では、アイテム追跡装置104は、プラットフォーム202上に置かれたアイテム204の俯瞰深度画像124を取り込む。次に、アイテム追跡装置104は、取り込んだ深度画像124内でプラットフォーム202とプラットフォーム202上に置かれたアイテム204とを区別するために深度閾値を使用することができる。例えば、アイテム追跡装置104は、プラットフォーム202の表面の直ぐ上にある深度閾値を設定してもよい。この深度閾値は、動作2302の自動除外プロセス中に取り込んだ参照深度画像124内のプラットフォーム202の表面に対応するピクセル値に基づいて決定してもよい。深度閾値を設定した後に、アイテム追跡装置104は、深度閾値を取り込んだ深度画像124に適用して、深度画像124からプラットフォーム202をフィルタ除去又は削除してもよい。深度画像124をフィルタリングした後に、ピクセルの残りのクラスタは、プラットフォーム202上に置かれたアイテム204に対応する。ピクセルの各クラスタは、異なるアイテム204に対応する。各アイテム204のピクセルのクラスタを識別した後に、アイテム追跡装置104は、次に、深度画像124に存在するピクセルのクラスタの数に基づいて、プラットフォーム202上に置かれたアイテム204の数をカウントする。アイテム204のこの数は、後で、プラットフォーム202上の全てのアイテム204を識別したかどうかを判定するために使用される。
【0147】
動作2308では、アイテム追跡装置104は、プラットフォーム202上のアイテム204の画像122を取り込む。ここで、アイテム追跡装置104は、複数のカメラ108を使用して、プラットフォーム202上のアイテム204の複数の画像122を取り込む。例えば、アイテム追跡装置104は、プラットフォーム202上のアイテム204の俯瞰図、斜視図、及び/又は側面図の画像122を取り込むことができる。アイテム追跡装置104は、1つ又は複数の3Dセンサ110を使用して、プラットフォーム202上のアイテム204の複数の深度画像124を取り込むこともできる。
【0148】
動作2310では、アイテム追跡装置104は、各画像122内のアイテム204の切り抜き画像122を生成する。一実施形態では、アイテム追跡装置104は、画像122内に存在するアイテム204の特徴に基づいて、アイテム204の切り抜き画像122を生成する。アイテム追跡装置104は、まず、画像122内に存在するアイテム204の検出した特徴に基づいて、アイテム204の関心領域(例えば、境界ボックス)を識別し、次に、識別した関心領域に基づいて画像122を切り抜くことができる。関心領域は、プラットフォーム202上のアイテム204の取り込んだ画像122又は深度画像124内のアイテム204に対応する複数のピクセルで構成される。アイテム追跡装置104は、1つ又は複数の画像処理技術を使用して、アイテム204の特徴及び物理的属性に基づいて、画像122内のアイテム204の関心領域を識別することができる。例えば、アイテム追跡装置104は、オブジェクト検出及び/又はOCRを使用して、アイテム204を識別するために使用できるアイテム204のテキスト、ロゴ、ブランド、色、バーコード、又は他の特徴を識別することができる。この場合に、アイテム追跡装置104は、画像122内のピクセルを処理して、アイテム204のテキスト、色、バーコード、パターン、又は他の特性を識別することができる。次に、アイテム追跡装置104は、アイテム204の識別した特徴を、異なるアイテム204に対応する特徴のセットと比較することができる。例えば、アイテム追跡装置104は、画像122からテキスト(例えば、製品名)を抽出し、そのテキストを異なるアイテム204に関連付けられたテキストのセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内の支配的な色を決定し、その支配的な色を異なるアイテム204に関連付けられた色のセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のバーコードを識別し、そのバーコードを異なるアイテム204に関連付けられたバーコードのセットと比較することができる。別の例として、アイテム追跡装置104は、画像122内のロゴ又はパターンを識別し、識別したロゴ又はパターンを異なるアイテム204に関連付けられたロゴ又はパターンのセットと比較することができる。他の例では、アイテム追跡装置104は、他の適切なタイプ又は組合せの特徴を識別し、識別した特徴を異なるアイテム204に関連付けられた特徴と比較することができる。
【0149】
アイテム204の識別した特徴を、異なるアイテム204に関連付けられた特徴のセットと比較した後に、アイテム追跡装置104は、次に、一致が見つかったかどうかを判定する。アイテム追跡装置104は、識別した特徴の少なくとも意味のある部分がアイテム204に対応する特徴と一致する場合に、一致が見つかったと判定することができる。画像122内の意味のある部分の特徴がアイテム204の特徴と一致すると判定されたことに応じて、アイテム追跡装置104は、一致するアイテム204に対応する関心領域を識別することができる。
【0150】
アイテム204の関心領域を識別した後に、アイテム追跡装置104は、アイテム204の関心領域内のピクセルを画像122から抽出することによって画像122を切り取る。画像122を切り取ることによって、アイテム追跡装置104は、元の画像122からアイテム204の関心領域内の抽出したピクセルを含む第2の画像122を生成する。このプロセスにより、アイテム追跡装置104は、プラットフォーム202上にあるアイテム204を含む新しい画像122を生成することができる。アイテム追跡装置104は、取り込んだ画像122内の全てのアイテム204と、プラットフォーム202上にあるアイテム204の取り込んだ全ての画像122とに対してこのプロセスを繰り返す。このプロセスの結果は、切り抜き画像122のセットであり、各切り抜き画像がプラットフォーム202上に置かれたアイテム204に対応する。
【0151】
いくつかの実施形態では、アイテム追跡装置104は、図9のプロセス900と同様のプロセスを使用して、アイテム204の切り抜き画像122を生成することができる。いくつかの実施形態では、動作2310はオプションであり、省略してもよい。例えば、アイテム追跡装置104が、1つのアイテム204のみがプラットフォーム202上に置かれていることを検出すると、動作2310は省略してもよい。
【0152】
動作2312では、アイテム追跡装置104は、各アイテム204のエンコード化ベクトル1606を取得する。エンコード化ベクトル1606は、数値の配列を含む。エンコード化ベクトル1606内の各数値は、アイテム204の属性(例えば、アイテムタイプ、サイズ、形状、色等)に対応し、その属性を記述する。エンコード化ベクトル1606は、任意の適切な長さであってもよい。アイテム追跡装置104は、動作2310からの画像122(例えば、切り抜き画像122)のそれぞれを機械学習モデル126に入力することにより、各アイテム204のエンコード化ベクトル1606を取得する。機械学習モデル126は、アイテム204の画像122に存在するアイテム204の特徴又は物理的属性に基づいて、アイテム204のエンコード化ベクトル1606を出力するように構成される。物理的属性の例には、アイテム204のアイテムタイプ、サイズ、形状、色、又は他の適切なタイプの属性が挙げられるが、これらに限定されない。アイテム204の画像122を機械学習モデル126に入力した後に、アイテム追跡装置104は、アイテム204のエンコード化ベクトル1606を受け取る。アイテム追跡装置104は、このプロセスを繰り返して、プラットフォーム202上の各アイテム204のエンコード化ベクトル1606を取得する。
【0153】
動作2314では、アイテム追跡装置104は、対応するエンコード化ベクトル1606に基づいて、エンコード化ベクトル・ライブラリ128内の各アイテム204を識別する。ここで、アイテム追跡装置104は、各アイテム204のエンコード化ベクトル1606を使用して、エンコード化ベクトル・ライブラリ128内の最もよく一致するエンコード化ベクトル1606を識別する。いくつかの実施形態では、アイテム追跡装置104は、アイテム204を識別しようとする前に、まずエンコード化ベクトル・ライブラリ128内の検索空間を縮小してもよい。この場合に、アイテム追跡装置104は、図11の動作1104で説明したプロセスと同様のプロセスを使用して、アイテム204の特徴記述子1608を取得又は識別してもよい。特徴記述子1608のそれぞれは、アイテム204の物理的特性を記述する。特徴記述子1608の例には、アイテムタイプ1610、支配的な色1612、寸法1614、重量1616、又はアイテム204を記述する他の適切なタイプの記述子が挙げられるが、これらに限定されない。アイテム追跡装置104は、オブジェクト検出及び/又はOCRを使用して、アイテム204を識別するために使用できるテキスト、ロゴ、ブランド、色、バーコード、又はアイテム204の他の特徴を識別することができる。アイテム追跡装置104は、図18で説明するプロセス1800と同様のプロセスを使用して、アイテム204の寸法を決定することができる。アイテム追跡装置104は、重量センサ112を使用してアイテム204の重量を決定することができる。他の実施形態では、アイテム追跡装置104は、アイテム204の特徴記述子1608を決定するために他の適切なプロセスを使用することができる。アイテム204の特徴記述子1608を取得した後に、アイテム追跡装置104は、図15のプロセス1500と同様のプロセスを使用して、エンコード化ベクトル・ライブラリ128における検討からエントリ1602をフィルタリング又は除外できる。エンコード化ベクトル・ライブラリ128内のエントリ1602をフィルタリングした後に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128内で、認識していないアイテム204のエンコード化ベクトル1606に最もよく一致するエンコード化ベクトル1606を識別することができる。このプロセスにより、エンコード化ベクトル・ライブラリ128内で対応するエントリ1602を検索するのに必要な時間が短縮されるとともに、エンコード化ベクトル・ライブラリ128内のエントリ1602の識別結果の精度が向上する。
【0154】
一実施形態では、アイテム追跡装置104は、認識していないアイテム204のエンコード化ベクトル1606とエンコード化ベクトル・ライブラリ128内の残りのエンコード化ベクトル1606との間の類似ベクトル1704を生成することにより、エンコード化ベクトル・ライブラリ128内で最もよく一致するエンコード化ベクトル1606を識別する。類似ベクトル1704は数値1710の配列であり、各数値1710は、アイテム204のエンコード化ベクトル1606の値が、エンコード化ベクトル・ライブラリ128のエンコード化ベクトル1606の値とどの程度類似しているかを示す。一実施形態では、アイテム追跡装置104は、図17で説明したプロセスと同様のプロセスを使用して類似ベクトル1704を生成できる。この例では、アイテム追跡装置104は、アイテム204のエンコード化ベクトル1606と、エンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606との間の行列乗算を使用する。類似ベクトル1704内の各数値1710は、エンコード化ベクトル・ライブラリ128内のエントリ1602に対応する。例えば、類似ベクトル1704内の第1の数値1710は、エンコード化ベクトル1702内の値がエンコード化ベクトル・ライブラリ128の第1のエントリ1602のエンコード化ベクトル1606内の値とどの程度類似しているかを示し、類似ベクトル1704内の第2の数値1710は、エンコード化ベクトル1702内の値がエンコード化ベクトル・ライブラリ128の第2のエントリ1602のエンコード化ベクトル1606内の値とどの程度類似しているかを示し、以下同様である。
【0155】
類似ベクトル1704を生成した後に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128内のどのエントリ1602がアイテム204のエンコード化ベクトル1606に最もよく一致するかを特定することができる。一実施形態では、類似ベクトル1704内の最も高い数値1710に関連付けられたエントリ1602が、アイテム204のエンコード化ベクトル1606に最もよく一致するエントリ1602に対応する。エンコード化ベクトル・ライブラリ128から、アイテム204のエンコード化ベクトル1606に最もよく一致するエントリ1602を特定した後に、アイテム追跡装置104は、次に、エンコード化ベクトル・ライブラリ128から、特定したエントリ1602に関連付けられたアイテム識別子1604を特定することができる。このプロセスを通じて、アイテム追跡装置104は、そのエンコード化ベクトル1606に基づいて、エンコード化ベクトル・ライブラリ128のどのアイテム204がアイテム204と一致するかを特定することができる。次に、アイテム追跡装置104は、識別したアイテム204の識別したアイテム識別子1604を出力する。例えば、アイテム追跡装置104は、グラフィカルユーザインターフェイス上の識別したアイテム204のリストにアイテム識別子1604を追加することによって、識別したアイテム204の識別したアイテム識別子1604を出力できる。アイテム追跡装置104は、動作2312で取得した全てのエンコード化ベクトル1606に対してこのプロセスを繰り返す。
【0156】
動作2316では、アイテム追跡装置104は、全てのアイテム204を識別したかどうかを判定する。ここで、アイテム追跡装置104は、識別したアイテム204の数が、動作2306においてプラットフォーム202上で検出したアイテム204の数と一致するかどうかを判定する。アイテム追跡装置104は、識別したアイテム204の数がプラットフォーム202上で検出したアイテム204の数と一致する場合に、全てのアイテム204を識別したと判定する。それ以外の場合に、アイテム追跡装置104は、識別したアイテム204の数がプラットフォーム202上で検出したアイテム204の数と一致しない場合に、1つ又は複数のアイテム204を識別していないと判定する。
【0157】
アイテム追跡装置104は、1つ又は複数のアイテム204を識別していないと判定したことに応じて、動作2318に進む。この場合に、アイテム追跡装置104は、動作2318に進み、識別していない1つ又は複数のアイテム204を識別するようにユーザに求める。動作2318では、アイテム追跡装置104は、プラットフォーム202上の1つ又は複数のアイテム204を識別するようユーザに要求するプロンプトを出力する。一実施形態では、アイテム追跡装置104は、類似のアイテム204のセットの中からアイテム204を識別するようユーザに要求してもよい。図24を例として参照すると、アイテム追跡装置104は、検出したアイテム204(表示要素2402として示される)と識別しなかったアイテム204とを表示する画面2400を出力する。この例では、画面2400には、アイテム204を識別しなかった場合に、他の類似のアイテム204に関する推奨事項(表示要素2404として示される)が表示される。一実施形態では、アイテムの推奨は、類似ベクトル1704を使用して識別した他のアイテム204に対応している場合がある。例えば、アイテムの推奨は、類似ベクトル1704で2番目と3番目に高い値に関連付けられたアイテム204を含み得る。ユーザには、識別しなかったアイテム204を選択するためのユーザ入力を提供できる。
【0158】
いくつかの実施形態では、アイテム追跡装置104は、識別しなかったアイテム204をスキャンするようにユーザに促してもよい。例えば、アイテム追跡装置104は、バーコードスキャナを使用してアイテム204のバーコードをスキャンするようにユーザに指示してもよい。この場合に、アイテム追跡装置104は、グラフィカルユーザインターフェイスを使用して、プラットフォーム202で検出したアイテム204と、ユーザが手動でスキャンしたアイテム204との組合せを表示してもよい。図25を例として参照すると、アイテム追跡装置104は、プラットフォーム202で検出したアイテム204(表示要素2502として示される)と、ユーザが手動でスキャンしたアイテム204(表示要素2504として示される)とを表示する画面2500を出力してもよい。
【0159】
図23の動作2316に戻ると、アイテム追跡装置104は、全てのアイテム204を識別したと判定したことに応じて、動作2320に進む。動作2320では、アイテム追跡装置104は、ユーザのために検出すべき追加のアイテム204があるかどうかを判定する。いくつかの実施形態では、ユーザには、追加のアイテム204をプラットフォーム202に追加したいことを示すユーザ入力を提供できる。他の実施形態では、アイテム追跡装置104は、ユーザがプラットフォーム202からアイテム204を取り外したり追加したりする手の存在を使用して、ユーザのために検出すべき追加のアイテム204があるかどうかを判定することができる。アイテム追跡装置104は、検出すべき追加のアイテム204があると判定したことに応じて、動作2304に戻る。この場合に、アイテム追跡装置104は、動作2304に戻り、ユーザがプラットフォーム202上に置いた追加のアイテム204の検出を開始する。アイテム追跡装置104は、ユーザに対して検出する追加のアイテム204がないと判定することに応じて、動作2322に進む。この場合に、アイテム追跡装置104は、検出したアイテム204をユーザに関連付けるために動作2322に進む。
【0160】
アイテム204をユーザに関連付ける前に、アイテム追跡装置104は、ユーザが、グラフィカルユーザインターフェイス上でアイテム204を選択することにより、識別したアイテム204のリストから1つ又は複数のアイテム204を削除できるようにする。図26を例として参照すると、アイテム追跡装置104は、識別したアイテム204のリストから削除するアイテム204を識別するユーザ入力を受け取り、ユーザがアイテム204を削除しようとすることを確認する画面2600を出力できる。この機能により、ユーザは、購入したい検出したアイテム204のリストを編集して確定することができる。
【0161】
図23の動作2322に戻ると、アイテム追跡装置104は、アイテム204をユーザに関連付ける。一実施形態では、アイテム追跡装置104は、アイテム204をプラットフォーム202に置いたユーザを識別することができる。例えば、ユーザは、イメージング装置102にあるスキャナ又はカードリーダを使用して、自分自身を識別することができる。スキャナの例には、QRコードスキャナ、バーコードスキャナ、NFCスキャナ、又は、個人を一意に識別する情報が埋め込まれた電子コードを受信できる他の適切なタイプのスキャナが挙げられるが、これらに限定されない。他の例では、ユーザは、イメージング装置102にあるグラフィカルユーザインターフェイス上にユーザ情報を提供することによって、自分自身を識別することができる。ユーザ情報の例には、名前、電話番号、電子メールアドレス、識別番号、従業員番号、英数字コード、又はユーザに関連付けられる他の適切な種類の情報が挙げられるが、これらに限定されない。
【0162】
アイテム追跡装置104は、ユーザが提供した情報を使用して、ユーザに関連付けられるアカウントを識別し、識別したアイテム204をユーザのアカウントに追加する。例えば、アイテム追跡装置104は、ユーザが提供した情報を使用して、ユーザに関連付けられるユーザアカウント情報120内のアカウントを識別することができる。例として、アイテム追跡装置104は、ユーザに関連付けられるデジタルカートを識別することができる。この例では、デジタルカートには、ユーザが購入するためにプラットフォーム202に置いたアイテム204に関する情報が含まれる。アイテム追跡装置104は、識別したアイテム204のアイテム識別子1604をデジタルカートに追加することにより、アイテム204をユーザのデジタルカートに追加することができる。アイテム追跡装置104は、アイテム204に関連する他の情報をデジタルカートに追加することもできる。例えば、アイテム追跡装置104は、アイテム識別子1604を使用して、記憶したアイテム情報118から識別したアイテム204の価格情報を検索できる。次に、アイテム追跡装置104は、識別したアイテム204のそれぞれに対応する価格情報をユーザのデジタルカートに追加することができる。
【0163】
アイテム追跡装置104がアイテム204をユーザのデジタルカートに追加した後に、アイテム追跡装置104はアイテム204のトランザクションをトリガー又は開始できる。一実施形態では、アイテム追跡装置104は、以前に記憶した情報(例えば、支払いカード情報)を使用して、アイテム204のトランザクションを完了できる。この場合に、ユーザは、空間を離れるときに、デジタルカート内のアイテム204の料金を自動的に請求され得る。他の実施形態では、アイテム追跡装置104は、イメージング装置102にあるスキャナ又はカードリーダを使用してユーザから情報を収集し、アイテム204のトランザクションを完了できる。このプロセスにより、ユーザが取得したいアイテム204をスキャンしたり、特定したりすることなく、アイテム204をユーザのアカウント(例えば、デジタルカート)に自動的に追加することができる。アイテム204をユーザのアカウントに追加した後に、アイテム追跡装置104は、ユーザのアカウントに追加したアイテム204に関する情報を含む通知又は概要をユーザに出力できる。例えば、アイテム追跡装置104は、イメージング装置102にあるグラフィカルユーザインターフェイスに概要を出力できる。別の例として、アイテム追跡装置104は、ユーザに関連付けられた電子メールアドレス又はユーザ装置に概要を送信することによって概要を出力できる。
【0164】
他のアイテムとの関連性に基づくアイテムの識別
場合によっては、アイテム追跡装置104がプラットフォーム202上に置かれたアイテム204を識別できないことがある。そのような場合に、以下でさらに説明するように、アイテム追跡装置104は、未識別アイテム204と、以前に同じトランザクションの一部として識別したプラットフォーム202上の別のアイテム204との間の予め規定した関連付け2802(図28に示される)に基づいて、未識別アイテム204を識別することができる。例えば、図27に示されるように、トランザクションには、第1のアイテム204A(例えば、1リットルのソーダボトル)をプラットフォーム202上に置くことが含まれ得る。アイテム追跡装置104は、第1のアイテム204Aを1リットルのソーダボトルとして正しく識別し、エンコード化ベクトル・ライブラリ128からの対応するアイテム識別子1604a(図28ではI2として示される)を割り当てることができる。アイテム追跡装置104は、図23を参照して説明したプロセス2300と同様のプロセスを使用して、第1のアイテム204Aを識別することができる。例えば、図29を参照して説明するように、第1のアイテム204Aを識別することは、第1のアイテム204Aの切り抜き画像2702を生成することを含み、第1のアイテム204Aは、第1のアイテム204Aの切り抜き画像2702に基づいて識別される。第1のアイテム204Aが識別されると、第2のアイテム204B(例えば、小さな袋に入ったチップス)が、同じトランザクションの一部として、プラットフォーム202上にその後配置される場合がある。一実施形態では、第1のアイテム204Aの配置は、トランザクションの第1のインタラクションと呼ばれ、第2のアイテム204Bの配置は、同じトランザクションの第2のインタラクションと呼ばれ得る。いくつかの実施形態では、アイテム追跡装置104は、例えば、図23を参照して上で説明したプロセス2300と同様のプロセスに基づいて、第2のアイテム204Bを識別できない場合がある。このような場合に、図29を参照して以下でさらに説明するように、アイテム追跡装置104は、未識別の第2のアイテム204Bと、以前に識別した第1のアイテム204Aとの間の予め規定した関連付け2802に基づいて、第2のアイテム204Bを識別してもよい。図29を参照して説明したように、第2のアイテム204Bを識別することは、第2のアイテム204Bの切り抜き画像2704を生成することを含み、第2のアイテム204Bは、第2のアイテム204Bの切り抜き画像2704に基づいて識別される。
【0165】
この文脈において、図28を参照すると、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128にリストされるアイテム204のアイテム識別子1604同士の間の関連付け2802を(例えば、メモリ116に)記憶する。2つのアイテム識別子1604の間の関連付け2802は、アイテム識別子1604に関連付けられたアイテム204同士の間の任意の論理的な関連付けに対応し得る。例えば、アイテム追跡システム100が、複数のアイテム204が購入可能な店舗に導入され使用される場合に、店舗は、2つ以上のアイテム204が単一のトランザクションで一緒に購入されたときに、特定のプロモーションを提供することができる。プロモーションの一例としては、1リットルのソーダボトルを購入すると、小さな袋に入ったチップスが無料で付いてくるというものが挙げられ得る。別のプロモーションの例としては、特定のブランド及び/又はフレーバーの16オンスのソーダボトルを1回の取引で2本購入すると、価格が割引になったり、「1本買うと1本無料」になったりするというものが挙げられ得る。このような場合に、2つ以上のアイテム204を含む特定のプロモーションは、アイテム204のそれぞれのアイテム識別子1604(例えば、エンコード化ベクトル・ライブラリ128に記憶される)同士の間の関連付け2802として記憶され得る。2つのアイテム識別子1604の間の関連付け2802には、同じアイテム204に関連付けられた同じアイテム識別子1604の2つのインスタンスの間の関連付けが含まれる場合があることに留意されたい。例えば、プロモーションの例に同じアイテム204が2つ以上含まれている場合に(例えば、同じアイテム204を2つ購入すると割引価格になる)、このプロモーションは、同じアイテム204に関連付けられた同じアイテム識別子1604の2つ以上のインスタンスの間の関連付け2802としてメモリに記憶される。
【0166】
図28に示されるように、関連付け2802は、エンコード化ベクトル・ライブラリ128の一部として(例えば、メモリ116に)記憶される。図に示されるように、エントリ1602のそれぞれは、関連付け2802に関連付けられる。エントリ1602aは関連付け-1(A1として示される)に関連付けられ、エントリ1602b及び1602cは関連付け-2(A2として示される)に関連付けられ、エントリ1602dは関連付け-3(A3として示される)に関連付けられる。一例では、関連付け-1は、エントリ1602aに記憶される同じアイテム識別子1604(I1として示される)を有する2つ以上の同じアイテム204に関連付けられたプロモーションを示す場合がある。例えば、関連付け-1は、同じブランドの16オンスの水ボトル2本を同じトランザクションの一部として一緒に購入した場合に割引価格になるプロモーションを示す場合がある。この例では、16オンスの水ボトルは、エントリ1602aのアイテム識別子1604(I1)に関連付けられる。同様に、関連付け-3は、エントリ1602dに記憶される同じアイテム識別子1604(I4として示される)を有する2つ以上の同じアイテム204に関連付けられるプロモーションを示す場合がある。例えば、関連付け-3は、同じブランド及び/又はフレーバーの16オンスのソーダボトル2本が同じトランザクションの一部として一緒に購入された場合に割引価格を含むプロモーションを示す場合がある。この例では、16オンスのソーダボトルは、エントリ1602dのアイテム識別子1604(I4)に関連付けられる。例えば、関連付け-2は、それぞれのエントリ1602b及び1602cに記憶される2つの異なるアイテム識別子1604a(I2)及び1604b(I3)を有する2つの異なるアイテム204に関連付けられるプロモーションを示す場合がある。例えば、関連付け-2は、1リットルのソーダボトルを購入するとチップス1袋が無料で付いてくるプロモーションを示す場合がある。この例では、1リットルのソーダボトルはエントリ1602bからの第1のアイテム識別子1604a(I2)に関連付けられ、チップス1袋はエントリ1602cからの第2のアイテム識別子1604b(I3)に関連付けられ得る。
【0167】
図29は、本開示の1つ又は複数の実施形態に従って、第1のアイテム204Aとの関連付け2802に基づいて、第2のアイテム204Bを識別するための例示的な方法2900のフローチャートを示している。方法2900は、図1に示されるように、アイテム追跡装置104によって実行できる。
【0168】
動作2902では、アイテム追跡装置104は、プラットフォーム202での第1のトリガーイベントを検出し、第1のトリガーイベントは、プラットフォーム202上の第1のアイテム204Aの配置に対応する。特定の実施形態では、第1のトリガーイベントは、ユーザが第1のアイテム204Aをプラットフォーム202に配置することに対応し得る。
【0169】
上述したように、アイテム追跡装置104は、図3の動作302で説明したプロセスと同様のプロセスを使用して、イメージング装置102の自動除外を実行する。例えば、初期キャリブレーション期間中に、プラットフォーム202にはアイテム204が置かれていない場合がある。この期間中に、アイテム追跡装置104は、1つ又は複数のカメラ108及び/又は3Dセンサ110を使用して、プラットフォーム202にアイテム204が置かれていない状態のプラットフォーム202の参照画像122及び参照深度画像124をそれぞれ取り込む。次に、アイテム追跡装置104は、取り込んだ画像122及び深度画像124を参照画像として使用して、アイテム204がプラットフォーム202に何時置かれたかを検出できる。その後、アイテム追跡装置104は、後続の深度画像124と参照深度画像124との間の深度値の差、及び/又は後続の画像122と参照画像122との間のピクセル値の差に基づいて、アイテム204がプラットフォーム202の表面208に置かれたことを検出できる。
【0170】
一実施形態では、第1のトリガーイベントを検出するために、アイテム追跡装置104は、図7で説明したプロセス700と同様のプロセスを使用して、例えば、ユーザの手がプラットフォーム202の上で検出され、アイテム204がプラットフォーム上に置かれることに対応するイベント等のトリガーイベントを検出することができる。例えば、アイテム追跡装置104は、参照深度画像124と後続の深度画像124との間の差をチェックして、プラットフォーム202の上にあるオブジェクトの存在を検出することができる。次に、アイテム追跡装置104は、オブジェクトがユーザの手に対応するか、又はプラットフォーム202上に置かれたアイテム204に対応するかをチェックする。アイテム追跡装置104は、オブジェクトの第1の部分(例えば、ユーザの手首又は腕)がプラットフォーム202の関心領域802の外側にあり、オブジェクトの第2の部分(例えば、ユーザの手)がプラットフォーム202の関心領域802の内側にある場合に、オブジェクトがユーザの手であると判定する。この条件が満たされると、アイテム追跡装置104は、ユーザの手がプラットフォーム202の上で検出したと判定する。他の例では、アイテム追跡装置104は、近接センサ、モーションセンサ、又は他の適切な検出技術を使用して、ユーザの手をプラットフォーム202の上で検出したかどうかを検出できる。ユーザの手を検出した後に、アイテム追跡装置104は、プラットフォーム202の追加の俯瞰深度画像124を定期的に取り込むのを開始し、ユーザの手がプラットフォーム202から出たかどうかをチェックする。ユーザの手がもはやプラットフォーム202上になくなったと判定することに応じて、アイテム追跡装置104は、第1のアイテム204Aがプラットフォーム202上にあるかどうかを判定する。第1のアイテム204Aがプラットフォーム上に置かれたと判定することに応じて、アイテム追跡装置104は、第1のトリガーイベントが発生したと判定し、ユーザがプラットフォーム202上に置いた第1のアイテム204Aの識別に進む。
【0171】
第1のトリガーイベントが検出されると、アイテム追跡装置104は、プラットフォーム202の俯瞰図を使用してセグメント化を実行する。一実施形態では、アイテム追跡装置104は、プラットフォーム202上のアイテム204を俯瞰図又は斜視図を撮影するために位置付けされた3Dセンサ110からの深度画像124を使用してセグメント化を実行できる。この例では、アイテム追跡装置104は、プラットフォーム202上に置かれたアイテム204の俯瞰深度画像124を取り込む。アイテム追跡装置104は、次に、深度閾値を使用して、取り込んだ深度画像124内でプラットフォーム202とプラットフォーム202上に置かれたアイテム204とを区別することができる。例えば、アイテム追跡装置104は、プラットフォーム202の表面の直ぐ上の深度閾値を設定することができる。この深度閾値は、上記の自動除外プロセス中に取り込んだ参照深度画像124内のプラットフォーム202の表面に対応するピクセル値に基づいて決定することができる。深度閾値を設定した後に、アイテム追跡装置104は、深度閾値を取り込んだ深度画像124に適用して、深度画像124からプラットフォーム202をフィルタ除去又は削除することができる。深度画像124をフィルタリングした後に、残りのピクセルクラスタは、プラットフォーム202上に置かれたアイテム204に対応する。各ピクセルクラスタは、異なるアイテム204に対応する。例えば、ピクセルクラスタの1つは、動作2902で検出した第1のトリガーイベントの一部としてプラットフォーム202上に置かれた第1のアイテム204に対応する。
【0172】
動作2904では、第1のトリガーイベントの検出に応じて、アイテム追跡装置104は、2つ以上のカメラ108を使用して、プラットフォーム202上に置かれた第1のアイテム204の複数の第1の画像122Aを取り込む。
【0173】
上述したように、アイテム追跡装置104は、複数のカメラ108を使用して、プラットフォーム202上の第1のアイテム204の複数の第1の画像122A(図5Aに示される)を取り込むことができる。例えば、アイテム追跡装置104は、プラットフォーム202上の第1のアイテム204の俯瞰図、斜視図、及び/又は側面図を含む第1の画像122Aを取り込むことができる。
【0174】
動作2906では、アイテム追跡装置104は、複数の第1の画像122Aに基づいて、第1のアイテム204に関連付けられた第1のアイテム識別子1604aを識別する。
【0175】
アイテム追跡装置104は、図23を参照して説明したプロセス2300と同様のプロセスを使用して、第1のアイテム204Aを識別することができる。例えば、アイテム追跡装置104は、第1のアイテム204Aの少なくとも一部を第1の画像122Aから分離することにより、それぞれのカメラ108によって取り込んだ第1のアイテム204Aの各第1の画像122Aから第1のアイテム204Aの切り抜き画像2702を生成することができる。換言すれば、アイテム追跡装置104は、それぞれのカメラ108によって取り込んだ第1のアイテム204Aの各第1の画像122Aに基づいて、第1のアイテム204Aの切り抜き画像2702を1つ生成する。図27に示されるように、アイテム追跡装置104は、第1のアイテム204Aのそれぞれの第1の画像122Aから、第1のアイテム204Aの3つの切り抜き画像2702a、2702b、及び2702cを生成する。
【0176】
上述したように、一実施形態では、アイテム追跡装置104は、第1の画像122A(例えば、第1の画像122Aのうちの1つ)に存在する第1のアイテム204Aの特徴に基づいて、第1のアイテム204Aの切り抜き画像2702を生成することができる。アイテム追跡装置104は、まず、第1の画像122A内に存在する第1のアイテム204Aの検出した特徴に基づいて、第1のアイテム204Aの関心領域(例えば、境界ボックス)1002(図10Aに示される)を識別し、次に、識別した関心領域1002に基づいて第1の画像122Aを切り抜くことができる。関心領域1002は、プラットフォーム202上の第1のアイテム204Aの取り込んだ第1の画像122A内の第1のアイテム204Aに対応する複数のピクセルを含む。アイテム追跡装置104は、1つ又は複数の画像処理技術を使用して、第1のアイテム204Aの特徴及び物理的属性に基づいて、第1の画像122A内の第1のアイテム204Aの関心領域1002を識別することができる。アイテム追跡装置104は、第1のアイテム204Aの関心領域1002を識別した後に、第1の画像122A内の第1のアイテム204Aに対応する関心領域1002内のピクセルを抽出することによって、第1の画像122Aを切り抜く。第1の画像122Aを切り抜くことにより、アイテム追跡装置104は、元の第1の画像122Aから第1のアイテム204Aの関心領域1002内の抽出したピクセルを含む別の画像(例えば、切り抜き画像2702)を生成する。アイテム追跡装置104は、プラットフォーム202上の第1のアイテム204Aの取り込んだ第1の画像122Aの全てに対してこのプロセスを繰り返すことができる。このプロセスの結果は、プラットフォーム202上に置かれた第1のアイテム204Aに対応する切り抜き画像2702のセットである。いくつかの実施形態では、アイテム追跡装置104は、図9のプロセス900と同様のプロセスを使用して、第1のアイテム204Aの切り抜き画像2702を生成することができる。
【0177】
アイテム追跡装置104は、第1のアイテム204Aの切り抜き画像2702毎に、エンコード化ベクトル1702(図17に示される)を生成する。エンコード化ベクトル1702は、数値の配列で構成される。エンコード化ベクトル1702内の各数値は、第1のアイテム204Aの属性(例えば、アイテムタイプ、サイズ、形状、色等)に対応し、その属性を記述する。エンコード化ベクトル1702は、任意の適切な長さであってもよい。アイテム追跡装置104は、切り抜き画像2702のそれぞれを機械学習モデル(例えば、機械学習モデル126)に入力することにより、第1のアイテム204Aのエンコード化ベクトル1702を生成する。機械学習モデル126は、アイテム204の画像122に存在するアイテム204の特徴又は物理的属性に基づいて、アイテム204のエンコード化ベクトル1702を出力するように構成される。物理的属性の例には、アイテムタイプ、サイズ、形状、色、又はアイテム204の他の適切な種類の属性が挙げられるが、これらに限定されない。第1のアイテム204Aの切り抜き画像2702を機械学習モデル126に入力した後に、アイテム追跡装置104は、第1のアイテム204Aのエンコード化ベクトル1702を受け取る。アイテム追跡装置104は、このプロセスを繰り返して、プラットフォーム202上の第1のアイテム204Aの切り抜き画像2702毎にエンコード化ベクトル1702を取得する。
【0178】
アイテム追跡装置104は、第1のアイテム204Aに対して生成した対応するエンコード化ベクトル1702に基づいて、エンコード化ベクトル・ライブラリ128から第1のアイテム204Aを識別する。ここで、アイテム追跡装置104は、第1のアイテム204Aのエンコード化ベクトル1702を使用して、エンコード化ベクトル・ライブラリ128内の最もよく一致するエンコード化ベクトル1606を識別する。一実施形態では、アイテム追跡装置104は、未識別の第1のアイテム204Aに対して生成したエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606との間の類似ベクトル1704(図17に示される)を生成することによって、エンコード化ベクトル・ライブラリ128内の最もよく一致するエンコード化ベクトル1606を識別する。類似ベクトル1704は、数値類似値1710の配列で構成され、各数値類似値1710は、第1のアイテム204Aのエンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128内の特定のエンコード化ベクトル1606とどの程度類似しているかを示す。一実施形態では、アイテム追跡装置104は、図17で説明したプロセスと同様のプロセスを使用して類似ベクトル1704を生成することができる。この例では、アイテム追跡装置104は、第1のアイテム204Aのエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128内のエンコード化ベクトル1606との間の行列乗算を使用する。類似ベクトル1704内の各数値類似値1710は、エンコード化ベクトル・ライブラリ128内のエントリ1602に対応する。例えば、類似ベクトル1704内の第1の数値1710は、エンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128の第1のエントリ1602内のエンコード化ベクトル1606の値とどの程度類似しているかを示し、類似ベクトル1704内の第2の数値1710は、エンコード化ベクトル1702の値がエンコード化ベクトル・ライブラリ128の第2のエントリ1602内のエンコード化ベクトル1606の値とどの程度類似しているかを示し、以下同様である。
【0179】
類似ベクトル1704を生成した後に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128内のどのエントリ1602が、第1のアイテム204Aのエンコード化ベクトル1702に最もよく一致するかを特定することができる。一実施形態では、類似ベクトル1704内の最も高い数値類似値1710に関連付けられるエントリ1602が、第1のアイテム204Aのエンコード化ベクトル1702に最もよく一致するエントリ1602である。アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128から、第1のアイテム204Aのエンコード化ベクトル1702に最もよく一致するエントリ1602を識別した後に、次に、エンコード化ベクトル・ライブラリ128から、識別したエントリ1602に関連付けられたアイテム識別子1604を識別することができる。このプロセスを通じて、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128のどのアイテム204が、そのエンコード化ベクトル1702に基づいて、未識別の第1のアイテム204Aに対応するかを判定することができる。次に、アイテム追跡装置104は、識別したアイテム204の識別したアイテム識別子1604を出力する。アイテム追跡装置104は、第1のアイテム204Aの各切り抜き画像2702(例えば、2702a、2702b、及び2702c)に対して生成した各エンコード化ベクトル1702に対してこのプロセスを繰り返す。このプロセスにより、第1のアイテム204Aに対応するアイテム識別子1604のセットが生成され、第1のアイテム204Aに対応するアイテム識別子1604のセットには、第1のアイテム204Aの複数の切り抜き画像2702に対応する複数のアイテム識別子1604が含まれ得る。換言すれば、アイテム追跡装置104は、第1のアイテム204Aの切り抜き画像2702毎にアイテム識別子1604を識別する。
【0180】
アイテム追跡装置104は、第1のアイテム204Aの複数の切り抜き画像2702のそれぞれに基づいて、第1のアイテム204Aに対して識別した複数のアイテム識別子1604のうちの1つを選択することができる。例えば、アイテム追跡装置104は、第1のアイテム204Aの複数の切り抜き画像2702のそれぞれに基づいて、第1のアイテム204Aについて識別した複数のアイテム識別子1604に基づいて、第1のアイテム204Aに関連付けられた第1のアイテム識別子1604aを選択することができる。
【0181】
1つ又は複数の実施形態では、アイテム追跡装置104は、第1のアイテム204Aの各切り抜き画像2702を、第1のアイテム204Aの切り抜き画像2702が第1のアイテム204Aの前面画像122であるか、又は第1のアイテム204Aの背面画像122であるかを判定するように構成された機械学習モデルに入力することができる。第1のアイテム204の前面画像122は、第1のアイテム204Aに固有の識別情報(例えば、テキスト、色、ロゴ、パターン、写真、画像等)を含む、又は第1のアイテム204Aを識別するために使用できる第1のアイテム204Aの一部の画像122に対応する。第1のアイテム204Aの背面画像122は、第1のアイテム204Aを識別するために使用できる識別情報を含まない、第1のアイテム204の一部の画像122に対応する。機械学習モデルは、エンコード化ベクトル・ライブラリ128で識別した第1のアイテム204Aのアイテム204の既知の前面画像122及び背面画像を含むデータセットを使用してトレーニングすることができる。未識別の第1のアイテム204Aの各切り抜き画像2702が、第1のアイテム204Aの前面画像122又は背面画像122として識別(例えば、タグ付け)されると、アイテム追跡装置104は、背面画像122として識別した全ての切り抜き画像2702を破棄する。アイテム追跡装置104は、第1のアイテム204Aの前面画像122として識別した切り抜き画像2702に対応するアイテム識別子1604のみから、未識別の第1のアイテム204Aのアイテム識別子1604を選択する。特定の実施形態では、第1のアイテム204Aの背面画像122として識別した全ての切り抜き画像2702を破棄した後に、第1のアイテム204Aの前面画像122として識別した1つの切り抜き画像2702のみが残っている場合に、アイテム追跡装置104は、残っている1つの切り抜き画像2702に対応するアイテム識別子1604を選択する。第1のアイテム204Aの切り抜き画像2702が全て背面画像122として識別された場合に、アイテム追跡装置104は、第1のアイテム204Aの1つ又は複数の切り抜き画像2702に対応するアイテム識別子1604をユーザインターフェイス装置に表示し、表示されたアイテム識別子1604のうちの1つを選択するようにユーザに求める。あるいはまた、アイテム追跡装置104は、プラットフォーム202上で第1のアイテム204Aを反転又は回転させるための指示をユーザのユーザインターフェイス装置に表示してもよい。第1のアイテム204Aがプラットフォーム202上で反転又は回転された場合に、アイテム追跡装置104は、動作2902~2906を実行して第1のアイテム204Aを再識別する。
【0182】
場合によっては、第1のアイテム204Aの複数の切り抜き画像2702が前面画像122として識別されることがある。このような場合に、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128からそれぞれのアイテム識別子1604を識別するために使用される類似値1710に基づいて、アイテム識別子1604から、アイテム204の切り抜き前面画像122に対応するアイテム識別子1604を選択するように構成してもよい。上述したように、切り抜き画像2702毎に、アイテム追跡装置104は、切り抜き画像2702に対して生成した類似ベクトル1704内の最も高い数値類似値1710に関連付けられたエントリ1602をエンコード化ベクトル・ライブラリ128から選択する。次に、アイテム追跡装置104は、識別したエントリ1602に関連付けられたアイテム識別子1604をエンコード化ベクトル・ライブラリ128から識別する。こうして、第1のアイテム204Aの切り抜き画像2702毎に識別したアイテム識別子1604は、それぞれの類似値1710に対応し、これに基づいてアイテム識別子1604をエンコード化ベクトル・ライブラリ128から選択した。
【0183】
一実施形態では、アイテム追跡装置104は、第1のアイテム204Aの切り抜き前面画像2702のうち、閾値類似値を下回る数値類似値1710に基づいて、エンコード化ベクトル・ライブラリ128からアイテム識別子1604を選択した全ての切り抜き前面画像2702を破棄する。類似値1710が、未識別の第1のアイテム204Aのために生成したエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128の特定のエンコード化ベクトル1606との間の類似度の度合いを示すため、類似値1710が低いということは、生成したエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128の対応するエンコード化ベクトル1606との間の類似度が低いことを示している。アイテム追跡装置104は、閾値類似値を下回る数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む全ての切り抜き前面画像2702を破棄することにより、未識別の第1のアイテム204Aを正しく識別する可能性が低い全ての切り抜き画像2702を破棄する。一実施形態では、アイテム204の全ての切り抜き前面画像2702のアイテム識別子1604が、閾値類似値を下回る数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択された場合に、アイテム追跡装置104は、アイテム識別子1604をユーザインターフェイス装置に表示し、表示したアイテム識別子1604のうちの1つを選択するようにユーザに求める。
【0184】
アイテム追跡装置104は、閾値類似値を下回る数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む全ての切り抜き前面画像2702を破棄した後に、多数決ルールを適用して、閾値類似値以上の数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む残りの切り抜き前面画像2702に対応するアイテム識別子1604をアイテム識別子1604から選択する。多数決ルールは、未識別アイテム204の残りの切り抜き前面画像2702の過半数に対して同じアイテム識別子1604が識別された場合に、同じアイテム識別子1604が選択されることを規定する。
【0185】
しかしながら、残りの切り抜き前面画像のアイテム識別子1604に過半数が存在しない場合には、多数決ルールを適用できない。例えば、識別していない第1のアイテム204の残りの切り抜き前面画像2702の過半数に対して同じアイテム識別子1604が識別されなかった場合に、多数決ルールは適用されない。このような場合に、アイテム追跡装置104は、残りの切り抜き前面画像2702のうちの最も高い2つの数値類似値1710を比較する。最も高い類似値と2番目に高い類似値との間の差が閾値差に等しいか又はそれを超える場合に、アイテム追跡装置104は、最も高い類似値に対応するアイテム識別子1604を選択する。ただし、最も高い類似値と2番目に高い類似値との間の差が閾値差を下回る場合に、アイテム追跡装置104は、第1のアイテム204Aの1つ又は複数の残りの切り抜き前面画像2702に対応するアイテム識別子1604をユーザインターフェイス装置に表示し、表示したアイテム識別子1604のうちの1つを選択するようにユーザに求める。
【0186】
第1のアイテム204Aを識別するために使用される特定の方法に関係なく、このプロセス全体の最終結果は、第1のアイテム204Aに対して第1のアイテム識別子1604aが識別されることである。
【0187】
動作2908では、アイテム追跡装置104は、第1の画像122Aで取り込んだ第1のアイテム204Aに第1のアイテム識別子1604aを割り当てる。
【0188】
動作2910では、アイテム追跡装置104は、プラットフォーム202で第2のトリガーイベントを検出し、第2のトリガーイベントは、第2のアイテム204Bのプラットフォーム202上の配置に対応する。特定の実施形態では、第2のトリガーイベントは、ユーザが第2のアイテム204Bをプラットフォーム202上に配置することに対応する。アイテム追跡装置104は、動作2902を参照して上で説明した第1のトリガーイベントの検出と同様に、第2のトリガーイベントを検出することができる。
【0189】
動作2912では、第2のトリガーイベントの検出に応じて、アイテム追跡装置104は、複数のカメラ108のうちの2つ以上のカメラ108を使用して、第2のアイテム204Bの複数の第2の画像122B(例えば、図5Bに示される)を取り込む。
【0190】
動作2914では、アイテム追跡装置104は、複数の切り抜き画像2704(図27に示される)を生成し、各切り抜き画像(例えば、2704a、2704b、2704c、及び2704d)は、対応する第2の画像122Bに関連付けられており、対応する第2の画像122Bを編集して第2のアイテム204Bの少なくとも一部を分離することによって生成される。
【0191】
第2のアイテム204Bの複数の切り抜き画像2704を生成するために、アイテム追跡装置104は、第1の画像122Aに基づいて第1のアイテム204Aの切り抜き画像2702を生成するための動作2906を参照して上で説明した方法と同様の方法を使用することができる。
【0192】
動作2916では、それぞれの第2の画像122Bから生成した第2のアイテム204Bの切り抜き画像2704毎に、アイテム追跡装置104は、切り抜き画像122B内の第2のアイテム204Bの属性に基づいてアイテム識別子1604を識別する。
【0193】
アイテム追跡装置104は、第1のアイテム204Aの各切り抜き画像2702のアイテム識別子1604を識別するための動作2906を参照して上で説明した方法と同様の方法に基づいて、第2のアイテム204Bの各切り抜き画像2704のアイテム識別子1604を識別することができる。
【0194】
動作2918では、アイテム追跡装置104は、各アイテム204のアイテム識別子1604同士の間の関連付け2802に(例えば、メモリ116から)アクセスする。
【0195】
動作2920では、メモリ116に記憶した関連付け2802に基づいて、アイテム追跡装置104は、第1のアイテム204Aに対して識別した第1のアイテム識別子1604aと第2のアイテム識別子1604bと間の関連付け2802aを識別する。メモリ116に記憶した関連付け2802を検索することに基づいて、アイテム追跡装置104は、エントリ1602bの第1のアイテム識別子1604aとエントリ1602cの第2のアイテム識別子1604bとの間に関連付け2802a(例えば、関連付け-2)が存在すると判定することができる。上記の例に従うと、エントリ1602bの第1のアイテム識別子1604aは1リットルのソーダボトルに関連付けられ、エントリ1602cの第2のアイテム識別子1604bは小さな袋に入ったチップスに関連付けられる。
【0196】
動作2922では、アイテム追跡装置104は、第2のアイテム204Bの切り抜き画像2704に対して識別したアイテム識別子1604のうち、少なくとも1つのアイテム識別子1604が第2のアイテム識別子1604bであるかどうかをチェックする。第2のアイテム204Bの切り抜き画像2704に対して識別したアイテム識別子1604のいずれも第2のアイテム識別子1604bでない場合に、方法2800は動作2924に進み、アイテム追跡装置104は、第2のアイテム204Bの切り抜き画像2704のアイテム識別子1604をユーザインターフェイス装置に表示し、表示したアイテム識別子1604のうちの1つを選択するようにユーザに求める。
【0197】
しかしながら、第2のアイテム204Bの切り抜き画像2704に対して識別したアイテム識別子1604のうち少なくとも1つのアイテム識別子1604が第2のアイテム識別子1604bである場合に、方法2900は動作2926に進み、アイテム追跡装置104は、第2の画像122Bに取り込んだ第2のアイテム204Bに第2のアイテム識別子1604bを割り当てる。上記の例に従って、第1のアイテム204Aに、1リットルのソーダボトルに関連付けられた、エントリ1602bからの第1のアイテム識別子1604aが割り当てられ、第2のアイテム204Bの切り抜き画像2704に対して識別したアイテム識別子1604のうちの少なくとも1つのアイテム識別子1604が、小さな袋に入ったチップスに関連付けられた、エントリ1602cからの第2のアイテム識別子1604bである場合に、アイテム追跡装置104は、エントリ1602cからの第2のアイテム識別子1604bを第2のアイテム204Bに割り当て、こうして、第2のアイテム204を小さな袋に入ったチップスとして識別する。
【0198】
上述の関連付け-1の第2の例に従って、第1のアイテム204Aに、16オンスの水ボトルに関連付けられた、エントリ1602aからの第1のアイテム識別子1604(I1)が割り当てられ、第2のアイテム204Bの切り抜き画像2704に対して識別したアイテム識別子1604のうちの少なくとも1つのアイテム識別子1604が、エントリ1602aからの第1のアイテム識別子1604(I1)でもある場合に、アイテム追跡装置104は、エントリ1602aからの同じ第1のアイテム識別子1604(I1)を第2のアイテム204Bにも割り当てる。この例では、第1のアイテム識別子1604及び第2のアイテム識別子1604は、エントリ1602aからの同じアイテム識別子1604(I1)の2つの異なるインスタンスであり、第1のアイテム204A及び第2のアイテム204Bは、同じアイテム204の2つの異なるインスタンス、例えば2つの異なる16オンスの水ボトルである。
【0199】
1つ又は複数の実施形態では、アイテム追跡装置104は、第1のアイテム204Aを識別するための上記の1つ又は複数の他の方法が適用されないか、又は第2のアイテム204Bを識別できない場合に、上記の関連付け2802ベースのロジックを適用して第2のアイテム204Bを識別する。
【0200】
一実施形態では、未識別の第2のアイテム204Bの各第2の画像122Bについて切り抜き画像2704を生成した後に、アイテム追跡装置104は、第2のアイテム204の各切り抜き画像2704を機械学習モデルに入力し、第2のアイテム204Bの切り抜き画像2702が第2のアイテム204Bの前面画像122であるか、又は第2のアイテム204Bの背面画像122であるかを判定する。第2のアイテム204Bの各切り抜き画像2704が第2のアイテム204Bの前面画像122又は背面画像122として識別されると、アイテム追跡装置104は、背面画像122として識別した全ての切り抜き画像2704を破棄する。アイテム追跡装置104は、前面画像122として識別した切り抜き画像2704に対応するアイテム識別子1604のみから、未識別の第2のアイテム204Bのアイテム識別子1604を選択する。例えば、背面画像122として識別した第2のアイテム204の切り抜き画像2704を全て破棄した後に、前面画像122として識別した切り抜き画像2704が1つだけ残っている場合に、アイテム追跡装置104は、残っている1つの切り抜き画像2704に対応するアイテム識別子1604を選択する。第2のアイテム204Bの全ての切り抜き画像2704を前面画像122として識別した場合に、アイテム追跡装置104は、1つ又は複数の切り抜き画像2704に対応するアイテム識別子1604をユーザインターフェイス装置に表示し、表示したアイテム識別子1604のうちの1つを選択するようにユーザに求める。あるいはまた、アイテム追跡装置104は、ユーザがプラットフォーム202上で第2のアイテム204Bを反転又は回転させるための指示をユーザインターフェイス装置に表示すこともできる。第2のアイテム204Bがプラットフォーム202上で反転又は回転されると、アイテム追跡装置104は、動作2910~2916を実行して、第2のアイテム204Bを再識別することができる。
【0201】
第2のアイテム204Bの複数の切り抜き画像2704が前面画像122として識別されると、アイテム追跡装置104は、エンコード化ベクトル・ライブラリ128からそれぞれのアイテム識別子1604を識別するために使用する類似値1710に基づいて、第2のアイテム204Bの切り抜き前面画像2704に対応するアイテム識別子1604をアイテム識別子1604から選択する。第1のアイテム204Bの切り抜き画像2702を参照して上で説明したように、第2のアイテム204Bの切り抜き画像2704毎に、アイテム追跡装置104は、切り抜き画像2704に対して生成した類似ベクトル1704内の最も高い数値類似値1710に関連付けられたエントリ1602をエンコード化ベクトル・ライブラリ128から選択する。次に、アイテム追跡装置104は、識別したエントリ1602に関連付けられたアイテム識別子1604をエンコード化ベクトル・ライブラリ128から識別する。こうして、第2のアイテム204Bの各切り抜き画像2704について識別したアイテム識別子1604は、それぞれの類似値1710に対応し、この類似値に基づいて、エンコード化ベクトル・ライブラリ128からアイテム識別子1604を選択した。
【0202】
一実施形態では、第2のアイテム204Bの切り抜き前面画像2704のうち、アイテム追跡装置104は、閾値類似値を下回る数値類似値1710に基づいて、エンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む全ての切り抜き前面画像2704を破棄する。類似値1710が、未識別の第2のアイテム204Bのために生成したエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128の特定のエンコード化ベクトル1606との間の類似度の度合いを示すため、類似値1710が低いということは、生成したエンコード化ベクトル1702と、エンコード化ベクトル・ライブラリ128の対応するエンコード化ベクトル1606との間の類似度が低いことを示している。アイテム追跡装置104は、閾値を下回る数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む全ての切り抜き前面画像2704を破棄することにより、未識別の第2のアイテム204Bを正しく識別する可能性が低い全ての切り抜き画像2704を破棄する。一実施形態では、第2のアイテム204Bの全ての切り抜き前面画像2704のアイテム識別子1604が、閾値類似値未満の数値類似値1710に基づいてエンコード化ベクトル・ライブラリ128から選択された場合に、アイテム追跡装置104は、アイテム識別子1604をユーザインターフェイス装置に表示し、表示したアイテム識別子1604のうちの1つを選択するようにユーザに求める。
【0203】
閾値類似値未満の数値類似値1710に基づいて、エンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む全ての切り抜き前面画像2704を破棄した後に、アイテム追跡装置104は、閾値類似値以上の数値類似値1710に基づいて、エンコード化ベクトル・ライブラリ128から選択したアイテム識別子1604を含む残りの切り抜き前面画像2704に対応するアイテム識別子1604からアイテム識別子1604を選択するために多数決ルールを適用する。多数決ルールは、未識別の第2のアイテム204Bの残りの切り抜き前面画像2704の過半数に対して同じアイテム識別子1604が識別された場合に、同じアイテム識別子1604が選択されることを規定する。
【0204】
しかしながら、残りの切り抜き前面画像2704のアイテム識別子1604に過半数が存在しない場合には、多数決ルールを適用できない。例えば、未識別の第2のアイテム204Bの残りの切り抜き前面画像2704の過半数に対して同じアイテム識別子1604が識別されなかった場合に、多数決ルールは適用されない。このような場合に、アイテム追跡装置104は、残りの切り抜き前面画像2704のうちで最も高い2つの数値類似値1710を比較する。最も高い類似値と2番目に高い類似値との間の差が閾値差以上である場合に、アイテム追跡装置104は、最も高い類似値に対応するアイテム識別子1604を選択する。
【0205】
しかしながら、最も高い類似値と2番目に高い類似値との間の差が閾値差を下回る場合に、アイテム追跡装置104は、動作2918~2926を参照して前述した関連付けベースのロジックを適用する。
【0206】
本開示ではいくつかの実施形態を提示するが、開示するシステム及び方法は、本開示の精神又は範囲から逸脱することなく、他の多くの特定の形態で実施できることを理解すべきである。本例は、例示的であり、限定的ではないとみなされるべきであり、意図は本明細書で提供する詳細に限定されない。例えば、様々な要素又はコンポーネントを別のシステムと組み合わせたり統合したりすることができ、特定の機能を省略したり、実装しなかったりすることができる。
【0207】
さらに、様々な実施形態で個別又は別個のものとして説明及び図示した技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術、又は方法と組み合わせたり統合したりすることができる。互いに結合又は直接結合又は通信しているものとして図示又は説明した他のアイテムは、電気的、機械的、又は他の方法で、何らかのインターフェイス、装置、又は中間コンポーネントを介して間接的に結合又は通信している可能性がある。変更、置換、及び改変の他の例は、当業者によって確認可能であり、本明細書で開示する精神及び範囲から逸脱することなく行うことができる。
【0208】
特許庁及び本願に基づいて発行された特許に関係する読者が本願に添付された請求項を解釈するのを支援するために、出願人は、特定の請求項で「手段」又は「ステップ」という用語が明示的に使用されない限り、添付された請求項のいずれも、本願の出願日に存在する米国特許法第112条(f)を援用する意図はないことを留意する。
図1
図2A
図2B
図2C
図3
図4
図5A
図5B
図5C
図6
図7
図8A
図8B
図8C
図8D
図9
図10A
図10B
図10C
図10D
図11
図12A
図12B
図13A
図13B
図13C
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
【手続補正書】
【提出日】2024-09-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アイテム追跡システムであって、当該アイテム追跡システムは、
複数のカメラであって、各カメラがプラットフォームの少なくとも一部の画像を取り込むように構成される、前記複数のカメラと、
各アイテムのアイテム識別子同士の間の関連付けを記憶するように構成されるメモリと、
記メモリに通信可能に結合した1つ又は複数のプロセッサと、を含み、
1つ又は複数のプロセッサは、
前記プラットフォームでの第1のトリガーイベントを検出することであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、こと、
前記第1のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むこと、
前記複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別すること、
前記第1の画像で取り込まれた前記第1のアイテムに前記第1のアイテム識別子を割り当てること、
前記プラットフォームでの第2のトリガーイベントを検出することであって、該第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、こと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むこと、
複数の切り抜き画像を生成することであって、各切り抜き画像が、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、こと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別すること、
前記メモリから前記関連付けにアクセスすること、
前記第1のアイテムの前記第1のアイテム識別子と第2のアイテム識別子との間の関連付けを特定すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であると検出すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の前記特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てること、を行うように構成される、
アイテム追跡システム。
【請求項2】
前記1つ又は複数のプロセッサは、さらに、
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力することであって、該機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、こと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得すること、及び
前記出力に基づいて前記切り抜き画像を背面画像又は前面画像としてタグ付けすること、を行うように構成され、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項1に記載のアイテム追跡システム。
【請求項3】
前記メモリは、エンコード化ベクトル・ライブラリを記憶するようにさらに構成され、
前記エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
前記1つ又は複数のプロセッサは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、前記第1のエンコード化ベクトルは、前記切り抜き画像に基づいて前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを前記エンコード化ベクトル・ライブラリ内で前記エンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられた前記アイテム識別子を識別すること、によって、各切り抜き画像の前記アイテム識別子を識別するようにさらに構成される、請求項2に記載のアイテム追跡システム。
【請求項4】
前記1つ又は複数のプロセッサは、複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定するようにさらに構成される、請求項3に記載のアイテム追跡システム。
【請求項5】
前記1つ又は複数のプロセッサは、
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定したことに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、前記複数の切り抜いた第2の画像のそれぞれに対して識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、を行うようにさらに構成される、請求項4に記載のアイテム追跡システム。
【請求項6】
前記1つ又は複数のプロセッサは、
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットのアイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、を行うようにさらに構成される、請求項5に記載のアイテム追跡システム。
【請求項7】
前記第1のアイテム及び前記第2のアイテムは同じアイテム識別子によって識別され、
前記第1のアイテム識別子及び前記第2のアイテム識別子は、前記同じアイテム識別子の2つのインスタンスである、請求項1に記載のアイテム追跡システム。
【請求項8】
アイテムを識別する方法であって、当該方法は、
プラットフォームでの第1のトリガーイベントを検出するステップであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、ステップと、
前記第1のトリガーイベントの検出に応じて、複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むステップと、
該複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別するステップと、
前記第1の画像で取り込んだ前記第1のアイテムに前記第1のアイテム識別子を割り当てるステップと、
前記プラットフォームでの第2のトリガーイベントを検出するステップであって、該第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、ステップと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むステップと、
複数の切り抜き画像を生成するステップであって、各切り抜き画像は、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、ステップと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別するステップと、
メモリから、各アイテムのアイテム識別子同士の間の関連付けにアクセスするステップと、
前記第1のアイテムの前記第1のアイテム識別子と第2のアイテム識別子との間の関連付けを特定するステップと、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であると検出するステップと、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てるステップと、を含む、
方法。
【請求項9】
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力するステップであって、前記機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、ステップと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得するステップと、
前記出力に基づいて、前記切り抜き画像を背面画像又は前面画像としてタグ付けするステップと、をさらに含み、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項8に記載の方法。
【請求項10】
ンコード化ベクトル・ライブラリをメモリに記憶するステップをさらに含み
前記エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
各切り抜き画像の前記アイテム識別子を識別することは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、該第1のエンコード化ベクトルは、前記切り抜き画像に基づいて前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを、前記エンコード化ベクトル・ライブラリ内でエンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられる前記アイテム識別子を識別すること、を含む、請求項9に記載の方法。
【請求項11】
複数の前記切り抜いた第2の画像が前面画像としてタグ付けされると判定することをさらに含む、請求項10に記載の方法。
【請求項12】
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると判定したことに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、複数の切り抜いた第2の画像のそれぞれに対して識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、をさらに含む、請求項11に記載の方法。
【請求項13】
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、をさらに含む、請求項12に記載の方法。
【請求項14】
前記第1のアイテム及び前記第2のアイテムは同じアイテム識別子によって識別され、
前記第1のアイテム識別子及び前記第2のアイテム識別子は前記同じアイテム識別子の2つのインスタンスである、請求項8に記載の方法。
【請求項15】
命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令が1つ又は複数のプロセッサによって実行されると、該1つ又は複数のプロセッサに、
プラットフォームでの第1のトリガーイベントを検出することであって、該第1のトリガーイベントは、前記プラットフォーム上の第1のアイテムの配置に対応する、こと、
前記第1のトリガーイベントの検出に応じて、複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第1のアイテムの複数の第1の画像を取り込むこと、
前記複数の第1の画像に基づいて、前記第1のアイテムに関連付けられた第1のアイテム識別子を識別すること、
前記第1の画像で取り込んだ前記第1のアイテムに前記第1のアイテム識別子を割り当てること、
前記プラットフォームでの第2のトリガーイベントを検出することであって、前記第2のトリガーイベントは、前記プラットフォーム上の第2のアイテムの配置に対応する、こと、
前記第2のトリガーイベントの検出に応じて、前記複数のカメラのうちの2つ以上のカメラを使用して、前記プラットフォーム上の前記第2のアイテムの複数の第2の画像を取り込むこと、
複数の切り抜き画像を生成することであって、各切り抜き画像は、対応する第2の画像に関連付けられ、且つ該対応する第2の画像を編集して前記第2のアイテムの少なくとも一部を分離することによって生成される、こと、
各切り抜き画像について、前記第2のアイテムの1つ又は複数の属性に基づいてアイテム識別子を識別すること、
メモリから、各アイテムのアイテム識別子同士の間の関連付けにアクセスすること、
前記第1のアイテムの前記第1のアイテム識別子と第2のアイテム識別子との間の関連付けを特定すること、
前記識別したアイテム識別子のうちの少なくとも1つが第2のアイテム識別子であると検出すること、
前記識別したアイテム識別子のうちの少なくとも1つが前記第2のアイテム識別子であるとの検出に応じて、及び前記第1のアイテム識別子と前記第2のアイテム識別子との間の前記特定した関連付けに基づいて、前記第2のアイテム識別子を前記第2のアイテムに割り当てること、を行わせる、
非一時的なコンピュータ可読媒体。
【請求項16】
前記命令によって、前記1つ又は複数のプロセッサに、
それぞれの第2の画像について生成した各切り抜き画像について、
前記切り抜き画像を機械学習モデルに入力することであって、該機械学習モデルは、前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを出力するように構成される、こと、
前記切り抜き画像がアイテムの背面画像であるか、又はアイテムの前面画像であるかを示す前記出力を前記機械学習モデルから取得すること、及び
前記出力に基づいて、前記切り抜き画像を背面画像又は前面画像としてタグ付けすること、をさらに行わせ、
前記切り抜き画像のうちの2つ以上が前面画像としてタグ付けされる、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記命令によって、前記1つ又は複数のプロセッサに、エンコード化ベクトル・ライブラリをメモリに記憶させことをさらに行わせ
該エンコード化ベクトル・ライブラリは複数のエンコード化ベクトルを含み、各エンコード化ベクトルは、特定のアイテムの1つ又は複数の属性を記述し、且つ前記特定のアイテムのアイテム識別子に関連付けられており、
各切り抜き画像の前記アイテム識別子を識別することは、
前記切り抜き画像の第1のエンコード化ベクトルを生成することであって、該第1のエンコード化ベクトルは、前記切り抜き画像に基づいて、前記第1のアイテムの1つ又は複数の属性を記述する、こと、
前記第1のエンコード化ベクトルを、前記エンコード化ベクトル・ライブラリ内で前記エンコード化ベクトルと比較すること、
前記エンコード化ベクトル・ライブラリから、前記第1のエンコード化ベクトルに最もよく一致する第2のエンコード化ベクトルを選択することであって、数値類似値が、前記第1のエンコード化ベクトルと前記選択した第2のエンコード化ベクトルとの間の類似度を示す、こと、及び、
前記エンコード化ベクトル・ライブラリ内で、前記第2のエンコード化ベクトルに関連付けられた前記アイテム識別子を識別すること、を含む、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記命令によって、前記1つ又は複数のプロセッサに、複数の前記切り取られた第2の画像が前面画像としてタグ付けされると決定することをさらに行わせる、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記命令によって、前記1つ又は複数のプロセッサに、
前記複数の切り抜いた第2の画像が前面画像としてタグ付けされると決定することに応じて、類似値が閾値類似値以上であることに基づいて、複数のアイテム識別子から、前記複数の切り抜いた第2の画像のそれぞれについて識別した第1セットのアイテム識別子を決定すること、及び
前記複数の切り抜いた第2の画像の大部分について、前記第1セットのアイテム識別子から同じアイテム識別子が識別されなかったと決定すること、をさらに行わせる、請求項18に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記命令によって、前記1つ又は複数のプロセッサに、
前記複数の切り抜いた第2の画像の前記大部分について、前記第1セットのアイテム識別子からの前記同じアイテム識別子が識別されなかったと決定したことに応じて、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの最も高い類似値に基づいて、前記第1セットから、第1の切り抜いた第2の画像について識別した第3のアイテム識別子を決定すること、
前記第1セットの前記アイテム識別子に対応する前記類似値のうちの2番目に高い類似値に基づいて、前記第1セットから、第2の切り抜いた第2の画像について識別した第4のアイテム識別子を決定すること、及び
前記最も高い類似値と前記2番目に高い類似値との間の差が閾値差未満であると決定すること、をさらに行わせる、請求項19に記載の非一時的なコンピュータ可読媒体。
【外国語明細書】