光学的情報読取装置、光学的情報読取方法及びデジタルフィルタの作成方法
【課題】 ノイズや分布定数の影響を低減し、正確なデコードができるようにする。
【解決手段】 コードスキャナ200に、読取対象物までの距離を測定する距離測定部232を設け、フィルタ処理部224に、複数の距離の各々に対応した、CMOS212がその距離だけ離れた位置の読取対象物を撮像して得た画像をその読取対象物の理想的な像に近づける処理を行うための複数のフィルタ224aを用意し、距離測定部232が測定した距離に基づいて、フィルタ選択部230が上記複数のフィルタ224aのうちその距離で撮像した画像の処理に適した1つを選択し、フィルタ処理部224がCMOS212によって撮像した読取対象物の画像に対してその選択したフィルタ処理を行い、デコード部225がその処理後の画像を解析して、読取対象物上に配置されたコード記号をデコードするようにした。
【解決手段】 コードスキャナ200に、読取対象物までの距離を測定する距離測定部232を設け、フィルタ処理部224に、複数の距離の各々に対応した、CMOS212がその距離だけ離れた位置の読取対象物を撮像して得た画像をその読取対象物の理想的な像に近づける処理を行うための複数のフィルタ224aを用意し、距離測定部232が測定した距離に基づいて、フィルタ選択部230が上記複数のフィルタ224aのうちその距離で撮像した画像の処理に適した1つを選択し、フィルタ処理部224がCMOS212によって撮像した読取対象物の画像に対してその選択したフィルタ処理を行い、デコード部225がその処理後の画像を解析して、読取対象物上に配置されたコード記号をデコードするようにした。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置及び光学的情報読取方法、およびこのような光学的情報読取装置及び光学的情報読取方法での使用に好適なデジタルフィルタを作成するためのデジタルフィルタの作成方法に関する。
【背景技術】
【0002】
従来から、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の自動認識手段として、光反射率が周囲と異なる記号で情報を表記したバーコードや二次元コードなどのコード記号が広く使用されている。
バーコードは、例えば、白と黒の太さの異なるバーを水平方向に並べ、光を当てたときに、バーの太さによって反射率の異なる性質を利用して、情報をコード化あるいはデコード化する記号の一種である。このバーコードを読み取るために、レーザビームで走査し、その反射光による光信号を電気信号に変換してデコード処理するレーザスキャナがよく用いられている。その中でも、例えば特許文献1にあるように、正確にバーコードを読み取るために、電流信号を電圧信号に変換する際にノイズを多く含む高域成分を減少させ、その信号を増幅させて出力信号の高域成分を増加させるフィルタリング回路が提案されている。
【0003】
また、バーコードは水平方向にだけ情報を持つが、近年は、垂直方向にも情報を持つような二次元コードの需要も高くなっている(以後、バーコード・二次元コードを総称してコード記号と呼ぶ)。
二次元コードには、大きく分けてスタック式とマトリックス式がある。スタック式は、バーコードを縮小して縦に複数段積み重ねた形態をしており、水平方向に長い長方形をしている。このスタック式コードの代表的なものとしてPDF417が上げられる。また、マトリックス式の代表的なものは、QRコードと呼ばれ、概ね正方形をしており、碁盤の目のごとく細かく区切られた領域に大小の黒と白のセルが複雑に並んで構成されるものである。これらは、レーザスキャナと異なり、CCD/CMOSイメージセンサを使用して、二次元コード画像を取り込み様々な画像処理を施してデコードを行う場合が多い。
二次元コードを読み取るための読取装置については、例えば特許文献2及び特許文献3に記載がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−15671号公報
【特許文献2】特開2004−54529号公報
【特許文献3】特開2009−151446号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、これらコード記号を読み取る読取装置では、使用の際、蛍光灯などの光の散乱による光ノイズや、印刷の汚れによる紙面ノイズなどをバーコードと一緒に読み取ってしまい、読取エラーの起こる一因となっている。また、電子素子が持つ寄生容量やインダクタンスなどによる分布定数も信号処理に影響を与える。さらに、CCD/CMOSイメージセンサでは、画素ごとに固定した増幅器が割り当てられるため、各増幅器の特性ばらつきによって固定ノイズが発生する。従来の読取装置では、このような問題が十分に考慮されていなかった。
この発明は上記の点に鑑みてなされたものであり、光学的情報読取装置において、ノイズや分布定数の影響を低減し、正確なデコードができるようにすることを目的とする。
【課題を解決するための手段】
【0006】
この発明は上記の目的を達成するため、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置において、読取対象物までの距離を測定する距離測定手段と、その読取対象物の画像を撮像する撮像手段と、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、上記距離測定手段が測定した距離に基づいて、上記複数のフィルタ手段のうちその距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、上記撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを設けたものである。
【0007】
この発明の別の光学的情報読取装置は、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置において、その読取対象物の画像を撮像する撮像手段と、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、ユーザの操作に従って上記複数のフィルタ手段のうちその距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、上記撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを設けたものである。
【0008】
これらの光学的情報読取装置において、上記各フィルタ手段を、上記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段とするとよい。
【0009】
さらに、上記点拡がり関数を、上記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数とするとよい。
【0010】
さらに、上記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数1におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであるとよい。
【数1】
【0011】
また、この発明の光学的情報読取方法は、読取対象物までの距離を測定する距離測定工程と、上記距離測定工程で測定した距離に基づいて、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、上記距離測定工程で測定した距離で撮像した画像の処理に適した1つを選択するフィルタ選択工程と、撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを備えたものである。
【0012】
この発明の別の光学的情報読取方法は、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、ユーザの操作に従って1つを選択するフィルタ選択工程と、撮像手段によって撮像した読取対象物の画像を、上記フィルタ選択工程で選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを備えたものである。
【0013】
これらの各光学的情報読取方法において、上記各フィルタ手段を、上記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段とするとよい。
【0014】
さらに、上記点拡がり関数を、上記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数とするとよい。
【0015】
さらにまた、上記各フィルタ手段を、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数2におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタとするとよい。
【数2】
【0016】
また、この発明のデジタルフィルタの作成方法は、H(jω1,jω2)を点拡がり関数、Pu(ω1,ω2)を入力信号成分のパワースペクトル、Pv(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数3におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタの作成方法において、
【数3】
上記点拡がり関数を、撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数を、空間周波数領域に変換することにより得るようにしたものである。
【発明の効果】
【0017】
この発明による光学的情報読取装置及び光学的情報読取方法によれば、ノイズや分布定数の影響を低減し、正確なデコードができるようにすることができる。また、この発明のデジタルフィルタの作成方法によれば、このようなノイズや分布定数の影響を低減するためのフィルタ処理に好適なデジタルフィルタを作成することができる。
【図面の簡単な説明】
【0018】
【図1】この発明の光学的情報読取装置の実施形態において用いるフィルタ処理の原理についての説明に用いるバーコードスキャナの光学系の構成を示す図である。
【図2】図1に示した処理回路の概略構成を示す図である。
【図3】読取対象物上のバーコード記号が図1及び図2に示した構成を有するバーコードスキャナにより読み取られてデコードされる際の信号処理過程のモデルを示す図である。
【図4】走査レーザビームのビームスポットプロファイルの例を示す図である。
【図5】図3に示した読取信号から入力信号を再生するためのウィーナフィルタの概念図を示す図である。
【0019】
【図6】逆フィルタを作成する際に入力信号u(t)として用いたバーコード記号を表す信号を示す図である。
【図7】図4に示したビームスポットプロファイルをフーリエ変換することによって求めた周波数特性を示す図である。
【図8】図7に示す周波数特性に基づき設計したデジタルフィルタの特性を示す図である。
【図9】(a)に読取信号y(t)を、同(b)にその読取信号を図8に示すデジタルフィルタにより処理して得られる再生信号u*(t)を示す図である。
【図10】この発明の光学的情報読取装置の実施形態であるコードスキャナの概略ハードウェア構成を示す図である。
【0020】
【図11】PSFの推定のために撮像する、エッジを有する原画像を示す図である。
【図12】図11に示した原画像中でエッジを跨ぐラインを示す図である。
【図13】図11に示した原画像を撮像して得た画像データに基づくESFの例を示す図である。
【図14】そのESFの別の例を示す図である。
【図15】図14に示したESF3に基づいて式(5)により求めたLSFを近似したガウス関数のグラフである。
【0021】
【図16】図15に示したガウス関数から式(8)及び式(9)により推定したPSFの空間周波数特性を示す図である。
【図17】劣化関数を推定する手順を示すフローチャートである。
【図18】パワースペクトル比を推定する際に、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を近似した二次関数の例を示す。
【図19】図13及び図14に示したESFを用いて求めた、読取距離300mmの場合に好適なインパルス応答を有するウィーナの逆フィルタの空間周波数特性を示す図である。
【図20】図19に示した空間周波数特性を有する逆フィルタを空間領域に変換し、64次のデジタルフィルタとして実現した場合の逆フィルタのインパルス応答を示す図である。
【0022】
【図21】CMOS212による読取距離300mmの撮像で得られた画像を示す図であり、(a)にフィルタ処理前の画像を、(b)にフィルタ処理後の画像を示す。
【図22】図21に示した画像における横1ライン分の画素値を示す図であり、(a)がフィルタ処理前、(b)がフィルタ処理後の値を示す。
【図23】図22と同様に縦1ライン分の画素値を示す図である。
【図24】最適な読取距離である120mmで撮像したコード記号の画像を示す図である。
【図25】読取距離30mmで図11に示した原画像を形成した部材を撮像して得られる画像データから求めたLSFを近似したガウス関数を示す図である。
【0023】
【図26】CMOS212による読取距離30mmの撮像で得られた画像を示す図であり、(a)にフィルタ処理前の画像を、(b)にフィルタ処理後の画像を示す。
【図27】図26に示した画像における横1ライン分の画素値を示す図であり、(a)がフィルタ処理前、(b)がフィルタ処理後の値を示す。
【図28】図27と同様に縦1ライン分の画素値を示す図である。
【図29】この発明の実施形態のコードスキャナの概略ハードウェア構成を示す図である。
【図30】別の実施形態のコードスキャナの概略ハードウェア構成を示す図である。
【図31】CMOS212の撮像エリアに写る反射光のスポットの例を示す説明図である。
【図32】CMOS212から読取対象物までの距離の算出に必要なパラメータの説明図である。
【図33】複数の読取距離について実測のESFに基づき式(8)に従って求めたPSFの半値幅と、読取距離との関係を示す図である。
【発明を実施するための形態】
【0024】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、この発明の光学的情報読取装置の実施形態において用いるフィルタ処理の原理について説明する。
図1に、この説明に用いる、1次元のバーコードを読み取るバーコードスキャナの光学系の構成を示す。
【0025】
バーコードスキャナ1は、図1に示すように、レーザ光源11,集光レンズ12,開口絞り13,スキャニングミラー14,結像レンズ15,光電変換器16,処理回路20を有する。
そして、バーコードスキャナ1においては、半導体レーザを光源とするレーザ光源11の発光点11aから出力されるレーザビームを、集光レンズ12を通過させた後、開口絞り13で径を絞り、スキャニングミラー14により偏向させて、読取対象物30上に設けられたバーコード31に対して照射し、バーコード31上をレーザビームのビームスポットにより走査できるように構成している。スキャニングミラー14は、図1では平面鏡として示しているが、実際には正多角形柱上で側面が鏡面となっているポリゴンミラーを用いてもよい。
【0026】
一方、結像レンズ15には、読取対象物30により反射されてきた走査レーザビームを入射させ、フォトダイオードからなる光電変換器16上に結像させる。そして、光電変換器16がその反射光を、強度に応じたアナログ電気信号に変換し、処理回路20による解析に供する。
【0027】
図2に、この処理回路の概略構成を示す。
処理回路20は、図2に示す通り、IV変換部21,プリアンプ22,フィルタ処理部23,二値化回路24を有し、光電変換器16が出力する、読み取り対象物30により反射されてきた反射光の強度に応じた電気信号を処理し、バーコード記号のデコードに供するパルス列を出力する回路である。
【0028】
より具体的には、まずIV変換部21が、光電変換器16のフォトダイオードから出力される電流信号を電圧信号に変換する。次にプリアンプ22が、IV変換部21によって変換された電圧信号を増幅する。このIV変換部21とプリアンプ22とによって、電流信号を電圧信号に変換して増幅する増幅部を構成している。
【0029】
その後、プリアンプ22から出力された信号に対してフィルタ処理部23でノイズ除去処理を行い、二値化回路24に入力する。フィルタ処理部23の詳細については後述する。二値化回路24は、低域通過(ローパス)フィルタやロジック回路で構成され、バーコード記号のバーの並びに対応した、白バー部と黒バー部の位置を示すパルス列を出力する。
【0030】
次に、図3に、読取対象物上のバーコード記号が図1及び図2に示した構成を有するバーコードスキャナにより読み取られてデコードされる際の信号処理過程のモデルを示す。
図3において、u(t)がバーコード記号の白バーと黒バーの並びに対応した方形波を示す入力信号である。理想的には、この波形が光電変換器16に入力するはずである。しかし実際には、走査に用いるレーザビームに拡がりがあるため、その分だけ劣化した信号が光電変換器16に入力することになる。
【0031】
これの劣化を考慮したものが劣化系41であり、H0(s)は、図4に示すような、光電変換器16上における走査レーザビームのビームスポットプロファイルを示す関数である。そして、この劣化系41による劣化後の入力信号x0(t)は、入力信号u(t)をh0(t)(=L−1{H0(s)})との畳み込みにより劣化した信号である。ここで、L{・}はラプラス変換を示す。
【0032】
また、計測系42は、増幅器のゲインを示すものであり、H1(s)がその特性を示す関数である。そして、x0(t)が計測系42を通過した後の信号をx1(t)とする。
また、v(t)はノイズであり、回路ノイズや散乱ノイズを一括して表すものである。そして、y(t)はx1(t)にv(t)が付加された読取信号であり、図2でいうプリアンプ22の出力信号を示す。ここで,t=nTs,n=0,1,…,N−1,N、Nは信号の全データ数、Tsはサンプリング周期を示す。
【0033】
処理系43は、フィルタ処理部23による入力信号の特性調整を示す。従って、u*(t)は、フィルタ処理部23の出力信号、すなわち二値化回路24の入力信号を示す。バーコード記号を正確にデコードするためには、この時点の信号が、バーコード記号の並びを示すu(t)の内容をなるべく正確に反映していることが好ましい。
そこで、本実施形態では、y(t)を入力してu(t)に近い出力を得られるような特性W(s)を持つように、フィルタ処理部23を設計することにより、入力信号から効果的にボケやノイズを除去してバーコードの読取り可能範囲を拡張することを目指した。
【0034】
なお、劣化系41、計測系42及びノイズv(t)の加算までを一連の読取誤差の混入過程と見れば、この過程により、バーコード記号の並びを示すu(t)を読取信号y(t)に変換するフィルタ処理が行われると考えることができる。そして、フィルタ処理部23によりこの逆変換のフィルタ処理を行うことにより、読取信号y(t)から読取誤差を除去してバーコード記号の並びを示すu(t)に近いu*(t)を再生することができると考えられる。従ってこの意味で、フィルタ処理部23が行うフィルタ処理の機能を、「逆フィルタ」と呼ぶことにする。
【0035】
次に、この逆フィルタの設計手法について説明する。
ここでは、逆フィルタを、所望の信号と入力信号の差分の二乗平均を最小にする意味で最適なフィルタであるウィーナフィルタ(Wiener filter)として設計している。
図5にこのウィーナフィルタの概念図を示す。ウィーナフィルタには入力信号とノイズに因果性の仮定が求められるが、ここではその仮定が満足されているとする。
【0036】
図5では、図3と同様な記号を用いているが、劣化系41と計測系42はまとめて1つのフィルタ51として示した。そして、フィルタ52が、設計対象の逆フィルタであり、フィルタ52によりy(t)を処理して得られる再生信号u*(t)と当初の入力信号u(t)との差分の二乗平均を最小にするようにフィルタ52の特性W(s)を定めることになる。
【0037】
ここで、フィルタ52のインパルス応答をw(t)(=L−1{W(s)})とおくと、逆フィルタの設計問題は下記の式(1)における評価関数Jを最小にするインパルス応答を決定する問題となる。ここで、式中のE{・}は期待値を示す。
【数4】
【0038】
この問題を解き、それを周波数領域で表すと次の式(2)のようになる。
【数5】
【0039】
ここで、この逆フィルタの特殊解について説明する。
通常、図1及び図2に示したようなバーコードスキャナ1により読み取るバーコード記号の信号帯域は130キロヘルツ(kHz)程度であり、それ以上の周波数成分はノイズとみなすことができる。そこで、カットオフ周波数150kHz程度のバタワース低域通過フィルタをy(t)に(逆フィルタよりも前に)掛けることにより、逆フィルタの設計においてノイズ成分を無視することができる。
【0040】
また、計測系42は必要な帯域では定常ゲインであるので、図4においてH1(s)はx0(t)の周波数成分に影響を与えることはなく、逆フィルタの設計においてはH1(s)も無視することができる。
【0041】
これらの条件を用いて、ウィーナの逆フィルタの特殊解として、以下の近似式(3)を得ることができる。
【数6】
この場合、H0(jω)は図4に示したようなビームスポットプロファイルを示すH0(s)をフーリエ変換して得ることができる。従って、H0(s)のみから逆フィルタを作成できることになる。
【0042】
次に、図1及び図2に示したバーコードスキャナ1において、フィルタ処理部23に以上説明してきた考え方に基づいて作成した逆フィルタを採用した場合に得られる再生信号u*(t)のシミュレーション結果について説明する。
図6に、入力信号u(t)として用いたバーコード記号を表す信号を示す。
また、各読取距離(結像レンズの主点Pから読取対象物までの距離)における走査レーザビームのビームスポットプロファイルは既知であり、読取距離350mmにおけるビームスポットプロファイルは図4に示したものであるとする。これをフーリエ変換することによって求めた周波数特性は、図7に示すものである。
【0043】
そして、図7に示す周波数特性に基づき、上記式(3)を用いて設計した次数10、サンプリング周波数560kHzの逆フィルタは、図8に示す特性を有するものとなった。図8(a)に示すのがインパルス応答、(b)に示すのがその周波数特性である。
なお、このフィルタ次数は、DSP(Digital Signal Processor、例えばTexas Instruments, Inc.のTMS320C6713DSK)を用いて本実施形態の装置を実現する際の実装可能性を考慮して決定した。
図9(a)に上記条件における読取信号y(t)を、同(b)に再生信号u*(t)を示す。これらを比較すると、逆フィルタにより微分が効いて、読取信号y(t)よりも入力信号u(t)の方形波に近い形の再生信号u*(t)が得られることがわかる。
【0044】
また、この逆フィルタを実際のバーコードスキャナに組み込んだところ、特開2004−15671号公報に記載のような従来の回路構成を用いた場合はバーコード記号を読み取り可能な距離範囲が30〜350mmであったのに対して、ここで説明した逆フィルタを実現する回路を用いた場合には、同等な光学系で読み取り可能な距離範囲が30〜400mmであった。従って、ここで説明した逆フィルタを用いることにより、読み取り可能距離を伸ばすことができた。
【0045】
次に、以上説明してきた逆フィルタを二次元コードを読み取るコードスキャナに適用した実施形態について説明する。
図10に、この説明に用いるコードスキャナの概略ハードウェア構成を示す。
図10に示すように、このコードスキャナ200は、光学ヘッド部210及びデコーダ部220を有する。
【0046】
このうち光学ヘッド部210は、レンズ211及び、固体撮像素子の一例であるCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ(以下単に「CMOS」という)212を備える。
レンズ211は例えば光学レンズであり、二次元コード等のコード記号の画像を光学ヘッド部210に取り入れ、CMOS212の撮像エリア上に結像させるためのものである。
【0047】
CMOS212は、レンズ211が取り入れた読取対象物(コード記号含むと想定される)からの反射光により、読取対象物を撮像し、その撮像で得たアナログの画像信号からデジタルの輝度値で表現される画像データを生成してデコーダ部220に出力する。
また、光学ヘッド部210は、光源の一例である発光ダイオード(LED)213も有し、LED213が照射する光により読取対象物を照明して、CMOS212により鮮明な画像を撮像できるようにしている。ただし、装置の構造によってはLED213は設けなくてもよい。
【0048】
次に、デコーダ部220は、第1の入出力インタフェース(第1I/O)221,ASIC(Application Specific Integrated Circuit)222,RAM226,ROM227,第2の入出力インタフェース(第2I/O)228を備える。
このうち第1I/O221は、光学ヘッド部210とデコーダ部220との間で、制御信号やCMOS212が出力する画像データなどを送受信するためのインタフェースである。
【0049】
ASIC222は、ヘッド制御部223,フィルタ処理部224及びデコード部225を有する。そして、ヘッド制御部223はCMOS212及びLED213の制御を行い、フィルタ処理部224はCMOS212から第1I/O221を介して入力される読取対象物の画像データに対し、ノイズ除去のためのフィルタ処理や、デコード準備のための二値化処理等を行う。デコード部225は、フィルタ処理部224による処理後の画像データに基づきコード記号のデコードを行い、読み取ったコード記号が意味するデータを出力する。
なお、デコード部225によるデコード処理については、例えば特開2005−25417号公報に記載の手法など、公知の任意の手法を採用すればよい。
【0050】
RAM226は、フィルタ処理部224による処理後の画像データを記憶したり、フィルタ処理部224におけるフィルタ処理のパラメータや、その他コードスキャナ200の動作に必要なデータなど動的に変更するデータを記憶する記憶手段である。一部を不揮発性としてもよい。
【0051】
ROM227は、コードスキャナ200を起動させるプログラムなどを記憶する不揮発性の記憶手段である。
第2I/O228は、不図示のホストコンピュータ等の外部装置とデータ通信を行うためのインタフェースであり、デコード部225によるデコード後のデータを第2I/O228を介して外部装置に出力することができる。
【0052】
以上のような構成を有するコードスキャナ200において、CMOS212は、撮像時に固定ノイズとランダムノイズを発生する。すなわち、画素ごとに固定した増幅器が割り当てられるため,各増幅器のばらつきによって固定ノイズが発生する。また、紙面ノイズや光ノイズなどによってランダムノイズが発生する。
【0053】
また、読取対象物の画像は、理想的には、コード記号上の各点からの反射光がCMOS212の撮像面上の1点に入射する条件で撮像することが好ましい。しかし実際には、光学系の焦点距離と読取距離とが一致しないこともあり、各点からの反射光はある程度の拡がりを持った領域に入射することになる。従って、図1に示したバーコードスキャナ1におけるレーザビームの場合と同じような、光の拡がりに起因するノイズ(ボケ)も発生する。
【0054】
従って、正確なデコードのためには、デコード処理の前に、撮像で得られた画像データからこれらのノイズを除去することが好ましい。
コード記号上の各点からの反射光(u(t)に相当)により形成される像をCMOS212により撮像して画像データ(y(t)に相当)を得る際にノイズが混入する過程については、図3と同様に表現することができる(ただし2次元で考える必要がある)。
【0055】
従って、CMOS212により撮像して得られた画像データからノイズを取り除くためのウィーナの逆フィルタは、一次元の場合について示した式(2)を2次元に拡張した、以下の式(4)に示す空間周波数特性W(jω1,jω2)を有するフィルタとして作成することができる。ここで、ω1,ω2は2次元の各軸方向における空間周波数を示す。
【数7】
【0056】
以下に説明する、空間周波数特性W(jω1,jω2)を有するフィルタの作成方法が、この発明のデジタルフィルタの作成方法の実施形態である。
1次元の場合には、周波数特性W(jω)を求めるに際し、他の条件を考慮して特殊解を求めたが、2次元の場合には、実験データから劣化関数H(jω1,jω2)及び信号(図3におけるu(t)を2次元に拡張したu(t1,t2))とノイズ(図3におけるv(t)を2次元に拡張したv(t1,t2))のパワースペクトルの比を推定し、これらに基づいてW(jω)を導出することにした。
【0057】
このうち劣化関数H(jω1,jω2)については、点拡がり関数(PSF)と呼ばれるものであり、鋭いエッジを有する原画像をコードスキャナ200と同じ光学ヘッド部210のCMOS212によって撮像して得られたノイズ除去前の画像データから、以下の手順で推定できると考えられる。
【0058】
まず、図11に示すような鋭いエッジ(濃度が変化する点、図11で言えば黒部と白部の境界)を有する原画像を撮像した場合、画像データには、上述した各種ノイズにより、エッジ部に若干のボケが入ることになる。そして、撮像で得られた画像データにおける、図12(黒部はハッチングで示した)に示すようなエッジを跨ぐラインL上の各画素の画素値を、ラインL上の位置xの関数として表すと、図13に示すようなエッジ拡がり関数(ESF)を得ることができる。このとき、Lが1行又は1列の画素の並びと重なり、かつエッジと垂直に交わるように原画像の撮像を行うことが好ましい。
【0059】
そして、このエッジ拡がり関数をxで微分することにより、式(5)で示すように線拡がり関数(LSF)を得ることができる。
【数8】
【0060】
そして、LSFとPSFには式(6)で示す関係があるため、これを利用してPSFを推定することができる。
【数9】
【0061】
なお、LSFを求める際、単にESFをxで微分すると高周波成分が強調されてしまう。そこで本実施形態では、LSFの波形がガウス関数に近いと仮定して、式(7)に示すガウス関数に最小二乗法でフィッティングした。ここで、bはピークの高さ、cは平均、d2は分散である。
【数10】
【0062】
また、LSFがガウス関数の場合、PSFが対称形であると仮定すると、LSFを、そのガウス形状を対称軸の回りに回転させて得られる、式(8)に示す2次元に拡張したガウス関数が、式(6)の関係式を満たすPSFであると推定することができる。
【数11】
【0063】
これをフーリエ変換して空間周波数領域にして、劣化関数H(jω1,jω2)が式(9)に示すようなものであると推定することができる。
【数12】
【0064】
このように対称性を仮定して劣化関数を推定することにより、簡単な処理で劣化関数を求めることができると共に、推定された劣化関数に基づくフィルタ特性を、比較的簡単なものとすることができる。そしてこのことにより、さほど多くない次数のフィルタによっても、式(4)に従って求めた空間周波数特性を十分な精度で得られるフィルタ処理を行うことができる。2次元の画像データを処理する用途であれば、3次元画像を処理する場合などに比べて精度の要求レベルは低いので、このようにフィルタ次数の低減を図ることにより、読み取り精度をさほど犠牲にせずにコストダウンを図ることができる。
【0065】
次に、以上の推定手順を、データの取得法及び処理手順を交えてより具体的に説明する。
まず、推定のベースとなる画像データは,図11に示したような鋭いエッジを有する原画像を形成した部材を、コードスキャナ200の読取距離として想定される距離だけ離れた位置から、コードスキャナ200と同じ光学ヘッド部210のCMOS212によって撮像する。例えば、読取距離300mmの場合の撮像画像データから効果的にノイズを除去するためのフィルタを得たい場合には、推定のベースとなる画像データの撮像も、距離300mmから行う。なお、今回の撮像に用いた光学ヘッド部210の光学系は、焦点距離が120mmである(撮像距離が120mmの場合に読取対象物の像がちょうどCMOS212の受光面に結像する特性である)ので、300mmの距離で撮像すると、若干ボケた画像が得られる。
【0066】
そして、その画像データから、図12に示したようにエッジを跨ぐラインL上の各画素の画素値を取得して、ESFを求める。このとき、ランダムノイズの影響を抑えるため、同じ状況で時間をずらしながら撮像を行って複数枚の画像を取得し、各画像における画像データ値を加算平均することが好ましい。
【0067】
図13に、1枚の画像のみから取得したESFのグラフ(ESF1)と、20枚の画像における画像データの加算平均から求めたESFのグラフ(ESF2)を示す。(b)に示すのは、(a)のうちエッジ近傍を拡大したグラフである。
なお今回の撮像の条件では、ESF1とESF2に大きな差は見られず、加算平均してもほとんどノイズを除去することはできなかった。このことから、画像データに含まれるノイズには、ランダムノイズより固定ノイズの影響が大きいことが考えられる。
【0068】
このような状況でESF中のノイズを低減するためには、ラインLに平行な複数のラインについて画素値を取得し、それらを加算平均することが考えられる。そこで、連続する50ラインについて画素値を取得し、それらの加算平均からESF(ESF3)を求めた。なお、各ラインの画素値としては、20枚の画像における画像データの加算平均を用いている。
【0069】
図14に、ESF2とESF3の比較を示す。(b)に示すのは、図13と同様、(a)のうちエッジ近傍を拡大したグラフである。
このグラフから、複数ラインの画素値を平均することにより、ESFのノイズが減少することがわかる。またこのことから、画素毎の固定ノイズには相関がなく、複数ラインの画素値を平均することにより固定ノイズの影響を小さくすることができると言える。
このようにノイズの影響を低減したESF3が、逆フィルタのインパルス応答(及びその空間周波数特性)を決定する際に好適であり、ここではESF3に基づいて劣化関数H(jω1,jω2)の推定を行った。
【0070】
図15に、ESF3に基づいて式(5)により求めたLSFを近似したガウス関数のグラフを、図16に、そのガウス関数から式(8)及び式(9)により推定したPSF(劣化関数H(jω1,jω2))の空間周波数特性を示す。この図において、振幅値が大きい箇所がグラフの濃い部分で、振幅値が中程度の箇所がグラフの薄い部分で、振幅値が小さい箇所もグラフの濃い部分である。グラフ画像の濃度と右側の凡例(振幅値を示す)の濃度は対応している。
以上をまとめると、劣化関数H(jω1,jω2)の推定は、図17のフローチャートに示すステップS101乃至S106の手順により行うことができる。
【0071】
次に、信号とノイズのパワースペクトル比PV/PUの推定について説明する。
このパワースペクトル比も、劣化関数の場合と同様、図11に示したような原画像を形成した部材を、読取距離として想定される距離だけ離れた位置から撮像して得られる画像データを用いて推定することができる。
【0072】
まず、入力信号のパワースペクトルPU(ω1,ω2)については、原画像の信号が既知であるので、原画像の各位置の濃度を二次元ステップ関数として表したものを入力信号u(x, y)として、そのパワースペクトルを求める。
また、ノイズのパワースペクトルPV(ω1,ω2)については、撮像で得られた画像データ(劣化画像)の各画素の画素値を関数z(x, y)で表し、そのパワースペクトルPZ(ω1,ω2)と、上述の手法で求めた劣化関数H(jω1,jω2)とを用いて、以下の式(10)により求めることができる。
【数13】
【0073】
しかし、以上のように求めたPV(ω1,ω2)とPU(ω1,ω2)の比をパワースペクトル比PV(ω1,ω2)/PU(ω1,ω2)とすると、複雑な形状となってしまう。
そこで、この実施形態では、上述の手法で求めたPV(ω1,ω2)とPU(ω1,ω2)の比PV(ω1,ω2)/PU(ω1,ω2)について、ω1=0又はω2=0の断面を求め、これを最小二乗法で二次関数に近似し、この二次関数を対称性を仮定してω1,ω2=0の軸を中心に回転させたものを、パワースペクトル比PV/PUの最終的な推定結果として採用した。
図18に、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を、二次関数で最小二乗法を用いて近似した例を示す。
【0074】
以上の手法で推定した劣化関数H(jω1,jω2)及びパワースペクトル比PV(ω1,ω2)/PU(ω1,ω2)に基づき、式(4)から、フィルタ処理部224において読取画像データに対して行うフィルタ処理の空間周波数特性を決定することができる。
図19に、図13及び図14に示したESFを用いて求めた、読取距離300mmの場合に好適なインパルス応答を有するウィーナの逆フィルタの空間周波数特性を示す。この図においても、グラフ画像の濃度については図16と同様である。
【0075】
このようにして望ましい空間周波数特性が得られたら、空間周波数特性を空間領域に変換し、フィルタ処理を行うハードウェアの性能に合わせ、その空間周波数特性をなるべく精度よく得られるような、適当な次数のデジタルフィルタのパラメータを決定すればよい。この際には、空間周波数特性を単純に空間領域に変換する場合に比べ、次数を大幅に削ることになる。しかし、フィルタ処理の空間周波数特性のうち、フィルタの特性に大きく影響する中心のピークから1つめの谷を含む範囲でインパルス応答を設計することにより、次数を大きく減らしつつ、最低限必要な周波数特性を維持することができる。
発明者らは、読取距離300mmの条件では、64次のデジタルフィルタを用いた場合に、そのフィルタ処理により、CMOS212で撮像した画像データのコントラストを改善できることを確認した。
【0076】
図20に、図19に示した空間周波数特性を有する逆フィルタを、空間領域に変換して64次のデジタルフィルタとして実現した場合の逆フィルタのインパルス応答を示す。
また、図21乃至図23に、コード記号の撮像で得た画像データを図20に示したデジタルフィルタによりフィルタ処理した場合のコントラスト向上の例を示す。
【0077】
図21(a)に示すのが、CMOS212による撮像で得られたフィルタ処理前の画像、同(b)に示すのが、フィルタ処理後の画像である。一見して、フィルタ処理によりボケが低減され、コントラストが向上していることがわかる。
図22に、図21に示した画像における横1ライン分の画素値を示す。(a)がフィルタ処理前、(b)がフィルタ処理後の値である。図23には、同様に縦1ライン分の画素値を示す。
これらのグラフからも、フィルタ処理により画像のコントラストが向上し、かつノイズが低減されていることがわかる。
【0078】
参考のため、図24に、最適な読取距離である120mmで撮像したコード記号の画像(フィルタ処理前)を示す。この距離ではフィルタ処理を行わなくても高いコントラストの画像を得ることができるが、図21(b)に示したフィルタ処理後の画像は、(a)に示したフィルタ処理前の画像に比べ、理想的な距離で撮像した画像に近いものになっていることがわかる。
従って、以上説明してきたフィルタ処理を行うことにより、焦点距離よりも遠方で読取を行う場合に得られる画像のコントラストを向上させ、このことによりコード記号の読取精度を向上させることができると言える。
【0079】
また、図25乃至図28に、焦点距離よりも近方の、読取距離30mmの場合に好適な逆フィルタを上述と同じ手法で作成し、コード記号の撮像で得た画像データに適用した例を示す。
図25に示すのは、読取距離30mmで図11に示した原画像を形成した部材を撮像して得られる画像データから求めたLSFを近似したガウス関数である。図15に示した300mmの場合のものよりも、半値幅が広くなっている。
【0080】
図26(a)に示すのが、CMOS212による撮像で得られたフィルタ処理前の画像、同(b)に示すのが、フィルタ処理後の画像である。30mmの場合には、300mmの場合に比較して、フィルタ処理前の状態でコントラストが高いこともあり、目立ったコントラストの向上は見られない。
図27に、図26に示した画像における横1ライン分の画素値を示す。(a)がフィルタ処理前、(b)がフィルタ処理後の値である。図28には、同様に縦1ライン分の画素値を示す。
【0081】
これらのグラフからは、フィルタ処理前後で画像のコントラストにあまり変化はないが、フィルタ処理によりノイズを大きく低減できていることがわかる。
従って、以上説明してきたフィルタ処理を行うことにより、焦点距離よりも近方で読取を行う場合に得られる画像のノイズを低減させ、このことによりコード記号の読取精度を向上させることができると言える。
【0082】
次に、以上説明してきたフィルタ処理を適用したコードスキャナの実施形態について説明する。
図29に、このコードスキャナの概略ハードウェア構成を示す。なお、この図において、図10に示したコードスキャナと対応する箇所には同じ符号を付し、図10と同じ部分については説明を省略する。
図29に示したコードスキャナ200は、フィルタ処理部224に複数のフィルタ224aを設け、ユーザによる操作部240の操作に応じて、フィルタ処理に使用するフィルタを選択できるようにした点が、図10に示したコードスキャナと異なる。
【0083】
ここまでに説明してきた通り、フィルタ処理のパラメータは、読み取り距離毎に求めることができる。そこで、この実施形態のコードスキャナ200においては、複数の読み取り距離の各々に対応させて、CMOS212がその距離だけ離れた位置の読取対象物を撮像して得た画像をその読取対象物の理想的な像に近づける処理を行うための、ここまで説明してきたウィーナの逆フィルタ処理のパラメータを用意してある。
【0084】
このパラメータは、RAM226あるいはROM227に記憶させておくことができるが、フィルタ処理部224は、そのパラメータを選択的に読み出してフィルタ処理部224に設定することにより複数のフィルタ224aの処理を選択的に実行可能である。
複数のフィルタ224aとしては、例えば、近方(30mm)と遠方(300mm)に対応したものを用意したり、近方(30mm)と中距離(200mm)と遠方(300mm)に対応したものを用意したりすることが考えられる。
【0085】
そして、例えばユーザに読取対象物までの距離を操作部240に設けた適当なスイッチにより選択させ、そのスイッチの操作をデコーダ部220に設けた操作部I/F(インタフェース)231を介してフィルタ選択部230が検出し、その操作内容に応じて、複数のフィルタ224aのうち読取対象物までの距離と対応するフィルタを、フィルタ処理部224に選択させる。
【0086】
これに応じて、フィルタ処理部224は、選択したフィルタのパラメータを読み出し、CMOS212の撮像により得られた画像データに対してそのパラメータに応じたフィルタ処理を行って、そのフィルタ処理後の画像データをデコード部225でのデコードに供する。
このことにより、読取対象物までの距離に応じて画像データからノイズを取り除くと共にコントラストを向上させ、コード記号の読み取り精度を向上させることができる。
【0087】
なお、読取距離に応じた複数のフィルタは、それぞれ別々のフィルタ回路により実現し、スイッチの切り替えなどにより適当なフィルタを選択できるようにしてもよい。
また、焦点距離付近の、フィルタなしでも高いコントラストが得られる読取距離においては、フィルタ処理を行わなくてもよい。
【0088】
次に、以上説明してきたフィルタ処理を適用したコードスキャナの別の実施形態について説明する。
図30に、このコードスキャナの概略ハードウェア構成を示す。なお、この図においても、図10又は図29に示したコードスキャナと対応する箇所には同じ符号を付し、図10又は図29と同じ部分については説明を省略する。
図30に示したコードスキャナ200は、読取対象物までの距離を測定する距離測定手段を設け、距離測定手段が測定した距離に基づいて、その距離で撮像した画像の処理に適したフィルタを選択できるようにした点が、図29に示したコードスキャナと異なる。
【0089】
このコードスキャナ200に設けた距離測定手段は、レーザ光源214から読取対象物に対してレーザビームを照射し、読取対象物からの反射光のスポットをCMOS212で検出して、そのスポットが、CMOS212の撮像エリアの中央からどの程度離れた位置に入射したかに基づき、読取対象物までの距離を算出するものである。
この場合、図31(a)に示すように、読取対象物が近くにある場合にはスポットSが撮像した画像中の横軸方向の端部に現れ、遠くにある場合には(c)に示すように中央付近に現れる。
【0090】
読取対象物(物体)までの距離の算出方法は、より具体的には、以下のものを採用できる。
図32は、読取対象物までの距離の算出に必要なパラメータの説明図である。
読取対象物までの距離xについては、同図中の次のパラメータと下記式(11)とに基づいて算出することができる。
x:撮像光学系のレンズ211の主点Pから読取対象物までの距離
a:CMOS212のイメージエリアに平行な向きに測った場合の撮像光学系レンズの主点Pからレーザ光214a(の中心)までの距離
θ:レンズ211の主点Pからレーザ光214aの方向に広がる、視野角θ0の1/2の角度
N:レンズ211の主点Pからレーザ光214aに向かう方向に数えた場合のCMOS212におけるピクセル数の1/2(図31参照)
n:CMOS212における中心位置(レンズ211の主点Pと対応する位置)から反射光214bのスポットの中心位置までのピクセル数(図5参照)
φ:レーザ光214aと撮像光学系レンズの光軸qとがなす角
【0091】
【数14】
なお、図6で読取対象物の上側に示したレーザ光214aは、角φについて説明するためのものである。
【0092】
また、CMOS212が撮像した画像を解析して読取対象物までの距離を求める処理は、距離測定部232が行う。
そして、ヘッド制御部223は、コード記号の読み取りに先立ってレーザ光源214を点灯させる。距離測定部232は、レーザビームの反射光により読取対象物までの距離を測定し、その結果をフィルタ選択部230に渡す。そして、フィルタ選択部230が、複数のフィルタ224aのうち、距離測定部232が測定した距離で撮像した画像の処理に適した1つを、フィルタ処理部224に選択させる。
なお、読取対象物までの距離と、使用するフィルタとの対応関係は、フィルタ選択部230が参照可能な不揮発性記憶手段に予め記憶させておく。
そして、以上のフィルタ選択の完了後、ヘッド制御部223は、レーザ光源214を消灯すると共に必要に応じてLED213を点灯させ、CMOS212にコード記号のデコード用の画像を撮像させる。
このようにすれば、ユーザの手を煩わすことなく、適切なフィルタ処理を用いた読取精度向上の効果を得ることができる。
【0093】
なお、上述のいずれの構成を採る場合も、画像データに対してフィルタ処理を行う場合、画像データからコード記号の部分を切り出した上で、コード記号の箇所についてのみフィルタ処理を行えばよい。
また、コード記号をデコードする場合、コード記号の規格によっては、コード記号に含まれる所定の位置決めマークに従ってコード記号の画像を水平又は垂直方向にスライスしたり、ブロックに分割したりしてからデコード処理に供することも行われる。
【0094】
例えば、特開2005−25417号公報に記載の手法では、デコード処理の際に、撮像で得た1画面分の画像データを、2ライン×32画素のブロックに分割し、周辺のブロックのコントラストに基づき、各ブロックの画像データを2値化する際の閾値を設定することが記載されている。
このような場合、スライスや分割を行った後の画像データに対してスライスや分割した単位でフィルタ処理を行ってもよい。
【0095】
また、スライスやブロック単位でデコード処理を行う場合については、まずフィルタ処理前の画像データを用いてデコード処理を行い、デコードに失敗した箇所についてのみフィルタ処理を行うようにすることも考えられる。このようにすれば、画像データ全体に対してフィルタ処理を行う場合よりも処理負荷を低減できるため、その分次数の大きなフィルタを採用し、インパルス応答の精度を高めてより高いコントラストを得られるようにすることができる。
【0096】
また、多数の読取距離に応じてきめ細かくフィルタを用意しようとする場合、全ての読取距離について実測のESFに基づきフィルタパラメータを求めることは必須ではない。
図33に、複数の読取距離について実測のESFに基づき式(8)に従って求めたPSFの半値幅FWHMと、読取距離との関係を示す。この半値幅は空間分解能に相当し、半値幅が小さいほど分解能が高い。
【0097】
図33のグラフから、焦点距離よりも近い読取距離の場合、読取距離が減少するにつれ、半値幅が二次関数的に増加し、焦点距離よりも遠い読取距離の場合、読取距離が増加するにつれ半値幅が一次関数的にゆるやかに増加することがわかる。
従って、これらの関係から、読取距離と半値幅の関係を二次関数や一次関数で近似し、実測値のない読取距離に対応するPSFの半値幅を推定することができる。
【0098】
そして、この半値幅FWHMと、式(8)におけるdとの間には、次の式(12)に示す関係があり、これに基づいてFWHMから分散d2を求めることができる。
【数15】
【0099】
また、式(8)におけるピークの高さbは、LSFの総和(xで−∞から+∞まで積分した値)が定数(例えば1)になるように規格化するようにすれば、規格化前の値を推定する必要がない。平均cについては、値が変わってもLSFがx軸上を平行移動するだけでLSFの周波数特性(振幅特性)に影響を与えず、ひいてはPSFの空間周波数特性に影響を与えない。従って、cも推定する必要がない。
【0100】
従って、読取距離から半値幅FWHMが推定できれば、式(12)に基づいてd2を求め、cを適当に定めると共にLSFの総和を規格化してbを定めることにより、PSFを、ひいては劣化関数を推定することができる。
【0101】
また、パワースペクトル比についても、図18に示したような、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を近似して得られる二次関数の係数は、読取距離に依存すると考えられる。
そして、複数の読取距離についてこの二次関数の係数を求め、その結果に基づき、読取距離と係数との関係を一次関数や二次関数等の適当な関数で近似することにより、上記の半値幅の場合と同様、読取距離に基づき、その読取距離におけるPV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面、ひいてはこれを回転して得られるパワースペクトル比を推定することができる。
【0102】
従って、これらの推定値を用いて、任意の読取距離について、対応する逆フィルタの空間周波数特性を推定し、それに基づいてデジタルフィルタのパラメータを求めることができる。コードスキャナ200に十分な演算能力を備えるプロセッサを搭載していれば、距離測定手段が測定した読取対象物までの距離に基づき、読取画像に適用するフィルタのパラメータを、動的に生成することも考えられる。
【0103】
以上で実施形態の説明を終了するが、装置の構成や具体的なフィルタの特性、フィルタの選択手法等が上述の実施形態で説明したものに限られないことはもちろんである。
また、この発明の光学的情報読取装置は、据え置き型の装置としても、手持ち型の装置としても、構成することができる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【0104】
この発明による光学的情報読取装置と光学的情報読取方法は、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の認識のために、物品や商品に貼付されたコード記号の情報を読み取る光学情報読取装置、特に2次元コードを読み取るスキャナのような光学情報読取装置及びこのような光学的情報読取装置を用いた情報の読み取りに好適である。
また、この発明のデジタルフィルタの作成方法は、このような光学情報読取装置及び光学的情報読取方法において使用するデジタルフィルタの作成に好適である。
【符号の説明】
【0105】
1…バーコードスキャナ、11…レーザ光源、12…集光レンズ、13…開口絞り、14…スキャニングミラー、15…結像レンズ、16…光電変換器、20…処理回路、21…I/V変換部、22…プリアンプ、23…フィルタ処理部、24…二値化回路、30…読取対象物、31…バーコード記号、41…劣化系、42…計測系、43…処理系、51,52…フィルタ、200…コードスキャナ、210…光学ヘッド部、211…レンズ、212…CMOS、213…LED、214…レーザ光源、220…デコーダ部、221…第1I/O、222…ASIC、223…ヘッド制御部、224…フィルタ処理部、224a…フィルタ、225…デコード部、226…RAM、227…ROM、228…第2I/O、230…フィルタ選択部、231…操作部I/F、232…距離測定部、240…操作部
【技術分野】
【0001】
この発明は、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置及び光学的情報読取方法、およびこのような光学的情報読取装置及び光学的情報読取方法での使用に好適なデジタルフィルタを作成するためのデジタルフィルタの作成方法に関する。
【背景技術】
【0002】
従来から、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の自動認識手段として、光反射率が周囲と異なる記号で情報を表記したバーコードや二次元コードなどのコード記号が広く使用されている。
バーコードは、例えば、白と黒の太さの異なるバーを水平方向に並べ、光を当てたときに、バーの太さによって反射率の異なる性質を利用して、情報をコード化あるいはデコード化する記号の一種である。このバーコードを読み取るために、レーザビームで走査し、その反射光による光信号を電気信号に変換してデコード処理するレーザスキャナがよく用いられている。その中でも、例えば特許文献1にあるように、正確にバーコードを読み取るために、電流信号を電圧信号に変換する際にノイズを多く含む高域成分を減少させ、その信号を増幅させて出力信号の高域成分を増加させるフィルタリング回路が提案されている。
【0003】
また、バーコードは水平方向にだけ情報を持つが、近年は、垂直方向にも情報を持つような二次元コードの需要も高くなっている(以後、バーコード・二次元コードを総称してコード記号と呼ぶ)。
二次元コードには、大きく分けてスタック式とマトリックス式がある。スタック式は、バーコードを縮小して縦に複数段積み重ねた形態をしており、水平方向に長い長方形をしている。このスタック式コードの代表的なものとしてPDF417が上げられる。また、マトリックス式の代表的なものは、QRコードと呼ばれ、概ね正方形をしており、碁盤の目のごとく細かく区切られた領域に大小の黒と白のセルが複雑に並んで構成されるものである。これらは、レーザスキャナと異なり、CCD/CMOSイメージセンサを使用して、二次元コード画像を取り込み様々な画像処理を施してデコードを行う場合が多い。
二次元コードを読み取るための読取装置については、例えば特許文献2及び特許文献3に記載がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−15671号公報
【特許文献2】特開2004−54529号公報
【特許文献3】特開2009−151446号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、これらコード記号を読み取る読取装置では、使用の際、蛍光灯などの光の散乱による光ノイズや、印刷の汚れによる紙面ノイズなどをバーコードと一緒に読み取ってしまい、読取エラーの起こる一因となっている。また、電子素子が持つ寄生容量やインダクタンスなどによる分布定数も信号処理に影響を与える。さらに、CCD/CMOSイメージセンサでは、画素ごとに固定した増幅器が割り当てられるため、各増幅器の特性ばらつきによって固定ノイズが発生する。従来の読取装置では、このような問題が十分に考慮されていなかった。
この発明は上記の点に鑑みてなされたものであり、光学的情報読取装置において、ノイズや分布定数の影響を低減し、正確なデコードができるようにすることを目的とする。
【課題を解決するための手段】
【0006】
この発明は上記の目的を達成するため、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置において、読取対象物までの距離を測定する距離測定手段と、その読取対象物の画像を撮像する撮像手段と、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、上記距離測定手段が測定した距離に基づいて、上記複数のフィルタ手段のうちその距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、上記撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを設けたものである。
【0007】
この発明の別の光学的情報読取装置は、光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置において、その読取対象物の画像を撮像する撮像手段と、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、ユーザの操作に従って上記複数のフィルタ手段のうちその距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、上記撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを設けたものである。
【0008】
これらの光学的情報読取装置において、上記各フィルタ手段を、上記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段とするとよい。
【0009】
さらに、上記点拡がり関数を、上記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数とするとよい。
【0010】
さらに、上記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数1におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであるとよい。
【数1】
【0011】
また、この発明の光学的情報読取方法は、読取対象物までの距離を測定する距離測定工程と、上記距離測定工程で測定した距離に基づいて、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、上記距離測定工程で測定した距離で撮像した画像の処理に適した1つを選択するフィルタ選択工程と、撮像手段によって撮像した上記読取対象物の画像を、上記フィルタ選択手段が選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを備えたものである。
【0012】
この発明の別の光学的情報読取方法は、複数の距離の各々に対応したフィルタ手段であって、上記撮像手段がその距離だけ離れた位置の読取対象物を撮像して得た画像を上記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、ユーザの操作に従って1つを選択するフィルタ選択工程と、撮像手段によって撮像した読取対象物の画像を、上記フィルタ選択工程で選択したフィルタ手段によって処理し、その処理後の画像を解析して、その読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを備えたものである。
【0013】
これらの各光学的情報読取方法において、上記各フィルタ手段を、上記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段とするとよい。
【0014】
さらに、上記点拡がり関数を、上記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数とするとよい。
【0015】
さらにまた、上記各フィルタ手段を、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数2におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタとするとよい。
【数2】
【0016】
また、この発明のデジタルフィルタの作成方法は、H(jω1,jω2)を点拡がり関数、Pu(ω1,ω2)を入力信号成分のパワースペクトル、Pv(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数3におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタの作成方法において、
【数3】
上記点拡がり関数を、撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、その微分によって得られた線拡がり関数をガウス関数にフィッティングし、そのフィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数を、空間周波数領域に変換することにより得るようにしたものである。
【発明の効果】
【0017】
この発明による光学的情報読取装置及び光学的情報読取方法によれば、ノイズや分布定数の影響を低減し、正確なデコードができるようにすることができる。また、この発明のデジタルフィルタの作成方法によれば、このようなノイズや分布定数の影響を低減するためのフィルタ処理に好適なデジタルフィルタを作成することができる。
【図面の簡単な説明】
【0018】
【図1】この発明の光学的情報読取装置の実施形態において用いるフィルタ処理の原理についての説明に用いるバーコードスキャナの光学系の構成を示す図である。
【図2】図1に示した処理回路の概略構成を示す図である。
【図3】読取対象物上のバーコード記号が図1及び図2に示した構成を有するバーコードスキャナにより読み取られてデコードされる際の信号処理過程のモデルを示す図である。
【図4】走査レーザビームのビームスポットプロファイルの例を示す図である。
【図5】図3に示した読取信号から入力信号を再生するためのウィーナフィルタの概念図を示す図である。
【0019】
【図6】逆フィルタを作成する際に入力信号u(t)として用いたバーコード記号を表す信号を示す図である。
【図7】図4に示したビームスポットプロファイルをフーリエ変換することによって求めた周波数特性を示す図である。
【図8】図7に示す周波数特性に基づき設計したデジタルフィルタの特性を示す図である。
【図9】(a)に読取信号y(t)を、同(b)にその読取信号を図8に示すデジタルフィルタにより処理して得られる再生信号u*(t)を示す図である。
【図10】この発明の光学的情報読取装置の実施形態であるコードスキャナの概略ハードウェア構成を示す図である。
【0020】
【図11】PSFの推定のために撮像する、エッジを有する原画像を示す図である。
【図12】図11に示した原画像中でエッジを跨ぐラインを示す図である。
【図13】図11に示した原画像を撮像して得た画像データに基づくESFの例を示す図である。
【図14】そのESFの別の例を示す図である。
【図15】図14に示したESF3に基づいて式(5)により求めたLSFを近似したガウス関数のグラフである。
【0021】
【図16】図15に示したガウス関数から式(8)及び式(9)により推定したPSFの空間周波数特性を示す図である。
【図17】劣化関数を推定する手順を示すフローチャートである。
【図18】パワースペクトル比を推定する際に、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を近似した二次関数の例を示す。
【図19】図13及び図14に示したESFを用いて求めた、読取距離300mmの場合に好適なインパルス応答を有するウィーナの逆フィルタの空間周波数特性を示す図である。
【図20】図19に示した空間周波数特性を有する逆フィルタを空間領域に変換し、64次のデジタルフィルタとして実現した場合の逆フィルタのインパルス応答を示す図である。
【0022】
【図21】CMOS212による読取距離300mmの撮像で得られた画像を示す図であり、(a)にフィルタ処理前の画像を、(b)にフィルタ処理後の画像を示す。
【図22】図21に示した画像における横1ライン分の画素値を示す図であり、(a)がフィルタ処理前、(b)がフィルタ処理後の値を示す。
【図23】図22と同様に縦1ライン分の画素値を示す図である。
【図24】最適な読取距離である120mmで撮像したコード記号の画像を示す図である。
【図25】読取距離30mmで図11に示した原画像を形成した部材を撮像して得られる画像データから求めたLSFを近似したガウス関数を示す図である。
【0023】
【図26】CMOS212による読取距離30mmの撮像で得られた画像を示す図であり、(a)にフィルタ処理前の画像を、(b)にフィルタ処理後の画像を示す。
【図27】図26に示した画像における横1ライン分の画素値を示す図であり、(a)がフィルタ処理前、(b)がフィルタ処理後の値を示す。
【図28】図27と同様に縦1ライン分の画素値を示す図である。
【図29】この発明の実施形態のコードスキャナの概略ハードウェア構成を示す図である。
【図30】別の実施形態のコードスキャナの概略ハードウェア構成を示す図である。
【図31】CMOS212の撮像エリアに写る反射光のスポットの例を示す説明図である。
【図32】CMOS212から読取対象物までの距離の算出に必要なパラメータの説明図である。
【図33】複数の読取距離について実測のESFに基づき式(8)に従って求めたPSFの半値幅と、読取距離との関係を示す図である。
【発明を実施するための形態】
【0024】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、この発明の光学的情報読取装置の実施形態において用いるフィルタ処理の原理について説明する。
図1に、この説明に用いる、1次元のバーコードを読み取るバーコードスキャナの光学系の構成を示す。
【0025】
バーコードスキャナ1は、図1に示すように、レーザ光源11,集光レンズ12,開口絞り13,スキャニングミラー14,結像レンズ15,光電変換器16,処理回路20を有する。
そして、バーコードスキャナ1においては、半導体レーザを光源とするレーザ光源11の発光点11aから出力されるレーザビームを、集光レンズ12を通過させた後、開口絞り13で径を絞り、スキャニングミラー14により偏向させて、読取対象物30上に設けられたバーコード31に対して照射し、バーコード31上をレーザビームのビームスポットにより走査できるように構成している。スキャニングミラー14は、図1では平面鏡として示しているが、実際には正多角形柱上で側面が鏡面となっているポリゴンミラーを用いてもよい。
【0026】
一方、結像レンズ15には、読取対象物30により反射されてきた走査レーザビームを入射させ、フォトダイオードからなる光電変換器16上に結像させる。そして、光電変換器16がその反射光を、強度に応じたアナログ電気信号に変換し、処理回路20による解析に供する。
【0027】
図2に、この処理回路の概略構成を示す。
処理回路20は、図2に示す通り、IV変換部21,プリアンプ22,フィルタ処理部23,二値化回路24を有し、光電変換器16が出力する、読み取り対象物30により反射されてきた反射光の強度に応じた電気信号を処理し、バーコード記号のデコードに供するパルス列を出力する回路である。
【0028】
より具体的には、まずIV変換部21が、光電変換器16のフォトダイオードから出力される電流信号を電圧信号に変換する。次にプリアンプ22が、IV変換部21によって変換された電圧信号を増幅する。このIV変換部21とプリアンプ22とによって、電流信号を電圧信号に変換して増幅する増幅部を構成している。
【0029】
その後、プリアンプ22から出力された信号に対してフィルタ処理部23でノイズ除去処理を行い、二値化回路24に入力する。フィルタ処理部23の詳細については後述する。二値化回路24は、低域通過(ローパス)フィルタやロジック回路で構成され、バーコード記号のバーの並びに対応した、白バー部と黒バー部の位置を示すパルス列を出力する。
【0030】
次に、図3に、読取対象物上のバーコード記号が図1及び図2に示した構成を有するバーコードスキャナにより読み取られてデコードされる際の信号処理過程のモデルを示す。
図3において、u(t)がバーコード記号の白バーと黒バーの並びに対応した方形波を示す入力信号である。理想的には、この波形が光電変換器16に入力するはずである。しかし実際には、走査に用いるレーザビームに拡がりがあるため、その分だけ劣化した信号が光電変換器16に入力することになる。
【0031】
これの劣化を考慮したものが劣化系41であり、H0(s)は、図4に示すような、光電変換器16上における走査レーザビームのビームスポットプロファイルを示す関数である。そして、この劣化系41による劣化後の入力信号x0(t)は、入力信号u(t)をh0(t)(=L−1{H0(s)})との畳み込みにより劣化した信号である。ここで、L{・}はラプラス変換を示す。
【0032】
また、計測系42は、増幅器のゲインを示すものであり、H1(s)がその特性を示す関数である。そして、x0(t)が計測系42を通過した後の信号をx1(t)とする。
また、v(t)はノイズであり、回路ノイズや散乱ノイズを一括して表すものである。そして、y(t)はx1(t)にv(t)が付加された読取信号であり、図2でいうプリアンプ22の出力信号を示す。ここで,t=nTs,n=0,1,…,N−1,N、Nは信号の全データ数、Tsはサンプリング周期を示す。
【0033】
処理系43は、フィルタ処理部23による入力信号の特性調整を示す。従って、u*(t)は、フィルタ処理部23の出力信号、すなわち二値化回路24の入力信号を示す。バーコード記号を正確にデコードするためには、この時点の信号が、バーコード記号の並びを示すu(t)の内容をなるべく正確に反映していることが好ましい。
そこで、本実施形態では、y(t)を入力してu(t)に近い出力を得られるような特性W(s)を持つように、フィルタ処理部23を設計することにより、入力信号から効果的にボケやノイズを除去してバーコードの読取り可能範囲を拡張することを目指した。
【0034】
なお、劣化系41、計測系42及びノイズv(t)の加算までを一連の読取誤差の混入過程と見れば、この過程により、バーコード記号の並びを示すu(t)を読取信号y(t)に変換するフィルタ処理が行われると考えることができる。そして、フィルタ処理部23によりこの逆変換のフィルタ処理を行うことにより、読取信号y(t)から読取誤差を除去してバーコード記号の並びを示すu(t)に近いu*(t)を再生することができると考えられる。従ってこの意味で、フィルタ処理部23が行うフィルタ処理の機能を、「逆フィルタ」と呼ぶことにする。
【0035】
次に、この逆フィルタの設計手法について説明する。
ここでは、逆フィルタを、所望の信号と入力信号の差分の二乗平均を最小にする意味で最適なフィルタであるウィーナフィルタ(Wiener filter)として設計している。
図5にこのウィーナフィルタの概念図を示す。ウィーナフィルタには入力信号とノイズに因果性の仮定が求められるが、ここではその仮定が満足されているとする。
【0036】
図5では、図3と同様な記号を用いているが、劣化系41と計測系42はまとめて1つのフィルタ51として示した。そして、フィルタ52が、設計対象の逆フィルタであり、フィルタ52によりy(t)を処理して得られる再生信号u*(t)と当初の入力信号u(t)との差分の二乗平均を最小にするようにフィルタ52の特性W(s)を定めることになる。
【0037】
ここで、フィルタ52のインパルス応答をw(t)(=L−1{W(s)})とおくと、逆フィルタの設計問題は下記の式(1)における評価関数Jを最小にするインパルス応答を決定する問題となる。ここで、式中のE{・}は期待値を示す。
【数4】
【0038】
この問題を解き、それを周波数領域で表すと次の式(2)のようになる。
【数5】
【0039】
ここで、この逆フィルタの特殊解について説明する。
通常、図1及び図2に示したようなバーコードスキャナ1により読み取るバーコード記号の信号帯域は130キロヘルツ(kHz)程度であり、それ以上の周波数成分はノイズとみなすことができる。そこで、カットオフ周波数150kHz程度のバタワース低域通過フィルタをy(t)に(逆フィルタよりも前に)掛けることにより、逆フィルタの設計においてノイズ成分を無視することができる。
【0040】
また、計測系42は必要な帯域では定常ゲインであるので、図4においてH1(s)はx0(t)の周波数成分に影響を与えることはなく、逆フィルタの設計においてはH1(s)も無視することができる。
【0041】
これらの条件を用いて、ウィーナの逆フィルタの特殊解として、以下の近似式(3)を得ることができる。
【数6】
この場合、H0(jω)は図4に示したようなビームスポットプロファイルを示すH0(s)をフーリエ変換して得ることができる。従って、H0(s)のみから逆フィルタを作成できることになる。
【0042】
次に、図1及び図2に示したバーコードスキャナ1において、フィルタ処理部23に以上説明してきた考え方に基づいて作成した逆フィルタを採用した場合に得られる再生信号u*(t)のシミュレーション結果について説明する。
図6に、入力信号u(t)として用いたバーコード記号を表す信号を示す。
また、各読取距離(結像レンズの主点Pから読取対象物までの距離)における走査レーザビームのビームスポットプロファイルは既知であり、読取距離350mmにおけるビームスポットプロファイルは図4に示したものであるとする。これをフーリエ変換することによって求めた周波数特性は、図7に示すものである。
【0043】
そして、図7に示す周波数特性に基づき、上記式(3)を用いて設計した次数10、サンプリング周波数560kHzの逆フィルタは、図8に示す特性を有するものとなった。図8(a)に示すのがインパルス応答、(b)に示すのがその周波数特性である。
なお、このフィルタ次数は、DSP(Digital Signal Processor、例えばTexas Instruments, Inc.のTMS320C6713DSK)を用いて本実施形態の装置を実現する際の実装可能性を考慮して決定した。
図9(a)に上記条件における読取信号y(t)を、同(b)に再生信号u*(t)を示す。これらを比較すると、逆フィルタにより微分が効いて、読取信号y(t)よりも入力信号u(t)の方形波に近い形の再生信号u*(t)が得られることがわかる。
【0044】
また、この逆フィルタを実際のバーコードスキャナに組み込んだところ、特開2004−15671号公報に記載のような従来の回路構成を用いた場合はバーコード記号を読み取り可能な距離範囲が30〜350mmであったのに対して、ここで説明した逆フィルタを実現する回路を用いた場合には、同等な光学系で読み取り可能な距離範囲が30〜400mmであった。従って、ここで説明した逆フィルタを用いることにより、読み取り可能距離を伸ばすことができた。
【0045】
次に、以上説明してきた逆フィルタを二次元コードを読み取るコードスキャナに適用した実施形態について説明する。
図10に、この説明に用いるコードスキャナの概略ハードウェア構成を示す。
図10に示すように、このコードスキャナ200は、光学ヘッド部210及びデコーダ部220を有する。
【0046】
このうち光学ヘッド部210は、レンズ211及び、固体撮像素子の一例であるCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ(以下単に「CMOS」という)212を備える。
レンズ211は例えば光学レンズであり、二次元コード等のコード記号の画像を光学ヘッド部210に取り入れ、CMOS212の撮像エリア上に結像させるためのものである。
【0047】
CMOS212は、レンズ211が取り入れた読取対象物(コード記号含むと想定される)からの反射光により、読取対象物を撮像し、その撮像で得たアナログの画像信号からデジタルの輝度値で表現される画像データを生成してデコーダ部220に出力する。
また、光学ヘッド部210は、光源の一例である発光ダイオード(LED)213も有し、LED213が照射する光により読取対象物を照明して、CMOS212により鮮明な画像を撮像できるようにしている。ただし、装置の構造によってはLED213は設けなくてもよい。
【0048】
次に、デコーダ部220は、第1の入出力インタフェース(第1I/O)221,ASIC(Application Specific Integrated Circuit)222,RAM226,ROM227,第2の入出力インタフェース(第2I/O)228を備える。
このうち第1I/O221は、光学ヘッド部210とデコーダ部220との間で、制御信号やCMOS212が出力する画像データなどを送受信するためのインタフェースである。
【0049】
ASIC222は、ヘッド制御部223,フィルタ処理部224及びデコード部225を有する。そして、ヘッド制御部223はCMOS212及びLED213の制御を行い、フィルタ処理部224はCMOS212から第1I/O221を介して入力される読取対象物の画像データに対し、ノイズ除去のためのフィルタ処理や、デコード準備のための二値化処理等を行う。デコード部225は、フィルタ処理部224による処理後の画像データに基づきコード記号のデコードを行い、読み取ったコード記号が意味するデータを出力する。
なお、デコード部225によるデコード処理については、例えば特開2005−25417号公報に記載の手法など、公知の任意の手法を採用すればよい。
【0050】
RAM226は、フィルタ処理部224による処理後の画像データを記憶したり、フィルタ処理部224におけるフィルタ処理のパラメータや、その他コードスキャナ200の動作に必要なデータなど動的に変更するデータを記憶する記憶手段である。一部を不揮発性としてもよい。
【0051】
ROM227は、コードスキャナ200を起動させるプログラムなどを記憶する不揮発性の記憶手段である。
第2I/O228は、不図示のホストコンピュータ等の外部装置とデータ通信を行うためのインタフェースであり、デコード部225によるデコード後のデータを第2I/O228を介して外部装置に出力することができる。
【0052】
以上のような構成を有するコードスキャナ200において、CMOS212は、撮像時に固定ノイズとランダムノイズを発生する。すなわち、画素ごとに固定した増幅器が割り当てられるため,各増幅器のばらつきによって固定ノイズが発生する。また、紙面ノイズや光ノイズなどによってランダムノイズが発生する。
【0053】
また、読取対象物の画像は、理想的には、コード記号上の各点からの反射光がCMOS212の撮像面上の1点に入射する条件で撮像することが好ましい。しかし実際には、光学系の焦点距離と読取距離とが一致しないこともあり、各点からの反射光はある程度の拡がりを持った領域に入射することになる。従って、図1に示したバーコードスキャナ1におけるレーザビームの場合と同じような、光の拡がりに起因するノイズ(ボケ)も発生する。
【0054】
従って、正確なデコードのためには、デコード処理の前に、撮像で得られた画像データからこれらのノイズを除去することが好ましい。
コード記号上の各点からの反射光(u(t)に相当)により形成される像をCMOS212により撮像して画像データ(y(t)に相当)を得る際にノイズが混入する過程については、図3と同様に表現することができる(ただし2次元で考える必要がある)。
【0055】
従って、CMOS212により撮像して得られた画像データからノイズを取り除くためのウィーナの逆フィルタは、一次元の場合について示した式(2)を2次元に拡張した、以下の式(4)に示す空間周波数特性W(jω1,jω2)を有するフィルタとして作成することができる。ここで、ω1,ω2は2次元の各軸方向における空間周波数を示す。
【数7】
【0056】
以下に説明する、空間周波数特性W(jω1,jω2)を有するフィルタの作成方法が、この発明のデジタルフィルタの作成方法の実施形態である。
1次元の場合には、周波数特性W(jω)を求めるに際し、他の条件を考慮して特殊解を求めたが、2次元の場合には、実験データから劣化関数H(jω1,jω2)及び信号(図3におけるu(t)を2次元に拡張したu(t1,t2))とノイズ(図3におけるv(t)を2次元に拡張したv(t1,t2))のパワースペクトルの比を推定し、これらに基づいてW(jω)を導出することにした。
【0057】
このうち劣化関数H(jω1,jω2)については、点拡がり関数(PSF)と呼ばれるものであり、鋭いエッジを有する原画像をコードスキャナ200と同じ光学ヘッド部210のCMOS212によって撮像して得られたノイズ除去前の画像データから、以下の手順で推定できると考えられる。
【0058】
まず、図11に示すような鋭いエッジ(濃度が変化する点、図11で言えば黒部と白部の境界)を有する原画像を撮像した場合、画像データには、上述した各種ノイズにより、エッジ部に若干のボケが入ることになる。そして、撮像で得られた画像データにおける、図12(黒部はハッチングで示した)に示すようなエッジを跨ぐラインL上の各画素の画素値を、ラインL上の位置xの関数として表すと、図13に示すようなエッジ拡がり関数(ESF)を得ることができる。このとき、Lが1行又は1列の画素の並びと重なり、かつエッジと垂直に交わるように原画像の撮像を行うことが好ましい。
【0059】
そして、このエッジ拡がり関数をxで微分することにより、式(5)で示すように線拡がり関数(LSF)を得ることができる。
【数8】
【0060】
そして、LSFとPSFには式(6)で示す関係があるため、これを利用してPSFを推定することができる。
【数9】
【0061】
なお、LSFを求める際、単にESFをxで微分すると高周波成分が強調されてしまう。そこで本実施形態では、LSFの波形がガウス関数に近いと仮定して、式(7)に示すガウス関数に最小二乗法でフィッティングした。ここで、bはピークの高さ、cは平均、d2は分散である。
【数10】
【0062】
また、LSFがガウス関数の場合、PSFが対称形であると仮定すると、LSFを、そのガウス形状を対称軸の回りに回転させて得られる、式(8)に示す2次元に拡張したガウス関数が、式(6)の関係式を満たすPSFであると推定することができる。
【数11】
【0063】
これをフーリエ変換して空間周波数領域にして、劣化関数H(jω1,jω2)が式(9)に示すようなものであると推定することができる。
【数12】
【0064】
このように対称性を仮定して劣化関数を推定することにより、簡単な処理で劣化関数を求めることができると共に、推定された劣化関数に基づくフィルタ特性を、比較的簡単なものとすることができる。そしてこのことにより、さほど多くない次数のフィルタによっても、式(4)に従って求めた空間周波数特性を十分な精度で得られるフィルタ処理を行うことができる。2次元の画像データを処理する用途であれば、3次元画像を処理する場合などに比べて精度の要求レベルは低いので、このようにフィルタ次数の低減を図ることにより、読み取り精度をさほど犠牲にせずにコストダウンを図ることができる。
【0065】
次に、以上の推定手順を、データの取得法及び処理手順を交えてより具体的に説明する。
まず、推定のベースとなる画像データは,図11に示したような鋭いエッジを有する原画像を形成した部材を、コードスキャナ200の読取距離として想定される距離だけ離れた位置から、コードスキャナ200と同じ光学ヘッド部210のCMOS212によって撮像する。例えば、読取距離300mmの場合の撮像画像データから効果的にノイズを除去するためのフィルタを得たい場合には、推定のベースとなる画像データの撮像も、距離300mmから行う。なお、今回の撮像に用いた光学ヘッド部210の光学系は、焦点距離が120mmである(撮像距離が120mmの場合に読取対象物の像がちょうどCMOS212の受光面に結像する特性である)ので、300mmの距離で撮像すると、若干ボケた画像が得られる。
【0066】
そして、その画像データから、図12に示したようにエッジを跨ぐラインL上の各画素の画素値を取得して、ESFを求める。このとき、ランダムノイズの影響を抑えるため、同じ状況で時間をずらしながら撮像を行って複数枚の画像を取得し、各画像における画像データ値を加算平均することが好ましい。
【0067】
図13に、1枚の画像のみから取得したESFのグラフ(ESF1)と、20枚の画像における画像データの加算平均から求めたESFのグラフ(ESF2)を示す。(b)に示すのは、(a)のうちエッジ近傍を拡大したグラフである。
なお今回の撮像の条件では、ESF1とESF2に大きな差は見られず、加算平均してもほとんどノイズを除去することはできなかった。このことから、画像データに含まれるノイズには、ランダムノイズより固定ノイズの影響が大きいことが考えられる。
【0068】
このような状況でESF中のノイズを低減するためには、ラインLに平行な複数のラインについて画素値を取得し、それらを加算平均することが考えられる。そこで、連続する50ラインについて画素値を取得し、それらの加算平均からESF(ESF3)を求めた。なお、各ラインの画素値としては、20枚の画像における画像データの加算平均を用いている。
【0069】
図14に、ESF2とESF3の比較を示す。(b)に示すのは、図13と同様、(a)のうちエッジ近傍を拡大したグラフである。
このグラフから、複数ラインの画素値を平均することにより、ESFのノイズが減少することがわかる。またこのことから、画素毎の固定ノイズには相関がなく、複数ラインの画素値を平均することにより固定ノイズの影響を小さくすることができると言える。
このようにノイズの影響を低減したESF3が、逆フィルタのインパルス応答(及びその空間周波数特性)を決定する際に好適であり、ここではESF3に基づいて劣化関数H(jω1,jω2)の推定を行った。
【0070】
図15に、ESF3に基づいて式(5)により求めたLSFを近似したガウス関数のグラフを、図16に、そのガウス関数から式(8)及び式(9)により推定したPSF(劣化関数H(jω1,jω2))の空間周波数特性を示す。この図において、振幅値が大きい箇所がグラフの濃い部分で、振幅値が中程度の箇所がグラフの薄い部分で、振幅値が小さい箇所もグラフの濃い部分である。グラフ画像の濃度と右側の凡例(振幅値を示す)の濃度は対応している。
以上をまとめると、劣化関数H(jω1,jω2)の推定は、図17のフローチャートに示すステップS101乃至S106の手順により行うことができる。
【0071】
次に、信号とノイズのパワースペクトル比PV/PUの推定について説明する。
このパワースペクトル比も、劣化関数の場合と同様、図11に示したような原画像を形成した部材を、読取距離として想定される距離だけ離れた位置から撮像して得られる画像データを用いて推定することができる。
【0072】
まず、入力信号のパワースペクトルPU(ω1,ω2)については、原画像の信号が既知であるので、原画像の各位置の濃度を二次元ステップ関数として表したものを入力信号u(x, y)として、そのパワースペクトルを求める。
また、ノイズのパワースペクトルPV(ω1,ω2)については、撮像で得られた画像データ(劣化画像)の各画素の画素値を関数z(x, y)で表し、そのパワースペクトルPZ(ω1,ω2)と、上述の手法で求めた劣化関数H(jω1,jω2)とを用いて、以下の式(10)により求めることができる。
【数13】
【0073】
しかし、以上のように求めたPV(ω1,ω2)とPU(ω1,ω2)の比をパワースペクトル比PV(ω1,ω2)/PU(ω1,ω2)とすると、複雑な形状となってしまう。
そこで、この実施形態では、上述の手法で求めたPV(ω1,ω2)とPU(ω1,ω2)の比PV(ω1,ω2)/PU(ω1,ω2)について、ω1=0又はω2=0の断面を求め、これを最小二乗法で二次関数に近似し、この二次関数を対称性を仮定してω1,ω2=0の軸を中心に回転させたものを、パワースペクトル比PV/PUの最終的な推定結果として採用した。
図18に、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を、二次関数で最小二乗法を用いて近似した例を示す。
【0074】
以上の手法で推定した劣化関数H(jω1,jω2)及びパワースペクトル比PV(ω1,ω2)/PU(ω1,ω2)に基づき、式(4)から、フィルタ処理部224において読取画像データに対して行うフィルタ処理の空間周波数特性を決定することができる。
図19に、図13及び図14に示したESFを用いて求めた、読取距離300mmの場合に好適なインパルス応答を有するウィーナの逆フィルタの空間周波数特性を示す。この図においても、グラフ画像の濃度については図16と同様である。
【0075】
このようにして望ましい空間周波数特性が得られたら、空間周波数特性を空間領域に変換し、フィルタ処理を行うハードウェアの性能に合わせ、その空間周波数特性をなるべく精度よく得られるような、適当な次数のデジタルフィルタのパラメータを決定すればよい。この際には、空間周波数特性を単純に空間領域に変換する場合に比べ、次数を大幅に削ることになる。しかし、フィルタ処理の空間周波数特性のうち、フィルタの特性に大きく影響する中心のピークから1つめの谷を含む範囲でインパルス応答を設計することにより、次数を大きく減らしつつ、最低限必要な周波数特性を維持することができる。
発明者らは、読取距離300mmの条件では、64次のデジタルフィルタを用いた場合に、そのフィルタ処理により、CMOS212で撮像した画像データのコントラストを改善できることを確認した。
【0076】
図20に、図19に示した空間周波数特性を有する逆フィルタを、空間領域に変換して64次のデジタルフィルタとして実現した場合の逆フィルタのインパルス応答を示す。
また、図21乃至図23に、コード記号の撮像で得た画像データを図20に示したデジタルフィルタによりフィルタ処理した場合のコントラスト向上の例を示す。
【0077】
図21(a)に示すのが、CMOS212による撮像で得られたフィルタ処理前の画像、同(b)に示すのが、フィルタ処理後の画像である。一見して、フィルタ処理によりボケが低減され、コントラストが向上していることがわかる。
図22に、図21に示した画像における横1ライン分の画素値を示す。(a)がフィルタ処理前、(b)がフィルタ処理後の値である。図23には、同様に縦1ライン分の画素値を示す。
これらのグラフからも、フィルタ処理により画像のコントラストが向上し、かつノイズが低減されていることがわかる。
【0078】
参考のため、図24に、最適な読取距離である120mmで撮像したコード記号の画像(フィルタ処理前)を示す。この距離ではフィルタ処理を行わなくても高いコントラストの画像を得ることができるが、図21(b)に示したフィルタ処理後の画像は、(a)に示したフィルタ処理前の画像に比べ、理想的な距離で撮像した画像に近いものになっていることがわかる。
従って、以上説明してきたフィルタ処理を行うことにより、焦点距離よりも遠方で読取を行う場合に得られる画像のコントラストを向上させ、このことによりコード記号の読取精度を向上させることができると言える。
【0079】
また、図25乃至図28に、焦点距離よりも近方の、読取距離30mmの場合に好適な逆フィルタを上述と同じ手法で作成し、コード記号の撮像で得た画像データに適用した例を示す。
図25に示すのは、読取距離30mmで図11に示した原画像を形成した部材を撮像して得られる画像データから求めたLSFを近似したガウス関数である。図15に示した300mmの場合のものよりも、半値幅が広くなっている。
【0080】
図26(a)に示すのが、CMOS212による撮像で得られたフィルタ処理前の画像、同(b)に示すのが、フィルタ処理後の画像である。30mmの場合には、300mmの場合に比較して、フィルタ処理前の状態でコントラストが高いこともあり、目立ったコントラストの向上は見られない。
図27に、図26に示した画像における横1ライン分の画素値を示す。(a)がフィルタ処理前、(b)がフィルタ処理後の値である。図28には、同様に縦1ライン分の画素値を示す。
【0081】
これらのグラフからは、フィルタ処理前後で画像のコントラストにあまり変化はないが、フィルタ処理によりノイズを大きく低減できていることがわかる。
従って、以上説明してきたフィルタ処理を行うことにより、焦点距離よりも近方で読取を行う場合に得られる画像のノイズを低減させ、このことによりコード記号の読取精度を向上させることができると言える。
【0082】
次に、以上説明してきたフィルタ処理を適用したコードスキャナの実施形態について説明する。
図29に、このコードスキャナの概略ハードウェア構成を示す。なお、この図において、図10に示したコードスキャナと対応する箇所には同じ符号を付し、図10と同じ部分については説明を省略する。
図29に示したコードスキャナ200は、フィルタ処理部224に複数のフィルタ224aを設け、ユーザによる操作部240の操作に応じて、フィルタ処理に使用するフィルタを選択できるようにした点が、図10に示したコードスキャナと異なる。
【0083】
ここまでに説明してきた通り、フィルタ処理のパラメータは、読み取り距離毎に求めることができる。そこで、この実施形態のコードスキャナ200においては、複数の読み取り距離の各々に対応させて、CMOS212がその距離だけ離れた位置の読取対象物を撮像して得た画像をその読取対象物の理想的な像に近づける処理を行うための、ここまで説明してきたウィーナの逆フィルタ処理のパラメータを用意してある。
【0084】
このパラメータは、RAM226あるいはROM227に記憶させておくことができるが、フィルタ処理部224は、そのパラメータを選択的に読み出してフィルタ処理部224に設定することにより複数のフィルタ224aの処理を選択的に実行可能である。
複数のフィルタ224aとしては、例えば、近方(30mm)と遠方(300mm)に対応したものを用意したり、近方(30mm)と中距離(200mm)と遠方(300mm)に対応したものを用意したりすることが考えられる。
【0085】
そして、例えばユーザに読取対象物までの距離を操作部240に設けた適当なスイッチにより選択させ、そのスイッチの操作をデコーダ部220に設けた操作部I/F(インタフェース)231を介してフィルタ選択部230が検出し、その操作内容に応じて、複数のフィルタ224aのうち読取対象物までの距離と対応するフィルタを、フィルタ処理部224に選択させる。
【0086】
これに応じて、フィルタ処理部224は、選択したフィルタのパラメータを読み出し、CMOS212の撮像により得られた画像データに対してそのパラメータに応じたフィルタ処理を行って、そのフィルタ処理後の画像データをデコード部225でのデコードに供する。
このことにより、読取対象物までの距離に応じて画像データからノイズを取り除くと共にコントラストを向上させ、コード記号の読み取り精度を向上させることができる。
【0087】
なお、読取距離に応じた複数のフィルタは、それぞれ別々のフィルタ回路により実現し、スイッチの切り替えなどにより適当なフィルタを選択できるようにしてもよい。
また、焦点距離付近の、フィルタなしでも高いコントラストが得られる読取距離においては、フィルタ処理を行わなくてもよい。
【0088】
次に、以上説明してきたフィルタ処理を適用したコードスキャナの別の実施形態について説明する。
図30に、このコードスキャナの概略ハードウェア構成を示す。なお、この図においても、図10又は図29に示したコードスキャナと対応する箇所には同じ符号を付し、図10又は図29と同じ部分については説明を省略する。
図30に示したコードスキャナ200は、読取対象物までの距離を測定する距離測定手段を設け、距離測定手段が測定した距離に基づいて、その距離で撮像した画像の処理に適したフィルタを選択できるようにした点が、図29に示したコードスキャナと異なる。
【0089】
このコードスキャナ200に設けた距離測定手段は、レーザ光源214から読取対象物に対してレーザビームを照射し、読取対象物からの反射光のスポットをCMOS212で検出して、そのスポットが、CMOS212の撮像エリアの中央からどの程度離れた位置に入射したかに基づき、読取対象物までの距離を算出するものである。
この場合、図31(a)に示すように、読取対象物が近くにある場合にはスポットSが撮像した画像中の横軸方向の端部に現れ、遠くにある場合には(c)に示すように中央付近に現れる。
【0090】
読取対象物(物体)までの距離の算出方法は、より具体的には、以下のものを採用できる。
図32は、読取対象物までの距離の算出に必要なパラメータの説明図である。
読取対象物までの距離xについては、同図中の次のパラメータと下記式(11)とに基づいて算出することができる。
x:撮像光学系のレンズ211の主点Pから読取対象物までの距離
a:CMOS212のイメージエリアに平行な向きに測った場合の撮像光学系レンズの主点Pからレーザ光214a(の中心)までの距離
θ:レンズ211の主点Pからレーザ光214aの方向に広がる、視野角θ0の1/2の角度
N:レンズ211の主点Pからレーザ光214aに向かう方向に数えた場合のCMOS212におけるピクセル数の1/2(図31参照)
n:CMOS212における中心位置(レンズ211の主点Pと対応する位置)から反射光214bのスポットの中心位置までのピクセル数(図5参照)
φ:レーザ光214aと撮像光学系レンズの光軸qとがなす角
【0091】
【数14】
なお、図6で読取対象物の上側に示したレーザ光214aは、角φについて説明するためのものである。
【0092】
また、CMOS212が撮像した画像を解析して読取対象物までの距離を求める処理は、距離測定部232が行う。
そして、ヘッド制御部223は、コード記号の読み取りに先立ってレーザ光源214を点灯させる。距離測定部232は、レーザビームの反射光により読取対象物までの距離を測定し、その結果をフィルタ選択部230に渡す。そして、フィルタ選択部230が、複数のフィルタ224aのうち、距離測定部232が測定した距離で撮像した画像の処理に適した1つを、フィルタ処理部224に選択させる。
なお、読取対象物までの距離と、使用するフィルタとの対応関係は、フィルタ選択部230が参照可能な不揮発性記憶手段に予め記憶させておく。
そして、以上のフィルタ選択の完了後、ヘッド制御部223は、レーザ光源214を消灯すると共に必要に応じてLED213を点灯させ、CMOS212にコード記号のデコード用の画像を撮像させる。
このようにすれば、ユーザの手を煩わすことなく、適切なフィルタ処理を用いた読取精度向上の効果を得ることができる。
【0093】
なお、上述のいずれの構成を採る場合も、画像データに対してフィルタ処理を行う場合、画像データからコード記号の部分を切り出した上で、コード記号の箇所についてのみフィルタ処理を行えばよい。
また、コード記号をデコードする場合、コード記号の規格によっては、コード記号に含まれる所定の位置決めマークに従ってコード記号の画像を水平又は垂直方向にスライスしたり、ブロックに分割したりしてからデコード処理に供することも行われる。
【0094】
例えば、特開2005−25417号公報に記載の手法では、デコード処理の際に、撮像で得た1画面分の画像データを、2ライン×32画素のブロックに分割し、周辺のブロックのコントラストに基づき、各ブロックの画像データを2値化する際の閾値を設定することが記載されている。
このような場合、スライスや分割を行った後の画像データに対してスライスや分割した単位でフィルタ処理を行ってもよい。
【0095】
また、スライスやブロック単位でデコード処理を行う場合については、まずフィルタ処理前の画像データを用いてデコード処理を行い、デコードに失敗した箇所についてのみフィルタ処理を行うようにすることも考えられる。このようにすれば、画像データ全体に対してフィルタ処理を行う場合よりも処理負荷を低減できるため、その分次数の大きなフィルタを採用し、インパルス応答の精度を高めてより高いコントラストを得られるようにすることができる。
【0096】
また、多数の読取距離に応じてきめ細かくフィルタを用意しようとする場合、全ての読取距離について実測のESFに基づきフィルタパラメータを求めることは必須ではない。
図33に、複数の読取距離について実測のESFに基づき式(8)に従って求めたPSFの半値幅FWHMと、読取距離との関係を示す。この半値幅は空間分解能に相当し、半値幅が小さいほど分解能が高い。
【0097】
図33のグラフから、焦点距離よりも近い読取距離の場合、読取距離が減少するにつれ、半値幅が二次関数的に増加し、焦点距離よりも遠い読取距離の場合、読取距離が増加するにつれ半値幅が一次関数的にゆるやかに増加することがわかる。
従って、これらの関係から、読取距離と半値幅の関係を二次関数や一次関数で近似し、実測値のない読取距離に対応するPSFの半値幅を推定することができる。
【0098】
そして、この半値幅FWHMと、式(8)におけるdとの間には、次の式(12)に示す関係があり、これに基づいてFWHMから分散d2を求めることができる。
【数15】
【0099】
また、式(8)におけるピークの高さbは、LSFの総和(xで−∞から+∞まで積分した値)が定数(例えば1)になるように規格化するようにすれば、規格化前の値を推定する必要がない。平均cについては、値が変わってもLSFがx軸上を平行移動するだけでLSFの周波数特性(振幅特性)に影響を与えず、ひいてはPSFの空間周波数特性に影響を与えない。従って、cも推定する必要がない。
【0100】
従って、読取距離から半値幅FWHMが推定できれば、式(12)に基づいてd2を求め、cを適当に定めると共にLSFの総和を規格化してbを定めることにより、PSFを、ひいては劣化関数を推定することができる。
【0101】
また、パワースペクトル比についても、図18に示したような、PV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面を近似して得られる二次関数の係数は、読取距離に依存すると考えられる。
そして、複数の読取距離についてこの二次関数の係数を求め、その結果に基づき、読取距離と係数との関係を一次関数や二次関数等の適当な関数で近似することにより、上記の半値幅の場合と同様、読取距離に基づき、その読取距離におけるPV(ω1,ω2)/PU(ω1,ω2)のω2=0の断面、ひいてはこれを回転して得られるパワースペクトル比を推定することができる。
【0102】
従って、これらの推定値を用いて、任意の読取距離について、対応する逆フィルタの空間周波数特性を推定し、それに基づいてデジタルフィルタのパラメータを求めることができる。コードスキャナ200に十分な演算能力を備えるプロセッサを搭載していれば、距離測定手段が測定した読取対象物までの距離に基づき、読取画像に適用するフィルタのパラメータを、動的に生成することも考えられる。
【0103】
以上で実施形態の説明を終了するが、装置の構成や具体的なフィルタの特性、フィルタの選択手法等が上述の実施形態で説明したものに限られないことはもちろんである。
また、この発明の光学的情報読取装置は、据え置き型の装置としても、手持ち型の装置としても、構成することができる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【0104】
この発明による光学的情報読取装置と光学的情報読取方法は、流通,郵便,医療,化学検査,イベント会場などの広範な分野で、物品,書類,材料,被検体,その他各種の物の認識のために、物品や商品に貼付されたコード記号の情報を読み取る光学情報読取装置、特に2次元コードを読み取るスキャナのような光学情報読取装置及びこのような光学的情報読取装置を用いた情報の読み取りに好適である。
また、この発明のデジタルフィルタの作成方法は、このような光学情報読取装置及び光学的情報読取方法において使用するデジタルフィルタの作成に好適である。
【符号の説明】
【0105】
1…バーコードスキャナ、11…レーザ光源、12…集光レンズ、13…開口絞り、14…スキャニングミラー、15…結像レンズ、16…光電変換器、20…処理回路、21…I/V変換部、22…プリアンプ、23…フィルタ処理部、24…二値化回路、30…読取対象物、31…バーコード記号、41…劣化系、42…計測系、43…処理系、51,52…フィルタ、200…コードスキャナ、210…光学ヘッド部、211…レンズ、212…CMOS、213…LED、214…レーザ光源、220…デコーダ部、221…第1I/O、222…ASIC、223…ヘッド制御部、224…フィルタ処理部、224a…フィルタ、225…デコード部、226…RAM、227…ROM、228…第2I/O、230…フィルタ選択部、231…操作部I/F、232…距離測定部、240…操作部
【特許請求の範囲】
【請求項1】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
読取対象物までの距離を測定する距離測定手段と、
該読取対象物の画像を撮像する撮像手段と、
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、
前記距離測定手段が測定した距離に基づいて、前記複数のフィルタ手段のうち該距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、
前記撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項2】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
該読取対象物の画像を撮像する撮像手段と、
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、
ユーザの操作に従って前記複数のフィルタ手段のうち1つを選択するフィルタ選択手段と、
前記撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項3】
請求項1又は2に記載の光学的情報読取装置であって、
前記各フィルタ手段は、前記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段であることを特徴とする光学的情報読取装置。
【請求項4】
請求項3に記載の光学的情報読取装置であって、
前記点拡がり関数は、
前記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数であることを特徴とする光学的情報読取装置。
【請求項5】
請求項1乃至4のいずれか一項に記載の光学的情報読取装置であって、
前記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数1におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであることを特徴とする光学的情報読取装置。
【数1】
【請求項6】
読取対象物までの距離を測定する距離測定工程と、
前記距離測定工程で測定した距離に基づいて、複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、前記距離測定工程で測定した距離で撮像した画像の処理に適した1つを選択するフィルタ選択工程と、
撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項7】
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、ユーザの操作に従って1つを選択するフィルタ選択工程と、
撮像手段によって撮像した読取対象物の画像を、前記フィルタ選択工程で選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項8】
請求項6又は7に記載の光学的情報読取方法であって、
前記各フィルタ手段は、前記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段であることを特徴とする光学的情報読取方法。
【請求項9】
請求項8に記載の光学的情報読取方法であって、
前記点拡がり関数は、
前記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数であることを特徴とする光学的情報読取方法。
【請求項10】
請求項6乃至9のいずれか一項に記載の光学的情報読取方法であって、
前記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数2におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであることを特徴とする光学的情報読取方法。
【数2】
【請求項11】
H(jω1,jω2)を点拡がり関数、Pu(ω1,ω2)を入力信号成分のパワースペクトル、Pv(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数3におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタの作成方法であって、
【数3】
前記点拡がり関数を、撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数を、空間周波数領域に変換することにより得ることを特徴とするデジタルフィルタの作成方法。
【請求項1】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
読取対象物までの距離を測定する距離測定手段と、
該読取対象物の画像を撮像する撮像手段と、
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、
前記距離測定手段が測定した距離に基づいて、前記複数のフィルタ手段のうち該距離で撮像した画像の処理に適した1つを選択するフィルタ選択手段と、
前記撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項2】
光反射率が周囲と異なる記号により示される情報を読み取る光学的情報読取装置であって、
該読取対象物の画像を撮像する撮像手段と、
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段と、
ユーザの操作に従って前記複数のフィルタ手段のうち1つを選択するフィルタ選択手段と、
前記撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード手段とを有することを特徴とする光学的情報読取装置。
【請求項3】
請求項1又は2に記載の光学的情報読取装置であって、
前記各フィルタ手段は、前記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段であることを特徴とする光学的情報読取装置。
【請求項4】
請求項3に記載の光学的情報読取装置であって、
前記点拡がり関数は、
前記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数であることを特徴とする光学的情報読取装置。
【請求項5】
請求項1乃至4のいずれか一項に記載の光学的情報読取装置であって、
前記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数1におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであることを特徴とする光学的情報読取装置。
【数1】
【請求項6】
読取対象物までの距離を測定する距離測定工程と、
前記距離測定工程で測定した距離に基づいて、複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、前記距離測定工程で測定した距離で撮像した画像の処理に適した1つを選択するフィルタ選択工程と、
撮像手段によって撮像した前記読取対象物の画像を、前記フィルタ選択手段が選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項7】
複数の距離の各々に対応したフィルタ手段であって、前記撮像手段が該距離だけ離れた位置の読取対象物を撮像して得た画像を前記読取対象物の理想的な像に近づける処理を行う複数のフィルタ手段から、ユーザの操作に従って1つを選択するフィルタ選択工程と、
撮像手段によって撮像した読取対象物の画像を、前記フィルタ選択工程で選択したフィルタ手段によって処理し、該処理後の画像を解析して、該読取対象物上に配置された、光反射率が周囲と異なる記号により示される情報をデコードするデコード工程とを有することを特徴とする光学的情報読取方法。
【請求項8】
請求項6又は7に記載の光学的情報読取方法であって、
前記各フィルタ手段は、前記撮像手段が所定距離だけ離れた対象を撮像した場合の(i)点拡がり関数及び(ii)読取画像データにおける入力信号成分とノイズ成分とのパワースペクトル比に基づいて求めたパラメータに従ったウィーナフィルタ処理を行う手段であることを特徴とする光学的情報読取方法。
【請求項9】
請求項8に記載の光学的情報読取方法であって、
前記点拡がり関数は、
前記撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数であることを特徴とする光学的情報読取方法。
【請求項10】
請求項6乃至9のいずれか一項に記載の光学的情報読取方法であって、
前記各フィルタ手段が、H(jω1,jω2)を点拡がり関数、PU(ω1,ω2)を入力信号成分のパワースペクトル、PV(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数2におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタであることを特徴とする光学的情報読取方法。
【数2】
【請求項11】
H(jω1,jω2)を点拡がり関数、Pu(ω1,ω2)を入力信号成分のパワースペクトル、Pv(ω1,ω2)をノイズ成分のパワースペクトルとして、インパルス応答の空間周波数特性が数3におけるW(jω1,jω2)として得られる特性を有するデジタルフィルタの作成方法であって、
【数3】
前記点拡がり関数を、撮像手段が所定距離だけ離れた位置の基準部材を撮像して得たエッジ画像のうち、エッジを跨ぐ線上に位置する各画素の画素値を、画素位置の関数と見て画素位置で微分し、該微分によって得られた線拡がり関数をガウス関数にフィッティングし、該フィッティングしたガウス関数のガウス形状を対称軸を中心に回転させて得られる関数を、空間周波数領域に変換することにより得ることを特徴とするデジタルフィルタの作成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【公開番号】特開2011−159178(P2011−159178A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−21578(P2010−21578)
【出願日】平成22年2月2日(2010.2.2)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 産業計測制御研究会、社団法人電気学会主催、平成21年12月2日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(504133110)国立大学法人電気通信大学 (383)
【出願人】(391062872)株式会社オプトエレクトロニクス (70)
【Fターム(参考)】
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願日】平成22年2月2日(2010.2.2)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 産業計測制御研究会、社団法人電気学会主催、平成21年12月2日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(504133110)国立大学法人電気通信大学 (383)
【出願人】(391062872)株式会社オプトエレクトロニクス (70)
【Fターム(参考)】
[ Back to top ]