本発明の一実施形態について図1〜図24に基づいて説明すると以下の通りである。
〔システムの概要について〕
まず、本実施形態の検査システム1の概要について図2に基づいて説明する。図2は、本実施形態の検査システム1の概要を示す側面図である。検査システム1は、図示のように、撮像装置2、画像処理装置3、駆動装置4、フレーム5、及び保持部材6を備える構成である。
撮像装置2は、撮像対象7の画像を撮像し、撮像した画像を撮像画像データとして画像処理装置3に送出する。撮像装置2としては、CCD素子を備えたエリアセンサやラインセンサ等を適用することができる。撮像装置2は画像処理装置3と配線接続されており、また、撮像装置2は駆動装置4を介してフレーム5に固定されている。
画像処理装置3は、撮像装置2から受け取った撮像画像データを超解像処理し、超解像画像を出力する。また、画像処理装置3は、撮像装置2及び駆動装置4の動作の制御を行う。画像処理装置3の詳細については後述する。
フレーム5は、図示していないが、同図のY軸方向に奥行きを有する長方形状の構造である。駆動装置4は、フレーム5上を移動可能な構成となっており、駆動装置4をフレーム5上で移動させることによって、撮像対象7に対する撮像装置2の撮像位置を変えることができる。
保持部材6は、撮像対象7を保持・固定するための部材である。本実施形態では、撮像装置2をフレーム5上で駆動させることによって撮像対象7を撮像する態様を示すが、撮像装置2を固定し、保持部材6を駆動させることによって撮像装置2に対する撮像対象7の位置を変化させることによって撮像対象7を撮像してもよい。
撮像対象7は、本実施形態の検査システム1の検査対象となる物体である。撮像対象7は、その検査対象となる面が撮像装置2と対向するように保持部材6上に固定されている。
撮像対象7は、被検査面、すなわち撮像装置2で撮像される箇所が繰り返しパターンを有していることが好ましい。なお、繰り返しパターンとは、一定の周期で同一のパターンが繰り返すパターンである。
例えば、液晶表示パネルでは、その表示面に開口部が等間隔で規則的に配列しており、各開口部にはそれぞれRGBいずれかのカラーフィルタが付されてRGBの画素となっている。そして、RGBの各画素は、一定の周期、例えばRGB−RGB−RGB…の順で繰り返している。本実施形態では、撮像対象7が点灯状態の液晶表示パネルである場合を想定している。
本実施形態の検査システム1では、以上の構成により、画像処理装置3の制御に基づいて撮像装置2及び駆動装置4が動作し、撮像装置2はフレーム5上を移動しながら撮像対象7を撮像する。そして、撮像装置2が撮像した撮像画像データは、画像処理装置3に送られて超解像処理が施される。
〔画像処理装置の概要について〕
次に、画像処理装置3の概要について図1に基づいて説明する。図1は、画像処理装置3の要部構成を示すブロック図である。図示のように、画像処理装置3は、記憶部11、設計データずれ検出部(設計データずれ検出手段、設計参照画像生成手段)12、撮像画像ずれ検出部(撮像画像ずれ検出手段)13、第1関数決定部(評価関数変更手段)14、超解像処理部15、入力部16、出力部17、及び外部装置制御部18を備えている。
記憶部11は、設計データを格納している設計データ保存部19、撮像装置2から送られる撮像画像データを格納する撮像画像保存部20、超解像処理中に生成される高解像度画像データを格納する高解像度画像保存部21、及び超解像処理の結果画像である超解像画像データを格納する超解像画像格納部22を備えている。
ここで、設計データ保存部19に格納されている設計データについて図21〜図23に基づいて説明する。設計データとは、撮像対象7の形状、撮像対象7の各部のサイズ、撮像対象7の各部の画素値や画素値の比等を示すデータである。検査システム1では、予め撮像対象7を検査することがわかっているので、撮像対象7の各部のサイズ、撮像対象7の各部の画素値や画素値の比等を検査前に取得し、設計データとして格納しておくことができる。
ここでは、撮像対象7は液晶表示パネルであることを想定しているので、液晶表示パネルの開口部及びブラックマトリクス部のサイズや、開口部の画素値または画素値の比等を設計データとして用いることができる。
設計データの一例を図21に基づいて説明する。図21(a)は撮像対象7の部分平面図であり、図21(b)は図21(a)において矢印w1〜w6及びh1〜h2で示す箇所のサイズ及び画素値を示す設計データの一例を示す図である。
図21(a)に示すように、撮像対象7上には、複数の開口部がマトリクス状に配列しており、開口部と開口部との間はブラックマトリクス部となっている。例えば、図示のように、開口部91と開口部92との間はブラックマトリクス部95となっており、開口部91〜94で構成される開口部の列と、この列と隣接する開口部の列(同図で、開口部91〜94の下側に示されている開口部の列)との間はブラックマトリクス部98となっている。
設計データの一例である図21(b)は、図示のように、撮像対象7の開口部やブラックマトリクス部の幅(Width)、高さ(Height)、及び画素値(Brightness)を含むデータである。図21(b)では、図21(a)の矢印w1〜w6で示す箇所の幅及び画素値、h1〜h2で示す箇所の高さをそれぞれ示している。具体的には、図21(b)の「Width」の欄には、開口部91の幅、ブラックマトリクス部95の幅、開口部92の幅、…というように各部の幅が順番に格納されている。また、「Height」の欄には、開口部91〜94の高さ、ブラックマトリクス部98の高さが順番に格納されている。そして、「Brightness」の欄には、「Width」の欄に対応する箇所の画素値が格納されている。例えば、図21(b)のw1、すなわち開口部91の幅は15で画素値は33である。
図21(b)に示すデータによって、図21(a)に示す画像データを作成することができるので、設計データとしては図21(b)に示すデータを格納しておけばよい。また、図21(a)に示す画像データと図21(b)に示すデータとを対応付けたものを設計データとしてもよい。
なお、「Brightness」欄に、開口部やブラックマトリクス部の画素値の比を格納してもよい。また、設計データは、予め画素値や画素値の比を含まなくてもよい。この場合、例えば撮像画像データにおける開口部やブラックマトリクス部の画素値、あるいは画素値の比を求めてこれを図21(b)のテーブルにおける「Brightness」欄に格納すればよい。さらに、画像処理装置3では、画素値や画素値の比を用いずに超解像処理を行うこともできる。この場合、図21(b)における「Brightness」欄を省略することができる。
続いて、設計データの他の例であるサンプル画像データについて図22に基づいて説明する。撮像対象7、あるいは撮像対象7と同様のパターンを有するサンプルを撮像して得られたサンプル画像データを設計データとして用いることができる。
図22(a)は、サンプル画像データの一例を示す図である。また、図22(b)は、図22(a)の破線で囲まれる部分のデータ構造を示す図である。図22(b)に示すように、サンプル画像データは、画像中に含まれる各画素の画素値を示すデータであり、この例では開口部の画素値が「1」であり、ブラックマトリクス部の画素値が「0」である。
図22の例におけるサンプル画像データは、全ての開口部の画素値が「1」となっており、撮像対象7の画素値や画素値の比に関するデータを含まないが、画素値や画素値の比に関するデータを含むサンプル画像データを用いてもよい。
また、設計データとして、撮像対象7における同色の画素群の位置を示すデータを格納していてもよい。例えば、液晶表示パネルでは、同色のカラーフィルタを備えた開口部が同色の画素群となる。
撮像対象7における同色の画素群の位置を示すデータを含む設計データの例について、図23に基づいて説明する。図23において、d1はブラックマトリクス部の左右方向の間隔を示し、d2はブラックマトリクス部の上下方向の間隔を示している。また、d3は同色画素の上下方向の間隔を示し、d4は同色画素の左右方向の間隔を示している。ブラックマトリクス部は、全て同色であるから、図23におけるd1〜d4は全て同色画素群間の距離を示していることになる。
詳細については後述するが、画像処理装置3では、以上のような設計データと、撮像画像データとの位置ずれ及びサイズの差を検出する。そして、位置及びサイズが撮像画像データに合うように修正した設計データを利用することによって高精度な超解像処理を行うことを可能にしている。
なお、図21(a)、図22(a)、図23に示すような画像データは、撮像対象7、すなわち液晶表示パネルの形状のパターンを示すものであるから、以下ではこれをパネルパターンと称することがある。また、設計データは、少なくとも撮像対象7の被撮像面の形状を示すデータであればよく、上述の例に限られない。
ここで、画像処理装置3の概要説明に戻る。設計データずれ検出部12は、撮像画像データと設計データとの位置ずれ、サイズの差を検出した検出結果と、設計データとを第1関数決定部14に送出する。また、設計データずれ検出部12は、設計参照画像データを生成し、生成した設計参照画像データを撮像画像ずれ検出部13及び第1関数決定部14に送出する。
撮像画像ずれ検出部13は、上記設計参照画像データを用いて基準撮像画像データに対するそれ以外の撮像画像データのずれを検出し、検出結果を超解像処理部15に送出する。なお、基準撮像画像データ及び設計参照画像データについては後述する。
第1関数決定部14は、設計データずれ検出部12が検出した、撮像画像データと設計データとのずれに基づいて、超解像処理に用いる高解像度化評価関数を変更するための関数(Epat)を定式化する。そして、第1関数決定部14は、この関数を超解像処理部15に送出する。
超解像処理部15は、第1関数決定部14から送られる関数(Epat)を用いて高解像度化評価関数を変更し、変更された高解像度化評価関数を用いて超解像処理を行う。超解像処理では、上記撮像画像データに対応する高解像度画像データを上記高解像度化評価関数で評価、更新することにより超解像画像を生成する。そして、超解像処理部15は、超解像処理によって得られた超解像画像データを記憶部11の超解像画像格納部22に格納する。
入力部16は、記憶部11内の各種データを出力部17に出力させたり、記憶部11内の各種データの追加・削除・編集等を行ったり、画像処理装置3が備える各構成の動作を入力指示によって制御したりするためのものである。
例えば、検査システム1のユーザは、入力部16を操作することによって、超解像画像保存部22に格納されている超解像画像データを出力したり、設計データ保存部19に格納されている設計データを変更したりすることができる。また、例えば、第1関数決定部14に、撮像画像データと設計データとのずれを入力し、関数(Epat)を生成させることもできる。入力部16は、キーボードやタッチパネル、入力ボタン等で構成することができる。
出力部17は、記憶部11に格納されている各種データを出力する。具体的には、出力部17は液晶表示パネル、プリンタ等で構成することができる。そして、外部装置制御部18は、撮像装置2の撮像タイミングの制御、及び駆動装置4の駆動の制御を行う。具体的には、外部装置制御部18の指示に従って駆動装置4がフレーム5上の任意の位置に移動し、外部装置制御部18の指示するタイミングで撮像装置2が撮像を行う。
〔超解像画像が生成されるまでの処理の流れについて〕
以上の構成を備える画像処理装置3における、超解像画像生成処理の流れを図3に基づいて説明する。図3は、超解像画像生成処理の流れを示すフローチャートである。なお、ここでは、超解像画像生成処理のアウトラインのみを説明し、超解像画像生成処理の各ステップの詳細については後述する。
まず、外部装置制御部18は、撮像装置2及び駆動装置4を動作させ、撮像対象7を撮像させる。撮像装置2が撮像した撮像対象7の画像データである撮像画像データは、画像処理装置3に送られ、画像処理装置3の撮像画像保存部20に記憶される(S1)。
なお、ここでは、撮像対象7を複数回撮像して複数の撮像画像データを得る。具体的には、まず、適当な位置で撮像対象7を撮像する。次に、駆動装置4によって撮像装置2をフレーム5上で所定の距離だけ移動させた後、再び撮像装置2で撮像対象7を撮像する。これを所定数の撮像画像データが得られるまで繰り返す。
このとき、駆動装置4による移動距離は予め決めた距離であっても、任意の距離であってもよい。移動距離が予め決められている場合には、得られた撮像画像データ間のずれ量はこの移動距離に基づいて求めることができるので、撮像画像ずれ検出部13を省略することができる。また、複数の撮像装置2を用いて撮像対象7の撮像を行ってもよい。この場合、1台の撮像装置2を用いる場合に比べて撮像時間を短縮することができる。
続いて、設計データずれ検出部12は、撮像画像保存部20から上記複数の撮像画像データの中から選択した基準撮像画像データを読み出すと共に、設計データ保存部19から設計データを読み出す。そして、読み出した設計データと基準撮像画像データとのずれを検出し、検出結果を第1関数決定部14に送出する(S2)。
次に、第1関数決定部14は、設計データずれ検出部12から送られる検出結果に基づいて、高解像度化評価関数を変更するための関数(Epat)を決定し、この関数を超解像処理部15に送出する(S3)。
そして、超解像処理部15は、第1関数決定部14から送られる関数(Epat)を拘束項として組み込んだ高解像度化評価関数を作成する。次に、超解像処理部15は、高解像度画像保存部21から読み出した高解像度画像データを上記高解像度化評価関数にて評価、更新し、予め定めた評価基準を満たした高解像度画像データを超解像画像データとする。そして、超解像処理部15は、生成した超解像画像データを超解像画像保存部22に格納すると共に、出力部17に出力させる(S4)。
以上のように、本実施形態の画像処理装置3では、撮像対象7の設計データと撮像画像データとのずれを考慮した拘束項が組み込まれた高解像度化評価関数を用いて超解像処理を行うので、実際の撮像画像に即した超解像画像を生成することができる。
〔設計データずれ検出処理について〕
続いて、図3に示した超解像画像生成処理の各ステップの詳細について説明する。まず、S2の設計データずれ検出処理の詳細について図4〜図7に基づいて説明する。
図4は、設計データずれ検出処理の一例を示すフローチャートである。図4に示すように、設計データずれ検出部12は、まず、撮像画像データの中から基準撮像画像データを決定する(S11)。
上述のように、超解像処理においては、撮像対象7の少しずつ、ずれた位置を撮像した撮像画像データを取得し、このずれ量に基づいて超解像処理を行う。基準撮像画像データを設定した場合、基準撮像画像データとその他の撮像画像データとのずれ量に基づいて超解像処理を行うことになるので、生成される超解像画像は、基準撮像画像データを高解像度化したものとなる。
なお、複数の撮像画像データの中から基準撮像画像データを選択する方法は、特に限定されないが、例えば、撮像画像データのうち、撮像時間が最初のものを基準撮像画像データとして選択すればよい。また、例えば、全撮像画像データのうち、撮像対象7の重心に最も近い位置を撮像したものを基準撮像画像データとして選択してもよい。なお、基準撮像画像データを設定しない場合は、設計データを基準として複数の撮像画像データ間のずれを求めてもよい。
続いて、設計データずれ検出部12は、設計データ及び上記基準撮像画像データを周波数領域のデータに変換する(S12)。なお、周波数領域のデータへの変換にはフーリエ変換等を用いることができ、画像処理装置3における周波数領域のデータへの変換は、全てフーリエ変換によって行われる。
次に、設計データずれ検出部12は、設計データの周波数領域のデータと、基準撮像画像データの周波数領域のデータとを比較し、両者の位置ずれ及びサイズの差を求める(S13)。なお、ここで、「サイズ」は縮尺倍率を指す。
設計データは、撮像対象7の形状、サイズ、画素値の分布等を示すデータであるから、設計データと基準撮像画像データとは、位置ずれ及びサイズの差がなければ主要な周波数成分は同じになる。したがって、位置ずれ及びサイズの差は、例えば以下のようにして求めることができる。
すなわち、設計データを二値化し、その二値化データと、基準撮像画像データの周波数領域のデータとの相関値が最も高くなる位置及びサイズの差を計算することによって、設計データと基準撮像画像データとのずれを求めることができる。
そして、設計データずれ検出部12は、設計データに基づいて基準撮像画像データを修正した設計参照画像データを生成する(S14)。設計参照画像データとは、基準撮像画像データを高解像度化した高解像度画像データの各画素が有する画素値の推定値を持つデータである。設計参照画像データの具体的な生成方法については後述する。
設計データずれ検出部12は、上記設計参照画像データ、及び基準撮像画像データと設計データとのずれを示すデータを第1関数決定部14に送出する。また、設計データずれ検出部12は、上記設計参照画像データを撮像画像ずれ検出部13に送出する。
続いて、S14の設計参照画像生成処理の具体例について説明する。なお、ここでは撮像対象7は液晶表示パネルであり、設計データはパネルパターンとして与えられているものとする。
図5は、パネルパターンの一例を示す図である。パネルパターンは、撮像対象7、すなわち液晶表示パネルの画像データであり、図示のように、開口部31がマトリクス状に配列している。また、開口部31の行間はブラックマトリクス部32となっており、開口部31の列間はブラックマトリクス部33となっている。
また、ここでは、設計データは、このパネルパターンに加えて、図21(b)に示すような、開口部31の縦横のサイズ、ブラックマトリクス部32及びブラックマトリクス部33のそれぞれの幅を示すデータを含んでいることを想定している。
続いて、図5に示すパネルパターンのA−A’上の位置と、A−A’上の各位置における画素値との関係をグラフ化する。図6(a)は、図5に示すパネルパターンのA−A’上の位置と、各位置における画素値との関係を示す図である。図6(a)に示すように、画素値が高い高画素値領域と画素値が低い低画素値領域とが交互に、かつ規則的に存在している。
これら各領域は、それぞれ図5に示す開口部31及びブラックマトリクス部33に対応している(図5参照)。また、図6(a)において、高画素値領域の画素値がそれぞれ異なっている。これは、開口部31の画素値がそれぞれ異なること、すなわちA−A’上に位置する開口部31にはそれぞれ異なる色のカラーフィルタが付されていることを示している。
次に、図6(a)に示すパターンをフーリエ変換することにより、同図(b)に示すような周波数と強度との関係を示すグラフを得る。図示のように、低周波数側から順にf0、f1、f2のピークが現れる。
なお、ここでは、簡単のためパネルパターンの直線A−A’上のみについて周波数領域のデータに変換する例を示しているが、実際には、パネルパターンの全面に対して2次元フーリエ変換を行い、周波数領域のデータを取得する。2次元フーリエ変換を行う場合においても以下の処理工程は同じである。
全てのピークを設計参照画像データの生成に用いると計算が煩雑になるので、設計データずれ検出部12は、主要な周波数成分のみを抽出する。すなわち、フーリエ変換により出現したピークを強度について設定した閾値によって分類し、該閾値以上の強度をもつピークのみを抽出する。本実施形態では、図6(a)に示すように、強度の閾値をsと設定しており、ピークf0〜f2は、強度が閾値s以上となっている。ここでは、強度が閾値sに満たないピークは検出せず、強度が閾値s以上のピーク、すなわちピークf0〜f2のみを検出する。
なお、図6(a)にfnで示している周波数は、ナイキスト周波数である。ナイキスト周波数とは、撮像装置2の撮像性能、すなわち撮像装置2の撮像画素数やレンズ性能等によって決まる数値であり、撮像装置2が撮像可能な限界周波数を示す。撮像対象7がナイキスト周波数を越える周波数成分を含む場合、撮像装置2で撮像された撮像画像データを周波数領域に変換すると、ナイキスト周波数を超える周波数成分がこのナイキスト周波数で折り返されたデータとなる。
ここで、設計データずれ検出部12は、図4のS12で生成した、上記基準撮像画像データの周波数領域データを読み出し、設計データの周波数領域データと基準撮像画像データの周波数領域データとを比較する。
図7(a)は、基準撮像画像データの周波数領域データの一例を示す図である。図示のように、基準撮像画像データの周波数領域データでは、低周波数側から順にf0、f1、f2’のピークが現れている。このピークf2’は、ピークf2がナイキスト周波数fnを軸に低周波数領域へと折り返されて生じたピークである。このように、基準撮像画像データの周波数領域データでは、本来f2の位置に検出されるべきピークがf2’の位置に検出されてしまう。
これに対し、設計データは、撮像対象7の設計形状を示しているので、設計データの周波数領域データでは、図6(b)に示すように、ナイキスト周波数fn以上の周波数をもつピークがナイキスト周波数fnよりも高周波数領域に現れる。
したがって、設計データの周波数領域データと基準撮像画像データの周波数領域データとを比較することによって、基準撮像画像データの周波数領域データにおいて、ナイキスト周波数を軸に低周波数領域に折り返されたピークを特定することができる。
例えば、設計データの周波数領域データにおけるピーク間の間隔と、基準撮像画像データの周波数領域データにおけるピーク間の間隔とを比較することによって、折り返されたピークを特定することができ、また、折り返し回数も求めることができる。
このようにして、設計データずれ検出部12は、基準撮像画像データの周波数領域データにおいて、どのピークが折り返されているか、また、折り返し回数が何回であるかを求める。
次に、設計データずれ検出部12は、基準撮像画像データの周波数領域データを空間領域のデータに戻す。このとき、設計データずれ検出部12は、折り返された周波数成分については、その折り返し回数に応じてピーク位置を折り返した後、空間領域のデータに戻す。これにより、基準撮像画像データの折り返しが復元された画像データを得ることができる。この画像データを設計参照画像データと呼ぶ。
設計参照画像データは、例えば下記の数式1で表すことができる。
数式1において、Ff(f)は、各周波数成分の振幅及び位相を表す複素数である。振幅及び位相は、設計データの周波数領域データの各周波数成分と、基準撮像画像データの周波数領域データにおいて設計データの周波数領域データの各周波数成分と対応する周波数成分とを比較することによって求めることができる。
例えば、基準撮像画像データの周波数領域のデータにおいて、図7(a)のようにピークが検出されているとする。ここで、図7(a)におけるピークの位置と図6(b)におけるピークの位置とを比較することにより、ナイキスト周波数fn及び対応する各ピークの周波数を求め、各周波数成分の振幅及び位相を求めることができる。
また、数式1において、Wpeakは、設計データの周波数領域データにおいてピークとして検出した周波数成分の集合を指し、例えば図6(b)の例ではピークf0〜f2の集合を指す。そして、数式1において、fは周波数領域のデータにおけるピークの位置を示し、xは空間領域のデータにおける画素の位置を示している。すなわち、関数f(x)は、空間領域のデータ、すなわち画像データにおいて、位置xの画素の画素値を示す関数である。なお、jは複素数である(j2=−1)。
ここで、数式1におけるkは、折り返し回数を示す。折り返し回数は、ナイキスト周波数fnに対して折り返しの対象となる周波数成分がどの程度大きい周波数を有しているかによって決定される。具体的には、周波数がfn以上、3fn未満の周波数成分の折り返し回数は1回となり、3fn以上、5fn未満の周波数成分の折り返し回数は2回となる。例えば、図6(b)において、ピークf2の周波数は、fn以上、3fn未満と読み取れるので、このピークの折り返し回数は1となる。
この数式1に、基準撮像画像データの周波数領域データにおける各ピークを代入し、折り返されているピーク(図6(b)の例ではf2のピーク)については、所定量だけシフトさせて数式1に代入することにより、基準撮像画像データについて、折り返し周波数成分を復元した状態の画素値を求めることができる。なお、上記数式1のkに折り返し回数を代入することでピークをシフトさせることができる。すなわち、上記数式1のkに折り返し回数を代入することで、ナイキスト周波数fnを軸に低周波数領域へと折り返されていたピークを高周波数領域へと復元することができる。
折り返し周波数成分の復元方法について、更に詳しく説明する。まず、周波数領域データには、f=0を対称軸として負の周波数領域にもピークが存在する。具体的には、図6(c)に示すように、ピークf0〜f2に対してf0−〜f2−が存在する。図6(c)は、図6(b)の周波数領域データにおける負の周波数領域のピークを表示した周波数領域データの一例を示す図である。
負の周波数領域にもピークが存在する理由について説明する。まず、空間領域データを周波数領域データに変換するフーリエ変換では下記の数式2を用いる。数式2においてf(t)は、撮像画像の画素値であり、実数である。そのため、F(ω)とF(−ω)とはそれぞれ数式3のように表される。すなわち、それぞれ虚数部の符号が逆転したF(ω)とF(−ω)とがフーリエ変換によって生じるのである。
折り返し成分を復元する際にはこのことに留意する必要がある。すなわち、折り返し回数が偶数回の折り返し成分を復元する場合には、そのピークの周波数値そのままの値をFf(f)として用いればよい。これに対し、折り返し回数が奇数回の折り返し成分を復元する場合には、そのピークに対し、f=0を軸に対称な位置(負の周波数領域)のピークの値をFf(f)として用いればよい。例えば、図6(c)の例では、ピークf2は折り返し回数が1回であるから、Ff(f)の値は、ピークf2の値と虚数部の符号が逆転したピークf2−の値を用いればよい。
続いて、上記数式1の導出方法について説明する。まず、設計参照画像データのもとになる基準撮像画像データを数式として表す。基準撮像画像データは、例えば、下記の数式4で表すことができる。
ここで、関数f(x)のフーリエ変換F(ω)と、関数f(x)を離散化したf’(t)のフーリエ変換F’(ω)との間には下記の数式5に示す関係が成り立つ。
この数式から、F’(ω)は、F(ω)がωsの周期で繰り返すことが分かる。なお、ωsは、サンプリング周波数fsまたはナイキスト周波数fnを用いて、下記の数式6で表すことができる定数である。また、数式6では、ωsの1/2倍の値をωnと表している(ωs=2ωn)。
また、上記数式5におけるω0はf(x)の周期T0を用いて下記の数式7で表される定数である。
F’(ω)は、F(ω)がωsの周期で繰り返されたものであるから、F(ω)のパターンにωnを超える周波数成分が含まれていない場合、F(ω)のパターンとF(ω)がωsだけシフトされたパターンとは、重なり合うことがない。一方、F(ω)のパターンにωnを超える周波数成分が含まれている場合、F(ω)のパターンとF(ω)がωsだけシフトされたパターンとが重なり合うことになる。
これについて、図7(b)に基づいて説明する。図7(b)は、F(ω)のパターンとF(ω)がωsだけシフトされたパターンとが重なり合う状態を示す図である。なお、上記数式6からもわかるように、F(ω)がωsだけシフトされるということは、F(ω)がfsだけシフトされるということと等しい。また、ωn=2πfn(数式6参照)であるから、ナイキスト周波数fnとωnとは図7(b)において同じ位置となる。
同図では、F(ω)のパターンをP0で示し、F(ω)がωsだけシフトされたパターンをP1で示している。また、パターンP0に含まれるピークを、周波数の値が小さいほうから順に、f2−(0)、f1−(0)、f0−(0)、f0(0)、f1(0)、f2(0)で示し、同様に、パターンP1に含まれるピークを、それぞれf2−(1)、f1−(1)、f0−(1)、f0(1)、f1(1)、f2(1)で示している。
なお、図7(b)では、F(ω)がだけシフトされており、
図示のように、パターンP0とP1とはその一部のパターンが重なり合っている。具体的には、パターンP0のピークf2(0)がパターンP1のf2−(1)とf1−(1)との間に食い込み、パターンP1のピークf2−(1)がパターンP0のf2(1)とf1(1)との間に食い込んでいる。
このように、F’(ω)は、F(ω)のパターンとF(ω)がωsだけシフトされたパターンとを重畳したものとなり、重なり合う部分はもとのF(ω)のパターンにはないパターンとなる。したがって、F(ω)のパターンにωnを超える周波数成分が含まれている場合、F’(ω)を逆フーリエ変換したとしても、f(x)を完全には再現することができない。
すなわち、折り返しのある周波数領域データをそのまま逆フーリエ変換すると、本来F(ω)に含まれるピークf2(0)の代わりに、パターンP1のピークf2−(1)が空間領域データに変換されてしまい、エイリアシングが発生するという問題があった。
そこで、本実施形態では、設計データの周波数領域データと基準撮像画像データの周波数領域データとを比較することによって、折り返された周波数成分を特定し、該特定した周波数成分を本来あるべき位置に復元する。
なお、設計データの周波数領域データと基準撮像画像データの周波数領域データとの比較は、例えば、ピーク一つ一つを突き合わせることによって行われる。また、本実施形態のように撮像対象7が液晶表示パネルである場合には、図6(b)等に示すように、ピークが等間隔で現れるので、ピークの間隔が等間隔ではない箇所を検出することによって折り返された周波数成分を検出することもできる。
ここで、周波数成分の折り返しについて説明する。図7(b)に示すように、パターンP0のピークf2−(0)、f1−(0)、f0−(0)と、ピークf0(0)、f1(0)、f2(0)とは、f=0に対して対称である。同様に、パターンP1のピークf2−(1)、f1−(1)、f0−(1)と、ピークf0(1)、f1(1)、f2(1)とは、ωsに対して対称である。
したがって、図示のように、パターンP0のピークf2(0)は、パターンP1のピークf2−(1)を、ωnを軸に折り返した位置となる。すなわち、ωnを超える周波数成分は、ωnを軸に低周波数側へと折り返された位置に出現することになる。
そこで、パターンP0において、パターンP1のピークf2−(1)を、ωnを軸に、高周波数側へと折り返すことで、折り返し周波数成分を復元することができる。なお、ピークf2−(1)を、ωnを軸に高周波数側へと折り返した場合、f2−(1)の値はその虚部の符号が逆転した値となる。
また、パターンP1のピークf2(1)を−ωsだけシフトさせることによっても、折り返し周波数成分を復元することができる。同様に、同図のパターンP0の左側(周波数軸の負方向)にパターンP−1があるとすれば、パターンP−1のピークf2(−1)をωsだけシフトさせることによって、折り返し周波数成分を復元することができる。
このように、ωn以上の周波数成分においても、他のピークと重なりがなく、シフト量(折り返し回数)が既知であれば、折り返されていない状態に復元することができる。
ところで、フーリエ変換されたデータF(ω)から、もとのデータf(x)を復元する逆フーリエ変換は、下記の数式8で表される。ここで、逆フーリエ変換を行うときに、既知のシフト量(折り返し回数)kを加味して変換を行うことにより、上記の数式1が得られる。
上記数式1によれば、ナイキスト周波数よりも周波数の低い領域に折り返されていたピークが、ナイキスト周波数を軸に、ナイキスト周波数よりも周波数の高い領域へと折り返される。すなわち、上記数式1によれば、折り返し周波数成分を本来あるべき領域(ナイキスト周波数よりも高い周波数領域)に復元することができる。
このようにして得られた設計参照画像データは、パネルパターンすなわち設計データを用いて、基準撮像画像データにおける周波数成分の折り返しを修正した画像データを、数式として表したデータということになる。
数式1で表される設計参照画像データを画像データとして表した例を図24に示す。同図(a)は設計参照画像データを画像として表した場合の外観を示す図であり、同図(b)は同図(a)の破線で囲まれる箇所のデータ構造を示す図である。なお、同図(a)に小円で示しているのは画素である。
図示のように、設計参照画像データを画像データとして表した場合、図22(b)と同様に、画像中に含まれる各画素の画素値を示すデータとなる。ただし、図22(b)に示したような設計データとは異なり、基準撮像画像データに基づいた画素値のデータが追加されている。さらに、図示していないが、設計参照画像データと基準撮像画像データとは位置ずれがなく、サイズも同一となっている。
基準撮像画像データに基づいた画素値のデータが追加されているのは、設計参照画像データが基準撮像画像データの周波数領域のデータから、主な周波数成分のみを抽出したデータを空間領域のデータ(画像データ)に変換して得られたデータであるからである。
すなわち、空間領域のデータ(画像データ)と周波数領域のデータとは、可逆変換であることから、基準撮像画像データから主な周波数成分のみを抽出し、折り返された周波数成分を復元したデータを画像データに変換して得られた設計参照画像データは、基準撮像画像データの各画素が有する画素値の推定値を含むデータとなる。
なお、上記数式1は、基準撮像画像データの周波数領域のデータから、パネルパターンの主周波数成分及びその折り返された周波数の位置における周波数成分の強度を求め、その値と逆フーリエ変換の定義から直接計算して求めてもよい。
〔撮像画像ずれ検出処理について〕
次に、撮像画像ずれ検出部13における撮像画像ずれ検出処理について説明する。上述の設計データずれ検出処理では、撮像画像データの中から選択した基準撮像画像データと設計データとのずれを検出した。上述のように、撮像画像データは、撮像対象7の少しずつ、ずれた位置を撮像したものであり、基準撮像画像データは複数の撮像画像データの中から選択されたものであるから、基準撮像画像データとその他の撮像画像データとの間には、ずれがある。撮像画像ずれ検出部13は、基準撮像画像データとその他の撮像画像データとのずれを検出する。
具体的には、撮像画像ずれ検出部13は、基準撮像画像データに対するそれ以外の撮像画像データの位置ずれを領域マッチング等によって検出する。本実施形態の撮像画像ずれ検出部13は、上記設計参照画像データを用いて領域マッチングを行うので、基準撮像画像データとそれ以外の撮像画像データとの位置ずれを精度よく検出することができる。
これについて図8に基づいて説明する。同図(a)は撮像対象7である液晶表示パネルに対する撮像素子の割り当てを示す図であり、同図(b)は上記液晶表示パネル上の位置と画素値との関係を示す図である。
高精度な領域マッチングを行うためには、領域マッチングの対象となる、基準撮像画像データ及びその他の撮像画像データについて、サブピクセル部の画素値を計算する必要がある。一般的には、隣接する画素の画素値を直線で補間してサブピクセル部の画素値を計算する。
しかしながら、撮像対象7が撮像装置2のナイキスト周波数よりも高い周波数成分を含んでいる場合、すなわち液晶表示パネルの開口部やブラックマトリクス部の大きさに対して、撮像装置2が備える撮像素子の割当が大きい場合、隣接する画素の画素値を直線で補間してサブピクセル部の画素値を計算すると、実際の画素値との差が大きくなってしまうことがある。
図8(a)は、図4のA−A’断面における開口部31、及びブラックマトリクス部33を凹凸で表した図である。図8(a)では、凸部が開口部31、凹部がブラックマトリクス部33に相当する。また、撮像装置2における、撮像素子の割当をa及びbとし、この場合に、サブピクセル部cの画素値を求めるとする。
図8(b)は、図8(a)に示す領域における、位置と画素値との関係を示している。ここでは、図8(a)に示す撮像素子の割り当てaの領域に含まれる点a’の位置における画素値をVa、撮像素子の割り当てbに含まれるb’の位置における画素値をVbとしている。また、撮像素子の割り当てcに含まれるc’の位置における画素値をVcとしている。
ここで、画素値VaとVbとを直線で補間してサブピクセル部の画素値を求めた場合、サブピクセル部の画素値はVc’となり、これは実際の画素値Vcと異なる。このように、隣接する画素の画素値を直線で補間してサブピクセル部の画素値を計算する方法では、撮像対象7が撮像装置2のナイキスト周波数よりも高い周波数成分を含んでいる場合にサブピクセル部の画素値を正確に算出することができないという問題があった。
そこで、画像処理装置3では、設計データずれ検出部12が生成した設計参照画像データ(数式1)を用いてサブピクセル部の画素値の計算を行う。具体的には、まず、サブピクセル部に隣接する基準撮像画像データの画素の画素値から数式1におけるxを計算する。なお、数式1におけるxは画像データにおける画素の位置を示し、画像データはxが整数のときの画素値の並びとして表される。したがって、xが小数を含むときはサブピクセル部の位置を表すことになる。続いて、数式1を用いてサブピクセル部の画素値を算出する。
これにより、サブピクセル部の画素値をより正確に計算することができ、基準撮像画像データとそれ以外の撮像画像データとの位置ずれを精度よく検出することができる。撮像画像ずれ検出部13で撮像画像データ間のずれを検出する場合、基準撮像画像データを基準として超解像画像データが生成されることになる。したがって、分解能が均一の高解像度画像データを生成するためには、基準撮像画像データとして、液晶表示パネル(撮像対象7)の表示面と撮像装置2の撮像素子が配列している平面とが平行な状態で撮像されたものを用いることが好ましい。
なお、液晶表示パネルの表示面と撮像装置2の撮像素子が配列している平面とが平行ではなく、傾斜している場合に、分解能が均一の高解像度画像データを生成するためには、さらに別の処理が必要となる。
例えば、設計データは、液晶表示パネルに対して傾斜していないものを予め用意しておくことができる。そして、設計データずれ検出部12で検出された設計データと基準撮像画像データとのずれ量を、撮像画像ずれ検出部13で検出した基準撮像画像データとその他の撮像画像データとのずれ量にそれぞれ乗ずる。これにより、基準撮像画像データ及びその他の撮像画像データと液晶表示パネルとの傾斜をキャンセルして分解能が均一の高解像度画像データを生成することができる。
また、設計データずれ検出部12において、超解像処理に用いる撮像画像データごとに設計データとの位置ずれを検出するようにしてもよい。この場合、撮像画像ずれ検出部13を省略することができる。
設計データずれ検出部12が撮像画像データ毎に位置ずれを検出する場合、高解像度画像データの各画素は設計データに基づいて決めることができ、例えば設計データに対して高解像度画像データの画素がパネルの1画素に対して16画素四方の割当となるように設定することができる。
〔第1関数決定処理について〕
以上のようにして、設計データずれ検出部12は基準撮像画像データと設計データとのずれを検出すると共に設計参照画像データを生成する。また、撮像画像ずれ検出部13は、基準撮像画像データとその他の撮像画像データとのずれを検出する。これらの結果は、第1関数決定部14に送られて第1関数決定処理に用いられることになる。
第1関数決定部14における第1関数決定処理の一例について図9に基づいて説明する。図9は、第1関数決定処理(1)の流れを示すフローチャートである。なお、ここでは、設計データずれ検出部12からの出力が、基準撮像画像データとパネルパターンとの位置ずれ及びサイズの差、及び設計参照画像データである場合について説明する。また、ここでは、基準撮像画像データを16倍(縦方向4倍、横方向4倍)に高解像度化する例を説明する。無論、何倍に高解像度化するかは、必要に応じて適宜設定することができる。
まず、第1関数決定部14は、基準撮像画像データと設計データとの位置ずれ及びサイズの差から、高解像度画像データの各画素に対応する設計データすなわちパネルパターンの位置を計算する(S21)。
高解像度画像データの各画素に対応するパネルパターンの位置を計算する方法について、図10に基づいて説明する。図10は、パネルパターンに対する撮像画像データの画素の配置と、高解像度画像データの画素の配置との関係を示す図である。
同図の太線円41は基準撮像画像データにおける画素の配置を示しており、細線円42は基準撮像画像データを高解像度化した高解像度画像データにおける画素の配置を示している。
本実施形態では、超解像処理によって、撮像画像データの解像度を縦横それぞれ4倍にする例を示しているので、細線円42は、太線円41を、縦方向に1/4倍、横方向に1/4倍した大きさとなっている。この細線円42を、パネルパターン上に均等に配置し、配置した細線円42と太線円41とを比較することによって、高解像度画像データの各画素に対応するパネルパターンの位置を求めることができる。
次に、第1関数決定部14は、上記設計参照画像データと高解像度画像データの各画素に対応するパネルパターンの位置とに基づいて、S21で求めた高解像度画像データの各画素が取りうる画素値の範囲を決定する(S22)。上述のように、設計データと設計参照画像データとは位置ずれがなく、サイズも同じである。
したがって、この設計参照画像データにおける、高解像度画像データの各画素に対応する位置は容易に求めることができる。具体的には、平行移動及び回転移動や、アフィン変換、投影変換等の技法を用いて基準撮像画像データを投影することによって、設計参照画像データ上において、高解像度化後の基準撮像画像データの各画素がどの位置の画素に対応するかを求めることができる。
ここでは、高解像度画像データの各画素の画素値は、設計参照画像データにおいて対応する位置の画素値からある所定の範囲内にあるという条件で、高解像度画像データの各画素の画素値がとりうる値の範囲を決定する。
そして、第1関数決定部14は、S22にて決定された高解像度画像データの各画素の画素値がとりうる値の範囲に基づいて、超解像処理に用いる高解像度化評価関数を変更するための関数(Epat)を定式化する(S23)。
S23の関数を定式化する処理の具体例について、図11に基づいて説明する。図11は、第1関数決定部14が定式化する関数の一例を示す図である。この例では、高解像度画像データの画素の画素値がV0からV1の範囲内である場合を想定している。
高解像度画像データの画素の画素値がV0からV1の範囲内である場合、高解像度画像データの画素の画素値とその評価値とを図11に示すような関数で表すことができる。なお、図11における評価値は、画素値の適正度合いを示す値であり、評価値が小さいほど画素値が適正であることを示す。図示のように、この関数は、画素値がV0からV1の間の場合には評価値が常に0であり、それ以外の値ならばこの範囲から離れている量の2乗に比例して増加している。この関数を数式化すると下記の数式9を得ることができる。
なお、V0及びV1の値は、検出目標となる欠陥部と、欠陥を有していない正常な部分との画素値を共に含むように設定することが好ましい。
また、数式9が、点V0及び点V1において微分不可である場合、高解像度画像データの画素の画素値がV0またはV1であるときにEpatの微分値が正方向からと負方向からで値が異なり、その付近でEpatの値が振動する可能性があるため、点V0及び点V1において微分可能な数式を用いることが好ましい。上記数式9は、点V0及び点V1において微分可能である。
そして、第1関数決定部14は、高解像度画像データにおける各画素の画素値の和を示す数式10を関数(Epat)として出力する。なお、数式10において、hは高解像度画像データを表すベクトルである。
第1関数決定部14は、以上のようにして高解像度化評価関数を変更するための関数(Epat)を定式化し、得られた関数を超解像処理部15に送出する。超解像処理部15は、この関数を用いて超解像処理を行う。
〔超解像処理について〕
図12〜図13に基づいて、本発明の超解像処理について説明する。図12は、超解像処理部15の要部構成を示すブロック図である。超解像処理部15は、図示のように、平滑化画像生成部51、第2関数決定部(評価関数変更手段)52、高解像度画像評価・判定部53、及び高解像度画像更新部54を備えている。
平滑化画像生成部51は、高解像度画像保存部21に格納されている高解像度画像データを撮像装置2における撮像素子のサイズに相当する領域サイズで平滑化した平滑化画像データを生成し、生成した平滑化画像データを第2関数決定部52に送出する。
第2関数決定部52は、平滑化画像生成部51から送られる平滑化画像データ、高解像度画像保存部21に格納されている高解像度画像データ、及び第1関数決定部14から送られる関数(Epat)等に基づいて高解像度化評価関数を決定する。そして、第2関数決定部52は、決定した高解像度化評価関数を用いて上記高解像度画像データの評価値を算出し、算出した評価値を高解像度画像評価・判定部53に送出する。
高解像度画像評価・判定部53は、第2関数決定部52から送られる高解像度化評価関数の評価値に基づいて超解像処理を継続するか、終了するかを判定し、判定結果を第2関数決定部52に返す。判定の結果、超解像処理を終了する場合、第2関数決定部52は、上記高解像度画像データを超解像画像データとして超解像画像保存部22に格納する。一方、判定の結果、超解像処理を継続する場合、第2関数決定部52は、上記高解像度化評価関数を高解像度画像更新部54に送出する。
高解像度画像更新部54は、高解像度画像評価部から送られる高解像度化評価関数に基づいて高解像度画像保存部21に格納されている高解像度画像データを更新する。
次に、以上のような構成を備える超解像処理部15における超解像処理の一例について図13に基づいて説明する。図13は、超解像処理(1)の流れを示すフローチャートである。なお、フロー開始前の高解像度画像データは、灰色画像等の適当な画像データを設定する。
まず、平滑化画像生成部51は、高解像度画像保存部21に格納されている高解像度画像データの各画素にガウシアン等の関数を乗じて、撮像装置2における撮像素子のサイズに相当する領域サイズで平滑化した平滑化画像データを生成する(S31)。平滑化画像生成部51は、生成した平滑化画像データを第2関数決定部52に送出する。
第2関数決定部52は、S31で平滑化画像生成部51が生成した平滑化画像データ、上記高解像度画像データ、及び第1関数決定部14が生成した関数(Epat)等に基づいて高解像度化評価関数を決定する(S32)。
高解像度化評価関数としては、例えば、下記の数式11を用いることができる。数式11は、それぞれ平滑化画像データ、高解像度画像データ、及び第1関数決定部14が生成した関数(Epat)に由来する3項から成る数式である。すなわち、画像処理装置3では、第1関数決定部14にて決定された関数(Epat)を数式11に組み込むことにより、高解像度化評価関数を変更している。数式11の各項について以下に説明する。
数式11の第一項は、平滑化画像データと、その平滑化画像データの各画素に対応する撮像画像データの各画素値との差分から計算される誤差項であり、この誤差項に含まれるEerrは、例えば、下記の数式12を用いて表すことができる。
数式12において、h’は平滑化画像データの各画素の画素値を表すベクトル、ylowは撮像画像データを平滑化画像データに投影した場合に、投影された画素に対して最近傍となる平滑化画像の画素を求めた際に、画素yを最近傍とする撮像画像データの画素の平均画素値、Myは画素yを最近傍の画素とする画素の個数、σは撮像画像データにおけるノイズの分散である。なお、撮像画像データの平滑化画像データへの投影は、撮像画像ずれ検出部13が検出した基準撮像画像データとその他の撮像画像データとのずれに基づいて行われる。
また、数式11の第二項は、高解像度画像データの各画素値から計算される拘束項であり、この拘束項に含まれるEhighは、例えば下記の数式13で表される正規化項等である。数式11では、このEhighに、重みwhighを乗じて数式11の第二項としている。
上記数式13は、画素値xが小さいほどEhighの値が小さくなる関数であるから、Ehighを高解像度化評価関数に加えることにより、高解像度画像データの画素値を低く抑えることができ、これにより画素値のバラつきを小さくすることができる。なお、高解像度画像データの画素値のバラつきを小さくする必要がない場合には、拘束項(数式11の第二項)は、省略してもよい。
そして、数式11の第三項は、第1関数決定部14によって決定される関数(Epat)に重みwpatを乗じて得られる拘束項である。
このように、高解像度化評価関数である数式11は、設計データと撮像画像データ(基準撮像画像データ)とのずれを考慮して算出された関数(Epat)を含んでいるので、実際の撮像画像データに即した高解像度化評価関数であるといえる。
したがって、上記高解像度化評価関数を用いて超解像処理を行うことで、設計データと撮像画像データとがずれている場合においても精度のよい超解像処理が可能となる。
第2関数決定部52は、以上のようにして得られた高解像度化評価関数を用いて、高解像度画像データの評価値を算出する(S33)。具体的には、第2関数決定部52は、数式11に高解像度画像データの画素値を代入してE(h)の値を計算し、高解像度画像データの評価値とする。第2関数決定部52は、算出した評価値を高解像度画像評価・判定部53に送出する。
上記高解像度画像データの評価値を受け取った高解像度画像評価・判定部53は、該評価値と所定の閾値とを比較し、評価値が閾値以下か否かを判定し、判定結果を第2関数決定部52に返す(S34)。
第2関数決定部52は、評価値が閾値以下であるとの判定結果を受け取った場合、上記高解像度画像データを超解像画像データとして超解像画像保存部22に格納すると共に、該超解像画像データを出力部17に出力させる(S35)。
一方、第2関数決定部52は、評価値が閾値よりも大きいとの判定結果を受け取った場合、高解像度画像更新部54に上記高解像度化評価関数を送出する。
高解像度画像更新部54は、第2関数決定部52から送られる高解像度化評価関数の評価値がより小さくなるように上記高解像度画像データを更新する。具体的には、高解像度画像更新部54は、高解像度化評価関数の高解像度画像データの各画素に対する微分値を計算し、各画素に対する微分値に比例した数値をもとの高解像度画像データの各画素に加算する。
そして、高解像度画像更新部54は、このようにして得た高解像度画像データを高解像度画像保存部21に格納されている高解像度画像データに上書きする。すなわち、高解像度画像更新部54は、高解像度画像データを更新する(S36)。
S36で更新された高解像度画像データは、再度S33〜S34の処理によってその評価値が判定される。この繰り返しによって、所望の精度の高解像度画像データ、すなわち超解像画像データを生成することができる。
なお、図13のフローチャートでは、評価値が所定の閾値以下となるまで高解像度画像データの更新が続けられるが、高解像度画像データの更新が所定の回数に達した場合に、更新後の高解像度画像データを超解像画像データとして、超解像処理を終了するようにしてもよい。これにより、超解像処理が少なくとも所定の時間内には終了することになるので、撮像対象7の欠陥検査をスムーズに行うことができる。
〔まとめ〕
以上のように、本実施形態によれば、既知の情報である設計データが、高解像度化評価関数に、位置ずれ及びサイズの差が無い状態で関数(Epat)として組み込まれるので、設計データに沿った精度の高い高解像度画像データを生成することができる。
また、撮像画像ずれ検出部13では、撮像装置2における撮像素子のサンプリング周波数がパネルパターンを復元するために少なくとも必要であるパネルパターンが持つ周波数の2倍以上の周波数よりも低く、撮像画像データにエイリアシングが生じる場合であっても、サブピクセル量の(撮像画像データにおける画素サイズよりも小さな)ずれを精度よく推定することができる。
したがって、生成される高解像度画像データに対するパネルパターンの位置を精度よく検出することができるので、超解像処理部15では精度の高い超解像画像データを生成することができる。
〔第1関数決定処理の変形例〕
上述の例では、第1関数決定部14が設計データと基準撮像画像データとのずれ、及び設計参照画像データに基づいて高解像度化評価関数を変更するための関数(Epat)を決定する第1関数決定処理(1)(図9参照)について説明したが、第1関数決定処理はこの例に限られない。第1関数決定処理の他の例について、図14〜図18に基づいて説明する。なお、図9の第1関数決定処理(1)と同様の処理については、同一の参照番号を付し、その説明を省略する。
第1関数決定処理の他の例を図14に基づいて説明する。図14は、第1関数決定処理(2)の流れを示すフローチャートである。第1関数決定処理(2)では、設計データとしてパネルパターンのサイズが与えられていることを想定しており、設計データずれ検出部12からの出力は、基準撮像画像データと設計データとの位置ずれ、サイズの差、パネルパターンのサイズである。なお、パネルパターンのサイズとは、具体的には、図21(a)(b)に示すような、パネルパターンの各部のサイズを示すデータや、図23に示すような同色の画素群間の距離を示すデータを指す。
この場合、設計データずれ検出部12において設計参照画像データを計算しないので、設計データずれ検出部12の処理を簡略化することができる。
第1関数決定部14は、基準撮像画像データと設計データとの位置ずれ及びサイズの差に基づいて、高解像度画像データの各画素に対応する設計データの位置を計算した(S21)後、パネルパターンのサイズに基づいて高解像度画像データの各画素において同色となる画素群を抽出する(S42)。
具体的な画素群の抽出例を図15に基づいて説明する。図15は、高解像度画像データの各画素において同色となる画素群を抽出する例を示す図である。この例では、同図に実線の長方形で示す3つの開口部はそれぞれRGB色の何れかであり、開口部と開口部との間に形成されるブラックマトリクス部は黒色であることを想定している。
また、図15では、高解像度画像データの各画素を小円で示しており、高解像度画像データの各画素を示す小円のうち、同色となる画素は、同図に点線で囲われる画素群61〜画素群64等である。画素群61、画素群62、画素群63は、それぞれ1つの開口部に含まれているので、これらの画素群に含まれる画素は同色となる。また、画素群64は、ブラックマトリクス部に含まれているので、この画素群に含まれる画素も同色となる。
そして、第1関数決定部14は、S42において抽出された画素群に基づいて、高解像度化評価関数を変更するための関数(Epat)を定式化する(S43)。
上述のように、同色の開口部や、ブラックマトリクス部に含まれる画素をそれぞれ画素群として分類しているので、同一の画素群に含まれる画素は、それぞれ近い画素値を有している。
したがって、同一の画素群に含まれる画素がそれぞれ近い画素値を有していることを示す関数を関数(Epat)とすることにより、設計データを反映した超解像処理を行うことができる。
例えば、同じ画素群に含まれる画素の画素値をそれぞれ求め、その画素値の標準偏差を用いて、下記の数式14を導出することができ、この数式14を関数(Epat)として用いることができる。なお、数式14において、Pは分類された各素群であり、xaveは各画素群における画素の画素値の平均である。
続いて、第1関数決定処理のまた別の例を図16に基づいて説明する。図16は、第1関数決定処理(3)の流れを示すフローチャートである。第1関数決定処理(3)では、周波数領域のデータを用いて関数(Epat)を導出する。設計データとしては、第1関数決定処理(2)と同様のものを適用できる。また、図21(a)、図22(a)、図23に示すような画像データを予め周波数領域のデータに変換したものを設計データとして用いてもよい。第1関数決定処理(3)は、周波数領域のデータに基づいて関数(Epat)を導出するので、超解像処理が周波数空間で計算される場合に実装することが容易である。
第1関数決定部14は、基準撮像画像データと設計データとの位置ずれ及びサイズの差に基づいて、高解像度画像データの各画素に対応する設計データの位置を計算した(S21)後、設計データを周波数領域のデータに変換して高解像度画像データと同サイズの周波数領域のデータを生成する(S52)。なお、設計データとして、周波数領域のデータを用いる場合、S52では、周波数領域のデータの位置及びサイズを高解像度画像データに合わせる処理が行われる。
そして、第1関数決定部14は、S52で生成した周波数領域のデータに基づいて、高解像度化評価関数を変更するための関数(Epat)を定式化する(S53)。
S53における、関数(Epat)を定式化する処理の一例について、図17に基づいて説明する。図17は、パネルパターンを周波数領域に変換して得られるデータの一例を示す図である。
図17に白点で示される箇所、例えば白点71〜白点73は、パネルパターンを周波数領域のデータに変換したときの主な周波数成分を示している。なお、周波数領域のデータに変換した際に生じる複数の周波数成分のうち、主な周波数成分とそうでない周波数成分とは、例えばその成分の振幅が所定の閾値を越えているか否かによって分類すればよい。
ここで、高解像度画像データは、パネルパターンと同じパターンを有しているので、周波数領域のデータに変換した高解像度画像データにおいても、周波数成分のパターンはパネルパターンと同じになる。すなわち、高解像度画像データを周波数領域に変換したデータと、パネルパターンを周波数領域に変換したデータとは、主な周波数成分が一致する。
したがって、例えばこの主な周波数成分以外の周波数成分の強度が小さくなるような関数(Epat)を設定すればよい。この関数(Epat)の一例が下記の数式15である。数式15において、F(h)-は、周波数領域に変換した高解像度画像データにおいて、パネルパターンの主成分に相当する周波数帯域だけ除外した画像データを示している。
F(h)-の算出方法の具体例について説明する。周波数領域のデータは、複素数の要素によって構成されているので、例えばこの複素数に共役複素数を乗じ、その2乗根を計算した値を各要素の強度とすることができる。ここで、ある閾値以上の強度を持つ要素をパネルパターンの主成分とし、この主成分に相当する周波数成分の値を0とした数式をF(h)-とすることができる。これにより、F(h)-は、パネルパターンの主成分に相当する周波数帯域だけ除外した画像データを示す数式となる。
第1関数決定処理のさらに別の例を図18に基づいて説明する。図18は、第1関数決定処理(4)の流れを示すフローチャートである。ここでは、設計データとして開口部の画素値あるいは画素値の比が与えられていることを想定している。この場合、設計データずれ検出部12からの出力を基準撮像画像データと設計データとの位置ずれ、サイズの差、開口部の画素値あるいは画素値の比とすることができる。
第1関数決定部14は、基準撮像画像データと設計データとの位置ずれ及びサイズの差に基づいて、高解像度画像データの各画素に対応する設計データの位置を計算した(S21)後、高解像度画像データの各画素で、同色の開口部の位置に相当する画素群を抽出し、さらに抽出された画素を各画素に相当する開口部の色別に分類する(S62)。
そして、第1関数決定部14は、S62で分類した、各色の画素群に含まれる画素の画素値あるいは画素値の比が一定の値となるという条件を示す関数(Epat)を定式化する(S63)。
例えば、これらの各画素群に所属する画素の画素値を、その画素群が属する開口部の画素値あるいは画素値の比で割った値が一定である、という条件を定式化したものを関数(Epat)とすることができる。
具体的には、下記の数式16を関数(Epat)として用いることができる。なお、数式16においてrnは設計データの開口部の画素値あるいは画素値の比、hnはS62で分類したそれぞれの画素群に所属する画素の画素値、xave2は各画素の画素値をその画素が属する色の輝度比を用いて正規化した数値の平均である。xave2は下記の数式17で与えられる。なお、数式17におけるMR,MG,MBは、R,G,Bそれぞれの画素群に属する画素の個数である。
〔超解像処理の変形例〕
上述の例では、超解像処理に用いる関数(Epat)を決定するために、高解像度画像データを平滑化した平滑化画像データを用いる例を示したが、これに限られない。例えば、以下の構成で高解像度化表関数を決定し、超解像処理を行ってもよい。
図19は、超解像処理部15の変形例を示すブロック図である。図19に示す超解像処理部15は、図12に示す超解像処理部15における平滑化画像生成部51が低解像度画像生成部81に変わっている点を除いて、図12の超解像処理部15と同様の構成を有している。低解像度画像生成部81は、高解像度画像保存部21に格納されている高解像度画像データを低解像度化し、撮像画像と同数の低解像度画像データを生成する。
超解像処理部15が低解像度画像データ生成部81を備えている場合の超解像処理について、図20に基づいて説明する。図20は、超解像処理(2)の流れを示すフローチャートである。なお、図13に示す超解像処理(1)と同様の処理については、同様の参照番号を付し、説明を省略する。
まず、低解像度画像データ生成部81は、高解像度画像保存部21から高解像度画像データを読み出し、読み出した高解像度画像データに基づいて、撮像した複数の撮像画像データのそれぞれに対応する位置の低解像画像データを生成する(S71)。なお、フロー開始前の高解像度画像データは、灰色画像等の適当な画像データを設定する。
そして、第2関数決定部52は、高解像度化評価関数を決定する(S72)。ここで、S72における高解像度化評価関数の決定方法について説明する。高解像度化評価関数における、拘束項(Ehigh、Epatをそれぞれ含む項)の決定方法は超解像処理(1)と同様であるからここでは説明を省略する。
超解像処理(1)では、平滑化画像データと、その平滑化画像データの各画素に対応する撮像画像データの各画素値との差分から高解像度化評価関数の誤差項(Eerr)を算出した。これに対し、超解像処理(2)では、各撮像画像データの画素値と、その撮像画像データに対応する上記低解像度画像データの画素値との差分から誤差項(Eerr)を算出する。
例えば、下記の数式18を誤差項(Eerr)として用いることができる。数式18において、Nは撮像画像データの枚数、lnは撮像画像データの各画素を表すベクトル、yは撮像画像データの画素値、y’はyに対応する低解像度画像データの画素の画素値である。
そして、以下のステップでは、図13の超解像処理(1)と同様にして高解像度画像の評価・更新を行い、超解像画像データを生成する。
最後に、画像処理装置3の各ブロック、特に設計データずれ検出部12及び超解像処理部15は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、画像処理装置3は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラム及び各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像処理装置3の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記画像処理装置3に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、画像処理装置3を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。