(57)【要約】【課題】読取精度の低下を抑制し得る光学的情報読取装置を提供することにある。【解決手段】暗色系および明色系の各バーの幅値に基づくデコード処理に失敗すると、幅値が近似するバーのみから構成される集団が集団作成処理により複数作成される。さらに、第１判定処理により、集団作成処理により作成された各集団のうち、各バーの総数がバーコードを構成する同一幅値のバーの総数とみなされる所定数以上の集団が正常幅値集団と判定され、各バーの総数が所定数未満の集団が少数幅値集団と判定される。また、第２判定手段により、各少数幅値集団のうち、各正常幅値集団の各バーの幅値との差に基づいて異常な幅値と判断されるバーで構成される集団が異常幅値集団と判定される。そして、異常幅値集団を構成する各バーの幅値が、各正常幅値集団の各バーの幅値との差に基づいて補正される。【選択図】図６
2011100192.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上の単位モジュールからなる暗色系および明色系の各領域が複数配列されて構成されるキャラクタを複数有するバーコードを読み取り可能な光学的情報読取装置であって、
前記バーコードからの反射光を受光する受光手段と、
前記受光手段から出力される受光信号に基づいて前記各領域の幅値をそれぞれ演算する幅値演算手段と、
前記各幅値に基づいて前記各キャラクタをデコードするデコード手段と、
前記各領域のうち前記幅値が近似する領域のみから構成される集団を複数作成する集団作成手段と、
前記集団作成手段により作成された各集団のうち、前記各領域の総数が前記バーコードを構成する同一幅値の領域の総数とみなされる所定数以上の集団を正常幅値集団と判定し、前記各領域の総数が前記所定数未満の集団を少数幅値集団と判定する第１判定手段と、
前記各少数幅値集団のうち、前記各正常幅値集団の前記各領域の幅値との差に基づいて異常な幅値と判断される領域で構成される集団を異常幅値集団と判定する第２判定手段と、
前記異常幅値集団を構成する前記各領域の幅値を、前記各正常幅値集団の少なくともいずれか１つを構成する前記各領域の幅値との差に基づいて補正する補正手段と、
を備え、
前記デコード手段は、前記幅値演算手段により演算された前記各領域の前記幅値に基づく前記キャラクタのデコードが失敗した場合に、前記補正手段により補正した補正幅値を用いて再デコードすることを特徴とする光学的情報読取装置。
【請求項２】
前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、前記各正常幅値集団の少なくともいずれか１つを構成する前記各領域の平均幅値との差に基づいて補正することを特徴とする請求項１に記載の光学的情報読取装置。
【請求項３】
前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、
当該幅値との差が小さい平均幅値の領域から構成される正常幅値集団であって、当該幅値よりも小さい平均幅値の正常幅値集団である第１正常幅値集団と当該幅値よりも大きい平均幅値の正常幅値集団である第２正常幅値集団が存在し、これら第１正常幅値集団および第２正常幅値集団の平均幅値を第１平均幅値および第２平均幅値とするとき、
前記第２平均幅値との差よりも前記第１平均幅値との差が小さい場合に当該第１平均幅値に等しくなるように補正し、前記第１平均幅値との差よりも前記第２平均幅値との差が小さい場合に当該第２平均幅値に等しくなるように補正することを特徴とする請求項１または２に記載の光学的情報読取装置。
【請求項４】
前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、当該幅値に対して前記第１正常幅値集団および前記第２正常幅値集団のいずれか一方のみが存在する場合には、存在する一方の正常幅値集団の平均幅値と、この平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて補正することを特徴とする請求項３に記載の光学的情報読取装置。
【請求項５】
前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、当該幅値に対する前記第１平均幅値の差と当該幅値に対する前記第２平均幅値の差とが近似する場合には、当該幅値の領域を含むキャラクタの規定幅値と、当該キャラクタに含まれる他の領域の幅値とに基づいて補正することを特徴とする請求項３に記載の光学的情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードの読み取りを行う光学的情報読取装置に関するものである。
【背景技術】
【０００２】
従来、バーコードの読み取りを行う光学的情報読取装置として、例えば、下記特許文献１に示すバーコード読み取り装置が知られている。この特許文献１のバーコード読み取り装置は、バーコードからの反射光を電気信号に変換する光電変換手段と、この光電変換手段で生成される電気信号から白及び黒の変換点を検出する変換点検出手段とを有しており、検出された複数の変換点に基づいてバーコードを読み取っている。そして、変換点検出手段にて検出される複数の変換点から、白及び黒の変換点と共にフレネル回折の影響により誤って検出される可能性のある変換点の真偽を判別手段により判別し、判別された偽の変換点を補正手段により真の変換点に補正している。
【０００３】
また、下記特許文献２には、１つのキャラクタを構成するモジュールの数が固定されているバーコード体系のバーコードシンボルの復号方式に関する技術が記載されている。この復号方式では、まず、バー幅検出手段により検出されたバーコードシンボルの各バーのバー幅をモジュールに分類するための閾値を閾値設定手段によりキャラクタ毎に設定する。そして、基準値設定手段によりバーのそれぞれに対する基準値をキャラクタ毎に設定し、誤差算出手段により基準値に対するバーのそれぞれの誤差を算出する。さらに、補正値算出手段により、誤差算出手段により算出された（ｉ−１）番目のキャラクタにおけるバー幅の誤差と、（ｉ−１）番目のキャラクタで用いた補正値との平均値を、ｉ番目のキャラクタの補正値として算出し、この補正値を用いてバーをそれぞれモジュールに分類して、その組み合わせによって復号手段によりバーコードシンボルを復号している。
【０００４】
また、下記特許文献３には、バーコードのスペースの幅値のバラツキを小さくするようにこの幅値を操作してデコードするバーコード読み取り装置が記載されている。このバーコード読み取り装置では、まず、スペース幅をいくつかの小さな区間に分け、読み込んだ順序ごとにどの区間に属するかを探し、所属区間に累積して、各区間のスペースの本数を数える。次に、データ数が極大となる区間のスペース幅の値を求め、そのスペース幅の値を中心として±Ａ％の範囲内にある全てのデータを１つのグループとする。そして、１つのグループ内にあるデータをこのグループで中心としたスペース幅の値に全て置き換え、この置き換えたデータを基にデコードしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−９６２８４号公報
【特許文献２】特開平９−６８８５号公報
【特許文献３】特開平３−２０６５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、例えば、印刷機の不良などにより対象物にバーコードが滲んだり擦れたりして印字されてしまうことがある。このため、一部のバー幅が本来の幅値よりも太くなるようにバーコードに滲みが生じて印刷されたり、一部のバー幅が本来の幅値よりも細くなるようにバーコードに擦れが生じて印刷されてしまう場合がある。このような印刷ムラが生じたバーコードを読み取る場合には、上述のように本来の幅値に対して変化したバー幅が誤読されてデコード処理に不具合が生じやすいといった問題があった。
【０００７】
また、上記特許文献１は、バーコードから反射された反射光の信号のうち、フレネル回折の影響によって誤って検出された信号を補正することはできるものの、印字されたバーコードのバー幅自体の太りや細りを本来の幅値に補正することができなかった。
【０００８】
そして、上記特許文献２は、１つのキャラクタを構成するモジュールの数が固定されているバーコードについては補正することができるものの、１つのキャラクタを構成するモジュール数が固定でないバーコードではバーの太りや細りを補正することができないという問題があった。
【０００９】
さらに、上記特許文献３では、バーコードのスペースの幅値をいくつかのグループに分け、その全てのグループの各最頻値を用いて補正しているが、本来の幅値とはかけ離れた幅値（すなわち異常な幅値）で構成されたグループが存在していても、そのグループの最頻値も正常であるとして補正に用いるため、読取精度が低下してしまう虞があった。
【００１０】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、読取精度の低下を抑制し得る光学的情報読取装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、特許請求の範囲に記載の請求項１の光学的情報読取装置では、１または２以上の単位モジュールからなる暗色系および明色系の各領域が複数配列されて構成されるキャラクタを複数有するバーコードを読み取り可能な光学的情報読取装置であって、前記バーコードからの反射光を受光する受光手段と、前記受光手段から出力される受光信号に基づいて前記各領域の幅値をそれぞれ演算する幅値演算手段と、前記各幅値に基づいて前記各キャラクタをデコードするデコード手段と、前記各領域のうち前記幅値が近似する領域のみから構成される集団を複数作成する集団作成手段と、前記集団作成手段により作成された各集団のうち、前記各領域の総数が前記バーコードを構成する同一幅値の領域の総数とみなされる所定数以上の集団を正常幅値集団と判定し、前記各領域の総数が前記所定数未満の集団を少数幅値集団と判定する第１判定手段と、前記各少数幅値集団のうち、前記各正常幅値集団の前記各領域の幅値との差に基づいて異常な幅値と判断される領域で構成される集団を異常幅値集団と判定する第２判定手段と、前記異常幅値集団を構成する前記各領域の幅値を、前記各正常幅値集団の少なくともいずれか１つを構成する前記各領域の幅値との差に基づいて補正する補正手段と、を備え、前記デコード手段は、前記幅値演算手段により演算された前記各領域の前記幅値に基づく前記キャラクタのデコードが失敗した場合に、前記補正手段により補正した補正幅値を用いて再デコードすることを特徴とする。
【００１２】
請求項２の発明は、請求項１に記載の光学的情報読取装置において、前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、前記各正常幅値集団の少なくともいずれか１つを構成する前記各領域の平均幅値との差に基づいて補正することを特徴とする。
【００１３】
請求項３の発明は、請求項１または２に記載の光学的情報読取装置において、前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、当該幅値との差が小さい平均幅値の領域から構成される正常幅値集団であって、当該幅値よりも小さい平均幅値の正常幅値集団である第１正常幅値集団と当該幅値よりも大きい平均幅値の正常幅値集団である第２正常幅値集団が存在し、これら第１正常幅値集団および第２正常幅値集団の平均幅値を第１平均幅値および第２平均幅値とするとき、前記第２平均幅値との差よりも前記第１平均幅値との差が小さい場合に当該第１平均幅値に等しくなるように補正し、前記第１平均幅値との差よりも前記第２平均幅値との差が小さい場合に当該第２平均幅値に等しくなるように補正することを特徴とする。
【００１４】
請求項４の発明は、請求項３に記載の光学的情報読取装置において、前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、当該幅値に対して前記第１正常幅値集団および前記第２正常幅値集団のいずれか一方のみが存在する場合には、存在する一方の正常幅値集団の平均幅値と、この平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて補正することを特徴とする。
【００１５】
請求項５の発明は、請求項３に記載の光学的情報読取装置において、前記補正手段は、前記異常幅値集団を構成する前記各領域の幅値を、当該幅値に対する前記第１平均幅値の差と当該幅値に対する前記第２平均幅値の差とが近似する場合には、当該幅値の領域を含むキャラクタの規定幅値と、当該キャラクタに含まれる他の領域の幅値とに基づいて補正することを特徴とする。
【発明の効果】
【００１６】
請求項１の発明では、デコードに失敗すると、演算された幅値が近似する領域のみから構成される集団が集団作成手段により複数作成される。さらに、第１判定手段により、集団作成手段により作成された各集団のうち、各領域の総数がバーコードを構成する同一幅値の領域の総数とみなされる所定数以上の集団が正常幅値集団と判定され、各領域の総数が所定数未満の集団が少数幅値集団と判定される。また、第２判定手段により、各少数幅値集団のうち、各正常幅値集団の各領域の幅値との差に基づいて異常な幅値と判断される領域で構成される集団が異常幅値集団と判定される。そして、異常幅値集団を構成する各領域の幅値が、各正常幅値集団の少なくともいずれか１つを構成する各領域の幅値との差に基づいて補正手段により補正され、この補正された補正幅値を用いてデコード手段により再デコードされる。
【００１７】
これにより、印刷ムラ等により本来の幅値が変化した領域（以下、異常領域という）を含むバーコードのデコードに失敗した場合には、上記異常領域はその幅値に近似する幅値の領域が少ないことから異常幅値集団に含まれて、正常幅値集団の各領域の幅値との差に基づいて補正される。これにより、印刷ムラ等により変化した幅値が本来の幅値に適正に補正されて、読取精度の低下を抑制することができる。
また、本発明では、暗色系および明色系の各領域の幅値の総数に関わらず、各幅値のみを相対的に比較することで異常領域の幅値を補正している。そのため、モジュール数に依存せず補正を行うことができ、１つのキャラクタを構成するモジュール数が固定されているバーコード（例えば、ＥＡＮ−１３やＥＡＮ−８、ＵＰＣ−Ａなど）はもちろんのこと、モジュール数が固定されていないバーコードにおいても補正することができる。
【００１８】
請求項２の発明では、異常幅値集団を構成する各異常領域の幅値を、各正常幅値集団の少なくともいずれか１つを構成する各領域の平均幅値との差に基づいて補正手段により補正するように構成されている。このように、各正常幅値集団の各領域の平均幅値を用いることで、各正常幅値集団の各領域の幅値にバラツキがあっても、異常幅値集団を構成する各異常領域の幅値が適切に補正され、読取精度の低下を抑制することができる。
【００１９】
請求項３の発明では、異常幅値集団に対して第１正常幅値集団および第２正常幅値集団が存在するとき、当該異常幅値集団を構成する各異常領域の幅値が、第２平均幅値との差よりも第１平均幅値との差が小さい場合に当該第１平均幅値に等しくなるように補正され、第１平均幅値との差よりも第２平均幅値との差が小さい場合に当該第２平均幅値に等しくなるように補正される。これにより、異常幅値集団を構成する各異常領域の幅値を、当該各幅値にもっとも近い正常幅値集団の平均幅値を用いてそれぞれ適切に補正することができる。
【００２０】
請求項４の発明では、異常幅値集団を構成する各異常領域の幅値に対して第１正常幅値集団および第２正常幅値集団のいずれか一方のみが存在する場合には、当該各異常領域の幅値が、存在する一方の正常幅値集団の平均幅値とこの平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて補正される。これにより、例えば、各異常領域の幅値が各正常幅値集団の平均幅値よりも大きいことから第２正常幅値集団が存在せず第１正常幅値集団のみが存在する場合でも、この第１正常幅値集団の平均幅値とこの平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて異常領域の幅値を適切に補正することができる。
【００２１】
請求項５の発明では、異常幅値集団を構成する各異常領域の幅値を、当該幅値に対する第１平均幅値の差と当該幅値に対する第２平均幅値の差とが近似する場合には、当該幅値の異常領域を含むキャラクタの規定幅値と、当該キャラクタに含まれる他の領域の幅値とに基づいて補正手段により補正するように構成されている。これにより、異常領域の幅値に対する両平均幅値の差が近似していることから、当該異常領域の幅値が両平均幅値のどちらにも補正されうる可能性がある場合であっても、異常領域の幅値を、当該異常領域を含むキャラクタの規定幅値とこのキャラクタに含まれる他の領域の幅値とに基づいて、第１平均幅値もしくは第２平均幅値のいずれか一方に適切に補正することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係る光学的情報読取装置１０の電気的構成を示すブロック図である。
【図２】図１の制御回路４０における読取処理の流れを例示するフローチャートの一部である。
【図３】図１の制御回路４０における読取処理の流れを例示するフローチャートの一部である。
【図４】本実施形態における第１補正処理のサブルーチンを例示するフローチャートである。
【図５】本実施形態における個別補正処理のサブルーチンを例示するフローチャートである。
【図６】昇順配列処理、集団作成処理および正常幅値補正処理を説明するための図である。
【図７】第２補正処理を説明するための図である。
【図８】本実施形態における第１異常幅値補正処理を説明するための図であり、図８（Ａ）は第１補正処理前のキャラクタを例示する図であり、図８（Ｂ）は第１補正処理後のキャラクタを例示する図である。
【図９】本実施形態における第２異常幅値補正処理を説明するための図であり、図９（Ａ）はキャラクタのモジュールパターンを例示する図であり、図９（Ｂ）は第２補正処理前のキャラクタを例示する図であり、図９（Ｃ）は第２補正処理後のキャラクタを例示する図である。
【図１０】本実施形態における第３異常幅値補正処理を説明するための図であり、図１０（Ａ）はキャラクタのモジュールパターンを例示する図であり、図１０（Ｂ）は第３補正処理前のキャラクタを例示する図であり、図１０（Ｃ）は第３補正処理後のキャラクタを例示する図である。
【図１１】本実施形態における第４異常幅値補正処理を説明するための図であり、図１１（Ａ）は第４補正処理前のキャラクタを例示する図であり、図１１（Ｂ）は第４補正処理後のキャラクタを例示する図である。
【発明を実施するための形態】
【００２３】
以下、本発明に係る光学的情報読取装置の一実施形態について図を参照して説明する。
図１に示すように、光学的情報読取装置１０は、対象物に表示されたバーコードＢを読み取る装置として構成されている。ここで、バーコードＢは、１または２以上の単位モジュールからなる暗色系（以下「黒バー」ともいう）および明色系（以下「白バー」ともいう）の各領域が複数配列されて構成されるキャラクタを複数有するコードである。
【００２４】
この光学的情報読取装置１０は、図示しないケースの内部に回路部２０が収容されてなるものであり、回路部２０は、主に、照明光源２１、受光センサ２８、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、トリガースイッチ４２等のマイクロコンピュータ（以下「マイコン」という）系と、から構成されている。
【００２５】
光学系は、投光光学系と、受光光学系とに分かれている。投光光学系を構成する照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられるレンズとから構成されている。なお、図１では、バーコードＢが表示された対象物Ｒに向けて照明光Ｌｆを照射する例を概念的に示している。
【００２６】
受光光学系は、受光センサ２８、結像レンズ２７、反射鏡（図示略）などによって構成されている。受光センサ２８は、ＣＣＤエリアセンサとして構成されるものであり、バーコードＢまたは対象物Ｒに照射されて反射した反射光Ｌｒを受光可能に構成されている。この受光センサ２８は、結像レンズ２７を介して入射する入射光を受光可能にプリント配線板（図示略）に実装されている。なお、受光センサ２８は、特許請求の範囲に記載の「受光手段」の一例に相当する。
【００２７】
結像レンズ２７は、外部から読取口（図示略）を介して入射する入射光を集光して受光センサ２８の受光面２８ａに像を結像可能な結像光学系として機能するものである。本実施形態では、照明光源２１から照射された照明光ＬｆがバーコードＢにて反射した後、この反射光Ｌｒを結像レンズ２７で集光し、受光センサ２８の受光面２８ａにコード像を結像させている。
【００２８】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、トリガースイッチ４２、発光部４３、ブザー４４、バイブレータ４５、液晶表示器４６、通信インタフェース４８等から構成されている。
【００２９】
光学系の受光センサ２８から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、生成されてメモリ３５に入力されると、所定のコード画像情報格納領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２８およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３０】
制御回路４０は、光学的情報読取装置１０全体を制御可能なマイコンによって構成されており、ＣＰＵ、システムバス、入出力インタフェース等を有するとともに、情報処理機能を備えており、メモリ３５とともに情報処理装置を構成している。本実施形態では、制御回路４０に対し、トリガースイッチ４２、発光部４３、ブザー４４、バイブレータ４５、液晶表示器４６、通信インタフェース４８等が接続されている。
【００３１】
これにより、制御回路４０は、例えば、トリガースイッチ４２の監視や管理、バーコードＢの読み取りに関する情報を報知するインジケータとして機能する発光部４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、当該光学的情報読取装置１０の使用者に伝達し得る振動を発生可能なバイブレータ４５の駆動制御、液晶表示器４６の表示制御や外部装置とのシリアル通信を可能にする通信インタフェース４８の通信制御等を可能にしている。
【００３２】
次に、上述のように構成される光学的情報読取装置１０において、バーコードＢを読み取る場合に制御回路４０により実施される読取処理について図２〜図５のフローチャートを参照して説明する。なお、本実施形態では、バーの幅値が全部で４種であって、１キャラクタあたり黒バー（暗色系の領域）と白バー（明色系の領域）とが各２つずつからなる合計７つのモジュールで構成されるＥＡＮ−１３のバーコードに対する読取処理を一例に挙げて主に説明する。
【００３３】
まず、図２のステップＳ１０１において撮像処理がなされ、作業者のトリガースイッチ４２の操作に応じて照明光源２１から照明光Ｌｆが、バーコードＢが表示された対象物Ｒに向けて照射される。そして、図１に示すように、対象物Ｒにて反射された反射光Ｌｒが受光センサ２８にて受光されることにより受光センサ２８から出力される受光信号に基づいて、ステップＳ１０３にて幅値演算処理がなされ、各キャラクタを構成する黒バーおよび白バーの幅値がそれぞれ演算される。この幅値演算処理では、具体的には、受光信号の信号波形と所定の閾値と比較に応じて黒バーおよび白バーに区別してそれぞれの幅値を演算している。なお、ステップＳ１０３の幅値演算処理を実行する制御回路４０は、特許請求の範囲に記載の「幅値演算手段」の一例に相当する。
【００３４】
次に、ステップＳ１０５にてデコード処理がなされる。この処理では、ステップＳ１０３にて演算された黒バーおよび白バーの各幅値に基づいてデコードが実施される。そして、このデコード処理が成功した場合には、ステップＳ１０７にてＹｅｓと判定されて、後述するステップＳ１０９からの処理が行われることなく当該読取処理を終了する。一方、ステップＳ１０５にてデコード処理が失敗した場合にはステップＳ１０７にてＮｏと判定されて、幅値演算処理にて演算された幅値のなかに、印刷ムラ等が生じたために本来の幅値に対して変化した異常な幅値（すなわちバーの太りや細りが生じた幅値）が含まれるとみなされて、ステップＳ１０９からの処理が実行される。なお、ステップＳ１０５のデコード処理を実行する制御回路４０は、特許請求の範囲に記載の「デコード手段」の一例に相当する。
【００３５】
次に、ステップＳ１０９にて昇順配列処理がなされ、幅値演算処理にて演算された各幅値が、黒バー、白バーの種別にかかわらず、昇順に配列される。具体的には、例えば、図６に示すように、幅値が順番に小さい値から大きい値に並べられる。ここで、図６の縦軸は幅値（相対値）である。
【００３６】
そして、この昇順配列処理により作成されたグラフを基に、ステップＳ１１１にて集団作成処理がなされる。この集団作成処理では、図６に示すように、幅値同士が近似する当該幅値の配列を１つの集団とみなし、この集団（図６の一点鎖線内）を複数作成する。本実施形態では、隣接する幅値同士の差が１０％以内である配列を１つの集団とみなすように設定されているが、読み取りを行うバーコードの種別等に応じてこの値は適宜変更することができる。なお、ステップＳ１１１の集団作成処理を実行する制御回路４０は、特許請求の範囲に記載の「集団作成手段」の一例に相当する。
【００３７】
次に、集団作成処理にて作成された各集団に対して、ステップＳ１１３にて第１判定処理がなされる。本実施形態ではＥＡＮ−１３のバーコードを読取対象としていることから、バーコードを構成するバーの幅値は４種類に限定されるので、この４種類の幅値のバーが少なくとも所定数以上それぞれ存在することとなる。そこで、ステップＳ１１３の判定処理ではこの性質を利用している。具体的に、本実施形態では、ステップＳ１１１にて作成された各集団のうち、当該各集団を構成する各バーの総数が上記所定数以上であれば、当該集団が正常幅値集団と判定されるように設定されている。また、各バーの総数が上記所定数未満の集団は、少数幅値集団と判定されるように設定されている。ここで、本実施形態では、上記所定数は例えば５に設定されているが、これに限らず、読み取りを行うバーコードの種別等に応じて適宜変更することができる。なお、ステップＳ１１３の判定処理を実行する制御回路４０は、特許請求の範囲に記載の「第１判定手段」の一例に相当する。
【００３８】
次に、ステップＳ１１５において、正常幅値補正処理がなされる。この正常幅値補正処理では、まず、各正常幅値集団の各バーの幅値の平均値（以下「平均幅値」ともいう）が、当該正常幅値集団ごとに算出される。ここで、平均幅値とは、正常幅値集団の各幅値を足し合わせた値を、正常幅値集団を構成するバーの総数で割った値のことをいう。そして、各バーの幅値が、上述のように算出された平均値に全て等しくなるように補正される。
【００３９】
次に、ステップＳ１１７にて、少数幅値集団抽出処理がなされる。この処理では、少数幅値集団と判定された集団が複数ある場合、これら各集団のうち各バーの幅値が最も小さい集団が抽出されて第１少数幅値集団として設定される。また、少数幅値集団と判定された集団が１つのみの場合には、その集団が第１少数幅値集団として設定される。
【００４０】
そして、図３のステップＳ１１９にて、上記ステップＳ１１７にて抽出された第１少数幅値集団の各バーの幅値に対して小さな平均幅値（第１平均幅値Ｗａ）の正常幅値集団（第１正常幅値集団Ｃ１）と大きな平均幅値（第２平均幅値Ｗｂ）の正常幅値集団（第２正常幅値集団Ｃ２）との双方が存在するか否かについて判定される。ここで、例えば、第１少数幅値集団が図６に示す少数幅値集団Ｓ１である場合に、この少数幅値集団Ｓ１に対して第１正常幅値集団Ｃ１および第２正常幅値集団Ｃ２が存在する場合にはステップＳ１１９にてＹｅｓと判定される。
【００４１】
次に、ステップＳ１２０にて第２判定処理がなされる。この処理では、第１正常幅値集団Ｃ１の第１平均幅値Ｗａと第２正常幅値集団Ｃ２の第２平均幅値Ｗｂとに基づいて、第１少数幅値集団が、各バーの幅値が異常（以下「異常幅値」ともいう）である異常幅値集団であるか否かについて判定される。本実施形態ではＥＡＮ−１３のバーコードを読取対象としており、このバーコードを構成する４種類のバーの幅値が１：２：３：４の比率に規定されている。ここで、例えば、第１平均幅値Ｗａと第２平均幅値Ｗｂとの比の関係から、両平均幅値の間に存在する幅値が規定の比率でない異常幅値であると判定されると、当該第１少数幅値集団が異常幅値集団であるとして、ステップＳ１２０にてＹｅｓと判定される。なお、ステップＳ１２０の判定処理を実行する制御回路４０は、特許請求の範囲に記載の「第２判定手段」の一例に相当する。
【００４２】
上述のように第１少数幅値集団が異常幅値集団であると判定されると、ステップＳ１２１にて第１補正処理のサブルーチンが実行される。なお、ステップＳ１２１の第１補正処理を実行する制御回路４０は、特許請求の範囲に記載の「補正手段」の一例に相当する。この第１補正処理のサブルーチンでは、まず、図４のステップＳ２０１において、初期条件設定処理がなされる。この処理では、異常幅値集団を構成する各バーの総数ｎと、第１閾値Ｗｔｈ１および第２閾値Ｗｔｈ２とが設定される。本実施形態では、第１平均幅値Ｗａを０％、第２平均幅値Ｗｂを１００％とした百分率のうち、３５％の値が第１閾値Ｗｔｈ１、６５％の値が第２閾値Ｗｔｈ２に設定される。なお、第１閾値Ｗｔｈ１および第２閾値Ｗｔｈ２の値は、読み取りを行うバーコードＢの種別等に応じて適宜変更することができる。また、異常幅値集団を構成するｎ個のバーのうち、幅値の小さいものからｋ番目のバーの幅値をＷｋとして処理するため、本初期条件設定処理では、ｋ＝１に設定される。
【００４３】
次に、ステップＳ２０３にて、異常幅値集団のバーの幅値Ｗｋが第１閾値Ｗｔｈ１以下であるか否かについて判定される。この段階ではｋ＝１であるため、異常幅値集団を構成する最も小さなバーの幅値Ｗ１が第１閾値Ｗｔｈ１以下であるか否かについて判定されることとなる。そして、幅値Ｗ１が第１閾値Ｗｔｈ１以下と判定される場合には（Ｓ２０３でＹｅｓ）、当該幅値Ｗ１は第２平均幅値Ｗｂとの差よりも第１平均幅値Ｗａとの差が小さいとして、ステップＳ２０５にて、この幅値Ｗ１が第１平均幅値Ｗaに等しくなるように設定される。一方、幅値Ｗ１が第１閾値Ｗｔｈ１より大きいと判定されると（Ｓ２０３でＮｏ）、ステップＳ２０７にてこの幅値Ｗ１が第２閾値Ｗｔｈ２以上であるか否かについて判定される。そして、幅値Ｗ１が第２閾値Ｗｔｈ２以上と判定される場合には（Ｓ２０７でＹｅｓ）、当該幅値Ｗ１は第１平均幅値Ｗａとの差よりも第２平均幅値Ｗｂとの差が小さいとして、ステップＳ２０９にて、この幅値Ｗ１が第２平均幅値Ｗｂに等しくなるように設定される。一方、幅値Ｗ１が第２閾値Ｗｔｈ２未満と判定されると（Ｓ２０７でＮｏ）、ステップＳ２１１にて後述する個別補正処理のサブルーチンが実行される。
【００４４】
上述のように、異常幅値集団のバーの幅値Ｗ１がステップＳ２０５、Ｓ２０９、Ｓ２１１のいずれかにて補正されると、ステップＳ２１３にてｋ≧ｎであるか否かについて判定される。すなわち、異常幅値集団のバーの幅値Ｗｋすべてについて本第１補正処理がなされていなければ、ステップＳ２１３にてＮｏと判定されて、ステップＳ２１５にてｋに１が加算されて、ステップＳ２０３からの処理が繰り返される。この段階では、ｋ＝１であるため、ｎが２以上であればステップＳ２１３にてＮｏと判定されて、ステップＳ２１５にてｋ＝２に設定されて、ステップＳ２０３からの処理が繰り返されることとなる。一方、第１少数幅値集団のバーの幅値Ｗｋすべてについて本第１補正処理がなされたことからｋ≧ｎとなると（Ｓ２１３でＹｅｓ）、本第１補正処理のサブルーチンが終了する。
【００４５】
ここで、上述した個別補正処理について、図５のフローチャートを用いて説明する。
この個別補正処理では、異常幅値Ｗｋのバーを含むキャラクタの予め規定された幅値（以下、規定幅値ともいう）と、当該キャラクタに含まれる他の正常なバーの幅値とに基づいて、異常幅値集団のバーの幅値Ｗｋが補正される。具体的に、この個別補正処理のサブルーチンでは、まず、図５のステップＳ３０１において、キャラクタ抽出処理がなされ、幅値Ｗｋのバーが含まれるキャラクタが１つ抽出される。次に、ステップＳ３０３にて、この抽出キャラクタを構成する各バーのうち異常幅値のバーが１つあるか否かが判定される。そして、この抽出キャラクタ内に異常幅値のバーが幅値Ｗｋのバー１つのみ存在する場合には、ステップＳ３０３にてＹｅｓと判定され、ステップＳ３０５にて第１異常幅値補正処理がなされる。
【００４６】
この第１異常幅値補正処理では、幅値Ｗｋが、１キャラクタを構成する規定の総モジュール数から、抽出キャラクタ内の正常幅値（すなわち非補正対象である規定幅値）の各バーを構成するモジュール数の総和を減算した値に等しくなるように補正される。具体的な数値を基に説明すると、例えば、図８（Ａ）に示すように、異常幅値のモジュール数に相当する値が０．６であり、正常幅値のモジュール数に相当する値が４，１，１の３つであるとすると、異常幅値集団のバーの幅値Ｗｋのモジュール数に相当する値は、７（１キャラクタを構成する総モジュール数）から６（正常幅値のバーを構成するモジュールの総数）を引いた値である１に補正されることとなる（図８（Ｂ）参照）。
【００４７】
一方、ステップＳ３０３にてＮｏと判定されると、ステップＳ３０７にて、抽出キャラクタを構成する各バーのうち異常幅値のバーが２つあるか否かが判定される。そして、この抽出キャラクタ内に異常幅値のバーが２つ存在する場合には、ステップＳ３０７にてＹｅｓと判定され、ステップＳ３０９にて第２異常幅値補正処理がなされる。
【００４８】
この第２異常幅値補正処理では、まず、１キャラクタを構成する規定の総モジュール数から、抽出キャラクタ内の正常幅値の各バーを構成するモジュール数の総和を減算し、補正対象の２つのバーのモジュール数の総和を求める。補正対象のバーのモジュール数の総和から想定される補正後のモジュールパターンが図９（Ａ）に示すように限定されることから、このモジュールパターンに従い、補正対象のモジュール数の総和が２である場合には、それぞれの異常幅値をモジュール数で１に相当する値に補正する。補正対象のモジュール数の総和が３である場合には、２つの異常幅値のうち小さいほうをモジュール数で１に相当する値に、大きいほうをモジュール数で２に相当する値に補正する。また、補正対象のモジュール数の総和が４である場合には、この２つの異常幅値の差がモジュール数で１に相当する値未満であればそれぞれモジュール数で２に相当する値に、２つの異常幅値の差がモジュール数で１に相当する値以上であれば小さいほうをモジュール数で１に相当する値に大きいほうをモジュール数で３に相当する値に補正する。さらに、補正対象のモジュール数の総和が５である場合には、この２つの異常幅値の差がモジュール数で２に相当する値未満であれば小さいほうをモジュール数で２に相当する値に大きいほうをモジュール数で３に相当する値に補正し、２つの異常幅値の差がモジュール数で２に相当する値以上であれば小さいほうをモジュール数で１に相当する値に大きいほうをモジュール数で４に相当する値に補正する。
【００４９】
具体的な数値を基に説明すると、例えば、図９（Ｂ）に示すように、異常幅値をモジュール数に換算した値が１．６と２．４であり、正常幅値をモジュール数に換算した値が２，１の２つであるとすると、まず、補正対象のモジュール数の総和は７から３を減算して４となる。そして、補正対象のモジュール数の総和が４なので、想定される補正後のモジュールパターンは、１：３か２：２となる。ここで、２つの異常幅値の差をモジュール数に換算した値は０．８であり１未満であるので、この２つの異常幅値は、それぞれモジュール数で２に相当する値に補正される（図９（Ｃ）参照）。
【００５０】
一方、ステップＳ３０７にてＮｏと判定されると、ステップＳ３１１にて、抽出キャラクタを構成する各バーのうち異常幅値のバーが３つあるか否かが判定される。そして、この抽出キャラクタ内に異常幅値のバーが３つ存在する場合には、ステップＳ３１１にてＹｅｓと判定され、ステップＳ３１３にて第３異常幅値補正処理がなされる。
【００５１】
この第３異常幅値補正処理では、まず、上述した第２異常幅値補正処理と同様に、１キャラクタを構成する規定の総モジュール数から、抽出キャラクタ内の正常幅値の各バーを構成するモジュール数の総和を減算し、補正対象の３つのバーのモジュール数の総和を求める。補正対象のバーのモジュール数の総和から想定される補正後のモジュールパターンが図１０（Ａ）に示すように限定されることから、このモジュールパターンに従い、補正対象のモジュール数の総和が３である場合には、それぞれの異常幅値をモジュール数で１に相当する値に補正する。補正対象の総モジュール数が４である場合には、３つの異常幅値のうち一番大きいものをモジュール数で２に相当する値に、それ以外をモジュール数で１に相当する値に補正する。補正対象の総モジュール数が５である場合には、３つの異常幅値のうち一番大きい値と２番目に大きい値との差がモジュール数で１に相当する値未満なら、一番小さい値をモジュール数で１に相当する値に補正しそれ以外の値をモジュール数で２に相当する値に補正する。また、３つの異常幅値のうち一番大きい値と２番目に大きい値との差がモジュール数で１に相当する値以上なら、一番大きい値をモジュール数で３に相当する値に補正し、それ以外の値をモジュール数で１に相当する値に補正する。さらに、補正対象の総モジュール数が６である場合には、３つの異常幅値のうち一番大きい値と一番小さい値との差がモジュール数で１に相当する値未満なら、すべての値をモジュール数で２に相当する値に補正する。また、３つの異常幅値のうち一番大きい値と一番小さい値との差がモジュール数で１に相当する値以上であって一番大きい値と二番目に大きい値との差がモジュール数で２に相当する値未満なら、一番大きい値をモジュール数で３に相当する値に、２番目に大きい値をモジュール数で２に相当する値に、一番小さい値をモジュール数で１に相当する値に補正する。さらに、３つの異常幅値のうち一番大きい値と２番目に大きい値との差がモジュール数で２に相当する値以上なら、一番大きい値をモジュール数で４に相当する値に、それ以外の値をモジュール数で１に相当する値に補正する。
【００５２】
具体的な数値を基に説明すると、例えば、図１０（Ｂ）に示すように、異常幅値をモジュール数に換算した値が１．４、２．４、２．６の３つであり、正常幅値をモジュール数に換算した値が１つのみでその値が１であるとすると、まず、補正対象のモジュール数の総和は７から１を減算して６となる。そして、補正対象のモジュール数の総和が６なので、想定される補正後のモジュールパターンは、１：１：４か２：２：２か１：２：３のいずれかとなる。ここで、３つの異常幅値のうち、一番大きい値と一番小さい値との差をモジュール数に換算した値が１．２であり、一番大きい値と二番目に大きい値との差をモジュール数に換算した値が０．２であるので、３つの異常幅値は、モジュール数に換算した値で１．４が１に、２．４が２に、２．６が３にそれぞれ補正される（図１０（Ｃ）参照）。
【００５３】
一方、ステップＳ３１１にてＮｏと判定されると、ステップＳ３１５にて第４異常幅値補正処理がなされる。ここで、ステップＳ３１１でのＮｏとの判定は、抽出キャラクタ内には正常幅値が存在せず、異常幅値しか存在しないことを意味する。そして、この第４異常幅値補正処理では、４つの異常幅値についてそれぞれ四捨五入した値に補正する。具体的な数値を基に説明すると、例えば、図１１（Ａ）に示すように、異常幅値がモジュール数に換算した値で０．６、１．６、３．４、４．４の４つであるとすると、それぞれの値を四捨五入して、０．６が１に、１．６が２に、３．４が３に、４．４が４に補正される（図１１（Ｂ）参照）。
このように、異常幅値Ｗｋが各異常幅値補正処理のいずれかにて補正されることにより、個別補正処理のサブルーチンが終了する。
【００５４】
一方、上述した図３のステップＳ１１９において、上述のように抽出された第１少数幅値集団の各バーの幅値に対して大きな平均幅値の正常幅値集団と小さな平均幅値の正常幅値集団とのいずれか一方のみが存在する場合には、ステップＳ１１９にてＮｏと判定されてステップＳ１２３にて第２補正処理がなされることとなる。この第２補正処理では、第１少数幅値集団の一方に存在する正常幅値集団の平均幅値と、この平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて第１少数幅値集団の各バーの幅値が補正される。具体的には、例えば、図７に示す少数幅値集団Ｓ２のように、大きな平均幅値の第２正常幅値集団Ｃ２が存在せず小さな平均幅値の第１正常幅値集団Ｃ１のみが存在する場合には、この少数幅値集団Ｓ２が、第１正常幅値集団Ｃ１の第１平均幅値Ｗａと、この第１平均幅値Ｗａとの差が小さい他の正常幅値集団の平均幅値（図７に示す正常幅値集団Ｃ３の平均幅値Ｗｃ）とに基づいて補正される。
【００５５】
また、上述したステップＳ１２０において、第１少数幅値集団の各バーの幅値が異常でないと判定されると（Ｓ１２０でＮｏ）、ステップＳ１２４にて第３補正処理がなされ、全てのバーの幅値が両平均幅値Ｗａ，Ｗｂとの関係において想定される正常な幅値に等しくなるように設定される。
【００５６】
このように、ステップＳ１２１、Ｓ１２３、Ｓ１２４の処理において第１少数幅値集団の各バーの幅値が補正されると、ステップＳ１２５にて全ての少数幅値集団について補正が終了したか否かについて判定される。そして、全ての少数幅値集団について補正が終了していない場合には、ステップＳ１２５にてＮｏと判定され、ステップＳ１２７にて未だ補正されていない少数幅値集団が１つ抽出されて、この抽出された少数幅値集団に対してステップＳ１１９からの処理が繰り返されることとなる。
【００５７】
一方、全ての少数幅値集団について補正が終了した場合には、ステップＳ１２５にてＹｅｓと判定されて、上述したステップＳ１０９からステップＳ１２５までの処理において補正された幅値に基づき、ステップＳ１２９にて再デコード処理がなされて当該読取処理が終了する。この再デコード処理では、上述のように異常幅値Ｗｋ等が適切に補正されているので、印刷ムラ等により本来の幅値が変化したバーを含むバーコードであっても確実にデコードを成功することができる。
【００５８】
以上説明したように、本実施形態に係る光学的情報読取装置１０では、デコードに失敗すると、演算された幅値が近似するバーのみから構成される集団が集団作成処理により複数作成される。さらに、第１判定処理により、集団作成処理により作成された各集団のうち、各バーの総数が上記所定数以上の集団が正常幅値集団と判定され、各バーの総数が所定数未満の集団が少数幅値集団と判定される。また、第２判定手段により、各少数幅値集団のうち、各正常幅値集団の各バーの幅値との差に基づいて異常な幅値と判断されるバーで構成される集団が異常幅値集団と判定される。そして、異常幅値集団を構成する各バーの異常幅値Ｗｋが、各正常幅値集団の各バーの幅値との差に基づいて補正され、この補正された補正幅値を用いてデコード手段により再デコードされる。
【００５９】
これにより、印刷ムラ等により本来の幅値が変化した異常幅値Ｗｋのバーを含むバーコードのデコードに失敗した場合には、上記異常幅値Ｗｋのバーはその幅値に近似する幅値のバーが少ないことから異常幅値集団に含まれて、正常幅値集団の各バーの幅値との差に基づいて補正される。これにより、印刷ムラ等により変化した幅値が本来の幅値に適正に補正されて、読取精度の低下を抑制することができる。
また、本発明では、各黒バーおよび各白バーの幅値の総数に関わらず、各幅値のみを相対的に比較することで異常幅値Ｗｋを補正している。そのため、モジュール数に依存せず補正を行うことができ、１つのキャラクタを構成するモジュールの数が固定されているバーコード（例えば、ＥＡＮ−１３やＥＡＮ−８、ＵＰＣ−Ａなど）はもちろんのこと、モジュール数が固定されていないバーコードにおいても補正することができる。
【００６０】
そして、異常幅値集団を構成する各バーの異常幅値Ｗｋを、各正常幅値集団を構成する各バーの平均幅値Ｗａ，Ｗｂとの差に基づいて補正処理により補正するように構成されている。このように、各正常幅値集団の各バーの平均幅値Ｗａ，Ｗｂを用いることで、各正常幅値集団の各バーの幅値にバラツキがあっても、異常幅値集団を構成する各バーの異常幅値Ｗｋが適切に補正され、読取精度の低下を抑制することができる。
【００６１】
さらに、異常幅値集団に対して第１正常幅値集団Ｃ１および第２正常幅値集団Ｃ２が存在するとき、当該異常幅値集団を構成する各バーの異常幅値Ｗｋが、第２平均幅値Ｗｂとの差よりも第１平均幅値Ｗａとの差が小さい場合に当該第１平均幅値Ｗａに等しくなるように補正され、第１平均幅値Ｗａとの差よりも第２平均幅値Ｗｂとの差が小さい場合に当該第２平均幅値Ｗｂに等しくなるように補正される。これにより、異常幅値集団を構成する各バーの異常幅値Ｗｋを、当該各幅値にもっとも近い正常幅値集団の平均幅値を用いてそれぞれ適切に補正することができる。
【００６２】
また、少数幅値集団に対して第１正常幅値集団Ｃ１および第２正常幅値集団Ｃ２のいずれか一方のみが存在する場合には、当該少数幅値集団の各バーの幅値が、存在する一方の正常幅値集団の平均幅値とこの平均幅値との差が小さい他の正常幅値集団の平均幅値とに基づいて補正される。これにより、例えば、少数幅値集団の各バーの幅値が各正常幅値集団の平均幅値よりも大きいことから第２正常幅値集団Ｃ２が存在せず第１正常幅値集団Ｃ１のみが存在する場合でも、この第１正常幅値集団Ｃ１の第１平均幅値Ｗａとこの第１平均幅値Ｗａとの差が小さい他の正常幅値集団の平均幅値とに基づいて少数幅値集団の各バーの幅値を適切に補正することができる。
【００６３】
そして、異常幅値集団を構成する各バーの異常幅値Ｗｋを、当該異常幅値Ｗｋに対する第１平均幅値Ｗａの差と当該異常幅値Ｗｋに対する第２平均幅値Ｗｂの差とが近似する場合には、当該異常幅値Ｗｋのバーを含むキャラクタの規定幅値と、当該キャラクタに含まれる他のバーの幅値とに基づいて個別補正処理により補正するように構成されている。これにより、異常幅値Ｗｋに対する両平均幅値Ｗａ，Ｗｂの差が近似していることから、当該異常幅値Ｗｋが両平均幅値Ｗａ，Ｗｂのどちらにも補正されうる可能性がある場合であっても、異常幅値Ｗｋを、当該異常幅値Ｗｋのバーを含むキャラクタの規定幅値とこのキャラクタに含まれる他のバーの幅値とに基づいて、第１平均幅値Ｗａもしくは第２平均幅値Ｗｂのいずれか一方に適切に補正することができる。
【００６４】
なお、本発明は上記実施形態に限定されるものではなく、以下のように具体化してもよく、その場合でも、上記実施形態と同等の作用・効果が得られる。
上記実施形態では、ＥＡＮ−１３のバーコードを一例に挙げて説明したが、読み取り対象のバーコードはこれに限らず、ＥＡＮ−８、ＵＰＣ−Ａ、ＣＯＤＥ−３９、ＣＯＤＥ−１２８などのバーコードにおいても上記作用効果を奏する。このようにＥＡＮ−１３と異なる規格のバーコードを読み取り対象とする場合には、上記ステップＳ２１１における個別補正処理では、その規定幅値等の規格に応じた補正が実施される。
【符号の説明】
【００６５】
１０…光学的情報読取装置
２８…受光センサ（受光手段）
４０…制御回路（幅値演算手段，デコード手段，集団作成手段，第１判定手段，第２判定手段、補正手段）
Ｃ１，Ｃ２…正常幅値集団
Ｓ１，Ｓ２…少数幅値集団（異常幅値集団）
Ｂ…バーコード
Ｒ…対象物
Ｗａ…第１平均幅値
Ｗｂ…第２平均幅値
Ｗｋ…異常幅値
【図１】
2011100192.tif 000003
【図２】
2011100192.tif 000004
【図３】
2011100192.tif 000005
【図４】
2011100192.tif 000006
【図５】
2011100192.tif 000007
【図６】
2011100192.tif 000008
【図７】
2011100192.tif 000009
【図８】
2011100192.tif 000010
【図９】
2011100192.tif 000011
【図１０】
2011100192.tif 000012
【図１１】
2011100192.tif 000013