JP2010160574A - 信号生成回路及びその信号生成方法 - Google Patents

信号生成回路及びその信号生成方法 Download PDF

Info

Publication number
JP2010160574A
JP2010160574A JP2009001048A JP2009001048A JP2010160574A JP 2010160574 A JP2010160574 A JP 2010160574A JP 2009001048 A JP2009001048 A JP 2009001048A JP 2009001048 A JP2009001048 A JP 2009001048A JP 2010160574 A JP2010160574 A JP 2010160574A
Authority
JP
Japan
Prior art keywords
signal
value
noise
threshold
level
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
Application number
JP2009001048A
Other languages
English (en)
Inventor
Norikazu Urata
憲和 浦田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Priority to JP2009001048A priority Critical patent/JP2010160574A/ja
Publication of JP2010160574A publication Critical patent/JP2010160574A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】走査光学系の信号生成回路に用いられる微分処理方式は、高周波数のノイズに弱いという傾向があり、ノイズの処理方法としては十分な対応ではない。
【解決手段】対象物からの戻り光により生成された信号に対して微分処理を行い、生成された微分信号の中から、基準電圧を負側から正側に越えて再び正側から負側に越えるまでの間毎に最大のピーク値をそれぞれ検出して、基準電圧値を挟んで反復する毎にピーク値及びバレー値を取得し、隣り合うピーク値とバレー値との変動量と、閾値とを比較することで、真のピーク値及び真のバレー値を取得し、取得された真のピーク値の総数及び真のバレー値の総数を計数し、それらの総数の比較により閾値を設定する信号生成回路である。
【選択図】図4

Description

本発明は、走査光学系に用いられる信号生成回路及びその信号生成方法に関する。
従来、キャラクタ等の情報を読み取るための装置として、光源にレーザーダイオードを用いて、レーザー光(光束)を走査させて走査対象物の輝度値情報を取得する情報読み取り装置が普及している。前述する情報としては、光学的情報認識のために規定されたバーコードが一例であるが、他の情報として、自動車や人物等の陰影情報や、レーザー走査型顕微鏡により観測される試料等であってもよい。
このようなバーコード読み取り装置としては、例えば、特許文献1に記載されている。この読み取り装置では、レーザー光を走査して得られた反射散乱光を光検出器で取り込み、増幅等の信号処理後に、二値化処理を行なって、走査対象物の光学的な情報を取得している。この二値化処理の一例として、微分処理方式が知られている。即ち、光検出器からの信号について微分処理後にピークを検出し、その位置情報から二値化を行なうものである。
例えば、特許文献2には、このような微分処理の一例が提案されている。特許文献2では、まず、検出器からの信号について一次微分処理を行う。そして、一次微分信号の基準電圧に対し正負のスライスレベルを固定値として設定し、ゲート信号を生成する。
さらに、一次微分信号から二次微分信号を生成して、二次微分信号の符号の反転を検出する。そして、ゲート信号内であって、なおかつ、符号が反転する位置をエッジ点として出力させると、走査対象物の反射率に相当する二値のパターン信号を生成・取得することができる。
このような微分処理を行うことで、エッジの位置を比較的に正確に取得できる。これにより、バーコード等の走査対象物の距離が大きく変動した場合であっても良好に復号できる。即ち、微分処理方式とすれば、信号の変動が小さくなった場合であっても比較的に反射率の変動(エッジ)を検出しやすくなって、読み取り距離範囲を改善することができる。
米国特許番号US6,360,949 特許番号第2716298号 米国特許番号US7,004,391
しかしながら一般に、微分処理方式は、高周波数のノイズに弱いという傾向があり、ノイズの処理方法としては十分な対応ではない。即ち、微分回路のカットオフ周波数に対し比較的低周波数のノイズは排除できるものの、高周波数のノイズは排除されていないため、その結果、高周波数のノイズが強調されることとなる。この特徴は、微分回路を走査光学系等に組み込む構成において、後述するように顕著に現れる。これは、走査光学系等で生じる光学ノイズには、高周波数で変動するノイズが存在するためである。即ち、高周波数の光学ノイズが変動して生じるような環境下では、従来技術では性能の劣化が大きくなるという課題がある。
この課題を改善するため、電気回路にスライスレベル等の閾値を設けることが一般的である。特許文献2では、電気回路に固定的なスライスレベルを設けている。即ち、ノイズレベルの最大値をあらかじめ想定し、そのノイズ量を上回る程度にスライスレベルを設定する。そして、そのスライスレベルを上回る場合には、二値化処理等の信号処理を施し、一方、スライスレベルに満たない信号は破棄することにより、ノイズの影響を低減している。
しかし、この手法においては、スライスレベルを設けたことによって、あらたな弊害が生じる。即ち、バーコード読み取り装置のように、読み取り対象が任意であるような走査光学系においては、信号振幅が低下する状況が多々存在している。例えば、走査対象物の印刷濃度はユーザーの任意である。また、ドット密度やデフォーカス等によっても信号振幅が低減する。従って、微分信号の信号レベルは可変する。
従来の技術によれば、このような信号については、信号振幅が全体的に低く、前述したスライスレベル以下程度に低減した場合、たとえ、信号雑音比が良好でノイズ成分が皆無であったとしても、入力信号とは見なされないため、装置は機能しなくなる。即ち、スライスレベルを設けたという回路設計が起因して、距離が離れたバーコードに対しては読み取りができなくなってしまう。これは、バーコード等の読み取りの性能が回路設計によって支配されることを意味する。
この対策として、スライスレベルの代わりに、カットオフ周波数を規定して積分回路を用いる手法が知られている。即ち、微分回路に積分回路を加えることで、バンドパスフィルタを回路上で構成して、上下限を排除して、所望する帯域の信号のみを取得する。
しかし、この手法においても類似の結果となる。例えば、前述した微分回路に積分回路を加えた構成を用いて、ローパスフィルタ処理を行なうことにする。すると、確かに微分回路を通過した高周波数ノイズを低減できる。しかしながら、ノイズの低減にともなって信号成分であるピーク信号も劣化してしまう。走査対象が任意であるようなシステムにおいては、走査対象物の信号周波数も可変している。
従って、信号周波数とノイズの周波数が同じ帯域で重なって区別ができないような場合には、積分回路を用いて高周波数のノイズを遮蔽しようとすればするほど、高密度の情報から順に走査対象物から得られた情報も失われていくこととなる。従って、読み取りができる可能性を犠牲にすることでノイズを低減するという観点からすれば、前述したスライスレベルと同等の結果となっていた。
換言すれば、スライスレベルは、信号成分の振幅に注目してノイズを除去しようとするものである。積分回路は信号成分の周波数に注目して高周波数ノイズを除去しようとするものである。しかしながら、走査光学系のように入力が任意であるようなシステムにおいては、走査対象物から得られる信号の振幅や周波数は可変となり得る。従って、振幅や周波数の絶対的な値で評価を行なうと、信号とノイズの区別ができるとはいえず、その弊害が生じている。
前述したように、走査対象が任意である走査光学系においては、信号振幅は大きく増減する。例えば、印刷コントラスト、印刷密度、デフォーカス等によって信号振幅が大きく変動する。さらに、詳細は後述するが、ノイズ成分も大きく増減する。走査対象が任意である走査光学系においては、信号成分とノイズ成分の相関が弱く、ともにほぼ独立して変動することに特徴がある。
従って、従来技術におけるスライスレベルや積分回路のカットオフ周波数ように固定的なパラメータを設定すると、信号とノイズの可変的な変化に追従できず、ある限られた環境においては好適であるが、条件を少し変えると機能しなくなったり、不安定な動きになっていた。例えば、より高密度のバーコードや低コントラストのバーコードを走査させたり、又は距離を遠近させるなど、バーコードの距離や角度、印刷コントラスト、印刷密度などの条件を少し変えると、信号振幅は同等であるが、ノイズ量が増加した/減少したという状況を実際に作り出すことができる。あるいは、ノイズ量は同等であるが、信号振幅が増加した/減少したという状況を実際に作り出すことができる。
従って、最適な条件は常時変動することになって、その最適な条件を積極的に知ることは困難であった。また、スライスレベルを数とおり準備しておき、順次、切り替えて総当り方式で走査を試みるという方法も考えられる。
しかしながら、バーコードの距離を変動させた場合のダイナミックレンジは、数1000倍以上程度、バーコードの規格から印刷コントラストの変動量は5倍程度、印刷密度(信号周波数)の変動量は10倍程度となっており、変動範囲が広すぎる。そのそれぞれにおいて、最適となる閾値や調整精度が違っている。例えば、低コントラストバーコードの場合はノイズ量と信号振幅が近接していることがあるので、閾値を切り替える変動量を小さくして出力を安定させる必要がある。
従って、総当り方式ですべてのダイナミックレンジの領域等をカバーしようとすると、走査回数が膨大となって実用性や応答性が失われる。他方、総当り方式の設定パラメータを限定すると、結果、前述したスライスレベルと同等となり、微調整されないため、読み取り可能な範囲が改善されないという結果となっている。
またさらに、総当り方式を採用すると、スライスレベル等の設定値は、大半が適切でないものとなる。従って、二値化信号の出力は、ノイズの影響を大きく受けた出力が増大することになる。従って、装置が誤動作・誤読する可能性が増えることになっている。
またさらに、前述の二値化信号に高周波数ノイズが乗ると、後段の復号処理の効率が劣化するという問題もあった。即ち、二値化信号に高周波数のノイズが乗ると、多数の細かなパターンが生じる。すると、復号処理回路は細かなノイズのパターンの中にバーコード等の規定のパターンを探す動きとなる。多数のパターンの中から、ある特定のパターンを探し出すときの順列・組み合わせの数は、パターンの数に線形というよりは、べき乗や階乗に依存するように増大する。従って、ノイズが増加すると復号回路の処理速度が著しく劣化することになる。
またさらに、前述した二値化信号にノイズが重畳すると、二値化処理後の復号回路において誤動作する可能性もあった。即ち、本来の二値化信号に加えて偽信号が重畳して、異なるバーコードとして誤認識される可能性も生じ得る。
以上の理由から、従来技術においては、処理速度や誤動作等の問題を避けるためにノイズがほぼ最大となる場合を想定し、スライスレベルを通常の使用環境に対して大きな値に調整して二値化処理を行なうことになっていた。これにより、理想的な限られた環境下での読み取りについては良好とすることができる。また、スライスレベルを高くする等によって、ノイズの影響も低減でき、処理速度の劣化を改善することができる。しかしながらこの調整は、前述したように、読み取りの性能やピーク検出の精度を犠牲にしていることを意味する。例えば、バーコードを大きく遠近させた場合のように信号レベルを増減させると、たとえノイズが少ない環境下であっても読み取りができなくなっていた。
そこで本発明は、入力信号の信号成分が大きく変動するシステムにおいても、適切な二値化処理ができる信号生成回路及び信号生成方法を提供することを目的とする。
上記目的を達成するために、本発明の従う実施形態は、光信号を受光する光検出器と、光検出器から出力されるアナログ信号に対して微分処理を行う微分回路と、微分回路から出力される微分信号の信号成分を取得し、その信号成分レベルに基づき第1のレベル値を設定する第1レベル設定手段と、前記第1のレベル値よりも低い第2のレベル値を設定する第2レベル設定手段と、前記第1のレベル値と、前記第2のレベル値との間の内分比に基づき、閾値を設定すると共に、当該内分比を可変とする閾値設定手段と、信号成分と前記閾値に基づいて光信号から情報を生成する情報生成手段と、を有する信号生成回路を提供する。
また、本発明の従う実施形態は、N回目の光ビームの走査によって読み取り対象物から反射される反射光を受光し、アナログ信号を出力する受光ステップと、アナログ信号に対して微分処理を行い、微分信号を取得する微分処理ステップと、微分信号の中から、基準電圧を負側から正側に越えて再び正側から負側に越えるまでの間毎に最大のピーク値をそれぞれ検出すると共に、基準電圧値を正側から負側に越えて再び負側から正側に越えるまでの間毎に最小のバレー値をそれぞれ検出するピーク値及びバレー値取得ステップと、 隣り合うピーク値とバレー値との変動量と、閾値とを比較することで、真のピーク値及び真のバレー値を取得し、取得された真のピーク値の総数及び真のバレー値の総数を計数する計数ステップと、今回計数された真のピーク値の総数及び真のバレー値の総数と、以前の光ビームの走査によって計数された真のピーク値の総数及び真のバレー値の総数とを比較し、両総数の差に基づいて前記閾値を変更する閾値設定ステップと、を有する信号生成方法を提供する。
本発明によれば、入力信号の信号成分が大きく変動するシステムにおいても、適切な二値化処理ができる信号生成回路および信号生成方法を提供することができる。
図1は、第1の実施形態に係る光走査モジュールの外観構成を示す斜視図である。 図2は、上蓋を取り外した状態の光走査モジュールの構成を示す図である。 図3は、光走査モジュールにおける光学系を取り出して概念的に示す図である。 図4は、図1に示した基板ユニットに実装される構成部位と信号の流れを示す図である。 図5は、本実施形態に用いられる微分回路の一例を示す図である。 図6は、図5に示した微分回路から出力された微分信号を概念的に示す図である。 図7は、電源投入時の挙動について説明するためのフローチャートである。 図8は、本実施形態に用いられる主要なコマンドの例を示す図である。 図9は、図8における読み取り開始のコマンドを受信した場合の挙動について説明するためのフローチャートである。 図10は、DSPにおける二値化処理について説明するためのフローチャートである。 図11は、ノイズ量の評価処理について説明するためのフローチャートである。 図12は、ピークとバレーの検出・取得処理について説明するためのフローチャートである。 図13は、ピークの判定処理について説明するためのフローチャートである。 図14は、バレーの判定処理について説明するためのフローチャートである。 図15は、第2の実施形態として、信号生成回路を搭載した走査光学顕微鏡の外観構成例を示す図である。
以下、図面を参照して本発明の実施形態について詳細に説明する。
まず、図1及び図3を参照して、本発明に係る信号生成回路を搭載する第1の実施形態としての光走査モジュールについて説明する。ここで、図1は、第1の実施形態に係る光走査モジュールの外観構成を示す斜視図である。図2は、上蓋を取り外した状態の光走査モジュールの構成を示す図である。図3は、光走査モジュールにおける光学系を取り出して概念的に示す図である。
まず、光走査モジュールの概要及び外観について説明する。
光走査モジュール1は、バーコードを読み取ることのできる装置であって、本発明にかかる信号生成回路は上部の基板ユニット2bに搭載されている。光走査モジュール1において実現された外形寸法は、20mm×15mm×10mmに収まる程度となっている。勿論、これらの外形寸法の数値は、一例であり、これら以下の数値で実現することも可能である。また、ある程度の範囲であれば、電子機器の搭載スペースに応じて外形寸法を変更することもできる。
図1に示す光走査モジュール1は、落下等の衝撃に耐え得る強度を有する外装となるハウジング2を有する。ハウジング2は、各構成部位を実装するためのベース部材2aと、上蓋となる基板ユニット2bとで構成される。基板ユニット2bは、ベース部材2aに植立された複数の支持部材2cにビス2dにより固定されている。他にも固定方法としては、フックとストッパをそれぞれに形成して嵌め合わせによる固定や接着剤のよる固定等を用いてもよい。
光走査モジュール1は、光学読み取り機能の1ユニットとして、種々の電子機器に搭載できるように、例えば、ベース部材2a下面に固定用ねじ穴等が形成されている。
基板ユニット2b上には、コネクタ31及び制御部32が設けられている。制御部32は、後述する各ユニット及び構成部位の駆動及び信号処理を行うための制御回路や信号処理回路等が形成された回路基板からなる。
また、コネクタ31は、ケーブルを介して、外部の機器例えば、コンピュータ(図示せず)に接続する。このコンピュータは、例えば、光走査モジュールに電源電圧を供給し、光走査モジュール1を駆動制御する。例えば、搭載された電子機器のコンピュータの指示(バーコードの読み取り開始のコマンド)に従って、バーコードの読み取りを開始し、走査ミラーを揺動させて、走査されたレーザー光(走査光)を照射する。ユーザーがこの走査光の領域にバーコードを翳すと、そのバーコードを読み取る。読み取られたバーコードは、データに復号されてケーブルを経由して外部のコンピュータ49に送信される。外部のコンピュータ49では、復号されたバーコードのデータに基づいて、会計処理や納品処理などが自動で行なわれる。尚、以降の説明でハウジング2における、レーザー光を照射し、そのレーザー光の反射光を受光する方向を向く面を走査開口面とする。
図2及び図3を参照して、光走査モジュール1の構成について説明する。
ベース部材2a上には、主たる構成部位として、光源ユニット3と、折り返しミラー5と、光学走査装置4と、光検出器6とが実装される。
光源ユニット3は、例えば、波長が655nmであるレーザー光を出射するレーザーダイオード(LD)11と、コリメータレンズ12と、出射アパーチャ13とで構成される。ここで、コリメータレンズ12は、レーザーダイオード11から照射されたレーザー光を平行光化し、出射アパーチャ13は平行光化されたレーザー光の光束断面を絞り、所望の形状及びスポットサイズに生成する。これらのLD11とコリメータレンズ12と出射アパーチャ13は、読み取りの仕様(設計)に応じて、適宜、配置やその距離が調整され、収容部(図示せず)に1ユニットとして収容される。例えば、コリメータレンズ12は、図1に示す走査開口面から走査方向のビームウェストまでの距離が例えば、160mmとなるように、その位置が予め微調整されている。光源ユニット3から出射されたレーザー光は、折り返しミラー5で反射により偏向されて、後述する走査ミラー21の中央部に設けられた揺動している出射ミラー21bに入射される。揺動する出射ミラー21bで反射したレーザー光は、走査されて走査開口面からハウジングの外部に出射される。
光学走査装置4は、走査ミラー21と、軸受部23と、駆動部22とが接合され、ベース部材2aに植立された回転軸24を中心に回動自在となっている。走査ミラー21の前面は、非球面で且つ凹面状に湾曲した面の集光ミラー21aが形成され、その略中央に平面で矩形形状の面の出射ミラー21bが設けられている。出射ミラー21bと集光ミラー21aは、樹脂成型により一体的に形成されており、走査の角度(走査角)が変動しても、取り込まれた光が光検出器に向かうよう、予め形状や向きが適正に設計されている。走査ミラー21の出射ミラー21bと集光ミラー21aは、表面が真空蒸着により金の薄膜が蒸着された鏡面に形成される。この鏡面は、レーザー光の波長についての垂直反射率が90%程度となるように製作されている。
走査ミラー21は、軸受部23における回動により、後述する走査方向に揺動される。
また、駆動部22は、駆動コイル25と、板ばね26と、支持ばね保持部材27、ヨーク28上に配置された磁石29とにより構成される。この走査ミラー21の揺動に対応して、走査開口面から出射されたレーザー光は、往復走査するように動き、走査光を生成する。例えば、レーザー光の走査角が45度程度、走査周波数が50Hzとなるように電気回路や駆動機構が設定されている。即ち、1秒間に100回という高速でバーコード面を走査するように設定されている。これらの数値は、仕様により適切に設計されている。
本実施形態では、走査ミラー21側に駆動コイル25を、ベース部材2a側に磁石29をそれぞれ固定し、駆動コイル25に制御部32より所定の駆動パルスを印加することで電磁力を発生させて走査ミラー21を揺動させる、いわゆるムービングコイル方式の駆動モータである。一方、磁石29と駆動コイル25とが反対に配置された、いわゆるムービングマグネット方式であってもよい。
光検出器6は、ベース部材2a上に実装されており、バンドパスフィルタ15と受光開口部16と、光検出器17により構成される。これらのうち、バンドパスフィルタ15は、取り込まれた反射散乱光に対して、光源の波長近傍の光は通過させるが、他の光は遮断する。光検出器17に入射した反射散乱光の強弱は、走査における対象物の反射率の変化に対応しており、走査面領域における外部の情報に対応している。
ユーザーは、出射開口面から出射された走査光における読み取り可能領域内で走査対象となるバーコードを翳すと、バーコード面上に走査光、即ち反復移動するレーザー光のスポットが形成される。バーコードの反射率の増減に対応した光強度でレーザー光の反射散乱光が生じる。反射散乱光は、出射時と同一の経路を逆向きに広がりつつ進み、走査開口面から入射し、集光ミラー21aで集光するように反射される。
集光ミラー21aは、焦点距離が約10mmの凹面形状をしており、前述した出射ミラー21bに対して、所定の傾きをもって固定されている。その結果、集光ミラー21aで反射した反射散乱光は、図3に示す光検出器6の方向に集光しつつ進む。
この経路の途中にはバンドパスフィルタが配置されており、反射散乱光は、バンドパスフィルタを経由して光検出器に入射する。バンドパスフィルタは、ガラス基板の表面に蒸着により多層膜が形成された構造となっており、655nm近傍の波長の光のみを通すよう膜厚が設定されている。その結果、前述したレーザー光の反射散乱光は、取り込まれるが、照明光や太陽光等の外光ノイズは、その大半が遮断される。つまり、バンドパスフィルタは、外光ノイズや迷光ノイズ等の光学ノイズを低減する。
光検出器6は、光電変換面を有しており、集光ミラーを経由して取り込まれた反射散乱光の強度に対応して増減する光電流を生成する。基板ユニット2bは、光検出器6に電気的に接続されており、入力した光電流からなる信号に対して、後述する二値化処理や復号処理等の信号処理を施し、情報を生成する。
次に図3及び図4を参照して、本実施形態における信号生成回路について説明する。
図4は、図1に示した基板ユニット2bに実装される信号生成回路の構成と、それらの間の信号の流れを示している。信号生成回路は、駆動回路20、光検出器6、電流/電圧変換回路42、増幅回路43、微分回路44、アナログ/デジタル(A/D)変換回路45、デジタル・シグナル・プロセッサ(DSP)46、復号回路47及び出力回路48等で構成される。尚、出射光学系40は、レーザーダイオード11を含む光源ユニット3及び折り返しミラー5とで構成される。
まず、外部のコンピュータ49からの指示を受けた制御部32は、駆動回路20から駆動コイル25に所定の駆動パルスを印加して走査ミラー21を定期的に往復するように揺動させる。それと共に、レーザーダイオード11に駆動電圧を供給し、レーザー光を発生させて、出射光学系40と走査ミラー21の出射ミラー21bを経由して走査光として走査開口面からバーコード等の走査対象物41に照射する。
走査対象物41で反射散乱した光(戻り光)は、走査開口面から走査ミラー21に入光して集光ミラー面21aで集光されて、前述したバンドパスフィルタ15を通過したのち、光検出器6で光電変換され、電流信号(光信号)として生成される。電流信号は、走査対象物の反射率や形状などの外部の情報を含む走査に対応した信号(電圧値の時間的な変化)である。
この電流信号は、電流/電圧変換回路42及び増幅回路43を経由して、適正なレベルの電圧に変換され、微分回路44に入力される。微分回路44の出力信号は、A/D変換回路45を経由して、10ビットのデジタル信号に変換されたのち、デジタル・シグナル・プロセッサ(DSP)46に取り込まれる。
DSP46では、入力信号に対して、二値化する処理を行っている。二値化された信号は、走査された対象物の反射率や陰影情報に対応している。二値化された信号は、さらに復号回路47に送出される。
復号回路47は、二値化された信号を蓄積して、予め決められたバーコードの仕様等に基づいて、蓄積されたパターンとバーコードのパターンの比較を行ってバーコードの情報を復号する。復号されたバーコードの情報は、出力回路48からコンピュータ49等の外部機器に出力される。
次に、図5に示した微分回路44の要部について説明する。
微分回路44は、一般的なキャパシタ要素C及び抵抗要素Rにより構成される。機能が同等なものであれば、周知な回路構成でよい。光電流に基づく信号は、微分回路44を経由することで、微分信号として出力される。
図6は、図5に示した微分回路から出力された微分信号を概念的に示している。
図示するように、バーコード等の入力信号に応じたアナログ信号であって、0Vを中心とした正負のピークとバレーが交互に生じる。また、信号成分のピークとバレーに加えて、高周波数のノイズが重畳している。
この高周波数のノイズは、外部の環境によって大きく変動する。さらに、この微分信号は、A/D変換回路45を経由して、微分信号が0以上の整数値例えば、10ビット(0〜1023)の階調値信号に変換されて出力される。
また、アナログの微分回路44の0Vに対応する階調値は、詳細は後述する基準電圧mid_ref1としてソフトウェア的に規定されている。具体的には、10ビットの中央値511に一致している。換言すると、基準電圧が階調値信号の中央値となるように、微分回路44のオフセット値等が調整されている。即ち、階調値の基準電圧mid_ref1は、信号の入力が何もないとした場合の微分回路の出力電圧(0V:基準電圧)に対応している。
従って、光信号の入力があると、この基準電圧を中心として、ピークとバレーがそれぞれ基準電圧の上下に生じることになる。さらに、この階調値信号は、DSP46に取り込まれる。DSP46は、詳細は後述するが、ソフトウェア的に実現された二値化回路を有している。A/D変換回路45からの階調値に基づいて、二値化処理を行い、その二値化信号を1ビットの信号として復号回路47に出力する。この二値化信号は、バーコードの白黒の幅値のパターンに対応するものである。復号回路47は、受け取った二値化信号を一旦、内部のメモリ(図示せず)に取り込む。
次に、バーコードの仕様に基づき、メモリ内部に蓄積されたパターンの復号処理を行なう。即ち、メモリ内部の二値化パターンが、各バーコードの規格と一致するかどうかを順次、比較して英数字等の文字情報に変換していく。末尾まで問題なく復号できた場合には、チェックデジット等の確認など必要な処理を行なって復号データを出力する。
復号データは、前述したコネクタ31を経由して外部のコンピュータ49に送られ、この後、一連の信号処理は終了する。
次に、図7に示すフローチャートを参照して、第1の実施形態の信号生成回路を搭載する光走査モジュールの電源投入時の動作について説明する。図8は、本実施形態に用いられる動作を指示するコマンドについて、主要なものを示している。
まず、メインスイッチがオンされて主電源が投入されると、各構成部位が起動し、光走査モジュールは、パラメータや内部のバッファ(輝度値バッファ、二値化バッファ)の値を初期化した後(ステップS1)、入力ポートを監視する(ステップS2)。
この入力ポートは、コネクタの一部のピンと接続されており、外部のコンピュータ49から送信されるコマンドを受信する。コンピュータ49からコマンドを受信したか否かを判断し(ステップS3)、コマンドを受信していない場合には(NO)、入力ポートの監視を維持し、コマンドの受信待ちの状態になっている。一方、コンピュータ49からコマンドを受信した場合には(YES)、そのコマンドに指示された動作を実行し(ステップS4)、再度、ステップS2に戻る。
次に、図8に示すコマンドについて説明する。
本実施形態では、外部のコンピュータ49から操作コードと設定値等を所定の手順にて送信すると、光走査モジュール1を任意に制御することができる。例えば、読み取り開始のコマンドを送信すると、バーコードの読み取りを行なう。
また、バーコードタイプの設定のコマンドを送信すると、読み取りを許可/拒絶するバーコードの種類を任意に設定することができる。例えば、JANバーコードは、読み取りができるように設定し、Code39バーコードは読み取らないように設定することができる。これにより、ユーザーの使用環境に応じて、バーコードの読み取り時の操作ミス等を未然に防止できる。詳細は省略したが、コマンドは、数百種類程度あり、あらゆるバーコードについての複雑な設定が自由にできるようになっている。
次に図9に示すフローチャートを参照して、図8における読み取り開始のコマンド(操作コード01)を受信した場合の挙動について説明する。
前述した光走査モジュール1が読み取り開始のコマンド(操作コード01)を受信すると読み取り開始の動作が実行される。まず、タイマーの初期化等、パラメータの初期設定等を行なう(ステップS11)。
次に、走査開始処理を実行する(ステップS12)。走査ミラー21が連続的に揺動し、レーザーダイオード11から出射されたレーザー光が走査光として、走査開口面から走査対象物に照射される。走査対象物で反射した戻り光は、光検出器6に入射されて、光電流が生成されて信号生成回路に取り込まれる。
走査ミラー21を揺動させるための駆動パルスのタイミングに同期させて、光検出器6から得られた輝度値信号に対してサンプリングを行ない、そのサンプリング結果を図示しない輝度値バッファに格納する(ステップS13)。即ち、1周期の駆動パルスは、1回(1往復)の走査に対応しており、1回の走査に対応した光信号が階調値信号として格納される。
この時、走査の動きと輝度値の取得については、取り込みのタイミングがずれないように予めそのずれ量が微調整されている。即ち、前述した走査ミラー等は、慣性モーメントを持っているため、駆動パルスのタイミングに対して走査に遅れが生じる。この遅れの分が予め適正に補正されている。輝度値信号のサンプリングは、1Msps(mega samples/s)の周波数で行なわれる。前述した光検出器6から出力された光信号等は、時間的に連続して変化しているが、そのうちの1回の走査に対応する時間領域を設定して、その1回の走査10msに対応してサンプリングを行なう。従って、サンプリング回数は10,000回となっている。この輝度値データは、DSP46の内部の揮発性のバッファに格納される。
この格納された輝度値データについて、二値化処理が行なわれる(ステップS14)。さらに、復号処理が行なわれる(ステップS15)。この復号処理の結果から復号ができたか否かを判定する(ステップS16)。この判定で、バーコードの復号ができた場合には(YES)、出力処理を行った後(ステップS17)、走査の終了処理を行う(ステップS110)。その後、一連の読み取りの処理を終了してリターンする。一方、バーコードの復号ができなかった場合には(NO)、輝度値データ等を破棄して、タイマーの更新(T1=T1+1)等を行なう(ステップ18)。その後、タイマーが所定の期間を過ぎたか否かを判定する(ステップS19)。タイマーが所定の期間内である場合には(NO)、ステップS13の輝度値信号の取り込み処理に戻って、1回の走査ごとに同等の手順を繰り返す。一方、所定の期間を過ぎた場合には(YES)、走査の終了処理を行い(ステップS20)、リターンする。
また、ステップS16の判定において、バーコードが復号できた場合には(YES)、コネクタ31を通じて、復号データを外部のコンピュータ49に出力する(ステップS17)。そして、ステップS20における走査の終了処理後、一連の読み取りの処理を終了して、制御を上位にリターンする。この後、光走査モジュール1は、図7で示したように、次のコマンドの受信待ちの状態(ステップS2,S3)となる。
ここで、後述する走査対象が任意である光学系に特徴的な信号成分とノイズ成分の挙動について説明する。
まず、信号成分について説明する。走査対象が任意である走査光学系等においては、走査対象物の距離が変動することがある。出射光学系40にレーザー光を使っている場合は、距離が変動することでビーム径は変化するものの、走査対象物上におけるスポットの光強度はほとんど変化しない。一方、受光光学系は、走査対象物上で反射散乱して広がる光の一部を取り込むことになる。
従って、光検出器6に入射する戻り光の光強度は、走査対象物41までの距離に依存する。即ち、走査対象物41が遠方にあるほど光信号は、距離の逆自乗に比例するように弱くなる。従って、走査対象物41の距離の変動にともなって、光信号の強度は大きく増減する。さらに、変調度という特性がある。
前述したように、第1の実施形態においては、例えば、走査開口面からビームウェストまでの距離が約160mmとなるようにコリメータレンズの位置が微調整(フォーカス調整)されている。この160mm近辺においては、ビーム径が最も小さくなる。従って、走査対象物41(バーコード)上を走査して得られる光信号は、ビームウェスト近辺で変化が急になる。この距離から離れると、ビーム径が広がってなだらかになる。すると、光信号の変化もなだらかになる。これは、カメラでいえばピンボケに相当するものであって、一般に、MTF(Modulation Transfer Function)として記述されるものである。これに加え、走査対象物の印刷コントラストという特性がある。即ち、バーコードの印刷はユーザーの任意である。
よって、バーコードの印刷に用いられるインクの反射率・濃度変化に対応して信号振幅も増減する。従って、光検出器から得られる信号成分は、光量と変調度(MTF)と印刷コントラスト等の影響を受けて大きく変動することになる。つまり、光検出器からの電気信号の微分信号も、これらの影響を受けて大きく変動する。光量と変調度と印刷コントラスト等は、それぞれ独立した事象であって絶対的な相関がない。従って、信号振幅の値やその挙動は固定的ではない。
次に、本実施形態における信号生成回路のノイズについて説明する。
ノイズは、試験環境を設定し、オシロスコープ等を用いて、光検出器以降の信号や、アナログ/デジタル変換後の信号波形を取得することで実際に観測できる。さらに、定量的に評価できる。主要なノイズを発生源によって大別すると、回路ノイズと光学ノイズにわけられる。回路ノイズには、例えば、電気部品の温度に起因する熱雑音や、アナログ/デジタル変換での情報の損失に起因する量子化ノイズ等がある。
他方、光学ノイズには、例えば、出射光学系にアパーチャ等を配置したことに起因する回折ノイズ、走査対象物の表面でレーザー光のスポットを反射させたとき表面の微細な凹凸により生じる干渉に起因するスペックルノイズ、光検出器に入射するフォトンの不連続性に起因して生じる光ショットノイズ、さらに、装置の内部に入反射して光検出器に入射する不要光に起因する迷光ノイズがある。 また、太陽光等の外光が機器に入り込むことで生じる外光ノイズ等がある。
回路ノイズは、温度変動等の影響は受けるものの装置自体に起因するものであるため、バーコード等の読み取り時には比較的安定している。即ち、バーコードの距離等を変動させても回路ノイズは比較的安定しており、ノイズ量やその挙動を予測しやすいという特徴がある。
他方、光学ノイズは、前述したように、外部環境に依存して大きく変動する傾向がある。例えば、光ショットノイズは受光量の平方根に略比例するように変動するので走査対象物の距離が変わると、ノイズ量も大きく変動する。
また、スペックルノイズは、走査対象物上の照射面積(スポットの面積)に依存することから、ビームウェストからの距離の絶対値と受光光学系の受光面積に依存するようにノイズ量が変動する。実際に観測されるノイズは、前述の回路ノイズと光学ノイズが加わったものとなるので、ノイズの挙動はさらに複雑となる。
以上のように、信号成分を与える各要因と、ノイズ成分を与える各要因がそれぞれ異なっており、挙動が多様である。走査対象が任意である光学系等においては、信号成分とノイズ成分に強い相関がないというところに特徴がある。例えば、バーコードの印刷濃度や反射率はユーザーの任意であるが、上記の光ショットノイズは受光量の平方根で効く。
従って、信号成分と光ショットノイズには絶対的な相関がない。さらに、バーコードの位置を変えると信号成分とノイズ成分のそれぞれが別々に変動して異なる振る舞いをする。このように、信号成分とノイズ成分は、どちらも固定値でもなければ、互いに比例の関係にもない。増減が逆になることも頻繁に生じる。このような観点から、スライスレベル等の従来技術を見ると、信号成分の増減や光学ノイズの挙動には追従しきれないということが直感的に理解できる。従って、入力が任意であるようなシステムに最適な信号処理系があったとすると、以上の特性を踏まえたものであって、前述した従来技術とは異なるものであろうと予想される。本発明は、このような観点によるものである。
次に、第1の実施形態に係るデジタル・シグナル・プロセッサ(DSP)46が実行する二値化処理について説明をする。
DSP46は、連続的に入力する信号について特定の処理を高速・連続的に処理することに特化して開発されたマイクロプロセッサである。前述した走査光学系のように情報を繰り返して処理する用途に使用することができる。具体例としては、マイクロチップ社製のDSPIC33シリーズ等を使用することができる。以下のフローチャート等で示す処理内容は、C言語等のプログラミング言語を用いて記述でき、コンパイル後、DSP46内部の不揮発ROMに書き込むことで、記述したように動作する。DSP46の入力ポートは、A/D変換回路45の出力端に接続され、A/D変換回路45から出力された微分信号が、10ビットの輝度値信号として入力される。
次に、図10に示すフローチャートを参照して、DSP46における二値化処理について、さらに詳細に説明する。
図9のステップS13に示したように、二値化処理の前にはすでに、1回の走査に対応する輝度値データが輝度値バッファ(第1のバッファ)に蓄えられている。即ち、10ビットでアナログ/デジタル変換された微分信号が階調値としてDSP46内部のメモリ領域に格納されている。よって、バッファサイズは、(10ビット)×(サンプリング回数)となっている。
図10に示したように、二値化処理では、まず、パラメータの初期設定等を行なう(ステップS21)。即ち、内部のパラメータや出力ポート等の初期化が行なわれる。
次に、輝度値バッファに輝度値データが残っているか否かを判定する(ステップS22)。この判定で、輝度値データが残っていれば(YES)、その輝度値データ(サンプリング値)Val1をサンプリングされた順(時系列順)に取得する。前述したとおり、サンプリング値は、10ビットの階調値で表現されている。即ち、O〜1023までの整数値を取る。
次に、最大値maxP2、最小値maxV2の評価・取得を行なう(ステップS24)。ここで、最大値maxP2、最小値maxV1とは、1回の走査における微分信号の最大値、最小値に対応しており、サンプリング値の変動領域を意味している。
これらの値は、次回以後の走査で用いる最大値maxP1,最小値maxV1を生成するために用いられる。具体的には、最大値maxP2,最小値maxV2はすでに、図10に示したように、走査前の初期化の段階でそれぞれ0および1023の値が設定されている(S21)。そして、取得したサンプリング値Val1と最大値maxP2を比較して、もし、Val1>maxP2となっていれば、maxP2=Val1として、最大値を更新する。もし、Val1<maxV2となっていれば、maxV2=Val1として、最小値を更新する。これを繰り返すことで、1回の走査における輝度値の最大値maxP2、最小値maxV2を取得できる。従って、(maxP2−maxV2)/2は、基準電圧に対する電圧の変動量に相当し、微分回路のピークの最大電圧に相当する。
次に、取得した輝度値データVal1から、ノイズ量Noi1の評価を行なう(ステップS25)。即ち、詳細は後述するが、その走査における高周波ノイズ等のノイズレベルを取得する。
次に、ピーク・バレーの検出処理を行なう(ステップS26)。詳細は後述するが、候補となるピーク・バレーの位置を探して、そのピークとバレーの変動量を内分比Rat1から求めた可変的な閾値Thr1を用いて評価して、閾値を超えるような変動量であれば有意であるとみなして、ピークおよびバレーを交互に順次確定していく。
図6で概念的に示したが、ピーク・バレーは微分信号の山谷にそれぞれ対応するものであって、バーコードや走査対象物のエッジの位置に相当するものである。このピーク・バレーの検出処理で検出された位置の情報は、第2のバッファ(二値化バッファ)に保存される。また、ピークまたはバレーが検出された場合は、ピーク・バレー数peaknum2に1を加えて、総数をカウントする。輝度値バッファのすべての輝度値データ(サンプリング値)について、以上のピーク・バレーの検出をすべて行う。その結果、二値化バッファには二値化パターンが保存される。
このようなピーク・バレーの検出処理を行なった後、前述したステップS22に戻る。即ち、1回の走査で得られたすべてのサンプリング値について、以上の操作を繰り返して行なわれる。
前記ステップS22の判定で、輝度値バッファに輝度値データが残っていない場合には(NO)、次回の走査のため、ピーク・バレーの評価に用いるパラメータを更新する(ステップS27、S28)。
ステップS27において、最大値maxP1と最小値maxV1を更新する。具体的には、maxP1=(maxP1+maxP2)/2、maxV1=(maxV1+maxV2)/2というように更新する。従って、最大値maxP2,最小値maxV2(S24)は、1回の走査における階調値の最大・最小値であったが、最大値maxP1,最小値maxV1(S27)は、過去と最新の値を反映(平均)した、最大・最小値である。
さらにステップS28において、見つかったピーク数peaknum2と、過去の走査で見つかったピーク数peaknum1を比較して、その変動量に応じて、内分比Rat1を更新する(S28)。即ち、ABS(peaknum1−peaknum2)<Thr1_peaknumを評価して、真であれば、内分比Rat1=(Rat1+0)/2とする。偽であれば、Rat1=(Rat1+1)/2とする。ここで、ABS()は、カッコ内の絶対値を取ることを意味する。
従って、内分比Rat1は、常に0から1の間の値を取り、走査ごとに検出されるピーク・バレーの本数の変動量ABS(peaknum1−peaknum2)が大きければ、内分比は1に近づく。変動量が小さければ内分比は0に近づく。ここでは、Thr1_peaknum=10としてある。即ち、検出されたピーク・バレー数の変動量が例えば、10本以内であれば、システムが比較的安定していると判断して、内分比を下げる動きになる。10本を超えていれば、システムが不安定になっていると判断して、内分比を上げる動きになる。尚、ピーク・バレー数の変動量の10本は、一例であって、限定されるものではない。
Thr1_peaknumの値は、光学系や駆動系、微分回路などハードウェアを確定した後、そのハードウェアの信号出力が安定するよう予め微調整されている。この後、peaknum1=(peaknum1+peaknum2)/2と更新する。即ち、ピーク・バレー数peaknum2は、1回の走査におけるピーク・バレーの総数であるが、ピーク・バレー数peaknum1は、過去と最新の値を反映したピーク・バレーの総数である。
従って、検出されたピーク・バレーの数が安定していると、ABS(peaknum1−peaknum2)は小さな値を取る。また、ノイズが増加して出力の変動が大きくなると、ABS(peaknum1−peaknum2)は、大きな値を取る。あるいは、バーコードの読み取り中にユーザーがバーコードを大きく動かすと安全をみて、即ちノイズを除去しようとして、内分比Rat1を大きくする動きとなる。また逆に、ノイズが皆無であれば、ABS(peaknum1−peaknum2)の値は、走査を繰り返すにつれ、限りなく0に近づく。
以上を繰り返すことにより、内分比Rat1は、システムの出力が安定しており、なおかつ、極力閾値が小さくなるところに収束する動きとなる。
さらに、以上で見つかっている最大値・最小値maxP1,maxV1および、ノイズ量Noi1の値に基づいて、閾値Thr1を更新する。即ち、Thr1=(1−Rat1)*Noi1+Rat1*(maxP1−maxV1)/2とする。
ここで、(maxP1−maxV1)/2は、基準電圧から最大となるピークまたはバレーの電圧値を平均化したものに相当する。即ち、信号レベルの最大値に相当する。従って、閾値は、信号レベルの最大値と、ノイズレベルの内分比として設定される。これらの値(S27、S28)はグローバル変数として、光走査モジュール1の起動の間、保持されており、次回以降の走査におけるピーク・バレーの検出(S22〜S26)に用いられる。
その後、二値化データの出力処理が行なわれる(ステップS29)。即ち、走査に対応して得られた二値化パターンは、復号回路47に出力される。具体的には、ピークの座標、バレーの座標を順次、取得して幅値を計算する。その幅値をタイマーの時間に置き換えて、ピークからバレーに至る期間は出力ポートをHIGHレベルにする。バレーからピークに至る期間は出力ポートをLOWレベルにする。これにより、二値化パターンは1ビットの出力信号の時間変化として出力される。
復号回路47でも同様にタイマーと、二値化パターンを保持する揮発性のメモリを有しており、二値化パターンの転送ごとに二値化回路からの入力ポートの時間変化から、そのパターンを取得して保持するようになっている。以上の処理の後、シーケンスを上位にリターンする。
次に、図11に示すフローチャートを参照して、図10のステップS25におけるノイズ量の評価処理について説明をする。
まず、図11に示すパラメータVal5,Val4,Val3,Val2等の初期値は、図10のステップS21に示したパラメータの初期設定と同様に、上位のシーケンスにおいて、すでに設定されている。具体的には、階調値で基準電圧に相当するmid_ref1(=511)の値が入力されている。即ち、前述したように、信号の入力がないときは、微分回路44の出力はOVとなっているので、その基準電圧に対応したアナログ/デジタル変換後の階調値mid_ref1が初期値として設定されている。
次に、すでに取得されているサンプリング値Val1を図11に示したように連続する過去の値が保存されるように保持する(ステップS31)。即ち、連続して取得された過去N1回(この場合、N1=4)のサンプリング値が順次、Val2,Val3,Val4,Val5に保存される。このサンプリング値の変化が、順に、小大小大の並びになっているか否か(ステップS32)、又は、大小大小の並びになっているか否かの並びになっているかどうかを判定する(ステップS33)。
この並びになっている場合は、過去に取得されているノイズ量を退避して、Noi2=ABS(Val4−Val3)となるように更新する(ステップS34)。
そして、過去N2回(この場合はN2=4回)のこのノイズ量について、平均値を求めて、ノイズ量Noi1を更新する。並びが条件を満たさない場合は、ノイズ量Noi1は更新されず、制御を上位に返す。即ち、ここでいうノイズ量Noi1とは、隣接したサンプリング値に増減があった場合にその変動量を取得する動きになる。
前述したように本実施形態では、微分回路44を用いて、低周波数のノイズはすでに遮断されている。従って、最も周波数の高い隣り合うサンプリング値の変動量を評価すれば十分である。この高周波数ノイズには、前述したスペックルノイズや光ショットノイズのような光学ノイズも含まれている。このため、高周波数の光学ノイズが増大すると、このノイズ量Noi1はノイズ成分に比例して増大する。従って、ノイズ量を定量的に評価することが可能となる。
光学ノイズは、振幅は大きく変化するが、その周波数は電気回路の熱雑音のように、周波数に強く依存せず均一となる傾向がある。このため、最も周波数の高い領域を代表として、ノイズ量を評価すれば光学ノイズを定量的に把握するには十分である。
さらに、ノイズがほとんど無い環境下では、前述したようにノイズ量Noi1は、更新されないか、非常に小さな値が設定される。つまり、ノイズがほとんど生じていないような状況もノイズ量Noi1で定量的に把握できることになる。従って、トータルでのノイズは、ノイズ量Noi1の値によってその特徴を定量的に把握できる。
また、並びが条件(ステップS32及びS33)を満たさず、例えば、Val5>Val4>Val3>Val2のように単純な減少または増加となっているときは、これはランダムノイズというよりは、信号成分に対応していると考えられる。例えば、ノイズ量に対して、非常に強い信号が入力すると、信号ピークは大きく変化する。このように、信号成分による変動が比較的大きい場合には、ノイズ量としては評価しない。これにより、ノイズ量Noi1の値はより正確に評価される。
次に図12に示すフローチャートを参照して、ピークとバレーの検出・取得処理(図10のステップS26)について説明をする。
ここで、サンプリング値Val1は、ステップS23において、すでに輝度値バッファから階調値として取得されている。また、ピークの候補値PossiblePeak1とバレーの候補値PossibleValley1は、図10のステップS21で示したように、走査する毎に行なわれる二値化処理の最初の段階ですでに初期化されている。具体的には、ともに、基準電圧レベルmid_ref1に設定されている。以降、走査にともなって、サンプリング値Val1の値の変動を評価して、ピークとバレーを順次、確定する。
図12に示したように、ピークとバレーの検出・取得処理は、まず、Val1≧PossiblePeak1の条件1を満たしているか否かを判定する(ステップS41)。上記条件1を満たしている場合は(YES)、ピークの判定処理に移行して後述するピーク判定を行い(ステップS43)、シーケンスを上位にリターンする。一方、上記条件1を満たしていない場合には(NO)、次に、Val1≦PossibleValley1の条件2を満たしているか否かを判定する(ステップS42)。この判定で条件2を満たしている場合には(YES)、バレーの判定処理に移行して後述するバレー判定を行い(ステップS44)、シーケンスを上位にリターンする。一方、上記条件2を満たしていない場合には(NO)、そのままシーケンスを上位にリターンする。
次に図13に示すフローチャートを参照して、ピークの判定処理(図12のステップS43)について説明をする。
図12のステップS41の条件1において、サンプリング値Val1がピークの候補値PossiblePeak1を超えた場合には、このピークの判定処理が実行される。
まず、ピークの候補値PossiblePeak1をサンプリング値Val1で更新し、そのサンプリング値Val1の座標i1をposiPeak1に保存する(ステップS51)。この時、座標i1は、時系列でみたサンプリングの順番であって、走査領域の座標に対応している。従って、posiPeak1は、バーコードのエッジの候補となる座標を示している。
次に、ピーク検出モードか否かを判定する(ステップS52)。つまり、ピーク・バレーの検出モードには、ピークを探しているモード(pv_state=0に相当)と、バレーを探しているモード(pv_state=1に相当)との2つモードがある。
ここで、前述したステップS21におけるパラメータの初期設定の項で説明したように、1回の走査を行なった後、二値化処理を開始する時点では、pv_state=0に初期設定されている。
次に、ピーク検出モードが否かを判定する(ステップS52)。この判定は、ステップS51において、ピークの候補値を更新した時点で、ピーク検出モードであった場合には(YES)、バレーの候補値を現在のサンプリング値でクリアして(ステップS53)、シーケンスを上位にリターンする。この判定により、ピーク検出モードでは、より高いピーク値を更新し続ける動きになる。即ち、微分回路44から出力された信号が入力するため、より高いピークが見つかった場合は、信頼性がより高いと判定して候補値を更新する。この時に、すでに見出されているバレーの候補値には、現在のサンプリング値Val1を入れて破棄する(ステップS53)。つまり、ピークを検索して、より高いピークに更新されている期間は、先に検出されたバレーは、偽であると判断してもよいため、これまでに見出されたバレーの候補値は破棄する。
一方、ステップS52の判定において、ピーク検出モードではない場合には(NO)、即ち、バレー検出モードである場合は、バレーの候補値を確定してよいか否かを判定する(ステップS54)。この判定は、ピークの候補値が基準電圧レベルmid_ref1を超え、且つ先に見出されたピークの候補値とバレーの候補値との変化量が閾値Thr1を超えているか否かを判定する。即ち、微分回路44から出力された信号が入力するため、真のピークと真のバレーは、値の正負が反転する。
従って、基準電圧を横切ったことを確認し、且つ先に見出されたピークとバレーの候補の変動量の有意さを閾値Thr1で判定する。このステップS54の判定結果が真であれば、先に見出されているバレーの候補値PossibleValley1を確定して、二値化バッファにその座標posiValley1を保存する。
その後、ピーク・バレー検出の状態pv_stateをピーク検出モードに切り替える(ステップS55)。即ち、これまでバレー検出モードでバレーを探していたのだが、微分信号の正負が反転して有意な変動が検出された場合は、バレーの候補値を確定してピーク検出モードに移行する。さらに、バレーが1つ確定しているため、ピーク・バレーのカウント数を1つ増加させて、シーケンスを上位にリターンする。
一方、ステップS54の判定において、バレーの候補値を確定しない場合には(NO)、即ち、偽の判定であれば、そのままシーケンスを上位にリターンする。
次に図14に示すフローチャートを参照して、バレーの判定処理について説明する。
バレーの判定処理においては、ピークの判定処理と類似の処理が行われる。即ち、図12のステップ42において、サンプリング値Val1がバレーの候補値を下回った場合には、このバレーの判定処理が実行される。
まず、バレーの候補値PossibleValley1をサンプリング値Val1で更新する。また、そのサンプリング値Val1の座標i1をposiValley1に保存する(ステップS61)。このposiValley1は、バーコードのエッジの候補となる座標を示す。
次に、バレー検出モードか否かを判定する(ステップS62)。この判定において、バレーの候補値を更新した時点で、バレー検出モードである場合には(YES)、ピークの候補値を現在のサンプリング値でクリアーして(ステップS63)、シーケンスを上位にリターンする。この処理により、バレー検出モードでは、より低いバレーを更新し続ける動きになる。また、バレーが更新されている間は、先に見出されているピークの候補値は、偽であると判断してもよいため、それらのピークの候補値は破棄する。
一方、ステップS62の判定において、判定結果がバレー検出モードではない場合(NO)、即ちピーク検出モードであれば、次にピークの候補値を確定してよいか否かを判定する(ステップS64)。この判定は、バレーの候補値が基準電圧レベルmid_ref1を下回り、且つ、先に見出されているピークの候補値とバレーの候補値の変化量が閾値Thr1を超えているか否かを判定するものである。即ち、微分回路44から出力された信号が入力するため、真のピークと真のバレーは、値の正負が反転する。従って、基準電圧を横切ったことを確認し、且つ先に見出されたピークとバレーの各候補の変動量の有意さを閾値Thr1で判定する。
このステップS64の判定結果がピークの候補値を確定してよい(YES)、即ち真であれば、先に見出されているピークの候補値PossiblePeak1を候補として確定して、二値化バッファに、その座標posiPeak1を保存する。さらに、ピーク・バレー検出の状態pv_stateをバレー検出モードに切り替える(ステップS65)。この判定においては、それまでピーク検出モードでピークを探していたが、微分信号の正負が反転して有意な変動が検出された場合には、ピークの候補値を確定して、バレー検出モードに移行する。さらに、ピークが1つ確定したのであるから、ピーク・バレーのカウント数を1つ増加させる。その後、シーケンスを上位にリターンする。一方、ステップS64の判定結果がピークの候補値を確定しない(NO)、即ち、偽であれば、そのままシーケンスを上位にリターンする。
以上説明した第1の実施形態における各フローチャートによる一連のシーケンスについて説明する。
図10に示すステップ26において、ピークの判定処理とバレーの判定処理を繰り返して実行すると、より高いピーク値PossiblePeak1と、より低いバレー値PossibleValley1が次々に更新されて、ピークの候補値とバレーの候補値の差が次第に大きくなっていく。そして、変動量がある有意な量を超えて、基準電圧を越えると、ピークまたはバレーが順次確定する動作となって、以降、その動作を繰り返し行うことになる。
そして、1回の走査で見つかったピーク・バレーの総数がpeaknum2の値として得られることになる(図13に示すステップS55、図14に示すステップS65)。
さらに、図10に示すフローチャートにおいて、ピーク・バレーの本数peaknum1は、過去を反映させた値としてpeaknum1に保存されていて(ステップS28)、この変動量に応じて、内分比Rat1が更新される動きになる。即ち、出力パターンが走査ごとに大きく変動すると、内分比が1に近づく。
また、出力パターンが走査ごとに変動しないと、内分比が0に近づく。これに伴って、上で用いた閾値Thr1が更新される(ステップS28)。即ち、閾値Thr1は、走査で評価したノイズ量Noi1と輝度値の変動量の中間に存在することになる。閾値は、ノイズと信号を内分する点に位置しており、その内分比が定義されている。
従って、前述したように、スペックルノイズ等及び、光学ノイズ等が増大すると、ノイズ量Noi1が上昇する(ステップS34)。これに伴って、ノイズレベルと信号レベルの間に存在する閾値Thr1も上昇する(ステップS28)ことになるので、ノイズ量の増減に追従して、閾値が増減することになる。また、同様に、輝度値の増減(最大値、最小値の増減)があった場合(ステップS24、S27)でも、増減に追従して、閾値Thr1が増減する(ステップS28)。
従って、信号レベルとノイズレベルが大きく変動した場合であっても、即座に閾値は妥当な内分比となる位置に追従して動く(ステップS28)。これにより、ランダムノイズが二値化の判定に入り込む要因が改善されて、バーコード等の読み取りの安定性は格段に改善する。例えば、10msの走査期間に比較して急激にノイズレベルや信号レベルが変動した場合であっても、即時にパラメータ調整が追従して安定となる値に収束し、二値化判定は即座に最適化される。さらに、内分比は、出力パターンが大きく変動すると高くなって、変動が小さいと小さくなる(ステップS28)。
従って、出力パターンが安定するところに収束する動きになる。前述した誤読・誤動作は、ランダムノイズに起因するものであったが、以上によれば、繰り返し再現性のあるところに二値化判定のパラメータが収束して、走査毎のランダムさが除去されて安定的な挙動となる。これにより、複数回の走査で同じようなパターンが出力されるようにパラメータの微調整が収束するような動きとなり、誤読・誤動作が生じる確率は著しく低減する。即ち、例えば複数回走査してまったく同一の結果が得られるのであれば、その信号のランダムさは皆無であるといえるのであるから、ランダムなノイズは除去されていることになって、誤動作・誤読の確率が非常に小さくなる。
従来の技術においては、復号処理の結果を確認した後に、チェックデジット等を確認することで初めて、ノイズか否かの判定を行っていた。この場合、復号処理の前段である二値化処理の出力にはすでにノイズが入り込んでいることになる。従って、誤動作・誤読をする可能性が否定できなかった。
これに対して、本実施形態によれば、復号処理の前段である二値化処理において、繰り返し再現性のあるパターンを出力する動きになるので、誤動作・誤読が格段に改善される。さらに、光学ノイズが非常に小さいような環境では、ノイズ量Noi1は非常に小さな値を取り得る(ステップS34)。
またさらに、ノイズが小さいと、内分比は0に近づき(ステップS28)、閾値Thr1は小さな値を取る。すると、高密度バーコードをデフォーカスさせたような場合のように、信号振幅は高いものの変調度が極端に劣化するような場合であっても、読み取ることが可能となる。なぜなら、再現性のある出力が得られる範囲においては、閾値は小さく微調整される動きになるからである。
従って、スライスレベルを設けた従来技術等と比較すると、二値化判定の精度は著しく向上し、格段に読み取りの性能が改善する。低コントラストのバーコードの読み取りをする場合も、同様に、再現性のある出力が得られる範囲において閾値調整が収束・最適化される動きとなる。即ち、走査対象のコントラストや印刷密度に応じて、最適なパラメータの組み合わせに収束するため、読み取りが格段に向上する。
復号回路側からみた場合の利点として、さらに、復号回路が受け取る二値化信号は、再現性のあるランダムさのない信号となる。
従って、復号回路では、ノイズの中にバーコードを探しにいくというような無駄な処理が解消する。これにより、システム全体の処理効率は、さらに、著しく改善する。即ち、読み取り速度が格段に改善する。また、前述したように、復号回路の誤読・誤動作は、ランダムさに起因するものであるが、この誤動作等も解消・低減する。
尚、本実施形態においては、ピーク・バレーの総数を評価することで、出力の安定性を評価する例について説明した。しかしながら、必ずしもこの例に限定されるものではない。例えば、ピーク・バレーの総数に加えて、ピーク・バレーの位置の変動を評価してもよい。
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態では、バーコードの読み取り装置に信号生成回路を搭載した構成例について説明した。第1の実施形態の図8においては、操作コード06、07で示したように、階調値のパターンや二値化のパターンが画像データとして直接出力できるようになっている。第2の実施形態は、復号回路等の結果を利用しなくても、ノイズ量を適正に取得・調整でき、画像処理に利用する例である。本実施形態では、階調値データや二値化データを画像データとして直接出力させれば、バーコードの読み取りに限らず、あらゆる測定器・検出器を構成できる。
図15は、本発明に係る第2の実施形態として、信号生成回路を搭載した走査光学顕微鏡の外観構成例を示す。本実施形態は、第1の実施形態における走査光学系をガルバノミラー等に変えて2次元的な走査ができるようにしたものである。
走査光学顕微鏡51は、顕微鏡ベース部52と、3次元(XYZ方向)に移動可能な試料テーブル53と、倍率の異なる複数の対物レンズ54と、走査対象55に走査する観察光を照射し観察する走査光学系を含む鏡筒本体54と、鏡筒本体56内に配置される信号生成回路57とで構成される。
本実施形態の信号生成回路57は、第1の実施形態で説明したように、光学ノイズの除去に適しており、光学系を変更しても、同等の作用効果が得られる。従って、ノイズの除去に優れた高精度の測定器にも好適する。また、顕微鏡にバーコードの読み取り機能を追加して、測定サンプルに応じて画像データの自動処理の機能等を追加してもよい。
以上のように、本発明の信号生成回路は、あらゆる光学的に情報を読み取る機器に搭載できる。例えば、バーコードリーダ、レーザープリンタ、レーザー走査型顕微鏡、レーザープロジェクタ、情報入力装置、情報出力装置、画像形成装置、精密医療機器、携帯情報端末、車間センサ、防犯センサ、三次元スキャナ、無線装置、ハンドヘルド機器、自動車、船舶、航空機、半導体製造装置、カード認識装置、自動販売機等である。(走査対象)また、本発明の信号生成回路は、あらゆるバーコードの読み取りに好適する。バーコードについては、例えば、JAN、EAN、UPC、Code 39、ITF(Inter leaved 2 of 5)、Codabar、Code 128、UCC / EAN 128、Bookland EAN、MSIPlessey、Code 93、Reduced Spaced Symbology (RSS)、PDF 417等の読み取りに好適する。
また、線画、ドット、線分等の組み合わせや記号、刻印された凹凸形状等の特殊なパターンを読み取る用途であっても好適する。
また、本発明の信号生成回路は、復号回路に搭載されたソフトウェアを書き換えることで、容易に物体検出等に応用することができる。例えば、自動車や人物の認識に用いることができる。移動物体やその有無についても検出することができることから、走査光を赤外光として防犯装置を構成してもよい。
また、本発明の信号生成回路を用いて、三次元形状を読み取るための三次元スキャナを構成して、人体等を走査対象としてもよい。
また、本発明によれば、広い距離範囲において読み取りが改善されることから、広範囲の移動物体等の高精度な検出に好適である。また、高精細のレーザープロジェクタとして、スクリーンや壁面を走査するという例であってもよい。
次に、第1及び第2の実施形態における変形例について説明する。
前述したように、第1及び第2の実施形態による信号生成回路及び信号生成方法によれば、読み取りの性能や誤動作等は格段に改善される。しかしながら、その他のノイズや光学系の改善を併用してよいことはいうまでもない。例えば、前述したバンドパスフィルタとして、特許文献3に記載された光学的ゲイン補正フィルタを搭載してもよい。この光学的ゲイン補正フィルタは、入射角が変わると光量が増減するという多層膜部品であるが、この部品を搭載することで、走査等にともなう周辺光量落ちを低減するなど、さらに性能を改善できる。
また、前述した実施形態において、レーザー光は655nmの波長として説明したが、かならずしもこの限りでない。即ち、400nm近辺の光源としてもよいし、800nm以上の赤外光を用いてもよい。この場合、前述したバンドパスフィルタの透過波長を変更すればよい。
以上のように、前述した各実施形態及び変形例によれば、入力信号が大きく変動するシステムにおいても、適切な二値化処理ができる信号生成回路及び信号生成方法を提供することができる。
尚、前述した各実施形態及び変形例によれば、さらに、目的として以下の信号生成回路及び信号生成方法を提供する。
(1)入力信号のノイズ成分が大きく変動するシステムにおいても、適切な二値化処理ができる信号生成回路および信号生成方法を提供することができる。
(2)入力信号の信号成分やノイズ成分が大きく変動するシステムにおいても、誤動作の生じにくい信号生成回路および信号生成方法を提供することができる。
(3)入力信号の信号成分やノイズ成分が独立して大きく変動するシステムにおいても高速かつ安定して動作する信号生成回路および信号生成方法を提供することができる。
(4)復号処理の前段である二値化処理において、ノイズの低減や誤読の改善・高速化を実現できる信号生成回路および信号生成方法を提供することができる。
(5)入力信号のノイズ成分が大きく変動するシステムにおいても、適切な二値化処理ができる信号生成回路および信号生成方法を提供することができる。
(6)入力信号の信号成分やノイズ成分が大きく変動するシステムにおいても、誤動作の生じにくい信号生成回路および信号生成方法を提供することができる。
(7)入力信号の信号成分やノイズ成分が独立して大きく変動するシステムにおいても高速かつ安定して動作する信号生成回路および信号生成方法を提供することができる。
(8)復号処理の前段である二値化処理において、ノイズの低減や誤読の改善・高速化を実現できる信号生成回路および信号生成方法を提供することができる。
さらに、前述した各実施形態及び変形例によれば、以下の発明を含んでいる。
(1)検出器と、
前記検出器の微分信号を生成するための微分回路と、
前記微分信号における信号レベルを取得するための信号レベル検出手段と、
前記微分信号におけるノイズレベルを取得するためのノイズレベル検出手段と、
閾値レベル設定手段と、
前記信号レベルと前記閾値レベルに基づいて出力信号を生成する信号出力手段と、を有する信号生成回路において、
前記信号レベルと前記ノイズレベルについて所定の内分比に可変的に設定することによって前記閾値レベルを決定することを特徴とする信号生成回路。
(2)前記(1)項における信号生成回路において、
前記信号生成回路から出力された過去の出力信号と、
前記信号生成回路からあらたに出力される出力信号との変動量に基づいて、
前記内分比を更新することを特徴とする信号生成回路
(3)前記(1)項における信号生成回路において、
前記信号生成回路からの閾値レベルを超えて出力された信号の特徴量(本数、パターン)を取得して、過去の信号生成における前記特徴量からの変動に応じて、前記内分比を反復的に更新することを特徴とする信号生成回路。
(4)前記(1)項における信号生成回路において、
前記信号生成回路からの閾値レベルを超えて出力された信号の特徴量(本数、パターン)を取得して、過去の信号生成における前記特徴量からの変動が相対的に小さな場合は、前記内分比を前記ノイズレベルに近い側に、過去の信号生成における前記特徴量からの変動が相対的に大きな場合は、前記内分比を前記信号レベルに近い側に、反復的に更新することを特徴とする信号生成回路。
(5)前記信号生成回路の検出器が、走査されるレーザー光の反射光を受光するものであって、前記レーザー光により走査される走査対象物の距離、反射率、印刷濃度、印刷密度、角度に対応して、前記信号レベルが追従することを特徴とする信号生成回路。
(6)前記信号生成回路が、走査されるレーザー光の反射散乱光の光信号を処理するものであって、前記レーザー光の走査に伴う外光ノイズ、迷光ノイズ、スペックルノイズ、光ショットノイズ、回路ノイズ、量子化ノイズに対応して、前記ノイズレベルが追従することを特徴とする信号生成回路。
(7)検出器と、
前記検出器からの信号を微分処理するための微分回路と、
微分回路からの出力信号に基づき二値化信号を出力するための二値化回路と、を有する信号生成回路において、
前記微分回路の出力信号における信号レベルとノイズレベルについて、前記ノイズレベルが増加して前記二値化信号の変動が大きくなったとき、前記二値化信号の本数を減少させるステップと、前記ノイズレベルが減少して前記二値化信号の変動が小さくなったとき、前記二値化信号の本数を増加させるステップと、を有し、
前記2つのステップを反復的に繰り返すことを特徴とする信号生成方法。
(8)検出器と、
前記検出器からの信号を微分処理するための微分回路と、
微分回路からの出力信号に基づき二値化信号を出力するための二値化回路と、を有する信号生成回路において、
同一信号を反復的に前記信号生成回路に入力させると信号本数が増加するステップと、異なる信号を繰り返し前記信号生成回路に入力させると信号本数が減少するステップと、を有することを特徴とする信号生成方法。
1…光走査モジュール、2…ハウジング、2a…ベース部材、2b…基板ユニット、3…光源ユニット、4…光学走査装置、5…折り返しミラー、6…光検出器、11…レーザーダイオード(LD)、12…コリメータレンズ、13…出射アパーチャ、15…バンドパスフィルタ、16…受光開口部、17…光検出器、20…駆動回路、21…走査ミラー、21a…集光ミラー、21b…出射ミラー、22…駆動部、23…軸受部、25…駆動コイル、26…板ばね、27…支持ばね保持部材、28…ヨーク、29…磁石、31…コネクタ、32…制御部。

Claims (10)

  1. 光信号を受光する光検出器と、
    前記光検出器から出力されるアナログ信号に対して微分処理を行う微分回路と、
    前記微分回路から出力される微分信号の信号成分を取得し、その信号成分のレベルに基づき第1のレベル値を設定する第1レベル設定手段と、
    前記第1のレベル値よりも低い第2のレベル値を設定する第2レベル設定手段と、
    前記第1のレベル値と、前記第2のレベル値との間の内分比に基づき、閾値を設定すると共に、当該内分比を可変とする閾値設定手段と、
    前記信号成分と前記閾値に基づいて、光信号から情報を生成する情報生成手段と、
    を有することを特徴とする信号生成回路。
  2. 前記閾値設定手段は、前記情報生成手段から生成される情報を記憶するメモリをさらに有し、
    前記メモリに先に記憶されている情報と、前記信号生成回路から新たに生成される情報との変動量に基づいて、内分比を更新し設定することを特徴とする請求項1記載の信号生成回路。
  3. 前記閾値設定手段は、前記情報生成手段から生成される情報の特徴を取得し、該情報の特徴を前記メモリに記憶すると共に、該メモリに先に記憶されている情報の特徴と、前記信号生成回路から新たに生成される情報の特徴とを比較し、その比較結果により求められる両情報の特徴の差に基づいて、内分比を更新し設定することを特徴とする請求項2記載の信号生成回路。
  4. 前記閾値設定手段は、前記両情報の特徴の差が相対的に小さい場合には、内分比を小さくすることで閾値の絶対値を下げ、該両情報の特徴の差が相対的に大きい場合には、内分比を大きくすることで閾値の絶対値を上げるように変更することを特徴とする請求項3記載の信号生成回路。
  5. 前記情報の特徴は、前記信号成分のピーク値またはバレー値、あるいはそれらの合計の個数であることを特徴とする請求項4記載の信号生成回路。
  6. 前記情報の特徴は、前記信号成分の信号パターンであることを特徴とする請求項4記載の信号生成回路。
  7. 前記第2レベル設定手段は、前記微分回路から出力される微分信号のノイズ成分を取得し、第2のレベル値としてそのノイズ成分のレベルを設定することを特徴とする請求項1記載の信号生成回路。
  8. N回目の光ビームの走査によって読み取り対象物から反射される反射光を受光し、アナログ信号を出力する受光ステップと、
    前記アナログ信号に対して微分処理を行い、微分信号を取得する微分処理ステップと、
    前記微分信号の中から、基準電圧を負側から正側に越えて再び正側から負側に越えるまでの間毎に最大のピーク値をそれぞれ検出すると共に、前記基準電圧値を正側から負側に越えて再び負側から正側に越えるまでの間毎に最小のバレー値をそれぞれ検出するピーク値及びバレー値取得ステップと、
    隣り合うピーク値とバレー値との変動量と、予め定めた閾値とを比較することで、真のピーク値及び真のバレー値を取得し、取得された真のピーク値の総数及び真のバレー値の総数を計数する計数ステップと、
    今回計数された真のピーク値の総数及び真のバレー値の総数と、以前の光ビームの走査によって計数された真のピーク値の総数及び真のバレー値の総数とを比較し、両総数の差に基づいて前記閾値を変更する閾値設定ステップと、
    を有することを特徴とする信号生成方法。
  9. 前記微分信号からノイズレベルを取得するノイズレベル取得ステップをさらに有し、
    前記閾値設定ステップは、ピーク値及びバレー値の信号レベルと、ノイズレベルを内分する点に前記閾値を設定すると共に、該閾値は前記両総数の差に基づいて変更することを特徴とする請求項8記載の信号生成方法。
  10. 前記閾値設定ステップは、前記両総数の差が所定の値より小さい場合には前記閾値の絶対値を下げるようにそれ以外の場合には前記閾値の絶対値を上げるように前記内分点を変更することを特徴とする請求項9記載の信号作成方法。
JP2009001048A 2009-01-06 2009-01-06 信号生成回路及びその信号生成方法 Withdrawn JP2010160574A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009001048A JP2010160574A (ja) 2009-01-06 2009-01-06 信号生成回路及びその信号生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009001048A JP2010160574A (ja) 2009-01-06 2009-01-06 信号生成回路及びその信号生成方法

Publications (1)

Publication Number Publication Date
JP2010160574A true JP2010160574A (ja) 2010-07-22

Family

ID=42577711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009001048A Withdrawn JP2010160574A (ja) 2009-01-06 2009-01-06 信号生成回路及びその信号生成方法

Country Status (1)

Country Link
JP (1) JP2010160574A (ja)

Similar Documents

Publication Publication Date Title
US10222514B2 (en) Autofocus lens system
EP0433593B1 (en) Bar code symbol readers with edge enhancement
US4578571A (en) Portable bar code scanning device and method
US9280693B2 (en) Indicia-reader housing with an integrated optical structure
EP1573648B1 (en) Image scanning device having a system for determining the distance to a target
US7025273B2 (en) Miniature auto focus voice coil actuator system
US5192856A (en) Auto focusing bar code reader
US6166375A (en) Offset optical axes for bar code scanner
US20180059220A1 (en) Laser ranging device with beam signature and signature recognition
US6938824B2 (en) Decoding algorithm for laser scanning bar code readers
CN102622569A (zh) 具有边缘检测增强的条码读取器
WO1999023598A1 (en) Electronic edge detection system
JP7192022B2 (ja) カメラ及び画像データ取得方法
US7083096B2 (en) Miniature auto focus piezo actuator system
EP0621970A1 (en) Portable optical reader system
US7428999B2 (en) MEMS-based electro-optical reader and method with extended working range
US6612496B1 (en) Scan module
JP2010160574A (ja) 信号生成回路及びその信号生成方法
US20210356268A1 (en) Detection of moving objects
US20060065734A1 (en) Dual scanner signal acquisition
JP2010079022A (ja) 光走査モジュール
US10803269B2 (en) Scan module and reader for, and method of, electro-optically reading a target by adjusting reading parameters based on target distance

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: 20120306