(57)【要約】【課題】汎用の光学機器を用いてバーコード読み取りを行う場合にも、正確なバーコード認識を可能とする。【解決手段】バーコードを走査して１ラインの画像データを抽出する過程１と、その１ラインの抽出画像を文字を構成するパターン毎に分割する過程２と、分割されたパターンを文字に変換する課程３とを備える。過程３ではパターンを黒バー、または白バーを構成する最小幅のモジュールの数で分割し、各モジュールが黒か白かを示すモジュール値を決定し、各パターンを文字に変換する。【選択図】      図１
2004185058.tif 000002
【特許請求の範囲】
【請求項１】
光学機器を用いてバーコードを読み取るバーコード認識方法において、
バーコードを走査して１ラインの画像データを抽出する画像抽出過程と、
該１ラインの抽出画像を、文字を構成するパターン毎に分割する文字領域分割過程と、
該分割されたパターンを文字に変換するパターン変換過程とを備えることを特徴とするバーコード認識方法。
【請求項２】
前記文字領域分割過程において、前記１ラインの画像データを示す曲線の変曲点の中から、前記文字を構成するパターンの境界を求めることを特徴とする請求項１記載のバーコード認識方法。
【請求項３】
前記パターン変換過程が、
前記分割されたパターンを、バーコードの黒バー、または白バーを構成する最小単位の幅のモジュールの数で分割するモジュール領域分割過程と、
該分割されたモジュールが黒バーまたは白バーのいずれを構成するかをモジュール値として決定するモジュール値決定過程と、
該モジュールで構成される前記パターンを文字に変換するモジュールデータ変換過程とを備えることを特徴とする請求項１記載のバーコード認識方法。
【請求項４】
前記文字領域分割過程が、前記１ラインの画像データを用いて、前記文字を構成するパターンの境界を求めるための閾値を算出する閾値算出過程を更に備え、
該１ラインの画像データを示す曲線と該算出された閾値との交点の中から、該パターンの境界を求めることを特徴とする請求項１記載のバーコード認識方法。
【請求項５】
光学機器によって読み取られたバーコードデータの認識を行う認識用デコード処理装置において、
該光学機器によるバーコードの読み取り結果を走査して１ラインの画像データを抽出する画像抽出手段と、
該１ラインの抽出画像を、文字を構成するパターン毎に分割する文字領域分割手段と、
該分割されたパターンを文字に変換するパターン変換手段とを備えることを特徴とするバーコード認識用デコード処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバーコードの認識方式に係わり、更に詳しくはスキャナやＣＣＤカメラなどの汎用の光学機器によって読み取られたバーコード画像を、光学機器の種類によらず、読み取り精度をおとすことなく、認識するためのバーコード認識方法、およびバーコード認識用デコード処理装置に関する。
【０００２】
【従来の技術】
図１８は現在一般的に販売されているバーコード読み取り装置における読み取り方法の処理フローチャートである。同図において、まずステップＳ１０１で画像読み取りが行われ、ステップＳ１０２の光電変換で電気信号に変換され、ステップＳ１０３のＡ／Ｄ変換によってディジタル信号に変換される。
【０００３】
ステップＳ１０４のバーコード領域抽出で、一般にバーコードの両側に設けられた余白部分としてのマージン（クワイエットゾーンとも言う）の間にはさまれたバーコード領域が抽出され、ステップＳ１０５のデコード処理によって文字や記号などに変換され、ステップＳ１０６のバーコード情報出力によって、例えばディスプレイに結果が出力されていた。
【０００４】
図１９は従来のバーコード読み取り装置の第１の構成例のブロック図であり、図１８の各ステップに対応する画像読み取り部５１から、バーコード情報出力部５６までが１つの装置内に備えられている。
【０００５】
図２０はバーコード読み取り装置の第２の従来例の構成ブロック図である。画像読み取り部５１からデコード処理部５５までが１つの装置に備えられており、デコード処理結果は、例えばパソコン（ＰＣ）のディスプレイとしてのバーコード情報出力部５６によって表示される。
【０００６】
これらの従来のバーコード読み取り装置では、光学機器の特性にあわせてデコード処理が行われている。光学機器の部分とデコード処理の部分とが分離された装置や、汎用の光学機器を用いてバーコードの読み取りを可能とするためのデコード処理装置は、従来においては用いられていない。
【０００７】
従来のバーコード読み取り装置、および読み取り方法に関しては、例えば次のような特許文献がある。
【０００８】
【特許文献１】
特開２００１−１８４４８１公報
「画像読み取り装置及び画像読み取り方法」
【０００９】
【特許文献２】
特開２０００−３５３２１１公報
「バーコード認識装置及びバーコード認識方法」
特許文献１では、バーコード画像の近くにサインや印影などが存在する場合に、特別の切り出しシンボルを設けなくても、バーコードと共にサイン、印影などの画像を切り出すことができる画像読み取り方法が開示されている。
【００１０】
特許文献２には、何らかの原因で、例えばセンターバーの左側の領域に存在するバーと右側の領域に存在するバーの太さが異なるようにバーコード画像が撮影された場合などに、バーコードの内容を正しく認識できるバーコード認識装置が開示されている。
【００１１】
これらの従来技術においては、光学機器から入力されたバーコード画像を、ある一定の閾値を基準にして２値化処理を行い、得られた２値のデータからバーコードの黒バー（バーコードを構成する並行バーのうちで反射率が低いバーで、単にバーとも呼ばれる）、および白バー（反射率が高いバーで、スペースとも呼ばれる）の幅を求め、これらのバーの幅が所定の範囲内にあるか否かでバーの種類を確定し、デコード処理を行っていた。
【００１２】
すなわち従来においては、２値化処理に対応するパルス波形から、バーコードの左側のマージンのすぐ右側のレフトガードバー（スタートバー）に対応するパルスの幅を基準として、レフトガードバーの右側にある黒バー、または白バーに対応するパルス幅を測定し、パルス幅が所定の範囲内にあるか否かでバーの種類を次々と確定し、読み取ったバーコードを逐次デコードする方法が用いられていた。
【００１３】
【発明が解決しようとする課題】
例えば携帯電話に付属するカメラのような汎用の光学機器を用いてバーコードを読み取る場合に、光学機器とバーコードの距離が遠い時には読み取り解像度が低くなり、正しい認識ができないという問題点があった。
【００１４】
従来のデコード方法を用いる場合には、光学機器によって読み取られたデータをパルスデータもしくは、２値データに変換した後に、バーコードの任意の位置における２値データの値が０か１のいずれであるかによってのみバーコードのバーの幅を求めるために、読み取り解像度が低い場合には、バーの幅の読み取り結果は不正確となり、正確な認識処理ができない。
【００１５】
図２１はこのような問題点の説明図である。同図では、バーコードの読み取り結果は２値データ、もしくはパルス波形に変換され、データが０か１のいずれであるかによって、黒バーと白バーの判定が行われる。２値データは、例えば輝度に対応するデータであり、１は白を示し、０は黒を示すことになる。
【００１６】
２値データにおいて左側の最初の１は、バーコードの左側のマージンに対応する白を示し、次の２つの区分に対する０は黒、その次の区分に対する１は白を示す。２値データから求められたバー幅の図において、マージンを除いたこの３つの区分に対応するデータは、１番上の最も左側の黒バーと白バーとが同じ幅であることには対応せず、読み取りは不正確である。
【００１７】
２値データ上で次の２つの区分に対する黒、および更にその次の４つの区分に対する白については、１番上のバーコード上では黒バーの幅１に対して白バーの幅３となっており、この部分に対しても正しい認識結果が得られていないことになる。
【００１８】
またＣＣＤカメラのような汎用の光学機器を用いてバーコードを読み取る場合には、光学歪みによる入力画像の歪みが発生する。また光学機器の読み取り方向がバーコードの平面に対して傾いていたり、バーコードが筒や缶などの円筒周面上に描かれ、それを読み取るような場合には、読み取ったバーコードデータに歪みが生ずる。従来の方法では、光学機器から読み取ったデータを２値データ、もしくはパルスデータに変換した後バーコードのバーの幅を求めるために、データの歪みが生じ、バーの長さ（幅）が不正確となり、正確な認識処理ができないという問題点があった。
【００１９】
本発明の課題は、汎用の光学機器とパソコンなどのバーコードデコード装置とを組み合わせたバーコード読み取り装置を基本として、光学機器の種類によらず、入力データに歪みが生じても読み取り精度をおとすことなく、バーコードの正しい読み取りを可能とするバーコード認識方法を提供することである。
【００２０】
【課題を解決するための手段】
本発明のバーコード認識方法、すなわち光学機器を用いてバーコードを読み取るバーコード認識方法は少なくとも画像抽出過程、文字領域分割過程、およびパターン変換過程を備える。
【００２１】
画像抽出過程は、バーコードを走査して１ラインの画像データを抽出するものであり、文字領域分割過程はその１ラインの抽出画像を、文字を構成するパターン毎に分割するものであり、パターン変換過程は分割されたパターンを文字に変換するものである。
【００２２】
図１は本発明のバーコード認識方法の原理的な処理説明図であり、ステップＳ１は画像抽出過程に、またステップＳ２は文字領域分割過程に相当する。
ステップＳ３からステップＳ５はパターン変換過程に相当し、ステップＳ３に相当するモジュール領域分割過程、ステップＳ４に相当するモジュール値決定過程、およびステップＳ５に相当するモジュールデータ変換過程とによってパターン変換過程が構成される。
【００２３】
ステップＳ３のモジュール領域分割過程では、文字領域分割過程によって分割されたパターンが、バーコードの黒バー、または白バーを構成する最小単位の幅のモジュールの数で分割され、ステップＳ４のモジュール値決定過程では、分割されたモジュールが黒バー、または白バーのいずれに相当する値を持つかが決定され、ステップＳ５に相当するモジュールデータ変換過程では、モジュールで構成されるパターンが文字に変換される。
【００２４】
発明の実施の形態においては、バーコード認識方法において、画像抽出過程によって抽出された１ラインの画像データが複数の色成分を持つ多値画像データである時に、そのデータを単一の色成分を持つ階調画像データに変換し、文字領域分割過程に与える画像データ変換過程を更に備えることも、また抽出された１ラインの画像データにおいて不足のデータを補完して、文字領域分割過程に与える画像データ補完過程を更に備えることもできる。
【００２５】
また実施の形態においては、前述の文字領域分割過程がバーコードに含まれる黒バー、および白バーの合計数を検出するバー数検出過程と、黒バーおよび白バーの合計数に対応してバーコードに含まれる文字の数を検出する文字数検出過程と、検出された文字数に対応して文字を構成するパターンの境界を決定する境界決定過程を備えることもできる。
【００２６】
さらにバー数検出過程において１ラインの画像データを示す曲線の変曲点の数に対応して黒バー、および白バーの合計数を検出することも、更にその変曲点のうちで変曲点をはさむ曲線の山頂の値と谷底の値との差がある一定値以上となる変曲点の数を数えることもできる。
【００２７】
また実施の形態においては、文字領域分割過程において曲線の変曲点の中から文字を構成するパターンの境界を求めることもできる。この場合、前述の山頂の値と谷底の値との差がある一定値以上となる変曲点の中から境界を求めることもできる。
【００２８】
実施の形態においては、バーコード認識方法において、１ラインの画像データを用いて前述のモジュールの値が黒か白かを決定するための閾値を算出する閾値算出過程を更に備え、前述のモジュール値決定過程において、分割されたモジュール毎にモジュールに含まれる画素のデータを閾値と比較して、モジュールの値を決定することもできる。
【００２９】
この場合、閾値算出過程において１ラインの画像データを用いて画像データの度数分布を求め、度数分布曲線上でデータの値が最も大きい部分にあるピークと、最も小さい部分にあるピークとにそれぞれ対応する２つのデータの平均値を閾値とすることもでき、また画像データの取り得る最大値と最小値の中央の値で２つの領域に度数分布の曲線を分割し、画像データの大きい領域中での最大のピークと、小さい領域中での最大のピークとにそれぞれ対応する２つのデータの平均値を閾値とすることもできる。
【００３０】
更に閾値算出過程において、１ラインの画像データを文字を構成する各パターン毎に分割し、各パターン毎に閾値を算出することもできる。
実施の形態においては、前述の文字領域分割過程が前述の閾値算出過程を更に備え、１ラインの画像データを示す曲線と算出された閾値との交点の中から、文字を構成するパターンの境界を求めることもでき、この場合閾値算出過程において、前述のようにデータの値が最も大きい部分にあるピークと、最も小さい部分にあるピークとにそれぞれ対応するデータの平均値、またはデータの大きい領域中での最大のピークと、小さい領域中での最大のピークとにそれぞれ対応するデータの平均値を閾値とすることもできる。
【００３１】
次に本発明のバーコード認識用デコード処理装置は、光学機器によって読み取られたバーコードデータの認識を行うためのものであり、光学機器によるバーコードの読み取り結果を走査して１ラインの画像データを抽出する画像抽出手段と、１ラインの抽出画像を文字を構成するパターン毎に分割する文字領域分割手段と、分割されたパターンを文字に変換するパターン変換手段とを備える。
【００３２】
実施の形態においては、この場合光学機器がバーコードが印刷された媒体を検出する媒体検出手段を備え、画像抽出手段が媒体検出結果に対応して１ラインの画像データ抽出を行うこともでき、また媒体検出手段は光学的に媒体を検出する光学的スイッチであることもできる。
【００３３】
更に本発明においてバーコードデータの認識処理を行う計算機によって用いられる記憶媒体として、光学機器によるバーコードの読み取り結果を走査して１ラインの画像データを抽出するステップと、その１ラインの抽出画像を文字を構成するパターン毎に分割するステップと、分割されたパターンを文字に変換するステップとを計算機に実行させるためのプログラムを格納した計算機読み出し可能可搬型記憶媒体が用いられる。
【００３４】
以上のように本発明によれば、バーコードの走査によって１ラインの画像データが抽出され、その１ラインの抽出画像が文字を構成するパターン毎に分割され、分割されたパターンを文字に変換する認識方法が用いられる。
【００３５】
【発明の実施の形態】
図２は本発明のバーコード認識装置の実施形態の構成ブロック図である。本実施形態では、例えば携帯電話に付属しているカメラなどの汎用の光学機器１０と、パソコン（ＰＣ）、パーソナル・ディジタル・アシスタント（ＰＤＡ）などのバーコードデコード装置に相当するデコード処理部１５とが組み合わされて、バーコード認識装置が構成される。
【００３６】
汎用の光学機器を用いると、バーコードと光学機器の読み取り位置との関係や、レンズのピント調整機能などによって入力データに歪みが生じる場合があるが、バーコードの認識方法に工夫を加えることによって、光学機器の種類に無関係に、また読み取り精度を落とすことなく、バーコードの読み取りと認識が可能な装置を提供する。
【００３７】
図２において光学機器１０は画像読み取り部１１、光電変換部１２、およびＡ／Ｄ変換部１３を備え、読み取られた画像データはディジタルデータとして出力される。
【００３８】
デコード処理部１５は、光学機器１０から与えられたディジタル画像データを入力として、バーコード認識結果としての文字や数字、あるいは記号を出力するものであり、バーコード領域抽出部１６、デコード処理部１７、およびバーコード情報出力部１８を備えている。
【００３９】
このように本実施形態では、光学機器１０によって得られた画像データを、アプリケーションを実装することができ、かつ処理後の内容をディスプレイなどに出力可能なＰＣ、ＰＤＡなどのデコード処理部１５で処理することにより、バーコードの認識が実現される。
【００４０】
すなわちデコード処理機能をＰＣやＰＤＡに搭載することにより、汎用の光学機器、例えばディジタルカメラやスキャナ、レーザスキャナなどと組み合わせることによって、バーコードの読み取りが可能となる。例えばＣＦ（コンパクトフラッシュ（R））形式のディジタルカメラとＰＤＡを用いることにより、後述するデコード処理機能をアプリケーションとしてＰＤＡに搭載することによって、専用のデコードソフトウエアを備えることなく、バーコードの読み取りが可能となる。
【００４１】
なおここでは、図２に示すように光学機器１０とデコード処理部１５が分離可能なものとして発明の実施形態を説明するが、本発明のバーコード認識方法は、従来から使用されているバーコード読み取り専用の機器に対しても適用できることは当然であり、そのような専用機器に本発明の認識方法を適用すれば、認識精度が更に向上することが期待される。
【００４２】
図３は本実施形態におけるデコード処理のフローチャートである。同図において処理が開始されると、まずステップＳ１１で光学機器によって得られた画像データが、例えばＲＧＢの色成分を持つ多値画像であるか否かが判定され、多値画像である場合にはステップＳ１２で単一の階調画像への変換処理が行われる。単一階調画像への変換によってデータ量を少なくして、その後の処理を簡易化できる。
【００４３】
単一の階調画像への変換方法としては、差分フィルタを用いて微分値を画素成分とする画像を作成したり、ＲＧＢ色成分のうち１つの色成分を階調画像としたり、それ以外の変換方法を利用したりすることができるが、本実施形態ではカラーテレビなどの符号化方式としてのコンポーネント符号化に相当するＹＣb Ｃr 変換を行い、輝度成分Ｙ、色差成分Ｃb Ｃr のうちで、Ｙ成分に着目して階調画像を作成することとする。
【００４４】
この処理では、入力画像のＲＧＢ３つの色成分を所定の比率を用いて加算した値を出力値とする処理が行われる。入力画像を
Ｉｍａｇｅ（ｘ，ｙ）＝（Ｒ（ｘ，ｙ），Ｇ（ｘ，ｙ），Ｂ（ｘ，ｙ））
とすると、出力画像は次式によって求められる。
【００４５】
ｆ（ｘ，ｙ）＝ａ1 ×Ｒ（ｘ，ｙ）＋ａ2 ×Ｇ（ｘ，ｙ）＋ａ3 ×Ｂ（ｘ，ｙ）
ここでＲ（ｘ，ｙ），Ｇ（ｘ，ｙ），Ｂ（ｘ，ｙ）は色成分を表し、ａ1 ，ａ2，およびａ3 は所定の係数であり、本実施形態ではこれらの係数の値として、例えば次の値を用いる。
【００４６】
ａ1 ＝０．２９９，ａ2 ＝０．５８７，ａ3 ＝０．１１４
図４は単一の階調成分の画像データの例である。同図は１ラインの画像データの、例えば左端の部分を示し、左側のマージンに対応する白の階調値（約２００）の後に、レフトガードバーの黒，白，黒に相当する階調値低，高，低の部分が続き、さらに幅の広い白、狭い黒に相当する階調値が得られている。なお図の横軸は画素の座標を示す。
【００４７】
ステップＳ１２で階調変換処理が行われた後、あるいはステップＳ１１で多値画像でない場合には直ちに、ステップＳ１３の処理が行われる。ステップＳ１３では、補完処理として入力画像を幾何学的に拡大したり、補完したりする処理が行われる。例えば携帯電話のカメラを用いるような場合、光学機器の読み取り解像度が低いために、デコードに必要なだけのデータサイズを満たすことができない場合がある。バーコードの黒バーまたは白バーを構成する最小単位の幅の線に相当するモジュールの幅に対して、光学機器の読み取り解像度が低い場合には１モジュールあたりの画像データが不足して、そのモジュールが黒であるか白であるかを正確に判定することが不可能となる。
【００４８】
例えば１モジュールの幅が０．２６ｍｍのバーコードでは、１インチあたりのモジュールの数は約９８本となる。このバーコードを読み取り解像度が１５０ｄｐｉの光学機器で読み取ったとすると、画像中の１モジュールに相当する画素の数は約１．５個となり、モジュールの値（黒か白）を決定するためには画素の数が不足する。このような場合には補完処理を施すことによって画素の不足を補うことが必要となる。補完処理の方法としては線形補完、もしくはスプライン補完など、任意の補完方式を利用することができる。
【００４９】
ステップＳ１３の補完処理が終了し、デコード処理のためのデータに対する前処理が終了すると、本実施形態ではバーコード画像の文字情報単位への分割が行われる。この処理は図３のステップＳ１４〜Ｓ１７で行われるが、この文字情報単位への分割、およびその後の各モジュールの値の決定などに使用される閾値を求める処理が、最初にステップＳ１４で行われる。
【００５０】
図５、および図６はこの閾値決定方法の説明図である。この閾値決定処理においては、図３のステップＳ１２における階調変換処理の結果としての単一の階調データを用いて閾値が求められる。前述のようにＹＣb Ｃr 変換の結果としてのＹ成分、すなわち輝度成分の階調値を本実施形態では２５６段階とし、入力画像の例えば各画素に対応する階調値の度数分布を作成して、閾値が求められる。
【００５１】
図５においては、この度数分布が２つのピークを持っている。バーコードは黒バーと白バーとで構成されるため基本的には輝度の高い白に対応するピーク値と、輝度の低い黒に対応するピーク値との２つのピークができることになり、度数分布に２つのピークだけが生ずる場合には、この２つのピークに対応する階調値の中間の値が閾値の値として求められる。度数分布に３つ以上のピークが生ずる場合には、階調値が最も高い位置にあるピークと、階調値が最も低い位置にあるピークとにそれぞれ対応する階調値の中間の値を閾値として求めることもできる。
【００５２】
図６は閾値を決定する別の方法の説明図である。バーコードに汚れがあったり、レンズのピント調整機能の影響などによって、階調値の度数分布に３つ以上のピークが生ずることがある。このような場合、図６では度数分布曲線を階調値の最高２５５と最小０との間の中間の値１２８を境として、階調値の高い領域と低い領域とに分け、それぞれの領域で生ずるピークの中で最も高いピークに着目して、それぞれのピークに対応する階調値の中間の値として閾値が求められる。
【００５３】
このような閾値の決定方法を用いることにより、単純に階調値範囲０〜２５５の中央値の１２８を閾値とする場合に比較して、バーコードの印刷紙面が白でないときや、バーコードの黒バーが薄いときなどにも、後述するモジュール値の決定を正しく行うことができる。
【００５４】
続いて図３のステップＳ１５でバーの数、すなわち黒バーと白バーとの合計の数の検出が行われる。図４で説明したように、バーコードの中の白バーに対しては階調値としての輝度の値が大きく、また黒バーに対しては階調値が小さくなる。そこで画素の座標に対応する横軸に対する階調値の曲線上で、黒バーと白バーとの境界には変曲点が生ずることになる。本実施形態では、この変曲点の数を求めることによって黒バーと白バーとの合計の数が求められる。
【００５５】
図７、および図８はこの変曲点の抽出方法の説明図である。図７では１ライン上の画像データにおいて、山頂の値と谷底の値との差がある一定値以上となる場合に、その中間の変曲点が求められ、変曲点の総数から黒バーと白バーとの合計の数が決定される。
【００５６】
図８は変曲点を抽出すべき差分の説明図である。同図において山頂の値と谷底の値との差が小さな場合には、その間の変曲点の抽出は行われない。山頂の値をＭＡＸ、谷底の値をＭＩＮとする時、判定値を用意し、次の不等式を満足する場合に変曲点としてその数が求められる。これによって、ノイズを多く含む画像からも正確にバーの数を求めることができる。
【００５７】
判定値＜ＭＡＸ−ＭＩＮ
図３のステップＳ１６でバーコードに含まれる文字情報の数が検出される。この文字情報の数の検出は、ステップＳ１５で求められた黒バーと白バーとの合計数と、各バーコードに含まれるべき変曲点の数との比較によって行われる。
【００５８】
例えば日本における流通統一シンボルとしてのＪＡＮ（ジャパン・アーティクル・ナンバー）コードの標準バージョンでは１３桁、短縮バージョンでは８桁の数字が格納されるが、標準バージョンにおいて黒バーと白バーとの組合せから決定される文字情報（数字）の数は１２個であり、残りの１個はバーコードの中央にあるセンターバーから左側の６つの数字の奇数パリティと偶数パリティとの組合せによって決定される。このＪＡＮコードや、その他のバーコードの詳細については、次の非特許文献に記載されている。
【００５９】
【非特許文献】
平本純也「知っておきたいバーコード・二次元コードの知識」
日本工業出版（平成３年）
ＪＡＮコードでは、１個の数字は２本の黒バーと２本の白バーとによって表現され、センターバーは２本の黒バーと３本の白バーとによって表現される。更にバーコードの最も左側で、その右側から数字を表すコードが格納される左側ガードバーと、最も右側でその左側迄のコードが数字を示す右側ガードバーとは、それぞれ２本の黒バーと１本の白バーとから構成される。
【００６０】
そのため標準バージョンの１３桁のバーコードでは、合計６０個の変曲点が存在する。また短縮バージョンの８桁のバーコードでは、４４個の変曲点が存在する。そこでステップＳ１５で検出された黒バーと白バーとの合計数に対応する変曲点の数が６０であれば１３桁、４４であれば８桁のＪＡＮコードであることが判明する。
【００６１】
ＪＡＮコード以外のバーコードであるＩＴＦ（インタリーブド・ツーオブ・ファイブ）コード、ＣＯＤＥ３９、ＮＷ−７、およびＣＯＤＥ１２８では、バーコードが格納している文字の数をそれぞれ６個として、変曲点の数はそれぞれ３８、８０、６４、および２８となる。例えばステップＳ１５で求められた変曲点の数が、これらのそれぞれのバーコードに対応する変曲点の数のいずれに近いかによって、格納されている文字の数を求めることができる。
【００６２】
続いて図３のステップＳ１７でバーコード領域が各文字情報単位に分割される。前述のようにバーコードはセンターバーを中心に左右の領域に分かれている。例えばＪＡＮコードでは、レフトガードバーとセンターバーとの間に６桁、センターバーとライトガードバーとの間に６桁の数字が格納される。各数字（文字）の格納領域は、基本的には前述の変曲点を境として分割することにする。バーコード領域を単純に文字数で分割する場合に比較して、画像に歪みがあるときなどにも正確に文字領域の境界を求めることができる。
【００６３】
ＪＡＮコードではセンターバーより左側の領域では白バー、黒バー、白バー、黒バーの順序で黒バーと白バーとが並べられ、それぞれの白バーと黒バーが何本のモジュールで構成されるかにより、その領域に対応する文字が決定される。従ってレフトガードバーとセンターバーとの間では、（１つの）文字（数字）領域の開始位置と終了位置では立ち上がりの変曲点がそれぞれ境界となる。
【００６４】
これに対してセンターバーとライトガードバーとの間では、それぞれの文字は黒バー、白バー、黒バー、白バーの順序のコードで表され、１つの文字領域の開始位置と、終了位置は立ち下がりの変曲点によって境界づけられることになる。
【００６５】
図９はこの文字領域の分割例の説明図である。同図はレフトガードバーより右側、すなわちセンターバーとの間の領域を文字単位に分割した結果を示す。文字領域、すなわちキャラクタ領域はレフトガードバー、すなわち２本の黒バーと１本の白バーとによって構成されるバーの右側から始まるが、最初の文字の文字領域の開始位置、および終了位置はそれぞれ立ち上がりの変曲点によって表される。
【００６６】
境界を含めれば、１つの文字領域には５つの変曲点が入るが、最初の変曲点から見れば４つ目の変曲点までが１つの文字領域として分割される。すなわちＪＡＮコードではレフトガードバーとセンターバーの間の領域、およびセンターバーとライトガードバーとの間の領域を４つの変曲点毎に区切れば、それぞれの文字領域の単位に区切ることが可能となる。
【００６７】
その他のコード、例えばＩＴＦコードでは１つの文字領域は５本の黒バー、もしくは白バー、ＣＯＤＥ３Ｑでは５本の黒バーと４本の白バー、ＮＷ−７では４本の黒バーと３本の白バー、ＣＯＤＥ−１２８では３本の黒バーと３本の白バーとで表される。このことを考慮して、変曲点を境として、文字領域をそれぞれの文字単位に分割することが可能となる。
【００６８】
ステップＳ１７でバーコード領域が各文字単位に分割されると、ステップＳ１８〜Ｓ２１において、各文字単位に分割された領域が更にモジュール単位に分割され、モジュールの値、すなわち黒か白かが決定され、その値を用いて各文字領域がどの文字を表すか、すなわち文字情報への変換が行われる。
【００６９】
まずステップＳ１８でバーコードに含まれるモジュールの数が検出される。１つの文字単位の領域がいくつのモジュールによって構成されるかはコードの種類によって決まっており、例えばＪＡＮコードでは１つの文字は７つのモジュールで構成され、ＣＯＤＥ−１２８では１１個のモジュールで構成される。ステップＳ１５で変曲点の数に基づいて黒バーと白バーとの合計数が検出され、その結果に応じてバーコードの種類が判定されるため、その時点で実際には１つの文字単位の領域に対するモジュールの数は決定されている。
【００７０】
図３のステップＳ１９で各文字領域がモジュール単位に分割される。例えばＪＡＮコードでは１つの文字領域は７つの領域に分割される。図１０はその分割例の説明図である。図１０では図９と異なり、１つの文字領域は階層値の曲線と前述の閾値との交点から求められている。このように閾値との交点を文字領域の境界とすることによって、画像データにノイズが多く、正確な変曲点を求めることが困難な場合でも、文字領域を分割することが可能となる。
【００７１】
図１０において横軸は画像の座標を示しており、黒い菱形は各画素に対応する階調値を示している。１つの文字領域が７つに分割されたそれぞれのモジュールの内部には３つの画素が含まれている。
【００７２】
続いて図３のステップＳ２０でモジュールの値、すなわち黒か白かが決定される。図１１〜図１３はその決定法の説明図である。図１１は第１の決定方法の説明図であり、各モジュールの中でそれぞれの画素に対応する階調値が閾値よりも大きいか小さいかを調べ、閾値より大きな画素の数と小さな画素の数とを比較して、グリッドの値が決定される。
【００７３】
すなわち図１１において、最初のモジュールを構成する３個の画素に対する階調値はいずれも閾値より小さく、そのモジュールは黒と判定される。３番目のモジュールに対しては３つの画素に対応する階調値はいずれも閾値よりも大きく、モジュールは白と判定され、６番目のモジュールに対しては３つの画素の階調値は閾値よりも小さく、モジュールは黒と判定される。なお図１１においては、１つの文字領域の境界は閾値との交点でなく、変曲点によって決定されているものとする。
【００７４】
このように閾値よりも大きな階調値を持つ画素の数と、小さな階調値を持つ画素の数とを求め、その数の大小を比較してモジュールの値を決定することによって、画像が歪んでモジュールの領域が多少ずれていたとしても、正確にモジュールの値を判別することが可能となる。
【００７５】
図１２、および図１３はモジュールの値の第２の決定方法の説明図である。図１２は、図１１と同様に階調値の曲線と閾値との関係を示すが、７つのモジュールの中で最も右側（７番目のモジュール）と、その１つ前、すなわち左側から６番目のモジュールとに対するモジュールの値の決定方法を図１３によって説明する。
【００７６】
この第２の方法では、階調値の曲線が閾値の上にある面積と下にある面積とを比較し、どちらの面積が大きいかによってモジュールの値が決定される。図１３の（ａ）、すなわち６番目のモジュールに対しては閾値より上側の面積は０であり、当然閾値より下側の面積の方が大きく、モジュールの値は黒と判定される。これに対して（ｂ）の７番目のモジュールに対しては、閾値より上側の面積の方が下側の面積より大きく、モジュールの値は白と判定される。
【００７７】
このように閾値より上側にある面積と下側にある面積の大小を比較してモジュールの値を決定することによって、波形の立ち上がりや立ち下がりがゆるやかで、誤った判定が行われやすいピンぼけの画像などにおいても、正確にモジュールの値を判定することが可能となる。
【００７８】
以上の説明では、１ラインの画像データ全体の度数分布を用いて閾値を求めて、その値に対応してモジュールの値を決定するものとしたが、例えば文字を構成するパターン毎に閾値を求めて、その値を用いてモジュールの値を決定することもできる。これは外光の影響によって文字領域の明るさが一定でない場合などに有効となる。
【００７９】
モジュールの値が決定すると、図３のステップＳ２１でそのモジュールのパターンから文字情報への変換が行われて処理を終了する。この文字情報への変換は各バーコードの規定に対応して行われることは当然である。
【００８０】
次に本発明のバーコード認識用デコード処理装置の異なる実施形態について、図１４〜図１６を用いてさらに説明する。
バーコードの認識を行うためには、バーに直交する１ライン分の画像データがあればデコード処理を実施することができる。また読み取り対象となるバーコードが印刷された紙などが貼付された媒体、例えば商品に読み取り装置が接触していることが分かれば、そのタイミングで１ライン分の画像を受け取ることによって、認識処理を実行することができる。
【００８１】
バーコード画像を入力するための光学機器としてスキャナを用いる場合には、対象のバーコードをスキャンしてバーコード画像を入力した上で、バーコードの認識を行う必要があった。またスキャナを、例えばＰＤＡなどと接続して画像入力を行うためには、ＰＤＡ側からスキャナに対して読み取りなどの操作の指示が必要であった。
【００８２】
図１４に示す実施形態においては画像読み取り装置、例えばスキャナに媒体検出部を設け、媒体が検出された時点で、１ライン分の画像データの取得と認識との処理を認識が成功するまで繰り返すことによって、バーコード認識に必要な操作の開始や終了を自動的に行うことができ、操作性を向上させることができる。
【００８３】
媒体検出部として、パッケージの内部に発光素子と受光素子とを備える光学式反射型フォトセンサ（フォトインタラプタ）を用いることによって、媒体の検出を非接触で行うことが可能となる。
【００８４】
図１４において、図２の光学機器１０に対応するスキャナ部２０と、デコード処理部１５に対応する情報処理部２５とによってバーコード認識装置が構成されている。スキャナ部２０は、前述の媒体検出部２１、画像読み取り部２２、およびスキャナ制御部２３を備え、情報処理部２５は、バーコード認識制御部２６とバーコード認識部２７とを備えている。
【００８５】
図１５は図１４のバーコード認識装置における処理のフローチャートである。同図において処理が開始されると、まずステップＳ３１で、例えば前述のＰＤＡからスキャナへの画像読み取り指示に対応して読み取りモードが開始され、ステップＳ３２で媒体検出部２１によって、例えば接触検出用機械的センサによって媒体への接触が検出されたか否かが判定され、検出されていない場合にはその判定が続行される。
【００８６】
媒体が検出された場合には、ステップＳ３３で１ライン分の画像データ読み取りが画像読み取り部２２によって実行される。この画像読み取りでは、媒体検出部２１によって媒体への接触が検出された時点で、その結果がスキャナ制御部２３を介して情報処理部２５内部のバーコード認識制御部２６に通知される。そしてバーコード認識制御部２６から、スキャナ制御部２３に対して１ライン分の画像読み取りが指示される。
【００８７】
ステップＳ３４で１ライン分の画像データの認識がバーコード認識部２７によって行われ、ステップＳ３５で認識が成功したか否かが判定され、成功していない場合には再びステップＳ３３以降の処理が、認識が成功するまで繰り返される。
【００８８】
認識が成功するとステップＳ３６で認識結果が出力され、例えばＰＤＡ側の操作に応じてステップＳ３７で読み取りモードが終了と判定された場合には処理を終了し、読み取りモードが終了していない場合にはステップＳ３２以降の処理が繰り返される。これによって、媒体の検出から認識結果出力までのバーコード認識の処理の開始および終了を自動的に行うことができ、認識装置の操作性を向上させることができる。
【００８９】
図１６はこの実施形態における認識装置の構成をスキャナの読み取り面側から見た構成図である。読み取り面には光学式フォトセンサが搭載されており、媒体の検出が可能となる。左側のＰＤＡの操作スイッチは通常表示器の下に配置され、読み取り装置のフォルダとは離れている。そこで操作スイッチでバーコード認識の開始および終了などの指示を行う場合には、読み取り装置から１度手を離す必要があったが、媒体検出にフォトセンサを用いることによって読み取り開始および終了などの指示を行う必要がなくなる。また媒体の検出を非接触で行うことができ、接触して媒体検出を行う機械式スイッチに比べて、装置の寿命が長くなることが期待できる。
【００９０】
以上において、本発明のバーコード認識方法およびデコード処理装置についてその詳細を説明したが、このデコード処理装置は当然一般的なコンピュータシステムとして構成することが可能である。図１７はそのようなコンピュータシステム、すなわちハードウエア環境の構成ブロック図である。
【００９１】
図１７においてコンピュータシステムは中央処理装置（ＣＰＵ）３０、リードオンリメモリ（ＲＯＭ）３１、ランダムアクセスメモリ（ＲＡＭ）３２、通信インタフェース３３、記憶装置３４、入出力装置３５、可搬型記憶媒体の読み取り装置３６、およびこれらの全てが接続されたバス３７によって構成されている。
【００９２】
記憶装置３４としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、このような記憶装置３４、またはＲＯＭ３１に図１の処理説明図や図３のフローチャートに示されたプログラムなどが格納され、そのようなプログラムがＣＰＵ３０によって実行されることにより、本実施形態における汎用の光学機器を用いたバーコードの認識が可能となる。
【００９３】
このようなプログラムは、プログラム提供者３８側からネットワーク３９、および通信インタフェース３３を介して、例えば記憶装置３４に格納されることも、また市販され、流通している可搬型記憶媒体４０に格納され、読み取り装置３６にセットされて、ＣＰＵ３０によって実行されることも可能である。可搬型記憶媒体４０としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスクなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読み取り装置３６によって読み取られることにより、本実施形態におけるバーコードの正確な認識が可能となる。
【００９４】
（付記１）光学機器を用いてバーコードを読み取るバーコード認識方法において、
バーコードを走査して１ラインの画像データを抽出する画像抽出過程と、
該１ラインの抽出画像を、文字を構成するパターン毎に分割する文字領域分割過程と、
該分割されたパターンを文字に変換するパターン変換過程とを備えることを特徴とするバーコード認識方法（１）。
【００９５】
（付記２）前記画像抽出過程によって抽出された１ラインの画像データが複数の色成分を持つ多値画像データである時、
該多値画像データを単一の色成分を持つ階調画像データに変換し、前記文字領域分割過程に与える画像データ変換過程を更に備えることを特徴とする付記１記載のバーコード認識方法。
【００９６】
（付記３）前記画像抽出過程によって抽出された１ラインの画像データにおいて不足のデータを補完して、前記文字領域分割過程に与える画像データ補完過程を更に備えることを特徴とする付記１記載のバーコード認識方法。
【００９７】
（付記４）前記文字領域分割過程が、
バーコードに含まれる黒バー、および白バーの合計数を検出するバー数検出過程と、
該黒バー、および白バーの合計数に対応して、バーコードに含まれる文字の数を検出する文字数検出過程と、
該検出された文字数に対応して、前記パターンの境界を決定する境界決定過程とを備えることを特徴とする付記１記載のバーコード認識方法。
【００９８】
（付記５）前記バー数検出過程において、前記１ラインの画像データを示す曲線の変曲点の数に対応して、前記黒バー、および白バーの合計数を検出することを特徴とする付記４記載のバーコード認識方法。
【００９９】
（付記６）前記バー数検出過程において、前記変曲点のうちで、該変曲点をはさむ曲線の山頂の値と谷底の値との差がある一定値以上となる変曲点の数を数えることを特徴とする付記５記載のバーコード認識方法。
【０１００】
（付記７）前記文字領域分割過程において、前記１ラインの画像データを示す曲線の変曲点の中から、前記文字を構成するパターンの境界を求めることを特徴とする付記１記載のバーコード認識方法（２）。
【０１０１】
（付記８）前記文字領域分割過程において、前記変曲点のうちで、該変曲点をはさむ曲線の山頂の値と谷底の値との差がある一定以上となる変曲点の中から、前記パターンの境界を求めることを特徴とする付記７記載のバーコード認識方法。
【０１０２】
（付記９）前記文字領域分割過程において、前記文字を構成するパターン内で最も左側に黒バーが存在する時には傾きが負となる変曲点を、最も左側に白バーが存在する時には傾きが正となる変曲点を該パターンの開始境界とすることを特徴とする付記７記載のバーコード認識方法。
【０１０３】
（付記１０）前記文字領域分割過程において、前記文字を構成するパターン内で最も右側に黒バーが存在する時には傾きが正となる変曲点を、最も右側に白バーが存在する時には傾きが負となる変曲点を該パターンの終了境界とすることを特徴とする付記７記載のバーコード認識方法。
【０１０４】
（付記１１）前記パターン変換過程が、
前記分割されたパターンを、バーコードの黒バー、または白バーを構成する最小単位の幅のモジュールの数で分割するモジュール領域分割過程と、
該分割されたモジュールが黒バーまたは白バーのいずれを構成するかをモジュール値として決定するモジュール値決定過程と、
該モジュールで構成される前記パターンを文字に変換するモジュールデータ変換過程とを備えることを特徴とする付記１記載のバーコード認識方法（３）。
【０１０５】
（付記１２）前記バーコード認識方法において、前記１ラインの画像データを用いて、前記モジュールの値が黒か白かを決定するための閾値を算出する閾値算出過程を更に備えると共に、
前記モジュール値決定過程において、前記分割されたモジュール毎に該モジュールに含まれる画素のデータを該閾値と比較して、モジュールの値を決定することを特徴とする付記１１記載のバーコード認識方法。
【０１０６】
（付記１３）前記モジュール値決定過程において、前記モジュールに含まれる画素のうちで、画像データが閾値より大きい画素の数と閾値より小さい画素の数とを比較して、モジュールの値を決定することを特徴とする付記１２記載のバーコード認識方法。
【０１０７】
（付記１４）前記モジュール値決定過程において、前記モジュールの中で前記１ラインの画像データを示す曲線と前記閾値とで囲まれる面積のうちで、閾値より上にある面積と下にある面積とを比較して、モジュールの値を決定することを特徴とする付記１２記載のバーコード認識方法。
【０１０８】
（付記１５）前記閾値算出過程において、前記１ラインの画像データを用いて画像データの度数分布を求め、該度数分布曲線上でデータの値が最も大きい部分にあるピークと、最も小さい部分にあるピークとにそれぞれ対応する２つのデータの平均値を閾値とすることを特徴とする付記１２記載のバーコード認識方法。
【０１０９】
（付記１６）前記閾値算出過程において、前記１ラインの画像データを用いて画像データの度数分布を求め、該度数分布の曲線を画像データの取り得る最大値と最小値の中央の値で２つの領域に分割し、画像データの大きい領域中で最大のピークと、小さい領域中で最大のピークとにそれぞれ対応する２つのデータの平均値を閾値とすることを特徴とする付記１２記載のバーコード認識方法。
【０１１０】
（付記１７）前記閾値算出過程において、前記１ラインの画像データを前記各パターン毎に分割し、該各パターン毎に前記閾値を算出することを特徴とする付記１２記載のバーコード認識方法。
【０１１１】
（付記１８）前記文字領域分割過程が、前記１ラインの画像データを用いて、前記文字を構成するパターンの境界を求めるための閾値を算出する閾値算出過程を更に備え、
該１ラインの画像データを示す曲線と該算出された閾値との交点の中から、該パターンの境界を求めることを特徴とする付記１記載のバーコード認識方法（４）。
【０１１２】
（付記１９）前記閾値算出過程において、前記１ラインの画像データを用いて画像データの度数分布を求め、該度数分布曲線上でデータの値が最も大きい部分にあるピークと、最も小さい部分にあるピークとにそれぞれ対応する２つのデータの平均値を閾値とすることを特徴とする付記１８記載のバーコード認識方法。
【０１１３】
（付記２０）前記閾値算出過程において、前記１ラインの画像データを用いて画像データの度数分布を求め、該度数分布の曲線を画像データの取り得る最大値と最小値の中央の値で２つの領域に分割し、画像データの大きい領域中で最大のピークと、小さい領域中で最大のピークとにそれぞれ対応する２つのデータの平均値を閾値とすることを特徴とする付記１８記載のバーコード識方法。
【０１１４】
（付記２１）光学機器によって読み取られたバーコードデータの認識を行う認識用デコード処理装置において、
該光学機器によるバーコードの読み取り結果を走査して１ラインの画像データを抽出する画像抽出手段と、
該１ラインの抽出画像を、文字を構成するパターン毎に分割する文字領域分割手段と、
該分割されたパターンを文字に変換するパターン変換手段とを備えることを特徴とするバーコード認識用デコード処理装置。
【０１１５】
（付記２２）  前記光学機器がバーコードが印刷された媒体を検出する媒体検出手段を備えると共に、
前記画像抽出手段が、該媒体検出結果に対応して前記１ラインの画像データ抽出を行うことを特徴とする付記２１記載のバーコード認識用デコード処理装置。
【０１１６】
（付記２３）前記媒体検出手段は、光学的に媒体を検出する光学的スイッチであることを特徴とする付記２２記載のバーコード認識用デコード処理装置。
（付記２４）光学機器によって読み取られたバーコードデータの認識処理を行う計算機によって用いられる記憶媒体において、
該光学機器によるバーコードの読み取り結果を走査して１ラインの画像データを抽出するステップと、
該１ラインの抽出画像を、文字を構成するパターン毎に分割するステップと、
該分割されたパターンを文字に変換するステップとを計算機に実行させるためのプログラムを格納した計算機読み出し可能可搬型記憶媒体。
【０１１７】
【発明の効果】
以上詳細に説明したように本発明のデコード方式を用いることによって、汎用の光学機器と、ＰＣやＰＤＡなどのデコード処理部とを組み合わせることによってバーコード認識装置を提供することが可能となる。
【０１１８】
汎用の光学機器では、バーコードと光学機器との読み取り位置の関係や、レンズのピント調整機能などによって入力データに歪みが生じることがあるが、本発明のデコード方式を用いることによって、光学機器の種類と関係なく、読み取り精度をおとさずにバーコードの読み取りを実現することが可能となる。
【０１１９】
また光学機器、例えばスキャナにバーコードが印刷された媒体、例えば商品との接触を検出する媒体検出部を備えることによって、１ライン分の画像データの読み取りと認識を自動的に開始および終了することが可能となり、媒体検出部として光学的スイッチを使用することによって装置の操作性や信頼性を向上させることができる。
【０１２０】
更に専用のバーコード読み取りを用いる場合にも、本発明のバーコード認識方法を用いることによって、認識精度を更に向上させることが可能となり、バーコード認識方法の実用性の向上に寄与するところが大きい。
【図面の簡単な説明】
【図１】本発明のバーコード認識方法の原理的な処理説明図である。
【図２】本実施形態におけるバーコード認識装置の構成を示すブロック図である。
【図３】本実施形態におけるバーコードデコード処理のフローチャートである。
【図４】バーコード画像から抽出された１ラインの単一階調成分画像データの説明図である。
【図５】画像データの階調値に対する閾値決定の第１の方法の説明図である。
【図６】画像データの階調値に対する閾値決定の第２の方法の説明図である。
【図７】変曲点の抽出方法の説明図（その１）である。
【図８】変曲点の抽出方法の説明図（その２）である。
【図９】文字単位へのバーコード領域の分割の説明図である。
【図１０】１つの文字領域のモジュール単位への分割の説明図である。
【図１１】モジュールの値の第１の決定方法の説明図である。
【図１２】モジュールの値の第２の決定方法の説明図（その１）である。
【図１３】モジュールの値の第２の決定方法の説明図（その２）である。
【図１４】バーコード認識装置の異なる実施形態の構成を示すブロック図である。
【図１５】図１４の実施形態におけるバーコードデコード処理のフローチャートである。
【図１６】媒体検出部としてフォトセンサを用いる認識装置の構成を示す図である。
【図１７】本実施形態におけるプログラムのコンピュータへのローディングを説明する図である。
【図１８】バーコードデコード処理の従来例の説明図である。
【図１９】バーコードデコード処理装置の第１の従来例の構成を示すブロック図である。
【図２０】バーコードデコード処理装置の第２の従来例の構成を示すブロック図である。
【図２１】従来のバーコードデコード処理方法の問題点を説明する図である。
【符号の説明】
１０      光学機器
１１      画像読み取り部
１２      光電変換部
１３      Ａ／Ｄ変換部
１５      デコード処理部
１６      バーコード領域抽出部
１７      デコード処理部
１８      バーコード情報出力部
【図１】
2004185058.tif 000003
【図２】
2004185058.tif 000004
【図３】
2004185058.tif 000005
【図４】
2004185058.tif 000006
【図５】
2004185058.tif 000007
【図６】
2004185058.tif 000008
【図７】
2004185058.tif 000009
【図８】
2004185058.tif 000010
【図９】
2004185058.tif 000011
【図１０】
2004185058.tif 000012
【図１１】
2004185058.tif 000013
【図１２】
2004185058.tif 000014
【図１３】
2004185058.tif 000015
【図１４】
2004185058.tif 000016
【図１５】
2004185058.tif 000017
【図１６】
2004185058.tif 000018
【図１７】
2004185058.tif 000019
【図１８】
2004185058.tif 000020
【図１９】
2004185058.tif 000021
【図２０】
2004185058.tif 000022
【図２１】
2004185058.tif 000023