(57)【要約】【課題】  仮想視点画像の生成処理において、仮想視点画像に生じる画質の低下を抑制する。【解決手段】  画像データから、仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理装置が、画像データを入力する画像入力手段と、前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段と、前記仮想視点から前記被写体までの距離を推定し、前記推定された距離と、前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する導出手段と、前記対応関係に基づいて前記画像データから前記仮想視点画像を生成する生成手段とを有する。【選択図】  図９
2016024490.tif 000002
【特許請求の範囲】
【請求項１】
画像を示す画像データから、前記画像データに対応する視点とは異なる視点である仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理装置であって、
画像を示す画像データを入力する画像入力手段と、
前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段と、
前記仮想視点から前記被写体までの距離を推定し、前記推定された距離と、前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する導出手段と、
前記導出手段により導出された前記対応関係に基づいて、前記画像データから前記仮想視点画像を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記対応関係は、前記仮想視点画像の各画素が、前記画像データが示す画像のどの画素に対応するかを示す情報であり、前記生成手段は、前記仮想視点画像の各画素の画素値を、前記画像データが示す画像において前記対応関係が示す画素の画素値を用いて決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記画像データが示す画像中において前記対応関係が示す画素の位置が整数値ではない場合、前記対応関係が示す画素位置の周囲の画素の画素値を用いて補間した値を前記仮想視点画像の画素値とすることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像データに対応する視点と前記仮想視点との位置関係を示す位置情報を入力する位置入力手段を更に備え、
前記導出手段は、前記対応関係を導出する前記仮想視点画像の画素の位置と、前記位置情報が示す位置関係とに基づいて、前記推定した距離と前記距離情報が示す距離とを比較することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記導出手段は、前記対応関係を導出する前記仮想視点画像の画素の位置と、前記位置情報が示す位置関係とに基づいて、前記推定した距離を、前記画像データに対応する視点から見た前記被写体までの距離に変換し、前記変換した距離と前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記距離情報は、前記画像データが示す画像の各画素に対応する被写体上の点までの距離を示す距離マップであり、
前記導出手段は、前記対応関係を導出する前記仮想視点画像の画素の位置と、前記位置情報が示す位置関係とに基づいて、前記距離マップにおいて前記推定した距離との比較に用いる距離を示す画素の位置を導出し、前記距離マップにおいて該導出した画素の位置に対応する距離と、前記推定した距離とが整合する場合に、前記画像データが示す画像中の、前記整合する距離に対応する画素の位置を、前記対応関係を導出する前記仮想視点画像の画素と対応する画素が存在する位置であると判定することを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記導出手段は、前記距離マップにおいて前記推定した距離との比較に用いる距離を示す画素の位置として、整数値ではない値が導出された場合、導出された画素位置の周囲の画素に対応する距離値を用いて補間した値と、前記推定した距離との比較を行うことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記仮想視点から見た前記被写体までの距離として、複数の異なる距離に対応する複数の距離候補を設定する設定手段を更に有し、
前記導出手段は、前記複数の距離候補と前記距離情報が示す距離とを比較し、前記距離情報が示す距離と整合する距離候補に基づいて、前記対応関係を導出することを特徴とする請求項４乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記導出手段は、前記距離情報が示す距離と整合する距離候補が複数存在する場合、最も値の小さい距離候補に基づいて、前記対応関係を導出することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記導出手段は、前記距離候補のうち、距離の値が小さいものから順に前記距離情報が示す距離との比較を行い、比較を行った距離候補が前記距離情報が示す距離と整合すると判定されると、前記距離情報が示す距離と整合するとして判定された距離候補よりも値の大きい距離候補と前記距離情報が示す距離との比較を行わず、前記距離情報が示す距離と整合するとして判定された距離候補に基づいて前記対応関係を導出することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１１】
前記画像入力手段は、前記画像データとして複数の視点に対応する複数の画像を示す画像データを入力し、
前記距離入力手段は、前記複数の視点から見た前記被写体までの距離を示す複数の距離情報を入力し、
前記導出手段は、前記推定した距離と、前記複数の距離情報が示す距離とを比較し、前記複数の画像のうち、対応する距離情報が示す距離と前記推定した距離とが整合する画像を、前記仮想視点画像の画素と対応する画素を有する画像として判定し、前記対応関係を導出することを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記生成手段は、前記仮想視点画像の画素と対応する画素を有するとして判定された画像が複数存在する場合、前記仮想視点画像の画素と対応する画素を有するとして判定された複数の画像の画素値の重み付け平均によって前記仮想視点画像の画素値を決定することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記導出手段は、前記複数の視点のうちの一つを着目視点として設定し、前記設定された着目視点に対応する距離情報が示す距離と、前記推定手段が推定した距離とを比較することで、前記仮想視点画像の各画素と、前記着目視点に対応する画像の各画素との対応関係を導出し、
前記導出手段は、前記仮想視点画像の各画素のうち、前記着目視点との比較の結果、前記対応関係が求まらなかった画素が存在する場合に、前記推定手段が推定した距離と、前記複数の視点のうち、前記着目視点とは異なる視点に対応する距離情報が示す距離との比較を行い、前記対応関係が求まらなかった画素について、前記着目視点とは異なる視点に対応する画像の画素との対応関係を導出することを特徴とする請求項１１に記載の画像処理装置。
【請求項１４】
前記導出手段は、前記推定した距離と前記距離情報が示す距離との差が所定の閾値以下である場合に、前記推定した距離と前記距離情報が示す距離とが整合するとして判定することを特徴とする請求項６乃至１３のいずれか一項に記載の画像処理装置。
【請求項１５】
画像を示す画像データから、前記画像データに対応する視点とは異なる視点である仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理装置であって、
画像を示す画像データを入力する画像入力手段と、
前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段と、
前記画像データに対応する視点と前記仮想視点との位置関係を示す位置情報を入力する位置入力手段と、
前記仮想視点から前記被写体までの距離を推定し、前記推定した距離と、前記距離情報が示す距離とを比較し、前記推定した距離と前記距離情報が示す距離との差に基づいて、前記仮想視点から前記被写体までの距離を決定する決定手段と、
前記決定手段が決定した前記仮想視点から前記被写体までの距離と、前記位置情報とに基づいて、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出し、導出した対応関係に基づいて、前記仮想視点画像を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項１６】
画像を示す画像データから、前記画像データに対応する視点とは異なる視点である仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理方法であって、
画像を示す画像データを入力する画像入力工程と、
前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力工程と、
前記仮想視点から前記被写体までの距離を推定し、前記推定した距離と、前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する導出工程と、
前記導出工程で導出された前記対応関係に基づいて、前記画像データから前記仮想視点画像を生成する生成工程とを含むことを特徴とする画像処理方法。
【請求項１７】
画像を示す画像データから、前記画像データに対応する視点とは異なる視点である仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理方法であって、
画像を示す画像データを入力する画像入力工程と、
前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力工程と、
前記画像データに対応する視点と前記仮想視点との位置関係を示す位置情報を入力する位置入力工程と、
前記仮想視点から前記被写体までの距離を推定し、前記推定した距離と、前記距離情報が示す距離とを比較し、前記推定した距離と前記距離情報が示す距離との差に基づいて、前記仮想視点から前記被写体までの距離を決定する決定工程と、
前記決定工程で決定された前記仮想視点から前記被写体までの距離と、前記位置情報とに基づいて、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出し、導出した対応関係に基づいて、前記仮想視点画像を生成する生成工程とを含むことを特徴とする画像処理方法。
【請求項１８】
コンピュータを請求項１乃至１５のいずれか一項に記載の画像処理装置の各手段として動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想視点から観察した場合の画像を生成する技術に関する。
【背景技術】
【０００２】
複数の異なる視点（撮像視点）から撮像した複数の画像（撮像画像）と、撮像視点から被写体までの距離情報とに基づいて、撮像視点とは異なる視点である仮想視点から見た被写体の画像（仮想視点画像）を生成する手法が存在する。特許文献１では、撮像視点から見た距離マップ（各画素に対応する被写体距離が格納されたデータ）を仮想視点の撮像センサ面に投影することで仮想視点から見た距離マップを生成することが記載されている。そして、仮想視点から見た距離マップに基づいて撮像画像の画素値を仮想視点の撮像センサ面に射影することで、仮想視点画像を生成することが記載されている。
【０００３】
なお、上記のような方法を用いた場合、仮想視点から見た距離マップにおいて、１つの撮像視点から距離情報を直接投影できず、距離情報が欠落してしまう欠落領域が表れてしまう場合がある。距離情報が欠落する欠落領域の種類としては、手前の被写体に遮蔽されることで撮像視点から見えなかったオクルージョン領域に対応するものと、対応部分が撮像画像中の画素と画素の間に位置し、撮像視点から射影が行われない中間領域に対応するものがある。特許文献１に記載の方法では、オクルージョン領域に対応する欠落領域は他の視点で撮像された画像の情報を用いて補間し、撮像画像の画素と画素の間の中間領域に対応する欠落領域には平滑化処理を行うことで、欠落領域を補間している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５９３４６６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術のように、欠落領域に単純な平滑化処理を行ってしまうと、現実とは乖離した情報を持つ距離マップが生成される場合がある。そのような距離マップを用いて仮想視点画像を生成すると、仮想視点画像にゴーストなどの偽信号が発生して画質が低下してしまう場合があった。そこで本発明は、仮想視点画像の生成処理において、仮想視点画像に生じる画質の低下を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明に係る画像処理装置は、画像を示す画像データから、前記画像データに対応する視点とは異なる視点である仮想視点から観察した場合の画像である仮想視点画像を生成する画像処理装置であって、画像を示す画像データを入力する画像入力手段と、前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段と、前記仮想視点から前記被写体までの距離を推定し、前記推定された距離と、前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する導出手段と、前記導出手段により導出された前記対応関係に基づいて、前記画像データから前記仮想視点画像を生成する生成手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、仮想視点画像の生成処理において、仮想視点画像に生じる画質の低下を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】撮像部の配置の例を示す図。
【図２】実施例１の撮像装置の構成を示すブロック図。
【図３】実施例１の画像処理部の構成を示すブロック図。
【図４】実施例１の画像処理部で行われる処理の流れを示すフローチャート。
【図５】距離の定義の例を示す図。
【図６】表示画像の例を示す図。
【図７】実施例１の距離推定処理を説明する図。
【図８】実施例１の効果を示す図。
【図９】実施例２の画像処理部で行われる処理の流れを示すフローチャート。
【図１０】実施例３の画像処理部で行われる処理の流れを示すフローチャート。
【発明を実施するための形態】
【０００９】
（実施例１）
本実施例では、仮想視点から観察した被写体の距離情報を仮想視点画像の各画素について推定し、その推定結果を撮像視点の距離マップと比較することで、仮想視点から見た被写体の距離情報を決定する場合について説明する。この処理によって仮想視点の距離マップを生成すると、本来撮像視点の距離マップから直接距離情報を投影できない領域に存在する画素における距離情報についても、撮像視点から見た距離情報に基づいて精度よく求めることができる。そのため、距離マップに基づいて生成された仮想視点画像の画質も向上する。
【００１０】
なお、本実施例では、複数の撮像部を有する撮像装置（多眼カメラ）によって撮像された複数の画像を用いて、仮想視点画像を生成する画像処理装置について説明する。本実施例の多眼カメラは、画像処理装置としての機能も有し、カメラ内の処理で仮想視点画像を生成するが、画像を撮像する多眼カメラと仮想視点画像を生成する画像処理装置を別の装置として構成しても良い。図１を用いて、撮像視点と仮想視点の位置関係の例を説明する。図１（ａ）では、撮像部１０１〜１０４が、本実施例の多眼カメラが有する撮像部を示し、撮像部１１０は実際には存在しない仮想撮像部を示している。撮像部１０１〜１０４はそれぞれ被写体１２０を撮像し、撮像部１０１〜１０４で得られた画像を用いて、仮想撮像部１１０に対応する仮想視点画像が生成される。以下の説明では、撮像部１０１〜１０４に対応する視点を撮像視点、仮想撮像部１１０に対応する視点を仮想視点、撮像部１０１〜１０４により撮像される画像を撮像画像と呼ぶこととする。なお、図１（ａ）では、４つの撮像部を用いた場合を示しているが、撮像部の数は４つに限られず、複数の視点から被写体を撮像した画像が得られる構成であれば、どのような構成を用いてもよい。例えば、複数の微小な凸レンズを二次元状に並べたマイクロレンズアレイを撮像センサと撮像レンズの間に配したプレノプティック撮像部を用いてもよい。プレノプティック撮像部では複数の視点から被写体を見た画像を、１つの撮像部を用いて同時に撮影することが可能である。また、例えば、図１（ｂ）に示すように、１台のカメラ１０５を動かしながら被写体１２０を撮影することで、複数の視点に対応する画像データを得るようにしてもよい。なお、図１（ｂ）において、曲線１０６はカメラ１０５を動かした場合の軌跡を示している。
【００１１】
本実施例では、簡単のため、撮像部１０１〜１０４の画角はすべて等しいとし、仮想視点画像に対応する仮想撮像部１１０の画角も同一であるとする。また、撮像部１０１〜１０４の位置姿勢（各撮像部の位置と方向）は既知であるとする。なお、撮像部１０１〜１０４の位置姿勢はｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  ｍｏｔｉｏｎなどの既知の手法を用いて、撮像された画像データから推定するようにしてもよい。本実施例では、図１（ａ）に示すように４台の撮像部を有する多眼カメラを用いた場合について説明する。
【００１２】
図２は、本実施例に係る多眼カメラの画像処理装置の内部構成を示すブロック図である。中央処理装置（ＣＰＵ）２０１は、以下に述べる各部を統括的に制御するプロセッサである。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能するメモリであり、ＲＯＭ２０３は、ＣＰＵ２０１で実行される制御プラグラム等を格納するメモリである。バス２０４は、各種データの転送経路であり、例えば、撮像部１０１によって取得された撮像画像データは、このバス２０４を介して所定の処理部に送られる。操作部２０５はユーザの指示を受け取る入力装置であり、具体的にはボタンやモードダイヤルなどが含まれ、撮像指示やズーム指示などを受け取ることができる。
【００１３】
表示部２０６は撮像画像や文字の表示を行う表示装置であり、例えば、液晶ディスプレイが用いられる。また、表示部２０６はタッチスクリーン機能を有していてもよく、その場合はタッチスクリーンを用いた撮像指示やズーム指示などのユーザ指示を操作部２０５の入力として扱うことも可能である。表示制御部２０７は、表示部２０６に表示される画像や文字の表示制御を行う制御回路である。撮像制御部２０８は、フォーカスを合わせる、シャッターを開く・閉じる、絞りを調節するなどの、ＣＰＵ２０１からの指示に基づいた撮像部の制御を行う制御回路である。デジタル信号処理部２０９は、バス２０４を介して受け取った撮像画像データに対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う処理回路である。
【００１４】
エンコード部２１０は、撮像画像データをＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う処理回路である。外部メモリ制御部２１１は、撮像部１０１を、外部メモリ２１２（例えば、ＰＣ、ハードディスク、メモリーカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）に接続するためのインターフェースである。画像処理部２１３は、撮像部１０１で取得された画像データや、デジタル信号処理部２０９から出力される画像データを用いて仮想撮像部１１０に対応する仮想視点画像の生成などの画像処理を行う処理回路である。以上が本実施例の撮像装置の構成である。なお、本発明の撮像装置の構成は上記の物に限られず、一部の構成部を省いたり、別の構成部に置き換えたりしてもよい。また、上記で説明しなかった更なる構成部を追加してもよい。
【００１５】
以下、本発明の撮像装置で行われる処理について説明する。図３は画像処理部２１３のブロック図、図４は画像処理部２１３で行われる処理の流れを示すフローチャートである。本実施例の撮像装置は、ＣＰＵ２０１がＲＯＭ２０３に格納された図４のフローチャートに示すプログラムを読み込んで画像処理部２１３を図３に示す各構成部として制御することにより、仮想視点画像の生成を行う。以下、画像処理部２１３で行われる処理の詳細について、図３および図４を参照して説明する。
【００１６】
まず、ステップＳ４０１では、画像取得部３０１が撮像部１０１〜１０４で撮像された撮像画像を示す画像データを取得し、取得した画像データを生成部３０６に出力する。なお、ここで取得される画像データは、撮像部１０１〜１０４から直接出力されたものに限られず、デジタル信号処理部２０９や外部メモリ２１２から出力された画像データを取得するようにしてもよい。
【００１７】
ステップＳ４０２では、距離取得部３０２が、各撮像視点に対応する距離情報を取得する。ここで取得される距離情報は、各撮像視点から撮像画像の各画素に対応する被写体上の点までの距離を、各画素について格納した画像データである距離マップである。距離マップでは、各画素に対応する被写体の距離情報が画素値で表現される。なお、距離マップの形式はこれに限られず、各画素に対応する距離情報が格納されたデータで有ればどのようなものを用いてもよい。また、画素値でなくとも画素値から求められる輝度値などでもよく、さらに、画素ごとではなく、複数の画素で構成される画像領域ごとに被写体距離を格納したデータを距離マップとして取得してもよい。
【００１８】
本実施例での距離情報の定義を図５に示す。図５において、点５０１は撮像部１０１から観察される被写体上の点であり、ベクトル５０２は撮像部１０１から見た点５０１の位置ベクトル、ベクトル５０３は、撮像部１０１の光軸方向の単位ベクトルである。この時、撮像部１０１から、点５０１を通る撮像部１０１の光軸に垂直な平面までの距離５０４を撮像部１０１から見た場合における点５０１までの距離であると定義する。この時、点５０１までの距離５０４は、ベクトル５０２とベクトル５０３の内積で表わすことができる。なお、距離の定義は上記のものに限られず、上記で定義した距離の値と相関を持つ値であればどのような値を用いてもよい。
【００１９】
距離マップの取得方法としては、既知の様々な手法を用いることが可能である。例えば、赤外線を利用した測距センサを用いて距離を取得する方法や、異なる視点から撮像された画像データ間の視差に基づいて算出する方法などが利用可能である。本実施例においては、撮像部１０１〜１０４がそれぞれ測距センサを有しており、画像データの撮像と同時に各視点に対応する距離マップを取得しているものとする。距離取得部３０２は、撮像部１０１〜１０４から入力された距離マップを取得すると、設定部３０４と比較部３０５とに出力する。
【００２０】
ステップＳ４０３では、位置姿勢取得部３０３（以下、位置取得部３０３とする）が、撮像部１０１〜１０４と、仮想撮像部１１０との位置姿勢を示す情報を取得する。本実施例では、撮像部１０１〜１０４の位置姿勢については既知であり、各撮像部間の距離や方向などを示す設計パラメータがＲＯＭ２０３に記憶されている。仮想撮像部１１０の位置は、図６に示すような表示画面に基づいてユーザが設定可能である。図６において、画像６００は表示部２０６に表示される画像であり、ユーザに仮想視点の位置の設定を促すダイアログが含まれている。アイコン６０１〜６０４はそれぞれ撮像部１０１〜１０４に対応しており、画像６００中で、撮像部１０１〜１０４の間の位置関係に対応する位置に配置されている。アイコン６１０は仮想撮像部１１０に対応しており、ユーザは操作部２０５の操作によりこのアイコン６１０を移動および回転することで、所望の位置姿勢に仮想視点を設定することが可能である。位置取得部３０３は、ＲＯＭ２０３から撮像部１０１〜１０４の位置姿勢を取得し、更に操作部２０５の操作によって入力された信号と撮像部１０１〜１０４とに基づいて仮想撮像部１１０の位置姿勢を算出する。位置取得部３０３は、取得した撮像部１０１〜１０４と仮想撮像部１１０の位置姿勢を設定部３０４と比較部３０５とに出力する。なお、ここで取得される位置姿勢の情報は上記の形態に限られず、撮像部１０１〜１０４と仮想撮像部１１０の位置関係を表わす情報であればどのようなものでもよい。
【００２１】
ステップＳ４０４では、設定部３０４が、距離取得部３０２から入力された距離マップと、位置取得部３０３から入力された位置姿勢とに基づいて、仮想視点において距離推定に用いる距離の候補を設定する。以下、距離候補の設定の詳細について説明する。
【００２２】
まず、距離候補設定の前提として、本実施例で行われる距離推定処理について説明する。図７は、本実施例で行われる距離推定の概念図である。図７において、軸７０１は世界座標を示す座標軸であり、世界座標の軸は仮想撮像部１１０の座標軸と一致している。すなわち、世界座標のｚ軸は仮想撮像部１１０の光軸と平行であり、世界座標のｘｙ平面は仮想撮像部１１０のセンサ面と平行になっている。図７において、平面７０２と平面７０３は、それぞれ撮像部１０１と仮想撮像部１１０のセンサ面を示している。本実施例の距離推定では、仮想視点画像のある画素位置に対応する被写体距離を、仮想撮像部１１０に近い側から遠い側へ順に推定していき、その推定結果を撮像視点の距離マップと比較する。図７において、平面７１０〜７１３は推定する被写体距離に対応する平面である。例えば、仮想視点画像上の画素７０４に対応する被写体が、点７０７として平面７１１上に存在すると推定した場合、その被写体は撮像部１０１のセンサ面では画素７０５に射影されているはずである。そこで、距離推定において、撮像部１０１に対応する距離マップが参照される。そして、画素７０５に対応するとして格納されている距離情報が、推定に用いた平面７１１に対応する距離情報と整合していた場合、推定に用いた距離が正しかったとして、画素７０４に対応する被写体距離が決定される。
【００２３】
上記のような距離推定を行う場合、被写体が存在しえない距離を距離推定に用いる距離の候補に含めても無駄なので、設定部３０４は、撮像部１０１〜１０４に対応する距離マップを参照して、距離の候補を被写体が存在する範囲に限定する。
【００２４】
撮像部１０１をｉ番目の撮像部とし、位置ベクトルを（Ｘｃａｍ，ｉ，Ｙｃａｍ，ｉ，Ｚｃａｍ，ｉ）、画素７０５に対応する画像座標を（ｕｉ，ｖｉ）［ｐｉｘｅｌ］とする。また、ｉ番目の撮像部に対応する画像の主点位置を（ｃｘｉ，ｃｙｉ）［ｐｉｘｅｌ］とする。撮像部１０１における距離マップをｄｉ（ｕｉ，ｖｉ）とし、撮像部１０１、仮想撮像部１１０の焦点距離をｆ［ｐｉｘｅｌ］（実際の焦点距離を画素ピッチで除算した値）とする。このとき、点７０７の撮像部１０１におけるカメラ座標（ｘＰｉ，ｙＰｉ，ｚＰｉ）（撮像部１０１の位置を基準とした座標）は以下のように記述される。
【００２５】
【数１】
2016024490.tif 000003
【００２６】
図７において定義された世界座標７０１に対する撮像部１０１のカメラ座標の回転行列をＲｉとすると、点７０７の世界座標（ＸＰ，ＹＰ，ＺＰ）は
【００２７】
【数２】
2016024490.tif 000004
【００２８】
と表される。仮想撮像部１１０の世界座標を（Ｘｖｃａｍ，Ｙｖｃａｍ，Ｚｖｃａｍ）とすると、仮想撮像部１１０から点７０７までの距離は、ＺＰ−Ｚｖｃａｍで表される。そこで、設定部３０４は、全ての画素位置（ｕｉ，ｖｉ）について式（１）（２）を用いてＺＰ−Ｚｖｃａｍを計算し、ＺＰ−Ｚｖｃａｍの最小値ｄｍｉｎ，ｉと最大値ｄｍａｘ，ｉを算出する。［ｄｍｉｎ，ｉ，ｄｍａｘ，ｉ］は、撮像部１０１に写っている被写体を仮想撮像部１１０から見た場合の被写体の存在範囲である。これを撮像部１０２〜１０４についても計算し、［ｍｉｎ＿ｉ（ｄｍｉｎ，ｉ），ｍａｘ＿ｉ（ｄｍａｘ，ｉ）］を距離推定に用いる距離候補の範囲とする。設定部３０４は、上記の方法により決定した距離の範囲の中で、距離推定に用いる距離の候補を設定する。距離候補の設定の間隔は自由だが、画素値の差で表現可能な範囲でなるべく細かく設定するのが好ましい。本実施例では距離候補の範囲の最小値から最大値までの間で１０ｍｍ間隔で設定するものとする。設定部３０４は、設定した距離候補の値を比較部３０５に出力する。
【００２９】
ステップＳ４０５では、比較部３０５が、仮想視点画像において、撮像部１０１〜１０４のいずれからも見えていない領域を示すオクルージョンマップを初期化する。オクルージョンマップは、オクルージョン領域に対応する画素位置には１が、オクルージョン領域に対応しない画素位置には０が入力されるデータであり、ここでは比較部３０５がオクルージョンマップの値を全て０に書き換える。オクルージョン領域には後述する撮像画像からの画素値の射影が行えないので、オクルージョン領域では画素値の射影処理が行われない。
【００３０】
ステップＳ４０６では、比較部３０５が、距離推定を行う仮想視点画像の画素（着目画素）を決定する。比較部３０５は、着目画素を初めて決定する場合には画像の一番左上の画素を、既に以前に着目画素が決定されている場合には、前に決定された着目画素の隣の画素を着目画素として決定する。このような順番で着目画素を決定した方が画素の参照の順番として効率的であるが、着目画素の決定の順番はこれに限られず、様々な順番を自由に用いてよい。
【００３１】
ステップＳ４０７では、比較部３０５が、設定部３０４から出力された距離候補の中から、距離推定に用いる距離候補を１つ選択する。距離候補の選択は、距離が最も小さい距離候補から距離が最も大きい距離候補に向かって順番に行うものとする。これは、本来手前の被写体に隠れて仮想視点からは観察できない背景部の距離が推定されてしまうことを防ぐためである。なお、距離候補の選択方法はこれに限られず、全ての距離候補をランダムに選択して撮像視点の距離マップとの比較を行ってから、正しい距離候補として判定された複数の距離候補のうち距離が最も小さいものを選択するようにしてもよい。
【００３２】
ステップＳ４０８では、比較部３０５が、位置取得部３０３から入力された位置姿勢と、ステップＳ４０６で決定された注目画素の座標とを用いて、ステップＳ４０７で選択された距離候補を撮像部１０１〜１０４の視点から見た場合の値に換算する。以下、距離候補の換算について再び図７を参照して説明する。
【００３３】
撮像部１０１をｉ番目の撮像部であるとし、点７０４（着目画素）に対応する画像座標を（ｕ，ｖ）［ｐｉｘｅｌ］とする。また。センサ面７０３の主点位置を（ｃｘ，ｃｙ）［ｐｉｘｅｌ］、仮想撮像部１１０の世界座標７０１における位置ベクトルを（Ｘｖｃａｍ，Ｙｖｃａｍ，Ｚｖｃａｍ）とする。また、撮像部１０１、仮想撮像部１１０の焦点距離をｆ［ｐｉｘｅｌ］とする。ステップＳ４０７で選択された距離候補の値をｄとすると、点７０７の世界座標（ＸＰ，ＹＰ，ＺＰ）は以下のように記述される。
【００３４】
【数３】
2016024490.tif 000005
【００３５】
世界座標７０１に対する撮像部１０１のカメラの回転行列をＲｉとし、撮像部１０１の位置ベクトルを（Ｘｃａｍ，ｉ，Ｙｃａｍ，ｉ，Ｚｃａｍ，ｉ）とする。また、点７０５に対応する画像座標を（ｕｉ，ｖｉ）［ｐｉｘｅｌ］、センサ面７０２の主点位置を（ｃｘｉ，ｃｙｉ）［ｐｉｘｅｌ］とする。このとき、点７０７の世界座標を以下の式で記述することができる。
【００３６】
【数４】
2016024490.tif 000006
【００３７】
ここで、ｔは適当な定数である。これをｕｉ，ｖｉについて解くと、
【００３８】
【数５】
2016024490.tif 000007
【００３９】
となる。右辺の変数は、ｔを除いて既知であり、ｚ成分の式から、ｔを求めることができるので、求めたｔを式（３）に代入して、（ｕｉ，ｖｉ）を求めることができる。次に、比較部３０５は、距離候補ｄを元に、撮像部１０１から見た被写体の距離値ｄｉを算出する。撮像部１０１のカメラ座標における点７０７の座標は以下の式で表される。
【００４０】
【数６】
2016024490.tif 000008
【００４１】
式（６）におけるｚ座標が、撮像部１０１から見た点７０７の距離値に相当する。比較部３０５は、式（３）〜式（６）に基づいてｉの値を変化させながら撮像部１０１〜１０４の全てについて、座標（ｕｉ，ｖｉ）と距離値ｄｉを算出する。
【００４２】
ステップＳ４０９では、比較部３０５が、撮像部１０１〜１０４の距離マップを参照し、ステップＳ４０８で算出された画素位置（ｕｉ，ｖｉ）における距離値を、ステップＳ４０８で換算した距離候補と比較する。なお、ステップＳ４０８で算出された画素位置（ｕｉ，ｖｉ）が整数値ではない場合には、周囲の画素の距離情報に基づいて線型補間やバイキュービック補間などの公知の補間方法を用いて生成された補間値との比較を行う。
【００４３】
ステップＳ４１０では、比較部３０５が、比較の結果、距離値が整合する撮像部が存在するかどうかを判定する。ここでは、距離候補の値と、撮像部１０１〜１０４の距離マップが示す距離値との差が閾値以下である場合には、距離候補とその撮像部の距離が整合していると判定する。本実施例では閾値を、距離候補の間隔と同じ１０ｍｍとしているが、この値は自由に設定可能である。例えば、より高い精度を求める場合には距離候補の間隔よりも小さい値を閾値としてもよい。距離値が整合する撮像部が存在すると判定された場合は、ステップＳ４１１に進む。距離値が整合する撮像部が存在しないと判定された場合は、ステップＳ４１２に進む。
【００４４】
ステップＳ４１１では、比較部３０５が、着目画素に対応する被写体距離を決定する。
【００４５】
距離値の決定方法としては、その時に用いられている距離候補をそのまま着目画素に対応する被写体距離とする方法がある。この方法で距離値を決定すれば、距離値の決定に要する処理量が小さくなる。その他に、距離値が整合するとして判定された撮像部から見た距離値を仮想視点に変換した値を着目画素に対応する被写体距離としてもよい。この方法では、距離候補をそのまま着目画素に対応する被写体距離とする場合に比べ、より精度の高い距離値の決定を行うことができる。また、距離値が整合するとして判定された撮像部が複数存在する場合には、各撮像部から見た距離値を仮想視点に変換した値を、仮想撮像部から各撮像部への距離に応じて以下の式に基づく重みを用いた重みづけ平均した値を用いてもよい。
【００４６】
【数７】
2016024490.tif 000009
【００４７】
ここで、ｒは仮想撮像部からの対象の撮像部までの距離ｗは重み値である。この方法によれば、複数の撮像部の情報を効率よく距離値の決定に用いることができるので、より精度の高い距離値の決定を行うことができる。なお、重み係数の決め方は、式（７）に限られない。例えば、対応する画素位置が整数値に近い撮像部の重みを大きくしても距離値の精度を上げることができる。また、距離値の精度が少し下がるものの、単に各撮像部に対応する距離値を平均した値を着目画素に対応する被写体距離としてもよい。比較部３０５は着目画素に対応する被写体距離を決定したら、ステップＳ４１４に進む。
【００４８】
ステップＳ４１２では、比較部３０５が、全ての距離候補について距離値の比較が行われたかどうかを判定する。全ての距離候補について距離値の比較が行われたと判定された場合は、ステップＳ４１３に進む。全ての距離候補について距離値の比較が行われていないと判定された場合は、ステップＳ４０７に戻り、新たな距離候補を選択する。
【００４９】
ステップＳ４１３では、比較部３０５が、着目画素をオクルージョン領域として設定する。全ての距離候補について距離値が整合する撮像部が存在しない場合、その画素は撮像部１０１〜１０４のいずれからも見えていない領域であるということを意味する。本実施例では、そのような領域をオクルージョン領域として設定し、その画素については撮像画像からの画素値の射影を行わない。このステップでは、比較部３０５が、オクルージョン領域を示すオクルージョンマップの着目画素に対応する位置の値を、着目画素がオクルージョン領域であることを示すフラグとなる値である１に書き換え、ステップＳ４１４に進む。
【００５０】
ステップＳ４１４では、比較部３０５が、仮想視点画像の全ての画素について距離情報の推定が行われたかどうかを判定する。全ての画素について距離情報の推定が行われたと判定された場合、ステップＳ４１５に進む。全ての画素について距離情報の推定が行われていないと判定された場合、ステップＳ４０６に戻り、新たな着目画素を決定する。
【００５１】
ステップＳ４１５では、比較部３０５が、ステップＳ４１４までの過程で生成された、仮想視点の距離マップとオクルージョンマップとを、生成部３０６に出力する。この時、比較部３０５は、ステップＳ４１０で距離値が整合するとして判定された撮像部を各画素について示す情報も、生成部３０６に出力するものとする。
【００５２】
ステップＳ４１６では、生成部３０６が、画像取得部３０１から入力された画像データと、位置取得部３０３から入力された位置姿勢と、比較部３０５から入力された仮想視点の距離マップとオクルージョンマップとに基づいて、仮想視点画像を生成する。生成部３０６は、取得した各パラメータを式（３）〜式（５）に代入することで、仮想視点画像の各画素に対応する各撮像画像中の画素位置を算出し、その画素位置に対応する画素値を仮想視点画像の画素値とする。なお、各画素で射影に用いる画像は、ステップＳ４１０で距離値が整合するとして判定された撮像部によって撮像された画像に限定する。射影元の画素位置が整数値にならなかった場合には、距離情報の決定の場合と同様に、周囲の画素の画素値に基づいて線型補間やバイキュービック補間などの公知の補間方法を用いて生成された補間値を射影する。なお、射影元となる撮像部が複数存在する場合には、各撮像部に対応する画像の画素値を、仮想撮像部から各撮像部への距離に応じて式（７）に示す重みを用いて重みづけ平均した値を、仮想視点画像の画素値とする。なお、距離値の決定の時と同様に、各視点の画像の画素値を単純平均したものを仮想視点画像の画素値とすれば画素値算出の為の処理量は低減されるが、上記の方法に比べて画素値の精度は少し落ちることになる。
【００５３】
本実施例の効果の一例を図８、図９に示す。図８（ａ）において、画像８０１はある視点から見た距離マップであり、被写体８０２は手前から奥に向かって斜めに置かれた板、被写体８０３は円柱である。距離マップで色の黒いところほど、撮像部から見て手前にあることを示している。画像８０４は、同じ視点に対応するカラー画像データを示している。図８（ｂ）は従来手法に従って、撮像視点より被写体８０３側に近づけた仮想視点に対応する仮想視点画像を生成した例である。画像８０５は仮想視点画像であり、画像８０５では、被写体８０２の像において、画素値が欠落した欠落領域８０６が現れている。
【００５４】
図８（ｃ）は、本実施例の手法を用いて、撮影視点より被写体８０３側に近づけた仮想視点に対応する仮想視点画像を生成した例である。画像８０７は仮想視点画像であり、画像８０７を画像８０５と比較すると、画像の破たんが少なく、画質が良好な仮想視点画像が生成されていることが分かる。
【００５５】
なお、本実施例において、画像取得部３０１は画像を示す画像データを入力する画像入力手段として機能する。また、距離取得部３０２は、前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段として機能する。また、位置取得部３０３は、前記画像データに対応する視点と前記仮想視点との位置関係を示す位置情報を入力する位置入力手段として機能する。また、比較部３０５は、前記仮想視点から前記被写体までの距離を推定する。そして、前記推定した距離と、前記距離情報が示す距離とを比較し、前記推定した距離と前記距離情報が示す距離との差に基づいて、前記仮想視点から前記被写体までの距離を決定する決定手段として機能する。また、生成部３０６は、前記決定手段が決定した前記仮想視点から見た前記被写体までの距離と、前記位置情報とに基づいて、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する。そして、導出した対応関係に基づいて、前記仮想視点画像を生成する生成手段として機能する。
【００５６】
（実施例２）
実施例１では、仮想視点画像の各画素について推定した距離マップを用いて仮想視点画像を生成する例について説明した。しかし、本発明を用いれば、距離マップを生成せずとも精度の良い仮想視点画像を生成することが可能である。実施例２では、推定距離の比較に基づいて導出した、仮想視点画像の画素と撮像画像の画素との対応関係を直接用いて、仮想視点画像の画素値を決定する場合について述べる。
【００５７】
実施例２の多眼カメラの構成と画像処理部２１３の構成は実施例１と同様なので、説明を省略する。以下、実施例２の画像処理部２１３で行われる処理について、図９に示すフローチャートを参照して説明する。なお、実施例１と同様の処理については同じ符号を付して説明を省略する。
【００５８】
ステップＳ９０１では、比較部３０５が、距離値が整合するとして判定された撮像部が撮像した画像における、ステップＳ４０８で算出された、着目画素との対応画素位置（ｕｉ，ｖｉ）と、着目画素の座標を生成部３０６に出力する。ステップＳ９０２では、生成部３０６が、比較部３０５から入力された対応画素位置を、着目画素への射影元の画素位置として、ステップＳ４１６と同様にして着目画素の画素値を決定する。
【００５９】
上記の処理を用いると、実施例１とほぼ変わらない画質の仮想視点画像を、実施例１に比べて少ない処理量で生成することができる。
【００６０】
なお、本実施例において、画像取得部３０１は画像を示す画像データを入力する画像入力手段として機能する。また、距離取得部３０２は、前記画像データに対応する視点から被写体までの距離を示す距離情報を入力する距離入力手段として機能する。また、比較部３０５は、前記仮想視点から前記被写体までの距離を推定する。そして、前記推定された距離と、前記距離情報が示す距離とを比較することで、前記仮想視点画像の各画素と、前記画像データが示す画像の各画素との間の対応関係を導出する導出手段として機能する。また、生成部３０６は、前記導出手段により導出された前記対応関係に基づいて、前記画像データから前記仮想視点画像を生成する生成手段として機能する。また、設定部３０４は、前記仮想視点から見た前記被写体までの距離として、複数の異なる距離に対応する複数の距離候補を設定する設定手段として機能する。
【００６１】
（実施例３）
実施例１と実施例２では、比較部３０５が、ステップＳ４０９において、選択された距離候補を全ての撮像部の距離マップと比較した。実施例３では、一つの撮像部について距離値の比較を行った結果、距離が求まらなかった領域についてのみ他の撮像部との比較を行うようにすることで、距離値の変換に伴う処理量を削減する。
【００６２】
実施例３の多眼カメラの構成と画像処理部２１３の構成は実施例１および２と同様なので、説明を省略する。以下、本実施例の画像処理部２１３で行われる処理の流れについて、図１０のフローチャートを用いて説明する。
【００６３】
本実施例の動作について図１０、図１１のフローチャートを用いて図５との差異のみ説明する。なお、実施例１および実施例２と同様の処理については同じ符号を付して説明を省略する。
【００６４】
ステップＳ１００１では、比較部３０５が、オクルージョンマップを初期化する。ステップＳ４０５との違いは、オクルージョンマップの全ての画素の値を１に書き換える点である。
【００６５】
ステップＳ１００２では、比較部３０５が、距離候補との比較を行う距離マップに対応する撮像部である着目撮像部を決定する。言い換えると、比較を行う距離マップに対応する視点である着目視点を決定する。最初の着目撮像部は、仮想撮像部１１０と最も視点が近い撮像部が選択されるとする。以降、このステップに戻るたびに、仮想撮像部１１０に近い撮像部から順に着目撮像部を選択していく。
【００６６】
ステップＳ１００３では、比較部３０５が、着目画素を決定する。着目画素の決定の仕方は基本的にはステップＳ４０６と同じであるが、このステップではオクルージョンマップで１が入力されている画素のみを着目画素の候補とする。すなわち、それまでに距離推定で距離が求まらなかった画素のみが着目画素の候補となる。
【００６７】
ステップＳ１００４では、比較部３０５が、距離候補の値を、着目撮像部から見た場合の値に換算する。換算の方法はステップＳ４０８と同様であり、ステップＳ４０８とこのステップとの違いは、換算を着目撮像部についてのみ行うという点である。
【００６８】
ステップＳ１００５では、比較部３０５が、着目撮像部の視差マップを参照して、ステップＳ１００２で換算された距離候補の値と比較する。ここでの比較の方法はステップＳ４０９と同様であり、ステップＳ４０９とこのステップとの違いは、比較の対象が着目撮像部のみであるということである。
【００６９】
ステップＳ１００６では、比較部３０５が、ステップＳ１００５での比較の結果、選択された距離候補が着目撮像部の距離マップの値と整合するかどうかを判定する。選択された距離候補が着目撮像部の距離マップの値と整合すると判定された場合、ステップＳ４１１に進む。選択された距離候補が着目撮像部の距離マップの値と整合しないと判定された場合、ステップＳ４１２に進む。
【００７０】
ステップＳ１００７では、比較部３０５が、オクルージョンマップの着目画素に対応する画素位置の値を０に書き換える。
【００７１】
ステップＳ１００８では、比較部３０５がオクルージョンマップを参照し、着目撮像部との比較の結果距離が求まらなかった領域があるかどうかを判定する。距離が求まらなかった領域があると判定された場合は、ステップＳ１００９に進む。距離が求まらなかった領域が無いと判定された場合は、ステップＳ４１５に進み距離マップの出力を行う。
【００７２】
ステップＳ１００９では、比較部３０５が、全ての撮像部との比較を行ったかどうか判定する。全ての撮像部との比較が行われたと判定された場合は、ステップＳ４１５に進み、距離マップの出力を行う。全ての撮像部との比較が行われていないと判定された場合、ステップＳ１００２に戻り、新たな着目撮像部を決定する。
【００７３】
以上が本実施例における画像処理装置２１３で行われる処理である。以上の処理によれば、距離値の変換と比較に係る処理を削減することができるので、実施例１および実施例２の処理に比べて処理の高速化を行うことができる。
【００７４】
＜その他の実施例＞
実施例１および２では、仮想視点画像において、撮像部１０１〜１０４のどの撮像部からも見えなかったオクルージョン領域については、画素値の射影を行わず空隙領域として画像中に残していた。オクルージョン領域の処理についてはこの方法に限られず、例えば、平滑化フィルタを用いたりインペインティングの手法を用いて穴埋めするようにしてもよい。オクルージョン領域の穴埋めを行えば、オクルージョン領域が小さい場合などは現実の画像と遜色ない自然な画像を得ることができる。インペインティングの手法としては、拡散方程式を利用して、オクルージョン領域の境界から内側へ、輝度を徐々に変化させる補間手法や、画像内から類似部分を探索し、合成する方法など、様々な方法を利用してよい。
【００７５】
また、上記の実施例では、複数の視点で撮像された画像に基づいて仮想視点画像を生成したが、１つの視点で撮像された画像に上記の実施例による処理を行って仮想視点画像を生成するようにしてもよい。例えば撮像視点の光軸方向に沿って仮想視点を設定した場合など、オクルージョン領域がほとんど発生しない場合には、本発明を用いて良好な仮想視点画像を生成することができる。
【００７６】
また、本発明の構成は上記の実施例に限られず、上記の実施例を組み合わせてもよい。例えば、実施例２と３を組み合わせて、距離マップの生成を行わず、１つの撮像視点を用いて画素値が埋まらなかった領域について、他の視点の画像を用いて穴埋めを行うようにしてもよい。
【００７７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
２１３  画像処理部
３０１  画像取得部
３０２  距離取得部
３０３  位置姿勢取得部
３０５  比較部
３０６  生成部
【図１】
2016024490.tif 000010
【図２】
2016024490.tif 000011
【図３】
2016024490.tif 000012
【図４】
2016024490.tif 000013
【図５】
2016024490.tif 000014
【図６】
2016024490.tif 000015
【図７】
2016024490.tif 000016
【図８】
2016024490.tif 000017
【図９】
2016024490.tif 000018
【図１０】
2016024490.tif 000019