シンボル情報読取方法及びシンボル情報読取装置
【課題】 量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐことが可能なシンボル情報読取方法及びシンボル情報読取装置を提供することにある。
【解決手段】 シンボル情報読取方法において、バーコード等のシンボル情報を撮像して得られた画像データを、傾斜角度ゼロの補正画像データに変換する工程と、その補正画像データを平滑化する工程と、平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定する工程と、を含んでいることを特徴とする。
【解決手段】 シンボル情報読取方法において、バーコード等のシンボル情報を撮像して得られた画像データを、傾斜角度ゼロの補正画像データに変換する工程と、その補正画像データを平滑化する工程と、平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定する工程と、を含んでいることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード等のシンボル情報を光学的に読み取るシンボル情報読取方法及びシンボル情報読取装置に関するものであって、特に、ノイズの影響を押さえた上でシンボル情報を読み取ることが可能なシンボル情報読取方法及びシンボル情報読取装置に関する。
【背景技術】
【0002】
従来より、紙やプラスチック等の媒体に固有の情報を付与し、これを自動認識するための手段として、バーコードなるものが普及している。例えば、一般消費財には、1次元バーコードが使用されている。近年、バーコードの情報量に対する要求が強まり、一次元バーコードよりも格段に容量を増加させた二次元バーコードと呼ばれるシンボル情報が登場してきている。そして、この二次元バーコードに対応した読み取り装置も次第に普及してきている。
【0003】
この二次元バーコードの中には、一次元バーコードを積み重ねることによって情報量を増加させる方式のものがあり、これは、スタック型バーコードと呼ばれる。代表的なものにPDF417と呼ばれる符合体系のスタック型バーコードがある。なお、この符号体系PDF417は、ISO/IEC15438として国際規格化されている。
【0004】
スタック型バーコードを読み取る読取装置としては、例えば、特許文献1又は特許文献2記載の読取装置がある。特許文献1に開示されたバーコードリーダーは、二次元撮像装置でバーコードを撮像し、画像をメモリに取り込んで、このデータに基づいてバーコードシンボル情報を復号する、というものである。
【0005】
しかし、特許文献1に開示されたバーコードリーダーでは、スタック型バーコードのラベルの向きに読み取り精度が依存してしまう、という問題や、そのラベルが撮像装置の視野を外れて撮像された場合が考慮されていない、という問題がある。このような問題を改善するものとしては、特許文献2に開示されたシンボル情報読取装置がある。この特許文献2に開示されたシンボル情報読取装置は、二次元撮像装置でバーコードを撮像し、バーコードの位置と傾きを検出することで、スタック型バーコードのラベルがどのような向きにセットされていても、或いは、撮像画像に欠損があっても、そのバーコードシンボル情報を読み取ることができるようになっている。
【0006】
【特許文献1】特開平2−268383号公報
【特許文献2】特開平5−324887号公報(段落[0013])
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2に開示されたシンボル情報読取装置では、スタック型バーコードのラベルの傾きがゼロでない場合、復号の信頼性が低下してしまう、といった問題がある。
【0008】
すなわち、特許文献2に開示されたシンボル情報読取装置は、スタック型バーコードのラベルの傾きを求めた上で切り取りの基準となる直線を求め、これに基づいてスキャンラインを決定し、このスキャンライン上の点におけるアドレスを計算して該当する点の画素値を取り出し、画素値配列に格納するようにしている。
【0009】
従って、特に、スタック型バーコードのラベルの傾きがゼロでない場合(ラベルの傾きが水平或いは垂直となっていない場合)、アドレス計算時に生ずる量子化誤差によって、得られる画素配列にノイズが生じることとなり、その結果、復号の信頼性が低下してしまう、といった問題がある。
【0010】
また、特許文献2に開示されたシンボル情報読取装置は、基本的に間引きスキャンによって画素配列を得ていることから、局所的なノイズに弱い上、シンボル画像情報の一部しか復号に用いられない点で信頼性に欠ける、といった問題がある。
【0011】
本発明は、このような点に鑑みてなされたものであり、その目的は、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐことが可能なシンボル情報読取方法及びシンボル情報読取装置を提供することにある。
【課題を解決するための手段】
【0012】
以上のような課題を解決するために、本発明は、シンボル情報読取方法において、バーコード等のシンボル情報を撮像して得られた画像データを、傾斜角度ゼロの補正画像データに変換する工程と、その補正画像データを平滑化する工程と、平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定する工程と、を含んでいることを特徴とする。
【0013】
より具体的には、本発明は、以下のものを提供する。
【0014】
(1) 媒体上に記録されたシンボル情報を撮像して得られた画像データを処理することによって、当該シンボル情報を読み取るシンボル情報読取方法において、前記画像データを、傾斜角度ゼロの補正画像データに変換する角度変換工程と、前記補正画像データを平滑化する平滑化工程と、前記平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、前記シンボル情報のカラムの区切りを特定するカラム特定工程と、を含むことを特徴とするシンボル情報読取方法。
【0015】
本発明によれば、紙やプラスチック等の媒体上に記録されたシンボル情報を撮像して得られた画像データをソフトウエア的に処理することによって、そのシンボル情報を読み取るシンボル情報読取方法に、画像データを傾斜角度ゼロの補正画像データに変換する角度変換工程と、その補正画像データを平滑化する平滑化工程と、この平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定するカラム特定工程と、が含まれることとしたから、カラム特定工程は、角度変換工程によって傾斜角度ゼロにされた補正画像データが平滑化された後に行われることとなる。
【0016】
従って、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。また、シンボル情報の列ごとに画素を計算して得られるプロファイルを計算することによってカラムの境界を特定しうるので、射影の平均化作用によって局所的な汚れなどのノイズの影響を低減することができる。
【0017】
ここで、「角度変換工程」は、シンボル情報を撮像して得られた画像データ自体の傾きを変えて、傾斜角度ゼロの補正画像データに変換するのは勿論のこと、光学座標系を回転させて、実質的に傾斜角度ゼロの補正画像データに変換するなど、結果的に、傾斜角度ゼロの補正画像データを生成できるものであれば、如何なる手法であっても構わない。
【0018】
また、「平滑化工程」は、平滑化を目的とする補間処理又は平均化処理であれば如何なる手法であってもよく、例えば、補正画像データをメディアンフィルタ,エッジ保存フィルタ,適応ウィナーフィルタ,移動平均フィルタなどの各種フィルタにかけて、補間又は平均化するものが挙げられる。
【0019】
(2) 前記シンボル情報読取方法は、さらに、前記平滑化工程によって平滑化された補正画像データ上に、連続する複数の行からなる組を設定し、前記補正画像データに対して前記組を相対的に移動させながら、前記組が設定された行についての相関値列を算出することによって、前記シンボル情報の行の区切りを特定する行特定工程を含むことを特徴とする(1)記載のシンボル情報読取方法。
【0020】
本発明によれば、上述したシンボル情報読取方法には、平滑化肯定によって平滑化された補正画像データ上に、例えば1行,2行及び3行といったように、連続する複数の行からなる組を設定し、補正画像データに対してその組を相対的に移動させながら(すなわち、2行,3行及び4行、次いで、3行,4行及び5行など)、組が設定された行についての相関値列を算出することによって、シンボル情報の行の区切りを特定する行特定工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、シンボル情報の行の境界を特定することができ、ひいては復号の信頼性低下を防ぐことができる。
【0021】
(3) 前記シンボル情報には、当該シンボル情報の開始を示すスタートパターンと、当該シンボル情報の終了を示すストップパターンと、が含まれており、
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、前記スタートパターン又は前記ストップパターンを検出する検出工程を含むことを特徴とする(1)又は(2)記載のシンボル情報読取方法。
【0022】
本発明によれば、上述したシンボル情報には、シンボル情報の開始を示すスターとパターンと、シンボル情報の終了を示すストップパターンと、が含まれており、また、シンボル情報読取方法には、補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、スタートパターン又はストップパターンを検出する検出工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、スタートパターン又はストップパターンを検出することができ、ひいては復号の信頼性低下を防ぐことができる。
【0023】
(4) 前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程を含むことを特徴とする(1)から(3)のいずれか記載のシンボル情報読取方法。
【0024】
本発明によれば、上述したシンボル情報読取方法には、補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、所望データを表すデータカラムに異常があるか否かを適切に判定することができ、ひいては復号の信頼性低下を防ぐことができる。
【0025】
(5) (1)から(4)のいずれか記載のシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えることを特徴とするシンボル情報読取装置。
【0026】
本発明によれば、上述したシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えるシンボル情報読取装置を提供しうるので、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。
【発明の効果】
【0027】
本発明に係るシンボル情報読取方法及びシンボル情報読取装置は、以上説明したように、傾斜角度ゼロの補正画像データを平滑化した上で、シンボル情報のカラムの区切りを特定するものなので、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができ、また、射影の平均化作用による局所的な汚れなどのノイズの影響をも低減することができる。
【発明を実施するための最良の形態】
【0028】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0029】
[シンボル情報読取装置]
図1は、本発明の実施の形態に係るシンボル情報読取装置1の電気的構成を示すブロック図である。
【0030】
図1において、シンボル情報読取装置1は、密着型の撮像素子11aと、カード搬送機構11bと、を有する撮像装置11と、画像メモリ12と、データ処理装置13と、を備えている。また、データ処理装置13は、位置検出部13aと、傾き補正部13bと、構造解析部13cと、復号部13dと、を備えている。また、バーコードなどのシンボル情報が付与されたカード等の記録担体2には、二次元バーコードのバーコードシンボル21が印刷されている。
【0031】
撮像装置11の撮像素子11aは、記録担体2に印刷されたバーコードシンボル21を、光電変換によって撮像する。画像メモリ12は、撮像素子11aによって撮像されたバーコードシンボル21の画像データを記憶する。データ処理装置13は、バーコードシンボル21の画像データを画像メモリ12から取り込み、取り込んだ画像データに対して様々な処理を施す。
【0032】
このような電気的構成からなるシンボル情報読取装置1において、本発明の実施の形態に係るシンボル情報読取方法について説明する。
【0033】
[シンボル情報読取方法]
図2は、本発明の実施の形態に係るシンボル情報読取方法の流れを示すフローチャートである。図2を用いて、本発明の実施の形態に係るシンボル情報読取方法の流れを概説する。
【0034】
まず、位置検出が行われる(ステップS21)。より具体的には、シンボル情報読取装置1の撮像素子11aは、カード搬送機構11bに沿って所定位置まで移動した記録担体2のバーコードシンボル21を、光電変換によって撮像する。そして、撮像されたバーコードシンボル21の画像データは、画像メモリ12において記憶される。なお、この画像メモリ12は、RAM,SDRAM,DDRSDRAM,RDRAMなど、画像データを記憶しうるものであれば如何なるものであってもよい。
【0035】
その後、データ処理装置13の位置検出部13aは、画像メモリ12で記憶された画像データを読み込み、その画像データ中のバーコードシンボル21の位置を検出する。
【0036】
次いで、データ処理装置13において、傾き補正が行われる(ステップS22)。より具体的には、データ処理装置13の傾き補正部13bは、ステップS21において位置検出された画像データを読み込み、その画像データを、傾斜角度ゼロの補正画像データに変換する。
【0037】
次いで、データ処理装置13において、構造解析が行われる(ステップS23)。より具体的には、データ処理装置13の構造解析部13cは、ステップS22において変換された補正画像データに基づき、バーコードシンボル21の構造を解析する。
【0038】
最後に、データ処理装置13の復号部13dにおいて、復号の処理が行われる(ステップS24)。より具体的には、データ処理装置13の復号部13dは、ステップS23において解析されたバーコードシンボル21の構造に基づき、バーコードシンボル21の復号処理を行う。なお、復号処理に失敗した場合には、処理を再度ステップS21に戻す。
【0039】
図3は、上述したステップS21において撮像されたバーコードシンボル21の画像データの一例を示す図である。図3に示すバーコードシンボル21は、スタック型バーコードの一種であるPDF417のラベル構造によるバーコードシンボルを表している。
【0040】
図3において、バーコードシンボル21は、図中の縦方向をロウ方向、横方向をカラム方向とし、カラム方向は5つに大きく分かれている(図3では5カラムに分かれている)。そして、中央にデータカラムが配置され、また、データカラムの左右にはレフトロウインジケータ,ライトロウインジケータ、更にその左右にはスタートパターン,ストップパターンが配置されている。一方で、図3に示すバーコードシンボル21は6行から構成され、各行にはデータワードが1個ずつ含まれている。従って、バーコードシンボル21のデータ個数は、1個(データカラム1カラム分)×6行より6個となる。
【0041】
図4は、撮像装置11の撮像素子11aによって、バーコードシンボル21が傾いた状態で撮像された様子を示す図である。バーコードシンボル21を撮像装置11でスキャンしたときには、ロウ方向が必ずしもカード搬送機構11bに対して垂直の関係に位置するとは限らない。撮像素子11aによって読み取られた画像データは、例えば図4に示すように傾く場合がある。このような場合に、従来のシンボル情報読取装置1では、量子化誤差に起因したノイズによって、復号の信頼性が損なわれていた。しかし、本発明によれば、かかるノイズの影響を低減することができる。以下、図2に示すフローチャートの各処理(ステップS21〜ステップS24)について詳述する。
【0042】
[位置検出]
図5は、図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。また、図6は、バーコードシンボル21のうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【0043】
図5において、まず、変数iに0を代入して初期化する(ステップS51)。
【0044】
次いで、Y=iにおける水平ラインL(i)上で、X方向に画像データを読み込み、画像が明から暗に変化する点(点P(i)とする)を検索する。また、同じライン上で、今度は画像が暗から明に変化する点(点Q(i)とする)を検索する(ステップS52)。
【0045】
次いで、i=n−1(n:図6におけるY方向の画素数)が満たされたか否かが判断され(ステップS53)、満たされていないと判定された場合には、iを1だけインクリメントして(ステップS54)、再びステップS52の処理が行われる。一方で、満たされたと判定された場合には、処理を次のステップS55に移す。なお、この段階で、n個の点の組(P(i),Q(i))(I=0,1,・・・,n−2,n−1)を得る。
【0046】
次いで、図6中の点Aと点Cの座標を求める(ステップS55)。より具体的には、D(i)=|P(i)−Q(i)|を計算し、D(i)のうちの最小値min(D(i))を求める。このmin(D(i))が、PQ間の距離の最も短くなるビックバーの点A及び点Cの2点に対応する(図6参照)。これにより、点A及び点CのY座標は、それぞれAy=min(i)及びCy=max(i)となる。また、点A及び点CのX座標は、それぞれのiに対する点PのX座標になるので、それぞれAx=P(i=Ay)のX座標及びCx=P(i=Cy)のX座標となる。
【0047】
次いで、図6中の点Bと点Cの座標を求める(ステップS56)。より具体的には、D(i)が一定となるiの範囲を特定する。そして、ビックバーの点B及び点DのY座標は、その範囲におけるmax(i)及びmin(i)となる。また、点B及び点DのX座標は、それぞれのiに対する点P及び点QのX座標となるので、それぞれBx=P(i=By)のX座標及びDx=Q(i=Dy)のX座標となる。
【0048】
このようにして、ステップS51〜ステップS56の処理を経て、ビックバーの4隅の座標が確定したので、傾き角度は、atan((Ay−Dy)/(Ax−Dx))で計算することができる。
【0049】
なお、傾き検出の精度を上げるため、図6において、XとYの役割を交換して同様の操作を行い、ビックバーの4隅の座標A',B',C',D'を求め、もとの座標値A,B,C,Dとの平均をとって最終的な座標値としてもよい。
【0050】
また、図5では、点A及び点Cの座標を求めるとともに(ステップS55)、点B及び点Dの座標も求めることとしたが(ステップS56)、本発明はこれに限定されず、例えば点A及び点Cの座標のみを求めることで、傾き検出を行うようにしてもよい。
【0051】
[傾き補正]
図7は、上述した角度(=atan((Ay−Dy)/(Ax−Dx)))で傾いたバーコードシンボル21の画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【0052】
図7において、傾斜角度ゼロの補正画像データへの変換は、バーコードシンボル21の傾斜角度を用いて行う。例えば、アフィン変換などの方法によって行うことができる。そして、本発明の実施の形態に係るシンボル情報読取方法では、座標変換に伴う量子化誤差の影響を緩和するため、座標変換後の画像に対して、平滑化を目的として補間処理又は平均化処理を行う。例えば、補正画像データを、メディアンフィルタ,エッジ保存フィルタ,適応ウィナーフィルタ,移動平均フィルタなどの各種フィルタにかけることによって行われる。
【0053】
[構造解析]
図8は、図2に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【0054】
図8において、まず、水平射影の処理が行われ(ステップS81)、その後、射影の差分を用いてスタートパターン及びストップパターンの解析が行われる(ステップS82)。スタートパターンとストップパターンは、他のコードワードと異なり、全てのロウに共通不変のパターンであることから、射影をとることでパターンが平均化され安定した検出が可能である。
【0055】
図9は、平均化された補正画像データ(図7参照)に所定の処理を施して得られた図である。より具体的には、図9(a)は、平均化された補正画像データ(図7参照)について、水平方向(図3でいえば、ロウ方向)の射影を計算したものであり、また、図9(b)は、図9(a)のグラフについて差分を計算したものである。
【0056】
スタートパターンの検出は、図9(a)又は図9(b)に示されるグラフを用いて、パターンが変化する点の間隔(ランレングス)を画素数でカウントすることによって行われる。例えば、図9(b)において、パターンが変化する点の感覚は、StartWork=[47,6,5,6,7,6,6,18]と求められる。一方で、スタートパターンのバーとスペースの長さの比は、PDF417の規格より、StartMark=[8,1,1,1,1,1,1,3]となっている。ここで、両者の類似性を調べる指標として、例えば正規化相関Rを用いることができる。図9(b)について、正規化相関Rを考えると、R=corrcoef(StartWork,StartMark)=0.9993となり、Rは十分1に近い。従って、この場合には、適切にスタートパターンが検出されたと判定されることになる。
【0057】
このようにして、スタート/ストップパターンが適切に検出されたか否かが判断された後(ステップS83)、スタート/ストップパターンが適切に検出されたと判定された場合には、処理をステップS85に移す。一方で、スタート/ストップパターンが適切に検出されていないと判定された場合には、デコード不可として処理を終了する(ステップS84)。
【0058】
なお、本実施形態では、類似性の尺度として、正規化相関Rを用いることとしたが、本発明はこれに限られず、例えば差分絶対値和,積和などを適宜用いることができる。
【0059】
次いで、図9(b)のグラフに関してピーク検出が行われる(ステップS85)。より具体的には、コードワードの境界では全てのロウにおいてスペースからバーへの遷移が行われるため、射影の差分波形上、この部分で大きな差分値が現れる(図9(b)の上向き矢印)。そして、図9(b)の上向き矢印で示した差分値(ピーク値)を求めるには、適当な閾値を用意して、その閾値を超えたか超えないかでピークの有無を判定することができる。なお、このピークの位置は、次の処理で用いるので記憶しておく。
【0060】
次いで、カラム境界の検出が行われる(ステップS86)。より具体的には、ステップS85において記憶されたピークの位置に基づき、カラムの境界を検出する。また、隣接するピークとピークの間隔はカラムの幅を表すものであり、同様に記憶しておく。ここで、ある特定のロウにおいてこの境界近傍に汚れがあった場合、ロウのスキャン中にコードワードの変化点を正しく検出できない場合があるが、本実施形態のように射影を用いることで、この汚れの影響が平均化作用によって小さくなり、コードワード境界の検出への悪影響を抑えることができる。
【0061】
次いで、ロウ境界の検出が行われる(ステップS87)。より具体的には、図10及び図11を用いて説明する。図10は、平均化された補正画像データの水平方向において、各ラインの画素値を示す波形図である。図11は、バーコードシンボル21の行の区切りを特定する様子を説明するための説明図である。
【0062】
図10(a)において、ロウ境界の検出は、まず、平均化された補正画像データ上に、連続する複数の行からなる組を設定する。例えば、連続する3個の水平ラインL(1),L(2)及びL(3)(以下、「L1,L2及びL3と略す」)からなる組(ライン組S1)を設定する。
【0063】
そして、これらの自己正規化相関及び相互正規化相関を求めると、全部で9個の相関値(L1とL1,L2とL2,L3とL3について自己正規化相関を計算した値(3個)と、L1とL2,L1とL3,L2とL1,L2とL3,L3とL1,L3とL2について相互正規化相関を計算した値(6個)と、の9個の相関値からなる相関値列)が得られる。9個の相関値のうちの最も小さい値が、予め決められた閾値r0よりも大きければ、このライン組S1に1が与えられ、予め決められた閾値r0よりも小さければ、このライン組S1に0が与えられる。
【0064】
ここで、水平ラインL1,L2及びL3からなる組については、水平ラインL1,L2及びL3が全てロウ1(最も上のロウ)に含まれていることから、9個の相関値のうちの最も小さい値は閾値r0よりも大きくなり、1が与えられることになる(図11において、ライン組S1の判定値は1となっている)。
【0065】
次に、補正画像データに対して上述した組を相対的に移動させて(例えばL2,L3及びL4からなるライン組S2を考えて)、相関値列を算出し、算出された相関値列の最小値が閾値よりも大きいか否かを判断することによって、そのライン組に0又は1の判定値が与えられる。
【0066】
以下同様に、水平ラインLn−2,Ln−1,Ln(ライン組Sn−2)まで上述した処理(判定値を与える処理)を繰り返し行うと、全部でn−2個の1と0とからなる系列が得られる(図11の右欄)。
【0067】
ここで、3個の水平ラインが同一ロウから選ばれている場合は、それら3個の水平ラインよりなるライン組は1に近い値となり、3個の水平ラインがロウをまたいで選ばれている場合は、それら3個の水平ラインよりなるライン組は比較的小さい値となる。より具体的には、図10(b)において、水平ラインL18より上の水平ラインはロウ1に属し、水平ラインL18より下の水平ラインはロウ2に属し、この水平ラインL18は、ロウ1とロウ2の境界に位置する水平ラインとなっている。
【0068】
従って、この水平ラインL18を含むライン組では、判定値がほぼ0となり、それ以外では、判定値は1となる(図11参照)。判定値が0に近いライン組は、ロウの切り替わりを表しているので、判定値の系列をスキャンして、その判定値が0に近い場所を特定することにより、ロウの切り替わり位置を知ることができる。なお、本実施形態では、相関関数によって水平ライン相互の類似性を評価しているので、図10(a)に図示するように、スタートパターンやストップパターンのような共通パターンを除いた範囲を評価範囲とすることで、無駄な演算(計算コスト)を省くことができる。
【0069】
以上説明したように、ライン組の設定→相関値列の算出→相関値列の最小値と閾値との比較→0又は1の判定値付与→判定値の系列のスキャン、という流れによって、ステップS87のロウ境界の検出が行われることになる。
【0070】
なお、ロウ境界の検出によって、補正画像データの各水平ラインがどのロウに属するかを判定できたら、デコード可能として処理を終了する(ステップS88)。また、ロウごとに、それに含まれる水平ラインの平均を計算することによって、水平ラインの局所ノイズを低減することができる。さらに、平均化後の水平ラインを、そのロウの画素パターンとして後述する復号処理に用いることができる。これにより、復号精度を向上させることができる。
【0071】
[復号処理]
図12は、図2に示すフローチャートにおける復号の流れを示すフローチャートである。
【0072】
図12において、まず、線幅計測が行われる(ステップS121)。より具体的には、線幅計測とは、各ロウの画素パターンをスキャンして、バーとスペースの長さ、すなわち線幅を求める処理をいう。この線幅計測について、図13を用いて詳しく説明する。
【0073】
図13は、ロウの画素パターンの一部を示す波形図である。なお、バー幅及びスペース幅は、パターンの変化点と変化点の間の画素数をカウントしたものである。1カラムは、4個のバーと4個のスペースで構成されるため、画素パターンに損傷のない場合には、図13(a)に示すように、合計8個の幅データが得られる。
【0074】
一方で、画素パターンに異常がある場合には、図13(b)に示すように、合計8個以上(9個)の幅データが得られる。かかる場合には、カラムに損傷があることが分かり、このカラムの信頼性が低いことを示すフラグをセットする。かかる操作を画素パターンの終わりまで実行したら、次のロウにおいても同様の処理を実行する。全てのロウについて、線幅データが得られたら、ステップS121(図12参照)の処理を終了する。
【0075】
次いで、線幅正規化処理が行われる(ステップ122)。線幅正規化処理は、画素数によって表現されている線幅データをモジュール数表現に変換する処理をいう。1モジュールは、バー又はスペースの最小幅に対応する。1カラムは17モジュールによって構成される。1カラム内の線幅データをW1,W2,W3,W4,W5,W6,W7,W8とし、Wc=W1+W2+W3+W4+W5+W6+W7+W8とすれば、正規化線幅データは、Xi=Wi*17/Wc(i=1,2,…,7,8)で表されるXシーケンスとなる。例えば、図13(a)に示す左側のカラムのXシーケンスは、[5,1,1,1,1,1,5,2]である。
【0076】
さらに、Xシーケンスは、tシーケンスに変換される。これは、隣接する2個のXiとXi+1を加算したものであり、図13(a)に示す左側のカラムのXシーケンスをtシーケンスに変換すると、[6,2,2,2,2,6,7]となる。
【0077】
次いで、コードワード変換が行われる(ステップS123)。より具体的には、ステップS122において求められたtシーケンスに対応するコードワードを所定の参照テーブルから取得する。なお、コードワード変換が完了すると、一般的なハイレベル復号が行われ(ステップS124)、復号処理が完了する。また、復号処理が完了したデータについては、シンボル画像などとともに上位制御装置に出力されることになる。
【0078】
以上説明したように、図2に示す流れで行われるシンボル情報読取方法によれば、適宜施される補間処理や平均化処理によって、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。
【0079】
また、本実施形態では、一次元撮像素子やリニア搬送機構の組合せに対して本発明を適用することとしたが、本発明はこれに限られることなく、例えば、二次元CCDやCMOSイメージャなどのエリアセンサと被写体支持機構との組合せに対して本発明を適用することとしてもよい。
【0080】
さらに、本実施形態では、バーコードラベルにPDF417フォーマットを用いることとしたが、本発明はこれに限られることなく、例えば、バーコードラベルにCode49その他のスタック型バーコードや、JAN等の一次元バーコードを用いることとしてもよい。
【産業上の利用可能性】
【0081】
本発明に係るシンボル情報読取方法及びシンボル情報読取装置は、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐことができるものとして有用である。
【図面の簡単な説明】
【0082】
【図1】本発明の実施の形態に係るシンボル情報読取装置の電気的構成を示すブロック図である。
【図2】本発明の実施の形態に係るシンボル情報読取方法の流れを示すフローチャートである。
【図3】上述したステップS21において撮像されたバーコードシンボルの画像データの一例を示す図である。
【図4】撮像装置の撮像素子によって、バーコードシンボルが傾いた状態で撮像された様子を示す図である。
【図5】図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。
【図6】バーコードシンボルのうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【図7】所定の角度で傾いたバーコードシンボルの画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【図8】図2に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【図9】平均化された補正画像データ(図7参照)に所定の処理を施して算出された図である。
【図10】平均化された補正画像データの水平方向において、各ラインの画素値を示す波形図である。
【図11】バーコードシンボルの行の区切りを特定する様子を説明するための説明図である。
【図12】図2に示すフローチャートにおける復号の流れを示すフローチャートである。
【図13】ロウの画素パターンの一部を示す波形図である。
【符号の説明】
【0083】
1 シンボル情報読取装置
2 記録担体
11 撮像装置
11a 撮像素子
12 画像メモリ
13 データ処理装置
13a 位置検出部
13b 傾き補正部
13c 構造解析部
13d 復号部
【技術分野】
【0001】
本発明は、バーコード等のシンボル情報を光学的に読み取るシンボル情報読取方法及びシンボル情報読取装置に関するものであって、特に、ノイズの影響を押さえた上でシンボル情報を読み取ることが可能なシンボル情報読取方法及びシンボル情報読取装置に関する。
【背景技術】
【0002】
従来より、紙やプラスチック等の媒体に固有の情報を付与し、これを自動認識するための手段として、バーコードなるものが普及している。例えば、一般消費財には、1次元バーコードが使用されている。近年、バーコードの情報量に対する要求が強まり、一次元バーコードよりも格段に容量を増加させた二次元バーコードと呼ばれるシンボル情報が登場してきている。そして、この二次元バーコードに対応した読み取り装置も次第に普及してきている。
【0003】
この二次元バーコードの中には、一次元バーコードを積み重ねることによって情報量を増加させる方式のものがあり、これは、スタック型バーコードと呼ばれる。代表的なものにPDF417と呼ばれる符合体系のスタック型バーコードがある。なお、この符号体系PDF417は、ISO/IEC15438として国際規格化されている。
【0004】
スタック型バーコードを読み取る読取装置としては、例えば、特許文献1又は特許文献2記載の読取装置がある。特許文献1に開示されたバーコードリーダーは、二次元撮像装置でバーコードを撮像し、画像をメモリに取り込んで、このデータに基づいてバーコードシンボル情報を復号する、というものである。
【0005】
しかし、特許文献1に開示されたバーコードリーダーでは、スタック型バーコードのラベルの向きに読み取り精度が依存してしまう、という問題や、そのラベルが撮像装置の視野を外れて撮像された場合が考慮されていない、という問題がある。このような問題を改善するものとしては、特許文献2に開示されたシンボル情報読取装置がある。この特許文献2に開示されたシンボル情報読取装置は、二次元撮像装置でバーコードを撮像し、バーコードの位置と傾きを検出することで、スタック型バーコードのラベルがどのような向きにセットされていても、或いは、撮像画像に欠損があっても、そのバーコードシンボル情報を読み取ることができるようになっている。
【0006】
【特許文献1】特開平2−268383号公報
【特許文献2】特開平5−324887号公報(段落[0013])
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2に開示されたシンボル情報読取装置では、スタック型バーコードのラベルの傾きがゼロでない場合、復号の信頼性が低下してしまう、といった問題がある。
【0008】
すなわち、特許文献2に開示されたシンボル情報読取装置は、スタック型バーコードのラベルの傾きを求めた上で切り取りの基準となる直線を求め、これに基づいてスキャンラインを決定し、このスキャンライン上の点におけるアドレスを計算して該当する点の画素値を取り出し、画素値配列に格納するようにしている。
【0009】
従って、特に、スタック型バーコードのラベルの傾きがゼロでない場合(ラベルの傾きが水平或いは垂直となっていない場合)、アドレス計算時に生ずる量子化誤差によって、得られる画素配列にノイズが生じることとなり、その結果、復号の信頼性が低下してしまう、といった問題がある。
【0010】
また、特許文献2に開示されたシンボル情報読取装置は、基本的に間引きスキャンによって画素配列を得ていることから、局所的なノイズに弱い上、シンボル画像情報の一部しか復号に用いられない点で信頼性に欠ける、といった問題がある。
【0011】
本発明は、このような点に鑑みてなされたものであり、その目的は、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐことが可能なシンボル情報読取方法及びシンボル情報読取装置を提供することにある。
【課題を解決するための手段】
【0012】
以上のような課題を解決するために、本発明は、シンボル情報読取方法において、バーコード等のシンボル情報を撮像して得られた画像データを、傾斜角度ゼロの補正画像データに変換する工程と、その補正画像データを平滑化する工程と、平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定する工程と、を含んでいることを特徴とする。
【0013】
より具体的には、本発明は、以下のものを提供する。
【0014】
(1) 媒体上に記録されたシンボル情報を撮像して得られた画像データを処理することによって、当該シンボル情報を読み取るシンボル情報読取方法において、前記画像データを、傾斜角度ゼロの補正画像データに変換する角度変換工程と、前記補正画像データを平滑化する平滑化工程と、前記平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、前記シンボル情報のカラムの区切りを特定するカラム特定工程と、を含むことを特徴とするシンボル情報読取方法。
【0015】
本発明によれば、紙やプラスチック等の媒体上に記録されたシンボル情報を撮像して得られた画像データをソフトウエア的に処理することによって、そのシンボル情報を読み取るシンボル情報読取方法に、画像データを傾斜角度ゼロの補正画像データに変換する角度変換工程と、その補正画像データを平滑化する平滑化工程と、この平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、シンボル情報のカラムの区切りを特定するカラム特定工程と、が含まれることとしたから、カラム特定工程は、角度変換工程によって傾斜角度ゼロにされた補正画像データが平滑化された後に行われることとなる。
【0016】
従って、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。また、シンボル情報の列ごとに画素を計算して得られるプロファイルを計算することによってカラムの境界を特定しうるので、射影の平均化作用によって局所的な汚れなどのノイズの影響を低減することができる。
【0017】
ここで、「角度変換工程」は、シンボル情報を撮像して得られた画像データ自体の傾きを変えて、傾斜角度ゼロの補正画像データに変換するのは勿論のこと、光学座標系を回転させて、実質的に傾斜角度ゼロの補正画像データに変換するなど、結果的に、傾斜角度ゼロの補正画像データを生成できるものであれば、如何なる手法であっても構わない。
【0018】
また、「平滑化工程」は、平滑化を目的とする補間処理又は平均化処理であれば如何なる手法であってもよく、例えば、補正画像データをメディアンフィルタ,エッジ保存フィルタ,適応ウィナーフィルタ,移動平均フィルタなどの各種フィルタにかけて、補間又は平均化するものが挙げられる。
【0019】
(2) 前記シンボル情報読取方法は、さらに、前記平滑化工程によって平滑化された補正画像データ上に、連続する複数の行からなる組を設定し、前記補正画像データに対して前記組を相対的に移動させながら、前記組が設定された行についての相関値列を算出することによって、前記シンボル情報の行の区切りを特定する行特定工程を含むことを特徴とする(1)記載のシンボル情報読取方法。
【0020】
本発明によれば、上述したシンボル情報読取方法には、平滑化肯定によって平滑化された補正画像データ上に、例えば1行,2行及び3行といったように、連続する複数の行からなる組を設定し、補正画像データに対してその組を相対的に移動させながら(すなわち、2行,3行及び4行、次いで、3行,4行及び5行など)、組が設定された行についての相関値列を算出することによって、シンボル情報の行の区切りを特定する行特定工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、シンボル情報の行の境界を特定することができ、ひいては復号の信頼性低下を防ぐことができる。
【0021】
(3) 前記シンボル情報には、当該シンボル情報の開始を示すスタートパターンと、当該シンボル情報の終了を示すストップパターンと、が含まれており、
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、前記スタートパターン又は前記ストップパターンを検出する検出工程を含むことを特徴とする(1)又は(2)記載のシンボル情報読取方法。
【0022】
本発明によれば、上述したシンボル情報には、シンボル情報の開始を示すスターとパターンと、シンボル情報の終了を示すストップパターンと、が含まれており、また、シンボル情報読取方法には、補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、スタートパターン又はストップパターンを検出する検出工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、スタートパターン又はストップパターンを検出することができ、ひいては復号の信頼性低下を防ぐことができる。
【0023】
(4) 前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程を含むことを特徴とする(1)から(3)のいずれか記載のシンボル情報読取方法。
【0024】
本発明によれば、上述したシンボル情報読取方法には、補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程が含まれることとしたから、量子化誤差や局所的な汚れなどによるノイズを低減した上で、所望データを表すデータカラムに異常があるか否かを適切に判定することができ、ひいては復号の信頼性低下を防ぐことができる。
【0025】
(5) (1)から(4)のいずれか記載のシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えることを特徴とするシンボル情報読取装置。
【0026】
本発明によれば、上述したシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えるシンボル情報読取装置を提供しうるので、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。
【発明の効果】
【0027】
本発明に係るシンボル情報読取方法及びシンボル情報読取装置は、以上説明したように、傾斜角度ゼロの補正画像データを平滑化した上で、シンボル情報のカラムの区切りを特定するものなので、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができ、また、射影の平均化作用による局所的な汚れなどのノイズの影響をも低減することができる。
【発明を実施するための最良の形態】
【0028】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0029】
[シンボル情報読取装置]
図1は、本発明の実施の形態に係るシンボル情報読取装置1の電気的構成を示すブロック図である。
【0030】
図1において、シンボル情報読取装置1は、密着型の撮像素子11aと、カード搬送機構11bと、を有する撮像装置11と、画像メモリ12と、データ処理装置13と、を備えている。また、データ処理装置13は、位置検出部13aと、傾き補正部13bと、構造解析部13cと、復号部13dと、を備えている。また、バーコードなどのシンボル情報が付与されたカード等の記録担体2には、二次元バーコードのバーコードシンボル21が印刷されている。
【0031】
撮像装置11の撮像素子11aは、記録担体2に印刷されたバーコードシンボル21を、光電変換によって撮像する。画像メモリ12は、撮像素子11aによって撮像されたバーコードシンボル21の画像データを記憶する。データ処理装置13は、バーコードシンボル21の画像データを画像メモリ12から取り込み、取り込んだ画像データに対して様々な処理を施す。
【0032】
このような電気的構成からなるシンボル情報読取装置1において、本発明の実施の形態に係るシンボル情報読取方法について説明する。
【0033】
[シンボル情報読取方法]
図2は、本発明の実施の形態に係るシンボル情報読取方法の流れを示すフローチャートである。図2を用いて、本発明の実施の形態に係るシンボル情報読取方法の流れを概説する。
【0034】
まず、位置検出が行われる(ステップS21)。より具体的には、シンボル情報読取装置1の撮像素子11aは、カード搬送機構11bに沿って所定位置まで移動した記録担体2のバーコードシンボル21を、光電変換によって撮像する。そして、撮像されたバーコードシンボル21の画像データは、画像メモリ12において記憶される。なお、この画像メモリ12は、RAM,SDRAM,DDRSDRAM,RDRAMなど、画像データを記憶しうるものであれば如何なるものであってもよい。
【0035】
その後、データ処理装置13の位置検出部13aは、画像メモリ12で記憶された画像データを読み込み、その画像データ中のバーコードシンボル21の位置を検出する。
【0036】
次いで、データ処理装置13において、傾き補正が行われる(ステップS22)。より具体的には、データ処理装置13の傾き補正部13bは、ステップS21において位置検出された画像データを読み込み、その画像データを、傾斜角度ゼロの補正画像データに変換する。
【0037】
次いで、データ処理装置13において、構造解析が行われる(ステップS23)。より具体的には、データ処理装置13の構造解析部13cは、ステップS22において変換された補正画像データに基づき、バーコードシンボル21の構造を解析する。
【0038】
最後に、データ処理装置13の復号部13dにおいて、復号の処理が行われる(ステップS24)。より具体的には、データ処理装置13の復号部13dは、ステップS23において解析されたバーコードシンボル21の構造に基づき、バーコードシンボル21の復号処理を行う。なお、復号処理に失敗した場合には、処理を再度ステップS21に戻す。
【0039】
図3は、上述したステップS21において撮像されたバーコードシンボル21の画像データの一例を示す図である。図3に示すバーコードシンボル21は、スタック型バーコードの一種であるPDF417のラベル構造によるバーコードシンボルを表している。
【0040】
図3において、バーコードシンボル21は、図中の縦方向をロウ方向、横方向をカラム方向とし、カラム方向は5つに大きく分かれている(図3では5カラムに分かれている)。そして、中央にデータカラムが配置され、また、データカラムの左右にはレフトロウインジケータ,ライトロウインジケータ、更にその左右にはスタートパターン,ストップパターンが配置されている。一方で、図3に示すバーコードシンボル21は6行から構成され、各行にはデータワードが1個ずつ含まれている。従って、バーコードシンボル21のデータ個数は、1個(データカラム1カラム分)×6行より6個となる。
【0041】
図4は、撮像装置11の撮像素子11aによって、バーコードシンボル21が傾いた状態で撮像された様子を示す図である。バーコードシンボル21を撮像装置11でスキャンしたときには、ロウ方向が必ずしもカード搬送機構11bに対して垂直の関係に位置するとは限らない。撮像素子11aによって読み取られた画像データは、例えば図4に示すように傾く場合がある。このような場合に、従来のシンボル情報読取装置1では、量子化誤差に起因したノイズによって、復号の信頼性が損なわれていた。しかし、本発明によれば、かかるノイズの影響を低減することができる。以下、図2に示すフローチャートの各処理(ステップS21〜ステップS24)について詳述する。
【0042】
[位置検出]
図5は、図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。また、図6は、バーコードシンボル21のうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【0043】
図5において、まず、変数iに0を代入して初期化する(ステップS51)。
【0044】
次いで、Y=iにおける水平ラインL(i)上で、X方向に画像データを読み込み、画像が明から暗に変化する点(点P(i)とする)を検索する。また、同じライン上で、今度は画像が暗から明に変化する点(点Q(i)とする)を検索する(ステップS52)。
【0045】
次いで、i=n−1(n:図6におけるY方向の画素数)が満たされたか否かが判断され(ステップS53)、満たされていないと判定された場合には、iを1だけインクリメントして(ステップS54)、再びステップS52の処理が行われる。一方で、満たされたと判定された場合には、処理を次のステップS55に移す。なお、この段階で、n個の点の組(P(i),Q(i))(I=0,1,・・・,n−2,n−1)を得る。
【0046】
次いで、図6中の点Aと点Cの座標を求める(ステップS55)。より具体的には、D(i)=|P(i)−Q(i)|を計算し、D(i)のうちの最小値min(D(i))を求める。このmin(D(i))が、PQ間の距離の最も短くなるビックバーの点A及び点Cの2点に対応する(図6参照)。これにより、点A及び点CのY座標は、それぞれAy=min(i)及びCy=max(i)となる。また、点A及び点CのX座標は、それぞれのiに対する点PのX座標になるので、それぞれAx=P(i=Ay)のX座標及びCx=P(i=Cy)のX座標となる。
【0047】
次いで、図6中の点Bと点Cの座標を求める(ステップS56)。より具体的には、D(i)が一定となるiの範囲を特定する。そして、ビックバーの点B及び点DのY座標は、その範囲におけるmax(i)及びmin(i)となる。また、点B及び点DのX座標は、それぞれのiに対する点P及び点QのX座標となるので、それぞれBx=P(i=By)のX座標及びDx=Q(i=Dy)のX座標となる。
【0048】
このようにして、ステップS51〜ステップS56の処理を経て、ビックバーの4隅の座標が確定したので、傾き角度は、atan((Ay−Dy)/(Ax−Dx))で計算することができる。
【0049】
なお、傾き検出の精度を上げるため、図6において、XとYの役割を交換して同様の操作を行い、ビックバーの4隅の座標A',B',C',D'を求め、もとの座標値A,B,C,Dとの平均をとって最終的な座標値としてもよい。
【0050】
また、図5では、点A及び点Cの座標を求めるとともに(ステップS55)、点B及び点Dの座標も求めることとしたが(ステップS56)、本発明はこれに限定されず、例えば点A及び点Cの座標のみを求めることで、傾き検出を行うようにしてもよい。
【0051】
[傾き補正]
図7は、上述した角度(=atan((Ay−Dy)/(Ax−Dx)))で傾いたバーコードシンボル21の画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【0052】
図7において、傾斜角度ゼロの補正画像データへの変換は、バーコードシンボル21の傾斜角度を用いて行う。例えば、アフィン変換などの方法によって行うことができる。そして、本発明の実施の形態に係るシンボル情報読取方法では、座標変換に伴う量子化誤差の影響を緩和するため、座標変換後の画像に対して、平滑化を目的として補間処理又は平均化処理を行う。例えば、補正画像データを、メディアンフィルタ,エッジ保存フィルタ,適応ウィナーフィルタ,移動平均フィルタなどの各種フィルタにかけることによって行われる。
【0053】
[構造解析]
図8は、図2に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【0054】
図8において、まず、水平射影の処理が行われ(ステップS81)、その後、射影の差分を用いてスタートパターン及びストップパターンの解析が行われる(ステップS82)。スタートパターンとストップパターンは、他のコードワードと異なり、全てのロウに共通不変のパターンであることから、射影をとることでパターンが平均化され安定した検出が可能である。
【0055】
図9は、平均化された補正画像データ(図7参照)に所定の処理を施して得られた図である。より具体的には、図9(a)は、平均化された補正画像データ(図7参照)について、水平方向(図3でいえば、ロウ方向)の射影を計算したものであり、また、図9(b)は、図9(a)のグラフについて差分を計算したものである。
【0056】
スタートパターンの検出は、図9(a)又は図9(b)に示されるグラフを用いて、パターンが変化する点の間隔(ランレングス)を画素数でカウントすることによって行われる。例えば、図9(b)において、パターンが変化する点の感覚は、StartWork=[47,6,5,6,7,6,6,18]と求められる。一方で、スタートパターンのバーとスペースの長さの比は、PDF417の規格より、StartMark=[8,1,1,1,1,1,1,3]となっている。ここで、両者の類似性を調べる指標として、例えば正規化相関Rを用いることができる。図9(b)について、正規化相関Rを考えると、R=corrcoef(StartWork,StartMark)=0.9993となり、Rは十分1に近い。従って、この場合には、適切にスタートパターンが検出されたと判定されることになる。
【0057】
このようにして、スタート/ストップパターンが適切に検出されたか否かが判断された後(ステップS83)、スタート/ストップパターンが適切に検出されたと判定された場合には、処理をステップS85に移す。一方で、スタート/ストップパターンが適切に検出されていないと判定された場合には、デコード不可として処理を終了する(ステップS84)。
【0058】
なお、本実施形態では、類似性の尺度として、正規化相関Rを用いることとしたが、本発明はこれに限られず、例えば差分絶対値和,積和などを適宜用いることができる。
【0059】
次いで、図9(b)のグラフに関してピーク検出が行われる(ステップS85)。より具体的には、コードワードの境界では全てのロウにおいてスペースからバーへの遷移が行われるため、射影の差分波形上、この部分で大きな差分値が現れる(図9(b)の上向き矢印)。そして、図9(b)の上向き矢印で示した差分値(ピーク値)を求めるには、適当な閾値を用意して、その閾値を超えたか超えないかでピークの有無を判定することができる。なお、このピークの位置は、次の処理で用いるので記憶しておく。
【0060】
次いで、カラム境界の検出が行われる(ステップS86)。より具体的には、ステップS85において記憶されたピークの位置に基づき、カラムの境界を検出する。また、隣接するピークとピークの間隔はカラムの幅を表すものであり、同様に記憶しておく。ここで、ある特定のロウにおいてこの境界近傍に汚れがあった場合、ロウのスキャン中にコードワードの変化点を正しく検出できない場合があるが、本実施形態のように射影を用いることで、この汚れの影響が平均化作用によって小さくなり、コードワード境界の検出への悪影響を抑えることができる。
【0061】
次いで、ロウ境界の検出が行われる(ステップS87)。より具体的には、図10及び図11を用いて説明する。図10は、平均化された補正画像データの水平方向において、各ラインの画素値を示す波形図である。図11は、バーコードシンボル21の行の区切りを特定する様子を説明するための説明図である。
【0062】
図10(a)において、ロウ境界の検出は、まず、平均化された補正画像データ上に、連続する複数の行からなる組を設定する。例えば、連続する3個の水平ラインL(1),L(2)及びL(3)(以下、「L1,L2及びL3と略す」)からなる組(ライン組S1)を設定する。
【0063】
そして、これらの自己正規化相関及び相互正規化相関を求めると、全部で9個の相関値(L1とL1,L2とL2,L3とL3について自己正規化相関を計算した値(3個)と、L1とL2,L1とL3,L2とL1,L2とL3,L3とL1,L3とL2について相互正規化相関を計算した値(6個)と、の9個の相関値からなる相関値列)が得られる。9個の相関値のうちの最も小さい値が、予め決められた閾値r0よりも大きければ、このライン組S1に1が与えられ、予め決められた閾値r0よりも小さければ、このライン組S1に0が与えられる。
【0064】
ここで、水平ラインL1,L2及びL3からなる組については、水平ラインL1,L2及びL3が全てロウ1(最も上のロウ)に含まれていることから、9個の相関値のうちの最も小さい値は閾値r0よりも大きくなり、1が与えられることになる(図11において、ライン組S1の判定値は1となっている)。
【0065】
次に、補正画像データに対して上述した組を相対的に移動させて(例えばL2,L3及びL4からなるライン組S2を考えて)、相関値列を算出し、算出された相関値列の最小値が閾値よりも大きいか否かを判断することによって、そのライン組に0又は1の判定値が与えられる。
【0066】
以下同様に、水平ラインLn−2,Ln−1,Ln(ライン組Sn−2)まで上述した処理(判定値を与える処理)を繰り返し行うと、全部でn−2個の1と0とからなる系列が得られる(図11の右欄)。
【0067】
ここで、3個の水平ラインが同一ロウから選ばれている場合は、それら3個の水平ラインよりなるライン組は1に近い値となり、3個の水平ラインがロウをまたいで選ばれている場合は、それら3個の水平ラインよりなるライン組は比較的小さい値となる。より具体的には、図10(b)において、水平ラインL18より上の水平ラインはロウ1に属し、水平ラインL18より下の水平ラインはロウ2に属し、この水平ラインL18は、ロウ1とロウ2の境界に位置する水平ラインとなっている。
【0068】
従って、この水平ラインL18を含むライン組では、判定値がほぼ0となり、それ以外では、判定値は1となる(図11参照)。判定値が0に近いライン組は、ロウの切り替わりを表しているので、判定値の系列をスキャンして、その判定値が0に近い場所を特定することにより、ロウの切り替わり位置を知ることができる。なお、本実施形態では、相関関数によって水平ライン相互の類似性を評価しているので、図10(a)に図示するように、スタートパターンやストップパターンのような共通パターンを除いた範囲を評価範囲とすることで、無駄な演算(計算コスト)を省くことができる。
【0069】
以上説明したように、ライン組の設定→相関値列の算出→相関値列の最小値と閾値との比較→0又は1の判定値付与→判定値の系列のスキャン、という流れによって、ステップS87のロウ境界の検出が行われることになる。
【0070】
なお、ロウ境界の検出によって、補正画像データの各水平ラインがどのロウに属するかを判定できたら、デコード可能として処理を終了する(ステップS88)。また、ロウごとに、それに含まれる水平ラインの平均を計算することによって、水平ラインの局所ノイズを低減することができる。さらに、平均化後の水平ラインを、そのロウの画素パターンとして後述する復号処理に用いることができる。これにより、復号精度を向上させることができる。
【0071】
[復号処理]
図12は、図2に示すフローチャートにおける復号の流れを示すフローチャートである。
【0072】
図12において、まず、線幅計測が行われる(ステップS121)。より具体的には、線幅計測とは、各ロウの画素パターンをスキャンして、バーとスペースの長さ、すなわち線幅を求める処理をいう。この線幅計測について、図13を用いて詳しく説明する。
【0073】
図13は、ロウの画素パターンの一部を示す波形図である。なお、バー幅及びスペース幅は、パターンの変化点と変化点の間の画素数をカウントしたものである。1カラムは、4個のバーと4個のスペースで構成されるため、画素パターンに損傷のない場合には、図13(a)に示すように、合計8個の幅データが得られる。
【0074】
一方で、画素パターンに異常がある場合には、図13(b)に示すように、合計8個以上(9個)の幅データが得られる。かかる場合には、カラムに損傷があることが分かり、このカラムの信頼性が低いことを示すフラグをセットする。かかる操作を画素パターンの終わりまで実行したら、次のロウにおいても同様の処理を実行する。全てのロウについて、線幅データが得られたら、ステップS121(図12参照)の処理を終了する。
【0075】
次いで、線幅正規化処理が行われる(ステップ122)。線幅正規化処理は、画素数によって表現されている線幅データをモジュール数表現に変換する処理をいう。1モジュールは、バー又はスペースの最小幅に対応する。1カラムは17モジュールによって構成される。1カラム内の線幅データをW1,W2,W3,W4,W5,W6,W7,W8とし、Wc=W1+W2+W3+W4+W5+W6+W7+W8とすれば、正規化線幅データは、Xi=Wi*17/Wc(i=1,2,…,7,8)で表されるXシーケンスとなる。例えば、図13(a)に示す左側のカラムのXシーケンスは、[5,1,1,1,1,1,5,2]である。
【0076】
さらに、Xシーケンスは、tシーケンスに変換される。これは、隣接する2個のXiとXi+1を加算したものであり、図13(a)に示す左側のカラムのXシーケンスをtシーケンスに変換すると、[6,2,2,2,2,6,7]となる。
【0077】
次いで、コードワード変換が行われる(ステップS123)。より具体的には、ステップS122において求められたtシーケンスに対応するコードワードを所定の参照テーブルから取得する。なお、コードワード変換が完了すると、一般的なハイレベル復号が行われ(ステップS124)、復号処理が完了する。また、復号処理が完了したデータについては、シンボル画像などとともに上位制御装置に出力されることになる。
【0078】
以上説明したように、図2に示す流れで行われるシンボル情報読取方法によれば、適宜施される補間処理や平均化処理によって、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。
【0079】
また、本実施形態では、一次元撮像素子やリニア搬送機構の組合せに対して本発明を適用することとしたが、本発明はこれに限られることなく、例えば、二次元CCDやCMOSイメージャなどのエリアセンサと被写体支持機構との組合せに対して本発明を適用することとしてもよい。
【0080】
さらに、本実施形態では、バーコードラベルにPDF417フォーマットを用いることとしたが、本発明はこれに限られることなく、例えば、バーコードラベルにCode49その他のスタック型バーコードや、JAN等の一次元バーコードを用いることとしてもよい。
【産業上の利用可能性】
【0081】
本発明に係るシンボル情報読取方法及びシンボル情報読取装置は、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐことができるものとして有用である。
【図面の簡単な説明】
【0082】
【図1】本発明の実施の形態に係るシンボル情報読取装置の電気的構成を示すブロック図である。
【図2】本発明の実施の形態に係るシンボル情報読取方法の流れを示すフローチャートである。
【図3】上述したステップS21において撮像されたバーコードシンボルの画像データの一例を示す図である。
【図4】撮像装置の撮像素子によって、バーコードシンボルが傾いた状態で撮像された様子を示す図である。
【図5】図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。
【図6】バーコードシンボルのうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【図7】所定の角度で傾いたバーコードシンボルの画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【図8】図2に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【図9】平均化された補正画像データ(図7参照)に所定の処理を施して算出された図である。
【図10】平均化された補正画像データの水平方向において、各ラインの画素値を示す波形図である。
【図11】バーコードシンボルの行の区切りを特定する様子を説明するための説明図である。
【図12】図2に示すフローチャートにおける復号の流れを示すフローチャートである。
【図13】ロウの画素パターンの一部を示す波形図である。
【符号の説明】
【0083】
1 シンボル情報読取装置
2 記録担体
11 撮像装置
11a 撮像素子
12 画像メモリ
13 データ処理装置
13a 位置検出部
13b 傾き補正部
13c 構造解析部
13d 復号部
【特許請求の範囲】
【請求項1】
媒体上に記録されたシンボル情報を撮像して得られた画像データを処理することによって、当該シンボル情報を読み取るシンボル情報読取方法において、
前記画像データを、傾斜角度ゼロの補正画像データに変換する角度変換工程と、
前記補正画像データを平滑化する平滑化工程と、
前記平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、前記シンボル情報のカラムの区切りを特定するカラム特定工程と、を含むことを特徴とするシンボル情報読取方法。
【請求項2】
前記シンボル情報読取方法は、さらに、
前記平滑化工程によって平滑化された補正画像データ上に、連続する複数の行からなる組を設定し、前記補正画像データに対して前記組を相対的に移動させながら、前記組が設定された行についての相関値列を算出することによって、前記シンボル情報の行の区切りを特定する行特定工程を含むことを特徴とする請求項1記載のシンボル情報読取方法。
【請求項3】
前記シンボル情報には、当該シンボル情報の開始を示すスタートパターンと、当該シンボル情報の終了を示すストップパターンと、が含まれており、
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、前記スタートパターン又は前記ストップパターンを検出する検出工程を含むことを特徴とする請求項1又は2記載のシンボル情報読取方法。
【請求項4】
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程を含むことを特徴とする請求項1から3のいずれか記載のシンボル情報読取方法。
【請求項5】
請求項1から4のいずれか記載のシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えたことを特徴とするシンボル情報読取装置。
【請求項1】
媒体上に記録されたシンボル情報を撮像して得られた画像データを処理することによって、当該シンボル情報を読み取るシンボル情報読取方法において、
前記画像データを、傾斜角度ゼロの補正画像データに変換する角度変換工程と、
前記補正画像データを平滑化する平滑化工程と、
前記平滑化工程によって平滑化された補正画像データ上の列方向の総和値を算出することによって、前記シンボル情報のカラムの区切りを特定するカラム特定工程と、を含むことを特徴とするシンボル情報読取方法。
【請求項2】
前記シンボル情報読取方法は、さらに、
前記平滑化工程によって平滑化された補正画像データ上に、連続する複数の行からなる組を設定し、前記補正画像データに対して前記組を相対的に移動させながら、前記組が設定された行についての相関値列を算出することによって、前記シンボル情報の行の区切りを特定する行特定工程を含むことを特徴とする請求項1記載のシンボル情報読取方法。
【請求項3】
前記シンボル情報には、当該シンボル情報の開始を示すスタートパターンと、当該シンボル情報の終了を示すストップパターンと、が含まれており、
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバーとスペースのランレングスデータ列と、所定の基準パターンと、の類似度を算出することによって、前記スタートパターン又は前記ストップパターンを検出する検出工程を含むことを特徴とする請求項1又は2記載のシンボル情報読取方法。
【請求項4】
前記シンボル情報読取方法は、さらに、前記補正画像データ上の行方向において、1カラム分のバー及びスペースの総個数が、予め設定された個数と等しいか否かを判定する判定工程を含むことを特徴とする請求項1から3のいずれか記載のシンボル情報読取方法。
【請求項5】
請求項1から4のいずれか記載のシンボル情報読取方法を用いて、シンボル情報の読み取りを行う読取手段を備えたことを特徴とするシンボル情報読取装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−178641(P2006−178641A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2004−369609(P2004−369609)
【出願日】平成16年12月21日(2004.12.21)
【出願人】(000002233)日本電産サンキョー株式会社 (1,337)
【Fターム(参考)】
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願日】平成16年12月21日(2004.12.21)
【出願人】(000002233)日本電産サンキョー株式会社 (1,337)
【Fターム(参考)】
[ Back to top ]