(57)【要約】【課題】異なる焦点距離で撮像された画像データを含む複数視点画像データの画像処理において、画角（焦点距離）の異なる画像データを利用することで、高画質な画像や高精度な距離情報などを得る。【解決手段】異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理装置であって、複数視点画像データ中の少なくとも一部の画像データに対して、出力する焦点距離に従って解像度変換を行う解像度変換手段と、前記解像度変換された画像データを用いて、前記出力する焦点距離の合成画像データを生成する画像合成手段と、を備える。【選択図】図５
2013211827.tif 000002
【特許請求の範囲】
【請求項１】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理装置であって、
複数視点画像データ中の少なくとも一部の画像データに対して、出力する焦点距離に従って解像度変換を行う解像度変換手段と、
前記解像度変換された画像データを用いて、前記出力する焦点距離の合成画像データを生成する画像合成手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記少なくとも一部の画像データは、前記出力する焦点距離よりも短い焦点距離で取得された画像データであり、
前記解像度変換手段は、前記短い焦点距離で取得された画像データに対し、拡大を伴う解像度変換を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記少なくとも一部の画像データは、前記出力する焦点距離よりも長い焦点距離で取得された画像データであり、
前記解像度変換手段は、前記長い焦点距離で取得された画像データに対しては縮小を伴う解像度変換を行う、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記画像合成手段は、出力するピント位置の情報に基づいて、前記複数視点画像データに対しフィルタを作用させて、重みづけして加算することにより、前記合成画像データを生成することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記複数視点画像データが、２種類以上の焦点距離を有する、異なる視点からの複数の画像を同時に撮像可能な多眼方式の撮像装置で取得された画像データであることを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記異なる視点からの複数の画像を同時に撮像可能な多眼方式の撮像装置は、異焦点カメラアレイ或いは異焦点Plenopticカメラであることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて被写体までの距離を導出する装置であって、
前記異なる焦点距離で取得された画像間の視差を導出する視差導出手段と、
導出された前記視差に基づいて、被写体までの距離を推定する距離推定手段と
を備えることを特徴とする画像処理装置。
【請求項８】
前記複数視点画像データの中の少なくとも一部画像データに対し、出力する焦点距離に従って解像度変換を行う解像度変換手段をさらに備え、
前記視差導出手段は、前記解像度変換された画像データを用いて視差を導出する
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理装置であって、
第一の焦点距離で取得された画像データを用いて被写体までの距離を推定する距離推定手段と、
推定された前記距離と、前記第一の焦点距離とは異なる第二の焦点距離で取得された画像データとを用いて合成画像データを生成する画像合成手段と、
を備えることを特徴とする画像処理装置。
【請求項１０】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理方法であって、
前記複数視点画像データの中の少なくとも一部画像データに対し、出力する焦点距離に従って解像度変換を行う解像度変換ステップと、
前記解像度変換された画像データを用いて、前記出力する焦点距離の合成画像データを生成する画像合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１１】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて被写体までの距離を導出する画像処理方法であって、
前記異なる焦点距離で取得された画像間の視差を導出する視差導出ステップと、
導出された前記視差に基づいて、被写体までの距離を推定する距離推定ステップと
を含むことを特徴とする画像処理方法。
【請求項１２】
異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理方法であって、
第一の焦点距離で取得された画像データを用いて被写体までの距離を推定する距離推定ステップと、
推定された前記距離と、前記第一の焦点距離とは異なる第二の焦点距離で取得された画像データとを用いて合成画像データを生成する画像合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１３】
コンピュータを請求項１〜９のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数視点の画像データを用いた画像の合成処理に関する。
【背景技術】
【０００２】
これまで、カメラのピント調整を誤って撮像した場合は、ピント調整をやり直して再撮像する必要があった。また、奥行きの異なる複数の被写体に対してそれぞれにピントが合った画像を得たい場合には、被写体毎にピントを合わせた撮像を複数回行う必要があった。
【０００３】
近年、光学系に新たな光学素子を追加することで複数視点からの画像を取得し、後で画像処理によってピント位置を調節すること（リフォーカス）が可能なライトフィールドフォトグラフィという技術が発展している。
【０００４】
この技術を用いれば、撮像後にピント調整を行えるため、撮像時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮像画像から得る事ができ、撮像回数を減らす事ができるという利点もある。
【０００５】
ライトフィールドフォトグラフィでは、複数視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度（ライトフィールド、以下、「ＬＦ」という。）を計算する。そして、得られたＬＦの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、リフォーカスも可能となる。ＬＦに関する数学的性質や数学的基礎などはＲ.ＮＧらによって議論されている（非特許文献１）。以降では複数視点の画像データから仮想のセンサが得る画像データを計算する処理を合成処理と呼ぶ。
【０００６】
ＬＦを取得するための撮像技術としては、小型のカメラ（個眼カメラ）を並べたカメラアレイや、メインレンズの後ろにマイクロレンズアレイを置いたPlenopticカメラが知られている。カメラアレイやPlenopticカメラでは、取得したＬＦから、仮想センサ上の画像データを撮像後に合成することができる。
【０００７】
ＬＦから仮想センサ上の画像を合成する方法として、取得した複数枚の画像データを仮想的なセンサ上に射影変換し加算して平均化する方法が知られている（特許文献１）。
【０００８】
さらに、ズーム機構を搭載することなく、光学相当のズームを行うべく、焦点距離の異なる複数の個眼カメラを混在させた異焦点カメラアレイを用いて撮像し、ズーム時の倍率に合わせて望遠の画像を広角の画像に嵌め込む手法が知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】ＷＯ２００８／０５０９０４
【特許文献２】特開２０１１−５５２４６号公報
【非特許文献】
【００１０】
【非特許文献１】R.NG, M.Levoy, M.Bredif, G.Duval, M. Horowitz, P.Hanrahan,”Light Field Photography with a Hand-held Plenoptic Camera”(Stanford Tech ReportCTSR 2005-02, 2005)
【発明の概要】
【発明が解決しようとする課題】
【００１１】
例えば、特許文献２で示される異焦点カメラアレイで撮像された複数視点画像データにおいてリフォーカスする際に、特許文献１の手法を適用したとする。この場合、画角の異なる個眼カメラで撮像された画像データは利用されないので、出来上がった合成画像は相対的に低画質になってしまう。同様に、異焦点カメラアレイで撮像された複数視点画像データを用いて被写体までの距離を推定する場合も、画角の異なる個眼カメラで撮像された画像データを利用しないと、相対的に低精度になってしまう。
【課題を解決するための手段】
【００１２】
本発明に係る画像処理装置は、異なる焦点距離で取得された画像データを含む複数視点画像データを用いて合成画像データを生成する画像処理装置であって、複数視点画像データ中の少なくとも一部の画像データに対して、出力する焦点距離に従って解像度変換を行う解像度変換手段と、前記解像度変換された画像データを用いて、前記出力する焦点距離の合成画像データを生成する画像合成手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、異なる焦点距離で撮像された画像データを含む複数視点画像データの画像処理において、画角（焦点距離）の異なる画像データを利用することで、高画質な画像や高精度な距離情報などを得ることが可能になる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る撮像装置の主要な構成要素を示す図である。
【図２】撮像部の具体的な例である異焦点カメラアレイを光軸上から見た図である。
【図３】出力画像生成部の内部構成の一例を示す図である。
【図４】被写体までの距離の定義を説明する図である。
【図５】出力画像生成部における処理の流れを示すフローチャートである。
【図６】複数視点画像データの撮像時の様子を示す図である。
【図７】異焦点カメラアレイで撮像された画像の一例を示す図である。
【図８】距離マップの一例を示す図である。
【図９】ユーザが出力焦点距離を指定する際に使用するＵＩ画面の一例を示す図である。
【図１０】本実施例における解像度変換とトリミングによって画角を一致させる様子を説明する図である。
【図１１】使用画像加工処理の流れを示すフローチャートである。
【図１２】トリミングする領域の求め方を説明する図である。
【図１３】画像合成部の内部構成の一例を示す図である。
【図１４】画像合成処理の流れを示すフローチャートである。
【図１５】実施例１におけるマスク画像の一例を示す図である。
【図１６】シフト画像が生成される様子を説明する図である。
【図１７】ピント面の被写体が個眼カメラのセンサ上のどの位置に結像するかを示した図である。
【図１８】実施例１に係る画像合成処理によって生成された合成画像の一例を示す図である。
【図１９】（ａ）は、異焦点カメラアレイで撮像された複数視点画像データに対して本実施例に係る画像処理を行って得られた合成画像の一例、（ｂ）は、同焦点カメラアレイで撮像された複数視点画像データに対し従来技術を適用して得られた合成画像の一例である。
【図２０】実施例２における解像度変換の様子を説明する図である。
【図２１】実施例２におけるマスク画像の一例を示す図である。
【図２２】実施例３に係る出力画像生成部の内部構成の一例を示す図である。
【図２３】フィルタ作用部の内部構成の一例を示す図である。
【図２４】フィルタ作用部における処理の流れを示すフローチャートである。
【図２５】実施例４における画像処理装置の構成要素を示す図である。
【図２６】視差ベクトルの概念図である。
【図２７】画像処理部における処理の流れを示すフローチャートである。
【図２８】実施例４における距離推定の様子を説明する図である。
【図２９】撮像部の具体的な例である異焦点Plenopticカメラの構成を示す図である。
【図３０】Plenopticカメラにおいて、センサにどのように画像が形成されるかを模式的に表した図である。
【発明を実施するための形態】
【００１５】
［実施例１］
図１は、本実施例に係る撮像装置の主要な構成要素を示す図である。
【００１６】
撮像部１０１は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、IRカットフィルタ、カラーフィルタ、及び、CMOSやCCDなどの撮像素子（センサ）などから構成され、被写体の光量を検知する。なお、本実施例における撮像部１０１は、異なる視点から複数の画像を同時に撮像可能な、２種類以上の焦点距離を有する複数の個眼カメラが混在した異焦点カメラアレイである。
【００１７】
Ａ／Ｄ変換部１０２は、撮像部１０１によって検知された被写体の光量をデジタル値に変換し、デジタル信号（デジタル画像データ）を出力画像生成部１０５に送る。
【００１８】
ピント位置決定部１０３は、ユーザからの指示等に基づいて、ピント位置（ピント面）を決定する。
【００１９】
焦点距離設定部１０４は、ユーザからの指示に基づいて、出力する合成画像データの焦点距離（出力焦点距離）を設定する。
【００２０】
出力画像生成部１０５は、受け取ったデジタル画像データに対し、ピント位置情報及び出力焦点距離に基づいて合成処理等を行い、合成画像データを生成する。生成された合成画像データは表示部１０６に出力される。なお、出力画像生成部１０５は、独立した画像処理装置として構成してもよい。
【００２１】
表示部１０６は、合成画像データを表示する。
【００２２】
なお、図１には図示しないが、撮像装置には、上記各部を統括的に制御するＣＰＵ、ＣＰＵで実行される制御プラグラム等を格納するＲＯＭ、ＣＰＵのワークエリア等として機能するＲＡＭが備わっている。さらに、ＣＰＵからの指示に基づき撮像系の制御を行う撮像系制御部や、ユーザが各種の指示を与えるための操作部（ユーザインタフェース）も撮像装置は備えている。
【００２３】
ここで、撮像部１０１について説明する。図２は撮像部１０１の具体例としての異焦点カメラアレイ２００を光軸上から見た図であり、計１６個の個眼カメラ２０１で構成されている。個眼カメラ２０１を表す円の中に記載された記号ｆi(ｉ＝１〜４）は、各個眼カメラ２０１の焦点距離を表しており、ｉの数値が大きい程、焦点距離が長い。ここでは、ｆ1＝３０ｍｍ、ｆ2＝６０ｍｍ、ｆ3＝１００ｍｍ、ｆ4＝１６０ｍｍであるものとする。図２内の破線の囲み２０２については後述する。本実施例では上記ｆ1〜ｆ4までの４種類の異なる焦点距離の個眼カメラを並べた異焦点カメラアレイとしているが、各個眼カメラの焦点距離の長さや種類数はこれに限らない。また、異焦点カメラアレイの構成は図２で挙げたものに限られるわけではなく、焦点距離の種類数に応じて、個眼カメラ２０１の縦横の個数やレイアウト自体（放射状、円形状など）を変えても構わない。
【００２４】
なお、撮像部１０１は、上述した焦点距離の異なる複数の個眼カメラで構成される異焦点カメラアレイに限定されるわけではなく、Plenopticカメラの形態でも構わない。すなわち、２種類以上の焦点距離を有する複数のマイクロレンズが混在した異焦点Plenopticカメラであってもよい。図２９は、Plenopticカメラの構成を示す図であり、光線２９０２がメインレンズ２９０１とマイクロレンズアレイ２９０３を通過してセンサ２９０４に到達する様子を表している。マイクロレンズアレイ２９０３は小型のレンズ（以下マイクロレンズ）を複数枚２次元平面上に配置したものである。図２９では図示の都合上、１次元で表現している。図３０は、上記センサ２９０４にどのように画像が形成されるかを模式的に表した図であり、マイクロレンズアレイ２９０３を構成する各マイクロレンズを通過した光が、円形の像２９０５を形成する様子を示している。
【００２５】
（出力画像生成部）
次に、出力画像生成部１０５の詳細について説明する。
【００２６】
図３は、出力画像生成部１０５の内部構成の一例を示す図である。
【００２７】
出力画像生成部１０５は、距離情報導出部３０１、画像バッファ３０２、使用画像加工部３０３、画像合成部３０４で構成される。以下、各部について説明する。
【００２８】
距離情報導出部３０１は、Ａ／Ｄ変換部１０２から受け取ったデジタル画像データ（複数視点画像データ）を用いて、画像の各画素における被写体までの距離を導出する。ここで、撮像部１０１が図２で示すようなカメラアレイの場合における複数視点画像データは、それぞれの各個眼カメラ２０１で取得された画像データの集合を表すものとする。一方、撮像部１０１が図２９で示すようなPlenopticカメラの場合における複数視点画像データは、それぞれのマイクロレンズで取得された画像データ（図３０の円形の像２９０５に相当する画像のデータ）の集合を表すものとする。
【００２９】
図４は、距離情報導出部で導出される距離の定義を説明する図である。ここでは、図２の破線で囲まれた領域２０２内に含まれる個眼カメラ４０１、４０２、４０３から被写体４０４、４０５、４０６までの距離が示されている。本実施例において、画像中のある特定の被写体までの距離とは、一番焦点距離が短い個眼カメラ（本実施例では焦点距離がｆ1の個眼カメラ）から当該被写体までの光軸方向に測った距離（図４の例では、線分４０７）を指すものとする。ただし、被写体までの距離の定義はこれに限るものではなく、例えば線分４０８のように個眼カメラから特定の被写体までの直線距離を用いてもよい。
【００３０】
被写体までの距離の導出方法としては、例えば、ブロックマッチング等の手法を用いて複数視点画像データにおける複数の画像間の対応点を探索することによって視差の量を求め、その結果を使用して、被写体までの距離を演算する方法が挙げられる。その他、測距センサにより各被写体までの距離を測定してもよい。
【００３１】
画像バッファ３０２は、Ａ／Ｄ変換部１０２から受け取った、視差がついた複数枚の画像のデジタルデータである複数視点画像データを一時的に格納する。
【００３２】
使用画像加工部３０３は、焦点距離設定部１０４で設定された出力焦点距離以下の焦点距離の個眼カメラで撮像された画像データに対し、設定された出力焦点距離に応じて解像度変換、及び画角を合わせるためのトリミングを行う。
【００３３】
画像合成部３０４は、ピント位置情報や出力焦点距離等に基づいて合成処理を行い、合成画像データを生成する。
【００３４】
続いて、出力画像生成部１０５における処理の流れについて説明する。
【００３５】
図５は、出力画像生成部１０５における処理の流れを示すフローチャートである。
【００３６】
ステップ５０１において、出力画像生成部１０５は、複数視点画像データを、不図示の画像データ入力端子を通してＡ／Ｄ変換部１０２から受け取る。受け取った複数視点画像データは、距離情報導出部３０１及び画像バッファ３０２に送られる。図６は、本ステップで受け取る複数視点画像データの撮像時の様子を示す図である。図６の例では、図２の破線囲み２０２内の個眼カメラ４０１〜４０３によって、それぞれ異なる距離にある被写体４０４〜４０６を撮像する様子が示されている。この場合、個眼カメラ４０１及び４０３の焦点距離がｆ1（３０ｍｍ）で、個眼カメラ４０２の焦点距離はｆ2（６０ｍｍ）なので、個眼カメラ４０１及び４０３の焦点距離が個眼カメラ４０２の焦点距離よりも短い（広角）ということになる。図６における破線の線分６０１、６０２、６０３はそれぞれ被写体４０４、４０５、４０６のピント面の位置を示している。図７は、図６の状態で撮像された各画像を示しており、個眼カメラ４０１及び４０３で撮像された画像７０１及び７０３は、個眼カメラ４０２で撮像された画像７０２に比べ広角の画像になっていることが分かる。
【００３７】
図５のフローチャートの説明に戻る。
【００３８】
ステップ５０２において、距離情報導出部３０１は、受け取った複数視点画像データを用いて、各視点から見たときの被写体までの距離を導出し、距離マップを生成する。ここで、距離マップとは、ある視点から見た画像において、画素値の代わりに画素に対応する被写体までの距離値を格納したデータである。図８は、距離マップの一例を示す図であって、個眼カメラ４０２で撮像した時の距離マップ（図７で示した撮像画像７０２に対応する距離マップ）を画像として表したものである。生成される距離マップには実際の距離値が格納されているが、そのことが直感的に理解できるよう距離値を[０，２５５]に正規化して画像として表している。被写体４０４は白、被写体４０５はグレー、被写体４０６は黒で表現されているが、これは、被写体４０４が最も遠く（奥）に存在し、被写体４０６が最も近く（手前）に存在することを表している。すなわち、画素値が小さくなるほど（つまり、暗くなるほど）被写体が手前にあることを表している。なお、この距離マップの例では、被写体４０４より奥の被写体（背景）の距離値が全て被写体４０４の距離に丸められているので、被写体４０４と背景とは共に白で表現されている。
【００３９】
図５のフローチャートの説明に戻る。
【００４０】
ステップ５０３において、ピント位置決定部１０３は、ユーザの指定に基づいて或いは公知の顔認識技術等を用いた所定の自動処理によって、ピント位置を決定する。ステップ５０３で決定されたピント位置の情報は、不図示のピント位置入力端子を介して使用画像加工部３０３及び画像合成部３０４に送られる。
【００４１】
ステップ５０４において、焦点距離設定部１０４は、出力する合成画像データの焦点距離（出力焦点距離）をユーザの指定に基づいて設定する。図９は、ユーザが出力焦点距離を指定する際に使用するＵＩ画面の一例を示している。ＵＩ画面９０１において、ユーザがスライドバー９０２を調節すると表示画像の画角が変化するので、ユーザはそれを確認しながら所望の焦点距離を指定することができる。出力焦点距離は、個眼カメラの焦点距離と同じ値に設定しても良いし、個眼カメラの焦点距離とは異なる値を設定しても良い。また、指定可能な出力焦点距離の範囲は、異焦点カメラアレイを構成する各個眼カメラの焦点距離の範囲と必ずしも一致させる必要はない。例えば、本実施例では個眼カメラの中で最も長い焦点距離のものは１６０ｍｍであるが、バイリニア法などの補間処理もしくは超解像処理（高解像度化処理）を施すことでより長い焦点距離の合成画像データを得ることは可能である。そのため、図９の例では設定可能な出力設定距離の上限を３００ｍｍにしている。ＵＩ画面９０１は一例であって、ユーザが任意の焦点距離を指定できるＵＩであればよく、図９で示したものに限らない。設定された出力焦点距離の情報は、不図示の出力焦点距離入力端子を介して使用画像加工部３０３に送られる。
【００４２】
図５のフローチャートの説明に戻る。
【００４３】
ステップ５０５において、使用画像加工部３０３は、使用画像加工処理を行う。具体的には、まず、設定された出力焦点距離よりも焦点距離が短い個眼カメラの画像データを画像バッファ３０５から読み出し、読み出した画像データに対し解像度変換処理を行う。さらに、使用画像加工部３０３は、解像度変換された画像データに対し画角を一致させるためのトリミングを行う。例えば、図７の撮像画像７０１〜７０３の複数視点画像データに対し、個眼カメラ４０２の焦点距離ｆ2と等しい出力焦点距離ｆoutが設定されたとする。この場合、個眼カメラ４０２よりも焦点距離の短い個眼カメラ４０１及び４０３で撮像された撮像画像７０１、７０３について、個眼カメラ４０２の画角に合うようにトリミングがなされる。図１０は、本実施例における解像度変換とトリミングによって画角を一致させる様子を説明する図である。解像度変換された後、撮像画像７０２と同じ画角範囲となるようにトリミングされた画像１００１及び画像１００２（以下、これらの画像を「変換画像」と呼ぶ。）が示されている。使用画像加工処理の詳細については後述する。
【００４４】
ステップ５０６において、画像合成部３０４は、使用画像加工部３０３で解像度変換された変換画像のデータを用いて、設定された出力焦点距離に従った画像合成処理を行い、合成画像データを生成する。画像合成処理の詳細については後述する。
【００４５】
ステップ５０７において、画像合成部３０４は、生成した合成画像データを、不図示の合成画像データ出力端子を介して表示部１０６に出力して、本処理を終了する。
【００４６】
（使用画像加工処理）
次に、使用画像加工処理の詳細について説明する。ここでは、入力される複数視点画像データが、図２で示す４種類の焦点距離（ｆ1〜ｆ4）の個眼カメラで構成された異焦点カメラアレイ２００で撮像されているものとして説明する。この場合において、各個眼カメラ２０１には焦点距離ｆi毎に通し番号ｍiが付されており、図２に示す異焦点カメラアレイ２０１の場合、通し番号ｍiにおけるｉは１〜４の値をとることになる。但し、出力焦点距離ｆout≧ｆ1である。また、出力焦点距離ｆout以下の焦点距離の個眼カメラの中で、出力焦点距離ｆoutに最も値が近い焦点距離（以下、「近出力焦点距離」と呼ぶ）をｆJとする。
【００４７】
図１１は、使用画像加工処理の流れを示すフローチャートである。
【００４８】
ステップ１１０１において、使用画像加工部３０３は、近出力焦点距離ｆJを設定する。例えば、設定された出力焦点距離ｆoutが１２０ｍｍであった場合は、ｆ3（１００ｍｍ）＜ｆout＜ｆ4（１６０ｍｍ）であるので、近出力焦点距離ｆJ＝ｆ3（１００ｍｍ）に設定される。設定された出力焦点距離ｆoutが２００ｍｍであった場合は、
ｆJ＝ｆ4（１６０ｍｍ）に設定される。
【００４９】
ステップ１１０２において、使用画像加工部３０３は、着目する焦点距離ｆiを設定する。処理開始の段階では、初期値としてｉ＝１（ｆ1：３０ｍｍ）に設定される。 
【００５０】
ステップ１１０３において、使用画像加工部３０３は、着目する焦点距離ｆiと出力焦点距離ｆoutとが等しいかどうかを判定する。判定の結果、等しくない場合はステップ１１０４に進む。一方、等しい場合はステップ１１０８に進む。
【００５１】
ステップ１１０４において、使用画像加工部３０３は、着目する個眼カメラｍiを設定する。処理開始の段階では、初期値としてｉ＝１（ｍ1）に設定される。
【００５２】
ステップ１１０５において、使用画像加工部３０３は、まず、設定されたｍi番目の個眼カメラの撮像画像をｆout/ｆi倍に解像度変換する。解像度変換の方法としては、例えばバイリニア法やバイキュービック法による補間処理を用いた拡大が適用される。もちろん、超解像などその他の手法で解像度変換を行っても構わない。そして、解像度変換された画像の画角範囲をｆoutで撮像した場合と同じになるようトリミングする。図１２は、トリミングする領域の求め方を説明する図である。図１２において、１２０１は座標軸、１２０２は個眼カメラ４０２がカバーする画角範囲、１２０３は個眼カメラ４０３がカバーする画角範囲である。Ｌは個眼カメラ４０２と個眼カメラ４０３との間隔であり、ｄfocusはピント面までの距離である。個眼カメラ４０２の焦点距離がｆ2、対応する画角がθ2、個眼カメラ４０３の焦点距離がｆ1、対応する画角がθ1のとき、画角範囲１２０３の座標範囲は、以下の式（１）で表される。
(-dfocus tan(θ1/2)+L, dfocus tan(θ1/2)+L)        ・・・式（１）
【００５３】
同様に、画角範囲１２０２の座標範囲は、以下の式（２）で表される。
(-dfocus tan(θ2/2), dfocus tan(θ2/2))        ・・・式（２）
【００５４】
よって、撮像画像の画素数をＰとすると、画像をトリミングする際の左端の画素位置は、以下の式（３）で求めることができる。
【００５５】
【数１】
2013211827.tif 000003
【００５６】
同様に、画像をトリミングする際の右端の画素位置は、以下の式（４）で求めることができる。
【００５７】
【数２】
2013211827.tif 000004
【００５８】
ここでは個眼カメラが横一列に並んでいる場合のトリミング範囲の計算法を示したが、縦や斜めにある場合でも、同様に個眼カメラの重心座標からトリミング範囲を導出することが可能である。
【００５９】
図１１のフローチャートの説明に戻る。
【００６０】
ステップ１１０６において、使用画像加工部３０３は、着目焦点距離ｆiのすべての着目個眼カメラについて、解像度変換及びトリミングが完了したかどうかを判定する。具体的な処理としては、例えばｍiが最大値Miよりも小さいかどうかを判定する。ｍi＜Miの場合（着目焦点距離ｆiのすべての着目個眼カメラについて、解像度変換及びトリミングが完了していない場合）であれば、ステップ１１０４に戻り、次の着目個眼カメラ（ｍi+1）を設定する。一方、ｍi＝Miの場合（着目焦点距離ｆiのすべての着目個眼カメラについて、解像度変換及びトリミングが完了した場合）は、ステップ１１０７に進む。
【００６１】
ステップ１１０７において、使用画像加工部３０３は、設定された出力焦点距離ｆout以下のすべての焦点距離ｆiについて処理したかどうかを判定する。具体的には、設定中の着目焦点距離ｆiが、近出力焦点距離ｆJよりも小さいかどうかを判定する。ｆi＜ｆJの場合（出力焦点距離ｆout以下のすべての焦点距離ｆiについて処理が完了していない場合）は、ステップ１１０２に戻り、次の着目焦点距離（ｆi+1）を設定する。一方、ｆi＝ｆJの場合（出力焦点距離ｆout以下のすべての焦点距離ｆiについて処理が完了した場合）は、ステップ１１０８に進む。
【００６２】
ステップ１１０８において、使用画像加工部３０３は、設定された出力焦点距離に応じた合成画像処理に使用する画像データ群（使用画像データ）を、画像合成部３０４に出力する。
【００６３】
例えば、設定された出力焦点距離ｆoutに応じて、以下のような各画像データが、使用画像データとして出力される。
【００６４】
まず、設定された出力焦点距離ｆoutが１００ｍｍであった場合は、焦点距離がｆ1及びｆ2の個眼カメラの撮像画像データに対して上記解像度変換を行った変換画像データ、及び焦点距離がｆ3の個眼カメラの撮像画像データ（解像度変換なし）が出力される。 
【００６５】
また、設定された出力焦点距離ｆoutが２００ｍｍであった場合は、焦点距離がｆ1〜ｆ4のすべての個眼カメラの撮像画像データに対して上記解像度変換を行った変換画像データが出力される。
【００６６】
（画像合成処理）
次に、画像合成処理の詳細について説明する。
【００６７】
図１３は、画像合成部３０４の内部構成の一例を示す図である。画像合成部３０４は、重みバッファ１３０１、マスク画像生成部１３０２、画像シフト部１３０３、画像可算部１３０４、合成画像バッファ１３０５で構成される。以下、各部について説明する。
【００６８】
重みバッファ１３０１は、各個眼カメラで撮像された画像に対応する重みＣmiおよび、各画素の重みＣ（ｘ，ｙ）を格納する。ここで、各画素の重みＣ（ｘ，ｙ）は、以下の式（５）で表される。
【００６９】
【数３】
2013211827.tif 000005
【００７０】
マスク画像生成部１３０２は、マスク画像ｍａｓｋmi（ｘ，ｙ）を生成する。マスク画像生成処理の詳細については後述する。
【００７１】
画像シフト部１３０３は、画像Ｉmi(ｘ，ｙ）にマスク画像ｍａｓｋmi（ｘ，ｙ）を乗算して、新しい画像Ｉmi’（ｘ，ｙ）を生成し、画像全体をシフトさせてシフト画像Ｉmi’’（ｘ，ｙ）を生成する。
【００７２】
画像加算部１３０４は、シフト画像Ｉmi’’（ｘ，ｙ）に重みＣmiを乗算し、使用画像加工部３０３から送られた使用画像データに関して和を取り、上述の各画素の重みＣ（ｘ，ｙ）で除算する。
【００７３】
合成画像バッファ１３０５は、合成後の画像データＩout（ｘ，ｙ）を格納する。 
【００７４】
図１４は、画像合成処理の流れを示すフローチャートである。
【００７５】
ステップ１４０１において、画像合成部３０４は、合成画像バッファ１３０５に格納されている画像Ｉout（ｘ，ｙ）の全ての画素の値を０に設定し、初期化する。 
【００７６】
ステップ１４０２において、画像合成部３０４は、着目する焦点距離fiを設定する。処理開始の段階では、初期値としてｉ＝１（ｆ1）に設定される。
【００７７】
ステップ１４０３において、画像合成部３０４は、設定された着目焦点距離ｆiの焦点距離を有する個眼カメラの中から着目する個眼カメラｍiを設定する。処理開始の段階では、初期値としてｉ＝１（ｍ1）に設定される。
【００７８】
ステップ１４０４において、マスク画像生成部１３０２は、マスク画像を生成する。具体的には、着目焦点距離ｆiに応じて、以下のようにマスク画像ｍａｓｋmi（ｘ，ｙ）が生成される。まず、設定中の着目焦点距離ｆiが、上述の近出力焦点距離ｆjよりも小さい場合には、被写体までの距離情報（距離マップ）と、ピント位置情報とに基づいてマスク画像が生成される。つまり、ピントが合っている画素(ｘ，ｙ）に関してはｍａｓｋmi（ｘ，ｙ）＝０、ピントが合っていない画素（ｘ，ｙ）に対してはｍａｓｋmi（ｘ，ｙ）＝１となるようなマスク画像を生成する。また、設定中の着目焦点距離ｆiが、上述の出力焦点距離ｆoutに最も値が近い焦点距離ｆjと等しい場合には、すべての画素（ｘ，ｙ）に対しｍａｓｋmJ（ｘ，ｙ）＝１となるマスク画像を生成する。図１５は、本ステップで生成されるマスク画像の一例を示す図であり、前述の変換画像１００１に対応するマスク画像１５０１、撮像画像７０２に対応するマスク画像１５０２、変換画像１００２に対応するマスク画像１５０３が示されている。ここで、マスク画像１５０２及び１５０３内の黒い部分の画素値は０であり、その余の白い部分（及びマスク画像１５０２の全部）の画素値は１である。図１５に示すマスク画像では、ピント面が図６の６０２で示される位置を想定しており、マスク画像１５０１及び１５０３において被写体４０５に対応する領域の画素値が０になっていることが分かる。このようなマスク画像を生成する理由は、焦点距離が異なる個眼カメラで撮像された画像データ同士を合成するときに、ピント面の解像度が劣化しないようにするためである。
【００７９】
図１４のフローチャートの説明に戻る。
【００８０】
ステップ１４０５において、画像シフト部１３０３は、着目個眼カメラｍiで撮像された画像Ｉmi（ｘ，ｙ）に、生成されたマスク画像ｍａｓｋmi（ｘ，ｙ）を画素毎に乗算して、新たな画像Ｉmi’（ｘ，ｙ）を生成する。
【００８１】
ステップ１４０６において、画像シフト部１３０３は、生成された新たな画像Ｉmi’（ｘ，ｙ）全体をシフトさせて、シフト画像Ｉmi’’（ｘ，ｙ）を生成する。図１６は、シフト画像が生成される様子を説明する図である。ここでは、撮像画像７０２における被写体４０５にピントを合わせる場合を想定している。図１６において、撮像画像７０２と変換画像１００２との間には、被写体４０５に関し両矢印で示される分の視差１６０１が存在している。そして、シフト画像１６０２において、視差１６０１に等しい量のベクトル１６０３分だけ、撮像画像１００２全体が右方向にシフトされている。
【００８２】
ここで、シフト量を導出する方法について説明する。
【００８３】
図１７は、ピント面の被写体が個眼カメラのセンサ上のどの位置に結像するかを示した図である。図１７において、１７０１はピント面、１７０２はピント面上の被写体、１７０３は被写体１７０２で反射した光線を表している。１７０４は個眼カメラのレンズであり、１７０５は個眼カメラのセンサを表している。ｚ軸を光軸と平行に取り、ｚ軸の原点を最も短い焦点距離ｆ1の個眼カメラの光学中心に取ると、ｍi番目の個眼カメラの光学中心１７０６の座標は（Ｘmi，Ｙmi，ｆi−ｆ1)となる。１７０７は被写体１７０２がｍi番目の個眼カメラにおいて結像した点であり、被写体１７０２がセンサ１７０５上で結像した点からの相対座標は約（ｆiＸmi／ｄfocus，ｆiＹmi／ｄfocus）となる。なお、ｄfocusはｆiに比べて十分大きいとする。よって、センサ１７０５の画素ピッチをΔとしたとき、ｍi番目の個眼カメラの画像を（−ｆiＸmi／｛ｄfocusΔ｝,−ｆiＹmi／｛ｄfocusΔ｝）だけシフトさせると、被写体１７０２が各画像上で重なるようにできる。
【００８４】
図１４のフローチャートの説明に戻る。
【００８５】
ステップ１４０７において、画像加算部１３０４は、合成画像バッファ１３０５に格納されている画像Ｉout（ｘ，ｙ）を、以下の式（６）に基づいて更新する。具体的には、合成画像バッファ１３０５内の画像Ｉout（ｘ，ｙ）に、生成されたシフト画像Ｉmi’’（ｘ，ｙ）を加算したものを、新たなＩout（ｘ，ｙ）とする。
【００８６】
【数４】
2013211827.tif 000006
【００８７】
ステップ１４０８において、画像合成部３０４は、設定中の着目焦点距離ｆiのすべての個眼カメラに対して処理が完了したかどうかを判定する。具体的な処理としては、例えばｍiが最大値（ここでは、Mi）よりも小さいかどうかを判定する。ｍi＜Miの場合（設定中の着目焦点距離ｆiのすべての個眼カメラについて処理が完了していない場合）は、ステップ１４０３に戻り、次の着目個眼カメラ（ｍi＋１）を設定する。一方、ｍi＝Miの場合（設定中の着目焦点距離ｆiのすべての個眼カメラについて処理が完了した場合）はステップ１４０９に進む。
【００８８】
ステップ１４０９において、画像合成部３０４は、出力焦点距離ｆout以下のすべての焦点距離について処理したかどうかを判定する。出力焦点距離ｆout以下のすべての焦点距離について処理が完了していない場合は、ステップ１４０２に戻り、次の着目焦点距離（ｆi+1）を設定する。一方、出力焦点距離ｆout以下のすべての焦点距離について処理が完了した場合は、ステップ１４１０に進む。
【００８９】
ステップ１４１０において、画像加算部１３０４は、合成画像バッファ１３０５に格納されている画像Ｉout（ｘ，ｙ）を、以下の式（７）に基づいて更新する。具体的には、合成画像バッファ１３０５内の画像Ｉout（ｘ，ｙ）を、式（５）で示される各画素の重みＣ（ｘ，ｙ）で除算する。
【００９０】
【数５】
2013211827.tif 000007
【００９１】
ステップ１４１１において、画像合成部３０４は、すべての処理を終えた合成画像バッファ内の画像Ｉout（ｘ，ｙ）の画像データ（合成画像データ）を、表示部１０６に出力して、本処理を終了する。
【００９２】
図１８は、画像合成処理によって生成された合成画像の一例を示す図である。  
合成画像１８０１は、ピント面を図６の６０１とし、被写体４０４の位置が合うように変換画像１００１及び１００２をシフトして撮像画像７０２に加算して生成された画像である。合成画像１８０１では被写体４０４にピントが合っており、被写体４０５、４０６にはボケが発生している。また、被写体４０５と被写体４０６とでは、被写体４０６の方がよりボケている。
【００９３】
合成画像１８０２は、ピント面を図６の６０２とし、被写体４０５の位置が合うように変換画像１００１及び１００２をシフトして撮像画像７０２に加算して生成された画像である。合成画像１８０２では被写体４０５にピントが合っており、被写体４０４、４０６にはそれぞれ同程度のボケが発生している。
【００９４】
合成画像１８０３は、ピント面を図６の６０３とし、被写体４０６の位置が合うように変換画像１００１及び１００２をシフトして撮像画像７０２に加算して生成された画像である。合成画像１８０３では被写体４０６にピントが合っており、被写体４０４、４０５にはボケが発生している。また、被写体４０４と被写体４０５とでは、被写体４０４の方がよりボケている。
【００９５】
このようにピント面を動かすことで、所望の被写体にピントを合わせた合成画像を得ることができる。
【００９６】
図１８で示したような合成画像を生成するとき、変換画像１００１及び１００２は、撮像画像７０２に比べてピント面での解像度が低い。そのため、これらの画像データに何等の処理も施すことなく単純に合成すると、ピント面の解像度が劣化してしまう。そこで、本実施例では、ピント面に関して撮像画像７０２の画素値だけを用いることとし、合成する前に図１５で示したようなマスク画像を乗算している。
【００９７】
図１９の（ａ）は、焦点距離の異なる個眼カメラを備えた異焦点カメラアレイで撮像された複数視点画像データに対し、本実施例に係る画像処理を行った場合の合成画像を示している。一方、図１９の（ｂ）は、異焦点カメラアレイのうち、ある焦点距離の個眼カメラで撮影された複数視点画像データのみを用いて従来の画像処理を行った場合の合成画像を示している。共に、アルファベットの書かれた背景の前に市松模様の正方形が置かれ、当該正方形の手前でピントが合っている状態であるが、本実施例を適用した（ａ）の方が、ボケ部分が滑らかでノイズも低減され、高画質になっていることが分かる。
【００９８】
なお、本実施例では、複数視点画像データを、異焦点カメラアレイを採用した多眼方式の撮像装置で撮像することで一度に得ている。しかし、例えば、１回の撮像で１枚の画像を撮像する単眼方式の撮像部を有する撮像装置１台のみを用い、視点をずらし、焦点距離を変えて複数回撮像することで、複数視点画像データを得るようにしても良い。その場合は各撮像時刻における当該撮像装置に番号を割り当てて撮像画像データを管理することで、異焦点カメラアレイを採用した多眼方式の撮像装置で撮像した場合と同様に扱うことができる。
【００９９】
以上のとおり、本実施例に係る発明によれば、異なる焦点距離で撮像された複数視点画像データにおいて、高画質なリフォーカスを行うことができる。
【０１００】
［実施例２］
実施例１においては、出力焦点距離以下の焦点距離の個眼カメラで撮像された画像データのみを用いて画像合成を行う態様について説明した。次に、出力焦点距離の長短に関わらず、すべての個眼カメラで撮像された画像データを用いて画像合成を行う態様について、実施例２として説明する。なお、実施例１と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１０１】
本実施例では、図５のフローチャートのステップ５０５における使用画像加工処理において、設定された出力焦点距離に関わらず、異焦点カメラアレイを構成する全ての個眼カメラで撮像された画像データに対して、必要に応じた解像度変換が実行される。
【０１０２】
図２０は、本実施例における解像度変換の様子を説明する図である。
【０１０３】
撮像画像２００１は、個眼カメラ４０２よりも長い焦点距離を持つ個眼カメラ（焦点距離がｆ3：１００ｍｍ或いはｆ4：１６０ｍｍの個眼カメラ）で撮像された画像を示している。出力焦点距離ｆoutは、個眼カメラ４０２の焦点距離であるf2：６０ｍｍに設定されているものとする。この場合において、使用画像加工部３０３は、撮像画像２００１を個眼カメラ４０２の焦点距離であるf2：６０ｍｍ相当に解像度を変換し、変換画像２００２を生成する。ここでの解像度変換の方法としては、例えばバイリニア法やバイキュービック法による補間処理を用いた縮小が適用される。なお、個眼カメラ４０２の焦点距離f2よりも短い焦点距離ｆ1：３０ｍｍの撮像画像については、実施例１と同様の解像度変換処理（拡大）が行われる。
【０１０４】
さらに、本実施例では、図１４のフローチャートのステップ１４０４におけるマスク画像生成処理において、図２１に示すようなマスク画像２１００が生成され、画像合成処理がなされる。すなわち、マスク画像生成部１３０２は、ｆi＞ｆoutの時、解像度変換後のｍi番目の個眼カメラがカバーしている画角内の画素（ｘ，ｙ）に関してはｍａｓｋmi（ｘ，ｙ）＝１となるようなマスク画像を生成する。そして、それ以外の画素（ｘ，ｙ）に対してはｍａｓｋmi（ｘ，ｙ）＝０となるようなマスク画像を生成する。図２１に示したマスク画像２１００の黒い部分の画素値は０であり、白い部分の画素値は１である。そして、画素値が１の領域（白の矩形領域）は変換画像２００２と同じ大きさである。マスク画像２１００における画素値が１の領域は、実施例１におけるトリミング領域の導出と同様の方法でその位置を導出することができる。例えば、前述の図１２における画角範囲１２０３を撮像画像７０２に、画角範囲１２０２を変換画像２００１にそれぞれ置き換えて処理することで、上記矩形領域の左端及び右端の画素位置を得ることができる。なお、個眼カメラの焦点距離ｆiが出力焦点距離ｆout以下の時のマスク画像の生成は、実施例１と同様である。
【０１０５】
このようにして、異なる焦点距離の画像データをすべて用いて画像合成を行うことにより、出力焦点距離よりも焦点距離が長い（望遠）個眼カメラで撮像された被写体に対しては、実施例１の手法よりもさらに高画質にすることが可能となる。
【０１０６】
［実施例３］
次に、ボケをより滑らかにするために各画像にフィルタを作用させる態様について、実施例３として説明する。なお、実施例１及び２と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１０７】
図２２は、本実施例に係る出力画像生成部２２００の内部構成の一例を示す図である。実施例１に係る出力画像生成部１０５と比較すると（図３参照）、本実施例に係る出力画像生成部２２００は、フィルタ作用部２２０１が追加されているのが分かる。
【０１０８】
（フィルタ作用部）
図２３は、フィルタ作用部２２０１の内部構成の一例を示す図である。
【０１０９】
フィルタ作用部２２０１は、画像バッファ２３０１、フィルタ径導出部２３０２、作用判定部２３０３、係数導出部２３０４、演算部２３０５で構成される。以下、各部について説明する。
【０１１０】
画像バッファ２３０１は、使用画像加工部３０６から読み込まれ、不図示の画像データ入力端子を通して入力された、個眼カメラの画像データを格納する。
【０１１１】
フィルタ径導出部２３０２は、着目する個眼カメラから見た距離マップ、ピント位置情報、撮像部１０１の特性を示すパラメータ情報を用いて、着目画素のフィルタのタップ数及び周辺画素におけるフィルタのタップ数を導出する。距離マップ、ピント位置情報、並びに撮像部１０１に関するパラメータは、それぞれ不図示の距離マップ入力端子、ピント位置入力端子、パラメータ入力端子より入力される。
【０１１２】
作用判定部２３０３は、フィルタを作用させるか否か、具体的には、着目画素と周辺画素との距離の前後関係を比較し、周辺画素値に係数をかけて着目画素値に加算するか否かを判定する。
【０１１３】
係数導出部２３０４は、周辺画素が、着目画素に及ぼす影響を表す係数を導出する。
【０１１４】
演算部２３０５は、周辺画素の画素値に係数導出部２３０４で導出された係数を乗算して、画像バッファ２３０１から読みだした画像データにおける着目画素値に加算する。演算部２３０５で処理された画像データ（ボケ画像データ）は、不図示のボケ画像データ出力端子を介して画像合成部３０４に送られる。
【０１１５】
図２４は、フィルタ作用部２２０１における処理の流れを示すフローチャートである。
【０１１６】
ステップ２４０１において、フィルタ作用部２２０１は、着目する個眼カメラの画像データを取得する。
【０１１７】
ステップ２４０２において、フィルタ作用部２２０１は、着目画素の画素位置（ｘ，ｙ）を設定する。処理開始の段階では、初期値（ここでは、画像の一番左上の画素の位置）が設定され、以降は、左上から右下に向かって画素位置が順次更新されるものとする。なお、処理開始の段階では、上記初期値の設定と共に、画像バッファ２３０１内のボケ画像データＩblurのすべての画素の画素値を０に設定する。
【０１１８】
ステップ２４０３において、フィルタ作用部２２０１は、着目画素の周辺に位置する画素（周辺画素）の画素位置（ｘ’，ｙ’）を設定する。作用させるフィルタサイズの最大値を（２Ｓ＋１）×（２Ｓ＋１）とすると、周辺画素の画素位置（ｘ’，ｙ’）は、以下の順に更新されるものとする。
（ｘ−Ｓ，ｙ−Ｓ），（ｘ−Ｓ＋１，ｙ−Ｓ），・・・（ｘ＋Ｓ，ｙ−Ｓ），（ｘ−Ｓ，ｙ−Ｓ＋１），・・・・・（ｘ＋Ｓ，ｙ＋Ｓ）
【０１１９】
よって、処理開始の段階では初期値として（ｘ−Ｓ，ｙ−Ｓ）が設定され、この際、係数和ｓｕｍが０に設定される。なお、フィルタサイズの最大値は予め決めておいても良いし、ピントから一番離れている被写体のフィルタのタップ数を基に決めてもよい。このようにして周辺画素の画素位置は、着目画素の画素位置（ｘ，ｙ）を中心として、（２Ｓ＋１）×（２Ｓ＋１）のサイズの正方形が左上から右下に向かって更新される。但し、周辺画素位置が画像をはみ出すときは画像内にクリッピングするものとする。
【０１２０】
ステップ２４０４において、フィルタ径導出部２３０２は、着目画素と周辺画素のフィルタ径を導出する。具体的には、設定された着目画素のフィルタのタップ数σ（ｘ，ｙ）と、設定された周辺画素のフィルタのタップ数σ（ｘ”，ｙ’）を導出する。ここではフィルタのタップ数として、個眼カメラの視差量に比例する量を採用することにする。ここで、着目画素に像を結ぶ被写体の距離をｄ（ｘ，ｙ）、ピント位置に対応する距離をｄfocus、個眼カメラの間隔をＬ、画素ピッチをΔ、Ａを適当な比例定数とすると、図１７から、以下の式（８）を満たすようにσ（ｘ，ｙ）を決めればよいこことが分かる。
【０１２１】
【数６】
2013211827.tif 000008
【０１２２】
ステップ２４０５において、作用判定部２３０３は、フィルタを作用させる画素かどうかを判定する。具体的には、周辺画素に像を結ぶ被写体の奥行きをｄ（ｘ’，ｙ’）として、以下の式（９）及び式（１０）を用いて対象画素かどうかを判定する。
【０１２３】
【数７】
2013211827.tif 000009
【０１２４】
【数８】
2013211827.tif 000010
【０１２５】
この場合において、式（９）は着目画素のオクルージョンの有無を判定するための条件、式（１０）は前ボケを奇麗に生成するために設けた条件である。式（９）及び式（１０）のいずれかが「真」の場合は対象画素と判定されることになり、ステップ２４０６に進む。一方、どちらとも「偽」の場合は対象画素ではないと判定されることになり、ステップ２４０３に戻って、次の周辺画素の画素位置（ｘ’，ｙ’）が設定される。なお、オクルージョンの影響を考慮して、最終的なボケを滑らかにすることができるのであれば、フィルタを作用させる画素かどうかを判定するための式は、上記式（９）や式（１０）に限られない。
【０１２６】
ステップ２４０６において、係数導出部２３０４は、周辺画素のタップ数σ（ｘ’，ｙ’）から係数ｃを導出する。ここでは係数ｃはガウシアンであるとし、以下の式（１１）を用いて導出するものとする。
【０１２７】
【数９】
2013211827.tif 000011
【０１２８】
なお、係数ｃは、ボケを滑らかにするための係数であれば、ガウシアンに限らない。
【０１２９】
ステップ２４０７において、演算部２３０５は、着目画素のＩblurと係数和ｓｕｍを、以下の式（１２）及び式（１３）に従って更新する。
【０１３０】
【数１０】
2013211827.tif 000012
【０１３１】
【数１１】
2013211827.tif 000013
【０１３２】
ステップ２４０８において、フィルタ作用部２２０１は、着目画素の周辺の画素（２Ｓ＋１）×（２Ｓ＋１）を全て処理したかどうかを判定する。判定の結果、着目画素の周辺画素（２Ｓ＋１）×（２Ｓ＋１）のすべてについて処理が終わっている場合は、ステップ２４０９に進む。一方、未処理の周辺画素がある場合は、ステップ２４０３に戻って、次の周辺画素の画素位置（ｘ’，ｙ’）が設定される。    
ステップ２４０９において、演算部２３０５は、Ｉ（ｘ，ｙ）をｓｕｍで徐算する。
【０１３３】
ステップ２４１０において、フィルタ作用部２２０１は、着目画素の画素位置（ｘ，ｙ）が、取得した画像データ内のすべての画素を網羅したかどうかを判定する。判定の結果、すべての画素が網羅されている場合は、ステップ２４１１に進む。一方、未処理の画素がある場合は、ステップ２４０２に戻って、次の着目画素の画素位置（ｘ，ｙ）が設定される。
【０１３４】
ステップ２４１１において、フィルタ作用部２２０１は、不図示のボケ画像データ出力端子を通して、ボケ画像データを画像合成部３０４に出力する。
【０１３５】
以上がフィルタ作用部２２０１における処理である。
【０１３６】
本実施例によれば、画像を合成する前に、各画像にフィルタを作用させることにより、よりボケが滑らかな画像を生成することが可能になる。
【０１３７】
［実施例４］
次に、異なる焦点距離の個眼カメラの情報を用いて、被写体までの距離推定の精度を向上させる態様について、実施例４として説明する。なお、実施例１〜３と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【０１３８】
ここでは、複数視点画像データに含まれる画像群の中から基準となる画像（以下、「基準画像」と呼ぶ。）を一枚選択し、選択された基準画像に対する視差（視差ベクトル）を求めることで、距離情報を得るものとする。複数視点画像データに含まれる各画像には、1,2,3,・・・,Mといった具合に各視点（各個眼カメラ）に対応付けられた番号が付されており、どの画像がどの視点（どの個眼カメラ）で撮像されたのかが識別可能になっているものとする。
【０１３９】
図２５は、本実施例に係る距離情報導出部３０１の内部構成を示す図である。本実施例の場合、距離情報導出部３０１に入力された複数視点画像データは、基準画像設定部２５０１と解像度変換部２５０２とに送られる。
【０１４０】
基準画像設定部２５０１は、複数視点画像データに含まれる画像群の中から基準となる画像（例えば、画像群のうち最も広角の画像或いはカメラアレイの中央に配置された個眼カメラで撮像された画像）を１枚選択する。そして、選択した基準画像の撮像時の焦点距離ffocusを解像度変換部２５０２及び視差導出部２５０３へ送る。
【０１４１】
解像度変換部２５０２は、焦点距離fiの個眼カメラで撮像された画像に対し、ffocus/fi倍に解像度を変換する処理を行う。この解像度変換処理の詳細については後述する。
【０１４２】
視差導出部２５０３は、画素位置(x,y)に対し、解像度変換処理を施された画像（以下、「解像度変換画像」と呼ぶ。）と基準画像との間の視差ベクトル(u(x,y),v(x,y))を求める。視差の導出は、例えば、ブロックマッチング、位相限定相関法、Lucas-Kanade法など公知の手法を適用すればよい。図２６は、視差ベクトルの概念を説明する図である。図２６において、(ａ)は基準画像、（ｂ）は解像度変換画像を示している。そして、同（ｃ）は、（ａ)に示す基準画像と（ｂ）に示す解像度変換画像とを重ねた状態を示す図であり、各被写体４０４〜４０６の下にある矢印２６０１〜２６０３が、各被写体の視差ベクトルを表している。本実施例では視差ベクトルを画素ごとに求めるものとするが、画像中の特定の領域ごとに求めてもよいし、着目する被写体に関して求めてもよい。
【０１４３】
距離情報推定部２５０４は、視差導出部２５０３で導出された視差ベクトルの情報を基に、被写体までの距離を推定する。推定した距離情報は画像合成部３０４に出力される。
【０１４４】
図２７は、本実施例における、複数視点画像データから被写体までの距離を求める処理の流れを示すフローチャートである。
【０１４５】
ステップ２７０１において、基準画像設定部２５０１は、ＡＤ変換部１０２から複数視点画像データを受け取り、複数視差画像データに含まれる画像群の中から基準となる画像を１枚選択し、基準画像に設定する。
【０１４６】
ステップ２７０２において、解像度変換部２５０２は、基準画像に設定された画像の焦点距離ffocusに基づいて、複数視点画像データを構成する各画像に対し解像度変換処理を行う。画像具体的には、複数視点画像データを構成する各画像のうち処理対象となるｉ番目の画像（ｉは１〜Mの自然数）について、当該画像の焦点距離fiが基準画像の焦点距離ffocusより大きい場合（fi＞ffocus）には、画像を縮小する解像度変換を行い（図２０参照）。同様に、当該画像の焦点距離fiが基準画像の焦点距離ffocusより小さい場合（fi＜ffocus）には、画像を拡大する解像度変換を行う（図１０参照）。解像度変換の方法としては、実施例１と同様、バイリニア法やバイキュービック法による補間処理が適用されるが、実施例１とは異なり、本実施例ではトリミングは行わない。また、fi=ffocusであれば、解像度変換は行わない。
【０１４７】
ステップ２７０３において、視差導出部２５０３は、処理対象であるi番目の画像の視差ベクトルをブロックマッチングなどの方法により求める。
【０１４８】
ステップ２７０４において、未処理の画像があるかどうか（i<Mかどうか）が判定される。i<Mであればiをi+1に更新してステップ２７０２に戻り、次の画像についてステップ２７０２及びステップ２７０３の処理が実行される。一方、i≧Mであれば、ステップ２７０５に進む。
【０１４９】
ステップ２７０５において、距離情報推定部２５０４は、距離推定を行う領域（対象領域）を設定する。対象領域は、ユーザが不図示のＵＩを介して指定しても良いし、画像中の特徴点を例えば顔認識技術等で検出し、検出された特徴点を含む領域を対象領域に設定するようにしてもよい。また、画像中の特定の領域ではなく、すべての画素を対象に距離推定を行ってもよい。
【０１５０】
ステップ２７０６において、距離情報推定部２５０４は、設定された対象領域までの距離を推定する。具体的には、以下のとおりである。
【０１５１】
図２８は、本実施例に係る、焦点距離の異なる個眼カメラの情報を用いた距離推定を説明する図である。図２８において、点２８０１は距離推定がなされた対象領域である被写体の位置、点２８０２は実際の被写体の位置を示している。また、線分２８０３は点２８０１と各個眼カメラのレンズの主点１７０６とを結んだ線であり、点２８０４は線分２８０３とセンサ１７０７との交点である。そして、点２８０５はセンサ１７０７上の被写体の像の位置を示している。この場合において、点２８０１と点２８０２とが一致すれば、点２８０４と点２８０５とは一致することになる。よって、点２８０４と点２８０５との差分がなるべく小さくなるように被写体の位置を示す点２８０１の座標(xobj,yobj,zobj)を推定する。
【０１５２】
まず、点２８０４の座標は、以下の式（１４）で表すことができる。
【０１５３】
【数１２】
2013211827.tif 000014
【０１５４】
ここで、太字で示されるxobj及びXmiは(x,y)の２次元ベクトルを表しており、（Xmi、Ymi）は主点１７０６の座標を示している。Xmiの添え字のmiは焦点距離fiの個眼カメラの番号を表し、(xobj, yobj, zobj)は推定する被写体の座標を示している。通常、zobjはfiに比べて十分大きいので、ここでは、上記式（１４）においてfi−f1を無視するものとする。そして、点２８０５の光軸２８０６に対する相対座標を(sx,mi,sy,mi)とすると、点２８０４と点２８０５との差分が各個眼カメラで小さくなるようにするには、例えば、次の式（１５）で示される値を小さくすればよい。
【０１５５】
【数１３】
2013211827.tif 000015
【０１５６】
上記式（１５）において、iはi番目の焦点距離を表すインデックスであり、miはi番目の焦点距離fiを持つ個眼カメラのインデックスである。iとmiに関する和は、同一被写体を見ている個眼カメラについて取るものとする。
【０１５７】
基準画像において距離推定を行う被写体を決めると、基準画像における相対座標(sxmi,symi)を求めることができる。それには基準画像の中心を原点とした時の画素位置に、センサ１７０７の画素ピッチを乗算すればよい。別の個眼カメラで撮像された画像における相対座標(sxmi',symi')は、ステップ２７０３で求めた視差ベクトル(u(x,y),v(x,y))に、基準画像との焦点距離の比fi/ffocusおよび、センサ１７０７の画素ピッチΔを乗算し、基準画像における被写体の位置ベクトルを加算することで求めることができる。即ち、相対座標(sxmi',symi')は、以下の式（１６）で求められる。
【０１５８】
【数１４】
2013211827.tif 000016
【０１５９】
ここで、Zobj≡1/ zobj、Xobj≡Zobj xobj、Yobj≡Zobj yobjと置くと、以下の式（１７）が得られる。
【０１６０】
【数１５】
2013211827.tif 000017
【０１６１】
そして、上記式（１７）をZobjで偏微分して0と置くと、以下の式（１８）が得られる。
【０１６２】
【数１６】
2013211827.tif 000018
【０１６３】
ここで、以下の式（１９）の関係を満たすように座標系の原点を選ぶと、上記式（１８）は、以下の式（２０）のように簡単化される。
【０１６４】
【数１７】
2013211827.tif 000019
【０１６５】
【数１８】
2013211827.tif 000020
【０１６６】
いま、Zobj＝1/zobjなので、被写体までの距離は、式（２１）で表されることになる。
【０１６７】
【数１９】
2013211827.tif 000021
【０１６８】
よって、個眼カメラの主点１７０６の座標および被写体の像の位置（点２８０５）が分かると、上記式（２１）から、被写体までの距離を推定することができる。
【０１６９】
ここで、同一焦点距離の個眼カメラの情報のみを用いる場合よりも、異なる焦点距離の個眼カメラの情報を用いる方が、距離推定の精度が向上することについて説明する。
【０１７０】
上記式（２０）を相対座標(sxmi,sxmi)で微分すると、以下の式（２２）が得られる。
【０１７１】
【数２０】
2013211827.tif 000022
【０１７２】
この場合において、視差ベクトルの誤差がお互いに独立であり、各視差ベクトルの誤差は全てδsであるとすると、距離推定誤差δzobjは、以下の式（２３）のようになる。
【０１７３】
【数２１】
2013211827.tif 000023
【０１７４】
上記式（２３）から明らかなように、異なる焦点距離の個眼カメラの情報を多く用いるほど、右辺の分母の値が大きくなり距離推定誤差δzobjが小さくなるので、距離推定精度が向上することが分かる。
【０１７５】
以上のようにして、被写体までの距離が推定される。そして、推定によって得られた被写体までの距離情報のデータは画像合成部３０４に送られ、画像合成処理に利用される。
【０１７６】
本実施例によれば、異なる焦点距離の画像データを用いることで、同一焦点距離の個眼カメラのみを用いて距離推定する場合より、高精度に被写体までの距離を推定することが可能になる。
【０１７７】
なお、実施例１で説明した出力画像生成部１０５の一構成要素である距離情報算出部３０１の変形例として本実施例を説明したが、独立した距離情報導出装置として構成してもよい。そのような独立した距離情報導出装置によって得た被写体までの距離情報は、画像合成処理以外の用途、例えば、ジェスチャー認識、三次元計測、不要被写体除去などに利用することが考えられる。
【０１７８】
［実施例５］
さらなる態様として、第一の焦点距離を有する個眼カメラで撮像した画像データを用いて距離推定を行い、得られた距離情報を利用して、第一の焦点距離とは異なる第二の焦点距離を有する個眼カメラで撮像した画像データの合成処理を行ってもよい。
【０１７９】
この場合において、第一の焦点距離は第二の焦点距離よりも短い（すなわち、画像合成に用いる画像の画角よりも距離推定に用いる画像の画角の方がより広角）であることが望ましいが、特に限定されるものではない。なお、距離推定や画像合成の具体的な方法については他の実施例で説明したとおりである。
【０１８０】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2013211827.tif 000024
【図２】
2013211827.tif 000025
【図３】
2013211827.tif 000026
【図４】
2013211827.tif 000027
【図５】
2013211827.tif 000028
【図６】
2013211827.tif 000029
【図７】
2013211827.tif 000030
【図９】
2013211827.tif 000031
【図１０】
2013211827.tif 000032
【図１１】
2013211827.tif 000033
【図１２】
2013211827.tif 000034
【図１３】
2013211827.tif 000035
【図１４】
2013211827.tif 000036
【図１５】
2013211827.tif 000037
【図１６】
2013211827.tif 000038
【図１７】
2013211827.tif 000039
【図１８】
2013211827.tif 000040
【図２０】
2013211827.tif 000041
【図２１】
2013211827.tif 000042
【図２２】
2013211827.tif 000043
【図２３】
2013211827.tif 000044
【図２４】
2013211827.tif 000045
【図２５】
2013211827.tif 000046
【図２６】
2013211827.tif 000047
【図２７】
2013211827.tif 000048
【図２８】
2013211827.tif 000049
【図２９】
2013211827.tif 000050
【図３０】
2013211827.tif 000051
【図８】
2013211827.tif 000052
【図１９】
2013211827.tif 000053