図1は、一実施形態に係る光源推定装置の機能ブロック図である。光源推定装置10は、撮像部1、認識部2、補正部3、推定部4及び記憶部5を備え、推定部4はさらに環境光推定部41及び近接光源推定部42を備え、記憶部5はさらに特徴情報記憶部51及び外観情報記憶部52を備える。
光源推定装置10では、撮像画像より、その表面における法線分布(表面形状に従って定まる当該表面上の各点における法線分布)を有する所定の認識対象を認識したうえで、当該撮像画像における当該認識対象に対する光源情報を出力することができる。
図2は、光源推定装置10で解析することで光源情報を出力することのできる認識対象の模式的な一例を[1]〜[3]と分けて説明するための図である。図2では[1]に示されるように、実世界における地面等の平面PL上に一例としての認識対象OBが形成されている。矢印DE、DW、DS、DNはそれぞれ、認識対象OBを基準とした平面PL上における方位としてそれぞれ、東方向、西方向、南方向、北方向を意味するものであり、以降の説明において参照する。
図2の[1]に示すカメラCによって、平面PLの鉛直方向(矢印DVで示されている)から認識対象OBを撮影した状態が、[2]に示されている。[2]に示す認識対象OBは、横10マス×縦10マスの「碁盤の目」として並ぶ100個の正方形のそれぞれに対角線が描かれることで、一つの正方形につき4個の三角形が形成され合計で400個の三角形が描かれているが、当該三角形の領域ごとに認識対象OBの法線の向きが分布していることを表している。すなわち、認識対象OBの表面形状は、正面から見た場合にその稜線(面同士の境界線)が[2]のような配置をなしている幾何学的形状である。そして、100個のうちの任意の正方形の1つOBPを[1]と同様の斜視図の形式で拡大したものは[3]に示すように、扁平な四角錘OBPとなっており、東方向DEを向く三角形側面SEと、西方向DWを向く三角形側面SWと、南方向DSを向く三角形側面SSと、北方向DNを向く三角形側面SNと、を有しており、従って、当該各側面SE、SW、SS、SNごとに対応する法線が存在する。
このように、光源推定装置10が対象として扱う認識対象OBは、図2の[1]のようにある程度マクロの観点からは概ね平面状であるが、[3]のようにある程度ミクロの観点からは当該平面からの形状変化として立体を形成しており、[2]のように正面から見た場合に当該立体形状を反映した表面形状に即して定まる法線マップを定義できるという性質を有するものである。
その詳細は以下に説明する通りであるが、当該推定を可能とするメカニズムは概ね次の通りである。すなわち、図2に示すような表面形状の反映としての法線マップを有する認識対象に光源(後述する近接光源)が照射されている場合、当該光源の向きに応じてカメラCから見た場合に強く照射される面と弱く照射される面との区別が生じること(例えば図2の例でカメラCから見ているものとし、南側DSから光源の照射がある場合に、南側の面SSは強く照射されるのと比べて北側の面SNは弱くしか照射されないこと)を利用して、光源の向き等を推定することができる。
なお、より正確には、光源の向き等の推定を可能とする照射の強弱の区別は、カメラ及び光源の位置及び向きとの関係における、面の向き(法線方向)のみならず面の位置(当該法線の位置)にも依存する。すなわち、照射の強弱の区別は、カメラ及び光源の位置及び向きとの関係における、図2の[2]に例示するような法線マップそのものに依存する。
また、図2の例は認識対象の「形状」のみを説明するための例である。実際の認識対象は当該「形状」という属性の他にも、「模様」等の属性をも有し、後述する記憶部5に当該属性に基づく情報が記憶されるものである。
以下、図1の各部の説明を行う。図3は、当該各部の処理内容を説明するための模式的な例を示す図であり、以下の説明において適宜、参照する。
撮像部1は、認識対象を撮像して、その撮像画像を認識部2および補正部3へと出力する。撮像部1を実現するハードウェアとしては通常のデジタルカメラを用いることができる。
図3の例では、[1]には図2の[1]と同様の地面等の平面PLに認識対象OBが形成されており、撮像部1を実現するハードウェアとしてのカメラCが平面PLの鉛直方向DVからやや西寄りの方向DCで認識対象OBを撮像している。以下にその詳細を説明するように、光源推定装置10によれば、認識対象OBに対して照射を行っている近接光源NLの当該照射している方向DL及びその強度や、認識対象OBに対して方向に依存しない一様な照射を実現している環境光の光源ELの強度などを推定することができる。例えば方向DLは平面PLの鉛直方向DVからやや南寄りの方向であるが、こういった光源に関する情報を推定することができる。
図3の例ではさらに、[2]に[1]に示す西寄り方向DCで撮像して得た撮像画像Pの例が示されている。当該撮像画像P内には、認識対象OBが正面から傾いた方向DCで撮影されることで正方形形状(図2の[2]に示すように正面から見た場合の正方形形状)から歪んだ形状となった領域Rとして撮影されている。
記憶部5では、特徴情報記憶部51において各認識対象i(i=1,2,…,n;整数iは認識対象の識別子とする)の特徴情報F(i)を記憶し、外観情報記憶部52において各認識対象i(i=1,2,…n)の外観情報AP(i)を記憶し、当該記憶されている特徴情報及び外観情報はそれぞれ認識部2及び推定部4が処理を行う際に必要となる情報として出力される。
なお、上記より明らかなように、記憶部5の全体において各認識対象iの特徴情報F(i)及び外観情報AP(i)を、周知のテーブル形式等の形で記憶しておけばよいことに注意されたい。特徴情報記憶部51及び外観情報記憶部52の区別は、各認識対象iにつき当該記憶される情報の利用のなされ方をより明確にするための便宜上の区別である。
特徴情報記憶部51が記憶し認識部2へと出力される特徴情報としては、認識対象iの参照画像RP(i)から抽出される局所画像特徴量を利用することができる。具体的には、周知のSIFT特徴量又はSURF特徴量等のような、回転及び拡大縮小あるいは射影変化(射影変換による歪み) のいずれか又はその任意の組み合わせに対して不変な性質を有し、画像の局所領域における相対的な輝度勾配に基づいて算出される局所特徴量を用いることができる。あるいは同性質を有する周知のORB特徴量等を用いてもよい。例えば、SIFT 特徴量は以下の非特許文献2に、SURF特徴量は以下の非特許文献3に、ORB特徴量は以下の非特許文献4に、それぞれ開示されている。
[非特許文献2]「D.G.Lowe, Distinctive image features from scale-invariant key points, Proc. of Int. Journal of Computer Vision (IJCV), 60(2) pp.91-110 (2004)」
[非特許文献3]「H.Bay, T.Tuytelaars, and L.V.Gool, SURF: Speed Up Robust Features, Proc. of Int. Conf. of ECCV, (2006)」
[非特許文献4]「Ethan Rublee, Vincent Rabaud, Kurt Konolige, Gary R. Bradski: ORB: An efficient alternative to SIFT or SURF. ICCV 2011: 2564-2571.」
また、特徴情報記憶部51が当該記憶する特徴情報においては、認識対象iの参照画像RP(i)の局所画像特徴量にさらに、当該局所画像特徴量の抽出された特徴点の座標の情報も対応づけておく。
外観情報記憶部52が記憶し推定部4へと出力される外観情報は、テクスチャ等で構成されている認識対象の参照画像と、当該参照画像を撮像した際の光源情報と、当該参照画像の認識対象における法線マップと、を対応付けた情報として構成される。すなわち、個別の認識対象i(i=1,2,…,n)ごとにそれぞれ、参照画像RP(i)、光源情報L(i)及び法線マップN(i)が対応づけられた情報が認識対象のiの外観情報AP(i)である。
ここで、図2を参照して説明したように、法線マップN(i)は参照画像RP(i)の各画素位置(x,y)に対して定義される法線方向のマップとして与えることができる。また、法線マップN(i)における法線方向は、参照画像RP(i)の画像の各画素位置(x,y)を含む平面に対してさらに垂直方向にz軸を取った座標系(x,y,z)において与えることができる。すなわち、図2で説明したように認識対象OBといったようなそれぞれ認識対象iは概ね平面に乗る形状を有しており、当該平面を(x,y)平面(図2の平面PL)としてその垂直方向にz軸を取った座標系(x,y,z)において法線方向を与えることで法線マップN(i)を与えることができる。例えば、水平面の法線方向は(0,0,1)として与えることができる。
また、後述する推定手法の一実施形態においては、認識対象iの反射率マップRF(i)もさらに対応付けて、外観情報AP(i)が構成される。反射マップRF(i)も、法線マップN(i)と同様に参照画像RP(i)の各画素位置(x,y)に対して定義される反射率の値のマップとして与えることができる。
記憶部5にその特徴情報及び外観情報を記憶する認識対象は、図2で説明したような平面状で特徴情報及び外観情報を定義可能な任意のものとすることができる。例えば図4の[A]に示すように、竹細工の表面の所定の一部分の領域を認識対象とすることができる。当該竹細工においては、構成要素としての竹ヒゴ自体がテクスチャ状の表面形状を有しており、当該竹ヒゴがさらに交互に編まれることでさらなる表面形状を形成し、当該表面形状に即した竹細工表面の法線マップが構成される。図4の[B]には当該[A]に示す参照画像としての認識対象に対して、外観情報において定義されている法線マップを可視化して表現したものとして、(x,y,z)の値に(R,G,B)を割り当てたカラー画像が示されている(当該示す例では便宜上、カラー表示がグレースケールに変換されたものが示されている)。
具体的な認識対象としては図2や図4の例の他にも、絨毯、畳、エンボス加工されたもの、硬貨、タイルその他の表面上の凹凸や傾きを有する加工が施された路面や建造物の壁面といったように、任意の対象における平面状領域の全部または一部を管理者の手によって設定して、記憶部5にその特徴情報及び外観情報を記憶しておくことができる。
光源推定装置10の各部の説明に戻り、認識部2は、第一処理として撮像部1から入力される撮像画像Pから特徴情報F(P)を抽出する処理を行う。当該抽出する特徴情報は、特徴情報記憶部51に記憶されている特徴情報と同種のものである。例えば、特徴情報記憶部51にSIFT特徴量が記憶されている場合、認識部2は撮像画像からSIFT特徴量を抽出する。
認識部2はまた、第二処理として、上記抽出された撮像画像Pの特徴情報F(P)が、特徴情報記憶部51に記憶されている各認識対象iの特徴情報F(i)のいずれに該当するかの照合処理を行うことで、撮像画像Pに撮像されている認識対象が予め記憶されている認識対象i(i=1,2,…,n)のいずれであるかを特定する。
以上の第一処理及び第二処理は、非特許文献2〜4その他に開示の既存手法により可能である。例えば第二処理に関しては、特徴情報をベクトル量としてベクトル間の距離で一致度を判定する等が可能である。また、第一処理においては撮像画像Pからは認識対象以外の対象やノイズに起因する特徴情報も含めて特徴情報F(P)が抽出されうるので、第二処理においては周知のロバスト推定などを適用して照合処理を行うようにしてよい。
認識部2はさらに、第三処理として、第二処理で特定された認識対象(認識対象jとする)の、撮像画像Pにおけるカメラ(撮像部1)に対する相対的な位置姿勢を認識する。
第三処理における相対的な位置姿勢の認識も、非特許文献1その他において「幾何(学)的整合性」を得るのに用いられている既存手法で可能である。すなわち、AR分野における標準的なマーカである正方マーカを認識した後、その四隅の画像上の座標と、当該正方マーカを基準配置として正面から撮影した際の画像上の座標(基準座標)と、を互いに変換する平面射影変換行列を求めることで、正方マーカの位置姿勢を当該平面射影変換行列の形で求めることができる。第三処理も当該手法と同様にして、特定された認識対象jとカメラとの相対的な位置姿勢を推定することができる。
図3の例では、[1]に示すような認識対象OBとカメラCとの相対的な位置姿勢において撮像がなされることで、[2]に示すような撮像画像Pが得られている。第一処理及び第二処理によって撮像画像Pの領域Rが、[4]に示す記憶部5に記憶された認識対象jの参照画像RP(j)に対応するものであることが特定される。さらに、第三処理によって領域Rの特徴情報における特徴点座標と参照画像RP(j)の特徴情報における特徴点座標との変換関係が平面射影変換行列の形で求められることにより、図3の[1]に示すようなカメラCと認識対象OB(認識対象jとして特定済み)との相対的な位置姿勢が求まる。
図5の[2],[4]は、図3の同番号を付した[2],[4]にそれぞれ対応する例として、第二処理で特徴情報における特徴点座標の対応付けの模式的な例を示す図である。すなわち、撮像画像Pにおいては第一処理で局所特徴量を算出可能な特徴点p1,p2,p3,p4が抽出され、第二処理でこれらが記憶部5に特徴情報が記憶されている認識対象jにおける特徴点rp1,rp2,rp3,rp4の局所特徴量に対応するものであることが特定され、特徴点p1〜p4と特徴点rp1〜rp4との対応付けが得られる。第三処理では当該対応する特徴点座標同士の平面射影変換行列を求めることで相対的な位置姿勢が認識される。
なお、図5では4個の特徴点同士の対応付けを例として示しており、周知のように平面射影変換行列の算出には最低4個の点対応が必要であるが、4個よりも多い特徴点対応から平面射影変換行列を求めるようにしてもよい。特徴情報記憶部51に各認識対象iの特徴情報F(i)を記憶させる際も、4個以上の所定の特徴点を記憶させればよい。
認識部2では、以上の第一〜第三処理を行い、第二処理で得られた認識対象jである旨の認識結果と第三処理で得られた相対的な位置姿勢とを補正部3へと出力する。
補正部3では、上記のように認識部2から得られた認識対象jである旨の認識結果とその撮像画像Pにおける位置姿勢とに基づき、撮像部1から出力された撮像画像Pにおける認識対象jの領域R(j)に対して当該位置姿勢に対応する平面射影変換行列を適用することで、記憶部5に記憶されている認識対象jの参照画像RP(j)が撮像された際と同じ見え方に補正された補正領域CR(j)を得て、推定部4へと出力する。
図3の例では、[2]に示す撮像画像Pの領域R(j)に平面射影変換行列が適用されることで、[3]に示す補正領域CR(j)が得られている。当該得られた[3]に示す補正領域CR(j)は、[4]に示す認識対象jの参照画像RP(j)と同様の見え方(例えば所定距離だけ離れて正面から見えている)となっている。従って、補正領域CR(j)と参照画像RP(j)とは、同一形状(図3の例では正方形)となっている。
なお、以上の説明や図3の例では便宜上、撮像画像Pにおいて認識対象jが認識されることでその領域R(j)が識別されるものとしてが、より正確には次の通りである。すなわち、撮像画像Pの全体に位置姿勢に対応する平面射影変換行列を適用することで参照画像RP(j)と共通の(x,y)座標系に変換することで、当該参照画像RP(j)の占める領域と同様の領域として、平面射影変換された撮像画像P内の領域が補正領域CR(j)として識別されるようになる。(当該識別された補正領域CR(j)に対応する、平面射影変換行列を適用する前の撮像画像Pの領域を逆に求めることで、領域R(j)が定まる。)
推定部4では、図3の[3]と[4]との間に双方向矢印を示すように、補正部で得られた補正領域CR(j)と、これに対応するものとして外観情報記憶部52より読み込んだ認識対象jの外観情報AP(j)(参照画像RP(j)を含む)と、を対比することにより、撮像画像Pにおいて認識対象jに反映されている光源情報を推定する。
図3の[3](及び[2])の例では、補正領域CR(j)はその上側部分が、[1]に示す近接光源NLの照射光の影響でより輝度が高くなったものとして、白みがかったように描かれている。また補正領域CR(j)の全体も、[1]に示す光源ELによる環境光の影響によって、より輝度が高く白みがかったものとして描かれている。このように、撮像画像Pから以上の各処理で得られた補正領域CR(j)は、参照画像RP(j)が当該撮像した際とは異なる光源環境下にあることが反映されたものとなっており、且つ、補正部3において補正することで各画素位置(x,y)がそのまま、参照画像RP(j)の画素位置(x,y)と対応するものとなっている。従って、推定部4ではこのように画素単位で互いに対応している補正領域CR(j)と参照画像RP(j)とを対比することで、光源情報の推定が可能となる。
なお、対応する画素同士の対比については、領域内の全画素で行うようにしてもよいし、所定割合でサンプリングするなどして一部の画素で対比するようにしてもよい。
図6は、一実施形態に係る推定部4による光源情報の推定のフローチャートである。ステップS1では、環境光推定部41が光源情報の一部としての環境光の情報を、補正領域CR(j)の各画素の値の、参照画像RP(j)の対応する各画素の値からの変位量として推定してから、ステップS2に進む。ステップS2では、近接光源推定部42が、光源情報の一部としての近接光の情報を推定し、当該フローは終了する。一実施形態では、ステップS1にて求めた環境光の情報を用いてステップS2の近接光の情報を推定することができる。
まず、当該推定処理において用いるモデルとして次の通りの、コンピュータグラフィックスの分野でレンダリングに用いられている既存のモデルを利用する。すなわち、撮像画像(及び参照画像)における輝度分布(すなわち、画素値分布)を、認識対象の表面の各点で反射してカメラに到達した環境光源による環境光及び近接光源による近接光の双方の光量の和とする。さらに、近接光源の反射モデルとして既存のランバート(Lambert)モデルを用いることとすると、画像(撮像画像及び参照画像の両方)の各位置(x,y)(すなわち、認識対象の表面の各位置)での画素値I(x,y)は以下の式(1)で表現される。
ここで、Ia、Idはそれぞれ環境光の光源及び近接光源の強度であり、従ってこれら各強度は画素位置(x,y)には依存しない値である。Ra(x,y)及びRd(x,y)は認識対象jの環境光及び近接光源における反射率であり、N(x,y)は認識対象jの表面位置(x,y)における法線ベクトルであり、外観情報記憶部52の外観情報AP(j)を構成する反射率マップR(j)及び法線マップN(j)においてそれぞれ、その値が与えられている。L(x,y)は、認識対象jの位置(x,y)から近接光源へと向かう光源方向ベクトルである。法線ベクトルN(x,y)と光源方向ベクトルL(x,y)との間にある「・」は当該両ベクトルの内積演算であり、ランバートモデルにおけるいわゆる余弦則を表している。
ここで、当該式(1)のモデルに即して推定部4が光源情報を推定するに際して、I(x,y)は補正領域CR(j)及び参照画像RP(j)のそれぞれにおける画素値として既知である。上記の通り、反射率Ra(x,y)及びRd(x,y)と法線ベクトルN(x,y)ともそれぞれ、外観情報AP(j)を構成する反射率マップR(j)及び法線マップN(j)として既知である。従って、未知量として推定される対象となるのは、各光源の強度Ia、Idと近接光源の光源方向ベクトルL(x,y)とである。
また、上記の式(1)のモデルに従い、外観情報記憶部52には各認識対象jの参照画像RP(j)を、所定強度Ia0の環境光及び強度ゼロの近接光源(すなわち近接光源が存在しない状態)のもとで撮影したものとして用意しておき、保存しておくものとする。すなわち、外観情報AP(j)を参照することで参照画像RP(j)の各位置の画素値I0(x,y)に関して以下の式(2)の関係が既知であるものとする。
I0(x,y)=Ia0Ra(x,y) …(2)
以上のモデルに従い、推定部4において未知情報としての環境光及び近接光源を推定するに際して、それぞれの影響が顕著に表れる領域の既知情報を利用する、というアプローチを取ることができる。
具体的にはまず、環境光推定部41では、近接光源の影響が少ない領域で補正領域CR(j)の各画素値I(x,y)に関してI(x,y)=Ia*Ra(x,y)と近似できる(上記式(2)と同じ式に近似できる)ため、当該影響の少ない領域Rnにおいて、補正領域CR(j)と外観情報とを比較し、変位量を当該領域内の画素値の変位量の平均として算出する。
第一実施形態として、変位量を画素値の差として算出する場合は、式(2)のように外観情報I0(x,y)を取得する際の環境光がIa0であるものとし、下記の式(3)で環境光Iaを推定する。|Rn|は平均を計算するための分母としての、領域Rnに属する画素の個数である。
すなわち、上記式(3)のように、補正領域CR(j)の環境光Iaは、補正領域CR(j)の画素値I(x,y)から参照画像RP(j)の対応する画素値I0(x,y)を減算したものを反射率Ra(x,y)で割った値の、領域Rnにおける平均を求め、外観情報生成時の環境光Ia0を加算することで推定することができる。
あるいは、第二実施形態として、変位量を比として算出する場合は、次式(4)で環境光を推定することができる。
すなわち、上記式(4)のように、補正領域CR(j)の環境光Iaは、補正領域CR(j)の画素値I(x,y)と参照画像RP(j)の対応する画素値I0(x,y)との比の、領域Rnにおける平均を、外観情報生成時の環境光Ia0(定数として外観情報AP(j)に含めておく)乗算することで推定することができる。環境光の強度Ia0は、定数として外観情報AP(j)に含まれ外観情報記憶部52に記憶されている。式(4)では幾何平均として求めているが調和平均として求めてもよい。なお、当該第二実施形態では、認識対象jの反射率Ra(x,y)を省略してよいという効果が得られる。
以上の第一、第二実施形態において、近接光源の影響が少ない領域Rnは、補正領域CR(j)又は参照画像RP(j)の少なくともいずれか一方において、輝度値の上限または下限に達している領域から少なくとも一定範囲だけ離れた領域として設定すればよい。なお、参照画像RP(j)は当該上限又は下限に達する領域が生じないように用意しておき、外観情報記憶部52に記憶しておくのが好ましい。また、式(3),(4)では当該領域Rnの平均値を求めて加算又は積算するものとしたが、その他の統計的な代表値、例えば中央値としてもよい。
次に、近接光源推定部42を説明する。以下、近接光源推定部42において光源方向(及び状況によっては光源位置)を推定することと、当該推定された光源方向に基づいて近接光源の強度を推定することと、をこの順番で説明する。
式(1)に示される通り、近接光源の反射光は光源方向ベクトルL(x,y)と法線ベクトルとN(x,y)の内積L(x,y)・N(x,y)と、光源強度Idと、反射率Rd(x,y)との積で表される。近接光源推定部42では、近接光源の方向L(x,y)を、カメラ中心から近接光源の影響が大きい領域Reにある画素(x,y)へと向かう視線方向F(x,y)と、当該画素位置(x,y)の法線情報N(x,y)とから、当該画素位置(x,y)を基準とした光源方向L(x,y)を次式(5)で求めることができる。
図7は、上記の式(5)が導出される根拠としての、光源方向L(x,y)、視線方向F(x,y)、法線方向N(x,y)の方向の関係を示す図である。図7ではカメラ中心LCから点(x,y)に向かうベクトルとして視線方向F(x,y)が(x,y)をそれぞれ終点及び始点として2つ描かれており、点(x,y)から近接光源の位置LLへと向かうベクトルとして光源方向L(x,y)が描かれており、また、点(x,y)における法線ベクトルN(x,y)が描かれている。当該図7に示す関係において、近接光源LL(点光源)からカメラ中心LCへと点(x,y)で反射して到達する光線に関して、法線ベクトルN(x,y)を境として周知の反射の法則(入射角と反射角と等しい)が成立することから、各ベクトルL(x,y),F(x,y),N(x,y)はその方向にのみ意味を有し、これらの絶対値は等しい(例えば1)という制約を与えることで、上記(5)が導出される。
式(5)を適用する対象画素位置(x,y)が属する、近接光源の影響が大きい領域Reについては、補正領域CR(j)において輝度の上限に達している領域Rlや、閾値判定で変位量が大きいと判定される領域Rdとして定めることができる。当該変位量に関しては、前述の環境光推定部41において求めたのと同種の、補正領域CR(j)の画素値I(x,y)から参照画像RP(j)の画素値I0(x,y)を引いたもの、またはこれらの比として、各位置(x,y)において求めることができる。以降、当該領域Rl又は領域Rdの両方又は片方として定めることのできる、近接光源の影響が大きい領域Reを、ハイライト領域Reと称する。
なお、ハイライト領域Reは、法線方向が概ね一致する互いに連続した領域としてそれぞれ定まることが想定されるが、法線方向が概ね一致している部分であるにも関わらず、ノイズ等で当該領域内の突発的な欠損部分が発生する場合もありうる。周知の欠損補間技術で当該突発的な欠損領域を補間したものとしてハイライト領域Reを定めるようにしてもよい。
また、式(5)において、視線方向F(x,y)は、認識部2の第三処理で位置姿勢を推定した際に、参照画像RP(j)の画像座標(x,y)を基準としてさらに当該画像平面に垂直な方向にz軸を取ることで得られる、参照画像RP(j)を基準とした空間座標(x,y,z)においてカメラ中心の位置LCが既知となっているので、当該カメラ中心位置LCから式(5)の点(x,y,0)へと至る方向として定めることができる。
以上、近接光源推定部42においては、式(5)により近接光源の方向L(x,y)を推定可能である。さらに、近接光源が複数存在する場合においても、それぞれに対応したハイライト領域Reが存在するため、当該領域ごとに式(5)を適用することで、それぞれの光源方向を推定できる。
さらに、撮像画像Pが撮像された際の状況によっては、同一の近接光源が複数のハイライト領域Reとして顕在化する場合もある。このような場合に、当該顕在化している旨を自動判定して適用可能な実施形態として、近接光源推定部42では、式(5)のように単に光源方向L(x,y)だけを推定するのではなく、複数のハイライト領域Reからそれぞれ得られる光源方向の交点を求めることで、近接光源の3次元座標を推定するようにしてもよい。
なお、当該実施形態においては、ハイライト領域Reが複数求まり、そのうちの一部又は全部における光源方向に交点が存在すると判定された場合に初めて、同一の近接光源によって顕在化した複数のハイライト領域Reが存在していた旨の判定を得ると共に、当該同一の近接光源の3次元座標を推定することができる。
図8は、当該近接光源の位置が複数の光源方向の一致によって推定可能となる模式的な例を示す図である。図8では、説明の簡素化のために光の進行の例を2次元断面上に限定して行うものとし、図2,3と同様に認識対象jが配置される平面PLが2次元断面として直線で描かれており、認識対象jの当該断面上に現れている、各々において法線方向を有した表面s1〜s13(それぞれ直線をなし曲率がゼロである表面)が描かれている。図8では、単一の近接光源の光源位置LLに対して、カメラ中心LCから見た場合に、当該単一の近接光源によって表面s2,s7,s12の3か所がハイライト領域として顕在化する場合が例として示されている。すなわち、表面s2,s7,s12における法線n2,n7,n12を境として反射の法則に従って点pr2,pr7,pr12においてそれぞれ光線が反射することで、近接光源LLからカメラ中心LCへと直接光線が到達する関係がある。このような場合に逆に、表面s2,s7,s12からの光源方向の一致点を探ることで、近接光源LLの位置を推定できることは明らかであり、近接光源推定部42では当該推定を行うことができる。
なお、図8の例では理想的な場合として、光源方向の直線同士が完全に一点として得られる場合を説明した。しかしながら現実には様々な誤差が存在するため、このように完全に一点で交わることはないものと考えられる。そこで、近接光源推定部42において、2つの光源方向に交点が存在するか否かは、当該光源方向の定める直線の最短距離が予め設定した閾値TH以内に収まるか否かで判定すればよい。3つ以上の光源方向に交点が存在するか否かは、当該3つ以上の中から選んだ全ての2つの光源方向の組み合わせにおいて直線間の最短距離が当該閾値TH以内に収まるか否かで判定すればよい。当該閾値判定によって2つ以上の光源方向に交点が存在すると判定された場合、近接光源の位置は、当該2つ以上の光源方向が定める各直線への距離の総和が最小となる位置等の、所定位置として決定すればよい。
また、近接光源推定部42において近接光源の方向(及び位置)を推定する際は、図8の例のように、カメラ位置LCから見た場合にハイライト領域Reで反射した後の直線を考える必要があり、当該直線を定めるにはハイライト領域Re内の各点(x,y)で定めてもよいし、いずれかの代表点(x,y)を通るものだけを定めるようにしてもよい。当該通る代表点は、ハイライト領域Re内の所定点、例えば重心などとして設定することができる。(なお、各ハイライト領域Re内の各点(x,y)で反射後の直線を定める場合も、法線方向が概ね同じで互いに近接している点において互いに求まる反射後の直線は、概ね同じ方向であることが想定される。また、各ハイライト領域Re内では法線方向はほぼ同じことが想定される。従って、一つのハイライト領域Re内において概ね同じ方向L(x,y)が求まる場合は、その平均値を当該ハイライト領域Reに対応する光源方向として定めるようにしてもよい。)
以上、近接光源推定部42では近接光源の方向と、状況によっては位置とを推定することができる。近接光源推定部42ではさらに一実施形態において、当該推定された方向L(x,y)を用いて、対応するハイライト領域Reの周辺Rsにおいて、以下の式(6)により当該方向L(x,y)における近接光源の強度Idを推定することができる。
式(6)において、周辺Rsについてはハイライト領域Reの少なくとも一つの点から所定距離内にある等の、所定規則でハイライト領域Reに対応するものとして定めればよい。|Rs|は当該周辺Rsに属する画素の数である。また、環境光の強度Iaは、前述の環境光推定部41で求めたものを用いることができるが、別途の手法で取得されたものを用いてもよい。なお、式(6)より明らかなように、式(6)では式(1)のモデルの領域Rsでの平均として近接光源の強度Idを推定している。すなわち、式(1)のモデルに従い輝度のうち環境光の影響IaRa(x,y)を減算して除外し、式(1)において強度Iaに積算される係数であるRd(x,y)(N(x,y)・L(x,y))で割ったたものを領域Rsで平均することで環境光の強度Iaを推定するのが式(6)である。
上記の式(6)とは別の一実施形態として、近接光源推定部42では次のように近接光源の強度Idを推定してもよい。すなわち、近接光源の強度Idを、ハイライト領域Re内にある画素の有する法線方向と類似する法線方向を持つ周辺領域Rneの面積(すなわち領域Rneの画素数|Rne|)と、同領域Rne内で所定の閾値以上の変位量を持つ領域Rthの面積(すなわち領域Rthの画素数|Rth|)との比|Rth|/|Rne|として求める。当該比によって求める「考え方」はすなわち、閾値以上の変位量を持つ領域の大きさに近接光源の強度Idが比例するというものである。法線方向の類似はベクトル差の絶対値に対する閾値判定等で求めればよい。
各位置(x,y)での変位量については、前述の式(3),(4)と同様に差「{I(x,y)-I0(x,y)}/Ra(x,y)」又は比「I(x,y)/I0(x,y)」として求めればよい。当該一実施形態において近接光源推定部42ではさらに、近接光源の色を同変位量の平均値として求めることもできる。すなわち、RGB等の色空間における各強度ごとに同変位量を求めてその平均として近接光源の色を推定することができる。
当該一実施形態は、前述の式(6)の実施形態とは異なり、認識対象jの反射率Rd(x,y)を外観情報記憶部52に記憶しておかなくとも実施可能という効果がある。また、式(6)の実施形態とは異なり、「環境光推定部41」で別途に求めておく環境光の強度が不要であるという効果もある。
なお、以上のような近接光源推定部52では、式(1)で環境光と近接光源との影響だけをモデル化していたのに加えさらに、図8の説明例などからも明らかなように、鏡面反射の影響を考慮している。鏡面反射についても例えば、コンピュータグラフィックスの分野でレンダリングに用いられている既存の鏡面反射モデルであるフォン(Phong)モデルによりその強度Ir(x,y)を以下の式(7)のように表すことができる。
Ir(x,y)=r(θ1(x,y))Idcosn(θ2(x,y)) …(7)
ここで、θ1(x,y)は近接光源から点(x,y)への入射角(又は同値の反射角)であり、θ2(x,y)は視点方向F(x,y)と反射の法則に従う反射光とがなす角度であり、nは鏡面反射の強度を表すパラメータである。
以上のような近接光源推定部52の各実施形態においては、上記式(7)のような種々のパラメータ等を必要とするモデルを用いることなく、輝度の上限等で簡素に判定可能なハイライト領域Reから光源方向L(x,y)を推定し、その周辺領域Rneを鏡面反射の影響が消失した領域として例えば式(1)のモデルを適用することで、近接光源の強度Idを推定している。
以上、本発明によれば球面鏡といったような特殊な設備を必要とすることなく、また、複数のカメラも必要とすることなく単一のカメラのみから得られた撮像画像を対象として、携帯端末その他の一般的なコンピュータによって処理可能な手法により、光源情報を推定することができる。以下、本発明における補足的事項を説明する。
(1)各認識対象jに対する外観情報AP(j)の設定について
外観情報AP(j)のうち、特に法線マップN(j)については、必ずしも厳密に認識対象jの表面形状に対応するものではなく、様々に変動することが想定されるカメラ位置姿勢及び光源状態に応じて認識対象jの見え方が変わることを反映したものとして、管理者等が設定しておくことができる。
例えば図9の[1]に例示するような、表面形状として表面s20〜s26を有する認識対象があったとする。図9では、図8の説明例と同様に、表面s20〜s26を認識対象の2次元的な断面として描いている。表面形状を完全に表現した厳密な法線マップは当該s20〜s26のそれぞれで定義する必要がある。しかしながら本発明においては、参照画像RP(j)と対応する形での法線マップN(j)を定義しておけばよい。すなわち、図9の[1]の表面s22,s23,s24の部分は細くて深い鉛直方向の溝を構成しているが、このような鉛直方向を向いている表面s22,s24について法線マップを定義する必要はなく、[2]に示すように当該溝部分を水平面s30として定義しておけばよい。さらに、細く深い溝であることから画像上ではほぼ黒色に見えることとなるので、当該面s30の反射率を低く設定しておけばよい。参照画像RP(j)においては当該表面s30は概ね黒色の領域として現れることとなる。
(2)各認識対象jが概ね平面状の領域として構成されていることについて
本発明における各認識対象jは、その表面形状が所定基準で平面をフィッティング可能なものとして、概ね平面状の領域をなすものを設定することができる。例えば認識対象の表面領域から所定の空間サンプリングレートで当該表面上の各点位置(xi,yi,zi)(i=1,2,…N)を抽出し、当該一連の点に最小二乗法で平面をフィッティングした際の誤差が所定閾値内に収まるものを認識対象jとして設定することができる。また、認識対象の表面領域が所定サイズの直方体(扁平なタイル状の直方体)の内部に収まるものを認識対象jとして設定することもできる。
本発明においては、上記のように概ね平面状でその表面に法線マップを有するものを認識対象とするので、日常空間等に存在する様々なものが認識対象としてそのまま設定可能であり、拡張現実等を実現する際に特別なマーカー等を必ずしも必要とせず、自由度が高いという効果がある。
(3)認識対象を立体に拡張することについて
例えば、図10の[1]に示すような地面から突出した3つの三角形面領域SP1,SP2,SP3を有する三角錐を認識対象とすることを考える。各面SP1,SP2,SP3の形状は必ずしも完全な平面である必要はなく、それぞれの法線マップを有するものとする。この場合、以上説明した平面状の認識対象を設定する実施形態では、各領域SP1,SP2,SP3はそれぞれ別個の認識対象jとして設定することができる。別の一実施形態として、各面領域SP1,SP2,SP3が[1]のような三角錐をなすという立体的な位置関係をあることも考慮して、当該三角錐の全体を一つの認識対象jとして設定することもできる。
当該立体を認識対象として設定する実施形態では、当該立体を構成する各面SP1,SP2,SP3についてそれぞれ、平面領域を対象とする実施形態における外観情報AP1,AP2,AP3を設定しておき、さらに、各面SP1,SP2,SP3が共通の認識対象jの各面である旨の情報と、各面SP1,SP2,SP3当該認識対象j(三角錐)における立体的な位置関係も立体情報として、外観情報に追加して設定しておけばよい。光源推定装置10の各部の処理については以下のような追加処理を実施すればよい。
認識部2においては、立体を構成する各面SP1,SP2,SP3のそれぞれの特徴情報により各面を個別に認識するようにし、第二処理において各面SP1,SP2,SP3のうち2個以上が認識された場合、第三処理で位置姿勢を表現するものとして平面射影変換行列を求める際の誤差(周知の行列計算における誤差)が最小となるものを基準として、立体としての認識対象の位置姿勢を推定する。そして、誤差が最小ではないものの認識された他の面も、当該推定された位置姿勢における空間座標(x,y,z)を基準として、外観情報に含まれる立体情報を参照してその位置を把握する。
補正部3においては、認識された立体の各面SP1,SP2,SP3をそれぞれ正面(各面の参照画像の向き)となるよう補正する。従って例えば、図10の[2]に示すような「展開図」のような情報が補正部3において取得されることとなる。
推定部4においては、上記の認識部2で把握された各面SP1,SP2,SP3の空間的な配置関係を考慮して、認識された全ての面を一体のものとして、以上の実施形態と同様に光源情報を推定する。従って例えば、法線方向N(x,y)や光源方向L(x,y)等は、当該把握された空間配置においてN(x,y,z),L(x,y,z)として拡張して定義されることとなる。例えば、面SP1が認識部2において最小誤差と判定され空間座標(x,y,z)を定める基準となった場合、面SP1上に現れる法線方向及び光源方向はN(x,y,0),L(x,y,0)という、基準となる(x,y)平面上にあり垂直方向zが0のものとなるが、その他の例えば面SP2上に現れる法線方向及び光源方向は一般にN(x,y,z),L(x,y,z)のように基準となる(x,y)平面上から外れるものとなる。また、法線方向及び光源方向のベクトルの値も、当初面SP2を水平面として定義されていた値から、面SP1が水平面であり面SP2は傾いている旨を反映して、修正された値を用いるようにすることとなる。
ただし、以上のように基準となる面SP1に対して傾いた面SP2においてベクトル方向は空間配置を考慮する必要があるが、式(2)〜(4)のような計算を実施する場合は、図10の[2]のように傾いた面SP2も展開図において正面にあるものとみなして、すなわち、共通の2次元マップ上の点(x,y)であるものとみなして、計算を行えばよい。
(4)認識対象jにおける位置姿勢認識機能と光源情報認識機能の分離について
以上の説明では各認識対象jから特徴情報が抽出可能であり、当該特徴情報によってそのカメラに対する位置姿勢が認識され、当該特徴情報を抽出されたのと同様の領域を対象として光源情報が推定されるものとしたが、これらは以下のように、対応付けたうえで分離してもよい。
すなわち、認識対象jにおいては例えばAR分野において周知の正方マーカ(黒枠)部分を当該認識対象jを特定しその位置姿勢を認識するための領域として設け、当該領域とは別途の領域、例えば当該黒枠としての正方マーカの内部や、当該黒枠を基準としてその位置姿勢が定まる平面状の所定領域を光源情報を推定するための、法線マップN(j)その他が定義された基準画像RP(j)に対応する領域として設けるようにしてもよい。これらの関係は記憶部5に記憶させておけばよい。従って、位置姿勢を推定するのに、必ずしも局所画像特徴量を用いるようにせず、例えば領域の2値化で正方マーカの歪んだ形状及び向きを決定したうえで、以上と同様の平面射影変換行列としての位置姿勢推定を実施してもよい。
(5)色空間について
以上説明した推定部4の各実施形態の強度計算は、画像がRGB等の所定の色空間で構成されている場合には当該色空間の各成分ごとに実施することができる。また、その他の任意の所定の色空間において各成分またはいずれかの成分において実施することもできる。また、グレースケール画像に変換して当該単一成分において実施することもできる。
(6)重畳処理について
以上の光源推定装置10による推定結果を用いて、撮像画像Pに所定の仮想物体等を光源情報を反映して重畳処理を行うことができる。図11は当該重畳処理を実現する重畳装置20の機能ブロック図であり、図1で説明した光源推定装置10と同様の各部にさらに、重畳部6及び重畳情報記憶部53が追加されて重畳装置10が構成されている。当該追加構成以外の各部の動作は以上説明したのと同様であるため説明は省略する。
重畳部6では、推定部4の推定した光源情報と、重畳情報記憶部53に記憶されている重畳情報と、撮像部1の出力した撮像画像Pと、を入力し、光源情報を反映した重畳情報を生成して撮像画像Pに重畳し、重畳画像として出力する。重畳情報記憶部53においては、認識対象jに対応した重畳情報を記憶しておき、認識部2で認識された認識対象に対応する重畳情報を重畳部6へと出力する。重畳部6における重畳処理は、推定部4で光源情報を推定した際に用いたモデルと同様のモデルを利用することで、既存のレンダリング処理によって実施することができる。Phongモデルを用いる場合、求めた近接光源強度Idを光源の強度として用いて、当該モデルの鏡面反射係数をもとにレンダリングした結果として、鏡面反射強度を得ることができる。
(7)輝度の上限又は下限値の設定について
推定部4の処理において輝度の上限又は下限に達していることを判断(例えば上限に達することによるハイライト領域Reの判断)基準として用いた。当該上限又は下限は、画素値の所定範囲(例えば8ビットで画素を表現する場合であれば、上限255(白飛びの状態)、下限0(真っ黒の状態))として設定してもよいし、外観情報AP(j)に対する追加情報として、参照画像RP(j)の各画素位置(x,y)ごとに定義される値(法線マップN(j)と同様にマップとして定義される値)として設定しておいてもよい。
(8)ハードウェア構成について
図12は、図1に示す光源推定装置10及び図11に示す重畳装置20をそれぞれ実現可能な機器のハードウェア構成の一例を示す図である。機器30は、CPU(中央演算装置)31、当該CPU31にワークエリアを提供する主記憶装置32、ハードディスクやSSDその他で構成可能な補助記憶装置33、キーボード、マウス、タッチパネルその他といったユーザからの入力を受け取る入力インタフェース34、ネットワークに接続して通信を行うための通信インタフェース35、表示を行うディスプレイ36、カメラ37及びこれらを接続するバスBを備える。
図1に示す光源推定装置10及び図11に示す重畳装置20の各部の処理はそれぞれ、当該処理を実行させるプログラムを読み込んで実行するCPU31によって実現することができるが、任意の一部の処理を図12には不図示の専用回路において実現するようにしてもよい。撮像部1は、当該ハードウェアとしてのカメラ37によって実現できる。
(9)構成の変形例について
図1に示す光源推定装置10及び図11に示す重畳装置20の各部のうち任意の一部分は、外部機器において実現される機能として実現するようにしてもよい。例えば、重畳装置20の構成において、撮像部1のみをユーザ端末に実装し、その他の機能部をサーバに実装し、ユーザ端末から撮像画像をサーバへと送信し、サーバの重畳部6で得られた重畳画像をユーザ端末1へと返信して、ユーザ端末において重畳画像の表示を行ってもよい。また、光源推定装置10において撮像部1は省略し、撮像画像を認識部2において受信して以降の処理を実現するようにしてもよい。