撮像装置、3Dモデリングデータ生成方法、および、プログラム
【課題】高精度な3Dモデリングデータを容易に生成する。
【解決手段】制御部210は、第1撮像部110と第2撮像部120で撮像する被写体について、当該被写体の明部を適正露出とする露出条件と、暗部を適正露出とする露出条件を設定する。制御部210は、設定した各露出で撮像するよう第1撮像部110と第2撮像部120を制御することで、露出の異なる画像ペアを得る。制御部210は、得られた画像ペアを構成する画像において、パターン投影部130が被写体に投影したパターンを特定する。制御部210は、特定されたパターンについて、同一露出の画像ペアを構成する画像間で、パターンの密度に基づく最適化をおこなうとともに、露出の異なる画像間で、パターンの画像状態に基づく最適化をおこなう。制御部210は、最適化されたパターンの対応点を用いて3Dモデリングデータを生成する。
【解決手段】制御部210は、第1撮像部110と第2撮像部120で撮像する被写体について、当該被写体の明部を適正露出とする露出条件と、暗部を適正露出とする露出条件を設定する。制御部210は、設定した各露出で撮像するよう第1撮像部110と第2撮像部120を制御することで、露出の異なる画像ペアを得る。制御部210は、得られた画像ペアを構成する画像において、パターン投影部130が被写体に投影したパターンを特定する。制御部210は、特定されたパターンについて、同一露出の画像ペアを構成する画像間で、パターンの密度に基づく最適化をおこなうとともに、露出の異なる画像間で、パターンの画像状態に基づく最適化をおこなう。制御部210は、最適化されたパターンの対応点を用いて3Dモデリングデータを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置、3Dモデリングデータ生成方法、および、プログラムに関し、特に、明暗差のある被写体からの3Dモデリングデータの生成に好適な撮像装置、3Dモデリングデータ生成方法、および、プログラムに関する。
【背景技術】
【0002】
コンピュータグラフィクスによる3次元(3D)表現が多く用いられるようになり、よりリアリティのある3D表現が求められている。このような要求に対し、実際の立体物をカメラで撮像して3Dモデリングデータを作成する手法が確立している。
【0003】
この場合、立体物の3次元的位置を認識するため、視差に相当する光軸のズレが設定された、いわゆる複眼カメラ(ステレオカメラ)が用いられる。
【0004】
また、撮像対象の立体物にテクスチャがなく、凹凸などの立体的形状が認識しにくい場合でも、例えば、ドットパターンなどのパターンを対象物に投影することで特徴点を得るようにしたパターン投影法も知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−101276号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
パターンを投影した被写体を撮像することで3Dモデリングデータを作成する場合において、被写体に明暗差があると、被写体全体を適正露出とすることが困難であり、投影されたパターンを撮像画像から正確に認識することができないことがある。このような場合、高精度な3Dモデリングデータを容易に得ることができない。
【0007】
本発明は、被写体に明暗差がある場合でも高精度な3Dモデリングデータを容易に作成することができる撮像装置、3Dモデリングデータ作成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の第1の観点にかかる撮像装置は、
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段と、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する露出設定手段と、
前記撮像手段を制御し、前記露出設定手段が設定した露出条件の数に応じた回数の撮像動作をおこなう撮像制御手段と、
前記撮像制御手段の制御によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定するパターン特定手段と、
前記露出設定手段が設定した露出に基づいて、前記パターン特定手段が特定したパターンを最適化するパターン最適化手段と、
前記パターン最適化手段が最適化した前記パターンを用いて3Dモデリングデータを生成する3Dモデリングデータ生成手段と、
を備えることを特徴とする。
【0009】
上記撮像装置は、
被写体にパターンを投影するパターン投影手段をさらに備えていることが望ましい。
【0010】
上記撮像装置において、
前記露出設定手段は、少なくとも、前記被写体の明部が適正露出となる露出条件と、前記被写体の暗部が適正露出となる露出条件とを設定することが望ましい。
【0011】
上記撮像装置において、
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの密度に基づいて該パターンを最適化することが望ましい。
【0012】
上記撮像装置において、
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの画像状態に基づいて該パターンを最適化することが望ましい。
【0013】
上記撮像装置は、
前記パターン最適化手段が最適化したパターンを合成するパターン合成手段をさらに備えていることが望ましく、この場合、
前記3Dモデリングデータ生成手段は、前記パターン合成手段が合成したパターンを用いて前記3Dモデリングデータを生成することが望ましい。
【0014】
上記撮像装置は、
前記被写体の明暗差を判別する判別手段をさらに備えていてもよく、この場合、
前記露出設定手段は、前記判別手段の判別結果に応じて露出条件を設定することが望ましい。
【0015】
上記目的を達成するため、本発明の第2の観点にかかる3Dモデリングデータ生成方法は、
同一の被写体について光軸位置が異なる画像ペアを得る撮像手段を備える撮像装置で当該被写体の3Dモデリングデータを生成する3Dモデリングデータ生成方法であって、
被写体の明部を適正露出とする前記撮像手段の撮像動作で第1の画像ペアを取得する第1の撮像ステップと、
前記被写体の暗部を適正露出とする前記撮像手段の撮像動作で第2の画像ペアを取得する第2の撮像ステップと、
取得された前記画像ペアのそれぞれにおいて、前記被写体に投影されたパターンを特定するパターン特定ステップと、
前記画像ペアのそれぞれにおいて、前記パターン特定ステップで特定されたパターンの密度に基づいて、当該パターンを最適化する第1の最適化ステップと、
露出の異なる画像ペア間において、前記パターン特定ステップで特定されたパターンの画像状態に基づいて、当該パターンを最適化する第2の最適化ステップと、
前記最適化されたパターンを合成し、該合成したパターン用いて3Dモデリングデータを生成する3Dモデリングデータ生成ステップと、
を含むことを特徴とする。
【0016】
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段を備える撮像装置のコンピュータに、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する機能と、
前記撮像手段を制御し、前記設定された露出条件の数に応じた回数の撮像動作をおこなう機能と、
前記撮像動作によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定する機能と、
前記設定した露出に基づいて、前記特定されたパターンを最適化する機能と、
前記最適化されたパターンを用いて3Dモデリングデータを生成する機能と、
を実現させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、高精度な3Dモデリングデータを容易に作成することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態にかかるデジタルカメラが複眼カメラ(平行ステレオカメラ)であることを説明するための図であり、(a)はデジタルカメラの外観構成を示し、(b)は平行ステレオの概念を示す。
【図2】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図3】図1に示す制御部によって実現される機能を示す機能ブロック図である。
【図4】図1(a)に示したデジタルカメラによる撮像動作を説明するための図であり、(a)は撮像対象となる被写体の例を示し、(b)は撮像によって得られる画像ペアの例を示す。
【図5】本発明の実施形態にかかる「3Dモデリング用撮像処理」を説明するためのフローチャートである。
【図6】図5に示す「3Dモデリング用撮像処理」で実行される「多段露出決定処理」を説明するためのフローチャートである。
【図7】図6に示す「多段露出決定処理」で表示される「測光点指定画面」の例を示す図であり、(a)はメッセージの表示例を示し、(b)は測光点の例を示す。
【図8】図5に示す「3Dモデリング用撮像処理」における撮像動作を説明するための図であり、(a)はパターンが投影された被写体の例を示し、(b)は被写体の明部を適正露出とした場合に得られる画像ペアの例を示し、(c)は被写体の暗部を適正露出とした場合に得られる画像ペアの例を示す。
【図9】図5に示す「3Dモデリング用撮像処理」で実行される「3Dモデリング処理」を説明するためのフローチャートである。
【図10】図9に示す「3Dモデリング処理」を説明するための図であり、(a)および(b)はテンプレートマッチングによって得られる対応点パターンの例を示し、(c)は最適化された対応点を合成した合成対応点の例を示す。
【図11】図9に示す「3Dモデリング処理」で実行される「対応点最適化処理(1)」を説明するためのフローチャートである。
【図12】図11に示す「対応点最適化処理(1)」を説明するための図であり、(a)および(b)はドット間の距離に基づく最適化の動作例を示し、(c)および(d)は最適化された対応点の例を示す。
【図13】図9に示す「3Dモデリング処理」で実行される「対応点最適化処理(2)」を説明するためのフローチャートである。
【図14】図13に示す「対応点最適化処理(2)」を説明するための図であり、(a)および(b)は異なる露出画像間での輝度に基づく最適化の動作例を示し、(c)および(d)は最適化された対応点の例を示す。
【図15】三角測量の原理を説明するための図である。
【発明を実施するための形態】
【0019】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ(以下、デジタルカメラ)によって実現した場合を例示する。本実施形態にかかるデジタルカメラ1は、一般的なデジタルスチルカメラが有する機能を備えているものとするが、図1(a)に示すように、撮像にかかる構成を2つ備えた、いわゆる複眼カメラ(ステレオカメラ)とする。
【0020】
このような複眼カメラの構成を有するデジタルカメラ1には、通常の撮像機能に加え、撮像される画像を用いて3次元モデリング(3Dモデリング)をおこなう機能を有する。このため、3Dモデリングに好適な撮像画像が得られるよう、図1(a)に示すように、パターン投影部130(詳細後述)が構成されている。
【0021】
このようなデジタルカメラ1の構成を、図2を参照して説明する。図2は、本発明の実施形態にかかるデジタルカメラ1の構成を示すブロック図である。本実施形態にかかるデジタルカメラ1の概略的構成は、図示するように、撮像動作部100、データ処理部200、インタフェース(I/F)部300、などである。
【0022】
撮像動作部100は、デジタルカメラ1による撮像時の動作をおこなうものであり、図2に示すように、第1撮像部110、第2撮像部120、パターン投影部130、などから構成される。
【0023】
第1撮像部110および第2撮像部120は、デジタルカメラ1の撮像動作をおこなう部分である。上述したように、本実施形態にかかるデジタルカメラ1は複眼カメラであるため、第1撮像部110と第2撮像部120とを有する構成であるが、第1撮像部110と第2撮像部120は同一の構成である。以下、第1撮像部110についての構成には110番台の参照符号を付し、第2撮像部120についての構成には120番台の参照符号を付す。
【0024】
図2に示すように、第1撮像部110(第2撮像部120)は、光学装置111(121)やイメージセンサ部112(122)などから構成されている。
【0025】
光学装置111(121)は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置111(121)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。
【0026】
なお、光学装置111(121)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置111(121)にシャッタ機構が含まれていなくてもよい。また、光学装置111(121)は、後述する制御部210による制御によって動作する。
【0027】
イメージセンサ部112(122)は、光学装置111(121)によって集光された入射光に応じた電気信号を生成する、例えば、CCD(Charge Coupled Device:電荷結合素子)やCMOS(Complementally Metal Oxide Semiconductor:相補型金属酸化物半導体)などのイメージセンサから構成される。イメージセンサ部112(122)は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部200に出力する。
【0028】
上述したように、第1撮像部110と第2撮像部120は同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積などの各仕様がすべて同一である。
【0029】
このような第1撮像部110と第2撮像部120を有するデジタルカメラ1は、図1(a)に示すように、光学装置111に構成されたレンズと光学装置121に構成されたレンズとが、デジタルカメラ1の外面における同一面上に形成された構成とする。
【0030】
ここでは、シャッタボタンが上になる方向でデジタルカメラ1を水平にした場合に、中心位置が水平方向で同一線上となるよう2つのレンズ(受光部)が配置されるものとする。つまり、第1撮像部110と第2撮像部120とを同時に動作させた場合、同一被写体についての画像が撮像されることになるが、各画像における光軸位置が横方向にずれている画像となる。
【0031】
この場合、図1(b)の透視射影モデルに示すような光学的特性となるよう第1撮像部110と第2撮像部120が配置される。図1(b)に示す透視射影モデルは、X、Y、Zからなる3次元直交座標系に基づくものであり、第1撮像部110についてのこの座標系を以下「カメラ座標」と呼ぶ。図1(b)では、第1撮像部110の光学中心を原点としたカメラ座標を示している。
【0032】
カメラ座標においては、Z軸をカメラの光学方向に一致する方向とし、X軸とY軸はそれぞれ画像の横方向と縦方向に平行する。ここで、光軸と画像座標面の交点を原点(すなわち、光学中心)とし、イメージセンサの画素間隔を換算してカメラ座標と長さの単位を合わせた場合、第1撮像部110についての画像座標面で被写体A1を示す画像座標を(u1, v1)とし、第2撮像部120についての画像座標面では(u'1, v'1)とする。
【0033】
第1撮像部110と第2撮像部120は、それぞれの光軸が平行(すなわち、輻輳角が0)になり、かつ、第1撮像部110についての画像座標u軸と第2撮像部120についての画像座標u'軸が同一線上で同じ方向となるよう配置される(すなわち、エピポーラ線が一致)。また、上述したように、第1撮像部110および第2撮像部120の焦点距離fや画素間隔は同じであり、光軸と画像座標面とが垂直に交わっている。このような構成を「平行ステレオ」と呼び、デジタルカメラ1の第1撮像部110と第2撮像部120は平行ステレオの構成となっている。
【0034】
図2に戻り、デジタルカメラ1の構成の説明を続ける。
【0035】
パターン投影部130は、デジタルカメラ1の撮像による3Dモデリングを、パターン投影法を利用しておこなう際にパターンを投影するものであり、例えば、キセノンフラッシュやLEDなどの発光装置から構成される光源、光源からの光によって被写体に投影されるパターン、投影光の集光や拡散をおこなうためのレンズや反射板、などから構成される。
【0036】
このようなパターン投影部130は、上記のような構成を有する専用装置として実現できる他、例えば、通常のデジタルカメラが備えている内蔵ストロボやAF補助光などのような発光機能をもつ構成に、パターンを投影できる構成を付加することで実現されてもよい。
【0037】
データ処理部200は、第1撮像部110および第2撮像部120による撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図2に示すように、データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、などから構成される。
【0038】
制御部210は、例えば、CPU(Central Processing Unit:中央演算処理装置)などのプロセッサや、RAM(Random Access Memory)などの主記憶装置(メモリ)、などから構成され、後述する記憶部250などに格納されているプログラムを実行することで、デジタルカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部210によって実現される。本実施形態では、3Dモデリングにかかる処理についても制御部210にておこなわれるものとするが、制御部210とは独立した専用プロセッサなどがおこなうように構成してもよい。
【0039】
画像処理部220は、例えば、ADC(Analog-Digital Converter:アナログ−デジタル変換器)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)などから構成され、イメージセンサ部112および122によって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【0040】
すなわち、イメージセンサ部112(122)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンがいわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。
【0041】
画像メモリ230は、例えば、RAMやフラッシュメモリなどの記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データなどを一時的に格納する。
【0042】
画像出力部240は、例えば、RGB信号の生成回路などから構成され、画像メモリ230に展開された画像データをRGB信号などに変換して表示画面(後述する表示部310など)に出力する。
【0043】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ1の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部210などが実行する動作プログラムや処理に必要となるパラメータや演算式などが記憶部250に格納されているものとする。
【0044】
外部記憶部260は、例えば、メモリカードなどといった、デジタルカメラ1に着脱可能な記憶装置から構成され、デジタルカメラ1で撮像した画像データや生成された3Dモデリングデータなどを格納する。
【0045】
インタフェース部300は、デジタルカメラ1とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図2に示すように、表示部310、外部インタフェース(I/F)部320、操作部330、などから構成される。
【0046】
表示部310は、例えば、液晶表示装置などから構成され、デジタルカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、3Dモデリングデータ、などを表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)などに基づいて撮像画像等の表示出力がおこなわれる。
【0047】
外部インタフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、画像データや3Dモデリングデータなどを外部のコンピュータ装置へ転送したり、撮像画像や3Dモデリング画像などを外部のモニタ装置に表示出力したりする。
【0048】
操作部330は、デジタルカメラ1の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ1の使用者による操作に応じた入力信号を生成して制御部210に入力する。操作部330を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ1のもつ動作モードを指定するためのモードボタン、3Dモデリングをおこなうための設定をはじめとした各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【0049】
ここで、本実施形態では、記憶部250に格納されている動作プログラムを制御部210が実行することで、後述する各処理が実現されるが、この場合に制御部210によって実現される機能を、図3を参照して説明する。
【0050】
図3は、制御部210によって実現される機能を示した機能ブロック図である。ここでは、複眼カメラによって撮像された画像から被写体画像を抽出する機能を実現するために必要な機能構成を示す。この場合、図示するように、制御部210は、動作モード処理部211、撮像制御部212、特徴点抽出部213、対応点最適化部214、3Dモデリング部215、などとして機能する。
【0051】
動作モード処理部211は、表示部310との協働により、デジタルカメラ1が有する各種動作モードをデジタルカメラ1のユーザに指定させるために必要な画面表示や指定された動作モード毎の設定画面表示などをおこなう他、操作部330との協働により、ユーザが指定した動作モードを認識し、当該動作モードの実行に必要なプログラムや演算式などを記憶部250から読み出し、制御部210の主記憶装置(メモリ)にロードする。
【0052】
本実施形態では、デジタルカメラ1での撮影後に撮像画像から3Dモデリングをおこなう動作モード(3Dモデリングモード)がユーザによって指定されるものとし、以下に説明する制御部210の各機能構成は、3Dモデリングモードが指定されたことに応じて動作モード処理部211がロードしたプログラムを実行することで実現される機能構成である。
【0053】
撮像制御部212は、第1撮像部110および第2撮像部120を制御することでデジタルカメラ1での撮像動作を実行する。この場合、撮像制御部212は、例えば、一般的なデジタルカメラにおいておこなわれている、測光、合焦、自動露出、撮像時の画面表示、などのような撮像にかかる各種の処理と制御をおこなう。
【0054】
また、本実施形態にかかる3Dモデリング機能は、平行ステレオ構成となっている第1撮像部110と第2撮像部120から得られた複数枚の撮像画像を利用する。よって、本実施形態にかかる撮像制御部212は、第1撮像部110と第2撮像部120が同時に連続撮像(連写)するよう制御する。また、撮像制御部212は、このような連写の際、露出を異ならせて撮像するよう制御する。これにより、同一の被写体について、光軸位置の異なる2つの撮像画像を1組(画像ペア)とした露出の異なる複数組の撮像画像が取得される。
【0055】
また、本実施形態では、「3Dモデリングモード」で撮像動作をおこなう場合、撮像制御部212は、パターン投影部130を制御することで、被写体へのパターン投影をおこなう。
【0056】
特徴点抽出部213は、撮像された画像間で照合をおこなうことにより、パターン投影部130によって被写体に投影されたパターンで示される特徴点を抽出する。この場合、特徴点抽出部213は、複眼カメラによって得られる、光軸位置の異なる複数画像間で対応する特徴点(対応点)を抽出する。
【0057】
本実施形態では、一方の画像をテンプレートとして照合するテンプレート照合(テンプレートマッチング)による画像間の照合によって対応点の抽出をおこなうものとし、この場合、例えば、差の2乗和を評価式とするSSD(Sum of Squared Difference)を用いたテンプレート照合をおこなうものとする。SSDによるテンプレート照合の場合、照合した画像同士が完全に一致すると値が「0」となる。すなわち、画像間の相違が大きい程より大きい値となるので、テンプレート照合によって得られる値は、テンプレートとの相違度を示すことになる。このようなテンプレート照合には、例えば、各画像の輝度値あるいは緑値を用いるものとする。
【0058】
対応点最適化部214は、特徴点抽出部213によって抽出された対応点を、3Dモデリングでの利用に好適となるよう最適化する。この場合、対応点最適化部214は、特徴点抽出部213が抽出した各対応点と周辺対応点の距離、あるいは、フレームが異なる(撮像時間が異なる)対応点との距離を算出し、距離に基づく条件により対応点の削除をおこなうことで最適化する。ここでの距離は、ユークリッド距離であるものとする。
【0059】
また、対応点最適化部214は、露出の異なる画像が得られている場合には、対応点間の距離に基づく最適化に加え、露出の異なる画像間で対応する位置での輝度を比較し、輝度に基づく条件により対応点の削除をおこなうことで最適化する。
【0060】
3Dモデリング部215は、対応点最適化部214によって最適化された対応点(特徴点)を用いて3Dモデリングをおこなう。この場合、3Dモデリング部215は、例えば、対応点をドロネー分割することによりポリゴンを生成して3Dモデリングをおこなう。
【0061】
以上が制御部210によって実現される機能である。なお、本実施形態では、制御部210がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)などのハードウェアによって構成してもよい。この場合、図3に示した機能のうち、画像処理にかかる機能については、画像処理部220によって実現されてもよい。
【0062】
以上説明したデジタルカメラ1の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【0063】
このような構成のデジタルカメラ1による動作を以下に説明する。ここでは、デジタルカメラ1の動作モードのうち、上述した「3Dモデリングモード」が選択された場合の動作例を示す。この場合、デジタルカメラ1によって撮像をおこない、その撮像画像から3Dモデリングをおこなう。
【0064】
その撮像の際、本実施形態では、図4(a)に示すような被写体TGを撮像することを想定する。被写体TGは、図4(a)に示すように、反射率の高い白っぽい部分(明部)と反射率の低い黒っぽい部分(暗部)とを含んでいるものとし、以下、被写体TGにおける明部を被写体TG+とし、暗部を被写体TG−とする。なお、図面においては、単純化した図形によって被写体TGを示すが、実際に撮像される被写体TGは立体物(例えば、人物、動物、美術品、など)である。そして、本実施形態では、このような立体物である被写体TGをデジタルカメラ1で撮像し、その撮像画像から被写体TGを3次元的な画像として表すための3Dモデリングデータを生成する。
【0065】
上述したように、本実施形態にかかるデジタルカメラ1は、複眼カメラの構成を有しており、このようなデジタルカメラ1で被写体TGを撮像した場合の撮像画像の例を図4(b)に示す。本実施形態では、第1撮像部110を構成するレンズが被写体に向かって右側に配置されているものとし、このような第1撮像部110(右側カメラ)によって撮像される画像を基準画像とする。すなわち、第1撮像部110によって撮像された画像がファインダ画像などとして用いられ、例えば、被写体が画面中央となるようにフレーミングした場合、図4(b)に示すように、第1撮像部110による撮像画像である画像IM(R)に反映される。
【0066】
一方、第2撮像部120は、第1撮像部110よりも左側に配置されているため、このような第2撮像部120(左側カメラ)によって撮像された画像である画像IM(L)では、図4(b)に示すように、写っている被写体の位置が画像IM(R)よりも右側にずれた状態となる。
【0067】
本実施形態では、第1撮像部110と第2撮像部120が同時に撮像動作をおこなうので、図4(b)に示したような画像IM(L)と画像IM(R)が同時に取得される。このような、1回の撮像動作によって得られる画像IM(L)と画像IM(R)の組を画像ペアIPとする。
【0068】
上記のような撮像画像を得るデジタルカメラ1において「3Dモデリングモード」が選択された場合に実行される「3Dモデリング用撮像処理」を、図5に示すフローチャートを参照して説明する。この「3Dモデリング用撮像処理」は、デジタルカメラ1のユーザが操作部330を操作することで、3Dモデリングモードを選択したことを契機に開始される。この場合、動作モード処理部211が、被写体抽出動作にかかるプログラムなどを記憶部250からロードすることで、図3に示した各機能構成により以下の処理が実行される。
【0069】
処理が開始されると、撮像制御部212は、操作部330からの入力信号に基づいて、シャッタボタンが操作されたか否かを判別する(ステップS11)。ここで、本実施形態にかかるデジタルカメラ1では、通常のカメラと同様、シャッタボタンのストロークが2段階になっているものとし、ストロークの1段階目(全ストロークの途中)まで押下された状態を「半押し」、ストロークの2段階目(全ストロークの最深)まで押下された状態を「全押し」とする。
【0070】
ステップS11では、シャッタボタンが半押しされたか否かを判別する。なお、シャッタボタンが半押しされるのは、通常のカメラと同様、被写体への合焦をおこなう場合であり、ステップS11で半押しが検出されたときは、図4(a)に示したような状況において、被写体TGのフレーミングが確定し、被写体TGに対する合焦をおこなう場合であるものとする。
【0071】
なお、本実施形態では、撮像画像から3Dモデリングをおこなうため、被写体TGがファインダ中央に位置し、かつ、被写体TGの全体が収まるフレーミングで撮像されるものとする。また、連写によって複数回の撮像をおこなって得られる画像を用いるので、画像間で被写体TGの位置がずれないよう、デジタルカメラ1は撮像時に固定されていることが望ましい。
【0072】
シャッタボタンが半押しされると(ステップS11:Yes)、撮像制御部212は第1撮像部110を制御し合焦のための動作をおこなう。このとき、撮像制御部212は、自動露出(AE:Auto Exposure)による露出決定をおこなう(ステップS12)。ここでは、AEにおける標準的な測光方式である多分割測光によって露出決定をおこなうものとする。すなわち、画面全体を複数の領域に分割して測光し、全体の明るさが反射率18%のグレーと同じとなるような露出を算出する。ステップS12での多分割測光による露出(すなわち、絞り、シャッタスピード、ISO感度などの組み合わせを示す露出条件)を「EV0」(EV:Exposure Value)とする。撮像制御部212は、決定したEV0をメモリに保持する。
【0073】
露出を算出すると、撮像制御部212は、当該露出による撮像画像(ここでは、ファインダ画像となる動画像)についての輝度分布を示すヒストグラムを作成し、当該ヒストグラムを検証することで(ステップS13)、被写体TGに大きな明暗差があるか否かを判別する(ステップS14)。ここでは、ヒストグラムの暗部側と明部側の双方に大きな山がある場合、被写体TGの明暗差があると判別する。すなわち、図4(a)に示したような、被写体TG+と被写体TG−を含む被写体TGを撮像した場合、被写体の明暗差が大きいと判別する。
【0074】
ここで、本実施形態では、撮像画像から3Dモデリングデータを取得するため、被写体TGに対してパターン投影をおこなう(詳細後述)。この場合において、被写体TGに大きな明暗差があると、全体を一定の明るさとする多分割測光によって露出を決定した場合、撮像画像上でのパターンが部分的に識別できない状態となり、正確な3Dモデリングをおこなうことができない。
【0075】
このため、本実施形態では、ステップS14で被写体TGの明暗差が大きいと判別した場合、被写体TGの明部(すなわち、被写体TG+)と暗部(すなわち、被写体TG−)とで別々に露出をとり(以下、「多段露出」とする)、それぞれの露出で撮像をおこなうことで、撮像画像から正確にパターンを抽出できるようにする。
【0076】
よって、撮像制御部212は、被写体TGの明暗差が大きいと判別した場合(ステップS14:Yes)、多段露出における露出を決定するための「多段露出決定処理」を実行する(ステップS100)。この「多段露出決定処理」を、図6に示すフローチャートを参照して説明する。
【0077】
処理が開始されると、撮像制御部212は、被写体TG上での測光点を撮影者に指定させるための「測光点指定画面」を表示部310に表示する(ステップS101)。ここでは、例えば、図7に示すような「測光点指定画面」が表示部310に表示される。「測光点指定画面」ではまず、図7(a)に示すような、「被写体に明暗差がある」旨のメッセージとともに、測光点の指定を促すメッセージを表示部310に表示する。
【0078】
その後、撮像制御部212は、図7(b)に示すような、選択可能な複数の測光点をファインダ画像上に表示した測光点指定画面を表示部310に表示する。撮影者は、操作部330の十字キーなどを操作して、被写体TGの明るい部分(すなわち、被写体TG+)の位置にある測光点を指定する。
【0079】
被写体TG+の測光点が指定されると(ステップS102:Yes)、撮像制御部212は、第1撮像部110を制御し、いわゆるスポット測光により、指定された測光点を中心とした狭範囲(例えば、画面全体の数%程度の面積)を測光して露出を決定する(ステップS103)。被写体TG+をスポット測光した露出を「EV+」とする。撮像制御部212は、決定したEV+をメモリに保持する。
【0080】
被写体TG+についての露出を決定すると、撮像制御部212は、図7(b)に示したような測光点指定画面を再度表示部310に表示し、被写体TGの暗い部分(すなわち、被写体TG−)の位置にある測光点を撮影者に指定させる。
【0081】
被写体TG−の測光点が指定されると(ステップS104:Yes)、撮像制御部212は、被写体TG+の場合と同様に、指定された測光点(すなわち、被写体TG−の位置にある測光点)を中心としたスポット測光により露出を決定する(ステップS105)。被写体TG−をスポット測光した露出を「EV−」とする。撮像制御部212は、決定したEV−をメモリに保持する。
【0082】
このようにして、被写体TGのうちの被写体TG+と被写体TG−のそれぞれで個別に露出をとると、「3Dモデリング用撮像処理」(図5)のフローに戻る。
【0083】
ここで、ステップS12で決定された露出で被写体TGの明暗差が大きくないと判別された場合には(ステップS14:No)、「多段露出決定処理」(ステップS100)は、実行されない。この場合、ステップS12でおこなった多分割測光による露出EV0が以後の撮像に用いられる。
【0084】
このようにして露出(EV0もしくはEV+とEV−)を決定すると、撮像制御部212は、パターン投影部130を制御し、被写体TGに対するパターン投影を開始する(ステップS15)。すなわち、図8(a)に示すように、被写体TGにパターンが投影される。ここで、パターン投影部130によって投影されるパターンは、例えば、小円が規則的に配列されたドットパターンとするが、これに限られず、3Dモデリングのパターン投影法で用いられている種々のパターン(例えば、ランダムパターンなど)が採用されうる。
【0085】
この状態で、撮像動作を指示するシャッタボタンの全押しが検出されると(ステップS16:Yes)、撮像制御部212は、第1撮像部110と第2撮像部120を制御し、決定した露出での撮像をおこなう(ステップS17)。ここで、被写体TGに大きな明暗差がないと判別された場合(多段露出)には、ステップS12で決定されたEV0で撮像をおこない、被写体TGの明暗差が大きいと判別された場合には、「多段露出決定処理」(図6)のステップS103で決定されたEV+で撮像をおこなう。
【0086】
そして、多段露出の場合(ステップS18:Yes)、撮像制御部212は、続けて第1撮像部110と第2撮像部120を制御し、「多段露出決定処理」(図6)のステップS105で決定したEV−での撮像をおこなう(ステップS19)。
【0087】
すなわち、被写体TGに大きな明暗差がなければ、EV0を露出とした1回の撮像動作がおこなわれ、図4(b)に例示したような画像ペアIPが取得される。一方、被写体TGに大きな明暗差がある場合には、EV+とEV−のそれぞれの露出で2回撮像動作がおこなわれる。この場合、図8(b)と図8(c)に示すような2つの画像ペアIP(画像ペアIP+と画像ペアIP−)が取得される。
【0088】
ここで、被写体TG+をスポット測光した露出EV+で得られる画像ペアIPを画像ペアIP+(図8(b)とし、画像ペアIP+を構成している画像IM(L)を画像IM(L)+、画像IM(R)を画像IM(R)+とする。ここでは、被写体TGの明部である被写体TG+にスポット測光しているので、被写体TG+が適正露出(被写体TG+における階調変化も描写される状態)となる。この場合、図8(b)に示すように、被写体TGの暗部である被写体TG−は露出アンダーとなり、場合によっては、いわゆる黒つぶれとなる。この場合、被写体TG−上に投影されたパターン(露出の違いを明示するため、図8(b)ではパターンは不図示)を撮像画像から正確に抽出することは困難となる。
【0089】
また、被写体TG−をスポット測光した露出EV−で得られる画像ペアIPを画像ペアIP−(図8(c)とし、画像ペアIP−を構成している画像IM(L)を画像IM(L)−、画像IM(R)を画像IM(R)−とする。ここでは、被写体TGの暗部である被写体TG−にスポット測光しているので、被写体TG−が適正露出(被写体TG−における階調変化も描写される状態)となる。この場合、図8(c)に示すように、被写体TGの明部である被写体TG+は露出オーバーとなり、場合によっては、いわゆる白飛びとなる。この場合も、被写体TG+上に投影されたパターン(露出の違いを明示するため、図8(c)ではパターンは不図示)を撮像画像から正確に抽出することは困難となる。
【0090】
このような撮像画像が得られると、撮像制御部212は、得られた画像ペアIPもしくは画像ペアIP+と画像ペアIP−を画像メモリ上に保持するとともに、パターン投影部130を制御し、パターン投影を終了する(ステップS20)。そして、得られた撮像画像から3Dモデリングをおこなう「3Dモデリング処理」が実行される(ステップS200)。この「3Dモデリング処理」を、図9に示すフローチャートを参照して説明する。
【0091】
本処理における3Dモデリングにおいては、まず、被写体TGに投影されたパターンを撮像画像から抽出する。よって、処理が開始されると、特徴点抽出部213により、対象となる撮像画像が取得される。上述したように、被写体TGの明暗差の有無により撮像動作が異なっているので、特徴点抽出部213は、「3Dモデリング用撮像処理」(図5)での撮像が多段露出であったか否かを判別する(ステップS201)。
【0092】
多段露出である場合(ステップS201:Yes)、上述したように、画像ペアIP+と画像ペアIP−の2組の画像ペアが得られているので、特徴点抽出部213はまず、画像メモリ230から画像ペアIP+を取得する(ステップS202)。
【0093】
特徴点抽出部213は、取得した画像ペアIP+を構成している画像IM(L)+と画像IM(R)+とでテンプレートマッチングをおこなう(ステップS203)。ここでは、パターン投影部130が投影したパターンの特徴(形状や大きさ、配列パターンなど)に基づいて、画像IM(L)+に写っているパターン(特徴点候補)を既知の画像認識技術によって抽出し、画像IM(L)+から抽出した特徴点候補の画像をテンプレートとする。
【0094】
そして、このようなテンプレートと一方の画像である画像IM(R)+とでSSDなどによるテンプレートマッチングをおこなう。この結果、所望の閾値以上の一致度となった特徴点が、画像ペア間で対応する特徴点(以下、「対応点」とする)として特定される。ここでは、同じ露出で得られた画像ペア間での対応点となり、このような対応点で構成されたパターン(以下、「パターンPA+」とする)として特定する(ステップS204)。すなわち、3Dモデリングで必要となる、デジタルカメラ1から各特徴点までの距離算出に用いることができるよう、視差に相当する光軸位置の違いが反映されている画像ペア間で、対応点のパターンを特定する。
【0095】
画像ペアIP+を構成する画像IM(L)+と画像IM(R)+との間でテンプレートマッチングをおこなった後のイメージをIM(PM)+として図10(a)に例示する。ここでは、図示するように、画像IM(L)+と画像IM(R)+との間で一致する対応点が得られているが、画像ペアIP+は被写体TG+を適正露出とした画像ペアであるため、被写体TG+における対応点はほぼ完全に特定されている。一方、露出アンダーとなっている被写体TG−においては、対応点の特定は不完全である。
【0096】
ここで、被写体TG全体の3Dモデリングをおこなうには、被写体TG+と被写体TG−の双方において、ほぼ完全な対応点を特定する必要がある。本実施形態では、後述する処理において不完全な対応点を補完する。
【0097】
同様に、被写体TG−を適正露出とする画像ペアIP−でのテンプレートマッチングをおこなうことで、被写体TG−ではほぼ完全な対応点であるが、被写体TG+では対応点が不完全である対応点からなるパターンPA−(図10(b))も特定する。
【0098】
すなわち、特徴点抽出部213が画像メモリ230から画像ペアIP−を取得し(ステップS205)、画像IM(L)−から抽出したパターン画像をテンプレートとしたテンプレートマッチングをおこなうことで(ステップS206)、所望の閾値以上の一致度となる特徴点を、同じ露出で得られた画像ペア間の対応点からなるパターンPA−として特定する(ステップS207)。
【0099】
なお、撮像時に多段露出でなかった場合(ステップS201:No)、特徴点抽出部213は、EV0で撮像された画像ペアIPを画像メモリ230から取得し(ステップS208)、取得した画像ペアIPを構成している画像IM(L)と画像IM(R)でテンプレートマッチングをおこなうことで(ステップS209)、所望の閾値以上の一致度となる特徴点候補を、同じ露出で得られた画像ペア間で対応する特徴点(対応点)からなるパターンPAとして特定する(ステップS210)。この場合、被写体TGに大きな明暗差がないため、EV0で撮像した画像IM(L)と画像IM(R)のいずれにおいても、被写体TGに投影されたパターンが明確に得られることになる。
【0100】
このようにして、各画像ペアを構成している画像間でのテンプレートマッチングによって対応点を抽出すると、特徴点抽出部213は、テンプレートマッチングの結果を画像メモリ230に保持する。その後、抽出した対応点を最適化するための「対応点最適化処理(1)」が対応点最適化部214によって実行される(ステップS300)。ここでの「最適化」とは、露出オーバーもしくは露出アンダーとなっている被写体TG+や被写体TG−において不完全であったパターンを補完するため、より状態のよいパターン部分を抽出することをいう。この「対応点最適化処理(1)」を、図11に示すフローチャートを参照して説明する。
【0101】
処理が開始されると、対応点最適化部214は、図10(b)に例示したようなパターンPA−を画像メモリ230から取得する(ステップS301)。ここで、パターンPA−は、対応点PA1−〜PAn−(すなわち、n個の対応点)を含んでいるものとし、対応点最適化部214は、対応点PA1−〜PAn−に1〜nのナンバリングをおこなう(ステップS302)。
【0102】
パターンPA−の各対応点にナンバリングすると、対応点最適化部214は、当該パターンPA−を構成している対応点を指定するためのカウンタmに初期値1を設定し(ステップS303)、パターンPA−からm番目の対応点である対応点PAm−を探索する(ステップS304)。
【0103】
対応点PAm−が探索されると、対応点最適化部214は、パターンPA−内において、例えば、図12(a)に示すような、対応点PAm−の最も近傍に位置する対応点である最近傍点PAx−を特定し(ステップS305)、対応点PAm−と最近傍点PAx−との距離(距離Dmx)を算出する(ステップS306)。
【0104】
対応点最適化部214は、算出した距離Dmxと閾値Dthとを比較し、対応点PAm−とその最近傍点PAx−との距離Dmxが閾値Dth以上である場合(ステップS307:Yes)、例えば、図12(b)に示すように、パターンPA−から対応点PAm−を削除する(ステップS308)。
【0105】
一方、距離Dmxが閾値Dth未満である場合には(ステップS307:No)、対応点PAm−はパターンPA−に残ることになる。
【0106】
次に、対応点最適化部214は、カウンタmを+1し(ステップS309)、その値が対応点の数であるn以内であれば(ステップS310:No)、次の対応点についてのステップS304以降の処理をおこなう。このような処理を、パターンPA−のすべての対応点でおこなうと(ステップS310:Yes)、図12(c)に示すように、ステップS308で削除されなかった対応点が残存する。対応点最適化部214は、このような対応点で構成されるパターンをパターンPB−とし、画像メモリ230に保持する(ステップS311)。
【0107】
すなわち、画像ペアIP−を構成する画像間でテンプレートマッチングしたことで得られたパターンPA−のドットパターンを、ドット間の距離に基づいて最適化し、最適化されたパターンPB−とする。
【0108】
次に対応点最適化部214は、画像メモリ230からパターンPA+を取得し(ステップS312)、取得したパターンPA+について、上述したステップS302〜ステップS310と同様の処理をおこなうことで(ステップS313)、パターンPA+をドット間の距離に基づいて最適化したパターンPB+(図12(d))を得る(ステップS314)。このようにして得られたパターンPB+も、同様に画像メモリ230に保持される。
【0109】
以上のようにして、撮像画像上での投影パターンについて、そのドットパターンのドット間距離による最適化が露出の異なるそれぞれの撮像画像でおこなわれる。すなわち、同一の露出で撮像された画像ペアにおいて、対応点の密度が低い点を除去することで、対応点の密度が高い部分のみが残るように最適化される。
【0110】
なお、被写体TGに明暗差がなく、EV0で撮像がおこなわれた場合は、ステップS302〜ステップS310と同様の処理をおこなうことで、画像ペアIPの各画像でテンプレートマッチングをおこなうことで得られるパターンPAについて、距離に基づく最適化がおこなわれる。
【0111】
すなわち、「対応点最適化処理(1)」では、対象とする撮像画像が撮像された際の露出が多段露出であるか否かにかかわらず、対応点の最適化がおこなわれる。なお、最初に取得するパターンPA、パターンPA+、パターンPA−のそれぞれに含まれている対応点の数を、便宜上いずれもn個とするが、同数を意味するものではない。
【0112】
このような「対応点最適化処理(1)」が終了すると、「3Dモデリング処理」(図9)のフローに戻る。「3Dモデリング処理」では、多段露出による撮像であった場合(ステップS211:Yes)、さらなる最適化をおこなうための「対応点最適化処理(2)」が実行される(ステップS400)。この「対応点最適化処理(2)」を、図13に示すフローチャートを参照して説明する。
【0113】
対応点最適化部214は、「対応点最適化処理(1)」(図11)で得られたパターンPB−とパターンPB+を画像メモリ230から取得する(ステップS401)。ここで、パターンPB−は、対応点PB1−〜PBn−(すなわち、n個の対応点)を含んでいるものとし、対応点最適化部214は、対応点PB1−〜PBn−に1〜nのナンバリングをおこなう(ステップS402)。本実施形態では、対応点の数を便宜的にn個とするが、いずれも同数であることを意味するものではない。
【0114】
パターンPB−の各対応点にナンバリングすると、対応点最適化部214は、当該パターンPB−を構成している対応点を指定するためのカウンタmに初期値1を設定し(ステップS403)、パターンPB−内で、例えば、図14(a)に示すような、m番目の対応点である対応点PBm−を探索する(ステップS404)。
【0115】
次に、対応点最適化部214は、例えば、図14(b)に示すような、パターンPB−における対応点PBm−と同じ座標位置(2次元平面位置)をパターンPB+において特定し(ステップS405)、その位置から一定の距離内にある複数の対応点である対応点群PBm+(図14(b))を特定する(ステップS406)。
【0116】
パターンPB+で対応点群PBm+を特定すると、対応点最適化部214は、対応点群PBm+の平均輝度を算出する(ステップS407)とともに、ステップS404で探索した、パターンPB−における対応点PBm−の輝度を特定する(ステップS408)。
【0117】
対応点最適化部214は、算出した対応点群PBm+の平均輝度、および、対応点PBm−の輝度のそれぞれと、参照輝度値BRrefと比較する(ステップS409)。この参照輝度値BRrefは、例えば、輝度階調のメジアン(例えば、8ビットの輝度である場合の参照輝度値BRrefは「127」)であるものとする。
【0118】
比較の結果、対応点群PBm+の平均輝度より、対応点PBm−の輝度の方が参照輝度値BRrefから遠い場合(ステップS410:Yes)、対応点最適化部214は、パターンPB−から対応点PBm−を削除する(ステップS411)。一方、対応点群PBm+の平均輝度の方が参照輝度値BRrefから遠ければ(ステップS410:No)、対応点PBm−はパターンPB−に残存する。すなわち、対応点PBm−の輝度が極端に明るかったり暗かったりすると認識しづらいので、このような対応点を除外する。
【0119】
対応点PBm−についてこのような処理をおこなうと、対応点最適化部214は、カウンタmを+1し(ステップS412)、その値が対応点の数であるn以内であれば(ステップS413:No)、次の対応点についてのステップS404以降の処理をおこなう。このような処理を、パターンPB−のすべての対応点でおこなうと(ステップS413:Yes)、図14(c)に示すように、ステップS411で削除されなかった対応点が残存する。対応点最適化部214は、このような対応点で構成されるパターンをパターンPC−とし、画像メモリ230に保持する(ステップS414)。
【0120】
以上のように、対応点最適化部214は、ステップS401で取得したパターンPB−とパターンPB+のうち、パターンPB−内の対応点PBm−と、当該対応点PBm−と同じ位置にあるパターンPB+における対応点群PBm+との間で輝度比較をおこなうことで対応点の最適化をおこなった。
【0121】
次に、対応点最適化部214は、パターンPB+についてステップS402〜ステップS413と同様の処理をおこなうことで(ステップS415)、図14(d)に示すようなパターンPC+を得る(ステップS416)。すなわち、パターンPB+における対応点(対応点PBm+)を順次探索し、パターンPB−で同じ座標位置となる対応点群PBm−を特定する。そして、対応点群PBm−の平均輝度および対応点PBm+の輝度のそれぞれと参照輝度値BRrefとを比較し、対応点PBm+の輝度の方が参照輝度値BRrefからより遠ければ、当該対応点PBm+がパターンPB+から削除される。
【0122】
このようにして、良好な輝度となっているパターン部分が残存することになる。すなわち、より認識しやすい画像状態(撮像状態)で現れているパターンが選別されるよう最適化される。このような輝度に基づく最適化がなされたパターンPC−(図14(c))とパターンPC+(図14(d))が得られると、「3Dモデリング処理」(図9)のフローに戻る。
【0123】
ここでは、多段露出での撮像がおこなわれたことにより「対応点最適化処理(2)」が実行された場合には、得られたパターンPC−(図14(c))とパターンPC+(図14(d))のそれぞれを構成している対応点を合成し、図10(c)に示すような合成対応点のパターンとする(ステップS212)。すなわち、各画像ペアにおいては、略同じカメラ位置により撮像がなされているので、露出の異なる画像ペア間において、2次元平面にて単純に対応点を合成することで合成対応点とする。
【0124】
この場合、3Dモデリング部215は、合成された対応点を用いて3Dモデリングをおこなう(ステップS213)。
【0125】
一方、多段露出での撮像でなかった場合(ステップS211:No)、ステップS210で特定されたパターンPAに対してなされた「対応点最適化処理(1)」(ステップS300)で得られた対応点が、3Dモデリング部215による3Dモデリングに用いられる(ステップS213)。
【0126】
3Dモデリング部215による3Dモデリングでは、三角測量の原理により、対応点に基づく3Dモデリングをおこなう。ここで、ある対応点をA1とし、カメラ座標におけるA1の3次元位置を示す座標が(X1、Y1、Z1)であるものとする。この場合、図1(b)に示したような平行ステレオ構成のデジタルカメラ1においては、A1の座標(X1、Y1、Z1)はそれぞれ、以下の数1〜数3で表される。ここで、(u1, v1)は、第1撮像部110についての対応点A1への射影点を示し、(u'1, v'1)は、第2撮像部120についての対応点A1への射影点を示す。また、bは第1撮像部110および第2撮像部120の光軸間距離(基線間距離)を示す。
【0127】
(数1)
X1=(b×(u1))/((u'1)−u1)
【0128】
(数2)
Y1=(b×(v1))/((u'1)−u1)
【0129】
(数3)
Z1=(b×f)/((u'1)−u1)
【0130】
ここで、デジタルカメラ1からA1までの距離は、A1の座標Z1によって示されるので、対応点最適化部214は、上記数3を演算することで、被写体TGにおける対応点A1までの撮影距離を算出することができる。
【0131】
この数3は、三角測量の原理によって導かれるものである。三角測量の原理を、図15を参照して説明する。
【0132】
図15は、図1(b)に示した平行ステレオ構成におけるカメラ座標を上から見た模式図である。第1撮像部110による視点がカメラ座標となっているので、被写体位置A1のX軸方向の座標はカメラ座標上のX1で与えられ、この数値は図15に示した数式(1)で求められる。
【0133】
一方、第2撮像部120からの視点におけるA1のX軸方向の座標は、光軸間距離bとカメラ座標のX1との和であり、図15に示した数式(2)で求められ、これらの数式(1)と数式(2)から、上記数3が導き出される。
【0134】
このような三角測量の原理を用いて、各対応点までの撮影距離を算出することで、被写体TGについての3Dモデリングデータが生成される。
【0135】
3Dモデリング部215は、このようにして生成した3Dモデリングデータを、記憶部250や外部記憶部260などに保存し(ステップS214)、「3Dモデリング用撮像処理」(図5)のフローに戻る。
【0136】
「3Dモデリング用撮像処理」においては、例えば、3Dモデリングモードの解除や、デジタルカメラ1の電源オフなどといった、所定の終了イベントが発生しなければ(ステップS21:No)、ステップS11以降の処理がおこなわれる。すなわち、さらなる撮像動作がなされ、これによって得られた撮像画像から3Dモデリングデータの生成がおこなわれる。そして、終了イベントの発生により処理を終了する(ステップS21:Yes)。
【0137】
以上説明したように、本発明を上記実施形態の如く適用することにより、デジタルカメラで撮像した被写体を表す高精度な3Dモデリングデータを容易に得ることができる。
【0138】
被写体について1または複数の露出条件を設定するので、被写体の明部と暗部のそれぞれを適正露出とする撮像画像を複数取得することができ、被写体に明暗差がある場合でも、被写体に投影されたパターンを正確に取得して高精度の3Dモデリングデータを生成することができる。
【0139】
この場合において、被写体にパターンを投影する構成を撮像装置が備えているので、撮像から3Dモデリングデータの生成までを1台の撮像装置でシームレスにおこなうことができ、高精度の3Dモデリングデータを容易に作成することができる。
【0140】
また、撮像画像から認識できるパターンを、パターンの密度に基づいて最適化するので、例えば、パターンの密度が高い部分を抽出することができ、3Dモデリングデータの生成に必要なパターンの認識精度を高めることができる。
【0141】
さらに、パターンの画像状態に基づいてパターンを最適化するので、例えば、パターンの輝度が高い部分を抽出することができ、3Dモデリングデータの生成に必要なパターンの認識精度を高めることができる。
【0142】
この場合、最適化されたパターンを合成して3Dモデリングデータを生成するので、被写体全体から精度の高いパターンを抽出することができ、被写体に明暗差がある場合であっても、高精度な3Dモデリングデータを生成することができる。
【0143】
また、撮像時に被写体の明暗差を判別し、例えば、被写体の明暗差が大きい場合に、複数の露出を設定するようにできるので、撮像から3Dモデリングデータの生成までの一連の作業をより効率的におこなうことができる。
【0144】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0145】
例えば、上記実施形態では、被写体に明暗差がある場合、被写体の明部と暗部のそれぞれを撮影者に指定させたが、例えば、通常のデジタルカメラで一般的となっているAEB(Auto Exposure Bracket:自動多段露出)機能を用いることで、例えば、多分割測光で決定した露出EV0のEV値を所定段数±方向にずらした露出条件を自動的に設定するようにしてもよい。
【0146】
また、上記実施形態の「対応点最適化処理(1)」では、ある対応点と、その対応点の最近傍点との距離に基づいて最適化をおこなったが、対応点の密度に基づいて最適化できるのであれば、その方法はこれに限られるものではない。例えば、ある対応点を中心とした一定範囲内の対応点の数に基づいて密度を判別して最適化するようにしてもよい。
【0147】
また、上記実施形態の「対応点最適化処理(2)」では、輝度の比較によって対応点の最適化をおこなったが、パターンを示す画像状態に基づいて最適化できるのであれば、その方法はこれに限られるものではない。例えば、パターンを示す部分の緑値を比較することで最適化するようにしてもよい。
【0148】
また、上記実施形態では、2次元画像上で対応点をとって3Dモデリングデータを生成する例を示したが、対応点を特定する際に3次元位置推定をおこない、3次元の対応点として最適化や合成の処理をおこなうようにしてもよい。
【0149】
なお、上記実施形態では、光軸の異なる2つの撮像部を撮像装置内に構成した複眼カメラ(ステレオカメラ)によって本発明を実現した場合を例示したが、撮像部が1つの単眼カメラによって本発明を実現してもよい。この場合、撮像部の位置をずらして複数回の撮像動作をおこなうことになるが、撮像部を機械的に移動させる構成を加えることなどにより、視差に相当する光軸のずれを生じさせるようにすればよい。
【0150】
また、上記実施形態では、2つの撮像部を平行ステレオ構成とした場合を例示したが、任意の位置関係であってもよい。この場合、2つの撮像部の位置関係(外部パラメータ)を予め測定しておき、この外部パラメータを用いることで、撮像画像を平行同位画像に変換することができる。この場合、平行ステレオ構成の複眼カメラで撮像した場合と同様に、平行同位画像内の任意点の対応関係を得るために、X方向またはY方向の1方向のみを探索すればよい。
【0151】
また、上記実施形態では、被写体にパターンを投影する構成を撮像装置が有している場合を例示したが、撮像時にパターンを被写体に投影できるのであれば、パターンを投影する構成が撮像装置に備えられていなくてもよい。
【0152】
なお、上記実施形態の撮像装置と同様の機能や構成を予め備えた撮像装置によって本発明を実現できることはもとより、視差に相当する撮像画像が得られるのであれば、既存の撮像装置装置(デジタルカメラなど)にプログラムを適用することで、本発明にかかる撮像装置として機能させることもできる。この場合、上記実施形態で例示したデジタルカメラ1と同様の構成を備えた撮像装置のコンピュータ(CPUなどの制御部)に、上述した制御部210の機能と同様の機能を実現させるためのプログラムを実行させることで、本発明にかかる撮像装置として機能させることができる。
【0153】
なお、上記実施形態では、撮像装置の例として、デジタルスチルカメラを示したが、上記実施形態で例示したデジタルカメラ1と同様の構成を備えているものであれば撮像装置の形態は任意であり、例えば、デジタルビデオカメラなどで本発明にかかる撮像装置を実現することもできる。
【0154】
いずれの場合でも、プログラムを適用することで、既存の装置を本発明にかかる画像表示装置として機能させることができる。このようなプログラムの適用方法は任意であり、例えば、CD−ROMやメモリカードなどの記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【符号の説明】
【0155】
1…デジタルカメラ、110…第1撮像部、111…光学装置、112…イメージセンサ部、120…第2撮像部、121…光学装置、122…イメージセンサ部、130…パターン投影部、200…データ処理部、210…制御部、211…動作モード処理部、212…撮像制御部、213…特徴点抽出部、214…対応点最適化部、215…3Dモデリング部、220…画像処理部、230…画像メモリ、240…画像出力部、250…記憶部、260…外部記憶部、300…インタフェース部、310…表示部、320…外部インタフェース部、330…操作部
【技術分野】
【0001】
本発明は、撮像装置、3Dモデリングデータ生成方法、および、プログラムに関し、特に、明暗差のある被写体からの3Dモデリングデータの生成に好適な撮像装置、3Dモデリングデータ生成方法、および、プログラムに関する。
【背景技術】
【0002】
コンピュータグラフィクスによる3次元(3D)表現が多く用いられるようになり、よりリアリティのある3D表現が求められている。このような要求に対し、実際の立体物をカメラで撮像して3Dモデリングデータを作成する手法が確立している。
【0003】
この場合、立体物の3次元的位置を認識するため、視差に相当する光軸のズレが設定された、いわゆる複眼カメラ(ステレオカメラ)が用いられる。
【0004】
また、撮像対象の立体物にテクスチャがなく、凹凸などの立体的形状が認識しにくい場合でも、例えば、ドットパターンなどのパターンを対象物に投影することで特徴点を得るようにしたパターン投影法も知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−101276号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
パターンを投影した被写体を撮像することで3Dモデリングデータを作成する場合において、被写体に明暗差があると、被写体全体を適正露出とすることが困難であり、投影されたパターンを撮像画像から正確に認識することができないことがある。このような場合、高精度な3Dモデリングデータを容易に得ることができない。
【0007】
本発明は、被写体に明暗差がある場合でも高精度な3Dモデリングデータを容易に作成することができる撮像装置、3Dモデリングデータ作成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の第1の観点にかかる撮像装置は、
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段と、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する露出設定手段と、
前記撮像手段を制御し、前記露出設定手段が設定した露出条件の数に応じた回数の撮像動作をおこなう撮像制御手段と、
前記撮像制御手段の制御によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定するパターン特定手段と、
前記露出設定手段が設定した露出に基づいて、前記パターン特定手段が特定したパターンを最適化するパターン最適化手段と、
前記パターン最適化手段が最適化した前記パターンを用いて3Dモデリングデータを生成する3Dモデリングデータ生成手段と、
を備えることを特徴とする。
【0009】
上記撮像装置は、
被写体にパターンを投影するパターン投影手段をさらに備えていることが望ましい。
【0010】
上記撮像装置において、
前記露出設定手段は、少なくとも、前記被写体の明部が適正露出となる露出条件と、前記被写体の暗部が適正露出となる露出条件とを設定することが望ましい。
【0011】
上記撮像装置において、
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの密度に基づいて該パターンを最適化することが望ましい。
【0012】
上記撮像装置において、
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの画像状態に基づいて該パターンを最適化することが望ましい。
【0013】
上記撮像装置は、
前記パターン最適化手段が最適化したパターンを合成するパターン合成手段をさらに備えていることが望ましく、この場合、
前記3Dモデリングデータ生成手段は、前記パターン合成手段が合成したパターンを用いて前記3Dモデリングデータを生成することが望ましい。
【0014】
上記撮像装置は、
前記被写体の明暗差を判別する判別手段をさらに備えていてもよく、この場合、
前記露出設定手段は、前記判別手段の判別結果に応じて露出条件を設定することが望ましい。
【0015】
上記目的を達成するため、本発明の第2の観点にかかる3Dモデリングデータ生成方法は、
同一の被写体について光軸位置が異なる画像ペアを得る撮像手段を備える撮像装置で当該被写体の3Dモデリングデータを生成する3Dモデリングデータ生成方法であって、
被写体の明部を適正露出とする前記撮像手段の撮像動作で第1の画像ペアを取得する第1の撮像ステップと、
前記被写体の暗部を適正露出とする前記撮像手段の撮像動作で第2の画像ペアを取得する第2の撮像ステップと、
取得された前記画像ペアのそれぞれにおいて、前記被写体に投影されたパターンを特定するパターン特定ステップと、
前記画像ペアのそれぞれにおいて、前記パターン特定ステップで特定されたパターンの密度に基づいて、当該パターンを最適化する第1の最適化ステップと、
露出の異なる画像ペア間において、前記パターン特定ステップで特定されたパターンの画像状態に基づいて、当該パターンを最適化する第2の最適化ステップと、
前記最適化されたパターンを合成し、該合成したパターン用いて3Dモデリングデータを生成する3Dモデリングデータ生成ステップと、
を含むことを特徴とする。
【0016】
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段を備える撮像装置のコンピュータに、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する機能と、
前記撮像手段を制御し、前記設定された露出条件の数に応じた回数の撮像動作をおこなう機能と、
前記撮像動作によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定する機能と、
前記設定した露出に基づいて、前記特定されたパターンを最適化する機能と、
前記最適化されたパターンを用いて3Dモデリングデータを生成する機能と、
を実現させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、高精度な3Dモデリングデータを容易に作成することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態にかかるデジタルカメラが複眼カメラ(平行ステレオカメラ)であることを説明するための図であり、(a)はデジタルカメラの外観構成を示し、(b)は平行ステレオの概念を示す。
【図2】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図3】図1に示す制御部によって実現される機能を示す機能ブロック図である。
【図4】図1(a)に示したデジタルカメラによる撮像動作を説明するための図であり、(a)は撮像対象となる被写体の例を示し、(b)は撮像によって得られる画像ペアの例を示す。
【図5】本発明の実施形態にかかる「3Dモデリング用撮像処理」を説明するためのフローチャートである。
【図6】図5に示す「3Dモデリング用撮像処理」で実行される「多段露出決定処理」を説明するためのフローチャートである。
【図7】図6に示す「多段露出決定処理」で表示される「測光点指定画面」の例を示す図であり、(a)はメッセージの表示例を示し、(b)は測光点の例を示す。
【図8】図5に示す「3Dモデリング用撮像処理」における撮像動作を説明するための図であり、(a)はパターンが投影された被写体の例を示し、(b)は被写体の明部を適正露出とした場合に得られる画像ペアの例を示し、(c)は被写体の暗部を適正露出とした場合に得られる画像ペアの例を示す。
【図9】図5に示す「3Dモデリング用撮像処理」で実行される「3Dモデリング処理」を説明するためのフローチャートである。
【図10】図9に示す「3Dモデリング処理」を説明するための図であり、(a)および(b)はテンプレートマッチングによって得られる対応点パターンの例を示し、(c)は最適化された対応点を合成した合成対応点の例を示す。
【図11】図9に示す「3Dモデリング処理」で実行される「対応点最適化処理(1)」を説明するためのフローチャートである。
【図12】図11に示す「対応点最適化処理(1)」を説明するための図であり、(a)および(b)はドット間の距離に基づく最適化の動作例を示し、(c)および(d)は最適化された対応点の例を示す。
【図13】図9に示す「3Dモデリング処理」で実行される「対応点最適化処理(2)」を説明するためのフローチャートである。
【図14】図13に示す「対応点最適化処理(2)」を説明するための図であり、(a)および(b)は異なる露出画像間での輝度に基づく最適化の動作例を示し、(c)および(d)は最適化された対応点の例を示す。
【図15】三角測量の原理を説明するための図である。
【発明を実施するための形態】
【0019】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ(以下、デジタルカメラ)によって実現した場合を例示する。本実施形態にかかるデジタルカメラ1は、一般的なデジタルスチルカメラが有する機能を備えているものとするが、図1(a)に示すように、撮像にかかる構成を2つ備えた、いわゆる複眼カメラ(ステレオカメラ)とする。
【0020】
このような複眼カメラの構成を有するデジタルカメラ1には、通常の撮像機能に加え、撮像される画像を用いて3次元モデリング(3Dモデリング)をおこなう機能を有する。このため、3Dモデリングに好適な撮像画像が得られるよう、図1(a)に示すように、パターン投影部130(詳細後述)が構成されている。
【0021】
このようなデジタルカメラ1の構成を、図2を参照して説明する。図2は、本発明の実施形態にかかるデジタルカメラ1の構成を示すブロック図である。本実施形態にかかるデジタルカメラ1の概略的構成は、図示するように、撮像動作部100、データ処理部200、インタフェース(I/F)部300、などである。
【0022】
撮像動作部100は、デジタルカメラ1による撮像時の動作をおこなうものであり、図2に示すように、第1撮像部110、第2撮像部120、パターン投影部130、などから構成される。
【0023】
第1撮像部110および第2撮像部120は、デジタルカメラ1の撮像動作をおこなう部分である。上述したように、本実施形態にかかるデジタルカメラ1は複眼カメラであるため、第1撮像部110と第2撮像部120とを有する構成であるが、第1撮像部110と第2撮像部120は同一の構成である。以下、第1撮像部110についての構成には110番台の参照符号を付し、第2撮像部120についての構成には120番台の参照符号を付す。
【0024】
図2に示すように、第1撮像部110(第2撮像部120)は、光学装置111(121)やイメージセンサ部112(122)などから構成されている。
【0025】
光学装置111(121)は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置111(121)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。
【0026】
なお、光学装置111(121)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置111(121)にシャッタ機構が含まれていなくてもよい。また、光学装置111(121)は、後述する制御部210による制御によって動作する。
【0027】
イメージセンサ部112(122)は、光学装置111(121)によって集光された入射光に応じた電気信号を生成する、例えば、CCD(Charge Coupled Device:電荷結合素子)やCMOS(Complementally Metal Oxide Semiconductor:相補型金属酸化物半導体)などのイメージセンサから構成される。イメージセンサ部112(122)は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部200に出力する。
【0028】
上述したように、第1撮像部110と第2撮像部120は同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積などの各仕様がすべて同一である。
【0029】
このような第1撮像部110と第2撮像部120を有するデジタルカメラ1は、図1(a)に示すように、光学装置111に構成されたレンズと光学装置121に構成されたレンズとが、デジタルカメラ1の外面における同一面上に形成された構成とする。
【0030】
ここでは、シャッタボタンが上になる方向でデジタルカメラ1を水平にした場合に、中心位置が水平方向で同一線上となるよう2つのレンズ(受光部)が配置されるものとする。つまり、第1撮像部110と第2撮像部120とを同時に動作させた場合、同一被写体についての画像が撮像されることになるが、各画像における光軸位置が横方向にずれている画像となる。
【0031】
この場合、図1(b)の透視射影モデルに示すような光学的特性となるよう第1撮像部110と第2撮像部120が配置される。図1(b)に示す透視射影モデルは、X、Y、Zからなる3次元直交座標系に基づくものであり、第1撮像部110についてのこの座標系を以下「カメラ座標」と呼ぶ。図1(b)では、第1撮像部110の光学中心を原点としたカメラ座標を示している。
【0032】
カメラ座標においては、Z軸をカメラの光学方向に一致する方向とし、X軸とY軸はそれぞれ画像の横方向と縦方向に平行する。ここで、光軸と画像座標面の交点を原点(すなわち、光学中心)とし、イメージセンサの画素間隔を換算してカメラ座標と長さの単位を合わせた場合、第1撮像部110についての画像座標面で被写体A1を示す画像座標を(u1, v1)とし、第2撮像部120についての画像座標面では(u'1, v'1)とする。
【0033】
第1撮像部110と第2撮像部120は、それぞれの光軸が平行(すなわち、輻輳角が0)になり、かつ、第1撮像部110についての画像座標u軸と第2撮像部120についての画像座標u'軸が同一線上で同じ方向となるよう配置される(すなわち、エピポーラ線が一致)。また、上述したように、第1撮像部110および第2撮像部120の焦点距離fや画素間隔は同じであり、光軸と画像座標面とが垂直に交わっている。このような構成を「平行ステレオ」と呼び、デジタルカメラ1の第1撮像部110と第2撮像部120は平行ステレオの構成となっている。
【0034】
図2に戻り、デジタルカメラ1の構成の説明を続ける。
【0035】
パターン投影部130は、デジタルカメラ1の撮像による3Dモデリングを、パターン投影法を利用しておこなう際にパターンを投影するものであり、例えば、キセノンフラッシュやLEDなどの発光装置から構成される光源、光源からの光によって被写体に投影されるパターン、投影光の集光や拡散をおこなうためのレンズや反射板、などから構成される。
【0036】
このようなパターン投影部130は、上記のような構成を有する専用装置として実現できる他、例えば、通常のデジタルカメラが備えている内蔵ストロボやAF補助光などのような発光機能をもつ構成に、パターンを投影できる構成を付加することで実現されてもよい。
【0037】
データ処理部200は、第1撮像部110および第2撮像部120による撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図2に示すように、データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、などから構成される。
【0038】
制御部210は、例えば、CPU(Central Processing Unit:中央演算処理装置)などのプロセッサや、RAM(Random Access Memory)などの主記憶装置(メモリ)、などから構成され、後述する記憶部250などに格納されているプログラムを実行することで、デジタルカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部210によって実現される。本実施形態では、3Dモデリングにかかる処理についても制御部210にておこなわれるものとするが、制御部210とは独立した専用プロセッサなどがおこなうように構成してもよい。
【0039】
画像処理部220は、例えば、ADC(Analog-Digital Converter:アナログ−デジタル変換器)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)などから構成され、イメージセンサ部112および122によって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【0040】
すなわち、イメージセンサ部112(122)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンがいわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。
【0041】
画像メモリ230は、例えば、RAMやフラッシュメモリなどの記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データなどを一時的に格納する。
【0042】
画像出力部240は、例えば、RGB信号の生成回路などから構成され、画像メモリ230に展開された画像データをRGB信号などに変換して表示画面(後述する表示部310など)に出力する。
【0043】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ1の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部210などが実行する動作プログラムや処理に必要となるパラメータや演算式などが記憶部250に格納されているものとする。
【0044】
外部記憶部260は、例えば、メモリカードなどといった、デジタルカメラ1に着脱可能な記憶装置から構成され、デジタルカメラ1で撮像した画像データや生成された3Dモデリングデータなどを格納する。
【0045】
インタフェース部300は、デジタルカメラ1とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図2に示すように、表示部310、外部インタフェース(I/F)部320、操作部330、などから構成される。
【0046】
表示部310は、例えば、液晶表示装置などから構成され、デジタルカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、3Dモデリングデータ、などを表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)などに基づいて撮像画像等の表示出力がおこなわれる。
【0047】
外部インタフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子などから構成され、画像データや3Dモデリングデータなどを外部のコンピュータ装置へ転送したり、撮像画像や3Dモデリング画像などを外部のモニタ装置に表示出力したりする。
【0048】
操作部330は、デジタルカメラ1の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ1の使用者による操作に応じた入力信号を生成して制御部210に入力する。操作部330を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ1のもつ動作モードを指定するためのモードボタン、3Dモデリングをおこなうための設定をはじめとした各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【0049】
ここで、本実施形態では、記憶部250に格納されている動作プログラムを制御部210が実行することで、後述する各処理が実現されるが、この場合に制御部210によって実現される機能を、図3を参照して説明する。
【0050】
図3は、制御部210によって実現される機能を示した機能ブロック図である。ここでは、複眼カメラによって撮像された画像から被写体画像を抽出する機能を実現するために必要な機能構成を示す。この場合、図示するように、制御部210は、動作モード処理部211、撮像制御部212、特徴点抽出部213、対応点最適化部214、3Dモデリング部215、などとして機能する。
【0051】
動作モード処理部211は、表示部310との協働により、デジタルカメラ1が有する各種動作モードをデジタルカメラ1のユーザに指定させるために必要な画面表示や指定された動作モード毎の設定画面表示などをおこなう他、操作部330との協働により、ユーザが指定した動作モードを認識し、当該動作モードの実行に必要なプログラムや演算式などを記憶部250から読み出し、制御部210の主記憶装置(メモリ)にロードする。
【0052】
本実施形態では、デジタルカメラ1での撮影後に撮像画像から3Dモデリングをおこなう動作モード(3Dモデリングモード)がユーザによって指定されるものとし、以下に説明する制御部210の各機能構成は、3Dモデリングモードが指定されたことに応じて動作モード処理部211がロードしたプログラムを実行することで実現される機能構成である。
【0053】
撮像制御部212は、第1撮像部110および第2撮像部120を制御することでデジタルカメラ1での撮像動作を実行する。この場合、撮像制御部212は、例えば、一般的なデジタルカメラにおいておこなわれている、測光、合焦、自動露出、撮像時の画面表示、などのような撮像にかかる各種の処理と制御をおこなう。
【0054】
また、本実施形態にかかる3Dモデリング機能は、平行ステレオ構成となっている第1撮像部110と第2撮像部120から得られた複数枚の撮像画像を利用する。よって、本実施形態にかかる撮像制御部212は、第1撮像部110と第2撮像部120が同時に連続撮像(連写)するよう制御する。また、撮像制御部212は、このような連写の際、露出を異ならせて撮像するよう制御する。これにより、同一の被写体について、光軸位置の異なる2つの撮像画像を1組(画像ペア)とした露出の異なる複数組の撮像画像が取得される。
【0055】
また、本実施形態では、「3Dモデリングモード」で撮像動作をおこなう場合、撮像制御部212は、パターン投影部130を制御することで、被写体へのパターン投影をおこなう。
【0056】
特徴点抽出部213は、撮像された画像間で照合をおこなうことにより、パターン投影部130によって被写体に投影されたパターンで示される特徴点を抽出する。この場合、特徴点抽出部213は、複眼カメラによって得られる、光軸位置の異なる複数画像間で対応する特徴点(対応点)を抽出する。
【0057】
本実施形態では、一方の画像をテンプレートとして照合するテンプレート照合(テンプレートマッチング)による画像間の照合によって対応点の抽出をおこなうものとし、この場合、例えば、差の2乗和を評価式とするSSD(Sum of Squared Difference)を用いたテンプレート照合をおこなうものとする。SSDによるテンプレート照合の場合、照合した画像同士が完全に一致すると値が「0」となる。すなわち、画像間の相違が大きい程より大きい値となるので、テンプレート照合によって得られる値は、テンプレートとの相違度を示すことになる。このようなテンプレート照合には、例えば、各画像の輝度値あるいは緑値を用いるものとする。
【0058】
対応点最適化部214は、特徴点抽出部213によって抽出された対応点を、3Dモデリングでの利用に好適となるよう最適化する。この場合、対応点最適化部214は、特徴点抽出部213が抽出した各対応点と周辺対応点の距離、あるいは、フレームが異なる(撮像時間が異なる)対応点との距離を算出し、距離に基づく条件により対応点の削除をおこなうことで最適化する。ここでの距離は、ユークリッド距離であるものとする。
【0059】
また、対応点最適化部214は、露出の異なる画像が得られている場合には、対応点間の距離に基づく最適化に加え、露出の異なる画像間で対応する位置での輝度を比較し、輝度に基づく条件により対応点の削除をおこなうことで最適化する。
【0060】
3Dモデリング部215は、対応点最適化部214によって最適化された対応点(特徴点)を用いて3Dモデリングをおこなう。この場合、3Dモデリング部215は、例えば、対応点をドロネー分割することによりポリゴンを生成して3Dモデリングをおこなう。
【0061】
以上が制御部210によって実現される機能である。なお、本実施形態では、制御部210がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)などのハードウェアによって構成してもよい。この場合、図3に示した機能のうち、画像処理にかかる機能については、画像処理部220によって実現されてもよい。
【0062】
以上説明したデジタルカメラ1の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【0063】
このような構成のデジタルカメラ1による動作を以下に説明する。ここでは、デジタルカメラ1の動作モードのうち、上述した「3Dモデリングモード」が選択された場合の動作例を示す。この場合、デジタルカメラ1によって撮像をおこない、その撮像画像から3Dモデリングをおこなう。
【0064】
その撮像の際、本実施形態では、図4(a)に示すような被写体TGを撮像することを想定する。被写体TGは、図4(a)に示すように、反射率の高い白っぽい部分(明部)と反射率の低い黒っぽい部分(暗部)とを含んでいるものとし、以下、被写体TGにおける明部を被写体TG+とし、暗部を被写体TG−とする。なお、図面においては、単純化した図形によって被写体TGを示すが、実際に撮像される被写体TGは立体物(例えば、人物、動物、美術品、など)である。そして、本実施形態では、このような立体物である被写体TGをデジタルカメラ1で撮像し、その撮像画像から被写体TGを3次元的な画像として表すための3Dモデリングデータを生成する。
【0065】
上述したように、本実施形態にかかるデジタルカメラ1は、複眼カメラの構成を有しており、このようなデジタルカメラ1で被写体TGを撮像した場合の撮像画像の例を図4(b)に示す。本実施形態では、第1撮像部110を構成するレンズが被写体に向かって右側に配置されているものとし、このような第1撮像部110(右側カメラ)によって撮像される画像を基準画像とする。すなわち、第1撮像部110によって撮像された画像がファインダ画像などとして用いられ、例えば、被写体が画面中央となるようにフレーミングした場合、図4(b)に示すように、第1撮像部110による撮像画像である画像IM(R)に反映される。
【0066】
一方、第2撮像部120は、第1撮像部110よりも左側に配置されているため、このような第2撮像部120(左側カメラ)によって撮像された画像である画像IM(L)では、図4(b)に示すように、写っている被写体の位置が画像IM(R)よりも右側にずれた状態となる。
【0067】
本実施形態では、第1撮像部110と第2撮像部120が同時に撮像動作をおこなうので、図4(b)に示したような画像IM(L)と画像IM(R)が同時に取得される。このような、1回の撮像動作によって得られる画像IM(L)と画像IM(R)の組を画像ペアIPとする。
【0068】
上記のような撮像画像を得るデジタルカメラ1において「3Dモデリングモード」が選択された場合に実行される「3Dモデリング用撮像処理」を、図5に示すフローチャートを参照して説明する。この「3Dモデリング用撮像処理」は、デジタルカメラ1のユーザが操作部330を操作することで、3Dモデリングモードを選択したことを契機に開始される。この場合、動作モード処理部211が、被写体抽出動作にかかるプログラムなどを記憶部250からロードすることで、図3に示した各機能構成により以下の処理が実行される。
【0069】
処理が開始されると、撮像制御部212は、操作部330からの入力信号に基づいて、シャッタボタンが操作されたか否かを判別する(ステップS11)。ここで、本実施形態にかかるデジタルカメラ1では、通常のカメラと同様、シャッタボタンのストロークが2段階になっているものとし、ストロークの1段階目(全ストロークの途中)まで押下された状態を「半押し」、ストロークの2段階目(全ストロークの最深)まで押下された状態を「全押し」とする。
【0070】
ステップS11では、シャッタボタンが半押しされたか否かを判別する。なお、シャッタボタンが半押しされるのは、通常のカメラと同様、被写体への合焦をおこなう場合であり、ステップS11で半押しが検出されたときは、図4(a)に示したような状況において、被写体TGのフレーミングが確定し、被写体TGに対する合焦をおこなう場合であるものとする。
【0071】
なお、本実施形態では、撮像画像から3Dモデリングをおこなうため、被写体TGがファインダ中央に位置し、かつ、被写体TGの全体が収まるフレーミングで撮像されるものとする。また、連写によって複数回の撮像をおこなって得られる画像を用いるので、画像間で被写体TGの位置がずれないよう、デジタルカメラ1は撮像時に固定されていることが望ましい。
【0072】
シャッタボタンが半押しされると(ステップS11:Yes)、撮像制御部212は第1撮像部110を制御し合焦のための動作をおこなう。このとき、撮像制御部212は、自動露出(AE:Auto Exposure)による露出決定をおこなう(ステップS12)。ここでは、AEにおける標準的な測光方式である多分割測光によって露出決定をおこなうものとする。すなわち、画面全体を複数の領域に分割して測光し、全体の明るさが反射率18%のグレーと同じとなるような露出を算出する。ステップS12での多分割測光による露出(すなわち、絞り、シャッタスピード、ISO感度などの組み合わせを示す露出条件)を「EV0」(EV:Exposure Value)とする。撮像制御部212は、決定したEV0をメモリに保持する。
【0073】
露出を算出すると、撮像制御部212は、当該露出による撮像画像(ここでは、ファインダ画像となる動画像)についての輝度分布を示すヒストグラムを作成し、当該ヒストグラムを検証することで(ステップS13)、被写体TGに大きな明暗差があるか否かを判別する(ステップS14)。ここでは、ヒストグラムの暗部側と明部側の双方に大きな山がある場合、被写体TGの明暗差があると判別する。すなわち、図4(a)に示したような、被写体TG+と被写体TG−を含む被写体TGを撮像した場合、被写体の明暗差が大きいと判別する。
【0074】
ここで、本実施形態では、撮像画像から3Dモデリングデータを取得するため、被写体TGに対してパターン投影をおこなう(詳細後述)。この場合において、被写体TGに大きな明暗差があると、全体を一定の明るさとする多分割測光によって露出を決定した場合、撮像画像上でのパターンが部分的に識別できない状態となり、正確な3Dモデリングをおこなうことができない。
【0075】
このため、本実施形態では、ステップS14で被写体TGの明暗差が大きいと判別した場合、被写体TGの明部(すなわち、被写体TG+)と暗部(すなわち、被写体TG−)とで別々に露出をとり(以下、「多段露出」とする)、それぞれの露出で撮像をおこなうことで、撮像画像から正確にパターンを抽出できるようにする。
【0076】
よって、撮像制御部212は、被写体TGの明暗差が大きいと判別した場合(ステップS14:Yes)、多段露出における露出を決定するための「多段露出決定処理」を実行する(ステップS100)。この「多段露出決定処理」を、図6に示すフローチャートを参照して説明する。
【0077】
処理が開始されると、撮像制御部212は、被写体TG上での測光点を撮影者に指定させるための「測光点指定画面」を表示部310に表示する(ステップS101)。ここでは、例えば、図7に示すような「測光点指定画面」が表示部310に表示される。「測光点指定画面」ではまず、図7(a)に示すような、「被写体に明暗差がある」旨のメッセージとともに、測光点の指定を促すメッセージを表示部310に表示する。
【0078】
その後、撮像制御部212は、図7(b)に示すような、選択可能な複数の測光点をファインダ画像上に表示した測光点指定画面を表示部310に表示する。撮影者は、操作部330の十字キーなどを操作して、被写体TGの明るい部分(すなわち、被写体TG+)の位置にある測光点を指定する。
【0079】
被写体TG+の測光点が指定されると(ステップS102:Yes)、撮像制御部212は、第1撮像部110を制御し、いわゆるスポット測光により、指定された測光点を中心とした狭範囲(例えば、画面全体の数%程度の面積)を測光して露出を決定する(ステップS103)。被写体TG+をスポット測光した露出を「EV+」とする。撮像制御部212は、決定したEV+をメモリに保持する。
【0080】
被写体TG+についての露出を決定すると、撮像制御部212は、図7(b)に示したような測光点指定画面を再度表示部310に表示し、被写体TGの暗い部分(すなわち、被写体TG−)の位置にある測光点を撮影者に指定させる。
【0081】
被写体TG−の測光点が指定されると(ステップS104:Yes)、撮像制御部212は、被写体TG+の場合と同様に、指定された測光点(すなわち、被写体TG−の位置にある測光点)を中心としたスポット測光により露出を決定する(ステップS105)。被写体TG−をスポット測光した露出を「EV−」とする。撮像制御部212は、決定したEV−をメモリに保持する。
【0082】
このようにして、被写体TGのうちの被写体TG+と被写体TG−のそれぞれで個別に露出をとると、「3Dモデリング用撮像処理」(図5)のフローに戻る。
【0083】
ここで、ステップS12で決定された露出で被写体TGの明暗差が大きくないと判別された場合には(ステップS14:No)、「多段露出決定処理」(ステップS100)は、実行されない。この場合、ステップS12でおこなった多分割測光による露出EV0が以後の撮像に用いられる。
【0084】
このようにして露出(EV0もしくはEV+とEV−)を決定すると、撮像制御部212は、パターン投影部130を制御し、被写体TGに対するパターン投影を開始する(ステップS15)。すなわち、図8(a)に示すように、被写体TGにパターンが投影される。ここで、パターン投影部130によって投影されるパターンは、例えば、小円が規則的に配列されたドットパターンとするが、これに限られず、3Dモデリングのパターン投影法で用いられている種々のパターン(例えば、ランダムパターンなど)が採用されうる。
【0085】
この状態で、撮像動作を指示するシャッタボタンの全押しが検出されると(ステップS16:Yes)、撮像制御部212は、第1撮像部110と第2撮像部120を制御し、決定した露出での撮像をおこなう(ステップS17)。ここで、被写体TGに大きな明暗差がないと判別された場合(多段露出)には、ステップS12で決定されたEV0で撮像をおこない、被写体TGの明暗差が大きいと判別された場合には、「多段露出決定処理」(図6)のステップS103で決定されたEV+で撮像をおこなう。
【0086】
そして、多段露出の場合(ステップS18:Yes)、撮像制御部212は、続けて第1撮像部110と第2撮像部120を制御し、「多段露出決定処理」(図6)のステップS105で決定したEV−での撮像をおこなう(ステップS19)。
【0087】
すなわち、被写体TGに大きな明暗差がなければ、EV0を露出とした1回の撮像動作がおこなわれ、図4(b)に例示したような画像ペアIPが取得される。一方、被写体TGに大きな明暗差がある場合には、EV+とEV−のそれぞれの露出で2回撮像動作がおこなわれる。この場合、図8(b)と図8(c)に示すような2つの画像ペアIP(画像ペアIP+と画像ペアIP−)が取得される。
【0088】
ここで、被写体TG+をスポット測光した露出EV+で得られる画像ペアIPを画像ペアIP+(図8(b)とし、画像ペアIP+を構成している画像IM(L)を画像IM(L)+、画像IM(R)を画像IM(R)+とする。ここでは、被写体TGの明部である被写体TG+にスポット測光しているので、被写体TG+が適正露出(被写体TG+における階調変化も描写される状態)となる。この場合、図8(b)に示すように、被写体TGの暗部である被写体TG−は露出アンダーとなり、場合によっては、いわゆる黒つぶれとなる。この場合、被写体TG−上に投影されたパターン(露出の違いを明示するため、図8(b)ではパターンは不図示)を撮像画像から正確に抽出することは困難となる。
【0089】
また、被写体TG−をスポット測光した露出EV−で得られる画像ペアIPを画像ペアIP−(図8(c)とし、画像ペアIP−を構成している画像IM(L)を画像IM(L)−、画像IM(R)を画像IM(R)−とする。ここでは、被写体TGの暗部である被写体TG−にスポット測光しているので、被写体TG−が適正露出(被写体TG−における階調変化も描写される状態)となる。この場合、図8(c)に示すように、被写体TGの明部である被写体TG+は露出オーバーとなり、場合によっては、いわゆる白飛びとなる。この場合も、被写体TG+上に投影されたパターン(露出の違いを明示するため、図8(c)ではパターンは不図示)を撮像画像から正確に抽出することは困難となる。
【0090】
このような撮像画像が得られると、撮像制御部212は、得られた画像ペアIPもしくは画像ペアIP+と画像ペアIP−を画像メモリ上に保持するとともに、パターン投影部130を制御し、パターン投影を終了する(ステップS20)。そして、得られた撮像画像から3Dモデリングをおこなう「3Dモデリング処理」が実行される(ステップS200)。この「3Dモデリング処理」を、図9に示すフローチャートを参照して説明する。
【0091】
本処理における3Dモデリングにおいては、まず、被写体TGに投影されたパターンを撮像画像から抽出する。よって、処理が開始されると、特徴点抽出部213により、対象となる撮像画像が取得される。上述したように、被写体TGの明暗差の有無により撮像動作が異なっているので、特徴点抽出部213は、「3Dモデリング用撮像処理」(図5)での撮像が多段露出であったか否かを判別する(ステップS201)。
【0092】
多段露出である場合(ステップS201:Yes)、上述したように、画像ペアIP+と画像ペアIP−の2組の画像ペアが得られているので、特徴点抽出部213はまず、画像メモリ230から画像ペアIP+を取得する(ステップS202)。
【0093】
特徴点抽出部213は、取得した画像ペアIP+を構成している画像IM(L)+と画像IM(R)+とでテンプレートマッチングをおこなう(ステップS203)。ここでは、パターン投影部130が投影したパターンの特徴(形状や大きさ、配列パターンなど)に基づいて、画像IM(L)+に写っているパターン(特徴点候補)を既知の画像認識技術によって抽出し、画像IM(L)+から抽出した特徴点候補の画像をテンプレートとする。
【0094】
そして、このようなテンプレートと一方の画像である画像IM(R)+とでSSDなどによるテンプレートマッチングをおこなう。この結果、所望の閾値以上の一致度となった特徴点が、画像ペア間で対応する特徴点(以下、「対応点」とする)として特定される。ここでは、同じ露出で得られた画像ペア間での対応点となり、このような対応点で構成されたパターン(以下、「パターンPA+」とする)として特定する(ステップS204)。すなわち、3Dモデリングで必要となる、デジタルカメラ1から各特徴点までの距離算出に用いることができるよう、視差に相当する光軸位置の違いが反映されている画像ペア間で、対応点のパターンを特定する。
【0095】
画像ペアIP+を構成する画像IM(L)+と画像IM(R)+との間でテンプレートマッチングをおこなった後のイメージをIM(PM)+として図10(a)に例示する。ここでは、図示するように、画像IM(L)+と画像IM(R)+との間で一致する対応点が得られているが、画像ペアIP+は被写体TG+を適正露出とした画像ペアであるため、被写体TG+における対応点はほぼ完全に特定されている。一方、露出アンダーとなっている被写体TG−においては、対応点の特定は不完全である。
【0096】
ここで、被写体TG全体の3Dモデリングをおこなうには、被写体TG+と被写体TG−の双方において、ほぼ完全な対応点を特定する必要がある。本実施形態では、後述する処理において不完全な対応点を補完する。
【0097】
同様に、被写体TG−を適正露出とする画像ペアIP−でのテンプレートマッチングをおこなうことで、被写体TG−ではほぼ完全な対応点であるが、被写体TG+では対応点が不完全である対応点からなるパターンPA−(図10(b))も特定する。
【0098】
すなわち、特徴点抽出部213が画像メモリ230から画像ペアIP−を取得し(ステップS205)、画像IM(L)−から抽出したパターン画像をテンプレートとしたテンプレートマッチングをおこなうことで(ステップS206)、所望の閾値以上の一致度となる特徴点を、同じ露出で得られた画像ペア間の対応点からなるパターンPA−として特定する(ステップS207)。
【0099】
なお、撮像時に多段露出でなかった場合(ステップS201:No)、特徴点抽出部213は、EV0で撮像された画像ペアIPを画像メモリ230から取得し(ステップS208)、取得した画像ペアIPを構成している画像IM(L)と画像IM(R)でテンプレートマッチングをおこなうことで(ステップS209)、所望の閾値以上の一致度となる特徴点候補を、同じ露出で得られた画像ペア間で対応する特徴点(対応点)からなるパターンPAとして特定する(ステップS210)。この場合、被写体TGに大きな明暗差がないため、EV0で撮像した画像IM(L)と画像IM(R)のいずれにおいても、被写体TGに投影されたパターンが明確に得られることになる。
【0100】
このようにして、各画像ペアを構成している画像間でのテンプレートマッチングによって対応点を抽出すると、特徴点抽出部213は、テンプレートマッチングの結果を画像メモリ230に保持する。その後、抽出した対応点を最適化するための「対応点最適化処理(1)」が対応点最適化部214によって実行される(ステップS300)。ここでの「最適化」とは、露出オーバーもしくは露出アンダーとなっている被写体TG+や被写体TG−において不完全であったパターンを補完するため、より状態のよいパターン部分を抽出することをいう。この「対応点最適化処理(1)」を、図11に示すフローチャートを参照して説明する。
【0101】
処理が開始されると、対応点最適化部214は、図10(b)に例示したようなパターンPA−を画像メモリ230から取得する(ステップS301)。ここで、パターンPA−は、対応点PA1−〜PAn−(すなわち、n個の対応点)を含んでいるものとし、対応点最適化部214は、対応点PA1−〜PAn−に1〜nのナンバリングをおこなう(ステップS302)。
【0102】
パターンPA−の各対応点にナンバリングすると、対応点最適化部214は、当該パターンPA−を構成している対応点を指定するためのカウンタmに初期値1を設定し(ステップS303)、パターンPA−からm番目の対応点である対応点PAm−を探索する(ステップS304)。
【0103】
対応点PAm−が探索されると、対応点最適化部214は、パターンPA−内において、例えば、図12(a)に示すような、対応点PAm−の最も近傍に位置する対応点である最近傍点PAx−を特定し(ステップS305)、対応点PAm−と最近傍点PAx−との距離(距離Dmx)を算出する(ステップS306)。
【0104】
対応点最適化部214は、算出した距離Dmxと閾値Dthとを比較し、対応点PAm−とその最近傍点PAx−との距離Dmxが閾値Dth以上である場合(ステップS307:Yes)、例えば、図12(b)に示すように、パターンPA−から対応点PAm−を削除する(ステップS308)。
【0105】
一方、距離Dmxが閾値Dth未満である場合には(ステップS307:No)、対応点PAm−はパターンPA−に残ることになる。
【0106】
次に、対応点最適化部214は、カウンタmを+1し(ステップS309)、その値が対応点の数であるn以内であれば(ステップS310:No)、次の対応点についてのステップS304以降の処理をおこなう。このような処理を、パターンPA−のすべての対応点でおこなうと(ステップS310:Yes)、図12(c)に示すように、ステップS308で削除されなかった対応点が残存する。対応点最適化部214は、このような対応点で構成されるパターンをパターンPB−とし、画像メモリ230に保持する(ステップS311)。
【0107】
すなわち、画像ペアIP−を構成する画像間でテンプレートマッチングしたことで得られたパターンPA−のドットパターンを、ドット間の距離に基づいて最適化し、最適化されたパターンPB−とする。
【0108】
次に対応点最適化部214は、画像メモリ230からパターンPA+を取得し(ステップS312)、取得したパターンPA+について、上述したステップS302〜ステップS310と同様の処理をおこなうことで(ステップS313)、パターンPA+をドット間の距離に基づいて最適化したパターンPB+(図12(d))を得る(ステップS314)。このようにして得られたパターンPB+も、同様に画像メモリ230に保持される。
【0109】
以上のようにして、撮像画像上での投影パターンについて、そのドットパターンのドット間距離による最適化が露出の異なるそれぞれの撮像画像でおこなわれる。すなわち、同一の露出で撮像された画像ペアにおいて、対応点の密度が低い点を除去することで、対応点の密度が高い部分のみが残るように最適化される。
【0110】
なお、被写体TGに明暗差がなく、EV0で撮像がおこなわれた場合は、ステップS302〜ステップS310と同様の処理をおこなうことで、画像ペアIPの各画像でテンプレートマッチングをおこなうことで得られるパターンPAについて、距離に基づく最適化がおこなわれる。
【0111】
すなわち、「対応点最適化処理(1)」では、対象とする撮像画像が撮像された際の露出が多段露出であるか否かにかかわらず、対応点の最適化がおこなわれる。なお、最初に取得するパターンPA、パターンPA+、パターンPA−のそれぞれに含まれている対応点の数を、便宜上いずれもn個とするが、同数を意味するものではない。
【0112】
このような「対応点最適化処理(1)」が終了すると、「3Dモデリング処理」(図9)のフローに戻る。「3Dモデリング処理」では、多段露出による撮像であった場合(ステップS211:Yes)、さらなる最適化をおこなうための「対応点最適化処理(2)」が実行される(ステップS400)。この「対応点最適化処理(2)」を、図13に示すフローチャートを参照して説明する。
【0113】
対応点最適化部214は、「対応点最適化処理(1)」(図11)で得られたパターンPB−とパターンPB+を画像メモリ230から取得する(ステップS401)。ここで、パターンPB−は、対応点PB1−〜PBn−(すなわち、n個の対応点)を含んでいるものとし、対応点最適化部214は、対応点PB1−〜PBn−に1〜nのナンバリングをおこなう(ステップS402)。本実施形態では、対応点の数を便宜的にn個とするが、いずれも同数であることを意味するものではない。
【0114】
パターンPB−の各対応点にナンバリングすると、対応点最適化部214は、当該パターンPB−を構成している対応点を指定するためのカウンタmに初期値1を設定し(ステップS403)、パターンPB−内で、例えば、図14(a)に示すような、m番目の対応点である対応点PBm−を探索する(ステップS404)。
【0115】
次に、対応点最適化部214は、例えば、図14(b)に示すような、パターンPB−における対応点PBm−と同じ座標位置(2次元平面位置)をパターンPB+において特定し(ステップS405)、その位置から一定の距離内にある複数の対応点である対応点群PBm+(図14(b))を特定する(ステップS406)。
【0116】
パターンPB+で対応点群PBm+を特定すると、対応点最適化部214は、対応点群PBm+の平均輝度を算出する(ステップS407)とともに、ステップS404で探索した、パターンPB−における対応点PBm−の輝度を特定する(ステップS408)。
【0117】
対応点最適化部214は、算出した対応点群PBm+の平均輝度、および、対応点PBm−の輝度のそれぞれと、参照輝度値BRrefと比較する(ステップS409)。この参照輝度値BRrefは、例えば、輝度階調のメジアン(例えば、8ビットの輝度である場合の参照輝度値BRrefは「127」)であるものとする。
【0118】
比較の結果、対応点群PBm+の平均輝度より、対応点PBm−の輝度の方が参照輝度値BRrefから遠い場合(ステップS410:Yes)、対応点最適化部214は、パターンPB−から対応点PBm−を削除する(ステップS411)。一方、対応点群PBm+の平均輝度の方が参照輝度値BRrefから遠ければ(ステップS410:No)、対応点PBm−はパターンPB−に残存する。すなわち、対応点PBm−の輝度が極端に明るかったり暗かったりすると認識しづらいので、このような対応点を除外する。
【0119】
対応点PBm−についてこのような処理をおこなうと、対応点最適化部214は、カウンタmを+1し(ステップS412)、その値が対応点の数であるn以内であれば(ステップS413:No)、次の対応点についてのステップS404以降の処理をおこなう。このような処理を、パターンPB−のすべての対応点でおこなうと(ステップS413:Yes)、図14(c)に示すように、ステップS411で削除されなかった対応点が残存する。対応点最適化部214は、このような対応点で構成されるパターンをパターンPC−とし、画像メモリ230に保持する(ステップS414)。
【0120】
以上のように、対応点最適化部214は、ステップS401で取得したパターンPB−とパターンPB+のうち、パターンPB−内の対応点PBm−と、当該対応点PBm−と同じ位置にあるパターンPB+における対応点群PBm+との間で輝度比較をおこなうことで対応点の最適化をおこなった。
【0121】
次に、対応点最適化部214は、パターンPB+についてステップS402〜ステップS413と同様の処理をおこなうことで(ステップS415)、図14(d)に示すようなパターンPC+を得る(ステップS416)。すなわち、パターンPB+における対応点(対応点PBm+)を順次探索し、パターンPB−で同じ座標位置となる対応点群PBm−を特定する。そして、対応点群PBm−の平均輝度および対応点PBm+の輝度のそれぞれと参照輝度値BRrefとを比較し、対応点PBm+の輝度の方が参照輝度値BRrefからより遠ければ、当該対応点PBm+がパターンPB+から削除される。
【0122】
このようにして、良好な輝度となっているパターン部分が残存することになる。すなわち、より認識しやすい画像状態(撮像状態)で現れているパターンが選別されるよう最適化される。このような輝度に基づく最適化がなされたパターンPC−(図14(c))とパターンPC+(図14(d))が得られると、「3Dモデリング処理」(図9)のフローに戻る。
【0123】
ここでは、多段露出での撮像がおこなわれたことにより「対応点最適化処理(2)」が実行された場合には、得られたパターンPC−(図14(c))とパターンPC+(図14(d))のそれぞれを構成している対応点を合成し、図10(c)に示すような合成対応点のパターンとする(ステップS212)。すなわち、各画像ペアにおいては、略同じカメラ位置により撮像がなされているので、露出の異なる画像ペア間において、2次元平面にて単純に対応点を合成することで合成対応点とする。
【0124】
この場合、3Dモデリング部215は、合成された対応点を用いて3Dモデリングをおこなう(ステップS213)。
【0125】
一方、多段露出での撮像でなかった場合(ステップS211:No)、ステップS210で特定されたパターンPAに対してなされた「対応点最適化処理(1)」(ステップS300)で得られた対応点が、3Dモデリング部215による3Dモデリングに用いられる(ステップS213)。
【0126】
3Dモデリング部215による3Dモデリングでは、三角測量の原理により、対応点に基づく3Dモデリングをおこなう。ここで、ある対応点をA1とし、カメラ座標におけるA1の3次元位置を示す座標が(X1、Y1、Z1)であるものとする。この場合、図1(b)に示したような平行ステレオ構成のデジタルカメラ1においては、A1の座標(X1、Y1、Z1)はそれぞれ、以下の数1〜数3で表される。ここで、(u1, v1)は、第1撮像部110についての対応点A1への射影点を示し、(u'1, v'1)は、第2撮像部120についての対応点A1への射影点を示す。また、bは第1撮像部110および第2撮像部120の光軸間距離(基線間距離)を示す。
【0127】
(数1)
X1=(b×(u1))/((u'1)−u1)
【0128】
(数2)
Y1=(b×(v1))/((u'1)−u1)
【0129】
(数3)
Z1=(b×f)/((u'1)−u1)
【0130】
ここで、デジタルカメラ1からA1までの距離は、A1の座標Z1によって示されるので、対応点最適化部214は、上記数3を演算することで、被写体TGにおける対応点A1までの撮影距離を算出することができる。
【0131】
この数3は、三角測量の原理によって導かれるものである。三角測量の原理を、図15を参照して説明する。
【0132】
図15は、図1(b)に示した平行ステレオ構成におけるカメラ座標を上から見た模式図である。第1撮像部110による視点がカメラ座標となっているので、被写体位置A1のX軸方向の座標はカメラ座標上のX1で与えられ、この数値は図15に示した数式(1)で求められる。
【0133】
一方、第2撮像部120からの視点におけるA1のX軸方向の座標は、光軸間距離bとカメラ座標のX1との和であり、図15に示した数式(2)で求められ、これらの数式(1)と数式(2)から、上記数3が導き出される。
【0134】
このような三角測量の原理を用いて、各対応点までの撮影距離を算出することで、被写体TGについての3Dモデリングデータが生成される。
【0135】
3Dモデリング部215は、このようにして生成した3Dモデリングデータを、記憶部250や外部記憶部260などに保存し(ステップS214)、「3Dモデリング用撮像処理」(図5)のフローに戻る。
【0136】
「3Dモデリング用撮像処理」においては、例えば、3Dモデリングモードの解除や、デジタルカメラ1の電源オフなどといった、所定の終了イベントが発生しなければ(ステップS21:No)、ステップS11以降の処理がおこなわれる。すなわち、さらなる撮像動作がなされ、これによって得られた撮像画像から3Dモデリングデータの生成がおこなわれる。そして、終了イベントの発生により処理を終了する(ステップS21:Yes)。
【0137】
以上説明したように、本発明を上記実施形態の如く適用することにより、デジタルカメラで撮像した被写体を表す高精度な3Dモデリングデータを容易に得ることができる。
【0138】
被写体について1または複数の露出条件を設定するので、被写体の明部と暗部のそれぞれを適正露出とする撮像画像を複数取得することができ、被写体に明暗差がある場合でも、被写体に投影されたパターンを正確に取得して高精度の3Dモデリングデータを生成することができる。
【0139】
この場合において、被写体にパターンを投影する構成を撮像装置が備えているので、撮像から3Dモデリングデータの生成までを1台の撮像装置でシームレスにおこなうことができ、高精度の3Dモデリングデータを容易に作成することができる。
【0140】
また、撮像画像から認識できるパターンを、パターンの密度に基づいて最適化するので、例えば、パターンの密度が高い部分を抽出することができ、3Dモデリングデータの生成に必要なパターンの認識精度を高めることができる。
【0141】
さらに、パターンの画像状態に基づいてパターンを最適化するので、例えば、パターンの輝度が高い部分を抽出することができ、3Dモデリングデータの生成に必要なパターンの認識精度を高めることができる。
【0142】
この場合、最適化されたパターンを合成して3Dモデリングデータを生成するので、被写体全体から精度の高いパターンを抽出することができ、被写体に明暗差がある場合であっても、高精度な3Dモデリングデータを生成することができる。
【0143】
また、撮像時に被写体の明暗差を判別し、例えば、被写体の明暗差が大きい場合に、複数の露出を設定するようにできるので、撮像から3Dモデリングデータの生成までの一連の作業をより効率的におこなうことができる。
【0144】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0145】
例えば、上記実施形態では、被写体に明暗差がある場合、被写体の明部と暗部のそれぞれを撮影者に指定させたが、例えば、通常のデジタルカメラで一般的となっているAEB(Auto Exposure Bracket:自動多段露出)機能を用いることで、例えば、多分割測光で決定した露出EV0のEV値を所定段数±方向にずらした露出条件を自動的に設定するようにしてもよい。
【0146】
また、上記実施形態の「対応点最適化処理(1)」では、ある対応点と、その対応点の最近傍点との距離に基づいて最適化をおこなったが、対応点の密度に基づいて最適化できるのであれば、その方法はこれに限られるものではない。例えば、ある対応点を中心とした一定範囲内の対応点の数に基づいて密度を判別して最適化するようにしてもよい。
【0147】
また、上記実施形態の「対応点最適化処理(2)」では、輝度の比較によって対応点の最適化をおこなったが、パターンを示す画像状態に基づいて最適化できるのであれば、その方法はこれに限られるものではない。例えば、パターンを示す部分の緑値を比較することで最適化するようにしてもよい。
【0148】
また、上記実施形態では、2次元画像上で対応点をとって3Dモデリングデータを生成する例を示したが、対応点を特定する際に3次元位置推定をおこない、3次元の対応点として最適化や合成の処理をおこなうようにしてもよい。
【0149】
なお、上記実施形態では、光軸の異なる2つの撮像部を撮像装置内に構成した複眼カメラ(ステレオカメラ)によって本発明を実現した場合を例示したが、撮像部が1つの単眼カメラによって本発明を実現してもよい。この場合、撮像部の位置をずらして複数回の撮像動作をおこなうことになるが、撮像部を機械的に移動させる構成を加えることなどにより、視差に相当する光軸のずれを生じさせるようにすればよい。
【0150】
また、上記実施形態では、2つの撮像部を平行ステレオ構成とした場合を例示したが、任意の位置関係であってもよい。この場合、2つの撮像部の位置関係(外部パラメータ)を予め測定しておき、この外部パラメータを用いることで、撮像画像を平行同位画像に変換することができる。この場合、平行ステレオ構成の複眼カメラで撮像した場合と同様に、平行同位画像内の任意点の対応関係を得るために、X方向またはY方向の1方向のみを探索すればよい。
【0151】
また、上記実施形態では、被写体にパターンを投影する構成を撮像装置が有している場合を例示したが、撮像時にパターンを被写体に投影できるのであれば、パターンを投影する構成が撮像装置に備えられていなくてもよい。
【0152】
なお、上記実施形態の撮像装置と同様の機能や構成を予め備えた撮像装置によって本発明を実現できることはもとより、視差に相当する撮像画像が得られるのであれば、既存の撮像装置装置(デジタルカメラなど)にプログラムを適用することで、本発明にかかる撮像装置として機能させることもできる。この場合、上記実施形態で例示したデジタルカメラ1と同様の構成を備えた撮像装置のコンピュータ(CPUなどの制御部)に、上述した制御部210の機能と同様の機能を実現させるためのプログラムを実行させることで、本発明にかかる撮像装置として機能させることができる。
【0153】
なお、上記実施形態では、撮像装置の例として、デジタルスチルカメラを示したが、上記実施形態で例示したデジタルカメラ1と同様の構成を備えているものであれば撮像装置の形態は任意であり、例えば、デジタルビデオカメラなどで本発明にかかる撮像装置を実現することもできる。
【0154】
いずれの場合でも、プログラムを適用することで、既存の装置を本発明にかかる画像表示装置として機能させることができる。このようなプログラムの適用方法は任意であり、例えば、CD−ROMやメモリカードなどの記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【符号の説明】
【0155】
1…デジタルカメラ、110…第1撮像部、111…光学装置、112…イメージセンサ部、120…第2撮像部、121…光学装置、122…イメージセンサ部、130…パターン投影部、200…データ処理部、210…制御部、211…動作モード処理部、212…撮像制御部、213…特徴点抽出部、214…対応点最適化部、215…3Dモデリング部、220…画像処理部、230…画像メモリ、240…画像出力部、250…記憶部、260…外部記憶部、300…インタフェース部、310…表示部、320…外部インタフェース部、330…操作部
【特許請求の範囲】
【請求項1】
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段と、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する露出設定手段と、
前記撮像手段を制御し、前記露出設定手段が設定した露出条件の数に応じた回数の撮像動作をおこなう撮像制御手段と、
前記撮像制御手段の制御によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定するパターン特定手段と、
前記露出設定手段が設定した露出に基づいて、前記パターン特定手段が特定したパターンを最適化するパターン最適化手段と、
前記パターン最適化手段が最適化した前記パターンを用いて3Dモデリングデータを生成する3Dモデリングデータ生成手段と、
を備えることを特徴とする撮像装置。
【請求項2】
被写体にパターンを投影するパターン投影手段をさらに備える、
ことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記露出設定手段は、少なくとも、前記被写体の明部が適正露出となる露出条件と、前記被写体の暗部が適正露出となる露出条件とを設定する、
ことを特徴とする請求項1または2に記載の撮像装置。
【請求項4】
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの密度に基づいて該パターンを最適化する、
ことを特徴とする請求項1乃至3のいずれか1項に記載の撮像装置。
【請求項5】
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの画像状態に基づいて該パターンを最適化する、
ことを特徴とする請求項1乃至4のいずれか1項に記載の撮像装置。
【請求項6】
前記パターン最適化手段が最適化したパターンを合成するパターン合成手段をさらに備え、
前記3Dモデリングデータ生成手段は、前記パターン合成手段が合成したパターンを用いて前記3Dモデリングデータを生成する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の撮像装置。
【請求項7】
前記被写体の明暗差を判別する判別手段をさらに備え、
前記露出設定手段は、前記判別手段の判別結果に応じて露出条件を設定する、
ことを特徴とする請求項1乃至6のいずれか1項に記載の撮像装置。
【請求項8】
同一の被写体について光軸位置が異なる画像ペアを得る撮像手段を備える撮像装置で当該被写体の3Dモデリングデータを生成する3Dモデリングデータ生成方法であって、
被写体の明部を適正露出とする前記撮像手段の撮像動作で第1の画像ペアを取得する第1の撮像ステップと、
前記被写体の暗部を適正露出とする前記撮像手段の撮像動作で第2の画像ペアを取得する第2の撮像ステップと、
取得された前記画像ペアのそれぞれにおいて、前記被写体に投影されたパターンを特定するパターン特定ステップと、
前記画像ペアのそれぞれにおいて、前記パターン特定ステップで特定されたパターンの密度に基づいて、当該パターンを最適化する第1の最適化ステップと、
露出の異なる画像ペア間において、前記パターン特定ステップで特定されたパターンの画像状態に基づいて、当該パターンを最適化する第2の最適化ステップと、
前記最適化されたパターンを合成し、該合成したパターン用いて3Dモデリングデータを生成する3Dモデリングデータ生成ステップと、
を含むことを特徴とする3Dモデリングデータ生成方法。
【請求項9】
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段を備える撮像装置のコンピュータに、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する機能と、
前記撮像手段を制御し、前記設定された露出条件の数に応じた回数の撮像動作をおこなう機能と、
前記撮像動作によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定する機能と、
前記設定した露出に基づいて、前記特定されたパターンを最適化する機能と、
前記最適化されたパターンを用いて3Dモデリングデータを生成する機能と、
を実現させることを特徴とするプログラム。
【請求項1】
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段と、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する露出設定手段と、
前記撮像手段を制御し、前記露出設定手段が設定した露出条件の数に応じた回数の撮像動作をおこなう撮像制御手段と、
前記撮像制御手段の制御によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定するパターン特定手段と、
前記露出設定手段が設定した露出に基づいて、前記パターン特定手段が特定したパターンを最適化するパターン最適化手段と、
前記パターン最適化手段が最適化した前記パターンを用いて3Dモデリングデータを生成する3Dモデリングデータ生成手段と、
を備えることを特徴とする撮像装置。
【請求項2】
被写体にパターンを投影するパターン投影手段をさらに備える、
ことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記露出設定手段は、少なくとも、前記被写体の明部が適正露出となる露出条件と、前記被写体の暗部が適正露出となる露出条件とを設定する、
ことを特徴とする請求項1または2に記載の撮像装置。
【請求項4】
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの密度に基づいて該パターンを最適化する、
ことを特徴とする請求項1乃至3のいずれか1項に記載の撮像装置。
【請求項5】
前記パターン最適化手段は、前記パターン特定手段が特定したパターンの画像状態に基づいて該パターンを最適化する、
ことを特徴とする請求項1乃至4のいずれか1項に記載の撮像装置。
【請求項6】
前記パターン最適化手段が最適化したパターンを合成するパターン合成手段をさらに備え、
前記3Dモデリングデータ生成手段は、前記パターン合成手段が合成したパターンを用いて前記3Dモデリングデータを生成する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の撮像装置。
【請求項7】
前記被写体の明暗差を判別する判別手段をさらに備え、
前記露出設定手段は、前記判別手段の判別結果に応じて露出条件を設定する、
ことを特徴とする請求項1乃至6のいずれか1項に記載の撮像装置。
【請求項8】
同一の被写体について光軸位置が異なる画像ペアを得る撮像手段を備える撮像装置で当該被写体の3Dモデリングデータを生成する3Dモデリングデータ生成方法であって、
被写体の明部を適正露出とする前記撮像手段の撮像動作で第1の画像ペアを取得する第1の撮像ステップと、
前記被写体の暗部を適正露出とする前記撮像手段の撮像動作で第2の画像ペアを取得する第2の撮像ステップと、
取得された前記画像ペアのそれぞれにおいて、前記被写体に投影されたパターンを特定するパターン特定ステップと、
前記画像ペアのそれぞれにおいて、前記パターン特定ステップで特定されたパターンの密度に基づいて、当該パターンを最適化する第1の最適化ステップと、
露出の異なる画像ペア間において、前記パターン特定ステップで特定されたパターンの画像状態に基づいて、当該パターンを最適化する第2の最適化ステップと、
前記最適化されたパターンを合成し、該合成したパターン用いて3Dモデリングデータを生成する3Dモデリングデータ生成ステップと、
を含むことを特徴とする3Dモデリングデータ生成方法。
【請求項9】
同一の被写体について光軸位置が異なる2つの撮像画像を取得する撮像手段を備える撮像装置のコンピュータに、
前記撮像手段による前記被写体の撮像にかかる1または複数の露出条件を設定する機能と、
前記撮像手段を制御し、前記設定された露出条件の数に応じた回数の撮像動作をおこなう機能と、
前記撮像動作によって得られた撮像画像に示されている、前記被写体に投影されたパターンを特定する機能と、
前記設定した露出に基づいて、前記特定されたパターンを最適化する機能と、
前記最適化されたパターンを用いて3Dモデリングデータを生成する機能と、
を実現させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−134221(P2011−134221A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2009−294804(P2009−294804)
【出願日】平成21年12月25日(2009.12.25)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願日】平成21年12月25日(2009.12.25)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]