情報読み取り装置
【課題】バーコード記号を読み取って生成された情報信号にノイズ情報も含まれるため有効性を確認する必要あり、情報信号が飽和すると正確なバーコード信号を生成できず、固定ゲインとの組み合わせたAGCを用いると、読み取り性能に影響を与えている。
【解決手段】読み取り対象物からの光を光電変換により電気信号を生成して微分処理を施した微分信号を生成する。微分信号における飽和状態を検出して、飽和前の微分信号からデータを選択して第1の傾きを求め、及び飽和後の微分信号からデータを選択して第2の傾きを求めて、第1の傾きと第2の傾きにおける交点を求めて、交点を飽和部分に存在する極値とみなして、極値をもとにバーコード幅データ生成部においてバーコード信号を生成し、デコード処理を行う情報読み取り装置である。
【解決手段】読み取り対象物からの光を光電変換により電気信号を生成して微分処理を施した微分信号を生成する。微分信号における飽和状態を検出して、飽和前の微分信号からデータを選択して第1の傾きを求め、及び飽和後の微分信号からデータを選択して第2の傾きを求めて、第1の傾きと第2の傾きにおける交点を求めて、交点を飽和部分に存在する極値とみなして、極値をもとにバーコード幅データ生成部においてバーコード信号を生成し、デコード処理を行う情報読み取り装置である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード等のシンボルからの情報を含んだ光を受光して、そのシンボルから情報を読み取る情報読み取り装置に関する。
【背景技術】
【0002】
従来から情報読み取り装置を用いた管理手法として、マークやシンボル例えば、バーコード記号を用いて、商品販売、物流、生産工程等における物品の情報管理が知られている。適正な管理を行うためには、バーコード記号を正確に読み取ることが最も重要である。
【0003】
このバーコード読み取り装置としては、走査するレーザ光を照射し、その反射光に含まれるバーコード情報を読み取る装置がある。その構成は、光源から出射したレーザ光を、回転する又は揺動するミラーに導き、読み取り対象のバーコード記号を横切る方向に走査する走査光を照射する。バーコード記号で反射した反射光(戻り光)を受光センサで受光し、光電変換により情報信号(電流信号)を生成する。この情報信号には、バーコード記号の情報が含まれている。また、走査光を利用したものだけではなく、CCD等の撮像素子を用いて、バーコード記号を撮像して、画像処理によりバーコード情報が含まれる画像信号(情報信号)として読み取る読み取り装置もある。
【0004】
情報信号からバーコード記号の情報を得る周知な読み取り方法について説明する。
受光センサにより生成されたバーコード情報を含む信号は、変換回路により電流信号から電圧信号に変換される。さらに、電圧信号は、微分処理部により微分信号に変換されて、AGC部に入力される。AGC部は、微分信号値の大きさに基づき、増幅部の出力信号が予め決められた電圧範囲内になるようにゲインを調整する。
【0005】
増幅部の出力信号(以下、アナログ信号)は、比較部に入力するとともにピークホールド/ボトムホールド検出部、遅延部及び微分信号比較部に入力される。ピークホールド/ボトムホールド検出部では、入力されたアナログ信号のピーク値及びボトム値を検出する。そして、ピークホールド/ボトムホールド検出部から出力されたピーク値及びボトム値は、閾値設定部に入力される。
【0006】
閾値設定部では、そのピーク値及びボトム値を所定の比率により分圧して、アナログ信号のノイズと信号とに切り分けるための判定基準となる閾値信号を出力する。例えば、この分圧による閾値は、例えば、ピーク値又はボトム値の30%程度に設定されている。
【0007】
その後、比較部によって、アナログ信号と閾値設定部から出力される閾値信号とを比較し、閾値信号以上のレベルを持つ有効性確認信号を生成する。アナログ信号は、比較部及びピークホールド/ボトムホールド検出部による処理と並行して、遅延部に入力し、遅延させたアナログ信号を生成する。
【0008】
そして、アナログ信号と共に微分信号比較部に入力する。微分信号比較部では、アナログ信号と遅延したアナログ信号を比較することによってバーコード同期信号を生成する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平10−143602号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
前述したバーコード同期信号は、バーコードのエッジをあらわしているが、この中にはエッジだけではなくノイズ情報も含まれているため、バーコード同期信号の有効性を確認する必要がある。この有効性の確認は、同期信号有効性確認部にてバーコード同期信号と有効性確認信号を用いて行われる。バーコード幅データ生成部は、確認で有効となったバーコード同期信号を用いてバーコード信号を生成する。しかし、アナログ信号が飽和してしまうとバーコード同期信号のパルス幅が変化してしまい、正確なバーコード信号を生成することができず、読み取りエラーなどが発生する(後述する図3(a)を参照)。
【0011】
一般的に、AGC(Auto Gain Control)部を用いる理由は、読み取り対象のバーコード記号が読み取り装置から、どのような位置(距離)に置かれても、生成されたアナログ信号を飽和させないようにするために用いられるが、AGCが機能してアナログ信号が安定するまでの間に飽和し、読み取られる可能性があった。特許文献1では、この課題を解決するために、固定ゲインと組み合わせてアナログ信号の立ち上がりを緩和させる技術を提案しているが、切り替えを行うには、固定ゲインを小さく設定する必要があり、遠方のバーコードの読み取り性能が悪くなることがあった。
【0012】
そこで本発明は、光電変換により生成されたバーコード情報を含むアナログ信号のゲインを小さくすることなく且つAGCを不要とし、飽和したアナログ信号からでも正確なデータを生成し、読み取り性能の向上及び原価低減することができる情報読み取り装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は上記課題を解決するために、読み取り対象物に光を照射する光源と、前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、前記戻り光を受光して電気信号を生成するセンサ部と、前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、前記微分信号における飽和状態を検出する飽和検出部と、飽和の前及び飽和の後の前記微分信号から、それぞれに所定数のデータを選択して読み取るデータ選択手段と、前記飽和前の所定数のデータから第1の傾きと、前記飽和後の所定数のデータから第2の傾きを求める傾き検出部と、前記第1の傾きと前記第2の傾きの交点を求める交点検出部と、を備え、前記交点検出部により求められた交点を飽和している部分の極値とみなす情報読み取り装置を提供する。
【発明の効果】
【0014】
本発明によれば、光電変換により生成されたバーコード情報を含むアナログ信号のゲインを小さくすることなく且つAGCを備えずに、飽和したアナログ信号からでも正確なデータを生成し、読み取り性能の向上及び原価低減することができる情報読み取り装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】図1は、第1の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。
【図2】図2は、第1の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図3】図3(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図3(b)は、第1の実施形態における極値による微分信号とバーコード信号を示す図であり、図3(c)は、第1の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図4】図4は、第2の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。
【図5】図5は、第2の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図6】図6は、第2の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図7】図7は、第3の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図8】図8(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図8(b)は、第3の実施形態における極値による微分信号とバーコード信号を示す図であり、図8(c)は、第3の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図9】図9は、第4の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図10】図10は、第5の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図11】図11は、第6の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図12】図12は、第7の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図13】図13は、第8の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について詳細に説明する。
図1は、本発明に係る第1の実施形態の情報読み取り装置の構成例を示す模式図である。本実施形態の情報読み取り装置は、読み取り対象となるシンボル、例えばバーコード記号が示す情報を光学的に読み取る装置であり、以下の説明においては、走査光を用いたバーコード読み取り装置を一例とする。このバーコード読み取り装置は、情報信号の処理回路における微分処理部以降の構成に特徴を有している。以下の説明において、光電変換により生成されたバーコード記号の情報を含む信号を情報信号と称し、さらに、情報信号を微分処理及びA/D変換した信号を微分信号とし、その微分信号をあるタイミングでサンプリングした信号をサンプルデータと称している。
【0017】
このバーコード読み取り装置1は、大別すると、例えばレーザ光からなる光束を出射する光源部2と、レーザ光を走査させてバーコード記号3に向かって照射する走査ミラー部4と、バーコード記号3で反射した反射光(戻り光)を受光して光電変換により電流信号(情報信号)を生成する受光部5と、この情報信号に対して微分処理を施しA/D変換処理を行う信号検出部6と、微分信号された情報信号が飽和している状態か否かを検出する飽和検出部7と、非飽和状態の情報信号に対して極値を検出し、閾値信号を生成して情報信号の有効性を判断する有効データ判断部8と、飽和状態の情報信号に対してピーク値(交点)を検出するピーク値検出部9と、微分信号又はサンプルデータからバーコード幅データを生成し、デコード処理を行うバーコード幅データ生成部10と、バーコード幅データから生成したバーコード情報(物品の管理情報等)を出力するデータ出力部11と、少なくとも検出された極値及び閾値、情報信号のピーク値(交点)を時系列的に記憶するメモリ12と、装置全体を制御する制御部13と、で構成される。
【0018】
光源部2は、レーザダイオードからなる光源21と、光源21を駆動制御する光源制御部22と、走査ミラー部4にレーザ光を導く反射ミラー23とで構成される。
【0019】
走査ミラー部4は、電磁力を利用して軸24aを中心として走査ミラー24bを反復するように揺動し、反射ミラー24bから入射されたレーザ光を走査するように出射する走査ミラー本体24と、走査ミラー本体24に設けられた永久磁石24cに近接して配置された電磁コイル25に交番磁界を発生させて走査ミラー本体24の揺動の制御を行う駆動制御部26と、で構成される。
【0020】
受光部5は、走査ミラー本体24からの反射光(戻り光)を凹面鏡で集光する集光ミラー27と、集光ミラー27からの戻り光を受光して、光電変換による電流信号を生成する受光センサ28と、受光センサ28の受光面の前方に配置される受光絞り部(図示せず)及びバンドパスフィルタ29と、電流信号を電圧信号に変換する信号変換部30と、で構成される。
【0021】
また、信号検出部6は、信号変換部30から出力された情報信号を微分する微分処理部31と、その微分された情報信号にアナログ/デジタル変換処理を施し、微分信号として出力するA/D変換部32とで構成される。
【0022】
有効データ判断部8は、非飽和状態の微分信号から極値(極大値及び極小値)を検出する極値検出部33と、極値に基づき、閾値を設定する閾値設定部34と、検出された極値が有効なデータか否かを閾値と比較することによって判断する比較部35とで構成される。
【0023】
ピーク値検出部9は、飽和状態を有する微分信号から飽和期間の前後からそれぞれ2点のデータを選択するデータ選択部36と、後述するように、このデータからそれぞれの傾きを求める傾き計測部37と、傾きから微分信号のピーク値(交点)を検出する交点検出部38とで構成される。
【0024】
次に、バーコード読み取り装置1の各構成部位における作用について説明する。
このバーコード読み取り装置1は、光源21から発生させた光を反射ミラー23によって、走査ミラー24bへ偏向し、揺動する走査ミラー24bによって、バーコード記号3に対して左右両方向に光を走査させる。走査光12がバーコード記号を走査することによって反射される反射光(戻り光)13は集光されて受光センサ28に入射する。受光センサ28は、反射光13を電流信号に変換し、さらに信号変換部30において電流信号から電圧信号に変換される。電圧信号に変換された情報信号は、微分処理部31に入力され、微分信号に変換される。さらに、微分信号はA/D変換部32によりA/D変換される。変換した微分信号は、メモリ12に保存し、この微分信号に基づき、以後の処理を実行する。
【0025】
まず、微分信号が飽和しているか否か、飽和検出部7で判断する。飽和していない場合(非飽和状態)には、極値検出部33にてバーコード記号のエッジ、即ち微分信号の極値を検出する。極値検出部33によって検出された極値を基に、閾値設定部34において極値の有効性を判断する閾値を設定する。その後、比較部35では、検出された極値が有効なデータか否かを閾値設定部34において設定された閾値と比較することによって判断する。
【0026】
前述した閾値は、従来技術と同様に、検出を開始してから比較対象となる極値までの間で、最大(ピークホールド値)又は最小(ボトムホールド値)となる値を基に設定する。有効と判断された極値は、メモリ12に保存される。しかし、微分信号が飽和している場合(飽和状態)には、どの部分が極値になるのか判定できない。従って、以下の処理を実行する。飽和している信号の前後の傾きを求めるため、データ選択部36において、飽和している期間の前後(傾きを有している期間)から、少なくとも2組の2点のサンプルデータを選択する。
【0027】
これらのサンプルデータに基づき、傾き計測部37により、それぞれの傾きを求め、その傾きを延長した線の交点を検出する。この交点の基づき、飽和状態の期間に存在するバーコードエッジである極値を求める。そして、全てのサンプルデータに対して、有効な極値の検出が終了した後に、検出した極値からバーコード幅データ生成部10においてバーコード信号を生成し、デコード処理を行う。データ出力部11は、デコード処理されたバーコード信号から生成したバーコード情報(物品の管理情報等)を出力する。
【0028】
次に、図2に示すフローチャートを参照して、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。
まず、レーザからなる走査光をバーコード記号3に照射して、その反射光を受光部5で受光して(ステップS1)、光電変換により電流信号を生成する(ステップS2)。この電流信号は電圧信号に変換された後、微分処理部31において増幅、フィルタリング処理が施されて微分信号に変換される(ステップS3)。この時、初期設定として、フラグK=0、変数M=0及び、判断数Jに設定する(ステップS4)。ここで、Kとは飽和を検出してから飽和期間に存在する極値の検出が終了しているかどうかを表すフラグである。変数Mは、既に読み出しているサンプル数を示す。また、サンプル数Jは、予め設定されたサンプル数である。サンプル数Jは、固定値であるがプログラム等を書き換えることにより変更することも可能である。さらに、微分信号は、AD変換部32によりデジタル化され、メモリ12に保存される(ステップS5)。
次に、メモリ12に保存された微分信号を制御部13に読み出し(ステップS6)、飽和しているか否かを判断する(ステップS7)。飽和の判断は、微分信号の電圧値が、0又は最大値(例えば8bitであれば255)であるか否かで判断することができる。
【0029】
ステップS7の判断において、微分信号に飽和が起きていない場合(No)には、フラグKを確認して(ステップS8)、K=Oの場合には(Yes)、サンプルデータからバーコードのエッジに相当する極値(極大値もしくは極小値)を検出し(ステップS9)、閾値を設定し(ステップS10)、メモリ12に保存する。
【0030】
次に、検出された極値をメモリ12から読み出し、閾値と比較することで極値の有効性判断を行う(ステップS11)。この判断で、極値が有効と判断された場合には(Yes)、有効な極値として保存する(ステップS12)。一方、極値が有効と判断されなかった場合には(No)、次の微分信号における極値の判断に進む。ここで閾値は、極大値及び極小値に対して、基準電圧を基にして、プラス方向、マイナス方向に同じ電圧値となる値を適用する。また、閾値の設定方法は、有効と判断された極値の中で最小値(または最大値)を順次求めて、その値を基に設定する。
【0031】
このような有効な極値の算出処理を1回のスキャンで検出された全ての微分信号のデータに対して実施されたか否か判断する(ステップS13)。最終データまで実施されたならば(Yes)、バーコード幅データ生成部10により検出された有効な極値に基づき、バーコード幅データを生成し(ステップS14)、デコード処理を実行する(ステップS15)。デコード処理が成功か否かを判断し(ステップS16)、この判断でデコード処理が成功した場合には(Yes)、読み取り終了となる。一方、デコード処理が不成功であった場合には(No)、ステップS1に戻り、再度、反射光を受光するところから処理を実行する。
【0032】
次に、前述したステップS7の飽和検出の判断で、微分信号に飽和が起きていた場合(Yes)について説明する。前述したように、微分信号に飽和状態である場合には、極値を正確に検出することができない。そのため、飽和が起きている期間の微分信号を次々に読み出すとともに、フラグK=1とし及び変数M=0を維持し(ステップS17)、且つ飽和している期間を検出して(ステップS18)、ステップS6に戻る。そして、飽和状態(飽和期間)が終了した場合には、飽和検出部における判断でK=1であるため(No)、飽和していない場合の処理とは異なるルーチンに移行する。
【0033】
次に、変数Mとサンプル数Jを比較する(ステップS19)。この比較において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、メモリ12から微分信号の読み出しを継続する。これは、飽和終了後の微分信号における傾きを求めるため、飽和終了後の所定の期間、サンプルデータを読み取るために行う。また、一度、飽和が終了し、サンプル数J+1個のサンプルデータの読み取り中に再度飽和を検出した場合は、変数Mをリセットし、微分信号の飽和が終了してから再度、サンプルデータの読み取りを行う。そのため、ノイズの影響を少なくするために、サンプル数Jはある程度、多く読み取ることが望ましい。
【0034】
一方、ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に進む。まず、微分信号が飽和する前の傾き1を求めるため、飽和する前のサンプルデータから2点のデータを選択し(ステップS20)、傾き1を求める(ステップS21)。
【0035】
次に、飽和した後の傾き2を求めるため、微分信号の飽和終了後に読み取ったJ+1個のサンプルデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。そして、傾き1、傾き2による交点を求め、この交点を極値とし、メモリ12に保存する(ステップS24)。ここで飽和期間の極値検出が終了したため、フラグK=0及び変数M=0とし、初期状態に戻す(ステップS25)。以降の処理は、飽和しない場合と同じ処理となる。
図3(a),(b),(c)を参照して、微分信号が飽和状態のときの処理について説明する。ここで、図3(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図3(b)は、第1の実施形態において作成された極値による微分信号とバーコード信号を示す図であり、図3(c)は、第1の実施形態における微分信号から選択され、即ち読み取られたサンプルデータを示す拡大図である。
【0036】
まず、微分信号の飽和を検出し、点B4からA4までのサンプルデータの読み取りを行う。ここでは、サンプル数J=3とする。飽和する前の点B2,B3を選択し、傾き1を求める。次に、飽和終了後の点A2,A3を選択し、傾き2を求める。傾き1、傾き2の交点を求め、この交点を極値D1(時間データ)とする。
【0037】
図3(c)から、微分信号が飽和しなかったと仮定した場合における想定される極値Drと、本実施形態で算出した極値D1は、ほぼ同じ時間となっている。従って、想定される極値Drに対して、本実施形態を用いることで飽和している期間の同じ時間の極値(交点)D1を検出することができることがわかる。
【0038】
以上説明したように本実施形態は、AGCを構成部位には用いていないため、AGCによって発生したレスポンスの劣化もなく、アナログ信号が飽和しても正確なバーコードエッジ検出が可能であるためA/D変換前のゲインを高く設定することができ、性能の劣化もない。
【0039】
また、極値の有効性を判定する閾値は、可変であることで説明したが勿論、予め設定した固定であってもよいし、さらに、基準電圧に対してプラス側、マイナス側をそれぞれに違う値をとってもよい。また、本実施形態では、サンプルデータにおける全ての極値を検出しているが、極値ではなく、予め設定した基準電圧(中点電位)を超えた場合は、超えている期間内の最大値、基準電圧を下回ったら、下回っている期間内の最小値を極値として交互に検出していってもよい。
【0040】
次に、第2の実施形態について説明する。
図4は、第2の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。 このバーコード読み取り装置は、前述した第1の実施形態とは、微分信号が飽和した状態における極値の検出方法が異なっている。第1の実施形態では、傾きによる交点検出により極値を決定したが、本実施形態では、2次曲線近似を用いて極値を求めている。従って、本実施形態は、第1の実施形態の傾き計測部37及び交点検出部38に替わって、2次曲線近似部41を用いた構成である。本実施形態の構成部位において、前述した第1の実施形態と同等の構成部位には同じ参照符号を付して、その詳細な説明は省略する。
【0041】
2次曲線近似部41は、2次曲線近似として、y=ax^2+bx+cにデータ選択部36で選択した3点のx,yを代入し、係数a,b,cを求めることである。この演算処理は、2次曲線近似部41を独自に設けてもよいし、制御部13において演算処理を行ってもよい。
【0042】
微分信号が飽和している場合、どの部分が極値になるのか判定できないため、以下の処理を実施する。データ選択部36において、飽和の前後の微分信号の中からサンプルデータとして、3点のデータを選択して読み取る。この時、3点のデータ中には、飽和前と飽和終了後のデータが必ず含まれていなければならない。
【0043】
次に、2次曲線近似部41において、選択した3点のデータを用いて、近似した2次曲線を求める。図6に示すように、この2次曲線における微分を求めることで極値D1を算出する。このような方法により、微分信号が飽和した場合であっても、バーコードエッジに対応する部分を極値として検出する。さらに、全ての微分信号の振幅による極値に対して、有効な極値の検出を終了した後に、検出した極値に基づき、バーコード幅データ生成部10によりバーコード信号を生成し、デコード処理を行い、正確なバーコード情報を生成する。
【0044】
図5に示すフローチャートを参照して、バーコード記号からの反射光を受光してから、バーコード信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
【0045】
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された微分信号がメモリ12に保存される(ステップS1−S5)。メモリ12から読み出された微分信号が飽和状態か非飽和状態かを判断して、非飽和状態であれば、微分信号からバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリ12に保存する。検出された極値はこの閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。また飽和状態であれば、その飽和期間を検出する(ステップS7,S8)。一方、閾値との比較で有効な極値でなければ(No)、次の微分信号の振幅における極値の判断に進む。そして、メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる(ステップS13−S16)。
【0046】
上記ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、サンプルデータの読み取りを継続する。一方、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、2次曲線近似を行うために、微分信号が飽和している期間の前後から、図6に示すサンプリングの拡大図に示すように、3点のデータ(例えば、B1,A2,A3)を選択する(ステップS31)。選択した3点のデータを用いて、2次曲線近似を行う(ステップS32)。作成された2次曲線の微分によって、図6に示す交点である極値D1を求めて、メモリ12に保存する(ステップS33)。
【0047】
前述したように、2次曲線近似は、y=ax^2+bx+cにデータ選択部36で選択した3点のx,yを代入し、係数a,b,cを求めることである。ここで飽和期間の極値検出が終了した後、フラグK=0及び変数M=0とし初期状態に戻す(ステップS25)。以降の処理は、ステップS13に移行して、飽和しない場合と同じ処理を実施する(ステップS13−S16)。
【0048】
以上説明したように本実施形態は、2次曲線近似を用いることにより、極値検出を行うため、AGCを用いず、AGCによって発生したレスポンスの劣化もなく、微分信号が飽和しても正確なバーコードエッジ検出が可能であるためA/D変換前のゲインを高く設定することができ、性能の劣化もない。さらに、前述した第1の実施形態と同等の効果を奏する。
【0049】
次に、第3の実施形態について説明する。
第3の実施形態に係るバーコード読み取り装置は、前述した第1の実施形態とは、同等の構成であり、微分信号が飽和した状態における極値の検出方法が異なっている。第1の実施形態では、1回の傾きによる交点検出により極値を決定したが、本実施形態では、微分信号から交点の検出を複数回行い、その極値の平均を取ることによって誤差を小さくしている。従って、本実施形態は、第1の実施形態の構成と同等であり、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0050】
微分信号が飽和している状態では、どの部分が極値になるのか判定できないため、まず、飽和している微分信号の前後の傾きを求めるため、データ選択部36において飽和している期間の前後からそれぞれ2点のデータを読み取る。
【0051】
これらのデータに基づき、傾き計測部37において、それぞれに傾きを求めて、その傾きによる交点を検出する。この交点から飽和している期間に存在するバーコードエッジである極値を求める。しかし、図8(c)に示すように、データ選択部36により選択されたデータにノイズが含まれていた場合には、データ例えば、点B4,B5と点B1,B2とでは求められた傾きが異なってしまう。つまり、求められた極値にズレが発生し、バーコードエッジに誤差が発生してしまう。尚、図8(a)は、比較のために示した従来の微分信号とバーコード信号を示し、図8(b)は、本実施形態による求めた極値による微分信号とバーコード信号を示す図である。
【0052】
そこで本実施形態では、データの選択から交点の検出までを複数回行い、求められた複数の交点の平均を取り、有効な極値を得ることにより、ノイズによって生じる誤差を小さくしている。ここで、平均を取るデータは、時間データ(図8(c)における点A1−4,B1−4)となる。
【0053】
図8(a)乃至(c)を参照して、サンプルデータがノイズを含んでいた場合について説明する。ここでは、データの点B4にノイズが発生している例である。そのため、点B1,B4及び点A1,A4の交点による極値D3は、飽和しなかった場合に想定されるボトムの極値Drの時点に対して、大きくズレが生じる。また、点B1,B2及び点A1,A2による交点D2、さらに、点B2,B3及び点A2,A3による交点D1を求めて、D1,D2,D3の平均を取ることによって、求められた極値Daと極値Drとの誤差を小さくすることができる。全てのサンプルデータに対して、有効な極値の検出が終了した後に、検出した極値をもとにバーコード幅データ生成部10においてバーコード信号を生成し、デコード処理を行う。
【0054】
図7に示すフローチャートを参照して、バーコードからの反射光を受光してから、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は、前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された信号に微分処理を施して、デジタル化された微分信号としてメモリ12に保存される(ステップS1−S5)。メモリ12から読み出された微分信号が非飽和状態であれば、微分信号から読み取ったサンプルデータからバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリ12に保存する。検出された極値は閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。また飽和状態であれば、その飽和期間を検出する(ステップS7,S8)。一方、閾値との比較で有効な極値でなければ(No)、次の微分信号の振幅における極値の判断に進む。メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる。しかし、デコードが不成功となった場合には、再度、反射光を受光するところから、処理を行う(ステップS13−S16)。
【0055】
上記ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較結果において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、ステップS6に戻り、メモリ12から微分信号を読み出して継続する。
【0056】
ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に移行する。
まず、求める交点Dの数の変数N=0として初期化し(ステップS51)、飽和する前の傾き1を求めるため飽和する前に読み取ったサンプルデータから2点のデータを選択し(ステップS20)、傾き1を求める(ステップS21)。
【0057】
次に、同様に飽和した後の傾き2を求めるために飽和終了後に読み出したサンプル数J+1個のデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。そして、傾き1及び傾き2による交点を求め、この交点を仮極値とし、メモリ12に保存する(ステップS52)。
【0058】
次に、変数Nをインクリメントして(ステップS53)、予め設定した検出回数L回に達したか確認した後(ステップS54)、達していなければ(No)、ステップS20に戻り、再度、仮の極値を検出する。このような仮極値を求める処理をL回繰り返し(ステップS54:Yes)、L回の仮極値の平均(時間データ)を求めることで有効な極値とし、これをメモリ12に保存する(ステップS55)。ここで、飽和期間の極値検出が終了したため、フラグK=0,変数M=0として初期状態に戻し(ステップS25)、次のステップS13に移行する。以降の処理は、飽和しない場合と同じ処理となる。
【0059】
以上説明した本実施形態によれば、データの選択から交点の検出までを複数回行い、仮に求めた複数の極値の平均値を有効な極値として設定することにより、データ選択部36により選択されたデータにノイズが含まれた場合であっても、ノイズによって生じる誤差を小さくすることができる。
【0060】
次に、第4の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部によるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。前述した第1の実施形態では、所定の範囲の中からデータを選択していたが、本実施形態では、バーコードエッジとの誤差をより小さくするため、以下のような手法を用いてデータを選択する。
【0061】
図9は、サンプルデータにおける選択されたデータ(点A1−4,点B1−4)を示す拡大図である。
図9には、それぞれ点B2,B4−A1,A2及びB1,B3−A1,A2による交点D1,D2を示す。微分信号が飽和した直後の、データH1及び飽和終了直前のデータH3からの時間がほぼ同じとなる点B1,B3−点A1,A2から求めた交点D2の方が飽和しなかった場合のボトムである交点Drとの差が少ない。つまり、飽和直後及び飽和終了直前のデータから同じ間隔のデータを少なくとも1個ずつ、ここでは点B1,A1を選択することを特徴としている。
【0062】
以上説明した本実施形態によれば、飽和直後の時間と飽和終了直前の時間が同じデータを用いて交点を検出して、その交点に基づき有効な極値を求めることにより、より誤差を小さくすることができる。
【0063】
次に、第5の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部によるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。前述した第1の実施形態では、所定の範囲の中からデータを選択していたが、本実施形態では、バーコードエッジとの誤差をより小さくするため、以下のような手法を用いてデータを選択する。
【0064】
図10は、サンプルデータにおける選択されたデータ(点A1−4,点B1−4)を示す拡大図である。
図10には、それぞれB2,B4−A1,A2及びB1,B2−A1,A2による交点D1,D2を示している。選択したデータの間隔B1,B2間、と間隔A1,A2間が同じ時間のデータとして、求めた交点D2の方が、飽和しなかった場合のボトムである交点Drとの差が少ない。つまり、飽和前の微分信号から選択した2点間(例えば、点B1−B2)のデータの期間(又は区間)が、飽和後の微分信号から選択した2点間(例えば、A1−A2)のデータの期間で同じ時間間隔になるようにする。つまり、点B1−B2の期間と点A1−A2の期間とが、同じ時間間隔を有している。
【0065】
以上説明した本実施形態によれば、飽和直後及び飽和終了直前の期間で、それぞれに同じ時間間隔のデータによる交点を用いて、有効な極値を求めることにより、より誤差を小さくすることができる。
【0066】
次に、第6の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態における交点検出部における交点検出の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0067】
図11に示すフローチャートを参照して、バーコードからの反射光を受光してから、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
【0068】
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は、前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された微分信号をメモリ12に保存する(ステップS1−S5)。メモリ12から読み出された微分信号が非飽和状態であれば、微分信号からバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリに保存する。検出された極値は閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。一方、微分信号が飽和状態であれば、極値を正確に検出することができない。このため、飽和状態のデータは、次々に読み出すとともに、K=1とし且つ飽和している期間を検出する(ステップS17,S18)。また、ステップS11において、有効な極値でなければ(No)、次のデータにおける極値の判断に進む。メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる。しかし、デコードが不成功となった場合には、再度、反射光を受光するところから、処理を行う(ステップS13−S16)。
【0069】
ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較結果において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、ステップS6に戻り、メモリ12からデータの読み取りを継続する。
【0070】
ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に移行する。まず、飽和する前の傾き1を求めるため、飽和する前のデータから2点を選択し(ステップS20)、傾き1を求める(ステップS21)。
【0071】
次に、飽和した後の傾き2を求めるために、飽和終了後に読み取ったサンプル数J+1個のデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。その後、傾き1と傾き2の積を求めて、その積の正負を判断する(ステップS61)。この判断において、積が負の値であれば(Yes)、それぞれの傾きの極性が異なるため、飽和が極値で発生していると判断できる。従って、傾き1と傾き2の交点を仮の極値として、メモリ12に保存する(ステップS62)。しかし、傾き1と傾き2の積が正の値であれば(No)、傾き1、傾き2の積が正の値であった場合は、極値検出のための交点を求める処理をスキップし、次のステップS25に移行する。傾き1と傾き2の積が正の値であれば傾き1,傾き2の極性は同じであり、飽和が極値以外で発生していると判断できる。
【0072】
次に、飽和期間の極値検出が終了したため、フラグK=0,変数M=0として初期状態に戻し(ステップS25)、次のステップS13に移行する。
【0073】
図12は、微分信号から選択されたデータ(点A1−5,点B1−5)を示す拡大図である。この例では、点B3において、ノイズによる飽和状態が発生している。ここでは、飽和する前の傾き1を求める点をB4,B5とし、飽和終了後の傾き2を求める点をB1,B2とする。このように、点B3を排除して求めた傾き1、傾き2は、同じ極性(傾き方向)であり、積を取ると、正の値となる。そのため、この飽和状態は、極値以外で発生したと判断できる。
【0074】
以上説明したように本実施形態によれば、ノイズによる飽和状態が検出された場合であっても、その飽和状態におけるデータを排除することにより、極値検出において、ノイズの影響をなくすことができる。
【0075】
次に、第7の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部におけるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0076】
図13に示すように、バーコード信号にはノイズが重畳されるが、一般的に、基準電圧付近のノイズが多くなる。これは、バーコード記号のバー間の白部分に多く存在するスペックルノイズである。
【0077】
本実施形態は、データを選択する際は、基準電圧付近ではなく、ノイズが少ない飽和している部分近傍から選択する。このようなデータ選択により、有効な極値にノイズの影響を減らすことができる。
【0078】
次に、第8の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態における飽和検出部における飽和検出の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0079】
本実施形態による飽和検出は、微分信号の電圧値が0又は最大(8bitであれば255)か否かにより判断する。しかし、ノイズの影響を考慮して、飽和検出電圧値にマージンを持たせている。即ち、電圧値のデータが0+Va以下又は、255−Vb以上の場合は、飽和しているとみなす。ここで、Va及びVbは、同じ値であっても良い。また、Va,Vbはノイズと判断できるだけの小さな値とする。
【0080】
本実施形態によれば、飽和対策のために用いるAGCが不要となり、且つゲインを小さくしなくともよいため、読み取り性能能向上及び原価低減の効果を奏する。
【0081】
尚、本発明の情報読み取り装置は、前述した第1乃至第6の実施形態において、レーザ光による走査光を用いて、バーコードに照射し、そのバーコードからの反射光(戻り光)を用いたバーコード読み取り装置を一例として説明したが、勿論、この構成に限定されるものではなく、撮像素子(例えば、CCD又はCMOSイメージセンサ)を用いて撮像してバーコード記号を含む画像からバーコード情報を生成する情報読み取り装置であってもよい。また、シンボルは、バーコード記号に限定されるものではなく、他の形態のシンボルであってもよく、光学的に読み取り、生成されたアナログ信号であれば、本発明を適用することは容易であり、前述したと同等の作用効果を得ることができる。
【0082】
本実施形態の情報読み取り装置は、例えば、バーコードリーダ、距離センサ、プリンタ、車間センサ、防犯センサ、走査型レーザ顕微鏡、携帯情報端末、レーザ走査装置等に搭載される光学式読み取り装置に対する適用に好適する。
【符号の説明】
【0083】
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…A/D変換部、33…極値検出部、34…閾値設定部、35…比較部、36…データ選択部、37…傾き計測部、38…交点検出部。
【技術分野】
【0001】
本発明は、バーコード等のシンボルからの情報を含んだ光を受光して、そのシンボルから情報を読み取る情報読み取り装置に関する。
【背景技術】
【0002】
従来から情報読み取り装置を用いた管理手法として、マークやシンボル例えば、バーコード記号を用いて、商品販売、物流、生産工程等における物品の情報管理が知られている。適正な管理を行うためには、バーコード記号を正確に読み取ることが最も重要である。
【0003】
このバーコード読み取り装置としては、走査するレーザ光を照射し、その反射光に含まれるバーコード情報を読み取る装置がある。その構成は、光源から出射したレーザ光を、回転する又は揺動するミラーに導き、読み取り対象のバーコード記号を横切る方向に走査する走査光を照射する。バーコード記号で反射した反射光(戻り光)を受光センサで受光し、光電変換により情報信号(電流信号)を生成する。この情報信号には、バーコード記号の情報が含まれている。また、走査光を利用したものだけではなく、CCD等の撮像素子を用いて、バーコード記号を撮像して、画像処理によりバーコード情報が含まれる画像信号(情報信号)として読み取る読み取り装置もある。
【0004】
情報信号からバーコード記号の情報を得る周知な読み取り方法について説明する。
受光センサにより生成されたバーコード情報を含む信号は、変換回路により電流信号から電圧信号に変換される。さらに、電圧信号は、微分処理部により微分信号に変換されて、AGC部に入力される。AGC部は、微分信号値の大きさに基づき、増幅部の出力信号が予め決められた電圧範囲内になるようにゲインを調整する。
【0005】
増幅部の出力信号(以下、アナログ信号)は、比較部に入力するとともにピークホールド/ボトムホールド検出部、遅延部及び微分信号比較部に入力される。ピークホールド/ボトムホールド検出部では、入力されたアナログ信号のピーク値及びボトム値を検出する。そして、ピークホールド/ボトムホールド検出部から出力されたピーク値及びボトム値は、閾値設定部に入力される。
【0006】
閾値設定部では、そのピーク値及びボトム値を所定の比率により分圧して、アナログ信号のノイズと信号とに切り分けるための判定基準となる閾値信号を出力する。例えば、この分圧による閾値は、例えば、ピーク値又はボトム値の30%程度に設定されている。
【0007】
その後、比較部によって、アナログ信号と閾値設定部から出力される閾値信号とを比較し、閾値信号以上のレベルを持つ有効性確認信号を生成する。アナログ信号は、比較部及びピークホールド/ボトムホールド検出部による処理と並行して、遅延部に入力し、遅延させたアナログ信号を生成する。
【0008】
そして、アナログ信号と共に微分信号比較部に入力する。微分信号比較部では、アナログ信号と遅延したアナログ信号を比較することによってバーコード同期信号を生成する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平10−143602号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
前述したバーコード同期信号は、バーコードのエッジをあらわしているが、この中にはエッジだけではなくノイズ情報も含まれているため、バーコード同期信号の有効性を確認する必要がある。この有効性の確認は、同期信号有効性確認部にてバーコード同期信号と有効性確認信号を用いて行われる。バーコード幅データ生成部は、確認で有効となったバーコード同期信号を用いてバーコード信号を生成する。しかし、アナログ信号が飽和してしまうとバーコード同期信号のパルス幅が変化してしまい、正確なバーコード信号を生成することができず、読み取りエラーなどが発生する(後述する図3(a)を参照)。
【0011】
一般的に、AGC(Auto Gain Control)部を用いる理由は、読み取り対象のバーコード記号が読み取り装置から、どのような位置(距離)に置かれても、生成されたアナログ信号を飽和させないようにするために用いられるが、AGCが機能してアナログ信号が安定するまでの間に飽和し、読み取られる可能性があった。特許文献1では、この課題を解決するために、固定ゲインと組み合わせてアナログ信号の立ち上がりを緩和させる技術を提案しているが、切り替えを行うには、固定ゲインを小さく設定する必要があり、遠方のバーコードの読み取り性能が悪くなることがあった。
【0012】
そこで本発明は、光電変換により生成されたバーコード情報を含むアナログ信号のゲインを小さくすることなく且つAGCを不要とし、飽和したアナログ信号からでも正確なデータを生成し、読み取り性能の向上及び原価低減することができる情報読み取り装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は上記課題を解決するために、読み取り対象物に光を照射する光源と、前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、前記戻り光を受光して電気信号を生成するセンサ部と、前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、前記微分信号における飽和状態を検出する飽和検出部と、飽和の前及び飽和の後の前記微分信号から、それぞれに所定数のデータを選択して読み取るデータ選択手段と、前記飽和前の所定数のデータから第1の傾きと、前記飽和後の所定数のデータから第2の傾きを求める傾き検出部と、前記第1の傾きと前記第2の傾きの交点を求める交点検出部と、を備え、前記交点検出部により求められた交点を飽和している部分の極値とみなす情報読み取り装置を提供する。
【発明の効果】
【0014】
本発明によれば、光電変換により生成されたバーコード情報を含むアナログ信号のゲインを小さくすることなく且つAGCを備えずに、飽和したアナログ信号からでも正確なデータを生成し、読み取り性能の向上及び原価低減することができる情報読み取り装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】図1は、第1の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。
【図2】図2は、第1の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図3】図3(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図3(b)は、第1の実施形態における極値による微分信号とバーコード信号を示す図であり、図3(c)は、第1の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図4】図4は、第2の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。
【図5】図5は、第2の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図6】図6は、第2の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図7】図7は、第3の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図8】図8(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図8(b)は、第3の実施形態における極値による微分信号とバーコード信号を示す図であり、図8(c)は、第3の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図9】図9は、第4の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図10】図10は、第5の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図11】図11は、第6の実施形態におけるバーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明するためのフローチャートである。
【図12】図12は、第7の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【図13】図13は、第8の実施形態における微分信号で選択されたサンプルデータを示す拡大図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について詳細に説明する。
図1は、本発明に係る第1の実施形態の情報読み取り装置の構成例を示す模式図である。本実施形態の情報読み取り装置は、読み取り対象となるシンボル、例えばバーコード記号が示す情報を光学的に読み取る装置であり、以下の説明においては、走査光を用いたバーコード読み取り装置を一例とする。このバーコード読み取り装置は、情報信号の処理回路における微分処理部以降の構成に特徴を有している。以下の説明において、光電変換により生成されたバーコード記号の情報を含む信号を情報信号と称し、さらに、情報信号を微分処理及びA/D変換した信号を微分信号とし、その微分信号をあるタイミングでサンプリングした信号をサンプルデータと称している。
【0017】
このバーコード読み取り装置1は、大別すると、例えばレーザ光からなる光束を出射する光源部2と、レーザ光を走査させてバーコード記号3に向かって照射する走査ミラー部4と、バーコード記号3で反射した反射光(戻り光)を受光して光電変換により電流信号(情報信号)を生成する受光部5と、この情報信号に対して微分処理を施しA/D変換処理を行う信号検出部6と、微分信号された情報信号が飽和している状態か否かを検出する飽和検出部7と、非飽和状態の情報信号に対して極値を検出し、閾値信号を生成して情報信号の有効性を判断する有効データ判断部8と、飽和状態の情報信号に対してピーク値(交点)を検出するピーク値検出部9と、微分信号又はサンプルデータからバーコード幅データを生成し、デコード処理を行うバーコード幅データ生成部10と、バーコード幅データから生成したバーコード情報(物品の管理情報等)を出力するデータ出力部11と、少なくとも検出された極値及び閾値、情報信号のピーク値(交点)を時系列的に記憶するメモリ12と、装置全体を制御する制御部13と、で構成される。
【0018】
光源部2は、レーザダイオードからなる光源21と、光源21を駆動制御する光源制御部22と、走査ミラー部4にレーザ光を導く反射ミラー23とで構成される。
【0019】
走査ミラー部4は、電磁力を利用して軸24aを中心として走査ミラー24bを反復するように揺動し、反射ミラー24bから入射されたレーザ光を走査するように出射する走査ミラー本体24と、走査ミラー本体24に設けられた永久磁石24cに近接して配置された電磁コイル25に交番磁界を発生させて走査ミラー本体24の揺動の制御を行う駆動制御部26と、で構成される。
【0020】
受光部5は、走査ミラー本体24からの反射光(戻り光)を凹面鏡で集光する集光ミラー27と、集光ミラー27からの戻り光を受光して、光電変換による電流信号を生成する受光センサ28と、受光センサ28の受光面の前方に配置される受光絞り部(図示せず)及びバンドパスフィルタ29と、電流信号を電圧信号に変換する信号変換部30と、で構成される。
【0021】
また、信号検出部6は、信号変換部30から出力された情報信号を微分する微分処理部31と、その微分された情報信号にアナログ/デジタル変換処理を施し、微分信号として出力するA/D変換部32とで構成される。
【0022】
有効データ判断部8は、非飽和状態の微分信号から極値(極大値及び極小値)を検出する極値検出部33と、極値に基づき、閾値を設定する閾値設定部34と、検出された極値が有効なデータか否かを閾値と比較することによって判断する比較部35とで構成される。
【0023】
ピーク値検出部9は、飽和状態を有する微分信号から飽和期間の前後からそれぞれ2点のデータを選択するデータ選択部36と、後述するように、このデータからそれぞれの傾きを求める傾き計測部37と、傾きから微分信号のピーク値(交点)を検出する交点検出部38とで構成される。
【0024】
次に、バーコード読み取り装置1の各構成部位における作用について説明する。
このバーコード読み取り装置1は、光源21から発生させた光を反射ミラー23によって、走査ミラー24bへ偏向し、揺動する走査ミラー24bによって、バーコード記号3に対して左右両方向に光を走査させる。走査光12がバーコード記号を走査することによって反射される反射光(戻り光)13は集光されて受光センサ28に入射する。受光センサ28は、反射光13を電流信号に変換し、さらに信号変換部30において電流信号から電圧信号に変換される。電圧信号に変換された情報信号は、微分処理部31に入力され、微分信号に変換される。さらに、微分信号はA/D変換部32によりA/D変換される。変換した微分信号は、メモリ12に保存し、この微分信号に基づき、以後の処理を実行する。
【0025】
まず、微分信号が飽和しているか否か、飽和検出部7で判断する。飽和していない場合(非飽和状態)には、極値検出部33にてバーコード記号のエッジ、即ち微分信号の極値を検出する。極値検出部33によって検出された極値を基に、閾値設定部34において極値の有効性を判断する閾値を設定する。その後、比較部35では、検出された極値が有効なデータか否かを閾値設定部34において設定された閾値と比較することによって判断する。
【0026】
前述した閾値は、従来技術と同様に、検出を開始してから比較対象となる極値までの間で、最大(ピークホールド値)又は最小(ボトムホールド値)となる値を基に設定する。有効と判断された極値は、メモリ12に保存される。しかし、微分信号が飽和している場合(飽和状態)には、どの部分が極値になるのか判定できない。従って、以下の処理を実行する。飽和している信号の前後の傾きを求めるため、データ選択部36において、飽和している期間の前後(傾きを有している期間)から、少なくとも2組の2点のサンプルデータを選択する。
【0027】
これらのサンプルデータに基づき、傾き計測部37により、それぞれの傾きを求め、その傾きを延長した線の交点を検出する。この交点の基づき、飽和状態の期間に存在するバーコードエッジである極値を求める。そして、全てのサンプルデータに対して、有効な極値の検出が終了した後に、検出した極値からバーコード幅データ生成部10においてバーコード信号を生成し、デコード処理を行う。データ出力部11は、デコード処理されたバーコード信号から生成したバーコード情報(物品の管理情報等)を出力する。
【0028】
次に、図2に示すフローチャートを参照して、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。
まず、レーザからなる走査光をバーコード記号3に照射して、その反射光を受光部5で受光して(ステップS1)、光電変換により電流信号を生成する(ステップS2)。この電流信号は電圧信号に変換された後、微分処理部31において増幅、フィルタリング処理が施されて微分信号に変換される(ステップS3)。この時、初期設定として、フラグK=0、変数M=0及び、判断数Jに設定する(ステップS4)。ここで、Kとは飽和を検出してから飽和期間に存在する極値の検出が終了しているかどうかを表すフラグである。変数Mは、既に読み出しているサンプル数を示す。また、サンプル数Jは、予め設定されたサンプル数である。サンプル数Jは、固定値であるがプログラム等を書き換えることにより変更することも可能である。さらに、微分信号は、AD変換部32によりデジタル化され、メモリ12に保存される(ステップS5)。
次に、メモリ12に保存された微分信号を制御部13に読み出し(ステップS6)、飽和しているか否かを判断する(ステップS7)。飽和の判断は、微分信号の電圧値が、0又は最大値(例えば8bitであれば255)であるか否かで判断することができる。
【0029】
ステップS7の判断において、微分信号に飽和が起きていない場合(No)には、フラグKを確認して(ステップS8)、K=Oの場合には(Yes)、サンプルデータからバーコードのエッジに相当する極値(極大値もしくは極小値)を検出し(ステップS9)、閾値を設定し(ステップS10)、メモリ12に保存する。
【0030】
次に、検出された極値をメモリ12から読み出し、閾値と比較することで極値の有効性判断を行う(ステップS11)。この判断で、極値が有効と判断された場合には(Yes)、有効な極値として保存する(ステップS12)。一方、極値が有効と判断されなかった場合には(No)、次の微分信号における極値の判断に進む。ここで閾値は、極大値及び極小値に対して、基準電圧を基にして、プラス方向、マイナス方向に同じ電圧値となる値を適用する。また、閾値の設定方法は、有効と判断された極値の中で最小値(または最大値)を順次求めて、その値を基に設定する。
【0031】
このような有効な極値の算出処理を1回のスキャンで検出された全ての微分信号のデータに対して実施されたか否か判断する(ステップS13)。最終データまで実施されたならば(Yes)、バーコード幅データ生成部10により検出された有効な極値に基づき、バーコード幅データを生成し(ステップS14)、デコード処理を実行する(ステップS15)。デコード処理が成功か否かを判断し(ステップS16)、この判断でデコード処理が成功した場合には(Yes)、読み取り終了となる。一方、デコード処理が不成功であった場合には(No)、ステップS1に戻り、再度、反射光を受光するところから処理を実行する。
【0032】
次に、前述したステップS7の飽和検出の判断で、微分信号に飽和が起きていた場合(Yes)について説明する。前述したように、微分信号に飽和状態である場合には、極値を正確に検出することができない。そのため、飽和が起きている期間の微分信号を次々に読み出すとともに、フラグK=1とし及び変数M=0を維持し(ステップS17)、且つ飽和している期間を検出して(ステップS18)、ステップS6に戻る。そして、飽和状態(飽和期間)が終了した場合には、飽和検出部における判断でK=1であるため(No)、飽和していない場合の処理とは異なるルーチンに移行する。
【0033】
次に、変数Mとサンプル数Jを比較する(ステップS19)。この比較において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、メモリ12から微分信号の読み出しを継続する。これは、飽和終了後の微分信号における傾きを求めるため、飽和終了後の所定の期間、サンプルデータを読み取るために行う。また、一度、飽和が終了し、サンプル数J+1個のサンプルデータの読み取り中に再度飽和を検出した場合は、変数Mをリセットし、微分信号の飽和が終了してから再度、サンプルデータの読み取りを行う。そのため、ノイズの影響を少なくするために、サンプル数Jはある程度、多く読み取ることが望ましい。
【0034】
一方、ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に進む。まず、微分信号が飽和する前の傾き1を求めるため、飽和する前のサンプルデータから2点のデータを選択し(ステップS20)、傾き1を求める(ステップS21)。
【0035】
次に、飽和した後の傾き2を求めるため、微分信号の飽和終了後に読み取ったJ+1個のサンプルデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。そして、傾き1、傾き2による交点を求め、この交点を極値とし、メモリ12に保存する(ステップS24)。ここで飽和期間の極値検出が終了したため、フラグK=0及び変数M=0とし、初期状態に戻す(ステップS25)。以降の処理は、飽和しない場合と同じ処理となる。
図3(a),(b),(c)を参照して、微分信号が飽和状態のときの処理について説明する。ここで、図3(a)は、比較のために示した従来の微分信号とバーコード信号を示す図であり、図3(b)は、第1の実施形態において作成された極値による微分信号とバーコード信号を示す図であり、図3(c)は、第1の実施形態における微分信号から選択され、即ち読み取られたサンプルデータを示す拡大図である。
【0036】
まず、微分信号の飽和を検出し、点B4からA4までのサンプルデータの読み取りを行う。ここでは、サンプル数J=3とする。飽和する前の点B2,B3を選択し、傾き1を求める。次に、飽和終了後の点A2,A3を選択し、傾き2を求める。傾き1、傾き2の交点を求め、この交点を極値D1(時間データ)とする。
【0037】
図3(c)から、微分信号が飽和しなかったと仮定した場合における想定される極値Drと、本実施形態で算出した極値D1は、ほぼ同じ時間となっている。従って、想定される極値Drに対して、本実施形態を用いることで飽和している期間の同じ時間の極値(交点)D1を検出することができることがわかる。
【0038】
以上説明したように本実施形態は、AGCを構成部位には用いていないため、AGCによって発生したレスポンスの劣化もなく、アナログ信号が飽和しても正確なバーコードエッジ検出が可能であるためA/D変換前のゲインを高く設定することができ、性能の劣化もない。
【0039】
また、極値の有効性を判定する閾値は、可変であることで説明したが勿論、予め設定した固定であってもよいし、さらに、基準電圧に対してプラス側、マイナス側をそれぞれに違う値をとってもよい。また、本実施形態では、サンプルデータにおける全ての極値を検出しているが、極値ではなく、予め設定した基準電圧(中点電位)を超えた場合は、超えている期間内の最大値、基準電圧を下回ったら、下回っている期間内の最小値を極値として交互に検出していってもよい。
【0040】
次に、第2の実施形態について説明する。
図4は、第2の実施形態に係るバーコード読み取り装置の一構成例を示す模式図である。 このバーコード読み取り装置は、前述した第1の実施形態とは、微分信号が飽和した状態における極値の検出方法が異なっている。第1の実施形態では、傾きによる交点検出により極値を決定したが、本実施形態では、2次曲線近似を用いて極値を求めている。従って、本実施形態は、第1の実施形態の傾き計測部37及び交点検出部38に替わって、2次曲線近似部41を用いた構成である。本実施形態の構成部位において、前述した第1の実施形態と同等の構成部位には同じ参照符号を付して、その詳細な説明は省略する。
【0041】
2次曲線近似部41は、2次曲線近似として、y=ax^2+bx+cにデータ選択部36で選択した3点のx,yを代入し、係数a,b,cを求めることである。この演算処理は、2次曲線近似部41を独自に設けてもよいし、制御部13において演算処理を行ってもよい。
【0042】
微分信号が飽和している場合、どの部分が極値になるのか判定できないため、以下の処理を実施する。データ選択部36において、飽和の前後の微分信号の中からサンプルデータとして、3点のデータを選択して読み取る。この時、3点のデータ中には、飽和前と飽和終了後のデータが必ず含まれていなければならない。
【0043】
次に、2次曲線近似部41において、選択した3点のデータを用いて、近似した2次曲線を求める。図6に示すように、この2次曲線における微分を求めることで極値D1を算出する。このような方法により、微分信号が飽和した場合であっても、バーコードエッジに対応する部分を極値として検出する。さらに、全ての微分信号の振幅による極値に対して、有効な極値の検出を終了した後に、検出した極値に基づき、バーコード幅データ生成部10によりバーコード信号を生成し、デコード処理を行い、正確なバーコード情報を生成する。
【0044】
図5に示すフローチャートを参照して、バーコード記号からの反射光を受光してから、バーコード信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
【0045】
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された微分信号がメモリ12に保存される(ステップS1−S5)。メモリ12から読み出された微分信号が飽和状態か非飽和状態かを判断して、非飽和状態であれば、微分信号からバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリ12に保存する。検出された極値はこの閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。また飽和状態であれば、その飽和期間を検出する(ステップS7,S8)。一方、閾値との比較で有効な極値でなければ(No)、次の微分信号の振幅における極値の判断に進む。そして、メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる(ステップS13−S16)。
【0046】
上記ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、サンプルデータの読み取りを継続する。一方、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、2次曲線近似を行うために、微分信号が飽和している期間の前後から、図6に示すサンプリングの拡大図に示すように、3点のデータ(例えば、B1,A2,A3)を選択する(ステップS31)。選択した3点のデータを用いて、2次曲線近似を行う(ステップS32)。作成された2次曲線の微分によって、図6に示す交点である極値D1を求めて、メモリ12に保存する(ステップS33)。
【0047】
前述したように、2次曲線近似は、y=ax^2+bx+cにデータ選択部36で選択した3点のx,yを代入し、係数a,b,cを求めることである。ここで飽和期間の極値検出が終了した後、フラグK=0及び変数M=0とし初期状態に戻す(ステップS25)。以降の処理は、ステップS13に移行して、飽和しない場合と同じ処理を実施する(ステップS13−S16)。
【0048】
以上説明したように本実施形態は、2次曲線近似を用いることにより、極値検出を行うため、AGCを用いず、AGCによって発生したレスポンスの劣化もなく、微分信号が飽和しても正確なバーコードエッジ検出が可能であるためA/D変換前のゲインを高く設定することができ、性能の劣化もない。さらに、前述した第1の実施形態と同等の効果を奏する。
【0049】
次に、第3の実施形態について説明する。
第3の実施形態に係るバーコード読み取り装置は、前述した第1の実施形態とは、同等の構成であり、微分信号が飽和した状態における極値の検出方法が異なっている。第1の実施形態では、1回の傾きによる交点検出により極値を決定したが、本実施形態では、微分信号から交点の検出を複数回行い、その極値の平均を取ることによって誤差を小さくしている。従って、本実施形態は、第1の実施形態の構成と同等であり、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0050】
微分信号が飽和している状態では、どの部分が極値になるのか判定できないため、まず、飽和している微分信号の前後の傾きを求めるため、データ選択部36において飽和している期間の前後からそれぞれ2点のデータを読み取る。
【0051】
これらのデータに基づき、傾き計測部37において、それぞれに傾きを求めて、その傾きによる交点を検出する。この交点から飽和している期間に存在するバーコードエッジである極値を求める。しかし、図8(c)に示すように、データ選択部36により選択されたデータにノイズが含まれていた場合には、データ例えば、点B4,B5と点B1,B2とでは求められた傾きが異なってしまう。つまり、求められた極値にズレが発生し、バーコードエッジに誤差が発生してしまう。尚、図8(a)は、比較のために示した従来の微分信号とバーコード信号を示し、図8(b)は、本実施形態による求めた極値による微分信号とバーコード信号を示す図である。
【0052】
そこで本実施形態では、データの選択から交点の検出までを複数回行い、求められた複数の交点の平均を取り、有効な極値を得ることにより、ノイズによって生じる誤差を小さくしている。ここで、平均を取るデータは、時間データ(図8(c)における点A1−4,B1−4)となる。
【0053】
図8(a)乃至(c)を参照して、サンプルデータがノイズを含んでいた場合について説明する。ここでは、データの点B4にノイズが発生している例である。そのため、点B1,B4及び点A1,A4の交点による極値D3は、飽和しなかった場合に想定されるボトムの極値Drの時点に対して、大きくズレが生じる。また、点B1,B2及び点A1,A2による交点D2、さらに、点B2,B3及び点A2,A3による交点D1を求めて、D1,D2,D3の平均を取ることによって、求められた極値Daと極値Drとの誤差を小さくすることができる。全てのサンプルデータに対して、有効な極値の検出が終了した後に、検出した極値をもとにバーコード幅データ生成部10においてバーコード信号を生成し、デコード処理を行う。
【0054】
図7に示すフローチャートを参照して、バーコードからの反射光を受光してから、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は、前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された信号に微分処理を施して、デジタル化された微分信号としてメモリ12に保存される(ステップS1−S5)。メモリ12から読み出された微分信号が非飽和状態であれば、微分信号から読み取ったサンプルデータからバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリ12に保存する。検出された極値は閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。また飽和状態であれば、その飽和期間を検出する(ステップS7,S8)。一方、閾値との比較で有効な極値でなければ(No)、次の微分信号の振幅における極値の判断に進む。メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる。しかし、デコードが不成功となった場合には、再度、反射光を受光するところから、処理を行う(ステップS13−S16)。
【0055】
上記ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較結果において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、ステップS6に戻り、メモリ12から微分信号を読み出して継続する。
【0056】
ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に移行する。
まず、求める交点Dの数の変数N=0として初期化し(ステップS51)、飽和する前の傾き1を求めるため飽和する前に読み取ったサンプルデータから2点のデータを選択し(ステップS20)、傾き1を求める(ステップS21)。
【0057】
次に、同様に飽和した後の傾き2を求めるために飽和終了後に読み出したサンプル数J+1個のデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。そして、傾き1及び傾き2による交点を求め、この交点を仮極値とし、メモリ12に保存する(ステップS52)。
【0058】
次に、変数Nをインクリメントして(ステップS53)、予め設定した検出回数L回に達したか確認した後(ステップS54)、達していなければ(No)、ステップS20に戻り、再度、仮の極値を検出する。このような仮極値を求める処理をL回繰り返し(ステップS54:Yes)、L回の仮極値の平均(時間データ)を求めることで有効な極値とし、これをメモリ12に保存する(ステップS55)。ここで、飽和期間の極値検出が終了したため、フラグK=0,変数M=0として初期状態に戻し(ステップS25)、次のステップS13に移行する。以降の処理は、飽和しない場合と同じ処理となる。
【0059】
以上説明した本実施形態によれば、データの選択から交点の検出までを複数回行い、仮に求めた複数の極値の平均値を有効な極値として設定することにより、データ選択部36により選択されたデータにノイズが含まれた場合であっても、ノイズによって生じる誤差を小さくすることができる。
【0060】
次に、第4の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部によるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。前述した第1の実施形態では、所定の範囲の中からデータを選択していたが、本実施形態では、バーコードエッジとの誤差をより小さくするため、以下のような手法を用いてデータを選択する。
【0061】
図9は、サンプルデータにおける選択されたデータ(点A1−4,点B1−4)を示す拡大図である。
図9には、それぞれ点B2,B4−A1,A2及びB1,B3−A1,A2による交点D1,D2を示す。微分信号が飽和した直後の、データH1及び飽和終了直前のデータH3からの時間がほぼ同じとなる点B1,B3−点A1,A2から求めた交点D2の方が飽和しなかった場合のボトムである交点Drとの差が少ない。つまり、飽和直後及び飽和終了直前のデータから同じ間隔のデータを少なくとも1個ずつ、ここでは点B1,A1を選択することを特徴としている。
【0062】
以上説明した本実施形態によれば、飽和直後の時間と飽和終了直前の時間が同じデータを用いて交点を検出して、その交点に基づき有効な極値を求めることにより、より誤差を小さくすることができる。
【0063】
次に、第5の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部によるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。前述した第1の実施形態では、所定の範囲の中からデータを選択していたが、本実施形態では、バーコードエッジとの誤差をより小さくするため、以下のような手法を用いてデータを選択する。
【0064】
図10は、サンプルデータにおける選択されたデータ(点A1−4,点B1−4)を示す拡大図である。
図10には、それぞれB2,B4−A1,A2及びB1,B2−A1,A2による交点D1,D2を示している。選択したデータの間隔B1,B2間、と間隔A1,A2間が同じ時間のデータとして、求めた交点D2の方が、飽和しなかった場合のボトムである交点Drとの差が少ない。つまり、飽和前の微分信号から選択した2点間(例えば、点B1−B2)のデータの期間(又は区間)が、飽和後の微分信号から選択した2点間(例えば、A1−A2)のデータの期間で同じ時間間隔になるようにする。つまり、点B1−B2の期間と点A1−A2の期間とが、同じ時間間隔を有している。
【0065】
以上説明した本実施形態によれば、飽和直後及び飽和終了直前の期間で、それぞれに同じ時間間隔のデータによる交点を用いて、有効な極値を求めることにより、より誤差を小さくすることができる。
【0066】
次に、第6の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態における交点検出部における交点検出の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0067】
図11に示すフローチャートを参照して、バーコードからの反射光を受光してから、バーコード記号からの反射光を受光してからバーコー信号の生成までの流れについて説明する。本実施形態の作用において、前述した第1の実施形態と同等の作用には同じ符号を付して簡略して説明する。
【0068】
本実施形態においては、反射光を受光して非飽和状態の微分信号に対する極値の検出(ステップS1乃至S18)は、前述した第1の実施形態のおけるシーケンスと同等である。即ち、バーコード記号3に照射された走査光の反射光を受光して生成された微分信号をメモリ12に保存する(ステップS1−S5)。メモリ12から読み出された微分信号が非飽和状態であれば、微分信号からバーコードのエッジに相当する極値(極大値もしくは極小値)を検出して閾値を設定し、メモリに保存する。検出された極値は閾値と比較して、有効な極値であれば(Yes)、メモリ12に保存される(ステップSS6−S12)。一方、微分信号が飽和状態であれば、極値を正確に検出することができない。このため、飽和状態のデータは、次々に読み出すとともに、K=1とし且つ飽和している期間を検出する(ステップS17,S18)。また、ステップS11において、有効な極値でなければ(No)、次のデータにおける極値の判断に進む。メモリ12に保存した後、最後の微分信号の振幅と判断されたならば、バーコード幅データ生成部10によりバーコード幅データを生成し、デコード処理を実行する。デコード処理が成功した場合には、読み取り終了となる。しかし、デコードが不成功となった場合には、再度、反射光を受光するところから、処理を行う(ステップS13−S16)。
【0069】
ステップS7の判断において、微分信号が非飽和状態で、ステップS8でフラグK=Oでなければ(No)、変数Mとサンプル数Jを比較する(ステップS19)。この比較結果において、変数Mがサンプル数Jよりも小さい場合には(No)、変数Mをインクリメントして(ステップS26)、ステップS6に戻り、メモリ12からデータの読み取りを継続する。
【0070】
ステップS19において、変数Mがサンプル数Jよりも大きくなった場合は(Yes)、傾きを求める処理に移行する。まず、飽和する前の傾き1を求めるため、飽和する前のデータから2点を選択し(ステップS20)、傾き1を求める(ステップS21)。
【0071】
次に、飽和した後の傾き2を求めるために、飽和終了後に読み取ったサンプル数J+1個のデータの中から2点のデータを選択し(ステップS22)、傾き2を求める(ステップS23)。その後、傾き1と傾き2の積を求めて、その積の正負を判断する(ステップS61)。この判断において、積が負の値であれば(Yes)、それぞれの傾きの極性が異なるため、飽和が極値で発生していると判断できる。従って、傾き1と傾き2の交点を仮の極値として、メモリ12に保存する(ステップS62)。しかし、傾き1と傾き2の積が正の値であれば(No)、傾き1、傾き2の積が正の値であった場合は、極値検出のための交点を求める処理をスキップし、次のステップS25に移行する。傾き1と傾き2の積が正の値であれば傾き1,傾き2の極性は同じであり、飽和が極値以外で発生していると判断できる。
【0072】
次に、飽和期間の極値検出が終了したため、フラグK=0,変数M=0として初期状態に戻し(ステップS25)、次のステップS13に移行する。
【0073】
図12は、微分信号から選択されたデータ(点A1−5,点B1−5)を示す拡大図である。この例では、点B3において、ノイズによる飽和状態が発生している。ここでは、飽和する前の傾き1を求める点をB4,B5とし、飽和終了後の傾き2を求める点をB1,B2とする。このように、点B3を排除して求めた傾き1、傾き2は、同じ極性(傾き方向)であり、積を取ると、正の値となる。そのため、この飽和状態は、極値以外で発生したと判断できる。
【0074】
以上説明したように本実施形態によれば、ノイズによる飽和状態が検出された場合であっても、その飽和状態におけるデータを排除することにより、極値検出において、ノイズの影響をなくすことができる。
【0075】
次に、第7の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態におけるデータ選択部におけるデータ選択の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0076】
図13に示すように、バーコード信号にはノイズが重畳されるが、一般的に、基準電圧付近のノイズが多くなる。これは、バーコード記号のバー間の白部分に多く存在するスペックルノイズである。
【0077】
本実施形態は、データを選択する際は、基準電圧付近ではなく、ノイズが少ない飽和している部分近傍から選択する。このようなデータ選択により、有効な極値にノイズの影響を減らすことができる。
【0078】
次に、第8の実施形態について説明する。
本実施形態のバーコード読み取り装置は、前述した第1の実施形態における飽和検出部における飽和検出の手法が異なっている。本実施形態のバーコード読み取り装置は、第1の実施形態の装置構成と同じであるため、同じ構成部位には同じ参照符号を付して、その説明を省略する。
【0079】
本実施形態による飽和検出は、微分信号の電圧値が0又は最大(8bitであれば255)か否かにより判断する。しかし、ノイズの影響を考慮して、飽和検出電圧値にマージンを持たせている。即ち、電圧値のデータが0+Va以下又は、255−Vb以上の場合は、飽和しているとみなす。ここで、Va及びVbは、同じ値であっても良い。また、Va,Vbはノイズと判断できるだけの小さな値とする。
【0080】
本実施形態によれば、飽和対策のために用いるAGCが不要となり、且つゲインを小さくしなくともよいため、読み取り性能能向上及び原価低減の効果を奏する。
【0081】
尚、本発明の情報読み取り装置は、前述した第1乃至第6の実施形態において、レーザ光による走査光を用いて、バーコードに照射し、そのバーコードからの反射光(戻り光)を用いたバーコード読み取り装置を一例として説明したが、勿論、この構成に限定されるものではなく、撮像素子(例えば、CCD又はCMOSイメージセンサ)を用いて撮像してバーコード記号を含む画像からバーコード情報を生成する情報読み取り装置であってもよい。また、シンボルは、バーコード記号に限定されるものではなく、他の形態のシンボルであってもよく、光学的に読み取り、生成されたアナログ信号であれば、本発明を適用することは容易であり、前述したと同等の作用効果を得ることができる。
【0082】
本実施形態の情報読み取り装置は、例えば、バーコードリーダ、距離センサ、プリンタ、車間センサ、防犯センサ、走査型レーザ顕微鏡、携帯情報端末、レーザ走査装置等に搭載される光学式読み取り装置に対する適用に好適する。
【符号の説明】
【0083】
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…A/D変換部、33…極値検出部、34…閾値設定部、35…比較部、36…データ選択部、37…傾き計測部、38…交点検出部。
【特許請求の範囲】
【請求項1】
読み取り対象物に光を照射する光源と、
前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、
前記戻り光を受光して電気信号を生成するセンサ部と、
前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、
前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、
前記微分信号における飽和状態を検出する飽和検出部と、
飽和の前及び飽和の後の前記微分信号から、それぞれに所定数のデータを選択して読み取るデータ選択手段と、
前記飽和前の所定数のデータから第1の傾きと、前記飽和後の所定数のデータから第2の傾きを求める傾き検出部と、
前記第1の傾きと前記第2の傾きの交点を求める交点検出部と、
を備え、
前記交点検出部により求められた交点を飽和している部分の極値とみなすことを特徴とする情報読み取り装置。
【請求項2】
前記飽和検出部に検出された飽和状態の微分信号に対して、複数回の極値検出を行い、得られた複数の極値の平均を極値とみなすことを特徴とする請求項1に記載の情報読み取り装置。
【請求項3】
前記データ選択部において、飽和の前及び飽和の後の前記微分信号から検出した複数のデータの中から、第1及び第2データを選択すると共に、該第1及び第2データのうち、飽和の直前から前記第1データ及び飽和直後から前記第2データまでのそれぞれの時間が同じであることを特徴とする請求項1に記載の情報読み取り装置。
【請求項4】
前記データ選択手段において、飽和の前の前記微分信号から所定の期間の第1のデータを選択し、飽和の後の前記微分信号から前記所定区間と同一の期間の第2のデータを選択することを特徴とする請求項1に記載の情報読み取り装置。
【請求項5】
前記交点検出手段において、前記第1の傾き及び前記第2傾きの積を取り、該積が負の場合に、前記第1の傾き及び前記第2傾きによる交点の検出を行うことを特徴とする請求項1乃至4のうちのいずれか1つに記載の情報読み取り装置。
【請求項6】
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
読み取り対象物に光を照射する光源と、
前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、
前記戻り光を受光して電気信号を生成するセンサ部と、
前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、
前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、
前記微分信号における飽和状態を検出する飽和検出部と、
飽和の前及び飽和の後の前記微分信号から、少なくとも3つのデータを選択して読み取るデータ選択部と、
前記データ選択部によって選択されたデータに、2次曲線近似処理及び微分処理を施して、仮極値を求める仮極値検出部と、
を備え、
前記仮極値検出部により求めた仮極値を、飽和している部分の極値をとみなすことを特徴とする情報読み取り装置。
【請求項7】
前記飽和検出部に検出された飽和状態の微分信号に対して、複数回の極値検出を行い、得られた複数の仮極値の平均を極値とみなすことを特徴とする請求項6に記載の情報読み取り装置。
【請求項8】
前記データ選択手段において、選択するデータは、前記微分信号の飽和状態の期間の近傍から選択することを特徴とする請求項1,2,3,4及び6のうちの何れか1つに記載の情報読み取り装置。
【請求項9】
飽和状態の微分信号から検出された電圧信号に、範囲を設けることを特徴とする請求項1,2,3,4及び6のうちの何れか1つに記載の情報読み取り装置。
【請求項1】
読み取り対象物に光を照射する光源と、
前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、
前記戻り光を受光して電気信号を生成するセンサ部と、
前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、
前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、
前記微分信号における飽和状態を検出する飽和検出部と、
飽和の前及び飽和の後の前記微分信号から、それぞれに所定数のデータを選択して読み取るデータ選択手段と、
前記飽和前の所定数のデータから第1の傾きと、前記飽和後の所定数のデータから第2の傾きを求める傾き検出部と、
前記第1の傾きと前記第2の傾きの交点を求める交点検出部と、
を備え、
前記交点検出部により求められた交点を飽和している部分の極値とみなすことを特徴とする情報読み取り装置。
【請求項2】
前記飽和検出部に検出された飽和状態の微分信号に対して、複数回の極値検出を行い、得られた複数の極値の平均を極値とみなすことを特徴とする請求項1に記載の情報読み取り装置。
【請求項3】
前記データ選択部において、飽和の前及び飽和の後の前記微分信号から検出した複数のデータの中から、第1及び第2データを選択すると共に、該第1及び第2データのうち、飽和の直前から前記第1データ及び飽和直後から前記第2データまでのそれぞれの時間が同じであることを特徴とする請求項1に記載の情報読み取り装置。
【請求項4】
前記データ選択手段において、飽和の前の前記微分信号から所定の期間の第1のデータを選択し、飽和の後の前記微分信号から前記所定区間と同一の期間の第2のデータを選択することを特徴とする請求項1に記載の情報読み取り装置。
【請求項5】
前記交点検出手段において、前記第1の傾き及び前記第2傾きの積を取り、該積が負の場合に、前記第1の傾き及び前記第2傾きによる交点の検出を行うことを特徴とする請求項1乃至4のうちのいずれか1つに記載の情報読み取り装置。
【請求項6】
前記微分処理手段によって生成された微分信号の極値を検出する極値検出手段と、
読み取り対象物に光を照射する光源と、
前記光源から照射されて前記読み取り対象物で反射した戻り光を集光する集光部と、
前記戻り光を受光して電気信号を生成するセンサ部と、
前記センサ部により生成された電気信号を微分して微分信号を生成する微分処理部と、
前記微分処理部によって、生成された微分信号の極値を検出する極値検出部と、
前記微分信号における飽和状態を検出する飽和検出部と、
飽和の前及び飽和の後の前記微分信号から、少なくとも3つのデータを選択して読み取るデータ選択部と、
前記データ選択部によって選択されたデータに、2次曲線近似処理及び微分処理を施して、仮極値を求める仮極値検出部と、
を備え、
前記仮極値検出部により求めた仮極値を、飽和している部分の極値をとみなすことを特徴とする情報読み取り装置。
【請求項7】
前記飽和検出部に検出された飽和状態の微分信号に対して、複数回の極値検出を行い、得られた複数の仮極値の平均を極値とみなすことを特徴とする請求項6に記載の情報読み取り装置。
【請求項8】
前記データ選択手段において、選択するデータは、前記微分信号の飽和状態の期間の近傍から選択することを特徴とする請求項1,2,3,4及び6のうちの何れか1つに記載の情報読み取り装置。
【請求項9】
飽和状態の微分信号から検出された電圧信号に、範囲を設けることを特徴とする請求項1,2,3,4及び6のうちの何れか1つに記載の情報読み取り装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−182262(P2010−182262A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−27704(P2009−27704)
【出願日】平成21年2月9日(2009.2.9)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願日】平成21年2月9日(2009.2.9)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
[ Back to top ]