(57)【要約】【課題】各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定すること。【解決手段】切り出し部５ａが光電変換信号からバーコード信号らしき部分を切り出した後に、モジュール周波数を用いて狭帯域微分処理部５ｂが微分処理をおこなってエッジの波形を作り、モジュール点抽出部５ｄがここからモジュール点を抽出した後に、最尤判定処理部５ｆが、大局的な情報を利用する最尤法に基づいて３値化処理をおこなう。【選択図】      図１
2004252895.tif 000002
【特許請求の範囲】
【請求項１】
バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取装置であって、
前記エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得する振幅値取得手段と、
前記振幅値取得手段により取得された各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理する３値化処理手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項２】
前記３値化処理手段は、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記３値化処理手段は、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
前記３値化処理手段は、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することを特徴とする請求項２または３に記載のバーコード読取装置。
【請求項５】
前記３値化処理手段は、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すことを特徴とする請求項２、３または４に記載のバーコード読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取装置に関し、特に、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定することができるバーコード読取装置に関する。
【０００２】
【従来の技術】
従来から商品の流通分野においては、あらかじめ商品にバーコードを付しておき、この商品がバーコード読取装置（バーコードスキャナ）にかざされた際に商品のバーコードを読み取ることにより、この商品の値段や商品名などの商品に関する情報をレジスタ等に登録するバーコードシステムが知られている。
【０００３】
具体的には、かかるバーコード読取装置では、（１）黒バーと白バーの幅情報の配列からなるバーコードに対してビーム光を照射するとともに、このバーコードから反射された反射光を受光してその光強度に応じた振幅の電気信号を発生し、（２）この電気信号の振幅変化からバーコードをなす白バーから黒バーへの境界および黒バーから白バーへの境界信号（エッジ信号）を抽出し、（３）抽出したエッジ信号間を、バー幅の数十倍〜数百倍の分解能を持つクロックを用いて、エッジ信号間隔をバー幅カウント値として計測し、（４）計測したカウント値から、バーコードをなす各バーの幅を計測し、白黒バーの幅比を計算するという一連の処理をおこなうことになる。
【０００４】
したがって、従来のバーコード読取装置によれば、バーコードからの反射光の光強度が十分あり、反射光の振幅が大きい場合には、バーコードの白黒バーの幅比を正確に把握し、もってバーコードが付された商品の商品に関する情報をレジスタ等に正確に登録することができる。
【０００５】
【特許文献１】
特開平１０−２６１０４３号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、バーコード読取装置の実運用環境を考慮すると、必ずしもバーコードからの反射光が十分ある場合だけではないので、バーコードの白黒バーの読み取り誤りが生ずるという問題がある。
【０００７】
特に、モジュール点の振幅値を一つ一つ個別に見た場合には、実運用環境によってはたまたま振幅値が低下することが多いため、黒バーから白バーへ変化するエッジ「１」であるか、白バーから黒バーへ変化するエッジ「−１」であるか、エッジでない部分「０」であるかを正確に判定することは難しい。
【０００８】
これらのことから、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかをいかに効率的かつ正確に判定するかが重要な課題となっている。なお、上記特許文献１のものは、最尤推定法と限界距離復号法を組み合わせてバーコードのような符号化された文字列を復号するものであるが、ここでは単に復号化のために最尤推定法を使っているだけであり、各モジュール点の振幅値を３値化するために用いているわけではないので、かかる課題を解決するものではない。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定することができるバーコード読取装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明に係るバーコード読取装置は、バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取装置であって、前記エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得する振幅値取得手段と、前記振幅値取得手段により取得された各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理する３値化処理手段と、を備えたことを特徴とする。
【００１１】
この発明によれば、エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得し、取得した各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理することとしたので、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定することができる。
【００１２】
また、この発明に係るバーコード読取装置は、上記発明において、前記３値化処理手段は、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することを特徴とする。
【００１３】
この発明によれば、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することとしたので、最尤推定を効率良くおこなうことができる。
【００１４】
また、この発明に係るバーコード読取装置は、上記発明において、前記３値化処理手段は、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することを特徴とする。
【００１５】
この発明によれば、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することとしたので、微分特性に基づいて対象となるパスを減らし、処理の効率化を図ることができる。
【００１６】
また、この発明に係るバーコード読取装置は、上記発明において、前記３値化処理手段は、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することを特徴とする。
【００１７】
この発明によれば、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することとしたので、微分特性に基づいて対象となるパスを減らし、処理の効率化を図ることができる。
【００１８】
また、この発明に係るバーコード読取装置は、上記発明において、前記３値化処理手段は、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すことを特徴とする。
【００１９】
この発明によれば、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すこととしたので、パスの誤りに伴う精度の低下を防ぐことができる。
【００２０】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るバーコード読取装置の好適な実施の形態を詳細に説明する。
【００２１】
まず、本実施の形態に係るバーコード読取装置の構成について説明する。図１は、本実施の形態に係るバーコード読取装置の構成を示す機能ブロック図である。同図に示すように、このバーコード読取装置は、光走査部２と、アナログ処理部３と、ＡＤコンバータ４と、読取処理部５とを有する。
【００２２】
光走査部２は、ビーム光を発光するＬＤ（Ｌａｓｅｒ  Ｄｉｏｄｅ）２ａと、このＬＤ２ａからのビーム光を反射させる鏡面体により形成されたポリゴンミラー２ｂとを有する。このポリゴンミラー２ｂは、図示しないモータから与えられる回転作動力によって回転し、ビーム光の反射方向を変化させることにより、複数の走査パターンを与える役割を持つ。この光走査部２を用いることにより、ＬＤ２ａから発光されたビーム光が、ポリゴンミラー２ｂの回転によって読取面にかざされたバーコード１に出射され、図中ａからｂに向かう方向に照射されることになる。
【００２３】
アナログ処理部３は、バーコード１に照射されたビーム光の反射光を含む光を受光部により受光し、その強弱に応じた振幅値の電気信号に光電変換するとともに、光電変換された信号に必要な増幅をおこなうものである。ＡＤコンバータ４は、アナログ処理部３から出力されたアナログの光電変換信号をデジタルサンプリングしてデジタル信号として出力するものである。
【００２４】
読取処理部５は、ＡＤコンバータ４から受け取ったデジタルの光電変換信号に基づいてバーコードキャラクタを特定して出力する処理部であり、切り出し部５ａ、狭帯域微分処理部５ｂ、モジュール周波数抽出部５ｃ、モジュール点抽出部５ｄ、モジュールタイミング抽出部５ｅ、最尤判定処理部５ｆおよびバーコード復調部５ｇを有する。
【００２５】
切り出し部５ａは、後段の処理の負荷を軽減するために、光電変換信号からバーコードらしい信号のみを抽出する処理部であり、具体的には、光電変換信号が、縦軸を時間とし縦軸を振幅値とした波形となるので、図２（ａ）に示すような波形の一部を切り出すことになる。
【００２６】
モジュール周波数抽出部５ｃは、バーコード信号の基本モジュールに相当する周波数を抽出する処理部であり、狭帯域微分処理部５ｂは、モジュール周波数抽出部５ｃにより抽出された基本モジュールに相当する周波数に基づいて光電変換信号に狭帯域微分をおこなって、図２（ｂ）に示すようなエッジの波形を抽出する処理部である。具体的には、バーコード１の黒バーが白バーに変化する場合にはプラスのエッジが生じ、白バーから黒バーに移行する場合にはマイナスのエッジが生ずることになる。
【００２７】
モジュールタイミング抽出部５ｅは、モジュール周波数抽出部５ｃにより抽出された基本モジュールに相当する周波数に基づいてモジュール点を抽出するためのタイミングを抽出する処理部であり、モジュール点抽出部５ｄは、モジュールタイミング抽出部５ｅが抽出したタイミングにしたがって、図２（ｃ）に示すようにモジュール点を抽出する処理部である。
【００２８】
最尤判定処理部５ｆは、本発明の特徴をなす部分であり、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理する。
【００２９】
かかる最尤判定をおこなう理由は、モジュール点の振幅値を一つ一つ個別に見た場合には、実運用環境によってはたまたま振幅値が低下することが多く、黒バーから白バーへ変化するエッジ「１」であるか、白バーから黒バーへ変化するエッジ「−１」であるか、エッジでない部分「０」であるかを正確に判定することが難しいからである。すなわち、この最尤判定処理部５ｆでは、モジュール点をローカルに見るのではなく、複数のモジュール点間の遷移状態を考慮して各モジュール点の３値判定をおこなうこととしている。
【００３０】
ここで、この最尤判定処理部５ｆは、微分特性を考慮してパスに制限をつけている点にも特徴がある。具体的には、状態１から状態１へのパス、状態−１から状態−１へのパス、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止している。なぜなら、状態１から状態１へ状態遷移は、黒バーから黒バーへのエッジが存在することを意味するが、バーコードの場合には黒バーが多値ではないので、この状態遷移が生じないからである。つまり、状態１からは状態０または状態−１に移行する他ないのである。なお、同様の理由で、状態−１から状態−１へのパス、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスも禁止することができる。
【００３１】
また、この最尤判定処理部５ｆは、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すこととしている。その理由は、たとえば上記説明で禁止されている状態−１から状態０を経て状態−１へ遷移するパスのみが存在するような場合には、明らかにパスメトリックの値が妥当でなかったわけであるので、状態０から状態０への遷移を候補として残すべきだからである。
【００３２】
さらに、この最尤判定処理部５ｆは、連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックとするわけであるが、黒バーの黒太りや白バーの白太りが存在する場合には、リファレンスの値を変化させることとしている。かかる処理をおこなう理由は、黒バーの黒太りや白バーの白太りに起因してモジュール点の振幅値が低下し、その結果として生き残りパスに誤りが生ずる可能性があるからである。この点についての詳細な説明は後述する。
【００３３】
バーコード復調部５ｇは、最尤判定処理部５ｆの判定結果（エッジの変化）に基づいて、バーコード１がいかなる黒バーと白バーの組み合わせにより形成されるかを特定し、特定したデータに対応するバーコードキャラクターを出力する処理部である。
【００３４】
次に、図１に示した読取処理部５の処理手順について説明する。図３は、図１に示した読取処理部５の処理手順を示すフローチャートである。同図に示すように、この読取処理部５では、まず切り出し部５ａが光電変換信号からバーコード信号らしき部分を切り出す（ステップＳ１０１）。
【００３５】
その後、モジュール周波数抽出部５ｃが抽出したモジュール周波数を用いて狭帯域微分処理部５ｂが微分処理をおこなって、上記バーコード信号らしき部分の波形からエッジの波形を抽出する（ステップＳ１０２）。また、モジュールタイミング抽出部５ｅがモジュール周波数を使って抽出したモジュールタイミングを利用して、モジュール点抽出部５ｄがエッジの波形からモジュール点を抽出する（ステップＳ１０３）。
【００３６】
このようにして、エッジの波形からモジュール点を抽出できたならば、最尤判定処理部５ｆが、最尤法を用いた３値判定をおこなう（ステップＳ１０４）。具体的には、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理する。
【００３７】
その後、バーコード復調部５ｉが、最尤判定処理部５ｆによる３値化処理結果を用いて、バーコード１の黒バーおよび白バーが意味するバーコードキャラクタを復調する（ステップＳ１０５）。
【００３８】
次に、図１に示した最尤判定処理部５ｆの処理について図４〜図６を用いてさらに具体的に説明する。図４（ａ）に示すように、あるモジュール点を時間ｔに対応付け、このモジュール点に引き続く次のモジュール点を時間ｔ＋１に対応づけ、それぞれ３つの状態「１」、「０」、「−１」を与える。そして、時間ｔから時間ｔ＋１の各状態へのパスを考える。ここで、すでに説明したように、状態「１」から状態「１」への遷移や、状態「−１」から状態「−１」への遷移は認めていないので、これらに対応するパスは生じない。
【００３９】
その後、各パスに対してパスメトリックを付与することになるが、その際には、時間ｔ＋１のモジュール点の振幅値と各状態（に割り当てられたリファレンス）との間の２乗誤差をパスメトリックとする。ここでは、状態１、０、−１のリファレンスをそれぞれ「１」、「０」、「−１」とし、時間ｔ＋１のモジュール点の振幅値を０．２としているので、状態０から状態１へのパスのパスメトリックは（１−０．０２）２＝０．６４となる。同様にして、各状態間のパスにパスメトリックが付与される。
【００４０】
次に、図４（ｂ）に示すように、時間ｔ＋１から時間ｔ＋２への状態遷移を考えることになるが、この段階で時間ｔから時間ｔ＋１へ至る不要なパスを削除する。具体的には、状態０から状態１へ至るパスは残すが、状態−１から状態１へ至るパスは削除する。つまり、同じ状態１へ至るパスのうちパスメトリックが小さくなるものだけを残し、それ以外を削除するのである。パスメトリックが小さくなるものを残す理由は、パスメトリックが小さいということは、該当する状態への２乗誤差が少なく該状態に至る可能性が大きいからである。
【００４１】
その後、時間ｔから時間ｔ＋１への状態遷移と同様に、時間ｔ＋１から時間ｔ＋２への状態遷移を考えてパスとパスメトリックを算定する。なお、状態ｔ＋１から状態ｔ＋２へのパスについては、前状態へ移行するパスのパスメトリックを加算する。なぜなら、最終的には、パスメトリックの最も小さい生き残りパスを利用して時間ｔの状態を決めるからである。
【００４２】
次に、図５（ａ）に示すように時間ｔ＋２から時間ｔ＋３へのパスとパスメトリックを算定した後、図５（ｂ）に示すように時間ｔ＋３から時間ｔ＋４へのパスとパスメトリックを算定する。ここで、時間ｔ＋３から時間ｔ＋４へのパスのうち、状態０から状態１へのパスは設ける必要はない。なぜなら、時間ｔ＋３の状態０へは、時間ｔ＋２の状態１からのパスが生き残っており、禁則条件である状態１から状態０を経て状態１に移行するパスになってしまうからである。
【００４３】
そして、図６に示すように時間ｔ＋４の時点での各パスのパスメトリックを計算すると、状態１へ至るパスのパスメトリックが０．１８、状態０へ至るパスのパスメトリックが０．５８、状態−１へ至るパスのパスメトリックが３．７８となるので、ここからパスメトリックの最小値を求めると、状態１へ至るパスのパスメトリックが０．１８が最小値となる。
【００４４】
ここで、あらかじめ定めたさかのぼる時間が４であるとすると、この状態１から４つのパスをさかのぼることになるので、時間ｔ＋３の状態１、時間ｔ＋２の状態−１、時間ｔ＋１の状態０、時間ｔの状態０（１→−１→１→０→０）とさかのぼることができるので、時間ｔでの状態が「０」であると判定されることになる。また、ここでは図示省略したが、時間ｔ＋５の場合も同様にして各状態に至るパスの最小のパスメトリックを求め、この状態から４つのパスをさかのぼることにより、時間ｔ＋１の状態が判定されることになる。
【００４５】
なお、ここではさかのぼるパス（時間）を４としたが、この時間は処理速度や誤り訂正能力を考慮して任意に設定することができる。さかのぼる時間を大きくすればするほど、過去の状態を保持するメモリ量や処理時間が増える反面で誤り訂正能力が大きくなる。
【００４６】
次に、図１に示した最尤判定処理部５ｆによる最尤判定時における状態遷移の制約条件について図７〜図９を用いてまとめる。図７（ａ）に示すように、ある時間から次の時間への状態遷移を考えた場合には、状態１から状態１への状態遷移と状態−１から状態−１への状態遷移は微分特性から見てあり得ないので、図７（ｂ）に示すパスのみが存在する。
【００４７】
また、３つの時間における状態遷移を考えると、図８（ａ）に示す１→０→−１のパスと、同図（ｂ）に示す−１→０→−１のパスは存在しない。さらに、図９に示す１→０→０→１のパスや、−１→０→０→−１のパスについても存在しない。微分特性から見て、これらの状態遷移はあり得ないからである。
【００４８】
次に、図１に示した最尤判定処理部５ｆが制約条件を満たさない場合におこなうパス変更について説明する。図１０は、図１に示した最尤判定処理部５ｆが制約条件を満たさない場合におこなうパス変更を説明するための説明図である。同図に示すように、時間ｔ−１の状態−１を見ると時間ｔの状態０へのパスしか存在しない。また、この時間ｔの状態０からは時間ｔ＋１の状態−１へのパスが考えられるが、すでに説明したように−１→０→−１のパスを形成してしまうので、原則としてかかるパスは削除される。
【００４９】
しかしながら、この時刻ｔ−１で状態−１のみを残したこと自体が誤っている可能性も否定できない。なぜなら、時間ｔのモジュール点の振幅値が本来の振幅値である０よりも−１に近くなってしまったようなケースも考えられるからである。このため、かかる場合に備えて、時間ｔ−１の状態０から時間ｔの状態０へのパスも残すこともできる。
【００５０】
次に、図１に示した最尤判定処理部５ｆによる３値化処理結果の一例について説明する。図１１は、図１に示した最尤判定処理部５ｆによる３値化処理結果の一例を示す図である。
【００５１】
同図（ａ）に示すエッジ波形のモジュール点が入力した場合に、単に０．５をしきい値として３値化スライスすると、同図（ｂ）のようになる。これに対して、本発明に係る最尤判定処理部５ｆによる３値化処理をおこなうと、同図（ｃ）に示す結果が得られる。
【００５２】
図中に丸印で示したモジュール点を比較すると、大局的に見た最尤判定をおこなうことにより、局所的な３値化スライスでは誤判定していた部分を適正化することができる。
【００５３】
上述してきたように、本実施の形態では、切り出し部５ａが光電変換信号からバーコード信号らしき部分を切り出した後に、モジュール周波数を用いて狭帯域微分処理部５ｂが微分処理をおこなってエッジの波形を作り、モジュール点抽出部５ｄがここからモジュール点を抽出した後に、最尤判定処理部５ｆが、大局的な情報を利用する最尤法に基づいて３値化処理をおこなうよう構成したので、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定することができる。
【００５４】
なお、本実施の形態では、状態１のリファレンスを「１」、状態０のリファレンスを「０」、状態−１のリファレンスを「−１」として２乗誤差を設けることとしたが、かかるリファレンスの値はこれに限定されるものではなく、また黒バーの黒太りに応じて変更することもできる。この点についてさらに説明すると、バーコード１をコピーして黒バーが黒太りした場合や白バーが白太りしたような場合には、ビーム径の影響により振幅値が小さくなってしまう。したがって、モジュール周波数やモジュール点の位置ずれなどから黒太りや白太りを判定した場合には、たとえば状態１のリファレンスを「０．７５」にするなど適応的に変化させることができる。
【００５５】
また、本実施の形態では、バーコードに対してビーム光を照射してその反射光を取得する光学系を用いた場合を説明したが、本発明はこれに限定されるものではなく、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等の外来光を利用する光学系を用いた場合にも同様に適用することができる。
【００５６】
また、本発明に係るバーコード読取装置をプログラムで実現する場合には、図１に示した読取処置部５の各部をプログラムとしてＲＯＭなどに格納し、ＣＰＵで各プログラムを実行すれば良い。
【００５７】
（付記１）バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取装置であって、
前記エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得する振幅値取得手段と、
前記振幅値取得手段により取得された各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理する３値化処理手段と、
を備えたことを特徴とするバーコード読取装置。
【００５８】
（付記２）前記３値化処理手段は、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することを特徴とする付記１に記載のバーコード読取装置。
【００５９】
（付記３）前記３値化処理手段は、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することを特徴とする付記２に記載のバーコード読取装置。
【００６０】
（付記４）前記３値化処理手段は、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することを特徴とする付記２または３に記載のバーコード読取装置。
【００６１】
（付記５）前記３値化処理手段は、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すことを特徴とする付記２、３または４に記載のバーコード読取装置。
【００６２】
（付記６）前記３値化処理手段は、前記黒バーの黒太りまたは白バーの白太りが所在する場合には、該黒太りまたは白太りの太り量に応じて前記状態１または状態−１のリファレンスを変更することを特徴とする付記２から５のいずれか一つに記載のバーコード読取装置。
【００６３】
（付記７）バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取方法であって、
前記エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得する振幅値取得工程と、
前記振幅値取得工程により取得された各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理する３値化処理工程と、
を含んだことを特徴とするバーコード読取方法。
【００６４】
（付記８）前記３値化処理工程は、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することを特徴とする付記７に記載のバーコード読取方法。
【００６５】
（付記９）前記３値化処理工程は、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することを特徴とする付記８に記載のバーコード読取方法。
【００６６】
（付記１０）前記３値化処理工程は、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することを特徴とする付記８または９に記載のバーコード読取方法。
【００６７】
（付記１１）前記３値化処理工程は、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すことを特徴とする付記８、９または１０に記載のバーコード読取方法。
【００６８】
（付記１２）前記３値化処理工程は、前記黒バーの黒太りまたは白バーの白太りが所在する場合には、該黒太りまたは白太りの太り量に応じて前記状態１または状態−１のリファレンスを変更することを特徴とする付記８から１１のいずれか一つに記載のバーコード読取方法。
【００６９】
（付記１３）バーコードを形成する黒バーおよび白バーからの反射光の信号強度を取得して、該信号強度を黒バーから白バーまたはその逆に変化するエッジデータを抽出し、抽出したエッジデータを３値化処理し、該３値化処理結果を用いてバーコードキャラクタを復号するバーコード読取プログラムであって、
前記エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得する振幅値取得手順と、
前記振幅値取得手順により取得された各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理する３値化処理手順と、
をコンピュータに実行させることを特徴とするバーコード読取プログラム。
【００７０】
（付記１４）前記３値化処理手順は、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理することを特徴とする付記１３に記載のバーコード読取プログラム。
【００７１】
（付記１５）前記３値化処理手順は、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止することを特徴とする付記１４に記載のバーコード読取プログラム。
【００７２】
（付記１６）前記３値化処理手順は、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止することを特徴とする付記１４または１５に記載のバーコード読取プログラム。
【００７３】
（付記１７）前記３値化処理手順は、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すことを特徴とする付記１４、１５または１６に記載のバーコード読取プログラム。
【００７４】
（付記１８）前記３値化処理手順は、前記黒バーの黒太りまたは白バーの白太りが所在する場合には、該黒太りまたは白太りの太り量に応じて前記状態１または状態−１のリファレンスを変更することを特徴とする付記１４から１７のいずれか一つに記載のバーコード読取プログラム。
【００７５】
【発明の効果】
以上説明したように、この発明によれば、エッジデータのモジュール周波数に基づいて、該エッジデータの各モジュール点における振幅値を取得し、取得した各モジュール点の振幅値を３値化する際に、該モジュール点とその後連続する複数のモジュール点の振幅値を用いて最尤推定により当該モジュール点の振幅値を３値化処理するよう構成したので、各モジュール点が、黒バーから白バーへ変化するエッジであるか、白バーから黒バーへ変化するエッジであるか、エッジでない部分であるかを効率的かつ正確に判定することができる。
【００７６】
また、この発明によれば、複数の連続するモジュール点にそれぞれ所定のリファレンスの値を持つ状態１、０、−１を割り当てるとともに、各モジュール点を連結するパスに連結先モジュールの振幅値とリファレンスとの最小２乗誤差をそれぞれパスメトリックを与え、所定数のパスを経た後のパスメトリックの和が最小となるパスを生き残りパスとし、該生き残りパスの連結元のモジュール点の状態を該モジュール点の値として３値化処理するよう構成したので、最尤推定を効率良くおこなうことができる。
【００７７】
また、この発明によれば、状態１から状態１へのパスおよび状態−１から状態−１へのパスを禁止するよう構成したので、微分特性に基づいて対象となるパスを減らし、処理の効率化を図ることができる。
【００７８】
また、この発明によれば、状態１から任意の数の状態０を経由した状態１へのパスおよび状態−１から任意の数の状態０を経由した状態−１へのパスを禁止するよう構成したので、微分特性に基づいて対象となるパスを減らし、処理の効率化を図ることができる。
【００７９】
また、この発明によれば、状態１または状態−１から状態０へのパスがある場合には、状態０から状態０へのパスを残すよう構成したので、パスの誤りに伴う精度の低下を防ぐことができる。
【図面の簡単な説明】
【図１】本実施の形態に係るバーコード読取装置の構成を示すブロック図である。
【図２】図１に示した各部の出力データの一例を示す図である。
【図３】図１に示した読取処理部の処理手順を示すフローチャートである。
【図４】図１に示した最尤判定処理部による最尤判定の説明図（１）である。
【図５】図１に示した最尤判定処理部による最尤判定の説明図（２）である。
【図６】図１に示した最尤判定処理部による最尤判定の説明図（３）である。
【図７】状態遷移の制約条件を説明するための説明図（１）である。
【図８】状態遷移の制約条件を説明するための説明図（２）である。
【図９】状態遷移の制約条件を説明するための説明図（３）である。
【図１０】制約条件を満たさない場合におこなうパス変更の説明図である。
【図１１】最尤判定結果の一例を説明するための説明図である。
【符号の説明】
１  バーコード
２  光走査部
２ａ  ＬＤ
２ｂ  ポリゴンミラー
３  アナログ処理部
４  ＡＤコンバータ
５  読取処理部
５ａ  切り出し部
５ｂ  狭帯域微分処理部
５ｃ  モジュール周波数抽出部
５ｄ  モジュール点抽出部
５ｅ  モジュールタイミング抽出部
５ｆ  最尤判定処理部
５ｇ  バーコード復調部
【図１】
2004252895.tif 000003
【図２】
2004252895.tif 000004
【図３】
2004252895.tif 000005
【図４】
2004252895.tif 000006
【図５】
2004252895.tif 000007
【図６】
2004252895.tif 000008
【図７】
2004252895.tif 000009
【図８】
2004252895.tif 000010
【図９】
2004252895.tif 000011
【図１０】
2004252895.tif 000012
【図１１】
2004252895.tif 000013