説明

バーコード読取装置及びバーコード読取方法

【課題】正反射等の背景環境に影響されることなくバーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供する。
【解決手段】バーコード読取装置において、バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段31と、正常に読み取ることができなかったと判断した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段41と、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段42と、前記区間において、計数値が所定の値より大きい区間が存在するか否かを判断する判断手段43と、該判断手段で判断された計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段44とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法に関する。
【背景技術】
【0002】
バーコード読取装置は、光源から出射した光をバーコード上に走査させ、バーコードからの反射光を受光した受光素子が受光信号として出力し、出力された受光信号に基づいてバーコードシンボルの配置を読み取ることによって、バーコードシンボルで表示されている情報を読み取る。バーコードシンボル上では黒色であることから光の吸収率が高く反射率が低くなり、バーコードシンボル間の空白部分では白色であることから光の吸収率が低く反射率が高くなる。したがって、受光信号の波形は、バーコードシンボルから空白部分へ走査する場合に立ち上がり、空白部分からバーコードシンボルへ走査する場合に立ち下がる。
【0003】
バーコードが、例えば金属製部品に貼付されている場合等には、バーコードの周囲に極めて強く反射(正反射)する物質が存在する環境下でバーコード読取を実行することになる。バーコード読取装置は、正反射による強い反射光を受光した場合、強い反射光による受光信号の波形の振幅が極めて大きくなり、バーコードからの受光信号の波形の振幅が相対的に小さく検出される。そのため、受光信号の波形の最大振幅を基準として振幅を調整すると、バーコードからの受光信号の波形が小さくなりすぎて読み取れないという問題がある。
【0004】
また、バーコードシンボルの線幅には広狭があり、バーコード上に走査させる光のスポットが、線幅の広いバーコードシンボルではバーコードシンボルのみに当たり、線幅の狭いバーコードシンボルではバーコードシンボルと空白部分との両方に同時に当たる。光のスポットがバーコードシンボルと空白部分との両方に同時に当たる場合、バーコードシンボルのみに当たる場合と比較して受光信号の振幅は小さくなる。したがって、線幅の広いバーコードシンボルからの受光信号の大きな振幅に合わせ、読取対象とする受光信号の振幅の選択基準が設定されると、線幅の狭いバーコードシンボルからの振幅の小さい受光信号が読取対象から除外され、バーコードシンボルの幅等、種々のバーコードを正確に読み取ることができないという問題もある。
【0005】
上述した反射光を検出してバーコードがない背景部分から読取動作を開始してしまう誤検出を防止するため、特許文献1では、受光信号を増幅する可変利得増幅手段と、該可変利得増幅手段の利得を変更設定する設定手段とを備えたバーコード読取装置が提案されている。特許文献1の可変利得増幅手段では、光照射領域にバーコードが存在しない状態で、利得(ゲイン)を順に低下(又は増加)させつつ、利得ごとの出力信号に基づいて背景の検出の有無を判定し、利得を、背景が検出されない最大の利得(又は背景が検出される最小の利得)から所定量だけ低い利得に設定する。
【0006】
これにより、背景が検出されない最大の利得(又は背景が検出される最小の利得)から所定量だけ低い利得、すなわちいずれの場合にも背景を安定的に検出しない利得のうち最大の利得に設定することができる。したがって、背景の反射率が高い場合であっても、背景の誤検出を防止することができ、バーコードを正確に検出することができる。
【0007】
また、幅の狭いバーコードシンボルからの受光信号を確実に読み取るため、特許文献2では、バーコードの形状特性に適合するように整形特性を変更して受光信号を整形する受光信号整形装置が提案されている。特許文献2では、受光信号に含まれるノイズ成分を除去するために複数のフィルタ特性を切り換えるフィルタ回路と、フィルタ回路からの出力信号を増幅するために複数の増幅特性を切り換えるゲイン回路と、ゲイン回路からの出力信号を検出するためにしきい値信号を発生するしきい値発生回路と、ゲイン回路からの出力信号としきい値信号とを比較してバーコードの有無を判断する比較回路とを備えており、しきい値発生回路では、出力信号の立ち上がり及び立ち下りから一定期間だけ受光信号に近づけたしきい値信号が発生される。したがって、検出信号近傍で検出感度を高くすることができ、幅の狭いバーコードシンボルであっても確実に検出することができる。
【0008】
【特許文献1】特開2003−76941号公報
【特許文献2】特開平6−231290号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかし、特許文献1に開示されているバーコード読取装置では、背景が検出されない最大(又は背景が検出される最小)の利得から所定量だけ低下した利得に設定するため、前提となる背景検出の有無の判定が確実なものでなければ、所定量だけ低下した利得に設定する意味がなくなる。また、背景が検出されるか否かを基準とし、バーコードと背景の環境との関係に配慮されず、背景検出の有無にのみ基づいて利得を設定するため、バーコード上で受光信号の小さい振幅が充分に増幅されない場合が発生する。したがって、正反射による背景の誤検出を防止することができたとしても、バーコードを正確に読み取るには十分でないおそれがあるという問題がある。
【0010】
また、特許文献2に開示されている受光信号整形装置では、フィルタ回路でのフィルタ特性及びゲイン回路での増幅特性の切換は、操作者のスイッチ操作によるため、フィルタ特性及び増幅特性を適切に設定することは困難である。したがって、ゲイン回路からの出力信号を利用するしきい値信号についても、適切に設定することが困難となる。また、仮にしきい値信号を適切に設定することができたとしても、しきい値を受光信号ごとに設定して検出感度を高くするため、バーコード上の汚れ等を信号として検出する可能性が高くなるという問題もある。
【0011】
本発明は斯かる事情に鑑みてなされたものであり、正反射が強い等の背景環境に影響されることなくバーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。また、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するために第1発明に係るバーコード読取装置は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子と、該受光素子の受光信号を所定のゲインにて増幅する増幅回路とを含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置において、バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、該読取判断手段で正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段と、該計数手段で計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段と、前記複数の所定の振幅以上の区間において、前記積算手段で積算された計数値が所定の値より大きい区間が存在するか否かを判断する判断手段と、該判断手段で判断された前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段とを備えることを特徴とする。
【0013】
また、第2発明に係るバーコード読取装置は、第1発明において、前記判断手段にて、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断する振幅判断手段を有し、前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記振幅判断手段で前記基準振幅より小さいと判断された場合、前記ゲインを増大させるようにしてあることを特徴とする。
【0014】
また、第3発明に係るバーコード読取装置は、第2発明において、前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定する閾値設定手段を備えることを特徴とする。
【0015】
次に、上記目的を達成するために第4発明に係るバーコード読取方法は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子と、該受光素子の受光信号を所定のゲインにて増幅する増幅回路とを含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、バーコード情報を正常に読み取ることができたか否かを判断し、正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数し、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とし、積算された計数値が所定の値より大きい区間が存在するか否かを判断し、前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新することを特徴とする。
【0016】
また、第5発明に係るバーコード読取方法は、第4発明において、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断し、前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記基準振幅より小さいと判断された場合、前記ゲインを増大させることを特徴とする。
【0017】
また、第6発明に係るバーコード読取方法は、第5発明において、前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定することを特徴とする。
【0018】
第1発明及び第4発明では、バーコード情報を正常に読み取ることができなかったと判断した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する。計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする。複数の所定の振幅以上の区間において、計数値が所定の値より大きい区間が存在するか否かを判断する。ここで、「所定の値」は、全データ数に対して正反射等による異常な振幅を有すると仮定されたデータ数である。これによって、各所定の振幅以上となる受光信号において、異常な振幅を有する受光信号を除いて有効な受光信号がある程度多く存在するか否かを判断することができる。したがって、いずれの所定の振幅以上の区間の受光信号が有効であるか判断することができる。そして、受光信号が有効である所定の振幅以上の区間(計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間)に対応するゲインに更新するので、異常に大きな振幅に合わせることなく、適切にゲインを設定することができる。したがって、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができる。
【0019】
第2発明及び第5発明では、計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きい場合にはゲインを減少させ、小さい場合にはゲインを増大させることにより、受光信号を一定の振幅に近づけることができ、より正確にバーコードを読み取ることが可能となる。
【0020】
第3発明及び第6発明では、前記基準振幅と同一であると判断された場合、前記ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定するので、適切な閾値に設定することができる。したがって、バーコード上に幅の広いバーコードシンボルの間に幅の狭いバーコードシンボルがあって、幅の広いバーコードシンボルと比較して、幅の狭いバーコードシンボルの受光信号の振幅が小さくなる場合等でも、適切に閾値を下げることにより幅の狭いバーコードシンボルも読み取ることができ、バーコードを正確に読み取ることが可能となる。なお、一の所定の閾値に設定した場合には、閾値を下げすぎることになって、バーコード上の汚れ等を信号として検出する可能性が高くなるが、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出して閾値を順次変更して設定することによって、適切な閾値を設定することができ、誤検出を防止することができる。したがって、バーコードシンボルの幅等、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることが可能となる。
【発明の効果】
【0021】
上記構成によれば、複数の所定の振幅以上の区間において、計数値が所定の値より大きい区間が存在するか否かを判断することによって、いずれの所定の振幅以上の区間の受光信号が有効であるか否かを判断することができ、受光信号が有効である所定の振幅以上の区間(計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間)に対応するゲインに更新するので、異常に大きな振幅に合わせることなく、適切にゲインを設定することができる。したがって、正反射が強い等の背景環境に影響されることなく、バーコードを正確に読み取ることができるバーコード読取装置及びバーコード読取方法を提供することが可能となる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態に係るバーコード読取装置について、図面に基づいて具体的に説明する。
【0023】
(実施の形態1)
図1は、本発明の実施の形態1に係るバーコード読取装置10の構成を示すブロック図である。バーコード読取装置10は、レーザ光を出射する発光素子であるレーザ光源1と、レーザ光をバーコード9上に走査するよう反射させるポリゴンミラー2と、バーコード9からの反射光を受光して電気信号(受光信号)に変換する受光回路3と、受光信号のうちの直流成分を除去するコンデンサ4と、受光信号を増幅する増幅回路5と、受光信号をデジタルの反射強度信号に変換するADコンバータ6と、レーザ光源1の出射タイミング、ポリゴンミラー2の回転速度、増幅回路5でのゲインの設定等を制御する制御装置7とを備える。
【0024】
本実施の形態1では、レーザ光源1にレーザダイオードを用いる。レーザ光源1は、ポリゴンミラー2の回転に同期させて点灯が制御され、レーザ光をバーコード9上に走査する。図1に示す正8角柱状のポリゴンミラー2では、1回転する間にレーザ光源1が8回点灯するようにオンオフ制御によって、バーコード9上に一定間隔でレーザ光が走査される。レーザ光源1の点灯及びポリゴンミラー2の回転は、制御装置7によって制御される。受光回路3は、フォトダイオード等の光電変換素子からなる受光素子を備え、バーコード9からの反射光を受光し、受光信号に変換する。
【0025】
図2は、本発明の実施の形態1における制御装置7の概略構成を示すブロック図である。制御装置7は、CPU8と、CPU8が外部装置との間で各種データを送受信する通信手段11と、CPU8がADコンバータ6等の各構成と各種信号を送受信する入出力インタフェース12と、CPU8による制御処理における各種情報を格納する記憶手段13とを備える。CPU8は、信号処理手段20、デコード手段30、読取判断手段31及び振幅制御手段40を備える。信号処理手段20は、入出力インタフェース12を介してADコンバータ6から入力された受光信号を微分処理する微分処理手段21と、微分処理された受光信号からノイズ成分を除去するフィルタ処理手段22と、フィルタ処理された受光信号を2値化処理する2値化処理手段23とを有する。
【0026】
デコード手段30は、信号処理手段20からの2値化された線幅データを復号し、読取判断手段31は、バーコード情報として正常に読み取ることができたか否かを判断する。本実施の形態1において、読取判断手段31では、例えば、バーコードの両端のバーコードシンボル(スタートキャラクタ及びストップキャラクタ)の外側に設けられた所定幅以上の空白部分(マージン)を利用して、バーコードを正常に読み取ることができたか否かを判断する。
【0027】
具体的には、マージンの後にスタートキャラクタを読み取ることによってバーコードのスタート位置を認識し、ストップキャラクタの後にマージンを読み取ることによってストップ位置を認識する。そして、スタート位置からストップ位置までの間のバーコードシンボルと空白部分との線幅の比率が妥当であればバーコードを正常に読み取ることができたと判断する。比率が妥当と判断されない場合としては、例えば、受光信号の振幅が過小又は過大であるため正常な信号波形として処理できず、線幅として認識できない場合が挙げられる。
【0028】
振幅制御手段40では、入出力インタフェース12を介してADコンバータ6からの受光信号を取得し、デコード手段30でのデコード結果によって受光信号の振幅を制御するため、計数手段41、積算手段42、判断手段43、ゲイン更新手段44及び振幅判断手段45を有する。計数手段41は、デコード手段30でバーコード情報を正常に読み取ることができなかった旨を示すデコード結果情報を取得した場合、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する。積算手段42は、計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする。
【0029】
判断手段43は、複数の所定の振幅以上の区間において、積算された計数値が「仮定値」より大きい区間が存在するか否かを判断する。「仮定値」は、全データ数中で異常な振幅を有すると仮定されたデータ数である。ゲイン更新手段44は、判断手段43で判断された計数値が仮定値(所定の値)より大きい区間の存否に基づいて、該区間に対応するゲインを決定し、決定したゲインを入出力インタフェース12を介して増幅回路5に設定する。振幅制御手段40の詳細については後述する。
【0030】
図3は、受光信号の微分処理前後の波形の概略形状を示す模式図である。図3(a)が微分処理前、図3(b)が微分処理後の波形を示している。図3(a)及び(b)において、縦軸は出力電圧値で示される振幅強度(言い換えれば、受光信号の大きさ)で、横軸はカウンタ値(データ数)である。図3における受光信号の波形は、バーコード上の一部分の反射光に対応し、微分処理前後の波形は概略形状であり、正確に微分処理された波形を示すものではない。図3(a)に示すように微分処理前の波形は、バーコードシンボルからバーコードシンボル間の空白部分への境界にて立ち上がり、バーコードシンボル間の空白部分の中央近傍にて極大値となる。そして、バーコードシンボル間の空白部分からバーコードシンボルへの境界にて立ち下がり、バーコードシンボルの中央近傍にて極小値となる波形になっている。図3(b)に示すように微分処理後の波形は、バーコードシンボルからバーコードシンボル間の空白部分への境界にて極大値となり、バーコードシンボル間の空白部分からバーコードシンボルへの境界にて極小値となる波形となっている。微分処理手段21で、受信した受光信号を微分処理することによって、バーコードシンボルとバーコードシンボル間の空白部分との境界にて極大値及び極小値となるので、バーコードシンボルの線幅及び間隔を測定することができる。
【0031】
図4は、異なる背景環境下でのバーコード読取状況を示す状態図である。図4(a)は通常環境、図4(b)はスキャンエリア15の一箇所に金属16が存在する環境(正反射環境)、図4(c)はスキャンエリア15の複数箇所に金属16が存在する環境(複数正反射環境)を、それぞれ示している。図5〜図7は、各々図4(a)〜(c)の環境下での受光信号の波形の一例を示すグラフである。図8は、図4(b)の環境下でゲインを小さくした場合の受光信号の波形の一例を示すグラフである。
【0032】
図6の受光信号には、カウンタ値‘2135’付近に金属による正反射に対応する極端に振幅の大きい異常な振幅が存在する。この場合、通常のゲイン制御では、全ての受光信号を処理可能な振幅範囲で受信するため、大きな振幅の受光信号に合わせ、振幅を小さくするように制御される。ゲインを小さくして再スキャンによってバーコードを読み取ると、図8の例のようにバーコード上のバーコードシンボルからの正常な反射光による受光信号の振幅が小さくなりすぎる。したがって、正常な受光信号を正確に読み取ることが困難となる。
【0033】
本実施の形態1における振幅制御手段40での受光信号の振幅制御について、図9〜図11を参照して説明する。図9〜図11は、各々図5〜7に示す受光信号についての情報一覧図である。図9(a)、図10(a)及び図11(a)は、受光信号の振幅をA〜Iに区切った9つの区間にそれぞれ属する受光信号のデータ数を示す。図9(b)、図10(b)及び図11(b)は、複数の所定の振幅以上の区間を含む範囲において有効なデータが存在するか否かを判断するための情報一覧図である。
【0034】
図9(a)、図10(a)及び図11(a)において、各「区間」の振幅の「下限値」及び「上限値」、各「区間」に属する「データ数」が示されている。「区間幅」は「下限値」から「上限値」までの間であり、各「区間」の幅を示す。各区間A〜Iの分布状態は図3に示す。図9(b)、図10(b)及び図11(b)において、「振幅」は複数の所定の振幅以上の区間を含む範囲に分けられ、「振幅」(所定の振幅以上の区間を含む範囲)に「含まれる区間」が示されている。「計数値」は「含まれる区間」に含まれる各「区間」の「データ数」を積算した数値であり、各所定の振幅以上の区間を含む範囲に存在するデータ数に相当する。「仮定値」は、全データ数に対して正反射等による異常な振幅を有すると仮定したデータ数であり、バーコードの読取状況に応じて任意に設定可能である。「仮定値」は、例えば全データ数の5%程度に設定することができる。
【0035】
「引算値」は「計数値」から「仮定値」を引いた数値である。「引算値」がマイナスであれば「フラグ」を‘0’に設定し、プラスであれば「フラグ」を‘1’に設定する。異常な振幅を有すると仮定したデータ数である「仮定値」よりも少ない「計数値」である所定の振幅以上の区間には、有効な受光信号はないか、あっても極めて少ないと考えられる。したがって、「仮定値」よりも「計数値」が少なくて「引算値」がマイナスになり、「フラグ」に‘0’が設定された「振幅」(所定の振幅以上の区間)に属する受光信号は、有効な振幅ではないと判断されている。「フラグ」が‘1’である所定の振幅以上の区間を含む範囲に属する受光信号は、有効な振幅であると判断されている。
【0036】
「データ数」は計数手段41が算出し、「計数値」は積算手段42が積算する。判断手段43は、「計数値」から「仮定値」を引き算し、いずれの所定の振幅以上の区間が、いずれの「フラグ」となるか判断し、判断結果を記憶手段13に記憶する。ゲイン更新手段44は、記憶された判断結果から、「フラグ」に‘1’を設定すると判断(計数値が所定の値より大きい区間が存在すると判断)された所定の振幅以上の区間に対応するゲインを決定し、増幅回路5に決定されたゲインを設定する。
【0037】
図12は、所定の振幅以上の区間について判断されたフラグに基づいて決定されるゲインの例を示す一覧図である。図12では図9(b)等に示す「フラグ」に応じて設定された「設定条件」に基づいてゲインが決定される。図12において「設定条件」の欄に‘所定の振幅以上が1’と表示されている場合、当該所定の振幅より大きい振幅の区間でフラグが‘0’に設定され、かつ、当該所定の振幅より小さい振幅の区間でフラグが‘1’に設定されている場合を示している。例えば、‘641以上が1’と表示されている場合、当該所定の振幅(641)より大きい振幅(1024)の区間で‘0’に設定され、かつ、当該所定の振幅(641)より小さい振幅(257、97)の区間で‘1’に設定されている場合を示している。図12の例では、振幅1024以上の区間でフラグが‘1’に設定される場合、大きな振幅の受光信号が有効と判断されているので、振幅を小さくするようにゲインは1/4倍に設定する。一方、振幅97以上の区間でフラグが‘1’に設定される場合、大きな振幅の受光信号は有効でなく小さな振幅の受光信号が有効と判断されているので、増幅するようにゲインは2倍に設定する。振幅97以上の区間でフラグが‘0’に設定される場合、多くのデータが最小の所定の振幅‘97’より小さい振幅である場合が想定され、大幅に増幅するようにゲインは4倍に設定される。振幅257以上の区間でフラグが‘1’に設定される場合、適度な振幅の受光信号が有効と判断されているので、振幅を変更する必要はないのでゲインは変更しない。以上のようなゲイン設定の判断は、振幅判断手段45において実行される。
【0038】
図12の例のように、受光信号の振幅の判断基準となる基準振幅‘257’より大きい場合にはゲインを減少させ、小さい場合にはゲインを増大させることによって、受光信号を一定の振幅に近づけることができ、バーコードをより正確に読み取ることができる。なお、基準振幅は、適正な振幅の範囲とするために定めた振幅値であり、受光信号の振幅に対応する任意の振幅値に設定することができる。基準振幅は、図12の例では、受光信号の受光可能な最大振幅‘1024’の1/4程度に設定している。
【0039】
次に、「仮定値」の設定とゲインの決定方法について、具体的に図4〜7及び図9〜12を参照して説明する。「仮定値」は、図4(b)、図6及び図10の例のような単一の正反射が存在する環境下では、全データ数‘8192’に対して‘416’に設定し、図4(c)、図7及び図11の例のような複数の正反射が存在する環境下では、全データ数‘8192’に対して‘2048’に設定する。また、図4(a)、図5及び図9の例のような通常環境下では、全データ数‘8192’に対して、正反射が存在する環境下と同じ‘416’に設定する。
【0040】
図9に示すように、通常環境下では正反射による振幅がないため、A、B、H及びI「区間」における「データ数」は‘0’である。したがって、A及びI「区間」を含む‘1024以上’並びにA、B、H及びI「区間」を含む‘641以上’の「振幅」(所定の振幅以上の区間)における「計数値」も‘0’となっている。「振幅」‘1024以上’及び‘641以上’の各「計数値」から「仮定値」‘416’を引くと、いずれの「引算値」も‘−416’となるため、「フラグ」が‘0’に設定される。C〜G「区間」にはバーコードから正常に読み取った受光信号が存在するため「データ数」が多く、‘257以上’及び‘97以上’の「振幅」における「計数値」も多くなる。これらの「計数値」‘621’及び‘1866’からそれぞれ「仮定値」‘416’を引くとプラスの「引算値」‘205’及び‘1450’となり、「フラグ」が‘1’に設定される。「振幅」‘257以上’で「フラグ」が‘1’に設定されているので、図12に示すようにゲインを変更しないことになる。
【0041】
図10に示すように、単一の正反射が存在する環境下では正反射による過大な振幅が存在するため、A、B、H及びI「区間」に「データ数」が存在するが、他の区間のデータ数と比較して少数である。したがって、上記通常環境下と同様、「振幅」‘1024以上’及び‘641以上’の各「計数値」から「仮定値」‘416’を引くと、いずれの「引算値」もマイナスとなり、「フラグ」が‘0’に設定される。「振幅」‘257以上’及び‘97以上’では、プラスの「引算値」‘927’及び‘2989’となり、「フラグ」が‘1’に設定されている。上記通常環境下と同様、「振幅」‘257以上’で「フラグ」が‘1’に設定されているので、ゲインは変更されない。すなわち、単一の正反射が存在する環境下で、正反射による極端に振幅の大きい受光信号を有効でない信号と判断することによって、有効でない大きな振幅に合わせてゲインを小さくすることなく、通常環境下と同様、正常な受光信号の振幅に合わせてゲインを変更しないようにすることができる。
【0042】
図11に示すように、複数の正反射が存在する環境下では複数の正反射による過大な振幅が存在するため、A、B、H及びI「区間」に「データ数」が多く存在する。したがって、A及びI「区間」を含む‘1024以上’並びにA、B、H及びI「区間」を含む‘641以上’の「振幅」(所定の振幅以上の区間)における「計数値」も‘922’及び‘2023’と多くなっている。「振幅」‘1024以上’及び‘641以上’の各「計数値」から「仮定値」‘2048’を引くと、「引算値」‘−1126’及び‘−25’となるため、「フラグ」を‘0’に設定する。「振幅」‘257以上’及び‘97以上’では、プラスの「引算値」‘2159’及び‘4520’となり、「フラグ」を‘1’に設定する。上記通常環境下及び単一の正反射が存在する環境下と同様、「振幅」‘257以上’で「フラグ」が‘1’に設定されているので、ゲインは変更されない。すなわち、複数の正反射が存在する環境下では、単一の正反射が存在する環境下と同様に正反射が存在するが複数存在するため、「仮定値」を大きくすることによって、複数の正反射による極端に振幅の大きい受光信号を有効でないと判断することができる。したがって、複数の正反射が存在しても、通常環境下と同様、正常な受光信号の振幅に合わせてゲインを変更しないようにすることができる。
【0043】
なお、ゲインが変更される場合としては、極端に振幅が大きい異常な受光信号を除き、受光信号全体の振幅が小さい、又は大きい場合が該当する。
【0044】
図13は、本発明の実施の形態1に係るバーコード読取装置10の制御装置7のCPU8の処理手順を示すフローチャートである。図13は、バーコード読取装置10が1つのバーコードを繰り返しスキャンする場合を含み、制御装置7は、外部で信号処理された受光信号を取得して以下の処理を実行する。すなわち、バーコード読取装置10がバーコードをスキャンし、受光信号を受信し、制御装置7へ出力する。制御装置7のCPU8は、受光信号の入力を受け付け(ステップS1301)、受け付けた受光信号をパルス化してデコードする(ステップS1302)。
【0045】
CPU8は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否か判断する(ステップS1303)。CPU8が、正常に読み取ることができたと判断した場合(ステップS1303:YES)、CPU8は、処理を終了する。
【0046】
CPU8が、正常に読み取ることができなかったと判断した場合(ステップS1303:NO)、CPU8は、所定の振幅以上の区間において有効な受光信号が存在するか否かを判断する。具体的には、CPU8は、図6及び図10で示すように、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する(ステップS1304)。CPU8は、計数されたデータ数に基づいて、図10に示すように、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする(ステップS1305)。
【0047】
CPU8は、複数の所定の振幅以上の区間において、計数値が仮定値より大きい区間が存在するか否かを判断する(ステップS1306)。CPU8が、計数値が仮定値より大きい区間が存在すると判断した場合(ステップS1306:YES)、CPU8は、計数値が所定値より大きい区間が存在すると判断された区間の振幅が基準振幅より大きいか否かを判断する(ステップS1307)。
【0048】
CPU8が、基準振幅より大きいと判断した場合(ステップS1307:>)、CPU8は、ゲインを所定の規則で減少させる(ステップS1308)。CPU8が、計数値が仮定値より大きい区間が存在しないと判断した場合(ステップS1306:NO)、又は基準振幅より小さいと判断した場合(ステップS1307:<)、CPU8は、ゲインを所定の規則で増大させる(ステップS1309)。CPU8が、基準振幅と同一であると判断した場合(ステップS1307:=)、CPU8は、ゲインを変更することなく維持し(ステップS1310)、処理を終了する。
【0049】
具体的には、図12の例に示すように、「振幅‘257以上’でフラグ‘1’」で「ゲインを維持する」と判断する場合、図10の例では、ゲインを維持することになる。また、ゲインが高く設定されている状態でスキャンして、図8のような小さな振幅になった場合には、「振幅‘97以上’でフラグ‘0’」となるので、図12の例に示すように、「ゲインを4倍」に設定することになる。
CPU8が、ゲインを減少又は増大させた場合(ステップS1308、ステップS1309)、処理をステップS1301へ戻して上述した処理を繰り返す。
【0050】
以上のように本実施の形態1では、一度バーコードをスキャンしてバーコード情報を正常に読み取ることができなかった場合、正反射等による極端に大きな振幅があっても、仮定値によって大きな振幅の範囲には有効な受光信号が存在しないと判断することができ、ゲインを大きな振幅に合わせて変更することなく、適切なゲインで再度スキャンすることができる。したがって、正反射が存在する等の背景環境に影響されることなく、バーコードを正確に読み取ることができる。
【0051】
(実施の形態2)
本発明の実施の形態2に係るバーコード読取装置10の構成は、図1に示す実施の形態1と同様である。図14は、本発明の実施の形態2における制御装置7の概略構成を示すブロック図である。本実施の形態2において実施の形態1と同じ構成については、同一の符号を付することで詳細な説明は省略する。本実施の形態2における制御装置7のCPU8は、閾値設定手段32及びゲイン判断手段46を備えている。また、記憶手段13には、読取対象となる受光信号を特定するため、異なる大きさの複数の閾値を記憶している。
【0052】
CPU8は、閾値設定手段32によって、記憶手段13に記憶された閾値の中から、現在設定されている閾値と異なる一つの閾値を順に読み出し、読取対象となる受光信号を特定するための閾値として設定する。CPU8は、設定された閾値を用いてバーコード情報を正常に読み取ることができたか否かを判断する。CPU8が、正常に読み取ることができなかったと判断し、ゲインを変更しない場合には、閾値設定手段32によって、現在設定されている閾値と異なる一つの閾値を読み出して設定する。
【0053】
図15は、CPU8が閾値設定手段32によって設定する閾値について説明するための模式図である。図15(a)は、スポット範囲によって読み取られたバーコードシンボルの線幅に対応する受光信号の波形の例示図である。図15(b)は、(a)の受光信号を微分した波形の例示図である。図15(a)に示すように、スキャンされる出射光のスポットの位置1501では、線幅が狭いバーコードシンボルをスキャンしており、スポットの位置1502では、線幅が広いバーコードシンボルをスキャンしている。スポットの位置1501では、出射光のスポット範囲がバーコードシンボルと空白部分とに同時に当たるので、スポットの位置1502のように、スポット範囲がバーコードシンボルのみに当たる場合と比較すると、受光信号の振幅が小さくなる。このような受光信号を微分した波形では、図15(b)に示すように、線幅の狭いバーコードシンボルと空白部分との境界を示す極大値は、線幅の広いバーコードシンボルの場合と比較して低くなる。
【0054】
2値化処理手段23にて受光信号の振幅の選択基準として大きい振幅を読取対象とする閾値Aに設定した場合、線幅の狭いバーコードシンボルが読取対象から除外される。図15(b)の例では閾値Bに設定した場合、線幅の狭いバーコードシンボルも読取対象となる。線幅の狭いバーコードシンボルのピークが除外されないように、閾値Bよりもさらに小さい振幅を読取対象とする閾値にしても良いが、バーコードシンボル以外のバーコード上の汚れまで読み取る可能性がある。図15(b)の例では閾値Bが適切であるが、適切な閾値は、バーコード上の複数のバーコードシンボルにおける相対的な線幅の違いによって変化する。
【0055】
図16は、本発明の実施の形態2に係るバーコード読取装置10の制御装置7のCPU8の処理手順を示すフローチャートである。本実施の形態2に係るバーコード読取装置10では、実施の形態1と同様に、バーコード読取装置10が1つのバーコードを繰り返しスキャンする場合を含み、制御装置7は、外部で信号処理された受光信号を取得して以下の処理を実行する。すなわち、バーコード読取装置10はバーコードをスキャンし、受光信号を受信し、制御装置7へ出力する。制御手段7のCPU8は、受光信号の入力を受け付け(ステップS1601)、受け付けた受光信号をパルス化してデコードする(ステップS1602)。
【0056】
CPU8は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する(ステップS1603)。CPU8が、正常に読み取ることができたと判断した場合(ステップS1603:YES)、CPU8は、処理を終了する。
【0057】
CPU8が、正常に読み取ることができなかったと判断した場合(ステップS1603:NO)、CPU8は、所定の振幅以上の区間において有効な受光信号が存在するか否かを判断する。具体的には、CPU8は、図6及び図10で示すように、受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する(ステップS1604)。CPU8は、計数されたデータ数に基づいて、図10に示すように、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする(ステップS1605)。
【0058】
CPU8は、複数の所定の振幅以上の区間において、計数値が仮定値より大きい区間が存在するか否かを判断する(ステップS1606)。CPU8が、計数値が仮定値より大きい区間が存在すると判断した場合(ステップS1606:YES)、CPU8は、計数値が仮定値より大きい区間が存在すると判断された所定の振幅以上の区間の振幅と基準振幅とを比較する(ステップS1607)。
【0059】
CPU8が、基準振幅より大きいと判断した場合(ステップS1607:>)、CPU8は、ゲインを所定の規則で減少させる(ステップS1608)。CPU8が、計数値が仮定値より大きいと判断した区間が存在しないと判断した場合(ステップS1606:NO)、又は基準振幅より小さいと判断した場合(ステップS1607:<)、CPU8は、ゲインを所定の規則で増大させる(ステップS1609)。CPU8が、ゲインを減少又は増大させた場合(ステップS1608、ステップS1609)、処理をステップS1601へ戻して上述した処理を繰り返す。
【0060】
CPU8が、基準振幅と同一であると判断した場合(ステップS1607:=)、CPU8は、ゲインを変更することなく維持する(ステップS1610)。CPU8は、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、設定されている閾値を変更し(ステップS1611)、処理をステップS1601へ戻して上述した処理を繰り返す。なお、ステップS1611において、記憶されている異なる大きさの複数の閾値を読み出す順番は、現在設定されている閾値の大きさに近い大きさのものから設定変更してもよいし、ランダムまたは別に定められた読み出し順番に基づいて読み出されてもよい。
【0061】
以上のように本実施の形態2では、実施の形態1においてバーコード情報を正常に読み取ることができなかったが基準振幅と同一であると判断した場合、ゲインを維持し、記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として閾値を順次設定することによって、正反射が強い等の背景環境に影響されることなくゲインを維持しながら、適切な閾値を設定することができる。したがって、バーコードシンボルの線幅等、バーコードの形状特性によることなく、種々のバーコードについて誤検出を防止して正確に読み取ることが可能となる。
【0062】
上述した実施の形態1及び2は、本発明の趣旨を逸脱しない範囲で変更することができることは言うまでもない。
【図面の簡単な説明】
【0063】
【図1】本発明の実施の形態1に係るバーコード読取装置の構成を示すブロック図である。
【図2】本発明の実施の形態1における制御装置の概略構成を示すブロック図である。
【図3】受光信号の微分処理前後の波形の概略形状を示す模式図である。
【図4】異なる背景環境下でのバーコード読取状況を示す状態図である。
【図5】図4(a)の環境下での受光信号の波形の一例を示すグラフである。
【図6】図4(b)の環境下での受光信号の波形の一例を示すグラフである。
【図7】図4(c)の環境下での受光信号の波形の一例を示すグラフである。
【図8】図4(b)の環境下でゲインを小さくした場合の受光信号の波形の一例を示すグラフである。
【図9】図5に示す受光信号についての情報一覧図である。
【図10】図6に示す受光信号についての情報一覧図である。
【図11】図7に示す受光信号についての情報一覧図である。
【図12】所定の振幅以上の区間について判断されたフラグに基づいて決定されるゲインの例を示す一覧図である。
【図13】本発明の実施の形態1に係るバーコード読取装置の制御装置のCPUの処理手順を示すフローチャートである。
【図14】本発明の実施の形態2における制御装置の概略構成を示すブロック図である。
【図15】CPUが閾値設定手段によって設定する閾値について説明するための模式図である。
【図16】本発明の実施の形態2に係るバーコード読取装置の制御装置のCPUの処理手順を示すフローチャートである。
【符号の説明】
【0064】
1 レーザ光源
2 ポリゴンミラー
3 受光回路
4 コンデンサ
5 増幅回路
6 ADコンバータ
7 制御装置
8 CPU
9 バーコード
10 バーコード読取装置
11 通信手段
12 入出力インタフェース
13 記憶手段
20 信号処理手段
21 微分処理手段
22 フィルタ処理手段
23 2値化処理手段
30 デコード手段
31 読取判断手段
32 閾値設定手段
40 振幅制御手段
41 計数手段
42 積算手段
43 判断手段
44 ゲイン更新手段
45 振幅判断手段
46 ゲイン判断手段

【特許請求の範囲】
【請求項1】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と、
該受光素子の受光信号を所定のゲインにて増幅する増幅回路と
を含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置において、
バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、
該読取判断手段で正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数する計数手段と、
該計数手段で計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とする積算手段と、
前記複数の所定の振幅以上の区間において、前記積算手段で積算された計数値が所定の値より大きい区間が存在するか否かを判断する判断手段と、
該判断手段で判断された前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新するゲイン更新手段と
を備えることを特徴とするバーコード読取装置。
【請求項2】
前記判断手段にて、前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断する振幅判断手段を有し、
前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記振幅判断手段で前記基準振幅より小さいと判断された場合、前記ゲインを増大させるようにしてあることを特徴とする請求項1記載のバーコード読取装置。
【請求項3】
前記ゲイン更新手段は、前記振幅判断手段で前記基準振幅と同一であると判断された場合、前記ゲインを維持し、
記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定する閾値設定手段を備えることを特徴とする請求項2記載のバーコード読取装置。
【請求項4】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と、
該受光素子の受光信号を所定のゲインにて増幅する増幅回路と
を含み、増幅された受光信号に基づいてバーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、
バーコード情報を正常に読み取ることができたか否かを判断し、
正常に読み取ることができなかったと判断した場合、前記受光素子の受光信号の振幅を所定の間隔で区切った複数の区間の各区間に属する受光信号のデータ数を計数し、
計数されたデータ数に基づいて、複数の所定の振幅以上の区間に属するデータ数を順次積算して計数値とし、
積算された計数値が所定の値より大きい区間が存在するか否かを判断し、
前記計数値が所定の値より大きい区間の存否に基づいて、該区間に対応するゲインに更新することを特徴とするバーコード読取方法。
【請求項5】
前記計数値が所定の値より大きい区間が存在すると判断された所定の振幅以上の区間において、該所定の振幅が、受光信号の振幅の判断基準となる基準振幅より大きいか否かを判断し、
前記基準振幅より大きいと判断された場合、前記ゲインを減少させ、前記基準振幅より小さいと判断された場合、前記ゲインを増大させることを特徴とする請求項4記載のバーコード読取方法。
【請求項6】
前記基準振幅と同一であると判断された場合、前記ゲインを維持し、
記憶されている異なる大きさの複数の閾値の中から、現在設定されている閾値と異なる一つの閾値を読み出し、読取対象となる受光信号の選択基準として前記閾値を順次設定することを特徴とする請求項5記載のバーコード読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2009−259059(P2009−259059A)
【公開日】平成21年11月5日(2009.11.5)
【国際特許分類】
【出願番号】特願2008−108393(P2008−108393)
【出願日】平成20年4月18日(2008.4.18)
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】