光学的情報読取装置及び光学的情報読取方法
【課題】 読取対象物までの距離や読取対象物の移動速度が分らなくても読取対象物上に配置された光反射率が周囲と異なる記号により示される情報を素早く且つ正確に読み取れるようにする。
【解決手段】 コードスキャナ1のデコーダ20は、CMOSイメージセンサ13が検出する、レーザ光発生器15が出力したレーザ光15aの荷物4による反射光に基づいて、その荷物4までの距離を測定し、その測定した距離に基づいて、撮像時のフォーカスレンズ11のフォーカス及びパルスLED14による照明の照射光量をそれぞれ調整し、その調整後の条件で撮像した荷物4上のコード記号5を含む画像を解析し、そのコード記号により示される情報をデコードする。
【解決手段】 コードスキャナ1のデコーダ20は、CMOSイメージセンサ13が検出する、レーザ光発生器15が出力したレーザ光15aの荷物4による反射光に基づいて、その荷物4までの距離を測定し、その測定した距離に基づいて、撮像時のフォーカスレンズ11のフォーカス及びパルスLED14による照明の照射光量をそれぞれ調整し、その調整後の条件で撮像した荷物4上のコード記号5を含む画像を解析し、そのコード記号により示される情報をデコードする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、光反射率が異なるパターンで構成されるバーコード,二次元コード等のコード記号の画像を撮像し、その撮像した画像からコード記号によって表された情報を読み取るコードスキャナ,2次元コードスキャナ,マルチコードスキャナを含む光学的情報読取装置と、上記のようなコード記号によって表された情報を読み取る光学的情報読取方法とに関する。
【背景技術】
【0002】
従来から、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の自動認識手段として、光反射率が周囲と異なる記号で情報を表記したバーコードや二次元コードなどのコード記号が広く使用されている。
例えば、検品作業,配送作業において、ベルトコンベアにコード記号を添付した商品,荷物などの物品を載せて所定の場所まで移動させる際に、コードスキャナで物品に添付されたコード記号によって表された情報を読み取り、その読み取った情報をホストコンピュータに送信し、物品の内容物の確認や経過記録,配送地及び配送時間の確認等が行われている。
【0003】
そして、このようなコード記号の読み取りに際しては、ベルトコンベア上を移動するコード記号を的確に捕捉し、そのコード記号により示される情報を正確にデコードしなくてはならない。
また、このようなコード記号の読み取りには、光学的読取装置として、CMOSセンサやCCDセンサなどの固体撮像素子を用いたコードスキャナが広く使用されている。
【0004】
上述のような光学的読取装置の従来技術の一つとして、特許文献1に記載のように、二次元に配列された複数の撮像素子で移動するバーコードを撮像し、その各撮像素子の出力値に対応する画像内での、露出時間中に移動するバーコードの移動距離を撮像素子数に換算して算出し、その移動距離及び隣接する撮像素子同士の出力値の差分値を用いて、上記画像内でのバーコードを含む部分からバーコードの静止画像を復元し、その復元したバーコードをデコードすることにより、移動ぶれでぼやけているバーコード画像からバーコードを読み取る技術があった。
【0005】
また、もう一つの技術として、特許文献2に記載のように、移動する情報コードの情報の読み取りが成功するまで、何度か撮像を試みて、成功したときの照明の明るさ等の条件を記憶し、その条件に基づいて実際のコード読み取りを行う技術があった。
さらに、特許文献3に記載のように、CMOSセンサやCCDセンサなどの固体撮像素子を用いた一般に使用されるデジタルカメラでは、移動する被写体を撮像するのに耐えうるような仕様にある程度なっている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−230477号公報
【特許文献2】特開2004−110668号公報
【特許文献3】特開2006−197393号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術では、撮像した画像からバーコードをデコードするためのCPUの計算量が多くなり、装置作動に悪影響が出やすいので、高性能の固体撮像デバイスを採用する必要があり、コストがかかってしまうという問題があった。また、バーコードを含む画像が焦点の合っていないぼけた画像の場合、バーコードを正確にデコードできないという問題があった。
次に、特許文献2に記載の技術では、事前にテストモードを行う必要があり、すぐに物品の情報コードの読み取り作業にとりかかることができない。また、1つの現場で適用した条件がどこでも使用できるとは限らず、使用場所あるいは使用状態が異なるたびにテストモードを行う必要があり、操作者の負担になってしまう。したがって、読取対象物が示す情報を素早く且つ正確に読み取ることができないという問題があった。
【0008】
さらに、特許文献3に記載の技術は、コードスキャナに適用するには、機体構造やソフトウェアアルゴリズムが複雑であり、コード記号の撮像には不要な処理が含まれ、上述したような作業現場で迅速な処理を行うことは望めないので、上述の従来の各技術と同様に、その読取対象に含まれるコード記号を素早く正確に読み取ることができないという問題があった。
この発明は上記の点に鑑みてなされたものであり、読取対象物までの距離や読取対象物の移動速度が分らなくても読取対象物上に配置された光反射率が周囲と異なる記号により示される情報を素早く且つ正確に読み取れるようにすることを目的とする。
【課題を解決するための手段】
【0009】
この発明は上記の目的を達成するため、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、レーザ光を出力するレーザ出力手段と、読取対象物を照明する照明手段と、読取対象物の画像を撮像する撮像手段と、上記撮像手段が検出する、上記レーザ出力手段が出力したレーザ光の読取対象物による反射光に基づいて、その読取対象物までの距離を測定する距離測定手段と、その距離測定手段が測定した距離に基づいて、上記撮像手段の撮像時のフォーカス及び上記照明手段による照明の照射光量を調整する調整手段と、その調整手段による調整後の条件で上記撮像手段によって撮像した上記読取対象物の画像を解析し、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段を有する光学的情報読取装置を提供する。
【0010】
また、上記のような光学的情報読取装置において、読取対象物までの距離と、上記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを記憶する手段を備え、上記調整手段を、上記距離測定手段が測定した距離をもとに上記フォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、上記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うようにするとよい。
【0011】
さらに、上記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、上記所定の初期値と対応する一定の値にするとよい。
また、上記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、上記調整手段を、上記液体レンズに印加する電圧を調整することによって上記フォーカスの調整を行うようにするとよい。
【0012】
さらに、上記のような光学的情報読取装置において、読取対象物までの距離と、上記照明手段にその距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを記憶する手段を備え、上記調整手段を、上記距離測定手段が測定した距離をもとに上記照明テーブルを検索して取得した駆動制御パラメータの値に基づき、上記照明手段を駆動することにより、照明光量の調整を行うようにするとよい。
【0013】
さらにまた、上記レーザ出力手段として、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段を有しており、ユーザの操作がない場合には、上記レーザ出力手段に上記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、上記レーザ出力手段が出力するレーザ光を上記可視光のレーザ光に切り換える手段を設けるようにするとよい。
【0014】
また、この発明は、レーザ出力手段が出力したレーザ光の読取対象物による反射光を撮像手段により検出し、その検出した反射光に基づいて、上記読取対象物までの距離を測定する距離測定工程と、その距離測定工程で測定した距離に基づいて、撮像時の上記撮像手段のフォーカス及び照明手段による照明の照射光量を調整する調整工程と、その調整工程による調整後の条件で上記撮像手段によって撮像した上記読取対象物の画像を解析し、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有する光学的情報読取方法も提供する。
【0015】
このような光学的情報読取方法において、上記調整工程では、上記距離測定工程で測定した距離をもとに、読取対象物までの距離と、上記撮像手段が備える光学系にその距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、上記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うようにするとよい。
【0016】
さらに、上記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、上記所定の初期値と対応する一定の値とするとよい。
さらに、上記撮像手段が備える光学系が、電圧の印加によって屈折力を調整可能な液体レンズを含み、上記調整工程では、上記液体レンズに印加する電圧を調整することによって上記フォーカスの調整を行うようにするとよい。
【0017】
さらにまた、上記調整工程では、上記距離測定工程で測定した距離をもとに、読取対象物までの距離と、上記照明手段にその距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを検索して取得した駆動制御パラメータの値に基づき、上記照明手段を駆動することにより、照明光量の調整を行うようにするとよい。
【0018】
さらにまた、上記レーザ出力手段が、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有しており、ユーザの操作がない場合には、上記レーザ出力手段に上記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、上記レーザ出力手段が出力するレーザ光を上記可視光のレーザ光に切り換える工程を含むようにするとよい。
【発明の効果】
【0019】
この発明による光学的情報読取装置と光学的情報読取方法は、読取対象物までの距離や読取対象物の移動速度が分らなくても読取対象物上に配置された光反射率が周囲と異なる記号により示される情報を素早く且つ正確に読み取れるようにすることができる。
【図面の簡単な説明】
【0020】
【図1】この発明の光学的情報読取装置の一実施形態であるコードスキャナの内部構成を示すブロック図である。
【図2】図1に示したコードスキャナが備える液体レンズの構成例を示す断面図である。
【図3】図1に示すCMOSイメージセンサの内部構成例を示すブロック図である。
【図4】図1に示すコードスキャナのCPUが実行する読み取り処理を示すフローチャートである。
【図5】図3に示すイメージエリアに写る反射光の例を示す説明図である。
【0021】
【図6】図1に示すCMOSイメージセンサから読取対象物までの距離の算出に必要なパラメータの説明図である。
【図7】図1に示すコードスキャナがコード記号の読み取りを行う際の各部の動作タイミングの一例を示すタイミングチャートである。
【図8】図1に示すコードスキャナで使用するフォーカステーブルのデータ内容の一例を示す説明図である。
【図9】図1に示すコードスキャナにおける焦点深度の説明図である。
【図10】図1に示すコードスキャナにおける焦点深度の他の説明図である。
【0022】
【図11】図1に示すコードスキャナにおける読取対象物までの距離とCMOSイメージセンサで受光する光の強度との関係を示す説明図である。
【図12】図1に示すコードスキャナで使用する照明テーブルのデータ内容の一例を示す説明図である。
【図13】図1に示すコードスキャナに設ける光学系の他の構成例を示す図である。
【図14】図1に示すコードスキャナの変形例における読み取り処理時の各部の他の動作例のタイミングチャート図である。
【発明を実施するための形態】
【0023】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、この発明の光学的情報読取装置の一実施形態であるコードスキャナについて図1乃至図11を用いて説明する。
【0024】
図1は、そのコードスキャナの内部構成を示すブロック図である。
図1に示すように、コードスキャナ1は、使用者が手持ちで、あるいは予め固定位置に設置して、光反射率が周囲と異なる記号により示されるコード記号等の情報を読み取る装置である。そしてここでは、ベルトコンベア3に載せられ、図中矢示A方向へ移動する読取対象物である荷物4上に配置されたコード記号5を含む画像を撮像し、その画像に基づいてコード記号5により示される情報を読み取る装置として構成しているが、もちろん、荷物棚等に置かれて静止している状態の荷物に添付されたコード記号を読み取ることもできる。
上記コード記号5は、光反射率が周囲と異なる記号であり、バーコード,ニ次元コードを含む各種の記号を使用することができる。
【0025】
このコードスキャナ1は、光学部10と、デコーダ20とを備える。
このうち光学部10は、読取対象物の検知とその読取対象物までの距離の測距の為に、読取対象物へのレーザ光の照射とその反射光の検出を行うと共に、コード記号5を含む読取対象物の撮像を行うモジュールであり、フォーカスレンズ11,マスタレンズ12,CMOS(相補性金属酸化膜半導体)イメージセンサ13,パルスLED(発光ダイオード)14,レーザ光発生器15,温度センサ16を有する。
【0026】
フォーカスレンズ11とマスタレンズ12は、CMOSイメージセンサ13上にコード記号5を含む読取対象物からの反射光を結像させるためのレンズ群である。この反射光には、レーザ光発生器15が照射したレーザ光やパルスLED14が照射した照明光の反射光が含まれる。
そしてここでは、マスタレンズ12としてガラス製若しくはプラスチック製のレンズを、フォーカスレンズ11として、印加電圧によって焦点距離を調整可能な液体レンズを使用している。
【0027】
図2に、その液体レンズの構成の一例を断面図により示す。
液体レンズ11aは、導電性の高い水溶液101と絶縁体の油102とを、光を透過する透明な窓部を対向する2面に有した容器103に封じ込めて構成したものである。また、水溶液101と接する電極104aと、絶縁部106を介して水溶液101と油102の両方と接する電極104bとを備えている。
【0028】
この液体レンズ11aは、電極104aと電極104bとの間に電圧を印加することにより、エレクトロウエッティング現象を利用して、水溶液101と油102との境界面105の形状を、破線と実線で示すように変化させることができる。そして、このことにより、印加電圧の強さに応じて窓部を通過する光に対する屈折力を制御して、焦点距離を調整可能である。
【0029】
コードスキャナ1においては、この液体レンズ11aをフォーカスレンズ11として用いてそのフォーカスレンズ11の電極に対する印加電圧を制御することにより、レンズ群全体の焦点距離を調整可能である。
なお、この液体レンズについては、例えば、『Bruno Berge、「機構部品ゼロ 量産近づく液体レンズの実力」、日経エレクトロニクス、日本、日経BP社、2005年10月24日、p.129−135』に詳しく記載されているので、上述以上の詳細な説明は省略する。
【0030】
図1の説明に戻ると、CMOSイメージセンサ13は、上記レンズ群を通して入射する光をアレイ状に配列されたセンサにより検出し、その各センサによる検出信号をデジタル画像データとしてデコーダ20へ出力することにより、読取対象物の画像を撮像する撮像手段である。
【0031】
図3に、このCMOSイメージセンサ13の内部構成例を示す。
図3に示すように、CMOSイメージセンサ13は、イメージエリア110、アナログプロセッサ114、アナログ−デジタル(AD)コンバータ115、デジタルプロセッサ116、コントロールレジスタ117、タイミングコントローラ118を有する。
【0032】
そして、このうちイメージエリア110では、画素部111において、フォトダイオードと、フロー浮遊拡散(flouting diffusion:FD)領域と、上記フォトダイオードから上記FD領域に電荷を転送するための転送トランジスタと、上記FD領域を所定の電位にリセットするためのリセットトランジスタとをそれぞれ有する複数の画素を、マトリックス状に形成し、読み出し画素を指定するための垂直信号の制御をする垂直シフトレジスタ112及び水平信号の制御をする水平シフトレジスタ113を配置している。
【0033】
上記垂直シフトレジスタ112と水平シフトレジスタ113は、それぞれ画素駆動に必要な電圧を発生させると共に、FD領域に蓄積された電荷量に応じた各画素の画像信号を順次出力させるアナログ回路であり、出力された各画素の画像信号は、アナログプロセッサ114,ADコンバータ115,デジタルプロセッサ116を順次経由してデコーダ20へ出力される。
【0034】
アナログプロセッサ114は、上記垂直シフトレジスタ112と水平シフトレジスタ113により指定された画素から出力されるアナログ画素信号に対して電圧増幅,ゲイン調整等の所定のアナログ信号処理を行う。
ADコンバータ115は、アナログプロセッサ114から出力されるアナログ画像信号をデジタル画像データに変換する。
デジタルプロセッサ116は、ADコンバータ115から出力されるデジタル画像データに対してノイズキャンセル,データ圧縮等のデジタル処理を施し、処理後のデジタル画像データをデコーダ20へ出力する。
【0035】
また、コントロールレジスタ117は、シリアルレジスタI/Oとの間で入出力する信号を格納し、タイミングコントローラ118によってアナログプロセッサ114及びデジタルプロセッサ116のクロックタイミングを合わせて、画素部111の各画素からのアナログ画像信号を所定の順番でデジタル画像データに変換してデコーダ20へ出力させる。
【0036】
さらに、このCMOSイメージセンサ13は、各画素における受光量に応じた電荷の蓄積開始及び蓄積停止を全画素において略同時に制御するグローバルシャッタを採用しており、図示を省略するが、各画素における蓄積電荷に相当する値を共通の基準値と個別に比較する複数の比較器、それらの出力信号の論理和信号を出力するための端子等を備えている。
【0037】
そして、画素部111の複数の比較器の出力の少なくとも1つが、基準値より蓄積電荷が大きくなったことを示したときに、グローバルシャッタを制御して各画素における電荷の蓄積停止を実行する。
このCMOSイメージセンサ13が撮像し出力するデジタル画像データは、デコーダ20において、読取対象物の検知、読取対象物までの距離の測距、およびコード記号5の示す情報の読み取りに用いられる。
【0038】
また、上述のグローバルシャッタは、各画素における受光量に応じた電荷の蓄積開始及び蓄積停止を全画素において略同時に制御できるので、走査ラインごとに順次シャッタを切るローリングシャッタなどと異なり、FD領域に蓄積された信号電荷量に応じた画素信号が得られ、露光後のFD領域への転送タイミングを調整することで、パルスLED14の発光やレーザ光発生器15のレーザ光の発光と同期させてシャッタが切れることにより、非常に短いシャッタスピードが可能となり、移動体による画像のブレをなくすことができる。また、周囲の環境光の影響を受けずレーザ光の反射光のみを受光できる。
【0039】
図1の説明に戻ると、パルスLED14は、デコーダ20からの制御により読取対象物に照明光14aを照射して照明する照明手段である。この照明は、CMOSイメージセンサ13の撮像フレームに同期したパルス光の照射によって行い、その照射時間を調整することによって、1フレームの撮像期間内に読取対象物からの反射光によりCMOSイメージセンサ13の各フォトダイオードに蓄積される電荷量を調整することができる。すなわち、照明時間を長くすれば、CMOSイメージセンサ13が撮像により得る画像は明るい画像となるし、短くすれば、暗い画像となる。
【0040】
レーザ光発生器15は、読取対象物の検知及び読取対象物までの距離の測距に用いるレーザ光15aを出力するレーザ出力手段である。このレーザ光発生器15は、読取対象物がコードスキャナ1によるコード記号5の読み取りが可能と考えられる位置にある場合にその読取対象物(コード記号5の位置とは限らない)からの反射光をCMOSイメージセンサ13に入射させられるような位置及び角度で配置する。また、レーザ光発生器15が出力するレーザ光は、可視光であっても不可視光であっても、任意の波長のものでよいが、例えば、650nm(ナノメートル)の赤色レーザ光や、780nmの赤外線レーザ光を出力するものとするとよい。
【0041】
レーザ光として可視光を用いると、レーザ光によるスポットを視認できるため、レーザ光を、測距だけでなく、コード記号5とコードスキャナ1の読取範囲との位置合わせにも用いることができる。また、不可視光を用いると、レーザ光によるスポットが視認されないため、パルス点灯させておいても周囲の人を不快にさせることがない。従って、コードスキャナ1を、レーザ光を常時パルス点灯させておき、レーザ光を点灯させるための動作や操作なしに速やかに読み取りを開始できるような構成とすることができる。
なお、可視光と不可視光の双方のレーザ光を出力可能な2波長レーザ光発生器を用い、2種のレーザ光を状況に応じて自動的に又は手動で切り換えて出力できるようにすることも考えられる。
【0042】
温度センサ16は、コードスキャナ1の周囲の温度、特にフォーカスレンズ11の周囲の温度を検知する温度検知手段である。液体レンズにおける印加電圧と焦点距離との関係は、温度によって変化するため、焦点距離を所望の値にするために印加する電圧の値は、この温度センサ16が検知した温度も考慮して定める。ただし、以下の説明では、説明を簡単にするため、特に必要な場合を除いては、温度についての説明は省略する。
【0043】
次に、デコーダ20は、CPU21と、CPU21が実行するプログラムとテーブルを記憶したROM22と、CPU21が各種の処理を実行する際の作業領域として使用するRAM23を備えている。
上記CPU21,ROM22,RAM23としては、例えば、エーシック(Application Specific Integrated Circuit:ASIC),フラッシュロム(FROM),SDRAM(Synchronous Dynamic Random Access Memory)を用いることができる。
【0044】
CPU21は、RAM23を作業領域としてROM22に記憶されたプログラムを実行することにより、コードスキャナ1全体の動作を制御すると共に、CMOSイメージセンサ13が撮像したデジタル画像データに基づく、読取対象物の検知、読取対象物までの距離の測距、その距離に基づく焦点距離及び照明光量の調整、コード記号5のデコード、そのデコード結果の外部への出力あるいは蓄積などに必要な処理を行う。
【0045】
次に、図4を用いて、このコードスキャナ1におけるコード記号5の読み取り処理について説明する。図4は、コードスキャナ1のCPU21が実行する読み取り処理を示すフローチャートである。
CPU21は、コードスキャナ1が起動されると自動的に、あるいはコード記号の読み取り実行が指示されると、図4のフローチャートに示す処理を開始する。
【0046】
そして、まずステップS1でCMOSイメージセンサ13に定期的な撮像を開始させる。この際のシャッタ速度は、周囲の環境光はほとんど検出せず、環境光と比べて光量の大きい、レーザ光発生器15が出力したレーザ光15aの反射光を選択的に検出できるようなシャッタ速度とする。上述のグローバルシャッタを利用する場合、レーザ光15aの反射光がCMOSイメージセンサ13に入射すると、その反射光のスポットの部分の画素において、他の部分より急激に電荷が蓄積され、他の部分の画素において電荷があまり蓄積されないうちに速やかにシャッタが切れるため、反射光のスポットを効果的に検出することができる。
【0047】
次のステップS2では、CPU21は、レーザ光発生器15に適当な制御信号を供給し、CMOSイメージセンサ13のシャッタを開く(フォトダイオードによる電荷蓄積を開始させる)タイミングと同期して、レーザ光発生器15にレーザ光15aを発光させる。
そして、ステップS3で、CMOSイメージセンサ13が出力する画像データを解析して、CMOSイメージセンサ13のイメージエリア110にレーザ光の反射光が入射したか否か、すなわち画像データ中に反射光のスポットが現れているか否かを判断する。
【0048】
ここで反射光が入射していなければ、読取対象物がコードスキャナ1によりコード記号の読み取り可能な位置にないと考えられるため、以下の読取条件調整及び読み取り用の撮像の処理には進まず、ステップS2に戻って処理を繰り返す。所定期間繰り返しても読取対象物の検出がない場合には、一旦CMOSイメージセンサ13のフレーム速度を遅く(フレーム期間を長く)してもよい。
【0049】
また、ステップS3で反射光が入射していた場合、コードスキャナ1によりコード記号の読み取りが可能と考えられる位置に何らかの物体(読取対象物と想定できる)が存在していることがわかる。すなわち、読取対象物の存在を検知できる。
上記ステップS2とS3の処理は、紙面検知モードの動作と呼び、この紙面検知モードは、コードスキャナの電源がオンされた後、又は電源オン後に所定のコマンドを検出した後は常時動作し、電源のオフ又は所定のコマンドを検出したときに終了する。
そしてこの場合、図5(a)に示すように、読取対象物が近くにある場合にはスポットSが撮像した画像中の横軸方向の端部に現れ、遠くにある場合には(c)に示すように中央付近に現れる。そこで、ステップS4に進み、CMOSイメージセンサ13から検知した読取対象物までの距離を、画像中の反射光のスポットの位置に基づいて算出する。
【0050】
次に、読取対象物(物体)までの距離の算出方法について説明する。
図6は、読取対象物までの距離の算出に必要なパラメータの説明図である。
読取対象物までの距離xについては、同図中の次のパラメータと下記数1とに基づいて算出することができる。
x:撮像光学系レンズの主点Pから読取対象物までの距離
a:CMOSイメージセンサ13のイメージエリアに平行な向きに測った場合の撮像光学系レンズの主点Pからレーザ光15a(の中心)までの距離
θ:撮像光学系レンズの主点Pからレーザ光15aの方向に広がる、視野角θ0の1/2の角度
N:撮像光学系レンズの主点Pからレーザ光15aに向かう方向に数えた場合のCMOSイメージセンサ13におけるピクセル数の1/2(図5参照)
n:CMOSイメージセンサ13における中心位置(撮像光学系レンズの主点Pと対応する位置)から反射光15bのスポットの中心位置までのピクセル数(図5参照)
φ:レーザ光15aと撮像光学系レンズの光軸qとがなす角
【0051】
【数1】
なお、図6で読取対象物の上側に示したレーザ光15aは、角φについて説明するためのものである。
【0052】
次のステップS5では、CPU21は、ステップS4で算出した距離をもとに、ROM22に予め記憶させたフォーカステーブルを検索してフォーカス制御パラメータの値を取得し、そのフォーカス制御パラメータの値に基づいてフォーカスレンズ11を駆動することにより、ステップS4で算出した距離付近にピントが合うようにフォーカスの調整を行う。この調整の詳細については後述する。
【0053】
ステップS6では、CPU21は、ステップS4で算出した距離をもとに、ROM22に予め記憶された照明テーブルを検索してパルスLED14の点灯時間を示すパラメータの値を取得し、その値に基づいて、撮像時のパルスLED14の点灯時間を設定することにより、ステップS4で算出した距離付近の読取対象物から適当な光量の反射光を得られるように、照射光量を調整する。この調整の詳細についても後述する。
ステップS5とS6の調整は、順序を入れ替えたり、並列して行ったりしてもよい。
また、例えばステップS5とS6の調整を同時に開始した場合でも、ステップS6の処理はほぼリアルタイムで終えることができるのに対して、ステップS5はステップS6の処理よりも時間がかかるので、両調整は異なる時点に終了することになる。
【0054】
次のステップS7では、CPU21は、CMOSイメージセンサ13のシャッタを開くタイミングと同期してステップS6で設定した点灯時間だけパルスLED14を点灯させて照明を行うことにより、ステップS3で検知した読取対象物の画像を撮像し、その結果得られた画像データから、読取対象物に付されていると想定されるコード記号のデコードを試みる。
【0055】
そして、ステップS8でこのデコードが成功したか否か判断し、成功していれば、ステップS9でデコードにより得られたデータを所定の外部装置や内部のデータ処理手段等に出力し、ステップS10でフォーカスをデフォルトの状態に戻して、読取完了としてステップS1へ戻る。
【0056】
また、デコード失敗の場合には、ステップS11で予め設定した読取有効時間(フレーム数で規定してもよい)を超えたか否か判断し、超えてなければステップS7に戻って再度撮像とデコードを試みる。
ステップS8でのデコードが失敗する原因としては、そもそも検出した読取対象物にコード記号が付されていない場合の他、コード記号がCMOSイメージセンサ13の撮像範囲に収まっていない、ステップS5及びS6の調整が適正に行われていない、など種々の原因が考えられる。そして、調整の応答に必要な時間が経過したり、読取対象物が移動されたりするとこれらが改善する場合もあるので、リトライするようにしたものである。
【0057】
そして、ステップS11で読取有効時間を超えた場合には、これ以上続けても正常にデコードできる見込みがないと判断し、読み取りを一旦中止し、ステップS10でフォーカスをデフォルトの状態に戻してステップS1へ戻る。
このように、読み取り成功の場合も中止の場合も、ステップS1に戻って直ちに次の読取対象物検出の処理を開始する。
【0058】
次に、このコードスキャナ1が図4に示した処理によりコード記号5の読み取りを行う場合の各部の動作タイミングについて説明する。
図7は、その動作タイミングの一例を示すタイミングチャートである。
このコードスキャナ1は、CMOSイメージセンサ13を起動すると、上述のようにレーザ光発生器15から出力したレーザ光15a反射光を選択的に検出できるようなシャッタ速度でシャッタの開閉を行い、(a)に示すように、フレーム単位の撮像をフリーランニングで繰り返す。なお、ここでいうフレームは、受光に応じた電荷の蓄積から画像信号の読み出しまで含めた、一度の撮像に要する期間であり、シャッタの開いている(フォトダイオードによる電荷の蓄積を行う)期間は、フレームのごく一部である。
さらに、読取対象物を検知するまでは、CMOSイメージセンサ13のシャッタを開くタイミングに同期させて、(b)に示すように、符号33,34で示すタイミングでフレーム毎にレーザ光発生器15にレーザ光15aのパルス光を発光させる。
【0059】
そして、例えば、フレーム30の撮像の時に、上述した紙面検知処理で荷物4からの反射光がCMOSイメージセンサ13のイメージエリア110に写り、読取対象物を検知した場合、次のフレームまでの間の、(a)中の矢印32のタイミングで上述した測距及び、照明光量とフォーカスの調整を実行する。
そして、上記調整後、次のフレーム31の撮像のシャッタを開くタイミングに同期させて、(c)に示すように、符号35,36で示すタイミングでフレーム毎にパルスLED14に照明用のパルス光を発光させる。このパルス幅は、CPU21が読取対象物までの距離に応じて行う設定に従ったものである。また、パルスLED14を点灯させるフレームでは、レーザ光発生器15は消灯する。
【0060】
また、測距の結果に従ってフォーカスを変更する必要があった場合には、矢印32のタイミングでフォーカスの調整も開始するが、こちらは、(d)に破線37で示すようにある程度の応答時間を要する。
そして、フレーム31以降の各フレームで撮像した画像データについてその画像中のコード記号のデコードを試み、これが成功するか、失敗しても読取有効時間を超えるまでは、同じ条件での撮像を続ける。
【0061】
次に、フォーカス調整について説明する。
上述のように、フォーカスレンズ11として液体レンズ11aを用いる場合、液体レンズ11aの電極に印加する電圧により、液体レンズ11aの屈折力を調整可能である。そこで、図4のステップS5におけるフォーカス調整では、ステップS4の測距で得られた読取対象物までの距離に基づき、その読取対象物の位置に、フォーカスレンズ11及びマスタレンズ12からなる光学系のピントが合うように、液体レンズ11aの屈折力を調整する。
【0062】
このとき、印加電圧と液体レンズ11aの屈折力との関係から、どの位置にピントを合わせる場合にどれだけの電圧を印加すればいいかは、予め測定しておくことができる。
そこで、コードスキャナ1においては、図8に示すような、読取対象物までの距離と、その各距離にピントを合わせるために液体レンズ11aに印加すべき電圧値(液体レンズ11aの駆動に用いるパラメータ)との関係を、予め実験により(又は生産時の調整により)定めて、ピントを合わせようとするaからdの距離範囲についてフォーカステーブルとして予め用意してROM22に記憶させておくようにしている。図8では連続値のグラフとして示したが、実際にはある程度の距離範囲毎に、印加すべき電圧値を定めることになる。そして、フォーカス調整の際には、図4のステップS4での測距で得られた読取対象物までの距離に基づきそのフォーカステーブルを検索して、その距離に応じた電圧を、液体レンズ11aの電極104a,104bの間に印加する。
【0063】
なお、一般に、光学系は図9に示すようにある程度の焦点深度を有し、焦点位置eのごく近傍だけでなく、例えば範囲b〜cのように、ある程度離れた位置の物体であっても、その像を、コード記号をデコード可能な程度に鮮明に結像させることができる。従って、焦点位置からずれるにつれて像のボケが増すが、ある程度のずれであれば、焦点位置を初期値に固定したまま撮像したとしても、図4のステップS7で適切にデコードを行うことができる。
【0064】
一方、図7に示したように、フォーカスの調整にはある程度の応答時間が必要であるので、フォーカスの調整を行うとすると、1〜数フレーム程度は光学系が安定せず、適切な撮像を行えない可能性がある。
そこで、コードスキャナ1においては、図8に実線で示すように、ピントを固定の初期値位置eに合わせた状態でもデコード可能な画像が得られるb〜cの範囲においては、印加電圧を初期値から変化させないようにしている。破線が、この間の各位置にピントを合わせるための電圧値を示すが、この範囲では、コード記号のデコードという目的のためには必ずしもフォーカス調整は必要ないため、調整の応答時間を不要とし、少しでも速くデコード結果を得られるようにすることを優先したものである。
【0065】
ただし、この構成は必須ではなく、破線で示す値のフォーカステーブルを採用し、b〜c全ての距離についてフォーカス調整を行う構成とすることも考えられる。また、フォーカステーブルとしては破線で示す値のものを採用しつつ、測距で得られた距離がb〜cの範囲に入る場合には、フォーカス調整の処理を行わないようにする構成とすることも考えられる。これらの場合において、調整を行わない範囲をユーザが調整できるようにしてもよい。
【0066】
いずれにせよ、コードスキャナ1によれば、固定焦点ではピントが合わず、コード記号をデコード可能な画像が得られない距離に読取対象物を検出した場合に、その距離に合わせてフォーカスを自動調整してデコード用の画像を撮像することにより、調整可能な範囲であればどの距離に読取対象物があってもコード記号の読み取りを行うことができ、図10に示すように、実質的に極めて大きな焦点深度を得ることができる。
【0067】
また、このために必要な処理は、予め用意したテーブルデータを検索して取得した制御パラメータを適用するものであるから、極めて簡単なものであり、画像に基づいて露出制御及びフォーカス駆動を繰り返したり、複雑な計算を行ったりする必要もなく、1または数フレーム程度の短時間でデコードに必要な画像を取得できるため、読取対象物が高速に移動している場合でも、読取対象物の検出後、撮像範囲から外れる前にデコード用の画像を撮像して、正確かつ確実な読み取りを行うことができる。
例えば、コード記号5を含む読取対象物が移動している場合、CMOSイメージセンサ13の画素部111に写るフレーム数は少なくなるので、このような簡単な処理により、コード記号5を含む画像をいち早くぼけの無い適切な状態で撮影することが、安定した読み取りに重要である。
【0068】
次に、照明光量の調整について説明する。
上述のように、コードスキャナ1においては、読取対象物を撮像してコード記号5のデコードに用いる画像を撮像する場合、パルスLED14による照明を行う。しかし、照明対象までの距離が遠いほど照明光が拡散するため、同じ強度で照明を行った場合、図11に示すように、読取対象物までの距離が近いほどCMOSイメージセンサ13が受光する反射光が強くなり、遠いほど反射光が弱くなる。
【0069】
そこで、コードスキャナ1においては、読取対象物までの距離が遠いほど照明光量を増加させ、読取対象物までの距離によらず、CMOSイメージセンサ13が概ね一定な光量の反射光を受光できるようにしている。
具体的には、図12に示すような内容の、読取対象物までの距離と照明光のパルス幅との対応関係を示す照明テーブルを、予め実験により(又は生産時の調整により)定めてROM22に記憶させておき、図4のステップS6の照明光量調整の際に、ステップS4での測距で得られた読取対象物までの距離に基づきその照明テーブルを検索して、その距離に応じたパルス幅で、ステップS7の撮像時にパルスLED14を駆動する。この調整については、応答時間の問題はないため、距離が初期値付近の場合に調整を行わないといった配慮は特に必要ない。
なお、照明テーブルに設定するパルス幅は、読取対象物の撮像の際に移動ぶれの影響を軽減するために、ストロボ効果を用いるため、パルス幅を非常に小さい値、例えば、400μs(マイクロ秒)以下の発光時間に相当するパルス幅にすることが望ましい。
【0070】
このような調整を行うことにより、デコード用の画像を撮像する際に、読取対象物までの距離によらず一定の明るさの画像を得ることができ、デコードの精度や成功確率を高めることができる。特に、CMOSイメージセンサが受光する光の大部分が環境光ではなく照明光である場合は、このような照明光量の調整が重要である。そして、このような制御も、複雑な計算を行うことなく実現できる。
なお、ここでは制御の容易さを考慮して照明光の照射時間を制御するようにしたが、照射強度を制御するようにしても構わない。どのような手段であっても、シャッタが開いている間にCMOSイメージセンサ13に入射する光量を調整できれば、同様な効果が得られる。
【0071】
以上で実施形態の説明を終了するが、装置の構成や具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、図13に示すように、フォーカスレンズ11として、通常のガラスやプラスチックによる固体レンズ11bを採用し、これを光路の前後(図13中の矢示B方向)に駆動する駆動手段を設けることによって、光学系全体における焦点距離を調整可能としてもよい。
【0072】
このような構成を採用する場合には、フォーカステーブルに、読取対象物までの距離に応じた、固体レンズ11bの位置を、駆動制御パラメータとして登録しておき、図4のステップS5でのフォーカス調整の際に、ステップS4で測距した読取対象物までの距離に対応する位置に、固体レンズ11bを移動させればよい。
このような構成であっても、液体レンズ11aを用いる場合と同様なフォーカス調整が可能である。
【0073】
また、別の変形として、レーザ光発生器15として、可視光(例えば赤色光)を出力する光源と不可視光(例えば赤外光)を出力する光源の2つを備えた2波長レーザ光発生器を用いることも考えられる。
この場合において、読取対象物の検出及び測距については、レーザ光の波長に関わらず同様に行うことができる。従って、ビームスポットが見えた方が(エイミングなどの用途で)よいのか、逆に見えない方がよいのか(視界にスポットがチラつく不快感を防止するためなど)に応じて、ユーザが2つのビームを任意に切り換えて使えるようにすることが好ましい。
例えば、コードスキャナをハンドヘルドで使用する際に、ユーザがスキャナを読取対象物にかざしてトリガを操作した場合に読み取りを行う構成とした場合に、トリガを引く前は赤外光を出力し、トリガを引いた後は赤色光を出力するようにすることが考えられる。
【0074】
図14に、この構成とする場合の、図7と対応するタイミングチャートを示す。
この動作例でも、(b)に符号51,52に示すようにCMOSイメージセンサ13がフレーム単位の撮像をフリーランニングで繰り返す点は、図7と同様である。
そして、ユーザがトリガを操作する前には、(c)に示すように、CMOSイメージセンサ13のシャッタを開くタイミングに同期させて、符号54,55で示すタイミングで、フレーム毎にレーザ光発生器に赤外光レーザのパルスを出力させる。そしてこのとき、CMOSイメージセンサ13に反射光が入射すれば、上述した実施形態の場合と同様に読取対象物の検出と測距が可能である(矢示53)。
【0075】
そして、測距ができた後は、(f)に符号60に示すように、必要に応じてフォーカス及び照明光量の調整を行う。ただし、トリガが操作されるまでは、デコード用の画像の撮像は行わず、フレーム毎にフォーカス及び照明光量の調整を行いながら待機する。
そして、(a)に符号50で示すようにユーザがトリガを操作したことを所定の信号により検出すると、次のフレームからデコード用の画像を撮像し、コード記号のデコードを行う。このとき、(d)に符号56,57で示すように出力するレーザを赤色レーザに切り換え、この赤色レーザのスポットを用いてユーザがエイミングできるようにする。この赤色レーザの発光タイミングをCMOSイメージセンサ13による各フレームの撮像タイミングの間隙とすれば、各フレームの撮像画像に赤色レーザのスポットが含まれずに済み、デコードの際に誤検知を起こさずに済む。
【0076】
また、図4のステップS8の判断でデコードが失敗した場合、ステップ1に戻って初期化をし、再度測距を行う。
その場合、今度は測距のための撮像のフレーム(図14の(b)に符号61に示す)内で、(d)に符号62に示すように、赤色レーザを発光し、その赤色レーザ光の反射光に基づいて測距をすることにより、ユーザがコードスキャナを読取対象物に正確にエイミングした状態で測距を行うことができ、再度撮像した画像によるデコードの成功の確率を高めることができる。
【0077】
また、(d)に符号63に示すように、赤色レーザ光は、測距後は再び各フレームの撮像タイミングの間隙で発光するようにするとよい。
そして、(f)に符号60で示すように、赤色レーザ光による測距結果に基づいてフォーカス位置が調整される。図中では、フォーカス調整量がなだらかに減少する場合を示している。
なお、図4では読取有効時間内にデコードが成功しない場合にフォーカスをデフォルト状態に戻す処理となっているが、図14ではこれを行わない状態を示している。読取有効時間の経過後にフォーカスを一旦デフォルト状態に戻す場合には、符号61で示すフレームの時点では、フォーカスはデフォルト状態に戻っている又は戻る途中の状態となる。
【0078】
またもちろん、デコード用の画像の撮像に際しては、(e)に符号58,59に示すように、パルスLED14により、調整しておいた照明光量で照明を行う。また、フォーカスについても予め赤外光レーザを用いて調整されているため、応答時間を待つ必要はない。
以上の構成によれば、ユーザがトリガを操作する前に既に測距やフォーカス調整が完了しているため、トリガ操作後にこれらに要する時間を待たずに読み取りを行うことができ、レスポンスを向上させることができる。
また、上記の他、読み取り開始指示とは関係なく、ユーザの操作に応じて出力するレーザ光の波長を切り換えたり、読取対象物を検出した場合に自動的にレーザ光を可視光に切り換えてユーザが読取対象物の検出を容易に認識できるようにすることも考えられる。
【0079】
また、上述の実施形態においては、結像光学系をフォーカスレンズ11とマスタレンズ12により構成した例について説明したが、より多くのレンズを組み合わせて所望の特性の光学系を実現することも、もちろん可能であり、その中で何らかの手段で光学系全体の焦点距離を調整可能であればよい。
また、この発明の光学的情報読取装置は、据え置き型の装置としても、手持ち型の装置としても、構成することができる。光学的情報読取方法についても、同様である。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【0080】
この発明による光学的情報読取装置と光学的情報読取方法は、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の認識のために、物品や商品に貼付されたコード記号の情報を読み取る光学情報読取装置、特に小型で安価なバーコードスキャナのような光学情報読取装置に好適である。
【符号の説明】
【0081】
1…コードスキャナ、3…ベルトコンベア、4…荷物、5…コード記号、10…光学部、11…フォーカスレンズ、12…マスタレンズ、13…CMOSイメージセンサ、14…パルスLED、15…レーザ光発生器、20…デコーダ、21…CPU、22…ROM、23…RAM
【技術分野】
【0001】
この発明は、光反射率が異なるパターンで構成されるバーコード,二次元コード等のコード記号の画像を撮像し、その撮像した画像からコード記号によって表された情報を読み取るコードスキャナ,2次元コードスキャナ,マルチコードスキャナを含む光学的情報読取装置と、上記のようなコード記号によって表された情報を読み取る光学的情報読取方法とに関する。
【背景技術】
【0002】
従来から、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の自動認識手段として、光反射率が周囲と異なる記号で情報を表記したバーコードや二次元コードなどのコード記号が広く使用されている。
例えば、検品作業,配送作業において、ベルトコンベアにコード記号を添付した商品,荷物などの物品を載せて所定の場所まで移動させる際に、コードスキャナで物品に添付されたコード記号によって表された情報を読み取り、その読み取った情報をホストコンピュータに送信し、物品の内容物の確認や経過記録,配送地及び配送時間の確認等が行われている。
【0003】
そして、このようなコード記号の読み取りに際しては、ベルトコンベア上を移動するコード記号を的確に捕捉し、そのコード記号により示される情報を正確にデコードしなくてはならない。
また、このようなコード記号の読み取りには、光学的読取装置として、CMOSセンサやCCDセンサなどの固体撮像素子を用いたコードスキャナが広く使用されている。
【0004】
上述のような光学的読取装置の従来技術の一つとして、特許文献1に記載のように、二次元に配列された複数の撮像素子で移動するバーコードを撮像し、その各撮像素子の出力値に対応する画像内での、露出時間中に移動するバーコードの移動距離を撮像素子数に換算して算出し、その移動距離及び隣接する撮像素子同士の出力値の差分値を用いて、上記画像内でのバーコードを含む部分からバーコードの静止画像を復元し、その復元したバーコードをデコードすることにより、移動ぶれでぼやけているバーコード画像からバーコードを読み取る技術があった。
【0005】
また、もう一つの技術として、特許文献2に記載のように、移動する情報コードの情報の読み取りが成功するまで、何度か撮像を試みて、成功したときの照明の明るさ等の条件を記憶し、その条件に基づいて実際のコード読み取りを行う技術があった。
さらに、特許文献3に記載のように、CMOSセンサやCCDセンサなどの固体撮像素子を用いた一般に使用されるデジタルカメラでは、移動する被写体を撮像するのに耐えうるような仕様にある程度なっている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−230477号公報
【特許文献2】特開2004−110668号公報
【特許文献3】特開2006−197393号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術では、撮像した画像からバーコードをデコードするためのCPUの計算量が多くなり、装置作動に悪影響が出やすいので、高性能の固体撮像デバイスを採用する必要があり、コストがかかってしまうという問題があった。また、バーコードを含む画像が焦点の合っていないぼけた画像の場合、バーコードを正確にデコードできないという問題があった。
次に、特許文献2に記載の技術では、事前にテストモードを行う必要があり、すぐに物品の情報コードの読み取り作業にとりかかることができない。また、1つの現場で適用した条件がどこでも使用できるとは限らず、使用場所あるいは使用状態が異なるたびにテストモードを行う必要があり、操作者の負担になってしまう。したがって、読取対象物が示す情報を素早く且つ正確に読み取ることができないという問題があった。
【0008】
さらに、特許文献3に記載の技術は、コードスキャナに適用するには、機体構造やソフトウェアアルゴリズムが複雑であり、コード記号の撮像には不要な処理が含まれ、上述したような作業現場で迅速な処理を行うことは望めないので、上述の従来の各技術と同様に、その読取対象に含まれるコード記号を素早く正確に読み取ることができないという問題があった。
この発明は上記の点に鑑みてなされたものであり、読取対象物までの距離や読取対象物の移動速度が分らなくても読取対象物上に配置された光反射率が周囲と異なる記号により示される情報を素早く且つ正確に読み取れるようにすることを目的とする。
【課題を解決するための手段】
【0009】
この発明は上記の目的を達成するため、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、レーザ光を出力するレーザ出力手段と、読取対象物を照明する照明手段と、読取対象物の画像を撮像する撮像手段と、上記撮像手段が検出する、上記レーザ出力手段が出力したレーザ光の読取対象物による反射光に基づいて、その読取対象物までの距離を測定する距離測定手段と、その距離測定手段が測定した距離に基づいて、上記撮像手段の撮像時のフォーカス及び上記照明手段による照明の照射光量を調整する調整手段と、その調整手段による調整後の条件で上記撮像手段によって撮像した上記読取対象物の画像を解析し、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段を有する光学的情報読取装置を提供する。
【0010】
また、上記のような光学的情報読取装置において、読取対象物までの距離と、上記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを記憶する手段を備え、上記調整手段を、上記距離測定手段が測定した距離をもとに上記フォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、上記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うようにするとよい。
【0011】
さらに、上記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、上記所定の初期値と対応する一定の値にするとよい。
また、上記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、上記調整手段を、上記液体レンズに印加する電圧を調整することによって上記フォーカスの調整を行うようにするとよい。
【0012】
さらに、上記のような光学的情報読取装置において、読取対象物までの距離と、上記照明手段にその距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを記憶する手段を備え、上記調整手段を、上記距離測定手段が測定した距離をもとに上記照明テーブルを検索して取得した駆動制御パラメータの値に基づき、上記照明手段を駆動することにより、照明光量の調整を行うようにするとよい。
【0013】
さらにまた、上記レーザ出力手段として、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段を有しており、ユーザの操作がない場合には、上記レーザ出力手段に上記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、上記レーザ出力手段が出力するレーザ光を上記可視光のレーザ光に切り換える手段を設けるようにするとよい。
【0014】
また、この発明は、レーザ出力手段が出力したレーザ光の読取対象物による反射光を撮像手段により検出し、その検出した反射光に基づいて、上記読取対象物までの距離を測定する距離測定工程と、その距離測定工程で測定した距離に基づいて、撮像時の上記撮像手段のフォーカス及び照明手段による照明の照射光量を調整する調整工程と、その調整工程による調整後の条件で上記撮像手段によって撮像した上記読取対象物の画像を解析し、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有する光学的情報読取方法も提供する。
【0015】
このような光学的情報読取方法において、上記調整工程では、上記距離測定工程で測定した距離をもとに、読取対象物までの距離と、上記撮像手段が備える光学系にその距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、上記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うようにするとよい。
【0016】
さらに、上記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、上記所定の初期値と対応する一定の値とするとよい。
さらに、上記撮像手段が備える光学系が、電圧の印加によって屈折力を調整可能な液体レンズを含み、上記調整工程では、上記液体レンズに印加する電圧を調整することによって上記フォーカスの調整を行うようにするとよい。
【0017】
さらにまた、上記調整工程では、上記距離測定工程で測定した距離をもとに、読取対象物までの距離と、上記照明手段にその距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを検索して取得した駆動制御パラメータの値に基づき、上記照明手段を駆動することにより、照明光量の調整を行うようにするとよい。
【0018】
さらにまた、上記レーザ出力手段が、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有しており、ユーザの操作がない場合には、上記レーザ出力手段に上記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、上記レーザ出力手段が出力するレーザ光を上記可視光のレーザ光に切り換える工程を含むようにするとよい。
【発明の効果】
【0019】
この発明による光学的情報読取装置と光学的情報読取方法は、読取対象物までの距離や読取対象物の移動速度が分らなくても読取対象物上に配置された光反射率が周囲と異なる記号により示される情報を素早く且つ正確に読み取れるようにすることができる。
【図面の簡単な説明】
【0020】
【図1】この発明の光学的情報読取装置の一実施形態であるコードスキャナの内部構成を示すブロック図である。
【図2】図1に示したコードスキャナが備える液体レンズの構成例を示す断面図である。
【図3】図1に示すCMOSイメージセンサの内部構成例を示すブロック図である。
【図4】図1に示すコードスキャナのCPUが実行する読み取り処理を示すフローチャートである。
【図5】図3に示すイメージエリアに写る反射光の例を示す説明図である。
【0021】
【図6】図1に示すCMOSイメージセンサから読取対象物までの距離の算出に必要なパラメータの説明図である。
【図7】図1に示すコードスキャナがコード記号の読み取りを行う際の各部の動作タイミングの一例を示すタイミングチャートである。
【図8】図1に示すコードスキャナで使用するフォーカステーブルのデータ内容の一例を示す説明図である。
【図9】図1に示すコードスキャナにおける焦点深度の説明図である。
【図10】図1に示すコードスキャナにおける焦点深度の他の説明図である。
【0022】
【図11】図1に示すコードスキャナにおける読取対象物までの距離とCMOSイメージセンサで受光する光の強度との関係を示す説明図である。
【図12】図1に示すコードスキャナで使用する照明テーブルのデータ内容の一例を示す説明図である。
【図13】図1に示すコードスキャナに設ける光学系の他の構成例を示す図である。
【図14】図1に示すコードスキャナの変形例における読み取り処理時の各部の他の動作例のタイミングチャート図である。
【発明を実施するための形態】
【0023】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、この発明の光学的情報読取装置の一実施形態であるコードスキャナについて図1乃至図11を用いて説明する。
【0024】
図1は、そのコードスキャナの内部構成を示すブロック図である。
図1に示すように、コードスキャナ1は、使用者が手持ちで、あるいは予め固定位置に設置して、光反射率が周囲と異なる記号により示されるコード記号等の情報を読み取る装置である。そしてここでは、ベルトコンベア3に載せられ、図中矢示A方向へ移動する読取対象物である荷物4上に配置されたコード記号5を含む画像を撮像し、その画像に基づいてコード記号5により示される情報を読み取る装置として構成しているが、もちろん、荷物棚等に置かれて静止している状態の荷物に添付されたコード記号を読み取ることもできる。
上記コード記号5は、光反射率が周囲と異なる記号であり、バーコード,ニ次元コードを含む各種の記号を使用することができる。
【0025】
このコードスキャナ1は、光学部10と、デコーダ20とを備える。
このうち光学部10は、読取対象物の検知とその読取対象物までの距離の測距の為に、読取対象物へのレーザ光の照射とその反射光の検出を行うと共に、コード記号5を含む読取対象物の撮像を行うモジュールであり、フォーカスレンズ11,マスタレンズ12,CMOS(相補性金属酸化膜半導体)イメージセンサ13,パルスLED(発光ダイオード)14,レーザ光発生器15,温度センサ16を有する。
【0026】
フォーカスレンズ11とマスタレンズ12は、CMOSイメージセンサ13上にコード記号5を含む読取対象物からの反射光を結像させるためのレンズ群である。この反射光には、レーザ光発生器15が照射したレーザ光やパルスLED14が照射した照明光の反射光が含まれる。
そしてここでは、マスタレンズ12としてガラス製若しくはプラスチック製のレンズを、フォーカスレンズ11として、印加電圧によって焦点距離を調整可能な液体レンズを使用している。
【0027】
図2に、その液体レンズの構成の一例を断面図により示す。
液体レンズ11aは、導電性の高い水溶液101と絶縁体の油102とを、光を透過する透明な窓部を対向する2面に有した容器103に封じ込めて構成したものである。また、水溶液101と接する電極104aと、絶縁部106を介して水溶液101と油102の両方と接する電極104bとを備えている。
【0028】
この液体レンズ11aは、電極104aと電極104bとの間に電圧を印加することにより、エレクトロウエッティング現象を利用して、水溶液101と油102との境界面105の形状を、破線と実線で示すように変化させることができる。そして、このことにより、印加電圧の強さに応じて窓部を通過する光に対する屈折力を制御して、焦点距離を調整可能である。
【0029】
コードスキャナ1においては、この液体レンズ11aをフォーカスレンズ11として用いてそのフォーカスレンズ11の電極に対する印加電圧を制御することにより、レンズ群全体の焦点距離を調整可能である。
なお、この液体レンズについては、例えば、『Bruno Berge、「機構部品ゼロ 量産近づく液体レンズの実力」、日経エレクトロニクス、日本、日経BP社、2005年10月24日、p.129−135』に詳しく記載されているので、上述以上の詳細な説明は省略する。
【0030】
図1の説明に戻ると、CMOSイメージセンサ13は、上記レンズ群を通して入射する光をアレイ状に配列されたセンサにより検出し、その各センサによる検出信号をデジタル画像データとしてデコーダ20へ出力することにより、読取対象物の画像を撮像する撮像手段である。
【0031】
図3に、このCMOSイメージセンサ13の内部構成例を示す。
図3に示すように、CMOSイメージセンサ13は、イメージエリア110、アナログプロセッサ114、アナログ−デジタル(AD)コンバータ115、デジタルプロセッサ116、コントロールレジスタ117、タイミングコントローラ118を有する。
【0032】
そして、このうちイメージエリア110では、画素部111において、フォトダイオードと、フロー浮遊拡散(flouting diffusion:FD)領域と、上記フォトダイオードから上記FD領域に電荷を転送するための転送トランジスタと、上記FD領域を所定の電位にリセットするためのリセットトランジスタとをそれぞれ有する複数の画素を、マトリックス状に形成し、読み出し画素を指定するための垂直信号の制御をする垂直シフトレジスタ112及び水平信号の制御をする水平シフトレジスタ113を配置している。
【0033】
上記垂直シフトレジスタ112と水平シフトレジスタ113は、それぞれ画素駆動に必要な電圧を発生させると共に、FD領域に蓄積された電荷量に応じた各画素の画像信号を順次出力させるアナログ回路であり、出力された各画素の画像信号は、アナログプロセッサ114,ADコンバータ115,デジタルプロセッサ116を順次経由してデコーダ20へ出力される。
【0034】
アナログプロセッサ114は、上記垂直シフトレジスタ112と水平シフトレジスタ113により指定された画素から出力されるアナログ画素信号に対して電圧増幅,ゲイン調整等の所定のアナログ信号処理を行う。
ADコンバータ115は、アナログプロセッサ114から出力されるアナログ画像信号をデジタル画像データに変換する。
デジタルプロセッサ116は、ADコンバータ115から出力されるデジタル画像データに対してノイズキャンセル,データ圧縮等のデジタル処理を施し、処理後のデジタル画像データをデコーダ20へ出力する。
【0035】
また、コントロールレジスタ117は、シリアルレジスタI/Oとの間で入出力する信号を格納し、タイミングコントローラ118によってアナログプロセッサ114及びデジタルプロセッサ116のクロックタイミングを合わせて、画素部111の各画素からのアナログ画像信号を所定の順番でデジタル画像データに変換してデコーダ20へ出力させる。
【0036】
さらに、このCMOSイメージセンサ13は、各画素における受光量に応じた電荷の蓄積開始及び蓄積停止を全画素において略同時に制御するグローバルシャッタを採用しており、図示を省略するが、各画素における蓄積電荷に相当する値を共通の基準値と個別に比較する複数の比較器、それらの出力信号の論理和信号を出力するための端子等を備えている。
【0037】
そして、画素部111の複数の比較器の出力の少なくとも1つが、基準値より蓄積電荷が大きくなったことを示したときに、グローバルシャッタを制御して各画素における電荷の蓄積停止を実行する。
このCMOSイメージセンサ13が撮像し出力するデジタル画像データは、デコーダ20において、読取対象物の検知、読取対象物までの距離の測距、およびコード記号5の示す情報の読み取りに用いられる。
【0038】
また、上述のグローバルシャッタは、各画素における受光量に応じた電荷の蓄積開始及び蓄積停止を全画素において略同時に制御できるので、走査ラインごとに順次シャッタを切るローリングシャッタなどと異なり、FD領域に蓄積された信号電荷量に応じた画素信号が得られ、露光後のFD領域への転送タイミングを調整することで、パルスLED14の発光やレーザ光発生器15のレーザ光の発光と同期させてシャッタが切れることにより、非常に短いシャッタスピードが可能となり、移動体による画像のブレをなくすことができる。また、周囲の環境光の影響を受けずレーザ光の反射光のみを受光できる。
【0039】
図1の説明に戻ると、パルスLED14は、デコーダ20からの制御により読取対象物に照明光14aを照射して照明する照明手段である。この照明は、CMOSイメージセンサ13の撮像フレームに同期したパルス光の照射によって行い、その照射時間を調整することによって、1フレームの撮像期間内に読取対象物からの反射光によりCMOSイメージセンサ13の各フォトダイオードに蓄積される電荷量を調整することができる。すなわち、照明時間を長くすれば、CMOSイメージセンサ13が撮像により得る画像は明るい画像となるし、短くすれば、暗い画像となる。
【0040】
レーザ光発生器15は、読取対象物の検知及び読取対象物までの距離の測距に用いるレーザ光15aを出力するレーザ出力手段である。このレーザ光発生器15は、読取対象物がコードスキャナ1によるコード記号5の読み取りが可能と考えられる位置にある場合にその読取対象物(コード記号5の位置とは限らない)からの反射光をCMOSイメージセンサ13に入射させられるような位置及び角度で配置する。また、レーザ光発生器15が出力するレーザ光は、可視光であっても不可視光であっても、任意の波長のものでよいが、例えば、650nm(ナノメートル)の赤色レーザ光や、780nmの赤外線レーザ光を出力するものとするとよい。
【0041】
レーザ光として可視光を用いると、レーザ光によるスポットを視認できるため、レーザ光を、測距だけでなく、コード記号5とコードスキャナ1の読取範囲との位置合わせにも用いることができる。また、不可視光を用いると、レーザ光によるスポットが視認されないため、パルス点灯させておいても周囲の人を不快にさせることがない。従って、コードスキャナ1を、レーザ光を常時パルス点灯させておき、レーザ光を点灯させるための動作や操作なしに速やかに読み取りを開始できるような構成とすることができる。
なお、可視光と不可視光の双方のレーザ光を出力可能な2波長レーザ光発生器を用い、2種のレーザ光を状況に応じて自動的に又は手動で切り換えて出力できるようにすることも考えられる。
【0042】
温度センサ16は、コードスキャナ1の周囲の温度、特にフォーカスレンズ11の周囲の温度を検知する温度検知手段である。液体レンズにおける印加電圧と焦点距離との関係は、温度によって変化するため、焦点距離を所望の値にするために印加する電圧の値は、この温度センサ16が検知した温度も考慮して定める。ただし、以下の説明では、説明を簡単にするため、特に必要な場合を除いては、温度についての説明は省略する。
【0043】
次に、デコーダ20は、CPU21と、CPU21が実行するプログラムとテーブルを記憶したROM22と、CPU21が各種の処理を実行する際の作業領域として使用するRAM23を備えている。
上記CPU21,ROM22,RAM23としては、例えば、エーシック(Application Specific Integrated Circuit:ASIC),フラッシュロム(FROM),SDRAM(Synchronous Dynamic Random Access Memory)を用いることができる。
【0044】
CPU21は、RAM23を作業領域としてROM22に記憶されたプログラムを実行することにより、コードスキャナ1全体の動作を制御すると共に、CMOSイメージセンサ13が撮像したデジタル画像データに基づく、読取対象物の検知、読取対象物までの距離の測距、その距離に基づく焦点距離及び照明光量の調整、コード記号5のデコード、そのデコード結果の外部への出力あるいは蓄積などに必要な処理を行う。
【0045】
次に、図4を用いて、このコードスキャナ1におけるコード記号5の読み取り処理について説明する。図4は、コードスキャナ1のCPU21が実行する読み取り処理を示すフローチャートである。
CPU21は、コードスキャナ1が起動されると自動的に、あるいはコード記号の読み取り実行が指示されると、図4のフローチャートに示す処理を開始する。
【0046】
そして、まずステップS1でCMOSイメージセンサ13に定期的な撮像を開始させる。この際のシャッタ速度は、周囲の環境光はほとんど検出せず、環境光と比べて光量の大きい、レーザ光発生器15が出力したレーザ光15aの反射光を選択的に検出できるようなシャッタ速度とする。上述のグローバルシャッタを利用する場合、レーザ光15aの反射光がCMOSイメージセンサ13に入射すると、その反射光のスポットの部分の画素において、他の部分より急激に電荷が蓄積され、他の部分の画素において電荷があまり蓄積されないうちに速やかにシャッタが切れるため、反射光のスポットを効果的に検出することができる。
【0047】
次のステップS2では、CPU21は、レーザ光発生器15に適当な制御信号を供給し、CMOSイメージセンサ13のシャッタを開く(フォトダイオードによる電荷蓄積を開始させる)タイミングと同期して、レーザ光発生器15にレーザ光15aを発光させる。
そして、ステップS3で、CMOSイメージセンサ13が出力する画像データを解析して、CMOSイメージセンサ13のイメージエリア110にレーザ光の反射光が入射したか否か、すなわち画像データ中に反射光のスポットが現れているか否かを判断する。
【0048】
ここで反射光が入射していなければ、読取対象物がコードスキャナ1によりコード記号の読み取り可能な位置にないと考えられるため、以下の読取条件調整及び読み取り用の撮像の処理には進まず、ステップS2に戻って処理を繰り返す。所定期間繰り返しても読取対象物の検出がない場合には、一旦CMOSイメージセンサ13のフレーム速度を遅く(フレーム期間を長く)してもよい。
【0049】
また、ステップS3で反射光が入射していた場合、コードスキャナ1によりコード記号の読み取りが可能と考えられる位置に何らかの物体(読取対象物と想定できる)が存在していることがわかる。すなわち、読取対象物の存在を検知できる。
上記ステップS2とS3の処理は、紙面検知モードの動作と呼び、この紙面検知モードは、コードスキャナの電源がオンされた後、又は電源オン後に所定のコマンドを検出した後は常時動作し、電源のオフ又は所定のコマンドを検出したときに終了する。
そしてこの場合、図5(a)に示すように、読取対象物が近くにある場合にはスポットSが撮像した画像中の横軸方向の端部に現れ、遠くにある場合には(c)に示すように中央付近に現れる。そこで、ステップS4に進み、CMOSイメージセンサ13から検知した読取対象物までの距離を、画像中の反射光のスポットの位置に基づいて算出する。
【0050】
次に、読取対象物(物体)までの距離の算出方法について説明する。
図6は、読取対象物までの距離の算出に必要なパラメータの説明図である。
読取対象物までの距離xについては、同図中の次のパラメータと下記数1とに基づいて算出することができる。
x:撮像光学系レンズの主点Pから読取対象物までの距離
a:CMOSイメージセンサ13のイメージエリアに平行な向きに測った場合の撮像光学系レンズの主点Pからレーザ光15a(の中心)までの距離
θ:撮像光学系レンズの主点Pからレーザ光15aの方向に広がる、視野角θ0の1/2の角度
N:撮像光学系レンズの主点Pからレーザ光15aに向かう方向に数えた場合のCMOSイメージセンサ13におけるピクセル数の1/2(図5参照)
n:CMOSイメージセンサ13における中心位置(撮像光学系レンズの主点Pと対応する位置)から反射光15bのスポットの中心位置までのピクセル数(図5参照)
φ:レーザ光15aと撮像光学系レンズの光軸qとがなす角
【0051】
【数1】
なお、図6で読取対象物の上側に示したレーザ光15aは、角φについて説明するためのものである。
【0052】
次のステップS5では、CPU21は、ステップS4で算出した距離をもとに、ROM22に予め記憶させたフォーカステーブルを検索してフォーカス制御パラメータの値を取得し、そのフォーカス制御パラメータの値に基づいてフォーカスレンズ11を駆動することにより、ステップS4で算出した距離付近にピントが合うようにフォーカスの調整を行う。この調整の詳細については後述する。
【0053】
ステップS6では、CPU21は、ステップS4で算出した距離をもとに、ROM22に予め記憶された照明テーブルを検索してパルスLED14の点灯時間を示すパラメータの値を取得し、その値に基づいて、撮像時のパルスLED14の点灯時間を設定することにより、ステップS4で算出した距離付近の読取対象物から適当な光量の反射光を得られるように、照射光量を調整する。この調整の詳細についても後述する。
ステップS5とS6の調整は、順序を入れ替えたり、並列して行ったりしてもよい。
また、例えばステップS5とS6の調整を同時に開始した場合でも、ステップS6の処理はほぼリアルタイムで終えることができるのに対して、ステップS5はステップS6の処理よりも時間がかかるので、両調整は異なる時点に終了することになる。
【0054】
次のステップS7では、CPU21は、CMOSイメージセンサ13のシャッタを開くタイミングと同期してステップS6で設定した点灯時間だけパルスLED14を点灯させて照明を行うことにより、ステップS3で検知した読取対象物の画像を撮像し、その結果得られた画像データから、読取対象物に付されていると想定されるコード記号のデコードを試みる。
【0055】
そして、ステップS8でこのデコードが成功したか否か判断し、成功していれば、ステップS9でデコードにより得られたデータを所定の外部装置や内部のデータ処理手段等に出力し、ステップS10でフォーカスをデフォルトの状態に戻して、読取完了としてステップS1へ戻る。
【0056】
また、デコード失敗の場合には、ステップS11で予め設定した読取有効時間(フレーム数で規定してもよい)を超えたか否か判断し、超えてなければステップS7に戻って再度撮像とデコードを試みる。
ステップS8でのデコードが失敗する原因としては、そもそも検出した読取対象物にコード記号が付されていない場合の他、コード記号がCMOSイメージセンサ13の撮像範囲に収まっていない、ステップS5及びS6の調整が適正に行われていない、など種々の原因が考えられる。そして、調整の応答に必要な時間が経過したり、読取対象物が移動されたりするとこれらが改善する場合もあるので、リトライするようにしたものである。
【0057】
そして、ステップS11で読取有効時間を超えた場合には、これ以上続けても正常にデコードできる見込みがないと判断し、読み取りを一旦中止し、ステップS10でフォーカスをデフォルトの状態に戻してステップS1へ戻る。
このように、読み取り成功の場合も中止の場合も、ステップS1に戻って直ちに次の読取対象物検出の処理を開始する。
【0058】
次に、このコードスキャナ1が図4に示した処理によりコード記号5の読み取りを行う場合の各部の動作タイミングについて説明する。
図7は、その動作タイミングの一例を示すタイミングチャートである。
このコードスキャナ1は、CMOSイメージセンサ13を起動すると、上述のようにレーザ光発生器15から出力したレーザ光15a反射光を選択的に検出できるようなシャッタ速度でシャッタの開閉を行い、(a)に示すように、フレーム単位の撮像をフリーランニングで繰り返す。なお、ここでいうフレームは、受光に応じた電荷の蓄積から画像信号の読み出しまで含めた、一度の撮像に要する期間であり、シャッタの開いている(フォトダイオードによる電荷の蓄積を行う)期間は、フレームのごく一部である。
さらに、読取対象物を検知するまでは、CMOSイメージセンサ13のシャッタを開くタイミングに同期させて、(b)に示すように、符号33,34で示すタイミングでフレーム毎にレーザ光発生器15にレーザ光15aのパルス光を発光させる。
【0059】
そして、例えば、フレーム30の撮像の時に、上述した紙面検知処理で荷物4からの反射光がCMOSイメージセンサ13のイメージエリア110に写り、読取対象物を検知した場合、次のフレームまでの間の、(a)中の矢印32のタイミングで上述した測距及び、照明光量とフォーカスの調整を実行する。
そして、上記調整後、次のフレーム31の撮像のシャッタを開くタイミングに同期させて、(c)に示すように、符号35,36で示すタイミングでフレーム毎にパルスLED14に照明用のパルス光を発光させる。このパルス幅は、CPU21が読取対象物までの距離に応じて行う設定に従ったものである。また、パルスLED14を点灯させるフレームでは、レーザ光発生器15は消灯する。
【0060】
また、測距の結果に従ってフォーカスを変更する必要があった場合には、矢印32のタイミングでフォーカスの調整も開始するが、こちらは、(d)に破線37で示すようにある程度の応答時間を要する。
そして、フレーム31以降の各フレームで撮像した画像データについてその画像中のコード記号のデコードを試み、これが成功するか、失敗しても読取有効時間を超えるまでは、同じ条件での撮像を続ける。
【0061】
次に、フォーカス調整について説明する。
上述のように、フォーカスレンズ11として液体レンズ11aを用いる場合、液体レンズ11aの電極に印加する電圧により、液体レンズ11aの屈折力を調整可能である。そこで、図4のステップS5におけるフォーカス調整では、ステップS4の測距で得られた読取対象物までの距離に基づき、その読取対象物の位置に、フォーカスレンズ11及びマスタレンズ12からなる光学系のピントが合うように、液体レンズ11aの屈折力を調整する。
【0062】
このとき、印加電圧と液体レンズ11aの屈折力との関係から、どの位置にピントを合わせる場合にどれだけの電圧を印加すればいいかは、予め測定しておくことができる。
そこで、コードスキャナ1においては、図8に示すような、読取対象物までの距離と、その各距離にピントを合わせるために液体レンズ11aに印加すべき電圧値(液体レンズ11aの駆動に用いるパラメータ)との関係を、予め実験により(又は生産時の調整により)定めて、ピントを合わせようとするaからdの距離範囲についてフォーカステーブルとして予め用意してROM22に記憶させておくようにしている。図8では連続値のグラフとして示したが、実際にはある程度の距離範囲毎に、印加すべき電圧値を定めることになる。そして、フォーカス調整の際には、図4のステップS4での測距で得られた読取対象物までの距離に基づきそのフォーカステーブルを検索して、その距離に応じた電圧を、液体レンズ11aの電極104a,104bの間に印加する。
【0063】
なお、一般に、光学系は図9に示すようにある程度の焦点深度を有し、焦点位置eのごく近傍だけでなく、例えば範囲b〜cのように、ある程度離れた位置の物体であっても、その像を、コード記号をデコード可能な程度に鮮明に結像させることができる。従って、焦点位置からずれるにつれて像のボケが増すが、ある程度のずれであれば、焦点位置を初期値に固定したまま撮像したとしても、図4のステップS7で適切にデコードを行うことができる。
【0064】
一方、図7に示したように、フォーカスの調整にはある程度の応答時間が必要であるので、フォーカスの調整を行うとすると、1〜数フレーム程度は光学系が安定せず、適切な撮像を行えない可能性がある。
そこで、コードスキャナ1においては、図8に実線で示すように、ピントを固定の初期値位置eに合わせた状態でもデコード可能な画像が得られるb〜cの範囲においては、印加電圧を初期値から変化させないようにしている。破線が、この間の各位置にピントを合わせるための電圧値を示すが、この範囲では、コード記号のデコードという目的のためには必ずしもフォーカス調整は必要ないため、調整の応答時間を不要とし、少しでも速くデコード結果を得られるようにすることを優先したものである。
【0065】
ただし、この構成は必須ではなく、破線で示す値のフォーカステーブルを採用し、b〜c全ての距離についてフォーカス調整を行う構成とすることも考えられる。また、フォーカステーブルとしては破線で示す値のものを採用しつつ、測距で得られた距離がb〜cの範囲に入る場合には、フォーカス調整の処理を行わないようにする構成とすることも考えられる。これらの場合において、調整を行わない範囲をユーザが調整できるようにしてもよい。
【0066】
いずれにせよ、コードスキャナ1によれば、固定焦点ではピントが合わず、コード記号をデコード可能な画像が得られない距離に読取対象物を検出した場合に、その距離に合わせてフォーカスを自動調整してデコード用の画像を撮像することにより、調整可能な範囲であればどの距離に読取対象物があってもコード記号の読み取りを行うことができ、図10に示すように、実質的に極めて大きな焦点深度を得ることができる。
【0067】
また、このために必要な処理は、予め用意したテーブルデータを検索して取得した制御パラメータを適用するものであるから、極めて簡単なものであり、画像に基づいて露出制御及びフォーカス駆動を繰り返したり、複雑な計算を行ったりする必要もなく、1または数フレーム程度の短時間でデコードに必要な画像を取得できるため、読取対象物が高速に移動している場合でも、読取対象物の検出後、撮像範囲から外れる前にデコード用の画像を撮像して、正確かつ確実な読み取りを行うことができる。
例えば、コード記号5を含む読取対象物が移動している場合、CMOSイメージセンサ13の画素部111に写るフレーム数は少なくなるので、このような簡単な処理により、コード記号5を含む画像をいち早くぼけの無い適切な状態で撮影することが、安定した読み取りに重要である。
【0068】
次に、照明光量の調整について説明する。
上述のように、コードスキャナ1においては、読取対象物を撮像してコード記号5のデコードに用いる画像を撮像する場合、パルスLED14による照明を行う。しかし、照明対象までの距離が遠いほど照明光が拡散するため、同じ強度で照明を行った場合、図11に示すように、読取対象物までの距離が近いほどCMOSイメージセンサ13が受光する反射光が強くなり、遠いほど反射光が弱くなる。
【0069】
そこで、コードスキャナ1においては、読取対象物までの距離が遠いほど照明光量を増加させ、読取対象物までの距離によらず、CMOSイメージセンサ13が概ね一定な光量の反射光を受光できるようにしている。
具体的には、図12に示すような内容の、読取対象物までの距離と照明光のパルス幅との対応関係を示す照明テーブルを、予め実験により(又は生産時の調整により)定めてROM22に記憶させておき、図4のステップS6の照明光量調整の際に、ステップS4での測距で得られた読取対象物までの距離に基づきその照明テーブルを検索して、その距離に応じたパルス幅で、ステップS7の撮像時にパルスLED14を駆動する。この調整については、応答時間の問題はないため、距離が初期値付近の場合に調整を行わないといった配慮は特に必要ない。
なお、照明テーブルに設定するパルス幅は、読取対象物の撮像の際に移動ぶれの影響を軽減するために、ストロボ効果を用いるため、パルス幅を非常に小さい値、例えば、400μs(マイクロ秒)以下の発光時間に相当するパルス幅にすることが望ましい。
【0070】
このような調整を行うことにより、デコード用の画像を撮像する際に、読取対象物までの距離によらず一定の明るさの画像を得ることができ、デコードの精度や成功確率を高めることができる。特に、CMOSイメージセンサが受光する光の大部分が環境光ではなく照明光である場合は、このような照明光量の調整が重要である。そして、このような制御も、複雑な計算を行うことなく実現できる。
なお、ここでは制御の容易さを考慮して照明光の照射時間を制御するようにしたが、照射強度を制御するようにしても構わない。どのような手段であっても、シャッタが開いている間にCMOSイメージセンサ13に入射する光量を調整できれば、同様な効果が得られる。
【0071】
以上で実施形態の説明を終了するが、装置の構成や具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、図13に示すように、フォーカスレンズ11として、通常のガラスやプラスチックによる固体レンズ11bを採用し、これを光路の前後(図13中の矢示B方向)に駆動する駆動手段を設けることによって、光学系全体における焦点距離を調整可能としてもよい。
【0072】
このような構成を採用する場合には、フォーカステーブルに、読取対象物までの距離に応じた、固体レンズ11bの位置を、駆動制御パラメータとして登録しておき、図4のステップS5でのフォーカス調整の際に、ステップS4で測距した読取対象物までの距離に対応する位置に、固体レンズ11bを移動させればよい。
このような構成であっても、液体レンズ11aを用いる場合と同様なフォーカス調整が可能である。
【0073】
また、別の変形として、レーザ光発生器15として、可視光(例えば赤色光)を出力する光源と不可視光(例えば赤外光)を出力する光源の2つを備えた2波長レーザ光発生器を用いることも考えられる。
この場合において、読取対象物の検出及び測距については、レーザ光の波長に関わらず同様に行うことができる。従って、ビームスポットが見えた方が(エイミングなどの用途で)よいのか、逆に見えない方がよいのか(視界にスポットがチラつく不快感を防止するためなど)に応じて、ユーザが2つのビームを任意に切り換えて使えるようにすることが好ましい。
例えば、コードスキャナをハンドヘルドで使用する際に、ユーザがスキャナを読取対象物にかざしてトリガを操作した場合に読み取りを行う構成とした場合に、トリガを引く前は赤外光を出力し、トリガを引いた後は赤色光を出力するようにすることが考えられる。
【0074】
図14に、この構成とする場合の、図7と対応するタイミングチャートを示す。
この動作例でも、(b)に符号51,52に示すようにCMOSイメージセンサ13がフレーム単位の撮像をフリーランニングで繰り返す点は、図7と同様である。
そして、ユーザがトリガを操作する前には、(c)に示すように、CMOSイメージセンサ13のシャッタを開くタイミングに同期させて、符号54,55で示すタイミングで、フレーム毎にレーザ光発生器に赤外光レーザのパルスを出力させる。そしてこのとき、CMOSイメージセンサ13に反射光が入射すれば、上述した実施形態の場合と同様に読取対象物の検出と測距が可能である(矢示53)。
【0075】
そして、測距ができた後は、(f)に符号60に示すように、必要に応じてフォーカス及び照明光量の調整を行う。ただし、トリガが操作されるまでは、デコード用の画像の撮像は行わず、フレーム毎にフォーカス及び照明光量の調整を行いながら待機する。
そして、(a)に符号50で示すようにユーザがトリガを操作したことを所定の信号により検出すると、次のフレームからデコード用の画像を撮像し、コード記号のデコードを行う。このとき、(d)に符号56,57で示すように出力するレーザを赤色レーザに切り換え、この赤色レーザのスポットを用いてユーザがエイミングできるようにする。この赤色レーザの発光タイミングをCMOSイメージセンサ13による各フレームの撮像タイミングの間隙とすれば、各フレームの撮像画像に赤色レーザのスポットが含まれずに済み、デコードの際に誤検知を起こさずに済む。
【0076】
また、図4のステップS8の判断でデコードが失敗した場合、ステップ1に戻って初期化をし、再度測距を行う。
その場合、今度は測距のための撮像のフレーム(図14の(b)に符号61に示す)内で、(d)に符号62に示すように、赤色レーザを発光し、その赤色レーザ光の反射光に基づいて測距をすることにより、ユーザがコードスキャナを読取対象物に正確にエイミングした状態で測距を行うことができ、再度撮像した画像によるデコードの成功の確率を高めることができる。
【0077】
また、(d)に符号63に示すように、赤色レーザ光は、測距後は再び各フレームの撮像タイミングの間隙で発光するようにするとよい。
そして、(f)に符号60で示すように、赤色レーザ光による測距結果に基づいてフォーカス位置が調整される。図中では、フォーカス調整量がなだらかに減少する場合を示している。
なお、図4では読取有効時間内にデコードが成功しない場合にフォーカスをデフォルト状態に戻す処理となっているが、図14ではこれを行わない状態を示している。読取有効時間の経過後にフォーカスを一旦デフォルト状態に戻す場合には、符号61で示すフレームの時点では、フォーカスはデフォルト状態に戻っている又は戻る途中の状態となる。
【0078】
またもちろん、デコード用の画像の撮像に際しては、(e)に符号58,59に示すように、パルスLED14により、調整しておいた照明光量で照明を行う。また、フォーカスについても予め赤外光レーザを用いて調整されているため、応答時間を待つ必要はない。
以上の構成によれば、ユーザがトリガを操作する前に既に測距やフォーカス調整が完了しているため、トリガ操作後にこれらに要する時間を待たずに読み取りを行うことができ、レスポンスを向上させることができる。
また、上記の他、読み取り開始指示とは関係なく、ユーザの操作に応じて出力するレーザ光の波長を切り換えたり、読取対象物を検出した場合に自動的にレーザ光を可視光に切り換えてユーザが読取対象物の検出を容易に認識できるようにすることも考えられる。
【0079】
また、上述の実施形態においては、結像光学系をフォーカスレンズ11とマスタレンズ12により構成した例について説明したが、より多くのレンズを組み合わせて所望の特性の光学系を実現することも、もちろん可能であり、その中で何らかの手段で光学系全体の焦点距離を調整可能であればよい。
また、この発明の光学的情報読取装置は、据え置き型の装置としても、手持ち型の装置としても、構成することができる。光学的情報読取方法についても、同様である。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【0080】
この発明による光学的情報読取装置と光学的情報読取方法は、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の認識のために、物品や商品に貼付されたコード記号の情報を読み取る光学情報読取装置、特に小型で安価なバーコードスキャナのような光学情報読取装置に好適である。
【符号の説明】
【0081】
1…コードスキャナ、3…ベルトコンベア、4…荷物、5…コード記号、10…光学部、11…フォーカスレンズ、12…マスタレンズ、13…CMOSイメージセンサ、14…パルスLED、15…レーザ光発生器、20…デコーダ、21…CPU、22…ROM、23…RAM
【特許請求の範囲】
【請求項1】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
レーザ光を出力するレーザ出力手段と、
読取対象物を照明する照明手段と、
読取対象物の画像を撮像する撮像手段と、
前記撮像手段が検出する、前記レーザ出力手段が出力したレーザ光の読取対象物による反射光に基づいて、該読取対象物までの距離を測定する距離測定手段と、
該距離測定手段が測定した距離に基づいて、前記撮像手段の撮像時のフォーカス及び前記照明手段による照明の照射光量を調整する調整手段と、
該調整手段による調整後の条件で前記撮像手段によって撮像した前記読取対象物の画像を解析し、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項2】
請求項1に記載の光学的情報読取装置であって、
読取対象物までの距離と、前記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを記憶する手段を備え、
前記調整手段は、前記距離測定手段が測定した距離をもとに前記フォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、前記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うことを特徴とする光学的情報読取装置。
【請求項3】
請求項2に記載の光学的情報読取装置であって、
前記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、前記所定の初期値と対応する一定の値としたことを特徴とする光学的情報読取装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の光学的情報読取装置であって、
前記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、
前記調整手段は、前記液体レンズに印加する電圧を調整することによって前記フォーカスの調整を行うことを特徴とする光学的情報読取装置。
【請求項5】
請求項1乃至4のいずれか一項に記載の光学的情報読取装置であって、
読取対象物までの距離と、前記照明手段に該距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを記憶する手段を備え、
前記調整手段は、前記距離測定手段が測定した距離をもとに前記照明テーブルを検索して取得した駆動制御パラメータの値に基づき、前記照明手段を駆動することにより、照明光量の調整を行うことを特徴とする光学的情報読取装置。
【請求項6】
請求項1乃至5のいずれか一項に記載の光学的情報読取装置であって、
前記レーザ出力手段として、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有し、
ユーザの操作がない場合には、前記レーザ出力手段に前記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、前記レーザ出力手段が出力するレーザ光を前記可視光のレーザ光に切り換える手段を設けたことを特徴とする光学的情報読取装置。
【請求項7】
レーザ出力手段が出力したレーザ光の読取対象物による反射光を撮像手段により検出し、該検出した反射光に基づいて、前記読取対象物までの距離を測定する距離測定工程と、
該距離測定工程で測定した距離に基づいて、撮像時の前記撮像手段のフォーカス及び照明手段による照明の照射光量を調整する調整工程と、
該調整工程による調整後の条件で前記撮像手段によって撮像した前記読取対象物の画像を解析し、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項8】
請求項7に記載の光学的情報読取方法であって、
前記調整工程では、前記距離測定工程で測定した距離をもとに、読取対象物までの距離と、前記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、前記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うことを特徴とする光学的情報読取方法。
【請求項9】
請求項8に記載の光学的情報読取方法であって、
前記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、前記所定の初期値と対応する一定の値としたことを特徴とする光学的情報読取方法。
【請求項10】
請求項7乃至9のいずれか一項に記載の光学的情報読取方法であって、
前記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、
前記調整工程では、前記液体レンズに印加する電圧を調整することによって前記フォーカスの調整を行うことを特徴とする光学的情報読取方法。
【請求項11】
請求項7乃至10のいずれか一項に記載の光学的情報読取方法であって、
前記調整工程では、前記距離測定工程で測定した距離をもとに、読取対象物までの距離と、前記照明手段に該距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを検索して取得した駆動制御パラメータの値に基づき、前記照明手段を駆動することにより、照明光量の調整を行うことを特徴とする光学的情報読取方法。
【請求項12】
請求項7乃至11のいずれか一項に記載の光学的情報読取方法であって、
前記レーザ出力手段は、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有しており、
ユーザの操作がない場合には、前記レーザ出力手段に前記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、前記レーザ出力手段が出力するレーザ光を前記可視光のレーザ光に切り換える工程を含むことを特徴とする光学的情報読取方法。
【請求項1】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
レーザ光を出力するレーザ出力手段と、
読取対象物を照明する照明手段と、
読取対象物の画像を撮像する撮像手段と、
前記撮像手段が検出する、前記レーザ出力手段が出力したレーザ光の読取対象物による反射光に基づいて、該読取対象物までの距離を測定する距離測定手段と、
該距離測定手段が測定した距離に基づいて、前記撮像手段の撮像時のフォーカス及び前記照明手段による照明の照射光量を調整する調整手段と、
該調整手段による調整後の条件で前記撮像手段によって撮像した前記読取対象物の画像を解析し、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項2】
請求項1に記載の光学的情報読取装置であって、
読取対象物までの距離と、前記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを記憶する手段を備え、
前記調整手段は、前記距離測定手段が測定した距離をもとに前記フォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、前記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うことを特徴とする光学的情報読取装置。
【請求項3】
請求項2に記載の光学的情報読取装置であって、
前記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、前記所定の初期値と対応する一定の値としたことを特徴とする光学的情報読取装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の光学的情報読取装置であって、
前記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、
前記調整手段は、前記液体レンズに印加する電圧を調整することによって前記フォーカスの調整を行うことを特徴とする光学的情報読取装置。
【請求項5】
請求項1乃至4のいずれか一項に記載の光学的情報読取装置であって、
読取対象物までの距離と、前記照明手段に該距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを記憶する手段を備え、
前記調整手段は、前記距離測定手段が測定した距離をもとに前記照明テーブルを検索して取得した駆動制御パラメータの値に基づき、前記照明手段を駆動することにより、照明光量の調整を行うことを特徴とする光学的情報読取装置。
【請求項6】
請求項1乃至5のいずれか一項に記載の光学的情報読取装置であって、
前記レーザ出力手段として、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有し、
ユーザの操作がない場合には、前記レーザ出力手段に前記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、前記レーザ出力手段が出力するレーザ光を前記可視光のレーザ光に切り換える手段を設けたことを特徴とする光学的情報読取装置。
【請求項7】
レーザ出力手段が出力したレーザ光の読取対象物による反射光を撮像手段により検出し、該検出した反射光に基づいて、前記読取対象物までの距離を測定する距離測定工程と、
該距離測定工程で測定した距離に基づいて、撮像時の前記撮像手段のフォーカス及び照明手段による照明の照射光量を調整する調整工程と、
該調整工程による調整後の条件で前記撮像手段によって撮像した前記読取対象物の画像を解析し、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項8】
請求項7に記載の光学的情報読取方法であって、
前記調整工程では、前記距離測定工程で測定した距離をもとに、読取対象物までの距離と、前記撮像手段が備える光学系に該距離に対応するフォーカスを設定するための駆動制御パラメータの値とを対応付けたフォーカステーブルを検索して取得した駆動制御パラメータの値に基づき、前記撮像手段が備える光学系を駆動することにより、フォーカスの調整を行うことを特徴とする光学的情報読取方法。
【請求項9】
請求項8に記載の光学的情報読取方法であって、
前記フォーカステーブルにおいて、フォーカスを所定の初期値に設定した場合の焦点深度の前後所定範囲の距離については、対応する駆動制御パラメータの値を、前記所定の初期値と対応する一定の値としたことを特徴とする光学的情報読取方法。
【請求項10】
請求項7乃至9のいずれか一項に記載の光学的情報読取方法であって、
前記撮像手段が備える光学系は、電圧の印加によって屈折力を調整可能な液体レンズを含み、
前記調整工程では、前記液体レンズに印加する電圧を調整することによって前記フォーカスの調整を行うことを特徴とする光学的情報読取方法。
【請求項11】
請求項7乃至10のいずれか一項に記載の光学的情報読取方法であって、
前記調整工程では、前記距離測定工程で測定した距離をもとに、読取対象物までの距離と、前記照明手段に該距離に適した照射光量の照明を行わせるための駆動制御パラメータの値とを対応付けた照明テーブルを検索して取得した駆動制御パラメータの値に基づき、前記照明手段を駆動することにより、照明光量の調整を行うことを特徴とする光学的情報読取方法。
【請求項12】
請求項7乃至11のいずれか一項に記載の光学的情報読取方法であって、
前記レーザ出力手段は、可視光のレーザ光を出力する手段と、不可視光のレーザ光を出力する手段とを有しており、
ユーザの操作がない場合には、前記レーザ出力手段に前記不可視光のレーザ光を出力させ、ユーザによる所定の操作があった場合に、前記レーザ出力手段が出力するレーザ光を前記可視光のレーザ光に切り換える工程を含むことを特徴とする光学的情報読取方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−34360(P2011−34360A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−180145(P2009−180145)
【出願日】平成21年7月31日(2009.7.31)
【特許番号】特許第4473337号(P4473337)
【特許公報発行日】平成22年6月2日(2010.6.2)
【出願人】(391062872)株式会社オプトエレクトロニクス (70)
【Fターム(参考)】
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願日】平成21年7月31日(2009.7.31)
【特許番号】特許第4473337号(P4473337)
【特許公報発行日】平成22年6月2日(2010.6.2)
【出願人】(391062872)株式会社オプトエレクトロニクス (70)
【Fターム(参考)】
[ Back to top ]