(57)【特許請求の範囲】
【請求項１】
ペン型のバーコード読み取り装置であって、バーコードを照明する発光素子と、前記バーコードからの反射光を受光し、受光した光量を光／電気量変換する受光素子と、該受光素子の出力を増幅する増幅器と、該増幅器の出力を入力してアナログ／デジタル変換するＡ／Ｄ変換器と、該Ａ／Ｄ変換器の出力を入力し、前記バーコードの各バーの白黒を判別して、前記バーコードの白黒の幅を検出して前記バーコードをデコードするマイクロプロセッサとから成り、該マイクロプロセッサが、前記Ａ／Ｄ変換器の出力の値から前記バーコードの各バーの白黒の幅を検出すると同時に、前記Ａ／Ｄ変換器の出力の前記バーコードの全ての白バーにおける白レベルのうち最大の白レベル及び最小白レベル、及び全ての黒バーにおける黒レベルのうち最小の黒レベル及び最大黒レベルを記憶し、白若しくは黒が一定時間連続した場合にはバーコードのパターンの読み取りを終了したものと見なして、前記最大の白レベルと前記最小の黒レベルとの差が、前記最小白レベルと前記最大黒レベルとの差の所定倍よりも大きい場合に、そこまで読み取った白黒のパターンをバーコードでないと判定してデコードせずに破棄することにより、バーコードでないデータを識別し除去することを特徴とするバーコード読み取り装置。
【請求項２】
ペン型のバーコード読み取り装置であって、バーコードを照明する発光素子と、前記バーコードからの反射光を受光し、受光した光量を光／電気量変換する受光素子と、該受光素子の出力を増幅する増幅器と、該増幅器の出力を入力してアナログ／デジタル変換するＡ／Ｄ変換器と、該Ａ／Ｄ変換器の出力を入力し、前記バーコードの各バーの白黒を判別して、前記バーコードの白黒の幅を検出して前記バーコードをデコードするマイクロプロセッサとから成り、該マイクロプロセッサが、前記Ａ／Ｄ変換器の出力の値から前記バーコードの各バーの白黒の幅を検出すると同時に、前記Ａ／Ｄ変換器の出力の前記バーコードの各白バーにおける白レベルのうち最大の白レベル及び最小白レベル、及び全ての黒バーにおける黒レベルのうち最小の黒レベル及び最大黒レベルを記憶し、各白バーにおける前記白レベルと前記最大黒レベルとの差が、前記最大の白レベルと前記最大黒レベルとの差の所定倍よりも大きい場合、もしくは各黒バーにおける前記最小白レベルと黒レベルとの差が、前記最小白レベルと最小の黒レベルとの差の所定倍よりも大きい場合に、そこまで読み取った白黒のパターンをバーコードでないと判定してデコードせずに破棄することにより、バーコードでないデータを識別し除去することを特徴とするバーコード読み取り装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バーコードを光／電気量変換し、各々の白バーおよび黒バーの幅を検出してデコードするペン型のバーコード読み取り装置に関する。
【０００２】
【従来の技術】
従来より、ペン型のバーコード読み取り装置として、バーコードを構成する白バー及び黒バーの判別をハードウエアで行って白バー及び黒バーの幅の情報をメモリに保持し、その情報をもとにデコードをソフトウエアで行う方式が提案されている。この場合、もし読み取る紙面にバーコードでない文字や模様がバーコードと隣り合っていて両方を読み取ってしまったとき、白黒判別はハードウエアが実行しているため、ソフトウエアは両方のパターンをデコードしてバーコードでないものを除去することができる。
一方、白バー及び黒バーの判別をも単一のマイクロプロセッサ上でソフトウエアにより行う方式も提案されている。これによってハードウエアを簡略化できる上、受光素子の出力信号をＡ／Ｄ変換した値において白バーと黒バーの境界とする閾値をソフトウエアにより調整できるため、より様々な状態の読み取り信号に対応することができる。この場合も、ハードウエアとして十分な量のメモリを装備しており、受光素子の出力信号をＡ／Ｄ変換した値をハードウエアでメモリに格納するような構成にすることによって、上記のような読み取る紙面にバーコードでない文字や模様がバーコードと隣り合っていて両方を走査してしまったときにも、ソフトウエアは白黒判別及びデコードを行うことにより、バーコードでない信号を除去してバーコードを得ることができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述の白黒判別とデコードをソフトウエアで行う方式では、バーコードのパターン全体の信号をＡ／Ｄ変換して保持しておくには大量のメモリが必要になってハードウエアを簡略化したメリットが失われる可能性がある上、搭載するメモリの量によって一度に読むことのできるバーコードの長さが制限されてしまうことも考えられる。
そこで信号のＡ／Ｄ変換値を保持せず、白黒を即時に判別して白バー及び黒バーの幅の情報のみを保持するような構成にすればメモリは少なくて済む。しかし単一のマイクロプロセッサ上でソフトウエア処理を行うため、白黒判別とデコードを同時に実行することはできない。従って、読み取る紙面にバーコードでない文字や模様がバーコードと隣り合っていて両方を走査してしまったときには、バーコードでない文字や模様を先に読み取ると、それをデコードしてバーコードでないことを確認する前に、ペン型のバーコード読み取り装置の読み取り部が印刷されたバーコードの部分に到達してしまう可能性がある。この場合マイクロプロセッサは依然としてデコードを行っているため白黒判別をすることができず、白黒判別が少なくともバーコードの途中からになってしまうためそのバーコードを読み落としてしまう。
【０００４】
【課題を解決するための手段】
本発明は如上の問題点に鑑みてなされたものであり、ペン型のバーコード読み取り装置であって、バーコードを照明する発光素子と、前記バーコードからの反射光を受光し、受光した光量を光／電気量変換する受光素子と、該受光素子の出力を増幅する増幅器と、該増幅器の出力を入力してアナログ／デジタル変換するＡ／Ｄ変換器と、該Ａ／Ｄ変換器の出力を入力し、前記バーコードの各バーの白黒を判別して、前記バーコードの白黒の幅を検出して前記バーコードをデコードするマイクロプロセッサとから成り、該マイクロプロセッサが、前記Ａ／Ｄ変換器の出力の値から前記バーコードの各バーの白黒の幅を検出すると同時に、前記Ａ／Ｄ変換器の出力の前記バーコードの全ての白バーにおける白レベルのうち最大の白レベル及び最小白レベル、及び全ての黒バーにおける黒レベルのうち最小の黒レベル及び最大黒レベルを記憶し、白若しくは黒が一定時間連続した場合にはバーコードのパターンの読み取りを終了したものと見なして、前記最大の白レベルと前記最小の黒レベルとの差が、前記最小白レベルと前記最大黒レベルとの差の所定倍よりも大きい場合に、そこまで読み取った白黒のパターンをバーコードでないと判定してデコードせずに破棄することにより、バーコードでないデータを識別し除去することを特徴とするバーコード読み取り装置を第１の要旨とし、ペン型のバーコード読み取り装置であって、バーコードを照明する発光素子と、前記バーコードからの反射光を受光し、受光した光量を光／電気量変換する受光素子と、該受光素子の出力を増幅する増幅器と、該増幅器の出力を入力してアナログ／デジタル変換するＡ／Ｄ変換器と、該Ａ／Ｄ変換器の出力を入力し、前記バーコードの各バーの白黒を判別して、前記バーコードの白黒の幅を検出して前記バーコードをデコードするマイクロプロセッサとから成り、該マイクロプロセッサが、前記Ａ／Ｄ変換器の出力の値から前記バーコードの各バーの白黒の幅を検出すると同時に、前記Ａ／Ｄ変換器の出力の前記バーコードの各白バーにおける白レベルのうち最大の白レベル及び最小白レベル、及び全ての黒バーにおける黒レベルのうち最小の黒レベル及び最大黒レベルを記憶し、各白バーにおける前記白レベルと前記最大黒レベルとの差が、前記最大の白レベルと前記最大黒レベルとの差の所定倍よりも大きい場合、もしくは各黒バーにおける前記最小白レベルと黒レベルとの差が、前記最小白レベルと最小の黒レベルとの差の所定倍よりも大きい場合に、そこまで読み取った白黒のパターンをバーコードでないと判定してデコードせずに破棄することにより、バーコードでないデータを識別し除去することを特徴とするバーコード読み取り装置を第２の要旨とするものである。
【０００５】
【作用】
本発明は、白黒判別とデコードを同一のマイクロプロセッサ上でソフトウエアにより実行し、白黒判別時若しくはデコード直前にバーコードでない文字や模様を読み取った信号を除去することにより、白黒判別をハードウエアにより行う場合よりもハードウエアを簡略化して様々な状態の信号に対応でき、且つ読み取る紙面にバーコードでない文字や模様がバーコードと隣り合っていて両方を走査してしまったときにもバーコードを読み落とすことがない。
【０００６】
【発明の実施の形態】
本装置は、バーコードを読み取るにあたり、白黒判別とデコードを同一のマイクロプロセッサ上でソフトウエアにより実行し、白黒判別時若しくはデコード直前に、デコードを試みるよりも少ない計算量で白バー及び黒バーの情報がバーコードであるかどうかを判断することにより、バーコードでない文字や模様を読み取った信号を除去するバーコード読み取り装置である。
【０００７】
【実施例】
以下本発明の詳細を、添付図面を参照して説明する。図１はバーコード読み取り装置の電気的構成概要図、図２は白黒判別の基本的な方法を示す図、図３は単一のマイクロプロセッサ処理による不具合を示す図、図４は読み取りにくい信号の図、図５はバーコード読み取りに関する状態遷移図である。本実施例では、ペン型のバーコード読み取り装置であって、ペン先（図示せず）でバーコード１を走査するとそれを読み取り、液晶などの組み込まれた表示装置１０に読み取った結果を表示するような装置を例に説明する。
【０００８】
本実施例によるバーコード読み取り装置の動作を説明する。電源２（＋Ｖ）からの電源供給により、定電流源３が発光素子４（発光ダイオードなど）に一定電流を供給する。それによって発光素子４は光を放射し、バーコード１を照明する。発光素子４とバーコード１との間には通常レンズや導光体などの光学部材（図示せず）があり、発光素子４の放射光を効率よくバーコード１の印刷面に伝達する。受光素子５（フォトトランジスタ、ＣＣＤラインセンサなど）は発光素子４が照明したバーコード１からの反射光の一部を受光し、光／電気量変換を行う。受光素子５とバーコード１との間にはレンズや導光体などの光学部材（図示せず）があり、反射光を効率よく受光素子５に伝達すると共に、バーコード１を読み取る解像度を高くしている。受光素子５の出力電流は、バーコード１の白／黒の変化に応じて変化する。本実施例ではペン型のバーコード読み取り装置であるので、ペン先でバーコード１を走査してその白／黒パターンを検出する。
【０００９】
演算増幅器７は受光素子５の出力電流を増幅する。Ａ／Ｄ変換器８は増幅された信号を入力とし、Ａ／Ｄ変換（アナログ／デジタル変換）してデジタル値化し、それをマイクロコンピュータ９に入力する。Ａ／Ｄ変換したデジタル値は受光素子５の出力をもとにしたものであり、反射光を測定したものであるから、印刷物が白いときには反射光が多いため大きく、黒いときには反射光が少ないため小さな値になる。マイクロコンピュータ９は内蔵するソフトウエアにより信号の白黒判別を行い、その後バーコードの切り出し及びデコードを行って、結果を表示装置１０に表示する。
【００１０】
次に白黒判別の基本的な方法を図２を用いて説明する。白黒判別は即時に行う。読み取ったデータ（Ａ／Ｄ変換器８によりデジタル値化されたデータ）から白と黒の境界とする閾値を決定し、読み取ったデータが閾値より大きな領域を白バー、小さな領域を黒バーと判別する。
より具体的には、ペン型のバーコード読み取り装置（図示せず）がバーコード１１を走査して、信号１２を得たとする（図２参照）。マイクロコンピュータ９は、得られた信号１２を定期的にＡ／Ｄ変換器８でＡ／Ｄ変換し、このデータを調べる。そのときにマイクロコンピュータ９は閾値１３を設定し、信号が閾値１３よりも大きくなったり小さくなったりするたびに、白に変化した、もしくは黒に変化した、と見なして白黒を判別する。
【００１１】
マイクロコンピュータ９は、一回の走査に対して、信号の最大値１４及び最小値１５をそれぞれ更新しながら保持する。また１本の白バーにおける信号の最大値を白レベルと呼び、各白バーにおける白レベルのうち最小のものを最小白レベル１６として更新しながら保持する。同様に１本の黒バーにおける信号の最小値を黒レベルと呼び、各黒バーにおける黒のうち最大のものを最大黒レベル１７として更新しながら保持する。そして閾値１３を、最小白レベル１６と最大黒レベル１７の中間に設定する。読み取り動作を始めてから初めて白から黒に変化するときは、最大黒レベルが不明であるので、閾値１３を、予め信号の最大値１４から一定量下がったところに設定しておく。すると、結果として出力１８を得るため、それぞれの持続時間を測定して幅を得ることができる。なお詳述はしないが、完全な即時判別でなく、各バーの極値を用いて幅に補正を加えることで、より正確な白黒判別を実現することも可能である。
【００１２】
本実施例によるペン型のバーコード読み取り装置は白黒判別とデコードとを同時に行うことはできない。図３を用いてそれに起因する不具合を詳細に説明する。バーコードでない文字や模様とバーコードが隣り合って印刷されており、ペン型のバーコード読み取り装置によってバーコードでない文字や模様を先に走査したとき、両者がある程度離れて印刷されていれば、読み取った信号は図３（ａ）に示す２１ａ及び２２ａのようになる。このときマイクロコンピュータ９に内蔵したソフトウエアはまずバーコードでない文字や模様の白黒判別を行い（２１ｂ）、パターンが終了するとデコードを行う（２１ｃ）。バーコード読み取り装置がバーコードに到達する前にデコードが終了するため、バーコード読み取り装置がバーコードを操作するときには白黒判別を行うことができる（２２ｂ）。
【００１３】
これに対して、バーコードでない文字や模様とバーコードとが近接して印刷されていると、読み取る信号は図３（ｂ）に示す２３ａ及び２４ａのようになる。マイクロコンピュータ９に内蔵したソフトウエアはまずバーコードでない文字や模様の白黒判別を行い（２３ｂ）、パターンが終了するとデコードを行う（２３ｃ）。しかしデコードが終了したときに、バーコード読み取り装置は既にバーコードを走査し始めているため、その後の白黒判別（２４ｂ）はバーコードの最初の方を読み落としてしまう。つまり、読み取るべき信号２４ａのうち、図中×印で示した部分においては、依然デコード（２３ｃ）を実行しているため、その部分を読み取って白黒判別することができず、従ってこのバーコードをデコードすることが出来ない。マイクロコンピュータ９の動作周波数を上げることでデコードにかかる時間を低減することにより不具合を回避できる可能性を高くすることができるが、コストや消費電流が問題になってしまう。
【００１４】
また、読み取った信号が図４の（ａ）及び（ｂ）に示すようになっている場合にも、バーコードを走査しているときに閾値が正しく設定できないため、白黒判別を正しく行うことができない可能性が高い。図４（ａ）は、バーコードのマージンの外側に何らかの色が地色として印刷されており、そこに文字や模様が別の色で印刷されているような場合である。図４（ｂ）は、バーコードが紙面に印刷されているときにその紙が薄く、紙の裏面やその下の紙面に印刷されている文字や模様が透けて見えており、それを読み取った場合である。それぞれ白黒判別の閾値の決定に用いる最小白レベル若しくは最大黒レベルがバーコードに到達するまでに誤った値に設定されてしまうため、白黒判別を正しく行うことができない。
【００１５】
上記の不具合に対して、これらを解消するためのバーコード読み取り装置の動作を図５の状態遷移図を用いて説明する。白黒判別を開始すると、マイクロコンピュータ９は白バーを読んでいる状態（Ｓ１）と黒バーを読んでいる状態（Ｓ２）とを交互にとる。Ｓ１とＳ２の間の遷移は、読み取り信号が設定した閾値を超えることにより発生する。このとき、白バーを読んでいる状態では信号の最大値つまり白レベルを、黒バーを読んでいる状態では信号の最小値つまり黒レベルを監視し、それらが極端に変化したらそこまでに保持した幅の情報や最小白レベル及び最大黒レベルをリセットする。これらの動作については後述する。
【００１６】
白若しくは黒が一定時間連続した場合にはタイムアウトとし、バーコードのパターンの読み取りを終了したものと見なす。その後レベルのばらつきによる判定を行ってから（Ｓ３）、読み取った白黒の幅のデータを白バ−および黒バ−の幅と見なし、デコードを試みる（Ｓ４）。データからバーコード部のみを切り出したり、特定の種類のバーコードにデコードする方法については、本発明に本質的な部分ではないので、ここでは述べない。白もしくは黒がどの程度連続したなら読み取りを終了するかについては、読み取るべきバーの太さと、走査する速度とから決めることができる。
【００１７】
まずレベルのばらつきによる判定について説明する。ある一つのバーコードを走査している最中には、白レベル（各白バーに対する信号の最大値）と黒レベル（各黒バーに対する信号の最小値）は一定であることが望まれる。ペン型のバーコード読み取り装置としては、もし走査しているときに装置の傾きが変化したりするとレベルは変化する恐れがあるが、非常に長いバーコードでなければ一回の走査中に装置の角度はそれほど変化しないため、あまり問題にならないと考えられる。従って、白黒判別を終了した後に、各白バー及び黒バーに対して白レベルと黒レベルのばらつきを調べれば、デコードせずにそれらがバーコードであるのかどうか判断できる可能性がある。
ばらつきを評価するには、それぞれ各バーの白レベルおよび黒レベルの値の標準偏差を計算する方法が考えられるが、計算量が多くなってしまう。代替量として、次に挙げるレベル間の最大幅と最小幅との比の値を用いることが可能だと考えられる。
（最大の白レベル−最小の黒レベル）÷（最小白レベル−最大黒レベル）
もし理想的な場合としてすべての白バーの白レベルが等しく、すべての黒バーの黒レベルが等しければ、この比の値は１になる。そして低い白レベルや高い黒レベルがあるほどこの比の値は大きくなり、それらはバーコードではないと見なすことができる。実際にバーコードでないと見なすこの比の限界値を決定するには、使用する光学ユニットの性能と読み取るべきバーコードの太さとの兼ね合いから、バーコードを読み取ったときの最大の比の値を求めて決定する必要がある。
【００１８】
ところで、前述したように、バーコードが紙面に印刷されているときにその紙が薄く、紙の裏面やその下の紙面に印刷されている文字や模様が透けて見えている場合がある。このとき白レベルは地の明るさが一定でないため、ある程度ばらついてしまう。従って白レベルのばらつきを用いると、バーコードであるにもかかわらずばらつきが大きいためバーコードでないと判断してしまう可能性がある。一方で黒レベルは裏面の印刷などに影響されにくいため、比較的安定することが期待できる。従って、上述したレベル間の最大幅と最小幅との比の値は、実際にはやや大きめな値にせざるを得ず、つまり緩やかな制限になってしまう。
そこで、比較的安定する黒レベルのばらつきを用いた判定法を併用する。それは、ある黒バーの黒レベルが、そこまでに走査した黒バーの中で最小の黒レベルに対して、十分近くにあることを条件とするものである。例えば、各黒バーに対して、
｜黒レベル−最小の黒レベル｜＜（最大の白レベル−最小の黒レベル）÷８
を評価し、条件が成立する黒バーの数を数えて、条件が成立する黒バーの数が黒バー全体の数の３／４を超えたらバーコードであると判断してデコードするようにするものである。具体的な数値は先ほどと同様、光学ユニットの性能と読み取るべきバーコードの太さとから決定するものである。
【００１９】
上の計算に用いる情報は白黒判別が終了した時点で即座に使用可能であるから、これらを評価してバーコードでない白黒パターンをデコードすることなく除去することが可能である。従って、読み取る紙面にバーコードでない文字や模様がバーコードと隣り合って印刷されており、バーコードでない文字や模様を先に読み取ってしまったときにも、バーコード読み取り装置がバーコードに到達する前にバーコードでない文字や模様をバーコードでないと判別し、白黒判別を再開することができる。
【００２０】
次に、白バーを読んでいる状態では信号の最大値を、黒バーを読んでいる状態では信号の最小値を監視し、それらが極端に変化したらそこまでに保持した幅の情報や最小白レベル及び最大黒レベルをリセットする動作を説明する。まず白バーを読んでいる状態での最大値について説明する。白バーの明るさは裏面などの状態によって多少ばらつくものの、バーコードを読み始めてからバーコードの途中において白レベルが極端に上昇することは本来あり得ない。従って、ある白バーにおいて白レベルがそれ以前のバーにおけるよりも極端に上昇したら、そこまでは実はバーコードではなかったと判断する。これを例えば次のような判定条件で実装することができる。
白レベル−最大黒レベル＞（最大の白レベル−最大黒レベル）×２
ただし条件式中の具体的な数値は先ほどと同様、光学ユニットの性能と読み取るべきバーコードの太さとから決定する。この条件が成立したときは、そのとき読んでいる白は少なくともマージンであると判断し、それまでに判別した白及び黒の幅の情報をすべて破棄し、黒レベルの最大値や最小値の情報も破棄して、最小白レベルをそのとき読んでいる白の白レベルにリセットする。
【００２１】
一方黒バーを読んでいる状態での最小値については、黒レベルはもともと比較的安定していると期待できるため、バーコードを読み始めてからバーコードの途中において黒レベルが極端に下降することはやはりあり得ない。従って、ある黒バーにおいて黒レベルがそれ以前のバーにおけるよりも極端に下降したら、そこまでは実はバーコードではなかったと判断する。これを次のような判定条件で実装することができる。
最小白レベル−黒レベル＞（最小白レベル−最小の黒レベル）×２
ただし条件式中の具体的な数値は先ほどと同様、光学ユニットの性能と読み取るべきバーコードの太さとから決定する。この条件が成立したときは、そのとき読んでいる黒はバーコードの１本目の黒バーであると判断し、それまでに判別した白の幅の情報をすべて破棄して現在読んでいる黒の幅のみ残し、黒レベルの最大値や最小値をそのとき読んでいる黒の黒レベルにリセットする。
【００２２】
これらの処置により、白黒判別をしている途中に、バーコードでない文字や模様、若しくは裏面やその下の紙面の印刷物を読んでいる状態からバーコードに到達した場合に、そこまでに設定されてしまった不正確な最小白レベルや最大黒レベルなどの情報をリセットすることにより、バーコードでない情報を即時的に除去することができ、バーコードの白黒判別を行うことが可能である。
【００２３】
【発明の効果】
本発明は以上のような構成となっているので、バーコードを読み取るにあたり、白黒判別とデコードを同一のマイクロプロセッサ上でソフトウエアにより実行し、白黒判別時若しくはデコード直前に、デコードを試みるよりも少ない計算量で白バー及び黒バーの情報がバーコードであるかどうかを判断することにより、バーコードでない文字や模様を読み取った信号を除去することができ、従ってバーコードの読み取り率が向上した。
【図面の簡単な説明】
【図１】  実施例の電気的構成図
【図２】  白黒判別の基本的な方法
【図３】  単一のマイクロプロセッサ処理による不具合
【図４】  読み取りにくい信号
【図５】  バーコード読み取りに関する状態遷移図
【符号の説明】
１    バーコード
２    電源
３    定電流源
４    発光素子
５    受光素子
６    基準電圧源
７    演算増幅器
８    Ａ／Ｄ変換器
９    マイクロコンピュータ
１０    表示装置
１１    バーコードパターン
１２    バーコード読み取り信号
１３    閾値
１４    信号の最大値
１５    信号の最小値
１６    最小白レベル
１７    最大黒レベル
１８    出力
２１ａ  バーコードでない文字や模様を読み取った信号
２１ｂ  マイクロコンピュータによる白黒判別動作
２１ｃ  マイクロコンピュータによるデコード動作
２２ａ  バーコードを読み取った信号
２２ｂ  マイクロコンピュータによる白黒判別動作
２３ａ  バーコードでない文字や模様を読み取った信号
２３ｂ  マイクロコンピュータによる白黒判別動作
２３ｃ  マイクロコンピュータによるデコード動作
２４ａ  バーコードを読み取った信号
２４ｂ  マイクロコンピュータによる白黒判別動作
【図１】
0004154815.tif 000002
【図２】
0004154815.tif 000003
【図３】
0004154815.tif 000004
【図４】
0004154815.tif 000005
【図５】
0004154815.tif 000006