(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-19
(54)【発明の名称】複数の光学パターンを追跡し、復号し、位置決めするための画像解析
(51)【国際特許分類】
G06T 7/70 20170101AFI20230512BHJP
G06K 7/14 20060101ALI20230512BHJP
G06T 7/73 20170101ALI20230512BHJP
G06V 10/42 20220101ALI20230512BHJP
H04N 23/60 20230101ALI20230512BHJP
【FI】
G06T7/70 A
G06K7/14 043
G06K7/14 047
G06K7/14 065
G06T7/73
G06V10/42
H04N23/60 500
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022559951
(86)(22)【出願日】2021-03-31
(85)【翻訳文提出日】2022-11-09
(86)【国際出願番号】 US2021025212
(87)【国際公開番号】W WO2021202762
(87)【国際公開日】2021-10-07
(32)【優先日】2020-04-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-04-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-07-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522385175
【氏名又は名称】スキャンディット エージー
(74)【代理人】
【識別番号】100137969
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】ブロック,マティアス
(72)【発明者】
【氏名】フロークマイヤー,クリスチャン
(72)【発明者】
【氏名】ネイター,ファビアン
(72)【発明者】
【氏名】ショーナー,ベルント
(72)【発明者】
【氏名】シェリー,ダニエル
(72)【発明者】
【氏名】ドメネク,ジョアン
(72)【発明者】
【氏名】トリス,アンドレア
(72)【発明者】
【氏名】サムロブ,ヴィタリ
【テーマコード(参考)】
5C122
5L096
【Fターム(参考)】
5C122DA09
5C122DA22
5C122EA65
5C122FA06
5C122FH10
5C122FH11
5C122FH14
5C122FH23
5C122HA35
5C122HA88
5C122HB01
5L096CA04
5L096CA24
5L096DA01
5L096FA23
5L096FA69
5L096GA30
5L096GA55
5L096JA11
(57)【要約】
画像解析は、バーコードなどの複数の光学パターンを追跡するために使用される。多くのアプリケーションがウェブベースになりつつある。しかしながら、ウェブベースのアプリケーションは、ネイティブアプリケーションよりも少ない計算リソースを有することができる。例えば、ネイティブアプリケーションを使用して、複数の画像からの復号バーコードに基づいてバーコードを追跡することができる。しかしながら、バーコードの復号は計算集約的であり、ウェブベースのプラットフォームに移動すると遅延を引き起こす可能性がある。バーコードを復号するために使用される計算リソースを削減するために、バーコードは、幾つかのフレームで追跡されて、バーコードを復号するために使用されるウェブベースのアプリケーションに関して周期的にのみ復号される。バーコードの位置は、デジタル棚を形成するために互いに対して追跡され得る。デジタル棚は、棚の状態を視覚化するために使用することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
光コードを追跡するためのシステムであって、
複数のフレームを取得するように構成される画像センサを有するカメラと、
1つ以上のプロセッサであって、
前記画像センサから前記複数のフレームを取得し、
前記複数のフレームがそれぞれコードの画像を含み、
前記複数のフレームが第1のフレームと第2のフレームとを含み、
前記第2のフレームが前記第1のフレームの後に取得され、
前記第1のフレーム内の前記コードを識別し、
前記第1のフレーム内の前記コードから特徴を抽出し、
前記コードの抽出された特徴に基づいてフィルタを作成し、
前記第2のフレームから特徴を抽出し、
前記フィルタと組み合わされる前記第2のフレームから抽出された特徴に基づいて応答マップを生成し、前記応答マップが、前記第2のフレーム内の前記コードの位置の確率を与え、
前記コードを復号することなく、前記応答マップに基づいて前記第2のフレーム内の前記コードの位置を確認する、
ように構成される、1つ以上のプロセッサと、
を備えるシステム。
【請求項2】
前記フィルタが相関フィルタである、請求項1に記載のシステム。
【請求項3】
前記コードが第1コードであり、
前記1つ以上のプロセッサは、前記第2のフレーム内の第2のコードを前記第2のコードを復号することなく識別するように構成される、
請求項1に記載のシステム。
【請求項4】
前記フィルタは、フーリエ変換を使用して前記コードの抽出された特徴を周波数空間に変換することによって作成され、
前記応答マップは、
前記フーリエ変換を用いて前記第2のフレームを周波数空間に変換して周波数画像を生成すること、及び
前記周波数画像を前記フィルタと畳み込むことによって生成される、請求項1に記載のシステム。
【請求項5】
光コードを追跡するための方法において、
画像センサから複数のフレームを取得するステップであって、
前記複数のフレームがそれぞれコードの画像を含み、
前記複数のフレームが第1のフレームと第2のフレームとを含み、
前記第2のフレームが前記第1のフレームの後に取得される、
ステップと、
前記第1のフレーム内の前記コードを識別するステップと、
前記第1のフレーム内の前記コードから特徴を抽出するステップと、
前記コードの抽出された特徴に基づいてフィルタを作成するステップと、
前記第2のフレームから特徴を抽出するステップと、
前記フィルタと組み合わされる前記第2のフレームから抽出された特徴に基づいて応答マップを生成するステップと、
前記コードを復号することなく、前記応答マップに基づいて前記第2のフレーム内の前記コードの位置を確認するステップと、
を含む方法。
【請求項6】
前記フィルタが相関フィルタである、請求項5に記載の方法。
【請求項7】
前記第1のフレームと前記第2のフレーム内の前記コードの前記位置とを識別することに基づいて前記第1のフレームから前記第2のフレームへの前記画像センサのホモグラフィ姿勢変化を計算するステップを更に含む、請求項5に記載の方法。
【請求項8】
前記複数のフレームが第3のフレームを含み、
前記第3のフレームが前記第2のフレームの後に取得され、
前記方法は、前記第2のフレーム内の前記コードの前記位置に基づいて前記コードの前記画像を含む前記第3のフレームのサブエリアを予測するステップを含む、
請求項5に記載の方法。
【請求項9】
前記第3のフレームからの前記コードの前記画像を使用して前記コードを復号するステップを更に含む、請求項8に記載の方法。
【請求項10】
前記複数のフレームが第4のフレームを含み、
前記第4のフレームが前記第3のフレームの後に取得され、
前記コードが第1のコードであり、
前記方法は、
第2のコードを復号することなく、前記第3のフレーム内の前記第2のコードの位置を識別するステップと、
前記第4のフレーム内の前記第2のコードを復号するステップと、
を含む、請求項9に記載の方法。
【請求項11】
前記第2のフレームを、ディスプレイ上に、前記コードの前記位置を示す前記ディスプレイ上のグラフィックと共に提示するステップを更に含む、請求項5に記載の方法。
【請求項12】
前記コードが第1のコードであり、
前記方法は、前記第2のフレーム内の第2のコードを前記第2のコードを復号することなく識別するステップを更に含む、
請求項5に記載の方法。
【請求項13】
前記複数のフレームは、1秒以内に撮影された10個のフレームを含む、請求項5に記載の方法。
【請求項14】
前記フィルタは、フーリエ変換を使用して前記コードの抽出された特徴を周波数空間に変換することによって作成され、
前記応答マップは、
前記フーリエ変換を用いて前記第2のフレームを周波数空間に変換して周波数画像を生成すること、及び
前記周波数画像を前記フィルタと畳み込むことによって生成される、請求項5に記載の方法。
【請求項15】
前記コードが機械可読バーコードを含む、請求項5に記載の方法。
【請求項16】
実行されるときに、コードを追跡するための以下のステップ、すなわち、
画像センサから複数のフレームを取得するステップであって、
前記複数のフレームがそれぞれ前記コードの画像を含み、
前記複数のフレームが第1のフレームと第2のフレームとを含み、
前記第2のフレームが前記第1のフレームの後に取得される、
ステップと、
前記第1のフレーム内の前記コードを識別するステップと、
前記第1のフレーム内の前記コードから特徴を抽出するステップと、
前記コードの抽出された特徴に基づいてフィルタを作成するステップと、
前記第2のフレームから特徴を抽出するステップと、
前記フィルタと組み合わされる前記第2のフレームから抽出された特徴に基づいて応答マップを生成するステップと、
前記コードを復号することなく、前記応答マップに基づいて前記第2のフレーム内の前記コードの位置を確認するステップ、
を1つ以上のプロセッサに行わせる命令を含むメモリデバイス。
【請求項17】
前記複数のフレームが第3のフレームを含み、
前記第3のフレームが前記第2のフレームの後に取得され、
前記命令は、前記第2のフレーム内の前記コードの前記位置に基づいて前記コードの前記画像を含む前記第3のフレームのサブエリアを前記1つ以上のプロセッサに予測させるように更に構成される、
請求項16に記載のメモリデバイス。
【請求項18】
前記命令は、前記第3のフレームからの前記コードの前記画像を使用して前記コードを前記1つ以上プロセッサに復号させるように構成される、請求項17に記載のメモリデバイス。
【請求項19】
前記コードが第1のコードであり、
前記複数の画像が第2のコードを含み、
前記命令は、前記第1のコードに関する情報に基づいて前記第1のコードと前記第2のコードとの間の相対位置を前記1つ以上のプロセッサに計算させるように構成される、
請求項17に記載のメモリデバイス。
【請求項20】
前記命令は、ブラウザベースのアプリケーションの一部として実行されるように構成される、請求項16に記載のメモリデバイス。
【請求項21】
光学パターンを復号するための装置において、
カメラであって、
画像センサと、
前記画像センサに光を集束するように構成される、広角レンズである、レンズと、
を備えるカメラと、
1つ以上のプロセッサであって、
前記カメラを用いて複数の画像を取得し、
前記レンズが、前記複数の画像の取得中に固定焦点に設定され、
前記複数の画像のそれぞれにおける露光時間が500分の1秒以下であり、
前記複数の画像が前記カメラのフレームレートで取得され、
前記フレームレートが30フレーム/秒以上であり、
前記複数の画像を解析して、前記複数の画像内の光学パターンを検出し、
前記光学パターンを復号してデータペイロードを取得し、
前記データペイロードを前記装置のメモリデバイスに保存する、
ように構成される1つ以上のプロセッサと、
を備える装置。
【請求項22】
前記レンズが単焦点レンズである、請求項21に記載の装置。
【請求項23】
トーチを更に備え、前記1つ以上のプロセッサは、前記複数の画像の前記取得中に前記トーチを作動させるように構成される、請求項21に記載の装置。
【請求項24】
前記トーチは、ユーザが指で前記装置のスクリーンにタッチしている間にオンになり、前記ユーザが前記スクリーンから指を離すことに基づいてオフになるように構成される、請求項23に記載の装置。
【請求項25】
前記トーチは、前記複数の画像の前記取得中に一定の値を有する、請求項23に記載の装置。
【請求項26】
前記複数の画像は、ユーザが指で前記装置のスクリーンにタッチしている間に取得されるように構成される、請求項21に記載の装置。
【請求項27】
前記カメラは、前記ユーザが前記スクリーンから指を離すことに基づいて前記複数の画像の取得を停止する、請求項26に記載の装置。
【請求項28】
前記カメラが100度以上の画角を有する、請求項21に記載の装置。
【請求項29】
光学パターンを復号するための方法において、
カメラを用いて複数の画像を取得するステップであって、
前記カメラのレンズが、前記複数の画像の取得中に固定焦点に設定され、
前記カメラの前記レンズが広角レンズであり、
前記複数の画像のそれぞれにおける露光時間が500分の1秒以下であり、
前記複数の画像が前記カメラのフレームレートで取得され、
前記フレームレートが30フレーム/秒以上である、
ステップと、
前記複数の画像を解析して、前記複数の画像内の光学パターンを検出するステップと、
データペイロードを取得するために前記光学パターンを復号するステップと、
前記データペイロードをメモリデバイスに保存するステップと、
を含む方法。
【請求項30】
前記複数の画像は、ユーザが指で装置のスクリーンにタッチしている間に取得され、前記装置が前記カメラを備える、請求項29に記載の方法。
【請求項31】
前記カメラは、前記ユーザが前記スクリーンから指を離すことに基づいて前記複数の画像の取得を停止する、請求項30に記載の方法。
【請求項32】
トーチが、前記ユーザが前記装置上の前記スクリーンに指でタッチする間はオンになり、前記ユーザが前記スクリーンから指を離すことに基づいてオフになる、請求項31に記載の方法。
【請求項33】
前記レンズは、前記複数の画像の取得中にオートフォーカスが無効にされる可変焦点レンズである、請求項29に記載の方法。
【請求項34】
前記露光時間が特定の値に設定され、前記カメラは、前記複数の画像の取得中に前記カメラのISOを調整する、請求項29に記載の方法。
【請求項35】
前記光学パターンを復号する前に前記光学パターンの位置を追跡するステップを更に含む、請求項29に記載の方法。
【請求項36】
前記光学パターンを再度復号することなく、前記光学パターンを復号した後に、前記光学パターンの位置を追跡するステップを更に含む、請求項29に記載の方法。
【請求項37】
前記光学パターンが第1の光学パターンであり、前記方法は、前記第1の光学パターンを含む画像内の第2の光学パターンを自動的に復号するステップを更に含む、請求項36に記載の方法。
【請求項38】
前記第1の光学パターンが前記第2の光学パターンと同じである、請求項37に記載の方法。
【請求項39】
前記光学パターンを復号した後、0.5秒以上のタイマを有する複製フィルタが使用されない、請求項29に記載の方法。
【請求項40】
前記光学パターンが第1の光学パターンであり、
前記データペイロードが第1のデータペイロードであり、
前記方法は、
第2の光学パターンに関して前記複数の画像を解析するステップと、
第2のデータペイロードを取得するために前記第2の光学パターンを復号するステップと、
前記第2のデータペイロードを前記メモリデバイスに保存するステップと、
を更に含む、請求項29に記載の方法。
【請求項41】
前記露光時間が1/650秒以上1/1000秒以下である、請求項29に記載の方法。
【請求項42】
前記フレームレートが120fps以上である、請求項29に記載の方法。
【請求項43】
前記複数の画像は、前記光学パターンから0.02メートル以上0.5メートル以下の距離で取得される、請求項29に記載の方法。
【請求項44】
実行されるときに、光コードを復号するための以下のステップ、すなわち、
カメラを用いて複数の画像を取得するステップであって、
前記カメラのレンズが、前記複数の画像の取得中に固定焦点に設定され、
前記カメラの前記レンズが広角レンズであり、
前記複数の画像のそれぞれにおける露光時間が500分の1秒以下であり、
前記複数の画像が前記カメラのフレームレートで取得され、
前記フレームレートが30フレーム/秒以上である、
ステップと、
前記複数の画像を解析して、前記複数の画像内の光学パターンを検出するステップと、
データペイロードを取得するために前記光学パターンを復号するステップと、
前記データペイロードを保存するステップと、
を1つ以上のプロセッサに行わせる命令を含むメモリデバイス。
【請求項45】
前記命令は、実行されるときに、前記1つ以上プロセッサに、前記データペイロードを遠隔ハードウェアサーバに送信させる、請求項44に記載のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]この出願は、2021年2月26日に出願された米国非仮出願第17/186,909号の優先権を主張する。出願第17/186,909号は、あらゆる目的のために参照により本願に組み入れられる2021年2月12日に出願された米国仮出願第63/149,009号の優先権を主張する。出願第17/186,909号は、2020年12月31日に出願された米国非仮出願第17/139,529号の一部継続出願であり、米国非仮出願第17/139,529号は、2020年7月2日に出願された米国非仮出願第16/920,061号、現在は2021年3月30日に発行された米国特許第10,963,658号の継続出願であり、米国特許第10,963,658号は、2020年4月29日に出願された米国仮出願第63/017,493号、2020年4月1日に出願された米国仮出願第63/003,675号、及び、2020年5月4日に出願された米国仮出願第63/019,818号の優先権の利益を主張し、これらの出願は、あらゆる目的のために参照により本願に組み入れられる。出願第17/186,909号は、あらゆる目的のために参照により本願に組み入れられる、2020年6月18日に出願された米国特許出願第16/905,722号、現在は2020年11月24日に発行された米国特許第10,846,561号の一部継続出願である。出願第17/186,909号は、あらゆる目的のために参照により本願に組み入れられる、2020年5月15日に出願された米国仮出願第63/025,850号の優先権を主張する。出願第17/186,909号は、2020年11月25日に出願された米国特許出願第17/105,082号の一部継続出願であり、米国特許出願第17/105,082号は、2020年6月26日に出願された米国仮出願第63/044,635号の優先権の利益を主張し、これらの出願は、あらゆる目的のために参照により本願に組み入れられる。
【背景技術】
【0002】
[0002]本開示は、一般に、復号コードに関し、より具体的には、限定はしないが、小売環境におけるバーコードの復号に関する。バーコードは、従来、専用のスキャナを使用して走査されてきた。例えば、レーザを備えるバーコードスキャナは、バーコードに光を照射するために使用され、バーコードからの反射光が検出されてバーコードを復号するために使用される。カメラを伴うモバイルデバイス(例えば、スマートフォン及びタブレット)がより一般的になるにつれて、モバイルデバイスは、コードの画像を取得すると共に画像解析を使用してコードを復号することによってコードを復号するべく使用されている。バーコードを復号するべくスマートフォンとして使用するための方法の一例は、2013年12月3日に付与された米国特許第8,596,540号で提供される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003]この開示は、一般に、コンピュータ可読コード(例えば、バーコード;QRコード(登録商標))の追跡及び復号に関する。例えば、バーコードは、小売設定における在庫保管コード(SKU)であり得る。しかしながら、本明細書に記載のシステム及び/又はプロセスは、他の設定(例えば、空港のターミナルでパスポートを走査する)において、光学文字認識によるテキストなどの他の特徴を追跡及び/又は識別するために使用することもできる。更に、多くのアプリケーションがウェブベースになりつつある。しかし、ウェブベースのアプリケーションでは計算リソースが制限される可能性がある。多くの動作がよりコンピュータに依存するようになっているため、画像、特にモバイルデバイスによって取得された画像からデータを取得及び/又は視覚化するための改善が必要とされている。
【課題を解決するための手段】
【0004】
[0004]特定の形態では、光コードを追跡するためのシステムがカメラを備える。カメラは、複数のフレームを取得するように構成されてもよい。システムは1つ以上のプロセッサを備えることができる。1つ以上のプロセッサは、画像センサから複数のフレームを取得し、複数のフレームがそれぞれコードの画像を含み、複数のフレームが第1のフレームと第2のフレームとを含み、及び/又は、第2のフレームが第1のフレームの後に取得され、第1のフレーム内のコードを識別し、第1のフレーム内のコードから特徴を抽出し、コードの抽出された特徴に基づいてフィルタを作成し、第2のフレームから特徴を抽出し、フィルタと組み合わされる第2のフレームから抽出された特徴に基づいて応答マップを生成し、応答マップが、第2のフレーム内のコードの位置の確率を与え、及び/又は、コードを復号することなく、応答マップに基づいて第2のフレーム内のコードの位置を確認するように構成されてもよい。幾つかの実施形態では、フィルタが相関フィルタであり、コードが第1コードであり、1つ以上のプロセッサは、第2のコードを復号することなく、第2のフレーム内の第2のコードを識別するように構成され、フィルタは、フーリエ変換を使用してコードの抽出された特徴を周波数空間に変換することによって作成され、及び/又は、応答マップは、フーリエ変換を使用して第2のフレームを周波数空間に変換して周波数画像を生成し、周波数画像をフィルタと畳み込むことによって生成される。
【0005】
[0005]特定の形態において、光コードを追跡するための方法は、画像センサから複数のフレームを取得するステップであって、複数のフレームがそれぞれコードの画像を含み、複数のフレームが第1のフレームと第2のフレームとを含み、及び/又は、第2のフレームが第1のフレームの後に取得される、ステップと、第1のフレーム内のコードを識別するステップと、第1のフレーム内のコードから特徴を抽出するステップと、コードの抽出された特徴に基づいてフィルタを作成するステップと、第2のフレームから特徴を抽出するステップと、フィルタと組み合わされる第2のフレームから抽出された特徴に基づいて応答マップを生成するステップと、コードを復号することなく、応答マップに基づいて第2のフレーム内のコードの位置を確認するステップとを含む。幾つかの実施形態では、フィルタが相関フィルタであり、コードが機械可読バーコードを含み、フィルタは、フーリエ変換を使用してコードの抽出された特徴を周波数空間に変換することによって作成され、応答マップは、フーリエ変換を用いて第2のフレームを周波数空間に変換して周波数画像を生成し、周波数画像をフィルタと畳み込むことにより生成され、複数のフレームが第3のフレームを含み、第3のフレームが第2のフレームの後に取得され、複数のフレームが第4のフレームを含み、第4のフレームが第3のフレームの後に取得され、コードが第1コードであり、複数のフレームは、1秒以内に撮影された10個のフレームを含み、及び/又は、方法は、第1のフレームと第2のフレーム内のコードの位置と識別することに基づいて第1のフレームから第2のフレームへの画像センサのホモグラフィ姿勢変化を計算するステップ、第2のフレーム内のコードの位置に基づいてコードの画像を含む第3のフレームのサブエリアを予測するステップ、第3のフレームからのコードの画像を使用してコードを復号するステップ、第2のコードを復号することなく、第3のフレーム内の第2のコードの位置を識別するステップ、第4のフレーム内の第2のコードを復号するステップ、第2のフレームを、ディスプレイ上に、コードの位置を示すディスプレイ上のグラフィックと共に提示するステップ、及び/又は、第2のコードを復号することなく、第2のフレーム内の第2のコードを識別するステップを含む。
【0006】
[0006]特定の実施形態では、光学パターンを復号するための装置がカメラを備える。カメラは画像センサを備えてもよい。カメラは、画像センサに光を集束させるように構成されるレンズを備えてもよい。レンズは広角レンズとなり得る。この装置は、1つ以上のプロセッサを備えてもよい。1つ以上のプロセッサは、カメラを使用して複数の画像を取得し、複数の画像を解析して、複数の画像内の光学パターンを検出し、光学パターンを復号してデータペイロードを取得し、及び/又は、データペイロードを装置のメモリデバイスに保存するように構成されてもよい。レンズは、複数の画像の取得中に固定焦点に設定され得る。複数の画像のそれぞれにおける露光時間は500分の1秒以下となり得る。複数の画像は、カメラのフレームレートで取得され得る。フレームレートは毎秒30フレーム以上となり得る。
【0007】
[0007]特定の実施形態において、光学パターンを復号するための方法は、カメラを用いて複数の画像を取得するステップ、複数の画像を解析して、複数の画像内の光学パターンを検出するステップ、データペイロードを取得するために光学パターンを復号するステップ、及び/又は、データペイロードをメモリデバイスに保存するステップとを含み、カメラのレンズが、複数の画像の取得中に固定焦点に設定され、カメラのレンズが広角レンズであり、複数の画像のそれぞれにおける露光時間が500分の1秒以下であり、複数の画像がカメラのフレームレートで取得され、及び/又は、フレームレートが30フレーム/秒以上である。
【0008】
[0008]特定の実施形態において、装置は、トーチと、第1のレンズを伴うカメラとを有するモバイルデバイス用のアタッチメントを備え、装置は、第2のレンズ及び/又は第3のレンズを備え、アタッチメントは、モバイルデバイスと取り外し可能に結合されるように構成され、第2のレンズは、アタッチメントがモバイルデバイスに結合される間に、モバイルデバイスのカメラの画角を増大させるように構成され、及び/又は、第3のレンズは、アタッチメントがモバイルデバイスに結合される間に、トーチの光を集束させるように構成される。幾つかの実施形態において、第3のレンズは、トーチから法線方向でトーチの光を集束させるように構成され、第3のレンズは、トーチの光を楕円形状に集束させるように構成され、楕円形状は非円形であり、アタッチメントは、モバイルデバイスの2つ以上の側の少なくとも一部を覆うケースであり、及び/又は、アタッチメントが磁石を更に備える。
【0009】
[0009]特定の実施形態において、方法は、モバイルデバイスを光学パターンに向けるためにモバイルデバイスのトーチを使用することを含む。
【0010】
[0010]本開示の適用可能な更なる領域は、以下に提供される詳細な説明から明らかになる。詳細な説明及び特定の例は、様々な実施形態を示しているが、例示のみを目的とするものであり、本開示の範囲を必ずしも限定するものではないことを理解すべきである。
【0011】
[0011]本発明は、添付の図と併せて説明される。
【図面の簡単な説明】
【0012】
【
図2】各フレームにおけるコードを追跡してコードを復号しない実施形態を示す。
【
図3】相関フィルタを作成するための一実施形態の図を示す。
【
図4】コードを追跡するための応答マップを生成するために相関フィルタを使用するための一実施形態の図を示す。
【
図5】複数のフレームにわたってコードを復号する実施形態を示す。
【
図6】コードを追跡するためのプロセスの一実施形態のフローチャートを示す。
【
図7】棚上の製品を画像からセグメント化する例である。
【
図9】物体を棚ユニット上にマッピングするためのプロセスの一実施形態のフローチャートを示す。
【
図11】棚の視覚画像を伴う棚図の一実施形態である。
【
図12】棚の視覚画像を作成するためのプロセスの一実施形態のフローチャートを示す。
【
図13】光学パターンを迅速に走査するモバイルデバイスの一実施形態を示す図である。
【
図14】第1のタイプのバーコードを走査するためのカメラ焦点設定に応じた走査範囲を示すチャートを示す。
【
図15】第2のタイプのバーコードを走査するためのカメラ焦点設定に応じた走査範囲を示すチャートを示す。
【
図16】デジタルカメラを使用して光学パターンを復号するためのプロセスの一実施形態のフローチャートを示す。
【
図17】モバイルデバイス用のアタッチメントの一実施形態である。
【
図18】モバイルデバイス用のアタッチメントの他の実施形態である。
【
図19】コンピュータシステムの一実施形態のブロック図である。
【0013】
[0031]添付の図面では、同様の構成要素及び/又は特徴が同じ参照ラベルを有することができる。更に、同じタイプの様々な構成要素は、参照ラベルの後にダッシュ及び類似の構成要素を区別する第2のラベルを続けることによって区別することができる。本明細書で第1の参照ラベルのみが使用される場合、説明は、第2の参照ラベルに関係なく、同じ第1の参照ラベルを有する同様の構成要素のいずれにも適用可能である。
【発明を実施するための形態】
【0014】
[0032]以下の説明は、好ましい典型的な実施形態のみを提供し、本開示の範囲、適用性、又は構成を限定することを意図するものではない。むしろ、好ましい典型的な実施形態の以下の説明は、好ましい典型的な実施形態を実施するための可能な説明を当業者に与える。添付の特許請求の範囲に記載の趣旨及び範囲から逸脱することなく、要素の機能及び配置に様々な変更を加えることができることが理解される。
【0015】
[0033]マトリックス走査
[0034]多くのアプリケーションがウェブベースになりつつある。しかしながら、ウェブベースのアプリケーションは、ネイティブアプリケーションよりも少ない計算リソースを有することができる。例えば、ネイティブアプリケーションを使用して、複数の画像からの復号バーコードに基づいてバーコードを追跡することができる。しかしながら、バーコードの復号は、計算集約的であり、ウェブベースのアプリケーションに移動すると遅延を引き起こす可能性がある。したがって、幾つかの実施形態では、バーコードは幾つかのフレームで追跡されるが、バーコードを復号するために使用されるウェブベースのアプリケーションについては定期的にのみ復号される。幾つかの実施形態では、フレームは、フィルム又はビデオを構成する一連の別々の写真のうちの1つである。
【0016】
[0035]最初に
図1を参照すると、追跡方式の一実施形態が示されている。この追跡スキームは、ネイティブアプリケーションで使用することができる。
図1では、時刻T=1の第1のフレーム108-1(例えば、初期化)において、第1のコード104-1及び第2のコード104-2が復号され、第1のコード104-1及び第2のコード104-2の位置が確認される。第1のフレーム108-1は、画像センサ(例えば、モバイルデバイス内のカメラから)によって取得された第1の画像に対応する。コード104は、光学パターンである。コード104は、複数の水平線を有する一次元バーコード又は二次元バーコード(例えば、QRコード(登録商標))、記号(例えば、ドル記号、三角形など。)、数字、及び/又は文字などの機械可読コードとすることができる。例えば、コード104は、価格、車両を識別するためのVIN番号、クレジットカード番号、ナンバープレート番号、シリアル番号、タイヤコード(TIN)、又は日付(例えば、有効期限)とすることができる。コード104は、様々な環境及び/又は用途にある。例えば、コード104は、出荷ラベル、製品ラベル、パスポート、出荷請求書、運転免許証、IDカード、クレジットカード、小切手、ナンバープレート、デジタルディスプレイ(例えば、電子値札)、公共料金メータ、機械可読ゾーン(MRZ)付きID文書、又は小売店のレシートの一部となり得る又はその上にあり得る。
【0017】
[0036]時刻T=2において、予測112が計算され(例えば、モバイルデバイスの滑らかな動きを仮定する)、コード104は、第2のフレーム108-2において復号され(第2のフレーム108-2は、画像センサによって取得された第2の画像に対応する)、コード104は予測112と照合され、コード104の更新された位置116は、第2のフレーム108-2から復号されたコード104に基づいて確認される。
【0018】
[0037]上記のスキームに関する幾つかの懸念は、1次元コードの復号に基づいて境界ボックス(例えば、更新された位置116)が不正確である可能性があるため、不正確な検出及び/又は欠落した検出を含む可能性がある。復号が各フレームで実行されない場合、検出が欠落する可能性があり、及び/又は検出トラックが不一致になる可能性がある。検出トラックの一例が更新位置116に示されており、点線の輪郭は以前の位置であった。また、復号は、より速い移動及びより低い分解能でより困難になる可能性がある。
【0019】
[0038]1つの想定し得る解決策は、(例えば、視野内のコード104の軌跡を確立するために)画像の履歴に基づいてコード104の位置を予測すること、コード104及び/又は背景構造(例えば、棚ユニット)の既知の配置を使用すること、及び/又は、追加のセンサデータ(例えば、移動装置の姿勢変化を予測するためのジャイロスコープからの慣性測定ユニット(IMU)データ)を活用することなど、より多くのデータを使用することである。しかしながら、より多くのデータを使用すると、ウェブベースのアプリケーションを使用するときに遅延が生じる可能性がある。更に、全てのデバイスがより多くのデータを使用するための計算能力及び/又は機器(例えば、IMU)を有するわけではない。したがって、以下でより詳細に説明する別の想定し得る解決策は、第1のフレーム及び第3のフレーム内のコードを復号し、第1のフレームと第3のフレームとの間の第2のフレーム内のコード104の位置を追跡することである。
【0020】
[0039]
図2は、各フレーム内のコードを追跡し、復号しない実施形態を示す。第1のフレーム108-1では、時間T=1において、アルゴリズムが、コード104のように見える位置を検索するために使用される。コード104のように見える位置が復号される(又はコードを復号する試みが行われる)。また、コード104の追跡の初期化も行われる(例えば、相関フィルタを作成することによって
図3に関連して説明したように)。
【0021】
[0040]第2のフレーム108-2では、T=2において、コード104が追跡され、復号されない。追跡アルゴリズムは、第2のフレーム108-2内の追跡されたコードの新しい位置を見つけようと試みる。第2のフレーム108-2において、第1の境界ボックス204-1は、第1のコード104-1が計算されるようになっている第2のフレーム108-2に関連して計算され(例えば、境界ボックス204は、モバイルデバイスのユーザインタフェース内の第2のフレーム108-2上に単純に計算及び/又はオーバーレイされる)、第2の境界ボックス204-2は、第2のコード104-2が計算されるようになっている第2のフレーム108-2に関連して計算される。例えば、
図4に関連して説明したように、相関フィルタを使用して応答マップを作成し、境界ボックス204の位置を決定する。第2のフレーム108-2における追跡は、コードを復号するときに存在する制限に依存しない。例えば、コード104は、第2のフレーム108-2においてぼやけている可能性がある。一実施形態では、相関フィルタは、追跡の初期化時に学習され、例えば視点の変化に適応するように追跡プロセス中に連続的に更新される。別の実施形態では、相関フィルタは、画像特徴の選択されたサブセットで動作し、画像特徴は、バーコードに対して非常に明確となることができ、事前訓練されたニューラルネットを使用して抽出され得る。
【0022】
[0041]第3のフレーム108-3では、T=3において、コード104が走査されて追跡される。例えば、アルゴリズムを使用して、コード104のように見える位置を検索する。コード104のように見える位置が復号され、及び/又は追跡アルゴリズムは、復号できなかった又は復号されなかったコード104について、第3のフレーム108-3内のコード104の新しい位置を確認する。
【0023】
[0042]第1のフレーム108-1と第3のフレーム108-3との間には第2のフレーム108-2という1つのフレームのみが示されているが、第2のフレーム108-2は、第1のフレーム108-1と第3のフレーム108-3との間の多数のフレームのうちの1つであり得ることを理解すべきである。第3のフレーム108-3の動作は、1つ以上のフレームの間に第2のフレーム108-2の動作が発生する状態で(例えば、定期的に、又は、境界ボックスの位置が、画像内の動きのぼけが少ない可能性があることを示すことができる設定された距離を超えて移動しないなどの事象に従って)繰り返すことができることも理解すべきである。したがって、追跡アルゴリズムは、コードの走査と復号コードとの間のコードの位置を決定することができる。例えば、スマートフォンのカメラは、毎秒30フレームで画像を取得する。
図2の第3のフレーム108-3の動作は、2Hzの間隔(走査レートと呼ばれることもある)で発生するように設定され、
図2の第2のフレーム108-2の動作は、その間隔の間にカメラによって取得されたフレームで発生するように設定される。幾つかの実施形態では、間隔は、0.3、0.5、1、2、又は5Hz以上の周波数であり、5、10、又は20Hz以下の周波数である。幾つかの構成では、カメラは、1、5、10、又は20Hz以上かつ10、30、60、又は120Hz以下のフレームレートを有する。物体がフレーム間であまり移動しないように高いフレームレートを望むことと、可能な限り早く現れる新しいバーコードを発見したいこととの間には、使用されるフレームレートにトレードオフがある。本出願人は、連続する走査間の60ms~100ms、例えば80msが、「きめ細やかさ」の体験をユーザに伝えるので、良好なトレードオフであることを見出した。
【0024】
[0043]幾つかの実施形態では、検出された新しいコードのみが後続のフレームで復号される。したがって、幾つかの実施形態では、バーコードの走査及び/又はバーコードの復号は、第1のフレーム108-1でのみ実行される。例えば、店舗の従業員は、自身のスマートフォンで幾つかのバーコードを走査している。第1のフレームでは、走査によって2つのバーコードが識別され、2つのバーコードが復号される。次いで、2つのバーコードが追跡され、バーコードが復号された拡張現実表示をユーザに提供するスマートフォンのスクリーンを使用して、スマートフォンのユーザに表示された画像上に緑色ドットがオーバーレイされる。ユーザは、緑色のドットで覆われていないスクリーン上の第3のバーコードを見ることができるので、ユーザはスマートフォンを移動させ続けて第3のバーコードを走査する。バーコードのように見える位置について画像が検索されるフレームでは、3つの位置、すなわち以前に識別された2つのバーコードに対応する2つの位置及び新しい位置が識別される。以前に識別された2つのバーコードに対応する2つの位置は復号されないが、新しい位置は第3のバーコードを明らかにしている。次いで、第3のバーコードが追跡され、第3のバーコードが追跡されるスクリーン上に緑色ドットがオーバーレイされる。したがって、ユーザは、各フレームの各バーコードをアプリケーションが復号することなく、どのコードが復号されたかを見ることができる。コードを復号することは追跡よりも多くの計算リソースを消費する可能性があるため、追跡は、特にアプリケーションがウェブベースのアプリケーションであり、ネイティブアプリケーションとして実行されていない場合に、モバイルデバイスの機能を改善することができる。
【0025】
[0044]幾つかの実施形態では、コードの走査は、コードのように見える位置の検索と復号コードの両方を含むことができ、異なるフレームで発生するように分割することができる。例えば、コードのように見える位置の検索は第1のフレームで行われ、5つの位置が識別される。フレーム2からフレーム10では、5つの位置が追跡される。フレーム11において、第1の位置におけるコードが復号される。フレーム12~20では、5つの位置が追跡される。フレーム21において、第2の位置におけるコードが復号される。フレーム22~30では、5つの位置が追跡される。フレーム31では、コードのように見える位置の検索が実行され、第6の位置が識別される。プロセスは、新しい位置及び復号コードを検索し続ける。
【0026】
[0045]幾つかの構成では、
図2~
図6に関連して説明される追跡は、追跡が視覚的に復号可能なバーコード(例えば、
図1に記載されているように)に依存しないため、より安定した追跡を可能にすることができる。追跡は、フレームレートの増大に起因してより滑らかな視覚化をユーザに提供することができ、及び/又は(例えば、既に走査されたコードは再走査されないため)「通常の」バーコード走査を行うときのエネルギー消費を低減することができる。各フレームの復号コードは、様々な状況において有用であり得ない。ユーザが在庫管理のために複数のコードを走査している一例では、バーコードは遠距離にある可能性がある。ユーザがバーコードを走査するために携帯電話を素早く動かすと、バーコードは動きぼけからぼやけている可能性がある。したがって、復号コードに依存する追跡は、バーコードの追跡を失う可能性がある。
【0027】
[0046]幾つかの実施形態では、方法は、コードを視覚的に抽出すること、復号化のフレーム間の対応関係を確立すること、コードの位置を予測すること、再び走査することを含み、予測することは、複数のコードの位置を独立して予測することによって、及び/又は画像データ(例えば、IMUデータではない)のみを使用することによって実行される。
【0028】
[0047]幾つかの実施形態では、
図2~
図6に記載される追跡アルゴリズムは、予測アルゴリズムなどの他のアルゴリズムで実施することができる。例えば、追跡アルゴリズムは、ホモグラフィ予測アルゴリズムと組み合わせて、又はホモグラフィ予測アルゴリズムが失敗したときに使用することができる。幾つかの実施形態では、バーコードは、単一の剛性構造として追跡することができる。バーコードが互いに対して移動しないという事実を利用することは、計算の複雑さを低減し、フォールトトレランス/障害検出を改善するのに役立ち得る。
【0029】
[0048]
図3は、相関フィルタ304を作成するための一実施形態の図を示す。
図3は、初期化の一例である。抽出された特徴308は、コード104から取得される。抽出された特徴は、コントラストの高いエリア(例えば、画像勾配)、線、角などであり得る。多くのシナリオでは、バーコードは剛性の物体又は表面に配置されるため、抽出された特徴308は、コード100自体に加えて幾何学的キューを含むことができる(例えば、棚又はドル記号の縁部は、抽出された特徴308の一部とすることができる)。幾つかの実施形態では、抽出された特徴308は、フーリエ変換(FT)を使用して視覚領域から周波数領域に変換され、目標出力312と組み合わされて相関フィルタ304を形成する。フーリエ変換は効率的であり、計算時間を短縮する。別の実施形態では、操作は空間領域で実行される。幾つかの実施形態では、相関フィルタを「訓練」するために、特徴が周波数領域で変換され、次いでマスク/フィルタが計算される。特徴と畳み込まれると、これは目標出力をもたらす。目標出力は、空間領域(例えば、物体位置の確率マップ;基本的には、物体の中心位置を示す、パッチの中心に単一のピークを有する解析されたパッチのサイズの行列)における所望の応答マップであり、周波数領域に変換される。
【0030】
[0049]
図4は、コード104を追跡するための応答マップ404を生成するために相関フィルタ304を使用するための一実施形態の図を示す。
図4において、抽出された特徴408は、画像412から取得される。画像412は、カメラによって取得された複数の画像フレームの一部である。画像412はコード104を含む。抽出された特徴408は、フーリエ変換を用いて周波数空間に変換され、相関フィルタ304(例えば、畳み込み)と組み合わされて応答マップ404が生成される。抽出された特徴408は、相関フィルタ304と組み合わせる前にウインドウ416と組み合わせることができる。ウインドウ416を使用して、コード104の検索を画像412全体のエリアよりも小さいエリアに制限することができる。応答マップ404は、相関の大きさを提供する。したがって、応答マップ404のエリアが白いほど、そのエリアにコード104がある可能性が高くなる。
【0031】
[0050]追跡のためのフレームレートは、動き速度、ウインドウ416のサイズ、及びコード104がカメラからどれだけ離れているか(例えば、お父さんが離れている場合、より大きなウインドウ416が選択され、及び/又は追跡のために画像のフレームレートが増大される)のうちの1つ以上を含む幾つかの基準に基づいて(例えば、動的に)調整することができる。
【0032】
[0051]
図5は、複数のフレーム508にわたってコード104を走査する実施形態を示す。幾つかの構成では、コード(例えば、識別コード及び/又は復号コード)の走査は計算集約的であり得る。コードを識別することは、画像内にコードが存在すること、及び/又は画像内のコードの位置を確認することを含む。コードを復号することは、コードが何を表すかを確認することを含む。例えば、バーコードを識別することは、フレーム内にバーコードが存在することを確認することを含み、バーコードを復号することは、バーコードの一連の白線及び黒線を数値列を表すと解釈することを含む。複数のフレームにわたって走査を分散させることにより、計算を時間的に分散させることができる。
図5は、第1のフレーム508-1、第2のフレーム508-2、第3のフレーム508-3、及び第4のフレーム508-4を示す。
図5では、複数フレームにわたって走査が行われる。第1のフレーム508-1では、第1のコード104-1及び第2のコード104-2が追跡される。第2のフレーム508-2では、第2のフレーム508-2の上半分のみでコードの走査が実行される。したがって、第1のコード104-1は識別されて復号され、第2のコード104-2は復号されることなく追跡される。第3のフレーム508-3では、コード104が追跡される。第4のフレーム508-4では、第4のフレーム508-4の下半分のみでコードの走査が実行される。これにより、第1コード104-1を復号せずに追跡しながら、第2コード104-2を識別して復号する。幾つかの実施形態では、フレーム508は象限に分割され、新しいコード(例えば、走査)の発見は、各象限で第4フレームごとに実行される。幾つかの実施形態では、「アテンション」又は「シーンセマンティック」ベースの復号が使用される。幾つかの構成では、これは、復号化が、劇的な視覚的変化を受ける観察されたシーンのフレーム又は部分に限定され得ること、及び/又は復号化が、特定のタスクにとって特別な関心のある領域(例えば、バーコードラベル、棚ユニットの部品など)に限定され得ることを意味し得る。
【0033】
[0052]
図6には、コードを追跡するためのプロセス600の一実施形態のフローチャートが示されている。プロセス600は、ステップ604において、画像センサから複数のフレームを取得することによって開始し、複数のフレームはそれぞれコードの画像を含み、複数のフレームは、第1のフレーム及び第2のフレームを含み、第2のフレームは第1のフレームの後に取得される。ステップ608において、コードは第1のフレームで識別される。ステップ612において、コードから特徴が抽出される。例えば、抽出された特徴308は、
図3のコード104から識別される。ステップ616において、フィルタが作成される。例えば、相関フィルタ304は、
図3の抽出された特徴308に基づいて作成される。
【0034】
[0053]幾つかの実施形態では、コードを検出及び追跡することは、バーコード及びテキストの行などの複数のコードを追跡することを意味することができる。例えば、小売店では、値札を追跡することができ、第2のステップでは、製品を識別する1つ以上のバーコード、価格を示す一連の数字、及び/又は製品名を記述する一連の文字を含む、その値札上の1つ以上のコードを復号することができる。
【0035】
[0054]ステップ620において、特徴が第2のフレームから抽出される。例えば、抽出された特徴408は、
図4の画像412から生成される。ステップ624において、第2のフレームから抽出された特徴に基づいて応答マップが生成される。例えば、応答マップ404は、抽出された特徴408と
図4の相関フィルタ304との畳み込みに基づいて生成される。ステップ628において、応答マップに基づいてコードの位置が確認される。例えば、応答マップのより高い大きさのエリアは、コードの応答マップ内の可能性のある位置を示す。プロセス600で説明したようにコードを追跡することは、コードを復号しない(例えば、計算リソースを節約するために)。
【0036】
[0055]ボックス又はボックスの輪郭などのコードの位置を示すグラフィックを、コードを含む画像上にオーバーレイして、コードの位置を示す拡張現実出力をユーザに提供することができる。グラフィックは、コードが復号されたかどうかを示すために色を変更するなど、変更することができる。例えば、コードが存在すると識別されたが、カメラがコードから遠すぎてコードを復号することができなかった場合、コードの周りの赤い輪郭がユーザに表示され得る。その後、ユーザはカメラをコードに近づけることができる。コードがアプリケーション(例えば、デバイス又はウェブベースで実行する)によって復号されると、グラフィックは緑色のボックスに変化し、コードが正常に復号されたことをユーザに示す。
【0037】
[0056]コードを追跡することにより、第2のフレーム内のコードの位置に基づいて後続のフレームのサブエリアを予測することができる。したがって、後続のフレームで走査を実行する場合、コードの走査をコードの位置と照合させることができる。
【0038】
[0057]幾つかの実施形態において、複数の光コードを復号するシステムは、ウェブブラウザソフトウェア及びディスプレイで有効にされるモバイルデータコレクタ、カメラモジュール、少なくとも1つの物体と共に配置される2つ以上の光コード、及び/又は、カメラモジュールによって捕捉された1つ以上の画像内の2つ以上の光学コードの識別情報を受信し、1つ以上の光学コードを復号し、及び/又は、復号されたコードをモバイルデータコレクタのディスプレイ上に視覚化する1つ以上のプロセッサを備える。システムは、ウェブブラウザソフトウェア及びディスプレイで有効にされるモバイルデータコレクタ、カメラモジュール、少なくとも1つの物体と共に配置される2つ以上の光コード、及び/又は、カメラモジュールによって捕捉された画像内の2つ以上の光学コードの存在を検出し、画像内の2つ以上の検出された光学コードを復号し、検出されたコードの位置をモバイルデータコレクタのディスプレイ上に視覚化し、及び/又は、復号されたコードをモバイルデータコレクタのディスプレイ上に視覚化する1つ以上のプロセッサを備えることができる。システムは、ディスプレイ及びカメラモジュールで有効にされるモバイルデータコレクタ、少なくとも1つの物体と共に配置される複数の光コード、及び/又は、カメラモジュールによって捕捉された第1の画像内の複数の光学コードの存在及び位置を検出し、第1の画像から検出された光学コードのサブセットを復号し、第1の画像から第2の画像までの複数の光学コードの位置を追跡する、カメラモジュールによって捕捉された第2の画像内の複数の光学コードの存在を検出し、及び/又は、第2の画像からの検出された光コードのサブセットを復号し、サブセットが第1の画像から復号されていないコードから構成される、1つ以上のプロセッサを備えることができる。
【0039】
[0058]コードマッピング
[0059]ユーザ(例えば、店舗の従業員)が環境(例えば、店舗の棚に)内のコード(例えば、SKU/製品)の位置を捕捉できるようにするべくコードマッピングを使用できる。コードの識別及び追跡は、物理的構造の仮想図の作成を可能にするのに役立つことができる。例えば、棚ユニットの仮想図を使用して、以下の質問、すなわち、棚のどこに製品があるか、どの棚にあるか、及び/又はどの高さにあるか?といった質問の1つ以上に回答するのを助けることができる。製品は正しい場所にあるか(例えば、製品配置はプラノグラムに適合しているか)?特定の棚は視覚的にどのように見えるか?2週間前の棚の状態は?製品の価格は正しいですか?製品はラベルに対応しているか?棚の製品数が少ない(例えば、棚が補充される場合、)か?
【0040】
[0060]幾つかの実施形態では、複数のユーザがデータを提供及び/又は検索できるようにするために、ストレージ、API、ダッシュボードなどのためのクラウドサービスが使用される。例えば、小売設定では、複数のモバイルデバイスを有する複数の従業員がデータ取り込みに貢献する可能性がある、及び/又は、異なる関係者は、生バージョン及び/又は集約バージョンのデータの一部のデータを閲覧することができる。クラウドベースのアプリケーションは、より速いソフトウェア開発サイクルを可能にすることもできる。
【0041】
[0061]状況によっては、マッピングは特定の構造に制限される。例えば、小売環境では、棚は2次元構造として画像化され、複数のバーコードは、垂直に向けられた1つの平面上にあるようにマッピングされる(垂直平面の法線は水平を指す)。棚ユニット上の製品は、棚ユニット上のバーコードによって識別することができる。幾つかの実施形態では、棚ユニット上の製品は、視覚的製品認識によって識別される。
【0042】
[0062]データは、遠隔地(例えば、クラウド)に記憶することができる。データは、捕捉及び/又は表示装置から不可知論的であり得る。例えば、異なるモバイル捕捉デバイス(例えば、異なるタブレット及び/又はスマートフォンを使用することができる)及び捕捉されたデータ表示は、モバイルアプリ又はウェブベースのダッシュボード内にあり得る。捕捉実行は、SKUごと、棚ユニットごと、及び/又は店舗ごとに行うことができ、異なる捕捉デバイスから柔軟に組み合わせることができる。
【0043】
[0063]幾つかの構成では、コードマッピングは、プラノグラムコンプライアンス(例えば、SKU位置を計画位置と比較する)、プラノグラム解析(例えば、売上数の場合)、製品への店内ナビゲーション、及び/又はARマーケティング(例えば、顧客が製品の所定の距離内にあるときの即時販売)のために使用できる。
【0044】
[0064]特定の実施形態では、コードマップを作成することは、複数のSKUを識別すること(例えば、棚のバーコードを読み取ることによって、及び/又は製品認識によって)、SKUエリアをセグメント化すること(例えば、1タイプの製品のエリア;画像分割によって行われる)、2次元レイアウトを確認すること(例えば、どのSKUが棚ユニット及び/又は通路上の別のSKUの隣にあるか)、バーコード間距離を計算すること(例えば、センチメートル単位の絶対距離又は相対的な距離)、バーコードの3次元レイアウトを捕捉すること(例えば、複数の通路の関係)、及び/又は、棚の概念を理解すること(例えば、垂直分割ユニット)を含む。
【0045】
[0065]SKUは、棚のバーコードを走査することによって識別することができる。製品認識によってSKUを識別するために、製品をラベル付けし、及び/又は輪郭を同時にセグメント化することができる分類器が画像上で実行される。輪郭は、長方形又はピクセル単位の画像セグメンテーション(例えば、畳み込みニューラルネットワーク(CNN)ベースの分類器を使用して)とすることができる。分類器は、一般的なデータコーパス(例えば、ImageNet)で事前に訓練され、製品認識ユースケースに合わせて微調整/適合され得る。好ましくは、幾つかの例(例えば、ワンショット学習)で新しい製品を追加することができる。CNNベースの物体検出フレームワークの例は、YOLO、R-CNN、SSDなどであるが、幾つかはカスタム構築することもできる。
【0046】
[0066]
図7は、棚上の製品を画像からセグメント化する例である。
図7は、棚712上に配置された製品708の画像であるフレーム704を示す。SKUエリアのセグメント化は、画像セグメント化によって実行することができる。製品708を画像から直接認識できる場合、分類器を使用してSKUエリアをセグメント化することができる。製品708が棚712上のバーコード716を介して認識される場合、これは、バーコード位置を考慮して、画像コンテンツに基づいて行うことができる。例示的な手法は、バーコード716に対応する製品708がバーコード716の上にあるか下にあるかを確認することを含む。バーコード716が製品708の上又は下(又は横)にあるかどうかを決定することは、訓練されたバイナリ分類器、アドホック規則、及び/又は人間の入力によって解決することができる。次いで、画像解析を使用して、類似の画像コンテンツに基づいて領域(例えば、コードの上又は下)を左右に拡大する。
図7のフレーム704内において、バーコード716に対応する製品708は、バーコード716の上方にある。同様の画像コンテンツは、例えば、関心点照合、(交差)相関、色解析などを用いて測定することができる。セグメント化は、歪みのない画像を使用するという仮定に基づくことができ、及び/又は同様の製品は棚列と水平に整列される。製品708のセグメント720(破線)は、バーコード716に対応する製品708を示す。
【0047】
[0067]
図8は、棚
図800の一実施形態である。棚
図800は、SKUの二次元レイアウトに関する情報を提供する(例えば、どのSKUが別のSKUの隣にあるか)。この実施形態では、SKUはバーコードによって認識される。一度に1つのバーコードのみが見える場合、ユーザは定義された順序でバーコードを走査する(例えば、各棚について左から右へのシーケンス;棚の上部で開始し、列ごとに下に移動する)。しかしながら、これは、(相対的又は実際の)距離ではなく、レイアウトのみを提供する。マトリックス走査で前述したように、2つ以上のバーコードが見える場合、バーコードは互いに対してマッピングされる。例えば、棚の左上から始めて、現在の視野内で以前に参照されたバーコードを維持し、新たに認識されたバーコードは、1つ以上の既知のバーコードに関して(例えば、左、右、上、下)参照することができる。幾つかの仮定は、マッピングを単純化することができる。例えば、幾つかの構成では、バーコード捕捉ビューが棚列と位置合わせされ、隙間がないと仮定することができる。おおよその相対的な距離は、画像内のバーコード間の間隔を使用して計算することができる。
【0048】
[0068]バーコード間の相対的な距離を与えるために、捕捉ビューに1つのバーコードのみが見える場合、幾つかの実施形態は、棚ユニットの1つ以上の俯瞰画像の捕捉から開始することができる。これらの俯瞰画像では、バーコードは復号されない(又は復号できない)(例えば、それらは小さすぎるため、バーコード位置領域を識別することができる)。俯瞰画像は、修正され、歪みが修正され、棚列と位置合わせされる。異なるバーコードを有する複数の視野がある場合、それらは一緒にスティッチングされるか、又は少なくとも互いに参照される。次いで、個々のバーコードを囲む画像コンテンツを含む個々のバーコードが捕捉される。識別されたバーコード領域に依存して又は依存せずに、画像コンテンツを利用して、個々のバーコード画像を俯瞰画像に登録することができる。照合は、例えば、ホモグラフィのためのRANSAC(ランダムサンプルコンセンサス)又は推定のための他の画像解析を使用して、画像の関心点を用いて行うことができる。幾つかの実施形態では、個々のバーコード画像を俯瞰画像に登録することは、棚に対応する水平線を識別することと、画像の水平方向の位置合わせ及び/又は画像の合成のために水平線を使用することとを含む。この手法は、俯瞰画像の助けを借りてバーコード間の(相対的な)距離を捕捉するという利点を有する。
【0049】
[0069]幾つかの実施形態では、バーコード間の絶対距離が計算される(例えば、cm単位)。例えば、マトリックス走査を使用して、バーコードの復号の有無にかかわらず、2つ以上のバーコードを同時に追跡することができる。アルゴリズムは、棚が平面である(すなわち、コードが同じ平面内に配置される2次元問題である)という仮定を含むことができ、これにより、幾つかの計算を単純化することができる。第1の選択肢では、スケールは、画像内の基準の既知の幅によって決定することができる。例えば、バーコードの高さ及び/又は幅が1.2cmなど既知である場合、その走査は、相対測定値を絶対測定値に変換するための基準として使用することができる。同じタイプのバーコードは、冗長性を提供する複数の画像に現れることができる。第2の選択肢では、既知の較正されたカメラ及び移動装置(例えば、SLAM(simultaneous localization and mapping)を使用する)を使用して、スケールを決定することができる。第3の選択肢では、立体カメラ又は深度カメラを使用することができる。上記の3つの選択肢は相互に排他的ではない。
【0050】
[0070]店舗の3次元モデルを生成することができる。3次元モデルは、複数の2次元モデル(例えば、棚ユニット)を組み合わせることによって、及び/又はSLAMアルゴリズム又はSfM(structure from motion)パイプラインを実装することにより単一の装置を使用することによって作成することができる(AppleのARKit又はGoogleのARCoreは、それぞれのモバイルプラットフォームでそのような再構成機能を提供する)。バーコードは、拡大走査で復号され、3次元店舗モデル内で位置識別され得る。別の選択肢は、複数のカメラ(ステレオ)及び/又は深度カメラを使用することである。更なる選択肢では、棚の2次元モデルが作成され、ユーザは店舗内の棚の位置を識別する(例えば、店舗レイアウトの青写真を使用する)。別の実施形態では、店舗レイアウトモデルは、例えば最初に小売店の表面を計画することによってもたらされる既存のCADモデルから導出される。
【0051】
[0071]棚(例えば、垂直分割ユニット)の概念。用途の観点から、棚(又はモジュール又は棚ユニット)は、店舗と製品との間の記述ユニットである。製品は棚に配置され、店舗内の全ての棚は固有の識別子を有する。したがって、棚の物理的境界をデジタル表現で記録することが有用であり得る。棚が次々にマッピングされる場合、2Dの場合には、棚識別子の捕捉は、識別子の手動入力、又は棚に配置された専用バーコード(又は異なるコードタイプ)の手動捕捉によって行うことができる。自動入力が好ましい場合があるが、棚に識別子がない場合、手動入力を使用することができる。幾つかの実施形態では、棚の識別情報は、カメラ/装置の位置から推測することができる。例えば、幾つかの実施形態では、電話の位置は、WiFiフィンガープリンティング、Bluetoothビーコン、GPS、SLAM(同時位置特定及びマッピング)、又はIMU追跡を使用して決定することができる。ワークフローでは、これは、例えば、その棚のSKUマップを取り込む前に行われる。店舗が3Dで直接再構築される場合、棚のセグメンテーション(垂直分割)は、互いに一定の(パラメータ化可能な)距離内の垂直分割線を検索する画像解析によって自動的に実行することができる。
【0052】
[0072]棚を走査するために使用されるアプリケーションは、特定の方法で構成することができ、例えば、個々のSKUが順番に走査される。例えば、店舗の共同経営者は、移動時間を最小化するように個々の棚ごとに方向を切り替えながら、(例として)左上から右下へ向かうS字形のパターンでSKUデータを収集することができる。データ(例えば、各棚について)が収集され、バックエンドに送信される。各棚のデータは、店舗ID:店舗の識別子;棚ID:棚の識別子;時刻:取得開始&終了のタイムスタンプ;各SKUについて:EAN/バーコード、位置(棚列、製品位置)、取得タイムスタンプ、価格(読み取り価格、正しい価格)、及び/又は製品画像;及び/又はスマートフォン識別子:異なる携帯電話からのアップロードを区別するため、を含むことができる。
【0053】
[0073]特定の製品のデータは、ベクトル形式で配置される(例えば、n×1行列)。以下の表Iは、データマッピングのためのサンプルベクトルを与える。ベクトルは、コードと、棚図(例えば、ベクトルは「Value」列である。)に対するコードの相対位置とを含む。
【表1】
【0054】
[0074]
図9には、棚ユニット上の物体をマッピングするためのプロセス900の一実施形態のフローチャートが示されている(例えば、デジタル地図を作成する)。プロセス900は、ステップ904において、複数の画像を受信することから始まる。例えば、モバイルデバイスからカメラによって画像が取得される。ステップ608において、第1の項目コードが複数の画像において識別される。例えば、第1の項目コードは、第1のSKUを識別するバーコードであり、第1の項目コードを識別することは、第1の項目コードを復号することを含む。ステップ612において、複数の画像内で第2の項目コードが識別される。例えば、第2の項目コードは、第2のSKUを識別するバーコードであり、第2の項目コードを識別することは、第2の項目コードを復号することを含む。
【0055】
[0075]ステップ916において、第1コードと第2コードとの間の相対的な距離及び方向が計算される。相対的な距離及び方向は、第1の品目コード及び第2の品目コードを相対座標系(例えば、
図8に示す座標系;例えば、第2のバーコードは、右に4単位であり、第1のバーコードの下に3単位である)上に配置することに基づくことができる。幾つかの実施形態では、絶対距離が測定される(例えば、第2バーコードのx位置は、第1バーコードのx位置に24センチメートルを加えたものに等しく、第2バーコードのy位置は、第1バーコードのy位置に等しい)。
【0056】
[0076]ステップ920において、第1の項目コードと第2の項目コードとの間の相対的な距離及び方向が棚図に対して較正される。例えば、
図8に示す棚図に対して複数のコードが組み合わされる。第1の項目コードと第2の項目コードとの間の相対的な距離及び方向は、棚図における第1の項目コード及び第2の項目コードの位置を指定するために使用される(例えば、第1の項目コードが棚ユニットの原点として選択された場合、第1の項目コードは0,0の座標を有し、第2の項目コードは4,-3の座標を有する)。
【0057】
[0077]ステップ924において、第1の項目コードと、棚図に対する第1の項目コードの相対位置とを含む第1ベクトルが生成される。例えば、表Iは、棚21A7に対するバーコードID及びバーコードのx/y座標を有するベクトルを与える。同様に、ステップ928において、第2の項目コードと、棚図に対する第2の項目コードの相対位置とを含む第2のベクトルが生成される。
【0058】
[0078]幾つかの実施形態では、ディスプレイ上の物体の位置をマッピングするシステムは、光学コードを読み取るモバイルデータコレクタ、ディスプレイ上の物体と共に配置される光学コードを有するラベル、及び/又は、2つ以上のラベルの識別情報を受信し、2つ以上のラベル間の相対的な距離及び方向を計算し、及び/又は2つ以上のラベルの位置を地図上に配置する1つ以上のプロセッサを備える。
【0059】
[0079]棚の視覚化
[0080]棚の視覚化は、ユーザ(店舗の従業員、管理者等)が小売店の棚の現在及び/又は以前の状態を視覚化し、及び/又は追加の関連情報を表示(例えば、グラフィカルユーザインタフェース(GUI)内のオーバーレイ又は追加のウインドウを介して)できるようにするために使用することができる。幾つかの実施形態は平面棚に限定されるが、他の実施形態は、店舗内のほとんどの任意のタイプの販売時点情報管理(PoS)の製品を含む。棚の視覚化は、棚の遠隔視覚検査、ショッピング体験に向かう、ソファから小売店を通るストリートビュースタイルの散策、及び/又は拡張又は仮想現実アプリケーションを可能にすることができる。
【0060】
[0081]
図10は、棚の2つの画像をブレンドする例である。
図10は、棚1012上の製品1008の合成画像1000を示す。合成画像1000は、合成画像1000が2つ以上の画像によって形成され得るため、幾分ぼやけて見える可能性がある。棚の視覚化は、画像スティッチングの問題であり得る。パノラマ写真は画像スティッチングを使用して作成されるが、棚の視覚化の制約は従来のパノラマ画像スティッチングとは異なる。例えば、棚(例えば、棚ユニット)は近くてもよいが、1つのカメラビューには収まらない。棚は、複数の異なる視点から捕捉され、捕捉された画像間で(物体に対して)有意なカメラシフトがあり得る(例えば、視差)。しかしながら、捕捉されたビュー間でシーン内に動きがないと仮定することができる。視覚化の更新は、単一のSKU捕捉インスタンスからであっても、複数の捕捉デバイスから、及び時間内の複数の瞬間からもたらされ得る。画像ブレンドは、視覚化を魅力的に見せるために露出補正を含むことが多い。視覚化が更新されると、棚の画像を時間内にふるいにかけることが可能である。
【0061】
[0082]幾つかの構成では、アナログ-画像スティッチングは、キーポイントを検出し、画像内の不変記述子を抽出するステップ、2つの画像間で記述子を照合するステップ、RANSACを使用して(幾つかの同様の技術の例として)、両方の画像内の一致した画像特徴位置を用いてホモグラフィ行列を推定するステップであって、多くの一致した特徴がある場合にのみ2つの画像を組み合わせるステップ(例えば、閾値を使用する)、得られたホモグラフィ行列を用いてワーピング変換を適用するステップ、及び画像をブレンドするステップ(例えば、サイズ変更、露出の補償、継ぎ目の発見)を含む。
【0062】
[0083]幾つかの構成では、問題は、接合最適化問題(例えば、ペアワイズ画像照合問題ではなく)として定式化される。これはSfM問題であり得る。これは、点だけでなく、線(例えば棚ユニットの一部)などの他の特徴タイプに基づいて行うこともできる。幾つかの実施形態では、ホモグラフィは、例えば、ほぼ正面から平行図を仮定することによって、耐故障性を改善するように制約することができる。幾つかの実施形態では、この問題は、大域的最適化問題を定式化することによって対処することができる。複数の画像間の関係を考慮しながら、(視覚的に及びタイムスタンプを相関させることによって導出された)画像が撮影された位置の大まかな推定値を最適化/導出しようと共同で試みると、誤差を低減することができる。幾つかの実施形態では、高品質の画像記録は、低レベルの画像記述子、又ははるかに高い周波数(例えば、ジャイロから、又は画像を通じて推定される;追跡に関連する)で撮影された実行された動きの平面推定値によってもサポートすることができ、それにより、画像をより良好に相関させ、「スティッチングされた」パノラマ画像を最適化することを可能にする。幾つかの実施形態では、捕捉されたフレーム間の視差を低減し、最小限の視覚的アーチファクトでレンダリングすることを可能にするために、画像(又はビデオ)のシーケンスが記録される。安定性を改善するために、捕捉モバイルデバイスのセンサ(IMU/加速度センサ)を使用することができる(及び/又はキューに基づく画像とのセンサ融合)。
【0063】
[0084]SKUを捕捉している間、ユーザは、バーコードが認識可能なSKUのアップ画像を捕捉することもできる。これらのアップ画像は、製品及び/又はバーコードの高分解能画像を拡大及び/又は表示することができるように、俯瞰画像に組み込むことができる。スティッチングアルゴリズムは、大きな視差及びスケール変化を考慮に入れる。視覚的アーチファクトを最小限に抑えるために、画像の曲げは慎重に行われる。幾つかの実施形態では、アップ画像は全てのSKUで利用可能であり、概要画像は、互いに対してアップ画像を参照し、必要に応じて、アップ画像の間に内容を記入するために使用される。幾つかの実施形態では、視覚的アーチファクトを最小限に抑えるために、アップ画像のスタイルは俯瞰画像と照合される。これは、コントラスト、輝度、彩度値、又は合成露出補正(又は同様の技術)の適応を含むことができる。幾つかの実施形態では、ブレンドは、俯瞰画像と新しいアップ画像との間の滑らかな遷移のために適用され、両方の画像からのコンテンツが重ね合わせられる。幾つかの実施形態では、最適な継ぎ目位置検出のために「継ぎ目彫刻」アルゴリズムが使用される。
【0064】
[0085]
図11は、棚の視覚画像1108を有する棚
図1104の一実施形態である。製品情報を視覚化に統合することができる。例えば、視覚化は、製品によって検索可能であってもよく、検索された製品は、画像視覚化内で強調表示可能であり、視覚化は、価格、在庫レベル、アレルゲンなどの製品情報とのオーバーレイを含むことができ、特定の製品を画像内で強調表示することができる(例えば、販売促進中の製品や、すぐに販売促進に変更すべき製品、又は、平行四辺形において誤った価格又は誤った位置を有する製品)。
【0065】
[0086]
図12には、複数の画像からディスプレイ上の物体の視覚的表現を作成するためのプロセス1200の一実施形態のフローチャートが示されている。プロセス1200は、ステップ1204において、複数の画像を取得することによって開始し、複数の画像は、第1の画像及び第2の画像を含む。ステップ1208において、第1の画像内のコードが検出される。ステップ1212において、第2の画像内のコードが検出される。コードが復号されて、第1の画像内の物体の識別情報が受信される(ステップ1216)。一組の特徴が第1の画像において識別される(ステップ1220)。ステップ1224において、特徴のセットが第2の画像において識別される。ステップ1228において、第1の画像内の特徴のセットの位置を第2の画像内の特徴のセットの位置と比較することに基づいて、第2の画像の位置に対して第1の画像の位置が計算される。ステップ1232において、ブレンド画像を作成するために、第2の画像に対して第1の画像を計算することに基づいて、第1の画像を第2の画像とブレンドする。ブレンド画像は、ステップ1236において、物体を識別する関連データと共に記憶される。幾つかの実施形態では、結合画像のメタデータは、結合画像と物体を識別する情報とをリンクするデータベースへのリンク又は参照を含む。
【0066】
[0087]幾つかの実施形態では、システムは、光学コードを読み取り、ディスプレイ上の物体の画像を取得するモバイルデータコレクタ、ディスプレイ上の物体と並置された光学コードを有するラベル、及び/又は1つ以上の画像内の少なくとも1つの物体の識別情報を受信し、互いに対する2つ以上の画像の位置を計算し、及び/又は1つ以上の画像からパノラマ画像表現を計算する1つ以上のプロセッサを備える。
【0067】
[0088]バーコード復号化、OCR、及び/又はビジュアルシェルフの同時使用
[0089]幾つかの実施形態では、組み合わされたツールは、関連する店舗が幾つかのタスクを同時に行うことができるようにし得る。例えば、バーコードを走査することができ、光学文字認識(OCR)を使用して価格ラベルを復号することができ、バーコード(例えば、データベースを参照することによって)を走査することから確認された製品と価格を関連付けることができ、一致を検証するために製品と関連付けられた価格を価格ラベルと比較することができる。価格検証が実行されている間、画像を使用して在庫切れの状況を探すことができる。したがって、作業タスクは、関連者又はロボットによって1回のウォークスルーで行うことができる。
【0068】
[0090]OCRを使用するなど、幾つかの復号タスクは計算集約的であり得る。コードを一度復号し、次いでコードを復号せずにコードを追跡することにより、計算リソースを節約することができる。
【0069】
[0091]A.小売環境におけるユーザの例
[0092]i.コンサルタント-小売業
[0093]スーザンは約30歳の店員である。店舗は、中型の食料品チェーンである。スーザンは大学の学位を有していない。スーザンは自分のモバイルデバイスの使い方を知っているが、彼女は技術に精通しているとは考えられない。スーザンは、過去2年間に小売雇用者を3回変更している。彼女は週によって異なるシフトで働く。彼女の仕事の一部として、彼女のボスは、彼女に定期的に店を歩いて回り、価格ラベルの検証、棚のギャップの記録、又はプラノグラムコンプライアンスの検証などの特定のデータ収集タスクを実行するように依頼する。スーザンは、Zebra TC52デバイスにアクセスできる。スーザンの最大の懸念は、できるだけ迅速に、できるだけ正確に店舗のウォークスルーを実行することである。
【0070】
[0094]スーザンは、値札情報(PLI)を収集及び/又は検証するために1000秒間のSKUを迅速に走査するために電話でセッションを実行することを望む。これは彼女にとって日常的な課題であり、速度と精度が重要である。彼女は、価格ラベル検証のためにSKUを走査するとき、棚上のSKUのデジタルマップも作成したいと考えている。スーザンは、自分の電話でセッションを実行してデータを収集し、そのデータをクラウド内のサーバにアップロードすることが好ましい。
【0071】
[0095]この例では、スーザンはSKUを走査し、個々の日付コードを見て、最も早く期限切れになるコードをアプリケーションに入力することができる。他の構成では、個別の日付コードは、個別の日付コードの画像を使用して復号される。別の変形例では、スーザンは、見つかった全ての日付コードをアプリに入力し、各日付コードに関連付けられた製品の数量も指定する。また、スーザンは、別のタスクで作業している間に棚の隙間を識別することもできる。彼女は、ギャップまで歩いて行き、ギャップに関連するSKUを走査することができる。ユーザインタフェースにおいて、彼女は、棚に残っている製品の数を任意選択的に指定することができる。
【0072】
[0096]ii.ポール・店舗・マネージャ
[0097]ポールは約45歳で、既婚で、夫婦の子供がいる。彼は、一般に、大型食料品チェーンにおいて店の経営者として午前8時から午後6時まで働く。ポールはある程度の大学を有し、モバイルデバイスユーザよりもデスクトップユーザに近い。彼は、大部分の時間を自分の大きなコンピュータスクリーンの後ろの管理オフィスの自分の机で費やす。ポールはこのチェーンのためにほぼ20年間働いてきた。彼は、常に行われているやり方で行うことを好む。ポールは、日常的な店舗のウォークスルーのためのスケジュールを維持し、店舗の従業員を直接監督する。ポールは職場で自分のiPhone(登録商標)8を使用している。
【0073】
[0098]ウェブベースのアプリケーションで、Paulは、コンプライアンス及び運用上の問題、例えば、再印刷及び交換されるラベル、ギャップが満たされたこと等を列挙したタスクリストを作成することができ、問題が解決されたことをポータル上で確認することができ、店舗内の動作タスク/データ、時間フレーム、タスクを実行する店舗関連付け、イベントのタイプ(PLノンコンプライアンス、ギャップ走査など)に関するレポートをレビューすることができ、上記に関する要約統計を点検し、指定された時間フレーム/タイムラインにわたる企業傾向を示すことができ、及び/又はShelfViewにズームし、棚の最新の視覚的データをレビューすることができる。
【0074】
[0099]iii.カミラ-全国的な店舗の運営
[0100]カミラは、約50歳であり、既婚であり、2人の成長した子供を有する。彼女は、一般に、午前9時から午後7時まで勤務し、200の店舗の店舗運営を担当する。彼女はMBAの学位を有する。カミラは、自身のモバイル、iPad(登録商標)、及びWindowsラップトップの間を流暢に移動する。彼女は、どこからでも、いつでも、動作を監視することに慣れている。カミラは、現在の役割を2ヶ月しか担っていないが、彼女が新しいソフトウェアツールをプッシュしようとしたときに、IT部門から既に抵抗を受けている。彼女の最大の問題は、店舗で行われているタスクのリアルタイムの可視性がないことである。したがって、会社が関連する規制に準拠しているかどうかが分からない。
【0075】
[0101]ウェブベースのアプリケーションでは、カミラは、店舗内の動作タスク/データに関するレポートをレビューすることができ、報告を店舗のサブセット、時間フレーム、タスクを実行する店舗関連付け、イベントのタイプ(PLノンコンプライアンス、ガブ走査など)にフィルタリングすることができ、上記に関する要約統計を点検し、指定された時間フレーム/タイムラインにわたる企業傾向を示すことができ、及び/又はShelfViewにズームし、棚の最近の視覚的データをレビューすることができる。
【0076】
[0102]B.典型的なシステム構成要素
[0103]ウェブベースのアプリケーションは、複数の小売業者が同じシステムでホストされるマルチテナント;店舗アソシエイト、店舗管理、企業管理などの異なるアクセスレベルを有する複数のユーザ役割、日時、セッション識別子(ユーザ、日付、店舗)、復号された光コード(統一製品コード(UPC)、国際物品番号(EAN))、棚/位置識別子プレースホルダ、高分解能、検出されたバーコードの生画像、又は復号される他のエリア(OCR)、全視野の低分解能画像、及び/又は他のフィールド(例えば、以下の出願に記載されているように)のうちの1つ以上を含むことができる複数のデータ要素のために構成可能であり、個々のデータフィールドは、個々の削除スケジュール(ストレージの必要性及びプライバシーの懸念)に対して適格とすることができ、顧客は、a)毎日、b)48時間後、c)毎週など、多数のスケジュールでデータ削除をスケジュールする能力を有することができ、及び/又は削除は、データ収集後の日付及び指定された期間にスケジュールすることができる。
【0077】
[0104]ウェブベースのアプリケーションは、CSV、XLS、又はPDFなどの特定のフォーマットでフィルタリングされたデータダウンロードを含むデータレポートを提供するように構成することができ、フィルタリングされたデータレポートは、ウェブAPIを介して利用可能とすることができる。
【0078】
[0105]C.例示的なアプリケーション及びワークフロー
[0106]アプリケーションは、単一のSKUモードを有することができる。単一のSKUモードは、ウォークアップギャップ走査/PLV SKU走査用に構成することができる。このモードでは、店舗は関連して棚の隙間まで歩いて行き、SKUコードを走査する。ユーザインタフェースは、製品の表示位置がカメラの視野内にあるようにオペレータを案内する。システムは、ラベルの高分解能画像及び周囲エリアのJPG画像をアップロードする。ユーザは、以下のデータ、すなわち、在庫残数、最も早い日付コード、及び/又は一般的なテキスト入力(無料コメント)を手動インタフェースに入力するオプションを有する。バックエンドでは、データは以下のように処理される:正しくない場合、PLVが実行され、PLイベントリストに追加され、ギャップイベントリストに追加され、利用可能であれば、他の情報(在庫レベル、日付コード)をログする、及び/又は棚位置の視覚情報が棚パノラマ画像に含まれる。
【0079】
[0107]単一のSKUモードは、「ウォークアップデータエントリ」SKU走査用に構成することができる。このモードでは、店舗関連者は、値札又はSKUまで歩いて行き、コードを走査することができる。ユーザインタフェースは、製品の表示位置がカメラの視野内にあるように、関連する店舗を案内することができる。システムは、ラベルの高分解能画像及び周囲エリアのJPG画像をアップロードする。ユーザは、手動インタフェースに、以下のデータ、すなわち、在庫切れ、在庫残数(在庫切れ及び「低在庫」を含む)、最も早い日付コード、及び/又は一般的なテキスト入力(自由コメント)を入力するオプションを有する。バックエンドでは、データは以下のように処理される:正しくない場合、PLVが実行され、PLイベントリストに追加され、在庫が少ない/0の場合、ギャップイベントリストに追加され、及び/又は、利用可能であれば、他の情報(在庫レベル、日付コード)を記録する
【0080】
[0108]単一のSKUモードは、系統的棚走査などのバッチモード用に構成することができる。このモードでは、店舗は、左から右、上から下に移動して、指定された棚上の全ての製品を体系的に走査する。ユーザインタフェースは、製品の表示位置がカメラの視野内にあるように、関連する店舗を案内するように構成することができる。システムは、走査ごとにラベルの高分解能画像及び周囲エリアのJPG画像をアップロードする。ユーザ(例えば、店舗関連者)は、手動インタフェースに、以下のデータ、すなわち、「在庫切れ」を含む在庫残数、最も早い日付コード、及び/又は一般的なテキスト入力(自由コメント)を入力するオプションを有する。更に、ユーザは、以下を行う、すなわち、棚/モジュール識別子(左上隅)を走査又は入力する、走査を消去して誤りを訂正する、及び/又は任意のSKUから走査を開始することによって同じ棚/モジュールのデータ収集を再開する(そのSKUに続くデータは上書きされる)オプションを有する。左から右への走査を例に挙げているが、他の走査パターン(例えば、右から左、下から上から右など)を使用することもできる。幾つかの実施形態では、走査パターンは、デバイスの方向によって決定される。例えば、縦方向に保持された電話は、カメラの視野内により多くのSKUが存在するように下方向に走査するために使用することができ、一方、横方向に保持された電話は、視野内に2つ以上のSKUが存在する可能性が高いように右から左に走査することができる。バックエンドでは、データは以下のように処理される:正しくない場合、PLVが実行され、PLイベントリストに追加され、在庫が少ないか又は在庫切れである場合、ギャップイベントリストに追加され、又は利用可能であれば他の情報(在庫レベル、日付コード)、及び/又は棚位置の視覚情報は、視覚状態/棚パノラマ画像を再構築するために使用される。
【0081】
[0109]D.例示的な性能測定基準
[0110]幾つかの構成では、アプリケーションは、以下の性能測定基準及び/又は公差を有する。速度:適度に熟練したオペレータは、単一のコードの走査を完了するために時間あたり500ms以下を費やす。SKUマッピング:SKU間の距離は、測定されたSKUの99%について真の距離の+/-10%以内である。SKUマッピング及び視覚化:スティッチングプロセスからの明らかな視覚的アーチファクトはない。
【0082】
[0111]E.画像のアップロード及び処理の例
[0112]幾つかの構成では、検出されたコード(例えば、バーコード、値札など)の高分解能生画像がアップロードされ、及び/又はラベル、在庫を有する表示エリア、及び/又は隣接するラベルを示す画像フレーム全体のJPEG品質画像がアップロードされる。バーコードビューファインダは、在庫位置がカメラの視野内にあることを合理的に保証するように配置される。
【0083】
[0113]オンデバイスPLVの場合、単一のSKUデータ捕捉PLVをデバイス上で直接実行することができ、その結果は拡張現実(AR)オーバーレイでユーザに示される。幾つかの実施形態では、結果がユーザに提示されるのに500msを超えない。
【0084】
[0114]バックエンドPLV処理の幾つかの構成では、偽陽性は10%以下である(検出された誤りの10%)。セッション/日からの誤った価格ラベルは、人間のオペレータによる品質レビューのために画像データと共にアクセス可能であり得る。データは、オペレータが画像ごとに迅速に確認し、誤って復号されたラベルにフラグを立てる/修正することができるように、オンラインオペレータに提示することができる。品質管理後、データをPLVタスクリストに追加することができる。
【0085】
[0115]SKUマッピング及び視覚化の幾つかの構成では、ユーザが1つのSKUを次々に走査しているとき、SKUの順序を維持することによってマップが構築されている。データ収集は、地図を構築する間のSKU間の距離を含むことができる。マップは、棚間の垂直距離を含むことができる。
【0086】
[0116]手動ステータス入力を使用する幾つかの構成では、ユーザは在庫レベルをカウントし、ユーザインタフェース(例えば、バッチ走査又は個々のSKU走査中に)を介して情報を入力することができる。モバイルデバイス上のインタフェースは、企業ユーザによって構成可能であり得る(例えば、店舗関連付けによって実行されるべきデータ入力オプションのみを示すために)。例えば、在庫インタフェースは、店舗が幾つかの製品を入力するために店舗を関連付けるための番号入力フィールドを有することができる。在庫切れインタフェースは、在庫切れボタン、低在庫ボタン、補充ボタン、及び/又は特定の補充/再注文(番号入力フィールド)を含むことができる。日付コードインタフェースは、最も古い日付コード(日付入力フィールド)、複数の日付コード、及び/又は在庫番号(例えば、数字及び/又は日付のリスト)を含むことができる。
【0087】
[0117]F.例示的なポータルアプリケーション
[0118]SKU、タスク、イベント、及び/又は日付コードレポートの幾つかの構成では、ユーザは、以下、すなわち、違反をもたらさなかった走査を含む、特定の時間範囲内の全ての走査イベント;特定の時間範囲内の棚画像;及び/又は特定の時間範囲内の違反を示す特定のSKUに関するレポートを要求することができる。ユーザは、以下の基準、すなわち、特定のカレンダ範囲で収集されたタスク;特定のデータ収集セッションで収集されたタスク;特定のユーザによって収集されたタスク;特定の製品カテゴリ内のタスク;特定の種類のタスク(例えば、日付コード、在庫切れ、価格ラベル修正);ユーザ入力によって確認された解決済み違反(例えば、日付コード違反、在庫切れ、価格ラベル修正);及び/又はシェルフ走査によって確認された解決された違反(例えば、日付コード違反、在庫切れ、価格ラベル修正)のうちの1つ以上によってフィルタリングされたSKU及び/又はイベントに関するレポートを要求することができる。ユーザは、以下の基準、すなわち、特定のカレンダ範囲内の日付コード、特定の製品カテゴリ内の日付コード;ある時間窓で収集された日付コード;日付コード違反(日付コードが合格);及び/又は解決された日付コード違反のうちの1つ以上によってフィルタリングされた日付コード(例えば、日付コードレポート)を有するSKUに関するレポートを要求することができる。
【0088】
[0119]棚の視覚化の幾つかの構成では、バックエンドシステムは、個々のSKU画像(バッチモード/SKUマッピング)から棚の表現(棚パノラマ)をスティッチすることができる。視覚化は「クリック可能」であり得る。例えば、ユーザは、画像又はSKUのセクションをクリックすることができ、メタデータポップアップは、画像が撮影された日時、画像が撮影された時点からの任意のユーザ入力、及び/又はステータス情報を含む。幾つかの実施形態では、視覚化は「ズーム可能」であり、ユーザは特定の棚位置又はSKUにズームイン(例えば、特定の棚位置又はSKUのビューを拡大)することができる。視覚化は検索可能とすることができ、ユーザはSKU番号又は製品説明を入力し、その製品の位置/画像に「飛行」することができる。SKUの新しい走査/画像が利用可能になると、パノラマ内の古い画像が新しい走査/画像に置き換えられる。
【0089】
[0120]幾つかの構成では、ダッシュボード又はポータルは、要約統計及び/又はタイムラインを含むことができ、タイムラインは、走査間の平均時間(全てのSKUにわたる平均)、1日/週によるPLV違反、曜日別在庫切れ事象、日/週による総走査、及び/又は走査間の平均時間(全てのSKUにわたる平均)を含むことができる。
【0090】
[0121]バックエンドの幾つかの構成では、データベースは、モバイルデバイス(例えば、履歴データを含む上記のデータ)からのデータを記憶することができ、新しい構造化データ(例えば、在庫数)の将来の証明となり得る。幾つかの実施形態では、バックエンドは、製品データベース、例えば、公開データベース、ウェブデータベース、小売業者のデータベース、又は製造業者のデータベースにアクセスするために使用することができる。メタデータは、棚カテゴリ(例えば、飲料、シリアルなど)から始まる全ての棚に追加することができる。フィルタリング/クエリは、パラメータ(例えば、棚ID、店舗ID、ユーザIDなど)によっても許可され得る。幾つかの実施形態では、バックエンドプロセスを使用して、収集された画像から在庫切れの状況を決定することができる。セキュリティ及び認証のために、アプリケーション(例えば、API及び/又はデータベース)は、マルチテナント対応(3~10人のパイロット顧客)とすることができ、1人の顧客によってアップロードされたデータは、1人の顧客のみがアクセス可能/照会可能である。固有の構成IDを使用してアップロードを区別することができる。また、幾つかの実施形態では、企業機密情報(例えば、価格、製品位置など)は(例えば、最大のプライバシー及びデータセキュリティを保証するために)クラウドデータベースに格納されない。
【0091】
[0122]API又は他のインタフェースの幾つかの構成は、モバイルデバイス及び/又はクラウドとの間でデータを送信するための内部APIを含む。例えば、モバイルデバイスによって収集された店内データを、クラウド及び/又は製品データベースにアップロードすることができ、モバイルデバイスによってクラウドからダウンロードすることができ、この場合、特定の列(例えば、価格及びSKU列)のみを選択する可能性を伴う。顧客がバックエンドデータベースに問い合わせるための外部APIは、特定の店舗(例えば、このエンドポイントは最新の走査のみを返し、履歴データは返さない;/{店舗}/{棚})内の1つの棚の走査を問い合わせるためのAPIエンドポイント、製品データベースを更新するAPIエンドポイント、バックエンドデータベースが店舗内データをCSV(カンマ区切り値)形式にエクスポートする、APIを確保する、顧客がCSV形式でエクスポートできるようにする、及び/又は履歴データ(例えば、時間期間によって)によるクエリを可能にする可能性を含むことができる。
【0092】
[0123]本明細書に開示されたシステム及び/又は方法を使用して、視覚カタログの確立及び/又は維持、SKU固有及びSKU非依存の在庫切れ検出、価格ラベル検証(PLV)、同時マッピング及びPLV、及び/又はOCR、及び/又はウェブブラウザでのバーコード復号を達成することができる。画像は、棚にあるモバイルカメラ、ドローン、ロボット、固定棚カメラ、及びモバイルバーコード走査による同時画像取り込みを含む、幾つかの方法で取り込むことができる。
【0093】
[0124]開示される幾つかの実施形態は、小売店からの価格設定情報を集約する情報システムを動作させるための方法及び/又はシステムに関する。より具体的には、非限定的に、幾つかの実施形態は、撮像ツールを使用して物体の撮像データを取得すること、撮像ツールを使用してサイネージから価格設定情報を取得すること、撮像ツールを使用して製品の在庫情報を取得すること、撮像ツールを使用してレシートから情報を取得すること、価格設定情報を再構築するために予測アルゴリズムを使用すること、公的に利用可能なソースから利用可能な価格設定情報を組み込むこと、製品を購入する場所に関する推奨を発行することから価格設定情報を組み込むこと、1つ以上の第三者に情報を提示すること、利用可能な選択肢に基づいてどの製品を購入するかに関する推奨を発行すること、小売店を運営すること、及び、競合価格に関する情報に基づいて価格を調整することに関する。システム又は方法は、小売陳列又は棚で価格ラベルを画像化するために製品を走査すること、ドローンを使用して棚の製品を走査すること、棚で製品を走査するためにロボットを使用すること、消費者デバイスを使用してディスプレイで製品及び/又は価格を走査すること、購入された製品の価格設定を記録するために、ショッピングレシートを走査及び/又は解析すること、購入された製品の価格設定を記録するためにデジタルレシートを解析すること、及び/又はサイネージを走査及び解釈して、価格設定及び特別オファーを推測することを含むことができる。
【0094】
[0125]幾つかの実施形態において、小売ディスプレイの状態を検出するシステムは、ウェブブラウザソフトウェアで有効にされたモバイルデータコレクタ、カメラモジュール、ディスプレイ上の物体と共に配置された光学コードを有するラベル、及び/又は、カメラモジュールによって捕捉された1つ以上の画像内の少なくとも1つの物体の前記識別情報を受信し、カメラモジュールによって捕捉された1つ以上の画像内の少なくとも1つの物体のディスプレイ上での価格を受信し、少なくとも1つの物体の意図された価格をデータベースから受信し、及び/又はディスプレイ上での価格を意図された価格と比較し、結果を報告する、1つ以上のプロセッサを備える。システムは、ウェブブラウザソフトウェアで有効にされたモバイルデータコレクタ、カメラモジュール、ディスプレイ上の物体と共に配置された光学コードを有するラベル、及び/又は、カメラモジュールによって捕捉された1つ以上の画像内の少なくとも1つの物体の識別情報を受信し、カメラモジュールによって捕捉された1つ以上の画像から表示上の物体に関する情報を復号し、及び/又はカメラモジュールによって捕捉された1つ以上の画像からディスプレイ上の少なくとも1つの物体のマップを計算する1つ以上のプロセッサを備えることができる。システムは、モバイルデータコレクタ、カメラモジュール、ディスプレイ上の物体と共に配置された光学コードを有するラベル、及び/又は、カメラモジュールによって捕捉された1つ以上の画像内の少なくとも1つの物体の識別情報を受信し、カメラモジュールによって捕捉された1つ以上の画像から表示エリアに関する画像データを受信し、及び/又はカメラモジュールによって捕捉された1つ以上の画像から表示エリア内の少なくとも1つの物体の存在を検出する、1つ以上のプロセッサを備えることができる。システムは、モバイルデータコレクタ、カメラモジュール、ディスプレイ上の物体と共に配置された光学コードを有するラベル、及び/又は、カメラモジュールによって捕捉された1つ以上の画像内の少なくとも1つの物体の識別情報を受信し、カメラモジュールによって捕捉された1つ以上の画像から表示エリアの画像データを受信し、カメラモジュールによって捕捉された1つ以上の画像から表示エリア内の少なくとも1つの物体の存在を検出し、及び/又は1つ以上の物体の画像データを1つ以上の物体の識別情報と共にデータベースに保存する1つ以上のプロセッサを備えることができる。
【0095】
[0126]超高速走査
[0127]モバイルデバイス(例えば、スマートフォン;錠剤)は、光コードの超高速走査に使用することができる。幾つかの構成では、モバイルデバイスは、広角レンズ(例えば、焦点が固定されている-AF遅延なしの近接した被写界深度及びより良い被写界深度のために)、高フレーム/秒(例えば、速度及び/又は冗長性のために)、非常に短い露光時間(例えば、動きぼけを回避するために)、及びトーチ(例えば、追加の照明及び/又は照準のために)を使用する。
【0096】
[0128]
図13は、光学パターン1304を迅速に走査するモバイルデバイス1300の一実施形態である。光学パターン1304は、
図1のコード104とすることができる。幾つかの実施形態では、超高速走査又は高速走査は、画像を取得し、光コードを検出し、0.25秒未満及び/又は0.002秒以上で光コードを復号することを指す。
【0097】
[0129]モバイルデバイス1300は、カメラと、ディスプレイと、1つ以上のプロセッサとを備える。カメラは、画像センサ及びレンズを備える。レンズは、画像センサに光を集束させるように構成される。1つ以上のプロセッサは、複数の画像を取得し、複数の画像を解析して複数の画像内の光学パターンを検出し、光学パターンを復号してデータペイロードを取得し、データペイロードをモバイルデバイスのメモリデバイスに保存するように構成される。
【0098】
[0130]通常のレンズは、画像センサの対角測定値にほぼ等しい焦点距離を有するレンズである。通常のレンズは、人間の目の画角と同様に、約58°(例えば、斜めに測定される)の画角を有する。広角レンズは、通常のレンズよりも画角が大きい。モバイルデバイス1300のカメラのレンズは、広角レンズである。幾つかの実施形態では、レンズは超広角レンズ(例えば、100,120度以上、又は125度以上、及び/又は128,130,150度以下、又は180度以下の画角を有する)である。例えば、レンズは128度の画角を有する。カメラの被写界深度が大きいほど、モバイルデバイス1300から光学パターン1304までの距離は、設定された焦点で大きく変化し得る。幾つかの構成では、13mmの焦点距離(120度の画角)、2.4の開口、及びセンササイズ1/3.6インチのカメラが使用される。
【0099】
[0131]カメラのレンズは、複数の画像の取得中に固定焦点に設定される。固定焦点に設定されたレンズは、単焦点レンズであってもよく、又はレンズは、オートフォーカス機能が無効にされた可変焦点レンズ(例えば、焦点は、0から1の間の特定の所定の値に設定される)であってもよい。単焦点レンズは可変焦点を有さない。カメラのレンズは、光学パターンを復号するためのアプリケーションがフォーカスアルゴリズムが実行されるのを待たないように、画像取得中に固定焦点に設定される。オートフォーカスは、走査の遅延を引き起こす可能性がある。しかしながら、幾つかの固定焦点設定は、被写界深度が小さい。より広い角度のレンズ又はより広いズーム設定を使用すると、被写界深度を増大させることができる。
【0100】
[0132]複数の画像のそれぞれの露光時間は、500分の1秒以下であり得る。露光時間は、動作ぼけを低減するために短い。ISO(カメラのセンサの感度;フィルム速度又はゲインと呼ばれることもある)は、手動で設定(例えば、自動露出がオフにされる)又はカメラによって制御(例えば、調整された)することができる。特定のカメラモデルについて、本発明者らは、モバイルデバイス(例えば、「トーチ」又は「懐中電灯」)上で光を使用しながら、様々な条件下で光学パターン1304を良好に露光するために、1/750秒の露光が特に有益であることを見出した。自動計量は、しばしば18%グレー標準を使用する。光学パターン1304を検出及び復号するために、1つ、2つ、3つ、又はそれ以上のストップで計量を停止することができる。カメラは、利用可能な光の量に応じてISOを自動的に調整することができる。幾つかの実施形態では、露出は、1/500以上及び/又はカメラの最大シャッタ速度(例えば、1/2000又は1/8000)以下である。一部の電話モデルは画像のノイズ性を露出させることを好まず、したがってゲイン調整を制限するため、露出の選択は重要であり得る。露光(例えば、1/750秒)を選択的に選択すること、及び/又はトーチを使用することにより、複数の画像を様々な作業条件にわたって適切に露光することができる。幾つかの実施形態では、トーチは、カメラの露出測定に関係なく、複数の画像の取得中に作動される。
【0101】
[0133]複数の画像は、カメラのフレームレートで取得される。フレームレートは、30フレーム/秒(fps)より大きい。幾つかの実施形態では、フレームレートは、30、60、90fps以上、及び/又は120,150,180、又は240fps以下である。例えば、フレームレートは120fpsに設定される。高フレームレートでは、光コードの画像が多く取得される。光コードが1つのフレーム内で読取り不可能である場合(例えば、光学パターン1304のプラスチックカバー上のトーチによって引き起こされるグレアがあるため)、光コードを有する他のフレームが存在し、これを使用して光コードを復号することができる(すなわち、光学パターン1304を含むより多くの画像フレームを有することは、冗長性を提供する)。
【0102】
[0134]高フレームレートで複数の画像を取得し、複数の画像を処理することは、計算集約的であり得る。計算強度を低減するために、画像全体ではなく、各画像の制限エリアが走査される(例えば、処理済み)。制限エリアは、使用事例に基づいて使用することができる。例えば、制限エリアは、カメラフレームの中心にあり、カメラ画像フレームの高さの1/3に等しい高さと、カメラ画像フレームの幅に等しい幅とを有する。幾つかの実施形態では、制限エリアは、フレームの中心にあり、60%、50%、40%、又は33%以下の高さを有し、画像フレームの高さの25%以上又は33%以上の高さを有し、及び/又は画像フレームの幅の50%、66%、75%、又は100%以上の幅を有する。画像の中央の制限エリアに走査を制限することは、広角レンズによって取得された画像の端部で歪みが大きくなるため、超広角レンズによって取得された画像に有益であり得る。幾つかの実施形態では、マトリックス走査は、各フレーム内のコードを復号しようとする代わりに、コードを追跡するために使用される。光コードの追跡を使用して、計算を減らすことができる(例えば、各フレーム内の光コードを復号しようとする代わりに、コードを追跡する)。
【0103】
[0135]幾つかの実施形態では、モバイルデバイス1300はトーチを備える。トーチは、懐中電灯と呼ばれることもある。トーチは、光1320を発するように構成される。トーチは、発光ダイオードを備えることができる。トーチレンズを使用して、発光ダイオードから放射される光ビームを誘導、拡散、及び/又は成形することができる。
【0104】
[0136]高速走査を使用して、多くの光学パターン1304を並列に(例えば、1つの画像フレーム内の2つ以上の光学パターン1304)及び/又は順次に(例えば、モバイルデバイス1300を食料雑貨品売場の棚に沿って移動させるユーザ(例えば、
図13に示すように))検出及び復号することができる。
図13には、第1の光学パターン1304-1及び第2の光学パターン1304-2が示されている。ユーザが棚に沿ってモバイルデバイス1300を移動させると、モバイルデバイス1300のカメラは複数の画像を取得する。複数の画像は、第1の光学パターン1304-1を検出及び復号して第1のデータペイロードを取得し、第2の光学パターン1304-2を検出及び復号して第2のデータペイロードを取得するために解析される。第1データペイロード及び第2データペイロードは、モバイルデバイス1300のメモリに保存され、及び/又は(例えば、無線及び/又はインターネットを介して)リモートハードウェアサーバに送信される。
【0105】
[0137]多くの画像を取得し、多くの画像を処理し、トーチを使用することは、バッテリを使用することができ、計算集約的であり得る。したがって、幾つかの実施形態では、トーチが作動され、及び/又は複数の画像が、ユーザ動作の指示を受信しながら処理される。例えば、ユーザが指でモバイルデバイスのディスプレイに触れている間(例えば、ディスプレイはタッチスクリーンである)、アプリケーションは高速走査モードに入る。高速走査モードでは、トーチがオンにされ、カメラが画像の取得を開始し、カメラのフレームレートが増大され(例えば、120fpsまで)、及び/又はシャッタ速度が高速化される(例えば、1/750秒まで)。ユーザがディスプレイから指を離した後、アプリケーションは高速走査モードを終了する。高速走査モードを終了した後、トーチはオフにされ、フレームレートは低減され、及び/又はカメラはオフにされ、及び/又はシャッタ速度は通常に戻る(例えば、カメラは、シャッタ速度の自動制御を用いて自動露出に戻る)。トーチ値は、複数の画像の取得中、一定である(例えば、トーチは、カメラが暗い環境で写真を撮影しようとしているときのように点滅しない)。アプリケーションが高速走査モードにある時間を短縮することにより、バッテリ使用量及び/又は計算リソースが削減される。
【0106】
[0138]アプリケーションが高速走査モードに入る及び/又は高速走査モードから出ることができる追加の及び/又は他の方法がある。例えば、ディスプレイ上の第1のダブルタップはアプリケーションをトリガして高速走査モードに入り、シングルタップは光学コードを選択するために使用され、及び/又は第2のダブルタップは高速走査モードを終了するために使用される。ハードウェアボタンを使用して、高速走査モードに入ることができる。例えば、ハードウェアボタンは、モバイルデバイス(例えば、音量ボタン、電話の背面の隠しボタン、ホームボタンなど)上にあってもよく、及び/又はモバイルデバイスのケース上に一体化されてもよい。幾つかの実施形態では、ソフトウェアボタンが使用される。例えば、モバイルデバイスのスクリーンには、「SCAN」という単語を有する矩形アイコンが表示される。ユーザが長方形のアイコンが表示されている位置でスクリーンをタッチする限り、アプリケーションは高速走査モードに入る。幾つかの実施形態では、慣性測定ユニット(IMU)からのデータを使用して、高速走査モードに入る及び/又は高速走査モードから出る。例えば、シェイク又は指タップに対応するIMUからのセンサデータは、アプリケーションによって、高速走査モードに入る又は出る指示として使用され得る。
【0107】
[0139]
図14は、第1のタイプのバーコードを走査するためのカメラ焦点設定の関数としての走査範囲を示すチャート1400を示す。第1のタイプのバーコードは、EAN 13バーコードである(例えば、最も薄い要素は6ミル又は1000分の6インチである)。チャート1400は、異なる焦点値に対する可変焦点レンズ(「メインレンズ」)と比較した超広角カメラの走査範囲(ミリメートル単位)を示す。例えば、モバイルデバイスは、2つ以上の外方向カメラ(例えば、モバイルデバイスのスクリーンの法線方向と一致しない方向、又はそこから180度の方向を向いているカメラ)を備える。
【0108】
[0140]超広角カメラの画角は128度である。超広角カメラは、27から355mmの走査範囲を有する。メインレンズの焦点値は、0と1との間(10分の1刻み)であり、0(又は0%)が最も近い平面であり、焦点1(又は100%)が最も遠い焦点面である。超広角カメラは可変焦点レンズよりも広い走査範囲を有するが、可変焦点レンズの焦点値は0から0.5の間である。0.6及び0.7の焦点値において、可変焦点レンズは、超広角カメラよりも大きい走査範囲、それぞれ65~520mm及び105~720mmを有する。しかしながら、モバイルデバイスは、超広角レンズ(例えば、超広角レンズのわずか27mmと比較して、焦点値0.6及び0.7の可変焦点カメラの場合は65及び105mm)よりも走査するために光コードから離れている。
図15に示されているように、第1のタイプのバーコードについては違いがあまりないように思われるかもしれないが、異なるタイプのバーコードを走査する場合には違いがより顕著になり得る。
【0109】
[0141]
図15は、第2のタイプのバーコードを走査するためのカメラ焦点設定の関数としての走査範囲を示すチャート1500を示す。第2のタイプのバーコードは、コード128バーコード(例えば、最も薄い要素の幅は0.4mmである)である。チャート1500は、異なる焦点値に対する可変焦点レンズ(「メインレンズ」)と比較した超広角カメラの走査範囲を示す。
【0110】
[0142]超広角カメラは、66~380mmの走査範囲を有する。走査範囲は、フォーカス値が0.6のメインレンズでは184mm~417mm、フォーカス値が0.7のメインレンズでは242mm~562mmである。したがって、超広角カメラで走査することにより、モバイルデバイスは、依然として広い走査範囲を提供しながら、主レンズよりも光学コードにはるかに近いことが可能になる。幾つかの実施形態では、追加の広角レンズ(例えば、100,120度以上、又は125度以上の画角を有するレンズ)を提供するために外部レンズ(例えば、モバイルデバイスの外部)が使用される。幾つかの実施形態では、カメラは、光コードから0.025、0.05、0.06、もしくは0.1メートル以上離れている、及び/又は光コードを復号するために光コードから0.5、0.4、0.3、0.2メートル以下離れているように構成される。
【0111】
[0143]
図16は、デジタルカメラを使用して光学パターンを復号するためのプロセス1600の一実施形態のフローチャートを示す。プロセス1600は、ステップ1604において、複数の画像を取得することから始まる。複数の画像は、固定焦点、広角レンズ、高速露光、高フレームレート、及び/又はトーチを作動させたカメラを使用して取得される。カメラのレンズは、複数の画像の取得中に固定焦点に設定される。例えば、単焦点レンズや固定値に設定された可変焦点レンズである。レンズは、広角レンズ(例えば、60度又は75度以上の画角を有する)又は超広角レンズ(例えば、90,100度以上、又は120度以上の画角を有する)である。露光は速い。例えば、複数の画像の各々の露光時間は、1秒の1/500、1/750、又は1/1500以下である。カメラは、複数の画像を取得する間、高いフレームレートを有する。例えば、フレームレートは、毎秒30、60、90、又は120フレーム以上である。
【0112】
[0144]ステップ1608において、複数の画像を解析して、複数の画像内の光学パターンを検出する。例えば、複数の画像は、1つ、2つ、3つ以上の光学パターンについて解析される。光学パターンは、1次元コンピュータ可読光コード(例えば、バーコード)、2次元コンピュータ可読光コード(例えば、QRコード(登録商標))、及び/又は1つもしくは複数のシンボル(例えば、文字、数字、特殊文字、及び/又は固有記号)であり得る。
【0113】
[0145]ステップ1612において、データペイロード又はデータペイロードを取得するために、1つ以上の光学パターンが復号される。データペイロードは、光学パターンを走査して得られたデータである。データペイロードは、1つ以上の文字、数字、特殊文字、又は他のデータを含むことができる。例えば、3つのバーコードが復号されて、バーコードごとに1つずつ、3つの数値列が得られる。3つのバーコードは、1つの画像フレーム内にあってもよく、及び/又は各バーコードは、別々の画像フレーム内にあってもよい。次いで、ステップ1616において、データペイロードがメモリに保存される。データペイロードをリモートサーバに送信することもできる。
【0114】
[0146]幾つかの実施形態では、モバイルデバイスのトーチ(例えば、懐中電灯)は、複数の画像を取得しながら起動される。例えば、トーチは、露光読取値がトーチがオンでない画像を適切に露光するのに十分な光があることを示すかどうかにかかわらず、カメラによって画像が取得されるとオンになる。トーチは照準器として使用することができる。例えば、トーチは光ビームを照らす。モバイルデバイスが光コードを含む物体に近づけられると、ユーザは光ビームを光コード上で移動させることができる。光コードの画像を取得することができ、光コードが復号される。トーチからの光がグレア(例えば、光コードを覆うプラスチック上で、)を引き起こす可能性があるため、1秒あたりのフレーム数が多い。したがって、フレームの高い流れは、トーチからの光が光コードに直接照射される前又は後にフレームを取得する確率を高め、光コードを復号するために使用することができる。
【0115】
[0147]幾つかの実施形態では、超高速走査を実行しながら光コードが追跡される(例えば、マトリックス走査を使用する)。復号を高速化するために、及び/又は復号をより正確にするために、光コードを追跡することができる。これは、類似又は同一の情報を有する光コードを走査するのに役立ち得る。例えば、幾つかのバーコードリーダは、重複フィルタ、又は手動入力を使用して、バーコードが複数回復号される可能性を低減する(例えば、2回以上)。複製フィルタは、光コードが複数回読み取られないようにタイマを使用することができる。例えば、複製フィルタのタイマは、用途に応じて、0.5秒以上5秒以下(例えば、1、2.1、又は3.5秒に等しい)に設定することができる。一例では、光コードが復号されると、モバイルデバイスはビープ音を発し、スクリーンは瞬間的に緑色になり、光コードが復号されたことをユーザに示す。次に、複製フィルタは、光コードを復号した後にタイマ(例えば、1秒間)を設定し、その間、モバイルデバイスは同じ光コードを再び復号しない(幾つかの実施形態では、光スキャナは、複製フィルタの時間中に他の光コードを検出及び/又は復号する)。重複フィルタを有することは、モバイルデバイスが同じ光コードを複数回復号するのを防ぐのに役立つ。
【0116】
[0148]複製フィルタは、光コードが複数回復号されるのを防ぐのを助けることができるが、複製フィルタには幾つかの欠点がある。第1に、複製フィルタは、タイマが許容するよりも速く同一の光コードを復号することができない。第2に、複製フィルタのタイマは、1つ以上のアプリケーション及び/又はユーザ(例えば、1つのアプリケーション又はユーザにとってうまく機能するタイマに設定された時間は、別のアプリケーション及び/又はユーザにとってうまく機能しない可能性がある)にとって設定(タイプ調整)することが困難であり得る。第3に、1つの画像に複数のバーコードが存在する可能性があり、複数のバーコードは同じ情報を有することができる。例えば、ボックスのスタック上で在庫を実行しながら、各ボックスは1対の靴を含み、各靴の対は互いに同一であり、各靴ボックスはそれに取り付けられた同じバーコードを有することができる。次に、複製フィルタに1秒のタイマを使用すると、在庫のバーコードの走査が遅くなるだけでなく、バーコードを誤ってカウントする可能性がある(例えば、ユーザがあまりにも速く動いていることによるカウント不足、又はユーザが十分に速く動いていないことによるカウント超過)。一部の光スキャナは、各バーコードが固有であり、光スキャナが重複バーコードを無視するために光スキャナがバーコードの数を正しくカウントしないために使用できないという仮定に基づいてバーコードを追跡する。
【0117】
[0149]幾つかのバーコードスキャナは、同じ画像内に同じバーコードである複数のバーコードがある場合に、手動入力(例えば、ソフトウェア又はハードウェアボタン、タップなど)を使用してバーコードを復号する。しかしながら、バーコードを復号する前に手動入力を受け取るのを待つと、復号が遅くなる可能性もある。更に、手動入力を使用することは、ユーザにとって面倒であり得る。場合によっては、走査するための数百の光学コード(例えば、多くの製品の在庫中に)が存在する可能性があり、これはユーザによる数百のボタン押下を使用する。
【0118】
[0150]幾つかの構成では、重複フィルタ(例えば、光コードを復号する間のタイマは使用されない。同一コードを復号する間のタイマを使用しない)、手動入力、及び/又は一意のバーコードの追跡を使用する代わりに、光学コード追跡(例えば、マトリックス走査)が使用される。光コードが復号された後、アプリケーションは、光コードがモバイルデバイスの視野内にある間、光コードを再び復号することなく、光コードを追跡する。特定の構成では、アプリケーションはシーンをマッピングすることなく光学コードを追跡する。例えば、光学コードがもはやカメラの視野内にないようにモバイルデバイスのカメラが移動され、次いで光学コードがカメラの視野内にあるようにカメラが戻される場合、アプリケーションは光学コードを再び復号する。
【0119】
[0151]追跡を使用することにより、重複フィルタは使用されず、プロセスは自動(例えば、手動入力なし)となることができ、及び/又はアプリケーションは、画像又は視野内の複数の同一のコードを復号するために使用され得る。幾つかの構成では、コードの追跡及び/又は重複フィルタの使用の不使用は、超高速走査の幾つか又は全ての特徴なしに実行される。
【0120】
[0152]外部レンズ付きモバイルデバイス取り付け
[0153]
図17は、モバイルデバイス1704用のアタッチメント1702の一実施形態である。アタッチメント1702は、外部アタッチメントである(例えば、アタッチメント1702は、モバイルデバイス1704に取り外し可能に結合されるように構成される)。モバイルデバイス1704はカメラを備える。カメラは、第1のレンズ1708を備える。モバイルデバイス1704はトーチ1712を備える。
【0121】
[0154]アタッチメント1702は、第2のレンズ1716及び第3のレンズ1720を備える。第2のレンズ1716は、アタッチメント1702がモバイルデバイス1704と結合されている間、モバイルデバイス1704のカメラの画角を拡大するように構成される。例えば、第1のレンズ1708は60度の画角を有することができ、第2のレンズ1716はカメラの画角を90,100度、すなわち120度に増大させる。
【0122】
[0155]第3のレンズ1720は、トーチ1712の光を集束させるように構成され、一方、アタッチメント1702は、モバイルデバイス1704に結合される。第3のレンズ1720は、トーチ1712の光をトーチの法線方向(例えば、第3のレンズ1720は、トーチからの光ビームの方向を異なる角度に向け直さない)に集束するように構成される。トーチ1712の方向法線は、モバイルデバイス1704の背面1724の法線ベクトルに平行である。幾つかの実施形態では、アタッチメント1702は、第3のレンズ1720を含み、第2のレンズを含まない。幾つかの構成では、第3のレンズ1720はフレネルレンズであり、及び/又はプラスチック製である。
【0123】
[0156]トーチ1712は、光コードを走査するための照準器として使用することができる。例えば、トーチ1712からの光は、モバイルデバイス1704のカメラが向けられている場所を示す。トーチ1712からの光(例えば、第3のレンズ1720を用いて)を集束させることにより、トーチ1712からの光は、より狭いスポットに集光される。
【0124】
[0157]幾つかの実施形態では、第3のレンズ1720は、トーチ1712の光を長円形(例えば、長方形又は楕円形であり、楕円形は非円形である)に集束させるように構成される。モバイルデバイス1704は、一般に、モバイルデバイス1704の長辺が
図17の垂直方向1728として示されるように実質的に垂直になるように、光学コードを走査しながら縦方向にユーザによって保持され、モバイルデバイスの短辺は、
図17に水平方向1732として示されているように、実質的に水平である。背面1724の方向法線は、モバイルデバイスの垂直方向1728及び水平方向1732の両方に直交する。楕円形状は、楕円の長軸が水平方向1732に(例えば、モバイルデバイス1704の短辺の方向に)略平行(例えば、プラス又はマイナス1、2、又は5度)であり、短軸が垂直方向1728に(例えば、モバイルデバイス1704の長辺の方向に)略平行(例えば、プラス又はマイナス1、2、又は5度)であるように構成される。トーチ1712の光は、光学コードが一般に横長であり、ユーザがバーコードを走査しながらモバイルデバイス1704を縦方向に保持することができるので、楕円又は長方形(例えば、長方形の長辺が水平方向1732に実質的に平行であり、長方形の短辺が垂直方向1728に実質的に平行である)に成形されるように構成される。トーチ1712を長方形状に発光させることにより、ユーザは、トーチを光コードを走査するためのポインタとして使用することをより直感的にすることができる。幾つかの実施形態では、楕円の長軸は垂直方向1728と位置合わせされる。モバイルデバイス1704は、横方向又は他の方向に保持することができる。例えば、モバイルデバイス1704を片手で保持し、コードを地面まで低く走査すると、コードがスクリーンの長軸に沿って配向されるように手を横に向けることができる。照準器としてトーチを使用することにより、スクリーンを使用する代わりに、手の一部がスクリーンをブロックするようにモバイルデバイスを保持することができる。これは、多くの項目(例えば、スタック内)を走査する配送ドライバ及び輸送/物流担当者にとって特に有用であり得る。これは、モバイルデバイス1704を垂直位置で走査するための厄介な操作からそれらを節約することができる(例えば、スクリーンを見る代わりにトーチからの光の方向を見ることができるため)。
【0125】
[0158]また、光コードを含む表面上のトーチ1712からのビームの幅は、モバイルデバイス1704が光コードを含む表面にどれだけ近く保持されるべきかをユーザに示すこともできる。例えば、ビームが光学コードで表面上に大きな楕円を描く場合、ユーザはモバイルデバイス1704を表面に近づけ、ビームが表面上で小さな楕円を描く場合、ユーザは、モバイルデバイス1704を表面から更に遠くに移動させ、そのため、表面上の光の楕円形は、光学コードとほぼ同じ大きさである。特定の構成では、コードがカメラの走査範囲内にある間、ビームは、光コードの幅の半分以上及び/又は光コードの幅の2倍又は3倍以下の幅(例えば、水平方向に測定される)に集束されるように構成される。
【0126】
[0159]幾つかの構成では、アタッチメント1702は、モバイルデバイス1704用のケースである。ケースは、第2のレンズ1716及び/又は第3のレンズ1720を備えることができ、ケースは、モバイルデバイス1704(例えば、保護のために、)の二面以上の少なくとも一部を覆うことができる。例えば、ケースは、背面1724の80%以上を覆い、並びにモバイルデバイス1704の長辺(複数可)及び/又は短辺(複数可)の一部を覆うことができる。
【0127】
[0160]幾つかの実施形態では、アタッチメント1702(例えば、事例として、)は磁石を含む。磁石(例えば、)は、モバイルデバイス1704をユーザの物体(例えば、金属キャビネット)及び/又はウェアラブルデバイス(例えば、ベルト、アームバンド、チェストパック、レッグバンド、バックパック、ファニーパックなど)に固定するために使用することができる。磁石を有することにより、モバイルデバイス1704は、ユーザが別のタスクのために両手を使用できるように配置することができる。例えば、宅配業者は、上腕にアームバンドを装着する。モバイルデバイス1704は、アームバンドに固定される(例えば、磁気的に取り付けられる)。女性は、家の出入り口まで荷物を両手で運んで配達し、出入り口に荷物を置く。ドアステップにパッケージをセットした後、彼女はモバイルデバイス1704をアームバンドから取り外し、モバイルデバイス1704のカメラをパッケージ上のラベルに向ける。彼女は親指でモバイルデバイスのスクリーンに触れる。スクリーンにタッチしている間、トーチ1712が点灯し、カメラは複数の画像を取得する。複数の画像が解析され、パッケージのラベル上のバーコードが復号される。光学コードが復号されたことをユーザに示すために、スクリーン上に提示された画像上に緑色のボックスがオーバーレイされる。次いで、ユーザはモバイルデバイスを後方に移動させ、購入の検証のためにパッケージを有するドアステップの画像が保存される。次に、ユーザは、親指をスクリーンから取り外す。ユーザが親指を離した後、トーチはオフになり、カメラはオフになるか、又はスタンバイモードに入る。次いで、ユーザは、モバイルデバイスをアームバンドに置き、自分の車両に戻る。バーコード及びドアステップの画像は、モバイルデバイス1704からリモートサーバに送信される。バーコードが復号されたので、ドアステップの画像はバーコードに自動的にリンクされ、バーコードによって識別されるファイルに保存される。
【0128】
[0161]
図18は、モバイルデバイス1804のアタッチメント1802の別の実施形態を示す。アタッチメント1802はレンズ1816を備える。レンズ1816は、超広角レンズ(例えば、120度以上及び/又は130,150,160度以下、又は175度の画角)である。一部の電話モデルは、広角レンズ、又は画角が狭すぎる(十分に広角ではない)レンズを有していない。レンズ1816は、モバイルデバイス1804のカメラの画角を広げるように取り付けることができる。
【0129】
[0162]サンプルコンピューティングデバイス
[0163]
図19は、コンピューティングデバイス1900の簡略ブロック図である。コンピューティングデバイス1900は、電子記憶装置又は処理、並びに明示的に記載されていない他の機能、挙動、又は能力を使用することになる前述の機能、挙動、及び/又は能力の一部又は全てを実装することができる。コンピューティングデバイス1900は、処理サブシステム1902、記憶サブシステム1904、ユーザインタフェース1906、及び/又は通信インタフェース1908を含む。また、コンピューティングデバイス1900は、バッテリ、電力コントローラ、及び様々な拡張機能を提供するように動作可能な他の構成要素などの他の構成要素(明示的には図示せず)を含むことができる。様々な実施形態において、コンピューティングデバイス1900は、デスクトップもしくはラップトップコンピュータ、モバイルデバイス(例えば、タブレットコンピュータ、スマートフォン、携帯電話)、ウェアラブルデバイス、メディアデバイス、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は前述した機能もしくは機能の組み合わせを実行するように設計された電子ユニットに実装され得る。
【0130】
[0164]記憶サブシステム1904は、例えば、ディスク、フラッシュメモリ(例えば、セキュアデジタルカード、ユニバーサルシリアルバスフラッシュドライブ)、又は任意の他の持続性記憶媒体、又は媒体の組み合わせを使用して、ローカル記憶媒体及び/又はリムーバブル記憶媒体を使用して実装することができ、揮発性及び/又は不揮発性記憶媒体を含むことができる。ローカルストレージは、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、又はバッテリバックアップRAMを含むランダムアクセスメモリ(RAM)を含むことができる。幾つかの実施形態において、記憶サブシステム1904は、コンピュータを使用して実行されるであろう前述の一部又は全ての動作を実施するためのプログラムを含む、処理サブシステム1902によって実行されるべき1つ以上のアプリケーション及び/又はオペレーティングシステムプログラムを記憶することができる。例えば、記憶サブシステム1904は、前述の1つ以上の方法ステップを実施するための1つ以上のコードモジュール1910を記憶することができる。
【0131】
[0165]ファームウェア及び/又はソフトウェア実装は、モジュール(例えば、手順、機能など)で実施されてもよい。命令を実体的に具現化する機械可読媒体は、本明細書に記載の方法論を実施する際に使用することができる。コードモジュール1910(例えば、メモリに記憶された命令)は、プロセッサ内又はプロセッサの外部に実装されてもよい。本明細書で使用される場合、「メモリ」という用語は、長期、短期、揮発性、不揮発性、又は他の記憶媒体のタイプを指し、メモリの特定のタイプ又はメモリの数又はメモリが記憶される媒体のタイプに限定されるものではない。
【0132】
[0166]更に、「記憶媒体」又は「記憶装置」という用語は、リードオンリーメモリ(ROM)、RAM、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、及び/又は情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つ以上のメモリを表すことができる。「機械可読媒体」という用語は、携帯型もしくは固定型記憶装置、光記憶装置、無線チャネル、並びに/又は命令及び/もしくはデータを記憶することができる様々な他の記憶媒体を含むが、これらに限定されない。
【0133】
[0167]更に、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、及び/又はそれらの任意の組み合わせによって実施されてもよい。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、及び/又はマイクロコードで実装される場合、タスクを実行するためのプログラムコード又はコードセグメントは、記憶媒体などの機械可読媒体に記憶されてもよい。コードセグメント(例えば、コードモジュール1910)又は機械実行可能命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、又は命令、データ構造、及び/又はプログラム文の組み合わせを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、及び/又はメモリ内容を渡す及び/又は受け取ることによって、別のコードセグメント又はハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む適切な手段によって渡され、転送され、又は送信され得る。
【0134】
[0168]前述した技術、ブロック、ステップ、及び手段の実装は、様々な方法で行うことができる。例えば、これらの技法、ブロック、ステップ、及び手段は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実施することができる。ハードウェア実装の場合、処理ユニットは、1つ以上のASIC、DSP、DSPD、PLD、FPGA、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、前述の機能を実行するように設計された他の電子ユニット、及び/又はそれらの組み合わせ内に実装されてもよい。
【0135】
[0169]各コードモジュール1910は、対応する動作を実行するようにコンピューティングデバイス1900のプロセッサに指示するコンピュータ可読媒体上に具現化された命令(コード)のセットを備えることができる。命令は、順次に、並列に(異なる処理スレッドの下などで)、又はそれらの組み合わせで実行されるように構成され得る。コードモジュール1910を汎用コンピュータシステムにロードした後、汎用コンピュータは専用コンピュータシステムに変換される。
【0136】
[0170]本明細書に記載の様々な特徴(例えば、1つ以上のコードモジュール1910において)を組み込んだコンピュータプログラムは、様々なコンピュータ可読記憶媒体に符号化されて格納されてもよい。プログラムコードで符号化されたコンピュータ可読媒体は、互換性のある電子デバイスと共にパッケージ化されてもよく、又はプログラムコードは、電子デバイス(例えば、インターネットダウンロードを介して、又は別個にパッケージ化されたコンピュータ可読記憶媒体として)とは別に提供されてもよい。また、記憶サブシステム1904は、通信インタフェース1908を使用してネットワーク接続を確立するのに有用な情報を格納することもできる。
【0137】
[0171]ユーザインタフェース1906は、入力デバイス(例えば、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、マイクロフォンなど)、並びに出力デバイス(例えば、ビデオスクリーン、表示灯、スピーカ、ヘッドホンジャック、仮想又は拡張現実ディスプレイなど)を、支持電子機器(例えば、デジタル-アナログ変換器又はアナログ-デジタル変換器、信号プロセッサなど)と共に含むことができる。ユーザは、ユーザインタフェース1906の入力装置を操作してコンピューティングデバイス1900の機能を呼び出し、ユーザインタフェース1906の出力装置を介してコンピューティングデバイス1900からの出力を閲覧及び/又は聞くことができる。幾つかの実施形態では、ユーザインタフェース1906は存在しなくてもよい(例えば、ASICを使用するプロセスの場合)。
【0138】
[0172]処理サブシステム1902は、1つ以上のプロセッサ(例えば、集積回路、1つ以上のシングルコア又はマルチコアマイクロプロセッサ、マイクロコントローラ、中央処理装置、グラフィックス処理装置など)として実装できる。動作中、処理サブシステム1902は、コンピューティングデバイス1900の動作を制御することができる。幾つかの実施形態では、処理サブシステム1902は、プログラムコードに応答して様々なプログラムを実行することができ、複数の同時に実行するプログラム又はプロセスを維持することができる。所定の時点において、実行されるべきプログラムコードの一部又は全部は、処理サブシステム1902及び/又は記憶サブシステム1904などの記憶媒体に存在することができる。プログラミングを通じて、処理サブシステム1902は、コンピューティングデバイス1900に様々な機能を提供することができる。また、処理サブシステム1902は、記憶サブシステム1904に記憶され得るプログラムを含む、コンピューティングデバイス1900の他の機能を制御するための他のプログラムを実行することもできる。
【0139】
[0173]通信インタフェース1908は、コンピューティングデバイス1900に音声及び/又はデータ通信能力を提供することができる。幾つかの実施形態において、通信インタフェース1908は、無線データネットワーク(例えば、Wi-Fiネットワーク;3G、4G/LTE;等)にアクセスするための無線周波数(RF)送受信機構成要素、移動通信技術、短距離無線通信(例えば、Bluetooth通信規格、NFCなどを使用する)用の構成要素、他の構成要素、又は技術の組み合わせを含むことができる。幾つかの実施形態では、通信インタフェース1908は、無線インタフェースに加えて、又はその代わりに、有線接続(例えば、ユニバーサルシリアルバス、イーサネット、ユニバーサル非同期送受信機など)を提供することができる。通信インタフェース1908は、ハードウェア(例えば、ドライバ回路、アンテナ、変調器/復調器、エンコーダ/デコーダ、並びに他のアナログ及び/又はデジタル信号処理回路)とソフトウェア構成要素との組み合わせを使用して実装することができる。幾つかの実施形態では、通信インタフェース1908は、複数の通信チャネルを同時にサポートすることができる。幾つかの実施形態では、通信インタフェース1908は使用されない。
【0140】
[0174]コンピューティングデバイス1900は例示的なものであり、変形及び修正が可能であることが理解される。コンピューティングデバイスは、具体的に説明されていない様々な機能(例えば、携帯電話ネットワークを介した音声通信)を有することができ、そのような機能に適した構成要素を含むことができる。
【0141】
[0175]更に、コンピューティングデバイス1900は特定のブロックを参照して説明されているが、これらのブロックは説明の便宜のために定義されており、構成要素部品の特定の物理的配置を意味するものではないことを理解されるべきである。例えば、処理サブシステム1902、記憶サブシステム、ユーザインタフェース1906、及び/又は通信インタフェース1908は、単一の装置内にあってもよく、複数のデバイスに分散されていてもよい。
【0142】
[0176]更に、ブロックは、物理的に別個の構成要素に対応する必要はない。ブロックは、例えば、プロセッサをプログラミングすることによって、又は適切な制御回路を提供することによって、様々な動作を実行するように構成することができ、様々なブロックは、初期構成がどのように取得されるかに応じて再構成可能であってもなくてもよい。本発明の実施形態は、回路とソフトウェアとの組み合わせを使用して実装される電子デバイスを含む様々な装置で実現することができる。本明細書に記載の電子デバイスは、コンピューティングデバイス1900を使用して実装することができる。
【0143】
[0177]本明細書に記載の様々な特徴、例えば、方法、装置、コンピュータ可読媒体などは、専用コンポーネント、プログラマブルプロセッサ、及び/又は他のプログラマブルデバイスの組み合わせを使用して実現することができる。本明細書に記載のプロセスは、同じプロセッサ又は異なるプロセッサ上で実施することができる。構成要素が特定の動作を実行するように構成されると説明されている場合、そのような構成は、例えば、動作を実行するように電子回路を設計することによって、動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、又はそれらの組み合わせによって達成することができる。更に、前述の実施形態は、特定のハードウェア及びソフトウェア構成要素を参照することができるが、当業者であれば分かるように、ハードウェア及び/又はソフトウェア構成要素の異なる組み合わせも使用することができ、ハードウェアに実装されるものとして説明された特定の動作をソフトウェアに実装することができ、又はその逆も可能である。
【0144】
[0178]上記の説明では、実施形態の理解を提供するために具体的な詳細が示されている。しかしながら、実施形態は、これらの具体的な詳細なしで実施され得ることが理解される。幾つかの例では、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造及び技術を不必要な詳細を伴うことなく示すことができる。
【0145】
[0179]本開示の原理は、特定の装置及び方法に関連して前述されているが、この説明は、例としてのみ行われ、本開示の範囲に対する限定としてではないことを理解すべきである。実施形態は、本発明の原理及び実際の用途を説明するために選択及び説明され、企図される特定の用途に適しているように、当業者が様々な実施形態及び様々な変更で本発明を利用することを可能にする。説明は、修正及び均等物を網羅することを意図していることが分かる。
【0146】
[0180]また、実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは一連のプロセスとして動作を説明することができるが、動作の多くは並行して又は同時に実行することができる。更に、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了したときに終了するが、図に含まれていない追加のステップを有することができる。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応することができる。
【0147】
[0181]「1つ(a)」、「1つ(an)」、又は、「その(the)」の列挙は、特に反対のことが示されない限り、「1つ以上」を意味することを意図している。本明細書で言及される特許、特許出願、刊行物、及び、説明は、あらゆる目的のためにその全体が参照により本願に組み入れられる。先行技術であると認められるものはない。
【0148】
[0182]幾つかの実施形態において、画像解析を使用して物体を棚ユニット上にマッピングするためのシステムは、複数の画像フレームを取得するように構成される画像センサを備えるカメラと、カメラによって取得された複数の画像を受信し、複数の画像内の第1の項目コードを識別し、複数の画像内の第2の項目コードを識別し、第2の品目コードに対する第1の品目コードの距離及び方向を計算し、距離及び方向を棚図に対して較正し、第1の項目コードと棚図に対する第1の項目コードの相対位置とを含む第1のベクトルを生成し、及び/又は、第2の項目コードと棚図に対する第2の項目コードの相対位置とを含む第2のベクトルを生成するように構成される1つ以上のプロセッサとを備える。方法は、複数の画像を受信するステップと、複数の画像内の第1の項目コードを識別するステップ、複数の画像内の第2の項目コードを識別するステップ、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップ、距離及び方向を棚図に対して較正するステップ、第1の項目コードと棚図に対する第1の項目コードの相対位置とを含む第1のベクトルを生成するステップ、及び/又は、第2の項目コードと棚図に対する第2の項目コードの相対位置とを含む第2のベクトルを生成するステップを含むことができる。幾つかの実施形態において、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップは、第1の項目コード及び第2の項目コードが2次元垂直平面内にあることに基づき、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップは、第1の項目コードの幅又は高さに基づき、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップは、棚ラベルの幅又は高さに基づき、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップは、モバイルデバイスの同時位置及びマッピングアルゴリズムに基づき、第2の項目コードに対する第1の項目コードの距離及び方向は、複数の画像を取得するために使用されるモバイルデバイスの2つの画像センサ、及び、2つの画像センサ間の既知の距離に基づき、第2の項目コードに対する第1の項目コードの距離及び方向を計算するステップは、複数の画像を取得するために使用されるモバイルデバイスの深度センサ又は3次元画像センサに基づき、棚ユニットは、店舗の通路の一部であり、第1のベクトルは、通路インジケータと、通路に対する第1の項目コードの相対位置とを含み、及び/又は、第1のベクトルの通路インジケータを平行四辺形からの項目の計画された通路位置と比較することに基づいて第1の項目コードによって識別された項目が正しい通路内にあると決定するステップ、第1の項目コードに関連付けられた物体の第1の境界を確認するステップであって、第1のベクトルが、棚図に対する第1の境界を示す値を含む、ステップ、第2の項目コードに関連付けられた物体の第2の境界を確認するステップであって、第2のベクトルが、棚図に対する第2の境界を示す値を含む、ステップ、第1のベクトルからの第1の境界を示す値を使用して、第1の境界をプラノグラム内の第1の項目の計画位置と比較するステップ、棚図に対する第1の境界がプラノグラム内の第1の項目の計画位置に類似していることに基づいて棚図に対する第1の境界がプラノグラムに適合すると決定するステップ、第2のベクトルからの第2の境界を示す値を使用して、第2の境界をプラノグラム内の第2の項目の計画位置と比較するステップ、及び/又は、棚図に対する第2の境界がプラノグラム内の第2の項目の計画位置に類似していることに基づいて棚図に対する第2の境界がプラノグラムに適合すると決定するステップを含む。幾つかの実施形態において、方法は、複数の画像を受信するステップを含み、複数の画像は、俯瞰画像と、異なる視野を有する複数の画像とを含み、俯瞰画像は複数のバーコードを含み、及び/又は、複数の画像はそれぞれ複数のバーコードのサブセットを含み、及び/又は、俯瞰画像内のバーコードの位置を登録するために、複数の画像の異なる視野を俯瞰画像と照合させるステップを含む。幾つかの構成では、俯瞰画像内の複数のバーコードが小さすぎて復号できないため、俯瞰画像内で複数のバーコードを復号できず、俯瞰画像は、俯瞰画像内の棚列を使用して位置合わせされ、修正され、歪みが修正され、複数の画像の異なる視野を俯瞰画像と照合させるステップは、関心点及びホモグラフィのためのランダムサンプルコンセンサスアルゴリズムを使用して実行され、複数の画像の異なる視野を俯瞰画像と照合させるステップは、複数のバーコードが平面内にあるという仮定に基づき、及び/又は、方法は、2つ以上のバーコードを復号することなく、複数の画像フレームにわたって同時に2つ以上のバーコードを追跡するステップ、複数の画像を使用して複数のバーコードを復号するステップ、及び/又は、複数のバーコードのうちの1つのバーコードの既知の高さ又は幅に基づいて俯瞰画像のスケールを計算するステップを含む。
【0149】
[0183]幾つかの実施形態において、
1.画像内のパターンを認識するための画像解析の方法において、
カメラによって取得された複数の画像を受信するステップであって、複数の画像が配列内の複数の光学パターンを含む、ステップと、
配列をパターンテンプレートと照合させるステップであって、パターンテンプレートが光学パターンの所定の配列である、ステップと、
パターンテンプレートと比較される配列内の選択された光学パターンの位置に基づいて複数の光学パターンのうちの1つの光学パターンを選択された光学パターンとして識別するステップと、
選択された光学パターンを復号して物体識別子を生成するステップと、
物体識別子をメモリデバイスに記憶するステップと、
を含む方法。
2.複数の光学パターンは、平行バーで構成されたバーコードである、請求項1に記載の方法。
3.複数の光学パターンは、複数の画像内の物体に貼り付けられたラベル上に配置され、方法は、物体の物理的寸法を計算するステップを更に含む、請求項1に記載の方法。
4.物体の物理的寸法を計算するステップは、
画像内のラベルの相対寸法に合わせて画像内の物体の相対寸法を計算するステップと、
物体の相対寸法に基づいて物体の物理的寸法を計算するステップと、
を含む、請求項3に記載の方法。
5.物体の物理的寸法を物体識別子と関連付けられた物体の予期される物理的寸法と比較するステップと、
物体を物体識別子と照合させるステップと、
一致を示すグラフィック要素をディスプレイ上に提示するステップと、
を更に含む、請求項3に記載の方法。
6.物体の物理的寸法は、物体の体積又は物体の重量のうちの少なくとも一方を含む、請求項3に記載の方法。
7.物理的寸法次元に基づいて物流基準を確認するステップ
を更に含む、請求項6に記載の方法。
8.物流基準は、郵便料金、在庫注文識別子、梱包注文、又は、倉庫保管場所識別子のうちの少なくとも1つを含む、請求項7に記載の方法。
9.複数の画像のうちの第1の画像内の第1の識別子パターンを識別するステップであって、第1の識別子パターンがパターンテンプレートの識別子である、ステップと、
複数の画像のうちの第2の画像内の第2の識別子パターンを識別するステップと、
第1の識別子パターンを第2の識別子パターンと比較するステップと、
第1の識別子パターンが第2の識別子パターンと一致しない場合に、
前記第2の識別子パターンを第2のパターンテンプレートと照合させるステップであって、第2のパターンテンプレートが光学パターンの第2の所定の配列である、ステップと、
配列内の選択された光学パターンの位置に基づいて第2の選択された光学パターンを識別するステップと、
第2の物体識別子を生成するために第2の選択された光学パターンを復号するステップと、
第2の物体識別子をメモリデバイスに記憶するステップと、
を更に含む、請求項1に記載の方法。
10.パターンテンプレートを含む複数の画像をディスプレイ上に提示するステップと、
パターンテンプレートの視覚的表示をディスプレイ上に提示するステップと、
選択された光学パターン上にオーバーレイされたグラフィック要素を提示するステップと、
を更に含む、請求項1に記載の方法。
11.画像内のパターンを認識するための画像解析方法において、
目標光学パターンタイプを受信するステップと、
カメラによって取得された複数の画像を受信するステップであって、複数の画像が複数の光学パターンを含む、ステップと、
複数の光学パターンのうちの選択された光学パターンを目標光学パターンタイプと照合させるステップと、
選択された光学パターンを復号して物体識別子を生成するステップと、
物体識別子をメモリデバイスに記憶するステップと、
を含む方法。
12.選択された光学パターンを目標光学パターンタイプと照合させるステップは、
目標光学パターンタイプの第1の相対寸法を受信するステップと、
選択された光学パターンの第2の相対寸法を確認するステップと、
第2の相対寸法を第1の相対寸法と照合させるステップと、
を含む、請求項11に記載の方法。
13.選択された光学パターンを目標光学パターンタイプと照合させるステップは、
目標光学パターンタイプの特性寸法を受信するステップと、
複数の画像のうちの1つの画像内の複数の光学パターンの配列に基づいて複数の光学パターンの複数の空間寸法を確認するステップと、
選択された光学パターンの空間寸法を目標光学パターンタイプの特性寸法と照合させるステップと、
を含む、請求項11に記載の方法。
14.目標光学パターンタイプは、平行バー、QRコード(登録商標)、MaxiCode、又はAztecコードから構成されるバーコードである、請求項11に記載の方法。
15.複数の光学パターンのうちの選択された光学パターンを目標光学パターンタイプと照合させるステップは、
複数の光学パターンに対応する複数のアスペクト比を確認する又は複数の光学パターンのうちの1つの光学パターン内の特性マーキングを識別するステップと、
選択された光学パターンを目標光学パターンタイプの目標アスペクト比又は特性マーキングと照合させるステップと、
を含む、請求項11に記載の方法。
16.画像内のパターンを認識するための画像解析方法において、
カメラによって取得された第1の複数の画像を受信するステップであって、
第1の複数の画像が、画像境界及び画像境界に隣接する部分光学パターンを含む、ステップと、
画像境界に対する前記部分光学パターンの方向を確認するステップと、
前記方向に基づいてカメラを第1の方向に移動させるために、第1の記録された音声の再生として、第1のプロンプトを生成するステップと、
カメラによって取得された第2の複数の画像を受信するステップであって、第2の複数の画像が、部分光学パターンに対応する完全な光学パターンを含む、ステップと、
完全な光学パターンを復号して物体識別子を生成するステップと、
完全な光学パターンの復号の成功を示すために、第2の記録された音声の再生として、第2のプロンプトを与えるステップと、
物体識別子をメモリデバイスに記憶するステップと、
を含む方法。
17.完全な光学パターンが平行バーで構成されたバーコードである、請求項16に記載の方法。
18.ディスプレイ上に第1の複数の画像を提示するステップと、
ディスプレイ上に第1のグラフィック要素を提示するステップであって、第1のグラフィック要素が部分光学パターンを示す、ステップと、
ディスプレイに第2の複数の画像を提示するステップと、
ディスプレイ上に第2のグラフィック要素を提示するステップであって、第2のグラフィック要素が完全な光学パターンを示す、ステップと、
を更に含む、請求項16に記載の方法。
19.物体識別子に基づいて物体情報を確認するステップと、
物体情報を含む第3のプロンプトを第3の記録された音声の再生として生成するステップと、
を更に含む、請求項16に記載の方法。
20.複数のパターンを含む画像内の1つのパターンを認識するための画像解析方法において、
カメラによって取得された複数の画像を受信するステップであって、複数の画像が複数の光学パターンを含む、ステップと、
ディスプレイ上に複数の光学パターンを提示するステップと、
複数の光学パターンのうちの選択された光学パターンを、
ユーザ動作と、
複数の画像のうちの1つ以上における選択された光学パターンの位置と、
に基づいて識別するステップと、
選択された光学パターンの視覚的表示をディスプレイ上に提示するステップと、
選択された光学パターンを復号して物体識別子を生成するステップと、
視覚的表示を介して、選択された光学パターンが復号されたことを示すステップと、
物体識別子をメモリデバイスに記憶するステップと、
を含む方法。
21.複数の光学パターンが平行バーで構成されたバーコードである、請求項20に記載の方法。
22.複数の光学パターンは、第1の光学パターン及び第2の光学パターンを含み、
第1の光学パターンが選択された光学パターンであり、
第2の光学パターンが復号されない。
請求項20に記載の方法。
23.ディスプレイ上に、複数の光学パターンを処理することに関連する1つ以上のグラフィック要素を提示するステップを更に含む、請求項20に記載の方法。
24.1つ以上のグラフィック要素は、レチクル、捕捉ボタン、境界ボックス、ディスプレイの強調表示された領域のうちの少なくとも1つを含み、少なくとも強調表示された領域は、複数の光学パターンのうちの1つの光学パターンへのオーバーレイとして提示される、請求項23に記載の方法。
25.ディスプレイは、捕捉ボタンと、レチクル、境界ボックス、又は、強調表示された領域のうちの少なくとも1つとを提示し、
ユーザ動作は、捕捉ボタンのボタン押下を含み
選択された光学パターンを識別するステップは、レチクル、境界ボックス、又は、強調表示された領域の下方に位置されている選択された光学パターンに基づく、
請求項24に記載の方法。
26.ユーザ動作は、ディスプレイ上へのスクリーンタッチを含む、請求項20に記載の方法。
27.ユーザ動作は、複数の光学パターンのうちの1つの光学パターンに対応するディスプレイの領域上へのスクリーンタッチを含む、請求項20に記載の方法。
28.ディスプレイは、慣性測定ユニットを備えるスマートフォンと通信し、
ユーザ動作は、スマートフォンの外面上のタップであり、
方法は、
スマートフォンの慣性測定ユニットから動作データを受信するステップと、
動作データをインパルスとして分類するステップと、
を更に含み、
選択された光学パターンを識別するステップは、インパルスの受信と同時に視覚的表示と共に提示されている選択された光学パターンに基づく、
請求項20に記載の方法。
29.ディスプレイは、複数のインタラクティブなボタンを備える電子デバイスと通信し、
ユーザ動作は、スクリーンタップ又は複数のインタラクティブなボタンのうちの捕捉ボタンとの相互作用であり、
方法は、
複数の画像のうちの1つの画像内の複数の光学パターンのうちの第1の光学パターンの位置に対応する第1の位置でディスプレイ上にグラフィック要素を提示するステップと、
複数のインタラクティブなボタンのうちの1つのインタラクティブなボタンとのユーザ相互作用に応じて、グラフィカル要素を第1の位置から画像内の第2の光学パターンに対応する第2の位置に再配置するステップと、
を更に含み、
選択された光学パターンを識別するステップは、ユーザ動作と一致するときにおけるグラフィック要素と選択された光学パターンとの間の対応関係に基づく、
請求項20に記載の方法。
30.ディスプレイの領域とのユーザ相互作用を受信するステップと、
領域に対応する前記複数の画像のエリアを所定の倍率で拡大するステップと、
を更に含む、請求項20に記載の方法。
31.ディスプレイ上に複数の画像をフレームレートにしたがうシーケンスで提示するステップと、
第2のユーザ動作を受信するステップと、
第2のユーザ動作と同時に、ディスプレイ上に複数の画像のうちの1つの画像を提示するステップと、
第3のユーザ動作を受信するステップと、
第3のユーザ動作の受信と同時に、シーケンスにしたがって、ディスプレイ上の複数の画像の提示を再開するステップと、
を更に含む、請求項20に記載の方法。
32.複数の画像のうちの第1の画像内の複数の光学パターンのうちの第1の数の光学パターンを確認するステップと、
複数の画像のうちの第2の画像内の複数の光学パターンのうちの第2の数の光学パターンを確認するステップと、
第1の数と第2の数との間の変化の程度を確認するステップと、
変化の程度を閾値変化基準と比較するステップと、
変化の程度が閾値変化基準を満たす場合、ディスプレイ上に、複数の光学パターンを含む前記複数の画像のうちの1つの画像を提示するステップと、
を更に含む、請求項20に記載の方法。
33.一定期間が経過した後にディスプレイから複数の画像のうちの前記画像を除去するステップと、
ディスプレイ上に複数の画像を提示するステップと、
を更に含む、請求項32に記載の方法。
34.複数の画像は、フレームレートに対応するフレームのシーケンスで配置され、
第2の画像は、第1の画像に対応するフレームのシーケンスにおける第1の位置に続くフレームのシーケンスにおける第2の位置に対応する、
請求項32に記載の方法。
35.第1の位置と第2の位置との間の離間距離は、フレームレートにしたがった期間に対応する、請求項34に記載の方法。
36.期間が300ミリ秒である、請求項35に記載の方法。
37.カメラと関連付けられたアプリケーションを識別するステップと、
アプリケーションにしたがって第1の位置及び第2の位置を決定するステップと、
を更に含む、請求項34に記載の方法。
38.カメラ及びディスプレイと通信しているデバイスを識別するステップと、
デバイスにしたがって第1の位置及び第2の位置を決定するステップと、
を更に含む、請求項34に記載の方法。
39.ディスプレイ、カメラ、ユーザのうちの少なくとも1つを記述する複数のデバイスパラメータを確認するステップと、
デバイスにしたがって第1の位置及び第2の位置を決定するステップは、
複数のデバイスパラメータを使用して期間を計算するステップと、
フレームレートにしたがって、期間に対応するように第2の位置及び第1の位置を設定するステップと、
を更に含む、請求項38に記載の方法。
40.複数の光学パターンを復号して複数の物体識別子を生成するステップと、
複数の物体識別子に対応する幾つかの物体識別子を確認するステップと、
閾値基準を満たす物体識別子の数にしたがって、
複数の光学パターンを含む複数の画像のうちの選択された画像を識別するステップと、
選択された画像をディスプレイに提示するステップと、
を更に含む、請求項20に記載の方法。
41.閾値基準は、ある期間にわたる物体識別子の数における変動パラメータを含む、物体識別子の数の変化の程度である、請求項40に記載の方法。
42.複数の物体識別子のうちの第1の物体識別子を提示するステップと、
第1の物体識別子と関連付けられた第1の物体情報をディスプレイ上に提示するステップと、
第2のユーザ動作に応じて、ディスプレイ上に複数の物体識別子のうちの第2の物体識別子を提示し、ディスプレイから第1の物体識別子及び第1の物体情報を除去するステップと、
第2の物体識別子と関連付けられた第2の物体情報を提示するステップと、
を更に含む、請求項40に記載の方法。
43.視覚的表示が物体識別子に基づく物体情報を含む、請求項20に記載の方法。
44.視覚的表示は、復号の進捗を進捗バーとして示す動的なグラフィック要素を含む、請求項20に記載の方法。
45.視覚的表示は、ある期間にわたって視覚的表示の透明度を漸進的に増大させることによって復号後の時間を提示する動的なグラフィック要素を含む、請求項20に記載の方法。
【0150】
[0184]幾つかの実施形態において、
1.画像内のパターンを認識するための画像解析方法において、
カメラによって取得された複数の画像を受信するステップであって、複数の画像が、配列における複数の光学パターンを含み、複数の光学パターンが、複数の画像内の物体に貼付されたラベル上に配置され、複数の光学パターンのうちの1つ以上が物体識別子を符号化する、ステップと、
配列をパターンテンプレートと照合させるステップであって、パターンテンプレートが光学パターンの所定の配列である、ステップと、
配列における選択された光学パターンの位置に基づいて複数の光学パターンのうちの1つの光学パターンを選択された光学パターンとして識別するステップと、
選択された光学パターンを復号して物体識別子を生成するステップと、
物体識別子をメモリデバイスに記憶するステップと、
画像内のラベルの相対寸法と比較して複数の画像のうちの1つの画像内の物体の相対寸法を推定するステップと、
物体の相対寸法に基づいて物体の物理的寸法を推定するステップと、
を含む方法。
2.複数の光学パターンは、平行バーで構成されたバーコードである、請求項1に記載の方法。
3.物体の物理的寸法を物体識別子と関連付けられた物体の予期される物理的寸法と比較するステップと、
物体を物体識別子と照合させるステップと、
一致を示すグラフィック要素をディスプレイ上に提示するステップと、
を更に含む、請求項1に記載の方法。
4.物体の物理的寸法は、物体の体積又は物体の重量のうちの少なくとも一方を含む、請求項1に記載の方法。
5.物理的寸法に基づいて物流基準を確認するステップを更に含む、請求項1に記載の方法。
6.物流基準は、郵便料金、在庫注文識別子、梱包注文、又は、倉庫保管場所識別子のうちの少なくとも1つを含む、請求項5に記載の方法。
7.パターンテンプレートを含む複数の画像をディスプレイ上に提示するステップと、
選択された光学パターン上にオーバーレイされたグラフィック要素を提示するステップと、
を更に含む、請求項1に記載の方法。
8.複数の画像を取得するように構成される画像センサを有するカメラと、
1つ以上のプロセッサであって、
画像センサによって取得された複数の画像を受信し、複数の画像が、配列における複数の光学パターンを含み、複数の光学パターンが、複数の画像内の物体に貼付されたラベル上に配置され、複数の光学パターンのうちの1つ以上が物体識別子を符号化し、
配列をパターンテンプレートと照合させ、パターンテンプレートが光学パターンの所定の配列であり、
配列における選択された光学パターンの位置に基づいて複数の光学パターンのうちの1つの光学パターンを選択された光学パターンとして識別し、
選択された光学パターンを復号して物体識別子を生成し、
物体識別子をメモリデバイスに記憶し、
画像内のラベルの相対寸法と比較して複数の画像のうちの1つの画像内の物体の相対寸法を推定し、
物体の相対寸法に基づいて物体の物理的寸法を推定する、
ように構成される1つ以上のプロセッサと、
を備えるシステム。
9.1つ以上のプロセッサは、
物理的寸法に基づいて物流基準を確認するように構成され、物流基準は、郵便料金、在庫注文識別子、梱包注文、又は、倉庫保管場所識別子のうちの少なくとも1つを含む、請求項8に記載のシステム。
10.1つ以上のプロセッサは、
物体の物理的寸法を、物体識別子と関連付けられた物体の予期される物理的寸法と比較し、
物体を物体識別子と照合させ、
一致を示すグラフィック要素をディスプレイ上に提示する、
ように更に構成される、請求項8に記載のシステム。
11.1つ以上のプロセッサは、
パターンテンプレートを含む複数の画像をディスプレイ上に提示し、
選択された光学パターン上にオーバーレイされたグラフィック要素を提示する、
ように更に構成される、請求項8に記載のシステム。
12.実行されるときに、
カメラによって取得された複数の画像を受信するステップであって、複数の画像が、配列における複数の光学パターンを含み、複数の光学パターンが、複数の画像内の物体に貼付されたラベル上に配置され、複数の光学パターンのうちの1つ以上が物体識別子を符号化する、ステップと、
配列をパターンテンプレートと照合させるステップであって、パターンテンプレートが光学パターンの所定の配列である、ステップと、
配列における選択された光学パターンの位置に基づいて複数の光学パターンのうちの1つの光学パターンを選択された光学パターンとして識別するステップと、
選択された光学パターンを復号して物体識別子を生成するステップと、
物体識別子をメモリデバイスに記憶するステップと、
画像内のラベルの相対寸法と比較して複数の画像のうちの1つの画像内の物体の相対寸法を推定するステップと、
物体の相対寸法に基づいて物体の物理的寸法を推定するステップと、
を1つ以上のプロセッサに行わせる命令を含むメモリデバイス。
13.実行されるときに、
パターンテンプレートを含む複数の画像をディスプレイ上に提示するステップと、
選択された光学パターン上にオーバーレイされたグラフィック要素を提示するステップと、
を1つ以上のプロセッサに行わせる命令を更に含み、
任意選択的で、複数の光学パターンが文字列を含み、複数の光学パターンが2次元光コードを含み、物体が第1の物体であり、方法は、画像内のラベルの相対寸法に基づいて複数の画像内の第2の物体の物理的寸法を推定するステップを更に含み、複数の光学パターンが文字列を含み、複数の光学パターンが2次元光コードを含み、及び/又は、方法は、パターンテンプレートの視覚的表示をディスプレイ上に提示するステップを更に含む、請求項12に記載のメモリデバイス。
【0151】
[0185]幾つかの実施形態において、
1.モバイルデバイスであって、
ディスプレイと、
カメラと、
カメラ及び/又はディスプレイと通信する1つ以上のプロセッサと、
1つ以上のプロセッサによって実行されるときに、モバイルデバイスに、
カメラを使用してシーン内の光学パターンを検出させ、光学パターンが物体識別子を符号化し、
ユーザ動作を受信させ、
ユーザ動作を受信した後にカメラの焦点サイクルを実行させ、焦点サイクルが、カメラの焦点位置を第1の焦点位置から第2の焦点位置に変更し、第2の焦点位置が、シーン内で焦点が合っている光学パターンに対応し、
焦点サイクルを実行した後、第2の焦点位置でカメラを使用してシーンの画像を取得させ、
シーンの画像内の光学パターンを復号させて、物体識別子を生成させる、
命令を記憶する1つ以上のメモリデバイスと、
を備えるモバイルデバイス。
2.ユーザ動作は、シーン内の光学パターンを検出した後にディスプレイを介して受信される、請求項1に記載のモバイルデバイス。
3.シーンが第1のシーンであり、ユーザ動作がモバイルデバイスの動作を含み、命令は、実行されるときに、1つ以上のプロセッサに、第1のシーンから第2のシーンへのシーン変更を検出させる、請求項1に記載のモバイルデバイス。
4.シーン変更を検出することは、
閾値動作を超えるモバイルデバイスの動作を検出すること、又は
カメラによって取得されたシーンの画像内の動作ぼけに基づいてシーン変更を検出すること、
を含む、請求項3に記載のモバイルデバイス。
5.シーンの画像が第2の画像であり、シーン内の光学パターンを検出することは、
カメラを使用してシーンの第1の画像を取得し、カメラの焦点位置が第1の焦点位置にあり、
光学パターンを復号することなく第1の画像内の光学パターンを検出し、
第1の画像において光学パターンの焦点が合っていないことを確認する、
ことを含む、請求項1に記載のモバイルデバイス。
6.第1の画像において光学パターンの焦点が合っていないことを確認することは、
第1の画像内の光学パターンの分解能を確認し、及び
第1の画像内の光学パターンの分解能が光学パターンを復号するための最小分解能未満であると決定する、
ことを含む、請求項5に記載のモバイルデバイス。
7.光学パターンが第1の光学パターンであり、物体識別子が第1の物体識別子であり、命令は、実行されるときに、1つ以上のプロセッサに、更に、
ユーザ動作を受信する前に第1の画像内の第2の光学パターンを検出させ、第2の光学パターンが第2の物体識別子を符号化し、及び
第1の画像内の第2の光学パターンを復号させて、第2の物体識別子を生成させる、
請求項5に記載のモバイルデバイス。
8.コンピュータシステムにより、第1の焦点位置でカメラを使用してシーン内の光学パターンを検出するステップであって、光学パターンが物体識別子を符号化する、ステップと、
コンピュータシステムにより、ユーザ動作を受信するステップと、
コンピュータシステムにより、ユーザ動作を受信した後にカメラの焦点サイクルを実行するステップであって、焦点サイクルが、カメラの焦点位置を第1の焦点位置から第2の焦点位置に変更し、第2の焦点位置が、シーンにおいて焦点が合っている光学パターンに対応する、ステップと、
コンピュータシステムにより、第2の焦点位置でカメラを使用してシーンの画像を取得するステップと、
コンピュータシステムにより、シーンの画像内の光学パターンを復号して、物体識別子を生成するステップと、
を含む方法。
9.コンピュータシステムにより、光学パターンが復号されないという視覚的表示をディスプレイ上に提示するステップ
を更に含む、請求項8に記載の方法。
10.シーンが第1のシーンであり、ユーザ動作がコンピュータシステムの動作を含み、方法は、第1のシーンから第2のシーンへのシーン変更を検出するステップを更に含む、請求項8に記載の方法。
11.シーン変更を検出するステップは、
閾値動作を超えるモバイルデバイスの動作を検出するステップ、又は
カメラによって取得されたシーンの画像内の動作ぼけに基づいてシーン変更を検出するステップと、
を含む、請求項10に記載の方法。
12.シーンの画像が第2の画像であり、シーン内の光学パターンを検出するステップは、
カメラを使用してシーンの第1の画像を取得するステップであって、カメラの焦点位置が第1の焦点位置にある、ステップと、
光学パターンを復号することなく第1の画像内の光学パターンを検出するステップと、
第1の画像において光学パターンの焦点が合っていないことを確認するステップと、
を含む、請求項8に記載の方法。
13.第1の画像において光学パターンの焦点が合っていないことを確認するステップは、
第1の画像内の光学パターンの分解能を確認するステップと、
第1の画像内の光学パターンの分解能が光学パターンを復号するための最小分解能未満であると決定するステップと、
を含む、請求項12に記載の方法。
14.光学パターンが第1の光学パターンであり、物体識別子が第1の物体識別子であり、方法は、
ユーザ動作を受信する前に第1の画像内の第2の光学パターンを検出するステップであって、第2の光学パターンが第2の物体識別子を符号化する、ステップと、
第1の画像内の第2の光学パターンを復号させて、第2の物体識別子を生成させるステップと、
を更に含む、請求項12に記載の方法。
15.コンピュータシステムの1つ以上のプロセッサにより実行されるときに、1つ以上のプロセッサに、
第1の焦点位置でカメラを使用してシーン内の光学パターンを検出させ、光学パターンが物体識別子を符号化し、
ユーザ動作を受信させ、
ユーザ動作を受信した後にカメラの焦点サイクルを実行させ、焦点サイクルが、カメラの焦点位置を第1の焦点位置から第2の焦点位置に変更し、第2の焦点位置が、シーンにおいて焦点が合っている光学パターンに対応し、
第2の焦点位置でカメラを使用してシーンの画像を取得させ、
シーンの画像内の光学パターンを復号させて、物体識別子を生成させる、
命令を記憶するメモリデバイス。
16.コンピュータシステムにより、カメラの焦点位置を制御するカメラの自動焦点システムを無効にすること
を更に含む、請求項15に記載のメモリデバイス。
17.シーンが第1のシーンであり、ユーザ動作がコンピュータシステムの動作を含み、命令は、実行されるときに、1つ以上のプロセッサに、第1のシーンから第2のシーンへのシーン変更を検出させる、請求項15に記載のメモリデバイス。
18.シーン変更を検出することは、
閾値動作を超えるコンピュータシステムの動作を検出すること、又は
カメラによって取得されたシーンの画像内の動作ぼけに基づいてシーン変更を検出すること、
を含む、請求項17に記載のメモリデバイス。
19.シーンの画像が第2の画像であり、シーン内の光学パターンを検出することは、
カメラを使用してシーンの第1の画像を取得し、カメラの焦点位置が第1の焦点位置にあり、
光学パターンを復号することなく第1の画像内の光学パターンを検出し、
第1の画像において光学パターンの焦点が合っていないことを確認する、
ことを含む、請求項15に記載のメモリデバイス。
20.第1の画像において光学パターンの焦点が合っていないことを確認することは、
第1の画像内の光学パターンの分解能を確認し、及び
第1の画像内の光学パターンの分解能が光学パターンを復号するための最小分解能未満であると決定する、
ことを含む、請求項19に記載のメモリデバイス。
【国際調査報告】