IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7576013情報処理装置、情報処理方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-22
(45)【発行日】2024-10-30
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06T 15/20 20110101AFI20241023BHJP
   G06T 19/00 20110101ALI20241023BHJP
   H04N 23/60 20230101ALI20241023BHJP
【FI】
G06T15/20 500
G06T19/00 A
H04N23/60 500
【請求項の数】 9
(21)【出願番号】P 2021161966
(22)【出願日】2021-09-30
(65)【公開番号】P2023051356
(43)【公開日】2023-04-11
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】▲高▼間 康文
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2019-057248(JP,A)
【文献】特開2020-166498(JP,A)
【文献】特開2020-182109(JP,A)
【文献】特開2019-080183(JP,A)
【文献】特開2020-017927(JP,A)
【文献】特開2019-102056(JP,A)
【文献】特開2019-194792(JP,A)
【文献】特開2016-005027(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 - 7/90
G06T 11/00 -19/20
G06V 10/00 -20/90
G06V 30/418
G06V 40/16
G06V 40/20
H04N 5/222- 5/257
H04N 23/00
H04N 23/40 -23/76
H04N 23/90 -23/959
(57)【特許請求の範囲】
【請求項1】
複数の撮像装置により撮像される複数の撮像画像に基づいて生成される被写体の3次元形状データを構成する要素が、前記複数の撮像装置における特定の撮像装置の被写界深度内に存在するか否かを判定する第1判定手段と、
記要素が前記特定の撮像装置から可視であるかを判定する第2判定手段と、
前記第1判定手段により前記要素が前記特定の撮像装置の被写界深度内に存在しないと判定された場合、前記第2判定手段による判定を行わずに、前記要素が前記特定の撮像装置から不可視と決定する決定手段と、
前記第2判定手段による判定結果又は前記決定手段による決定に基づいて、仮想視点画像の生成に用いられる情報を生成する第1生成手段と、を有することを特徴とする情報処理装置。
【請求項2】
前記第1判定手段は、前記特定の撮像装置から前記要素までの距離を示す距離値が前記特定の撮像装置の被写界深度に対応する距離値の範囲に含まれている場合に、前記要素が前記特定の撮像装置の被写界深度内に存在すると判定し、前記特定の撮像装置から前記要素までの距離を示す距離値が前記特定の撮像装置の被写界深度に対応する距離値の範囲に含まれていない場合に、前記要素が前記特定の撮像装置の被写界深度内に存在しないと判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
記第1判定手段は、前記要素の3次元空間における位置が前記特定の撮像装置の被写界深度に対応する3次元領域内に存在する場合に、前記要素が前記特定の撮像装置の被写界深度内に存在すると判定し、前記要素の3次元空間における位置が前記特定の撮像装置の被写界深度に対応する3次元領域内に存在しない場合に、前記要素が前記特定の撮像装置の被写界深度内に存在しないと判定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記仮想視点画像の生成に用いられる情報は、前記要素が、前記特定の撮像装置から可視または不可視であることを示す情報であることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記被写体の三次元形状データは、点群であって、
前記要素は、前記点群に含まれる点であることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記特定の撮像装置から前記被写体の表面に対応する前記要素までの距離を示す距離画像を生成する第2生成手段をさらに有し、
前記第2判定手段は、前記特定の撮像装置から前記要素までの距離を示す距離値と、前記距離画像のうち前記要素に対応する画素に格納された距離値との差が閾値未満の場合は、前記特定の撮像装置から可視と判定し、前記特定の撮像装置から前記要素までの距離を示す距離値と、前記距離画像のうち前記要素に対応する画素に格納された距離値との差が閾値以上の場合は、前記特定の撮像装置から不可視と判定する、ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記複数の撮像装置から取得される前記複数の撮像画像に基づいて仮想視点画像を生成する第3生成手段をさらに有し、
前記第3生成手段は、前記3次元形状データの前記要素に対応するテクスチャを、前記第2判定手段により前記要素を可視であると判定された撮像装置から取得された撮像画像に基づいて生成することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
【請求項8】
複数の撮像装置により撮像される複数の撮像画像に基づいて生成される被写体の3次元形状データの要素が、前記複数の撮像装置における特定の撮像装置の被写界深度内に存在するか否かを判定する第1判定工程と、
記要素が前記特定の撮像装置から可視であるかを定する第2判定工程と、
前記第1判定工程により前記要素が前記特定の撮像装置の被写界深度内に存在しないと判定された場合、前記第2判定工程による判定を行わずに、前記要素が前記特定の撮像装置から不可視と決定する決定工程と、
前記第2判定工程による判定結果又は前記決定工程による決定に基づいて、仮想視点画像の生成に用いられる情報を生成する生成工程と、を有することを特徴とする情報処理方法。
【請求項9】
コンピュータを、請求項1乃至のいずれか1項に記載された情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、被写体を複数の方向から撮像した画像を用いて仮想視点映像を生成する情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【0002】
異なる方向から被写体を撮像する複数のカメラの撮像画像を用いて、仮想視点から観察される画像(以下、仮想視点画像とする)を実時間で生成する技術が注目されている。仮想視点は、仮想空間に設定されるカメラの位置と視線方向などの情報である。以下、仮想空間に設定されるカメラを仮想カメラと称し、実世界に置かれるカメラを単にカメラと称する。仮想視点画像を生成するには、被写体の撮像画像、被写体の3次元形状を表す形状モデル、可視性情報が必要である。形状モデルは、例えばメッシュや点群で被写体の3次元形状を表現する。メッシュは三角形もしくは四角形を要素とし、点群は点を要素とする。可視性情報は、形状モデルの各要素が複数のカメラのそれぞれから見えるか否かを示す情報である。ここで「カメラから見える」とは、要素がカメラの画角に収まり、かつ他の要素によって隠されない、という意味である。仮想視点画像は、形状モデルの要素毎に可視と判定されたカメラから色を取得し合成することで生成される。例えば、特許文献1では、メッシュモデルの面の各頂点がカメラから見えるかを評価し、全ての頂点が見える場合に、その面をカメラから可視であるとする。そして、可視と判定されたカメラによる撮像画像から色情報を取得し、仮想視点画像を生成している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2021-022032号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
仮想視点画像を生成する際、カメラのピントは、撮像前に撮像空間に配置された対象物に合わせられる。この際、被写体を高解像度に捉えたカメラの被写界深度は浅く、焦点から離れるほどボケが大きくなる。一方、標準的な解像度のカメラの被写界深度は深く、撮像画像全体にわたってボケが少ない。このように被写界深度が異なるカメラが混在する複数の撮像装置から得られる撮像画像を用いて仮想視点画像を生成すると、被写界深度が浅くボケが大きい画像の色が合成されることで仮想視点画像のボケも大きくなり、画質が劣化する可能性がある。
【0005】
本開示は、仮想視点画像の画質の劣化を低減することを可能とする技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一つの態様による情報処理装置は以下の構成を有する。すなわち、
複数の撮像装置により撮像される複数の撮像画像に基づいて生成される被写体の3次元形状データを構成する要素が、前記複数の撮像装置における特定の撮像装置の被写界深度内に存在するか否かを判定する第1判定手段と、
記要素が前記特定の撮像装置から可視であるかを判定する第2判定手段と、
前記第1判定手段により前記要素が前記特定の撮像装置の被写界深度内に存在しないと判定された場合、前記第2判定手段による判定を行わずに、前記要素が前記特定の撮像装置から不可視と決定する決定手段と、
前記第2判定手段による判定結果又は前記決定手段による決定に基づいて、仮想視点画像の生成に用いられる情報を生成する第1生成手段と、を有する。
【発明の効果】
【0007】
本開示によれば、仮想視点画像の画質の劣化が低減される。
【図面の簡単な説明】
【0008】
図1】第1実施形態による仮想視点画像生成システムの構成例を示す図。
図2】第1実施形態のカメラパラメータの座標系を説明する模式図。
図3】第1実施形態に関わる可視性を説明する模式図。
図4】第1実施形態の情報処理装置のハードウェア構成例を示すブロック図。
図5A】第1実施形態による仮想視点画像の生成処理を示すフローチャート。
図5B】第1実施形態による仮想視点画像の生成処理を示すフローチャート。
図6】第1実施形態に関わる可視性判定領域を説明する模式図。
図7A】第2実施形態による仮想視点画像の生成処理を示すフローチャート。
図7B】第2実施形態による仮想視点画像の生成処理を示すフローチャート。
図8】第2実施形態に関わる可視性判定領域を説明する模式図。
図9】第3実施形態による仮想視点画像生成システムの構成例を示す図。
図10】第3実施形態に関わる可視性判定領域を説明する模式図。
図11A】第3実施形態による仮想視点画像の生成処理を示すフローチャート。
図11B】第3実施形態による仮想視点画像の生成処理を示すフローチャート。
図12】第3実施形態による可視性の判定方法を説明する模式図。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は本開示を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが本開示に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
(第1実施形態)
第1実施形態では、仮想視点画像におけるボケを低減するために、各カメラの撮像画像上に可視性を判定する領域を設定し、該領域に基づいて可視性を判定する方法について述べる。
【0011】
[システムの構成]
第1実施形態に関わる仮想視点画像生成システムについて図面を参照しながら説明する。図1は、第1実施形態による仮想視点画像生成システムおよび当該システムが備える撮像装置1と情報処理装置2の機能構成例を示すブロック図である。情報処理装置2には複数の撮像装置1が接続される。
【0012】
撮像装置1は、被写体を撮像するカメラ100と、カメラ100の撮像画像を処理する画像処理部110を備える。複数の撮像装置1(複数のカメラ100)により、複数の異なる方向から被写体が撮像される。複数のカメラ100は、被写体を取り囲むようにそれぞれ異なる位置・異なる方向に設置され、同期して撮像を行う。撮像装置1が備えるカメラ100は、カメラを識別するための識別番号を持つ。なお、カメラ100は被写体の全周にわたって設置されなくてもよく、設置場所の制限等によって被写体の一部の方向にのみ設置されてもよい。また、カメラ100の台数は、撮像対象および撮像環境などに応じて決定されるものであり、特定の台数に限定されるものではない。例えばサッカーやラグビーを撮像する場合、競技場の周囲に数十~数百台程度のカメラが設置され得る。複数のカメラ100は、望遠カメラと広角カメラなど画角が異なるカメラを含み得る。また、複数のカメラ100は現実世界の1つの時刻情報で同期し、同時に撮像を行う。得られた映像の各フレーム(画像)には撮像時刻情報が付与される。
【0013】
画像処理部110は、カメラ100による撮像画像から前景画像を生成する。前景画像とは、撮像画像から、被写体領域(前景領域)を抽出することにより生成される画像である。前景領域として抽出される被写体は、一般的に、時系列で同じ方向から撮像を行った場合において動きのある(その位置や形が変化し得る)動的被写体(動体)を指す。動的被写体の例としては、競技において、それが行われるフィールド内にいる選手や審判などの人物、球技であれば人物に加えボールなどがあげられる。また、コンサートやエンタテイメントにおいては、歌手、演奏者、パフォーマー、司会者などが動的被写体である。なお、本実施形態では、撮像装置1が1つのカメラ100と1つの画像処理部110を有する、すなわち1つのカメラ100に1つの画像処理部110が設けられているとして説明するが、1つの画像処理部110に複数のカメラが接続されてもよい。
【0014】
また、画像処理部110は、カメラ100の位置、姿勢(向き、撮像方向)、焦点距離、光学中心(画像中心)、歪み、F値などの状態情報を保持する。カメラ100の位置、姿勢(向き、撮像方向)の制御は、カメラ100を搭載する雲台(不図示)を画像処理部110が制御することにより実現され得る。以下では、カメラ100の状態をカメラパラメータとして説明を行うが、そのパラメータには、雲台等の別の装置により制御されるパラメータが含まれていてもよい。なお、カメラ100の位置、姿勢(向き、撮像方向)に関するカメラパラメータは、いわゆる外部パラメータである。また、カメラ100の焦点距離、光学中心(画像中心)、歪み、F値に関するパラメータは、いわゆる内部パラメータである。さらに、画像処理部110は、カメラ100の異常を検知する手段を併せ持ち、カメラ100の異常の有無を示す異常情報を、情報処理装置2へ送る。カメラ100の異常は、例えば、熱や振動など一般的なセンサの値を評価することで検知できる。
【0015】
ここで図2を用いて座標系について説明する。図2(a)では、3次元空間において、被写体200を写すカメラ100a~100dが配置されている。カメラ100a~100dの位置と姿勢は、原点201、Xw軸202、Yw軸203、Zw軸204で表現された1つの世界座標系で表現される。また、図2(b)には、カメラ100aの撮像画像250におけるカメラ画像座標系(以下、画像座標系という)が示されている。画像座標系では、図2(b)に示されるように原点260、Xi軸280、Yi軸281が設定され、座標(0,0)における画素を画素270とする。なお、他のカメラ100b~100dの画像座標系も同様に定義される。
【0016】
図1に戻り、情報処理装置2の機能構成を説明する。情報処理装置2は、情報取得部120と形状推定部130、距離画像生成部140、領域設定部150、可視性判定部160、映像生成部170、表示部180を備える。なお、表示部180は、情報処理装置2の外部装置として提供され、情報処理装置2に接続される表示装置でも良い。
【0017】
情報取得部120は、撮像装置1からカメラ100が撮像した撮像画像、撮像画像から抽出された前景画像、およびカメラパラメータを取得する。なお、情報取得部120がカメラパラメータを算出するようにしてもよい。この場合、例えば、情報取得部120は、あらかじめカメラ100で撮像したカメラ校正用のマーカ画像(例えば、チェッカーボード)から特徴点を抽出する。そして、情報取得部120は、抽出した特徴点を各カメラの撮像画像に投影した時の誤差が最小になるように各カメラを校正することでカメラパラメータを算出する。ここで、カメラを校正する方法には既存のいかなる方法が用いられてもよい。なお、カメラパラメータは、撮像画像と同期して取得されてもよいし、事前準備の段階で取得されてもよいし、撮像画像とは非同期に必要に応じて取得されてもよい。さらに、情報取得部120は、撮像装置1(画像処理部110)からカメラ100の異常情報を取得する。
【0018】
形状推定部130は、前景画像から得られるシルエット画像とカメラパラメータに基づいて被写体の3次元形状を推定し、推定された3次元形状を表す形状情報を生成する。形状推定部130は、複数のカメラのうち、異常情報により異常が通知されたカメラを形状推定で使用しないように制御する。形状情報の例として、以下の説明では、3次元座標を持つ点要素の集合(以下、点群という)で構成される形状モデル(3次元形状データ)が用いられる。なお、形状モデルは点群に限られるものではなく、例えば、三角形もしくは四角形などの多角形を要素とするメッシュモデルであっても良い。
【0019】
距離画像生成部140は、生成された形状モデルとカメラパラメータを用いて、カメラ100から被写体の形状モデルの表面までの距離を示す距離画像を生成する。距離画像の各画素にはカメラ100から形状モデルの表面までの最短距離が格納される。距離画像生成部140は、生成した距離画像を可視性判定部160に提供する。
【0020】
領域設定部150は、可視性判定部160が形状モデルの各点について可視性の判定を実行するかしないかを判断するために用いられる可視性判定領域を設定する。本実施形態では、可視性判定領域はカメラ100による撮像画像上に設定される。カメラ100の撮像画像上に設定された可視性判定領域外に投影される形状モデルの点については、可視性判定部160は、カメラ100からその点が可視であるか否かの判定を実行せず、常に不可視に設定する。他方、カメラ100の撮像画像上の可視性判定領域内に投影された形状モデルの点については、可視性判定部160は、カメラ100からその点が可視であるか否か(可視性)を判定する。
【0021】
可視性判定部160は、形状モデルの点毎に可視性を判定する。可視性とは、形状モデルの各点が各カメラから可視であるか否かを示す情報である。可視性の判定について、図3の模式図を参照しながら説明する。カメラ100は方向301を向いている。被写体の表面310は形状モデルの点群の一部である点320と点330を含む。図示のように方向301の延長上に点320と点330が位置する場合、可視性判定部160は、カメラ100からの距離が短い点320をカメラ100から可視と判定する。一方、カメラ100からの距離が点320よりも長く、点320に隠れてしまう点330について、可視性判定部160は、カメラ100から不可視と判定する。可視性判定部160は、カメラ100から点群の各点が可視であるか否かを判定する際に、可視性を判定するか否かを可視性判定領域に基づいて判断し、可視性を判定する判定された点のみについて可視性の判定を行う。可視性を判定しないと判断された点は、直ちに不可視と判定される。
【0022】
映像生成部170は、仮想視点画像をフレームとする映像を生成する。映像生成部170は、仮想視点(仮想カメラのカメラパラメータ)の指定を受け付け、指定された仮想視点に応じて仮想視点画像を生成する。仮想視点は、例えば、情報処理装置2が有する操作部416(図4により後述)を介してユーザ(操作者)により指定される。操作部416は、例えば、ジョイスティック、ジョグダイヤル、タッチパネル、キーボード、及びマウスなどの少なくとも1つにより構成され得る。なお、仮想視点の指定方法はこれに限定されない。例えば、時系列に並ぶ仮想視点のそれぞれの位置、視線方向が記録されている仮想カメラのパラメータファイルが用いられてもよい。この場合、情報処理装置2(映像生成部170)は、仮想視点画像の生成に際してこのパラメータファイルを読み込み、その記述に基づいて仮想視点を設定する。表示部180は、例えば、表示器415(図4)に、映像生成部170が生成した映像(仮想視点画像)を表示させる。
【0023】
情報処理装置2のハードウェア構成について、図4を用いて説明する。情報処理装置2は、CPU411、ROM412、RAM413、補助記憶装置414、表示器415、操作部416、通信I/F417、及びバス418を有する。CPU411は、ROM412やRAM413に格納されているコンピュータプログラムやデータを用いて情報処理装置2の全体を制御することで、図1に示す情報処理装置2の各機能を実現する。なお、情報処理装置2がCPU411とは異なる1又は複数の専用のハードウェアを有し、CPU411による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。ROM412は、変更を必要としないプログラムなどを格納する。RAM413は、補助記憶装置414から供給されるプログラムやデータ、及び通信I/F417を介して外部から供給されるデータなどを一時記憶する。補助記憶装置414は、例えば、ハードディスクドライブ等で構成され、画像データや音声データなどの種々のデータを記憶する。
【0024】
表示器415は、例えば液晶ディスプレイやLED等で構成され、ユーザが情報処理装置2を操作するためのGUI(Graphical User Interface)などを表示する。操作部416は、例えばキーボードやマウス、ジョイスティック、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU411に入力する。CPU411は、表示器415を制御する表示制御部(表示部180)、及び操作部416を制御する操作制御部として動作する。
【0025】
通信I/F417は、情報処理装置2の外部の装置との通信に用いられる。例えば、情報処理装置2が外部の装置と有線で接続される場合には、通信用のケーブルが通信I/F417に接続される。情報処理装置2が外部の装置と無線通信する機能を有する場合には、通信I/F417はアンテナを備える。バス418は、情報処理装置2の各部をつないで情報を伝達する。
【0026】
なお、本実施形態では表示器415と操作部416が情報処理装置2の内部に存在するものとするが、表示器415と操作部416との少なくとも一方が情報処理装置2の外部に別の装置として存在していてもよい。
【0027】
[動作フロー]
図5A,5Bに示すフローチャートを用いて、情報処理装置2が行う仮想視点画像の生成処理について説明する。
【0028】
S500において、情報取得部120は、撮像装置1からカメラ100のカメラパラメータを取得する。上述したように情報取得部120がカメラパラメータを算出して取得するようにしてもよい。カメラパラメータは撮像画像を取得する度に取得される必要はなく、形状推定が実行される前に少なくとも1度算出されればよい。取得されたカメラパラメータは、形状推定部130、領域設定部150などで用いられる。
【0029】
S510において、情報取得部120は、画像処理部110が抽出した前景画像を取得する。上述したように、情報取得部120がカメラ100の撮像画像から前景画像を生成するようにしてもよい。その場合、情報取得部120は撮像装置1からカメラ100による撮像画像を取得する。前景画像は、被写体を撮像した撮像画像から、試合開始前などに被写体が存在しない時に予め撮像した背景画像との差分を算出する背景差分法などの一般的な手法を用いて生成され得る。但し、前景画像を生成する方法は、これに限定されない。例えば、被写体(人体)を認識するなどの方法を用いて被写体の領域を抽出することにより前景画像が生成されてもよい。また、情報取得部120は、被写体のシルエット画像を生成する。シルエット画像は、取得された前景画像からテクスチャ情報を消すことで生成される。シルエット画像では、被写体領域以外の画素値が0に設定され、被写体領域の画素値が0以外に設定される。なお、情報取得部120が撮像装置1からシルエット画像を取得するようにしてもよい。その場合、被写体のシルエット画像は撮像装置1の画像処理部110により生成される。
【0030】
S520において、形状推定部130は、情報取得部120により取得されたシルエット画像とカメラパラメータを用いて被写体の形状を推定し形状モデルを生成する。形状推定部130により生成された形状モデル(本例では点群情報)は、距離画像生成部140、領域設定部150、映像生成部170などへ供給される。なお、本実施形態の形状推定部130は、例えば、視体積交差法(shape from silhouette)により被写体の形状モデルを生成する。この処理の結果、被写体の形状モデルを表現した点群情報が得られる。形状モデルを構成する各点の座標(Xw,Yw,Zw)は、例えば、カメラ100の外部パラメータの座標系と同じ座標系(世界座標系)で表現される。さらに、形状推定部130は、隣接点の有無に基づく一般的な3次元ラベリング手法を用いて、得られた点群を被写体毎に分割し、被写体毎の点群情報を得る。形状モデルの各点にはラベリング結果である被写体IDが付与される。このIDを指定することにより、被写体毎の点群情報を得ることができる。なお、形状推定方法には上記以外の方法が用いられてもよい。
【0031】
S530において、距離画像生成部140は、形状推定部130で生成された被写体の形状モデル(点群情報)とカメラ100のカメラパラメータとに基づいて、カメラ100から被写体の表面までの距離を示す距離画像を生成する。
【0032】
距離画像生成部140による距離画像の生成について説明する。距離画像は撮像画像と同じ解像度、幅および高さを有する。距離画像の各画素にはカメラ100から被写体の表面までの最短距離を示す値が格納される。距離画像を生成するために、距離画像生成部140は、まず、形状モデルを構成する点Pの世界座標系による座標(Xw,Yw,Zw)に外部行列Meをかけて、点Pの座標をカメラ座標系の座標(Xc,Yc,Zc)に変換する。ここで、外部行列Meはカメラ100の外部パラメータから構成される行列である。カメラ座標系のz軸の正方向をカメラのレンズが向く方向とすると、座標(Xc,Yc,Zc)におけるZcの値は、カメラ100から点Pまでの距離値となる。距離画像生成部140は、座標(Xc,Yc,Zc)をZcで正規化することにより得られた正規化カメラ座標に内部行列Miをかけることで、点Pの画像座標系における座標(Xi,Yi)を算出する。点Pの画像座標系における座標(Xi,Yi)は、距離値(Zc)の格納先となる座標(距離画像における画素位置)である。ここで、Miはカメラ100の内部パラメータから構成される行列である。なお、座標(Xi,Yi)の画素に既に計算された別の点の距離値が格納されている場合は、距離画像生成部140は、格納されている距離値と今回算出されたZcの値とを比較する。Zcの値の方が小さい場合、距離画像生成部140は、座標(Xi,Yi)の画素値をZcの値で更新する。全ての点Pについて上記の処理を実行することで、1台のカメラ100(カメラ)に関する距離画像を生成することができる。全てのカメラに関して上記処理を施すことで、全カメラの距離画像が生成すされる。
【0033】
S540において、領域設定部150は、カメラ100の前景画像を情報取得部120から取得し、可視性判定部160により可視性の判定が実行される領域(可視性判定領域)を設定する。本実施形態では、撮像画像においてボケの状態が所定の条件を満たす領域(ボケの状態のレベルが所定レベル以下である領域)が可視性判定領域に設定される。すなわち、撮像画像においてピントの状態が所定の条件を満たす領域(ピントの状態のレベルが所定レベル以上である領域)が可視性判定領域に設定される。第1実施形態による可視性判定領域の設定方法について、図6を参照しながら説明する。図6(a)は、前景画像610と前景画像620が映る撮像画像600の模式図である。撮像画像600の座標系601は、横軸をu、縦軸をv、原点をOとする。前景画像610は、被写体の画像を内包する矩形の画像であり、矩形の左上の点O1の座標(u、v)、矩形のサイズ情報(横画素数と縦画素数)、矩形内の画素情報を有する。同様に、前景画像620も、被写体の画像を内包する矩形の左上の点のO2の座標(u、v)、サイズ情報(横画素数と縦画素数)、矩形内の画素情報を有する。図6(b)は可視性判定領域の設定後の状態を示す模式図である。可視性判定領域630は、撮像画像600と同じサイズの画像で表現され、各画素は1ビットの情報を持つ。可視性判定領域630の各画素の初期値は0(可視性判定対象ではないことを示す)に設定される。640は可視性判定猟奇であり、前景画像610と前景画像620を処理した結果、可視性判定対象に設定された領域(画素値=1が設定された領域)である。
【0034】
領域設定部150は、可視性判定領域を設定するために、まず、前景画像610と前景画像620のコントラストを算出する。本実施形態では、輝度の変化量がコントラストとして用いられる。領域設定部150は、前景画像610と前景画像620をそれぞれグレースケール画像に変換する。領域設定部150は、グレースケールに変換された前景領域内の画素を順次に注目画素に設定して以下に説明する走査を行う。前景領域であるか否かはシルエット画像を参照することで判定できる。領域設定部150は、注目画素にM×Nサイズのフィルタを設定し、注目画素を中心としたM×N個の近傍画素において最小値Iminと最大値Imaxを探索する。領域設定部150は、注目画素のコントラスト値を(Imax―Imin)/(Imax+Imin)により算出する。領域設定部150は、計算されたコントラスト値が予め設定された閾値以上であれば、注目画素が高コントラストでボケ量の少ない画素であると判断し、注目画素に対応する可視性判定領域630の画素を1に設定する。反対に、計算されたコントラスト値が閾値未満であれば、領域設定部150は、注目画素が低コントラストでボケ量の多い画素であると判断し、注目画素に対応する可視性判定領域630の画素を0に設定する(初期値のままとする)。前景画像610,620の前景領域内の全画素についてコントラスト値を算出し、それに応じて可視性判定領域を設定することで、可視性判定領域630を生成することができる。
【0035】
S550において、可視性判定部160は、情報取得部120により取得されたカメラパラメータ、形状推定部130により生成された形状モデル(点群情報)、距離画像生成部140により生成された距離画像を取得する。さらに、可視性判定部160は、領域設定部150により設定された可視性判定領域を取得する。可視性判定部160は、取得したカメラパラメータ、形状モデル、距離画像、可視性判定領域に基づいて被写体の各点のカメラ100からの可視性を判定し、その結果である可視性情報を生成する。以上のS500~S540の処理は、複数のカメラ100の全てに対して実行される(但し、撮像装置1から異常が通知されたカメラは処理対象外となる)。
【0036】
図5Bは、図5AのS550の処理の詳細を示すフローチャートである。以下、可視性判定部160が実行する、可視性情報を生成する処理(可視性を判定する方法)について、図5Bを参照してさらに詳細に説明する。まず、S551において、可視性判定部160は、被写体の点群情報から可視性を判定する対象として点Pを選択する。そして、S552において、可視性判定部160は、選択された点Pをカメラ100の撮像画像へ投影する。すなわち、可視性判定部160は、世界座標系で表されている点Pの座標(Xx,Yw,Zw)を、カメラ座標系の座標と画像座標系の座標に変換し、点Pのカメラ座標(Xc,Yc,Zc)と画像座標(Xi,Yi)を得る。この座標変換は、距離画像の生成時と同様である。
【0037】
S553において、可視性判定部160は、点Pの投影された位置がS540で設定された可視性判定領域内であるか否かを判定する。具体的には、可視性判定部160は、点Pの画像座標(Xi,Yi)に対応する可視性判定領域の画素値が1の場合、つまり、可視性判定対象に判定されている場合、点Pの投影された位置が可視性判定領域内と判定する。点Pの投影された位置(点Pの画像座標(Xi,Yi))が可視性判定領域内と判定されると(S553でYES)、S554において、可視性判定部160は、カメラ100から点Pが可視か否かの判定、すなわち点Pの可視性を判定する。可視性判定では、可視性判定部160は、点Pの画像座標(Xi,Yi)における距離画像の画素値と、点Pのカメラ座標のz座標の値Zc(カメラ100から点Pまでの距離)とを比較する。この比較の結果、両者の差分dが閾値以下であれば、可視性判定部160は点Pがカメラ100から可視であると判定し、差分dが閾値を超える場合は点Pがカメラ100から不可視であると判定する。
【0038】
可視であると判定された場合(S555でYES)、可視性判定部160は、点Pについてカメラ100から可視と設定する(S556)。また、不可視であると判定された場合(S555でNO)、可視性判定部160は、点Pについてカメラ100から不可視と設定する(S557)。また、S553で点Pの投影された位置が可視性判定領域外と判定された場合は(S553でNO)、直ちに点Pはカメラ100から不可視に設定される。すなわち、画像座標(Xi,Yi)に対応する可視性判定領域の画素値が0の場合(画像座標(Xi,Yi)が可視性判定対象ではない場合)、可視性判定部160は、S554における可視性の判定を行うことなく点Pをカメラ100から不可視に設定する。以上の処理が全てのカメラについて行われると(S558)、1つの点Pについての可視性判定が完了する。さらに、点群を構成する全ての点について上記処理を実行することで(図5AのS560)、点群の可視性情報が生成される。全ての点について上述した可視性の判定を終えると(S560でYES)、可視性判定部160は可視性判定処理を終える。
【0039】
S570において、映像生成部170は、各カメラのカメラパラメータと前景画像(テクスチャ)、形状モデル(点群情報)、可視性情報、および仮想カメラの情報に基づいて仮想視点画像を生成する。なお、各カメラのカメラパラメータは情報取得部120により取得され、形状モデル(点群情報)は形状推定部130により生成され、可視性情報は可視性判定部160により生成される。また、仮想カメラ(仮想視点)の情報は、上述のように操作部416(例えば、マウスやジョイスティック)により指定されても良いし、パラメータファイルなどによりあらかじめ決められていても良い。仮想カメラ情報は周知のいかなる方法で取得されても良い。S580において、表示部180は、映像生成部170が生成した仮想視点画像を表示器415に表示する。
【0040】
上記のS570において、映像生成部170は、仮想カメラから見た前景画像(被写体領域の画像)と背景画像を生成し、生成した前景画像と背景画像を重ねることで仮想視点画像を生成する。以下、本実施形態の映像生成部170が仮想視点画像を生成する方法について具体的に説明する。
【0041】
まず、映像生成部170が仮想視点画像のための前景画像を生成する方法について説明する。仮想視点画像の前景画像は、色を付けた点群を既存のCGレンダリング手法によりレンダリングすることで生成される。点群に色を付けるために、映像生成部170は、まず、点群情報と可視性情報を参照し、色を付けようとしている点Pの座標(Xx,Yw,Zw)と可視性の判定結果を取得する。可視性情報において、可視性の判定結果は点群情報の各点に付与されており、点と、その点に対応する判定結果には同じ識別番号が付与されている。映像生成部170は、点Pに付与されている識別番号から、対応する可視性の判定結果を取得できる。次に、映像生成部170は、可視性の判定結果を参照して、点Pが可視であると判定されたカメラを特定する。映像生成部170は、点Pの座標(Xx,Yw,Zw)を、可視であると特定したカメラの画像座標系の座標(Xi,Yi)に変換し、そのカメラが撮像したカメラ画像上の座標(Xi,Yi)の画素値を点Pの色とする。
【0042】
なお、点Pが複数のカメラから可視である場合、映像生成部170は、色を取得するカメラを選択する。その選択方法には、例えば、「解像度優先モード」「角度優先モード」「優先なしモード」が用意されている。どのモードを用いるかが記載された設定ファイルを参照することにより、使用されるモードが映像生成部170に設定される。「解像度優先モード」は、高解像度に撮像するカメラを優先的に選択するモードである。例えば、既知の物理的な大きさを持つ球体を各カメラの画像上に射影し、射影された球体の領域が何画素に広がるかを算出する。算出された画素数があらかじめ設定した画素数以上である場合、カメラは高解像度であり、それ以外の場合、カメラは低解像度であるとする。点Pが可視であると判定されたカメラのうち、高解像度と判定されたカメラが選択され、点Pの色付けに用いられる。なお、可視と判定されたカメラから、解像度が高い順(算出された画素数の多い順)に所定数(1または複数)のカメラを選択するようにしてもよい。また、「角度優先モード」は、仮想カメラに距離が近いカメラを優先的に選択するモードである。各カメラの位置は外部パラメータから取得でき、各カメラの位置から仮想カメラの位置までの距離が得られる。映像生成部170は、可視と判定されたカメラのうち、仮想カメラの位置までの距離が小さい順に所定数(1または複数)のカメラを選択し、色付けに用いる。「優先なしモード」では、カメラの優先順を設定せず、可視と判定されたすべてのカメラを色付けに用いる。それぞれのモードでは、映像生成部170は、選択されたカメラにより撮像された画像から画素値を取得する。選択されたカメラが複数ある場合は、映像生成部170は、例えば、それら複数のカメラにより撮像された画像から取得された画素値の平均値を点Pの色に決定する。なお、平均値として、単純平均を算出するようにしてもよいし、優先順位に応じて重みを設定することにより重み付き平均を算出するようにしても良い。優先順位の例としては、カメラの解像度の高い順、カメラと点Pの距離が近い順、などがあげられる。点群の全点について上述の処理を繰り返すことで、仮想カメラから観察される被写体の画像の全ての点に色を付けることができる。
【0043】
次に、仮想視点画像の背景画像を生成する方法について説明する。まず、映像生成部170は、背景となるスタジアムなどのメッシュモデルを取得する。このメッシュモデルは、仮想視点映像を生成するために予め生成されているものとする。映像生成部170は、メッシュモデルを構成する三角形要素を各カメラの撮像画像に射影し、射影された三角形要素を画角内に含み、最も正対するカメラの撮像画像から当該三角形要素のテクスチャを生成する。映像生成部170は、以上のようにして生成されたテクスチャをメッシュモデルの各三角形要素にマッピングし、仮想カメラのカメラパラメータに基づいてレンダリングすることにより、仮想視点画像の背景画像を生成する。映像生成部170は、以上のようにして得られた仮想視点画像の背景画像上に前景画像を重ねることで仮想視点画像を生成する。なお、背景モデルのテクスチャを得るための撮像画像は、情報取得部120が複数のカメラよりあらかじめ取得しておくものとする。
【0044】
以上のように、第1実施形態によれば、撮像画像のボケの状態に応じて可視性判定領域を設定し、この可視性判定領域に基づいて点群情報の各店の可視性を判定することができる。そのため、画像上のボケが大きい領域の可視性を不可視にでき、その結果、形状モデルのテクスチャとして鮮鋭な領域の画素の色を用いることができるようになり、仮想視点画像のボケが防止または低減される。
【0045】
(第2実施形態)
第1実施形態では、撮像画像のコントラストに基づいて撮像画像上に可視性判定領域を設定する構成を例示した。第2実施形態では、カメラのピントの位置と被写界深度に基づいて、撮像空間に可視性判定領域を設定する構成を説明する。より具体的には、領域設定部150は、カメラの前方被写界深度と後方被写界深度との間の距離で表現される3次元領域(ピント位置に応じた被写界深度)を取得する。この3次元領域にある被写体の撮像画像における画像はボケが小さくなる(ボケの状態が所定の条件を満たす)と推定される。領域設定部150は、この3次元領域を可視性判定領域に設定し、可視性判定領域内にする点について可視性を判定する。第2実施形態では、カメラのピント位置を、被写体が存在すると推定される位置に予め固定する。従って、被写体の動きが小さいことを前提とすることが可能な撮像環境において特に有用である。
【0046】
[構成]
第2実施形態に関わる仮想画像生成システムの構成、撮像装置1および情報処理装置2の構成は第1実施形態(図1図2図4)と同様である。ただし、第2実施形態の情報処理装置2では、領域設定部150と可視性判定部160の動作が第1実施形態と異なる。以下、主として第1実施形態と異なる動作について説明する。
【0047】
[動作フロー]
図7A,7Bは、第2実施形態による仮想視点画像の生成処理を示すフローチャートである。図7A,7Bに示すフローチャートを参照しながら、第2実施形態における情報処理装置2の処理を説明する。ただし、S500、S510、S520、S530、S560、S570、S580の処理は第1実施形態と同様の処理であるので、それらステップの詳細な説明は省略する。
【0048】
S740において、領域設定部150は、各カメラの被写界深度に基づいて各カメラの可視性判定領域を設定する。S740における可視性判定領域の設定方法について、図8を参照して説明する。図8はカメラ100と、カメラ100の前方被写界深度801、後方被写界深度802を示す模式図である。後方被写界深度802の距離dfから前方被写界深度801の距離dnを引いた値がカメラ100の被写界深度である。カメラ100のピントを被写体810の位置に合わせて撮像した場合、カメラ100の撮像画像上の被写体811の位置は被写界深度の外部となるため、被写体811の画像ではボケが大きくなる。領域設定部150は、前方被写界深度801の値dfと後方被写界深度802の値dnを可視性判定領域として設定する。df及びdnはカメラ100の焦点距離、F値、被写体までの距離、許容錯乱円の大きさを用いて既知の式を用いて算出され得る。焦点距離とF値については情報取得部120が取得したカメラパラメータに含まれている情報を用いる。許容錯乱円の大きさは、情報処理装置2の起動時に所定のテキストファイルの情報を読み込むことで取得される。被写体までの距離は、例えば、被写体810の形状を推定して得られる点群情報からその重心位置を算出し、カメラ100の位置から該重心位置までの距離を算出することにより得られる。なお、被写体までの距離は、あらかじめレーザ計測機などを用いて計測した値を、テキストファイルなどの形式で装置に入力することにより設定されても良い。
【0049】
S750において、可視性判定部160は、カメラパラメータ、点群情報、距離画像、可視性判定領域(各カメラの前方被写界深度と後方被写界深度)を取得する。そして、可視性判定部160は、可視性判定領域を参照して点群情報を構成する各点の可視性を判定する。図7BはS750の処理の詳細を示すフローチャートである。可視性判定部160は、まず、点群情報を構成する点のうち判定対象の点Pを選択する(S751)。次に、可視性判定部160は、カメラ100の前方被写界深度と後方被写界深度から決定される可視性判定領域を取得し(S752)、選択された点Pの位置が可視性判定領域内か否かを判定する(S753)。
【0050】
図8を参照しながら、各カメラの前方被写界深度と後方被写界深度を用いて、点Pの位置が可視性領域内か否かを判定する方法について述べる。図8におけるカメラ100のカメラが向く方向820をカメラ平面に垂直な軸(Z軸)とする。前方被写界深度801および後方被写界深度802は、カメラ平面からZ軸方向の距離である。可視性判定部160は、まず、点Pの座標(Xw,Yw,Zw)をカメラ座標系と画像座標系に変換し、点Pのカメラ座標(Xc,Yc,Zc)を算出する。算出された点Pのカメラ座標におけるz座標の値(Zc)が前方被写界深度801より大きく、且つ、後方被写界深度802より小さい場合、可視性判定部160は、点Pが可視性判定領域内にある(点Pが可視性判定対象である)と判定する。
【0051】
点Pの位置が可視性判定領域内であると判定された場合(S753でYES)、可視性判定部160は、点Pをカメラ100の撮像画像に投影し、距離画像を参照して可視性を判定する(S754)。この処理はS554で説明した処理と同様である。可視性判定部160は、まず点Pのカメラ座標(Xc,Yc,Zc)を画像座標(Xi,Yi)に変換する。可視性判定部160は、点Pの画像座標(Xi,Yi)における距離画像の画素値と点Pのカメラ座標におけるz座標の値(Zc)とを比較する。この比較の結果、両者の差分dがあらかじめ設定された閾値以下であれば、可視性判定部160は、点Pがカメラ100から可視であると判定する。差分dが閾値を超える場合、可視性判定部160は、点Pがカメラ100から不可視であると判定する。
【0052】
可視であると判定された場合(S755でYES)、可視性判定部160は、点Pがカメラ100から可視であると設定する(S756)。他方、不可視であると判定された場合(S755でNO)、可視性判定部160は、点Pがカメラ100から不可視であると設定する(S757)。また、選択された点が可視性判定領域の外であると判定された場合(S753でNO)、可視性判定部160は、直ちに点Pがカメラ100から不可視であると設定する(S757)。これにより、可視性判定領域の外に存在する被写体の点群はS754の可視性判定処理の対象からはずされ、カメラ100からは不可視であると設定される。以上の処理を全てのカメラについて処理することで(S758)、点Pについて各カメラから可視であるか不可視であるかが設定される。さらに、点群情報の全ての点について上記処理を実行することで(図7AのS560)、可視性情報が生成される。
【0053】
以上のように、第2実施形態によれば、各カメラに関して被写界深度に対応した可視性判定領域が設定され、これに基づいて、点群情報の各点の可視性が判定される。このため、カメラのピントから外れ、撮像画像においてボケが大きくなる領域に存在する点について不可視が設定される。その結果、仮想視点画像の生成においてボケが大きい領域の画素の色が排除され、ボケが小さい領域の画素の色を優先して用いることができるようになり、仮想視点画像のボケを防止もしくは低減することができる。
【0054】
(第3実施形態)
第3実施形態では、撮像装置1(カメラ100)が合焦処理(ピント合わせ)のための複数の測距点を有し、それら測距点における測距情報を可視性の判定に利用する構成を説明する。また、第2実施形態ではカメラ100のピントが固定された構成を説明したが、第3実施形態では、ピント位置が被写体に追従して変動する構成を説明する。第3実施形態では、例えばカメラ100のピントを主役の被写体にフレームごとに合焦させながら撮像し、撮像時のピント合わせに用いた測距情報を参照しながら、ピントから一定の被写界深度を可視性判定領域として設定する。
【0055】
[構成]
図9は、第3実施形態に関わる仮想画像生成システムの構成例、および仮想画像生成システムが備える撮像装置1および情報処理装置2の機能構成例を示すブロック図である。第3実施形態に関わる情報処理装置2の機能構成では、第1実施形態の機能構成(図1)に測距情報取得部925が加えられている。
【0056】
情報取得部120は、撮像開始までに、あらかじめ焦点距離に応じた内部パラメータを推定し、その情報をテキストファイルなどで保存する。各焦点距離における内部パラメータの推定方法は第1実施形態と同じである。撮像時は、毎フレームについて、焦点距離に対応した内部パラメータを取得する。
【0057】
測距情報取得部925は、撮像装置1のカメラ100がピント合わせで用いた複数の測距点のそれぞれの測距情報を毎フレーム取得する。図10にカメラ100で被写体810を撮像した際の測距情報の模式図を示す。図12により後述されるように、測距情報は画像(以下、測距画像)で表され、測距画像の各画素には焦点1001からの距離(ピントのずれ量)が格納される。測距画像の各画素が表す距離は、例えば、焦点1001では0となり、ピントがカメラから遠くへ外れるほど正の方に増加し、近くへ外れるほど負の方に減少する(正負の定義は反対でも良い)。測距画像の画素数は撮像画像の画素数と異なっても良い。一般的には、測距画像の画素数は撮像画像(または距離画像)の画素数より少ない。測距情報取得部925は、画像処理部110からカメラ100により得られる視差画像(左画像と右画像)を取得する。測距情報取得部925は、視差画像に基づいて測距情報を取得し、測距画像を生成する。なお、測距画像の取得の手順はこれに限られるものではなく、例えば、画像処理部110が、カメラ100から視差画像を取得し、測距画像を生成するようにしてもよい。この場合、測距情報取得部925は、画像処理部110から測距画像を取得する。測距画像には撮像画像と同じ時刻情報が付与される。
【0058】
領域設定部150は、フレーム毎に、各カメラの可視性判定領域を、測距画像に基づいて設定する。第3実施形態の領域設定部150は、図10におけるカメラ100の焦点1001を基準とする前方被写界深度1002と後方被写界深度1003で挟まれた領域を可視性判定領域に設定する。可視性判定部160は、各カメラのカメラパラメータと、測距画像、可視性判定領域、距離画像、点群情報を用いて可視性情報を生成する。
【0059】
[動作フロー]
図11A,11Bに示すフローチャートを参照しながら、第3実施形態における情報処理装置2の各部の処理について説明する。ただし、S510、S520、S530、S560、S570、S580の処理は第1実施形態と同様であるので、詳細な説明を省略する。以下では、主に、図11AのS1110、S1140、S1141、S1142(図11B)について説明する。
【0060】
S1110において、情報取得部120は、撮像装置1からカメラ100のカメラパラメータを取得する。第3実施形態における撮像装置1のカメラ100は、毎フレーム、主役の被写体810にピントを合わせ続ける。ピント合わせに応じて焦点距離が変動する場合、画像処理部110は、変動後の焦点距離に応じた内部パラメータを選択し、情報取得部120に出力する。カメラ100に取り付けられるレンズの焦点距離に応じて内部パラメータを選択できるようにするため、あらかじめ撮像開始までに焦点距離に応じた内部パラメータを推定し、焦点距離と内部パラメータの対応をテキストファイルに記録しておく。そして、情報処理装置2の起動時にそのテキストファイルを読み込み、焦点距離と内部パラメータを対応付けてメモリなどに保持する。テキストファイルには、被写体を広角でとらえた状態(レンズの最短焦点距離)から、高解像度で捉えた状態(レンズの最長焦点距離)までの、焦点距離ごとの内部パラメータが記載される。あらかじめ使用する焦点距離の範囲を決め、撮像時は、その範囲内で焦点距離に応じた内部パラメータの情報を取得するようにしてもよい。外部パラメータは不変としても良いし、フレーム毎に推定されても良い。カメラがフレームを撮像した時の焦点距離がメモリに保持されている最短焦点距離よりも短いもしくは長いために該当する内部パラメータの情報がない場合は、そのフレームの撮像時刻における仮想視点映像の生成にそのカメラを使用しないように制御する。
【0061】
S1140において、測距情報取得部925は、撮像装置1からカメラ100の複数の測距点における測距値を示す測距画像をフレーム毎に取得する。測距情報取得部925は、複数のカメラのすべてに関して測距画像を取得する。図12に測距情報取得部925により取得される測距画像1200の模式図を示す。測距画像1200の座標系1201は画像の左上の角を原点O、横軸をXs、縦軸をYsとする。上述のように、各画素には測距値として焦点からの距離が格納される。画素1202は焦点からの距離が大きく、ピントが外れている画素であり、図12では細線による枠で示されている。また、画素1203は焦点からの距離が小さく、ピントが合っている画素であり、図12では太線による枠で示されている。被写体1204は焦点付近にいる主役の被写体であり、被写体1205は被写体1204より遠くにいるピントがずれた脇役の被写体である。
【0062】
S1141において、領域設定部150は、情報取得部120から各カメラのカメラパラメータ(焦点距離、F値を含む)を、測距情報取得部925から測距画像を、フレーム毎に取得する。領域設定部150は、これらの情報を基に、各カメラについて可視性判定領域を設定する。第2実施形態と同様、可視性判定領域は、カメラ100の被写界深度に対応する。第3実施形態では、ピント位置までの距離と、ピント位置を基準とする前方被写界深度と後方被写界深度で表現される。被写界深度の算出に用いられるピント位置までの距離には、測距画像の各画素の中からピントが最も合っている画素(測距値が最も小さい画素)の値(測距値)と、その画素に対応する被写体までの距離に基づいて取得される。被写体までの距離は、例えば、周知のステレオ原理により取得されるが、これに限られるものではなく、例えば、距離画像から取得されてもよい。領域設定部150は、各カメラについて、前方被写界深度と後方被写界深度を算出し、可視性判定領域として設定する。以上の処理により各カメラについて設定される可視性判定領域は、各カメラのピント位置の移動に応じて移動する。
【0063】
つぎに、S1142およびS560により、点群情報を構成する全ての点について、各カメラからの可視性が判定される。S1142において、可視性判定部160は、カメラパラメータ、点群情報、距離画像、可視性判定領域、測距画像を用いて点群の各点の可視性を判定する。以下、S1142の処理について、図11Bのフローチャートを参照して説明する。なお、図11Bにおいて図7Bの処理と同様の処理が行われるステップには、図7Bと同一のステップ番号が付されている。
【0064】
可視性判定部160は、測距画像と撮像画像の解像度が異なる場合に備えて、装置の起動時に一度、全カメラにおける測距画像と撮像画像の拡大率を算出する。具体的には、可視性判定部160は、測距画像の横方向の画素数と撮像画像の横方向の画素数から横方向の拡大率を算出し、測距画像の縦方向の画素数と撮像画像の縦方向の画素数から縦方向の拡大率を算出する。この処理は、情報処理装置2の起動時に各カメラについて一度実行され、得られた拡大率はその後の処理に使用できるよう保持される。その後、可視性判定部160は、まず、点群情報を構成する点のうち判定対象の点Pを選択する(S751)。可視性判定部160は、判定対象のカメラ100に設定された可視性判定領域を、S1141で全カメラについて設定された可視性判定領域から取得する(S1100)。可視性判定部160は、選択された点Pについて可視性判定を実行すべきか否かを可視性判定領域に基づいて判定する(S1101)。ここでは、カメラ100の測距画像における点Pの投影位置に対応する画素の測距値が、可視性判定領域内か否かが判定される。
【0065】
S1101における判定処理について詳述する。可視性判定部160は、点Pの座標(Xw,Yw,Zw)を各カメラのカメラ座標系と画像座標系に変換し、点Pのカメラ座標(Xc,Yc,Zc)と画像座標(Xi,Yi)を算出する。可視性判定部160は、画像座標(Xi,Yi)に、上述した横方向と縦方向の拡大率をそれぞれ乗算することにより、測距画像における点Pの座標(Xd,Yd)を算出する。可視性判定部160は、測距画像上の座標(Xd,Yd)における画素値により示される測距値から得られるカメラ100と被写体との間の距離が、領域設定部150が設定した可視性判定領域内に収まるか否かを判定する。なお、可視性判定領域は、上述したように、前方被写界深度と後方被写界深度の間の被写界深度の範囲である。撮像画像上の点Pの投影位置(座標(Xd,Yd))における測距値から得られるカメラ100と被写体の間の距離が可視性判定領域内に収まる場合、その投影位置の画像のピントの状態は仮想視点画像のテクスチャとして用いられ得る許容範囲内である。他方、測距画像上の点Pの投影位置における測距値から得られるカメラ100と被写体の間の距離が可視性判定領域の外であれば、その投影位置の画像のピントの状態は許容範囲外である。
【0066】
カメラ100と被写体の間の距離が可視性判定領域内に収まると判定された場合(S1101でYES)、可視性判定部160は、測距画像から得られる距離の信頼性(すなわち、S1101の判定結果の信頼性)を判定する(S1102)。例えば、可視性判定部160は、点Pの投影位置に関して距離画像と測距画像のそれぞれから得られる距離の差が閾値以下か否かを判定する。差が閾値以下であれば信頼性あり(S1102でYES)と判定され、差が閾値より大きければ信頼性なしと判定される(S1102でNO)。より具体的には、可視性判定部160は、測距画像上の座標(Xd,Yd)の画素値(測距値)から得られるカメラ100と被写体の間の距離と、カメラ100に関して生成された距離画像における点Pの投影位置の画素値が示す距離とを比較する。例えば、図12の測距画像1200において、被写体領域の境界を含む画素1206の範囲には、被写体1204や被写体1205が含まれている。測距画像の解像度は距離画像の解像度よりも粗いため、画素1206のような被写体領域の境界付近では距離画像の距離の方が信頼性は高い。そこで、可視性判定部160は、点Pを距離画像に投影した位置の画素値(カメラ・被写体間の距離)と、測距画像に点Pを投影した位置の画素値(測距値)から得られるカメラ・被写体間の距離との差が閾値以下か否かを判定する。これによりS1101における判定の信頼性が確認される。
【0067】
例えば、図12において、測距画像1200の画素1206の測距値は被写体1204の距離に対応しており、ピント状態は許容範囲と判定される。すなわち、点Pの投影位置が点1207であっても点1208であっても画素1206の測距値が取得され、S1101では可視性領域の範囲内と判定される。ここで、点Pの投影位置が点1207である場合、点1207は被写体1204上の点であり、距離画像における距離も被写体1204までの距離を表すので、測距画像と距離画像から得られる距離の差は小さい。他方、点Pの投影位置が点1208である場合、点1208は被写体1205上の点であり、距離画像における距離は被写体1205までの距離となるため、測距画像と距離画像から得られる距離の差が大きい。すなわち、点Pの投影位置が点1208であった場合は、測距画像から得られるカメラ100と被写体の間の距離は信頼性が低いことが理解される。なお、本実施形態において測距画像の画素値は視差情報であってもよく、その場合は、視差をカメラと被写体の間の距離に変換してから比較する。カメラと被写体の間の距離は、焦点距離、左画像と右画像のセンサ間距離、視差を用いて周知のステレオ原理を用いることで算出できる。
【0068】
点Pを距離画像に投影することにより取得される距離と、点Pを測距画像に投影して得られる距離との差が小さいと判定された場合(S1102でYES)、可視性判定部160は、カメラ100からの点Pの可視性を判定する(S754)。可視性判定処理については、上述したとおりである。他方、点Pが可視性判定領域内に存在しないと判定された場合(S1101でNO)、可視性判定部160は、点Pをカメラから不可視であると設定する(S757)。或いは、距離画像と測距画像から得られる距離の差が閾値より大きいと判定された場合(S1102でNO)、可視性判定部160は、点Pをカメラから不可視であると設定する(S757)。以上の処理を全てのカメラについて処理することで(S758)、点Pが各カメラから見えるか否かを判定できる。さらに、点群の全ての点について上記処理を実行することで(S560)、可視性情報が生成される。点群の全ての点について上述した可視性の判定を終えると(S560でYES)、可視性判定部160は可視性判定処理を終える。
【0069】
第3実施形態によれば、フレーム毎にカメラのピントを被写体に合焦させ、その合焦に用いられた測距情報である測距画像を用いて可視性判定領域が設定される。従って、被写体の動きに追従してカメラのピント位置が変化した場合でも、可視性判定領域をこれに追従させることができ、カメラのピントが外れたボケが大きい領域に関して可視性を不可視に設定することができる。その結果、ピント位置が変動する場合でも、仮想視点画像の生成においてボケが大きい領域の画素の色が排除され、ボケが小さい領域の画素の色を優先して用いることができるようになり、仮想視点画像のボケを防止または低減することができる。こうして、第3実施形態によれば、毎フレーム、仮想視点画像全体で被写体領域のボケが少ない仮想視点映像を生成できる。
【0070】
以上のように、上記の各実施形態によれば、ボケの状態に基づいて可視性を判定するか否かを示す可視性判定領域を設定し、仮想視点画像生成時に可視性判定領域外の領域から色を取得することが防止される。その結果、仮想視点画像のボケを低減することが可能である。
【0071】
なお、上記各実施形態では、形状モデルが点群で表される場合を説明したが、これに限られるものではない。形状モデルが多角形を要素とするメッシュモデルであってもよい。この場合、例えば、多角形の各頂点について各実施形態で説明した可視性判定処理を行い、全ての頂点が可視であると判定されたカメラの画像が当該多角形の要素のテクスチャとして用いられるようにすればよい。このように、上述した可視性判定処理は、形状モデルを構成する複数の要素(点もしくは多角形要素)のそれぞれの可視性判定に用いることができる。また、上記各実施形態で説明した処理により点Pが全てのカメラから不可視であると判定された場合は、可視性判定領域に基づいて不可視に判定されたカメラについて可視性判定を行うことで、点Pを可視であるカメラを探すようにしてもよい。
【0072】
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0073】
1:撮像装置、2:情報処理装置、100:カメラ、110:画像処理部、120:情報取得部、130:形状推定部、140:距離画像生成部、150:領域設定部、160:可視性判定部、170:映像生成部、180:表示部、925:測距情報取得部
図1
図2
図3
図4
図5A
図5B
図6
図7A
図7B
図8
図9
図10
図11A
図11B
図12