(57)【要約】【課題】  本発明の課題は、圧縮領域にある画像内の機械可読コードを効果的に検出及び精緻化する方法及び装置を提供することである。【解決手段】  上記課題を解決するため、本発明は、圧縮表現された画像のファイルから情報を抽出するステップと、前記圧縮表現された画像における機械可読コードの位置を決定するステップとから構成されることを特徴とする方法からなる。【選択図】      図１
2006174461.tif 000002
【特許請求の範囲】
【請求項１】
圧縮表現された画像のファイルから情報を抽出するステップと、
前記圧縮表現された画像における機械可読コードの位置を決定するステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
前記情報はヘッダデータを有し、
前記機械可読コードの位置を決定するステップは、前記ファイルのヘッダデータ内の情報に基づき行われる、
ことを特徴とする方法。
【請求項３】
請求項１記載の方法であって、
前記機械可読コードの位置を決定するステップは、
前記ファイルのヘッダデータから前記機械可読コードの位置を抽出するステップと、
前記ファイルの一部を復号することにより、前記機械可読コードの位置を検証するステップと、
から構成されることを特徴とする方法。
【請求項４】
請求項３記載の方法であって、
前記機械可読コードの位置を抽出するステップは、各レベルの各コードブロックのビット配置を利用して、機械可読コードを潜在的に含む前記画像内の位置を選択することを特徴とする方法。
【請求項５】
請求項３記載の方法であって、
前記機械可読コードの位置を抽出するステップは、複数のビット配置マトリックスを用いて前記画像内の位置を選択し、
前記複数のビット配置マトリックスの各々は、各レベルの各コードブロックのビット配置から構成される、
ことを特徴とする方法。
【請求項６】
請求項３記載の方法であって、
前記機械可読コードの位置を検証するステップは、各候補機械可読コード位置に対し、
水平方向の分散分布を計算するステップと、
前記水平方向の分散分布に基づき、上下境界を検出するステップと、
垂直方向の平均係数分布を計算するステップと、
前記垂直方向の平均係数分布に基づき左右境界を検出するステップと、
から構成されることを特徴とする方法。
【請求項７】
請求項６記載の方法であって、さらに、
係数の隣接する行間の相関を計算するステップと、
行間の平均相関と閾値との間の関係に基づき、候補機械可読コードの位置を拒絶するステップと、
を有することを特徴とする方法。
【請求項８】
請求項６記載の方法であって、さらに、
前記水平方向の分散の前記垂直方向の分散に対する比を算出するステップと、
前記水平方向の分散の前記垂直方向の分散に対する比と閾値との間の関係に基づき、候補機械可読コードの位置を拒絶するステップと、
を有することを特徴とする方法。
【請求項９】
請求項１記載の方法であって、さらに、
前記機械可読コードを示す情報を含むよう前記ファイルを変更するステップを有することを特徴とする方法。
【請求項１０】
圧縮表現された画像のファイルから情報を抽出する抽出ユニットと、
前記圧縮表現された画像における機械可読コードの位置を決定するコード位置決定装置と、
から構成されることを特徴とする装置。
【請求項１１】
請求項１０記載の装置であって、
前記情報はヘッダデータを有し、
前記コード位置決定装置は、前記ファイルのヘッダデータ内の情報に基づき前記機械可読コードの位置を決定する、
ことを特徴とする装置。
【請求項１２】
請求項１０記載の装置であって、
前記コード位置決定装置は、
前記ファイルのヘッダデータから前記機械可読コードの位置を抽出する候補コード検出ユニットと、
前記ファイルの一部を復号することにより、前記機械可読コードの位置を検証するコード精緻化ユニットと、
から構成されることを特徴とする装置。
【請求項１３】
請求項１２記載の装置であって、
前記候補コード検出ユニットは、各レベルの各コードブロックのビット配置を利用して、機械可読コードを潜在的に含む前記画像内の位置を選択することにより、前記機械可読コードの位置を抽出することを特徴とする装置。
【請求項１４】
請求項１２記載の装置であって、
前記候補コード検出ユニットは、複数のビット配置マトリックスを用いて前記画像内の位置を選択することにより、前記機械可読コードの位置を抽出し、
前記複数のビット配置マトリックスの各々は、各レベルの各コードブロックのビット配置から構成される、
ことを特徴とする装置。
【請求項１５】
請求項１２記載の装置であって、
前記コード精緻化ユニットは、各候補機械可読コード位置に対し、
水平方向の分散分布を計算し、
前記水平方向の分散分布に基づき、上下境界を検出し、
垂直方向の平均係数分布を計算し、
前記垂直方向の平均係数分布に基づき左右境界を検出する、
ことにより、前記機械可読コードの位置を検証することを特徴とする装置。
【請求項１６】
請求項１５記載の装置であって、
前記コード精緻化ユニットは、
係数の隣接する行間の相関を計算し、
行間の平均相関と閾値との間の関係に基づき、候補機械可読コードの位置を拒絶する、ことを特徴とする装置。
【請求項１７】
請求項１６記載の装置であって、
前記コード精緻化ユニットは、
前記水平方向の分散の前記垂直方向の分散に対する比を算出し、
前記水平方向の分散の前記垂直方向の分散に対する比と閾値との間の関係に基づき、候補機械可読コードの位置を拒絶する、
ことを特徴とする装置。
【請求項１８】
請求項１０記載の装置であって、さらに、
前記機械可読コードを示す情報を含むよう前記ファイルを変更するファイルエディタを有することを特徴とする装置。
【請求項１９】
圧縮表現された画像のファイルを受付けるステップと、
前記画像内の１以上の機械可読コードの位置を決定するのに前記ファイルのヘッダデータを利用するステップと、
から構成されることを特徴とする方法。
【請求項２０】
請求項１９記載の方法であって、
前記ヘッダデータを利用するステップは、
前記ファイルのヘッダデータから前記１以上の機械可読コードの１以上の潜在的な機械可読コードの位置を抽出するステップと、
前記１以上の潜在的な機械可読コードの各位置が機械可読コードの位置であるか、前記ファイルの一部の復号されたデータをチェックすることにより検証するステップと、
から構成されることを特徴とする方法。
【請求項２１】
圧縮表現された画像のファイルを受付けるステップと、
前記画像内の１以上の機械可読コードの位置を決定するステップと、
前記１以上の機械可読コードを示す情報を含むよう前記ファイルを修正するステップと、
から構成されることを特徴とする方法。
【請求項２２】
圧縮ファイルに対し、該圧縮ファイルに係るヘッダデータを利用して画像解析を実行するステップと、
前記画像解析の結果に基づき、前記圧縮ファイルの一部を選択するステップと、
前記圧縮ファイルの一部を部分的に復号するステップと、
から構成されることを特徴とする方法。
【請求項２３】
圧縮ファイルにおける機械可読コードの位置を決定するステップと、
前記圧縮ファイルにおける機械可読コードの位置を含むよう前記圧縮ファイルの修正バージョンを生成するステップと、
から構成されることを特徴とする方法。
【請求項２４】
圧縮ファイルにおける機械可読コードの位置を決定するステップと、
画素領域データを取得するため、前記圧縮ファイルの一部を復号するステップと、
前記機械可読コードに係る１以上の復号された値をメタデータとして格納することにより、前記圧縮ファイルの修正バージョンを生成するステップと、
から構成されることを特徴とする方法。
【請求項２５】
圧縮ファイルにおける機械可読コードの位置を決定するステップと、
画素領域データを取得するため、前記圧縮ファイルの一部を復号するステップと、
前記機械可読コードを書き換えるステップと、
前記機械可読コードのより可読性の高いバージョンを有する前記圧縮ファイルの修正バージョンを生成するため、前記圧縮ファイルの一部を再圧縮するステップと、
から構成されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械可読コード検出の技術分野及び機械可読コードの改良に関し、より詳細には、画像が圧縮領域にあっても当該画像内の機械可読コードを検出する技術に関する。
【背景技術】
【０００２】
通常、バーコードは物理的アーチファクトの電子的識別を提供するのに用いられる。それらは、スパーマーケットのレシート、航空チケット、製品パッケージなどの以降における抽出のための情報を格納するため、各種タイプの文書に印刷される。さらに、それらはまた、マルチメディアシステムの制御キーとして機能することが可能である。
【０００３】
このため、自動システムがデータ抽出のためそれらを復号するために、文書画像内のバーコード位置を検出可能であることが重要である。一部の商用製品は、正確にバーコードを復号することができる。しかしながら、文書におけるバーコードを用いた典型的使用例は、検出を確実にするため空白によりバーコードを取り囲むことである。高解像度のスキャンにおいてバーコードの位置を効率的に決定することは、依然として未解決な課題である。この分野における従来の研究では、ページサイズの高解像度スキャン画像にとっては計算量の大きな画素領域でのバーコードの検出がメインとして行われてきた。
【０００４】
通常、複数のアプローチがバーコード検出に利用される。一アプローチでは、バーコードのストライプが結合コンポーネントの解析を適用することによりまず検出され、その後、バーコード領域が結合コンポーネントをグループ化することにより決定される。例えば、バーコード領域を検出する一つの提案として、結合コンポーネントをダウンサンプリング及びバックグラウンド削除された画像のバーコードブロックにグループ化するというものがあげられる。より詳細には、１９９０年８月１４日に付与された米国特許第４，９４８，９５５号「Ｂａｒｃｏｄｅ  Ｌｏｃａｔｉｏｎ  Ｄｅｔｅｒｍｉｎａｔｉｏｎ」を参照されたい。さらに、２０００年３月１０日に出願された米国特許出願第０９／５２２，９７８号「Ｍｅｔｈｏｄ  ｏｆ  Ｒｅａｄｉｎｇ  Ｂａｒｃｏｄｅ  ａｎｄ  Ｂａｒｃｏｄｅ  Ｒｅａｄｉｎｇ  Ｓｙｓｔｅｍ」（２００２年６月２０日に公開された米国公報第２００２／００７４４０５Ａ１号）において、水平垂直両方のバーコードを検出するため結合コンポーネント解析を適用し、ストライプの形状と隣接するストライプ間の間隔の詳細に関して条件付けされたシステムが記載されている。
【０００５】
文書画像を小さなセルに分割するのに格子を用いたバーコード検出技術もある。各セルのある特徴を計算して、それがバーコード領域に属するか否か判断され、最終的にはこれらのセルはバーコード領域を決定するのにグループ化される。各種特徴が適用可能である。例えば、一つの特徴は、３つの方向における隣接する行／列間のマッチングを利用したものである。より詳細には、１９９９年６月１０日に付与された欧州特許第０８９４３１１Ｂ１号「Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｂａｒｃｏｄｅ  Ｌｏｃａｔｏｒ」を参照されたい。他の技術は、格子に沿って白黒の遷移を利用するものである。より詳細には、欧州出願第１４１６４２１Ａ１号「Ｂａｒｃｏｄｅ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ａｎｄ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  Ｍｅｔｈｏｄ」を参照されたい。さらなる他の技術は、各方向に各セルをスキャンすることにより、パラレルなストライプパターンを検出するというものである。より詳細には、２００１年５月２日に出願された米国特許出願第０９／８４７，４８４号「Ｆａｓｔ  Ｂａｒｃｏｄｅ  Ｓｅａｒｃｈ」（２００２年１１月７日に公開された米国公報第２００２／０１６２８８９Ａ１号）を参照されたい。
【０００６】
他の方法は、ヒストグラムを利用したものである。例えば、一つの方法は、ＰＯＳＴＮＥＴコードなどのあるタイプのバーコードのセグメントにおけるあるヒストグラムパターンを検出するものである。しかしながら、それは１９９１年１２月１７日に付与された米国特許第５，０７３，９５４号「Ｂａｒ  Ｃｏｄｅ  Ｌｏｃａｔｉｏｎ  ａｎｄ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ」に記載されるようなＰＯＳＴＮＥＴコードの特徴をキャプチャするだけであるため、当該方法の利用は限定的なものである。２００１年６月７日に出願された米国特許出願第０９／８７７，５８１号「Ａｕｔｏｍａｔｉｃａｌｌｙ  Ｅｘｔｒａｃｔｉｎｇ  Ｇｒａｐｈｉｃａｌ  Ｂａｒ  Ｃｏｄｅｓ」（２００２年１２月２６日に公開された米国公報第２００２／０１９６９７９Ａ１号）において、オフラインにトレーニングされたサンプルバーコード群に適合するバーコードを検出する方法が紹介されている。候補となるバーコード領域は、各位置を中心とするウィンドウの複数の予め選ばれた方向に沿って適合フィルタを適用することにより選択される。デスキューされた候補バーコードの幾何的検証は、バーコードを直交軸に投影し、ヒストグラムを閾値処理することにより実現される。
【０００７】
バーコードを検出するこれらすべての従来のアプローチは、画素領域で機能し、より大きな画像については計算量が大きくなる。
【０００８】
ＪＰＥＧ２０００は、コヒーレントなコードストリーム及びファイルフォーマットにおけるデジタル画像を表現するのに規格化されたウェーブレットベースの圧縮法である。より詳細には、Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｔａｎｄａｒｄ−ｐａｒｔ１：ｃｏｒｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ」（ＩＳＯ／ＩＥＣ１５４４４−１）を参照されたい。他の圧縮規格と比較して、ＪＰＥＧ２０００は、画像の各解像度及び各部へのアクセスなどの効果を有する。ＪＰＥＧ２０００コードストリームには、ヘッダデータとウェーブレット係数の圧縮されたブロックが含まれる。ウェーブレット係数は、各方向及び各スケールに対する画像の詳細な高周波数情報を提供する。各レベルの各ウェーブレットサブバンドは、コードブロックと呼ばれる典型的には３２×３２、または６４×６４のローカルグループに分割される。各コードブロックは、独立に符号化される。メインヘッダデータは、利用される符号化パラメータ及び画像全体のハイレベルな構造化記述を含む。パケットヘッダは、各コードブロックに割当てられたビット数、ゼロビットプレーン数、復号化のための符号化パスなどの情報を含む。ＪＰＥＧ２０００ヘッダ情報は、文書の比較などのため関心領域を検出するのに従来利用されてきた。
【特許文献１】米国特許第４，９４８，９５５号
【特許文献２】米国特許出願第０９／５２２，９７８号
【特許文献３】欧州特許第０８９４３１１Ｂ１号
【特許文献４】欧州出願第１４１６４２１Ａ１号
【特許文献５】米国特許出願第０９／８４７，４８４号
【特許文献６】米国特許第５，０７３，９５４号
【特許文献７】米国特許出願第０９／８７７，５８１号
【非特許文献１】「Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｔａｎｄａｒｄ−ｐａｒｔ１：ｃｏｒｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ」（ＩＳＯ／ＩＥＣ１５４４４−１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の課題は、圧縮領域にある画像内の機械可読コードを効果的に検出及び精緻化する方法及び装置を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、圧縮表現された画像のファイルから情報を抽出するステップと、前記圧縮表現された画像における機械可読コードの位置を決定するステップとから構成されることを特徴とする方法からなる。
【００１１】
さらに、本発明は、圧縮表現された画像のファイルから情報を抽出する抽出ユニットと、前記圧縮表現された画像における機械可読コードの位置を決定するコード位置決定装置とから構成されることを特徴とする装置からなる。
【００１２】
また、本発明は、圧縮表現された画像のファイルを受付けるステップと、前記画像内の１以上の機械可読コードの位置を決定するのに前記ファイルのヘッダデータを利用するステップとから構成されることを特徴とする方法からなる。
【００１３】
また、本発明は、圧縮表現された画像のファイルを受付けるステップと、前記画像内の１以上の機械可読コードの位置を決定するステップと、前記１以上の機械可読コードを示す情報を含むよう前記ファイルを修正するステップとから構成されることを特徴とする方法からなる。
【００１４】
また、本発明は、圧縮ファイルに対し、該圧縮ファイルに係るヘッダデータを利用して画像解析を実行するステップと、前記画像解析の結果に基づき、前記圧縮ファイルの一部を選択するステップと、前記圧縮ファイルの一部を部分的に復号するステップとから構成されることを特徴とする方法からなる。
【００１５】
また、本発明は、圧縮ファイルにおける機械可読コードの位置を決定するステップと、前記圧縮ファイルにおける機械可読コードの位置を含むよう前記圧縮ファイルの修正バージョンを生成するステップとから構成されることを特徴とする方法からなる。
【００１６】
また、本発明は、圧縮ファイルにおける機械可読コードの位置を決定するステップと、画素領域データを取得するため、前記圧縮ファイルの一部を復号するステップと、前記機械可読コードに係る１以上の復号された値をメタデータとして格納することにより、前記圧縮ファイルの修正バージョンを生成するステップとから構成されることを特徴とする方法からなる。
【００１７】
さらに、本発明は、圧縮ファイルにおける機械可読コードの位置を決定するステップと、画素領域データを取得するため、前記圧縮ファイルの一部を復号するステップと、前記機械可読コードを書き換えるステップと、前記機械可読コードのより可読性の高いバージョンを有する前記圧縮ファイルの修正バージョンを生成するため、前記圧縮ファイルの一部を再圧縮するステップとから構成されることを特徴とする方法からなる。
【発明の効果】
【００１８】
本発明によると、圧縮領域にある画像内の機械可読コードを効果的に検出及び精緻化する方法及び装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
文書画像（ＪＰＥＧ２０００文書画像など）における機械可読コード（一次元バーコードなど）を検出する方法及び装置が説明される。一実施例では、機械可読コードの検出は、候補コード検出と位置特定精緻化の２つの処理により行われる。何れの処理もＪＰＥＧ２０００文書画像の圧縮領域において行われる。一実施例では、候補コードの位置が、圧縮データを含むファイルのヘッダデータから抽出され、ファイルの復号化された係数のチェック部により検証される。わずかな圧縮データしか使用されないため、当該技術はすべての画素データを利用するアルゴリズムに対し複雑さが小さくなる。従って、本発明は、圧縮領域（ＪＰＥＧ２０００圧縮領域など）の文書における機械可読コード（バーコードなど）の位置を決定する技術を導入し、必要となる計算負荷を大きく減少させることができる。
【００２０】
一実施例では、ファイル（ＪＰＥＧ２０００ファイルなど）は、「クリーンアップ」または「再生成」された機械可読コード（バーコードなど）により修正される。
【００２１】
図１は、機械可読コード（バーコードなど）位置決定プロセスの一実施例のフロー図である。当該プロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムや専用マシーン上で実行される）、あるいはそれの組み合わせから構成されるかもしれない処理論理により実行される。
【００２２】
図１を参照するに、本プロセスは、画像（ＪＰＥＧ２０００文書画像など）の圧縮表現のファイル（ＪＰＥＧ２０００ファイルなど）を受付ける処理論理により開始される（処理ブロック１０１）。当該ファイルから、処理論理は情報（ヘッダデータなど）を取得する（処理ブロック１０２）。
【００２３】
当該情報が取得されると、処理論理は、ファイルから取得された情報に基づき圧縮表現された画像における機械可読コードの位置を特定する（処理ブロック１０３）。一実施例では、処理論理は、ファイルの情報から機械可読コードのそれぞれの位置を抽出し、ファイル（ＪＰＥＧ２０００ファイルなど）の一部の復号化されたデータ（復号化係数など）をチェックすることにより、各位置が機械可読コードを有することを検証することによって、機械可読コードの位置を決定する。
【００２４】
一実施例では、１以上の機械可読コードの位置決定後、処理論理は、当該位置や復号化された値などの機械可読コードを示す情報を含むように、ファイルの一部（メタデータなど）を変更する（または新たなファイルを書き込む）（処理ブロック１０４）。当該処理は任意的なものであることに留意されたい。
【００２５】
他の実施例では、候補バーコードの位置決定のためヘッダデータが利用され、位置精緻化のため部分的係数が利用される。一実施例では、バーコード精緻化は、水平及び垂直方向に沿ってウェーブレット整数の局所的分散の相違を利用することにより実行される。バーコードの位置及び復号された値は、ＪＰＥＧ２０００ファイルのメタデータに配置されてもよい。
【００２６】
１以上の機械可読コードの位置決定後、処理論理はそれらを復号し（処理ブロック１０５）、任意的に、以下でより詳細に説明されるようなアプリケーションにおいて復号化された機械可読コードを利用する（処理ブロック１０６）。
【００２７】
以下の説明では、本発明のより完全な説明を提供するため、多数の詳細が与えられる。しかしながら、本発明がそのような具体的詳細なしに実現可能であるということは、当業者には明らかであろう。他の例では、本発明を不明瞭にすることを回避するため、周知の構成及び装置は、詳細にではなくブロック図により示される。
【００２８】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する処理の記号表現及びアルゴリズムに関して与えられる。これらのアルゴリズム的な記述及び表現は、データ処理分野の当業者によって、当該技術分野の他の当業者に動作の本質を最も効果的に伝えるため利用される手段である。ここで一般的に、アルゴリズムとは、所望の結果を導く自己矛盾のないステップシーケンスとあると考えられる。これらのステップは、物理量の物理的操作を要するものである。通常、必須ではないが、これらの物理量は、格納、転送、合成、比較及び操作可能な電気または磁気信号の形式をとる。これらの信号をビット、値、要素、記号、文字、項、数などと呼ぶことは便利である。
【００２９】
しかしながら、上記及び類似の用語のすべてが適切な物理量と関連付けされ、それらは当該物理量に適用された単なる便宜上のラベルであるということに留意すべきである。以下の説明から明らかなように、特に述べられない場合、本説明を通じて「処理」、「計算」、「決定」、「表示」などの用語を利用した説明は、コンピュータシステムあるいはコンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されるデータをレジスタ、メモリあるいは他の情報記憶、送信または表示装置内の物理量として同様に表された他のデータに処理及び変換する同様の電子計算装置のアクション及びプロセスを表す。
【００３０】
本発明はまた、上記処理を実行する装置に関する。本装置は、求められる目的に特化して構成されてもよいし、あるいはコンピュータに格納されているコンピュータプログラムにより選択的に起動または再構成された汎用コンピュータから構成されてもよい。このようなコンピュータプログラムは、以下に限定されるものではないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスクを含む任意のタイプのディスク、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、電子命令を格納するのに適した任意のタイプのメディアなどのコンピュータ読出し可能な記憶媒体に格納されていてもよく、その各々がコンピュータシステムバスにより接続されている。
【００３１】
ここで与えられるアルゴリズム及びディスプレイは、特定のコンピュータまたは他の装置に固有に関連するものではない。各種汎用システムが、ここでの教示に従ってプログラムにより利用されてもよく、あるいは、求められる方法ステップを実行するためより特殊な装置を構成するのに便利であることがわかっている。これら各種システムに求められる構成が、以下の説明から明らかとなるであろう。さらに、本発明は特定のプログラミング言語を参照して説明はされない。様々なプログラミング言語が、ここで説明されるような本発明の教示を実現するのに利用されてもよいということは理解されるであろう。
【００３２】
機械可読媒体は、機械（コンピュータなど）により可読な形式により情報を格納または送信するための任意の機構を含む。例えば、機械可読媒体は、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、電気、光、音響または他の形式の伝搬信号（搬送波、赤外線信号、デジタル信号など）を含む。
【００３３】
概観
本発明の実施例は、圧縮されている画像内の機械可読コード（バーコードなど）の位置を特定する。一実施例では、以下に限定されるものではないが、圧縮されているデータはＪＰＥＧ２０００圧縮データである。当該技術は圧縮領域でのデータに対し機能するため、すべての画像データの解凍が機械可読コードの位置の特定のため実行される必要はなく、このため計算効率を向上させることができる。
【００３４】
図２は、ＪＰＥＧ２０００ファイルに対するバーコード処理システムの一実施例のデータフロー図である。図２の各ユニットは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムや専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成可能な処理論理を有する。
【００３５】
図２を参照するに、スキャンされた文書画像２０１はまず、ＪＰＥＧ２０００エンコーダ２０２を用いてＪＰＥＧ２０００画像に圧縮される。ＪＰＥＧ２０００画像は、ＪＰＥＧ２０００コードストリーム２０３として表される。スキャン解像度は、典型的には３００ｄｐｉまたは６００ｄｐｉである。ＪＰＥＧ２０００エンコーダ２０２は任意的なものであるということに留意されたい。あるいは、ＪＰＥＧ２０００コードストリーム２０３は、圧縮されたファイル入力２１０から受付けられてもよい。
【００３６】
入力としてＪＰＥＧ２０００コードストリームが与えられると、機械可読コード位置特定装置２０４は、ＪＰＥＧ２０００コードストリーム２０３のヘッダデータから機械可読コードの位置を決定する。一実施例では、機械可読コードは、以降においてより詳細に説明される様々な方法により位置特定可能なバーコードを有する。機械可読コードの位置がわかると、当該情報はＪＰＥＧ２０００ファイルのメタデータに格納可能か、あるいは、他の実施例では当該ファイルの他の位置に格納可能である。
【００３７】
一実施例では、画像の対応する機械可読コード領域はまず、機械可読コード復号ソフトウェアを用いて機械可読コード値２０９を抽出する機械可読デコーダ２０８に入力される１以上の機械可読コード画像２０７を生成するためＪＰＥＧ２０００デコーダ２０６により解凍される。一実施例では、ＪＰＥＧ２０００デコーダ２０６は、バーコード画像を生成するため、機械可読位置決定装置２０４により特定されたバーコード位置に基づき、画像内の対応するバーコード領域を解凍し、デコーダ２０８は、バーコード値を生成するためバーコード画像を復号する。復号された機械可読コード（バーコードなど）はまた、以降の使用において再度復号する必要がなくなるように、ＪＰＥＧ２０００ファイルのメタデータに格納可能である。
【００３８】
バーコードの場合、取得されたバーコード位置及び値を利用するアプリケーションは複数ある。これらのアプリケーションは、他の機械可読コードもまた利用可能であるということに留意されたい。バーコード値は、アーチファクト認識、データベース検索、装置制御（電子メールの送信、照明のオンなどのためバーコードをスキャンするなど）のため直接利用可能である。例えば、取得されたバーコード位置及び値の情報により、本発明の譲受人に譲渡され、２００２年１２月５日に出願された米国特許出願第１０／３１４，０１４号「Ａ  Ｄｅｖｉｃｅ  ｆｏｒ  Ｓｃａｎｎｉｎｇ  ａｎｄ  Ｐｒｉｎｔｉｎｇ  Ｂａｒｃｏｄｅｓ」（２００４年７月１０日に公開された米国公報第２００４／０１０８３８１号）に記載された技術を用いて、もとのぼやけたバーコード画像を置換するため、バーコード生成ソフトウェアによりバーコード画像の新しい鮮明なものを生成することができる。バーコード領域は、スキャン後常時リフレッシュ可能であり、繰り返し印刷及びスキャンすることによる不鮮明化を回避することができる。ＪＰＥＧ２０００ファイルでは、この新しい画像データは圧縮され、圧縮ファイルのデータを置換するのに利用可能である。ＪＰＭファイルでは、この新しい画像データは、通常印刷では古いバーコードを覆い隠すファイルの追加的レイヤに格納可能であるが、必要に応じてもとのスキャンがアクセス可能となる。
【００３９】
図３は、バーコード位置決定装置の一実施例のブロック図である。各ブロックは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムや専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成される処理論理により実行される。図３を参照するに、ヘッダデータ抽出ユニット３０１は、ＪＰＥＧ２０００コードストリーム２０３を受け取り、当該コードストリーム２０３のヘッダデータからＪＰＥＧ２０００文書画像のビット配置を取得する。パケットヘッダは、ＪＰＥＧ２０００ファイルのコードストリームから抽出可能である。すなわち、ヘッダデータから、各コードブロックに割当てられたビット数を記述するビット配置データが導出可能である。ビット配置データは、もとのＪＰＥＧ２０００画像のエントロピー分布をシミュレートするマトリックスを形成するよう構成可能である。
【００４０】
一実施例では、ビット配置は、本発明の譲受人に譲渡され、２００２年１月１０日に出願された米国特許出願第１０／０４４，４２０号「Ｈｅａｄｅｒ−Ｂａｓｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｉｍａｇｅｓ  Ｃｏｍｐｒｅｓｓｅｄ  Ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｓｃａｌｅ  Ｔｒａｎｓｆｏｒｍｓ」（２００３年９月４日に公開された米国公報第２００３／０１６５２７３号）に記載される方法を用いて取得される。当該アプリケーションでは、ＪＰＥＧヘッダデータは、ウェーブレット係数の複数の解像度のパケットヘッダから抽出される。ヘッダデータから容易に抽出されるアイテムの１つは、ウェーブレット係数のコードブロックを符号化するのに用いられるバイト数である。ここでは、コードブロックに用いられるバイト数は、ビット配置マトリックスと呼ばれる。
【００４１】
３００ｄｐｉでスキャンされた典型的な８．５×１１インチの用紙は、２５５０×３３００画素の画像を生成する。ウェーブレット圧縮システムは、当該画像を３Ｌ＋１個のウェーブレット係数マトリックスに変換する（ここで、Ｌは、ウェーブレット変換のレベル数であり、典型的にはこのサイズの画像では５または６とされる）。最高の解像度では、ＬＨ、ＨＬ及びＨＨの３つのウェーブレット係数マトリックスがあり、各々のサイズはもとの画像の水平及び垂直サイズの約１／２である。各追加的レベルは、再び１／２の水平及び垂直サイズである。このため、ＬＨは垂直にローパスされた係数と水平にハイパスされた係数を表し、ＨＬは垂直ハイパス及び水平ローパスを表し、ＨＨは両方向に用いられたウェーブレット変換のハイパスフィルタを表す。ＪＰＥＧ２０００は、係数マトリックスを典型的には３２×３２または６４×６４のサイズのコードブロックにグループ化する。従って、最高の解像度のサブバンドには４０×５２個のコードブロックが存在することになる。係数コードブロックの一レイヤのデータを格納するのに用いられるバイト数を示すＪＰＥＧ２０００コードストリームの圧縮ヘッダデータには値は１つである。データのコードブロックを格納するのに必要とされるバイト数は、当該コードブロックの動作を示すものである。このため、ある解像度のあるタイプのウェーブレット係数の動作を表す小さなマトリックスを圧縮データから直接取得することは容易である。これが、ビットは位置マトリックス３０２を生成するヘッダデータ抽出ユニット３０１の目的である。
【００４２】
バーコードの位置を特定するため、典型的には、最高の解像度の上記３つのサブバンドからのデータのみが必要とされる。サイズの小さいビット配置マトリックスは、画像全体に対し処理が実行されるより場合より、はるかに高速な処理を可能にする。
【００４３】
ビット配置マトリックス３０２からのビット配置データを用いて、候補バーコード検出ユニット３０３は、候補バーコード領域を抽出し、１以上の候補バーコード画定ボックス３０４を出力する。以下において、候補バーコード検出を実行し、候補バーコード画定ボックスを生成するプロセスの一実施例が詳細に説明される。
【００４４】
パーシャルＪＰＥＧ２０００デコーダ３０５は、ＪＰＥＧ２０００コードストリーム２０３と候補バーコード画定ボックス３０４を受け取り、これに応答して、画像内の１以上の画定ボックスの位置に対応した部分的に復号された係数３０７を生成する。一実施例では、パーシャルＪＰＥＧ２０００デコーダ３０５は、候補領域のみを復号化し、必要に応じて、あるスケールの詳細なウェーブレット係数に対する当該領域に隣接コードブロックを復号化する。
【００４５】
一実施例では、バーコード精緻化ユニット３０６が、候補バーコード画定ボックス３０４及び部分的に復号された係数３０７の受け取りに応答して、バーコードの精緻化を行う。一実施例では、バーコード精緻化ユニット３０６は、バーコード位置を精緻化し、誤ったバーコードを拒絶するため、ウェーブレット係数の局所的分散を検討することによってバーコードを精緻化する。一実施例では、これは、精緻化されたバーコード画定ボックス３０８を出力するため、バーコード精緻化ユニット３０６を用いて実行される。
【００４６】
バーコード位置の特定
図４は、ＪＰＥＧ２０００圧縮文書画像からバーコードを検出するプロセスの一実施例のフロー図である。本プロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムまたは専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成される処理論理により実行される。図４を参照するに、処理論理は、圧縮データを有するファイルのヘッダのビット配置データを用いて候補バーコード領域（画定ボックスなど）を取得する（処理ブロック４０１）。候補バーコード領域を用いて、処理論理は、ウェーブレット係数の一部を復号することによりバーコードを検証し（処理ブロック４０２）、当該領域を精緻化する（処理ブロック４０３）。図５は候補バーコード領域を取得するプロセスの一実施例のフロー図であり、図７はバーコードを検証及び精緻化するプロセスの一実施例のフロー図である。
【００４７】
候補位置の生成
一実施例では、ヘッダデータのビット配置マトリックスが、候補バーコード領域を抽出するのに利用される。図５は、候補バーコード領域を取得するプロセスの一実施例のフロー図である。本プロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムまたは専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成される処理論理により実行される。
【００４８】
説明の便宜上、以下においては水平方向の一次元バーコード（すなわち、「各帯」が垂直方向に向き、描線順序が水平方向である）の検出が詳述される。垂直方向のバーコードは、処理ブロック５０１、５０３Ａ及び５０５において、ＨＬとＬＨの役割を交換し、水平及び垂直処理により同時に検出可能である。
【００４９】
図５を参照するに、処理論理が圧縮画像データのＬＨ係数とＨＬ係数との差を取得することから処理が開始される。水平バーコードが垂直方向ではなく水平方向に沿って大きな振幅の高周波数成分を有する事実を観察すると、一実施例では、処理論理は第１レベル（最も精細な解像度）のＬＨ及びＨＬサブバンドのビット配置マトリックスの間の差を計算する。大きな振幅の係数は、より多くの圧縮すべきデータを取得し、このため、ビット配置マトリックスにおいて大きな値を有する。他の実施例では、減算に代わって、他の差を取得する方法が用いられてもよい。例えば、より多くのビットがＨＬ係数よりＬＨ係数のコードブロックに割当てられることが予想されるため、ＬＨ／ＨＬの比は、バーコード領域ではかなり大きなものとなり、非バーコード領域では１に近い値となり、差の代わりに利用することができる。
【００５０】
ＥＨＬ１及びＥＬＨ１をそれぞれ上記２つのサブバンドのビット配置マトリックスを表すものとする。ＥＨＬ１（ｉ，ｊ）は、第１分解レベルのＨＬサブバンドのｉ，ｊ位置におけるコードブロックのビット配置である。ＥＬＨ１（ｉ，ｊ）は、第１分解レベルのＬＨサブバンドのｉ，ｊ位置におけるコードブロックのビット配置である。コードブロック（ｉ，ｊ）がバーコード領域に属する場合、ＥＬＨ１（ｉ，ｊ）−ＥＨＬ１（ｉ，ｊ）＞＞０となり、コードブロック（ｉ，ｊ）が一般的なテキストまたは画像領域に属する場合、
【００５１】
【数１】
2006174461.tif 000003
となることが予想される。従って、ビット配置差画像は、ｉｍｇ０＝ＥＬＨ１−ＥＨＬ１として取得される。ここで一実施例では、これは第１レベルに対してのみ実行されるということに留意されたい（サイズはコードブロック数の約１／４となる）。対称的に、ＥＬＨ１（ｉ，ｊ）−ＥＨＬ１（ｉ，ｊ）＜＜０は、垂直方向のバーコードを取得することができる。与えられた文書画像上の水平バーコードと垂直バーコードの両方が、当該技術を通じて検出可能である。
【００５２】
差の取得後、処理論理は、バーコードでない背景となる点を削除する（処理ブロック５０２）。一部のテキストまたは画像は削除されないかもしれないということに留意されたい。バーコード領域は、ＬＨサブバンドに大きな係数を、すなわち、ＬＨサブバンドのビット配置マトリックスの対応する位置に大きな値を有すると考えられる。従って、閾値ｔｂｇより小さな対応するＬＨビット分布データを有するｉｍｇ０の画素は、バーコード候補に対しては排除され、０に設定される。一実施例では、閾値ｔｂｇは、ＥＬＨ１の平均値である
【００５３】
【数２】
2006174461.tif 000004
として表されるＬＨ１サブバンドのビット配置平均値を計算し、
【００５４】
【数３】
2006174461.tif 000005
に従って閾値を生成することにより決定される。また、他の閾値が利用されてもよい。処理論理は、背景点を削除し、フィルタリングされた画像ｉｍｇ１を取得する。
【００５５】
背景点を削除した後、処理論理はノイズ除去を実行する（処理ブロック５０３）。一実施例では、処理論理はまず、水平ローパスフィルタ（ＬＰＦ）をｉｍｇ１の画素に適用することによりノイズ除去を実行する（処理ブロック５０３Ａ）。ｉｍｇ１の各行をノイズを抑制するローパスフィルタを通過させることにより、一次元フィルタリングされたｉｍｇ２が取得される。ここでは、様々なフィルタが利用可能である。一実施例では、シンプルなトライアングルフィルタｆ＝｛１／９，２／９，３／９，２／９，１／９｝が利用される。他の実施例では、フィルタ｛１／３，１／３，１／３｝やボックスフィルタが利用されるかもしれない。垂直バーコードの場合、垂直フィルタが利用されるべきである。これらのフィルタは、水平バーコードが大変短く、その幅は格納されているデータ量に依存すため有用であり、少数バイトの格納が複数のコードブロックを利用する。
【００５６】
ローパスフィルタの適用後、処理論理は、候補バーコードの個数をさらに制限するためのフィルタリングを実行する（処理ブロック５０３Ｂ）。一実施例では、ｉｍｇ２をフィルタリングするのに閾値ｔｎが選ばれる。一実施例では、当該閾値未満の値を有するｉｍｇ２の画素は０に設定される。他の閾値が利用されてもよい。しかしながら、大きすぎる閾値は一部の潜在的なバーコード信号を削除してしまい、小さすぎる閾値は多数の候補バーコードを抽出し、計算負荷を増大させる。一実施例では、適用される閾値は以下のように計算される。まず、ｉｍｇ２の強度ヒストグラムが計算される。ｉｍｇ２の各強度がランダム変数Ｘとみなされる場合、正規化されたヒストグラムは、Ｘの確率密度関数を表す。従って、Ｘの期待値
【００５７】
【数４】
2006174461.tif 000006
と標準偏差σＸが、当該ヒストグラムから推定可能である。このとき、閾値は
【００５８】
【数５】
2006174461.tif 000007
として定義される。最終的に閾値処理された画像は、ｉｍｇ３として表される。
【００５９】
ノイズ除去後、処理論理は、最終的に閾値処理された画像におけるピークを特定する（処理ブロック５０４）。一実施例では、処理論理は、潜在的なバーコードとしてｉｍｇ３のピークを特定し、当該ピークから周辺領域に拡大する領域を適用することにより、潜在的バーコードの画定ボックスを決定する。
【００６０】
図６は、ピーク位置を特定するプロセスの一実施例のフロー図である。本プロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムや専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成される処理論理により実行される。
【００６１】
図６を参照するに、処理論理は、ピークから開始し、振幅があるレベル（例えば、ピーク値の５０％など）まで低下するまで水平方向にそれを拡張する（処理ブロック６０１）。基本的に、ｉｍｇ３の値は、同一のバーコードに対しては近似すべきであり、当該値が最大値の１／２より小さくなると、それは同一のバーコードの一部でないとみなされる。例えば、最大値の１／３などの他のレベルが用いられてもよい。これを行うことにより、処理論理は、バーコードの左右の端を特定する。次に、処理論理は検出された行から開始し、行の平均振幅があるレベル（例えば、当初検出された行の平均振幅の５０％など）まで低下するまでそれを垂直方向に拡張する（処理ブロック６０２）。こうすることにより、処理論理は、バーコードの上下の端を特定することができる。
【００６２】
図５を参照するに、処理ブロック５０４において最大ピークを特定した後、処理論理は、当該ピーク位置から開始される領域拡大を行う（処理ブロック５０５）。一実施例では、領域拡大実行後、処理論理は検証プロセスを用いて検出された候補バーコード領域を検証する（処理ブロック５０６）。この検証プロセスは、バーコードの領域を調整するものであってもよい。検証手順が利用されるか否かに関係なく、処理論理はｉｍｇ３から潜在的なバーコードの領域を削除する（処理ブロック５０７）。このとき、処理論理は、もはやバーコードが検出されなくなるまで、あるいはアプリケーションにより規定された個数のバーコードの位置が特定されるまで（例えば、既知の個数のバーコードが存在する）、１以上の繰り返しのため処理ブロック５０４に戻る。これは、ｉｍｇ３のすべての値がゼロになると示されるようにしてもよい。当該プロセスの完了後、有効なバーコードが存在するか否か、それと共にその位置を示す出力がなされる。一実施例では、複数のバーコードが存在する場合、当該出力は各バーコードの位置を示す。
【００６３】
バーコード精緻化
バーコードの精緻化では、上述のように取得された各候補バーコード位置が、それのウェーブレット係数の局所的分散をチェックすることによりバーコードを含むものとして検証される。一実施例では、候補バーコード領域に対応するコードブロックのみが、あるスケールレベルｓｖにより復号される。スケールレベルｓｖの選択では、当該レベルにおけるバーコード領域の水平方向の分散と垂直方向の分散との間に明らかな差が存在しなければならないという条件の下、計算量を減少させるためより高いレベルのｓｖ（粗い解像度）が好ましい。一実施例では、解像度ＤＰＩによりスキャンされた文書画像に対し、以下の式がｓｖを決定するのに利用可能である。
【００６４】
【数６】
2006174461.tif 000008
ただし、ｌｏｇは基底２の対数である。「＋３」は、３００ｄｐｉ画像に対し第３レベルを選択するオフセットである。３００ｄｐｉ文書では、対応する候補バーコード領域の第３スケールレベルの水平及び垂直方向に沿ったウェーブレット係数の差である｜ＬＨ３｜−｜ＨＬ３｜が計算される。（ここで、ｌｏｇ（３００／３００）＝０であるため、第３サブバンドが利用されるということに留意されたい。６００ｄｐｉ画像に対しては、ｌｏｇ（６００／３００）＝１であるため、第４サブバンドが利用可能である。）
強力なバーコード信号の明確な境界が、弱い周辺背景信号から取得されると予想される。すなわち、画定ボックスが精緻化可能である。
【００６５】
図７は、バーコードを精緻化するプロセスの一実施例のフロー図である。本プロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステムや専用マシーン上で実行されるものなど）、あるいはこれらの組み合わせから構成される処理論理により実行される。図７に関する以下の説明において、検査領域とは、上述のような局所的分散が計算される長方形を表す。
【００６６】
図７を参照するに、処理論理は、図５のプロセスの結果として与えられる潜在的なバーコード画定ボックスとなるべき検査領域を初期化することにより開始される（処理ブロック７０１）。一実施例では、以下の２つの仮定が用いられる。
１）バーコードは、水平方向に沿って大きな係数分散を有する。
２）バーコードの周囲の背景領域は、水平方向に沿って大きな係数分散を有しない。
【００６７】
上記２つの仮定に基づき、一実施例では、図８のフロー図に与えられる以下の処理に従って初期化が行われる。図８を参照するに、本プロセスは、処理論理が検査領域の各行に沿って係数の標準偏差を計算することにより開始される（処理ブロック８０１）。次に、処理論理は、何れの行も特定の閾値ｔｖａｒを上回る標準偏差を有しない場合、当該領域は、非バーコード領域とみなされ、直接拒絶される（処理ブロック８０２）。ｔｖａｒを選択するのに各種方法が利用可能である。一実施例では、ｔｖａｒは、潜在的なすべてのバーコード領域の｜ＬＨ３｜−｜ＨＬ３｜の最大値を計算し、ｔｖａｒをこの値の１／８に設定することにより以下のように選択される。
【００６８】
次に、処理論理は、上位３つの水平方向標準偏差の平均値を計算し、ｔｈをこの平均値の７０％として設定することにより閾値ｔｈを計算し（処理ブロック８０３）、その後、バーコードの上下境界を検出する（処理ブロック８０４）。一実施例では、処理論理は、水平方向標準偏差をｔｈにより閾値処理し、ｔｈを上回る最も長い行セグメントを選択することによりこれらの境界を検出する。
【００６９】
一実施例では、処理論理は、候補画定ボックスがバーコード全体をカバーしていない場合などのように、検出された上端または下端が検査領域の上端または下端と一致する場合には、垂直拡張処理を実行する（処理ブロック８０５）。この状況では、処理論理は、検査領域の上下何れかの隣接コードブロックを復号する。
【００７０】
図７を参照するに、上端または下端の精緻化後、処理論理は、もとの候補バーコード画定ボックスの左右の境界を更新する（処理ブロック７０２）。周辺背景はバーコードと同じくらい強力なＬＨ係数とＨＬ係数との差を有してはいないため、一実施例では、処理論理は左右の境界をさらに精緻化する。一実施例では、このさらなる精緻化は、図９のフロー図に従って実行される。図９を参照するに、処理論理は、領域内のすべての係数に対し、ＬＨ係数とＨＬ係数との間の振幅の差を計算する（処理ブロック９０１）。その後、処理論理は、各列に対し当該差の平均振幅を決定する（処理論理９０２）。次に、処理論理は、図５の処理ブロック５０３Ａと同様に、三角ローパスフィルタを用いて列平均を平滑化する（処理ブロック９０３）。その後、処理論理は閾値ｔｖを設定する（処理論理９０４）。一実施例では、当該閾値は、上位３つの列平均値を平均化し、当該平均値の２５％を閾値としてとることにより設定される。一実施例では、閾値ｔｖ未満の係数は、低い値の閾値とみなされる。その後、処理論理は、左右の境界を決定するため列をチェックする（処理ブロック９０５）。一実施例では、低い値の係数が６つ以上の連続して検出されると、処理論理は、バーコード領域の境界が存在したと判断する。こうすることにより、バーコードの左右の境界を推定することができる。図８に関して、このプロセスは、バーコード位置決定プロセスにより生成されるもとの左右の境界を越えた左右の境界を導出かもしれない。
【００７１】
図７を参照するに、処理論理は、処理ブロック７０１及び７０２において検査領域の境界を更新する。
【００７２】
一実施例では、左右の境界を精緻化した後、処理論理は校正処理を実行する（処理ブロック７０４）。処理論理は、上記処理において検出された境界により画定されるよう検査領域を更新する。最終的な校正ステップとして、処理論理は、隣接する各行ペア間の相関を計算してもよい。一実施例では、行間の平均相関が閾値ｔｃｏｒｒを超えなければ、当該領域は拒絶される。実験から、ｔ＝０．９と設定される。この最終校正ステップの他のアプローチは、水平方向分散と垂直方向分散との比を閾値処理するというものである。すなわち、この比が閾値未満である場合、このことは異なる方向に沿って明らかな分散の差が存在しないことを意味し、当該領域は拒絶される。
【００７３】
更新された検査領域がバーコード全体をカバーすることを保証するため、処理論理はｅ０に対し拡張する（処理ブロック７０５）。一実施例では、実行領域は、４つの方向のそれぞれにｅ０＝３画素だけ拡張される。この点で、更新された検査領域画定ボックスは、精緻化されたバーコード画定ボックスであるとみなされ、返される。
【００７４】
最後に一実施例では、処理論理は、精緻化された画定ボックスに対し重複チェックを実行する（処理ブロック７０６）。画定ボックスが既に検出されたバーコードの画定ボックスと重複する場合、この新しいバーコードは重複とみなされ、無視される。
【００７５】
結果には誤った警告やミスが現れるかもしれない。これらに対してはいくつかの改善策があり、その一部は以下のようなものである。例えば、バーコードの許容可能な最小サイズを設定するなど、より厳しい条件をバーコード精緻化処理に追加することにより、誤った警告の回数を減少させることが可能である。ミスは主として、ビット配置マトリックスをフィルタリングするのに用いられる大きな閾値により生ずる。従って、ミスの回数を減らすように閾値を調整することができる。しかしながら、この閾値と計算負荷との間にはトレードオフが存在する。低い閾値が設定される場合にはミスの回数は減少するが、より多くの係数を復号する必要があり、より多くの計算が必要とされる。バーコードの高さが低すぎるとき（例えば、この高さがコードブロックのサイズ未満であるなど）、ミスの発生が増加する。従って、小さなバーコードに対しては、スキャン解像度を増やすことがミスの回数を減らすことができる。
【００７６】
他の技術を用いることにより、特に所定数（例えば、１つ）のバーコードしかページ上に存在しないということがわかっている場合、所定数のバーコード領域の位置を決定することができる。この場合、正確な個数のバーコードが検出されるまで、大きな閾値を利用し、減少させることが可能である。
【００７７】
他のバーコード検出技術
上記開示された技術は、一次元水平または垂直バーコードの少なくとも位置決定及び検証に適用可能である。例えば、Ｃｏｄｅｂｌｏｃｋ、Ｃｏｄｅ１６Ｋ、ＰＤＦ４１７、ＱＲ−ｃｏｄｅなどの他のバーコードは、水平または垂直向きを有しない。この場合、一実施例では、バーコードの候補位置を検出するため、ＨＨサブバンドのヘッダ情報が利用される。一実施例では、ＨＨのビット配置マトリックスのみが利用される。他の実施例では、図５のブロック５０１において、ＨＨ、ＬＨ及びＨＬビット配置マトリックスの一次結合が利用される。同様にブロック５０３Ａでは、水平及び垂直何れのローパスフィルタも適切ではなく、
【００７８】
【数７】
2006174461.tif 000009
などの二次元ブロックフィルタが利用される。
【００７９】
検証ステップでは、ｓｖにより与えられるスケールのＨＨウェーブレット係数が、水平係数の代わりに利用可能である。ＬＨ、ＨＬ及びＨＨ係数の分散の一次結合もまた用いられてもよい。
【００８０】
一例となるコンピュータシステム
図１０は、ここで説明された処理の１以上を実行可能な一例となるコンピュータシステムのブロック図である。図１０を参照するに、コンピュータシステム１０００は、一例となるクライアントまたはサーバコンピュータシステムから構成される。コンピュータシステム１０００は、情報を通信するための通信機構またはバス１０１１と、情報を処理するためバス１０１１に接続されたプロセッサ１０１２とから構成される。プロセッサ１０１２は、これに限定されるものではないが、Ｐｅｎｔｉｕｍ（登録商標）プロセッサなどのマイクロプロセッサを有する。
【００８１】
システム１０００はさらに、プロセッサ１０１２により実行される情報及び命令を格納するためバス１０１１に接続されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）または他のダイナミック記憶装置（メインメモリと呼ぶ）を有する。メインメモリ１００４はまた、プロセッサ１０１２による命令の実行中に一時的変数または他の中間情報を格納するのに利用可能である。
【００８２】
コンピュータシステム１０００はまた、プロセッサ１０１２に対する静的情報及び命令を格納するためバス１０１１に接続されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び／または他の静的記憶装置１００６と、磁気ディスク、光ディスク、それの対応するディスクドライブなどのデータ記憶装置１００７とを有する。データ記憶装置１００７は、情報及び命令を格納するためバス１０１１に接続されている。
【００８３】
コンピュータシステム１０００はさらに、コンピュータユーザに情報を表示するためバス１０１１に接続されたＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示装置１０２１に接続されてもよい。英数字及び他のキーを含む英数字入力装置１０２２が、情報及びコマンド選択をプロセッサ１０１２に通信するためバス１０１１に接続されてもよい。追加的なユーザ入力装置として、向き情報及びコマンド選択をプロセッサ１０１２に通信すると共に、ディスプレイ１０２１上のカーソルの動きを制御するためバス１０１１に接続された、マウス、トラックボール、トラックパッド、スタイラス、カーソル方向キーなどのカーソル制御１０２３がある。
【００８４】
バス１０１１に接続可能な他の装置として、用紙、フィルム、他の同様のタイプの媒体などの媒体に命令、データまたは他の情報を印刷するのに利用されるハードコピー装置１０２４がある。さらに、スピーカーやマイクロフォンなどの音声記録再生装置が、コンピュータシステム１０００との音声インタフェースをとるため、任意的にバス１０１１に接続されてもよい。バス１０１１に接続可能な他の装置として、電話や携帯型装置と通信する有線または無線通信機能がある。
【００８５】
ここで、システム１０００の何れかまたはすべてのコンポーネント及び関連するハードウェアが利用可能であるということに留意されたい。しかしながら、コンピュータシステムの他の構成は上記装置の一部またはすべてを備えることが可能であるということは理解されるであろう。
【００８６】
本発明の多数の変更及び改良が上記説明を読んだ後、当業者には明らかとなるであろうが、図示及び説明された実施例は本発明を限定するものとして解釈されるべきではない。各種実施例の詳細は、本発明の要部としてみなされる特徴のみを記載した請求項の範囲を限定するものではない。
【図面の簡単な説明】
【００８７】
【図１】図１は、機械可読コード（バーコードなど）の位置決定プロセスの一実施例のフロー図である。
【図２】図２は、ＪＰＥＧ２０００ファイルに対するバーコード処理システムの一実施例のデータフロー図である。
【図３】図３は、バーコード位置決定装置の一実施例のブロック図である。
【図４】図４は、ＪＰＥＧ２０００圧縮文書画像からバーコードを検出するプロセスの一実施例のフロー図である。
【図５】図５は、候補バーコード領域を取得するプロセスの一実施例のフロー図である。
【図６】図６は、初期領域を決定するプロセスの一実施例のフロー図である。
【図７】図７は、バーコードの検証及び精緻化のためのプロセスの一実施例のフロー図である。
【図８】図８は、上下境界を精緻化するプロセスの一実施例のフロー図である。
【図９】図９は、左右境界を精緻化するプロセスの一実施例のフロー図である。
【図１０】図１０は、一例となるコンピュータシステムのブロック図である。
【符号の説明】
【００８８】
２０１    スキャン文書画像
２０２    ＪＰＥＧ２０００エンコーダ
２０４    機械可読コード位置決定装置
２０６    ＪＰＥＧ２０００デコーダ
２０８    機械可読コードデコーダ
１０００  コンピュータシステム
１００４  メインメモリ
１００６  静的記憶装置
１００７  データ記憶装置
１０１２  プロセッサ
１０１１  バス
１０２１  ディスプレイ
１０２２  キーボード
１０２３  カーソル制御
１０２４  ハードコピー装置
１０２５  通信インタフェース
【図１】
2006174461.tif 000010
【図２】
2006174461.tif 000011
【図３】
2006174461.tif 000012
【図４】
2006174461.tif 000013
【図５】
2006174461.tif 000014
【図６】
2006174461.tif 000015
【図７】
2006174461.tif 000016
【図８】
2006174461.tif 000017
【図９】
2006174461.tif 000018
【図１０】
2006174461.tif 000019