JP2009295113A - バーコード読み取り装置及びその読み取りデータ処理方法 - Google Patents
バーコード読み取り装置及びその読み取りデータ処理方法 Download PDFInfo
- Publication number
- JP2009295113A JP2009295113A JP2008150832A JP2008150832A JP2009295113A JP 2009295113 A JP2009295113 A JP 2009295113A JP 2008150832 A JP2008150832 A JP 2008150832A JP 2008150832 A JP2008150832 A JP 2008150832A JP 2009295113 A JP2009295113 A JP 2009295113A
- Authority
- JP
- Japan
- Prior art keywords
- value
- extreme
- extreme value
- interval
- maximum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】従来のバーコード読み取り装置における読み取り信号に良否を判定する閾値は基準電圧から画一的に正負側に同じ閾値を設定するため、読み取り環境の影響によりノイズとバーコード信号の誤判定が生じて読み取り性能が大きく影響されている。
【解決手段】バーコード読み取り装置は、第1閾値設定部で設定した従来と同様な第1の閾値による有効性の判断に加えて、第2極値検出部により有効となった隣り合う極値間の間隔に存在する極値をさらに検出して、第2閾値設定部がこれらの極値から新たな有効性の判断する第2の閾値を設定する。この第2の閾値により、バーコード記号から読み取られた極値に対して有効性を再度判断することにより、ノイズの影響を排除しつつ、真のバーコードのエッジのみを極値として検出するバーコード読み取り装置である。
【選択図】 図1
【解決手段】バーコード読み取り装置は、第1閾値設定部で設定した従来と同様な第1の閾値による有効性の判断に加えて、第2極値検出部により有効となった隣り合う極値間の間隔に存在する極値をさらに検出して、第2閾値設定部がこれらの極値から新たな有効性の判断する第2の閾値を設定する。この第2の閾値により、バーコード記号から読み取られた極値に対して有効性を再度判断することにより、ノイズの影響を排除しつつ、真のバーコードのエッジのみを極値として検出するバーコード読み取り装置である。
【選択図】 図1
Description
本発明は、バーコード読み取り装置に読み取られたデータのデコード処理に関する。
一般に周知なバーコード記号は、物品の管理情報等を太さの異なる複数のバーとスペースの交互配列により表記し、物品の外装に直接印刷又は、ラベル等に印刷されて物品等に貼り付けられて、幅広く活用されている。バーコード記号は、商品販売、物流、生産工程等における情報を持っているため、その情報を正確に読み取ることが重要である。
図11に示す従来のバーコード読み取り装置100の構成例を参照して、受光した反射光からバーコード記号に付与された情報の読み取りについて説明する。
このバーコード読み取り装置100は、光源101から発生させた出射光102aを反射ミラー103によって駆動制御部114により揺動される走査ミラー104に導き、出射光102aがバーコード記号105に対して配列方向に走査するように照射される。
このバーコード読み取り装置100は、光源101から発生させた出射光102aを反射ミラー103によって駆動制御部114により揺動される走査ミラー104に導き、出射光102aがバーコード記号105に対して配列方向に走査するように照射される。
バーコード記号105からの反射光102bは、戻り光として走査ミラー104に入射して集光ミラーで集光されて、センサ106に導かれる。センサ106の受光面において、光電変換によりバーコード記号105に付与された情報を含む電流信号が生成される。この電流信号は、信号変換部107により電圧信号に変換され、さらに、微分処理部108によって微分信号に変換される。この微分信号は、ピークホールド/ボトムホールド検出部109に入力する。ピークホールド/ボトムホールド検出部109では、入力された微分信号の極大値及び極小値からなる極値を検出する。
そして、これらの極大値及び極小値は、閾値設定部110に入力される。閾値設定部110では、図12(a)乃至(c)に示すように、ピークホールド/ボトムホールド検出部109からの出力である極大値及び極小値を所定の比率により分圧し、微分信号のノイズと信号を切り分ける即ち、有効性を判断するための閾値となる閾値信号を出力する。ここで、分圧による閾値は、極大値又は小値の30%程度に設定されている。
そして比較部111によって、検出された極値と閾値信号とを比較し、閾値信号以上のレベルを持つ極値を有効な信号とし、バーコード幅データ生成部113において、その極値に基づきバーコード信号が生成される。このバーコード信号に対してデコード処理を行い、そのバーコード信号から情報が取れ出せなかった場合には、再度、後続して読み取った電流信号から検出された極値を検出して、閾値による有効性の検出を行っている。
特開2005−38369号公報
前述したように、バーコード記号105で反射した戻り光102bから情報を読み取る場合、その戻り光102bから生成された電圧信号の極大値及び極小値を検出し、情報の有効性を判断するための閾値信号と比較している。このため、閾値信号の設定状態により読み取り精度が決定されることとなる。
従来の閾値信号の決定は、得られた電圧信号における随時変動する極大値及び極小値に対して、基準電圧から正負側のそれぞれに画一的に閾値を設定しているため、基準電圧に対して閾値電圧を高く、即ち、判断レベルを高く設定すると、ノイズが排除される反面、正しいバーコード信号を構成する極大値及び極小値も排除される可能性がある。反対に閾値を低く、即ち、設定する判断レベルを低くすると、ノイズも有効なバーコード信号を構成する極大値及び極小値として判断されてしまい、読み取り性能が悪くなる。
そこで本発明は、バーコード記号で反射した戻り光から得られたバーコード信号のピーク値及びボトム値による極値の大きさに応じた閾値の設定を複数回繰り返し行い、好適する閾値により有効性判断を行い、ノイズの影響を抑制しつつ高い読み取り精度を有するバーコード読み取り装置及びその読み取りデータ処理方法を提供することを目的とする。
本発明は、上記目的を達成するために、光源と、前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、前記バーコード記号で反射した反射光を集光する集光手段と、前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段とを備えたバーコード読み取り装置であって、検出された極値を所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断手段と、抽出された複数の有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測手段と、極値間隔計測手段において計測された複数の極値間隔の中から最大値を検出する最大極値間隔検出手段と、最大極値間隔内に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値と判断する第2極値有効性判断手段と、を有し、前記第1極値有効性判断手段及び前記第2極値有効性判断手段によって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードするバーコード読み取り装置を提供する。
さらに、光源から出射された光束を走査させて、バーコード記号を反復して横切るように照射させて、前記バーコード記号で反射し集光された戻り光を受光して光電変換によりバーコード信号を生成する信号生成ステップと、前記バーコード信号に基づく微分信号から極値を検出する極値検出ステップと、検出された前記極値に対して所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断ステップと、抽出された複数の有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測ステップと、計測された複数の前記極値間隔の中から最大値を検出する最大極値間隔検出ステップと、最大極値間隔内に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値と判断する第2極値有効性判断ステップと、を有し、前記第1極値有効性判断ステップ及び前記第2極値有効性判断ステップによって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードすることを特徴とするバーコード読み取り方法を提供する。
本発明によれば、バーコード記号で反射した戻り光から得られたバーコード信号のピーク値及びボトム値による極値の大きさに応じた閾値の設定を複数回繰り返し行い、好適する閾値により有効性判断を行い、ノイズの影響を抑制しつつ高い読み取り精度を有するバーコード読み取り装置及びその読み取りデータ処理方法を提供することができる。
以下、図面を参照して本発明の実施形態について詳細に説明する。
図1は、本発明の第1の実施形態に係るバーコード読み取り装置の構成を示す模式図である。
このバーコード読み取り装置1は、大別すると、例えばレーザ光からなる光束を出射する光源部2と、レーザ光を走査しつつバーコード記号3に向かって照射する走査ミラー部4と、入射したバーコード記号3で反射した反射光(戻り光)を受光して光電変換により検出信号(バーコード信号)を生成する受光部5と、得られた検出信号に対して、信号処理を施し極値を検出する信号検出部6と、検出信号に基づく閾値信号を生成して検出信号の有効性を判断する閾値設定判断部7と、有効と判断された検出信号に対してバーコード幅データを生成し、デコード処理を行ーコード幅データ生成部8と、バーコード幅データから生成したバーコード情報(物品の管理情報等)を出力するデータ出力部9と、検出された極値及び間隔と後述する検出時のインデックス情報を時系列的に記憶するメモリ10と、装置全体を制御する制御部11と、で構成される。
図1は、本発明の第1の実施形態に係るバーコード読み取り装置の構成を示す模式図である。
このバーコード読み取り装置1は、大別すると、例えばレーザ光からなる光束を出射する光源部2と、レーザ光を走査しつつバーコード記号3に向かって照射する走査ミラー部4と、入射したバーコード記号3で反射した反射光(戻り光)を受光して光電変換により検出信号(バーコード信号)を生成する受光部5と、得られた検出信号に対して、信号処理を施し極値を検出する信号検出部6と、検出信号に基づく閾値信号を生成して検出信号の有効性を判断する閾値設定判断部7と、有効と判断された検出信号に対してバーコード幅データを生成し、デコード処理を行ーコード幅データ生成部8と、バーコード幅データから生成したバーコード情報(物品の管理情報等)を出力するデータ出力部9と、検出された極値及び間隔と後述する検出時のインデックス情報を時系列的に記憶するメモリ10と、装置全体を制御する制御部11と、で構成される。
光源部2は、レーザダイオードからなる光源21と、光源21を駆動制御する光源制御部22と、走査ミラー部4にレーザ光を導く反射ミラー23とで構成される。
走査ミラー部4は、電磁力を利用して軸24aを中心として走査ミラー24bを反復するように揺動し、反射ミラー24bから入射されたレーザ光を走査するように出射する走査ミラー本体24と、走査ミラー本体24に設けられた永久磁石24cに近接して配置された電磁コイル25に交番磁界を発生させて走査ミラー本体24の揺動の制御を行う駆動制御部26と、で構成される。
受光部5は、走査ミラー本体24からの反射光(戻り光)を凹面鏡で集光する集光ミラー27と、集光ミラー27からの戻り光を受光して、光電変換による電流信号を生成する受光素子(フォトディテクタ)28と、受光素子28の受光面の前方に配置される受光絞り部(図示せず)及びバンドパスフィルタ29と、電流信号を電圧信号に変換する信号変換部30と、で構成される。
また、信号検出部6は、信号変換部30から出力された電圧信号を微分信号に変換する微分処理部31と、微分信号から極値(極大値及び極小値)を検出する極値検出部32と、で構成される。
閾値設定判断部7は、第1の閾値を設定する第1閾値設定部41と、第1の閾値又は第2の閾値のそれぞれに対して、極大値及び極小値を比較し有効な極値を検出する極値有効性判断部(第1,第2極値有効性判断手段)42と、有効と判断された極値の中から、判断対象となる極値(例えば、極大値)と、その極値の直前に検出されている極値(例えば、極小値)との間隔を検出する極値間隔計測部(極値間隔計測手段)43と、極値間隔計測部によって検出された隣接する極値間の間隔の中から最大間隔を検出する最大間隔検出部(最大極値間隔検出手段)44と、最大の極値間隔の中で、第1の閾値による有効判断によって有効ではないと判断された極値(非有効な極値)の中から、最大の極大値及び最小の極小値による第2極値を検出する第2極値検出部45と、第2極値を有効とする第2の閾値を設定する第2閾値設定部46と、で構成される。
尚、本実施形態において、極値と極値との間隔とは、図3(b)に示すように、先の極値(極小値)が検出された時間t1と後の極値(極大値)が検出された時間t2の差分A(|t2−t1|)である。以後の説明において、この時間間隔である差分は、単に「間隔」もしくは「極値間隔」(例えば、極小値と読み出された極大値との間隔等)として表現している。
次に図2A,2Bに示すフローチャートを参照して、このように構成されたバーコード読み取り装置1によるバーコードの読み取り及び、読み取られた信号の処理について説明する。
まず、光源21から出射されたレーザ光は、反射ミラー23によって偏向され、揺動する走査ミラー24bに入射する。この揺動により、バーコード記号3に対して配列を横切る方向に走査される走査光12が生成され、走査光12はバーコード記号3に照射される(ステップS1)。
この走査光12は、バーコード記号3で反射し、戻り光13として、走査ミラー24bで偏向されて集光ミラー27に入射される。集光ミラー27は、戻り光13を凹面鏡で集光させて、フォトディテクタ28の受光面に入射させる(ステップS2)。フォトディテクタ28では、光電変換により戻り光13の光量に基づく電流信号が生成される(ステップS3)。さらに、この電流信号は、信号変換部30で電圧信号に変換され、図3(a)に示すような光電変換信号(バーコード信号)となる。
光電変換信号は、微分処理部31に入力され、微分信号に変換される。微分処理部31では、信号増幅処理及びフィルタリングによるノイズの除去処理を行った後(ステップS4)、微分信号に変換処理する。この時、最大間隔検出部44における最大間隔TMAXを0に設定して初期化を行う(ステップS5)。
微分信号は、極値検出部32に入力され、まず、A/D変換されて、デジタルサンプリングデータが生成される(ステップS6)。その後、デジタルサンプリングデータからバーコード記号のエッジを示唆する極値(極大値及び極小値)が検出される。これらの極値は、検出時のインデックス情報(時間により規定される各極値の位置関係又は順序関係を示唆する)と共に時系列的にメモリ10に保存される(ステップS7)。尚、これらの極値を検出する際には、例えば、極大値が検出されたならば、次に検出される極値は極小値といった具合に、極大値と極小値が交互に検出される。ここでは、図3(b)に示すように最初に検出された極値が極大値であったと仮定して説明する。
次に、第1閾値設定部41は、メモリ10から全ての極値を読み出し(ステップS8)、読み出した全ての極値に基づき、第1の閾値を設定する(ステップS9)。また、必ずしもメモリ10から読み出す必要はなく、回路構成によっては、極値検出部32から極値を入力して設定することも可能である。
この第1の閾値は、従来技術と同様に、全ての極値の中で最大値(ピークホールド値)m又は、最小値(ボトムホールド値)nに基づいて設定される。設定される第1の閾値は、ノイズの影響を受けにくくするため、極大値(ピーク値)に対しては従来より大きめの設定値、極小値(ボトム値)に対しては従来より小さめ設定値、例えば、ピーク値又はボトム値に対して、係数として、ここでは、60%程度を掛け合わせた値とし、極大値及び極小値に対して、振幅の中心を基準電圧として、正負方向に同じ電圧値(絶対値)となる値を用いている。勿論、この係数は、60%程度に限定されるものではなく、経験的に係数を設定してもよい。
次に、極値有効性判断部42では、メモリ10から極値を時系列的に古いものから1つずつ読み出し(ステップS10)、有効なデータか否かを第1閾値設定部41により設定された第1の閾値と比較することによって判断する(ステップS11)。このステップS11の判断で、例えば、極値が有効と判断された場合には(YES)、この極値が最初に有効と判断されたものか否かを判断する(ステップS12)。一方、極値が有効ではないと判断された場合には(NO)、ステップS10に戻り、再度、メモリ10から次の極値を読み出し、第1の閾値と比較することで有効性の判断を行う。
また、ステップS12の判断において、極値が最初に有効なものであった場合には(YES)、その極値のインデックス情報(例えば、位置情報や時間情報など)をメモリに保存すると共に、メモリ10に他にも有効な極値が存在する可能性があるため、ステップS10に戻り、次の極値に対して有効性の判断を行う。一方、ステップS12において、最初に有効となった極値ではない場合には(NO)、直前に有効と判断された極値が存在しているので、極値間隔計測部43において、メモリ10から読み出した直前に有効と判断された極値と、続いて有効であると判断された今回の極値との間隔の時間を計測し、その間隔をメモリ10に保存する(ステップS13)。具体的には、有効と判断された極値が極大値であった場合には、メモリ10からその直前に有効と判断された極小値を読み出し、その極大値と読み出された極小値との間隔(極大値−極小値間:図3(b)に示す区間A)を求める。又は、その極値が反対順であれば、間隔として、極小値−極大値間を求める。尚、メモリ10に計測した間隔Tを保存する際に、間隔Tを構成する2つの極値が識別又は特定できるように極値のインデックス情報も併せて保存する。
その後、最大間隔検出部44において、計測された間隔Tと、これまでで最も大きい最大間隔TMAX(初期値はTMAXを0に設定:ステップS5)と比較して(ステップS14)、間隔Tが最大間隔TMAXより大きければ(YES)、その間隔Tを最大間隔TMAXに置き換えて(ステップS15)、最大の極値間隔のインデックス情報(位置情報や時間情報)を保存する(ステップS16)。
これらの最大間隔の検出処理は、極値有効性判断部42に極値検出部32から次に検出された極値が入力され、同様にその極値が第1の閾値に対して有効であるか否かを判断する。ここで有効と判断された場合には、極値間隔計測部43において、直前に隣接する有効と判断された極値(極大値又は極小値)との間隔を時間計測し、最大間隔検出部44による最大間隔を検出する。
この処理を極値検出部32により検出された全ての極値が終了するまで繰り返される。即ち、ステップS14で計測した間隔Tが最大間隔TMAX未満だった場合(NO)、又はステップS16でインデックス情報を保存した後、検出された極値が最後か否かを判断する(ステップS17)。最後の極値ではなかった場合には(NO)、今、有効と判断された極値のインデックス情報をメモリ10に保存すると共に、ステップS10に戻り、間隔を求める。一方、ステップS17で最後の極値まで比較処理が終了したならば(YES)、最大間隔検出部44において有効と判断された極値の間隔のうち、最大の間隔が決定される。
次に、第2極値検出部45により、得られた最大の間隔を持つ極値間の中に存在する極値をメモリ10から検出する。即ち、第2極値検出部45は、最大間隔の極値間で、第1の閾値によって有効と判断されなかった極値のうちの、最大の極大値及び最小の極小値を検出する(ステップS18)。第2閾値設定部46は、図3(b)に示すように、最大の極値間隔の中から検出された最大の極大値及び最小の極小値が、かろうじて有効とするような第2の閾値を設定する(ステップS19)。
次に、極値有効性判断部42は、先立って第1の閾値との比較で有効と判断されなかった全ての極値をメモリ10から順次読み出して(ステップS20)、第2の閾値と比較し、有効か否かを判断する(ステップS21)。この判断で有効な極値でなければ(NO)、ステップS20に戻り、再度メモリ10から次の極値を読み出して有効性の判断を行う。
そして、対象となる極値の全てに対して、有効性の判断を行ったか否かを確認する(ステップS22)。全ての判断が終了していなければ(NO)、ステップS20に戻り、次の極値をメモリ10から読み出して有効性の判断を継続する。一方、全ての判断が終了したならば(YES)、バーコード幅データ生成部8において、バーコード幅データの生成を行う(ステップS23)。これは、第1の閾値及び第2の閾値によって、有効と判断された極値を用いて、バーコード幅データ生成部8がバーコード信号を生成する。最後の極値まで処理が終わった段階でデコード処理を行い(ステップS24)、デコードが成功したか否かを判断する(ステップS25)。デコードが成功した場合には(YES)、ここで一連の読み取り動作を終了する。一方、デコードが不成功であった場合には(NO)、再度、ステップS2に戻り、反射光(戻り光)を受光する処理にリターンする。尚、この例では、デコードを失敗したときの再読込みに要する時間を考慮して、デコードが完了するまで、走査光は照射した状態を維持しているが、この状態維持に限定されるものではない。以下に説明する実施形態においても、同様に、デコードが完了するまで、走査光は照射した状態を維持している例としている。
尚、本実施形態では、第1の閾値は、最大の極値又は最小の極値を元に設定しているが、AGC(オート・ゲイン・コントロール)を搭載している場合には、固定に設定しても良い。
以上のように本実施形態は、まず、高めの(絶対値として大きい)第1の閾値を設定して、極値の有効性を判断し、さらに、有効となった複数の極値を対象として、その隣り合う極値間の間隔(間隔)が最も大きい間隔を持つ2つの極値を検出する。そして、大きい間隔を持つこれらの極値間において、第1の閾値によって有効と判断されなかった極値のうち、最大の極大値及び最小の極小値を新たな有効性の判断基準として、第2の閾値を設定する。
第1の閾値にて有効と判断されなかった極値に対しても、再度第1の閾値よりも低い(絶対値として小さい)閾値の第2の閾値にて、有効性の判断を行うことによって、ノイズの影響を排除しつつ、真にバーコードのエッジのみを極値として検出することができる。
本実施形態によれば、ノイズの影響を受けにくい第1の閾値と第2の閾値を設定して、有効性の判断処理を行うことによって、読み取り性能が著しく向上する。特に、読み取ったバーコード信号にノイズが多く含まれる、例えば、コントラストが薄いバーコードに対する読み取りに効果的に作用する。
本実施形態において、第2の閾値を設定する際に、最も間隔が大きい極値間を選択しているが、これは、一般的なバーコードの配置上では間隔が大きい極値間には、他にも極値が存在している確率が高くなるため、選択対象としているものである。
従って、バーコードの配置構成に応じて、最も間隔が大きい極値間ではなく、2番目以降に大きい間隔を持つ極値間を選択した方がよいものもあり、これらは容易に変更が可能であるため、適宜設定すればよい。例えば、制御部11が有する制御用メモリにバーコードの種類(バーコードの配置)に応じて、間隔の順位が選択可能なテーブル等を作成しておき、読み取り対象となるバーコードを指定することで、第2の閾値を設定するための極値が設定されるようにしてもよい。
本実施形態は、有効性の判断に第2の閾値を設定して用いることにより、従来のように1つの閾値(第1の閾値)のみで有効性を判断し、デコード処理を行っていた読み取り方法に比べて、ノイズを有効な極値として判断されることなく、読み取りの不安定性を排除することができる。さらに、読み取られたバーコード信号において、実際のバーコードデータが存在していそうなエリアに関して、第2の閾値を用いて信号値の大きい箇所のみを有効性があると判断するため、ノイズの影響を最小限にすることができる。
次に、第2の実施形態について説明する。
図4は、本発明の第2の実施形態に係るバーコード読み取り装置の構成を示す模式図である。前述した第1の実施形態では、第1の閾値及び第2の閾値により有効性を判断したが、本実施形態は、順次検出された極値に応じて、第2の閾値以降に閾値を順次更新し、順次更新した閾値で有効性の判断を繰り返し行うことによって、さらに読み取り性能を高めるものである。
図4は、本発明の第2の実施形態に係るバーコード読み取り装置の構成を示す模式図である。前述した第1の実施形態では、第1の閾値及び第2の閾値により有効性を判断したが、本実施形態は、順次検出された極値に応じて、第2の閾値以降に閾値を順次更新し、順次更新した閾値で有効性の判断を繰り返し行うことによって、さらに読み取り性能を高めるものである。
本実施形態は、図4に示すように、バーコード幅データ生成部8の出力が第N極値検出部47に入力されるように接続されている。また、第N閾値設定部48で設定された第Nの閾値は、極値有効判断部42にフィードバックするように接続されている。これ以外の本実施形態の構成部位及び接続関係は、前述した第1の実施形態と同等であり、同じ参照符号を付して、その詳細な説明は省略する。
本実施形態では、第2極値検出部45及び第2閾値設定部46に替わって、最大の極値間隔の中で第1の閾値による有効判断で有効ではない極値(非有効な極値)の中から、最大の極大値及び最小の極小値による極値を予め定めた判断回数Nまで繰り返し検出する第N極値検出部47と、第N極値検出部47で検出された極値を有効とする第Nの閾値を設定する第N閾値設定部48と、で構成される。この構成においては、極値有効性判断部42は、第N閾値設定部48で設定された第Nの閾値を用いて第N極値検出部47で検出された極値の有効性を判断する。極値有効性判断部42により有効と判断されなければ、再度、第N極値検出部47で極値を検出されるようにフィードバックする。このフィードバックの回数は、判断回数Mで予め規定される。
図5A及び図5Bに示すフローチャートを参照して、第2の実施形態のバーコード読み取り装置における具体的な信号処理について説明する。尚、以下の説明において、ステップS31からS46(S35を除く)は、前述した第1の実施形態におけるステップS1からS16(S5を除く)に対応しており、これらのステップの内容は簡略的に説明する。
まず、光源21から出射されたレーザ光は、揺動する走査ミラー24bからバーコード記号3に向かうように走査光12として照射される(ステップS31)。走査光22はバーコード記号3上で反射し、戻り光13として、走査ミラー24b及び集光ミラー27を経てフォトディテクタ28に受光される(ステップS32)。フォトディテクタ28では、光電変換により戻り光13から電流信号が生成される(ステップS33)。さらに、この電流信号は、信号変換部30で電圧信号からなるバーコード信号(図3(a)に示す光電変換信号)に変換される。
この光電変換信号は、微分処理部31により信号増幅処理及びフィルタリングによるノイズの除去処理が行われた後、微分処理されて微分信号が生成される(ステップS34)。この時、閾値の設定回数Nに1を設定すると共に、有効性の判断回数Mに3を設定し、さらに最大間隔検出部44における最大間隔TMAXを0に設定して初期化を行う(ステップS35)。
次に、微分信号は、極値検出部32により、A/D変換及びデジタルサンプリングデータ処理される(ステップS36)。さらに、極値検出部32によりデジタルサンプリングデータから極値が検出され、検出時の時間情報と共にメモリ10に保存される(ステップS37)。次に、第1閾値設定部41は、メモリ10から全ての極値を読み出し(ステップS38)、読み出した全ての極値に基づき、第1の実施形態と同様に、第1の閾値を設定する(ステップS39)。また本実施形態においても、メモリ10から読み出すのではなく、極値検出部32から極値を入力して設定することも可能である。尚、第1の閾値は、極大値及び極小値に対して、振幅の中心を基準電圧として、正負方向に同じ電圧値(絶対値)となる値を用いる。
次に、極値有効性判断部42では、メモリ10から時系列的に古い極値から順に1つずつ読み出し(ステップS40)、第1の閾値と比較して有効性を判断する(ステップS41)。この判断で、極値が有効と判断された場合には(YES)、この極値が最初に有効と判断されたものか否かを判断する(ステップS42)。この判断で、極値が最初に有効であった場合には(YES)、ステップS40に戻り、再度、メモリ10から次の極値を読み出し、第1の閾値と比較する。一方、ステップS42において、既に有効となった極値が他にある場合には(NO)、前述した第1の実施形態と同様に、極値間隔計測部43において、直前に有効と判断された極値と、続いて今回有効であると判断された極値との時間間隔を計測し、間隔とその間隔に対応する極値が識別又は特定できるようなインデックス情報をメモリ10に保存する(ステップS43)。このステップS43は、前述したステップS13と同様である。
その後、最大間隔検出部44において、計測された間隔Tと、これまでで最も大きい最大間隔TMAX(初期値:0)と比較する(ステップS44)。この比較で間隔Tが最大間隔TMAXよりも大であれば(YES)、その間隔Tを最大間隔TMAXに置き換えて(ステップS45)、最大の極値間隔のインデックス情報(第1の実施形態と同等)を保存する(ステップS46)。この処理は、検出された全ての極値に対して実施され、最大の間隔とそれらの極値のインデックス情報が決定され、メモリに保存される。この様な最大の間隔の決定が検出された全ての極値が終了するまで繰り返される。一方、ステップS44で最大間隔TMAXよりも小さい場合(NO)、又はステップS46でインデックス情報を保存した後、検出された極値が最後か否かを判断する(ステップS47)。この判断で最後の極値ではなかった場合には(NO)、ステップS40に戻り、再度、間隔Tを求める。一方、ステップS47で最後の極値まで比較処理が終了したならば(YES)、最大間隔検出部において有効と判断された極値の間隔のうち、最大の間隔TMAXが決定される。
前述した実施形態では、第1の閾値で検出された最大の極値間隔の中には、さらに有効な極値が存在していると仮定して、第1の閾値よりも小さい第2の閾値に基づいて、第1の閾値で有効と判断されなかった極値を対象に、有効性の判断を行い、少なくとも一組の極大値及び極小値を検出していた。これに対して本実施形態では、新たに設定した第2の閾値でも本来有効と判断されるべき極値が有効と判断されない可能性があると仮定して、さらに第3、第4…第Nの閾値を設定して、極値の有効性の判断を行うものである。
まず、極値の有効性を判断する回数Nをカウントアップ(N=N+1)する(ステップS48)。例えば、N=1であった場合、このステップS48でNの値が1だけカウントアップされN=2となり、第2の閾値を設定する。
次に、この設定回数Nが予め設定した判断回数Mを越えていない(N≦M)を判断する(ステップS49)。この判断で閾値の設定回数Nが判断回数Mを越えたならば(NO)、再度ステップS32に戻り、バーコード記号3の戻り光を再度、取得して閾値を算出する。一方、設定回数Nが判断回数Mを越えていなければ(YES)、最大の極値間隔TMAXをメモリ10から読み出し、その最大の極値間隔TMAXの中で、第(N−1)の閾値(例えば、第1の閾値)によって有効と判断されなかった最大の極大値及び最小の極小値を検出する(ステップS50)。
次に、ステップS50で検出された最大の極大値及び最小の極小値に基づき、第Nの閾値(例えば、第2の閾値)を設定する(ステップS51)。
次に、第1の閾値を基準にして抽出された極値に基づく最大の極値間隔TMAXをリセットする(ステップS52)。 次に、メモリ10から全ての極値を読み出し(ステップS53)、第Nの閾値と読み出した極値とを比較して有効性を判断する(ステップS54)。この判断で極値が有効と判断された場合には(YES)、この極値が最初に有効と判断されたものか否かを判断する(ステップS55)。一方、極値が有効ではないと判断された場合には(NO)、ステップS53に戻り、再度、メモリ10から次の極値を読み出し、第Nの閾値と比較する。また、ステップS55の判断において、極値が最初に有効なものであった場合には(YES)、その極値のインデックス情報(位置情報、時間情報)をメモリ10に保存すると共に、他にも有効な極値がある可能性があるため、ステップS53に戻り、再度、次の極値に対して有効性の判断を行う。一方、ステップS55において、最初に有効となった極値ではない場合には(NO)、極値間隔計測部43において、メモリ10から読み出した「直前に有効と判断された極値」と、有効であると判断された今回の極値との間隔の時間を計測し、計測した間隔Tと、今回有効と判断された極値のデータ(インデックス情報)とメモリ10に保存する(ステップS56)。このステップS56は、前述したステップS43と同様である。 その後、計測された間隔Tと、これまでで最も大きい最大間隔TMAXとを最大間隔検出部44により比較して(ステップS57)、間隔Tが最大間隔TMAXを超えた値であったならば(YES)、その間隔Tを最大間隔TMAXに置き換えて(ステップS58)、最大の極値間隔のインデックス情報を保存する(ステップS59)。この処理を極値検出部32により検出された全ての極値が終了するまで繰り返される。一方、ステップS57で最大間隔TMAX以下であった場合(NO)、又はステップS59でインデックス情報を保存した後、検出された極値が最後か否かを判断する(ステップS60)。最後の極値ではなかった場合には(NO)、ステップS51に戻り再度、間隔Tを求める。一方、ステップS60で最後の極値まで比較処理が終了したならば(YES)、バーコード幅データ生成部8において、バーコード幅データの生成を行い(ステップS61)、さらにデコード処理を行う(ステップS62)。このデコードが成功したか否かを判断し(ステップS63)、成功した場合には(YES)、読み取りにおける一連の処理は終了となる。一方、デコードが不成功となった場合には(NO)、ステップS48に戻る。
即ち、第1、第2の閾値によって有効と判断された隣接する極値間隔の最大の位置をメモリ10から読み出し、その間隔の中で第1、第2の閾値によって有効と判断されなかった最大の極大値及び最小の極小値を検出し、第2の閾値と同様の方法を用いて、カウントアップ(N+1)された第3の閾値を設定する。
この第3の閾値を用いて、第1、第2の閾値によって有効と判断されなかった全ての極値について再度、有効性の判断を行う。ここで、有効と判断された極値に関して、直前に有効と判断されていた極値との間隔を計測し、メモリ10に保存する。また、第3の閾値に対して、最後の極値まで処理が終わった段階でデコード処理を行い、デコードが成功した場合には、読み取り終了となる。しかし、再度デコードが不成功であった場合には、同様の処理をさらに繰り返す。この処理を設定回数Nが判断回数Mを越えるまで行うことによって、有効な極値のみを検出することが可能となりノイズの影響を最小限にすることが可能となる。本実施形態では、所定の回数をM回としているが、万一、M回の処理を行ってもデコードが不成功となった場合には、一旦、読み取ったデータをクリアして、前述したステップS32の反射光を受光することから再開する。
以上説明した本実施形態によれば、読み取ったバーコード信号に対して、きめ細かく閾値を設定できるため、これまでノイズとして判定されていたものに対しても、有効性を問うことができる。また、有効性の判断を行う回数が任意に設定できるため、読み取りやすく鮮明なバーコード記号に対しては、少ない回数を設定し、不鮮明又は読み取りにくいバーコード記号に対しては、判断回数を多めに設定することにより、バーコード信号に応じて、より正確な読み取りを実現する。
次に、第3の実施形態について説明する。
本実施形態におけるバーコード読み取り装置は、前述した図4に示した第2の実施形態の構成に対して、第N極値検出部47が第2極値検出部に、第N閾値設定部48が第2閾値設定部に置き換わった以外同等であり、以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
本実施形態におけるバーコード読み取り装置は、前述した図4に示した第2の実施形態の構成に対して、第N極値検出部47が第2極値検出部に、第N閾値設定部48が第2閾値設定部に置き換わった以外同等であり、以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
前述した第1,2の実施形態では、極大値及び極小値に対して基準電圧を元にプラス方向、マイナス方向に同じ電圧を閾値として設定したが、実際には、バーコード記号の印刷状態及び読み取る際の周辺環境などによって、基準電圧を元にした極大値と極小値の絶対値が一概に同じにならない事態が発生する。そこで、本実施形態では、第1の閾値及び第2の閾値が、それぞれに極大値用の閾値である第1の極大閾値と第1の極小閾値、及び第2の極大閾値と第2の極小閾値を持ち、各閾値と比較の際に極大値の場合には極大閾値を、極小値の場合には極小閾値を適用し、比較することで有効性の判断を行う。
図6A及び図6Bに示すフローチャートを参照して、第3の実施形態のバーコード読み取り装置における具体的な信号処理について説明する。尚、以下の説明において、ステップS71からS74は、前述した第2の実施形態におけるステップS31からS34に対応しており、これらのステップの内容は簡略的に説明する。
まず、走査レーザ光は、バーコード記号3に照射され(ステップS71)、反射した戻り光13がフォトディテクタ28に受光されて(ステップS72)、光電変換により電流信号が生成される(ステップS73)。この電流信号は、電圧信号の光電変換信号に変換された後、微分処理されて微分信号が生成される(ステップS74)。この時、最大間隔検出部44における最大間隔TMAXを0に設定して初期化を行う(ステップS75)。
次に、微分信号はA/D変換及びデジタルサンプリングデータ処理されて(ステップS76)、極値が検出され、検出時の時間情報と共にメモリ10に保存される(ステップS77)。その後、メモリ10から全ての極値を読み出し(ステップS78)、これらの極値に基づき、第1の極大閾値及び第1の極小閾値が設定される(ステップS79)。極大閾値は信号の最大の極大値として、及び極小閾値は最小の極小値として、基準(ベース)となるようにそれぞれ設定する。
次に、メモリ10から時系列的に古いものから1つずつ極値を読み出し(ステップS80)、その極性が極大値側又は極小値側であるか判断する(ステップS81)。このステップS81の判断で、極性が極大値側であれば、その極値を第1の極大閾値と比較して有効性を判断する(ステップS82)。このステップS82の判断で、極値が有効と判断された場合には(YES)、この極値が最初に有効と判断されたものか否かを判断する(ステップS84)。一方、極値が有効ではないと判断された場合には(NO)、ステップS80に戻り、再度メモリ10から極値を読み出す。
またステップS81の判断で、極性が極小値側であれば、その極値を第1の極小閾値と比較して有効性を判断する(ステップS83)。このステップS83の判断で、極値が有効と判断された場合には(YES)、ステップ83に移行し、この極値が最初に有効と判断されたものか否かを判断する。一方、極値が有効ではないと判断された場合には(NO)、ステップS80に戻り、再度メモリ10から次の極値を読み出す。
ステップ84の判断において、最初に有効と判断された極値であれば(YES)、その極値のインデックス情報をメモリ10に保存し、ステップS80に戻る。一方、既に有効と判断された極値が他にあれば(NO)、極値間隔計測部43において、直前に有効と判断された極値と、続いて今回有効であると判断された極値との時間間隔を計測し、間隔Tとその間隔Tに対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する(ステップS85)。このステップS85は、前述したステップS43と同様である。
その後、計測された間隔Tと、これまでで最も大きい最大間隔TMAX(初期値:0)と比較する(ステップS86)。この比較で間隔Tが最大間隔TMAXを越えた値であったならば(YES)、その間隔Tを最大間隔TMAXに置き換えて(ステップS87)、最大の極値間隔のインデックス情報を保存する(ステップS88)。この処理は、検出された全ての極値に対して実施される。
一方、ステップS86で計測された間隔Tが最大間隔TMAX以下であった場合(NO)、又はステップS88でインデックス情報を保存した後に、検出された極値が最後か否かを判断する(ステップS89)。この判断で最後の極値ではなかった場合には(NO)、ステップS80に戻る。一方、ステップS89で最後の極値まで比較処理が終了したならば(YES)、最大間隔検出部44において有効と判断された極値の間隔のうち、最大の間隔TMAXが決定される。
次に、第2極値検出部47は、最大間隔の極値間で、第2の閾値によって有効と判断されなかった極値のうちの、最大の極大値及び最小の極小値を検出する(ステップS90)。これらの極値に基づき、第2の極大閾値及び第2の極小閾値が設定される(ステップS91)。この第2の閾値の設定方法は、第2の閾値の極大閾値は、最大極値間隔TMAXに存在し、第1の極大閾値によって有効と判断されていない極大値のうち、最大の極大値がかろうじて有効となる値を設定され、第2の閾値の極小閾値は、最大極値間隔TMAXに存在し、第1の極小閾値によって有効と判断されていない極小値のうち、最小の極小値がかろうじて有効となる値を設定する。
次に、メモリ10から極値を読み出し(ステップS92)、その極性が基準電圧に対して極大値側又は極小値側であるか判断する(ステップS93)。この判断で、極性が極大値側であれば、その極値を第2の極大閾値と比較して有効性を判断する(ステップS94)。このステップS94の判断で、極値が有効と判断された場合には(YES)、その極値が最後か否かを判断する(ステップ96)。一方、極値が有効ではないと判断された場合には(NO)、ステップS92に戻り、再度メモリ10から極値を読み出す。
またステップS93の判断で、極性が極小値側であれば、その極値を第2の極小閾値と比較して有効性を判断する(ステップS95)。このステップS95の判断で、極値が有効と判断された場合には(YES)、ステップ96に移行し、その極値が最後か否かを判断する。一方、極値が有効ではないと判断された場合には(NO)、ステップS92に戻り、再度メモリ10から極値を読み出す
前記ステップ96の判断において、最後の極値まで比較処理が終了したならば(YES)、バーコード幅データ生成部8において、バーコード幅データの生成を行い(ステップS97)、さらにデコード処理を行い(ステップS98)、デコードが成功したか否かを判断し(ステップS99)、成功した場合には(YES)、読み取りにおける一連の処理は終了となる。一方、デコードが不成功となった場合には(NO)、ステップS72に戻る。
前記ステップ96の判断において、最後の極値まで比較処理が終了したならば(YES)、バーコード幅データ生成部8において、バーコード幅データの生成を行い(ステップS97)、さらにデコード処理を行い(ステップS98)、デコードが成功したか否かを判断し(ステップS99)、成功した場合には(YES)、読み取りにおける一連の処理は終了となる。一方、デコードが不成功となった場合には(NO)、ステップS72に戻る。
前述したように、実際のバーコード記号の読み取りには、基準電圧を元にした極大値と極小値の値が一概に同じ値(絶対値)にならない事態が発生する。本実施形態は、このような事態が発生した際に、正確な信号処理を行うものとして非常に有効である。
以上説明したように、本実施形態は、バーコード記号の印刷状態及び読み取る際の周辺環境等により読み取られたバーコード信号の極値に偏りが発生しても、閾値を極性に応じて、個々に設定して、その影響を最小限に抑制し、正確な読み取り動作を実現することができる。
次に、第4の実施形態について説明する。
図7は、本実施形態におけるバーコード読み取り装置の構成を示す図である。本実施形態は、前述した図4に示した第2の実施形態の構成とほぼ同等であり、違いは第N閾値設定部48がないことである。以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
図7は、本実施形態におけるバーコード読み取り装置の構成を示す図である。本実施形態は、前述した図4に示した第2の実施形態の構成とほぼ同等であり、違いは第N閾値設定部48がないことである。以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
本実施形態では、前述した第1乃至3の実施形態とは、最大間隔検出部における処理および第N極値検出部における処理が異なっている。本実施形態では、最大間隔検出部において閾値の設定は行わない。また、最大間隔のみではなく、最大のものからN-1個の間隔を検出し、検出されたそれぞれの間隔内で最大の極大値、最小の極小値を閾値と比較することなく有効とする。
図8A及び図8Bに示すフローチャートを参照して、第4の実施形態のバーコード読み取り装置における具体的な信号処理について説明する。尚、以下の説明において、ステップS101からS104及びS106からS113は、前述した第2の実施形態におけるステップS31からS34及びS36からS43に対応しており、これらのステップの内容は簡略的に説明する。
まず、走査レーザ光は、バーコード記号3に照射されて、反射した戻り光13がフォトディテクタ28に受光されて、光電変換により電流信号が生成される(ステップS101,S102,S103)。この電流信号は、電圧信号に変換された後、微分処理されて微分信号が生成される(ステップS104)。この時、設定回数N及び最大間隔TMAX(i)=0を設定する(ステップS105)。
次に、微分信号はA/D変換及びデジタルサンプリングデータ処理されて(ステップS106)、極値が検出され、検出時の時間情報と共にメモリ10に保存される(ステップS107)。その後、メモリ10から全ての極値を読み出して、これらの極値に基づき、第1の閾値を設定する(ステップS108,S109)。
次に、メモリ10から極値を読み出し(ステップS110)、第1の閾値と比較して有効性を判断する(ステップS111)。この判断で、極値が有効と判断された場合には(YES)、この極値が最初に有効と判断されたものか否かを判断する(ステップS112)。この判断で、極値が最初に有効であった場合には(YES)、その極値のインデックス情報をメモリ10に保存する。そして、ステップS110に戻り、再度、メモリ10から次の極値を読み出し、第1の閾値と比較する。一方、最初に有効になった極値ではなかった場合には(NO)、当該極値と、その直前に有効と判断された極値との時間間隔を計測し、得られた間隔とその間隔に対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する(ステップS113)。
次に、最大間隔TMAX(i)におけるiをi=1と設定し(ステップS114)、計測された間隔Tと、これまでで最も大きい最大間隔TMAX1と比較する(ステップS115)。この比較で間隔Tが最大間隔TMAX1を越えた値であったならば(YES)、その間隔Tを最大間隔TMAX1に置き換えて(ステップS116)、新しい最大の極値間隔TMAX1のインデックス情報を保存する(ステップS117)。また、ステップS115の比較において、間隔Tが最大間隔TMAX1以下であれば(YES)、係数iをカウントアップ(i=i+1)して(ステップS118)、その係数iが予め定めた回数Nに達したか否かを判断して(ステップS119)、iがNに達していなければ(YES)、ステップS115に戻り、次に大きい間隔であるTMAX2とTの比較を行この比較で間隔Tが最大の次に大きい間隔TMAX2を越えた値であったならば(YES)、その間隔Tを最大の次に大きい間隔TMAX2に置き換えて(ステップS116)、新しい最大の次に大きい極値間隔TMAX2のインデックス情報を保存する(ステップS117)。最大からN-1番目までの間隔を比較するようiがNに達するまで比較を行う。一方、iがNに達していたならば(NO)、又はステップS117でインデックス情報を保存した後、検出された極値が最後か否かを判断する(ステップS120)。この判断で最後の極値ではなかった場合には(NO)、ステップS110に戻り、再度、間隔を求める。一方、ステップS120で最後の極値まで比較処理が終了したならば(YES)、iを1に設定する(ステップS121)。
次に、求められた最大間隔TMAX1の中で、第1の閾値によって有効と判断されなかった極値のうちの、最大の極大値及び最小の極小値を検出し、これらを有効と判断する(ステップS122)。これは、得られた極値の有効性を判断し、隣接する極値間隔を検出、保存するところまでは、前述した第1の実施形態と同等である。
その後、バーコード幅データ生成し(ステップS123)、デコード処理を行う(ステップS124)。このデコードが成功したか否かを判別して(ステップS125)、デコードが成功したならば(YES)、すべての処理が終了となる。
一方、デコードが不成功であった場合には(NO)、iをカウントアップ(i=i+1)して(ステップS126)、その係数iが予め定めた回数Nに達したか否かを判断して(ステップS127)、iがNに達していなければ(YES)、再度、ステップS122に戻り、最大の次に大きい間隔TMAX2の第1の閾値によって有効と判断されなかった極値のうちの、最大の極大値及び最小の極小値を検出し、これらを有効と判断する(ステップS122)。その後、バーコード幅データ生成し(ステップS123)、デコード処理を行う(ステップS124)。このデコードが成功したか否かを判別して(ステップS125)、デコードが成功したならば(YES)、すべての処理が終了となる。
一方、デコードが不成功であった場合には(NO)、再度、iをカウントアップ(i=i+1)して(ステップS126)、その係数iが予め定めた回数Nに達するまで(ステップS127)、同様の処理を行
本実施形態においては、最大の間隔から順番に、その中に存在する極値の中から最大の極大値及び最小の極小値を検出し有効として、バーコード幅データ生成し、デコードする処理を最大からN-1番目間隔になるまで行っている。前述した第1乃至3の実施形態では、最大間隔検出部において、第2の閾値の設定が行われていたが、本実施形態では、最大間隔からN−1個の間隔を検出し、検出されたそれぞれの間隔内で最大の極大値、最小の極小値を閾値との比較を行うことなく有効とする。
本実施形態においては、最大の間隔から順番に、その中に存在する極値の中から最大の極大値及び最小の極小値を検出し有効として、バーコード幅データ生成し、デコードする処理を最大からN-1番目間隔になるまで行っている。前述した第1乃至3の実施形態では、最大間隔検出部において、第2の閾値の設定が行われていたが、本実施形態では、最大間隔からN−1個の間隔を検出し、検出されたそれぞれの間隔内で最大の極大値、最小の極小値を閾値との比較を行うことなく有効とする。
以上のように本実施形態によれば、閾値の設定が数値で限定されず、有効とされなかった極値に対しても、任意に設定された回数において、極大値と極小値を検出して有効としているため、極値の大小差が大きく、低い値側に極値が多く存在している場合などに有用である。
次に、第5の実施形態について説明する。
本実施形態のバーコード読み取り装置の構成は、前述した第2の実施形態の構成と同等であり、以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
本実施形態のバーコード読み取り装置の構成は、前述した第2の実施形態の構成と同等であり、以下の説明は同じ参照符号を用いて、ここでの構成の説明は省略する。
本実施形態の特徴は、最大間隔の極値に隣接する極値の極性が同じだった場合に、第3の極値検出処理を行うことである。つまり、有効と判断された極値と隣接する極値が極大値どうし、又は小値どうしの場合には、バーコード信号としてはなりたたない。そのため、比較対象の極値と隣接する極値が極大値どうし、又は小値どうしの場合には、その極値間には極性が異なる極値が存在すると仮定する。そして、後述する第3の極値検出処理において、隣接する極値間に存在し、閾値によって有効と判断されていない極値の中で、例えば、極大値どうしの場合には、極小値の最小のもの、極小値どうしの場合には、極大値の最大のものを有効と判断する。第3の極値検出処理は、第1の閾値による有効性の判断後、及び第2以降の閾値による有効性の判断後に適用する。
図9A及び図9Bに示すフローチャートを参照して、第5の実施形態のバーコード読み取り装置における具体的な信号処理について説明する。また、図10に示すフローチャートを参照して、第3の極値検出処理について説明する。尚、以下の説明において、ステップS131からS167(但し、S135,S143,S144,158,S159を除く)は、前述した第2の実施形態におけるステップS31からS62に対応しており、これらのステップの内容は簡略的に説明する。
まず、走査レーザ光は、バーコード記号3に照射されて、反射した戻り光13がフォトディテクタ28に受光されて、光電変換により電流信号が生成される(ステップS131,S132,S133)。この電流信号を微分処理し、設定回数N、判断回数M及び最大間隔TMAX=0を設定する(ステップS134,S135)。次に、微分信号をデジタルサンプリングデータ処理して、極値が検出され、検出時の時間情報と共にメモリ10に保存される(ステップS136,S137)。その後、メモリ10から全ての極値を読み出して、これらの極値に基づき、第1の閾値を設定する(ステップS138,S139)。
次に、メモリ10から読み出した極値を読み出し(ステップS140)、第1の閾値と比較して有効性を判断して(ステップS141)、ここで有効と判断された極値が最初の極値であれば(ステップS142)、その極値のインデックス情報をメモリ10に保存する。そして、ステップS140に戻り、再度、メモリ10から次の極値を読み出し、読み出した極値と第1の閾値とを比較する。一方、最初の極値ではなかった場合には、その極値と今回得られた極値とが同じ極性か否かを判断する(ステップS143)。この判断で、同じ極性であれば(YES)、後述する第3の極値を検出する(ステップS144)し、第3の極値に対して、直前に有効と判断された極値との時間間隔Tを計測し、間隔Tとその間隔Tに対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する(ステップS145)。一方、同じ極性ではない場合には(NO)、その極値と直前に有効と判断された極値との時間間隔Tを計測し、間隔Tとその間隔Tに対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する(ステップS145)。
その後、計測された間隔Tと、これまでの最大間隔TMAX(初期値:0)とを比較する。(ステップS146)。この間隔Tが最大間隔TMAXを超えた値であったならば(YES)、その間隔Tを最大間隔TMAXに置き換えて(ステップS147)、最大の極値間隔TMAXのインデックス情報を保存する(ステップS148)。一方、間隔Tが最大間隔TMAX以下であった場合(NO)、又はステップS148でインデックス情報を保存した後、検出された極値が最後か否かを判断する(ステップS149)。この判断で最後の極値ではなかった場合には(NO)、ステップS140に戻り、一方、最後の比較処理まで終了したならば(YES)、最大間隔検出部において有効と判断された極値の間隔のうちで、最大の間隔が決定される。
次に、極値の有効性を判断する回数Nをカウントアップ(N=N+1)し、回数Nが予め設定した回数Mを越えた否か(N<M)を判断する(ステップS150,S151)。この判断でNがM未満であれば(NO)、ステップS140に戻り、メモリ10から極値を読み出して同じ処理を行う。一方、NがM以下であれば(YES)、最大極値間隔TMAXの中で、第N−1の閾値によって有効と判断されなかった最大の極大値及び最小の極小値を検出する(ステップS152)。次に、検出された最大の極大値及び最小の極小値に基づき、第Nの閾値を設定する(ステップS153)。 ここで、TMAXをリセットする(ステップS154)。
次に、メモリ10からこれまでの最大の間隔TMAXにおける極値を読み出し(ステップS155)、第Nの閾値と比較して、その極値が有効であった場合には(YES)、最初に有効となった極値かを判断する(ステップS156,S157)。一方、極値が有効でなかった場合には(NO)、ステップS155に戻り、再度、次の極値を読み出して第Nの閾値と比較する。また、ステップS157の判断で最初に有効な極値であった場合には(YES)、その極値のインデックス情報をメモリ10に保存する。そして、ステップS155に戻り、再度、次の極値に対して有効性の判断を行う。一方、ステップS157において、最初に有効となった極値ではない場合には(NO)、その極値と今回得られた極値とが同じ極性か否かを判断する(ステップS158)。この判断で、同じ極性であれば(YES)、後述する第3の極値を検出する(ステップS159)し、第3の極値に対して、直前に有効と判断された極値との時間間隔を計測し、間隔とその間隔に対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する(ステップS160)。一方、同じ極性ではない場合には(NO)、ステップS160に移行し、その極値と直前に有効と判断された極値との時間間隔Tを計測し、間隔Tとその間隔Tに対応する極値が識別又は特定できるようなインデックス情報も併せてメモリ10に保存する。
その後、間隔Tと、これまでの最大間隔TMAXとを比較して(ステップS161)、間隔Tが最大間隔TMAX以下であれば(YES)、その間隔Tを最大間隔TMAXに置き換えて、最大の極値間隔のインデックス情報を保存する(ステップS162,S163)。一方、間隔Tが最大間隔TMAXを越えていたのであれば(NO)、又はインデックス情報が保存した後、検出された極値が最後か否かを判断する(ステップS164)。最後の極値ではなかった場合には(NO)、ステップS155に戻り再度、間隔を求める。一方、最後の極値まで比較処理が終了したならば(YES)、バーコード幅データの生成を行い、デコード処理を行う(ステップS165,S166)。このデコードが成功したか否か判断して(ステップS167)、成功した場合には(YES)、読み取りにおける一連の処理は終了し、不成功であった場合には(NO)、ステップS150に戻る。
次に、図10に示すフローチャートを参照して、ステップS143(図9A)における第3の極値の検出について説明する。
まず、第Nの閾値において有効と判断された極値のうち、隣接する極値の極性が正即ち、極大値か否かを判断する(ステップS171)。この判断で、極性が負、即ち最小値であった場合には(NO)、隣接する極小値間隔内で第Nの閾値において有効と判断されなかった最大の極大値を求めるため、極大値の大きさAMAX=0を予め設定する(ステップS172)。メモリ10から対象となる極小値間隔の第Nの閾値において有効と判断されなかった極大値を読み出す(ステップS173)。次に、AMAXと読み出された極大値とを比較して、読み出された極大値がAMAXを超えた値であれば(YES)、AMAXを読み出された極大値に書き換える(ステップS174)。この処理によって対象となる極小値間で第Nの閾値において有効と判断されなった最大の極大値を求める。最後の極大値までAMAXとの比較と書き換えが終了したか否かを判断し(ステップS176)、最後の極大値まで終了したならば(YES)、最終的なAMAXとなった極大値を有効とした後(ステップS177)、リターンする。即ち、対象となる隣接する極小値間で検出され、閾値における有効性の判断において有効と判断されていないすべての極大値をメモリ10から読み出し、この極大値の中から最大のものを有効とする。
まず、第Nの閾値において有効と判断された極値のうち、隣接する極値の極性が正即ち、極大値か否かを判断する(ステップS171)。この判断で、極性が負、即ち最小値であった場合には(NO)、隣接する極小値間隔内で第Nの閾値において有効と判断されなかった最大の極大値を求めるため、極大値の大きさAMAX=0を予め設定する(ステップS172)。メモリ10から対象となる極小値間隔の第Nの閾値において有効と判断されなかった極大値を読み出す(ステップS173)。次に、AMAXと読み出された極大値とを比較して、読み出された極大値がAMAXを超えた値であれば(YES)、AMAXを読み出された極大値に書き換える(ステップS174)。この処理によって対象となる極小値間で第Nの閾値において有効と判断されなった最大の極大値を求める。最後の極大値までAMAXとの比較と書き換えが終了したか否かを判断し(ステップS176)、最後の極大値まで終了したならば(YES)、最終的なAMAXとなった極大値を有効とした後(ステップS177)、リターンする。即ち、対象となる隣接する極小値間で検出され、閾値における有効性の判断において有効と判断されていないすべての極大値をメモリ10から読み出し、この極大値の中から最大のものを有効とする。
一方、ステップS171の判断で、極性が正、即ち最大値であった場合には(YES)、隣接する極大値間隔内で第Nの閾値において有効と判断されなった最小の極小値を求めるため、極小値の大きさAMIN= 10000と予め設定し(ステップS178)、メモリ10から対象となる極大値間隔の極小値を読み出す(ステップS179)。次に、AMINと読み出された極小値とを比較して、読み出された極小値がAMINを超えた値であれば(YES)、AMINを読み出された極小値に書き換える(ステップS180)。最後の極小値までのAMINとの比較と書き換えが終了したか否かを判断し(ステップS181)、最終的な極大値最小間隔内でAMINとなった極小値を有効とする(ステップS182)。即ち、隣接する極値の極性が極大値だった場合には、対象となる隣接する極大値間で検出され、閾値における有効性の判断において有効と判断されていないすべての極小値をメモリ10から読み出し、この極小値の中から最小のものを検出して有効とする。
以上のことから、有効とされた極値と隣接する極性が同じであった場合には、その間に反対の極性の極値が存在しているものと仮定して、その反対の極値として、隣接する極値が極小値の場合にはその間隔の中で第Nの閾値によって有効と判断されなかった最大の極大値を有効とし、又は隣接する極値が極大値の場合にはその間隔の中で第Nの閾値によって有効と判断されなかった最小の極小値をそれぞれ設定することにより、バーコード記号の読み取り性能が向上される。
以上説明した各実施形態によれば、バーコード記号を読み取った際に、ノイズが多く読み取られていた場合の読み取り性能が改善され、及び設定された条件の下で読み取ったデータが処理されるため、不必要なデータ処理量の増加を防止して、且つメモリに掛かる記憶容量の不可を低減することができる。
1…バーコード読み取り装置、2…光源部、3…バーコード記号、4…走査ミラー部、5…受光部、6…信号検出部、7…閾値設定判断部、8…バーコード幅データ生成部、9…データ出力部、10…メモリ、11…制御部、12…走査光、13…戻り光、21…光源、22…光源制御部、23…反射ミラー、24…走査ミラー本体、24a…軸、24b…走査ミラー、24c…永久磁石、25…電磁コイル、26…駆動制御部、27…集光ミラー、28…受光素子(フォトディテクタ)、29…バンドパスフィルタ、30…信号変換部、31…微分処理部、32…極値検出部、41…第1閾値設定部、42…極値有効性判断部、43…極値間隔計測部、44…最大間隔検出部、45…第2極値検出部、46…第2閾値設定部、47…第N極値検出部、48…第N閾値設定部。
Claims (12)
- 光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、を備えたバーコード読み取り装置であって、
検出された前記極値を所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断手段と、
抽出された複数の前記有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測手段と、
前記極値間隔計測手段において計測された複数の極値間隔の中から最大値を検出する最大極値間隔検出手段と、
最大極値間隔内に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値として判断する第2極値有効性判断手段と、を有し、
前記第1極値有効性判断手段及び前記第2極値有効性判断手段によって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードすることを特徴とするバーコード読み取り装置。 - 前記第1極値有効性判断手段は、第1の閾値に基づいて複数の極値の有効性の判断を行い、
前記第2極値有効性判断手段は、前記最大極値間隔内の前記最大極値及び最小極値に基づいて第2の閾値を設定し、当該第2の閾値に基づいて、有効極値を判断することを特徴とする請求項1に記載のバーコード読み取り装置。 - 前記第1の閾値は、基準電圧に対して、プラス側及びマイナス側にそれぞれ同じ電圧値となる値を適用することを特徴とする請求項2に記載のバーコード読み取り装置。
- 前記第2の閾値は、基準電圧に対して、プラス側及びマイナス側にそれぞれ同じ電圧値となる値を適用することを特徴とする請求項2記載のバーコード読み取り装置。
- 前記第2の閾値は、基準電圧に対してプラス側と、基準電圧に対してマイナス側とでは、それぞれに異なる電圧値を適用することを特徴とする請求項2に記載のバーコード読み取り装置。
- 前記第2の閾値は、基準電圧に対してプラス側を、前記最大極値間隔内の前記最大極値と同じ電圧値となる値を適用し、基準電圧に対してマイナス側を、前記最大極値間隔内の最小極値と同じ電圧値となる値を適用することを特徴とする請求項5に記載のバーコード読み取り装置。
- 前記第1の閾値及び第2の閾値によって有効と判断された有効極値に基づいて生成したバーコード情報をデコードできなかった場合に、
前記極値間隔計測手段は、第1、第2の閾値によって有効と判断された複数の有効極値について、互いに隣接する2つの極値の極値間隔を計測し、
前記最大極値間検出手段は、前記極値間隔計測手段において計測された複数の極値間隔の中から最大値を検出し、
前記第2極値有効性判断手段は、最大極値間隔内に存在する、前記第1及び第2の閾値に基づいて有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらに基づいて新たな第3の閾値を設定し、当該第3の閾値に基づいて、有効極値と判断することを特徴とする請求項2に記載のバーコード読み取り装置。 - 前記第2の極値有効性判断手段は、予め設定していた最低電圧値に達するまで、新たな閾値を設定することを特徴とする請求項7に記載のバーコード読み取り装置。
- 前記第2の極値有効性判断手段は、予め設定していた閾値設定回数に達するまで、新たな閾値を設定することを特徴とする請求項6に記載のバーコード読み取り装置。
- 光源と、
前記光源から発生した光をバーコード記号に対して走査するための光走査手段と、
前記バーコード記号で反射した反射光を集光する集光手段と、
前記集光手段で集光された光信号を入力し電気信号に変換するセンサ手段と、
前記センサ部により生成された電気信号から微分信号を生成する微分処理手段と、
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、を備えたバーコード読み取り装置であって、
検出された前記極値を所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断手段と、
抽出された複数の前記有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測手段と、
前記極値間隔計測手段において計測された複数の極値間隔の中から最大からN番目までの極値間隔を抽出する極値間隔抽出手段と、
前記極値間隔抽出手段によって検出された極値間隔が最大のものからN番目までのものの中に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値と判断する第2極値有効性判断手段と、を有し、
前記第1極値有効性判断手段及び前記第2極値有効性判断手段によって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードすることを特徴とするバーコード読み取り装置。 - 光源から出射された光束を走査させて、バーコード記号を反復して横切るように照射させて、前記バーコード記号で反射し集光された戻り光を受光して光電変換によりバーコード信号を生成する信号生成ステップと、
前記バーコード信号に基づく微分信号から極値を検出する極値検出ステップと、
検出された前記極値に対して所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断ステップと、
抽出された複数の有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測ステップと、
計測された複数の前記極値間隔の中から最大値を検出する最大極値間隔検出ステップと、
最大極値間隔内に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値と判断する第2極値有効性判断ステップと、を有し、
前記第1極値有効性判断ステップ及び前記第2極値有効性判断ステップによって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードすることを特徴とするバーコード読み取り方法。 - 光源から出射された光束を走査させて、バーコード記号を反復して横切るように照射させて、前記バーコード記号で反射し集光された戻り光を受光して光電変換によりバーコード信号を生成する信号生成ステップと、
前記バーコード信号に基づく微分信号から極値を検出する極値検出ステップと、
検出された前記極値を所定の基準で有効性の判断を行い、複数の有効極値を抽出する第1極値有効性判断ステップと、
抽出された複数の有効極値について、互いに隣接する2つの極値の極値間隔を計測する極値間隔計測ステップと、
計測された複数の前記極値間隔の中から最大からN番目までの極値間隔を抽出する極値間隔抽出ステップと、
前記極値間隔抽出ステップによって検出された極値間隔が最大のものからN番目までのものの中に存在する、前記第1極値有効性判断手段によって有効と判断されなかった極値の中から、最大極値及び最小極値を抽出すると共に、それらを有効極値と判断する第2極値有効性判断ステップと、を有し、
前記第1極値有効性判断ステップ及び前記第2極値有効性判断ステップによって有効と判断された有効極値に基づいて、バーコード情報を生成し、デコードすることを特徴とするバーコード読み取り方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008150832A JP2009295113A (ja) | 2008-06-09 | 2008-06-09 | バーコード読み取り装置及びその読み取りデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008150832A JP2009295113A (ja) | 2008-06-09 | 2008-06-09 | バーコード読み取り装置及びその読み取りデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009295113A true JP2009295113A (ja) | 2009-12-17 |
Family
ID=41543212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008150832A Withdrawn JP2009295113A (ja) | 2008-06-09 | 2008-06-09 | バーコード読み取り装置及びその読み取りデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009295113A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210096012A (ko) * | 2020-01-27 | 2021-08-04 | 식아게 | 광학 코드들의 판독 |
CN110494859B (zh) * | 2017-04-13 | 2024-02-09 | Nec平台株式会社 | 代码读取装置、方法和程序 |
-
2008
- 2008-06-09 JP JP2008150832A patent/JP2009295113A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110494859B (zh) * | 2017-04-13 | 2024-02-09 | Nec平台株式会社 | 代码读取装置、方法和程序 |
KR20210096012A (ko) * | 2020-01-27 | 2021-08-04 | 식아게 | 광학 코드들의 판독 |
KR102576619B1 (ko) * | 2020-01-27 | 2023-09-07 | 식아게 | 광학 코드들의 판독 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622569B (zh) | 具有边缘检测增强的条码读取器 | |
US7775434B2 (en) | Bar-code reading apparatus and bar-code reading method | |
US8333326B2 (en) | Stacked barcode reader and stacked barcode reading method | |
JP2009295113A (ja) | バーコード読み取り装置及びその読み取りデータ処理方法 | |
US20190080130A1 (en) | Barcode Identification Method for Improving Decoding Reliability by Correcting Image Distortion | |
JP5379626B2 (ja) | スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 | |
JP4652201B2 (ja) | バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置 | |
CN102971743B (zh) | 解码方法以及解码处理装置 | |
JP5489247B2 (ja) | バーコード読取装置及び方法 | |
JP5035042B2 (ja) | 光学的情報読取装置 | |
JP2010182262A (ja) | 情報読み取り装置 | |
JP2009259059A (ja) | バーコード読取装置及びバーコード読取方法 | |
JP5195264B2 (ja) | バーコード読取方法およびバーコード読取装置 | |
JP3606921B2 (ja) | 光学的情報読み取り装置 | |
JP5657987B2 (ja) | スタック型バーコード読取装置およびスタック型バーコード読取方法 | |
JP5683891B2 (ja) | スタック型バーコード読取装置およびスタック型バーコード読取方法 | |
JP5104713B2 (ja) | 光学的情報読取装置 | |
US20090108069A1 (en) | Barcode reader | |
JP5825110B2 (ja) | 二次元コード読み取り装置 | |
JP4107237B2 (ja) | 光学的情報読取装置の境界位置特定方法 | |
JP2009098717A (ja) | バーコード読取装置 | |
JP2011028414A (ja) | 光学的情報読取装置 | |
JP5152086B2 (ja) | バーコード読取方法およびバーコード読取装置 | |
JP6335012B2 (ja) | 文字有無判定システム及び文字有無判定方法 | |
JPH11282953A (ja) | バーコード読取装置の読取有効期間設定方法及び装置、並びにバーコード読取装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110906 |