(57)【要約】【課題】複数の仮想視点画像を容易に生成できるようにする。【解決手段】被写体を複数のカメラで異なる方向から撮影した画像から推定された前記被写体の形状モデルを構成する各要素が前記複数のカメラのそれぞれから見えるか否かを示す可視性情報を、前記形状モデルを構成する各要素と関連付けて取得する取得手段と、前記形状モデルと前記形状モデルを構成する各要素の可視性情報とを用いて仮想視点画像を生成する生成手段とを有する。【選択図】図２
2019061684.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラにより複数の方向から撮影することで得られる複数の撮影画像に基づく仮想視点画像を生成するための処理を行う情報処理装置であって、
前記複数のカメラによる特定の時刻における撮影に基づく複数の撮影画像の少なくとも何れかに含まれるオブジェクトの３次元形状モデルの構成要素の３次元位置を示すモデル情報を取得するモデル情報取得手段と、
前記複数のカメラに含まれるカメラの３次元位置を示すカメラ情報を取得するカメラ情報取得手段と、
前記３次元形状モデルの構成要素に関する可視性情報であって、当該構成要素に対応する画素が撮影画像に含まれるか否かを前記複数のカメラによる前記特定の時刻における撮影に基づく複数の撮影画像のうち２以上の撮影画像それぞれについて識別可能にする可視性情報を、前記モデル情報取得手段により取得されたモデル情報と前記カメラ情報取得手段により取得されたカメラ情報とに基づいて生成する情報生成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記複数のカメラに含まれるカメラの３次元位置と、当該カメラによる撮影に基づく撮影画像の画素に対応するオブジェクト上の３次元位置との距離を示す距離情報を取得する距離情報取得手段を有し、
前記情報生成手段は、前記モデル情報取得手段により取得されたモデル情報と、前記カメラ情報取得手段により取得されたカメラ情報と、前記距離情報取得手段により取得された距離情報とに基づいて、前記可視性情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記３次元形状モデルの構成要素に対応する画素が撮影画像に含まれるか否かを、前記モデル情報取得手段により取得されたモデル情報が示す当該構成要素の３次元位置と、前記カメラ情報取得手段により取得されたカメラ情報が示す当該撮影画像に対応するカメラの３次元位置と、前記距離情報取得手段により取得された距離情報が示す当該撮影画像の画素に対応する距離とに基づいて判定する判定手段を有し、
前記情報生成手段は、前記判定手段による判定結果に基づいて前記可視性情報を生成することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記距離情報取得手段により取得される距離情報は、前記複数のカメラに含まれるカメラによる撮影画像全体の画素それぞれについて当該画素に対応する３次元位置と当該カメラに応じた位置との距離を示す情報から、前記撮影画像内の前記オブジェクトを含む部分領域に対応する画素についての情報を抽出することで得られる情報であることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記特定の時刻における撮影に基づく複数の撮影画像のうちの１以上の撮影画像に基づいて前記３次元形状モデルを生成するモデル生成手段と、
前記モデル生成手段により生成される前記３次元形状モデルと前記情報生成手段により生成される前記可視性情報とを関連付けて記憶部に記憶させる記憶制御手段とを有することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記情報生成手段により生成される前記可視性情報は、前記仮想視点画像の画素の値を何れのカメラによる撮影に基づく画像を用いて決定するかを判断するために用いられる情報であることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記３次元形状モデルの構成要素は、３次元空間内の点の集まりとして前記３次元形状モデルが表される場合における点、又は、メッシュの集まりとして前記３次元形状モデルが表される場合におけるメッシュであることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記情報生成手段により生成される前記可視性情報は、前記複数のカメラの数に応じたビット配列で構成されることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記３次元形状モデルに対応するオブジェクトには、前記複数のカメラの撮影領域内に位置する人物が含まれることを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記情報生成手段は、前記３次元形状モデルの構成要素それぞれに関する前記可視性情報であって、当該構成要素に対応する画素が撮影画像に含まれるか否かを前記複数のカメラによる前記特定の時刻における撮影に基づく複数の撮影画像それぞれについて識別可能にする前記可視性情報を生成することを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
複数のカメラにより複数の方向から撮影することで得られる複数の撮影画像に基づく仮想視点画像を生成する情報処理システムであって、
前記複数のカメラによる特定の時刻における撮影に基づく複数の撮影画像の少なくとも何れかに含まれるオブジェクトの３次元形状モデルの構成要素に関する可視性情報であって、当該構成要素に対応する画素が撮影画像に含まれるか否かを前記複数のカメラによる前記特定の時刻における撮影に基づく複数の撮影画像のうち２以上の撮影画像それぞれについて識別可能にする可視性情報を生成する情報生成手段と、
前記情報生成手段により生成された前記可視性情報と、前記複数のカメラによる撮影に基づく画像と、仮想視点の位置及び方向を示す視点情報とに基づいて、前記仮想視点画像を生成する画像生成手段とを有することを特徴とする情報処理システム。
【請求項１２】
前記３次元形状モデルの構成要素の３次元位置を示すモデル情報を取得するモデル情報取得手段と、
前記複数のカメラに含まれるカメラの３次元位置を示すカメラ情報を取得するカメラ情報取得手段とを有し、
前記情報生成手段は、前記モデル情報取得手段により取得されたモデル情報と前記カメラ情報取得手段により取得されたカメラ情報とに基づいて前記可視性情報を生成することを特徴とする請求項１１に記載の情報処理システム。
【請求項１３】
前記画像生成手段は、前記視点情報に応じた前記仮想視点画像の画素の値を何れのカメラによる撮影に基づく画像を用いて決定するかを、前記情報生成手段により生成された前記可視性情報を用いて判断することを特徴とする請求項１１又は１２に記載の情報処理システム。
【請求項１４】
複数のカメラにより複数の方向から撮影することで得られる複数の撮影画像に基づく仮想視点画像を生成するための処理を行う情報処理方法であって、
前記複数のカメラによる特定の時刻における撮影に基づく複数の撮影画像の少なくとも何れかに含まれるオブジェクトの３次元形状モデルの構成要素の３次元位置を示すモデル情報を取得するモデル情報取得工程と、
前記複数のカメラに含まれるカメラの３次元位置を示すカメラ情報を取得するカメラ情報取得工程と、
前記３次元形状モデルの構成要素に関する可視性情報であって、当該構成要素に対応する画素が撮影画像に含まれるか否かを前記複数のカメラによる前記特定の時刻における撮影に基づく複数の撮影画像のうち２以上の撮影画像それぞれについて識別可能にする可視性情報を、前記モデル情報取得工程において取得されたモデル情報と前記カメラ情報取得工程において取得されたカメラ情報とに基づいて生成する情報生成工程とを有することを特徴とする情報処理方法。
【請求項１５】
前記複数のカメラに含まれるカメラの３次元位置と、当該カメラによる撮影に基づく撮影画像の画素に対応するオブジェクト上の３次元位置との距離を示す距離情報を取得する距離情報取得工程を有し、
前記情報生成工程は、前記モデル情報取得工程において取得されたモデル情報と、前記カメラ情報取得工程において取得されたカメラ情報と、前記距離情報取得工程において取得された距離情報とに基づいて、前記可視性情報を生成することを特徴とする請求項１４に記載の情報処理方法。
【請求項１６】
前記特定の時刻における撮影に基づく複数の撮影画像のうちの１以上の撮影画像に基づいて前記３次元形状モデルを生成するモデル生成工程と、
前記モデル生成工程において生成される前記３次元形状モデルと前記情報生成工程において生成される前記可視性情報とを関連付けて記憶部に記憶させる記憶制御工程とを有することを特徴とする請求項１４又は１５に記載の情報処理方法。
【請求項１７】
コンピュータを、請求項１乃至１０の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、仮想空間に設定された仮想カメラの仮想視点画像を生成するために用いて好適な情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
実世界の複数の異なる位置・姿勢で設置されたカメラ（以下、実カメラ）により被写体を撮影して得られた画像から、仮想空間に任意の位置・姿勢で設定された仮想カメラの画像（以下、仮想視点画像とする）を実時間で生成したいというニーズがある。これが実現すれば、例えば、サッカーやバスケットボールのハイライトシーンを様々な角度から視聴することができるため、通常のテレビなどの視聴と比較してユーザは高臨場感を得ることができる。
【０００３】
しかし、複数の画像から被写体の３次元形状（以下、形状モデル）を推定する形状推定処理や、形状モデルがカメラから見えるか否かを判定する可視性判定処理に多くの時間を要するため、実時間で仮想視点画像を生成することは困難である。この課題を解決するために、特許文献１では、カメラと仮想カメラとの幾何関係を考慮して高速に仮想視点画像を生成する方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９４５２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想視点画像をユーザが視聴するケースとして、複数の仮想視点画像を視聴するケースがある。例えば、選手にクローズアップした仮想視点画像とグランド上の選手の動きを俯瞰した仮想視点画像とを同時に視聴するケースや、会場の多数の観客がスマートフォンなどでそれぞれに仮想カメラを操作して視聴するケースなどがある。同時に複数の仮想視点画像を生成するために、前述した形状推定処理や可視性判定処理を仮想視点毎に行うと、これらの処理を行うための情報量が膨大になる。特許文献１に記載の技術は、形状推定処理や可視性判定処理が仮想カメラに依存するため、複数の仮想視点画像を生成する場合には、その分必要な情報量が膨大になってしまう。特に、可視性判定処理に必要な距離画像は撮影画像のサイズやカメラ台数に応じて増加するので、複数の仮想視点画像を生成すると、転送時間の増加やデータ容量の増大化を招いてしまう。
【０００６】
本発明は前述の問題点に鑑み、複数の仮想視点画像を容易に生成できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、複数のカメラにより複数の方向から撮影することで得られる複数の撮影画像に基づく仮想視点画像を生成するための処理を行う情報処理装置であって、前記複数のカメラによる特定の時刻における撮影に基づく複数の撮影画像の少なくとも何れかに含まれるオブジェクトの３次元形状モデルの構成要素の３次元位置を示すモデル情報を取得するモデル情報取得手段と、前記複数のカメラに含まれるカメラの３次元位置を示すカメラ情報を取得するカメラ情報取得手段と、前記３次元形状モデルの構成要素に関する可視性情報であって、当該構成要素に対応する画素が撮影画像に含まれるか否かを前記複数のカメラによる前記特定の時刻における撮影に基づく複数の撮影画像のうち２以上の撮影画像それぞれについて識別可能にする可視性情報を、前記モデル情報取得手段により取得されたモデル情報と前記カメラ情報取得手段により取得されたカメラ情報とに基づいて生成する情報生成手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の仮想視点画像を容易に生成することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る画像生成装置のハードウェア構成例を示す図である。
【図２】第１の実施形態に係る画像処理システムにおける機能構成例を示すブロック図である。
【図３】第１の実施形態における仮想視点画像を生成する処理手順の一例を示すフローチャートである。
【図４】可視性情報としてのビット配列の例を示す図である。
【図５】第２の実施形態に係る画像処理システムにおける機能構成例を示すブロック図である。
【図６】第２の実施形態における仮想視点画像を生成する処理手順の一例を示すフローチャートである。
【図７】距離画像の中の被写体領域を囲む矩形領域を説明するための図である。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
本実施形態では、推定した被写体の形状モデルの可視性情報を保存した後、前記可視性情報を用いて複数の仮想視点画像を生成する例を示す。ここで、可視性情報とは、形状モデルを構成する要素が、実世界の複数の異なる位置・姿勢で設置されたカメラ（実カメラ）のそれぞれから見えているか否かを示す情報である。以下では、形状モデルを構成する要素を３次元の点として説明する。なお、形状モデルを構成する要素はこれに限定されず、被写体を表すのに、被写体の有無を１ビットのフラグで表したり、メッシュなどの情報で表現したりしても構わない。なお、本実施形態では、仮想視点画像が静止画である場合を中心に説明するが、仮想視点画像は動画であってもよい。
【００１１】
［システム構成］
以下、本発明の実施形態について図面を参照して説明する。まず、図１及び図２を用いて、仮想視点画像を生成し出力する画像処理システムの構成について説明する。図１は、本実施形態に係る画像生成装置１のハードウェア構成例を示す図である。図２は、本実施形態に係る画像処理システムにおける機能構成例を示すブロック図である。本実施形態における画像処理システムは、画像生成装置１、撮像装置群２、および表示装置３を有する。
【００１２】
まず、図１に示す画像生成装置１のハードウェア構成例について説明する。
画像生成装置１は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、表示Ｉ／Ｆ１０５と、入力部１０６と、通信Ｉ／Ｆ１０７とを有している。ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１０４は、各種データや各種プログラム等を記憶する。表示Ｉ／Ｆ１０５は、各種情報を表示装置３に出力する。入力部１０６は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。
【００１３】
通信Ｉ／Ｆ１０７は、ネットワークを介して外部装置との通信処理を行う。また、他の例としては、通信Ｉ／Ｆ１０７は、無線により外部装置との通信を行ってもよい。
なお、後述する画像生成装置１の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、ＣＰＵ１０１は、ＲＯＭ１０２等に替えて、ＳＤカード等の記録媒体に格納されているプログラムを読み出してもよい。
【００１４】
なお、本実施形態では、画像生成装置は、１つのプロセッサ（ＣＰＵ１０１）が１つのメモリ（ＲＯＭ１０２）を用いて後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のプロセッサや複数のＲＡＭ、ＲＯＭ及びストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、ハードウェア回路を用いて一部の処理を実行するようにしても良い。また、ＣＰＵ以外のプロセッサを用いて後述する画像生成装置１の機能や処理を実現することとしてもよい。（例えば、ＣＰＵに替えてＧＰＵ（Graphics Processing Unit）を用いることとしてもよい。）
【００１５】
次に、図２を参照しながら本実施形態に係る画像処理システムについて説明する。
画像生成装置１は、撮像装置群２で撮影した同時刻の画像と各実カメラのカメラパラメータとを通信Ｉ／Ｆ１０７から取得し、仮想視点画像を生成する。そして、表示Ｉ／Ｆ１０５を経由して、生成した仮想視点画像を表示装置３へ送信する。カメラパラメータは外部パラメータと内部パラメータとで構成される。外部パラメータはカメラの位置及び姿勢の情報とし、内部パラメータは実カメラの焦点距離及びイメージセンサの中心座標の情報とする。
【００１６】
撮像装置群２は、複数の実カメラを含み、各実カメラはそれぞれ異なる方向から被写体を撮影する。本実施形態において、撮像装置群２に含まれる複数の実カメラはカメラを識別するためのカメラ番号を持つ。各実カメラは画像生成装置１と接続され、各実カメラの撮像画像や各実カメラのカメラパラメータをそれぞれ画像生成装置１に送信する。また、これらの実カメラは現実世界の１つの時刻情報で同期され、撮影した画像には時刻情報が付与される。なお、カメラパラメータは撮像画像に同期して送信しても構わないし、撮影前や必要に応じて非同期で送信しても構わない。
表示装置３は、画像生成装置１で生成された画像を受信し、仮想視点画像を表示する。
【００１７】
画像生成装置１は、カメラ情報取得部２００、形状推定部２１０、距離推定部２２０、可視性情報保存部２３０、及び仮想視点画像生成部２４０を備えている。
カメラ情報取得部２００は、撮像装置群２からカメラ情報として複数の実カメラで撮影された同時刻の撮像画像と各実カメラのカメラパラメータとをそれぞれ通信Ｉ／Ｆ１０７を経由して取得する。形状推定部２１０から仮想視点画像生成部２４０までの各部は、カメラパラメータをカメラ情報取得部２００から取得する。
形状推定部２１０は、撮像画像とカメラパラメータとを用いて被写体の３次元形状を推定する。そして、形状推定結果である形状モデルを距離推定部２２０、可視性情報保存部２３０、及び仮想視点画像生成部２４０へ出力する。
【００１８】
距離推定部２２０は、形状モデルとカメラパラメータとを用いて、形状モデルの各点と撮像面との距離を推定し、その距離情報を可視性情報保存部２３０へ出力する。
可視性情報保存部２３０は、形状モデルと距離情報とを用いて、形状モデルの各点が、各実カメラから見えているか否かを示す可視性を判定し、その結果をＨＤＤ１０４に保存する。
【００１９】
仮想視点画像生成部２４０は、１枚の仮想視点画像を生成するために、１つの仮想視点情報（仮想カメラのカメラパラメータ）の指定を受け付け、指定に応じて仮想視点画像を生成する。仮想視点情報は、仮想視点を指定するユーザ（操作者）が入力部１０６を操作することで指定される。なお、仮想視点情報の指定に関してはこれに限定されず、被写体を認識するなどにより指定しても構わない。生成した仮想視点画像は表示装置３へ出力される。
【００２０】
［動作フロー］
図３のフローチャートを用いて、画像生成装置１の処理の流れを詳細に説明する。本フローチャートでは、Ｓ３１０は複数の実カメラで撮影した同時刻の画像と各カメラのカメラパラメータを取得するステップ、Ｓ３２０は形状推定処理のステップ、Ｓ２３０は距離推定処理のステップである。そして、Ｓ３４０は可視性判定してその結果を保存する処理のステップ、Ｓ３５０は入力された複数の仮想視点画像を生成して出力する処理のステップである。以下に、詳細なフローを説明する。
【００２１】
＜Ｓ３１０＞
Ｓ３１０では、カメラ情報取得部２００は、カメラ情報として同時刻の各実カメラの撮像画像とカメラパラメータとを取得する。そして、取得したカメラパラメータを形状推定部２１０、距離推定部２２０、可視性情報保存部２３０、及び仮想視点画像生成部２４０に送る。また、カメラ情報取得部２００は、各実カメラの撮像画像を形状推定部２１０へ送る。
【００２２】
＜Ｓ３２０＞
Ｓ３２０では、形状推定部２１０は、各実カメラの撮像画像とカメラパラメータとを取得し、被写体の３次元形状を推定する。そして、推定した結果の形状モデルを距離推定部２２０、可視性情報保存部２３０、及び仮想視点画像生成部２４０へ送る。
【００２３】
ここで、３次元形状を推定する処理は、例えば、被写体のシルエット画像を生成する処理と３次元形状を推定する処理とで構成される。シルエット画像は被写体領域を白、それ以外の領域を黒で表現した２値画像である。シルエット画像は被写体を撮影した撮像画像から、被写体が存在しない時に予め撮影した背景画像との差分を算出し、閾値以上をシルエット（前景領域）とする背景差分法などの一般的な手法で生成できる。ただし、シルエット画像を生成する方法はこれに限定されない。例えば、人体を認識するなどの方法を用いても構わない。
【００２４】
次に形状推定部２１０は、生成した全実カメラのシルエット画像とカメラパラメータとを用いて、被写体の３次元形状を推定する。３次元形状の推定には、例えば、Ｖｉｓｕａｌ  Ｈｕｌｌ手法を用いる。この処理の結果、被写体の形状モデルを表現した３Ｄ点群（３次元座標を持つ点の集合）が得られる。３Ｄ点群の座標Ｘwは、例えば、実世界の任意の位置を原点とする３つの直交する軸（ｘ軸，ｙ軸，ｚ軸）を持つ世界座標系で表現される。
【００２５】
＜Ｓ３３０＞
Ｓ３３０では、距離推定部２２０は、各実カメラのカメラパラメータと形状推定部２１０によって得られた３Ｄ点群とを取得し、実カメラから被写体までの距離を推定する。そして、推定した結果の距離画像を可視性情報保存部２３０へ送る。
【００２６】
ここで、実カメラから被写体までの距離を推定し、距離画像を生成する方法について説明する。距離画像は撮像画像と同じ幅、高さとし、各画素には距離値が格納される。例えば、まず、３Ｄ点群の点Ｐの座標Ｘwに、外部行列Ｔeをかけることで、カメラ座標系のカメラ座標Ｘcに変換する。ここで外部行列Ｔeは実カメラの外部パラメータから構成される行列である。カメラ位置を原点に実カメラのレンズが向く方向をカメラ座標系のｚ軸の正とすると、カメラ座標Ｘcのｚ座標がその点を実カメラから見た場合の距離値である。
【００２７】
次に、カメラ座標Ｘcの画像座標Ｘiを算出し、距離値を格納する距離画像の座標を求める。画像座標Ｘiはカメラ座標Ｘcをｚ座標で正規化した正規化カメラ座標に内部行列Ｔiをかけることで算出される。なお、内部行列Ｔiは実カメラの内部パラメータから構成される行列である。画像座標Ｘiの画素に既に計算した別の点の距離値が格納されている場合、その値と画像座標Ｘiのｚ座標とを比較する。そして、ｚ座標の方が小さい場合に、ｚ座標を画像座標Ｘiにおける画素値として新しく格納する。３Ｄ点群の全ての点Ｐにこれらの処理を実行することで１台の実カメラの距離画像を生成することができる。さらに、全ての実カメラについて処理することで、全実カメラの距離画像を生成することができる。
【００２８】
＜Ｓ３４０＞
Ｓ３４０では、可視性情報保存部２３０は、各実カメラの距離画像及びカメラパラメータと、３Ｄ点群とを取得し、３Ｄ点群を構成する全点について可視性を判定し、その結果をＨＤＤ１０４に保存する。また、その結果を仮想視点画像生成部２４０へ送る。
【００２９】
可視性を判定してその結果を保存する方法について述べる。まず、３Ｄ点群の点Ｐの座標Ｘwをカメラ座標系と画像座標系とに変換し、カメラ座標Ｘcと画像座標Ｘiとを算出する。そして、画像座標Ｘiにおける距離画像の画素値とカメラ座標Ｘcのｚ座標（実カメラから点までの距離）とを比較する。この比較の結果、その差分ｄが閾値以下である場合は点Ｐは実カメラから可視と判定し、差分ｄが閾値を超える場合は点Ｐはカメラから不可視と判定する。以上の処理を全実カメラについて処理することで、１つの点Ｐがそれぞれの実カメラから見えるか否かを判定できる。さらに、３Ｄ点群の全点について処理することで可視性情報を生成することができる。
【００３０】
各点の可視性情報は、例えば実カメラごとに可視性がわかるようにビット配列で保存される。図４には、可視性情報としてのビット配列４００の例を示す。ビット配列４００は、最下位ビット４１０を１台目の実カメラ、最上位ビット４２０を実カメラの台数番目の実カメラの可視性情報とする。各ビットは、対応する実カメラの可視性を示しており、不可視の場合は０で表現され、可視の場合は１で表現されている。例えば、図４に示すビット配列４００の場合は、１，２，５，７，８台目の実カメラから該当する点が見え、３，４，６台目の実カメラからはその該当する点が見えないことを８ビットで表現している。このようなビット配列を３Ｄ点群の点数分設けることで点毎に関連付けて全点の可視性情報を保存できる。なお、図４に示す例では可視性情報を０か１で表現したが、差分ｄを用いて段階的に表現しても良い。この場合、各点は実カメラ台数分の差分ｄを持つように表現される。
【００３１】
＜Ｓ３５０＞
Ｓ３５０では、仮想視点画像生成部２４０は、各実カメラのカメラパラメータ、３Ｄ点群、及び可視性情報を取得し、１つ以上の仮想視点画像を生成する。１つ以上の仮想視点画像に係る仮想視点は、ユーザの操作により入力部１０６を介して取得しても良いし、１つ以上の仮想カメラの位置・姿勢に基づいて予め決めておいても良い。１つ以上の仮想視点の取得手段は他のいかなる方法であっても良い。最後に、生成した１つ以上の仮想視点画像を、表示Ｉ／Ｆ１０５を介して表示装置３へ出力する。
【００３２】
ここで、仮想視点画像生成部２４０が仮想視点画像を生成する方法について説明する。仮想視点画像生成部２４０は、まず、仮想カメラから見た前景画像（被写体領域の画像）を生成する処理と背景画像を生成する処理とを実行する。そして、生成した背景画像に前景画像を合成することで仮想視点画像を生成する。
【００３３】
まず、仮想視点画像の前景画像を生成する方法について説明する。仮想視点画像の前景画像は３Ｄ点群に色を付け、色が付いた点群を既存のＣＧレンダリング手法によりレンダリングすることで生成できる。３Ｄ点群に色を付けるために、まず、３Ｄ点群と可視性情報とを参照し、色を付けたい点Ｐの座標Ｘwと可視性情報とを取得する。Ｓ３４０において、可視性情報は３Ｄ点群の各点に付与されているので、点Ｐとその可視性とは同じ識別番号で取得できる。
【００３４】
次に、可視性情報のビット配列を参照し、点Ｐが見える実カメラを特定する。特定した実カメラの画像座標系に点Ｐの座標Ｘwを変換し、撮影したカメラ画像上の画像座標Ｘiの画素を点Ｐの色とする。点Ｐが複数の実カメラから見えている場合は、それぞれの実カメラで撮影した画像から画素値を取得し、例えば、それらの平均値を点Ｐの色とする。３Ｄ点群の全点について同じ処理を繰り返すことで全点に色を付けることができる。点Ｐの可視性情報が１または０のビット配列ではなく段階的な値で表現されている場合、可視と判定された実カメラから取得した画素値の重み付き平均値を点Ｐの色とする。可視の判定は、ビット配列の場合と同様に、閾値を設けて特定する。重みは可視と判定された実カメラの差分ｄの比を算出することで得ることができる。ただし、これらの方法に限定されない。例えば、平均値ではなく、最も距離に近い実カメラから取得した画素値を用いるなどの方法を用いても構わない。
【００３５】
次に、仮想視点画像の背景画像を生成する。まず、背景３Ｄモデルにおいて例えば競技場などの建物の頂点を設定する。背景３Ｄモデルは、競技場などのＣＧモデルを予め作成し、システム内に保存しておいたＣＧモデルを用いる。これらの頂点を仮想視点に近い２台の実カメラ（第１のカメラ、第２のカメラとする）のカメラ座標系と仮想視点のカメラ座標系とに変換する。次に、仮想視点と第１のカメラとの対応点と、仮想視点と第２のカメラとの対応点とを用いて、仮想視点と第１のカメラとの間の第１の変換行列と、仮想視点と第２のカメラとの間の第２の変換行列とを算出する。仮想視点の背景画像の各画素値を算出するために、各画素の座標を第１及び第２の変換行列を用いて、それぞれの背景画像の座標系に変換し、変換後の座標の画素値を取得する。得られた２つの画素値の平均を算出することで背景画像の画素値とする。ただし、使用する実カメラの台数はこれに限定されない。仮想視点に近いｎ台の実カメラを用いる場合は、同様の点順で第１〜第ｎの変換行列を算出し、これらの変換行列を用いて変換後の座標を取得する。そして、ｎ個の画素値の平均を背景画像の画素値とする。
【００３６】
このようにして得られた仮想視点画像の背景画像上に前景画像を重ねることで仮想視点画像が生成できる。さらに、仮想視点に依存しない３Ｄ点群や可視性情報は変えずに、仮想視点情報だけを変えて同じ処理を繰り返すことで、同時刻の複数の仮想視点画像を生成することができる。
【００３７】
以上のように本実施形態によれば、全実カメラの距離画像を保存せず、形状モデルを表現した３Ｄ点群のすべての点に関する可視性情報を保存することでデータ量を削減することができる。また、取得した可視性情報は、３Ｄ点群のすべての点に対応しているため、同時刻の複数の仮想視点画像を生成する際は、保存した可視性情報を共用することができる。そして、仮想カメラに依存する仮想視点画像の生成処理だけを複数回処理することで処理負荷の増大を防ぐことができる。
【００３８】
（第２の実施形態）
第１の実施形態では、仮想視点画像を生成する前に可視性情報を生成して保存し、その可視性情報を用いて３Ｄ点群に色を付けることで仮想視点の前景画像を生成した。本実施形態では、データ量を削減した距離画像を用いて３Ｄ点群の可視性を判定しながら３Ｄ点群に色を付け、仮想視点の前景画像を生成する例を示す。なお、本実施形態における画像生成装置のハードウェア構成は図１と同様であるため、説明は省略する。
【００３９】
［システム構成］
図５は、本実施形態における仮想視点画像を生成し出力する画像処理システムの機能構成例を示すブロック図である。本実施形態における画像処理システムも第１の実施形態と同様に、画像生成装置１、撮像装置群２、および表示装置３を有する。
画像生成装置１は、カメラ情報取得部２００、形状推定部２１０、距離推定部２２０、距離画像保存部５３０、及び仮想視点画像生成部５４０を有する。なお、カメラ情報取得部２００、形状推定部２１０、及び距離推定部２２０は第１の実施形態と同様であるので説明は省略する。
【００４０】
距離画像保存部５３０は、距離推定部２２０で生成した、撮像画像と同じ画像サイズの距離画像から、被写体を囲む矩形領域の画像を矩形領域距離画像として生成し、ＨＤＤ１０４に保存する。そして、全実カメラ分の矩形領域距離画像を仮想視点画像生成部５４０へ出力する。
仮想視点画像生成部５４０は、矩形領域距離画像を用いて１つ以上の仮想視点画像を生成する。本実施形態では、矩形領域距離画像を用いて各点の可視性を判定しながら点の色付け処理を進めることで、仮想視点画像の前景画像を生成する。この点が第１の実施形態の仮想視点画像生成部２４０の処理と異なっている。
【００４１】
［動作フロー］
次に、図６のフローチャートを用いて、本実施形態に係る画像生成装置１の処理の流れを説明する。本フローチャートにおけるＳ３１０、Ｓ３２０、及びＳ３３０は第１の実施形態で説明した図３と処理内容は同様であるため、説明は省略する。Ｓ６４０は距離画像から被写体を囲む矩形領域を算出し、画像取得処理として、距離画像を切り出して矩形領域距離画像を取得して保存するステップである。そして、Ｓ６５０は、切り出した距離画像を用いて可視判定を処理しながら、点に色を付けるステップである。以下に、Ｓ６４０及びＳ６５０の詳細な処理を説明する。
【００４２】
＜Ｓ６４０＞
Ｓ６４０では、距離画像保存部５３０は、距離推定部２２０から距離画像を取得する。そして、各実カメラの距離画像中の被写体領域を囲む矩形領域を算出し、該距離画像からその矩形領域の画像を切り出して矩形領域距離画像を生成し、ＨＤＤ１０４に保存する。また、距離画像保存部５３０は、矩形領域の情報と矩形領域距離画像とを仮想視点画像生成部５４０へ送信する。
【００４３】
ここで、各実カメラの距離画像から矩形領域距離画像を生成し、保存する方法について説明する。図７は、距離画像の中の被写体領域を囲む矩形領域を説明するための図である。距離画像７００は、Ｓ３３０で生成されたある実カメラの距離画像である。まず、距離画像７００を既存のラベリング処理により被写体領域７１０、７１１がラベリングされたラベリング画像を生成する。この結果、被写体領域７１０の画素値は１、被写体領域７１１の画素値は２、それ以外の画素値は０にラベリングされる。
【００４４】
矩形領域７２０は、頂点７３０、７３１の２点で表現され、これらの座標は距離画像の座標系７４０で表現される。矩形領域７２１についても同様である。頂点７３０、７３１は、ラベリング画像の画素値が１である画素集合において、Ｘ座標の最小値Ｘmin及び最大値Ｘmaxと、Ｙ座標の最小値Ｙmin及び最大値Ｙmaxとを算出することで得られる。この結果、頂点７３０の座標は（Ｘmin，Ｙmin）、頂点７３１は（Ｘmax，Ｙmax）と表現できる。なお、矩形領域はＳ３２０の形状推定処理で生成するシルエット画像を基に、前述と同様の処理で算出しても良い。
【００４５】
得られた矩形領域の大きさを画像サイズとする矩形領域距離画像は、距離画像の矩形領域内の画素値Ｉ（Ｘ，Ｙ）を矩形領域距離画像の画素Ｉr（Ｘr，Ｙr）にコピーすることで生成される。Ｘr，Ｙrは、頂点７３０を原点とする矩形領域距離画像の座標系７４１で表現され、Ｘr＝Ｘ−Ｘmin，Ｙr＝Ｙ−Ｙminとして算出できる。ラベルの数が２以上の場合、各ラベルにおいて、矩形領域情報と矩形領域距離画像とを生成する。実カメラ毎に生成された矩形領域の情報および矩形領域距離画像は、いずれの実カメラの距離画像かを識別できるように、各実カメラのカメラ番号を付与して保存する。
【００４６】
＜Ｓ６５０＞
Ｓ６５０では、仮想視点画像生成部５４０は、各実カメラのカメラパラメータ、３Ｄ点群、矩形領域情報、及び矩形領域距離画像を取得し、３Ｄ点群の各点の可視性情報を判定しながら仮想視点の前景画像を生成する。そして、仮想視点の背景画像を、Ｓ３５０と同じ方法で生成し、その背景画像上に前景画像を重畳することで仮想視点画像を生成する。仮想視点画像生成部５４０は、生成した仮想視点画像を表示装置３へ送信する。
【００４７】
ここで、矩形領域距離画像を用いて３Ｄ点群の各点の可視性を判定しながら仮想視点の前景画像を生成する方法について説明する。まず、Ｓ３５０と同様に、３Ｄ点群に色を付け、色が付いた点群を既存のＣＧレンダリング手法によりレンダリングすることで仮想視点画像の前景画像を生成する。３Ｄ点群に色を付けるために、まず、３Ｄ点群と矩形領域距離画像の情報とを参照し、色を付ける点Ｐの座標Ｘwの可視性を判定する。
【００４８】
可視性を判定する際には、まず、３Ｄ点群の点Ｐの座標Ｘwをカメラ座標系と画像座標系とに変換し、カメラ座標Ｘcと画像座標Ｘiとを算出する。さらに、画像座標Ｘiから矩形領域距離画像の矩形領域の開始点の座標を引くことで、矩形領域距離画像の座標Ｘjを算出する。座標Ｘjにおける矩形領域距離画像の画素値とＸcのｚ座標（実カメラから点までの距離）とを比較する。この比較の結果、その差分ｄが閾値以下である場合は、点Ｐは実カメラから可視と判定し、差分ｄが閾値を超える場合は、点Ｐは実カメラから不可視と判定する。この処理を全ての実カメラについて繰り返すことで点Ｐの可視性情報を生成することができる。
【００４９】
以上のように可視性情報を生成することによって、Ｓ３５０と同様の方法で点Ｐの色を算出することができる。以上の処理を３Ｄ点群の全点について処理することで３Ｄ点群に色を付けることができる。背景画像の生成方法は第１の実施形態と同様の手順であり、背景画像上に前景画像を重畳することで仮想視点画像を生成する。
【００５０】
以上のように本実施形態によれば、実カメラで撮影した画像サイズの距離画像を保存せず、被写体領域を囲む矩形領域にデータ量を削減した矩形領域距離画像を保存するようにした。これにより、同時刻に複数の仮想視点画像を生成する場合に、この矩形領域距離画像を用いて可視性を判定し、データ転送時間の増大やデータ容量の増加を防ぐことができる。
【００５１】
（その他の実施形態）
前述した実施形態では、画像生成装置において被写体の形状モデルを推定したが、形状推定部２１０及び距離推定部２２０の処理を別の装置で行ってもよい。この場合、カメラ情報取得部２００は、さらに被写体の形状モデルを表現する３Ｄ点群と、距離画像とをその装置から取得するようにする。
【００５２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５３】
２３０  可視性情報保存部
２４０  仮想視点画像生成部
【図１】
2019061684.tif 000003
【図２】
2019061684.tif 000004
【図３】
2019061684.tif 000005
【図４】
2019061684.tif 000006
【図５】
2019061684.tif 000007
【図６】
2019061684.tif 000008
【図７】
2019061684.tif 000009