(57)【要約】【課題】複数のカメラの画像を用いて、一定の大きさの開口を持つ光学系からなる仮想カメラで撮像したかのような画像を合成する場合、各カメラの向きと画角を最適に制御することで、制御を行わない場合に比べて画質を向上させること。【解決手段】撮像素子共役面６０２と入射瞳６０６とを通るように各カメラを制御することで、効率よく光線情報を取得できる。実際の多眼カメラは、アレイ上に並んでおり三次元的に向きを変えるため、射瞳６０６と撮像素子共役面６０２とを制御情報を求めたいカメラに透視投影して得られる形状の共通部分を求め、これを覆うことができる最小の画角を評価値として算出し、算出された評価値が小さくなるようカメラの回転量を最適化することで制御情報を求めれば良い。【選択図】図７
2012227700.tif 000002
【特許請求の範囲】
【請求項１】
入射瞳形状および撮像素子共役面形状により規定される仮想的な撮像系の特性を有する撮像装置の画像を処理する情報処理装置であって、
複数の撮像手段の各々が撮像する範囲を制御する複数の制御手段
を備え、
前記制御手段は、前記複数の撮像手段の各々が撮像する範囲を、前記入射瞳形状を有する前記仮想的な撮像系の入射瞳と、前記撮像素子共役面形状を有する前記仮想的な撮像系の撮像素子に共役な面とを、ともに通過する光線の量を、より大きくなるよう制御することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、各撮像手段の被写体に対する画角と方向とを制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ユーザーから入射瞳形状および撮像素子共役面形状を設定するパラメータを受信する受信手段をさらに備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記仮想的な撮像系の合焦距離を前側焦点から無限遠焦点まで変化させたときの各撮像素子共役面形状について、前記入射瞳形状を有する前記仮想的な撮像系の入射瞳と、前記撮像素子共役面形状を有する前記仮想的な撮像系の撮像素子に共役な面とを、ともに通過する光線の量を、より大きくなるよう制御することを特徴とする請求項１ないし３のいずれかに記載の情報処理装置。
【請求項５】
前記仮想的な撮像系の合焦距離を変化させたときに前記仮想的な撮像系の撮像素子に共役な面が描く軌跡の形状を設定する撮像素子共役面軌跡形状設定手段をさらに備えたことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
入射瞳形状および撮像素子共役面形状により規定される仮想的な撮像系の特性を有する撮像装置の画像を処理する情報処理装置であって、
複数の撮像手段の各々が撮像する範囲を制御する複数の制御手段と
を備え、
前記制御手段は、前記複数の撮像手段の各々が撮像する範囲を、前記入射瞳形状を有する前記仮想的な撮像系の入射瞳と、前記撮像素子共役面形状を有する前記仮想的な撮像系の撮像素子に共役な面とを、ともに通過する光線のうち、前記複数の撮像手段の各々が撮像する領域に含まれない光線がより少なくなるよう制御することを特徴とする情報処理装置。
【請求項７】
前記制御手段は、各撮像手段の被写体に対する画角と方向とを制御することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
ユーザーから入射瞳形状および撮像素子共役面形状を設定するパラメータを受信する受信手段をさらに備えたことを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
前記制御手段は、前記仮想的な撮像系の合焦距離を前側焦点から無限遠焦点まで変化させたときの各撮像素子共役面形状について前記入射瞳形状を有する前記仮想的な撮像系の入射瞳と、前記撮像素子共役面形状を有する前記仮想的な撮像系の撮像素子に共役な面とを、ともに通過する光線のうち、前記複数の撮像手段の各々が撮像する領域に含まれない光線がより少なくなるよう制御することを特徴とする請求項６ないし８のいずれかに記載の情報処理装置。
【請求項１０】
前記仮想的な撮像系の合焦距離を変化させたときに前記仮想的な撮像系の撮像素子に共役な面が描く軌跡の形状を設定する撮像素子共役面軌跡形状設定手段をさらに備えたことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
コンピュータを請求項１から１０のいずれか１項に記載の情報処理装置の制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のカメラにより撮像した画像を用いて、仮想視点画像を合成する情報処理装置およびプログラムに関するものである。
【背景技術】
【０００２】
従来、デジタルカメラによる撮影で取得できる画像の分解能、ノイズ、ボケ味、画角、視点などは、撮像に用いるデジタルカメラの光学系や撮像素子の特性と配置によって、その取り得る範囲が制限されていた。これに対して、複数のカメラにより撮像した複数の画像を用いて、単一の仮想カメラで撮像したかのような画像を合成し、個々のカメラの前述の制限を超えるような画像の取得を可能にする技術が存在する（例えば、特許文献１および非特許文献１参照）。
【０００３】
特許文献１記載の方法では、複数のカメラにより撮像を行い、取得した画像間の対応関係に基づいて仮想カメラ視点の画像を合成する。この時、仮想カメラの視野をカメラの台数に基づいて分割し、各分割視野を必ず2台のカメラがカバーするように、その画角と向きを制御することで、分解能を維持したまま仮想カメラの画角を広くすることが可能となる。また、非特許文献１記載の方法では、複数のパンフォーカスに近いカメラで撮像した画像を合成することで、一定の大きさの開口を持った（ボケの生じる）光学系からなる仮想カメラで撮像したかのようなボケ味のある画像を取得することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−８００１５号公報
【非特許文献】
【０００５】
【非特許文献１】A． Isaksen et al．， “Dynamically Reparameterized Light Fields”， ACM SIGGRAPH， pp． 297-306 (2000)
【非特許文献２】Z． Zhang “A flexible new technique for camera calibration” IEEE Transactions on Pattern Analysis and Machine Intelligence， 22(11):1330-1334， 2000
【非特許文献３】佐藤淳(1999)． コンピュータビジョン -視覚の幾何学- コロナ社 p80-96，149-156
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の方法では、前述の制限を超えるような画像のうち画角を広くすることは可能だが、画面全体に焦点があった画像しか得られず、有限な大きさの瞳をもつカメラで撮像したかのようなボケ味を再現することができない。また、視差画像間の対応点の関係に基づいて仮想カメラの画像を合成するため、被写体ぶれまたは透明被写体若しくはコントラストの低い被写体の撮影などでは、合成に失敗する可能性がある。
【０００７】
一方、非特許文献１記載の方法では、一定の大きさの開口を持った光学系からなる仮想カメラで撮像したかのような画像を再現することができ、被写体ぶれまたは透明被写体若しくはコントラストの低い被写体の撮影などにおける合成の失敗もない。しかしながら、仮想カメラの開口の大きさの変更に伴い、各カメラが撮像する範囲に過不足が生じるため、分解能、ノイズ、ボケ味の自然さといった画質面の特性が劣化するという問題がある。
【０００８】
本発明の目的は、非特許文献1のように複数のカメラの画像を用いて、一定の大きさの開口を持つ光学系からなる仮想カメラで撮像したかのような画像を合成する場合、各カメラの向きと画角を最適に制御することで、より高い画質を得る手段を提供することにある。
【課題を解決するための手段】
【０００９】
このような課題を解決するため、本発明の情報処理装置は、入射瞳形状および撮像素子共役面形状により規定される仮想的な撮像系の特性を有する撮像装置の画像を処理する情報処理装置であって、複数の撮像手段の各々が撮像する範囲を制御する複数の制御手段を備え、制御手段は、複数の撮像手段の各々が撮像する範囲を、入射瞳形状を有する仮想的な撮像系の入射瞳と、撮像素子共役面形状を有する仮想的な撮像系の撮像素子に共役な面とを、ともに通過する光線の量を、より大きくなるよう制御することを特徴とする。
【発明の効果】
【００１０】
本発明は、複数のカメラの画像を用いて、一定の大きさの開口を持つ光学系からなる仮想カメラで撮像したかのような画像を合成する場合、各カメラの向きと画角を最適に制御することで、制御を行わない場合に比べて画質を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１である複数のカメラからなる撮像装置の一例を模式図である。
【図２】実施例１の撮像装置の構成を表すブロック図である。
【図３】撮像部の構成の例を表すブロック図である。
【図４】デジタル信号処理部の構成例を表すブロック図である。
【図５】実施例１の撮像装置による撮影時の手順を表すフローチャートである。
【図６】カメラにおいて画像に寄与する光線と寄与しない光線について説明する図である。
【図７】実施例１の撮像装置における各カメラの最適な向きと画角について説明する図である。
【図８】実施例１の撮像装置における御情報算出方法の説明に付随する、各座標軸と撮像素子共役面、入射瞳の位置関係を示した図である。
【図９】実施例１の撮像装置における制御情報算出部の構成を示すブロック図である。
【図１０】実施例１の撮像装置における制御情報算出の手順を表すフローチャートである。
【図１１】画像の座標軸と画像サイズ、光学中心の関係を示した図である。
【図１２】本実施例の画像合成の方法における、各座標軸と撮像素子共役面の位置関係を示した図である。
【図１３】本実施例の各カメラ座標軸と世界座標軸の関係を示す図である。
【図１４】実施例２の撮像装置における各カメラの最適な向きと画角について説明する図である。
【図１５】実施例２の撮像装置における御情報算出方法の説明に付随する、各座標軸と撮像素子共役面、入射瞳の位置関係を示した図である。
【図１６】実施例２の制御情報算出部の構成を示すブロック図である。
【図１７】実施例２の撮像装置における制御情報算出の手順を表すフローチャートである。
【発明を実施するための形態】
【００１２】
［実施例１］
＜撮像装置の全体構成＞
図１は、本発明における実施例１である複数のカメラを備えた撮像装置の模式図である。カメラボディ101の、(a)が前面の図であり、(b)が背面の図である。カメラ105ないし129は、前面（ａ）に格子状に配置されている。カメラボディ101には、撮影ボタン102、ディスプレイ103および操作ボタン104が配置してある。操作ボタン104およびディスプレイ103を用いて撮影に関する種々の設定を行い、撮影ボタン102を押下することで、カメラ105〜129による撮像が行われる。取得した複数の画像を用いて画像合成を行った結果は、ディスプレイ103に１枚の画像として表示される。以降このような複数のカメラからなる撮像装置を多眼カメラと呼ぶ。
【００１３】
図２は、図１の多眼カメラの各処理部を表している。撮像部201〜225は、図１のカメラ105〜129のそれぞれの撮像部に相当し、各々バス226を介して受信した制御情報と撮像指示とに基づいて撮像を行い、取得した画像データをバス226に出力する。
【００１４】
図３を用いて撮像部201〜225を詳細に説明する。撮像部201〜225は各々、制御部301、A/D変換部302、バッファ303、撮像素子304、シャッター305、レンズ306、開口絞り307、レンズ308、カメラ方向駆動部309、レンズ駆動部310およびレンズ駆動部311より構成される。レンズ306、絞り307およびレンズ308は光学系を構成し、撮影対象の被写体の像を結像する。結像した像は、撮像素子304によって電気信号に変換され、A/D変換部302によってデジタル画像データに変換される。変換されたデジタル画像データは、バッファ303に格納される。格納されたデータは、バス226を介して適宜読みだされる。制御部301は、バス226を介して撮像の指示を受け取ることで、シャッター305を開閉して撮像素子304を制御し撮像を実行する。
【００１５】
また、カメラ方向駆動部309は、カメラの向きを変える機械装置であり、後述するように最適な光軸の方向に光学系を向ける。レンズ駆動部310、311はレンズの光軸方向の位置を変える機械装置であり、2枚のレンズと撮像素子との位置関係から、ピント位置と焦点距離をコントロールする。各駆動部309〜311はそれぞれ図示しないモーターなどによって駆動され、その駆動量は、バス226を介して受け取ったピント位置、画角、カメラ向きの情報に基づいて、制御部301によって制御される。
【００１６】
CPU229は、各構成の処理全体を制御するプロセッサであり、 ROM227やRAM228に格納された命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ROM227とRAM228は、その処理に必要なプログラム、データ、作業領域などをCPU229に提供する。
【００１７】
表示部231は一般的には液晶ディスプレイが広く用いられており、例えば図１に示すようなカメラボディ１０１の背面ディスプレイ103などを使用することができる。表示部２３１は、表示制御部230により制御され、CG生成部235や後述の画像合成部240から受け取った文字や画像の表示を行う。
【００１８】
操作部232は、ボタンやダイヤルなどを用いることができ、例えば図１の操作ボタン104、撮影ボタン102などである。ＣＰＵ２２９は、これらの操作部２３２を介してユーザー指示を受け取る。後述する合成や撮像についてのパラメータ設定は、ROM227、RAM228、CPU229、表示制御部230、表示部231、操作部232およびCG生成部235などが連携することで実現されるユーザーインターフェースを介して行われる。外部メモリ制御部233は、PCその他メディア234（例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリ）に接続してデータの入出力をするためのインターフェースである。外部メモリ制御部233は、CPU229から出力指示を受け取ることで、RAM228に格納されているデータなどを外部のＰＣその他メディアに出力する。
【００１９】
CG生成部235は、ユーザーインターフェースを実現するための文字やグラフィックなどを生成する。デジタル信号処理部236は各撮像部から得られたデジタル画像データに対して、ノイズ低減処理、ホワイトバランス処理、色変換処理、ガンマ処理を施す。デジタル信号処理部２３６の構成を図４に示す。撮像部201〜225によって撮像し取得したままのデジタル画像データに対しては、画素値を輝度に比例する出力とし、撮像素子依存のノイズを低減することで、物理的に忠実になるようデータに変換を施す。また、画像合成後の画像は、好ましい画質になるよう調整する。
【００２０】
圧縮・伸張部237は、撮像し信号処理を施した画像や、画像合成により生成した画像をJpegやMpegなどのファイルフォーマットに変換する処理を行う。制御情報算出部238はユーザーにより設定されたパラメータに基づいて、撮像部201〜225の画角、向きの制御情報を算出する。画角と向きの制御情報の算出方法、およびパラメータについては後で詳述する。
【００２１】
キャリブレーション部239は、制御情報算出部238によって算出された制御情報や、撮像部201〜225によって撮像され、デジタル信号処理部236により信号処理を施された画像に基づいて、各カメラの個々の内部パラメータを算出する。同様に、キャリブレーション部239は、制御情報や、信号処理を施された画像に基づいて、各カメラの個々の外部パラメータの算出を行う。また、画像の歪曲の補正もキャリブレーション部239にて行う。画像合成部240は撮像部201〜225によって撮像され、デジタル信号処理部236により信号処理を施された画像を、ユーザーにより設定されたパラメータに基づいて合成し、仮想カメラによって撮像したかのような画像を生成する。なお、実際の装置の構成要素は上記以外にも存在するが、本件発明を明瞭に説明するため、その説明を省略する。本件発明の撮像装置は、撮像部201〜225および制御情報算出部238に特徴がある。
【００２２】
＜撮影時の処理の流れ＞
図５は、多眼カメラによる撮影時の全体の処理の流れを示すフローチャートである。各処理のうち、本件発明に特徴的な処理である、ステップＳ５０２の制御情報の算出およびステップＳ５０７のキャリブレーションについては、後に詳述する。まず、ステップS501にてユーザーによりパラメータの設定が行われる。パラメータとは合成や撮像の際の挙動を制御する基礎となる数値であり、後で詳述する。パラメータの設定はROM227、RAM228、CPU229、表示制御部230、表示部231、操作部232およびCG生成部235などが連携することで実現されるユーザーインターフェースを介して行われる。
【００２３】
設定されたパラメータは、バス226を介してRAM228に格納される。ステップS502では設定されたパラメータに基づいて、各カメラの制御情報の算出が行われる。すなわち、パラメータの設定が終わると、制御情報算出部238が、RAM228よりパラメータを読み出して、各カメラを制御するための値を算出し、RAM228に格納する（後述の制御情報の算出）。ステップS503では、算出された制御情報に従って各カメラの制御を行う。すなわち、バス226を介して撮像部201〜225の制御部301に制御情報が渡され、それぞれ受け取った値に基づいてカメラ方向駆動部309並びにレンズ駆動部310および311を制御する。制御情報に基づいて制御が完了した時点で、撮像可能な待ち受け状態となる。
【００２４】
ステップS504では、ユーザーによる撮像の指示を、操作部232を介してユーザーから受ける。撮像の指示は、受け取られるとバス226を介して撮像部201〜225の制御部301に伝達される。撮像の指示が伝達されると、S505では撮像の実行が行われる。すなわち、制御部301により、撮像素子304のリセット、シャッター305の開、シャッター305の閉および撮像素子304からの画像信号の読み出しという順に制御が行われる。読み出された信号は、A/D変換部302によりデジタル化され、バッファ303へ格納して撮像の処理は終了する。
【００２５】
ステップS506で、デジタル信号処理部236は、撮像部201〜225の各々のバッファ303から画像データを読み出し、デジタル信号処理を行ってRAM228に格納する。S507で、キャリブレーション部239は、RAM228に格納された制御情報と、画像データとに基づいて各カメラのキャリブレーション処理を行うとともに各カメラの内部パラメータおよび外部パラメータを求める。キャリブレーションの結果によって歪曲補正された画像並びにキャリブレーションにより求めた各カメラの内部パラメータおよび外部パラメータは、RAM228に格納される。
【００２６】
ステップS508で画像合成部240は、RAM228に格納されたパラメータ、歪曲補正済み画像並びに各カメラの内部パラメータおよび外部パラメータに基づいて、仮想カメラ画像の合成を行う。合成された画像はRAM228に格納される。ステップS509でデジタル信号処理部236は、RAM228に格納された合成画像に対して画像処理を行う。ステップS510で圧縮・伸張部237は、RAM228に画像処理済みの合成画像の圧縮を行い、圧縮された画像はRAM228に格納される。ステップS511で外部メモリ制御部233は、圧縮済みの画像を外部メモリに保存する。ステップS512で、合成画像を、表示制御部230を介して表示部231に表示する。
【００２７】
＜制御情報算出の概要＞
ユーザーにより設定されたパラメータに従って、制御情報算出部238にて多眼カメラを構成する各カメラの画角と向きを制御するための情報、すなわち制御情報の算出について以下に詳述する。ここではまず説明を簡単にため、実際は３次元で行われる処理を2次元で説明する。
【００２８】
本発明では、仮想的な撮像系を仮定し、その撮像系で撮像したかのように画像を合成する際の画質が最良となる、多眼カメラを構成するように各カメラの制御を行う。実際のカメラは、種々の特性のレンズ、絞り、シャッターおよび撮像素子などを様々に組み合わせて構成され、結果極めて多様な種類が存在するが、本実施例では撮像部として共通する属性により仮想的な撮像計を特定する。すなわち、例えば種々のレンズを組み合わせた複数のカメラがあったとしても撮像系として設定された属性が同じであれば、異なるレンズの組合せを使用したとしても光学系としては同一として考えるのである。このように設定された属性がパラメータであり、仮想的な撮像系を表現する情報となる。したがって、画質を最良とするためには、仮想的な撮像系で撮像した場合の画像に寄与する光線を過不足のなく取得するように各カメラを制御するためのパラメータが必要になる。
【００２９】
図６を用いて、仮想的な撮像系で撮像した場合の画像に寄与する光線について説明する。この撮像系はカメラのレンズに相当する光学系612と、撮像素子に相当する撮像素子面601とからなる。すなわち、光学系612は、実際のカメラではレンズ603、604や、開口絞り605などの構成要素からなる。光学系の性質は、前側焦点609、後側焦点608、前側主点611、後側主点612、入射瞳606および射出瞳607で表すことができる。光学系の特性として影響を与えるのは、この各点および各瞳であり、どのような点と動を選択するかが決定すれば、実際の光学系の構造としては本実施例以外の構造であっても構わない。さらに、撮像素子面６０１、焦点６０８、６０９、主点６１１、６１２から撮像素子面601に共役な面として、撮像素子共役面602を求めることができる。この撮像系で撮像した場合に画像に寄与する光線の条件は、屈折されながら開口絞り605を通過し撮像素子面601に到達するというものである。換言すると、撮像素子共役面602と入射瞳606を通るような直線が、この撮像系で撮像した場合に画像に寄与する光線ということになる。
【００３０】
図６においては、光線A 613は入射瞳606を通るが、撮像素子共役面602を通らないため、撮像素子面601上に到達しない。光線B 614は撮像素子共役面602を通るが入射瞳606を通らないため、開口絞り605によって遮られてしまう。光線C 615は撮像素子共役面602、入射瞳606を共に通るので撮像素子面601上に到達する。したがって、入射瞳および撮像素子共役面という2つの平面図形を通ることが、合成画像を作成する場合に寄与することとなる光線の条件である。つまり、ユーザーにより設定されるパラメータとは、本質的には仮想カメラ入射瞳の形状と位置、仮想カメラ撮像素子共役面の形状と位置に関する情報である。実際のシステムではこのような情報は直感的に理解しにくいので、ユーザーにも理解しやすいような項目を選択させる。例えば、撮像素子の形状、ピント位置、焦点距離、F値、仮想カメラに用いる仮想的なレンズの種類などとしてユーザーに示し、このような情報からパラメータを算出するようにしてもかまわない。
【００３１】
図７を用いてカメラの制御方法を概念的に説明する。前述の撮像する画像に寄与する光線の条件より、図７に示すように撮像素子共役面６０２と入射瞳６０６とを通るように各カメラを制御することで、効率よく光線情報を取得できる。つまり、あるカメラの位置をr、撮像素子共役面６０２の端部の位置をf1、f2、入射瞳６０６の端部の位置をp1、p2、カメラの画角をα、カメラのx軸からの角度をβとすると、式（１）および式（２）のような関係になる。なお、ここではx軸方向の単位ベクトルをe1、y軸方向の単位ベクトルをe2とする。
【００３２】
【数１】
2012227700.tif 000003
【００３３】
【数２】
2012227700.tif 000004
【００３４】
従って、各カメラで効率よく光線情報を取得するためには、各カメラについて以下の式（３）および式（４）で求められる画角αと向きβとなるように制御すれば良い。
【００３５】
【数３】
2012227700.tif 000005
【００３６】
【数４】
2012227700.tif 000006
【００３７】
実際の多眼カメラは、アレイ上に並んでおり三次元的に向きを変えるため、式（３）、式（４）ように単純にはカメラの画角や向きの最適値を求めることはできない。この場合、まず、入射瞳６０６と撮像素子共役面６０２とを制御情報を求めたいカメラに透視投影して得られる形状の共通部分を求める。そして、これを覆うことができる最小の画角を評価値として算出し、算出された評価値が小さくなるようカメラの回転量を最適化することで制御情報を求めれば良い。この点を図８を用いて説明する。制御情報を求めようとするカメラの光学中心の位置をtとし、長方形の撮像素子６０１上の座標軸を辺に沿ってu軸，v軸とする。多眼カメラの世界座標の軸をx軸，y軸，z軸とし、初期状態ではu軸とx軸、v軸とy軸が平行になっているとする。ここで、対象としているカメラ方向駆動部が、光学中心位置を保ったまま、y軸周りの回転θ、z軸周りの回転φによってカメラの向きを変えられる機構とすると、距離1の平面上への透視カメラ行列Mpは式（５）のようになる。
【００３８】
【数５】
2012227700.tif 000007
【００３９】
【数６】
2012227700.tif 000008
【００４０】
【数７】
2012227700.tif 000009
入射瞳形状、撮像素子共役面形状を多角形で表すとし、それぞれの３次元空間上でのN個の頂点の斉次座標をpn、fnと置く。このとき、距離1の平面上に透視投影したときの２次元座標 (pu n ， pv n)、(fu n ， fv n)は、式（８）のようになる。
【００４１】
【数８】
2012227700.tif 000010
【００４２】
共通部分を求めて多角形として表したときのＮ’個の頂点を(cu n ， cv n)とし、撮像素子のu軸方向と、v軸方向の大きさをsu、svとすると最小化すべき評価値Eは式（９）のようになる。
【００４３】
【数９】
2012227700.tif 000011
【００４４】
Eを最小化するθとφが回転角度の最適値であり、この時のEをEminとするとu軸方向の画角αu、v軸方向の画角αvそれぞれの最適値は式（10）のようになる。
【００４５】
【数１０】
2012227700.tif 000012
【００４６】
最小化の方法はランダムに回転角度を変えながら、距離1の平面上に置いた(cu n ， cv n)の射影変換を繰り返し、評価値を最小化する回転角度を探索する方法などを用いることができる。
【００４７】
なお、本実施例で示したカメラの動き方は一例であり、パラメータの取り方は実施時の機械的機構に即して設定すれば良く、本実施例はそれを限定するものではない。また、各カメラの向きと画角は、入射瞳と撮像素子共役面とを通過する光線をとらえ、撮像に寄与する光線情報を取得できるよう設定されていればよく、本実施例１はその算出方法を限定するものではない。また、各カメラの向きを変えるかわりに、撮像素子とレンズの相対位置を光軸と垂直方向に変化させることで光学中心をずらし、撮像の範囲を変える構成としてもかまわない。
【００４８】
＜制御情報算出部の構成＞
図９を用いて制御情報算出部238の構成について説明する。制御情報算出部238はバス226と接続されており、バス226を介してRAM 228に格納された情報を取得する。入射瞳形状設定部901は、RAM228から取得した仮想的な撮像系を表現するようなパラメータに基づいて、入射瞳形状の三次元形状を設定する。パラメータによる入射瞳の設定方法の一例としては、パラメータごとにあらかじめ入射瞳形状がわかっている仮想的撮像系をＲＯＭ２２７にIDと関連付けて格納しておく方法がある。このようにして格納しておいて、ROM227に格納された入射瞳形状からパラメータに合致するものを読み込む方法などがある。他にも多眼カメラに対する仮想撮像系の位置、仮想撮像系内での入射瞳の位置、大きさなどをパラメータとし、多眼カメラの座標での入射瞳形状に変換するなどの方法もある。
【００４９】
撮像素子共役面形状設定部902は、仮想的な撮像系を規定するパラメータをRAM228から取得し、撮像素子共役面の三次元形状を設定する。パラメータとしては仮想的な撮像系を識別するIDと合焦距離とを用いて撮像素子共役面を算出しても良い。また、多眼カメラに対する仮想撮像系の位置、仮想撮像系の撮像素子サイズ、焦点距離、主点位置、合焦距離などをパラメータとし、撮像素子共役面形状を算出しても良い。本実施例は、仮想的な撮像系を規定するパラメータの表現を限定するものではなく、入射瞳形状および撮像素子共役面形状を取得することができる情報があればどのような表現でもかまわない。
【００５０】
入射瞳形状射影部903は、まず、予めキャリブレーションを行って求めてある、制御情報を算出する対象であるカメラの外部パラメータ(位置、姿勢)をRAM228から読み込む。そして、読み込んだ対象カメラの位置、姿勢を用いて入射瞳形状設定部901で設定された入射瞳形状を射影する。撮像素子共役面射影部904は、まず、予めキャリブレーションで求めてある、制御情報の算出対象のカメラの外部パラメータをRAM228から読み込む。そして、読み込んだ対象カメラの位置、姿勢を用いて入射瞳形状設定部902で設定された撮像素子共役面形状を射影する。
【００５１】
共通部分形状算出部905は、入射瞳形状射影部903と撮像素子共役面形状射影部904とによって求めた2次元形状の共通部分形状を算出する。最適制御値算出部906は、共通部分形状算出部905で求めた共通部分形状と、RAM228から読み込んだカメラの外部パラメータとを用いて、カメラの最適な画角と向きを算出する。以上の構成により行われる制御情報算出処理の流れを以下に説明する。
【００５２】
＜制御情報算出処理の流れ＞
図１０を用いて制御所法算出処理の流れについて説明する。ステップS1001では仮想撮像系を規定するパラメータを取得する。あらかじめユーザーにより設定された、仮想撮像系を規定するパラメータは、入射瞳形状設定部901と撮像素子共役面形状設定部902とにより、RAM228から読み込まれる。
【００５３】
ステップS1002では制御情報算出の対象となっているカメラの外部パラメータを取得する。カメラの外部パラメータは、入射瞳形状射影部903、撮像素子共役面形状射影部904および最適制御値算出部906により、RAM228から読み込まれる。ここで、外部パラメータは、あらかじめキャリブレーション部239により算出され、RAM228内に格納されているが、これに限られない。ステップS1003では入射瞳形状設定部903が、ステップ1001で取得した仮想撮像系を規定するパラメータに基づいて入射瞳形状を設定する。ステップS1004では撮像素子共役面形状設定部904が、ステップ1001で取得した仮想撮像系を規定するパラメータに基づいて撮像素子共役面形状を設定する。
【００５４】
ステップS1005ではステップS1003で設定した入射瞳形状を、ステップS1002で取得したカメラの外部パラメータに従って射影する。射影は上述の式（５）および式（８）によって説明した方法で入射瞳形状射影部903が行う。
【００５５】
ステップS1006では、ステップS1004で設定した撮像素子共役面形状を、ステップS1002で取得した外部パラメータに従って射影する。射影は上述の式（５）および式（８）を用いて説明した方法で撮像素子共役面形状射影部904が行う。ステップS1007では、ステップS1005で求めた射影された入射瞳形状と、ステップS1005で求めた射影された撮像素子共役面形状との共通部分形状を、共通部分形状算出部９０５が算出する。
【００５６】
ステップS1008では最適制御値としてのカメラの向きと画角を、ステップS1007で算出した共通部分形状と、ステップS1002で取得した外部パラメータとを用いて、式（９）および式（１０）を用いて説明した方法で行う。この最適制御値の算出は、最適制御値算出部906が行う。
【００５７】
＜キャリブレーションの処理＞
キャリブレーション部239にて実行するキャリブレーション処理について説明する。ここで、キャリブレーションとは、カメラの内部パラメータ、外部パラメータ、歪曲収差の係数などを求めることである。各カメラが予め決められた位置に高精度に設置され、向きや画角も高精度に制御され、光学系も無収差ないしはあらかじめ求めたテーブルから収差補正が可能ならば、キャリブレーションは必要ない。このような高精度の設置や制御などができない場合、キャリブレーションを行う必要があるが、このような技術は本技術分野で知られたものを使用することができる。
【００５８】
すなわち、例えば非特許文献２に開示されている技術により、カメラの向き・画角の制御後に、既知のパターンが印刷されたチャートを複数回撮影することによって、カメラの内部パラメータ、外部パラメータ、歪曲収差の係数を求めることができる。また、歪曲収差が無視できる場合、非特許文献３に開示されている技術により、3視点以上の画像を撮像することで、チャートを用いなくても内部パラメータを求めることができる。さらに、カメラの向きと相対的な位置も、各カメラ間の基本行列から求めることができる。この場合、カメラの位置はスケールの不定性があるため、任意の2つのカメラの間隔を基準の長さとして用いることで、不定性を解消する。
【００５９】
＜画像合成の処理＞
撮像部201〜224で撮像され、デジタル信号処理部236で処理された複数の撮像画像を、画像合成部240により、あたかも所定のパラメータで規定される仮想カメラで撮像したかのように合成する処理について説明する。ここでは図１に示すような格子状に配列されたカメラ（カメラアレイ）によって得た光線情報から、理想光学系の属性を持つ仮想撮像系で撮像された画像となるよう合成を行う。
【００６０】
図１１に示すように、横倍率をMとすると仮想撮像系においては、撮像素子面６０１上の(x，y)の位置にある画素に入射する光線は、すべて撮像素子共役面６０２上の(x/M，y/M)の位置を通過する。したがって、各カメラによって撮像した画像を撮像素子共役面６０２上に投影したものを重ね合わせて、仮想カメラの画素数に従いサンプリングすることで、仮想撮像系で撮像される画像が得られる。
【００６１】
まず、各カメラによって撮像した画像を撮像素子共役面６０２上に投影する方法について説明する。ここで座標は、x軸、y軸をカメラアレイ面内でそれぞれ撮像素子共役面６０２の横方向と縦方向に平行にとり、z軸を仮想撮像系の光軸上に沿ってカメラアレイから撮像素子共役面６０２に向かってとる。n番目のカメラの横画角をθx n、縦画角をθy n、横画素数をｓx n、縦画素数をｓy n、および画像上の光学中心位置を(cx n，cy n)とすると、内部パラメータ行列Anは式（１１）となる。このとき、画像座標xyを用いると、各パラメータは図１２のように示される。
【００６２】
【数１１】
2012227700.tif 000013
【００６３】
また、各カメラ座標を、x軸が画面左方向、y軸が画面上方向、z軸が光軸方向になるようにとり、世界座標から見た各カメラ座標のx，y，z軸方向の単位ベクトルをそれぞれ、vx n、vy n、vz nとする。このとき、各カメラの位置をtnとすると、各カメラ座標から世界座標への座標変換行列Mnは式（１２）となる。各カメラ座標軸と世界座標軸の関係を図１３に示す。
【００６４】
【数１２】
2012227700.tif 000014
【００６５】
各カメラにおけるある画像座標を(x，y)としたときに、撮像素子共役面上の(x，y)に対応する点の位置を求める。求める点の斉次座標をhn(x，y)は式（１３）となる。
【００６６】
【数１３】
2012227700.tif 000015
【００６７】
ここで、k(x,y)はn番目のカメラにおける画像座標(x，y)を撮像素子共役面上に投影した時の、深度を表す。λは定数倍の不定性を表す係数である。世界座標の原点から撮像素子共役面６０２までの距離をdとすると、式（１４）が成り立つ。
【００６８】
【数１４】
2012227700.tif 000016
【００６９】
この式（１４）を、1/ k(x,y) について解き、Bnを用いて式（１５）のように示す。
【００７０】
【数１５】
2012227700.tif 000017
【００７１】
式（１３）および式（１５）を用いると、撮像素子共役面上に投影された点の座標(u，v)は２次元斉次座標で記述すると式（１６）となる。
【００７２】
【数１６】
2012227700.tif 000018
【００７３】
すなわち、式（１６）に従って射影変換することで、各カメラの画像を撮像素子共役面上に投影することができる。一般に変換対処である画像データは離散的な位置でサンプリングされた画像であるので、射影変換の際にはバイリニア補間や、キュービック補間でデータのない部分を埋める。
【００７４】
次に入射瞳を考慮すると、現実の有限の大きさの瞳を有する光学系では焦点が合わない部分は当然ボケるので、複数の画像を合成して仮想的な撮像系による画像を取得する場合、自然なボケを再現する必要がある。このようなボケを再現するために、本発明では入射瞳を通る光線のみを撮像素子共役面上に重ね合わせる。ここで、図８に示すように入射瞳６０６の形状をM個の点の集まりP=(p1，p2…pm…pM)を直線で繋いだものとして考える（図８ではＭは8）。Pに属する各点を、n番目のカメラから撮像素子共役面６０２上に投影した時の斉次座標Ｐ’nを、Pのn番目のカメラへの透視投影に式（１６）を適用することで、式（１７）が得られる。
【００７５】
【数１７】
2012227700.tif 000019
【００７６】
得られたＰ’nから、n番目のカメラによって撮像素子共役面上に投影されたPに、囲まれた位置では1を、それ以外の位置では0を持つマスクDnを考える。式（１６）に基づいて作った画像をInとすると、合成により得られる画像Iは式（１８）により計算することができる。
【００７７】
【数１８】
2012227700.tif 000020
【００７８】
以上、仮想カメラで撮像したかのような画像を合成する処理について説明したが、本実施例で示した方法は一例であり、本実施例は画像の合成方法を限定するものではない。従って、実施例１によれば、多眼カメラによる複数の画像を合成して有限な大きさの瞳を持つ単一の仮想カメラで撮像したかのような画像を生成することができる。すなわち、多眼カメラを構成する各カメラの向きと画角を最適にすることで、より高画質な仮想カメラ画像を得ることが可能になる。
【００７９】
［実施例２］
実施例１では、仮想カメラ画像においてピントの合っている位置が、撮像時に指定されるものとして、多眼カメラ上の各カメラの向きと画角を最適に制御するものとした。しかしながら、撮像後に仮想カメラのピント位置を指定したいという要求も存在する。本実施例では、撮像後の仮想カメラのピント位置の変更に対応できる範囲での、多眼カメラ上の各カメラの向きと画角を最適に制御するよう処理を行う。
【００８０】
実施例２は実施例１と比較して、図２における制御情報算出部238に差異がある。本実施例では、制御情報算出の方法における実施例１と実施例２の差異を中心に説明する。
【００８１】
撮像後に仮想カメラのピント位置を指定するためには、図１４に示すように撮像素子共役面の位置が前側焦点から無限遠までのどの位置であっても、各カメラが不足なく光線を取得できるように向きと画角を設定する必要がある。撮像素子共役面が前側焦点６０９から無限遠焦点まで変化することを考慮すると、撮像素子共役面の軌跡は無限遠平面と前側焦点６０９からなる四角錐１４０１を形成する。この四角錐１４０１および入射瞳６０６をともに通る光線を捉えられるように、多眼カメラ上の各カメラの向きと画角を制御するための制御情報を、本実施例の制御情報算出部２３８で算出する。
【００８２】
ここで、実施例１では撮像素子共役面形状を多角形６０２で表し、その三次元空間上での頂点の斉次座標をfnと表した。本実施例２ではこれに替えて、無限遠にピントを合わせた際の撮像素子共役面形状１５０１の頂点の斉次座標finf n、および前側焦点６０９の斉次座標fpointを用いる。この時の座標軸と撮像素子共役面および入射瞳６０６頂点の位置関係を図１５に示す。finf n、fpointを式（５）の透視投影行列を用いて透視投影すると、その結果得られる2次元座標(finf u n ， finf v n)、(ff u ， ff v)は式（１９）として求まる。
【００８３】
【数１９】
2012227700.tif 000021
【００８４】
(finf u n ， finf v n)と(ff u ， ff v)の凸包を求めれば、これが画像に寄与する光線が通過する撮像素子共役面軌跡の錐体１４０１を、Z=1の平面上に透視投影した際の図形である。この図形と、式（８）により得られる入射瞳形状の共通部分とを求め、その頂点を（ｃ’ｕ  ｎ  ，  ｃ’v n)と置けば、最小化すべき評価値は式（２０）のようになる。
【００８５】
【数２０】
2012227700.tif 000022
【００８６】
式（２０）に基づいて実施例１における制御情報の算出と同様に、評価値の最小化を行い、最小となるカメラ向きと画角を求めれば、実施例２における最適なカメラ向きと画角を求めることができる。
【００８７】
実施例２における制御情報算出部の構成を図１６に示す。実施例１における制御情報算出部２３８と比較して、撮像素子共役面形状設定部902が撮像素子共役面形状設定部1601に、撮像素子共役面軌跡形状設定部903が撮像素子共役面軌跡形状設定部1602となっている。すなわち、撮像素子共役面軌跡形状設定部1601は、仮想撮像系の合焦距離が焦点から無限遠まで変化することで形成される撮像素子共役面軌跡の立体１４０１を、仮想的な撮像系を表すパラメータから設定する。撮像素子共役面軌跡形状射影部１６０２は、撮像素子共役面軌跡形状設定部1601で設定した軌跡の立体１４０１を射影する。
【００８８】
実施例２における制御情報算出処理の流れを図１７に示す。実施例１における制御情報算出処理と比較して、ステップS1004およびステップS1006が、それぞれステップS1701およびステップS1702となっている。ステップS1701では撮像素子共役面軌跡形状設定部1601が仮想撮像系の合焦距離が焦点から無限遠まで変化することで形成される撮像素子共役面軌跡の立体１４０１を算出する。ステップS1702では、撮像素子共役面軌跡形状射影部1602がステップS1701で設定した立体１４０１を、式（１９）で説明される方法に基づいて射影する。
【００８９】
以上説明したように、実施例２によれば、撮像後に仮想カメラのピント位置の変更を可能にすることができる。すなわち、多眼カメラを構成する各カメラの向きと画角を前側焦点から無限までの範囲の撮像素子共役面で最適になるようにすることで、より高画質な仮想カメラ画像を得ることが可能になる。
【００９０】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、本発明は、複数のプロセッサが連携して処理を行うことによっても実現できるものである。
【図１】
2012227700.tif 000023
【図２】
2012227700.tif 000024
【図３】
2012227700.tif 000025
【図４】
2012227700.tif 000026
【図５】
2012227700.tif 000027
【図６】
2012227700.tif 000028
【図７】
2012227700.tif 000029
【図８】
2012227700.tif 000030
【図９】
2012227700.tif 000031
【図１０】
2012227700.tif 000032
【図１１】
2012227700.tif 000033
【図１２】
2012227700.tif 000034
【図１３】
2012227700.tif 000035
【図１４】
2012227700.tif 000036
【図１５】
2012227700.tif 000037
【図１６】
2012227700.tif 000038
【図１７】
2012227700.tif 000039