(57)【特許請求の範囲】
【請求項１】
異なる位置に配置された複数の撮像部で撮影された画像から、該カメラが配置されている位置とは異なる仮想視点の仮想視点画像を生成する情報処理装置において、
仮想視点を設定する仮想視点設定手段と、
異なる位置に配置された複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の仮想画像において被写体距離を確定できない未確定領域を決定する決定手段と、
前記未確定領域からすくなくとも１つの前記撮影部の位置の補正量を設定する補正量設定手段と、
前記補正量に応じて補正された位置に配置された前記複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の前記仮想画像を生成する生成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記決定手段は、
前記仮想視点と、前記仮想視点の仮想画像における被写体距離推定対象画素とから決定される直線上に、複数の被写体位置の候補点を設定し、
該被写体の候補点に対応する、前記複数の画像の画素値から、前記被写体距離推定対象画素の被写体距離を確定できるか否かを決定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記補正量設定手段は、前記未確定領域の中心線に基づき前記補正量を設定することを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
さらに、出力画像形式を設定する出力画像形式設定手段を有し、
前記生成手段は、前記仮想視点と前記設定された出力画像形式とに応じて前記仮想画像を生成し、
前記出力画像形式には２Ｄ画像と視差画像とが含まれ、前記生成手段は、該出力画像形式として該２Ｄ画像が選択された場合は前記仮想視点に基づく１枚の画像を生成し、該出力画像形式として該視差画像が選択された場合は前記仮想視点と視差情報とに応じて求められる複数の視点に対応する複数の画像を生成することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
さらに、前記複数の視点に対応する複数の画像の保存方法を指定する出力画像データフォーマットを設定する出力画像データフォーマット設定手段を有し、
前記生成手段は、前記複数の視点に対応する複数の画像を、前記出力画像データフォーマットに応じた保存方法を用いて保存することを特徴とする請求項４記載の情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置をコンピュータを用いて実現するためのコンピュータが読み取り可能であるプログラム。
【請求項７】
異なる位置に配置された複数の撮像部で撮影された画像から、該カメラが配置されている位置とは異なる仮想視点の仮想視点画像を生成する情報処理方法において、
仮想視点を設定する仮想視点設定工程と、
異なる位置に配置された複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の仮想画像において被写体距離を確定できない未確定領域を決定する決定工程と、
前記未確定領域からすくなくとも１つの前記撮影部の位置の補正量を設定する補正量設定工程と、
前記補正量に応じて補正された位置に配置された前記複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の前記仮想画像を生成する生成工程とを有することを特徴とする情報処理方法。
【請求項８】
異なる位置に配置された複数の撮像部で撮影された画像から、該カメラが配置されている位置とは異なる仮想視点の距離マップを生成する情報処理装置において、
仮想視点を設定する仮想視点設定手段と、
異なる位置に配置された複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の仮想画像において被写体距離を確定できない未確定領域を決定する決定手段と、
前記未確定領域からすくなくとも１つの前記撮影部の位置の補正量を設定する補正量設定手段と、
前記補正量に応じて補正された位置に配置された前記複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の距離マップを生成する生成手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数視点画像から仮想視点画像を生成するものに関する。
【背景技術】
【０００２】
撮影した位置とは異なる視点の画像（仮想視点画像）を得る方法として、光軸を移動させて撮影するティルト・シフト撮影、および距離マップを生成し距離マップに応じて視点の異なる複数の画像（複数視点画像）を合成することにより任意視点画像を得る方法が知られている。複数視点画像を得る方法として、特許文献１のように互いに重複領域を持つように被写体を複数回撮影して合成する方法および、特許文献２のようにカメラアレイを用いる方法が知られている。手持ち撮影などを考えた場合には、後者の方が優れている。
カメラアレイによって多視点画像を得る撮影システムには、特許文献２のように被写体を全方位から撮影するものと、ＶｉｅｗＰＬＵＳ社のＰｒｏＦＵＳＩＯＮ２５のように複数のカメラを平面上に配置して撮影するものがある。撮影した位置とは異なる視点の画像を得るためには、被写体が含まれる撮影領域の距離マップを取得することは非常に重要である。そして、カメラアレイを構成するカメラの配置は、距離マップの精度に大きく影響する。特許文献３のように、光軸に対して前後にカメラを配置する方法が提案されている。複数視点画像から距離マップを生成する方法としては、例えば、非特許文献１に記載されているプレーンスイープ法が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３０７９４７号公報
【特許文献２】特開２００６−３５２５３９号公報
【特許文献３】特許第３５６１４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のカメラアレイを構成するカメラの配置は、格子状、放射状、半球状などのように規則正しく配置されている。規則正しくカメラを配置した場合、ある程度の大きさを持った単色被写体の距離情報を正しく取得できないという問題が生じる。
例えば、図５（ａ）のように、単色被写体である単一色の棒Ｘ（例えば手すり）が、複数のカメラの配置と平行に配置されていたとする。カメラＡ、カメラＢ、カメラＣで撮影した画像は例えば、図５（ｂ）のようになる。図５（ｂ）における黒いラインの部分が、各画像における単色被写体Ｘの画像部分である。図５（ｂ）におけるａ、ｂ、ｃは、図５（ａ）中に示した現実空間における位置（仮想オブジェクト位置）ａ、ｂ、ｃに対応する画像上の位置を示している。
図５（ａ）と（ｂ）に示したように、位置ａ、ｂ、ｃに対応する各カメラの画像における画素値は、被写体Ｘが単色であることから同じになってしまう。したがって、各カメラの画像から、単色被写体Ｘが存在する位置ｂに対応する画素を特定することができない。よって、被写体Ｘの位置ｂ（オブジェクト位置）を１点に絞ることができない。
【０００５】
図５（ｃ）に示したようにカメラ２台を通る直線を含む平面上に、ほぼ均一な特徴量を持つ被写体がある場合、複数の仮想オブジェクト位置で特徴量が略一致するため、原理的に２台だけではオブジェクト位置を特定できない。したがって、仮想オブジェクト位置を絞り込むために、カメラを更に追加することが必要である。しかしながら、この２台のカメラを通る直線上に他のカメラを追加した場合には前述のようにオブジェクト位置を特定ことはできないので、この位置にカメラを追加するのはあまり意味が無い。カメラアレイ上に配置するカメラ台数は物理的な制約があるので、情報量増加に貢献しないカメラをできるだけ減らすということが、正しい三次元推定結果を得、ひいては高画質な仮想視点画像を得ることに大きく貢献する。  
本発明は、上記課題を解決するためになされたものであり、撮像部の位置を最適化することにより、好適な仮想視点画像または距離マップを得ることができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本願請求項１記載の発明は、異なる位置に配置された複数の撮像部で撮影された画像から、該カメラが配置されている位置とは異なる仮想視点の仮想視点画像を生成する情報処理装置において、仮想視点を設定する仮想視点設定手段と、異なる位置に配置された複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の仮想画像において被写体距離を確定できない未確定領域を決定する決定手段と、前記未確定領域からすくなくとも1つの前記撮影部の位置の補正量を設定する補正量設定手段と、前記補正量に応じて補正された位置に配置された前記複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の前記仮想画像を生成する生成手段とを有することを特徴とする。
本願請求項８記載の発明は、異なる位置に配置された複数の撮像部で撮影された画像から、該カメラが配置されている位置とは異なる仮想視点の距離マップを生成する情報処理装置において、仮想視点を設定する仮想視点設定手段と、異なる位置に配置された複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の仮想画像において被写体距離を確定できない未確定領域を決定する決定手段と、前記未確定領域からすくなくとも1つの前記撮影部の位置の補正量を設定する補正量設定手段と、前記補正量に応じて補正された位置に配置された前記複数の撮影部によって撮影された複数の画像の画像データから、前記仮想視点の距離マップを生成する生成手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮像部の位置を適切にすることができ、好適な仮想視点画像または距離マップを得ることができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１における撮影装置の外観を示す図である。
【図２】撮影装置の詳細構成を示した図である。
【図３】カメラアレイによる距離マップの取得処理の概要を示す図である。
【図４】距離マップ推定処理の流れを示すフローチャートである。
【図５】カメラの配置と被写体との相対位置による距離情報取得時の弊害を説明する図である。
【図６】ステレオ画像生成時の仮想カメラ位置を決定する処理の概要を示す図である。
【図７】画像データフォーマットの概要を示す図である。
【図８】画像データフォーマットの自動決定処理の流れを示すフローチャートである。
【図９】画像処理の流れを示すフローチャートである。
【図１０】カメラ位置補正処理の流れを示すフローチャートである。
【図１１】カメラ位置補正処理後のカメラ位置の概要を示す図である。
【図１２】実施例２におけるカメラ位置の決定処理の流れを示すフローチャートである。
【図１３】カメラ位置の直線配置判定処理の概要を示す図である。
【図１４】カメラ位置の更新処理の流れを示すフローチャートである。
【図１５】カメラ位置更新処理後のカメラ位置の概要を示す図である。
【図１６】実施例４におけるカメラアレイの配置状態を示す図である。
【発明を実施するための形態】
【実施例１】
【００１０】
実施例１は、カメラアレイを構成するカメラユニットの位置を動的に補正する。カメラアレイは２台以上のカメラで構成されるが、本実施例では多眼デジタルカメラとカメラアレイを構成するカメラとを明確にするために、カメラアレイを構成するカメラを「カメラユニット」と呼称する。
図１は本実施例に係る多眼デジタルカメラの概観を示す斜視図であり、図１（ａ）は正面、図１（ｂ）は背面の概観を示している。多眼デジタルカメラ本体１００の正面には、カメラユニット１０１を格子状に配置したカメラアレイが設けられており、この複数のカメラユニットを用いて、同時に複数の視点画像を得ることができる。多眼デジタルカメラ本体１００の上部には、撮影開始を指示するためのレリーズボタン１０４が設けられている。
【００１１】
カメラアレイを構成するカメラユニット１０１の夫々は撮像装置１０２と保持環１０３、アクチュエータ１２５で構成され、アクチュエータによって撮像装置１０２を保持環１０３の範囲内で水平および垂直移動することができる。本実施例における撮像装置１０２は、レンズ１２１とＬＰＦ１２２、撮像センサ（例えば、ＣＣＤ）１２３、水平・垂直方向駆動ステージ１２４、周辺回路（不図示）が一体となって構成される。この撮像装置を、駆動用のアクチュエータ１２５によって水平・垂直に駆動する（図１（ｃ））。
本実施例では撮像装置１０２を水平・垂直に駆動するが、水平・垂直方向の駆動に加え、例えば光軸方向に前後駆動したり、旋回したりしても良い （図１（ｄ））。ただし、撮像素子中心を基準としたカメラユニットの旋回は、被写体距離が特定できないという問題を解決することはできない。なお、カメラユニット１０１の移動量は、カメラユニット毎に保持され、バッファメモリ２０８（図２参照）へ撮影画像データを転送する際に、画像に付加して送信される。
【００１２】
多眼デジタルカメラ本体１００の側面には、外部記録媒体（例えば、半導体メモリカード）を挿入するためのカードスロット１１１が設けられている。多眼デジタルカメラ本体１００の背面には画像表示装置１０５、十字配置スイッチ１０６、電源ボタン１０７、メニューボタン１０８、決定ボタン１０９、キャンセルボタン１１０が設けられている。本実施例では光学ファインダを設けていないので、ピントや構図の確認は、画像表示装置１０５を用いて行う。画像表示装置１０５には、撮影範囲をリアルタイムに表示するライブビュー表示を行う他、メニューボタン１０８を押下した場合にはカメラ設定メニューを表示する。カメラ設定メニューを表示した状態でメニューボタン１０８を押下した場合には、ライブビュー状態に戻る。
メニューボタン１０８によって表示されるカメラ設定メニューでは、まず項目を選択し、選択された項目の状態を決定ボタン１０９で変更するか、キャンセルボタン１１０で変更せずに項目の選択に戻る。カメラ設定メニューで変更できる項目には、絞り値や、カメラシャッタースピード、仮想カメラ視点、出力画像形式、画像データフォーマットを指定できる。
【００１３】
本実施例では、絞り値やシャッタースピードについては、カメラアレイを構成する各カメラユニットに対して同じ値を設定する。なお、カメラユニット毎に個別に設定できるようにしても良い。各カメラユニットを同じ設定にすることで従来のデジタルカメラと同様の操作感で撮影条件を設定できるが、個別に設定することでより高精度なかそう視点の画像をを得ることができる。
仮想カメラ視点情報は、仮想カメラの位置、姿勢、画角、撮影距離の情報を含む。撮影距離とは仮想カメラ視点から仮想ピント面までの距離であり、仮想カメラ視点から被写体までの距離である被写体距離とは異なる。撮影距離は、通常のデジタルカメラと同様に、撮影領域内のうち、撮影準備状態に入った時点で指定されている位置を測距して決定する。例えば本実施例の多眼デジタルカメラでは、ＡＦ測距枠に最も近い位置のカメラユニットを選択し、選択したカメラユニットを使って撮影距離を決定し、決定した撮影距離を他のカメラへ通知する。
【００１４】
本実施例では、多眼デジタルカメラが生成する画像データの形式は、出力画像形式と画像データフォーマットとに基づき決定される。本実施例では、出力画像形式として、２Ｄ画像、ステレオ画像、多視差画像、ＲＡＷ画像の４種類を選択することができる。２Ｄ画像は、仮想カメラ視点から見た映像を示す１枚の仮想視点画像データである。ステレオ画像は、仮想カメラ視点から見た時の両眼視差画像を示す右眼視点画像データと左眼視点画像データである。図６に示すように、仮想カメラ視点を基準として、両眼視差（例えば、６ｃｍ）に応じて２台の仮想カメラ（右目用仮想カメラと左目用仮想カメラ）を設定し、この２台のカメラのそれぞれから見た映像を画像データとして出力する。２台の仮想カメラを設定する際に、両眼視差に加え、輻輳角を指定しても良い。輻輳角を指定することで、撮影距離が短い場合でも違和感の無いステレオ画像を得ることができる。多視差画像は、ステレオ画像とは異なり、視差数を水平方向に２に限定せず、別途指定された任意の数の視差に応じて複数の画像データを生成する。視差数は、水平・垂直夫々に独立に指定可能である。ＲＡＷ画像は、各カメラユニットで撮影した画像データを無加工で記録する形式である。この出力画像形式の場合、各カメラユニットに対応した各画像データをカメラユニットの仮想カメラ視点情報とともに格納する。各カメラユニットの出力（複数視点の画像）をそのまま保存しておくことで、ＰＣなどを用いて被写界深度や視点位置などを変更（リフォーカス処理）することが可能になる。
【００１５】
画像データフォーマットは、ステレオ画像、多視差画像のような複数の仮想カメラ視点の画像データの保存方法を指定するための情報である。本実施例は、画像データフォーマットとして、複数の画像データをそのまま記録する通常記録と、レンチキュラー印刷／表示用に複数の視差画像を短冊状または格子状に合成するレンチキュラー記録を選択することができる（図７）。レンチキュラー記録の場合、水平・垂直のいずれかにのみ視差が指定されている場合には短冊状に複数の視差画像を交互に合成し、両方に視差が設定されている場合は格子状に複数の視差画像を交互に合成する。レンチキュラー記録は、視差を水平・垂直について独立に設定できるので、インテグラル方式の裸眼立体視モニタにも対応することができる。
【００１６】
本実施例は、さらに、画像データフォマットとして、カメラに接続された出力機器を認識し、通常記録とレンチキュラー記録のいずれかを自動選択する「自動選択」を用意する。画像データフォーマットとして、「自動選択」が設定されている場合は、レリーズボタン１０４によって撮影が指示された時点で、マイクロコンピュータ２００が図８に示す処理を実行して出力画像データフォーマットを決定する。まず、多眼デジタルカメラ本体と出力機器が接続されているかどうかを判定する（ステップＳ８０１）。出力機器が接続されていていると判定された場合は、出力機器から出力機器がサポートするデータ形式の情報を取得（ステップＳ８０２）する。取得したデータ形式に応じて、画像データフォーマットとして通常記録またはレンチキュラー記録のいずれかを設定する。さらに、レンチキュラー記録が設定された場合は、取得したデータ形式に基づき、水平・垂直の数を設定する（ステップＳ８０３）。一方、ステップＳ８０１において出力危機が接続されていないと判定された場合は、予め定められた画像データフォーマットを設定する。本実施例では、通常記録を設定する（ステップＳ８０４）。
【００１７】
出力画像形式としてＲＡＷ画像が指定されている場合は、画像データフォーマットとして「自動選択」は選択できない。そして、画像データフォーマットとして「自動選択」が設定された状態で出力画像形式としてＲＡＷ画像を選択すると、自動的に「通常記録」が設定される。
図２は、本実施例にかかる多眼デジタルカメラの回路構成を示すブロック図である。図２において、マイクロコンピュータ２００は、撮像装置１０２が出力する画像データの処理や、撮像装置１０２の駆動制御、ＬＣＤモニタ装置２１１の表示制御をはじめ、カメラ全体の動作を制御する。
スイッチ（ＳＷ１）２０５は、レリーズボタン１０４（図１参照）の半押し状態でオンになり、スイッチ（ＳＷ１）２０５がオンすると本実施形態の多眼デジタルカメラは撮影準備状態になる。スイッチ（ＳＷ２）２０６は、レリーズボタン１０４が最後まで押された状態（全押し状態）でオンし、スイッチ（ＳＷ２）２０６がオンすると本実施形態の多眼デジタルカメラは撮影動作を開始する。本実施形態による多眼デジタルカメラでは、複数の撮像装置１０２を同期して駆動する必要があるので、カメラユニット同期回路２０７でこれを制御する。
【００１８】
撮像装置（カメラユニット）１０２は、撮影レンズ１２１、撮像センサ１２３、撮像装置駆動回路２０３、画像処理回路２０４で構成される。撮像装置１０２の位置を調整するアクチュエータ１２５の制御は、カメラユニット駆動回路２１３で行う。撮影装置制御回路２０３は、レンズ制御やシャッター制御などを行う。例えばレンズ制御として、撮影レンズ１２１との通信およびＡＦ（オートフォーカス）時の撮影レンズ１２１の駆動制御や絞り羽の駆動制御などを行う。また、シャッター制御によって、撮像素子１２３に対して適正な露光を行う。撮像センサ１２３で得た画像データは画像処理回路２０４によって処理され、バッファメモリ２０８へ伝送される。画像処理２０９は、バッファメモリ２０８に格納された複数の撮像装置１０２によって撮影された複数の画像の画像データを用いて、仮想カメラ視点情報に応じた仮想画像を高精度に生成するための撮像装置１０２の移動量を算出し、算出された移動量を撮像装置制御回路２０３に通知する。さらに、画像処理２０９は、バッファメモリ２０８に格納された、移動量に応じて制御された撮像装置１０２にて撮影された複数の画像の画像データを用いて、仮想カメラ視点情報、出力画像形式および画像データフォーマットに応じた画像データを生成し、記録装置２１２に記録する。なお、本実施例では仮想カメラ視点からの画像を生成する処理は、プレーンスイープ法によって行うが、他の方法によって生成しても良い。プレーンスイープ法による仮想視点画像の生成処理については後述する。
【００１９】
ＬＣＤモニター２１１とバックライト照明２１０は、画像表示装置１０５を構成している。記録装置２１２は、例えばカードスロット１１１によってカメラ本体に着脱可能な半導体メモリカードや、外部端子（不図示）によって接続されるハードディスクドライブなどである。
【００２０】
次に、プレーンスイープ法について説明する。プレーンスイープ法は、まず、仮想視点画像における推定対象画素に対応する被写体が存在する位置（被写体位置）の候補点として仮想ピント面を設定する。複数のカメラユニットによって撮影された複数の画像のそれぞれにおける、設定されたピント面上の点に対応する画素値を用いて、設定されたピント面の信頼度を求める。設定されたピント面上の点は注目画素に対応する。そして、信頼度の高いピント面に応じた距離を、仮想視点画像における推定対象画素に対応する距離として決定する。
仮想視点画像上の各画素について距離情報を求めることで、撮影領域の距離マップを生成することができる。そして、距離マップに応じて、複数のカメラユニットによって撮影された複数の画像を再構成することにより仮想視点画像を作成することができる。
図３（ａ）は、図３（ｂ）に示した仮想カメラによる撮影画像（仮想視点画像）を示す。図３（ｂ）は、図３（ａ）における推定対象画素Ｆの仮想カメラからの距離の推定処理の概要を示す。推定対象画素Ｆに対応する被写体は仮想視点位置と推定対象画素Ｆの空間上の位置とを結ぶ直線上に存在する。そこで、仮想ピント面を点Ａから点Ｂまで移動させながら、複数のカメラユニットＰによって撮影された複数の画像のそれぞれにおける、仮想ピント面と直線上の交点（候補点）の位置に対応する画素値を特定する。図３（ｂ）の例では、配置されている６つのカメラユニットＰのすべての撮影画像は、点Ａから点Ｂまでに対応する画素を含む。特定された複数の画素値の特徴量の一致度から設定された仮想ピント面の信頼度を求める。仮想ピント面が正しい場合は、複数のカメラユニットＰによって撮影された画像のそれぞれから特定された画素値は同一の被写体に対応する画素値になるので、一致度は高くなる。一方、仮想ピント面が不適切である場合は、それぞれから特定された画素値は異なる被写体に対応する画素値になるので、一致度は低くなる。信頼度の高いピント面に応じた距離を、仮想視点画像における推定対象画素に対応する距離として決定する。
【００２１】
図４を用いてプレーンスイープ法による画像処理の流れを説明する。仮想視点画像を構成する画素ｉを選択する（ステップＳ４０１）。次に、仮想カメラ視点から画素ｉへの方向ベクトルを算出し、この方向ベクトルを含む直線Ｌを設定する（ステップＳ４０２）。直線Ｌ上での探索範囲を決定する（ステップＳ４０３）。この探索範囲内に仮想カメラの至近位置から無限遠方向へ順に仮想ピント面を設定し、被写体距離を探索する。探索範囲を設定した直線上に仮の被写体距離となる点Ｆを配置する（ステップＳ４０４）。撮影画像群から点Ｆに対応する画素を取得する（ステップＳ４０５）。仮の被写体距離とは、点Ｆを含む仮想ピント面と仮想カメラとの距離である。ここで、例えば図３（ｂ）のように仮想カメラの撮影範囲を６台のカメラでカバーしている場合、点Ｆに対応する画素として、６枚の撮影画像からそれぞれ１画素ずつ合計６画素を取得する。点Ｆに対応する画素位置の算出方法については後述する。
取得した画素群を用いて、点Ｆで指定した位置にオブジェクト（被写体）が存在するかどうかを判断する。オブジェクトが存在するかどうかは、画素群のうち一定割合以上の画素が略一致するかどうかで判断できる。本実施例では、略一致しているかどうかの判断を、画素の特徴量の分散を用いて判定する。そこで、ステップＳ４０５において、取得された複数の画素の特徴量の分散値を算出し、点Ｆの被写体距離の信頼度とする（ステップＳ４０６）。探索範囲内で点Ｆの位置を更新し、ステップＳ４０５およびステップＳ４０６の処理を繰り返す（ステップＳ４０７、Ｓ４１０）。
次に、探索範囲内の各点について算出した分散値から分散値が最も低い点Ｆｍｉｎを抽出し、この点Ｆｍｉｎに応じた被写体距離を画素ｉの被写体距離として採用する（ステップＳ４０８）。ステップＳ４０１〜Ｓ４１０までの処理を、仮想視点画像の全ての画素に対して行い（ステップＳ４０９）、仮想視点画像の各画素の被写体距離情報を示す距離マップを得ることができる。
【００２２】
この被写体距離情報から、被写体の三次元形状を推定したり、仮想視点画像を生成したりすることができる。なお、点Ｆ＿ｍｉｎに対応する画素の特徴量を用いて仮想視点画像の特徴量を決定すると、距離マップを作成せず直接仮想視点画像を作成することが可能である。例えば、撮影画像群における点Ｆｍｉｎに対応する画素の平均色を、仮想視点画像上の点Ｆの画素値とすることが考えられる。
撮影画像上での点Ｆに対応する座標の算出方法について、図３（ｃ）を用いて説明する。図中のカメラＡは、例えば図３（ｂ）におけるカメラユニットＰや、仮想カメラに対応する。カメラＡによる撮影領域は、カメラＡを頂点、水平画角をθＨ、水平画角をθＶとなる四角錘をした空間となる。この空間においてカメラＡからの撮影距離を１とした平面を撮影領域投影面とする。
まず、実空間をマッピングした座標系において、点Ｆの位置ベクトルをＸ、カメラＡの位置ベクトルをＸＣ、カメラＡから撮影領域投影面の中心ＣへのベクトルをＸＶとする。撮影領域投影面の上方向をＸＶＶ，右方向をＸＶＨとする。ここで、ＸＶＶ、ＸＶＨは単位ベクトルとする。また、点Ｆに対応する、撮影領域投影面上での座標を点Ｐとする。点Ｐの位置ベクトルpは、次式で表すことが出来る。
【００２３】
【数１】
0005456020.tif 000002
式（１）
ここで、
【数２】
0005456020.tif 000003
式（２）
とする。なお、ｔは転置行列を示す。このカメラによる撮影画像の水平画素数をＮＨ、垂直画素数をＮＶ、画像の左上を原点とし、右方向をＸ成分の正の方向、下方向をＹ成分の正の方向とすると、撮影画像上での点Pに対応する画素の座標（ px, py ）は、次式で表すことができる。
【００２４】
【数３】
0005456020.tif 000004
式（３）
ここで、p = ( p0, p1, p2 )とする。
以上で述べたような式を用いて、各カメラユニットおよび仮想カメラの撮影画像上での点Ｆに対応する画素の座標を計算できる。
次に、図９を用いて、画像処理部２０９によって行われる画像処理の流れを説明する。
まず、スイッチ（ＳＷ１）２０５の押下に応じて、ユーザによってカメラ設定メニュー上で設定された出力画像形式、出力データフォーマット、仮想カメラ視点情報を取得する（ステップＳ９０１）。出力データフォマットとして「自動選択」が設定されている場合は、マイクロコンピュータによって図８に示す処理によって設定された出力画像データフォーマットを取得する。仮想カメラ視点情報に応じて、カメラ位置補正処理を行い、算出された補正後のカメラ位置をカメラユニットに通知する（ステップＳ９０２）。
次に、スイッチ（ＳＷ２）２０６の押下に応じて、補正後のカメラ位置に基づき複数のカメラユニットにより撮影された複数の画像を用いて出力画像形式および仮想カメラ視点情報に応じた仮想カメラ画像を生成し、出力データフォーマットに応じた画像データを生成する（ステップＳ９０３）。図４に示したように、複数の画像を用いて、仮想カメラ視点画像の各画素について被写体距離を算出し、前記複数の画像における被写体距離に対応する画素の値から仮想視点画像の画素値を算出する。
【００２５】
図１０（ａ）は、ステップＳ９０２で行われるカメラユニット位置補正処理の流れを示すフローチャートである。まず、スイッチ（ＳＷ１）２０５が押下された時点での複数のカメラユニット１０１の出力画像を得る（ステップＳ１００１）。次に、図４に示した処理を用いて、仮想視点画像の画像データの各画素について被写体距離を推定し、被写体距離が一意に特定できない被写体距離未確定領域を抽出する（ステップＳ１００２）。本実施例では、探索範囲をカメラの最短撮影距離（例えば２４ｃｍ）から無限遠までとする。
被写体距離未確定領域を矩形で近似して直線オブジェクトを生成し（ステップＳ１００３）、この直線オブジェクトの短辺の中点を結ぶ中心線（図１1（ａ））を設定する（ステップＳ１００４）。
【００２６】
所定の座標系において、仮想視点画像における被写体距離未確定領域の座標位置と複数のカメラユニットの座標位置との関係から、移動対象のカメラユニットを選択する。所定の座標系は、例えば、図３に示した実空間を定義した座標系である。具体的には、被写体距離未確定領域の中心線付近に位置する複数のカメラユニットと、被写体距離未確定領域の内部もしくは周辺に位置するカメラユニットを選択する。被写体距離未確定領域の中心線付近に位置する複数のカメラユニットについては移動させない。被写体距離未確定領域の内部もしくは周辺に位置するカメラユニットについて移動量を算出する。次に、移動対象として選択されたカメラユニットに対する移動量を、中心線の法線ベクトルに基づき算出する（ステップＳ１００５）。
【００２７】
中心線に対する法線ベクトルは２つ存在するが、本実施例では中心線からより遠くなるような法線ベクトルを選択する。カメラユニットの移動量は、撮影レンズの画角と、直線オブジェクトの幅（短辺の長さ）によって決まる。本実施例では、基準移動量と移動補正量の和だけ、撮影画像の中心が移動するように移動する（図１1（ｂ））。基準移動量は、例えば直線オブジェクトの幅を半分にした値とする。移動量は例えば、直線オブジェクトの幅の５％に、撮影条件から想定される手ぶれ量を加算した値とする。
最後に、移動対象となったカメラユニットに対し、補正後の位置を通知する（ステップＳ９０６）。以後、通知されたカメラユニットは、この補正後の座標を付加した撮影画像データをバッファメモリ２０８へ送信する。このようにカメラユニットの位置を補正して、被写体距離が取得できない状態を回避することができる。なお、カメラユニット移動時の法線ベクトルの選択方法について、本実施例で述べた方法に限らない。例えば、移動先候補の位置に近い２つのカメラユニットの画像から、より情報量が多いと思われる候補（例えば、検出されるエッジが多い、など）を選択することで、より精度の高い距離マップを得ても良い。
【００２８】
次に、ステップ図１０（ｂ）は、ステップＳ１００２で行われる被写体距離推定処理の流れを示すフローチャートである。まず、仮想カメラによる撮影画像の各画素に対応する被写体距離カウンタマップを設け、これを全て０に初期化する（ステップＳ１０１１）。次に、仮想カメラによる撮影画像の各画素について図４で説明した方法と同様に、各ピント面における対応画素の分散値を算出する（ステップＳ１０１２〜Ｓ１０１８）。ここで、各カメラユニットの位置は、図１０（ａ）で説明した処理によって更新された後の座標を用いる。
【００２９】
探索範囲全てについて対応画素の分散値を算出したら（ステップＳ１０１９）、この分散値が予め定められた閾値未満のピント面の面数をカウントし、カウント数を被写体距離カウンタに反映する（ステップＳ１０２０）。すなわち、被写体が存在する可能性が高いピント面の面数をカウントする。全ての画素について被写体距離カウンタを設定した後（ステップＳ１０２１）、この被写体距離カウンタマップのカウンタ値を閾値と比較する（ステップＳ１０２２）。カウンタ値が閾値より大きい画素、すなわち、オブジェクトが存在する可能性が高いピント面が一定面数以上存在する画素を、被写体距離未確定領域と判定する。図５のように、単色被写体Ｘが、複数のカメラの配置と平行に配置されていた場合、ピント面a 、b、ｃのいずれにおいても、ステップ１０１９で算出される分散値は、予め定められた閾値より小さくなる。本実施例によれば、このような仮想視点画像における画素を、被写体距離未確定領域と判定することができる。
【００３０】
以上の処理によって各画素に対して被写体距離が一意に定まるかどうかを判定することができる。本実施例によれば、カメラユニットの位置を動的に補正することで高精度な距離マップを生成できるので好適な出力画像を得ることが可能になる。また、この方法はカメラユニットの位置を変更可能としたため、カメラユニットの初期配置はどのような配置であっても問題が無いという利点がある。したがって、図１に示した概観では格子状配置となっているが、その他の配置形態（例えば、球状配置）であっても問題は無い。
【実施例２】
【００３１】
実施例１では、カメラアレイを構成するカメラの位置を動的に変更することで課題を解決する方法について述べた。しかしながら、コンパクトデジタルカメラなどにおけるカメラ本体サイズなどの物理的な制約によってアクチュエータを設けられないなど、カメラ位置を動的に変更できない場合がある。そこで本実施例では、カメラ位置を動的に変更できない場合における課題の解決方法について述べる。
図５を用いて説明したように、カメラ２台を通る直線上に別のカメラを配置しても、情報量が増えない領域が存在することが問題となっている。そこで、カメラアレイを構成する全てのカメラについて、どの３台を選択しても同一直線上にならないような配置にすることが考えられる。
図１２は、カメラアレイを構成する全てのカメラについて、３台が同一直線上にならないような配置を決定するための処理の流れを示すフローチャートである。以後、３台が同一直線上に配置されている状態のことを、直線配置と呼ぶ。
まずカメラの位置を初期化し（ステップＳ１２０１）、各カメラについて、直線配置判定を行う（ステップＳ１２０２）。直線配置判定とは、他のカメラ２台を結ぶ直線に対する対象カメラの距離Ｌを算出し、その距離が予め定められた距離よりも小さい場合には対象カメラが直線配置されていると判定する（図１３）。直線配置と判定されたカメラが存在しない場合には処理を終了するが（ステップＳ１２０３）、そうでない場合には、カメラの位置を更新する（ステップＳ１２０４）。カメラ位置の更新処理は、直線配置になっているカメラについてのみ適用する。
図１４は、カメラ位置の更新処理の流れを示すフローチャートである。まず、全てのカメラについて、カメラ位置を補正したかどうかを示す補正済みフラグをＦＡＬＳＥに初期化する（ステップＳ１４０１）。次に、各カメラについて、直線配置判定で直線配置と判定されたかどうかをチェックする（ステップＳ１４０２）。直線配置で無いと判定されたカメラについては、補正済みフラグをＴＲＵＥにセットする（ステップＳ１４０３）。以後、各カメラについて処理を実行する。補正済みフラグがＦＡＬＳＥのカメラについて、直線配置を構成する３台のカメラ位置を直線近似した基準直線ｐを算出する（ステップＳ１４０４、Ｓ１４０５）。算出した基準直線ｐに対して各カメラ位置から下ろした垂線の足を求め、得られた３点のうち中央の点Ｑに対応する補正対象カメラを選択する（ステップＳ１４０６）。具体的には、点Ｑと補正対象カメラの位置を結んだ直線上で、補正対象カメラ位置から予め定めた距離ｒの２点のうち、基準直線ｐから遠い方の点を選択して更新後の位置を決定する（図１５）。距離ｒは、カメラアレイを構成するカメラ間の間隔によって異なるが、例えばカメラ間隔が平均１ｃｍだった場合、０．００１ｍｍ（０．１％）単位で位置を更新する。
直線配置を構成する３台のカメラについて、補正済みフラグをＴＲＵＥにした後、補正対象カメラの位置を更新する（ステップＳ１４０７、Ｓ１４０８）。全てのカメラの補正済みフラグがＴＲＵＥになった場合、処理を終了する（ステップＳ１４０９）。
ステップＳ１２０１におけるカメラの初期配置には、例えば図１で示したような格子状配置とすることが考えられる。しかしながら、１回目の直線配置判定で全てのカメラがカメラ位置更新処理の対象となってしまうので効率が良いとはいえない。初期位置をランダムに配置することも考えられるが、カメラアレイ上におけるカメラの分布が一様にならない上、カメラ位置更新処理対象のカメラが少なくなるという保障は無い。そこで、ブルーノイズマスクを利用して初期位置を決定することが考えられる。ブルーノイズマスクは、巨大なサイズ（例えば、２５６×２５６）のディザ行列であり、この行列を構成する全ての数について、その数以下の数を持つ要素が一様に散らばるという特性がある。また、同じ数が存在する場合、これらがほぼ等距離になるように配置される。したがって、カメラアレイを構成するカメラ台数分の要素数になるような濃度を設定し、その結果選ばれる要素をカメラの初期位置として設定することが考えられる。初期位置をブルーノイズマスクによって決定することで、乱数とは異なりカメラの分布が一様になる上、格子状配置とは異なり直線配置になりにくくなるので収束が速くなるという利点がある。
以上で説明した方法を用いて決定したカメラ配置のカメラアレイを用いることで、カメラアレイを構成するカメラの位置を動的に変更できない場合でも、高精度な距離マップを生成し好適な出力画像を得ることが可能になる。また、カメラ位置を決定する処理において、初期配置をブルーノイズマスクによって決定することで、少ない時間で適切なカメラ配置を決定することができるようになる。
【実施例３】
【００３２】
実施例２では、カメラアレイを構成する全てのカメラについて、直線配置にならないようにする方法について述べた。しかしながら、スタジオ撮影など、最大撮影距離が限定されている場合には、必ずしも全てのカメラについて直線配置を回避しなくてはならないという訳ではない。問題となるのは、重複する撮影領域を持つカメラ群において、このカメラ群に含まれるカメラが直線配置になる場合である。つまり、最大撮影距離が限定されているような状況においては、局所的に直線配置を回避すれば良いので、カメラ全体で最適化する必要は無い。
そこで、本実施例では、直線配置判定を行うカメラを、対象カメラと重複する撮影領域を持つカメラ群に限定する。処理の流れ自体は、図１２で示したものと同様であるので、詳細な説明は省略する。このような処理を行うことで、より少ない時間で適切なカメラ配置を決定することが可能になる。
【実施例４】
【００３３】
カメラアレイには、図１に示したような小さいサイズのカメラアレイではなく、例えばイベント会場の天井に多数のカメラを配置して構成するような大規模なものも考えられる。このような大規模なカメラアレイの場合には、実施例１のようにカメラの位置を動的に変えるのはコストの面から難しかったり、実施例２や実施例３のように不規則な配置にするのは設置が難しくなったりするという問題がある。
そこで本実施例では、このような状況における直線配置の回避方法について説明する。
図１６（ａ）は、会場の見取り図の一例である。ここで、主な被写体は会場の床、手すり、および観客（不図示）となる。このような場合、実施例３で述べたように、最大撮影距離がカメラ設置位置から床面までの距離で制限されているので、直線配置を回避しやすい。
課題で述べたような問題が生じるのは、主に会場に設置された手すりであるので、この手すりに対して直線状配置を回避すれば良いということになる。そこで、手すりに平行にならないように、図１６（ｂ）に示したような配置にすることが考えられる。図１６の配置は格子状配置と似ているが、手すりに対して平行に配置されるカメラが無いという点で異なる。また、規則的な配置になっているので設置作業が簡単で、設置精度を向上させることができる。
このような配置にすることで、手すりの形状を正しく取得することが可能になるだけでなく、設置コストを大幅に低減することが可能になる。  また、上記実施例では、デジタルカメラの画象処理部にて上記処理（図９、図１０）を行ったが、以下の処理を実行することによっても実現することができる。上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）が、プログラムを読み出して実行することにより、デジタルカメラから取得した画像データに対して画像処理を行うようにしても構わない。
【図１】
0005456020.tif 000005
【図２】
0005456020.tif 000006
【図３】
0005456020.tif 000007
【図４】
0005456020.tif 000008
【図５】
0005456020.tif 000009
【図６】
0005456020.tif 000010
【図７】
0005456020.tif 000011
【図８】
0005456020.tif 000012
【図９】
0005456020.tif 000013
【図１０】
0005456020.tif 000014
【図１１】
0005456020.tif 000015
【図１２】
0005456020.tif 000016
【図１３】
0005456020.tif 000017
【図１４】
0005456020.tif 000018
【図１５】
0005456020.tif 000019
【図１６】
0005456020.tif 000020