本発明は、青空が偏光していることに着目し、その偏光のパターンを利用すれば、シーン画像に含まれる青空領域の偏光情報に基づいて、撮像装置の向きを推定することができるという知見に基づいて完成された。
図1Aに示すように、屋外で撮像装置(簡単のため、「カメラ」と称する)10が視線方向(z軸方向)の風景写真をとる場合を考える。ここでは、図1Bに示すように、撮影したシーン画像内に青空の一部(青空領域)が含まれていることを前提とする。図1Bに示すシーン画像内の青空領域には、斜めの斜線が付されているが、この斜線は、青空の偏光位相を模式的に示しているものとする。ここで、偏光位相とは、偏光主軸方向を示す角度(位相角度)であり、カメラ視線方向(z軸方向)の回りの回転角度によって規定される。
偏光位相の方向(位相角度)は、人間の視覚によって直接的に視認されるものではなく、通常の画像(輝度画像)には表れない情報である。しかし、カメラ10の前に偏光フィルタを配置し、図1Aに示すカメラ視線方向(z軸方向)の回りに偏光フィルタを回転させると、特定の回転角度において、青空から出た光(偏光)が偏光フィルタを最も高い透過率で透過することができる。このときの偏光フィルタの透過軸方向(角度)が、カメラ視線方向(z軸)の先に位置する青空領域の偏光方向(位相角度)に相当している。
図1Cおよび図1Dは、全天の偏光位相パターンの例を示す図であり、半球状の全天が有する偏光位相のパターンがそれぞれの円内に示されている。この円の中心が天頂、外周が地平に相当する。図1C、図1Dでは、多数の曲線が記載されており、各曲線の任意の位置における接線方向がその位置における偏光位相(角度)の向きを示している。この全天の偏光パターンは、最も簡易なモデルでは太陽を中心とした同心円方向に偏光方向を有するというものであるが、実際には特異な偏光特性を持つ点を4つ有することが実測により知られている。これについては非特許文献4に詳しい説明がある。
後に詳しく説明するように、青空の偏光は、天空における太陽の位置に応じて変化する。このため、撮影日時、撮影位置(経度、緯度)などの情報に基づいて天空における太陽の位置が求められると、その時刻における天空の偏光位相パターンが定まる。天空の任意の位置における偏光位相は、撮影日時・位置が与えられれば計算によって求めることもできるが、天空上の位置と偏光位相とを対応付けたマップ(全天偏光マップ)をデータベースとして記憶装置に格納しておくこともできる。
図1Eは、カメラ視線方向(z軸方向)と太陽との位置関係の例を示す図である。カメラ視線方向(z軸方向)の先には、撮影されるシーン画像の矩形範囲(画像エリア)が模式的に示されている。この矩形範囲に記載された矢印は、その方向における青空領域の偏光方向(偏光位相の向き)を示している。ある日時における青空の偏光位相は、天空における位置によって異なるため、カメラの向きが変わると、撮影される青空領域の偏光位相の向きも変化する。
本発明の好ましい態様によれば、天空の偏光情報をデータベースから、或いは計算によって取得する一方、撮影シーンに含まれる青空領域の偏光状態を検出するため、天空の偏光情報と対比することにより、撮影方向や、太陽位置とカメラの関係を求めることができる。また、他の態様によれば、データベースを利用することなく、計算によって青空領域の方向を求め、それによってカメラ向き(撮像装置向き)を推定することも可能である。
以下、図面を参照しながら、本発明の実施形態を説明する。
(実施形態1)
図1Fは、本実施形態に係る画像入力装置の構成を示している。この画像入力装置は、青空偏光位相画像取得部100、カメラ向き推定部101、出力部102を備えている。青空偏光位相画像取得部100は、シーン画像・シーン偏光画像取得部100a、ロール水平度補正部100b、青空偏光画像処理部100cを有し、青空偏光位相画像φskyを出力する。
本明細書において、「偏光画像」とは、画像を構成する複数の画素の各々が、その画素の偏光情報を表示する画像を意味するものとする。偏光情報は、偏光度および偏光位相(位相角度)を含む。したがって、「偏光画像」とは、特別に限定しない限り、個々の画素の偏光度を二次元的に表示した「偏光度画像」、および、個々の画素の偏光位相を二次元的に表示した「偏光位相画像」を総称したものである。
なお、各画素の偏光度および偏光位相の大きさ(数値)は、その画素における明度または色相によって表現され得る。本願の図面では、明度の高低によって偏光度や偏光位相の大きさを表現している。
次に、本実施形態による画像入力装置の詳細な構成および動作を説明する。
まず、図2を参照して本明細書で用いるカメラの回転方向に関する用語を説明する。
カメラの側方へ伸びる軸(ここではx軸)まわりの回転201がヨーである。また、カメラの上下方向へ伸びる軸(ここではy軸)まわりの回転202が、ピッチである。最後に、カメラの前後方向へ伸びる軸(ここではz軸)まわりの回転203が、ロールである。
なお、図1Fに示す構成要素のうちの全ての構成要素が図2に示すカメラに収められていることが好ましいが、例えばシーン画像・シーン偏光画像取得部100aとロール方向の傾きを計測する水準器とが図2のカメラ内に備えられ、ロール水平度補正部100b、青空偏光画像処理部100c、カメラ向き推定部101、および出力部102がカメラの外部に設けられていても良い。
カメラは、シーン画像・シーン偏光画像取得部100aとして機能する撮像部を備えるため、カメラの向きに応じて撮影されるシーン画像・シーン偏光画像の内容が変化する。
カメラ向きを推定するための一連の処理は、カメラの内部で実行されることが好ましいが、必ずしもカメラの内部で実行される必要はない。
本明細書では、輝度画像と偏光画像を取得する「撮像部」を備え、ユーザが撮像方向を変化させることのできる装置を「カメラ」と称し、そのカメラに内蔵されるか否かにかかわらず、カメラ向き(撮像装置向き)を推定する装置を「カメラ向き検出装置」または「撮像装置向き検出装置」と称する。また、このような「撮像部」と「撮像装置向き検出装置(カメラ向き検出装置)」の両方を備える装置を「画像入力装置」と称することとする。「撮像部」から「撮像装置向き検出装置(カメラ向き検出装置)」には、シーン画像およびシーン偏光画像のデータが送られるが、このデータの送受信は、リムーバブルメモリ、通信線、インターネットなどの各種の情報伝達媒体を通じて行うことができる。
このような「撮像装置向き検出装置」を備える装置は、カメラなどの撮像装置に限定されない。例えば、携帯端末(ノートパソコンを含む)、携帯電話などの携帯機器に「撮像装置」および「撮像装置向き検出装置」が備えられていても良い。また、自動車や二輪車などの移動体に「撮像装置」と「撮像装置向き検出装置」が備えられていても良い。
携帯機器や移動体の向きは、これらの装置が備える撮像装置の向きに一致している必要は無い。携帯機器や移動体の向きと撮像装置の向きとは、所定の関係にあるため、撮像装置向きが検出されれば、この検出された撮像装置向きから携帯機器や移動体の向きを求めることができる。
なお、本明細書における「カメラ」とは、通常、人が手に持って撮影する形態のいわゆる一般的なカメラに限らない。自動車などの移動体に備え付けられる撮像装置も、「カメラ」に含まれるものとする。
次に、図3を参照して、本実施形態のシーン画像・シーン偏光画像取得部100aの構成を説明する。屋外においては、シーン画像およびシーン偏光画像の両方を取得することが必要である。風による雲の動きなども存在するため、偏光画像もリアルタイムに取得することが好ましい。なお、シーン画像とシーン偏光画像は同時に取得することが好ましいが、数秒程度までの間隔で取得しても構わない。
従来技術では、偏光画像取得に際して、偏光板を回転させて複数画像を撮影するものが一般的であるが、屋外では非実用的であった。従来のモノクロ画像と偏光画像とを同時取得する技術が例えば特許文献3に開示されている。この技術では、輝度画像と被写体の部分偏光の画像とを同時に取得するため、複数の異なる偏光主軸(透過軸)を有するパターン化偏光子を撮像素子に空間的に配置する。パターン化偏光子としては、フォトニック結晶や構造複屈折波長板アレイが利用されている。しかしながら、これらの技術ではカラー画像と偏光画像とが同時に取得できなかった。
これに対して、図3のシーン画像・シーン偏光画像取得部100aは、被写体に対してリアルタイムにカラー画像情報を取得すると同時に偏光画像情報を取得し、2種類の偏光画像情報(偏光度画像ρ及び偏光位相画像φ)を出力する構成となっている。
図3のシーン画像・シーン偏光画像取得部100aでは、レンズ300aおよび絞り300bを通った入射光が、カラー偏光取得部301に入射する。この入射光から、カラー偏光取得部301はカラー動画像情報および偏光画像情報の両方をリアルタイムに取得することができる。カラー偏光取得部301からは、カラー動画像情報および偏光情報画像情報を示す信号が出力され、それぞれ、カラー情報処理部302および偏光情報処理部303に与えられる。カラー情報処理部302および偏光情報処理部303は、上記信号に対して各種の処理を施し、カラー画像C、偏光度画像ρ、偏光位相画像φを出力する。
図4は、カラー偏光取得部301の基本的な構成を示す模式図である。図示されている例では、カラーフィルタ401およびパターン化偏光子402が、撮像素子画素403の前面に重ねて設置されている。入射光は、カラーフィルタ401およびパターン化偏光子402を透過して撮像素子に到達し、撮像素子画素403によって輝度が観測される。このように本実施形態によれば、カラーモザイク型の単板カラー撮像素子を用いてカラー画像情報および偏光画像情報の両方を同時に取得することができる。
図5(a)は、カラー偏光取得部301における撮像面の一部を光軸方向の真上から見た図である。図5(a)には、簡単のため、撮像面のうち、16個の画素(4×4)のみが図示されている。図示されている4つの矩形領域501から504は、それぞれ、4個の画素セル上に設置されたベイヤ型カラーモザイクフィルタの対応部分を示している。矩形領域501は、B(ブルー)フィルタ領域であり、画素セルB1からB4をカバーしている。画素セルB1からB4には、それぞれ異なる偏光主軸を有するB(ブルー)用パターン化偏光子が密着している。ここで、「偏光主軸」とは、偏光子を透過する光の偏波面(透過偏波面)に平行な軸である。本実施形態では、同一色の画素内において異なる角度の透過偏波面を有する偏光子単位(微小偏光板)が隣接して配置されている。より詳細には、透過偏波面の方向が相互に異なる4種類の偏光子単位がR(レッド)、G(グリーン)、B(ブルー)の各同一色の画素内に配置されている。1つの偏光子単位は、4つの微細偏光画素に対応している。図5(a)では、個々の偏光画素に対して、G1などの符号が与えられている。
図5(b)は、B(ブルー)用パターン化偏光子が密着する4つの微細偏光画素に割り当てられる偏光主軸を示している。図5(b)において、各微細偏光画素に記載された直線は、微小偏光板の偏光主軸方向を模式的に示している。図5(b)の例では、4つの微細偏光画素が、それぞれ、角度Ψi=0°、45°、90°、135°の偏光主軸を有している。
矩形領域502、504の画素には、それぞれ、4個のG(グリーン)用パターン化偏光子が密着し、矩形領域503の画素には、4個のR(レッド)用パターン化偏光子が密着している。図中、参照符号「505」で示される位置は、本撮像系における矩形領域501における4画素を一括した仮想的な画素位置を示している。各矩形領域502〜504のパターン化偏光子も、図5(b)に示すように異なる4つの偏光主軸を有する部分に分割されている。
このように本実施形態では、各カラー画素に対して、異なる偏光主軸を有する複数の微細偏光画素が包含される点に特徴を有しており、カラーモザイク配列自体は任意である。以下の説明では、個々の微細偏光画素を「偏光画素」と称することとする。
図6(a)から(c)は、それぞれ、B(ブルー)、G(グリーン)、R(レッド)偏光画素の波長特性を模式的に示すグラフである。各グラフの縦軸は透過光の強度、横軸は波長である。B、G、R用の偏光画素は、B、G、Rの各波長帯域においてTM波(Transverse Magnetic Wave)を透過し、TE波(Transverse Electric Wave)を反射(透過せず)する偏光特性を有している。TM波は、磁場成分が入射面に対して横向きの波であり、TE波は、電場成分が入射面に対して横向きの波である。
図6(a)には、B偏光画像の偏光特性602、603と、B用カラーフィルタの透過特性601とが示されている。偏光特性602、603は、それぞれ、TM波およびTE波の透過率を示している。
図6(b)には、G偏光画像の偏光特性605、606と、G用のカラーフィルタの透過特性604とが示されている。偏光特性605、606は、それぞれ、TM波およびTE波の透過率を示している。
図6(c)には、R偏光画像の偏光特性608、609と、R用カラーフィルタの透過特性607とが示されている。偏光特性608、609は、それぞれ、TM波およびTE波の透過率を示している。
図6(a)から(c)に示すような特性は、例えば特許文献3に記載されたフォトニック結晶を用いて実現することができる。フォトニック結晶の場合、その表面に形成された溝に平行な電場ベクトル振動面を持つ光がTE波、垂直な電場ベクトル振動面を持つ光がTM波となる。
本実施形態で重要な点は、図6(a)から(c)に示すように、B、G、Rの透過波長帯域の各々において偏光分離特性を示すパターン化偏光子を用いることにある。
図7は、Gのカラーフィルタの透過域と、偏光特性6101、6102によって定まる偏光分離域との間で波長がずれている場合を示している。このような特性を示す偏光子によれば、本発明の目的とする動作を行うことはできない。
モノクロ輝度と偏光フィルタとを使用する場合には、偏光分離特性を示す波長域の最適化は不要であったが、カラーの画素ごとに偏光情報を取得する場合は、カラーの分離特性と偏光の分離特性と整合させる必要がある。
本明細書では、偏光画素における偏光主軸の方位を表示する4つの数字「1、2、3、4」と、カラーを区別するため3つの符号「R、G、B」の組合せ(例えば「R1」や「G1」など)を用いて、偏光画素の特性を示すこととする。偏光画素R1および偏光画素G1は、数字が同じであるため、偏光主軸の方向は一致しているが、RGB符号が異なるため、透過する光の波長帯域が異なる偏光画素に相当している。本実施形態では、このような偏光画素の配列を、図4に示すカラーフィルタ401およびパターン化偏光子402の組合せによって実現している。
被写体の特に明るい鏡面反射部分に含まれる偏光成分や、被写体の影領域に含まれる偏光成分などを確実に取得するため、撮像素子の輝度ダイナミックレンジとビット数はなるべく大きいこと(例えば16bit)が望ましい。
図5に示す構成によって偏光画素毎に取得された輝度の情報は、図3の偏光情報処理部303で処理される。以下、この処理を説明する。
図8は、方向が異なる偏光主軸(Ψi=0°、45°、90°、135°)を有する4種類の偏光子を透過した光の輝度701〜704を示している。ここで、偏光主軸の回転角ψがψiの時における観測輝度をIiとする。但し、「i」は、1以上N以下の整数、「N」はサンプル数とする、図8に示す例では、N=4であるため、i=1、2、3、4となる。図8には、4画素のサンプル(ψi、Ii)に対応する輝度701〜704が示されている。
偏光主軸の角度Ψiと輝度701〜704との関係は、正弦関数カーブによって表現される。図8では、輝度701〜704の4点が1本の正弦関数カーブ上に位置するように記載されている。より多くの観測輝度に基づいて正弦関数カーブを決定した場合、観測輝度の一部が正弦関数カーブ上から僅かに外れる場合もあり得るが、その場合でも問題はない。
なお、本明細書における「偏光情報」とは、輝度の偏光主軸角度に対する依存性を示す正弦関数カーブにおける振幅変調度および位相情報を意味するものとする。
実際の処理では、図5(a)に示す同一カラー領域501〜504ごとに内部の4個の画素輝度値をサンプルとして、パターン化偏光子の主軸角ψに対する反射光輝度Iを以下のように近似する。
ここで図8に示すようにA、B、Cは定数であり、それぞれ、偏光輝度の変動カーブの振幅、位相、平均値を表現している。図8の例においては、Bは負の値をとる。(式1)は、以下のように展開できる。
ただし、AおよびBは、それぞれ、以下の(式3)および(式4)で示される。
以下の(式5)を最小にするA、B、Cを求めれば、輝度Iと偏光主軸角Ψとの関係を(式1)の正弦関数によって近似できる。
以上の処理で1つのカラーについて正弦関数近似のA、B、Cの3パラメータが確定する。こうして、偏光度ρを示す偏光度画像と偏光位相φを示す偏光位相画像が求められる。偏光度ρは、該当画素の光が偏光している程度を表し、偏光位相φは、該当画素の光の部分偏光の主軸角度を表している。なお、偏光の主軸角度は0と180°(π)は同一である。値ρおよびφ(0≦φ≦π)は、それぞれ、以下の(式6)および(式7)によって算出される。
なお、本実施形態のパターン化偏光子は、フォトニック結晶、フィルム型の偏光素子、ワイヤーグリッド型、その他の原理による偏光素子であってもよい。
図3に示すカラー情報処理部302は、カラー偏光取得部301から出力される情報を用いて、カラー輝度を計算する。偏光子を透過した光の輝度は、偏光子に入射する前の光が有する本来の輝度とは異なる。非偏光照明の場合、理論的には、偏光のすべての偏光主軸における観測輝度を平均化した値が偏光子に入射する前の光が有する本来の輝度に相当する。角度偏光画素R1の画素における観測輝度をIR1と表現すると、以下の(式8)に基づいて、カラー輝度を算出することができる。
各偏光画素における輝度を得ることにより、通常のカラーモザイク画像を生成できる。モザイク画像に基づいて各画素でRGB画素値を有するカラー画像へ変換することにより、カラー画像Cが生成される。このような変換は、例えばベイヤーモザイクの補間方法などの公知の補間技術を用いて実現される。
カラー画像C、偏光度画像ρ、偏光位相画像φの各々における各画素の輝度および偏光情報は、図5(b)に示す4つの偏光画素を用いて得られる。そのため、個々の輝度および偏光情報は、図5(b)に示す4つの偏光画素の中心に位置する仮想画素点505における値の代表を示していると考えることができる。従って、カラー画像および偏光画像の解像度は本来のカラー単板撮像素子の有する解像度の縦1/2×横1/2に低下する。このため撮像素子画素数はできるだけ大きいことが望ましい。
実際の偏光度画像ρ、偏光位相画像φ、カラー画像Cの例を図9に示す。図9は、遠方の建物のシーンを被写体とする画像である。図9(a)の偏光度画像ρは、偏光の強度を画素の明度によって表現しており、画素の明度が高い(白い)ほど、その画素の偏光度が高い。図9(b)の偏光位相画像φは、偏光位相の角度を明度によって表現している。偏光位相は0から180度までの値を明度に割り当てて表現している。位相角度には周期性があるため、偏光位相画像上の白と黒の位相角度は、実際には連続していることに注意する。図9(c)のカラー画像Cは、通常のRGBカラーの輝度画像である。ただし、この図面では、色相が表現されず、個々の画素の輝度のみが明度によって表現されたモノクロの輝度画像として記載されている。図9(d)は、図9(c)の画像に対応する模式図である。写真では分かりづらいが、801が空、802が雲、803が建物、804が植え込み、805がカメラ台の一部となっている。
また、図10に示すように、以降の処理の前提として、シーンの撮影は水平線が画面内でも水平となるよう補正する。撮影したシーン画像・シーン偏光画像の傾き補正は、ロール水平度補正部100b(図1F)で行う。ここで補正するのは、カメラ光軸まわりの傾きである。すなわち、図2のx軸が、地面と水平になるように、方向203の回りにθrだけ回転させることにより傾きを補正する。
以下、図10を参照して水平度補正の一例を説明する。
まず、撮影した画像例として図10(a)に模式的に示すように傾斜した画像が得られたものとする。地面からの垂線9011、地面の水平線902を図10(a)に示すように規定する。このとき、画像が歪みのない理想的な画像(或いは、そのように補正された画像)とすると、図2のカメラx軸を図10(a)のx軸と等価とみなすことができ、画像の水平な線902、すなわち地面からのカメラx軸方向の傾きは、θrとなる。したがって、まず、この傾きθrを、カメラ内部に設置された水準器で検出する。搭載する水準器は、例えば特開2007−240832号公報に開示されているような、カメラ内部に搭載可能な水準器であれば何でもよい。
次に、水準器から得られた傾きθrを使い、偏光位相画像の偏光位相補正を行う。具体的には、式7で得られたφを、以下の式9で補正することより、補正された偏光位相方向φnewを得ることができる。
また可能であれば、後段処理のため、シーン画像・シーン偏光画像についても傾き補正(水平度補正)を行う。シーン画像・シーン偏光画像の傾き補正は必須ではなく、傾いた画像のまま後段処理を行うことも可能であるが、説明の簡略化のため、ここでは傾き補正を実施する。図10(b)は、傾き補正後の画像である。補正前の図10(a)における地面からの垂線9011は、図10(b)では、X’軸に平行となった画像の水平な線902と直交する新しい垂線9012までθr回転している。
図10(a)における画素903の座標(Xr、Yr)は、角度θrだけ画像を回転させた結果、以下の式10で表される座標(Xr’、Yr’)に変換される。座標(Xr’、Yr’)の画素は、図10(b)において画素904として記載されている。
この変換を画像内の全画素に適用することで、ロール方向に傾いて撮影された画像を、傾きが除去された画像に修正することができる(傾き補正)。
なお、この補正は、水平線に対する空領域の偏光位相角が分かればよいため、例えば、雲領域を除去した後に行ってもよい。また、本補正を行わない場合は、以降のカメラ向き推定部での計算において、全天偏光マップを全てカメラ座標に座標変換すればよい。
次に、図11Aを参照しながら、青空偏光画像処理部100cの構成を説明する。
青空偏光画像処理部100cは、偏光度画像ρ、偏光位相画像φ、およびカラー画像Cを入力として、青空偏光位相画像φSKYを出力する。青空偏光位相画像φSKYは、シーンの中からカメラ向き、太陽向きを推定するために用いられる。
青空偏光画像処理部100cにおいて、偏光度2値化部1001は、偏光度画像ρをしきい値Tρで2値化する。輝度変換部1002は、カラー画像Cを輝度画像Yに変換する。輝度2値化部1003、1004は、変換された輝度画像Yに対して、しきい値TC1、およびTC2を用いて2値化処理する。画像演算部1005は、偏光度2値化部1001で2値化された偏光画像ρ’と、輝度2値化部1003で2値化された輝度画像C1’とのAND(論理積)演算をし、マスク画像A’を出力する。
色相類似度変換部1006は、カラー画像CをHSV変換し、空色の色相との色相類似度を表現した色相類似度画像hを出力する。色相類似度2値化部1007は、色相類似度画像hをしきい値THでしきい値処理して、空色相領域のみを抽出した画像h’を出力する。画像演算部1008は、輝度2値化部1004で2値化された輝度C2’、色相類似度2値化部1007で2値化処理された特定色相との論理積演算を行う。
出力選択部1009は、2値化された輝度・偏光度画像C1’、ρ’から生成された第1の青空領域マスクA’、および、2値化された輝度・色相類似度画像C2’、h’から生成された第2の青空領域マスクB’のいずれを採用するかを、偏光度判定部1010の出力ρdに基づいて決定する。
画像演算部1011は、採用された青空領域マスクMskyと偏光位相画像φとの論理積演算を実施して、青空偏光位相画像φskyを生成する。
従来の青空領域検出手法として、カラー画像から、画像上での色相が青に類似し、かつ平坦な領域を探すというものがある。この手法では、曇り空を含む青空に対し、カラー情報とテクスチャ情報から確率的に求める。しかし、カラー情報を利用するため、(i)夕焼け空のようにカラーの色相情報がブルーからマゼンタ、レッドまで次第に移り変わる場合、あるいは(ii)地上の建物が青色、白色の場合に、特に実際の空または雲と識別が不可能になるという課題がある。
このため、天空の物理的要因で様々に変化するカラー情報を明示的に使わずに、モノクロ輝度情報のみで空を検出できることが望ましい。このような検出を行うには、例えばシーン画像で最も輝度が高い領域が空であると仮定すればよい。実験によると、このような仮定に基づく空検出を行うと、曇天や夕焼け空の場合には、ある程度良好な結果が得られた。しかし、晴天の時は、空の輝度以上に、地上の建物が鏡面反射した輝度の方が高くなってしまう場合が多く、良好な結果が得られなかった。晴天の場合、太陽光の正反射が原因というよりは、人工物(建物)が青空の全周照明を受けることで、その滑らかな表面に予想以上に強い鏡面反射が生じてしまったことが原因であったと考えられる。
そこで、本実施形態では、輝度に加えてシーンの偏光度を用いて青空領域を検出する。これは晴天昼における空の偏光度が、水平線近傍で非常に高いということを利用するものである。非特許文献2では、全天の空の偏光状態を朝(日の出)から夕方(日の入り)まで12時間にわたり1時間ごとに記録しているが、この文献によると、朝と夕方の東西方向を除いてほとんどの時間で地平線近傍では空の偏光度が強い。実験によると、この空の偏光度は、多くの場合に地上の山などの遠景、建物などの人工物の偏光度よりもさらに強いため、有効な空検出手段になりえる。ただし、地上の建物の屋根やガラス等も非常に強く偏光する。この建物などに起因する偏光を除くためには、上記の偏光度と輝度のしきい値を併用したマスクを生成し、除去すべき領域を検出すればよい。
ただし、先ほど述べたように朝と夕方は太陽の通り道となる東西方向で地平線近傍の偏光度が低くなるうえに、特に朝の西方向の空、及び夕方における東方向の空は輝度も低いことが多いため、本手法が適用できないケースが生じることがある。この場合はカラー色相と輝度を用いて検出すればよい。このケースについての詳細は後述する。
以下、実際のシーン画像を示す図12を参照しながら、図11Aの構成を備える青空偏光画像処理部100cの動作を説明する。なお、以下の説明において、実際のシーン画像は撮像範囲が円領域となっているが、これは実験時のカメラ装置におけるレンズのケラレによるものであり本質的には矩形画像で考えてよい。
青空偏光画像処理部100cは、条件によっては、図11Aに示す破線で囲んだ最小構成1012によって実現できる。まず、図12、図13を参照しつつ、最小構成1012の動作を説明する。
図12(a)は、シーン画像の偏光度画像ρである。図12(b)は、図12(a)の偏光度画像ρの内容を模式的に示す図である。図12(b)に示すように、シーン画像は、空領域1101、建物領域1102、雲領域1103、地面領域1104、カメラ台1105を含む。
偏光度画像ρに対して、偏光度2値化部1001で処理を行った結果が図12(c)の画像(ρ’)である。ここで、2値化閾値Tρ=0.14としている。2値化閾値Tρは、偏光度ヒストグラムから決定する。このシーンでは、空領域1101および地上の建物などの風景1102、1104が、偏光度の高い領域および低い領域にわかれて、双峰性分布を作っている。偏光度ヒストグラムにおける2つのピークの中間値を閾値Tρとする。ここで、2値化閾値Tρは、偏光度の高低を判定するための閾値であり、0<Tρ<1の関係を満たす。
図において、建物の右側の雲領域1103も偏光度が低い場合には除去される。下部の黒色のカメラ架台1105だけは強く偏光していて除去できず残存してしまう。
図12(d)は、シーン画像のカラー画像Cを輝度変換部1002で処理した輝度画像Yである。輝度変換した輝度画像を、輝度2値化部1003で2値化処理(TC1=0.4)した結果が、図12(e)の画像(C1’)となる。このシーンでは、空領域1101の輝度と建物1102の輝度とがほぼ等しく、輝度での分離が困難であるが、このような場合でも閾値TC1、TC2を適当に設定することにより、カメラ架台など暗部は除去できている。本実施形態における閾値TC1、TC2は、輝度値を評価するため、0<TC1<1、0<TC2<1の大きさとなるように、正規化されたものである。例えば、輝度値が8ビットで表現される場合、ここでは、0〜255の輝度値を0〜1の数値に規格化して閾値TC1、TC2と比較する。輝度値が16ビットで表現される場合は、0〜65535の輝度値を0〜1の数値に規格化したうえで、閾値TC1、TC2と比較している。
以上の2種のマスク画像ρ’、C1’を画像演算部1005において論理積演算処理すると、図12(f)に示すように、一部偏光度の低い雲領域を除去した青空領域のみを分離したマスク画像A’を得ることができる。このマスク画像A’を出力選択部1009で選択し、画像演算部1011において、図13(a)の偏光位相画像φと論理積演算処理する。図13(b)は、図12(b)と同じシーン画像の模式図である。図13(c)は、図12(f)と同様にマスク画像A’を示す。
以上の処理によって、図13(d)の青空偏光位相画像φskyが得られる。
ここで注意すべきは、青空領域を決定する際、原則的には雲領域を除去することが望ましい、ということである。後段のカメラ向き検出において、青空偏光位相画像φskyと全天偏光マップとの間で対応する点を探索する必要がある。当然ながら、全天偏光マップには、雲の存在が考慮されていない。ため、雲の存在によって偏光位相が乱された青空偏光位相画像φskyを利用してしまうと、推定誤りが起こる可能性がある。
なお、特に雲が薄い場合、雲領域でも偏光位相が乱されないことがある。このような場合は、青空領域が雲を含んでいても良い。雲によって偏光位相が乱されるかどうかは、雲領域の偏光度の低下度合いが目安になる。偏光に基づいて青空領域を決定する本実施形態の方法によれば、偏光度の低い雲領域のみを自動的に除去できる、という利点がある。
次に、夕方の東空を撮影したシーンを示す図14を用いて、最小構成1012では処理できない場合について説明する。
図14(a)から(f)は、それぞれ、シーン偏光度画像ρ、シーン画像の模式図、2値化したシーン偏光度画像ρ’、シーン輝度画像Y、2値化したシーン輝度画像C2’である。図14(b)に示すように、このシーン画像は、空領域1201、建物領域1202、地面領域1203、カメラ台1204を含む。
図12(a)〜(f)を参照しながら説明した処理と同様な処理を行った結果、最終的に、図14(f)に示すようなマスク画像A’が得られる。明らかに青空領域の検出に失敗している。その理由は、図14(a)のシーン偏光画像ρにおける青空領域の偏光度が低く、また輝度も低いためである。
そこで、本実施形態では、このような場合に、図11Aに示す偏光度判定部1010を利用する。シーン偏光度画像ρの偏光度ヒストグラムに基づいて平均偏光度を求め、平均偏光度が所定閾値(Tρ1=0.1)より低い場合には、これを採用せずに、カラー色相と輝度を用いた方法に切り替える。以下、その処理を図11Aと図15を参照して説明する。
まず、色相類似度変換部1006において、空の色相である青の色相角とカラー画像Cの色相角との差異を示す色相角度の誤差を求めることにより、カラー画像Cが色相類似度画像に変換される。ここで空の色相を青色としたのは、このカラー画像を使う処理が使われるのは空の偏光度が低く輝度も低い場合に限られ、それは朝方の西空、および夕方の東空のいずれかであるから、空の色は青色とみなしてよいという仮定に基づく。
典型的な空の青色の色相角(0°〜360°)をHsky(=254°)とし、入力されるシーンの色相角をHtestとする。よく知られたRGB空間からHSV(色相、彩度、明度)空間の色相Hへの変換式(RGB_to_H)を用い、さらに色相角が360度周期であることを考慮すると、色相類似度ΔHは以下の式で表現される。
この色相類似度画像hを、色相類似度2値化部1007で閾値処理することにより、青空領域の候補のマスク画像h’が求められる。図15(a)は、図14のシーン画像と同じシーン画像から色相類似度変換部で変換された色相誤差画像を表している。
図15(b)は、図15(a)のシーン画像の模式図を示す。図15(c)は、輝度2値化部1004において、閾値(TC2=0.29)処理を行った輝度の2値化結果であり、図15(d)は、画像演算部1008において、図15(a)で示す色相2値化結果h’と図15(c)で示す輝度の2値化結果C2’とを論理積演算した結果のマスク画像B’である。
図11Aの出力選択部1009において、偏光度判定部1010から出力されるρdが閾値を超えない場合に、偏光度からのマスク画像A’の代わりにこのマスク画像B’が採用される。この場合、画像演算部1011でマスク画像B’と偏光位相画像φと論理積演算を行って、青空偏光位相画像φskyが得られる。
なお、先に述べた通り、最小構成1012のみで実施できるかどうかは、大きくは時刻に依存する。したがって、偏光度判定部1010を利用して、青空領域を抽出するためのマスクを切り替える代わりに、撮影日時によってマスクを切り替えるようにしてもよい。例えば午後4時以降、日没までを夕方として定義し、夕方でない場合は最小構成1012のみで青空領域の決定を実施し、夕方は図11Aの全構成を用いた切替も可能である。
次に、図11B、図11Cを参照して、青空偏光画像処理部100cの他の構成例を説明する。
図11Aに示された青空偏光画像処理部100cでは、前述したように、出力選択部1009が、2値化された輝度・偏光度画像C1’、ρ’から生成された第1の青空領域マスクA’、および、2値化された輝度・色相類似度画像C2’、h’から生成された第2の青空領域マスクB’のいずれを採用するかを偏光度判定部1010の出力ρdに基づいて決定する。
これに対して、図11Bの青空偏光画像処理部100cでは、第1の青空領域マスクA’および第2の青空領域マスクB’を作成する前の段階で、いずれのマスクを作成すべきかを選択部1014が偏光度判定部1010の出力ρdに基づいて決定する。例えば、偏光度判定部1010から出力されるρdが閾値を超えない場合、図11Bの選択部1014は、第1の青空領域マスクA’ではなく、第2の青空領域マスクB’の作成を選択する。その結果、図11Bの青空偏光画像処理部100cは、第1の青空領域マスクA’を作成せず、第2の青空領域マスクB’のみを作成する。そして、画像演算部1011には、第2の青空領域マスクB’だけが入力されることになる。このため、選択されたマスクのみを作成すればよく、使用しないマスクを作成するための処理を省くことができる。
図11Cの青空偏光画像処理部100cでも、同様に、第1の青空領域マスクA’および第2の青空領域マスクB’を作成する前の段階で、いずれのマスクを作成すべきかを選択部1014が決定する。ただし、図11Cの青空偏光画像処理部100cでは、マスクの選択を、偏光度判定部1010の出力ρdに基づいてではなく、日時情報取得部1016が出力する撮影日時情報に基づいて決定する。時刻が夕方(例えば午後4時以降、日没まで)を示しているとき、図11Cの選択部1014は、第1の青空領域マスクA’ではなく、第2の青空領域マスクB’の作成を選択する。その結果、画像演算部1011には、第2の青空領域マスクB’だけが入力されることになる。
次に、カメラ向き推定部101で、カメラ方向を求める。図16に、カメラ向き推定部101の構成を示す。
図16(a)は、サーチモードを実行する構成を示しており、この構成は、太陽位置取得部1301、全天偏光位相マップ取得部1302、青空領域方向推定部1303、および画角取得部1304を備えている。
図16(b)は、計算モードを実行する構成を示しており、この構成は、太陽位置取得部1301、画角取得部1304、および青空領域方向計算部1305を備えている。
これらの構成は、どちらも入力は同じ青空偏光位相画像φであり、太陽位置取得部1301の構成も共通である。カメラ向き推定部101は、図16(a)および(b)に示す構成の両方を備えていてもよいし、一方だけを備えていてもよい。また、どのモードを使用するかについては、撮影者が選択することも可能であるし、カメラ内部で自動的に決定してもよい。各モードの詳細については後述する。
カメラ向き推定部101は、撮影された偏光位相パターンが、全天においてどの方向にあるかを求める。したがって、はじめに、空の偏光状態について説明する。
空から降り注ぐ太陽の光は、電磁波の性質を有する。電磁波は伝播時、媒質の変化や、伝播路の構造的な変化があった場合、或いは急に物体が現れるような場合に、その変化する領域で二次的な電磁波を放射する。これが散乱である。
再放射を生じる構造である、この散乱体が、電波の波長に比べて十分大きい場合、散乱体表面の現象を局所的に平面波反射・入射として扱うことができる。このような場合に生じる散乱が「幾何光学散乱」である。
一方、散乱体が波長に比べて十分に小さいとき、散乱体表面の電磁界は静磁界で近似できる。このような場合に生じる散乱が「レイリー散乱」である。レイリー散乱の散乱特性は、散乱体の形状によらず、微小ダイポールの指向性と同じ特性を示す。
なお、散乱体が波長と同程度の大きさ、つまり幾何光学散乱とレイリー散乱の中間にあたる場合は、分極の際に散乱体の表面や内部に過渡電流が流れる。この過渡現象が共振を生じ、特殊な散乱現象を示す。これが「ミー散乱」である。
大気中には太陽光の波長の約千分の一程度の小さい分子が媒質として存在しているため、太陽光はレイリー散乱される。レイリー散乱では、分子散乱の際、波長の4乗に反比例する散乱係数で散乱するため、波長の短い光ほど強く散乱されるといえる。
空の色について考えてみると、昼間の空が青いのは、波長の短い青色が強く散乱されて我々の眼に届くためである。一方、夕空が赤いのは、光源である太陽と我々の距離が長くなるために青色成分は消散し、透過光として残った赤色が我々の眼に届くからである。光は、レイリー散乱する際、光源である太陽との位置関係によって、偏波する性質を持つ。これが、空の偏光パターンが作られ、そして時事刻々と移り変わる要因である。
ある平面波が球状散乱体に入射する場合を考える。散乱体が光の波長に比べて十分小さい場合には、散乱体内部の電気分極が瞬間的に定まり、十分遠方の散乱界については、散乱体の分極電荷ダイポールモーメントを備えた微小ダイポールとして近似できる。これは特に散乱角がπ/2のときに、完全偏波となる。このとき、太陽と、青空上の観測点と、視点を結ぶ散乱面に垂直な方向の偏光位相が得られる。それ以外の場合は、太陽と観測点と視点との位置関係に偏波位相特性は依存し、空の偏光を地上より観察すると、太陽を中心とした円の接線方向への偏光成分が強く観測されるようになる。
非特許文献3によると、実測の結果、太陽以外に特異な偏光特性を持つ特異点が3点存在するという。非特許文献4では、それらを考慮した理論モデルを用い、現実に近い空の偏光パターンを得ることに成功している。
なお、雲が存在する領域では偏光特性が異なる。雲は水滴などの雲粒の集まりであり、薄い雲であれば透けるが、濃くなると真っ白になって向う側は見えない。これは、雲の粒子間で多重散乱が起きているためである。ある散乱体で散乱された光が、今度は別の散乱体へ入射し、別の散乱を起こす、という散乱の繰り返しが多重散乱である。特に散乱体が数多く密に分布しているときには、散乱分光された光が重なり合うため白くなり、同様に、散乱によって偏光された光も重なり合って偏光特性を消失する。もちろん、完全に偏光特性を消失するわけではなく、雲の厚さや量によっては、偏光特性が残る場合もある。そのため、本手法では、初期の段階で雲領域を除去することはせず、偏光度の低い領域のみの除去を行い、空の偏光が利用できる領域のみに手法を適用する。
続いて、カメラ向き推定部101の内容について、まず図16(a)に示すサーチモードの説明を行う。
空の偏光パターンは、先に述べたとおり、太陽の位置(太陽の高度および方位:以下、単に「太陽位置」と称する場合がある)に依存する。したがって、まず太陽位置取得部1301にて太陽位置を示す情報を取得する(以下、単に「太陽位置を取得する」と述べる場合がある)必要がある。
太陽位置は、全天を見上げる日付・時刻・位置(緯度経度)により多様に変化するため、例えば、一般的にカメラに内蔵されている時計、およびGPS等を利用して全天における太陽の高度と方位を計算することで得ることができる。この場合の太陽高度・方位の計算方法について説明する。
角度変数をθ0と置き、当該年元旦からの経過日数dnを用い以下のように定義する。
当該日の太陽赤緯をδと置くと、θ0を用いて以下のように求められる。
また、緯度φ、経度λ、均時差Eq、日本標準時間JST、標準子午線経度JSKとおくと、太陽の時角tは以下の手順で求められる。
以上より、太陽方位θs、高度hsを以下の式で求めることができる。
以上の計算は、立正大中川研究室の近似計算式による。
なお、この求め方はあくまで一例であり、太陽位置の求め方としては他にも様々なものが存在する。例えば、「日の出・日の入りの計算」長沢 工(地人書館)などの文献に記載されている計算式で求めることも可能である。或いは、理科年表を利用した方法などで求めてもよい。
次に、撮影時における撮影地点上の全天の偏光位相パターンを、全天偏光位相マップ取得部1302によって取得する。例えば、非特許文献3のように、各太陽高度・方位における偏光位相パターンを実観測によって記録したデータを作成し、それらを蓄積してデータベースとすることができる。そうして作成したデータベースから、撮影時の太陽高度・方位に対応する全天偏光位相マップを取得すれば、全天の偏光パターンがわかる。なお、撮影時の太陽高度、方位に等しいデータがない場合は、近いものを複数用いて補完するなどすればよい。
また、非特許文献1、非特許文献2、或いは非特許文献4で利用されている数式を用い、太陽高度・方位から全天の偏光位相マップを理論計算により求めることも可能である。
図17に、前述の理論モデルに基づいた計算によって得られる全天の偏光位相パターンの概略図、および、青空偏光位相パターンとのマッチングの概念図を示す。図17(a)の中心の大きな円は、午前9時頃の全天偏光図の例である。位相パターンは、分かりやすくするために点線で描かれているが、実際は、マップ上の各点が、位相を持っており、この図はその位相面の一部を可視化したものである。
ここに示すように、全天の偏光パターンは、太陽1401を中心にした同心円状のパターンとなっている。より詳細には、特異点として知られるBabinet点1402や、Arago点1403などが影響することが知られている。天頂直下の点1404は、カメラ位置である。天頂から地平線に垂直に伸ばした線、すなわち地平線の垂線(Local Meridian)を定義する。カメラ位置から見た全天図の各点からの光が、それぞれが属するLocal Meridianに対し、どういった傾きの偏光位相を持つかを点線で示している。位相図の見方については、以下で詳しく説明する。なお、位相の方向は、位置1405における偏光位相φpixを示す図に併記している通り、Local Meridianに沿った方向を0°、時計回りに正となるよう定義する。位置1405〜1408の図では、それぞれの偏光位相方向を点線矢印によって表している。この位相の大きさは、カメラの視線方向の先にある天空上の1点を通るLocal Meridianを基準線として決定される。基準線に対し、マップ上の位相線が、どのように交わっているかが、偏光位相の方向(位相角度)を与えるものとする。地平線付近の位置1405における位相角度は、Local Meridianに対して約−20°である。太陽経路上の位置1406における位相角度は、Local Meridianに対し、±90°である。これは、太陽経路上の全ての点でこうなることが知られている。位置1407における位相角度は、Local Meridianに対し、約40°である。太陽付近の位置1408における位相角度は、Local Meridianに対し、ほぼ0°である。
このように、カメラの方位によって、取得されるLocal Meridianに対する偏光位相は異なることがわかる。
図17(b)、(c)に、撮影される偏光位相画像の模式図1409、1410を示す。図中の矢印は、説明のために偏光位相の方向を模式的に示しているだけであり、実際には写真上に現れない。
シーン画像・シーン偏光画像撮影部100aの説明に際して述べたように、各画素が偏光位相を示す値をもっている。複数の画素の偏光位相の並びから、天空のどの部分を撮影したものかがわかる。
以下、撮影方向を決定する方法の好ましい例を説明する。
まず、ある時刻において、図17(b)に示す青空偏光位相画像1409、および、図17(c)に示す青空偏光位相画像1410が得られたとする。これらは同じシーンに見えるが、空の偏光位相パターンが異なる。青空偏光位相画像1409は、空領域の偏光が、全体的に11時の方向に偏光軸を持っている。一方、青空偏光位相画像1410では、空領域の偏光が、全体的に2時の方向に偏光軸を持っている。これら2枚の青空偏光位相画像1409、1410を、図17(a)に示す天空の偏光パターンと比較することにより、例えば青空偏光位相画像1409は位置1405の偏向位相を有する北の方向を撮影したということがわかる。また同様に、青空偏光位相画像1410は、位置1407の偏向位相を有する南の方向を撮影したものであることが分かる。このように、シーン画像では同じように見えた2枚の画像であっても、画像に含まれる空領域の偏光位相が異なることにより、視線方向が違うシーンであると識別できる。
偏光位相パターンは、図17(a)では、簡単のため2次元座標上で示されているが、実際の位相偏光パターンの探索は、図18(a)、(b)に示すように、3次元地球座標上で行うことが望ましい。図18は、地球座標系での太陽、およびカメラ向きの関係を表した概念図である。求めるカメラ向きについて、方位をθ1、仰角をθ2と置いている。x軸+方向に北、−方向に南、y軸+方向に西、−方向に東の方角をとっている。なお、座標は必ずしもこのようにとる必要はなく、方角と天球の対応が分かるように座標を取ればどのようでもよい。図18の場合、カメラの方位は東側を0度にとり、北周りに回転させた角度となる。カメラの仰角は、地平線から垂直に上方へ仰ぎ見た角度となる。これらが、求めるカメラ向きとなる。
図18(a)において、太陽1501は座標Psにある。青空偏光位相画像中のある1点に対応する、天球1505上の点1502は、座標Pvにとられている。参照符号1503はPvにおける偏光位相φpixである。カメラ1504の位置は、座標Pc(0、0、0)にある。Psの天頂角がφ2、Pvの天頂角がθ2である。図18(b)は、図18(a)のx−y平面をz軸上より見下ろした図である。Psの方位角がφ1、Pvの方位角がθ1である。
ここで、天球1505の半径をrとすると、座標Ps、Pvに位置する各点は、φ1〜θ2を用いて、以下のように表すことができる。
ここで、撮影画像の画素位置と、天球上の位置の対応をとるため、撮影画像の画素位置を、カメラ中心からの角度に置き換える。
図19に、カメラと撮影画像の位置関係の概略図を示す。図18と共通する構成要素には同じ参照符号を付与している。
処理対象の画素位置1601をPg(pgx、pgy)とする。また、図18のPv1502に画像中心1602が対応するとし、その座標をPgc(cx、cy)とおく。また、カメラのx方向画角をθpx、y方向画角をθpyとする。この画角は、図16の画角取得部1304によって取得する。画角については、レンズの焦点距離とチップサイズで決まるため、カメラ内部のメモリにデータとして予め与えておけばよい。ここでは、それを取得して用いる。画角は、青空領域の範囲を決定するために用いられる。
カメラ1504とPg1601とを結ぶ直線と、カメラ1504とPgc1602とを結ぶ直線との間の角度を、wx方向にθpx’、wy方向にθpy’とする。なお、既に画像には水平度の補正が施されているため、θpy’はカメラ仰角方向のθ2にのみ寄与する。このとき、これらの角度θpx’、θpy’は、以下の式で表すことができる。
このとき、Pgに対応する天球位置Pgvは、以下の式で表される。
なお、視点から太陽、および視点から観測点へのベクトルが分かれば、偏光位相は分かるため、今後は、天球の半径r=1としてよい。以上より、各画素に対応する偏光位相の天球上での位置を求める。
図20に、カメラ1504、画像エリア2000、天球1505の俯瞰図を示す。カメラ1504から画像中心1602を結んだ線は、天球1505上で、点1502に到達している。なお、図18、図19と共通の構成要素には、同じ参照符号を付している。画角1603、1604の範囲が、撮影範囲に等しい。
カメラ向きの推定には、従来のパターンマッチング手法を適用してよい。偏光位相は0°〜180°を1周期とするため、180°〜360°の位相については、その位相から180を引き、0°〜180°の範囲に収めるとよい。
最も簡易なパターンマッチングの手法として、SSD(Sum of Squared Difference)を利用できる。カメラ向きを仮想的に決定すると、先述のカメラ中心画素位置Pgcが、全天偏光マップ上でどこにあたるかが分かる。その際に、青空偏光画像の各画素位置における偏光位相と、全天偏光マップ上において前記各画素位置に対応する位置の偏光位相との差を求め、2乗誤差を計算する。仮想的に決定したカメラ向きを変化させながら2乗誤差を計算し、その誤差を最小化するカメラ向きを決定する。具体的には、先ほどの全天偏光パターン上の点Pgv1607での偏光位相をφpgvとする。また、実画像上の点Pg1601での偏光位相をφpg、2乗誤差をErrとおく。このとき、2乗誤差Errは、以下の式で表される。
2乗誤差Errが最小になる部分が最も位相がマッチした場合であるので、この2乗誤差Errを最小にするように、画像中心Pgc1606に対応する全天偏光パターン上の点Pv1502を動かす。
このようなマッチングについては、“領域ベースマッチングのための2次元同時サブピクセル推定法” 清水雅夫、 奥富正敏(電子情報通信学会論文誌 D−II、 Vol.J87−D−II、 No.2、 pp.554−564、 February、 2004)に詳しい説明がある。実際には、θ1、θ2を変化させることになるが、前期文献記載の推定法を利用すれば、サブピクセル精度でPv1502を求めることができる。結果をそのときカメラが見ている方位とし、以上によって得られるカメラ方位θ1、θ2を、カメラ向き出力部へ出力する。
次に図16(b)に示す計算モードについて説明する。
サーチモードと同様に、太陽位置を太陽位置取得部1301にて取得する。ここで、前述のとおり、非特許文献1、或いは非特許文献3では、数式で理論的な全天偏光パターンを求めている。逆にこれを利用して、得られたパターンと、太陽位置を用いて計算を行うことにより、カメラの方位角を取得することができる。
例えば、非特許文献1の式を利用すると、青空偏光画像中のある画素での偏光位相をφpgとして、以下の式が成立する。
計算モードで求めたいものは、図19の画素中心Pgcに対応する天球上の位置Pv(θ1、θ2)を規定する2つの変数θ1、θ2である(図18(a)参照)。ここで、青空偏光位相画像の画素(青空領域の画素)は、殆どの場合、複数存在する。これらの画角が既知であることから、各画素Pgの位置を、Pgv(θ1+θpx’、θ2+θpy’)とおくことができる。なお、θpx’、θpy’は、画角とピクセル位置より、式19によって求められる。
以上より、青空偏光位相画像中のそれぞれの画素に対応するφpg、φ1、φ2から、式22を用いてθ1、θ2を計算できる。θ1、θ2を求めるには、最低3つの点について計算すればよいが、実際は偏光位相画像中のノイズの存在などが考えられるため、できるだけ多くの点を利用することが好ましい。例えば、動的計画法を繰り返して適用する手法を用いればよい。
以上により求まったカメラの向きについて、最後に、ロール平行度の補正部でθr°補正したカメラ座標z軸周りの傾きを、元通りに回転させる。これは、式10を逆算すればよい。
なお、計算モードで使用する数式は、前記式22に限ったものではない。他の空の偏光を求める式を利用しても、同様にカメラ向きが取得できる。
次に、図1Fの出力部102について説明する。出力部102は、上記の方法によって取得されたカメラの方位と仰角とを、後段で必要な形式のデータとして出力する。すなわち、図19のθ1とθ2を示す情報を、場合に応じた出力形態にて出力する。
(実施形態2)
図21は、本発明の第2の実施形態に係るカメラ向き検出装置の構成を示すブロック図である。図21において、図1Fに示す構成要素と共通の構成要素には同一の符号を付しており、ここではその詳細な説明を省略する。
実施形態1と本実施形態との間で異なる第1の点は、実施形態1の装置が「青空偏光位相画像取得部100」を備えていた(図1F)のに対して、本実施形態の装置が「青空偏光画像取得部1700」を備えていることにある(図21)。本明細書において「青空偏光画像」は、青空偏光位相画像および青空偏光度画像の両方を意味する。すなわち、本実施形態では、青空偏光位相画像だけでなく、青空偏光度画像を取得する。実施形態1と本実施形態との間で異なる第2の点は、本実施形態の装置が実施形態1の「カメラ向き推定部101」とは異なる処理を実行する「カメラ向き推定部1701」を備えていることにある。
以下、本実施形態における青空偏光画像取得部1700およびカメラ向き推定部1701の構成と動作を説明する。
図22Aに青空偏光画像取得部1700における青空偏光画像処理部100cの構成図を示す。図11Aに示す構成要素と共通の構成要素については同一の符号を付しており、その詳細な説明を省略する。
図22Aにおいて、図11Aと異なる部分は、出力として青空偏光位相画像φskyだけでなく、青空偏光度画像ρskyも出力されるという点である。本実施形態でも、出力選択部1009において、第1のマスク画像A’或いは第2のマスク画像B’のどちらかが採用されるが、本実施形態では、その採用されたマスク画像(「マスク画像C’」と称する)と、偏光度画像ρとのANDを画像演算部1801でとることで、青空偏光度画像ρskyを計算し、青空偏光位相画像φskyとともに出力する。
以下、実際に撮影された図23のシーン画像を用いて説明する。
図23(a)の画像はシーン画像の偏光位相画像φ、図23(b)の画像はシーン画像の偏光度画像ρである。図23(c)の模式図に示すように、空領域1101、建物領域1102、雲領域1103、地面領域1104、カメラ台1105を画像内に含む。なお、これらの符号は、図12の対応する各領域に付されていた符号と同一である。
図23(d)の画像は、最小構成1012によって生成されたマスクA’である。画像演算部1011で、偏光位相画像φと論理積演算した結果が図23(e)の青空偏光位相画像φskyであり、画像演算部1801にて偏光度画像ρと論理積演算した結果が図23(f)の青空偏光度画像ρskyである。ともに、空の特徴的なパターンを有していることがわかる。空の偏光度パターンも、偏光位相パターンと同様に、太陽の位置から計算によって求めることができるため、カメラ向きの推定に利用できる。
なお、図11Aの青空偏光画像処理部100cの変形例(図11B、図11C)と同様に、図22Aの青空偏光画像処理部100cについても、図22B、図22Cに示す変形が可能である。すなわち、図22Bの構成例では、第1の青空領域マスクA’および第2の青空領域マスクB’を作成する前の段階で、いずれのマスクを作成すべきかを選択部1014が偏光度判定部1010の出力ρdに基づいて決定する。また、図22Cの構成例では、第1の青空領域マスクA’および第2の青空領域マスクB’を作成する前の段階で、いずれのマスクを作成すべきかを選択部1014が撮影日時情報に基づいて決定する。
次に、図21のカメラ向き推定部1701の構成を図24および図27に示す。図24はサーチモードの構成、図27は計算モードの構成を示している。どちらも、図16の構成要素と共通の構成要素には同一の符号を付しており、ここではその詳細な説明を省略する。実施形態1における対応する構成と本実施形態の構成との相違点は、青空偏光画像、すなわち、青空偏光位相画像φskyに加えて青空偏光度画像ρskyを入力として持つ点にある。
まず、図24を参照する。
ヨー水平度取得部1901は、カメラのヨー方向の角度、すなわち仰角を取得する。全天偏光マップ候補領域取得部1903は、取得した青空偏光画像に対応する全天偏光マップ領域を、カメラの画角と仰角を元に、候補領域になる部分だけを切り出す。青空領域方向推定部1303は、実施形態1における青空領域方向推定部1303と同様の働きをする。信頼度判定部1904は、取得されたカメラ向きの信頼度を判定する。以下、各部の詳細を説明する。
ヨー水平度取得部1901は、カメラの仰角を取得する。これによって、後段の全天偏光マップの探索領域を制限する。方法としては、例えば、青空偏光画像取得部1700のロール水平度補正部100bが有する水準器と同じものを、仰角が取得できるよう同一平面に設置すればよい。前述したとおり、搭載する水準器は、たとえば特許文献に記載されているような、カメラ内部に搭載可能なものであれば何でもよい。求まった仰角がθ2に相当する。これにより、青空領域方向推定部1303では、カメラの方位角θ1のみを変化させるだけで、カメラの方位を簡易に求めることが可能である。
図25に概念図を示す。図17と同様に、天空の偏光位相を示す図の中に太陽1401およびカメラ位置1404が示されている。撮影された偏光画像の模式図1409には、空の偏光位相が矢印で模式的に示されている。なお、全天の偏光度マップについても、本探索領域制限の手順については同じであるため、図を省略する。
カメラの画角と仰角が既知であれば、撮影されたシーン画像内の青空領域と全天偏光マップのマッチングを行うとき、全天偏光マップ候補領域取得部1903により探索範囲を全天偏光マップ内の帯状領域2001(θ2:固定)に制限することができる。この領域2001の内部で、仰角・画角を固定し、カメラ方位のみを変数としたサーチを実施形態1について説明した方法と同様にして行えばよい。このため、サーチの高速化が期待できる。
ここでは2次元の図を参照しながら説明を行っているが、図18に示すような3次元座標上でのマッチングを行う際にも、θ2を固定して、θ1のみ変化させたマッチングを行えばよい。
なお、計測ズレなどの可能性もあるため、必ずしも画角と仰角を固定する必要はなく、取得した画角の前後、および仰角の前後の適当な範囲の数値に対して、適宜変化させてマッチングに用いることももちろん可能である。
次に、図26Aを参照して、太陽高度によって信頼度を判定する形態を説明する。図26Aの構成は、太陽位置取得部1301と太陽高度判定部1302を備えている点に特徴を有している。
太陽高度判定部1302は、太陽位置取得部1301から得た太陽の高度について、定めた高度以上であれば「信頼度なし」と判定し、処理停止、エラー表示、などの処理を行う。これは、太陽が天頂に近くなった場合、偏光マップが東西南北でほぼ等しくなってしまい、判定の信頼度が低下するからである。
図26Bに、太陽2101が天頂に位置するときの天空の偏光位相パターンを示す。太陽2101が、完全に天頂に位置してしまった結果、どの方位を向いても、Local Meredianからの偏光位相が90°になってしまっている。これでは、カメラ向きを求めることができない。
実際に太陽がどの程度天頂近くを通るかは、緯度経度と季節により異なるため、太陽の南中高度が天頂からある閾値以内の範囲にあった場合は、カメラ向きの判定が不可能とする。この場合、カメラ向き取得を停止し、使用者にエラー表示を行ったうえで終了する。例えば、太陽高度が天頂角5度以内であった場合は、判定不可能とする、などとする。
好ましい実施形態では、図24に示すヨー方向水平度取得部1901と、全天偏光マップ候補領域1903、および図26Aに示す太陽位置取得部1301および太陽高度判定部1302とをともに備えている。
図24、図26Aの構成例によれば、最後に、信頼度判定部1904にて、推定結果の信頼度を判定し、使用者に提示する。図26Aの構成例では、太陽高度の情報が得られるため、これによって信頼度を評価することができるが、信頼度の評価に太陽高度以外の情報を用いることができる。例えば、複数の候補領域が取得された場合に、候補領域数が多ければ、信頼度を低下させるようにしてもよい。或いは、偏光度が低い領域が選択された場合に、信頼度を低下させるようにしてもよい。
信頼度が低い場合は、使用者がこの情報に対し何らかの手段を講じる必要がある。例えば、複数のカメラ向きが提示されている場合には、それらの中から、実際の撮影方向・撮影位置・太陽位置に一番近いものを選択する、という手段がある。或いは、撮影方向を、後述するカメラのオススメ機能により変更するという手段、また、撮影状況が許す場合には、撮影時間を、カメラの表示部で提案される時間まで延期する、という手段などがある。
次に、図27を参照して計算モードを説明する。
図27において、図16(b)と共通する部分には同じ符号を付している。図16(b)と異なる点は、部分青空領域方向計算部1304を備え、部分青空領域方向計算部1304に入力される情報として、ヨー方向の水平度および太陽高度の判定結果が加えられている点である。これらを計算の際の制約条件とし、実施形態1と同様に、計算により青空領域方向を求める。例えば、太陽高度判定部1902の出力結果が、「高度が高すぎるため、計算不可」となれば、その後の計算をストップし、信頼度判定部1904で「信頼度なし」と判断された場合と同様に、利用者に、判定不可である旨をディスプレイなどで通知する。
また、ヨー方向の水平度が既知となる、或いは手がかりとできることで、式22での計算を行う際、θ1のみ求めればよくなるため、簡略かつ信頼度の高い推定を行えるようになる。サーチモード同様に、最後に信頼度判定部1904にて推定結果の信頼度を判定し、使用者に通知する。信頼度が低い場合には、使用者は先に述べた説明同様に、何らかの手段を講じることが求められる。
(実施形態3)
図28は、本発明の第3の実施形態に係るカメラ向き検出装置の構成を示す図である。図28において、図21の構成要素と共通の構成要素には同一の符号を付しており、ここでは、その詳細な説明を省略する。
本実施形態に特徴的な点は、出力部2201の構成と機能にある。出力部2210は、カメラ座標における太陽の方向を計算し、太陽の方向を示す情報とカメラ向きを示す情報を含むデータを規定のフォーマット形式にして作成・出力するという部分を備えている。以下、出力部2201について説明する。
出力部2201の構成を図29に示す。カメラの方位・仰角を元に、座標変換部2301にて、カメラ座標での太陽位置が計算される。そして画像フォーマット作成部2302にて、カメラの向き・太陽方向などを含んだフォーマットの画像Imが作成される。以下、その流れを説明する。
カメラ向きとして、天球上でCamVect(xcm、ycm、zcm)が得られたとする。太陽は、天球上でPs(xs、ys、zs)であるとする。まず、CamVectについて、カメラ光軸方向をz軸に一致させる必要がある。このとき、3×3の回転行列R1を考える。
以下の式26を満たすR1を太陽の座標Psに用いれば、カメラ光軸がz軸方向へ向けた際の太陽位置が求まる。
また、この時点でのカメラ座標は、ロール水平度が補正された状態のままであるため、青空偏光画像取得部で取得したロール方向水平度の値を用いて、実際のカメラ座標の状態に戻す。これは、式10を逆算する回転行列R2を用意すればよい。
これより、天球座標上の太陽Ps(xs、ys、zs)に対して、R1、R2を用いてカメラ座標上の太陽SUNcm(xscm、yscm、zscm)が以下のように求まる。
次に、画像フォーマット作成部2302について説明する。本発明は、カメラ内部での処理以外にも、カメラ外部で、例えば撮影した画像を用いてコンピュータで後処理を施す際にも利用できる。したがって、カメラ向きや太陽方向の情報を、外部に取り出す独自フォーマットが必要となる。
画像フォーマット2401の例を図30に示す。画像フォーマット2401は、撮影した画像Imに対し、撮影時の
・時刻、緯度経度データ 2402
・天球座標上でのカメラ向き(方位・仰角)情報 2403・2404
・カメラ座標上での太陽位置情報 2405
・青空領域分割結果データ 2406
・青空領域偏光位相画像 2407
・デジカメ画像データ 2408
などを同時に有することを特徴とする。もちろん、その他一般的な画像フォーマットが有するような情報を同時に有していてもよい。
アプリケーションによって、最低限必須となる情報は異なるが、特に最低限の情報として、撮影場所の経度緯度、およびカメラ向き(方位)を備えている。本フォーマットの画像が、本画像入力装置から出力される。
以上の情報を有することで、カメラ内部だけでなく、カメラ外部のコンピュータ上などでも、
i)撮影位置とカメラ向きから、撮影対象・撮影物体の認識、ラベリング
ii)カメラ位置と太陽位置から、逆光補正・色補正などの画像補正
iii)青空領域の色変換
iv)画像の真贋判断
等の処理を行うことが可能である。これらの4つの適用例について、以下で説明する。
まずi)について説明する。例えば、パリの凱旋門前などの観光地で、ある写真を撮ったとする。このとき、GPSをカメラが備えていれば、「凱旋門の近くで撮った写真」であることは分かるが、それだけでは、凱旋門を撮ったものなのか、それとも、凱旋門を背にシャンゼリゼ通りを取ったものかは、分からない。
本手法を利用すれば、カメラの方位2403がわかるため、世界地図と照らし合わせて、凱旋門とシャンゼリゼ、どちらを撮ったのかが分かる。これを利用すれば、例えば個人がPCに保存している画像の撮影対象分類に利用できる。或いは、web上にある画像情報の、撮影対象分類にも利用できる情報となる。
さらに、カメラの仰角2405の情報を利用することで、おおよそのカメラ視点方向が認識できる。カメラ光軸方向がわかれば、例えば、個人或いはweb上の、撮影対象ごとに分類された画像間で、画像合成を行う際に非常に有効な情報として利用でき、CG・CV分野での利用について有効な情報を提供できる。
次にii)について説明する。太陽方向座標2404が導出済みであるため、カメラに対する太陽の位置関係が分かる。例えば、カメラが太陽の方向を向いていれば逆光であると予測されるため、逆光補正を行う、或いは、利用者に「逆光補正をオススメ」することができる。この場合、カメラが「オススメ」する向きに対して、その向きにカメラが近づくとピントが合い、逆に離れるとピントがボケる、等の処理を表示部で行えば、利用者が自然にオススメ向きへカメラを向けられるようなフレーミング提案を行うこともできる。なお、日付と時間、緯度経度データ2402と、カメラ向き・仰角データ2403・2405から、PC上で太陽位置の計算を行うことも可能であるため、必ずしも太陽方向2404がフォーマット上で導出済みである必要はない。
次にiii)について説明する。フォーマットが青空領域分割結果データ2406を保持するため、これを利用して、昼間撮影した写真の青空領域の色を夕空の色に変換する、或いは変換候補として提示するなどすることができる。また、同時に、青空領域以外の部分は、別の変換を施す(少し暗くするなど)、或いは施せるようにすることで、より自然なシーン画像の変換が可能となり、画像処理ソフトウェアにおいて、有効な情報を提供できる。
最後にiv)について説明する。青空領域偏光画像2407を有するため、ある画像のデジカメ画像データ2401・時刻データ2402が画像変換・ヘッダ書き換えにより明け方のように変換されていた場合も、本手法で利用した明け方の偏光マップと照らし合わせることで、それが加工されたデータであるかどうかが分かり、画像の真贋判断に利用できる。
あくまでこの4つは代表的な適用例であり、本フォーマットで実施可能な後段処理はこれに限らない。
以上説明してきたように、本発明のカメラ向き検出装置を備える画像入力装置(カメラなど)によれば、シーン画像内の青空領域の偏光情報からカメラ向きを推定するため、天空全体の偏光パターンを取得するための特別なレンズは必要ない。
なお、本発明によるカメラ向き検出方法は、図31に示すように、カメラによって偏光画像およびカラー画像を取得するステップS2500と、偏光画像およびカラー画像に基づいてカラー画像に含まれる青空領域の偏光位相を示す青空偏光位相画像を生成するステップS2502と、カメラ向きを青空偏光位相画像に基づいて推定するステップS2504と、カメラ向きを示す情報を出力するステップS2506とを含む。このようなステップを実行する本発明のカメラ向き検出方法は、上述した構成を有する装置に適用される場合に限定されず、他の構成を有する装置に適用されても実施することが可能である。また、上記のステップをコンピュータに実行させるプログラムを用意し、このプログラムによってカメラなどの画像入力装置に内蔵されるコンピュータの動作を制御すれば、プログラムの改変によって画像入力装置の動作を改善することが容易になる。
(実施形態4)
以下、本発明の第4の実施形態を説明する。
上記の実施形態は、「撮像装置向き検出部」を備える撮像装置に関連しているが、本実施形態は、「撮像装置向き検出部」を備える移動体(典型的には、自動車)に関連している。すなわち、本実施形態における移動体は、偏光位相画像を含む偏光画像、および輝度画像を取得する撮像部を有する撮像装置と、上記の撮像装置向き検出装置とを備えている。更に、この移動体は、移動体の向きと撮像装置向きとの関係に応じて、検出された撮像装置向きから移動体の向きを決定する移動体向き推定部を備えている。
一般的に、カーナビゲーションシステムでは、GPSにより車の位置を求め、車が前進、或いは後進しているという前提のもと、車が移動した際の位置変化に基づいて、車の前面がどちらを向いているか(方位)を求める。
しかし、移動体の停止時には、位置変化が起こらない。したがって、方位の取得には、過去のデータに基づいた推定を行う必要が発生する。停止時だけでなく、交差点のように、ほぼ同じ位置で向きの変更が起こるような場合も、GPSの位置データは変化しない。そのため、過去の方位データと、走行時のタイヤの回転数等の情報から、移動体の方位を推定している。
これらの方法では、過去の状況を元に推定しているため、移動体の停止時間や、路面状況・停止までの走行状況によっては、現在の実際の方位を正しく示さない場合がある。例えば、車がスピンして停止した場合などは、タイヤの回転数から車の回転方向を算出することが出来ないため、車がどちらの方位を向いて停止したのか推定することができない。
これに対して、より直接的に方位を求める方法としては、オーソドックスな方位磁針の利用が考えられるが、方位磁針は磁気の影響を受けやすいことが知られている。すなわち、方位磁針の近くに磁力が発生しているものが存在すれば、簡単に方位が狂ってしまう。車のように、金属である移動体に搭載した場合、移動体の磁化により方位磁針が狂う可能性がある。また、地磁気が検出できないといわれる場所は多くあるが、そのような場所でも利用できないという問題がある。
図32Aは、本実施形態における移動体が備える移動体向き検出装置の構成を示す図である。上記各実施形態の構成と異なる部分は、移動体向き検出装置が、移動体向きを求める移動体向き推定部2600と、移動体向きを出力する移動体向き出力部2601とを備えている点である。更に、本実施形態では、カメラ向きと移動体向きとの関係を規定する情報を提供するデータベース260が、移動体向き推定部2600と接続される。このデータベース2600は、移動体が備えていても良いし、移動体の外部に設置されたデータベース2600と有線または無線によって適宜接続されても良い。
次に、図33を参照しながら、本実施形態における移動体向きの検出動作を説明する。図33は、本実施形態における移動体が備える移動体向き検出装置の動作を示すフローチャートである。図32Aに示すシーン画像・シーン偏光画像取得部(画像撮像部)100aにおいて画像撮像ステップS2700を実行した後、青空偏光画像処理部100cにおいて画像処理ステップS2701を実行する。こうして、青空偏光画像を取得する。
続いてカメラ向き推定部101においてカメラ向き推定ステップS2702を実行することにより撮像素子の向き(撮像装置向き)を推定する。推定した撮像装置向きを示す情報に基づいて、移動体向き推定部2600で移動体向き推定ステップS2703を実行することにより、移動体の向きを推定する。
ここで、撮像装置向きと移動体向きとの関係を説明する。後に図35を参照して説明するように、撮像装置向きと移動体向きとの関係は、カメラ(撮像部)の取り付け位置によって変化する。そのため、撮像装置向きは、必ずしも移動体向きに一致していない。このため、例えば移動体における撮像部の取り付け位置(簡単に「カメラ位置」と称する。)に応じて、撮像装置向きから移動体向きを求める必要がある。
本実施形態では、図32Bに示すような構造を有するデータ(テーブル)がデータベース260内に蓄積されている。データベース260内のデータを参照し、移動体上のカメラ位置(前、後、右、左)に応じて、カメラ向きを示す座標を変換すれば、移動体向きの座標を算出することができる。例えば、撮像装置が自動車の後部に設置されている場合、移動体向きの方位は、カメラ向きの方位を180度回転させたものとなる。
厳密には、カメラ向きと移動体向きとの関係は、カメラ位置のみならず、カメラの視線方向と移動体向きとの関係によって規定される。このため、データベース260に蓄積されるデータは、カメラ向きと移動体向きとのより正確な関係を示す情報を有していることが好ましい。
最後に移動体向き出力部2601において、移動体向き出力ステップS2704を実行することによって、移動体の向き情報を、利用者にディスプレイや音声等で提示できるよう処理する。
図34を参照して、本実施形態における移動体(車2801)の動作の例を説明する。
ここでは、交差点2800に車2801が進入し、停止したという状況を示している。GPS等の速度差分を利用する手法では、現在の車の向きを知るため、交差点から繋がるいずれかの道を選んで、一定距離走行する必要がある。その際、選んだ道が、通過するつもりであった道と異なった場合、改めて交差点から正しい道へ進みなおす必要があり煩雑である。これに対し、本発明を用いると、図34の画像領域2802に示す、車外の青空偏光画像を取得するだけで、一定距離走行することなく、車の向きを利用者に提示することができる。
なお、提示の方法は、図34に示すように、ディスプレイ2803を利用しても、音声警告2804であってもかまわない。特にディスプレイ2803に、現在地付近の地図表示がなされている場合は、車の向きを、地図上に矢印2805のような形式で表示することで、利用者が自車の向きを容易に理解できるという効果がある。
以下、本実施形態をさらに詳しく説明する。
図32Aを参照する。図32Aに示すシーン画像・シーン偏光画像取得部100a、青空偏光画像処理部100c、及びカメラ向き推定部101は、図1Fに示す、同じ番号の処理部とそれぞれ同一の動作を行うため、ここでは説明を省略する。ロール水平度補正部100bについては、図1Fと同様の動作でもよいが、以下に説明する別の動作でもよい。
撮像部は、車上または車中に走行中は固定される。したがって、設置時に地面に対するロール水平度を一度記憶しておけば、その後は設置時の水平度を用いて補正を行えばよい。毎回水平線の抽出を行わなくてよいため、より高速に処理が行えるという効果がある。
続いて、移動体向き推定部2600について説明する。
図35に、移動体上における偏光撮像素子(撮像装置)2900の代表的な設置例を示す。図35には、本実施形態に係る移動体(自動車)2901〜2904が図示されている。
移動体2901では、偏光撮像素子2905のように、前面ボンネット上の位置、或いは後ろボンネット上の位置に設置する。こうすることで、運転の邪魔にならない、比較的高い位置から、青空偏光位相画像を取得できる。
移動体2902のように、ボンネットより低い位置、例えば車体下部近くに偏光撮像素子2906または偏光撮像素子2907を設置してもよい。こうすることで、外観に与える影響を少なくすることができる。また、偏光撮像素子2907のように、斜め向きに設置してもよい。
移動体2903における偏光撮像素子2908のように、運転席の直前の窓、或いは同乗者席の窓等に設置すれば、より高い位置から安定して青空偏光画像を取得できる。
なお、上記の偏光撮像素子2905〜2908は、設置場所のみ異なる同じ偏光撮像素子であるため、偏光撮像素子2900と称する。
永久的に固定位置に設置するのではなく、乗車前のタイミングで、いつでも好きな時に利用者が偏光撮像素子2900の設置位置を決めてもよい。例えばケーブル等で撮像装置と、青空偏光画像処理部を含む装置を接続できるようにすれば、移動体2904に示すように、撮像部の位置をユーザが広い範囲から選択することができる。このようにすると、各利用者の都合に合わせた利用の仕方が出来るため、便利である。撮像部は、車外の青空偏光位相画像を取得できる位置で、なおかつ、車体の直上(画像に太陽を含む可能性が非常に高くなる)を向かない方向であれば、どこにどの向きで利用者が設置してもよい。したがって、ここに図示した配置例以外にも、先ほどの設置条件を満たす位置に設置されればよい。
なお、屋外が雨や曇であることが分かった場合、或いは、時間帯や位置の関係上、カメラ向き推定の精度が著しく落ちる場合は、図36に示すように、そのような状況下にある移動体3000に、本実施形態の装置からメッセージを発するとよい。例えば、ディスプレイ3001に示すように、「信頼度が低いため、利用不可能」と表示する、或いは、音声警告3002にて、本発明の装置が利用不可能である旨を利用者に伝えるといったことがある。このようにすることで、間違った情報を利用者が受け取る可能性を低減できる。
(実施形態5)
以下、本発明の第5の実施形態を説明する。
一般的に、ポータブル機器が有するナビゲーションシステムでは、GPSにより移動する人物の位置を求め、人物が前進、或いは後進しているという前提のもと、人物が移動した際の位置変化に基づいて、人物がどちらを向いているか(方位)を求めている。
しかし、人物が停止した際には、その位置変化が起こらないという問題がある。そのため、方位の取得には、過去のデータに基づいた推定を行う必要がある。ただし、特に人物の歩行速度は車に比べて遅いため、過去の方位データから人物の向きを精度よく推定することは難しい。特に一度立ち止まって周囲を見渡してしまうと、その人物がどちらを向いているのか、目の前の道路が、地図上でどの道路にあたるのかといった情報を提供することは非常に困難である。
本実施形態における向き検出装置では、人物が歩行していない状態でも、人物が把持している携帯機器の向きを推定できる。
図37は、本実施形態における携帯機器向き検出装置の構成例を示す図である。図37の構成において、他の実施形態の構成と異なる部分は、携帯機器向きを求める携帯機器向き推定部3100と、携帯機器向きを出力する携帯機器向き出力部3101を備えている点である。
次に、図38を参照しながら、本実施形態における携帯機器向きの検出動作を説明する。図38は、本実施形態における移動体が備える携帯機器向き検出装置の動作を示すフローチャートである。図32Aに示すシーン画像・シーン偏光画像取得部100aにおいて画像撮像ステップS3200を実行した後、青空偏光画像処理部100cにおいて画像処理ステップS3201を実行する。こうして、青空偏光画像を取得する。
続いてカメラ向き推定部101においてカメラ向き推定ステップS3202を実行することにより撮像素子の向きを推定する。推定した向きの情報に基づいて、携帯機器向き推定部3100で携帯機器向き推定ステップS3203を実行することにより、携帯機器の向きを推定する。
本実施形態でも、図32A、図32Bを参照して説明したデータベースを用いることにより、カメラ向きと携帯機器向きとの関係に基づいてカメラ向きから携帯機器向きを決定することができる。
最後に携帯機器向き出力部3101において、携帯機器向き出力ステップS3204によって、携帯機器の向き情報を、利用者にディスプレイや音声等で提示できるよう処理する。
図39に、利用状況の例を図示する。ここでは、分岐3300に人物3301がたどり着き、停止したという状況を示している。GPS等の速度差分を利用する手法では、現在の人物の向きを知るためには、分岐から繋がるいずれかの道を選んで、一定距離歩行する必要がある。その際、選んだ道が、通過するつもりであった道と異なった場合、改めて分岐から正しい道へ進みなおす必要があり、煩雑である。これに対し、本発明を用いると、図39の画像領域3302に示す、車外の青空偏光画像を取得するだけで、長距離の無駄な歩行を伴うことなく、携帯機器の向きを利用者に提示することが出来る。なお、提示の方法は、図39に示すように、ディスプレイ3303を利用しても、音声警告3304であってもかまわない。特にディスプレイ3303に、現在地付近の地図表示がなされている場合は、携帯機器の向きを、地図上に矢印3305等で表示することで、利用者が自らの向きを容易に理解できるという効果がある。
以下で、本実施形態をさらに詳しく説明する。
図37に示すシーン画像・シーン偏光画像取得部100a、青空偏光画像処理部100c、及びカメラ向き推定部101は、図1Fに示す、同じ番号の処理部とそれぞれ同一の動作を行うため、ここでは説明を省略する。
なお、ロール水平度補正部100bについては、図1Fと同様の動作でもよいが、さらに以下に説明する別の動作を追加してもよい。
地面に対する撮像素子のロール水平度は、すなわち携帯機器の把持状態を示す要素となる。一般的には、撮像素子もディスプレイも、ともに携帯機器に固定されて搭載される。ディスプレイを見ている利用者の状態も、一般的には地面に垂直に立つか座るかである。したがって、撮像素子の地面に対する水平度が判れば、それは利用者に対するディスプレイの水平度と等しくなる。したがって、ロール水平度は、青空偏光位相の処理だけでなく、出力部にも入力し、水平度に応じた表示を行うように補正する、という処理を追加すれば、利用者が容易に向きを認識可能になるという効果がある。
続いて、携帯機器向き推定部3100について説明する。
まず、図40に、携帯機器上における偏光撮像素子3400の設置例のうちの代表的なものを示す。図40には、本実施形態に係る携帯機器(携帯電話)3401〜3403が図示されている。
携帯機器3401における、偏光撮像素子3400のように、携帯電話付設のカメラを、カラー画像・偏光画像が同時に撮影できる偏光撮像素子を用いたものとすることで、利用者に不便を感じさせることなく、青空偏光位相画像を取得できる。
なお、この場合、本実施形態の装置は、カメラ向き検出装置として動作することに加え、例えば任意の携帯電話付設カメラ撮影画像に対して、例えば図13(a)に示した、偏光位相を表した画像に変換したものを出力してもよい。また、図13(d)に示すような、空のみ抜き出した画像を作成したり、空の領域のみ別のテクスチャに置き換えるといった画像変換に用いても良い。 また、携帯機器3402の偏光撮像素子3404のように、ディスプレイを確認する際に、最も高度が高い位置にくる場所近くに偏光撮像素子3404を設置することで、より高い位置から安定に青空偏光画像の取得が行える可能性がある。
また、永久的に固定位置に設置するのではなく、ケーブルで接続可能な外部パーツとして、いつでも好きな時に利用者が素子の設置位置を決められるようにしてもよい。携帯機器3403に示すように、青空偏光位相画像を取得できるような位置で、なおかつ、直上(画像に太陽を含む可能性が非常に高くなる)を向かない方向であれば、どこにどの向きで利用者が設置してもよい。このようにすると、各利用者は簡易に青空領域の取得位置の調整が行えるため、便利である。
ここに図示した以外にも、先ほどの設置条件を満たす位置に設置されたものについては、全て本発明の本実施形態が含むものとする。
なお、屋外が雨や曇であることが分かった場合、或いは、時間帯や位置の関係上、カメラ向き推定の精度が著しく落ちる場合は、図41に示すように、そのような状況下にある携帯機器3500に、本発明の装置からメッセージを発するとよい。例えば、ディスプレイ3501に示すように、「信頼度が低いため、利用不可能」と表示する、或いは、音声警告3502にて、本発明の装置が利用不可能である旨を利用者に伝えるといったことがある。このようにすることで、間違った情報を利用者が受け取る可能性を低減できる。
(実施形態6)
本発明の第6の実施形態について以下で説明する。
以上で述べた本発明の実施形態は、カラー偏光画像撮像部を備えることを特徴としていたが、本発明による撮像装置向きの検出には、必ずしもカラー画像を取得する必要はない。例えばモノクロの輝度画像によっても撮像装置向きを決定することができる。 図42は、本発明の第6の実施形態における撮像装置向き検出装置の構成を示す図である。図42の構成において、他の実施形態における構成と異なる部分は、シーンの画像を取得するシーン画像・シーン偏光画像取得部3600a、及び青空領域の偏光状態を求める青空偏光画像処理部3600cを備える点にある。これ以外の構成については、実施形態1の構成と同様であるため、ここでは説明を省略する。
本実施形態の撮像装置向き検出装置は、全ての構成要素が図43に示すカメラに収められていることが好ましい。しかし、例えばシーン画像・シーン偏光画像取得部3600aとロール方向の傾きを計測する水準器とを図42の画像取得部3600が備え、ロール水平度補正部100b、青空偏光画像処理部3600c、カメラ向き推定部101、および出力部102がカメラの外部に設けられていても良い。
図43に、シーン画像・シーン偏光画像取得部3600aの構成を示す。
カメラは、シーン画像・シーン偏光画像取得部3600aとして機能する撮像部を備えるため、カメラの向きに応じて撮影されるシーン画像・シーン偏光画像の内容が変化する。
カメラ向きを推定するための一連の処理は、カメラの内部で実行されることが好ましいが、必ずしもカメラの内部で実行される必要はない。
図43に、本実施形態のシーン画像・シーン偏光画像取得部3600aの構成を示す。屋外においては、シーン画像およびシーン偏光画像の両方を取得することが必要である。風による雲の動きなども存在するため、偏光画像もリアルタイムに取得することが好ましい。なお、シーン画像とシーン偏光画像は同時に取得することが好ましいが、数秒程度までの間隔で取得しても構わない。
図43のシーン画像・シーン偏光画像取得部3600aは、被写体に対してリアルタイムに輝度画像情報を取得すると同時に偏光画像情報を取得し、2種類の偏光画像情報(偏光度画像ρ及び偏光位相画像φ)を出力する構成となっている。
図43のシーン画像・シーン偏光画像取得部3600aでは、レンズ3700aおよび絞り3700bを通った入射光が、偏光取得部3701に入射する。この入射光から、偏光取得部3701は輝度動画像情報および偏光画像情報の両方をリアルタイムに取得することができる。偏光取得部3701からは、輝度動画像情報および偏光情報画像情報を示す信号が出力され、それぞれ、輝度情報処理部3702および偏光情報処理部3703に与えられる。輝度情報処理部3702および偏光情報処理部3703は、上記信号に対して各種の処理を施し、輝度画像C、偏光度画像ρ、偏光位相画像φを出力する。
偏光取得部3701では、モノクロ画像と偏光画像とを同時に取得する。このためには、例えば特許文献3に開示されている技術を利用することができる。この技術では、輝度画像と被写体の部分偏光の画像とを同時に取得することを目的とし、複数の異なる偏光主軸(透過軸)を有するパターン化偏光子を撮像素子に空間的に配置する。パターン化偏光子としては、フォトニック結晶や構造複屈折波長板アレイが利用されている。図44は、このような偏光輝度撮像素子の一例を示す。狭帯域カラーフィルタ3800、およびパターン化偏光子3801が、撮像素子画素3802の前面に重ねて設置されている。入射光は狭帯域カラーフィルタ3800、パターン化偏光子3801を透過して撮像素子に到達し、撮像素子画素3802によってモノクロ輝度が観測される。このようにすれば、輝度画像情報および偏光画像情報の両方を同時に取得することができる。なお、狭帯域カラーフィルタ3800は、パターン化偏光子の動作する波長帯を選択するように、例えば、500−550(nm)の透過域を有するものを利用することが望ましい。
図45は、偏光取得部3701における撮像面の一部を光軸方向の真上から見た図である。簡単のため、撮像面のうち、密着する4つの微細偏光画素(2×2)のみが図示されている。各微細偏光画素の上に記されているストライプは、微小偏光板の偏光主軸方向を模式的に示している。図45の例では、4つの微細偏光画素が、それぞれ、角度Ψi=0°、45°、90°、135°の偏光主軸を有している。
なお、被写体の特に明るい鏡面反射部分に含まれる偏光成分や、被写体の影領域に含まれる偏光成分などを確実に取得するため、撮像素子の輝度ダイナミックレンジとビット数はなるべく大きいこと(例えば16bit)が望ましい。
図45に示す構成によって偏光画素毎に取得された輝度の情報は、図43の偏光情報処理部3703で処理される。この処理は、図8を参照して説明した処理と同一である。
以上の処理で正弦関数近似のA、B、Cの3パラメータが確定する。こうして、偏光度ρを示す偏光度画像と偏光位相φを示す偏光位相画像が求められる。偏光度ρは、該当画素の光が偏光している程度を表し、偏光位相φは、該当画素の光の部分偏光の主軸角度を表している。なお、偏光の主軸角度は0と180°(π)は同一である。値ρおよびφ(0≦φ≦π)は、それぞれ、実施形態1同様に、(式6)および(式7)によって算出される。
なお、本実施形態のパターン化偏光子は、フォトニック結晶、フィルム型の偏光素子、ワイヤーグリッド型、その他の原理による偏光素子であってもよい。
図43に示す輝度情報処理部3702は、偏光取得部3701から出力される情報を用いて、輝度を計算する。偏光子を透過した光の輝度は、偏光子に入射する前の光が有する本来の輝度とは異なる。非偏光照明の場合、理論的には、偏光のすべての偏光主軸における観測輝度を平均化した値が偏光子に入射する前の光が有する本来の輝度に相当する。角度偏光画素P1の画素における観測輝度をI1と表現すると、(式8)同様の観測輝度平均化を行うことで、輝度を算出することができる。
各偏光画素における輝度を得ることにより、通常の輝度画像を生成できる。
輝度画像C、偏光度画像ρ、偏光位相画像φの各々における各画素の輝度および偏光情報は、図45に示す4つの偏光画素を用いて得られる。そのため、個々の輝度および偏光情報は、図45に示す4つの偏光画素の中心に位置する仮想画素点3900における値の代表を示していると考えることができる。従って、輝度画像および偏光画像の解像度は本来の撮像素子の有する解像度の縦1/2×横1/2に低下する。このため撮像素子画素数はできるだけ大きいことが望ましい。
図42に示すロール水平度補正部100bによる撮影したシーン画像・シーン偏光画像の傾き補正については実施形態1と同じであるため説明を省略する。
続いて、図46Aを参照しながら、青空偏光画像処理部3600cの構成を説明する。
青空偏光画像処理部3600cは、偏光度画像ρ、偏光位相画像φ、および輝度画像Yを入力として、青空偏光位相画像φSKYを出力する。青空偏光位相画像φSKYは、シーンの中からカメラ向き、太陽向きを推定するために用いられる。
青空偏光画像処理部3600cにおいて、偏光度2値化部1001は、偏光度画像ρをしきい値Tρで2値化する。輝度2値化部1003は、輝度画像Yに対して、しきい値TC1を用いて2値化処理する。画像演算部1005は、偏光度2値化部1001で2値化された偏光画像ρ’と、輝度2値化部1003で2値化された輝度画像C1’とのAND(論理積)演算をし、マスク画像A’を出力する。
画像演算部1011は、採用された青空領域マスクMskyと偏光位相画像φとの論理積演算を実施して、青空偏光位相画像φskyを生成する。
なお、2値化閾値Tρは、画像中の各画素の偏光度から作成したヒストグラムから決定し、偏光度ヒストグラムにおける偏光度の2つのピークの中間値を閾値Tρとするとよい。ここで、2値化閾値Tρは、偏光度の高低を判定するための閾値であり、0<Tρ<1の関係を満たす。
以上の2種のマスク画像ρ’、C1’を画像演算部1005において論理積演算処理すると、一部偏光度の低い雲領域を除去した青空領域のみを分離したマスク画像A’を得ることができる。このマスク画像A’を画像演算部1011において、偏光位相画像φと論理積演算処理する。
以上の処理によって、青空偏光位相画像φskyが得られる。
ここで注意すべきは、青空領域を決定する際、原則的には雲領域を除去することが望ましい、ということである。後段のカメラ向き検出において、青空偏光位相画像φskyと全天偏光マップとの間で対応する点を探索する必要がある。当然ながら、全天偏光マップには、雲の存在が考慮されていない。ため、雲の存在によって偏光位相が乱された青空偏光位相画像φskyを利用してしまうと、推定誤りが起こる可能性がある。
なお、特に雲が薄い場合、雲領域でも偏光位相が乱されないことがある。このような場合は、青空領域が雲を含んでいても良い。雲によって偏光位相が乱されるかどうかは、雲領域の偏光度の低下度合いが目安になる。偏光に基づいて青空領域を決定する本実施形態の方法によれば、偏光度の低い雲領域のみを自動的に除去できる、という利点がある。
なお、画像上に現れる空領域の偏光度が低い場合、以上に述べた青空領域抽出が失敗してしまうこともある。これを防ぐため、図46Bに示す出力選択部4001、偏光度判定部1010を利用してもよい。出力選択部4001は、2値化された輝度画像C1’、偏光度画像ρ’から生成された第1の青空領域マスクA’を採用するかどうかを、偏光度判定部1010の出力ρdに基づいて決定する。
具体的には、偏光度判定部1010でシーン偏光度画像ρの偏光度ヒストグラムに基づいて平均偏光度を求める。続いて、図46Bの出力選択部4001において、偏光度判定部1010から出力される平均偏光度ρdが閾値を超えない場合、偏光度からの青空偏光位相画像φsky抽出は信頼度が低くなるため、処理を停止するものとする。所定閾値は、たとえばTρ1=0.1より低い場合に、圏外表示に切り替えるとすればよい。
なお、先に述べた通り、図46Aの構成で実施できるかどうかは、大きくは時刻に依存する。したがって、出力選択部4001、偏光度判定部1010を利用して、青空領域の抽出可否を切り替える代わりに、撮影日時によって切り替えるようにしてもよい。例えば午後4時以降、日没までを夕方として定義し、夕方でない場合は図46Aの構成で青空領域の決定を実施し、夕方は図46Bの構成を用いて抽出可否を判断するようにするということも可能である。
次に、図46C、図46Dを参照して、青空偏光画像処理部3600cの他の構成例を説明する。
図46Bに示された青空偏光画像処理部3600cでは、前述したように、2値化された輝度・偏光度画像C1’、ρ’から生成された青空領域マスクA’を採用するかを偏光度判定部1010の出力ρdに基づき、出力選択部4001で判定した。
これに対して、図46Cの青空偏光画像処理部100cでは、青空領域マスクA’を作成する前の段階で、マスクを作成すべきかどうかを選択部4101において、偏光度判定部1010の出力ρdに基づき判定する。例えば、偏光度判定部1010から出力されるρdが閾値を超えない場合、図46Cの選択部4101は、青空領域マスクA’を作成せずに処理停止を選択する。その結果、図46Cの青空偏光画像処理部3600cは、第1の青空領域マスクA’を作成せず、処理を停止する。利用者には、圏外表示等を行っても良い。このため、偏光度が十分高い場合のみマスクを作成すればよく、使用されないマスクを作成するための処理を省くことができる。
図46Dの青空偏光画像処理部3600cでも、同様に、第1の青空領域マスクA’を作成する前の段階で、マスクを作成すべきかを選択部4201が決定する。ただし、図46Dの青空偏光画像処理部3600cでは、マスク作成可否の選択を、偏光度判定部1010の出力ρdに基づいてではなく、日時情報取得部1016が出力する撮影日時情報に基づいて決定する。時刻が夕方(例えば午後4時以降、日没まで)を示しているとき、図46Dの選択部4201は、第1の青空領域マスクA’を作成不可と判定する。その結果、マスクA’は作成されず、処理を停止する。図46C同様に、使用されないマスクは作成されないため、より処理が効率化されるという効果がある。
以上の手順で作成された青空偏光位相画像、或いは青空偏光画像を用いて、撮像装置向きの推定を行う。なお、図42に示したカメラ向き推定部101、及び出力部102の動作については、他の実施形態と同じであるため、ここでは詳細な説明を省略する。
なお、本実施形態におけるカメラ向き検出方法は、図47に示すように、カメラによって偏光画像および輝度画像を取得するステップS4300と、偏光画像および輝度画像に基づいて輝度画像に含まれる青空領域の偏光位相を示す青空偏光位相画像を生成するステップS4301と、カメラ向きを青空偏光位相画像に基づいて推定するステップS4302と、カメラ向きを示す情報を出力するステップS4303とを含む。このようなステップを実行する本発明のカメラ向き検出方法は、上述した構成を有する装置に適用される場合に限定されず、他の構成を有する装置に適用されても実施することが可能である。また、上記のステップをコンピュータに実行させるプログラムを用意し、このプログラムによってカメラなどの画像入力装置に内蔵されるコンピュータの動作を制御すれば、プログラムの改変によって画像入力装置の動作を改善することが容易になる。
なお、本実施形態におけるカメラ向き検出方法は、特に図46B、図46C、図46Dでの例で示したような場合、すなわち、偏光度判定部1010からの出力結果を元に、出力選択部4001において処理継続の可否を判定するようなケースでは、処理継続不可の場合にカメラ向き推定部101が必ずしも動作する必要性はない。
従って、図48(a)に示すように、青空偏光画像処理部3600cから出力部102へ、例えば「処理続行不可」の指示を送りユーザへの表示をするようなパスを本装置が備えていてもよい。同様に、図48(b)に示すように、本装置を実現する方法が、青空偏光位相画像を生成するステップS4301から直接、出力ステップへ処理継続可否情報を出力してもよい。前記の構成、或いはフローを採用することによって、カメラ向き推定部において無駄な処理が発生することを防ぐことが出来るという効果がある。