(57)【要約】【課題】正反射等の背景環境に影響されることなくバーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供する。【解決手段】バーコード読取装置において、バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段３１と、正常に読み取ることができなかったと判断した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段４１と、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段４２と、前記区間において、計数値が所定の値より大きい区間が存在するか否かを判断する判断手段４３と、該判断手段で判断された計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段４４とを備える。【選択図】図２
2009259059.tif 000002
【特許請求の範囲】
【請求項１】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と、
該受光素子の受光信号を所定のゲインにて増幅する増幅回路と
を含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置において、
バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、
該読取判断手段で正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段と、
該計数手段で計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段と、
前記複数の所定の振幅以上の区間において、前記積算手段で積算された計数値が所定の値より大きい区間が存在するか否かを判断する判断手段と、
該判断手段で判断された前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段と
を備えることを特徴とするバーコード読取装置。
【請求項２】
前記判断手段にて、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断する振幅判断手段を有し、
前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記振幅判断手段で前記基準振幅より小さいと判断された場合、前記ゲインを増大させるようにしてあることを特徴とする請求項１記載のバーコード読取装置。
【請求項３】
前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅と同一であると判断された場合、前記ゲインを維持し、
記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定する閾値設定手段を備えることを特徴とする請求項２記載のバーコード読取装置。
【請求項４】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と、
該受光素子の受光信号を所定のゲインにて増幅する増幅回路と
を含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、
バーコード情報を正常に読み取ることができたか否かを判断し、
正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数し、
計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とし、
積算された計数値が所定の値より大きい区間が存在するか否かを判断し、
前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新することを特徴とするバーコード読取方法。
【請求項５】
前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断し、
前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記基準振幅より小さいと判断された場合、前記ゲインを増大させることを特徴とする請求項４記載のバーコード読取方法。
【請求項６】
前記基準振幅と同一であると判断された場合、前記ゲインを維持し、
記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定することを特徴とする請求項５記載のバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法に関する。
【背景技術】
【０００２】
バーコード読取装置は、光源から出射した光をバーコード上に走査させ、バーコードからの反射光を受光した受光素子が受光信号として出力し、出力された受光信号に基づいてバーコードシンボルの配置を読み取ることによって、バーコードシンボルで表示されている情報を読み取る。バーコードシンボル上では黒色であることから光の吸収率が高く反射率が低くなり、バーコードシンボル間の空白部分では白色であることから光の吸収率が低く反射率が高くなる。したがって、受光信号の波形は、バーコードシンボルから空白部分へ走査する場合に立ち上がり、空白部分からバーコードシンボルへ走査する場合に立ち下がる。
【０００３】
バーコードが、例えば金属製部品に貼付されている場合等には、バーコードの周囲に極めて強く反射（正反射）する物質が存在する環境下でバーコード読取を実行することになる。バーコード読取装置は、正反射による強い反射光を受光した場合、強い反射光による受光信号の波形の振幅が極めて大きくなり、バーコードからの受光信号の波形の振幅が相対的に小さく検出される。そのため、受光信号の波形の最大振幅を基準として振幅を調整すると、バーコードからの受光信号の波形が小さくなりすぎて読み取れないという問題がある。
【０００４】
また、バーコードシンボルの線幅には広狭があり、バーコード上に走査させる光のスポットが、線幅の広いバーコードシンボルではバーコードシンボルのみに当たり、線幅の狭いバーコードシンボルではバーコードシンボルと空白部分との両方に同時に当たる。光のスポットがバーコードシンボルと空白部分との両方に同時に当たる場合、バーコードシンボルのみに当たる場合と比較して受光信号の振幅は小さくなる。したがって、線幅の広いバーコードシンボルからの受光信号の大きな振幅に合わせ、読取対象とする受光信号の振幅の選択基準が設定されると、線幅の狭いバーコードシンボルからの振幅の小さい受光信号が読取対象から除外され、バーコードシンボルの幅等、種々のバーコードを正確に読み取ることができないという問題もある。
【０００５】
上述した反射光を検出してバーコードがない背景部分から読取動作を開始してしまう誤検出を防止するため、特許文献１では、受光信号を増幅する可変利得増幅手段と、該可変利得増幅手段の利得を変更設定する設定手段とを備えたバーコード読取装置が提案されている。特許文献１の可変利得増幅手段では、光照射領域にバーコードが存在しない状態で、利得（ゲイン）を順に低下（又は増加）させつつ、利得ごとの出力信号に基づいて背景の検出の有無を判定し、利得を、背景が検出されない最大の利得（又は背景が検出される最小の利得）から所定量だけ低い利得に設定する。
【０００６】
これにより、背景が検出されない最大の利得（又は背景が検出される最小の利得）から所定量だけ低い利得、すなわちいずれの場合にも背景を安定的に検出しない利得のうち最大の利得に設定することができる。したがって、背景の反射率が高い場合であっても、背景の誤検出を防止することができ、バーコードを正確に検出することができる。
【０００７】
また、幅の狭いバーコードシンボルからの受光信号を確実に読み取るため、特許文献２では、バーコードの形状特性に適合するように整形特性を変更して受光信号を整形する受光信号整形装置が提案されている。特許文献２では、受光信号に含まれるノイズ成分を除去するために複数のフィルタ特性を切り換えるフィルタ回路と、フィルタ回路からの出力信号を増幅するために複数の増幅特性を切り換えるゲイン回路と、ゲイン回路からの出力信号を検出するためにしきい値信号を発生するしきい値発生回路と、ゲイン回路からの出力信号としきい値信号とを比較してバーコードの有無を判断する比較回路とを備えており、しきい値発生回路では、出力信号の立ち上がり及び立ち下りから一定期間だけ受光信号に近づけたしきい値信号が発生される。したがって、検出信号近傍で検出感度を高くすることができ、幅の狭いバーコードシンボルであっても確実に検出することができる。
【０００８】
【特許文献１】特開２００３−７６９４１号公報
【特許文献２】特開平６−２３１２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に開示されているバーコード読取装置では、背景が検出されない最大（又は背景が検出される最小）の利得から所定量だけ低下した利得に設定するため、前提となる背景検出の有無の判定が確実なものでなければ、所定量だけ低下した利得に設定する意味がなくなる。また、背景が検出されるか否かを基準とし、バーコードと背景の環境との関係に配慮されず、背景検出の有無にのみ基づいて利得を設定するため、バーコード上で受光信号の小さい振幅が充分に増幅されない場合が発生する。したがって、正反射による背景の誤検出を防止することができたとしても、バーコードを正確に読み取るには十分でないおそれがあるという問題がある。
【００１０】
また、特許文献２に開示されている受光信号整形装置では、フィルタ回路でのフィルタ特性及びゲイン回路での増幅特性の切換は、操作者のスイッチ操作によるため、フィルタ特性及び増幅特性を適切に設定することは困難である。したがって、ゲイン回路からの出力信号を利用するしきい値信号についても、適切に設定することが困難となる。また、仮にしきい値信号を適切に設定することができたとしても、しきい値を受光信号ごとに設定して検出感度を高くするため、バーコード上の汚れ等を信号として検出する可能性が高くなるという問題もある。
【００１１】
本発明は斯かる事情に鑑みてなされたものであり、正反射が強い等の背景環境に影響されることなくバーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。また、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために第１発明に係るバーコード読取装置は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子と、該受光素子の受光信号を所定のゲインにて増幅する増幅回路とを含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置において、バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、該読取判断手段で正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段と、該計数手段で計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段と、前記複数の所定の振幅以上の区間において、前記積算手段で積算された計数値が所定の値より大きい区間が存在するか否かを判断する判断手段と、該判断手段で判断された前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段とを備えることを特徴とする。
【００１３】
また、第２発明に係るバーコード読取装置は、第１発明において、前記判断手段にて、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断する振幅判断手段を有し、前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記振幅判断手段で前記基準振幅より小さいと判断された場合、前記ゲインを増大させるようにしてあることを特徴とする。      
【００１４】
また、第３発明に係るバーコード読取装置は、第２発明において、前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定する閾値設定手段を備えることを特徴とする。
【００１５】
次に、上記目的を達成するために第４発明に係るバーコード読取方法は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子と、該受光素子の受光信号を所定のゲインにて増幅する増幅回路とを含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、バーコード情報を正常に読み取ることができたか否かを判断し、正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数し、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とし、積算された計数値が所定の値より大きい区間が存在するか否かを判断し、前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新することを特徴とする。
【００１６】
また、第５発明に係るバーコード読取方法は、第４発明において、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断し、前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記基準振幅より小さいと判断された場合、前記ゲインを増大させることを特徴とする。
【００１７】
また、第６発明に係るバーコード読取方法は、第５発明において、前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定することを特徴とする。
【００１８】
第１発明及び第４発明では、バーコード情報を正常に読み取ることができなかったと判断した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する。計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする。複数の所定の振幅以上の区間において、計数値が所定の値より大きい区間が存在するか否かを判断する。ここで、「所定の値」は、全データ数に対して正反射等による異常な振幅を有すると仮定されたデータ数である。これによって、各所定の振幅以上となる受光信号において、異常な振幅を有する受光信号を除いて有効な受光信号がある程度多く存在するか否かを判断することができる。したがって、いずれの所定の振幅以上の区間の受光信号が有効であるか判断することができる。そして、受光信号が有効である所定の振幅以上の区間（計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間）に対応するゲインに更新するので、異常に大きな振幅に合わせることなく、適切にゲインを設定することができる。したがって、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができる。
【００１９】
第２発明及び第５発明では、計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きい場合にはゲインを減少させ、小さい場合にはゲインを増大させることにより、受光信号を一定の振幅に近づけることができ、より正確にバーコードを読み取ることが可能となる。
【００２０】
第３発明及び第６発明では、前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定するので、適切な閾値に設定することができる。したがって、バーコード上に幅の広いバーコードシンボルの間に幅の狭いバーコードシンボルがあって、幅の広いバーコードシンボルと比較して、幅の狭いバーコードシンボルの受光信号の振幅が小さくなる場合等でも、適切に閾値を下げることにより幅の狭いバーコードシンボルも読み取ることができ、バーコードを正確に読み取ることが可能となる。なお、一の所定の閾値に設定した場合には、閾値を下げすぎることになって、バーコード上の汚れ等を信号として検出する可能性が高くなるが、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出して閾値を順次変更して設定することによって、適切な閾値を設定することができ、誤検出を防止することができる。したがって、バーコードシンボルの幅等、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることが可能となる。
【発明の効果】
【００２１】
上記構成によれば、複数の所定の振幅以上の区間において、計数値が所定の値より大きい区間が存在するか否かを判断することによって、いずれの所定の振幅以上の区間の受光信号が有効であるか否かを判断することができ、受光信号が有効である所定の振幅以上の区間（計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間）に対応するゲインに更新するので、異常に大きな振幅に合わせることなく、適切にゲインを設定することができる。したがって、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態に係るバーコード読取装置について、図面に基づいて具体的に説明する。
【００２３】
（実施の形態１）
図１は、本発明の実施の形態１に係るバーコード読取装置１０の構成を示すブロック図である。バーコード読取装置１０は、レーザ光を出射する発光素子であるレーザ光源１と、レーザ光をバーコード９上に走査するよう反射させるポリゴンミラー２と、バーコード９からの反射光を受光して電気信号（受光信号）に変換する受光回路３と、受光信号のうちの直流成分を除去するコンデンサ４と、受光信号を増幅する増幅回路５と、受光信号をデジタルの反射強度信号に変換するＡＤコンバータ６と、レーザ光源１の出射タイミング、ポリゴンミラー２の回転速度、増幅回路５でのゲインの設定等を制御する制御装置７とを備える。
【００２４】
本実施の形態１では、レーザ光源１にレーザダイオードを用いる。レーザ光源１は、ポリゴンミラー２の回転に同期させて点灯が制御され、レーザ光をバーコード９上に走査する。図１に示す正８角柱状のポリゴンミラー２では、１回転する間にレーザ光源１が８回点灯するようにオンオフ制御によって、バーコード９上に一定間隔でレーザ光が走査される。レーザ光源１の点灯及びポリゴンミラー２の回転は、制御装置７によって制御される。受光回路３は、フォトダイオード等の光電変換素子からなる受光素子を備え、バーコード９からの反射光を受光し、受光信号に変換する。
【００２５】
図２は、本発明の実施の形態１における制御装置７の概略構成を示すブロック図である。制御装置７は、ＣＰＵ８と、ＣＰＵ８が外部装置との間で各種データを送受信する通信手段１１と、ＣＰＵ８がＡＤコンバータ６等の各構成と各種信号を送受信する入出力インタフェース１２と、ＣＰＵ８による制御処理における各種情報を格納する記憶手段１３とを備える。ＣＰＵ８は、信号処理手段２０、デコード手段３０、読取判断手段３１及び振幅制御手段４０を備える。信号処理手段２０は、入出力インタフェース１２を介してＡＤコンバータ６から入力された受光信号を微分処理する微分処理手段２１と、微分処理された受光信号からノイズ成分を除去するフィルタ処理手段２２と、フィルタ処理された受光信号を２値化処理する２値化処理手段２３とを有する。
【００２６】
デコード手段３０は、信号処理手段２０からの２値化された線幅データを復号し、読取判断手段３１は、バーコード情報として正常に読み取ることができたか否かを判断する。本実施の形態１において、読取判断手段３１では、例えば、バーコードの両端のバーコードシンボル（スタートキャラクタ及びストップキャラクタ）の外側に設けられた所定幅以上の空白部分（マージン）を利用して、バーコードを正常に読み取ることができたか否かを判断する。
【００２７】
具体的には、マージンの後にスタートキャラクタを読み取ることによってバーコードのスタート位置を認識し、ストップキャラクタの後にマージンを読み取ることによってストップ位置を認識する。そして、スタート位置からストップ位置までの間のバーコードシンボルと空白部分との線幅の比率が妥当であればバーコードを正常に読み取ることができたと判断する。比率が妥当と判断されない場合としては、例えば、受光信号の振幅が過小又は過大であるため正常な信号波形として処理できず、線幅として認識できない場合が挙げられる。
【００２８】
振幅制御手段４０では、入出力インタフェース１２を介してＡＤコンバータ６からの受光信号を取得し、デコード手段３０でのデコード結果によって受光信号の振幅を制御するため、計数手段４１、積算手段４２、判断手段４３、ゲイン更新手段４４及び振幅判断手段４５を有する。計数手段４１は、デコード手段３０でバーコード情報を正常に読み取ることができなかった旨を示すデコード結果情報を取得した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する。積算手段４２は、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする。
【００２９】
判断手段４３は、複数の所定の振幅以上の区間において、積算された計数値が「仮定値」より大きい区間が存在するか否かを判断する。「仮定値」は、全データ数中で異常な振幅を有すると仮定されたデータ数である。ゲイン更新手段４４は、判断手段４３で判断された計数値が仮定値（所定の値）より大きい区間の存否に基づいて、該区間に対応するゲインを決定し、決定したゲインを入出力インタフェース１２を介して増幅回路５に設定する。振幅制御手段４０の詳細については後述する。
【００３０】
図３は、受光信号の微分処理前後の波形の概略形状を示す模式図である。図３（ａ）が微分処理前、図３（ｂ）が微分処理後の波形を示している。図３（ａ）及び（ｂ）において、縦軸は出力電圧値で示される振幅強度（言い換えれば、受光信号の大きさ）で、横軸はカウンタ値（データ数）である。図３における受光信号の波形は、バーコード上の一部分の反射光に対応し、微分処理前後の波形は概略形状であり、正確に微分処理された波形を示すものではない。図３（ａ）に示すように微分処理前の波形は、バーコードシンボルからバーコードシンボル間の空白部分への境界にて立ち上がり、バーコードシンボル間の空白部分の中央近傍にて極大値となる。そして、バーコードシンボル間の空白部分からバーコードシンボルへの境界にて立ち下がり、バーコードシンボルの中央近傍にて極小値となる波形になっている。図３（ｂ）に示すように微分処理後の波形は、バーコードシンボルからバーコードシンボル間の空白部分への境界にて極大値となり、バーコードシンボル間の空白部分からバーコードシンボルへの境界にて極小値となる波形となっている。微分処理手段２１で、受信した受光信号を微分処理することによって、バーコードシンボルとバーコードシンボル間の空白部分との境界にて極大値及び極小値となるので、バーコードシンボルの線幅及び間隔を測定することができる。
【００３１】
図４は、異なる背景環境下でのバーコード読取状況を示す状態図である。図４（ａ）は通常環境、図４（ｂ）はスキャンエリア１５の一箇所に金属１６が存在する環境（正反射環境）、図４（ｃ）はスキャンエリア１５の複数箇所に金属１６が存在する環境（複数正反射環境）を、それぞれ示している。図５〜図７は、各々図４（ａ）〜（ｃ）の環境下での受光信号の波形の一例を示すグラフである。図８は、図４（ｂ）の環境下でゲインを小さくした場合の受光信号の波形の一例を示すグラフである。
【００３２】
図６の受光信号には、カウンタ値‘２１３５’付近に金属による正反射に対応する極端に振幅の大きい異常な振幅が存在する。この場合、通常のゲイン制御では、全ての受光信号を処理可能な振幅範囲で受信するため、大きな振幅の受光信号に合わせ、振幅を小さくするように制御される。ゲインを小さくして再スキャンによってバーコードを読み取ると、図８の例のようにバーコード上のバーコードシンボルからの正常な反射光による受光信号の振幅が小さくなりすぎる。したがって、正常な受光信号を正確に読み取ることが困難となる。
【００３３】
本実施の形態１における振幅制御手段４０での受光信号の振幅制御について、図９〜図１１を参照して説明する。図９〜図１１は、各々図５〜７に示す受光信号についての情報一覧図である。図９（ａ）、図１０（ａ）及び図１１（ａ）は、受光信号の振幅をＡ〜Ｉに区切った９つの区間にそれぞれ属する受光信号のデータ数を示す。図９（ｂ）、図１０（ｂ）及び図１１（ｂ）は、複数の所定の振幅以上の区間を含む範囲において有効なデータが存在するか否かを判断するための情報一覧図である。
【００３４】
図９（ａ）、図１０（ａ）及び図１１（ａ）において、各「区間」の振幅の「下限値」及び「上限値」、各「区間」に属する「データ数」が示されている。「区間幅」は「下限値」から「上限値」までの間であり、各「区間」の幅を示す。各区間Ａ〜Ｉの分布状態は図３に示す。図９（ｂ）、図１０（ｂ）及び図１１（ｂ）において、「振幅」は複数の所定の振幅以上の区間を含む範囲に分けられ、「振幅」（所定の振幅以上の区間を含む範囲）に「含まれる区間」が示されている。「計数値」は「含まれる区間」に含まれる各「区間」の「データ数」を積算した数値であり、各所定の振幅以上の区間を含む範囲に存在するデータ数に相当する。「仮定値」は、全データ数に対して正反射等による異常な振幅を有すると仮定したデータ数であり、バーコードの読取状況に応じて任意に設定可能である。「仮定値」は、例えば全データ数の５％程度に設定することができる。
【００３５】
「引算値」は「計数値」から「仮定値」を引いた数値である。「引算値」がマイナスであれば「フラグ」を‘０’に設定し、プラスであれば「フラグ」を‘１’に設定する。異常な振幅を有すると仮定したデータ数である「仮定値」よりも少ない「計数値」である所定の振幅以上の区間には、有効な受光信号はないか、あっても極めて少ないと考えられる。したがって、「仮定値」よりも「計数値」が少なくて「引算値」がマイナスになり、「フラグ」に‘０’が設定された「振幅」（所定の振幅以上の区間）に属する受光信号は、有効な振幅ではないと判断されている。「フラグ」が‘１’である所定の振幅以上の区間を含む範囲に属する受光信号は、有効な振幅であると判断されている。
【００３６】
「データ数」は計数手段４１が算出し、「計数値」は積算手段４２が積算する。判断手段４３は、「計数値」から「仮定値」を引き算し、いずれの所定の振幅以上の区間が、いずれの「フラグ」となるか判断し、判断結果を記憶手段１３に記憶する。ゲイン更新手段４４は、記憶された判断結果から、「フラグ」に‘１’を設定すると判断（計数値が所定の値より大きい区間が存在すると判断）された所定の振幅以上の区間に対応するゲインを決定し、増幅回路５に決定されたゲインを設定する。
【００３７】
図１２は、所定の振幅以上の区間について判断されたフラグに基づいて決定されるゲインの例を示す一覧図である。図１２では図９（ｂ）等に示す「フラグ」に応じて設定された「設定条件」に基づいてゲインが決定される。図１２において「設定条件」の欄に‘所定の振幅以上が１’と表示されている場合、当該所定の振幅より大きい振幅の区間でフラグが‘０’に設定され、かつ、当該所定の振幅より小さい振幅の区間でフラグが‘１’に設定されている場合を示している。例えば、‘６４１以上が１’と表示されている場合、当該所定の振幅（６４１）より大きい振幅（１０２４）の区間で‘０’に設定され、かつ、当該所定の振幅（６４１）より小さい振幅（２５７、９７）の区間で‘１’に設定されている場合を示している。図１２の例では、振幅１０２４以上の区間でフラグが‘１’に設定される場合、大きな振幅の受光信号が有効と判断されているので、振幅を小さくするようにゲインは１／４倍に設定する。一方、振幅９７以上の区間でフラグが‘１’に設定される場合、大きな振幅の受光信号は有効でなく小さな振幅の受光信号が有効と判断されているので、増幅するようにゲインは２倍に設定する。振幅９７以上の区間でフラグが‘０’に設定される場合、多くのデータが最小の所定の振幅‘９７’より小さい振幅である場合が想定され、大幅に増幅するようにゲインは４倍に設定される。振幅２５７以上の区間でフラグが‘１’に設定される場合、適度な振幅の受光信号が有効と判断されているので、振幅を変更する必要はないのでゲインは変更しない。以上のようなゲイン設定の判断は、振幅判断手段４５において実行される。
【００３８】
図１２の例のように、受光信号の振幅の判断基準となる基準振幅‘２５７’より大きい場合にはゲインを減少させ、小さい場合にはゲインを増大させることによって、受光信号を一定の振幅に近づけることができ、バーコードをより正確に読み取ることができる。なお、基準振幅は、適正な振幅の範囲とするために定めた振幅値であり、受光信号の振幅に対応する任意の振幅値に設定することができる。基準振幅は、図１２の例では、受光信号の受光可能な最大振幅‘１０２４’の１／４程度に設定している。
【００３９】
次に、「仮定値」の設定とゲインの決定方法について、具体的に図４〜７及び図９〜１２を参照して説明する。「仮定値」は、図４（ｂ）、図６及び図１０の例のような単一の正反射が存在する環境下では、全データ数‘８１９２’に対して‘４１６’に設定し、図４（ｃ）、図７及び図１１の例のような複数の正反射が存在する環境下では、全データ数‘８１９２’に対して‘２０４８’に設定する。また、図４（ａ）、図５及び図９の例のような通常環境下では、全データ数‘８１９２’に対して、正反射が存在する環境下と同じ‘４１６’に設定する。
【００４０】
図９に示すように、通常環境下では正反射による振幅がないため、Ａ、Ｂ、Ｈ及びＩ「区間」における「データ数」は‘０’である。したがって、Ａ及びＩ「区間」を含む‘１０２４以上’並びにＡ、Ｂ、Ｈ及びＩ「区間」を含む‘６４１以上’の「振幅」（所定の振幅以上の区間）における「計数値」も‘０’となっている。「振幅」‘１０２４以上’及び‘６４１以上’の各「計数値」から「仮定値」‘４１６’を引くと、いずれの「引算値」も‘−４１６’となるため、「フラグ」が‘０’に設定される。Ｃ〜Ｇ「区間」にはバーコードから正常に読み取った受光信号が存在するため「データ数」が多く、‘２５７以上’及び‘９７以上’の「振幅」における「計数値」も多くなる。これらの「計数値」‘６２１’及び‘１８６６’からそれぞれ「仮定値」‘４１６’を引くとプラスの「引算値」‘２０５’及び‘１４５０’となり、「フラグ」が‘１’に設定される。「振幅」‘２５７以上’で「フラグ」が‘１’に設定されているので、図１２に示すようにゲインを変更しないことになる。
【００４１】
図１０に示すように、単一の正反射が存在する環境下では正反射による過大な振幅が存在するため、Ａ、Ｂ、Ｈ及びＩ「区間」に「データ数」が存在するが、他の区間のデータ数と比較して少数である。したがって、上記通常環境下と同様、「振幅」‘１０２４以上’及び‘６４１以上’の各「計数値」から「仮定値」‘４１６’を引くと、いずれの「引算値」もマイナスとなり、「フラグ」が‘０’に設定される。「振幅」‘２５７以上’及び‘９７以上’では、プラスの「引算値」‘９２７’及び‘２９８９’となり、「フラグ」が‘１’に設定されている。上記通常環境下と同様、「振幅」‘２５７以上’で「フラグ」が‘１’に設定されているので、ゲインは変更されない。すなわち、単一の正反射が存在する環境下で、正反射による極端に振幅の大きい受光信号を有効でない信号と判断することによって、有効でない大きな振幅に合わせてゲインを小さくすることなく、通常環境下と同様、正常な受光信号の振幅に合わせてゲインを変更しないようにすることができる。
【００４２】
図１１に示すように、複数の正反射が存在する環境下では複数の正反射による過大な振幅が存在するため、Ａ、Ｂ、Ｈ及びＩ「区間」に「データ数」が多く存在する。したがって、Ａ及びＩ「区間」を含む‘１０２４以上’並びにＡ、Ｂ、Ｈ及びＩ「区間」を含む‘６４１以上’の「振幅」（所定の振幅以上の区間）における「計数値」も‘９２２’及び‘２０２３’と多くなっている。「振幅」‘１０２４以上’及び‘６４１以上’の各「計数値」から「仮定値」‘２０４８’を引くと、「引算値」‘−１１２６’及び‘−２５’となるため、「フラグ」を‘０’に設定する。「振幅」‘２５７以上’及び‘９７以上’では、プラスの「引算値」‘２１５９’及び‘４５２０’となり、「フラグ」を‘１’に設定する。上記通常環境下及び単一の正反射が存在する環境下と同様、「振幅」‘２５７以上’で「フラグ」が‘１’に設定されているので、ゲインは変更されない。すなわち、複数の正反射が存在する環境下では、単一の正反射が存在する環境下と同様に正反射が存在するが複数存在するため、「仮定値」を大きくすることによって、複数の正反射による極端に振幅の大きい受光信号を有効でないと判断することができる。したがって、複数の正反射が存在しても、通常環境下と同様、正常な受光信号の振幅に合わせてゲインを変更しないようにすることができる。
【００４３】
なお、ゲインが変更される場合としては、極端に振幅が大きい異常な受光信号を除き、受光信号全体の振幅が小さい、又は大きい場合が該当する。
【００４４】
図１３は、本発明の実施の形態１に係るバーコード読取装置１０の制御装置７のＣＰＵ８の処理手順を示すフローチャートである。図１３は、バーコード読取装置１０が１つのバーコードを繰り返しスキャンする場合を含み、制御装置７は、外部で信号処理された受光信号を取得して以下の処理を実行する。すなわち、バーコード読取装置１０がバーコードをスキャンし、受光信号を受信し、制御装置７へ出力する。制御装置７のＣＰＵ８は、受光信号の入力を受け付け（ステップＳ１３０１）、受け付けた受光信号をパルス化してデコードする（ステップＳ１３０２）。
【００４５】
ＣＰＵ８は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否か判断する（ステップＳ１３０３）。ＣＰＵ８が、正常に読み取ることができたと判断した場合（ステップＳ１３０３：ＹＥＳ）、ＣＰＵ８は、処理を終了する。
【００４６】
ＣＰＵ８が、正常に読み取ることができなかったと判断した場合（ステップＳ１３０３：ＮＯ）、ＣＰＵ８は、所定の振幅以上の区間において有効な受光信号が存在するか否かを判断する。具体的には、ＣＰＵ８は、図６及び図１０で示すように、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する（ステップＳ１３０４）。ＣＰＵ８は、計数されたデータ数に基づいて、図１０に示すように、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする（ステップＳ１３０５）。
【００４７】
ＣＰＵ８は、複数の所定の振幅以上の区間において、計数値が仮定値より大きい区間が存在するか否かを判断する（ステップＳ１３０６）。ＣＰＵ８が、計数値が仮定値より大きい区間が存在すると判断した場合（ステップＳ１３０６：ＹＥＳ）、ＣＰＵ８は、計数値が所定値より大きい区間が存在すると判断された区間の振幅が基準振幅より大きいか否かを判断する（ステップＳ１３０７）。
【００４８】
ＣＰＵ８が、基準振幅より大きいと判断した場合（ステップＳ１３０７：＞）、ＣＰＵ８は、ゲインを所定の規則で減少させる（ステップＳ１３０８）。ＣＰＵ８が、計数値が仮定値より大きい区間が存在しないと判断した場合（ステップＳ１３０６：ＮＯ）、又は基準振幅より小さいと判断した場合（ステップＳ１３０７：＜）、ＣＰＵ８は、ゲインを所定の規則で増大させる（ステップＳ１３０９）。ＣＰＵ８が、基準振幅と同一であると判断した場合（ステップＳ１３０７：＝）、ＣＰＵ８は、ゲインを変更することなく維持し（ステップＳ１３１０）、処理を終了する。
【００４９】
具体的には、図１２の例に示すように、「振幅‘２５７以上’でフラグ‘１’」で「ゲインを維持する」と判断する場合、図１０の例では、ゲインを維持することになる。また、ゲインが高く設定されている状態でスキャンして、図８のような小さな振幅になった場合には、「振幅‘９７以上’でフラグ‘０’」となるので、図１２の例に示すように、「ゲインを４倍」に設定することになる。
ＣＰＵ８が、ゲインを減少又は増大させた場合（ステップＳ１３０８、ステップＳ１３０９）、処理をステップＳ１３０１へ戻して上述した処理を繰り返す。
【００５０】
以上のように本実施の形態１では、一度バーコードをスキャンしてバーコード情報を正常に読み取ることができなかった場合、正反射等による極端に大きな振幅があっても、仮定値によって大きな振幅の範囲には有効な受光信号が存在しないと判断することができ、ゲインを大きな振幅に合わせて変更することなく、適切なゲインで再度スキャンすることができる。したがって、正反射が存在する等の背景環境に影響されることなく、バーコードを正確に読み取ることができる。
【００５１】
（実施の形態２）
本発明の実施の形態２に係るバーコード読取装置１０の構成は、図１に示す実施の形態１と同様である。図１４は、本発明の実施の形態２における制御装置７の概略構成を示すブロック図である。本実施の形態２において実施の形態１と同じ構成については、同一の符号を付することで詳細な説明は省略する。本実施の形態２における制御装置７のＣＰＵ８は、閾値設定手段３２及びゲイン判断手段４６を備えている。また、記憶手段１３には、読取対象となる受光信号を特定するため、異なる大きさの複数の閾値を記憶している。
【００５２】
ＣＰＵ８は、閾値設定手段３２によって、記憶手段１３に記憶された閾値の中から、現在設定されている閾値と異なる一つの閾値を順に読み出し、読取対象となる受光信号を特定するための閾値として設定する。ＣＰＵ８は、設定された閾値を用いてバーコード情報を正常に読み取ることができたか否かを判断する。ＣＰＵ８が、正常に読み取ることができなかったと判断し、ゲインを変更しない場合には、閾値設定手段３２によって、現在設定されている閾値と異なる一つの閾値を読み出して設定する。
【００５３】
図１５は、ＣＰＵ８が閾値設定手段３２によって設定する閾値について説明するための模式図である。図１５（ａ）は、スポット範囲によって読み取られたバーコードシンボルの線幅に対応する受光信号の波形の例示図である。図１５（ｂ）は、（ａ）の受光信号を微分した波形の例示図である。図１５（ａ）に示すように、スキャンされる出射光のスポットの位置１５０１では、線幅が狭いバーコードシンボルをスキャンしており、スポットの位置１５０２では、線幅が広いバーコードシンボルをスキャンしている。スポットの位置１５０１では、出射光のスポット範囲がバーコードシンボルと空白部分とに同時に当たるので、スポットの位置１５０２のように、スポット範囲がバーコードシンボルのみに当たる場合と比較すると、受光信号の振幅が小さくなる。このような受光信号を微分した波形では、図１５（ｂ）に示すように、線幅の狭いバーコードシンボルと空白部分との境界を示す極大値は、線幅の広いバーコードシンボルの場合と比較して低くなる。
【００５４】
２値化処理手段２３にて受光信号の振幅の選択基準として大きい振幅を読取対象とする閾値Ａに設定した場合、線幅の狭いバーコードシンボルが読取対象から除外される。図１５（ｂ）の例では閾値Ｂに設定した場合、線幅の狭いバーコードシンボルも読取対象となる。線幅の狭いバーコードシンボルのピークが除外されないように、閾値Ｂよりもさらに小さい振幅を読取対象とする閾値にしても良いが、バーコードシンボル以外のバーコード上の汚れまで読み取る可能性がある。図１５（ｂ）の例では閾値Ｂが適切であるが、適切な閾値は、バーコード上の複数のバーコードシンボルにおける相対的な線幅の違いによって変化する。
【００５５】
図１６は、本発明の実施の形態２に係るバーコード読取装置１０の制御装置７のＣＰＵ８の処理手順を示すフローチャートである。本実施の形態２に係るバーコード読取装置１０では、実施の形態１と同様に、バーコード読取装置１０が１つのバーコードを繰り返しスキャンする場合を含み、制御装置７は、外部で信号処理された受光信号を取得して以下の処理を実行する。すなわち、バーコード読取装置１０はバーコードをスキャンし、受光信号を受信し、制御装置７へ出力する。制御手段７のＣＰＵ８は、受光信号の入力を受け付け（ステップＳ１６０１）、受け付けた受光信号をパルス化してデコードする（ステップＳ１６０２）。
【００５６】
ＣＰＵ８は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する（ステップＳ１６０３）。ＣＰＵ８が、正常に読み取ることができたと判断した場合（ステップＳ１６０３：ＹＥＳ）、ＣＰＵ８は、処理を終了する。
【００５７】
ＣＰＵ８が、正常に読み取ることができなかったと判断した場合（ステップＳ１６０３：ＮＯ）、ＣＰＵ８は、所定の振幅以上の区間において有効な受光信号が存在するか否かを判断する。具体的には、ＣＰＵ８は、図６及び図１０で示すように、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する（ステップＳ１６０４）。ＣＰＵ８は、計数されたデータ数に基づいて、図１０に示すように、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする（ステップＳ１６０５）。
【００５８】
ＣＰＵ８は、複数の所定の振幅以上の区間において、計数値が仮定値より大きい区間が存在するか否かを判断する（ステップＳ１６０６）。ＣＰＵ８が、計数値が仮定値より大きい区間が存在すると判断した場合（ステップＳ１６０６：ＹＥＳ）、ＣＰＵ８は、計数値が仮定値より大きい区間が存在すると判断された所定の振幅以上の区間の振幅と基準振幅とを比較する（ステップＳ１６０７）。
【００５９】
ＣＰＵ８が、基準振幅より大きいと判断した場合（ステップＳ１６０７：＞）、ＣＰＵ８は、ゲインを所定の規則で減少させる（ステップＳ１６０８）。ＣＰＵ８が、計数値が仮定値より大きいと判断した区間が存在しないと判断した場合（ステップＳ１６０６：ＮＯ）、又は基準振幅より小さいと判断した場合（ステップＳ１６０７：＜）、ＣＰＵ８は、ゲインを所定の規則で増大させる（ステップＳ１６０９）。ＣＰＵ８が、ゲインを減少又は増大させた場合（ステップＳ１６０８、ステップＳ１６０９）、処理をステップＳ１６０１へ戻して上述した処理を繰り返す。
【００６０】
ＣＰＵ８が、基準振幅と同一であると判断した場合（ステップＳ１６０７：＝）、ＣＰＵ８は、ゲインを変更することなく維持する（ステップＳ１６１０）。ＣＰＵ８は、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、設定されている閾値を変更し（ステップＳ１６１１）、処理をステップＳ１６０１へ戻して上述した処理を繰り返す。なお、ステップＳ１６１１において、記憶されている異なる大きさの複数の閾値を読み出す順番は、現在設定されている閾値の大きさに近い大きさのものから設定変更してもよいし、ランダムまたは別に定められた読み出し順番に基づいて読み出されてもよい。
【００６１】
以上のように本実施の形態２では、実施の形態１においてバーコード情報を正常に読み取ることができなかったが基準振幅と同一であると判断した場合、ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として閾値を順次設定することによって、正反射が強い等の背景環境に影響されることなくゲインを維持しながら、適切な閾値を設定することができる。したがって、バーコードシンボルの線幅等、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることが可能となる。
【００６２】
上述した実施の形態１及び２は、本発明の趣旨を逸脱しない範囲で変更することができることは言うまでもない。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施の形態１に係るバーコード読取装置の構成を示すブロック図である。
【図２】本発明の実施の形態１における制御装置の概略構成を示すブロック図である。
【図３】受光信号の微分処理前後の波形の概略形状を示す模式図である。
【図４】異なる背景環境下でのバーコード読取状況を示す状態図である。
【図５】図４（ａ）の環境下での受光信号の波形の一例を示すグラフである。
【図６】図４（ｂ）の環境下での受光信号の波形の一例を示すグラフである。
【図７】図４（ｃ）の環境下での受光信号の波形の一例を示すグラフである。
【図８】図４（ｂ）の環境下でゲインを小さくした場合の受光信号の波形の一例を示すグラフである。
【図９】図５に示す受光信号についての情報一覧図である。
【図１０】図６に示す受光信号についての情報一覧図である。
【図１１】図７に示す受光信号についての情報一覧図である。
【図１２】所定の振幅以上の区間について判断されたフラグに基づいて決定されるゲインの例を示す一覧図である。
【図１３】本発明の実施の形態１に係るバーコード読取装置の制御装置のＣＰＵの処理手順を示すフローチャートである。
【図１４】本発明の実施の形態２における制御装置の概略構成を示すブロック図である。
【図１５】ＣＰＵが閾値設定手段によって設定する閾値について説明するための模式図である。
【図１６】本発明の実施の形態２に係るバーコード読取装置の制御装置のＣＰＵの処理手順を示すフローチャートである。
【符号の説明】
【００６４】
１  レーザ光源
２  ポリゴンミラー
３  受光回路
４  コンデンサ
５  増幅回路
６  ＡＤコンバータ
７  制御装置
８  ＣＰＵ
９  バーコード
１０  バーコード読取装置
１１  通信手段
１２  入出力インタフェース
１３  記憶手段
２０  信号処理手段
２１  微分処理手段
２２  フィルタ処理手段
２３  ２値化処理手段
３０  デコード手段
３１  読取判断手段
３２  閾値設定手段
４０  振幅制御手段
４１  計数手段
４２  積算手段
４３  判断手段
４４  ゲイン更新手段
４５  振幅判断手段
４６  ゲイン判断手段
【図１】
2009259059.tif 000003
【図２】
2009259059.tif 000004
【図３】
2009259059.tif 000005
【図４】
2009259059.tif 000006
【図５】
2009259059.tif 000007
【図６】
2009259059.tif 000008
【図７】
2009259059.tif 000009
【図８】
2009259059.tif 000010
【図９】
2009259059.tif 000011
【図１０】
2009259059.tif 000012
【図１１】
2009259059.tif 000013
【図１２】
2009259059.tif 000014
【図１３】
2009259059.tif 000015
【図１４】
2009259059.tif 000016
【図１５】
2009259059.tif 000017
【図１６】
2009259059.tif 000018