以下、添付の図面を参照して、本発明の実施形態について詳細に説明する。なお、以下の実施形態は例であり、本発明の範囲を限定するものではない。また、以下で説明される特徴の組み合わせの全てが本発明に必須のものとは限らない。同一の構成要素については、同じ符号を付す。
(第1の実施形態)
図1は、第1の実施形態における空間情報処理システムの機能ブロック図である。
空間情報処理システムは、マルチカメラ撮影部1a、1b、三次元モデル生成部2a、2b、三次元モデル記憶部3a、3b、三次元モデル取得部4a、4b、カメラパス作成部5a、5b、カメラパス記憶部6a、6b、カメラパス取得部7a、7bを有する。また、トラッキングデータ作成部8a、8b、トラッキングデータ記憶部9a、9b、トラッキングデータ取得部10a、10b、相対座標軸決定部11a、11b、相対座標値変換部12a、12b、絶対座標値変換部13a、13bを有する。また、仮想視点画像生成部14a、14b、画像記憶部15a、15b、画像取得部16a、16b、レイアウト部17、表示部18、制御部19を有する。
本実施形態では、図1に示す空間情報処理システムの構成要素のうち、マルチカメラ撮影部1a、1bと表示部18以外の構成要素は、単一の情報処理装置100に実装されているものとする。ただし、これに限らず、図1に示す構成要素が複数の装置に分かれて実装されてもよい。
マルチカメラ撮影部1a、1bは、オブジェクトの周囲に配置された複数のカメラを含み、当該オブジェクトを撮影する。
三次元モデル生成部2a、2bは、上記複数のカメラが撮影した画像(すなわち、複数視点画像)に基づいて、オブジェクトの三次元モデルデータ(三次元形状データ及びテクスチャデータを含む)を生成する。
三次元モデル記憶部3a、3bは、上記三次元モデルデータを記憶する。
三次元モデル取得部4a、4bは、上記三次元モデル記憶部3a、3bから三次元モデルデータを取得する。
カメラパス作成部5a、5bは、操作デバイスの操作に基づいて、仮想視点画像のカメラパス(フレーム毎の仮想視点画像の視点の位置座標、視線の方向ベクトル、及び画角などを表わすデータ)を作成する。操作デバイスは、例えば、マウスなどのポインティングデバイスや、ジョイスティックなどのコントローラとすることができる。カメラパスは、例えば、サッカーの競技場の所定の位置を原点(Oa)として、競技場の所定の方向をそれぞれX軸(Xa)、Y軸(Ya)、及びZ軸(Za)とした絶対座標で表わす(添え字aはabsoluteの頭文字である)。
図2は、サッカーの競技場における絶対座標軸の例を示す。絶対座標軸は、実空間における座標軸である。ここでは、センターマーク位置を原点(Oa)とし、原点からゴール方向をX軸(Xa)、ハーフウェーライン方向をY軸(Ya)、上方向をZ軸(Za)とする。
操作デバイスの各操作に、前進・後退、左右移動、上昇・下降、パン、ティルト、ロール、ズーム、記録、停止、速度制御などの機能が割り当てられている。また、操作デバイスの1つの操作で、上記複数の機能を動作させてもよい。前進・後退、左右移動、上昇・下降は、視点の位置座標の操作に対応し、パン、ティルト、ロールは、視線の方向ベクトルの操作に対応し、ズームは画角の操作に対応する。
図1の説明に戻り、カメラパス記憶部6a、6bは、上記カメラパスを記憶する。
カメラパス取得部7a、7bは、上記カメラパス記憶部6a、6bからカメラパスを取得する。
仮想視点画像生成部14a、14bは、上記三次元モデル取得部4a、4bが取得した三次元モデルデータ、及び、上記カメラパス取得部7が取得したカメラパスに基づき、仮想視点画像を生成する。
画像記憶部15a、15bは、上記仮想視点画像を記憶する。
画像取得部16a、16bは、上記画像記憶部15a、15bから仮想視点画像を取得する。
レイアウト部17は、上記仮想視点画像の画面上でのレイアウトを決定する。すなわち、レイアウト部17は、上記仮想視点画像の画面上での表示を制御する表示制御手段として機能する。
表示部18は、上記レイアウトに基づいて仮想視点画像を画面に表示する。
制御部19は、上記各機能ブロックの処理を制御する。
マルチカメラ撮影部1a~仮想視点画像生成部14a、及び、マルチカメラ撮影部1b~仮想視点画像生成部14bのそれぞれが、同じシーンの仮想視点画像を生成することができる。また、マルチカメラ撮影部1a~仮想視点画像生成部14a、及び、マルチカメラ撮影部1b~仮想視点画像生成部14bが、それぞれ異なるシーンの仮想視点画像を生成することもできる。レイアウト部17が、マルチカメラ撮影部1a~仮想視点画像生成部14a、及び、マルチカメラ撮影部1b~仮想視点画像生成部14bのそれぞれが生成した仮想視点画像を同じ画面に並べてレイアウトすることで、仮想視点画像のマルチ画面表示が実現できる。
ここで、サッカーの異なる2つのシーンの仮想視点画像をマルチ画面表示する例について説明する。
図3は、異なる2つのシーン51a、51bにおいて、それぞれ選手52a、52bがゴール55a、55bへボール53a、53bを蹴るところを表わす。2つのシーン51a、51bでは、比較対象の選手52a、52bの競技場内での位置と、体の向きが異なる。
図4は、図3の2つのシーンの仮想視点画像をマルチ画面で表示した例を示す。表示装置32の画面33には、各シーンに対応した画像31a、31bが表示されている。画像31a、31bでは、比較対象の選手に対する仮想視点の視点位置、視線方向、及び画角を一致させることによって、画像上の比較対象の選手の位置、体の向き、及び距離感がほぼ一致している。そのため、選手のフォームの比較がしやすくなる。
図4のマルチ画面表示の例では、1つの表示装置32の画面33を分割して複数の画像31a、31bを表示しているが、複数の表示装置にそれぞれの画像を表示してもよい。また、比較対象として共に表示される複数の仮想視点画像は、同じオブジェクト(選手等)を含む画像であって、それぞれ異なる撮影時刻に対応する画像であってもよい。またこれに限らず、共に表示される複数の仮想視点画像が、それぞれ異なるオブジェクトを含む画像であって、同じ撮影時刻に対応する画像であってもよい。また、共に表示される複数の仮想視点画像が、それぞれ異なるオブジェクトを含む画像であり、かつそれぞれ異なる撮影時刻に対応する画像であってもよい。
本実施形態では、比較する複数のシーンの画像が仮想視点画像である場合において、操作デバイスの操作に応じて、比較対象の選手に対する視点位置、視線方向、及び画角が一致するカメラパスを作成する。
ここで、再度図1を参照して、本実施形態における各機能ブロックの処理について説明する。
カメラパス作成部5aは、操作デバイスの操作に基づいて、シーン51aのカメラパスを作成する。カメラパス記憶部6aは、上記カメラパス作成部5aが作成したシーン51aのカメラパスを記憶する。カメラパス取得部7aは、上記カメラパス記憶部6aからシーン51aのカメラパスを取得する。
トラッキングデータ作成部8a、8bは、マルチカメラ撮影部1a、1bが撮影した画像に基づいて、トラッキングデータ(選手やボールの位置、選手の体の向きなどをトレースしたデータ)を生成する。
トラッキングデータ記憶部9a、9bは、上記トラッキングデータを記憶する。
トラッキングデータ取得部10a、10bは、上記トラッキングデータ記憶部9からトラッキングデータを取得する。あるいは、不図示の外部システムからトラッキングデータを取得してもよい。
相対座標軸決定部11a、11bは、上記トラッキングデータに基づいて、指定された比較対象選手の位置と体の向きを基準にした相対座標軸を決定する。
図5は、相対座標軸について説明する図である。図5(a)は、シーン51aの相対座標軸を表わし、図5(b)は、シーン51bの相対座標軸を表わす。
相対座標軸は、比較対象選手の位置(地面上)を原点(Or)とし、選手の体の向きに対して左右方向をX軸(Xr)、前後方向をY軸(Yr)、上下方向をZ軸(Zr)とする(添え字rはrelativeの頭文字)。比較対象選手の位置及び体の向きは、トラッキングデータに基づいて求めることができる。比較対象選手の位置は、具体的には、頭の位置、胴体の位置、足の位置(2本の足の位置の中間点)などから選択するようにしてもよい。また、比較対象選手の体の向きは、具体的には胴体の方向、顔の方向、視線の方向、足先の方向などのうちから選択するようにしてもよい。
図1の説明に戻り、相対座標値変換部12aは、シーン51aの視点の位置座標及び方向ベクトルの座標値を、上記絶対座標軸を基準とした絶対座標値から、上記シーン51aの相対座標軸を基準とした相対座標値に変換する。画角の値(角度または焦点距離で表わす)は、座標軸に依存しないので、そのままの値を出力する。
一般に、三次元空間上の点を、第一の三次元座標軸を基準とした座標値(x1,y1,z1)から第二の三次元座標軸を基準とした座標値(x2,y2,z2)に、行列演算によって変換できることが知られている。行列の要素は、各座標軸の原点位置と各座標軸の方向ベクトルから求められる。
相対座標値変換部12bは、シーン51bの視点の位置座標及び方向ベクトルの相対座標値を、上記シーン51aの視点の位置座標と方向ベクトルの相対座標値と一致した値に決定する。シーン51aの相対座標軸は、選手52aの位置及び体の向きを基準にしており、シーン51bの相対座標軸は、選手52bの位置及び体の向きを基準している。したがって、それぞれのシーンの相対座標軸を基準とした相対座標値が一致するようにそれぞれの視点を決定すると、選手52aと選手52bをそれぞれの視点から見た画像が一致する。
絶対座標値変換部13aは、上記絶対座標軸を基準として表されるシーン51aの視点の位置座標及び方向ベクトルの座標値をそのまま出力する。なお、本例では、後述する仮想視点画像生成部14aは、カメラパス取得部7aによって取得されたカメラパスを用いることができるので、絶対座標値変換部13aからの出力は必ずしも必要としない。
絶対座標値変換部13bは、上記シーン51bの視点の位置座標及び方向ベクトルの座標値を、上記シーン51bの相対座標軸を基準とした相対座標値から上記絶対座標軸を基準とした絶対座標値に変換する。画角の値(角度または焦点距離で表わす)は、座標軸に依存しないので、そのままの値を出力する。
仮想視点画像生成部14aは、三次元モデル取得部4aによって取得された三次元モデルデータ、及び、カメラパス取得部7aによって取得されたカメラパスに基づき、シーン51aの仮想視点画像を生成する。
仮想視点画像生成部14bは、三次元モデル取得部4bによって取得された三次元モデルデータ、及び、絶対座標値変換部13bによって変換されたカメラパス(すなわち、絶対座標値)に基づき、シーン51bの仮想視点画像を生成する。
レイアウト部17は、上記シーン51aの仮想視点画像及びシーン51bの仮想視点画像の画面上でのレイアウトを決定する。
表示部18は、上記2つの仮想視点画像を上記レイアウトに基づいて画面に表示する。
カメラパス記録中の状態において、カメラパス記憶部6bは、上記絶対座標値変換部13bが変換したカメラパスを保存する。
カメラパス作成部5bは、上記カメラパス記憶部6bに保存されているカメラパスを操作デバイスの操作にしたがって適宜編集し、カメラパス記憶部6bに再度保存する。
ここで、本実施形態におけるシーン51a及びシーン51bのカメラパス生成処理の流れについて、図6のフローチャートを用いて説明する。フローチャートで示される一連の処理は、情報処理装置100のCPUがROMまたはHDDに格納されている制御プログラムをRAMに展開して実行することにより行われる。あるいはまた、フローチャートにおけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。また、各処理の説明における記号「S」は、当該フローチャートにおける「ステップ」を意味する。その他のフローチャートについても同様である。
S101において、制御部19は、入力シーン及び出力画像の開始フレームを設定する。ここでは、入力シーンとして、シーン51a及びシーン51bが設定される。
S102において、制御部19は、シーン51aのカメラパスの開始フレームの初期値を設定する。初期値は、任意の値(例えば、デフォルト値や前回の値など)でよい。
S103において、相対座標軸決定部11aは、選手52aのトラッキングデータに基づき、シーン51aにおける現在フレームの選手52aを基準とした相対座標軸を決定する。また、相対座標軸決定部11bは、選手52bのトラッキングデータに基づき、シーン51bにおける現在フレームの選手52bを基準とした相対座標軸を決定する。
S104において、相対座標値変換部12aは、シーン51aのカメラパスの現在フレームにおける絶対座標値を、絶対座標軸及びシーン51aの相対座標軸に基づき、行列演算によって相対座標値に変換する。また、相対座標値変換部12bは、シーン51aのカメラパスの現在フレームにおける相対座標値を、シーン51bのカメラパスの現在フレームにおける相対座標値とする。
S105において、絶対座標値変換部13bは、シーン51bのカメラパスの現在フレームにおける上記相対座標値を、絶対座標軸とシーン51bの相対座標軸に基づき、行列演算によって絶対座標値に変換する。
S106において、仮想視点画像生成部14aは、シーン51aの現在フレームの三次元モデルデータ及びカメラパスに基づき、シーン51aの現在フレームの仮想視点画像を生成する。また、仮想視点画像生成部14bは、シーン51bの現在フレームの三次元モデルデータ及びカメラパスに基づき、シーン51bの現在フレームの仮想視点画像を生成する。レイアウト部17は、2つの仮想視点画像を並べたレイアウトを決定する。表示部18は、上記レイアウト結果に基づいて2つの仮想視点画像を並べて画面に表示する。
S107において、制御部19は、カメラパス記録中状態であるかどうかを判定する。操作デバイスによってカメラパスの記録開始操作が行われると、カメラパス記録中状態となる。カメラパス記録中状態であれば、S108へ進み、カメラパス記録中状態でなければ、S111へ進む。
S108において、制御部19は、シーン51aの現在フレームにおけるカメラパスの絶対座標値を、カメラパス記憶部6aに保存する。また、シーン51bの現在フレームにおけるカメラパスの絶対座標値を、カメラパス記憶部6bに保存する。
S109において、制御部19は、出力画像のフレームを1フレーム更新する。
S110において、制御部19は、入力シーンのフレームを更新する。入力シーンの更新フレーム数は、操作デバイスによる速度制御操作に基づいて決定される。等倍速の場合、出力画像と同じく入力シーンを1フレーム更新する。等倍速よりも速い場合、入力シーンを複数フレーム飛ばして更新する。等倍速よりも遅い場合、入力シーンのフレームを複数回に1回の頻度で更新する。速度が0の場合、入力シーンのフレームを更新しない。速度が負の場合、入力シーンの過去のフレームへ戻る。
カメラパス記録中状態でない場合、上記S108、S109、及びS110が実行されないため、カメラパスの保存は行われず、フレームも進行しない。一方で、操作デバイスの操作に応じて視点位置、視線方向、及び画角は変更することができる。
S111において、制御部19は、カメラパス記録終了状態かどうかを判定する。操作デバイスによってカメラパスの記録停止操作が行われると、カメラパス記録終了状態となる。カメラパス記録終了状態であれば、処理は終了し、カメラパス記録終了状態でなければ、S112へ進む。
S112において、カメラパス作成部5aは、上記更新前のフレームにおける操作デバイスの操作に基づいて、シーン51aの上記更新後のフレームのカメラパスの位置座標、方向ベクトル、及び画角の値を更新し、S103へ戻る。すなわち、カメラパス作成部5aは、シーン51aのカメラパスの絶対座標値を更新する。
以上説明したように、操作者がマルチ画面表示を見ながら操作デバイスによって仮想視点操作及び速度制御操作を行うと、各シーンの仮想視点及び速度を連動して制御することができる。
ここで、本実施形態において生成されるカメラパスの例について説明する。
図7は、本実施形態の各シーンにおける選手及び仮想視点の動きの例を表わす。図7(a)のシーン51aでは、選手52aがまっすぐ助走している。図7(b)のシーン51bでは、選手52bが体の向きを変えながらカーブして助走している。
図7(a)において、白抜き矢印71a~73aは、シーン51aにおける選手52aの位置(白抜き矢印の始点)と体の向き(白抜き矢印の方向)の時間変化を表わす。白抜き矢印71aは、助走開始の状態にあり、白抜き矢印72aの状態は助走中であり、白抜き矢印73aの状態はシュート中である。また、黒色矢印81a~83aは、選手52aに対する仮想視点の視点位置(黒色矢印の始点)と、仮想視点の視線方向(黒色矢印の方向)の時間変化を表わす。
図7(b)において、白抜き矢印71b~73bは、シーン51bにおける選手52bの位置と体の向きの時間変化を表わす。また、黒色矢印81b~83bは、選手52bに対する仮想視点の視点位置と視線方向の時間変化を表わす。
図7(a)及び図7(b)において、Oa、Xa、及びYaは、それぞれ絶対座標軸の原点、X軸、及びY軸を示す。また、Or、Xr、及びYrは、それぞれ相対座標軸の原点、X軸、及びY軸を示す。図7(a)及び図7(b)は、上空(XY平面に対して鉛直方向上側)から見た図であるため、Z軸は示していない。本実施形態では、選手52a、52bの位置や体の向きの変化に応じて、相対座標軸の原点位置や軸方向が変化する。
白抜き矢印71a、黒色矢印81a、白抜き矢印71b、黒色矢印81bは、マルチ画面表示における同じフレームであって、助走開始の状態を表わす。このフレームにおいては、どちらのシーンでも比較対象選手を後方から見た画像が表示される。
白抜き矢印72a、黒色矢印82a、白抜き矢印72b、黒色矢印82bは、マルチ画面表示における同じフレームであって、助走中の状態を表わす。このフレームにおいては、どちらのシーンでも比較対象選手を左方から見た画像が表示される。
白抜き矢印73a、黒色矢印83a、白抜き矢印73b、黒色矢印83bは、マルチ画面表示における同じフレームであって、シュート中の状態を表わす。このフレームにおいては、どちらのシーンでも比較対象選手を前方から見た画像が表示される。
このように、本実施形態では、比較対象選手同士の位置や動く方向が異なっても、マルチ画面表示上では各選手が一致した方向を向いて表示されるので、選手の細かい動きを比較しやすい。
仮想視点画像をマルチ画面で表示する方法としては、下記のいずれの方法でもよい。また、マルチ画面表示の画像ごとにそれぞれ異なる方法で表示してもよい。
第一の方法は、操作者による操作デバイスの操作に応じて、カメラパスを作成しながらリアルタイムで三次元モデルを読み出して仮想視点画像を生成し、マルチ画面表示する方法である。
第二の方法は、三次元モデルを三次元モデル記憶部3a、3bに、カメラパスをカメラパス記憶部6a、6bにそれぞれ保存しておき、マルチ画面表示のたびに三次元モデル及びカメラパスを読み出して仮想視点画像を生成し、マルチ画面表示する方法である。
第三の方法は、生成した各仮想視点画像を画像ファイル(連番静止画ファイルまたは動画ファイル)として画像記憶部15に保存しておき、マルチ画面表示のたびに画像取得部16が読み出して再生する方法である。
第四の方法は、レイアウト部17によってレイアウトされた画像を動画ファイルとして任意の記憶装置に保存しておき、任意の動画再生装置で再生する方法である。
なお、以上の説明ではサッカーを例にしたが、本実施形態は、他のスポーツ競技にも同様に適用できる。また、スポーツ競技に限らず、様々な画像コンテンツにも適用することができる。例えば、格闘技では、選手が技をかけたときに向いている方向はシーンによって様々だが、本実施形態によれば、複数のシーンにおいて、選手に対する視点位置、視線方向、及び画角を一致させることができる。また、本実施形態では仮想視点画像が動画である場合を中心に説明するが、仮想視点画像は静止画であってもよい。
また、以上の説明では、特定の選手(人物)を基準とした相対座標軸を使用したが、基準となる選手を適宜切り替えてもよい。また、選手に限らず、例えば、ボールや乗り物などの動く物体の位置及び動く方向を基準とした相対座標軸を使用してもよい。また、競技場の特定の位置を基準にした相対座標軸を使用してもよい。例えば、サッカーであれば、センターマーク、ペナルティマーク、コーナー、ゴールライン中央などを基準にした相対座標軸を使用してもよい。また、野球であれば、各ベースや、ピッチャーマウンドなどを基準にした相対座標軸を使用してもよい。また、これらの相対座標軸の基準を適宜切り替えてもよい。野球の投手の投球のように、選手の位置及び向きがシーンに依存せず固定されている場合は、相対座標軸を絶対座標軸と常に一致させることにより、複数シーンの視点位置、視線方向、及び画角を一致させることができる。この場合、相対座標軸を決定する処理と、絶対座標値と相対座標値とを変換する処理が不要になる。このように、本実施形態では、オブジェクトに関する相対的な視点位置及び視線方向を表すための相対座標軸を決定する。
また、上記説明では、マルチ画面表示において、2つのシーンの画像を比較する場合について述べたが、同様に3つ以上のシーンの画像を比較することもできる。すなわち、同時に表示する仮想視点画像の数は2つに限らず、3以上の異なる仮想視点画像を、オブジェクトに対する視点の相対位置などを調整したうえで共に表示させてもよい。
以上説明したように、本実施形態によれば、複数の画像に含まれるオブジェクトを比較するための仮想視点画像を生成する上での負担を軽減することができる。
また、本実施形態によれば、操作者が指定したオブジェクトに対して同じカメラアングル(すなわち、視点位置、視線方向、及び画角)から見た複数シーンの仮想視点画像のカメラパスを一度の操作で作成することができる。
さらに、本実施形態によれば、カメラパスを変えて様々な仮想視点画像を作成することによって、様々な視点からシーンを比較することができる。
(第2の実施形態)
本実施形態では、入力シーンに対して操作者が視点位置、視線方向、及び画角を一致させたいフレームを指定して、カメラパスを生成する。すなわち、本実施形態において、画像の視点位置、視線方向、及び画角は、特定のフレームにおいて一致する。
本実施形態におけるシーン51a及びシーン51bのカメラパス生成処理の流れについて、図8のフローチャートを用いて説明する。なお、第1の実施形態における図6のフローチャートと同様の処理は説明を省略し、図6のフローチャートとの差分を主に説明する。
S203において、操作者がカメラアングルを一致させたいフレームを指定すると、相対座標軸決定部11aは、選手52aのトラッキングデータに基づき、シーン51aにおける該指定されたフレームの選手52aを基準とした相対座標軸を決定する。また、相対座標軸決定部11bは、選手52bのトラッキングデータに基づき、シーン51bにおける該指定されたフレームの選手52bを基準とした相対座標軸を決定する。
また、本フローチャートでは、S212の実行後はS203ではなく、S204へ戻る。したがって、S203は一度しか実行されないので、各シーンの相対座標軸は一度決定されると変更されない。
図9は、本実施形態における各シーンの選手及び仮想視点の動きの例を表わす。図9(a)のシーン51aでは、選手52aがまっすぐ助走している。図9(b)のシーン51bでは、選手52bが体の向きを変えながらカーブして助走している。白抜き矢印71a~73a、黒色矢印81a~83a、白抜き矢印71b~73b、黒色矢印81b~83bの意味は、第1の実施形態の図7と同様である。
図9(a)及び図9(b)において、Oa、Xa、及びYaは、それぞれ絶対座標軸の原点、X軸、及びY軸を示す。また、Or、Xr、及びYrは、それぞれ相対座標軸の原点、X軸、及びY軸を示す。図9は、図7と同様に上空から見た図であるため、Z軸は示していない。本実施形態では、指定されたフレームで決定された相対座標軸の原点位置や軸方向は、その他のフレームにおいて変化しない。したがって、マルチ画面表示における各シーンの画像では、オブジェクトに対する視点位置及び視線方向が、指定されたフレーム以外では必ずしも一致しない。なお、図9(a)及び図9(b)では、白抜き矢印73a、73bのフレームが指定され、相対座標軸の原点位置や軸方向が決定されているものとする。
図9(a)の白抜き矢印71a、黒色矢印81a、及び図9(b)の白抜き矢印71b、黒色矢印81bは、マルチ画面表示における同じフレームにあり、助走開始の状態を表わす。このフレームにおいては、シーン51aでは比較対象選手を後方から見た画像が表示され、シーン51bでは比較対象選手を左斜め後方から見た画像が表示される。すなわち、このフレームにおける各シーンでは、比較対象選手を異なる視点位置及び視線方向から見た画像が表示される。
図9(a)の白抜き矢印72a、黒色矢印82a、及び図9(b)の白抜き矢印72b、黒色矢印82bは、マルチ画面表示における同じフレームにあり、助走中の状態を表わす。このフレームにおいては、シーン51aでは比較対象選手を左方から見た画像が表示され、シーン51bでは比較対象選手を左斜め前方から見た画像が表示される。すなわち、このフレームにおける各シーンでも、比較対象選手を異なる視点位置及び視線方向から見た画像が表示される。
図9(a)の白抜き矢印73a、黒色矢印83a、及び図9(b)の白抜き矢印73b、黒色矢印83bは、マルチ画面表示における同じフレームにあり、シュート中の状態を表わす。このフレームにおいては、どちらのシーンでも比較対象選手を前方から見た画像が表示される。すなわち、このフレームにおける各シーンでは、比較対象選手を同じ視点位置及び視線方向から見た画像が表示される。
ここで、第1の実施形態と第2の実施形態の効果の違いについて、説明する。
第1の実施形態では、比較対象選手同士で大きな動きの差異(例えば、助走の方向の違いなど)があっても、比較対象選手同士を常に同じカメラアングルから見た画像で比較できる。したがって、比較対象選手の細かな動きの差異(例えば、フォームの違いなど)を比較しやすい。
一方、第2の実施形態では、比較対象選手同士で大きな動きの差異(例えば、助走の方向の違いなど)があると、各画像のカメラアングルの差異として比較できる。したがって、比較対象選手の大まかな動きの差異を比較しやすい。
(第3の実施形態)
本実施形態では、既存の画像のカメラアングルに合わせて、他の仮想視点画像のカメラアングルを決定する。既存の画像は、仮想視点画像でなくてもよく、既存のカメラパスをそのまま使った仮想視点画像であってもよい。
本実施形態におけるカメラパス生成処理は、第1の実施形態の図6のフローチャートのS112が異なる。また、第2の実施形態の図8のフローチャートのS212が異なる。
本実施形態では、図6のS112または図8のS212において、シーン51aのカメラパスの絶対座標値を更新する際に、操作デバイスの操作に基づいてカメラパスを新たに生成するのではなく、既存のカメラパスを使用する。既存の画像が仮想視点画像である場合は、仮想視点画像を生成したときのカメラパスをそのまま使用する。既存の画像が仮想視点画像でない場合は、撮影時のカメラや雲台の位置及び方向の情報を表わすメタデータがあれば、カメラパスを作成できる。
このように、本実施形態では、既存の画像のカメラアングルに合わせて他の仮想視点画像のカメラアングルを決定することにより、操作デバイスによる仮想視点操作を行わずに各画像を同じカメラアングルで比較することができる。
(第4の実施形態)
本実施形態では、複数のシーンの画像を表示する方法として、1つのシーンの画像に、別のシーンのオブジェクト(例えば、選手)を合成して表示する方法について説明する。
図10は、本実施形態における合成表示の例を示す。図10に示すように、陸上競技の競走シーンにおいて、あるシーンの選手の隣のレーンを、別のシーンの選手が走っているかのように画像を合成するケースがある。こうすることにより、架空の競走を楽しむことができる。
また、別の例として、あるシーンの選手の画像の上に、別のシーンの選手の画像を半透明で重ね合わせて、画像を合成するケースがある。こうすることにより、フォームの違いを比較しやすくなる。
本実施形態では、第1の実施形態の図6のフローチャートのS106で仮想視点画像を生成する際に、仮想視点画像生成部14bが、前景(選手)と背景とを分離して、前景のみの画像を生成する。一方、仮想視点画像生成部14aは、前景(選手)と背景とを分離して、前景及び背景のそれぞれの画像を生成する。レイアウト部17は、上記背景の画像に上記それぞれの前景の画像を合成して、1つの画像となるようにレイアウトを決定する。
図10の競走シーンで別のシーンの選手が隣のレーンを走っているかのように合成するケースでは、レイアウト部17は、別のシーンの選手が隣のレーンの位置に表示されるように、別のシーンの前景の合成位置を決定する。
また、上記の別のシーンの選手を半透明で重ね合わせるように合成するケースでは、レイアウト部17は、選手同士が重なるように前景の表示位置を決定する。
表示部18は、レイアウト部17によって決定されたレイアウトにしたがって、1つの画像を画面に表示する。
なお、上記説明では、1つのシーンの背景画像に各シーンの前景画像を合成する例について述べたが、背景画像は別途CG(コンピュータグラフィックス)で作成してもよい。
以上説明したように、本実施形態によると、複数のシーンの画像に含まれるオブジェクトを1つの画像に合成して、表示することができる。
(第5の実施形態)
本実施形態では、一方のシーンの画像を鏡像にして左右を反転させることで、オブジェクト(例えば、選手)を比較しやすくする方法について説明する。
例えば、選手が右手(または右足、右回転など)でプレイしたシーンと、左手(または左足、左回転など)でプレイしたシーンとを比較したいケースがある。また、同一の選手が利き足でボールを蹴ったシーンと、利き足とは逆の足でボールを蹴ったシーンとを比較するケースがある。または、右利きの選手と左利きの選手がそれぞれの利き足でボールを蹴ったシーン同士を比較するケースもある。
また、第4の実施形態で述べたように、複数のシーンの選手の画像を半透明で重ね合わせる場合には、左右の動作を一致させると比較しやすくなる。
本実施形態では、上記のようなケースにおいて、一方のシーンの画像を鏡像にして左右を反転させることで、選手の動作を比較しやすくすることができる。
以下では、右足でボールを蹴ったシーンの画像を鏡像にして、左足でボールを蹴ったシーンの画像と比較する場合について説明する。この場合、例えば、左足でボールを蹴ったシーンの画像が、選手の体を左側から見た画像であるならば、右足でボールを蹴ったシーンの画像は、選手の体を右側から見た画像にする必要がある。
図11は、相対座標軸について説明する図である。図11(a)は、シーン51aの相対座標軸を表し、選手は左足でボールを蹴っている。図11(b)は、シーン51bの相対座標軸を表し、選手は右足でボールを蹴っている。
図11(a)及び図11(b)において、相対座標軸は、比較対象選手の位置(地面上)を原点(Or)とし、選手の体の方向に対して左右方向をX軸(Xr)、前後方向をY軸(Yr)、上下方向をZ軸(Zr)とする。
左足でボールを蹴った選手の動きと、右足でボールを蹴った選手の動きは、相対座標軸のY-Z平面に対して概ね対称である。したがって、視点位置及び視線方向を選手の体の向きを基準にして左右反転させるためには、相対座標軸に対するX座標値の符号を反転させればよい。
すなわち、図6のS105(または図8のS205)において、相対座標値変換部12bは、シーン51aのカメラパスの現在フレームにおける相対座標値を、X座標値の符号を反転させて、シーン51bのカメラパスの現在フレームにおける相対座標値とする。すなわち、相対座標軸のX軸の正負を反転させて、相対座標値とする。
なお、シーンに応じて、その他の相対座標軸の正負を反転させてもよく、シーンに応じて少なくとも1つの相対座標軸の正負を反転させればよい。
そして、図6のS106(または図8のS206)で仮想視点画像を生成する際に、仮想視点画像生成部14bが仮想視点画像を左右反転して鏡像画像を生成する。また、レイアウト部17が、生成された仮想視点画像を左右反転して、鏡像画像を表示してもよい。このようにして、図11(a)及び図11(b)のシーンから、図4のマルチ画面表示を行うことができる。
なお、マルチ画面表示だけでなく、第4の実施形態で述べたように、左右反転した選手の画像を半透明で重ね合わせることで、合成画面表示を行うことができる。
以上説明したように、選手が右手(または右足、右回転など)でプレイしたシーンと、左手(または左足、左回転など)でプレイしたシーンとをマルチ画面や合成画面で比較する際に、選手の左右を反転させて表示することで、選手の動作が比較しやすくなる。
上述した各実施形態では、オブジェクトに対する仮想視点の相対的な視点位置及び視線方向が、共に表示される複数の仮想視点画像において一致する場合を中心に説明した。ただしこれに限らず、共に表示される複数の仮想視点画像それぞれの仮想視点が、所定の関係になるように制御されればよい。例えば、共に表示される複数の仮想視点画像において、相対的な視点位置と視線方向の何れか一方が異なってもよい。また例えば、複数の仮想視点画像それぞれに含まれるオブジェクトのサイズが異なる場合に、それらのオブジェクトが同じ大きさに見えるように、相対的な視点位置が異なる位置に調整されてもよい。
図12は、上述した第1乃至第5の実施形態における空間情報処理システムを実装可能な情報処理装置のハードウェア構成例を示す。情報処理装置100は、CPU101、RAM102、ROM103、HDDインタフェース104、入力インタフェース106、出力インタフェース108、ネットワークインタフェース110を備える。
CPU101は、RAM102をワークメモリとして、少なくともROM103又はハードディスクドライブ(HDD)105のいずれか一方に格納されたプログラムを実行することで、上述した各機能を実現し、上述した様々な処理を実行する。
HDDインタフェース(I/F)104は、情報処理装置100と、HDD105や光ディスクドライブ等の二次記憶装置とを接続する、例えば、シリアルATA(SATA)等のインタフェースである。CPU101は、HDDI/F104を介して、HDD105からデータを読み出し、さらに、そのHDD105に格納されたデータをRAM102に展開する。また、CPU101は、HDDI/F104を介して、プログラムを実行することにより取得され、RAM102に格納された各種データをHDD105に保存する。
入力インタフェース(I/F)106は、情報処理装置100と、キーボードやマウス、デジタルカメラ、スキャナ等の入力デバイス107とを接続する。入力I/F106は、例えば、USBやIEEE1394等のシリアルバスインタフェースである。CPU101は、入力I/F106を介して、入力デバイス107から各種データを読み込むことができる。
出力インタフェース(I/F)108は、情報処理装置100と、例えば、ディスプレイ等の出力デバイス109とを接続する。出力I/F108は、例えば、DVI(Digital Visual Interface)やHDMI(登録商標)(High-Definition Multimedia Interface)等の画像出力インタフェースである。CPU101は、出力I/F108を介して、出力デバイス109に仮想視点画像に関するデータを送信することで、仮想視点画像を表示させることができる。
ネットワークインタフェース(I/F)110は、情報処理装置100と外部サーバ111とを接続する。ネットワークI/F110は、例えば、LANカード等のネットワークカードである。CPU101は、ネットワークI/F110を介して、外部サーバ111から各種データを読み込むことができる。
なお、図1では、HDD105、入力デバイス107、及び出力デバイス109が、情報処理装置100とは別のデバイスとして構成される例を示したが、必ずしもこれに限定されない。したがって、例えば、情報処理装置100がスマートフォン等であってもよく、この場合、入力デバイス107はタッチパネルとして、出力デバイス109は表示スクリーンとして、情報処理装置100と一体に構成される。また、HDD105内蔵のデバイスを情報処理装置100として用いることもできる。
加えて、図1に示される構成の全てが、必須の構成とは限らない。例えば、HDD105に記憶されている仮想視点画像を再生する場合、外部サーバ111はなくてもよい。また、逆に、外部サーバ111から取得した仮想視点画像を生成する場合、HDD105はなくてもよい。その他、情報処理装置100は、複数のCPU101を備えてもよい。また、CPU101とは異なる専用の1又は複数のハードウェアやGPU(Graphics Processing Unit)を備え、CPU101による処理の少なくとも一部を専用のハードウェアやGPUが実行するようにしてもよい。なお、専用のハードウェアとして、例えば、ASIC(特定用途向け集積回路)、FPGA(Field-Programmable Gate Array)、及びDSP(Digital Signal Processor)等がある。
以上、本実施形態における情報処理装置100のハードウェア構成を説明したが、情報処理装置100のハードウェア構成は、上述した構成に限定されるものではない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。