(57)【要約】【課題】  仮想視点の設定をより簡易に行えるようにすること。【解決手段】  視点制御部２０４は、仮想視点映像を表示する表示面に対するユーザ操作を検出し（Ｓ８０１）、そのユーザ操作に応じて、仮想視点映像の生成に係る仮想視点の位置及び向きのうち少なくとも何れか一方を制御する（Ｓ８０３、Ｓ８０８、Ｓ８１２、Ｓ８１４）。【選択図】  図２
2020053088.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮影装置により所定の撮影対象領域を異なる方向から撮影することで得られる画像データを用いて生成される仮想視点画像に係る仮想視点の位置及び仮想視点からの視線方向を制御する制御装置であって、
前記仮想視点画像を表示する表示面上の１以上の位置をタッチしたままタッチ位置を移動させる操作が行われた場合に、前記仮想視点からの視線方向を変化させることなく前記仮想視点の位置を前記視線方向に応じた方向に移動させるか、前記仮想視点からの視線方向上の回転基点を基準として所定の平面上で前記仮想視点の位置を回転移動させるか、又は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記表示面上におけるタッチ位置の変化に基づいて、前記仮想視点の位置及び前記仮想視点からの視線方向に関するパラメータを決定する決定手段と、
前記決定手段により決定されたパラメータに従って、前記仮想視点を制御する制御手段と、を有することを特徴とする制御装置。
【請求項２】
前記表示面上の第１のタッチ位置と第２のタッチ位置をタッチしたまま前記第１のタッチ位置と前記第２のタッチ位置とを互いに離していくピンチアウト操作が行われた場合、及び、前記第１のタッチ位置と前記第２のタッチ位置とを互いに近づけていくピンチイン操作が行われた場合、前記決定手段は、前記仮想視点からの視線方向を変化させることなく前記仮想視点の位置を前記視線方向に応じた方向に変化させるように、前記パラメータを決定することを特徴とする請求項１に記載の制御装置。
【請求項３】
複数の撮影装置により所定の撮影対象領域を異なる方向から撮影することで得られる画像データを用いて生成される仮想視点画像に係る仮想視点の位置及び仮想視点からの視線方向を制御する制御装置であって、
前記仮想視点画像を表示する表示面上の１以上の位置をタッチしたままタッチ位置を移動させる操作が行われた場合に、前記仮想視点からの視線方向を変化させることなく前記仮想視点に係るズームパラメータを変化させるか、前記仮想視点からの視線方向上の回転基点を基準として所定の平面上で前記仮想視点の位置を回転移動させるか、又は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記表示面上におけるタッチ位置の変化に基づいて、前記仮想視点の位置及び前記仮想視点からの視線方向に関するパラメータを決定する決定手段と、
前記決定手段により決定されたパラメータに従って、前記仮想視点を制御する制御手段と、を有することを特徴とする制御装置。
【請求項４】
前記表示面上の第１のタッチ位置と第２のタッチ位置をタッチしたまま前記第１のタッチ位置と前記第２のタッチ位置とを互いに離していくピンチアウト操作が行われた場合、及び、前記第１のタッチ位置と前記第２のタッチ位置とを互いに近づけていくピンチイン操作が行われた場合、前記決定手段は、前記仮想視点からの視線方向を変化させることなく前記仮想視点に係るズームパラメータを変化させるように、前記パラメータを決定することを特徴とする請求項３に記載の制御装置。
【請求項５】
前記表示面上の１の位置をタッチしたままタッチ位置を移動させるスライド操作が行われた場合、前記決定手段は、前記仮想視点からの視線方向上の回転基点を基準として前記所定の平面上で前記仮想視点の位置を回転移動させるように、前記パラメータを決定することを特徴とする請求項１乃至４の何れか１項に記載の制御装置。
【請求項６】
前記所定の平面は水平面であることを特徴とする請求項１乃至５の何れか１項に記載の制御装置。
【請求項７】
前記表示面上の２以上の所定数の位置をタッチしたまま前記所定数のタッチ位置を並行して移動させるスライド操作が行われた場合、前記決定手段は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記パラメータを決定することを特徴とする請求項１乃至６の何れか１項に記載の制御装置。
【請求項８】
前記所定数は２であることを特徴とする請求項７に記載の制御装置。
【請求項９】
前記決定手段は、前記仮想視点からの視線方向が所定の回転基点を向いたまま前記仮想視点の位置を移動させるように、前記パラメータを決定することを特徴とする請求項１乃至８の何れか１項に記載の制御装置。
【請求項１０】
前記表示面に対する特定のユーザ操作を検出する検出手段を有し、
前記制御手段は、前記検出手段により前記特定のユーザ操作が検出されたことに応じて、前記仮想視点の位置及び前記仮想視点からの視線方向が予め定められた位置及び方向になるように前記仮想視点を制御することを特徴とする請求項１乃至９の何れか１項に記載の制御装置。
【請求項１１】
前記表示面に対する前記特定のユーザ操作は、前記表示面上の所定位置に対するタッチ操作であることを特徴とする請求項１０に記載の制御装置。
【請求項１２】
前記表示面に表示されている仮想視点画像の再生が一時停止状態になっている間に前記表示面に対する所定のタッチ操作が検出された場合、前記制御手段は、前記表示面に表示されている仮想視点画像の再生状態を前記一時停止状態から再生状態に変更することを特徴とする請求項１乃至１１の何れか１項に記載の制御装置。
【請求項１３】
前記所定の撮影対象領域には１以上のオブジェクトが存在することを特徴とする請求項１乃至１２の何れか１項に記載の制御装置。
【請求項１４】
前記オブジェクトの少なくとも１つはスポーツ選手であることを特徴とする請求項１３
に記載の制御装置。
【請求項１５】
複数の撮影装置により所定の撮影対象領域を異なる方向から撮影することで得られる画像データを用いて生成される仮想視点画像に係る仮想視点の位置及び仮想視点からの視線方向を制御する制御装置が行う制御方法であって、
前記仮想視点画像を表示する表示面上の１以上の位置をタッチしたままタッチ位置を移動させる操作が行われた場合に、前記仮想視点からの視線方向を変化させることなく前記仮想視点の位置を前記視線方向に応じた方向に移動させるか、前記仮想視点からの視線方向上の回転基点を基準として所定の平面上で前記仮想視点の位置を回転移動させるか、又は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記表示面上におけるタッチ位置の変化に基づいて、前記仮想視点の位置及び前記仮想視点からの視線方向に関するパラメータを決定する決定工程と、
前記決定工程において決定されたパラメータに従って、前記仮想視点を制御する制御工程と、を有することを特徴とする制御方法。
【請求項１６】
前記表示面上の第１のタッチ位置と第２のタッチ位置をタッチしたまま前記第１のタッチ位置と前記第２のタッチ位置とを互いに離していくピンチアウト操作が行われた場合、及び、前記第１のタッチ位置と前記第２のタッチ位置とを互いに近づけていくピンチイン操作が行われた場合、前記決定工程は、前記仮想視点からの視線方向を変化させることなく前記仮想視点の位置を前記視線方向に応じた方向に変化させるように、前記パラメータを決定することを特徴とする請求項１５に記載の制御方法。
【請求項１７】
複数の撮影装置により所定の撮影対象領域を異なる方向から撮影することで得られる画像データを用いて生成される仮想視点画像に係る仮想視点の位置及び仮想視点からの視線方向を制御する制御装置が行う制御方法であって、
前記仮想視点画像を表示する表示面上の１以上の位置をタッチしたままタッチ位置を移動させる操作が行われた場合に、前記仮想視点からの視線方向を変化させることなく前記仮想視点に係るズームパラメータを変化させるか、前記仮想視点からの視線方向上の回転基点を基準として所定の平面上で前記仮想視点の位置を回転移動させるか、又は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記表示面上におけるタッチ位置の変化に基づいて、前記仮想視点の位置及び前記仮想視点からの視線方向に関するパラメータを決定する決定工程と、
前記決定工程において決定されたパラメータに従って、前記仮想視点を制御する制御工程と、を有することを特徴とする制御方法。
【請求項１８】
前記表示面上の第１のタッチ位置と第２のタッチ位置をタッチしたまま前記第１のタッチ位置と前記第２のタッチ位置とを互いに離していくピンチアウト操作が行われた場合、及び、前記第１のタッチ位置と前記第２のタッチ位置とを互いに近づけていくピンチイン操作が行われた場合、前記決定工程は、前記仮想視点からの視線方向を変化させることなく前記仮想視点に係るズームパラメータを変化させるように、前記パラメータを決定することを特徴とする請求項１７に記載の制御方法。
【請求項１９】
前記表示面上の１の位置をタッチしたままタッチ位置を移動させるスライド操作が行われた場合、前記決定工程は、前記仮想視点からの視線方向上の回転基点を基準として前記所定の平面上で前記仮想視点の位置を回転移動させるように、前記パラメータを決定することを特徴とする請求項１５乃至１８の何れか１項に記載の制御方法。
【請求項２０】
前記表示面上の所定位置に対するタッチ操作を検出する検出工程を有し、
前記制御工程は、前記検出工程において前記特定のユーザ操作が検出されたことに応じて、前記仮想視点の位置及び前記仮想視点からの視線方向が予め定められた位置及び方向になるように前記仮想視点を制御することを特徴とする請求項１５乃至１９の何れか１項に記載の制御方法。
【請求項２１】
コンピュータを請求項１乃至１４の何れか１項に記載の制御装置の各手段として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想視点の制御方法に関する。
【背景技術】
【０００２】
視点の異なる複数のカメラで撮影して得られる複数の撮影映像から任意の視点の映像を生成する仮想視点映像生成技術が知られている。仮想視点映像の生成方法（レンダリング方法）として、予め定められた仮想視点の移動経路に基づいて仮想視点映像を生成しておく方法や、視聴者等により指定された仮想視点の位置及び姿勢等に従って仮想視点映像を生成する方法が知られている。
【０００３】
仮想視点映像の生成技術によれば、インタラクティブ性の高い映像の視聴を行うことが可能である。一方で、タッチパネルを主要なインタフェイスとするタブレットやスマートフォンなどの機器では、望み通りに視点を操作することが困難である。特許文献１には、複数の視点座標データと、複数の回転起点データのうちから、それぞれ１つずつをユーザに選択させ、その後、視点の回転角度と移動量を入力して視点を設定することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１８７７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法は、仮想視点の設定のための操作手順が多い。本発明は、仮想視点の設定をより簡易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る制御装置は、以下の構成を有する。すなわち、複数の撮影装置により所定の撮影対象領域を異なる方向から撮影することで得られる画像データを用いて生成される仮想視点画像に係る仮想視点の位置及び仮想視点からの視線方向を制御する制御装置であって、前記仮想視点画像を表示する表示面上の１以上の位置をタッチしたままタッチ位置を移動させる操作が行われた場合に、前記仮想視点からの視線方向を変化させることなく前記仮想視点の位置を前記視線方向に応じた方向に移動させるか、前記仮想視点からの視線方向上の回転基点を基準として所定の平面上で前記仮想視点の位置を回転移動させるか、又は、前記仮想視点からの視線方向上の回転基点を基準として、前記所定の平面上での回転移動の方向と直交する方向に前記仮想視点の位置を回転移動させるように、前記表示面上におけるタッチ位置の変化に基づいて、前記仮想視点の位置及び前記仮想視点からの視線方向に関するパラメータを決定する決定手段と、前記決定手段により決定されたパラメータに従って、前記仮想視点を制御する制御手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、仮想視点の設定をより簡易に行うことができるようになる。
【図面の簡単な説明】
【０００８】
【図１】制御装置１００のハードウェア構成を示すブロック図。
【図２】制御装置１００の機能構成を示すブロック図。
【図３】実施形態１の１本指のスライド操作における仮想視点制御の例を示す図。
【図４】実施形態１の３本指のスライド操作における仮想視点制御の例を示す図。
【図５】実施形態１の２本指のスライド操作における仮想視点制御の例を示す図。
【図６】実施形態１の２本指のピンチアウト操作における仮想視点制御の例を示す図。
【図７】実施形態１の制御装置１００における処理の流れを示すフローチャート。
【図８】ユーザ操作に応じた仮想視点制御の流れを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１０】
＜実施形態１＞
実施形態１は、ユーザが表示スクリーン（タッチパネル）を操作することにより、仮想視点の位置及び向き等を制御し、それに応じた仮想視点映像を生成する例について説明する。なお、本実施形態では、「仮想カメラの位置を変更する」と「仮想視点の位置を変更する」は同様の意味として用いる。また、「仮想カメラの姿勢を変更する」と「仮想視点の向きを変更する」は同様の意味として用いる。
【００１１】
また、本実施形態において仮想視点映像とは、フィールド（撮影対象領域）を異なる方向から撮影する複数のカメラにより得られた複数の撮影映像に基づいて生成される映像であり、仮想視点（仮想カメラ）の位置及び姿勢等に従って生成される映像である。また、本実施形態の仮想視点映像は、各画像フレームが所定の動画圧縮の方式により圧縮された映像データであっても良いし、各画像フレームが所定の静止画圧縮の方式により圧縮された映像データであっても良いし、非圧縮の映像データであっても良い。
【００１２】
本実施形態における制御装置１００のシステム構成例について、図１を用いて説明する。同図において、ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３及び／又はハードディスクドライブ（ＨＤＤ）１０５に格納されたプログラムを実行し、システムバス１１２を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。ＨＤＤインタフェイス（Ｉ／Ｆ）１０４は、制御装置１００と、ＨＤＤ１０５や光ディスクドライブなどの二次記憶装置とを接続する、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスである。ＣＰＵ１０１は、ＨＤＤインタフェイス（Ｉ／Ｆ）１０４を介した、ＨＤＤ１０５からのデータ読み出し、およびＨＤＤ１０５へのデータ書き込みが可能である。さらにＣＰＵ１０１は、ＨＤＤ１０５に格納されたデータをＲＡＭ１０２に展開する。また、ＣＰＵ１０１は、プログラムの実行により得られたＲＡＭ１０２上の各種データをＨＤＤ１０５に保存することが可能である。入力インタフェイス（Ｉ／Ｆ）１０６は、１又は複数の座標を入力するためのタッチパネル、キーボード、マウス、デジタルカメラ、スキャナなどの入力デバイス１０７と制御装置１００とを接続する。入力インタフェイス（Ｉ／Ｆ）１０６は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェイスである。ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して入力デバイス１０７からデータを読み込むことが可能である。出力インタフェイス（Ｉ／Ｆ）１０８は、ディスプレイなどの出力デバイス１０９と制御装置１００とを接続する、例えばＤＶＩやＨＤＭＩ（登録商標）等の映像出力インタフェイスである。ＣＰＵ１０１は、出力Ｉ／Ｆ１０８を介して出力デバイス１０９に仮想視点映像に係るデータを送ることで、仮想視点映像の表示を実行させることができる。ネットワークインタフェイス（Ｉ／Ｆ）１１０は、制御装置１００と外部サーバ１１１とを接続する、例えばＬＡＮカードなどのネットワークカードである。ＣＰＵ１０１は、ネットワークＩ／Ｆ１１０を介して外部サーバ１１１からデータを読み込むことが可能である。
【００１３】
なお、本実施形態では、入力デバイス１０７が制御装置１００のタッチパネルである場合の例を中心に説明する。つまり、制御装置１００はスマートフォンやタブレット端末などであっても良く、この場合は、入力デバイス１０７（タッチパネル）や出力デバイス１０９（表示スクリーン）は、制御装置１００と一体である。また、図１にて示した構成のすべてが必須の構成とは限らない。例えば、ＨＤＤ１０５に記憶された仮想視点映像を再生する場合、外部サーバ１１１は不要である。逆に、外部サーバ１１１から取得した仮想視点映像を生成する場合、ＨＤＤ１０５は不要である。また、制御装置１００が複数のＣＰＵ１０１を有してもよい。また、ＣＰＵ１０１とは異なる専用の１又は複数のハードウェアやＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を有し、ＣＰＵ１０１による処理の少なくとも一部をＧＰＵや専用のハードウェアが行うようにしてもよい。専用のハードウェアの例としては、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、およびＤＳＰ（デジタルシグナルプロセッサ）などがある。
【００１４】
本実施形態では、タッチパネルに対するユーザ操作によってユーザの意図に沿った仮想カメラの制御を行う方法について述べる。本実施形態におけるユーザ操作には、タップ操作、指１本〜３本のスライド操作、ピンチイン・ピンチアウト操作が少なくとも含まれるものとする。
【００１５】
指１本のユーザ操作は初心者でも行いやすい反面、複雑な情報を入力することが難しく、指３本のユーザ操作は細かい操作が難しい。よって、指１本と指３本のユーザ操作（スライド操作）には単純な仮想カメラの制御処理を割り当てる。そして、指２本の操作に複雑な仮想カメラの制御処理を割り当てる。
【００１６】
図３から図６を用いて具体的なユーザ操作と仮想カメラの動作の関係について説明する。図３は、１本指のスライド操作によって、仮想カメラの位置及び姿勢が変化する様子を示している。ユーザ操作前の画像３０１に対して指１本で左方向にスライド操作を行うと、仮想カメラの位置及び姿勢が変更され、画像３０２が表示される。このとき、仮想カメラの位置及び姿勢は俯瞰画像３０３の中心に描画された３次元空間上の点３０４を中心として仮想視点３０５から右側に回り込んだ仮想視点３０６へ変化する。すなわち、ユーザ操作により同時に指定される表示スクリーン上（表示面上）の座標の数が第１の数（１つ）である場合、視点制御部２０４は、その座標の移動に応じて、仮想カメラを所定の注目座標を中心に旋回させる。別の言い方をすると、ユーザ操作により同時に指定される表示面上の座標の数が第１の数（１つ）である場合、視点制御部２０４は、その座標の移動に応じて、仮想カメラが所定の注目座標を注目したまま移動するように制御する。
【００１７】
図３に示すように、１本指のスライド操作が検出された場合は、仮想カメラの移動範囲を円３０７上に限定し、移動方向を水平方向に制限する。これにより、例えば、タッチ操作に不慣れなユーザや、タッチの軌道がぶれやすい利用シーンにおいても、ユーザの意図に近い仮想カメラの移動が行える。したがって、簡易にブレのないバレットタイムのような仮想視点映像を生成することができる。
【００１８】
図４は、３本指のスライド操作によって、仮想カメラの位置が変化する様子を示している。ユーザ操作前の画像４０１に対して指３本で右方向にスライド操作を行うと、仮想カメラの位置が変更され、画像４０２が表示される。このとき、仮想カメラの位置は俯瞰画像４０３において示される通り仮想視点４０４から仮想視点４０５へ移動する。すなわち、ユーザ操作により同時に指定される表示スクリーン上の座標の数が第３の数（３つ）である場合、視点制御部２０４は、その座標の変化に応じて、仮想カメラが３次元空間内において並行移動するように、仮想カメラの位置を制御する。
【００１９】
なお、「３つの座標が同時に指定される」とは、３本の指が同時に表示スクリーンにタッチした場合に限らない。例えば、２本の指が表示スクリーンにタッチしている状態を保持しつつ、３本目の指が表示スクリーンにタッチした場合、３本の指が同時に表示スクリーンにタッチしている状態として判定される。このように、指ごとに表示スクリーンにタッチ開始するタイミングが異なっていたとしても、複数の座標が同時に指定されることがありうる。
【００２０】
また、本実施形態の視点制御部２０４は、表示スクリーン上での指の移動量と、ユーザ操作に応じて特定される３次元点４０６の仮想視点映像における描画位置の移動量が等しくなるように仮想カメラを移動する。このように、指の移動量と３次元点４０６の移動量とを一致させることで、ユーザは、より直感的に仮想カメラの制御を行うことができる。ただし、指の移動量と、仮想視点映像における３次元点４０６の描画位置の移動量とが異なるように制御しても良い。また、３本指によるユーザ操作においては、指の移動量は、３本指のそれぞれの移動量の平均値を用いるようにしても良いし、中央値を用いるようにしても良いし、代表値を用いるようにしても良いし、その他の値を用いるようにしても良い。また、本実施形態においては、３本指のスライド操作が行われた場合は、仮想カメラの位置を変更するが、仮想カメラの姿勢は変更しない。つまり、ユーザ操作により同時に指定される表示スクリーン上の座標の数が第３の数（３つ）である場合、視点制御部２０４は、その座標の変化に応じて、仮想視点の位置を変更し、仮想視点の向きは変更しない。
【００２１】
図５は、２本指のスライド操作によって、仮想カメラの位置及び向きが変化する様子を示している。ユーザ操作前の画像５０１に対して指２本で左下方向にスライド操作を行うと、仮想カメラの位置及び姿勢が変更され、画像５０２が表示される。このとき、仮想カメラの位置及び姿勢は俯瞰画像５０３において示される通り、ユーザの指の位置に基づいて決定された３次元上の点５０４を中心として仮想視点５０５から仮想視点５０６へと変化する。仮想カメラの移動範囲は球面５０７に限定する。つまり、１本指のスライド操作を行った場合は、仮想カメラの高さ方向の位置を変更せず、水平方向の位置を変更したのに対し、２本指のスライド操作を行った場合は、仮想カメラの高さ方向と水平方向の両方の位置を変更する。すなわち、ユーザ操作により同時に指定される表示スクリーン上の座標の数が第２の数（２つ）である場合、視点制御部２０４は、その座標の移動に応じて、仮想カメラの位置を第１方向及び第２方向に変更する。このように、本実施形態の制御装置１００は、１本指でスライド操作が行われた場合よりも、２本指でスライド操作が行われた場合のほうが、より複雑な仮想カメラの制御を実行する。２本指のスライド操作を行うことにより、任意のオブジェクトを任意の方向から見た仮想視点映像を生成できる。
【００２２】
図６は、２本指のピンチアウト操作によって、仮想カメラの位置が変化する様子を示している。ユーザ操作前の画像６０１に対してピンチアウト操作を行うと、仮想カメラの位置が変更され、画像６０２が表示される。このとき、仮想カメラの位置は俯瞰画像６０３において示される通り、仮想視点６０４から仮想視点６０５へ移動する。なお、２本指のピンチイン操作が行われた場合は、仮想視点６０５から仮想視点６０４の方向へ移動する。すなわち、ユーザ操作により同時に指定される表示スクリーン上の座標の数が第２の数（２つ）である場合、視点制御部２０４は、その座標の変化に応じて、仮想カメラの視線方向に応じた方向に仮想カメラを移動させる。
【００２３】
ピンチイン操作及びピンチアウト操作により、仮想カメラの位置は点線６０６で示すように前後に移動する。指を広げた分だけ被写体（例えば選手等のオブジェクト）が大きく表示され、指を狭めた分だけ被写体が小さく表示でき、直感的な操作が可能となる。このように、２本指のユーザ操作に応じて仮想カメラの前後移動と回転が行われるようにすることで、自由度の高い仮想カメラの制御を実現できる。なお、ピンチイン操作とピンチアウト操作に応じて仮想カメラの位置を変更する代わりに、仮想カメラのズーム値に関するパラメータを変更するようにしても良い。
【００２４】
また、本実施形態では、第１の数が「１」、第２の数が「２」、第３の数が「３」である場合の例を中心に説明するが、これに限らない。例えば、第１の数が「３」、第２の数が「２」、第３の数が「１」であっても良いし、第１の数が「１」、第２の数が「２」、第３の数が「４」であっても良い。
【００２５】
本実施形態の制御装置１００が行う処理の流れについて、図２と図７とを参照して説明する。図２は、本実施形態における制御装置１００の機能構成を示すブロック図である。ＣＰＵ１０１は、ＲＯＭ１０３及び／又はＨＤＤ１０４に格納されたプログラムを読み出してＲＡＭ１０２をワークエリアとして実行することで、図２に示す制御装置１００内部の各機能ブロックの役割を果たす。なお、図２の操作部２０１及び表示部２０６は、図１の入力デバイス１０７及び出力デバイス１０９にそれぞれ対応する。また、ＣＰＵ１０１が制御装置１００内部の全ての機能ブロックの役割を果たす必要はなく、各機能ブロックに対応する専用の処理回路を設けるようにしてもよい。
【００２６】
図７は本実施形態の制御装置１００で行われる処理の流れを示すフローチャートである。図７を用いて説明する各処理は、制御装置１００が備えるＣＰＵ１０１が、ＲＯＭ１０３及び／又はＨＤＤ１０４に格納されたプログラムを読み出してＲＡＭ１０２をワークエリアとして実行することで実現される。
【００２７】
Ｓ７０１では、取得データ制御部２０２が、操作部２０１に対するタップ操作を検出するまで待機する。タップ操作は、短時間指で表示スクリーンをタッチする操作である。タップ操作の判定に利用される接触時間の閾値は任意の値を設定可能である。タップ操作が検出された場合、表示部２０６における現在の仮想視点映像の再生状態が一時停止状態であれば再生状態に変更する。一方、タップ操作が検出されたときに仮想視点映像の再生状態であれば、取得データ制御部２０２は、仮想視点映像の一時停止状態に変更する。このように、取得データ制御部２０２は、表示スクリーンに対するタップ操作に応じて、仮想視点映像の再生状態を変更するので、ユーザは直観的な操作で再生状態を切り替えることができる。ただし、Ｓ７０１は必須の処理ではない。
【００２８】
Ｓ７０２では、視点制御部２０４が、操作部２０１に対するユーザ操作の検出結果に基づいて、仮想カメラの位置及び姿勢に関するカメラパラメータを描画部２０５へ出力する。Ｓ７０２の詳細は図８を用いて後述する。
【００２９】
Ｓ７０３では、データ取得部２０３が、ＨＤＤ１０５又は外部サーバ１１１からレンダリングに必要なデータ（ポリゴンデータやテクスチャデータ）を取得し、描画部２０５に出力する。データ取得部２０３は、仮想視点映像を動画として再生している状態であれば、次の画像フレームのレンダリングに必要なデータを取得する。一方、仮想視点映像の再生が一時停止状態であれば、すでに現在再生中の画像フレームのレンダリングに必要なデータを取得する。なお、一時停止状態の場合は、改めてデータを取得しなくても良い。
【００３０】
Ｓ７０４では、描画部２０５が、データ取得部２０３から取得したデータと視点制御部２０４から取得したカメラパラメータとを基に仮想視点映像を生成し、当該生成された仮想視点映像を表示部２０６に出力する。表示部２０６は描画部２０５から取得した仮想視点映像を表示する。レンダリングに関しては既存の技術を使用できるためここでは詳しく説明を行わない。カメラパラメータとは、仮想カメラの外部パラメータと内部パラメータに分類できる。仮想カメラの外部パラメータとは、仮想カメラの位置及び姿勢を表すパラメータである。また、仮想カメラの内部パラメータとは、仮想カメラの光学的な特性を表すパラメータである。外部パラメータと内部パラメータについてより具体的に説明する。仮想カメラの位置を表すベクトルをｔ，回転を表す行列をＲとすると、仮想カメラの外部パラメータは以下のように表すことができる。
【００３１】
【数１】
2020053088.tif 000003
【００３２】
ここで、座標系は左手座標系として記載し、仮想視点において右を＋ｘ方向、上を＋ｙ方向、前を＋ｚ方向とする。
【００３３】
また、仮想視点映像の主点位置を（ｃｘ，ｃｙ）、仮想カメラの焦点距離をｆとすると、仮想カメラの内部パラメータＫは以下のように表すことができる。
【００３４】
【数２】
2020053088.tif 000004
【００３５】
なお、カメラパラメータの表現方法は行列以外の表現であってもかまわない。例えば、仮想カメラの位置を３次元座標で表し、仮想カメラの姿勢をｙａｗ、ｒｏｌｌ、及びｐｉｔｃｈの値の羅列によって表すようにしてもよい。また、外部パラメータと内部パラメータは上述のものに限るわけではない。例えば、仮想カメラのズーム値を表す情報が仮想カメラの内部パラメータとして取得されるようにしてもよい。このように、仮想視点映像の生成のために用いられる仮想カメラのパラメータには種々のバリエーションが存在する。以上が本実施形態の制御装置１００で行われる処理の流れである。
【００３６】
＜ユーザ操作に応じた仮想カメラの制御＞
図７のＳ７０２の処理の詳細を、図８を参照して説明する。Ｓ７０２においては、視点制御部２０４は、操作部２０１に対するユーザ操作の検出結果を取得し、仮想視点映像の描画に用いられる仮想カメラのカメラパラメータを描画部２０５に出力する。
【００３７】
Ｓ８０１では、視点制御部２０４は、操作部２０１に対するユーザ操作の検出結果を取得する。ユーザ操作の検出結果には、表示スクリーン上におけるタッチされた点の数ｎ、タッチされた点の２次元スクリーン座標ｘ--ｉ（ｉ＝１〜ｎ）、及びタッチされた点の代表点の２次元スクリーン座標ｘ’が含まれるものとする。また、ユーザ操作の検出結果には、前の画像フレームにおける代表点からの移動量を表す２次元ベクトルｄ＝（ｄｘ，ｄｙ）、及び、上記代表点に基づいて特定される３次元点の位置を表す３次元ベクトルＴが含まれるものとする。ただし、必ずしも上記すべての情報を検出結果として取得しなければならないわけではない。例えば、１本指の操作が行われた場合、２次元スクリーン座標ｘｉと代表点の２次元スクリーン座標ｘ’は同じであるため何れか一方は省略可能である。
【００３８】
２次元スクリーンの座標系は左上を原点とし、右を＋ｘ、下を＋ｙとする。代表点はタッチされた複数の点の２次元スクリーン座標ｘｉの重心に位置する座標とする。しかしながら、代表点は重心に限らず、２次元スクリーン座標ｘｉの平均に位置する座標であっても良いし、複数の２次元スクリーン座標ｘｉのうちの１点がランダムに選択されるようにしても良いし、最も長い時間タッチされた点が選択されるようにしても良い。
【００３９】
また、３次元点は、仮想カメラの位置に応じた３次元座標を始点として仮想カメラの撮影方向へ仮想的に光線を飛ばし（レイキャスト）、被写体と衝突した点とする。この３次元点は、仮想カメラの操作において回転基点や移動の基準点として利用される。また、この３次元点は、タッチの数が前の画像フレームから変化した場合のみ決定し、変化していない場合は前の画像フレームの処理において決定済みの３次元ベクトルＴをそのまま利用する。なお、本実施形態では３次元点は３次元ベクトルＴにより表される例を説明するが、必ずしもベクトルの形式で示さなくても良い。
【００４０】
Ｓ８０２では、視点制御部２０４は、操作部２０１に対するユーザ操作に応じて視点リセットを行うか否かを判定する。本実施形態では、表示スクリーン上の特定の領域（例えば視点リセットボタンが表示されている領域）がタップされた場合に、視点リセットを行うと判定される。
【００４１】
Ｓ８０３では、視点制御部２０４が、仮想カメラの位置及び姿勢等をリセットする。すなわち視点制御部２０４は、表示スクリーン上の所定位置に対してユーザ操作が検出されたことに応じて、仮想視点の位置及び向きを予め定められた位置及び向きに変更する。そして、視点制御部２０４は、リセット時の仮想カメラのカメラパラメータを描画部２０５に出力する。本実施形態においてリセット時の仮想カメラの位置は［０  ０  ０］であり、仮想カメラの姿勢は単位行列であるものとする。しかしながら、リセット時の視点情報は上述のものに限るわけではない。例えば、予めユーザが設定した値を利用してもよいし、画像データに埋め込まれた推奨の視点情報を読出して利用しても良い。
【００４２】
Ｓ８０４では、視点制御部２０４が、タッチされた点数ｎに基づいて、仮想カメラの制御方法を決定する。タッチされた指の本数に合わせて仮想カメラの制御方法を異ならせることで、より多彩な制御が実現できるようになる。タッチ点数が０点の場合、Ｓ８０５に進み、現在の仮想カメラの位置及び姿勢を描画部２０５へ出力する。
【００４３】
タッチ点数が１点の場合（つまり１本指の操作が検出された場合）、Ｓ８０６に進み、視点制御部２０４は、上述の３次元点を回転中心として仮想カメラを回転させる。３次元点は、仮想カメラの位置に応じた３次元座標（例えば仮想カメラの中心座標）を始点として仮想カメラの撮影方向へ仮想的に光線を飛ばし（レイキャスト）、被写体と衝突した点とする。別の言い方をすると、３次元点とは、タッチ時に表示される仮想視点映像の中心位置に対応する３次元空間上の座標である。ただし、３次元点はこの例に限るものではない。Ｓ８０６〜Ｓ８０８の詳細は後述する。
【００４４】
タッチ点数が２点の場合（つまり２本指の操作が検出された場合）、Ｓ８０９に進み、視点制御部２０４は、ユーザによるスライド操作に応じて、仮想カメラの高さ方向と水平方向の両方の位置を変更する制御を行う。また、Ｓ８１１においては、視点制御部２０４は、ピンチイン操作及び／又はピンチアウト操作に応じて仮想カメラの位置を前後方向に移動させる制御を行う。Ｓ８０９〜Ｓ８１２の詳細は後述する。
【００４５】
タッチ点数が３点の場合（つまり３本指の操作が検出された場合）、Ｓ８１３に進み、視点制御部２０４は、仮想カメラをスライド操作に応じて並行移動させる制御を行う。Ｓ８１３及びＳ８１４の詳細は後述する。
【００４６】
Ｓ８０６では、視点制御部２０４が仮想カメラを回転する際の回転中心となる３次元点の座標を決定する。視点制御部２０４は、１本指のタッチの検出に応じて、例えば、仮想カメラの中心を視点として仮想的に３次元空間へ光線を飛ばし、被写体と衝突した点を３次元点とする。３次元点は３次元ベクトルＡとして表され、回転中心として利用される。なお、１度３次元点を決定した後は、タッチ状態が継続している間は再決定しなくて良い。
【００４７】
Ｓ８０７では、視点制御部２０４が代表点の移動量ｄを取得し、仮想カメラの移動量を決定する。なお１本指のユーザ操作の場合は、仮想カメラの移動方向は、３次元点を中心とする回転方向のみである。また、１本指のユーザ操作の場合、仮想カメラは垂直方向には移動せず、水平方向のみ移動する。このようにすることで、スライド操作における手ぶれの影響を受けにくく、仮想カメラの移動をスムーズに行うことができる。なお、本実施形態の視点制御部２０４は、代表点の移動量ｄｘにスケール係数ｓを乗算することで仮想カメラの移動量（水平方向の回転量θ）を決定する。表示スクリーンの解像度を幅ｗ画素とし、表示スクリーンの端から端までスライド操作した時の回転量を３６０度とすると移動量ｄｘから回転量θ［ｄｅｇｒｅｅ］を決定するためのスケールｓは以下の式で表せる。
【００４８】
【数３】
2020053088.tif 000005
【００４９】
このスケール係数を用いて仮想カメラの回転量は以下の式で表せる。
【００５０】
【数４】
2020053088.tif 000006
【００５１】
なお本実施形態では指１本のユーザ操作に基づく仮想カメラの移動方向は水平方向のみとする例を中心に説明するが、垂直方向のみの移動として良い。また、ユーザ操作の内容に応じて、水平方向のみの移動にするか、垂直方向のみの移動にするかが決定されるようにしても良い。具体的には、タッチが検出されてから所定数の画像フレームのスライド操作の方向に応じて移動方向を決定してもよい。例えば、所定数の画像フレームにおけるスライド操作によるｘ方向とｙ方向の移動量を比較し、ｘ方向の移動量が大きければ水平方向のみの移動とし、ｙ方向の移動量が大きければ垂直方向のみの移動としても良い。また、スケール係数ｓの決定方法は上述のものに限らない。例えばユーザが任意の値を指定するようにしても良いし、複数の選択肢の中からユーザが任意に選択できるようにしても良い。
【００５２】
Ｓ８０８では、視点制御部２０４がユーザのスライド操作に応じた仮想カメラの位置及び姿勢の決定を行い、その結果を描画部２０５に出力する。仮想カメラの位置Ｒｎ−１及び姿勢ｔｎ−１を、座標Ａを中心に水平方向にθだけ回転した場合の仮想カメラの位置Ｒｎ及び姿勢ｔｎは以下の式で表すことができる。
【００５３】
【数５】
2020053088.tif 000007
【００５４】
ただし、Ｒ（θ、φ）は水平方向にθ、垂直方向にφだけ回転する回転行列である。また、回転させた現在の仮想カメラの位置及び姿勢を求める式はこれに限らない。
【００５５】
Ｓ８０９では、視点制御部２０４が代表点の移動量ｄを取得し、仮想カメラの移動量を決定する。なお２本指のユーザ操作の場合は、自由度の高い制御を実現するため、Ｓ８０７とは異なり、３次元点を中心として、水平方向と垂直方向の両方向に仮想カメラの回転させることができる。水平方向の回転量θとスケールｓはＳ８０７と同様にして求める。垂直方向の回転量φは、以下の式で表すことができる。
φ＝ｓ×ｄｙ
Ｓ８１０では、視点制御部２０４がユーザのスライド操作に応じた仮想カメラの位置及び姿勢の決定を行い、その結果を描画部２０５に出力する。仮想カメラの位置Ｒｎ−１及び姿勢ｔｎ−１を、３次元点Ｔを中心に水平方向にθだけ回転し、垂直方向にφだけ回転した場合の仮想カメラの位置Ｒｎ、姿勢ｔ’ｎは以下の式で表すことができる。
【００５６】
【数６】
2020053088.tif 000008
【００５７】
ただし、３次元点Ｔを中心に回転させた場合の仮想カメラの位置及び姿勢を求める式はこれに限らない。例えば、所定の係数等を用いることで、指の移動量に対する仮想カメラの移動量を大きくすることも可能であるし、逆に、指の移動量に対する仮想カメラの移動量を小さくすることも可能である。
【００５８】
Ｓ８１１では、視点制御部２０４がユーザのピンチイン操作、及びピンチアウト操作に応じた仮想カメラの前後方向の移動量の決定を行う。現在の画像フレームが表示されているときの２本指の距離をｄｎとし、直前の画像フレームが表示されているときの２本指の距離をｄｎ−１とすると、その変化量ΔｄはΔｄ＝ｄｎ−ｄｎ−１である。その変化量に比例して仮想カメラを前後に移動する。移動の敏感度をｍとすると、仮想カメラの移動量ΔｚはΔｚ＝ｍ×Δｄで表すことができる。つまり、ピンチイン操作、及びピンチアウト操作による単位時間当たりの指の移動量に応じて、仮想カメラの移動量が決定される。なお、移動量を決定する方法は上述の方法に限らない。例えば、仮想カメラから３次元点Ｔまでの距離に基づいて表示スクリーン上での指の移動量に合うように３次元空間上での移動量が決定されるようにしても良い。
【００５９】
Ｓ８１２では、視点制御部２０４がユーザのピンチイン操作、及びピンチアウト操作に応じた仮想カメラの位置の決定を行い、その結果を描画部２０５に出力する。前後方向にΔｚだけ移動した仮想カメラの位置は以下の式で表される。
【００６０】
【数７】
2020053088.tif 000009
【００６１】
Ｓ８１３では、視点制御部２０４がユーザのスライド操作に応じた仮想カメラの上下左右方向の移動量の決定を行う。本実施形態では、表示スクリーン上における指の移動量と等しい距離だけ３次元点が表示スクリーン上で移動するように移動量が決定される。つまり、あるオブジェクト（例えばサッカー選手）の表示位置に３本指でタッチして、その３本指を表示スクリーン上でスライド移動させると、そのオブジェクトの表示位置と３本指の位置関係が変化しないように、仮想カメラの位置が変化する。移動量Δｘ，Δｙは、仮想カメラからタッチした３次元点までの距離をｒとすると以下の式で表すことができる。
【００６２】
【数８】
2020053088.tif 000010
【００６３】
Ｓ８１４では、視点制御部２０４がユーザのスライド操作に応じた仮想カメラの位置及び姿勢の決定を行い、その結果を描画部２０５に出力する。左右方向にΔｘ、上下方向にΔｙだけ移動した場合の仮想カメラの位置及び姿勢は以下の式で表される。
【００６４】
【数９】
2020053088.tif 000011
【００６５】
なお、指の本数と処理の内容の対応関係は、上述に示した例に限らない。例えば、指１本のスライド操作と指３本のスライド操作による仮想カメラの位置及び姿勢の制御は入れ替えることも可能である。つまり、指１本のスライド操作に基づいて仮想カメラを上下左右に平行移動させ、指３本のスライド操作に基づいて３次元点を中心とする仮想カメラの回転移動を実行するようにしても良い。また、指の本数と制御方法の関係を、ユーザが任意に設定できるようにしても良い。このようにすれば、ユーザのスキルや、仮想視点映像の表示環境等によりマッチした操作機能を提供できるようになる。また、本実施形態では、タッチ点数が０点の場合の処理（Ｓ８０５）、１点の場合の処理（Ｓ８０６〜Ｓ８０８）、２点の場合の処理（Ｓ８０９〜Ｓ８１２）、３点の場合の処理（Ｓ８１３、Ｓ８１４）をすべて行う倍の例を中心に説明した。しかしこの例に限らない。例えば、タッチ点数が２点の場合の処理（Ｓ８０９〜Ｓ８１２）と、３点の場合の処理（Ｓ８１３、Ｓ８１４）のみを実行するようにしても良いし、タッチ点数が１点の場合の処理（Ｓ８０６〜Ｓ８０８）のみを実行するようにしても良い。また、事前のユーザ設定に応じて、どの処理を有効にするかが切り替わるようにしても良い。
【００６６】
以上説明した通り、本実施形態の制御装置１００は、仮想視点映像を表示するための表示面（表示スクリーン）に対するユーザ操作に応じて、仮想視点の位置及び向きのうち少なくとも何れか一方を制御する。このような構成によれば、ユーザは、従来よりも簡易に仮想視点に関する制御を行うことができるようになる。また、本実施形態の制御装置１００は、表示面から検出された指の本数（ユーザ操作により同時に指定される座標の数）に応じて、ユーザ操作に応じた仮想視点の制御方法を切り替える。このような構成を採用することにより、ユーザは、その意図に応じた仮想視点の制御を、より直観的な操作で行うことができるようになる。言い換えれば、本実施形態の制御装置１００によれば、よりユーザの意図に沿った仮想視点映像を生成することができるようになるという効果がある。
【００６７】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００  制御装置
２０１  操作部
２０２  取得データ制御部
２０３  データ取得部
２０４  視点制御部
２０５  描画部
２０６  表示部
【図１】
2020053088.tif 000012
【図２】
2020053088.tif 000013
【図３】
2020053088.tif 000014
【図４】
2020053088.tif 000015
【図５】
2020053088.tif 000016
【図６】
2020053088.tif 000017
【図７】
2020053088.tif 000018
【図８】
2020053088.tif 000019