(57)【要約】【課題】検出対象となる二次元コードの読み取り画像から的確にノイズを除去して正確な復号を行うこと。【解決手段】本発明は、検出対象となる二次元コードの画像を読み取る読取手段と、二次元コードの復号を実行し（ステップＳ１５）、復号できなかった場合には単位画素サイズの画素をノイズとして除去して再度復号を実行し（ステップＳ１２〜Ｓ１６）、さらに復号できなかった場合には単位画素サイズを順次拡大してノイズ除去を行って再度復号を実行する処理を復号が完了するまで繰り返す復号手段とを備える二次元コード検出システムである。【選択図】図４
2007213358.tif 000002
【特許請求の範囲】
【請求項１】
検出対象となる二次元コードの画像を読み取る読取手段と、
前記読取手段によって読み取った前記二次元コードの画像からその二次元コードを構成する最小単位を算出する算出手段と、
前記二次元コードの画像から前記最小単位より小さい画素をノイズとして除去し、ノイズ除去後の画像によって前記二次元コードの復号を行う復号手段と
を備えることを特徴とする二次元コード検出システム。
【請求項２】
前記算出手段では、前記二次元コードの画像を走査して、検出したＯＮ画素の連続画素数とＯＦＦ画素の連続画素数との比率によって前記最小単位を算出する
ことを特徴とする請求項１記載の二次元コード検出システム。
【請求項３】
検出対象となる二次元コードの画像を読み取る読取手段と、
前記読取手段によって読み取った前記二次元コードの画像から復号を実行し、復号できなかった場合には単位画素サイズの画素をノイズとして除去して再度復号を実行し、さらに復号できなかった場合には前記単位画素サイズを順次拡大してノイズ除去を行って再度復号を実行する処理を復号が完了するまで繰り返す復号手段と
を備えることを特徴とする二次元コード検出システム。
【請求項４】
検出対象となる二次元コードの画像を読み取るステップと、
前記二次元コードの画像からその二次元コードを構成する最小単位を算出するステップと、
前記二次元コードの画像から前記最小単位より小さい画素をノイズとして除去し、ノイズ除去後の画像によって前記二次元コードの復号を行うステップと
をコンピュータによって実行することを特徴とする二次元コード検出プログラム。
【請求項５】
検出対象となる二次元コードの画像を読み取るステップと、
前記二次元コードの復号を実行し、復号できなかった場合には単位画素サイズの画素をノイズとして除去して再度復号を実行し、さらに復号できなかった場合には前記単位画素サイズを順次拡大してノイズ除去を行って再度復号を実行する処理を復号が完了するまで繰り返すステップと
をコンピュータによって実行することを特徴とする二次元コード検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コードの画像を読み取って復号を行う二次元コード検出システムおよび二次元コード検出プログラムに関する。
【背景技術】
【０００２】
近年、バーコードは広く世の中で活用されている。その中でも表現できる情報量の多さから二次元コードの利用が広まっている（特許文献１、２参照）。例えば、紙の書類の記載内容を二次元コードに変換し、その紙文書の余白に二次元コードを追加しておくことで、その紙文書をスキャンしたときに、そのバーコードを認識して復号すれば、ＯＣＲなどを用いることなく、その文書の記載内容を電子データとして取得することが可能である。
【０００３】
二次元コードとして多く用いられるＱＲコードは情報量の多さとロバスト性の高さから、様々なワークフローで活用されている。ＱＲコードは階調表現を必要としないことから、ファクシミリを経由したワークフローでも利用可能である。
【０００４】
ここで、二次元コードは、一次元コード（バーコード）よりも表現できる情報量が大きいが、それでもその情報量には限界がある。大量の情報量をバーコードで表現する場合には、その情報を複数のバーコードに分割して表現するやり方がある（JIS-X-0510、p22、5.3.2.7、連結モードを参照。）。
【０００５】
二次元コードの代表例であるＱＲコードには３個の位置要素パターンがある。画像中からＱＲコードを検出するには、まず画像全体をスキャンして位置要素パターンを検出し、その位置要素パターンの中心座標を全て算出する（JIS-X-0510、p65〜p66を参照。）。例えばＱＲコードが一つであれば、位置要素パターンの中心座標は３個、ＱＲコードが４個あれば、位置要素パターンの中心座標は３×４＝１２個算出される。
【０００６】
この位置要素パターンは図７のように、左上に位置検出パターンＡ、右上に位置検出パターンＢ、左下に位置検出パターンＣが配置される。そして、これらの位置要素パターンＡ、Ｂ、Ｃの中心を頂点とする直角二等辺三角形を構成し、二次元コードの上下位置および回転を検出する。
【０００７】
【特許文献１】特開平６−１２５１５号公報
【特許文献２】特許第２９３８３３８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、ファクシミリ等のように比較的画質の悪い処理パスを経由する場合、ＱＲコードを含む紙面上に孤立点などのノイズが乗るケースが多い。ＱＲコードはエラー訂正技術により、ある程度のノイズが乗っても復号可能である（エラー訂正レベル：L/M/Q/H）。しかし、ＱＲコードの位置検出パターンの上にノイズが乗っている場合、正確に位置検出パターンが検出できず、結果としてそのＱＲコードを認識できず復号できないという不具合が生じる。
【０００９】
例えば、図８（ａ）に示す位置検出パターンにおいて、図８（ｂ）に示すようなノイズが乗っている場合、スキャン（図中横線）がノイズの位置にあたると位置検出パターンの比率を正確に算出することができず、ＱＲコードの復号を確実に行うことができない。
【００１０】
そこで、対策としてＱＲコード検出前に一般的なノイズ除去フィルタを画像データに施してノイズ除去を行うことが知られているが、ＱＲコードが微細な場合には、ＱＲコードの描画情報自体がノイズとして除去されてしまう不具合が生じる。
【００１１】
例えば、図９（ａ）に示すようなＱＲコードがあり、ノイズ除去フィルタによってノイズ除去を施すと、図９（ｂ）のようにノイズではないＱＲコードの情報部分を誤って除去してしまい、確実な復号ができなくなってしまう。
【課題を解決するための手段】
【００１２】
本発明はこのような課題を解決するために成されたものである。すなわち、本発明は、検出対象となる二次元コードの画像を読み取る読取手段と、読取手段によって読み取った二次元コードの画像からその二次元コードを構成する最小単位を算出する算出手段と、二次元コードの画像から最小単位より小さい画素をノイズとして除去し、ノイズ除去後の画像によって二次元コードの復号を行う復号手段とを備える二次元コード検出システムである。
【００１３】
このような本発明では、検出対象となる二次元コードの読み取り画像からその二次元コードの最小単位を算出しているため、この最小単位より小さい画素についてはノイズとして除去することができ、二次元コードの情報には影響を与えることなくノイズを確実に除去して復号を行うことができるようになる。
【００１４】
また、本発明は、検出対象となる二次元コードの画像を読み取る読取手段と、読取手段によって読み取った二次元コードの画像から復号を実行し、復号できなかった場合には単位画素サイズの画素をノイズとして除去して再度復号を実行し、さらに復号できなかった場合には単位画素サイズを順次拡大してノイズ除去を行って再度復号を実行する処理を復号が完了するまで繰り返す復号手段とを備える二次元コード検出システムでもある。
【００１５】
このような本発明では、検出対象となる二次元コードの読み取り画像から復号を行って、復号できなかった場合にはノイズの除去サイズを徐々に大きくしていき、復号できるまで繰り返すため、確実にノイズだけを除去して復号を行うことができる。
【００１６】
また、上記二次元コード検出方法をプログラム処理で実現することによって、二次元コードを検出する機能を備えた各種電子機器へ適用できるようになる。
【００１７】
ここで、二次元コードとしては、ＱＲコード、ＰＤＦ４１７、マキシコード（Maxi Code）、データマトリクス（Data Matrix）、といったものが挙げられ、二次元コードの特性（例えば、ＱＲコードでは最小画素単位であるモジュールサイズ）に応じたノイズ除去を行うことによって、二次元コードの描画内容に影響が出ないようなノイズ除去を実現できる。
【発明の効果】
【００１８】
したがって、本発明によれば、二次元コードの検出精度（復号精度）を向上させることが可能となり、例えばファクシミリといった高画質ではないワークフローで使用する場合にも確実に二次元コードを復号することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図に基づき説明する。
【００２０】
（システム全体の説明）
図１は、本実施形態に係る二次元コード検出方法を実行するシステムの構成図である。画像入力装置１はスキャナのような紙原稿を読み取り、ラスター画像データを生成する。画像入力装置１としては、デジタルカメラのような装置でもよい。メモリ２は画像入力装置１で取得されたラスター画像データを保持する。ＣＰＵ３はプログラムを読み込み二次元コードの検出処理および復号処理をソフトウエアで実行する。本発明に係る二次元コード検出方法は、ＣＰＵ３で実行可能なプログラムとして実現される。
【００２１】
本システムは、復号されたデータに基づいて、様々な処理を行う。例えば、復号されたデータがデータベースに蓄積された文書を識別するＩＤ番号（以下文書ＩＤ）だった場合には、文書ＩＤを検索キーとしてデータベース６に問い合わせを行い、その結果得られる文書データ本体を取得し、プリンタのような画像出力装置５を用いて文書データ本体をプリントする。あるいは得られた文書データ本体を、外部インタフェース４を経由してネットワーク経由で他のコンピュータに転送することもできる。
【００２２】
以下、各実施形態について説明するが、検出対象となる二次元コードとしてはＱＲコードを例として説明する。
【００２３】
（第１の実施形態）
第１の実施形態では、先ず、ＱＲコードの描画単位であるモジュールサイズ（最小単位）を予め指定することにより、除去するノイズのサイズをモジュールサイズより小さい値に設定する。これにより、ＱＲコード描画に影響を与えず、ノイズだけを除去することが可能となる。
【００２４】
ノイズ除去の方法は一般的な手法を用いても良いし、次のような方法でもよい。すなわち、モジュールサイズがＭ×Ｎ画素の場合、Ｍ×Ｎ画素のノイズ除去ウィンドウＷを開き（図２参照）、画像をスキャンしていく。ノイズ除去ウィンドウＷの内側の外周部の画素値が全て白（ＯＦＦ）の場合には、そのウィンドウの内部の画素値を全て白（ＯＦＦ）に変更する。
【００２５】
例えば、図３（ａ）に示すような２つの画素ブロックＢ１、Ｂ２があった場合、図３（ｂ）に示すようにノイズ除去ウィンドウＷを重ねると、図中左側の画素ブロックＢ１はノイズ除去ウィンドウＷの内側の外周部の画素値が全て白となる。つまりノイズ除去ウィンドウＷの中に画素ブロックＢ１が含まれることから、この画素ブロックＢ１の値を白に変更する。
【００２６】
一方、図３（ｂ）の右側に示す画素ブロックＢ２はノイズ除去ウィンドウＷを重ねた場合、ノイズ除去ウィンドウＷの内側の外周部の画素値に黒が含まれるため、画素値の変更を行わない。このように、ノイズ除去ウィンドウＷを用いることでこのウィンドウより小さい画素ブロックはノイズとして除去され、図３（ｃ）に示すように左側の画素ブロックが除去され、右側の画素ブロックＢ２のみが残る状態となる。
【００２７】
ここで、ＱＲコードのモジュールサイズが既知の場合には、ノイズ除去時にモジュールサイズをパラメータとして与える。例えばワークフローの条件として「モジュールサイズ３ドット以上のＱＲコードに対応する」といった設定が成されることがある。その場合には、３×３画素未満の孤立点をノイズとして除去する。そして、ノイズ除去後にＱＲコードの検出および復号処理を行う。
【００２８】
（第２の実施形態）
第２の実施形態は、検出対象となるＱＲコードのモジュールサイズが分からない場合でも、的確にノイズ除去を行って復号できる検出方法である。先ず、読み取ったＱＲコードの画像についてノイズ除去無しでＱＲコードの検出を行い、良好に復号できればそのまま処理を終了する。
【００２９】
一方、復号出来なかった場合には、ノイズ除去サイズを１×１画素に設定してノイズ除去を行い、再度検出および復号処理を行う。それでも出来ない場合には除去するノイズのサイズを順次拡大していき、復号できるまで繰り返す。
【００３０】
図４は、第２の実施形態に係る検出処理を説明するフローチャートである。先ず、除去するノイズサイズをＭ＝０に初期化する（ステップＳ１１）。次いで、ノイズ除去（ステップＳ１２）、ＱＲコード検出（ステップＳ１３）、ＱＲコード復号（ステップＳ１４）を行うが、ノイズサイズがＭ＝０の場合には実質的にノイズ除去は行われない。
【００３１】
この状態でＱＲ復号できたか否かを判断し（ステップＳ１５）、復号できている場合には処理を終了し、復号できなかった場合には除去するノイズサイズをＭ＝Ｍ＋１によって１つ拡大し（ステップＳ１６）、ノイズ除去を行う（ステップＳ１２）。その後、ノイズ除去した画像によってＱＲコード検出（ステップＳ１３）、ＱＲコード復号（ステップＳ１４）を行い、ＱＲ復号できた場合には処理を終了する。
【００３２】
一方、ここでもＱＲ復号できなかった場合には再度除去するノイズサイズを１つ拡大し（ステップＳ１６）、ノイズ除去（ステップＳ１２）、ＱＲコード検出（ステップＳ１３）、ＱＲコード復号（ステップＳ１４）を行う。このように、ＱＲ復号できるまでノイズサイズを順次拡大することで、モジュールサイズが不明でも確実にノイズ除去してＱＲ復号できることになる。
【００３３】
なお、上記の例では、ＱＲ復号処理まで行ってノイズ除去を再度行うか否かの判断を行ったが、ノイズ除去後にＱＲ検出のみを行い、ＱＲ検出の可否でノイズ除去を再度行うか否かを判断してもよい。図５は、ＱＲ検出の可否でノイズ除去を判断する場合のフローチャートである。先ず、除去するノイズサイズの初期化（ステップＳ２１）、ノイズ除去（ステップＳ２２）、ＱＲコード検出（ステップＳ２３）までは、図４に示すステップＳ１１〜１３と同じである。その後、ＱＲコードの検出ができたか否かを判断し（ステップＳ２４）、できている場合にはそのままＱＲコードの復号処理を行う（ステップＳ２５）。
【００３４】
一方、ＱＲコードの検出ができなかった場合は、除去するノイズサイズをＭ＝Ｍ＋１によって１つ拡大し（ステップＳ２６）、ノイズ除去を行う（ステップＳ２２）。その後、ノイズ除去した画像によってＱＲコード検出（ステップＳ２３）ＱＲ検出できた場合にはＱＲコード復号を行う（ステップＳ２５）。
【００３５】
また、ここでもＱＲ検出できなかった場合には再度除去するノイズサイズを１つ拡大し（ステップＳ２６）、ノイズ除去（ステップＳ２２）、ＱＲコード検出（ステップＳ２３）を行う。このように、ＱＲ検出できるまでノイズサイズを順次拡大することで、モジュールサイズが不明でも確実にノイズ除去してＱＲ復号できることになる。
【００３６】
図５に示す処理では、ＱＲ検出が成功した場合にだけＱＲ復号を行うことから、処理の高速化を図ることが可能となる。
【００３７】
（第３の実施形態）
第３の実施形態は、検出対象となるＱＲコードのモジュールサイズが分からない場合でも、ノイズ除去処理前にモジュールサイズを検出し、的確にノイズ除去を行って復号できる検出方法である。
【００３８】
すなわち、ＱＲコードのモジュールサイズが未知の場合には、ノイズ除去の前にモジュールサイズを推定する処理が必要になる。モジュールサイズを推定するには、読み取ったＱＲコードの画像を水平方向にスキャンして画素値の変動波形を得る。この波形にＬＰＦ（ローパスフィルタ）を施してから、所定のしきい値で波形をクリップ（＝二値化）して、白黒変動の画素数をカウントする。
【００３９】
図６は、モジュールサイズの検出を説明する模式図である。この図に示す例では、２４画素（２４Byte）分のデータからモジュールサイズの検出を行っており、先ず、取り込んだ画像から変動波形を求め（図６（ａ）参照）、ＬＰＦを施して孤立点を除去する（図６（ｂ）参照）。そして、この波形から得られる画素数の比率が１：１：３：１：１となる箇所の画素数から比率１となる画素数を求め、これをモジュールサイズとして推定する。そして、このモジュールサイズによって図２に示すノイズ除去ウィンドウＷを設定し、ノイズ除去を行い、ノイズ除去後の画像によってＱＲ復号を実行する。
【００４０】
これにより、検出対象となるＱＲコードのモジュールサイズが不明であっても、スキャンによってモジュールサイズを推定して、的確かつ高速にノイズ除去を行って正確なＱＲコードの復号処理を行うことが可能となる。
【産業上の利用可能性】
【００４１】
上記説明した実施形態では、二次元コードとしてＱＲコードを例としたが、本発明はこれに限定されず、各種の二次元コード（例えば、ＰＤＦ４１７、マキシコード（Maxi Code）、データマトリクス（Data Matrix））に適用可能である。また、本発明の二次元コード検出システムおよび二次元コード検出プログラムは、携帯電話や携帯端末などカメラを備えた小型機器のほか、複写機等の画像形成装置でも適用でき、また二次元コード検出プログラムは所定の記憶媒体に格納して配布したり、ネットワークを介して配信することも可能である。
【図面の簡単な説明】
【００４２】
【図１】本実施形態に係る二次元コード検出方法を実行するシステムの構成図である。
【図２】ノイズ除去ウィンドウを説明する模式図である。
【図３】ノイズ除去ウィンドウによるノイズ除去を説明する模式図である。
【図４】第２の実施形態に係る検出処理を説明するフローチャートである。
【図５】ＱＲ検出の可否でノイズ除去を判断する場合のフローチャートである。
【図６】モジュールサイズの検出を説明する模式図である。
【図７】位置検出パターンを説明する模式図である。
【図８】位置検出パターンにノイズが乗っている場合を説明する模式図である。
【図９】ノイズ除去フィルタによるノイズ除去を説明する模式図である。
【符号の説明】
【００４３】
１…画像入力装置、２…メモリ、３…ＣＰＵ、４…外部インタフェース、５…画像出力装置、６…データベース、Ｗ…ノイズ除去ウィンドウ
【図１】
2007213358.tif 000003
【図２】
2007213358.tif 000004
【図３】
2007213358.tif 000005
【図４】
2007213358.tif 000006
【図５】
2007213358.tif 000007
【図６】
2007213358.tif 000008
【図７】
2007213358.tif 000009
【図８】
2007213358.tif 000010
【図９】
2007213358.tif 000011