モルフォロジー演算に基づくバーコード検出
この開示は、画像内でバーコードを検出するための技術を記述する。画像プロセッサは、例えば、バーコードであることができる画像内で領域を検出するために画像を処理できる。画像プロセッサは、潜在的なバーコードとして共通に即時に低い光強度とともにピクセルの高い集中およびエッジの高い集中を示す画像の領域を識別できる。画像プロセッサは、多数のモルフォロジー演算を用いてその領域を識別できる。画像プロセッサは、その領域が固有のバーコード機能を有するかどうかを確認することによって識別された領域が実際にバーコードであるかどうかをそのとき決定できる。この開示の中に記述されるバーコード検出技術は、その画像内でバーコードの大きさ、位置およびオリエンテーションから独立することができる。更に、モルフォロジー演算の使用は、より低い計算の複雑性と同じように、より速くおよびより計画的に効率のよいバーコード検出に帰着する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理に関し、画像内のバーコードを検出するための技術により一層特に関する。
【同時継続中の特許出願に対する言及】
【0002】
本願は、本願の譲受人に譲渡され、参照によって本願に明確に組み込まれ、共に出願され、代理人整理番号071438を有する、Chinchuan Andrew Chiuによる“統合されたバーコード走査を伴う画像収集装置”と題された以下の同時継続中の米国特許出願と関係している。
【背景技術】
【0003】
バーコードは、1つ以上のパターンの型の中の情報の機械読み取り可能な表現である。従来技術による1次元のバーコードは、様々な幅およびスペーシングの連続する並列の隣接のバーの型の中に情報を表現する。しかしながら、バーコードは、ドット、同中心の円およびそれと同様なもののパターンのような、多数の他のパターンの中の情報を表現するために拡張されている。これらの他のパターンは、1次元(1D)または2次元(2D)のパターンの中に配列された形状を含むことができる。
【0004】
バーコードは、アイテムの値をつけ、目録を作成し、追跡し、識別するために用いられることができる。一般に、バーコードは、データベースまたは他のトラッキングシステムを用いるアイテムの型に識別番号を対応付けるために用いられる。しかしながら、バーコードは、最近、それが付けられているまたは他の関係のあるアイテムに対するそのアイテムと対応付けられた広く様々な情報を符号化するために用いられ始めている。バーコードは、このように、伝来の用途とは関係のない目的のために情報を通信する方法として現れている。その結果、小売商人単独でよりむしろ、消費者は、バーコードが情報を運ぶことができることによる効率を取り入れ始めている。
【発明の概要】
【0005】
この開示は、画像内でバーコードを検出するための技術を記述する。バーコードは、それらを検出に特に影響されやすくする特別の区別する特徴を有する。バーコードは、ダーク(例えば、ブラック)およびライト(例えば、ホワイト)バー、円、ドットまたは他の形状のパターンとして形成されることができる。バーコードパターンは、パターンのバー、円、ドットまたは他の形状のスペーシングによって生成される多数のエッジを含む。バーコードパターンはまた、パターンのバー、円、ドットまたは他の形状のブラックカラー(または他のダークカラー)のため、低い光強度の多数の領域を含む。バーコードは多数のエッジおよび低い強度ピクセル値を含むだけでなく、エッジおよび低い強度領域は、共通に即時である、すなわち、同じ時間に存在する。
【0006】
バーコード検出モジュールは、画像内で強度における高いコントラスト変化を表現する1つ以上のエッジを識別するためにデジタル画像を処理する。バーコード検出モジュールはまた、低い光強度に伴うデジタル画像の領域を識別するためにデジタル画像を処理する。バーコード検出モジュールは、低い光強度に伴う識別された領域の高い集中および識別されたエッジの高い集中の両方を示すデジタル画像内の位置をバーコードであるための対象としてそのとき識別する。いくつかの観点において、バーコード検出モジュールは、1つ以上のモルフォロジー演算を用いてこれらの位置を識別することができる。バーコード検出モジュールは、特別のバーコード記号論のバーコードファインダーパターンのような、対象位置が固有のバーコード機能を有するかどうかを確認することによって対象位置が実際にバーコードであるかどうかをそのとき決定することができる。
【0007】
1つの観点において、方法は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別することと、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別することと、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出することとを具備する。
【0008】
別の観点において、装置は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別し、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別し、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するバーコード検出モジュールを含むプロセッサを具備する。
【0009】
別の観点において、コンピュータ読み取り可能媒体は、プロセッサに強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別させ、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別させ、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出させるための命令を具備する。
【0010】
別の観点において、装置は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別するための手段と、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別するための手段と、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するための手段とを具備する。
【0011】
この開示の中に記述される技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実行されることができる。ソフトウェアにおいて実行される場合、ソフトウェアは、プロセッサの中で実行されることができる。そして、それは、マイクロプロセッサ、ASIC(application specific integrated circuit)、FPGA(field programmable gate array)、またはDSP(digital signal processor)、または他の等価の統合したまたは分離した論理電気回路構成のような、1つ以上のプロセッサに言及することができる。その技術を実行するための命令を備えるソフトウェアは、コンピュータ読み取り可能媒体に最初に記憶され、プロセッサによってロードされ、実行されることができる。よって、この開示はまた、プロセッサにこの開示の中に記述されるように様々な技術のどれでも実行させるための命令を備えるコンピュータ読み取り可能媒体を熟慮する。いくつかの場合において、コンピュータ読み取り可能媒体は、コンピュータプログラム製品の部分を形成することができる。コンピュータプログラム製品は、製造業者に対して販売されることおよび/または装置の中に用いられることができる。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含むことができ、いくつかの場合において、パッケージ材料をまた含むことができる。
【0012】
1つ以上の観点の細部は、以下の記述および伴う図の中で明らかにされている。技術の他の機能、対象および利点は、その記述および図から、および特許請求の範囲から明白であるであろう。
【図面の簡単な説明】
【0013】
【図1】図1は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置の一例のブロック図である。
【図2】図2は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置を含む無線通信装置の一例を示すブロック図である。
【図3】図3は、更に詳細に図1および2の画像収集装置を示すブロック図である。
【図4】図4は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置の動作の例を示すフロー図である。
【図5】図5は、興味のシーン内でバーコードを検出するバーコード検出モジュールの動作の例を示すフロー図である。
【図6A】図6Aは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6B】図6Bは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6C】図6Cは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6D】図6Dは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図7A】図7Aは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7B】図7Bは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7C】図7Cは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7D】図7Dは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7E】図7Eは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7F】図7Fは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7G】図7Gは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【発明を実施するための形態】
【0014】
図1は、この開示の中に記述されたバーコード検出技術を実行する画像収集装置10の一例のブロック図である。画像収集装置10は、デジタルスチール画像カメラのようなデジタルカメラ、デジタルビデオカメラ、または両方の組み合わせであることができる。加えて、画像収集装置10は、独立のカメラのような独立の装置であることができ、または無線通信装置のような別の装置の中に統合されることができる。一例として、画像収集装置10は、いわゆるカメラ電話またはビデオ電話を形成するために携帯電話の中に統合されることができる。この開示の中に記述された技術は、一般的に収集されたデジタルビデオに適用できるが、デジタルスチール画像に対するこのような技術のアプリケーションは、図の目的のために記述されるであろう。
【0015】
図1に示すように、画像収集装置10は、画像センサ12、画像プロセッサ14および画像記憶モジュール16を含む。バーコード検出技術がビデオシーケンスの1つ以上の画像フレーム上で実行されることができる場合において、画像センサ12は、スチール画像、またはできる限りいっぱいのモーションビデオシーケンスを収集する。画像センサ12は、例えば行および列の中に配列された、個々の画像センサ要素の2次元の配列を含むことができる。いくつかの観点において、画像センサ12の画像センサ要素の各々は、たった1つのピクセルと対応付けられることができる。言い換えれば、画像センサ要素とピクセルの間で1対1の対応が存在することができる。あるいは、各々の画像センサ要素と対応付けられた1つ以上のピクセル、または各々のピクセルと対応付けられた1つ以上の画像センサ要素が存在することができる。画像センサ12は、例えば、相補形金属酸化膜半導体(CMOS)センサ、電化結合素子(CCD)センサまたはそれと同様なもののような固体センサの配列を備えることができる。更に、画像センサ12は、画像入手の間の画像情報を記憶する1つ以上の画像バッファを保守することができる。
【0016】
そのデジタル画像を収集するために、画像センサ12は、そのデジタル画像を収集するためにその画像シーンにその画像センサ要素をさらす。画像センサ12内の画像センサ要素は、例えば、特別のピクセル位置でのシーンのライトの強さを表現する強度値を収集する。いくつかの場合において、センサ12の画像センサ要素の各々は、その要素をカバーするカラーフィルタのため、1つのカラー、またはカラーバンドに対してのみ感知可能である。例えば、画像センサ12は、例えばレッド、グリーン、およびブルー(RGB)フィルタの配列を備えることができる。しかしながら、画像センサ12は、シアン、マゼンタ、イエロー、およびブラック(CMYK)カラーフィルタのような他のカラーフィルタを利用することができる。このように、画像センサ12の画像センサ要素の各々は、1つのカラーのみのための強度値を収集することができる。このように、画像情報は、画像センサ12のセンサ要素によって収集されたピクセル強度および/またはカラー値を含むことができる。
【0017】
画像収集装置10は、画像収集装置内で一般に実行される任意の他のモードと同じように、ブライトモード、ダークモード、人間主体またはフェースモード(human subject or face mode)、ローモーションモード(ある時には、“風景”モードとして言及される)、ハイモーションモード(時には、“アクション”モードとして言及される)、デフォルトまたはノーマルモード(時には、“オート”モードとして言及される)のような、多数の画像収集モードの中で動作することができる。いくつかの実例において、これらの様々な画像収集モードの各々は、画像プロセッサ14のセンサ構成モジュール19が画像センサ12によって収集された画像の品質に影響を及ぼす様々な画像収集プロパティを構成するために用いる値のセットと対応付けられている。アクションモードの画像収集プロパティは、例えば、クイックモーションによって特徴付けられたシーンを効果的に収集するために相対的に短い露出時間を含むことができるのに対し、風景モードと対応づけられた画像収集プロパティは、相対的に長い露出時間を含むことができる。他の実例において、そのデフォルト(また、ノーマルまたはオートとして知られる)モードのような、これらのモードの1つ以上は、画像センサ12から受信されたライトの強度の測定のような、センサ構成モジュール19にその画像シーン内である視覚の状況に基づく様々な画像収集プロパティを構成させることができる。例えば、センサ構成モジュール19は、画像プレビューの間に受信されたライトの強度に基づくセンサ利得、焦点のポイントまたは露出時間を構成することができる。更に他の実例において、その様々な画像収集モードは、画像プロセッサ14に画像センサ12によって収集された結果の画像を高めるために1つ以上の画像処理アルゴリズムを実行させることができる。更に別の実例において、画像収集装置10は、上述された技術の1つ以上を最も高い品質の画像を収集するための試みの中に組み込む1つ以上のモードを支援することができる。
【0018】
画像プロセッサ14は、例えば画像センサ12のバッファから、デジタル画像(またはフレーム)のための画像情報を受信し、この開示の中に記述されたバーコード検出技術を実行する。特に、画像プロセッサ14のバーコードスキャナーモジュール18は、興味のシーンのデジタル画像が1つ以上のバーコードを含むかどうかを決定する。バーコードは、1つ以上のパターンの方の中の情報の機械読み取り可能な表現である。従来技術による1次元のバーコードは、様々な幅、スペーシングおよび長さの連続な並列の隣接のバーの型の中に情報を表現する。しかしながら、バーコードは、ドット、同中心の円およびそれと同様なもののパターンのような、多数の他のパターンの中の情報を表現するために拡張されている。これらの他のパターンは、1次元(1D)または2次元(2D)のパターンの中に配列された形状を含む。1Dおよび2Dのバーコードのいくつかの例は、統一商品コード(UPCs)、コード39バーコード、コード128バーコード、PDF417バーコード、EZコードバーコード、データマトリックスバーコード、QRコードバーコードまたは記号論の任意の他のタイプを利用するバーコードを含む。
【0019】
いくつかの実例において、ノンバーコード画像収集モードの中で動作している間、バーコードスキャナーモジュール18は、そのバーコードを検出することができる。言い換えれば、上述された種々の画像収集モード、例えば、デフォルト画像収集モード、フェースモード、ダークモード、ライトモードまたはバーコードの画像を収集するための明確に設計されていない任意の他の画像収集モードの何れかの中で動作している間、バーコードスキャンモジュール18は、そのバーコードを検出することができる。他の実例において、バーコードの画像を収集するために明確に設計されたバーコード画像収集モードの中で動作している間、バーコードスキャナーモジュール18は、そのバーコードを検出することができる。
【0020】
バーコードスキャナーモジュール18は、この開示の中に記述された技術に従って画像内でバーコードを検出する。バーコードは、それらを検出に特に影響されやすくする特別の区別する特徴を有する。上述したように、バーコードは、バー、円、ドットまたは他の形状のパターンとして形成される。そのバーコードパターンは、そのパターンのバー、円、ドットまたは他の形状のスペーシングによって生成された多数のエッジを含む。そのバーコードパターンはまた、そのパターンのバー、円、ドットまたは他の形状のブラックカラー(または他のダークカラー)のため、多数の低い光強度領域を含む。バーコードは、多数のエッジおよび低い強度ピクセルを含むだけでなく、そのエッジおよび低い強度領域は、共通に即時である、すなわち、同じ時間に存在する。以下により詳細に記述されるように、バーコードスキャナーモジュール18は、バーコードであるための候補位置として、低い強度値の高い集中およびエッジの高い集中を共通に即時に示すデジタル画像内の位置を識別することができる。バーコードスキャナーモジュール18はそのとき、特別のバーコード記号論のバーコードファインダーパターンのような、候補位置が固有のバーコード機能を有するかどうかを確認することによって候補位置が実際にバーコードであるかどうかを決定する。
【0021】
興味のシーン内でバーコードを検出する上で、センサ構成モジュール19は、画像センサ12と対応付けられた1つ以上の画像収集プロパティを構成することができる。センサ構成モジュール19は、例えば、画像センサ12と対応付けられた焦点制御および露出時間の1つ以上を構成することができる。画像センサ12は、構成された画像収集プロパティに従ってバーコードを含む興味のシーンの画像を収集する。この方法において、画像収集装置10は、画像収集装置10のデフォルトの動作内でバーコード走査機能を統合することができる。
【0022】
バーコードスキャナーモジュール18は、その画像のバーコード部分の品質を更に高めるためにバーコードを含む収集された画像の少なくとも領域またはその収集された画像の付加的な処理を実行することができる。バーコードスキャナーモジュール18は、例えば、そのバーコードのコントラストを高めるためにバーコードを含む画像の領域またはその画像を処理し、そのバーコードの画像を鮮鋭化し、その画像からノイズを取り除き、その画像の回転を補正し、またはそのバーコード画像の解析を実行することができる。いくつかの実例において、これらの付加的な処理技術は、興味のシーン内でバーコードの検出に基づいて実行されることができる。
【0023】
画像プロセッサ14は、1つ以上のマイクロプロセッサ、DSPs(digital signal processors)、ASICs(application specific integrated circuits)、FPGAs(field programmable gate arrays)、または任意の他の等価の分離したまたは統合した論理電気回路構成、またはそれらの組み合わせによって実現される。いくつかの態様において、画像プロセッサ14は、MPEG(Motion Pictures Expert Group)−2、MPEG−4、ITU(International Telecommunication Union) H.263、ITU H.264、JPEG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format)、TIFF(Tagged Image File Format)またはそれと同様なもののような、特別の符号化する技術またはフォーマットに従ってその画像情報を符号化するエンコーダ−デコーダ(CODEC)の部分を形成することができる。画像プロセッサ14は、画像切り取り、圧縮、改良およびそれと同様なもののような、画像情報に対して付加的な処理を実行することができる。
【0024】
画像プロセッサ14は、画像記憶モジュール16の中に、バーコードが含まれている収集された画像の少なくとも領域またはその収集された画像を記憶することができる。あるいは、画像プロセッサ14は、その画像に対して付加的な処理を実行し、画像記憶モジュール16の中に、処理されたまたは符号化されたフォーマットの中にバーコードを含む領域または全体の画像のどちらか一方を記憶することができる。その画像情報がオーディオ情報によって伴われる場合、そのオーディオ信号はまた、その画像情報を含む1つ以上のフレームを備えるビデオ情報と併せてまたは独立して、画像記憶モジュール16の中に記憶されることができる。画像記憶モジュール16は、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、またはフラッシュメモリ(FLASH memory)のような、または磁気データ記憶装置または光データ記憶装置のような、任意の揮発性または不揮発性メモリまたは記憶装置を備えることができる。
【0025】
多数の他の要素はまた、画像収集装置10の中に含まれるが、図の容易さおよび単純のために図1の中には明確に示されていない。例えば、画像収集装置10は、レンズ、シャッター、フラッシュ装置およびビューファインダーのような、イメージを収集するための付加的な構成要素を含むことができる。この開示の中に記述された技術が様々の他のアーキテクチャとともに実行されることができるように、図1の中に示されるアーキテクチャは、単に例示的であるにすぎない。その上、図1の中に示される機能は、ハードウェアおよび/またはソフトウェア構成要素の任意の適当な組み合わせによって実現されることができる。
【0026】
図2は、この開示の中に記述されたバーコード検出技術を実行する画像収集装置10を含む無線通信装置20の一例を示すブロック図である。言い換えると、図2は、無線通信装置20内で統合される画像収集装置10を示す。画像収集装置10の動作は、図1については上述されており、それゆえに、ここでは詳細に記述されないであろう。無線通信装置20は、画像収集能力を有するセルラー電話(例えば、いわゆるカメラ電話またはビデオ電話)、ビデオレコーダー、ウェブカム、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータまたは画像収集および無線通信能力を有する任意の他の装置のような、無線通信装置ハンドセットを備えることができる。無線通信装置のコンテキストの中に示されているが、この開示の技術はまた、有線通信装置に適用できる。
【0027】
図2の例において、無線通信装置20は、画像収集装置10、符号化モジュール22、送信機24、ビューファインダー26およびバーコードデコーダモジュール28を含む。符号化モジュール22は、記憶および/または送信のための特別の画像圧縮フォーマットにその画像を圧縮するために収集された画像情報を符号化することができる。符号化モジュール22は、JPEG、TIFF、GIFまたは他の画像圧縮フォーマットを含む、多数の画像圧縮フォーマットのどれでも用いて画像を圧縮することができる。ビデオの場合において、符号化モジュール22は、MPEG、MPEG AVC(Advanced Video Coding) パート10、ITU H.264およびそれと同様なもののような、ビデオ圧縮フォーマットのいくつでも用いてビデオを圧縮することができる。
【0028】
無線通信装置10は、送信機24を介して別の装置に符号化された画像を送信することができる。送信機24は、符号分割多元接続(CDMA)ネットワーク、広帯域符号分割多元接続(W−CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、およびモバイルコミュニケーションのためのグローバルシステム(GSM:global system for mobile communication)ネットワーク、または他の類似したネットワークのような、セルラーネットワークにインタフェースを提供する。送信機24は、そのセルラーネットワークの代わりとしてまたは加えて、任意の他の有線または無線ネットワーク、または適切な米国電気電子学会(IEEE)802.11スタンダードの何れにも定義されるように無線ネットワークにインタフェースを提供することができる。
【0029】
いくつかの実例において、無線通信装置10は、受信された符号化されたデータに対する受信機およびそのデータを復号するためのデコーダを含むことができる。そういうものとして、無線通信装置は、受信回路および送信機24の送信回路を含む別個のトランシーバまたは受信機を含むことができる。そのデコーダは、別個の復号モジュールであることができる、またはCODECに符号化モジュール24とともに統合されることができる。
【0030】
無線通信装置20は、ビューファインダー26上で画像収集装置10によって収集されるための興味のシーンのリアルタイム画像(すなわち、画像プレビュー)または画像収集装置10によって収集された画像のどちらか一方を表示することができる。ビューファインダー26は、電子ビューファインダーを備えることができる。代表的な電子ビューファインダーは、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマ表示板(PDP)、発光ダイオード(LED)ディスプレイ(例えば、アクティブマトリックスLEDディスプレイ)、または収集された画像またはリアルタイム画像を表示することが可能なディスプレイの任意の他のタイプのようなディスプレイの1つ以上のタイプを一般に含む。ビューファインダー26はまた、上述された電子ビューファインダーの代わりにより多くの従来技術による光ビューファインダーを備えることができる。無線通信装置20の場合において、ビューファインダー26は、一般の目的の電子ディスプレイを備える。そして、そのディスプレイはまた、無線通信装置20が実行することができる他の機能に関係する情報を表示する。例えば、無線通信装置20がいわゆるカメラ電話を表現する場合、ビューファインダー26はまた、セルラー電話の呼出しの受信および送信に関係する情報を表示する。
【0031】
図2の無線通信装置20はまた、バーコードデコーダモジュール28を含む。バーコードデコーダモジュール28は、いくつかの実例において、無線通信装置20内で実行するソフトウェアアプリケーション、または、他の実例において、専用のハードウェア構成要素、または両方の組み合わせを備えることができる。どちらか一方の実例において、バーコードデコーダモジュール28は、そのバーコード画像によって与えられる単一または複数の次元のパターンを復号することによって与えられたバーコード画像内で符号化された情報(ある時ペイロードとして言及される)を一般に抽出する。そのバーコードを復号した後、バーコードデコーダモジュール28は、更に他のモジュールにそのペイロードを利用することの目的のために実行させることができ、それ自身そのペイロードを利用することができる。
【0032】
特に、バーコードデコーダモジュール28は、ペイロードを抽出するために画像収集装置10によって受信されたバーコード画像内に含まれるパターンを復号することができる。バーコードデコーダモジュール28は、例えば、そのバーコードを復号するために記号ライブラリにアクセスすることができる。その記号ライブラリは、例えば、そのバーコードを復号することにおいて有益な他の情報と同じように、ペイロードの特徴および/または単一の数字の符号化することを含むことができる。いくつかの実例において、統一商品コード(UPC)の場合のように、そのペイロードは、それが付け加えられるアイテムを識別することができる。加えて、そのペイロードは、そのバーコードが接続されるアイテムと対応付けられた付加的な情報を含むことができる。例えば、そのペイロードは、そのアイテム自身の上には表示されない付加的なアイテムの情報、関連したアイテムについての情報そのアイテムまたは関連したアイテムのための販売を促進するクーポン、そのアイテムまたは関連したアイテムのための適切なインターネットリンク、または任意の他の対応付けられた情報を含むことができる。
【0033】
いくつかの実例において、その情報は、そのバーコードのペイロード内に直接に含まれることができる。他の実例において、そのペイロード内に含まれる情報は、例えば、そのペイロードをそのアイテムに関連した付加的な情報と対応付けるデータベースから、適切な情報を検索するために用いられることができる。そのペイロードが適切なインターネットリンクを含む場合において、例えば、そのペイロードは、HTTP(Hypertext Transfer Protocol)アドレスを備えることができる。バーコードデコーダモジュール28は、そのペイロードによって指定されたHTTPアドレスにアクセスするためのウェブ走査検索器を呼び出すことができ、ビューファインダー26上のHTTPアドレスをロードすることができる。この方法において、無線通信装置20のユーザは、インターネットを介して、その収集されたバーコードが結びつけるアイテムと対応付けられる付加的な情報を見ることができる。加えて、そのユーザは、そのアイテム自身と関連していないアプリケーションのための情報を得るためにそのバーコードのペイロードを利用することができる。例えば、そのユーザは、ストリートサイン上に位置付けられるバーコードを走査することができ、その時、そのユーザが行くことを望む位置に対するバーコードを含むアイテム(例えば、ストリートサイン)から方向を得るためにマッピングプログラムにアクセスすることができる。
【0034】
画像収集装置10のみを含んでいるとして記述されたが、符号化モジュール22、送信機24、ビューファインダー26およびバーコードデコーダモジュール28、無線通信装置20は、ユーザとインタフェースで接続するためのユーザインタフェース(例えば、キーパッド)、付加的な演算を実行するための1つ以上のプロセッサ、およびリムーバブルメモリを受け取るための様々なレセプタクルおよびポート、ヘッドホン、電源、および任意の他のこのような周辺装置のような、他のモジュールを含むことができる。無線通信装置20は、モデム、周波数変換器、フィルタおよび増幅器回路のような情報の受信および送信のための他の構成要素を更に含むことができる。
【0035】
図3は、更に詳細に図1および2の画像収集装置10を示すブロック図である。図3の中に示されるように、画像センサ12は、興味のシーンに属する画像情報を記憶することができる画像バッファ30を含むことができる。画像センサ12は、例えば、画像プレビューの間に画像バッファ30の中に画像情報を記憶することができる。より明確には、ユーザが画像を収集するためのボタンを作動させる前だが、ユーザが興味のシーンに画像収集装置10を向けている間、画像センサ12は、画像バッファ30の中に画像情報を記憶することができる。この方法において、画像バッファ30は、画像収集装置10によって収集されるために興味のシーンのリアルタイム画像を記憶しているとして見られることができる。バッファ30は、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、またはフラッシュメモリ(FLASH memory)のような、または磁気データ記憶装置または光データ記憶装置のような、任意の揮発性または不揮発性メモリを備えることができる。1つの画像バッファ30を含んでいるとして示されたが、画像センサ12は、画像バッファを含まない、または複数の画像バッファを含むことができる。
【0036】
画像センサ12はまた、画像センサ12を構成するための1つ以上の画像収集制御プロパティ32を一般に含む。図3の中に示される例において、画像センサ12は、露出タイマ32A、焦点制御32Bおよびセンサ利得32Cを含む。露出タイマ32Aは、画像センサ12が興味のシーンに対して露出されている間の時間を設定するために構成可能なタイマを表現する。一般に、画像プロセッサ14は、画像収集装置と対応付けられた露出テーブルまたは従来技術による露出数式の設定に基づいて露出タイマ32Aを構成する。焦点制御32Bは、自動的に興味のシーン上に焦点を合わせることが可能なこれらの画像収集装置10のために存在する。焦点制御32Bは、最適の焦点値(例えば、最適のコントラストによって決定される鮮明値)を生成するレンズ位置を設定すること、および/または画像センサ12が焦点を合わせるべきである距離を設定することのために構成可能な制御値を表現する。一般に、画像プロセッサ14は、興味のシーンの特別の領域、例えば、興味のシーンの中心上にレンズの焦点を合わせるために焦点制御32Bを構成する。センサ利得32Cは、画像センサ12の画像センサ要素の増幅器利得を決定する構成可能なセンサ利得制御値を表現する。露出時間32Aのような、画像プロセッサ14は、画像収集装置と対応付けられた利得テーブルまたは従来技術による利得数式の設定に基づいてセンサ利得32Cを構成することができる。いくつかの実例において、センサ利得32Cセンサ利得32C、焦点制御32Bおよび露出タイマ32Aの1つ以上の調整は、相互に関連することができる。画像センサ12内に存在するとして図3の中に示されたとは言え、バッファ30および画像収集制御プロパティ32は、バーコードスキャナーモジュール18、画像記憶モジュール16または画像プロセッサを含む画像収集装置10の他のモジュール内のような、画像センサ12の外部に存在することができる。
【0037】
バーコードスキャナーモジュール18は、バーコード検出モジュール34およびバーコード処理モジュール36を含む。ユニットまたはモジュールとしての種々の機能の描写は、バーコードスキャナーモジュール18の種々の機能面を強調することが意図されており、このようなユニットまたはモジュールが別個のハードウェア、ソフトウェアおよび/またはファームウェア構成要素によって実現されなければならないということを必ずしも暗に示していない。それどころか、1つ以上のユニットまたはモジュールと対応付けられた機能は、別個のまたは共通のハードウェア、ソフトウェア構成要素および/またはファームウェア構成要素内で統合されることができる。
【0038】
上述されたように、画像センサ12は、デジタル画像を収集し、バッファ30の中にデジタル画像を記憶する。バーコードスキャナーモジュール18は、バッファ30からデジタル画像を受信し、そのデジタル画像内でバーコードを自動的に検出するためにバーコード検出モジュール34を用いる。上述されたように、バーコード検出モジュール34は、そのデジタル画像内でバーコードを自動的に検出するのに対して、画像プロセッサ14は、バーコードの画像を収集することに対して明確に示されていない任意の他のモード、ブライトモード、ダークモード、人間主体またはフェースモード、ローモーションモード、ハイモーションモードまたはデフォルト画像収集モードのような、ノンバーコード画像収集モードに従って動作する。あるいは、バーコード検出技術は、バーコードの画像を収集するための明確に示されるバーコード画像収集モードにおいて利用されることができる。
【0039】
バーコード検出モジュール34は、検出技術に基礎付けられたモルフォロジー演算を用いてバーコード検出を実行することができる。上述されたように、モルフォロジー演算技術は、バーコードは特別の区別している特徴を有する、すなわち、それらは、空間的に共通に即時である低い強度値の高い集中の領域およびエッジの高い集中の領域を有するという事実に基づく。以下に詳細に記述されるように、バーコード検出モジュール34は、バーコードの候補としてモルフォロジー演算を用いて低い光強度およびエッジを共通に即時に含む領域を識別すること、および候補領域が固有のバーコード機能を有するかどうかを確認することによってバーコードを検出する。
【0040】
バーコード検出モジュール34は、画像バッファ30から収集されたデジタル画像の輝度値を得ることができる。その収集された画像情報がY−Cb−Cr(輝度、ブルークロミナンス、レッドクロミナンス)ドメインである場合、例えば、バーコード検出モジュール34は、バーコード検出における使用のためにY−チャネル値を検索することができる。その画像情報が別のカラードメイン、例えば、RGB(レッド、グリーン、ブルー)ドメインの中にある実例において、バーコード検出モジュール34は、その画像をグレースケールに変換することができる。いくつかの実例において、その基度情報は、バーコード検出において助けるために、例えば、鮮鋭化マスクを用いて、わずかに鮮鋭化されることができる。
【0041】
バーコード検出モジュール34は、そのデジタル画像内でエッジを識別するために画像を処理する。エッジは、輝度強度において高いコントラスト変化を示すデジタル画像の位置である。例えばそのエッジは、低い強度から高い強度へ、すなわち、ライトからダークへ、または高い強度から低い強度へ、すなわち、ダークからライトへ、の変化を定義することができる。バーコードの性質、すなわち、ブラックおよびホワイト(または他のダークおよびライト)のパターンのため、バーコードは、顕著な、容易に検出可能なエッジを生成する。そのデジタル画像内でエッジを識別するために、バーコード検出モジュール34は、輝度値が有意な変更を示す位置を検出するために画像を分析することができる。バーコード検出モジュール34は、従来技術によるエッジ検出技術を用いて画像内でエッジを識別することができる。例えば、バーコード検出モジュール34は、エッジを検出するためにデジタル画像に核マトリックス(例えば、乗算因子または重みのマトリックス)を適用することができる。その核マトリックスは、それが適用される実際の画像より一般に小さい。3つのピクセルによる3つのピクセル(3×3)の核マトリックスは、例の目的のために記述されるであろう。しかしながら、バーコード検出モジュール34は、他の次元の核マトリックスを用いることができる。
【0042】
特に、バーコード検出モジュール34は、3×3の核マトリックスを順番に画像の各々のピクセル上の中心に置き、重みを付けられたピクセル値を生成するために核マトリックスの対応する重みを中心のピクセルの周囲の3×3の領域のピクセル値を掛ける。バーコード検出モジュール34は、中心のピクセルの第1次導関数を得るために重みを付けられたピクセル値を合計する。画像プロセッサは、変化しきい値と中心のピクセルの第1次導関数とを比較し、第1次導関数が変化しきい値以上である場合にはエッジを検出する。第1次導関数が変化しきい値以上である場合、そのピクセルは、エッジ上に位置していると決定される。1つの観点において、バーコード検出モジュール34は、エッジ上に位置していると決定されたピクセルをホワイトまたはブラックと対応付けられた強度値に設定することができ、エッジ上に位置していないと決定されたピクセルを逆の強度値、例えば、ブラックまたはホワイトに設定することができる。このように、エッジ検出の結果は、識別されたエッジを除いて取り除かれた全ての細部とともに原型の画像を表現する2値の画像であるエッジマップであることができる。2値の画像は、エッジがホワイトであり、画像の残りはブラックである、または逆も同様、すなわち、エッジがブラックであり、画像の残りがホワイトである、ブラックおよびホワイトの画像であることができる。バーコード検出モジュール34は、デジタル画像の第1の命令の派生物を用いてエッジを検出しているとして記述されているが、他のエッジ検出技術は、デジタル画像の第2の命令の派生物のような、画像内でエッジを検出するために用いられることができる。
【0043】
バーコード検出モジュール34はまた、低い強度を伴う画像の領域(“低い強度領域”としてここでは言及される)を識別するために画像を処理する。低い強度領域は、画像のダークの部分と対応する。バーコード検出モジュール34は、しきい値化を介して画像の低い強度領域を識別することができる。特に、バーコード検出モジュール34は、強度しきい値とピクセル強度値の各々とを比較することによって画像の低い強度領域を識別することができ、強度しきい値以上である全てのピクセル値を取り除くことができる。このように、低い強度検出の結果は、取り除かれた高い強度領域とともに原型の画像を表現する2値の画像である低い強度マップであることができる。1つの例において、バーコード検出モジュール34は、ホワイトに強度しきい値以下であるピクセル強度値を設定することができ、ブラックに強度しきい値以上であるピクセル強度値を設定することができる。この場合において、画像の低い強度領域は、ホワイトの領域として表現され、画像の低くない強度領域は、ブラックとして表現される。あるいは、低い強度領域は、ホワイトの領域として表現される他の領域およびブラックの領域として表現されることができる。いくつかの実例において、バーコード検出モジュール34は、並行して画像の低い強度領域およびエッジを識別するためのデジタル画像を処理することができる。
【0044】
バーコード検出モジュール34は、エッジの高い集中を示す画像内で位置を識別するためにエッジマップ上に1つ以上のモルフォロジー演算を実行する。同様に、バーコード検出モジュール34は、低い強度値の高い集中を示す画像内で位置を識別するために低い強度マップ上に1つ以上のモルフォロジー演算を実行する。モルフォロジー演算は、同時に(すなわち、並行して)または連続して低い強度マップおよびエッジマップ上に実行されることができる。モルフォロジー演算は、拡張演算、浸食演算、オープニング演算、クロージング演算またはそれと同様なものの1つ以上を含むことができる。1つの例において、バーコード検出モジュール34は、低い強度マップおよびエッジマップ上に拡張を実行することができる。拡張は、分割されたエリアおよび孔を一般にふさぎ、拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続する。
【0045】
2値の画像のために、構造化要素、例えば、3×3の構造化要素は、ピクセルの各々の上の中心に置かれる。構造化要素内でのピクセルの何れもホワイトである場合、構造化要素が中心におかれたピクセル値は、ホワイトに設定される。類似したアプローチは、グレースケール画像のために実行される。グレースケール画像において、例えば、ピクセル値の各々は、構造化要素内でピクセル値の最大のピクセル値と等しいピクセル値を設定することによって構造化要素を用いて再計算されることができる。この方法において、ダーク領域によって囲まれるブライト領域は、大きさにおいて増大し、ブライト領域によって囲まれるダーク領域は、大きさにおいて減少する。画像の中の小さなダークポイントは、囲んでいる強度値に対してそれらが“ふさがれる”ように消滅するであろう。その結果は、強度が速やかに変更するデジタル画像の中の、例えばバーコードが位置付けた領域の中の場所で最も注目されている。
【0046】
バーコード検出モジュール34は、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせる。バーコード検出モジュール34は、例えば、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせるために“論理積(AND)”演算を実行する。その組み合わされた画像は、低い強度領域およびエッジとして識別される画像の部分を表現する。言い換えると、その組み合わされた画像は、エッジおよび低い強度領域が空間的に共通に即時である画像の部分を表現する。
【0047】
バーコード検出モジュール34は、組み合わせられた画像上に1つ以上のモルフォロジー演算を再び実行する。例えば、バーコード検出モジュール34は、分割されたエリアおよび孔をふさぐために組み合わされた画像上に別の拡張演算を実行することができ、その拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続することができる。バーコード検出モジュール34はまた、組み合わされた拡張された画像の領域内で全ての残存する孔を更に満たすために組み合わされた拡張された画像に対してフラッドフィル演算を実行することができる。フラッドフィル演算は、対象の内部の孔を満たす。いくつかの実例において、バーコード検出モジュール34は、フラッドフィル演算の代わりにクローズ演算を実行することができる。クローズ演算は、満たしている要素の大きさ内で小さな孔を閉じる。ところが、フラッドフィル演算は、孔の大きさにかかわらず対象内で全ての孔を閉じる。この方法において、組み合わされた画像上に実行される1つ以上のモルフォロジー演算は、重複するエッジおよび低い強度部分に伴う領域を一様の、またほとんど一様の、ホワイト領域にする。
【0048】
バーコード検出モジュール34は、潜在的にバーコードである可能性があるデジタル画像の位置を識別するために1つ以上のモルフォロジー演算の後に組み合わされた画像の中に残存する位置を分析する。言い換えると、バーコード検出モジュール34は、その位置がバーコードであるための候補であるかどうかを決定する。バーコード検出モジュール34は、例えば、その位置がバーコードであるための候補かどうかを決定するために1つ以上のバーコード基準と組み合わされた画像の中に残存する位置の各々を比較することができる。バーコード検出モジュール34は、例えば、その位置がバーコードであるためにはあまりに大きすぎるまたはあまりに小さすぎるかどうかを決定するためにバーコードの大きさの基準とその位置の大きさを比較することができる。その位置の大きさがしきい値より小さい場合、バーコード検出モジュール34は、その位置がバーコードでないということを決定することができる。あまりに小さすぎる位置は、たとえその位置がバーコードとして検出されたとしても、バーコードを分析するために十分に詳細に画像収集装置10のレンズシステムによって収集されることができない。別の例として、バーコード検出モジュール34は、バーコードの形状、例えば長方形または正方形の形状と実質上類似していない位置を削除するためにバーコード形状基準とその位置の形状を比較することができる。更に別の例において、バーコード検出モジュール34は、バーコードの充てん要因の基準とその位置の満たしている要因を比較することができる。特に、正方形および長方形は、いくつのピクセルが周囲の長方形のエリアと関連してホワイトでないかを決定するためにその位置の周囲に配置されることができる。周囲の長方形のエリアと関連してホワイトでないピクセルのパーセンテージがしきい値のパーセンテージを超える場合、その位置は、候補位置から削除されることができる。
【0049】
バーコード検出モジュール34は、その位置で残存しているデジタル画像が固有のバーコード機能を有するかどうかを確認することによって残存している位置が実際にバーコードであるかどうかをそのとき決定することができる。いくつかの2Dバーコードの場合において、例えば、バーコード検出モジュール34は、識別された位置がバーコードファインダーパターンを含むかどうかを決定するためにバーコードであるための対象としてバーコード検出モジュール34によって識別された画像の位置を分析することができる。2Dデータマトリックスバーコードの場合において、バーコード検出モジュール34は、その位置の範囲内で固有の境界線のパターン、例えば、交互のブラックおよびホワイトの正方形のモジュールから構成される2つの垂直の線を探すことができる。2D QRバーコードの場合において、バーコード検出モジュール34は、識別された位置の3つの角で入れ子にされた交互のダークおよびライトの正方形のファインダーパターンを探すことができる。バーコード検出モジュール34は、しかしながら、他のバーコード記号論と対応付けられた他の固有の機能または他の固有のバーコードファインダーパターンのために識別された位置を分析することができる。更に、バーコード検出モジュール34は、固有のバーコード機能またはパターンのための生成された低い強度マップ、生成されたエッジマップまたはデジタル画像のグレースケールバージョンのような原型の画像とは違った画像を分析することができる。
【0050】
上述されたバーコード検出技術は、いくつかの利点を与えることができる。例えば、バーコード検出技術は、その画像内でバーコードの大きさ、位置、およびオリエンテーションから独立することができる。更に、この開示の中に記述されているバーコード検出技術におけるモルフォロジー演算の使用は、より速くおよびより計算的に効率のいいバーコード検出に帰着する。更に、バーコード検出技術は、加えてより低い計算の複雑性とすることができる。
【0051】
バーコード検出モジュール34がその画像内でバーコードを検出しない場合、画像プロセッサ14は、この開示の中に記述されたバーコード走査技術を更に実行することなく画像を収集するために画像センサ12を制御することができる。すなわち、画像収集装置10は、従来技術による画像収集技術に従って、例えば、興味のシーン内でライトの総計に基づいて、あるいは興味のシーンの中心の中の焦点のポイントを伴って画像を収集することができる。実際は、画像収集装置10のユーザは、画像収集装置10が興味のシーン内でバーコードを検出することを試みたということでさえ知らない。その代わりとして、バーコード検出は、ユーザを従事させることなくバックグラウンドの中で実行されることができる。
【0052】
プレビュー画像内でバーコードを検出すると、バーコードスキャナーモジュール18は、画像内でのバーコードの検出を表示するために、図2のビューファインダー26のような、ビューファインダーと相互に作用することができる。いくつかの実例において、バーコードスキャナーモジュール18は、例えば、検出されたバーコードの周囲にボックスを配置することを経て、ユーザに対して画像内でのバーコードの位置を更に表示することができる。バーコードスキャナーモジュール18はまた、バーコードを収集し更にバーコード復号演算を実行すること、あるいは従来技術による画像収集技術に従って興味の一般のシーンを単に収集することをユーザが望むかどうかを決定することを画像収集装置10のユーザに促す。この方法において、興味のシーン内にバーコードがある場合、ユーザは、従来技術による方法において興味のシーンを収集するためのオプションを有するが、そのユーザの意図はバーコードを走査することではなかった。しかしながら、他の観点において、画像収集装置10は、そのユーザに促すことができないが、その代わりとして、単に、すなわち、まるで目的が興味のシーン内でバーコードを走査することであったかのように、ここの技術に従って画像を処理および収集することができる。様々な技術のどれでも、まるで目的が興味のシーン内でバーコードを走査することであったかのように画像を処理および収集するかどうかを決定するために用いられることができる。バーコードがしきい値の大きさ以上である場合、例えば、バーコードが例えば画像の少なくとも4分の1を占める場合、画像収集装置10は、まるで目的が興味のシーン内でバーコードを走査することであったかのように画像を処理および収集することができる。
【0053】
ユーザがバーコードのプロンプトに応じて更にバーコード復号演算を実行すべきであるということを応答する、またはこのようなプロンプトが与えられてない場合、センサ構成モジュール19は、画像センサ12が改良された品質でバーコードを収集することができるように画像センサ12の画像収集プロパティ32を構成することができる。特に、センサ構成モジュール19は、バーコードを含む興味のシーンの領域または複数の領域の品質を改良するために画像センサ12の画像収集プロパティを構成する。例えば、センサ構成モジュール19は、画像センサ12が高品質においてバーコードとともに興味のシーンの領域を収集するように露出タイマ32Aおよび/または焦点制御32Bを構成することができる。すなわち、画像内でバーコードの位置を与えられると、センサ構成モジュール19は、バーコードを含む興味のシーンの領域のために最適露出時間を計算することができ、従来技術による露出時間アルゴリズムを用いて、露出タイマ32Aを構成することができる。例えば、センサ構成モジュール19は、バーコードを含む興味のシーンの領域の中の光強度を分析することができ、興味のシーンの特別の領域の光強度に基づいて露出時間を設定することができる。
【0054】
加えて、またはあるいは、興味のシーン内でバーコードの位置を与えられると、センサ構成モジュール19は、バーコードを含む興味のシーンの領域のために最適焦点制御を計算することができ、従来技術による焦点制御アルゴリズムを用いて、画像センサ12の焦点ポイントとしてバーコードの位置を用いるために焦点制御32Bを構成することができる。いったん画像収集プロパティ32が構成されると、画像プロセッサ14は、画像センサ12に画像収集プロパティ32に従って画像を収集させることができる。上述された例の実例において、センサ構成モジュール19によって構成される画像収集プロパティ32は露出時間および焦点制御を含むが、他の画像収集プロパティは、焦点制御および露出時間に加えて、または焦点制御および露出時間の代わりに構成されることができる。例えば、センサ構成モジュール19は、センサ利得、例えば、画像センサ12の増幅器利得を構成することができる。
【0055】
いくつかの実例において、画像収集装置10は、バーコード画像収集モードにおいて動作することができる。この場合において、画像収集プロパティ32は、その画像内でのバーコードの検出より前に構成されることができる。バーコード検出モジュール34は、画像センサ12の画像収集プロパティ32を構成する目的のために画像内でバーコードを検出する代わりにバーコードの処理の目的のために画像内でバーコードを検出することができる。
【0056】
画像収集プロパティ32に従って興味のシーンの画像を収集した後、バーコード処理モジュール36は、収集された画像を処理することができる。バーコード処理モジュール36は、例えば、バーコードの残りを含む画像の領域のみのような画像を切り取ることができる。バーコード処理モジュール36は、例えば、バーコードの検出の間にバーコード検出モジュール34によって生成されるバーコード位置情報を用いて、画像内で複数のバーコードまたは1つのバーコードのみを含むために収集された画像を切り取ることができる。あるいは、バーコード検出モジュール34は、デジタル画像内でバーコードの位置を識別するためにバーコード収集動作の中のこのポイントでバーコード検出を実行することができる。画像内で1つ以上のバーコードがある実例において、バーコード処理モジュール36は、別々に画像からバーコードの各々を抽出することができる。
【0057】
あるいは、または加えて、バーコード処理モジュール36は、その次のバーコードデコーダモジュール、例えば図2のバーコードデコーダモジュール28による使用のためのきれいで一様なバーコードを生成するためにひずみを取り除くために収集された画像を更に処理することができる。いくつかの実例において、バーコード処理モジュール36は、バーコードを含む画像の領域の中のみのひずみを補正することができる。あるいは、バーコード処理モジュール36は、全体の画像のひずみを補正することができる。バーコード処理モジュール36は、様々なひずみの問題のどれでもに対して補正するためにひずみ補正技術を実行することができる。例えば、バーコード処理モジュール36は、バーコードが正確に見られることができるように画像内でバーコードを方向付けるために画像を回転することができる。
【0058】
別の例として、バーコード処理モジュール36は、バーコードの単一または複数の次元のパターンを暗くすることができる影および光によって引き起こされるひずみに対して補正するために画像を処理することができる。ひずみ補正モジュール38は、遠近法に関係のある問題に対して補正するために画像を加算的に処理することができる。すなわち、バーコードは、ユーザがバーコードの画像を収集した遠近感のためスキューされることがある。バーコード処理モジュール36は、スキューされたバーコードを補正するために画像をそれゆえ処理することができる。バーコード処理モジュール36はまた、バーコードが平らでないアイテムの上に配置された場合に生じるバーコードのワーピングのために補正することができる。例えば、バーコード処理モジュール36は、ガラス瓶またはアルミニウム缶上に配置されているバーコードの結果のバーコードのワーピングを補正することができる。
【0059】
画像プロセッサ14は、画像記憶モジュール16内で収集されたバーコード画像を記憶することができる。画像収集装置10は、バーコードのペイロードを抽出する目的で復号するためにバーコードデコーダモジュール28(図2)に収集された画像を表示することができる。この方法において、バーコードスキャナーモジュール18は、バーコードがより信頼できるおよび正確なバーコードの復号化を支援することができる改良された画像品質で収集されることができる首尾一貫したフロントエンドインタフェースを与えることができる。画像収集装置がノンバーコード画像収集モードにおいて実行する間のバーコードの自動検出は、特殊なバーコード収集装置を実行するまたは特殊なバーコードカメラを選択するような、無関係のユーザの相互作用を減らすまたは削除することにおいて得に有効であることができる。更に、バックエンドで画像改良技術を実行する代わりに画像センサ12の画像収集プロパティを構成することは、バーコードのより高い品質の画像を与えることができる。
【0060】
この開示の中に記述され、センサ構成モジュール19およびバーコードスキャナーモジュール18に属するものとみなされるような機能は、コンピュータ読み取り可能な媒体に記憶された命令を実行する1つ以上のプログラマブルプロセッサによって実行されることができる。そして、その命令および/またはコードは、プロセッサにこの開示の中に記述されたようなバーコード走査を実行させる。いくつかの場合において、コンピュータ読み取り可能な媒体は、コンピュータプログラム製品の部分を形成することができる。そして、それは、製造業者に対して販売されることおよび/または装置の中に用いられることができる。あるいは、この開示の中に記述され、センサ構成モジュール19およびバーコードスキャナーモジュール18に属するものとみなされる技術は、一般にハードウェアの中に、特に統合された回路装置内で実行されることができる。その統合された回路装置は、この開示の中に記述された機能を実行するように構成される1つ以上のプロセッサを備える。
【0061】
図4は、バーコード操作を実行する、図3の画像収集装置10のような、画像収集装置の動作の例を示すフロー図である。最初に、ユーザは画像収集を開始し、画像センサ12は、画像入手を始める(42)。すなわち、画像センサは、画像バッファ30に画像情報を記憶し、収集する。いくつかの実例において、ユーザが画像を収集するためのボタンを作動させる前だが、画像センサ12を、画像プレビューの間、すなわち、ユーザが興味のシーンで画像収集装置10に向けている間、画像バッファ30に画像情報を記憶し、収集する。画像入手は、バーコード画像収集モードを含む、画像収集モードの何れにおいても始めることができる。
【0062】
バーコード検出モジュール34は、デジタル画像を受信し、興味のシーンがバーコードを含むかどうかを検出する(44)。バーコード検出モジュール34は、共通に即座に低い光の強度とともにピクセルの高い集中およびエッジの高い集中を示す画像の位置を識別することができる。バーコード検出モジュール34は、特別のバーコード記号論を独自に識別する他の機能またはバーコードファインダーパターンのような、その位置が固有のバーコード機能を有するかどうかを確認することによって識別された位置が実際にバーコードであるかどうかをそのとき決定することができる。バーコード検出技術は、図5に関してより詳細に記述される。
【0063】
バーコード検出モジュール34が興味のシーン内でバーコードを検出しない場合、画像プロセッサ14は、いくつかの他の基準に基づいて決定された画像収集プロパティに従って画像を収集するために画像センサ12を制御することができる(46)。例えば、バーコード検出モジュール34が興味のシーン内でバーコードを検出しない場合、画像プロセッサ14は、そのシーンの他の特徴、興味のシーン内でのモーションの量、または興味のシーンの中のライトの量に基づいて決定された画像収集プロパティに従って画像を収集するために画像センサを制御することができる。
【0064】
バーコードが興味のシーン内で検出される場合、バーコードスキャナーモジュール18は、バーコードを収集し更にバーコード復号演算を実行すること、あるいは従来技術による画像収集技術に従って興味の一般のシーンを単に収集することをユーザが望むかどうかを決定するためにそのユーザに促すことができる(48,50)。この方法において、興味のシーン内でバーコードがある場合、従来技術による方法において興味のシーンを収集するためにオプションを有するが、そのユーザの意図はバーコードを走査することではなかった。
【0065】
そのユーザが検出されたバーコードの促進処理を省略するための意図を合図することによってプロンプトに応答する場合、画像収集装置10は、従来技術による画像収集プロパティに従って画像を収集する(46)。いくつかの実例において、画像収集装置10はそのユーザを促すことができないが、その代わりとして、すなわち、まるでその目的が興味のシーン内でバーコードを走査することであったかのように、ここでの技術に従って画像を単に収集し、処理することができる。その場合において、バーコード収集が望まれていると仮定して、ブロック48および50がスキップされることができる。
【0066】
画像収集装置10がこのようなプロンプト機能を含まない、またはユーザが検出されたバーコードを処理し続けるための意図を合図する場合、センサ構成モジュール19は、画像センサ12の1つ以上の画像収集プロパティを構成する(52)。センサ構成モジュール19は、例えば、バーコードを含む興味のシーンの領域が改良された品質で収集されるように上述された方法においてセンサ利得32C、焦点制御32Bまたは露出時間32Aを構成することができる。
【0067】
画像プロセッサ14は、プロパティを収集された構成された画像に従って画像センサ12に興味のシーンの画像を収集させる(54)。バーコード処理モジュール36は、バーコードを含む画像の領域の品質を増すために収集された画像を処理することができる(56)。バーコード処理モジュール36は、例えば、バーコードの残りを含む画像の領域のみのような画像を切り取ることができる。あるいは、または加えて、バーコード処理モジュール36は、その次のバーコードデコーダモジュールによる使用のためのきれいで一様なバーコードを生成するためにひずみを取り除くために収集された画像を更に処理することができる。バーコード処理モジュール36は、ワーピング、スキュー、見方、証明または回転に関係のあるひずみを含む、様々なひずみの問題のどれでもに対して補正するためにひずみ補正技術を実行することができる。
【0068】
バーコードを処理し、収集した後、バーコードスキャナーモジュール18は、ペイロードを得るために復号するためにバーコードデコーダモジュールにバーコードを与えることができる(58)。バーコードデコーダモジュールは、ペイロードを得るためにバーコードを復号する(59)。この処理が画像記憶モジュール16にバーコードを正式に記憶することなく生じることができるということは注釈されるべきである。すなわち、上の処理は、リアルタイムにまたはほとんどリアルタイムに生じることができ、そのバーコードは、画像記憶モジュール16にいつも記憶されることなくバーコードデコーダモジュールに与えられることができる。それによって、画像記憶モジュール内で空間を節約することができる。しかしながら、いくつかの実例において、バーコードは、バーコードデコーダモジュールにバーコードを与えることより前に記憶されることができる。
【0069】
図5は、この開示の中に記述される技術に従ってバーコード検出を実行する、図3の画像収集装置10のような、画像収集装置の動作の例を示すフロー図である。最初に、バーコード検出モジュール34は、その画像のグレースケールバージョンを得ることができる(60)。その収集された画像情報がY−Cb−Crドメインの中にある場合、例えば、バーコード検出モジュール34は、Y−チャネル値を得ることができる。画像情報が別のカラードメイン、例えば、R−G−Bドメインの中にある実例において、バーコード検出モジュール34は、その画像をグレースケールに変換することができる。
【0070】
バーコード検出モジュール34は、その画像内で識別されたエッジを除いて取り除かれた全ての細部とともにその画像の表現であるエッジマップを生成する(62)。上で詳細に記述されたように、バーコード検出モジュール34は、ピクセル毎に画像にエッジ検出の核を適用することによってエッジマップを生成することができる。1つの例において、エッジマップは、エッジがホワイトで、画像の残りがブラックである、2値の画像、すなわち、ブラックおよびホワイトの画像であることができる。
【0071】
バーコード検出モジュール34はまた、低くない強度領域が取り除かれた画像の表現である低い強度マップを生成する(64)。バーコード検出モジュール34は、ピクセル強度値の各々を強度しきい値と比較することによって画像の低い強度領域を識別することができ、強度しきい値以上である全てのピクセル値を取り除くことができる。1つの例において、低い強度マップは、低い強度領域がホワイトで、画像の残りがブラックである2値の画像であることができる。バーコード検出モジュール34は、並行して低い強度領域およびエッジを識別するためのデジタル画像を処理することができる。あるいは、その演算は、連続して実行されることができる。
【0072】
図5の例において、バーコード検出モジュール34は、エッジマップ上で拡張を実行する(66)。バーコード検出モジュール34はまた、低い強度マップ上で拡張を実行する(68)。上述されるように、拡張は、分割されたエリアおよび孔を一般にふさぎ、拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続する。拡張は、大きさにおいて減少するダーク領域および大きさいにおいて増大する画像のブライト領域に帰着する。
【0073】
バーコード検出モジュール34は、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせる(70)。バーコード検出モジュール34は、例えば、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせるために“論理積(AND)”演算を実行する。言い換えると、その組み合わされた画像は、エッジおよび低い強度領域が空間的に共通に即時である画像の部分を表現する。バーコード検出モジュール34は、組み合わされた画像上で拡張を実行し、組み合わされた、拡張された画像の中の全ての孔をフラッドフィルする(72)。
【0074】
バーコード検出モジュール34は、バーコードであるための候補である位置を識別するためにフラッドフィルすることおよび拡張の後に組み合わされた画像を分析する(74)。バーコード検出モジュール34は、その位置がバーコードであるための候補であるかどうかを決定するために1つ以上のバーコード基準と組み合わされた画像の位置の各々を比較することができる。バーコード検出モジュール34は、例えば、バーコードであるための候補である位置を識別するために組み合わされた画像の中の位置の特徴の組み合わせ、または他の類似した特徴、位置の充てん要因、位置の形状、位置の大きさを分析することができる。
【0075】
バーコード検出モジュール34は、候補位置が実際にバーコードであるかどうかを確認することができる(76)。例えば、バーコード検出モジュール34は、2D QRバーコードの場合における位置の3つの角の中の交互のブラックおよびホワイトの正方形の入れ子にされたパターンまたは2Dデータマトリックスバーコードの場合における交互のブラックおよびホワイトの正方形の2つの垂直の線のような、固有のバーコードファインダーパターンのための候補位置として識別された原型の画像の位置を分析することができる。他の観点において、バーコード検出モジュール34は、生成された低い強度マップ、生成されたエッジマップまたはデジタル画像のグレースケールバージョンのような原型の画像とは違った画像を分析することができる。バーコード検出モジュール34は、バーコードとして確認された位置を分類する(78)。言い換えると、バーコード検出モジュール34は、候補位置が固有のバーコード機能を含む場合にバーコードを検出する。
【0076】
図6A−6Dは、この開示の中に記述されるバーコード操作技術に従って画像を表示する例示的なビューファインダー80の図である。ビューファインダー80は、図2のビューファインダー26と実質上類似することができる。図6Aに示されるように、ビューファインダー80は、一般に興味のシーンのリアルタイムの画像を表示することができる。興味のシーンは、フォアグラウンドまたはバックグラウンドの中のどちらか一方の多数の対象を含むことができるが、図の容易さのために空白のシーンとして示されている。画像82は、バーコード86が付けられる、または少なくとも付けられると思えるアイテムを含む。アイテム84は、ボックスまたは他の製品パッケージ、缶、雑誌または他の製品、道路標識、またはアイテムの任意の他のタイプのような、多数のアイテムのどれでも含むことができる。ビューファインダー80は、図3の画像収集装置10のような、画像収集装置が動作しているモードを示すモードインジケータ88を画像82の上に置くことができる。まもなく、モードインジケータ88は、画像収集装置10が“デフォルトモード”の中で動作しているということを示す。デフォルト画像収集モードの中で動作するとして図6A−6Dの中に記述され、示されているが、この開示のバーコード走査技術は、ハイモーションモード(また、アクションモードとして言及される)、ローモーション(また、風景(セニックまたはランドスケープ)モードとして言及される)人間主体またはフェースモード、ダークモード、ブライトモードまたはバーコードの画像を収集することに対して明確に設定されていない任意の他のモードのような、任意のノンバーコード画像収集モードの中のバーコードを検出するために用いられることができる。加えて、この開示の技術は、その上バーコードの画像を収集するために明確に設計されたバーコード画像収集モードの中のバーコードを検出するために用いられることができる。
【0077】
デフォルトモードの中で動作しているとしても、バーコードスキャナーモジュール18は、この開示の中に記述されるバーコード走査技術を実行する。例えば、バーコード検出モジュール34は、例えば図5に関連して、上述される方法において画像82内でバーコード86を検出する。図6Bは、バーコードスキャナーモジュール18がバーコード86の位置および検出を反映するためにビューファインダー80を更新した後のビューファインダー80を示す。特に、ビューファインダー80は、バーコードシグナリングマーク89A−89D(“マーク89”)を現在含む。マーク89は、画像82内でバーコード86の位置を表示する。マーク89はバーコード86の各々の角を囲んでいるとして示されるが、マーク89は、バーコード86の位置を合図することが可能な任意の可視のインジケータ、例えば、矢印、ボックスまたは他の形状、またはインジケータの他のタイプを備えることができる。バーコード検出モジュール34がビューファインダー80内でのバーコード86の現在の外見にかかわらずバーコードを探し出すことができるということは、注釈されるべきである。これは、減少させられた品質、例えばバーコード86のわずかにスキューされた性質および画素化されたグレースケール、のバーコード86を示すことによって図6A−6Cの中に反映される。
【0078】
画像82内でバーコード86を探し出した後、バーコードスキャナーモジュール18は、いくつかの実例において、バーコード86を更に処理し続ける前にユーザに促すことができる。図6Cは、画像82の上に置かれたユーザプロンプト90とともにビューファインダー80を示す。ユーザプロンプト90は、単に例示的なユーザプロンプトであり、この開示の中に記述された技術は、全く別のユーザプロンプトを含むことができるまたはユーザプロンプトを含む必要がない。いくつかの観点において、ユーザプロンプトは、ユーザによるユーザの好みとして設定されることができる。ユーザがバーコードを処理し続けることを望む場合にユーザは“OK”をラベルされたボタンを押すべきであり、そうでない場合には“Exit”をラベルされたボタンを押すべきであるということを表示することによって、ユーザプロンプト90は、“撮影するためにExitを押す”および“バーコードを処理するためにOKを押す”ことをユーザに促す。“OK”および“Exit”ボタンの両方とも、再び単に例示的であり、この開示の中に記述される技術は、この限られたコンテキストに制限されるべきではない。そのボタンは、ソフトキー、ハードキータッチスクリーンボタンまたはそれと同様なものを含むことができる。ユーザが例示的な“OK”ボタンを押すと仮定すると、図6Dは、バーコード86の結果として生じる画像82を表示するビューファインダー80を示す。多数のバーコードが興味のシーン内で含まれる実例において、画像収集装置10は、ユーザが走査に興味をもっている多数のバーコードのどれかを選択することビューファインダー80を介してユーザに促すことができる。
【0079】
図6Dの中に示されるように、画像82は、ひずみ、例えば、前の図6A−6Cの画素化されたおよびスキューされたバーコード86と対応づけられるコントラストおよびスキューの問題を補正するために処理され、切り取られている画像を表現する、きれいなでひずませられたバーコードを含む。図6Dのバーコード86は、ブラックおよびホワイトカラーの間に高いコントラストを有し、完全ではないがほとんど正方形である。このように、図6Dのバーコード86は、バーコードデコーダモジュールがバーコード86に対して符号化されたペイロードを容易に抽出することができるように一様なバーコードを与える。ビューファインダー80内で与えられているとして記述されたが、図6Dの一様なバーコード86は、ビューファインダー80内で与えられることができず、その代わりとして上で論じられたバーコードデコーダに直ちに送られることができる。
【0080】
図7A−7Gは、この開示の中に記述されるバーコード検出処理の様々な段階の間のバーコードの画像の図の例である。図7Aは、例えば画像プレビューの間に、画像センサ12によって最初に取得されるときのグレースケール画像の図の例を示す。上で詳細に記述されるように、バーコード検出モジュール34は、画像内でエッジを識別するために図7Aに示されるグレースケール画像を処理する。図7Bは、原型のグレースケース画像内で識別されるエッジのエッジマップの図の例を示す。エッジマップは、識別されるエッジを除いて取り除かれた全ての細部とともに原型の画像を表現する。図7Bに示されるエッジマップの例において、画像内で検出されたエッジはホワイトであるのに対し、画像の残りはブラックである。しかしながら、他の場合において、画像内で検出されたエッジはブラックであり、画像の残りはホワイトであることができる。
【0081】
バーコード検出モジュール34は、原型のグレースケール画像内で低い強度領域を識別するために図7Aに示されるグレースケール画像を更に処理する。図7Cは、グレースケール画像の識別される低い強度領域の低い強度マップの図の例を示す。その低い強度マップは、その低くない強度領域が取り除かれた原型画像を表現することができる。図7Cに示される低い強度マップの例において、低い強度領域はホワイトとして示され、他の領域はブラックとして示される。しかしながら、他の場合において、画像内で低い強度領域はブラックであり、画像の残りはホワイトである。
【0082】
図7Dおよび7Eは、バーコード検出モジュール34が拡張を実行した後のそれぞれ低い強度マップおよびエッジマップの図の例である。図7Fは、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせ、その組み合わされた画像の拡張を実行し、その拡張された、組み合わされた画像をフラッドフィルした後に、バーコード検出モジュール34によって生成された画像の図の例である。図7Fの図の例に示されるように、いくつかの位置は、バーコードを含む、処理の後に画像内でまだ残存する。興味の典型的なシーンは、組み合わされた画像の中に残存する多数の他の位置を含むことができる。例えば、他のバックグラウンドおよびフォアグラウンドの対象に伴う興味の典型的なシーンの組み合わされた画像は、テキストを伴う位置、興味のシーンの中の他のバーコードでない対象のエッジを含む位置またはそれと同様なもののような、残存する位置を含むことができる。
【0083】
バーコード検出モジュール34は、潜在的にバーコードである位置を識別するために残存する位置を分析する。バーコード検出モジュール34は、位置がバーコードであるための候補であるかどうかを決定するために、1つ以上のバーコード基準、例えば、大きさ、形状、充てん要因、またはそれと同様なものと画像の中の位置の各々を比較することができる。図7Gは、バーコードモジュール34が対象位置を選択するために位置を分析した後の画像の図の例を示す。図7Gに示される画像の中に残存する対象位置は、2つの正方形に形づくられた位置であり、それは図7Aの原型のグレースケール画像の中の実際上のバーコードに対応する。
【0084】
ここで記述された技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実行されることができる。構成要素またはモジュールとして記述された全ての機能は、相互運用可能な論理装置でなく分離したとして別々にまたは統合した論理装置において共に実行されることができる。ソフトウェアにおいて実行される場合、その技術は、実行されるとき上述された方法の1つ以上を実行する命令を備えるコンピュータ読み取り可能媒体によって少なくとも一部分を実現されることができる。コンピュータ読み取り可能媒体は、コンピュータプログラム製品の部分を形成することができ、それはパッケージ材料を含むことができる。コンピュータ読み取り可能媒体は、SDRAM(synchronous dynamic random access memory)、ROM(read-only memory)、NVRAM(non-volatile random access memory)、EEPROM(electrically erasable programmable read-only memory)フラッシュメモリ(FLASH memory)、磁気または光データ記憶媒体、およびそれと同様なもののようなRAM(random access memory)を備えることができる。その技術は、加えて、またはあるいは、コンピュータによって実行される、読み込まれるおよび/またはアクセスされることができ、データ構造または命令の方の中のコードを通信するまたは運ぶコンピュータ読み取り可能通信媒体によって少なくとも一部分を実現されることができる。
【0085】
そのコードは、1つ以上のDPS、一般の目的のマイクロプロセッサ、ASIC、フィールドプログラマブレロジックアレイFPGA、または他の等価の統合したまたは分離した論理回路のような、1つ以上のプロセッサによって実行されることができる。よって、ここで用いられるように、用語“プロセッサ”は、ここで記述された技術の具体化に適した任意の他の構造または前述の構造のどれにも言及することができる。加えて、いくつかの観点において、ここで記述された機能は、組み合わせられたビデオコーデックに組み込まれる、または復号するおよび符号化するために構成されるハードウェアモジュールまたは専用のソフトウェアモジュール内で提供されることができる。このゆえに、本開示はまた、この開示の中に記述された1つ以上の技術を実行するための電気回路構成を含む様々な統合された回路装置のどれでも熟慮する。このような電気回路構成は、単一の統合された回路チップの中にまたは複数の、相互運用可能な統合された回路チップの中に提供されることができる。
【0086】
様々な観点が記述されている。これらおよび他の観点は、以下の特許請求の範囲の範囲内にある。
【技術分野】
【0001】
本開示は、画像処理に関し、画像内のバーコードを検出するための技術により一層特に関する。
【同時継続中の特許出願に対する言及】
【0002】
本願は、本願の譲受人に譲渡され、参照によって本願に明確に組み込まれ、共に出願され、代理人整理番号071438を有する、Chinchuan Andrew Chiuによる“統合されたバーコード走査を伴う画像収集装置”と題された以下の同時継続中の米国特許出願と関係している。
【背景技術】
【0003】
バーコードは、1つ以上のパターンの型の中の情報の機械読み取り可能な表現である。従来技術による1次元のバーコードは、様々な幅およびスペーシングの連続する並列の隣接のバーの型の中に情報を表現する。しかしながら、バーコードは、ドット、同中心の円およびそれと同様なもののパターンのような、多数の他のパターンの中の情報を表現するために拡張されている。これらの他のパターンは、1次元(1D)または2次元(2D)のパターンの中に配列された形状を含むことができる。
【0004】
バーコードは、アイテムの値をつけ、目録を作成し、追跡し、識別するために用いられることができる。一般に、バーコードは、データベースまたは他のトラッキングシステムを用いるアイテムの型に識別番号を対応付けるために用いられる。しかしながら、バーコードは、最近、それが付けられているまたは他の関係のあるアイテムに対するそのアイテムと対応付けられた広く様々な情報を符号化するために用いられ始めている。バーコードは、このように、伝来の用途とは関係のない目的のために情報を通信する方法として現れている。その結果、小売商人単独でよりむしろ、消費者は、バーコードが情報を運ぶことができることによる効率を取り入れ始めている。
【発明の概要】
【0005】
この開示は、画像内でバーコードを検出するための技術を記述する。バーコードは、それらを検出に特に影響されやすくする特別の区別する特徴を有する。バーコードは、ダーク(例えば、ブラック)およびライト(例えば、ホワイト)バー、円、ドットまたは他の形状のパターンとして形成されることができる。バーコードパターンは、パターンのバー、円、ドットまたは他の形状のスペーシングによって生成される多数のエッジを含む。バーコードパターンはまた、パターンのバー、円、ドットまたは他の形状のブラックカラー(または他のダークカラー)のため、低い光強度の多数の領域を含む。バーコードは多数のエッジおよび低い強度ピクセル値を含むだけでなく、エッジおよび低い強度領域は、共通に即時である、すなわち、同じ時間に存在する。
【0006】
バーコード検出モジュールは、画像内で強度における高いコントラスト変化を表現する1つ以上のエッジを識別するためにデジタル画像を処理する。バーコード検出モジュールはまた、低い光強度に伴うデジタル画像の領域を識別するためにデジタル画像を処理する。バーコード検出モジュールは、低い光強度に伴う識別された領域の高い集中および識別されたエッジの高い集中の両方を示すデジタル画像内の位置をバーコードであるための対象としてそのとき識別する。いくつかの観点において、バーコード検出モジュールは、1つ以上のモルフォロジー演算を用いてこれらの位置を識別することができる。バーコード検出モジュールは、特別のバーコード記号論のバーコードファインダーパターンのような、対象位置が固有のバーコード機能を有するかどうかを確認することによって対象位置が実際にバーコードであるかどうかをそのとき決定することができる。
【0007】
1つの観点において、方法は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別することと、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別することと、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出することとを具備する。
【0008】
別の観点において、装置は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別し、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別し、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するバーコード検出モジュールを含むプロセッサを具備する。
【0009】
別の観点において、コンピュータ読み取り可能媒体は、プロセッサに強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別させ、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別させ、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出させるための命令を具備する。
【0010】
別の観点において、装置は、強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別するための手段と、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別するための手段と、前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するための手段とを具備する。
【0011】
この開示の中に記述される技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実行されることができる。ソフトウェアにおいて実行される場合、ソフトウェアは、プロセッサの中で実行されることができる。そして、それは、マイクロプロセッサ、ASIC(application specific integrated circuit)、FPGA(field programmable gate array)、またはDSP(digital signal processor)、または他の等価の統合したまたは分離した論理電気回路構成のような、1つ以上のプロセッサに言及することができる。その技術を実行するための命令を備えるソフトウェアは、コンピュータ読み取り可能媒体に最初に記憶され、プロセッサによってロードされ、実行されることができる。よって、この開示はまた、プロセッサにこの開示の中に記述されるように様々な技術のどれでも実行させるための命令を備えるコンピュータ読み取り可能媒体を熟慮する。いくつかの場合において、コンピュータ読み取り可能媒体は、コンピュータプログラム製品の部分を形成することができる。コンピュータプログラム製品は、製造業者に対して販売されることおよび/または装置の中に用いられることができる。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含むことができ、いくつかの場合において、パッケージ材料をまた含むことができる。
【0012】
1つ以上の観点の細部は、以下の記述および伴う図の中で明らかにされている。技術の他の機能、対象および利点は、その記述および図から、および特許請求の範囲から明白であるであろう。
【図面の簡単な説明】
【0013】
【図1】図1は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置の一例のブロック図である。
【図2】図2は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置を含む無線通信装置の一例を示すブロック図である。
【図3】図3は、更に詳細に図1および2の画像収集装置を示すブロック図である。
【図4】図4は、この開示の中に記述されたバーコード走査技術を実行する画像収集装置の動作の例を示すフロー図である。
【図5】図5は、興味のシーン内でバーコードを検出するバーコード検出モジュールの動作の例を示すフロー図である。
【図6A】図6Aは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6B】図6Bは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6C】図6Cは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図6D】図6Dは、この開示の中に記述されたバーコード走査技術に従って画像を表示するときの例示的なビューファインダーの図である。
【図7A】図7Aは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7B】図7Bは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7C】図7Cは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7D】図7Dは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7E】図7Eは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7F】図7Fは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【図7G】図7Gは、この開示の中に記述されたバーコード検出技術の様々な段階の間の画像の図である。
【発明を実施するための形態】
【0014】
図1は、この開示の中に記述されたバーコード検出技術を実行する画像収集装置10の一例のブロック図である。画像収集装置10は、デジタルスチール画像カメラのようなデジタルカメラ、デジタルビデオカメラ、または両方の組み合わせであることができる。加えて、画像収集装置10は、独立のカメラのような独立の装置であることができ、または無線通信装置のような別の装置の中に統合されることができる。一例として、画像収集装置10は、いわゆるカメラ電話またはビデオ電話を形成するために携帯電話の中に統合されることができる。この開示の中に記述された技術は、一般的に収集されたデジタルビデオに適用できるが、デジタルスチール画像に対するこのような技術のアプリケーションは、図の目的のために記述されるであろう。
【0015】
図1に示すように、画像収集装置10は、画像センサ12、画像プロセッサ14および画像記憶モジュール16を含む。バーコード検出技術がビデオシーケンスの1つ以上の画像フレーム上で実行されることができる場合において、画像センサ12は、スチール画像、またはできる限りいっぱいのモーションビデオシーケンスを収集する。画像センサ12は、例えば行および列の中に配列された、個々の画像センサ要素の2次元の配列を含むことができる。いくつかの観点において、画像センサ12の画像センサ要素の各々は、たった1つのピクセルと対応付けられることができる。言い換えれば、画像センサ要素とピクセルの間で1対1の対応が存在することができる。あるいは、各々の画像センサ要素と対応付けられた1つ以上のピクセル、または各々のピクセルと対応付けられた1つ以上の画像センサ要素が存在することができる。画像センサ12は、例えば、相補形金属酸化膜半導体(CMOS)センサ、電化結合素子(CCD)センサまたはそれと同様なもののような固体センサの配列を備えることができる。更に、画像センサ12は、画像入手の間の画像情報を記憶する1つ以上の画像バッファを保守することができる。
【0016】
そのデジタル画像を収集するために、画像センサ12は、そのデジタル画像を収集するためにその画像シーンにその画像センサ要素をさらす。画像センサ12内の画像センサ要素は、例えば、特別のピクセル位置でのシーンのライトの強さを表現する強度値を収集する。いくつかの場合において、センサ12の画像センサ要素の各々は、その要素をカバーするカラーフィルタのため、1つのカラー、またはカラーバンドに対してのみ感知可能である。例えば、画像センサ12は、例えばレッド、グリーン、およびブルー(RGB)フィルタの配列を備えることができる。しかしながら、画像センサ12は、シアン、マゼンタ、イエロー、およびブラック(CMYK)カラーフィルタのような他のカラーフィルタを利用することができる。このように、画像センサ12の画像センサ要素の各々は、1つのカラーのみのための強度値を収集することができる。このように、画像情報は、画像センサ12のセンサ要素によって収集されたピクセル強度および/またはカラー値を含むことができる。
【0017】
画像収集装置10は、画像収集装置内で一般に実行される任意の他のモードと同じように、ブライトモード、ダークモード、人間主体またはフェースモード(human subject or face mode)、ローモーションモード(ある時には、“風景”モードとして言及される)、ハイモーションモード(時には、“アクション”モードとして言及される)、デフォルトまたはノーマルモード(時には、“オート”モードとして言及される)のような、多数の画像収集モードの中で動作することができる。いくつかの実例において、これらの様々な画像収集モードの各々は、画像プロセッサ14のセンサ構成モジュール19が画像センサ12によって収集された画像の品質に影響を及ぼす様々な画像収集プロパティを構成するために用いる値のセットと対応付けられている。アクションモードの画像収集プロパティは、例えば、クイックモーションによって特徴付けられたシーンを効果的に収集するために相対的に短い露出時間を含むことができるのに対し、風景モードと対応づけられた画像収集プロパティは、相対的に長い露出時間を含むことができる。他の実例において、そのデフォルト(また、ノーマルまたはオートとして知られる)モードのような、これらのモードの1つ以上は、画像センサ12から受信されたライトの強度の測定のような、センサ構成モジュール19にその画像シーン内である視覚の状況に基づく様々な画像収集プロパティを構成させることができる。例えば、センサ構成モジュール19は、画像プレビューの間に受信されたライトの強度に基づくセンサ利得、焦点のポイントまたは露出時間を構成することができる。更に他の実例において、その様々な画像収集モードは、画像プロセッサ14に画像センサ12によって収集された結果の画像を高めるために1つ以上の画像処理アルゴリズムを実行させることができる。更に別の実例において、画像収集装置10は、上述された技術の1つ以上を最も高い品質の画像を収集するための試みの中に組み込む1つ以上のモードを支援することができる。
【0018】
画像プロセッサ14は、例えば画像センサ12のバッファから、デジタル画像(またはフレーム)のための画像情報を受信し、この開示の中に記述されたバーコード検出技術を実行する。特に、画像プロセッサ14のバーコードスキャナーモジュール18は、興味のシーンのデジタル画像が1つ以上のバーコードを含むかどうかを決定する。バーコードは、1つ以上のパターンの方の中の情報の機械読み取り可能な表現である。従来技術による1次元のバーコードは、様々な幅、スペーシングおよび長さの連続な並列の隣接のバーの型の中に情報を表現する。しかしながら、バーコードは、ドット、同中心の円およびそれと同様なもののパターンのような、多数の他のパターンの中の情報を表現するために拡張されている。これらの他のパターンは、1次元(1D)または2次元(2D)のパターンの中に配列された形状を含む。1Dおよび2Dのバーコードのいくつかの例は、統一商品コード(UPCs)、コード39バーコード、コード128バーコード、PDF417バーコード、EZコードバーコード、データマトリックスバーコード、QRコードバーコードまたは記号論の任意の他のタイプを利用するバーコードを含む。
【0019】
いくつかの実例において、ノンバーコード画像収集モードの中で動作している間、バーコードスキャナーモジュール18は、そのバーコードを検出することができる。言い換えれば、上述された種々の画像収集モード、例えば、デフォルト画像収集モード、フェースモード、ダークモード、ライトモードまたはバーコードの画像を収集するための明確に設計されていない任意の他の画像収集モードの何れかの中で動作している間、バーコードスキャンモジュール18は、そのバーコードを検出することができる。他の実例において、バーコードの画像を収集するために明確に設計されたバーコード画像収集モードの中で動作している間、バーコードスキャナーモジュール18は、そのバーコードを検出することができる。
【0020】
バーコードスキャナーモジュール18は、この開示の中に記述された技術に従って画像内でバーコードを検出する。バーコードは、それらを検出に特に影響されやすくする特別の区別する特徴を有する。上述したように、バーコードは、バー、円、ドットまたは他の形状のパターンとして形成される。そのバーコードパターンは、そのパターンのバー、円、ドットまたは他の形状のスペーシングによって生成された多数のエッジを含む。そのバーコードパターンはまた、そのパターンのバー、円、ドットまたは他の形状のブラックカラー(または他のダークカラー)のため、多数の低い光強度領域を含む。バーコードは、多数のエッジおよび低い強度ピクセルを含むだけでなく、そのエッジおよび低い強度領域は、共通に即時である、すなわち、同じ時間に存在する。以下により詳細に記述されるように、バーコードスキャナーモジュール18は、バーコードであるための候補位置として、低い強度値の高い集中およびエッジの高い集中を共通に即時に示すデジタル画像内の位置を識別することができる。バーコードスキャナーモジュール18はそのとき、特別のバーコード記号論のバーコードファインダーパターンのような、候補位置が固有のバーコード機能を有するかどうかを確認することによって候補位置が実際にバーコードであるかどうかを決定する。
【0021】
興味のシーン内でバーコードを検出する上で、センサ構成モジュール19は、画像センサ12と対応付けられた1つ以上の画像収集プロパティを構成することができる。センサ構成モジュール19は、例えば、画像センサ12と対応付けられた焦点制御および露出時間の1つ以上を構成することができる。画像センサ12は、構成された画像収集プロパティに従ってバーコードを含む興味のシーンの画像を収集する。この方法において、画像収集装置10は、画像収集装置10のデフォルトの動作内でバーコード走査機能を統合することができる。
【0022】
バーコードスキャナーモジュール18は、その画像のバーコード部分の品質を更に高めるためにバーコードを含む収集された画像の少なくとも領域またはその収集された画像の付加的な処理を実行することができる。バーコードスキャナーモジュール18は、例えば、そのバーコードのコントラストを高めるためにバーコードを含む画像の領域またはその画像を処理し、そのバーコードの画像を鮮鋭化し、その画像からノイズを取り除き、その画像の回転を補正し、またはそのバーコード画像の解析を実行することができる。いくつかの実例において、これらの付加的な処理技術は、興味のシーン内でバーコードの検出に基づいて実行されることができる。
【0023】
画像プロセッサ14は、1つ以上のマイクロプロセッサ、DSPs(digital signal processors)、ASICs(application specific integrated circuits)、FPGAs(field programmable gate arrays)、または任意の他の等価の分離したまたは統合した論理電気回路構成、またはそれらの組み合わせによって実現される。いくつかの態様において、画像プロセッサ14は、MPEG(Motion Pictures Expert Group)−2、MPEG−4、ITU(International Telecommunication Union) H.263、ITU H.264、JPEG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format)、TIFF(Tagged Image File Format)またはそれと同様なもののような、特別の符号化する技術またはフォーマットに従ってその画像情報を符号化するエンコーダ−デコーダ(CODEC)の部分を形成することができる。画像プロセッサ14は、画像切り取り、圧縮、改良およびそれと同様なもののような、画像情報に対して付加的な処理を実行することができる。
【0024】
画像プロセッサ14は、画像記憶モジュール16の中に、バーコードが含まれている収集された画像の少なくとも領域またはその収集された画像を記憶することができる。あるいは、画像プロセッサ14は、その画像に対して付加的な処理を実行し、画像記憶モジュール16の中に、処理されたまたは符号化されたフォーマットの中にバーコードを含む領域または全体の画像のどちらか一方を記憶することができる。その画像情報がオーディオ情報によって伴われる場合、そのオーディオ信号はまた、その画像情報を含む1つ以上のフレームを備えるビデオ情報と併せてまたは独立して、画像記憶モジュール16の中に記憶されることができる。画像記憶モジュール16は、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、またはフラッシュメモリ(FLASH memory)のような、または磁気データ記憶装置または光データ記憶装置のような、任意の揮発性または不揮発性メモリまたは記憶装置を備えることができる。
【0025】
多数の他の要素はまた、画像収集装置10の中に含まれるが、図の容易さおよび単純のために図1の中には明確に示されていない。例えば、画像収集装置10は、レンズ、シャッター、フラッシュ装置およびビューファインダーのような、イメージを収集するための付加的な構成要素を含むことができる。この開示の中に記述された技術が様々の他のアーキテクチャとともに実行されることができるように、図1の中に示されるアーキテクチャは、単に例示的であるにすぎない。その上、図1の中に示される機能は、ハードウェアおよび/またはソフトウェア構成要素の任意の適当な組み合わせによって実現されることができる。
【0026】
図2は、この開示の中に記述されたバーコード検出技術を実行する画像収集装置10を含む無線通信装置20の一例を示すブロック図である。言い換えると、図2は、無線通信装置20内で統合される画像収集装置10を示す。画像収集装置10の動作は、図1については上述されており、それゆえに、ここでは詳細に記述されないであろう。無線通信装置20は、画像収集能力を有するセルラー電話(例えば、いわゆるカメラ電話またはビデオ電話)、ビデオレコーダー、ウェブカム、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータまたは画像収集および無線通信能力を有する任意の他の装置のような、無線通信装置ハンドセットを備えることができる。無線通信装置のコンテキストの中に示されているが、この開示の技術はまた、有線通信装置に適用できる。
【0027】
図2の例において、無線通信装置20は、画像収集装置10、符号化モジュール22、送信機24、ビューファインダー26およびバーコードデコーダモジュール28を含む。符号化モジュール22は、記憶および/または送信のための特別の画像圧縮フォーマットにその画像を圧縮するために収集された画像情報を符号化することができる。符号化モジュール22は、JPEG、TIFF、GIFまたは他の画像圧縮フォーマットを含む、多数の画像圧縮フォーマットのどれでも用いて画像を圧縮することができる。ビデオの場合において、符号化モジュール22は、MPEG、MPEG AVC(Advanced Video Coding) パート10、ITU H.264およびそれと同様なもののような、ビデオ圧縮フォーマットのいくつでも用いてビデオを圧縮することができる。
【0028】
無線通信装置10は、送信機24を介して別の装置に符号化された画像を送信することができる。送信機24は、符号分割多元接続(CDMA)ネットワーク、広帯域符号分割多元接続(W−CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、およびモバイルコミュニケーションのためのグローバルシステム(GSM:global system for mobile communication)ネットワーク、または他の類似したネットワークのような、セルラーネットワークにインタフェースを提供する。送信機24は、そのセルラーネットワークの代わりとしてまたは加えて、任意の他の有線または無線ネットワーク、または適切な米国電気電子学会(IEEE)802.11スタンダードの何れにも定義されるように無線ネットワークにインタフェースを提供することができる。
【0029】
いくつかの実例において、無線通信装置10は、受信された符号化されたデータに対する受信機およびそのデータを復号するためのデコーダを含むことができる。そういうものとして、無線通信装置は、受信回路および送信機24の送信回路を含む別個のトランシーバまたは受信機を含むことができる。そのデコーダは、別個の復号モジュールであることができる、またはCODECに符号化モジュール24とともに統合されることができる。
【0030】
無線通信装置20は、ビューファインダー26上で画像収集装置10によって収集されるための興味のシーンのリアルタイム画像(すなわち、画像プレビュー)または画像収集装置10によって収集された画像のどちらか一方を表示することができる。ビューファインダー26は、電子ビューファインダーを備えることができる。代表的な電子ビューファインダーは、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマ表示板(PDP)、発光ダイオード(LED)ディスプレイ(例えば、アクティブマトリックスLEDディスプレイ)、または収集された画像またはリアルタイム画像を表示することが可能なディスプレイの任意の他のタイプのようなディスプレイの1つ以上のタイプを一般に含む。ビューファインダー26はまた、上述された電子ビューファインダーの代わりにより多くの従来技術による光ビューファインダーを備えることができる。無線通信装置20の場合において、ビューファインダー26は、一般の目的の電子ディスプレイを備える。そして、そのディスプレイはまた、無線通信装置20が実行することができる他の機能に関係する情報を表示する。例えば、無線通信装置20がいわゆるカメラ電話を表現する場合、ビューファインダー26はまた、セルラー電話の呼出しの受信および送信に関係する情報を表示する。
【0031】
図2の無線通信装置20はまた、バーコードデコーダモジュール28を含む。バーコードデコーダモジュール28は、いくつかの実例において、無線通信装置20内で実行するソフトウェアアプリケーション、または、他の実例において、専用のハードウェア構成要素、または両方の組み合わせを備えることができる。どちらか一方の実例において、バーコードデコーダモジュール28は、そのバーコード画像によって与えられる単一または複数の次元のパターンを復号することによって与えられたバーコード画像内で符号化された情報(ある時ペイロードとして言及される)を一般に抽出する。そのバーコードを復号した後、バーコードデコーダモジュール28は、更に他のモジュールにそのペイロードを利用することの目的のために実行させることができ、それ自身そのペイロードを利用することができる。
【0032】
特に、バーコードデコーダモジュール28は、ペイロードを抽出するために画像収集装置10によって受信されたバーコード画像内に含まれるパターンを復号することができる。バーコードデコーダモジュール28は、例えば、そのバーコードを復号するために記号ライブラリにアクセスすることができる。その記号ライブラリは、例えば、そのバーコードを復号することにおいて有益な他の情報と同じように、ペイロードの特徴および/または単一の数字の符号化することを含むことができる。いくつかの実例において、統一商品コード(UPC)の場合のように、そのペイロードは、それが付け加えられるアイテムを識別することができる。加えて、そのペイロードは、そのバーコードが接続されるアイテムと対応付けられた付加的な情報を含むことができる。例えば、そのペイロードは、そのアイテム自身の上には表示されない付加的なアイテムの情報、関連したアイテムについての情報そのアイテムまたは関連したアイテムのための販売を促進するクーポン、そのアイテムまたは関連したアイテムのための適切なインターネットリンク、または任意の他の対応付けられた情報を含むことができる。
【0033】
いくつかの実例において、その情報は、そのバーコードのペイロード内に直接に含まれることができる。他の実例において、そのペイロード内に含まれる情報は、例えば、そのペイロードをそのアイテムに関連した付加的な情報と対応付けるデータベースから、適切な情報を検索するために用いられることができる。そのペイロードが適切なインターネットリンクを含む場合において、例えば、そのペイロードは、HTTP(Hypertext Transfer Protocol)アドレスを備えることができる。バーコードデコーダモジュール28は、そのペイロードによって指定されたHTTPアドレスにアクセスするためのウェブ走査検索器を呼び出すことができ、ビューファインダー26上のHTTPアドレスをロードすることができる。この方法において、無線通信装置20のユーザは、インターネットを介して、その収集されたバーコードが結びつけるアイテムと対応付けられる付加的な情報を見ることができる。加えて、そのユーザは、そのアイテム自身と関連していないアプリケーションのための情報を得るためにそのバーコードのペイロードを利用することができる。例えば、そのユーザは、ストリートサイン上に位置付けられるバーコードを走査することができ、その時、そのユーザが行くことを望む位置に対するバーコードを含むアイテム(例えば、ストリートサイン)から方向を得るためにマッピングプログラムにアクセスすることができる。
【0034】
画像収集装置10のみを含んでいるとして記述されたが、符号化モジュール22、送信機24、ビューファインダー26およびバーコードデコーダモジュール28、無線通信装置20は、ユーザとインタフェースで接続するためのユーザインタフェース(例えば、キーパッド)、付加的な演算を実行するための1つ以上のプロセッサ、およびリムーバブルメモリを受け取るための様々なレセプタクルおよびポート、ヘッドホン、電源、および任意の他のこのような周辺装置のような、他のモジュールを含むことができる。無線通信装置20は、モデム、周波数変換器、フィルタおよび増幅器回路のような情報の受信および送信のための他の構成要素を更に含むことができる。
【0035】
図3は、更に詳細に図1および2の画像収集装置10を示すブロック図である。図3の中に示されるように、画像センサ12は、興味のシーンに属する画像情報を記憶することができる画像バッファ30を含むことができる。画像センサ12は、例えば、画像プレビューの間に画像バッファ30の中に画像情報を記憶することができる。より明確には、ユーザが画像を収集するためのボタンを作動させる前だが、ユーザが興味のシーンに画像収集装置10を向けている間、画像センサ12は、画像バッファ30の中に画像情報を記憶することができる。この方法において、画像バッファ30は、画像収集装置10によって収集されるために興味のシーンのリアルタイム画像を記憶しているとして見られることができる。バッファ30は、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、またはフラッシュメモリ(FLASH memory)のような、または磁気データ記憶装置または光データ記憶装置のような、任意の揮発性または不揮発性メモリを備えることができる。1つの画像バッファ30を含んでいるとして示されたが、画像センサ12は、画像バッファを含まない、または複数の画像バッファを含むことができる。
【0036】
画像センサ12はまた、画像センサ12を構成するための1つ以上の画像収集制御プロパティ32を一般に含む。図3の中に示される例において、画像センサ12は、露出タイマ32A、焦点制御32Bおよびセンサ利得32Cを含む。露出タイマ32Aは、画像センサ12が興味のシーンに対して露出されている間の時間を設定するために構成可能なタイマを表現する。一般に、画像プロセッサ14は、画像収集装置と対応付けられた露出テーブルまたは従来技術による露出数式の設定に基づいて露出タイマ32Aを構成する。焦点制御32Bは、自動的に興味のシーン上に焦点を合わせることが可能なこれらの画像収集装置10のために存在する。焦点制御32Bは、最適の焦点値(例えば、最適のコントラストによって決定される鮮明値)を生成するレンズ位置を設定すること、および/または画像センサ12が焦点を合わせるべきである距離を設定することのために構成可能な制御値を表現する。一般に、画像プロセッサ14は、興味のシーンの特別の領域、例えば、興味のシーンの中心上にレンズの焦点を合わせるために焦点制御32Bを構成する。センサ利得32Cは、画像センサ12の画像センサ要素の増幅器利得を決定する構成可能なセンサ利得制御値を表現する。露出時間32Aのような、画像プロセッサ14は、画像収集装置と対応付けられた利得テーブルまたは従来技術による利得数式の設定に基づいてセンサ利得32Cを構成することができる。いくつかの実例において、センサ利得32Cセンサ利得32C、焦点制御32Bおよび露出タイマ32Aの1つ以上の調整は、相互に関連することができる。画像センサ12内に存在するとして図3の中に示されたとは言え、バッファ30および画像収集制御プロパティ32は、バーコードスキャナーモジュール18、画像記憶モジュール16または画像プロセッサを含む画像収集装置10の他のモジュール内のような、画像センサ12の外部に存在することができる。
【0037】
バーコードスキャナーモジュール18は、バーコード検出モジュール34およびバーコード処理モジュール36を含む。ユニットまたはモジュールとしての種々の機能の描写は、バーコードスキャナーモジュール18の種々の機能面を強調することが意図されており、このようなユニットまたはモジュールが別個のハードウェア、ソフトウェアおよび/またはファームウェア構成要素によって実現されなければならないということを必ずしも暗に示していない。それどころか、1つ以上のユニットまたはモジュールと対応付けられた機能は、別個のまたは共通のハードウェア、ソフトウェア構成要素および/またはファームウェア構成要素内で統合されることができる。
【0038】
上述されたように、画像センサ12は、デジタル画像を収集し、バッファ30の中にデジタル画像を記憶する。バーコードスキャナーモジュール18は、バッファ30からデジタル画像を受信し、そのデジタル画像内でバーコードを自動的に検出するためにバーコード検出モジュール34を用いる。上述されたように、バーコード検出モジュール34は、そのデジタル画像内でバーコードを自動的に検出するのに対して、画像プロセッサ14は、バーコードの画像を収集することに対して明確に示されていない任意の他のモード、ブライトモード、ダークモード、人間主体またはフェースモード、ローモーションモード、ハイモーションモードまたはデフォルト画像収集モードのような、ノンバーコード画像収集モードに従って動作する。あるいは、バーコード検出技術は、バーコードの画像を収集するための明確に示されるバーコード画像収集モードにおいて利用されることができる。
【0039】
バーコード検出モジュール34は、検出技術に基礎付けられたモルフォロジー演算を用いてバーコード検出を実行することができる。上述されたように、モルフォロジー演算技術は、バーコードは特別の区別している特徴を有する、すなわち、それらは、空間的に共通に即時である低い強度値の高い集中の領域およびエッジの高い集中の領域を有するという事実に基づく。以下に詳細に記述されるように、バーコード検出モジュール34は、バーコードの候補としてモルフォロジー演算を用いて低い光強度およびエッジを共通に即時に含む領域を識別すること、および候補領域が固有のバーコード機能を有するかどうかを確認することによってバーコードを検出する。
【0040】
バーコード検出モジュール34は、画像バッファ30から収集されたデジタル画像の輝度値を得ることができる。その収集された画像情報がY−Cb−Cr(輝度、ブルークロミナンス、レッドクロミナンス)ドメインである場合、例えば、バーコード検出モジュール34は、バーコード検出における使用のためにY−チャネル値を検索することができる。その画像情報が別のカラードメイン、例えば、RGB(レッド、グリーン、ブルー)ドメインの中にある実例において、バーコード検出モジュール34は、その画像をグレースケールに変換することができる。いくつかの実例において、その基度情報は、バーコード検出において助けるために、例えば、鮮鋭化マスクを用いて、わずかに鮮鋭化されることができる。
【0041】
バーコード検出モジュール34は、そのデジタル画像内でエッジを識別するために画像を処理する。エッジは、輝度強度において高いコントラスト変化を示すデジタル画像の位置である。例えばそのエッジは、低い強度から高い強度へ、すなわち、ライトからダークへ、または高い強度から低い強度へ、すなわち、ダークからライトへ、の変化を定義することができる。バーコードの性質、すなわち、ブラックおよびホワイト(または他のダークおよびライト)のパターンのため、バーコードは、顕著な、容易に検出可能なエッジを生成する。そのデジタル画像内でエッジを識別するために、バーコード検出モジュール34は、輝度値が有意な変更を示す位置を検出するために画像を分析することができる。バーコード検出モジュール34は、従来技術によるエッジ検出技術を用いて画像内でエッジを識別することができる。例えば、バーコード検出モジュール34は、エッジを検出するためにデジタル画像に核マトリックス(例えば、乗算因子または重みのマトリックス)を適用することができる。その核マトリックスは、それが適用される実際の画像より一般に小さい。3つのピクセルによる3つのピクセル(3×3)の核マトリックスは、例の目的のために記述されるであろう。しかしながら、バーコード検出モジュール34は、他の次元の核マトリックスを用いることができる。
【0042】
特に、バーコード検出モジュール34は、3×3の核マトリックスを順番に画像の各々のピクセル上の中心に置き、重みを付けられたピクセル値を生成するために核マトリックスの対応する重みを中心のピクセルの周囲の3×3の領域のピクセル値を掛ける。バーコード検出モジュール34は、中心のピクセルの第1次導関数を得るために重みを付けられたピクセル値を合計する。画像プロセッサは、変化しきい値と中心のピクセルの第1次導関数とを比較し、第1次導関数が変化しきい値以上である場合にはエッジを検出する。第1次導関数が変化しきい値以上である場合、そのピクセルは、エッジ上に位置していると決定される。1つの観点において、バーコード検出モジュール34は、エッジ上に位置していると決定されたピクセルをホワイトまたはブラックと対応付けられた強度値に設定することができ、エッジ上に位置していないと決定されたピクセルを逆の強度値、例えば、ブラックまたはホワイトに設定することができる。このように、エッジ検出の結果は、識別されたエッジを除いて取り除かれた全ての細部とともに原型の画像を表現する2値の画像であるエッジマップであることができる。2値の画像は、エッジがホワイトであり、画像の残りはブラックである、または逆も同様、すなわち、エッジがブラックであり、画像の残りがホワイトである、ブラックおよびホワイトの画像であることができる。バーコード検出モジュール34は、デジタル画像の第1の命令の派生物を用いてエッジを検出しているとして記述されているが、他のエッジ検出技術は、デジタル画像の第2の命令の派生物のような、画像内でエッジを検出するために用いられることができる。
【0043】
バーコード検出モジュール34はまた、低い強度を伴う画像の領域(“低い強度領域”としてここでは言及される)を識別するために画像を処理する。低い強度領域は、画像のダークの部分と対応する。バーコード検出モジュール34は、しきい値化を介して画像の低い強度領域を識別することができる。特に、バーコード検出モジュール34は、強度しきい値とピクセル強度値の各々とを比較することによって画像の低い強度領域を識別することができ、強度しきい値以上である全てのピクセル値を取り除くことができる。このように、低い強度検出の結果は、取り除かれた高い強度領域とともに原型の画像を表現する2値の画像である低い強度マップであることができる。1つの例において、バーコード検出モジュール34は、ホワイトに強度しきい値以下であるピクセル強度値を設定することができ、ブラックに強度しきい値以上であるピクセル強度値を設定することができる。この場合において、画像の低い強度領域は、ホワイトの領域として表現され、画像の低くない強度領域は、ブラックとして表現される。あるいは、低い強度領域は、ホワイトの領域として表現される他の領域およびブラックの領域として表現されることができる。いくつかの実例において、バーコード検出モジュール34は、並行して画像の低い強度領域およびエッジを識別するためのデジタル画像を処理することができる。
【0044】
バーコード検出モジュール34は、エッジの高い集中を示す画像内で位置を識別するためにエッジマップ上に1つ以上のモルフォロジー演算を実行する。同様に、バーコード検出モジュール34は、低い強度値の高い集中を示す画像内で位置を識別するために低い強度マップ上に1つ以上のモルフォロジー演算を実行する。モルフォロジー演算は、同時に(すなわち、並行して)または連続して低い強度マップおよびエッジマップ上に実行されることができる。モルフォロジー演算は、拡張演算、浸食演算、オープニング演算、クロージング演算またはそれと同様なものの1つ以上を含むことができる。1つの例において、バーコード検出モジュール34は、低い強度マップおよびエッジマップ上に拡張を実行することができる。拡張は、分割されたエリアおよび孔を一般にふさぎ、拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続する。
【0045】
2値の画像のために、構造化要素、例えば、3×3の構造化要素は、ピクセルの各々の上の中心に置かれる。構造化要素内でのピクセルの何れもホワイトである場合、構造化要素が中心におかれたピクセル値は、ホワイトに設定される。類似したアプローチは、グレースケール画像のために実行される。グレースケール画像において、例えば、ピクセル値の各々は、構造化要素内でピクセル値の最大のピクセル値と等しいピクセル値を設定することによって構造化要素を用いて再計算されることができる。この方法において、ダーク領域によって囲まれるブライト領域は、大きさにおいて増大し、ブライト領域によって囲まれるダーク領域は、大きさにおいて減少する。画像の中の小さなダークポイントは、囲んでいる強度値に対してそれらが“ふさがれる”ように消滅するであろう。その結果は、強度が速やかに変更するデジタル画像の中の、例えばバーコードが位置付けた領域の中の場所で最も注目されている。
【0046】
バーコード検出モジュール34は、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせる。バーコード検出モジュール34は、例えば、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせるために“論理積(AND)”演算を実行する。その組み合わされた画像は、低い強度領域およびエッジとして識別される画像の部分を表現する。言い換えると、その組み合わされた画像は、エッジおよび低い強度領域が空間的に共通に即時である画像の部分を表現する。
【0047】
バーコード検出モジュール34は、組み合わせられた画像上に1つ以上のモルフォロジー演算を再び実行する。例えば、バーコード検出モジュール34は、分割されたエリアおよび孔をふさぐために組み合わされた画像上に別の拡張演算を実行することができ、その拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続することができる。バーコード検出モジュール34はまた、組み合わされた拡張された画像の領域内で全ての残存する孔を更に満たすために組み合わされた拡張された画像に対してフラッドフィル演算を実行することができる。フラッドフィル演算は、対象の内部の孔を満たす。いくつかの実例において、バーコード検出モジュール34は、フラッドフィル演算の代わりにクローズ演算を実行することができる。クローズ演算は、満たしている要素の大きさ内で小さな孔を閉じる。ところが、フラッドフィル演算は、孔の大きさにかかわらず対象内で全ての孔を閉じる。この方法において、組み合わされた画像上に実行される1つ以上のモルフォロジー演算は、重複するエッジおよび低い強度部分に伴う領域を一様の、またほとんど一様の、ホワイト領域にする。
【0048】
バーコード検出モジュール34は、潜在的にバーコードである可能性があるデジタル画像の位置を識別するために1つ以上のモルフォロジー演算の後に組み合わされた画像の中に残存する位置を分析する。言い換えると、バーコード検出モジュール34は、その位置がバーコードであるための候補であるかどうかを決定する。バーコード検出モジュール34は、例えば、その位置がバーコードであるための候補かどうかを決定するために1つ以上のバーコード基準と組み合わされた画像の中に残存する位置の各々を比較することができる。バーコード検出モジュール34は、例えば、その位置がバーコードであるためにはあまりに大きすぎるまたはあまりに小さすぎるかどうかを決定するためにバーコードの大きさの基準とその位置の大きさを比較することができる。その位置の大きさがしきい値より小さい場合、バーコード検出モジュール34は、その位置がバーコードでないということを決定することができる。あまりに小さすぎる位置は、たとえその位置がバーコードとして検出されたとしても、バーコードを分析するために十分に詳細に画像収集装置10のレンズシステムによって収集されることができない。別の例として、バーコード検出モジュール34は、バーコードの形状、例えば長方形または正方形の形状と実質上類似していない位置を削除するためにバーコード形状基準とその位置の形状を比較することができる。更に別の例において、バーコード検出モジュール34は、バーコードの充てん要因の基準とその位置の満たしている要因を比較することができる。特に、正方形および長方形は、いくつのピクセルが周囲の長方形のエリアと関連してホワイトでないかを決定するためにその位置の周囲に配置されることができる。周囲の長方形のエリアと関連してホワイトでないピクセルのパーセンテージがしきい値のパーセンテージを超える場合、その位置は、候補位置から削除されることができる。
【0049】
バーコード検出モジュール34は、その位置で残存しているデジタル画像が固有のバーコード機能を有するかどうかを確認することによって残存している位置が実際にバーコードであるかどうかをそのとき決定することができる。いくつかの2Dバーコードの場合において、例えば、バーコード検出モジュール34は、識別された位置がバーコードファインダーパターンを含むかどうかを決定するためにバーコードであるための対象としてバーコード検出モジュール34によって識別された画像の位置を分析することができる。2Dデータマトリックスバーコードの場合において、バーコード検出モジュール34は、その位置の範囲内で固有の境界線のパターン、例えば、交互のブラックおよびホワイトの正方形のモジュールから構成される2つの垂直の線を探すことができる。2D QRバーコードの場合において、バーコード検出モジュール34は、識別された位置の3つの角で入れ子にされた交互のダークおよびライトの正方形のファインダーパターンを探すことができる。バーコード検出モジュール34は、しかしながら、他のバーコード記号論と対応付けられた他の固有の機能または他の固有のバーコードファインダーパターンのために識別された位置を分析することができる。更に、バーコード検出モジュール34は、固有のバーコード機能またはパターンのための生成された低い強度マップ、生成されたエッジマップまたはデジタル画像のグレースケールバージョンのような原型の画像とは違った画像を分析することができる。
【0050】
上述されたバーコード検出技術は、いくつかの利点を与えることができる。例えば、バーコード検出技術は、その画像内でバーコードの大きさ、位置、およびオリエンテーションから独立することができる。更に、この開示の中に記述されているバーコード検出技術におけるモルフォロジー演算の使用は、より速くおよびより計算的に効率のいいバーコード検出に帰着する。更に、バーコード検出技術は、加えてより低い計算の複雑性とすることができる。
【0051】
バーコード検出モジュール34がその画像内でバーコードを検出しない場合、画像プロセッサ14は、この開示の中に記述されたバーコード走査技術を更に実行することなく画像を収集するために画像センサ12を制御することができる。すなわち、画像収集装置10は、従来技術による画像収集技術に従って、例えば、興味のシーン内でライトの総計に基づいて、あるいは興味のシーンの中心の中の焦点のポイントを伴って画像を収集することができる。実際は、画像収集装置10のユーザは、画像収集装置10が興味のシーン内でバーコードを検出することを試みたということでさえ知らない。その代わりとして、バーコード検出は、ユーザを従事させることなくバックグラウンドの中で実行されることができる。
【0052】
プレビュー画像内でバーコードを検出すると、バーコードスキャナーモジュール18は、画像内でのバーコードの検出を表示するために、図2のビューファインダー26のような、ビューファインダーと相互に作用することができる。いくつかの実例において、バーコードスキャナーモジュール18は、例えば、検出されたバーコードの周囲にボックスを配置することを経て、ユーザに対して画像内でのバーコードの位置を更に表示することができる。バーコードスキャナーモジュール18はまた、バーコードを収集し更にバーコード復号演算を実行すること、あるいは従来技術による画像収集技術に従って興味の一般のシーンを単に収集することをユーザが望むかどうかを決定することを画像収集装置10のユーザに促す。この方法において、興味のシーン内にバーコードがある場合、ユーザは、従来技術による方法において興味のシーンを収集するためのオプションを有するが、そのユーザの意図はバーコードを走査することではなかった。しかしながら、他の観点において、画像収集装置10は、そのユーザに促すことができないが、その代わりとして、単に、すなわち、まるで目的が興味のシーン内でバーコードを走査することであったかのように、ここの技術に従って画像を処理および収集することができる。様々な技術のどれでも、まるで目的が興味のシーン内でバーコードを走査することであったかのように画像を処理および収集するかどうかを決定するために用いられることができる。バーコードがしきい値の大きさ以上である場合、例えば、バーコードが例えば画像の少なくとも4分の1を占める場合、画像収集装置10は、まるで目的が興味のシーン内でバーコードを走査することであったかのように画像を処理および収集することができる。
【0053】
ユーザがバーコードのプロンプトに応じて更にバーコード復号演算を実行すべきであるということを応答する、またはこのようなプロンプトが与えられてない場合、センサ構成モジュール19は、画像センサ12が改良された品質でバーコードを収集することができるように画像センサ12の画像収集プロパティ32を構成することができる。特に、センサ構成モジュール19は、バーコードを含む興味のシーンの領域または複数の領域の品質を改良するために画像センサ12の画像収集プロパティを構成する。例えば、センサ構成モジュール19は、画像センサ12が高品質においてバーコードとともに興味のシーンの領域を収集するように露出タイマ32Aおよび/または焦点制御32Bを構成することができる。すなわち、画像内でバーコードの位置を与えられると、センサ構成モジュール19は、バーコードを含む興味のシーンの領域のために最適露出時間を計算することができ、従来技術による露出時間アルゴリズムを用いて、露出タイマ32Aを構成することができる。例えば、センサ構成モジュール19は、バーコードを含む興味のシーンの領域の中の光強度を分析することができ、興味のシーンの特別の領域の光強度に基づいて露出時間を設定することができる。
【0054】
加えて、またはあるいは、興味のシーン内でバーコードの位置を与えられると、センサ構成モジュール19は、バーコードを含む興味のシーンの領域のために最適焦点制御を計算することができ、従来技術による焦点制御アルゴリズムを用いて、画像センサ12の焦点ポイントとしてバーコードの位置を用いるために焦点制御32Bを構成することができる。いったん画像収集プロパティ32が構成されると、画像プロセッサ14は、画像センサ12に画像収集プロパティ32に従って画像を収集させることができる。上述された例の実例において、センサ構成モジュール19によって構成される画像収集プロパティ32は露出時間および焦点制御を含むが、他の画像収集プロパティは、焦点制御および露出時間に加えて、または焦点制御および露出時間の代わりに構成されることができる。例えば、センサ構成モジュール19は、センサ利得、例えば、画像センサ12の増幅器利得を構成することができる。
【0055】
いくつかの実例において、画像収集装置10は、バーコード画像収集モードにおいて動作することができる。この場合において、画像収集プロパティ32は、その画像内でのバーコードの検出より前に構成されることができる。バーコード検出モジュール34は、画像センサ12の画像収集プロパティ32を構成する目的のために画像内でバーコードを検出する代わりにバーコードの処理の目的のために画像内でバーコードを検出することができる。
【0056】
画像収集プロパティ32に従って興味のシーンの画像を収集した後、バーコード処理モジュール36は、収集された画像を処理することができる。バーコード処理モジュール36は、例えば、バーコードの残りを含む画像の領域のみのような画像を切り取ることができる。バーコード処理モジュール36は、例えば、バーコードの検出の間にバーコード検出モジュール34によって生成されるバーコード位置情報を用いて、画像内で複数のバーコードまたは1つのバーコードのみを含むために収集された画像を切り取ることができる。あるいは、バーコード検出モジュール34は、デジタル画像内でバーコードの位置を識別するためにバーコード収集動作の中のこのポイントでバーコード検出を実行することができる。画像内で1つ以上のバーコードがある実例において、バーコード処理モジュール36は、別々に画像からバーコードの各々を抽出することができる。
【0057】
あるいは、または加えて、バーコード処理モジュール36は、その次のバーコードデコーダモジュール、例えば図2のバーコードデコーダモジュール28による使用のためのきれいで一様なバーコードを生成するためにひずみを取り除くために収集された画像を更に処理することができる。いくつかの実例において、バーコード処理モジュール36は、バーコードを含む画像の領域の中のみのひずみを補正することができる。あるいは、バーコード処理モジュール36は、全体の画像のひずみを補正することができる。バーコード処理モジュール36は、様々なひずみの問題のどれでもに対して補正するためにひずみ補正技術を実行することができる。例えば、バーコード処理モジュール36は、バーコードが正確に見られることができるように画像内でバーコードを方向付けるために画像を回転することができる。
【0058】
別の例として、バーコード処理モジュール36は、バーコードの単一または複数の次元のパターンを暗くすることができる影および光によって引き起こされるひずみに対して補正するために画像を処理することができる。ひずみ補正モジュール38は、遠近法に関係のある問題に対して補正するために画像を加算的に処理することができる。すなわち、バーコードは、ユーザがバーコードの画像を収集した遠近感のためスキューされることがある。バーコード処理モジュール36は、スキューされたバーコードを補正するために画像をそれゆえ処理することができる。バーコード処理モジュール36はまた、バーコードが平らでないアイテムの上に配置された場合に生じるバーコードのワーピングのために補正することができる。例えば、バーコード処理モジュール36は、ガラス瓶またはアルミニウム缶上に配置されているバーコードの結果のバーコードのワーピングを補正することができる。
【0059】
画像プロセッサ14は、画像記憶モジュール16内で収集されたバーコード画像を記憶することができる。画像収集装置10は、バーコードのペイロードを抽出する目的で復号するためにバーコードデコーダモジュール28(図2)に収集された画像を表示することができる。この方法において、バーコードスキャナーモジュール18は、バーコードがより信頼できるおよび正確なバーコードの復号化を支援することができる改良された画像品質で収集されることができる首尾一貫したフロントエンドインタフェースを与えることができる。画像収集装置がノンバーコード画像収集モードにおいて実行する間のバーコードの自動検出は、特殊なバーコード収集装置を実行するまたは特殊なバーコードカメラを選択するような、無関係のユーザの相互作用を減らすまたは削除することにおいて得に有効であることができる。更に、バックエンドで画像改良技術を実行する代わりに画像センサ12の画像収集プロパティを構成することは、バーコードのより高い品質の画像を与えることができる。
【0060】
この開示の中に記述され、センサ構成モジュール19およびバーコードスキャナーモジュール18に属するものとみなされるような機能は、コンピュータ読み取り可能な媒体に記憶された命令を実行する1つ以上のプログラマブルプロセッサによって実行されることができる。そして、その命令および/またはコードは、プロセッサにこの開示の中に記述されたようなバーコード走査を実行させる。いくつかの場合において、コンピュータ読み取り可能な媒体は、コンピュータプログラム製品の部分を形成することができる。そして、それは、製造業者に対して販売されることおよび/または装置の中に用いられることができる。あるいは、この開示の中に記述され、センサ構成モジュール19およびバーコードスキャナーモジュール18に属するものとみなされる技術は、一般にハードウェアの中に、特に統合された回路装置内で実行されることができる。その統合された回路装置は、この開示の中に記述された機能を実行するように構成される1つ以上のプロセッサを備える。
【0061】
図4は、バーコード操作を実行する、図3の画像収集装置10のような、画像収集装置の動作の例を示すフロー図である。最初に、ユーザは画像収集を開始し、画像センサ12は、画像入手を始める(42)。すなわち、画像センサは、画像バッファ30に画像情報を記憶し、収集する。いくつかの実例において、ユーザが画像を収集するためのボタンを作動させる前だが、画像センサ12を、画像プレビューの間、すなわち、ユーザが興味のシーンで画像収集装置10に向けている間、画像バッファ30に画像情報を記憶し、収集する。画像入手は、バーコード画像収集モードを含む、画像収集モードの何れにおいても始めることができる。
【0062】
バーコード検出モジュール34は、デジタル画像を受信し、興味のシーンがバーコードを含むかどうかを検出する(44)。バーコード検出モジュール34は、共通に即座に低い光の強度とともにピクセルの高い集中およびエッジの高い集中を示す画像の位置を識別することができる。バーコード検出モジュール34は、特別のバーコード記号論を独自に識別する他の機能またはバーコードファインダーパターンのような、その位置が固有のバーコード機能を有するかどうかを確認することによって識別された位置が実際にバーコードであるかどうかをそのとき決定することができる。バーコード検出技術は、図5に関してより詳細に記述される。
【0063】
バーコード検出モジュール34が興味のシーン内でバーコードを検出しない場合、画像プロセッサ14は、いくつかの他の基準に基づいて決定された画像収集プロパティに従って画像を収集するために画像センサ12を制御することができる(46)。例えば、バーコード検出モジュール34が興味のシーン内でバーコードを検出しない場合、画像プロセッサ14は、そのシーンの他の特徴、興味のシーン内でのモーションの量、または興味のシーンの中のライトの量に基づいて決定された画像収集プロパティに従って画像を収集するために画像センサを制御することができる。
【0064】
バーコードが興味のシーン内で検出される場合、バーコードスキャナーモジュール18は、バーコードを収集し更にバーコード復号演算を実行すること、あるいは従来技術による画像収集技術に従って興味の一般のシーンを単に収集することをユーザが望むかどうかを決定するためにそのユーザに促すことができる(48,50)。この方法において、興味のシーン内でバーコードがある場合、従来技術による方法において興味のシーンを収集するためにオプションを有するが、そのユーザの意図はバーコードを走査することではなかった。
【0065】
そのユーザが検出されたバーコードの促進処理を省略するための意図を合図することによってプロンプトに応答する場合、画像収集装置10は、従来技術による画像収集プロパティに従って画像を収集する(46)。いくつかの実例において、画像収集装置10はそのユーザを促すことができないが、その代わりとして、すなわち、まるでその目的が興味のシーン内でバーコードを走査することであったかのように、ここでの技術に従って画像を単に収集し、処理することができる。その場合において、バーコード収集が望まれていると仮定して、ブロック48および50がスキップされることができる。
【0066】
画像収集装置10がこのようなプロンプト機能を含まない、またはユーザが検出されたバーコードを処理し続けるための意図を合図する場合、センサ構成モジュール19は、画像センサ12の1つ以上の画像収集プロパティを構成する(52)。センサ構成モジュール19は、例えば、バーコードを含む興味のシーンの領域が改良された品質で収集されるように上述された方法においてセンサ利得32C、焦点制御32Bまたは露出時間32Aを構成することができる。
【0067】
画像プロセッサ14は、プロパティを収集された構成された画像に従って画像センサ12に興味のシーンの画像を収集させる(54)。バーコード処理モジュール36は、バーコードを含む画像の領域の品質を増すために収集された画像を処理することができる(56)。バーコード処理モジュール36は、例えば、バーコードの残りを含む画像の領域のみのような画像を切り取ることができる。あるいは、または加えて、バーコード処理モジュール36は、その次のバーコードデコーダモジュールによる使用のためのきれいで一様なバーコードを生成するためにひずみを取り除くために収集された画像を更に処理することができる。バーコード処理モジュール36は、ワーピング、スキュー、見方、証明または回転に関係のあるひずみを含む、様々なひずみの問題のどれでもに対して補正するためにひずみ補正技術を実行することができる。
【0068】
バーコードを処理し、収集した後、バーコードスキャナーモジュール18は、ペイロードを得るために復号するためにバーコードデコーダモジュールにバーコードを与えることができる(58)。バーコードデコーダモジュールは、ペイロードを得るためにバーコードを復号する(59)。この処理が画像記憶モジュール16にバーコードを正式に記憶することなく生じることができるということは注釈されるべきである。すなわち、上の処理は、リアルタイムにまたはほとんどリアルタイムに生じることができ、そのバーコードは、画像記憶モジュール16にいつも記憶されることなくバーコードデコーダモジュールに与えられることができる。それによって、画像記憶モジュール内で空間を節約することができる。しかしながら、いくつかの実例において、バーコードは、バーコードデコーダモジュールにバーコードを与えることより前に記憶されることができる。
【0069】
図5は、この開示の中に記述される技術に従ってバーコード検出を実行する、図3の画像収集装置10のような、画像収集装置の動作の例を示すフロー図である。最初に、バーコード検出モジュール34は、その画像のグレースケールバージョンを得ることができる(60)。その収集された画像情報がY−Cb−Crドメインの中にある場合、例えば、バーコード検出モジュール34は、Y−チャネル値を得ることができる。画像情報が別のカラードメイン、例えば、R−G−Bドメインの中にある実例において、バーコード検出モジュール34は、その画像をグレースケールに変換することができる。
【0070】
バーコード検出モジュール34は、その画像内で識別されたエッジを除いて取り除かれた全ての細部とともにその画像の表現であるエッジマップを生成する(62)。上で詳細に記述されたように、バーコード検出モジュール34は、ピクセル毎に画像にエッジ検出の核を適用することによってエッジマップを生成することができる。1つの例において、エッジマップは、エッジがホワイトで、画像の残りがブラックである、2値の画像、すなわち、ブラックおよびホワイトの画像であることができる。
【0071】
バーコード検出モジュール34はまた、低くない強度領域が取り除かれた画像の表現である低い強度マップを生成する(64)。バーコード検出モジュール34は、ピクセル強度値の各々を強度しきい値と比較することによって画像の低い強度領域を識別することができ、強度しきい値以上である全てのピクセル値を取り除くことができる。1つの例において、低い強度マップは、低い強度領域がホワイトで、画像の残りがブラックである2値の画像であることができる。バーコード検出モジュール34は、並行して低い強度領域およびエッジを識別するためのデジタル画像を処理することができる。あるいは、その演算は、連続して実行されることができる。
【0072】
図5の例において、バーコード検出モジュール34は、エッジマップ上で拡張を実行する(66)。バーコード検出モジュール34はまた、低い強度マップ上で拡張を実行する(68)。上述されるように、拡張は、分割されたエリアおよび孔を一般にふさぎ、拡張のために用いられる構造化要素の大きさより小さい空間によって区切られるエリアを接続する。拡張は、大きさにおいて減少するダーク領域および大きさいにおいて増大する画像のブライト領域に帰着する。
【0073】
バーコード検出モジュール34は、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせる(70)。バーコード検出モジュール34は、例えば、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせるために“論理積(AND)”演算を実行する。言い換えると、その組み合わされた画像は、エッジおよび低い強度領域が空間的に共通に即時である画像の部分を表現する。バーコード検出モジュール34は、組み合わされた画像上で拡張を実行し、組み合わされた、拡張された画像の中の全ての孔をフラッドフィルする(72)。
【0074】
バーコード検出モジュール34は、バーコードであるための候補である位置を識別するためにフラッドフィルすることおよび拡張の後に組み合わされた画像を分析する(74)。バーコード検出モジュール34は、その位置がバーコードであるための候補であるかどうかを決定するために1つ以上のバーコード基準と組み合わされた画像の位置の各々を比較することができる。バーコード検出モジュール34は、例えば、バーコードであるための候補である位置を識別するために組み合わされた画像の中の位置の特徴の組み合わせ、または他の類似した特徴、位置の充てん要因、位置の形状、位置の大きさを分析することができる。
【0075】
バーコード検出モジュール34は、候補位置が実際にバーコードであるかどうかを確認することができる(76)。例えば、バーコード検出モジュール34は、2D QRバーコードの場合における位置の3つの角の中の交互のブラックおよびホワイトの正方形の入れ子にされたパターンまたは2Dデータマトリックスバーコードの場合における交互のブラックおよびホワイトの正方形の2つの垂直の線のような、固有のバーコードファインダーパターンのための候補位置として識別された原型の画像の位置を分析することができる。他の観点において、バーコード検出モジュール34は、生成された低い強度マップ、生成されたエッジマップまたはデジタル画像のグレースケールバージョンのような原型の画像とは違った画像を分析することができる。バーコード検出モジュール34は、バーコードとして確認された位置を分類する(78)。言い換えると、バーコード検出モジュール34は、候補位置が固有のバーコード機能を含む場合にバーコードを検出する。
【0076】
図6A−6Dは、この開示の中に記述されるバーコード操作技術に従って画像を表示する例示的なビューファインダー80の図である。ビューファインダー80は、図2のビューファインダー26と実質上類似することができる。図6Aに示されるように、ビューファインダー80は、一般に興味のシーンのリアルタイムの画像を表示することができる。興味のシーンは、フォアグラウンドまたはバックグラウンドの中のどちらか一方の多数の対象を含むことができるが、図の容易さのために空白のシーンとして示されている。画像82は、バーコード86が付けられる、または少なくとも付けられると思えるアイテムを含む。アイテム84は、ボックスまたは他の製品パッケージ、缶、雑誌または他の製品、道路標識、またはアイテムの任意の他のタイプのような、多数のアイテムのどれでも含むことができる。ビューファインダー80は、図3の画像収集装置10のような、画像収集装置が動作しているモードを示すモードインジケータ88を画像82の上に置くことができる。まもなく、モードインジケータ88は、画像収集装置10が“デフォルトモード”の中で動作しているということを示す。デフォルト画像収集モードの中で動作するとして図6A−6Dの中に記述され、示されているが、この開示のバーコード走査技術は、ハイモーションモード(また、アクションモードとして言及される)、ローモーション(また、風景(セニックまたはランドスケープ)モードとして言及される)人間主体またはフェースモード、ダークモード、ブライトモードまたはバーコードの画像を収集することに対して明確に設定されていない任意の他のモードのような、任意のノンバーコード画像収集モードの中のバーコードを検出するために用いられることができる。加えて、この開示の技術は、その上バーコードの画像を収集するために明確に設計されたバーコード画像収集モードの中のバーコードを検出するために用いられることができる。
【0077】
デフォルトモードの中で動作しているとしても、バーコードスキャナーモジュール18は、この開示の中に記述されるバーコード走査技術を実行する。例えば、バーコード検出モジュール34は、例えば図5に関連して、上述される方法において画像82内でバーコード86を検出する。図6Bは、バーコードスキャナーモジュール18がバーコード86の位置および検出を反映するためにビューファインダー80を更新した後のビューファインダー80を示す。特に、ビューファインダー80は、バーコードシグナリングマーク89A−89D(“マーク89”)を現在含む。マーク89は、画像82内でバーコード86の位置を表示する。マーク89はバーコード86の各々の角を囲んでいるとして示されるが、マーク89は、バーコード86の位置を合図することが可能な任意の可視のインジケータ、例えば、矢印、ボックスまたは他の形状、またはインジケータの他のタイプを備えることができる。バーコード検出モジュール34がビューファインダー80内でのバーコード86の現在の外見にかかわらずバーコードを探し出すことができるということは、注釈されるべきである。これは、減少させられた品質、例えばバーコード86のわずかにスキューされた性質および画素化されたグレースケール、のバーコード86を示すことによって図6A−6Cの中に反映される。
【0078】
画像82内でバーコード86を探し出した後、バーコードスキャナーモジュール18は、いくつかの実例において、バーコード86を更に処理し続ける前にユーザに促すことができる。図6Cは、画像82の上に置かれたユーザプロンプト90とともにビューファインダー80を示す。ユーザプロンプト90は、単に例示的なユーザプロンプトであり、この開示の中に記述された技術は、全く別のユーザプロンプトを含むことができるまたはユーザプロンプトを含む必要がない。いくつかの観点において、ユーザプロンプトは、ユーザによるユーザの好みとして設定されることができる。ユーザがバーコードを処理し続けることを望む場合にユーザは“OK”をラベルされたボタンを押すべきであり、そうでない場合には“Exit”をラベルされたボタンを押すべきであるということを表示することによって、ユーザプロンプト90は、“撮影するためにExitを押す”および“バーコードを処理するためにOKを押す”ことをユーザに促す。“OK”および“Exit”ボタンの両方とも、再び単に例示的であり、この開示の中に記述される技術は、この限られたコンテキストに制限されるべきではない。そのボタンは、ソフトキー、ハードキータッチスクリーンボタンまたはそれと同様なものを含むことができる。ユーザが例示的な“OK”ボタンを押すと仮定すると、図6Dは、バーコード86の結果として生じる画像82を表示するビューファインダー80を示す。多数のバーコードが興味のシーン内で含まれる実例において、画像収集装置10は、ユーザが走査に興味をもっている多数のバーコードのどれかを選択することビューファインダー80を介してユーザに促すことができる。
【0079】
図6Dの中に示されるように、画像82は、ひずみ、例えば、前の図6A−6Cの画素化されたおよびスキューされたバーコード86と対応づけられるコントラストおよびスキューの問題を補正するために処理され、切り取られている画像を表現する、きれいなでひずませられたバーコードを含む。図6Dのバーコード86は、ブラックおよびホワイトカラーの間に高いコントラストを有し、完全ではないがほとんど正方形である。このように、図6Dのバーコード86は、バーコードデコーダモジュールがバーコード86に対して符号化されたペイロードを容易に抽出することができるように一様なバーコードを与える。ビューファインダー80内で与えられているとして記述されたが、図6Dの一様なバーコード86は、ビューファインダー80内で与えられることができず、その代わりとして上で論じられたバーコードデコーダに直ちに送られることができる。
【0080】
図7A−7Gは、この開示の中に記述されるバーコード検出処理の様々な段階の間のバーコードの画像の図の例である。図7Aは、例えば画像プレビューの間に、画像センサ12によって最初に取得されるときのグレースケール画像の図の例を示す。上で詳細に記述されるように、バーコード検出モジュール34は、画像内でエッジを識別するために図7Aに示されるグレースケール画像を処理する。図7Bは、原型のグレースケース画像内で識別されるエッジのエッジマップの図の例を示す。エッジマップは、識別されるエッジを除いて取り除かれた全ての細部とともに原型の画像を表現する。図7Bに示されるエッジマップの例において、画像内で検出されたエッジはホワイトであるのに対し、画像の残りはブラックである。しかしながら、他の場合において、画像内で検出されたエッジはブラックであり、画像の残りはホワイトであることができる。
【0081】
バーコード検出モジュール34は、原型のグレースケール画像内で低い強度領域を識別するために図7Aに示されるグレースケール画像を更に処理する。図7Cは、グレースケール画像の識別される低い強度領域の低い強度マップの図の例を示す。その低い強度マップは、その低くない強度領域が取り除かれた原型画像を表現することができる。図7Cに示される低い強度マップの例において、低い強度領域はホワイトとして示され、他の領域はブラックとして示される。しかしながら、他の場合において、画像内で低い強度領域はブラックであり、画像の残りはホワイトである。
【0082】
図7Dおよび7Eは、バーコード検出モジュール34が拡張を実行した後のそれぞれ低い強度マップおよびエッジマップの図の例である。図7Fは、拡張された低い強度マップおよび拡張されたエッジマップを組み合わせ、その組み合わされた画像の拡張を実行し、その拡張された、組み合わされた画像をフラッドフィルした後に、バーコード検出モジュール34によって生成された画像の図の例である。図7Fの図の例に示されるように、いくつかの位置は、バーコードを含む、処理の後に画像内でまだ残存する。興味の典型的なシーンは、組み合わされた画像の中に残存する多数の他の位置を含むことができる。例えば、他のバックグラウンドおよびフォアグラウンドの対象に伴う興味の典型的なシーンの組み合わされた画像は、テキストを伴う位置、興味のシーンの中の他のバーコードでない対象のエッジを含む位置またはそれと同様なもののような、残存する位置を含むことができる。
【0083】
バーコード検出モジュール34は、潜在的にバーコードである位置を識別するために残存する位置を分析する。バーコード検出モジュール34は、位置がバーコードであるための候補であるかどうかを決定するために、1つ以上のバーコード基準、例えば、大きさ、形状、充てん要因、またはそれと同様なものと画像の中の位置の各々を比較することができる。図7Gは、バーコードモジュール34が対象位置を選択するために位置を分析した後の画像の図の例を示す。図7Gに示される画像の中に残存する対象位置は、2つの正方形に形づくられた位置であり、それは図7Aの原型のグレースケール画像の中の実際上のバーコードに対応する。
【0084】
ここで記述された技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実行されることができる。構成要素またはモジュールとして記述された全ての機能は、相互運用可能な論理装置でなく分離したとして別々にまたは統合した論理装置において共に実行されることができる。ソフトウェアにおいて実行される場合、その技術は、実行されるとき上述された方法の1つ以上を実行する命令を備えるコンピュータ読み取り可能媒体によって少なくとも一部分を実現されることができる。コンピュータ読み取り可能媒体は、コンピュータプログラム製品の部分を形成することができ、それはパッケージ材料を含むことができる。コンピュータ読み取り可能媒体は、SDRAM(synchronous dynamic random access memory)、ROM(read-only memory)、NVRAM(non-volatile random access memory)、EEPROM(electrically erasable programmable read-only memory)フラッシュメモリ(FLASH memory)、磁気または光データ記憶媒体、およびそれと同様なもののようなRAM(random access memory)を備えることができる。その技術は、加えて、またはあるいは、コンピュータによって実行される、読み込まれるおよび/またはアクセスされることができ、データ構造または命令の方の中のコードを通信するまたは運ぶコンピュータ読み取り可能通信媒体によって少なくとも一部分を実現されることができる。
【0085】
そのコードは、1つ以上のDPS、一般の目的のマイクロプロセッサ、ASIC、フィールドプログラマブレロジックアレイFPGA、または他の等価の統合したまたは分離した論理回路のような、1つ以上のプロセッサによって実行されることができる。よって、ここで用いられるように、用語“プロセッサ”は、ここで記述された技術の具体化に適した任意の他の構造または前述の構造のどれにも言及することができる。加えて、いくつかの観点において、ここで記述された機能は、組み合わせられたビデオコーデックに組み込まれる、または復号するおよび符号化するために構成されるハードウェアモジュールまたは専用のソフトウェアモジュール内で提供されることができる。このゆえに、本開示はまた、この開示の中に記述された1つ以上の技術を実行するための電気回路構成を含む様々な統合された回路装置のどれでも熟慮する。このような電気回路構成は、単一の統合された回路チップの中にまたは複数の、相互運用可能な統合された回路チップの中に提供されることができる。
【0086】
様々な観点が記述されている。これらおよび他の観点は、以下の特許請求の範囲の範囲内にある。
【特許請求の範囲】
【請求項1】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別することと、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別することと、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出することと
を具備する方法。
【請求項2】
前記デジタル画像内で前記バーコードを検出することは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出することを備える、請求項1に記載の方法。
【請求項3】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出することは、
少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別することと、
少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別することと、
前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出することと
を更に備える、請求項2に記載の方法。
【請求項4】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項3記載の方法。
【請求項5】
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成することと、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成することと、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせることと
を更に具備し、
前記デジタル画像内で前記バーコードを検出することは、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出することを備える、請求項2記載の方法。
【請求項6】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行することを更に具備する、請求項5記載の方法。
【請求項7】
前記画像内で前記バーコードを検出することは、
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別することと、
前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための候補位置であるということを決定することと、
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定することと
を備える、請求項1に記載の方法。
【請求項8】
前記識別された位置がバーコードであるための対象位置であるということを決定することは、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための候補位置であるということを決定することを備える、請求項7に記載の方法。
【請求項9】
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定することは、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出すると前記識別された位置がバーコードであるということを決定することを備える、請求項7に記載の方法。
【請求項10】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別し、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別し、および前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するバーコード検出モジュールを含むプロセッサを備える装置。
【請求項11】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置でバーコードを検出する、請求項10に記載の装置。
【請求項12】
前記バーコード検出モジュールは、少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別し、少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別し、前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出する、請求項11に記載の装置。
【請求項13】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項12に記載の装置。
【請求項14】
前記バーコード検出モジュールは、前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成し、前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成し、組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせ、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出する、請求項11に記載の装置。
【請求項15】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行する、請求項14に記載の装置。
【請求項16】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別し、前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定し、前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定する、請求項10に記載の装置。
【請求項17】
前記バーコード検出モジュールは、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定する、請求項16に記載の装置。
【請求項18】
前記バーコード検出モジュールは、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定する、請求項16に記載の装置。
【請求項19】
前記装置は無線通信装置を備える、請求項10に記載の装置。
【請求項20】
前記装置は統合された回路装置を備える、請求項10に記載の装置。
【請求項21】
プロセッサに、
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別させ、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別させ、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出させる
ための命令を具備するコンピュータ読み取り可能媒体。
【請求項22】
前記プロセッサに前記デジタル画像内で前記バーコードを検出させるための命令は、前記プロセッサに前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出させるための命令を備える、請求項21に記載のコンピュータ読み取り可能媒体。
【請求項23】
前記プロセッサに前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出させるための命令は、前記プロセッサに、
少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別させ、
少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別させ、
前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出させる
ための命令を更に備える、請求項22に記載のコンピュータ読み取り可能媒体。
【請求項24】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項23に記載のコンピュータ読み取り可能媒体。
【請求項25】
前記プロセッサに、
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成させ、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成させ、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組合させる
ための命令を更に具備し、
前記プロセッサに前記デジタル画像内で前記バーコードを検出させるための命令は、前記プロセッサに前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出させるための命令を備える、請求項22に記載のコンピュータ読み取り可能媒体。
【請求項26】
前記プロセッサに空間的に共通に即座に前記識別された低い強度領域および前記識別されたエッジを含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行させるための命令を更に備える、請求項25に記載のコンピュータ読み取り可能媒体。
【請求項27】
前記プロセッサに前記画像内で前記バーコードを検出させるための命令は、前記プロセッサに、
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別させ、
前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定させ、
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定させる
ための命令を備える、請求項21に記載のコンピュータ読み取り可能媒体。
【請求項28】
前記プロセッサに前記識別された位置がバーコードであるための対象位置であるということを決定させるための命令は、前記プロセッサに前記識別された位置の充てん要因、前記識別された位置の大きさ、前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定させるための命令を備える、請求項27に記載のコンピュータ読み取り可能媒体。
【請求項29】
前記プロセッサに前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定させるための命令は、前記プロセッサに前記識別された位置で興味のシーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定させるための命令を備える、請求項27に記載のコンピュータ読み取り可能媒体。
【請求項30】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別するための手段と、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別するための手段と、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するための手段と
を具備する装置。
【請求項31】
前記検出する手段は、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出する、請求項30に記載の装置。
【請求項32】
少なくとも1つのモルフォロジー演算を用いて前記画像内で前記識別されたエッジの高い集中を示す位置を識別するための手段と、
少なくとも1つのモルフォロジー演算を用いて前記画像内で前記識別された低い強度領域の高い集中を示す位置を識別するための手段と
を更に具備し、
前記検出する手段は、前記デジタル画像内で前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す位置で前記バーコードを検出する、請求項31に記載の装置。
【請求項33】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項32に記載の装置。
【請求項34】
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成するための手段と、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成するための手段と、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせるための手段と
を更に具備し、
前記検出する手段は、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出する、請求項31に記載の装置。
【請求項35】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内の少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行するための手段を更に備える、請求項34に記載の装置。
【請求項36】
前記検出する手段は、空間的に共通に即座に前記識別された低い強度領域および前記識別されたエッジを含む前記画像内で位置を識別し、前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定し、前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定する、請求項30に記載の装置。
【請求項37】
前記検出する手段は、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定する、請求項36に記載の装置。
【請求項38】
前記検出する手段は、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定する、請求項36に記載の装置。
【請求項1】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別することと、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別することと、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出することと
を具備する方法。
【請求項2】
前記デジタル画像内で前記バーコードを検出することは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出することを備える、請求項1に記載の方法。
【請求項3】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出することは、
少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別することと、
少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別することと、
前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出することと
を更に備える、請求項2に記載の方法。
【請求項4】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項3記載の方法。
【請求項5】
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成することと、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成することと、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせることと
を更に具備し、
前記デジタル画像内で前記バーコードを検出することは、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出することを備える、請求項2記載の方法。
【請求項6】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行することを更に具備する、請求項5記載の方法。
【請求項7】
前記画像内で前記バーコードを検出することは、
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別することと、
前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための候補位置であるということを決定することと、
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定することと
を備える、請求項1に記載の方法。
【請求項8】
前記識別された位置がバーコードであるための対象位置であるということを決定することは、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための候補位置であるということを決定することを備える、請求項7に記載の方法。
【請求項9】
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定することは、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出すると前記識別された位置がバーコードであるということを決定することを備える、請求項7に記載の方法。
【請求項10】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別し、輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別し、および前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するバーコード検出モジュールを含むプロセッサを備える装置。
【請求項11】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置でバーコードを検出する、請求項10に記載の装置。
【請求項12】
前記バーコード検出モジュールは、少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別し、少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別し、前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出する、請求項11に記載の装置。
【請求項13】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項12に記載の装置。
【請求項14】
前記バーコード検出モジュールは、前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成し、前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成し、組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせ、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出する、請求項11に記載の装置。
【請求項15】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行する、請求項14に記載の装置。
【請求項16】
前記バーコード検出モジュールは、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別し、前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定し、前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定する、請求項10に記載の装置。
【請求項17】
前記バーコード検出モジュールは、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定する、請求項16に記載の装置。
【請求項18】
前記バーコード検出モジュールは、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定する、請求項16に記載の装置。
【請求項19】
前記装置は無線通信装置を備える、請求項10に記載の装置。
【請求項20】
前記装置は統合された回路装置を備える、請求項10に記載の装置。
【請求項21】
プロセッサに、
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別させ、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別させ、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出させる
ための命令を具備するコンピュータ読み取り可能媒体。
【請求項22】
前記プロセッサに前記デジタル画像内で前記バーコードを検出させるための命令は、前記プロセッサに前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出させるための命令を備える、請求項21に記載のコンピュータ読み取り可能媒体。
【請求項23】
前記プロセッサに前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出させるための命令は、前記プロセッサに、
少なくとも1つのモルフォロジー演算を用いて前記識別されたエッジの高い集中を示す前記画像内で位置を識別させ、
少なくとも1つのモルフォロジー演算を用いて前記識別された低い強度領域の高い集中を示す前記画像内で位置を識別させ、
前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す前記デジタル画像内での位置で前記バーコードを検出させる
ための命令を更に備える、請求項22に記載のコンピュータ読み取り可能媒体。
【請求項24】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項23に記載のコンピュータ読み取り可能媒体。
【請求項25】
前記プロセッサに、
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成させ、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成させ、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組合させる
ための命令を更に具備し、
前記プロセッサに前記デジタル画像内で前記バーコードを検出させるための命令は、前記プロセッサに前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出させるための命令を備える、請求項22に記載のコンピュータ読み取り可能媒体。
【請求項26】
前記プロセッサに空間的に共通に即座に前記識別された低い強度領域および前記識別されたエッジを含む前記画像内で少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行させるための命令を更に備える、請求項25に記載のコンピュータ読み取り可能媒体。
【請求項27】
前記プロセッサに前記画像内で前記バーコードを検出させるための命令は、前記プロセッサに、
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内で位置を識別させ、
前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定させ、
前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定させる
ための命令を備える、請求項21に記載のコンピュータ読み取り可能媒体。
【請求項28】
前記プロセッサに前記識別された位置がバーコードであるための対象位置であるということを決定させるための命令は、前記プロセッサに前記識別された位置の充てん要因、前記識別された位置の大きさ、前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定させるための命令を備える、請求項27に記載のコンピュータ読み取り可能媒体。
【請求項29】
前記プロセッサに前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定させるための命令は、前記プロセッサに前記識別された位置で興味のシーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定させるための命令を備える、請求項27に記載のコンピュータ読み取り可能媒体。
【請求項30】
強度変化しきい値を超える強度における変化を興味のシーンのデジタル画像内でエッジとして識別するための手段と、
輝度強度が強度しきい値より低い前記デジタル画像の領域を低い強度領域として識別するための手段と、
前記識別された低い強度領域および前記識別されたエッジに基づいて前記デジタル画像内でバーコードを検出するための手段と
を具備する装置。
【請求項31】
前記検出する手段は、前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記デジタル画像内での位置で前記バーコードを検出する、請求項30に記載の装置。
【請求項32】
少なくとも1つのモルフォロジー演算を用いて前記画像内で前記識別されたエッジの高い集中を示す位置を識別するための手段と、
少なくとも1つのモルフォロジー演算を用いて前記画像内で前記識別された低い強度領域の高い集中を示す位置を識別するための手段と
を更に具備し、
前記検出する手段は、前記デジタル画像内で前記識別された低い強度領域の高い集中および前記識別されたエッジの高い集中の両方を示す位置で前記バーコードを検出する、請求項31に記載の装置。
【請求項33】
前記少なくとも1つのモルフォロジー演算は、クロージング、オープニング、浸食および拡張の少なくとも1つを備える、請求項32に記載の装置。
【請求項34】
前記デジタル画像内で前記識別されたエッジを表現するエッジマップを生成するための手段と、
前記デジタル画像内で前記識別された低い強度領域を表現する低い強度マップを生成するための手段と、
組み合わされた画像を生成するために前記低い強度マップおよび前記エッジマップを組み合わせるための手段と
を更に具備し、
前記検出する手段は、前記組み合わされた画像に基づいて前記デジタル画像内で前記バーコードを検出する、請求項31に記載の装置。
【請求項35】
前記識別された低い強度領域および前記識別されたエッジを空間的に共通に即時に含む前記画像内の少なくとも1つの位置を生成するために前記組み合わされた画像上で1つ以上のモルフォロジー演算を実行するための手段を更に備える、請求項34に記載の装置。
【請求項36】
前記検出する手段は、空間的に共通に即座に前記識別された低い強度領域および前記識別されたエッジを含む前記画像内で位置を識別し、前記位置が1つ以上のバーコード基準を満たす場合に前記識別された位置がバーコードであるための対象位置であるということを決定し、前記識別された位置で興味の前記シーンが固有のバーコード機能を含む場合に前記識別された位置がバーコードであるということを決定する、請求項30に記載の装置。
【請求項37】
前記検出する手段は、前記識別された位置の充てん要因、前記識別された位置の大きさおよび前記識別された位置の形状の少なくとも1つに基づいて前記識別された位置がバーコードであるための対象位置であるということを決定する、請求項36に記載の装置。
【請求項38】
前記検出する手段は、前記識別された位置で興味の前記シーン内でバーコードファインダーパターンを検出することによって前記識別された位置がバーコードであるということを決定する、請求項36に記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7A】
【図7B】
【図7C】
【図7D】
【図7E】
【図7F】
【図7G】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7A】
【図7B】
【図7C】
【図7D】
【図7E】
【図7F】
【図7G】
【公表番号】特表2011−518363(P2011−518363A)
【公表日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2010−547830(P2010−547830)
【出願日】平成21年2月21日(2009.2.21)
【国際出願番号】PCT/US2009/034799
【国際公開番号】WO2009/105731
【国際公開日】平成21年8月27日(2009.8.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
2.GSM
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公表日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願日】平成21年2月21日(2009.2.21)
【国際出願番号】PCT/US2009/034799
【国際公開番号】WO2009/105731
【国際公開日】平成21年8月27日(2009.8.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
2.GSM
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]