(57)【特許請求の範囲】
【請求項１】
幅の異なる複数種の明色基準モジュール及び幅の異なる複数種の暗色基準モジュールから選ばれる複数の明色バー及び複数の暗色バーによって構成されるキャラクタを複数配列してなるバーコードを読み取るバーコード読取装置であって、
読取対象となる前記バーコードは、当該バーコードを構成する各キャラクタにおいて、前記明色基準モジュールの幅の合計値と前記暗色基準モジュールの幅の合計値との比率が、予め定められた複数の候補比率の中から選ばれるいずれか一つの比率となるべきものであり、
前記バーコードを撮像可能な撮像手段と、
前記撮像手段によって前記バーコードが撮像されたときの撮像結果に基づいて、当該バーコードにおける各明色バー及び各暗色バーのバー幅を測定するバー幅測定手段と、
前記候補比率毎に定められた誤差算出式をそれぞれ備え、誤差算出対象となるキャラクタにおける各バー幅の誤差を、当該キャラクタにおいて前記バー幅測定手段によって測定された各明色バーのバー幅測定値及び各暗色バーのバー幅測定値をパラメータとして、各候補比率に対応する各誤差算出式により各候補比率に対応させてそれぞれ求める誤差算出手段と、
前記誤差算出手段によって算出された前記候補比率毎の各誤差に基づき、それら候補比率毎に、各モジュール種別における幅値の許容範囲を設定する許容範囲設定手段と、
前記許容範囲設定手段によって設定された前記候補比率毎の許容範囲設定内容と、前記バー幅測定手段によって測定された各キャラクタにおける各明色バー及び各暗色バーの測定値とに基づいて、各キャラクタにおける各明色バー及び各暗色バーのモジュール種別を判定し、各キャラクタを解読するキャラクタ解読手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項２】
前記誤差算出手段は、前記バーコードを構成する前記キャラクタの誤差を算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値からそれぞれ誤差Δを減算したときの各減算後測定値の総和をＳｂとし、当該キャラクタにおける各明色バーの各バー幅測定値に対しそれぞれ誤差Δを加算したときの各加算後測定値の総和をＳｗとし、当該キャラクタ内における前記暗色基準モジュールのモジュール総数をＭｂとし、当該キャラクタ内における前記明色基準モジュールのモジュール総数をＭｗとしたときに、前記候補比率毎に、以下の式、
Ｓｂ／Ｍｂ＝Ｓｗ／Ｍｗ
を満たすΔを誤差として算出することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記誤差算出手段は、前記バーコードを構成する前記キャラクタの誤差を算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値の総和をＳ１とし、当該キャラクタにおける各明色バーの各バー幅測定値の総和をＳ２とし、当該キャラクタ内における前記暗色基準モジュールのモジュール総数をＭｂとし、当該キャラクタ内における前記明色基準モジュールのモジュール総数をＭｗとしたときに、前記候補比率毎に、以下の式、
Δ＝Ｓ１／（２×Ｍｂ）−Ｓ２／（２×Ｍｗ）
を満たすΔを誤差として算出することを特徴とする請求項１に記載のバーコード読取装置。
【請求項４】
前記明色基準モジュール及び前記暗色基準モジュールの配列についての異なる複数の配列パターンを有すると共に、各配列パターンに対してキャラクタ種別を対応付けて登録してなる登録手段を備え、
前記キャラクタ解読手段は、前記バーコードを構成する前記キャラクタを解読する際に、前記許容範囲設定手段によって前記候補比率毎に定められる許容範囲設定内容に基づき、それら許容範囲設定内容毎に、当該キャラクタを構成する各暗色バー及び各明色バーのモジュール種別をそれぞれ求めて配列化し、それら配列パターンがいずれも前記登録手段に登録されていない場合には当該キャラクタの解読を失敗とすることを特徴とする請求項１から請求項３のいずれか一項に記載のバーコード読取装置。
【請求項５】
前記明色基準モジュール及び前記暗色基準モジュールの配列についての異なる複数の配列パターンを有すると共に、各配列パターンに対してキャラクタ種別を対応付けて登録してなる登録手段を備え、
前記キャラクタ解読手段は、前記バーコードを構成する前記キャラクタを解読する際に、前記許容範囲設定手段によって前記候補比率毎に定められる許容範囲設定内容に基づき、それら許容範囲設定内容毎に、当該キャラクタを構成する各暗色バー及び各明色バーのモジュール種別をそれぞれ求めて配列化し、いずれかの許容範囲設定内容から得られた配列パターンが前記登録手段に登録されている場合、その許容範囲設定内容に対応する前記候補比率と、当該配列パターンに対応付けて登録されているキャラクタ種別における前記明色基準モジュールの幅の合計値と前記暗色基準モジュールの幅の合計値との比率とが整合していることを条件として当該キャラクタの解読を成功とすることを特徴とする請求項１から請求項４のいずれか一項に記載のバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置に関するものである。
【背景技術】
【０００２】
現在、明色バーと暗色バーとが交互に配列されてなるバーコードを光学的に読み取る装置が様々に提供されており、その一例としては、例えば特許文献１のようなものがある。一般的にバーコードは、幅の異なる複数種類の明色基準モジュール及び幅の異なる複数種類の暗色基準モジュールから選ばれる所定数のバーによって構成されており、上記バーコード読取装置では、配列された所定数のバーの各幅を測定すると共に測定結果に基づいて配列パターンを特定することでコード内容を解読している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２１１５６１公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のようなバーコード読取装置によって読み取られるバーコードは、明色バーや暗色バーが本来予定されているサイズ（例えば規格等によって定められた明色基準モジュール及び暗色基準モジュールのサイズ）となっていない場合があり、例えば、解像度の低いプリンタなどを用いた印刷によって形成された場合、或いはインクの滲みや掠れなどが発生している場合には、本来予定されている各基準モジュールの幅（基準幅）から太ったバー状態、或いは細ったバー状態でバーコードが形成されるようなケースもあり得る。このような太りや細りが生じているバーコードを読み取る場合、バーの太りや細りを無視して一般的な方法でデコードを行うと、バーコードが正確に解読できない虞があり、誤読や解読失敗を招くことが懸念される。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、バーコードを構成する各バーに太りや細りが生じている場合であっても、これら太りや細りに起因する誤差を反映して正確に解読することが可能なバーコード読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、幅の異なる複数種の明色基準モジュール及び幅の異なる複数種の暗色基準モジュールから選ばれる複数の明色バー及び複数の暗色バーによって構成されるキャラクタを複数配列してなるバーコードを読み取るバーコード読取装置であって、
読取対象となる前記バーコードは、当該バーコードを構成する各キャラクタにおいて、前記明色基準モジュールの幅の合計値と前記暗色基準モジュールの幅の合計値との比率が、予め定められた複数の候補比率の中から選ばれるいずれか一つの比率となるべきものであり、
前記バーコードを撮像可能な撮像手段と、
前記撮像手段によって前記バーコードが撮像されたときの撮像結果に基づいて、当該バーコードにおける各明色バー及び各暗色バーのバー幅を測定するバー幅測定手段と、
前記候補比率毎に定められた誤差算出式をそれぞれ備え、誤差算出対象となるキャラクタにおける各バー幅の誤差を、当該キャラクタにおいて前記バー幅測定手段によって測定された各明色バーのバー幅測定値及び各暗色バーのバー幅測定値をパラメータとして、各候補比率に対応する各誤差算出式により各候補比率に対応させてそれぞれ求める誤差算出手段と、
前記誤差算出手段によって算出された前記候補比率毎の各誤差に基づき、それら候補比率毎に、各モジュール種別における幅値の許容範囲を設定する許容範囲設定手段と、
前記許容範囲設定手段によって設定された前記候補比率毎の許容範囲設定内容と、前記バー幅測定手段によって測定された各キャラクタにおける各明色バー及び各暗色バーの測定値とに基づいて、各キャラクタにおける各明色バー及び各暗色バーのモジュール種別を判定し、各キャラクタを解読するキャラクタ解読手段と、
を備えたことを特徴とする。
【発明の効果】
【０００７】
請求項１の発明は、候補比率毎に定められた誤差算出式をそれぞれ備え、誤差算出対象となるキャラクタにおける各バー幅の誤差を、当該キャラクタにおいてバー幅測定手段によって測定された各明色バーのバー幅測定値及び各暗色バーのバー幅測定値をパラメータとして、各候補比率に対応する各誤差算出式により各候補比率に対応させてそれぞれ求めている。そして、このように算出された候補比率毎の各誤差に基づき、それら候補比率毎に、各モジュール種別における幅値の許容範囲を設定し、それら設定された候補比率毎の許容範囲設定内容と、バー幅測定手段によって測定された各キャラクタにおける各明色バー及び各暗色バーの測定値とに基づいて、各キャラクタにおける各明色バー及び各暗色バーのモジュール種別を判定し、各キャラクタを解読している。
この構成では、読取対象となるバーコードが特定の性質のものである場合（即ち、各キャラクタにおいて、明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率が、予め定められた複数の候補比率の中から選ばれるいずれか一つの比率となるようなバーコードの場合）に、各バーにどの程度の誤差が生じているかを仮定した上で、候補比率毎に各モジュール種別における幅値の許容範囲を設定することができる。そして、候補比率の中から各明色バー及び各暗色バーの測定値が許容範囲に合致するような比率を選び、且つ許容範囲に合致するようなデータ内容を選ぶようにすれば、各バーに太りや細りが生じていたとしても適切に解読できるようになる。
【０００８】
請求項２の発明では、誤差算出手段は、バーコードを構成するキャラクタの誤差を算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値からそれぞれ誤差Δを減算したときの各減算後測定値の総和をＳｂとし、当該キャラクタにおける各明色バーの各バー幅測定値に対しそれぞれ誤差Δを加算したときの各加算後測定値の総和をＳｗとし、当該キャラクタ内における暗色基準モジュールのモジュール総数をＭｂとし、当該キャラクタ内における明色基準モジュールのモジュール総数をＭｗとしたときに、候補比率毎に、以下の式、
Ｓｂ／Ｍｂ＝Ｓｗ／Ｍｗ
を満たすΔを誤差として算出する。
この構成によれば、暗色バーにおいて同じ度合いで太りが生じやすく、明色バーにおいて同じ度合いで細りが生じやすいバーコードを読み取る場合に誤差をより正確に算出しやすくなり、ひいては、各キャラクタをより正確に解読しやすくなる。
【０００９】
請求項３の発明では、誤差算出手段は、バーコードを構成するキャラクタの誤差を算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値の総和をＳ１とし、当該キャラクタにおける各明色バーの各バー幅測定値の総和をＳ２とし、当該キャラクタ内における暗色基準モジュールのモジュール総数をＭｂとし、当該キャラクタ内における明色基準モジュールのモジュール総数をＭｗとしたときに、候補比率毎に、以下の式、
Δ＝Ｓ１／（２×Ｍｂ）−Ｓ２／（２×Ｍｗ）
を満たすΔを誤差として算出する。
この構成によれば、暗色バーのサイズに比例するような程度で太りが生じやすく、明色バーのサイズに比例するような程度で細りが生じやすいバーコードを読み取る場合に誤差をより正確に算出しやすくなり、ひいては、各キャラクタをより正確に解読しやすくなる。
【００１０】
請求項４の発明は、明色基準モジュール及び暗色基準モジュールの配列についての異なる複数の配列パターンを有すると共に、各配列パターンに対してキャラクタ種別を対応付けて登録してなる登録手段を備え、キャラクタ解読手段は、バーコードを構成するキャラクタを解読する際に、許容範囲設定手段によって候補比率毎に定められる許容範囲設定内容に基づき、それら許容範囲設定内容毎に、当該キャラクタを構成する各暗色バー及び各明色バーのモジュール種別をそれぞれ求めて配列化し、それら配列パターンがいずれも登録手段に登録されていない場合には当該キャラクタの解読を失敗とする。
この構成によれば、異常バーコード（例えば大幅な太りや細りが生じているバーコード等）を読み取った場合に、誤解読を防ぎ、エラーを報知することができる。
【００１１】
請求項５の発明は、明色基準モジュール及び暗色基準モジュールの配列についての異なる複数の配列パターンを有すると共に、各配列パターンに対してキャラクタ種別を対応付けて登録してなる登録手段を備え、キャラクタ解読手段は、バーコードを構成するキャラクタを解読する際に、許容範囲設定手段によって候補比率毎に定められる許容範囲設定内容に基づき、それら許容範囲設定内容毎に、当該キャラクタを構成する各暗色バー及び各明色バーのモジュール種別をそれぞれ求めて配列化し、いずれかの許容範囲設定内容から得られた配列パターンが登録手段に登録されている場合、その許容範囲設定内容に対応する候補比率と、当該配列パターンに対応付けて登録されているキャラクタ種別における明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率とが整合していることを条件として当該キャラクタの解読を成功とする。
この構成によれば、各キャラクタをより正確に解読できるようになる。特に、登録された配列パターンに合致する配列パターンを解読したときの許容範囲設定内容は、いずれかの候補比率に基づいて誤差算出した上でその誤差を反映して許容範囲を設定したものであるため、その許容範囲設定内容の元になる候補比率と、解読されたキャラクタ種別における比率とが整合していることを条件として解読成功とすれば、誤読をより確実に防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の第１実施形態に係るバーコード読取装置を例示するブロック図である。
【図２】図２は、図１のバーコード読取装置で行われる読取処理の流れを例示するフローチャートである。
【図３】図３は、図２の読取処理における各キャラクタのデコード処理を例示するフローチャートである。
【図４】図４（Ａ）は、バーコードの１キャラクタの構成を例示する説明図であり、図４（Ｂ）は、図４（Ａ）のキャラクタの各バー幅の測定結果を例示する説明図である。
【図５】図５は、図４（Ａ）のようなキャラクタにおいて暗色バーに太り（細り）が生じるときの本来の幅との誤差を説明する説明図である。
【図６】図６は、ｃｏｄｅ１２８における各キャラクタ値のときの明色バー幅の総和及び暗色バーの総和との関係を説明する説明図である。
【図７】図７（Ａ）は、暗色バーの幅（黒モジュール幅）についての許容範囲の設定方法を例示する説明図であり、図７（Ｂ）は、明色バーの幅（白モジュール幅）についての許容範囲の設定方法を例示する説明図である。
【図８】図８は、数２の算出結果を踏まえて候補比率毎に許容範囲を設定した具体例を示す説明図である。
【図９】図９は、図８のように設定された許容範囲に基づいて、各バーのモジュールサイズを特定し、キャラクタを判別する方法について説明する説明図である。
【図１０】図１０は、第２実施形態での誤差の想定方法を説明する説明図である。
【発明を実施するための形態】
【００１３】
[第１実施形態]
以下、本発明を具現化した第１実施形態について、図面を参照して説明する。
（全体構成）
まず、図１等を参照して本実施形態に係るバーコード読取装置の全体構成について説明する。図１に示すように、本実施形態に係るバーコード読取装置１は、バーコードＢを読み取るコードリーダとして構成されるものであり、図示しないケースによって外郭が構成され、このケース内に各種電子部品が収容された構成をなしている。
【００１４】
このバーコード読取装置１は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示器４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいはケース（図示略）内に内装されている。
【００１５】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ケースに形成された読取口（図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒとしては、例えば、樹脂材料、金属材料等の様々な対象が考えられ、このような読取対象物ＲにバーコードＢが印刷、画像表示、ダイレクトマーキングなどによって形成されている。なお、以下の説明では、Ｃｏｄｅ１２８として構成されるバーコードを例示するが他種のバーコードに置き換えてもよい。
【００１６】
受光センサ２３は、読取対象物Ｒや情報コードＤに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子をライン状に並べたラインセンサ或いは２次元的に配列したエリアセンサが、これに相当する。この受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能に図略のプリント配線板に実装されている。なお、受光センサ２３は、「撮像手段」の一例に相当する。
【００１７】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ケースに形成された読取口（図示略）と結像レンズ２７との間に設けられている。これにより、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとによって構成されており、本実施形態では、ケースに形成された読取口（図示略）に入射する反射光Ｌｒを集光し、受光センサ２３の受光面２３ａにバーコードＢのコード画像を結像可能に構成されている。
【００１８】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このマイコン系は、マイコン（情報処理装置）として機能し得る制御回路４０及びメモリ３５を中心として構成され、前述した光学系によって撮像されたバーコードＢの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。
【００１９】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力され、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力され、当該メモリ３５の画像データ蓄積領域に蓄積される。同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００２０】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００２１】
制御回路４０は、バーコード読取装置１全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるものであり、情報処理機能を有している。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）が接続されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等が接続されている。また、通信インタフェース４８には、バーコード読取装置１の上位システムに相当するホストコンピュータＨＳＴなどを接続できるようになっている。
【００２２】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。なお、電池４９は、所定の直流電圧を発生可能な２次電池で、例えば、リチウムイオン電池等がこれに相当する。
【００２３】
（読取処理）
次に、図１のバーコード読取装置で行われる読取処理について説明する。
図２に示す読み取り処理は、例えばユーザによる所定操作や電源投入などをトリガとして開始されるものであり、まず、受光センサ２３によってバーコードＢを撮像すると共に、そのバーコードＢのコード画像を取得し、メモリ３５に記憶する（Ｓ１）。
【００２４】
Ｓ１の処理の後には、得られたバーコードＢのコード画像からキャラクタを抽出し、当該キャラクタの解読を行う（Ｓ２）。なお、Ｓ２の解読処理は、キャラクタ毎に順番に行われる処理である。このＳ２のキャラクタ解読処理は、例えば図３のような流れで行われる。この処理では、まず、着目しているキャラクタ（即ち、Ｓ２での読取対象のキャラクタ）の各バー（各明色バー及び各暗色バー）のバー幅を取得する。図４（Ａ）は、図３の処理での解読対象となるキャラクタの一例を示すものであり、Ｓ２での読取対象（解読対象）がコード画像内におけるこのようなキャラクタ画像である場合、このキャラクタ画像を構成する各暗色バーＢａのバー幅Ｂ１，Ｂ２，Ｂ３を測定すると共に、各明色バーＳｐ（スペース）のバー幅Ｓ１，Ｓ２，Ｓ３を測定する。このとき、着目しているキャラクタ画像における１キャラクタ分の幅ｐも測定する。なお、図４（Ｂ）は、このような測定によって得られた各バー幅（Ｂ１，Ｂ２，Ｂ３，Ｓ１，Ｓ２，Ｓ３）及びキャラクタ幅ｐの値を例えば画素数によって示すものである。
【００２５】
なお、本実施形態では、制御回路４０がバー幅測定手段の一例に相当し、受光センサ２３（撮像手段）によってバーコードＢが撮像されたときの撮像結果に基づいて、当該バーコードＢにおける各明色バー及び各暗色バーのバー幅を測定するように機能する。
【００２６】
Ｓ１１の処理の後には、モジュール幅差（想定される誤差Δ）の算出を行う（Ｓ１２）。ここで、誤差Δの考え方について説明する。例えば、図４（Ａ）のようなキャラクタ画像が読取対象である場合、このキャラクタ画像は、各暗色バーの部分がインクの滲みなどにより本来の幅（暗色バーが暗色基準モジュールのいずれかに正確に対応した値であり、明色バーが明色基準モジュールのいずれかに正確に対応した値である場合の幅）よりもΔだけ太りが生じていると予想しておくことができる（なお、実際には、暗色バーに細りが生じていても、Δが負の値となるので対応は可能である）。この場合、Δの値は、例えば以下の数１の式によって算出することができる。なお、数２、数３及び以下の説明では、暗モジュール合計数を暗モジュール数とも称する。また、明モジュール合計数を明モジュール数とも称する。
【００２７】
【数１】
0005293853.tif 000002
【００２８】
ここで数１の考え方を説明する。それには、まず、読取対象となるバーコードＢについて説明する。本実施形態では、バーコードＢとしてｃｏｄｅ１２８を用いており、このｃｏｄｅ１２８のバーコードは、幅の異なる複数種の明色基準モジュール及び幅の異なる複数種の暗色基準モジュールから選ばれる複数の明色バー及び複数の暗色バーによって構成されるキャラクタを複数配列してなるバーコードである。具体的には、明色バーの候補は、明色の単位モジュール（明色の１モジュール）と、この単位モジュールの２倍幅、３倍幅、４倍幅のモジュールが明色バーの候補（明色基準モジュール）となっており、明色バーはこれら４種類の明色基準モジュールから選ばれるようになっている。同様に、暗色バーの候補は、暗色の単位モジュール（暗色の１モジュール）と、この単位モジュールの２倍幅、３倍幅、４倍幅のモジュールが暗色バーの候補（暗色基準モジュール）となっている。
【００２９】
更に、ｃｏｄｅ１２８のバーコードの各キャラクタは、各キャラクタのキャラクタ値と、キャラクタを構成する暗色バーの幅（暗色基準モジュールの幅）の総和（Ｂ１＋Ｂ２＋Ｂ３）と、キャラクタを構成する明色バーの幅（明色基準モジュールの幅）の総和（Ｓ１＋Ｓ２＋Ｓ３）との関係が図６のようになっている。つまり、この種のバーコードは、バーコードを構成する各キャラクタにおいて、明色基準モジュールの幅の総和（合計値）と暗色基準モジュールの幅の総和（合計値）との比率が、予め定められた複数の候補比率（図６の例では、４：７、６：５、８：３の３種類の候補比率）の中から選ばれるいずれか一つの比率となるように構成されている。
【００３０】
一方、図５を参照して説明すると、本来の正規形状（規格の形状）では、暗色バーの１モジュール幅（候補となる複数の暗色基準モジュールの内の単位モジュールの幅）と明色バーの１モジュール幅（候補となる複数の明色基準モジュールの内の単位モジュールの幅）とは等しくなるため、以下の数２の式が成り立つ。なお、単位モジュールの幅は、幅合計をモジュール数で除することで求められる。
【００３１】
【数２】
0005293853.tif 000003
【００３２】
そして、上述のように、ｃｏｄｅ１２８のバーコードの各キャラクタは、図６のように明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率が４：７、６：５、８：３のいずれかになるため、明モジュール数＋暗モジュール数は、いずれのキャラクタでも１１となる。従って、数２を変形して以下の数３とし、（明モジュール数＋暗モジュール数）に１１を代入することで、数１の式を得ることができる。
【００３３】
【数３】
0005293853.tif 000004
【００３４】
そして、Ｓ１２の処理では、対象となるキャラクタの明暗比率（明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率）が、上述の６：５、４：７、８：３のそれぞれであると仮定して、各比率を数１に適用したときのΔをそれぞれ算出する。図４（Ｂ）の測定値を数１に代入したときについて、比率が４：７のとき、６：５のとき、８：３のときの値を以下の数４でそれぞれ求めている。数４では、４：７のときの誤差をΔ４−７としており、この値は５３となっている。また、６：５のときの誤差をΔ６−５としており、この値は−１３となっている。また、８：３のときの誤差をΔ８−３この値は−８０となっている。
【００３５】
【数４】
0005293853.tif 000005
【００３６】
本実施形態では、図３の処理を行い得る制御回路４０が誤差算出手段の一例に相当し、候補比率毎（上述のような、４：７、６：５、８：３のそれぞれ）に定められた誤差算出式をそれぞれ備え（即ち、数１を各候補比率に適用できるようになっており）、誤差算出対象となるキャラクタにおける各バー幅の誤差を、当該キャラクタにおいてバー幅測定手段によって測定された各明色バーのバー幅測定値Ｓ１、Ｓ２、Ｓ３及び各暗色バーのバー幅測定値Ｂ１、Ｂ２、Ｂ３をパラメータとして、各候補比率に対応する各誤差算出式（即ち、数１を各候補比率に適用した各式）により各候補比率に対応させてそれぞれ求めるように機能しており、具体的には、候補比率毎（上述の４：７、６：５、８：３の比率毎）に、数２を満たすΔを算出している。即ち、バーコードＢを構成するキャラクタの誤差Δを算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値Ｂ１，Ｂ２，Ｂ３からそれぞれ誤差Δを減算したときの各減算後測定値の総和をＳｂ（即ち、Ｓｂ＝（Ｂ１−Δ）＋（Ｂ２−Δ）＋（Ｂ３−Δ））とし、当該キャラクタにおける各明色バーの各バー幅測定値Ｓ１，Ｓ２，Ｓ３に対しそれぞれ誤差Δを加算したときの各加算後測定値の総和をＳｗ（即ち、Ｓｗ＝（Ｓ１＋Δ）＋（Ｓ２＋Δ）＋（Ｓ３＋Δ））とし、当該キャラクタ内における暗色基準モジュールのモジュール総数をＭｂとし、当該キャラクタ内における明色基準モジュールのモジュール総数をＭｗとしたときに、候補比率毎に、Ｓｂ／Ｍｂ＝Ｓｗ／Ｍｗを満たすΔを誤差として算出している。
【００３７】
図３に戻って説明を続けると、Ｓ１２の処理の後にはＳ１３の処理を行う。Ｓ１３の処理では、図７（Ａ）のように暗色バーの測定値の許容範囲を設定すると共に、図７（Ｂ）のように明色バーの測定値の許容範囲を設定する。図７（Ａ）において、Ｂｉは、コード画像における暗色バーの測定値であり、図４（Ａ）に示すＢ１、Ｂ２、Ｂ３などが候補となる。また、図７（Ｂ）において、Ｓｉは、コード画像における明色バーの測定値であり、図４（Ａ）に示すＳ１、Ｓ２、Ｓ３などが候補となる。また、ｐは、図４（Ａ）のようなキャラクタ全体幅の測定値である。暗色バーの測定値の許容範囲は、例えば単位モジュールについては、キャラクタ全体幅の測定値ｐに第１の係数（１．５）を乗じた値に対してモジュール数（１１）を除した値に数１で測定される誤差Δを加算した値が閾値（第１の閾値）となっており、測定値（Ｂｉ）がこの第１閾値以下（或いは未満）であれば暗色バーの単位モジュールの許容範囲に含まれるとしている。なお、誤差Δは上述のように候補比率毎に算出されるため、許容範囲も候補比率毎に算出されることになる。暗色バーに関し、単位モジュールの２倍のモジュール（２モジュール）の許容範囲も同様である。ここでは、キャラクタ全体幅の測定値ｐに第２の係数（２．５）を乗じた値に対してモジュール数（１１）を除した値に数１で測定される誤差Δを加算した値が閾値（第２の閾値）となっており、測定値（Ｂｉ）が第１閾値以上であり（或いは第１閾値を超え）、第２閾値以下（或いは未満）であれば暗色バーの２モジュールの許容範囲に含まれるとしている。暗色バーに関し、単位モジュールの３倍のモジュール（３モジュール）の許容範囲、単位モジュールの４倍のモジュール（４モジュール）の許容範囲も同様に設定される。
また、明色バーの測定値の許容範囲も同様であり、例えば単位モジュールについては、キャラクタ全体幅の測定値ｐに第１の係数（１．５）を乗じた値に対してモジュール数（１１）を除した値に数１で測定される誤差Δを減算した値が閾値（第１の閾値）となっており、測定値（Ｓｉ）がこの第１閾値以下（或いは未満）であれば暗色バーの単位モジュールの許容範囲に含まれるとしている。なお、誤差Δは上述のように候補比率毎に算出されるため、許容範囲も候補比率毎に算出されることになる。明色バーに関し、単位モジュールの２倍のモジュール（２モジュール）の許容範囲も同様である。ここでは、キャラクタ全体幅の測定値ｐに第２の係数（２．５）を乗じた値に対してモジュール数（１１）を除した値に数１で測定される誤差Δを減算した値が閾値（第２の閾値）となっており、測定値（Ｓｉ）が第１閾値以上であり（或いは第１閾値を超え）、第２閾値以下（或いは未満）であれば明色バーの２モジュールの許容範囲に含まれるとしている。明色バーに関し、単位モジュールの３倍のモジュール（３モジュール）の許容範囲、単位モジュールの４倍のモジュール（４モジュール）の許容範囲も同様に設定される。
【００３８】
図７（Ａ）、図７（Ｂ）のような設定内容に基づいて候補比率毎に許容範囲を定めた例が図８である。図８において表の上段では、比率４：７の場合の誤差Δ（５３）に基づいて、図７（Ａ）、図７（Ｂ）のように明暗各モジュールの場合の許容範囲を定めている。即ち、比率４：７の場合の許容範囲としては、暗色１モジュールの場合の許容範囲（黒１ｍｏｄ）は暗色バーの測定幅が２０２以下、暗色２モジュールの場合の許容範囲（黒２ｍｏｄ）は暗色バーの測定幅が２０３以上３０２以下、暗色３モジュールの場合の許容範囲（黒３ｍｏｄ）は暗色バーの測定幅が３０３以上４０２以下、暗色４モジュールの場合の許容範囲（黒４ｍｏｄ）は暗色バーの測定幅が４０３以上となっている。同様に、明色１モジュールの場合の許容範囲（白１ｍｏｄ）は明色バーの測定幅が９６以下、明色２モジュールの場合の許容範囲（白２ｍｏｄ）は明色バーの測定幅が９７以上１９６以下、明色３モジュールの場合の許容範囲（白３ｍｏｄ）は明色バーの測定幅が１９７以上２９６以下、明色４モジュールの場合の許容範囲（白４ｍｏｄ）は明色バーの測定幅が２９７以上となっている。また、図８において表の中段では、比率６：５の場合の誤差Δ（−１３）に基づく許容範囲の同様の設定例を示しており、図８において表の下段では、比率８：３の場合の誤差Δ（−８０）に基づく許容範囲の同様の設定例を示している。
【００３９】
本実施形態では、制御回路４０が許容範囲設定手段の一例に相当し、誤差算出手段によって算出された候補比率毎の各誤差に基づき、それら候補比率毎に、各モジュール種別における幅値の許容範囲を設定するように機能する。
【００４０】
図３のＳ１３にて許容範囲（しきい値）が設定された後には、図３の読取処理で対象となっているキャラクターのデコードを行う（Ｓ１４）。具体的には、候補比率毎にキャラクターの解読を試みる。例えば、図４（Ａ）(Ｂ)のような例の場合、４：７、６：５、８：３の各候補比率に対して設定された図８の上段、中段、下段のような許容範囲（各モジュールについての許容範囲）と、図４（Ｂ）のような測定値（図４（Ａ）のキャラクタを構成する各暗色バー及び各明色バーの測定値）に基づき、各候補比率毎に、各暗色バー及び各明色バーの各測定値がいずれのモジュールの許容範囲に含まれるかを特定する処理を行い、各暗色バー及び各明色バーを特定された許容範囲のモジュールとする。
【００４１】
例えば、４：７の候補比率に対して設定された図８上段のような各許容範囲では、幅Ｂ１の暗色バーは暗色２モジュール（黒２ｍｏｄ）と特定され、幅Ｓ１の明色バーは明色３モジュール（白３ｍｏｄ）と特定され、幅Ｂ２の暗色バーは暗色１モジュール（黒１ｍｏｄ）と特定され、幅Ｓ２の明色バーは明色２モジュール（白２ｍｏｄ）と特定され、幅Ｂ３の暗色バーは暗色１モジュール（黒１ｍｏｄ）と特定され、幅Ｓ３の明色バーは明色２モジュール（白２ｍｏｄ）と特定される。この場合、「２３１２１２」という幅値の結果が得られ、ｃｏｄｅ１２８では値が「１１」のキャラクタであることが特定できる。このように該当キャラクタが存在する場合には、Ｓ１５にてＹｅｓに進み、デコード結果である「２３１２１２」の比率（暗色バーの総和と明色バーの総和の比率）が、そのデコード結果を特定した許容範囲に対応する候補比率（即ち、成功したデコード結果の解読根拠となった候補比率）に合致しているか否かを判定する（Ｓ１７）。「２３１２１２」の判定結果は、４：７の候補比率の許容範囲に基づいて得られたものであり、「２３１２１２」は、比率が４：７であるため、合致しているといえる。従って、Ｓ１７でＹｅｓに進み、そのキャラクタのデコード結果が「２３１２１２」（即ち、値「１１」のキャラクタ）であることを確定する（Ｓ１８）。なお、Ｓ１５において、該当キャラクタが存在しない場合には、Ｓ１５にてＮｏに進む。この場合、当該キャラクタのデコードを失敗とする。また、Ｓ１５にて該当キャラクタが存在していると判断されたものの、そのキャラクタの比率が判定根拠となった候補比率と異なっている場合にはＳ１７にてＮｏに進む。この場合も、当該キャラクタはデコード失敗となる。そして、このような図３の処理を全キャラクタに対して行い、全てのキャラクタの解読が終了した場合にはＳ３にてＹｅｓに進み、デコード結果を出力する。なお、図２では図示を省略しているが、Ｓ２でいずれかのキャラクタの解読が失敗した場合にはエラー報知などを行うようにしてもよい。
【００４２】
本実施形態では、制御回路４０がキャラクタ解読手段の一例に相当し、許容範囲設定手段によって設定された候補比率毎の許容範囲設定内容と、バー幅測定手段によって測定された各キャラクタにおける各明色バー及び各暗色バーの測定値とに基づいて、各キャラクタにおける各明色バー及び各暗色バーのモジュール種別を判定し、各キャラクタを解読するように機能する。
【００４３】
また、メモリ３５が登録手段の一例に相当し、図６のようなデータ（明色基準モジュール及び暗色基準モジュールの配列についての異なる複数の配列パターンの各々に対し、キャラクタ種別を対応付けて登録したデータ）を記憶するように機能する。
【００４４】
本実施形態では、読取対象となるバーコードが特定の性質のものである場合（即ち、各キャラクタにおいて、明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率が、予め定められた複数の候補比率の中から選ばれるいずれか一つの比率となるようなバーコードの場合）に、各バーにどの程度の誤差が生じているかを仮定した上で、候補比率毎に各モジュール種別における幅値の許容範囲を設定することができる。そして、候補比率の中から各明色バー及び各暗色バーの測定値が許容範囲に合致するような比率を選び、且つ許容範囲に合致するようなデータ内容を選ぶようにすれば、各バーに太りや細りが生じていたとしても適切に解読できるようになる。
【００４５】
また、キャラクタ解読手段に相当する制御回路４０は、バーコードＢを構成するキャラクタを解読する際に、許容範囲設定手段によって候補比率毎に定められる許容範囲設定内容に基づき、図９のように、それら許容範囲設定内容毎に当該キャラクタを構成する各暗色バー及び各明色バーのモジュール種別をそれぞれ求めて配列化している。そして、図３のＳ１５Ｎｏのように、それら配列パターンがいずれもメモリ３５（登録手段）に登録されていない場合には当該キャラクタの解読を失敗としている。この構成によれば、異常バーコード（例えば大幅な太りや細りが生じているバーコード等）を読み取った場合に、誤解読を防ぎ、例えばエラーを報知等の対応を行うことができる。
一方、いずれかの許容範囲設定内容から得られた配列パターンがメモリ３５（登録手段）に登録されている場合、その許容範囲設定内容に対応する候補比率と、当該配列パターンに対応付けて登録されているキャラクタ種別における明色基準モジュールの幅の合計値と暗色基準モジュールの幅の合計値との比率とが整合していることを条件としてＳ１７でＹｅｓに進むように当該キャラクタの解読を成功としている。
この構成によれば、各キャラクタをより正確に解読できるようになる。特に、登録された配列パターンに合致する配列パターンを解読したときの許容範囲設定内容は、いずれかの候補比率に基づいて誤差算出した上でその誤差を反映して許容範囲を設定したものであるため、その許容範囲設定内容の元になる候補比率と、解読されたキャラクタ種別における比率とが整合していることを条件として解読成功とすれば、誤読をより確実に防ぐことができる。
【００４６】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００４７】
上記実施形態では、図５のように暗色バーに一律に太り（細り）が生じていると想定して、各候補比率毎に数１のような演算式により誤差Δを算出していたが、候補比率毎の誤差の算出方法はこれに限られない。例えば、図１０のように、暗色バーにおいて、モジュールのサイズに比例した太り（細り）が生じているものとして誤差を算出してもよい。この場合、単位モジュールの誤差をΔとし、２モジュールの誤差は２倍の２Δ、３モジュールの場合の誤差は３倍の３Δ、４モジュールの場合の誤差は４倍の４Δとする。そして、以下の数５の式が成り立つことになる。そして、この数５を変形することで、数６のように単位モジュールの誤差Δを求めることができる。なお、本実施形態では、数１の式を数６の式に変更する点のみが異なり、それ以外は第１実施形態と同様である。この数６の式に、各候補比率を適用することで、各候補比率における誤差Δ（この場合は、単位モジュールの場合の誤差）を算出することができ、この誤差Δに基づいて第１実施形態と同様にＳ１３以降の処理を行えばよい。
【００４８】
【数５】
0005293853.tif 000006
【数６】
0005293853.tif 000007
【００４９】
この実施形態でも、制御回路４０が誤差算出手段の一例に相当し、バーコードＢを構成するキャラクタの誤差を算出する際に、当該キャラクタにおける各暗色バーの各バー幅測定値の総和をＳ１（図４等の例ではＢ１＋Ｂ２＋Ｂ３）とし、当該キャラクタにおける各明色バーの各バー幅測定値の総和をＳ２（図４等の例ではＳ１＋Ｓ２＋Ｓ３）とし、当該キャラクタ内における暗色基準モジュールのモジュール総数（暗モジュール数）をＭｂとし、当該キャラクタ内における明色基準モジュールのモジュール総数（明モジュール数）をＭｗとしたときに、候補比率毎に、Δ＝Ｓ１／（２×Ｍｂ）−Ｓ２／（２×Ｍｗ）を満たすΔを誤差（単位モジュールの誤差）として算出する（この式は数６と同様である）。
この構成によれば、暗色バーのサイズに比例するような程度で太りが生じやすく、明色バーのサイズに比例するような程度で細りが生じやすいバーコードを読み取る場合に誤差をより正確に算出しやすくなり、ひいては、各キャラクタをより正確に解読しやすくなる。
【符号の説明】
【００５０】
１…バーコード読取装置
２３…受光センサ（撮像手段）
３５…メモリ（登録手段）
４０…制御回路（バー幅測定手段、誤差算出手段、許容範囲設定手段、キャラクタ解読手段）
Ｂ…バーコード
Ｂａ…暗色バー
Ｓｐ…明色バー
【要約】
【課題】バーコードを構成する各バーに太りや細りが生じている場合であっても、これら太りや細りに起因する誤差を反映して正確に解読することが可能な構成を提供する。
【解決手段】バーコード読取装置１は、候補比率毎に定められた誤差算出式をそれぞれ備え、キャラクタの各バー幅の誤差を、当該キャラクタにおいて測定された各明色バーのバー幅測定値及び各暗色バーのバー幅測定値をパラメータとして、各候補比率に対応する各誤差算出式により各候補比率に対応させてそれぞれ求めている。そして、それら候補比率毎に、各モジュール種別における幅値の許容範囲を設定し、候補比率毎の許容範囲設定内容と、バー幅測定手段によって測定された各キャラクタにおける各明色バー及び各暗色バーの測定値とに基づいて、各キャラクタにおける各明色バー及び各暗色バーのモジュール種別を判定し、各キャラクタを解読している。
【選択図】図１【図１】
0005293853.tif 000008
【図２】
0005293853.tif 000009
【図３】
0005293853.tif 000010
【図４】
0005293853.tif 000011
【図５】
0005293853.tif 000012
【図６】
0005293853.tif 000013
【図７】
0005293853.tif 000014
【図８】
0005293853.tif 000015
【図９】
0005293853.tif 000016
【図１０】
0005293853.tif 000017