(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-02
(54)【発明の名称】ディジタル画像処理を使用するディスプレイラックのためのアイテム位置追跡
(51)【国際特許分類】
G06T 7/00 20170101AFI20240925BHJP
【FI】
G06T7/00 350B
G06T7/00 600
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515410
(86)(22)【出願日】2022-09-08
(85)【翻訳文提出日】2024-04-26
(86)【国際出願番号】 US2022076085
(87)【国際公開番号】W WO2023039455
(87)【国際公開日】2023-03-16
(32)【優先日】2021-09-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520068870
【氏名又は名称】セブン-イレブン インコーポレイテッド
【氏名又は名称原語表記】7-Eleven, Inc.
【住所又は居所原語表記】3200 Hackberry Road, Irving TX 75063 US
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】クリシュナムルティ,サイレシュ,ブハラスワーユ
(72)【発明者】
【氏名】ダタール,スメダー,ヴィラス
(72)【発明者】
【氏名】タクルデサイ,シャンタヌ,ヤドゥナス
(72)【発明者】
【氏名】マウン,クリスタル
(72)【発明者】
【氏名】ジョシ,モヒット,サティシュ
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096CA04
5L096DA02
5L096FA16
5L096HA05
5L096HA11
5L096KA04
(57)【要約】
デバイスは、ラックのためのラック識別子を受信するように構成され、そのラックは、アイテムを保持するように構成される。そのデバイスは、さらに、そのラックと関連するマスターテンプレートを識別するように構成される。そのデバイスは、さらに、そのラックにある複数のアイテムの画像を受信し、そして、それらの画像を組み合わせて、そのラックの合成画像にする、ように構成される。そのデバイスは、さらに、合成画像の中のそのラックにある複数の棚を識別し、そして、そのラックにあるアイテムに対応する境界ボックスを生成する、ように構成される。そのデバイスは、さらに、アイテム識別子及びアイテムの位置と各々の境界ボックスとを関連させるように構成される。そのデバイスは、さらに、マスターテンプレートからのラックポジションと各々の境界ボックスについてのアイテムの位置との比較に基づいて、ラック分析メッセージを生成し、そして、そのラック分析メッセージを出力する、ように構成される。
【特許請求の範囲】
【請求項1】
画像処理デバイスであって、当該画像処理デバイスは、
ラックと関連するマスターテンプレートを格納するように動作可能であるメモリであって、
前記マスターテンプレートは、複数のラックポジションを識別し、前記複数のラックポジションの各々は、前記ラックの棚及び前記棚におけるポジションを識別し、
各々のラックポジションは、アイテムと関連する、
メモリと、
前記メモリに動作可能に結合されるプロセッサであって、前記プロセッサは、
ラック識別子を受信し、前記ラック識別子は、複数のアイテムを保持するように構成されるラックを識別し、
前記ラック識別子に基づいて、前記ラックと関連する前記マスターテンプレートを識別し、
前記ラックにある前記複数のアイテムの画像のセットを受信し、
画像の前記セットを組み合わせて、合成画像にし、
複数の境界ボックスを生成し、各々の境界ボックスは、前記合成画像の中の前記ラックにあるアイテムに対応し、
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させ、
前記合成画像の中の前記ラックにある複数の棚を識別し、
アイテムの位置と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させ、各々のアイテムの位置は、前記ラックにおける前記複数の棚のうちの棚及び前記棚におけるポジションを識別し、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較し、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置との前記比較に基づいて、ラック分析メッセージを生成し、前記ラック分析メッセージは、前記複数のアイテムが前記ラックにおいて正しい位置に存在するか否かを示し、
前記ラック分析メッセージを出力する、
ように構成される、プロセッサと、
を含む、
デバイス。
【請求項2】
前記合成画像の中の前記ラックにある前記複数の棚を識別することは、
前記ラックにある前記複数の棚に位置する基準マーカを識別することと、
前記複数の棚のうちの各々の棚について、前記合成画像の中のピクセルの範囲を識別することと、
を含む、請求項1に記載のデバイス。
【請求項3】
前記合成画像の中の前記ラックにある前記複数の棚を識別することは、
前記合成画像の中の前記複数のアイテムのうちの各々のアイテムについて、前記合成画像の中でのピクセル位置を決定することであって、前記ピクセル位置は、前記合成画像の中のピクセル行の値及びピクセル列の値を識別する、ことと、
前記複数のアイテムについてのピクセル行の値に基づいて、複数のクラスタを識別することと、
棚と前記複数のクラスタのうちの各々のクラスタとを関連させることと、
を含む、請求項1に記載のデバイス。
【請求項4】
前記複数の境界ボックスを生成することは、
前記複数の境界ボックスのうちの第1の境界ボックスと前記複数の境界ボックスのうちの第2の境界ボックスとの間の重複率を決定することと、
前記重複率があらかじめ決定されているしきい値よりも大きいということを決定することと、
前記重複率が前記あらかじめ決定されているしきい値よりも大きいということを決定することに応答して、前記第1の境界ボックス又は前記第2の境界ボックスのうちの1つを取り除くことと、
を含む、請求項1に記載のデバイス。
【請求項5】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させることは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出することと、
機械学習モデルに前記合成画像の前記一部を入力することであって、前記機械学習モデルは、前記合成画像の前記一部の中に存在する第1のアイテムの特徴に基づいてアイテム識別子を出力するように構成される、ことと、
前記機械学習モデルに前記合成画像の前記一部を入力することに応答して、前記第1のアイテムのための第1のアイテム識別子を受信することと、
前記第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させることと、を含む、請求項1に記載のデバイス。
【請求項6】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させることは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出することと、
アイテムの複数の画像と前記合成画像の前記一部とを比較することと、
アイテムの前記複数の画像のうちで前記合成画像の前記一部と少なくとも部分的に一致する第1の画像を識別することと、
前記第1の画像に対応する第1のアイテム識別子を識別することと、
第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させることと、
を含む、請求項1に記載のデバイス。
【請求項7】
前記ラック分析メッセージを生成することは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別することと、
前記マスターテンプレートからの前記第1のラックポジションと関連する第1のアイテムを識別することと、
前記第1のアイテム及び前記マスターテンプレートからの前記第1のラックポジションを識別する前記ラック分析メッセージを生成することと、
を含む、請求項1に記載のデバイス。
【請求項8】
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較することは、
前記複数の棚のうちの第1の棚を選択することと、
前記第1の棚と関連するアイテム識別子のセットを識別することと、
アイテム識別子の前記セットのうちの各々のアイテム識別子に英数字を割り当てることと、
前記英数字を組み合わせて、前記第1の棚のための第1の語を形成することと、
前記第1の棚に対応する前記マスターテンプレートからの第2の語を識別することと、
前記第2の語と前記第1の語とを比較することと、
を含む、請求項1に記載のデバイス。
【請求項9】
前記ラック分析メッセージを生成することは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別することと、
前記不一致を解決するための推奨事項を含む前記ラック分析メッセージを生成することと、
を含む、請求項1に記載のデバイス。
【請求項10】
アイテム位置追跡方法であって、当該アイテム位置追跡方法は、
ラック識別子を受信するステップであって、前記ラック識別子は、複数のアイテムを保持するように構成されるラックを識別する、ステップと、
前記ラック識別子に基づいて、前記ラックと関連するマスターテンプレートを識別するステップであって、
前記マスターテンプレートは、複数のラックポジションを識別し、前記複数のラックポジションの各々は、前記ラックの棚及び前記棚におけるポジションを識別し、
各々のラックポジションは、アイテムと関連する、
ステップと、
前記ラックにある前記複数のアイテムの画像のセットを受信するステップと、
画像の前記セットを組み合わせて、合成画像にするステップと、
複数の境界ボックスを生成するステップであって、各々の境界ボックスは、前記合成画像の中の前記ラックにあるアイテムに対応する、ステップと、
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させるステップと、
前記合成画像の中の前記ラックにある複数の棚を識別するステップと、
アイテムの位置と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させるステップであって、各々のアイテムの位置は、前記ラックにおける前記複数の棚のうちの棚及び前記棚におけるポジションを識別する、ステップと、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較するステップと、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置との前記比較に基づいて、ラック分析メッセージを生成するステップであって、前記ラック分析メッセージは、前記複数のアイテムが前記ラックにおいて正しい位置に存在するか否かを示す、ステップと、
前記ラック分析メッセージを出力するステップと、を含む、
方法。
【請求項11】
前記合成画像の中の前記ラックにある前記複数の棚を識別するステップは、
前記ラックにある前記複数の棚に位置する基準マーカを識別するステップと、
前記複数の棚のうちの各々の棚について、前記合成画像の中のピクセルの範囲を識別するステップと、
を含む、請求項10に記載の方法。
【請求項12】
前記合成画像の中の前記ラックにある前記複数の棚を識別するステップは、
前記合成画像の中の前記複数のアイテムのうちの各々のアイテムについて、前記合成画像の中でのピクセル位置を決定するステップであって、前記ピクセル位置は、前記合成画像の中のピクセル行の値及びピクセル列の値を識別する、ステップと、
前記複数のアイテムについてのピクセル行の値に基づいて、複数のクラスタを識別するステップと、
棚と前記複数のクラスタのうちの各々のクラスタとを関連させるステップと、
を含む、請求項10に記載の方法。
【請求項13】
前記複数の境界ボックスを生成するステップは、
前記複数の境界ボックスのうちの第1の境界ボックスと前記複数の境界ボックスのうちの第2の境界ボックスとの間の重複率を決定するステップと、
前記重複率があらかじめ決定されているしきい値よりも大きいということを決定するステップと、
前記重複率が前記あらかじめ決定されているしきい値よりも大きいということを決定することに応答して、前記第1の境界ボックス又は前記第2の境界ボックスのうちの1つを取り除くステップと、
を含む、請求項10に記載の方法。
【請求項14】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させるステップは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出するステップと、
機械学習モデルに前記合成画像の前記一部を入力するステップであって、前記機械学習モデルは、前記合成画像の前記一部の中に存在する第1のアイテムの特徴に基づいてアイテム識別子を出力するように構成される、ステップと、
前記機械学習モデルに前記合成画像の前記一部を入力することに応答して、前記第1のアイテムのための第1のアイテム識別子を受信するステップと、
前記第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させるステップと、を含む、請求項10に記載の方法。
【請求項15】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させるステップは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出するステップと、
アイテムの複数の画像と前記合成画像の前記一部とを比較するステップと、
アイテムの前記複数の画像のうちで前記合成画像の前記一部と少なくとも部分的に一致する第1の画像を識別するステップと、
前記第1の画像に対応する第1のアイテム識別子を識別するステップと、
第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させるステップと、
を含む、請求項10に記載の方法。
【請求項16】
前記ラック分析メッセージを生成するステップは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別するステップと、
前記マスターテンプレートからの前記第1のラックポジションと関連する第1のアイテムを識別するステップと、
前記第1のアイテム及び前記マスターテンプレートからの前記第1のラックポジションを識別する前記ラック分析メッセージを生成するステップと、
を含む、請求項10に記載の方法。
【請求項17】
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較するステップは、
前記複数の棚のうちの第1の棚を選択するステップと、
前記第1の棚と関連するアイテム識別子のセットを識別するステップと、
アイテム識別子の前記セットのうちの各々のアイテム識別子に英数字を割り当てるステップと、
前記英数字を組み合わせて、前記第1の棚のための第1の語を形成するステップと、
前記第1の棚に対応する前記マスターテンプレートからの第2の語を識別するステップと、
前記第2の語と前記第1の語とを比較するステップと、
を含む、請求項10に記載の方法。
【請求項18】
前記ラック分析メッセージを生成するステップは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別するステップと、
前記不一致を解決するための推奨事項を含む前記ラック分析メッセージを生成するステップと、
を含む、請求項10に記載の方法。
【請求項19】
非一時的なコンピュータ読み取り可能な記憶媒体であって、命令を格納し、前記命令は、プロセッサによって実行されるときに、前記プロセッサが、
ラック識別子を受信し、前記ラック識別子は、複数のアイテムを保持するように構成されるラックを識別し、
前記ラック識別子に基づいて、前記ラックと関連するマスターテンプレートを識別し、
前記マスターテンプレートは、複数のラックポジションを識別し、前記複数のラックポジションの各々は、前記ラックの棚及び前記棚におけるポジションを識別し、
各々のラックポジションは、アイテムと関連し、
前記ラックにある前記複数のアイテムの画像のセットを受信し、
画像の前記セットを組み合わせて、合成画像にし、
複数の境界ボックスを生成し、各々の境界ボックスは、前記合成画像の中の前記ラックにあるアイテムに対応し、
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させ、
前記合成画像の中の前記ラックにある複数の棚を識別し、
アイテムの位置と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させ、各々のアイテムの位置は、前記ラックにおける前記複数の棚のうちの棚及び前記棚におけるポジションを識別し、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較し、
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置との前記比較に基づいて、ラック分析メッセージを生成し、前記ラック分析メッセージは、前記複数のアイテムが前記ラックにおいて正しい位置に存在するか否かを示し、そして、
前記ラック分析メッセージを出力する、
ようにさせる、
非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項20】
前記合成画像の中の前記ラックにある前記複数の棚を識別することは、
前記ラックにある前記複数の棚に位置する基準マーカを識別することと、
前記複数の棚のうちの各々の棚について、前記合成画像の中のピクセルの範囲を識別することと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項21】
前記合成画像の中の前記ラックにある前記複数の棚を識別することは、
前記合成画像の中の前記複数のアイテムのうちの各々のアイテムについて、前記合成画像の中でのピクセル位置を決定することであって、前記ピクセル位置は、前記合成画像の中のピクセル行の値及びピクセル列の値を識別する、ことと、
前記複数のアイテムについてのピクセル行の値に基づいて、複数のクラスタを識別することと、
棚と前記複数のクラスタのうちの各々のクラスタとを関連させることと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項22】
前記複数の境界ボックスを生成することは、
前記複数の境界ボックスのうちの第1の境界ボックスと前記複数の境界ボックスのうちの第2の境界ボックスとの間の重複率を決定することと、
前記重複率があらかじめ決定されているしきい値よりも大きいということを決定することと、
前記重複率が前記あらかじめ決定されているしきい値よりも大きいということを決定することに応答して、前記第1の境界ボックス又は前記第2の境界ボックスのうちの1つを取り除くことと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させることは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出することと、
機械学習モデルに前記合成画像の前記一部を入力することであって、前記機械学習モデルは、前記合成画像の前記一部の中に存在する第1のアイテムの特徴に基づいてアイテム識別子を出力するように構成される、ことと、
前記機械学習モデルに前記合成画像の前記一部を入力することに応答して、前記第1のアイテムのための第1のアイテム識別子を受信することと、
前記第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させることと、を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項24】
アイテム識別子と前記複数の境界ボックスのうちの各々の境界ボックスとを関連させることは、
前記複数の境界ボックスのうちの第1の境界ボックスの中の前記合成画像の一部を抽出することと、
アイテムの複数の画像と前記合成画像の前記一部とを比較することと、
アイテムの前記複数の画像のうちで前記合成画像の前記一部と少なくとも部分的に一致する第1の画像を識別することと、
前記第1の画像に対応する第1のアイテム識別子を識別することと、
第1のアイテムのための前記第1のアイテム識別子と前記第1の境界ボックスとを関連させることと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項25】
前記ラック分析メッセージを生成することは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別することと、
前記マスターテンプレートからの前記第1のラックポジションと関連する第1のアイテムを識別することと、
前記第1のアイテム及び前記マスターテンプレートからの前記第1のラックポジションを識別する前記ラック分析メッセージを生成することと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項26】
前記マスターテンプレートからの前記複数のラックポジションと各々の境界ボックスについての前記アイテムの位置とを比較することは、
前記複数の棚のうちの第1の棚を選択することと、
前記第1の棚と関連するアイテム識別子のセットを識別することと、
アイテム識別子の前記セットのうちの各々のアイテム識別子に英数字を割り当てることと、
前記英数字を組み合わせて、前記第1の棚のための第1の語を形成することと、
前記第1の棚に対応する前記マスターテンプレートからの第2の語を識別することと、
前記第2の語と前記第1の語とを比較することと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項27】
前記ラック分析メッセージを生成することは、
第1のアイテムの位置と前記マスターテンプレートからの第1のラックポジションとの間の不一致を識別することと、
前記不一致を解決するための推奨事項を含む前記ラック分析メッセージを生成することと、
を含む、請求項19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般的に、ディジタル画像処理(digital image processing)に関し、より具体的には、ディジタル画像処理を使用するディスプレイラックのためのアイテム位置追跡(item location tracking)に関する。
【背景技術】
【0002】
空間の中の対象の識別及び追跡(Identifying and tracking objects)は、いくつかの技術的課題をもたらす。ユーザがそのラックの完全な画像を取り込む(capture a complete image)ことができないときに、ディスプレイラックにある複数のアイテムの複数の位置(locations)の追跡及び決定は、ある1つの技術的課題をもたらす。例えば、そのラックは、ユーザが単一の画像の中にラック全体を取り込むことを可能としない位置にある場合がある。この例では、そのユーザは、異なるポジション(positions)からそのラックの複数の画像を取り込むことを余儀なくされる場合がある。既存のシステムは、この状況においては、他の画像のアイテムと識別されているアイテムとを関連させることができない。この問題は、単一の画像の中にそのラックを取り込むことができないときに、既存のシステムがラック全体を分析することを不可能にする。他の例では、ユーザは、そのラックからある程度離れて立つことによって、ラック全体の画像を取り込むことが可能となる場合がある。ところが、この場合には、そのユーザとそのラックとの間の距離が原因となり、その画像の中のアイテムが小さすぎて、既存の画像処理技術を使用して識別できなくなる場合がある。少数のピクセルを使用してアイテムを識別することを試みると、有意な時間を必要とし、その有意な時間は、このプロセスがリアルタイムアプリケーションと互換性がないということを意味する。加えて、このプロセスは、不正確な結果及び処理リソースの浪費につながる場合がある。
【発明の概要】
【0003】
この出願の中で開示されているシステムは、画像処理技術の組み合わせを使用して、あるディスプレイラックに配置されている複数のアイテムの位置を識別し及び追跡することによって、上記で説明されているそれらの複数の技術的問題に対する技術的な解決方法を提供する。その開示されているシステムは、いくつかの実際的な適用及び技術的利点を提供し、それらの実際的な適用及び技術的利点は、そのラックの複数の画像からラックの合成画像(composite image)を生成し、そして、その次に、その合成画像を分析して、それらのアイテムがラックにおいて正しい位置に存在するか否かを決定するプロセスを含む。前に説明しているように、完全なラックの画像を取得することは不可能であることが多い。このプロセスは、コンピューティングデバイスがあるラックの複数の画像を使用してそのラックにある複数のアイテムを分析することを可能とすることによって、実用的な適用を提供する。このプロセスは、そのシステムがそのラックの複数の異なるポジション(different portions)から複数のアイテムを分析して、そのラックにある複数のアイテムのすべての完全な分析を実行することを可能とする。それらの実用的な適用は、アイテムを識別するシステムの能力を改善するのみならず、基礎となるネットワーク及びそのネットワークの中のデバイスを改善する。例えば、この開示されているプロセスは、システムがあるラックにあるアイテムを識別するのにかかる時間を減少させることによって、そのシステムがより多くのユーザにサービスを提供することを可能とする。言い換えると、このプロセスは、他のプロセスに利用可能であるハードウェアリソースの数を増加させるとともに、そのシステムのスループットを増加させる追加的なハードウェアリソースを必要とせずに、ハードウェアの利用率を改善する。追加的に、それらの技術的な改善は、本明細書の中で説明されているアイテム追跡機能のスケーリングを可能とする。
【0004】
ある1つの実施形態において、アイテム追跡システム(item tracking system)は、デバイスを含み、そのデバイスは、複数のアイテムを保持する(hold items)ように構成されるあるラックのためのラック識別子(rack identifier)を受信するように構成される。そのデバイスは、さらに、そのラックと関連するマスターテンプレート(master template)を識別するように構成される。そのマスターテンプレートは、そのラックに配置されている複数のアイテムの指定されているポジション(designated position)に関する情報を含む。そのデバイスは、さらに、そのラックにある複数のアイテムの複数の画像を受信し、そして、それらの複数の画像を組み合わせて、そのラックの合成画像(composite image)を生成する、ように構成される。そのデバイスは、さらに、その合成画像の中のそのラックにある複数の棚(shelves)を識別し、そして、そのラックにあるある1つのアイテムに対応する複数の境界ボックス(bounding boxes)を生成する、ように構成される。そのデバイスは、さらに、アイテム識別子(an item identifier)及びアイテムの位置(an item location)と各々の境界ボックスとを関連させる(associate)ように構成される。そのデバイスは、さらに、各々の境界ボックスについてのアイテムの位置(item locations)及びマスターテンプレートからのラックポジション(rack positions)の比較に基づいて、ラック分析メッセージ(rack analysis message)を生成し、そして、そのラック分析メッセージを出力する、ように構成される。
【0005】
本開示の複数の特定の実施形態は、それらの利点のうちの一部を含んでもよく、すべてを含んでもよく、又は、それらの利点を全く含まなくてもよい。それらの利点及び他の特徴は、複数の添付の図面及び特許請求の範囲に関連する以下の詳細な説明からより明確に理解されるであろう。
【図面の簡単な説明】
【0006】
この開示をより完全に理解するために、複数の添付の図面及び詳細な説明と併せて、以下の簡単な説明を参照し、それらの複数の添付の図面及び詳細な説明においては、同様の参照番号は、同様の部分を表す。
【0007】
【
図1】ディジタル画像処理を使用するように構成されるアイテム追跡システム(item tracking system)のある1つの実施形態の概略的な図である。
【
図2】アイテム追跡システムのためのアイテム位置追跡プロセス(item location tracking process)のある1つの実施形態のフローチャートである。
【
図3A】ある1つのラックにあるアイテムの合成画像(composite image)のある1つの例である。
【
図3B】ある1つのラックの合成画像からの境界ボックス(bounding box)の中のアイテムのある1つの例である。
【
図3C】そのラックにある複数のアイテムのための重複する境界ボックス(overlapping bounding boxes)のある1つの例である。
【
図4】ラックの棚を識別する基準マーカ(reference markers)を有するラックの合成画像のある1つの例である。
【
図5】ある1つのラックにある複数のアイテムについてのピクセル位置(pixels locations)のクラスターのある1つの例である。
【
図6】ある1つのラックのためのマスターテンプレート(master template)におけるアイテムの位置とラックポジションとの比較のある1つの例である。
【
図7】アイテム追跡システムのためのアイテム位置追跡プロセスを使用するように構成される画像処理デバイスのある1つの実施形態である。
【発明を実施するための形態】
【0008】
図1は、アイテム追跡システム(item tracking system)100のある1つの実施形態の概略的な図であり、そのアイテム追跡システム100は、ディジタル画像処理を使用して、空間128の中の複数の対象(objects)を追跡するように構成される。その空間128は、(例えば、アイテム陳列台(item display racks)等の)1つ又は複数のラック302を含む領域である。各々のラック302は、複数のアイテム308を保持し(hold)及び陳列する(display)ように構成される1つ又は複数の棚(shelves)310を含む。ラック302及び棚310のある1つの例は、
図3Aに示されている。引き続き
図3Aを参照すると、アイテム追跡システム100は、一般的に、ラック302の複数の画像304からラック302の合成画像(composite image)306を生成し、そして、その合成画像306を分析して、それらの複数のアイテム308がそのラック302において正しい位置(their correct locations on the rack 302)に存在するか否かを決定するように構成される。このプロセスは、画像処理デバイス102がラック302の複数の画像304を使用してラック302にある複数のアイテム308を分析することを可能とすることによって、実用的な適用を提供する。このプロセスは、アイテム追跡システム100が、ラック302の複数の異なる部分からの複数のアイテム308を分析して、そのラック302にある複数のアイテム308のすべての完全な分析を実行することを可能とする。
【0009】
図1に戻ると、ある1つの実施形態において、空間128は、購入可能である複数のアイテム308を含む店舗である。この例では、その店舗は、コンビニエンスストア又は食料品店であってもよい。他の例では、その店舗は、物理的な建物でなくてもよく、買い物客が買い物をすることが可能である物理的な空間又は環境であってもよい。例えば、その店舗は、空港における持ち帰り用食料品売り場、オフィスビルの中のキオスク、公園における屋外市場等であってもよい。本開示の中では店舗の例を使用しているが、本開示は、アイテム追跡システム100が、(例えば、部屋、オフィス、屋外スタンド、モール、スーパーマーケット、コンビニエンスストア、ポップアップストア、倉庫、保管センター、遊園地、空港、オフィスビル等の)あらゆるタイプの物理的空間の中に設置され、そして、それらの物理的空間の中で使用されてもよいということを意図している。一般的に、アイテム追跡システム100(又はその構成要素)は、あらゆる適切な目的のために、これらの空間128の中の対象のポジション(positions)を追跡するのに使用される。
【0010】
ある1つの実施形態において、アイテム追跡システム100は、画像処理デバイス102及び1つ又は複数のユーザデバイス104を含み、それらの画像処理デバイス102及び1つ又は複数のユーザデバイス104は、ネットワーク106を介して互いに信号により通信する。そのネットワーク106は、任意の適切なタイプの無線ネットワーク及び/又は有線ネットワークであってもよく、それらの無線ネットワーク及び/又は有線ネットワークは、これらには限定されないが、インターネットのすべて又は一部、イントラネット、プライベートネットワーク、パブリックネットワーク、ピアツーピアネットワーク、公衆交換電話ネットワーク、セルラーネットワーク、ローカルエリアネットワーク(LAN)、大都市圏ネットワーク(MAN)、パーソナルエリアネットワーク(PAN)、ワイドエリアネットワーク(WAN)、及び衛星ネットワークを含む。そのネットワーク106は、当業者が理解するであろう任意の適切なタイプの通信プロトコルをサポートするように構成されてもよい。
【0011】
ユーザデバイス
【0012】
ユーザデバイス104の例は、これらには限定されないが、スマートフォン、タブレット、ラップトップ、コンピュータ、又は任意の他の適切なタイプのデバイスを含む。各々のユーザデバイス104は、画像処理デバイス(image processing device)102に画像処理要求(image processing request)116を送信して、
図3Aに図示されているラック302に配置されているアイテム308の分析を要求するように構成される。画像処理要求116は、ラック302のためのラック識別子(rack identifier)118及びラック302の少なくとも一部の複数の画像304を含む。そのラック識別子118は、名称、アドレス、英数字値(alphanumerical value)、又はラック302を一意に識別する任意の他の適切なタイプの識別子であってもよい。ユーザデバイス104は、任意の適切なタイプのメッセージング技術又はプロトコルを使用して、画像処理デバイス102に画像処理要求116を送信するように構成されてもよい。例えば、ユーザデバイス104は、アプリケーション又はウェブブラウザを使用して、画像処理デバイス102に画像処理要求116を送信するように構成されてもよい。ユーザデバイス104は、さらに、画像処理デバイス102からのラック分析メッセージ(rack analysis message)120を出力し又は表示するように構成される。ラック分析メッセージ120は、提供されている画像304の中のアイテム308の位置と、ラック302と関連するマスターテンプレート(master template)114の中のアイテム308の位置との間に不一致(mismatch)が存在するか否かを示す。ユーザデバイス104は、(例えば、ディスプレイ又はタッチスクリーン等の)グラフィカルユーザインターフェイス(graphical user interface)を含んでもよく、そのグラフィカルユーザインターフェイスは、ユーザにラック分析メッセージ120からの結果を表示するように構成される。
【0013】
画像処理デバイス
【0014】
画像処理デバイス(image processing device)102の例は、これらには限定されないが、サーバ、コンピュータ、又は任意の他の適切なタイプのネットワークデバイスを含む。ある1つの実施形態において、画像処理デバイス102は、画像処理エンジン(image processing engine)108及びメモリ110を含む。画像処理デバイス102のハードウェア構成に関する追加的な詳細は、
図7の中で説明されている。メモリ110は、アイテム情報(item information)112、マスターテンプレート(master templates)114、機械学習モデル(machine learning models)122、及び/又は任意の他の適切なタイプのデータを格納するように構成される。
【0015】
ある1つの実施形態において、画像処理エンジン108は、一般的に、ある1つのラック302の複数の画像304を処理して、そのラック302に配置されている複数のアイテム308の複数の位置(the locations of items 308)を決定するように構成される。画像処理エンジン108は、さらに、そのラック302と関連するマスターテンプレート114とそのラック302におけるアイテム308の位置とを比較するように構成される。各々のマスターテンプレート114は、1つ又は複数のラック302と関連し、ラック302に配置されているアイテム308のポジション(the position of items 308)に関する情報を含む。マスターテンプレート114は、ラック302の棚(shelf)310に対応するラックポジション(rack positions)及びアイテム308が配置されている棚310における位置を識別する。各々のラックポジションは、所定のラックポジションにおけるアイテム308を識別するアイテム識別子(item identifier)又はある特定のアイテム308と関連する。画像処理エンジン108は、さらに、その画像304の中のアイテム308の位置がマスターテンプレート114の中のアイテム308の位置と一致するか否かを決定するように構成される。画像処理エンジン108は、さらに、その比較に基づいて、ラック分析メッセージ(rack analysis message)120を出力するように構成される。そのラック分析メッセージ120は、その画像304の中のアイテム308の位置とマスターテンプレート114の中のアイテム308の位置との間の不一致が存在するか否かを示す。その画像304の中のアイテム308の位置とマスターテンプレート114の中のアイテム308の位置との間の不一致は、複数のアイテム308のうちの1つ又は複数がそのラック302において誤った位置に存在する(one or more items 308 are in the wrong location on the rack 302)ということを示す。その画像304の中のアイテム308の位置とマスターテンプレート114の中のアイテム308の位置との間の一致は、複数のアイテム308のすべてがラック302において正しい位置に存在する(all of the items 308 are in their correct location on the rack 302)ということを示す。動作の際の画像処理エンジン108のある1つの例は、
図2の中で以下でより詳細に説明される。
【0016】
機械学習モデル122の例は、これらには限定されないが、多層パーセプトロン(multi-layer perceptron)、回帰ニューラルネットワーク(recurrent neural network (RNN))、RNN長い短期記憶(RNN long short-term memory (LSTM))、畳み込みニューラルネットワーク(convolution neural network (CNN))、変換器(transformer)、又は任意の他の適切なタイプのニューラルネットワークモデルを含む。ある1つの実施形態において、機械学習モデル122は、一般的に、入力として、(例えば、合成画像(composite image)306等の)画像の少なくとも一部を受信し、そして、提供されている画像304に基づいて、アイテム識別子を出力する、ように構成される。機械学習モデル122は、教師あり学習トレーニングデータ(supervised learning training data)を使用してトレーニングされ、その教師あり学習トレーニングデータは、それらの複数のアイテム308の(例えば、アイテム識別子(item identifiers)等の)対応するラベルを有する複数のアイテム308の複数の異なる画像を含む。トレーニングプロセスの際に、機械学習モデル122は、重み係数値(weights values)及びバイアス値(bias values)を決定し、それらの重み係数値及びバイアス値は、その機械学習モデル122が複数のアイテム308の複数の画像を複数の異なるアイテム識別子へとマッピングすることを可能とする。このプロセスを経て、機械学習モデル122は、画像の中のアイテム308を識別することが可能となる。画像処理エンジン108は、当業者が理解するであろう任意の適切な技術を使用して機械学習モデル122をトレーニングするように構成されてもよい。複数の実施形態のうちのいくつかにおいて、機械学習モデル122は、画像処理デバイス102の外部にあるデバイスによって格納されてもよく及び/又はトレーニングされてもよい。
【0017】
アイテム情報112は、一般的に、複数のアイテム308のうちの1つ又は複数に関連する情報を含む。アイテム情報112の例は、これらには限定されないが、価格、重量、バーコード、アイテム識別子(item identifiers)、アイテム番号(item numbers)、アイテム308の特徴(features of items 308)、アイテム308の画像、又はアイテム308と関連する任意の他の適切な情報を含む。アイテム308の特徴の例は、これらには限定されないが、テキスト、ロゴ、ブランディング(branding)、色、バーコード、パターン、形状、又はアイテム308の任意の他の適切なタイプの属性を含む。
【0018】
アイテム位置追跡プロセス
【0019】
図2は、アイテム追跡システム100のためのアイテム位置追跡プロセス200のある1つの実施形態のフローチャートである。そのアイテム追跡システム100は、プロセス200を使用して、いずれかのアイテム308がラック302において誤った位置に配置されているか否かを検出してもよい。プロセス200は、さまざまなディジタル画像処理技術を使用して、ラック302にあるアイテム308を検査するのに必要である時間を減少させる。このプロセスは、一般的に、(1) ラック302の複数の異なる部分の複数の画像304を使用して、そのラック302の画像(すなわち、合成画像306)を生成するステップと、(2) ラック302の画像の中に位置しているアイテム308を識別するステップと、(3) その画像の中のラック302に対する複数のアイテム308の複数の位置を決定するステップと、(4) ラック302と関連するマスターテンプレート114が定義するアイテム308についての位置とその画像の中のアイテム308の位置とを比較するステップと、(5) その比較に基づいて、それらのアイテム308がその画像の中の正しい位置に存在するか否かを示すラック分析メッセージ120を出力するステップと、を含む。このプロセスは、アイテム追跡システム100が、ラック302を分析するのにかかる時間を減少させることを可能とし、それにより、他のラック302を分析するために処理することが可能であるデータの量を増加させる。
【0020】
合成画像の生成
【0021】
ステップ202において、画像処理デバイス102は、ユーザデバイス104から画像処理要求(image processing request)116を受信し、その画像処理要求116は、ラック302のためのラック識別子118及びそのラック302の画像304を含む。ある1つの非限定的な例として、ユーザは、ユーザデバイス104を使用し、そして、ラック302の複数の画像304を取り込んで(capture)、ラック302にあるアイテム308が正しい位置に存在するか否かを決定するための処理のために、画像処理デバイス102に送信してもよい。各々の画像304は、ラック302の少なくとも一部を含む。ある1つの例として
図3Aを参照すると、ユーザデバイス104は、ラック302の上側の部分(an upper portion of the rack 302)の第1の画像304A及びラック302の下側の部分(a lower portion of the rack 302)の第2の画像304Bを取り込んでもよい。この例では、第1の画像304A及び第2の画像304Bは、少なくとも部分的に重複する。この場合には、ラック302の共通部分は、第1の画像304A及び第2の画像304Bの双方の中に存在する。他の例では、第1の画像304A及び第2の画像304Bは、重複しなくてもよい。他の例では、ユーザデバイス104は、3枚、4枚、又は任意の他の適切な数だけラック302の画像304を取り込んでもよい。
【0022】
ラック302の画像304を取り込んだ後に、ユーザデバイス104は、画像処理要求116を生成し、その画像処理要求116は、ラック識別子118及びラック302の画像304を含む。ラック識別子118は、そのラック302を一意に識別する名称、アドレス、数値、英数字、又は任意の他の適切なタイプの識別子であってもよい。ユーザデバイス104は、画像処理デバイス102に画像処理要求116を送信する。ユーザデバイス104は、任意の適切なタイプのメッセージング技術又はプロトコルを使用して、画像処理デバイス102に画像処理要求116を送信してもよい。例えば、ユーザデバイス104は、アプリケーション又はウェブブラウザを使用して、画像処理デバイス102に画像処理要求116を送信してもよい。
【0023】
画像処理要求116を受信した後に、画像処理デバイス102は、画像処理要求116からラック識別子118及び画像304を取得する。ある1つの実施形態において、画像304は、順番に配置される。例えば、画像304は、上から下へと、下から上へと、或いは、横から横へとラック302を取り込む(capture)ように配列されてもよい。複数の例のうちのいくつかにおいて、画像304は、画像304が配列される順序を示すファイル名を有してもよい。ステップ204において、画像処理デバイス102は、画像304のセットに基づいて、ラック302の合成画像306を生成する。画像処理デバイス102は、画像304の受信しているセットのうちの複数の画像304をマージし(merging)又はつなぎ合わせる(stitching together)ことによって、合成画像(composite image)306を生成する。ユーザデバイス104からのそれらの複数の画像304は、ラック302の一部分及びそのラック302に位置する複数のアイテム308のサブセットのみを取り込むことが可能である場合がある。合成画像306は、それらの画像304のすべてからの情報を組み合わせて、ラック302に位置する複数のアイテム308のすべてを取り込んで単一の画像を形成する。再び
図3Aの中の例を参照すると、ユーザデバイス104は、ラック302の上側の部分(an upper portion of the rack 302)の第1の画像304A及びラック302の下側の部分(a lower portion of the rack 302)の第2の画像304Bを取り込んでもよい。この例では、画像処理デバイス104は、第1の画像304A及び第2の画像304Bを組み合わせて、合成画像306を形成する。他の例では、画像304は、ラック302の複数の異なる部分を取り込んでもよい。例えば、画像304は、上から下へと、下から上へと、複数の象限の中で、或いは、横から横へとラック302を取り込んでもよい。この場合には、画像処理デバイス102は、それらの画像304が取り込むラック302の複数の部分に基づいて、それらの画像304をソートし(sort)、そして、その次に、それらの画像304を組み合わせて、合成画像306を形成するであろう。
【0024】
画像処理デバイス102は、任意の適切な技術又はアルゴリズムを使用して、画像304をつなぎ合わせ(stitch together images 304)てもよい。例えば、画像処理デバイス102は、最初に、画像304の中に存在する共通の特徴のセットを識別してもよい。共通の特徴の例は、これらには限定されないが、テキスト、コーナー、エッジ、パターン、又は任意の他の適切なタイプの特徴を含む。2つの画像304の間の共通の特徴を識別した後に、画像処理デバイス102は、その次に、共通の画像平面にそれらの2つの画像304を変換する(converting the two images 304 into a common image plane)ことによって、それらの2つの画像304を登録する(registers)。例えば、画像処理デバイス104は、複数の識別されている共通の特徴に基づいてそれらの画像304を整列させ(aligning)そして重ね合わせる(overlapping)ことによって、それらの画像304を登録してもよい(may register)。それらの2つの画像304を登録した後に、画像処理デバイス102は、それらの2つの画像304をマージして(merges the two images 304)、合成画像306又は合成画像306の一部を形成する。画像処理デバイス102は、完全な合成画像306を形成するまで、複数の画像304を登録しそしてマージするこのプロセスを反復する。合成画像306を生成する一方で、画像処理デバイス102は、任意の適切なワーピング画像処理技術(warping image processing techniques)又は回転画像処理技術(rotating image processing techniques)を適用して、複数の画像304の間の射影ひずみ(perspective distortion)及び/又は回転差(rotational differences)を説明して(account for)もよい。
【0025】
合成画像の中の複数の対象の識別
【0026】
合成画像306を生成した後に、画像処理デバイス102は、その合成画像306を処理して、その合成画像306の中のラック302に位置する複数のアイテム308を識別する。この処理は、一般的に、境界ボックス(bounding boxes)312を使用して、アイテム308を含む合成画像306の複数の部分を識別し、そして、その次に、各々の境界ボックス312の中に存在するアイテム308を識別することを伴う。ステップ206のところで
図2に戻ると、画像処理デバイス102は、合成画像306の中の各々のアイテム308について境界ボックス312を生成する。ある1つの例として、画像処理デバイス102は、対象検出(object detection)及び/又は光学文字認識(optical character recognition (OCR))を使用して、テキスト、ロゴ、ブランディング、色、バーコード、又は合成画像306の中のアイテム308を識別するのに使用されてもよいアイテム308の任意の他の特徴を識別してもよい。
図3Bは、合成画像306の一部のある1つの例を示している。この例では、画像処理デバイス102は、合成画像306のこの部分を処理して、アイテム308が存在するか否かを決定する。画像処理デバイス102は、合成画像306のその部分の中のピクセルを処理して、アイテム308のテキスト316、色、バーコード314、パターン、又は任意の他の特性を識別してもよい。画像処理デバイス102は、その次に、複数の異なるアイテム308に対応する特徴のセットとアイテム308の識別されている特徴とを比較してもよい。例えば、画像処理デバイス102は、合成画像306から(製品名等の)テキスト316を抽出してもよく、そして、複数の異なるアイテム308と関連するテキストのセットとテキスト316とを比較してもよい。他の例として、画像処理デバイス102は、合成画像306の中の支配的な色(dominant color)を決定してもよく、複数の異なるアイテム308と関連する色のセットと支配的な色とを比較してもよい。他の例として、画像処理デバイス102は、合成画像306の中のバーコード314を識別することが可能であり、複数の異なるアイテム308と関連するバーコードのセットとバーコード314とを比較してもよい。他の例として、画像処理デバイス102は、合成画像306の中のロゴ又はパターンを識別してもよく、複数の異なるアイテム308と関連するロゴ又はパターンのセットとそれらの識別されているロゴ又はパターンとを比較してもよい。他の例では、画像処理デバイス102は、合成画像306から任意の他の適切なタイプの特徴又はそれらの特徴の組み合わせを識別し、そして、複数の異なるアイテム308と関連する特徴とそれらの識別されている特徴とを比較してもよい。
【0027】
図2に戻ると、複数の異なるアイテム308と関連する特徴のセットと合成画像306からの識別されている特徴とを比較した後に、画像処理デバイス102は、その次に、一致を発見しているか否かを決定する。識別されている特徴の少なくとも意味のある部分(at least a meaningful portion of the identified features)が、ある1つのアイテム308に対応する特徴と一致するときに、画像処理デバイス102は、一致を発見しているということを決定してもよい。合成画像306の中の特徴の意味のある部分(meaningful portion)がある1つのアイテム308のそれらの特徴と一致するということを決定することに応答して、画像処理デバイス102は、識別されているアイテム308に対応する合成画像306の中のピクセルを含む境界ボックス(bounding box)312を生成してもよい。画像処理デバイス102は、このプロセスを繰り返して、合成画像306の中のラック302にある複数のアイテム308のすべてを検出することが可能である。他の例では、画像処理デバイス102は、境界ボックス312を生成するために任意の他の適切な技術を使用してもよい。
【0028】
複数の実施形態のうちのいくつかにおいて、合成画像306は、ラック302にあるアイテム308の斜視図を有してもよく、合成画像306は、互いの前に配置されているアイテム308のうちのいくつかが並んで見えるようにさせる(cause some items 308 that are placed in front of each other to appear side by side)ことが可能である。ある1つの例として
図3Cを参照すると、第1のアイテム308Cは、そのラック302にある第2のアイテム308Dの前に配置される。この例では、画像処理デバイス102は、第2のアイテム308Dが棚310にある第1のアイテム308Cの隣に配置されていると誤って識別する(incorrectly identify the second item 308D as being placed next to the first item 308C on the shelf 310)場合がある。この問題点は、後に、画像処理デバイス102がマスターテンプレート114の中のアイテム308の順序とそのラック302の各々の棚310にあるアイテム308の順序とを比較するときに複数の問題を引き起こすであろう。この問題点を修正するために、画像処理デバイス102は、境界ボックス312が他の隣接する境界ボックス312と重複するときに、境界ボックス312を取り除いてもよい。画像処理デバイス102は、最初に、第1の境界ボックス312Aと第2の境界ボックス312Bとの間の重複領域(overlap region)320を識別してもよい。画像処理デバイス102は、その次に、その重複領域320に対応する重複率(overlap percentage)を決定する。画像処理デバイス102は、その次に、あらかじめ決定されているしきい値とその重複率とを比較する。そのあらかじめ決定されているしきい値は、25%、30%、50%、又は任意の他の適切なパーセンテイジ値に設定されていてもよい。重複率があらかじめ決定されているしきい値よりも小さいときに、画像処理デバイス102は、第1の境界ボックス312及び第2の境界ボックス312の双方を保持してもよい。重複率があらかじめ決定されているしきい値以上であるときに、画像処理デバイス102は、第1の境界ボックス312又は第2の境界ボックス312のうちのいずれかを取り除いてもよい。このプロセスは、画像処理デバイス102がラック302にあるアイテム308の順序を誤って識別するであろう可能性を減少させる。
【0029】
ステップ208のところで
図2に戻ると、画像処理デバイス102は、ある1つのアイテム308のためのアイテム識別子と各々の境界ボックス312とを関連させる。ここでは、画像処理デバイス102は、境界ボックス312の中のアイテム308の特徴に基づいて、各々の境界ボックス312の中にあるアイテム308を識別する。画像処理デバイス102は、境界ボックス312の中の合成画像306の一部を抽出することによって、このプロセスを開始する。例えば、画像処理デバイス102は、境界ボックス312の外側にある合成画像306の一部を切り取ってもよい(may crop)。
図3Bは、アイテム308を含む合成画像306の切り取られている部分(cropped portion)のある1つの例を示す。このプロセスは、画像処理デバイス102が、その境界ボックス312の中にあるアイテム308の新たな画像318を生成することを可能とする。画像処理デバイス102は、その次に、新たな画像318を処理して、境界ボックス312の中のアイテム308を識別する。
【0030】
ある1つの例として、機械学習モデル122は、CNNであってもよい。この例では、機械学習モデル122は、入力層、出力層、及び1つ又は複数の隠れ層(hidden layers)を含む。それらの隠れ層は、少なくとも1つの畳み込み層(convolution layer)を含む。例えば、機械学習モデル122は、入力層、畳み込み層、プーリング層(pooling layer)、畳み込み層、プーリング層、1つ又は複数の完全に接続されている層、出力層の一連の層を含んでもよい。機械学習モデル122の各々の畳み込み層は、畳み込みカーネル(convolution kernels)のセットを使用して、画像を形成するピクセルから特徴を抽出する。複数の特定の実施形態において、機械学習モデル122の畳み込み層は、周波数領域の中で実装され、畳み込みプロセスは、離散フーリエ変換を使用して達成される。このことは、画像分類の目的のための機械学習モデル122のトレーニング及び使用と関連する計算時間を減少させるのに望ましい場合がある。例えば、周波数領域へと変換することによって、高速フーリエ変換アルゴリズム(FFT)を実装して、畳み込みと関連する離散フーリエ変換を実行してもよい。FFTアルゴリズムを単独で使用すると、(空間領域の中で畳み込みカーネルを適用する場合と比較して)単一のCPUによって実装されるときに計算時間を大幅に減少させるのみならず、1つ又は複数のグラフィックス処理ユニット(GPU)を使用してそのFFTアルゴリズムを並列化することが可能であり、それにより、計算時間をさらに減少させる。周波数領域への変換は、また、(例えば、画像の中のアイテム308の存在に基づいて機械学習モデル122が行う画像のアイテム識別子への割り当ては、その画像の中のアイテム308のポジション及び/又は向きに依存するべきではない(should not depend on the position and/or orientation of the item 308 within the image)、といったように)機械学習モデル122が並進不変であり且つ回転不変である(the machine learning model 122 is translation and rotation invariant)ことを保証するために望ましい場合がある。
【0031】
他の例として、機械学習モデル122は、教師あり学習アルゴリズム(supervised learning algorithm)であってもよい。したがって、複数の特定の実施形態において、画像処理デバイス102は、機械学習モデル122をトレーニングして、あらかじめ決定されているアイテム識別子のセットのいずれかに入力画像を割り当てるように構成される。画像処理デバイス102は、任意の適切な方式によって機械学習モデル122をトレーニングしてもよい。例えば、複数の特定の実施形態において、画像処理デバイス102は、入力画像に添付されている(例えば、アイテム識別子等の)ラベルのセットを含む(例えば、画像等の)トレーニングデータを機械学習モデル122に提供することによって、機械学習モデル122をトレーニングする。他の例として、機械学習モデル122は、教師なし学習アルゴリズム(unsupervised learning algorithm)であってもよい。そのような実施形態において、画像処理デバイス102は、画像の集合体を機械学習モデル122に提供し、そして、画像から抽出されている共通の特徴に基づいて、画像処理デバイス102が識別するアイテム識別子によってそれらの画像を分類するように機械学習モデル122に指示することによって、機械学習モデル122をトレーニングするように構成される。画像処理デバイス102は、境界ボックス312の中のアイテム308の画像を機械学習モデル122に入力する前であれば、いつでも、機械学習モデル122をトレーニングすることが可能である。
【0032】
機械学習モデル122をトレーニングした後に、画像処理デバイス102は、境界ボックス312の中のアイテム308の画像318を機械学習モデル122に入力してもよい。例えば、画像処理デバイス102は、境界ボックス312の中のアイテム308に対応する合成画像306の(例えば、画像318等の)一部を抽出してもよい。画像処理デバイス102は、その次に、機械学習モデル122のための入力画像として、合成画像306の抽出されている一部を使用してもよい。機械学習モデル122への画像の入力に応答して、画像処理デバイス102は、機械学習モデル122からアイテム308のためのアイテム識別子を受信する。アイテム識別子は、画像の中で識別されているアイテム308に対応する。アイテム識別子の例は、これらには限定されないが、アイテム名、バーコード、アイテム番号、シリアル番号、又はアイテム308を一意に識別する任意の他の適切なタイプの識別子を含む。
【0033】
複数の実施形態のうちのいくつかにおいて、画像処理デバイス102は、機械学習モデル122を使用することなく、1つ又は複数の画像処理技術を使用して、境界ボックス312の中のアイテム308を識別してもよい。
図3Aに示されている例に戻ると、画像処理デバイス102は、対象検出及び/又はOCRを使用して、テキスト316、ロゴ、ブランディング、色、バーコード314、又は、アイテム308を識別するのに使用されてもよいアイテム308の任意の他の特徴を識別してもよい。この場合には、画像処理デバイス102は、合成画像306の中のピクセルを処理して、テキスト316、色、バーコード314、パターン、又は、アイテム308の任意の他の特性を識別してもよい。画像処理デバイス102は、その次に、複数の異なるアイテム308に対応する特徴の画像のセットとそのアイテム308の識別されている特徴とを比較してもよい。例えば、画像処理デバイス102は、画像から(例えば、製品名等の)テキスト316を抽出してもよく、そして、複数の異なるアイテム308と関連するテキストの画像のセットとテキスト316とを比較してもよい。他の例として、画像処理デバイス102は、画像の中の支配的な色(dominant color)を決定してもよく、そして、複数の異なるアイテム308と関連する色の画像のセットとその支配的な色とを比較してもよい。他の例として、画像処理デバイス102は、画像の中のバーコード314を識別してもよく、そして、複数の異なるアイテム308と関連するバーコードの画像のセットとそのバーコード314とを比較してもよい。他の例として、画像処理デバイス102は、画像の中のロゴ又はパターンを識別してもよく、そして、複数の異なるアイテム308と関連するロゴ又はパターンの画像のセットとそれらの識別されているロゴ又はパターンとを比較してもよい。他の例では、画像処理デバイス102は、任意の他の適切なタイプの特徴又はそれらの特徴の組み合わせを識別し、そして、複数の異なるアイテム308と関連する特徴とそれらの識別されている特徴とを比較してもよい。
【0034】
複数の異なるアイテム308と関連する特徴のセットと画像からの識別されている特徴とを比較した後に、画像処理デバイス102は、その次に、一致を発見しているか否かを決定する。画像処理デバイス102は、識別されている特徴の少なくとも意味のある部分(meaningful portion)が、ある1つのアイテム308に対応する特徴と一致するときに、一致を発見しているということを決定してもよい。合成画像306の中の特徴の意味のある部分がアイテム308の特徴と一致するということを決定することに応答して、画像処理デバイス102は、一致するアイテム308に対応するアイテム識別子を出力してもよい。他の実施形態において、画像処理デバイス102は、機械学習モデル122と関連して1つ又は複数の画像処理技術を使用して、上記で説明されている技術の任意の組合せを使用してその画像の中のアイテム308を識別してもよい。
【0035】
合成画像の中のアイテムの位置の決定
【0036】
合成画像306の中のラック302にあるアイテム308を識別した後に、画像処理デバイス102は、その次に、そのアイテム308がラック302に対してどこに位置しているかを決定する(determines where the items 308 are located with respect to rack 302)。このプロセスは、一般的に、アイテム308がいずれの棚310に位置しているか(which shelf 310 an item 308 is located on)及び各々の棚310にあるアイテム308の順序(the order of the items 308 that are on each shelf 310)を決定することを伴う。この情報は、後に、マスターテンプレート114の中のそれらのアイテム308の指定されている位置とアイテム308の位置とを比較して、それらのアイテム308が正しい位置に存在するか否かを決定するときに、画像処理デバイス102によって使用される。画像処理デバイス102は、最初に、棚310を識別して、いずれのアイテム308が各々の棚310に配置されているかを決定する(determine which items 308 are placed on each shelf 310)ことによって、このプロセスを開始する。ステップ210のところで
図2に戻ると、画像処理デバイス102は、合成画像306の中のラック302にある複数の棚310を識別する。ある1つの実施形態において、画像処理デバイス102は、合成画像306の中の棚310に位置しているか又はそれらの棚310の近くに位置している基準マーカ(reference markers)402を使用して、ラック302の棚310を識別するように構成される。基準マーカ402は、合成画像306の中で識別することが可能である任意の適切なタイプの対象である。基準マーカ402の例は、これらには限定されないが、テキストを有する(例えば、タグ又はラベル等の)対象、バーコードを有する対象、(クイックレスポンス(Quick Response (QR))コード又はArucoマーカ等の)グラフィカルコードを有する対象、或いは、識別子を有する任意の他の適切なタイプの対象を含む。ある1つの例として
図4を参照すると、ラック302は、各々の棚310に位置している基準マーカ402を含む。画像処理デバイス102は、任意の適切なタイプの対象又は特徴検出アルゴリズムを使用して、合成画像306の中の基準マーカ402を識別してもよい。この例では、画像処理デバイス102は、ラック302が5つの棚310を含むということを示す5つの基準マーカ402を検出する。
【0037】
合成画像306の中に存在する棚310の数を決定した後に、画像処理デバイス102は、また、各々の棚310に対応する合成画像306の中の(例えば、ピクセル行(pixel rows)等の)ピクセルの範囲404を識別してもよい。この場合には、画像処理デバイス102は、基準マーカ402を使用して、合成画像306の中の各々の棚310の始端(beginning)又は終端(end)を定めてもよい(demarcate)。
図4に示されている例では、基準マーカ402は、各々の棚310に対応するピクセル行の範囲404を識別するのに使用される。このプロセスは、画像処理デバイス102が、合成画像306を探索して(searching the composite image 306)、特定の棚310にあるアイテム308を識別するときに、探索空間(search space)を減少させることを可能とする。例えば、このプロセスは、画像処理デバイス102が、識別されているピクセルの範囲404を使用して、各々の棚310に対応する区分(sections)へと合成画像306を区分化する(segment)ことを可能とする。合成画像306の中のピクセルの範囲404に各々の棚310を関連させた後に、画像処理デバイス102は、その次に、ピクセルの範囲404とアイテム308と関連するピクセル値とを比較して、アイテム308がいずれの棚310に位置するか(which shelf 310 the item 308 is located on)を決定してもよい。
【0038】
他の実施形態において、画像処理デバイス102は、アイテムの位置に関する情報を使用して、棚310の位置を識別しそして決定してもよい。この場合には、画像処理デバイス102は、棚310に並べられているアイテム308が、合成画像306の中で同様のピクセル行の値(similar pixel row values)を有するであろうという事実を利用する。このことは、画像処理デバイス102が、同様のピクセル行の値のクラスタ(clusters of similar pixel row values)を識別することによって、ラック302の棚310を識別することが可能であるということを意味する。ある1つの例として
図5を参照すると、画像処理デバイス102は、ラック302にあるアイテム308の位置に基づいて、そのラック302にある棚310を識別するように構成される。この例では、画像処理デバイス102は、最初に、合成画像306の中の各々のアイテム308に対応する合成画像306の中のピクセル位置(pixel locations)502を決定してもよい。各々のピクセル位置502は、合成画像306の中でアイテム308が位置するピクセル行の値(pixel row value)及びピクセル列の値(pixel column value)に対応する。ある1つの実施形態において、画像処理デバイス102は、このプロセスのためにステップ206において以前に生成されている境界ボックス312を使用してもよい。この場合には、画像処理デバイス102は、各々の境界ボックス312についての中点(mid-point)又は中心(center)を発見する。画像処理デバイス102は、その次に、境界ボックス312についてのピクセル位置502として、各々の境界ボックス312についての中点を使用する。画像処理デバイス102は、その次に、ピクセル位置502を使用して、ラック302の棚310に対応するアイテム308のクラスタ504を識別する。ある1つの例として、画像処理デバイス102は、それらのアイテム308のピクセル行の値に基づいて、ピクセル位置502のクラスタを形成してもよい(may cluster the pixels locations 502)。この例では、画像処理デバイス102は、最初に、ピクセル位置502のピクセル列の値(pixel column value)を(例えば、0の値等の)共通の値に設定し、そして、その次に、ピクセル位置502のプロットを生成してもよい。このプロセスは、それらのピクセル行の値(pixel row values)に基づいて、ピクセル位置502をグループに分ける(groups the pixel locations 502)。このプロセスのある1つの例は、また、
図5に示されている。ピクセル位置502をプロットした後に、画像処理デバイス102は、その次に、ピクセル位置502のクラスタ504を識別してもよい。
図5に示されている例では、画像処理デバイス102は、5つのクラスタ504を識別する。各々のクラスタ504は、ラック302の棚310に対応するので、画像処理デバイス102は、ラック302の棚310のうちの1つと各々のクラスタ504とを関連させるであろう。このプロセスは、画像処理デバイス102が、アイテム308の位置に基づいて、合成画像306の中のラック302の中に存在する棚310の数を識別することを可能とする。このプロセスは、合成画像306の中に常に存在するとは限らないか又は合成画像306の中で常に視認可能であるとは限らない基準マーカ402等の追加的な情報に依存することなく、合成画像306の中の棚310を識別するための頑健な解決方法を提供する。
【0039】
合成画像306の中に存在する棚310の数を決定した後に、画像処理デバイス102は、また、各々の棚310に対応する合成画像306の中の(例えば、ピクセル行等の)ピクセルの範囲(ranges of pixels)404を識別してもよい。例えば、画像処理デバイス102は、クラスタ504についての平均のピクセル行の値(an average pixel row value)からあらかじめ決定されている数のピクセルの範囲の中にあるピクセル行の値の範囲404を識別してもよい。他の例では、画像処理デバイス102は、各々の棚310に対応する合成画像306の中のピクセル行の値の範囲404を識別するための任意の他の適切な技術を使用してもよい。繰り返しになるが、このプロセスは、画像処理デバイス102が、合成画像306を探索して(searching the composite image 306)、ある特定の棚310にあるアイテム308を識別するときに、探索空間を減少させることを可能とする。上記で説明されているように、このプロセスは、画像処理デバイス102が、識別されているピクセルの範囲404を使用して、各々の棚310に対応する区分へと合成画像306を区分化する(segment the composite image 306 into sections that correspond with each shelf 310)ことを可能とする。合成画像306の中のピクセルの範囲404と各々の棚310とを関連させた後に、画像処理デバイス102は、ピクセルの範囲404とアイテム308と関連するピクセル値とを比較して、いずれの棚310にアイテム308が位置するかを決定してもよい。
【0040】
合成画像306の中のラック302の棚310を識別した後に、画像処理デバイス102は、その次に、アイテム308が位置する棚310に基づいて、ラック302における位置(a location on the rack 302)と前に識別されているアイテム308の各々とを関連させる。ステップ212のところで
図2に戻ると、画像処理デバイス102は、そのラック302におけるアイテムの位置(an item location on the rack 302)と各々の境界ボックス312とを関連させる。アイテムの位置は、ラック302における棚310及び識別されている棚310におけるポジション(a position on the identified shelf 310)を識別する。例えば、棚310におけるポジションは、その棚310にある他のアイテム308に対するあるアイテム308の位置(the location of an item 308 with respect to the other items 308 on the shelf 310)を示してもよい。
図3Aの中の例に戻ると、各々のアイテム308は、ある棚310における8つのアイテムの位置322のうちの1つに置かれてもよい(may be positioned)。この例では、アイテム308Aは、第1の棚310Aにおける第1のアイテムの位置322Aに位置し(is located at)、アイテム308Bは、第1の棚310Aにおける第8のアイテムの位置322Bに位置する。他の例では、棚310は、他の適切な数のアイテムの位置322を有してもよい。
【0041】
ある1つの実施形態において、画像処理デバイス102は、最初に、いずれの境界ボックス312が各々の棚310と関連しているかを識別する。
図5に示されている例に戻ると、画像処理デバイス102は、各々の棚310について、いずれの境界ボックス312がピクセルの範囲404の中にあるピクセル値を有するかを識別してもよい。このプロセスは、境界ボックス312が関連している棚310に基づいて、境界ボックス312についてのクラスタを形成する(clusters the bounding boxes 312)。棚310に基づいて境界ボックス312についてのクラスタを形成した後に、画像処理デバイス102は、その次に、棚310における境界ボックス312の位置に基づいて、境界ボックス312をソートする。例えば、画像処理デバイス102は、境界ボックス312のピクセル列の値(pixel column values)に基づいて、境界ボックス312をソートしてもよい。この例では、ピクセル列の値が最も低い境界ボックス312は、棚310における最初のアイテムの位置322Aに存在する。ピクセル列の値が最も高い境界ボックス312は、その棚310における最後のアイテムの位置322Bに存在する。画像処理デバイス102は、その次に、その棚310について、残りの境界ボックス312をソートしてもよい。ピクセル列の値がより低い境界ボックス312は、その棚310における最初のアイテムの位置322Aにより近く、一方で、ピクセル列の値がより高い境界ボックス312は、その棚310における最後のアイテムの位置322Bにより近い。画像処理デバイス102は、各々の棚310についてこのプロセスを繰り返して、各々の棚310について境界ボックス312をソートしてもよい。境界ボックス312をソートした後に、画像処理デバイス102は、その次に、各々の境界ボックス312が関連している棚310を識別するアイテムの位置(an item location that identifies the shelf 310 it is associated with)及び同じ棚310にある他のアイテム308に対するその同じ棚310におけるその境界ボックス312の位置(its location on the shelf 310 with respect to the other items 308 on the same shelf 310)と各々の境界ボックス312とを関連させる。
【0042】
マスターテンプレートとアイテムの位置との比較
【0043】
合成画像306の中の複数の識別されているアイテム308のすべての位置を決定した後に、画像処理デバイス102は、その次に、そのラック302と関連するマスターテンプレート114の中で定義される指定されているアイテムの位置(the designated item locations)と決定されているアイテムの位置(the determined item locations)とを比較する。このプロセスは、画像処理デバイス102が、合成画像306の中のアイテム308が正しい位置に存在するか否かを決定することを可能とする。ステップ214のところで
図2に戻ると、画像処理デバイス102は、ラック302のためのマスターテンプレート114を識別する。ある1つの例として、画像処理デバイス102は、ステップ202において前に取得されているラック識別子(rack identifier)118を探索トークン(search token)として使用して、そのラック識別子118にリンクされているマスターテンプレート114を識別してもよい。そのマスターテンプレート114は、そのラック302に配置されているアイテム308のあらかじめ定義されている位置(predefined locations)に関する情報を含む。
【0044】
ステップ216において、画像処理デバイス102は、アイテムの位置(item locations)が、ラック302のためのマスターテンプレートからのラックポジション(rack positions)と一致するか否かを決定する。ここでは、画像処理デバイス102は、合成画像306の中でのアイテム308の位置(the location of items 308)とラック302のためのマスターテンプレート114の中で定義されているアイテム308の指定されている位置(designated locations)との間に何らかの不一致が存在するか否かを決定する。ある1つの実施形態において、マスターテンプレート114は、棚310ごとに編成され(organized by shelf 310)、且つ、棚310におけるそれらのポジションに基づいて順番にソートされている(sorted in order)アイテム識別子のリストを含んでいてもよい。この例では、画像処理デバイス102は、また、境界ボックス312のための決定されているアイテムの位置を棚310ごとに整理してもよく、且つ、合成画像306の中での棚310におけるそれらの境界ボックス312のポジションに基づいて順番に整理してもよい。画像処理デバイス102は、その次に、マスターテンプレート114の中でのアイテム308のラックポジションと境界ボックス312の決定されているアイテムの位置とを比較して、何らかの不一致があるか否かを決定する。
【0045】
他の実施形態において、画像処理デバイス102は、テキストベースの単語比較技術を活用して、マスターテンプレート114の中で定義される指定されているアイテムの位置(the designated item locations)と決定されているアイテムの位置(the determined item locations)とを比較することによって、比較プロセスを単純化してもよい。アイテム識別子は、変化する場合があり、スペル、命名規則、及び/又はフォーマットの不一致を有する場合がある。これらの差異は、マスターテンプレート114の中のアイテム308と合成画像306の中のアイテム308とを比較するときに、誤りにつながる場合がある。画像処理デバイス102は、未処理のアイテム識別子を互いに比較するのではなく、互いに比較することが可能である英数字語としてアイテム識別子を符号化してもよい。このプロセスは、また、画像処理デバイス102が、複数のアイテム308の間の不一致を修正するための推奨事項(recommendations)を決定することを可能とする。この機能は、以下でより詳細に説明される。この場合には、画像処理デバイス102は、マスターテンプレート114との比較を行う前に、最初に、各々の棚310にあるアイテム308のためのアイテム識別子を英数字語に変換する。ある1つの例として
図6を参照すると、画像処理デバイス102は、一意の英数字へと各々のアイテム識別子をマッピングする。例えば、画像処理デバイス102は、英数字へと複数の異なるアイテム識別子をマッピングするルックアップテーブルを使用してもよい。英数字として各々のアイテム識別子を符号化した後に、画像処理デバイス102は、その次に、決定されている英数字を使用して各々の棚310のための語を生成する。
図6に示されている例では、画像処理デバイス102は、第1の棚310Bのためのアイテム識別子を第1の語602(すなわち、"AABBC")へと変換し、第2の棚310Cのためのアイテム識別子を第2の語604(すなわち、"CCDEE")へと変換する。画像処理デバイス102は、ラック302にある棚310のすべてについてこのプロセスを反復してもよい。この例では、マスターテンプレート114は、また、複数の語を使用してアイテム308のラックポジションを識別するように構成されてもよい。この例では、マスターテンプレート114は、ラック302の第1の棚310Bに対応する第1の語606(すなわち、"AABBC")及びラック302の第2の棚310Cに対応する第2の語608(すなわち、"ACDEE")を含む。それらのアイテム識別子の双方は、語を使用して符号化されているので、画像処理デバイス102は、テキストベースの文字列比較を使用して、合成画像306からの各々の棚310のための語が、マスターテンプレート114からの棚310のための対応する語と一致するか否かを決定してもよい。
図6に示されている例では、画像処理デバイス102は、第1の棚310Bと関連する語が、マスターテンプレート114の中の第1の棚310Bのための対応する語と一致するということを決定する。これに対して、この例では、画像処理デバイス102は、また、第2の棚310Cと関連する語が、マスターテンプレート114の中の第2の棚310Cのための対応する語と一致しないということを決定する。棚310のための語とマスターテンプレート114の中の対応する語との間に不一致が存在するときに、画像処理デバイス102は、不一致がある英数字のポジション及びその英数字の値を識別してもよい。画像処理デバイス102は、その次に、その棚のための元のアイテム識別子へとその英数字を変換し直す。例えば、画像処理デバイス102は、ルックアップテーブルを再び使用して、その棚のための元のアイテム識別子へとその英数字を変換し直してもよい。このプロセスは、画像処理デバイス102が、テキストベースの文字列比較を使用して、いずれのアイテム308がラック302において誤った位置に存在するかを決定することを可能とする。
【0046】
複数の実施形態のうちのいくつかにおいて、画像処理デバイス102は、さらに、テキストベースの比較に基づいて、いずれかの検出されている不一致を修正するための推奨事項を提供するように構成されてもよい。例えば、画像処理デバイス102は、棚310と関連する語とマスターテンプレート114の中の棚310のための対応する語との間でレーベンシュタイン距離演算を実行してもよい。2つの語の間のレーベンシュタイン距離は、一方の語を他方の語へと変更するのに必要となる(例えば、挿入、削除、置換等の)単一文字編集の最小数である。このプロセスは、画像処理デバイス102が、アイテム308を追加することによって、アイテム308を取り除くことによって、又は、アイテム308を置換することによって、どのようにして不一致を解決することが可能であるかを識別すること及び複数の語の間の不一致の検出の双方を行うことを可能とする。他の例では、画像処理デバイス102は、任意の他の適切な単語比較技術を使用して、不一致を識別し及び/又はどのようにして不一致を解決するかを識別してもよい。
【0047】
図2に戻ると、画像処理デバイス102は、アイテムの位置がラック302のためのマスターテンプレート114からのラックポジションと一致するということを決定することに応答して、ステップ218に進む。この場合には、画像処理デバイス102は、アイテム308のすべてがそのラック302において正しい位置に存在するということを決定する。ステップ218において、画像処理デバイス102は、アイテム308がラック302において正しい位置に存在するということを示すラック分析メッセージ120を生成する。そのラック分析メッセージ120は、アイテム308のすべてがラック302において正しい位置に存在するということを示すテキストベースの確認メッセージ又はグラフィックスベースの確認メッセージを含んでもよい。
【0048】
ステップ216に戻ると、画像処理デバイス102は、アイテムの位置のうちの1つ又は複数がラック302のためのマスターテンプレート114からのラックポジションと一致しないということを決定することに応答して、ステップ220に進む。この場合には、画像処理デバイス102は、1つ又は複数のアイテム308がラック302において誤った位置に存在するということを決定する。ステップ220において、画像処理デバイス102は、1つ又は複数のアイテム308がそのラック302において誤った位置に存在するということを示すラック分析メッセージ120を生成する。ある1つの実施形態において、画像処理デバイス102は、合成画像306からの決定されているアイテムの位置とマスターテンプレート114からのラックポジションとの間の不一致を最初に識別することによって、ラック分析メッセージ120を生成してもよい。いずれかの不一致を識別した後に、画像処理デバイス102は、その次に、不一致と関連するアイテム308を識別する。画像処理デバイス102は、その次に、誤った位置に配置されているアイテム308を識別するアイテム識別子及び/又はラックポジション情報を含むラック分析メッセージ120を生成する。ある1つの例として、画像処理デバイス102は、アイテム識別子及びラックポジション情報を含むテキストベースのラック分析メッセージ120を生成してもよい。他の例として、画像処理デバイス102は、カラーオーバーレイ(colored overlays)を使用して、合成画像306との関連でアイテム識別子及びラックポジション情報を視覚的に示すグラフィックスベースのラック分析メッセージ120を生成してもよい。例えば、ラック分析メッセージ120は、正しい位置に存在するアイテム308を緑色の境界ボックス312に重ね、誤った位置に存在するアイテム308を赤色の境界ボックス312に重ねてもよい。他の例では、画像処理デバイス102は、任意の他の適切なタイプのフォーマット又は表現を使用してラック分析メッセージ120を生成して、アイテム識別子及びラックポジション情報を提供してもよい。複数の実施形態のうちのいくつかにおいて、生成されたラック分析メッセージ120は、前に決定されているいずれかの検出されている不一致を修正するための任意の推奨事項をさらに含む。
【0049】
ラック分析メッセージの出力
【0050】
合成画像306の中のアイテム308が正しい位置に存在するか否かを決定した後に、画像処理デバイス102は、ラック分析メッセージ120の中でユーザデバイス104に分析結果を出力するであろう。ステップ22において、画像処理デバイス102は、ラック分析メッセージ120を出力する。画像処理デバイス102は、任意の適切なメッセージング技術又はプロトコルを使用して、ユーザデバイス104にラック分析メッセージ120を送信してもよい。例えば、画像処理デバイス102は、アプリケーション又はウェブブラウザを使用して、ユーザデバイス104にラック分析メッセージ120を送信してもよい。ラック分析メッセージ120を受信した後に、ユーザデバイス104は、(例えば、ディスプレイ又はタッチスクリーン等の)グラフィカルユーザインターフェイスを使用して、ユーザにラック分析メッセージ120からの結果を表示してもよい。
【0051】
画像処理デバイスのためのハードウェア構成
【0052】
図7は、アイテム追跡システム100のための画像処理デバイス102のある1つの実施形態である。ある1つの例として、画像処理デバイス102は、コンピュータ又はサーバであってもよい。画像処理デバイス102は、プロセッサ702、メモリ110、及びネットワークインターフェイス704を含む。画像処理デバイス102は、示されているように、又は、任意の他の適切な構成で構成されてもよい。
【0053】
プロセッサ
【0054】
プロセッサ702は、メモリ110に動作可能に結合される1つ又は複数のプロセッサを含むハードウェアデバイスである。プロセッサ702は、これらには限定されないが、状態マシン、1つ又は複数の中央処理ユニット(CPU)チップ、論理ユニット、(例えば、マルチコアプロセッサ等の)コア、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又はディジタル信号プロセッサ(DSP)を含む任意の電子回路である。プロセッサ702は、プログラム可能な論理デバイス、マイクロコントローラ、マイクロプロセッサ、又は上記の構成要素の任意の適切な組み合わせであってもよい。プロセッサ702は、メモリ110及びネットワークインターフェイス704に通信可能に結合され、メモリ110及びネットワークインターフェイス704との間で信号により通信を行う。それらの1つ又は複数のプロセッサは、データを処理するように構成され、ハードウェア又はソフトウェアによって実装されてもよい。例えば、プロセッサ702は、8ビット、16ビット、32ビット、64ビット、又は任意の他の適切なアーキテクチャであってもよい。プロセッサ702は、算術及び論理演算を実行するための算術論理ユニット(ALU)、ALUに演算対象を供給しそしてALU演算の結果を格納するプロセッサレジスタ、及び、メモリから命令をフェッチし、ALU、レジスタ、及び他の構成要素の協調動作を指示することによってそれらのフェッチした命令を実行する制御ユニットを含んでもよい。
【0055】
1つ又は複数のプロセッサは、さまざまな命令を実装するように構成される。例えば、それらの1つ又は複数のプロセッサは、画像処理命令706を実行して、画像処理エンジン108を実装するように構成される。このように、プロセッサ702は、専用コンピュータであってもよく、その専用コンピュータは、本明細書において開示されている機能を実装するように設計される。ある1つの実施形態において、画像処理エンジン108は、論理ユニット、FPGA、ASIC、DSP、又は任意の他の適切なハードウェアを使用して実装される。画像処理エンジン108は、
図1乃至
図6において説明されているように操作するように構成される。例えば、画像処理エンジン108は、
図2において説明されているようにプロセス200のステップを実行するように構成されてもよい。
【0056】
メモリ
【0057】
メモリ110は、プロセッサ702によって実行されるときに、本明細書の中で説明されている1つ又は複数の機能を実装するように動作可能である任意の他のデータ、命令、論理、規則、又はコードとともに、
図1乃至
図6に関して上記で説明されている任意の情報を格納するように動作可能であるハードウェアデバイスである。メモリ110は、1つ又は複数のディスク、テープドライブ、又はソリッドステートドライブを含み、オーバーフローデータ記憶デバイスとして使用されて、そのようなプログラムが実行のために選択されるときにプログラムを格納し、そして、プログラムの実行の際に読み取られる命令及びデータを格納してもよい。メモリ110は、揮発性又は不揮発性であってもよく、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、ダイナミックランダムアクセスメモリ(DRAM)、及びスタティックランダムアクセスメモリ(SRAM)を含んでもよい。
【0058】
メモリ110は、画像処理命令706、アイテム情報112、マスターテンプレート114、機械学習モデル122、及び/又は任意の他のデータ又は命令を格納するように動作可能である。画像処理命令706は、画像処理エンジン108を実行するように動作可能である命令の任意の適切なセット、論理、規則、又はコードを含んでもよい。アイテム情報112、マスターテンプレート114、及び機械学習モデル122は、それぞれ、
図1乃至
図6において説明されているアイテム情報112、マスターテンプレート114、及び機械学習モデル122と同様に構成される。
【0059】
ネットワークインターフェイス
【0060】
ネットワークインターフェイス704は、有線通信及び/又は無線通信を可能とするように構成されるハードウェアデバイスである。ネットワークインターフェイス704は、ユーザデバイス104と他のデバイス、システム、又はドメインとの間でデータを通信するように構成される。例えば、ネットワークインターフェイス704は、NFCインターフェイス、ブルートゥース(登録商標)インターフェイス、Zigbeeインターフェイス、Z波インターフェイス、無線周波数識別(RFID)インターフェイス、WIFIインターフェイス、LANインターフェイス、WANインターフェイス、PANインターフェイス、モデム、スイッチ、又は、ルータを含んでもよい。プロセッサ702は、ネットワークインターフェイス704を使用してデータを送信し及び受信するように構成される。ネットワークインターフェイス704は、当業者が理解するであろう任意の適切なタイプの通信プロトコルを使用するように構成されてもよい。
【0061】
本開示においては複数の実施形態のうちのいくつかを提供してきたが、本開示の趣旨又は範囲から離れることなく、数多くの他の特定の形態で、開示されているシステム及び方法を具体化することが可能であるということを理解するべきである。これらの例は、例示的であり、限定的ではないと解釈されるべきであり、その意図は、本明細書の中で与えられている細部に限定されるという意図ではない。例えば、さまざまな要素又は構成要素は、他のシステムと組み合わせられ又は一体化されてもよく、或いは、特定の特徴を省略してもよく、又は、実装しなくてもよい。
【0062】
加えて、さまざまな実施形態の中で別々のものとして又は個別のものとして説明され及び図示されている技術、システム、サブシステム、及び方法は、本開示の範囲から離れることなく、他のシステム、モジュール、技術、又は方法と組み合わせられ又は一体化されてもよい。互いに結合されているか又は直接的に結合されているか又は互いに通信するとして示され又は説明されている他のアイテムは、電気的に、機械的に、又はその他のいずれであるかにかかわらず、何らかのインターフェイス、デバイス、又は中間構成要素を介して、間接的に結合され、又は、それらのインターフェイス、デバイス、又は中間構成要素を介して通信してもよい。改変、置換、及び変更の他の例は、当業者によって確認され、本明細書において開示されている趣旨及び範囲から離れることなく行われてもよい。
【0063】
特許庁及びこの出願に関して発行されるいずれかの特許のいずれかの読者が本明細書に添付されている特許請求の範囲を解釈するのを支援するために、特許出願人は、"のための手段"又は"のためのステップ"の語が特定の請求項において明示的に使用されていない限り、本明細書の出願日に存在するものであるとして、35 U.S.C.§112(f)を援用するということを意図していないということに留意する。
【国際調査報告】