(57)【要約】 【課題】仮想視点のパラメータ操作を制約下で行うか非制約下で行うかをユーザが選択できるようにする。【解決手段】複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成するためのパラメータを提供する情報処理装置は、ユーザ操作を受け付ける入力部と、入力部が受け付けた第１のユーザ操作に基づいて仮想視点のパラメータを制御する制御部と、入力部が受け付けた第２のユーザ操作に基づいて仮想視点のパラメータに対する制約が有効か無効かを決定する決定部とを備える。制御部は、決定部により有効と決定された制約と、入力部が受け付けた第１のユーザ操作とに基づいて仮想視点のパラメータを更新する。【選択図】  図５
2019152903.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成するためのパラメータを提供する情報処理装置であって、
ユーザ操作を受け付ける入力手段と、
前記入力手段が受け付けた第１のユーザ操作に基づいて仮想視点のパラメータを制御する制御手段と、
前記入力手段が受け付けた第２のユーザ操作に基づいて前記仮想視点のパラメータに対する制約が有効か無効かを決定する決定手段と、を備え、
前記制御手段は、前記決定手段により有効と決定された制約と、前記入力手段が受け付けた前記第１のユーザ操作とに基づいて仮想視点のパラメータを更新することを特徴とする情報処理装置。
【請求項２】
前記決定手段は、前記第２のユーザ操作に基づいて、複数の前記制約のうち一つの制約を有効化または無効化することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、前記第２のユーザ操作に応じて制約を有効化した時点における前記仮想視点の位置と方向の少なくともいずれかに基づいて、前記有効化した制約の内容を決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制約は、前記仮想視点の位置を球面の面上に制限することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記決定手段は、前記球面を、前記仮想視点の位置または仮想視点の位置と方向に基づいて決定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制約は、前記仮想視点の位置を平面の面上に制限することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項７】
前記決定手段は、前記平面を、前記仮想視点の位置または仮想視点の位置と方向に基づいて決定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制約は、前記仮想視点の方向が特定の点を通るよう制限することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記決定手段は、前記特定の点の位置を、前記仮想視点の位置と方向に基づいて決定することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記決定手段は、前記特定の点の位置を、前記入力手段からのユーザ操作の入力に基づいて決定することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
前記制御手段は、前記仮想視点の方向の制限に用いられる前記特定の点の位置が変化した場合、その変化量に基づいて前記仮想視点のパラメータを更新する、ことを特徴とする請求項８乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記仮想視点画像に映る被写体と前記仮想視点との距離を取得する第１の取得手段をさらに備え、
前記決定手段は、前記制約を、前記第１の取得手段が取得した前記距離に基づいて決定することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
物体の位置を取得する第２の取得手段をさらに備え、
前記決定手段は、前記制約を、前記第２の取得手段により取得された前記物体の位置に基づいて決定する、ことを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記決定手段は、前記仮想視点の方向の制限に用いられる特定の点の位置を、前記第２の取得手段が取得する前記物体の位置に基づいて決定する、ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記第２の取得手段は、複数の物体の位置を取得し、
前記決定手段は、前記入力手段からのユーザ操作の入力に基づいて前記複数の物体から一つの物体を選択し、選択した前記物体の前記第２の取得手段が取得した位置に基づいて前記仮想視点のパラメータに対する前記制約を決定することを特徴とする請求項１３または１４に記載の情報処理装置。
【請求項１６】
前記制御手段により制御された前記仮想視点のパラメータを用いて、前記複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成する生成手段をさらに備えることを特徴とする請求項１乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成するためのパラメータを提供する情報処理装置の制御方法であって、
入力手段で受け付けた第１のユーザ操作に基づいて仮想視点のパラメータを制御する制御工程と、
前記入力手段で受け付けた第２のユーザ操作に基づいて前記仮想視点のパラメータに対する制約が有効か無効かを決定する決定工程と、を備え、
前記制御工程では、前記決定工程で有効と決定された制約と、前記入力手段が受け付けた前記第１のユーザ操作とに基づいて仮想視点のパラメータを更新することを特徴とする情報処理装置の制御方法。
【請求項１８】
コンピュータを、請求項１乃至１６のいずれか１項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想視点を指定する操作を行なうための情報処理装置およびその制御方法に関する。
【背景技術】
【０００２】
近年、複数のカメラを異なる位置に設置して多視点で同期撮影し、当該撮影により得られた複数視点画像を用いて、カメラ設置位置の画像だけでなく任意の視点からなる仮想視点画像を生成する技術が注目されている。複数視点画像に基づく仮想視点画像の生成及び閲覧は、複数のカメラが撮影した画像をサーバなどの画像処理部に集約し、前記画像処理部にて、仮想視点に基づくレンダリングなどの処理を施し、ユーザ端末に仮想視点画像を表示することで実現できる。仮想視点画像を用いたサービスでは、例えば、サッカーやバスケットボールの試合を撮影した映像から、映像制作者によって迫力のある視点のコンテンツを制作できる。また、コンテンツを視聴しているユーザ自身が自由に視点を移動しながら、試合観戦したりすることができるようにもなり、ユーザに高臨場感を与えることができる。
【０００３】
特許文献１では、コンテンツを視聴するユーザが仮想視点を移動する場合において、ユーザが視点を移動して欲しくない位置に仮想視点を移動させること、及び、向けて欲しくない方向に仮想視点を向けることができないように設定可能とする技術が示されている。仮想視点の位置や方向に対する制限は、予めコンテンツ提供者によって定められており、その内容はコンテンツに含めて提供される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９５０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、仮想視点の位置と視点に制限をかけることを可能とする。しかし、仮想視点の位置と視点に制限をかけるか否かは予めコンテンツの提供者により設定されてしまう。すなわち、映像制作者が仮想視点の位置や視点を自由に変化させるか、それとも位置や視点に制限をかけるかを制御することはできない。
【０００６】
本発明は、仮想視点のパラメータ操作を制約下で行うか非制約下で行うかをユーザが選択できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様による画像処理システムは、以下の構成を備える。すなわち、
複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成するためのパラメータを提供する情報処理装置であって、
ユーザ操作を受け付ける入力手段と、
前記入力手段が受け付けた第１のユーザ操作に基づいて仮想視点のパラメータを制御する制御手段と、
前記入力手段が受け付けた第２のユーザ操作に基づいて前記仮想視点のパラメータに対する制約が有効か無効かを決定する決定手段と、を備え、
前記制御手段は、前記決定手段により有効と決定された制約と、前記入力手段が受け付けた前記第１のユーザ操作とに基づいて仮想視点のパラメータを更新する。
【発明の効果】
【０００８】
本発明によれば、仮想視点のパラメータ操作を制約下で行うか非制約下で行うかをユーザが選択できる。
【図面の簡単な説明】
【０００９】
【図１】（ａ）第１実施形態による画像処理システムの構成例を示すブロック図、（ｂ）情報処理装置のハードウェア構成例を示すブロック図。
【図２】情報処理装置における入出力部を説明する図。
【図３】第１実施形態による仮想カメラのカメラパラメータを説明する図。
【図４】第１実施形態による情報処理装置の機能構成例を示したブロック図。
【図５】仮想カメラ制御部と制約決定部による処理を示すフローチャート。
【図６】（ａ）球面上オートパンと球面上オートチルトを説明する図、（ｂ）平面上オートパンと平面上オートチルトを説明する図、（ｃ）オートドリーズームを説明する図。
【図７】仮想カメラの制約を変更する処理を示すフローチャート。
【図８】（ａ）、（ｂ）仮想カメラの制約の有効化と無効化を指示する方法の例を示す図。
【図９】（ａ）制約決定部が制約の形状と対象点を算出する処理を示す図、（ｂ）（ｃ）対象点が仮想カメラの後方に存在する場合の例を示す図。
【図１０】仮想カメラの制約の無効化条件を算出する処理を示すフローチャート。
【図１１】仮想カメラのパラメータを変更する処理を示すフローチャート。
【図１２】ユーザの入力に応じて対象点を移動させる処理を示すフローチャート。
【図１３】（ａ）対象点の位置の更新と仮想視点の移動を説明する図、（ｂ）ユーザが仮想カメラの制約の対象点の位置を指定する手段の一例を示す図。
【図１４】第２実施形態による情報処理装置の機能構成例を示すブロック図。
【図１５】第２実施形態による制約と対象点を算出する処理を説明する図。
【図１６】（ａ）第３実施形態における画像処理システムの全体構成を説明する図、（ｂ）第３実施形態による情報処理装置の機能構成例を示すブロック図。
【図１７】（ａ）第３実施形態による対象点の位置の更新処理を説明するフローチャート、（ｂ）ユーザが複数の物体の中から一つの物体を指定する方法の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の実施形態について説明する。
【００１１】
映像制作者は、試合のシーン、具体的には選手やボールの動きなどに応じて、そのシーンを迫力ある映像として見せるのに最適な仮想視点の位置や向きを指定する必要がある。このとき、シーンに応じて、仮想視点の位置や方向を自由に変化させたい場合と、制約に沿って位置と方向を変化させたい場合がある。制約に沿って仮想視点の位置と方向を変化させる場合には、例えば仮想視点の位置を競技場のラインに沿うように移動させる、あるいは、仮想視点が常に特定の選手を向くよう視点の方向を変化させる、といったことが考えられる。以下に説明する情報処理装置では、仮想カメラの視点の位置と方向が常に制約を満たすよう、仮想視点の位置や方向の変化を制限する制約下での操作と、仮想視点の位置や方向を自由に変化させることができる非制約下での操作が可能である。
【００１２】
＜第１実施形態＞
図１（ａ）は、第１実施形態による画像処理システム１０の構成例を示すブロック図である。画像処理システム１０は、撮影システム１０１、画像生成サーバ１０２、情報処理装置１０３を有する。画像処理システム１０は、仮想視点画像を生成することが可能である。撮影システム１０１は、異なる位置に配置された複数のカメラを用いて同期撮影を行い、多視点からの複数画像を取得する。多視点からの同期撮影により得られた複数の画像は、画像生成サーバ１０２に送信される。画像生成サーバ１０２は、撮影システム１０１から送信された複数の画像を元に、仮想カメラから見た仮想視点画像を生成する。仮想カメラとは、撮影空間内を自由に動ける仮想的なカメラである。画像生成サーバ１０２は、撮影システム１０１が有するどのカメラとも異なる視点から見た画像、つまり仮想視点画像を生成することができる。仮想カメラの視点は、情報処理装置１０３が決定する仮想カメラのカメラパラメータによって表現される。
【００１３】
画像生成サーバ１０２は、受信した複数画像から順次仮想視点画像を生成すること、つまり、ライブ仮想視点画像を生成することが可能である。なお、画像処理システム１０が生成できるライブ仮想視点画像は、現在時刻に対して撮影システム１０１および画像生成サーバ１０２での処理遅延を考慮した時刻において撮影システム１０１が撮影した撮影画像に基づく仮想視点画像である。さらに、画像生成サーバ１０２は、データベースを有し、撮影システム１０１から受信した複数の画像を記録する機能を有する。したがって、画像生成サーバ１０２は、記録した複数の画像から、過去の仮想視点画像、つまりリプレイ仮想視点画像を生成することが可能である。リプレイ仮想視点画像は、任意の時刻において撮影システム１０１が撮影した撮影画像に基づく仮想視点画像である。なお、特に断りがない限り、以降の説明に於いて画像という文言が動画と静止画の両方の概念を含むものとして説明する。すなわち、画像処理システム１０は、静止画及び動画の何れについても処理可能である。
【００１４】
情報処理装置１０３は、複数のカメラが撮影した複数の撮影画像から仮想視点画像を生成するためのパラメータを提供する。すなわち、情報処理装置１０３は、仮想カメラを制御し、仮想カメラの視点を表すカメラパラメータを決定する。仮想カメラのカメラパラメータは、位置、姿勢、ズームを指定するための少なくともいずれか一つのパラメータを含む。仮想カメラのカメラパラメータは、時刻を指定するためのパラメータを含んでもよい。カメラパラメータにより指定される仮想カメラの位置は、３次元座標を示すものであってもよい。また、仮想カメラのカメラパラメータにより指定される位置は、Ｘ軸、Ｙ軸、Ｚ軸の３軸の直交座標系（世界座標系）の座標により示されてもよい。この場合、仮想カメラのカメラパラメータにより指定される位置は、座標を示すものであり、Ｘ軸、Ｙ軸、Ｚ軸の３軸のパラメータから構成されてもよい。なお、原点は撮影空間内の任意の位置としてもよい。
【００１５】
カメラパラメータにより指定される仮想カメラの姿勢は、パン、チルト、ロールの３軸とのなす角度により示されてもよい。この場合、カメラパラメータにより指定される仮想カメラの姿勢はパン、チルト、ロールの３軸のパラメータから構成されてもよい。カメラパラメータにより指定される仮想カメラのズームは、例えば、焦点距離の１軸により示され、ズームと時刻はそれぞれ１軸のパラメータである。よって、仮想カメラのカメラパラメータは少なくとも８軸のパラメータを有する。情報処理装置１０３はこれらの８軸を制御可能である。なお、カメラパラメータは他の要素を規定するパラメータを含んでもよいし、上述した８軸のパラメータの全てを含まなくてもよい。
【００１６】
情報処理装置１０３は、決定した仮想カメラのカメラパラメータを画像生成サーバ１０２へ送信する。次に、画像生成サーバ１０２は、受信したカメラパラメータを元に仮想視点画像を生成し、情報処理装置１０３へ送信する。次に、情報処理装置１０３は、受信した仮想視点画像をカメラビューへ表示する。なお、本実施形態のように１台の画像生成サーバ１０２でライブ仮想視点画像とリプレイ仮想視点画像を生成してもよいし、２台の画像生成サーバ１０２を用意して、ライブ仮想視点画像とリプレイ仮想視点画像を異なる装置で生成するようにしてもよい。
【００１７】
図１（ｂ）は、情報処理装置１０３のハードウェア構成例を示すブロック図である。ＣＰＵ１１１は、ＲＡＭ１１２および／またはＲＯＭ１１３に格納されているコンピュータプログラムやデータを用いて情報処理装置１０３の全体を制御する。ＲＡＭ１１２は随時に読み書きが可能なメモリである。ＲＡＭ１１２は、ＲＯＭ１１３から読み出されたコンピュータプログラム、ＣＰＵ１１１による計算の途中結果、通信部１１４を介して外部から供給されるデータ、などを一時的に記憶する。ＲＯＭ１１３は、読み出し専用のメモリであり、例えば、変更を必要としないコンピュータプログラムやデータを保持する。通信部１１４は、ＥｔｈｅｒｎｅｔやＵＳＢなどの通信手段を有し、画像生成サーバ１０２との通信を行う。入出力部１１５は仮想カメラを制御するためのコントローラと、仮想カメラの状態などを表示する表示部を有する。
【００１８】
図２は、情報処理装置１０３における入出力部１１５を説明する図である。表示部２０１は、カメラビューウィンドウを表示する。カメラビューウィンドウとは、画像生成サーバ１０２から受信した仮想視点画像を表示するためのウィンドウである。また表示部２０１は、パイロットウィンドウを表示する。パイロットウィンドウは、仮想カメラを制御するためのウィンドウである。また表示部２０１は、リプレイウィンドウを表示する。リプレイウィンドウは、リプレイ仮想視点画像を生成及び編集するためのウィンドウである。
【００１９】
入出力部１１５は、３つのコントローラを有する。入出力部１１５は、これらのコントローラへのユーザからの操作に応じた、仮想カメラの制御を行うための指示を受け付ける。つまり、入出力部１１５は、仮想カメラの位置・姿勢などを変化させるためのユーザ操作を受け付ける。６軸コントローラ２０２は、仮想カメラの６軸の操作が可能なコントローラである。それぞれの軸には設定により任意の制御を割り当てることが可能である。例えば、６軸コントローラ２０２のジョイスティックは、仮想カメラの位置を指定するためのＸ軸、Ｙ軸、Ｚ軸の３軸の制御と、仮想カメラの姿勢を指定するためのパン、チルト、ロールの３軸の制御を行う。ズームコントローラ２０３は、仮想カメラのズームを制御するコントローラである。リプレイコントローラ２０４は、リプレイ仮想視点画像を生成するための機能を制御するコントローラである。また、リプレイコントローラ２０４は仮想カメラの時刻の制御も行う。
【００２０】
なお、図２に示す入出力部１１５は、一例に過ぎず、複数の表示部２０１を有する構成であってもよい。また、入出力部１１５は、２つ以下または４つ以上のコントローラを有する構成であってもよい。また、入出力部１１５はポインティングデバイスを備えてもよい。この場合、ユーザはポインティングデバイスを用いて、表示部２０１に表示されたウィンドウに含まれるＧＵＩ部品を選択することができる。また、表示部２０１はタッチパネルの機能を有してもよい。この場合、ユーザは表示部２０１をタッチすることで、表示部２０１に表示されたウィンドウに含まれるＧＵＩ部品を選択することができる。
【００２１】
図３は、本実施形態による仮想カメラのカメラパラメータを説明する図である。仮想カメラのカメラパラメータは、仮想カメラの位置を、左右方向であるＸ軸３０１、前後方向であるＹ軸３０２、上下方向であるＺ軸３０３の３軸の直交座標系（カメラ座標系）の原点の世界座標系における座標により示す。また、カメラパラメータは、仮想カメラの姿勢を、Ｚ軸３０３中心の回転であるパン３０６、Ｘ軸３０１中心の回転であるチルト３０４、Ｙ軸３０２中心の回転であるロール３０５の角度により示す。
【００２２】
図４は、第１実施形態において、ＣＰＵ１１１がコンピュータプログラムを実行することにより実現される機能構成例を示したブロック図である。仮想カメラ制御部４０１は、入出力部１１５から仮想カメラの制御を行うためのユーザ操作による入力を受け取ると、仮想カメラのパラメータを更新する。仮想カメラ制御部４０１は更新した仮想カメラのパラメータを、通信部１１４を介して画像生成サーバ１０２へ送信する。制約決定部４０２は、入出力部１１５から仮想カメラのためのユーザ操作による入力を受け取ると、仮想カメラの制約の有効と無効の切り替え、制約内容の決定を行う。仮想カメラ制御部４０１は、仮想カメラの制約が有効な場合、この制約を満たすように仮想カメラのパラメータを更新する。
【００２３】
図５は、図３に示した仮想カメラ制御部４０１と制約決定部４０２による処理の流れを示すフローチャートである。本処理は定期的に実行される。
【００２４】
まず仮想カメラ制御部４０１と制約決定部４０２は、入出力部１１５からユーザによる入力情報を受け取る（Ｓ５０１）。制約決定部４０２は、Ｓ５０１で受け取った入力情報が、仮想カメラの制約変更を指示するか判定する（Ｓ５０２）。仮想カメラの制約変更を指示すると判定された場合（Ｓ５０２：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約を変更し（Ｓ５０３）、処理をＳ５０４へ進める。なお、仮想カメラの制約を変更する処理については、図７により後述する。他方、仮想カメラの制約変更の指示ではないと判定された場合（Ｓ５０２：ＮＯ）、処理はＳ５０４へ進む。
【００２５】
仮想カメラ制御部４０１は、Ｓ５０１で受け取った入力情報が、仮想カメラのパラメータ変更を指示するか判定する（Ｓ５０４）。仮想カメラのパラメータ変更を指示すると判定された場合（Ｓ５０４：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約が有効であるか判定する（Ｓ５０５）。仮想カメラの制約が有効であると判定された場合（Ｓ５０５：ＹＥＳ）、仮想カメラ制御部４０１は、Ｓ５０１で受け取った 入力情報と、有効である仮想カメラの制約とに基づいて、仮想カメラのパラメータを変更する（Ｓ５０７）。仮想カメラの制約を用いて仮想カメラのパラメータを変更する処理については、図１１により後述する。仮想カメラの制約が無効であると判定された場合（Ｓ５０５：ＮＯ）、仮想カメラ制御部４０１は、入力情報に基づいて仮想カメラのパラメータを変更する（Ｓ５０６）。Ｓ５０４で仮想パラメータの変更の指示ではないと判定された場合、Ｓ５０６の処理を終えた後、または、Ｓ５０７の処理を終えた後、処理はＳ５０８へ進む。
【００２６】
制約決定部４０２は、仮想カメラの制約の無効化条件を算出し（Ｓ５０８）、無効化条件が満たされているか判定する（Ｓ５０９）。無効化条件が満たされていると判定された場合（Ｓ５０９：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約を無効化する（Ｓ５１０）。Ｓ５０９で無効化条件が満たされていないと判定された場合、あるいは、Ｓ５１０で仮想カメラの制約を無効化した後、本処理を終える。無効化条件の算出の処理（Ｓ５０８）については、図１０のフローチャートにより後述する。
【００２７】
次に、仮想カメラに対する制約について説明する。図６は、第１実施形態における仮想カメラの制約を説明する図である。制約決定部４０２は５つの仮想カメラの制約を備えている。すなわち、「球面上オートパン」「球面上オートチルト」「平面上オートパン」「平面上オートチルト」「オートドリーズーム」の５つである。
【００２８】
まず、図６（ａ）により球面上オートパンと球面上オートチルトについて説明する。これらの制約は３次元空間内の仮想球面６０１を使用する。これらの制約が有効になると、仮想カメラの位置６０３は仮想球面６０１の面上に制限される。また仮想カメラの方向（姿勢）は、常に仮想球面６０１の中心である対象点６０２を通る方向を向くよう制限される。球面上オートパンは、仮想カメラのＸ軸方向の移動に対して上記の制約を適用し、仮想カメラを仮想球面６０１の面上の経路６０４に沿って移動する。球面上オートチルトは、仮想カメラのＺ軸方向の移動に対して上記の制約を適用し、仮想カメラを仮想球面６０１の面上の経路６０５に沿って移動する。
【００２９】
次に、図６（ｂ）を用いて平面上オートパンと平面上オートチルトについて説明する。これらの制約は３次元空間上に存在する仮想平面６０６を使用する。これらの制約が有効になると、仮想カメラの位置６０８は仮想平面６０６の面上に制限される。また仮想カメラの方向（姿勢）は、常に対象点６０７を通る方向を向くよう制限される。なお、対象点６０７については図９により後述する。平面上オートパンは、仮想カメラのＸ軸の移動に対して上記の制約を適用する。経路６０９はＸ軸の移動を示す。平面上オートチルトは、仮想カメラのＺ軸の移動に対して上記の制約を適用する。経路６１０はＺ軸の移動を示す。
【００３０】
次に、図６（ｃ）を用いて、オートドリーズームについて説明する。ドリーズームとは、被写体との距離を変化させながら、同時にズームイン、ズームアウトを行い、映像内の被写体の大きさを同一に保つ撮影手法である。オートドリーズームは、仮想カメラの位置６１１とドリーズーム対象点６１２との距離が変化したとき、仮想カメラのズームを変化させ、対象点にある被写体の大きさを同一に保つ制約である。画角６１３は、距離が変化する前（位置６１１に仮想カメラが有る場合）のズーム値によって示される画角を示す。位置６１４は、距離が変化した後の仮想カメラの位置を示す。画角６１５は距離が変化した後のズーム値が示す画角である。画角６１５を示すズーム値は、オートドリーズームの制約に基づいて自動的に決定される。
【００３１】
図７は、仮想カメラの制約を変更する処理（図５のＳ５０３）の詳細を示すフローチャートである。
【００３２】
制約決定部４０２は、入出力部１１５からの入力情報が、上述した５つの制約（球面上オートパン、球面上オートチルト、平面上オートパン、平面上オートチルト、オートドリーズーム）のうちいずれを有効にする入力であるかを判定する（Ｓ７０１）。制約の有効／無効の切り替えを行うための入出力部１１５の構成については、図８により後述する。有効にする入力と判定された場合（Ｓ７０１：ＹＥＳ）、制約決定部４０２は、仮想カメラ制約の形状と対象点を算出する（Ｓ７０２）。制約決定部４０２は、形状と対象点の算出に成功したか判定する（Ｓ７０３）。算出に失敗したと判定された場合（Ｓ７０３：ＮＯ）、制約決定部４０２は、ＲＡＭ１１２に記録されている形状と対象点を消去する（Ｓ７０４）。その後、処理はＳ７０８へ進む。一方、算出に成功したと判定された場合（Ｓ７０３：ＹＥＳ）、制約決定部４０２は、算出された形状と対象点をＲＡＭ１１２に記録する（Ｓ７０５）。そして、制約決定部４０２は、入力情報によって指定された制約と同時に成り立たない制約を無効化する（Ｓ７０６）。例えば、球面上オートチルトを有効化する指示があったときに平面上オートパンあるいは平面上オートチルトが有効であった場合、平面上オートパンおよび平面上オートチルトは無効化される。制約決定部４０２は、入力情報によって指定された制約を有効化し（Ｓ７０７）、処理をＳ７０８へ進める。なお、対象点の算出については、図９により後述する。
【００３３】
次に、制約決定部４０２は、入出力部１１５からの入力情報が、上述した５つの制約のうちいずれかを無効にする入力であるか否かを判定する（Ｓ７０８）。無効にする入力であると判定された場合（Ｓ７０８：ＹＥＳ）、制約決定部４０２は、ＲＡＭ１１２に記録されている形状と対象点を消去し（Ｓ７０９）、指定された制約を無効にする（Ｓ７１０）。
【００３４】
Ｓ７０６の処理（競合する制約を無効化する処理）について詳細を説明する。本実施形態においては、球面上オートパンまたは球面上オートチルトの有効化が指示された場合、平面上オートパンと平面上オートチルトの両方が無効化される。また平面上オートパンまたは平面上オートチルトの有効化が指示された場合、球面上オートパンと球面上オートチルトの両方が無効化される。
【００３５】
図８（ａ）は、仮想カメラの制約の有効化と無効化を指示する方法の一例を示す図である。６軸コントローラ２０２は、仮想カメラのパラメータ変更と、仮想カメラの制約の有効化と無効化を指示する機能を有する。６軸コントローラ２０２は、６個のボタン（８１０、８１１、８２０、８２１、８３０）と、２個の３軸ジョイスティック（８１４ａ、８１４ｂ）を有する。６軸コントローラ２０２は６軸の制御が可能である。以下、本実施形態による６軸コントローラ２０２の各部と機能について説明する。
【００３６】
３軸ジョイスティック８１４ａにＸ、Ｙ、Ｚの３軸の制御が割り当てられ、もう一つの３軸ジョイスティック８１４ｂにパン、チルト、ロールの３軸の制御が割り当てられている。３軸ジョイスティック８１４ａにおいて、左右への倒しにはＸ軸方向への移動が、前後への倒しにはＺ軸方向への移動が割り当てられ、スティックの軸のひねりにはＹ軸方向への移動が割り当てられている。また、３軸ジョイスティック８１４ｂにおいて、左右への倒しにはパンが、前後への倒しにはチルト、スティックの軸のひねりにはロールが割り当てられている。ボタン８１０には球面上オートパンの有効と無効の切り替えが割り当てられている。ボタン８１１には球面上オートチルトの有効と無効の切り替えが割り当てられている。ボタン８２０には平面上オートパンの有効と無効の切り替えが割り当てられている。ボタン８２１には平面上オートチルトの有効と無効の切り替えが割り当てられている。ボタン８３０にはオートドリーズームの有効と無効の切り替えが割り当てられている。
【００３７】
図８（ｂ）は、仮想カメラの制約の有効化と無効化を指示する方法の別な一例を示す図である。ウィンドウ８５１は、表示部２０１に表示され、仮想カメラの制約の有効と無効を指定する機能を有する。入出力部１１５がポインティングデバイスやタッチパネルを備える場合、ユーザはそれらを用いてウィンドウ８５１に表示されたＧＵＩ部品８５２から８５６を選択することができる。ここで、ＧＵＩ部品８５２は球面上オートパンの有効と無効を切り替える機能を持つ。ＧＵＩ部品８５３は球面上オートチルトの有効と無効を切り替える機能を持つ。ＧＵＩ部品８５４は平面上オートパンの有効と無効を切り替える機能を持つ。ＧＵＩ部品８５５は平面上オートチルトの有効と無効を切り替える機能を持つ。ＧＵＩ部品８５６はオートドリーズームの有効と無効を切り替える機能を持つ。
【００３８】
図９（ａ）は、Ｓ７０２における、制約決定部４０２が制約の形状と対象点を算出する処理の詳細を示す図である。図９（ａ）では、仮想カメラの位置と姿勢、及び地表面を真横から見た状態を示す。図９（ａ）において、９０１は仮想カメラの位置を示している。９０２は仮想カメラが向く方向、つまり仮想カメラの光軸を示している。９０３は地表面を表している。地表面９０３から特定の高さにあり、地表面と平行な面９０４を定義し、仮想カメラの光軸９０２と面９０４が交わった位置を対象点９０５とする。なお、面９０４の地表面９０３からの高さは事前に決定されていても良いし、ユーザが設定できるようにしても良い。
【００３９】
Ｓ７０１で有効化された制約が球面上オートパンまたは球面上オートチルトの場合、仮想球面６０１は、対象点９０５と仮想カメラの位置９０１との距離を半径とし、対象点９０５を中心とする球により規定される。制約の形状はこの半径の値とする。また、Ｓ７０１で有効化された制約が平面上オートパンまたは平面上オートチルトの場合、仮想平面６０６は、仮想カメラの位置９０１を通る平面９０７とする。このとき、仮想カメラの位置９０１から面９０４への垂線の足を点９０８とすると、平面９０７は、点９０８から対象点９０５へのベクトルと垂直になる平面である。制約の形状はこの平面を表す式とする。対象点９０５が仮想カメラから見て前方（撮影方向側）に存在する場合は、対象点の算出に成功したと判定される。他方、対象点９０５が仮想カメラから見て後方に存在する、あるいは仮想カメラの光軸９０２と面９０４が並行で交わらない場合は、対象点の算出に失敗したと判定される。
【００４０】
図１０は、Ｓ５０８が示す、仮想カメラの制約の無効化条件を算出する処理の詳細を示すフローチャートである。制約決定部４０２は、仮想カメラの制約の形状と対象点を算出する（Ｓ１００１）。この処理はＳ７０２が示す処理と同様である。制約決定部４０２は、Ｓ１００１で算出された対象点が、仮想カメラの後方（撮影方向の逆方向の側）に存在するか判定する（Ｓ１００２）。対象点が仮想カメラの後方に存在すると判定された場合（Ｓ１００２：ＹＥＳ）、仮想カメラの制約の無効化条件をＴｒｕｅに設定する（Ｓ１００８）。対象点が仮想カメラの後方に存在する場合の一例を、図９の（ｂ）と（ｃ）に示す。図９（ｂ）では、仮想カメラの位置９０１が面９０４の高さより低く、かつ仮想カメラの姿勢が地表面９０３を向いているため、対象点９０５が仮想カメラの後方に位置している。図９（ｃ）では、仮想カメラの位置９０１が面９０４の高さより高く、かつ仮想カメラの姿勢が地表面９０３を向いていないため、対象点９０５が仮想カメラの後方に位置している。
【００４１】
制約決定部４０２は、Ｓ１００１で算出された対象点と仮想カメラとの距離が、閾値ｄ０以上であるか判定する（Ｓ１００３）。閾値ｄ０以上であると判定された場合（Ｓ１００３：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約の無効化条件をＴｒｕｅに設定する（Ｓ１００８）。ｄ０は、例えばスタジアムの横幅の長さを取る。例えば仮想カメラが常に特定の選手やボールを向くよう制御したい場合、対象点までの距離が一定以上大きな値、例えばスタジアムの横幅を超えることはない。よって対象点までの距離がスタジアムの横幅を超える場合は、制約決定部４０２は、仮想カメラの制約を無効化する。
【００４２】
制約決定部４０２は、現在の仮想カメラの焦点距離が閾値ｆ０以下であるか判定する（Ｓ１００４）。閾値ｆ０以下であると判定された場合（Ｓ１００４：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約の無効化条件をＴｒｕｅに設定する（Ｓ１００８）。例えば、オートドリーズームの制約が有効である場合、仮想カメラが対象点に近づくほど焦点距離が短くなり、その結果、画角が広角になる。画角が広角になると画像の周辺部が歪むため、視聴に耐えない映像となる可能性がある。よって焦点距離が一定以下の場合は、制約決定部４０２は、仮想カメラの制約を無効化する。
【００４３】
制約決定部４０２は、現在の仮想カメラの位置が特定範囲の外に存在するか判定する（Ｓ１００５）。特定範囲の外に存在する場合（Ｓ１００５：ＹＥＳ）、制約決定部４０２は、仮想カメラの制約の無効化条件をＴｒｕｅに設定する（Ｓ１００８）。特定範囲は、例えば地表面より高い位置にある空間を取る。したがって、ユーザ操作により仮想カメラの位置が地表に到達した場合には、仮想カメラの位置が特定範囲の外となるため、制約決定部４０２は、仮想カメラの制約を無効化する。また、制約決定部４０２は、入出力部１１５からの入力がない状態で一定時間が経過したか判定する（Ｓ１００６）。一定時間が経過したと判定された場合（Ｓ１００６：ＹＥＳ）、仮想カメラの制約の無効化条件をＴｒｕｅに設定する（Ｓ１００８）。
【００４４】
制約決定部４０２は、Ｓ１００８で仮想カメラの制約の無効化条件をＴｒｕｅに設定した後、仮想カメラの制約の形状と対象点をＲＡＭ１１２から消去する（Ｓ１０１０）。他方、制約決定部４０２は、Ｓ１００２からＳ１００６までの全ての条件が満たされない場合、仮想カメラの制約の無効化条件をＦａｌｓｅに設定する（Ｓ１００７）。そして、制約決定部４０２は、Ｓ１００１で算出した仮想カメラの制約の形状と対象点をＲＡＭ１１２に記録する（Ｓ１００９）。こうして、制約を有効化した時点における仮想視点の位置と方向の少なくともいずれかに基づいて、有効化した制約の内容が決定される。
【００４５】
図１１は、図５のＳ５０７で実行される、入出力部１１５からの入力と 仮想カメラの制約に基づいて仮想カメラのパラメータを変更する処理の詳細を示すフローチャートである。本処理は、仮想カメラ制御部４０１が入出力部１１５から取得した、仮想カメラの各軸の変更を指示する入力（例えば、３軸ジョイスティック８１４ａ、８１４ｂへの操作）に対して実行される。
【００４６】
仮想カメラ制御部４０１は、仮想カメラ制約の形状と対象点の情報がＲＡＭ１１２に記録されているかを判定する（Ｓ１１０１）。記録されている場合（Ｓ１１０１：ＹＥＳ）、処理はＳ１１０２以降へ進み、設定されている制約下で仮想カメラのカメラパラメータが制御される。球面上オートパンが有効であり、かつ、入出力部１１５からの入力がＸ軸の入力であると判定された場合（Ｓ１１０２：ＹＥＳ）、仮想カメラ制御部４０１は仮想カメラの位置と姿勢を更新する（Ｓ１１０４）。具体的には、まず、制約決定部４０２は、入力を元に仮想カメラの位置を更新し、更新した位置と仮想球面６０１の対象点６０２とを結ぶ直線を引き、その直線と、仮想球面６０１が交わる点を新しい仮想カメラの位置とする。そして、制約決定部４０２は、仮想カメラの光軸が仮想球面６０１の対象点６０２を通るよう、仮想カメラの姿勢を更新する。球面上オートチルトが有効であり、かつ、入出力部１１５からの入力がＺ軸の入力であると判定された場合（Ｓ１１０３：ＹＥＳ）、仮想カメラ制御部４０１は仮想カメラの位置と姿勢を球面上オートチルトの制約下で更新する（Ｓ１１０４）。Ｓ１１０４の処理（球面上オートチルトの制約下での仮想カメラの位置および姿勢の更新）の詳細は上述の球面上オートパンの制約下での仮想カメラの位置および姿勢の更新と同様である。
【００４７】
Ｓ１１０２とＳ１１０３においてＮＯと判定された場合、処理はステップＳ１１０５以降へ進む。平面上オートパンが有効であり、かつ、入出力部１１５からの入力がＸ軸の入力であると判定された場合（Ｓ１１０５：ＹＥＳ）、仮想カメラ制御部４０１は平面上オートパンの制約下で仮想カメラの位置と姿勢を更新する（Ｓ１１０７）。具体的には、制約決定部４０２は、入力を元に仮想カメラの位置を更新し、更新した位置と仮想平面の対象点６０７とを結ぶ直線を引き、その直線と、仮想平面６０６が交わる点を新しい仮想カメラの位置とする。また、制約決定部４０２は、仮想カメラの光軸が仮想平面の対象点６０７を通るよう、仮想カメラの姿勢を更新する。平面上オートチルトが有効であり、かつ、入出力部１１５からの入力がＺ軸の入力であると判定された場合（Ｓ１１０６：Ｙｅｓ）、仮想カメラ制御部４０１は仮想カメラの位置と姿勢を更新する（Ｓ１１０７）。Ｓ１１０７の処理（平面上オートチルトの制約下での仮想カメラの位置および姿勢の更新）の詳細は上述の平面上オートパンの制約下での仮想カメラの位置および姿勢の更新と同様である。
【００４８】
仮想カメラ制御部４０１は、オートドリーズームが有効であり、かつ、入出力部１１５からの入力がＹ軸の入力であるか判定する（Ｓ１１０８）。判定結果がＹＥＳの場合（Ｓ１１０８：Ｙｅｓ）、仮想カメラ制御部４０１は、仮想カメラのズームを更新する（Ｓ１１０９）。具体的には、制約決定部４０２は、Ｙ軸の入力を元に仮想カメラの位置を更新し、変更後の位置に応じてズーム値を更新する。ズーム値の更新は、例えば以下のように行われ得る。更新前の仮想カメラの位置６１１とドリーズーム対象点６１２の距離をｄ、更新後の仮想カメラの位置６１４とドリーズーム対象点６１２の距離をｄ'、仮想カメラのズームを表す焦点距離の値をｆとする。このとき、制約決定部４０２は、以下の数１により算出されるｆ'の値を、新しい仮想カメラのズームの値とする。
【数１】
2019152903.tif 000003
【００４９】
仮想カメラの制約と対象点がＲＡＭ１１２に記録されていない場合（Ｓ１１０１：ＮＯ）、または仮想カメラの制約と入力情報が上記Ｓ１１０２〜Ｓ１１０８のいずれの条件も満たさない場合、処理はＳ１１１０へ進む。この場合、仮想カメラ制御部４０１は、入力情報に基づいて仮想カメラの位置と姿勢を更新する（Ｓ１１１０）。
【００５０】
Ｓ１１１０の処理について説明する。Ｓ１１１０が示す処理は、仮想カメラの制約に関連がない入力があった場合、その入力に基づいて仮想カメラの制約の形状と対象点を変化させる。例えば球面上オートパンの制約に関連がある入力はＸ軸の入力である。球面上オートパンの制約が有効で、かつＹ軸を変更する入力があった場合、Ｓ１１１０で、仮想カメラのＹ軸の値が変化する。そしてＳ１００１で、制約の形状と対象点が再び算出される。この結果、球面上オートパンの制約に使われる球面９０６の半径が変化する。この変化した半径は、Ｓ１００９でＲＡＭ１１２に記録される。
【００５１】
なお、オートドリーズームの結果、焦点距離が一定値以下になる場合、仮想カメラ制御部４０１は、そのようなＹ値の変更を無視する。例えば、Ｙ値の値が増えて対象点を超えてしまった場合、焦点距離は負の値になるため、このような変更は無視される。また焦点距離を短くし画角を広角にするほど画像の周辺部は歪む。したがって、仮想カメラ制御部４０１は、焦点距離を一定値以下にする変更を無視するようにしてもよい。また、オートパンとオートチルトの一方が有効で他方が無効である場合に、無効な制約に関連する軸の入力を無視するようにしてもよい。例えば、球面上オートパンが有効で球面上オートチルトが無効になっている場合に、Ｚ軸の入力を無視するようにしてもよい。
【００５２】
図１２は、ユーザの入力に応じて仮想カメラの制約の対象点を移動させる処理の例を示すフローチャートである。例えばスポーツ選手などの被写体が移動するシーンでは、移動する被写体に合わせて仮想カメラの制約の対象点を移動することで、仮想カメラ画像の中央に被写体を映し続けることができる。このような状況において本処理は有効である。本処理は一定時間おきに実行される。
【００５３】
制約決定部４０２は、入出力部１１５から入力情報を取得する（Ｓ１２０１）。制約決定部４０２は、Ｓ１２０１で取得した入力情報が、対象点の位置を指定するか判定する（Ｓ１２０２）。対象点の位置を指定すると判定された場合（Ｓ１２０２：ＹＥＳ）、制約決定部４０２は、入力情報に基づいてＲＡＭ１１２に記録された対象点の位置を更新する（Ｓ１２０３）。仮想カメラ制御部４０１は、Ｓ１２０３で更新された新たな対象点の位置ｐ１と、更新される前の対象点の位置ｐ０を元に、仮想カメラのパラメータを更新する（Ｓ１２０４）。
【００５４】
図１３（ａ）は、Ｓ１２０３による対象点の位置の更新処理を説明する図である。対象点１３０１は更新前の対象点の位置ｐ０を、対象点１３０２は移動後の対象点の位置ｐ１を示す。また、位置１３０３は更新前の仮想カメラの位置を示し、位置１３０４は、Ｓ１２０４によって更新された仮想カメラの位置を示す。仮想カメラ制御部４０１は、仮想カメラの位置１３０３に、対象点の位置ｐ０から位置ｐ１までの位置の変化量を加えることで新たな仮想カメラの位置１３０４を算出し、この値で仮想カメラの位置を更新する。Ｓ１２０３で、平面上オートパン、平面上オートチルト、及びオートドリーズームが有効である場合、仮想カメラがｐ１を向くよう仮想カメラの姿勢を変更する。この場合、仮想カメラの位置は１３０３が示す位置のまま変更しない。
【００５５】
図１３（ｂ）は、ユーザが仮想カメラの制約の対象点の位置を指定する手段の一例を示す図である。１３１１は表示部２０１に表示される仮想視点画像である。マーカー１３１２は、仮想視点画像１３１１において現在の対象点の位置を示す。カーソル１３１３は、入出力部１１５が備えるポインティングデバイスによって操作される。ユーザはポインティングデバイスを用いてカーソル１３１３を操作し、マーカー１３１２を仮想視点画像１３１１内の別な位置へドラッグアンドドロップすることで、その位置を新たな対象点として指定することができる。
【００５６】
このとき、制約決定部４０２は、仮想カメラの位置と、ユーザが選択した任意の位置を結ぶ直線ｌを求める。この直線ｌは、仮想カメラの位置と、仮想カメラから見て以下の位置にある点を通る直線である。
【数２】
2019152903.tif 000004
ここで、Xはユーザが選択した仮想視点画像１３１１中のＸ座標の値、Yはユーザが選択した仮想視点画像中のＹ座標の値である。fx、fy、px、pyは、仮想カメラをピンホールカメラモデルで表した場合の内部パラメータであり、fx、fyは、仮想カメラの焦点距離、px、pyは、仮想カメラが備えるレンズの光学的な中心である。直線ｌと、面９０４が交わった位置を対象点９０５とする。
【００５７】
なお、図１２が示す処理によってユーザが仮想カメラの制約の対象点を指定する場合、仮想カメラ制御部４０１は、Ｓ１１１０、Ｓ１００１、Ｓ１００９が示す処理を実行しないようにしてもよい。これらの処理は、仮想カメラの制約に関連がない入力があった場合、仮想カメラの制約の形状と対象点を変化させる。例えば球面上オートパンの制約が有効であり、かつＹ軸を変更する入力があった場合、仮想カメラの制約である球面９０６の半径を変化させる。これらの処理も、図１２が示す処理も、入力に基づいて対象点を変更する機能を有する。そのため、図１２が示す処理が実行される場合、これらの処理を実行しないようにしてもよい。
【００５８】
なお、図１３（ｂ）において、マーカー１３１２はドラッグアンドドロップの操作により移動したが、その他の操作で移動してもよい。例えば仮想視点画像１３１１内にカーソル１３１３を合わせ、クリックする操作で移動してもよい。また、入出力部１１５がタッチパネルを備える場合、ユーザはタッチパネルを触れることでマーカー１３１２を移動させてもよい。
【００５９】
なお、第１実施形態では、ユーザは入出力部１１５を介して仮想カメラのパラメータを制御することができるが、仮想視点の位置と姿勢を制御可能として、仮想視点のパラメータを制御するようにしてもよい。この場合、仮想カメラ制御部４０１は、仮想視点制御を行う構成となり、制約決定部４０２は、仮想視点の制約を決定する構成となる。なお、この場合、ズームを制御できないため、オートドリーズームの制約を使用することはできないが、その他の制約は使用可能である。また、仮想視点の位置や方向の変化が制限された状態で入出力部１１５が仮想カメラパラメータの変更の指示を受け付けた場合、制約に従わない仮想カメラのパラメータの変更を無視または制約に従った仮想カメラのパラメータの変更に修正してもよい。
【００６０】
以上のように、第１実施形態によれば、映像制作者は、仮想視点の位置や方向に対する制約を制御することができ、仮想視点の位置や方向の自由な制御と、仮想視点の位置や方向の変化が制限された状態での制御の両方を行うことができる。その結果、映像制作者は、試合のシーンに応じて適切な方法で仮想視点を制御することができる。
【００６１】
＜第２実施形態＞
第１実施形態では、図９が示す通り、仮想カメラの光軸９０２と面９０４の交点を仮想カメラの制約における対象点９０５とした。しかし、この面９０４の最適な高さは状況に応じて異なる。例えば被写体が２ｍの高さに位置する場合、面９０４の高さは２ｍであることが望ましいが、被写体が高さ５０ｃｍの高さに位置する場合、面９０４の高さは５０ｃｍであることが望ましい。もし被写体が人物である場合、その人物が大人か子供か、あるいは立っているか屈んでいるかで高さは容易に変わりうる。第１実施形態では、常に同じ高さを用いるか、あるいはユーザが手動で面９０４の高さを設定する構成を示した。手動による面９０４の高さの変更はユーザの操作負荷を高める。第２実施形態では、仮想カメラから見た被写体の距離情報を用いて対象点の位置を算出する。
【００６２】
図１４は、第２実施形態による情報処理装置１０３の機能構成例を示すブロック図である。第１実施形態と同様、図１４に示される各機能は、例えばＣＰＵ１１１が、所定のコンピュータプログラムを実行することにより実現され得る。情報処理装置１０３は、仮想カメラ制御部４０１、制約決定部４０２に加えて、距離情報取得部１４０１を有する。距離情報取得部１４０１は、通信部１１４を通じて、画像生成サーバ１０２から距離情報を取得する。
【００６３】
第２実施形態において、画像生成サーバ１０２は、多視点から同期撮影した複数の画像を元に被写体の三次元形状を復元する。画像生成サーバ１０２は、仮想カメラの画像を生成する際、この三次元形状と仮想カメラのカメラパラメータを元に、仮想カメラに映る被写体と仮想カメラ間の距離を算出する。以下、この距離情報は、仮想カメラのカメラパラメータと同じカメラパラメータを用いて作成された距離画像であるとする。距離情報取得部１４０１は、通信部１１４を通じて、この距離画像を画像生成サーバ１０２から取得する。そして、制約決定部４０２は、距離情報取得部１４０１が取得した距離画像を元に対象点の位置を算出する。
【００６４】
図１５は、第２実施形態において、制約決定部４０２が制約の形状と対象点を算出する処理を示す図である。本処理は、例えば、Ｓ７０２において実行される。図１５は、真横から見た仮想カメラの位置と姿勢、及び対象点を示す。制約決定部４０２は、距離情報取得部１４０１から取得した距離画像を用いて、仮想カメラの位置９０１から、仮想カメラの画像中心に映る被写体までの距離を算出する。次に、仮想カメラの位置９０１から、仮想カメラの光軸９０２に沿ってこの算出された距離だけ進んだ位置にある点９４１を求める。制約決定部４０２は、有効化された制約に応じて、点９４１を、仮想球面６０１の対象点６０２、仮想平面６０６の対象点６０７、ドリーズーム対象点６１２として用いる。
【００６５】
なお、第２実施形態では、三次元形状から被写体の距離を算出する処理を画像生成サーバ１０２が実施しているが、これに限られるものではない。例えば、距離情報取得部１４０１が、三次元形状、あるいは同期撮影した複数の画像に基づいて被写体の距離を算出してもよい。
【００６６】
＜第３実施形態＞
第１実施形態では、図１２〜図１３で説明したように、ユーザがカメラパラメータの制約に用いる対象点の位置を移動させることを可能としている。これは、例えば仮想カメラ画像の中央に移動する選手を映しながら、仮想カメラの位置を制御したい場合に有効である。しかし、この場合、ユーザは、仮想カメラの位置を手動で制御すると同時に、選手の移動に合わせて対象点の位置を手動で制御する必要がある。シーンに合わせて、仮想カメラと対象点の２つの位置を同時に移動させる操作は負荷が高い。第３実施形態では、選手など物体の位置を検出する手段を用いて、制約に用いられる対象点を自動的に決定する。ユーザは対象点の位置を制御する必要がなくなるため、操作負荷が軽くなる。
【００６７】
図１６（ａ）は、第３実施形態における画像処理システム１０の全体構成を説明する図である。物体検出システム１６０１は、撮影システム１０１が多視点から同期撮影した複数画像に含まれる物体、例えばスポーツ選手やボールの位置を検出し、その結果を情報処理装置１０３に送信する。なお、物体検出システム１６０１は、例えば、画像生成サーバ１０２に内蔵されていてもよい。
【００６８】
図１６（ｂ）は、第３実施形態による情報処理装置１０３の機能構成例を示すブロック図である。第１実施形態と同様、図１６（ｂ）に示される各機能は、例えばＣＰＵ１１１が、所定のコンピュータプログラムを実行することにより実現され得る。第３実施形態の情報処理装置１０３は、仮想カメラ制御部４０１と制約決定部４０２に加えて、物体位置取得部１６２１を有する。物体位置取得部１６２１は、通信部１１４を通じて、物体検出システム１６０１から物体の位置情報を取得する。制約決定部４０２は、物体位置取得部１６２１が物体検出システム１６０１から取得した物体の位置情報を、仮想カメラの制約における対象点の位置として用いる。
【００６９】
図１７（ａ）は、第３実施形態による対象点の位置の更新処理を説明するフローチャートである。本処理は定期的に実行される。
【００７０】
物体位置取得部１６２１は、物体検出システム１６０１から物体の位置情報を取得する（Ｓ１７０１）。制約決定部４０２は、物体位置取得部１６２１が取得した物体の位置情報を、仮想カメラの制約における対象点の位置として用いる（Ｓ１７０２）。複数の物体が存在する場合は、ユーザによる入出力部１１５からの入力に基づいて、対象点の位置として用いる物体が決定される。そして、制約決定部４０２は、対象点の移動量に基づいて仮想カメラのカメラパラメータ（位置、姿勢など）を更新する。なお、対象点の移動に応じた仮想カメラのカメラパラメータの変更処理は、例えば第１実施形態（図１２のＳ１２０４）で説明した処理を用いることができる。
【００７１】
図１７（ｂ）は、ユーザが複数の物体の中から一つの物体を指定する方法の一例を示す図である。ウィンドウ１７１０は、表示部２０１に表示され、対象点として用いる物体を指定する機能を有する。入出力部１１５がポインティングデバイスやタッチパネルを備える場合、ユーザはそれらを用いてウィンドウ１７１０に表示されたＧＵＩ部品１７１１を選択することができる。ＧＵＩ部品１７１１は、複数の物体から一つを選択する機能を持つ。制約決定部４０２は、ＧＵＩ部品１７１１によって選択された物体の位置を対象点の位置として用いる。
【００７２】
以下、物体検出システム１６０１が物体の位置を検出する方法の一例を説明する。物体検出システム１６０１は、事前に登録された物体の情報を元に、撮影システム１０１が撮影した画像にその物体が含まれているかを判定する。含まれている場合、物体の画像内の位置を検出し、その結果を用いて、物体の空間内の位置を検出する。事前に登録される物体の情報として、人物や物体の三次元形状、人物の顔情報、物体表面の模様の情報を用いる。
【００７３】
なお、位置検出方法の別な例として、物体検出システム１６０１は、他の情報に基づいて画像中に含まれる物体の位置を検出してもよい。例えば、事前に物体にマーカーが貼られている前提で、撮影画像に映ったマーカーを認識して物体の位置を検知してもよい。なお、物体検出システム１６０１は、撮影システム１０１が撮影した画像を使用せず、別な手段で物体の位置を検知してもよい。例えば、物体にＧＰＵなどのセンサを埋め込み、そのセンサから得られた情報を用いて物体の位置を検知してもよい。またレーザーなど別な手段で遠隔から物体の位置を検知してもよい。
【００７４】
以上、本発明をその好適と考えられる実施の形態について上述してきたが、本発明はこれらの特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態の一部を適宜組み合わせてもよい。また、上述の実施形態によれば、仮想視点のパラメータ操作を制約下で行うか非制約下で行うかをユーザが選択できる。また、上述の実施形態によれば、仮想カメラパラメータの設定に不慣れなユーザであっても、煩雑な仮想カメラパラメータの設定を容易に行うことができる。例えば、仮想カメラに対する制約を設けることで、球面上オートパン、球面上オートチルト、平面上オートパン、平面上オートチルト、オートドリーズームなどの煩雑な仮想カメラパラメータの設定を容易に行うことができる。
【００７５】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７６】
１０：画像処理システム、１０１：撮影システム、１０２：仮想視点画像生成サーバ、１１１：ＣＰＵ、１１２：ＲＡＭ、１１３：ＲＯＭ、１１４：通信部、１１５：入出力部、２０１：表示部、２０２：６軸コントローラ、２０３：ズームコントローラ、２０４：リプレイコントローラ
【図１】
2019152903.tif 000005
【図２】
2019152903.tif 000006
【図３】
2019152903.tif 000007
【図４】
2019152903.tif 000008
【図５】
2019152903.tif 000009
【図６】
2019152903.tif 000010
【図７】
2019152903.tif 000011
【図８】
2019152903.tif 000012
【図９】
2019152903.tif 000013
【図１０】
2019152903.tif 000014
【図１１】
2019152903.tif 000015
【図１２】
2019152903.tif 000016
【図１３】
2019152903.tif 000017
【図１４】
2019152903.tif 000018
【図１５】
2019152903.tif 000019
【図１６】
2019152903.tif 000020
【図１７】
2019152903.tif 000021