本発明の一実施形態について図1から図16に基づいて説明すると以下の通りである。
〔画像処理システムの構成〕
本実施形態の画像処理システム(画像生成装置)1の構成について、図2に基づいて説明する。図2は、画像処理システム1の要部構成を示すブロック図である。図示のように、画像処理システム1は、撮像位置決定装置(撮像位置決定手段)10と、撮像装置20と、制御装置30とを含む構成である。
撮像位置決定装置10は、撮像装置20が撮像対象を撮像するときの撮像位置を決定するものである。また、撮像装置20は、制御装置30の指示に従って撮像対象の撮像を行なう装置であり、制御装置30は、撮像装置20の動作制御を行なうと共に、撮像装置20が取得した撮像対象の画像データ(以下、撮像画像データと呼ぶ)に超解像処理を施して、高解像度画像データを生成する。
本発明は、撮像装置20が撮像対象の撮像を行なうときの撮像位置を、撮像位置決定装置10で決定することによって、撮像回数を増加させることなく、ダイナミックレンジの拡大された高解像度画像データを生成する点に主な特徴がある。以下において、画像処理システム1の各構成である撮像位置決定装置10、撮像装置20および制御装置30の詳細について説明する。
まず、撮像位置決定装置10について説明する。撮像位置決定装置10は、図示のように記憶部11と、撮像位置計算部12を備えている。
記憶部11は、撮像装置20の撮像条件と、該撮像条件で撮像する撮像画像データの枚数とを対応付けた撮像情報を記憶している。すなわち、画像処理システム1では、複数の撮像条件で、それぞれ所定回数の撮像が行なわれ、この撮像で得られた撮像画像データを用いて高解像度画像データが生成される。また、記憶部11には、上記撮像情報の他に、各撮像条件における撮像位置を示す組合せ別撮像位置が記憶される。さらに、該組合せ別撮像位置に重み付けを行なうための組合せ別重みが記憶される。なお、これらの情報の詳細については後述する。
以下では、撮像条件として露光時間(シャッタースピード)を用いる例について説明する。ただし、撮像条件は、この例に限られず、撮像感度、使用する光学フィルタ、及びアイリス(絞り)を示すデータ、および、これらを組み合わせたデータを用いることもできる。
なお、これらの撮像条件は、撮像対象の明度、反射率、および撮像時の照明強度の少なくとも1つに応じて設定されたものであることが好ましい。すなわち、撮像対象の明度、反射率、および撮像時の照明強度が高い場合には、撮像画像データにハレーションが発生しやすいので、このような場合には、露光時間を短めに設定することが好ましい。同様に、撮像対象の明度、反射率、および撮像時の照明強度が低い場合には、露光時間を長めに設定することが好ましい。
撮像位置計算部12は、撮像装置20が撮像対象を撮像する撮像位置を決定する。撮像位置計算部12は、記憶部11に格納されている上記撮像情報等を参照し、撮像条件ごとの撮像画像データの撮像位置を決定する。そして、撮像位置計算部12は、撮像条件と該撮像条件における撮像位置とを対応づけて撮像条件保存部32に保存する。なお、撮像位置計算部12が行なう処理の詳細については後述する。
次に撮像装置20について説明する。撮像装置20は、図示のように、レンズ21、撮像素子22、及びアクチュエータ23を備えている。すなわち、撮像装置20では、撮像対象から反射した光を、レンズ21を介して撮像装置20内の撮像素子22に光学的に結像させるようになっている。そして、撮像素子22が、光学的に結像した撮像対象の像を空間的に離散化させてサンプリングし、画像信号に変換することにより、撮像対象の像が画像データとして取得されるようになっている。
撮像素子22としては、例えばCCD(charge-coupled device)やCMOS(complementary mental-oxide semiconductor)等を用いることができる。なお、ここでは撮像装置20は、マトリクス状に配列した複数の撮像素子22にて撮像を行なうエリアセンサであることを想定している。
アクチュエータ23は、撮像対象と撮像素子22との相対位置を変化させるものである。アクチュエータ23は撮像装置20の筐体の内壁に固定されており、撮像素子22はアクチュエータ23によって支持されている。すなわち、アクチュエータ23は、撮像対象とレンズ21とを結ぶ光軸に対して垂直な平面(撮像対象の被撮像面に平行な平面)において撮像素子22を2次元的に移動させることによって、撮像対象と撮像素子22との相対位置を変化させるようになっている。
つまり、アクチュエータ23が、撮像対象と撮像素子22との相対位置を変化させることにより、撮像装置20が撮像対象を撮像する撮像位置(撮像領域の撮像対象上の位置)が変化するようになっている。このため、撮像位置は、撮像対象の被撮像面に対して平行な2次元平面上の座標として表現することができる。ここでは、アクチュエータ制御部36が2次元座標を指定することにより、アクチュエータ23は指定された2次元座標で特定される位置に撮像素子を移動させるものとする。なお、アクチュエータ23は、撮像素子22を2次元のみならず、回転を含む3次元で移動させるものであってもよい。
アクチュエータ23としては、例えばピエゾアクチュエータやステッピングモータ等を使用することができる。アクチュエータ23は、撮像対象と撮像素子22との相対位置を変化させることができるものであればよく、特に限定されないが、ここではピエゾアクチュエータを用いるものとする。
次に、制御装置30について説明する。本実施形態に係る制御装置30が行なう超解像処理によれば、撮像画像データに白とびや黒つぶれが発生している場合であっても精度の高い高解像度画像データを生成することができる。また、制御装置30にて実行される超解像処理によれば、従来の超解像処理と比べて広いダイナミックレンジを有する高解像度画像データが生成される。
図示のように、制御装置30は、撮像制御部31、撮像条件保存部32、低解像度画像保存部33、高解像度画像保存部34、およびダイナミックレンジ拡大超解像処理部(以下、DR拡大超解像処理部と称する)35を備えており、これらの構成により、上記のような制御装置30の機能が実現されている。
撮像制御部31は、図示のように、アクチュエータ制御部36及び撮像タイミング制御部37を備えている。アクチュエータ制御部36は、アクチュエータ23を移動させることによって撮像装置20の撮像位置を制御する。具体的には、アクチュエータ制御部36は、アクチュエータ23の移動開始及び停止のタイミング、移動速度、及び移動距離等の制御を行なう。このようなアクチュエータ制御部36の制御により、撮像装置20において、図18を用いて説明したような撮像位置において撮像を行なうことができる。
撮像タイミング制御部37は、撮像装置20の撮像開始及び停止のタイミングを制御する。具体的には、撮像タイミング制御部37は、アクチュエータ制御部36から送られてくる、撮像装置20の現在の撮像位置を示す情報と、撮像条件保存部32に格納されている撮像条件と、当該撮像条件に対応する撮像位置とに基づいて撮像装置20へ制御信号を送ることにより、各撮像位置における撮像時間、すなわち露光時間を制御する。
画像処理システム1では、撮像タイミング制御部37の指示によって、ある撮像位置にて撮像が行なわれると、撮像装置20は、撮像して得られた撮像画像データに、該撮像画像データを識別可能な識別子(例えば画像番号)を付して低解像度画像保存部33に格納する。
この繰り返しによって、撮像位置決定装置10が決定した各撮像位置において、該撮像位置に対応する撮像条件で撮像対象が撮像される。そして、撮像によって得られた撮像画像データが識別子を付されて低解像度画像保存部33に格納される。撮像条件保存部32には、撮像条件と撮像位置とが対応付けて格納されているので、上記識別子を用いることによって、各撮像画像データの撮像位置と撮像条件とを特定することができる。
なお、以下では、1枚の高解像度画像データを生成するために用いられる撮像画像データの枚数をm(mは正数)とし、1枚の高解像度画像データに対応するm枚一組の撮像画像データを撮像画像セットとして説明を行なう。
詳細については後述するが、画像処理システム1では、露光時間の異なる複数の撮像画像セットを用いることによって、超解像処理にて生成される高解像度画像データのダイナミックレンジを拡大させることもできる。ここでは、撮像画像セットの数をn(nは正数)とする。この場合には、低解像度画像保存部33には、m×n枚の撮像画像データymnが格納されることになる。
また、詳細については後述するが、画像処理システム1では、露光時間の異なる複数の撮像画像データからなる1組の撮像画像セットを用いることによって、超解像処理にて生成される高解像度画像データのダイナミックレンジを拡大させることもできる。この場合には、低解像度画像保存部33には、m枚の撮像画像データymが格納されることになる。
高解像度画像保存部34は、低解像度画像保存部33に格納されている撮像画像データymまたはymnを用いて超解像処理を行なうことによって生成された高解像度画像データhを格納する。なお、上記従来の超解像処理と同様に、超解像処理を行なうためには初期高解像度画像データを用いる必要があるため、超解像処理を行なう前に、予め高解像度画像保存部34に初期高解像度画像データを格納しておく。
初期高解像度画像データは、超解像処理にて生成したい解像度の画像であればよく、特に限定されない。例えば、撮像画像データの解像度を3倍にする場合には、各画素のサイズが撮像画像データの1/3となる全面が均一の黒画像や白画像、または灰色画像を初期高解像度画像データとして用いることができる。
DR拡大超解像処理部35は、低解像度画像保存部33に格納された撮像画像データを高解像度化して高解像度画像データを生成する超解像処理を行なう。具体的には、DR拡大超解像処理部35は、低解像度画像保存部33に格納された撮像画像データと、高解像度画像保存部34に格納された高解像度画像データ42とに基づいて、新規の高解像度画像データを生成し、生成した高解像度画像データを高解像度画像保存部34に格納する。なお、DR拡大超解像処理部35が実行する超解像処理の詳細については後述する。
〔複数組の撮像画像セットを用いる場合の例〕
画像処理システム1では、撮像位置決定装置10が撮像画像データの撮像位置を適切に設定することにより、超解像処理に用いる撮像画像データの枚数を増加させることなく、ダイナミックレンジが拡大された高解像度画像データを生成することができるようになっている。
ここでは、まず、上記構成の前提となる構成、すなわち超解像処理に用いる撮像画像データの枚数を増加させる(複数組の撮像画像セットを用いる)ことによって、ダイナミックレンジが拡大された高解像度画像データを生成する例について説明する。
上述のように、異なる撮像位置で撮像されたN2枚の撮像画像データを用いることによって、撮像画像データのN倍の解像度を有する高解像度画像データを生成することができる。なお、上記N2枚の撮像画像データは、何れも同じ撮像条件で撮像したものである。つまり、1組の撮像画像セットに含まれる各撮像画像データは、何れも同じ撮像条件で撮像されたものであり、異なる撮像画像セットに含まれる各撮像画像データは、何れも異なる撮像条件で撮像されたものということになる。
DR拡大超解像処理部35は、互いに異なる撮像条件での撮像によって得られた複数組の撮像画像セットを用いて1枚の高解像度画像データを生成することにより、1組の撮像画像セットを用いる場合と比べて、高解像度画像データのダイナミックレンジを拡大することが可能である。この場合には、低解像度画像保存部33に格納されるm×n枚の撮像画像データymnを用いて高解像度画像データの生成が行われる。
〔DR拡大超解像処理部の詳細構成〕
続いて、DR拡大超解像処理部35の詳細な構成について図3に基づいて説明する。図3は、DR拡大超解像処理部35の要部構成を示すブロック図である。図示のように、DR拡大超解像処理部35は、正規化処理部43、画像合成部44、差分画像生成部45、擬似低解像度画像生成部46、領域抽出部47、画像更新部48を備えている。
正規化処理部43は、撮像画像セットの中に、異なる撮像条件にて撮像されたものが含まれている場合に、上記撮像画像セットに含まれる全ての撮像画像データが、上記異なる撮像条件の1つの撮像条件にて撮像されたものとして処理できるように、各撮像画像データの各画素の輝度値を補正し正規化する。正規化処理部43が行なう正規化処理により、異なる撮像条件で撮像して得られた撮像画像データを含む撮像画像セットを用いて超解像処理を行なうことが可能になる。
具体的には、正規化処理部43は、低解像度画像保存部33に格納されているm×n枚の撮像画像データymnを、撮像条件保存部32に保存されている上記m×n枚の撮像画像データymnの撮像に用いられた撮像条件に基づいて正規化処理を行なう。
また、正規化処理部43が行なう正規化処理には、撮像条件の1つを基準として、他の撮像条件で撮像された撮像データの各画素の輝度値を補正する手法を採用できる。
例えば、撮像画像データA,B,Cがあり、各撮像画像データの露光時間がそれぞれa,b,c(a<b<c)である場合を考える。この場合に、露光時間aを基準にすると、撮像画像データB及びCの輝度値を例えば下記の数式(5)にて表すことができる。
すなわち、露光時間がbの撮像画像データBは、露光時間がaの撮像画像データAに対して、露光時間がb/a倍になっているので、輝度値もb/a倍になっていると予想される。同様に、露光時間がcの撮像画像データCは、露光時間がaの撮像画像データAに対して、露光時間がc/a倍になっているので、輝度値もc/a倍になっていると予想される。
したがって、露光時間がaの撮像画像データAを基準にした場合には、露光時間がbの撮像画像データの輝度値をa/b倍に補正し、露光時間がc秒の撮像画像データの輝度値をa/c倍に補正することによって、撮像画像データA〜Cの輝度値を全て同等とすることができる。なお、基準とする露光時間は、撮像画像データA〜Cの中から任意のものを選択することができる。
なお、正規化の方法は、上記の例に限られない。例えば、撮像画像データの輝度値の平均値を求め、該求めた平均値に基づいて、各撮像画像データの輝度値が同程度となるように補正を行なうことによって正規化を行ってもよい。また、露光時間以外にも、使用する撮像装置、照明強度、撮像感度、使用するフィルタ、及びアイリス等の撮像条件が異なっている場合にも、超解像処理に用いる全ての撮像画像データが、上記異なる撮像条件の1つの撮像条件にて撮像されたされたものとして処理できるように、各撮像画像データの各画素の輝度値を補正(正規化)する。
画像合成部44は、正規化処理部43が正規化した、撮像条件の異なる複数組の撮像画像セットを合成して合成撮像画像データを生成する。具体的には、画像合成部44は、各撮像画像セットに含まれるm枚の撮像画像データについて、撮像位置が対応するもの同士を合成し合成撮像画像データを生成する。これにより、m枚の合成撮像画像データからなる撮像画像セットを1セット得ることができる。
合成撮像画像データは、複数の異なる撮像条件で撮像して得られた撮像画像データを反映しているので、合成撮像画像データを用いて超解像処理を行なうことにより、生成される高解像度画像データのダイナミックレンジを拡大させることができる。なお、合成撮像画像データの生成方法については後述する。
差分画像生成部45は、撮像画像データと擬似低解像度画像データとの差分を差分画像データとして算出し、算出した差分画像データを画像更新部48に送る。なお、撮像画像セットが複数の場合(n≧2)には、差分画像生成部45は、画像合成部44が生成した合成撮像画像データと擬似低解像度画像データとの差分を差分画像データとして算出する。また、擬似低解像度画像データは、擬似低解像度画像生成部46が生成したものを用いる。
擬似低解像度画像生成部46は、高解像度画像保存部34に格納されている高解像度画像データを読み出し、読み出した高解像度画像データの解像度が撮像画像データと同じ解像度となるように低解像度化する。また、擬似低解像度画像生成部46は、高解像度画像データに対してPSFによる変換を行い、撮像画像データのそれぞれに位置合わせされた複数(m枚)の擬似低解像度画像データを生成する。擬似低解像度画像データは、差分画像生成部45に送られて、差分画像データの生成に用いられる。
領域抽出部47は、低解像度画像保存部33に格納された撮像画像データにおける超解像処理に不適な不適正露光領域を検出する。不適正露光領域とは、撮像装置20の有効なダイナミックレンジの範囲外の輝度値を有する領域であり、黒つぶれや白とびが発生している可能性が高い領域である。このような領域が含まれている撮像画像データを超解像処理に用いると、超解像処理の精度が低下したり、繰り返し演算に要する処理時間が長くなったりするという問題が生じる。
具体的には、領域抽出部47は、m×n枚の撮像画像データのそれぞれについて、輝度値が予め定めた正常範囲から外れている第1領域を抽出し、抽出した領域の各撮像画像データ上の位置を記憶する。また、ここでは、撮像画像データにおいて、上記抽出された第1領域以外の領域を第2領域と呼ぶ。すなわち、領域抽出部47が第1領域を抽出することにより、各撮像画像データは、正常範囲外の輝度値を有する第1領域と、正常範囲内の輝度値を有する第2領域とに分けられる。
なお、上記正常範囲は、適正露光とみなすことのできる輝度値の上限値と下限値とで規定される輝度値の範囲である。上限値を越えた輝度値を示す領域は、白とびなどのハレーションが発生していると考えられる領域であり、下限値より小さい輝度値を示す領域は、黒くつぶれた状態となっていると考えられる領域である。したがって、上記正常範囲内の輝度値を有する第2領域は、撮像装置20の有効なダイナミックレンジの範囲内での撮像によって得られた輝度値を有する領域ということになる。
また、領域抽出は、画素単位で行ってもよいし、複数の画素を1ブロックとするブロック単位で行ってもよい。例えばx×y画素の領域(x、yは正数)を1ブロックとして撮像画像データを複数のブロックに分割し、各ブロックに含まれる画素の輝度値の平均値に基づいて各ブロックが第1領域に分類されるか否かを判断するようにしてもよい。
そして、領域抽出部47が、上記抽出した領域を記憶する記憶方法は、各撮像画像データの全画素について、第1領域か第2領域かが示されているものであればよいが、以下のように記憶しておくことにより、後続の処理を高速化することが可能になる。
すなわち、領域抽出部47は、m×n枚の撮像画像データと同じサイズのメモリ空間Zmnを設定する。そして、撮像画像データにおいて第1領域であると判断された画素に対応する上記メモリ空間Zmn上の画素位置には1をセットし、第2領域であると判断された画素に対応する上記メモリ空間Zmn上の画素位置には255をセットする。これにより、メモリ空間Zmnでは、白とびまたは黒つぶれしている画素の位置には1の値が格納され、ダイナミックレンジ内の画素の位置には255の値が格納される。
なお、ここでは、輝度値が1〜255までの256階調であることを想定しているので、第2領域と判断された画素位置に255との値を適用し、第1領域と判断された画素位置に1との値を適用している。この処理は、第1領域と判断された画素の高解像度画像データに対する寄与を第2領域と判断された画素よりも小さくすることを目的とするものであるから、この目的が達成される範囲内で、設定する輝度値は適宜変更することができる。
ここでは、領域抽出部47が上記のようにして生成したデータを抽出領域データZmnと呼ぶ。抽出領域データZmnは、画像更新部48にて差分画像データの重み付けに用いられると共に、画像合成部44にて画像合成に用いられる。
すなわち、画像合成部44では、撮像位置が同じで露光時間が異なる撮像画像データを1つの画像データに統合するときに、抽出領域データZmnを参照することにより、合成撮像画像データに含まれる第1領域が少なくなるように統合を行なう。そして、複数組の撮像画像セットを用いる場合には、画像合成部44が合成撮像画像データを生成したときに、領域抽出部47は、抽出領域データZmnを、合成撮像画像データの各画素が第1領域に属するか第2領域に属するかを示す抽出領域データZmに更新する。
具体的には、画像合成部44は、抽出領域データZmnを参照して、撮像位置が同じで露光時間が異なる撮像画像データの各画素が第1領域に属するか第2領域に属するかを判定する。そして、同一位置の画素において、第1領域に属する画素と第2領域に属する画素とが検出された場合には、画像合成部44は合成撮像画像データにおける上記位置の画素の輝度値として、第2領域に属する画素の輝度値を採用する。また、画像合成部44は、上記位置の画素値を第2領域として抽出領域データZmを更新する。
なお、同一位置の画素において、第2領域に属する画素が複数検出された場合には、例えば最も露光時間が長い画素の輝度値を採用すればよい。また、同一位置の画素において、第1領域に属する画素のみが検出された場合には、いずれか1つの画素の輝度値を採用する。したがって、例えば最も露光時間の長い撮像画像セットを基準とし、この撮像画像セットに含まれる画素のうち、第1領域に属する画素を、他の撮像画像セットの同じ位置の画素であって、第2領域に属する画素の輝度値と置き換えるようにすればよい。
これにより、m×n枚の正規化後撮像画像データがm枚の合成撮像画像データに統合されると共に、m×n枚の正規化後撮像画像データに基づいて生成された抽出領域データZmnがm枚の合成撮像画像データに対応する抽出領域データZmに更新される。なお、抽出領域データZmでは抽出領域データZmnと同様に、第1領域の画素の位置には1の値が格納され、第2領域の画素の位置には255の値が格納される。
このような合成処理により生成された合成撮像画像データには、複数の露光時間で撮像して得られた撮像画像データが反映されているので、撮像画像データと比べてダイナミックレンジが拡大されている。したがって、上記合成撮像画像データを用いて超解像処理を行なうことにより、撮像画像データを用いて超解像処理を行なう場合と比べて、ダイナミックレンジの広い高解像度画像データを生成することができる。
さらに、このような合成処理により生成された合成撮像画像データでは、可能であれば、第1領域の画素の輝度値が、他の撮像画像データにおいて位置が同じである第2領域の画素の輝度値に置き換えられている。したがって、上記合成撮像画像データを用いて超解像処理を行なうことにより、撮像画像データを用いて超解像処理を行なう場合と比べて、超解像処理に有用なデータの割合が高くなるので、超解像処理の精度を向上することができ、また超解像処理の演算時間も短縮することができる。
画像更新部48は、領域抽出部47が生成した抽出領域データZmに基づいて、差分画像生成部45が算出した差分画像データに対して、第1画像領域と第2画像領域に対応する重み付けを行い、重み付け差分画像データを生成し、当該重み付け差分画像データを用いて高解像度画像データの更新を行なう。画像更新部48が重み付けを行なうことにより、正常範囲外の輝度値を有する第1領域が超解像処理に与える影響が低減されるので、撮像画像データに白とびや黒つぶれが発生している場合であっても、高精度な超解像処理を行なうことができる。そして、画像更新部48は、更新後の高解像度画像データを高解像度画像保存部34に格納する。
なお、重み付けは、超解像処理に対する第1画像領域の寄与が第2画像領域の寄与に対して小さくなるように行なわれるものであればよく、特に限定されない。ここでは、抽出領域データZmにおいて、第1領域の画素の位置には1の値が格納され、第2領域の画素の位置には255の値が格納されるようになっている。そこで、抽出領域データZmに1/255を乗じた値を重みとして、上記差分画像データに乗じる。
これにより、差分画像データにおいて、合成画像データにて第1領域となっている領域の画素の輝度値が1/255となる。一方、差分画像データにおいて、合成画像データにて第2領域となっている領域の画素の輝度値について補正は行なわれない。したがって、上記構成によれば、合成画像データにて第1領域となっている領域の画素の寄与を、合成画像データにて第2領域となっている領域の画素の寄与に比べて十分に低くすることができる。
なお、ここでは、差分画像データに抽出領域データZmを乗じることによって重み付けを行なう例について説明したが、抽出領域データZmや抽出領域データZmnを用いずに重み付けを行なうこともできる。例えば、画像更新部48が、正規化後撮像画像データ、または撮像画像データの各画素位置の輝度値を参照して、差分画像データの各画素の輝度値が、第1領域の画素に基づいて算出されたものであるか第2領域の画素に基づいて算出されたものであるかの判定を行い、該判定結果に基づいて重みを付与するようにしてもよい。
また、ここでは、第1領域と第2領域との2つの領域に関して重み付けを行なう例を説明したが、3以上の領域に分割してもよい。例えば、撮像装置20の有効ダイナミックレンジ範囲において入射光量と出力が線形でない場合には、3以上の領域に分割し、各領域に応じた重みを付与することが好ましい。
具体例を挙げれば、輝度値が0〜255までの256階調である場合には、輝度値が0〜2の範囲の重みを0とし、輝度値が3〜7の範囲及び、輝度値が248〜252の範囲の重みを第2領域の重みの1/4とし、輝度値が253〜255の範囲の重みを0とすればよい。このように、輝度値が有効ダイナミックレンジに近い領域ほど、超解像処理への寄与が大きくなるように、段階的に重み付けを行なうことにより、撮像画像データを正確に反映させた高精度な高解像度画像データを生成することができる。
〔超解像処理部におけるダイナミックレンジ拡大超解像処理の流れ〕
次に、DR拡大超解像処理部35において実行される超解像処理について、図4に基づいて説明する。図4は、DR拡大超解像処理部35において実行される超解像処理の一例を示すフローチャートである。以下の説明において、m×n枚の撮像画像データymnが撮像装置20によって撮像され撮像条件保存部32に格納されているものとする。なお、ここでは、簡単のため、撮像条件として露光時間のみを変更する例について説明するが、露光時間以外の撮像条件も変更してもかまわない。さらに、ここでは複数組の撮像画像セットを用いて超解像処理を行なう例を説明するが、少なくとも1組の撮像画像セットがあれば超解像処理を行なうことができる。
まず、領域抽出部47及び正規化処理部43は、上記格納されたm×n枚の撮像画像データymnを取得すると共に、撮像条件保存部32からm×n枚の撮像画像データymnの撮像に用いられた撮像条件を読み出す(S201)。
領域抽出部47は、撮像画像データymnを取得すると、m×n枚の撮像画像データymnのそれぞれから、撮像画像データymnの輝度値分布に基づいて、白とび領域や黒つぶれ領域等の不適正露光領域を特定し、これを第1領域として抽出する(S202)。そして、領域抽出部47は、m×n枚の正規化した撮像画像データの各画素が第1領域に属するか、第2領域に属するかを示す抽出領域データZmnを生成する。
一方、正規化処理部43は、上記取得した撮像条件から、各撮像画像データymnの露光時間を取得し、該取得した露光時間に基づいて撮像画像データymnを正規化する(S203)。そして、正規化処理部43は、正規化によって生成した撮像画像データymnを画像合成部44に送る。
画像合成部44は、撮像画像データymnを受け取ると、各撮像画像セットにおいて、同じ撮像位置で撮像して得られた撮像画像データを合成してm枚1セットの合成撮像画像データymを生成し、該生成したm枚の合成撮像画像データymを差分画像生成部45に送る(S204)。また、画像合成部44は、領域抽出部47に指示して、m×n枚の撮像画像データymnに対応する抽出領域データZmnを、m枚の合成撮像画像データymに対応する抽出領域データZmに更新させる。なお、撮像セット数が1である場合、S204の処理は省略可能である。
ここで、画像処理システム1は、合成撮像画像データを用いて超解像処理を行なうが、合成撮像画像データを用いてイメージシフト処理を行なうようにしてもよい。合成撮像画像データを用いてイメージシフト処理を行なう場合には、撮像画像データを用いてイメージシフト処理を行なう場合と比べて、ダイナミックレンジの広い高解像度画像データを生成することができる。なお、イメージシフト処理は、合成撮像画像データの各画素の輝度値を、高解像度画像データの各画素にマッピングすることによって行なわれる。
画像合成部44が合成撮像画像データymの生成を終了した後、または撮像セット数が1である場合には、擬似低解像度画像生成部46は、高解像度画像保存部34に格納されている初期高解像度画像データhを取得する(S205)。
続いて、擬似低解像度画像生成部46は、上記取得した初期高解像度画像データhを、m枚の撮像画像データのそれぞれと位置合わせすると共に、光学的劣化要因やダウンサンプリング等の要因を考慮して低解像度化を行ない、擬似低解像度画像データを生成する(S206)。
具体的には、擬似低解像度画像生成部46は、初期高解像度画像データhに数式(2)で示したBmを乗じて、擬似低解像度画像データBmhを生成する。なお、初期高解像度画像データhは1枚であるが、擬似低解像度画像データBmhは、撮像画像データのそれぞれに位置合わせされているので、擬似低解像度画像データBmhの枚数はm枚になる。そして、擬似低解像度画像生成部46は、上記生成した擬似低解像度画像データBmhを差分画像生成部45に送る。
差分画像生成部45は、擬似低解像度画像データBmhを受け取ると、受け取った擬似低解像度画像データBmhから、画像合成部44が生成した合成撮像画像データymを引いて、m枚の差分画像データXmを算出する(S207)。そして、差分画像生成部45は、該算出したm枚の差分画像データXmを重み付け画像更新部48に送る。なお、撮像画像データが1セットのみである場合には、差分画像生成部45は、擬似低解像度画像データBmhから撮像画像データymを引いて、m枚の差分画像データXmを算出する。
画像更新部48、差分画像データXmを受け取ると、領域抽出部47が生成した抽出領域データZmに基づいて重み付けを行なう(S208)。具体的には、画像更新部48は、差分画像データXmにαZmを乗じることによって、差分画像データXmの各画素の輝度値を補正した重み付け差分画像データXmαZmを生成する。なお、αは抽出領域データZmに乗じる重みであり、αの値は必要に応じて適宜設定することができる。
例えば、ここでは、抽出領域データZmにおいて、第1領域の画素の輝度値を1とし、第2領域の画素の輝度値を255とすることを想定しているので、αの値を1/255に設定すればよい。これにより、重み付け差分画像データXmαZmにおける第1領域の画素の輝度値が全て1以下の値に補正される一方、第2領域の画素の輝度値は差分画像データXmと同じになる。したがって、第1領域に属する画素の輝度値の寄与を第2領域の画素と比べて低くすることができ、これにより超解像処理の精度を向上させることができる。
さらに画像更新部48は、重み付けを行なうことにより生成した重み付け差分画像データXmαZmを評価関数に代入して、評価値Eを算出する(S209)。なお、評価関数は、例えば上記従来の超解像処理と同様に、上記数式(3)を用いることができる。そして、画像更新部48は、上記算出した評価値Eと予め設定した閾値と比較する(S210)。なお、上記従来の超解像処理と同様に、上記閾値は、要求される高解像度化の精度に応じて適宜変更することができる。
評価値Eの値が上記閾値よりも小さい場合(S210においてYES)には、画像更新部48は、超解像処理を終了する。そして、このときに高解像度画像保存部34に格納されている高解像度画像データhが、超解像処理の結果となる高解像度画像データということになる。
一方、評価値Eの値が上記閾値以上である場合(S210においてNO)には、画像更新部48は、評価値Eの値が小さくなるように、当該評価値Eの算出に用いた高解像度画像データhを更新する(S211)。画像更新部48は、例えば上記従来の超解像処理と同様に、上記数式(4)を用いることによって、高解像度画像データhを更新することができる。画像更新部48は、更新した高解像度画像データhを高解像度画像保存部34に格納する。
その後、再びS206から210までの処理が繰り返される。そして、DR拡大超解像処理部35では、評価値Eの値が上記閾値よりも小さくなるまでS206から210までの処理が繰り返される。これにより、所望の倍率で高解像度化がなされた所望の精度の高解像度画像データhを得ることができる。
なお、上記のフローチャートは、本発明の超解像処理の一例を示すものであり、本発明は、この例に限定されない。例えば、超解像処理に用いる全ての撮像画像データを同じ撮像条件で撮像した場合には、S203の正規化処理は省略してもよい。
また、上述のように、高解像度画像データhから擬似低解像度画像データBmhを生成するときには、PSFの畳み込み処理が行なわれる。このPSFの畳み込み処理により、重み付けによって輝度値の値が十分小さい値に補正された画素の輝度値は、当該画素の周囲に位置する画素の輝度値の影響によって補間更新される。したがって、白とびや黒つぶれが発生した第1領域の画素の画素値についても、S206から210までの処理が繰り返されることによって撮像対象の形状及び色彩を反映させた値に近づいてゆく。
すなわち、撮像画像データが1セットm枚のみのときに撮像画像データに第1領域が含まれている場合には、超解像画像処理に有効なデータが減少するが、このような場合においても、高解像画像データhは、全く更新されないわけではない。
また、超解像処理に用いられる撮像画像セットに含まれる撮像画像データの各々が異なる撮像条件で撮像されていてもかまわない。もちろん、撮像画像データが1セットm枚のみの場合においても、撮像画像データの各撮像条件が異なっていてもかまわない。
〔複数の撮像画像セットを用いる場合の問題点とその解決手段〕
上記のように、複数の撮像画像セットを用いることにより、高解像度画像データのダイナミックレンジを拡大することができる。しかしながら、複数の露光時間で撮像を行なう場合には、露光時間の種類の数だけ、撮像時間が倍増するという問題がある。
例えば、前述の超解像処理において、3倍の解像度の高解像度画像データを得るには、9回の撮像を行なう必要がある。この場合に、露光時間を100ミリ秒に設定すると、900ミリ秒で撮像は終了する。しかしながら、露光時間を100ミリ秒、200ミリ秒、300ミリ秒の3通りに設定した場合には、撮像終了までに最短でも5400ミリ秒の時間を要する。
この問題を解消するべく、本実施形態では、撮像位置決定装置10を用いて撮像画像データの撮像位置を決定するようにしている。これにより、複数の露光時間で撮像を行ないつつ、撮像回数を減らすことができる。これにより、撮像時間の増加を抑えながら、ダイナミックレンジが拡大された高解像度画像データを生成することができる。以下では、撮像位置決定装置10の詳細について説明する。
〔撮像位置決定装置の詳細〕
図1は、撮像位置決定装置10の要部構成を示すブロック図である。図示のように、記憶部11は、撮像情報記憶部13と、組合せ別撮像位置記憶部14と、組合せ別重み記憶部15とを含む構成である。
撮像情報記憶部13には、撮像画像データを撮像する際の撮像条件と、当該撮像条件における撮像枚数とが対応付けられた撮像情報が予め記憶される。
ここで、図5を用いて、撮像情報記憶部13が記憶している撮像情報の具体例について説明する。図5は、撮像情報記憶部13が記憶している撮像情報の一例を示すデータテーブルである。同図に示すように、撮像情報は、撮像画像群によって特定される撮像情報の識別子を示す「撮像画像群番号」、撮像条件を示す「撮像条件/露光時間」、当該撮像条件で撮像する撮像枚数を示す「撮像枚数」、当該撮像条件で撮像する撮像画像データの識別子を示す「画像番号」、当該撮像条件の他の撮像条件に対する優先度を示す「優先度」の項目を含む。
なお、ここでは、撮像条件として露光時間のみを変えることを想定しているので、撮像情報には、「露光時間」を示す情報が含まれているが、露光時間以外の撮像条件を変える場合には、その撮像条件が撮像情報として撮像情報記憶部13に格納される。
図5の撮像情報では、“撮像画像群G1”および“撮像画像群G2”の2つのレコードが含まれている。また、“撮像画像群G1”および“撮像画像群G2”のレコードでは、それぞれ、優先度として“1”および“2”が設定されている。
なお、優先度は、撮像位置を決めるときに用いられる。つまり、撮像位置決定装置10は、優先度が高い順に撮像画像群の撮像位置を決定する。また、撮像位置決定装置10は、優先度が高い撮像画像群に由来する画素が、高解像度画像データ上において均等に配列するようにする。本実施形態では、優先度は、1が最も優先度が高いことを意味し、2以上の優先度は、数が大きくなるにつれて、順に優先度が下がるものとする。
ここでは、ハレーションによる白とびの影響を除外することを主眼としているので、白とびが発生し難い撮像条件で撮像された撮像画像群(露光時間の短い撮像画像群)の優先度を高くしている。これは、高解像度画像データにおいて、白とびが発生していない撮像画像データに由来する画素が均等に配列することによって、白とびが発生している撮像画像データに由来する画素の輝度値を適切に補間することが可能であるからである。なお、優先度は必要に応じて適宜設定することができる。
組合せ別撮像位置記憶部14は、組合せ別撮像位置算出部(第1撮像位置設定手段)17および条件別撮像位置選択部(第2撮像位置設定手段)18が決定する撮像位置を記憶しておくものである。組合せ別撮像位置記憶部14は、撮像位置が決定するまでの一定期間の記憶を担うワーキングエリアであってもよいし、永続的に撮像位置を記憶しておくようなものであってもよい。
組合せ別重み記憶部15は、重み付け撮像位置決定部19が決定する撮像位置をより適切な位置に補正するために用いる重みを記憶するものである。重みの詳細については後述する。
また、図示のように、撮像位置計算部12は、組合せ別撮像位置算出部17と、条件別撮像位置選択部18と、重み付け撮像位置決定部(重み付け撮像位置設定手段)19とを備えている。
組合せ別撮像位置算出部17は、撮像情報記憶部13に格納されている各撮像画像群の撮像位置を決定する。そして、条件別撮像位置選択部18は、組合せ別撮像位置算出部17が算出した撮像位置に基づいて、各撮像条件に対応する撮像位置を決定する。
例えば、9つの撮像位置で撮像を行なう場合に、第1の撮像条件で撮像を行なう4つの撮像位置と、第2の撮像条件で撮像を行なう5つの撮像位置とを決定するときには、組合せ別撮像位置算出部17および条件別撮像位置選択部18は、以下のような手順で撮像位置を決定する。
まず、組合せ別撮像位置算出部17は、撮像情報記憶部13に格納されている撮像画像群の中から最も優先度の高い撮像画像群を選択し、選択した撮像画像群の撮像位置を決定する。例えば、図5の例では、撮像画像群G1の優先度が最も高いので、組合せ別撮像位置算出部17は、撮像画像群G1に含まれる4枚の撮像画像について、その撮像位置を決定する。
なお、詳細については後述するが、このときに、組合せ別撮像位置算出部17は、撮像位置がなるべく等間隔に分散する位置になるように撮像位置を決定する。撮像位置決定装置10の主な特徴点は、この撮像位置の決定方法にある。
続いて、組合せ別撮像位置算出部17は、撮像情報記憶部13に格納されている撮像画像群の中から次に優先度の高い撮像画像群を選択し、選択した撮像画像群の撮像位置の候補を決定する。例えば、図5の例では、組合せ別撮像位置算出部17は、優先度が次に高い撮像画像群G2に含まれる9枚の撮像画像について、その撮像位置を決定する。
このように、撮像情報記憶部13に格納されている全ての撮像画像群について、組合せ別撮像位置算出部17が撮像位置を決定すると、条件別撮像位置選択部18は、組合せ別撮像位置算出部17が決定した9つの撮像位置から、組合せ別撮像位置算出部17が決定した4つの撮像位置のそれぞれから最短距離に位置する4つの撮像位置を除いた5つの撮像位置を第2の撮像条件で撮像を行なう撮像位置として決定する。これにより、第1の撮像条件で撮像を行なう撮像位置と第2の撮像条件で撮像を行なう撮像位置とが決定される。
重み付け撮像位置決定部19は、組合せ別撮像位置算出部17が決定した撮像位置を補正する。例えば、図5の例では、重み付け撮像位置決定部19は、組合せ別撮像位置算出部17が決定した4つの撮像位置を、該4つの撮像位置と、9つの撮像位置から選択された上記4つの撮像位置(5つの撮像位置として選択されなかった撮像位置)のそれぞれから最短距離に位置する4つの撮像位置とを結ぶ線分上の予め設定された重みに応じた位置に補正する。この重みは、組合せ別重み記憶部15に予め格納されている。なお、この重みに基づく撮像位置の決定方法の詳細については後述する。
〔撮像位置の分散についての考え方〕
ダイナミックレンジを拡大するためには、異なる撮像条件(露光条件)下で撮像した撮像画像データを用いることが必要である。しかし、撮像画像データの使用枚数が増えると、撮像に要する時間が増大してしまうので、撮像画像データの使用枚数は増加させないことが好ましい。
ここで、例えば、図6のような高解像度画像データが生成されるような撮像位置で撮像を行なうことにより、撮像画像データの使用枚数を増加させずにダイナミックレンジを拡大することができる。
図6は、高解像度画像データにおいて、異なる撮像条件で撮像された撮像画像データに由来する画素の配置の一例を示す図であり、同図(a)は高解像度画像データの生成に用いられた撮像画像データにハレーション等が発生していない状態を示し、同図(b)は高解像度画像データの生成に用いられた撮像画像データのうち、露光時間が長い撮像画像データにハレーションが発生している状態を示している。
なお、図6では、露光時間aで撮像された4枚の撮像画像データと露光時間bで撮像された5枚の撮像画像データとを用いて超解像処理を行ない、撮像画像データの3倍の解像度を有する高解像度画像データを生成した例を示している(a<b)。図18に基づいて説明したように、高解像度画像データの各画素は、撮像画像データの各画素に基づいて生成される。図6では、露光時間aで撮像された撮像画像データに由来する画素と、露光時間bで撮像された撮像画像データに由来する画素とを色分けして示している。
また、図18で説明したように、3倍に高解像度化する場合には、撮像画像データの1画素の1/3ピッチで撮像位置を8方向に移動させながら、各撮像位置にて1回ずつ撮像を行ない、このピッチが高解像度画像データの1画素分の幅となる。
つまり、図6のような高解像度画像データを生成するために、画素T2を露光時間bで撮像した後、撮像位置を同図の右向きに撮像画像データの1画素の1/3ピッチ移動させて露光時間aで撮像が行なわれ、さらに撮像位置を同図の右向きに撮像画像データの1画素の1/3ピッチ移動させて露光時間bで撮像が行なわれたことになる。
このように、高解像度画像データの各画素は、該画素の元になる各撮像画像データに対応しており、高解像度画像データの各画素の位置は、該画素の元になる各撮像画像データの撮像位置に対応している。
ここで、図6の例では、露光時間bで撮像された撮像画像データに由来する画素が、4つ集まっている箇所が存在する。このような箇所があったとしても、各撮像画像データが第1領域(白とび、黒つぶれ等が発生した領域)を含まず、第2領域(撮像対象の形状、色彩等が正常に反映された領域)のみを含む場合、特に問題は無い。
ここで、高解像度画像データの生成に用いられる何れかの撮像画像データにおいて、第1領域が含まれる場合、その撮像画像データに対応する高解像画像データの画素において情報が欠落することになる。
例えば、露光時間bで撮像して得られた撮像画像データは、b>aであることから、露光時間aで撮像して得られた撮像画像データに白とびの領域が含まれていない場合であっても、露光時間bで撮像して得られた撮像画像データには、白とびの領域が含まれる可能性がある。
特に、撮像条件の設定の仕方によっては、一方の撮像条件で撮像された撮像画像データに第1領域の画素が大量に発生することがある。例えば、図6の例ように、一方の露光時間が長い場合には、長い露光時間で撮像された撮像画像データの広い領域で白とびが発生することがある。
図6の(b)は、露光時間aで撮像した撮像画像データは、すべて第2領域であり、露光時間bで撮像して得られた撮像画像データがすべて第1領域(白とび)である場合の高解像画像データについて示している。同図では「j(ジェイ)」の符号を付した領域は、白とびになっている領域を表している。これは、当該領域に対応する撮像画像データが、すべて第1領域(白とび)であったために、当該撮像画像データの情報が、高解像画像データの画素の生成になんら寄与していなかったことを示している。
なお、撮像画像データの第1領域(白とび)の以外の、第2領域の部分を用いることによって、高解像度画像データの白とび部分の画素を推定することは可能である。しかしながら、この場合には、本来推定の基準になるべき撮像画像データの部分とは異なる部分、つまり第1領域に分類される画素と離れた位置にある第2領域に分類される画素に基づいて推定を行なうことになる。
なぜならば、撮像画像データに白とびや黒つぶれの領域では、高解像画像データの生成に有効な画像情報が欠落しており、このような領域は、超解像処理になんら寄与しないからである。よって、このような場合、推定の精度が低下し、ひいては高解像画像データの品質の低下につながる。
このような推定精度の低下は、撮像画像データが第1領域を含むことにより、有効な撮像画像データの画素に粗密が生じることにより起こるといえる。特に、図6(b)のように、一方の露光時間が長く、長い露光時間で撮像された撮像画像データの広い領域で白とびが発生した場合には、有効な撮像画像データの画素に粗密が生じることが著しい。
従って、撮像画像データのある画素が第1領域に分類されるものであっても、その替わりに推定の基準になる第2領域に分類される画素が極端に離れないように撮像位置を定める必要がある。つまり、高解像度画像データにおいて、同じ撮像条件で撮像した撮像画像データに由来する画素が密集しないように、各撮像条件で撮像を行なうときの撮像位置を決定する必要があり、撮像位置の分散の度合いを考慮した撮像位置決定手法が必要になる。また、このような手法で決定した撮像位置を重み付け処理によって補正することによって、より好適な撮像位置が得られる。
〔撮像位置を分散する手法〕
以下では、撮像位置決定装置10が実行する、重み付けや、撮像位置の分散の度合いを考慮した撮像位置決定手法について説明していく。まず、図7から図9を用いて各撮像条件における撮像位置を分散する手法について説明する。撮像位置を分散するには、撮像位置の位置関係を把握することが重要である。
まず、図7を用いて撮像位置の位置関係を把握する手法について説明する。図7は、撮像位置の位置関係を把握する手法を示す説明図である。図7では、一例として4つの撮像位置の位置関係を示している。なお、図7において、KLは、基準となる撮像素子1つの撮像領域(基準画素領域)を示し、VL 0〜VL 3は位置関係を把握する対象となる4つの撮像位置(撮像領域)の中心を示している。
ここで、高解像度画像データの元になる撮像画像データを取得するための撮像位置は、撮像素子1つの幅を越えない範囲内、より詳細には、各撮像位置における撮像領域の中心に、高解像度画像データの1画素に相当する領域を配置したときに、該領域が基準画素領域内に含まれる範囲内で設定される。例えば、図18の例においても、P13〜P93は何れもT1の内部に含まれている。したがって、VL 0〜VL 3もKLの枠内となる。
KLの枠内において、撮像位置を分散させるためには、VL 0〜VL 3の相互の距離(両矢印が付されているVL 0−VL 1、VL 0−VL 2、VL 0−VL 3、VL 1−VL 2、VL 1−VL 3およびVL 2−VL 3の6通り)を求め、その最小値が最大になるような撮像位置を決定すればよいが、KLの枠内のみの位置関係を考慮した場合には、KLの枠内の撮像位置と、KLに隣接する撮像素子の撮像位置とが近接することがある。
例えば、図6の高解像度画像データでは、1つの撮像素子に対応する3×3の9つの画素において、4つの短時間露光画素と5つの長時間露光画素とがそれぞれ分散して配置されている。しかしながら、図6の例では隣接する撮像素子における撮像位置が考慮されていないので、高解像度画像データの全体から見れば、撮像位置が均一に分散されていない箇所が生じている。
そこで、撮像位置決定装置10では、隣接する撮像素子における撮像位置も考慮して、高解像度画像データの全体から見て撮像位置が均一に分散するように撮像位置を決定する。これにより、高解像度画像データに同じ撮像条件で撮像した撮像画像データに由来する画素が密集しないようにすることができ、撮像画像データの枚数を増やさずとも高精度な高解像度画像データを生成することができる。
図7(b)では、KLに隣接する撮像素子KRの撮像位置VR 0〜VR 3を示している。図示のように、隣接する撮像素子KRの撮像位置VR 0〜VR 3を考慮すれば、VL 1との距離を求めるべき撮像位置が4つ追加されることになる(両矢印が付されているVL 1−VR 0、VL 1−VR 1、VL 1−VR 2およびVL 1−VR 3の4通り)また、VL 0、VL 2、VL 3についても同様であるから、合計で16箇所の距離を求める必要がある。
また、撮像素子KLの右方向に隣接する撮像素子は、撮像素子KRだけではないので、撮像素子KLの右方向以外の方向に隣接する撮像素子についても、撮像位置の位置関係を調べることになる。
なお、全体で撮像素子KLの周囲8方向に撮像素子が隣接する8つの場合が考えられるが、対称性により、位置関係を調べるのは半分の4つの場合だけでよい。なぜならば、撮像素子KLの右に隣接する撮像素子KRの撮像位置の位置関係を調べることと、撮像素子KLの左に隣接する撮像素子の撮像位置の位置関係を調べることとは同じことだからである。
以上のように、撮像素子KLの枠内の撮像位置は、該枠内の撮像位置間の距離の最小値を最大化し、また撮像素子KLの枠内の撮像位置と、撮像素子KLに隣接する撮像素子の枠内の各撮像位置との距離の最小値を最大化する、という条件に基づいて決定される。
続いて、図8および9を用いて、これらの距離を具体的に求め、撮像位置を決定する手法を以下に説明する。以下で説明するのは、図6で示したような、露光時間aで4枚、露光時間bで5枚の撮像を行って得た計9枚の撮像画像データを用いて超解像処理を行なう場合についてである。
まず、図8を用いて、撮像素子の枠内における撮像位置間の距離の求め方について説明する。図8は、撮像素子の枠内に含まれる4つの撮像位置を2次元座標で表した説明図である。ここでは、VB 0をx−y座標平面上の原点とする2次元座標系を導入して説明する。そして、上記2次元座標系において、撮像素子KBが占める領域を、撮像位置VB 0を基準とする位置に平行移動したのが領域RBである。また、同図では、左右方向右向きをx軸の正の向きとし、左右方向左向きをy軸の正の向きとする。また、ここでは、簡単のため撮像素子KBは一辺の長さがhの正方形状であるとする。
ここで、撮像位置VB 0、VB 1、VB 2、VB 3の2次元座標を、それぞれ、(0,0)、(x1,y1)、(x2,y2)および(x3,y3)とすると、撮像位置VB 0、VB 1、VB 2、VB 3の相互の距離は、以下の数式(6−1)〜(6−6)によって表現できる。
なお、上記数式におけるBは、撮像素子KBについての距離であることを示し、pおよびqは、撮像位置VB p、VB qの間の距離であることを示している。
次に、図9を用いて、撮像素子KBの枠内の撮像位置と、撮像素子KBに隣接する撮像素子の枠内の撮像位置との距離の求め方について説明する。図9は、撮像素子と、当該撮像素子に隣接する撮像素子との位置関係を2次元座標で表した説明図である。
前述のとおり、求めるべき撮像位置間の距離は、ある撮像素子に対して左、左下、左上、下の4方向に隣接する撮像素子の撮像位置との間の距離である。同図では、撮像素子KBの左に撮像素子K1、左下に撮像素子K2、下に撮像素子K3、下に撮像素子K3が位置しているものとし、領域R1、領域R2、領域R3は、撮像素子K1〜K3に対応する領域である。
図9(a)に示すように、領域R1には、撮像素子K1の撮像位置V1 0、V1 1、V1 2、V1 3が含まれる。撮像位置V1 0、V1 1、V1 2、V1 3は、それぞれ、撮像位置VB 0、VB 1、VB 2、VB 3をx軸の負の方向にhだけ移動させたものであるので、撮像位置V1 0、V1 1、V1 2、V1 3の2次元座標は、それぞれ、(−h,0)、(x1−h,y1)、(x2−h,y2)および(x3−h,y3)となる。
前述の例に倣って、領域RBに含まれる撮像位置VB 0、VB 1、VB 2、VB 3と、領域R1に含まれる撮像位置V1 0、V1 1、V1 2、V1 3との間の距離を、d1 pqと表記する。d1 pqの添え字の意味については、1は、領域RBと領域R1とに含まれる撮像位置についての距離であることを示し、pおよびqは、撮像位置VB p、V1 qの間の距離であることを示している。
ここで、領域RBの撮像位置VB 0、VB 1、VB 2、VB 3と、領域R1の撮像位置V1 0、V1 1、V1 2、V1 3とを結ぶ線分は全部で16本あるが、16本の線分すべてについて距離を求めなくてもよい。次の理由により、その中の9本の線分について距離を求めれば足りる。すなわち、p=qの場合、d1 pq=hである。また、q=0の場合、dB p0<d1 p0となる。したがって、このようなd1 p0は、考慮しなくてもよい。すると、求めるべき距離は以下の9つ数式(7−1)〜(7−9)で表されたものだけになる。このように、予め計算すべき対象を絞り込んでおくことで、撮像位置を決定するために撮像位置計算部12が実行する計算の量を減らすことができる。
同様に、図9の(b)に示す領域RBと領域RBの左下に隣接する領域R2との間における撮像位置間の距離、図9の(c)に示す領域RBと領域RBの下に隣接する領域R3との間における撮像位置間の距離、および、図9の(d)に示す領域R2と領域R3との間における撮像位置間の距離を求めることができる。
このような演算を行なうことによって、6+(4×9)=42通りの距離が求まる。そして、42通りの距離の最小値が、最大になるような撮像位置を求めるには、次の数式(8)で表される評価式について非線形最適化処理を行なえばよい。この数式(8)は、k箇所の撮像位置、すなわち2k次元ベクトルの変数を持つ連続関数であるため、数値解法によって、その解を求めることができる。
以上により、高解像度画像データの全体から見て分散した撮像位置を求めることができる。なお、ここでは1つの撮像素子の枠内に含まれる4つの撮像位置を決定する例を示したが、同様の手法にて任意の数の撮像位置を決定することができる。例えば、図6の例において、露光時間bで撮像する5つの撮像位置を決める場合には、求めるべき距離の総数は228個になるが、この場合にも同じ計算方法が適用できる。
以上において説明した撮像位置を分散する手法は、一般的に次のように表現できる。すなわち、1つの撮像素子の枠内でk回の撮像を行なう場合に、注目した撮像素子の枠内における各撮像位置間の距離dB mnは、撮像位置の各々を、(x0、y0)=(0,0)、(x1、y1)、…、(xk、yk)とすると、撮像素子の枠内における撮像位置間の距離は、次の数式(9)で表現できる。
なお、上記数式(9)において、m≠nであり、m、n={1、…、k}である。
また、上記注目した撮像素子の枠内の撮像位置と、当該撮像素子に隣接する撮像素子の枠内に含まれる各撮像位置との相互の距離di mnは、次の数式(10)で表現できる。
そして、これらの距離dB mnおよびdi mnについて数式(8)で表される評価式を解くことにより、分散した撮像位置を決定することができる。
以上のように、撮像位置決定装置10は、撮像画像データの1画素に相当する形状を有する基準画素領域がマトリクス状に配列された基準撮像位置を仮想的に設定した場合に、撮像画像データの1画素に相当する形状の中心に位置する、高解像度画像データの1画素に相当する形状を有する中心領域が、上記基準画素領域内に含まれるように撮像位置を設定する。また、少なくとも1つの撮像条件で撮像する撮像画像データについては、マトリクス状に配列された上記基準画素領域の全体に対して、上記中心領域が均一またはほぼ均一な位置に配置される撮像位置を設定する。
これにより、高解像度画像データ上において、同じ撮像条件で撮像した撮像画像データに基づいて生成される画素が均等に配置されるので、何れかの撮像条件で撮像した撮像画像データにハレーション等が生じた場合であっても、近隣の画素で補間処理を行なうことができるので、高解像度画像データの精度低下を防ぐことができる。
〔撮像位置決定処理の流れ〕
次に、図10に示すフローチャートを参照しながら、撮像位置決定装置10が、重み付けや、撮像位置の分散を考慮して撮像位置を決定する場合の動作について説明する。図10は、撮像位置決定装置10が撮像位置を決定する処理である撮像位置決定処理の一例を示すフローチャートである。
なお、ここでは、露光時間aで4枚、露光時間bで5枚の撮像を行って得た計9枚の撮像画像データを用いて超解像処理を行なう場合について説明する。すなわち、以下では、図5に示したレコードが、撮像情報記憶部13に記憶されているものとする。
まず、撮像位置決定装置10において、撮像位置決定処理が開始されると、撮像位置計算部12の組合せ別撮像位置算出部17は、撮像情報記憶部13に記憶されている撮像情報から、優先度が最も高い撮像画像群を特定し、特定した撮像画像群の撮像枚数を読み出す(S301)。図5の例では、優先度が最も高い撮像画像群G1の撮像枚数である「4」が読み出される。
続いて、組合せ別撮像位置算出部17は、上記読み出した撮像枚数の撮像を行なうときの撮像位置が略均等になる撮像位置を計算する(S302)。この撮像位置の算出方法は、上記〔撮像位置を分散する手法〕で説明したとおりである。ここでは、各撮像素子の枠内において、4つの撮像位置が決定されるので、図11ような撮像位置が決定される。
図11は、9回の撮像を行なう場合に、9回のうち4回の撮像を行なう撮像位置が均等になるように決定した撮像位置を示す図である。なお、同図において、Kは撮像素子を示し、Paは撮像位置を高解像度画像データの画素で示したものである。したがって、P1の一辺の長さは、撮像素子Kの一辺の長さの1/3ということになる。図示のように、P1は、撮像素子Kを2×2の4分割して得られる各矩形の中央に位置しており、高解像度画像データの全面に均等に配置されている。
そして、組合せ別撮像位置算出部17は、算出した4つの撮像位置を組合せ別撮像位置記憶部14に記憶する。なお、上述のように、図5の例では露光時間の短い撮像画像群の優先度を高くしている。つまり、S301で読み出された撮像枚数は、露光時間aで撮像する撮像枚数を示している。以下では、S302で計算された露光時間aに対応する4つの撮像位置を、撮像位置群Paと呼ぶ。
次に、組合せ別撮像位置算出部17は、撮像情報記憶部13に記憶されている撮像情報から、優先度が低い方の撮像画像群を特定し、特定した撮像画像群の撮像枚数を読み出す。図5の例では、撮像画像群G2の撮像枚数である「9」が読み出される。続いて、組合せ別撮像位置算出部17は、上記読み出した撮像枚数の撮像を行なうときの撮像位置が略均等になる撮像位置を計算する(S303)。ここでは、各撮像素子の枠内において、9つの撮像位置が決定されるので、図12のような撮像位置が決定される。
図12は、9回の撮像を行なう撮像位置が均等になるように決定した撮像位置を示す図である。なお、同図において、Kは撮像素子を示し、Pabは上記決定された撮像位置に対応する高解像度画像データの画素を示している。図示のように、Pabは、撮像素子Kを3×3の9分割した位置となっており、高解像度画像データの全面に均等に配置されている。
そして、組合せ別撮像位置算出部17は、算出した9つの撮像位置を組合せ別撮像位置記憶部14に記憶する。なお、上述のように、ここでは超解像処理に9枚の撮像画像データを用いることを想定している。つまり、S301で読み出された撮像枚数「9」は、露光時間aおよびbで撮像する撮像枚数を示している。以下では、S303で計算された露光時間aおよびbに対応する9つの撮像位置を、撮像位置群Pabと呼ぶ。
S302において、露光時間aで撮像する4枚の撮像画像データの撮像位置は決定済みであるから、次に、条件別撮像位置選択部18は、露光時間bで撮像する5枚の撮像画像データの撮像位置を決定する(S304)。具体的には、条件別撮像位置選択部18は、組合せ別撮像位置記憶部14に記憶された9つの撮像位置の中から、5つの撮像位置が9つの撮像位置の中で略均等な配置となるように撮像位置を選択する。以下では、S304で選択された露光時間bに対応する5つの撮像位置を、撮像位置群Pbと呼ぶ。
例えば、図13のようにして撮像素子群Pbの5つの撮像位置を決定することができる。図13は、9回の撮像を行なう撮像位置が均等になるように決定した撮像位置から選択した9つの撮像位置から選択された5つの撮像位置に対応する高解像度画像データの画素の配置を示す図である。
なお、同図において、Kは撮像素子を示し、Pbは上記選択された撮像位置に対応する高解像度画像データの画素を示している。条件別撮像位置選択部18は、図示のように、基準画素領域内に9つの中心領域をマトリクス状に配置したときの、9つの中心領域のそれぞれに対応する撮像位置から5つの撮像位置、すなわち、撮像位置群Pbを選択して設定する。
図示のように、条件別撮像位置選択部18よって設定されたPbは、撮像素子Kを3×3の9分割して得られる矩形の中央、左上、左下、右上、および右下に位置している。また同図では、9つの撮像位置のうち、5つの撮像位置として選択されなかった4つの撮像位置に対応する高解像度画像データの画素をPa’で示している。この画素Pa’に対応する撮像位置群を撮像位置群Pa’と呼ぶ。
なお、図10の例では、撮像位置群Paを決定した後に撮像位置群Pa’および撮像位置群Pbを決定する例を示しているが、撮像位置群Pa’および撮像位置群Pbを先に決定してもよいし、これらの撮像位置群を決定する処理を平行して行なうようにしてもよい。
以上のようにして、組合せ別撮像位置算出部17が露光時間aに対応する4つの撮像位置からなる撮像位置群Paを決定し、条件別撮像位置選択部18が露光時間bに対応する5つの撮像位置からなる撮像位置群Pbおよび4つの撮像位置からなる撮像位置群Pa’を決定して、組合せ別撮像位置記憶部14に記憶すると、その旨が重み付け撮像位置決定部19に通知される。
通知を受けた重み付け撮像位置決定部19は、組合せ別撮像位置記憶部14に記憶されている撮像位置群Paと、Pa’とを読み出す。そして、重み付け撮像位置決定部19は、撮像位置群PaとPa’との、重み付け平均によって求めた4つの撮像位置を露光時間aに対応する最終的な撮像位置として決定する(S305)。
具体的には、重み付け撮像位置決定部19は、S302で求めた露光時間aに対応する4つの撮像位置(撮像位置群Pa)のそれぞれと、撮像位置群Pa’に含まれる撮像位置のそれぞれとの距離(例えば、撮像位置の中心を示す2次元座標間の距離)を求め、撮像位置群Paに含まれる撮像位置のそれぞれについて、その撮像位置と最も近い位置の撮像位置群Pa’に含まれる撮像位置を特定する。
つまり、ここでは撮像位置群Paに含まれる撮像位置と、撮像位置群Pa’に含まれる撮像位置とで、最近傍となる撮像位置のペアが特定される。この例では、撮像位置群PaおよびPa’は、それぞれ4つの撮像位置で構成されているので、4組のペアが特定される。なお、1つの撮像位置に対して、同じ距離の撮像位置が複数存在する場合には、同じ距離の撮像位置から1つの撮像位置を選択し、撮像位置群Paに含まれる各撮像位置と、撮像位置群Pa’に含まれる各撮像位置とが一対一となるペアを特定する。
そして、重み付け撮像位置決定部19は、上記特定した最近傍となる撮像位置のペアについて、組合せ別重み記憶部15に格納されている重みを用いて重み付けを行なうことによって、撮像位置群Paの各撮像位置を補正して、露光時間aに対応する4つの最終的な撮像位置を決定する。
つまり、重み付け撮像位置決定部19は、撮像位置群Paの撮像位置と、撮像位置群Pa’の撮像位置の中で、上記撮像位置群Paの撮像位置と最近傍となる撮像位置とを結ぶ線分上に最終的な撮像位置を決定する。そして、この線分上の位置を決めるのが重みということになる。
ここで、撮像位置群Paは、隣接する撮像素子における撮像位置の分散も考慮して決められているので、撮像位置群Paを露光時間aに対応する撮像位置として決定した場合には、高解像度画像データにおいて、露光時間aで撮像された撮像画像データに由来する画素が均一に分布する(図11参照)。
つまり、撮像位置群Paを適用した場合には、露光時間bで撮像された撮像画像データにハレーションが発生して白とび画素が生じたとしても、露光時間bよりも短い露光時間aで撮像された撮像画像データに由来する画素が均一に分布することから、高解像度画像データにおいて、白とび画素を近隣の画素で補間することができる。
一方、撮像位置群Paは、図18で説明したような一般的な撮像位置である撮像位置群Pa’からずれているので、白とび等の発生を考慮しなければ、撮像位置群Paを露光時間aに対応する撮像位置として決定した場合には、撮像位置群Pa’を露光時間aに対応する撮像位置として決定した場合と比べて、高解像度画像データの精度が落ちることも考えられる。
そこで、重み付け撮像位置決定部19は、白とびや黒つぶれ画素の補間と、高解像度画像データの精度とのバランスを適切に設定するために、重み付けを行なって、撮像位置PaとPa’との間で最終的な撮像位置を決定する。つまり、白とびや黒つぶれ画素の補間を重視する場合には、撮像位置群Paの重みが大きく設定される。一方、白とびや黒つぶれ画素の補間の必要性が低い場合には、撮像位置群Pa’の重みが大きく設定される。
重み付けを行なった後の最終的な撮像位置は、例えば図14に示すような態様となる。図14は、最終的に決定された撮像位置の一例を示す図である。同図のPaは、露光時間aで撮像する撮像位置に対応する高解像度画像データの画素を示し、同図のPbは、露光時間bで撮像する撮像位置に対応する高解像度画像データの画素を示している。
図14の例では、白とび画素の補間を重視する例を示しており、撮像位置群Paの重みが1、撮像位置群Pa’の重みが0に設定されている。この場合には、図示のように、撮像位置群Pa’は考慮されず、撮像位置群Paがそのまま露光時間aに対応する撮像位置として決定される。
無論、重みの設定は、上記の例に限られない。例えば、撮像位置群Paの重みを0.5、撮像位置群Pa’の重みを0.5に設定してもよい。この場合には、撮像位置群Paと撮像位置群Pa’との中間地点が露光時間aに対応する撮像位置として決定される。つまり、重みは、重み付けの対象となる各撮像位置群の重みの総和が1になるように設定されていればよい。
なお、本実施形態では、撮像位置群Paの重みを1、撮像位置群Pa’の重みを0に固定することを想定しているが、重みは変更できるように構成することが好ましい。これにより、例えば生成した高解像度画像データの外観(エッジの出方、ボヤケ方等)を確認した後、その確認結果に応じて重みを変更することによって、最適な重みを決定し、より高精度な高解像度画像データを生成することも可能になる。
以上の処理により、全ての撮像位置が決定されるので、重み付け撮像位置決定部19は、決定した撮像位置と、該撮像位置に置ける撮像条件(この例では露光時間がaかbかを示す情報)とを対応付けて撮像条件保存部32に格納する。そして、撮像条件保存部32に格納されている撮像条件に基づいて撮像制御部31が撮像装置20を駆動することによって、撮像位置決定装置10が決定した撮像位置で撮像が行なわれ、撮像画像データが取得される。
撮像条件は、例えば図15に示すようなデータ構造とすることもできる。図15は、撮像条件のデータ構造の一例を示す図である。図示のように、撮像条件には、撮像画像データの識別子である画像番号、撮像条件(この例では露光時間)、撮像位置を示す撮像X座標および撮像Y座標の項目が含まれている。
なお、図15の例では、撮像条件として具体的な数値が示されている。この数値は、撮像位置決定装置10が設定してもよいし、他の装置(例えば制御装置30)で設定してもよい。この数値を画像処理システム1のユーザが入力、設定、および変更することができるように構成することが好ましい。
画像処理システム1では、撮像制御部31が、このようなデータを用いて撮像装置20を駆動することによって、図14に示すような撮像位置で撮像が行なわれ、撮像画像データが取得される。そして、取得された撮像画像データを上述のダイナミックレンジ拡大超解像処理に供することにより、ダイナミックレンジの拡大された高解像度画像データを生成する。
〔超解像処理について〕
上述のダイナミックレンジ拡大超解像処理では、複数の撮像画像セットを用いる例について説明したが、撮像位置決定装置10は1組の撮像画像セットの撮像位置を決定するものである。したがって、撮像位置決定装置10が決定した撮像位置で撮像された撮像画像データを用いて超解像処理を行なう場合の処理は、上述した処理と部分的に異なったものとなる。ここでは、撮像位置決定装置10が決定した撮像位置で撮像された撮像画像データを用いて超解像処理を行なう場合の処理について、図3に基づいて説明する。
撮像位置決定装置10が撮像条件保存部32に撮像条件を格納し、この撮像条件に基づいて撮像された撮像画像データが低解像度画像保存部33に格納されると、正規化処理部43は、撮像条件保存部32に格納されている撮像条件に基づいて、低解像度画像保存部33に格納された撮像画像データの正規化を行なう。撮像位置決定装置10は、1枚の高解像度画像データを生成するために必要な1セットの撮像画像データの撮像に用いられる撮像位置を決定するので、ここではこの1セットの撮像画像データ間で正規化が行なわれる。
正規化が行なわれた後は、領域抽出部47によって領域抽出を行なって高解像度画像データを生成するようにしてもよいし、一般的な超解像処理と同様の手順で高解像度画像データを生成することも可能である。この場合には、擬似低解像度画像生成部46が、高解像度画像保存部34に格納されている高解像度画像データを低解像度化した擬似低解像度画像データと、上記正規化後の撮像画像データとの差分画像データが差分画像生成部45によって生成される。そして、この差分画像データを評価関数に代入して評価値を求め、評価値が小さくなるように高解像度画像データを更新する処理を繰り返すことにより、高解像度画像データを生成することができる。
〔撮像条件が3通り以上の場合について〕
上記では、撮像条件が2通りの場合に撮像位置を決定する例ついて説明したが、撮像位置決定装置10は、撮像条件が3通り以上の場合にも撮像位置を決定することができる。ここでは、撮像条件が3通りの場合に撮像位置を決定する例について図16に基づいて説明する。図16は、撮像位置決定装置10において、撮像条件が3通りであるときに、撮像位置を決定する場合における処理の流れの一例を示すフローチャートである。
ここでは、撮像情報記憶部13には、撮像情報として、“撮像画像群G11”、“撮像画像群G12”および“撮像画像群G13”が記憶されているものとする。また、 “撮像画像群G11”の「撮像枚数」には“A”枚が、「優先度」には“1”が設定されているものとする。そして、“撮像画像群G12”の「撮像枚数」には“A+B+C”枚が、「優先度」には“3”が設定されているものとし、“撮像画像群G13”の「撮像枚数」には“C”枚が、「優先度」には“2”が設定されているものとする。
また、撮像画像群G11は露光時間aで撮像を行ない、撮像画像群G12は露光時間bで撮像を行ない、撮像画像群G13は露光時間cで撮像を行なうものとする。露光時間の大小関係は、a<b<cである。
このように、撮像条件を3つにした場合には、撮像条件が2つの場合と比べてダイナミックレンジをより拡大することができる。すなわち、露光時間bで撮像された撮像画像データの一部領域が白とびしている場合には、より露光時間が短い露光時間aで撮像された撮像画像データを用いることによって白とび画素の輝度値を補間することができる。同様に、露光時間bで撮像された撮像画像データの一部領域が黒つぶれしている場合には、より露光時間が短い露光時間aで撮像された撮像画像データを用いることによって黒つぶれ画素の輝度値を補間することができる。
まず、撮像位置決定装置10において、撮像位置決定処理が開始されると、撮像位置計算部12の組合せ別撮像位置算出部17は、撮像情報記憶部13に記憶されている撮像情報から、優先度が最も高い撮像画像群を特定し、特定した撮像画像群の撮像枚数を読み出す。この例では、優先度が最も高い撮像画像群G11の撮像枚数である“A”が読み出される。
そして、組合せ別撮像位置算出部17は、上記読み出した撮像枚数の撮像を行なうときの撮像位置が分散する撮像位置を求める(S401)。この撮像位置の算出方法は、上記〔撮像位置を分散する手法〕で説明したとおりである。以下の説明では、S401で求めたA個の撮像位置を撮像位置群Paと呼ぶ。組合せ別撮像位置算出部17は、求めた撮像位置を組合せ別撮像位置記憶部14に記憶する。
次に、組合せ別撮像位置算出部17は、撮像情報記憶部13に記憶されている撮像情報から、優先度が2番目に高い撮像画像群を特定し、特定した撮像画像群の撮像枚数を読み出す。この例では、撮像画像群G13の撮像枚数である“C”が読み出される。
そして、組合せ別撮像位置算出部17は、上記読み出した撮像枚数の撮像を行なうときの撮像位置が分散する撮像位置を計算する(S402)。この撮像位置の算出方法は、上記〔撮像位置を分散する手法〕で説明したとおりである。以下の説明では、S402で求めたC個の撮像位置を撮像位置群Pcと呼ぶ。組合せ別撮像位置算出部17は、求めた撮像位置を組合せ別撮像位置記憶部14に記憶する。
さらに、組合せ別撮像位置算出部17は、撮像情報記憶部13に記憶されている撮像情報から、優先度が最も低い撮像画像群を特定し、特定した撮像画像群の撮像枚数を読み出す。この例では、撮像画像群G12の撮像枚数である“A+B+C”が読み出される。
そして、組合せ別撮像位置算出部17は、上記読み出した撮像枚数の撮像を行なうときの撮像位置が分散する撮像位置を計算する(S403)。この撮像位置の算出方法は、上記〔撮像位置を分散する手法〕で説明したとおりである。以下の説明では、S403で求めたA+B+C個の撮像位置を撮像位置群Pabcと呼ぶ。組合せ別撮像位置算出部17は、求めた撮像位置を組合せ別撮像位置記憶部14に記憶する。
以上のようにして、組合せ別撮像位置算出部17が撮像画像群G11〜13に対応する撮像位置群を求めると、条件別撮像位置選択部18は、上記撮像位置群Pabcから、撮像位置群Paに含まれる各撮像位置と距離が近いA個の撮像位置を選択してこれを撮像位置群Pa’とする。また、条件別撮像位置選択部18は、残りのB+C個の撮像位置を撮像位置群Pbcとする(S404)。
続いて、条件別撮像位置選択部18は、上記求めた撮像位置群Pbcから、撮像位置群Pcに含まれる各撮像位置と距離が近いC個の撮像位置を選択してこれを撮像位置群Pc’とする。また、条件別撮像位置選択部18は、残りのB+C個の撮像位置を撮像位置群Pbとする(S404)。この撮像位置群Pbに対しては重み付けが行なわれず、このまま露光時間bで撮像を行なう撮像位置として決定される。
一方、露光時間aまたはcで撮像を行なう撮像位置については、重み付けによって最終的な撮像位置が決定される。すなわち、組合せ別撮像位置算出部17および条件別撮像位置選択部18は、撮像画像群Pa、Pc、Pa’、Pc’の各撮像位置を決定した後、その旨を重み付け撮像位置決定部19に伝達する。
そして、伝達を受けた重み付け撮像位置決定部19は、撮像画像群PaとPa’とで重み付けを行なって露光時間aで撮像するA個の最終的な撮像位置を算出する。また、重み付け撮像位置決定部19は、撮像画像群PcとPc’とで重み付けを行なって露光時間cで撮像するC個の最終的な撮像位置を算出する(S406)。
以上の処理により、露光時間aで撮像するA個の撮像位置と、露光時間bで撮像するB個の撮像位置と、露光時間cで撮像するC個の撮像位置とが求められ、これらの撮像位置が撮像条件保存部32に格納されて、撮像位置決定処理は終了する。
このように、撮像条件が3種類である場合も、撮像条件が2種類である場合と同様に、まず、優先度の高い撮像条件で撮像する撮像位置(図10の撮像位置群Pa、図16の撮像位置群Pa、Pc)が上記〔撮像位置を分散する手法〕で説明した方法によって求められる。
そして、優先度の低い撮像条件で撮像する撮像位置(図10および図16の撮像位置群Pb)は、通常の撮像位置(図12、図13参照)となる。また、この通常の撮像位置のうち、撮像位置として決定されなかったもの(図10の撮像位置群Pa’、図16の撮像位置群Pa’、Pc’)と、上記〔撮像位置を分散する手法〕で説明した方法によって求められた撮像位置(図10の撮像位置群Pa、図16の撮像位置群Pa、Pc)とでペアが形成される。そして、形成されたペア間で重み付けを行なうことによって、最終的な撮像位置が決定される。
なお、図10の例では、撮像位置群Pabの中から撮像位置群Pbを決定し、決定されなかった撮像位置を撮像位置群Pa’としており、図16の例では、撮像位置群Pabcの中から撮像位置群Paに対応する位置のものを撮像位置群Pa’として決定し、さらに撮像位置群Pbcの中から撮像位置群Pcに対応する位置のものを撮像位置群Pc’として決定している。そして、選択されなかった撮像位置を撮像位置群Pbとしている。
つまり、図10の例と図16の例とでは、優先度の低い撮像条件に対応する撮像位置の決定プロセスが逆転している。この処理では、図18や図12、図13に示すような一般的な撮像位置の中から、優先度の低い撮像条件に対応する撮像位置と、優先度の高い撮像条件に対応する撮像位置とが選択されればよいので、何れのプロセスを採用しても構わない。
〔その他の高解像度化処理への適用〕
上記では、撮像位置決定装置10によって決定された撮像位置で撮像した撮像画像データを用いて超解像処理を行なう例について説明したが、この撮像画像データは、超解像処理以外の高解像度化手法においても利用することが可能である。
例えば、補間による高解像度化の手法について適用することができる。補間によって撮像画像データを高解像度化する場合には、高解像画像データの各画素データを周囲の撮像画像データの画素データに基づいて生成する補間処理を行なう。
ここで、周囲の撮像画像データにおいて白とび領域等の有効な画像情報が欠落した領域が含まれる場合には、高解像度画像データの画素データが、離れた位置にある撮像画素データの画素から算出される。このような場合には、補間処理の精度が低下してしまう。
これに対し、以上に説明した撮像位置決定方法を用いて、撮像位置が分散するように撮像位置を決定して得た撮像画像データを用いる場合には、補間処理の対象となる画素がほぼ均一に分散するので、補間処理の精度の低下を防ぐことができる。なお、この場合には、複数の露光時間で撮像を行なって得た撮像画像データを用いるので、撮像画像データの輝度値を正規化した後で補間処理が行なわれる。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔ソフトウェアで構成する場合の例〕
最後に、撮像位置決定装置10の各ブロック、特に組合せ別撮像位置算出部17、条件別撮像位置選択部18および重み付け撮像位置決定部19は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、撮像位置決定装置10は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである撮像位置決定装置10の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記撮像位置決定装置10に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、撮像位置決定装置10を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。