(57)【要約】【目的】手動走査のバーコード読み取り装置において誤読を低減する。【構成】初期デコードで出力されるエレメント幅やバーコードの種類・キャラクタからそのバーコードの構成からはずれるしきい値を算出して再度デコードしてデコードに成功した場合には当初のデコードは不正解であるとして破棄する事で誤読を防ぐ手動走査のバーコード読み取り装置【効果】手動走査のバーコード読み取り装置の性能向上が、後からの追加で簡単に行える。機能追加も容易に行えるものである。【選択図】  図９
2004234553.tif 000002
【特許請求の範囲】
【請求項１】
太または細の２値のエレメント群で構成されるバーコードイメージを読み取るバーコード読み取り装置であり、該バーコード読み取り装置には、手動で走査させて幅を測定する測定手段と、該測定手段による測定結果に基づき、前記エレメント毎の幅と、バーコードの規格に基づき、スタートキャラクタ、キャラクタ、ストップキャラクタ毎に構成する白エレメント、黒エレメントの全体、またはある特徴をもつ区画単位で所定のしきい値を算出し比較することで太、細を判断する判断手段と、前記太、細の並びからキャラクタを判断する解析手段を備えるバーコード読み取り装置において、前記バーコードのキャラクタ判断後、バーコードの読み取りが成功した場合に、再度前記白、黒エレメント毎の幅データを使用して、別のしきい値を用いて比較し、太、細を判断し、キャラクタを判断した結果、該当キャラクタが無い場合には正常、別のキャラクタと一致すれば異常として読み取りを破棄することを特徴とするバーコード読み取り装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、手動で走査する為に、安定した読み取りが期待できないバーコード読み取り装置において、バーコードイメージを構成するエレメント毎の幅の太、細を判断し、そのエレメント毎の幅の太、細の並びの構成からキャラクターを解析して、バーコードを読みとるバーコード読み取り装置に関するものである。
【０００２】
【従来の技術】
従来のバーコード種類としては、２値レベルコードとマルチレベルコードが知られている。２値レベルコードは太いエレメントと細いエレメントで構成されており、幅値について２レベルの値を持っている。この種のコードは、ＣＯＤＡＢＡＲ（ＮＷ−７）、２ｏｆ５、ＣＯＤＥ３９等が知られている。そして各エレメントが、太いか細いかをエレメント群より算出したしきい値と比較することによって判断し、その太、細の並び順で各キャラクタを判断するバーコード読み取り装置が知られている。
【０００３】
例えばＣＯＤＡＢＡＲのバーコード情報は、図３に示す様に１つのキャラクタが、４本のバーとそれにはさまれた３本のスペースの合計７本のエレメントで構成され、内２本が太いエレメントであるが、最初と最後のキャラクタとして付加されるスタート・ストップコード（Ａ〜Ｄ）は３本が太いエレメントである。従来、こうしたバーコードをデコードする際の各エレメントに対する太、細判断の一例として７本のエレメントからなるキャラクタの全長幅をＴとし、エレメント毎の幅を太が２、細が１と想定しスタートコードに反映させると２×３本＋１×４本＝１０となり、細いエレメント幅はＮ＝Ｔ÷１０、しきい値は太と細の間であるからＳ＝Ｎ×１．５として、各エレメントの幅をしきい値Ｓと比較してエレメント幅＞Ｓの場合に太いとし、他は細いと判断するものが知られている。また別のしきい値Ｓの算出方法として７本のエレメント中最大と最小のエレメントを探し、結果最大のエレメントは太、最小のエレメントは細であることは明白であり、二つの平均値をしきい値として、比較して各エレメントを判断していた。
【特許文献】
特開平１−１５６８８６号
特開平５−１０１２１４号
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術では、バーコードの走査が手動である場合に、バーコードの印刷に対して取り込んだエレメントの幅が安定せず、また途中からなぞることでキャラクタ単位での抜け等が発生し、誤読が発生するという問題がある。誤読の具体例としては太いエレメントが２０、細いエレメントが１０として構成されるＣＯＤＡＢＡＲで、スタートコードをとばしてキャラクタの「４」から走査した結果、各エレメントが８，８，１８，１４，１０，２１，１２になったとする。この場合に先頭はスタート・ストップコードとしてしきい値を求めることになり合計が９１から１３．６５となり細エレメントであるはずの１４が、太エレメントと判断されてしまう。そのため該当するキャラクタが「Ａ」となりスタート・ストップコードと一致しデコードできなく、結果誤読となってしまう。
【０００５】
【課題を解決するための手段】
そこで本発明では、バーコードの構成を考慮しＣＯＤＡＢＡＲであれば、デコード成功後に先頭にあるキャラクタのエレメントに対してスタート・ストップコードではないものとして、再度デコードしてデコードに成功した場合に先頭がスタート・ストップコードではないことになり、当初デコードに成功したものは誤読であると判断し破棄することで、正確な読み取りを可能にする。
【０００６】
【作用】
本発明ではバーコード読み取り後、バーコードの種類に応じて別途エレメント毎の判別を行うことで、誤読を低減できるバーコード読み取り装置を提供する。
【０００７】
【実施例】
以下、本発明の詳細を添付図面を参照して説明する。図１は本発明のバーコード読み取り装置外観図と使用例である。図２は内部のブロック図を示す。図３にはＣＯＤＡＢＡＲのキャラクター例と対応するイメージパターンと装置内テーブルデータ、図４は誤読しやすいコードの例、図５は走査時に取り込まれる信号とエレメントの幅にを表したもの、図６はエレメントの幅を数値化したサンプルデータ、図７は算出したそれぞれのしきい値、図８はしきい値から判断したエレメントの太細の表である。
【０００８】
次に実際の動作を図を参照しながら説明する。バーコード読み取り装置１を手で持ちバーコード２をなぞることで読み取りが開始される。ＣＰＵ３はＲＯＭ４に格納された制御ソフトと実行に必要なデータを格納するＲＡＭ５に従って、ＬＥＤ駆動回路を動作させ照明用のＬＥＤ１１を点灯させ、その反射光をレンズ１０で集光しセンサ９へ送りバーコード信号受信回路でデジタル信号化する。この時、図５に示す波形がＣＰＵ３に取り込まれ、バーコードの白い部分でＨＩＧＨ、黒い部分でＬＯＷを出力するものとしてデジタル変換された信号の切り替わり時間をタイマ６で計測し保存する。ここで得られた値は、各エレメントの幅値データである。
【０００９】
次にＣＰＵ３はバーコード２の解析を行う。バーコード２解析処理の例として、ＣＯＤＡＢＡＲで決められているバーコードを用いたキャラクタをデコードする様子を、図９のデコード概略フローにそって説明する。まずＣＯＤＡＢＡＲの特徴を簡単に説明すると、１つのキャラクタが４本のバーとそれにはさまれた３本のスペースの合計７本のエレメントで構成され、内２本が太いエレメントであるが、最初と最後のキャラクタとして付加されるスタート・ストップコード（Ａ〜Ｄ）は３本が太いエレメントである。図３に、ＣＯＤＡＢＡＲにおけるバーコードのキャラクタと、構成パターンをイメージとして図にしたものとの対応関係を表したものを抜粋して示す。またＣＰＵ３が参照するテーブルデータをバイナリとして列挙した。太いエレメントは「１」、細いエレメントは「０」にコード化されデータテーブル（図示せず）としてＲＯＭ４に格納されている。キャラクタとしては数字、記号、スタート・ストップコード（Ａ〜Ｄ）がある。
【００１０】
ここでスタート・ストップコードとそれ以外のコードを比較した場合、図４に示す例のように１つのエレメントのみの太さが違うだけであり、誤読の可能性が大きい関係である。デコード処理の開始として１キャラクター分のエレメント幅を取り込む（Ｓ１）。（以下、（Ｓ１）の様に書いた箇所は、ＣＰＵ３の処理の順番を示したものであるので、図９を参照されたい。）そこで例としてＣＯＤＡＢＡＲでのコード「４」と「Ａ」のバーコードをなぞった場合に、取り込まれた信号から各エレメントの幅データを検出した結果の値を一覧にしたものを図６に示す。ここでバーコード読み取り装置１で正常に走査出来れば、サンプル３のデータが取り込まれるが場所がずれた場合、先頭には無いサンプル１及び２のデータが先頭として取り込まれる可能性もある。
【００１１】
次にＣＰＵ３は処理（Ｓ３）として各エレメントの幅値から太、細を判断する為のしきい値を算出しなければならない。しきい値としてはスタート・ストップコードであれば太細が２対１の比率の場合に太３本、細４本であるから１キャラクタで細を基準とした全体の比は２×３＋１×４＝１０となり１キャラクタ分のエレメント幅値の合計を１０で割ったものが細の幅に相当するので、太い細いを判断するしきい値としては間の値が必要となり１．５倍することで最終のしきい値を算出する。
【００１２】
同様にスタート・ストップコード以外では太２本、細５本であるから１キャラクタで細を基準とした全体の比は、２×２＋１×５＝９となり１キャラクタ分のエレメント幅値の合計を９で割ったものが、細の幅に相当し１．５倍することで最終のしきい値となる。その参考しきい値として、１キャラクタのサイズに関係なく太りや細りの影響を受けにくいように、エレメント幅の中で最大、最小から２番目のエレメントを抽出する。これが必ず太いエレメント、細いエレメントとなるので２つの平均を求めればしきい値となる。以上の算出を図６に示すサンプルに対して行った結果が図７の表となる。
【００１３】
次に図７に示すしきい値を用いて、図６に示すサンプルの各エレメント幅に対してしきい値より大きければ太、小さければ細と判断（Ｓ３）した結果が図８の表となり、図３のデータと照合した結果一致するキャラクタがあればデコード成功となり、無ければ違う種類のバーコードまたはバーコードで無いと判断（Ｓ４）する事になる。今回の例のサンプルにおいてはサンプル１の「４」が先頭にあった場合は１３．６５がしきい値となり「Ａ」と判断されＣＯＤＡＢＡＲにおいて先頭が「Ａ」であることは特徴と一致するので判断が正常となってしまう。またスタート・ストップコードとそれ以外の区別なく太、細の平均値から求めたしきい値１３を用いても同じ結果となり、最終デコード結果は「Ａ」となり（Ｓ６）実際には誤読であるがバーコードが特定されてしまう（Ｓ６）。
【００１４】
そこでステップＳ７であえて先頭にあるエレメント幅に対してバーコードの構成と違うスタート・ストップコード以外に対応したしきい値１５．１６を用いて判断を行う。その結果として「４」と一致する（Ｓ８）事から、スタート・ストップコードであるべきところが違っている事が判断でき、この当初のデコード結果を破棄（Ｓ１０）することで誤読が回避できる。ここで正規のスタート・ストップコードに対して、それ以外のコードに対応したしきい値を用いて判断した結果、キャラクタとして一致するものが無い場合は当初の判読結果の「Ａ」が正解と判断できる（Ｓ９）。サンプル２及び３の判断結果は、どのしきい値を用いても「４」と「Ａ」となるので「４」が先頭にあればＣＯＤＡＢＡＲの特徴に一致しないので破棄、「Ａ」ならば正解となり確定したキャラクタをもってデコードを終了する。
【００１５】
【発明の効果】
本発明では、一度読み取りに成功したバーコードに対して読みとったバーコードの構成から、はずれるしきい値を算出して用いた結果構成からはずれるデータ読みとれてしまった場合に、当初の読み取りに成功したバーコードデータを破棄することで誤読が回避でき、結果読み取り精度の向上につながる効果がある。
【図面の簡単な説明】
【図１】バーコード読み取り装置外観概略図
【図２】バーコード読み取り装置ブロック図
【図３】ＣＯＤＡＢＡＲ構成表
【図４】誤読例
【図５】バーコードデジタル信号計測図
【図６】エレメント計測幅値例一覧表
【図７】しきい値算出例一覧表
【図８】判断結果例一覧表
【図９】デコード処理フロー図
【符号の説明】
１        バーコード読み取り装置外観
２        バーコード
３        ＣＰＵ
４        ＲＯＭ
５        ＲＡＭ
６    タイマ
７        バーコード信号受信回路
８        ＬＥＤ駆動回路
９        光学センサ
１０    レンズ
１１    ＬＥＤ
【図１】
2004234553.tif 000003
【図２】
2004234553.tif 000004
【図３】
2004234553.tif 000005
【図４】
2004234553.tif 000006
【図５】
2004234553.tif 000007
【図６】
2004234553.tif 000008
【図７】
2004234553.tif 000009
【図８】
2004234553.tif 000010
【図９】
2004234553.tif 000011