以下、図面を参照しながら本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態における画像処理装置の概要について説明する。本実施形態の画像処理装置は、投光部(光源)の偏光状態を変化させることにより、光源依存度を算出する。偏光情報と偏光状態の変化に伴う光源依存度とを利用することにより、被写体の領域分割を行う。
図1は、本実施形態に係る画像処理装置におけるブロック図である。この画像処理装置は、被写体を撮像することにより、被写体の表面を光学的に性質の異なる複数の領域に分割する(領域分割を行う)装置である。
この画像処理装置は、偏光状態を変化させて直線偏光光を被写体に投光する投光ユニット121と、被写体の偏光情報を取得する偏光情報取得部122と、投光ユニット121および偏光情報取得部122の同期処理を行う制御部120と、投光ユニット121によって偏光状態(本実施形態では、直線偏光光の偏光主軸方向)が変化した際に偏光情報取得部122で生成される各偏光情報を比較することによって光源依存度情報を推定する光源依存度推定部105と、偏光情報取得部122によって生成された偏光情報と依存度推定部105によって推定された光源変動情報を利用して、領域分割を行う領域分割部106を備える。
投光ユニット121は、直線偏光光を前記被写体に投光する投光部101と、投光部101の直線偏光光の偏光状態を変化させる投光制御部102とを有している。偏光情報取得部122は、被写体の偏光画像を取得する偏光画像撮像部103と、受光した偏光に関する情報である偏光情報を生成する偏光情報取得部104とを有している。偏光画像撮像部103は、偏光主軸角度が異なる3方向以上の偏光子を透過してくる光を受光することにより、被写体の偏光画像を取得する。偏光情報取得部104は、取得された前記偏光画像から、当該偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
図2は本実施形態に係る領域分割方法の処理の流れを示すフローチャートである。図2のステップS101において、投光部101は、投光制御部102によって指示された主軸方向に偏光した偏光光を被写体へ投光する。ステップS102において、偏光画像撮像部103は、後述するパターン偏光子を通して被写体を撮像素子で受光することにより、偏光情報を含んだ画像である第1の偏光画像を取得する。これは、制御部120によって、投光ユニット121と偏光情報取得部122とが同期処理を行うことによって実現される。
パターン偏光子は、後述するように3方向以上の偏光主軸角度をもつ。ステップS103において、偏光情報取得部104は、撮像された前記第1の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
ステップS104において、投光制御部102は、投光部101の直線偏光光の主軸方向が変化するように投光部101を制御し、投光部101はステップS101とは異なった偏光状態の偏光光を被写体へ投光する。ステップS105において、偏光画像撮像部103は再度、パターン偏光子201を通して被写体を撮像素子で受光することで、第2の偏光画像を取得する。これは、制御部120によって、投光ユニット121と偏光情報取得部122とが同期処理を行うことによって実現される。
第1の偏光画像と第2の偏光画像は、投光部101の直線偏光光の主軸方向が変化した偏光画像である。ステップS106において、偏光情報取得部104は、再度、撮像された前記第2の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
ステップS107において、光源依存度推定部105は、第1の偏光画像および第2の偏光画像から前記偏光情報取得部104によって取得された偏光情報を比較することで、光源依存度を推定する。ステップS108において、領域分割部106は、前記偏光情報取得部104によって生成された偏光情報と前記光源依存度推定部105によって推定された光源依存度情報を利用して、領域分割を行う。
ここでは、投光制御部102、偏光画像撮像部103、偏光情報取得部104、光源依存度推定部105、領域分割部106および制御部120は、CPU204がプログラムを実行することによって実現されるものとする。ただし、これらの機能の全部または一部を、ハードウエアによって実現してもかまわない。メモリ203は、偏光画像撮像部103によって撮像された偏光画像と、偏光情報取得部104によって取得された偏光情報と、光源依存度推定部105によって推定された光源依存度情報とを格納する。
次に、図3を参照しながら、本実施形態に係る画像処理装置が搭載されたカメラの構成と動作を説明する。図3は、このようなカメラの構成例を示すブロック図である。図3のカメラは、パターン偏光子201、撮像装置202、メモリ203、CPU204、投光制御装置208、発光装置207、回転機構206、および偏光子205を備えている。
ステップS101において、図3のカメラから偏光光が被写体に投光させる。フラッシュを発光装置207として利用する場合、フラッシュの前方に偏光フィルタ(偏光子205)を設置しているため、偏光光を被写体に投光することができる。偏光光を利用する手段として、液晶偏光子などを利用してもかまわない。
偏光子205は、回転機構206によって回転する。投光制御部102は、回転機構206を制御することで、偏光光の主軸方向を変化させる。偏光子として偏光フィルタではなく、液晶偏光子を利用する場合、投光制御部102は液晶偏光子に印加する電圧を変化させることで、偏光光の主軸方向を変化させる。
以下、図3に示す構成を有するカメラの動作を詳述する。
まず、図2に示すステップS101において、図1の投光部101は、発光装置207と偏光子205を利用し、投光制御部102によって指示された主軸方向に偏光した偏光光を被写体へ投光する。これは、例えばカメラのフラッシュを発光装置207として利用する場合、フラッシュの前方に偏光フィルタ(偏光子205)を設置することで実現できる。偏光光を利用する手段として、液晶偏光子などを利用してもかまわない。
偏光子205は、回転機構206によって回転させられる。投光制御部102は、回転機構206を制御することにより、偏光光の主軸方向を変化させる。偏光子として偏光フィルタではなく、液晶偏光子を利用する場合、投光制御部102は液晶偏光子に印加する電圧を変化させることで、偏光光の主軸方向を変化させるようにしても構わない。
ステップS102において、偏光画像撮像部103は、パターン偏光子201を通して被写体を撮像装置202で受光することにより、偏光情報を含んだ画像である第1の偏光画像を取得する。これは、CPU120が、発光装置207による発光、回転機構206による偏光子205の回転、および撮像装置202による撮像を同期させることにより実行される。
図4は、図1に示す偏光画像撮像部103に含まれるパターン偏光子201と撮像装置202との関係を示した模式図である。本実施形態において、撮像装置202にはパターン偏光子201が重ねて設置されている。パターン偏光子201は、撮像装置202の撮像面に平行に設置されることが望ましい。入射光はパターン偏光子201を透過して撮像素子202に到達して輝度が観測されるため、偏光画像撮像部103は偏光情報を取得できる。
図5は、この4種類のパターン偏光子を示しており、各画素内の直線は各画素上に設置された微小偏光板の偏光主軸方向を示している。すなわち、この撮像装置は偏光軸の回転角(Φi=0°、45°、90°、135°)によって規定される4種類の偏光方向を有する画素を持つ。パターン偏光子は、TM波が透過、TE波が反射(透過せず)という偏光特性を示す。
このような特性は例えば、『川嶋、佐藤、川上、長嶋、太田、青木、“パターン化偏光子を用いた偏光イメージングデバイスと利用技術の開発”、電子情報通信学会2006年総合全国大会、No.D-11-52,P52,2006』に記載されたフォトニック結晶を用いて作成することができる。フォトニック結晶の場合表面に形成された溝に平行な振動面を持つ光がTE波、垂直な振動面を持つ光がTM波となる。この偏光情報の取得に際しては輝度のダイナミックレンジとビット数はなるべく大きいこと(例えば16ビット)が望ましい。
図2のステップS103において、偏光情報取得部104は、第1の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。この処理を詳述する。
偏光子を透過した光(偏光主軸方向に偏光した直線偏光光)の輝度は、偏光子の偏光主軸角によって変化することが知られている。図6は、異なる偏光主軸角度Φi=0°、45°、90°、135°の4種類の偏光子を透過した輝度401から404が1本の正弦関数カーブを形成する様子を示す。この正弦関数カーブは、図5の点501における偏光特性を示している。ここで、図5は図4の4種類の偏光子201と撮像素子202を入射光方向から眺めた模式図である。
なお、偏光主軸角度は0°と180°(π)は同一である。また、この正弦関数カーブを求める際、撮影ガンマ=1となるカメラを用いるか、リニアリティ補正により撮影ガンマ=1となるように補正することが望ましい。この4点は1本の正弦関数カーブ上にちょうど乗るように描かれているが実際には多数の観測点から180度周期の正弦関数が最適値として1本決定されることになる。
偏光情報取得部104は、偏光情報として、このカーブの振幅と位相情報を取得する。具体的には、パターン偏光子の主軸角φに対する反射光輝度Iを以下のように近似する。
ここで図6に示すようにA、B、Cは定数でありそれぞれ、偏光子による輝度の変動カーブの振幅、位相、平均値を表現している。ところで、式1は以下のように展開できる。
ただし、
つまり、4画素のサンプル(φ
i I
i)において以下の式5を最小にするA、B、Cを求めることで、正弦関数である式1の近似ができる。ただし、I
iは、偏光板回転角φ
i時の観測輝度を示している。またNはサンプル数であり、ここでは、4である。
以上の処理で正弦関数近似のA、B、Cの3パラメータが確定する。こうして求めたパラメータを利用して、偏光情報取得部104は、偏光情報として、以下の偏光度ρ、偏光位相φmax、偏光推定誤差E、偏光最大輝度値Imax、偏光最小輝度値Iminの少なくとも1つを取得する。
・偏光度ρ
・偏光位相φmax(0≦φmax≦π[rad])
・偏光推定誤差E
・偏光最大輝度値Imax
・偏光最小輝度値Imin
ここで、偏光度とは、光がどれだけ偏光しているかを表す指標であり、偏光位相とは、偏光主軸角度に依存して変化する輝度が最大となる角度である。また、偏光推定誤差とは、4画素のサンプルについて観測された輝度と近似によって得られた上述の正弦関数から定まる輝度との差の合計である。また、偏光最大輝度値はパターン偏光子の主軸角φを変化させた際にとりうる最大輝度値、偏光最小輝度値はパターン偏光子の主軸角φを変化させた際にとりうる最小輝度値であり、非偏光成分輝度値である。
図7は、球体である地球儀に対して、第1の偏光画像から求めた、偏光度ρ1、偏光位相φmax1および偏光推定誤差E1を画像として表示した図である。この図において、図7(a)は被写体である地球儀の画像、図7(b)は図7(a)の被写体に対する偏光度ρ1、図7(c)は図7(a)の被写体に対する偏光位相φmax1(0°が黒、180°が白)、図7(d)は図7(a)の被写体に対する偏光推定誤差E1を示している。また、図8は、図7の各画像を模式的に示した図(濃淡を明瞭化した図)である。この図において、各領域(A01〜D04)は、図9における各領域に対応する。図9は、図7の画像を輝度の高低に応じて複数の領域に分けた図である。いずれも輝度が高い(白い)ほど、値が大きいことを意味している。
図10は、同様の処理を発泡スチロール製の頭部模型に対して行った結果を示している。これらの画像から、遮蔽エッジ付近で偏光度が大きいこと、被写体の陰影に覆われていない領域では偏光位相が180°周期で球体の周囲を時計回りに単調増加していることがわかる。これらの偏光情報画像は被写体の表面法線の向きと深く関連しており、形状を推定する手がかりとなる。
図7(b)〜図7(d)において、背景領域(Ba01〜Ba04)のデータが乱れている。これは、背景領域は非常に暗かったため、輝度分解能が低くなってしまったためである。そのため、偏光情報の信頼性が低くなり、データが乱れている。露光時間を長くするなどして、背景領域の輝度を上げることで、背景領域でも十分な精度の偏光情報を取得することができる。背景領域はマスク処理を行うことで、領域分割処理を行わないようにしても構わない。
ステップS104において、投光制御部102は、前記第1の偏光画像を取得した際とは異なった偏光状態の偏光光を被写体へ投光するように、投光部101を制御する。投光部101は、投光制御部102によって指示された主軸方向に偏光した偏光光を被写体へ再度、投光する。
このときの偏光状態の変化とは、例えば偏光主軸の方向を変えることである。投光制御部102は、偏光主軸方向を例えば、90度回転させるようにすればよい。
ステップS105において、偏光画像撮像部103は、前述の通り、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第2の偏光画像を取得する。これは、制御部120によって、投光ユニット121と偏光情報取得部122が同期処理を行うことによって実現される。これは、例えば、制御部120により、偏光情報を変化させた偏光光を0.2秒の間隔で投光する場合、制御部120によって、偏光画像撮像部103をステップS102での撮像を偏光光投光時と同期させ、さらにステップS102からステップS105の撮像までの間隔を0.2秒とするようにすればよい。このようにすることで、ユーザは1度の撮像操作で第1の偏光画像と第2の偏光画像の2枚の画像を取得することができる。
ステップS106において、偏光情報取得部104は、撮像された前記第2の偏光画像を構成する単位画素のそれぞれについて、前述の通り、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
図11は、第2の偏光画像から求めた、偏光度ρ2、偏光位相φmax2、偏光推定誤差E2を画像として表示したものである。この図において、図11(a)は被写体である地球儀の画像、図11(b)は図11(a)の被写体に対する偏光度ρ2、図11(c)は図11(a)の被写体に対する偏光位相φmax2(0°が黒、180°が白)、図11(d)は図11(a)の被写体に対する偏光推定誤差E2を示している。また、図12は図11の各画像を模式的に示したものである。この図において、各領域(A11〜D14)は、図13における各領域(A11〜D14)に対応する。図13は、図11の画像を輝度の高低に応じて複数の領域に分けた図である。いずれも輝度が高い(白い)ほど値が大きいことを示している。
図2のステップS107において、光源依存度推定部105は、第1の偏光画像および第2の偏光画像から偏光情報取得部104によって取得された偏光情報を比較することで、光源依存度を推定する。この処理について詳述する。
前述のように、鏡面反射領域と拡散反射領域では光源依存度が異なる。ここでは、光源依存度を調べるために、本実施形態では、投光光の偏光軸方向を変化させる。前述のように、投光制御部102により、偏光軸方向が90度異なった直線偏光光を投光することで、第1の偏光画像および第2の偏光画像を得た。これらの画像から求めた偏光位相情報を比較することにより、光源の依存度を推定する。なお、図7と図11とを比較すると明らかなように、偏光度ρ1および偏光度ρ2は、領域B12において略同じ大きさ(同じ輝度)を有している。これは、被写体に投光される偏光光の偏光主軸角度が異なっていても、鏡面反射領域で反射される偏光光の輝度が偶然ほぼ等しくなったことに起因すると考えられる。
図14は、第1の偏光画像から求めた偏光位相φmax1と第2の偏光画像から求めた偏光位相φmax2の差分値を画像化したものを示している。この図において、輝度が高い(白い)画素が差分値の大きな画素を示している。
前述のように、鏡面反射領域は表面反射によって生じるため、入射光の偏光特性が保持されている。すなわち、鏡面反射領域は光源依存度が高いと考えられる。一方、拡散反射領域はスキャッタリングを繰り返しているため、入射光の偏光特性が失われている。すなわち、入射光には影響されず、拡散反射領域は光源依存度が低いと考えられる。
そこで、光源依存度推定部105は、第1の偏光画像と第2の偏光画像に対する画素の偏光位相差を利用して、次式に従い、光源依存度として第1の光源依存度LDφを推定する。
ただし、
は次式で表現される、偏光位相φmax1[rad]とφmax2[rad]の周期πを考慮した差分値である。また、その値域は[0,π/2]である。
図15はφmax1、φmax2と
の関係を示した図である。第1の光源依存度LDφは、第1の偏光画像と第2の偏光画像の偏光位相が等しい場合に0、偏光位相差が大きくなるほど値が大きくなり、偏光位相差が最大(π/2)の場合に1となる。つまり、光源の偏光状態の変化に依存して偏光位相が変化する場合、第1の光源依存度LDφは大きくなり、光源の偏光状態の変化に偏光位相が影響されない場合、第1の光源依存度LDφは小さくなる。
光源依存度は第1の偏光画像と第2の偏光画像に対する画素の偏光位相差である必要はなく、例えば、第1の偏光画像と第2の偏光画像に対する偏光度の差である第2の光源依存度LDρあっても構わない。この場合、第2の光源依存度LDρは次式で表現される。
第2の光源依存度LDρは、第1の光源依存度LDφ同様、第1の偏光画像と第2の偏光画像の偏光度が等しい場合に1、偏光度の差が大きくなるほど値が大きくなり、偏光度の差が最大(1.0)の場合に0となる。つまり、光源の偏光状態の変化に依存して偏光度が変化する場合、第2の光源依存度LDρは大きくなり、光源の偏光状態の変化に偏光度が影響されない場合、第2の光源依存度LDρは小さくなる。なお、前述のように、被写体に投光する偏光光の偏光主軸角度が異なっていても、鏡面反射領域で反射される光の輝度が偶然等しくなる場合がある。そのような場合に生じる誤判低を避けるためには、偏光軸方向が3種類以上異なる偏光光を用いて異なる3つ以上の偏光画像を取得し、それらの偏光画像に基づいて偏光度の差分を評価してもよい。
図2のステップS108において、領域分割部106は、偏光情報取得部104によって生成された偏光情報と光源依存度推定部105によって推定された光源依存度情報とに基づいて、領域分割を行う。以下、この処理を詳述する。
図16は、領域分割部106の画像分割基準を示している。また、図17は、領域分割部106の処理の流れを示したフローチャートである。以下、この処理の流れを説明する。
まず、図17のステップS201において、領域分割部106は、画素が非偏光領域偏光領域のいずれに属するかを決定するため、画素の偏光度ρ1の大きさと閾値Thρとを比較し、偏光度ρが閾値Thρ以上かThρよりも小さいかを判定する。画素の偏光度ρ1が閾値Thρより小さかった場合(ステップS201でNo)、その画素は拡散反射非偏光領域に含まれると判断し(ステップS202)、処理を終了する。一方、画素の偏光度ρ1が閾値Thρ以上であった場合(ステップS201でYes)、光源依存度推定部105が推定した第1の光源依存度LDφが閾値Thφより大きいかどうかを決定する(ステップS203)。第1の光源依存度LDφが閾値Thφ以上であった場合(ステップS203でYes)、画素は鏡面反射偏光領域であると判断し(ステップS204)、処理を終了する。一方、第1の光源依存度LDφが閾値Thφより小さかった場合(ステップS203でNo)、画素は拡散反射偏光領域に含まれると判断し(ステップS205)、処理を終了する。
偏光度の閾値Thρは、被写体の屈折率や被写体の法線方向、光源方向、視線方向などから設定するようにしても構わない。図72、図73に示したように、被写体の鏡面反射成分や拡散反射成分の偏光度は屈折率と入射角、出射角が求まれば一意に決定できる。そのため、図72、図73で求まる鏡面反射成分や拡散反射成分の偏光度をThρとして利用すればよい。例えば、被写体の屈折率が1.3、入射角が30度である場合、図73より、拡散反射成分の偏光度は、必ず0.05以下になると考えられるので、閾値Thρとして、0.05を設定すればよい。
また、被写体の屈折率や被写体の法線方向、光源方向、視線方向などの情報が得られない場合、拡散反射成分の偏光度がとりうる最大値をもとに閾値Thρとして決定しても構わない。例えば、屈折率2.0以上の被写体は存在しないと仮定すると、図73より拡散反射成分の偏光度の最大値は0.6程度と考えられるので、閾値Thρとして、0.8程度を設定すればよい。
第1の光源依存度LDφの閾値Thφは実験的に決定すればよく、例えば、0.5を設定すればよい。偏光度の閾値Thρも実験的に決定するようにしても構わない。
ステップS201において、第1の偏光画像から求めた偏光度ρ1を用いて比較を行うのではなく、第2の偏光画像から求めた偏光度ρ2を用いて比較を行ってもよい。この場合も、閾値Thρとの比較を行えばよい。また、第1の偏光画像から求めた偏光度ρ1と第2の偏光画像から求めた偏光度ρ2の平均値を用いても良い。例えば、光源の直線偏光光の主軸を90度変化させる場合、偏光度ρ1と偏光度ρ2の平均値を求めることで、非偏光成分の光源が照射される場合とほぼ等価の偏光度を取得することができる。そのため、より正確な領域分割が可能である。この場合も、閾値Thρとの比較を行えばよい。
ステップS201において、第1の偏光画像から求めた偏光推定誤差E1を用いて比較を行っても良い。この処理は、光源の安定性が低いなど、輝度値の誤差が大きくなる場合に有効である。図18は、この場合の領域分割部106における処理の流れを示すフローチャートである。図18において、図17と共通のステップには図17と同一の符号を付しており、ここではその詳細な説明は省略する。
図18のステップS206において、領域分割部106は偏光推定誤差E1の大きさが閾値ThE以上か未満かを判定する。画素の偏光推定誤差E1が閾値ThE以上である場合(ステップS206でNo)、画素は拡散反射非偏光領域であると判断し(ステップS202)、処理を終了する。一方、偏光推定誤差E1が閾値ThE未満であった場合(ステップS206でYes)、光源依存度推定部105が推定した第1の光源依存度LDφが閾値Thφより大きいかどうかを比較する(ステップS203)。
ステップS203において、前述の第1の偏光画像と第2の偏光画像に対する偏光度の差である第2の光源依存度LDρを用いても良い。偏光度は多重反射などの影響を強く受けるため、多重反射の影響を受けにくい被写体では、偏光度の差である第2の光源依存度LDρを用いることも有効である。多重反射の影響を受けにくい被写体とは、具体的には、被写体の形状が凸形状の被写体である。第1の光源依存度LDφと第2の光源依存度LDρを組み合わせて使うようにしても構わない。この場合、式11と式13の重み付け平均を求めるようにすればよい。2つの偏光情報を組み合わせて利用することで、ロバストな領域分割が可能である。
図19は、この場合の領域分割部106における処理の流れを示すフローチャートである。図19において、図17と共通のステップには図17と同一の符号を付しており、ここではその詳細な説明は省略する。ステップS207において、第2の光源依存度LDρが閾値Thρ以上であった場合(ステップS207でYes)、画素は鏡面反射偏光領域であると判断し(ステップS204)、処理を終了する。一方、第2の光源依存度LDρが閾値Thρより小さかった場合(ステップS207でNo)、画素は拡散反射偏光領域であると判断し(ステップS205)、処理を終了する。
第2の光源依存度LDρの閾値Thρは実験的に決定すればよく、例えば、0.2に設定すればよい。
図20、図22〜図26は、本実施形態による領域分割を実施した結果を示している。また、図21は、本実施形態による領域分割を実施した撮像条件を示した図である。
図21に示すように、発光装置207は、撮像装置202の近傍に設置され、回転機構206によって偏光子の主軸方向が90度変化する。図20(a)は、被写体であるビリヤードボールを示している。図20(b)は、図20(a)に示されるビリヤードボールの表面を示す画像のうち、白い画素からなる領域に符号「B21」を付し、他の領域に符号「A21」を付した図である。また、図20(c)は、図20(b)を模式的に示した図(濃淡を明瞭化した図)である。この図において、各領域A21、B21は、図20(b)における各領域A21、B21に対応する。
図22は、図20(a)で示したビリヤードボールを被写体とし、投光制御部102により、偏光光の主軸方向を水平方向と垂直方向に変化した場合に偏光情報取得部104により取得された偏光情報を示している。図22(a)は偏光光の主軸方向を水平方向として撮像した第1の偏光画像から求めた偏光度ρ1、図22(b)は第1の偏光画像から求めた偏光位相φmax1、図22(c)は偏光光の主軸方向を垂直方向として撮像した第2の偏光画像から求めた偏光度ρ2、図22(d)は第2の偏光画像から求めた偏光位相φmax2、図22(e)は偏光位相φmax1とφmax2から求めた第1の光源依存度LDφを示している。
図22(a)から(d)において、それぞれ、明度の高い画素ほど、偏光度ρ1、偏光位相φmax1、偏光度ρ2、偏光位相φmax2の値が大きい。なお、図22(e)において、第1の光源依存度LDφの値が1の場合は白、0の場合は黒で表現されている。
図23は、図22の画像を輝度の高低に応じて複数の領域に分けた図である。図24は、図22の各画像を模式的に示した図(濃淡を明瞭化した図)である。この図において、各領域(A31〜D35)は、図23における各領域に対応する。また、図25は、図22の偏光情報を利用して、本実施形態による領域分割を実施した結果を示している。図25(a)はステップS201において、第1の偏光画像に対する偏光度ρ1が閾値Thρ以上の画素を示している。また、図25(b)、(c)、および(d)は、それぞれ、本実施形態において分割された、「拡散反射非偏光領域」、「鏡面反射偏光領域」、および「拡散反射偏光領域」を示している。また、図25(e)は拡散反射非偏光領域と拡散反射偏光領域の和集合である「拡散反射領域」を示している。図25において、白色画素によって構成される領域が、他の領域(黒い画素によって構成される領域)から分割された領域を示している。
従来の偏光度のみに基づいて領域分割を行う方法では、図25(a)に示される白い画素の領域を「鏡面反射領域」、図25(b)に示される白い画素の領域を「拡散反射領域」に割り当ててしまうため、前述のように遮蔽エッジ近傍である領域A(図25(a)を誤って鏡面反射領域に含めてしまい、分割された各領域の範囲に大きな誤差が生じてしまう。
一方、本実施形態における領域分割方法では、偏光情報に加え、光源依存度を利用しているため、図25(c)に示される白い画素の領域を「鏡面反射領域」、図25(e)に示される白い画素の領域を「拡散反射領域」に分割する。そのため、従来法に比べ、正確な領域分割が可能である。
図26は、ステップS201において、第1の偏光画像から求めた偏光度ρ1を利用して比較を行うのではなく、第2の偏光画像から求めた偏光度ρ2を利用した結果を示している。図26(a)はステップS201において、第2の偏光画像に対する偏光度ρ2が閾値Thρ以上の画素を示している。また、図26(b)、(c)、および(d)は、それぞれ、本実施形態の領域分割において分割された、「拡散反射非偏光領域」、「鏡面反射偏光領域」、および「拡散反射偏光領域」を示している。また、図26(e)は、拡散反射非偏光領域と拡散反射偏光領域の和集合である「拡散反射領域」を示している。図26において、白色画素によって構成される領域が、他の領域(黒い画素によって構成される領域)から分割された領域を示している。
図25を参照して説明した領域分割方法と同様に、第2の偏光画像に対する偏光度ρ2を用いても、偏光情報および光源依存度の両方を利用しているため、従来法に比べ、正確な領域分割が可能である。
図25、図26を比較すると、図26(c)では、白い画素からなる領域Bが観察されるが、図25(c)には、そのような領域Bは表れていない。物体の表面に入射して反射される光の偏光状態は、入射する直線方向の偏光方向と入射角または出射角との関係に影響され、ある物体の表面に入射した直線偏光光の反射光の偏光度が偏光方向によって高くなる場合がある。このような場合、そのように偏光度の高い反射光を発する画素について「鏡面反射領域」の一部を誤って判断する可能性がある。このような誤判断を確実に防ぐためには、図19のステップS201において、第1の偏光画像から求めた偏光度ρ1と、第2の偏光画像から求めた偏光度ρ2の重み付け和を利用して比較処理を行ってもよい。
また、図27に示すように、複数の発光装置207および発光装置207−2から構成された発光部101を用い、発光装置207、207−2の各々から異なった偏光状態の偏光光を投光するようにしても構わない。この場合、複数の発光装置207、207−2は近傍に設置されることが望ましい。図27は、本実施形態による領域分割を実施したときの発光装置207、207−2、撮像装置202、被写体などの配置関係を模式的に示す図である。図27において、図21と共通の構成要素には同一の符号を付しており、ここではその詳細な説明は省略する。
図28は、本実施形態に係る画像処理装置が搭載されたカメラの構成例を示している。図28において、図3と共通の構成要素には図3と同一の符号を付しており、ここではその詳細な説明は省略する。
図28に示す投光制御部102は、光源として機能する発光装置207および発光装置207−2を切り替えることで、偏光光の主軸方向を変化させる。具体的には発光装置207に対する偏光子205の偏光主軸方向と、発光装置207−2に対する偏光子205−2の偏光主軸方向とが互いに直交する関係にある。そのため、図3に示す装置と異なり、回転機構206が不要となるため、カメラの小型化が可能である。
なお、本実施形態では、パターン偏光子201にフォトニック結晶を用いているが、偏光素子であればフィルム型の偏光素子、あるいはワイヤーグリッド型やその他の原理による偏光素子を使っても構わない。また、パターン偏光子を利用せず、撮像装置のレンズ前に装着した偏光板を回転させながら撮像することで、時系列的に偏光主軸の異なる輝度を取得するようにしても構わない。この方法は、例えば、特開平11−211433号公報に開示されている。
なお、発光装置207は撮像装置202の近傍に設置することが望ましい。このような配置を採用することにより、発光装置207からの投光によって被写体に生じる陰影の領域が小さくなるためである。陰影に関しては、本実施形態の領域分割方法では考慮していないため、陰影が生じると領域分割が困難である。陰影領域では、多重反射などの影響により、光線が複雑になり、偏光情報の信頼性が失われる。このため、陰影領域では領域分割精度が劣化する。陰影を生じにくくすることは、領域分割の精度を向上させるために重要である。
領域分割部106は、画像を「鏡面反射領域」と「拡散反射領域」とに分割する代わりに、画像を「光源依存偏光領域」、「光源依存非偏光領域」、「光源非依存偏光領域」、および「光源非依存非偏光領域」の4つの領域に分割するようにしても構わない。この処理について詳述する。
図29は、本実施形態に係る領域分割部106の画像分割基準を示している。図30は、本実施形態に係る領域分割部106の処理の流れを示すフローチャートである。図30において、図17と共通のステップには図17と同一の符号を付しており、ここではその詳細な説明は省略する。
まず、領域分割部106は、各画素が非偏光領域および偏光領域のいずれに属するかを判定し、画像を非偏光領域と偏光領域とに分ける領域分割を行うため、画素の偏光度ρ1の大きさと閾値Thρとを比較し、偏光度ρが閾値Thρ以上か閾値Thρよりも小さいかを判定する(ステップS201)。画素の偏光度ρ1が閾値Thρ以上であった場合(ステップS201でYes)、その画素は偏光領域に含まれると判断し、光源依存度推定部105が推定した第1の光源依存度LDφが閾値Thφ以上かどうかを判断する(ステップS203)。第1の光源依存度LDφが閾値Thφ以上であった場合(ステップS203でYes)、画素は光源依存偏光領域に含まれると判断し(ステップS208)、処理を終了する。
一方、第1の光源依存度LDφが閾値Thφより小さかった場合(ステップS203でNo)、画素は光源非依存偏光領域に含まれると判断し(ステップS209)、処理を終了する。
なお、画素の偏光度ρ1が閾値Thρより小さかった場合(ステップS201でNo)、画素は非偏光領域に含まれると判断し、光源依存度推定部105が推定した第1の光源依存度LDφが閾値Thφ2以上かどうかを比較する(ステップS210)。第1の光源依存度LDφが閾値Thφ2以上であった場合(ステップS210でYes)、その画素は光源依存非偏光領域に含まれると判断し(ステップS211)、処理を終了する。一方、第1の光源依存度LDφが閾値Thφ2より小さかった場合(ステップS210でNo)、画素は光源非依存非偏光領域に含まれると判断し(ステップS212)、処理を終了する。
ステップS210における光源依存度の閾値Thφ2は、ステップS203の閾値Thφと等しくすればよい。また、偏光度の閾値Thρや第1の光源依存度LDφの閾値Thφは前述のように設定すればよい。さらに、ステップS203とステップS210において、同一の閾値Thφを用いるのではなく、異なった閾値を利用するようにしても構わない。この場合、非偏光領域では、輝度分解能が偏光領域に比べ、小さいと考えられるため、Thφ2の値をThφより小さくすることが望ましい。
なお、陰影領域の問題を解決するために、後述するように、領域分割部106は、分割される領域に「陰影領域」を加えても構わない。
以上のように、本発明の領域分割方法を利用することで、偏光情報と光源依存度を利用した領域分割を行うことができる。このような領域分割は、拡散反射成分の偏光成分も考慮にいれた鏡面反射領域と拡散反射領域の分割を行うこともできる。
(第2の実施形態)
次に、本発明の第2の実施形態における画像処理装置の概要について説明する。本実施形態の画像処理装置は、投光部の位置(光源位置)を変化させることにより、光源依存度を算出する。偏光情報と光源位置の変化に伴う光源依存度を利用することで、被写体の領域分割を行う。
図31は、本実施形態に係る画像処理装置のブロック図である。図31において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明は省略する。第1の実施形態との違いは、投光制御部102に代わり、投光位置変化部112を有することである。本実施形態の画像処理装置は、投光制御部102によって偏光の主軸方向を変化させるのではなく、投光位置変化部112によって発光装置207の位置を変化させる。
非偏光を被写体へ投光した場合の偏光位相は、被写体の法線情報に依存している。しかし、その関係は鏡面反射成分と拡散反射成分により異なる。
まず、鏡面反射成分について考える。被写体の表面法線は2つの自由度を有する。ここでは光の入射光線と入射点(観測点)の法線ベクトルを包含する入射面と、入射面内での入射角という2つの角度を求めることにより決定する。鏡面反射成分の入射面は偏光画像から求められる図6において、輝度が最小となる角度と等しいことが知られている(例えば、Ondfej Drbohlav and Sara Radim,“Using polarization to determine intrinsic surface properties”,Proc. SPIE Vol.3826,pp.253-263,1999)。
次に、拡散反射成分について考える。前述の通り、被写体の表面法線は2つの自由度を有する。ここでは光がスキャッタリングを繰り返し、被写体表面から出射した出射光の光線と出射点(観測点)の法線ベクトルを包含する出射面と、出射面内での出射角という2つの角度を求めることにより決定する。拡散反射成分の出射面は偏光画像から求められる図6において、輝度が最大となる角度と等しいことが知られている(例えば、USP5,028,138号公報)。すなわち、偏光位相情報は、鏡面反射成分では入射角に依存するが、拡散反射成分では入射角に依存しない。カメラ位置を固定したまま光源位置を変化させた場合、入射角のみが変化する。そのため、鏡面反射成分ではその偏光特性が変化するが、拡散反射成分ではその偏光特性が変わらない。
このことは、鏡面反射成分が被写体のうち、正反射近傍の一部の領域にのみ生じるため、鏡面反射領域であった領域が光源位置を変化させることで拡散反射領域になることも関係している。いずれにせよ、カメラ位置を固定したまま光源位置を変化させた場合、多くの鏡面反射成分では、その偏光特性が変化するが、ほとんどの拡散反射成分では、その偏光特性が変わらない。本実施形態の領域分割方法は、この特性を利用して領域分割を行う。
図32は本実施形態における領域分割方法の処理の流れを示すフローチャートである。図32において、図2と共通のステップおよび対応するステップには、図2と同一の符号を付しており、ここではその詳細な説明は省略する。さらに、図33は、本実施形態に係る領域分割装置が搭載されたカメラの構成例を示している。図33において、図3と共通の構成要素および対応する構成要素には、図3と同一の符号を付しており、ここではその詳細な説明は省略する。
本実施形態における投光位置変化部112(図31)は、例えば図33に示す投光位置変化装置213によって実現される。投光位置変化装置213は、発光装置207の位置を変化させるものであり、モータなどを用いて実現される。また、発光装置207をロボットのアームなどの稼動部に取り付けるようにしてもかまわない。画像処理装置は、複数の発光装置207、207−2を有しても構わない。図34は複数の発光装置207、207−2を有する本実施形態に係る領域分割装置が搭載されたカメラの構成例を示している。この場合、投光位置変化装置213は、発光装置207、207−2を切り替えることで、発光装置の位置(光源位置)を変化させることができる。
図32において、投光部101は、制御部120によって指示された光源位置の発光装置207から非偏光光を投光する(ステップS301)。偏光画像撮像部103は、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第3の偏光画像を取得する(ステップS102)。これは、制御部120によって、投光ユニット121と偏光情報取得部122が同期処理を行うことによって実現される。このとき、パターン偏光子は、前述するように3方向以上の偏光主軸角度をもつ。偏光情報取得部104は、前述の通り、受光した偏光に関する情報である偏光情報を生成する(ステップS103)。投光位置変化部112は、ステップS101とは位置が異なる発光装置207が発光するように投光部101を移動し、投光部101はステップS301と異なった位置から被写体へ非偏光光を投光する(ステップS302)。
偏光画像撮像部103は再度、パターン偏光子201を通して被写体を撮像素子で受光することで、第4の偏光画像を取得する(ステップS105)。これは、制御部120によって、投光ユニット121と偏光情報取得部122が同期処理を行うことによって実現される。第3の偏光画像と第4の偏光画像は、前記投光部101の光源(発光装置207)位置が変化した偏光画像である。偏光情報取得部104は、再度、撮像された前記第4の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する(ステップS106)。光源依存度推定部105は、第3の偏光画像および第4の偏光画像から前記偏光情報取得部によって取得された偏光情報を比較することで、光源依存度を推定する(ステップS107)。領域分割部106は、前記偏光情報取得部104によって生成された偏光情報と前記光源依存度推定部105によって推定された光源依存度情報を利用して、領域分割を行う(ステップS108)。
以下、図を用いてこの処理を詳述する。
ステップS301において、投光部101は、制御部120によって指示された光源位置の発光装置207から非偏光光を投光する。これは、投光部101を複数の発光装置207から構成し、投光位置変化部112によって、は投光する発光装置207、207−2を切り替えることで、光源位置を変化させるようにすればよい。図35は、本実施形態による領域分割を実施した撮像条件を示したシステム図である。図35において、図21と共通の構成要素には図3と同一の符号を付しており、ここではその詳細な説明は省略する。
投光位置変化部112は投光位置変化装置213によって、発光装置207を移動させることで光源位置を変化させるようにしても構わない。投光位置変化装置213は、モータなどによって実現される。ロボットの稼動部に発光装置207を設置するようにしてもかまわない。図36は、本実施形態による領域分割を実施した撮像条件を示したシステム図である。図36において、図35と共通の構成要素には図35と同一の符号を付しており、ここではその詳細な説明は省略する。
ステップS102において、前述の通り、偏光画像撮像部103は、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第3の偏光画像を取得する。これは、制御部120によって、投光ユニット121と偏光情報取得部122が同期処理を行うことによって実現される。
ステップS103において、前述の通り、偏光情報取得部104は、撮像された前記第3の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
ステップS302において、投光位置変化部112は、ステップS301とは位置が異なる発光装置207−2が発光するように投光部101を制御することで、投光部101はステップS301と異なった位置から被写体へ投光する。これは、前述のように、投光部101を複数の発光装置207、207−2から構成する、または、発光装置207を移動させることで光源位置を変化させるようにすればよい。
ステップS105において、偏光画像撮像部103は、前述の通り、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第4の偏光画像を再度、撮像する。これは、制御部120によって、投光ユニット121と偏光情報取得部122が同期処理を行うことによって実現される。第4の偏光画像は、第3の偏光画像に比べ、被写体は同じであるが、投光光の偏光状態のみが異なった画像である。
ステップS106において、前述の通り、偏光情報取得部104は、撮像された前記第4の偏光画像を構成する単位画素のそれぞれについて、前述の通り、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
ステップS107において、前述の通り、光源依存度推定部105は、第3の偏光画像および第4の偏光画像から前記偏光情報取得部によって取得された偏光情報を比較することで、光源依存度を推定する。ここでは、偏光情報として、偏光位相情報を比較することで、光源依存度を推定する。
ステップS108において、前述の通り、領域分割部106は、前記偏光情報取得部104によって生成された偏光情報と前記光源依存度推定部105によって推定された光源依存度情報を利用して、領域分割を行う。また、領域分割部106の画像分割基準は図16と同様であり、領域分割部106の処理の流れを示したフローチャートも図17と同様である。
図37〜図42は、本実施形態による領域分割を実施した結果を示している。図37は、地球儀を被写体とし、投光位置変化部112により、発光装置207の位置を変化した場合に偏光情報取得部104により取得された偏光情報を示している。この図において、図37(a)は発光装置207を画像向かって右側に配置して撮像した第3の偏光画像から求めた偏光度ρ3、図37(b)は第3の偏光画像から求めた偏光位相φmax3、図37(c)は発光装置207−2をカメラ上方に配置して撮像した第4の偏光画像から求めた偏光度ρ4、図37(d)は第4の偏光画像から求めた偏光位相φmax4、図37(e)は偏光位相φmax3とφmax4から求めた第1の光源依存度LDφを示している。図37(e)において、第1の光源依存度LDφの値が1の場合は白、0の場合は黒で表現されている。また、図38は、図37の各画像を模式的に示した図(濃淡を明瞭化した図)である。この図において、各領域(A41〜E45)は、図39における各領域に対応する。図39は、図7の画像を輝度の高低に応じて複数の領域に分けた図である。
図40は、このときの発光装置207、207−2と撮像装置202の位置関係を示した模式図である。また、図41は、図37の偏光情報を利用して、本実施形態による領域分割を実施した結果を示している。この図において、図41(a)はステップS201において、第3の偏光画像に対する偏光度ρ3が閾値Thρ以上の画素を示している。また、図41(b)(c)(d)はそれぞれ、本実施形態の領域分割において分割された、拡散反射非偏光領域、鏡面反射偏光領域、拡散反射偏光領域を示している。また、図41(e)は拡散反射非偏光領域と拡散反射偏光領域の和集合を求めた、拡散反射領域を示している。図41において、白色画素がそれぞれ、分割された領域を示している。従来の偏光度のみを利用した方法では、図41(a)を鏡面反射領域、図41(b)を拡散反射領域と分割してしまうため、前述のように遮蔽エッジ近傍に大きな誤差が生じてしまう。一方、本実施形態における領域分割方法では、偏光情報に加え、光源依存度を利用しているため、図41(c)を鏡面反射領域、図41(e)を拡散反射領域と分割する。そのため、従来法に比べ、正確な領域分割が可能である。
また、図42は、ステップS201において、第3の偏光画像から求めた偏光度ρ3を利用して比較を行うのではなく、第4の偏光画像から求めた偏光度ρ4を利用した結果を示している。この図において、図42(a)はステップS201において、第4の偏光画像に対する偏光度ρ4が閾値Thρ以上の画素を示している。また、図42(b)(c)(d)はそれぞれ、本実施形態の領域分割において分割された、拡散反射非偏光領域、鏡面反射偏光領域、拡散反射偏光領域を示している。また、図42(e)は拡散反射非偏光領域と拡散反射偏光領域の和集合を求めた、拡散反射領域を示している。図42において、白色画素がそれぞれ、分割された領域を示している。図41同様、いずれの入力画像を用いた場合であっても、本実施形態における領域分割方法では、偏光情報に加え、光源依存度を利用しているため、従来法に比べ、正確な領域分割が可能である。しかし、図41および図42において、背景領域ではデータが乱れている。これは、前述の通り、背景領域は非常に暗かったため、輝度分解能が低くなってしまったためである。そのため、偏光情報の信頼性が低くなり、データが乱れている。露光時間を長くするなどして、背景領域の輝度を上げることで、背景領域でも十分な精度の偏光情報を取得することができる。背景領域はマスク処理を行うことで、領域分割処理を行わないようにしても構わない。また、陰影領域に関しても領域分割に失敗している。これは、陰影に関しては、前述の通り、本実施形態の領域分割方法は陰影を考慮していないためである。
領域分割部106は、陰影領域を考慮した領域分割を行っても構わない。この場合、偏光情報、光源依存度情報に加え、画像の輝度情報を利用することが望ましい。図43は、この処理における領域分割部106の画像分割基準を示している。また、図44は陰影領域も領域分割する本実施形態に係る領域分割部106の処理の流れを示すフローチャートである。図44において、図17と共通のステップには図17と同一の符号を付しており、ここではその詳細な説明は省略する。この処理について詳述する。
領域分割部106は、まず、画素が陰影領域であるかどうかを推定するため、設定された閾値と輝度値を比較し、輝度値が閾値以下か否かを判定する(ステップS401)。これは、前述のように、陰影領域の輝度値が低いことを利用し、輝度値が閾値以下の画素を陰影領域と推定するものである。このように陰影領域を推定するための閾値は実験的に決定すればよく、例えば、16ビットモノクロ画像に対しては、256を設定すればよい。また、陰影領域を検出するための輝度値としては、偏光情報取得部104で取得した、偏光最大輝度値Imaxや偏光最小輝度値Imin、または偏光最大輝度値Imaxと偏光最小輝度値Iminの平均値や重み付け平均値(例えば、Imax+2・Imin)などを利用するようにしても構わない。特に、偏光最小輝度値Iminを利用した場合、輝度値が非常に高くなり、白とびが生じる可能性の高い鏡面反射成分の影響を小さくすることができるため、非常に有効である。また、平均値であるImax+Iminは、非偏光の光源下において、偏光子を設置しなかった場合に撮像される画像と等価の画像である。そのため、この平均値を利用して画像処理を行うことで、通常の偏光を利用しない場合と同様の処理を行うことができる。
画素の輝度値が閾値以下であった場合(ステップS401でYes)、画素は陰影領域であると判断し(ステップS402)、処理を終了する。一方、画素の輝度値が閾値以上であった場合(ステップS401でNo)、画素は陰影領域ではないと判断し、図17のステップS201へ進み、前述の領域分割処理を行う。
また、偏光情報を利用することで、陰影領域をさらにattached shadow領域とcast shadow領域に分割するようにしても構わない。この処理について詳述する。
まず、attached shadowとcast shadowについて説明する。図45はattached shadowとcast shadowという陰影の分類を説明するための模式図である。ここで、ある面605におかれた被写体604が、光源602に照らされている。この図において、606と607はどちらも陰影を示している。606は被写体604の法線が光源602を向いていないために生じるattached shadowである。また、607は605において、遮蔽物である被写体604によって光が遮蔽されることによって生じるcast shadowである。
次に、attached shadowとcast shadowの偏光特性の違いについて説明する。まず、地上で撮像されるほとんどの撮像シーンでは成り立つ、以下の条件3が満たされた撮像シーンにおいて、撮像が行なわれると想定する。
条件3:「被写体が存在する撮像シーンには、近傍に広い面を有する物体が存在し、ある広い面から被写体に関して反対方向には光源が存在する」
これは、例えば以下のような撮像シーンでは成り立つ。
1.屋内シーンにおいて、被写体であるボールが机の上に置かれている。また、このボールは天井に設置された蛍光灯で照らされている。
2.屋内シーンにおいて、被写体である人物が、床面に置かれた椅子に座っている。また、この人物は、窓から差し込んでくる太陽光で照らされている。
3.屋外シーンにおいて、被写体である自動車が、道路上を走行している。この被写体は、太陽光で照らされている。
また、壁や建物も広い面を有するため、地上で撮像されるほとんどの撮像シーンではこの条件が成り立つ。
この条件3が成り立つ場合に、まずattached shadowを考える。図45で示したように、attached shadowは被写体の法線が光源と反対方向を向いているために生じる陰影である。ここで、条件3より、光源と反対方向には広い面が存在していることと、陰影領域には実際には多数の回り込み光(多重反射光)が存在していることを考慮すると、attached shadowには、さまざまな方向から多重反射光が入射していると考えられる。つまり、カメラとattached shadowが生じている画素の法線に対して、正反射となる多重反射光が存在すると考えられる。図46はこの様子を示した模式図である。この図において、本実施形態に係る領域分割装置が搭載された撮像装置601が示されている。
被写体表面の反射特性は、前述のように、てかりである鏡面反射成分と、マットな反射成分である拡散反射成分の和として表現されることが知られている。拡散反射成分は、被写体に投光する光源がいずれの方向に存在しても観測されるが、鏡面反射成分は、被写体の法線方向と視線方向に対し、ほぼ正反射方向に光源が存在する場合にのみ観測される、方向依存性の強い成分である。これは、偏光特性に関しても成り立つ。
被写体がてかりである鏡面反射を生じる物体の場合、すべての方向から光が投光された場合、被写体は正反射成分である鏡面反射による影響を強く受けることが知られている(例えば、透明物体に関しては、斉藤めぐみ、佐藤洋一、池内克史、柏木寛、"ハイライトの偏光解析にもとづく透明物体の表面形状測定"、電子情報通信学会論文誌 D-II,Vol. J82-D-II,No.9,pp.1383-1390,1999)。そのため、attached shadowは鏡面反射の偏光特性を持つ。
鏡面反射成分と拡散反射成分の偏光度を示した、前述の図72、図73から、すべての方向から光が入射された場合、拡散反射成分に比べ鏡面反射成分の偏光度が高くなることがわかる。このことから、偏光特性としても鏡面反射成分が支配的になると推測される。
また、出射角が90°に近い、遮蔽エッジなどを除外した場合、図72、図73からわかるように、鏡面反射成分の偏光度は拡散反射成分に比べて高い。そのため、鏡面反射成分の反射特性を示すattached shadowは、相対的に偏光度が高くなる。
次に、cast shadowについて考える。図45で示したように、cast shadowは何らかの遮蔽物によって光が遮蔽されることによって生じる陰影である。ここで、条件3を考慮すると、cast shadowは、広い面と近い法線方向を持った面に生じやすくなる。そのため、多重反射光はattached shadowに比べて限られた方向からしか入射しない。このことから、正反射方向に光源が存在する可能性は低いと考えられる。図47はこの様子を示した模式図である。
さらに、図73で示したように、拡散反射成分の偏光度は相対的に低い。このことから、cast shadowの偏光成分は比較的小さくなることがわかる。陰影の領域では、輝度そのものが小さくなるため、小さな偏光成分を推定することは非常に困難である。そのため、cast shadowの偏光推定誤差は非常に大きくなる。
以上のことをまとめると、陰影領域の偏光特性は、以下のように分類される。
○attached shadow
・偏光度が高く、偏光推定誤差が小さい。
・多くの場合、鏡面反射特性を示す。
○cast shadow
・偏光度が低く、偏光推定誤差が大きい。
・多くの場合、拡散反射特性を示す。
この分類基準を利用することで、陰影をattached shadowとcast shadowに分割する。
図48は、この処理における領域分割部106の画像分割基準を示している。また、図49はattached shadowとcast shadowも含めた領域分割する本実施形態に係る領域分割部106の処理の流れを示すフローチャートである。図49において、図44と共通のステップには図44と同一の符号を付しており、ここではその詳細な説明は省略する。この処理について詳述する。
領域分割部106は、まず、画素が陰影領域であるかどうかを推定するため、設定された閾値と輝度値を比較し、輝度値が閾値以下か否かを判定する(ステップS401)。これは、前述のように、陰影領域は輝度値が低いことを利用し、輝度値が閾値以下の画素を陰影領域と推定するものである。画素の輝度値が閾値より大きかった場合、画素は陰影領域ではないと判断し(ステップS401でNo)、図17のステップS201へ進み、前述の領域分割処理を行う。一方、画素の輝度値が閾値以下であった場合、画素は陰影領域であると判断し(ステップS401でYes)、偏光情報取得部104で取得した偏光推定誤差Eが閾値Th_Errより大きいかどうかを判断する(ステップS403)。偏光推定誤差Eが閾値Th_Err以下であった場合(ステップS403でNo)、画素はattached shadowであると判断し(ステップS404)、処理を終了する。一方、偏光推定誤差Eが閾値Th_Errより大きかった場合(ステップS403でYes)、画素はcast shadowであると判断し(ステップS405)、処理を終了する。
このときの閾値Th_Errは撮像画像の輝度値や式1の振幅成分A、バイアス成分Cを基準に決定すればよい。例えば、振幅成分Aを基準に閾値Th_Errを決定する場合、以下のように決定すればよい。
この式は、偏光推定誤差Eが振幅成分Aに対してどの程度、異なっているかを示している。ここで、Th_Eは適当な正の定数であり、実験的に決定すればよく、例えば、0.3を設定すればよい。また、Nは前述のサンプル数である。
陰影をattached shadowとcast shadowに分割する基準は、偏光推定誤差情報に限ったものではなく、例えば、偏光度情報であっても構わない。この処理を詳述する。
図50は、この処理における領域分割部106の画像分割基準を示している。また、図51は陰影領域を領域分割する本実施形態に係る領域分割部106の処理の流れを示すフローチャートである。図51において、図49と共通のステップには図49と同一の符号を付しており、ここではその詳細な説明は省略する。この処理について詳述する。
領域分割部106は、前述の通り、画素が陰影領域であるかどうかを推定するため、設定された閾値と輝度値を比較し、輝度値が閾値以下か否かを判定する(ステップS401)。輝度が閾値を超えていた場合(ステップS401でNo)、図17のステップS201へ進み、前述の領域分割処理を行う。一方、輝度が閾値以下であった場合(ステップS401でYes)、画素は陰影領域であると判断し、偏光情報取得部104で取得した偏光度ρが閾値Thρ3より大きいかどうかを判断する(ステップS406)。偏光度ρが閾値Thρ3以上であった場合(ステップS406でNo)、画素はattached shadowであると判断し(ステップS404)、処理を終了する。一方、偏光推定誤差Eが閾値Thρ3より小さかった場合(ステップS406でYes)、画素はcast shadowであると判断し(ステップS405)、処理を終了する。
このとき、ステップS406における偏光度の閾値Thρ3はステップS203の閾値Thρと等しくすればよい。ステップS203とステップS406において、同一の閾値Thρを用いるのではなく、異なった閾値を利用するようにしても構わない。この場合、陰影領域では、輝度分解能が偏光成分に比べ、小さいと考えられるため、Thρ3の値をThρより小さくすることが望ましい。
以上のように、本発明の領域分割方法を利用することで、偏光情報と光源依存度を利用した領域分割を行うことができる。このような領域分割は、拡散反射成分の偏光も考慮にいれた鏡面反射成分と拡散反射成分の分割を行うこともできる。また、偏光情報と光源依存度に加え、輝度情報も利用した領域分割を行うことも可能である。このような領域分割は、陰影領域も考慮にいれた鏡面反射領域と拡散反射領域の分割、さらにはattached shadowやcast shadowの分割を行うこともできる。
(第3の実施形態)
図52は、本実施形態に係る領域分割システムにおけるブロック図を示している。図52において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明は省略する。
第1の実施形態との違いは、投光装置108と領域分割装置109を分離させ、領域分割装置109は撮像判定部107を有することである。また、図53は本実施形態に係る領域分割方法の処理の流れを示すフローチャートである。図53において、図2と共通のステップには図2と同一の符号を付しており、ここではその詳細な説明は省略する。さらに、図54は、本実施形態に係る領域分割装置が搭載されたカメラと投光装置の構成例を示している。図54において、図3と共通の構成要素には図3と同一の符号を付しており、ここではその詳細な説明は省略する。
本実施形態の領域分割システムは、投光装置108と領域分割装置109を有し、被写体を撮像することによって被写体の表面を光学的に領域分割を行う領域分割システムであって、投光装置108は、直線偏光光を前記被写体に投光する投光部101と、投光部101の直線偏光光の偏光状態を変化させる投光制御部102を有し、主軸方向の異なった偏光光を時系列的に被写体へ投光する。また、領域分割装置109は、偏光主軸角度が異なる3方向以上の偏光子を透過してくる光を受光することで、被写体の偏光画像を取得する偏光画像撮像部103と、偏光画像撮像部103によって過去に撮像された偏光画像と現在、撮像された偏光画像を比較し、撮像した偏光状態が十分に変化しているかどうかを判断する撮像判定部107と、取得された前記偏光画像から、当該偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する偏光情報取得部104と、投光制御部102によって投光部101の偏光状態が変化した際の、偏光情報取得部104で生成された偏光情報を比較することで、光源依存度情報を推定する光源依存度推定部105と、偏光情報取得部104によって生成された偏光情報と光源依存度推定部105によって推定された光源変動情報を利用して、領域分割を行う領域分割部106を備える。
次に、本実施形態の領域分割装置109について詳述する。
まず、ステップS102において、前述の通り、偏光画像撮像部103は、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第1の偏光画像を取得する。
ステップS103において、前述の通り、偏光情報取得部104は、撮像された前記第1の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。
ステップS105において、偏光画像撮像部103は、前述の通り、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第2の偏光画像を再度、撮像する。
ステップS501において、撮像判定部107は、前記第1の偏光画像と前記第2の偏光画像を比較し、撮像した偏光状態が十分に変化しているかどうかを判断する。これは、撮像した偏光画像の輝度値を比較すればよい。具体的には、撮像された第2の偏光画像と第1の偏光画像の差分画像を作成し、その差分値の最大値が閾値以上の場合、撮像した偏光状態が十分に変化していると判断すればよい。このときの閾値は、実験的に決定すればよく、例えば、16ビットモノクロ画像に対しては、1000を設定すればよい。
本実施形態の領域分割方法では、投光装置108と領域分割装置109は別構成となっており、投光装置108は領域分割装置109と同期が取られていない。そのため、領域分割装置109は、撮像した画像の偏光状態が変化しているかどうかを領域判定部107にて判断する。
撮像判定部107が、十分に偏光状態が変化していると判断した場合(ステップS501でYes)、ステップS106において、前述の通り、偏光情報取得部104は、撮像された前記第2の偏光画像を構成する単位画素のそれぞれについて、前記3方向以上の偏光子を透過した光の輝度との対応関係を用いて、受光した偏光に関する情報である偏光情報を生成する。一方、撮像判定部107が、十分に偏光状態が変化していないと判断した場合(ステップS501でNo)、領域分割装置109は再度、前述の通り、偏光情報を含んだ画像である第2の偏光画像を取得する。ステップS106以降の処理は第1の実施形態と同様なため、詳細な説明は省略する。
撮像した偏光状態が十分に変化しているかどうかを判断するために、偏光画像ではなく、偏光情報を取得するようにしても構わない。この場合、第2の偏光情報と第1の偏光情報の差分を作成し、その差分の最大値が閾値以上の場合、撮像した偏光状態が十分に変化していると判断すればよい。このときの閾値は、実験的に決定すればよく、例えば、偏光情報として偏光位相の差分を計算する場合、閾値は90度とすればよく、また、偏光情報として偏光度の差分を計算する場合、閾値は0.1とすればよい。
図55は本実施形態に係る領域分割方法の処理の流れを示すフローチャートである。図55において、図53と共通のステップには図53と同一の符号を付しており、ここではその詳細な説明は省略する。
本実施形態における領域分割システムは、投光装置108と領域分割装置109を分離させることにより、より小型の領域分割装置109を実現することが可能である。
投光装置108と領域分割装置109は同期処理を行ない、領域分割装置109は投光装置108からの同期信号により撮像を行うようにしても構わない。この処理について説明する。
図56は、本実施形態に係る画像処理システムにおけるブロック図を示している。図56において、図52と共通の構成要素には図52と同一の符号を付しており、ここではその詳細な説明は省略する。図52に示す構成との違いは、投光装置108、領域分割装置109ともに通信部110、111を有し、さらに、領域分割装置109には撮像判定部107が存在しない点である。図57は本実施形態における領域分割方法の処理の流れを示すフローチャートである。図57において、図2と共通のステップには図2と同一の符号を付しており、ここではその詳細な説明は省略する。図58は、本実施形態に係る領域分割装置が搭載されたカメラと投光装置の構成例を示している。図58において、図54と共通の構成要素には図54と同一の符号を付しており、ここではその詳細な説明は省略する。
前述のように、ステップS101によって投光部101は、投光制御部102によって指示された主軸方向に偏光した偏光光を投光する。その後、投光装置108は通信装置209によって、投光を知らせる信号を領域分割装置109へ送信する(ステップS502)。領域分割装置109は前記投光を知らせる信号を通信装置210で受信すると(ステップS503)、前述のように、偏光画像撮像部103は、パターン偏光子201を通して被写体を撮像素子で受光することで、偏光情報を含んだ画像である第1の偏光画像を取得する(ステップS102)。このとき、パターン偏光子は、前述するように3方向以上の偏光主軸角度をもつ。偏光情報取得部104は、前述の通り、受光した偏光に関する情報である偏光情報を生成し(ステップS103)、領域分割装置109は通信装置210によって、第1の偏光画像の撮像完了を知らせる信号を投光装置108へ送信する(ステップS504)。投光装置108は前記撮像完了を知らせる信号を通信装置209で受信すると(ステップS505)、前述のように投光制御部102は、前記第1の偏光画像を取得した際とは異なった偏光状態の偏光光を被写体へ投光するように、投光部101を制御する。そして、投光部101は、投光制御部102によって指示された主軸方向に偏光した偏光光を被写体へ再度、投光する(ステップS104)。その後、投光装置108は再度、通信装置209によって、投光を知らせる信号を領域分割装置109へ送信する(ステップS506)。領域分割装置109は前記投光を知らせる信号を通信装置210で受信すると(ステップS507)、前述のように、ステップS105〜S108によって、第2の偏光画像を取得し、最終的に領域分割を実施する。
投光装置108は投光制御部102を有するのではなく投光位置変化部112を有し、前述の通り、光源の位置を変化させるようにしても構わない。
本実施形態における領域分割システムは、投光装置108と領域分割装置109を分離させ、通信により投光と撮像の同期をとることにより、より小型の領域分割装置109でありながら、効率的な領域分割を実現することが可能である。
(領域分割を利用したモデルベースの画像合成)
本発明の領域分割は、デジタルアーカイブなどに使われているモデルベースの画像合成処理に特に有効である。モデルベースの画像合成は、撮像した画像の光源方向や視線方向を任意に変化させることができるため、撮像データのインタラクティブな提示方法として重要である。また、臨場感を与えるためにも非常に有効である。そのため、モデルベースの画像合成処理は、バーチャルミュージアムやAR(Augmented Reality)などの応用に利用できる。本来、このようなモデルベースの画像合成では撮像画像を鏡面反射成分と拡散反射成分に領域分離を行ない、それぞれの成分ごとに異なったモデルを利用してきたが、前述のように、鏡面反射成分と拡散反射成分の分離が不十分であったため、画質が劣化するという問題があった。この問題は、以下のことが原因である。それぞれのモデルにおけるパラメータ推定の際、実際とは異なった鏡面反射成分と拡散反射成分を利用しているため、実際とは異なるパラメータを推定してしまう。このように実際とは異なったパラメータを利用して画像を合成した場合、前述のように、視点変換画像や光源変化画像を作成した際に出力される画像に大きな誤差が生じてしまう。
本発明の領域分割方法を利用することで、画質劣化の少ない、モデルベースの画像合成を実現することができる。この手法を説明する。
まず、この処理の概念を説明する。本発明の画像合成処理は、パラメータ推定装置300と画像合成装置301からなる。以下の5つの入力情報を利用する。
○被写体の拡散反射画像
○被写体の鏡面反射画像
○被写体の3次元形状情報
○光源位置・色・照度
○合成画像における視点・光源情報
(パラメータ推定装置、画像合成装置の実施形態)
図59は本発明の一実施形態に係るパラメータ推定装置300と画像合成装置301の構成を示すブロック図である。
図59のパラメータ推定装置300は、撮像装置を利用し、撮像を行う画像撮像部302と、上述した領域分割方法によって画像を鏡面反射領域と拡散反射領域に分割する領域分割部303と、被写体に照射する光源の方向や位置、輝度、色、スペクトル情報などの光源情報を推定する光源情報推定部304と、被写体の表面の法線情報または3次元位置情報を形状情報として取得する形状情報取得部305と、撮像された被写体から、前記領域分割部303で分割された領域ごとに前記光源情報推定部で推定された光源情報と前記形状情報取得部で取得された形状情報をモデル化することで反射モデルパラメータを推定するパラメータ推定部306と、前記パラメータ推定部306において推定された反射パラメータを保持するパラメータDB(データベース)307とを備えている。
さらに、画像合成装置301は、合成する画像の視点や光源情報を取得する視点・光源情報取得部308と、パラメータDB307に保持されているモデルパラメータ情報を利用して、前記視点・光源情報取得部308で取得された視点や光源情報に則した画像を合成するレンダリング部309とを備えている。
まず、図60、図61を参照しながら、本実施形態におけるパラメータ推定方法の処理の流れを説明する。図60、図61は本実施形態に係る画像合成方法における、パラメータ推定方法と画像合成方法の処理の流れを示すフローチャートである。
図60のステップS601において、画像撮像部302は、前述の偏光画像撮像部103および偏光情報取得部104によって被写体を撮像し、偏光最大輝度値Imaxと偏光最小輝度値Iminの重み付け平均値Imax+2・Iminを取得する。ステップS602において、領域分割部303は、前述の領域分割方法により、画像撮像部302によって撮像された画像を、拡散反射領域と鏡面反射領域とに分割する。
ステップS603において、光源情報推定部304は、光源情報として、光源の方向、さらには色情報や照度情報を取得する。ステップS604において、形状情報取得部305は、被写体の形状情報である表面の法線情報または、被写体の3次元位置情報を取得する。
ステップS605において、パラメータ推定部306は、領域分割部303によって分割された拡散反射画像と鏡面反射画像に対して、前記光源情報推定部で推定された光源情報と前記形状情報取得部で取得された形状情報を利用することで、それぞれの反射パラメータを、別々の方法で推定する。ステップS606において、パラメータDB307は、パラメータ推定部306で求まった拡散反射成分の反射パラメータと鏡面反射成分の反射パラメータ、および形状情報取得部305で取得した形状情報をモデルパラメータとして保持する。
次に、図61を参照しながら、画像合成推定方法の処理の流れについて説明する。
まず、ステップS607において、レンダリング部309は、前記パラメータDB307に保持されているモデルパラメータ情報を呼び出す。ステップS608において、視点・光源情報取得部308は、合成する画像の視点や光源の方向、さらには色情報や照度情報を取得する。ステップS609において、レンダリング部309は、前記パラメータDB307に保持されているモデルパラメータ情報を利用して、前記視点・光源情報取得部308で取得された視点や光源情報に則した画像を合成する。
図62は、本実施形態に係る画像合成装置が搭載されたカメラの構成例を示している。
図59に示されている領域分割部303、光源情報推定部304、形状情報取得部305、パラメータ推定部306およびレンダリング部309は、図61のCPU204がプログラムを実行することによって実現されるものとする。ただし、これらの機能の全部または一部を、ハードウエアによって実現してもかまわない。
図59の視点・光源情報取得部308は図61のユーザインターフェイス部212によって実行される。メモリ203は画像撮像部302によって撮像された偏光画像と、領域分割部303によって取得された鏡面反射成分および拡散反射成分画像、光源情報推定部によって推定された光源情報、形状情報取得部305によって取得された形状情報、パラメータ推定部306によって推定された反射パラメータ情報、および、視点・光源情報取得部で取得された視点・光源情報をモデルパラメータとして格納する。
以下、それぞれの処理について説明する。
まず、図59のパラメータ推定装置300について説明する。
画像撮像部302はCCDやCMOSなどの撮像装置を利用して、被写体を撮像する。こうして撮像された画像は、輝度が非常に高くなる鏡面反射成分と拡散反射成分とが同時に、飽和することなく、十分な輝度分解能で記録されることが望ましい。このため、冷却CCDカメラや多重露光撮像など、広いダイナミックレンジを撮像できる撮像装置を利用することが望ましい。このような画像撮像部は、前述の、偏光情報取得部104によって取得された偏光最大輝度値Imaxと偏光最小輝度値Iminの重み付け平均値Imax+2・Iminであっても構わない。特に、重み付け平均値であるImax+2・Iminは、直線偏光光源下において、偏光子を設置しなかった場合に撮像される画像と等価の画像である。そのため、この重み付け平均値を利用して画像処理を行うことで、通常の偏光を利用しない場合と同様の処理を行うことができる。
図59の領域分割部303は、前述の領域分割方法により、画像撮像部302によって撮像された画像を、拡散反射領域と鏡面反射領域とに分割する。
光源情報推定部304は、光源情報として、光源の方向、さらには色情報や照度情報を取得する。これは例えば、被写体近傍に光源情報を推定するための形状既知の鏡面などを配置し、画像撮像部302によって撮像したその鏡面の画像から推定すればよい(例えば、「神原誠之、横矢直和、"光源環境の実時間推定による光学的整合性を考慮したビジョンベース拡張現実感"、電子情報通信学会技術研究報告、パターン認識・メディア理解、PRMU2002-190,pp. 7-12,2003」)。この処理について詳述する。
光源情報推定部304の処理は、図63に示した鏡面とみなせる球401を利用して行う。鏡面球401を被写体近傍に設置し、その位置や法線方向は既知とする。この鏡面球401を画像撮像部302によって撮像する。このとき、鏡面球401には、撮像環境が映り込んでいる。映り込みが生じる位置は、その鏡面球上の法線方向に対して、視線方向と映り込む対象への方向が正反射の関係となる位置である。そのため、鏡面球の位置とその法線方向が既知であれば、鏡面上の映り込んだ画像から映り込み対象の方向を検出できる。また、光源は輝度値が高いことを考慮すると、撮像された鏡面球の画像から、高輝度の画素を検出することにより、光源の方向を取得できる。さらに、鏡面の反射率が既知であれば、光源の色情報や放射輝度などの光源照度情報も取得できる。
光源情報として、光源の方向だけではなく、あるいは光源の方向に代えて、光源の位置情報を取得するようにしても構わない。これは、例えば前述の鏡面球を2つ利用したり、または撮像装置の位置を変化させて撮像した複数の画像を使用して、画像処理分野で広く知られているステレオ画像処理の技術を利用すればよい。
このような鏡面球を常に撮像するのではなく、以前に撮像して求めた光源情報を使うようにしても構わない。これは、屋内の監視カメラのように光源環境が変わらない場合に有効である。このような場合、カメラを設置した際に鏡面球を撮像し、光源情報を取得するようにすればよい。
光源情報推定部304は、鏡面とみなせる球401のような参照物体を利用するのではなく、被写体を利用して光源方向を推定するようにしても構わない。この方法を説明する。まず、被写体を撮像した画像領域において、最も輝度値の高い画素を選択する。後述するように、形状情報取得部305によって、被写体の形状情報である表面の法線情報は推定されているため、最も輝度値の高い画素の法線方向は既知である。ここで、最も輝度値の高い画素は、正反射方向の光源が映りこんでいると仮定すると、前述の参照物体を利用する方法と同様に、法線方向から光源の方向を取得できる。
また、撮像装置601に、照度計211を設置することにより、光源情報として入射照度を測定するようにしても構わない。入射照度情報の利用方法については後述する。
形状情報取得部305は、被写体の形状情報である表面の法線情報または、被写体の3次元位置情報を取得する。被写体の形状情報を取得する手段としては、例えば、スリット光投影法、パターン光投影法、レーザレーダ法などの既存の手法を用いればよい。
形状情報の取得はこれらの手法に限られるものでない。例えば、複数のカメラを利用するステレオ視、カメラの動きを利用するモーションステレオ法、光源の位置を変化させながら撮像した画像を利用する照度差ステレオ法、ミリ波や超音波を利用して被写体との距離を測定する方法、さらには反射光の偏光特性を利用した方法(例えば、USP5,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点以上の反射率が等しい点を既知情報として取得し、拘束条件として利用することによって、光源の位置情報も未知としながらも、以下のパラメータを推定する手法である。
・被写体情報:画像上の各点の法線方向と反射率
・光源情報:被写体の観察点における光源方向と照度
ここでは、前述の拡散反射・鏡面反射分離手法によって分離された拡散反射画像のみを利用した照度差ステレオ法を行う。本来、この手法は被写体が完全拡散反射をしていることを仮定しているため、鏡面反射が存在する被写体では大きな誤差が生じてしまう。しかし、分割した拡散反射領域のみを利用することで、鏡面反射成分の存在による推定誤差を無くすことができる。
光源方向が異なる拡散反射画像を以下のように輝度行列I
dで表現する。
ただし、i
df(p)は光源方向fの拡散反射画像の画素pにおける輝度値を示している。また、画像の画素数はP画素、異なった光源方向で撮像した画像枚数はF枚である。ところで、Lambertianモデルより、拡散反射画像の輝度値は以下のように表現できる。
ただし、ρdpは画素pの反射率(アルベド)、npは画素pの法線方向ベクトル、tfは光源fの入射照度、Lfは光源fの方向ベクトルを示している。
ここで、Rは表面反射行列、Nは表面法線行列、Lは光源方向行列、Tは光源強度行列、Sは表面行列、Mは光源行列と呼ぶ。
特異値分解を利用すると、式17は以下のように展開できる。
ただし、
であり、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’の直交基底、すなわち、ノイズ成分であると考えられる。ここで、特異値分解を利用すると、式19は以下のように変形できる。
すなわち、式20を解くことにより、形状情報と光源情報を同時に取得することができるが、以下の3×3行列Aの不定性が残る。
ここで、Aは任意の3×3行列である。形状情報と光源情報を取得するためには、この行列Aを求める必要がある。これは、例えば、画面上の6点以上で反射率が等しいことが既知であればよい。例えば、任意の6点k1〜k6の反射率が等しいとすると、
式18、式21および式23より、
さらに、
とおくと、式24は以下のようになる。
ここで、式25より行列Bは対称行列であるため、行列Bの未知数は6である。すなわち、画面上の6点以上で反射率が等しいことが既知であれば、式26は解くことができる。
また、行列Bが既知となれば、式25に特異値分解を利用することにより、行列Aは解くことができる。さらに、式21および式22より、形状情報と光源情報を取得する。
以上のことより、反射率が等しい6点以上の画素が既知な被写体において、光源方向を変更しながら3枚以上の画像を取得することにより、以下の情報を得ることができる。
・被写体情報:画像上の各点の法線方向ベクトルと反射率
・光源情報:被写体の観察点における光源方向ベクトルと放射輝度
ただし、上記の処理で求まる被写体の反射率と光源の放射輝度は相対的なものであり、絶対値を求めるためには、画面上の6点以上で反射率が既知であるなど、上記とは異なる既知情報が必要となる。
以上のように、照度差ステレオ法と偏光特性を利用した方法では、表面の法線情報を取得する。一方、スリット光投影法やステレオ視などの手法では、被写体の3次元位置情報を取得する。被写体表面の法線情報とは、被写体の3次元位置情報の微小空間での傾き情報であり、どちらも被写体の形状情報である。
以上の処理により、形状情報取得部305は被写体の形状情報である表面の法線情報または、被写体の3次元位置情報を取得する。
以上の処理により、以下の情報を取得する。
○被写体の拡散反射画像
○被写体の鏡面反射画像
○被写体の3次元形状情報
○光源位置・照度
次に、パラメータ推定部306は、領域分割部303によって分割された拡散反射成分と鏡面反射成分に対して、それぞれの反射パラメータを、別々の方法で推定する。まず、拡散反射成分の処理について説明する。
パラメータ推定部306は、領域分割部303によって分割された拡散反射領域を利用し、被写体のアルベドを推定する。アルベドは光源情報に影響を受けないため、アルベド画像を利用して処理を行うことによって、光源変動にロバストな処理が実現できる。
この処理を説明する。まず、物体の反射特性について説明する。2色性反射モデルを仮定すると、物体の輝度は、拡散反射成分と鏡面反射成分との和として以下の式で表現される。
ここで、Iは撮像装置が撮像した被写体の輝度値、Iaは環境光成分、Idは拡散反射成分、Isは鏡面反射成分である。ここで、環境光成分とは、光源の光が物体などによって散乱された間接光のことである。これは空間の至る所に散乱され、直接光がとどかない影の部分にもわずかに明るさを与える。そのため、通常はノイズとして取り扱われることが多い。
環境光成分は十分に小さく、ノイズとして無視できると考えると、画像は拡散反射成分と鏡面反射成分とに分離できる。
式16より、拡散反射成分では、以下の関係が成り立つ。
ただし、θiは被写体の法線方向ベクトルと光源方向ベクトルのなす角度を示す。ここで、光源情報推定部304および形状情報取得部305により、角度θiは既知である。また、後述するように、光源の入射照度tfも推定可能なため、被写体のアルベドρdpは式28から求められる。
被写体のアルベドを求めるのではなく、次式によりアルベドに光源の放射輝度を乗算した擬似アルベドを求め、これを利用しても構わない。
次に、鏡面反射成分の反射パラメータ推定について説明する。パラメータ推定部306は、形状情報取得部305によって取得された被写体の法線情報、領域分割部303によって分離された拡散反射画像と鏡面反射画像を利用して、その被写体を表現するパラメータを推定する。ここでは、Computer−Graphicsの分野で広く使われているCook−Torranceモデルを利用する方法を説明する。
Cook−Torranceモデルでは、鏡面反射画像を次式のようにモデル化する。
ここで、Eiは入射照度、ρs,λは波長λにおける鏡面反射成分の双方向反射率、nは被写体の法線方向ベクトル、Vは視線ベクトル、Lは光源方向ベクトル、Hは視線ベクトルと照明方向ベクトルの中間ベクトル、βは中間ベクトルHと法線方向ベクトルnの角度を表す(図64参照)。また、Fλはフレネル方程式から求められる誘電体表面からの反射光の比であるフレネル係数、Dはマイクロファセット分布関数、Gは物体表面の凸凹による遮光の影響を表す幾何減衰率である。さらに、nλは被写体の屈折率、mは被写体表面の粗さを示す係数、Ijは入射光の放射輝度である。また、ksは鏡面反射成分の係数である。
さらに、式16のLambertianモデルを利用すると、式27は以下のように展開される。
ただし、
ここで、ρ
dは拡散反射成分の反射率(アルベド)、dpx、dpyは撮像装置の1画素のx方向、y方向の長さ、rは撮像装置の観察点Oからの距離を示している。また、k
dは以下の関係式を満たす係数である。
Srは拡散反射成分と鏡面反射成分の輝度値の違いを表現するための定数であり、拡散反射成分が被写体からすべての方向へエネルギーを反射することを示している。図65はこの定数Srを説明するための模式図である。図65において、観察点Oで反射された拡散反射成分エネルギーは、半球状に広がっていく。ここで、撮像装置601が観察点Oからrだけ離れているので、撮像装置の1撮像素子に届くエネルギーと、観察点Oで反射した総エネルギーの比Srは、式40で表される。
以上のことから、パラメータ推定部306は、式29〜式40より、鏡面反射成分の反射パラメータを推定する。
以上の関係式をまとめると、パラメータ推定を行うための既知パラメータと、推定すべきパラメータは以下のようになる。
(既知パラメータ)
○環境光成分Ia
○拡散反射成分Id
○鏡面反射成分Is
○被写体の法線方向ベクトルn
○光源方向ベクトルL
○視線ベクトルV
○中間ベクトルH
○中間ベクトルHと法線方向ベクトルnの角度β
○撮像装置601の1画素のx方向、y方向の長さdpx, dpy
○撮像装置601と観察点Oとの距離r
(推定すべきパラメータ)
○入射照度Ei
○鏡面反射成分の係数ks
○被写体表面の粗さm
○被写体の屈折率ηλ
ここで、拡散反射成分の係数kd、および拡散反射成分の反射率(アルベド)ρdも未知パラメータであるが、鏡面反射成分のパラメータのみを推定するため、ここでは推定処理を行なわない。
図66はパラメータ推定部306の処理の流れを示す図である。処理は、以下の2段階からなる。
まず、光源情報を使用して、入射照度E
iを求める(ステップS701)。ここでは、光源情報推定部304によって取得した光源の位置情報、形状情報取得部305で求めた撮像装置と被写体との距離情報、さらには光源情報取得部304で求めた光源照度を用いる。これは、次式から求まる。
撮像装置601には前述のように、照度計211が設置されているとする。ここで、Iiは照度計211によって測定された光源602の入射照度、R1は撮像装置601と光源602との距離、R2は光源602と観察点Oとの距離、θ1は観察点Oにおける法線方向ベクトルnと光源方向ベクトルLCとのなす角度、θ2は撮像装置601における光軸方向と光源方向ベクトルLAとのなす角度を示している(図67参照)。ここで、被写体の大きさが、光源602と観察点Oとの距離R2に比べ十分に小さいと考えられる場合、距離R2は被写体上の全ての観察点Oで等しくなる。そのため、式42において、(R1/R2)は定数となり、実際に計測する必要はなくなる。またθ1は既知である。これは、形状情報取得部によって観察点Oにおける法線方向ベクトルnが既知であり、光源情報推定部304によって光源方向ベクトルLCが既知であるためである。さらにθ2は、光源情報推定部304によって光源の位置が推定されている場合、既知である。そのため、式42の右辺はすべて既知となる。
次に、シンプレックス法を利用して、未知パラメータm、ηλ、k
sを推定する(ステップS702)。シンプレックス法は、シンプレックスと呼ぶ図形の頂点に変数を割り付け、シンプレックスの大きさと形を変えて関数の最適化を行う方法である(大田登、“色再現光学の基礎”、pp.90-92,コロナ社)。シンプレックスは、n次元空間の(n+1)個の点の集合である。ただし、nは推定する未知数の数であり、ここでは「3」である。そのため、シンプレックスは四面体である。シンプレックスの頂点をベクトルx
iで表し、新しいベクトルを次のように定める。
ただし、
は、それぞれ関数f(x
i)を最大、最小にするx
iを示している。
さらに、この方法で用いる3種類の操作を以下のように定める。
1.鏡像:
2.拡張:
3.収縮:
ここで、α(>0)、β(>1)、γ(1>γ>0)は係数である。
シンプレックス法は、シンプレックスの頂点の中で関数値の最も大きなものを選ぶことで、その鏡像における関数値は小さくなるという期待に基づいている。この期待が正しければ、同じプロセスの繰り返しで関数の最小値が求められる。つまり、初期値で与えたパラメータを3種類の操作で更新しながら、評価関数が示すターゲットとの誤差が閾値未満になるまでパラメータの更新を繰り返す。ここでは、パラメータとしてm、ηλ、k
s、評価関数として式48で表される、式29から算出される鏡面反射成分画像と領域分割部303で求められた鏡面反射成分画像との差ΔI
sを利用した。
ただし、is(i,j)’, is(i,j)はそれぞれ、計算された鏡面反射画像の推定値Is’と領域分割部303で求められた鏡面反射成分画像Isの画素(i,j)の輝度値、Ms(i,j)は、画素(i,j)が鏡面反射成分を持つ場合に1、そうでない場合0をとる関数である。
この処理について詳しく説明する。図68はこの処理の流れを説明するためのフローチャートである。
まず、繰り返し演算の更新回数を記憶するカウンターnとkに0を代入し、初期化する(ステップS711)。ここで、カウンターnは初期値を何回変更したかを記憶するカウンターであり、kはある初期値に対してシンプレックスによる候補パラメータの更新を何回行ったかを記憶するカウンターである。
次に、乱数を利用し、推定パラメータの候補パラメータm’、ηλ’、k
s’の初期値を決定する(ステップS712)。このとき、各パラメータの物理的な拘束条件から、初期値の発生範囲は以下のように決定した。
次に、こうして求めた候補パラメータを式29へ代入し、鏡面反射画像の推定値Is’を求める(ステップS713)。さらに、計算された鏡面反射画像の推定値Is’と領域分割部303で求められた鏡面反射成分画像との差ΔIsを式48より求め、これをシンプレックス法の評価関数とする(ステップS714)。こうして求めたΔIsが十分小さい場合(ステップS715でYes)、パラメータ推定は成功したとして、推定パラメータm、ηλ、ksとして候補パラメータm’、ηλ’、ks’を選択し、処理を終了する。一方、ΔIsが大きい場合(ステップS715でNo)、シンプレックス法により候補パラメータの更新を行う。
候補パラメータの更新を行う前に、更新回数の評価を行う。まず、更新回数を記憶しているカウンターkに1を足し(ステップS716)、カウンターkの大きさを判断する(ステップS717)。カウンターkが十分に大きい場合(ステップS717でNo)、繰り返し演算は十分に行なわれているが、ローカルミニマムに落ちているため、このまま更新を繰り返しても最適値には達しないと判断し、初期値を変更して、ローカルミニマムからの脱却を図る。そのため、カウンターnに1を足し、カウンターkに0を入れる(ステップS721)。ここで、カウンターnの値が閾値より高いかどうかを判定し、処理をこのまま続けるか、処理不能として処理を終了させるかを決定する(ステップS722)。ここで、nが閾値より大きい場合(ステップS722でNo)、この画像は推定不能として処理を終了する。一方、nが閾値より小さい場合(ステップS722でYes)、再度、初期値を式49の範囲内で乱数から選択しなおし(ステップS712)、処理を繰り返す。このようなkに対する閾値は、例えば、100などを選択すればよい。
一方、ステップS717において、カウンターkが閾値以下の場合(ステップS717でYes)、候補パラメータを式45〜式47を利用して変更する(ステップS718)。この処理については後述する。
次に、こうして変形された候補パラメータが、解として意味のあるものであるかを判定する(ステップS719)。すなわち、シンプレックス法を繰り返すことで、変形されたパラメータが物理的に意味のない値(例えば、粗さパラメータmが負の値など)におちいる可能性があるため、これを除去する。これは、例えば、以下のような条件を与え、この条件を満たす場合には意味のあるパラメータ、満たさない場合には意味のないパラメータと判定すればよい。
これらの値は、被写体より求めることができる。例えば、屈折率ηλであれば、被写体の材質によって決定される値である。例えば、プラスチックであれば1.5〜1.7、ガラスであれば1.5〜1.9であることが知られているため、これらの値を利用すればよい。つまり、被写体がプラスチックである場合、屈折率ηλは1.5〜1.7とすればよい。
変形したパラメータが式50を満たす場合(ステップS719でYes)、その候補パラメータは意味のある値であると考えられるため、新しい候補パラメータとして設定し(ステップS720)、更新処理を繰り返す(ステップS713)。一方、変形したパラメータが式50を満たさない場合(ステップS719でNo)、その初期値に対する更新処理を打ち切り、新しい初期値により更新を行う(ステップS721)。
ここで、ステップS718の変形処理について詳述する。図69はこの処理の流れを示したフローチャートである。ここでは、候補パラメータm’、ηλ’、k
s’をベクトル表現し、これをパラメータxとする。すなわち、
まず、式43、式44および式45を利用して、鏡像操作を行ったパラメータxrを計算し、式48によってxrでの鏡面反射成分画像との差ΔIs(xr)を計算する(ステップS731)。次に、こうして求められたΔIs(xr)と、2番目に評価関数が悪かったΔIs(xs)を比較する(ステップS732)。ここでΔIs(xr)がΔIs(xs)より小さかった場合(ステップS732でYes)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値のよいΔIs(xl)を比較する(ステップS733)。ここで、ΔIs(xr)がΔIs(xl)以上であった場合(ステップS733でNo)、最も評価値の低かったxhをxrへ変更し(ステップS734)、処理を終了する。
一方、ΔIs(xr)がΔIs(xl)より小さかった場合(ステップS733でYes)、式46を利用して拡張処理を行ない、パラメータxeと、xeでの鏡面反射成分画像との差ΔIs(xe)を計算する(ステップS735)。次に、こうして求められたΔIs(xe)と、鏡像操作によるΔIs(xr)を比較する(ステップS736)。ここでΔIs(xe)がΔIs(xr)より小さかった場合(ステップS736でYes)、最も評価値の悪かったxhをxeへ変更し(ステップS737)、処理を終了する。
一方、ΔIs(xe)がΔIs(xr) 以上であった場合(ステップS736でNo)、最も評価値の悪かったxhをxrへ変更し(ステップS734)、処理を終了する。
また、ステップS732において、ΔIs(xr)がΔIs(xs)より大きかった場合(ステップS732でNo)、鏡像操作を行った評価値ΔIs(xr)と現在、最も評価値の悪いΔIs(xh)を比較する(ステップS738)。ここでΔIs(xr)がΔIs(xh)より小さかった場合(ステップS738でYes)、最も評価値の悪かったxhをxrへ変更し(ステップS739)、式46を利用して、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS740)。一方、ΔIs(xr)がΔIs(xh)以上であった場合(ステップS738でNo)、xhを変更することなく、収縮操作を行ったパラメータxcと、xcでの鏡面反射成分画像との差ΔIs(xc)を計算する(ステップS740)。
次に、こうして求められたΔIs(xc)と、最も評価値の悪いΔIs(xh)を比較する(ステップS741)。ここでΔIs(xc)がΔIs(xh)より小さかった場合(ステップS741でYes)、最も評価値の悪かったxhをxcへ変更し(ステップS742)、処理を終了する。
一方、ΔI
s(x
c)がΔI
s(x
h) 以上であった場合(ステップS741でNo)、すべての候補パラメータx
i(i=1,2,3,4)を以下の式により変更し、処理を終了する。
以上の処理を繰り返すことにより、鏡面反射画像における未知パラメータであるm、ηλ、ksを推定する。
以上の処理により、すべての未知パラメータを推定することができる。
図70は、図75(a)の領域Cに関して、横軸に中間ベクトルβ、縦軸に鏡面反射成分の輝度値Isをグラフ化したものである。この図において、白色○は領域Cに関して観測された輝度値Isをプロットしたものである。また、黒色■はCook−Torranceモデルの各パラメータを推定し、プロットしたものである。
なお、前述したように、図75(b)は、従来の領域分割手法を利用したグラフである。図76は、従来の領域分割手法を利用して作成した合成画像を示している。このように、パラメータ推定に失敗した場合、合成画像の質感が実物とは大きくかけ離れたものとなってしまう。
これらの図より、従来の領域分割手法では、鏡面反射成分と拡散反射成分の分離精度が低いため、反射パラメータ推定に失敗していることがわかる。そのため、合成された画像は、図76に示すように実際の画像とは大きく質感が異なるものとなってしまう。一方、本特許における領域分割手法では、このような問題が生じていない。
パラメータ推定に用いるモデルは、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といった既知パラメータが変動したサンプルを取得するようにすることが望ましい。また、処理を領域ごとに行う場合、領域ごとに求まったパラメータのばらつきが小さくなるように領域分割を変更することで、最適なパラメータ推定を行うようにすることが望ましい。
パラメータDB307は、パラメータ推定部306で求まった拡散反射成分の反射パラメータと鏡面反射成分の反射パラメータ、および形状情報取得部305で取得した形状情報をモデルパラメータとして保持する。図71は、パラメータDB307に保持されているモデルパラメータを示す模式図である。
以上の処理により、パラメータ推定装置300は拡散反射成分のパラメータと鏡面反射成分のパラメータを推定し、推定したパラメータ情報をパラメータDB307へ保持する。
次に、画像合成装置301について説明する。
視点・光源情報取得部308は、合成する画像の視点や光源情報を取得する。これは、ユーザが視点位置や光源位置・光源照度、さらに環境光成分情報を入力するようにすればよい。また、拡張現実感のような、実世界にCG画像をレンダリングするような場合、前記光源情報推定部304を利用して光源情報を推定するようにしても構わない。
レンダリング部309は、前記パラメータDB307に保持されているモデルパラメータ情報を利用して、前記視点・光源情報取得部308で取得された視点や光源情報に則した画像を合成する。レンダリング部309は、拡散反射成分と鏡面反射成分、それぞれ別々にレンダリングを行ない、レンダリングされた拡散反射成分、鏡面反射成分および環境光成分情報を合成することにより、画像を合成する。
まず、拡散反射成分に関して説明する。前述のように、アルベド画像は、拡散成分画像を光源ベクトルと被写体の法線方向ベクトルの内積で除算したものである。そのため、パラメータDBに保持されているアルベド画像(パラメータ推定部306で推定)および形状情報(形状情報取得部305で取得)に、視点・光源情報取得部308によって取得された光源方向ベクトル情報を利用することにより、拡散反射成分を合成することができる。具体的には、視点・光源情報取得部308によって取得された光源方向ベクトルと被写体の法線方向ベクトルとの内積を求め、さらにアルベド画像を乗算することによって、拡散成分画像を合成する。視点・光源情報取得部308により、複数の光源が入力された場合、それぞれの光源に対して拡散反射成分画像をおのおの合成し、その画像を足し合わせることで、一枚の拡散反射成分画像を合成する。
次に、鏡面反射成分に関して説明する。鏡面反射成分は、パラメータDBに保持されている鏡面反射パラメータ(パラメータ推定部306で推定)および形状情報(形状情報取得部305で取得)に、視点・光源情報取得部308によって取得された光源方向ベクトル情報を利用することにより、合成することができる。具体的には、式29〜式37に推定されたパラメータを代入することによって、鏡面反射成分画像を合成する。
こうして求めた拡散反射成分画像、鏡面反射成分画像および視点・光源情報取得部308において取得した環境光成分情報を合成することにより、レンダリング部309は、前記視点・光源情報取得部308で取得された視点や光源情報に則した画像を合成する。
以上のように、本発明の領域分割方法を利用することによって、デジタルアーカイブなどに使われているモデルベースの画像合成を高精度に行うことができる。