(57)【要約】【課題】特別な機材を用いることなく精度の高い３Ｄモデルを取得する。【解決手段】撮像部により被写体を撮像する撮像手段と、前記撮像手段による第１の撮像を行なった後の前記撮像部の移動を検出する検出手段と、前記検出手段によって前記撮像部を移動すべき移動量分の移動が検出されたか否かを判定する第１の判定手段と、前記第１の判定手段によって前記移動量分の移動が検出されたと判定された場合に、第２の撮像を行うように前記撮像手段を制御する撮像制御手段と、前記第１の撮像によって得られた第１の画像と、前記第２の撮像によって得られた第２の画像とから三次元画像を生成する三次元画像生成手段とを備えたことを特徴とする撮像装置。【選択図】図１
2010239564.tif 000002
【特許請求の範囲】
【請求項１】
撮像部に対し被写体を撮像するよう制御する第１の撮像制御手段と、
前記第１の撮像制御手段による撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な前記撮像部の移動距離を算出する算出手段と、
前記算出手段によって算出された移動距離を前記撮像部が移動したか否かを判定する第１の判定手段と、
前記第１の判定手段によって移動したと判定された場合に、前記撮像部に対し撮像を行うよう制御する第２の撮像制御手段と、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段と、
を備えたことを特徴とする撮像装置。
【請求項２】
前記被写体までの距離を取得する距離取得手段を更に備え、
前記算出手段は、この距離取得手段によって取得された距離に基づいて、前記被写体の三次元画像を生成するために必要な前記撮像部の移動距離を算出することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記撮像部が移動した際の加速度を取得する加速度取得手段を更に備え、
前記第１の判定手段は、この加速度取得手段によって取得した加速度を２回積分した値に基づいて、前記撮像部が前記算出手段によって算出された移動距離を移動したか否かを判定することを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記第１の撮像制御手段によって得られた画像から特徴点を検出する特徴点検出手段と、
前記第１の撮像制御手段による撮像が終了すると所定の周期で繰り返し撮像を行うように前記撮像部を制御する第３の撮像制御手段と、
前記第３の撮像制御手段によって繰り返し撮像された画像間における、前記特徴点検出手段によって検出された特徴点に対応する点の移動量を取得する特徴点移動量取得手段と、をさらに備え、
前記第１の判定手段は、前記特徴点移動量取得手段によって取得された特徴点の移動量に基づいて、前記撮像部が前記算出手段によって算出された移動距離を移動したか否かを判定することを特徴とする請求項１記載の撮像装置。
【請求項５】
前記第３の撮像制御手段によって繰り返し撮像された画像を表示部に順次表示する表示手段を更に備え、
前記特徴点移動量取得手段は、前記特徴点検出手段によって検出された特徴点に対応する点の表示位置の変化に基づいて、前記特徴点の移動量を取得することを特徴とする請求項４記載の撮像装置。
【請求項６】
前記第１の撮像制御手段による撮像時の光軸と撮影後の光軸とがほぼ平行を保っているか否かを判定する第２の判定手段と、
この第２の判定手段によって撮像時の光軸と撮影後の光軸とがほぼ平行を保っていないと判定すると、前記第２の撮像制御手段による撮像を行わないよう制御する第４の撮像制御手段と、
を更に備えたことを特徴とする請求項１〜５の何れかに記載の撮像装置。
【請求項７】
前記第１の判定手段によって移動したと判定された場合に、その旨を報知する報知手段をさらに備えたことを特徴とする請求項１〜６の何れかに記載の撮像装置。
【請求項８】
撮像部に対し被写体を撮像するよう制御する第１の撮像制御ステップと、
前記第１の撮像制御ステップでの撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な前記撮像部の移動距離を算出する算出ステップと、
前記算出ステップで算出された移動距離を前記撮像部が移動したか否かを判定する判定ステップと、
前記判定ステップにて移動したと判定された場合に、前記撮像部に対し撮像を行うよう制御する第２の撮像制御ステップと、
前記第１の撮像制御ステップにて撮像された画像と、前記第２の撮像制御ステップにて撮像された画像とから三次元画像を生成する三次元画像生成ステップと、
を含むことを特徴とする撮像制御方法。
【請求項９】
撮像装置が備えるコンピュータを、
被写体を撮像するよう制御する第１の撮像制御手段、
前記第１の撮像制御手段による撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な当該撮像装置の移動距離を算出する算出手段、
前記算出手段によって算出された移動距離を当該撮像装置が移動したか否かを判定する判定手段、
前記判定手段によって移動したと判定された場合に、撮像を行うよう制御する第２の撮像制御手段、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段、
として機能させることを特徴とする撮像制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体に対して視差の異なる複数の画像を撮像し、撮像した画像からその被写体の３Ｄモデルを取得できる撮像装置に関する。
【背景技術】
【０００２】
３Ｄモデリングは、人間や、動物、あるいは美術品等の立体像を得るようなときに、カメラで実在の被写体を撮影し、三次元座標を取得する技術である。
【０００３】
物体の三次元的な位置を検出する方法として、２台のカメラを用いたステレオ画像方式が古くから知られている。ステレオ画像方式では、２台のカメラの間隔と、２台のカメラでそれぞれ撮影した物体の画像における特定部位の見え方の差（視差）とから、物体とカメラの距離（奥行き）を求める。そして、この距離を基に物体の３Ｄモデルを構築する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−１６７６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、所望の視差を持った複数の画像を取得するには、複数のカメラ又は複数の撮像部を持ったカメラを必要とするので、大がかりで且つ特別な機材が必要になるという問題があった。
【０００６】
本発明は、上記の問題を解決するためになされたものであり、大がかりで且つ特別な機材を用いることなく精度の高い３Ｄモデルを取得することができる撮像装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る撮像装置は、
撮像部により被写体を撮像する撮像手段と、
前記撮像手段による第１の撮像を行なった後の前記撮像部の移動を検出する検出手段と、
前記検出手段によって所定の移動量分の移動が検出されたか否かを判定する第１の判定手段と、
前記第１の判定手段によって前記所定の移動量分の移動が検出されたと判定された場合に、第２の撮像を行うように前記撮像手段を制御する撮像制御手段と、
前記第１の撮像によって得られた第１の画像と、前記第２の撮像によって得られた第２の画像とから三次元画像を生成する三次元画像生成手段と、
を備えたことを特徴とする。
【０００８】
また、前記撮像装置において、前記第１の撮像時の被写体までの距離を取得する距離取得手段と、
前記距離取得手段によって取得した距離に基づいて、前記撮像部を移動すべき移動量を算出する算出手段と、をさらに備え、
前記第１の判定手段は、前記算出手段によって算出された移動量分の移動が前記検出手段によって検出されたか否かを判定することを特徴とする、ようにしてもよい。
【０００９】
また、前記撮像装置において、前記検出手段は、当該撮像装置に備えられた加速度センサから検出される加速度に基づいて前記撮像部の移動を検出する、ようにしてもよい。
【００１０】
また、前記第１の撮像によって得られた第１の画像から特徴点を検出する特徴点検出手段と、
前記第１の撮像が終了すると所定の周期で繰り返しの撮像を行うように前記撮像手段を制御する第２の撮像制御手段と、
前記第２の撮像制御手段によって得られた複数の画像間における、前記特徴点検出手段によって検出された特徴点に対応する点の移動量を取得する特徴点移動量取得手段と、をさらに備え、
前記検出手段は、前記特徴点移動量取得手段によって取得された特徴点の移動量に基づいて、前記撮像部の移動を検出する、ようにしてもよい。
【００１１】
また、前記第２の撮像制御手段によって得られた画像を表示部に順次表示する表示手段を更に備え、
前記特徴点移動量取得手段は、前記特徴点検出手段によって検出された特徴点に対応する点の前記表示部における表示位置の変化に基づいて、前記特徴点の移動量を取得する、ようにしてもよい。
【００１２】
また、前記第１の撮像時の光軸との光軸ずれを検出する光軸ずれ検出手段と、
前記光軸ずれ検出手段によって検出された光軸ずれが所定値以上であるか否かを判定する第２の判定手段と、をさらに備え、
前記撮像制御手段は、前記第２の判定手段によって検出された光軸のずれが所定値以上であると判定された場合に、第２の撮像を行わないように前記撮像手段を制御する、ようにしてもよい。
【００１３】
また、前記第１の判定手段によって前記移動距離取得手段によって取得された移動量分の移動が検出されたと判定された場合に、その旨を報知する報知手段をさらに備える、ようにしてもよい。
【００１４】
上記目的を達成するために、本発明の第２の観点に係る撮像制御方法は、
撮像手段によって第１の撮像を行なうステップと、
この第１の撮像を行なった後の前記撮像部の移動を検出する検出ステップと、
前記検出ステップによって所定の移動量分の移動が検出されたか否かを判定する第１の判定ステップと、
前記第１の判定ステップによって前記所定の移動量分の移動が検出されたと判定された場合に、第２の撮像を行うように前記撮像手段を制御する撮像制御ステップと
前記第１の撮像によって得られた第１の画像と、前記第２の撮像によって得られた第２の画像とから三次元画像を生成する三次元画像生成ステップと、
を含むことを特徴とする。
【００１５】
上記目的を達成するために、本発明の第３の観点に係る撮像制御プログラムは、
撮像部により被写体を撮像する撮像手段を備えた撮像装置が備えるコンピュータを、
前記撮像手段による第１の撮像を行なった後の前記撮像部の移動を検出する検出手段、
前記検出手段によって所定の移動量分の移動が検出されたか否かを判定する第１の判定手段と、
前記第１の判定手段によって前記所定の移動量分の移動が検出されたと判定された場合に、第２の撮像を行うように前記撮像手段を制御する撮像制御手段、
前記第１の撮像によって得られた第１の画像と、前記第２の撮像によって得られた第２の画像とから三次元画像を生成する三次元画像生成手段、
として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、大がかりで且つ特別な機材を用いることなく精度の高い３Ｄモデルを取得することができる撮像装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態１に係るデジタルカメラの一例の外観を示す図である。図１（ａ）は正面図、図１（ｂ）は背面図、図１（ｃ）は上面図である。
【図２】デジタルカメラの回路構成の一例を示すブロック図である。
【図３】本発明の実施形態１に係る装置の動作について説明するためのフローチャートである。
【図４】３Ｄモデリング処理について説明するためのフローチャートである。
【図５】３Ｄモデリング処理のための座標系を示す図である。
【図６】本発明の実施形態２に係るライブビュー画像情報からカメラ位置を推定して３Ｄモデリングを行う手法について説明するためのフローチャートである。
【図７】３Ｄモデリング処理について説明するためのフローチャートである。
【図８】本発明の実施形態３に係る３Ｄモデリング手法を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
【００１９】
（実施形態１）
本発明の実施形態１に係るデジタルカメラ１は、携帯可能な所謂コンパクトカメラの形状を模しており、図１（ａ）に示すように、正面側に結像光学系（撮像レンズ）２を有している。
【００２０】
また、図１（ｂ）に示すように、デジタルカメラ１の背面には、メニューキー３と、表示部４と、カーソルキー５と、ＳＥＴキー６と、３Ｄモデリングモードキー７とが設けられている。３Ｄモデリングモードキー７は、トグル動作をし、押すたびに通常撮影モードと３Ｄモデリングモードとの二者を択一に切り替える。
【００２１】
さらに、図１（ｃ）に示すように、上面には、シャッターボタン９と、電源ボタン８とが設けられている。
【００２２】
図２は、図１に示したデジタルカメラ１の回路構成の一例を示すブロック図である。
【００２３】
図２において、デジタルカメラ１は、撮像部２１０と、ＣＰＵ２０１と、フラッシュメモリ２０３と、ワークメモリ２０４と、表示制御部２０５と、キー入力部２０２と、画像エンジン２２０と、センサ２３１とをバス２１０ａにより接続して構成される。
【００２４】
撮像部２１０は、結像光学系２と、光学系駆動制御部２１１と、ＣＭＯＳセンサ２１２と、ＩＳＰ（Ｉｍａｇｅ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）２１３と、により構成される。
【００２５】
結像光学系２によりＣＭＯＳセンサ２１２の撮像面上に被写体の光像が結像される。
【００２６】
光学系駆動制御部２１１は、結像光学系２を制御する。結像光学系２及び光学系駆動制御部２１１の内部構成の図示は省略するが、光学系駆動制御部２１１は、光軸を調整するズームモータ、焦点を合わせる合焦モータ、絞りを調整する絞り制御部、シャッター速度制御部等を備えている。
【００２７】
ＣＭＯＳセンサ２１２は、結像光学系２によって結像された光像を光電変換し、さらにＡ／Ｄ変換し、デジタルデータとする。
【００２８】
ＩＳＰ２１３は、上記のデジタルデータについて色の調整、データフォーマット変換を行い、輝度信号Ｙ、色差信号Ｃｂ、Ｃｒに変換する。
【００２９】
ＣＰＵ２０１は、デジタルカメラ１全体の制御動作を司っている。
【００３０】
ＣＰＵ２０１は、キー入力部２０２の操作に対応してプログラムメモリ（図示略）に格納されている各モードに対応する動作プログラムやメニューデータを取り出して、デジタルカメラ１の各部の制御を行う。この動作プログラムには、３Ｄモデリングモード時の撮像制御プログラムが含まれる。
【００３１】
キー入力部２０２は、図１（ｂ）に示すメニューキー３、カーソルキー５、ＳＥＴキー６、３Ｄモデリングモードキー７、電源ボタン８、及び、シャッターボタン９の各キーの操作を入力し、ＣＰＵ２０１に通知する。
【００３２】
ワークメモリ２０４は、ＤＲＡＭ等で構成されており、ＣＰＵ２０１によって撮像部２１０からの出力（Ｙ、Ｃｂ、Ｃｒのデータ）が転送される。
【００３３】
フラッシュメモリ２０３は、画像エンジン２２０のＪＰＥＧ圧縮部（図示略）により符号化された撮影した画像データ、及び３Ｄモデリングモードで撮影がされた際に生成された３Ｄモデリングデータを格納する。
【００３４】
表示制御部２０５は、ＶＲＡＭ２０６と、表示部４とを接続している。表示制御部２０５は、ＶＲＡＭ２０６からＲＧＢ形式の表示データを取り出し、表示部４に表示する。
【００３５】
画像エンジン２２０は、ＤＳＰ（デジタル・シグナルプロセッサ）等で構成されている。この画像エンジン２２０は、ワークメモリ２０４内に格納されているＹ、Ｃｂ、Ｃｒの各データを、ＲＧＢ形式に変換し、表示制御部２０５を介してＶＲＡＭ２０６に転送する。
【００３６】
センサ２３１は、角速度センサ及び加速度センサとで構成される。角速度センサはデジタルカメラ１の回転の有無を検出するために用いられ、一方、加速度センサは撮影時における平行移動距離を算出するために用いられる。
【００３７】
つまり、ＣＰＵ２０１は、角速度センサによりデジタルカメラ１が撮影する画角について、その回転の有無により光軸がほぼ平行でなくなった（すなわち、平行移動しなくなった）ことを検出し、加速度センサにより検出・取得された加速度を２回積分することにより、デジタルカメラ１が撮影する画角について、その平行移動距離を取得する。
【００３８】
次に、図３を参照して上述した実施形態１に係るデジタルカメラ１の動作について説明する。
ユーザによる３Ｄモデリングモードキー７の操作を検出することにより、３Ｄモデリングモードが選択されると、ＣＰＵ２０１は、図３に示す３Ｄモデリングの処理を開始する（ステップＳ３０１）。先ずＣＰＵ２０１は、この３Ｄモデリングモード開始時に、記録指示が検出されたか否かを判断する（ステップＳ３０２）。具体的には、ユーザによるシャッターボタン９への押圧操作が検出されたか否かを判断し、押圧操作が検出されない場合（ステップＳ３０２；ＮＯ）、検出されるまで待機する。
【００３９】
ユーザが撮影対象に対してデジタルカメラ１を向けてシャッターボタン９を押すことにより、ＣＰＵ２０１が記録指示を検出すると（ステップＳ３０２；ＹＥＳ）、ＣＰＵ２０１は、光学系駆動制御部２１１により撮影対象に対して結像光学系２の焦点を合わせることにより焦点距離ｆを取得し、更にこの取得された焦点距離ｆに結像光学系２の倍率を乗算して、デジタルカメラ１から撮影対象までの距離Ｚを算出する（ステップＳ３０３）。  そして、撮像部２１０から撮影画像を取り込む（ステップＳ３０４）。このときの撮影画像を対象画像Ａとする。
【００４０】
続いて、ＣＰＵ２０１は、３Ｄモデリングに必要とされるデジタルカメラ１の平行移動距離Ｌを、以下の式（１）を用いて算出する（ステップＳ３０５）。
Ｌ＝（Ｚ・Ｚ・ｐ）／（ΔＺ・ｆ）    ・・・・（１）
尚、上記の式において、ｐは撮像素子のピクセルサイズであり、ΔＺは、３Ｄモデリングを行う場合に許容される平行移動に対する許容理論精度誤差である。
【００４１】
例えば、距離Ｚを１ｍ、ピクセルサイズｐを４ｕｍ、焦点距離ｆを６ｍｍ、許容理論精度誤差ΔＺを５ｃｍとすると、平行移動距離Ｌは１３ｍｍとなる。つまり、対象物までの距離が１ｍである場合、対象画像Ａを取り込んだ後、１３ｍｍ平行移動した後の画角を取りこむと良好な３Ｄモデリング処理が可能になる。
【００４２】
このように平行移動距離Ｌが算出されると、デジタルカメラ１は、自身の平行移動の開始の検出、及び、上記式（１）で算出された平行移動距離Ｌに相当する距離を移動したか否かを、加速度センサから出力される加速度に基づいて判定する（ステップＳ３０６）。移動距離がＬに達しない場合（ステップＳ３０６；ＮＯ）、ＣＰＵ２０１は、達するまで待機する。また、これに並行して角速度センサによる所定角度以上の回転が検知され、光軸がほぼ平行でなくなったか否かも判断し、所定角度以上回転したと判断したならば失敗したことを報知する。
【００４３】
平行移動距離Ｌに相当する距離移動したと判断すると（ステップＳ３０６；ＹＥＳ）、基準画像Ｂを取得するための撮像を行い（ステップＳ３０７）、ユーザに撮影が終了した旨を伝えるべくアラームを鳴らす（ステップＳ３０８）。そして、対象画像Ａと基準画像Ｂとセンサ２３１からの情報とを用いて３Ｄモデリングを行う（ステップＳ３０９）。
【００４４】
ここで、図４を参照して上記の３Ｄモデリング処理について説明する。
まず、ＣＰＵ２０１は、対象画像Ａ上において特徴点候補の取得を行う（ステップＳ４０１）。
この特徴点候補の取得は、例えば、広く知られているハリスのコーナー検出関数を用いて以下のようにして行う。
そして、取得された対象画像Ａの特徴点候補に対応する基準画像Ｂの特徴点候補を、広く知られているテンプレートマッチングで取得し、さらにこれら取得された特徴点候補のうち、相違度が所定の閾値以下となるものを以下の方法により選択する（ステップＳ４０２）。
【００４５】
ここで再度、図５を参照して上述した３Ｄモデリング処理のために導入される三次元座標系の説明を行う。
図５において、５０１は対象画像Ａであり、５０２は基準画像Ｂである。ｔ’は移動ベクトルである。３Ｄモデリング対象画像における上記特徴点の一つの三次元座標をＭとし、このＭに対応する対象画像Ａ５０１の画素位置をｍ、基準画像Ｂ５０２の画素位置をｍ’と仮定すると、Ｍは、以下の式（２），（３）を解くことにより求められる。
ｍ〜Ｐ・Ｍ              ・・・・（２）
ｍ’〜Ｐ’・Ｍ          ・・・・（３）
【数１】
2010239564.tif 000003
尚、ｔｒａｎｓは転置行列であることを意味し、〜は、その両辺が定数倍の違いを許して等しいことを意味する。
【００４６】
また、Ｐは、対象画像Ａ５０１を撮影した時のＭの透視射影行列であり、
Ｐ＝Ｃ・(Ｒ｜ｔ）・・・・（４）
で表される。(Ｒ｜ｔ)は、対象画像Ａ５０１を撮影した位置を示すパラメータであり、Ｒは３ｘ３の回転行列、ｔは３ｘ１の移動行列を示す。
本実施の形態においては、対象画像Ａを撮影した位置を原点とするため、ＲをＩ、ｔを０とする（Ｉは３ｘ３の単位行列、０は３ｘ１の零行列。）。
【００４７】
同様に、Ｐ’は基準画像Ｂ５０２を撮影した時のＭの透視射影行列であり、
Ｐ’＝Ｃ・(Ｒ’｜ｔ’）・・・・（５）
で表される。(Ｒ’｜ｔ’)は、対象画像Ｂ５０２を撮影した位置を示すパラメータであり、Ｒ’は上述のＲと同様３ｘ３の回転行列、ｔ’は上記のｔと同様、３ｘ１の移動行列を示す。
そして、回転行列Ｒ’は角速度センサからの情報を用い、移動行列ｔ’は上述の加速度センサからの加速度を２回積分した、三次元の移動距離を含む情報を用いる。
【００４８】
[Ｃ]は、デジタルカメラ１に予め用意されている内部パラメータであり、例えば、次式（６）の３ｘ３の行列となる。
【数２】
2010239564.tif 000004
尚、上記Ｃにおいて、ｆは焦点距離であり、δｕは撮像素子の水平方向サイズ、δｖは撮像素子の垂直方向サイズを意味する。
したがって、対象画像Ａ５０１の特徴点の画素位置ｍとこれに対応する基準画像Ｂ５０２の点の画素位置ｍ’で上記式（２），（３）を解くことにより、その特徴点の三次元座標Ｍを算出する（ステップＳ４０３）。
【００４９】
上記式（２），（３）を展開すると、
ｕ  ＝  （ｐ１１・Ｘ  ＋  ｐ１２・Ｙ  ＋  ｐ１３・Ｚ  ＋  ｐ１４）／
（ｐ３１・Ｘ  ＋  ｐ３２・Ｙ  ＋  ｐ３３・Ｚ  ＋  ｐ３４）
・・（７）
ｖ  ＝  （ｐ２１・Ｘ  ＋  ｐ２２・Ｙ  ＋  ｐ２３・Ｚ  ＋  ｐ１４）／
（ｐ３１・Ｘ  ＋  ｐ３２・Ｙ  ＋  ｐ３３・Ｚ  ＋  ｐ３４）
・・（８）
ｕ’＝（ｐ’１１・Ｘ  ＋  ｐ’１２・Ｙ  ＋  ｐ’１３・Ｚ  ＋  ｐ’１４）／
（ｐ’３１・Ｘ  ＋  ｐ’３２・Ｙ  ＋  ｐ’３３・Ｚ  ＋  ｐ’３４）
・・（９）
ｖ’＝（ｐ’２１・Ｘ  ＋  ｐ’２２・Ｙ  ＋  ｐ’２３・Ｚ  ＋  ｐ’１４）／
（ｐ’３１・Ｘ  ＋  ｐ’３２・Ｙ  ＋  ｐ’３３・Ｚ  ＋  ｐ’３４）
・・（１０）
となる。ここに、例えば、ｐ１２は既知である透視射影行列Ｐの１行２列目の要素を表し、ｐ’２１は同じく既知である透視射影行列Ｐ’の２行１列目の要素を表す。
【００５０】
以上のようにして得られた特徴点の三次元座標成分[Ｍ]に基づいて、多面体を構成し、３Ｄ表示のためのポリゴン化を行う（ステップＳ４０４）。
この後、図３のステップＳ３０９に戻る。そして、開始ステップＳ３０１に戻ってユーザが次にシャッターを押すことをステップＳ３０２で待機する。
【００５１】
以上詳述したように、実施形態１によると、図５に示すように、３Ｄモデリングモードにおいて対象画像Ａを撮像した際の焦点距離ｆから被写体までの距離Ｚを概算する。また、その距離Ｚに基づいて所望する精度を確保するための平行移動距離Ｌを算出する。そして、対象画像Ａを撮影した後、その平行移動距離Ｌ分のデジタルカメラ１の移動を検出すると基準画像Ｂの撮影を行なう。以上のように構成したことで、ユーザはデジタルカメラ１を平行移動させることによって、複数の撮影装置や特別な機材を用意しなくても、簡単に精度の高い３Ｄモデルを得ることができる。
【００５２】
なお、上記実施形態１では、平行移動距離Ｌを検出するセンサとして加速度センサを用いたが、ＧＰＳを用いても差し支えない。
【００５３】
また、上記実施形態１では、デジタルカメラ１の平行移動距離ＬをＣＰＵ２０１で算出しているが、ユーザによって平行移動距離Ｌを手動で設定できるようにしてもよい。
【００５４】
（実施形態２）
実施形態２は、加速度センサ及び角速度センサを用いずに、ライブビュー画像Ａ’上における特徴点の移動量によってデジタルカメラ１の移動量を検出して、３Ｄモデリングを行うものである。以下、この実施形態２について図６を参照して説明する。
【００５５】
ここでは、ユーザが移動すべき距離、つまり表示画面上の何画素分を移動させるかが予め決められているものとする。そして、まず対象画像Ａを撮影すると撮影した対象画像Ａから特徴点を検出し、その特徴点がライブビュー画像Ａ’上で予め決められた画素数分移動すると、基準画像Ｂの撮影を行なう。
上記画素数については、撮影画像上のピクセルで、横幅の数％程度の移動量に抑えることが好ましい。１０％を超えてしまうと、見え方の違いによる照合の誤りが増えてしまう。例えば、撮影画像の横幅が１６００画素とし、６％の移動量とするとき、移動量は９６画素となる。ライブビュー画像Ａ’の横幅が１５０画素とすると、その６％の移動量は９画素となる。そこで、上記画素数は、例えば９画素とする。この画素数値は、デフォルト値としてフラッシュメモリ２０３に記憶されているものとする。
【００５６】
この場合、実施形態１でも述べたように、上記座標の移動量が大きいと、視差が大きくなり精度が高くなる。しかし一方で、視線が異なることにより（見え方の違いにより）対象画像Ａと基準画像Ｂでの対応する点の照合の際に、誤りが発生する可能性が高くなる。そこで、実施形態２では、３Ｄモデリングモードでの撮影に先立ってデフォルト値として記憶されている特徴点の移動量（画素数の値）をユーザが適宜変更することができるものとする。この変更はカーソルキー５とＳＥＴキー６の操作により表示部４を見ながら行われる。
【００５７】
ユーザによる３Ｄモデリングモードキー７の操作を検出することにより、３Ｄモデリングモードが選択されると、ＣＰＵ２０１は、図６に示す３Ｄモデリングの処理を開始する（ステップＳ６０１）。先ずＣＰＵ２０１は、この３Ｄモデリングモード開始時に、記録指示が検出されたか否かを判断する（ステップＳ６０２）。具体的には、ユーザによるシャッターボタン９への押圧操作が検出されたか否かを判断し、押圧操作が検出されない場合（ステップＳ６０２；ＮＯ）、検出されるまで待機する。そして、ユーザによりシャッターボタン９が押された、つまり対象画像Ａの記録指示を検出した場合は（ステップＳ６０２；ＹＥＳ）、ＣＰＵ２０１は対象画像Ａを撮影する（ステップＳ６０４）。そして、撮影した対象画像Ａからハリスのコーナー検出等の既存の方法で複数の特徴点を取得し、当該画像と特徴点の座標とをワークメモリ２０４に一時記憶する（ステップＳ６０５）。
【００５８】
次にユーザがデジタルカメラ１を平行移動させると、所定の周期で撮像されるライブビュー画像Ａ’からハリスのコーナー検出等で複数の特徴点を取得し、ライブビュー画像Ａ’における特徴点の座標を取得する（ステップＳ６０６）。そして、上記一時記憶した対象画像Ａでの特徴点の座標と比較し、その座標の差から上記記憶された画素数の移動量に達したか否かを判定する（ステップＳ６０７）。達しない場合（ステップＳ６０７；ＮＯ）、達するまで上記処理（ステップＳ６０６，Ｓ６０７）を繰り返し実行する。ここで、複数の特徴点で移動量が異なる時には、中心付近の特徴点の移動量を用いてもよいし、移動量が最も大きい特徴点の移動量を用いてもよいし、対象画像Ａから検出された特徴点から任意の特徴点を選択し、その選択した特徴点に対応する特徴点の移動量を用いてもよい。
【００５９】
上記対象画像Ａでの特徴点の座標と、ライブビュー画像Ａ’での特徴点の座標との差が上記記憶された画素数に達すると（ステップＳ６０７；ＹＥＳ）、このライブビュー画像Ａ’の本画像を基準画像Ｂとして記録し（ステップＳ６０８）、ユーザにアラームで撮影終了を知らせる（ステップＳ６０９）。
【００６０】
続いて、上記のようにして取得した対象画像Ａと基準画像Ｂとの２枚の画像により３Ｄモデリングを行う。
これについて図７を参照して説明する。２枚の画像において、８点以上の対応点を求め、基礎行列Ｆを求める。３ｘ３の基礎行列Ｆは、２枚の画像の拘束条件を示し、次式（１１）で示される。
ｔｒａｎｓ（ｍ’）・Ｆ・ｍ＝  ０          ・・・・（１１）
ここに、ｍは対象画像Ａの画素位置であり、ｍ’は基準画像Ｂの画素位置である。また、ｔｒａｎｓ（）は転置を意味する。
【００６１】
また、Ｆは、次式（１２）で表される。
Ｆ  ＝  ｔｒａｎｓ（ｉｎｖ（Ｃ））・＜ｔ＞・  Ｒ・ｉｎｖ（Ｃ）
・・・・（１２）
ここで、ｉｎｖ（  ）は逆行列を意味し、＜  ＞は歪対称行列を意味する。内部パラメータＣは予め用意された値であり、これにより、回転行列Ｒと移動ベクトルｔの方向を求めることができる（ステップＳ７０１）。
【００６２】
あとは、図４で示した手順と同様にして３Ｄモデリングを行うことができる（ステップＳ７０２乃至Ｓ７０４）。
【００６３】
以上詳述したように、実施形態２によると、まず対象画像Ａを撮影すると、撮影した対象画像Ａから特徴点を検出する。そして検出した特徴点のライブビュー画像Ａ’上における移動量からデジタルカメラ１の移動量を推定する。そして、その平行移動量が所望の平行移動量に達した時に、自動的に基準画像Ｂを撮像するようにした。これにより、移動量を検出するためのセンサを設けなくても、精度の高い３Ｄモデルを得ることができる。
【００６４】
（実施形態３）
図８は、本発明の実施形態３に係る３Ｄモデリング手法を説明するフローチャートである。
【００６５】
図８のフローチャートが、図６のフローチャートと異なる点は、ライブビュー画像Ａ’より、デジタルカメラ１の光軸（図５のＺ軸）以外の軸を基準とする回転動作に制限を与える点である。つまり、図５のＸ、Ｙ軸を基準とする回転が起きたとき、デジタルカメラ１を平行移動させたとみなさず、２枚目の画像撮影（基準画像Ｂの撮影）を行なわない。これにより、３Ｄモデリングの精度をより向上させようとするものである。
【００６６】
以下、図６と比較し、図８において追加されている、ステップＳ６２１の処理について説明をする。
ライブビュー画像Ａ’から、特徴点を抽出し、前述した手順によって基礎行列Ｆを推定する。事前に、デジタルカメラ１の内部パラメータＣは、キャリブレーションにより求めてあるとする。
【数３】
2010239564.tif 000005
【００６７】
ここで、ｆは、デジタルカメラ１の焦点距離を、ｃｘ，ｃｙはデジタルカメラ１の光軸における中心位置の画像座標上の位置を表す。すると、基本行列Ｅは次式（１４）で求められる。
Ｅ  ＝  ｔｒａｎｓ（Ｃ）・Ｆ・Ｃ      ・・・（１４）
ここに、ｔｒａｎｓ（  ）は転置を示す。次式（１５）で表示するカメラ移動の並進ベクトルｔは、ｔｒａｎｓ（Ｅ）・Ｅの最小固有値の固有ベクトルとして求められる。ただし、ｔはスケールと符号が不定となるが、デジタルカメラ１の前方に被写体が存在するという制約によりｔの符号は求めることができる。
そこで、−ｔとＥの外積を求め、この外積を次式（１５）に従って特異値分解する。
Ｖ・Ｓ・Ｕ  ＝  ｓｖｄ（ｃｒｏｓｓ（−ｔ，Ｅ））      ・・・（１５）
ここに、ｃｒｏｓｓは外積を示し、ｓｖｄは特異値分解を表す。
【００６８】
ところで、回転行列Ｒは、次式（１６）により求められる。
Ｒ＝Ｖ・ｄｉａｇ（１，  １，  ｄｅｔ（Ｖ・Ｕ））・Ｕ      ・・・（１６）
ここに、ｄｅｔは行列式を、ｄｉａｇは対角行列を表す。
【００６９】
回転行列Ｒは、Ｘ，Ｙ，Ｚ軸の回転を含んでいるので、これらを分解する。回転角が小さい場合、
【数４】
2010239564.tif 000006
としたとき、
θｙ  ＝  ａｒｃｓｉｎ（ｒ０２）                          ・・・・（１８）
θｘ  ＝  ａｒｃｔａｎ（−ｒ１２  ／  ｒ２２）            ・・・・（１９）
となる。
ステップＳ６２１においては、これらのθｙ、θｘが所定の閾値θ以下か否かの判定を行う。
【００７０】
上述したように、実施形態３によると、実施形態２に対し、上記のステップＳ６２１の処理を加えることにより、回転が所定の閾値以上の場合、光軸がほぼ平行を保てなくなったことから基準画像Ｂを取得しないようにしたので、デジタルカメラ１の平行移動が所定の距離に達したか否かをより正確に判定することができる。よって、３Ｄモデリングの精度をより向上させることができる。
【００７１】
（変形例）
（１）上述した実施形態１乃至３では、ユーザがデジタルカメラ１を平行に移動するようにしたがデジタルカメラ１を台に固定し、この台に平行に移動する機構を設けるようにしてもよい。これにより、ユーザは、デジタルカメラ１を平行移動させる必要がない。また、デジタルカメラ１に回転が加えられることを防止することができる。
この種の機構は、周知のトラバース機構を用いることにより実施することができる。
【００７２】
（２）また、上述した各実施形態では、デジタルカメラ１全体を平行移動させたが、結像光学系２を平行に移動させる機構をデジタルカメラ１に設けるようにしてもよい。これにより、ユーザは、カメラを平行移動させる必要がなく、また、カメラを三脚や台に固定した状態でも撮影を行うことができる。
【００７３】
この種の機構は、周知の電磁アクチュエータを、光学系駆動制御部２１１に備えることにより容易に実施できる。実施形態１の説明で述べたように、対象物までの距離が１ｍである場合、平行移動距離は１３ｍｍであり、数ｍｍ移動できる程度の機構であっても、１ｍ以内の接写に利用することができる。このような場合に、回転を伴わずに平行移動させることが可能となる。
【００７４】
（３）また、上記各実施形態では、デジタルカメラ１で３Ｄモデリングを行うようにしたが、デジタルカメラ１は対象画像Ａと基準画像Ｂの撮影及び記録のみを行い、これらの記録したデータをパーソナルコンピュータに送り、３Ｄモデリング処理を行うようにしてもよい。
【００７５】
（４）また、上述した各実施形態は、撮像装置として説明したが、実施形態１乃至３においては既存のデジタルカメラを、本発明に係る撮像装置としてリメイクするための撮像制御プログラムとして提供することができる。その場合の提供方法としては、記憶媒体に格納して提供する方法、通信回線を介して提供する方法等を含む。
【符号の説明】
【００７６】
１・・・デジタルカメラ、２・・・結像光学系、３・・・メニューキー、４・・・液晶モニタ画面（表示部）、５・・・カーソルキー、６・・・ＳＥＴキー、７・・・３Ｄモデリングモードキー、８・・・電源ボタン、９・・・シャッターボタン、２０１・・・ＣＰＵ、２０２・・・キー入力部、２０３・・・フラッシュメモリ、２０４・・・ワークメモリ、２０５・・・表示制御部、２１０・・・撮像部、２１０ａ・・・バス、２２０・・・画像エンジン、２３１・・・センサ、
【図１】
2010239564.tif 000007
【図２】
2010239564.tif 000008
【図３】
2010239564.tif 000009
【図４】
2010239564.tif 000010
【図５】
2010239564.tif 000011
【図６】
2010239564.tif 000012
【図７】
2010239564.tif 000013
【図８】
2010239564.tif 000014
【手続補正書】
【提出日】平成22年8月4日(2010.8.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
撮像部により撮像するよう制御する第１の撮像制御手段と、
前記第１の撮像制御手段による撮像の後、この撮像された被写体の三次元画像を生成するために必要な前記撮像部の移動距離を取得する取得手段と、
前記取得手段によって取得された移動距離を前記撮像部が移動したか否かを判定する第１の判定手段と、
前記第１の判定手段によって移動したと判定された場合に、前記撮像部に対し撮像を行うよう制御する第２の撮像制御手段と、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段と、
を備えたことを特徴とする撮像装置。
【請求項２】
前記被写体までの距離を取得する距離取得手段を更に備え、
前記取得手段は、この距離取得手段によって取得された距離に基づいて、前記被写体の三次元画像を生成するために必要な前記撮像部の移動距離を算出して取得することを特徴とする請求項１に記載の撮像装置。
【請求項３】
記録手段を更に備え、
前記取得手段は、前記記録手段に予め記録されている移動距離を取得することを特徴とする請求項１に記載の撮像装置。
【請求項４】
前記撮像部が移動した際の加速度を取得する加速度取得手段を更に備え、
前記第１の判定手段は、この加速度取得手段によって取得した加速度に基づいて、前記撮像部が前記取得手段によって取得された移動距離を移動したか否かを判定することを特徴とする請求項１〜３の何れか１項に記載の撮像装置。
【請求項５】
前記第１の撮像制御手段によって得られた画像から特徴点を検出する特徴点検出手段と、
前記第１の撮像制御手段による撮像が終了すると所定の周期で繰り返し撮像を行うように前記撮像部を制御する第３の撮像制御手段と、
前記第３の撮像制御手段によって繰り返し撮像された画像間における、前記特徴点検出手段によって検出された特徴点に対応する点の移動量を取得する特徴点移動量取得手段と、をさらに備え、
前記第１の判定手段は、前記特徴点移動量取得手段によって取得された特徴点の移動量に基づいて、前記撮像部が前記取得手段によって取得された移動距離を移動したか否かを判定することを特徴とする請求項１〜４の何れか１項に記載の撮像装置。
【請求項６】
前記第３の撮像制御手段によって繰り返し撮像された画像を表示部に順次表示する表示手段を更に備え、
前記特徴点移動量取得手段は、前記特徴点検出手段によって検出された特徴点に対応する点の表示位置の変化に基づいて、前記特徴点の移動量を取得することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記第１の撮像制御手段による撮像時の光軸と撮影後の光軸とがほぼ平行を保っているか否かを判定する第２の判定手段と、
この第２の判定手段によって撮像時の光軸と撮影後の光軸とがほぼ平行を保っていないと判定すると、前記第２の撮像制御手段による撮像を行わないよう制御する第４の撮像制御手段と、
を更に備えたことを特徴とする請求項１〜６の何れか１項に記載の撮像装置。
【請求項８】
前記第１の判定手段によって移動したと判定された場合に、その旨を報知する報知手段をさらに備えたことを特徴とする請求項１〜７の何れか１項に記載の撮像装置。
【請求項９】
撮像部により撮像するよう制御する第１の撮像制御ステップと、
前記第１の撮像制御ステップでの撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な前記撮像部の移動距離を取得する取得ステップと、
前記取得ステップで取得された移動距離を前記撮像部が移動したか否かを判定する判定ステップと、
前記判定ステップにて移動したと判定された場合に、前記撮像部による撮像を行うよう制御する第２の撮像制御ステップと、
前記第１の撮像制御ステップにて撮像された画像と、前記第２の撮像制御ステップにて撮像された画像とから三次元画像を生成する三次元画像生成ステップと、
を含むことを特徴とする撮像制御方法。
【請求項１０】
撮像装置が備えるコンピュータを、
撮像するよう制御する第１の撮像制御手段、
前記第１の撮像制御手段による撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な当該撮像装置の移動距離を取得する取得手段、
前記取得手段によって取得された移動距離を当該撮像装置が移動したか否かを判定する判定手段、
前記判定手段によって移動したと判定された場合に、撮像を行うよう制御する第２の撮像制御手段、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段、
として機能させることを特徴とするプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記目的を達成するために、本発明の第１の観点に係る撮像装置は、
撮像部により撮像するよう制御する第１の撮像制御手段と、
前記第１の撮像制御手段による撮像の後、この撮像された被写体の三次元画像を生成するために必要な前記撮像部の移動距離を取得する取得手段と、
前記取得手段によって取得された移動距離を前記撮像部が移動したか否かを判定する第１の判定手段と、
前記第１の判定手段によって移動したと判定された場合に、前記撮像部に対し撮像を行うよう制御する第２の撮像制御手段と、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段と、
を備えたことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
また、前記撮像装置において、前記被写体までの距離を取得する距離取得手段を更に備え、
前記取得手段は、この距離取得手段によって取得された距離に基づいて、前記被写体の三次元画像を生成するために必要な前記撮像部の移動距離を算出して取得する、ようにしてもよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、前記撮像装置において、記録手段を更に備え、
前記取得手段は、前記記録手段に予め記録されている移動距離を取得する、ようにしてもよい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、前記撮像部が移動した際の加速度を取得する加速度取得手段を更に備え、
前記第１の判定手段は、この加速度取得手段によって取得した加速度に基づいて、前記撮像部が前記取得手段によって取得された移動距離を移動したか否かを判定する、ようにしてもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、前記第１の撮像制御手段によって得られた画像から特徴点を検出する特徴点検出手段と、
前記第１の撮像制御手段による撮像が終了すると所定の周期で繰り返し撮像を行うように前記撮像部を制御する第３の撮像制御手段と、
前記第３の撮像制御手段によって繰り返し撮像された画像間における、前記特徴点検出手段によって検出された特徴点に対応する点の移動量を取得する特徴点移動量取得手段と、をさらに備え、
前記第１の判定手段は、前記特徴点移動量取得手段によって取得された特徴点の移動量に基づいて、前記撮像部が前記取得手段によって取得された移動距離を移動したか否かを判定する、ようにしてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、前記第３の撮像制御手段によって繰り返し撮像された画像を表示部に順次表示する表示手段を更に備え、
前記特徴点移動量取得手段は、前記特徴点検出手段によって検出された特徴点に対応する点の表示位置の変化に基づいて、前記特徴点の移動量を取得する、ようにしてもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、前記第１の撮像制御手段による撮像時の光軸と撮影後の光軸とがほぼ平行を保っているか否かを判定する第２の判定手段と、
この第２の判定手段によって撮像時の光軸と撮影後の光軸とがほぼ平行を保っていないと判定すると、前記第２の撮像制御手段による撮像を行わないよう制御する第４の撮像制御手段と、をさらに備える、ようにしてもよい。
また、前記第１の判定手段によって移動したと判定された場合に、その旨を報知する報知手段をさらに備える、ようにしてもよい。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記目的を達成するため、本発明の第２の観点に係る撮像制御方法は、
撮像部により撮像するよう制御する第１の撮像制御ステップと、
前記第１の撮像制御ステップでの撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な前記撮像部の移動距離を取得する取得ステップと、
前記取得ステップで取得された移動距離を前記撮像部が移動したか否かを判定する判定ステップと、
前記判定ステップにて移動したと判定された場合に、前記撮像部による撮像を行うよう制御する第２の撮像制御ステップと、
前記第１の撮像制御ステップにて撮像された画像と、前記第２の撮像制御ステップにて撮像された画像とから三次元画像を生成する三次元画像生成ステップと、
を含むことを特徴とする。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
撮像装置が備えるコンピュータを、
撮像するよう制御する第１の撮像制御手段、
前記第１の撮像制御手段による撮像の後、この撮像された被写体から当該被写体の三次元画像を生成するために必要な当該撮像装置の移動距離を取得する取得手段、
前記取得手段によって取得された移動距離を当該撮像装置が移動したか否かを判定する判定手段、
前記判定手段によって移動したと判定された場合に、撮像を行うよう制御する第２の撮像制御手段、
前記第１の撮像制御手段によって撮像された画像と、前記第２の撮像制御手段によって撮像された画像とから三次元画像を生成する三次元画像生成手段、
として機能させることを特徴とする。