JP7277184B2 - Information processing device, information processing method and program. - Google Patents

Information processing device, information processing method and program. Download PDF

Info

Publication number
JP7277184B2
JP7277184B2 JP2019038764A JP2019038764A JP7277184B2 JP 7277184 B2 JP7277184 B2 JP 7277184B2 JP 2019038764 A JP2019038764 A JP 2019038764A JP 2019038764 A JP2019038764 A JP 2019038764A JP 7277184 B2 JP7277184 B2 JP 7277184B2
Authority
JP
Japan
Prior art keywords
change
key frame
information processing
state
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019038764A
Other languages
Japanese (ja)
Other versions
JP2020144456A (en
Inventor
道雄 相澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019038764A priority Critical patent/JP7277184B2/en
Priority to US16/784,731 priority patent/US11057609B2/en
Publication of JP2020144456A publication Critical patent/JP2020144456A/en
Application granted granted Critical
Publication of JP7277184B2 publication Critical patent/JP7277184B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明は、仮想視点画像に係る仮想視点を設定する技術に関する。 The present invention relates to technology for setting a virtual viewpoint for a virtual viewpoint image.

近年、複数台の実カメラを異なる位置に設置して多視点で同期撮影し、当該同期撮影により得られた複数視点画像を用いて、任意の視点から観察される仮想視点画像を生成する技術が注目されている。仮想視点画像を用いたサービスでは、例えば、サッカーやラグビーの試合を撮影した映像から、映像制作者によって迫力のあるコンテンツを制作できる。また、コンテンツを視聴しているユーザ自身が自由に視点を移動しながら、試合観戦したりすることができるようにもなる。従って、仮想視点画像を用いたサービスによれば、一般的な撮影画像と比較してユーザに高臨場感を与えることができる。 In recent years, there has been a technology in which a plurality of real cameras are installed at different positions and synchronously photographed from multiple viewpoints, and a virtual viewpoint image observed from an arbitrary viewpoint is generated using the multi-viewpoint images obtained by the synchronous photography. Attention has been paid. With services using virtual viewpoint images, for example, video creators can create powerful content from video footage of soccer or rugby matches. In addition, the user viewing the content can watch the game while freely moving his/her viewpoint. Therefore, according to the service using the virtual viewpoint image, it is possible to give the user a high sense of realism as compared with a general photographed image.

特許文献1では、3次元コンピュータグラフィックスによるアニメーションを表示するための方法として、キーフレーム法を用いることが記載されている。キーフレーム法においては、キーとなる表示状態を指定するキーフレームとキーフレームの間の中間フレームがスプライン関数により自動的に補間される。 Patent Literature 1 describes using a keyframe method as a method for displaying animation by three-dimensional computer graphics. In the keyframe method, the intermediate frames between the keyframes specifying the key display state are automatically interpolated by the spline function.

特開2007-025979号公報JP 2007-025979 A

仮想視点画像に係る仮想視点の動きを表すカメラパスの設定において、ユーザはキーフレームの時刻と視点を指定することで、容易にカメラパスを設定できる。例えば、カメラパスにおける視点の移動速度は、指定された複数のキーフレーム間の時間間隔と視点の移動量に応じて決定される。しかしながら、ユーザが指定した複数のキーフレームの関係によっては、視点の移動速度がキーフレームの前後で大きく異なってしまい、カメラパスに従って得られる仮想視点画像が不自然になる。 In setting the camera path representing the movement of the virtual viewpoint related to the virtual viewpoint image, the user can easily set the camera path by specifying the time and viewpoint of the key frame. For example, the speed of movement of the viewpoint in the camera path is determined according to the time interval between designated key frames and the amount of movement of the viewpoint. However, depending on the relationship between a plurality of keyframes designated by the user, the moving speed of the viewpoint may differ significantly before and after the keyframe, and the virtual viewpoint image obtained according to the camera path may become unnatural.

本発明は、違和感の少ない仮想視点画像を生成するための仮想視点の動きを容易に設定することを可能にする技術を提供する。 SUMMARY OF THE INVENTION The present invention provides a technique that enables easy setting of the movement of a virtual viewpoint for generating a virtual viewpoint image with little discomfort.

本発明の一態様による情報処理装置は以下の構成を備える。すなわち、
仮想視点の動きを定義するカメラパスを編集する情報処理装置であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定手段と、
前記指定手段により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得手段と、
前記指定されたキーフレームの前後において前記取得手段により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更手段と、を備える。
An information processing apparatus according to one aspect of the present invention has the following configuration. i.e.
An information processing device that edits a camera path that defines the movement of a virtual viewpoint,
designation means for receiving designation of a key frame at an arbitrary time and designation of a state of a virtual viewpoint corresponding to the designated key frame for configuring the camera path;
acquisition means for acquiring an amount of change in the state of the virtual viewpoint before and after the key frame specified by the specifying means;
changing means for changing the position of the specified keyframe in the sequence of frames forming the camera path so that the difference between the amount of change acquired by the acquiring means before and after the specified keyframe becomes small; Prepare.

本発明によれば、違和感の少ない仮想視点画像を生成するための仮想視点の動きを容易に設定することが可能になる。 According to the present invention, it is possible to easily set the movement of a virtual viewpoint for generating a virtual viewpoint image that does not give a sense of discomfort.

撮影システムの構成および情報処理装置のハードウェア構成例を示すブロック図。FIG. 2 is a block diagram showing a configuration of an imaging system and a hardware configuration example of an information processing apparatus; 情報処理装置の機能構成例を示すブロック図。FIG. 2 is a block diagram showing a functional configuration example of an information processing apparatus; 撮影システムにおける実カメラの配置および仮想カメラの設定を説明する図。FIG. 4 is a diagram for explaining the arrangement of real cameras and the setting of virtual cameras in an imaging system; カメラパス編集のためのユーザインターフェースを説明する図。FIG. 4 is a diagram for explaining a user interface for camera path editing; カメラパス編集におけるユーザインターフェースの表示例を説明する図。FIG. 10 is a diagram for explaining a display example of a user interface in camera path editing; カメラパスの編集処理を説明するフローチャート。4 is a flowchart for explaining camera path editing processing. 時刻変更モードによるカメラパスの編集処理を説明するフローチャート。5 is a flowchart for explaining camera path editing processing in a time change mode; キーフレームの時刻の変更によるカメラパスの編集例を説明する図。FIG. 11 is a diagram for explaining an example of editing a camera path by changing the times of keyframes; フレーム数変更モードによるカメラパスの編集処理を説明するフローチャート。6 is a flowchart for explaining camera path editing processing in a frame number change mode; フレーム数の変更によるカメラパスの編集例を説明する図。4A and 4B are diagrams for explaining an example of camera path editing by changing the number of frames; FIG. 仮想カメラの状態の変化量の算出を説明する図。4A and 4B are diagrams for explaining calculation of the amount of change in the state of a virtual camera; FIG.

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In addition, the following embodiments do not limit the invention according to the scope of claims. Although multiple features are described in the embodiments, not all of these multiple features are essential to the invention, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and redundant description is omitted.

図1は、実施形態にかかる撮影システムの構成例を示す図である。撮影システムは、情報処理装置100、サーバ装置120、複数の実カメラ301、UI部400を有する。サーバ装置120は、複数の実カメラ301および情報処理装置100と接続され、複数の実カメラ301の同期撮影により得られた撮影画像を収集、格納し、撮影画像を情報処理装置100に提供する。また、図1は、情報処理装置のハードウェア構成例を示す。情報処理装置100において、CPU101は、RAM102やROM103に格納されているコンピュータプログラムやデータを用いて情報処理装置100の全体を制御する。なお、情報処理装置100がCPU101とは異なる専用の1又は複数のハードウェアやGPU(Graphics Processing Unit)を有し、CPU101による処理の少なくとも一部をGPUや専用のハードウェアが行ってもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、およびDSP(デジタルシグナルプロセッサ)などがある。 FIG. 1 is a diagram illustrating a configuration example of an imaging system according to an embodiment; The imaging system has an information processing device 100 , a server device 120 , a plurality of real cameras 301 and a UI section 400 . The server device 120 is connected to the plurality of real cameras 301 and the information processing device 100 , collects and stores captured images obtained by synchronous photography of the plurality of real cameras 301 , and provides the captured images to the information processing device 100 . Further, FIG. 1 shows a hardware configuration example of the information processing apparatus. In information processing apparatus 100 , CPU 101 controls the entire information processing apparatus 100 using computer programs and data stored in RAM 102 and ROM 103 . Note that the information processing apparatus 100 may include one or more pieces of dedicated hardware or a GPU (Graphics Processing Unit) different from the CPU 101, and at least part of the processing by the CPU 101 may be performed by the GPU or dedicated hardware. Examples of dedicated hardware include ASICs (Application Specific Integrated Circuits) and DSPs (Digital Signal Processors).

RAM102は、ROM103から読みだされたコンピュータプログラムやデータ、入出力部104を介して外部から供給されるデータなどを一時的に記憶する。ROM103は、変更を必要としないコンピュータプログラムやデータを保持する。入出力部104は、カメラパスを編集するためのコントローラ、グラフィカルユーザインタフェース(以下、GUI)を表示するディスプレイなどとデータの入出力を行う。本実施形態では、入出力部104は、サーバ装置120およびUI部400と接続されている。 The RAM 102 temporarily stores computer programs and data read from the ROM 103, data externally supplied via the input/output unit 104, and the like. ROM 103 holds computer programs and data that do not require modification. The input/output unit 104 inputs and outputs data to and from a controller for editing camera paths, a display for displaying a graphical user interface (hereinafter referred to as GUI), and the like. In this embodiment, the input/output unit 104 is connected to the server device 120 and the UI unit 400 .

図2は、実施形態にかかる情報処理装置100により実現される機能構成例を説明するブロック図である。上述したように、各機能部はCPU101が所定のコンピュータプログラムを実行することにより実現されてもよいし、少なくとも一部が専用のハードウェアにより実現されてもよい。 FIG. 2 is a block diagram illustrating a functional configuration example implemented by the information processing apparatus 100 according to the embodiment. As described above, each functional unit may be realized by the CPU 101 executing a predetermined computer program, or at least a part thereof may be realized by dedicated hardware.

画像生成部201は、多視点から同期撮影した複数枚の画像をもとに、仮想カメラの視点から見た仮想視点画像を生成する。仮想カメラとは、撮影空間内を自由に動ける仮想的なカメラである。実カメラの配置と仮想カメラの例を図3に示す。撮影空間を囲むように複数台の実カメラ301が配置される。これら複数台の実カメラ301は同期撮影するように設定されている。仮想カメラ302は、どの実カメラ301とも異なる任意の視点(仮想視点)を表す。なお、画像生成部201はサーバ装置120に設けられてもよい。 The image generation unit 201 generates a virtual viewpoint image seen from the viewpoint of the virtual camera based on a plurality of images captured synchronously from multiple viewpoints. A virtual camera is a virtual camera that can move freely within a shooting space. FIG. 3 shows the arrangement of real cameras and an example of virtual cameras. A plurality of real cameras 301 are arranged so as to surround the shooting space. These multiple real cameras 301 are set to perform synchronous photography. A virtual camera 302 represents an arbitrary viewpoint (virtual viewpoint) different from any real camera 301 . Note that the image generator 201 may be provided in the server device 120 .

次に、画像生成部201が仮想視点画像を生成する方法の一例を説明する。以降、本実施形態では、選手やボールなどのような位置が変化する被写体を前景と呼ぶ。また、フィールド(芝生)などのような前景以外の被写体を背景と呼ぶ。まず、画像生成部201は、複数の実カメラ301が撮影した複数枚の撮影画像を前景と背景に分離する。画像生成部201は、分離した複数の前景から、選手やボールなどの前景の3次元形状(以下、3D形状)と位置を計算する。次に、画像生成部201は、計算した前景の3D形状と位置を用いて、仮想カメラ302の視点からの前景を再構成する。次に、画像生成部201は、分離した複数の背景から、仮想カメラ302の視点に対応する背景を生成する。なお、背景の3D形状を用いて仮想カメラ302の視点に対応した背景を生成するようにしてもよい。画像生成部201は、再構成した前景を生成した背景に合成して仮想視点画像を生成する。 Next, an example of a method for the image generation unit 201 to generate a virtual viewpoint image will be described. Hereinafter, in this embodiment, a subject whose position changes, such as a player or a ball, will be referred to as the foreground. A subject other than the foreground, such as a field (lawn), is called a background. First, the image generator 201 separates a plurality of captured images captured by a plurality of real cameras 301 into a foreground and a background. The image generation unit 201 calculates the three-dimensional shape (hereinafter referred to as 3D shape) and the position of the foreground such as a player and a ball from a plurality of separated foregrounds. Next, the image generator 201 reconstructs the foreground from the viewpoint of the virtual camera 302 using the calculated 3D shape and position of the foreground. Next, the image generator 201 generates a background corresponding to the viewpoint of the virtual camera 302 from the separated backgrounds. Note that a background corresponding to the viewpoint of the virtual camera 302 may be generated using the 3D shape of the background. The image generation unit 201 combines the reconstructed foreground with the generated background to generate a virtual viewpoint image.

なお、情報処理装置100をコンピュータグラフィックス画像(CG画像)のカメラパスを編集するために使用することも可能である。その場合、画像生成部201の代わりにCGレンダラーが用いられ、仮想視点としての仮想カメラ302はCG画像の視点を表し、CG空間内の任意の位置に移動できる。 Note that the information processing apparatus 100 can also be used to edit camera paths of computer graphics images (CG images). In that case, a CG renderer is used instead of the image generator 201, and a virtual camera 302 as a virtual viewpoint represents the viewpoint of the CG image and can move to any position in the CG space.

カメラパス編集部202は、ユーザの操作に応じて、仮想視点の動きを定義するカメラパスを編集する。すなわち、カメラパスは、複数枚の仮想視点画像やCG画像を順に再生することで作成される動画において、仮想カメラ302の動きを定義する。カメラパスはフレームとタイムラインで管理される。フレームは、動画を構成する各画像の生成に必要な情報、より具体的には、例えばシーンの時刻と仮想カメラの位置・姿勢の情報を保持する。シーンの時刻は、例えば、撮影対象の試合が開始された時刻を00時00分00秒00フレームとしたタイムコードで表す。仮想カメラの位置は、例えば、撮影空間内に原点を設定し、X、Y、Zの3つの座標で表す。仮想カメラの姿勢は、例えば、パン、チルト、ロールの3つの角度で表す。タイムラインに含まれるフレームの枚数は、1秒当たりに再生する画像の枚数(フレームレート)によって決まる。例えば、フレームレートが60フレーム/秒の場合、1秒当たり60枚のフレームが、タイムラインに含まれる。なお、カメラパスが表す仮想視点(仮想カメラ)の状態としてズーム(画角)が含まれてもよい。 A camera path editing unit 202 edits a camera path that defines the movement of the virtual viewpoint according to user's operation. In other words, the camera path defines the movement of the virtual camera 302 in a moving image created by sequentially reproducing a plurality of virtual viewpoint images and CG images. Camera paths are managed by frames and timelines. A frame holds information necessary for generating each image that constitutes a moving image, more specifically, information such as the time of a scene and the position/orientation of a virtual camera. The time of the scene is represented by a time code, for example, with the time at which the game to be photographed started at 00:00:00:00 frame. The position of the virtual camera is represented by three coordinates of X, Y, and Z, for example, by setting the origin in the shooting space. The posture of the virtual camera is represented by three angles of pan, tilt, and roll, for example. The number of frames included in the timeline is determined by the number of images reproduced per second (frame rate). For example, if the frame rate is 60 frames/second, 60 frames per second are included in the timeline. Zoom (angle of view) may be included as the state of the virtual viewpoint (virtual camera) represented by the camera path.

キーフレームを用いたカメラパス編集において、フレームはキーフレームと中間フレームの2種類に分かれる。キーフレームは、カメラパスを編集するユーザが明示的に情報を指定するフレームである。一方、中間フレームは、キーフレームとキーフレームとの間のフレームである。カメラパス編集部202は、キーフレームに指定されている仮想カメラの位置・姿勢を用いて、キーフレーム間における仮想カメラの位置・姿勢を補間により算出し、各フレームの情報を決定する。さらに、キーフレームは、始点、終点、中点の3種類に分かれる。カメラパスは、1枚のキーフレーム(始点)と1枚のキーフレーム(終点)、0枚以上のキーフレーム(中点)を含む。本実施形態の情報処理装置100は、特にキーフレーム(中点)を1枚以上含むカメラパス、つまり3枚以上のキーフレームを含むカメラパスを対象とする。また、始点のキーフレームと終点のキーフレームとの間が編集対象のカメラパスである。 In camera path editing using keyframes, frames are divided into two types: keyframes and intermediate frames. Keyframes are frames where information is explicitly specified by the user editing the camera path. Intermediate frames, on the other hand, are frames between key frames. The camera path editing unit 202 calculates the position/orientation of the virtual camera between key frames by interpolation using the position/orientation of the virtual camera specified in the keyframes, and determines the information of each frame. Further, keyframes are divided into three types: start point, end point, and middle point. A camera path includes one key frame (start point), one key frame (end point), and zero or more key frames (middle point). The information processing apparatus 100 of the present embodiment particularly targets a camera path including one or more key frames (midpoints), that is, a camera path including three or more key frames. The camera path to be edited is between the start point keyframe and the end point keyframe.

カメラパスを編集するためのユーザインターフェース(以下、UI)の例(UI部400)を図4に示す。画像表示部401は、画像生成部201が生成した仮想視点画像、つまり、仮想カメラ302から見た画像を表示する。GUI表示部402は、カメラパスやキーフレームに関する情報などを表示する。編集コントローラ403は、カメラパスを編集するためにユーザが使用するコントローラである。 FIG. 4 shows an example of a user interface (hereinafter referred to as UI) (UI unit 400) for editing camera paths. The image display unit 401 displays the virtual viewpoint image generated by the image generation unit 201 , that is, the image viewed from the virtual camera 302 . A GUI display unit 402 displays information about camera paths and key frames. Edit controller 403 is the controller used by the user to edit the camera path.

GUI表示部402の表示例を図5に示す。タイムライン501は、各フレームを一本の時間軸上に表示する。すなわち、タイムライン501は、仮想視点画像またはコンピュータグラフィックス画像のフレーム列と、そのフレーム列におけるキーフレームの位置とを模式的に表示するものである。図5では、キーフレーム502、キーフレーム503、キーフレーム504の3枚のキーフレームが示されている。キーフレーム502はカメラパス505の始点に対応するキーフレームである。キーフレーム503はカメラパス505の終点に対応するキーフレームである。キーフレーム504は中点のキーフレームである。一方、カメラパス505は、各フレームに対応する仮想カメラの位置・姿勢の動きを表したものである。506はキーフレーム502に対応する仮想カメラの位置・姿勢を含む状態を示す。507はキーフレーム503に対応する仮想カメラの位置・姿勢を含む状態を示す。508はキーフレーム504に対応する仮想カメラの位置・姿勢を含む状態を示す。また、モード表示部509は、実行中のカメラパス変更モードを示す。本実施形態では、カメラパス変更モードとして、時刻変更モードとフレーム数変更モードが用いられるが、これらのモードについては後述する。 A display example of the GUI display unit 402 is shown in FIG. A timeline 501 displays each frame on a single time axis. That is, the timeline 501 schematically displays a sequence of frames of virtual viewpoint images or computer graphics images and positions of key frames in the sequence of frames. In FIG. 5, three key frames of key frame 502, key frame 503, and key frame 504 are shown. A keyframe 502 is a keyframe corresponding to the starting point of the camera path 505 . A keyframe 503 is a keyframe corresponding to the end point of the camera path 505 . Keyframe 504 is the midpoint keyframe. On the other hand, a camera path 505 represents the movement of the position/orientation of the virtual camera corresponding to each frame. A state 506 includes the position and orientation of the virtual camera corresponding to the key frame 502 . A state 507 includes the position and orientation of the virtual camera corresponding to the key frame 503 . A state 508 includes the position and orientation of the virtual camera corresponding to the key frame 504 . A mode display section 509 indicates the camera path change mode being executed. In this embodiment, a time change mode and a frame number change mode are used as camera path change modes, and these modes will be described later.

なお、カメラパス編集部202は、ユーザの編集対象となっているフレームの情報を画像生成部201へ送信する。画像生成部201は受信したフレームの情報をもとに仮想視点画像を生成し、生成した仮想視点画像を、画像表示部401に表示させる。これにより、ユーザは、編集対象のフレームの仮想カメラから見た画像を確認しながら、カメラパスを編集することが可能である。 Note that the camera path editing unit 202 transmits to the image generating unit 201 the information of the frame that is being edited by the user. The image generation unit 201 generates a virtual viewpoint image based on the received frame information, and causes the image display unit 401 to display the generated virtual viewpoint image. This allows the user to edit the camera path while checking the image of the frame to be edited viewed from the virtual camera.

キーフレーム追加部203は、タイムライン501上で、ユーザが指定した時刻にキーフレームを追加する。ユーザは、編集コントローラ403を用いて、時刻を操作(進める、戻す)し、所望の時刻を指定する。ユーザが時刻を操作すると、対応する時刻の仮想視点画像が画像表示部401に表示される。ユーザは、画像表示部401に表示される仮想視点画像を見ながら操作することで、選手がパスしたなど、所望のシーンの時刻を、容易に指定することができる。ユーザが追加したキーフレーム502、503,504は、図5に示されるようにタイムライン501上に表示される。なお、ユーザは、マウスなどのポインティングデバイスを用いて、タイムライン501上の所望の位置を指定することで、その位置にキーフレームを追加することもできる。 The keyframe adding unit 203 adds a keyframe to the time specified by the user on the timeline 501 . The user uses the edit controller 403 to operate (advance or return) the time to designate a desired time. When the user operates the time, the virtual viewpoint image at the corresponding time is displayed on the image display unit 401 . The user can easily specify the time of a desired scene, such as when a player passes, by performing operations while viewing the virtual viewpoint image displayed on the image display unit 401 . The keyframes 502, 503, 504 added by the user are displayed on the timeline 501 as shown in FIG. By specifying a desired position on the timeline 501 using a pointing device such as a mouse, the user can also add a keyframe to that position.

位置・姿勢指定部204は、ユーザの操作に応じて、キーフレームの仮想カメラの状態(位置・姿勢)を指定する。ユーザは、編集コントローラ403を用いて、仮想カメラを前後、左右、上下へ移動し、所望の位置を指定する。また、編集コントローラ403を用いて、仮想カメラをパン、チルト、ロール方向へ回転し、所望の姿勢を指定する。ユーザが仮想カメラの位置・姿勢を操作すると、対応する位置・姿勢の仮想視点画像が画像表示部401に表示される。ユーザは、画像表示部401を見ながら操作することで、所望の仮想カメラの位置・姿勢を、容易に指定することができる。ユーザが指定したキーフレームに対応する仮想カメラの位置・姿勢は、状態506、507、508のように表示される。なお、仮想カメラの状態506はキーフレーム502における仮想カメラの位置・姿勢である。同様に、状態508はキーフレーム504における仮想カメラの位置・姿勢であり、状態507はキーフレーム503における仮想カメラの位置・姿勢である。 A position/orientation designation unit 204 designates the state (position/orientation) of the virtual camera of the key frame according to the user's operation. The user uses the edit controller 403 to move the virtual camera back and forth, left and right, and up and down to designate a desired position. Also, using the edit controller 403, the virtual camera is rotated in the pan, tilt, and roll directions to designate a desired posture. When the user operates the position/orientation of the virtual camera, a virtual viewpoint image of the corresponding position/orientation is displayed on the image display unit 401 . The user can easily specify the desired position and orientation of the virtual camera by performing operations while viewing the image display unit 401 . The positions and orientations of the virtual camera corresponding to the keyframes specified by the user are displayed as states 506 , 507 , and 508 . The virtual camera state 506 is the position/orientation of the virtual camera in the key frame 502 . Similarly, the state 508 is the position/orientation of the virtual camera in the keyframe 504 , and the state 507 is the position/orientation of the virtual camera in the keyframe 503 .

位置・姿勢補間部205は、キーフレーム間のカメラの位置・姿勢を補間する。まず、始点のキーフレームと終点のキーフレームの間を、中間のキーフレームにより分割する。図5の例では、2つの区間に分割される。1つ目の区間は、始点のキーフレーム502と中間のキーフレーム504の間である。2つ目の区間は、中間のキーフレーム504と終点のキーフレーム503の間である。分割されたそれぞれの区間について、カメラの位置・姿勢を曲線で補間する。カメラの位置を補間する方法としては、例えば、線形補間、ベジェ補間などを使用する。また、カメラの姿勢を補間する方法としては、例えば、線形補間、球面線形補間などを使用する。補間された曲線が、カメラパス505である。 A position/posture interpolation unit 205 interpolates the position/posture of the camera between key frames. First, the area between the start point keyframe and the end point keyframe is divided by an intermediate keyframe. In the example of FIG. 5, it is divided into two sections. The first interval is between the starting keyframe 502 and the middle keyframe 504 . The second section is between the middle keyframe 504 and the end keyframe 503 . For each divided section, the position and orientation of the camera are interpolated with curves. As a method of interpolating the camera position, for example, linear interpolation, Bezier interpolation, or the like is used. As a method for interpolating the orientation of the camera, for example, linear interpolation, spherical linear interpolation, or the like is used. The interpolated curve is camera path 505 .

変化量計算部206は、指定されたキーフレーム(追加されたキーフレーム)の前後における仮想視点(仮想カメラ)の状態の変化量を計算し、取得する。本実施形態では、変化量計算部206は、キーフレーム間のカメラの位置・姿勢の変化量を計算する。カメラの位置の変化量は、キーフレーム間を補間した曲線/直線の長さである。曲線/直線の長さは、例えば、曲線/直線を表す関数を積分することで計算できる。カメラの姿勢の変化量は、パン、チルト、ロール角の変化量である。パン、チルト、ロール角の変化量は、隣接するキーフレームにおけるパン、チルト、ロール角のそれぞれの差分として計算できる。また、キーフレーム間におけるパン、チルト、ロール角の変化量の平均を、カメラの姿勢の変化量としてもよい。また、本実施形態では、位置と姿勢の変化量を合成して(例えば、線形和による合成)状態の変化量とする。 The change amount calculation unit 206 calculates and acquires the amount of change in the state of the virtual viewpoint (virtual camera) before and after the specified keyframe (added keyframe). In this embodiment, the change amount calculation unit 206 calculates the amount of change in the position/orientation of the camera between key frames. The amount of change in camera position is the length of the curve/straight line interpolated between keyframes. The length of the curve/straight line can be calculated, for example, by integrating the function representing the curve/straight line. The amount of change in camera posture is the amount of change in pan, tilt, and roll angles. The amount of change in pan, tilt, and roll angles can be calculated as the difference between the pan, tilt, and roll angles in adjacent keyframes. Alternatively, the average amount of change in the pan, tilt, and roll angles between key frames may be used as the amount of change in the orientation of the camera. In addition, in the present embodiment, the amount of change in the position and the orientation is synthesized (for example, synthesized by linear summation) to obtain the amount of change in the state.

変更モード管理部207は、カメラパスを変更するモードを管理する。カメラパス変更モードの1つは、キーフレームの時刻を変更する時刻変更モードである。また、別の1つのモードは、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードである。ユーザは、編集コントローラ403を用いて、時刻変更モードとフレーム数変更モードのうちの所望のモードに切り替えることができる。いずれのモードも、指定されたキーフレームの前後について変化量計算部206により取得された変化量の差が小さくなるように、仮想視点画像またはCG画像のフレーム列における、指定されたキーフレームの位置が変更される。時刻変更部208は時刻変更モードにおいて動作し、追加されたキーフレームの前後の仮想視点の変化量が小さくなるように当該追加されたキーフレームの時刻を変更する。フレーム数変更部209は、フレーム数変更モードにおいて動作し、追加されたキーフレームの前後の仮想視点の変化量が小さくなるように当該追加されたキーフレームとこれに隣接するキーフレームとの間の中間フレームの数を変更する。以下、時刻変更部208とフレーム数変更部209の動作について説明する。 A change mode management unit 207 manages a mode for changing the camera path. One of the camera path change modes is a time change mode that changes the time of keyframes. Another mode is a frame number change mode that changes the number of intermediate frames inserted between key frames. The user can use the edit controller 403 to switch between the time change mode and the frame number change mode as desired. In either mode, the position of the designated key frame in the frame sequence of the virtual viewpoint image or the CG image is adjusted so that the difference in the amount of change acquired by the change amount calculation unit 206 before and after the designated key frame is small. is changed. The time change unit 208 operates in the time change mode, and changes the time of the added keyframe so that the amount of change in the virtual viewpoint before and after the added keyframe becomes small. The frame number change unit 209 operates in a frame number change mode, and adjusts the amount of change between the added keyframe and its adjacent keyframes so that the amount of change in the virtual viewpoint before and after the added keyframe is small. Change the number of intermediate frames. The operations of the time changing unit 208 and the frame number changing unit 209 will be described below.

[時刻変更モード]
時刻変更部208は、キーフレーム間の仮想視点の状態の変化量(例えば、位置・姿勢の変化量)に応じて、追加されたキーフレームの前後で変化量の差が小さくなるように、当該キーフレームの時刻を変更する。より具体的には、時刻変更部208は、例えば、中間点のキーフレームの前後で、カメラの位置・姿勢の時間当たりの変化量が等しくなるように、当該中間点のキーフレームの時刻を変更する。なお、時刻変更部208は、キーフレームの時刻を変更する時刻変更モードの場合に動作する。
[Time change mode]
The time changing unit 208 adjusts the amount of change in the state of the virtual viewpoint between the keyframes (for example, the amount of change in the position/orientation) so that the difference in the amount of change before and after the added keyframe becomes small. Change the times of keyframes. More specifically, the time changing unit 208 changes the time of the keyframe at the intermediate point so that, for example, before and after the keyframe at the intermediate point, the amount of change per hour in the position/orientation of the camera becomes equal. do. Note that the time change unit 208 operates in the time change mode for changing the time of the keyframe.

以下、図11(a)の例を用いて時刻変更モードにおける中間点のキーフレームの時刻変更方法について説明する。図11(a)は、仮想視点の状態の変化量の算出を説明する図である。図11(a)において、キーフレーム502とキーフレーム504の間の仮想視点の状態(仮想カメラの位置・姿勢)の変化量をL1とする。つまり、L1は仮想カメラの状態506から状態508への変化量である。また、キーフレーム504とキーフレーム503の間の仮想視点の状態(仮想カメラの位置・姿勢)の変化量をL2とする。つまり、L2は仮想カメラの状態508から状態507への変化量である。また、キーフレーム502の時刻をT1、キーフレーム503の時刻をT2、キーフレーム504の変更後の時刻をT3aとする。 Hereinafter, a method of changing the time of the keyframe at the intermediate point in the time change mode will be described using the example of FIG. 11(a). FIG. 11A is a diagram illustrating calculation of the amount of change in the state of the virtual viewpoint. In FIG. 11A, the amount of change in the state of the virtual viewpoint (the position and orientation of the virtual camera) between the keyframes 502 and 504 is L1. That is, L1 is the amount of change from state 506 to state 508 of the virtual camera. Let L2 be the amount of change in the state of the virtual viewpoint (the position and orientation of the virtual camera) between the key frames 504 and 503 . That is, L2 is the amount of change from state 508 to state 507 of the virtual camera. Also, the time of the key frame 502 is T1, the time of the key frame 503 is T2, and the changed time of the key frame 504 is T3a.

キーフレーム504の前において、仮想カメラの位置・姿勢の時間当たりの変化量ΔL1はL1/(T3a-T1)となる。キーフレーム504の後で、仮想カメラの位置・姿勢の時間当たりの変化量ΔL2はL2/(T2-T3a)となる。よって、キーフレーム504の前後で仮想カメラの位置・姿勢の時間当たりの変化量ΔL1とΔL2を等しくするためには、L1/(T3a-T1)=L2/(T2-T3a)を満足するようにキーフレーム504の時刻T3aが設定されればよい。したがって、キーフレーム504の時刻T3a=(L1×T2+L2×T1)/(L1+L2)となる。キーフレーム504の時刻が変更されると、キーフレーム504がタイムライン501上で移動することになる。なお、キーフレーム504における仮想カメラの状態508(位置・姿勢)は変化しない。なお、ΔL1とΔL2とは必ずしも一致しなくてよく、キーフレーム504の時刻を変更する前におけるΔL1とΔL2との差よりも変更後のΔL1とΔL2との差が小さくなっていればよい。 Before the key frame 504, the change amount ΔL1 of the virtual camera position/orientation per time is L1/(T3a-T1). After the key frame 504, the change amount ΔL2 of the virtual camera position/orientation per time is L2/(T2−T3a). Therefore, in order to equalize the amounts of change ΔL1 and ΔL2 per time in the position/orientation of the virtual camera before and after the key frame 504, L1/(T3a−T1)=L2/(T2−T3a) should be satisfied. Time T3a of key frame 504 may be set. Therefore, time T3a of key frame 504=(L1*T2+L2*T1)/(L1+L2). When the time of the keyframe 504 is changed, the keyframe 504 moves on the timeline 501 . Note that the state 508 (position/orientation) of the virtual camera in the key frame 504 does not change. Note that ΔL1 and ΔL2 do not necessarily have to match, and it is sufficient if the difference between ΔL1 and ΔL2 after the change is smaller than the difference between ΔL1 and ΔL2 before the time of the key frame 504 is changed.

仮想カメラの位置の変化量は、仮想カメラの移動速度に等しい。上記処理によれば、キーフレーム504の前後で仮想カメラの移動速度の差が小さくなる、あるいは、等しくなる。これにより、ユーザが仮想カメラの移動速度を別途調整することなく、キーフレームの前後で仮想カメラの移動速度が変わることによる不自然さを軽減することが可能になる。 The amount of change in the position of the virtual camera is equal to the moving speed of the virtual camera. According to the above processing, the difference in the moving speed of the virtual camera before and after the key frame 504 becomes smaller or equal. As a result, it is possible to reduce the unnaturalness caused by the change in the moving speed of the virtual camera before and after the key frame without the user having to separately adjust the moving speed of the virtual camera.

なお、仮想視点(仮想カメラ)の状態とは、仮想視点(仮想カメラ)の位置と姿勢の少なくとも何れかである。すなわち、仮想カメラの状態の変化量L1、L2として、仮想カメラの位置の変化量のみが用いられてもよいし、仮想カメラの姿勢の変化量のみが用いられてもよい。また、変化量L1、L2として仮想カメラの姿勢のパン、チルト、ロールのどれかひとつの変化量のみが用いられてもよい。また、変化量L1、L2として仮想カメラの位置と姿勢を合わせて使う場合は、例えば、それぞれの変化量を線形結合した値が用いられてもよい。 Note that the state of the virtual viewpoint (virtual camera) is at least one of the position and orientation of the virtual viewpoint (virtual camera). That is, as the amounts of change L1 and L2 in the state of the virtual camera, only the amount of change in the position of the virtual camera may be used, or only the amount of change in the posture of the virtual camera may be used. Alternatively, only one change amount of pan, tilt, and roll of the posture of the virtual camera may be used as the change amounts L1 and L2. When the position and orientation of the virtual camera are used together as the amounts of change L1 and L2, for example, values obtained by linearly combining the amounts of change may be used.

また、中間点のキーフレームの前後で、仮想カメラの状態(例えば、位置・姿勢)の時間当たりの変化量の差が所定値以上となる場合に、中間点のキーフレームの時刻を変更するようにしてもよい。例えば、中間点のキーフレームの前後におけるカメラの位置・姿勢の時間当たりの変化量の割合が0.8より大きい場合にキーフレーム(中点)の時刻を上記T3aに変更する。この場合、以下の(式1)
0.8≦{L1(T2-T3)}/{L2(T3-T1)}≦1/0.8 ...(式1)
を用いてキーフレームの時刻を変更するか否かを判定する。ここで、T3は、キーフレーム504の変更前の時刻である。(式1)を満たさない場合、時刻変更部208は、上述した方法に従って追加された中間点のキーフレームの時刻をT3aに変更する。
Also, if the difference in the amount of change per time in the state of the virtual camera (for example, position/orientation) before and after the keyframe at the intermediate point is greater than or equal to a predetermined value, the time at the keyframe at the intermediate point is changed. can be For example, if the rate of change per time in the position/orientation of the camera before and after the midpoint keyframe is greater than 0.8, the keyframe (midpoint) time is changed to T3a. In this case, the following (formula 1)
0.8≦{L1(T2−T3)}/{L2(T3−T1)}≦1/0.8 (Formula 1)
is used to determine whether to change the time of the keyframe. Here, T3 is the time before the key frame 504 is changed. If (Formula 1) is not satisfied, the time changing unit 208 changes the time of the key frame at the intermediate point added according to the method described above to T3a.

また、変化量計算部206は、中間点のキーフレームの前後の所定時間内のフレーム(中間フレームまたはキーフレーム)を用いて、当該中間点のキーフレームにおける仮想カメラの位置・姿勢の変化量L1、L2を算出してもよい。例えば、図11(b)に示されるように、変化量計算部206は、中間点のキーフレーム504より所定時間前(T3a-Tx)のフレーム1101における仮想視点の状態とキーフレーム504における仮想視点の状態とから変化量L1を計算する。また、変化量計算部206は、キーフレーム504より所定時間後(T3a+Tx)のフレーム1102にける仮想視点の状態と当該キーフレームにおける仮想視点の状態とから状態の変化量L2を計算する。なお、フレーム1101,1102に対応する仮想視点の状態(仮想カメラの位置・姿勢)は、位置・姿勢補間部205により取得され得る。時刻変更部208は、このようにして計算されたL1とL2が等しくなるように、時刻T3aを決定する。なお、上記例では、指定された中間点のキーフレーム504の前後で同一の所定時間Txを用いたが、キーフレーム504の前後で異なる時間が用いられてもよい。また、時刻T1、T2のキーフレーム02、503をそれぞれ始点のキーフレーム、終点のキーフレームとしたが、これに限られるものではない。すなわち、追加されたキーフレーム504の両隣のキーフレームを用いて上述した時刻変更モードの処理が実行されてもよい。 Also, the change amount calculation unit 206 calculates the change amount L1 of the position/orientation of the virtual camera at the keyframe at the intermediate point using frames (intermediate frames or keyframes) within a predetermined period of time before and after the keyframe at the intermediate point. , L2 may be calculated. For example, as shown in FIG. 11B, the change amount calculation unit 206 calculates the state of the virtual viewpoint at the frame 1101 a predetermined time (T3a-Tx) before the key frame 504 at the midpoint and the virtual viewpoint at the key frame 504. , and the amount of change L1 is calculated. Further, the change amount calculation unit 206 calculates the state change amount L2 from the state of the virtual viewpoint in the frame 1102 after a predetermined time (T3a+Tx) after the key frame 504 and the state of the virtual viewpoint in the key frame. Note that the state of the virtual viewpoint (the position/orientation of the virtual camera) corresponding to the frames 1101 and 1102 can be acquired by the position/orientation interpolation unit 205 . The time changing unit 208 determines the time T3a so that L1 and L2 thus calculated are equal. In the above example, the same predetermined time Tx is used before and after the keyframe 504 at the specified intermediate point, but different times before and after the keyframe 504 may be used. Also, the keyframes 02 and 503 at times T1 and T2 are defined as the start point keyframe and the end point keyframe, respectively, but the present invention is not limited to this. That is, the time change mode process described above may be executed using the key frames adjacent to the added key frame 504 .

[フレーム数変更モード]
フレーム数変更部209は、キーフレーム間の仮想カメラの状態(位置・姿勢)のフレーム当たりの変化量の差が小さくなるようにキーフレーム間の中間フレームの枚数を変更する。具体的には、本実施形態では、中間点のキーフレームの前後で、仮想カメラの状態(位置・姿勢)のフレーム当たりの変化量が等しくなるように、中間フレームの枚数を変更する。なお、フレーム数変更部209は、キーフレーム間における中間フレームの数を変更するフレーム数変更モードにおいて動作する。なお、仮想カメラの状態(仮想視点の状態)は上述したとおりである。
[Frame number change mode]
The number-of-frames changing unit 209 changes the number of intermediate frames between keyframes so that the difference in the amount of change per frame in the state (position/orientation) of the virtual camera between keyframes becomes smaller. Specifically, in this embodiment, the number of intermediate frames is changed so that the amount of change per frame in the state (position/orientation) of the virtual camera before and after the intermediate point keyframe is the same. Note that the frame number changing unit 209 operates in a frame number changing mode for changing the number of intermediate frames between key frames. The state of the virtual camera (the state of the virtual viewpoint) is as described above.

以下、図11(a)の例を用いてフレーム数変更モードの動作を説明する。図11(a)において、キーフレーム502とキーフレーム504の間の変更前の中間フレームの枚数をN1、キーフレーム504とキーフレーム503の間の変更前の中間フレームの枚数をN2とする。また、キーフレーム504の時刻をT3とする。変更前の中間フレームの枚数は、キーフレーム間の時刻の差とフレームレートによって決まる。例えば、フレームレートを60フレーム/秒とすると、N1=(T3-T1)×60-1、N2=(T2-T3)×60-1である。 The operation of the frame number change mode will be described below using the example of FIG. 11(a). In FIG. 11A, the number of pre-change intermediate frames between the keyframes 502 and 504 is N1, and the number of pre-change intermediate frames between the keyframes 504 and 503 is N2. Also, let the time of the key frame 504 be T3. The number of intermediate frames before change is determined by the time difference between key frames and the frame rate. For example, if the frame rate is 60 frames/second, N1=(T3-T1)*60-1 and N2=(T2-T3)*60-1.

ここで、キーフレーム502とキーフレーム504の間の変更後の中間フレームの枚数をN1aとする。また、キーフレーム504とキーフレーム503の間の変更後の中間フレームの枚数をN2aとする。すると、キーフレーム504の前における仮想カメラの状態(位置・姿勢)のフレーム当たりの変化量はL1/N1aである。また、キーフレーム504の後における仮想カメラの状態(位置・姿勢)のフレーム当たりの変化量はL2/N2aである。よって、キーフレーム504の前後で、仮想カメラの状態(位置・姿勢)のフレーム当たりの変化量が等しくなるための条件は、L1/N1a=L2/N2aとなる。 Here, the number of intermediate frames after change between the key frame 502 and the key frame 504 is assumed to be N1a. Also, let N2a be the number of post-change intermediate frames between the key frame 504 and the key frame 503 . Then, the amount of change per frame of the state (position/orientation) of the virtual camera before the key frame 504 is L1/N1a. Also, the amount of change per frame in the state (position/orientation) of the virtual camera after the key frame 504 is L2/N2a. Therefore, before and after the key frame 504, the condition for equalizing the amount of change per frame in the state (position/orientation) of the virtual camera is L1/N1a=L2/N2a.

次に、フレーム数変更部209は、キーフレーム504の前後のどちら側で中間フレームの枚数を変更するかを決める。本実施形態では、指定されたフレームの前後のうち、変化量の大きい方にフレームが追加される。より具体的には、フレーム数変更部209は、例えば、キーフレーム504の前後の時間当たりの変化量を比較し、変化量が大きい側の中間フレームの枚数を変更し、変化量が小さい側の中間フレームの枚数は変更しない。なお、フレーム数の変更は、中間点のキーフレームの前後で、仮想カメラの状態(例えば、位置・姿勢)のフレーム当たりの変化量の差が所定値以上となる場合に実行されるようにしてもよい。 Next, the frame number changing unit 209 determines on which side before or after the key frame 504 the number of intermediate frames is to be changed. In the present embodiment, the frame is added to the one with the greater amount of change, either before or after the designated frame. More specifically, for example, the frame number changing unit 209 compares the amount of change per time before and after the key frame 504, changes the number of intermediate frames on the side with the larger amount of change, and changes the number of intermediate frames on the side with the smaller amount of change. The number of intermediate frames is not changed. Note that the change in the number of frames is executed when the difference in the amount of change in the virtual camera state (for example, position/orientation) per frame before and after the keyframe at the intermediate point is greater than or equal to a predetermined value. good too.

以下具体的に説明する。キーフレーム504の前における仮想カメラの状態の時間当たりの変化量ΔL1はL1/(T3-T1)である。また、キーフレーム504の後における仮想カメラの状態の時間当たりの変化量ΔL2はL2/(T2-T3)である。ここで、例えば、キーフレーム504の前、つまり、キーフレーム502とキーフレーム504の間の時間当たりの変化量ΔL1の方がキーフレーム504の後の変化量ΔL2よりも大きいとする。この場合、フレーム数変更部209は、キーフレーム502とキーフレーム504の間の中間フレームの枚数を変更し、キーフレーム504とキーフレーム503の間の中間フレームの枚数は変更しない。したがって、N2a=N2=(T2-T3)×60-1であり、N1a=L1/L2×N2a=L1/L2×{(T2-T3)×60-1}となる。ここで、N1a>N1となり、フレーム数変更部209は、キーフレーム502とキーフレーム504の間に「N1a-N1」枚の中間フレームを追加する。なお、ΔL1とΔL2とは必ずしも一致しなくてよく、中間フレーム数を変更する前におけるΔL1とΔL2との差よりも変更後のΔL1とΔL2との差が小さくなっていればよい。 A specific description will be given below. The amount of change per time ΔL1 in the state of the virtual camera before keyframe 504 is L1/(T3−T1). Also, the amount of change per time ΔL2 of the state of the virtual camera after the key frame 504 is L2/(T2−T3). Here, for example, it is assumed that the amount of change ΔL1 per time before the keyframe 504 , that is, between the keyframes 502 and 504 is greater than the amount of change ΔL2 after the keyframe 504 . In this case, the number-of-frames changing unit 209 changes the number of intermediate frames between the keyframes 502 and 504 and does not change the number of intermediate frames between the keyframes 504 and 503 . Therefore, N2a=N2=(T2-T3)*60-1 and N1a=L1/L2*N2a=L1/L2*{(T2-T3)*60-1}. Here, N1a>N1, and the frame number changing unit 209 adds “N1a−N1” intermediate frames between the key frames 502 and 504. FIG. Note that .DELTA.L1 and .DELTA.L2 do not necessarily have to match, as long as the difference between .DELTA.L1 and .DELTA.L2 after the change is smaller than the difference between .DELTA.L1 and .DELTA.L2 before the number of intermediate frames is changed.

なお、以上の処理によれば、中間フレームの枚数が変更されなかったキーフレーム504の後では動画が等倍で再生される一方、中間フレームが追加されたキーフレーム504の前では動画がスロー再生されることになる。しかし、フレーム当たりの仮想カメラの状態の変化量(例えば、移動速度)は、キーフレーム504の前後で等しく、又は差が小さくなる。これにより、ユーザが仮想カメラの移動速度などを別途調整することなく、追加されたキーフレームの前後でカメラの移動速度が変わることによる不自然さを軽減することが可能となる。なお、中間フレーム数の変更は、フレームの追加に限らずフレームの削減により行われてもよい。例えば、キーフレーム504の前における変化量ΔL1がキーフレーム504の後における変化量ΔL2より大きい場合に、フレーム数変更部209は、キーフレーム504とキーフレーム503の間の中間フレームを削減してもよい。 According to the above processing, after the keyframe 504 in which the number of intermediate frames is not changed, the moving image is reproduced at the same size, while before the keyframe 504 to which the intermediate frame is added, the moving image is reproduced in slow motion. will be However, the amount of change in the state of the virtual camera per frame (for example, moving speed) is the same before and after key frame 504, or the difference is small. As a result, it is possible to reduce the unnaturalness caused by the camera moving speed changing before and after the added keyframe without the user having to separately adjust the moving speed of the virtual camera. Note that the number of intermediate frames may be changed by reducing frames instead of adding frames. For example, if the amount of change ΔL1 before the keyframe 504 is greater than the amount of change ΔL2 after the keyframe 504, the frame number changing unit 209 may reduce intermediate frames between the keyframes 504 and 503. good.

なお、中間フレームの追加方法は、例えば、キーフレーム間で任意の中間フレームを繰り返すことにより実現され得る。また、時刻変更モードと同様に、フレーム数変更モードにおいても、追加されたキーフレームの前後の所定時間に対応するフレームを用いて、当該キーフレームの前後の状態の変化量の差を減らすようにしてもよい。すなわち、図11(b)において、指定されたキーフレーム504の所定時間前の時刻(T3-Tx)をT1とし、キーフレーム504の所定時間後の時刻(T3+Tx)をT2として用いることで実現され得る。また、この場合、フレーム数変更部209は、キーフレーム504とその所定時間前のフレーム1101との間のフレーム数、または、キーフレーム504とその所定時間後のフレーム1102との間のフレーム数を増減することで、変化量の差を低減する。また、上記では指定された中間点のキーフレーム504の前後で同一の所定時間Txを用いたが、キーフレーム504の前後で異なる時間が用いられてもよい。また、時刻T1、T2のキーフレーム02、503をそれぞれ始点のキーフレーム、終点のキーフレームとしたが、これに限られるものではない。すなわち、追加されたキーフレーム504の両隣のキーフレームを用いて上述した時刻変更モードの処理が実行されてもよい。 Note that the method of adding intermediate frames can be realized, for example, by repeating arbitrary intermediate frames between key frames. Also, in the same way as in the time change mode, in the frame number change mode as well, frames corresponding to a predetermined time period before and after the added keyframe are used to reduce the difference in the amount of change in the state before and after the keyframe. may That is, in FIG. 11B, the time (T3-Tx) a predetermined time before the specified key frame 504 is set to T1, and the time (T3+Tx) after the key frame 504 by a predetermined time is used as T2. obtain. In this case, the frame number changing unit 209 changes the number of frames between the key frame 504 and the frame 1101 a predetermined time before, or the number of frames between the key frame 504 and the frame 1102 after the predetermined time. By increasing or decreasing, the difference in the amount of change is reduced. Moreover, although the same predetermined time Tx is used before and after the key frame 504 at the specified intermediate point in the above description, different times may be used before and after the key frame 504 . Also, the keyframes 02 and 503 at times T1 and T2 are defined as the start point keyframe and the end point keyframe, respectively, but the present invention is not limited to this. That is, the time change mode process described above may be executed using the key frames adjacent to the added key frame 504 .

[位置・姿勢の割り当て]
割り当て部210は、時刻変更部208またはフレーム数変更部209を経て確定された中間フレームにカメラの位置・姿勢を割り当てる。例えば、N1枚の中間フレームへの仮想カメラの状態(位置・姿勢)の割り当ては以下のように行われる。まず、割り当て部210は、キーフレーム502における仮想カメラの状態506とキーフレーム504における仮想カメラの状態508の間のカメラパス505をN1+1個に等分割し、分割点における仮想カメラの状態をN1枚の中間フレームに順に割り当てる。キーフレーム504とキーフレーム503の間の中間フレームに対しても同様に仮想カメラの状態(位置・姿勢)を割り当ることができる。
[Position/Posture Allocation]
The allocation unit 210 allocates the position/orientation of the camera to the intermediate frames determined through the time change unit 208 or the frame number change unit 209 . For example, assignment of the state (position/orientation) of the virtual camera to the N1 intermediate frames is performed as follows. First, the allocation unit 210 equally divides the camera path 505 between the virtual camera state 506 in the key frame 502 and the virtual camera state 508 in the key frame 504 into N1+1 pieces, and divides the virtual camera state at the division point into N1 pieces. sequentially assigned to intermediate frames. The state (position/orientation) of the virtual camera can be similarly assigned to intermediate frames between the keyframes 504 and 503 .

また、キーフレーム間の中間フレーム数が変更された場合、割り当て部210は、中間フレームに時刻の再割り当ても行う。例えば、中間フレームの数がN1枚からN1a枚に変更された場合、割り当て部210は、N1a枚の中間フレームにカメラの位置・姿勢を割り当てるとともに、各中間フレームの時刻を以下のように再度割り当てる。まず、割り当て部210は、キーフレーム502とキーフレーム504の間の時刻をN1a+1個に等分割する。そして、割り当て部210は、分割位置の時刻をN1a枚の中間フレームに順に割り当てる。一方、中間フレームの枚数が変更されていない区間については、時刻を再度割り当てる必要がない。 Moreover, when the number of intermediate frames between key frames is changed, the allocation unit 210 also reassigns times to the intermediate frames. For example, when the number of intermediate frames is changed from N1 to N1a, the allocation unit 210 allocates the position/orientation of the camera to the N1a intermediate frames, and reassigns the time of each intermediate frame as follows. . First, the allocation unit 210 equally divides the time between the key frame 502 and the key frame 504 into N1a+1 pieces. Then, the allocation unit 210 sequentially allocates the division position times to the N1a intermediate frames. On the other hand, it is not necessary to reassign times to sections in which the number of intermediate frames has not been changed.

カメラパス出力部211は、キーフレームと中間フレームからなるカメラパスを出力する。画像生成部201は、カメラパス出力部211から出力されたカメラパスに従って仮想視点を移動し、仮想視点画像を生成する。 A camera path output unit 211 outputs a camera path made up of key frames and intermediate frames. The image generation unit 201 moves the virtual viewpoint according to the camera path output from the camera path output unit 211 and generates a virtual viewpoint image.

[時刻変更モードの動作]
図6は、本実施形態にかかる情報処理装置100の処理手順を説明するフローチャートである。変更モード管理部207により時刻変更モードが選択されている場合の処理について説明する。
[Time change mode operation]
FIG. 6 is a flowchart for explaining the processing procedure of the information processing apparatus 100 according to this embodiment. Processing when the time change mode is selected by the change mode management unit 207 will be described.

ステップS601で、キーフレーム追加部203は、ユーザの操作に応じて始点のキーフレームを追加する。例えば、ユーザが編集コントローラ403を用いてタイムライン501上で所望の時刻を選択すると、その時刻に始点のキーフレームが追加される。また、カメラパス編集部202が、追加された始点のキーフレーム(例えばキーフレーム502)をタイムライン501に表示する。 In step S601, the keyframe addition unit 203 adds a start point keyframe according to the user's operation. For example, when the user selects a desired time on the timeline 501 using the edit controller 403, a starting keyframe is added at that time. Also, the camera path editing unit 202 displays the added starting point keyframe (for example, the keyframe 502 ) on the timeline 501 .

ステップS602で、位置・姿勢指定部204は、ユーザの操作に応じて始点のキーフレームにおける仮想カメラの状態としての位置・姿勢を指定する。例えば、ユーザは、編集コントローラ403を用いて、仮想カメラを前後・左右・上下に移動する、または、仮想カメラをパン・チルト・ロール方向に回転させることで、仮想カメラの位置・姿勢を指定する。ステップS603で、カメラパス編集部202が、始点のキーフレームの時刻とカメラの位置・姿勢の情報を画像生成部201へ送信する。画像生成部201は、受信したキーフレームの時刻と仮想カメラの位置・姿勢から仮想視点画像を生成する。生成された仮想視点画像は画像表示部401に送信され表示される。 In step S602, the position/posture designation unit 204 designates the position/posture as the state of the virtual camera at the starting keyframe in accordance with the user's operation. For example, the user uses the edit controller 403 to move the virtual camera back and forth, left and right, and up and down, or to rotate the virtual camera in pan, tilt, and roll directions, thereby specifying the position and orientation of the virtual camera. . In step S<b>603 , the camera path editing unit 202 transmits to the image generating unit 201 the time of the starting key frame and the position/orientation information of the camera. The image generation unit 201 generates a virtual viewpoint image from the time of the received key frame and the position/orientation of the virtual camera. The generated virtual viewpoint image is transmitted to the image display unit 401 and displayed.

ユーザは、画像表示部401に表示された仮想視点画像を確認し、始点のキーフレームのカメラの位置・姿勢に問題がないかを確認する。問題がない場合、ユーザは、編集コントローラ403を用いて、問題がないことをカメラパス編集部202へ指示する。問題がないことを指示されると、カメラパス編集部202は問題がないと判定し(ステップS604でYES)、処理をステップS605へ進める。始点のキーフレームにおける仮想カメラの位置・姿勢に問題がある場合、ユーザは、編集コントローラ403を用いて、仮想カメラの位置・姿勢を再度指定する。編集コントローラ403により仮想カメラの位置・姿勢が再度指定されると、カメラパス編集部202は問題があると判定し(ステップS604でNO)、処理をステップS602に戻す。 The user confirms the virtual viewpoint image displayed on the image display unit 401 and confirms whether there is any problem with the position/orientation of the camera of the starting key frame. If there is no problem, the user uses the editing controller 403 to instruct the camera path editing unit 202 that there is no problem. When instructed that there is no problem, the camera path editing unit 202 determines that there is no problem (YES in step S604), and advances the process to step S605. If there is a problem with the position/orientation of the virtual camera in the starting keyframe, the user uses the edit controller 403 to specify the position/orientation of the virtual camera again. When the editing controller 403 designates the position and orientation of the virtual camera again, the camera path editing unit 202 determines that there is a problem (NO in step S604), and returns the process to step S602.

ステップS605で、キーフレーム追加部203は、ユーザの操作に応じて終点のキーフレームを追加する。具体的な手順はステップS601と同様である。ステップS606で、位置・姿勢指定部204は、ユーザの操作に応じて終点のキーフレームにおける仮想カメラの位置・姿勢を指定する。具体的な手順はステップS602と同様である。ステップS607では、ステップS603と同様の手順で、終点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像が生成され、画像表示部401に表示される。 In step S605, the keyframe addition unit 203 adds the end point keyframe according to the user's operation. A specific procedure is the same as that of step S601. In step S<b>606 , the position/orientation designation unit 204 designates the position/orientation of the virtual camera at the end point keyframe in accordance with the user's operation. A specific procedure is the same as that of step S602. In step S<b>607 , a virtual viewpoint image is generated according to the time of the end point keyframe and the position/orientation of the virtual camera and displayed on the image display unit 401 in the same procedure as in step S<b>603 .

ユーザは、画像表示部401に表示された仮想視点画像を確認し、終点のキーフレームにおける仮想カメラの位置・姿勢に問題がないかを確認し、編集コントローラ403を用いてその確認結果を指示する。ステップS604と同様、カメラパス編集部202によりユーザ操作に応じて問題がないと判断された場合(ステップS608でYES)、処理はステップS609へ進み、問題があると判断された場合(ステップS608でNO)、処理はステップS606に戻る。 The user confirms the virtual viewpoint image displayed on the image display unit 401, confirms whether there is any problem with the position and orientation of the virtual camera at the end point key frame, and uses the editing controller 403 to indicate the confirmation result. . As in step S604, if the camera path editing unit 202 determines that there is no problem in response to the user operation (YES in step S608), the process proceeds to step S609. NO), the process returns to step S606.

ステップS609で、キーフレーム追加部203は、編集コントローラ403を用いたユーザ操作に応じて中間点のキーフレームの追加処理を行う。追加処理の詳細は図7のフローチャートにより後述する。ステップS610で、割り当て部210が、キーフレーム間の補間されたカメラパス505を、中間フレームの仮想カメラの位置・姿勢に割り当てる。ステップS611で、カメラパス出力部211が、キーフレームと中間フレームからなるカメラパスを出力する。 In step S<b>609 , the keyframe adding unit 203 adds a keyframe at the intermediate point according to the user's operation using the editing controller 403 . The details of the addition process will be described later with reference to the flowchart of FIG. In step S610, the allocation unit 210 allocates the interpolated camera path 505 between keyframes to the position/orientation of the virtual camera in the intermediate frame. In step S611, the camera path output unit 211 outputs a camera path made up of key frames and intermediate frames.

図7は、図6のステップS610の、時刻変更モードにおける処理手順を説明するフローチャートである。まず、ステップS701において、キーフレーム追加部203は、中間点のキーフレームが追加されたか否かを判定する。中間点のキーフレームが追加された場合(ステップS701でYES)、処理はステップS702へ進む。中間点のキーフレームが追加されなかった場合(ステップS701でNO)、本処理を終了する。ステップS702以降では、カメラパス編集部202が、キーフレーム(中点)の追加処理を行う。 FIG. 7 is a flowchart for explaining the processing procedure in the time change mode in step S610 of FIG. First, in step S701, the keyframe addition unit 203 determines whether or not a keyframe at the intermediate point has been added. If a midpoint keyframe has been added (YES in step S701), the process proceeds to step S702. If no intermediate point keyframe has been added (NO in step S701), this process ends. After step S702, the camera path editing unit 202 performs key frame (midpoint) addition processing.

ステップS702で、キーフレーム追加部203が、ユーザの操作に応じて中間点のキーフレームを追加する。具体的な手順はステップS601と同様である。ステップS703で、位置・姿勢指定部204が、ユーザの操作に応じて中間点のキーフレームにおける仮想カメラの状態としての位置・姿勢を指定する。具体的な手順はステップS602と同様である。ステップS704で、位置・姿勢補間部205が、キーフレーム間のカメラの位置・姿勢を補間する。また、カメラパス編集部202が、補間されたカメラの位置・姿勢をカメラパス505として、GUI表示部402に表示する。 In step S702, the keyframe addition unit 203 adds a keyframe at the intermediate point according to the user's operation. A specific procedure is the same as that of step S601. In step S703, the position/orientation designation unit 204 designates the position/orientation as the state of the virtual camera in the key frame at the intermediate point in accordance with the user's operation. A specific procedure is the same as that of step S602. In step S704, the position/posture interpolation unit 205 interpolates the position/posture of the camera between key frames. The camera path editing unit 202 also displays the interpolated camera position/orientation as a camera path 505 on the GUI display unit 402 .

ステップS705で、変化量計算部206が、追加された中間点のキーフレームの前後について、キーフレーム間の仮想カメラの位置・姿勢の変化量を計算する。ステップS706で、時刻変更部208が、キーフレーム間のカメラの位置・姿勢の変化量に応じてキーフレーム(中点)の時刻を変更する。上述したように、時刻変更部208は、中間点のキーフレームの前後で、仮想カメラの位置・姿勢の時間当たりの変化量が等しく、又は差が小さくなるように、中間点のキーフレームの時刻を変更する。また、カメラパス編集部202は、中間点のキーフレームにおける時刻の変更に従って、タイムライン501の表示を更新する。 In step S705, the change amount calculation unit 206 calculates the amount of change in the position/orientation of the virtual camera between the keyframes before and after the keyframe at the added intermediate point. In step S706, the time changing unit 208 changes the time of the keyframe (midpoint) according to the amount of change in the position/orientation of the camera between the keyframes. As described above, the time changing unit 208 changes the time of the keyframe at the intermediate point so that the amount of change per time in the position/orientation of the virtual camera before and after the keyframe at the intermediate point is equal or the difference is small. to change Also, the camera path editing unit 202 updates the display of the timeline 501 according to the time change in the keyframe at the intermediate point.

ステップS707で、ステップS603と同様の手順で、ステップS701で追加された中間点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像を画像生成部201が生成し、画像表示部401に表示する。ユーザは、画像表示部401に表示された仮想視点画像を確認し、問題がないかを確認する。ステップS708において、ステップS604と同様の手順で問題があるかないかを判定し、問題がないと判定された場合(ステップS708でYES)、本処理を終了する。問題があると判定された場合(ステップS708でNO)、処理はステップS702に戻る。 In step S707, in the same procedure as in step S603, the image generation unit 201 generates a virtual viewpoint image according to the time of the intermediate point keyframe added in step S701 and the position/orientation of the virtual camera. 401 to display. The user confirms the virtual viewpoint image displayed on the image display unit 401 and confirms whether there is any problem. In step S708, it is determined whether or not there is a problem in the same procedure as in step S604, and if it is determined that there is no problem (YES in step S708), this process ends. If it is determined that there is a problem (NO in step S708), the process returns to step S702.

図8を用いて、カメラパス変更モードとして、キーフレームの時刻を変更する時刻変更モードが設定されている場合の動作例について説明する。なお、始点のキーフレームと終点のキーフレームについて、カメラの位置・姿勢の指定が終わっているとする。タイムライン501において、キーフレーム502が始点のキーフレームの時刻、キーフレーム503が終点のキーフレームの時刻である。また、状態506が始点のキーフレームにおける仮想カメラの位置と姿勢を表し、状態507が終点のキーフレームにおける仮想カメラの位置と姿勢を表す。また、モード表示部509には、時刻変更モードを表す「time」が表示されている。 With reference to FIG. 8, an operation example when the time change mode for changing the time of the keyframe is set as the camera path change mode will be described. It is assumed that the position and orientation of the camera have been specified for the start point keyframe and the end point keyframe. In a timeline 501, a key frame 502 is the time of the starting key frame, and a key frame 503 is the time of the ending key frame. A state 506 represents the position and orientation of the virtual camera in the starting keyframe, and a state 507 represents the position and orientation of the virtual camera in the ending keyframe. Also, the mode display portion 509 displays "time" representing the time change mode.

図8(a)は、中間点のキーフレーム504が新たに追加された状態(ステップS702)を示す。状態508は、中間点のキーフレーム504における仮想カメラの位置と姿勢である。この時点では、キーフレーム504における仮想カメラの位置・姿勢が指定されていないので、例えば、仮想カメラの位置・姿勢の初期値として始点のキーフレーム502の値を用いるとする。なお、追加されたキーフレームにおける仮想カメラの位置・姿勢として、左隣のキーフレームにおけるカメラの位置・姿勢を用いるようにしてもよいし、追加されたキーフレームに最も近いキーフレームにおける仮想カメラの位置・姿勢を用いるようにしてもよい。 FIG. 8(a) shows a state in which a key frame 504 at the intermediate point is newly added (step S702). State 508 is the position and pose of the virtual camera at midpoint keyframe 504 . At this point, the position/orientation of the virtual camera in the keyframe 504 is not specified, so for example, the value of the starting keyframe 502 is used as the initial value of the position/orientation of the virtual camera. As the position/orientation of the virtual camera in the added keyframe, the position/orientation of the virtual camera in the keyframe to the left may be used, or the position/orientation of the virtual camera in the keyframe closest to the added keyframe may be used. A position/orientation may be used.

図8(b)は、キーフレーム504に対して仮想カメラの状態508が指定されたときの表示内容を示す(ステップS703)。図8(c)は、ステップS704~S706により、キーフレーム504の時刻が変更されたときの表示内容を示す。キーフレーム504に対する仮想カメラの状態508(位置・姿勢)が指定されると(ステップS703)、位置・姿勢補間部205がキーフレーム間の仮想カメラの位置・姿勢を補間し(ステップS704)、その結果をカメラパス505として表示する。次に、時刻変更部208が、キーフレーム間の仮想カメラの位置・姿勢の時間当たりの変化量が等しくなるように、キーフレーム504の時刻をT3からT3aに変更する(ステップS705~S706)。時刻が変更されることにより、キーフレーム504は、タイムライン501上において矢印801で示されるように移動する。すなわち、仮想視点画像のフレーム列におけるキーフレーム504の位置が変更される。但し、キーフレーム504に対応する仮想カメラの状態508(位置・姿勢)は変更されない。 FIG. 8B shows display contents when the state 508 of the virtual camera is specified for the key frame 504 (step S703). FIG. 8C shows display contents when the time of the key frame 504 is changed in steps S704 to S706. When the state 508 (position/orientation) of the virtual camera for the keyframe 504 is specified (step S703), the position/orientation interpolation unit 205 interpolates the position/orientation of the virtual camera between the keyframes (step S704). Display the result as camera path 505 . Next, the time changing unit 208 changes the time of the key frame 504 from T3 to T3a so that the amount of change per time in the position/orientation of the virtual camera between key frames becomes equal (steps S705 and S706). By changing the time, the keyframe 504 moves on the timeline 501 as indicated by an arrow 801 . That is, the position of the key frame 504 in the frame sequence of the virtual viewpoint image is changed. However, the state 508 (position/orientation) of the virtual camera corresponding to the key frame 504 is not changed.

なお、キーフレーム504の時刻が変更されると、撮影空間内の状態(被写体の位置など)が変化し、仮想カメラの位置・姿勢がユーザの最初の意図からずれてしまう場合がある。しかし、キーフレーム504の時刻の変更を短い周期(例えば60分の1秒)で繰り返すことで、ユーザはリアルタイムに状態の変化を確認することができる。これにより、ユーザは、キーフレーム504の前後で仮想カメラの状態の変化量が一定範囲内である(移動速度が一定範囲内である)という制約の中で、自身の意図を適宜更新し、仮想カメラの状態508を効率的に、且つ容易に指定することができる。 Note that when the time of the key frame 504 is changed, the state in the shooting space (such as the position of the subject) changes, and the position/orientation of the virtual camera may deviate from the user's initial intention. However, by repeating the change of the time of the key frame 504 at short intervals (for example, 1/60th of a second), the user can confirm the change of the state in real time. As a result, the user can appropriately update his/her intention under the constraint that the amount of change in the state of the virtual camera before and after the key frame 504 is within a certain range (the movement speed is within a certain range), and the virtual The camera state 508 can be specified efficiently and easily.

[フレーム数変更モードの動作]
図9は、図6のステップS610の、フレーム数変更モードにおける処理手順を説明するフローチャートである。以下、図9を用いて、カメラパス変更モードが、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードの場合の動作について説明する。なお、始点および終点のキーフレームを設定する処理、中間点のキーフレームを設定後に中間フレームへカメラの位置・姿勢の割り当てる処理、カメラパスを出力する処理は、時刻変更モードの場合(図6)と同様である。
[Operation of frame number change mode]
FIG. 9 is a flowchart for explaining the processing procedure in the frame number change mode in step S610 of FIG. The operation when the camera path change mode is the frame number change mode for changing the number of intermediate frames to be inserted between key frames will be described below with reference to FIG. Note that the process of setting the start and end point keyframes, the process of assigning the position and orientation of the camera to the intermediate frames after setting the intermediate point keyframes, and the process of outputting the camera path are in the time change mode (Fig. 6). is similar to

ユーザ操作に応じてキーフレーム追加部203が中間点のキーフレームを追加すると(ステップS901でYES)、ステップS902で、キーフレーム追加部203が、ユーザの操作に応じて中間点のキーフレームを追加する。ステップS903で、位置・姿勢指定部204が、ユーザの操作に応じて中間点のキーフレームに対する仮想カメラの状態としての位置・姿勢を指定する。ステップS904で、位置・姿勢補間部205が、キーフレーム間の仮想カメラの位置・姿勢を補間する。また、カメラパス編集部202が、補間されたカメラの位置・姿勢をカメラパス505として、GUI表示部402に表示する。以上のステップS901~S904の処理は、図7で説明したステップS701~S704と同様である。 When the keyframe addition unit 203 adds the intermediate point keyframe according to the user operation (YES in step S901), in step S902, the keyframe addition unit 203 adds the intermediate point keyframe according to the user operation. do. In step S903, the position/posture designation unit 204 designates the position/posture as the state of the virtual camera with respect to the key frame at the intermediate point in accordance with the user's operation. In step S904, the position/posture interpolation unit 205 interpolates the position/posture of the virtual camera between key frames. The camera path editing unit 202 also displays the interpolated camera position/orientation as a camera path 505 on the GUI display unit 402 . The processing of steps S901 to S904 is the same as steps S701 to S704 described with reference to FIG.

ステップS905で、画像生成部201は、中間点のキーフレームの時刻と仮想カメラの位置・姿勢に応じた仮想視点画像を生成し、生成した仮想視点画像を画像表示部401に表示する。ステップS905の処理はステップS603と同様である。ステップS906で、ユーザが、画像表示部401に表示された仮想視点画像を確認し、問題がないかを確認する。ステップS604と同様の手順で問題があるかないかが判定され、問題がない場合(ステップS906でYES)、処理はステップS907へ進み、問題がある場合(ステップS906でNO)、処理はステップS903に戻る。 In step S<b>905 , the image generation unit 201 generates a virtual viewpoint image according to the time of the intermediate point key frame and the position/orientation of the virtual camera, and displays the generated virtual viewpoint image on the image display unit 401 . The processing of step S905 is similar to that of step S603. In step S906, the user confirms the virtual viewpoint image displayed on the image display unit 401 and confirms whether there is any problem. Whether or not there is a problem is determined by the same procedure as in step S604. If there is no problem (YES in step S906), the process proceeds to step S907, and if there is a problem (NO in step S906), the process returns to step S903. .

ステップS907で、変化量計算部206は、キーフレーム間の仮想カメラの位置・姿勢の変化量を計算する。ステップS908で、フレーム数変更部209が、キーフレーム間の仮想カメラの位置・姿勢の変化量に応じて挿入する中間フレームの枚数を変更する。上述したように、本実施形態のフレーム数変更部209は、中間点のキーフレームの前後で、仮想カメラの位置・姿勢のフレーム当たりの変化量が等しくなるように中間フレームの枚数を変更する。 In step S907, the change amount calculation unit 206 calculates the amount of change in the position/orientation of the virtual camera between key frames. In step S908, the number-of-frames changing unit 209 changes the number of intermediate frames to be inserted according to the amount of change in the position/orientation of the virtual camera between keyframes. As described above, the number-of-frames changing unit 209 of this embodiment changes the number of intermediate frames so that the amount of change per frame in the position/orientation of the virtual camera before and after the keyframe at the intermediate point is the same.

図10を用いて、キーフレーム間に挿入する中間フレームの数を変更するフレーム数変更モードが設定されている場合について具体例を説明する。なお、図10(a)は追加したキーフレームに対応する仮想カメラの位置・姿勢を指定する前の状態であり、図8(a)と同様の表示状態を示している。また、図10(b)は追加したキーフレームに対応する仮想カメラの位置・姿勢を指定した直後の状態を示しており、図8(b)と同様の表示状態である。図10において、モード表示部509には、フレーム数変更モードを表す「frame」が表示されている。 A specific example will be described with reference to FIG. 10 when the number-of-frames change mode is set to change the number of intermediate frames to be inserted between key frames. Note that FIG. 10A shows the state before specifying the position/orientation of the virtual camera corresponding to the added keyframe, and shows the same display state as FIG. 8A. FIG. 10(b) shows the state immediately after specifying the position/orientation of the virtual camera corresponding to the added keyframe, which is the same display state as in FIG. 8(b). In FIG. 10, the mode display section 509 displays "frame" representing the frame number change mode.

図10(c)は、キーフレーム間の中間フレームの枚数が変更された状態を示す。まず、キーフレーム504における仮想カメラの状態508(位置・姿勢)が指定されると、位置・姿勢補間部205はキーフレーム間の仮想カメラの位置・姿勢を補間し、補間により得られたカメラパス505を表示する。次に、フレーム数変更部209は、キーフレーム間の仮想カメラの位置・姿勢のフレーム当たりの変化量が等しく、又は差が小さくなるよう、中間フレームの枚数を変更する。この例では、キーフレーム502とキーフレーム504の間に中間フレームが追加される。中間フレームが追加されたことにより、キーフレーム504は、タイムライン501上を矢印1001で示されるように移動する。すなわち、仮想視点画像のフレーム列におけるキーフレーム504の位置が変更される。結果、キーフレーム503が、タイムライン501上を矢印1002で示されるように移動する。なお、始点のキーフレーム502、中間点のキーフレーム504、終点のキーフレーム503の時刻は変更されない。また、中間点のキーフレーム504と終点のキーフレーム503の間の中間フレームの枚数は変更されない。 FIG. 10C shows a state in which the number of intermediate frames between keyframes has been changed. First, when the state 508 (position/orientation) of the virtual camera in the keyframe 504 is specified, the position/orientation interpolating unit 205 interpolates the position/orientation of the virtual camera between the keyframes, and calculates the camera path obtained by the interpolation. 505 is displayed. Next, the number-of-frames changing unit 209 changes the number of intermediate frames so that the amount of change per frame in the position/orientation of the virtual camera between key frames is equal or the difference is small. In this example, an intermediate frame is added between keyframe 502 and keyframe 504 . With the intermediate frame added, the keyframe 504 moves on the timeline 501 as indicated by an arrow 1001 . That is, the position of the key frame 504 in the frame sequence of the virtual viewpoint image is changed. As a result, the keyframe 503 moves on the timeline 501 as indicated by an arrow 1002 . Note that the times of the start point key frame 502, intermediate point key frame 504, and end point key frame 503 are not changed. Also, the number of intermediate frames between the key frame 504 at the intermediate point and the key frame 503 at the end point is not changed.

(その他の実施形態)
上述した時刻変更モードとフレーム数変更モードは、組み合わせて用いることも可能である。すなわち、キーフレームにおける仮想視点の位置及び向きの指定に応じて、中間フレームの追加とキーフレームの時刻の変更との両方が実行されてもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The above-described time change mode and frame number change mode can be used in combination. That is, both the addition of the intermediate frame and the change of the time of the keyframe may be executed according to the designation of the position and orientation of the virtual viewpoint in the keyframe.
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.

発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。 The invention is not limited to the embodiments described above, and various modifications and variations are possible without departing from the spirit and scope of the invention.

201:画像生成部、202:カメラパス編集部、203:キーフレーム追加部、204:位置・姿勢指定部、205:位置・姿勢補間部、206:変化量計算部、207:変更モード管理部、208:時刻変更部、209:フレーム数変更部、210:割り当て部、211:カメラパス出力部 201: Image generation unit 202: Camera path editing unit 203: Key frame addition unit 204: Position/posture specification unit 205: Position/posture interpolation unit 206: Change amount calculation unit 207: Change mode management unit 208: time changing unit, 209: frame number changing unit, 210: allocation unit, 211: camera path output unit

Claims (17)

仮想視点の動きを定義するカメラパスを編集する情報処理装置であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定手段と、
前記指定手段により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得手段と、
前記指定されたキーフレームの前後において前記取得手段により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更手段と、を備えることを特徴とする情報処理装置。
An information processing device that edits a camera path that defines the movement of a virtual viewpoint,
designation means for receiving designation of a key frame at an arbitrary time and designation of a state of a virtual viewpoint corresponding to the designated key frame for configuring the camera path;
acquisition means for acquiring an amount of change in the state of the virtual viewpoint before and after the key frame specified by the specifying means;
changing means for changing the position of the specified keyframe in the sequence of frames forming the camera path so that the difference between the amount of change acquired by the acquiring means before and after the specified keyframe becomes small; An information processing device comprising:
前記取得手段は、前記指定されたキーフレームの前後における、仮想視点の状態の時間当たりの変化量を取得することを特徴とする請求項1に記載の情報処理装置。 2. The information processing apparatus according to claim 1, wherein said acquisition means acquires the amount of change per time in the state of the virtual viewpoint before and after the designated key frame. 前記取得手段は、前記指定されたキーフレームの時刻と状態、前記指定されたキーフレームの前後に隣接するキーフレームの時刻と状態に基づいて、仮想視点の状態の時間当たりの変化量を取得することを特徴とする請求項2に記載の情報処理装置。 The acquisition means acquires the amount of change per time in the state of the virtual viewpoint based on the time and state of the designated keyframe and the time and state of keyframes adjacent before and after the designated keyframe. 3. The information processing apparatus according to claim 2, characterized by: 前記取得手段は、前記指定されたキーフレームの所定時間前からの状態の変化量と、前記指定されたキーフレームから所定時間後までの状態の変化量を取得することを特徴とする請求項2に記載の情報処理装置。 2. The acquiring means acquires the amount of change in the state from a predetermined time before the specified key frame and the amount of change in the state from the specified key frame to the time after the specified time. The information processing device according to . 前記変更手段は、前記指定されたキーフレームの時刻を変更することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。 5. The information processing apparatus according to claim 2, wherein said changing means changes the time of said designated key frame. 前記変更手段は、前記指定されたキーフレームの前後において仮想視点の状態の時間当たりの変化量が等しくなるように、前記指定されたキーフレームの時刻を変更することを特徴とする請求項5に記載の情報処理装置。 6. The method according to claim 5, wherein said changing means changes the time of said specified key frame so that the amount of change per time in the state of the virtual viewpoint is equal before and after said specified key frame. The information processing device described. 前記取得手段は、前記指定されたキーフレームの前後における、仮想視点の状態のフレーム当たりの変化量を取得することを特徴とする請求項1に記載の情報処理装置。 2. The information processing apparatus according to claim 1, wherein said acquisition means acquires the amount of change per frame of the virtual viewpoint state before and after said specified key frame. 前記取得手段は、前記指定されたキーフレームの時刻と状態、前記指定されたキーフレームの前後に隣接するキーフレームとの間のフレーム数と前記隣接するキーフレームの状態に基づいて、仮想視点の状態のフレーム当たりの変化量を取得することを特徴とする請求項7に記載の情報処理装置。 The acquisition means acquires a virtual viewpoint based on the time and state of the designated key frame, the number of frames between key frames adjacent before and after the designated key frame, and the states of the adjacent key frames. 8. The information processing apparatus according to claim 7, wherein the amount of change in state per frame is acquired. 前記変更手段は、前記指定されたキーフレームと前記隣接するキーフレームの間のフレーム数を変更することを特徴とする請求項8に記載の情報処理装置。 9. An information processing apparatus according to claim 8, wherein said changing means changes the number of frames between said designated key frame and said adjacent key frame. 前記変更手段は、前記指定されたキーフレームの前後において仮想視点の状態のフレーム当たりの変化量が等しくなるように、前記フレーム数を変更することを特徴とする請求項9に記載の情報処理装置。 10. The information processing apparatus according to claim 9, wherein the changing unit changes the number of frames so that the amount of change per frame of the virtual viewpoint state before and after the designated key frame is equal. . 前記指定されたフレームの前後のうち、前記変化量の大きい方にフレームを追加することを特徴とする請求項10に記載の情報処理装置。 11. The information processing apparatus according to claim 10, wherein the frame is added to the one before and after the designated frame, which has the greater amount of change. キーフレーム間のカメラの位置および/または姿勢を補間する補間手段をさらに備えることを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。 12. The information processing apparatus according to any one of claims 1 to 11, further comprising interpolation means for interpolating the position and/or orientation of the camera between key frames. 前記指定されたキーフレームの時刻と仮想視点の状態に対応する仮想視点画像を表示する表示手段をさらに備えることを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。 13. The information processing apparatus according to any one of claims 1 to 12, further comprising display means for displaying a virtual viewpoint image corresponding to the time of the specified key frame and the state of the virtual viewpoint. 前記フレーム列と、前記フレーム列におけるキーフレームの位置とを模式的に表示する表示手段をさらに備えることを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。 14. The information processing apparatus according to any one of claims 1 to 13, further comprising display means for schematically displaying the sequence of frames and positions of key frames in the sequence of frames. 前記変更手段は、前記変化量の差が所定値以上の場合に前記変更を実行することを特徴とする請求項1乃至14のいずれか1項に記載の情報処理装置。 15. The information processing apparatus according to any one of claims 1 to 14, wherein said changing means executes said change when the difference between said change amounts is equal to or greater than a predetermined value. 仮想視点の動きを定義するカメラパスを編集するための情報処理方法であって、
前記カメラパスを構成するための、任意の時刻のキーフレームの指定と、前記指定されたキーフレームに対応する仮想視点の状態の指定とを受け付ける指定工程と、
前記指定工程により指定されたキーフレームの前後における仮想視点の状態の変化量を取得する取得工程と、
前記指定されたキーフレームの前後において前記取得工程により取得された変化量の差が小さくなるように、前記カメラパスを構成するフレーム列における前記指定されたキーフレームの位置を変更する変更工程と、を備えることを特徴とする情報処理方法。
An information processing method for editing a camera path that defines movement of a virtual viewpoint, comprising:
a designation step of receiving designation of a key frame at an arbitrary time and designation of a state of a virtual viewpoint corresponding to the designated key frame for configuring the camera path;
an acquiring step of acquiring a change amount of the state of the virtual viewpoint before and after the key frame specified by the specifying step;
a changing step of changing the position of the specified keyframe in the sequence of frames forming the camera path so that the difference between the amounts of change acquired in the acquiring step before and after the specified keyframe becomes small; An information processing method comprising:
コンピュータを、請求項1乃至15のいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラム。 A program for causing a computer to function as each means of the information processing apparatus according to any one of claims 1 to 15.
JP2019038764A 2019-02-27 2019-03-04 Information processing device, information processing method and program. Active JP7277184B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019038764A JP7277184B2 (en) 2019-03-04 2019-03-04 Information processing device, information processing method and program.
US16/784,731 US11057609B2 (en) 2019-02-27 2020-02-07 Information processing apparatus, information processing method, and computer readable storage medium for determining a moving path of virtual viewpoint

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019038764A JP7277184B2 (en) 2019-03-04 2019-03-04 Information processing device, information processing method and program.

Publications (2)

Publication Number Publication Date
JP2020144456A JP2020144456A (en) 2020-09-10
JP7277184B2 true JP7277184B2 (en) 2023-05-18

Family

ID=72353623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019038764A Active JP7277184B2 (en) 2019-02-27 2019-03-04 Information processing device, information processing method and program.

Country Status (1)

Country Link
JP (1) JP7277184B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240249419A1 (en) 2021-06-08 2024-07-25 Sony Group Corporation Information processing apparatus, information processing method, and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015192426A (en) 2014-03-28 2015-11-02 ブラザー工業株式会社 Information processing device and program
JP2018046448A (en) 2016-09-15 2018-03-22 キヤノン株式会社 Image processing apparatus and image processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015192426A (en) 2014-03-28 2015-11-02 ブラザー工業株式会社 Information processing device and program
JP2018046448A (en) 2016-09-15 2018-03-22 キヤノン株式会社 Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JP2020144456A (en) 2020-09-10

Similar Documents

Publication Publication Date Title
JP6433559B1 (en) Providing device, providing method, and program
US20200275083A1 (en) Information processing apparatus, information processing method, and computer readable storage medium
JP4285422B2 (en) Moving image generation system, moving image generation apparatus, moving image generation method, program, and recording medium
JP2019537303A (en) Image processing
US6307561B1 (en) Animation generating apparatus and method
JP7170441B2 (en) Information processing device, information processing method and program
JP6572368B2 (en) Generating apparatus, generating method, and program
KR20200084265A (en) Device, method and computer program for editing time slice images
JP2022014358A (en) Information processing apparatus, control method of information processing apparatus and program
JP7277184B2 (en) Information processing device, information processing method and program.
JP2021197082A (en) Information processing apparatus, method for controlling information processing apparatus, and program
JP2012221092A (en) Image processing system, image processing method and program
KR20230017745A (en) Image processing apparatus, image processing method, and storage medium
JP2021033347A (en) Image processing device, image processing method, and program
JP2022060816A (en) Information processing system, information processing method and program
JP2020095465A (en) Image processing device, image processing method, and program
JP2022171435A (en) Information processing apparatus, control method of the same, and program
JP2021182443A (en) Transmission device and transmission method, and program
JP2020010347A (en) Generation device, generation method, and program
JP2012221105A (en) Image processing system, image processing method and program
JP2022019341A (en) Information processing apparatus, information processing method, and program
Ronfard et al. Introducing 3D Cinematography [Guest editors' introduction]
JP2023173577A (en) Information processing apparatus, information processing method, and program
JP2023003765A (en) Image generation device and control method thereof, image generation system, and program
JP2006186511A (en) Apparatus and program for generating depth signal and for generating pseudo stereoscopic image

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R151 Written notification of patent or utility model registration

Ref document number: 7277184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151