以下に添付図面を参照して、撮像装置および撮像装置の制御方法の実施形態を詳細に説明する。
図1は、各実施形態による3次元復元モデルの作成方法を概略的に説明するための図である。撮像装置50aは、可視光領域および非可視光領域の光のうち可視光領域を撮像可能な1以上の第1の撮像体と、可視光領域および非可視光領域の光のうち、少なくとも非可視光領域の光を撮像可能な、2以上の第2の撮像体と、を含む。ここでは、説明のため、撮像装置50aは、1の第1の撮像体と、2の第2の撮像体と、を含むものとする。
被写体60、60、…に対して、非可視光領域の光80を射出する光源51による所定のパターン81を投影する。撮像装置50aが含む2の第2の撮像体により当該パターン81を撮像する。2の第2の撮像体それぞれで撮像された非可視光領域の光80によるパターン81に基づきマッチング処理を行い、マッチング処理結果に基づき深度情報(奥行き情報)を求めて3次元の点群情報(以下、3次元点群情報)を生成する。
また、上述の第2の撮像体による撮像と同期させて、撮像装置50aが含む1の第1の撮像体により、被写体60、60、…を撮像する。第1の撮像体により撮像された撮像画像は、可視光領域による色情報を含む画像となる。また、第1の撮像体は、フィルタなどを用いて非可視光領域の光が撮像されないように構成され、当該第1の撮像体により撮像された撮像画像は、非可視光領域の光によるパターン81を含まない画像となる。
第2の撮像体により撮像された撮像画像に基づき生成した3次元点群情報を、第1の撮像体により撮像された撮像画像に再投影することで、3次元点群情報に色情報が付加され、3次元復元モデルが生成される。
このように、実施形態では、非可視光領域の光によるパターン81を撮像した撮像画像に基づき深度情報を求めて3次元点群情報を生成し、生成した3次元点群情報を、当該撮像と同期して撮像された可視光領域の光による撮像画像に再投影している。そのため、より高精度な3次元復元モデルを、より簡易な構成で作成可能となる。
図1では、撮像装置50aが1方向側(前面側とする)を、180°未満の画角70で撮像するように示しているが、これはこの例に限定されず、全周囲を全天球画像として撮像可能な撮像装置を用いることもできる。図2は、各実施形態に適用可能な、全天球画像を撮像可能な撮像装置50bを用いた場合の例を示す図である。撮像装置50bは、上述の撮像装置50aと同様に、可視光領域および非可視光領域のうち可視光領域の光を撮像する1以上の第1の撮像体と、可視光領域および非可視光領域のうち少なくとも非可視光領域の光を撮像する2以上の撮像体と、を含む。ここで、各撮像体は、それぞれ180°以上の画角を有する2つの魚眼レンズを、光軸の方向を一致させ、且つ、互いに逆方向を撮像するように配置され、全天球画像の撮像が可能なように構成される。
なお、ここでも、説明のため、撮像装置50bは、1の第1の撮像体と、2の第2の撮像体と、を含むものとする。
図2において、平面40は、垂直方向をZ軸で表した場合の、Z軸に直交するX軸およびY軸により表される平面である。平面40の例としては、水平な土地や床面が挙げられる。例えば、平面40上のZ軸の位置に撮像装置50bを配置し、それぞれ非可視光領域の光80によるパターン81を射出する複数の光源51、51、…を、Z軸を中心とした全周にパターン81、81、…を照射可能に、平面40上に配置する。また、例えば屋内など、Z軸の正方向(撮像装置50bの上方向)に被写体が存在する場合は、Z軸正方向にもパターン81が照射されるように、光源51を配置する。
各光源51、51、…によるパターン81、81、…を、撮像装置50bの全周に存在する被写体60、60、…に投影させた状態で、撮像装置50bにおいて、1の第1の撮像体による撮像と、2の第2の撮像体による撮像とを同期させて実行する。これにより、可視光領域の光により撮像された1つの全天球画像と、非可視光領域の光を含んで撮像された2つの全天球画像が取得される。2の第2の撮像体それぞれで撮像された非可視光領域の光80による、全天球画像に含まれるパターン81、81、…に基づきマッチング処理を行い、マッチング処理結果に基づき深度情報を求めて3次元点群情報を生成する。
また、第1の撮像体により撮像された全天球画像は、可視光領域による色情報を含む画像となる。第2の撮像体により撮像された全天球画像に基づき生成した3次元点群情報を、第1の撮像体により撮像された全天球画像に再投影することで、3次元点群情報に色情報が付加され、3次元復元モデルが生成される。この場合、撮像装置50bの周囲360°について、1度の撮像により3次元復元モデルを生成できるため、3次元復元モデルの生成をより効率的に実行可能となる。
なお、光源51により射出される非可視光領域の光80によるパターン81は、繰り返し要素の少ないパターン(例えばランダムパターン)とすると、マッチング処理が容易となり、好ましい。
以下では、撮像装置として、図2に示した全天球画像の撮像が可能な撮像装置50bを適用した場合について説明を行う。
[第1の実施形態]
第1の実施形態について説明する。図3は、第1の実施形態に係る撮像装置の一例の外観を示す図である。図3において、撮像装置1は、図2に示した撮像装置50bに対応するもので、略直方体の筐体10の第1の面に、複数(この例では3個)の撮像レンズ20IRa1、20VLaおよび20IRa2と、シャッタボタン30とが設けられる。筐体10内には、各20IRa1、20VLaおよび20IRa2にそれぞれ対応して撮像素子が設けられる。
各撮像レンズ20IRa1、20VLaおよび20IRa2に入射した光は、筐体10に設けられる、それぞれ撮像レンズ20IRa1、20VLaおよび20IRa2を含む結像光学系を介して、それぞれ対応する撮像素子に照射される。撮像素子は、例えばCCD(Charge Coupled Device)であって、照射された光を電荷に変換する受光素子である。撮像素子は、これに限らず、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサであってもよい。
また、筐体10の、第1の面の背面側の第2の面に、第1の面の各撮像レンズ20IRa1、20VLaおよび20IRa2と対応して、複数の撮像レンズ20IRb1、20VLbおよび20IRb2が設けられる。これら撮像レンズ20IRb1、20VLbおよび20IRb2も、上述の各撮像レンズ20IRa1、20VLaおよび20IRa2と同様に、筐体10内にそれぞれ対応した撮像素子が設けられる。各撮像レンズ20IRb1、20VLbおよび20IRb2に入射された光は、各撮像レンズ20IRb1、20VLbおよび20IRb2を含む各結像光学系を介して、それぞれ対応する撮像素子に照射される。各撮像素子は、照射された光を電荷に変換する。
詳細は後述するが、各撮像素子を駆動する各駆動部は、トリガ信号に応じて、各撮像素子に対してシャッタ制御を行うと共に、各撮像素子から光が変換された電荷を読み出す。各駆動部は、各撮像素子から読み出した電荷をそれぞれ電気信号に変換し、この電気信号をディジタルデータとしての撮像画像に変換して出力する。各駆動部から出力された各撮像画像は、例えばメモリに記憶される。以下では、例えば、トリガ信号に応じて撮像レンズ20IRa1に入射された光に基づく撮像画像を出力する動作を、便宜上、撮像レンズ20IRa1による撮像、などと記述する。
なお、筐体10を直方体と見做した場合に、撮像レンズ20IRa1、20VLaおよび20IRa2が整列する方向に沿った辺(長辺)に接する面を側面、第1面、第2面および2つの側面それぞれの上端に接する面を上面、下端に接する面を底面とする。図3の例では、撮像レンズ20IRa1および20IRb1が配置される側の上端に接する面が上面、シャッタボタン30が配置される側の下端に接する面が底面となる。
また、図3の例では、各撮像レンズ20IRa1、20VLaおよび20IRa2において、撮像レンズ20IRa1および20IRa2は、間の距離を距離dとして配置される。一方、撮像レンズVLaは、撮像レンズ20IRa1および20IRa2それぞれとの間の距離を距離dv1およびdv2として配置される。距離dv1と距離dv2は、等しい値であると好ましいが、これに限られるものではない。また、撮像レンズ20IRa1および20IRb1、撮像レンズ20VLaおよび20VLb、撮像レンズ20IRa2および20IRb2は、それぞれ、筐体10の例えば底面からの高さが一致するように、筐体10に配置される。
各撮像レンズ20IRa1、20VLaおよび20IRa2と、各撮像レンズ20IRb1、20VLbおよび20IRb2とにおいて、筐体10の底面からの高さが一致する撮像レンズの組と、当該撮像レンズの組に対応する各結像光学系および各撮像素子と、を含めて、撮像体と呼ぶ。図3の例では、撮像レンズ20IRa1および20IRb1の組が、対応する各結像光学系および各撮像素子を含めて撮像体21IR1とされている。撮像体21VLおよび21IR2も同様に、それぞれ対応する各結像光学系および各撮像素子を含めて、それぞれ撮像体21VLおよび21IR2と呼ぶ。
シャッタボタン30は、操作に応じて、各撮像レンズ20IRa1、20VLaおよび20IRa2と、各撮像レンズ20IRb1、20VLbおよび20IRb2とによる撮像を指示するためのボタンである。シャッタボタン30が操作されると、各撮像レンズ20IRb1、20VLbおよび20IRb2、および、各撮像レンズ20IRb1、20VLbおよび20IRb2による撮像が同期して行われる。
なお、以下では、例えば「撮像体21IR1において撮像レンズ20IRa1および20IRb1による撮像が行われる」ことを、適宜、「撮像体21R1による撮像が行われる」などのように記述する。
図4は、第1の実施形態に係る撮像装置1の内部構造を概略的に示す図である。図4では、撮像装置1の筐体10を側面からの断面図として示し、図において左側が第1面(正面方向とする)、右側が第2面(背面方向とする)となっている。撮像体21IR1は、撮像素子200a1を含む第1面側の撮像レンズ20IRa1と、撮像素子200b1を含む第2面側の撮像レンズ20IRb1と、を含む。
なお、図4では、撮像素子200a1および200b1が、それぞれ受光面を正面方向および背面方向に向けるように配置されているが、実際には、撮像素子200a1および200b1は、撮像装置1の筐体10の上下方向に、受光面を互いに内側に向けて配置される。正面方向および背面方向から入射された光は、それぞれプリズムなどにより方向を変換されて、撮像素子200a1および200b1に入射される。この構成に関する詳細は、後述する。
撮像体21VLおよび21IR2も、撮像体21IR1と同様に構成される。すなわち、撮像体21VLは、撮像素子200a2を含む第1面側の撮像レンズ20VLaと、撮像素子200b2を含む第2面側の撮像レンズ20VLbと、を含む。また、撮像体21IR2は、撮像素子200a3を含む第1面側の撮像レンズ20IRa2と、撮像素子200b3を含む第2面側の撮像レンズ20IRb2と、を含む。
さらに、第1の実施形態に係る撮像装置1において、撮像体21IR1および21IR2は、可視光領域の光および非可視光領域の光のうち、少なくとも非可視光領域の光を撮像可能に構成されている。一方、撮像体21VLは、可視光領域の光および非可視光領域の光のうち、可視光領域の光を選択的に撮像可能とされ、非可視光領域の光を撮像しないように構成されている。
例えば、撮像体21IR1および21IR2は、非可視光領域の光を選択的に透過させるフィルタ22IRが、撮像レンズ20IRa1および20IRb1と、撮像レンズ20IRa2および20IRb2に、それぞれ設けられる。例えば、撮像体21IR1において、撮像レンズ20IRa1および20IRb1に入射された光は、各フィルタ22IRにより非可視光領域の光が選択的に透過されて、撮像素子200a1および200b1に照射される。これは、撮像体21IR2においても同様である。
また、撮像体21VLは、可視光領域の光を選択的に透過させるフィルタ22VLが、撮像レンズ20VLaおよび20VLbにそれぞれ設けられる。撮像レンズ20VLaおよびVLbに入射された光は、各フィルタ22VLにより可視光領域の光を選択的に透過されて、撮像素子200a2および200b2に照射される。したがって、撮像素子200a2および200b2により撮像された撮像画像は、色情報を持つ画像となる。
第1の実施形態では、非可視光領域は、赤外光領域であるものとする。ここでは、赤外光領域を波長が780nm以上の領域であるものとし、フィルタ22IRは、例えば波長が780nm以下の光をカットする特性を持つ。また、フィルタ22VLは、波長が780nm以上の光をカットする特性を持つ。
これに限らず、撮像レンズ20IRa1および20IRb1と、撮像レンズ20IRa2および20IRb2とにフィルタ22IRを設けずに、非可視光領域および可視光領域の光を共に透過可能としてもよい。すなわち、撮像体21IR1および21IR2において非可視光領域の光および可視光領域の光のうち少なくとも非可視光領域の光を撮像可能とし、撮像体21VLにおいて非可視光領域の光および可視光領域の光のうち可視光領域の光を選択的に撮像可能、非可視光領域の光を選択的に撮像不可とするような構成であればよい。
また、フィルタ22IRは、例えば撮像レンズ20IRa1の場合、撮像レンズ20IRa1に含まれるレンズに対して設けてもよいし、撮像素子200a1に対して設けてもよい。これは、フィルタ22VLにおいても同様である。さらに、フィルタ22IRおよび22VLを設けずに、撮像体21IR1、21VLおよび21IR2では非可視光領域および可視光領域の光をそれぞれ撮像可能とし、その後の画像処理において、撮像体21VLにより撮像された撮像画像データの非可視光領域成分をカットすることも考えられる。
図4において、処理回路基板31は、各撮像素子200a1~a3、200b1~200b3を駆動するための駆動制御回路が搭載される。処理回路基板31に搭載される駆動制御回路は、ユーザによるシャッタボタン30の操作に応じて、各撮像素子200a1~a3、200b1~200b3による撮像を同期して実行させるためのトリガ信号である同期撮像指示信号32を出力する。
図5は、第1の実施形態に適用可能な、撮像体21IR1、21VLおよび21IR2の一例の構造を示す図である。なお、以下では、各撮像体21IR1、21VLおよび21IR2を区別する必要が無い場合には、これら撮像体21IR1、21VLおよび21IR2を、撮像体21として纏めて記述する。
図5において、撮像体21は、それぞれ撮像レンズ20aおよび20bを含む結像光学系201aおよび201bと、CCDまたはCMOSセンサによる撮像素子200aおよび200bとを含み構成される。各結像光学系201aおよび201bは、例えば6群7枚の魚眼レンズとして構成されている。この魚眼レンズは、180°(=360度/n、nは光学系数=2)より大きい全画角を有し、好適には、185°以上の画角を有し、より好適には、190°以上の画角を有する。
各結像光学系201aおよび201bは、それぞれ、光路を90°変更するプリズム202aおよび202bを含む。各結像光学系201aおよび201bにそれぞれ含まれる6群7枚の魚眼レンズは、プリズム202aおよび202bより入射側のグループと、出射側(撮像素子200aおよび200b側)のグループとに分けることができる。例えば、結像光学系201aにおいて、撮像レンズ20aに入射された光は、プリズム202aより入射側のグループに属する各レンズを介してプリズム202aに入射される。プリズム202aに入射された光は、光路を90°変換されて、プリズム202aより出射側のグループに属する各レンズ、開口絞り、フィルタを介して撮像素子200aに照射される。
2つの結像光学系201aおよび201bの光学素子(レンズ、プリズム202aおよび202b、フィルタおよび開口絞り)は、撮像素子200aおよび200bに対して位置関係が定められる。より具体的には、結像光学系201aおよび201bの光学素子の光軸が、対応する撮像素子200aおよび200bの受光領域の中心部に直交して位置するように、かつ、受光領域が、対応する魚眼レンズの結像面となるように、位置決めが行われる。また、撮像体21では、結像光学系201aおよび201bは、同一仕様のものであり、それぞれの光軸が合致するようにして、互いに逆向きに組み合わせられる。
図6は、第1の実施形態に係る撮像装置1の外観を概略的に示す3面図である。図6(a)、図6(b)および図6(c)は、それぞれ撮像装置1の上面図、前面図および側面図の例である。図6(b)において、撮像レンズ20IRa2は、レンズ中心が筐体10の底面から高さhに位置するように配置される。この撮像レンズ20IRa2に対して距離dだけ上面側に撮像レンズ20IRa1が配置され、撮像レンズ20IRa2から上面側に距離dv2の位置に、撮像レンズ20VLaが配置される。各撮像レンズ20IRa1、20VLおよび20IRa2は、筐体10の長辺方向の中心線Cにレンズ中心を整列させて配置される。
図6(c)に示されるように、各撮像レンズ20IRa1、20VLaおよび20IRa2の背面側には、各撮像レンズ20IRb1、20VLbおよび20IRb2が、それぞれ各撮像レンズ20IRa1、20VLaおよび20IRa2と対応する位置に配置される。すなわち、これら撮像レンズ20IRb1、20VLbおよび20IRb2も、上述の中心線Cにレンズ中心を整列させて配置される。また、上述したように、各撮像レンズ20IRa1、20VLaおよび20IRa2、ならびに、各撮像レンズ20IRb1、20VLbおよび20IRb2のうち、高さが一致する2つの撮像レンズ(例えば撮像レンズ20IRa1および20IRb1)が1つの撮像体(例えば撮像体21IR1)に含まれる。
なお、図6(a)および図6(c)において、角度αは、撮像レンズ20IRa1および20IRb1の画角(撮像範囲)の例を示している。
図7は、第1の実施形態に係る各撮像体21IR1、21VLおよび21IR2により撮像可能な撮像範囲の例を示す図である。各撮像体21IR1、21VLおよび21IR2は、同様の撮像範囲を有する。図7では、撮像体21IR1、21VLおよび21IR2による各撮像範囲を、撮像体21IR1の撮像範囲で代表して示している。
なお、以下では、図7に示されるように、例えば撮像レンズ20IRa1、20VLaおよび20IRa2が整列する方向をZ軸と対応させ、撮像レンズ20IRa1および20IRb1の光軸の方向にX軸を対応させるものとする。
撮像体21IR1は、撮像レンズ20IRa1および20IRb1の組み合わせにより、撮像体21IR1の中心部を中心とした全天球を撮像範囲とする。すなわち、上述したように、撮像レンズ20IRa1および20IRb1は、それぞれ画角が180°を超え、より好適には185°以上とされている。したがって、これら撮像レンズ20IRa1および20IRb1の組み合わせにより、XY平面上の撮像範囲AおよびXZ平面上の撮像範囲Bをそれぞれ360°とすることができ、これらの組み合わせにより、全天球の撮像範囲が実現される。
換言すれば、撮像体21IR1は、撮像レンズ20IRa1の光軸を中心とした、光軸の第1の方向に向けた半球を含む範囲と、撮像レンズ20IRa1の光軸と共通する撮像レンズ20IRb1の光軸を中心とした、光軸の第1の方向と逆方向の第2の方向に向けた半球を含む範囲と、を撮像可能である。
また、撮像体21IR1および21IR2は、Z軸方向に距離dの間隔を開けて配置されている。したがって、撮像体21IR1および21IR2により全天球を撮像範囲として撮像された各撮像画像は、Z軸方向に距離dだけ視点の異なる画像となる。
このとき、第1の実施形態では、各撮像レンズ20IRa1、20VLaおよび20IRa2、ならびに、各撮像レンズ20IRb1、20VLbおよび20IRb2における撮像が、シャッタボタン30の操作に応じて同期して行われる。そのため、第1の実施形態に係る撮像装置1を用いることで、筐体10の第1面および第2面それぞれについて、Z軸方向に距離dだけ視点が異なり、且つ、非可視光領域の光を撮像した2枚の撮像画像と、当該2枚の撮像画像の撮像位置の間を撮像位置として可視光領域の光を撮像した1枚の撮像画像を取得することができる。
[第1の実施形態に適用可能な3次元復元モデル作成処理]
次に、第1の実施形態に適用可能な3次元復元モデル作成処理について、概略的に説明する。第1の実施形態では、例えば、図8に示されるように、撮像装置1に接続した画像処理装置100により、3次元復元モデルの作成処理を実行する。画像処理装置100は、例えば、パーソナルコンピュータ(PC)上で画像処理プログラムを実行させることで構成できる。これに限らず、画像処理装置100は、3次元復元モデル作成処理を実行するための専用のハードウェアであってもよい。
例えば、画像処理装置100は、撮像装置1のメモリから、撮像装置1により各撮像体21IR1、21VLおよび21IR2により同期して撮像されメモリに記憶された複数(この例では、第1の面および第2の面を合計して6枚)の撮像画像を読み出す。画像処理装置100は、撮像装置1のメモリから読み出した6枚の画像のうち、各撮像体21IR1、21VLおよび21IR2においてそれぞれ2枚ずつ撮像された撮像画像を、撮像体21IR1、21VLおよび21IR2毎にそれぞれ合成する。これにより、Z軸方向に距離dだけ視点が異なる、2枚の非可視光領域の光を含んで撮像された2枚の全天球画像と、当該2枚の全天球画像の略それぞれに対して距離dv1およびdv2だけ視点が異なる、1枚の可視光領域の光を選択的に含んで撮像された1枚の全天球画像と、を作成する。
次に、第1の実施形態に係る撮像装置1および画像処理装置100の信号処理に関する構成について説明する。図9は、第1の実施形態に係る撮像装置1の一例の構成を示すブロック図である。なお、図9において、上述した図4および図5と対応する部分には同一の符号を付して、詳細な説明を省略する。
図9において、撮像装置1は、撮像素子200a1、200a2および200a3、ならびに、撮像素子200b1、200b2および200b3と、駆動部210a1、210a2および210a3、ならびに、駆動部210b1、210b2および210b3と、バッファメモリ211a1、211a2および211a3、ならびに、バッファメモリ211b1、211b2および211b3と、を含む。
これらのうち、撮像素子200a1、200a2および200a3と、駆動部210a1、210a2および210a3と、バッファメモリ211a1、211a2および211a3と、は、それぞれ撮像レンズ20IRa1、20VLaおよび20IRa2に対応する構成であって、それぞれ撮像体21IR1、21VLおよび21IR2に含まれる。なお、図9では、煩雑さを避けるため、撮像体21IR1、21VLおよび21IR2のうち、撮像体21IR1のみを示している。
同様に、撮像素子200b1、200b2および200b3と、駆動部210b1、210b2および210b3と、バッファメモリ211b1、211b2および211b3と、は、それぞれ撮像レンズ20IRb1、20VLbおよび20IRb2に対応する構成であって、それぞれ撮像体21IR1、21VLおよび21IR2に含まれる。
撮像装置1は、さらに、制御部220、メモリ221およびスイッチ(SW)222を含む。これらのうち、少なくとも制御部220およびメモリ221は、処理回路基板31に搭載される。スイッチ222は、図3、図4に示したシャッタボタン30に対応する。例えば、スイッチ222が閉状態で、シャッタボタン30が操作された状態に対応する。
撮像体21IR1について説明する。撮像体21IR1は、撮像素子200a1、駆動部210a1およびバッファメモリ211a1と、撮像素子200b1、駆動部210b1およびバッファメモリ211b1と、を含む。
駆動部210a1は、撮像素子200a1を駆動し、制御部220からトリガ信号として供給される同期撮像指示信号32に応じて、撮像素子200a1から電荷を読み出す。駆動部210a1は、撮像素子200a1から読み出した電荷を電気信号に変換し、さらに、この電気信号を、ディジタルデータである撮像画像に変換して出力する。なお、駆動部210a1は、1回の同期撮像指示信号32に応じて、撮像素子200a1から読み出した電荷に基づき1フレームの撮像画像を出力する。
バッファメモリ211a1は、少なくとも1フレーム分の撮像画像を記憶可能なメモリである。駆動部210a1から出力された撮像画像は、このバッファメモリ211a1に記憶される。
なお、撮像体21IR1において、撮像素子200b1、駆動部210b1およびバッファメモリ211b1については、上述の撮像素子200a1、駆動部210a1およびバッファメモリ211a1と同等の機能を有するため、ここでの説明を省略する。また、他の撮像体21VLおよび21IR2についても、機能は撮像体21IR1と同等であるため、ここでの説明を省略する。
制御部220は、撮像装置1の全体の動作を制御する。制御部220は、スイッチ222の開状態から閉状態への遷移を検知すると、同期撮像指示信号32を出力する。同期撮像指示信号32は、各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3に同時に供給される。
メモリ221は、同期撮像指示信号32の出力に応じた制御部220の制御に従い、各バッファメモリ211a1、211a2および211a3、ならびに、各バッファメモリ211b1、211b2および211b3から各撮像画像を読み出し、読み出した各撮像画像を記憶する。メモリ221に記憶された各撮像画像は、例えば図8を用いて説明したように、撮像装置1と接続される画像処理装置100により読み出すことができる。
このように、制御部220は、各撮像体21IR1、21VLおよび21IR2による撮像を制御し、撮像された撮像画像の取得を行う撮像制御部として機能する。
図10は、第1の実施形態に係る撮像装置1における制御部220およびメモリ221の一例の構成を示すブロック図である。図10において、制御部220は、CPU(Central Processing Unit)2000と、ROM(Read Only Memory)2001と、トリガI/F2004と、スイッチ(SW)回路2005と、データI/F2006と、通信I/F2007とを含み、これら各部がバス2010に通信可能に接続される。また、メモリ221は、RAM(Random Access Memory)2003と、メモリコントローラ2002とを含み、バス2010に対して、メモリコントローラ2002がさらに接続される。バッテリ2020は、例えばリチウムイオン二次電池といった二次電池であって、撮像装置1内部の電力供給が必要な各部に電力を供給する電力供給部である。
CPU2000は、例えばROM2001に予め記憶されるプログラムに従い、RAM2003の一部の記憶領域をワークメモリとして用いて動作して、この撮像装置1の全体の動作を制御する。メモリコントローラ2002は、CPU2000の指示に従い、RAM2003に対するデータの記憶および読み出しを制御する。また、メモリコントローラ2002は、CPU2000の指示に従い、各バッファメモリ211a1、211a2および211a3、ならびに、各バッファメモリ211b1、211b2および211b3からの撮像画像の読み出しも制御する。
スイッチ回路2005は、スイッチ222の閉状態および開状態の間の遷移を検知して、検知結果をCPU2000に渡す。CPU2000は、スイッチ回路2005からスイッチ222が開状態から閉状態に遷移した旨の検知結果を受け取ると、トリガ信号としての同期撮像指示信号32を出力する。同期撮像指示信号32は、トリガI/F2004を介して出力され、分岐して、各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3にそれぞれ供給される。
データI/F2006は、外部機器との間でデータ通信を行うためのインタフェースである。データI/F2006としては、例えばUSB(Universal Serial Bus)を適用することができる。通信I/F2007は、ネットワークと接続され、ネットワークに対する通信を制御する。通信I/F2007に接続されるネットワークは、有線および無線の何れでもよいし、有線および無線の両方に接続可能であってもよい。上述した画像処理装置100は、データI/F2006および通信I/F2007の少なくとも一方を介して撮像装置1に接続される。
なお、上述では、CPU2000は、スイッチ回路2005による検知結果に応じて同期撮像指示信号32を出力するように説明したが、これはこの例に限定されない。例えば、CPU2000は、データI/F2006や通信I/F2007を介して供給された信号に応じて、同期撮像指示信号32を出力してもよい。さらに、トリガI/F2004がスイッチ回路2005の検知結果に応じて同期撮像指示信号32を発生させて、各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3に供給してもよい。
このような構成において、制御部220は、スイッチ222の開状態から閉状態への遷移を検知すると、同期撮像指示信号32を生成、出力する。同期撮像指示信号32は、各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3に同タイミングで供給される。各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3は、供給された同期撮像指示信号32に同期して、各撮像素子200a1、200a2および200a3、ならびに、各撮像素子200b1、200b2および200b3から電荷を読み出す。
各駆動部210a1、210a2および210a3、ならびに、各駆動部210b1、210b2および210b3は、各撮像素子200a1、200a2および200a3、ならびに、各撮像素子200b1、200b2および200b3から読み出した電荷をそれぞれ撮像画像に変換し、変換された各撮像画像を各バッファメモリ211a1、211a2および211a3、および、各バッファメモリ211b1、211b2および211b3に記憶する。
制御部220は、同期撮像指示信号32の出力後の所定タイミングで、メモリ221に対して、各バッファメモリ211a1、211a2および211a3、および、各バッファメモリ211b1、211b2および211b3からの撮像画像の読み出しを指示する。メモリ221において、メモリコントローラ2002は、この指示に応じて、各バッファメモリ211a1、211a2および211a3、および、各バッファメモリ211b1、211b2および211b3から各撮像画像を読み出し、読み出した各撮像画像をRAM2003の所定領域に記憶する。
画像処理装置100が例えばデータI/F2006を介して撮像装置1に接続される場合、画像処理装置100は、データI/F2006を介して、RAM2003に記憶される各撮像画像の読み出しを要求する。CPU2000は、この要求に応じて、メモリコントローラ2002に対してRAM2003からの各撮像画像の読み出しを指示する。メモリコントローラ2002は、この指示に応じてRAM2003から各撮像画像を読み出して、読み出した各撮像画像を、データI/F2006を介して画像処理装置100に送信する。画像処理装置100は、撮像装置1から送信された各撮像画像に基づき、後述する、第1の実施形態に係る3次元復元モデル作成処理を実行する。
図11は、第1の実施形態に適用可能な画像処理装置100の一例の構成を示すブロック図である。画像処理装置100は、CPU1000と、ROM1001と、RAM1002と、グラフィックI/F1003と、ストレージ1004と、入力デバイス1005と、データI/F1006と、通信I/F1007とを含み、これら各部がバス1010に互いに通信可能に接続される。なお、図11において、入力デバイス1005は、画像処理装置100に対して着脱自在とすることができる。
このように、画像処理装置100は、CPU1000と、ROM1001、RAM1002およびストレージ1004といった各種記憶媒体とを含み、一般的なコンピュータを用いて構成することができる。
ストレージ1004は、データを不揮発に記憶することが可能な記憶媒体であって、例えばフラッシュメモリなどの不揮発性の半導体メモリである。これに限らず、ストレージ1004としてハードディスクドライブを用いてもよい。ストレージ1004は、CPU1000が実行するためのプログラムや各種データが格納される。なお、ストレージ1004およびROM1001は、例えば1つの書き換え可能な不揮発性半導体メモリなどを共用してもよい。
CPU1000は、ROM1001およびストレージ1004に記憶されるプログラムに従い、RAM1002をワークメモリとして用いて、この画像処理装置100の全体を制御する。グラフィックI/F1003は、CPU1000により生成された表示制御信号を、ディスプレイ1020が表示可能な信号に変換して出力する。ディスプレイ1020は、例えば表示デバイスとしてLCD(Liquid Crystal Display)を含み、グラフィックI/F1003から出力された信号により駆動されて、表示制御信号に応じた画面を表示させる。ディスプレイ1020は、画像処理装置100に内蔵されていてもよいし、画像処理装置100に対して着脱自在としてもよい。
データI/F1006は、外部機器との間でデータの入出力を行う。データI/F1006として、例えば上述の撮像装置1のデータI/F2006と対応させて、USBを適用することができる。画像処理装置100は、データI/F1006により撮像装置1と接続され、撮像装置1に対する撮像画像の要求の送信、撮像装置1からの撮像画像の取得などを行うことができる。
入力デバイス1005は、例えばユーザ入力を受け付ける。入力デバイス1005としては、画像処理装置100に接続して使用される、マウスなどのポインティングデバイスやキーボードを適用させることができる。これに限らず、入力デバイス1005は、画像処理装置100に内蔵される操作子であってもよい。ユーザは、例えばディスプレイ1020に対する表示に応じて入力デバイス1005を操作することで、画像処理装置100に対して指示を入力することができる。
通信I/F1007は、CPU1000の制御に従いネットワークを介した通信を行う。
図12は、第1の実施形態に係る画像処理装置100の機能を説明するための一例の機能ブロック図である。図12において、画像処理装置100は、取得部110と、マッチング処理部111と、3D情報生成部112と、再投影処理部113と、出力処理部114と、UI(User Interface)部120と、制御部121と、を含む。
これら取得部110、マッチング処理部111、3D情報生成部112、再投影処理部113、出力処理部114、UI部120および制御部121は、CPU1000上で第1の実施形態に係る画像処理プログラムが実行されることで実現される。これに限らず、これら取得部110、マッチング処理部111、3D情報生成部112、再投影処理部113、出力処理部114、UI部120および制御部121の1部または全部を、互いに協働して動作するハードウェア回路により実現してもよい。
取得部110は、撮像装置1と接続して、撮像装置1のメモリ221に記憶される、各撮像素子200a1、200a2および200a3、ならびに、200b1、200b2および200b3により撮像された各撮像画像を取得する。取得部110は、取得した各撮像画像のうち、撮像体21IR1および21IR2により撮像された撮像画像、すなわち、撮像素子200a1、200a3、200b1および200b3により撮像された各撮像画像を、マッチング処理部111に渡す。また、取得部110は、取得した各画像のうち、撮像体21VLにより撮像された撮像画像、すなわち撮像素子200a2および200b2により撮像された各撮像画像を、再投影処理部113に渡す。
マッチング処理部111は、取得部110から渡された、撮像体21IR1および21IR2により撮像された各撮像画像を用いてマッチング処理を行う。3D情報生成部112は、マッチング処理部111によるマッチング処理の結果を用いて深度情報を求め、求めた深度情報に基づき3次元点群情報を生成する。
再投影処理部113は、取得部110から渡された、撮像体21VLにより撮像された各撮像画像を、マッチング処理部111により生成された3次元点群情報に再投影し、3次元点群情報に色情報を付加する。
出力処理部114は、再投影処理部113により色情報が付加された3次元点群情報を、3次元復元モデルとして出力する。出力処理部114は、3次元復元モデルを画像処理装置100の外部に出力してもよいし、RAM1002やストレージ1004に記憶させてもよい。また、出力処理部114は、3次元復元モデルをディスプレイ1020に表示させることもできる。
UI部120は、ディスプレイ1020に対する画面表示の制御と、入力デバイス1005に対するユーザ操作に応じた入力の受付とを行い、ユーザインタフェースを提供する。制御部121は、画像処理装置100の全体の動作を制御する。
画像処理装置100における第1の実施形態に係る各機能を実現するための画像処理プログラムは、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、当該画像処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該画像処理プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
当該画像処理プログラムは、取得部110、マッチング処理部111、3D情報生成部112、再投影処理部113、出力処理部114、UI部120および制御部121を含むモジュール構成となっている。実際のハードウェアとしては、CPU1000がストレージ1004などの記憶媒体から当該画像処理プログラムを読み出して実行することにより、上述した各部がRAM1002などの主記憶装置上にロードされ、取得部110、マッチング処理部111、3D情報生成部112、再投影処理部113、出力処理部114、UI部120および制御部121が主記憶装置上に生成されるようになっている。
[第1の実施形態に適用可能な3次元復元モデル作成処理の詳細]
次に、第1の実施形態に係る3次元復元モデル作成処理について、より詳細に説明する。図13は、第1の実施形態に適用可能な3次元復元モデルの作成処理を示す一例のフローチャートである。
なお、図13のフローの処理の実行に先立って、撮像装置1では、撮像体21IR1、21VLおよび21IR2を同期させた撮像が実行されているものとする。したがって、撮像装置1のメモリ221には、撮像体21IR1および21IR2により非可視光領域の光を含んで撮像した4枚の撮像画像と、撮像体21VLにより非可視光領域の光を含まずに、可視光領域の光を選択的に撮像した2枚の撮像画像と、による6枚の撮像画像が記憶されている。
ステップS100で、取得部110は、撮像装置1のメモリ221から、非可視光領域の光を含んで撮像された撮像画像を取得する。より具体的には、取得部110は、撮像装置1のメモリ221から、撮像体21IR1により撮像された2枚の撮像画像と、撮像体21IR2により撮像された2枚の撮像画像と、を取得する。取得部110は、取得した4枚の撮像画像を、マッチング処理部111に渡す。
次のステップS101で、マッチング処理部111は、取得部110から渡された4枚の撮像画像に基づきマッチング処理を行う。さらに、次のステップS102で、3D情報生成部112は、ステップS101のマッチング処理結果に基づき深度情報を計算し、3次元点群情報を生成する。
ステップS101およびステップS102の処理について、より具体的に説明する。第1の実施形態では、非可視光領域の光を撮像する撮像体21IR1および21IR2により撮像された撮像画像に基づく2枚の全天球画像を用いて、ステレオ法により深度情報を計算する。ここでいうステレオ法は、2つのカメラにより異なる視点から撮像された2枚の撮像画像を用い、一方の撮像画像のある画素(参照画素)に対して、他方の撮像画像内における対応する画素(対応画素)を求め、参照画素と対応画素とに基づき三角法により深度(奥行き値)を算出する方法である。
ステップS101で、マッチング処理部111は、取得部110から渡された4枚の撮像画像のうち、撮像体21IR1により撮像された2枚の撮像画像を合成して、1枚の全天球画像(第1の全天球画像と呼ぶ)を作成する。同様に、マッチング処理部111は、撮像体21IR2により撮像された2枚の撮像画像を合成し、1枚の全天球画像(第2の全天球画像と呼ぶ)を作成する。
ここで、一般的なステレオ法においては、図14(a)に例示されるように、水平方向に視点をずらして撮像された撮像画像300aおよび300bを用い、基準となる撮像画像300aにおける参照画素303を中心とする所定サイズの領域301に対応する、探索対象となる撮像画像300b内の領域302を、図中に矢印Dで示されるように水平方向に移動させて、探索を行う。このとき、撮像位置の水平方向の高さを一致させると共に撮像方向を一致させて撮像画像300aと撮像画像300bとを撮像し、撮像画像300aおよび300bを水平方向に対して平行としておく。これにより、撮像画像300a内の画素(参照画素)と対応する箇所を撮像した撮像画像300b内の画素(対応画素)は、垂直方向の座標が同じ線上に存在することになり、一次元探索により対応画素の探索が可能となり、計算量を抑制することが可能となる。
第1の実施形態に係る撮像装置1は、ステレオ法に用いる撮像画像を取得するための撮像体21IR1および21IR2が垂直方向に整列して配置されている。この場合、図14(b)に例示されるように、視点を垂直方向にずらして撮像された撮像画像300a’および300b’を用い、撮像画像300a’内の領域301’に対応する撮像画像300b’内の領域302’を、図中に矢印Eで示されるように垂直方向に移動させて探索を行う。この場合においても、撮像画像300a’および300b’の撮像を、水平方向の位置を一致させると共に撮像方向を一致させて行い、撮像画像300a’および300b’を垂直方向に対して平行としておく。これにより、撮像画像300a’内の参照画素と撮像画像300b内の対応画素は、水平方向の座標が同じ線上に存在することになり、一次元探索により対応画素の探索が可能となる。
なお、第1の実施形態に係る撮像装置1を用いる場合、垂直方向に整列して配置された撮像体21IR1および21RI2により撮像された撮像画像に基づく2枚の全天球画像に対してステレオ法を適用することになる。第1の実施形態の例では、撮像装置1において、各撮像体21IR1および21IR2により撮像された撮像画像に基づく球面の情報それぞれを、正距円筒図法(Equi-rectangular)を用いて平面座標に展開することで、2つの全天球画像を生成する。これにより、ステレオ法による対応画素の探索を、図14(b)に示すような、垂直方向の一次元探索にて実行可能となり、処理が容易となる。
なお、正距円筒図法は、垂直方向を緯度に、水平方向を経度にそれぞれ対応させた座標系をとって、球面の情報を平面の座標に変換する投影方法である。これに限らず、第1の実施形態に対し、球面の情報を平面座標に変換する投影方法として、他の投影方法を適用してもよい。
マッチング処理部111は、基準となる画像(第1の全天球画像と呼ぶ)と、探索対象となる画像(第2の全天球画像と呼ぶ)との間で対応画素を探索し、マッチング処理を行う。対応画素の探索は、様々な方法が知られており、例えば、ブロックマッチング法を適用することができる。
ブロックマッチング法は、第1の全天球画像において参照画素を中心としてM画素×N画素のブロックとして切り出される領域の画素値を取得する。また、第2の全天球画像において、対象画素を中心としてM画素×N画素のブロックとして切り出される領域の画素値を取得する。画素値に基づき、参照画素を含む領域と、対象画素を含む領域との類似度を計算する。探索対象の画像内でM画素×N画素のブロックを移動させながら類似度を比較し、最も類似度が高くなる位置のブロックにおける対象画素を、参照画素に対応する対応画素とする。
類似度は、様々な計算方法により算出できる。例えば、式(1)に示される、正規化相互相関係数(NCC)は、コスト関数の1つであって、コストを示す数値CNCCの値が大きいほど、類似度が高いことを示す。式(1)において、値MおよびNは、探索を行うための画素ブロックのサイズを表す。また、値I(i,j)は、基準となる第1の全天球画像における画素ブロック内の画素の画素値を表し、値T(i,j)は、探索対象となる第2の全天球画像における画素ブロック内の画素値を表す。
マッチング処理部111は、図14(b)を用いて説明したように、第1の全天球画像(撮像画像300a’に対応)における、M画素×N画素の画素ブロック(領域301’に対応)に対応する、第2の全天球画像(撮像画像300b’に対応)における画素ブロック(領域302’に対応)を、図14(b)内に矢印Eで示されるように垂直方向に例えば画素単位で移動させながら式(1)の計算を実行し、数値CNCCを算出する。第2の全天球画像において、数値CNCCが最大となる画素ブロックの中心画素を、参照画素に対応する対象画素とする。
図13の説明に戻り、ステップS102で、3D情報生成部112は、ステップS101のマッチング処理により求められた、参照画素および対応画素とに基づき、三角法を用いて奥行き値(深度情報)を算出し、第1の全天球画像および第2の全天球画像に係る3次元点群情報を生成する。
図15は、第1の実施形態に適用可能な三角法を説明するための図である。図中のターゲット物体403までの距離Dを、撮像素子402に撮像された画像内の撮像位置情報から算出することが処理の目的である。すなわち、この距離Dが、対象となる画素の深度情報に対応する。距離Dは、下記の式(2)により計算される。
なお、式(2)において、値baselineは、カメラ400aおよび400b間の基線の長さ(基線長)を表す。撮像装置1の例では、図3および図6に示されるように、撮像体21IR1および21IR2の間の距離dが、値baselineに対応する。なお、撮像体21IR1および撮像体21IR2それぞれの光学中心を結ぶ線が、基線を構成する。値fは、レンズ401の焦点距離を表す。値qは、視差を表す。視差qは、参照画素と対応画素の座標値の差分に、撮像素子の画素ピッチを乗じた値である。対応画素の座標値は、ステップS101のマッチング処理の結果に基づき得られる。
この式(2)が、2つのカメラ400aおよび400bを利用した場合の距離Dの算出方法となる。これは2つのカメラ400aおよび400bによりそれぞれ撮像された撮像画像から距離Dを算出するものである。第1の実施形態では、この式(2)による算出方法を、撮像体21IR1および21IR2により撮像された撮像画像に基づく第1の全天球画像および第2の全天球画像に適用して距離Dを算出する。
3D情報生成部112は、ステップS102で生成した3次元点群情報を、再投影処理部113に渡す。
図13において、次のステップS103で、取得部110は、撮像装置1のメモリ221から、可視光領域の光を選択的に撮像した撮像画像を取得する。より具体的には、取得部110は、撮像装置1のメモリ221から、撮像体21VLにより撮像された2枚の撮像画像を取得する。取得部110は、取得した2枚の撮像画像を、再投影処理部113に渡す。再投影処理部113は、取得部110から渡された2枚の撮像画像を合成して、1枚の全天球画像(可視光全天球画像と呼ぶ)を作成する。
ステップS104で、再投影処理部113は、ステップS102で3D情報生成部112から渡された3次元点群情報を、ステップS103で取得部110から渡された、撮像体21VLにより撮像された2枚の撮像画像に基づく可視光全天球画像に投影する再投影処理を行う。
図16を用いて、ステップS104の再投影処理について説明する。図16において、カメラ中心は、色情報を持つ撮像画像を取得するためのカメラ位置であって、撮像装置1においては、撮像体21VLの光学中心に対応する。画像320は、カメラ中心から撮像された、色情報を持つ撮像画像を示すもので、撮像装置1においては、撮像体21VLにより撮像された撮像画像に基づく可視光全天球画像に対応する。復元点#1および#2は、画像320に対応して3次元情報が復元された3次元点群情報における点をそれぞれ示している。
また、図16において、再投影座標#1は、画像320において復元点#1に対応する位置を示す。同様に、再投影座標#2は、画像320において復元点#2に対応する位置を示す。再投影処理は、3次元点群情報の各点を画像320内の位置が対応する各点に対応付ける処理である。図16の例では、3次元点群情報における復元点#1および#2の座標を、画像320内の再投影座標#1および#2に変換する処理となる。
再投影処理は、3次元点群情報を、画像320を撮像したカメラ位置に応じて平行移動した後に、当該画像320の画像座標系(2次元スクリーン座標系)に変換することで実現できる。式(3)は、このような再投影処理を行う変換式の例を示す。
式(3)において、右辺の(X,Y,Z)は、図16においてカメラ中心として示されるカメラ位置でのカメラ座標系における、3次元点群情報の3次元座標を表す。なお、式(3)においては、値Zは図15の距離Dに対応し、奥行き(深度)を示す。また、値(X,Y)は、それぞれ水平、垂直方向の座標を示している。式(3)における3×3行列は、投影行列と呼ばれる行列であって、値fxおよびfyは、それぞれ(x,y)方向(水平、垂直方向)の焦点距離を示す。また、値cxおよびcyは、それぞれ、光学中心に対する2次元スクリーン座標系の水平、垂直方向のずれ量を表す。左辺は、画像320の座標を示し、値(u,v,1)のうち値(u,v)が画像320における座標(x,y)に対応する。また、左辺の値λは、比率を示す係数である。
図13の説明に戻り、次のステップS105で、再投影処理部113は、ステップS104の再投影処理の結果に基づき、可視光全天球画像の色情報を、3次元点群情報に付加する。これは、図16を参照し、画像320における再投影座標#1および#2の画素の色情報を、3次元点群情報の復元点#1および#2に付加する処理である。
すなわち、ステップS104の再投影処理により、3次元点群情報の各点について、可視光全天球画像に含まれるべき座標が求められたので、この座標に基づき、可視光全天球画像の各画素の色情報を、3次元点群情報の対応する座標に付加する。すなわち、可視光全天球画像の画素の色情報を、当該画素の可視光全天球画像における座標に対応する、3次元点群情報の座標に付加する。
ここで、再投影処理により算出された座標は、小数点以下の桁を含む可能性がある。そのため、補間処理により、当該座標において所望の輝度値を得るための、可視光全天球画像における当該座標の周辺の整数座標の画素の画素値を求める。
ステップS105にて色情報を付加された3次元点群情報が、3次元復元モデルとして取得される。取得された3次元復元モデルは、画像処理装置100から外部に出力してもよいし、ストレージ1004などに記憶してもよい。
以上のように、第1の実施形態では、非可視光領域の光を撮像する撮像体21IR1および21IR2により撮像された撮像画像に基づき3次元点群情報を求めると共に、可視光領域の光を選択的に撮像する撮像体21VLにより撮像された撮像画像における各画素の色情報を、求めた3次元点群情報に付加することができる。
[第2の実施形態]
次に、第2の実施形態について説明する。上述した第1の実施形態に係る撮像装置1は、それぞれ非可視光領域を含んだ光を撮像する2の撮像体21IR1および21IR2と、可視光領域の光を選択的に撮像する1の撮像体21VLを含めて構成されていたが、これはこの例に限られない。第2の実施形態に係る撮像装置は、第1の実施形態の構成に対し、さらに多くの撮像体を含む構成としている。
図17は、第2の実施形態に係る撮像装置1’の内部構造を概略的に示す図である。図17では、上述した図4と同様に、左側が正面方向、右側が背面方向としている。
図17の例では、撮像装置1’は、図4に示した撮像装置1に対して、可視光領域の光を選択的に撮像するための撮像体21VL1および21VL2が追加されている。すなわち、撮像装置1’は、可視光領域を含む光を選択的に撮像するための、3の撮像体21VL、21VL1および21VL2と、非可視光領域の光を撮像するための、2の撮像体21IR1および21IR2と、を含んでいる。図17の例では、撮像体21VL1は、撮像体21IR1の上側に設けられ、撮像体21VL2は、撮像体21IR2の下側に設けられている。
撮像装置1’において、正面方向の各撮像レンズ20VLa1、20IRa1、20VLa、20IRa2および20VLa2は、図6(b)と同様に、筐体10の長辺方向の中心線にレンズ中心を整列させて配置される。同様に、背面方向の各撮像レンズ20VLb1、20IRb1、20VLb、20IRb2および20VLb2も、筐体10の長辺方向の中心線にレンズ中心を整列させて配置される。
また、撮像体21VL1は、撮像体21VLと同様に、正面方向の撮像レンズ20VLa1および撮像素子200a4と、背面方向の撮像レンズ20VLb1および撮像素子200b4と、を含む。同様に、撮像体21VL2は、正面方向の撮像レンズ20VLa2および撮像素子200a5と、背面方向の撮像レンズ20VLb2および撮像素子200b5と、を含む。
さらに、各撮像体21VL1および21VL2は、撮像体21VLと同様に、各撮像レンズ20VLa1、20VLa2、20VLb1および20VLb2に、それぞれ可視光領域の光を選択的に透過させるフィルタ22VLが設けられる。フィルタ22VLは、これに限らず、フィルタ22VLを撮像素子200a1および200b1、ならびに、撮像装置200a5および200b5に設けてもよいし、フィルタ22VLを設けずに、画像処理により非可視光領域の成分をカットしてもよい。
処理回路基板31’は、撮像装置1’が含む撮像素子200a1~200a5、および、撮像素子200b1~200b5を同期させて撮像駆動するための回路が搭載される。この回路は、図9に示した構成に対して、駆動部およびバッファメモリの組を、追加された4の撮像素子200a4、200a5、200b4および200b5に応じて追加した構成となる。処理回路基板31’は、シャッタボタン30に対する操作に応じて、撮像素子200a1~200a5、および、撮像素子200b1~200b5による撮像を同期して実行させるためのトリガ信号である同期撮像指示信号32’を出力する。
撮像体21VL、撮像体21IR1および21IR2は、第1の実施形態と同様にして、撮像体21IR1および21IR2による非可視光領域の光を撮像した撮像画像に基づき3次元点群情報を生成する。この3次元点群情報に対して、撮像体21VLにより可視光領域の光を選択的に撮像した撮像画像に基づき色情報を与え、3次元復元モデルを作成する。
第2の実施形態に係る撮像装置1’では、さらに、可視光領域の光を選択的に撮像するための3の撮像体21VL、21VL1および21VL2により撮像された撮像画像に基づき、マルチベースラインステレオの手法を用いて3次元点群を生成する。
すなわち、第2の実施形態に係る撮像装置1’では、可視光領域の光を選択的に撮像するための3の撮像体21VL、21VL1および21VL2が、筐体10の中心線上に整列して配置されている。そのため、1直線上に存在する複数の基線を構成することができ、三角法を適用可能な撮像体のペア(ステレオペアと呼ぶ)を複数、形成することができる。図17の例では、撮像体21VL1と撮像体21VLとによる第1ステレオペア、撮像体21VLと撮像体VL2とによる第2ステレオペア、および、撮像体21VL1と21VL2とによる第3ステレオペア、の3つのステレオペアを形成することが可能である。
ここで、基線に重複する部分を含む複数のステレオペアにより、共通する撮像範囲を撮像し、撮像画像に基づきそれぞれ深度情報を求め、各深度情報を合成して3次元点群情報を生成することができる。図18は、第2の実施形態に適用可能な、複数のステレオペアによる画素の探索処理の例を示す図である。例えば、撮像体21VL1、21VLおよび21VL2によりそれぞれ撮像された、全天球画像による撮像画像300d、300eおよび300fを考える。この場合、撮像画像300dおよび300e、撮像画像300eおよび300f、ならびに、撮像画像300dおよび300fにより、それぞれステレオペアの画像(ステレオペア画像と呼ぶ)が形成される。
撮像画像300d、300eおよび300fにおいて、撮像体21VL1、21VLおよび21VL2のうち、例えば中央に配置される撮像体21VLにより撮像された撮像画像300eを、参照画素333を含む参照画像とする。参照画素333を中心とする所定サイズの領域331に対応する、探索対象となる撮像体21VL1により撮像された撮像画像300d内の領域332を、図中に矢印Fで示されるように垂直方向に移動させて探索を行う。同様に、撮像体21VL2により撮像された撮像画像300fを探索対象とし、当該撮像画像300f内の、領域331に対応する領域332’を、図中に矢印F’で示されるように、垂直方向に移動させて探索を行う。領域331と、領域332および332’との対応関係を、図中に直線340にて示している。
ここで、参照画素333に対する対応画素を求める処理は、空間における1点に対応する画素を、撮像体21VL1による撮像画像300dと、撮像体VL2による撮像画像300fと、のそれぞれにおいて探索する処理となる。これは、撮像画像300dおよび300eのステレオペア画像(第1ステレオペア画像とする)と、撮像画像300fおよび300eのステレオペア画像(第2ステレオペア画像とする)とで、共通の奥行き値(距離D)に対する対応画素の探索処理になる。
この、2つのステレオペア画像で距離Dが共通となる点を利用して、次の手法を適用できる。すなわち、視差qをパラメータとして、対象画像である撮像画像300dおよび300f内の当該視差qに対応する対応画素に基づき、第1ステレオペア画像および第2ステレオペア画像それぞれで類似度すなわちコストを示す数値CNCC(以下、コストCNCCと呼ぶ)を計算する。そして、第1ステレオペア画像について求めたコストCNCC1と、第2ステレオペア画像について求めたコストCNCC2とを加算した加算結果ΣCNCCが最大となる、第1ステレオペア画像および第2ステレオペア画像それぞれにおける視差q1およびq2を求める。この方法によれば、単独のステレオペア画像を用いる場合より確実で誤りの少ない各視差q1およびq2を求めることが可能となり、より高精度に距離Dを算出できる。
このように、撮像体21VL1、21VLおよび21VL2による各撮像画像を用いて求めた距離Dに基づき生成した3次元点群情報と、第1の実施形態で説明した、撮像体21IR1、21VLおよび21IR2を用いて、非可視光領域の光を含む撮像画像に基づき生成した3次元点群情報と、を合成して用いることができる。これにより、より多くの点群情報を用いることができ、より高精度に3次元復元モデルを生成可能となる。
上述の手法は、基線が重なっていれば、その重なりの点を基準点とした視差qをパラメータとすることで、他のステレオペア画像についても適用できる。図17の撮像装置1’の例では、上述した撮像体21VL1および21VLの各撮像画像による第1ステレオペア画像と、撮像体21VLおよび21VL2の各撮像画像による第2ステレオペア画像に加えて、撮像体21VL1および21VL2の各撮像画像による第3ステレオペア画像を用いることができる。非可視光領域の光を含めて撮像を行う、撮像体21IR1および21IR2の各撮像画像によるステレオペア画像を、さらに用いることも可能である。これらにより、さらに多くの点群情報を用いることができ、さらに高精度な3次元復元モデルを生成可能となる。
[第2の実施形態の変形例]
図17に示した撮像装置1’は、可視光領域の光を選択的に撮像する3の撮像体21VL、21VL1および21VL2と、非可視光領域の光を含めて撮像を行う2の撮像体21IR1および21IR2と、を有している。そして、撮像装置1’は、撮像体21VL、21VL1および21VL2と、撮像体21IR1および21IR2とを交互に配置している。
これはこの例に限定されず、撮像装置に、例えば、非可視光領域の光を含めて撮像を行う3の撮像体と、可視光領域の光を選択的に撮像する2の撮像体とを、交互に配置してもよい。また、撮像体の数は5に限らず、6以上であってもよい。撮像装置に6の撮像体が配置される場合、例えば、非可視光領域の光を含めて撮像を行う3の撮像体と、可視光領域の光を選択的に撮像する3の撮像体と、を交互に配置することが考えられる。
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。