(57)【要約】所定のパターンを配置するための方法が記載されている。画像は、所定数のエリアに分割される。所定のパターンに対し、解析されるべきエリアの順序を示すサーチシーケンスが、決定される。サーチシーケンスにおけるエリアは、所定の時間が満了するまで、または所定のパターンが検出されるまで、解析される。所定のパターンが検出される前に、所定の時間が満了したとき、さらなる画像が取得される。そして、上記シーケンスに残っているエリアは、さらなる画像において、所定の時間が満了するまで、または所定のパターンが残っているエリアの１つにおいて検出されるまで、画像の最後に解析あれたエリアの直後に解析されるべきエリアから開始して、解析される。
2008547115.tif 000002
【特許請求の範囲】
【請求項１】
所定のパターンを配置するための方法であって、
所定数のエリアに画像を分割することと、
該所定のパターンに対して解析されるべきエリアの順序を示すサーチシーケンスを決定することと、
（ｉ）所定の時間が満了する、および（ｉｉ）該所定のパターンが検出される、のいずれか一方までに、該サーチシーケンスにおける該エリアを解析することと、
該所定のパターンが検出される前に、該所定の時間が満了したときに、さらなる画像を取得し、その後、該さらなる画像において、該シーケンスに残っているエリアを、（ｉ）該所定の時間が満了する、および（ｉｉ）該所定のパターンが該残っているエリアのうちの１つにおいて検出される、のいずれか一方までに、該画像の最後に解析されたエリアの直後に解析されるべきエリアから開始して、解析する、ことと
を包含する、方法。
【請求項２】
前記所定のパターンは、１次元のバーコードおよび２次元のバーコードのうちの１つの少なくとも一部である、請求項１に記載の方法。
【請求項３】
前記エリアは、所定のサイズおよび形状を有している、請求項１に記載の方法。
【請求項４】
前記決定するステップは、
前記シーケンスが反復される前に、該シーケンスにおける全エリアが解析されるように、前記順序を生成すること
をさらに含んでいる、請求項１に記載の方法。
【請求項５】
前記所定のパターンが、前記解析されたエリアにおいて検出されたときに、該エリアに隣接しているエリアを決定することと、
該隣接しているエリアを解析して、サブイメージを取得することであって、該サブイメージは、該所定のパターンを含んでいる、ことと
該サブイメージをデコードして、データを抽出することと
をさらに含んでいる、請求項１に記載の方法。
【請求項６】
前記サブイメージは、バーコードデータである、請求項５に記載の方法。
【請求項７】
前記隣接しているエリアは、以下のサブステップ：
前記解析されたエリア内の前記所定のパターンの位置および方向を決定することと、
（ｉ）該位置、および（ｉｉ）該方向、の少なくとも１つの関数として、該隣接しているエリアを決定することと
にしたがって決定される、請求項５に記載の方法。
【請求項８】
前記分割するステップの前に、前記方法は、
（ｉ）スワイプスキャン、および（ｉｉ）プレゼンテーションスキャン、のうちの１つの間に、前記画像を取得すること
をさらに含んでいる、請求項１に記載の方法。
【請求項９】
前記決定するステップは、
（ｉ）ｘｉ＝（ｉ＊ｍ）  ｍｏｄ  Ｍ
ｙｉ＝（ｉ＊ｎ）  ｍｏｄ  Ｎ
ｉ≧０、但しｍ、ｎ、Ｍ、Ｎは整数の定数、および
（ｉｉ）擬似乱数生成器から導出されたシーケンス
のうちの１つにしたがって、前記順序を生成すること
をさらに含んでいる、請求項１に記載の方法。
【請求項１０】
前記所定の時間は、前記画像の出現と前記さらなる画像の出現との間の時間である、請求項１に記載の方法。
【請求項１１】
少なくとも１つの画像をキャプチャする画像キャプチャ装置と、
該画像を所定数のエリアに分割するプロセッサであって、該プロセッサは、所定のパターンに対して解析されるべきエリアの順序を示すサーチシーケンスを決定し、該プロセッサは、（ｉ）所定の時間が満了する、および（ｉｉ）該所定のパターンが検出される、のいずれか一方までに、該サーチシーケンスにおける該エリアを解析する、プロセッサと
を備えており、
該所定のパターンが検出される前に、該所定の時間が満了したときに、該プロセッサは、さらなる画像を取得し、その後、該さらなる画像において、該シーケンスに残っているエリアを、（ｉ）該所定の時間が満了する、および（ｉｉ）該所定のパターンが該解析されたエリアの１つにおいて検出される、のいずれか一方までに、該画像の最後に解析されたエリアの直後に解析されるべきエリアから開始して、解析する、デバイス。
【請求項１２】
前記所定のパターンは、１次元のバーコードおよび２次元のバーコードのうちの１つの少なくとも一部である、請求項１１に記載のデバイス。
【請求項１３】
前記エリアは、所定のサイズおよび形状を有している、請求項１１に記載のデバイス。
【請求項１４】
前記プロセッサは、前記シーケンスが反復される前に、該シーケンスにおける全エリアが解析されるように、前記順序を生成する、請求項１１に記載のデバイス。
【請求項１５】
前記所定のパターンが、前記解析されたエリアにおいて検出されたときに、前記プロセッサは、該解析されたエリアに隣接しているエリアを決定し、該プロセッサは、該隣接しているエリアを解析して、サブイメージを取得し、該サブイメージは、該所定のパターンを含んでおり、該プロセッサは、該サブ画像をデコードして、データを抽出する、請求項１１に記載のデバイス。
【請求項１６】
前記サブイメージは、バーコードである、請求項１５に記載のデバイス。
【請求項１７】
前記プロセッサが、前記隣接しているエリアを決定するときに、該プロセッサは、前記解析されたエリア内の前記所定のパターンの位置および方向を決定し、該プロセッサは、（ｉ）該位置、および（ｉｉ）方向、のうちの少なくとも１つの関数として、該隣接しているエリアを決定する、請求項１５に記載のデバイス。
【請求項１８】
前記プロセッサは、（ｉ）スワイプスキャン、および（ｉｉ）プレゼンテーションスキャン、のうちの１つの間に、前記画像を取得する、請求項１１に記載のデバイス。
【請求項１９】
前記プロセッサは、
（ｉ）ｘｉ＝（ｉ＊ｍ）  ｍｏｄ  Ｍ
ｙｉ＝（ｉ＊ｎ）  ｍｏｄ  Ｎ
ｉ≧０、但しｍ、ｎ、Ｍ、Ｎは整数の定数、および
（ｉｉ）擬似乱数生成器から導出されたシーケンス
のうちの１つにしたがって、前記順序を生成する、請求項１１に記載のデバイス。
【請求項２０】
前記デバイスは、イメージスキャナである、請求項１１に記載のデバイス。
【請求項２１】
前記所定の時間は、前記画像の出現と前記さらなる画像の出現との間の時間である、請求項１１に記載のデバイス。
【請求項２２】
一連の命令を格納するコンピュータ読取り可能な格納媒体であって、該一連の命令は、プロセッサによって実行可能であり、該一連の命令は、
所定数のエリアに画像を分割するステップと、
該所定のパターンに対して解析されるべきエリアの順序を示すサーチシーケンスを決定するステップと、
（ｉ）所定の時間が満了する、および（ｉｉ）該所定のパターンが検出される、のいずれか一方までに、該サーチシーケンスにおける該エリアを解析するステップと、
該所定のパターンが検出される前に、該所定の時間が満了したときに、さらなる画像を取得し、その後、該さらなる画像において、該シーケンスに残っているエリアを、（ｉ）該所定の時間が満了する、および（ｉｉ）該所定のパターンが該解析されたエリアの１つにおいて検出される、のうちのいずれか一方までに、該画像の最後に解析されたエリアの直後に解析されるべきエリアから開始して、解析するステップと
を実行する、媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
（背景）
従来のスキャナは、一般に、インディシア（例えば、バーコード）からのデータをキャプチャするために用いられている。スキャナの例は、スワイプスキャナ（ｓｗｉｐｅ  ｓｃａｎｎｅｒ）およびプレゼンテーションスキャナ（ｐｒｅｓｅｎｔａｔｉｏｎ  ｓｃａｎｎｅｒ）を含む。スワイプスキャナは、アイテムがスキャナの視野を動的に通過させられる際に、アイテムのバーコードをスキャンするために用いられる。例えば食料雑貨店において、アイテムは、バーコードをスキャンする際に、視野を通過させられる。プレゼンテーションスキャナは、アイテムが視野に提示される（例えば、瞬間的に保持される）際に、アイテムのバーコードをスキャンするために用いられる。従来のスキャナは、レーザスキャナであった。すなわち、それらは、移動レーザビームを用いることにより、バーコードをスキャンする。
【０００２】
レーザスキャナに関連する１つの制限は、バーコードがレーザのスキャンラインと実質的に整列されないときに、レーザスキャナが、バーコードを正しくスキャンすることができないという点である。この制限は、バーコードの大部分が欠けているとき、例えば小さなアイテム（例えば、ガムのパック、ペン等）に印刷されているときに、さらに顕著になる。従来では、この制限は、スキャナに別の移動要素を組み込み、スキャンラインを周辺にシフトさせることによって、最小化されていた。レーザスキャナの別の制限は、徐々に使用されてきている２次元（「２Ｄ」）バーコードをスキャンすることができないという点である。２Ｄバーコードは、追加的なデータ（例えば、製品ＩＤ、期限等）をエンコードし得る。運転免許証に印刷された２Ｄバーコードは、年齢認証のためにスキャンされ得る。レーザスキャナは、一部のタイプの２Ｄバーコードのみをスキャンし得る。
【０００３】
異なるタイプのスキャナ、すなわちイメージングスキャナ（ｉｍａｇｉｎｇ  ｓｃａｎｎｅｒ）は、インディシア（例えば、バーコード）の画像をキャプチャするために、撮像技術（例えば、小型ビデオ／写真カメラ）を使用する。イメージングスキャナは、アイテムの画像を取得し、サーチパターン（例えば、螺旋）を用いて、バーコードを画像内に配置する。螺旋サーチパターンは、画像の中心点から始まり、バーコードが識別されるまで、螺旋パターン内を延びる。バーコードが識別されない場合、スキャナはさらなる画像を取得し、再度、さらなる画像の中心点から始まる螺旋サーチパターンを開始する。このプロセスは、１つの画像内でバーコードが識別されるまで、反復される。イメージングスキャナは、スキャンラインを有しておらず、それ自体が、プレゼンテーションスキャナの中に構成され得る。すなわち、イメージングスキャナは、バーコードがどのようなものであっても、その視野にバーコードを配置し得る。しかしながら、一般にイメージングスキャナは、スワイプスキャナに対しては、少しの選択肢しか有していない。なぜならば、各画像に対する処理時間が、長すぎるからである。処理時間が長いことが原因で、イメージングスキャナは、さらなる画像を取得する前に、中間の画像をスキップすることがあり得、バーコードを含む画像が解析されることなく、バーコードが視野を通過させられることがあり得る。
【発明の開示】
【課題を解決するための手段】
【０００４】
（発明の概要）
本発明は、所定のパターンを配置するための方法に関する。画像は、所定数のエリアに分割される。所定のパターンに対し、解析されるエリアの順序を示すサーチシーケンスが、決定される。サーチシーケンスにおけるエリアは、所定の時間が満了するまで、または所定のパターンが検出されるまで、解析される。所定のパターンが検出される前に、所定の時間が満了したとき、さらなる画像が取得される。そして、上記シーケンスに残っているエリアは、さらなる画像において、所定の時間が満了するまで、または所定のパターンが残っているエリアの１つにおいて検出されるまで、画像の最後に解析されたエリアの直後に解析されるべきエリアから開始して、解析される。
【発明を実施するための最良の形態】
【０００５】
（詳細な説明）
本発明は、以下の説明および添付の図面を参照することにより、さらに理解され得、ここで同じ要素は、同じ参照番号を用いて参照されている。本発明の例示的な実施形態は、所定のサーチシーケンスを提供し、このサーチシーケンスは、撮像デバイスが、それによって画像内に生成された所定のパターンを識別することを可能にする。
【０００６】
図１は、本発明にしたがう、システム５の例示的な実施形態を示している。システム５は、撮像デバイス（例えば、スキャナ１０）を含んでおり、これは、有線接続または無線接続を介して、コンピューティングデバイス１２に接続され得る。以下に説明されるように、スキャナ１０は、１つ以上の画像をキャプチャし、その中の所定のパターンを識別する。コンピューティングデバイス１２は、例えば、ＰＣ、ラップトップ、サーバ、ハンドヘルドコンピュータ等であり得る。
【０００７】
一実施形態において、スキャナ１０は、画像キャプチャ装置（「ＩＣＡ」）３５（例えば、カメラ）を含んでおり、この画像キャプチャ装置は、レンズ１５、プロセッサ４０、メモリ４５、およびタイマー５０を有している（図２参照）。レンズ１５およびその１つ以上の特性（例えば、倍率、凹凸等）は、スキャナ１０によって生成される撮像エリア２０を規定し得る。当業者は、撮像エリア２０のサイズ、形状、および方向が、上記の（単数または複数の）特性を調整することによってマニュピレートされ得るということを、理解し得る。スキャナ１０によって生成される画像は、撮像エリア２０の寸法に実質的に類似した寸法を有し得る。
【０００８】
動作中、スキャンされるべきアイテム２５は、スキャナ１０の撮像エリア２０内に提示され得る。上述のように、アイテム２５は、撮像エリア２０を動的に通過させられ得るか（例えば、スワイプスキャン）、あるいは撮像エリア２０において、またはその近くで、静止状態を保つように保持され得る（例えば、プレゼンテーションスキャン）。いずれの実施形態においても、スキャナ１０は、アイテム２５の一部の少なくとも１つの画像を生成し得る。当業者は、アイテム２５は、典型的には、特に撮像エリア２０内で、その上の所定のパターン（例えば、バーコード３０）が、スキャナ１０と面するように、配置され得るということを理解し得る。このようにして、アイテム２５は、スキャニングのために、システム５のユーザ（例えば、食品雑貨店の店員、倉庫の作業員）によって配置されたり、あるいはアイテム２５は、アイテム２５に撮像エリア２０を通過させるプラットフォーム（例えば、コンベアベルト、アセンブリライン）に配置されたりし得る。
【０００９】
当業者は、バーコード３０は、１次元または２次元であり得、任意の形状および任意のサイズであり得るということを、理解し得る。さらに本発明は、バーコード３０が、任意の態様で方向付けられ得るということを、考慮に入れる。例えば図１は、バーコード３０を、撮像エリア２０内に水平に方向付けられるものとして示しているが、当業者は、バーコード３０は、所定の角度で、および／または上下逆に方向付けられ得るということを、理解し得る。撮像エリア２０内のバーコード３０の方向は、視野３０を通るアイテム２５の動きに依存し得るが、この方向はさらに、スキャナ１０のマニュピレーションにも依存し得る。例えば、ユーザがスキャナ１０を上下逆に保持する場合、画像においてバーコード３０は、上下逆転し得る。
【００１０】
スキャナ１０が（単数または複数の）画像を取得する間、スキャナ１０におけるプロセッサ４０は、デジタル画像処理技術を用いることにより、画像をデコードし、画像に含まれる任意のデータを抽出し得る。一実施形態において、プロセッサ４０は、メモリ４５にデータを格納し、かつ／またはコンピューティングデバイス１２に、そのデータを伝送する。当業者は、メモリ４５は、揮発性メモリおよび／または不揮発性メモリ、あるいはそれらの任意の組み合わせであり得るということを、理解し得る。さらに、メモリ４５は、プロセッサ４０によって実行可能なアプリケーション、および画像のデコーディングから取得されたデータを格納し得る。以下に記載されるように、（単数または複数の）画像をデコードするとき、スキャナ１０は、タイマー５０を利用し得る。
【００１１】
本発明にしたがう方法２００の例示的な実施形態が、図３に示されている。ステップ２０５において、プロセッサ４０は、フレームを所定数の位置（例えば、ブロック３０５）に分割する。ブロック３０５を生成するために、プロセッサ４０は、フレームの第１のサイズ（例えば、６４０×４８０ピクセル）を取得し、それを各ブロック３０５の第２のサイズ（例えば、８×８ピクセル）によって分割する。例えば、第１のサイズが６４０×４８０ピクセルであり、第２のサイズが８×８ピクセルである場合、所定数のブロック３０５は、８０×６０個（すなわち、（６４０×４８０）／８×８個）であり得る。このようにして、フレームは、４８００個の８×８ピクセルのブロック３０５の配置（例えば、格子）に分割され得る。この方法では、フレームは重複しないブロックに分割され得るが、当業者は、例えば第２のサイズおよび／または所定数を変更することにより、部分的に重複するブロックが利用され得るということを、理解し得る。
【００１２】
別の実施形態において、プロセッサ４０は、フレームの第１のサイズを認識し、配置をフレームにマッピングし得る。例えば、この実施形態において、スキャナ１０がフレームを生成するときに、プロセッサ４０は、第１のサイズが６４０×４８０ピクセルであるということを、認識する。そしてプロセッサ４０は、メモリ４５に格納された、対応する配置（例えば、４８００個の８×８ピクセルのブロック３０５）を取得し、その配置をフレームにマッピングし得る。この実施形態において、メモリ４５は、例えば、フレームの複数のサイズおよび／またはブロック３０５の複数のサイズに対応する、複数の配置を格納し得る。
【００１３】
ステップ２１０において、プロセッサ４０は、バーコード３０を識別するために、ブロック３０５が検査および／または解析され得る所定の順序を示す、サーチシーケンスを決定する。所定の実施形態において、サーチシーケンスは、メモリ４５に格納されたアルゴリズムによって決定され得、スキャナ１０のプロセッサ４０によって実行され得る。このシーケンスは、等式の組によって表され得、この等式の組は、解析されるべきブロック３０５の所定の順序を決定する。例示的な実施形態において、等式の組は、一般に以下のように示される：
ｘｉ＝（ｉ＊ｍ）  ｍｏｄ  Ｍ
ｙｉ＝（ｉ＊ｎ）  ｍｏｄ  Ｎ
ｉ≧０、但しｍ、ｎ、Ｍ、Ｎは整数の定数。
１つの例示的な実施形態において、等式の組は：
ｘｉ＝（ｉ＊１９）  ｍｏｄ  ７８
ｙｉ＝（ｉ＊３５）  ｍｏｄ  ５８である。
この等式の組は、第１の点（例えば、（０，０））および第２の点（例えば、（７７，５７））によって定義される境界内の点からなる長方形の範囲における対（ｘ，ｙ）を与える。この実施形態において、この点の範囲がｘ座標およびｙ座標のうちの１つによってバイアスされるとき、この範囲は、上述の８０×６０個のブロックの内部にフィットし得る。すなわち、この範囲は、８０×６０個のブロックの構成のどの境界にも到達しないように、７８×５８個のブロックのエリアに拡張し得る。当業者は、上記の等式の組を用いることにより、シーケンスが反復される前に、座標の和が偶数になる、座標（１，１）から（７８，５８）までの範囲の全てのブロックを、カバーし得ることを理解し得る。
【００１４】
当業者は、フレームの第１のサイズ、ブロック３０５の第２のサイズ、および配置は、互いに依存して変動し得ること、または互いに独立であり得るということを理解し得る。例えば、第２のサイズを大きくすることは、処理時間を低減させ得るが、その一方で、第２のサイズを小さくすることは、フレームのより精細なカバーを提供し得る。より精細なカバーは、小さなバーコードおよび／またはスキャナ１０から離れた距離にあるバーコードの識別に有用であり得る。例えば、等式の組の別の例示的な実施形態においては、第１のサイズのフレームにおいて、さらなる第２のサイズ（例えば、１６×１６ピクセル）のブロック３０５を利用し得る。したがって、第２のサイズの４０×３０個のブロックを含む、さらなる配置が生成され得る。このその他の実施形態において、等式の組は：
ｘｉ＝（ｉ＊５）  ｍｏｄ  ３８
ｙｉ＝（ｉ＊２３）  ｍｏｄ  ２８である。
この等式の組にしたがうと、解析される第１の３７のブロックは、図６に示されている。このように、等式の組は、画像の実質的に全ての部分を解析するように、生成され得る。
【００１５】
別の実施形態において、サーチシーケンスは、擬乱数生成器によって導出され得る。すなわち、処理のためのブロックは、配置からランダムに選択される。そのブロックは、サーチシーケンス内の全てのブロックが解析されるまで、再度解析されることはない。
【００１６】
好適な実施形態において、図４ｃに示されているように、シーケンスは、フレームの原点（すなわち、（０，０））に配置されている、第１のブロック３１０で始まり得る。そして、所定の順序で、次のブロック（例えば、第２のブロック３２０）が、先のブロックの関数として（例えば、等式の組にしたがって）解析され得る。例えば、第１のブロック３１０の後の第２のブロック３２０は、座標（１９、３５）を有し得、これは、以下の第１の等式の組を利用することによって、計算される：
ｘ１＝１９＝（１９）  ｍｏｄ  ７８
ｙ１＝３５＝（３５）  ｍｏｄ  ５８
したがって、このシーケンスは、例えば、このシーケンスに含まれる全てのブロック３０５が解析されるまで、反復され得ない。当業者は、別の実施形態において、以下のような反復的なアプローチ：
ｘｉ＋１＝ｘｉ＋ｍ；
（ｘｉ＋１≧Ｍ）の場合
ｘｉ＋１＝ｘｉ−Ｍ；
が用いられ得るということを、理解し得る。
この実施形態は、モジュロ演算を利用する上記の実施形態と数学的に均等であるが、この実施形態は、掛け算／割り算を含んでおらず、一部のプロセッサ上では、より高速に実行され得る。
【００１７】
ステップ２１５において、スキャナ１０は、アイテム２５のスキャニングの間に生成された一連の画像から、図４ａに示されている第１の画像３００を取得する。例えばスキャナ１０は、１秒あたり約３０の画像を生成および解析し得る。上述のように、スキャナ１０は、一連の画像を生成し、この一連の画像内の各画像を所定の順序で処理し得る。あるいは以下に記載されるように、スキャナ１０は、第１の画像３００を生成し、第１の画像３００の処理が失敗した場合にのみ、さらなる画像を取得し得る。方法２００は、スキャナ１０によって実行されるものとして記載されているが、当業者は、方法２００は、一連の画像に対するアクセスを有する任意のデバイス（例えば、コンピューティングデバイス１２）によって、実行され得るということを理解し得る。第１の画像３００が取得されると、プロセッサ４０は、図４ｂに示されているように、そこに配置をマッピングする。
【００１８】
図４ａに示されているように、第１の画像３００は、この画像の領域に配置されたバーコード３０を含んでいる。しかしながら、例えば、撮像エリア２０を通るアイテム２５の動き、スキャナ１０に対するアイテム２５の方向、またはその他の様々な要因に起因して、バーコード３０は、図５における一連の画像５００に示されているように、第１の画像３００の中心に存在しないことがあり得る。画像５００は、例えば、アイテム２５が撮像エリア２０を通過するときに、スワイプスキャンの間に生成され得る。したがって、当業者は、バーコード３０またはその一部のみが、第１の画像３００内の任意の領域に配置され得ること、またはバーコード３０は、第１の画像３００に配置されないことがあり得るということを、理解し得る。これらのシナリオは、以下で扱われ得る。
【００１９】
ステップ２２０において、プロセッサ４０は、タイマー５０を始動させ、このタイマーは、第１の値に設定され、第２の値（例えば、ゼロ）に到達したときに満了する。第１の値と第２の値との間の差は、プロセッサ４０が第１の画像３００上のシーケンスにおけるブロック３０５を解析し得る時間を表す。別の実施形態において、プロセッサ４０が第１の画像３００上のシーケンスにおけるブロック３０５を解析する時間は、所定のフレームレート（例えば、３０フレーム／秒）にしたがって、連続画像が出現する間の時間である。タイマー５０が満了すると、プロセッサ４０は、スキャナ１０によって生成された一連の画像における次の画像に移行する。この実施形態において、次の画像は、シーケンスにおける第２の画像３１５であり得る。しかしながら、当業者は、次の画像および先の画像は、ｎ個（１個または複数）の画像によって（例えば、第３の画像ごとに）分離され得るということを理解し得る。さらに、当業者は、タイマー５０は、プロセッサ４０によって実行される、ハードウェアまたはソフトウェア機能に実装され得るということを理解し得る。
【００２０】
ステップ２２５において、プロセッサ４０は、シーケンスにおけるブロック３０５を解析する。方法２００の第１の反復において、ステップ２２５では、プロセッサ４０は、第１のブロック３１０を解析する。動作中、プロセッサ４０は、第２のサイズのブロック３０５によって規定された境界内の画像を解析する。例えば、８×８ピクセルのブロック３０５において、プロセッサ４０は、６４ピクセルのエリアを解析し、バーコード３０の少なくとも一部が、そこに配置されているかどうかを決定する。あるいは、プロセッサ４０は、ブロック３０５およびそれに隣接するブロックを解析し、バーコード３０の少なくとも一部が、そこに配置されているかどうかを決定する。
【００２１】
ステップ２３０において、プロセッサ４０は、第１のブロック３１０が、バーコード３０の少なくとも一部を含んでいるかどうかを決定する。すなわち、全体のバーコード３０は、第１のブロック３０５内にフィットしないことがあり得る。したがって、バーコード３０の一部は、バーコード３０のこの一部が識別されたことをプロセッサ４０に示す、任意のインディシアを含み得る。例えば、バーコード３０の一部は、任意の太さの（そして、オプションとして、その間に所定の間隔を有している）１つ以上の平行なバーであり得る。したがって、プロセッサ４０は、任意の１次元および／または２次元のバーコードの一部を識別するように、プログラムされ得る。
【００２２】
ステップ２３５において、第１のブロック３１０は、バーコード３０の一部を含んではいないので、プロセッサ４０は、タイマー５０が満了したかどうかを決定する。タイマー５０が満了していない場合、プロセッサ４０は、ステップ２３７に示されているように、同じ画像（例えば、第１の画像３００）において、ブロックを検査／解析することを継続する。このようにして、プロセッサ４０は、シーケンスにおける次のブロック（例えば、第２のブロック３２０）を解析する（ステップ２２５）。このようにして、プロセッサ４０は、タイマー５０が満了するまで、またはバーコード３０の位置が識別されるまで、シーケンスにおけるブロックを解析することを継続し得る。
【００２３】
ステップ２４０において、タイマー５０は満了しているので、プロセッサ４０は、一連の画像における以後の画像（例えば、次の画像）を取得する。上述のように、次の画像は、第２の画像３１５、または第１の画像３００からｎ個目の画像であり得る。この実施形態において、第２の画像３１５が取得されると、プロセッサ４０は、第２の画像３１５に配置をマッピングし、タイマー５０を始動させる（ステップ２２０）。タイマー５０が始動されると、プロセッサ４０は、第４のブロック３２５を解析する。この第４のブロックは、第１の画像３００上のシーケンスにおいて解析された最後のブロック（例えば、第３のブロック３２２）の直後のブロックである。このことは、図４ｃおよび図４ｄを参照して、記載される。
【００２４】
図４ｃは、所定数のブロック３０５に分割された、第１の画像３００を示している。このように、第１の反復において、プロセッサ４０は、第１のブロック３１０から始まり、タイマー５０が満了するまで、またはバーコード３０の一部が識別されるまで、シーケンスにおける各ブロックを解析する。第１の反復におけるシーケンスは、Ｘ０〜Ｘｎ（ここでｎは、タイマー５０が満了する前に解析されるブロックの個数を表す）によってマークされたブロックによって示されている。Ｘｎによってマークされたブロックは、第１の画像３０５上の解析されたシーケンスにおける最後のブロックを表している。ブロックＸ０〜Ｘｎのシーケンスは、各々の解析の後に、第１の画像３００の事実上全体のエリアが解析されるように、生成される。タイマー５０が満了すると、プロセッサ４０は、バーコード３０の一部を識別することなしに、第３のブロック３２２に到達する。このようにして、プロセッサ４０は、図４ｄに示されている第２の画像３１５を取得する。
【００２５】
図４ｄにおいて、第２の画像３１５は、第１の画像３ｃと同じものであり得る。すなわち、バーコード３０は、第１の画像３００および第２の画像３１５において、実質的に同じ位置に配置され得る。しかしながら、バーコード３０は、例えば、スキャニングの間のアイテム２５の動きに起因して、第２の画像内の新しい位置に移動されることもまた、可能である。本発明にしたがうと、ユーザは、アイテムの実質的な静止状態を維持するか（例えば、プレゼンテーションスキャニング）、あるいは連続的にアイテムを動かし得る（例えば、スワイプスキャニング）。
【００２６】
第２の画像３１５において、プロセッサ４０は、サーチシーケンスを処理することを継続し、第４のブロック３２５から始める。この第４のブロックは、第３のブロック３２２（例えば、第１の画像３００において解析された最後のブロック）の後のシーケンスにおける次のブロックである。すなわち、プロセッサ４０は、第２の画像３１５における第１のブロック３１０からは始めない。第２の反復におけるシーケンスは、Ｙ０〜Ｙｍ（ここでｍは、タイマー５０が満了する前に解析されるブロックの個数を表す）によってマークされたブロックによって示されている。Ｙｍによってマークされたブロックは、第２の画像３１５上の解析されたシーケンスにおける最後のブロックを表している。この最適化は、画像の個数を大幅に低減させ得、その結果、スキャナがプレゼンテーションスキャンモードで動作するときに、プロセッサ４０がバーコード３０を識別するために利用する時間を大幅に低減させ得る。スワイプスキャンモードにおいて、サーチシーケンスは、十分にランダムであり得、各画像において処理される多数のブロック３０５を与え（例えば、１つの画像につき、約１００個以上のブロックが処理される）、画像の全エリアは、実質的に均等にカバーされる。
【００２７】
図３を再び参照すると、ステップ２４５において、プロセッサ４０は、第４のブロック３２５において、バーコード３０の一部を識別しているので、プロセッサ４０は、ブロック３２５において見つけられたバーに垂直な仮想スキャンラインを生成し、バーコード３０のスキャンを開始し得る。別の実施形態において、プロセッサ４０は、隣接しているブロックを解析し、バーコード３０の全体を識別することを試み得る。隣接しているブロックは、第４のブロック３２５内のバーコード３０の位置の関数として、決定され得る。例えば、図４ｄに示されている実施形態において、プロセッサ４０は、バーコード３０の一部の方向（ｏｒｉｅｎｔａｔｉｏｎ）は、バーまたはバーの一部であるということを、決定し得る。このようにして、プロセッサ４０は、所定のエリア内にブロックを含むように、シーケンスを改変し得る。一実施形態において、所定のエリアは、バーを垂直に通過するラインを描くことによって、決定され得る。このようにして、ラインから（例えば、上または下に）離れた所定の距離内の任意のブロックは、改変されたシーケンスに含まれ得る。ラインの長さは、バーコード３０の長さの関数として決定され得る。改変されたシーケンスは、図４ｄにおける第４のブロック３２５にしたがう第２の一連のラインとして示されている。
【００２８】
一実施形態において、プロセッサ４０は、それがバーコード３０の一部を識別した後に、タイマー５０を一時停止させる。このようにして、隣接しているブロックを解析する間に、プロセッサ４０は、１つの画像（例えば、第２の画像３１５）に留まる。しかしながら、当業者は、上述のように、別の実施形態において、プロセッサ４０は、タイマー５０が満了したときに、次の画像を取得し得、最後のブロックがスキャンされた後に、このブロックにおいて解析を始め得るということを、理解し得る。しかしながら、次の画像（例えば、第３の画像）において、プロセッサ４０は、改変されたシーケンスにしたがって、ブロックを解析することを始め得る。
【００２９】
さらに、改変されたシーケンスの使用の間に、プロセッサ４０は、空のブロックのトレランス（ｔｏｌｅｒａｎｃｃｅ）を利用し得る。このようにして、改変されたシーケンスにおけるブロック３０５のうちの１つが、バーコード３０のさらなる部分を含んでいない場合、プロセッサ４０は、改変されたシーケンスにしたがって、ブロック３０５の解析を継続し得る。上記トレランスは、例えば、連続的に解析される空のブロックの任意の所定の数（例えば、３）であり得る。さらに、この許容値は、プロセッサ４０が、所定数の空のブロック内で、バーコード３０のさらなる部分を識別した場合に、リセットされ得る。例えば、改変されたシーケンスにおいて空のブロックが存在する場合、プロセッサ４０は、許容値まで、ブロック３０５の解析を継続し得る。次の３個のブロック３０５のいずれも、バーコード３０のさらなる部分を含んでいない場合、プロセッサ４０は、元のシーケンスに戻るか（ステップ２２５）、または第４のブロック３２５に周辺の広いエリアが含まれるように、改変されたシーケンスを改変する。
【００３０】
ステップ２５０において、プロセッサ４０は、所定のパターン（例えば、バーコード３０）の全体が、識別されたかどうかを決定する。バーコード３０の識別されるべき部分が残っている場合、プロセッサ４０は、タイマー５０が満了しているかどうかを決定し、満了していない場合、改変されたシーケンスにしたがって、ブロックの解析を継続する。別の実施形態において、プロセッサ４０は、元のシーケンスに戻り、そこに残っているブロックの解析を開始し得る。バーコード３０の全体が識別された場合、ブロック２５５に示されているように、プロセッサ４０は、バーコード３０の画像をデジタル化する。デジタル化された画像は、メモリ４５に格納され得、かつ／またはコンピューティングデバイス１２に伝送され得る。オプションとして、プロセッサ４０は、ステップ２５５の後に、画像のデコーディングが正しく行なわれたかどうかを、決定し得る。デコーディングが正しく行われなかった場合、プロセッサ４０は、タイマー５０が満了したかどうか、およびそれに応じて、ブロック／画像のスキャニング解析を継続するかどうかを決定し得る。
【００３１】
当業者は、本発明の趣旨および範囲から逸れることなしに、様々な改変が、本発明になされ得ることを理解し得る。したがって、本発明は、添付の請求項およびそれらの均等物の範囲内で提供される、本発明の改変およびバリエーションをカバーすることが意図されている。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明にしたがう、システムの例示的な実施形態を示している。
【図２】図２は、本発明にしたがう、撮像デバイスの例示的な実施形態を示している。
【図３】図３は、本発明にしたがう、方法の例示的な実施形態を示している。
【図４ａ】図４ａは、撮像デバイスによって生成される画像の例示的な実施形態を示している。
【図４ｂ】図４ｂは、本発明にしたがう、複数の位置に分割された図４ａの画像の例示的な実施形態を示している。
【図４ｃ】図４ｃは、本発明にしたがう、サーチシーケンスの例示的な実施形態を示している。
【図４ｄ】図４ｄは、本発明にしたがう、サーチシーケンスの別の例示的な実施形態を示している。
【図５】図５は、本発明にしたがう、一連の画像の例示的な実施形態を示している。
【図６】図６は、本発明にしたがう、サーチシーケンスのさらなる例示的な実施形態を示している。
【図１】
2008547115.tif 000003
【図２】
2008547115.tif 000004
【図３】
2008547115.tif 000005
【図４ａ】
2008547115.tif 000006
【図４ｂ】
2008547115.tif 000007
【図４ｃ】
2008547115.tif 000008
【図４ｄ】
2008547115.tif 000009
【図５】
2008547115.tif 000010
【図６】
2008547115.tif 000011
【国際調査報告】
2008547115.tif 000012
2008547115.tif 000013