(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20231220BHJP
【FI】
G06T19/00 A
(21)【出願番号】P 2021123565
(22)【出願日】2021-07-28
【審査請求日】2022-07-15
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】小笠原 拓
【審査官】村松 貴士
(56)【参考文献】
【文献】特開2002-024860(JP,A)
【文献】特開2014-032443(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
仮想視点および三次元の仮想空間に基づ
く仮想視点画像
が表示された画面において付加情報の入力を取得する取得手段と、
取得された前記付加情報を前記仮想空間における三次元位置に配置されるオブジェクトに変換する変換手段と、
前記オブジェクトが前記三次元位置に配置された前記仮想空間に基づく前記仮想視点画像を表示手段に表示させる表示制御手段と、
を有
し、
前記付加情報が入力された際の前記仮想視点画像に対応するタイムコードと、前記オブジェクトとが関連付けられ、
前記表示制御手段は、前記オブジェクトが関連付けられたタイムコードに対応する前記仮想視点画像が表示される場合に、前記オブジェクトが配置された前記仮想空間に基づいて前記仮想視点画像を表示させる、ことを特徴とする画像処理装置。
【請求項2】
前記変換手段は、前記仮想空間における所定の面に前記オブジェクトが生成されるように前記変換を行う、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記変換手段は、前記付加情報が入力された
際に前記画面に表示されていた前記仮想視点画像に対応する仮想視点と
前記画面に対応する前記仮想空間内の面において当該付加情報が入力された点とを通る直線の前記所定の面に対する交点に、当該付加情報が入力された点に対応する前記オブジェクトの点が生成されるように、前記変換を行う、ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記表示制御手段は、前記変換手段によって変換された前記オブジェクトが前記仮想視点に基づく視野の範囲内に存在しない場合は当該オブジェクトを含まない前記仮想視点画像を表示させ、前記変換手段によって変換された前記オブジェクトが前記範囲内に存在する場合は当該オブジェクトを含んだ前記仮想視点画像を表示させる、ことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
前記タイムコードと前記オブジェクトとを関連付けて記憶手段に記憶させる記憶制御手段をさらに有する、ことを特徴とする請求項
1から4のいずれか1項に記載の画像処理装置。
【請求項6】
前記表示制御手段は、他の画像処理装置により入力された他の付加情報に基づく他のオブジェクトが三次元位置に配置された前記仮想空間に基づいて前記仮想視点画像を表示させる、ことを特徴とする請求項1から
5のいずれか1項に記載の画像処理装置。
【請求項7】
前記取得手段は、ユーザにより指定された前記仮想視点を表す情報を取得する、ことを特徴とする請求項1から
6のいずれか1項に記載の画像処理装置。
【請求項8】
前記仮想視点を表す情報は、仮想視点の位置及び仮想視点からの視線方向を表す情報を含むことを特徴とする請求項
7に記載の画像処理装置。
【請求項9】
前記取得手段は、ユーザにより第1の操作が行われた場合、に当該第1の操作に対応する前記付加情報の入力を取得し、ユーザにより前記第1の操作と異なる第2の操作が行われた場合、当該第2の操作に応じて指定された前記仮想視点を表す情報を取得する、ことを特徴とする請求項
7又は
8に記載の画像処理装置。
【請求項10】
前記第1の操作および前記第2の操作はタッチパネルへの操作であり、前記第1の操作は、前記タッチパネルへのユーザの指による操作であり、前記第2の操作は、描画用デバイスによる操作である、ことを特徴とする請求項
9に記載の画像処理装置。
【請求項11】
前記表示制御手段は、前記付加情報が入力された前記仮想視点画像に対応するタイムコードと、表示される前記仮想視点画像のタイムコードとの差が大きいほど前記オブジェクトが薄く表示されるように制御する、ことを特徴とする請求項1から1
0のいずれか1項に記載の画像処理装置。
【請求項12】
前記表示制御手段は、前記オブジェクトの透過度、明度、彩度、及び、色度の少なくともいずれかを変化させることにより、前記オブジェクトが薄く表示されるように制御することを特徴とする請求項1
1に記載の画像処理装置。
【請求項13】
前記仮想視点画像において前記付加情報が付された位置に対応する特定のオブジェクトの三次元モデルを特定する特定手段をさらに有し、
前記表示制御手段は、前記仮想空間における前記特定のオブジェクトの三次元モデルに対応する三次元位置に、前記付加情報に対応する前記オブジェクトが配置された前記仮想視点画像を表示させる、
ことを特徴とする請求項1から1
2のいずれか1項に記載の画像処理装置。
【請求項14】
前記付加情報は、マーカ、アイコン、アバター、及び、イラストのうち少なくともいずれかを含むことを特徴とする請求項1から1
3のいずれか1項に記載の画像処理装置。
【請求項15】
前記仮想視点画像は、複数の撮像装置が撮像することにより取得された多視点画像に基づいて生成される、ことを特徴とする請求項1から1
4のいずれか1項に記載の画像処理装置。
【請求項16】
仮想視点および三次元の仮想空間に基づく仮想視点画像が表示された画面において付加情報の入力を取得する取得手段と、
取得された前記付加情報を前記仮想空間における三次元位置に配置されるオブジェクトに変換する変換手段と、
前記オブジェクトが前記三次元位置に配置された前記仮想空間に基づく前記仮想視点画像を表示手段に表示させる表示制御手段と、
を有し、
前記付加情報が入力された際の前記仮想視点画像に対応するタイムコードと、前記オブジェクトとが関連付けられ、
前記表示制御手段は、前記付加情報が入力された前記仮想視点画像に対応するタイムコードと、表示される前記仮想視点画像のタイムコードとの差が大きいほど前記オブジェクトが薄く表示されるように制御する、
ことを特徴とする画像処理装置。
【請求項17】
画像処理装置によって実行される画像処理方法であって、
仮想視点および三次元の仮想空間に基づ
く仮想視点画像
が表示された画面において付加情報の入力を取得することと、
取得された前記付加情報を前記仮想空間における三次元位置に配置されるオブジェクトに変換することと、
前記オブジェクトが前記三次元位置に配置された前記仮想空間に基づく前記仮想視点画像を表示手段に表示させることと、
を含
み、
前記付加情報が入力された際の前記仮想視点画像に対応するタイムコードと、前記オブジェクトとが関連付けられ、
前記オブジェクトが関連付けられたタイムコードに対応する前記仮想視点画像が表示される場合に、前記オブジェクトが配置された前記仮想空間に基づいて前記仮想視点画像を前記表示手段に表示させる、ことを特徴とする画像処理方法。
【請求項18】
コンピュータを、請求項1から16のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想視点画像の操作の高度化技術に関する。
【背景技術】
【0002】
プレゼンテーションを実行するアプリケーションにおいて、画像を表示中に、画像内における注目点を示す等のための丸や線等の形状のマーカの入力を受け付け、ページ画像とそのマーカとを合成して出力する機能が知られている。特許文献1には、このような機能を遠隔会議システムに適用した技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、複数の撮像装置を用いた撮像によって得られた複数の画像から、撮像されたシーンを任意の視点から見た画像(仮想視点画像)を生成する技術が注目されている。このような仮想視点画像においても、例えばシーンにおいて着目すべき対象へマーカを付すことが想定される。仮想視点画像にマーカが入力された場合、そのマーカが入力された際の視点から見るとマーカが適切な位置に表示されるが、別の視点に切り替えた場合などにそのマーカが意図しない位置に表示されうる。このように、仮想視点画像に対してマーカなどの付加情報を描画する際に、描画する付加情報が意図しない位置に表示される可能性がある。
【0005】
本開示は、仮想視点画像に対して描画される付加情報が視点によらず適切な位置に表示されるようにするための技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様による画像処理装置は、仮想視点および三次元の仮想空間に基づく仮想視点画像が表示された画面において付加情報の入力を取得する取得手段と、取得された前記付加情報を前記仮想空間における三次元位置に配置されるオブジェクトに変換する変換手段と、前記オブジェクトが前記三次元位置に配置された前記仮想空間に基づく前記仮想視点画像を表示手段に表示させる表示制御手段と、を有し、前記付加情報が入力された際の前記仮想視点画像に対応するタイムコードと、前記オブジェクトとが関連付けられ、前記表示制御手段は、前記オブジェクトが関連付けられたタイムコードに対応する前記仮想視点画像が表示される場合に、前記オブジェクトが配置された前記仮想空間に基づいて前記仮想視点画像を表示させる。
【発明の効果】
【0007】
本開示によれば、仮想視点画像に対して描画される付加情報が視点によらず適切な位置に表示されるようにすることができる。
【図面の簡単な説明】
【0008】
【
図5】マーカオブジェクトおよび注目面を説明する図である。
【
図6】画像処理装置によって実行される処理の流れの例を示す図である。
【
図9】マーカオブジェクトのデータ構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る開示を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが開示に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
(システム構成)
図1(A)及び
図1(B)を用いて、本実施形態に係る画像処理システム100の構成例について説明する。画像処理システム100は、複数のセンサシステム(
図1(A)の例ではn台のセンサシステム101-1~センサシステム101-n)を含む。各センサシステムは、少なくとも1台の撮像装置(例えばカメラ)を含む。なお、以下では、特に区別する必要がない場合には、センサシステム101-1~センサシステム101-nを総称して「センサシステム101」と呼ぶ。この画像処理システム100では、複数のセンサシステム101によって取得された画像データに基づいて、仮想視点画像データを生成してユーザに提供する。
【0011】
図1(B)に、これらのセンサシステム101の設置例を示す。複数センサシステム101は、撮影の被写体である領域(以下では、被写体領域120と呼ぶ。)を囲むように設置され、それぞれ異なる方向から被写体領域120を撮影する。例えば、被写体領域120をサッカーやラグビーの試合が行わるスタジアムのフィールドとして定めた場合、そのフィールドを囲むようにn台の(例えば100台などの多数の)センサシステム101が設置される。なお、設置されるセンサシステム101の数は特に限定されるものではないが、少なくとも複数である。なお、センサシステム101は、被写体領域120の全周に渡って設置されなくてもよく、例えば設置場所の制限等によって、被写体領域120の周囲の一部にのみ設置されてもよい。また、複数のセンサシステム101のそれぞれが有する撮像装置の中に、望遠カメラや広角カメラなど、機能が異なる撮像装置が含まれてもよい。
【0012】
また、センサシステム101は、撮像装置(カメラ)に加えて収音装置(マイク)を有してもよい。複数のセンサシステム101のそれぞれにおける収音装置は、同期して音声を収音する。画像処理システム100は、複数の収音装置によってそれぞれ収音された音声データに基づいて、仮想視点画像と共に再生される仮想聴点音響のデータを生成し、ユーザに提供する。なお、以下では、説明の簡略化のために音声に関する説明を省略するが、画像と音声とが共に処理されるものとする。
【0013】
なお、被写体領域120は、スタジアムのフィールドに限られず、例えば、スタジアムの客席を含むように定められてもよい。また、被写体領域120は、屋内のスタジオや舞台等となるように定められてもよい。すなわち、仮想視点画像を生成する対象となる被写体の領域が被写体領域120として定められうる。なお、ここでの「被写体」は、被写体領域120によって定められる領域そのものであってもよいし、それに加えて又はそれに代えて、その領域内に存在する選手や審判等の人物及びボール等の全てのオブジェクトを含みうる。また、本実施形態を通して、仮想視点画像は、動画像であるものとするが、静止画像であってもよい。
【0014】
図1(B)のように配置された複数のセンサシステム101は、同期して、それぞれのセンサシステム101が有する撮像装置によって共通の被写体領域120の撮像を行う。本実施形態では、このような共通の被写体領域120を複数の視点から同期撮像することによって得られる複数の画像群に含まれる画像を「多視点画像」と呼ぶ。なお、本実施形態における多視点画像は、撮像された画像そのものでありうるが、例えば、撮像画像に対して所定領域を抽出する処理などの画像処理が行われた後の画像等であってもよい。
【0015】
また、画像処理システム100は、さらに、画像記録装置102、データベース103、及び画像処理装置104を含む。画像記録装置102は、複数のセンサシステム101のそれぞれにおける撮像によって得られた多視点画像を収集し、その撮像に使用されたタイムコードと合わせて、その他視点画像をデータベース103へ記憶させる。ここで、タイムコードは、撮像が行われた時刻を一意に識別するための情報である。例えば、タイムコードは、日:時:分:秒.フレーム番号などのような形式で撮像時刻を指定する情報でありうる。
【0016】
画像処理装置104は、データベース103から、共通のタイムコードに対応する複数の多視点画像を取得し、その取得した多視点画像から被写体の三次元モデルを生成する。三次元モデルは、例えば、被写体の形状を表現する点群や、被写体の形状を多角形の集合として表現した際の面や頂点などの形状情報と、形状の表面における色彩や質感を表現するテクスチャ情報とを含んで構成される。なお、これは一例であり、被写体を三次元で表現する任意の形式で三次元モデルが定義されうる。画像処理装置104は、例えばユーザによって指定された仮想視点に基づいて、被写体の三次元モデルを使用して、その仮想視点に対応する仮想視点画像を生成して出力する。例えば
図1(B)に示すように、被写体領域120に関連付けられた仮想空間内での視点の位置及び視線の方向によって、仮想視点110が指定される。ユーザは、仮想空間内で仮想視点を移動させて視線の向きを変更することにより、例えば複数のセンサシステム101のいずれの撮像装置とも異なる視点から、仮想空間に存在する被写体の三次元モデルに基づいて生成された被写体を閲覧することができる。なお、仮想視点が三次元の仮想空間内を自由に移動できるため、仮想視点画像は「自由視点画像」とも呼ばれうる。
【0017】
画像処理装置104は、仮想視点110から観測されるシーンを示す画像として、仮想視点画像を生成する。なお、ここで生成される画像は二次元画像である。画像処理装置104は、例えば、ユーザによって使用されるコンピュータであり、タッチパネルディスプレイや液晶ディスプレイ等の表示装置を含んで構成されうる。また、画像処理装置104は、外部の表示装置に画像を表示させるための表示制御機能を有してもよい。画像処理装置104は、例えば、それらの表示装置の画面に仮想視点画像を表示させる。すなわち、画像処理装置104は、仮想視点から見える範囲のシーンの画像を仮想視点画像として生成し、画面に表示させるための処理を実行する。
【0018】
なお、画像処理システム100は、
図1(A)に示す構成とは異なる構成を有してもよい。例えば、画像処理装置104とは別個に、タッチパネルディスプレイ等の操作・表示デバイスを含んだ構成が用いられてもよい。例えば、タッチパネルディスプレイを有するタブレット等において、仮想視点等の操作を行い、それに応じて、画像処理装置104において仮想視点画像を生成し、その画像をタブレットに表示させるような構成が用いられてもよい。なお、複数のタブレットがサーバ経由で画像処理装置104に接続され、画像処理装置104がその複数のタブレットのそれぞれへ仮想視点画像を出力するような構成が用いられてもよい。また、データベース103と画像処理装置104とが一体で構成されてもよい。また、画像記録装置102において、多視点画像から被写体の三次元モデルの生成までの処理が行われ、被写体の三次元モデルがデータベース103に格納されるような構成が用いられてもよい。その場合、画像処理装置104は、データベース103から三次元モデルを読み出して仮想視点画像を生成する。また、
図1(A)では、複数のセンサシステム101がデイジーチェーン接続される例を示しているが、例えばセンサシステム101がそれぞれ画像記録装置102に直接接続されてもよいし、他の接続形式で接続されてもよい。なお、センサシステム101が同期して撮像を行うことができるように、例えば画像記録装置102や他の時刻同期用の装置がセンサシステム101のそれぞれに対して基準時刻情報を通知するように構成されてもよい。
【0019】
本実施形態では、画像処理装置104は、さらに、画面表示された仮想視点画像に対して、ユーザからの丸や線などのマーカの入力を受け付け、それを仮想視点画像へ重畳して画面に表示させる。このようなマーカが入力された場合、マーカが入力された仮想視点においては、そのマーカが適切に表示されるが、仮想視点の位置や向きを変更することにより、マーカが付されたオブジェクトとマーカとがずれるなど、意図しない表示が行われうる。このため、本実施形態では、画像処理装置104が、表示された二次元の画面に対して受け付けられたマーカを、仮想視点の移動によらずに適切な位置に表示するための処理を実行する。画像処理装置104は、二次元のマーカを、三次元のマーカオブジェクトへ変換する。そして、画像処理装置104は、被写体の三次元モデルと、三次元のマーカオブジェクトとを合わせて、仮想視点の移動に伴ってマーカの位置が適切に調整された仮想視点画像を生成する。以下では、このような処理を実行する画像処理装置104の構成や、処理の流れの例について説明する。
【0020】
(画像処理装置の構成)
続いて、
図2(A)及び
図2(B)を用いて、画像処理装置104の構成について説明する。
図2(A)は、画像処理装置104の機能構成例を示している。画像処理装置104は、その機能構成として、例えば、仮想視点制御部201、モデル生成部202、画像生成部203、マーカ制御部204、及び、マーカ管理部205を含む。なお、これらは一例であり、示されている機能の少なくとも一部が省略されてもよいし、別の機能が追加されてもよい。また、後述の機能を実行可能な限りにおいて、
図2(A)に示す機能の全てが別の機能ブロックによって置き換えられてもよい。また、
図2(A)に示す2つ以上の機能ブロックが1つの機能ブロックにまとめられてもよいし、1つの機能ブロックが複数の機能ブロックに分割されてもよい。
【0021】
仮想視点制御部201は、仮想視点110またはタイムコードに関するユーザ操作を受け付け、仮想視点の動作を制御する。仮想視点のユーザ操作には、タッチパネルやジョイスティック等が用いられるが、これらに限定されず、任意のデバイスによってユーザ操作が受け付けられうる。モデル生成部202は、データベース103から、ユーザ操作等によって指定されたタイムコードに対応する多視点画像を取得し、被写体領域120に含まれる被写体の三次元形状を示す三次元モデルを生成する。モデル生成部202は、例えば、多視点画像から、人物やボールなどの被写体に対応する前景領域を抽出した前景画像と、前景領域以外の背景領域を抽出した背景画像を取得する。そして、モデル生成部202は、複数の前景画像に基づいて、前景の三次元モデルを生成する。三次元モデルは、例えば、Visual Hull等の形状推定方法によって生成された点群によって構成される。なお、オブジェクトの形状を表す三次元形状データの形式はこれに限定されず、メッシュや独自の形式の三次元データが用いられてもよい。なお、モデル生成部202は、同様にして背景の三次元モデルを生成しうるが、背景の三次元モデルについては、予め外部の装置によって生成されたものを取得するようにしてもよい。以下では、便宜上、前景の三次元モデルと背景の三次元モデルとを合わせて、「被写体の三次元モデル」又は、単に「三次元モデル」と呼ぶ。
【0022】
画像生成部203は、被写体の三次元モデルと仮想視点とに基づいて、その仮想視点から見た場合のシーンを再現する仮想視点画像を生成する。例えば、画像生成部203は、三次元モデルを構成する点ごとに、多視点画像から適切な画素値を取得して色付け処理を行う。そして、画像生成部203は、三次元モデルを三次元の仮想空間に配置し、仮想視点へ画素値と合わせて投影してレンダリングすることにより、仮想視点画像を生成する。なお、仮想視点画像の生成方法はこれに限定されず、三次元モデルを用いずに撮像画像の射影変換により仮想視点画像を生成する方法など、他の方法が使用されてもよい。
【0023】
マーカ制御部204は、ユーザから、仮想視点画像に対する丸や線等のマーカ入力を受け付ける。マーカ制御部204は、二次元の仮想視点画像に対して行われたマーカ入力を、仮想空間上の三次元データであるマーカオブジェクトへ変換する。マーカ制御部204は、仮想視点の位置・姿勢に応じて、被写体の三次元モデルとマーカオブジェクトとを合わせた仮想視点画像を生成するように、画像生成部203に指示を送信する。なお、マーカ制御部204は、例えば、マーカオブジェクトを画像生成部203に三次元モデルとして提供し、画像生成部203は、そのマーカオブジェクトを被写体と同様に扱うことによって、仮想視点画像を生成するようにしうる。また、画像生成部203は、マーカ制御部204から提供されたマーカオブジェクトに基づいて、仮想視点画像を生成する処理とは別個に、マーカオブジェクトを重畳させるための処理を実行させてもよい。また、マーカ制御部204が、画像生成部203によって提供された仮想視点画像にマーカオブジェクトに基づくマーカを重畳させる処理を実行するようにしてもよい。マーカ管理部205は、マーカ制御部204が変換した三次元モデルのマーカオブジェクトを、例えば後述の記憶部216等に記憶させるための記憶制御を行う。マーカ管理部205は、マーカオブジェクトが、例えば、タイムコードと関連付けられて、記憶されるように記憶制御を行う。なお、モデル生成部202が、前景の人物やボールなどのオブジェクトごとに、その座標を計算しておき、その座標をデータベース103へ蓄積し、そのオブジェクトごとの座標を、マーカオブジェクトの座標指定に使用してもよい。
【0024】
図2(B)は、画像処理装置104のハードウェア構成例を示している。画像処理装置104は、そのハードウェア構成として、例えば、CPU211、RAM212、ROM213、操作部214、表示部215、記憶部216、及び外部インタフェース217を含む。なお、CPUは、Central Processing Unitの略語であり、RAMは、Random Access Memoryの略語であり、ROMは、Read Only Memoryの略語である。
【0025】
CPU211は、例えばRAM212やROM213に記憶されているプログラムやデータを用いて、画像処理装置104全体の制御や、後述の処理を実行する。CPU211が、RAM212やROM213に記憶されているプログラムを実行することにより、
図2(A)の各機能ブロックが実現されうる。なお、画像処理装置104は、CPU211以外の1つ以上のプロセッサ等の専用のハードウェアを有し、CPU211による処理の少なくとも一部をそのハードウェアが実行させてもよい。専用のハードウェアは、例えば、MPU(Micro Processing Unit)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などでありうる。ROM213は、仮想視点画像やマーカに対する処理を実行するためのプログラムやデータを保持する。RAM212は、ROM213から読み出されるプログラムやデータを一時的に記憶し、また、CPU211が各処理を実行する際に用いるために、ワークエリアを提供する。
【0026】
操作部214は、例えばタッチパネルやボタンなどの、ユーザによる操作を受け付けるためのデバイスを含んで構成される。操作部214は、例えば、ユーザによる仮想視点やマーカに対する操作を示す情報を取得する。なお、操作部214は、外部コントローラと接続し、操作に関するユーザからの入力情報を受け付けてもよい。外部コントローラは、特に限定されないが、例えば、ジョイスティック等の三軸コントローラや、キーボード、マウス等である。表示部215は、ディスプレイ等の表示装置を含んで構成される。表示部215は、例えばCPU211等によって生成された仮想視点画像を表示する。また、表示部215は、音声出力のためのスピーカや振動出力のためのデバイス等の、情報をユーザに提示可能な各種出力デバイスを含んでもよい。なお、例えばタッチパネルディスプレイによって、操作部214と表示部215とが一体的に構成されてもよい。
【0027】
記憶部216は、例えばSSD(Solid State Drive)やHDD(Hard Disk Drive)等の大容量記憶装置を含んで構成される。なお、これらは一例であり、記憶部216は、他の任意の記憶装置を含んで構成されてもよい。であり、プログラムが処理するデータを記録する。記憶部216は、例えば、操作部214を介して受け付けられたマーカ入力がCPU211によって変換された三次元のマーカオブジェクトを記憶する。記憶部216は、さらにほかの情報を記憶してもよい。外部インタフェース217は、例えば、LAN(ローカルエリアネットワーク)等のネットワークに接続するインタフェース機器を含んで構成される。外部インタフェース217を介して、データベース103等の外部装置との間で情報の送受信が行われる。また、外部インタフェース217は、HDMI(登録商標)やSDI等の画像出力ポートを含んで構成されてもよい。なお、HDMIは、High-Definition Multimedia Interfaceの略語であり、SDIは、Serial Digital Interfaceの略語である。この場合、外部インタフェース217を介して、外部の表示装置や投影装置へ情報が送信されうる。また、外部インタフェース217を用いてネットワークに接続し、ネットワークを介して、仮想視点やマーカの操作情報の受信や、仮想視点画像の送信が行われるようにしてもよい。
【0028】
(仮想視点および視線方向)
続いて、
図3(A)~
図3(D)を用いて、仮想視点110について説明する。仮想視点110や、その動作は1つの座標系を用いて指定される。本実施形態では、座標系として、
図3(A)に示すような、X軸、Y軸、及びZ軸から構成される一般的な三次元空間の直交座標系が用いられるものとする。なお、これは一例であり、三次元空間の位置を示すことができる任意の座標系が用いられてもよい。この座標系を用いて、被写体の座標が設定されて使用される。被写体は、例えば、スタジアムのフィールドやスタジオ等、及びそのフィールドやスタジオ等の空間に存在する人物や、ボール等の物体を含む。例えば、
図3(B)の例では、被写体として、スタジアムのフィールド全体391と、その上に存在するボール392や選手393等が含まれる。なお、フィールド周辺の客席等が被写体に含まれてもよい。
図3(B)の例では、フィールド391の中心の座標を、原点(0、0、0)として設定し、X軸をフィールド391の長辺方向、Y軸をフィールド391の短辺方向、Z軸をフィールドに対する鉛直方向としている。このようにして、フィールド391の中心を基準として各被写体の座標を設定することによって、被写体から生成される三次元モデルを、三次元の仮想空間へ配置することができる。なお、座標の設定方法は、これらに限定されない。
【0029】
次に、
図3(C)及び
図3(D)を用いて、仮想視点について説明する。仮想視点は、仮想視点画像を生成するための視点および視線方向を定める。
図3(C)において、四角錘の頂点が仮想視点の位置301を示しており、頂点から伸びるベクトルが視線の方向302を示している。仮想視点の位置301は、三次元の仮想空間上の座標(x,y,z)によって表現され、視線の方向302は、各軸の成分をスカラとする単位ベクトルによって表現され、仮想視点の光軸ベクトルとも呼ばれる。視線の方向302は、前方クリップ面303と後方クリップ面304のそれぞれの中心点を通るものとする。なお、クリップ面は、描画の対象となる領域を規定する平面である。前方クリップ面303と後方クリップ面304とに挟まれた空間305は、仮想視点の視錐台と呼ばれ、この範囲において仮想視点画像が生成される(又は、この範囲で仮想視点画像が投影されて表示される)。なお、焦点距離(不図示)は、任意の値を設定可能であり、一般的なカメラと同様に焦点距離が変更されることによって画角が変更される。すなわち、焦点距離を短くすることにより、画角を広くし、視錐台を広げることができる。一方で、焦点距離を長くすることにより、画角が狭くなり、視錐台を狭めて、被写体を大きく捉えることができる。なお、焦点距離は一例であり、視錐台の位置やサイズを設定可能な任意のパラメータが使用されうる。
【0030】
仮想視点の位置および仮想視点からの視線方向は、三次元座標で表現された仮想空間内で移動および回転させることができる。
図3(D)に示すように、仮想視点の移動306は、仮想視点の位置301の移動であり、各軸の成分(x、y、z)で表現される。仮想視点の回転307は、
図3(A)に示すように、Z軸回りの回転であるヨー(Yaw)、X軸回りの回転であるピッチ(Pitch)、Y軸回りの回転であるロール(Roll)によって表現される。これらにより、仮想視点の位置および仮想視点からの視線方向は、三次元の仮想空間を自由に移動及び回転でき、画像処理装置104は、被写体の任意の領域を任意の角度から観察したと仮定した場合の画像を仮想視点画像として再現することができる。なお、以下では、特に区別する必要がない場合には、仮想視点の位置および仮想視点からの視線方向を合わせて「仮想視点」と呼ぶ。
【0031】
(仮想視点とマーカの操作方法)
図4(A)及び
図4(B)を用いて、仮想視点とマーカの操作方法について説明する。
図4(A)は、画像処理装置104によって表示される画面を説明するための図である。ここでは、タッチパネルディスプレイを有するタブレット型の端末400を用いる場合について説明する。なお、端末400は、タブレット型の端末である必要はなく、他の形式の任意の情報処理装置が端末400として使用されうる。端末400が画像処理装置104である場合、端末400は、仮想視点画像を生成して表示すると共に、仮想視点やタイムコードの指定およびマーカ入力等の操作を受け付けるように構成される。一方、例えば端末400が通信ネットワークを介して画像処理装置104に接続する装置である場合、端末400は、仮想視点やタイムコードを指定する情報を画像処理装置104へ送信して仮想視点画像の提供を受ける。また、端末400は、仮想視点画像に対するマーカ入力操作を受け付けて、その受け付けたマーカ入力を示す情報を画像処理装置104へ送信する。
【0032】
図4(A)において、端末400における表示画面401は、大まかに、仮想視点操作領域402と、タイムコード操作領域403との2つの領域に分類される。
【0033】
仮想視点操作領域402では、仮想視点に関するユーザ操作が受け付けられ、その領域の範囲内に仮想視点画像が表示される。すなわち、仮想視点操作領域402では、仮想視点を操作し、その操作後の仮想視点から観察したと仮定した場合のシーンを再現した仮想視点画像が表示される。また、仮想視点操作領域402では、仮想視点画像に対するマーカ入力を受け付ける。なお、マーカの操作と仮想視点の操作とが併せて実行されてもよいが、本実施形態では、マーカの操作が仮想視点の操作と独立して受け付けられるものとする。一例において、
図4(B)の例のように、端末400に対するユーザの指によるタップ・ドラッグ等のタッチ操作によって仮想視点を操作し、ペンシル450等の描画用デバイスによるタップ・ドラッグ等によってマーカ操作が行われうる。ユーザは、例えば、指によるドラッグ操作431によって、仮想視点の移動や回転を行う。また、ユーザは、ペンシル450によるドラッグ操作によって、マーカ451やマーカ452を仮想視点画像上に描画する。端末400は、ペンシル450によるドラッグ操作の連続座標においてマーカを描画する。なお、指による操作がマーカ操作に割り当てられ、ペンシルによる操作が仮想視点の操作に割り当てられてもよい。また、仮想視点の操作とマーカ操作とを端末400が区別可能である限りにおいて、他の任意の操作方法が用いられてもよい。このような構成によれば、ユーザが、仮想視点の操作とマーカ操作とを容易に使い分けることができる。
【0034】
なお、仮想視点の操作とマーカの操作とを独立して実行する際に、必ずしもペンシル450の様な描画用デバイスが用いられなくてもよい。例えば、マーカ操作に対するON/OFFボタン(不図示)をタッチパネルに設け、マーカ操作を行うか否かをそのボタン操作によって切り替えてもよい。例えば、マーカ操作が行われる際にはそのボタンがONとされ、ボタンがONとされている間は、仮想視点操作が行われないようにしてもよい。また、仮想視点の操作が行われる際にはそのボタンがOFFとされ、ボタンがOFFとされている間は、マーカ操作が行われないようにしてもよい。
【0035】
タイムコード操作領域403は、どのタイミングの仮想視点画像を視聴するかを指定するために使用される。タイムコード操作領域403は、例えば、メイン・スライダ412、サブ・スライダ413、速度指定スライダ414、及びキャンセルボタン415を含む。メイン・スライダ412は、つまみ422の位置のドラッグ操作等により、ユーザが選択した任意のタイムコードを受け付けるために使用される。メイン・スライダ412の範囲によって、仮想視点画像が再生可能な期間の全体が示される。サブ・スライダ413は、タイムコードの一部を拡大表示し、ユーザがフレーム単位などの詳細なタイムコードの操作を実行することを可能とする。サブ・スライダ413では、つまみ423の位置のドラッグ操作等により、任意の詳細なタイムコードのユーザ選択を受け付ける。
【0036】
端末400では、メイン・スライダ412でタイムコードの大まかな指定を受け付け、サブ・スライダ413によって、タイムコードの詳細な指定を受け付ける。例えば、メイン・スライダ412が試合全体の長さに相当する3時間の範囲に相当し、サブ・スライダ413はその一部である30秒程度の時間範囲に相当するように、メイン・スライダ412およびサブ・スライダ413が設定されうる。例えば、メイン・スライダ412で指定されたタイムコードの前後15秒やそのタイムコードから30秒の区間が、サブ・スライダ413によって表現されうる。また、事前に30秒単位で区間を区切っておき、それらの区間のうちメイン・スライダ412で指定されたタイムコードを含んだ区間が、サブ・スライダ413によって表現されてもよい。このように、メイン・スライダ412とサブ・スライダ413とでは時間のスケールが異なる。なお、上述の時間長は一例であり、別の時間長に対応するように構成されてもよい。なお、例えばサブ・スライダ413が対応する時間長の設定を変更できるようなユーザインタフェースが用意されてもよい。また、
図4(A)では、メイン・スライダ412とサブ・スライダ413とが画面上で同じ長さで表示される例を示しているが、これらの長さは相互に異なっていてもよい。すなわち、メイン・スライダ412の方が長くてもよいし、サブ・スライダ413の方が長くてもよい。また、サブ・スライダ413は常に表示されなくてもよい。例えば、表示指示が受け付けられた後にサブ・スライダ413が表示されるようにしてもよいし、一時停止などの特定の操作が指示された際にサブ・スライダ413が表示されるようにしてもよい。また、タイムコードの指定および表示は、メイン・スライダ421のつまみ422とサブ・スライダ413のつまみ423とを用いずに行われてもよい。例えば、日:時:分:秒.フレーム番号の形式の数値等、数値によってタイムコードが指定および表示されてもよい。
【0037】
速度指定スライダ414は、等倍再生やスロー再生等の再生速度のユーザによる指定を受け付けるために用いられる。例えば、速度指定スライダ414のつまみ424を用いて選択された再生速度に応じて、タイムコードのカウントアップ間隔が制御される。キャンセルボタン415は、タイムコードに関する各操作をキャンセルするために使用されうる。また、キャンセルボタン415は、一時停止をクリアし、通常再生に戻るために使用しても良い。なお、タイムコードに関する操作を行うボタンであればキャンセルに限定されない。
【0038】
ユーザは、以上のような画面構成を用いて、仮想視点とタイムコードとを操作して、任意のタイムコードにおける被写体の三次元モデルを、任意の位置・姿勢から見た場合の仮想視点画像を端末400に表示させることができる。そして、ユーザは、その様な仮想視点画像に対して、仮想視点の操作と独立して、マーカ入力を行うことができる。
【0039】
(マーカオブジェクトと注目面)
本実施形態では、二次元で表示されている仮想視点画像に対してユーザが入力した二次元のマーカを、三次元のマーカオブジェクトに変換する。三次元に変換されたマーカオブジェクトは、仮想視点と同じ三次元の仮想空間に配置される。まず、マーカオブジェクトの変換方法について、
図5(A)~
図5(E)を用いて説明する。
【0040】
図5(A)は、仮想視点画像500に対してペンシル450を用いて、マーカが入力されている状態を示している。ここで、マーカ上の一点を表すベクトルをマーカ入力ベクトル501と呼ぶ。
図5(B)は、
図5(A)に表示されている仮想視点画像500が生成される際に指定された仮想視点を概略的に示す図である。
図5(A)におけるマーカ入力ベクトル501を[M
c]とすると、このマーカ入力ベクトル501は、仮想視点の位置301を原点とするカメラ座標を用いて[M
c]=(a,b,f)と表現されうる。ここで、「f」は仮想視点の焦点距離であり、
図5(B)において、仮想カメラの光軸と仮想視点の焦点面との交点は(0,0,f)であり、マーカ入力ベクトル[M
c]=(a,b,f)は、その交点からx方向にa、y方向にbだけ移動した点を指す。マーカ入力ベクトルに関して、カメラ座標では[M
c]で表現し、世界座標では、[M
w]=(m
x,m
y,m
z)で表現する。世界座標は、仮想空間における座標である。世界座標におけるマーカ入力ベクトル502([M
w])は、仮想カメラの姿勢を示す回転行列から得られるクォータニオンQtを用いて、[M
w]=Qt・[M
c]により算出される。なお、仮想カメラのクォータニオンは、一般的な技術用語であるため、ここでは詳細に説明しない。
【0041】
本実施形態では、二次元の仮想視点画像に対するマーカ入力を、三次元データのマーカオブジェクトへ変換するために、
図5(C)及び
図5(D)に示すような注目面510を使用する。なお、
図5(C)は、注目面510の全体を俯瞰する図であり、
図5(D)は、注目面510に平行な方向から見た場合の図である。すなわち、
図5(C)と
図5(D)は、同じ被写体をそれぞれ異なる方向から見た状態を示している。注目面510は、例えば、フィールド391(Z=0)に平行な面であって、視聴者が注目しやすい高さにある(例えばZ=1.5m等の)平面である。注目面510は、z=z
fix等の式によって表現されうる。
【0042】
マーカオブジェクトは、注目面510に接する三次元データとして生成される。例えば、マーカ入力ベクトル502と注目面510の交点503が、マーカ入力ベクトル502に対応するマーカ上の一点に対応するマーカオブジェクトとして生成される。すなわち、仮想視点とマーカ上の点とを通る直線と、注目面510として用意される所定の面との交点が、そのマーカ上の点に対応するマーカオブジェクト内の点となるように、マーカからマーカオブジェクトへの変換が行われる。なお、マーカ入力ベクトル502([Mw]=(mx,my,mz))と、平面510(z=zfix)との交点は、一般的な数学的解法によって算出可能であるため、ここでの詳細な説明については省略する。ここでは、この交点が、交点座標Aw=(ax,ay,az))として取得されたものとする。このような交点座標が、マーカ入力として得られた連続する点のそれぞれについて算出され、それらが連ねられた三次元データがマーカオブジェクト520となる。すなわち、マーカが連続した直線や曲線で入力された場合、その連続した直線や曲線に対応する注目面510上の直線又は曲線として、マーカオブジェクト520が生成される。これによって、マーカオブジェクト520が、視聴者が注目しやすい注目面に接する三次元オブジェクトとして生成される。注目面は、視聴者が注目するオブジェクトの高さなどに基づいて、例えばボールが主として存在する高さや選手の中心部分の高さに基づいて、設定されうる。なお、上述のような、ベクトルと注目面との交点を算出することにより、マーカからマーカオブジェクト520への変換が行われてもよいし、所定の行列演算などによってマーカからマーカオブジェクトへの変換が行われてもよい。また、仮想視点とマーカが入力された位置とに対応するテーブルに基づいて、マーカオブジェクトが生成されてもよい。なお、いずれの方法が用いられる場合であっても、注目面上にマーカオブジェクトが生成されるように処理が行われうる。
【0043】
一例において、
図5(A)に示したタブレットに二次元の円として入力されたマーカに対して上述の変換が行われることにより、
図5(E)に示す三次元のドーナツ型のマーカオブジェクト520が生成される。マーカオブジェクトは連続点から作成されるが、
図5(E)に示すように、所定の高さを付与した三次元データとして生成される。
【0044】
なお、
図5(A)~
図5(E)を用いて説明した例では、注目面510が、フィールドであるXY平面に平行な面である場合について説明したが、これに限られない。例えば、被写体がボルダリングなど垂直方向に行われるスポーツの場合には、注目面が、XZ平面やYZ平面に平行となる面として設定されてもよい。すなわち、注目面として、三次元空間上で定義可能な任意の平面を使用することができる。なお、注目面は、平面に限定されず、曲面であってもよい。すなわち、曲面であっても、マーカ入力ベクトルとその曲面との交点が一意に算出可能である限りにおいてその形状は特に限定されない。
【0045】
(処理の流れ)
図6を用いて、画像処理装置104によって実行される処理の流れの例について説明する。本処理は、S602~S611の処理を繰り返すループ処理(S601、S612)によって構成され、このループは、所定のフレームレートで実行される。例えば、フレームレートが60FPSの場合、約16.6[ms]の間隔で、1ループ(1フレーム)の処理が実行される。この結果、後述のS611において、そのフレームレートで仮想視点画像を出力することになる。フレームレートは、画像処理装置104の画面表示における更新レートに同期するように設定されうるが、多視点画像を撮像した撮像装置のフレームレートや、データベース103に格納される三次元モデルのフレームレートに合わせて設定されてもよい。なお、以下の説明では、ループの処理が実行されるごとに、タイムコードが1フレーム分だけカウントアップされるものとするが、タイムコードのカウントアップの間隔はユーザ操作等に応じて変更されてもよい。例えば、1/2の再生速度が指定された場合、2回のループ処理に対して1回のタイムコードのフレームのカウントアップが行われうる。また、例えば、一時停止が指定された場合は、タイムコードのカウントアップが停止されうる。
【0046】
ループ処理において、画像処理装置104は、処理対象のタイムコードを更新する(S602)。ここでのタイムコードは、上述のように、日:時:分:秒.フレームの形式で表現され、フレーム単位でカウントアップ等の更新が行われる。そして、画像処理装置104は、受け付けたユーザ操作が、仮想視点操作であるかマーカ入力操作であるかを判定する(S603)。なお、操作の種類はこれらに限定されない。例えば、画像処理装置104は、タイムコードに対する操作を受け付けた場合には処理をS602に戻し、タイムコードを更新しうる。また、画像処理装置104は、ユーザ操作を受け付けなかった場合には、直前の仮想視点画像の生成処理の際の仮想視点の指定操作があったものとして、処理を進めうる。また、画像処理装置104は、さらに他の操作が受け付けられたことを判定してもよい。
【0047】
画像処理装置104は、S603で仮想視点操作を受け付けたと判定した場合、仮想視点に対する二次元の操作座標を取得する(S604)。ここでの二次元の操作座標は、例えば、タッチパネルに対するタップ操作が受け付けられた位置を示す座標等である。そして、画像処理装置104は、S604で取得した操作座標に基づいて、三次元の仮想空間上で仮想視点の移動と回転との少なくともいずれかを行う(S605)。仮想視点の移動・回転については、
図3(D)に関して説明したため、ここでは繰り返さない。また、タッチパネルにおけるタッチ操作により得られる二次元座標から、仮想視点の三次元空間上の移動および回転の量を決定する処理は周知技術を用いて実行可能であるため、ここでは詳細に説明しない。S604およびS605の処理の後又はその処理と並行して、画像処理装置104は、移動・回転後の仮想視点により定まる視野の範囲内に、マーカオブジェクトが存在するか否かを判定する(S606)。そして、画像処理装置104は、移動・回転後の仮想視点により定まる視野の範囲内にマーカオブジェクトが存在する場合(S606でYES)、そのマーカオブジェクトを読み出して、三次元の仮想空間へ配置する(S607)。画像処理装置104は、マーカオブジェクトを配置すると、そのマーカオブジェクトを含んだ仮想視点画像を生成して出力する(S611)。すなわち、画像処理装置104は、仮想視点に応じて、S602で更新したタイムコードに対応する被写体の三次元モデルと、仮想空間に配置されたマーカオブジェクトを用いて、仮想視点画像を生成する。なお、画像処理装置104は、移動・回転後の仮想視点により定まる視野の範囲内にマーカオブジェクトが存在しない場合(S606でNO)、マーカオブジェクトの配置を行わずに仮想視点画像を生成して出力する(S611)。
【0048】
画像処理装置104は、S603でマーカ入力操作を受け付けたと判定した場合、仮想視点画像におけるマーカ操作の二次元座標を取得する(S608)。すなわち、画像処理装置104は、
図4(A)に関して説明したように、仮想視点操作領域402に対するマーカ操作入力の二次元座標を取得する。そして、画像処理装置104は、S608で取得したマーカ入力の二次元座標を、仮想空間上の注目面における三次元データであるマーカオブジェクトへ変換する(S609)。マーカ入力からマーカオブジェクトへの変換方法は、
図5(A)~
図5(E)で説明したため、ここでは説明を繰り返さない。画像処理装置104は、S609でマーカオブジェクトを取得すると、そのマーカオブジェクトをタイムコードと合わせて保持する(S610)。そして、画像処理装置104は、仮想視点に応じて、S602で更新したタイムコードに対応する被写体の三次元モデルと、仮想空間に配置されたマーカオブジェクトを用いて、仮想視点画像を生成する(S611)。
【0049】
以上のような処理によれば、二次元の仮想視点画像に対して入力されたマーカを、仮想空間内の注目面を用いて三次元データへ変換することができ、被写体の三次元モデルとマーカオブジェクトとを、同じ仮想空間内に配置することができる。このため、仮想視点がいずれの位置・姿勢にあっても、被写体とマーカとの位置関係が維持された仮想視点画像を生成することが可能となる。
【0050】
(画面表示の例)
図7(A)~
図7(D)を用いて、上述のような処理を実行した場合と実行しなかった場合の画面表示の例について説明する。
図7(A)は、マーカが入力される前の仮想視点画像を画像処理装置104が表示した状態を示している。この状態では、例えばタッチ操作701によって、ユーザは、仮想視点を任意に移動・回転させることができる。ここで、一例として、ユーザ操作によってタイムコードが一時停止され、その状態でマーカ入力が受け付けられうる。なお、マーカ入力は、一定期間の仮想視点画像に対応してもよく、例えば操作が受け付けられているフレームから所定フレーム数にわたってマーカ入力が維持されてもよい。また、例えばユーザからのマーカの消去の明示的な指示があるまで入力されたマーカが維持されてもよい。
図7(B)は、ユーザによるマーカ操作の受け付け中の状態を示している。ここでは、ペンシルによって2つのマーカ入力(円711および曲線712)が受け付けられた例を示している。このようなマーカ入力が受け付けられると、画像処理装置104は、それらのマーカ入力を、注目面上の三次元モデルのマーカオブジェクトへ変換し、そのマーカオブジェクトを、仮想視点画像と合わせて描画する。なお、仮想視点に変更がない状態では、ユーザによるマーカ入力が行われた場合と同様の表示がなされ、ユーザからは単にマーカが入力された状態と認識されうる。なお、マーカオブジェクトへの変換処理を実行中の間は、受け付けられた二次元のマーカ入力がそのまま表示され、マーカオブジェクトへの変換処理が完了したことに応じて、三次元のマーカオブジェクトに基づく再描画が行われるようにしてもよい。
【0051】
図7(C)は、入力されたマーカが三次元のマーカオブジェクトに変換されて描画された後に、ユーザのタッチ操作721によって、仮想視点の移動・回転を行った場合の例を示している。本実施形態の手法によれば、仮想空間内において、マーカが付された着目すべき被写体の三次元位置の付近に三次元のマーカオブジェクトが配置されるため、仮想視点の移動・回転を行った後にも、マーカが着目すべき被写体の付近に表示される。また、マーカが三次元のマーカオブジェクトに変換されて、仮想視点画像に描画されるため、仮想視点の移動・回転に応じて位置及び向きが変化して観測されることとなる。このように、本実施形態の手法によれば、仮想視点の移動・回転後も、マーカの入力内容と仮想視点画像の内容との整合性を確保し続けることができる。一方、本実施形態の手法が適用されない場合、仮想視点の移動・回転が行われた後に、マーカが入力された位置にそのまま表示され、仮想視点画像の内容のみが変化するため、マーカの入力内容と仮想視点画像の内容とが整合しなくなる。
【0052】
このように、本実施形態によれば、仮想視点画像に対して入力されたマーカが、被写体の三次元モデルが配置される仮想空間において視聴者が注目しやすい面にマーカオブジェクトとして生成される。そして、このマーカオブジェクトを被写体の三次元モデルと共に仮想視点画像として描画する。これにより被写体とマーカとの位置関係を維持し、仮想視点を任意の位置・姿勢へ動作させた際にマーカが被写体からずれることによる違和感を解消または低減することができる。
【0053】
(マーカオブジェクトの共有)
なお、上述の手法によって生成されたマーカオブジェクトは、他のデバイスとの間で共有することができる。
図8に、そのような共有を行うシステムの構成例を示している。
図8において、仮想視点画像生成システム100は、
図1(A)に関して説明した機能の少なくとも一部を実行可能に構成され、被写体の撮影から、多視点画像や三次元モデルの生成を行う。管理サーバ801は、被写体の三次元モデルや、後述の共有されたマーカオブジェクトを、タイムコードごとに管理して記憶する記憶装置であり、また、マーカオブジェクトをタイムコードごとに配信する配信装置でもありうる。画像処理装置811~画像処理装置813は、それぞれ、例えば画像処理装置104と同様の機能を有し、管理サーバ801から三次元モデルを取得して仮想視点画像を生成して表示する。また、画像処理装置811~画像処理装置813のそれぞれは、ユーザからマーカの入力を受け付けてマーカオブジェクトを生成し、生成したマーカオブジェクトを管理サーバ801へアップロードして記憶させうる。第1の画像処理装置は、第2の画像処理装置によってアップロードされたマーカオブジェクトをダウンロードすることにより、第2の画像処理装置のユーザが入力したマーカと被写体の三次元モデルとを合わせた仮想視点画像を生成することができる。
【0054】
(マーカオブジェクトのデータ構成)
画像処理装置104は、マーカ管理部205によって、一例において
図9(A)~
図9(C)の構成でマーカオブジェクトを保持する。そして、画像処理装置104は、例えば、そのマーカオブジェクトのデータを同じデータ構成のまま管理サーバ801へアップロードしうる。また、画像処理装置104は、管理サーバ801から、同じデータ構成のマーカオブジェクトのデータをダウンロードする。なお、
図9(A)~
図9(C)のデータ構成は一例であり、マーカオブジェクトの仮想空間内での位置及び形状を特定可能な任意の形式のデータが用いられうる。また、管理サーバ801と画像処理装置104との間で、異なるデータ形式が用いられ、所定のルールに従ってマーカオブジェクトのデータが必要に応じて再生されるようにしてもよい。
【0055】
図9(A)は、マーカオブジェクトのデータ900の構成例を示す。データセットの先頭にあるヘッダ901には、オブジェクトの種類が保存される。ヘッダ901には、例えば、このデータセットが「マーカ」のデータセットであることを示す情報が格納される。なお、データセットの種類は、「前景」や「背景」等が指定されてもよい。また、マーカオブジェクトのデータ900には、フレーム数902、1つ以上のフレーム(タイムコード)のそれぞれに対応する1つ以上のデータ903が含まれる。
【0056】
フレーム(タイムコード)ごとのデータ903は、例えば、
図9(B)に示すような構成を有する。データ903は、例えば、タイムコード911およびデータサイズ912を含む。なお、データサイズ912は、このフレーム(タイムコード)のデータと次のフレームのデータとの境界を特定可能とするものであり、複数のフレームのそれぞれに関するデータサイズがデータ903の外部に用意されてもよい。この場合、例えば、ヘッダ901とフレーム数902との間、フレーム数902とデータ903との間、データ903の後などに、データサイズの情報が格納されうる。データ903は、さらに、マーカオブジェクト数913を含む。マーカオブジェクト数913は、そのタイムコードに含まれるマーカの数を示す。例えば、
図7(B)の例では、円711と曲線712の2つのマーカが入力されている。このため、この場合には、マーカオブジェクト数913により、2つのマーカオブジェクトが存在することが示される。そして、データ903は、そのマーカオブジェクト数913で示される個数のマーカオブジェクトのデータ914を含む。
【0057】
マーカオブジェクトごとのデータ914は、例えば、
図9(C)のような構成を有する。マーカオブジェクトごとのデータ914は、データサイズ921およびデータ種別922を含む。データサイズ921は、1つ以上のデータ914のそれぞれのデータのサイズを示し、マーカオブジェクトごとのデータの境界を特定可能とするために用いられる。データ種別922は、三次元モデルの形状の種類を示す。データ種別922は、例えば、「点群」や「メッシュ」などの情報を指定する。なお、三次元モデルの形状はこれらに限定されない。一例として、データ種別922に「点群」を示す情報が格納される場合、データ914は、その後に、点群の数922、及び、全点群の座標924とテクスチャ934との1つ以上の組み合わせを含む。なお、1つ以上のデータ914のそれぞれにおいて、マーカオブジェクトの三次元データの他に、全点群座標の中心座標や、三次元の各軸における最小・最大値などを格納してもよい(不図示)。また、1つ以上のデータ914のそれぞれにおいて、さらなる他のデータが格納されてもよい。なお、マーカオブジェクトのデータは、フレーム単位で用意されなくてもよく、例えば、シーングラフの様な形式でアニメーションとして構成されてもよい。
【0058】
図9(A)~
図9(C)のようなデータを用いることによって、例えば、スポーツの一試合における異なるタイムコードにおける複数のマーカオブジェクトを管理することができる。また、1つのタイムコードに対して複数のマーカを管理することもできる。
【0059】
続いて、管理サーバ801によるマーカオブジェクトの管理について説明する。
図9(D)は、マーカオブジェクトを管理するテーブルの構成例を示している。テーブルの横軸にはタイムコードが並べられており、縦軸には、各タイムコードに対応するマーカオブジェクトを示す情報が格納される。例えば、「1st object」に対応する行のセルには、複数のタイムコード(フレーム)のデータ903のそれぞれにおいて示される「1st object」のデータが格納される。例えば、1つのセルには
図9(C)に示されるデータが格納される。
図9(D)のようなデータベースのテーブル構成を使用することにより、管理サーバ801は、マーカオブジェクトが指定された場合に、そのマーカオブジェクトに関する全タイムコードのデータを取得することができる。また、管理サーバ801は、タイムコードの範囲が指定された場合に、そのタイムコードに含まれる全マーカオブジェクトのデータを取得することができる。なお、これらは一例であり、マーカオブジェクトを管理及び共有することが可能な限りにおいて、上述のようなデータ構成や管理方法が用いられなくてもよい。
【0060】
(マーカオブジェクトの共有および表示)
図10(A)~
図10(C)を用いて、マーカオブジェクトの共有、及び、表示の例について説明する。ここでは、
図8に示した画像処理装置811~画像処理装置813の間でマーカオブジェクトが共有される場合について説明する。なお、ここでは、
図10(A)が画像処理装置811に表示される操作画面を示し、
図10(B)が画像処理装置812に表示される操作画面を示し、
図10(C)が画像処理装置813に表示される操作画面を示すものとする。一例として、
図10(A)に示すように、画像処理装置811において、あるタイムコードの仮想視点画像に対して円1001の形状のマーカが受け付けられたものとする。画像処理装置811は、例えば、ユーザによるマーカの共有指示(不図示)を受け付けたことに基づいて、入力されたマーカから上述のようにして変換されたマーカオブジェクトのデータを、管理サーバ801へ送信する。また、
図10(B)に示すように、画像処理装置812において、
図10(A)と同じタイムコードの仮想視点画像に対して曲線1002の形状のマーカが受け付けられたものとする。画像処理装置812は、ユーザによるマーカの共有指示(不図示)を受け付けたことに基づいて、入力されたマーカから上述のようにして変換されたマーカオブジェクトを管理サーバ801へ送信する。なお、マーカオブジェクトはタイムコードと関連付けられて、管理サーバ801に記憶させるために送信される。画像処理装置811~画像処理装置813は、このために、タイムコードとマーカオブジェクトとを関連付けて管理サーバ801に記憶させるための記憶制御機能を有する。
【0061】
この状態で、画像処理装置813において、マーカの更新指示(不図示)を受け付けたものとする。この場合、画像処理装置813は、管理サーバ801から、画像処理装置811および画像処理装置812が
図10(A)及び
図10(B)のようにマーカを入力したタイムコードに関して、そのマーカに対応するマーカオブジェクトを取得する。そして、画像処理装置813は、
図10(C)に示すように、そのタイムコードの被写体の三次元モデルと取得したマーカオブジェクトとを用いて仮想視点画像を生成する。なお、ここで取得されるマーカオブジェクトは、上述のように被写体の三次元モデルと同じ仮想空間に配置される三次元データである。このため、共有先の画像処理装置813においても、共有元の画像処理装置811および画像処理装置812における入力時の位置関係と同じ位置関係で被写体の三次元モデルとマーカオブジェクトが配置される。このため、画像処理装置813において、仮想視点の位置及び視線の方向を任意に操作した場合であっても、それらの位置関係が維持されたまま仮想視点画像が生成される。
【0062】
なお、例えば画像処理装置811がマーカの更新指示を受け付けた場合、画像処理装置811は、画像処理装置812において入力されたマーカ(曲線1002)のマーカオブジェクトの情報を取得しうる。そして、画像処理装置811は、自装置で入力されたマーカ(円1001)のマーカオブジェクトと被写体の三次元モデルに加え、取得したマーカオブジェクトを含めて仮想視点画像を描画しうる。
【0063】
なお、例えば、画像処理装置813においてマーカの更新指示を受け付けた場合に、管理サーバ801において管理されているマーカオブジェクトをサムネイル等で一覧表示し、ダウンロードするマーカオブジェクトが選択されるようにしてもよい。この場合、管理サーバ801において管理されているマーカオブジェクトの数が多い場合には、更新指示を受け付けたタイムコード付近のマーカオブジェクトの優先度を上げて、サムネイル等で一覧表示してもよい。すなわち、画像処理装置813においてマーカの更新指示を受け付けた時点で、ユーザの興味はその時点に対応するタイムコードの付近で入力されたマーカの選択が容易になるように、優先的にそのマーカが表示されるようにしうる。また、ダウンロード指示が受け付けられた回数をマーカオブジェクトごとに管理しておき、その回数が多いマーカオブジェクトの優先度を上げてサムネイル等で一覧表示してもよい。なお、表示の優先度が高いほど、リストの先頭に近い位置でサムネイル等が表示されてもよいし、サムネイルの大きさが大きくなるような表示が行われてもよい。
【0064】
以上のようにして、仮想視点画像に対して入力されたマーカを、被写体とマーカの位置関係を維持したまま、複数のデバイス間で共有することができる。このときに、上述のようにマーカが仮想空間上の三次元のオブジェクトの形式を有するため、共有元の装置と共有先の装置とで仮想視点の位置や視線の方向が異なっていても、被写体とマーカの位置関係を維持したまま仮想視点画像を生成することができる。
【0065】
(タイムコードに応じたマーカ透過度の制御)
上述のようにして表示されたマーカオブジェクトは、時間が経過して被写体が移動した場合などには、被写体との位置関係がずれてしまう。このような場合に、マーカオブジェクトが表示されたままとすると、ユーザに違和感を与えてしまいうる。これに対して、マーカオブジェクトが入力されたタイムコードから時間が経過するにつれて、マーカオブジェクトの透過度を高くすることによって、元の注目ポイントからの変化の様子をユーザに伝え、かつ、違和感を軽減することができる。上述のように、マーカオブジェクトはタイムコードと関連付けられて保持されている。ここで、
図10(C)の例において、ユーザが、タイムコードに対する操作751を実行したものとする。この場合、画像処理装置813は、
図11(A)に示すように、マーカオブジェクトが生成されたタイムコードから離れたタイムコードへ遷移するにつれ、マーカの透過度(α値)を変更しうる。これにより、実際にマーカが入力されたタイミングからずれるほど、マーカが薄く表示されるような描画が行われ、ユーザの違和感を軽減することが可能となる。なお、ユーザがタイムコードを戻した場合には、
図10(C)のように元の透明度へ戻すような制御が行われてもよい。なお、マーカオブジェクトが生成されたタイムコードより前のタイムコードに対応する仮想視点画像においてもマーカオブジェクトが描画されるようにしてもよい。この場合も、マーカオブジェクトが生成されたタイムコードと、描画する仮想視点画像のタイムコードとの差が大きいほど、透過度を高くするように(薄く表示されるように)制御が行われうる。また、マーカオブジェクトが生成されたタイムコードより前の場合の透過度が、マーカオブジェクトが生成されたタイムコードより後の場合の透過度より高くなるように(表示が薄くなるように)制御が行われてもよい。
【0066】
なお、上述の例では、タイムコードが遷移するにつれ、透過度が変化する例について説明したが、これに限定されない。例えば、マーカオブジェクトの明度、彩度、及び色度の少なくともいずれかを変化させることにより、マーカがより薄く表示されるように制御してもよい。
【0067】
(三次元モデルの座標に応じたマーカオブジェクト制御)
なお、上述の実施形態に加えて、又はこれに代えて、画像処理装置は、前景の三次元モデルに対してマーカを付する操作を受け付けてもよい。例えば、
図11(B)のように、前景(人物)の三次元モデルに対して、マーカ追加指示1101が受け付けられる。この場合、画像処理装置は、例えば、
図11(C)に示すように、その三次元モデルの注目面におけるXY座標を中心とした所定サイズの半径を有する円形のマーカオブジェクト1102を生成する。これによれば、
図5(A)~
図5(E)を用いて説明したマーカオブジェクトと同様のマーカオブジェクトを生成することができる。なお、前景の三次元モデルに対するマーカオブジェクトの追加指示(マーカ付与)を受け付けた場合に生成されるマーカオブジェクトの形状は円形に限定されない。この場合のマーカオブジェクトの形状は、例えば、矩形等であってもよいし、三次元モデルが注目を集めることができる他の形状であってもよい。
【0068】
なお、前景の三次元モデルに対して付されたマーカは、その前景の人物やボール等の移動に伴って位置が変更されてもよい。なお、
図5(A)~
図5(E)で説明したマーカオブジェクトにおいても、マーカが付された位置又はその周囲の前景の三次元モデルとそのマーカオブジェクトとを関連付け、その前景の三次元モデルの位置に応じて、マーカオブジェクトの位置を変更してもよい。すなわち、マーカを付す手法によらずに、タイムコードごとの前景の三次元モデルの座標が取得され、タイムコードごとにマーカオブジェクトの座標が変更されるようにしてもよい。これによって、タイムコードの経過に応じてその前景の人物等が移動した場合に、マーカオブジェクトをその三次元モデルに追随して移動させることができる。また、例えば、ユーザ操作によって、タイムコードの変化に応じてマーカオブジェクトの位置が変更されてもよい。この場合、ユーザ操作に応じて、タイムコードごとにマーカオブジェクトの位置を特定して、その位置が記憶・管理されうる。
【0069】
なお、上述の実施形態は、複数の撮像装置によって撮像された多視点画像に基づく仮想視点画像に対してマーカが付された場合の処理について説明したが、これに限られない。すなわち、例えば全てが人工的にコンピュータ上で作成された三次元の仮想空間に基づいて生成された仮想視点画像に対してマーカが付された場合にも、そのマーカをその仮想空間内の三次元のオブジェクトに変換してもよい。また、上述の実施形態では、マーカが付された仮想視点画像に対応するタイムコードと関連付けられたマーカオブジェクトが生成および記憶される例を説明したが、タイムコードがマーカオブジェクトに関連付けられなくてもよい。例えば、仮想視点画像が静止画像である場合や、会議等において一時的にマーカを付すだけの用途で用いられる場合は、タイムコードとは関係なく、例えばユーザの操作によってマーカオブジェクトが表示され又は消去されるようにしてもよい。また、例えば会議システムなどにおいて用いられる画像処理装置の少なくとも一部は、仮想視点を指定する能力を有しなくてもよい。すなわち、仮想視点画像にマーカが付された後に、会議を進行する役割の人物などの特定のユーザにおいてのみ仮想視点が指定可能であればよく、他のユーザが有する画像処理装置は、仮想視点の操作を受け付けなくてもよい。この場合も、特定のユーザによって指定された仮想視点に応じて、マーカオブジェクトが描画されるため、マーカと仮想視点画像の被写体との関係が一致しなくなることを防ぐことができる。
【0070】
[その他の実施形態]
上述の実施形態では、仮想視点画像に表示させる付加情報として、マーカオブジェクトを表示させる例について説明した。しかしながら、仮想視点画像に表示される付加情報はこれに限定されない。例えば、ユーザにより指定されたマーカ、アイコン、アバター、イラスト等のうち少なくともいずれかの付加情報が仮想視点画像に表示されるように構成されてもよい。また、事前にこれらの付加情報が複数用意され、ユーザにより任意のものが選択されて、仮想視点画像上に配置されるように構成されてもよい。また、ユーザがタッチパネルディスプレイにおいてアイコン等をドラッグして任意の位置に配置することを可能とするように構成されてもよい。配置されたアイコン等の付加情報は、上述の実施形態と同様の方法により3次元データに変換される。なお、この方法に限られず、あらかじめ2次元データの付加情報と3次元データの付加情報とが対応付けられ、2次元データの付加情報が配置されたタイミングで、対応する3次元データの付加情報に置換されるように構成されてもよい。このように、本実施形態は、種々の付加情報を仮想視点画像に表示させる場合に適用可能である。
【0071】
また、上述した実施形態では、付加情報(マーカオブジェクト)が3次元データに変換されると説明したが、このときの3次元データは必ずしも3次元形状を表すデータでなくてもよい。すなわち、3次元データは少なくとも仮想空間における3次元位置を有するデータであり、付加情報の形状は平面、線、または点であってもよい。
【0072】
また、上述した実施形態において説明した機能のすべてを有していなくてもよく、任意の機能を組み合わせて実施することが可能である。
【0073】
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0074】
本開示は上記実施形態に制限されるものではなく、本開示の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。
【符号の説明】
【0075】
104:画像処理装置、201:仮想視点制御部、202:モデル生成部、203:画像生成部、204:マーカ制御部、205:マーカ管理部