(57)【特許請求の範囲】
【請求項１】
媒体上に記録されたバーコードシンボル情報を撮像して得られた画像データを処理することによって、当該バーコードシンボル情報を読み取るバーコードシンボル情報読取方法において、
前記バーコードシンボル情報は、複数のバーおよびスペースで構成された１カラムをカラム方向に複数配列したロウを複数積層して形成されており、
撮像して得られた前記画像データ上のロウ方向への射影を計算し、この射影の差分を計算し、そのピーク値を前記シンボル情報のカラムの境界として特定するカラム特定工程と、
各ロウにおいて、前記カラム特定工程により特定したカラムの境界と、前記バー及びスペースの線幅を計測し求めたカラムの終端との比較に基づいて、各ロウのカラムの境界を決定する境界決定工程を、含むことを特徴とするバーコードシンボル情報読取方法。
【請求項２】
請求項１に記載のバーコードシンボル情報読取方法を用いて、バーコードシンボル情報の読み取りを行う読取手段を備えたことを特徴とするバーコードシンボル情報読取装置。
【請求項３】
前記バーコードシンボル情報を撮像する密着型の一次元撮像素子を備えることを特徴とする請求項２記載のバーコードシンボル情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードシンボル情報を光学的に読み取るバーコードシンボル情報読取方法及びバーコードシンボル情報読取装置に関する。
【背景技術】
【０００２】
近年、紙やプラスチック等の媒体に固有の情報を付与し、これを自動認識するための手段として、バーコードなるものが普及している。例えば、一般消費財には、ＰＯＳ管理システムや在庫管理等の目的で、広く一次元バーコードが使用されている。さらに、バーコード使用の用途拡大に伴い、バーコードの情報量に対する要求が強まり、一次元バーコードよりも格段に容量を増加させた二次元バーコードと呼ばれるシンボル情報が提案されてきている。そして、この二次元バーコードに対応した読み取り装置も次第に普及してきている。
【０００３】
この二次元バーコードの中には、一次元バーコードを積み重ねることによって情報量を増加させる方式のものがあり、これは、スタック型バーコードと呼ばれる。代表的なものにＰＤＦ４１７と呼ばれる符合体系のスタック型バーコードがある。なお、この符号体系ＰＤＦ４１７は、ＩＳＯ／ＩＥＣ１５４３８として国際規格化されている。
【０００４】
スタック型バーコードを読み取る読取装置としては、例えば、特許文献１又は特許文献２記載の読取装置がある。特許文献１に開示されたバーコードリーダーは、二次元撮像装置でバーコードを撮像し、画像をメモリに取り込んで、このデータに基づいてバーコードシンボル情報を復号する、というものである。
【０００５】
しかし、特許文献１に開示されたバーコードリーダーでは、スタック型バーコードのラベルの向きに読み取り精度が依存してしまう、という問題や、そのラベルが撮像装置の視野を外れて撮像された場合が考慮されていない、という問題がある。このような問題を改善するものとしては、特許文献２に開示されたシンボル情報読取装置がある。この特許文献２に開示されたシンボル情報読取装置は、二次元撮像装置でバーコードを撮像し、バーコードの位置と傾きを検出することで、スタック型バーコードのラベルがどのような向きにセットされていても、或いは、撮像画像に欠損があっても、そのバーコードシンボル情報を読み取ることができるようになっている。
【０００６】
また、特許文献３には、二次元バーコードのシンボルがラインセンサに対して斜めに置かれている場合に、傾きを補正して記録媒体を置き直すことなく読み取りするラインセンサを用いたシンボル情報読取装置が開示されている。
【０００７】
【特許文献１】特開平２−２６８３８３号公報
【特許文献２】特開平５−３２４８８７号公報（段落［００１３））
【特許文献３】特開平９−０５０４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１や特許文献２に開示されたシンボル情報読取装置は、ＣＣＤセンサを用いた非接触の二次元読み取り装置であるので、複雑な縮小光学系やその駆動機構が必要である。また、特許文献３に開示されたシンボル情報読取装置は、コンタクトガラス面に配置した記録媒体をラインセンサを移動駆動して走査するデジタル複写機等に適用される。従って、特許文献１、特許文献２及び特許文献３のシンボル情報読取装置は、設計が複雑となったり部品点数が多くなったりしてコストが嵩むという問題がある。また、小型化が難しいという問題もある。
【０００９】
また、特許文献２に開示されたシンボル情報読取装置では、スタック型バーコードのラベルの傾きがゼロでない場合、復号の信頼性が低下してしまう、といった問題がある。
【００１０】
すなわち、特許文献２に開示されたシンボル情報読取装置は、スタック型バーコードのラベルの傾きを求めた上で切り取りの基準となる直線を求め、これに基づいてスキャンラインを決定し、このスキャンライン上の点におけるアドレスを計算して該当する点の画素値を取り出し、画素値配列に格納するようにしている。
【００１１】
従って、特に、スタック型バーコードのラベルの傾きがゼロでない場合（ラベルの傾きが水平或いは垂直となっていない場合）、アドレス計算時に生ずる量子化誤差によって、得られる画素配列にノイズが生じることとなり、その結果、復号の信頼性が低下してしまう、といった問題がある。
【００１２】
また、特許文献２に開示されたシンボル情報読取装置は、基本的に間引きスキャンによって画素配列を得ていることから、局所的なノイズに弱い上、シンボル画像情報の一部しか復号に用いられない点で信頼性に欠ける、といった問題がある。
【００１３】
また、特許文献３に開示されたシンボル情報読取装置では、バーコードが記録された媒体を一次元の撮像素子で、スキャンしてバーコード画像を取り込む際に、スキャン速度が変動すると、バーの幅が変動し、正しい読取りができなくなるという問題がある。
【００１４】
本発明は、このような点に鑑みてなされたものであり、その目的は、バーコードが記録された媒体を密着型の一次元撮像素子でスキャンしてバーコード画像を取り込む構成として複雑な光学系を用いない簡易な構成のシンボル情報読取装置を提供することにある。また、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐとともに、スキャン速度が変動しても、バーの幅を変動させずに、正しい読取りが可能であるバーコードシンボル情報読取方法及びバーコードシンボル情報読取装置を提供することにある。
【課題を解決するための手段】
【００１５】
かかる目的を達成するため、本発明のバーコードシンボル情報読取方法は、バーコードシンボル情報は、複数のバーおよびスペースで構成された１カラムをカラム方向に複数配列したロウを複数積層して形成されており、撮像して得られた画像データ上のロウ方向への射影を計算し、この射影の差分を計算し、そのピーク値をシンボル情報のカラムの境界として特定するカラム特定工程と、各ロウにおいて、カラム特定工程により特定したカラムの境界と、バー及びスペースの線幅を計測し求めたカラムの終端との比較に基づいて、各ロウのカラムの境界を決定する境界決定工程を含むことを特徴とする。
なお、カラム方向とはカラムの配列方向を示し、ロウ方向とはロウを複数積層された方向を示している。
【００１６】
また、本発明のバーコードシンボル情報読取装置は、バーコードシンボル情報は、複数のバーおよびスペースで構成された１カラムをカラム方向に複数配列したロウを複数積層して形成されており、撮像して得られた画像データ上のロウ方向への射影を計算し、この射影の差分を計算し、そのピーク値をシンボル情報のカラムの境界として特定するカラム特定工程と、各ロウにおいて、カラム特定工程により特定したカラムの境界と、バー及びスペースの線幅を計測し求めたカラムの終端との比較に基づいて、各ロウのカラムの境界を決定する境界決定工程を含むバーコードシンボル情報読取方法を用いて、バーコードシンボル情報の読み取りを行う読取手段を備えたことを特徴とする。
【００１７】
本発明のバーコードシンボル情報読取装置は、バーコードシンボル情報を撮像する密着型の一次元撮像素子を備えることが好ましい。
【発明の効果】
【００１８】
本発明のバーコードシンボル情報読取方法及びバーコードシンボル情報読取装置では、撮像して得られた画像データ上のロウ方向への射影を計算し、この射影の差分を計算し、そのピーク値をシンボル情報のカラムの境界として特定するカラム特定工程を備えるようにしたので、射影をとることで汚れ等の影響が平均化作用によって小さくなり、カラムの境界への悪影響を抑えることができる。また、射影の差分波形上では、カラムの境界に現れる特有のパターン、すなわち、スペースからバーへの遷移が行わる部分で大きなピーク値（差分値）となるので、ピーク値を強調させることができ、ひいてはカラム構造の解析の精度を向上させることができる。
【００１９】
本発明のバーコードシンボル情報読取方法及びバーコードシンボル情報読取装置では、さらに、各ロウにおいて、カラム特定工程により特定したカラムの境界と、バー及びスペースの線幅を計測し求めたカラムの終端との比較に基づいて、各ロウのカラムの境界を決定する境界決定工程を備えるようにしたので、一次元情報にもとづくカラムの境界を目安にすることで、正確なカラムの境界を求めることができる。例えば、カラムに損傷がある場合には、損傷あるカラムを補正したり、または、損傷あるカラムに信頼性が低いことを示すフラグをセットしたりして、そのカラムを無効として処理する一方、終端をカラムの境界と補正して、次の処理に移ることができる。従って、次のロウ以降の処理への悪影響をなくすことができ、ひいてはバーコードシンボルの読取精度を向上させることができる。
【００２０】
このように本発明によれば、バーコードが記録された媒体を密着型の一次元撮像素子でスキャンしてバーコード画像を取り込む構成として複雑な光学系を用いない簡易な構成のバーコード読取装置であっても、量子化誤差や局所的な汚れなどによるノイズを低減することで、復号の信頼性低下を防ぐとともに、スキャン速度が変動しても、バーの幅を変動させずに、正しい読取りを実現することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２２】
［バーコードシンボル情報読取装置］
図１は、本発明の実施の形態に係るバーコードシンボル情報読取装置１の電気的構成を示すブロック図である。
【００２３】
図１において、バーコードシンボル情報読取装置１は、密着型の撮像素子１１ａと、カード搬送機構１１ｂと、を有する撮像装置１１と、画像メモリ１２と、データ処理装置１３と、を備えている。また、データ処理装置１３は、位置検出部１３ａと、傾き補正部１３ｂと、構造解析部１３ｃと、復号部１３ｄと、を備えている。また、バーコードなどのシンボル情報が付与されたカード等の記録担体２には、二次元バーコードのバーコードシンボル２１が印刷されている。なお、本実施の形態において、撮像素子１１ａは密着型の一次元撮像素子である。
【００２４】
撮像装置１１の撮像素子１１ａは、記録担体２に印刷されたバーコードシンボル２１を、光電変換によって撮像する。画像メモリ１２は、撮像素子１１ａによって撮像されたバーコードシンボル２１の画像データを記憶する。データ処理装置１３は、バーコードシンボル２１の画像データを画像メモリ１２から取り込み、取り込んだ画像データに対して様々な処理を施す。
【００２５】
このような電気的構成からなるバーコードシンボル情報読取装置１において、本発明の実施の形態に係るバーコードシンボル情報読取方法について説明する。
【００２６】
［バーコードシンボル情報読取方法］
図２は、本発明の実施の形態に係るバーコードシンボル情報読取方法の流れを示すフローチャートである。図２を用いて、本発明の実施の形態に係るバーコードシンボル情報読取方法の流れを概説する。
【００２７】
まず、位置検出が行われる（ステップＳ２１）。より具体的には、バーコードシンボル情報読取装置１の撮像素子１１ａは、カード搬送機構１１ｂに沿って所定位置まで移動した記録担体２のバーコードシンボル２１を、光電変換によって撮像する。そして、撮像されたバーコードシンボル２１の画像データは、画像メモリ１２において記憶される。なお、この画像メモリ１２は、ＲＡＭ，ＳＤＲＡＭ,ＤＤＲＳＤＲＡＭ，ＲＤＲＡＭなど、画像データを記憶しうるものであれば如何なるものであってもよい。
【００２８】
その後、データ処理装置１３の位置検出部１３ａは、画像メモリ１２で記憶された画像データを読み込み、その画像データ中のバーコードシンボル２１の位置を検出する。
【００２９】
次いで、データ処理装置１３において、傾き補正が行われる（ステップＳ２２）。より具体的には、データ処理装置１３の傾き補正部１３ｂは、ステップＳ２１において位置検出された画像データを読み込み、その画像データを、傾斜角度ゼロの補正画像データに変換する。
【００３０】
次いで、データ処理装置１３において、構造解析が行われる（ステップＳ２３）。より具体的には、データ処理装置１３の構造解析部１３ｃは、ステップＳ２２において変換された補正画像データに基づき、バーコードシンボル２１の構造を解析する。
【００３１】
最後に、データ処理装置１３の復号部１３ｄにおいて、復号の処理が行われる（ステップＳ２４）。より具体的には、データ処理装置１３の復号部１３ｄは、ステップＳ２３において解析されたバーコードシンボル２１の構造に基づき、バーコードシンボル２１の復号処理を行う。なお、復号処理に失敗した場合には、処理を再度ステップＳ２１に戻す。
【００３２】
図３は、上述したステップＳ２１において撮像されたバーコードシンボル２１の画像データの一例を示す図である。図３に示すバーコードシンボル２１は、スタック型バーコードの一種であるＰＤＦ４１７のラベル構造によるバーコードシンボルを表している。
【００３３】
図３において、バーコードシンボル２１は、図中の縦方向をロウ方向、横方向をカラム方向とし、カラム方向は５つに大きく分かれている（図３では５カラムに分かれている）。
なお、図３に示すように、ロウ方向（列方向）は、ロウを複数積層された方向を示しており、カラム方向（行方向）は、５つのカラムが配列された方向を示ししている。
そして、中央にデータカラムが配置され、また、データカラムの左右にはレフトロウインジケータ，ライトロウインジケータ、更にその左右にはスタートパターン，ストップパターンが配置されている。一方で、図３に示すバーコードシンボル２１は６行から構成され、各行にはデータワードが１個ずつ含まれている。従って、バーコードシンボル２１のデータ個数は、１個（データカラム１カラム分）×６行より６個となる。
【００３４】
図４は、撮像装置１１の撮像素子１１ａによって、バーコードシンボル２１が傾いた状態で撮像された様子を示す図である。バーコードシンボル２１を撮像装置１１でスキャンしたときには、ロウ方向が必ずしもカード搬送機構１１ｂに対して垂直の関係に位置するとは限らない。撮像素子１１ａによって読み取られた画像データは、例えば図４に示すように傾く場合がある。このような場合に、従来のバーコードシンボル情報読取装置１では、量子化誤差に起因したノイズによって、復号の信頼性が損なわれていた。しかし、本発明によれば、かかるノイズの影響を低減することができる。以下、図２に示すフローチャートの各処理（ステップＳ２１〜ステップＳ２４）について詳述する。
【００３５】
［位置検出］
図５は、図２に示すフローチャートにおける位置検出の流れを示すフローチャートである。また、図６は、バーコードシンボル２１のうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【００３６】
図５において、まず、変数ｉに０を代入して初期化する（ステップＳ５１）。
【００３７】
次いで、Ｙ＝ｉにおける水平ラインＬ（ｉ）上で、Ｘ方向に画像データを読み込み、画像が明から暗に変化する点（点Ｐ（ｉ）とする）を検索する。また、同じライン上で、今度は画像が暗から明に変化する点（点Ｑ（ｉ）とする）を検索する（ステップＳ５２）。
【００３８】
次いで、ｉ＝ｎ−１（ｎ：図６におけるＹ方向の画素数）が満たされたか否かが判断され（ステップＳ５３）、満たされていないと判定された場合には、ｉを１だけインクリメントして（ステップＳ５４）、再びステップＳ５２の処理が行われる。一方で、満たされたと判定された場合には、処理を次のステップＳ５５に移す。なお、この段階で、ｎ個の点の組（Ｐ（ｉ），Ｑ（ｉ））（ｉ＝０，１，・・・，ｎ−２，ｎ−１）を得る。
【００３９】
次いで、図６中の点Ａと点Ｃの座標を求める（ステップＳ５５）。より具体的には、Ｄ（ｉ）＝｜Ｐ（ｉ）−Ｑ（ｉ）｜を計算し、Ｄ（ｉ）のうちの最小値ｍｉｎ（Ｄ（ｉ））を求める。このｍｉｎ（Ｄ（ｉ））が、ＰＱ間の距離の最も短くなるビックバーの点Ａ及び点Ｃの２点に対応する（図６参照）。これにより、点Ａ及び点ＣのＹ座標は、それぞれＡｙ＝ｍｉｎ（ｉ）及びＣｙ＝ｍａｘ（ｉ）となる。また、点Ａ及び点ＣのＸ座標は、それぞれのｉに対する点ＰのＸ座標になるので、それぞれＡｘ＝Ｐ（ｉ＝Ａｙ）のＸ座標及びＣｘ＝Ｐ（ｉ＝Ｃｙ）のＸ座標となる。
【００４０】
次いで、図６中の点Ｂと点Ｃの座標を求める（ステップＳ５６）。より具体的には、Ｄ（ｉ）が一定となるｉの範囲を特定する。そして、ビックバーの点Ｂ及び点ＤのＹ座標は、その範囲におけるｍａｘ（ｉ）及びｍｉｎ（ｉ）となる。また、点Ｂ及び点ＤのＸ座標は、それぞれのｉに対する点Ｐ及び点ＱのＸ座標となるので、それぞれＢｘ＝Ｐ（ｉ＝Ｂｙ）のＸ座標及びＤｘ＝Ｑ（ｉ＝Ｄｙ）のＸ座標となる。
【００４１】
このようにして、ステップＳ５１〜ステップＳ５６の処理を経て、ビックバーの４隅の座標が確定したので、傾き角度は、ａｔａｎ（（Ａｙ−Ｄｙ）／（Ａｘ−Ｄｘ））で計算することができる。
【００４２】
なお、傾き検出の精度を上げるため、図６において、ＸとＹの役割を交換して同様の操作を行い、ビックバーの４隅の座標Ａ’，Ｂ’，Ｃ’，Ｄ’を求め、もとの座標値Ａ，Ｂ，Ｃ，Ｄとの平均をとって最終的な座標値としてもよい。
【００４３】
また、図５では、点Ａ及び点Ｃの座標を求めるとともに（ステップＳ５５）、点Ｂ及び点Ｄの座標も求めることとしたが（ステップＳ５６）、本発明はこれに限定されず、例えば点Ａ及び点Ｃの座標のみを求めることで、傾き検出を行うようにしてもよい。
【００４４】
［傾き補正］
図７は、上述した角度（＝ａｔａｎ（（Ａｙ−Ｄｙ）／（Ａｘ−Ｄｘ）））で傾いたバーコードシンボル２１の画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【００４５】
図７において、傾斜角度ゼロの補正画像データへの変換は、バーコードシンボル２１の傾斜角度を用いて行う。例えば、アフィン変換などの方法によって行うことができる。そして、本発明の実施の形態に係るシンボル情報読取方法では、座標変換に伴う量子化誤差の影響を緩和するため、座標変換後の画像に対して、平滑化を目的として補間処理又は平均化処理を行う。例えば、補正画像データを、メディアンフィルタ，エッジ保存フィルタ，適応ウィナーフィルタ，移動平均フィルタなどの各種フィルタにかけることによって行われる。
【００４６】
［構造解析］
図８は、図２に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【００４７】
図８において、まず、水平射影の処理が行われ（ステップＳ８１）、その後、射影の差分を用いてスタートパターン及びストップパターンの解析が行われる（ステップＳ８２）。スタートパターンとストップパターンは、他のコードワードと異なり、全てのロウに共通不変のパターンであることから、射影をとることでパターンが平均化され安定した検出が可能である。なお、以下では、スタートパターンの解析を例に説明するが、ストップパターンについても同様に解析することができるので、説明は省略する。
【００４８】
図９は、平均化された補正画像データ（図７参照）に所定の処理を施して得られた図である。より具体的には、図９（ａ）は、平均化された補正画像データ（図７参照）について、水平方向（図３でいえば、ロウ方向）の射影を計算したものであり、また、図９（ｂ）は、図９（ａ）のグラフについて差分を計算したものである。
【００４９】
スタートパターンの検出は、図９（ａ）又は図９（ｂ）に示されるグラフを用いて、パターンが変化する点の間隔（ランレングス）を画素数でカウントすることによって行われる。例えば、図９（ｂ）において、パターンが変化する点の感覚は、ＳｔａｒｔＷｏｒｋ＝［４７，６，５，６，７，６，６，１８］と求められる。一方で、スタートパターンのバーとスペースの長さの比は、ＰＤＦ４１７の規格より、ＳｔａｒｔＭａｒｋ＝［８，１，１，１，１，１，１，３］となっている。ここで、両者の類似性を調べる指標として、例えば正規化相関Ｒを用いることができる。図９（ｂ）について、正規化相関Ｒを考えると、Ｒ＝ｃｏｒｒｃｏｅｆ（ＳｔａｒｔＷｏｒｋ，ＳｔａｒｔＭａｒｋ）＝０．９９９３となり、Ｒは十分１に近い。従って、この場合には、適切にスタートパターンが検出されたと判定されることになる。
【００５０】
このようにして、スタート／ストップパターンが適切に検出されたか否かが判断された後（ステップＳ８３）、スタート／ストップパターンが適切に検出されたと判定された場合には、処理をステップＳ８５に移す。一方で、スタート／ストップパターンが適切に検出されていないと判定された場合には、デコード不可として処理を終了する（ステップＳ８４）。
【００５１】
なお、本実施形態では、類似性の尺度として、正規化相関Ｒを用いることとしたが、本発明はこれに限られず、例えば差分絶対値和，積和などを適宜用いることができる。
【００５２】
次いで、図９（ｂ）のグラフに関してピーク検出が行われる（ステップＳ８５）。より具体的には、コードワードの境界では全てのロウにおいてスペースからバーへの遷移が行われるため、射影の差分波形上、この部分で大きな差分値が現れる（図９（ｂ）の上向き矢印）。そして、図９（ｂ）の上向き矢印で示した差分値（ピーク値）を求めるには、適当な閾値を用意して、その閾値を超えたか超えないかでピークの有無を判定することができる。なお、このピークの位置は、次の処理で用いるので記憶しておく。
【００５３】
次いで、カラム境界の検出が行われる（ステップＳ８６）。より具体的には、ステップＳ８５において記憶されたピークの位置に基づき、カラムの境界を検出する。また、隣接するピークとピークの間隔はカラムの幅を表すものであり、同様に記憶しておく。ここで、ある特定のロウにおいてこの境界近傍に汚れがあった場合、ロウのスキャン中にコードワードの変化点を正しく検出できない場合があるが、本実施形態のように射影を用いることで、この汚れの影響が平均化作用によって小さくなり、コードワード境界の検出への悪影響を抑えることができる。
【００５４】
次いで、ロウの境界の検出が行われる（ステップＳ８７）。より具体的には、図１０及び図１１を用いて説明する。図１０は、平均化された補正画像データの水平方向（図３に示すロウ方向）において、各ラインの画素値を示す波形図である。図１１は、バーコードシンボル２１の行の区切り（ロウの境界）を特定する様子を説明するための説明図である。
【００５５】
図１０（ａ）において、ロウの境界の検出は、まず、平均化された補正画像データ上に、連続する複数の行からなる組を設定する。例えば、連続する３個の水平ラインＬ（１），Ｌ（２）及びＬ（３）（以下、「Ｌ１，Ｌ２及びＬ３と略す」）からなる組（ライン組Ｓ１）を設定する。
【００５６】
そして、これらの自己正規化相関及び相互正規化相関を求めると、全部で９個の相関値（Ｌ１とＬ１，Ｌ２とＬ２，Ｌ３とＬ３について自己正規化相関を計算した値（３個）と、Ｌ１とＬ２，Ｌ１とＬ３，Ｌ２とＬ１，Ｌ２とＬ３，Ｌ３とＬ１，Ｌ３とＬ２について相互正規化相関を計算した値（６個）と、の９個の相関値からなる相関値列）が得られる。９個の相関値のうちの最も小さい値が、予め決められた閾値ｒ０よりも大きければ、このライン組Ｓ１に１が与えられ、予め決められた閾値ｒ０よりも小さければ、このライン組Ｓ１に０が与えられる。
【００５７】
ここで、水平ラインＬ１，Ｌ２及びＬ３からなる組については、水平ラインＬ１，Ｌ２及びＬ３が全てロウ１（最も上のロウ）に含まれていることから、９個の相関値のうちの最も小さい値は閾値ｒ０よりも大きくなり、１が与えられることになる（図１１において、ライン組Ｓ１の判定値は１となっている）。
【００５８】
次に、補正画像データに対して上述した組を相対的に移動させて（例えばＬ２，Ｌ３及びＬ４からなるライン組Ｓ２を考えて）、相関値列を算出し、算出された相関値列の最小値が閾値よりも大きいか否かを判断することによって、そのライン組に０又は１の判定値が与えられる。
【００５９】
以下同様に、水平ラインＬｎ−２，Ｌｎ−１，Ｌｎ（ライン組Ｓｎ−２）まで上述した処理（判定値を与える処理）を繰り返し行うと、全部でｎ−２個の１と０とからなる系列が得られる（図１１の右欄）。
【００６０】
ここで、３個の水平ラインが同一ロウから選ばれている場合は、それら３個の水平ラインよりなるライン組は１に近い値となり、３個の水平ラインがロウをまたいで選ばれている場合は、それら３個の水平ラインよりなるライン組は比較的小さい値となる。より具体的には、図１０（ｂ）において、水平ラインＬ１８より上の水平ラインはロウ１に属し、水平ラインＬ１８より下の水平ラインはロウ２に属し、この水平ラインＬ１８は、ロウ１とロウ２の境界に位置する水平ラインとなっている。
【００６１】
従って、この水平ラインＬ１８を含むライン組では、判定値がほぼ０となり、それ以外では、判定値は１となる（図１１参照）。判定値が０に近いライン組は、ロウの切り替わりを表しているので、判定値の系列をスキャンして、その判定値が０に近い場所を特定することにより、ロウの切り替わり位置を知ることができる。なお、本実施形態では、相関関数によって水平ライン相互の類似性を評価しているので、図１０（ａ）に図示するように、スタートパターンやストップパターンのような共通パターンを除いた範囲を評価範囲とすることで、無駄な演算（計算コスト）を省くことができる。
【００６２】
以上説明したように、ライン組の設定→相関値列の算出→相関値列の最小値と閾値との比較→０又は１の判定値付与→判定値の系列のスキャン、という流れによって、ステップＳ８７のロウの境界の検出が行われることになる。
【００６３】
なお、ロウの境界の検出によって、補正画像データの各水平ラインがどのロウに属するかを判定できたら、デコード可能として処理を終了する（ステップＳ８８）。また、ロウごとに、それに含まれる水平ラインの平均を計算することによって、水平ラインの局所ノイズを低減することができる。さらに、平均化後の水平ラインを、そのロウの画素パターンとして後述する復号処理に用いることができる。これにより、復号精度を向上させることができる。
【００６４】
［復号処理］
図１２は、図２に示すフローチャートにおける復号の流れを示すフローチャートである。
【００６５】
図１２において、まず、線幅計測が行われる（ステップＳ１２１）。より具体的には、線幅計測とは、各ロウの画素パターンをスキャンして、バーとスペースの長さ、すなわち線幅を求める処理をいう。この線幅計測について、図１３、図１４及び図１５を用いて詳しく説明する。
【００６６】
図１３は、ロウの画素パターンの一部を示す波形図である。１カラムは、４個のバーと４個のスペースで構成されるため、画素パターンに損傷のない場合には、図１３（ａ）に示すように、合計８個の幅データが得られる。
【００６７】
一方で、画素パターンに異常がある場合には、図１３（ｂ）に示すように、合計８個以上（９個）の幅データが得られる。かかる場合には、カラムに損傷があることが分かり、このカラムの信頼性が低いことを示すフラグをセットする。
【００６８】
ここで、ロウの画素パターンを得るためのバーとスペースの長さ、すなわち線幅を求める計測について説明する。図１４は、あるロウの画素パターンを得るための計測データの一部を示している。図１５は、図１２に示すフローチャートにおける線幅計測の流れを示すフローチャートである。
【００６９】
図１４において、パターンの変化点と変化点がバーとスペースの境界を示す。従って、パターンの変化点と変化点の間の画素数をカウントすることにより、バー幅およびスペース幅を求めることができる。
【００７０】
まず、図１４の計測対象カラム（Ｐ（０）−Ｐ（８））におけるパターンのレベル値の平均値ＬＶを求め（Ｓ１５１）、Ｐ（０）を始点としてレベル値がＬＶを超える点Ｐ（１）を求める（Ｓ１５２）。Ｐ（１）とＰ（０）の隔たりがこのカラムの最初の黒バーの幅を表す。次にレベル値がＬＶを切る点Ｐ（２）を求める（Ｓ１５３）。Ｐ（２）−Ｐ（１）がこのカラムの最初のスペース幅を表す。
【００７１】
同様の操作を繰り返し（Ｓ１５２〜Ｓ１５３）、カラムの終端Ｐ（８）が検出されるまで繰り返す（Ｓ１５４）し、計測対象カラム（Ｐ（０）−Ｐ（８））の終端Ｐ（８）を求める。
【００７２】
次に、計測により求めたカラムの終端Ｐ（８）と、前述の構造解析の結果として得られている終端ＰＥとを比較する（Ｓ１５５）。もし、両者のズレが所定の範囲を超えた場合は、構造解析の結果を優先させて、カラムの境界として終端ＰＥを採用する（Ｓ１５６）。一方、終端Ｐ（８）と終端ＰＥのズレが所定の範囲内の場合は、終端Ｐ（８）をカラム境界として採用する（Ｓ１５７）。なお、ここで、カラムの終端とカラムの境界とは同一の意味である。
【００７３】
このように線幅計測において、構造解析の結果を反映して終端調整をすることにより、図１３（ｂ）に示すようにノイズによってバー、スペースが増えた場合でも、カラムの境界を誤ることなく、以降の処理への悪影響をなくすことができる。即ち、カラムに損傷がある場合には、損傷あるカラムを補正したり、または、損傷あるカラムに信頼性が低いことを示すフラグをセットしたりして、そのカラムを無効として処理する一方、終端をＰＥと補正して、次の処理に移ることができる。従って、以降の処理に影響がでることがない。
【００７４】
かかる操作を画素パターンの終わりまで実行したら、次のロウにおいても同様の処理を実行する。全てのロウについて、線幅データが得られたら、ステップＳ１２１（図１２参照）の処理を終了する。
【００７５】
次いで、線幅正規化処理が行われる（ステップ１２２）。線幅正規化処理は、画素数によって表現されている線幅データをモジュール数表現に変換する処理をいう。１モジュールは、バー又はスペースの最小幅に対応する。１カラムは１７モジュールによって構成される。１カラム内の線幅データをＷ１，Ｗ２，Ｗ３，Ｗ４，Ｗ５，Ｗ６，Ｗ７，Ｗ８とし、Ｗｃ＝Ｗ１＋Ｗ２＋Ｗ３＋Ｗ４＋Ｗ５＋Ｗ６＋Ｗ７＋Ｗ８とすれば、正規化線幅データは、Ｘｉ＝Ｗｉ＊１７／Ｗｃ（ｉ＝１，２，・・・，７，８）で表されるＸシーケンスとなる。例えば、図１３（ａ）に示す左側のカラムのＸシーケンスは、［５，１，１，１，１，１，５，２］である。
【００７６】
さらに、Ｘシーケンスは、ｔシーケンスに変換される。これは、隣接する２個のＸｉとＸｉ＋１を加算したものであり、図１３（ａ）に示す左側のカラムのＸシーケンスをｔシーケンスに変換すると、［６，２，２，２，２，６，７］となる。
【００７７】
次いで、コードワード変換が行われる（ステップＳ１２３）。より具体的には、ステップＳ１２２において求められたｔシーケンスに対応するコードワードを所定の参照テーブルから取得する。なお、コードワード変換が完了すると、一般的なハイレベル復号が行われ（ステップＳ１２４）、復号処理が完了する。また、復号処理が完了したデータについては、バーコードシンボル画像などとともに上位制御装置に出力されることになる。
【００７８】
以上説明したように、図２に示す流れで行われるバーコードシンボル情報読取方法によれば、適宜施される補間処理や平均化処理によって、量子化誤差や局所的な汚れなどによるノイズを低減することができ、ひいては復号の信頼性低下を防ぐことができる。
【００７９】
[その他の実施形態]
本実施形態では、一次元撮像素子やリニア搬送機構の組合せに対して本発明を適用することとしたが、本発明はこれに限られることなく、例えば、二次元ＣＣＤやＣＭＯＳイメージャなどのエリアセンサと被写体支持機構との組合せに対して本発明を適用することとしてもよい。
【００８０】
さらに、本実施形態では、バーコードラベルにＰＤＦ４１７フォーマットを用いることとしたが、本発明はこれに限られることなく、例えば、バーコードラベルにＣｏｄｅ４９その他のスタック型バーコードや、ＪＡＮ等の一次元バーコードを用いることとしてもよい。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態に係るバーコードシンボル情報読取装置の電気的構成を示すブロック図である。
【図２】本発明の実施の形態に係るバーコードシンボル情報読取方法の流れを示すフローチャートである。
【図３】上述したステップＳ２１において撮像されたバーコードシンボルの画像データの一例を示す図である。
【図４】撮像装置の撮像素子によって、バーコードシンボルが傾いた状態で撮像された様子を示す図である。
【図５】図２に示すフローチャートにおける位置検出の流れを示すフローチャートである。
【図６】バーコードシンボルのうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
【図７】所定の角度で傾いたバーコードシンボルの画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。
【図８】図２に示すフローチャートにおける構造解析の流れを示すフローチャートである。
【図９】平均化された補正画像データ（図７参照）に所定の処理を施して算出された図である。
【図１０】平均化された補正画像データの水平方向において、各ラインの画素値を示す波形図である。
【図１１】バーコードシンボルの行の区切りを特定する様子を説明するための説明図である。
【図１２】図２に示すフローチャートにおける復号の流れを示すフローチャートである。
【図１３】ロウの画素パターンの一部を示す波形図である。
【図１４】ロウの画素パターンを得るための計測データを示す図である。
【図１５】図１２に示すフローチャートにおける線幅計測の流れを示すフローチャートである。
【符号の説明】
【００８２】
１  バーコードシンボル情報読取装置
２  記録担体
１１  撮像装置
１１ａ  撮像素子
１２  画像メモリ
１３  データ処理装置
１３ａ  位置検出部
１３ｂ  傾き補正部
１３ｃ  構造解析部
１３ｄ  復号部
【図１】
0004652201.tif 000002
【図２】
0004652201.tif 000003
【図３】
0004652201.tif 000004
【図４】
0004652201.tif 000005
【図５】
0004652201.tif 000006
【図６】
0004652201.tif 000007
【図７】
0004652201.tif 000008
【図８】
0004652201.tif 000009
【図９】
0004652201.tif 000010
【図１０】
0004652201.tif 000011
【図１１】
0004652201.tif 000012
【図１２】
0004652201.tif 000013
【図１３】
0004652201.tif 000014
【図１４】
0004652201.tif 000015
【図１５】
0004652201.tif 000016