(57)【要約】【課題】  撮像装置の移動の有無が距離情報取得の精度に与える影響を低減する。【解決手段】  カメラ１００が、移動度判定部１０５と、ＤＦＤ距離推定部１０６と、位置姿勢推定部１０７と、ステレオ距離推定部１０８を有している。移動度判定部１０５は、撮像部１０１により取得された複数の画像に基づいて、複数の撮像時点でのカメラ１００の位置関係を取得する。取得した位置関係に基づいて、移動度判定部１０５はＤＦＤ距離推定部１０６か位置姿勢推定部１０７およびステレオ距離推定部１０８を選択し、選択した距離推定法を用いて被写体の距離情報を取得する。【選択図】  図１
2015005200.tif 000002
【特許請求の範囲】
【請求項１】
撮像により得られた複数の画像の合焦状態の違いに基づいて被写体の距離情報を取得する第一の取得手段と、
前記複数の画像の視差に基づいて被写体の距離情報を取得する第二の取得手段と、
前記撮像が行われた視点の位置に関する情報に基づいて、出力する距離情報に対応する取得手段を前記第一および第二の取得手段のうちから選択し、該選択された取得手段によって取得された距離情報を出力する出力手段とを有することを特徴とする情報処理装置。
【請求項２】
前記位置に関する情報は、前記撮像が行われた複数の位置の位置関係に関する情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記位置に関する情報は、前記複数の画像の視差に基づいて取得されることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記位置に関する情報は、前記撮像を行った装置の移動量に基づいて取得されることを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記複数の画像は、同一の光学系により結像された画像であることを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記複数の画像からの距離情報の取得を中止するかどうかを判断する判断手段を更に有し、
前記判断手段により、前記距離情報の取得を中止すると判断された場合には、エラー信号を出力することを特徴とする請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記距離情報は、被写体中の複数の位置までの距離を示す距離マップであることを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
請求項１乃至７のいずれかに記載の情報処理装置としての機能を有し、前記複数の画像を撮像により取得する撮像手段を更に備えることを特徴とする撮像装置。
【請求項９】
前記撮像手段の移動量を検知する検知手段をさらに備えることを特徴とする請求項８に記載の撮像装置。
【請求項１０】
撮像装置と情報処理装置とを含む情報処理システムであって、
撮像によって複数の画像を取得する撮像手段と、
前記複数の画像の合焦状態の違いに基づいて距離情報を取得する第一の取得手段と、
前記複数の画像の視差に基づいて距離情報を取得する第二の取得手段と、
前記撮像が行われた視点の位置に関する情報に基づいて、前記第一および第二の取得手段のうちの一方を選択し、該選択された取得手段によって取得された距離情報を出力する出力手段とを有することを特徴とする情報処理システム。
【請求項１１】
撮像により得られた複数の画像を取得するステップと、
前記撮像が行われた位置に関する情報を取得するステップと、
前記撮像が行われた位置に関する情報に基づいて、前記複数の画像の合焦状態の違いに基づいて距離情報を取得する処理方法または前記複数の画像の視差に基づいて距離情報を取得する処理方法を選択するステップと、
前記選択された処理方法を用いて、前記複数の画像から距離情報を取得するステップとを含む情報処理方法。
【請求項１２】
情報処理装置にプログラムコードとして読み込ませることにより、処理を実行させるプログラムであって、
前記処理は、
撮像により得られた複数の画像を取得するステップと、
前記撮像が行われた位置に関する情報を取得するステップと、
前記撮像が行われた位置に関する情報に基づいて、前記複数の画像の合焦状態の違いに基づいて距離情報を取得する処理方法または前記複数の画像の視差に基づいて距離情報を取得する処理方法を選択するステップと、
前記選択された処理方法を用いて、前記複数の画像から距離情報を取得するステップとを含むプログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる条件で撮像された複数の画像から距離情報を取得する技術に関するものである。
【背景技術】
【０００２】
任意視点画像の合成、被写界深度の疑似的なコントロール、ＣＧの作成、測量などの様々な用途へ応用するために、デジタルカメラなどの撮像装置によって得た画像データから、被写体の距離情報を推定する技術が必要とされている。
従来、撮像装置で取得した画像データから距離情報を推定する技術として、Ｄｅｐｔｈ  ｆｒｏｍ  Ｄｅｆｏｃｕｓ（ＤＦＤ）法がある。ＤＦＤ法では、撮像装置を構成する光学系の、焦点距離や開口などの条件を変えながら取得された複数の画像の、合焦状態の違いに基づいて距離情報が推定される。（特許文献１）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２５３４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ＤＦＤ法では、距離情報の取得に用いる合焦状態の異なる画像の撮影の間に、手ぶれなどにより撮像装置が大きく移動した場合、合焦状態を比較する対応点の位置がずれてしまい、距離情報取得の精度が低下してしまうことがあった。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明にかかる情報処理装置は、撮像により得られた複数の画像の合焦状態の違いに基づいて被写体の距離情報を取得する第一の取得手段と、前記複数の画像の視差に基づいて被写体の距離情報を取得する第二の取得手段と、前記撮像が行われた視点の位置に関する情報に基づいて、出力する距離情報に対応する取得手段を前記第一および第二の取得手段のうちから選択し、該選択された取得手段によって取得された距離情報を出力する出力手段とを有する。
【発明の効果】
【０００６】
撮像を行う装置の移動が距離情報取得の精度に与える影響を低減できる。
【図面の簡単な説明】
【０００７】
【図１】第一の実施例の撮像装置の構成を示す図。
【図２】第一の実施例の撮像部の構成の一例を示す図。
【図３】第一の実施例の情報処理部のハードウェア構成を示す図。
【図４】第一の実施例の撮像装置により行われる処理のフローチャート。
【図５】第一の実施例の移動度判定部の構成を示す図。
【図６】第一の実施例の移動度判定部により行われる処理のフローチャート。
【図７】第一の実施例のＤＦＤ距離推定部の構成を示す図。
【図８】第一の実施例のＤＦＤ距離推定部により行われる処理のフローチャート。
【図９】第一の実施例の位置姿勢推定部の構成を示す図。
【図１０】第一の実施例の位置姿勢推定部により行われる処理のフローチャート。
【図１１】第一の実施例のステレオ距離推定部の構成を示す図。
【図１２】第一の実施例のステレオ距離推定処理を説明する図。
【図１３】第一の実施例のステレオ距離推定部により行われる処理のフローチャート。
【図１４】第二の実施例の撮像装置の構成を示す図。
【図１５】第二の実施例の移動度判定部の構成を示す図。
【図１６】第二の実施例の移動度判定部により行われる処理のフローチャート。
【図１７】第三の実施例の情報処理システムの構成を示す図。
【発明を実施するための形態】
【０００８】
＜第一の実施例＞
＜撮像装置の全体構成＞
第一の実施例は、複数の画像の撮像時の撮像装置の移動量に基づいて、ＤＦＤ法による距離推定とステレオ法による距離推定を使い分ける撮像装置に適用される。本実施例では、撮像装置の移動量が大きい場合にはステレオ法による距離推定を行い、撮像装置の移動量が小さい場合にはＤＦＤ法による距離推定を行う。
【０００９】
図１は、第一の実施例に係る撮像装置の構成を示すブロック図である。
【００１０】
カメラ（撮像装置）１００は、撮像部１０１と、操作部１０２、メディアＩ／Ｆ１１０、情報処理部１２０を有する。
【００１１】
図２は撮像部１０１の内部構成を示す図である。
【００１２】
レンズ２０１、レンズ２０２および絞り２０３は撮像部１０１の結像光学系を構成する。被写体から発せられた光線はＩＲカットフィルタ２０４、ローパスフィルタ２０５、カラーフィルタ２０６を通過した後に、撮像素子２０７上に結像される。
【００１３】
撮像素子２０７およびＡ／Ｄ変換部２０８はＣＭＯＳイメージセンサなどのイメージセンサである。撮像素子２０７の画素は２次元の格子状に配置されており、結像された像を電気信号に変換する。Ａ／Ｄ変換部２０８は電気信号に変換された像の情報をデジタル信号に変換する。デジタル信号に変換された像の情報はバッファ２０９内に格納され、画像データとして情報処理部１２０へと出力される。
【００１４】
なお、ここで示した光学系の構成は一例にすぎず、撮像素子上に被写体の像を結像させる機能を有すれば光学系の構成はどのようなものでも良い。また、カラー画像を取得する構成について説明したが、取得する画像は白黒画像や画素毎に露出の異なる画像でもかまわない。
【００１５】
光学系制御部２１０はモータなどの駆動機構であり、撮像制御部１０３によって設定された条件に従い、レンズ２０１、レンズ２０２および絞り２０３を駆動して、結像光学系の特性を変化させる。
【００１６】
撮像素子制御部２１１は撮像制御部１０３によって設定されたタイミングに従い、撮像素子２０７を制御して撮像を実施する。本実施例において、カメラ１００はシャッターとして電子シャッターを有しているが、ＩＲカットフィルタ２０４の前にシャッター窓を設け、そのシャッター窓を開閉することで撮像を行う機械式シャッターを有しても良い。
【００１７】
図１に戻り、操作部１０２は、カメラ本体に備えられたボタンやダイヤル、タッチパネルなどの入力装置であり、ユーザが操作して、撮影の開始、停止および撮影条件の設定などの命令を行うことができる。
【００１８】
メディアＩ／Ｆ１１０は、ＰＣ・その他メディア（ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなど）とカメラ１００とを接続するインターフェースである。このメディアＩ／Ｆ１１０を介して、ＤＦＤ距離推定部１０６およびステレオ距離推定部１０８によって取得された距離情報の出力が行われる。本実施例においてこのメディアＩ／Ｆ１１０はＳＤカードスロットであり、画像データおよび距離データを記憶するためのＳＤカードが挿入されている。
【００１９】
情報処理部１２０のハードウェア構成を図３に示す。
【００２０】
情報処理部１２０は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３を有し、各構成部はシステムバス３０４により相互に接続されている。
【００２１】
ＣＰＵ３０１はカメラ１００内の各部を統括的に制御するプロセッサである。ＲＡＭ３０２は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。ＲＯＭ３０３は、図４のフローチャートに示されるプログラムを格納している。情報処理部１２０は、ＲＯＭ３０３に格納されたプログラムを、ＣＰＵ３０１がプログラムコードとして読み込み実行することで、図１に示す各構成部としての役割を実現する。なお、情報処理部１２０の構成は、上記に示すもの以外に、図１に示す各構成部の一部または全部の役割を果たす専用の処理回路などを備えたものであっても良い。
【００２２】
以下、カメラ１００内で行われる処理について説明する。図４は、カメラ１００内で行われる処理を示すフローチャートである。
【００２３】
まず、撮像制御部１０３は、操作部１０２の操作に従い、撮像部１０１による撮影パラメータの設定を行う（ステップＳ４０１）。本実施例において、撮像制御部１０３は、撮影時の光学系の焦点距離、射出瞳径、光学系の主点−撮像素子間の距離などを設定し、設定したパラメータに基づいて撮像部１０１が撮影を行うように、撮像部１０１に命令信号を出力する。このパラメータは、ユーザによりそれぞれ個別に設定されても良いし、ユーザによる撮影モードの設定に基づいて自動的に設定されても良い。本実施例においては、光学系の主点−撮像素子間の距離を変化させながら２枚の画像を取得するように設定する。なお、ここでは射出瞳径などの別のパラメータを変化させて撮像を行っても良い。
【００２４】
次に、撮像部１０１は、ステップＳ４０１において設定された撮影パラメータに基づいて撮像を行い、それによって取得された画像データをデジタル信号処理部１０４に出力する（ステップＳ４０２）。
【００２５】
次に、デジタル信号処理部１０４は、撮像部１０１から出力された画像データの輝度値の調整や欠陥画素の補間、ベイヤー補間処理、歪曲収差や周辺光量落ちの補正などを行い、補正された画像データを移動度判定部１０５に出力する（ステップＳ４０３）。
【００２６】
次に、移動度判定部１０５は、２回の撮像間のカメラの移動度を算出する（ステップＳ４０４）。移動度は、カメラの移動量の大きさを反映したパラメータである。ここで行われる詳しい処理内容および移動度の詳細な定義については後述する。
【００２７】
次に、移動度判定部１０５は、入力された画像データの取得を行った２回の撮像間のカメラの移動度が大きいかどうかを判定する（ステップＳ４０５）。ステップＳ４０４で算出された移動度が１よりも小さい場合、移動度が小さいと判定し、移動度判定部１０５は入力された画像データをＤＦＤ距離推定部１０６に出力してステップＳ４０６に進む。移動度が１よりも大きい場合、カメラの移動度が大きいと判定し、移動度判定部１０５は、入力された画像データを位置姿勢推定部１０７に出力してステップＳ４０７に進む。
【００２８】
移動度が小さいと判定された場合、ＤＦＤ距離推定部１０６は、入力された画像データからＤＦＤ法を用いて距離推定を行い、入力された画像データおよび取得した距離情報を符号化部１０９に出力する（ステップＳ４０６）。ここで行われる処理の詳細については後述する。なお、ここで出力される距離情報は、被写体中の各位置における距離を示した距離マップである。距離マップはそれぞれの画素位置でのカメラから被写体までの距離を二次元的に並べたものであり、本実施例においてはビットマップデータとして出力される。
【００２９】
移動度が大きいと判定された場合、位置姿勢推定部１０７は、入力された画像データに基づいて、入力された画像データに含まれる２枚の画像をそれぞれ取得した時のカメラ１００の位置姿勢を推定する（ステップＳ４０７）。ここで行われる処理の詳細については後述する。位置姿勢推定部１０７は、推定により取得された位置姿勢情報と、入力された画像データをそれぞれステレオ距離推定部１０８に出力する。
【００３０】
次に、ステレオ距離推定部１０８は、入力された画像データと位置姿勢情報に基づいて、ステレオ法による距離推定を行い、入力された画像データおよび取得した距離マップを符号化部１０９に出力する（ステップＳ４０８）。ここで行われる処理の詳細については後述する。
【００３１】
符号化部１０９は、入力された画像データおよび距離マップを符号化し、メディアＩ／Ｆ１１０に出力する（ステップＳ４０９）。符号化処理は画像データ毎にＪＰＥＧやＰＮＧなどの単視点画像の符号化方式で行っても良いし、ＭＶＣ（Ｍｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）などの多視点画像の符号化方式で行っても良い。
【００３２】
最後に、メディアＩ／Ｆ１１０は、カメラ１００に接続されたメディアに、符号化された画像データおよび距離マップを出力する（ステップＳ４１０）。
【００３３】
以上がカメラ１００で行われる処理の概略である。以下、各ステップの詳細について述べる。
【００３４】
＜移動度判定部１０５の構成と処理＞
移動度判定部１０５は、入力された画像データに含まれる２枚の画像の視差に基づいて、その画像データを取得した２回の撮像間のカメラの移動量の大きさを判定する。ここで、視差とは、被写体を見る視点の違いに起因する画像のずれのことを意味する。
【００３５】
図５は、移動度判定部１０５の構成を示すブロック図である。こちらの各ブロックの機能も、ＲＯＭ３０３に格納されたプログラムを実行したＣＰＵ３０１によって達成されるが、その一部を専用の処理回路などに置き換えても良い。
【００３６】
以下、移動度判定部１０５において行われる処理（ステップＳ４０４およびＳ４０５）について説明する。図６は、ステップＳ４０４およびＳ４０５で行われる詳細な処理を示すフローチャートである。
【００３７】
まず、対応点探索部５０１は、デジタル処理信号部１０４から出力された２枚の画像の画像データを取得する（ステップＳ６０１）。
【００３８】
次に、対応点探索部５０１は、入力された２枚の画像中の特徴点を抽出し、各特徴点に対応する特徴量の算出を行う（ステップＳ６０２）。特徴点とは、暗い背景の中にある明るい四角形の角など、点として位置が特定可能な画像の構造のことである。また、特徴量とは、特徴点の近傍の画像の構造を用いて記述されるデータであり、各特徴点を識別するために用いられる。各特徴点はＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）法により抽出され、対応する特徴量の算出がなされる。ＳＩＦＴ特徴量は、多次元のベクトルとして表現される。
【００３９】
次に、対応点探索部５０１は、入力された２枚の画像間で複数の特徴点のマッチング処理を行い、各画像間の対応点を探索する（ステップＳ６０３）。マッチング処理は、ステップ６０１で算出された特徴量を用いて行われる。ここでは１回目の撮像で得られた画像を基準とし、基準となる入力画像の特徴点それぞれに対して、特徴量の差分二乗和が最小となる特徴点が、対応点として２回目の撮像で得られた画像から抽出される。
【００４０】
次に、基礎行列推定部５０２は、対応点探索部５０１で求めた対応点の組に基づいて、基礎行列を算出する（ステップＳ６０４）。基礎行列は異なる視点から同一のシーンを撮像して得られる画像間の対応点に対して、幾何学的な拘束を記述するモデルである。対応点探索部５０１で求めたある対応点の組のうち、基準となる画像上での点の位置を（ｘ，ｙ）とし、もう一方の画像上での点の位置を（ｘ’，ｙ’）としたとき、基礎行列Ｆは式１の関係を満たすような３×３の行列で表わされる。
【００４１】
【数１】
2015005200.tif 000003
【００４２】
１組の対応点に対して式１により１つの線形拘束が与えられるので、８つ以上の対応点があれば、連立方程式を解くことでＦを求めることができる。実際の画像データから得た対応点には誤対応が含まれるので、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）のようなロバスト性を高める手段を併用する。このステップでは、入力された２枚の画像中の、８組の対応点の位置が式１に代入され、その関係を満たすＦの値が連立方程式を解くことによって求められる。その際、ＲＡＮＳＡＣを適用することにより複数のＦが求められ、最も投票数の多いＦが、このステップで算出された基礎行列Ｆとして決定される。
【００４３】
次に、射影変換行列推定部５０３は、対応点探索部５０１で求めた対応点の組に基づいて、射影変換行列Ｈを算出する（ステップＳ６０５）。射影変換行列は同一の視点からカメラの向きだけを変えて同一のシーンを撮像して得られる画像間の対応点に対して、幾何学的な拘束を記述するモデルである。対応点探索部５０１で求めたある対応点の組のうち、基準となる画像上での点の位置を（ｘ，ｙ）とし、もう一方の画像上での点の位置を（ｘ’，ｙ’）としたとき、射影変換行列Ｈは式２の関係を満たすような３×３の行列である。ここでλは式２によって定まる定数である。
【００４４】
【数２】
2015005200.tif 000004
【００４５】
１組の対応点に対して式２により２つの線形拘束が与えられるので、４つ以上の対応点があれば、連立方程式を解くことでＨを求めることができる。実際の画像データから得た対応点には誤対応が含まれるので、ステップＳ６０３と同様に、ＲＡＮＳＡＣのようなロバスト性を高める手段を併用する。このステップでは、入力された２枚の画像中の、４組の対応点の位置が式２に代入され、その関係を満たすＨの値が連立方程式を解くことによって求められる。その際、ＲＡＮＳＡＣを適用することにより複数のＨが求められ、最も投票数の多いＨが、このステップで算出された射影変換行列Ｈとして決定される。
【００４６】
次に、移動度算出部５０４は、対応点探索部５０１で求めた対応点の組、基礎行列推定部５０２で算出した基礎行列Ｆ、射影変換行列推定部５０３で算出した射影変換行列Ｈに基づいて、カメラの移動度を算出する（ステップＳ６０６）。移動度は、基礎行列Ｆおよび射影変換行列Ｈについてそれぞれ求められたＧＲＩＣ（Ｇｅｏｍｅｔｒｉｃ  Ｒｏｂｕｓｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｒｉｔｅｒｉｏｎ）の比として表現される。ＧＲＩＣは、点の対応関係を記述するモデルについて、そのモデルがどの程度確からしいかを示す値であり、確からしいほど値が小さくなる。カメラの移動量が大きい場合、対応点の組の関係は基礎行列Ｆを用いたモデルで記述される。また、カメラの移動量が小さい場合、対応点の組の関係は射影変換行列Ｈを用いたモデルで記述される。したがって、基礎行列Ｆについて求められたＧＲＩＣが、射影変換行列Ｈについて求められたＧＲＩＣよりも小さいことは、基礎行列Ｆを用いたモデルの方が確からしく、カメラの移動量が大きいことを意味する。そこで、ここでは基礎行列ＦのＧＲＩＣに対する射影変換行列ＨのＧＲＩＣの比を移動度として用い、移動度の大きさによって移動量の大きさを判定する。
【００４７】
なお、ＧＲＩＣは以下の式３および式４で表わされる値である。
【００４８】
【数３】
2015005200.tif 000005
【００４９】
【数４】
2015005200.tif 000006
【００５０】
Ｉは対応点の数であり、ｅｉはｉ番目の対応点の、モデルの理想値に対する誤差であり、画素単位の座標に基づいて計算される。σは全ての対応点の分散を表わし、ｅｉと同様に画素単位の座標に基づいて計算される。また、λ１、λ２、λ３はそれぞれλ１＝ｌｏｇ４、λ２＝ｌｏｇ４Ｉ、λ３＝２である。ｍ、ｋ、ｒはＧＲＩＣを適用するモデルに依存した値であり、基礎行列Ｆに対するＧＲＩＣではｍ＝３、ｋ＝７、ｒ＝４である。また、射影変換行列Ｈに対するＧＲＩＣではｍ＝２、ｋ＝８、ｒ＝４である。
このステップでは、入力された２枚の画像中の１枚目の画像について、ステップＳ６０４およびステップＳ６０５で算出された基礎行列Ｆおよび射影変換行列Ｈを適用され、２枚目の画像に予想されるモデル対応点の位置が決定される。そのモデル対応点の位置と、２枚目の画像中の実際の対応点の位置との誤差がｅｉとして式３および４に代入される。そして、その他のパラメータについては上記に示した値が式３および４に代入され、基礎行列Ｆおよび射影変換行列Ｈに対するＧＲＩＣがそれぞれ決定される。そして、決定されたＧＲＩＣの比が、移動度として距離推定方法選択部５０５に出力される。
【００５１】
次に、距離推定方法選択部５０５は、移動度算出部５０４で算出した移動度に基づいて、距離情報の推定で用いる方法を選択し、選択した方法に対応する距離推定部に入力された画像データを出力する（ステップＳ６０７）。本実施例における移動度は、基礎行列ＦのＧＲＩＣに対する射影変換行列ＨのＧＲＩＣの比であり、判定は１を閾値として行われる。移動度が１よりも小さい場合、入力された画像データをＤＦＤ距離推定部１０６に出力する。また、移動度が１以上の場合、入力された画像データおよび、画像間の対応点の情報を位置姿勢推定部１０７に出力する。また、上記に加え、移動度が大きすぎて対応点が十分に取れない場合や、移動度が小さくてもその場でのカメラ回転が大きすぎる場合など、距離情報の取得が困難な場合には、エラー信号を出力して処理を終了する。なお、移動度が小さい場合のカメラ回転の大きさは、ＨとＡ’Ａ−１の値のずれに基づいて判断される。カメラが静止しており回転も起きていない場合、Ｈ＝Ａ’Ａ−１となるため、この両辺の値の差を見ることで、回転の大きさを見積もることができる。なお、ここで判定される移動度はＧＲＩＣの比ではなくＧＲＩＣの差であってもよく、閾値は１でなくても良い。
【００５２】
なお、本実施例では、対応点探索部５０１は対応点探索にＳＩＦＴを用いるものとしたが、ブロックマッチングなど他の方法を用いて対応点を求めても良い。また、基礎行列推定部５０２および射影変換行列推定部５０３は、線形解法で基礎行列Ｆおよび射影変換行列Ｈを求めるものとしたが、非線形な方法など、他の方法を用いても構わない。また、移動度算出部５０４は、移動度としてＧＲＩＣの比を用いるものとしたが、対応点の座標の違いをそのまま利用するなど、視点の移動量を反映するような値ならば他のどのような値を用いても良い。
【００５３】
＜ＤＦＤ距離推定部の構成と処理＞
移動度判定部１０５でカメラの移動度が小さいと判定された場合、ＤＦＤ距離推定部１０６で被写体の距離情報の推定が行われる。
【００５４】
図７は、ＤＦＤ距離推定部１０６の構成を示すブロック図である。ＤＦＤ距離推定部１０６では、入力された２枚の画像の合焦状態の違いに基づいて被写体の距離情報を推定する。こちらの各ブロックの機能も、ＲＯＭ３０３に格納されたプログラムを実行したＣＰＵ３０１によって達成されるが、その一部を専用の処理回路などに置き換えても良い。
【００５５】
以下、ＤＦＤ距離推定部１０６で行われる処理について述べる。まず、ＤＦＤ法を用いて距離情報を取得する方法について説明する。
【００５６】
距離Ｄ１にある物体が撮像面位置ｄ１に投影された場合を考える。このとき像ｉ１はボケて拡がる。この時の点像分布関数（Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ）をＰＳＦ１としシーンをｓとすると、像ｉ１は点像分布関数ＰＳＦ１とシーンｓの畳み込みで表される。
【００５７】
【数５】
2015005200.tif 000007
【００５８】
ここでＰＳＦを、錯乱円をパラメータとしてモデル化し、像ｉ１からＰＳＦを推定できれば錯乱円が算出可能となる。更にはこの錯乱円から結像位置を求めることができ、数式５から距離を算出することができる。
【００５９】
しかしながら数式５ではシーンｓが分からないのでこのままでは錯乱円を正しく求めることはできない。そこで、異なる撮像面位置ｄ２で撮影を行う。この時の像をｉ２とする。
【００６０】
ここでシーンｓのフーリエ変換をＳとし、一枚目の撮影画像のＰＳＦ１をフーリエ変換した光学伝達関数（Ｏｐｔｉｃａｌ  Ｔｒａｎｓｆｅｒ  Ｆｕｎｃｔｉｏｎ）をＯＴＦ１、二枚目の撮影画像のＯＴＦをＯＴＦ２とする。すると、像ｉ１およびｉ２のフーリエ変換はそれぞれＯＴＦ１×Ｓ、ＯＴＦ２×Ｓと表される。この二画像の比をとると
【００６１】
【数６】
2015005200.tif 000008
【００６２】
となり、シーンに依存しないＯＴＦの比ＯＴＦｒが算出される。このＯＦＴｒと距離情報の関係を示すテーブルや関数を用いることで、算出されたＯＴＦｒに基づいて被写体の距離情報を求めることができる。
【００６３】
次に、本実施例においてＤＦＤ距離推定部１０６内で実際に行われる処理（ステップＳ４０６）について説明する。図８は、ステップＳ４０６で行われる詳細な処理を示すフローチャートである。
【００６４】
まず、領域抽出部７０１は、移動度判定部１０５から入力された２枚の画像Ｉ１およびＩ２を取得する（ステップＳ８０１）。ＤＦＤ距離推定部１０６は、これらの２枚の画像を使って一画素単位で全画素について距離取得処理を行う。もちろん、全画素について距離取得処理を行う必要はなく、数画素おきに距離取得を行っても良いし、別途測距画素を決めてその画素に対してのみ距離取得を行っても良い。また、距離取得処理の処理対象領域を一画素とする必要は無く、複数画素からなる領域を対象として距離取得を行っても良い。また、距離取得のために用いる画像は２枚に限られず、３枚以上の画像を用いて距離取得を行っても良い。
【００６５】
次に、領域抽出部７０１は画像中のＸＹ座標を走査して測距画素を決定し、距離取得に必要な周辺画素を切り出し、フーリエ変換部７０２に出力する（ステップＳ８０２）。この際、取得された２枚の画像Ｉ１、Ｉ２において一般には同じ領域を切り出してくる必要がある。切り出された画像（測距画素とその周辺画素とを含む画像領域）をそれぞれ領域選択画像Ｃ１、Ｃ２とする。切り出す領域サイズは、処理時間を短縮するためには小さい方が良く、ノイズの影響を抑えて安定した解を導くにはある程度大きい方が良い。また切り出す領域サイズは撮影して取得される画像におけるボケの大きさにも依存し、コンパクトデジタルカメラの場合は撮像素子サイズが小さくボケも小さいため小さい領域で良い。具体的にはコンパクトデジタルカメラの場合の切り出し領域サイズは、高速に処理するには１０画素程度が良く、ノイズの影響を抑えるには６０画素程度が良いが両者のバランスをとると１５から３０画素程度が好適である。
【００６６】
次に、フーリエ変換部７０２は領域選択画像Ｃ１およびＣ２に対しフーリエ変換を行い、Ｃ１およびＣ２を周波数空間画像Ｆ１およびＦ２に変換してフィルタ生成部７０３に出力する（ステップＳ８０３）。フーリエ変換部７０２は、演算量等を考慮し、離散コサイン変換やウェーブレット変換といった他の方法を用いて周波数空間への変換を行っても良い。
【００６７】
次に、フィルタ生成部７０３は、２つの周波数空間画像Ｆ１およびＦ２を比較し、スペクトルの強い特徴的な周波数帯（特徴周波数帯）を検出する（ステップＳ８０４）。この際、フーリエ変換した周波数空間の画像Ｆ１、Ｆ２は低周波が多いため直流成分を除去し対数を取るのが良い。さらに、各周波数成分の強度は一般的に周波数ｆに反比例することが知られているので、算出された周波数空間画像Ｆ１、Ｆ２において周波数ｆによって結果をｆ倍するなど周波数に応じた補正をかけると良い。これにより、周波数空間画像における値を単純に比較することで、より多く存在する特徴的な周波数帯を検出できる。
【００６８】
次に、フィルタ生成部７０４は、ステップＳ８０４において検出された特徴周波数帯を通過させるフィルタＢＦを生成し、周波数空間画像Ｆ１およびＦ２と共にフィルタリング部７０４に出力する（ステップＳ８０５）。
【００６９】
次に、フィルタリング部７０４は、フィルタＢＦを用いて周波数空間画像Ｆ１およびＦ２に対してフィルタリングを行い、フィルタリング後の周波数空間画像Ｆ１’およびＦ２’を得て、距離算出部７０５に出力する（ステップＳ８０６）。
【００７０】
次に、距離算出部７０５は、Ｆ１’およびＦ２’に基づいてＯＴＦｒを算出する（ステップＳ８０７）。選択されたシーンをＳｓとすると、
【００７１】
【数７】
2015005200.tif 000009
と表わされる。
【００７２】
次に、距離算出部７０５は、その画素における距離情報を決定する（ステップＳ８０８）。本実施例において、距離取得部１４５は予め用意された変換テーブルを有し、その変換テーブルを参照することでＯＴＦｒの値を距離に変換する。変換テーブルには、撮影パラメータ、空間周波数が与えられた場合のＯＴＦｒ値およびそのＯＴＦｒ値に対応する距離が格納されている。変換テーブルは関数としても良いし、あらかじめ計算されたルックアップテーブルとして保持しても良い。
【００７３】
以上の処理を全画素について距離が決定されるまで繰り返し行う（ステップＳ８０９）。全画素について距離が決定されたら、距離算出部７０５は、得られた距離情報を距離マップとしてデータ化し、入力された画像データと共に符号化部１０９に出力する（ステップＳ８１０）。
【００７４】
＜位置姿勢推定部の構成と処理＞
移動度判定部でカメラの移動度が大きいと判定された場合、位置姿勢推定部１０７で撮影時のカメラ１００の位置姿勢が推定されたのち、ステレオ距離推定部１０８で被写体の距離情報の推定が行われる。ここで位置姿勢とは、各画像を取得した撮像部の向きと位置を規定するパラメータであり、並進ベクトルＴと回転行列Ｒによって定義される。ここでは、基準となる１回目の撮像を行った時のカメラ１００の位置姿勢を基準とし、２回目の撮像を行った時のカメラ１００の位置姿勢ＴとＲを求める。これにより、２枚の画像の撮像を行った時のカメラ１００の２つの位置の間の位置関係が明らかとなる。
【００７５】
図９は、位置姿勢推定部１０７の構成を示すブロック図である。こちらの各ブロックの機能も、ＲＯＭ３０３に格納されたプログラムを実行したＣＰＵ３０１によって達成されるが、その一部を専用の処理回路などに置き換えても良い。
【００７６】
以下、位置姿勢推定部１０７において行われる処理（ステップＳ４０７）について説明する。図１０は、ステップＳ４０７で行われる詳細な処理を示すフローチャートである。
まず、基本行列推定部９０１は、移動度判定部より出力された画像データおよび対応点情報と、撮像制御部１０３より出力された光学系情報を取得する（ステップＳ１００１）。ここで光学系情報とは撮像部１０１の光学系に関わる情報のことであり、ここでは撮像部１０１の主点−撮像素子間距離ｓと、撮像素子２０７のサイズ（Ｌｘ，  Ｌｙ）、撮像素子２０７の画素数（Ｎｘ，  Ｎｙ）が取得される。これらの情報を用いて、以下の内部パラメータ行列Ａが定義される。
【００７７】
【数８】
2015005200.tif 000010
次に、基本行列推定部９０１は、入力された画像データに含まれる画像間の対応点の組および上記の内部パラメータ行列Ａに基づいて、２枚の画像間の関係を表わす基本行列を推定する（ステップＳ１００２）。基本行列Ｅは以下の式４の関係を満たす３×３の行列である。
【００７８】
ｍ’ＴＡ’−ＴＥＡ−１ｍ＝０            （９）
ここで、ｍとｍ’は移動度判定部１０５で求められた対応点の組の座標であり、ｍは１回目の撮像により得られた画像上での斉次座標を、ｍ’は２回目の撮像により得られた画像上での斉次座標を表す。また、ＡとＡ’は、１回目の撮像により得られた画像と、２回目の撮像により得られた画像に対応する内部パラメータである。式１と式９より、Ａ’−ＴＥＡ−１＝Ｆが得られるので、このステップでは、移動度判定部１０５で求めた基礎行列Ｆと、ステップＳ１００１で定義されたＡおよびＡ’をこの式に代入し、基本行列Ｅを求める。
次に、インライア抽出部９０２は、移動度判定部１０５が求めた対応点の組の中から、ステップＳ１００２で求めた基本行列Ｅによる式７の関係を満たすものを抽出する（ステップＳ１００３）。式４から、点ｍとｍ’は、それぞれ以下の式１０と式１１で表されるエピポーラ線ｌおよびｌ’上にあると考えることができる。
【００７９】
ｌ’＝Ａ’−ＴＥＡ−１ｍ              （１０）
ｌ＝Ａ−ＴＥＴＡ’−１ｍ’              （１１）
ここではこの解釈に基づき、ｍとｌの距離およびｍ’とｌ’の距離が共に閾値以下になるような対応点の組がインライアとして抽出する。本実施例において、この閾値は３ピクセルであるが、他の値が閾値として設定されても良い。
【００８０】
次に、基本行列分解部９０３は、ステップ１００２で求めた基本行列Ｅを、カメラの位置姿勢を表す回転行列Ｒと並進ベクトルＴに分解する（ステップＳ１００４）。ＲとＴはそれぞれ世界座標系で表された３次元点Ｘをカメラ座標系で表された三次元点Ｘ’にＸ’＝ＲＸ＋Ｔの演算で変換できるような回転行列と並進ベクトルである。基本行列Ｅとは以下の式１２で表されるような関係を持つ。
【００８１】
Ｅ＝［Ｔ］ｘＲ            （１２）
なおここで［Ｔ］×は、［Ｔ］×との内積の演算がＴとの外積の演算に相当するような歪対称行列である。ここでＥの転置行列を両辺に掛けると、
【００８２】
【数９】
2015005200.tif 000011
【００８３】
となってＴが求まる。Ｒは、このＴを用いて式１２から求めることができる。基本行列Ｅから位置姿勢Ｒ，Ｔへの分解では、ＲおよびＴの組み合わせとして４つの候補が算出される。このステップでは、ステップＳ１００２で得られた基本行列Ｅを式１３に代入し、並進ベクトルＴを得る。そして、基本行列Ｅと、得られた並進ベクトルＴを式１２に代入し、回転行列Ｒを得る。
【００８４】
次に、三次元復元部９０４は、ステップＳ１００３でインライアとして抽出された各対応点の組について、三角測量によりその空間座標を算出する（ステップＳ１００５）。算出にはステップＳ１００４で求めた４つの位置姿勢候補を用いる。
【００８５】
次に、位置姿勢選択部９０５は、ステップＳ１００４で求めた４つの位置姿勢候補から最も適切な姿勢を選択し、選択した位置姿勢および入力された画像データをステレオ距離推定部１０８に出力する（ステップＳ１００６）。ここでは、三次元復元部９０４で算出された各対応点の三次元位置が、より多くカメラの前方となるような位置姿勢が、適切な位置姿勢として選択される。
【００８６】
以上の処理により、２枚の入力画像を用いて、一方を基準とする、カメラの相対的な位置姿勢を算出することができる。
【００８７】
なお、本実施例では、位置姿勢推定部１０７は２枚の画像を用いて位置姿勢の推定を行うものとしたが、より多くの入力画像に対して位置姿勢の推定を行う構成としても良い。３枚以上の入力画像を用いて位置姿勢の推定を行う方法としては、因子分解法、多焦点テンソルを用いる方法、２枚目の画像の三次元復元された点と３枚目以降の画像との対応から３枚目以降の入力画像に対応するカメラ１００位置姿勢を求める方法などがある。また、本実施例において、位置姿勢推定部１０７は線形解法によりカメラ１００の位置姿勢を算出するものとしたが、高精度化のために非線形最適化を用いても良い。
【００８８】
＜ステレオ距離推定部の構成と処理＞
ステレオ距離推定部１０８は、２枚の入力画像と、それに対応する位置姿勢および光学系情報から、被写体の距離情報を推定する。
【００８９】
図１１は、ステレオ距離推定部１０８の構成を示すブロック図である。こちらの各ブロックの機能も、ＲＯＭ３０３に格納されたプログラムを実行したＣＰＵ３０１によって達成されるが、その一部を専用の処理回路などに置き換えても良い。
【００９０】
以下、ステレオ距離推定部１０８において行われる処理について説明する。まず、本実施例におけるステレオ距離推定の方法について述べる。
【００９１】
図１２は本実施例におけるステレオ距離推定の方法を説明する図である。本実施例では、１回目の撮像時の撮像面垂直方向に、複数のサンプリング距離ｄを設定する。カメラ１２０１とカメラ１２０２はそれぞれ１回目の撮像時と２回目の撮像時のカメラ１００の位置および向きを示し、二等辺三角形の底辺が撮像面を表わしている。また、１２０３は、カメラ１２０１の撮像素子上の点ｍに対応する被写体であり、距離ｄ３の位置に存在している。１２０４〜０６は、それぞれ距離ｄ１，  ｄ２，  ｄ４に被写体が存在すると仮定した場合の位置を示す点である。まず、被写体１２０３が距離ｄ１に存在すると仮定した時を考える。この時、点１２０４が被写体の存在する位置としてみなされるため、点ｍに対応するカメラ１２０２の撮像素子上の点は、点ｍ’１となる。次に、被写体１２０３が距離ｄ３に存在すると仮定した時を考える。この場合、点ｍに対応するカメラ１２０２の撮像素子上の点は点ｍ’３となる。この時、点ｍと点ｍ’３は、それぞれ同じ被写体に対応する点であるため、点ｍと点ｍ’１の組み合わせに比べ、それぞれの画素位置での画素値が近くなることが予想される。つまり、２回の撮像により得られた各画像の間で、複数のサンプリング距離について画像中での対応点をもとめ、その対応点における画素値の整合度を比較することで、各画素位置における被写体距離を見積もることができる。
【００９２】
以上が本実施例で行われるステレオ距離推定の方法の概要である。次に、本実施例においてステレオ距離推定部１０８内で実際に行われる処理（ステップＳ４０８）について説明する。図１３は、ステップＳ４０８で行われる詳細な処理を示すフローチャートである。
【００９３】
まず、サンプリング距離決定部１１０１は、整合度を算出するサンプリング距離の組を決定する（ステップＳ１３０１）。ここで、サンプリング距離としては、離散的な複数の距離を設定する。被写体が遠距離にある場合には対応点の位置の変化が小さくなるので、距離の逆数が等間隔になるように設定するなどして、遠距離部でのサンプリングレートを落としても良い。
【００９４】
次に、画素参照行列生成部１１０２は、位置姿勢推定部１０７より出力された画像データとカメラ１００の位置姿勢、および撮像制御部より出力された光学系情報と、ステップＳ１３０１で決定されたサンプリング距離の組を取得する。（ステップＳ１３０２）。ここで取得される光学系情報は位置姿勢推定部１０７で取得されるものと同様である。
【００９５】
次に、画素参照行列生成部１１０２は、ステップＳ１３０２で取得された位置姿勢および光学系情報に基づいて、あるサンプリング距離を選択し、その距離に対応する画素参照行列を生成する（ステップＳ１３０３）。ここで、画素参照行列は、１回目の撮像により得られた画像上の点ｍを、２回目の撮像により得られた画像上の点ｍ’に変換する射影変換行列である。点ｍの斉次座標ｍと、点ｍ’の斉次座標ｍ’の間には式１４で表される関係がある。このとき、［Ｒ  Ｔ］は２回目の撮像時の位置姿勢を、ＡおよびＡ’はそれぞれ１回目および２回目の撮像時のカメラの内部パラメータ行列を表わし、ｄは射影変換行列を生成するサンプリング距離を表わす。また、λは定数倍の不定性を示す定数である。
【００９６】
【数１０】
2015005200.tif 000012
【００９７】
これを整理するとｍからｍ’への射影変換を表す画素参照行列Ｊが式１５のように得られる。
【００９８】
Ｊ＝Ａ’（ｄＲＡ−１＋ＴＤ）
Ｄ＝（０  ０  １）                            （１５）
このステップでは、上記に示した各パラメータの値を式１５に代入し、画素参照行列Ｊを得る。
【００９９】
次に、画素値整合度算出部１１０３は、ステップＳ１３０３で生成された画素参照行列に基づき、各対応点の画素値の整合度を算出する（ステップＳ１３０４）。２回目の撮像によって得られた画像上での対応点の画素位置は、通常非整数画素位置になるので、バイキュービック法やバイリニア法などの補間を用いて画素値を参照する。ある画素位置における整合度Ｃの例としては、ｎ番目の入力画像の画素値をＩｎとした時、式１６で表されるようなものが考えられる。ここでＮは入力画像の数であり、本実施例においては２となる。
【０１００】
【数１１】
2015005200.tif 000013
【０１０１】
この値は、２つの画素値の整合性が高いほど小さくなる。このステップでは、上記パラメータの値を式１６に代入して整合度を算出する。整合度の算出を１回目の撮像に対応する画像上の全ての画素に対して行い、各画素位置に対応する整合度を２次元状に並べた整合度マップを生成して最適距離選択部１１０４に出力する。
【０１０２】
次に、最適距離選択部１１０４は、ステップＳ１３０４で生成された整合度マップを取得して最適距離選択部１１０４が保持している整合度マップとの比較を行い、距離マップを更新する（ステップＳ１３０５）。最適距離選択部１１０４は、整合度マップと、その整合度を算出したサンプリング距離をマッピングした距離マップを保持している。ここでは、取得した整合度マップと保持している整合度マップとを比較し、各画素位置においてより整合度の小さい値を抽出して、新たな整合度マップを生成する。生成した整合度マップに対応するように、距離マップの更新を行う。なお、保持している整合度マップおよび距離マップが存在しない場合には、取得した整合度マップを保持し、その整合度マップに対応する距離マップを生成する。
【０１０３】
次に、最適距離選択部１１０４は、ステップＳ１３０１で決定された全てのサンプリング距離について整合度の算出および比較が行われたかどうかを判断する（ステップＳ１３０６）。全てのサンプリング距離について整合度の算出が行われていない場合、ステップＳ１３０３に戻り、新たなサンプリング距離について画素参照行列の生成を行って、同様の処理を続ける。
【０１０４】
全てのサンプリング距離について整合度の算出および比較が行われた場合、最適距離選択部１１０４は、入力された画像データと、保持していた距離マップを符号化部１０９に出力する（ステップＳ１３０７）。
【０１０５】
以上の処理により、ステレオ法を用いた距離推定を行うことができる。なお、ここで算出した整合度は画素単位での整合度であるので、ノイズの影響を受けやすい。そこで、ステレオ距離推定部１０８は、整合度マップもしくは距離マップ生成のときに、異常値を除外するフィルタ処理などを行う構成であっても。また、１回目の撮像位置を基準にせず、１回目の撮像位置と２回目の撮像位置の間に仮想的なカメラを設定し、その仮想カメラの撮像面からの距離を求める距離とする構成であっても良い。
【０１０６】
また、本実施例では、ステレオ距離推定部１０８は、２枚の画像から距離情報を算出するものとしたが、２枚以上ならば用いる画像の数はいくつであっても良い。また、本実施例では、離散的なサンプリング距離について画像間の整合性を検証し、最適な距離を選択するという方法で距離情報が算出されたが、そのほかの方法により距離情報が算出されるようにしても良い。距離情報を求めるその他の方法としては、非線形最適化により画像間のオプティカルフローを求める方法や、エピポーラ線上でブロックマッチングを行う方法、２枚の画像の平行化を行って三角測量により距離を求める方法などがある。
【０１０７】
また、本実施例では、カメラ１００の位置姿勢として行列ＲおよびベクトルＴを用いてステレオ距離推定が行われたが、２枚の画像を撮像により取得した位置の相対的な位置関係を示す情報であれば、他のどのような情報を用いて距離推定が行われても良い。例えば、ＧＰＳによる位置情報などが用いられても良い。
【０１０８】
また、本実施例ではレンズの焦点距離、主点−撮像素子間距離、射出瞳径の３つのパラメータを用いてユーザが撮影条件を設定するものとしたが、これらの３つの要素のいずれかにかかわるパラメータであればどのようなものを用いても良い。たとえば、被写界深度や被写体側の合焦位置などを用いても良い。また、これらのパラメータはユーザによって設定される必要はなく、撮影シーンに応じてカメラが自動的に設定するようにしても良い。
【０１０９】
本実施例において、ＤＦＤ距離推定部１０６は、撮像により得られた複数の画像の合焦状態の違いに基づいて距離情報を取得する第一の取得手段として機能した。
【０１１０】
また、位置姿勢推定部１０７およびステレオ距離推定部１０８は、前記複数の画像の視差に基づいて距離情報を取得する第二の取得手段として機能した。
【０１１１】
また、移動度判定部１０５は、前記撮像が行われた視点の位置に関する情報に基づいて、出力する距離情報に対応する取得手段を選択する手段として機能した。また、ＤＦＤ距離推定部１０６とステレオ距離推定部１０８は、移動度判定部１０５によって選択された取得手段によって取得された距離情報を出力する手段として機能した。つまり、移動度判定部１０５とＤＦＤ距離推定部１０６とステレオ距離推定部１０８は、出力する距離情報に対応する取得手段を選択し、該選択された取得手段によって取得された距離情報を出力する出力手段として機能した。
【０１１２】
また、移動度判定部１０５は、前記複数の画像からの距離情報の取得を中止するかどうかを判断する判断手段としても機能した。
【０１１３】
上記の構成によれば、距離推定に用いる複数の画像の、撮像時の視点の位置関係を示す情報に基づいて適切な距離推定処理が選択されるので、カメラ１００の移動が距離情報取得の精度に与える影響を低減できる。
【０１１４】
＜第二の実施例＞
図１４は、第二の実施例におけるカメラ１４００の構成を示すブロック図である。カメラ１４００は、第一の実施例のカメラ１００に移動量検知部１４０１を加え、移動度判定部１０５を移動度判定部１４０２に変更した構成となっている。
【０１１５】
移動量検知部１４０１は、カメラの移動量や角度変化を検知するジャイロセンサなどのセンサであり、２回の撮像間の移動量を検知して移動度判定部１４０５に出力する。
【０１１６】
本実施例では、移動度判定部１４０５は、移動量検知部１４０１から入力された移動量に基づいて、距離推定方法の選択を行う。これにより、移動量判定のために行う処理が低減される。
【０１１７】
以下、本実施例の移動度判定部１４０２内で行われる処理について説明する。図１５は移動度判定部１４０２の構成を示すブロック図であり、図１６は、移動度判定部１４０２内で行われる処理を示したフローチャートである。図６と同様の処理に関しては、同様の符号を使用して説明を省略する。
【０１１８】
まず、距離推定方法選択部１５０１は、デジタル信号処理部１０４から出力された画像データを取得する（ステップＳ１６０１）。
【０１１９】
次に、距離推定方法選択部１５０１は、移動量検知部１４０１から出力された、カメラの移動量を取得する（ステップＳ１６０２）。
【０１２０】
次に、距離推定方法選択部１５０１は、ステップＳ１６０２で取得した移動量に基づいて、カメラの移動度が大きいかどうかを判断する（ステップＳ１６０３）。
カメラの移動度が小さいと判定された場合、距離推定方法選択部１５０１は、ＤＦＤ距離推定部１０６に入力された画像データを出力し、処理を終了する（ステップＳ１６０４）。
【０１２１】
カメラの移動度が大きいと判定された場合、移動度判定部１４０２はステップＳ６０５までの処理を行い、入力された画像データと検出された対応点の組を位置姿勢推定部１０７に出力して処理を終了する（ステップＳ１６０５）。
【０１２２】
以上の処理によれば、距離推定方法選択のために画像中の対応点探索を行わずに済むので、距離推定方法選択のための処理量が第１の実施例よりも低減される。
【０１２３】
なお、ここで用いられる移動量検知センサはジャイロセンサである必要はなく、カメラの移動量や角度変化を検知することができるセンサであれば、光センサや磁気センサなど、どんなものであっても良い。
【０１２４】
本実施例において、移動量検知部１４０１は、撮像手段の移動量を検知する手段として機能した。
【０１２５】
＜第三の実施例＞
第三の実施例は、カメラとコンピュータが接続された情報処理システムに適用される。
【０１２６】
図１７は、第三の実施例の情報処理システムの構成を示すブロック図である。
【０１２７】
カメラ（撮像装置）１７００は、撮像部１７０１と、操作部１７０２と、撮像制御部１７０３と、Ｉ／Ｏインターフェース１７０４を有している。撮像部１７０１と操作部１７０２は第一の実施例の撮像部１０１と操作部１０２と同様の構成になっており、撮像制御部１７０３は、撮像部の光学系条件や撮像タイミングなどを制御するための専用の処理回路となっている。また、Ｉ／Ｏインターフェース１７０４は、ユニバーサルシリアルバス（ＵＳＢ）によって実装されたシリアルバス接続を利用でき、対応するＵＳＢコネクタ（図示せず）を有する。もちろん、光ファイバーによるＬＡＮ接続や、無線接続などを利用しても良い。カメラ１７００は、このＩ／Ｏインターフェース１７０４を介してコンピュータ１７１０と接続されている。
【０１２８】
コンピュータ１７１０は、Ｉ／Ｏインターフェース１７１１、メディアＩ／Ｆ１７１８、情報処理部１７２０を有している。
【０１２９】
Ｉ／Ｏインターフェース１７１１はＩ／Ｏインターフェース１７０４と同様の構成になっており、ＵＳＢケーブルによってＩ／Ｏインターフェース１７０４と接続されている。
【０１３０】
メディアＩ／Ｆ１７１８は外部メディアと接続するためのインターフェースであり、本実施例においてはデータを記憶するＨＤＤと接続されている。
【０１３１】
情報処理部１７２０のハードウェア構成は第一の実施例の情報処理部１２０と同様であり、ＲＯＭに記憶されたプログラムを実行することで、図１７に示す各構成部としての役割を果たす。なお、情報処理部１７２０の構成は、上記に示すもの以外に、図１７に示す各構成部の一部または全部の役割を果たす専用の処理回路などを備えたものであっても良い。
【０１３２】
この情報処理システムで行われる処理は図４のフローチャートで示される第一の実施例の処理と同様である。図４のフローチャートを参照して説明すると、ステップＳ４０１とステップＳ４０２の処理をカメラ１７００が行い、ステップＳ４０３以降の処理をコンピュータ１７１０が行う。カメラ１７００は、撮像制御部１７０３が出力する命令信号に基づいて、ステップＳ４０１とＳ４０２の処理を行う。また、情報処理部１７２０のＲＯＭには図４のステップＳ４０３〜Ｓ４１０に対応する処理をＣＰＵに実行させるプログラムが格納されている。情報処理部１７２０内のＣＰＵがそのプログラムを実行することで、情報処理部１７２０はステップＳ４０３〜Ｓ４１０の処理を行う。
【０１３３】
このような構成にすることで、情報処理能力に乏しいカメラによって取得された画像からも距離情報の取得を行うことができる。
【０１３４】
なお、この情報処理システムの構成は本実施例で示されるものに限られず、コンピュータ１７１０で行われる処理の一部をカメラ１７００で行うように構成したものでも良い。例えば、移動度の判定による距離推定処理の選択（ステップＳ４０５）までをカメラ１７００が行い、カメラ１７００から出力された制御信号が示す距離推定手法を用いてコンピュータ１７１０が距離情報の取得を行うようにしても良い。
【０１３５】
また、カメラ１７００とコンピュータ１７１０を相互に通信可能とし、カメラ１７００による撮影条件の設定をコンピュータ１７１０で行うように構成したものであっても良い。
【０１３６】
＜その他の実施例＞
実施例は上記の構成に限定されるものではなく、上記の複数の実施例を組み合わせた構成、例えば、第二の実施例において移動量検知部１４０１で検知された移動量と、画像の対応点から求めた移動度を判断基準として併用するようにしても良い。また、第三の実施例のカメラ１７００に移動量検知部を新たに設け、その移動量検知部で検知された移動量をコンピュータ１７１０に出力するようにしても良い。
【０１３７】
また、上記の実施例においては、カメラの移動度に基づいて、距離情報取得に用いる処理方法が選択されたが、あらかじめそれぞれの処理方法を用いて距離情報が取得され、カメラの移動度に基づいて、最終的に出力する距離情報が選択されてもよい。そのようにしても撮像装置の移動の有無が距離情報取得の精度に与える影響を低減できるが、上記の実施例のようにすれば、距離情報取得のための処理量も低減することができる。
【０１３８】
また、第一の実施例では、２枚の画像間の対応点マッチングによりカメラの移動度を判定したが、画像から得られるほかの情報に基づいてカメラの移動度を判定しても良い。例えば、２枚の画像の周波数解析によって画像の合焦状態の変化を調べ、その変化の大きさに基づいてカメラの移動度を判定しても良い。
【０１３９】
また、第一の実施例では、２枚の画像間の合焦状態の違いに基づいて被写体の距離情報を推定する方法としてＤＦＤ法が用いられたが、ＤＦＦ（Ｄｅｐｔｈ  Ｆｒｏｍ  Ｆｏｃｕｓｉｎｇ）法など、別の方法を用いて距離情報を用いるようにしても良い。
【０１４０】
また、第二の実施例において、移動量検知部１４０１の検知精度が十分に良い場合は、位置姿勢推定部１０７での処理を行わず、移動量検知部１４０１で検出された移動位置および回転量をそのままカメラ１４００の位置姿勢として用いるようにしても良い。
【０１４１】
また、本発明を、複数の撮像部を有する多眼カメラに適用し、多眼カメラによって取得された複数の画像から画像を無作為に選択した場合に、各画像に対応する視点の位置に基づいて使用する距離推定方法を変更するようにしても良い。なお、本発明は例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、複数の機器から構成されるシステムに適用しても良いし、一つの機器からなる装置に適用しても良い。
【０１４２】
また、本発明はソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１４３】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては例えば、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などでも良い。
【０１４４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記憶媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであっても良い。また、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【符号の説明】
【０１４５】
１００  カメラ（撮像装置）
１０１  撮像部
１０５  移動度判定部（出力手段）
１０６  ＤＦＤ距離推定部（第一の取得手段）
１０７  位置姿勢推定部（第二の取得手段）
１０８  ステレオ距離推定部（第二の取得手段、出力手段）
１２０、１７２０  情報処理部
【図１】
2015005200.tif 000014
【図２】
2015005200.tif 000015
【図３】
2015005200.tif 000016
【図４】
2015005200.tif 000017
【図５】
2015005200.tif 000018
【図６】
2015005200.tif 000019
【図７】
2015005200.tif 000020
【図８】
2015005200.tif 000021
【図９】
2015005200.tif 000022
【図１０】
2015005200.tif 000023
【図１１】
2015005200.tif 000024
【図１２】
2015005200.tif 000025
【図１３】
2015005200.tif 000026
【図１４】
2015005200.tif 000027
【図１５】
2015005200.tif 000028
【図１６】
2015005200.tif 000029
【図１７】
2015005200.tif 000030