(57)【要約】【課題】外光が入った場合であってもバーコード記号を正確に読み取ることができるバーコード読取装置およびバーコード読取方法を提供すること。【解決手段】本発明にかかるバーコード読取装置１は、バーコード記号の反射光強度に対応した電気信号から微分信号を生成する微分処理部１３と、微分処理部１３によって生成された微分信号の各極値を検出し、少なくとも検出した各極値の電気信号値を含む極値情報を生成する極値検出部１４と、極値情報における各極値ごとに、極値の電気信号値と該極値に隣り合う少なくとも一方の極値の電気信号値との電圧差を演算する電圧差演算部１６と、電圧差演算部１６で演算された電圧差ごとに、電圧差と所定の閾値とを比較して電圧差に対応する極値の有効性を判断する極値検証部１８とを有し、極値検証部１８によって有効と判断された極値の極値情報を用いてバーコード記号Ｂに記録された情報をデコードする。【選択図】        図１
2008282262.tif 000002
【特許請求の範囲】
【請求項１】
バーコード記号からの反射光強度に対応した電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号における各極値を検出し、少なくとも検出した各極値の電気信号値を含む極値情報を生成する極値検出手段と、
前記極値情報における各極値ごとに、前記極値の電気信号値と該極値に隣り合う少なくとも一方の極値の電気信号値との差分値を演算する演算手段と、
前記演算手段によって演算された差分値ごとに、前記差分値と所定の閾値とを比較して前記差分値に対応する極値の有効性を判断する判断手段と、
前記判断手段によって有効であると判断された極値の前記極値情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項２】
前記判断手段は、前記差分値が前記所定の閾値以上である場合に該差分値に対応する極値は前記バーコード記号に応じた有効な極値であると判断することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記判断手段は、前記差分値が前記所定の閾値未満である場合、該差分値に対応する極値は前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を前記極値情報から除外することを特徴とする請求項１または２に記載のバーコード読取装置。
【請求項４】
前記極値情報において極大値が連続した場合、前記極大値の電気信号値と該極大値に近接する極小値の電気信号値との差分値を各極大値ごとに演算した後に各差分値のうち最大である差分値に対応する極大値を前記バーコード記号に応じた有効な極大値であると認識し、前記極値情報において極小値が連続した場合、前記極小値の電気信号値と該極小値に近接する極大値の電気信号値との差分値を各極小値ごとに演算した後に各差分値のうち最大である差分値に対応する極小値を前記バーコード記号に応じた有効な極小値であると認識する認識手段をさらに備えたことを特徴とする請求項１に記載のバーコード読取装置。
【請求項５】
前記認識手段は、演算した各差分値のうち最大である差分値以外の差分値に対応する極値を前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を除外した前記極値情報を前記演算手段に出力し、
前記演算手段は、前記認識手段によって出力された極値情報をもとに各極値ごとに差分値を演算することを特徴とする請求項４に記載のバーコード読取装置。
【請求項６】
前記所定の閾値は、前記微分信号の最大振幅をもとに設定されることを特徴とする請求項１に記載のバーコード読取装置。
【請求項７】
前記所定の閾値は、前記演算手段によって演算された各差分値における最大値をもとに設定されることを特徴とする請求項１に記載のバーコード読取装置。
【請求項８】
前記所定の閾値は、前記極値ごとに、前記極値に近接した極値に対応する前記差分値をもとに設定されることを特徴とする請求項１に記載のバーコード読取装置。
【請求項９】
光を発する光源と、
前記光源が発した光を前記バーコード記号上に走査させる走査手段と、
前記バーコード記号からの反射光を集光する集光手段と、
前記集光手段によって集光された光を順次受光して受光強度に対応した電気信号に順次変換し前記微分処理手段に出力する検出手段と、
をさらに備えたことを特徴とする請求項１〜８のいずれか一つに記載のバーコード読取装置。
【請求項１０】
前記バーコード記号全体に光を照射する光源と、
該バーコード記号全体からの反射光を集光する集光手段と、
前記集光手段によって集光された光を受光して受光強度に対応した電気信号に変換し前記微分処理手段に出力する検出手段と、
をさらに備えたことを特徴とする請求項１〜８のいずれか一つに記載のバーコード読取装置。
【請求項１１】
バーコード記号に光を照射し、該バーコード記号の反射光強度からバーコード記号を読み取るバーコード読み取り方法において、
前記バーコード記号からの反射光強度に対応した電気信号から微分信号を生成する微分ステップと、
前記微分信号における各極値を検出し、少なくとも検出した各極値の電気信号値を含む極値情報を生成する極値検出ステップと、
前記極値情報における各極値ごとに、前記極値の電気信号値と該極値に隣り合う少なくとも一方の極値の電気信号値との差分値を演算する演算ステップと、
前記演算ステップにおいて演算された差分値ごとに、前記差分値と所定の閾値とを比較して前記差分値に対応する極値の有効性を判断する判断ステップと、
前記判断ステップにおいて有効であると判断された極値の前記極値情報を用いて前記バーコード記号に記録された情報をデコードするデコードステップと、
を含むことを特徴とするバーコード読取方法。
【請求項１２】
前記判断ステップは、前記差分値が前記所定の閾値以上である場合に該差分値に対応する極値は前記バーコード記号に応じた有効な極値であると判断することを特徴とする請求項１１に記載のバーコード読取方法。
【請求項１３】
前記判断ステップは、前記差分値が前記所定の閾値未満である場合、該差分値に対応する極値は前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を前記極値情報から除外することを特徴とする請求項１１または１２に記載のバーコード読取方法。
【請求項１４】
前記極値情報において極大値が連続した場合、前記極大値の電気信号値と該極大値に近接する極小値の電気信号値との差分値を各極大値ごとに演算した後に各差分値のうち最大である差分値に対応する極大値を前記バーコード記号に応じた有効な極大値であると認識し、前記極値情報において極小値が連続した場合、前記極小値の電気信号値と該極小値に近接する極大値の電気信号値との差分値を各極小値ごとに演算した後に各差分値のうち最大である差分値に対応する極小値を前記バーコード記号に応じた有効な極小値であると認識する認識ステップをさらに含むことを特徴とする請求項１１に記載のバーコード読取方法。
【請求項１５】
前記認識ステップは、演算した各差分値のうち最大である差分値以外の差分値に対応する極値を前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を除外した前記極値情報を出力し、
前記演算ステップは、前記認識ステップにおいて出力された極値情報をもとに各極値ごとに差分値を演算することを特徴とする請求項１４に記載のバーコード読取方法。
【請求項１６】
前記所定の閾値は、前記微分信号の最大振幅をもとに設定されることを特徴とする請求項１１に記載のバーコード読取方法。
【請求項１７】
前記所定の閾値は、前記演算ステップにおいて演算された各差分値における最大値をもとに設定されることを特徴とする請求項１１に記載のバーコード読取方法。
【請求項１８】
前記所定の閾値は、前記極値ごとに、前記極値に近接した極値に対応する前記差分値をもとに設定されることを特徴とする請求項１１に記載のバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バーコードに記録された情報を読み取るバーコード読取装置およびバーコード読取方法に関する。
【背景技術】
【０００２】
レーザ光などでバーコード記号を走査しバーコード記号に記録された情報を読み取るバーコード読取装置が広く使用されている。このようなバーコード読取装置においては、バーコード記号からの反射光の光学的特性の変化を検出してバーコード記号を構成する各エレメントの幅を表すバーコード幅データを生成し、このバーコード幅データをもとにデコード処理を行なうことによって、バーコード記号に記録された情報を読み取っている。
【０００３】
このバーコード読取装置において一般的に行なわれているバーコード読取処理について説明する。バーコード読取装置は、図２２（１）に例示するバーコード記号からの反射光をセンサで受光し、受光量に対応する電流信号をＩ−Ｖ変換し、図２２（２）に例示するＩ−Ｖ変換信号Ｃを生成する。そして、バーコード読取装置は、Ｉ−Ｖ変換信号Ｃを微分処理し、図２２（３）に例示する微分信号Ｅを取得する。次いで、バーコード読取装置は、微分信号Ｅにおける極値が含まれない信号不変領域の所定位置の電圧値を基準電圧値Ｖｃ０として固定し、この基準電圧値Ｖｃ０をもとに微分信号Ｅを処理してピークの電圧値であるピークホールド値およびボトムホールド値を求める。つぎに、バーコード読取装置は、基準電圧値Ｖｃ０を基準として求めたピークホールド値およびボトムホールド値を所定比率で分圧して閾値となる閾値信号を設定する。たとえば、図２２（３）に例示するように、閾値信号として第１閾値信号Ｌ１および第２閾値信号Ｌ２が設定される。そして、バーコード読取装置は、微分信号Ｅの信号の電圧値と閾値信号とを順に比較し、閾値信号以上のレベルを有する信号をピークと判断する。そして、バーコード読取装置は、各ピークのピーク幅をもとに、図２２（４），（５）に例示する比較信号Ａ０，Ｂ０を生成し、図２２（６）に示すように、比較信号Ａ０，Ｂ０をもとにバーコード幅データＷを再生する（たとえば、特許文献１および特許文献２参照）。
【０００４】
【特許文献１】特開昭６０−１５７６７８号公報
【特許文献２】特開２００１−２８０４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、外光が入って信号にうねりが生じた場合、微分信号にもうねりが残ってしまう。そして、微分信号にうねりが残ってしまった場合には、微分信号自体が傾いてしまい、固定して設定された基準電圧とうねりが残った領域の信号不変領域の電圧値との間にずれが生じてしまう。従来のバーコード読取装置は、この基準電圧値をもとに閾値信号を設定するため、基準電圧値とうねりが残った領域の信号不変領域の電圧値とがずれる領域において、微分信号における極値が閾値信号のレベルを下回ってしまい、極値を正確に検出できない場合が発生する。この結果、従来のバーコード読取装置においては、外光が入った場合には正確な比較信号を生成することができず、バーコード記号を正確に読み取ることができないという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、外光が入った場合であってもバーコード記号を正確に読み取ることができるバーコード読取装置およびバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、この発明にかかるバーコード読取装置は、バーコード記号からの反射光強度に対応した電気信号から微分信号を生成する微分処理手段と、前記微分処理手段によって生成された微分信号における各極値を検出し、少なくとも検出した各極値の電気信号値を含む極値情報を生成する極値検出手段と、前記極値情報における各極値ごとに、前記極値の電気信号値と該極値に隣り合う少なくとも一方の極値の電気信号値との差分値を演算する演算手段と、前記演算手段によって演算された差分値ごとに、前記差分値と所定の閾値とを比較して前記差分値に対応する極値の有効性を判断する判断手段と、前記判断手段によって有効であると判断された極値の前記極値情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理手段と、を備えたことを特徴とする。
【０００８】
また、この発明にかかるバーコード読取装置は、前記判断手段は、前記差分値が前記所定の閾値以上である場合に該差分値に対応する極値は前記バーコード記号に応じた有効な極値であると判断することを特徴とする。
【０００９】
また、この発明にかかるバーコード読取装置は、前記判断手段は、前記差分値が前記所定の閾値未満である場合、該差分値に対応する極値は前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を前記極値情報から除外することを特徴とする。
【００１０】
また、この発明にかかるバーコード読取装置は、前記極値情報において極大値が連続した場合、前記極大値の電気信号値と該極大値に近接する極小値の電気信号値との差分値を各極大値ごとに演算した後に各差分値のうち最大である差分値に対応する極大値を前記バーコード記号に応じた有効な極大値であると認識し、前記極値情報において極小値が連続した場合、前記極小値の電気信号値と該極小値に近接する極大値の電気信号値との差分値を各極小値ごとに演算した後に各差分値のうち最大である差分値に対応する極小値を前記バーコード記号に応じた有効な極小値であると認識する認識手段をさらに備えたことを特徴とする。
【００１１】
また、この発明にかかるバーコード読取装置は、前記認識手段は、演算した各差分値のうち最大である差分値以外の差分値に対応する極値を前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を除外した前記極値情報を前記演算手段に出力し、前記演算手段は、前記認識手段によって出力された極値情報をもとに各極値ごとに差分値を演算することを特徴とする。
【００１２】
また、この発明にかかるバーコード読取装置は、前記所定の閾値は、前記微分信号の最大振幅をもとに設定されることを特徴とする。
【００１３】
また、この発明にかかるバーコード読取装置は、前記所定の閾値は、前記演算手段によって演算された各差分値における最大値をもとに設定されることを特徴とする。
【００１４】
また、この発明にかかるバーコード読取装置は、前記所定の閾値は、前記極値ごとに、前記極値に近接した極値に対応する前記差分値をもとに設定されることを特徴とする。
【００１５】
また、この発明にかかるバーコード読取装置は、光を発する光源と、前記光源が発した光を前記バーコード記号上に走査させる走査手段と、前記バーコード記号からの反射光を集光する集光手段と、前記集光手段によって集光された光を順次受光して受光強度に対応した電気信号に順次変換し前記微分処理手段に出力する検出手段と、をさらに備えたことを特徴とする。
【００１６】
また、この発明にかかるバーコード読取装置は、前記バーコード記号全体に光を照射する光源と、該バーコード記号全体からの反射光を集光する集光手段と、前記集光手段によって集光された光を受光して受光強度に対応した電気信号に変換し前記微分処理手段に出力する検出手段と、をさらに備えたことを特徴とする。
【００１７】
また、この発明にかかるバーコード読取方法は、バーコード記号に光を照射し、該バーコード記号の反射光強度からバーコード記号を読み取るバーコード読み取り方法において、前記バーコード記号からの反射光強度に対応した電気信号から微分信号を生成する微分ステップと、前記微分信号における各極値を検出し、少なくとも検出した各極値の電気信号値を含む極値情報を生成する極値検出ステップと、前記極値情報における各極値ごとに、前記極値の電気信号値と該極値に隣り合う少なくとも一方の極値の電気信号値との差分値を演算する演算ステップと、前記演算ステップにおいて演算された差分値ごとに、前記差分値と所定の閾値とを比較して前記差分値に対応する極値の有効性を判断する判断ステップと、前記判断ステップにおいて有効であると判断された極値の前記極値情報を用いて前記バーコード記号に記録された情報をデコードするデコードステップと、を含むことを特徴とする。
【００１８】
また、この発明にかかるバーコード読取方法は、前記判断ステップは、前記差分値が前記所定の閾値以上である場合に該差分値に対応する極値は前記バーコード記号に応じた有効な極値であると判断することを特徴とする。
【００１９】
また、この発明にかかるバーコード読取方法は、前記判断ステップは、前記差分値が前記所定の閾値未満である場合、該差分値に対応する極値は前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を前記極値情報から除外することを特徴とする。
【００２０】
また、この発明にかかるバーコード読取方法は、前記極値情報において極大値が連続した場合、前記極大値の電気信号値と該極大値に近接する極小値の電気信号値との差分値を各極大値ごとに演算した後に各差分値のうち最大である差分値に対応する極大値を前記バーコード記号に応じた有効な極大値であると認識し、前記極値情報において極小値が連続した場合、前記極小値の電気信号値と該極小値に近接する極大値の電気信号値との差分値を各極小値ごとに演算した後に各差分値のうち最大である差分値に対応する極小値を前記バーコード記号に応じた有効な極小値であると認識する認識ステップをさらに含むことを特徴とする。
【００２１】
また、この発明にかかるバーコード読取方法は、前記認識ステップは、演算した各差分値のうち最大である差分値以外の差分値に対応する極値を前記バーコード記号に応じない無効な極値であると判断するとともに、無効であると判断した極値を除外した前記極値情報を出力し、前記演算ステップは、前記認識ステップにおいて出力された極値情報をもとに各極値ごとに差分値を演算することを特徴とする。
【００２２】
また、この発明にかかるバーコード読取方法は、前記所定の閾値は、前記微分信号の最大振幅をもとに設定されることを特徴とする。
【００２３】
また、この発明にかかるバーコード読取方法は、前記所定の閾値は、前記演算ステップにおいて演算された各差分値における最大値をもとに設定されることを特徴とする。
【００２４】
また、この発明にかかるバーコード読取方法は、前記所定の閾値は、前記極値ごとに、前記極値に近接した極値に対応する前記差分値をもとに設定されることを特徴とする。
【発明の効果】
【００２５】
本発明は、固定して設定された基準電圧値ではなく、検証対象である極値に隣り合う極値との電圧差を用いて、この検証対象である極値の有効性を判断するため、外光によって発生した微分信号のうねりに起因して微分信号が傾いた場合であってもバーコード記号を正確に読み取ることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して、この発明の実施の形態について説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付している。
【００２７】
まず、実施の形態において説明する。図１は、実施の形態にかかるバーコード読取装置の構成を示す模式図である。図１に示すように、実施の形態にかかるバーコード読取装置１は、記録された情報に応じた幅で各エレメントが表示されたバーコード記号Ｂに記録された情報を読み取る。
【００２８】
バーコード読取装置１は、光源２、反射ミラー３、走査ミラー４、集光ミラー５、光学フィルタ６、センサ７、シールド８、光源制御部９、駆動制御部１０、Ｉ−Ｖ変換部１２、微分処理部１３、極値検出部１４、ノイズ認識部１５、電圧差演算部１６、閾値設定部１７、極値検証部１８、バーコード幅データ生成部１９、出力部２０を備える。
【００２９】
光源２は、たとえばレーザ光などの光を発する。反射ミラー３は、固定配置され、光源２から発光された光を走査ミラー４方向に偏光する。走査ミラー４は、モータなどによって回動可能であり、反射ミラー３によって偏光された光を図１に示す左右方向にしたがってバーコード記号Ｂ上に走査させる。また、走査ミラー４は、バーコード記号Ｂにおける各領域から順次反射される反射光を集光ミラー５に偏光する。集光ミラー５は、走査ミラー４によって反射されたバーコード記号Ｂからの反射光をセンサ７に対して集光する。光学フィルタ６は、センサ７の前面に設けられ、バーコード読み取りに要する波長のみを透過させる。
【００３０】
センサ７は、集光ミラー５によって集光され光学フィルタ６を透過した光を順次受光して受光強度に対応した電流信号を生成し、この電流信号をＩ−Ｖ変換部１２に出力する。シールド８は、電磁的なノイズの影響をセンサ７から除外する機能を有する。光源制御部９は、バーコード幅データ生成部１９におけるバーコード幅データ生成処理と関連づけて、光源２における発光処理を制御する。駆動制御部１０は、バーコード幅データ生成部１９におけるバーコード幅データ生成処理と関連づけて、走査ミラー４におけるモータを駆動し走査ミラー４の回動動作を制御することによって、走査ミラー４における走査処理を制御する。
【００３１】
Ｉ−Ｖ変換部１２は、センサ７から出力された電流信号を電圧信号に変換して微分処理部１３に出力する。この電圧信号は、バーコード記号Ｂからの反射光強度に対応したものとなる。なお、Ｉ−Ｖ変換部１２は、変換した電圧信号を増幅して出力してもよい。
【００３２】
微分処理部１３は、Ｉ−Ｖ変換部１２から出力された電圧信号を１次微分することによって、電圧信号の電圧値の増減のエッジが極値として示される微分信号を生成する。なお、微分処理部１３は、生成した微分信号を増幅、フィルタリングしたうえで出力してもよい。
【００３３】
極値検出部１４は、微分処理部１３によって生成された微分信号から、電圧値の増減の各エッジを示す各極値を検出する。極値検出部１４は、検出した各極値を、センサ７における受光時間に対応する時間情報と電気信号値（電圧値）とを対応させた状態で示した極値データをノイズ認識部１５に出力する。なお、極値検出部１４は、微分信号をＡ／Ｄ変換したデジタルサンプリングデータを生成し、このデジタルサンプリングデータをもとに極値を検出する。また、極値検出部１４は、微分信号における最初の極値に対しては、一定の期間において極値が検出されなかった後に初めて検出された極値を微分信号の最初の極値であると識別する。また、極値検出部１４は、微分信号における最後の極値に対しては、極値が検出された後に一定の期間において次の極値が検出されなかった場合に、検出した最後の極値を微分信号の最後の極値であると識別する。
【００３４】
ノイズ認識部１５は、極値検出部１４が検出した各極値のうち、ノイズなどに対応しバーコード記号Ｂに対応しない極値を認識する。ノイズ認識部１５は、極値データにおいて極大値が連続した場合、極大値の電圧値と、この極大値に近接する極小値の電圧値との差分値を各極大値ごとに演算した後に各差分値のうち最大である差分値に対応する極大値をバーコード記号Ｂに応じた有効な極大値であると認識する。また、ノイズ認識部１５は、極値データにおいて極小値が連続した場合、極小値の電圧値と、この極小値に近接する極大値の電圧値との差分値を各極小値ごとに演算した後に各差分値のうち最大である差分値に対応する極小値をバーコード記号Ｂに応じた有効な極小値であると認識する。ノイズ認識部１５は、演算した各差分値のうち最大である差分値以外の差分値に対応する極値をバーコード記号Ｂに対応しない無効な極値であると判断するとともに、無効であると判断した極値を除外した極値データを電圧差演算部１６に出力する。なお、ノイズ認識部１５は、少なくとも入力された極値データを一時的に保持できるメモリ１５ａを有する。
【００３５】
電圧差演算部１６は、入力された極値データをもとに、各極値ごとに、極値の電圧値と、この極値に隣り合う少なくとも一方の極値の電圧値との差分値を演算する。電圧差演算部１６は、演算した各電圧差データを時間情報と対応づけて極値検証部１８に出力する。また、電圧差演算部１６は、演算した各電圧差データを閾値設定部１７に出力する。なお、電圧差演算部１６は、少なくとも入力された極値データおよび演算した電圧差データを一時的に保持できるメモリ１６ａを有する。
【００３６】
閾値設定部１７は、極値検証部１８における処理に使用する閾値を設定する。閾値設定部１７は、少なくとも電圧差演算部１６から入力された電圧差データを一時的に保持できるとともに、閾値設定処理に関する情報を記憶するメモリ１７ａを有する。
【００３７】
極値検証部１８は、電圧差演算部１６によって演算された各電圧差ごとに、電圧差と所定の閾値とを比較して、この電圧差に対応する極値の有効性を判断する。極値検証部１８は、電圧差の絶対値が所定の閾値以上である場合に、この電圧差に対応する極値はバーコード記号Ｂに応じた有効な極値であると判断する。また、極値検証部１８は、電圧差の絶対値が所定の閾値未満である場合、この電圧差に対応する極値はバーコード記号Ｂに応じない無効な極値であると判断するとともに、無効であると判断した極値を極値データから除外する。なお、極値検証部１８は、少なくとも入力された電圧差データ、極値データ及び閾値設定部１７で設定された閾値を一時的に保持できるメモリ１８ａを有する。
【００３８】
バーコード幅データ生成部１９は、極値検証部１８によって有効であると判断された極値を用いてバーコード記号Ｂに記録された情報をデコードする。バーコード幅データ生成部１９は、極値検証部１８から出力された各極値をもとに、バーコード記号Ｂにおける各エレメント幅に対応した時間幅をそれぞれ示すバーコード幅データを生成する。そして、バーコード幅データ生成部１９は、このバーコード幅データにおける各時間幅をカウントして、各エレメント幅を求め、バーコード記号Ｂに記録された情報をデコードする。そして、出力部２０は、バーコード幅データ生成部１９によってデコードされたバーコード記号Ｂの情報を出力する。
【００３９】
つぎに、図１に示すバーコード読取装置１におけるバーコード読取方法について説明する。図２は、図１に示すバーコード読取装置１におけるバーコード読取処理の処理手順を示すフローチャートである。
【００４０】
図２に示すように、バーコード読取装置１においては、まず、光源２および走査ミラー４が駆動し、バーコード記号Ｂに対して所定方向に走査光を照射する走査光照射処理が行なわれる（ステップＳ２）。そして、センサ７は、反射光を順次受光して受光強度に対応した電流信号を生成する反射光受光処理を行なう（ステップＳ４）。Ｉ−Ｖ変換部１２は、センサ７から出力された電流信号を電圧信号に変換するＩ−Ｖ変換処理を行なう（ステップＳ６）。微分処理部１３は、Ｉ−Ｖ変換部１２から出力された電圧信号を微分し、微分信号を生成する微分処理を行なう（ステップＳ８）。
【００４１】
そして、極値検出部１４は、微分処理部１３によって生成された微分信号から各極値を検出し、各極値における電圧値と時間情報を対応付けた極値データを生成し、ノイズ認識部１５に出力する極値検出処理を行なう（ステップＳ１０）。
【００４２】
ノイズ認識部１５は、入力された極値データをもとに、ノイズなどに対応する極値を認識するノイズ認識処理を行なう（ステップＳ１２）。ノイズ認識部１５は、極大値が連続した場合または極小値が連続した場合、連続する極大値または連続する極小値のうち有効な極大値または極小値を判断し、無効であると判断した極大値または極小値を除外した極値データを電圧差演算部１６に出力する。電圧差演算部１６は、入力された極値データをもとに、各極値ごとに、極値の電圧値と、この極値に隣り合う少なくとも一方の極値の電圧値との電圧差を演算し、電圧差データを生成する電圧差演算処理を行なう（ステップＳ１４）。そして、閾値設定部１７は、電圧差演算部１６で生成した電圧差データを基に極値検証部１８によって使用される閾値を設定する閾値設定処理を行なう（ステップＳ１６）。
【００４３】
極値検証部１８は、電圧差演算部１６によって演算された各電圧差ごとに、電圧差と所定の閾値とをそれぞれ比較して各電圧差にそれぞれ対応する各極値が有効であるか、または、無効であるかを判断する極値検証処理を行なう（ステップＳ１８）。そして、極値検証部１８は、極値検証処理（ステップＳ１８）において無効と判断した極値があるか否かを判断する（ステップＳ２０）。
【００４４】
極値検証部１８は、極値検証処理において無効と判断した極値があると判断した場合（ステップＳ２０：Ｙｅｓ）、無効と判断した極値を極値データから除外する（ステップＳ２２）。そして、極値検証部１８は、無効と判断した極値を除外した極値データをノイズ認識部１５に再度入力する（ステップＳ２４）。そして、ノイズ認識部１５は、再度入力された極値データに対して、ノイズ認識処理を行なう（ステップＳ１２）。
【００４５】
一方、極値検証部１８は、極値検証処理において無効と判断した極値がないと判断した場合（ステップＳ２０：Ｎｏ）、すなわち、極値データに示された極値は全て有効であると判断した場合、極値データをバーコード幅データ生成部１９に出力する（ステップＳ２６）。バーコード幅データ生成部１９は、極値検証部１８から出力された極値データを用いてバーコード記号Ｂに対応するバーコード幅データを生成するバーコード幅データ生成処理を行なう（ステップＳ２８）。そして、バーコード幅データ生成部１９は、生成したバーコード幅データを用いてバーコード記号Ｂに記録された情報をデコードするデコード処理を行ない（ステップＳ３０）、出力部２０は、バーコード幅データ生成部１９がデコードしたバーコード記号Ｂの情報を出力する（ステップＳ３２）。
【００４６】
つぎに、図３を参照して、図２に示すノイズ認識処理について説明する。図３に示すように、まず、ノイズ認識部１５は、入力された極値データを取得する（ステップＳ４２）。そして、ノイズ認識部１５は、認識対象の極値の識別番号を示すｎの値を初期化されているか否かを判断し、初期化されていない場合にはｎの値を初期化する。この場合、ノイズ認識部１５は、たとえば先頭の極値がＰ０である場合には、識別番号ｎの初期化処理として、ｎ＝０とする（ステップＳ４４）。
【００４７】
次いで、ノイズ認識部１５は、認識対象である極値Ｐｎと、この極値Ｐｎの次に示された極値Ｐｎ＋１とを比較し（ステップＳ４６）、極値Ｐｎと極値Ｐｎ＋１とが極大値同士または極小値同士であるか否かを判断する（ステップＳ４８）。バーコード記号からの反射光のみを適切に受光した場合、微分信号には極大値と極小値が交互に現れることとなる。このため、極大値が連続する場合または極小値が連続する場合、微分信号は、ノイズなどに起因する極値を含んでいるものと考えられる。ノイズ認識部１５は、極大値または極小値が連続するか否かを判別して、ノイズなどに起因する極値の有無を検証している。
【００４８】
ノイズ認識部１５は、極値Ｐｎと極値Ｐｎ＋１とが極大値同士または極小値同士でないと判断した場合（ステップＳ４８：Ｎｏ）、極値Ｐｎと極値Ｐｎ＋１とはともに有効であると判断する（ステップＳ５０）。
【００４９】
これに対し、ノイズ認識部１５は、極値Ｐｎと極値Ｐｎ＋１とが極大値同士または極小値同士であると判断した場合（ステップＳ４８：Ｙｅｓ）、極値Ｐｎと極値Ｐｎ＋１のいずれがノイズなどに起因する極値であるか否かを判断する。ノイズやごみなどに起因する光信号の変動は、バーコード記号のエレメント境界における光信号の変動と比較し、小さいものとなる。たとえば、図４のデジタルサンプリングデータＤ４に示すように、バーコード記号のエレメント境界に対応する本来の極大値Ｐ２３と比較し、ノイズなどに起因して現れた極大値Ｐ２２は、極値Ｐ２２の前の極小値である極小値Ｐ２１からの信号量の変動が小さいものとなる。
【００５０】
したがって、ノイズ認識部１５は、極値Ｐｎおよび極値Ｐｎ＋１における信号値の変動量を取得するために、極値Ｐｎと、認識対象である極値Ｐｎの前に示された極値Ｐｎ−１との電圧差Ｖｐｎを演算し（ステップＳ５２）、さらに極値Ｐｎ＋１と極値Ｐｎ−１との電圧差Ｖｐｎ＋１を演算する（ステップＳ５４）。次いで、ノイズ認識部１５は、電圧差の絶対値が大きいのは電圧差Ｖｐｎまたは電圧差Ｖｐｎ＋１のいずれであるか否かを判断する（ステップＳ５６）。
【００５１】
ノイズ認識部１５は、電圧差の絶対値が大きいのは電圧差Ｖｐｎであると判断した場合（ステップＳ５６：電圧差Ｖｐｎ）、極値Ｐｎを有効と判断するとともに（ステップＳ５８）、極値Ｐｎ＋１を無効と判断する（ステップＳ６０）。そして、ノイズ認識部１５は、無効と判断した極値Ｐｎ＋１を極値データから除外する無効処理を行なう（ステップＳ６２）。
【００５２】
これに対し、ノイズ認識部１５は、電圧差の絶対値が大きいのは電圧差Ｖｐｎ＋１であると判断した場合（ステップＳ５６：電圧差Ｖｐｎ＋１；１）、極値Ｐｎ＋１を有効と判断するとともに（ステップＳ６８）、極値Ｐｎを無効と判断する（ステップＳ７０）。そして、ノイズ認識部１５は、無効と判断した極値Ｐｎを極値データから除外する無効処理を行なう（ステップＳ７２）。
【００５３】
たとえば、図４に示す場合には、連続する極大値Ｐ２２，Ｐ２３において、極大値Ｐ２２と極小値Ｐ２１との電圧差であるｖｄ２２よりも、極大値Ｐ２３と極小値Ｐ２１との電圧差ｖｄ２３の方が大きい。したがって、ノイズ認識部１５は、連続する極大値Ｐ２２，Ｐ２３のうち、矢印Ｙ２３に示すように、電圧差が大きい極大値Ｐ２３を有効であると判断し、バーコード記号のエレメント端部に対応する極値として認識する。これに対し、ノイズ認識部１５は、連続する極大値Ｐ２２，Ｐ２３のうち、矢印Ｙ２２に示すように、電圧差が小さい極大値Ｐ２２を無効であると判断し、バーコード記号に対応しないノイズなどに起因したものであると認識する。
【００５４】
ノイズ認識部１５は、ステップＳ５０における有効判断処理、ステップＳ６２またはステップＳ７２における無効処理を行なった後、次に認識対象の極値があるか否かを判断する（ステップＳ７４）。ノイズ認識部１５は、次に認識対象の極値があると判断した場合（ステップＳ７４：Ｙｅｓ）、識別番号に対し、ｎ＝ｎ＋１の処理を行ない（ステップＳ７６）、ステップＳ４６に進み、次に認識対象である極値に対して認識処理を行なう。ノイズ認識部１５は、次に認識対象の極値がないと判断した場合（ステップＳ７４：Ｎｏ）、識別番号ｎをｎ＝０とし（ステップＳ７８）、認識済み極値データを出力する（ステップＳ８０）。この認識済み極値データは、ノイズ認識部１５が無効と判断した極値が除外されたものとなる。このように、ノイズ認識部１５は、極大値同士または極小値同士が連続した場合において、ノイズなどに起因した極値を取り除いている。
【００５５】
つぎに、図５を参照して、図２に示す閾値設定処理について説明する。図５に示すように、閾値設定部１７は、閾値設定対象となる電圧差演算部１６が演算した各電圧差を含む電圧差データを取得する（ステップＳ８２）。次いで、閾値設定部１７は、この電圧差データにおける最大電圧差の値を取得する（ステップＳ８４）。そして、閾値設定部１７は、この最大電圧差の値をもとに閾値を設定する（ステップＳ８６）。たとえば、閾値設定部１７は、ノイズと極値を切り分け可能である値として、最大電圧差の値の６０％〜７０％の値を閾値として設定する。そして、閾値設定部１７は、設定した閾値を極値検証部１８に出力する（ステップＳ８８）。
【００５６】
そして、図６を参照して、図２に示す極値検証処理について説明する。図６に示すように、極値検証部１８は、電圧差演算部１６によって生成された電圧差データのうち、検証対象の極値に対応する電圧差ｖｄを取得する（ステップＳ９２）。次いで、極値検証部１８は、この極値に対応する閾値Ｔを取得する（ステップＳ９４）。この場合、極値検証部１８は、閾値設定部１７によって設定された閾値を取得する。そして、極値検証部１８は、検証対象の極致に対応する電圧差ｖｄと、閾値Ｔとを比較し、ｖｄ≧Ｔであるか否かを判断する（ステップＳ９６）。
【００５７】
極値検証部１８は、ｖｄ≧Ｔであると判断した場合（ステップＳ９６：Ｙｅｓ）、この電圧差ｖｄに対応する検証対象の極値はバーコード記号Ｂに応じた有効なものであると判断する（ステップＳ９８）。一方、極値検証部１８は、ｖｄ≧Ｔでないと判断した場合（ステップＳ９６：Ｎｏ）、すなわち、ｖｄ＜Ｔであると判断した場合、電圧差ｖｄに対応する検証対象の極値はノイズなどに起因した無効なものであると判断する（ステップＳ１００）。
【００５８】
そして、極値検証部１８は、検証対象の極値の有効性判断を終了したため、次に検証対象の極値があるか否かを判断し（ステップＳ１０２）、次に検証対象の極値があると判断した場合（ステップＳ１０２：Ｙｅｓ）、ステップＳ９２に戻り、次に検証対象である極値に対する検証処理を行なう。また、極値検証部１８は、次に検証対象の極値がないと判断した場合（ステップＳ１０２：Ｎｏ）、極値データにおける全極値に対する検証結果を終了したと判断し、極値検証処理を終了する。
【００５９】
つぎに、図７を参照して、図６に示す極値検証処理について説明する。図７（１）は、バーコード記号Ｂのエレメント配置の一例を示し、図７（２）は、バーコード記号Ｂからの反射光に対応するＩ−Ｖ変換信号Ｃ１を示し、図７（３）は、Ｉ−Ｖ変換信号Ｃ１を１次微分した微分信号Ｅ１を示し、図７（４）は、微分信号Ｅ１をＡ／Ｄ変換したデジタルサンプリングデータＤ１を示す。
【００６０】
極値検証部１８は、図７（４）における極値Ｐ１の有効性を検証する場合には、この極値Ｐ１の電圧値と極値Ｐ０の電圧値との差である電圧差ｖｄ１と、閾値Ｔとを比較し、電圧差ｖｄ１が閾値Ｔ以上であるか否かを判断する。言い換えると、電圧差ｖｄ１が閾値Ｔ内に含まれるか否かを判断する。
【００６１】
ここで、この閾値Ｔは、電圧差演算部１６で生成された電圧差データにおける最大電圧差の値の６０％の値である。各極値から微分信号の最大振幅の５０％程度離れた領域には、微分信号の信号不変領域における基準電圧Ｖｃが含まれるものの、範囲が狭いためノイズに起因する低い電圧値が含まれないおそれがある。また、走査ミラー４の走査角度によって反射光の光量が少ない領域においてはバーコード記号Ｂに対応する極値が、各極値から微分信号の最大振幅の８０％程度離れた領域内に含まれてしまうおそれがある。このため、適正な極値とノイズとを切り分けるため、電圧差データにおける最大電圧差の６０〜７０％程度の値に閾値を設定することが望ましい。
【００６２】
したがって、検証対象である極値の電圧値とこの検証対象である極値に隣り合う極値の電圧値との電圧差が閾値Ｔを上回っている場合、すなわち電圧差が閾値Ｔ内ではない場合、検証対象である極値は、バーコード記号Ｂに対応した有効なものであると判断できる。そして、検証対象である極値に対応する電圧差が閾値Ｔ以下である場合、すなわち電圧差が閾値Ｔに含まれる場合、検証対象である極値は、バーコード記号Ｂに応じないノイズなどに起因した無効なものであると判断できる。
【００６３】
このため、極値検証部１８は、図７（４）に示すように、極値Ｐ１においては、電圧差ｖｄ１が閾値Ｔを超えているため、矢印Ｙ１に示すように、バーコード記号Ｂに応じた有効な極値であると判断する。そして、極値検証部１８は、極値Ｐ２においても、この極値Ｐ２の電圧値と極値Ｐ１の電圧値との差である電圧差ｖｄ２が、閾値Ｔを超えているため、矢印Ｙ２に示すように、有効な極値であると判断する。そして、極値検証部１８は、極値Ｐ３においても同様に、電圧差ｖｄ３≧閾値Ｔであるため、矢印Ｙ３に示すように、有効な極値であると判断し、極値Ｐ４においても同様に、電圧差ｖｄ４≧閾値Ｔであるため、矢印Ｙ４に示すように有効な極値であると判断する。
【００６４】
このように、極値検証部１８は、検証対象である極値と、検証対象である極値に隣り合う極値との電圧差が所定の閾値Ｔを超えているか否かを判断することによって、検証対象である極値がバーコード記号Ｂに対応した有効なものであるかを判断している。そして、バーコード幅データ生成部１９は、極値検証部１８によって有効であると判断された各極値Ｐ０〜Ｐ４における時間情報（ｔ０、ｔ１、ｔ２、ｔ３、ｔ４）を用いて、図７（５）に示すバーコード幅データＷ１を生成し、このバーコード幅データＷ１の各時間幅をカウントしてバーコード記号Ｂに記録された情報をデコードする。
【００６５】
ところで、従来のバーコード読取装置は、微分信号における信号不変領域の所定位置の電圧値を基準電圧値として固定し、ピークにおける基準電圧値からの電圧差であるピークホールド値およびボトムホールド値を求め、求めたピークホールド値およびボトムホールド値を所定比率で順次分圧して次のピークを検出するための閾値信号を設定する。
【００６６】
この従来のバーコード読取装置においては、図８（１）に示すバーコード記号Ｂからの反射光に外光が入った場合、たとえば図８（２）に示すように、この反射光に対応するＩ−Ｖ変換信号Ｃ２にもうねりが入り、Ｉ−Ｖ変換信号Ｃ２は、たとえば、全体的に右側領域が、電圧値の小さくなる方向に傾いた状態となってしまう。そして、図８（３）に示すように、Ｉ−Ｖ変換信号Ｃ２を微分処理した微分信号Ｅ２もうねりによって右側に傾いてしまう。従来のバーコード読取装置は、うねりの有無によらず、微分信号Ｅ２の最初の信号不変領域に対応して基準電圧Ｖｃを固定して設定するため、微分信号Ｅ２においては、外光によって信号がうねった場合、左側領域における最初の信号不変領域をもとに固定して設定された基準電圧と、右側に傾いた右側領域の信号不変領域の電圧値とにずれが生じてしまう。この結果、基準信号値Ｖｃと大きくずれた右側領域における極大値Ｐ１３は、信号不変領域との間においては十分に電圧値が大きいものの、極大値Ｐ１１と基準電圧値とをもとに設定された閾値信号Ｔｈ１を上回らない。このため、従来のバーコード読取装置は、矢印Ｙ１０に示すように極大値Ｐ１３を極値として検出することができなかった。このように、従来のバーコード読取装置においては、外光が入った場合には正確な比較信号を生成することができず、バーコード記号を正確に読み取ることができないという問題があった。
【００６７】
これに対し、本実施の形態にかかるバーコード読取装置１は、極値自体は外光の有無によらず微分信号に現れることを利用し、検証対象である極値と隣り合う極値との電圧差をもとに検証対象である極値の有効性を判断している。すなわち、バーコード読取装置１は、固定して設定される基準電圧値Ｖｃをもとに極値の有効性を判断しているわけではない。このため、バーコード読取装置１は、図８に示す右側に大きく傾いた微分信号Ｅ２においても、極値間の電圧差をもとに有効な極値を取得することができる。
【００６８】
具体的には、バーコード読取装置１は、図９（４）のデジタルサンプリングデータＤ２に示すように、極値Ｐ１１に対しては、極値Ｐ１１および極値Ｐ１０の電圧差ｖｄ１１が閾値Ｔ以上であるため有効な極値であると判断し、極値Ｐ１２に対しては、極値Ｐ１２および極値Ｐ１１の電圧差ｖｄ１２が閾値Ｔ以上であるため有効な極値であると判断する。そして、バーコード読取装置１は、従来においては基準電圧値Ｖｃよりも下回り極値として検出できなかった極値Ｐ１３に対しても、矢印Ｙ１３に示すように、極値Ｐ１３および極値Ｐ１２の電圧差ｖｄ１３が閾値Ｔ以上であるため有効な極値であると判断し、極値として検出することができる。そして、バーコード読取装置１は、極値Ｐ１３の次の極値である極値Ｐ１４においても、検出できたＰ１３を用い、極値Ｐ１４および極値Ｐ１３の電圧差ｖｄ１４が閾値Ｔ以上であるため有効な極値であると判断できる。
【００６９】
この結果、バーコード読取装置１は、外光が入ったために微分信号Ｅ２がうねってしまった場合であっても、極値Ｐ１１〜Ｐ１４を正確に取得することができる。したがって、バーコード読取装置１は、図９（５）に示すように、極値Ｐ１１〜Ｐ１４の各時間情報ｔ１１〜ｔ１４を用いてバーコード記号Ｂの各エレメント幅に正確に対応した時間幅を有するバーコード幅データＷ２を生成することができ、バーコード記号Ｂに記録された情報を正確に読み取ることができる。
【００７０】
さらに、本実施の形態にかかるバーコード読取装置１は、ノイズ認識部１５および極値検証部１８において、ノイズやごみなどに起因しバーコード記号の各エレメント境界に対応しない極値を除去したうえでバーコード幅データを生成するため、さらに正確にバーコード記号を読み取ることができる。
【００７１】
図１０および図１１を参照して、バーコード読取装置１におけるごみやノイズに関する極値の除去方法について説明する。図１０（１）に示すように、バーコード記号Ｂ上にごみＮｄや、白点Ｎｗがあった場合、図１０（２）に示すＩ−Ｖ変換信号Ｃ３のように、領域ＳｎｃにごみＮｄに起因するピークが現れ、領域Ｓｗｃに白点Ｎｗに起因するピークが現れてしまう。そして、図１０（３）に示すように、Ｉ−Ｖ変換信号Ｃ３を微分処理した微分信号Ｅ３においても、領域ＳｎｅにごみＮｄに起因する極値が現れ、領域Ｓｗｅに白点Ｎｗに起因する極値が残ったままとなる。この結果、この微分信号Ｅ３をもとに生成された図１０（４）に示すデジタルサンプリングデータＤ３においては、バーコード記号Ｂのエレメント境界に対応する本来の極値Ｐ０〜Ｐ４とともに、領域ＳｎｄにごみＮｄに起因する極値Ｐ５１，Ｐ５２が示され、領域Ｓｗｄに白点Ｎｗに起因する極値Ｐ３ａが示されてしまう。
【００７２】
まず、白点Ｎｗに起因する極値Ｐ３ａの除去について説明する。この極値Ｐ３ａは、ノイズ認識部１５におけるノイズ認識処理（ステップＳ１２）において除去される。具体的には、図１１（１）に示すように、ノイズ認識部１５は、ノイズ認識処理において、入力された極値データのうち、連続した極大値Ｐ３ａ，Ｐ３に対し、それぞれ極小値Ｐ２との電圧差を演算する。この場合、極大値Ｐ３ａに対応する電圧差ｖｄ３ａよりも極大値Ｐ３に対応する電圧差ｖｄ３の方が大きいため、ノイズ認識部１５は、矢印Ｙ３２にあるように極大値Ｐ３ａをノイズなどに起因する無効なものであり、矢印Ｙ３１にあるように極大値Ｐ３を有効なものであると判断する。そして、ノイズ認識部１５は、ノイズ認識処理において、無効と判断した極大値Ｐ３ａを極値データから除去する。この結果、図１１（２）のデジタルサンプリングデータＤ３１に示すように、領域Ｓｗｄにおける白点Ｎｗに起因した極大値Ｐ３ａが除去される。このように、極大値が連続する場合および極小値が連続する場合においては、ノイズ認識処理によって無効である極値が除去される。
【００７３】
ここで、領域ＳｎｄにおけるごみＮｄに起因する極小値Ｐ５１および極大値Ｐ５２は、極大値同士または極小値同士ではないため、ノイズ認識処理においては除去されない。この極小値Ｐ５１および極大値Ｐ５２のうち、極大値Ｐ５２は、極値検証部１８による極値検証処理（ステップＳ１８）において除去される。
【００７４】
具体的には、図１１（２）に示すように、極値検証部１８は、極値検証処理において、入力された電圧差データにもとづき、極小値Ｐ５１の有効性を検証する。この場合、極小値Ｐ５１と、極小値Ｐ５１の一つ前の極大値Ｐ１との電圧差ｖｄ５１は、閾値Ｔ以上であるため、極値検証部１８は、極小値Ｐ５１を無効と判断しない。つぎに、極大値Ｐ５２に対しては、極大値Ｐ５２と、極大値Ｐ５２の一つ前の極小値Ｐ５１との電圧差ｖｄ５２は、閾値Ｔよりも小さいため、矢印Ｙ３４にあるように、極値検証部１８は、極大値Ｐ５２を無効と判断する。そして、極値検証部１８は、無効と判断した極大値Ｐ５２を極値データから除去する（ステップＳ２２）。したがって、図１１（３）のデジタルサンプリングデータＤ３２に示すように、領域ＳｎｄにおけるごみＮｄに起因した極値のうち極大値Ｐ５２が除去される。そして、極値検証部１８は、領域Ｓｎｄに極小値Ｐ５１が残るデジタルサンプリングデータＤ３１に対応する極値データを、ノイズ認識部１５に再入力する（ステップＳ２４）。このように、極小値および極大値が交互に現れる場合、極値検証処理によって、無効である極値のうち少なくとも一方が除去される。
【００７５】
この極値検証処理によって極大値Ｐ５２が除去された結果、領域Ｓｎｄに残存する極小値Ｐ５１は、極値検証処理における極大値Ｐ５２の除去によって極小値Ｐ２と隣り合うことになる。この極小値Ｐ５１は、ノイズ認識部１５によって再度行なわれるノイズ認識処理（ステップＳ１２）において除去される。具体的には、図１１（３）に示すように、ノイズ認識部１５は、ノイズ認識処理において、連続した極小値Ｐ５１，Ｐ２に対し、それぞれ極大値Ｐ１との電圧差を演算する。この場合、極小値Ｐ５１に対応する電圧差ｖｄ５１よりも極小値Ｐ２に対応する電圧差ｖｄ２の方が大きいため、ノイズ認識部１５は、矢印Ｙ３７にあるように極小値Ｐ５１をノイズなどに起因する無効なものであり、矢印Ｙ３６にあるように極小値Ｐ２を有効なものであると判断する。そして、ノイズ認識部１５は、ノイズ認識処理において、無効と判断した極小値Ｐ５１を極値データから除去する。この結果、図１１（４）のデジタルサンプリングデータＤ１に示すように、領域ＳｎｄにおけるごみＮｄに起因した極小値Ｐ５１が除去される。このように、極大値が連続する場合、極小値が連続する場合においては、ノイズ認識処理によって、無効である極値が除去される。
【００７６】
このように、バーコード読取装置１は、ノイズやごみなどに起因した極値が現れてしまった場合であっても、ノイズやごみなどに起因しバーコード記号の各エレメント境界に対応しない極値を除去し、バーコード記号Ｂの各エレメント境界に正確に対応した極値Ｐ１〜Ｐ４のみを示すデジタルサンプリングデータＤ１を取得することができる。したがって、バーコード読取装置１は、極値Ｐ１〜Ｐ４を用いてバーコード記号Ｂの各エレメント幅に正確に対応した時間幅を有するバーコード幅データを生成することができ、バーコード記号Ｂに記録された情報を正確に読み取ることができる。
【００７７】
なお、ノイズ認識処理（ステップＳ１２）において、ノイズ認識部１５が連続した二つの極大値または極小値に対して有効性を判断した場合について説明したが、連続した二以上の極大値または連続した二以上の極小値に対して一度に有効性を判断してもよい。この場合、ノイズ認識部１５は、連続した二以上の極大値に対して有効性を判断する場合、連続した二以上の各極大値と、これらの二以上の極大値の前に示された極小値との電圧差をそれぞれ求め、この電圧差のうち絶対値が最大である電圧差に対応する極大値をバーコード記号に対応した有効な極値であると認識する。また、ノイズ認識部１５は、連続した二以上の極小値に対して有効性を判断する場合、連続した二以上の各極小値と、これらの二以上の極小値の前に示された極大値との電圧差をそれぞれ求め、この電圧差のうち絶対値が最大である電圧差に対応する極小値をバーコード記号に対応した有効な極値であると認識する。
【００７８】
また、ノイズ認識処理においては、ノイズ認識部１５が、認識対象である連続した極大値または極小値の前に示された極値との各電圧差をもとにノイズを認識した場合について説明したが、もちろんこれに限らず、認識対象である連続した極大値または極小値の後に示された極値との各電圧差をもとにノイズを認識してもよい。
【００７９】
また、ノイズ認識処理においては、ノイズ認識部１５は、連続した極大値または極小値に対して、同一の極値との間で電圧差を求めて有効性を判断するほか、それぞれ異なる極値との間で電圧差を求めて有効性を判断してもよい。たとえば図１２に示すデジタルサンプリングデータＤ４を例に、連続して現れた極大値Ｐ４２ａと極大値Ｐ４２ｂに対するノイズ認識処理について説明する。図１２に示すように、ノイズ認識部１５は、極大値Ｐ４２ａに対しては、極大値Ｐ４２ａに最も近接した極小値であって極大値Ｐ４２ａの前に示される極小値Ｐ４１と極大値Ｐ４２ａとの電圧差ｖｄ４２ａを演算する。また、ノイズ認識部１５は、極大値Ｐ４２ｂに対しては、極大値Ｐ４２ｂに最も近接した極小値であって極大値Ｐ４２ｂの後に示される極小値Ｐ４３と極大値Ｐ４２ｂとの電圧差ｖｄ４２ｂを演算する。次いで、ノイズ認識部１５は、演算した電圧差ｖｄ４２ａと電圧差ｖｄ４２ｂとを比較し、矢印Ｙ４２ｂにあるように電圧差ｖｄ４２ａよりも絶対値が大きい電圧差ｖｄ４２ｂに対応する極大値Ｐ４２ｂを有効と判断し、矢印Ｙ４２ａにあるように一方の極小値Ｐ４２ａを無効と判断する。図１２に示すように、外光が入ったために信号全体がうねってしまい大きく傾いたとき、連続する極大値または極小値と近接する同一の極値との電圧差をもとに判断する場合と比較し、認識対象である各極大値または各極小値にそれぞれ最も近接する極小値または極大値との間で電圧差をもとに判断した場合は、認識対象である極値と、該極値との間で電圧差を演算する極値との間の時間幅が狭くなるため、ノイズ認識部１５は、信号全体の傾きの影響を低減した状態で各極値の有効性を認識することができる。また、ノイズ認識部１５において、連続した極大値または極小値が検出され、且つ連続した極大値または極小値と隣り合う極性が反対の２つの極小値または極大値（例えば、図１２の極小値Ｐ４１とＰ４３）の電圧差が所定の値より大きい場合に、上記のようにそれぞれ異なる極値間で電位差を求めて極値の有効性を判断する処理を適用してもよい。
【００８０】
また、実施の形態においては、閾値設定部１７は、閾値設定処理として電圧差演算部１６が演算した各電圧差を含む電圧差データにおける最大電圧差の値をもとに極値検証処理における閾値を設定した場合について説明したが、もちろんこれに限らず、図示しない入力部から入力された値を閾値として設定してもよく、メモリ１７ａに予め記憶されている閾値を取り出して閾値として設定してもよい。
【００８１】
また、閾値設定部１７は、閾値設定処理として、ノイズ認識部１５から出力される極値データをもとに閾値を設定してもよい。この場合、閾値設定部１７は、図１３に示すように、閾値設定部１７は、閾値設定対象となる極値データをノイズ認識部１５から取得する（ステップＳ１１２）。次いで、閾値設定部１７は、この極値データの極値における最大電圧値および最小電圧値をもとに微分信号における最大振幅を取得する（ステップＳ１１４）。そして、閾値設定部１７は、この最大振幅をもとに閾値を設定する（ステップＳ１１６）。たとえば、閾値設定部１７は、最大振幅の値の６０％の値を閾値として設定する。そして、閾値設定部１７は、設定した閾値を極値検証部１８に出力する（ステップＳ１１８）。
【００８２】
また、閾値設定部１７は、閾値設定処理として、極値検証部１８における検証対象である各極値ごとに閾値を設定してもよい。この場合、たとえば閾値設定部１７は、検証対象である極値の一つ前の極値における電圧差の値をもとに、検証対象である極値に対応する閾値を設定する。具体的には、閾値設定部１７は、図１４のデジタルサンプリングデータＤ５の場合、極値Ｐ５２に対しては、矢印Ｙ５２に示すように、極値Ｐ５２の一つ前の極値Ｐ５１と、極値Ｐ５１の一つ前の極値Ｐ５０との電圧差ｖｄ５１をもとに閾値Ｔ５２を設定する。閾値Ｔ５２は、たとえば、電圧差ｖｄ５１の６０％の値である。極値検証部１８は、極値Ｐ５２と極値Ｐ５１との電圧差ｖｄ５２と閾値Ｔ５２とを比較することによって極値Ｐ５２の有効性を判断する。さらに、閾値設定部１７は、極値Ｐ５３に対しては、矢印Ｙ５３に示すように、極値Ｐ５２と極値Ｐ５１との電圧差ｖｄ５２の６０％の値を閾値Ｔ５３として設定する。極値検証部１８は、極値Ｐ５３と極値Ｐ５２との電圧差ｖｄ５３と閾値Ｔ５３とを比較することによって極値Ｐ５３の有効性を判断する。
【００８３】
この場合における閾値設定処理として、閾値設定部１７は、図１５に示すように、電圧差データを取得し（ステップＳ１２２）、閾値設定対象となる極値に対応する電圧差の一つ前の電圧差の値を取得する（ステップＳ１２４）。次いで、閾値設定部１７は、取得した一つ前の電圧差の値をもとに、閾値設定対象となる極値の閾値を設定する（ステップＳ１２６）。たとえば、閾値設定部１７は、ノイズと極値を切り分け可能である値として、この一つ前の電圧差の値の６０％〜７０％の値を、閾値設定対象となる極値の閾値として設定する。そして、閾値設定部１７は、次に閾値設定対象となる極値があるか否かを判断する（ステップＳ１２８）。閾値設定部１７は、次に閾値設定対象となる極値があると判断した場合（ステップＳ１２８：Ｙｅｓ）、ステップＳ１２４に戻り次の極値に対して閾値を設定する処理を行ない、次に閾値設定対象となる極値がないと判断した場合（ステップＳ１２８：Ｎｏ）、設定した閾値を各極値に対応づけて極値検証部１８に出力し（ステップＳ１３０）、閾値設定処理を終了する。
【００８４】
また、実施の形態においては、極値検証部１８は、検証対象である極値と、この極値の前に示された極値との電圧差を閾値と比較することで検証対象である極値の有効性について検証した場合を説明したが、もちろんこれに限らず、検証対象である極値と、この極値の後に示された極値との電圧差を閾値と比較することで検証対象である極値の有効性について検証してもよい。
【００８５】
具体的には、図１６に示すデジタルサンプリングデータＤ６を例とした場合、極値検証部１８は、極値Ｐ６１に対して有効性を判断する場合、極値Ｐ６１の次に示された極値Ｐ６２と極値Ｐ６１との電圧差ｖｄ６１を用い、閾値Ｔと比較する。この場合、ｖｄ６１が閾値Ｔ以上であるため、矢印Ｙ６２に示すように、極値検証部１８は、極値Ｐ６１は有効であると判断する。さらに、極値検証部１８は、検証対象である極値に応じて、検証対象の極値の前に示された極値との電圧差、または、検証対象の極値の後に示された極値との電圧差を用いて極値の有効性を判断してもよい。たとえば、極値検証部１８は、微分信号の最初の極値の有効性を判断する場合、最初の極値の前に極値が存在しないため、最初の極値の次に示された極値との電圧差を用いて、最初の極値の有効性を判断する。さらに、極値検証部１８は、微分信号の最後の極値の有効性を判断する場合、最後の極値の後には極値が存在しないため、最後の極値の前に示された極値との電圧差を用いて、最後の極値の有効性を判断する。これにより、微分信号の最初の極値及び微分信号の最後の極値の有効性についても判断することができる。
【００８６】
また、極値検証部１８は、検証対象である極値と隣り合う前後の極値とのそれぞれの電圧差を用いて、前後のそれぞれの極値との電圧差の双方が閾値以上である極値のみを有効と判断し、さらに極値に対する有効性判断の確実性を高めてもよい。
【００８７】
具体的には、図１７に示すデジタルサンプリングデータＤ７を例とした場合、極値検証部１８は、極値Ｐ７１に対して有効性を判断する場合、極値Ｐ７１の前に示された極値Ｐ７０と極値Ｐ７１との電圧差ｖｄ７１ａ、および、極値Ｐ７１の後に示された極値Ｐ７２と極値Ｐ７１との電圧差ｖｄ７１ｂの双方を閾値Ｔと比較する。この場合、電圧差ｖｄ７１ａ、電圧差ｖｄ７１ｂがともに閾値Ｔ以上であるため、矢印Ｙ７１に示すように、極値Ｐ７１を有効であると判断する。これに対し、図１８に示すデジタルサンプリングデータＤ８を例とした場合、極値検証部１８は、極値Ｐ８１に対して有効性を判断する場合、極値Ｐ８１の前に示された極値Ｐ８０と極値Ｐ８１との電圧差ｖｄ８１ａが閾値Ｔ以上である場合であっても、極値Ｐ８１の後に示された極値Ｐ８２と極値Ｐ８１との電圧差ｖｄ８１ｂが閾値Ｔ未満であるため、矢印Ｙ８１に示すように、極値Ｐ８１を無効であると判断する。ノイズ端の極値と、このノイズ端の極値の両側の極値との電圧差がともに閾値以上となることはないため、極値検証部１８は、前後それぞれの極値との電圧差の双方が閾値以上である極値のみを有効と判断することによって、一度の極値検証処理によってノイズ全体を除去することができる。
【００８８】
この場合における極値検証処理として、極値検証部１８は、図１９に示すように、検証対象である極値と、この検証対象の極値に隣り合う一方の極値との電圧差を第１の電圧差ｖｄａとして取得し（ステップＳ１３２）、この極値に対応する閾値Ｔａを取得した後に（ステップＳ１３４）、第１の電圧差ｖｄａと閾値Ｔａとを比較し、ｖｄａ≧Ｔａであるか否かを判断する（ステップＳ１３６）。極値検証部１８は、ｖｄａ≧Ｔａでないと判断した場合（ステップＳ１３６：Ｎｏ）、この検証対象である極値は無効であると判断する（ステップＳ１４６）。
【００８９】
これに対し、極値検証部１８は、ｖｄａ≧Ｔａであると判断した場合（ステップＳ１３６：Ｙｅｓ）、検証対象である極値と、この検証対象の極値に隣り合う他方の極値との電圧差を第２の電圧差ｖｄｂとして取得し（ステップＳ１３８）、この極値に対応する閾値Ｔｂを取得する（ステップＳ１４０）。そして、極値検証部１８は、第２の電圧差ｖｄｂと閾値Ｔｂとを比較し、ｖｄｂ≧Ｔｂであるか否かを判断する（ステップＳ１４２）。極値検証部１８は、ｖｄｂ≧Ｔｂでないと判断した場合（ステップＳ１４２：Ｎｏ）、この検証対象である極値は無効であると判断する（ステップＳ１４６）。これに対し、極値検証部１８は、ｖｄｂ≧Ｔｂであると判断した場合（ステップＳ１４２：Ｙｅｓ）、この検証対象の極値は有効であると判断し（ステップＳ１４４）、次に検証対象の極値があるか否かを判断する（ステップＳ１４８）。極値検証部１８は、次に検証対象の極値があると判断した場合（ステップＳ１４８：Ｙｅｓ）、ステップＳ１３２に戻り、次に検証対象である極値に対する検証処理を行なう。また、極値検証部１８は、次に検証対象の極値がないと判断した場合（ステップＳ１４８：Ｎｏ）、極値データにおける全極値に対する検証結果を終了したと判断し、極値検証処理を終了する。
【００９０】
また、バーコード読取装置１においては、極値検出部１４が微分信号に対してＡ／Ｄ変換を行なった場合について説明したが、もちろんこれに限らず、微分処理部１３が微分対象である電圧信号をＡ／Ｄ変換した後に、微分処理を行なって微分信号を生成してもよい。また、微分処理部１３または極値検出部１４は、Ａ／Ｄ変換後の信号に対して、増幅、フィルタリングを行なってもよい。
【００９１】
また、実施の形態においては、走査光を照射してバーコード記号Ｂを読み取るバーコード読取装置１について説明したが、これに限らず、図２０に示すように、バーコード記号Ｂを撮像してバーコード記号Ｂを読み取るバーコード読取装置２０１であってもよい。図２０に示すように、バーコード読取装置２０１は、図１に示すバーコード読取装置１における反射ミラー３、走査ミラー４、集光ミラー５、光学フィルタ６、センサ７およびシールド８に代えて、バーコード記号Ｂ全体に光を照射する光源２０２、バーコード記号Ｂ全体からの反射光を集光する集光部２０５、ＣＣＤ（Charge Coupled Diode）などによって構成され集光部２０５によって集光された光を受光して受光強度に対応した電気信号に変換する撮像素子２０７、撮像素子２０７から出力された電気信号を増幅し微分処理部１３に出力するプリアンプ２１２、光源２０２の発光処理を制御する光源制御部２０９を備える。プリアンプ２１２から出力された電気信号は、バーコード記号Ｂにおける各エレメント幅情報と、受光強度に応じた電圧値とが対応づけられたものとなる。
【００９２】
バーコード読取装置２０１においては、図２１に示すように、光源２０２、撮像素子２０７、光源制御部２０９が、光を照射しバーコード記号Ｂ全体からの反射光を受光してバーコード記号Ｂ全体に対応する電気信号を生成する撮像処理を行なう（ステップＳ２０２）。そして、プリアンプ２１２は、撮像素子２０７から出力された電気信号を増幅する増幅処理を行なう（ステップＳ２０４）。そして、バーコード読取装置２０１においては、図２に示すステップＳ２〜ステップＳ３２と同様の処理手順を行なうことによって、微分処理（ステップＳ２０８）、極値検出処理（ステップＳ２１０）、ノイズ認識処理（ステップＳ２１２）、電圧差演算処理（ステップＳ２１４）、閾値設定処理（ステップＳ２１６）、極値検証処理（ステップＳ２１８）、無効判断極値の有無に対する判断処理（ステップＳ２２０）、無効極値除外処理（ステップＳ２２２）、極値データ再入力処理（ステップＳ２２４）、極値データ出力処理（ステップＳ２２６）、バーコード幅データ生成処理（ステップＳ２２８）、デコード処理（ステップＳ２３０）、および出力処理（ステップＳ２３２）を行なう。このように、バーコード記号Ｂを撮像してバーコード記号Ｂを読み取るバーコード読取装置２０１においても、電圧差をもとに極値の有効性を判断した上でバーコード幅データを生成するため、バーコード記号Ｂを正確に読み取ることができる。
【００９３】
また、本実施の形態においては、双方向の走査が可能である走査ミラーを備えたバーコード読取装置１について説明したが、これに限らず、走査光の照射領域が操作者によって走査されるペン型のバーコード読取装置についても適用可能である。
【図面の簡単な説明】
【００９４】
【図１】実施の形態にかかるバーコード読取装置の構成を示す模式図である。
【図２】図１に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図３】図２に示すノイズ認識処理の処理手順を示すフローチャートである。
【図４】図３に示すノイズ認識処理を説明する図である。
【図５】図２に示す閾値設定処理の処理手順を示すフローチャートである。
【図６】図２に示す極値検証処理の処理手順を示すフローチャートである。
【図７】図１に示すバーコード読取装置におけるバーコード読取処理を説明する図である。
【図８】従来のバーコード読取装置におけるバーコード読取処理を説明する図である。
【図９】図６に示す極値検証処理を説明する図である。
【図１０】図１に示すバーコード読取装置におけるごみやノイズに関する極値の除去方法について説明する図である。
【図１１】図１に示すバーコード読取装置におけるごみやノイズに関する極値の除去方法について説明する図である。
【図１２】図１に示すノイズ認識部におけるノイズ認識処理の他の例を説明する図である。
【図１３】図２に示す閾値設定処理の他の処理手順を示すフローチャートである。
【図１４】図１に示す閾値設定部における閾値設定処理の他の例を説明する図である。
【図１５】図２に示す閾値設定処理の他の処理手順を示すフローチャートである。
【図１６】図１に示す極値検証部における極値検証処理の他の例を説明する図である。
【図１７】図１に示す極値検証部における極値検証処理の他の例を説明する図である。
【図１８】図１に示す極値検証部における極値検証処理の他の例を説明する図である。
【図１９】図２に示す極値検証処理の他の処理手順を示すフローチャートである。
【図２０】実施の形態にかかるバーコード読取装置の他の構成を示す模式図である。
【図２１】図２０に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図２２】従来のバーコード読取装置におけるバーコード読取処理を説明する図である。
【符号の説明】
【００９５】
１，２０１  バーコード読取装置
２  光源
３  反射ミラー
４  走査ミラー
５  集光ミラー
６  光学フィルタ
７  センサ
８  シールド
９  光源制御部
１０  駆動制御部
１２  Ｉ−Ｖ変換部
１３  微分処理部
１４  極値検出部
１５  ノイズ認識部
１５ａ，１６ａ，１７ａ，１８ａ  メモリ
１６  電圧差演算部
１７  閾値設定部
１８  極値検証部
１９  バーコード幅データ生成部
２０  出力部
２０２  光源
２０５  集光部
２０７  撮像素子
２０９  光源制御部
２１２  プリアンプ
Ｂ    バーコード記号
【図１】
2008282262.tif 000003
【図２】
2008282262.tif 000004
【図３】
2008282262.tif 000005
【図４】
2008282262.tif 000006
【図５】
2008282262.tif 000007
【図６】
2008282262.tif 000008
【図７】
2008282262.tif 000009
【図８】
2008282262.tif 000010
【図９】
2008282262.tif 000011
【図１０】
2008282262.tif 000012
【図１１】
2008282262.tif 000013
【図１２】
2008282262.tif 000014
【図１３】
2008282262.tif 000015
【図１４】
2008282262.tif 000016
【図１５】
2008282262.tif 000017
【図１６】
2008282262.tif 000018
【図１７】
2008282262.tif 000019
【図１８】
2008282262.tif 000020
【図１９】
2008282262.tif 000021
【図２０】
2008282262.tif 000022
【図２１】
2008282262.tif 000023
【図２２】
2008282262.tif 000024