本発明の第1態様では、画像高解像度化装置として、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部と、前記光源情報および形状情報を用いて、前記画像撮像部によって撮像された原画像から、前記被写体のアルベド画像を作成するアルベド推定部と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成されたアルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えたものを提供する。
本発明の第2態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記アルベド推定部は、前記原画像に代えて、前記拡散反射・鏡面反射分離部によって分離された拡散反射画像から、アルベド画像を作成する前記第1態様の画像高解像度化装置を提供する。
本発明の第3態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像撮像部は、前記被写体の偏光状態を取得するものであり、前記拡散反射・鏡面反射分離部は、前記画像撮像部によって取得された偏光状態を用いて、前記分離を行う前記第1態様の画像高解像度化装置を提供する。
本発明の第4態様では、前記アルベドデータベースが蓄積している変換規則は、前記原画像と解像度が同一のアルベド画像と前記原画像よりも解像度が高いアルベド画像とを用いた学習処理によって、求められたものである前記第1態様の画像高解像度化装置を提供する。
本発明の第5態様では、前記アルベド推定部によって作成されたアルベド画像について、前記アルベドデータベースに蓄積された変換規則に従った高解像度化の信頼性を評価する画像高解像度化判断部を備え、前記アルベド高解像度化部は、前記画像高解像度化判断部によって信頼性が低いと評価されたとき、前記アルベドデータベースに蓄積された変換規則を用いないで、前記アルベド画像の高解像度化を行う前記第1態様の画像高解像度化装置を提供する。
本発明の第6態様では、画像高解像度化装置として、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、方向および位置のうち少なくともいずれか一方を含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部と、前記光源情報および形状情報を用いて、前記画像撮像部によって撮像された原画像から、前記被写体の擬似アルベド画像を作成するアルベド推定部と、低解像度擬似アルベド画像を高解像度擬似アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成された擬似アルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度擬似アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えたものを提供する。
本発明の第7態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記アルベド推定部は、前記原画像に代えて、前記拡散反射・鏡面反射分離部によって分離された拡散反射画像から、擬似アルベド画像を作成する前記第6態様の画像高解像度化装置を提供する。
本発明の第8態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像撮像部は、前記被写体の偏光状態を取得するものであり、前記拡散反射・鏡面反射分離部は、前記画像撮像部によって取得された偏光状態を用いて、前記分離を行う前記第6態様の画像高解像度化装置を提供する。
本発明の第9態様では、前記アルベドデータベースが蓄積している変換規則は、前記原画像と解像度が同一の擬似アルベド画像と前記原画像よりも解像度が高い擬似アルベド画像とを用いた学習処理によって、求められたものである前記第6態様の画像高解像度化装置を提供する。
本発明の第10態様では、前記アルベド推定部によって作成された擬似アルベド画像について、前記アルベドデータベースに蓄積された変換規則に従った高解像度化の信頼性を評価する画像高解像度化判断部を備え、前記アルベド高解像度化部は、前記画像高解像度化判断部によって信頼性が低いと評価されたとき、前記アルベドデータベースに蓄積された変換規則を用いないで、前記擬似アルベド画像の高解像度化を行う前記第6態様の画像高解像度化装置を提供する。
本発明の第11態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像高解像度化部は、前記拡散反射・鏡面反射分離部によって分離された鏡面反射画像を高解像度化し、前記高解像度化された鏡面反射画像を用いて、前記高解像画像の作成を行う前記第1または第6態様の画像高解像度化装置を提供する。
本発明の第12態様では、前記画像高解像化部は、前記鏡面反射画像の高解像度化を、前記形状情報の高密化処理を利用して、行う前記第11態様の画像高解像度化装置を提供する。
本発明の第13態様では、画像高解像度化方法として、被写体を撮像した原画像を取得する第1のステップと、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する第2のステップと、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する第3のステップと、前記光源情報および形状情報を用いて、前記原画像から、前記被写体のアルベド画像を作成する第4のステップと、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド画像を高解像度化する第5のステップと、前記第5のステップにおいて得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する第6のステップとを備えたものを提供する。
本発明の第14態様では、画像高解像度化プログラムとして、コンピュータに、被写体を撮像した原画像から、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報、および、前記被写体の、表面の法線情報または3次元位置情報である形状情報を用いて、前記被写体のアルベド画像を作成する第1のステップと、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド画像を高解像度化する第2のステップと、前記第2のステップにおいて得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する第3のステップとを実行させるものを提供する。
本発明の第15態様では、通信端末とサーバとを有し、画像を高解像度化する画像高解像度化システムとして、前記通信端末は、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部とを有し、前記画像撮像部によって撮像された原画像、前記光源情報推定部によって推定された光源情報、および、前記形状情報取得部によって取得された形状情報を送信するものであり、前記サーバは、前記通信端末から送信された前記原画像、光源情報および前記形状情報を受信し、かつ、前記光源情報および形状情報を用いて、前記原画像から、前記被写体のアルベド画像を作成するアルベド推定部と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成されたアルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えているものを提供する。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1および図2は本実施形態に係る画像高解像度化装置の構成を示している。また、図3は本実施形態に係る画像高解像度化方法の処理の流れを示すフローチャートである。さらに、図4は本実施形態に係る画像高解像度化装置が搭載されたカメラの構成例を示している。
図1に示す画像高解像度化装置は、撮像装置によって被写体の撮像を行う画像撮像部201と、被写体に照射する光源に関する光源情報を推定する光源情報推定部203と、被写体の形状情報を取得する形状情報取得部204と、光源情報および形状情報を用いて、前記画像撮像部201によって撮像された原画像から被写体のアルベド画像を作成するアルベド推定部206と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベース(DB)208と、アルベドDB208から変換規則を取得し、この変換規則に従って、アルベド推定部206によって作成されたアルベド画像を高解像度化するアルベド高解像度化部207と、アルベド高解像度化部207によって得られた高解像度アルベド画像と、光源情報および形状情報を用いて、原画像を高解像度化した高解像度画像を作成する画像高解像度化部217を備えている。
光源情報推定部203が推定する光源情報は、光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む。被写体情報推定部204は、被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する。
図2に示す画像高解像度化装置は、図1の構成を基本にしたものであり、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うものである。さらに、原画像から影領域を除去した後に高解像度化を行い、高解像度化後に影領域を付加するようにしている。
すなわち、図1の構成に加えて、画像撮像部201によって撮影された原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部202と、分離後の画像から影領域の推定を行う影除去部205とをさらに備えている。アルベド推定部221は、画像撮像部201によって撮影された原画像に代えて、拡散反射・鏡面反射分離部202によって分離された拡散反射画像から、光源情報および形状情報を用いて、アルベド画像を作成する。
また、画像高解像度化部217は、アルベド高解像度化部207によって得られた高解像度アルベド画像を用いて、高解像度拡散反射画像を作成する拡散反射画像高解像度化部209と、形状情報取得部204によって取得された形状情報と拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を利用して、被写体を表現するパラメータを推定するパラメータ推定部210と、形状情報取得部204によって取得された形状情報を高密度化する形状情報高密度化部211と、低密度形状情報を高密度形状情報に変換する変換規則を蓄積している法線データベース(DB)212を利用して、パラメータ推定部210によって求められたパラメータを高密度化するパラメータ高密度化部213と、形状情報高密度化部211によって推定された高密度形状情報と、パラメータ高解像度化部213によって高密度化されたパラメータを利用し、高解像度鏡面反射画像を合成する鏡面反射画像高解像度化部214と、影領域を生成する影生成部215と、レンダリング部216とを備えている。
以下、図2の構成に基づいて、各構成要素における処理について説明する。なお、図2の構成では、原画像から影領域を除去した後に高解像度化を行い、高解像度化後に影領域を付加するようにしているが、本発明において、影領域の除去および付加は必ずしも行う必要はない。また、図2の構成では、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うようにしているが、本発明において、拡散反射画像と鏡面反射画像との分離は必ずしも行う必要はない。例えば、原画像がほぼ拡散反射成分のみからなると考えられる場合には、拡散反射画像と鏡面反射画像との分離は必要でなく、原画像についてアルベド画像を利用した高解像度化を行えばよい。この場合、装置の構成は図1のようになる。
画像撮像部201はCCDやCMOSなどの撮像装置を利用して、被写体を撮像する(ステップS401)。こうして撮像された画像は、輝度が非常に高くなる鏡面反射成分と拡散反射成分とを同時に、飽和することなく記録されることが望ましい。このため、冷却CCDカメラや多重露光撮像など、広いダイナミックレンジを撮像できる撮像装置を利用することが望ましい。また、画像撮像部201は後述するように、偏光フィルタを利用して撮像を行うことが望ましい。これにより、被写体の偏光状態を取得することができ、拡散反射・鏡面反射分離部202は、画像撮像部201によって取得された偏光状態を用いて、分離を行うことができる。
拡散反射・鏡面反射分離部202は、画像撮像部201によって撮像された原画像を、拡散反射画像と鏡面反射画像とに分離する(ステップS402)。ここで、拡散反射画像とは、入力画像のうち、マットな反射成分である拡散反射成分のみを画像化したものであり、同様に、鏡面反射画像は、入力画像のうち、てかりである鏡面反射成分のみを画像化したものである。ここで、拡散反射成分とは、光沢の無い物体表面で起こる反射のように、すべての方向に一様に散乱する成分である。一方、鏡面反射成分とは、鏡の面での反射のように、法線に対して入射光の反対方向に強く反射する成分である。2色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分との和として表現される。後述するように、鏡面反射画像と拡散反射画像は、例えば偏光フィルタを回転させながら被写体を撮像することによって取得することができる。
図5(a)は、光源で照射された被写体(タンブラー)を撮像装置で撮像した画像を示している。図の上部にてかりである鏡面反射が現れているのがわかる。一方、図5(b)(c)は、図5(a)の画像を後述する方法で拡散反射画像と鏡面反射画像とに分離した結果である。拡散反射画像はてかりが取り除かれ、表面のテクスチャ情報が鮮明になっているが、立体感が失われている。一方、鏡面反射画像は細かな形状情報が鮮明に現れているが、逆にテクスチャ情報が失われている。つまり、入力画像はこれら全く異なる情報を含んだ二つの画像が重畳されたものであった。画像を拡散反射画像と鏡面反射画像とに分離し、別々に処理することにより、より精細な高解像度化処理が可能である。
前述のように、2色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分の和として以下の式で表現される。
ここで、Iは撮像装置が撮像した被写体の輝度値、Iaは環境光成分、Idは拡散反射成分、Isは鏡面反射成分である。ここで、環境光成分とは、光源の光が物体などによって散乱された間接光のことである。これは空間の至る所に散乱され、直接光がとどかない影の部分にもわずかに明るさを与える。そのため、通常はノイズとして取り扱われることが多い。
環境光成分は十分に小さく、ノイズとして無視できると考えると、画像は拡散反射成分と鏡面反射成分とに分離できる。上述のように、拡散反射成分がテクスチャ情報に依存するのに対し、鏡面反射画像は細かな形状情報に依存するといったように、これらの成分は非常に異なった特質を示す。そのため、画像を高解像度化するために、入力画像を拡散反射画像と鏡面反射画像とに分離し、それぞれの画像を別々の方法で高解像度化することによって、非常に高精細な高解像度化画像を取得することができる。このため、まずは拡散反射画像と鏡面反射画像とを分離する必要性がある。
この分離方法は、従来からさまざまなものが提案されている。例えば、
・鏡面反射と拡散反射の偏光度の違いを利用し、偏光フィルタを用いた方法(例えば、特許第3459981号公報)。
・対象物を回転させ、マルチスペクトルカメラを利用することで鏡面反射領域を分離する方法(例えば、特開2003−85531号公報)。
・様々な方向から光源を当てた対象物の画像を利用し、鏡面反射が生じない理想状態での画像である線形化画像を合成し、その線形化画像を利用して鏡面反射や影領域を分離する方法(例えば、「石井育規,福井孝太郎,向川康博,尺長健,“光学現象の分類に基づく画像の線形化“,情報処理学会論文誌,vol.44,no.SIG5(CVIM6),pp.11−21,2003」)。
などがある。
ここでは、偏光フィルタを利用する方法を用いる。図6は本実施形態に係る画像高解像度化装置が搭載されたカメラ付き携帯電話1000を示している。図6に示すように、撮像装置1001には回転機構(図示せず)をもった直線偏光フィルタ1016Aが設けられている。また、直線偏光フィルタ1016Bが取り付けられた照明装置1007が設けられている。また、1017は使用者のインターフェイス用の液晶ディスプレイである。
ここで、直線偏光フィルタ1016Bが取り付けられた照明装置1007に照らされた被写体について、撮像装置1001が、直線偏光フィルタ1016Aを回転機構により回転させながら、複数枚の画像を撮像する。ここで、照明が直線偏光されていることに着目すると、反射光強度は偏光フィルタ1016の回転角ψに対して、図7のように変化する。ここで、反射光の拡散成分をI
d、鏡面反射成分をI
sとすると、反射光輝度の最大値I
maxと最小値I
minは以下の式で表現される。
つまり、反射光の拡散成分I
d、鏡面反射成分I
sは、以下の式から求まる。
図8はこの処理の流れを示したものである。まず、回転機構により偏光フィルタ1016Aを回転させ(ステップS301)、画像を撮像し、メモリに保持する(ステップS302)。次に、メモリに保持された画像が、所定の枚数撮像されているかを確認する(ステップS303)。このとき、反射光輝度の最小値と最大値を検出するのに十分な枚数がまだ撮像されていない場合(ステップS303でNo)、偏光フィルタを再度回転させ(ステップS301)、撮像を繰り返す。一方、十分な枚数の撮像ができている場合(ステップS303でYes)、撮像された画像データを利用して、反射光輝度の最小値と最大値を検出し(ステップS304)、(式13)と(式14)を利用することにより、拡散反射成分と鏡面反射成分とを分離する(ステップS305)。この処理は、複数枚の画像から画素ごとに最小値と最大値を求めても構わないが、ここでは、sin関数のフィッテングを利用する。この処理を説明する。
図7に示した、偏光フィルタ角ψに対する反射光輝度Iは、以下のように、sin関数で近似できる。
ここで、A、B、Cは定数であり、(式13)、(式14)より
つまり、撮像された画像から、(式15)のA,B,Cを求めることにより、拡散反射成分と鏡面反射成分とを分離することができる。
ところで、(式15)は以下のように展開できる。
ただし、
つまり、以下の評価式を最小にするA,B,Cを求めることで、拡散反射成分と鏡面反射成分を分離することができる。
ただし、I
iは、偏光フィルタ角ψ
i時の反射光強度を示している。ここで、最小自乗法を用いると、各パラメータは以下のように推定される。
以上より、(式16)〜(式23)を利用することで、拡散反射成分と鏡面反射成分とを分離する。この場合、未知パラメータが3個であるため、偏光フィルタの回転角を変更した画像を最低3枚撮像すればよい。
このため、直線偏光フィルタ1016Aの回転機構を設ける代わりに、画素ごとに偏光方向の異なる撮像装置を利用しても構わない。図9はこのような撮像装置の画素を模式的に示したものである。ここで、1022は各画素を示し、各画素内の直線は偏光方向を示している。すなわち、この撮像装置は0°、45°、90°、135°の4種類の偏光方向を有する画素を持つ。そして、図9の太線1023のように、4種類の画素をベイヤ配列のように1画素として取り扱うことによって、偏光方向が4種類異なった画像を同時に撮像することができる。このような撮像装置は、例えば、フォトニック結晶デバイスなどを利用すればよい。
また、このような偏光フィルタと回転装置は、カメラ自体が持つのではなく、着脱可能な構成にしても構わない。例えば、一眼レフカメラの交換レンズに、偏光フィルタと回転装置を搭載する。図10はこのような画像高解像度化装置が搭載されたカメラと交換レンズの構成例を示している。カメラ1101は、直線偏光フィルタ1016の回転を指示する信号を交換レンズ1102に送信するための信号送信装置1045を有する。交換レンズ1102は、直線偏光フィルタ1016と、信号送信装置1045から送信された信号を受信する信号受信装置1046と、直線偏光フィルタ1016の回転を指示する信号を信号受信装置1046が受信したとき、直線偏光フィルタ1016を回転させるモータ1044とを有する。
図11はこのような画像高解像度化装置が搭載されたカメラと交換レンズの模式図である。カメラ1101には電気信号を送信する接点1103が設けられており、交換レンズ1102には電気信号を受信する接点1104が設けられている。カメラ1101と交換レンズ1102とがマウント1105によって結合されたとき、両接点1103,1104が接触する。これにより、カメラ1101から交換レンズ1102に信号を送信することが可能になり、カメラ1101から直線偏光フィルタ1016の回転を指示する信号を送信して、モータ1044によって直線偏光フィルタ1016を回転させることができる。
また、照明装置1007として、偏光された照明例えば液晶ディスプレイを利用してもかまわない。例えば、携帯電話1000に搭載されている液晶ディスプレイ1017を利用すればよい。この場合、液晶ディスプレイ1017の輝度値を、利用者のインターフェイス用として利用しているときに比べ、高くすることが望ましい。
もちろん、撮像装置1001の偏光フィルタ1016Aを回転させる代わりに、照明装置1007の偏光フィルタ1016Bを回転させてもかまわない。また、撮像装置1001と照明装置1007の両方に偏光フィルタを設置する代わりに、撮像装置側など片側のみに設置し、独立成分分析を利用して拡散反射成分と鏡面反射成分とを分離させてもかまわない(例えば、特許3459981号公報参照)。
光源情報推定部203は、光源情報として、光源の方向、さらには色情報や照度情報を取得する(ステップS403)。これは例えば、被写体近傍に光源情報を推定するための形状既知の鏡面などを配置し、画像撮像部201によって撮像したその鏡面の画像から推定すればよい(例えば、「神原誠之,横矢直和,″光源環境の実時間推定による光学的整合性を考慮したビジョンベース拡張現実感″,電子情報通信学会技術研究報告,パターン認識・メディア理解,PRMU2002−190,pp.7−12,2003」)。この処理について詳述する。
光源情報推定部203は、図12に示した鏡面とみなせる球3001を利用して行う。鏡面球3001を被写体近傍に設置し、その位置や法線方向は既知とする。この鏡面球3001を画像撮像部201によって撮像する。このとき、鏡面球3001には、撮影環境が映り込んでいる。映り込みが生じる位置は、その鏡面球上の法線方向に対して、視線方向と映り込む対象への方向が正反射の関係となる位置である。そのため、鏡面球の位置とその法線方向が既知であれば、鏡面上の映り込んだ画像から映り込み対象の方向を検出できる。また、光源は輝度値が高いことを考慮すると、撮影された鏡面球の画像から、高輝度の画素を検出することにより、光源の方向を取得できる。さらに、鏡面の反射率が既知であれば、光源の色情報や放射輝度などの光源照度情報も取得できる。
もちろん、光源情報として、光源の方向だけではなく、あるいは光源の方向に代えて、光源の位置情報を取得するようにしても構わない。これは、例えば前述の鏡面球を2つ利用し、画像処理分野で広く知られているステレオ処理を利用すればよい。また、光源までの距離が既知の場合には、前述の方法で光源方向を推定することによって、光源の位置を推定することができる。
もちろん、このような鏡面球を常に撮影するのではなく、以前に撮影して求めた光源情報を使うようにしても構わない。これは、屋内の監視カメラのように光源環境が変わらない場合に有効である。このような場合、カメラを設置した際に鏡面球を撮影し、光源情報を取得するようにすればよい。
形状情報取得部204は、被写体の形状情報として、被写体の表面の法線情報、または被写体の3次元位置情報を取得する(ステップS404)。被写体の形状情報を取得する手段としては、例えば、スリット光投影法、パターン光投影法、レーザレーダ法などの既存の手法を用いればよい。
もちろん、形状情報の取得はこれらの手法に限られるものでない。例えば、複数のカメラを利用するステレオ視、カメラの動きを利用するモーションステレオ法、光源の位置を変化させながら撮像した画像を利用する照度差ステレオ法、ミリ波や超音波を利用して被写体との距離を測定する方法、さらには反射光の偏光特性を利用した方法(例えば、米国特許第5,028,138号や「宮崎大輔,池内克史,″偏光レイトレーシング法による透明物体の表面形状の推定手法″,電子情報通信学会論文誌,vol.J88−D−II,No.8,pp.1432−1439,2005」)を用いてもかまわない。ここでは、照度差ステレオ法と偏光特性を利用した方法について説明する。
照度差ステレオ法は、光源方向が異なる3枚以上の画像を利用して、被写体の法線方向と反射率を推定する手法である。例えば、「H.Hayakawa,”Photometric Stereo under a light source with arbitrary motion”,Journal of the Optical Society of America A,vol.11,pp.3079−89,1994」は、画像上で6点以上の反射率が等しい点を既知情報として取得し、拘束条件として利用することによって、光源の位置情報も未知としながらも、以下のパラメータを推定する手法である。
・被写体情報:画像上の各点の法線方向と反射率
・光源情報:被写体の観察点における光源方向と照度
ここでは、前述の拡散反射・鏡面反射分離手法によって分離された拡散反射画像のみを利用した照度差ステレオ法を行う。本来、この手法は被写体が完全拡散反射をしていることを仮定しているため、鏡面反射が存在する被写体では大きな誤差が生じてしまう。しかし、分離した拡散反射画像のみを利用することで、鏡面反射の存在による推定誤差を無くすことができる。もちろん、後述するように、影除去部205で影領域を除去した拡散反射画像で処理を行なっても構わない。
光源方向が異なる拡散反射画像を以下のように輝度行列I
dで表現する。
ただし、i
df(p)は光源方向fの拡散反射画像の画素pにおける輝度値を示している。また、画像の画素数はP画素、異なった光源方向で撮像した画像枚数はF枚である。ところで、ランバーシャンモデルより、拡散反射画像の輝度値は以下のように表現できる。
ただし、ρ
pは画素pの反射率(アルベド)、n
pは画素pの法線方向ベクトル、t
fは光源fの入射照度、L
fは光源fの方向ベクトルを示している。
(式24)、(式25)より以下の式が導かれる。
ただし、
ここで、Rは表面反射行列、Nは表面法線行列、Lは光源方向行列、Tは光源強度行列、Sは表面行列、Mは光源行列と呼ぶ。
ここで、特異値分解を利用すると、(式26)は以下のように展開できる。
ただし、
であり、Eは単位行列を示している。また、U’はP×3行列、U”はP×(F−3)行列、Σ’は3×3行列、Σ”は(F−3)×(F−3)行列、V’は3×F行列、V”は(F−3)×F行列である。ここで、U”、V”は信号成分であるU’、V’の直交基底、すなわち、ノイズ成分であると考えられる。ここで、特異値分解を利用すると、(式28)は以下のように変形できる。
すなわち、(式29)を解くことにより、形状情報と光源情報を同時に取得することができるが、以下の3×3行列Aの不定性が残る。
ここで、Aは任意の3×3行列である。形状情報と光源情報を取得するためには、この行列Aを求める必要がある。これは、例えば、画面上の6点以上で反射率が等しいことが既知であればよい。例えば、任意の6点k1〜k6の反射率が等しいとすると、
(式27)、(式30)と(式32)より、
さらに、
とおくと、(式33)は以下のようになる。
ここで、(式34)より行列Bは対称行列であるため、行列Bの未知数は6である。すなわち、画面上の6点以上で反射率が等しいことが既知であれば、(式35)は解くことができる。
また、行列Bが既知となれば、(式34)に特異値分解を利用することにより、行列Aは解くことができる。
さらに、(式30)、(式31)より、形状情報と光源情報を取得する。
以上のことより、反射率が等しい6点以上の画素が既知な被写体において、光源方向を変更しながら3枚以上の画像を撮像することにより、以下の情報を得ることができる。
・被写体情報:画像上の各点の法線方向ベクトルと反射率
・光源情報:被写体の観察点における光源方向ベクトルと放射輝度
ただし、上記の処理で求まる被写体の反射率と光源の放射輝度は相対的なものであり、絶対値を求めるためには、画面上の6点以上で反射率が既知であるなど、上記とは異なる既知情報が必要となる。
また、光源と撮像装置との位置関係が既知の場合、撮像装置と被写体の距離や3次元位置を求めるようにしても構わない。これを図を用いて説明する。
図13はこの処理を説明するための模式図である。図13において、1001は撮像装置、1007Aおよび1007Bは光源、1015は被写体の観察点O、1010Aおよび1010Bは被写体の観察点Oにおける各光源の光源方向、1021は被写体の観察点Oにおける撮像装置の視線方向を示している。
まず、光源と撮像装置との位置関係が既知であるため、撮像装置1001と光源1007A、1007Bの3次元位置関係La、Lbは既知である。また、撮像装置1001はキャリブレーションされているとすると、撮像装置1001の視線方向1021も既知である。このことから、被写体の観察点O1015はこの視線方向1021上に存在する。また、上述の照度差ステレオ法により、被写体の観察点Oにおける各光源の光源方向1010A、1010Bは既知である。撮像装置1001と観察点O1015の距離Lvが正(Lv>0)であるとすると、このような位置関係を満たす観察点Oは、1点しか存在しない。そのため、観察点O1015の位置がわかり、撮像装置1001と観察点O1015の距離Lvが求まる。
また、例えばデジタルカメラのフラッシュのように撮像装置に光源が設置されている場合、光源と撮像装置との位置関係は設計情報から求めることができる。
また、形状情報取得部204は反射光の偏光特性を利用して、被写体の表面法線方向を取得しても構わない。この処理について、図14を用いて説明する。
図14において、1001は撮像装置、1007は光源、1015は観察点O、1016はモータなどの回転機構(図示せず)をもった直線偏光フィルタ、1019は法線方向を示している。光源として自然光が照射されている状態において、回転機構によって偏光フィルタ1016を回転しながら撮像を行った場合、その反射光強度は、図15に示したように、周期πのsin関数となる。
ここで、この反射光強度の最大値Imaxと最小値Iminを計測する偏光フィルタの角度ψmax、ψminを考える。撮像装置1001と光源1007、観察点O1015を含む平面を入射面とし、被写体は鏡面反射成分が支配的であるとすると、ψmaxは偏光フィルタ1016の偏光方向が入射面に対して垂直な方向、また、ψminは偏光フィルタ1016の偏光方向が入射面に対して平行な方向になることが知られている。
また、上述したように、光源が偏光光源の場合、反射光成分において、偏光特性を有するものは観察点Oの表面で反射した鏡面反射成分、非偏光の成分は拡散反射成分である。このことから、反射光強度の最大値Imaxと最小値Iminの強度差が生じる観察点Oは鏡面反射成分が強い観察点、すなわち、光が正反射している(観察点Oの法線方向1019が観察点Oからの光源方向と観察点Oからの撮像装置方向の二等分線方向である)ことがわかる。そのため、法線方向1019も入射面内に存在する。そのため、ψmaxまたはψminを推定することにより、法線方向1019は以下の平面内に存在すると推定することができる。
○撮像装置1001を通り、偏光フィルタ1016の偏光方向ψmin(またはψmaxの垂直方向)を含む平面。
ここで、ψmaxまたはψminは、前述のsin関数のフィッテング処理を行うことで推定する。
また、撮像装置1001の位置を変更させて、同様な処理を行うことによって、法線方向1019を含む、異なった2つの平面を推定することができる。推定した2つの平面の交線を求めることによって、法線方向1019を推定する。この際、撮像装置1001の移動量を推定する必要があるが、これは、前述の8点法などを利用すればよい。
もちろん、拡散反射・鏡面反射分離部202と同様に、画素ごとに偏光方向の異なる撮像装置を利用しても構わない。
また、もちろん、撮像装置1001の位置を変更させるのではなく、複数台の撮像装置を設置して法線方向1019を求めるようにしても構わない。
以上のように、照度差ステレオ法と偏光特性を利用した方法では、被写体表面の法線情報を取得する。一方、スリット光投影法やステレオ視などの手法では、被写体の3次元位置情報を取得する。被写体表面の法線情報とは、被写体の3次元位置情報の微小空間での傾き情報であり、どちらも被写体の形状情報である。
以上の処理により、形状情報取得部204は被写体の形状情報として、被写体表面の法線情報または被写体の3次元位置情報を取得する。
影除去部205は、画像中の影領域を推定し、影除去処理を行う(ステップS405)。このような、影除去および影領域推定処理はさまざまな方法が提案されているが、例えば、影領域は輝度値が低いことを利用し、輝度値が閾値以下の画素を影領域と推定すればよい。
また、形状情報取得部204によって3次元形状情報が取得されている場合、Computer−Graphicsの分野で広く利用されているレンダリング手法である、レイトレーシングを利用してもかまわない。レンダリングは物体の座標データや、光源や視点の位置などの環境に関するデータを計算して行うが、レイトレーシングは、視点に届く光線を逆にたどることによって描画する。このため、レイトレーシングを利用してどの場所にどの程度の影が生成されているかを計算することができる。
次に、拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を、それぞれ、別々の方法で高解像度化する。すなわち、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行う。まず、拡散反射画像の高解像度化について説明する。
<拡散反射画像の高解像度化>
アルベド推定部206は、拡散反射・鏡面反射分離部202によって分離された拡散反射画像を利用し、被写体のアルベドを推定し、被写体のアルベド画像を作成する(ステップS406)。アルベドは光源情報に影響を受けないため、アルベド画像を利用して処理を行うことによって、光源変動にロバストな処理が実現できる。
この処理を説明する。(式25)より、拡散反射成分では、以下の関係が成り立つ。
ただし、θiは被写体の法線方向ベクトルと光源方向ベクトルのなす角を示す。ここで、光源情報推定部203および形状情報取得部204により、角度θiは既知である。また、後述するように、光源の入射照度tfも推定可能なため、被写体のアルベドrpを(式36)から求める。
この際、cosθiが0以下の値を持つ場合、すなわちattached shadowである場合、(式36)から、アルベドrpがマイナスになる、あるいは0で除算を行うことにより意味を持たなくなる。しかし、上述の影除去部205によってこのような画素を除去しているため、問題は生じない。
もちろん、被写体のアルベドを求めるのではなく、次式によりアルベドを鏡面反射画像の最大輝度値で正規化した擬似アルベドr
p’を求め、これを利用しても構わない。
ここで、isf_maxは鏡面反射画像の最大輝度値を示している。このような擬似アルベドは、光源情報推定部203により、光源の放射輝度(照度)が取得できない場合に有効である。擬似アルベド画像を利用した場合、正規化に利用した鏡面反射画像の最大輝度値isf_maxをメモリに保持しておく。図16はアルベド推定部206が擬似アルベドを利用した場合、メモリに保持されるデータを示した図である。作成された擬似アルベド画像と、正規化に利用した鏡面反射画像の最大輝度値isf_maxが保持されている。
鏡面反射パラメータが被写体の広い領域で一様であり、被写体表面にさまざまな方向の法線が存在しているとすると、カメラに対して被写体を照らす位置に光源が存在している限り、正反射が生じる正反射画素が存在する。そのため、鏡面反射画像の最大輝度値isf_maxはこの正反射画素の輝度値となる。
反射特性が一様であり、視線方向1021がほぼ一様である場合、ある光源位置での正反射画素の輝度値と別の光源位置での正反射画素の輝度値の比は、各光源での光源の放射輝度比とほぼ等しくなる。そのため、拡散反射画像の輝度値idf(p)をθiにより除算しただけでは光源の放射輝度の影響が残ってしまうが、さらに正反射画素の輝度値である鏡面反射画像の最大輝度値isf_maxで正規化を行った擬似アルベド画像を利用することにより、光源の放射輝度が取得できない場合においても光源に影響されない拡散成分画像を作成できる。
また、鏡面反射画像の最大輝度値isf_maxによって正規化を行うのではなく、拡散反射画像の最大輝度値や入力画像の最大輝度値を利用して正規化を行い、擬似アルベドを作成しても構わない。
次に、こうして求めたアルベド画像の高解像度化について説明する。
アルベド高解像度化部207は、アルベド推定部206が作成したアルベド画像を、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドDB208を利用して、高解像度化する(ステップS407)。この処理について詳述する。
前述のように、アルベド画像は、光の鏡面反射や陰影など光学現象によらない被写体固有の反射率特性を表現した画像である。ここでの高解像度化は、被写体情報が不可欠なため、被写体の事前学習に基づく。ここではテキストン(画像のテクスチャ特徴量)に基づく高解像度化を用いる。
図17はテキストンに基づく高解像度化の概念を示す図である。実行時に入力された低解像度画像(LR画像、画素数N×N)は、画素数を目標画素数に合致させるため、M×M倍に補間拡大される。この画素数MN×MN画像をexLR画像と称する。exLR画像では画像の高周波成分が失われて、ぼけた画像になる。このぼけ画像を先鋭化することが高解像度化に他ならない。
次に、多重解像度変換WTによって、exLR画像の輝度値を画素ごとに、多重解像度に基づくT次元テキストンに変換する。この変換にはウェーブレット変換やピラミッド構造分解などの処理が用いられる。この結果、exLR画像の各画素ごとに、合計MN×MN本のT次元テキストンベクトルが生成される。次に、汎用性の向上のため、テクストンベクトルにクラスタリングが実施されて、L本の入力代表テキストンベクトルが選択生成される。これらL本のテキストンベクトルに対して、予め学習したデータベースの情報から変換が施されて、T次元の高解像度化テキストンベクトルが生成される。この変換には、テーブル読み出しや、T次元の多次元特徴ベクトル空間内における線形および非線形変換が用いられる。高解像度化テキストンベクトルは、逆ウェーブレット変換やピラミッド構造再構成などの逆変換IWTによって、画像輝度値に戻されて、高解像度画像(HR画像)が完成する。
この処理では、MN×MN本のT次元テクストンベクトルのクラスタリング処理における探索とテーブル読み出しの処理に多大な時間を要し、動画など高速化対応が困難であった。そこで、1)クラスタリング処理をLR画像にて実施する。2)テーブル読み出しを線形マトリクス変換に変更する。という改良を加えた。この処理では、LR画像の1画素はHR画像のM×M画素のセルに対応する事実を使って、T次元からT次元への線形マトリクス変換をセル毎に実施して、セル内部での空間的な連続性を維持することができる。また利用する線形マトリクスはクラスタリングの結果から最適に選択する。セル境界の不連続性が問題になる場合にはマトリクス処理単位のブロックを一部重ねるなどの処理を追加してもよい。
図18は上の改良点を模式的に描いた図である。LR画像をWT変換して、T次元の特徴量空間の中のL(ここではL=3)本の代表特徴ベクトルとしている。そして、各特徴ベクトルに異なる線形マトリクスが付随している。この状態を保存したものが高解像度化データベースに他ならない。
以下、N=32、M=4、すなわち32×32画素の低解像度画像に4×4倍の高解像度化を施す例をとって、画像処理手法の詳細を述べる。アルベド画像はRGBカラー画像とするが、カラー画像はRGBから輝度色差(YCrCB)に変換して、独立した色成分画像として取り扱うものとする。通常、2×2倍率程度では、輝度Y成分だけの高解像度でよく、カラー成分は低解像度の色差信号のまま付加しても違和感はないが、4×4以上では、色信号も高解像度化が必須になるので、各成分とも同様な取り扱いとする。以下、カラー画像の1つの成分画像のみの処理を説明することとする。
(学習時)
図19は学習処理の流れを説明するPAD図であり、図20は学習処理において処理される画像の処理対象画素と処理対象セルとの関係を説明する図である。以下、図19および図20を交互に用いて説明を行なう。
まず、S311〜S313において、低解像度画像(LR画像)、高解像度画像(HR画像)、および低解像度画像の拡大画像(exLR画像)を入力する。これらの画像は、HR画像から全て生成されており、撮像における画素ずれがない状態としておく。また、LR画像からexLR画像の生成にはバイキュービック補間を用いている。図20において、HR画像(画素数128×128)と、LR画像(画素数32×32)と、LR画像から画素数だけHR画像と合致させたexLR画像(画素数128×128)の3種類の画像を用意する。LR画像は、画像撮像部201によって撮像される原画像と解像度が同一のアルベド画像であり、HR画像は、画像撮像部201によって撮像される原画像よりも解像度が高いアルベド画像である。
S314において、LR画像をテキストン化する。具体的にはHaar基底を用いた2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform:SWT変換)する。SWT変換の階層は2階層(2−step)とすると、6次元のLRW画像(画素数32×32=1024)が生成される。本来、2階層ステップの2次元離散定常ウェーブレット変換では7次元の特徴ベクトルとなるが、最低周波数のLL成分画像は画像の平均輝度情報に近くなり、これを保存するため残りの6成分のみを利用する。
S315において、テキストン化されたLRW画像の合計1024本の6次元ベクトルをCmax個にまでクラスタリングする。ここではK−means法を用いて、例えばCmax=512本にクラスタリングする。この512本の結果のテキストンベクトルの集合をクラスタCと称する。クラスタリングをせず1024本のテキストンを全て利用しても問題ない。
S316において、クラスタCの同一クラスタに判別されたLR画素を判定する。具体的には、LR画像の画素値がクラスタCの各テキストン番号に置き換えられる。
S317において、クラスタCの全テキストンに対して繰り返し処理をしながら、該当テキストンに対応するexLRの画素セルとHR画像の画素セルを探索して、該当セル番号を格納する。この探索がLR画像の画素数分だけで済むため、高倍率の場合に大きな探索時間の削減となる。
ここでLR画像の画素とexLR画像、HR画像の画素セルとの対応につき、図20で説明する。図20では、LR画像上で、2001と2002という2画素がCの同一クラスタ(クラスタ番号:Ci=0)に判別されたとする。すると、そのままの位置関係を保って拡大されたexLR画像上では2003,2004、HR画像上では2005、2006という画素セルが対応していると考えられ、これらの2箇所のセル位置の番号が、該当するテキストンを有するものとして格納される。画素セル内に含まれる画素数は拡大率4×4=16に等しい。
次にS318において、これらの画素セル群についてexLR画像とHR画像の対でテキストン化を行う。具体的には、2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)が実施されて、exLRW画像とHRW画像が生成される。
S319とS320において、上記HRW画像とexLRW画像から得られたテキストンの対が行列の形として集積される。形式はいずれも、6×Data_numの行列となる。ここでData_numは、(1セルの画素数)×(探索されたセルの数)となり、上のCi=0の例では、2個のセルが探索されたので16×2=32となる。
S321において、集積された両者に所属する合計2×4×4=128個の特徴ベクトルから最小二乗法にて6×6マトリクスMを算出し、それをS322において、クラスタ番号K=0とともにデータベースCMat(K)に格納蓄積する。S322における最小二乗法は、まずS319とS320において集積されたexLRとHRのテキストンの行列を各々LfとHf(サイズ:6×Data_num)とし、求めるマトリクスをM(6×6)とすると以下のように実行できる。
次に、クラスタ番号K=1について同様処理を繰り返して、K=511まで行う。すなわち、CMatはクラスタ番号ごとに規定される6×6変換行列の群である。
最後に、S323とS324において、使用したクラスタCと学習された変換行列CMatとを出力する。こうして求めたクラスタCと学習された変換行列CMatを、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則として、アルベドDB208に蓄積する。
図21は2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)の処理を示す図である。通常のウェーブレット変換では、フィルタバンク構成は同一のまま分解の階層が進む毎に画像が縮小していくが、2次元離散定常ウェーブレット変換では、分解の階層が進んでも変換画像サイズは不変であり、スケーリング関数Fとウェーブレット関数Gの2種類のフィルタがアップサンプリング(↑)されて2のべき乗で長くなっていくことにより多重解像度解析を行う。Haar基底では、FとGの具体的な数値とアップサンプリングの様子は表1のようになる。
LL成分であるcA画像を1階層進めてウェーブレット分解する場合、FとGのフィルタを交互に1次元的にコンボリューションすることにより、図21のように4種類の画像が生成される。1)行方向にF・列方向にF:cA画像(LL成分)2)行方向にF・列方向にG:cDh画像(LH成分)3)行方向にG・列方向にF:cDv画像(HL成分)4)行方向にG・列方向にG:cDd画像(HH成分)。
図22は2次元離散定常ウェーブレット変換をテスト画像に実施した場合の画像結果例である。テキストンベクトルとは、これらウェーブレットの1−STEPと2−STEPの変換画像の1画素ごとに対応する値を連ねたもので、
の7次元ベクトルのことである。ただし2−STEPのLL成分であるcA2を除いて、6次元ベクトル部分のみを使って高解像度変換し、cA2成分は保存している。
なお、ウェーブレット変換のステップ数をここではS314とS318のいずれも2−STEPとしている。このステップ数が大きくなるほど、画像の大まかな特徴までテキストンで表現することができる。本発明においてステップ数は可変であるが、LR画像のクラスタリングのためのS314の場合、1−STEPでは周辺の画素状況として十分な情報とならない場合があるため、2−STEPとしている。一方、exLR画像を高解像度化するためのテキストンを生成するS318の場合、たとえば8×8の倍率においては2−STEPよりも3−STEPの方が良好な画像が得られることが、実験的に確認されている。このため、倍率との関係でステップ数を決定することが望ましい。
もちろん、アルベド推定部206において、アルベド画像ではなく擬似アルベド画像を推定している場合、上述の学習処理は擬似アルベド画像を利用して行う。前述のように擬似アルベドは光源に影響されない拡散成分画像であるため、光源変動に影響されない変換規則を作成することが可能である。また、学習時において、擬似アルベド作成で正規化に利用した所定値、例えば鏡面反射画像の最大輝度値isf_maxを保持する必要はない。
(高解像度化処理の実行時)
図23は実行時の処理の流れを示すPAD図であり、図24は実行時の処理の画素セルとの関係を示す図である。
まず、S331とS332において、LR画像とこれを拡大したexLR画像とを入力する。学習時と同様に、LR画像の画素数=32×32、exLR画像の画素数=128×128とする。ここでexLR画像の生成方法は、図19のS313において学習画像のexLR画像を生成した方法と同様にバイキュービック法による。
次に、S333とS334において、学習時に得られたクラスタCと変換行列CMatをアルベドDB208から読み出し、入力する。
S335において、LR画像をテキストン化する。具体的には図24で示すように、Haar基底を用いた2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform:SWT変換)を行う。SWT変換の階層は2階層(2−step)とすると、6次元のLRW画像(画素数32×32=1024)が生成される。本来は2階層ステップの2次元離散定常ウェーブレット変換では7次元の特徴ベクトルとなるが、最低周波数のLL成分画像は画像の平均輝度情報に近くなり、これを保存するため残りの6成分のみを利用する。
次にS336において、各テキストンにつき、クラスタC(Cmax個のテキストン)内の最短距離のテキストンベクトルを探索してテキストン番号(Ci)を得る。これは図24において、LR画像の1ライン上の各画素2011,2012,…,2013について、各々C0,C1,…,Cnというテキストン番号が付与されることに相当する。
次にS337に進むが、これ以降はHR画像の各セルを走査線順に処理していく繰り返し処理となる。具体的には、図24において、exLR画像のセル2014,2015,…,2016を処理していくと、対応するHR画像のセル2023,2024,…,2025が順次高解像度化されていく。
S337において、exLR画像の該当セル領域がテキストン化される。具体的には、2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)が実施されて、exLRW画像が生成される。セル2017,2018,…,2019などが生成される。
S338において、テキストン番号から変換行列CMatを引いて該当セルにおける変換行列Mを確定する。この処理は図24のように行われる。LRW画像には、すでに画素2011=C0、画素2012=C1、…、画素2013=Cnとテキストン番号が振られている。これを位置関係を保存したexLRW画像のセル2017、2018、…2019に適用して、各々のセルで、C0,C1,・・Cnをテキストン番号としてMatから別々の6×6変換行列Mを選択することができる。
S339において、各セルに変換行列Mを作用させる。これはセル内のテキストンLTi(i=1〜16)全部について、
を実施すればよい。これらを繰り返して、exLRW画像のセル2017,2018,…,2019からHRW画像のセル2020,2021,…,2022が、それぞれ生成される。
次に、これら高解像度化されたセル内の6次元テキストンに、exLRW画像の2−STEPのLL成分を付加して7次元テキストンを生成する。
S340において、この各セル内7次元のテキストンを逆SWT変換することにより画像に変換する。以上をexLR画像の全セルについて繰り返す。
逆SWT(ISWT)変換は、図25で示す信号フローで実現できる。図21とほとんど同じ表現である。通常のウェーブレット逆変換ではフィルタバンクの構成は同一のまま、分解の階層が進む毎に画像が拡大していく。これに対して、本逆変換においては、分解の階層が進んでも変換画像サイズは不変であり、スケーリング関数Fとウェーブレット関数G1の2種類のフィルタがダウンサンプリング(↓)されて2のべき乗で短くなっていくことにより、多重解像度解析を行う。Haar基底では、FとG1の具体的な数値とダウンサンプリングの様子は表2のようになる。
以上のようにしてアルベド画像の1成分が高解像度化される。この処理を、アルベド画像全てに行うことにより、高解像度なアルベド画像を合成する。
このとき、アルベド画像に含まれる被写体の大きさや姿勢、向きなどが変化しても処理が可能なように、画像の正規化を行うようにしてもかまわない。テキストンを利用した高解像度化処理は、学習データに対してアルベド画像の大きさや姿勢が異なっている場合、高解像度化の精度が十分に発揮されないことが考えられる。そこで、アルベド画像を複数組用意し、この問題を解決する。すなわち、アルベド画像を30度ずつ回転させた画像を合成し、そのすべての画像で高解像度化を行い、姿勢や向きの変化に対応させる。この場合、前述の「高解像度化処理の実行時」のPAD図である図23のステップS336において、最短距離のテキストンを探索する際、回転処理を行った各画像から求めた複数のLR画像のテキストン、それぞれにおいて最短距離のテキストンを探索し、最も距離の近いものを探索してテキストン番号(Ci)を得るようにすればよい。
また、大きさの変化に対応するために、画像の大きさを変更したアルベド画像を合成するようにしてもかまわない。
また、実際の大きさを基準に、例えば、5cm×5cmの画像が必ず8x8画素になるように拡大縮小処理を行い、その画像に対してテキストンを作製するようにしてもかまわない。被写体の大きさは、形状情報取得部204により既知であるため、「学習時」および「高解像度化処理の実行時」ともに同じ大きさの画像でテキストンを作製することで、大きさの変動に対応するようにしてもかまわない。
また、「高解像度化処理の実行時」のアルベド画像を回転させるのではなく、「学習時」のアルベド画像を回転させ、複数組のテキストンを作製し、クラスタCと学習された変換行列CMatをアルベドDB208に蓄積するようにしても構わない。
さらに、入力された被写体が何であるかを推定し、推定された被写体がどのように回転しているかを姿勢推定するようにしてもかまわない。このような処理は、広く使われている画像認識技術を利用すればよい。これは、例えば、被写体にRFIDのようなタグを設置しておき、そのタグ情報を認識することで被写体が何であるかを認識し、さらにタグ情報から被写体の形状情報を推定し、画像や被写体の形状情報から姿勢推定を行うようにすればよい(例えば、特開2005−346348号公報参照)。
<鏡面反射画像の高解像度化>
次に、鏡面反射画像の高解像度化について説明する。ここでは、推定したパラメータの高密化処理と、形状情報の高密化処理とを利用する。
パラメータ推定部210は、形状情報収得部204によって取得された被写体の表面の法線情報、拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を利用して、その被写体を表現するパラメータを推定する(S408)。ここでは、Computer−Graphicsの分野で広く使われているCook−Torranceモデルを利用する方法を説明する。
Cook−Torranceモデルでは、鏡面反射画像を次式のようにモデル化する。
ここで、Eiは入射照度、ρs,λは波長λにおける鏡面反射成分の双方向反射率、nは被写体の法線方向ベクトル、Vは視線ベクトル、Lは光源方向ベクトル、Hは視線ベクトルと照明方向ベクトルの中間ベクトル、βは中間ベクトルHと法線方向ベクトルnの角度を表す。また、Fλはフレネル方程式から求められる誘電体表面からの反射光の比であるフレネル係数、Dはマイクロファセット分布関数、Gは物体表面の凸凹による遮光の影響を表す幾何減衰率である。さらに、nλは被写体の屈折率、mは被写体表面の粗さを示す係数、Ijは入射光の放射輝度である。また、ksは鏡面反射成分の係数である。
さらに、(式25)のランバーシャンモデルを利用すると、(式12)は以下のように展開される。
ただし、
ここで、ρ
dは拡散反射成分の反射率(アルベド)、dpx、dpyは撮像装置の1画素のx方向、y方向の長さ、rは撮像装置の観察点Oからの距離を示している。また、k
dは以下の関係式を満たす係数である。
Srは拡散反射成分と鏡面反射成分の輝度値の違いを表現するための定数であり、拡散反射成分が被写体からすべての方向へエネルギーを反射することを示している。図26はこの定数Srを説明するための模式図である。図26において、観察点Oで反射された拡散反射成分エネルギーは、半球状に広がっていく。ここで、撮像装置1001が観察点Oからrだけ離れているので、撮像装置の1撮像素子に届くエネルギーと、観察点Oで反射した総エネルギーの比S
rは、(式48)で表される。
以上のことから、パラメータ推定部210は、(式37)〜(式45)(式46)(式47)、(式48)からパラメータを推定する。
以上の関係式をまとめると、パラメータ推定を行なうための既知パラメータと、推定すべきパラメータは以下のようになる。
(既知パラメータ)
○環境光成分Ia
○拡散反射成分Id
○鏡面反射成分Is
○被写体の法線方向ベクトルn
○光源方向ベクトルL
○視線ベクトルV
○中間ベクトルH
○中間ベクトルHと法線方向ベクトルnの角度β
○撮像装置1001の1画素のx方向、y方向の長さdpx,dpy
○撮像装置1001と観察点Oとの距離r
(推定すべきパラメータ)
○入射照度Ei
○鏡面反射成分の係数ks
○被写体表面の粗さm
○被写体の屈折率ηλ
ここで、拡散反射成分の係数kd、および拡散反射成分の反射率(アルベド)ρdも未知パラメータであるが、鏡面反射成分のパラメータのみを推定するため、ここでは推定処理を行なわない。
図27はパラメータ推定部210の処理の流れを示す図である。処理は、以下の2段階からなる。
まず、光源情報を使用して、入射照度E
iを求める(ステップS351)。ここでは、光源情報推定部203によって取得した光源の位置情報、形状情報取得部204で求めた撮像装置と被写体との距離情報、さらには光源情報取得部203で求めた光源照度を用いる。これは、次式から求まる。
ここで、I
iは撮像装置1001に設置された照度計1018によって測定された光源1007の入射照度、R
1は撮像装置1001と光源1007との距離、R
2は光源1007と観察点Oとの距離、θ
1は観察点Oにおける法線1019と光源方向1010Cとのなす角度、θ
2は撮像装置1001における光軸方向1005と光源方向1010Aとのなす角度を示している(図28参照)。ここで、被写体の大きさが、光源1007と観察点Oとの距離R
2に比べ十分に大きいと考えられる場合、距離R
2は被写体上の全ての観察点Oで等しくなる。そのため、(式50)において、(R
1/R
2)は定数となり、実際に計測する必要はなくなる。
次に、シンプレックス法を利用して、未知パラメータm、η
λ、k
sを推定する(ステップS352)。シンプレックス法は、シンプレックスと呼ぶ図形の頂点に変数を割り付け、シンプレックスの大きさと形を変えて関数の最適化を行なう方法である(大田登,“色再現光学の基礎”,pp.90−92,コロナ社)。シンプレックスは、n次元空間の(n+1)個の点の集合である。ただし、nは推定する未知数の数であり、ここでは「3」である。そのため、シンプレックスは四面体である。シンプレックスの頂点をベクトルx
iで表し、新しいベクトルを次のように定める。
ただし、
はそれぞれ関数f(x
i)を最大、最小にするx
iを示している。
さらに、この方法で用いる3種類の操作を以下のように定める。
1.鏡像:
3.収縮:
ここで、α(>0)、β(>1)、γ(1>γ>0)は係数である。
シンプレックス法は、シンプレックスの頂点の中で関数値の最も大きなものを選ぶことで、その鏡像における関数値は小さくなるという期待に基づいている。この期待が正しければ、同じプロセスの繰り返しで関数の最小値が求められる。つまり、初期値で与えたパラメータを3種類の操作で更新しながら、評価関数が示すターゲットとの誤差が閾値未満になるまでパラメータの更新を繰り返す。ここでは、パラメータとしてm、η
λ、k
s、評価関数として(式56)で表される、(式37)から算出される鏡面反射成分画像と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像との差ΔI
sを利用した。
ただし、i
s(i,j)’,i
s(i,j)はそれぞれ、計算された鏡面反射画像の推定値I
s’と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像I
sの画素(i,j)の輝度値、M
s(i,j)は、画素(i,j)が鏡面反射成分を持つ場合に1、そうでない場合0をとる関数である。
この処理について詳しく説明する。図29はこの処理の流れを説明するためのフローチャートである。
まず、繰り返し演算の更新回数を記憶するカウンターnとkに0を代入し、初期化する(ステップS361)。ここで、カウンターnは初期値を何回変更したかを記憶するカウンターであり、kはある初期値に対してシンプレックスによる候補パラメータの更新を何回行ったかを記憶するカウンターである。
次に、乱数を利用し、推定パラメータの候補パラメータm’、η
λ’、k
s’の初期値を決定する(ステップS362)。このとき、各パラメータの物理的な拘束条件から、初期値の発生範囲は以下のように決定した。
次に、こうして求めた候補パラメータを(式37)へ代入し、鏡面反射画像の推定値Is’を求める(ステップS363)。さらに、計算された鏡面反射画像の推定値Is’と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像との差ΔIsを(式56)より求め、これをシンプレックス法の評価関数とする(ステップS364)。こうして求めたΔIsが十分小さい場合(ステップS365でYes)、パラメータ推定は成功したとして、推定パラメータm、ηλ、ksとして候補パラメータm’、ηλ’、ks’を選択し、処理を終了する。一方、ΔIsが大きい場合(ステップS365でNo)、シンプレックス法により候補パラメータの更新を行う。
候補パラメータの更新を行う前に、更新回数の評価を行う。まず、更新回数を記憶しているカウンターkに1を足し(ステップS366)、カウンターkの大きさを判断する(ステップS367)。カウンターkが十分に大きい場合(ステップS367でNo)、繰り返し演算は十分に行なわれているが、ローカルミニマムに落ちているため、このまま更新を繰り返しても最適値には達しないと判断し、初期値を変更して、ローカルミニマムからの脱却を図る。そのため、カウンターnに1を足し、カウンターkに0を入れる(ステップS371)。ここで、カウンターnの値が閾値より高いかどうかを判定し、処理をこのまま続けるか、処理不能として処理を終了させるかを決定する(ステップS372)。ここで、nが閾値より大きい場合(ステップS372でNo)、この画像は推定不能として処理を終了する。一方、nが閾値より小さい場合(ステップS372でYes)、再度、初期値を(式57)の範囲内で乱数から選択しなおし(ステップS362)、処理を繰り返す。このようなkに対する閾値は、例えば、100などを選択すればよい。
一方、ステップS367において、カウンターkが閾値以下の場合(ステップS367でYes)、候補パラメータを(式53)〜(式55)を利用して変更する(ステップS368)。この処理については後述する。
次に、こうして変形された候補パラメータが、解として意味のあるものであるかを判定する(ステップS369)。すなわち、シンプレックス法を繰り返すことで、変形されたパラメータが物理的に意味のない値(例えば、粗さパラメータmが負の値など)におちいる可能性があるため、これを除去する。これは、例えば、以下のような条件を与え、この条件を満たす場合には意味のあるパラメータ、満たさない場合には意味のないパラメータと判定すればよい。
これらの値は、被写体より求めることができる。例えば、屈折率η
λであれば、被写体の材質によって決定される値である。例えば、プラスチックであれば1.5〜1.7、ガラスであれば1.5〜1.9であることが知られているため、これらの値を利用すればよい。つまり、被写体がプラスチックである場合、屈折率η
λは1.5〜1.7とすればよい。
変形したパラメータが(式58)を満たす場合(ステップS369でYes)、その候補パラメータは意味のある値であると考えられるため、新しい候補パラメータとして設定し(ステップS370)、更新処理を繰り返す(ステップS363)。一方、変形したパラメータが(式58)を満たさない場合(ステップS369でNo)、その初期値に対する更新処理を打ち切り、新しい初期値により更新を行う(ステップS371)。
ここで、ステップS368の変形処理について詳述する。図30はこの処理の流れを示したフローチャートである。ここでは、候補パラメータm’、η
λ’、k
s’をベクトル表現し、これをパラメータxとする。すなわち、
まず、(式51)(式52)(式53)を利用して、鏡像操作を行ったパラメータxrを計算し、(式56)によってxrでの鏡面反射成分画像との差ΔIs(xr)を計算する(ステップS381)。次に、こうして求められたΔIs(xr)と、2番目に評価関数が悪かったΔIs(xs)を比較する(ステップS382)。ここでΔIs(xr)がΔIs(xs)より小さかった場合(ステップS382でYes)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値のよいΔIs(xl)を比較する(ステップS383)。ここで、ΔIs(xr)のほうが大きかった場合(ステップS383でNo)、最も評価値の低かったxhをxrへ変更し(ステップS384)、処理を終了する。
一方、ΔIs(xr)がΔIs(xl)より小さかった場合(ステップS383でYes)、(式54)を利用して拡張処理を行ない、パラメータxeと、xeでの鏡面反射成分画像との差ΔIs(xe)を計算する(ステップS385)。次に、こうして求められたΔIs(xe)と、鏡像操作によるΔIs(xr)を比較する(ステップS386)。ここでΔIs(xe)がΔIs(xr)より小さかった場合(ステップS386でYes)、最も評価値の悪かったxhをxeへ変更し(ステップS387)、処理を終了する。
一方、ΔIs(xe)がΔIs(xr)より大きかった場合(ステップS386でNo)、最も評価値の悪かったxhをxrへ変更し(ステップS387)、処理を終了する。
また、ステップS382において、ΔIs(xr)がΔIs(xs)より大きかった場合(ステップS382でNo)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値の悪いΔIs(xh)を比較する(ステップS388)。ここでΔIs(xr)がΔIs(xh)より小さかった場合(ステップS388でYes)、最も評価値の悪かったxhをxrへ変更し(ステップS389)、(式55)を利用して、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS390)。一方、ΔIs(xr)がΔIs(xh)より大きかった場合(ステップS388でNo)、xhを変更することなく、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS390)。
次に、こうして求められたΔIs(xc)と、最も評価値の悪いΔIs(xh)を比較する(ステップS391)。ここでΔIs(xc)がΔIs(xh)より小さかった場合(ステップS391でYes)、最も評価値の悪かったxhをxcへ変更し(ステップS392)、処理を終了する。
一方、ΔI
s(x
c)がΔI
s(x
h)より大きかった場合(ステップS391でNo)、すべての候補パラメータx
i(i=1,2,3,4)を以下の式により変更し、処理を終了する。
以上の処理を繰り返すことにより、鏡面反射画像における未知パラメータであるm、ηλ、ksを推定する。
以上の処理により、すべての未知パラメータを推定することができる。
なお、パラメータ推定に用いるモデルは、Cook−Torranceモデルである必要はなく、例えば、Torrance−SparrowモデルやPhongモデル、簡易Torrance−Sparrowモデル(例えば、「K.Ikeuchi and K.Sato,“Determining reflectance properties of anobject using range and brightness images”,IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.13,no.11,pp.1139−1153,1991」)であっても構わない。
また、パラメータ推定方法は、シンプレックス法である必要はなく、例えば、勾配法や最小自乗法などのような一般的なパラメータ推定手法を利用しても構わない。
また、以上の処理は、画素毎に行ってもかまわないし、領域分割を行い、領域ごとに等しいパラメータ組を推定するようにしてもかまわない。画素毎に処理を行う場合、光源や撮像装置、または被写体を動かすことにより、被写体の法線方向ベクトルnや光源方向ベクトルし、または視線ベクトルVといった既知パラメータが変動したサンプルを取得するようにすることが望ましい。また、処理を領域ごとに行う場合、領域ごとに求まったパラメータのばらつきが小さくなるように領域分割を変更することで、最適なパラメータ推定を行うようにすることが望ましい。
形状情報高密化部211は、形状情報取得部204で取得した被写体の形状情報を高密度化する(ステップS409)。これは、以下のように実現される。
まず、形状情報取得部204によって取得した表面の形状情報を、画像撮像部201によって取得された画像へ投影し、画像内の各画素に対応する法線方向を求める。このような処理は、従来のカメラキャリブレーション処理(例えば、「運天弘樹,池内克史,“実物体の仮想化のための3次元幾何モデルのテクスチャリング手法”,CVIM−149−34,pp.301−316,2005」)を行うことで実現できる。
この際、法線ベクトルnpは極座標で表現し、その値をθp、φpとする(図31参照)。以上の処理により、法線成分であるθ、φの画像を作製する。こうして求めたθ画像とφ画像を、上述のアルベド高解像度化部207と同様の手法によって高解像度化することによって、高密度の形状情報を推定する。この際、高密度度化処理を行う前に学習処理を行い、法線のθ、φ成分に対するクラスタCと学習された変換行列CMatを法線DB212に蓄積する。
また、以上の処理は、影除去部205において、影として除去されなかった領域のみに対して行うことが望ましい。これは、影の存在により、パラメータ推定処理に誤差が生じてしまうことを防止するためである。
また、パラメータ推定部210において、撮像装置近傍に設置された制御可能な光源を利用してもかまわない。この光源は、デジタルカメラのフラッシュであってもよい。この場合、フラッシュを照射して撮像したフラッシュ画像と、フラッシュを照射しないで撮像した非フラッシュ画像を時間的に連続的に撮像し、その差分画像を利用してパラメータ推定を行なえばよい。撮像装置と光源であるフラッシュの位置関係は既知であり、また、フラッシュの光源情報である3次元位置や色、強度も事前に測定しておくことが可能である。また、撮像装置とフラッシュは非常に近い場所に設置されているため、影が少ない画像を撮像することができる。そのため、画像内のほとんどの画素において、パラメータを推定することができる。
さらに、パラメータ高密度化部213は、パラメータ推定部210によって求めたパラメータを高密度化する(ステップS410)。ここでは、単純な線形補間を行い、すべてのパラメータを高密度化する。もちろん、上述のアルベド高解像度化部207のような学習を利用した高密度化手法を利用してもかまわない。
また、パラメータごとに高密化方法を切り替えるようにしても構わない。例えば、推定パラメータである被写体の屈折率ηλは、高密度化しても値が変化しないと考えられる。そのため、被写体の屈折率ηλは単純補間により高密度化を行い、拡散反射成分の係数kd、鏡面反射成分の係数ks、さらには拡散反射成分の反射率(アルベド)ρdに関しては学習を利用した高密度化処理を行うようにしてもかまわない。
鏡面反射画像高解像度化部214は、形状情報高密度化部211によって推定された高密度形状情報と、パラメータ高解像度化部214によって高密度化されたパラメータとを利用し、高解像度鏡面反射画像を合成する(ステップS411)。高解像度鏡面反射画像は、(式37)〜(式45)に高密度化したパラメータを代入することによって、合成される。
ここで、実際の鏡面反射画像よりも輝度値が高くなるように、例えば入射照度Eiのみ推定された値に係数1(例えば、1=2)を乗算するようにしても構わない。これは、鏡面反射画像の輝度値を上げることによって、被写体の質感を上げるためである。同じように、被写体表面の粗さmを推定値よりも大きな値として、実際よりもてかりが強い鏡面反射画像を合成してもかまわない。
拡散画像高解像度化部209は、アルベド高解像度化部207が合成した高解像度アルベド画像から高解像度拡散反射画像を合成する(ステップS412)。この処理を説明する。
前述のように、アルベド画像は、拡散成分画像を光源方向ベクトルと被写体の法線方向ベクトルの内積で除算したものである。このため、アルベド画像に、光源情報推定部203によって推定された光源方向ベクトルと、形状情報高密度化部211によって求められた被写体の高密度法線方向ベクトルとの内積を乗算することによって、高解像度拡散反射画像を合成する。光源情報推定部203によって複数の光源が推定された場合、それぞれの光源に対して高解像度拡散反射画像をそれぞれ合成し、その画像を足し合わせることによって、一枚の高解像度拡散画像を合成する。
また、アルベド画像ではなく擬似アルベド画像を利用している場合、擬似アルベド画像に、光源情報推定部203によって推定された光源方向ベクトルと、形状情報高密度化部211によって求められた被写体の高密度法線方向ベクトルとの内積を乗算し、さらに正規化を行うために利用した鏡面反射画像の最大輝度値isf_maxを乗算することによって、高解像度拡散反射画像を合成する。正規化で利用した鏡面反射画像の最大輝度値isf_maxは、アルベド推定部206によってメモリに蓄積されているため、この情報を読み出せばよい。もちろん、拡散反射画像の最大輝度値や入力画像の最大輝度値を利用して正規化を行っている場合、鏡面反射画像の最大輝度値isf_maxを乗算するのではなく、正規化に利用した拡散反射画像の最大輝度値や入力画像の最大輝度値を乗算する。
以上の処理により、高解像度化された拡散反射画像を合成することができる。ここで、高解像度化処理はアルベド画像を利用して行ったが、アルベド画像ではなく、拡散画像を直接、高解像度化するようにしても構わない。この場合、学習処理は拡散画像を用いて行えばよい。
影生成部215は、拡散反射画像高解像度化部209と鏡面反射画像高解像度化部214によって生成された高解像度拡散反射画像と高解像度鏡面反射画像に重畳する、影画像を合成する(ステップS413)。これは、影除去部205において利用したレイトレーシングを利用すればよい。
ここで、画像高解像度化部217は、撮影対象となっている被写体の3次元形状に関する知識を有するものとする。影生成部215は、被写体の3次元形状データを取得し、撮影画像における被写体の見え(appearance)から、被写体の3次元姿勢及び3次元位置を推定する。被写体が人間の目の角膜である場合の、見えから3次元位置及び3次元姿勢を推定する例が、「K.Nishino and S.K.Nayar,″The World in an Eye″,in Proc.of Computer Vision and Pattern Recognition CVPR’04,vol.I,pp444−451,Jul.,2004.」に開示されている。見えから3次元位置及び3次元姿勢を推定できる被写体は限られるが、そのような被写体であれば、上記文献の手法を適用することが可能である。
被写体の3次元姿勢及び3次元位置が推定されれば、被写体上の任意の位置において、被写体表面の形状情報が算出できる。以上の処理を、撮影画像において繰り返し、被写体表面の形状情報を算出する。さらに、形状情報高密度化部211で推定された高密度形状情報を利用して被写体の形状情報を高密度化することによって、被写体の3次元形状を高密化することが可能である。こうして求めた高密度3次元形状と、パラメータ高解像度化部214によって高密度化されたパラメータを利用してレイトレーシングを行うことにより、高解像度な影画像の推定を行う。
レンダリング部216は、拡散反射画像高解像度化部209が合成した高解像度拡散反射画像、鏡面反射画像高解像度化部214が合成した高解像度鏡面反射画像、さらには、影生成部215が合成した影画像を合成し、原画像を高解像度化した高解像度画像を作成する(ステップS414)。
図32〜34は本実施例における擬似アルベドを利用した画像高解像度化方法によって、画像を8x8倍に高解像度化した結果を示している。図32は学習に用いた画像を示している。被写体としてお面を用いた。このような学習データを利用して、図33(a)の画像の高解像度化を行った。この画像は、図32の学習データと同じ被写体ではあるが、光源の位置が異なっている。
比較用に、アルベド高解像度化部207で利用したテキストンに基づく高解像度化を、アルベド画像ではなく、画像撮像部201が撮影した画像そのものに対して高解像度化処理を行った。その結果を図33(b)に示す。また、図33(c)は本実施例における擬似アルベドを利用した画像高解像度化の結果である。また、図34(a)(b)は、図33(b)(c)の向かって右側上部に示した矩形領域内を拡大したものである。これらの結果より、本実施例の画像高解像度化方法は画質劣化を招くことなく画像を8x8倍に高解像度化できることがわかる。
また、被写体の向かって右側上部の遮蔽エッジに着目すると、図34(a)では、エッジがばたついていることが分かる。これは、学習時と高解像度化処理時との光源環境が異なるため、背景と学習した被写体との区別がつかず、画質が劣化していると考えられる。一方、本実施例の画像高解像度化方法では、形状情報を利用しているため、遮蔽エッジが自然に表現されている。すなわち、アルベド画像または擬似アルベド画像と被写体の形状情報とを利用することにより、適切な遮蔽エッジを表現することが可能となり、より適切な画像の高解像度化を実現することができる。
また、上記説明では、鏡面反射画像のみパラメータ推定を利用して高解像度化を行ったが、拡散反射画像においてもパラメータ推定を行ない、高解像度化するようにしてもかまわない。
この処理を説明する。拡散反射画像の未知パラメータは、上述のとおり、以下の2つである。
○拡散反射成分の係数kd
○拡散反射成分の反射率(アルベド)ρd
そこで、これらのパラメータを推定する。図35は拡散反射画像のパラメータ推定処理の流れを示した図である。処理は、図27で示した鏡面反射画像のパラメータ推定部210の処理後、さらに以下の2段階の処理を行なう。
まず、(式49)と鏡面反射画像のパラメータ推定で求まったk
sを利用して、次式よりk
dを推定する(ステップS353)。
さらに、(式47)を利用して、拡散反射画像の反射率(アルベド)ρ
dを次式より推定する(ステップS354)。
以上の処理により、すべての未知パラメータを推定することができる。こうして求まったパラメータをパラメータ高密度化部213と同様の手法により高密化することによって、拡散反射画像を高解像度化すればよい。
また、上記説明では、光源情報推定部203は、鏡面球を利用して光源情報を求めたが、画像から直接推定するようにしても構わない。この処理を詳述する。
(光源情報推定処理)
図36は本処理に係る光源推定装置の構成を示すブロック図である。図36において、1001はCCDやCMOS等によって構成された撮像装置、1002は撮像行為を行う主体者である撮像者が撮像装置1001に撮像を指示するための撮像スイッチである。撮像装置1001には3軸の角度センサ1025が搭載されている。
また、101は撮像装置1001の状況が、光源情報の取得に適しているか否かを判断する撮像装置状況判断部、102は撮像装置状況判断部101によって適していると判断されたとき、撮像装置1001によって撮像を行い、この撮像画像を光源画像として取得する光源画像取得部、103は光源画像取得部102によって光源画像が取得されたとき、撮像装置1001の状況を表す第1の撮像装置情報を取得する第1の撮像装置情報取得部、104は撮像者の操作によって撮像装置1001による撮像が行われた撮像時に、撮像装置の状況を表す第2の撮像装置情報を取得する第2の撮像装置情報取得部、そして105は光源画像取得部102によって取得された光源画像、並びに第1の撮像装置情報取得部103によって取得された第1の撮像装置情報、および第2の撮像装置情報取得部104によって取得された第2の撮像装置情報を基にして、撮像時における光源の方向および位置のうち少なくともいずれか一方を推定する光源情報推定部である。
なお、ここでは、撮像装置状況判断部101、光源画像取得部102、第1の撮像装置情報取得部103、第2の撮像装置情報取得部104および光源情報推定部105は、CPU1029によってプログラムを実行することによって、実現されるものとする。ただし、これらの機能の全部または一部を、ハードウェアによって実現するようにしてもかまわない。また、メモリ1028は、光源画像取得部102によって取得された光源画像と、第1の撮像装置情報取得部103によって取得された第1の撮像装置情報を格納する。
図37は本処理に係る光源推定装置が搭載されたカメラ付き折り畳み式携帯電話1000の構成例を示す。図37において、図36と共通の構成要素には図36と同一の符号を付している。なお、図37のカメラ付き折り畳み式携帯電話1000では、撮像装置1001に偏光フィルタ1016が設けられており、この偏光フィルタ1016を回転させるためのモータ1026aと、その回転角を検出するためのエンコーダ1027aとが設けられている。また、折り畳み機構を駆動するためのモータ1026bと、その回転角を検出するためのエンコーダ1027bとが設けられている。
図38は図37のカメラ付き折り畳み式携帯電話1000が折り畳まれた状態を示す図である。図38において、1005は撮像装置1001の光軸方向を示し、1006は撮像装置1001の視野範囲を示している。
以下、本処理に係る光源推定装置の各構成要素の動作について、説明する。
撮像装置状況判断部101は、撮像装置1001の状況が、光源情報を取得するために適しているか否かを判断する。最も一般的な光源として、家庭内では照明、屋外では街灯や太陽が考えられる。そのため、撮像装置1001の撮像方向、つまり光軸の方向が上向きになっている場合、撮像装置1001が光源情報を取得するために適した状況にある、と判断することができる。そこで、撮像装置状況判断部101は、撮像装置1001に搭載された角度センサ1025の出力を用いて、撮像装置101の光軸の方向を検出し、光軸が上方向を向いているとき、光源情報を取得するために適していると判断する。このとき、撮像装置状況判断部101は、光源画像取得部102に撮像を促す信号を送信する。
光源画像取得部102は、撮像装置状況判断部101から撮像を促す信号を受けたとき、すなわち、撮像装置1001の状況が光源情報を取得するために適していると撮像装置状況判断部101によって判断されたとき、撮像装置1001によって撮像を行い、この撮像画像を光源画像として取得する。取得された光源画像は、メモリ1028に格納される。
このとき、光源画像取得部102は、撮像者の操作による撮像が行われないことを確認した後に、光源画像の取得を行うのが好ましい。例えば、撮像スイッチ1002が押されていないことを確認した上で、光源画像の撮像を行えばよい。
光源画像取得部102は、撮像者の撮像意図を考慮して、撮像が行われていない期間を利用して光源画像を撮像するものである。本処理に係る光源推定装置では、被写体を撮像するための撮像装置1001を利用して、光源画像の撮像を行う。このため、もし撮像者が被写体をまさに撮像しようとしているその直前に光源画像の撮像が行われてしまうと、撮像者が撮像しようとした瞬間に被写体を撮像することができず、撮像者の撮像意図を無視することになってしまう。
このため、本処理では、撮像者の撮像意思を考慮するために、撮像者が撮像を行わないと想定される間、例えば、机などにおかれている間に光源画像の撮像を行う。例えば、図38のカメラ付き折畳式携帯電話1000が机などにおかれている場合、光軸方向1005は上向きになると考えられる。この状態であれば、最適な光源画像を撮像することが可能である。
図39は撮像装置状況判断部101および光源画像取得部102の処理の一例を示すフローである。まず、撮像装置状況判断部101は、撮像装置1001の光軸方向の検出を行い、その光軸方向が上向きであるか否かを判断する(ステップS121)。光軸方向が上向きでない場合(ステップS121でNo)、光軸方向が上向きになるまで繰り返し光軸方向のチェックを行う。一方、光軸方向が上向きである場合(ステップS122でYes)、光源画像取得部102は撮像スイッチ1002のチェックを行う(ステップS122)。もし、オートフォーカス(AF)などの処理を行うために、撮像スイッチ1002が押されている場合(ステップS122でNo)、撮像が行われる可能性が高いため、光源画像の撮像は行わない。一方、撮像スイッチ1002が押されていない場合(ステップS122でYes)、光源画像取得部102は撮像装置1001によって撮像を行い、光源画像を取得する(ステップS123)。
なお、ここでは、撮像スイッチのチェックによって、撮像者の操作による撮像が行われるか否かを判断するものとしたが、撮像者が撮像する意思を持っているか否かを確認する方法は、これに限られるものではない。例えば、「撮像中ですか?」という撮像を確認する表示をディスプレイに表示し、撮像者が「No」という意思を表示するか、なんの反応もない場合に、撮像者が撮像する意思を持っていないと判断してもかまわない。
また、加速度センサなどを利用し、撮像装置1001が静止しているとき、光源画像の取得を行うようにしてもかまわない。すなわち、撮像装置1001が静止している場合、撮像装置1001は撮像者が保持しておらず、机などにおかれていると判断できる。そのため、この場合、撮像者は撮像を行っていない可能性が高い。一方、撮像者が撮像を行うために撮像装置1001を構えている場合、手ぶれの影響を加速度センサが感知する。このときは、光源画像取得部102は撮像を行わないようにすればよい。
第1の撮像装置情報取得部103は、光源画像取得部102によって光源画像が取得されたとき、撮像装置1001の状況を表す第1の撮像装置情報を取得する。具体的には例えば、角度センサ1025の出力と撮像装置1001の焦点距離情報とを、第1の撮像装置情報として取得する。取得された第1の撮像装置情報はメモリ1028に格納される。図40はメモリ1028に保持された情報の一部を示す模式図である。ある光源画像に対して、角度センサ出力と焦点距離が、第1の撮像装置情報として格納されている。
撮像装置1001の姿勢情報は、角度センサ1025の出力を使用して、以下の3x3行列Rlightで表現される。
撮像装置1001の姿勢情報を表す、この3x3行列Rlightのことをカメラ姿勢行列と呼ぶ。ここで、(α,β,γ)はカメラに取り付けられたセンサ出力のロール・ピッチ・ヨー角表現での値であり、ある基準点からの動き量で表現される。ロール・ピッチ・ヨー角表現とは、図41に示したように、任意の回転を、z軸周りの回転であるロー、次に、新しいy軸周りの回転であるピッチ、最後に、新しいx軸まわりの回転であるヨーの3段階の回転によって表すものである。
また、Rx(α)、Ry(β)、Rz(γ)はロール・ピッチ・ヨー角からx軸回転、y軸回転、z軸回転へ変換する行列であり、次式で表される。
また、撮像装置1001がズーム可能である場合、そのズーム情報も焦点距離情報として取得される。また、撮像装置1001が固定焦点の場合、その焦点距離情報も取得される。焦点距離情報は、画像処理の分野で広く使われているカメラキャリブレーションを行なうことにより、取得できる。
このような、カメラに取り付けられた角度センサや角速度センサからカメラの姿勢情報を取得する方法は、既存の手法を利用すればよい(例えば、「岡谷貴之,“メカニカルセンサとイメージセンサの融合による3次元形状復元”,情報処理学会研究報告会,2005−CVIM−147,pp.123−130,2005」)。
第2の撮像装置情報取得部104は、撮像者の操作によって撮像装置1001による撮像が行われた撮像時に、撮像装置1001の状況を表す第2の撮像装置情報を取得する。ここでも、上述した第1の撮像装置情報取得部103と同様に、角度センサ1025の出力と撮像装置1001の焦点距離情報とを、第2の撮像装置情報として取得するものとする。このとき、角度センサ1025の出力(α,β,γ)から求められる姿勢行列Rnowを、現在の姿勢行列と呼ぶ。
光源情報推定部105は、メモリ1028に格納された光源画像および第1の撮像装置情報と、第2の撮像装置情報取得部104によって取得された第2の撮像装置情報を用いて、撮像者の操作による撮像時における、光源情報を推定する。ここでは、光源の方向を推定するものとする。
まず、光源画像において、十分に輝度値の高い画素を、光源を撮像している画素すなわち光源画素として抽出する。図42はこの処理を説明するための模式図である。図42では、視野範囲1006を持った撮像装置1001が光源1007を撮像している。このとき、撮像画像1008において、光源が撮像されている領域1009の輝度値は非常に高くなる。そこで、閾値処理を利用し、所定の閾値よりも輝度値が高い画素を光源画素として抽出する。
こうして求まった光源画素から、光源方向を推定する。この処理には、撮像装置の画素位置(u,v)と画像座標系とよばれる撮像素子上での実寸位置(xf,yf)との関係式が必要である。レンズの歪みなどの影響を考慮すると、画素位置(u,v)と実寸位置(xf,yf)との関係は、次式で求められる。
ただし、(Cx,Cy)は画素中心位置、sはスケールファクタ、(dx,dy)は撮像素子1画素のサイズ[mm]、Ncxはx方向の撮像素子数、Nfxはx方向の有効画素数、κ1、κ2はレンズの歪みを示す歪みパラメータである。
また、図43に示した、撮像装置の焦点位置を原点、その光軸方向をZ軸にとったカメラ座標系(x,y,z)と画像座標系(xf,yf)との関係は、次式で求められる。
ここで、fは撮像装置の焦点距離を表している。つまり、カメラパラメータ(Cx,Cy),s,(dx,dy)、Ncx、Nfx、f、κ1、κ2が既知であれば、(式2)(式3)により、画素位置(u,v)とカメラ座標系(x,y,z)の変換が可能である。
通常、Ncx、Nfxは撮像素子が特定できれば既知であり、また、(Cx,Cy),s,(dx,dy)、κ1、κ2、fはいわゆるカメラキャリブレーションを行うことで既知となる(例えば、Roger Y.Tsai,“An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision”,Proceedings of IEEE Conference on Computer Vision and Pattern Recognition,Miami Beach,FL,1986,pp.364−374)。これらのパラメータは、撮像装置の位置や姿勢が変化しても変化しない。このようなパラメータをカメラ内部パラメータとよぶ。
そこで、撮像を行う前にカメラキャリブレーションを行い、カメラ内部パラメータ(Cx,Cy)、s、(dx,dy)、Ncx、Nfx、f、κ1、κ2を特定する。これらの値は、撮像装置購入時に付属されているものを利用しても構わない。また、カメラが固定焦点ではなく、ズーム可能である場合、各ズーム時の焦点距離fを個別に求めておき、必要なときに選択できるようにしておけばよい。そして、焦点距離fを撮像した画像とともに保持しておけばよい。
以上の情報を利用して、光源画素から光源方向を推定する。光源画素の画素位置を(ulight,vlight)とすると、光源方向Llightは以下の式で表現できる。
ところで、Llightは光源画像を撮像したカメラ座標系で表現されているため、現在のカメラ座標系Lnowで表現しなおす。これは、以下の式で表現できる。
以上の処理を行うことにより、光源方向ベクトルLnowを推定する。このようにして、光源の方向が推定される。
さらに、撮像装置1001が移動することを利用して、光源の方向だけでなく、3次元位置まで求めるようにしても構わない。
図44はこの処理を説明するための模式図である。図44において、1001A、1010Aは時刻t=t1における撮像装置と推定された光源方向ベクトル、また、1001B、1010Bは時刻t=t2における撮像装置と推定された光源方向ベクトルを示している。ここで、時刻t1とt2における撮像装置の相対的な位置関係と姿勢がわかっていれば、光源ベクトル1010A,1010Bを延長した交点に光源は存在するはずである。つまり、光源の3次元位置は以下のように求まる。
時刻t1における、撮像装置の姿勢行列、撮像装置の相対的な3次元位置、および推定された光源方向ベクトルをそれぞれ、R1、P1、L1とし、時刻t2における、撮像装置の姿勢行列と推定された光源方向ベクトルをそれぞれ、R2、L2とする。ただし、時刻t2において、撮像装置の位置は原点O(0,0,0)であるとする。このとき、光源位置Plightは次式を満たす。
ただし、s,mは任意の定数である。もし、すべての推定値が正しく、ノイズが存在していなければ、(式5)と(式6)をsとmに関する連立方程式として解くことによって、光源位置Plightは求まる。しかし、通常はノイズの影響があるため、最小自乗法を利用して、光源位置を求める。
まず、以下の関数f(m,s)を考える。
ここで、m,sは以下の関係式を満たす。
つまり、
よって、(式7)、(式8)をmとsに関する連立方程式として解き、求まったsとmを(式5)または(式6)へ代入することにより、光源位置Plightが求まる。このようにして、光源の位置が推定される。
なお、時刻t1における撮像装置の相対的な3次元位置P1(時刻t1とt2における撮像装置の相対的な位置関係)は、オプティカルフローを用いることによって求められる。オプティカルフローは、被写体上のある1点に対応する、時間的に連続した2つの画像上の点、すなわち対応点を結ぶベクトルであり、対応点とカメラ動きの間には、幾何学的な拘束式が成り立つ。このため、対応点が一定の条件を満たす場合にカメラの動きを算出することができる。
異なる時刻における撮像装置の相対的な位置関係をオプティカルフローから求める手法としては、例えば8点法と呼ばれる手法が知られている(H.C.Longuet−Higgins,“A computer algorithm for reconstructing a scene from two projections”,Nature,vol.293,pp.133−135,1981)。この手法は、2画像間の静止した8点以上の対応点の組からカメラ動きを算出するものである。また、このような2画像間の対応点を求める手法は、一般に広く知られた方法であるので、詳細な説明を省略する(例えば、Carlo Tomasi and Takeo Kanade,“Detection and Tracking of Point Features”,Carnegie Mellon University Technical Report,CMU−CS−91−132,April 1991)。
さらに、光源画素の輝度値やRGB値を求めることによって、光源の輝度や色も求めることができる。また、画像をマルチスペクトルカメラで取得することによって、光源のスペクトルを検出するようにしても構わない。このように光源のスペクトルを取得することによって、画像の高解像度化や拡張現実において、色再現性の高い画像が合成できることが知られている(例えば、「内山俊郎,土田 勝,山口雅浩,羽石秀昭,大山永昭,“マルチスペクトル撮影による光源環境計測とスペクトルに基づく画像生成”,電子情報通信学会技術研究報告PRMU2005−138,pp.7−12,2006」)。
また、光源情報推定部105は、光源情報として、光源の照度情報を取得するようにしても構わない。これは撮像装置1001と光軸方向が一致した照度計を利用すればよい。照度計としては、光電池にマイクロアンペア計を接続し、入射光によって生じる光電流を読む光電池照度計などを用いればよい。
以上のように本処理の光源推定装置によると、撮像装置の状況が光源情報の取得に適していると判断されたとき、この撮像装置によって光源画像を取得し、光源画像の取得時における第1の撮像装置情報と、撮像者による撮像時における第2の撮像装置情報とを用いて、撮像時における光源情報を推定する。したがって、カメラ付き携帯電話などにおいて、付加的な撮像装置を搭載することなく、被写体周囲の光源情報を推定することができる。
なお、上述の処理では、撮像装置状況判断部101が撮像装置1001の光軸方向を検出するために、角度センサ1025の出力を用いるものとしたが、これ以外にも例えば、錘とタッチセンサを利用した方法(特開平4−48879号公報参照)や、加速度センサを利用した方法(特開昭63−219281号公報参照)など、既存の方法を利用してもよい。
ここでは、錘とタッチセンサを利用する方法について説明する。図45は錘とタッチセンサの構成を示す図である。図45(a)において、1003は常に垂直方向を保持するよう基端部を回動可能に支持して吊下された錘、1004A、1004Bはタッチセンサである。また、1005は撮像装置の光軸方向を示している。図45(b)に示すように、撮像装置の光軸方向1005と水平面との角度をθとすると、タッチセンサ1004A,1004Bは、光軸方向1005が水平方向から所定角度θ1、θ2だけ傾いたとき、錘1003に当接するように設置されている。
図46は図45の錘とタッチセンサがカメラ付き折り畳み式携帯電話に搭載された場合の構成例である。図46のカメラ付き折り畳み式携帯電話が、撮像装置1001を下にして置かれた場合、錘1003がタッチセンサ1004Aに当接し、タッチセンサ1004AがONになる(図47(a))。一方、撮像装置1001を上にして置かれた場合、錘1003がタッチセンサ1004Bに当接し、タッチセンサ1004BがONになる(図47(b))。
図48は光軸方向とタッチセンサのON/OFFとの関係を示す図である。すなわち、タッチセンサ1004AがONになり、タッチセンサ1004BはOFFのとき、光軸は水平方向から+θ1以上傾いた下向きであると推定できる。また、タッチセンサ1004BがONになり、タッチセンサ1004AはOFFのとき、光軸は水平方向から−θ2以上傾いた上向きであると推定できる。一方、タッチセンサ1004A、1004B両方ともOFFの場合は、−θ2<θ<θ1であり、光軸方向はほぼ水平と推定できる。
このように、錘とタッチセンサを利用して、撮像装置1001の光軸方向を検出することが可能となる。
なお、ここでは、カメラ付き折畳式携帯電話を例にとって説明したが、もちろんデジタルスチルカメラやデジタルビデオカメラであっても、錘とタッチセンサを利用して、撮像装置の光軸方向を検出することは可能である。図49はデジタルスチルカメラに錘とタッチセンサを搭載した場合の構成例である。図49(a)に示すように、撮像装置1001の光軸が下向きのときは錘1003がタッチセンサ1004Aに当接しており、一方、図49(b)に示すように、撮像装置1001の光軸が上向きのときは錘1003がタッチセンサ1004Bに当接している。
また、上述の処理では、撮像装置状況判断部101は、撮像装置1001の光軸の方向を検出して、撮像装置1001の状況が光源情報の取得に適しているか否かを判断するものとしたが、光軸の方向を検出する代わりに、例えば、撮像された画像の輝度値を検出するようにしても構わない。
撮像画像に光源が映っている場合、光源が撮像されている画素の輝度値は非常に高くなる。そこで、撮像装置1001により画像を撮像し、撮像された画像に閾値以上の輝度値が存在する場合、光源が撮像されており、光源情報の取得に適した状況であると判断することができる。このとき、光源の輝度値は非常に高いと考えられるため、撮像装置1001は露光時間をできる限り短くして撮像することが望ましい。
あるいは、撮像装置1001の状況が光源情報の取得に適しているか否かを判断するために、カメラの視野範囲に遮蔽物が存在するか否かを検出するようにしても構わない。これは、遮蔽物が存在する場合、光源が遮蔽されてしまい、光源を撮影できない可能性が高くなるためである。
遮蔽物の存在を検出するためには、距離情報を利用する方法と、画像情報を利用する方法とがある。前者は、例えばカメラのオートフォーカスなどに利用されている測距センサの出力を利用し、例えば、1m以内に被写体が存在する場合はその被写体は遮蔽物であると判断するようにすればよい。また、後者の画像情報を利用する方法は、例えば、撮像装置1001で画像を撮影し、その画像中から画像処理により人物を検出する。もし、人物が撮像されていた場合、その人物は遮蔽物であると判断する。これは、カメラの近傍で光源を遮蔽する最も一般的な被写体は人物だと考えられるためである。画像からの人物の検出は、例えば、色情報を利用して、肌色領域を検出するなど、広く知られている画像認識技術を利用すればよい。
また、光源画像取得部102が光源画像の取得を行う際には、フラッシュを照射せずに撮像を行うことが望ましい。これは、鏡のような鏡面反射を起こす被写体が撮像装置1001の視野内に存在している場合、フラッシュが反射され、誤って光源画素として推定されてしまうためである。そのため、冷却CCDカメラや多重露光撮像など、広いダイナミックレンジを撮像できる撮像装置を利用することが望ましい。また、光源画像取得部102が光源画像の取得を行う際に、露光量が足りない場合は、露光時間を長くすればよい。これは、上述のように、加速度センサなどを利用し、撮像装置1001が静止しているときのみ、光源画像の取得を行う場合に特に有効である。
以上のように本実施形態によると、データベースを利用した画像の高解像度化において、データベース作成時とは異なる光源環境の被写体が入力された場合であっても、画質の劣化を抑えながら、画像の高解像度化を行うことができる。
(第2の実施形態)
図50は本実施形態に係る画像高解像度化装置の構成を示している。図50において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明は省略する。また、図4は本実施形態に係る画像高解像度化装置が搭載されたカメラの構成例を示しており、第1の実施形態と同じである。
第1の実施形態との違いは、画像高解像度化判断部223を設けた点である。画像高解像度化判断部223は、アルベド推定部221によって作成されたアルベド画像について、アルベドDB208に蓄積された変換規則に従った高解像度化を行った場合の、信頼性を評価する。アルベド高解像度化部207は、画像高解像度化判断部223によって信頼性が低いと評価されたとき、アルベドDB208に蓄積された変換規則を用いないで、アルベド画像の高解像度化を行う。すなわち、アルベドDB208を用いたときの高解像度アルベド画像の信頼性が低い場合は、アルベド高解像度化処理を切り替える。
図51は本実施形態における画像高解像度化判断部223およびアルベド高解像度化部207の処理の流れを示すフローチャートである。画像高解像度化判断部223は、アルベド推定部221が作成したアルベド画像が、アルベドDB208作成時の学習データに類似しているか否かを判断する(ステップS451)。ここでの画像の類似度計算は、入力されたアルベド画像をテキストン化したテキストンと、クラスタC内の最短距離のテキストンベクトルとの距離を用いて行えばよい。もし、テキストンの距離が閾値Th_TXより小さい場合(ステップS451でYes)、第1の実施形態と同様に、アルベドDB208から変換規則を取得してアルベド画像を高解像度化する(ステップS452)。一方、テキストンの距離が閾値Th_TXより大きかった場合(ステップS451でNo)、アルベドDB208が保持している変換規則では高解像度化が高精度に行えないと判断し、例えば単純な線形補間処理に基づく高解像度化処理を行う(ステップS453)。このような閾値Th_TXは、実験的に決定すればよく、例えば、入力画像が各色256階調カラー画像であった場合、0.01とすればよい。
もちろん、十分類似した学習データが存在しない場合の処理方法は、線形補間処理に限られるものではなく、例えば、バイキュービック法やスプライン補間などを利用しても構わない。
また、ここでの画像の類似度計算は、入力されたアルベド画像をテキストン化したテキストンと、クラスタC内における最短距離のテキストンベクトルとの距離を利用する方法に限られるものではなく、例えば、輝度ヒストグラムを比較するようにしても構わない。この場合、クラスタCと学習された変換行列CMatに加え、学習に使用したアルベド画像もアルベドDB208に蓄積しておく。前記のテキストン間の距離を利用する方法では、画素ごとにアルベド高解像度化処理を切り替えるのに対し、この手法では、画像ごとにアルベド高解像度化処理を切り替える。
また、画像高解像度化判断部223は、アルベド高解像度化部207によって作成される高解像度アルベド画像の信頼性を評価するために、アルベド画像を利用するのではなく、アルベド高解像度化部207が高解像度化した高解像度アルベド画像を利用しても構わない。この場合、アルベド高解像度化部207が高解像度化した高解像度アルベド画像を低解像度化した画像と、アルベド推定部221が作成したアルベド画像との類似度を評価すればよい。ここでの低解像度化は、高解像度アルベド画像をローパスフィルタを通してサブサンプリングすることによって行えばよい。
これら2つのアルベド画像は、高解像度化が高精度に行われている場合は同じ画像となり、高解像度化に失敗している場合は異なった画像となる。そこで、これら2つのアルベド画像の類似度が十分に高い場合、第1の実施形態と同様に、アルベドDB208から変換規則を取得してアルベド画像を高解像度化する。一方、これら2つのアルベド画像の類似度が十分に高くない場合、アルベドDB208が蓄積している変換規則では高解像度化が高精度に行えないと判断し、例えば単純な線形補間処理に基づく高解像度化を行う。
以上のように本実施形態によると、学習データに類似していない被写体に対しては、アルベドDBに蓄積された変換規則を利用せず、例えば単純な線形補間処理を利用することによって、画質の劣化を抑えた画像高解像度化処理を行うことができる。
(第3の実施形態)
図52は本発明の第3の実施形態に係る画像高解像度化システムの構成を示すブロック図である。図52では、図1と共通の構成要素については図1と同一の符号を付しており、ここではその詳細な説明を省略する。
図52では、例えばカメラ付き携帯電話によって構成される通信端末501に、図1に示した各構成要素のうち画像撮像部201、光源情報推定部203および形状情報取得部204が設けられている。そして、アルベド推定部206、アルベドDB208、アルベド高解像度化部207および画像高解像度化部217は、通信端末501から離れてネットワークを介して接続された外部の装置であるサーバ502に設けられている。すなわち、本実施形態では、通信端末501側では、全ての処理を行うのではなく、画像撮像と光源情報および形状情報の取得のみを行い、画像高解像度化処理はサーバ502側で実行する。
通信端末501では、第1の実施形態で述べたように、画像撮像部201によって原画像が撮像され、光源情報推定部203によって光源情報が推定され、形状情報取得部204によって被写体の形状情報が取得される。これら原画像、光源情報および形状情報は、情報送信部224によって送信される。
サーバ502では、情報受信部225が、通信端末501からネットワークを介して送信される情報、すなわち原画像、光源情報および形状情報を受信する。受信された原画像、光源情報および形状情報はアルベド推定部206に与えられる。アルベド推定部206は、第1の実施形態で述べたように、光源情報および形状情報を用いて、原画像から被写体のアルベド画像を作成する。アルベド高解像度化部207は、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドDB208から変換規則を取得し、アルベド画像を高解像度化する。画像高解像度化部217はアルベド高解像度化部207によって得られた高解像度アルベド画像と、光源情報および形状情報を用いて、原画像を高解像度化した高解像度画像を作成する。
このように、アルベド推定部206、アルベドDB208、アルベド高解像度化部207および画像高解像度化部217をサーバ502に設けて、画像高解像度化処理を実行させることによって、通信端末501側の計算負荷を軽くすることが可能になる。
なお、上述の第2および第3の実施形態において、第1の実施形態で説明したのと同様に、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うようにすることも、もちろん可能である。
なお、上述の各実施形態に係る画像高解像度化方法は、コンピュータに、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行させることによって、実現することが可能である。
本発明の第1態様では、画像高解像度化装置として、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部と、前記光源情報および形状情報を用いて、前記画像撮像部によって撮像された原画像から、前記被写体のアルベド画像を作成するアルベド推定部と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成されたアルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えたものを提供する。
本発明の第2態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記アルベド推定部は、前記原画像に代えて、前記拡散反射・鏡面反射分離部によって分離された拡散反射画像から、アルベド画像を作成する前記第1態様の画像高解像度化装置を提供する。
本発明の第3態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像撮像部は、前記被写体の偏光状態を取得するものであり、前記拡散反射・鏡面反射分離部は、前記画像撮像部によって取得された偏光状態を用いて、前記分離を行う前記第1態様の画像高解像度化装置を提供する。
本発明の第4態様では、前記アルベドデータベースが蓄積している変換規則は、前記原画像と解像度が同一のアルベド画像と前記原画像よりも解像度が高いアルベド画像とを用いた学習処理によって、求められたものである前記第1態様の画像高解像度化装置を提供する。
本発明の第5態様では、前記アルベド推定部によって作成されたアルベド画像について、前記アルベドデータベースに蓄積された変換規則に従った高解像度化の信頼性を評価する画像高解像度化判断部を備え、前記アルベド高解像度化部は、前記画像高解像度化判断部によって信頼性が低いと評価されたとき、前記アルベドデータベースに蓄積された変換規則を用いないで、前記アルベド画像の高解像度化を行う前記第1態様の画像高解像度化装置を提供する。
本発明の第6態様では、画像高解像度化装置として、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、方向および位置のうち少なくともいずれか一方を含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部と、前記光源情報および形状情報を用いて、前記画像撮像部によって撮像された原画像から、前記被写体の擬似アルベド画像を作成するアルベド推定部と、低解像度擬似アルベド画像を高解像度擬似アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成された擬似アルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度擬似アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えたものを提供する。
本発明の第7態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記アルベド推定部は、前記原画像に代えて、前記拡散反射・鏡面反射分離部によって分離された拡散反射画像から、擬似アルベド画像を作成する前記第6態様の画像高解像度化装置を提供する。
本発明の第8態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像撮像部は、前記被写体の偏光状態を取得するものであり、前記拡散反射・鏡面反射分離部は、前記画像撮像部によって取得された偏光状態を用いて、前記分離を行う前記第6態様の画像高解像度化装置を提供する。
本発明の第9態様では、前記アルベドデータベースが蓄積している変換規則は、前記原画像と解像度が同一の擬似アルベド画像と前記原画像よりも解像度が高い擬似アルベド画像とを用いた学習処理によって、求められたものである前記第6態様の画像高解像度化装置を提供する。
本発明の第10態様では、前記アルベド推定部によって作成された擬似アルベド画像について、前記アルベドデータベースに蓄積された変換規則に従った高解像度化の信頼性を評価する画像高解像度化判断部を備え、前記アルベド高解像度化部は、前記画像高解像度化判断部によって信頼性が低いと評価されたとき、前記アルベドデータベースに蓄積された変換規則を用いないで、前記擬似アルベド画像の高解像度化を行う前記第6態様の画像高解像度化装置を提供する。
本発明の第11態様では、前記原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部を備え、前記画像高解像度化部は、前記拡散反射・鏡面反射分離部によって分離された鏡面反射画像を高解像度化し、前記高解像度化された鏡面反射画像を用いて、前記高解像画像の作成を行う前記第1または第6態様の画像高解像度化装置を提供する。
本発明の第12態様では、前記画像高解像化部は、前記鏡面反射画像の高解像度化を、前記形状情報の高密化処理を利用して、行う前記第11態様の画像高解像度化装置を提供する。
本発明の第13態様では、画像高解像度化方法として、被写体を撮像した原画像を取得する第1のステップと、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する第2のステップと、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する第3のステップと、前記光源情報および形状情報を用いて、前記原画像から、前記被写体のアルベド画像を作成する第4のステップと、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド画像を高解像度化する第5のステップと、前記第5のステップにおいて得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する第6のステップとを備えたものを提供する。
本発明の第14態様では、画像高解像度化プログラムとして、コンピュータに、被写体を撮像した原画像から、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報、および、前記被写体の、表面の法線情報または3次元位置情報である形状情報を用いて、前記被写体のアルベド画像を作成する第1のステップと、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド画像を高解像度化する第2のステップと、前記第2のステップにおいて得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する第3のステップとを実行させるものを提供する。
本発明の第15態様では、通信端末とサーバとを有し、画像を高解像度化する画像高解像度化システムとして、前記通信端末は、撮像装置によって被写体の撮像を行う画像撮像部と、前記被写体に照射する光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む光源情報を推定する光源情報推定部と、前記被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する形状情報取得部とを有し、前記画像撮像部によって撮像された原画像、前記光源情報推定部によって推定された光源情報、および、前記形状情報取得部によって取得された形状情報を送信するものであり、前記サーバは、前記通信端末から送信された前記原画像、光源情報および前記形状情報を受信し、かつ、前記光源情報および形状情報を用いて、前記原画像から、前記被写体のアルベド画像を作成するアルベド推定部と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベースと、前記アルベドデータベースから変換規則を取得し、この変換規則に従って、前記アルベド推定部によって作成されたアルベド画像を高解像度化するアルベド高解像度化部と、前記アルベド高解像度化部によって得られた高解像度アルベド画像と、前記光源情報および形状情報を用いて、前記原画像を高解像度化した高解像度画像を作成する画像高解像度化部とを備えているものを提供する。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1および図2は本実施形態に係る画像高解像度化装置の構成を示している。また、図3は本実施形態に係る画像高解像度化方法の処理の流れを示すフローチャートである。さらに、図4は本実施形態に係る画像高解像度化装置が搭載されたカメラの構成例を示している。
図1に示す画像高解像度化装置は、撮像装置によって被写体の撮像を行う画像撮像部201と、被写体に照射する光源に関する光源情報を推定する光源情報推定部203と、被写体の形状情報を取得する形状情報取得部204と、光源情報および形状情報を用いて、前記画像撮像部201によって撮像された原画像から被写体のアルベド画像を作成するアルベド推定部206と、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドデータベース(DB)208と、アルベドDB208から変換規則を取得し、この変換規則に従って、アルベド推定部206によって作成されたアルベド画像を高解像度化するアルベド高解像度化部207と、アルベド高解像度化部207によって得られた高解像度アルベド画像と、光源情報および形状情報を用いて、原画像を高解像度化した高解像度画像を作成する画像高解像度化部217を備えている。
光源情報推定部203が推定する光源情報は、光源の、照度と、方向および位置のうち少なくともいずれか一方とを含む。被写体情報推定部204は、被写体の、表面の法線情報または3次元位置情報を、形状情報として取得する。
図2に示す画像高解像度化装置は、図1の構成を基本にしたものであり、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うものである。さらに、原画像から影領域を除去した後に高解像度化を行い、高解像度化後に影領域を付加するようにしている。
すなわち、図1の構成に加えて、画像撮像部201によって撮影された原画像を、拡散反射画像と鏡面反射画像とに分離する拡散反射・鏡面反射分離部202と、分離後の画像から影領域の推定を行う影除去部205とをさらに備えている。アルベド推定部221は、画像撮像部201によって撮影された原画像に代えて、拡散反射・鏡面反射分離部202によって分離された拡散反射画像から、光源情報および形状情報を用いて、アルベド画像を作成する。
また、画像高解像度化部217は、アルベド高解像度化部207によって得られた高解像度アルベド画像を用いて、高解像度拡散反射画像を作成する拡散反射画像高解像度化部209と、形状情報取得部204によって取得された形状情報と拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を利用して、被写体を表現するパラメータを推定するパラメータ推定部210と、形状情報取得部204によって取得された形状情報を高密度化する形状情報高密度化部211と、低密度形状情報を高密度形状情報に変換する変換規則を蓄積している法線データベース(DB)212を利用して、パラメータ推定部210によって求められたパラメータを高密度化するパラメータ高密度化部213と、形状情報高密度化部211によって推定された高密度形状情報と、パラメータ高解像度化部213によって高密度化されたパラメータを利用し、高解像度鏡面反射画像を合成する鏡面反射画像高解像度化部214と、影領域を生成する影生成部215と、レンダリング部216とを備えている。
以下、図2の構成に基づいて、各構成要素における処理について説明する。なお、図2の構成では、原画像から影領域を除去した後に高解像度化を行い、高解像度化後に影領域を付加するようにしているが、本発明において、影領域の除去および付加は必ずしも行う必要はない。また、図2の構成では、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うようにしているが、本発明において、拡散反射画像と鏡面反射画像との分離は必ずしも行う必要はない。例えば、原画像がほぼ拡散反射成分のみからなると考えられる場合には、拡散反射画像と鏡面反射画像との分離は必要でなく、原画像についてアルベド画像を利用した高解像度化を行えばよい。この場合、装置の構成は図1のようになる。
画像撮像部201はCCDやCMOSなどの撮像装置を利用して、被写体を撮像する(ステップS401)。こうして撮像された画像は、輝度が非常に高くなる鏡面反射成分と拡散反射成分とを同時に、飽和することなく記録されることが望ましい。このため、冷却CCDカメラや多重露光撮像など、広いダイナミックレンジを撮像できる撮像装置を利用することが望ましい。また、画像撮像部201は後述するように、偏光フィルタを利用して撮像を行うことが望ましい。これにより、被写体の偏光状態を取得することができ、拡散反射・鏡面反射分離部202は、画像撮像部201によって取得された偏光状態を用いて、分離を行うことができる。
拡散反射・鏡面反射分離部202は、画像撮像部201によって撮像された原画像を、拡散反射画像と鏡面反射画像とに分離する(ステップS402)。ここで、拡散反射画像とは、入力画像のうち、マットな反射成分である拡散反射成分のみを画像化したものであり、同様に、鏡面反射画像は、入力画像のうち、てかりである鏡面反射成分のみを画像化したものである。ここで、拡散反射成分とは、光沢の無い物体表面で起こる反射のように、すべての方向に一様に散乱する成分である。一方、鏡面反射成分とは、鏡の面での反射のように、法線に対して入射光の反対方向に強く反射する成分である。2色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分との和として表現される。後述するように、鏡面反射画像と拡散反射画像は、例えば偏光フィルタを回転させながら被写体を撮像することによって取得することができる。
図5(a)は、光源で照射された被写体(タンブラー)を撮像装置で撮像した画像を示している。図の上部にてかりである鏡面反射が現れているのがわかる。一方、図5(b)(c)は、図5(a)の画像を後述する方法で拡散反射画像と鏡面反射画像とに分離した結果である。拡散反射画像はてかりが取り除かれ、表面のテクスチャ情報が鮮明になっているが、立体感が失われている。一方、鏡面反射画像は細かな形状情報が鮮明に現れているが、逆にテクスチャ情報が失われている。つまり、入力画像はこれら全く異なる情報を含んだ二つの画像が重畳されたものであった。画像を拡散反射画像と鏡面反射画像とに分離し、別々に処理することにより、より精細な高解像度化処理が可能である。
前述のように、2色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分の和として以下の式で表現される。
ここで、Iは撮像装置が撮像した被写体の輝度値、Iaは環境光成分、Idは拡散反射成分、Isは鏡面反射成分である。ここで、環境光成分とは、光源の光が物体などによって散乱された間接光のことである。これは空間の至る所に散乱され、直接光がとどかない影の部分にもわずかに明るさを与える。そのため、通常はノイズとして取り扱われることが多い。
環境光成分は十分に小さく、ノイズとして無視できると考えると、画像は拡散反射成分と鏡面反射成分とに分離できる。上述のように、拡散反射成分がテクスチャ情報に依存するのに対し、鏡面反射画像は細かな形状情報に依存するといったように、これらの成分は非常に異なった特質を示す。そのため、画像を高解像度化するために、入力画像を拡散反射画像と鏡面反射画像とに分離し、それぞれの画像を別々の方法で高解像度化することによって、非常に高精細な高解像度化画像を取得することができる。このため、まずは拡散反射画像と鏡面反射画像とを分離する必要性がある。
この分離方法は、従来からさまざまなものが提案されている。例えば、
・鏡面反射と拡散反射の偏光度の違いを利用し、偏光フィルタを用いた方法(例えば、特許第3459981号公報)。
・対象物を回転させ、マルチスペクトルカメラを利用することで鏡面反射領域を分離する方法(例えば、特開2003−85531号公報)。
・様々な方向から光源を当てた対象物の画像を利用し、鏡面反射が生じない理想状態での画像である線形化画像を合成し、その線形化画像を利用して鏡面反射や影領域を分離する方法(例えば、「石井育規,福井孝太郎,向川康博,尺長健, “光学現象の分類に基づく画像の線形化“,情報処理学会論文誌,vol.44,no. SIG5 (CVIM6) ,pp.11-21,2003」)。
などがある。
ここでは、偏光フィルタを利用する方法を用いる。図6は本実施形態に係る画像高解像度化装置が搭載されたカメラ付き携帯電話1000を示している。図6に示すように、撮像装置1001には回転機構(図示せず)をもった直線偏光フィルタ1016Aが設けられている。また、直線偏光フィルタ1016Bが取り付けられた照明装置1007が設けられている。また、1017は使用者のインターフェイス用の液晶ディスプレイである。
ここで、直線偏光フィルタ1016Bが取り付けられた照明装置1007に照らされた被写体について、撮像装置1001が、直線偏光フィルタ1016Aを回転機構により回転させながら、複数枚の画像を撮像する。ここで、照明が直線偏光されていることに着目すると、反射光強度は偏光フィルタ1016の回転角ψに対して、図7のように変化する。ここで、反射光の拡散成分をI
d、鏡面反射成分をI
sとすると、反射光輝度の最大値I
maxと最小値I
minは以下の式で表現される。
つまり、反射光の拡散成分I
d、鏡面反射成分I
sは、以下の式から求まる。
図8はこの処理の流れを示したものである。まず、回転機構により偏光フィルタ1016Aを回転させ(ステップS301)、画像を撮像し、メモリに保持する(ステップS302)。次に、メモリに保持された画像が、所定の枚数撮像されているかを確認する(ステップS303)。このとき、反射光輝度の最小値と最大値を検出するのに十分な枚数がまだ撮像されていない場合(ステップS303でNo)、偏光フィルタを再度回転させ(ステップS301)、撮像を繰り返す。一方、十分な枚数の撮像ができている場合(ステップS303でYes)、撮像された画像データを利用して、反射光輝度の最小値と最大値を検出し(ステップS304)、(式13)と(式14)を利用することにより、拡散反射成分と鏡面反射成分とを分離する(ステップS305)。この処理は、複数枚の画像から画素ごとに最小値と最大値を求めても構わないが、ここでは、sin関数のフィッテングを利用する。この処理を説明する。
図7に示した、偏光フィルタ角ψに対する反射光輝度Iは、以下のように、sin関数で近似できる。
ここで、A、B、Cは定数であり、(式13)、(式14)より
つまり、撮像された画像から、(式15)のA,B,Cを求めることにより、拡散反射成分と鏡面反射成分とを分離することができる。
ところで、(式15)は以下のように展開できる。
ただし、
つまり、以下の評価式を最小にするA,B,Cを求めることで、拡散反射成分と鏡面反射成分を分離することができる。
ただし、I
iは、偏光フィルタ角ψ
i時の反射光強度を示している。ここで、最小自乗法を用いると、各パラメータは以下のように推定される。
以上より、(式16)〜(式23)を利用することで、拡散反射成分と鏡面反射成分とを分離する。この場合、未知パラメータが3個であるため、偏光フィルタの回転角を変更した画像を最低3枚撮像すればよい。
このため、直線偏光フィルタ1016Aの回転機構を設ける代わりに、画素ごとに偏光方向の異なる撮像装置を利用しても構わない。図9はこのような撮像装置の画素を模式的に示したものである。ここで、1022は各画素を示し、各画素内の直線は偏光方向を示している。すなわち、この撮像装置は0°、45°、90°、135°の4種類の偏光方向を有する画素を持つ。そして、図9の太線1023のように、4種類の画素をベイヤ配列のように1画素として取り扱うことによって、偏光方向が4種類異なった画像を同時に撮像することができる。このような撮像装置は、例えば、フォトニック結晶デバイスなどを利用すればよい。
また、このような偏光フィルタと回転装置は、カメラ自体が持つのではなく、着脱可能な構成にしても構わない。例えば、一眼レフカメラの交換レンズに、偏光フィルタと回転装置を搭載する。図10はこのような画像高解像度化装置が搭載されたカメラと交換レンズの構成例を示している。カメラ1101は、直線偏光フィルタ1016の回転を指示する信号を交換レンズ1102に送信するための信号送信装置1045を有する。交換レンズ1102は、直線偏光フィルタ1016と、信号送信装置1045から送信された信号を受信する信号受信装置1046と、直線偏光フィルタ1016の回転を指示する信号を信号受信装置1046が受信したとき、直線偏光フィルタ1016を回転させるモータ1044とを有する。
図11はこのような画像高解像度化装置が搭載されたカメラと交換レンズの模式図である。カメラ1101には電気信号を送信する接点1103が設けられており、交換レンズ1102には電気信号を受信する接点1104が設けられている。カメラ1101と交換レンズ1102とがマウント1105によって結合されたとき、両接点1103,1104が接触する。これにより、カメラ1101から交換レンズ1102に信号を送信することが可能になり、カメラ1101から直線偏光フィルタ1016の回転を指示する信号を送信して、モータ1044によって直線偏光フィルタ1016を回転させることができる。
また、照明装置1007として、偏光された照明例えば液晶ディスプレイを利用してもかまわない。例えば、携帯電話1000に搭載されている液晶ディスプレイ1017を利用すればよい。この場合、液晶ディスプレイ1017の輝度値を、利用者のインターフェイス用として利用しているときに比べ、高くすることが望ましい。
もちろん、撮像装置1001の偏光フィルタ1016Aを回転させる代わりに、照明装置1007の偏光フィルタ1016Bを回転させてもかまわない。また、撮像装置1001と照明装置1007の両方に偏光フィルタを設置する代わりに、撮像装置側など片側のみに設置し、独立成分分析を利用して拡散反射成分と鏡面反射成分とを分離させてもかまわない(例えば、特許3459981号公報参照)。
光源情報推定部203は、光源情報として、光源の方向、さらには色情報や照度情報を取得する(ステップS403)。これは例えば、被写体近傍に光源情報を推定するための形状既知の鏡面などを配置し、画像撮像部201によって撮像したその鏡面の画像から推定すればよい(例えば、「神原誠之,横矢直和,"光源環境の実時間推定による光学的整合性を考慮したビジョンベース拡張現実感",電子情報通信学会技術研究報告,パターン認識・メディア理解,PRMU2002-190,pp. 7-12,2003」)。この処理について詳述する。
光源情報推定部203は、図12に示した鏡面とみなせる球3001を利用して行う。鏡面球3001を被写体近傍に設置し、その位置や法線方向は既知とする。この鏡面球3001を画像撮像部201によって撮像する。このとき、鏡面球3001には、撮影環境が映り込んでいる。映り込みが生じる位置は、その鏡面球上の法線方向に対して、視線方向と映り込む対象への方向が正反射の関係となる位置である。そのため、鏡面球の位置とその法線方向が既知であれば、鏡面上の映り込んだ画像から映り込み対象の方向を検出できる。また、光源は輝度値が高いことを考慮すると、撮影された鏡面球の画像から、高輝度の画素を検出することにより、光源の方向を取得できる。さらに、鏡面の反射率が既知であれば、光源の色情報や放射輝度などの光源照度情報も取得できる。
もちろん、光源情報として、光源の方向だけではなく、あるいは光源の方向に代えて、光源の位置情報を取得するようにしても構わない。これは、例えば前述の鏡面球を2つ利用し、画像処理分野で広く知られているステレオ処理を利用すればよい。また、光源までの距離が既知の場合には、前述の方法で光源方向を推定することによって、光源の位置を推定することができる。
もちろん、このような鏡面球を常に撮影するのではなく、以前に撮影して求めた光源情報を使うようにしても構わない。これは、屋内の監視カメラのように光源環境が変わらない場合に有効である。このような場合、カメラを設置した際に鏡面球を撮影し、光源情報を取得するようにすればよい。
形状情報取得部204は、被写体の形状情報として、被写体の表面の法線情報、または被写体の3次元位置情報を取得する(ステップS404)。被写体の形状情報を取得する手段としては、例えば、スリット光投影法、パターン光投影法、レーザレーダ法などの既存の手法を用いればよい。
もちろん、形状情報の取得はこれらの手法に限られるものでない。例えば、複数のカメラを利用するステレオ視、カメラの動きを利用するモーションステレオ法、光源の位置を変化させながら撮像した画像を利用する照度差ステレオ法、ミリ波や超音波を利用して被写体との距離を測定する方法、さらには反射光の偏光特性を利用した方法(例えば、米国特許第5,028,138号や「宮崎大輔,池内克史,"偏光レイトレーシング法による透明物体の表面形状の推定手法",電子情報通信学会論文誌,vol. J88-D-II, No.8,pp. 1432-1439,2005」)を用いてもかまわない。ここでは、照度差ステレオ法と偏光特性を利用した方法について説明する。
照度差ステレオ法は、光源方向が異なる3枚以上の画像を利用して、被写体の法線方向と反射率を推定する手法である。例えば、「H. Hayakawa, ”Photometric Stereo under a light source with arbitrary motion”, Journal of the Optical Society of America A, vol.11, pp.3079-89, 1994」は、画像上で6点以上の反射率が等しい点を既知情報として取得し、拘束条件として利用することによって、光源の位置情報も未知としながらも、以下のパラメータを推定する手法である。
・被写体情報:画像上の各点の法線方向と反射率
・光源情報:被写体の観察点における光源方向と照度
ここでは、前述の拡散反射・鏡面反射分離手法によって分離された拡散反射画像のみを利用した照度差ステレオ法を行う。本来、この手法は被写体が完全拡散反射をしていることを仮定しているため、鏡面反射が存在する被写体では大きな誤差が生じてしまう。しかし、分離した拡散反射画像のみを利用することで、鏡面反射の存在による推定誤差を無くすことができる。もちろん、後述するように、影除去部205で影領域を除去した拡散反射画像で処理を行なっても構わない。
光源方向が異なる拡散反射画像を以下のように輝度行列I
dで表現する。
ただし、i
df(p)は光源方向fの拡散反射画像の画素pにおける輝度値を示している。また、画像の画素数はP画素、異なった光源方向で撮像した画像枚数はF枚である。ところで、ランバーシャンモデルより、拡散反射画像の輝度値は以下のように表現できる。
ただし、ρ
pは画素pの反射率(アルベド)、n
pは画素pの法線方向ベクトル、t
fは光源fの入射照度、L
fは光源fの方向ベクトルを示している。
(式24)、(式25)より以下の式が導かれる。
ただし、
ここで、Rは表面反射行列、Nは表面法線行列、Lは光源方向行列、Tは光源強度行列、Sは表面行列、Mは光源行列と呼ぶ。
ここで、特異値分解を利用すると、(式26)は以下のように展開できる。
ただし、
であり、Eは単位行列を示している。また、U’はP×3行列、U”はP×(F−3)行列、Σ’は3×3行列、Σ”は(F−3)×(F−3)行列、V’は3×F行列、V”は(F−3)×F行列である。ここで、U”、 V”は信号成分であるU’、 V’の直交基底、すなわち、ノイズ成分であると考えられる。ここで、特異値分解を利用すると、(式28)は以下のように変形できる。
すなわち、(式29)を解くことにより、形状情報と光源情報を同時に取得することができるが、以下の3×3行列Aの不定性が残る。
ここで、Aは任意の3×3行列である。形状情報と光源情報を取得するためには、この行列Aを求める必要がある。これは、例えば、画面上の6点以上で反射率が等しいことが既知であればよい。例えば、任意の6点k1〜k6の反射率が等しいとすると、
(式27)、(式30)と(式32)より、
さらに、
とおくと、(式33)は以下のようになる。
ここで、(式34)より行列Bは対称行列であるため、行列Bの未知数は6である。すなわち、画面上の6点以上で反射率が等しいことが既知であれば、(式35)は解くことができる。
また、行列Bが既知となれば、(式34)に特異値分解を利用することにより、行列Aは解くことができる。
さらに、(式30)、(式31)より、形状情報と光源情報を取得する。
以上のことより、反射率が等しい6点以上の画素が既知な被写体において、光源方向を変更しながら3枚以上の画像を撮像することにより、以下の情報を得ることができる。
・被写体情報:画像上の各点の法線方向ベクトルと反射率
・光源情報:被写体の観察点における光源方向ベクトルと放射輝度
ただし、上記の処理で求まる被写体の反射率と光源の放射輝度は相対的なものであり、絶対値を求めるためには、画面上の6点以上で反射率が既知であるなど、上記とは異なる既知情報が必要となる。
また、光源と撮像装置との位置関係が既知の場合、撮像装置と被写体の距離や3次元位置を求めるようにしても構わない。これを図を用いて説明する。
図13はこの処理を説明するための模式図である。図13において、1001は撮像装置、1007Aおよび1007Bは光源、1015は被写体の観察点O、1010Aおよび1010Bは被写体の観察点Oにおける各光源の光源方向、1021は被写体の観察点Oにおける撮像装置の視線方向を示している。
まず、光源と撮像装置との位置関係が既知であるため、撮像装置1001と光源1007A、1007Bの3次元位置関係La、Lbは既知である。また、撮像装置1001はキャリブレーションされているとすると、撮像装置1001の視線方向1021も既知である。このことから、被写体の観察点O1015はこの視線方向1021上に存在する。また、上述の照度差ステレオ法により、被写体の観察点Oにおける各光源の光源方向1010A、1010Bは既知である。撮像装置1001と観察点O1015の距離Lvが正(Lv>0)であるとすると、このような位置関係を満たす観察点Oは、1点しか存在しない。そのため、観察点O1015の位置がわかり、撮像装置1001と観察点O1015の距離Lvが求まる。
また、例えばデジタルカメラのフラッシュのように撮像装置に光源が設置されている場合、光源と撮像装置との位置関係は設計情報から求めることができる。
また、形状情報取得部204は反射光の偏光特性を利用して、被写体の表面法線方向を取得しても構わない。この処理について、図14を用いて説明する。
図14において、1001は撮像装置、1007は光源、1015は観察点O、1016はモータなどの回転機構(図示せず)をもった直線偏光フィルタ、1019は法線方向を示している。光源として自然光が照射されている状態において、回転機構によって偏光フィルタ1016を回転しながら撮像を行った場合、その反射光強度は、図15に示したように、周期πのsin関数となる。
ここで、この反射光強度の最大値Imaxと最小値Iminを計測する偏光フィルタの角度ψmax、ψminを考える。撮像装置1001と光源1007、観察点O1015を含む平面を入射面とし、被写体は鏡面反射成分が支配的であるとすると、ψmaxは偏光フィルタ1016の偏光方向が入射面に対して垂直な方向、また、ψminは偏光フィルタ1016の偏光方向が入射面に対して平行な方向になることが知られている。
また、上述したように、光源が偏光光源の場合、反射光成分において、偏光特性を有するものは観察点Oの表面で反射した鏡面反射成分、非偏光の成分は拡散反射成分である。このことから、反射光強度の最大値Imaxと最小値Iminの強度差が生じる観察点Oは鏡面反射成分が強い観察点、すなわち、光が正反射している(観察点Oの法線方向1019が観察点Oからの光源方向と観察点Oからの撮像装置方向の二等分線方向である)ことがわかる。そのため、法線方向1019も入射面内に存在する。そのため、ψmaxまたはψminを推定することにより、法線方向1019は以下の平面内に存在すると推定することができる。
○撮像装置1001を通り、偏光フィルタ1016の偏光方向ψmin(またはψmaxの垂直方向)を含む平面。
ここで、ψmaxまたはψminは、前述のsin関数のフィッテング処理を行うことで推定する。
また、撮像装置1001の位置を変更させて、同様な処理を行うことによって、法線方向1019を含む、異なった2つの平面を推定することができる。推定した2つの平面の交線を求めることによって、法線方向1019を推定する。この際、撮像装置1001の移動量を推定する必要があるが、これは、前述の8点法などを利用すればよい。
もちろん、拡散反射・鏡面反射分離部202と同様に、画素ごとに偏光方向の異なる撮像装置を利用しても構わない。
また、もちろん、撮像装置1001の位置を変更させるのではなく、複数台の撮像装置を設置して法線方向1019を求めるようにしても構わない。
以上のように、照度差ステレオ法と偏光特性を利用した方法では、被写体表面の法線情報を取得する。一方、スリット光投影法やステレオ視などの手法では、被写体の3次元位置情報を取得する。被写体表面の法線情報とは、被写体の3次元位置情報の微小空間での傾き情報であり、どちらも被写体の形状情報である。
以上の処理により、形状情報取得部204は被写体の形状情報として、被写体表面の法線情報または被写体の3次元位置情報を取得する。
影除去部205は、画像中の影領域を推定し、影除去処理を行う(ステップS405)。このような、影除去および影領域推定処理はさまざまな方法が提案されているが、例えば、影領域は輝度値が低いことを利用し、輝度値が閾値以下の画素を影領域と推定すればよい。
また、形状情報取得部204によって3次元形状情報が取得されている場合、Computer−Graphicsの分野で広く利用されているレンダリング手法である、レイトレーシングを利用してもかまわない。レンダリングは物体の座標データや、光源や視点の位置などの環境に関するデータを計算して行うが、レイトレーシングは、視点に届く光線を逆にたどることによって描画する。このため、レイトレーシングを利用してどの場所にどの程度の影が生成されているかを計算することができる。
次に、拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を、それぞれ、別々の方法で高解像度化する。すなわち、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行う。まず、拡散反射画像の高解像度化について説明する。
<拡散反射画像の高解像度化>
アルベド推定部206は、拡散反射・鏡面反射分離部202によって分離された拡散反射画像を利用し、被写体のアルベドを推定し、被写体のアルベド画像を作成する(ステップS406)。アルベドは光源情報に影響を受けないため、アルベド画像を利用して処理を行うことによって、光源変動にロバストな処理が実現できる。
この処理を説明する。(式25)より、拡散反射成分では、以下の関係が成り立つ。
ただし、θiは被写体の法線方向ベクトルと光源方向ベクトルのなす角を示す。ここで、光源情報推定部203および形状情報取得部204により、角度θiは既知である。また、後述するように、光源の入射照度tfも推定可能なため、被写体のアルベドrpを(式36)から求める。
この際、cosθiが0以下の値を持つ場合、すなわちattached shadowである場合、(式36)から、アルベドrpがマイナスになる、あるいは0で除算を行うことにより意味を持たなくなる。しかし、上述の影除去部205によってこのような画素を除去しているため、問題は生じない。
もちろん、被写体のアルベドを求めるのではなく、次式によりアルベドを鏡面反射画像の最大輝度値で正規化した擬似アルベドr
p’を求め、これを利用しても構わない。
ここで、isf_maxは鏡面反射画像の最大輝度値を示している。このような擬似アルベドは、光源情報推定部203により、光源の放射輝度(照度)が取得できない場合に有効である。擬似アルベド画像を利用した場合、正規化に利用した鏡面反射画像の最大輝度値isf_maxをメモリに保持しておく。図16はアルベド推定部206が擬似アルベドを利用した場合、メモリに保持されるデータを示した図である。作成された擬似アルベド画像と、正規化に利用した鏡面反射画像の最大輝度値isf_maxが保持されている。
鏡面反射パラメータが被写体の広い領域で一様であり、被写体表面にさまざまな方向の法線が存在しているとすると、カメラに対して被写体を照らす位置に光源が存在している限り、正反射が生じる正反射画素が存在する。そのため、鏡面反射画像の最大輝度値isf_maxはこの正反射画素の輝度値となる。
反射特性が一様であり、視線方向1021がほぼ一様である場合、ある光源位置での正反射画素の輝度値と別の光源位置での正反射画素の輝度値の比は、各光源での光源の放射輝度比とほぼ等しくなる。そのため、拡散反射画像の輝度値idf(p)をθiにより除算しただけでは光源の放射輝度の影響が残ってしまうが、さらに正反射画素の輝度値である鏡面反射画像の最大輝度値isf_maxで正規化を行った擬似アルベド画像を利用することにより、光源の放射輝度が取得できない場合においても光源に影響されない拡散成分画像を作成できる。
また、鏡面反射画像の最大輝度値isf_maxによって正規化を行うのではなく、拡散反射画像の最大輝度値や入力画像の最大輝度値を利用して正規化を行い、擬似アルベドを作成しても構わない。
次に、こうして求めたアルベド画像の高解像度化について説明する。
アルベド高解像度化部207は、アルベド推定部206が作成したアルベド画像を、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドDB208を利用して、高解像度化する(ステップS407)。この処理について詳述する。
前述のように、アルベド画像は、光の鏡面反射や陰影など光学現象によらない被写体固有の反射率特性を表現した画像である。ここでの高解像度化は、被写体情報が不可欠なため、被写体の事前学習に基づく。ここではテキストン(画像のテクスチャ特徴量)に基づく高解像度化を用いる。
図17はテキストンに基づく高解像度化の概念を示す図である。実行時に入力された低解像度画像(LR画像、画素数N×N)は、画素数を目標画素数に合致させるため、M×M倍に補間拡大される。この画素数MN×MN画像をexLR画像と称する。exLR画像では画像の高周波成分が失われて、ぼけた画像になる。このぼけ画像を先鋭化することが高解像度化に他ならない。
次に、多重解像度変換WTによって、exLR画像の輝度値を画素ごとに、多重解像度に基づくT次元テキストンに変換する。この変換にはウェーブレット変換やピラミッド構造分解などの処理が用いられる。この結果、exLR画像の各画素ごとに、合計MN×MN本のT次元テキストンベクトルが生成される。次に、汎用性の向上のため、テクストンベクトルにクラスタリングが実施されて、L本の入力代表テキストンベクトルが選択生成される。これらL本のテキストンベクトルに対して、予め学習したデータベースの情報から変換が施されて、T次元の高解像度化テキストンベクトルが生成される。この変換には、テーブル読み出しや、T次元の多次元特徴ベクトル空間内における線形および非線形変換が用いられる。高解像度化テキストンベクトルは、逆ウェーブレット変換やピラミッド構造再構成などの逆変換IWTによって、画像輝度値に戻されて、高解像度画像(HR画像)が完成する。
この処理では、MN×MN本のT次元テクストンベクトルのクラスタリング処理における探索とテーブル読み出しの処理に多大な時間を要し、動画など高速化対応が困難であった。そこで、1)クラスタリング処理をLR画像にて実施する。2)テーブル読み出しを線形マトリクス変換に変更する。という改良を加えた。この処理では、LR画像の1画素はHR画像のM×M画素のセルに対応する事実を使って、T次元からT次元への線形マトリクス変換をセル毎に実施して、セル内部での空間的な連続性を維持することができる。また利用する線形マトリクスはクラスタリングの結果から最適に選択する。セル境界の不連続性が問題になる場合にはマトリクス処理単位のブロックを一部重ねるなどの処理を追加してもよい。
図18は上の改良点を模式的に描いた図である。LR画像をWT変換して、T次元の特徴量空間の中のL(ここではL=3)本の代表特徴ベクトルとしている。そして、各特徴ベクトルに異なる線形マトリクスが付随している。この状態を保存したものが高解像度化データベースに他ならない。
以下、N=32、M=4、すなわち32×32画素の低解像度画像に4×4倍の高解像度化を施す例をとって、画像処理手法の詳細を述べる。アルベド画像はRGBカラー画像とするが、カラー画像はRGBから輝度色差(YCrCB)に変換して、独立した色成分画像として取り扱うものとする。通常、2×2倍率程度では、輝度Y成分だけの高解像度でよく、カラー成分は低解像度の色差信号のまま付加しても違和感はないが、4×4以上では、色信号も高解像度化が必須になるので、各成分とも同様な取り扱いとする。以下、カラー画像の1つの成分画像のみの処理を説明することとする。
(学習時)
図19は学習処理の流れを説明するPAD図であり、図20は学習処理において処理される画像の処理対象画素と処理対象セルとの関係を説明する図である。以下、図19および図20を交互に用いて説明を行なう。
まず、S311〜S313において、低解像度画像(LR画像)、高解像度画像(HR画像)、および低解像度画像の拡大画像(exLR画像)を入力する。これらの画像は、HR画像から全て生成されており、撮像における画素ずれがない状態としておく。また、LR画像からexLR画像の生成にはバイキュービック補間を用いている。図20において、HR画像(画素数128×128)と、LR画像(画素数32×32)と、LR画像から画素数だけHR画像と合致させたexLR画像(画素数128×128)の3種類の画像を用意する。LR画像は、画像撮像部201によって撮像される原画像と解像度が同一のアルベド画像であり、HR画像は、画像撮像部201によって撮像される原画像よりも解像度が高いアルベド画像である。
S314において、LR画像をテキストン化する。具体的にはHaar基底を用いた2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform:SWT変換)する。SWT変換の階層は2階層(2-step)とすると、6次元のLRW画像(画素数32×32=1024)が生成される。本来、2階層ステップの2次元離散定常ウェーブレット変換では7次元の特徴ベクトルとなるが、最低周波数のLL成分画像は画像の平均輝度情報に近くなり、これを保存するため残りの6成分のみを利用する。
S315において、テキストン化されたLRW画像の合計1024本の6次元ベクトルをCmax個にまでクラスタリングする。ここではK-means法を用いて、例えばCmax=512本にクラスタリングする。この512本の結果のテキストンベクトルの集合をクラスタCと称する。クラスタリングをせず1024本のテキストンを全て利用しても問題ない。
S316において、クラスタCの同一クラスタに判別されたLR画素を判定する。具体的には、LR画像の画素値がクラスタCの各テキストン番号に置き換えられる。
S317において、クラスタCの全テキストンに対して繰り返し処理をしながら、該当テキストンに対応するexLRの画素セルとHR画像の画素セルを探索して、該当セル番号を格納する。この探索がLR画像の画素数分だけで済むため、高倍率の場合に大きな探索時間の削減となる。
ここでLR画像の画素とexLR画像、HR画像の画素セルとの対応につき、図20で説明する。図20では、LR画像上で、2001と2002という2画素がCの同一クラスタ(クラスタ番号:Ci=0)に判別されたとする。すると、そのままの位置関係を保って拡大されたexLR画像上では2003,2004、HR画像上では2005、2006という画素セルが対応していると考えられ、これらの2箇所のセル位置の番号が、該当するテキストンを有するものとして格納される。画素セル内に含まれる画素数は拡大率4×4=16に等しい。
次にS318において、これらの画素セル群についてexLR画像とHR画像の対でテキストン化を行う。具体的には、2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)が実施されて、exLRW画像とHRW画像が生成される。
S319とS320において、上記HRW画像とexLRW画像から得られたテキストンの対が行列の形として集積される。形式はいずれも、6×Data_numの行列となる。ここでData_numは、(1セルの画素数)×(探索されたセルの数)となり、上のCi=0の例では、2個のセルが探索されたので16×2=32となる。
S321において、集積された両者に所属する合計2×4×4=128個の特徴ベクトルから最小二乗法にて6×6マトリクスMを算出し、それをS322において、クラスタ番号K=0とともにデータベースCMat(K)に格納蓄積する。S322における最小二乗法は、まずS319とS320において集積されたexLRとHRのテキストンの行列を各々LfとHf(サイズ:6×Data_num)とし、求めるマトリクスをM(6×6)とすると以下のように実行できる。
次に、クラスタ番号K=1について同様処理を繰り返して、K=511まで行う。すなわち、CMatはクラスタ番号ごとに規定される6×6変換行列の群である。
最後に、S323とS324において、使用したクラスタCと学習された変換行列CMatとを出力する。こうして求めたクラスタCと学習された変換行列CMatを、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則として、アルベドDB208に蓄積する。
図21は2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)の処理を示す図である。通常のウェーブレット変換では、フィルタバンク構成は同一のまま分解の階層が進む毎に画像が縮小していくが、2次元離散定常ウェーブレット変換では、分解の階層が進んでも変換画像サイズは不変であり、スケーリング関数Fとウェーブレット関数Gの2種類のフィルタがアップサンプリング(↑)されて2のべき乗で長くなっていくことにより多重解像度解析を行う。Haar基底では、FとGの具体的な数値とアップサンプリングの様子は表1のようになる。
LL成分であるcA画像を1階層進めてウェーブレット分解する場合、FとGのフィルタを交互に1次元的にコンボリューションすることにより、図21のように4種類の画像が生成される。1)行方向にF・列方向にF:cA画像(LL成分) 2)行方向にF・列方向にG:cDh画像(LH成分) 3)行方向にG・列方向にF:cDv画像(HL成分) 4)行方向にG・列方向にG:cDd画像(HH成分)。
図22は2次元離散定常ウェーブレット変換をテスト画像に実施した場合の画像結果例である。テキストンベクトルとは、これらウェーブレットの1−STEPと2−STEPの変換画像の1画素ごとに対応する値を連ねたもので、
の7次元ベクトルのことである。ただし2−STEPのLL成分であるcA2を除いて、6次元ベクトル部分のみを使って高解像度変換し、cA2成分は保存している。
なお、ウェーブレット変換のステップ数をここではS314とS318のいずれも2−STEPとしている。このステップ数が大きくなるほど、画像の大まかな特徴までテキストンで表現することができる。本発明においてステップ数は可変であるが、LR画像のクラスタリングのためのS314の場合、1−STEPでは周辺の画素状況として十分な情報とならない場合があるため、2−STEPとしている。一方、exLR画像を高解像度化するためのテキストンを生成するS318の場合、たとえば8×8の倍率においては2−STEPよりも3−STEPの方が良好な画像が得られることが、実験的に確認されている。このため、倍率との関係でステップ数を決定することが望ましい。
もちろん、アルベド推定部206において、アルベド画像ではなく擬似アルベド画像を推定している場合、上述の学習処理は擬似アルベド画像を利用して行う。前述のように擬似アルベドは光源に影響されない拡散成分画像であるため、光源変動に影響されない変換規則を作成することが可能である。また、学習時において、擬似アルベド作成で正規化に利用した所定値、例えば鏡面反射画像の最大輝度値isf_maxを保持する必要はない。
(高解像度化処理の実行時)
図23は実行時の処理の流れを示すPAD図であり、図24は実行時の処理の画素セルとの関係を示す図である。
まず、S331とS332において、LR画像とこれを拡大したexLR画像とを入力する。学習時と同様に、LR画像の画素数=32×32、exLR画像の画素数=128×128とする。ここでexLR画像の生成方法は、図19のS313において学習画像のexLR画像を生成した方法と同様にバイキュービック法による。
次に、S333とS334において、学習時に得られたクラスタCと変換行列CMatをアルベドDB208から読み出し、入力する。
S335において、LR画像をテキストン化する。具体的には図24で示すように、Haar基底を用いた2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform:SWT変換)を行う。SWT変換の階層は2階層(2-step)とすると、6次元のLRW画像(画素数32×32=1024)が生成される。本来は2階層ステップの2次元離散定常ウェーブレット変換では7次元の特徴ベクトルとなるが、最低周波数のLL成分画像は画像の平均輝度情報に近くなり、これを保存するため残りの6成分のみを利用する。
次にS336において、各テキストンにつき、クラスタC(Cmax個のテキストン)内の最短距離のテキストンベクトルを探索してテキストン番号(Ci)を得る。これは図24において、LR画像の1ライン上の各画素2011,2012,…,2013について、各々C0,C1,…,Cnというテキストン番号が付与されることに相当する。
次にS337に進むが、これ以降はHR画像の各セルを走査線順に処理していく繰り返し処理となる。具体的には、図24において、exLR画像のセル2014,2015,…,2016を処理していくと、対応するHR画像のセル2023,2024,…,2025が順次高解像度化されていく。
S337において、exLR画像の該当セル領域がテキストン化される。具体的には、2次元離散定常ウェーブレット変換(Discrete stationary wavelet transform)が実施されて、exLRW画像が生成される。セル2017,2018,…,2019などが生成される。
S338において、テキストン番号から変換行列CMatを引いて該当セルにおける変換行列Mを確定する。この処理は図24のように行われる。LRW画像には、すでに画素2011=C0、画素2012=C1、…、画素2013=Cnとテキストン番号が振られている。これを位置関係を保存したexLRW画像のセル2017、2018、…2019に適用して、各々のセルで、C0,C1,・・Cnをテキストン番号としてMatから別々の6×6変換行列Mを選択することができる。
S339において、各セルに変換行列Mを作用させる。これはセル内のテキストンLTi(i=1〜16)全部について、
を実施すればよい。これらを繰り返して、exLRW画像のセル2017,2018,…,2019からHRW画像のセル2020,2021,…,2022が、それぞれ生成される。
次に、これら高解像度化されたセル内の6次元テキストンに、exLRW画像の2−STEPのLL成分を付加して7次元テキストンを生成する。
S340において、この各セル内7次元のテキストンを逆SWT変換することにより画像に変換する。以上をexLR画像の全セルについて繰り返す。
逆SWT(ISWT)変換は、図25で示す信号フローで実現できる。図21とほとんど同じ表現である。通常のウェーブレット逆変換ではフィルタバンクの構成は同一のまま、分解の階層が進む毎に画像が拡大していく。これに対して、本逆変換においては、分解の階層が進んでも変換画像サイズは不変であり、スケーリング関数Fとウェーブレット関数G1の2種類のフィルタがダウンサンプリング(↓)されて2のべき乗で短くなっていくことにより、多重解像度解析を行う。Haar基底では、FとG1の具体的な数値とダウンサンプリングの様子は表2のようになる。
以上のようにしてアルベド画像の1成分が高解像度化される。この処理を、アルベド画像全てに行うことにより、高解像度なアルベド画像を合成する。
このとき、アルベド画像に含まれる被写体の大きさや姿勢、向きなどが変化しても処理が可能なように、画像の正規化を行うようにしてもかまわない。テキストンを利用した高解像度化処理は、学習データに対してアルベド画像の大きさや姿勢が異なっている場合、高解像度化の精度が十分に発揮されないことが考えられる。そこで、アルベド画像を複数組用意し、この問題を解決する。すなわち、アルベド画像を30度ずつ回転させた画像を合成し、そのすべての画像で高解像度化を行い、姿勢や向きの変化に対応させる。この場合、前述の「高解像度化処理の実行時」のPAD図である図23のステップS336において、最短距離のテキストンを探索する際、回転処理を行った各画像から求めた複数のLR画像のテキストン、それぞれにおいて最短距離のテキストンを探索し、最も距離の近いものを探索してテキストン番号(Ci)を得るようにすればよい。
また、大きさの変化に対応するために、画像の大きさを変更したアルベド画像を合成するようにしてもかまわない。
また、実際の大きさを基準に、例えば、5cm×5cmの画像が必ず8x8画素になるように拡大縮小処理を行い、その画像に対してテキストンを作製するようにしてもかまわない。被写体の大きさは、形状情報取得部204により既知であるため、「学習時」および「高解像度化処理の実行時」ともに同じ大きさの画像でテキストンを作製することで、大きさの変動に対応するようにしてもかまわない。
また、「高解像度化処理の実行時」のアルベド画像を回転させるのではなく、「学習時」のアルベド画像を回転させ、複数組のテキストンを作製し、クラスタCと学習された変換行列CMatをアルベドDB208に蓄積するようにしても構わない。
さらに、入力された被写体が何であるかを推定し、推定された被写体がどのように回転しているかを姿勢推定するようにしてもかまわない。このような処理は、広く使われている画像認識技術を利用すればよい。これは、例えば、被写体にRFIDのようなタグを設置しておき、そのタグ情報を認識することで被写体が何であるかを認識し、さらにタグ情報から被写体の形状情報を推定し、画像や被写体の形状情報から姿勢推定を行うようにすればよい(例えば、特開2005−346348号公報参照)。
<鏡面反射画像の高解像度化>
次に、鏡面反射画像の高解像度化について説明する。ここでは、推定したパラメータの高密化処理と、形状情報の高密化処理とを利用する。
パラメータ推定部210は、形状情報取得部204によって取得された被写体の表面の法線情報、拡散反射・鏡面反射分離部202によって分離された拡散反射画像と鏡面反射画像を利用して、その被写体を表現するパラメータを推定する(S408)。ここでは、Computer−Graphicsの分野で広く使われているCook−Torranceモデルを利用する方法を説明する。
Cook−Torranceモデルでは、鏡面反射画像を次式のようにモデル化する。
ここで、Eiは入射照度、ρs,λは波長λにおける鏡面反射成分の双方向反射率、nは被写体の法線方向ベクトル、Vは視線ベクトル、Lは光源方向ベクトル、Hは視線ベクトルと照明方向ベクトルの中間ベクトル、βは中間ベクトルHと法線方向ベクトルnの角度を表す。また、Fλはフレネル方程式から求められる誘電体表面からの反射光の比であるフレネル係数、Dはマイクロファセット分布関数、Gは物体表面の凸凹による遮光の影響を表す幾何減衰率である。さらに、nλは被写体の屈折率、mは被写体表面の粗さを示す係数、Ijは入射光の放射輝度である。また、ksは鏡面反射成分の係数である。
さらに、(式25)のランバーシャンモデルを利用すると、(式12)は以下のように展開される。
ただし、
ここで、ρ
dは拡散反射成分の反射率(アルベド)、dpx、dpyは撮像装置の1画素のx方向、y方向の長さ、rは撮像装置の観察点Oからの距離を示している。また、k
dは以下の関係式を満たす係数である。
Srは拡散反射成分と鏡面反射成分の輝度値の違いを表現するための定数であり、拡散反射成分が被写体からすべての方向へエネルギーを反射することを示している。図26はこの定数Srを説明するための模式図である。図26において、観察点Oで反射された拡散反射成分エネルギーは、半球状に広がっていく。ここで、撮像装置1001が観察点Oからrだけ離れているので、撮像装置の1撮像素子に届くエネルギーと、観察点Oで反射した総エネルギーの比S
rは、(式48)で表される。
以上のことから、パラメータ推定部210は、(式37)〜(式45)(式46)(式47)、(式48)からパラメータを推定する。
以上の関係式をまとめると、パラメータ推定を行なうための既知パラメータと、推定すべきパラメータは以下のようになる。
(既知パラメータ)
○環境光成分Ia
○拡散反射成分Id
○鏡面反射成分Is
○被写体の法線方向ベクトルn
○光源方向ベクトルL
○視線ベクトルV
○中間ベクトルH
○中間ベクトルHと法線方向ベクトルnの角度β
○撮像装置1001の1画素のx方向、y方向の長さdpx, dpy
○撮像装置1001と観察点Oとの距離r
(推定すべきパラメータ)
○入射照度Ei
○鏡面反射成分の係数ks
○被写体表面の粗さm
○被写体の屈折率ηλ
ここで、拡散反射成分の係数kd、および拡散反射成分の反射率(アルベド)ρdも未知パラメータであるが、鏡面反射成分のパラメータのみを推定するため、ここでは推定処理を行なわない。
図27はパラメータ推定部210の処理の流れを示す図である。処理は、以下の2段階からなる。
まず、光源情報を使用して、入射照度E
iを求める(ステップS351)。ここでは、光源情報推定部203によって取得した光源の位置情報、形状情報取得部204で求めた撮像装置と被写体との距離情報、さらには光源情報取得部203で求めた光源照度を用いる。これは、次式から求まる。
ここで、I
iは撮像装置1001に設置された照度計1018によって測定された光源1007の入射照度、R
1は撮像装置1001と光源1007との距離、R
2は光源1007と観察点Oとの距離、θ
1は観察点Oにおける法線1019と光源方向1010Cとのなす角度、θ
2は撮像装置1001における光軸方向1005と光源方向1010Aとのなす角度を示している(図28参照)。ここで、被写体の大きさが、光源1007と観察点Oとの距離R
2に比べ十分に大きいと考えられる場合、距離R
2は被写体上の全ての観察点Oで等しくなる。そのため、(式50)において、(R
1/R
2)は定数となり、実際に計測する必要はなくなる。
次に、シンプレックス法を利用して、未知パラメータm、η
λ、k
sを推定する(ステップS352)。シンプレックス法は、シンプレックスと呼ぶ図形の頂点に変数を割り付け、シンプレックスの大きさと形を変えて関数の最適化を行なう方法である(大田登,“色再現光学の基礎”,pp.90-92,コロナ社)。シンプレックスは、n次元空間の(n+1)個の点の集合である。ただし、nは推定する未知数の数であり、ここでは「3」である。そのため、シンプレックスは四面体である。シンプレックスの頂点をベクトルx
iで表し、新しいベクトルを次のように定める。
ただし、
はそれぞれ関数f(x
i)を最大、最小にするx
iを示している。
さらに、この方法で用いる3種類の操作を以下のように定める。
1.鏡像:
3.収縮:
ここで、α(>0)、β(>1)、γ(1>γ>0)は係数である。
シンプレックス法は、シンプレックスの頂点の中で関数値の最も大きなものを選ぶことで、その鏡像における関数値は小さくなるという期待に基づいている。この期待が正しければ、同じプロセスの繰り返しで関数の最小値が求められる。つまり、初期値で与えたパラメータを3種類の操作で更新しながら、評価関数が示すターゲットとの誤差が閾値未満になるまでパラメータの更新を繰り返す。ここでは、パラメータとしてm、η
λ、k
s、評価関数として(式56)で表される、(式37)から算出される鏡面反射成分画像と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像との差ΔI
sを利用した。
ただし、i
s(i,j)’, i
s(i,j)はそれぞれ、計算された鏡面反射画像の推定値I
s’と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像I
sの画素(i,j)の輝度値、M
s(i,j)は、画素(i,j)が鏡面反射成分を持つ場合に1、そうでない場合0をとる関数である。
この処理について詳しく説明する。図29はこの処理の流れを説明するためのフローチャートである。
まず、繰り返し演算の更新回数を記憶するカウンターnとkに0を代入し、初期化する(ステップS361)。ここで、カウンターnは初期値を何回変更したかを記憶するカウンターであり、kはある初期値に対してシンプレックスによる候補パラメータの更新を何回行ったかを記憶するカウンターである。
次に、乱数を利用し、推定パラメータの候補パラメータm’、η
λ’、k
s’の初期値を決定する(ステップS362)。このとき、各パラメータの物理的な拘束条件から、初期値の発生範囲は以下のように決定した。
次に、こうして求めた候補パラメータを(式37)へ代入し、鏡面反射画像の推定値Is’を求める(ステップS363)。さらに、計算された鏡面反射画像の推定値Is’と拡散反射・鏡面反射分離部202で求められた鏡面反射成分画像との差ΔIsを(式56)より求め、これをシンプレックス法の評価関数とする(ステップS364)。こうして求めたΔIsが十分小さい場合(ステップS365でYes)、パラメータ推定は成功したとして、推定パラメータm、ηλ、ksとして候補パラメータm’、ηλ’、ks’を選択し、処理を終了する。一方、ΔIsが大きい場合(ステップS365でNo)、シンプレックス法により候補パラメータの更新を行う。
候補パラメータの更新を行う前に、更新回数の評価を行う。まず、更新回数を記憶しているカウンターkに1を足し(ステップS366)、カウンターkの大きさを判断する(ステップS367)。カウンターkが十分に大きい場合(ステップS367でNo)、繰り返し演算は十分に行なわれているが、ローカルミニマムに落ちているため、このまま更新を繰り返しても最適値には達しないと判断し、初期値を変更して、ローカルミニマムからの脱却を図る。そのため、カウンターnに1を足し、カウンターkに0を入れる(ステップS371)。ここで、カウンターnの値が閾値より高いかどうかを判定し、処理をこのまま続けるか、処理不能として処理を終了させるかを決定する(ステップS372)。ここで、nが閾値より大きい場合(ステップS372でNo)、この画像は推定不能として処理を終了する。一方、nが閾値より小さい場合(ステップS372でYes)、再度、初期値を(式57)の範囲内で乱数から選択しなおし(ステップS362)、処理を繰り返す。このようなkに対する閾値は、例えば、100などを選択すればよい。
一方、ステップS367において、カウンターkが閾値以下の場合(ステップS367でYes)、候補パラメータを(式53)〜(式55)を利用して変更する(ステップS368)。この処理については後述する。
次に、こうして変形された候補パラメータが、解として意味のあるものであるかを判定する(ステップS369)。すなわち、シンプレックス法を繰り返すことで、変形されたパラメータが物理的に意味のない値(例えば、粗さパラメータmが負の値など)におちいる可能性があるため、これを除去する。これは、例えば、以下のような条件を与え、この条件を満たす場合には意味のあるパラメータ、満たさない場合には意味のないパラメータと判定すればよい。
これらの値は、被写体より求めることができる。例えば、屈折率η
λであれば、被写体の材質によって決定される値である。例えば、プラスチックであれば1.5〜1.7、ガラスであれば1.5〜1.9であることが知られているため、これらの値を利用すればよい。つまり、被写体がプラスチックである場合、屈折率η
λは1.5〜1.7とすればよい。
変形したパラメータが(式58)を満たす場合(ステップS369でYes)、その候補パラメータは意味のある値であると考えられるため、新しい候補パラメータとして設定し(ステップS370)、更新処理を繰り返す(ステップS363)。一方、変形したパラメータが(式58)を満たさない場合(ステップS369でNo)、その初期値に対する更新処理を打ち切り、新しい初期値により更新を行う(ステップS371)。
ここで、ステップS368の変形処理について詳述する。図30はこの処理の流れを示したフローチャートである。ここでは、候補パラメータm’、η
λ’、k
s’をベクトル表現し、これをパラメータxとする。すなわち、
まず、(式51)(式52)(式53)を利用して、鏡像操作を行ったパラメータxrを計算し、(式56)によってxrでの鏡面反射成分画像との差ΔIs(xr)を計算する(ステップS381)。次に、こうして求められたΔIs(xr)と、2番目に評価関数が悪かったΔIs(xs)を比較する(ステップS382)。ここでΔIs(xr)がΔIs(xs)より小さかった場合(ステップS382でYes)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値のよいΔIs(xl)を比較する(ステップS383)。ここで、ΔIs(xr)のほうが大きかった場合(ステップS383でNo)、最も評価値の低かったxhをxrへ変更し(ステップS384)、処理を終了する。
一方、ΔIs(xr)がΔIs(xl)より小さかった場合(ステップS383でYes)、(式54)を利用して拡張処理を行ない、パラメータxeと、xeでの鏡面反射成分画像との差ΔIs(xe)を計算する(ステップS385)。次に、こうして求められたΔIs(xe)と、鏡像操作によるΔIs(xr)を比較する(ステップS386)。ここでΔIs(xe)がΔIs(xr)より小さかった場合(ステップS386でYes)、最も評価値の悪かったxhをxeへ変更し(ステップS387)、処理を終了する。
一方、ΔIs(xe)がΔIs(xr)より大きかった場合(ステップS386でNo)、最も評価値の悪かったxhをxrへ変更し(ステップS387)、処理を終了する。
また、ステップS382において、ΔIs(xr)がΔIs(xs)より大きかった場合(ステップS382でNo)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値の悪いΔIs(xh)を比較する(ステップS388)。ここでΔIs(xr)がΔIs(xh)より小さかった場合(ステップS388でYes)、最も評価値の悪かったxhをxrへ変更し(ステップS389)、(式55)を利用して、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS390)。一方、ΔIs(xr)がΔIs(xh)より大きかった場合(ステップS388でNo)、xhを変更することなく、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS390)。
次に、こうして求められたΔIs(xc)と、最も評価値の悪いΔIs(xh)を比較する(ステップS391)。ここでΔIs(xc)がΔIs(xh)より小さかった場合(ステップS391でYes)、最も評価値の悪かったxhをxcへ変更し(ステップS392)、処理を終了する。
一方、ΔI
s(x
c)がΔI
s(x
h)より大きかった場合(ステップS391でNo)、すべての候補パラメータx
i(i=1,2,3,4)を以下の式により変更し、処理を終了する。
以上の処理を繰り返すことにより、鏡面反射画像における未知パラメータであるm、ηλ、ksを推定する。
以上の処理により、すべての未知パラメータを推定することができる。
なお、パラメータ推定に用いるモデルは、Cook−Torranceモデルである必要はなく、例えば、Torrance−SparrowモデルやPhongモデル、簡易Torrance-Sparrowモデル(例えば、「K. Ikeuchi and K. Sato, “Determining reflectance properties of an object using range and brightness images”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.13, no.11, pp.1139-1153, 1991」)であっても構わない。
また、パラメータ推定方法は、シンプレックス法である必要はなく、例えば、勾配法や最小自乗法などのような一般的なパラメータ推定手法を利用しても構わない。
また、以上の処理は、画素毎に行ってもかまわないし、領域分割を行い、領域ごとに等しいパラメータ組を推定するようにしてもかまわない。画素毎に処理を行う場合、光源や撮像装置、または被写体を動かすことにより、被写体の法線方向ベクトルnや光源方向ベクトルL、または視線ベクトルVといった既知パラメータが変動したサンプルを取得するようにすることが望ましい。また、処理を領域ごとに行う場合、領域ごとに求まったパラメータのばらつきが小さくなるように領域分割を変更することで、最適なパラメータ推定を行うようにすることが望ましい。
形状情報高密化部211は、形状情報取得部204で取得した被写体の形状情報を高密度化する(ステップS409)。これは、以下のように実現される。
まず、形状情報取得部204によって取得した表面の形状情報を、画像撮像部201によって取得された画像へ投影し、画像内の各画素に対応する法線方向を求める。このような処理は、従来のカメラキャリブレーション処理(例えば、「運天 弘樹, 池内 克史, “実物体の仮想化のための3次元幾何モデルのテクスチャリング手法”, CVIM-149-34, pp.301-316, 2005」)を行うことで実現できる。
この際、法線ベクトルnpは極座標で表現し、その値をθp、φpとする(図31参照)。以上の処理により、法線成分であるθ、φの画像を作製する。こうして求めたθ画像とφ画像を、上述のアルベド高解像度化部207と同様の手法によって高解像度化することによって、高密度の形状情報を推定する。この際、高密度度化処理を行う前に学習処理を行い、法線のθ、φ成分に対するクラスタCと学習された変換行列CMatを法線DB212に蓄積する。
また、以上の処理は、影除去部205において、影として除去されなかった領域のみに対して行うことが望ましい。これは、影の存在により、パラメータ推定処理に誤差が生じてしまうことを防止するためである。
また、パラメータ推定部210において、撮像装置近傍に設置された制御可能な光源を利用してもかまわない。この光源は、デジタルカメラのフラッシュであってもよい。この場合、フラッシュを照射して撮像したフラッシュ画像と、フラッシュを照射しないで撮像した非フラッシュ画像を時間的に連続的に撮像し、その差分画像を利用してパラメータ推定を行なえばよい。撮像装置と光源であるフラッシュの位置関係は既知であり、また、フラッシュの光源情報である3次元位置や色、強度も事前に測定しておくことが可能である。また、撮像装置とフラッシュは非常に近い場所に設置されているため、影が少ない画像を撮像することができる。そのため、画像内のほとんどの画素において、パラメータを推定することができる。
さらに、パラメータ高密度化部213は、パラメータ推定部210によって求めたパラメータを高密度化する(ステップS410)。ここでは、単純な線形補間を行い、すべてのパラメータを高密度化する。もちろん、上述のアルベド高解像度化部207のような学習を利用した高密度化手法を利用してもかまわない。
また、パラメータごとに高密化方法を切り替えるようにしても構わない。例えば、推定パラメータである被写体の屈折率ηλは、高密度化しても値が変化しないと考えられる。そのため、被写体の屈折率ηλは単純補間により高密度化を行い、拡散反射成分の係数kd、鏡面反射成分の係数ks、さらには拡散反射成分の反射率(アルベド)ρdに関しては学習を利用した高密度化処理を行うようにしてもかまわない。
鏡面反射画像高解像度化部214は、形状情報高密度化部211によって推定された高密度形状情報と、パラメータ高解像度化部214によって高密度化されたパラメータとを利用し、高解像度鏡面反射画像を合成する(ステップS411)。高解像度鏡面反射画像は、(式37)〜(式45)に高密度化したパラメータを代入することによって、合成される。
ここで、実際の鏡面反射画像よりも輝度値が高くなるように、例えば入射照度Eiのみ推定された値に係数l(例えば、l=2)を乗算するようにしても構わない。これは、鏡面反射画像の輝度値を上げることによって、被写体の質感を上げるためである。同じように、被写体表面の粗さmを推定値よりも大きな値として、実際よりもてかりが強い鏡面反射画像を合成してもかまわない。
拡散画像高解像度化部209は、アルベド高解像度化部207が合成した高解像度アルベド画像から高解像度拡散反射画像を合成する(ステップS412)。この処理を説明する。
前述のように、アルベド画像は、拡散成分画像を光源方向ベクトルと被写体の法線方向ベクトルの内積で除算したものである。このため、アルベド画像に、光源情報推定部203によって推定された光源方向ベクトルと、形状情報高密度化部211によって求められた被写体の高密度法線方向ベクトルとの内積を乗算することによって、高解像度拡散反射画像を合成する。光源情報推定部203によって複数の光源が推定された場合、それぞれの光源に対して高解像度拡散反射画像をそれぞれ合成し、その画像を足し合わせることによって、一枚の高解像度拡散画像を合成する。
また、アルベド画像ではなく擬似アルベド画像を利用している場合、擬似アルベド画像に、光源情報推定部203によって推定された光源方向ベクトルと、形状情報高密度化部211によって求められた被写体の高密度法線方向ベクトルとの内積を乗算し、さらに正規化を行うために利用した鏡面反射画像の最大輝度値isf_maxを乗算することによって、高解像度拡散反射画像を合成する。正規化で利用した鏡面反射画像の最大輝度値isf_maxは、アルベド推定部206によってメモリに蓄積されているため、この情報を読み出せばよい。もちろん、拡散反射画像の最大輝度値や入力画像の最大輝度値を利用して正規化を行っている場合、鏡面反射画像の最大輝度値isf_maxを乗算するのではなく、正規化に利用した拡散反射画像の最大輝度値や入力画像の最大輝度値を乗算する。
以上の処理により、高解像度化された拡散反射画像を合成することができる。ここで、高解像度化処理はアルベド画像を利用して行ったが、アルベド画像ではなく、拡散画像を直接、高解像度化するようにしても構わない。この場合、学習処理は拡散画像を用いて行えばよい。
影生成部215は、拡散反射画像高解像度化部209と鏡面反射画像高解像度化部214によって生成された高解像度拡散反射画像と高解像度鏡面反射画像に重畳する、影画像を合成する(ステップS413)。これは、影除去部205において利用したレイトレーシングを利用すればよい。
ここで、画像高解像度化部217は、撮影対象となっている被写体の3次元形状に関する知識を有するものとする。影生成部215は、被写体の3次元形状データを取得し、撮影画像における被写体の見え(appearance)から、被写体の3次元姿勢及び3次元位置を推定する。被写体が人間の目の角膜である場合の、見えから3次元位置及び3次元姿勢を推定する例が、「K.Nishino and S.K.Nayar, "The World in an Eye", in Proc. of Computer Vision and Pattern Recognition CVPR '04, vol.I, pp444-451, Jul., 2004.」に開示されている。見えから3次元位置及び3次元姿勢を推定できる被写体は限られるが、そのような被写体であれば、上記文献の手法を適用することが可能である。
被写体の3次元姿勢及び3次元位置が推定されれば、被写体上の任意の位置において、被写体表面の形状情報が算出できる。以上の処理を、撮影画像において繰り返し、被写体表面の形状情報を算出する。さらに、形状情報高密度化部211で推定された高密度形状情報を利用して被写体の形状情報を高密度化することによって、被写体の3次元形状を高密化することが可能である。こうして求めた高密度3次元形状と、パラメータ高解像度化部214によって高密度化されたパラメータを利用してレイトレーシングを行うことにより、高解像度な影画像の推定を行う。
レンダリング部216は、拡散反射画像高解像度化部209が合成した高解像度拡散反射画像、鏡面反射画像高解像度化部214が合成した高解像度鏡面反射画像、さらには、影生成部215が合成した影画像を合成し、原画像を高解像度化した高解像度画像を作成する(ステップS414)。
図32〜34は本実施例における擬似アルベドを利用した画像高解像度化方法によって、画像を8x8倍に高解像度化した結果を示している。図32は学習に用いた画像を示している。被写体としてお面を用いた。このような学習データを利用して、図33(a)の画像の高解像度化を行った。この画像は、図32の学習データと同じ被写体ではあるが、光源の位置が異なっている。
比較用に、アルベド高解像度化部207で利用したテキストンに基づく高解像度化を、アルベド画像ではなく、画像撮像部201が撮影した画像そのものに対して高解像度化処理を行った。その結果を図33(b)に示す。また、図33(c)は本実施例における擬似アルベドを利用した画像高解像度化の結果である。また、図34(a)(b)は、図33(b)(c)の向かって右側上部に示した矩形領域内を拡大したものである。これらの結果より、本実施例の画像高解像度化方法は画質劣化を招くことなく画像を8x8倍に高解像度化できることがわかる。
また、被写体の向かって右側上部の遮蔽エッジに着目すると、図34(a)では、エッジがばたついていることが分かる。これは、学習時と高解像度化処理時との光源環境が異なるため、背景と学習した被写体との区別がつかず、画質が劣化していると考えられる。一方、本実施例の画像高解像度化方法では、形状情報を利用しているため、遮蔽エッジが自然に表現されている。すなわち、アルベド画像または擬似アルベド画像と被写体の形状情報とを利用することにより、適切な遮蔽エッジを表現することが可能となり、より適切な画像の高解像度化を実現することができる。
また、上記説明では、鏡面反射画像のみパラメータ推定を利用して高解像度化を行ったが、拡散反射画像においてもパラメータ推定を行ない、高解像度化するようにしてもかまわない。
この処理を説明する。拡散反射画像の未知パラメータは、上述のとおり、以下の2つである。
○拡散反射成分の係数kd
○拡散反射成分の反射率(アルベド)ρd
そこで、これらのパラメータを推定する。図35は拡散反射画像のパラメータ推定処理の流れを示した図である。処理は、図27で示した鏡面反射画像のパラメータ推定部210の処理後、さらに以下の2段階の処理を行なう。
まず、(式49)と鏡面反射画像のパラメータ推定で求まったk
sを利用して、次式よりk
dを推定する(ステップS353)。
さらに、(式47)を利用して、拡散反射画像の反射率(アルベド)ρ
dを次式より推定する(ステップS354)。
以上の処理により、すべての未知パラメータを推定することができる。こうして求まったパラメータをパラメータ高密度化部213と同様の手法により高密化することによって、拡散反射画像を高解像度化すればよい。
また、上記説明では、光源情報推定部203は、鏡面球を利用して光源情報を求めたが、画像から直接推定するようにしても構わない。この処理を詳述する。
(光源情報推定処理)
図36は本処理に係る光源推定装置の構成を示すブロック図である。図36において、1001はCCDやCMOS等によって構成された撮像装置、1002は撮像行為を行う主体者である撮像者が撮像装置1001に撮像を指示するための撮像スイッチである。撮像装置1001には3軸の角度センサ1025が搭載されている。
また、101は撮像装置1001の状況が、光源情報の取得に適しているか否かを判断する撮像装置状況判断部、102は撮像装置状況判断部101によって適していると判断されたとき、撮像装置1001によって撮像を行い、この撮像画像を光源画像として取得する光源画像取得部、103は光源画像取得部102によって光源画像が取得されたとき、撮像装置1001の状況を表す第1の撮像装置情報を取得する第1の撮像装置情報取得部、104は撮像者の操作によって撮像装置1001による撮像が行われた撮像時に、撮像装置の状況を表す第2の撮像装置情報を取得する第2の撮像装置情報取得部、そして105は光源画像取得部102によって取得された光源画像、並びに第1の撮像装置情報取得部103によって取得された第1の撮像装置情報、および第2の撮像装置情報取得部104によって取得された第2の撮像装置情報を基にして、撮像時における光源の方向および位置のうち少なくともいずれか一方を推定する光源情報推定部である。
なお、ここでは、撮像装置状況判断部101、光源画像取得部102、第1の撮像装置情報取得部103、第2の撮像装置情報取得部104および光源情報推定部105は、CPU1029によってプログラムを実行することによって、実現されるものとする。ただし、これらの機能の全部または一部を、ハードウェアによって実現するようにしてもかまわない。また、メモリ1028は、光源画像取得部102によって取得された光源画像と、第1の撮像装置情報取得部103によって取得された第1の撮像装置情報を格納する。
図37は本処理に係る光源推定装置が搭載されたカメラ付き折り畳み式携帯電話1000の構成例を示す。図37において、図36と共通の構成要素には図36と同一の符号を付している。なお、図37のカメラ付き折り畳み式携帯電話1000では、撮像装置1001に偏光フィルタ1016が設けられており、この偏光フィルタ1016を回転させるためのモータ1026aと、その回転角を検出するためのエンコーダ1027aとが設けられている。また、折り畳み機構を駆動するためのモータ1026bと、その回転角を検出するためのエンコーダ1027bとが設けられている。
図38は図37のカメラ付き折り畳み式携帯電話1000が折り畳まれた状態を示す図である。図38において、1005は撮像装置1001の光軸方向を示し、1006は撮像装置1001の視野範囲を示している。
以下、本処理に係る光源推定装置の各構成要素の動作について、説明する。
撮像装置状況判断部101は、撮像装置1001の状況が、光源情報を取得するために適しているか否かを判断する。最も一般的な光源として、家庭内では照明、屋外では街灯や太陽が考えられる。そのため、撮像装置1001の撮像方向、つまり光軸の方向が上向きになっている場合、撮像装置1001が光源情報を取得するために適した状況にある、と判断することができる。そこで、撮像装置状況判断部101は、撮像装置1001に搭載された角度センサ1025の出力を用いて、撮像装置101の光軸の方向を検出し、光軸が上方向を向いているとき、光源情報を取得するために適していると判断する。このとき、撮像装置状況判断部101は、光源画像取得部102に撮像を促す信号を送信する。
光源画像取得部102は、撮像装置状況判断部101から撮像を促す信号を受けたとき、すなわち、撮像装置1001の状況が光源情報を取得するために適していると撮像装置状況判断部101によって判断されたとき、撮像装置1001によって撮像を行い、この撮像画像を光源画像として取得する。取得された光源画像は、メモリ1028に格納される。
このとき、光源画像取得部102は、撮像者の操作による撮像が行われないことを確認した後に、光源画像の取得を行うのが好ましい。例えば、撮像スイッチ1002が押されていないことを確認した上で、光源画像の撮像を行えばよい。
光源画像取得部102は、撮像者の撮像意図を考慮して、撮像が行われていない期間を利用して光源画像を撮像するものである。本処理に係る光源推定装置では、被写体を撮像するための撮像装置1001を利用して、光源画像の撮像を行う。このため、もし撮像者が被写体をまさに撮像しようとしているその直前に光源画像の撮像が行われてしまうと、撮像者が撮像しようとした瞬間に被写体を撮像することができず、撮像者の撮像意図を無視することになってしまう。
このため、本処理では、撮像者の撮像意思を考慮するために、撮像者が撮像を行わないと想定される間、例えば、机などにおかれている間に光源画像の撮像を行う。例えば、図38のカメラ付き折畳式携帯電話1000が机などにおかれている場合、光軸方向1005は上向きになると考えられる。この状態であれば、最適な光源画像を撮像することが可能である。
図39は撮像装置状況判断部101および光源画像取得部102の処理の一例を示すフローである。まず、撮像装置状況判断部101は、撮像装置1001の光軸方向の検出を行い、その光軸方向が上向きであるか否かを判断する(ステップS121)。光軸方向が上向きでない場合(ステップS121でNo)、光軸方向が上向きになるまで繰り返し光軸方向のチェックを行う。一方、光軸方向が上向きである場合(ステップS122でYes)、光源画像取得部102は撮像スイッチ1002のチェックを行う(ステップS122)。もし、オートフォーカス(AF)などの処理を行うために、撮像スイッチ1002が押されている場合(ステップS122でNo)、撮像が行われる可能性が高いため、光源画像の撮像は行わない。一方、撮像スイッチ1002が押されていない場合(ステップS122でYes)、光源画像取得部102は撮像装置1001によって撮像を行い、光源画像を取得する(ステップS123)。
なお、ここでは、撮像スイッチのチェックによって、撮像者の操作による撮像が行われるか否かを判断するものとしたが、撮像者が撮像する意思を持っているか否かを確認する方法は、これに限られるものではない。例えば、「撮像中ですか?」という撮像を確認する表示をディスプレイに表示し、撮像者が「No」という意思を表示するか、なんの反応もない場合に、撮像者が撮像する意思を持っていないと判断してもかまわない。
また、加速度センサなどを利用し、撮像装置1001が静止しているとき、光源画像の取得を行うようにしてもかまわない。すなわち、撮像装置1001が静止している場合、撮像装置1001は撮像者が保持しておらず、机などにおかれていると判断できる。そのため、この場合、撮像者は撮像を行っていない可能性が高い。一方、撮像者が撮像を行うために撮像装置1001を構えている場合、手ぶれの影響を加速度センサが感知する。このときは、光源画像取得部102は撮像を行わないようにすればよい。
第1の撮像装置情報取得部103は、光源画像取得部102によって光源画像が取得されたとき、撮像装置1001の状況を表す第1の撮像装置情報を取得する。具体的には例えば、角度センサ1025の出力と撮像装置1001の焦点距離情報とを、第1の撮像装置情報として取得する。取得された第1の撮像装置情報はメモリ1028に格納される。図40はメモリ1028に保持された情報の一部を示す模式図である。ある光源画像に対して、角度センサ出力と焦点距離が、第1の撮像装置情報として格納されている。
撮像装置1001の姿勢情報は、角度センサ1025の出力を使用して、以下の3x3行列Rlightで表現される。
撮像装置1001の姿勢情報を表す、この3x3行列Rlightのことをカメラ姿勢行列と呼ぶ。ここで、(α,β,γ)はカメラに取り付けられたセンサ出力のロール・ピッチ・ヨー角表現での値であり、ある基準点からの動き量で表現される。ロール・ピッチ・ヨー角表現とは、図41に示したように、任意の回転を、z軸周りの回転であるロー、次に、新しいy軸周りの回転であるピッチ、最後に、新しいx軸まわりの回転であるヨーの3段階の回転によって表すものである。
また、Rx(α)、Ry(β)、Rz(γ)はロール・ピッチ・ヨー角からx軸回転、y軸回転、z軸回転へ変換する行列であり、次式で表される。
また、撮像装置1001がズーム可能である場合、そのズーム情報も焦点距離情報として取得される。また、撮像装置1001が固定焦点の場合、その焦点距離情報も取得される。焦点距離情報は、画像処理の分野で広く使われているカメラキャリブレーションを行なうことにより、取得できる。
このような、カメラに取り付けられた角度センサや角速度センサからカメラの姿勢情報を取得する方法は、既存の手法を利用すればよい(例えば、「岡谷貴之,“メカニカルセンサとイメージセンサの融合による3次元形状復元” ,情報処理学会研究報告会,2005−CVIM−147,pp.123−130,2005」)。
第2の撮像装置情報取得部104は、撮像者の操作によって撮像装置1001による撮像が行われた撮像時に、撮像装置1001の状況を表す第2の撮像装置情報を取得する。ここでも、上述した第1の撮像装置情報取得部103と同様に、角度センサ1025の出力と撮像装置1001の焦点距離情報とを、第2の撮像装置情報として取得するものとする。このとき、角度センサ1025の出力(α,β,γ)から求められる姿勢行列Rnowを、現在の姿勢行列と呼ぶ。
光源情報推定部105は、メモリ1028に格納された光源画像および第1の撮像装置情報と、第2の撮像装置情報取得部104によって取得された第2の撮像装置情報を用いて、撮像者の操作による撮像時における、光源情報を推定する。ここでは、光源の方向を推定するものとする。
まず、光源画像において、十分に輝度値の高い画素を、光源を撮像している画素すなわち光源画素として抽出する。図42はこの処理を説明するための模式図である。図42では、視野範囲1006を持った撮像装置1001が光源1007を撮像している。このとき、撮像画像1008において、光源が撮像されている領域1009の輝度値は非常に高くなる。そこで、閾値処理を利用し、所定の閾値よりも輝度値が高い画素を光源画素として抽出する。
こうして求まった光源画素から、光源方向を推定する。この処理には、撮像装置の画素位置(u,v)と画像座標系とよばれる撮像素子上での実寸位置(xf,yf)との関係式が必要である。レンズの歪みなどの影響を考慮すると、画素位置(u,v)と実寸位置(xf,yf)との関係は、次式で求められる。
ただし、(Cx,Cy)は画素中心位置、sはスケールファクタ、(dx,dy)は撮像素子1画素のサイズ[mm]、Ncxはx方向の撮像素子数、Nfxはx方向の有効画素数、κ1、κ2はレンズの歪みを示す歪みパラメータである。
また、図43に示した、撮像装置の焦点位置を原点、その光軸方向をZ軸にとったカメラ座標系(x,y,z)と画像座標系(xf,yf)との関係は、次式で求められる。
ここで、fは撮像装置の焦点距離を表している。つまり、カメラパラメータ(Cx,Cy),s,(dx,dy)、Ncx、Nfx、f、κ1、κ2が既知であれば、(式2)(式3)により、画素位置(u,v)とカメラ座標系(x,y,z)の変換が可能である。
通常、Ncx、Nfxは撮像素子が特定できれば既知であり、また、(Cx,Cy),s,(dx,dy)、κ1、κ2、fはいわゆるカメラキャリブレーションを行うことで既知となる(例えば、Roger Y.Tsai, “An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision”, Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, 1986, pp. 364-374)。これらのパラメータは、撮像装置の位置や姿勢が変化しても変化しない。このようなパラメータをカメラ内部パラメータとよぶ。
そこで、撮像を行う前にカメラキャリブレーションを行い、カメラ内部パラメータ(Cx,Cy)、s、(dx,dy)、Ncx、Nfx、f、κ1、κ2を特定する。これらの値は、撮像装置購入時に付属されているものを利用しても構わない。また、カメラが固定焦点ではなく、ズーム可能である場合、各ズーム時の焦点距離fを個別に求めておき、必要なときに選択できるようにしておけばよい。そして、焦点距離fを撮像した画像とともに保持しておけばよい。
以上の情報を利用して、光源画素から光源方向を推定する。光源画素の画素位置を(ulight,vlight)とすると、光源方向Llightは以下の式で表現できる。
ところで、Llightは光源画像を撮像したカメラ座標系で表現されているため、現在のカメラ座標系Lnowで表現しなおす。これは、以下の式で表現できる。
以上の処理を行うことにより、光源方向ベクトルLnowを推定する。このようにして、光源の方向が推定される。
さらに、撮像装置1001が移動することを利用して、光源の方向だけでなく、3次元位置まで求めるようにしても構わない。
図44はこの処理を説明するための模式図である。図44において、1001A、1010Aは時刻t=t1における撮像装置と推定された光源方向ベクトル、また、1001B、1010Bは時刻t=t2における撮像装置と推定された光源方向ベクトルを示している。ここで、時刻t1とt2における撮像装置の相対的な位置関係と姿勢がわかっていれば、光源ベクトル1010A,1010Bを延長した交点に光源は存在するはずである。つまり、光源の3次元位置は以下のように求まる。
時刻t1における、撮像装置の姿勢行列、撮像装置の相対的な3次元位置、および推定された光源方向ベクトルをそれぞれ、R1、P1、L1とし、時刻t2における、撮像装置の姿勢行列と推定された光源方向ベクトルをそれぞれ、R2、L2とする。ただし、時刻t2において、撮像装置の位置は原点O(0,0,0)であるとする。このとき、光源位置Plightは次式を満たす。
ただし、s,mは任意の定数である。もし、すべての推定値が正しく、ノイズが存在していなければ、(式5)と(式6)をsとmに関する連立方程式として解くことによって、光源位置Plightは求まる。しかし、通常はノイズの影響があるため、最小自乗法を利用して、光源位置を求める。
まず、以下の関数f(m,s)を考える。
ここで、m,sは以下の関係式を満たす。
つまり、
よって、(式7)、(式8)をmとsに関する連立方程式として解き、求まったsとmを(式5)または(式6)へ代入することにより、光源位置Plightが求まる。このようにして、光源の位置が推定される。
なお、時刻t1における撮像装置の相対的な3次元位置P1(時刻t1とt2における撮像装置の相対的な位置関係)は、オプティカルフローを用いることによって求められる。オプティカルフローは、被写体上のある1点に対応する、時間的に連続した2つの画像上の点、すなわち対応点を結ぶベクトルであり、対応点とカメラ動きの間には、幾何学的な拘束式が成り立つ。このため、対応点が一定の条件を満たす場合にカメラの動きを算出することができる。
異なる時刻における撮像装置の相対的な位置関係をオプティカルフローから求める手法としては、例えば8点法と呼ばれる手法が知られている(H. C. Longuet-Higgins, “A computer algorithm for reconstructing a scene from two projections”, Nature, vol.293, pp.133-135, 1981)。この手法は、2画像間の静止した8点以上の対応点の組からカメラ動きを算出するものである。また、このような2画像間の対応点を求める手法は、一般に広く知られた方法であるので、詳細な説明を省略する(例えば、 Carlo Tomasi and Takeo Kanade, “Detection and Tracking of Point Features”, Carnegie Mellon University Technical Report, CMU-CS-91-132, April 1991)。
さらに、光源画素の輝度値やRGB値を求めることによって、光源の輝度や色も求めることができる。また、画像をマルチスペクトルカメラで取得することによって、光源のスペクトルを検出するようにしても構わない。このように光源のスペクトルを取得することによって、画像の高解像度化や拡張現実において、色再現性の高い画像が合成できることが知られている(例えば、「内山俊郎, 土田 勝, 山口雅浩, 羽石秀昭, 大山永昭, “マルチスペクトル撮影による光源環境計測とスペクトルに基づく画像生成”, 電子情報通信学会技術研究報告PRMU2005-138, pp.7-12, 2006」)。
また、光源情報推定部105は、光源情報として、光源の照度情報を取得するようにしても構わない。これは撮像装置1001と光軸方向が一致した照度計を利用すればよい。照度計としては、光電池にマイクロアンペア計を接続し、入射光によって生じる光電流を読む光電池照度計などを用いればよい。
以上のように本処理の光源推定装置によると、撮像装置の状況が光源情報の取得に適していると判断されたとき、この撮像装置によって光源画像を取得し、光源画像の取得時における第1の撮像装置情報と、撮像者による撮像時における第2の撮像装置情報とを用いて、撮像時における光源情報を推定する。したがって、カメラ付き携帯電話などにおいて、付加的な撮像装置を搭載することなく、被写体周囲の光源情報を推定することができる。
なお、上述の処理では、撮像装置状況判断部101が撮像装置1001の光軸方向を検出するために、角度センサ1025の出力を用いるものとしたが、これ以外にも例えば、錘とタッチセンサを利用した方法(特開平4−48879号公報参照)や、加速度センサを利用した方法(特開昭63−219281号公報参照)など、既存の方法を利用してもよい。
ここでは、錘とタッチセンサを利用する方法について説明する。図45は錘とタッチセンサの構成を示す図である。図45(a)において、1003は常に垂直方向を保持するよう基端部を回動可能に支持して吊下された錘、1004A、1004Bはタッチセンサである。また、1005は撮像装置の光軸方向を示している。図45(b)に示すように、撮像装置の光軸方向1005と水平面との角度をθとすると、タッチセンサ1004A,1004Bは、光軸方向1005が水平方向から所定角度θ1、θ2だけ傾いたとき、錘1003に当接するように設置されている。
図46は図45の錘とタッチセンサがカメラ付き折り畳み式携帯電話に搭載された場合の構成例である。図46のカメラ付き折り畳み式携帯電話が、撮像装置1001を下にして置かれた場合、錘1003がタッチセンサ1004Aに当接し、タッチセンサ1004AがONになる(図47(a))。一方、撮像装置1001を上にして置かれた場合、錘1003がタッチセンサ1004Bに当接し、タッチセンサ1004BがONになる(図47(b))。
図48は光軸方向とタッチセンサのON/OFFとの関係を示す図である。すなわち、タッチセンサ1004AがONになり、タッチセンサ1004BはOFFのとき、光軸は水平方向から+θ1以上傾いた下向きであると推定できる。また、タッチセンサ1004BがONになり、タッチセンサ1004AはOFFのとき、光軸は水平方向から−θ2以上傾いた上向きであると推定できる。一方、タッチセンサ1004A、1004B両方ともOFFの場合は、-θ2<θ<θ1であり、光軸方向はほぼ水平と推定できる。
このように、錘とタッチセンサを利用して、撮像装置1001の光軸方向を検出することが可能となる。
なお、ここでは、カメラ付き折畳式携帯電話を例にとって説明したが、もちろんデジタルスチルカメラやデジタルビデオカメラであっても、錘とタッチセンサを利用して、撮像装置の光軸方向を検出することは可能である。図49はデジタルスチルカメラに錘とタッチセンサを搭載した場合の構成例である。図49(a)に示すように、撮像装置1001の光軸が下向きのときは錘1003がタッチセンサ1004Aに当接しており、一方、図49(b)に示すように、撮像装置1001の光軸が上向きのときは錘1003がタッチセンサ1004Bに当接している。
また、上述の処理では、撮像装置状況判断部101は、撮像装置1001の光軸の方向を検出して、撮像装置1001の状況が光源情報の取得に適しているか否かを判断するものとしたが、光軸の方向を検出する代わりに、例えば、撮像された画像の輝度値を検出するようにしても構わない。
撮像画像に光源が映っている場合、光源が撮像されている画素の輝度値は非常に高くなる。そこで、撮像装置1001により画像を撮像し、撮像された画像に閾値以上の輝度値が存在する場合、光源が撮像されており、光源情報の取得に適した状況であると判断することができる。このとき、光源の輝度値は非常に高いと考えられるため、撮像装置1001は露光時間をできる限り短くして撮像することが望ましい。
あるいは、撮像装置1001の状況が光源情報の取得に適しているか否かを判断するために、カメラの視野範囲に遮蔽物が存在するか否かを検出するようにしても構わない。これは、遮蔽物が存在する場合、光源が遮蔽されてしまい、光源を撮影できない可能性が高くなるためである。
遮蔽物の存在を検出するためには、距離情報を利用する方法と、画像情報を利用する方法とがある。前者は、例えばカメラのオートフォーカスなどに利用されている測距センサの出力を利用し、例えば、1m以内に被写体が存在する場合はその被写体は遮蔽物であると判断するようにすればよい。また、後者の画像情報を利用する方法は、例えば、撮像装置1001で画像を撮影し、その画像中から画像処理により人物を検出する。もし、人物が撮像されていた場合、その人物は遮蔽物であると判断する。これは、カメラの近傍で光源を遮蔽する最も一般的な被写体は人物だと考えられるためである。画像からの人物の検出は、例えば、色情報を利用して、肌色領域を検出するなど、広く知られている画像認識技術を利用すればよい。
また、光源画像取得部102が光源画像の取得を行う際には、フラッシュを照射せずに撮像を行うことが望ましい。これは、鏡のような鏡面反射を起こす被写体が撮像装置1001の視野内に存在している場合、フラッシュが反射され、誤って光源画素として推定されてしまうためである。そのため、冷却CCDカメラや多重露光撮像など、広いダイナミックレンジを撮像できる撮像装置を利用することが望ましい。また、光源画像取得部102が光源画像の取得を行う際に、露光量が足りない場合は、露光時間を長くすればよい。これは、上述のように、加速度センサなどを利用し、撮像装置1001が静止しているときのみ、光源画像の取得を行う場合に特に有効である。
以上のように本実施形態によると、データベースを利用した画像の高解像度化において、データベース作成時とは異なる光源環境の被写体が入力された場合であっても、画質の劣化を抑えながら、画像の高解像度化を行うことができる。
(第2の実施形態)
図50は本実施形態に係る画像高解像度化装置の構成を示している。図50において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明は省略する。また、図4は本実施形態に係る画像高解像度化装置が搭載されたカメラの構成例を示しており、第1の実施形態と同じである。
第1の実施形態との違いは、画像高解像度化判断部223を設けた点である。画像高解像度化判断部223は、アルベド推定部221によって作成されたアルベド画像について、アルベドDB208に蓄積された変換規則に従った高解像度化を行った場合の、信頼性を評価する。アルベド高解像度化部207は、画像高解像度化判断部223によって信頼性が低いと評価されたとき、アルベドDB208に蓄積された変換規則を用いないで、アルベド画像の高解像度化を行う。すなわち、アルベドDB208を用いたときの高解像度アルベド画像の信頼性が低い場合は、アルベド高解像度化処理を切り替える。
図51は本実施形態における画像高解像度化判断部223およびアルベド高解像度化部207の処理の流れを示すフローチャートである。画像高解像度化判断部223は、アルベド推定部221が作成したアルベド画像が、アルベドDB208作成時の学習データに類似しているか否かを判断する(ステップS451)。ここでの画像の類似度計算は、入力されたアルベド画像をテキストン化したテキストンと、クラスタC内の最短距離のテキストンベクトルとの距離を用いて行えばよい。もし、テキストンの距離が閾値Th_TXより小さい場合(ステップS451でYes)、第1の実施形態と同様に、アルベドDB208から変換規則を取得してアルベド画像を高解像度化する(ステップS452)。一方、テキストンの距離が閾値Th_TXより大きかった場合(ステップS451でNo)、アルベドDB208が保持している変換規則では高解像度化が高精度に行えないと判断し、例えば単純な線形補間処理に基づく高解像度化処理を行う(ステップS453)。このような閾値Th_TXは、実験的に決定すればよく、例えば、入力画像が各色256階調カラー画像であった場合、0.01とすればよい。
もちろん、十分類似した学習データが存在しない場合の処理方法は、線形補間処理に限られるものではなく、例えば、バイキュービック法やスプライン補間などを利用しても構わない。
また、ここでの画像の類似度計算は、入力されたアルベド画像をテキストン化したテキストンと、クラスタC内における最短距離のテキストンベクトルとの距離を利用する方法に限られるものではなく、例えば、輝度ヒストグラムを比較するようにしても構わない。この場合、クラスタCと学習された変換行列CMatに加え、学習に使用したアルベド画像もアルベドDB208に蓄積しておく。前記のテキストン間の距離を利用する方法では、画素ごとにアルベド高解像度化処理を切り替えるのに対し、この手法では、画像ごとにアルベド高解像度化処理を切り替える。
また、画像高解像度化判断部223は、アルベド高解像度化部207によって作成される高解像度アルベド画像の信頼性を評価するために、アルベド画像を利用するのではなく、アルベド高解像度化部207が高解像度化した高解像度アルベド画像を利用しても構わない。この場合、アルベド高解像度化部207が高解像度化した高解像度アルベド画像を低解像度化した画像と、アルベド推定部221が作成したアルベド画像との類似度を評価すればよい。ここでの低解像度化は、高解像度アルベド画像をローパスフィルタを通してサブサンプリングすることによって行えばよい。
これら2つのアルベド画像は、高解像度化が高精度に行われている場合は同じ画像となり、高解像度化に失敗している場合は異なった画像となる。そこで、これら2つのアルベド画像の類似度が十分に高い場合、第1の実施形態と同様に、アルベドDB208から変換規則を取得してアルベド画像を高解像度化する。一方、これら2つのアルベド画像の類似度が十分に高くない場合、アルベドDB208が蓄積している変換規則では高解像度化が高精度に行えないと判断し、例えば単純な線形補間処理に基づく高解像度化を行う。
以上のように本実施形態によると、学習データに類似していない被写体に対しては、アルベドDBに蓄積された変換規則を利用せず、例えば単純な線形補間処理を利用することによって、画質の劣化を抑えた画像高解像度化処理を行うことができる。
(第3の実施形態)
図52は本発明の第3の実施形態に係る画像高解像度化システムの構成を示すブロック図である。図52では、図1と共通の構成要素については図1と同一の符号を付しており、ここではその詳細な説明を省略する。
図52では、例えばカメラ付き携帯電話によって構成される通信端末501に、図1に示した各構成要素のうち画像撮像部201、光源情報推定部203および形状情報取得部204が設けられている。そして、アルベド推定部206、アルベドDB208、アルベド高解像度化部207および画像高解像度化部217は、通信端末501から離れてネットワークを介して接続された外部の装置であるサーバ502に設けられている。すなわち、本実施形態では、通信端末501側では、全ての処理を行うのではなく、画像撮像と光源情報および形状情報の取得のみを行い、画像高解像度化処理はサーバ502側で実行する。
通信端末501では、第1の実施形態で述べたように、画像撮像部201によって原画像が撮像され、光源情報推定部203によって光源情報が推定され、形状情報取得部204によって被写体の形状情報が取得される。これら原画像、光源情報および形状情報は、情報送信部224によって送信される。
サーバ502では、情報受信部225が、通信端末501からネットワークを介して送信される情報、すなわち原画像、光源情報および形状情報を受信する。受信された原画像、光源情報および形状情報はアルベド推定部206に与えられる。アルベド推定部206は、第1の実施形態で述べたように、光源情報および形状情報を用いて、原画像から被写体のアルベド画像を作成する。アルベド高解像度化部207は、低解像度アルベド画像を高解像度アルベド画像に変換する変換規則を蓄積しているアルベドDB208から変換規則を取得し、アルベド画像を高解像度化する。画像高解像度化部217はアルベド高解像度化部207によって得られた高解像度アルベド画像と、光源情報および形状情報を用いて、原画像を高解像度化した高解像度画像を作成する。
このように、アルベド推定部206、アルベドDB208、アルベド高解像度化部207および画像高解像度化部217をサーバ502に設けて、画像高解像度化処理を実行させることによって、通信端末501側の計算負荷を軽くすることが可能になる。
なお、上述の第2および第3の実施形態において、第1の実施形態で説明したのと同様に、原画像を拡散反射画像と鏡面反射画像とに分離して、拡散反射画像についてはアルベド画像を利用した高解像度化を行い、鏡面反射画像についてはアルベド画像を利用しない高解像度化を行うようにすることも、もちろん可能である。
なお、上述の各実施形態に係る画像高解像度化方法は、コンピュータに、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行させることによって、実現することが可能である。