(57)【要約】【課題】仮想視点画像の生成に関する３次元モデルのデータ量を削減できるようにする。【解決手段】複数のカメラで撮影された映像に基づく被写体の形状を表す３次元モデル取得する取得手段と、前記取得手段によって取得された３次元モデルと前記複数のカメラの位置との関係に基づく情報を生成する生成手段と、前記生成手段によって生成された情報に基づいて、前記３次元モデルを補正する補正手段と、を備える。【選択図】図１
2019128641.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラで撮影された映像に基づく被写体の形状を表す３次元モデルを取得する取得手段と、
前記取得手段によって取得された３次元モデルと前記複数のカメラの位置との関係に基づく情報を生成する生成手段と、
前記生成手段によって生成された情報に基づいて、前記３次元モデルを補正する補正手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記３次元モデルは点群で表現されるモデルであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段によって生成される情報は、前記３次元モデルの点群の各点が、前記複数のカメラのそれぞれから前記被写体を観察できるか否かを示す情報であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記補正手段は、前記被写体を観察できるか否かを示す情報に基づき、前記複数のカメラのいずれからも観察できない点を前記点群から削除して前記３次元モデルを補正することを特徴する請求項３に記載の画像処理装置。
【請求項５】
前記補正手段は、前記取得手段によって取得された３次元モデルの点群から周囲の点の状況に応じて点を選択する選択手段を備え、
前記生成手段は、前記選択手段によって選択された点において、前記複数のカメラのそれぞれから前記被写体を観察できるか否かを示す情報を生成することを特徴する請求項３又は４に記載の画像処理装置。
【請求項６】
前記選択手段は、前記取得手段によって取得された３次元モデルの点群のうち、周囲に点が不足している点を選択することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
複数のカメラで撮影された映像に基づく被写体の形状を表す３次元モデルを取得する取得工程と、
前記取得工程において取得された３次元モデルと前記複数のカメラの位置との関係に基づく情報を生成する生成工程と、
前記生成工程において生成された情報に基づいて、前記３次元モデルを補正する補正工程と、
を備えることを特徴とする画像処理方法。
【請求項８】
複数のカメラで撮影された映像に基づく被写体の形状を表す３次元モデルを取得する取得工程と、
前記取得工程において取得された３次元モデルと前記複数のカメラの位置との関係に基づく情報を生成する生成工程と、
前記生成工程において生成された情報に基づいて、前記３次元モデルを補正する補正工程と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、仮想視点画像の生成に用いられる３次元モデルを生成するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
昨今、複数のカメラを異なる位置に設置して多視点で同期撮影し、当該撮影により得られた複数の視点からの画像を用いて仮想視点画像を生成する技術が注目されている。このような複数の視点からの画像から仮想視点画像を生成する技術によれば、例えば、サッカーやバスケットボールのハイライトシーンを様々な角度から視聴することができるため、通常の画像と比較してユーザに高臨場感を与えることができる。仮想視点画像の作成に関する技術として、Model Based Rendering技術が知られている。この技術では、対象を取り囲むように多数のカメラを配置し、同じ対象を撮影するために複数のカメラが同じ地点を中心にして撮影する。以下、この撮影対象となる中心をカメラの注視点と呼称する。この技術によって３次元モデルを復元することで、任意の視点からの映像の合成を可能とし、選手の位置や動きを再現できるのでスポーツ分析にも有用である。
【０００３】
３次元モデルを構成する手法としては、視体積交差法もしくはＶｉｓｕａｌＨｕｌｌ（以降、ＶｉｓｕａｌＨｕｌｌに統一して呼称）と呼ばれる３次元モデル生成手法が知られている。ＶｉｓｕａｌＨｕｌｌでは、３次元モデルの対象となる被写体について、各物理カメラの映像上の被写体シルエットを、物理カメラの光学主点位置から仮想的に被写体方向に逆投影する。その結果、前記光学主点位置を頂点とし、断面が前記被写体シルエットとなる錐体領域を形成する。そして、物理カメラ毎に形成された前記錐体領域の重複領域（論理積）を被写体の３次元モデルとする。
【０００４】
また、一般的に３次元モデルを表す方法として点群データが用いられ、存在する点をその座標で表現して３次元モデルが構成される。ところが、ＶｉｓｕａｌＨｕｌｌに基づいて作成された３次元モデルを点群等のデータで表す場合、外部から見えない点のデータまで点群データに保持されることになる。これらのデータは仮想視点画像を生成する際に不要なデータである。
【０００５】
そこで、このようなデータを削減する方法として、特許文献１に記載されているような技術がある。この技術では、ＶｉｓｕａｌＨｕｌｌを適用することにより形成される第１のソリッドモデルと、第１のソリッドモデルにエロージョン処理を行うことにより得られる第２のソリッドモデルとを生成する。さらに、第１のソリッドモデルにダイレーション処理を行うことにより得られる第３のソリッドモデルと、第１のソリッドモデルに適応的エロージョン処理を行うことにより得られる第４のソリッドモデルとを生成する。最大フロー／最小カット演算手段は、第４のソリッドモデルの表面と第３のソリッドモデルの表面との間に形成される領域について最大フロー／最小カットアルゴリズムを適用し、エネルギーの総和が最小となる頂点群を求めて３次元モデルを生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５０６８７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら特許文献１に記載の方法では、物理的に表面に厚みを持たせた３次元モデルを生成するが、実際には見えない点のデータも保持することになる。そのため、仮想視点画像を生成するのに不要なデータを十分に削減することができない。
【０００８】
本発明は前述の問題点に鑑み、仮想視点画像の生成に関する３次元モデルのデータ量を削減できるようにすることを目的としている。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、複数のカメラで撮影された映像に基づく被写体の形状を表す３次元モデルを取得する取得手段と、前記取得手段によって取得された３次元モデルと前記複数のカメラの位置との関係に基づく情報を生成する生成手段と、前記生成手段によって生成された情報に基づいて、前記３次元モデルを補正する補正手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、仮想視点画像の生成に関する３次元モデルのデータ量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る画像処理システムの機能構成例を説明するための図である。
【図２】３次元モデル補正部の詳細な構成例を示すブロック図である。
【図３】可視性データを生成する処理手順の一例を示すフローチャートである。
【図４】点群データを補正する処理手順の一例を示すフローチャートである。
【図５】第１の実施形態に係る画像処理システムの機能構成の他の例を説明するための図である。
【図６】第２の実施形態に係る画像処理システムの機能構成例を説明するための図である。
【図７】点群データを補正する処理手順の一例を示すフローチャートである。
【図８】補正の判定対象の点の周囲の点を説明するための図である。
【図９】複数のカメラが被写体を囲むように配置されている様子を示す図である。
【図１０】可視性データの一例を示す図である。
【図１１】画像処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
（第１の実施形態）
図１は、本実施形態に係る画像処理システムの機能構成例を説明するための図である。本実施形態では、競技場（スタジアム）やコンサートホールなどの施設に複数のカメラを設置して撮影を行う画像処理システムを例に説明する。
図１において、画像処理システム１００は、カメラシステム１１０、スイッチングハブ１２０、タイムサーバ１３０及び画像処理装置１０００を有する。画像処理装置１０００は、カメラ情報取得部１４０、３次元モデル生成部１５０、可視性データ生成部１６０、３次元モデル補正部１７０及び記憶部１８０を有する。また、画像処理システム１００は、ユーザ端末２００と接続されている。さらにユーザ端末２００は、制御部２１０、仮想視点映像生成部２２０、仮想カメラ操作部２３０及び仮想視点映像出力部２４０を有する。
【００１４】
カメラシステム１１０は複数のカメラで構成され、被写体を囲むように配置されている。図９には、複数のカメラ９１１０ａ〜ｈが被写体９００を囲むように配置されている様子を示す。以下、特に区別しない場合にはカメラ９１１０と称す。ただし、カメラの台数、配置はこれに限定されない。カメラ９１１０ａ〜ｈはネットワークで接続されており、スイッチングハブ１２０に接続されている。また、タイムサーバ１３０は同期信号をスイッチングハブ１２０とネットワークとを介してそれぞれのカメラ９１１０ａ〜ｈに送り、カメラ９１１０ａ〜ｈはそれぞれ同期をとって被写体を撮影する。
【００１５】
次に、画像処理装置１０００の詳細な構成について説明する。画像処理装置１０００は、カメラ情報やカメラで撮影された映像を入力し、３次元モデルに係る情報を生成する。
３次元モデル生成部１５０は、カメラ９１１０ａ〜ｈで撮影された映像を入力し、後述する方法で前景画像、被写体の形状を表す３次元モデルを表現するデータとして、例えば点群を生成する。可視性データ生成部１６０は可視性データを生成する。ここで可視性データとは、３次元モデルと複数のカメラの位置との関係に基づく情報であって、点群を構成する点が撮影時にカメラ９１１０から観察できるか否かを表すデータである。例えば、ある点に関して、カメラ９１１０に映っていれば１で表し、映っていなければ０で表すデータである。
【００１６】
３次元モデル補正部１７０は、前記可視性データを用いて点群のデータを補正する。記憶部１８０は前景画像、３次元モデル、可視性データを記憶する。記憶部１８０はハードディスクやメモリ等で構成することが可能で、単なるバッファであっても良い。また、記憶部１８０は仮想視点映像を生成するために必要とする映像の時刻情報が入力され、蓄積されている前景画像、３次元モデルを表すデータと可視性データとから該当する時刻のデータがユーザ端末２００に出力される。
【００１７】
カメラ情報取得部１４０は、これらのカメラ９１１０毎にカメラ情報として外部パラメータと内部パラメータとを取得する。外部パラメータはカメラの位置及び姿勢の情報とし、内部パラメータはカメラの焦点距離及び画像中心の情報とする。カメラシステム１１０が固定されていれば、カメラ情報取得部１４０は、事前に入力されたカメラ情報を読み出して取得しても良い。一方、カメラシステム１１０のカメラが雲台等で可動する場合は、適宜、その姿勢、方向、画角などのカメラ情報を取得する。
【００１８】
次に、ユーザ端末２００について説明する。制御部２１０は、画像処理システム１００を構成するそれぞれのブロックに対してネットワークを通じて動作状態の管理及びパラメータ設定制御などを行う。また、制御部２１０は、仮想視点映像を生成するフレームを表す時刻情報を記憶部１８０に出力する。仮想カメラ操作部２３０は、ユーザが仮想カメラを操作することによってその位置、画角、方向などを設定する。仮想視点映像生成部２２０は仮想視点映像を生成するのに必要なデータを入力し、入力されたデータを用いて、位置、画角、方向などに基づいて仮想視点映像を生成する。生成された仮想視点映像は仮想視点映像出力部２４０を介して、不図示のディスプレイに表示されたり、映像データとして伝送されたり、蓄積されたりする。
【００１９】
図１１は、図１に示す画像処理装置１０００のハードウェア構成例を示すブロック図である。
画像処理装置１０００は、ＣＰＵ１１０１と、ＲＯＭ１１０２と、ＲＡＭ１１０３と、ＨＤＤ１１０４と、表示Ｉ／Ｆ１１０５と、入力部１１０６と、通信Ｉ／Ｆ１１０７とを有している。ＣＰＵ１１０１は、ＲＯＭ１１０２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１１０３は、ＣＰＵ１１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１１０４は、各種データや各種プログラム等を記憶するとともに図１の記憶部１８０としても機能する。表示Ｉ／Ｆ１１０５は、各種情報を不図示の表示装置に出力する。入力部１１０６は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。
【００２０】
通信Ｉ／Ｆ１１０７は、ネットワークを介して外部装置との通信処理を行い、例えばカメラシステム１１０から映像やカメラ情報を取得する。また、他の例としては、通信Ｉ／Ｆ１１０７は、無線により外部装置との通信を行ってもよい。
なお、後述する画像処理装置１０００の機能や処理は、ＣＰＵ１１０１がＲＯＭ１１０２又はＨＤＤ１１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、ＣＰＵ１１０１は、ＲＯＭ１１０２等に替えて、ＳＤカード等の記録媒体に格納されているプログラムを読み出してもよい。
【００２１】
なお、本実施形態では、画像処理装置は、１つのプロセッサ（ＣＰＵ１１０１）が１つのメモリ（ＲＯＭ１１０２）を用いて後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のプロセッサや複数のＲＡＭ、ＲＯＭ及びストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、ハードウェア回路を用いて一部の処理を実行するようにしても良い。
【００２２】
次に、３次元モデル生成部１５０の構成及び動作について説明する。本実施形態の３次元モデル生成部１５０は、カメラシステム１１０から取得したデータの処理を行う。３次元モデル生成部１５０では、入力された画像のフレームデータから選手等の対象を前景領域と判断して切り出し、切り出した結果を前景画像とする。そして、カメラシステム１１０で撮影された映像から３次元モデルを生成する。また、３次元モデル生成部１５０は、前景画像を記憶部１８０に書き込む。３次元モデルの生成方法については様々な手法があり、例えば、被写体のシルエット画像を生成する処理と３次元モデルを推定する処理とで構成される。
【００２３】
シルエット画像は被写体領域を白、それ以外の領域を黒で表現した２値画像である。シルエット画像は被写体を撮影した撮影画像から、例えば試合開始前などに被写体が存在しない時に予め撮影した背景画像との差分を算出し、閾値以上をシルエット（前景領域）とする背景差分法などの一般的な手法で生成できる。ただし、シルエット画像を生成する方法はこれに限定されない。例えば、人体を認識するなどの方法を用いても構わない。
【００２４】
次に、生成した全てのカメラ９１１０ａ〜ｈで撮影されたそれぞれ映像のシルエット画像とカメラ情報とを用いて、被写体の３次元モデルを推定する。３次元モデルの推定には、例えば、Ｖｉｓｕａｌ  Ｈｕｌｌ手法を用いる。この処理の結果、被写体の形状を表す３次元モデルを表現した点群データが得られる。点群データは３次元座標を持つ点の集合であり、例えば存在する点の座標のリストとなっている。３次元モデルの点群データは、可視性データ生成部１６０及び３次元モデル補正部１７０に入力される。
【００２５】
可視性データ生成部１６０は、３次元モデルの点群データとカメラ情報取得部１４０で取得されたカメラ情報とから、３次元モデルの点群の各点とカメラとの距離を推定し、距離画像を生成する。そして、３次元モデルと距離画像とを用いて、３次元モデルの各点が、各カメラシステムから観察できるか否かを示す可視性を判定する。
【００２６】
図３は、可視性データ生成部１６０による可視性データを生成する処理手順の一例を示すフローチャートである。
まず、ステップＳ３０１において、可視性データ生成部１６０は、カメラシステム１１０から最初に処理を行うカメラを選択する。
次に、ステップＳ３０２において、可視性データ生成部１６０は、３次元モデルに対して、全てのカメラの可視性データの生成が終了したか否かを判定する。この判定の結果、全てのカメラの可視性データの生成が終了した場合は、本処理を終了し、そうでない場合はステップＳ３０３に進む。
【００２７】
ステップＳ３０３においては、可視性データ生成部１６０は、実カメラから被写体までの距離を推定して距離画像を生成する。距離を推定する方法に関しては特に限定しないが、例えば、３次元モデルの点群の点にカメラの外部パラメータで構成される行列を掛け、カメラ座標系の座標を算出する。そして、カメラ位置を原点にしてカメラのレンズが向く方向系をカメラ座標系のｚ軸の正とするとこの座標の値が距離値となり、この座標の画像座標を算出して距離画像の座標を求めることができる。
【００２８】
ステップＳ３０４において、可視性データ生成部１６０は、３次元モデルの点群の全ての点について処理を終了したか否かを判定する。この判定の結果、全ての点の処理が終わっていない場合はステップＳ３０５に進み、全ての点の処理が終わった場合はステップＳ３１３に進む。ステップＳ３１３において、可視性データ生成部１６０は、カメラシステム１１０の中の次のカメラを選択し、ステップＳ３０２に進む。
【００２９】
ステップＳ３０５において、可視性データ生成部１６０は、３次元モデルの点群の中の選択された点の点座標Ｘwをカメラ座標Ｘcに変換する。
ステップＳ３０６において、可視性データ生成部１６０は、３次元モデルの点群の中の選択された点の点座標Ｘwを画像座標Ｘiに変換する。
ステップＳ３０７において、可視性データ生成部１６０は、カメラ座標Ｘcのｚ軸の座標を距離値Ｄとする。
【００３０】
ステップＳ３０８において、可視性データ生成部１６０は、ステップＳ３０３で算出した距離画像での画像座標Ｘiにおける距離値Ｄxと距離値Ｄとの差分の絶対値ｄと閾値Ｔｈと比較する。この比較の結果、差分の絶対値ｄが閾値Ｔｈ以下である場合は、ステップＳ３１０に進み、そうでない場合はステップＳ３０９に進む。なお、本実施形態では差分の絶対値を用いたが、これに限定されない。例えば距離値Ｄxと距離値Ｄとの比を算出して閾値と比較しても構わない。この場合、１に近い値を閾値Ｔｈとし、その比が閾値Ｔｈ以上である場合はステップＳ３１０に進み、そうでなければステップＳ３０９に進む。
【００３１】
ステップＳ３０９において、可視性データ生成部１６０は、選択された点は観察されないものとして可視性判定結果を０とし、ステップＳ３１１に進む。
ステップＳ３１０において、可視性データ生成部１６０は、選択された点がカメラから観察可能であるものとして可視性判定結果を１とし、ステップＳ３１１に進む。
【００３２】
ステップＳ３１１において、可視性データ生成部１６０は、可視性判定結果をその点の可視性データとして保存する。
ステップＳ３１２において、可視性データ生成部１６０は、３次元モデルの点群の次の点を選択し、ステップＳ３０４に進む。
【００３３】
図１０には、可視性データの例を示す。図１０に示す例は、図９の被写体９００の代表的な点として点９０１〜９１０を例としたものである。図１０に示すように、可視性データは点群の全ての点に付与されている。図１０において、列はカメラを表し、行は点を表す。「１」はカメラ９１１０から点が観察できることを表しており、見えないことを表す「０」は特に記載せず、空欄としている。
【００３４】
以上のように生成された可視性データは、可視性データ生成部１６０により記憶部１８０に書き込まれ、同時に、可視性データは３次元モデル補正部１７０に入力される。
【００３５】
３次元モデル補正部１７０は、可視性データ生成部１６０で生成された可視性データを用いて３次元モデルを補正する。図２は、３次元モデル補正部１７０の詳細な構成例を示すブロック図である。
３次元モデル補正部１７０は３次元モデル生成部１５０に接続され、３次元モデルの点群のデータ２００１を入力する。また、３次元モデル補正部１７０は可視性データ生成部１６０にも接続され、３次元モデルの可視性データ２００２を入力する。
【００３６】
３次元モデルバッファ２０１０は入力された点群のデータ２００１を補正する期間だけ保持している。可視性データバッファ２０２０は入力された可視性データ２００２を補正する期間だけ保持している。可視性判定部２０３０は、点群の各点について、可視性データを用いて保存すべき点か否かを判定する。３次元モデルバッファ２０４０は、可視性判定部２０３０により保存すべきと判定された点を３次元モデルの点群の点として一時的に保存する。そして、３次元モデル補正部１７０は、３次元モデルの点群のデータ２００３を記憶部１８０に出力する。
【００３７】
まず、補正処理を施す前の３次元モデルの点群のデータが入力され、３次元モデルバッファ２０１０に格納される。同時に、処理対象の３次元モデルと同時刻の可視性データが入力され、可視性データバッファ２０２０に格納される。可視性判定部２０３０は補正する３次元データを３次元モデルバッファ２０１０から、入力される３次元データに対応する可視性データを可視性データバッファ２０２０から読み出す。なお、３次元モデルバッファ２０１０、可視性データバッファ２０２０および３次元モデルバッファ２０４０は、ハードウェアとしてＲＡＭ１１０３またはＨＤＤ１１０４を用いてもよい。
【００３８】
図４は、３次元モデル補正部１７０により３次元モデルの点群データを補正する処理手順の一例を示すフローチャートである。
まず、ステップＳ４０１において、３次元モデル補正部１７０は、３次元モデルの点群の全ての点について判定が終了したか否かを判定する。この判定の結果、全ての点について判定が終了した場合は本処理を終了し、そうでない場合はステップＳ４０２に進む。
【００３９】
ステップＳ４０２において、可視性判定部２０３０は、補正の判定の対象となる点を３次元モデルバッファ２０１０から選択して読み出す。
ステップＳ４０３において、可視性判定部２０３０は、補正の判定の対象となる点に該当する可視性データを可視性データバッファ２０２０から読み出す。
【００４０】
ステップＳ４０４において、可視性判定部２０３０は、可視性データを用いてステップＳ４０２で選択した点の論理和を算出する。図１０に示す例では、全ての点についてカメラごとの値の論理和が算出されている。少なくとも１つのカメラで可視性判定結果が１である場合には、論理和は１となる。図１０に示す例の場合は点９０１〜９０９は論理和が１と算出され、点９１０は論理和が０と算出される。即ち、点９０１〜９０９はいずれかのカメラからの観察が可能であり、点９１０はいずれのカメラからも観察されないことを示している。
【００４１】
ステップＳ４０５において、可視性判定部２０３０は、点９０１〜９１０の中から選択された点の論理和が０か１かを判定する。この判定の結果、論理和が１である場合は保存の対象となるため、ステップＳ４０６に進む。一方、論理和が０である場合は保存の対象とはならないため、ステップＳ４０１に戻り、次の点の処理を行う。
【００４２】
ステップＳ４０６において、可視性判定部２０３０は、論理和が１となる点を３次元モデルバッファ２０４０に保存する。そして、ステップＳ４０１に戻る。以上の処理を全ての３次元モデル、また、それらを構成する点について処理を行う。その結果、いずれかのカメラから見える点だけで構成された３次元モデルの点群データを生成できる。
【００４３】
ユーザ端末２００側では、以後、これらの補正後の点群データを用いて仮想視点映像の生成を行うことができる。
ユーザ端末２００側では、ユーザの操作によって仮想カメラ操作部２３０から作成する仮想視点映像の仮想カメラの位置、姿勢、画角などの情報が入力される。仮想カメラ操作部２３０において、仮想視点は、例えばジョイスティックのような装置を用いて入力される。また、映像の開始時間等の情報も入力される。
【００４４】
制御部２１０は、仮想視点映像生成に必要な前景画像、３次元モデル、および可視性データを記憶部１８０から取得し、仮想視点映像生成部２２０に入力する。仮想視点映像生成部２２０では、前景画像、３次元モデル及び可視性データを用い、仮想カメラ操作部２３０から指定される仮想視点に応じた色付け処理を行い、仮想視点映像を生成する。仮想視点映像生成部２２０で生成された仮想視点映像は仮想視点映像出力部２４０から出力され、その映像が表示されたり、記録されたりする。
【００４５】
以上のように本実施形態によれば、３次元モデルを構成する点群データのうち、カメラから観察できる点のみを残すようにしている。これにより、仮想視点映像を生成するのに必要な点のみを残すことができ、記憶部１８０の記憶容量やそれぞれの伝送路での帯域を削減することができ、装置を小型化したり、低コストの伝送路を利用したりすることができる。
【００４６】
なお、本実施形態における画像処理システム１００は、上記で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。それぞれがハードウェアであったり、動作するソフトウェアを含むコンピュータであったりしても構わない。また、本実施形態では論理和を用いて３次元モデルの点の判定を行ったが、これに限定されない。例えば、それぞれの和を求め、０より大きいか、等しいかで判定しても良い。また、全てのカメラの可視性データを用いたがこれも限定されない。
また、カメラシステムと画像処理装置１０００の間をネットワークとスイッチングハブ１２０を用いて接続したが、これに限定されず、ＳＤＩ（Ｓｅｒｉａｌ Ｄｉｇｉｔａｌ Ｉｎｔｅｒｆａｃｅ）などで接続し、伝送しても構わない。
【００４７】
また、本実施形態では、図５のような画像処理システム５００の構成をとっても構わない。図５において、図１と同じ機能を果たすものには同じ番号を付し、説明を省略する。記憶部５０２は、図１の記憶部１８０と同様に前景画像、３次元モデル、可視性データを格納している。３次元モデル補正部５０１は記憶部５０２に格納されている３次元モデルに係る点群データとその３次元モデルに対応する可視性データを読み出す。そして、３次元モデル補正部５０１は図１の３次元モデル補正部１７０と同様に可視性の判定を行い、３次元モデルの補正を行う。３次元モデル補正部５０１は、補正された３次元モデルを記憶部５０２に格納するとともに、読み出した補正前の３次元モデルを廃棄する。
【００４８】
また、リアルタイムに仮想視点映像を生成する場合には、図１の記憶部１８０を設けず、前景画像、３次元モデル、可視性データを画像処理装置１０００からユーザ端末２００に直接送信してもよい。また、図５の構成の場合も同様に、前景画像、３次元モデル、可視性データを画像処理装置１５００からユーザ端末２００に直接送信してもよい。
【００４９】
また、本実施形態では、可視性データ生成部１６０と３次元モデル補正部１７０とを別な構成としたが、これに限定されない。可視性データ生成部１６０では３次元モデルの点群データを入力しているため、可視性データの生成終了後に３次元モデルの点群データを補正して出力しても構わない。
【００５０】
（第２の実施形態）
以下、本発明の第２の実施形態に係る画像処理システムについて説明する。
図６は、本実施形態に係る画像処理システムの機能構成例を説明するための図である。なお、図６において、第１の実施形態で説明した図１と同様の機能を果たすブロックについては同じ番号を付し、説明を省略する。また、画像処理装置１６００のハードウェア構成については図１１と同様であるため、説明は省略する。
【００５１】
第１の３次元モデル補正部６０１は、３次元モデル生成部１５０で生成された３次元モデルの点群データに対して第１段階の補正を行う。可視性データ生成部６０２は、第１の３次元モデル補正部６０１で補正された３次元モデルの点群データを入力して可視性データを生成する。可視性データ生成部６０２は、図１の可視性データ生成部１６０と比べて、入力する３次元モデルの点群データが異なるのみであり、それ以外は図１の可視性データ生成部１６０と同様である。第２の３次元モデル補正部６０３は、可視性データを用いて、第１の３次元モデル補正部６０１で補正された３次元モデルの点群データに対して第２段階の補正を行い、仮想視点映像の生成に不要な点を削除する。第２の３次元モデル補正部６０３は、図１の３次元モデル補正部１７０と比べて、入力する３次元モデルの点群データが異なるのみであり、それ以外は図１の３次元モデル補正部１７０と同様である。
【００５２】
まず、補正処理を施す前の３次元モデルの点群データが３次元モデル生成部１５０から第１の３次元モデル補正部６０１に入力される。第１の３次元モデル補正部６０１は、入力される点群データの点が存在する位置の座標から、空間を表す点の３次元行列を用いて３次元のフラグ配列に変換する。即ち、図８に示すような立方体の頂点の位置を表す各座標位置において、点群データの点が存在する場合はその座標位置では値「１」とし、そうでなければ値「０」としてＨＤＤ１１０４に格納する。その後、後述する手順により点群データの補正を行う。なお、ＨＤＤ１１０４には、後述する図７の処理が終了するまでその値が格納される。
【００５３】
図７は、第１の３次元モデル補正部６０１による補正の処理手順の一例を示すフローチャートである。
ステップＳ７０１において、第１の３次元モデル補正部６０１は、３次元モデルの全ての座標位置で値が１か０かの判定が終了したか否かを判定する。この判定の結果、全ての座標位置で判定が終了した場合は、本処理を終了し、そうでない場合はステップＳ７０２に進む。
【００５４】
ステップＳ７０２において、第１の３次元モデル補正部６０１は、補正の判定対象となる座標位置（点）を選択し、その座標位置において、点の値をＨＤＤ１１０４から読み出す。
ステップＳ７０３において、第１の３次元モデル補正部６０１は、ステップＳ７０２で読み出した点の値が０であるか否かを判定する。この判定の結果、値が０である場合は次の座標位置で処理を行うため、ステップＳ７０１に戻る。一方、値が１である場合は、その座標位置に点群データの点が存在しているため、次のステップＳ７０４に進む。
【００５５】
ステップＳ７０４において、第１の３次元モデル補正部６０１は、補正の判定対象となる点の周囲の点の値をＨＤＤ１１０４から読み出す。図８に示すように、点８００を補正の判定対象の点とした場合、点８００に３次元的に隣接する２６の点を周囲の点とする。つまり、点８００を含む立方体８０１は８つ存在するため、これらの８つの立方体８０１の点８００を除く各頂点が周囲の点となる。
【００５６】
ステップＳ７０５において、第１の３次元モデル補正部６０１は、周囲の点の値の論理積を算出する。隣接する２６の点ですべて値が１である場合は論理積が１となり、そうでない場合は論理積が０となる。
ステップＳ７０６において、第１の３次元モデル補正部６０１は、ステップＳ７０５で算出した論理積が１であるか否かを判定する。この判定の結果、論理積が０である場合はステップＳ７０７に進み、論理積が１である場合は、次の座標位置の処理を行うために、ステップＳ７０１に戻る。
【００５７】
ステップＳ７０７において、第１の３次元モデル補正部６０１は、その座標位置の点が３次元モデルの点群データの点としてＨＤＤ１１０４に保存する。その後、ステップＳ７０１に戻り、次の座標位置の処理を行う。
【００５８】
ここで、周囲の点の値の論理積が１である場合にステップＳ７０１に戻り、周囲の点の値の論理積が０である場合はステップＳ７０７に進む理由について説明する。補正の判定対象の点をＰ（０，０，０）とした場合、補正後のＰ'（０，０，０）の値は以下の（１）式により算出される。
ｉｆ（（Ｐ（−１，−１，−１）＝１）＆（Ｐ（０，−１，−１）＝１）＆
（Ｐ（１，−１，−１）＝１）＆（Ｐ（−１，０，−１）＝１）＆
（Ｐ（０，０，−１）＝１）＆（Ｐ（１，０，−１）＝１）＆
（Ｐ（−１，１，−１）＝１）＆（Ｐ（０，１，−１）＝１）＆
（Ｐ（１，１，−１）＝１）＆（Ｐ（−１，−１，０）＝１）＆
（Ｐ（０，−１，０）＝１）＆（Ｐ（１，−１，０）＝１）＆
（Ｐ（−１，０，０）＝１）＆（Ｐ（１，０，０）＝１）＆
（Ｐ（−１，１，０）＝１）＆（Ｐ（０，１，０）＝１）＆
（Ｐ（１，１，０）＝１）＆（Ｐ（−１，−１，１）＝１）＆
（Ｐ（０，−１，１）＝１）＆（Ｐ（１，−１，１）＝１）＆
（Ｐ（−１，０，１）＝１）＆（Ｐ（０，０，１）＝１）＆
（Ｐ（１，０，１）＝１）＆（Ｐ（−１，１，１）＝１）＆
（Ｐ（０，１，１）＝１）＆（Ｐ（１，１，１）＝１））ｔｈｅｎ
Ｐ'（０，０，０）＝０
ｅｌｓｅ
Ｐ'（０，０，０）＝１        ・・・（１）
【００５９】
（１）式において、周囲のすべての点において値が１である場合（論理積が１である場合）は、その点は外部から見えないものとみなすことができる。その場合、その点を点群データの点として保持しておく必要がないため、補正後にはその点が点群データの点として存在しないように値は０がセットされる。一方、周囲の点のうち少なくとも１つにおいて値が０である場合（点群データの点が周囲において不足している場合）は、その方向から見た場合に外部から見える可能性がある。したがって、その点を点群データの点として保持しておく必要がある。このように本実施形態では、周囲の状況に応じてその点を点群データの点として保持するか否かを判定する。
【００６０】
以上の図７の処理が終了すると、ステップＳ７０７で保存されたすべての点を補正された３次元モデルの点群データとする。そして、第１の３次元モデル補正部６０１は、補正された３次元モデルの点群データを可視性データ生成部６０２及び第２の３次元モデル補正部６０３に出力する。以上の処理を全ての３次元モデル、また、それらを構成する点について処理を行う。
【００６１】
その後、可視性データ生成部６０２において、第１の実施形態の可視性データ生成部１６０と同様に可視性データの生成を行う。なお、第１の実施形態とは異なり、図３のステップＳ３０５以降で対象となる点は、第１の３次元モデル補正部６０１で補正された３次元モデルの点群データの点である。
【００６２】
第２の３次元モデル補正部６０３は、第１の実施形態の３次元モデル補正部１７０と同様にいずれかのカメラから見える点だけで構成された３次元モデルの点群データを生成する。そして、補正された３次元モデルは記憶部１８０に格納される。
【００６３】
以上のように本実施形態によれば、３次元モデルの点群データにカメラから観察できる点のみを残すことで仮想視点映像の生成に必要な点のみを残すことができ、記憶部１８０の記憶容量やそれぞれの伝送路での帯域を削減することができる。特に、可視性データを生成する際の対象となる点群データの点を一部削減するため、可視性データの生成処理を軽減することができ、より高速な処理が可能になる。
【００６４】
なお、本実施形態における画像処理システム６００は、上記で説明した物理的な構成に限定される訳ではなく、論理的に構成されていてもよい。それぞれがハードウェアであったり、動作するソフトウェアを含むコンピュータであったりしても構わない。また、第１の３次元モデル補正部６０１での補正処理はこれに限定されず、特許文献１に記載の方法を用いてももちろん構わない。
【００６５】
（その他の実施形態）
前述した実施形態では、記憶部１８０、５０２は画像処理装置が有する構成として説明したが、ユーザ端末２００が有する構成としてもよく、それ以外の別の装置が有する構成であってもよい。
【００６６】
上述した実施形態によれば、カメラシステム１１０のカメラの台数などのシステムを構成する装置の規模、及び撮影画像の出力解像度や出力フレームレートなどに依らず、仮想視点画像を簡便に生成することができる。以上、本発明の実施形態について詳述したが、本発明は上述の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
【００６７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１５０  ３次元モデル生成部
１６０  可視性データ生成部
１７０  ３次元モデル補正部
【図１】
2019128641.tif 000003
【図２】
2019128641.tif 000004
【図３】
2019128641.tif 000005
【図４】
2019128641.tif 000006
【図５】
2019128641.tif 000007
【図６】
2019128641.tif 000008
【図７】
2019128641.tif 000009
【図８】
2019128641.tif 000010
【図９】
2019128641.tif 000011
【図１０】
2019128641.tif 000012
【図１１】
2019128641.tif 000013
【手続補正書】
【提出日】平成30年11月6日(2018.11.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
【特許文献１】特許第５０６８７３２号公報