説明

情報コード読取装置

【課題】情報コードの印字状態を適切に把握し、印字状態に適したフィルタ処理を行い得る情報コード読取装置を提供する。
【解決手段】情報コード読取装置は、情報コードを撮像(S1)して得られた画像について、二値化(S2)後の暗色エリアの幅値についての幅値度数分布を検出(S4、S5)し、更に、その検出された幅値度数分布の分布特徴を検出(S6)している。また、当該画像において、線切れ度合及び暗色セルの太さ度合を検出(S8、S7)し、それら、分布特徴、線切れ度合、太さ度合、に応じた種別のフィルタを選択している。そして、その選択されたフィルタを用いてフィルタ処理(画像処理)S9を行っている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【0002】
現在、様々な分野において、バーコードやQRコードなどの情報コードが広く用いられている。この種の情報コードは、プリンタによる印刷や、ダイレクトマーキングなどによって様々な対象物に付されており、他方、このような情報コードを光学的に読み取る装置として、バーコードリーダ等の情報コード読取装置が広く用いられている。
【特許文献1】特開2004−21736公報
【特許文献2】特開2002−74258公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上記のような情報コード読取装置では、情報コードを撮像したときの撮像画像が印字状態や撮像状態の影響を受けやすいという問題があり、場合によっては、撮像画像に情報コードを構成する要素以外のノイズが多く含まれてしまう場合がある。例えばダイレクトマーキングによって形成される情報コードでは、印字面の凹凸やキズなどがノイズとして撮像画像に含まれやすく、このようなノイズは情報コードの読み取りに多大な影響を及ぼしてしまう。
【0004】
上記のような画像不良は読取精度低下の一因となるため、適切な対処が求められ、その対策としてはフィルタ処理が有効である。例えば、ノイズが数多く存在する画像データであっても、適切なのフィルタ処理を行うことで画像状態を改善できる場合があり、これにより、読取不良とされた画像データを読取可能なものとできる場合がある。なお、画像データに対してフィルタ処理を行い、画像状態を改善する技術としては例えば特許文献2のようなものがある。
【0005】
しかしながら、上記のようなフィルタ処理を行う場合、適切なフィルタを如何に選択するかが問題となる。即ち、情報コードの画像に対してフィルタ処理を行う場合、その対象画像の状態に応じた適切なフィルタを選択することが望ましいが、特許文献2や他の従来技術では、画像状態を的確に把握し、画像状態に適したフィルタを選択するといった方法は提供されていなかった。
【0006】
本発明は、上述した課題を解決するためになされたものであり、情報コードの印字状態を適切に把握し、印字状態に適したフィルタ処理を行い得る情報コード読取装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
請求項1の発明は、情報コードを撮像する撮像手段と、前記撮像手段にて撮像された前記情報コードの画像データを記憶する記憶手段と、前記記憶手段に記憶される前記画像データを処理する画像処理手段と、前記画像処理手段による処理後の前記画像データについてデコード処理を行うデコード手段と、を備えた情報コード読取装置として構成される。
更に、前記画像データによって構成される画像について、二値化後の明色エリア又は暗色エリアの幅値についての幅値度数分布を検出する度数分布検出手段と、前記度数分布検出手段によって検出された前記幅値度数分布の分布特徴を検出する分布特徴検出手段と、前記画像データによって構成される前記画像について、明色セル又は暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示す線切れ度合、及び、明色セル又は暗色セルの太さ度合、の少なくともいずれかの度合を検出する度合検出手段と、を備えている。
そして、前記画像処理手段は、前記画像データに対し、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段による度合検出結果と、に基づくフィルタ処理を行う構成をなしている。
【0008】
請求項2の発明は、請求項1に記載の情報コード読取装置において、更に、前記画像データによって構成される前記画像内において前記情報コードが存在するコード領域を検出する領域検出手段が設けられている。
そして、前記度数分布検出手段は、前記領域検出手段にて検出された前記コード領域において前記幅値度数分布を検出し、前記分布特徴検出手段は、前記度数分布検出手段によって検出された前記コード領域の前記幅値度数分布に基づいて前記分布特徴を検出し、前記度合検出手段は、前記領域検出手段にて検出された前記コード領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、前記画像処理手段は、前記コード領域における前記幅値度数分布と、前記コード領域における前記線切れ度合及び前記太さ度合の少なくともいずれかの度合と、に基づいて前記画像データに対し前記フィルタ処理を行う構成をなしている。
【0009】
請求項3の発明は、請求項1又は請求項2に記載の情報コード読取装置において、前記度合検出手段が、前記線切れ度合及び前記太さ度合をいずれも検出する構成をなしている。更に、前記画像処理手段は、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段によって検出された前記線切れ度合及び前記太さ度合に基づいてフィルタ種類を選択し、その選択されたフィルタ種類の前記フィルタ処理を行う構成をなしている。
【0010】
請求項4の発明は、請求項1から請求項3のいずれか一項に記載の情報コード読取装置において、前記度数分布検出手段が、前記幅値度数分布に加え、前記画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出する構成をなしている。更に、前記分布特徴検出手段は、前記幅値度数分布と前記反転後度数分布とに基づいて、前記幅値度数分布の前記分布特徴を検出する構成をなしている。
【0011】
請求項5の発明は、請求項4に記載の情報コード読取装置において、前記分布特徴検出手段が、前記幅値度数分布のピーク状態と、前記反転後度数分布のピーク状態との一致状態を検出する構成をなしている。
【0012】
請求項6の発明は、請求項1から請求項5のいずれか一項に記載の情報コード読取装置において、前記度合検出手段が、前記情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、前記太さ度合として、前記明色単位サイズと前記暗色単位サイズとの比率を算出する構成をなしている。
【0013】
請求項7の発明は、請求項1から請求項6のいずれか一項に記載の情報コード読取装置において、更に、前記情報コードの規定パターンを検出する規定パターン検出手段が設けられている。また、前記度合検出手段は、前記規定パターン検出手段によって検出された前記規定パターンの領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかの度合を検出する構成をなしている。
【0014】
請求項8の発明は、請求項7に記載の情報コード読取装置において、前記規定パターン検出手段が、前記撮像手段によってQRコードが撮像されたときに、前記QRコードのファインダパターンを検出するファインダパターン検出手段を有している。また、前記度合検出手段は、前記ファインダパターン検出手段にて前記ファインダパターンが検出された場合、その検出された前記ファインダパターン内の前記明色セル又は前記暗色セルに基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【0015】
請求項9の発明は、請求項7に記載の情報コード読取装置において、前記規定パターン検出手段が、前記撮像手段によってデータマトリックスコードが撮像されたときに、前記データマトリックスコードの外周部に配置されるべきL字型パターンを検出するL字型パターン検出手段を有している。また、前記度合検出手段は、前記L字型パターン検出手段によって前記L字型パターンが検出された場合、その検出された前記L字型パターンの状態に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【0016】
請求項10の発明は、請求項7から請求項9のいずれか一項に記載の情報コード読取装置において、前記度合検出手段は、前記規定パターン検出手段によって前記規定パターンが検出されない場合、前記分布特徴検出手段によって検出された前記分布特徴に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出する構成をなしている。
【0017】
請求項11の発明は、請求項1から請求項10のいずれか一項に記載の情報コード読取装置において、前記デコード手段が、前記画像処理手段による前記フィルタ処理後の前記画像データについて前記デコード処理を行う構成をなしており、前記度数分布検出手段は、前記フィルタ処理後の前記画像データの前記デコード処理が失敗した場合、前記フィルタ処理後の前記画像データによって構成される処理後画像における処理後明色エリア又は処理後暗色エリアの幅値についての処理後度数分布を検出する構成をなしている。
更に、前記分布特徴検出手段は、前記処理後度数分布についての処理後分布特徴を検出し、前記度合検出手段は、前記処理後画像について前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、前記画像処理手段は、前記処理後分布特徴と、前記処理後画像についての前記度合検出手段による度合検出結果とに基づいて、前記処理後画像に対し再度のフィルタ処理を行う構成をなしている。
【0018】
請求項12の発明は、請求項1から請求項11のいずれか一項に記載の情報コード読取装置において、前記度数分布検出手段が、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記幅値度数分布を検出する構成をなし、更に、前記度合検出手段が、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記線切れ度合及び太さ度合の少なくともいずれかの度合を検出する構成をなしている。
【発明の効果】
【0019】
請求項1の発明は、情報コードの画像について、二値化後の明色エリア又は暗色エリアの幅値について幅値度数分布を検出し、更に、その幅値度数分布の分布特徴を検出している。また、その情報コードの画像について、線切れ度合及び太さ度合の少なくともいずれかの度合を検出しており、その度合検出結果と、上記幅値度数分布の分布特徴とに基づいてフィルタ処理を行うようにしている。
本発明のように、幅値度数分布の分布特徴を検出することで、画像が適切な分布状態であるか、或いはどのように画像不良が生じているか、等を適切に把握できる。更に、このような分布特徴だけでなく、線切れ度合あるいは太さ度合をも検出することで、情報コードの画像状態を2以上の尺度で多面的に確認できる。そして、このように画像状態をより詳細且つ具体的に把握した上でフィルタ処理を行うようにすれば、情報コードの印字状態により適したフィルタ処理を迅速に行うことができ、ひいては読取精度の向上、読取処理の迅速化を効果的に図ることができる。
【0020】
請求項2の発明は、撮像画像内において情報コードが存在するコード領域を検出し、その検出されたコード領域において、幅値度数分布の分布特徴、及び線切れ度合及び前記太さ度合の少なくともいずれかを検出している。このようにすると、読み取りに必要な範囲について幅値度数分布検出、分布特徴検出、度合検出を行うことができ、画像状態の詳細な把握を適切な範囲で迅速に行うことができる。
【0021】
請求項3の発明では、線切れ度合及び前記太さ度合をいずれも検出し、それら検出された線切れ度合及び太さ度合に基づいてフィルタ種類を選択している。線切れ度合は平滑化処理を行うべきか否かの重要な指標となり、太さ度合は、膨張処理や収縮処理を行うべきか否かの重要な指標となるため、線切れ度合及び太さ度合のいずれをも考慮してフィルタを選択するようにすれば、より適切なフィルタを迅速に選択できる。
【0022】
請求項4の発明は、幅値度数分布に加え、画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出している。そして、幅値度数分布と反転後度数分布とに基づいて、幅値度数分布の分布特徴を検出している。
このように、通常の幅値度数分布だけでなく、反転後度数分布をも検出することで、画像状態をより多面的に確認でき、これら両度数分布を考慮してフィルタ選択処理を行うようにすれば、より一層適切なフィルタを選択できるようになる。
【0023】
請求項5の発明は、幅値度数分布のピーク状態と、反転後度数分布のピーク状態との一致状態を検出している。情報コードの画像において線切れがあまり生じていない場合には、幅値度数分布と反転後度数分布のピークが一致するため、両度数分布のピーク一致状態を「分布特徴」として検出した上でフィルタ処理を行うようにすれば、コード画像の線切れ度合を考慮して適切なフィルタ処理を行うことができる。
【0024】
請求項6の発明では、情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、太さ度合として、明色単位サイズと暗色単位サイズとの比率を算出している。このようにすると、コード画像における明色セル又は暗色セルの太さ度合を精度高く迅速に検出できる。
【0025】
請求項7の発明では、検出された規定パターンの領域において、線切れ度合及び太さ度合の少なくともいずれかの度合を検出している。予め形状が定められた規定パターンの領域では、どの部分がどの程度の幅であるべきか、或いは、どの部分がセルが連続すべき部分であるべきか等を特定しやすく、線切れ度合や太さ度合を迅速且つ的確に検出できる。
【0026】
請求項8の発明では、情報コードがQRコードである場合に、ファインダパターン内の明色セル又は暗色セルに基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。ファインダパターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、ファインダパターンは、QRコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【0027】
請求項9の発明は、情報コードがデータマトリックスコードである場合に、L字型パターンの状態に基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。L字型パターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、L字型パターンは、データマトリックコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【0028】
請求項10の発明は、規定パターンが検出されない場合、分布特徴検出手段によって検出された分布特徴に基づいて線切れ度合及び太さ度合の少なくともいずれかを検出している。このようにすると、規定パターンが検出されない場合であっても、次善の策として、分布特徴に基づいて線切れ度合或いは太さ度合を把握することができ、画像状態の詳細且つ具体的な把握を担保できる。
【0029】
請求項11の発明は、画像処理手段によるフィルタ処理後の画像データについてデコード処理を行い、そのデコード処理が失敗した場合、フィルタ処理後の処理後画像における明色エリア(処理後明色エリア)又は暗色エリア(処理後暗色エリア)の幅値についての処理後度数分布を検出している。そして、その処理後度数分布についての分布特徴(処理後分布特徴)を検出し、この処理後分布特徴と、処理後画像についての度合検出結果と、に基づいて、処理後画像に対し再度のフィルタ処理を行っている。
このようにすると、撮像画像の状態に応じたフィルタ処理を行ってもデコードが成功しなかった場合に、その失敗した画像(処理後画像)を詳細且つ具体的に把握した上で、その処理後画像に適したフィルタ処理を再度行うことができ、読取成功確率を効果的に高めることができる。
【0030】
請求項12の発明は、撮像手段から記憶手段に送られる記憶前の画像データに基づいて幅値度数分布を検出し、その記憶前の画像データに基づいて線切れ度合及び太さ度合の少なくともいずれかの度合を検出している。このようにすると、画像データを記憶手段に取り込む前に当該画像データの画像状態を確認できるため、画像状態の確認の迅速化、ひいては読取処理の迅速化を効果的に図ることができる。
【発明を実施するための最良の形態】
【0031】
[第1実施形態]
以下、第1実施形態に係る情報コード読取装置について図面を参照しつつ説明する。
図1は、第1実施形態に係る情報コード読取装置の電気的構成を例示するブロック図であり、図2は、図1の情報コード読取装置で行われる読取処理を例示するフローチャートである。また、図3(a)は、コード領域における暗色エリアの幅値度数分布を検出するための走査について説明する説明図であり、図3(b)は、反転画像における明色エリアの幅値の度数分布(反転後幅値度数分布)を検出するための走査について説明する説明図である。また、図4(a)は、幅値度数分布の一例を示すグラフであり、図4(b)は、反転後度数分布の一例を示すグラフである。図5(a)は、幅値度数分布についての図4(a)とは異なる例を示すグラフであり、図5(b)は、反転後度数分布についての図4(b)とは異なる例を示すグラフである。図6(a)は、QRコードにおける太さ度合及び線切れ度合の検出方法を説明する説明図であり、図6(b)は、線切れ度合の検出方法について、図6(a)とは異なる例を示す説明図である。図7は、分布特徴、太さ度合、線切れ度合に基づいてフィルタを選択する方法を例示する説明図である。図8は、平滑フィルタについて説明する説明図である。
【0032】
(全体構成)
まず、図1等を参照して本実施形態に係る情報コード読取装置の全体構成について説明する。図1に示すように、本実施形態に係る情報コード読取装置1は、一次元コード、二次元コード等の情報コードQを読み取るコードリーダとして構成されるものであり、図示しないケースによって外郭が構成され、このケース内に各種電子部品が収容された構成をなしている。
【0033】
この情報コード読取装置1は、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系と、電源スイッチ41、電池49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース(図示略)内に内装されている。
【0034】
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ケースに形成された読取口(図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。この読取対象物Rとしては、例えば、樹脂材料、金属材料等の様々な対象が考えられ、このような読取対象物Rに情報コード(図1ではQRコードQ)が印刷、ダイレクトマーキングなどによって形成されている。なお、以下の説明では、情報コードとしてQRコードQを例示して説明するが、データマトリックコードやマキシコードなどの他の二次元コードに置き換えてもよい。
【0035】
受光センサ23は、読取対象物RやQRコードQに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。この受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光可能に図略のプリント配線板に実装されている。なお、受光センサ23は、「撮像手段」の一例に相当する。
【0036】
フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口(図示略)と結像レンズ27との間に設けられている。これにより、反射光Lrの波長相当を超える不要な光が受光センサ23に入射することを抑制している。また、結像レンズ27は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口(図示略)に入射する反射光Lrを集光し、受光センサ23の受光面23aにQRコードQのコード画像を結像するように構成されている。
【0037】
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、マイコン(情報処理装置)として機能し得る制御回路40及びメモリ35を中心として構成され、前述した光学系によって撮像されたQRコードQの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【0038】
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力され、当該メモリ35の画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0039】
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。なお、メモリ35は、「記憶手段」の一例に相当し、受光センサ23にて撮像されたQRコードQの画像データを記憶するように機能する。
【0040】
制御回路40は、情報コード読取装置1全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるものであり、情報処理機能を有している。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)が接続されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が接続されている。また、通信インタフェース48には、情報コード読取装置1の上位システムに相当するホストコンピュータHSTなどを接続できるようになっている。
【0041】
電源系は、電源スイッチ41、電池49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、電池49から供給される駆動電圧の導通や遮断が制御されている。なお、電池49は、所定の直流電圧を発生可能な2次電池で、例えば、リチウムイオン電池等がこれに相当する。
【0042】
(読取処理)
次に、情報コード読取装置1で行われる読取処理について説明する。
図2に示す読取処理では、まず、処理開始に伴い画像取得処理を行う(S1)この画像取得処理では、QRコードQの画像データを取得し、メモリ35に記憶する。QRコードQの画像データは、受光センサ23の各受光素子に対応する画素データの集合として構成される。
【0043】
S1の後には、S1で取得した画像データに対して公知の二値化処理を行う(S2)。この二値化処理では、各画素データの濃度値を所定の閾値と比較して明色画素と暗色画素とに区別する。
【0044】
S2で二値化処理を行った後には、S2で得られた二値化後の画像データについてラベリング処理を行う(S3)。このラベリング処理は、S2で得られた二値化後の画像データによって構成される画像内において情報コードが存在するコード領域(コードらしさ)を検出する処理であり、公知の様々なコード領域検出処理のいずれを採用してもよい。なお、本実施形態では、制御手段40が「領域検出手段」の一例に相当する。
【0045】
その後、S4の度数分布検出処理を行う。S4は、S3ラベリング処理にて検出されたコード領域において幅値度数分布を検出する処理であり、図3(a)に概念的に示すように、S3で得られた二値化後のコード領域(ラベリング領域)において、所定方向(例えば横方向)に走査し、暗色画素が走査方向に連続してなる各暗色エリアを検出すると共に、各暗色エリアの幅値(連続セル数)を求め、幅値毎の度数分布(幅値度数分布)を生成する。なお、本実施形態では、コード領域(ラベリング領域)において横方向に並ぶ画素ライン(横ライン)全てについて走査し、コード領域の全走査ラインに含まれる各暗色エリアの幅値を取得し、度数分布を生成している。
【0046】
図4(a)は、S4の処理で得られる幅値度数分布の一例をグラフによって可視化して示すものである。本実施形態では、画素数によって幅値が示されており、画素1つ分が最小幅値(幅値1)であり、画素2つ分がその次のサイズの幅値(幅値2)、画素3つ分が更にその次のサイズの幅値(幅値3)といったように示されている。なお、最小幅値(幅値1)の度数とは、走査方向に連続しない単一暗色画素の度数(検出数)を示しており、その次の幅値(幅値2)の度数とは、暗色画素が走査方向に2つ連続してなる暗色エリアの度数(検出数)を示している。また、幅値3以上の各幅値の度数も同様であり、例えば、幅値3の度数とは暗色画素が走査方向に3つ連続してなる暗色エリアの度数(検出数)を示している。
【0047】
なお、本実施形態では、制御回路40が、「度数分布検出手段」の一例に相当し、QRコードQの画像データによって構成される画像において、二値化後の暗色エリアの幅値についての幅値度数分布を検出するように機能する。
【0048】
S4にて暗色エリアの幅値度数分布を生成した後には、S3で得られたコード領域の画像の明暗を反転した画像(明暗反転画像)において、明色エリア(反転後明色エリア)についての度数分布(反転後度数分布)を検出する処理を行う(S5)。具体的には、図3(b)のように、S3で得られた二値化後のコード領域(ラベリング領域)の反転画像を生成した後、図3(b)の矢印にて概念的に示すように、所定方向(例えば横方向)に走査し、明色画素が走査方向に連続してなる各明色エリアを検出する。そして、それら各明色エリアの幅値(連続画素数)を求め、幅値毎の度数分布(反転後度数分布)を生成する。なお、この処理でも、対象画像(コード領域の反転画像)において横方向に並ぶ画素ライン(横ライン)全てについて走査し、当該反転画像の全走査ラインに含まれる各明色エリアの幅値を取得し、度数分布を生成する。
【0049】
図4(b)は、S5の処理で得られる度数分布(反転後度数分布)の一例をグラフによって可視化して示すものであり、この例でも、画素数によって幅値が示されており、画素1つ分が最小幅値(幅値1)であり、画素2つ分がその次のサイズの幅値(幅値2)、画素3つ分が更にその次のサイズの幅値(幅値3)といったように示されている。
【0050】
次に、S4で得られた幅値度数分布の分布特徴を検出する処理を行う(S6)。この分布特徴検出処理は、S4で得られた幅値度数分布がどのような特徴を有しているかを検出する処理であり、まず、S4で得られた幅値度数分布において所定の小サイズの総度数が大きいか否かを確認する。「所定の小サイズ」は、例えば特定画素数以下のサイズであってもよく、単位セルサイズ以下のサイズ(即ち、単位セルサイズと推定されるピーク画素数(図5(a)では「5」)以下のサイズ)などであってもよい。
【0051】
「所定の小サイズ」の総度数が大きいか否かの判断は、当該「所定の小サイズ」の総度数が予め規定された閾値(度数閾値)以上か否かに基づいて判断してもよく、当該「所定の小サイズ」の総度数が全度数に対して所定割合以上であるか否かに基づいて判断してもよい。
【0052】
例えば、「所定の小サイズ」を画素数N以下のサイズ(即ち、幅値N以下のサイズ)とした場合、画素数N以下の総度数と、予め規定された度数閾値とを比較し、画素数N以下の総度数が当該度数閾値以上である場合に「所定の小サイズの総度数が大きい」と判断する。或いは、画素数N以下の総度数が、S4で得られた幅値度数分布の全度数に対して所定割合以上(例えば30%以上)である場合に、「所定の小サイズの総度数が大きい」と判断する。
【0053】
上記判断により「所定の小サイズの総度数が大きい」とされた場合には、その旨の情報をメモリ35に記憶しておく。なお、この情報は後述するフィルタ選択処理(S9)で利用される。
【0054】
更に、S4で得られた幅値度数分布のピーク状態と、S5で得られた反転後度数分布のピーク状態との一致状態を検出する処理を行う。ピークの一致状態を判断する方法は様々に考えうるが、例えば、図4(a)のような幅値度数分布において、検出度数が最大値となっている幅値を検出すると共に、図4(b)のような反転後度数分布において、検出度数が最大値となっている幅値を検出し、それら幅値が一致するか否かを判断する。
【0055】
図4(a)では、検出度数が最大値となっている幅値が「7」であり、図4(b)でも、最大値となっている幅値が「7」であるので、ピーク状態が互いに一致すると判断される。このような場合、ピーク状態が互いに一致する旨の情報をメモリ35に記憶しておく。
【0056】
他方、図5(a)(b)では、S4で得られた幅値度数分布において検出度数が最大値となっている幅値が「5」であり、S5で得られた反転後幅値度数分布においては、最大値となっている幅値が「11」であるため、ピーク状態が互いに一致しないと判断される。このような場合には、ピーク状態が互いに一致しない旨の情報をメモリ35に記憶しておく。
【0057】
このようにして、S4で得られた幅値度数分布の分布特徴を検出する。なお、本実施形態では、制御回路40が、「分布特徴検出手段」の一例に相当し、S4で得られた幅値度数分布の分布特徴を検出するように機能する。
【0058】
S6の処理の後には、コード画像内の暗色セルの「太さ度合」を検出する処理を行う(S7)。この処理は、S3で得られたコード領域において暗色セルとされるべき領域を検出し、暗色セルの太さ度合を算出する処理であり、まず、S3で得られたコード領域において規定パターンを検出する処理を行う。例えば、図3(a)のようQRコードが撮像される場合、当該QRコードについて公知のファインダパターン検出処理を行い、いずれかのファインダパターンFPを検出する。そして、その検出されたファインダパターンFP内、或いはファインダパターンFPに近接する他の規定パターンにおいて暗色セルの太さ度合を検出する。
【0059】
暗色セルの太さ度合の検出方法は様々に考えうるが、本実施形態では、明色単位セルとして構成されるべき領域のサイズ(明色単位サイズ)と、暗色単位セルとして構成されるべき領域のサイズ(暗色単位サイズ)とを検出し、それら明色単位サイズと暗色単位サイズとの比率を算出する方法を用いている。図6の例では、QRコードのタイミングパターンにおいて、いずれかの暗色単位セルの幅値Lbと、いずれかの明色単位セルの幅値Lwとを検出し、その比率Lb/Lwを「太さ度合」として算出している。
【0060】
S7の後には、S3で得られたコード画像において「線切れ度合」を検出する処理を行う(S8)。この「線切れ度合」とは、即ち、暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示すものであり、例えば、上記のように検出されたファインダパターンFP(規定パターン)内の暗色セルに基づき、図6(a)のように検出する。
【0061】
図6(a)の例では、ファインダパターンFPにおいて暗色セルが連続すべき領域(例えば、ファインダパターンFPの外周部領域)を特定し、断続的に形成されている暗色部のいずれかの長さbと、それに隣接する明色部の長さwとを求め、それら合計(b+w)に対する暗色部bの比(線切れ比b/(b+w))を「線切れ度合」として算出している。なお、暗色セルが断続的に形成されておらず、暗色部間に明色部が介在していない場合(即ち、線切れが生じていない場合)にはw=0とする(この場合、線切れ比は1となる)。
【0062】
なお、本実施形態では、制御回路40が「規定パターン検出手段」「ファインダパターン検出手段」の一例に相当する。また、制御回路40は、「度合検出手段」の一例に相当し、上記「線切れ度合」及び「太さ度合」を検出する機能を有する。
【0063】
S8の処理の後には、S1の処理で取得された画像データに対してフィルタ処理を行う(S9)。このフィルタ処理では、まず、S6で検出された分布特徴、S7で検出された太さ度合、及びS8で検出された線切れ度合に基づいてフィルタ種別を選択する処理を行い、その後、その選択された種別のフィルタを用いた画像処理を行う。
【0064】
具体的には、例えば、図7のようにフィルタ種別を選択する。
図7の例では、S6の分布特徴検出処理において、「所定の小サイズの総度数が大きい」と判断される場合、又はS8で得られた線切れ度合が1未満である場合(即ち、線切れが発生している場合)、平滑フィルタを選択するように設定されている。なお、この例では、いずれかの条件を満たす場合に平滑フィルタを選択しているが、両条件を満たす場合、(即ち、S6で「所定の小サイズの総度数が大きい」と判断され、かつS8で得られた線切れ度合が1未満である場合(即ち、線切れが発生している場合)に平滑フィルタを選択するようにしてもよい。
【0065】
また、S6の処理において、「S4の幅値度数分布のピーク状態とS5の反転後度数分布のピーク状態とが互いに一致しない」とされ、S7で検出された太さ度合が第1閾値(例えば0.8)未満である場合、膨張フィルタを選択する。
【0066】
また、S6の処理において「S4の幅値度数分布のピーク状態とS5の反転後度数分布のピーク状態とが互いに一致しない」とされ、S7で検出された太さ度合が第2閾値(例えば1.2)を超えている場合、収縮フィルタを選択する。
【0067】
上記のようにフィルタ種別が選択された場合には、その選択された種別のフィルタを用いてフィルタ処理(画像処理)を行う。なお、本実施形態では、制御回路4が「画像処理手段」の一例に相当し、メモリ35記憶される画像データ(即ち、情報コードを撮像した撮像データ)を処理する機能を有する。
【0068】
なお、S6の分布特徴検出処理において、「所定の小サイズの総度数が大きい」とされておらず、「S4の幅値度数分布のピーク状態とS5の反転後度数分布のピーク状態とが互いに一致する」とされ、S7で検出された太さ状態が第1閾値(例えば0.8)以上且つ第2閾値(例えば1.2)以下であり、線切れ比が1である場合、画像状態が良好であると推定できるので、この場合には画像処理は行わずに後述するデコード処理を行う(S10)。
【0069】
S9でフィルタ処理を行う場合、そのフィルタサイズは、一定のサイズであってもよく、画像状態に応じたサイズであってもよい。例えば、3×3の一定サイズを用いるように定められる場合、図7の判断条件に従って平滑フィルタが選択された場合には、図8(a)のような平滑フィルタを用いた平滑化処理が行われる。なお、平滑化フィルタを用いた平滑化処理自体は公知であり、詳細は省略するが、例えば、図8(b)のように規則的に配列される画素のいずれかを着目画素Q0とし、当該着目画素Q0及び当該画素Q0の周囲に配置される画素Q1〜Q8(図8(c))の濃度値の平均値を求め、それを着目画素Q0の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。
【0070】
本実施形態では、「所定の小サイズの総度数が大きい」とされる場合、即ちノイズが多い場合に平滑化処理が行われ、ノイズと推定される画素をその周囲の画素と平均化できるため、ノイズ部分の濃度値を低下(輝度レベルを増大)させることができる。従って、再度二値化処理を行うことでノイズを効果的に除去できる。
【0071】
また、線切れ度合が発生している場合にも平均化処理が行われる。この場合、線切れ部分の各画素を、その周囲の画素と平均化できるため、線切れ部分の濃度値を増大(輝度レベルを減少)することができる。従って、再度二値化処理を行うことで線切れ部分を効果的に除去ないし抑制できる。
【0072】
また、S7の判断条件に従って膨張フィルタが選択された場合には、膨張フィルタを用いた公知の膨張処理が行われる。例えば、フィルタサイズが3×3と規定されている場合、図8(b)のように規則的に配列される画素のいずれかを着目画素Q0とし、当該着目画素Q0及び当該画素Q0の周囲に配置される画素Q1〜Q8(図8(c))の濃度値の最大値を求め、それを着目画素Q0の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。本実施形態では、図7に示すように太さ度合が小さい場合(黒が細っており、白が太っている場合)に膨張フィルタを用いた膨張処理が行われ、暗色セルの太さの適正化が図られる。
【0073】
S7の判断条件に従って収縮フィルタが選択された場合も同様であり、収縮フィルタを用いた公知の収縮処理が行われる。例えば、フィルタサイズが3×3と規定されている場合、図8(b)のように規則的に配列される画素のいずれかを着目画素Q0とし、当該着目画素Q0及び当該画素Q0の周囲に配置される画素Q1〜Q8(図8(c))の濃度値の最小値を求め、それを着目画素Q0の濃度値とするといった演算処理を行う。いずれかの画素を着目画素として上記演算処理を行った後には、他の画素について同様の処理を行うといった方法で、全ての画素について上記演算処理を行う。本実施形態では、図7に示すように太さ度合が大きい場合(黒が太っており、白が細っている場合)に収縮フィルタを用いた収縮処理が行われ、暗色セルの太さの適正化が図られる。
【0074】
また、上記フィルタ種別の選択条件は、優先度を設けてもよい。例えば、図7において、フィルタを使用しないための条件(図7のフィルタ種別「なし」の条件)を優先度1とし、当該条件が成立した場合には他の条件を考慮しないでフィルタ処理を行わないようにすることができる。更に、平滑フィルタを選択するための条件を、膨張フィルタ及び収縮フィルタを選択するための条件よりも優先度を高く設定し、2つの条件が重複して成立した場合には、平滑フィルタを優先的に適用してもよい。或いは、この逆とし、2つの条件が重複して成立した場合に、平滑フィルタよりも膨張フィルタ又は収縮フィルタを優先的に適用してもよい。或いは、2つのフィルタ条件が成立した場合、それらフィルタ処理をいずれも行うようにしてもよい。
【0075】
S9でフィルタ処理を行った後には、そのフィルタ処理後の画像を二値化した上で、公知のデコード処理を行う(S10)。なお、本実施形態では、制御回路40が「デコード手段」の一例に相当し、S9での画像処理後の画像データについてデコード処理を行うように機能している。
【0076】
S10のデコード処理の後には、そのデコード処理が成功したか否かを判断し(S11)、成功した場合にはS11にてYesに進み、当該読取処理を終了する。一方、S10のデコード処理が失敗した場合には、S11にてNoに進み、S2以降の処理を繰り返す。S11にてNoに進み、S4以降の処理を再度行なう場合には、S1で取得した画像データを、前回S9で生成したフィルタ処理後の画像データに置き換え、S2以降の処理を上記と同様に行う。
【0077】
例えば、S9でフィルタ処理を行った後の画像データについてデコード処理が失敗した場合、そのフィルタ処理後の画像データによって構成される処理後画像について、S2に二値化処理及びS3のラベリング処理を再度行い、フィルタ処理後の画像を二値化、ラベリングした後のコード領域について、S4の度数分布検出処理を行う。これにより、S4について上述したのと同様に、フィルタ処理後のコード領域の暗色エリア(処理後暗色エリア)の幅値について度数分布(処理後度数分布)が検出されることになる。
【0078】
そして、フィルタ処理前の画像について行ったS5、S6、S7、S8と同様に、フィルタ処理後のコード領域について反転画像の度数分布(反転後度数分布)を検出すると共に、分布特徴検出処理(S6)、太さ度合検出処理(S7)、線切れ度合検出処理(S8)を行い、それら得られた分布特徴(ピーク一致状態、所定の小サイズの総度数等)、太さ度合、線切れ度合に基づいて、処理後画像に対し再度のフィルタ処理を行う(S9)。なお、再度のフィルタ処理は、図7のような判断基準を用いて1回目のフィルタ処理と同様の方法(上述)で行われる。そして、その再度のフィルタ処理後の画像データについて再度のデコード処理(S10)が行われる。
【0079】
(本実施形態の主な効果)
本実施形態のように、幅値度数分布の分布特徴を検出することで、画像が適切な分布状態であるか、或いはどのように画像不良が生じているか、等を適切に把握できる。更に、このような分布特徴だけでなく、線切れ度合あるいは太さ度合をも検出することで、情報コードの画像状態を2以上の尺度で多面的に確認できる。そして、このように画像状態をより詳細且つ具体的に把握した上でフィルタ処理を行うようにすれば、情報コードの印字状態により適したフィルタ処理を迅速に行うことができ、ひいては読取精度の向上、読取処理の迅速化を効果的に図ることができる。
【0080】
また、本実施形態では、情報コードの撮像画像内において当該情報コードが存在するコード領域を検出し、その検出されたコード領域において、幅値度数分布の分布特徴、線切れ度合、太さ度合を検出している。このようにすると、読み取りに必要な範囲について幅値度数分布検出、分布特徴検出、度合検出を行うことができ、画像状態の詳細な把握を適切な範囲で迅速に行うことができる。
【0081】
また、本実施形態では、線切れ度合及び太さ度合をいずれも検出し、それら検出された線切れ度合及び太さ度合に基づいてフィルタ種類を選択している。線切れ度合は平滑化処理を行うべきか否かの重要な指標となり、太さ度合は、膨張処理や収縮処理を行うべきか否かの重要な指標となるため、線切れ度合及び太さ度合のいずれをも考慮してフィルタを選択するようにすれば、より適切なフィルタを迅速に選択できる。
【0082】
また、幅値度数分布に加え、画像データの明暗反転画像における暗色エリア(反転後暗色エリア)の幅値についての度数分布(反転後度数分布)を検出している。そして、幅値度数分布と反転後度数分布とに基づいて、幅値度数分布の分布特徴を検出している。
このように、通常の幅値度数分布だけでなく、反転後度数分布をも検出することで、画像状態をより多面的に確認でき、これら両度数分布を考慮してフィルタ選択処理を行うようにすれば、より一層適切なフィルタを選択できるようになる。
【0083】
更に本実施形態では、幅値度数分布のピーク状態と、反転後度数分布のピーク状態との一致状態を検出している。情報コードの画像において線切れがあまり生じていない場合には、幅値度数分布と反転後度数分布のピークが一致するため、両度数分布のピーク一致状態を「分布特徴」として検出した上でフィルタ処理を行うようにすれば、コード画像の線切れ度合を考慮して適切なフィルタ処理を行うことができる。
【0084】
また、情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、太さ度合として、明色単位サイズと暗色単位サイズとの比率(Lb/Lw)を算出している。このようにすると、暗色セルの太さ度合がどの程度であるかを客観的に示す値を精度高く迅速に検出できる。
【0085】
また、本実施形態では、検出された規定パターンの領域において、線切れ度合及び太さ度合を検出している。予め形状が定められた規定パターンの領域では、どの部分がどの程度の幅であるべきか、或いは、セルが連続すべき部分がどの部分であるか等を特定しやすく、線切れ度合や太さ度合を迅速且つ的確に検出できる。
【0086】
また、情報コードとしてQRコードが撮像された場合に、ファインダパターン内の明色セル及び暗色セルに基づいて線切れ度合及び太さ度合を検出している。ファインダパターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、ファインダパターンは、QRコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【0087】
また、本実施形態では、S9(図2)でのフィルタ処理後の画像データについてデコード処理を行い、そのデコード処理が失敗した場合、そのフィルタ処理後の画像(処理後画像)における暗色エリア(処理後暗色エリア)の幅値についての度数分布(処理後度数分布)を検出している。そして、その処理後度数分布についての分布特徴(処理後分布特徴)を検出し、この処理後分布特徴と、処理後画像についての度合検出結果と、に基づいて、処理後画像に対し再度のフィルタ処理を行っている。
このようにすると、撮像画像の状態に応じたフィルタ処理を行ってもデコードが成功しなかった場合に、その失敗した画像(処理後画像)を詳細且つ具体的に把握した上で、その処理後画像に適したフィルタ処理を再度行うことができ、読取成功確率を効果的に高めることができる。
【0088】
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【0089】
上記実施形形態では、線切れ度合及び太さ度合をいずれも検出する構成について例示したが、いずれか一方のみを検出する構成であってもよい。
例えば線切れ度合のみを検出する構成の場合、図7の表から線切れ度合の部分を省略した判断基準を用いることができる。この場合、膨張フィルタ、収縮フィルタの判断基準は上記実施形態と同様であり、平滑フィルタの判断基準は、上述した「所定の小サイズの総度数が大きいか否か」のみとなる。また、この場合、S6の分布特徴検出処理において、「所定の小サイズの総度数が大きい」とされておらず、「S4の幅値度数分布のピーク状態とS5の反転後度数分布のピーク状態とが互いに一致する」とされ、S7で検出された太さ状態が第1閾値(例えば0.8)以上且つ第2閾値(例えば1.2)以下である場合に、画像処理は行わずに後述するデコード処理を行う(S10)。
【0090】
上記実施形態では、規定パターン(ファインダパターンFP)を検出し、その規定パターンにおいて線切れ度合、太さ度合を検出していたが、規定パターンが検出されない場合、S6で検出された分布特徴に基づいて線切れ度合及び太さ度合を検出してもよい。例えば、S4で得られた幅値度数分布における最大値を示す幅値(単位セル幅と推定される幅値)よりもS5で得られた反転後度数分布における最大値を示す幅値のほうが大きい場合に、黒が太っていると判断し、収縮フィルタを用いるようにしてもよい。逆に、S4で得られた幅値度数分布における最大値を示す幅値よりもS5で得られた反転後度数分布における最大値を示す幅値のほうが小さい場合に、白が太っていると判断し、膨張フィルタを用いるようにしてもよい。或いは、S4で得られた幅値度数分布における最大値を示す幅値(単位セル幅と推定される幅値)について、当該幅値の度数(最大値)が所定の大状態(例えば、当該最大値が所定閾値以上の場合、或いは幅値度数分布の全度数に対して所定割合以上の場合)に、線切れが発生していると判断し、平滑フィルタを用いるようにしてもよい。
このようにすると、規定パターンが検出されない場合であっても、次善の策として、分布特徴に基づいて線切れ度合或いは太さ度合を把握することができ、画像状態の詳細且つ具体的な把握を担保できる。
【0091】
上記実施形態では、QRコードを撮像したときの例を示したが、対象となる情報コードはQRコードに限られず、データマトリックスコードやマキシコードなどの他の二次元コードであってもよい。例えば、図9(a)のようにデータマトリックスコードDが撮像されたときに、データマトリックスコードFの外周部に配置されるべきL字型パターンLPを検出し、その検出されたL字型パターンの状態に基づいて線切れ度合及び太さ度合を検出するようにしてもよい。この場合、L字型パターンLP(図9(b)において、図6(a)或いは図6(b)と同様の方法で、線切れ度合(線切れ比b/(b+w))を算出したり、或いは、図6(a)と同様の方法で、外周部におけるL字型パターンLPとは異なる部分に配置される規定パターンMPの明色単位セル及び暗色単位セルの比率Lb/Lwを求めるようにしてもよい。
L字型パターンの領域では、単位セル幅であるべき部分や、セルが連続すべき部分を特定しやすく、また、L字型パターンは、データマトリックコードを読み取る際に初期に検出されるべき部分であるため、このような領域に基づいて線切れ度合や太さ度合を検出すれば、画像状態を迅速に把握する上で一層有利となる。
【0092】
上記実施形態では、メモリ35に一旦記憶された後の画像データに基づいて分布特徴、太さ度合、線切れ度合、を検出していたが、メモリ35に記憶される前の画像データに基づいてこれらを検出してもよい。
例えば、A/D変換回路33からの出力ラインを、メモリ35に入力される第1ラインと、図示しないFPGA(Field Programmable Gate Array)に入力される第2ラインとに分岐させ、メモリ35に画像データを取り込みつつ、FPGAによって当該画像データに対する各種処理を行いうるように構成してもよい。この場合、当該FPGA内に、S2〜S8の処理を行う機能を設けるようにすれば(即ち、二値化部、ラベリング部、度数分布検出部、反転後度数分布検出部、分布特徴検出部、太さ度合検出部、線切れ度合検出部を設けるようにすれば)、画像データの取り込みと並行して、分布特徴、太さ度合、線切れ度合を検出できる。
この場合、メモリ35に記憶された画像データに対する読取処理としては、図2に代えて図10のような処理を用いることができる。なお、図10の、S201は図2のS1と同様であり、S203〜S212は、図2のS2〜S11と同様である。
上記のように画像取り込み時にFPGAにおいてS2〜S8の処理を行う場合、メモリ35に記憶された画像データに対する読取処理としては、まずS201の処理を行った後、初回のデコードが終了しているか否かを判断する(S202)。終了していない場合(即ち、撮像直後の場合、S202にてNoに進み、FPGAで生成された検出データ(即ち、分布特徴、太さ度合、線切れ度合)に基づいてS210のフィルタ処理を行う。
一方、S202において初回のデコードが終了していると判断される場合、S202にてYesに進み、フィルタ処理後の画像(処理後画像)に対してS203以降の処理を行う。
このようにすると、画像データをメモリ35(記憶手段)に取り込む前、或いは取り込みと並行して当該画像データの画像状態を確認できるため、画像状態の確認の迅速化、ひいては読取処理の迅速化を効果的に図ることができる。
なお、図10の例では、初回のデコードが行われた後の、度数分布、太さ度合、線切れ度合等の検出を制御回路40内のCPUで行う例を示したが、例えば、S210でフィルタ処理を行った後の処理後画像データをFPGAに戻し、S203〜S209の処理をFPGAで行うようにしてもよい。
【0093】
なお、上記実施形態では、S1で画像を取得したときに図3(a)のような画像が取得される場合について主に説明したが、S1において図3(b)のような反転画像が撮像される場合にも同様に適用できる。この場合、撮像画像について、二値化処理(S2)、ラベリング処理(S3)を行った後、S4において、明色エリアの幅値についての幅値度数分布を検出する。そして、S3で得られた画像において、線切れ度合(明色セルが連続するべき領域におけるその連続するべきセルが途切れた度合)、及び明色セルの太さ度合を、第1実施形態で暗色セルについて行った方法と同様の方法で検出し、更に、S4で得られた幅値度数分布(この場合、明色エリアの幅値の度数分布)の分布特徴を第1実施形態と同様の方法で検出する。そして、それら分布特徴、線切れ度合、太さ度合に基づき、第1実施形態と同様の方法(図7)でフィルタ種別を選択し、フィルタ処理を行う。
【0094】
上記実施形態では、S4で得られた幅値度数分布、及びS5で得られた反転後幅値度数分布のそれぞれにおいて、検出度数が最大値となっている幅値を検出し、互いに一致するか否かを判断していたが、ピーク状態の判断はこれに限られない。例えば、複数のピーク幅値を比較して分布の一致状態を把握するようにしてもよい。図4(a)では、幅値度数分布において、複数の山61、62、63が検出され、各山のピークを示す幅値(幅値7、14、21)が、それぞれ、セル1つ分の幅、セル2つ分の幅、セル3つ分の幅と推定される。同様に、図4(b)でも、度数分布(反転後度数分布)において、複数の山71、72、73が検出され、各山のピークを示す幅値(幅値、7、14、21)が、それぞれ、セル1つ分の幅、セル2つ分の幅、セル3つ分の幅と推定される。よってS4で得られた幅値度数分布における複数の山(図4(a)では、3つの山61、62、63)のピークを示す幅値と、S5で得られた反転後度数分布における複数の山(図4(b)では、3つの山71、72、73)のピークを示す幅値とを比較し、それらが全て一致した場合にピーク状態が一致すると判断するようにしてもよい。
【0095】
上記実施形態では、検出度数が最大値となっている幅値を検出し、互いに一致するか否か判断していたが、これら幅値の差が一定値以下であるか否かを判断するようにしてもよい。例えば、S4で得られた幅値度数分布において検出度数が最大値を示している幅値がW1であり、S5で得られた幅値度数分布において、検出度数が最大値を示している幅値がW2である場合、W1−W2の絶対値が一定値以下である場合に両度数分布のピークが一致すると判断するようにしてもよい。
【0096】
上記実施形態では、規定パターンとして、タイミングパターンの明色セル及び暗色セルを検出してLb/Lwを算出したが、これ以外の場所のデータに基づいて太さ度合を算出してもよい。例えば、ファインダパターンFP内における、外周部の暗色部の幅と、その内側の明色部の幅との比率を太さ状態として算出してもよい。
【0097】
上記の例では、線切れ比(線切れ度合)としてb/(b+w)を算出しているが、線切れ比(線切れ度合)の算出方法はこれに限られない。例えば、図6(b)のように、ファインダパターンFPの一辺の幅Z4に対する当該一辺側に配される暗色部の幅値Z31〜Z37の総計Z3の割合(即ちZ3/Z4)を線切れ比(線切れ度合)とするような算出方法であってもよく、線切れ度合を定量的に特定し得る算出方法であれば他の例でもよい。
【図面の簡単な説明】
【0098】
【図1】図1は、第1実施形態に係る情報コード読取装置の電気的構成を例示するブロック図である。
【図2】図2は、図1の情報コード読取装置で行われる読取処理を例示するフローチャートである。
【図3】図3(a)は、コード領域における暗色エリアの幅値度数分布を検出するための走査について説明する説明図であり、図3(b)は、反転画像における明色エリアの幅値の度数分布(反転後幅値度数分布)を検出するための走査について説明する説明図である。
【図4】図4(a)は、幅値度数分布の一例を示すグラフであり、図4(b)は、反転後度数分布の一例を示すグラフである。
【図5】図5(a)は、幅値度数分布についての図4(a)とは異なる例を示すグラフであり、図5(b)は、反転後度数分布についての図4(b)とは異なる例を示すグラフである。
【図6】図6(a)は、QRコードにおける太さ度合及び線切れ度合の検出方法を説明する説明図であり、図6(b)は、線切れ度合の検出方法について、図6(a)とは異なる例を示す説明図である。
【図7】図7は、分布特徴、太さ度合、線切れ度合に基づいてフィルタを選択する方法を例示する説明図である。
【図8】図8(a)は、平滑フィルタについて説明する説明図であり、図8(b)は、画像データにおける画素配列を説明する説明図である。また、図8(c)は、3×3のフィルタサイズでフィルタ処理を行うときの着目画素及びその周囲画素を説明する説明図である。
【図9】図9(a)はデータマトリックスコードの撮像画像を例示する説明図であり、図9(b)は、データマトリックスコードの規定パターンについて説明する説明図である。
【図10】図10は、分布特徴、度合検出をFPGAで行う場合の読取処理の流れを例示するフローチャートである。
【符号の説明】
【0099】
1…情報コード読取装置
23…受光センサ(撮像手段)
35…メモリ(記憶手段)
40…制御回路(画像処理手段、デコード手段、度数分布検出手段、分布特徴検出手段、度合検出手段、領域検出手段、規定パターン検出手段、ファインダパターン検出手段、L字型パターン検出手段)
Q…QRコード(情報コード)
FP…ファインダパターン(規定パターン)
D…データマトリックスコード(情報コード)
LP…L字型パターン(規定パターン)

【特許請求の範囲】
【請求項1】
情報コードを撮像する撮像手段と、
前記撮像手段にて撮像された前記情報コードの画像データを記憶する記憶手段と、
前記記憶手段に記憶される前記画像データを処理する画像処理手段と、
前記画像処理手段による処理後の前記画像データについてデコード処理を行うデコード手段と、
を備えた情報コード読取装置であって、
前記画像データによって構成される画像について、二値化後の明色エリア又は暗色エリアの幅値についての幅値度数分布を検出する度数分布検出手段と、
前記度数分布検出手段によって検出された前記幅値度数分布の分布特徴を検出する分布特徴検出手段と、
前記画像データによって構成される前記画像について、明色セル又は暗色セルが連続するべき領域におけるその連続するべきセルが途切れた度合を示す線切れ度合、及び、明色セル又は暗色セルの太さ度合、の少なくともいずれかの度合を検出する度合検出手段と、
を備え、
前記画像処理手段は、前記画像データに対し、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段による度合検出結果と、に基づくフィルタ処理を行うことを特徴とする情報コード読取装置。
【請求項2】
前記画像データによって構成される前記画像内において前記情報コードが存在するコード領域を検出する領域検出手段を備え、
前記度数分布検出手段は、前記領域検出手段にて検出された前記コード領域において前記幅値度数分布を検出し、
前記分布特徴検出手段は、前記度数分布検出手段によって検出された前記コード領域の前記幅値度数分布に基づいて前記分布特徴を検出し、
前記度合検出手段は、前記領域検出手段にて検出された前記コード領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、
前記画像処理手段は、前記コード領域における前記幅値度数分布と、前記コード領域における前記線切れ度合及び前記太さ度合の少なくともいずれかの度合と、に基づいて前記画像データに対し前記フィルタ処理を行うことを特徴とする請求項1に記載の情報コード読取装置。
【請求項3】
前記度合検出手段は、前記線切れ度合及び前記太さ度合をいずれも検出する構成をなしており、
前記画像処理手段は、前記分布特徴検出手段によって検出された前記分布特徴と、前記度合検出手段によって検出された前記線切れ度合及び前記太さ度合に基づいてフィルタ種類を選択し、その選択されたフィルタ種類の前記フィルタ処理を行うことを特徴とする請求項1又は請求項2に記載の情報コード読取装置。
【請求項4】
前記度数分布検出手段は、前記幅値度数分布に加え、前記画像データの明暗反転画像における反転後明色エリア又は反転後暗色エリアの幅値についての反転後度数分布を検出する構成をなしており、
前記分布特徴検出手段は、前記幅値度数分布と前記反転後度数分布とに基づいて、前記幅値度数分布の前記分布特徴を検出することを特徴とする請求項1から請求項3のいずれか一項に記載の情報コード読取装置。
【請求項5】
前記分布特徴検出手段は、前記幅値度数分布のピーク状態と、前記反転後度数分布のピーク状態との一致状態を検出することを特徴とする請求項4に記載の情報コード読取装置。
【請求項6】
前記度合検出手段は、前記情報コードにおいて、明色単位セルとして構成されるべき領域の明色単位サイズと、暗色単位セルとして構成されるべき領域の暗色単位サイズとを検出し、前記太さ度合として、前記明色単位サイズと前記暗色単位サイズとの比率を算出することを特徴とする請求項1から請求項5のいずれか一項に記載の情報コード読取装置。
【請求項7】
前記情報コードの規定パターンを検出する規定パターン検出手段を備え、
前記度合検出手段は、前記規定パターン検出手段によって検出された前記規定パターンの領域において、前記線切れ度合及び前記太さ度合の少なくともいずれかの度合を検出することを特徴とする請求項1から請求項6のいずれか一項に記載の情報コード読取装置。
【請求項8】
前記規定パターン検出手段は、前記撮像手段によってQRコードが撮像されたときに、前記QRコードのファインダパターンを検出するファインダパターン検出手段を含み、
前記度合検出手段は、前記ファインダパターン検出手段にて前記ファインダパターンが検出された場合、その検出された前記ファインダパターン内の前記明色セル又は前記暗色セルに基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項7に記載の情報コード読取装置。
【請求項9】
前記規定パターン検出手段は、前記撮像手段によってデータマトリックスコードが撮像されたときに、前記データマトリックスコードの外周部に配置されるべきL字型パターンを検出するL字型パターン検出手段を含み、
前記度合検出手段は、前記L字型パターン検出手段によって前記L字型パターンが検出された場合、その検出された前記L字型パターンの状態に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項7に記載の情報コード読取装置。
【請求項10】
前記度合検出手段は、前記規定パターン検出手段によって前記規定パターンが検出されない場合、前記分布特徴検出手段によって検出された前記分布特徴に基づいて前記線切れ度合及び前記太さ度合の少なくともいずれかを検出することを特徴とする請求項7から請求項9のいずれか一項に記載の情報コード読取装置。
【請求項11】
前記デコード手段は、前記画像処理手段による前記フィルタ処理後の前記画像データについて前記デコード処理を行い、
前記度数分布検出手段は、前記フィルタ処理後の前記画像データの前記デコード処理が失敗した場合、前記フィルタ処理後の前記画像データによって構成される処理後画像における処理後明色エリア又は処理後暗色エリアの幅値についての処理後度数分布を検出し、
前記分布特徴検出手段は、前記処理後度数分布についての処理後分布特徴を検出し、
前記度合検出手段は、前記処理後画像について前記線切れ度合及び前記太さ度合の少なくともいずれかを検出し、
前記画像処理手段は、前記処理後分布特徴と、前記処理後画像についての前記度合検出手段による度合検出結果とに基づいて、前記処理後画像に対し再度のフィルタ処理を行うことを特徴とする請求項1から請求項10のいずれか一項に記載の情報コード読取装置。
【請求項12】
前記度数分布検出手段は、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記幅値度数分布を検出し、
前記度合検出手段は、前記撮像手段から前記記憶手段に送られる記憶前の前記画像データに基づいて前記線切れ度合及び太さ度合の少なくともいずれかの度合を検出することを特徴とする請求項1から請求項11のいずれか一項に記載の情報コード読取装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−146335(P2010−146335A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−323549(P2008−323549)
【出願日】平成20年12月19日(2008.12.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】