IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7403956情報処理装置、制御方法、及びプログラム
<>
  • 特許-情報処理装置、制御方法、及びプログラム 図1
  • 特許-情報処理装置、制御方法、及びプログラム 図2
  • 特許-情報処理装置、制御方法、及びプログラム 図3
  • 特許-情報処理装置、制御方法、及びプログラム 図4
  • 特許-情報処理装置、制御方法、及びプログラム 図5
  • 特許-情報処理装置、制御方法、及びプログラム 図6
  • 特許-情報処理装置、制御方法、及びプログラム 図7
  • 特許-情報処理装置、制御方法、及びプログラム 図8
  • 特許-情報処理装置、制御方法、及びプログラム 図9
  • 特許-情報処理装置、制御方法、及びプログラム 図10
  • 特許-情報処理装置、制御方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】情報処理装置、制御方法、及びプログラム
(51)【国際特許分類】
   H04N 23/60 20230101AFI20231218BHJP
   G06F 3/04847 20220101ALI20231218BHJP
   G06T 15/20 20110101ALI20231218BHJP
   G06T 19/00 20110101ALI20231218BHJP
   H04N 13/117 20180101ALI20231218BHJP
   H04N 7/18 20060101ALN20231218BHJP
【FI】
H04N23/60 500
G06F3/04847
G06T15/20 500
G06T19/00 A
H04N13/117
H04N7/18 E
【請求項の数】 20
(21)【出願番号】P 2019034200
(22)【出願日】2019-02-27
(65)【公開番号】P2020141198
(43)【公開日】2020-09-03
【審査請求日】2022-02-22
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】米田 圭吾
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2018-106496(JP,A)
【文献】特開2018-142164(JP,A)
【文献】特開2019-004229(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
G06F 3/04847
G06T 15/20
G06T 19/00
H04N 13/117
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
複数の撮像装置により複数の方向から撮像することで得られる画像データに基づく仮想視点画像の生成に係る仮想視点の経路を示すカメラパスの基準となる、複数のキーフレームを指定する指定手段と、
前記複数のキーフレームそれぞれに対応する前記仮想視点を規定するカメラパラメータであって前記仮想視点の位置および向きの情報を少なくとも含むカメラパラメータのうち、第1のキーフレームに対応するカメラパラメータと、前記第1のキーフレームとは異なる第2のキーフレームに対応するカメラパラメータと、に基づきキーフレーム間を接続する補間方法を決定する決定手段と、
前記キーフレーム間のフレームに対応するカメラパラメータを、前記決定手段によって決定された補間方法に基づき補間することで前記カメラパスを設定する設定手段と、
を有することを特徴とする情報処理装置。
【請求項2】
記第1のキーフレームに対応する前記カメラパラメータによって特定される仮想視点の位置および向きから求まる第1の視線ベクトルと、前記第2のキーフレームに対応する前記カメラパラメータによって特定される仮想視点の位置および向きから求まる第2の視線ベクトルと、に基づき前記補間方法を決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記補間方法には、円弧補間とスプライン補間とが含まれることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記決定手段は、前記第1の視線ベクトルと前記第2の視線ベクトルとの最短距離を求め、前記最短距離を実現する前記第1のキーフレームにおける仮想視点の位置から所定の点までの第1の距離と、前記最短距離を実現する前記第2のキーフレームにおける仮想視点の位置から前記所定の点までの第2の距離と、に基づき前記補間方法を決定することを特徴とする請求項2または3に記載の情報処理装置。
【請求項5】
前記所定の点は、前記第1の視線ベクトル上の点のうち前記第2の視線ベクトルに最も近い第1の点と、前記第2の視線ベクトル上の点のうち前記第1の視線ベクトルに最も近い第2の点と、を含む所定の領域内にある点であることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記所定の領域内にある点は、前記第1の点と前記第2の点との中点であることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記決定手段は、前記第1の距離と前記第2の距離との差に応じて、前記補間方法として円弧補間かスプライン補間かを決定することを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記決定手段は、前記第1の距離と前記第2の距離との差が、第1の閾値以下であると判定した場合、前記補間方法を円弧補間と決定をすることを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
【請求項9】
前記決定手段は、前記第1の距離と前記第2の距離との少なくとも何れか一方の値が第2の閾値より大きい場合、前記第1の閾値に基づく決定に係わらず、前記補間方法をスプライン補間と決定をすることを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記複数のキーフレームの数は2つであることを特徴とする請求項2から9のいずれか1項に記載の情報処理装置。
【請求項11】
前記決定手段は、
前記複数のキーフレームのうち、隣り合う組のキーフレームの一方を前記第1のキーフレームとし、他方を前記第2のキーフレームとして前記第1の距離と前記第2の距離とを決定し、
前記隣り合うキーフレームの組のうちの何れかの組における前記第1の距離と前記第2の距離との差が、第1の閾値より大きい場合、前記複数のキーフレーム間を接続するための前記補間方法をスプライン補間と決定し、
それ以外の場合は、前記複数のキーフレーム間を接続するための前記補間方法を円弧補間と決定することを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
【請求項12】
前記複数のキーフレームの数は3つ以上であることを特徴とする請求項11に記載の情報処理装置。
【請求項13】
操縦者の操作による入力値を受け付ける入力受付手段をさらに有し、
前記決定手段は、前記複数のキーフレームの数を、前記入力受付手段が受け付けた入力値に応じて決定することを特徴とする請求項2から12のいずれか1項に記載の情報処理装置。
【請求項14】
前記補間方法が前記決定手段によって決定される第1のモードと、
前記補間方法が操縦者の選択に基づき決定される第2のモードと、を有し、
前記第1のモードと前記第2のモードとは切り替え可能であることを特徴とする請求項2から13のいずれか1項に記載の情報処理装置。
【請求項15】
前記設定手段により求められた前記キーフレーム間を接続するためのカメラパラメータを用いて仮想視点画像を生成する生成手段をさらに有することを特徴とする請求項2から14のいずれか1項に記載の情報処理装置。
【請求項16】
前記カメラパスを編集するための画面を表示させる表示制御手段をさらに有することを特徴とする請求項2から15のいずれか1項に記載の情報処理装置。
【請求項17】
前記表示制御手段は、
前記キーフレームを表すマークと、
前記カメラパスが、前記補間方法に応じた異なる態様で表されたマークと、が含まれる前記画面を表示することを特徴とする請求項16に記載の情報処理装置。
【請求項18】
前記キーフレーム間は、前記第1のキーフレームと前記第2のキーフレームとの間であることを特徴とする請求項1から17のいずれか1項に記載の情報処理装置。
【請求項19】
複数の撮像装置により複数の方向から撮像することで得られる画像データに基づく仮想視点画像の生成に係る仮想視点の経路を示すカメラパスの基準となる、複数のキーフレームを指定する指定ステップと、
前記複数のキーフレームそれぞれに対応する前記仮想視点を規定するカメラパラメータであって前記仮想視点の位置および向きの情報を少なくとも含むカメラパラメータのうち、第1のキーフレームに対応するカメラパラメータと、前記第1のキーフレームとは異なる第2のキーフレームに対応するカメラパラメータと、に基づきキーフレーム間を接続する補間方法を決定する決定ステップと、
前記キーフレーム間のフレームに対応するカメラパラメータを、前記決定ステップにて決定された補間方法に基づき補間することで前記カメラパスを設定する設定ステップと、
を含むことを特徴とする制御方法。
【請求項20】
コンピュータを、請求項1から18のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想視点の設定を行うための技術に関する。
【背景技術】
【0002】
複数台の実カメラで撮像した画像を用いて、3次元空間内に仮想的に配置した実際には存在しないカメラの視点(仮想視点)からの画像を再現する技術として、仮想視点画像生成技術がある。仮想視点画像の生成に必要な仮想視点の視点情報であるカメラパラメータは、操縦者がUI画面とジョイスティックなどのコントローラを用いて仮想視点の移動方向、向き、回転、および移動距離や移動速度を入力することで設定される。
【0003】
仮想視点の経路を示すカメラパスの生成方法にキーフレーム法がある。キーフレーム法では、基準となる仮想視点に対応するキーフレームが複数指定される。キーフレーム法では、このキーフレーム間を接続するカメラパラメータが補間により生成されることで、キーフレーム間のカメラパスが生成される。特許文献1には、キーフレーム法ではスプライン関数でキーフレーム間を補間することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2007-25979号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、キーフレーム間を一様に補間する方法では、ユーザが意図する仮想視点の経路を容易に設定できない場合がある。例えば、仮想視点の位置がオブジェクトを中心に180度近く回るようなカメラパスを生成する場合、スプライン関数による補間では、カメラパスとなる円弧上に幾つものキーフレームを指定する必要がある。このため、操縦者によるキーフレームを指定する手間が発生する。
【課題を解決するための手段】
【0006】
本発明の一態様に係る情報処理装置は、複数の撮像装置により複数の方向から撮像することで得られる画像データに基づく仮想視点画像の生成に係る仮想視点の経路を示すカメラパスの基準となる、複数のキーフレームを指定する指定手段と、前記複数のキーフレームそれぞれに対応する前記仮想視点を規定するカメラパラメータであって前記仮想視点の位置および向きの情報を少なくとも含むカメラパラメータのうち、第1のキーフレームに対応するカメラパラメータと、前記第1のキーフレームとは異なる第2のキーフレームに対応するカメラパラメータと、に基づきキーフレーム間を接続する補間方法を決定する決定手段と、前記キーフレーム間のフレームに対応するカメラパラメータを、前記決定手段によって決定された補間方法に基づき補間することで前記カメラパスを設定する設定手段と、を有することを特徴とする情報処理装置である。
【発明の効果】
【0007】
本発明によれば、仮想視点の設定に係るユーザの利便性を向上することができる。
【図面の簡単な説明】
【0008】
図1】キーフレーム法によるカメラパラメータの補間について説明する図である。
図2】情報処理装置のハードウェア構成の一例を示す図である。
図3】情報処理装置の機能構成の一例を示す図である。
図4】カメラパス編集用のUI画面を示す図である。
図5】キーフレーム間のカメラパスを生成する処理を示すフローチャートである。
図6】キーフレーム間の視線ベクトルの関係を説明する図である。
図7】補間方法の決定処理を示すフローチャートである。
図8】3以上のキーフレーム間の視線ベクトルの関係を説明する図である。
図9】補間方法の決定処理を示すフローチャートである。
図10】カメラパス編集用のUI画面を示す図である。
図11】補間方法の決定処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態について詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0010】
<実施形態1>
実施形態1では、基準となるキーフレームにおける仮想視点を規定するパラメータ(以下、「カメラパラメータ」と呼ぶ。)に基づいて、キーフレーム間のカメラパラメータの補間方法を決定する処理を説明する。なお、本実施形態では説明の便宜上、カメラパラメータにより規定される仮想視点を、仮想カメラという用語を用いて説明することがある。仮想カメラの位置は仮想視点の位置、仮想カメラの姿勢(向き)は仮想視点の向き、仮想カメラのズーム(焦点距離)は仮想視点に係るズームパラメータにそれぞれ対応する。
【0011】
仮想視点画像とは実カメラとは異なる仮想カメラの位置及び向き等に基づいて生成される画像である。例えば、サッカーを行うスタジアム内の異なる位置に複数のカメラを配置した撮像システム(不図示)の複数の実カメラによって、複数の視点から同期して撮像が行われる。仮想視点画像の生成については、撮像システムの複数の実カメラが同期撮像したことによって得られた複数視点画像の画像データに基づき撮像システムのどの実カメラとも異なる実在しないカメラ(仮想カメラ)の視点から見た仮想視点画像が生成される。なお、仮想カメラは、エンドユーザや専任のオペレータ等による手動操作、コンテンツの内容に応じた自動操作、および予め定められた固定カメラパスに基づく自動操作などにより制御されうる。また、以下の説明では仮想視点画像は動画として説明するが、仮想視点画像は、動画であっても、静止画であっても良い。
【0012】
[キーフレーム法の説明]
ここで、仮想視点の経路(カメラパス)を示すカメラパラメータの生成方法であるキーフレーム法の説明をする。キーフレーム法では、まず、カメラパスに含まれる基準となる仮想視点に対応するキーフレームが指定される。キーフレームが指定されると、キーフレーム間を接続するための1つ又は複数のカメラパラメータは、スプライン関数などを用いた補間によって生成される。補間により生成された1つ又は複数のカメラパラメータで表されるカメラパスは、キーフレーム間を滑らかに接続するカメラパスとなる。よって、キーフレーム法で生成されたカメラパラメータによる仮想視点画像は、操縦者のコントローラ操作により直接カメラパスを指定する場合と比較して、手振れの少ない滑らかな動きの画像とすることができる。このため、キーフレーム法によって生成されたサッカー等のスポーツにおける仮想視点画像は、視聴者に高臨場感を与えることが出来る。
【0013】
図1は、サッカーのシュートシーンを選手の頭上から見た図に、仮想視点の位置および向きを示す仮想カメラと、仮想カメラのカメラパスとが重畳表示されたカメラパス編集のためのUI(ユーザーインターフェース)画面の一例を示す図である。図1を用いて本実施形態の適用例を説明する。図1が示すシュートシーンは、選手101から選手102にボールをパスし、選手102がボールを蹴り、ゴールを決めるものである。このシュートシーンを、ゴール側の仮想カメラ103の位置から選手102を中心に撮像し、次に仮想カメラ104の位置まで選手102に近づいて撮像する。最後に仮想カメラ105の位置まで仮想カメラを移動させて、仮想カメラ105の向きをパンさせて、選手102の背中とシュートシーンとを撮像するようなカメラの動きによる仮想視点画像を生成すること考える。
【0014】
仮想カメラ103、仮想カメラ104、および仮想カメラ105が示すカメラパラメータをキーフレームとして指定し、キーフレーム間のカメラパスについては、キーフレーム法によってカメラパラメータを補間することにより生成するものとする。
【0015】
このとき操縦者は、仮想カメラ103から仮想カメラ104までのカメラパスは直線的なカメラパス106であり、仮想カメラ104から仮想カメラ105までのカメラパスは選手を中心に円弧状に仮想カメラが動くカメラパス107であることを期待する。
【0016】
キーフレーム間を接続するための補間方法の1つであるスプライン関数を用いたスプライン補間によると、キーフレームが2つの場合、キーフレーム間のカメラパスが直線的であるようなカメラパラメータが生成される。このため、仮想カメラ103から仮想カメラ104までのカメラパラメータはスプライン補間によって生成されることが好ましい。
【0017】
しかし、スプライン補間によると、仮想カメラ104から仮想カメラ105までのカメラパスは、円弧状のカメラパス107ではなく、直線的なカメラパス108が示すカメラパラメータが生成されることになる。スプライン補間によって円弧状のカメラパス107であるようなカメラパラメータが生成されるためには、操縦者が期待するカメラパス107上に、仮想カメラ109が示す複数のカメラパラメータを操縦者自らがキーフレームとして指定する必要がある。よって操縦者にとって手間となる。
【0018】
一方、円弧補間による補間方法によれば、キーフレームを通る円弧状のカメラパスが生成される。このため、カメラパラメータの補間方法が円弧補間であれば、仮想カメラ104と仮想カメラ105とが示すカメラパラメータをキーフレームと指定するだけで、カメラパス107上を動くカメラパラメータが生成される。
【0019】
本実施形態では、補間方法決定部315(図3参照)がキーフレームとして指定されているカメラパラメータを参照して、適切な補間方法を決定する。また、補間方法には円弧補間は含まれる。このため、本実施形態では、操縦者は仮想カメラ109を幾つも指定する必要はない。よって、キーフレームとして指定する仮想カメラの数が減ることから操縦者の負担を軽減することができる。補間方法決定部315による補間方法の決定処理の詳細は後述する。
【0020】
[ハードウェア構成]
図2は、本実施形態に係る仮想視点画像におけるカメラパスを編集することが可能な情報処理装置20のハードウェア構成の一例を示す図である。本実施形態の情報処理装置20は、CPU201、RAM202、ROM203、入出力デバイス部204を有する。
【0021】
CPU201は、RAM202をワークメモリとして、ROM203に格納されたプログラムを実行し、情報処理装置20の各構成部を統括的に制御するプロセッサである。これにより、CPU201が、各種プログラムを実行することで、後述の図3に示す各処理部の機能が実現される。
【0022】
情報処理装置20はCPU201とは異なる専用の1又は複数のハードウェアあるいはGPU(Graphics Processing Unit)を有してもよい。そして、CPU201による処理の少なくとも一部をGPUあるいは専用のハードウェアが行うようにしても良い。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、及びDSP(デジタルシグナルプロセッサ)等がある。
【0023】
RAM202は、ROM203から読みだされたコンピュータプログラムや計算の途中結果などを一時的に記憶する。
【0024】
ROM203は、変更を必要としないコンピュータプログラムやデータを保持する。またROM203は、キーフレーム間を補間する上で必要なデータを格納する。例えば、キーフレーム間の補間方法を格納する。さらにROM203はキーフレーム間の補間方法を決定する上で必要なデータ等を格納する。
【0025】
入出力デバイス部204は、仮想視点を制御するための複数のコントローラと、仮想視点の状態情報などを表示する複数の表示部と、を有する。複数のコントローラには、キーボード、またはマウス等の操縦者が入力操作を行うための一般的なデバイスの他、UI画面上の仮想カメラを操縦するためのジョイスティック、つまみ、ジョグダイヤル等が含まれる。
【0026】
表示部は、操縦者に必要な情報を表示するための1又は複数の表示デバイス(以下、「モニタ」と表記)である。モニタとしてタッチパネルディスプレイを採用した場合は、モニタは上述のコントローラを兼ねることになる。モニタには、カメラパス編集用のUI画面が表示され、操縦者はそのUI画面上の仮想カメラを見ながら仮想視点の経路を設定することができる。
【0027】
[機能構成]
図3は、情報処理装置20の機能構成の一例を示す図である。情報処理装置20は、カメラパス編集部301と、仮想視点画像を生成する仮想視点画像生成部302と、を有する。
【0028】
カメラパス編集部301は、仮想視点を制御し、カメラパスを構成する一連の仮想視点のカメラパラメータ群を決定する。
【0029】
カメラパラメータは、例えば、位置、向き、ズーム(焦点距離)または時刻といった要素が含まれる。カメラパラメータにより指定される仮想視点の位置は、3次元座標で表され、例えば、X軸、Y軸、Z軸の3軸の直交座標系の座標により示される。この際の原点は3次元空間内の任意の位置としてもよい。カメラパラメータにより指定される仮想視点の向きは、例えば、パン、チルト、ロールの3軸とのなす角度により表される。カメラパラメータにより指定される仮想視点のズームは、例えば、焦点距離の1軸により表される。時刻もズームと同様に1軸で表される。つまり、仮想視点の位置、向き、ズーム、時刻の4種類の要素で構成されるカメラパラメータの場合、仮想視点のカメラパラメータは8軸のパラメータを有することになる。カメラパス編集部301はこの8軸を制御可能である。なお、カメラパラメータは上記4種類以外の他の要素を規定するパラメータを含んでもよいし、上述した8軸のパラメータの全てを含まなくてもよい。
【0030】
カメラパス編集部301は、入出力処理部311、キーフレーム決定部312、キーフレーム管理部313、補間方法管理部314、補間方法決定部315、カメラパラメータ補間部316、及びカメラパス出力部317を有する。
【0031】
入出力処理部311の入力受付部318は、操縦者のコントローラの操作に応じた入力値を取得する。具体的には、操縦者のコントローラの第1の操作に応じた入力値(ジョイスティックであればその傾けた方向と角度)を順次取得する。また、入力受付部318は、UI画面上に対するマウスのクリック、またはボタンの押下等の操縦者による第2の操作を受け付ける。入出力処理部311は、操縦者の第2の操作を受け付けたタイミングにおいて、第1の操作による入力値に基づきカメラパラメータを生成する。
【0032】
入出力処理部311は、生成したカメラパラメータの記憶の指示をキーフレーム決定部312に対して行う。さらに入出力処理部311は、キーフレーム法による補間の指示を補間方法決定部315へ行う。
【0033】
入出力処理部311の表示制御部319は、仮想視点画像を生成するための各種情報をUI画面としてモニタに表示する制御をする。具体的には、操作中の仮想視点を示す仮想カメラのマーク、キーフレームを示す仮想カメラのマーク、およびカメラパスを表すマーク等をUI画面上に表示する。操縦者は、モニタに表示されたUI画面上の情報を見ながら、コントローラを用いて仮想視点のカメラパスの編集を行うことが可能となる。UI画面の詳細は後述する。
【0034】
キーフレーム決定部312は、入出力処理部311が受け付けた操縦者からの指示に応じて、入出力処理部311が生成したカメラパラメータをキーフレームとして指定する。キーフレーム決定部312は、キーフレームとして指定されたカメラパラメータをキーフレーム管理部313に出力する。
【0035】
キーフレーム管理部313は、キーフレーム決定部312から出力されたキーフレームのカメラパラメータをRAM202又はROM203に記憶する。また、キーフレーム管理部313は、RAM202又はROM203からキーフレームのカメラパラメータを読み出し、入出力処理部311および補間方法決定部315に出力する。キーフレーム管理部313は、キーフレームのカメラパラメータにID等の付加情報を追加しROM203に記憶してもよい。また、キーフレーム管理部313は、指定されたIDのカメラパラメータを、キーフレーム決定部312によって決定された新たなカメラパラメータに更新をしてもよい。入出力処理部311または補間方法決定部315が、このIDを索引して、対応するキーフレームのカメラパラメータ等を取得できるようにしてもよい。
【0036】
補間方法決定部315は、入出力処理部311による補間方法の決定の指示と、キーフレーム管理部313から出力された複数のキーフレームのカメラパラメータとに基づき、キーフレーム間のカメラパラメータの補間方法を決定する。詳細は後述する。
【0037】
補間方法管理部314は、ROM203に記憶されているキーフレーム間のカメラパラメータの補間方法を取得し、入出力処理部311および補間方法決定部315に出力する。補間方法は、例えば、スプライン補間、円弧補間、線形補間、またはベジェ補間である。本実施形態では、スプライン補間と円弧補間とによる方法を中心に説明する。
【0038】
スプライン補間は、スプライン関数によりキーフレーム間のカメラパスが滑らかな直線または曲線に沿った動きになるようにキーフレーム間のカメラパラメータを補間する方法である。
【0039】
円弧補間は、ある点を中心に、それぞれのキーフレームの近傍を通る円弧上のカメラパスであるようにキーフレーム間のカメラパラメータを補間する方法である。ここで円とは真円に限られない。例えば、円弧補間おける円弧には楕円の円弧も含まれる。
【0040】
カメラパラメータ補間部316は、補間方法決定部315が決定した補間方法に基づいて、キーフレーム間のカメラパラメータを補間することによりキーフレーム間を接続するためのカメラパラメータを生成して求める。カメラパラメータ補間部316は、まずキーフレームの間の始点と終点との差の区間を分割する。カメラパラメータ補間部316は、分割されたそれぞれの区間について、補間方法決定部315が決定した補間方法を用いてキーフレーム間を接続するカメラパラメータを生成する。
【0041】
カメラパスは複数枚のフレームからなり、1枚のフレームごとに画像の視点が定義される。また、カメラパスを生成するために必要なフレームは、終点時刻と始点時刻とで決まる。例えば、60フレーム/秒のフレームレートでキーフレーム間の時間が5秒のカメラパスを生成する場合、60フレーム/秒×5秒=300フレームが必要になる。よって、カメラパラメータ補間部316は、終点と始点とのキーフレーム間を接続するためのカメラパラメータを求めるために、各フレームに対応する300個のカメラパラメータを補間方法決定部315が決定した補間方法を用いて生成する。
【0042】
カメラパス出力部317は、カメラパラメータ補間部316において生成されたカメラパラメータを、仮想視点画像生成部302に順次送信する。また、その一部又は全部はUI画面に表示させるために入出力処理部311にも送られる。
【0043】
仮想視点画像生成部302は、仮想視点から見た仮想視点画像を生成する。仮想視点画像の生成は、カメラパスを構成する一連のカメラパラメータに基づいて行われる。そして、仮想視点画像生成部302は、生成した仮想視点画像を入出力処理部311に送信する。なお、特に断りがない限り、画像という文言が動画と静止画との両方の概念を含むものとして説明している。即ち、仮想視点画像生成部302は、静止画及び動画の何れについても処理可能である。
【0044】
なお、本実施形態では仮想視点画像の生成は、情報処理装置20の仮想視点画像生成部302によって行われるものとして説明するが、仮想視点画像生成部と同様の機能が含まれる他の情報処理装置(例えば、サーバ等)によって行われてもよい。
【0045】
図3の各部の機能は、CPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより実現される。または、図3の各部の一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。
【0046】
[UI画面について]
図4は、入出力処理部311によってモニタに表示される仮想視点画像およびUI画面の例を示す図である。図4では選手がプレイするサッカーグラウンドを撮像することによって生成される仮想視点画像を例に説明する。図4(a)は、仮想視点画像生成部302が生成し、入出力処理部311を介してモニタに表示された仮想視点画像を示す図である。
【0047】
図4(b)は、入出力処理部311によってモニタに表示されるカメラパスを編集するためのUI画面402の例である。図4(b)のUI画面402には、サッカーグラウンドを真上から見た平面画像に、仮想視点の状態を示す仮想カメラのマーク等が重畳表示されている。
【0048】
具体的には、入出力処理部311は、操作中の仮想カメラの位置および向き等の状態情報を表すマーク403と、キーフレームとして指定されている仮想カメラの位置および向き等の状態情報を表すマーク404~406と、をUI画面402に重畳表示する。
【0049】
また、入出力処理部311は、仮想カメラが移動する方向を矢印として示すキーフレーム間のカメラパスを表したマーク408、409を平面画像に重畳表示する。カメラパスを表すマークは補間方法が分別できるようになっている。例えば、図4(b)に示すように、点線の矢印のマーク409はスプライン補間によって生成されたカメラパラメータによるカメラパスを表している。また、実線の矢印のマーク408は円弧補間によって生成されたカメラパラメータによるカメラパスを表している。
【0050】
操縦者は、UI画面上の表示されたこれらの情報を見ながら、ジョイスティック等のコントローラを用いて仮想視点のマーク403~406を動かすことができる。このように操作することにより、その仮想カメラのマークが示す仮想視点のカメラパラメータの編集を行うことができる。また、操縦者は、矢印のマーク408、409によって、どの補間方法に基づいてキーフレーム間を接続するカメラパラメータが生成されたかを視覚的に確認することが可能となる。
【0051】
なお、仮想視点の状態情報およびカメラパスを示すマークは、仮想視点の状態情報またはカメラパスが把握できるような態様であればよく、図4(b)のマークに限定されない。また、UI画面402に基づき操縦者が操作することが可能な機能は、これに限られない。例えば、補間方法管理部314が管理している補間方法、またはカメラパラメータの補間を自動で決定するか手動で選択決定するかのモードの切り替えボタンが表示されてもよい。または補間方法の決定条件に係るパラメータを変更することが可能なスライドバーが表示されてもよい。
【0052】
カメラパス編集コントローラ407は、カメラパスを編集するために操縦者が使用するコントローラの一例である。操縦者は、モニタに表示された仮想視点画像401やUI画面402を見ながら、カメラパス編集コントローラ407のジョイスティック等のコントローラを用いてUI画面上の仮想カメラを操縦してカメラパラメータを編集することができる。
【0053】
[カメラパラメータの補間の処理]
図5は、キーフレーム間を接続するカメラパラメータを補間する一連の処理を示すフローチャートである。図5のフローチャートで示される一連の処理は、CPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、図5におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、以後のフローチャートにおいても同様とする。
【0054】
以下、図5を参照して、情報処理装置20における処理の概要を説明する。操縦者からのカメラパスの生成開始の指示をトリガとして、図5のフローが開始される。
【0055】
S501において入出力処理部311は、操縦者によるコントローラの操作に応じた入力値に基づき、仮想視点を規定するカメラパラメータを生成する。例えば、操縦者は、コントローラのジョイスティックを傾ける操作をして、UI画面上の仮想カメラが示すマークを前後、左右、上下へ移動し所望の位置を指定する。また、操縦者はコントローラの操作をしてUI画面上のカメラをパン、チルト、ロール方向へ回転させ仮想視点の向きを指定する。さらに、操縦者はコントローラの操作をしてシーンの時刻を指定する。操縦者が仮想視点の位置、向きおよびシーンの時刻を指定すると、入出力処理部311は、その指定に応じた入力値に基づきカメラパラメータを生成し、生成したカメラパラメータによる仮想視点画像をモニタに表示する。入出力処理部311が生成したカメラパラメータは、キーフレーム決定部312に送られる。
【0056】
S502においてキーフレーム決定部312は、操縦者によるコントローラの操作に応じた入力値に基づいて、S501において生成されたカメラパラメータをキーフレームとして記憶するか否かを判定する。例えば、コントローラの第1のボタンの押下に応じた入力値を入出力処理部311が受け付けた場合、キーフレーム決定部312は、生成されたカメラパラメータをキーフレームと指定し、生成されたカメラパラメータをキーフレームとして記憶すると判定する。
【0057】
カメラパラメータをキーフレームとして記憶すると判定した場合(S502でYES)、S503においてキーフレーム管理部313は、カメラパラメータをキーフレーム決定部312から取得しRAM202又はROM203にキーフレームとして記憶する。
【0058】
カメラパラメータをキーフレームとして記憶しないと判定した場合(S502でNO)、またはS503の処理が完了した場合、S504に進む。
【0059】
S504において補間方法決定部315は、操縦者によるコントローラの操作に応じた入力値に基づいて、キーフレーム間を接続するカメラパラメータを補間してカメラパスを生成するか否かを判定する。例えば、コントローラの第2のボタンの押下に応じた入力値を入出力処理部311が受け付けた場合、入出力処理部311は、補間方法決定部315に補間方法の決定する指示を行う。補間方法決定部315は、入出力処理部311の補間方法の決定する指示があった場合、記憶されているキーフレーム間のカメラパスを生成すると判定する。
【0060】
カメラパスを生成すると判定しない場合(S504でNO)、S501に戻り、キーフレームの記憶までの処理を繰り返す。カメラパスを生成するためのキーフレームは少なくとも2つ必要であるから、キーフレームが記憶されていない場合、またはキーフレームが1つしか記憶されていない場合についてもNOと判定される。
【0061】
カメラパスを生成すると判定した場合(S504でYES)、S505において補間方法決定部315は、キーフレーム間の補間方法を所定の条件に基づき決定する。S505の処理の詳細は後述する。
【0062】
S506においてカメラパラメータ補間部316は、補間方法決定部315から取得したキーフレーム間の補間方法とキーフレームのカメラパラメータとに基づいて、キーフレーム間を接続する1つ又は複数のカメラパラメータを求める。そして、カメラパラメータ補間部316は、求めたカメラパラメータをカメラパス出力部317に出力する。
【0063】
カメラパラメータ補間部316によって生成されるカメラパスがキーフレームを通る順番は、キーフレーム管理部313に記憶されたキーフレームの順番と同じでもよいし、上述したキーフレームのIDの順番であってもよい。または、キーフレームのカメラパラメータに時間のパラメータが含まれている場合は、その時間の順番でもよい。
【0064】
円弧補間によって生成されるキーフレーム間のカメラパスは、図1では左回りに仮想カメラが移動するカメラパスであるものとして示したが、仮想カメラの位置が左回りに動くか右回りに動くかは、操縦者の入力によって決定しても良い。また、2つのキーフレームに対応する2つの仮想視点の距離などに基づいて、仮想カメラの旋回方向が自動で決定されてもよい。
【0065】
本フローの終了後、カメラパス出力部317に渡されたカメラパスを示すカメラパラメータは、カメラパス出力部317から仮想視点画像生成部302に送信される。仮想視点画像生成部302は、そのカメラパラメータに基づき仮想視点画像を生成する。
【0066】
[カメラパラメータ補間方法の決定制御]
次に、補間方法決定部315がキーフレーム間の補間方法を決定する処理の詳細を説明する。図6図1と同様に、キーフレームとして指定されたカメラパラメータを仮想カメラ104および仮想カメラ105として示した図である。また、図6では仮想カメラ104の視線を表す視線ベクトルC1と、仮想カメラ105の視線を表す視線ベクトルC2とを重ね合わせて表示している。
【0067】
視線ベクトルC2に最も近い位置にある視線ベクトルC1における視線ベクトル上の点をP1とする。同様に、視線ベクトルC1に最も近い位置にある視線ベクトルC2上の点をP2とする。図6の例では視線ベクトルC2と視線ベクトルC1とが最も接近する点は選手102上にある。よって、図6(a)では、選手102にP1とP2とがあるように表されている。
【0068】
図6(b)は、図6(a)の図を、選手を横から見た状態で表した図である。図6(b)では点P1および点P2は選手102上の異なる位置にあることが分かる。つまり、図6の視線ベクトルC1と視線ベクトルC2とは、三次元座標上、交わっていないこと示している。視線ベクトルが交わっている場合、その交点は、点P1と点P2と同一の点となる。
【0069】
点P1と点P2との中点を点Oとする。仮想カメラ601の位置(仮想視点の位置)から点Oまでの距離をD1とする。仮想カメラ602の位置(仮想視点の位置)から点Oまでの距離を距離D2とする。本実施形態では、補間方法決定部315は、距離D1および距離D2に基づき補間方法を決定する。
【0070】
なお距離D1と距離D2とを測定するための点Oは点P1と点P2との中点に限定されない。点Oは、点P1と点P2とを含む所定の領域内に含まれる任意の点を点Oとして用いてもよい。例えば、仮想カメラ601の位置からP1までの距離を距離D1とし、仮想カメラ602の位置からP2までの距離を距離D2としてもよい。
【0071】
図7は、図5のS505のカメラパラメータの補間方法の決定処理の詳細を説明するフローチャートである。本実施形態においては、2つのキーフレーム間のカメラパラメータの補間方法を決定する方法を説明する。
【0072】
S701において補間方法決定部315は、キーフレーム管理部313から処理対象の2つのキーフレームのカメラパラメータを取得する。次に、補間方法決定部315は、一方のキーフレーム(第1のキーフレーム)における仮想視点の位置および向きを示すカメラパラメータから視線ベクトルC1を算出する。他方のキーフレーム(第2のキーフレーム)における仮想視点の位置および向きを示すカメラパラメータから視線ベクトルC2を算出する。次に補間方法決定部315は、視線ベクトルC1と視線ベクトルC2とが最も接近する距離(最短距離)を算出する。例えば、視線ベクトルC1と視線ベクトルC2とが交わっている場合、最短距離は0として算出される。
【0073】
S702において補間方法決定部315は、S702において得られた最短距離を実現する視線ベクトルC1上の点P1の位置と、視線ベクトルC2上の点P2の位置と、を算出して決定する。
【0074】
S703において補間方法決定部315は、点P1と点P2とに基づき点Oの位置を決定する。本実施形態では、点P1と点P2との中点を算出し、その中点を点Oとして決定する。視線ベクトルC1と視線ベクトルC2とが三次元座標上で交わっている場合、点P1、点P2および点Oはそれぞれ同じ位置にある点として決定される。
【0075】
S704において補間方法決定部315は、第1のキーフレームにおける仮想視点の位置から点Oまでの距離D1と、第2のキーフレームにおける仮想視点の位置から点Oまでの距離D2とを算出して決定する。
【0076】
S705において補間方法決定部315は、距離D1および距離D2と第1の閾値Thとの大小関係による判定処理を行う。本実施形態では、補間方法決定部315は、距離D1と距離D2との差が閾値Th以下かを判定する。
【0077】
距離D1と距離D2との差が閾値以下と判定された場合(S705でYES)、S706において補間方法決定部315は、処理対象のキーフレーム間のカメラパラメータの補間方法を円弧補間と決定する。距離D1と距離D2との長さがほぼ同じである場合、点Oを中心とした円の円弧上の近傍にキーフレームとして指定されたカメラパラメータの仮想視点が位置することになる。この場合、操縦者は点Oにあるオブジェクトを中心とした円弧状のカメラパスを期待しているものと考えられる。よって、距離D1と距離D2との差が閾値以下の場合は、補間方法決定部315は、キーフレーム間のカメラパスが円弧状に生成されるように、補間方法を円弧補間として決定する。
【0078】
距離D1と距離D2との差が閾値Thより大きいと判定された場合(S705でNO)、S707において補間方法決定部315は、処理対象のキーフレーム間のカメラパラメータの補間方法をスプライン補間と決定する。
【0079】
判定方法は、距離D1と距離D2との差と閾値Thとを比較したがこれに限定されない。他にも、補間方法決定部315は、距離D1と距離D2との比率に応じて円弧補間かスプライン補間かを決定してもよい。この場合、例えば、距離D1と距離D2の比率が所定の値の範囲内であれば円弧補間と決定され、それ以外の場合はスプライン補間と決定される形態でもよい。また、距離D1と距離D2との差が閾値Thより小さい場合は処理対象のキーフレーム間のカメラパラメータの補間方法を円弧補間と決定し、閾値Th以上であればスプライン補間をする決定をする方法でもよい。また、補間方法決定部315は、入出力処理部311が受け付けた入力値に基づいて、補間方法を決定するための条件を更新する処理を行ってもよい。例えば、補間方法決定部315は、操縦者が入力した入力値に基づいて閾値Thを変更してもよい。
【0080】
補間方法決定部315は、補間方法管理部314を介して、決定した補間方法をROM203から取得する。補間方法決定部315は、キーフレーム間のカメラパラメータと補間方法をカメラパラメータ補間部316に出力する。
【0081】
以上説明したように本実施形態によれば、ある条件が満たされたときキーフレーム間のカメラパラメータの補間方法としてスプライン補間ではなく円弧補間が決定される。このため、ある点を中心に仮想カメラが移動するようなカメラパスを生成する場合において、操縦者は多数のキーフレームを指定することなく、円弧状のカメラパスを生成することができる。
【0082】
なお、補間方法を決定する方法は視線ベクトルから決定された点Oと仮想視点の位置との距離に基づく方法に限定されない。キーフレームとして指定されたカメラパラメータが示す仮想視点の位置および向きに基づく他の情報によって補間方法が決定されてもよい。例えば、それぞれのキーフレームにおける仮想視点の向きが、お互いを撮像するような向きであれば同じオブジェクトを中心に前後または左右から撮像していると考えられる。このため、この場合も円弧補間と決定されてもよい。すなわち、第1キーフレームの仮想視点の視界内に第2キーフレームの仮想視点の位置が含まれ、且つ、当該第2キーフレームの仮想視点の視界内に当該第1キーフレームの仮想視点の位置が含まれる場合に、補間方法が円弧補間に決定されてもよい。
【0083】
また、キーフレーム間のカメラパラメータの補間方法が、自動で決定される自動モードと、操縦者の選択によって決定される手動モードと、を有する形態であってもよい。また、このモードの切り替えは、操縦者の選択によって切り替えられる形態であってもよいし所定の条件に応じて切り替わる形態でもよい。この場合、自動モードとして設定されているときに、補間方法決定部315は図7のフローの処理に基づき補間方法を決定することになる。
【0084】
<実施形態2>
実施形態1では、キーフレームの数が2つの場合におけるキーフレーム間のカメラパラメータの補間方法を決定する処理を説明した。本実施形態では、3以上のキーフレームが操縦者により指定されている場合において、キーフレーム間の補間方法を決定する処理について説明をする。本実施形態については、実施形態1からの差分を中心に説明する。特に明記しない部分については実施形態1と同じ構成および処理である。
【0085】
図8は、図6(a)と同様に、選手806を上から見た図に、キーフレームのカメラパラメータを仮想カメラとして表した図である。図8ではキーフレームとして指定されている仮想カメラは仮想カメラ801~804の4つである。すなわち4つのキーフレームが操縦者によって指定されている。図8ではキーフレームの数を4つとして説明するがこれに限定されない。本実施形態におけるキーフレームの数は操縦者が指定する任意の数でよい。
【0086】
図8には、キーフレームである仮想カメラ801~803のそれぞれの視線を表す視線ベクトルC1~C3が表されている。視線ベクトルCNは、操縦者によって指定されたキーフレームの数NのうちN番目のキーフレームの仮想カメラの視線を示す視線ベクトルである。図8の例ではキーフレームの数Nは4であるから、CNは4番目のキーフレームである仮想カメラ804の視線ベクトルを表している。
【0087】
図9は、図5のS505におけるカメラパラメータの補間方法を決定する本実施形態における処理の内容を説明したフローチャートである。本実施形態の補間方法決定部315は、キーフレーム管理部313から取得したN個のカメラパラメータに基づき、カメラパラメータの補間方法を決定する。
【0088】
S901において補間方法決定部315は、操縦者によるコントローラの操作に応じた入力値に基づき、カメラパラメータ補間部316がカメラパラメータを補間する処理対象のキーフレームの数Nと処理対象のキーフレームのカメラパラメータとを取得する。例えば、記憶されているキーフレームの中から、操縦者が処理対象のキーフレームを複数指定した場合、その処理対象のキーフレームの数がNとして取得される。
【0089】
S902では、S901において指定された処理対象のキーフレームの中から、判定対象のキーフレームと、判定対象のキーフレームと隣り合うキーフレームと、の1組のキーフレームに対してS903~S907の処理が行われる。原則として、処理対象のキーフレームのうち、1番目のキーフレームからN-1番目までのキーフレームを判定対象のキーフレームとしてS903~S907の処理が繰り返し行われる。
【0090】
なお、判定対象のキーフレームと隣り合うキーフレームとしては、例えば、判定対象のキーフレームの仮想視点の位置が最も近い仮想視点であるキーフレーム、または仮想視点の時間のパラメータが最も近い仮想視点であるキーフレームが着目される。ただし、判定対象のキーフレームと判定対象のキーフレームから最も近いキーフレームとの処理が既に行われている場合は、処理対象のキーフレームから2番目に近いキーフレームが、隣り合うキーフレームとして着目される。
【0091】
判定対象のキーフレームの位置から最も近いキーフレームを隣り合うキーフレームとする場合、図8の例では最大で3つの組み合わせによる処理が行われる。即ち、仮想カメラ801および仮想カメラ802、仮想カメラ802および仮想カメラ803、仮想カメラ803および仮想カメラ804、の組み合わせで処理が行われる。
【0092】
S903において補間方法決定部315は、判定対象のキーフレーム(第1のキーフレーム)における仮想視点の位置および向きを示すカメラパラメータに基づき視線ベクトルCnを算出する。また、補間方法決定部315は、第1のキーフレームと隣り合うキーフレーム(第2のキーフレーム)における仮想視点の位置および向きを示すカメラパラメータに基づき視線ベクトルCn+1を算出する。次に、補間方法決定部315は、視線ベクトルCnと視線ベクトルCn+1との最短距離を算出する。最短距離の算出方法は、S701と同様である。
【0093】
S904において補間方法決定部315は、S702と同様に、S901で得られた最短距離を実現する視線ベクトルCn上の点P1と視線ベクトルCn+1上の点P2との位置を算出する。
【0094】
S905はS703と同様の処理であるため説明を省略する。
【0095】
S906において補間方法決定部315は、第1のキーフレームにおける仮想視点の位置から点Oまでの距離D1と、第2のキーフレームにおける仮想視点の位置から点Oまでの距離D2とを算出して決定する。
【0096】
S907において補間方法決定部315は、距離D1と距離D2との差が、閾値Th以下であるかを判定する。
【0097】
距離D1と距離D2との差が閾値Th以下と判定された場合(S907でYES)、S902に戻り、N番目のキーフレーム以外のキーフレームのうち、判定対象になっていないキーフレームに着目してS903~S907の処理を繰り返す。N-1個の隣り合うキーフレームの組み合わせのうち、距離D1と距離D2との差が閾値Thより大きいキーフレームの組み合わせが無かった場合、S908に進む。
【0098】
S908において補間方法決定部315は、N個のキーフレーム間の補間方法を円弧補間と決定する。
【0099】
距離D1と距離D2との差が閾値Thより大きいと判定された場合(S907でNO)、S909において補間方法決定部315は、N個のキーフレーム間のカメラパラメータの補間方法をスプライン補間と決定し処理を終了する。即ち、N-1個の隣り合うキーフレームの組み合わせのうち、距離D1と距離D2との差が閾値Thより大きいキーフレームの組み合わせが1つでもある場合、N個のキーフレーム間の補間方法は、スプライン補間と決定される。
【0100】
以上説明したように本実施形態によれば、キーフレームが3つ以上ある場合であっても、キーフレームである仮想視点の位置および向きに適した補間方法を決定することができる。即ち、キーフレームが複数ある場合は、円弧補間に比べ、スプライン補間によって生成されたカメラパラメータのカメラパスの方が操縦者の期待するカメラパスに近くなる。このため、本実施形態では、補間方法としてスプライン補間が決定される場合が多くなることから操縦者の期待するカメラパスを生成することができる。
【0101】
なお、実施形態1と同様に、補間方法として円弧補間が決定された場合、キーフレーム間のカメラパスが左回りであるか右回りであるかは、操縦者の入力によって決定されてもよい。または、円弧補間が決定された場合、仮想視点の動く方向は配置されたキーフレームの密度によって決められても良い。例えば、円弧上にキーフレームを配置した場合に、始点であるキーフレームに対してキーフレームが密に配置されている方向に仮想視点が動くように制御してもよい。
【0102】
また、補間方法として円弧補間と決定された場合、生成されるカメラパスは、キーフレームを全て通る必要はない。例えば、図9の場合において円弧補間が決定されたときは、キーフレームを示す仮想カメラ801~804の位置を通る円弧のカメラパスが生成できない。このため、きれいな円弧のカメラパスを生成するために、仮想カメラ803の位置を通らないようなカメラパスによるカメラパラメータが決定されてもよい。
【0103】
<実施形態3>
本実施形態では、複数の閾値を用いて、カメラパラメータの補間方法を決定する処理を説明する。本実施形態については、実施形態1からの差分を中心に説明する。特に明記しない部分については実施形態1と同じ構成および処理である。
【0104】
図10は、サッカーグラウンドを真上から見た平面画像に、仮想視点の位置および向きを示す仮想カメラおよびキーフレーム間のカメラパスが重畳表示されている図である。
【0105】
図10を用いて、キーフレームのカメラパラメータとして、仮想カメラ1002および仮想カメラ1003が示すカメラパラメータが指定される場合を説明する。同様に、キーフレームのカメラパラメータとして仮想カメラ1005および仮想カメラ1006が示すカメラパラメータが指定される場合を説明する。
【0106】
まず、キーフレームとして仮想カメラ1002および仮想カメラ1003が示すカメラパラメータを指定する場合を考える。仮想カメラ1002および仮想カメラ1003をキーフレームとする仮想視点画像の撮像シーンはシュートシーンを選手の間近から撮像するシーンであるから、前述のとおり円弧状のカメラパス1009が期待される。このため仮想カメラ1002および仮想カメラ1003間のカメラパラメータの補間方法は円弧補間によって補間されるのが好ましい。
【0107】
一方、キーフレームとして仮想カメラ1005および仮想カメラ1006が示すカメラパラメータを指定した場合を考える。この場合はゴールシーンを含む全体を撮像するシーンであるから仮想カメラ1005および仮想カメラ1006間は直線的なカメラパス1008であることが期待される。よって、図10に示すように仮想カメラ1005および仮想カメラ1006間のカメラパラメータの補間方法はスプライン補間によって補間されるのが好ましい。
【0108】
しかし、仮想カメラ1006の位置は仮想カメラ1005の位置からフィールドのゴールラインとほぼ平行に移動した位置にある。また仮想カメラ1005および仮想カメラ1006はフィールドのゴールに注目して撮像する向きをしている。よって実施形態1の方法によって、仮想カメラ1005の位置と点Oとの距離D1と、仮想カメラ1006の位置と点Oとの距離D2と、を決定すると距離D1と距離D2とはほぼ同じ長さになる。このため距離D1と距離D2との差は閾値より大きくならないことがあるため仮想カメラ1005および仮想カメラ1006の間のカメラパラメータの補間方法は、円弧補間と決定される虞がある。このため、本実施形態では、第2の閾値を設け、円弧補間として決定される場合の制限を設ける形態である。
【0109】
図11は、図5のS505におけるカメラパラメータの補間方法を決定する本実施形態における処理の内容を説明したフローチャートである。
【0110】
本フローチャート説明においては、2つのキーフレームを対象としたカメラパラメータの補間方法を決定するものとして説明する。S1101~S1104は、S701~S704の処理と同一であるため説明を省略する。
【0111】
S1105において補間方法決定部315は、第2の閾値Th2を取得し、距離D1および距離D2と第2の閾値Th2との大小関係による判定処理を行う。本実施形態では、補間方法決定部315は、距離D1と距離D2との何れもが第2の閾値Th2以下であるか判定する。また、本実施形態では、サッカーグラウンドのピッチ幅Wを第2の閾値Th2として用いるものとして説明する。ROM203にはサッカーグラウンドを計測して得られたサッカーグラウンドのピッチを幅Wが予め記憶されている。補間方法決定部315は、ROM203からピッチ幅Wを第2の閾値Th2として取得する。
【0112】
距離D1と距離D2との少なくとも一方が第2の閾値Th2より大きいと判定した場合(S1105でNO)、S1108に進み補間方法決定部315は、補間方法としてスプライン補間を決定する。本実施形態では、第2の閾値を用いて判定することにより、例えば、いずれかのキーフレームにおける仮想視点の位置がオブジェクトから所定の距離より大きく離れている場合、円弧補間として決定されないようにすることができる。
【0113】
距離D1と距離D2との何れもが第2の閾値Th2以下と判定した場合(S1105でYES)、S1106に進む。S1106~S1108の処理はS705~S707と同一の処理である。すなわち、距離D1と距離D2との差が第1の閾値Th以下であれば円弧補間を決定し、第1の閾値Thより大きければスプライン補間を決定する。
【0114】
以上説明したように、本実施形態によれば、実施形態1では円弧補間と決定される場合であっても、第2の閾値を用いて判定することにより、スプライン補間が好ましい撮像シーンにおいてはスプライン補間と決定することができる。
【0115】
なお、第2の閾値Th2は、ピッチ幅に限定されるものではない。他にも例えば、仮想視点画像が陸上競技場における陸上競技を撮像した画像あれば、直走路の長さを第2の閾値Th2として用いてもよい。また、第2の閾値は、操縦者の入力値でもよい。第2の閾値は、1つでも複数でもよい。
【0116】
他にも、例えば、上述のS1105判定に替えて、または上述のS1105の処理に追加して以下のような判定方法を用いてもよい。
【0117】
点P1から点Oまでの距離と点P2から点Oまでの距離とをそれぞれ算出し、それぞれの距離を所定の閾値と比較し、どちらかの距離が所定の閾値以上であれば、S1106の判定結果によらずにスプライン補間と決定されてもよい。点P1から点Oまでの距離と、点P2から点Oまでの距離との何れかが一定以上の長さ以上であれば、キーフレーム間で仮想視点の向きが大きく変化していると考えられる。このため、円弧補間よりスプライン補間した方がオブジェクトに仮想視点が追従できる場合があるためである。
【0118】
他にも、点P1、点P2、または点Oのいずれかがグラウンドの内側か外側か判定され、外側であればS1106の判定結果によらずにスプライン補間と決定される方法でもよい。円弧補間の場合、点P1、点P2、または点Oのいずれかの点の近傍を中心とする円弧のカメラパスが生成される。グラウンドの外側の位置にある点を中心に仮想視点を円弧状に移動させることは稀であることから、点P1、点P2、または点Oのいずれかがグラウンドの外側であればスプライン補間によってカメラパラメータが補間されるのが好ましいためである。
【0119】
他にも、点P1と点P2との何れかが、他方の仮想視点の視線の方向の逆側(他方の仮想カメラの後ろ側)にあるときは、S1106の判定結果によらず補間方法決定部315がスプライン補間とする決定する方法でもよい。
【0120】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0121】
20 情報処理装置
315 補間方法決定部
316 カメラパラメータ補間部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11