Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7819902B2 - Information processing device and information generation method - Google Patents
[go: Go Back, main page]

JP7819902B2 - Information processing device and information generation method - Google Patents

Information processing device and information generation method

Info

Publication number
JP7819902B2
JP7819902B2 JP2021192413A JP2021192413A JP7819902B2 JP 7819902 B2 JP7819902 B2 JP 7819902B2 JP 2021192413 A JP2021192413 A JP 2021192413A JP 2021192413 A JP2021192413 A JP 2021192413A JP 7819902 B2 JP7819902 B2 JP 7819902B2
Authority
JP
Japan
Prior art keywords
information
voxel
voxels
layer
discrete
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
JP2021192413A
Other languages
Japanese (ja)
Other versions
JP2023079022A5 (en
JP2023079022A (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.)
Preferred Networks Inc
Original Assignee
Preferred Networks 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 Preferred Networks Inc filed Critical Preferred Networks Inc
Priority to JP2021192413A priority Critical patent/JP7819902B2/en
Publication of JP2023079022A publication Critical patent/JP2023079022A/en
Publication of JP2023079022A5 publication Critical patent/JP2023079022A5/ja
Application granted granted Critical
Publication of JP7819902B2 publication Critical patent/JP7819902B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Description

本開示は、情報処理装置及び情報生成方法に関する。 This disclosure relates to an information processing device and an information generation method.

複数の位置、姿勢から取得されたターゲットの画像を用いて3次元再構成をし、当該再構成した3次元データに基づいて任意の位置、姿勢からターゲットを撮影した画像を生成する技術が研究されている。この3次元情報の表現を輝度場(ニューラルネットワーク)により形成する技術が研究されているが、ターゲットの領域が広くなると輝度場の情報を格納する記憶領域が莫大となること、また、3次元情報を表現することが困難になってくるという課題がある。 Research is being conducted on technology that uses images of a target acquired from multiple positions and orientations to perform 3D reconstruction, and then generates an image of the target photographed from any position and orientation based on the reconstructed 3D data. Research is also being conducted on technology that uses a brightness field (neural network) to represent this 3D information, but as the target area becomes larger, issues arise: the memory required to store the brightness field information becomes enormous, and it becomes difficult to represent the 3D information.

B. Mildenhall, et. al., “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”, 3 August 2020, arXiv, https://arxiv.org/abs/2003.08934v2B. Mildenhall, et. al., “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”, 3 August 2020, arXiv, https://arxiv.org/abs/2003.08934v2 C. Reiser, et. al., “KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs”, 2 August 2021, arXiv, https://arxiv.org/abs/2103.13744v2C. Reiser, et. al., “KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs”, 2 August 2021, arXiv, https://arxiv.org/abs/2103.13744v2 T. Takikawa, et. al., “Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes”, 26 January 2021, arXiv, https://arxiv.org/abs/2101.10994v1T. Takikawa, et. al., “Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes”, 26 January 2021, arXiv, https://arxiv.org/abs/2101.10994v1 A. R. Kosiorek, et. al., “NeRF-VAE: A Geometry Aware 3D Scene Generative Model”, 1 April 2021, arXiv, https://arxiv.org/abs/2104.00587v1A. R. Kosiorek, et. al., “NeRF-VAE: A Geometry Aware 3D Scene Generative Model”, 1 April 2021, arXiv, https://arxiv.org/abs/2104.00587v1 A. v. d. Oord, et. al., “Neural Discrete Representation Learning”, 30 May 2018, arXiv, https://arxiv.org/abs/1711.00937A. v. d. Oord, et. al., “Neural Discrete Representation Learning”, 30 May 2018, arXiv, https://arxiv.org/abs/1711.00937 A. Radford, et. al., “Improving language understanding by generative pre-training”, 2018, https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdfA. Radford, et. al., “Improving language understanding by generative pre-training”, 2018, https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf P. Weng, et.al., “NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction”, 20 June 2021, arXiv, https://arxiv.org/abs/2106.10689v1P. Weng, et.al., “NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction”, 20 June 2021, arXiv, https://arxiv.org/abs/2106.10689v1

本開示では、ニューラルネットワークモデルを用いた3次元情報の表現の精度を向上させる情報処理装置を提供する。 This disclosure provides an information processing device that improves the accuracy of three-dimensional information representation using a neural network model.

一実施形態によれば、離散符号を割り当てる情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、自己回帰モデルを用いて、3次元情報を表現する複数の離散符号に関する情報を生成する。 According to one embodiment, an information processing device for assigning discrete codes includes one or more memories and one or more processors. The one or more processors use an autoregressive model to generate information about multiple discrete codes that represent three-dimensional information.

一実施形態によれば、上記の装置により、又は、異なる装置により生成され、割り当てられた離散符号から画像を生成する情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、第1シーンを表す複数の離散符号に基づいて、3次元空間の第1座標における第1特徴量を算出し、少なくとも前記第1座標の情報及び前記第1特徴量をニューラルネットワークに入力して取得した出力情報に基づいて、前記第1シーンの画像を生成し、前記複数の離散符号は、自己回帰モデルを用いて生成されたものである。 According to one embodiment, an information processing device that generates an image from discrete codes generated and assigned by the above device or by a different device includes one or more memories and one or more processors. The one or more processors calculate a first feature amount at a first coordinate in three-dimensional space based on a plurality of discrete codes representing a first scene, and generate an image of the first scene based on output information obtained by inputting at least the information on the first coordinates and the first feature amount into a neural network, where the plurality of discrete codes are generated using an autoregressive model.

一実施形態によれば、上記の離散符号を割り当てる情報処理装置、又は、上記の画像を生成する情報処理装置において用いられる自己回帰モデルを訓練する情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、3次元情報を表現する複数の離散符号に関する情報を生成する自己回帰モデルのパラメータを、複数の離散符号に関する情報を含む教師データを用いて更新する。 According to one embodiment, an information processing device that assigns the above-mentioned discrete codes or that trains an autoregressive model used in the information processing device that generates the above-mentioned image includes one or more memories and one or more processors. The one or more processors update the parameters of the autoregressive model that generates information about multiple discrete codes that represent three-dimensional information, using training data that includes information about the multiple discrete codes.

一実施形態に係るボクセルの階層の一例を示す図。FIG. 2 illustrates an example hierarchy of voxels according to one embodiment. 一実施形態に係る輝度場のボクセル表現の一例を示す図。FIG. 2 illustrates an example of a voxel representation of a luminance field according to one embodiment. 一実施形態に係る第0階層のボクセルの一例を示す図。FIG. 2 is a diagram showing an example of voxels in the 0th layer according to an embodiment. 一実施形態に係る第1階層のボクセルの一例を示す図。FIG. 3 is a diagram showing an example of voxels in a first layer according to an embodiment. 一実施形態に係る第1階層のボクセルの一例を示す図。FIG. 3 is a diagram showing an example of voxels in a first layer according to an embodiment. 一実施形態に係る第2階層のボクセルの一例を示す図。FIG. 10 is a diagram showing an example of voxels in a second layer according to an embodiment. 一実施形態に係る第2階層のボクセルの一例を示す図。FIG. 10 is a diagram showing an example of voxels in a second layer according to an embodiment. 一実施形態に係る特徴量取得の一例を説明するための図。FIG. 10 is a diagram for explaining an example of feature amount acquisition according to an embodiment. 一実施形態に係る特徴量取得の一例を説明するための図。FIG. 10 is a diagram for explaining an example of feature amount acquisition according to an embodiment. 一実施形態に係る特徴量取得の一例を説明するための図。FIG. 10 is a diagram for explaining an example of feature amount acquisition according to an embodiment. 一実施形態に係る推論装置の処理の一例を示すフローチャート。10 is a flowchart showing an example of processing of an inference device according to an embodiment. 一実施形態に係る訓練装置の処理の一例を示すフローチャート。10 is a flowchart illustrating an example of processing by a training device according to an embodiment. 一実施形態に係るボクセルの頂点の一例を示す図。FIG. 2 is a diagram illustrating an example of vertices of a voxel according to an embodiment. 一実施形態に係るボクセルの頂点の一例を示す図。FIG. 2 is a diagram illustrating an example of vertices of a voxel according to an embodiment. 一実施形態に係る離散符号の割り当ての一例を示す図。FIG. 10 is a diagram showing an example of allocation of discrete codes according to an embodiment. 一実施形態に係る離散符号の割り当ての一例を示す図。FIG. 10 is a diagram showing an example of allocation of discrete codes according to an embodiment. 一実施形態に係るニューラルネットワークモデルの関係の概略の一例を示す図。FIG. 1 is a diagram illustrating an example of a schematic relationship of a neural network model according to an embodiment. 一実施形態に係るボクセルを示す木の表現の一例を示す図。FIG. 1 illustrates an example of a tree representation of voxels according to one embodiment. 一実施形態に係るボクセルを示す木の表現の一例を示す図。FIG. 1 illustrates an example of a tree representation of voxels according to one embodiment. 一実施形態に係るボクセル生成のニューラルネットワークモデルの構成の一例を示す図。FIG. 1 is a diagram showing an example of the configuration of a neural network model for voxel generation according to an embodiment. 一実施形態に係るボクセルの生成の一例を示す図。FIG. 10 is a diagram showing an example of voxel generation according to an embodiment. 一実施形態に係るボクセルの生成の一例を示す図。FIG. 10 is a diagram showing an example of voxel generation according to an embodiment. 一実施形態に係る8分木生成の擬似コードを示す図。FIG. 10 shows pseudocode for generating an octree according to one embodiment. 一実施形態に係る8分木生成の経過の一例を示す図。FIG. 10 is a diagram showing an example of the process of generating an octree according to an embodiment. 一実施形態に係る推論装置、訓練装置の実装の一例を示す図。FIG. 1 is a diagram showing an example of implementation of an inference device and a training device according to an embodiment.

以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。 Embodiments of the present invention will now be described with reference to the drawings. The drawings and description of the embodiments are provided by way of example only and are not intended to limit the scope of the present invention.

まず、本実施形態における3次元情報の表現に用いる関数の一例として、シーンを表現する輝度場 (Radiational Fields) について説明する。以下の式により、座標 p = (x, y, z) 、姿勢 d = (θ, φ) 及び座標 p における特徴量 z(p) を入力すると、密度 ρ 、色 c = (r, g, b) を返す関数 F を利用して、任意の位置及び方角 (視点方向) に配置されているカメラによりシーンを撮影した画像を生成する。
First, as an example of a function used to represent three-dimensional information in this embodiment, a radiation field (radiation field) representing a scene will be described. When coordinates p = (x, y, z), orientation d = (θ, φ), and a feature z(p) at coordinates p are input, an image of the scene captured by a camera placed at an arbitrary position and direction (viewpoint direction) is generated using a function F that returns density ρ and color c = (r, g, b) according to the following formula.

x, y, zは、それぞれの軸に対する座標を示し、座標 p は、シーンを表現する輝度場における点を示す。 θ, φ は、姿勢 d を表す角度を示し、姿勢 d は、座標 p を示す点のどの方向から見ているかを示す。言い換えると、姿勢 d は、画像を取得する方角において、カメラの焦点位置から画像を構成するそれぞれの画素に対して延伸する半直線の方向、例えば、所定の軸に対する角度を示す。 z(p) は、撮影対象となるシーンにおける座標 p の特徴を表す値であり、所定次元数のベクトルでもよい。 z(p) の抽出の詳細は後述する。 x, y, and z indicate coordinates relative to the respective axes, and coordinate p indicates a point in the luminance field representing the scene. θ and φ indicate angles representing pose d, which indicates the direction from which the point representing coordinate p is viewed. In other words, pose d indicates the direction of the ray extending from the focal position of the camera to each pixel that makes up the image in the direction in which the image is acquired, for example, the angle relative to a specified axis. z(p) is a value that represents the characteristics of coordinate p in the scene to be photographed, and may be a vector with a specified number of dimensions. Details on extracting z(p) will be described later.

式(1)における F は、例えば、ニューラルネットワークモデルを含んで表現される。このニューラルネットワークモデルの学習については後述する。限定されない一例として、密度 ρ は、座標 p 及び z(p) に依存する値であり、色 c は、座標 p 、姿勢 d 及び z(p) に依存する値である。この関数 F は、例えば、 MLP (Multi-Layer Perceptron) により表現される。また、 MLP は、 ReLU 等の適切な活性化関数を含む。 F in equation (1) is expressed, for example, by including a neural network model. The training of this neural network model will be described later. As a non-limiting example, the density ρ is a value that depends on the coordinates p and z(p), and the color c is a value that depends on the coordinate p, the orientation d, and z(p). This function F is expressed, for example, by an MLP (Multi-Layer Perceptron). Furthermore, the MLP includes an appropriate activation function such as ReLU.

本実施形態において、シーンは、階層的なボクセルを用いて表現される。各階層のボクセルは、それぞれに離散符号が付与される。この階層構造は、例えば、8分木を用いて表現される。 In this embodiment, a scene is represented using hierarchical voxels. Each voxel in each layer is assigned a discrete code. This hierarchical structure is represented, for example, using an octree.

より具体的には、座標 p における特徴量 z(p) が、階層的に形成されたボクセルのそれぞれに定義される離散符号から取得される。訓練済みのモデルは、座標 p 、姿勢 d 及び取得された特徴量 z(p) に基づいて、シーンにおける当該座標 p 及び姿勢 d における色 c 及び密度 ρ を生成する。この色 c 及び密度 ρ を用いることにより、取得したいカメラ位置及び方角からのシーンの画像を取得することができる。 More specifically, the feature z(p) at coordinate p is obtained from the discrete code defined for each hierarchically formed voxel. The trained model generates the color c and density ρ at coordinate p and orientation d in the scene based on coordinate p, orientation d, and the obtained feature z(p). Using this color c and density ρ, an image of the scene from the desired camera position and direction can be obtained.

まず、ボクセルの階層構造と、ボクセルに定義される離散符号から座標における特徴量を取得する形態について説明する。 First, we will explain the hierarchical structure of voxels and how to obtain feature values at coordinates from the discrete codes defined for voxels.

図1は、シーンを含むボクセルを表現した一例を示す図である。例えば、画像を取得したい領域を上図に示すようにボクセル V0 で表す。このボクセル V0 を第0階層のボクセルとする。 Figure 1 shows an example of a representation of voxels that contain a scene. For example, the area you want to capture an image of is represented by voxel V0 , as shown in the figure above. This voxel V0 is considered to be a voxel in the 0th layer.

このボクセル V のそれぞれの辺を2分した (例えば、2等分した) 辺を新たに生成し、これらの辺により切断されたそれぞれの立体領域を第1階層のボクセル V1 とする。このように、1個のボクセルに対して8個のボクセルを生成することで、階層的なボクセル構造として、シーンの領域を表現する。以下、第 n 階層のボクセルのそれぞれを Vn_ν 等と表す。 ν は、第 n 階層におけるボクセルの識別子を表す。 Each edge of this voxel V0 is divided into two (for example, two equal parts) to generate new edges, and each three-dimensional area cut by these edges is designated as a voxel V1 in the first layer. In this way, by generating eight voxels for one voxel, the area of the scene is represented as a hierarchical voxel structure. Below, each voxel in the nth layer will be represented as Vn_ν , etc., where ν represents the identifier of the voxel in the nth layer.

ボクセルは、後述で詳しく説明するように8分木 (Octree) で表現されてもよい。8分木で表現する場合、ルートのボクセルを第0階層のボクセルとして表現し、このルートから派生するエッジとノードで形成される木よりボクセルを表現する。 Voxels may be represented as an octree, as described in detail below. When represented as an octree, the root voxel is represented as a voxel at the 0th level, and voxels are represented by a tree formed by edges and nodes derived from this root.

図に示す例では、第0階層から第1階層のボクセルの形成は、1個の領域を8個の領域にするものであるが、これ以降の階層においては、全てのボクセルに対して次の階層のボクセルを形成する必要は無い。例えば、第1階層のボクセル V1 から第2階層のボクセル V2 の形成においては、ボクセル V1 のうち分割する必要がある、又は、分割することで利点があるボクセルに対してのみ次の階層のボクセル V2 が形成されるものであってもよい。逆に、特に必要が無いボクセルに対しては、それ以上ボクセルを分割しなくてもよい。 In the example shown in the figure, the formation of voxels from the 0th layer to the 1st layer involves dividing one region into eight regions, but in subsequent layers, it is not necessary to form voxels in the next layer for all voxels. For example, in the formation of voxels V2 in the second layer from voxel V1 in the first layer, voxel V2 in the next layer may be formed only for voxels V1 that need to be divided or that would benefit from division. Conversely, voxels that do not particularly need to be divided may not need to be divided any further.

輝度場としてこの階層構造のボクセルを用いる場合、例えば、密度情報が0ではないボクセルに対して次の階層のボクセルを形成してもよい。また、色情報が0ではないボクセルに対して次の階層のボクセルを形成してもよい。すなわち、何らかの撮影対象が存在しない領域においては、次の階層のボクセルを形成しない構成としてもよい。このように必要の無いボクセルについて下位の構造を有しないようにすることで、利用する記憶領域又は演算性能等のリソースを節約することができる。 When using voxels with this hierarchical structure as a luminance field, for example, voxels at the next level may be formed for voxels with density information that is not 0. Also, voxels at the next level may be formed for voxels with color information that is not 0. In other words, in areas where no subject is present, voxels at the next level may not be formed. By not having lower-level structures for unnecessary voxels in this way, resources such as storage space and computing performance can be saved.

8分木で表現する場合には、着目している階層のボクセルを生成する時点において、空ボクセルであることを指定することができる。この空ボクセルについて、次の階層を生成しない形態としてもよい。 When expressed as an octree, it is possible to specify that a voxel is an empty voxel when generating a voxel in the layer of interest. It is also possible to specify that the next layer will not be generated for this empty voxel.

また、輝度場として、対象の表面を示すボクセルを配置してもよい。この場合、表面で囲まれている領域は、対象の内部であり外側からは見ることができない、言い換えると、カメラで撮影できない領域である可能性が高い。このような領域についても、上記と同様に、次の階層のボクセルを形成しない構成としてもよい。 Voxels representing the surface of the object may also be placed as a luminance field. In this case, the area surrounded by the surface is likely to be inside the object and cannot be seen from the outside; in other words, it is likely to be an area that cannot be photographed by a camera. As with the above, such areas may also be configured not to form voxels in the next hierarchy.

図2は、一実施形態に係るボクセルの表現の一例を示す図である。具体的には、第 (n - 1) 階層の1つのボクセルであるボクセル V(n - 1)_0 を抽出して示すものである。左下に示す座標系は、座標設定の一例であるが、このような座標系に限定されるものではない。また、座標系の原点は、任意の位置に設定することができる。例えば、座標系の原点は、演算の簡単のため、ボクセル V0 の中心に設定されてもよいが、これに限定されるものではない。 FIG. 2 is a diagram illustrating an example of a voxel representation according to an embodiment. Specifically, the diagram illustrates an extracted voxel V (n-1)_0 , which is one voxel in the (n-1)th layer. The coordinate system shown in the lower left is an example of a coordinate setting, but the present invention is not limited to such a coordinate system. The origin of the coordinate system can be set at any position. For example, the origin of the coordinate system may be set at the center of voxel V0 for ease of calculation, but the present invention is not limited to this.

以下において、例えば、この座標系の x, y, z が最小の点を有するボクセルから順番に順序付けするが、順序付けについてもこれに限定されるものではない。図2においては、例えば、第 (n - 1) 階層のボクセル V(n - 1)_0 に着目しているが他のボクセルについても同様に定義することが可能である。 In the following, for example, the voxels are ordered in order starting from the voxel having the smallest x, y, and z points in this coordinate system, but the ordering is not limited to this. In Figure 2, for example, attention is focused on the voxel V (n-1)_0 in the (n-1 )th layer, but other voxels can also be defined in the same way.

ボクセル V には、1対1対応した離散符号が割り当てられている。例えば、第 n 階層のボクセル Vn_00 には、図2の下図に示されるように、離散符号 zvn_0 から zvn_7 が割り当てられる。この離散符号は、異なる K 個のベクトルの中から選択されたベクトルでもよく、ボクセルを構成するそれぞれの頂点に割り当てられてもよい。また、別の例としては、ボクセル内の任意の点、例えば、ボクセルの中心点に離散符号を割り当ててもよい。階層が異なるボクセル間で共通する頂点 (同一座標の頂点) を有する場合、階層ごとに異なる離散符号を割り当ててもよいし、同一の離散符号を割り当ててもよい。 Each voxel V is assigned a discrete code in one-to-one correspondence. For example, a voxel V n_00 in the nth layer is assigned discrete codes z vn_0 to z vn_7 , as shown in the lower diagram of Figure 2. These discrete codes may be vectors selected from K different vectors, and may be assigned to each vertex that makes up the voxel. As another example, a discrete code may be assigned to any point within a voxel, such as the center point of the voxel. If voxels in different layers have a common vertex (a vertex with the same coordinates), they may be assigned different discrete codes for each layer, or the same discrete code may be assigned.

以下においては、説明の簡単のため、特に記載が無い限り、離散符号 z は、各ボクセル V のそれぞれの頂点に割り当てられている。これは、限定されない一例とした定義であり、境界を含むボクセル V 内の任意の点に離散符号が割り当てられてもよい。 In the following, for simplicity, unless otherwise specified, a discrete code z is assigned to each vertex of each voxel V. This is a non-limiting example definition, and a discrete code may be assigned to any point within a voxel V, including its boundary.

また、図2の上図に示されるように、ボクセルは、隣接するボクセルと共有する頂点において、同じ離散符号が割り当てられる。例えば、ボクセル Vn_00 と、ボクセル Vn_01 とは、共有する面の4頂点において、離散符号 zvn_1 、 zvn_3 、 zvn_5 、 zvn_7 を共有する。例えば、ボクセル Vn_00 と、ボクセル Vn_03 とは、共有する2頂点において、離散符号zvn_3 、zvn_7 を共有する。 Also, as shown in the upper diagram of Figure 2, a voxel is assigned the same discrete code at vertices that it shares with adjacent voxels. For example, voxel V n_00 and voxel V n_01 share discrete codes z vn_1 , z vn_3 , z vn_5 , and z vn_7 at the four vertices of the shared surface. For example, voxel V n_00 and voxel V n_03 share discrete codes z vn_3 and z vn_7 at the two vertices they share.

このように、離散符号は、ボクセル V の頂点ごと、換言すると、各階層のボクセルの頂点である格子点ごとに割り当てられる。もちろん、当該階層においてボクセルが形成されていない、すなわち、1つ上位の階層のボクセルにおいて下位のボクセルが形成されていない領域においては、離散符号が割り当てられなくてもよい。 In this way, a discrete code is assigned to each vertex of a voxel V, in other words, to each grid point that is the vertex of a voxel at each layer. Of course, a discrete code does not have to be assigned in areas where no voxels are formed at the layer in question, i.e., areas where no lower voxels are formed in a voxel at the next higher layer.

ボクセル V 内の点を示す輝度 (色 c 及び密度 ρ ) は、この各頂点の離散符号に基づいて決定される。例えば、ボクセル Vn 内の点の特徴量は、当該ボクセル Vn のそれぞれの頂点の離散符号と、それぞれの頂点からの距離に基づいた重み付けにより算出される。例えば、単純に着目点と頂点までの距離に比例した離散符号の重み付け平均により、着目点の特徴量を算出してもよい。この他、 tri-linear 補間等の手法により、任意の点の特徴量が算出されてもよい。 The brightness (color c and density ρ) representing a point within a voxel V is determined based on the discrete code of each vertex. For example, the feature value of a point within a voxel Vn is calculated using the discrete codes of each vertex of the voxel Vn and weighting based on the distance from each vertex. For example, the feature value of a point of interest may be calculated simply by taking a weighted average of the discrete codes proportional to the distance from the point of interest to the vertex. Alternatively, the feature value of an arbitrary point may be calculated using a method such as tri-linear interpolation.

第 n 階層におけるボクセル Vn_ν に属する点においては、頂点の離散符号 zVn_ν (i) (i ∈ [0, ... , 7]) を用いて第 n 階層の特徴量が算出される。例えば、座標 p が図2のボクセル Vn 内の位置を示す場合には、座標 p の点における特徴量 zn(p) は、以下のような式で算出される。
At points belonging to the voxel V n_ν in the nth layer, the feature of the nth layer is calculated using the discrete code z Vn_ν (i) (i ∈ [0, ... , 7]) of the vertex. For example, if coordinate p indicates a position within the voxel V n in Figure 2, the feature z n (p) at the point with coordinate p is calculated using the following formula:

ここで、 i は、それぞれの頂点を表すインデクスであり、 Σ は、 i に関する和を表し、 α(i) は、例えば、 tri-linear 補間におけるボクセル Vn における座標 p の各頂点に対する重みであり、 Σα(i) = 1 を満たす値であってもよい。補間手法は、 tri-linear 補間に限定されるものではなく、適切な他の補間手法を用いることができる。 α は、例えば、 p のボクセル内における位置及びボクセルにおける離散符号が割り当てられる位置により各種補間方法に基づく重み付け係数として適宜算出することができる。離散符号 zv0 (i) は、対象となるボクセルの各頂点に割り当てられており、図2の Vn_00 に属する点においては、 zVn_0 、 zVn_1 、・・・、 zVn_7 である。 Here, i is an index representing each vertex, Σ represents the sum over i, and α (i) is, for example, a weight for each vertex of coordinate p in voxel Vn in tri-linear interpolation, and may be a value that satisfies Σα (i) = 1. The interpolation method is not limited to tri-linear interpolation, and other appropriate interpolation methods can be used. α can be calculated as an appropriate weighting coefficient based on various interpolation methods, for example, depending on the position of p within the voxel and the position to which the discrete code is assigned in the voxel. The discrete code zv0 (i) is assigned to each vertex of the target voxel, and is zvn_0 , zvn_1 , ..., zvn_7 for points belonging to Vn_00 in Figure 2.

式(2)によれば、8頂点に定義されている離散符号を全て用いてボクセルに属する点の特徴量を算出しているが、8頂点の離散符号のうち一部を用いて特徴量を算出してもよい。 According to equation (2), the feature values of points belonging to a voxel are calculated using all of the discrete codes defined for the eight vertices, but the feature values may also be calculated using only some of the discrete codes for the eight vertices.

ここで、 p がボクセルの境界を形成する表面に存在する場合には、当該表面を形成する4個の頂点の離散符号を用いて式(2)により特徴量を算出してもよい。 p がボクセルの境界を形成する辺に存在する場合には、当該辺の線分の両端に定義される2個の頂点の離散符号を用いて式(2)により特徴量を算出してもよい。 Here, if p exists on a surface that forms the boundary of a voxel, the feature value may be calculated using equation (2) with the discrete codes of the four vertices that form the surface. If p exists on an edge that forms the boundary of a voxel, the feature value may be calculated using equation (2) with the discrete codes of the two vertices defined at both ends of the line segment of that edge.

別の例として、 p がボクセルの境界を形成する表面に存在する場合には、当該表面を有する2個のボクセルのそれぞれの頂点における12個の離散符号を用いてもよい。 p が4個のボクセルの境界を形成する辺に存在する場合には、当該辺を共有する4個のボクセルのそれぞれの頂点における18個の離散符号を用いてもよい。 As another example, if p is on a surface that forms a boundary of a voxel, 12 discrete codes at the vertices of each of the two voxels that make up that surface may be used. If p is on an edge that forms a boundary of four voxels, 18 discrete codes at the vertices of each of the four voxels that share that edge may be used.

また、別の例として、 p がボクセルの境界に存在する場合には、 p に対応する点を共有する複数のボクセルのうち、任意のボクセルを選択して式(2)により特徴量を算出してもよい。例えば、識別子が最も小さいボクセルのそれぞれの頂点の離散符号を用いてもよい。 As another example, if p exists on the boundary of a voxel, an arbitrary voxel may be selected from among multiple voxels that share the point corresponding to p, and the feature value may be calculated using equation (2). For example, the discrete codes of each vertex of the voxel with the smallest identifier may be used.

ボクセルの頂点における特徴量は、当該頂点に割り当てられている離散符号を用いてもよい。別の例として、当該頂点に割り当てられている離散符号及び当該頂点に隣接する8個の頂点に割り当てられている離散符号を用いて、重み付け演算をして当該頂点の特徴量としてもよい。 The feature value at a vertex of a voxel may be the discrete code assigned to that vertex. As another example, the feature value of that vertex may be determined by performing a weighting operation using the discrete code assigned to that vertex and the discrete codes assigned to the eight vertices adjacent to that vertex.

なお、後述するように、ボクセル内にシーンにおける画像を取得する対象が存在しない場合には、当該ボクセルが空であることをボクセル情報に付与してもよい。空ボクセルである場合には、特徴量の演算を省略してもよい。 As will be described later, if there is no target in a voxel for which an image is to be acquired in the scene, the voxel information may indicate that the voxel is empty. If the voxel is empty, the calculation of the feature amount may be omitted.

演算量及び/又は演算に必要となるメモリ領域を削減するためには、ボクセルの所定頂点に離散符号を割り当てるのが望ましいが、設計等によりボクセル内の任意の点に離散符号を割り当てることもできる。 To reduce the amount of calculations and/or the memory space required for the calculations, it is desirable to assign discrete codes to specific vertices of voxels, but it is also possible to assign discrete codes to any point within a voxel depending on the design, etc.

階層ごとに特徴量 zn(p) が算出された後に、この階層ごとに算出された特徴量 zn(p) を混合することでボクセル全体から見た座標 p の特徴量z(p)が算出される。
After the feature z n (p) is calculated for each layer, the feature z(p) at coordinate p as seen from the entire voxel is calculated by combining the feature z n (p) calculated for each layer.

βnは、階層ごとに割り振られる混合割合を示す。例えば、N階層までの特徴量から全階層として特徴量を取得する場合には、 β0, β1, ... , βn = 1 / N としてもよい。別の例として、シーン、入力等に依存するように、 βn(p, s) としてもよい。さらに別の例として、深い階層ほど混合割合が小さくなるように、又は、深い階層ほど混合割合が大きくなるように設定してもよい。また、これらの例に限定されるものではなく、適切な特徴量を取得できるように任意の割合としてもよい。 β n indicates the mixing ratio allocated to each layer. For example, when acquiring features for all layers from features up to the Nth layer, β 0 , β 1 , ... , β n = 1 / N may be used. As another example, β n (p, s) may be used so as to depend on the scene, input, etc. As yet another example, the mixing ratio may be set so that it becomes smaller the deeper the layer, or so that it becomes larger the deeper the layer. Furthermore, the present invention is not limited to these examples, and any ratio may be used so as to acquire appropriate features.

画素の値の推論には、式(3)に示す特徴量を用いて、撮影位置から画素の位置に対応する3次元空間を通過する経路 (半直線又は線分) に属する点列における色と密度を取得する。撮影位置は、画像を取得する位置 (カメラの焦点) とする。撮影位置におけるカメラの画像を取得する方角情報から、姿勢 d が取得される。上述したように、姿勢 d は、例えば、カメラの焦点から取得する画像のそれぞれの画素に対して延伸した半直線の方向として定義されてもよい。 To infer pixel values, the feature quantities shown in equation (3) are used to obtain the color and density of the sequence of points belonging to a path (a ray or line segment) that passes through three-dimensional space from the shooting position to the pixel position. The shooting position is the position where the image is acquired (the camera's focal point). The orientation d is obtained from the direction information from which the camera acquires the image at the shooting position. As mentioned above, the orientation d may be defined, for example, as the direction of the ray extending from the camera's focal point to each pixel in the image acquired.

座標 p 及び姿勢 d における色 c 及び密度 ρ は、例えば、式(3)で取得された特徴量 z(p) と、座標 p 及び姿勢 d の情報を式(1)の関数 F に入力することで取得できる。この F を表す訓練済みモデルは、特徴量 z(p) 、座標 p 及び姿勢 d から色 c 及び密度 ρ を取得するデコーダである。すなわち、式(3)で示す特徴量 z(p) を、デコーダに代入することより、座標 p 及び姿勢 d における色 c 及び密度 ρ の情報を取得することができる。 The color c and density ρ at coordinate p and orientation d can be obtained, for example, by inputting the feature z(p) obtained using equation (3) and the coordinate p and orientation d information into the function F in equation (1). The trained model representing this F is a decoder that obtains color c and density ρ from the feature z(p), coordinate p, and orientation d. In other words, by substituting the feature z(p) shown in equation (3) into the decoder, information about color c and density ρ at coordinate p and orientation d can be obtained.

撮影位置から取得する画像内のある画素に対する3次元空間内の経路は、上述したようにカメラの焦点から取得する画素に対して延伸した半直線の方向により取得することが可能である。姿勢 d は、この半直線の方向及びカメラの焦点の位置情報 (及び必要であればカメラの内部パラメータ等) から算出でき、座標 p は、この半直線上の点として取得することができる。 The path in 3D space for a pixel in an image acquired from the shooting position can be obtained from the direction of a ray extending from the camera's focus to the acquired pixel, as described above. The orientation d can be calculated from the direction of this ray and the position information of the camera's focus (and, if necessary, the camera's internal parameters, etc.), and the coordinate p can be obtained as a point on this ray.

もちろん、撮影位置から座標 p に至る経路に属する点列のそれぞれの点における特徴量についても、座標 p と同様に、階層的に形成されたボクセルの各頂点の離散符号を用いて算出することができる。 Of course, the feature values at each point in the sequence of points along the path from the shooting position to coordinate p can also be calculated using the discrete codes of each vertex of the hierarchically formed voxels, just as with coordinate p.

そして、カメラの位置から座標 p に至るまでの点列における色と密度の情報を生成し、この生成した色と密度の情報を用いることにより、撮影した画像の色の情報を取得する。なお、上記には、表面に関する情報については記載されていないが、もちろん色等の情報とともに、表面の情報を用いてもよい。この表面の情報は、特徴量 z に含まれてもよい。 Then, color and density information for the sequence of points from the camera position to coordinate p is generated, and this generated color and density information is used to obtain color information for the captured image. Note that although the above does not mention information about the surface, it is of course possible to use surface information along with color and other information. This surface information may be included in the feature z.

座標 p の情報は、上述したように1つの画素に対して、撮影位置及び撮影方向に基づいて、複数が抽出される。そして、この1つの画素に対して、座標 p における色の情報を密度の情報に基づいて投影することで、画素の色値が決定される。 As described above, multiple pieces of information about coordinate p are extracted for each pixel based on the shooting position and direction. Then, the color information at coordinate p is projected onto this pixel based on the density information, determining the pixel's color value.

最終的に画素の色の情報は、 r(t) をカメラの基準点 (例えば、カメラの焦点) o と姿勢 d を用いて r(t) = o + td とすると、一例として以下の式により表現される。
Finally, the color information of a pixel can be expressed as follows, for example, by the following equation, where r(t) is the camera's reference point (for example, the camera's focus) o and the orientation d, as r(t) = o + td.

ここで、 t は、色 c 及び密度 ρ の取得を取得するために用いられる姿勢 d 方向における基準点からの距離 r を示すパラメータである。 tn 、 tf は、それぞれ姿勢 d 方向について色 c 及び ρ を取得する r の最小値及び最大値を示すパラメータである。 τ(t) は、光線が tn から t まで他の粒子に当たらない確率、すなわち、 tn から t まで到達する光線の経路において加算された密度を表す。 Here, t is a parameter indicating the distance r from the reference point in the direction of orientation d used to obtain color c and density ρ. tn and tf are parameters indicating the minimum and maximum values of r to obtain color c and ρ in the direction of orientation d, respectively. τ(t) represents the probability that the ray does not hit any other particles from tn to t, i.e., the density added up on the path of the ray traveling from tn to t.

言い換えると、式(5)は、ピクセルにおけるアルファブレンディングに関係する式である。式(4)における ρ 及び c の算出に、上述の合成された座標 p における特徴量 z(p) が用いられる。 ρ(r) 及び c(r, d) の算出には、 NeRF-VAE 等の論文と同様の計算が実行されてもよい。 In other words, equation (5) is related to alpha blending at pixels. The feature z(p) at the synthesized coordinate p described above is used to calculate ρ and c in equation (4). Calculations similar to those in papers such as NeRF-VAE may be performed to calculate ρ(r) and c(r, d).

以下、上記の特徴量 z の生成方法及び階層的なボクセルについてさらに詳しく説明する。また、説明においては、図1、図2のようなボクセルの表現を2次元で表現することがあるが、これらの表現は、3次元空間における図面 (ボクセル) に相当するものである。 The following section provides a more detailed explanation of the method for generating the feature z and the hierarchical voxels. In the explanation, voxels such as those shown in Figures 1 and 2 are sometimes expressed in two dimensions, but these representations are equivalent to drawings (voxels) in three-dimensional space.

まず、階層構造のボクセルの構成と、ボクセルのそれぞれの頂点に割り当てられている離散符号から、特徴量を取得する具体例について説明する。 First, we will explain a specific example of obtaining features from the hierarchical voxel structure and the discrete codes assigned to each vertex of the voxels.

撮影対象となるシーンを表す空間を、図1に示すような第0階層のボクセル V0 とする。別の例として、シーンがクラスタリング等により分割されている場合には、分割された領域ごとに第0階層のボクセル V0 を設定してもよい。 The space representing the scene to be photographed is defined as the voxel V0 in the 0th layer as shown in Figure 1. As another example, if the scene is divided by clustering or the like, a voxel V0 in the 0th layer may be set for each divided area.

なお、画像を取得したい対象の全てを含む空間にボクセルを定義するのではなく、対象の一部が含まれる空間に第0階層のボクセルを定義してもよい。 Instead of defining voxels in a space that contains the entire object for which you want to acquire an image, you can define voxels in the 0th layer in a space that contains only a portion of the object.

ボクセルは基本的には立方体であってもよいが、適切に特徴量の取得ができる形態であれば、直方体、又は、その他の3次元形状により定義されてもよい。 Voxels may basically be cubes, but they may also be defined as rectangular parallelepipeds or other three-dimensional shapes as long as they allow for appropriate feature acquisition.

別の例として、画像を取得する対象が存在する直方体の領域を複数の同じ大きさの立方体に分割し、この分割された立方体を第0階層のボクセルとしてもよい。この場合、訓練又は推論においては、第0階層から第 n 階層までについてのそれぞれの階層における特徴量と、画像を取得する対象が存在する最終的な直方体の領域 (スーパーボクセル) の頂点の離散符号から取得されるスーパーボクセルの特徴量とを合成して全体としての特徴量を算出してもよい。 As another example, the rectangular parallelepiped region where the object to be imaged exists can be divided into multiple cubes of equal size, and these divided cubes can be used as voxels in the 0th layer. In this case, during training or inference, the overall feature can be calculated by combining the feature values at each layer from the 0th layer to the nth layer with the feature values of the supervoxel obtained from the discrete codes of the vertices of the final rectangular parallelepiped region (supervoxel) where the object to be imaged exists.

別の例として、画像を取得する直方体の領域全体を含むような立方体のボクセルを第0階層のボクセルとして定義してもよい。このように、第0階層のボクセルの定義は、適切にシーンの特徴量が取得できる形態であればどのような形状、大きさ等の形態であってもよい。 As another example, a cubic voxel that encompasses the entire rectangular parallelepiped area from which an image is to be acquired may be defined as a voxel in the 0th layer. In this way, the definition of a voxel in the 0th layer may be any shape, size, etc., as long as it allows appropriate acquisition of scene features.

これは、第0階層のボクセルの上位階層のボクセルとして8分木の構成に拘束されないスーパーボクセルを定義するのと同等である。計算コスト、メモリ量等の問題に鑑みて、どの階層を第0階層とするかを決定してもよい。この場合、スーパーボクセルの画像を取得するタイミングで適切にそれぞれの第0階層のボクセルの出力値を各種補間手法によりブレンディングしてもよい。 This is equivalent to defining supervoxels as voxels in a layer above layer 0 voxels that are not constrained by the octree structure. Which layer is layer 0 may be determined taking into account issues such as computational cost and memory size. In this case, the output values of each layer 0 voxel may be blended appropriately using various interpolation methods when the supervoxel image is acquired.

説明の簡単のため、シーンを取得する領域を立方体の第0階層のボクセルとして定義するが、上記の記載に基づいて、適宜変更することが可能である。また、図2における z 軸の方向から見た正面視として図示している。もちろん、ボクセル、離散符号等は、 z 軸に沿った方向に対しても同様に定義される。 For simplicity, the area from which the scene is captured is defined as the voxels in the 0th layer of a cube, but this can be changed as appropriate based on the above description. Also, the illustration is of a front view from the z axis direction in Figure 2. Of course, voxels, discrete codes, etc. are defined in the same way for the direction along the z axis.

例えば、図3以降の図において、犬が図面の手前側 (z 座標が小さい側) 、人が図面の奥側 (z 座標が大きい側) にいるとすると、第1階層のボクセル (図4) においては、限定されない一例として、 V1_0: 犬、 V1_1: 犬の尻尾及び後ろ脚領域、 V1_2: 空 (empty) 、 V1_3: 空 (empty) 、 V1_4: 犬の向こう側、 V1_5: 人の足、 V1_6: 空 (empty) 、 V1_7: 人の上半身、がそれぞれ存在するボクセルである。 For example, in Figure 3 and subsequent figures, if the dog is in the foreground of the drawing (the side with the smaller z coordinate) and the person is in the background of the drawing (the side with the larger z coordinate), then the voxels in the first layer (Figure 4) would contain, as a non-limiting example, V1_0 : dog, V1_1 : dog's tail and hind leg area, V1_2 : empty, V1_3 : empty, V1_4 : other side of the dog, V1_5 : person's legs, V1_6 : empty, V1_7 : person's upper body.

図3は、第0階層のボクセル V0 の一例を示す図である。この図に示すように、例えば、第0階層としては、画像を取得する対象が全てボクセルに含まれるように、ボクセルを設定してもよい。ボクセル V0 の各頂点には、左下の頂点に当該ボクセルの離散符号 zV0 (0) が、その他の頂点にはそれぞれ所定の順番にしたがって、離散符号 zV0 (1) 、 zV0 (2) 、 zV0 (3) (さらに、図面奥側に、zV0 (4) 、 zV0 (5) 、 zV0 (6) 、 zV0 (7)) が割り当てら (定義さ) れる。 FIG. 3 is a diagram showing an example of a voxel V0 in the 0th layer. As shown in this figure, for example, voxels in the 0th layer may be set so that all objects for which images are to be acquired are included in the voxels. For each vertex of the voxel V0 , the discrete code zV0 (0) of the voxel is assigned (defined) to the lower left vertex, and the discrete codes zV0 (1) , zV0 (2) , zV0 (3) are assigned (defined) to the other vertices in a predetermined order (furthermore, zV0 (4) , zV0 ( 5) , zV0 (6) , zV0 (7) at the back of the drawing).

以下においては、頂点、ボクセル及びボクセル頂点を示すインデクスは、 x 、 y 、 z 、の小さい方から順番にモートンオーダーにしたがって付与されているが、説明のために付与するものであり、これに限定されるものではなく任意の符号を割り当ててよい。 In the following, indices indicating vertices, voxels, and voxel vertices are assigned in Morton order, starting with the smallest x, y, and z, but this is for the sake of explanation and is not intended to be limiting; any symbols may be assigned.

例えば、図3において、点で示したボクセル V0 の頂点に対して、離散符号 zv0 (0) 、 zV0 (1) 、 zV0 (2) 、 zV0 (3) 、 (zV0 (4) 、 zV0 (5) 、 zV0 (6) 、 zV0 (7)) がそれぞれ割り当てわれている。第0階層において、ボクセル内の任意の座標 p における特徴量は、これらの離散符号 zv0 (i) から算出される。 For example, in Figure 3, the discrete codes zv0 (0) , zv0 (1), zv0(2) , zv0 (3) , zv0 (4) , zv0 (5) , zv0 ( 6 ) , zv0 ( 7) ) are assigned to the vertices of the voxel V0 , which is indicated by a dot. At the 0th layer, the feature quantity at any coordinate p within the voxel is calculated from these discrete codes zv0 (i) .

第0階層のボクセルに対してスーパーボクセルが定義される場合には、隣接する第0階層のボクセルと共通する頂点においては、共通する離散符号をそれぞれの頂点の離散符号として割り当ててもよい。例えば、スーパーボクセルが定義される場合には、それぞれの頂点の離散符号は、隣接するボクセルに定義されている離散符号を各頂点の離散符号として割り当ててもよい。 When a supervoxel is defined for a voxel in the 0th layer, a common discrete code may be assigned as the discrete code of each vertex at a vertex that is common to adjacent voxels in the 0th layer. For example, when a supervoxel is defined, the discrete code of each vertex may be assigned the discrete code defined for adjacent voxels.

以下においてはスーパーボクセルがないものとして説明するが、同様にスーパーボクセルが定義されている場合には、階層ごとに、第0階層の境界に備えられるボクセル内の特徴量の算出には、隣接するボクセルの離散符号を用いてもよい。 In the following explanation, we will assume that supervoxels are not present, but if supervoxels are defined, the discrete codes of adjacent voxels may be used to calculate the features within the voxels at the boundary of layer 0 for each layer.

図4は、ボクセル V0 から生成される第1階層のボクセル V1 の一例を示す図である。点線で示すように、対となる第0階層のボクセル V0 をそれぞれの辺の中央で分割し、第1階層のボクセル V1 を生成する。この生成は、後述するように、再帰的に実行されてもよい。 4 is a diagram showing an example of a voxel V1 in the first layer generated from a voxel V0 . As shown by the dotted lines, the paired voxel V0 in the 0th layer is divided at the center of each side to generate a voxel V1 in the first layer. This generation may be performed recursively, as will be described later.

ボクセル V0 は、例えば、第1階層のボクセル V1_0 、・・・、 V1_7 に分割される。第1階層のそれぞれのボクセル V1_j に対して、それぞれ頂点に離散符号 zV1_j (i) が割り当てられる。例えば、図4に表示されている正面視の状態においては、ボクセル V1_0 において矢印で示されるように所定の頂点に対して zV1_0 (0) 、 zV1_0 (1) 、 zV1_0 (2) 、 zV1_0 (3) 、 (zV1_0 (4) 、 zV1_0 (5) 、 zV1_0 (6) 、 zV1_0 (7)) が離散符号として割り当てられる。 Voxel V0 is divided into, for example, voxels V1_0 , ..., V1_7 in the first layer. For each voxel V1_j in the first layer, a discrete code zV1_j (i) is assigned to each vertex. For example, in the front view shown in Figure 4, in voxel V1_0 , as indicated by the arrows, discrete codes zV1_0 (0) , zV1_0 (1) , zV1_0 (2) , zV1_0 (3) , ( zV1_0 (4) , zV1_0 (5) , zV1_0 (6) , zV1_0 (7) ) are assigned to specific vertices.

図に示されるように、隣接するボクセル間で共有される頂点については、同じ離散符号が定義されてもよい。例えば、 zv1_0 (1) = zv1_1 (0) 、 zv1_0 (2) = zv1_2 (0) 、 zv1_0 (3) = zv1_1 (2) = zv1_2 (1) = zv1_3 (0) として割り当てられてもよい。 As shown in the figure, the same discrete code may be defined for vertices shared between adjacent voxels, for example, zv 1_0 (1) = zv 1_1 (0) , zv 1_0 (2) = zv 1_2 (0) , zv 1_0 (3) = zv 1_1 (2) = zv 1_2 (1 ) = zv 1_3 (0) .

ここで、例えば、ボクセル V1_2 には、シーンとして色値を取得する対象がないとする。このような空ボクセルに対しては、固定値としてあらかじめ設定されている空ボクセルを表す離散符号が割り当てられてもよい。すなわち、図4において、 zV1_2 (0) 、 zV1_2 (1) 、 zv1_2 (2) 、 zV1_2 (3) の値によらず、ボクセル V1_2 内の任意の点における特徴量を、空を表す特徴量をあらかじめ割り当てておいてもよい。 For example, suppose that voxel V1_2 has no scene from which a color value is to be acquired. A discrete code representing an empty voxel, which is preset as a fixed value, may be assigned to such an empty voxel. That is, in FIG. 4, regardless of the values of zV1_2 (0) , zV1_2 (1) , zV1_2 (2) , and zV1_2 (3) , a feature representing the sky may be assigned to any point within voxel V1_2 .

この空ボクセルの離散符号として、隣接するボクセルと共通する離散符号 (zV1_2 (0) 、 zV1_2 (1) 、 zV1_2 (3)) を頂点ごとに設定すると、本来反射光等の強度が0である点に対して隣接するボクセルに起因する何らかの値を有する結果となる。 If we set the discrete code of this empty voxel to a discrete code (z V1_2 (0) , z V1_2 (1) , z V1_2 (3) ) that is common to adjacent voxels for each vertex, the result will be that the intensity of reflected light, etc., at a point that would normally be 0 will have some value that is attributed to the adjacent voxels.

このような場合を回避するために、式(2)の演算の前に、当該ボクセルが空であるか否かを当該ボクセルに定義されている離散符号を読み取ることで判断してもよい。空ボクセルと判断された場合には、空ボクセルについて特徴量取得の演算を省略することもできる。すなわち、空ボクセルの離散符号を取得した場合、当該ボクセルn内の任意の点における特徴量を、空ボクセルであることを示す離散符号 zempty で表してもよい。例えば、図4においては、 zv1_2 (2) として、 zempty を割り当ててもよい。 To avoid such a case, before performing the calculation of equation (2), it is possible to determine whether the voxel is empty by reading the discrete code defined for the voxel. If the voxel is determined to be empty, the calculation for acquiring the feature value for the empty voxel can be omitted. In other words, when the discrete code of the empty voxel is acquired, the feature value at any point within the voxel n can be represented by the discrete code z empty , which indicates that the voxel is empty. For example, in FIG. 4, z empty can be assigned as zv 1_2 (2) .

図5は、ボクセル V1_0 を抜き出した図である。この図5に示すように、図3と同様に、第1階層のボクセルにおいてもその頂点に対してそれぞれ離散符号が割り当てられている。第1階層の他のボクセルも同様である。 Figure 5 shows the voxel V1_0 . As shown in Figure 5, the vertices of the voxels in the first layer are assigned discrete codes, just like in Figure 3. The same is true for the other voxels in the first layer.

なお、対象が存在しないか否かは、3次元のボクセル内に対象の少なくとも一部が存在しているかを考慮して判断してもよい。本開示の図面においては、正面視で表現されているが、例えば、図4においてボクセル V1_3 には対象が存在せずに、ボクセル V1_7 にのみ存在している可能性もある。このような場合には、もちろん、ボクセル V1_3 についても空ボクセルであると判断し、このボクセル V1_3 については、これ以下の階層のボクセルを生成しなくてもよい。 Whether or not an object is absent may be determined by considering whether at least a portion of the object is present in the three-dimensional voxel. While the drawings in this disclosure are shown in front view, for example, in FIG. 4, it is possible that no object is present in voxel V1_3 , and that an object is present only in voxel V1_7 . In such a case, it is of course possible to determine that voxel V1_3 is also an empty voxel, and not generate voxels in the hierarchy below this voxel V1_3 .

図6は、第2階層のボクセル V2 の形成の一例を示す図である。第1階層のボクセルに対する離散符号の定義後、この第1階層のボクセル V1 をそれぞれ分割することで、第2階層のボクセルが生成される。第2階層のボクセル V2 は、例えば、上述と同様に、第1階層のボクセル V1 の対になる各辺を2分 (2等分でもよい) するように分割することで生成される。 6 is a diagram showing an example of the formation of second-layer voxels V2 . After the discrete codes for the first-layer voxels are defined, the second-layer voxels are generated by dividing the first-layer voxels V1 . The second-layer voxels V2 are generated, for example, by dividing each pair of sides of the first-layer voxel V1 into two (or equally divided), as described above.

例えば、第1階層のボクセル V1_0 について、2階層目においては、ボクセル V2_00 、・・・、 V2_07 が生成される。同様に、第1階層のボクセル V1_1 について、2階層目においては、ボクセル V2_10 、・・・、 V2_17 が生成される。なお、上述したように、ナンバリングは、限定されない一例として示しているものであり、この通りである必要は無い。例えば、空ボクセルを除いて、0, 1, 2, 3, ... , 9, 10, 11, ... といったように単純にインデクスを付してもよい。また、このインデクスは、階層ごとに分けられる必要も無く、メモリ領域において適切に離散符号が格納できる形態であればよい。 For example, for a voxel V1_0 in the first layer, voxels V2_00 , ..., V2_07 are generated in the second layer. Similarly, for a voxel V1_1 in the first layer, voxels V2_10 , ..., V2_17 are generated in the second layer. Note that, as described above, the numbering is shown as an example and does not have to be as shown. For example, excluding empty voxels, simple indexes such as 0, 1, 2, 3, ..., 9, 10, 11, ... may be assigned. Furthermore, the indexes do not need to be divided by layer, and may be in any form that allows discrete codes to be appropriately stored in a memory area.

撮影対象が存在する第1階層のボクセル V1_0 、 V1_1 、 V1_4 、 V1_5 、 V1_7 については、第2階層のボクセル V2 を生成する。一方で、撮影対象が存在しない第1階層のボクセル V1_2 、 V1_3 、 V1_6 に対しては、第2階層、及び、第3階層以下の階層のボクセルを生成しなくてもよい。 For voxels V1_0 , V1_1 , V1_4 , V1_5 , and V1_7 in the first layer where the subject is present, voxels V2 in the second layer are generated. On the other hand, for voxels V1_2 , V1_3 , and V1_6 in the first layer where the subject is not present, voxels in the second layer and layers below do not need to be generated.

第1階層のボクセル V1_0 は、第2階層のボクセル V2_00 、・・・、 V2_07 に分割される。同様に、第1階層のボクセル V1_1 、 V1_4 、 V1_5 、 V1_7 は、第2階層のボクセルに分割される。このように、階層ごとに空ボクセルを考慮しない状態で8倍ずつにボクセルが分割される。 Voxel V1_0 in the first layer is divided into voxels V2_00 , ..., V2_07 in the second layer. Similarly, voxels V1_1 , V1_4 , V1_5 , V1_7 in the first layer are divided into voxels in the second layer. In this way, voxels are divided by 8 times for each layer without taking empty voxels into consideration.

この第2階層のボクセル V2 に対しては、上記と同様にそれぞれのボクセル V2 に対して第3階層のボクセル V3 が生成される。この図6においては、例えば、ボクセル V2_31 は、空ボクセルとなる。このような空ボクセルは、上記と同様に、空ボクセルを示す離散符号を割り当ててもよい。さらに、第3階層以下の階層におけるボクセルの生成対象としなくてもよい。 For each voxel V2 in the second layer, a voxel V3 in the third layer is generated in the same manner as described above. In FIG . 6, for example, voxel V2_31 is an empty voxel. Such an empty voxel may be assigned a discrete code indicating an empty voxel, as described above. Furthermore, it is not necessary to generate voxels in the third layer or lower layers.

これらのボクセルに関しても第0階層、第1階層と同様に頂点ごとに特徴量を算出するための離散符号が割り当てられる。図2の場合と同様に、離散符号は、頂点ではなくボクセル内 (境界を含む) の任意の位置に割り当てられてもよい。 For these voxels, just like the 0th and 1st layers, discrete codes are assigned to calculate features for each vertex. As in Figure 2, discrete codes may be assigned to any position within the voxel (including the boundary) rather than to the vertices.

図7は、第2階層のボクセルにおける離散符号の定義の一例を示す図である。第2階層のボクセルとして、ボクセル V2_03 を抽出している。図7に示すように、ボクセル V2_03 のそれぞれの頂点に離散符号 zV2_03 (0) 、 zV2_03 (1) 、 zV2_03 (2) 、 zV2_03 (3) が割り当てられている。上記と同様に、例えば、zv2_03 (0) = zv2_00 (3) = zv2_01 (2) = zv2_02 (1) であってもよく、他の頂点の離散符号についても同様であってもよい。他の第2階層のボクセル V2 についても同様に離散符号が定義される。 FIG. 7 is a diagram showing an example of the definition of discrete codes for voxels in the second layer. Voxel V2_03 is extracted as a voxel in the second layer. As shown in FIG. 7, discrete codes zV2_03 ( 0) , zV2_03 (1) , zV2_03 (2) , and zV2_03 (3) are assigned to the vertices of voxel V2_03. As above, for example, zv2_03 (0) = zv2_00 (3) = zv2_01 (2) = zv2_02 (1) , and the same may be true for the discrete codes of other vertices. Discrete codes are defined similarly for other voxels V2 in the second layer.

このようなボクセルの階層化及び離散符号の割り当てが必要な階層まで繰り返される。必要な階層は、例えば、解像度に基づいて決定されてもよいし、訓練を行う訓練装置又は推論を行う推論装置の計算能力 (例えば、プロセッサの演算能力又はストレージ、メモリ領域の大きさ) に基づいて決定されてもよい。また、この他の適切な任意の理由により階層の深さを決定することができる。 This layering of voxels and assignment of discrete codes is repeated until the required layer is reached. The required layer may be determined, for example, based on the resolution, or based on the computational capabilities of the training device or inference device (e.g., the processor's computing power or the size of the storage or memory area) used to perform the training or inference. The depth of the layer may also be determined for any other appropriate reason.

空ボクセルに限られず、物体の内部を示すボクセルにおいては、それよりも下位のボクセルを生成しなくてもよい。例えば、透明度が0 (光を遮蔽する) である表面に囲まれている領域 (例えば、透明度が0の表面に囲まれている閉領域) は、光の強度を取得する推論、計算対象としなくてもよい。このような領域においては、それ以上のボクセルを生成することにより取得するピクセル値の精度が向上することはない。 Not only for empty voxels, but also for voxels that represent the interior of an object, it is not necessary to generate lower-level voxels. For example, areas surrounded by surfaces with a transparency of 0 (which blocks light) (such as closed areas surrounded by surfaces with a transparency of 0) do not need to be included in the inference and calculation of light intensity. In such areas, generating more voxels will not improve the accuracy of the pixel values obtained.

このため、他の表面を示すボクセルにより囲まれているボクセルについては、それ以上下位のボクセルに分割されなくてよい。このように表面を示すボクセルにより囲まれているボクセルにおいては、空ボクセルと同じように物体内部であることを示す離散符号をボクセル自体に割り当ててもよい。そして、空ボクセルの場合と同様に、離散符号から特徴量の演算を省略してもよい。 For this reason, voxels surrounded by other surface voxels do not need to be further divided into lower-level voxels. For voxels surrounded by surface voxels in this way, a discrete code indicating that the voxel is inside an object may be assigned to the voxel itself, just as with empty voxels. Then, just like with empty voxels, calculation of feature quantities from the discrete code may be omitted.

訓練又は推論を実行する処理回路は、記憶装置から空ボクセル及び物体内部のボクセルを読み取った場合には、当該ボクセルを演算対象から外してもよい。処理回路は、空ボクセルにおいては指定された座標における特徴量を演算しなくてもよい。 When a processing circuit that performs training or inference reads an empty voxel or a voxel inside an object from a storage device, it may exclude that voxel from the calculation. The processing circuit may not calculate the feature value at the specified coordinates for the empty voxel.

処理回路は、例えば、座標 p における特徴量を取得するタイミングにおいて、座標 p が属する最も深い階層のボクセルから走査してもよく、このボクセルに空ボクセルであること、又は、物体内部であるボクセルであること、の情報が付与されている場合には、当該特徴量の演算を省略してもよい。尤も、処理回路がアクセラレータとしてのマルチコア又はメニーコアプロセッサであり、演算しても速度が変わらない場合には、処理回路は、全てのボクセルについて演算した後に、空ボクセル又は物体内部のボクセルである特徴量を当該座標 p に対する特徴量 z(p) として割り当ててもよい。 For example, when acquiring a feature at coordinate p, the processing circuit may scan from the voxel at the deepest level to which coordinate p belongs. If information indicating that this voxel is an empty voxel or a voxel located inside an object is attached to the voxel, the processing circuit may omit the calculation of that feature. However, if the processing circuit is a multi-core or many-core processor acting as an accelerator and the calculation speed does not change, the processing circuit may calculate all voxels, and then assign the feature that is an empty voxel or a voxel located inside an object as the feature z(p) for that coordinate p.

また、別の例として、空のボクセル又は物体内部のボクセルであることを取得した場合、処理回路は、当該座標に関しては、色情報等の算出を省略してもよい。処理回路は、例えば、密度情報を0にすることで空のボクセル又は物体内部のボクセルであることを表してもよい。別の例として、処理回路は、例えば、空のボクセルに属する座標であることを示す色及び/又は密度情報、物体内部のボクセルに属する座標であることを示す色及び/又は密度情報をあらかじめそれぞれ定義しておいてもよい。 As another example, if the processing circuit determines that the coordinates are empty voxels or voxels inside an object, the processing circuit may omit calculating color information, etc. for those coordinates. The processing circuit may indicate that the voxel is empty or inside an object by, for example, setting density information to 0. As another example, the processing circuit may predefine color and/or density information indicating that the coordinates belong to an empty voxel, and color and/or density information indicating that the coordinates belong to a voxel inside an object.

座標 p が属するボクセルが空のボクセル又は物体内部のボクセルである場合には、処理回路は、それぞれの場合に対して定義されている色情報/密度情報を当該座標 p に対する色情報/密度情報として、以降の演算 (例えば、式(4)、式(5)に基づく演算) を実行してもよい。また、処理回路は、一度空のボクセル又は物体内部のボクセルと判断されたボクセルに属する座標 p に関しては、以降の演算から当該座標 p に関する演算を省略してもよい。 If the voxel to which coordinate p belongs is an empty voxel or a voxel inside an object, the processing circuit may perform subsequent calculations (e.g., calculations based on equations (4) and (5)) using the color information/density information defined for each case as the color information/density information for coordinate p. Furthermore, once the processing circuit has determined that coordinate p belongs to a voxel that is an empty voxel or a voxel inside an object, it may omit calculations for coordinate p from subsequent calculations.

また、処理回路は、視線 (カメラに入る光線を含む) において表面を示すボクセルに到達した場合には、それよりも視線方向の奥 (向こう側) にあるボクセルを演算対象から外してもよいし、この判断として物体内部のボクセルの離散符号を取得した場合に、当該ボクセルの1個手前のボクセルまでに取得できる特徴量で演算を実行する形態としてもよい。 Furthermore, when the processing circuit reaches a voxel representing the surface in the line of sight (including the light rays entering the camera), it may exclude voxels further in the line of sight (on the other side) from the calculation target. In making this judgment, if the discrete code of a voxel inside an object is obtained, the calculation may be performed using the feature values that can be obtained up to the voxel immediately before the voxel in question.

なお、離散符号を割り当てるボクセルは、シーン内部における画像を取得する対象 (生物、物体、建物等) の表面を含むボクセルだけであってもよい。このように表面を含むボクセルだけに離散符号を割り当てることで、必要なメモリ領域を大幅に削減することができる。さらに、表面を含むボクセルだけの情報を取得することで、その他のボクセルにおけるアルファブレンディングを省略 (密度 ρ = 0) とすることもでき、計算コストを軽減することもできる。 Note that the voxels to which discrete codes are assigned may be only those that contain the surface of the object (living thing, object, building, etc.) within the scene for which images are being acquired. By assigning discrete codes only to voxels that contain surfaces in this way, the required memory space can be significantly reduced. Furthermore, by acquiring information only about voxels that contain surfaces, alpha blending for other voxels can be omitted (density ρ = 0), thereby reducing computational costs.

尤も、例えば、霧がかかっている様子を表現するために、密度 ρ が定義されることもある。このような場合においては、カメラの位置からの視線方向に基づいて、視線が表面であることを示す離散符号を有するボクセルまでの経路が属するボクセルについて、離散符号から特徴量を算出する形態としてもよい。 However, density ρ may be defined, for example, to represent a foggy appearance. In such cases, based on the line of sight from the camera position, the feature value may be calculated from the discrete code for voxels to which the line of sight leads to a voxel having a discrete code indicating a surface.

次に、式(2)及び式(3)についての特徴量の取得について一例を挙げて説明する。上述したように、例えば、1シーンに対して1つの第0階層のボクセルが対応してもよい。このボクセルは、複数の階層構造で構成されてもよい。各階層のボクセルのそれぞれの頂点には、当該ボクセル内部の特徴量を算出するための離散符号が階層ごとに割り当てられている。 Next, we will explain an example of how to obtain the features for equations (2) and (3). As mentioned above, for example, one voxel in the 0th layer may correspond to one scene. These voxels may be configured in a multi-layer structure. Each vertex of a voxel in each layer is assigned a discrete code for calculating the features within that voxel.

図8は、特徴量の取得の説明のための図である。例えば、★で示される点における特徴量の取得について説明する。 Figure 8 is a diagram for explaining how to obtain feature values. For example, we will explain how to obtain feature values at points indicated by ★.

まず、矢印で示されるように、第0階層のボクセル V0 の頂点に定義されている特徴量 zV0 (0) 、 zV0 (1) 、 zV0 (2) 、 zV0 (3) 、(zV0 (4) 、 zV0 (5) 、 zV0 (6) 、 zV0 (7)) を用いて式(2)より第0階層の特徴量 z0 を、例えば、式(6)を用いて取得する。
First, as shown by the arrows, the feature z V0 (0) , z V0 (1 ) , z V0 (2 ), z V0 ( 3 ), (z V0 (4) , z V0 (5) , z V0 (6) , z V0 (7) ) defined at the vertices of the voxel V 0 in the 0th layer are used to obtain the feature z 0 in the 0th layer from equation (2), for example, using equation (6).

α は、例えば、対象となる座標までの距離に基づいて設定される重み付け係数である。上述したように、種々の補間手法の少なくとも1つによりこの重み付けが決定されてもよい。 α is a weighting coefficient that is set, for example, based on the distance to the target coordinate. As described above, this weighting may be determined using at least one of a variety of interpolation techniques.

第0階層の特徴量のみから画像を生成する場合には、画像のピクセルに対応する点についてボクセル V0 の離散符号を参照し、座標 p における特徴量を取得し、この特徴量を式(1)の関数 F に入力することで、色 c 、密度 ρ を取得し、これに基づいて式(4)、式(5)によりそれぞれのピクセルの画素値を取得することができる。この場合、式(3)を省略して、式(6)で取得された特徴量を用いて画素値を取得することもできる。 When generating an image from only the features of the 0th layer, the discrete code of voxel V0 is referenced for the point corresponding to the pixel of the image to obtain the feature at coordinate p, and this feature is input into function F in equation (1) to obtain color c and density ρ, and based on this, the pixel value of each pixel can be obtained using equations (4) and (5). In this case, equation (3) can be omitted and pixel values can be obtained using the feature obtained in equation (6).

第0階層よりも深い階層の特徴量を必要とする場合には、第1階層から深い階層へと順番に階層ごとの特徴量を取得する。 If features from layers deeper than layer 0 are required, obtain the features for each layer in order, starting from layer 1 and working your way up.

図9は、第1階層における特徴量の取得を説明するための図である。同様に★における特徴量を矢印で示すように第1階層のボクセルV1の頂点に定義されている離散符号から算出する。★は、ボクセル V1_0 に存在するので、このボクセル V1_0 の頂点の離散符号を用いて第1階層における特徴量を取得する。第1階層の特徴量 z1 は、例えば、以下の式(7)を用いて算出することができる。
FIG. 9 is a diagram for explaining how to obtain features in the first layer. Similarly, the feature at ★ is calculated from the discrete code defined at the vertex of voxel V1 in the first layer, as indicated by the arrow. Since ★ exists in voxel V1_0 , the feature at the first layer is obtained using the discrete code at the vertex of this voxel V1_0 . The feature z1 in the first layer can be calculated, for example, using the following equation (7):

第1階層までの特徴量を用いて画像を生成する場合には、式(6)及び式(7)により算出された z0(p) 及び z1(p) を式(3)に入力することで、当該座標 p における特徴量を取得することが可能となる。この特徴量を適切に処理することで、上記と同様に、ピクセルごとの画素値を取得することができる。 When generating an image using features up to the first layer, it is possible to obtain the feature at the coordinate p by inputting z0 (p) and z1 (p) calculated by equations (6) and (7) into equation (3). By appropriately processing these features, it is possible to obtain the pixel value for each pixel, as described above.

図10は、第2階層における特徴量の取得を説明するための図である。同様の★における特徴量を矢印で示すように第2階層のボクセル V2 の頂点の離散符号から算出する。★は、ボクセル V2_03 に存在するので、このボクセル V2_03 の頂点の離散符号を用いて第2階層における特徴量を取得する。第2階層の特徴量 z2 は、例えば、以下の式(8)を用いて算出することができる。
FIG. 10 is a diagram for explaining how to obtain features at the second layer. The feature at the same ★ is calculated from the discrete code of the vertex of voxel V2 at the second layer, as indicated by the arrow. Since ★ exists at voxel V2_03 , the feature at the second layer is obtained using the discrete code of the vertex of this voxel V2_03 . The feature z2 at the second layer can be calculated, for example, using the following equation (8).

第2階層までの特徴量を用いて画像を生成する場合には、式(6)から式(8)により算出された z0(p) から z2(p) を式(3)に入力することで、当該座標 p における特徴量を取得することが可能となる。この特徴量を適切に処理することで、上記と同様に、ピクセルごとの画素値を取得することができる。 When generating an image using features up to the second layer, it is possible to obtain the feature at the coordinate p by inputting z0 (p) to z2 (p) calculated by equations (6) to (8) into equation (3). By appropriately processing these features, it is possible to obtain the pixel value for each pixel, as described above.

以下の階層においても同様に、式(2)に基づいて階層ごとの特徴量が取得され、取得された階層ごとの特徴量から式(3)に基づいて、座標 p に対する特徴量を取得する。取得した特徴量と、座標 p 及び姿勢 d から式(1)に基づいて、色 c 及び密度 ρ が取得される。そして、取得された必要な情報を用いて、式(4)、式(5)から、撮影された画像における画素ごとの色値を取得することができる。 Similarly, for the following layers, the feature values for each layer are obtained based on equation (2), and the feature values for coordinate p are obtained from the obtained feature values for each layer based on equation (3). The color c and density ρ are obtained from the obtained feature values, coordinate p, and orientation d based on equation (1). Then, using the necessary information obtained, the color value for each pixel in the captured image can be obtained from equations (4) and (5).

ここまでのボクセルの分割についてまとめると、本開示によれば、離散符号を用いて特徴量を算出する形態とすることで、特徴量を記憶するために必要となる記憶領域を削減することができる。例えば、座標ごとに連続した特徴量を定義する場合と比べて大幅にメモリ領域を削減することができる。 To summarize the voxel division discussed so far, according to the present disclosure, by calculating features using discrete codes, it is possible to reduce the memory area required to store the features. For example, this allows for a significant reduction in memory area compared to when continuous features are defined for each coordinate.

また、空白のボクセル又は物体内部のボクセルのうち少なくとも一方を設定することで、計算コスト及び記憶コストを低減することができる。空白のボクセルは、視線がある場合においても一律に透明とすることもできる。このため、このようなボクセルに関しては、ピクセルの値の取得において、演算の対象外とすることができる。 Furthermore, by setting either blank voxels or voxels inside an object, calculation and storage costs can be reduced. Blank voxels can also be made uniformly transparent even when there is a line of sight. Therefore, such voxels can be excluded from calculations when obtaining pixel values.

また、階層ごとのボクセルを設定し、特徴量を離散符号から算出できる形態で階層ごとのボクセルに定義することにより、より精度の高い画像の推論をすることができる。また、出力する画像の解像度に応じて、精度の高さを重視するか又は計算コストを重視するかを決定することができる。異なる解像度を有する特徴量をそれぞれのボクセルの階層において定義することができる。このため、ユーザが望んでいる解像度に合わせて演算コストを制御することができる。さらに、高解像度の画像、映像を取得する場合でも、上位のボクセルから順に処理することで、まずは大まかな形状を取得し、徐々に精細な情報を取得するといったことが可能となる。 In addition, by setting voxels for each layer and defining features for each layer in a form that allows them to be calculated from discrete codes, it is possible to infer images with higher accuracy. Furthermore, depending on the resolution of the image to be output, it is possible to decide whether to prioritize high accuracy or computational cost. Features with different resolutions can be defined at each voxel layer. This makes it possible to control computational costs according to the resolution desired by the user. Furthermore, even when acquiring high-resolution images or videos, by processing the voxels in order from the highest, it is possible to first acquire a rough shape and then gradually acquire more detailed information.

また、表面に囲まれているボクセルについて下位の階層のボクセルを生成しないことで、ボクセル数を減らし、演算コスト及び記憶領域を削減することが可能となる。 In addition, by not generating lower-level voxels for voxels surrounded by surfaces, it is possible to reduce the number of voxels, as well as the computational costs and storage space required.

なお、各階層におけるボクセルは、対象が存在しない又は対象 (物体) の内部である、といった条件の他に種々の条件付けにより生成してもよい。 In addition, voxels in each layer may be generated based on various conditions, such as no object being present or being inside an object (object).

例えば、対象においても平坦な表面と複雑なテクスチャを有する表面があることが多い。このような場合には、平坦な領域においては、浅い階層までの離散符号が定義され、複雑なテクスチャの領域においては、より深い階層までの離散符号が定義されていてもよい。この場合、ボクセルに終端フラグ等の情報を付与し、当該終端フラグが立てられているボクセルは、それよりも深い階層のボクセルが定義されていない旨を表現してもよい。 For example, objects often have flat surfaces and surfaces with complex textures. In such cases, discrete codes may be defined up to shallow levels in flat regions, and discrete codes may be defined up to deeper levels in complex texture regions. In this case, information such as an end flag may be added to voxels, and a voxel with this end flag set may indicate that no voxels at deeper levels are defined.

上記においては、階層構造のボクセルは、画像を取得する対象に基づいて生成されたが、これには限定されず、別の一例として、後述するように訓練において自動的に生成されていくものであってもよい。 In the above, the hierarchical voxels were generated based on the object for which images are being acquired, but this is not limited to this. As another example, they may be generated automatically during training, as described below.

(推論装置)
画素値を推論する推論装置は、例えば、処理回路 (プロセッサ) と、記憶装置 (メモリ、ストレージ) と、を備える。処理回路は、例えば、膨大な並列演算が可能である GPU 等のアクセラレータとして動作する適切な演算能力を有するプロセッサを備え、又は、アクセラレータと接続されてもよい。この場合、処理回路は、アクセラレータとは別に制御をするための CPU 等のプロセッサを備えてもよい。記憶装置は、処理において必要となるデータを記憶、保持する装置である。
(reasoning device)
An inference device that infers pixel values includes, for example, a processing circuit (processor) and a storage device (memory, storage). The processing circuit may include, for example, a processor with appropriate computing power that operates as an accelerator such as a GPU capable of massive parallel operations, or may be connected to an accelerator. In this case, the processing circuit may include a processor such as a CPU for control separately from the accelerator. The storage device is a device that stores and holds data required for processing.

この推論装置は、後述する訓練装置において生成された情報に基づいて、シーンの少なくとも一部を撮影可能に設置されているカメラからの撮影画像を生成する。以下、撮影画像 (影像を含む。以下、画像と記載する。) を構成する単位を画素とし、この画素の色を示す値 (アルファチャネルを含んでもよい) を画素値とする。 This inference device generates captured images from a camera installed so that it can capture at least a portion of a scene, based on information generated by a training device (described below). Hereinafter, the unit that makes up a captured image (including a shadow image; hereafter referred to as an image) is referred to as a pixel, and the value indicating the color of this pixel (which may include an alpha channel) is referred to as the pixel value.

図11は、シーンにおける各ピクセルの画素値を取得する処理について示すフローチャートである。 Figure 11 is a flowchart showing the process of obtaining the pixel value of each pixel in a scene.

まず、処理回路は、対象を含む画像の取得位置及び画像の取得方向を取得する (S100) 。この位置及び方向は、一例として、画像を取得するカメラの情報であってもよい。これは、画像をどのような位置から、どのような角度で取得するかを表す情報である。 First, the processing circuit acquires the acquisition position and acquisition direction of an image containing the target (S100). This position and direction may, for example, be information about the camera that acquires the image. This information indicates the position and angle from which the image is acquired.

処理回路は、この情報に基づいて、シーン (ボクセル) が画像 (指定された情報により3次元空間に配置されたカメラによる撮影領域) 内に存在するか否かを判断し、シーンが画像の範囲から外れるようであればエラーを返してもよい。すなわち、取得されたカメラの位置及び方向情報に基づいて撮影をした場合に、シーン内に存在する対象の少なくとも一部が撮影される領域に含まれるか否かを判定して、判定結果に基づいた処理をしてもよい。 Based on this information, the processing circuitry may determine whether the scene (voxel) is present within the image (the area captured by a camera positioned in three-dimensional space according to specified information), and may return an error if the scene is outside the image range. In other words, the processing circuitry may determine whether at least a portion of an object present within the scene would be included in the area captured when an image is captured based on the acquired camera position and direction information, and perform processing based on the determination result.

また、これを回避するため、例えば、取得する画像に関する情報は、対象からの距離と、画像を取得する方向 (例えば、ボクセルの中心に対してどの方向からの画像を取得するかを示すパラメータ) と、で設定してもよい。この場合、処理回路が画像の取得位置及び画像の取得方向を算出してもよい。 To avoid this, for example, information about the image to be acquired may be set using the distance from the object and the direction in which the image is acquired (for example, a parameter indicating the direction from which the image is acquired relative to the center of the voxel). In this case, the processing circuitry may calculate the image acquisition position and image acquisition direction.

次に、処理回路は、画像の各画素についての処理をループ処理で実行する (S102) 。 Next, the processing circuit performs a loop process on each pixel of the image (S102).

処理回路は、各画素において、カメラの位置及び画素値を取得する方向 (視線方向) に基づいて、ボクセル内において画素値を算出するための1又は複数の座標に関する情報を取得する (S104) 。1又は複数の座標に関する情報は、例えば、画素値の算出に必要となる輝度場の情報を取得する座標の位置を示す情報である。この座標に関する情報は、例えば、画像を取得する位置に展開された画素から視線方向 (処理によっては視線方向に基づいた方向) に延伸する直線が第0階層のボクセル V0 を横切る領域における点の座標の情報である。 The processing circuit acquires, for each pixel, information about one or more coordinates for calculating the pixel value within the voxel based on the camera position and the direction (line of sight) in which the pixel value is acquired (S104). The information about one or more coordinates is, for example, information indicating the position of the coordinates at which luminance field information required for calculating the pixel value is acquired. This coordinate information is, for example, information about the coordinates of a point in an area where a line extending from the pixel deployed at the position where the image is acquired in the line of sight (or in a direction based on the line of sight, depending on the processing) crosses the voxel V0 in the 0th layer.

取得する座標は、例えば、視線上において画素の位置から所定距離ごとに取得される情報であってもよい。また、この座標は、ボクセルと視線とが交差する点から所定距離ごとに取得される情報であってもよい。これらに限定されるものではなく、処理回路は、任意の個数の座標に関する情報を取得してもよい。この取得粒度により、式(4)における積算の粒度が決定する。 The coordinates to be acquired may be, for example, information acquired at a predetermined distance from the position of a pixel on the line of sight. Alternatively, these coordinates may be information acquired at a predetermined distance from the point where the voxel intersects with the line of sight. This is not limited to these, and the processing circuit may acquire information regarding any number of coordinates. The granularity of the accumulation in equation (4) is determined by the granularity of the acquisition.

また、座標の情報は、例えば、式(4)におけるパラメータ t を用いて示される情報であってもよい。この場合、処理回路は、輝度場の情報を取得する以前のタイミングにおいて、パラメータ t からボクセル内の座標の位置を示す情報を取得してもよい。 In addition, the coordinate information may be, for example, information indicated using the parameter t in equation (4). In this case, the processing circuit may obtain information indicating the coordinate position within the voxel from the parameter t at a timing before obtaining the luminance field information.

次に、処理回路は、画素に対する各座標についての処理をループ処理で実行する (S106) 。 Next, the processing circuit performs a loop process for each pixel coordinate (S106).

次に、処理回路は、座標に対する各階層についての処理をループ処理で実行する (S108) 。 The processing circuit then executes a loop process for each layer for the coordinates (S108).

処理回路は、各階層における座標が属するボクセルの情報を取得する (S110) 。処理回路は、例えば、ボクセルに付与されている識別子の情報を座標情報から取得する。上述の図8から図10の例では、第0階層では V0 、第1階層では V1_0 、第2階層では V2_03 の情報を取得する。 The processing circuit acquires information about the voxel to which the coordinates belong in each layer (S110). For example, the processing circuit acquires information about the identifier assigned to the voxel from the coordinate information. In the example of Figures 8 to 10, the processing circuit acquires information about V0 in the 0th layer, V1_0 in the 1st layer, and V2_03 in the 2nd layer.

次に、処理回路は、取得されたボクセルにおける当該座標の特徴量 (第2特徴量) を算出する (S112) 。処理回路は、ボクセルの頂点に対して割り当てられている離散符号の情報を取得し、取得された頂点の離散符号の情報に基づいて、着目している階層における当該座標の特徴量を取得する。処理回路は、例えば、式(2)等に基づいて、階層ごとの特徴量を算出する。 Next, the processing circuit calculates the feature value (second feature value) of the coordinate in the acquired voxel (S112). The processing circuit acquires information about the discrete code assigned to the vertex of the voxel, and acquires the feature value of the coordinate in the layer of interest based on the information about the discrete code of the acquired vertex. The processing circuit calculates the feature value for each layer based on, for example, equation (2).

全ての階層における処理が終了するまで、S110及びS112の処理が階層ごとに繰り返し実行される (S108') 。 The processes of S110 and S112 are repeated for each layer until processing is completed for all layers (S108').

全ての階層において座標の特徴量を取得した後、処理回路は、当該座標に対するボクセル全体としての特徴量を取得する (S114) 。処理回路は、階層ごとに取得された特徴量(第2特徴量)を、例えば、式(3)に入力することで、ボクセル全体としての特徴量(第1特徴量)を取得する。 After acquiring the coordinate feature values for all layers, the processing circuit acquires the feature values for the entire voxel for that coordinate value (S114). The processing circuit acquires the feature values for the entire voxel (first feature values) by inputting the feature values acquired for each layer (second feature values) into, for example, equation (3).

次に、処理回路は、取得した座標ごとの特徴量 z(x) (第1特徴量) 、及び、座標 x 、姿勢 d の情報を、例えば、式(1)が示すニューラルネットワークモデルに入力することで、座標 x 及び姿勢 d における色 c 、密度 ρ を取得する (S116) 。ニューラルネットワークに入力される位置及び姿勢に関する情報は、例えば、 transformer 等によりエンコードされた情報であってもよい。以下においても、位置及び姿勢に関する情報は、適切に位置エンコードされた情報であってもよい。 transformer を用いて適切に位置エンコードすることで、離散符号をより適切に連続的な特徴量へと変換した状態で復元することができる。 The processing circuit then inputs the feature z(x) (first feature) for each coordinate obtained, as well as the coordinate x and orientation d information, into a neural network model such as that shown in equation (1), to obtain the color c and density ρ at the coordinate x and orientation d (S116). The position and orientation information input to the neural network may be information encoded using a transformer, for example. Hereinafter, the position and orientation information may also be appropriately position-encoded information. By appropriately position-encoding using a transformer, the discrete code can be more appropriately converted into a continuous feature and restored.

視線上の全ての座標における色 c 、密度 ρ を取得するまで、 S108 から S116 の処理が座標ごとに繰り返し実行される (S106') 。 The processes from S108 to S116 are repeated for each coordinate until the color c and density ρ for all coordinates along the line of sight are obtained (S106').

視線上の演算に必要となる全ての座標における色 c 、密度 ρ を取得した後、処理回路は、対象となる画素の画素値を取得する (S118) 。この処理は、例えば、式(4)、式(5)等を用いて実行される。 After obtaining the color c and density ρ at all coordinates required for calculations along the line of sight, the processing circuit obtains the pixel value of the target pixel (S118). This process is performed using, for example, equations (4) and (5).

そして、処理回路は、全ての画素値が取得されるまで上記 S102 からの処理を繰り返し実行する (S102') 。画像を構成する画素において画素値が取得されると、処理回路は、これらの画素値に基づいて、シーン情報、例えば、シーンを撮影した画像、映像情報を出力する (S120) 。 The processing circuit then repeats the process from S102 onwards until all pixel values have been acquired (S102'). Once pixel values have been acquired for the pixels that make up the image, the processing circuit outputs scene information, such as a captured image of the scene, or video information, based on these pixel values (S120).

上記では、 S102 、 S106 及び S108 においてループ処理がある。これらのループ処理は、逐次的に実行される処理に限定されるものではない。 S102 においては、少なくとも一部の画素についての演算が並列処理で実行されてもよい。 S106 においては、少なくとも一部の座標についての演算が並列処理で実行されてもよい。 S108 においては、少なくとも一部の階層についての演算が並列処理で実行されてもよい。すなわち、処理回路は、任意の粒度で並列演算を実行してもよい。 In the above, there are loop processes in S102, S106, and S108. These loop processes are not limited to being executed sequentially. In S102, calculations for at least some of the pixels may be executed in parallel. In S106, calculations for at least some of the coordinates may be executed in parallel. In S108, calculations for at least some of the hierarchies may be executed in parallel. In other words, the processing circuit may execute parallel calculations at any granularity.

例えば、処理回路は、複数の画素のそれぞれにおける複数の座標のそれぞれに対する複数の階層の演算 (S110、S112) を同じタイミングで実行してもよい。処理回路は、複数の階層の演算後に、座標ごとの特徴量を並列処理で取得 (S114) し、並列処理でこの特徴量に基づいたニューラルネットワークモデルの処理を実行 (S116) してもよい。処理回路は、各画素における輝度場の出力情報からの画素値の取得 (S118) を並列処理で実行してもよい。また、処理回路は、並列演算を実行するにあたり、必要に応じて、例えば、リダクション処理で並列演算を高速化してもよい。 For example, the processing circuit may simultaneously perform calculations at multiple levels for each of multiple coordinates for each of multiple pixels (S110, S112). After performing calculations at multiple levels, the processing circuit may acquire feature values for each coordinate through parallel processing (S114) and execute processing of a neural network model based on these feature values through parallel processing (S116). The processing circuit may also execute parallel processing to acquire pixel values from output information of the luminance field for each pixel (S118). Furthermore, when performing parallel calculations, the processing circuit may, as necessary, speed up the parallel calculations by, for example, performing reduction processing.

なお、上記においては、ボクセルの構成が定義された後の処理を示しているが、このボクセルの構成の生成については、後述にて詳しく説明する。ボクセルの構成を処理回路が生成する場合には、処理回路は、 S100 の処理の前後において、このボクセルの構成を生成する処理を実行したのちに、 S102 からの処理を実行する。 Note that the above describes the processing after the voxel configuration has been defined, but the generation of this voxel configuration will be explained in detail later. When the voxel configuration is generated by the processing circuit, the processing circuit executes the processing to generate this voxel configuration before and after the processing of S100, and then executes the processing from S102.

(訓練装置)
輝度場を表現するニューラルネットモデルを訓練する訓練装置は、例えば、推論装置と同様に、処理回路 (プロセッサ) と、記憶装置 (メモリ、ストレージ) と、を備える。プロセッサは、例えば、膨大な並列演算が可能であるプロセッサといったアクセラレータとして動作する演算能力を有するプロセッサを有し、又は、アクセラレータとして動作する演算能力を有するプロセッサと接続されてもよい。記憶装置は、処理において必要となるデータを記憶、保持する装置である。また、訓練装置は、推論装置と少なくともその一部が同一の装置であってもよい。
(Training device)
A training device that trains a neural network model that represents a luminance field includes, for example, a processing circuit (processor) and a storage device (memory, storage), similar to an inference device. The processor may have a processor capable of massively parallel operations and have the computing power to operate as an accelerator, or may be connected to a processor having the computing power to operate as an accelerator. The storage device is a device that stores and holds data required for processing. The training device may also be at least partially the same device as the inference device.

訓練装置は、限定されない一例として、 VQ-VAE と同じ枠組みにおいて訓練を実行してもよい。 As a non-limiting example, the training device may perform training in the same framework as VQ-VAE.

訓練装置は、複数の画像を用いて1つのシーンに対応するボクセルを生成するためのモデルを訓練する。訓練装置は、学習データとしてボクセルを形成する所定シーンを複数のカメラ情報 C (複数の撮影位置及び撮影方向) により撮影した画像を用いる。別の例としては、異なる内部パラメータを有するカメラ情報を有するカメラで撮影された画像が含まれていてもよい。 The training device uses multiple images to train a model for generating voxels corresponding to a single scene. The training device uses images of a specific scene from which voxels are to be formed, captured using multiple camera information C (multiple shooting positions and shooting directions), as learning data. As another example, the training data may include images captured by cameras with camera information having different internal parameters.

訓練装置は、例えば、 VAE の手法により、学習データが入力されて輝度場を (確率分布として) 出力するエンコーダと、当該輝度場とカメラ情報 C に基づいて画像を生成するデコーダと、を訓練する。訓練装置は、一例として、後述するようにこの VAE のエンコーダの出力を VQ-VAE のように離散符号で表す。 The training device, for example, uses the VAE technique to train an encoder that receives training data and outputs a luminance field (as a probability distribution), and a decoder that generates an image based on the luminance field and camera information C. As an example, the training device represents the output of this VAE encoder as a discrete code, such as VQ-VAE, as described below.

図12は、訓練装置の処理の一例を示すフローチャートである。 Figure 12 is a flowchart showing an example of the processing performed by the training device.

まず、訓練装置の処理回路は、上記のカメラ情報 C 及び当該カメラ情報 C に基づく画像を取得する (S200) 。 First, the training device's processing circuitry acquires the above camera information C and an image based on that camera information C (S200).

次に、処理回路は、カメラ情報 C 及び画像 I に基づいて、ボクセルを設定する (S202) 。処理回路は、複数のカメラ情報 C 及びそれぞれに対応する複数の画像 I を用いて、シーンのどこに物体が存在するかを推定し、推定結果に応じて以下に示すようにボクセルを設定してもよい。処理回路は、例えば、 k 個のカメラ情報 C0 から Ck-1 及びそれぞれのカメラ情報に対応する画像 I0 から Ik-1 の情報を取得する。 Next, the processing circuit sets voxels based on the camera information C and the images I (S202). The processing circuit may estimate where an object is located in the scene using multiple pieces of camera information C and multiple corresponding images I, and set voxels according to the estimation results as follows: For example, the processing circuit obtains k pieces of camera information C 0 to C k-1 and information on images I 0 to I k-1 corresponding to each piece of camera information.

処理回路は、例えば、あらかじめシーンに含まれる物体の3次元位置に関する情報が取得できている場合には、当該情報に基づいてボクセルを設定してもよい。また、処理回路は、例えば、既存の3次元再構成の技術を用いて、シーンに含まれる物体の3次元位置に関する情報を推定し、当該推定した情報に基づいてボクセルを設定してもよい。 For example, if information regarding the three-dimensional positions of objects included in the scene has been acquired in advance, the processing circuit may set voxels based on that information. Alternatively, the processing circuit may use, for example, existing three-dimensional reconstruction technology to estimate information regarding the three-dimensional positions of objects included in the scene, and set voxels based on that estimated information.

上述したように、第0階層のボクセルは、対象となるシーン (3次元空間) 全体を含む領域として設定されてもよい。また、これに限定されるものではなく、対象となるシーンの少なくとも一部を有する領域としてもよいし、スーパーボクセルの概念に基づいた領域で合ってもよい。 As mentioned above, voxels in the 0th layer may be set as a region that includes the entire target scene (3D space). However, this is not limited to this, and they may be a region that includes at least a portion of the target scene, or a region based on the concept of supervoxels.

図13は、第0階層のボクセルの設定の一例を示す図である。この図に示すように、第0階層のボクセルは、限定されない一例として、シーンに存在する対象 (物体) が全て含まれるように設定される。そして、図において黒点で示されるように、ボクセルの頂点が設定される。 Figure 13 shows an example of the settings for voxels in the 0th layer. As shown in this figure, the voxels in the 0th layer are set, as a non-limiting example, to include all objects (subjects) present in the scene. The vertices of the voxels are then set as shown by the black dots in the figure.

訓練装置 (及び推定装置) においては、ボクセルの領域に関する情報を世界座標として表現してもよい。世界座標の設定は、任意でよいが、限定されない一例として、第0階層のボクセルの中心を原点としてもよい。位置 p は、世界座標の原点に対する位置として表され、姿勢 d は、世界座標の軸に対する所定の表現 (例えば、所定表現の角度又は方向ベクトル) によりで表されてもよい。 In the training device (and estimation device), information about the region of a voxel may be expressed as world coordinates. The world coordinates may be set arbitrarily, but as a non-limiting example, the center of a voxel in the 0th layer may be set as the origin. The position p may be expressed as a position relative to the origin of the world coordinates, and the orientation d may be expressed by a predetermined expression (e.g., an angle or direction vector of a predetermined expression) relative to the axes of the world coordinates.

また、世界座標の原点に対して、カメラ情報 C が設定されてもよい。この場合、カメラ情報 C ごとに外部パラメータが設定され、画素 (カメラ座標) と物体の点又は小領域 (世界座標) の位置関係の推定に用いられてもよい。 Alternatively, camera information C may be set relative to the origin of the world coordinate system. In this case, external parameters may be set for each camera information C and used to estimate the positional relationship between a pixel (camera coordinate system) and a point or small region of an object (world coordinate system).

世界座標の表現は、代表的にはデカルト座標系であってもよいが、これに限定されるものではなく、他の直交座標系又は他の座標系において表現し、空間内の点が一意的に表現できる座標系であってもよい。 World coordinates may typically be expressed in the Cartesian coordinate system, but are not limited to this and may be expressed in other Cartesian coordinate systems or other coordinate systems in which points in space can be uniquely represented.

処理回路は、第0階層のボクセルを設定した後に、第1階層以下のボクセルを生成する。上述したように、第1階層以下のボクセルにおいては、空のボクセル又は閉領域を表すボクセルを設定してもよい。また、例えば、第1階層以下のボクセルにおいては、物体の表面が存在する領域についてのみ生成されるものであってもよい。 After setting the voxels in the 0th layer, the processing circuit generates voxels in the 1st layer and below. As described above, empty voxels or voxels representing closed regions may be set among the voxels in the 1st layer and below. Also, for example, voxels in the 1st layer and below may be generated only for regions where the surface of an object exists.

例えば、図4のボクセル V1_2 を空ボクセルとし、この空ボクセルに対しては以下のボクセルを (ボクセル V1_2 自身をも) 生成しなくてもよい。すなわち、一例として、空であるボクセルは、上位のボクセルから当該階層のボクセルを生成 (ボクセル V0 においてボクセル V1_2 を生成) しない処理としてもよいし、別の例として、空ボクセル V1_2 を生成した上で、当該ボクセルに対しては下位階層のボクセルを生成しない処理としてもよい。 For example, the voxel V1_2 in Fig. 4 may be an empty voxel, and subsequent voxels (including the voxel V1_2 itself) may not be generated for this empty voxel. That is, as an example, for an empty voxel, processing may be performed in which no voxels of the corresponding layer are generated from higher voxels (for example, the voxel V1_2 is generated for the voxel V0 ). As another example, processing may be performed in which the empty voxel V1_2 is generated, and then no voxels of the lower layer are generated for this voxel.

図14は、第1階層のボクセルの設定の一例を示す図である。この図に示すように、第1階層のボクセルは、限定されない一例として、空のボクセルを生成せず、物体が存在する領域において生成される。図13と同様に、黒点で示されるように、ボクセルの頂点が設定される。 Figure 14 shows an example of setting voxels in the first layer. As shown in this figure, as a non-limiting example, voxels in the first layer are generated in areas where objects exist, without generating empty voxels. As in Figure 13, the vertices of the voxels are set as indicated by black dots.

対象となるボクセルが適切に、例えば、空である、表面である、又は、物体内の閉領域である、ことが示される形態であれば、処理及びデータの生成について限定されるものではない。 There are no limitations on processing and data generation, as long as the target voxels are appropriately indicated, for example, as empty, a surface, or a closed region within an object.

上述したように、物体の表面のテクスチャに応じて階層を増減させてもよい。例えば、物体の表面が存在する領域について、第1階層以下のボクセルを細かく設定してもよい。 As mentioned above, the number of layers may be increased or decreased depending on the texture of the object's surface. For example, in areas where the object's surface exists, the voxels below the first layer may be set in detail.

ボクセルの階層数 (階層の深さ D) は、上述したように、ユーザがあらかじめ決めておいてもよいし、階層構造のボクセルを生成するタイミングにおいて自動的に決定されるものであってもよい。 As mentioned above, the number of voxel levels (level depth D) may be determined in advance by the user, or it may be determined automatically when generating the hierarchical voxels.

処理回路は、上記に基づいて、第0階層のボクセルから第1階層のボクセルを生成する。そして、同様に、第2階層のボクセル、第3階層のボクセル、・・・、を階層の深さ D まで、すなわち、第 D 階層までのボクセルを生成する。また、このような逐次的な処理に限定されるものではなく、第0階層のボクセルを設定した後には、同じタイミングで第1階層以下のボクセルの設定をすることもできる。 Based on the above, the processing circuit generates voxels in the first layer from voxels in the 0th layer. Then, in the same way, voxels in the second layer, voxels in the third layer, ... are generated up to a layer depth D, i.e., voxels up to the Dth layer. Furthermore, the processing is not limited to this sequential processing; after setting the voxels in the 0th layer, voxels in the first layer and below can also be set at the same time.

図12に戻り、次に、処理回路は、ボクセルの頂点のベクトルを算出する (S204) 。このボクセルの頂点のベクトルは、例えば、当該ボクセル内部に属する点における特徴量を算出するために必要となる量である。すなわち、このベクトルは、特徴量と同じ次元を有する量である。処理回路は、訓練対象であるエンコーダにカメラ情報 C 及び画像 I を入力し、ベクトルを取得する。 Returning to Figure 12, the processing circuit then calculates the vectors of the vertices of the voxel (S204). This voxel vertex vector is, for example, a quantity required to calculate the feature quantity at a point inside the voxel. In other words, this vector is a quantity with the same dimensions as the feature quantity. The processing circuit inputs camera information C and image I to the encoder to be trained and obtains the vectors.

ベクトルは、図13又は図14に示される黒点、すなわち、ボクセルの頂点ごとに取得される。なお、空のボクセルの頂点 (例えば、図14の白点) も算出してもよい。この場合、空のボクセルに対しては、算出はするが、特徴量の取得には用いられない量であってもよい。 Vectors are obtained for each black dot shown in Figure 13 or Figure 14, i.e., each vertex of a voxel. Note that calculations may also be performed for vertices of empty voxels (e.g., white dots in Figure 14). In this case, calculations may be performed for empty voxels, but the amounts may not be used to obtain feature values.

エンコーダは、カメラ情報 C 及び画像 I が入力されると、各階層のボクセルの頂点に設定されるベクトルを出力する。すなわち、エンコーダは、第0階層のボクセルV0の頂点に対応する8個のベクトル、第1階層の8個のボクセルV1の頂点に対応する27個のベクトル、第2階層の64個のボクセルV2の頂点に対応する125個のベクトル、・・・、を出力する。上述したように、空のボクセルのみに属する頂点を併せて出力してもよい。 When the encoder receives the camera information C and the image I, it outputs vectors to be set at the vertices of the voxels in each layer. That is, the encoder outputs 8 vectors corresponding to the vertices of the voxel V0 in the 0th layer, 27 vectors corresponding to the vertices of the 8 voxels V1 in the first layer, 125 vectors corresponding to the vertices of the 64 voxels V2 in the second layer, and so on. As mentioned above, vertices belonging only to empty voxels may also be output.

なお、第1階層以下のベクトルの取得には、式(3)に示されている第1特徴量を取得するためにそれぞれの階層の第2特徴量に対する係数 β の値を用いることも可能である。別の例として、式(3)に基づいて、 β の値を並行して最適化するモデルとしてエンコーダが形成されてもよい。 In addition, to obtain vectors from the first layer onwards, it is also possible to use the value of the coefficient β for the second feature of each layer to obtain the first feature shown in equation (3). As another example, an encoder may be formed as a model that optimizes the value of β in parallel based on equation (3).

エンコーダに入力される画像 I は、複数であるので、処理回路は、階層の各頂点に設定されるベクトルを任意の手法で混合してもよい。処理回路は、例えば、それぞれの頂点において、それぞれの画像をエンコーダに入力して取得した当該頂点に対する複数のベクトルの平均値を当該頂点のベクトルとしてもよい。 Since multiple images I are input to the encoder, the processing circuit may combine the vectors set for each vertex of the hierarchy in any manner. For example, the processing circuit may input each image to the encoder and use the average of multiple vectors for that vertex as the vector for that vertex.

また、別の例として、エンコードされた複数のベクトルを統合して1つのベクトルにするモデルを用いてもよい。この場合、エンコーダ等の訓練とともに、この統合するモデルの訓練を併せて実行してもよい。例えば、画像によっては3次元モデルの裏側といったように、見えない領域がある。 As another example, a model can be used that combines multiple encoded vectors into a single vector. In this case, training of this combining model can be performed in conjunction with training of the encoder, etc. For example, some images may contain invisible areas, such as the back of a 3D model.

このような場合、見えない領域に対して当該画像からのベクトルの情報を含めてしまうのは誤差又はノイズとなり得る。ベクトルを適切に混合するべく、例えば、 Attention といった手法を含むモデルを用いてもよい。 In such cases, including vector information from the image in unseen areas can result in errors or noise. To appropriately mix vectors, a model that includes techniques such as attention may be used.

図12に戻り、次に、処理回路は、頂点に離散符号を割り当てる (S206) 。処理回路は、算出された頂点のベクトルに基づいて、離散符号を取得し、当該頂点に当該離散符号を割り当てる。離散符号は、例えば、 VQ-VAE のようにあらかじめ複数の潜在変数ベクトルが定義されていてもよい。離散符号は、例えば、256個用意されているが、これには限られず、8192個等であってもよい。 Returning to Figure 12, the processing circuit then assigns discrete codes to the vertices (S206). The processing circuit obtains a discrete code based on the calculated vertex vector and assigns the discrete code to the vertex. The discrete code may have multiple latent variable vectors defined in advance, such as in VQ-VAE. For example, 256 discrete codes are provided, but this is not limited to this and the number may be 8192, etc.

これには限られず、離散符号自体を訓練の対象としてもよい。この場合、離散符号を生成するモデルがさらに訓練対象のモデルとして配置されてもよい。シーンごとに離散符号を算出することで、シーンごとにより適した特徴量を取得することが可能となる。 This is not limited to this, and the discrete code itself may also be the training target. In this case, a model that generates the discrete code may also be arranged as a model to be trained. By calculating the discrete code for each scene, it is possible to obtain features that are more appropriate for each scene.

離散符号は、例えば、L個あり、 l ∈ {0, ..., L - 1} の整数によるインデクスを用いて表すこともできる。離散符号のインデクス l に対して、ベクトル el があらかじめ定義される。処理回路は、算出された頂点のベクトルに最も近いベクトルを el, l ∈ {0, ..., L - 1} の中から探索し、この探索結果に基づいて、探索されたベクトルを離散符号 el として頂点に割り当てる。処理回路は、任意の探索手法を用いて離散符号 el を探索することができる。 There may be, for example, L discrete codes, which can be represented using integer indices l ∈ {0, ..., L - 1}. A vector e l is predefined for the index l of the discrete code. The processing circuit searches for a vector e l , l ∈ {0, ..., L - 1} that is closest to the calculated vector of the vertex, and based on the search result, assigns the searched vector to the vertex as the discrete code e l . The processing circuit can use any search method to search for the discrete code e l .

処理回路は、例えば、取得されている頂点のベクトルと、ベクトル el, l ∈ {0, ..., L - 1} との任意の距離 (例えば、L1ノルム又はL2ノルム) を算出し、距離が最も短いベクトル el に対応する離散符号 l を当該頂点に割り当ててもよい。 For example, the processing circuit may calculate an arbitrary distance (e.g., L1 norm or L2 norm) between the vector of the vertex being obtained and vectors e l , l ∈ {0, ..., L − 1}, and assign to the vertex a discrete code l corresponding to the vector e l with the shortest distance.

別の例として、処理回路は、例えば、取得されている頂点のベクトルを入力すると最も近い離散符号を出力するモデルを用いて離散符号を取得してもよい。訓練装置は、このモデルも訓練の対象としてもよい。 As another example, the processing circuit may obtain a discrete code using a model that, for example, inputs the vector of vertices being obtained and outputs the closest discrete code. The training device may also train this model.

さらに別の例として、処理回路は、例えば、 Softmax 関数を用いて離散符号を取得してもよい。 Softmax 関数を用いる場合、当該 Softmax 関数において対応する逆伝播における微分係数を1とする処理をしてもよい。このように処理することで順伝播における argmax の処理に拘わらず、逆伝播をすることができる。これは、離散符号の選択を省略して潜在変数 (特徴量) の勾配をエンコーダに逆伝播する処理に相当する。 As another example, the processing circuit may obtain a discrete code using, for example, a Softmax function. When using a Softmax function, the differential coefficient in the corresponding backpropagation may be set to 1. Processing in this way allows backpropagation to be performed regardless of the argmax processing in the forward propagation. This is equivalent to backpropagating the gradient of the latent variable (feature) to the encoder without selecting a discrete code.

ロス関数を適切に設定することで、離散符号を実際の特徴量と近くなるように更新する訓練をしてもよい。処理回路は、例えば、訓練における繰り返し演算において、所定回数までは、この離散符号を更新する訓練をし、所定回数以降においては、上記のように微分係数を1とすることで、離散符号の更新を停止してもよい。また、 EMA (指数移動平均: Exponential Moving Average) を用いて離散符号を更新してもよい。 By appropriately setting the loss function, training may be performed to update the discrete code so that it approaches the actual feature. For example, the processing circuit may train to update this discrete code up to a predetermined number of times during repeated calculations in training, and after the predetermined number of times, stop updating the discrete code by setting the differential coefficient to 1 as described above. The discrete code may also be updated using EMA (Exponential Moving Average).

また、処理回路は、例えば、 Softmax 関数の代わりに、 Gumbel-Softmax 関数を用いてもよい。 Gumbel-Softmax 関数を用いる場合、例えば、 reparameterization trick を用いることで逆伝播における勾配を算出してもよい。別の例として、 Continuous Relaxation の手法を用いてもよい。 The processing circuit may also use, for example, a Gumbel-Softmax function instead of a Softmax function. When using the Gumbel-Softmax function, the gradient in backpropagation may be calculated using, for example, the reparameterization trick. As another example, the Continuous Relaxation technique may be used.

図15及び図16は、それぞれ第0階層の頂点の離散符号及び第1階層の頂点の離散符号の割り当てについて、限定されない例を示す図である。これらの図に示すように、離散符号は、当該離散符号を示すインデクスにより指定することができる。例えば、図15は、第0階層のボクセル V0 において、左下の頂点の168、右下の頂点に84、左上の頂点に55、右上の頂点に119のインデクスが付与され、このインデクスに対応する離散符号がそれぞれの頂点の離散符号として割り当てられる。図16においても同様である。 15 and 16 are diagrams showing non-limiting examples of the assignment of discrete codes to vertices in the 0th layer and the 1st layer, respectively. As shown in these figures, a discrete code can be specified by an index indicating the discrete code. For example, in FIG. 15, in a voxel V0 in the 0th layer, an index of 168 is assigned to the bottom-left vertex, 84 to the bottom-right vertex, 55 to the top-left vertex, and 119 to the top-right vertex, and the discrete codes corresponding to these indexes are assigned as the discrete codes of each vertex. The same applies to FIG. 16.

離散符号自体は、高次元のベクトルであるが、あらかじめ定義されているインデクスからベクトルを取得することが可能である。このように、頂点には離散符号のインデクスがそれぞれ付与されることで、離散符号を割り当てる。 The discrete code itself is a high-dimensional vector, but it is possible to obtain the vector from a predefined index. In this way, discrete codes are assigned to vertices by assigning them their respective discrete code indices.

インデクスのみを記憶することで、ボクセル内部の特徴点を取得するための擬似的な特徴量に対応する高次元のベクトルをそれぞれの頂点についてのデータとして格納する場合と比較して、記憶装置は、頂点に対応させるデータ量を、例えば、 1 / (ベクトルの次元) 程度のデータ量に圧縮したデータとして格納することができる。処理回路は、必要なタイミングにおいて、例えば、データベース又はルックアップテーブルを参照することで、頂点に割り当てられている離散符号を取得することができる。 By storing only the index, the storage device can store the amount of data corresponding to a vertex compressed to, for example, about 1/(vector dimension), compared to when high-dimensional vectors corresponding to pseudo-features for obtaining feature points inside a voxel are stored as data for each vertex. The processing circuit can obtain the discrete code assigned to the vertex by, for example, referencing a database or lookup table when necessary.

また、上述したように、図16における空のボクセル (左上の頂点) に対する頂点についても離散符号を割り当ててもよい。割り当てた場合、訓練装置の本ステップ以降の演算において、及び、推定装置の演算において、当該離散符号を無視してもよい。 As mentioned above, discrete codes may also be assigned to vertices corresponding to empty voxels (top left vertices) in Figure 16. If assigned, these discrete codes may be ignored in the calculations of the training device after this step and in the calculations of the estimation device.

図12に戻り、次に、処理回路は、座標 p における特徴量 z(p) を算出する (S208) 。本ステップと、次のステップは、ボクセルに割り当てられている離散符号から、画素の色を推論するためのステップとなる。 Returning to Figure 12, the processing circuit then calculates the feature z(p) at coordinate p (S208). This step and the next are steps for inferring the color of a pixel from the discrete code assigned to the voxel.

処理回路は、入力されたカメラ情報 C のうち、任意の情報を抽出し、このカメラ情報 C に基づいて、輝度場を用いて画素を推定するための点列の情報を取得する。点列は、例えば、式(4)に用いる r(t) を用いて表現されてもよい。 The processing circuit extracts arbitrary information from the input camera information C and, based on this camera information C, obtains point sequence information for estimating pixels using the luminance field. The point sequence may be expressed, for example, using r(t) used in equation (4).

処理回路は、点列のそれぞれの座標に対して、式(2)を用いてそれぞれの階層 (第 n 階層) の第2特徴量 zn(p) を算出し、式(3)を用いて第2特徴量 zn(p) から第1特徴量 z(p) を取得する。 The processing circuit calculates the second feature z n (p) for each layer (nth layer) using equation (2) for each coordinate of the point sequence, and obtains the first feature z(p) from the second feature z n (p) using equation (3).

次に、処理回路は、座標 p における色 c と、密度 ρ を算出する (S210) 。処理回路は、座標 p及び特徴量 (潜在変数) を入力すると、色 c と、密度 ρ とを出力するデコーダを用いて、座標 p における色 c と、密度 ρ とを取得する。 Next, the processing circuit calculates the color c and density ρ at coordinate p (S210). When the processing circuit receives the coordinate p and the feature (latent variable) as input, it uses a decoder that outputs color c and density ρ to obtain the color c and density ρ at coordinate p.

次に、処理回路は、エンコーダ、デコーダ及びその他用いるモデルのパラメータを更新する (S212) 。また、 β を生成するモデル、離散符号を生成するモデル等の訓練を実行する場合には、これらのモデルのパラメータの更新も並行し、又は、逐次的に、実行する。 Next, the processing circuit updates the parameters of the encoder, decoder, and other models used (S212). Also, when training a model that generates β, a model that generates a discrete code, etc., the parameters of these models are updated in parallel or sequentially.

処理回路は、例えば、色 c 及び密度 ρ に基づいて画像 (カメラ情報 C を用いてレンダリングされた結果の画像) を生成する。処理回路は、教師データとして正解画像 (エンコーダに入力したカメラ情報 C に対応する画像 I) を用いて、生成した画像と、正解画像と、の画素値の相違に基づく誤差を用いてモデルのパラメータを更新する。 The processing circuit generates an image (the image that results from rendering using camera information C) based on, for example, color c and density ρ. Using the correct image (image I corresponding to camera information C input to the encoder) as training data, the processing circuit updates the model parameters using an error based on the difference in pixel values between the generated image and the correct image.

ロス関数として、 NeRF-VAE において用いられる誤差関数を用いてもよい。すなわち、処理回路は、生成した画像と、正解画像と、の再構成誤差に対して VAE と同様な正則化項を加味したロス関数を用いてもよい。 The loss function may be the error function used in NeRF-VAE. That is, the processing circuit may use a loss function that adds a regularization term similar to that of VAE to the reconstruction error between the generated image and the ground truth image.

処理回路は、上記の誤差に基づいて、上述した離散符号の更新を実行してもよい。この場合、上述したように、所定回数までは離散符号の更新を行い、所定回数以降は離散符号の更新を行わない形態とすることもできる。 The processing circuit may perform the above-mentioned discrete code update based on the above error. In this case, as described above, it is possible to update the discrete code up to a predetermined number of times, and then not update the discrete code after the predetermined number of times.

処理回路は、 S204 から S212 の処理を、必要に応じて繰り返し実行する。処理回路は、適切な終了条件を満たすと、パラメータの更新を終了する。終了条件は、一般的な機械学習手法の終了条件と同様の条件であってもよい。 The processing circuit repeatedly executes steps S204 to S212 as necessary. The processing circuit terminates parameter updating when an appropriate termination condition is met. The termination condition may be the same as the termination condition of a general machine learning method.

パラメータの更新が終了した後、処理回路は、パラメータを出力して (S214) 処理を終了する。 After the parameter update is complete, the processing circuit outputs the parameters (S214) and ends the process.

なお、シーンによっては、すでに訓練済みの輝度場が取得できている場合がある。このような場合、既知の輝度場を教師データとして、特報量で条件付けされたモデルで復元するように訓練を実行してもよい。 Note that, depending on the scene, a trained luminance field may already be available. In such cases, training can be performed using the known luminance field as training data to restore it using a model conditioned on the special information.

訓練済みの輝度場がエンコーダ及びデコーダとして取得されている場合、この2つのモデルを用いて、グリッドに分割された領域について特徴量取得及び特徴量から色 c 及び密度 ρ の取得する複数のモデルを訓練してもよい。例えば、KiloNeRF (arXiv: 2103.13744) の手法と同様に、既知の輝度場をグリッドに分割することで蒸留学習をし、それぞれのグリッドにおけるネットワークの構成を小さくし、かつ、画像復元の精度を向上した訓練をしてもよい。この訓練の過程において、入力を画像情報とすることで、複数のカメラ情報に基づく画像情報から、直接的にグリッドにおける特徴量を取得するエンコーダを訓練することも可能である。 If a trained luminance field is obtained as an encoder and decoder, these two models can be used to train multiple models that acquire features for regions divided into grids and acquire color c and density ρ from the features. For example, similar to the method used in KiloNeRF (arXiv: 2103.13744), distillation learning can be performed by dividing a known luminance field into grids, thereby reducing the network configuration for each grid and improving the accuracy of image restoration. During this training process, it is also possible to train an encoder that acquires features in a grid directly from image information based on information from multiple cameras by using image information as input.

より詳細には、限定されない一例として、処理回路は、訓練済みの輝度場をグリッドに分割し、それぞれのグリッドにおいて特徴量を取得するように、複数のモデル (例えば、輝度場を生成するエンコーダよりは少数のレイヤで形成される MLP) を訓練してもよい。このグリッドは、任意の階層のボクセルと一致する領域であってもよい。また、訓練済みの輝度場の領域と、本実施形態における第0ボクセルの領域とを同じ領域として設定してもよい。 More specifically, as a non-limiting example, the processing circuit may divide the trained luminance field into grids and train multiple models (e.g., MLPs formed with fewer layers than the encoder that generates the luminance field) to obtain features in each grid. This grid may be a region that coincides with voxels at any hierarchical level. Furthermore, the region of the trained luminance field and the region of the 0th voxel in this embodiment may be set as the same region.

処理回路は、グリッドに対して形成される複数のモデルから出力される任意の座標における特徴量と、訓練対象となるエンコーダの出力である離散符号から取得された第1特徴量と、の誤差を用いてエンコーダの訓練をより精度よく実行してもよい。 The processing circuit may perform more accurate training of the encoder by using the error between a feature at any coordinate output from multiple models formed for the grid and a first feature obtained from a discrete code that is the output of the encoder to be trained.

さらに、処理回路は、当該既知の輝度場におけるデコーダの出力情報を用いてもよい。この場合、訓練対象のエンコーダ及びデコーダにより取得された第1特徴量から取得された色 c と密度 ρ の情報と、既知の輝度場から取得された色 c と密度 ρ の情報と、の誤差に基づいて、逆伝播処理を実行することもできる。 Furthermore, the processing circuit may use the decoder's output information for the known luminance field. In this case, backpropagation processing can be performed based on the error between the color c and density ρ information obtained from the first features acquired by the encoder and decoder being trained and the color c and density ρ information obtained from the known luminance field.

また、処理回路は、上記のエンコーダ、及び、離散符号化された特徴量から輝度場を出力するデコーダを Auto Encoder の手法を用いて訓練してもよい。この Auto Encoder は、例えば、 VAE (Variational Auto Encoder) 、特に、 NeRF-VAE (arXiv:2104.00587) の手法を用いてもよい。処理回路は、これらの VAE の手法を定式化することでロス関数を定義してもよい。また、エンコーダ、デコーダの構成、訓練及び離散符号から取得した特徴量に基づく画像の生成は、 NeRF-VAE の論文と同等の実装とすることもできる。例えば、 NeRF-VAE の手法を用いる場合には、以下に示すように処理が実行されてもよい。 The processing circuit may also train the above-mentioned encoder and decoder that outputs a luminance field from discretely coded features using the Auto Encoder method. This Auto Encoder may use, for example, a VAE (Variational Auto Encoder), particularly the NeRF-VAE (arXiv:2104.00587) method. The processing circuit may define a loss function by formulating these VAE methods. Furthermore, the configuration and training of the encoder and decoder, and the generation of images based on features obtained from the discrete code, may be implemented in a manner equivalent to that described in the NeRF-VAE paper. For example, when using the NeRF-VAE method, the processing may be performed as shown below.

図17は、一実施形態に係るエンコーダとデコーダの構成の一例を示す図である。処理回路は、エンコーダに画像情報 I と対応するカメラ情報 C を入力し、第1特徴量を取得する。第1特徴量の取得は、前述したように、エンコーダから出力される離散符号を用いて式(3)に基づいて実行される。 Figure 17 shows an example of the configuration of an encoder and decoder according to one embodiment. The processing circuit inputs image information I and corresponding camera information C to the encoder and acquires a first feature. As described above, the first feature is acquired based on equation (3) using the discrete code output from the encoder.

処理回路は、デコーダに取得された第1特徴量とカメラ情報 C から取得できる画素に関する座標 p 及び姿勢情報 d とを入力し、それぞれの画素に関する色 c 及び密度 ρ を取得する。座標 p 及び姿勢 d は、位置エンコーディングされてもよい。処理回路は、レンダラを用いてデコーダから取得された情報及びカメラ情報から画像を取得する。 The processing circuit inputs the first feature acquired by the decoder and pixel coordinates p and orientation information d acquired from the camera information C, and acquires the color c and density ρ for each pixel. The coordinates p and orientation d may be positionally encoded. The processing circuit uses a renderer to acquire an image from the information acquired from the decoder and the camera information.

そして、処理回路は、レンダラから取得した画像と、入力した画像と、を比較することで損失を算出し、それぞれのニューラルネットワークモデルのパラメータを更新する。 The processing circuit then calculates the loss by comparing the image obtained from the renderer with the input image and updates the parameters of each neural network model.

前述の推論装置は、ボクセルごとに取得した離散符号から、座標 p に基づいた特徴量 (第1特徴量) z(p) を取得し、この第1特徴量 z(p) をデコーダに入力することで、座標 p 及び姿勢 d に基づいた色 c 及び密度 ρ の情報を取得する。 The inference device described above obtains a feature (first feature) z(p) based on coordinate p from the discrete code obtained for each voxel, and inputs this first feature z(p) into a decoder to obtain color c and density ρ information based on coordinate p and orientation d.

種々のシーンに対して、同一のモデルを訓練することで、シーンに依存しないエンコーダと、デコーダと、を訓練してもよい。この訓練により最適化されたエンコーダに対して、任意のシーンを構成する複数のカメラ情報に紐付けられた画像を入力することで、新たなシーンを形成する特徴量を取得することができる。処理回路は、この特徴量を階層構造のボクセルを用いた離散符号化することで、新たなシーンにおけるボクセルを生成することができ、当該シーンの少なくとも一部を撮影領域に含むカメラ位置及び方向における画像を高速に取得することが可能となる。 By training the same model for various scenes, a scene-independent encoder and decoder can be trained. Images associated with multiple camera information constituting an arbitrary scene can be input to the encoder optimized through this training, allowing features forming a new scene to be acquired. The processing circuitry can generate voxels for the new scene by discretely encoding these features using hierarchical voxels, making it possible to quickly acquire images at a camera position and orientation that includes at least a portion of the scene in its capture area.

処理回路は、上述したように、グリッドに分割した複数の MLP を用いて離散符号の訓練を実行してもよい。 The processing circuitry may perform training of the discrete code using multiple MLPs divided into a grid, as described above.

また、ボクセルの生成方法は、上記に限定されるものではなく、任意の方法で生成されてもよい。例えば、処理回路は、学習済みの VQ-VAE のエンコーダを用いてボクセルを生成してもよい。また、処理回路は、3次元の姿勢付きの画像群から3次元の輝度場を推定してもよいし、この場合、上述と同様に訓練済みの輝度場があってもよい。処理回路は、この訓練済みの輝度場と同様の結果を出力する、ボクセル及び離散符号の割り当てを実行してもよい。 Furthermore, the method of generating voxels is not limited to the above, and they may be generated by any method. For example, the processing circuit may generate voxels using a trained VQ-VAE encoder. Furthermore, the processing circuit may estimate a 3D intensity field from a set of 3D pose-attached images, in which case a trained intensity field may exist as described above. The processing circuit may perform voxel and discrete code assignment that outputs a result similar to this trained intensity field.

また、学習用のボクセルについては、以下の様なボクセルを用いてもよい。例えば、それぞれのシーンに対応するボクセルを複数準備しておく。複数のボクセルは、1つのシーンが1つのボクセルに対応する。そして、これらのボクセルには、階層ごとの頂点に離散符号が割り当てられている。上記と同様に、それぞれの頂点に割り当てられる離散符号は、階層ごとに異なるものであってもよい。 For learning voxels, the following types of voxels may be used. For example, multiple voxels corresponding to each scene are prepared. One scene corresponds to one voxel among the multiple voxels. These voxels then have discrete codes assigned to the vertices for each layer. As with the above, the discrete codes assigned to each vertex may be different for each layer.

(離散符号生成)
次に、新たなシーン生成の段階におけるボクセルの生成及び離散符号の割り当てについて説明する。推定装置の処理回路は、任意のカメラ情報及び対応する画像群を、前述の手法により訓練されたエンコーダに入力して取得された離散符号を用いてボクセルの生成と離散符号の割り当てを行うことができる。
(Discrete code generation)
Next, we will explain how to generate voxels and assign discrete codes in the new scene generation stage. The processing circuitry of the estimation device can generate voxels and assign discrete codes using discrete codes obtained by inputting arbitrary camera information and corresponding images into an encoder trained by the above-mentioned method.

なお、以下においては、単に離散符号と記載した場合には、特徴量を算出するためのベクトル、又は、ベクトルに対応する離散符号 ID (離散符号の識別情報) とを文脈により読み替えることとする。ニューラルネットワークモデルにおいて、入出力は、例えば、離散符号 ID であってもよいが、これは、内部的に離散化されているベクトルに展開されてもよい。ベクトルへの展開は、例えば、ベクトルとIDを紐付けている LUT を用いてもよい。 In the following, when the term "discrete code" is simply mentioned, it will be interpreted as either a vector used to calculate features or a discrete code ID (discrete code identification information) corresponding to the vector, depending on the context. In a neural network model, the input and output may be, for example, a discrete code ID, but this may also be expanded into an internally discretized vector. The expansion into a vector may be performed, for example, using an LUT that links the vector and ID.

また、入力はベクトルであってもよい。この場合、出力層において、適切な活性化関数 (例えば、 Softmax 関数) を用いて離散符号 ID に変換するものであってもよい。 The input may also be a vector. In this case, the output layer may convert it to a discrete code ID using an appropriate activation function (e.g., a Softmax function).

図18は、ボクセルの木構造の一例を示す図である。上述したボクセルは、例えば、8分木の形式で表現することができる。親ノード P に対して、必要に応じて子ノード C0、 C1 、・・・、 C7 の8個のノードが備えられる。それぞれの子ノードからは、必要に応じてさらに子ノードが生成され、階層型のボクセルを形成する。 Figure 18 shows an example of a voxel tree structure. The voxels described above can be represented, for example, in the form of an octree. Eight child nodes C0, C1, ..., C7 are provided for the parent node P as needed. Further child nodes are generated from each child node as needed, forming a hierarchical voxel structure.

それぞれのノードには、当該ノードが存在するかの情報と、当該ノードに対応するボクセルの頂点に割り当てられる離散符号が格納される。当該ノードが存在するかの情報は、例えば、空ボクセルであったり、物体内部のボクセルであったりする場合であり、この場合、該当する子ノード自体を削除してもよいし、該当する子ノードに空である、物体内部である、といった識別子を与えてもよい。 Each node stores information about whether the node exists and a discrete code assigned to the vertex of the voxel corresponding to the node. The information about whether the node exists may indicate, for example, whether the voxel is empty or inside an object. In such cases, the corresponding child node may be deleted, or the corresponding child node may be given an identifier such as empty or inside an object.

上述したように、これら空又は物体内部等を示すノードに関しては、以降の子ノードを生成しなくてもよい。このように子ノードの生成を抑制することで、ノード情報を格納するメモリ領域を削減することができる。 As mentioned above, for nodes that indicate the sky or the interior of an object, it is not necessary to generate subsequent child nodes. By suppressing the generation of child nodes in this way, it is possible to reduce the memory area required to store node information.

最上位の親ノードとして、例えば、第0ボクセルの情報を割り当てることで前述したボクセルを木で表現することができる。一例として、図15、図16の場合の木の構成について図面を用いて説明する。以降においても、特に注意がない限り、奥行き方向のボクセル (例えば、図16における V1_4 から V1_7 に対応するボクセル) 等の表記を省略することがあるが、3次元空間で考慮する場合には当然にこれらのボクセルは、形成し、説明をしているボクセルと同様の処理が実行される。 The voxels described above can be expressed as a tree by assigning, for example, information on the 0th voxel as the top-level parent node. As an example, the tree configuration in the cases of Figures 15 and 16 will be explained using the drawings. Hereinafter, unless otherwise noted, notation of voxels in the depth direction (for example, voxels corresponding to V1_4 to V1_7 in Figure 16) may be omitted, but when considered in three-dimensional space, these voxels are naturally formed and processed in the same way as the voxels being explained.

図19は、図15、図16のボクセル構造に関連した木の構成の一例を示す図である。親ノードとして、第0階層のボクセル V0 の情報が割り当てられる。 V0 を示すノードは、ルートノードとして機能してもよい。この V0 に対応する P のノードには、ボクセル V0 の情報であるそれぞれの頂点の離散符号が格納される。 FIG. 19 is a diagram showing an example of a tree structure related to the voxel structures of FIGS. 15 and 16. Information on the voxel V0 at the 0th layer is assigned as the parent node. The node representing V0 may function as the root node. The node of P corresponding to this V0 stores the discrete codes of each vertex, which is information on the voxel V0 .

例えば、 zv0 の情報から順番に、168, 84, 55, 119, ... , (eos) の情報が与えられる。 (eos) は、直前のデータがボクセルに対応する最後のデータであることを示す。このように、データの最後を示すトークンを用いて木が構成されてもよい。尤も、 (eos) は必須の構成ではなく、トークンを用いない表現でもよい。 For example, starting from the information for zv 0 , the information 168, 84, 55, 119, ... , (eos) is given in order. (eos) indicates that the previous data is the last data corresponding to the voxel. In this way, a tree may be constructed using a token indicating the end of data. However, (eos) is not a required construction, and an expression without using a token is also possible.

このノード P から、第1階層のボクセルに対応する子ノードを生成する。ボクセルを形成する情報処理装置 (例えば、訓練装置、推定装置) の処理回路は、親ノード P から次の階層のノードが生成されるか否か、及び、生成される場合には、その頂点に割り当てられる離散符号の情報をノードの情報として格納する。 From this node P, a child node corresponding to the voxel in the first layer is generated. The processing circuitry of the information processing device (e.g., training device, estimation device) that forms the voxels stores as node information whether a node in the next layer will be generated from parent node P, and if so, the discrete code assigned to that vertex.

処理回路は、親ノード P に対して、第1階層の第1のボクセル V1_0 が生成する (存在する) か否かを推論し、生成される (存在する) 場合には、ボクセル V1_0 の頂点に割り当てられる離散符号をノードの情報とする。 The processing circuit infers whether the first voxel V1_0 in the first layer is generated (exists) for the parent node P, and if it is generated (exists), the discrete code assigned to the vertex of voxel V1_0 becomes the node information.

図16の例によれば、ボクセル V1_0 は、生成され、それぞれの頂点に対応する離散符号は、54, 254, 51, 95, ...である。処理回路は、これに基づいて、ノード C0 の情報として、「54, 254, 51, 95, ..., (eos)」といったデータを格納する。図に示されているように、ノード C0 の情報として、8頂点分の離散符号が格納される。 In the example of Figure 16, a voxel V1_0 is generated, and the discrete codes corresponding to each vertex are 54, 254, 51, 95, .... Based on this, the processing circuit stores data such as "54, 254, 51, 95, ..., (eos)" as information for node C0. As shown in the figure, discrete codes for eight vertices are stored as information for node C0.

同様に、処理回路は、第1階層のボクセル V1_1 として、ボクセルを生成すること、及び、離散符号の ID 「67, 43, ..., (eos)」をノード C1 の情報として格納する。ここで、ボクセル V1_1 における離散符号のうち、4つの頂点に割り当てられる離散符号は、ボクセル V1_0 と重複する。これらの重複するノードに関しては、処理回路は、訓練及び推論のタイミングにおいては、すでに格納されている離散符号を用いることができる。これらの重複した離散符号については格納しないようにすることで、使用するメモリ領域を削減することができる。 Similarly, the processing circuit generates a voxel as voxel V1_1 in the first layer and stores the discrete code ID "67, 43, ..., (eos)" as information for node C1. Here, the discrete codes assigned to four vertices of voxel V1_1 overlap with those of voxel V1_0 . For these overlapping nodes, the processing circuit can use already stored discrete codes during training and inference. By not storing these overlapping discrete codes, the memory area used can be reduced.

処理回路は、第1階層のボクセル V1_3 を生成するか否かを判定する。ボクセル V1_2 は、空ボクセルである。この場合、子ノード C2 は、空のノードとし、以降の子ノードの生成をしない形態としてもよい。別の例として、子ノード C2 自体を生成しない形態としてもよい。 The processing circuit determines whether to generate a voxel V1_3 in the first layer. The voxel V1_2 is an empty voxel. In this case, the child node C2 may be an empty node, and no subsequent child nodes may be generated. As another example, the child node C2 itself may not be generated.

処理回路は、同様の処理を全ての子に対して行い、適宜、ボクセルを生成するか否か、及び、ボクセルの頂点に割り当てられる離散符号をノードの情報として格納する。 The processing circuit performs the same process on all children, and stores as node information whether or not to generate a voxel, as well as the discrete code assigned to the voxel's vertices, as appropriate.

この木の生成は、以下の様にリスト形式で表現することもできる。
{(168, 84, 55, 119, ...)}: ノード P の離散符号を格納する。
{1|(168, 84, 55, 119, ...)}: ノード P から子ノード C0 を生成する。例えば、0, 1によりボクセルを生成する確率 (0: 生成しない、1: 生成する) を表す。
{(54, 254, 51, 95, ...)|1, (168, 84, 55, 119, ...)}: ノード C0 の離散符号を格納する。
{1|(54, 254, 51, 95, ...), 1, (168, 84, 55, 119, ...)}: ノード C1 を生成する。
{(67, 43, ...)|1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: ノード C1 の離散符号を格納する。
{0|(67, 43, ...), 1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: ノード C2 は対応するボクセルが空であるので生成しない。
{1|0, (67, 43, ...), 1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: ノード C3 を生成する。
This tree generation can also be expressed in list form as follows:
{(168, 84, 55, 119, ...)}: Stores the discrete code of node P.
{1|(168, 84, 55, 119, ...)}: Generates a child node C0 from node P. For example, 0 or 1 represents the probability of generating a voxel (0: do not generate, 1: generate).
{(54, 254, 51, 95, ...)|1, (168, 84, 55, 119, ...)}: Stores the discrete code of node C0.
{1|(54, 254, 51, 95, ...), 1, (168, 84, 55, 119, ...)}: Generates node C1.
{(67, 43, ...)|1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: Stores the discrete code of node C1.
{0|(67, 43, ...), 1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: Node C2 is not generated because the corresponding voxel is empty.
{1|0, (67, 43, ...), 1, (67, 43, ...), 1, (168, 84, 55, 119, ...)}: Generates node C3.
:

上記のように、ノード P から出発し、逐次的に子ノードの生成と離散符号の割り当てを繰り返すことで、階層構造のボクセル及びボクセルの頂点に割り当てられる離散符号を木の表現として生成することができる。トークンを用いる場合には、適切にトークンの情報が上記の木の表現に含まれてもよい。 As described above, starting from node P, by iteratively generating child nodes and assigning discrete codes, it is possible to generate a tree representation of the hierarchical voxels and the discrete codes assigned to the voxel vertices. If tokens are used, the token information may be appropriately included in the tree representation above.

上記は、ボクセルの存在及びボクセルの頂点に割り当てられる離散符号について木の構成を説明したが、次に、離散符号の推論とともに木を形成する例について説明する。 The above explains the construction of a tree based on the existence of voxels and the discrete codes assigned to the vertices of the voxels. Next, we will explain an example of forming a tree while inferring the discrete codes.

図20は、一実施形態に係る階層型のボクセルの形成と、離散符号の割り当てを実行するニューラルネットワークモデルの一例を示す図である。このニューラルネットワークモデルは、例えば、 GPT (General Pretrained Transformer) 等の Transformer を用いる自己回帰モデルとして形成される。これに限定されるものではなく、各種ゲート付きの自己回帰モデルとして形成されてもよい。一般的な言語モデルと同様のモデルを用いることもできる。 Figure 20 shows an example of a neural network model that forms hierarchical voxels and assigns discrete codes according to one embodiment. This neural network model is formed, for example, as an autoregressive model using a Transformer such as a General Pretrained Transformer (GPT). It is not limited to this, and may also be formed as an autoregressive model with various gates. A model similar to a general language model can also be used.

E は、トークンを表す。このトークンは、例えば、0: ノードを生成しない、1: ノードを生成する、2-257: 離散符号 ID (離散符号の総数が256の場合) 、を表してもよい。すなわち、離散符号の数 +2 のトークンが定義されていてもよい。もちろん、ノードは、前述のボクセルに対応するものである。 E represents a token. This token may represent, for example, 0: Do not generate a node, 1: Generate a node, or 2-257: Discrete code ID (if the total number of discrete codes is 256). In other words, the number of tokens defined may be equal to the number of discrete codes + 2. Of course, the nodes correspond to the voxels mentioned above.

図に示すように、始点を表すトークン (例えば、 (sos)) が入力されると、自己回帰的に訓練済みの事前分布に基づいて次のトークンが生成される。離散符号の割り当てにおいては、処理回路は、 (sos) トークンから出発し、逐次的にトークンをサンプリングしてもよい。ニューラルネットワークモデルの訓練においては、処理回路は、教師データとして与えられた値を並列に入力し、並列に訓練を実現することもできる。 As shown in the figure, when a starting token (e.g., (sos)) is input, the next token is generated based on an autoregressively trained prior distribution. In assigning discrete codes, the processing circuit may start with the (sos) token and sequentially sample tokens. In training a neural network model, the processing circuit may also input values given as training data in parallel, achieving parallel training.

訓練時には、処理回路は、前述したボクセルの頂点に対する離散符号を表すトークン、及び、ボクセルが存在するか否かのトークンをそれぞれの入出力にセットして、モデルの訓練を実行する。訓練においては、適切に Transformer にマスク処理等をしてもよい。 During training, the processing circuit sets the tokens representing the discrete codes for the voxel vertices mentioned above and the tokens indicating whether the voxel exists or not to the respective inputs and outputs, and then trains the model. During training, masking processing, etc. may be performed on the Transformer as appropriate.

上記のような自己回帰モデルは、確率モデルである。このため、処理を繰り返すたびに、異なる出力がされる可能性が高い。この確率は、訓練に基づいた事前分布に基づいたものであるため、この事前分布に比例するような出力がされる。 An autoregressive model like the one above is a probabilistic model. Therefore, there is a high probability that a different output will be produced each time the process is repeated. This probability is based on a prior distribution derived from training, so the output will be proportional to this prior distribution.

そこで、推論装置の処理回路は、ボクセルを生成するタイミングにおいて、複数回のトークン取得の処理を繰り返し、 Softmax 等の適切な活性化関数を用いることで、トークンのサンプリングを実行してもよい。 Therefore, the processing circuitry of the inference device may repeat the token acquisition process multiple times at the timing of generating voxels, and perform token sampling by using an appropriate activation function such as Softmax.

別の例として、当該自己回帰モデルは、確率分布としてベクトルを出力するニューラルネットワークモデルを備え、当該確率分布に対して Softmax 等の活性化関数を用いて、離散符号化されているベクトルから出力されたベクトルについて、離散符号を抽出してもよい。確率分布を出力する場合には、訓練時には、 reparameterization trick を用いた訓練をしてもよい。 As another example, the autoregressive model may include a neural network model that outputs a vector as a probability distribution, and an activation function such as Softmax may be used on the probability distribution to extract a discrete code from the output vector from a discretely coded vector. When outputting a probability distribution, training may be performed using the reparameterization trick.

トークン出力の終了条件は、例えば、所定のサンプリング回数に達した、又は、所定のボクセルの階層に達したことを条件としてもよい。また、別の例としては、訓練装置の処理回路は、ボクセル生成に対する (eos) に該当するトークンを出力するように自己回帰モデルを訓練させてもよい。この場合、推論装置の処理回路は、開始トークンを入力することで (eos) トークンが出力されるまで処理を繰り返す。 The condition for terminating token output may be, for example, when a predetermined number of samples have been taken or when a predetermined voxel hierarchy has been reached. As another example, the processing circuitry of the training device may train an autoregressive model to output a token corresponding to (eos) for voxel generation. In this case, the processing circuitry of the inference device inputs a start token and repeats the process until the (eos) token is output.

図21は、子ノードに対応するボクセルの生成及び子ノードに対応するボクセルの頂点に割り当てられる離散符号の生成の一例について概略的に示す図である。 Figure 21 is a diagram that shows an example of generating voxels corresponding to child nodes and generating discrete codes to be assigned to the vertices of voxels corresponding to child nodes.

例えば、第0階層のボクセル V0 及び第1階層のボクセル V1_0 が生成され、離散符号が付与されている場合、次の子ノードであるボクセル V1_1 の生成確率は、ボクセル V0 及びボクセル V1_0 の状態により判断され、同様に、生成される場合の離散符号は、ボクセル V0 及びボクセル V1_0 の状態により確率分布が設定されて、この確率分布に基づいて取得される。 For example, when a voxel V0 in the 0th layer and a voxel V1_0 in the 1st layer are generated and assigned a discrete code, the generation probability of the next child node, voxel V1_1 , is determined by the states of voxels V0 and V1_0 . Similarly, the discrete code when generated is obtained based on a probability distribution set by the states of voxels V0 and V1_0 .

図22は、子ノードに対応するボクセルの生成及び子ノードに対応するボクセルの頂点に割り当てられる離散符号の生成の別の例について概略的に示す図である。例えば、第2階層のボクセル V2_03 は、それまでに生成されているボクセル V0 、 V1_0 、 V2_00 、 V2_01 、 V2_02 に基づく確率分布により生成されるかが決定され、生成される場合には割り当てられる離散符号も同じ組み合わせのボクセルに基づく確率分布にしたがって取得される。 22 is a diagram illustrating another example of generating voxels corresponding to child nodes and generating discrete codes to be assigned to the vertices of the voxels corresponding to the child nodes. For example, whether voxel V2_03 in the second layer is generated is determined based on a probability distribution based on the voxels V0 , V1_0 , V2_00 , V2_01 , and V2_02 that have been generated up to that point. If voxel V2_03 is generated, the discrete code assigned to it is also obtained according to a probability distribution based on the same combination of voxels.

ここで、すでにボクセル V1_2 等も生成されている場合であっても、これらとは独立し、子ノード自らの直系の祖先及びすでに生成されている同世代の子ノードに基づいて確率分布を取得する。 Here, even if voxels V1_2 etc. have already been generated, the probability distribution is obtained independently from these, based on the direct ancestors of the child node itself and child nodes of the same generation that have already been generated.

なお、子ノードを生成しない場合には、上述したように、トークンを”0”と設定してもよい。また、表面を含むボクセルのみに離散符号を割り当てる場合においても、表面を含まないボクセルにおいては、適切なトークンが設定 (例えば、トークン”0”) されてもよい。 If no child nodes are generated, the token may be set to "0" as described above. Also, even if discrete codes are assigned only to voxels that contain surfaces, an appropriate token (e.g., token "0") may be set for voxels that do not contain surfaces.

上記においては、訓練時にはマスクを用いるとしたが、このような推論を実行する場合には、推論時にもマスクを用いてもよい。ボクセルの階層構造に鑑みると、下位のボクセルは、全てのボクセルからの影響を大きく受けるのではなく、直接的に自らの祖先となるボクセルの影響を大きく受ける。 In the above, we said that a mask is used during training, but when performing this type of inference, a mask may also be used during inference. Considering the hierarchical structure of voxels, lower-level voxels are not heavily influenced by all voxels, but rather by their direct ancestor voxels.

このため、 Transformer 内に用いられる Attention に対して、ボクセルを生成しようとし、又は、ボクセルに対する離散符号を割り当てる場合には、適切に当該ボクセルの直接的な先祖となる入力に対して Attention が掛かるように、マスキング処理をして下位の階層のボクセル生成及び離散符号割り当てを実行してもよい。これは、訓練時にも同様であり、直接的な祖先の情報から下位のボクセルの構成が取得できるようにマスキング処理をして訓練を実行してもよい。 For this reason, when generating voxels or assigning discrete codes to voxels for the Attention used in the Transformer, masking can be performed to appropriately apply Attention to the input that is the direct ancestor of the voxel in question, and voxel generation and discrete code assignment can be performed for lower levels. The same applies during training; masking can be performed to obtain the configuration of lower voxels from information about their direct ancestors.

なお、直接的な祖先とは、例えば、図22において、ボクセル V2_00 に対するボクセル V1_0 及びボクセル V0 のことを示す。例えば、ボクセル V1_1 は、ボクセル V2_00 の直接的な祖先ではない。 Note that direct ancestors refer to the voxels V1_0 and V0 of the voxel V2_00 in Fig. 22. For example, the voxel V1_1 is not a direct ancestor of the voxel V2_00 .

親子関係は、例えば、モートンオーダーに基づいたノード (ボクセル)のインデキシングをすることで適切に取得することができる。 Parent-child relationships can be properly obtained, for example, by indexing nodes (voxels) based on the Morton order.

図23は、上記の流れを擬似コードで示す図である。まず、8分木を構成するノードの全てをスキャンするループを設定する。それぞれのノードを根 (親) として、子ノードの生成及び生成した子ノードへの離散符号の付与を実行する。 Figure 23 shows the above flow in pseudocode. First, a loop is set up to scan all of the nodes that make up the octree. Each node is treated as the root (parent), and child nodes are generated and assigned discrete codes.

r の深さが所定の深さ D 以上の場合には、処理を終了する。すなわち、深さ D においては、全てのノードが親ノードにはならないと判断し、処理を終了する。この深さ D は、計算コスト、メモリコスト及び解像度等に基づいて決定されてもよい。 If the depth of r is equal to or greater than a predetermined depth D, the process terminates. In other words, it is determined that at depth D, none of the nodes are parent nodes, and the process terminates. This depth D may be determined based on factors such as computational cost, memory cost, and resolution.

深さが条件を満たす場合、子ノードの生成に関して、1つの親からの枝分かれしている8本のエッジに対してループを実行する。このループでは、まず、現在までに形成した木の状態における確率分布にしたがって、 i 番目の子を生成するかどうかを決定する。 If the depth meets the condition, a loop is performed on the eight edges branching from one parent to generate a child node. In this loop, a decision is first made as to whether to generate the i-th child, based on the probability distribution of the tree state formed so far.

子が生成される場合には、現在のまでの木で条件付けされる確率分布にしたがって、 i 番目のノードの離散符号をサンプリングする。そして、この i 番目のノードを子ノードとして8分木に追加、登録する。 When a child is generated, the discrete code of the i-th node is sampled according to the probability distribution conditioned by the tree up to the current point. This i-th node is then added and registered as a child node in the octree.

このように、8分木が生成される。上述したように先に8分木の構造のみを生成することも可能であり、この場合、4行目の確率分布の取得及び5行目の判定は、必ずしも必須の処理ではない。 In this way, an octree is generated. As mentioned above, it is also possible to generate only the octree structure first, in which case obtaining the probability distribution on line 4 and making the judgment on line 5 are not necessarily required processes.

上記の処理は、図20に示したニューラルネットワークモデルを用いてそれぞれのトークンを取得することで実行することができる。もちろん、適切にトークンが取得されるのであれば、図20のモデルを用いなくてもよい。 The above process can be performed by obtaining each token using the neural network model shown in Figure 20. Of course, if tokens can be obtained appropriately, the model in Figure 20 does not need to be used.

上記の動作についてより具体的な例を挙げて説明する。出力されるトークンは、図15、図16の分布に基づいたものである。 The above operation will be explained using a more specific example. The tokens output are based on the distributions in Figures 15 and 16.

図24は、図20に示すニューラルネットワークモデルの入出力の一例を示す図である。説明の簡単のため、頂点及びボクセルについては、通し番号を付与している。前述の各図における指定は、下記にて説明する。 Figure 24 shows an example of the input and output of the neural network model shown in Figure 20. For ease of explanation, vertices and voxels are assigned consecutive numbers. The designations in each of the aforementioned figures are explained below.

この図24は、例えば、頂点を表す識別子として、図15又は図16に示す番号を付している。限定されないこの例では、階層ごとに、ボクセルの番号が若い順番に、ボクセルの順序と同様の順序 (例えば、図面向かってボクセル(0)の手前左下 → 右下 → 左上 → 右上 → ボクセル(0)の奥左下 → 右下 → 左上 → 右上 → 次のボクセル(1)においてボクセル(0)と重複する頂点を除く頂点である手前右下 → 右上 → 奥右下 → 右上 等の順番) に識別子が付与されている。もちろん、このボクセルの番号及びこの頂点の番号の付与方法は、この方法に限定されるものではなく、適切にボクセルが識別でき、また、適切に頂点と離散符号の ID とを紐付けられる方法により付与されるものであればよい。 In Figure 24, for example, the numbers shown in Figure 15 or 16 are assigned as identifiers representing vertices. In this non-limiting example, identifiers are assigned for each layer in ascending order of voxel number, in the same order as the voxels (for example, as you face the drawing, bottom left in front of voxel (0) → bottom right → top left → top right → bottom left → top right → bottom right behind voxel (0) → bottom right → top left → top right → bottom right in the next voxel (1), excluding vertices that overlap with voxel (0)). Of course, the method of assigning these voxel and vertex numbers is not limited to this method, and any method that can properly identify voxels and properly link vertices to discrete code IDs will suffice.

最初の段階において、Transformer に開始トークン (sos) が入力される。このトークンの入力に対して、第0階層のボクセル V0 の左下手前の頂点の離散符号が出力される。次に、この離散符号を Transformer に入力することで、ボクセルV0 の右下手前の頂点の離散符号が出力される。第0階層の離散符号 ID の出力は、ボクセル V0 の右上奥の頂点7まで継続される。 In the first stage, a start token (sos) is input to the Transformer. In response to this token input, the discrete code of the vertex immediately before the bottom left of voxel V0 at layer 0 is output. Next, by inputting this discrete code into the Transformer, the discrete code of the vertex immediately before the bottom right of voxel V0 is output. The output of the discrete code ID at layer 0 continues up to vertex 7 at the top right and back of voxel V0 .

次に、9回目の繰り返しとして、ボクセル V0 の頂点7の離散符号が入力されると、第1階層のボクセル V1_0 を生成するか否かを示すトークンが出力される。図の例では、”1”であるので、ボクセル V1_0 が生成される。次に、この生成トークンを入力し、トランスフォーマを介して第0階層のボクセルの離散符号が入力され、ボクセル V1_0 の左下手前の頂点の離散符号を取得する。 Next, in the ninth iteration, when the discrete code of vertex 7 of voxel V0 is input, a token indicating whether or not to generate voxel V1_0 in the first layer is output. In the example shown, the value is "1," so voxel V1_0 is generated. Next, this generation token is input, and the discrete code of the voxel in the zeroth layer is input via the transformer, and the discrete code of the vertex just before the bottom left of voxel V1_0 is obtained.

これと同様の演算を必要な回数だけ繰り返し実行する。例えば、23回目の繰り返しでは、入力された離散符号と、トランスフォーマからの入力に基づいて、ボクセル V1_2 が空であると判断し、ボクセル V1_2 を生成しないという出力を行う。 This same operation is repeated as many times as necessary. For example, in the 23rd iteration, based on the input discrete code and the input from the transformer, it is determined that the voxel V1_2 is empty, and the output is that the voxel V1_2 is not generated.

このように、ボクセル及びボクセルの頂点の割り当てられる離散符号を、自己回帰的に実行する。また、別の例として、自己回帰モデルを用いて、すでに生成された一部のボクセルから他のボクセルを生成してもよい。他のボクセルとは、例えば、他の頂点、他の階層をも含む。このようにすることで、一部のシーンから他のシーンのボクセルを形成することもできる。 In this way, the discrete codes assigned to voxels and voxel vertices are performed autoregressively. As another example, an autoregressive model may be used to generate other voxels from some voxels that have already been generated. Other voxels include, for example, other vertices and other hierarchies. In this way, voxels of another scene can be generated from one scene.

このように、8分木、すなわち、階層構造のボクセルの情報を自己回帰的に取得する。自己回帰モデルを用いる場合、1つずつサンプルする必要があるが、訓練時においては、 Causal CNN 又は Causal Transformer の手法を用いることで、並列して訓練を実行することができる。 In this way, information about the octree, i.e., the hierarchical structure of voxels, is obtained autoregressively. When using an autoregressive model, samples must be taken one by one, but during training, training can be performed in parallel by using the Causal CNN or Causal Transformer techniques.

シーンを生成は、このように定義されたボクセルの特徴量に基づいて上記の推論装置において説明した処理にしたがって実行される。 Scene generation is performed according to the process described in the inference device above, based on the voxel features defined in this way.

以上のように、本実施形態によれば、ボクセルを分割して処理することができるので、情報量の多いシーン、例えば、対象物体が大きい場合のシーンの生成において、より精度の高いシーンを生成することが可能となる。また、階層的なボクセル生成を、自己回帰の Transformer を用いることにより、位置情報を特徴量により詳細に条件付けることが可能となるので、複雑なボクセルの生成も可能となる。 As described above, this embodiment allows voxels to be divided and processed, making it possible to generate scenes with a large amount of information, such as scenes with large target objects, with greater accuracy. Furthermore, by using an autoregressive Transformer for hierarchical voxel generation, it is possible to condition position information in detail using feature quantities, making it possible to generate complex voxels.

本開示における形態を用いることにより、任意の座標と姿勢のカメラが与えられた場合に、当該カメラの視点からの画像を生成できるほか、形状情報を利用し、ナビゲーションの計画を立てることも可能である。 By using the embodiments disclosed herein, when a camera with arbitrary coordinates and pose is given, it is possible to generate an image from the camera's viewpoint, and it is also possible to use shape information to plan navigation.

この他、部屋、建物又は屋外の景色の生成モデルを実装することができる。例えば、様々の部屋又は建物のスキャンデータセットから訓練を実行することで、様々な種類の部屋又は建物をサンプリングすることもできる。これを応用することで、建築における設計や生成したデータ上 (仮想空間) におけるロボット、 AGV (Automatic Guided Vehicle) 等のシミュレーション環境を生成することができる。自動運転の場合についても、学習データ、検証データ生成用のシミュレーション環境を生成することができる。 In addition, it is possible to implement generative models of rooms, buildings, or outdoor scenes. For example, by training using scan datasets of various rooms or buildings, it is possible to sample various types of rooms or buildings. This can be applied to architectural design, or to generate simulation environments for robots, AGVs (Automatic Guided Vehicles), etc. in the generated data (virtual space). In the case of autonomous driving, it is also possible to generate simulation environments for generating training data and validation data.

また、別の例として、シーン生成時においても条件付けをすることも可能である。例えば、上記の部屋の例であれば、部屋に窓が1枚ある、2枚ある等の条件付けをすることも可能である。 As another example, it is also possible to set conditions when generating a scene. For example, in the room example above, it is possible to set conditions such as whether the room has one window or two windows.

また、生成モデルを作ることができるので、スキャンで一部しか特徴量を定義できない場合であっても、当該特徴量から取得できていない特徴量を推論し、観測できていないシーンを推論して復元することもできる。これを応用することで、部分観測からの復元に本開示における形態を適用することができる。 Furthermore, because it is possible to create a generative model, even if only some features can be defined in the scan, it is possible to infer the features that could not be obtained from those features and infer and restore the unobserved scene. By applying this, the form disclosed herein can be applied to restoration from partial observation.

前述の開示においては、ボクセルの頂点に特徴量を離散符号として定義するものとしたが、これには限られず、ボクセルの中心(重心)に埋め込みベクトルを定義してもよい。この場合、ボクセルの表面においては、埋め込みベクトルが不一致となるが、頂点に特徴量を設定する場合と同様に、tri-linear補正等により離散的な表現を連続的な表現に変換してもよい。 In the above disclosure, features are defined as discrete codes at the vertices of voxels, but this is not limited to this; embedding vectors may also be defined at the center (centre of gravity) of the voxel. In this case, the embedding vectors will not match on the surface of the voxel, but just as when features are set at vertices, the discrete representation may be converted to a continuous representation using tri-linear correction or similar.

前述の開示においては、式(1)に示す関数をニューラルネットワークで表現することで所定のシーンの画像を生成したが、画像生成に用いられる関数はこれに限定されない。所定のシーンに対応する複数の離散符号に関する情報 (限定されない一例として、各頂点に離散符号が付与された階層的なボクセル) に基づいて任意の座標に対応する特徴量 (限定されない一例として、第1特徴量) を算出し、この特徴量をニューラルネットワークで表現される関数 (限定されない一例として陰関数)に入力することで所定のシーンの画像を生成してもよい。 In the above disclosure, an image of a predetermined scene was generated by expressing the function shown in equation (1) using a neural network, but the function used for image generation is not limited to this. An image of a predetermined scene may be generated by calculating a feature value (a non-limiting example, a first feature value) corresponding to any coordinate based on information about multiple discrete codes corresponding to the predetermined scene (a non-limiting example, a hierarchical voxel with a discrete code assigned to each vertex), and inputting this feature value into a function (a non-limiting example, an implicit function) expressed by a neural network.

また、ニューラルネットワークは、少なくとも、対象 (物体等) が存在する空間、対象の3次元形状、対象の色情報又は対象の密度情報のいずれか1つに関する情報 (3次元情報) を表現するものであってもよく、ニューラルネットワークの出力情報に基づくレンダリングによって画像を生成してもよい。例えば、Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes (arXiv: 2101.10994v1)、NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction (arXiv: 2106.10689)等の論文で用いられている関数 (ニューラルネットワーク) と複数の離散符号に関する情報とに基づいて、対象の3次元形状に関する情報を生成してもよい。ここで、ニューラルネットワークは、計算対象の座標から物体の表面までの距離に関する情報を出力してもよい。 The neural network may also represent information (3D information) related to at least one of the following: the space in which the target (object, etc.) exists; the 3D shape of the target; color information about the target; or density information about the target. Images may be generated by rendering based on the output information of the neural network. For example, information about the 3D shape of the target may be generated based on a function (neural network) used in papers such as Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes (arXiv: 2101.10994v1) and NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction (arXiv: 2106.10689) and information about multiple discrete codes. Here, the neural network may output information about the distance from the coordinates of the target to the surface of the object.

また、前述の開示におけるボクセルの頂点に付与された複数の離散符号は、所定のシーンについて生成された複数の離散符号に関する情報の限定されない一例である。複数の離散符号に関する情報は、少なくとも、所定のシーンにおける対象 (物体等) が存在する空間、対象の3次元形状、対象の色情報又は対象の密度情報のいずれかに1つに関する情報 (3次元情報) を表現するものであってもよい。離散符号に関する情報は、少なくとも、離散符号、離散符号の ID 、離散符号の付与先の情報、離散符号が空か否か又はボクセル (領域) を生成するか否かのいずれか1つであってもよい。また、離散符号をベクトルではなくテンソルで表現し、エンコーダの出力、デコーダへの入力もテンソルにしてもよい。また、複数の離散符号から抽出される特徴量 (限定されない一例として第1特徴量及び第2特徴量) もテンソルで表現してもよい。 Furthermore, the multiple discrete codes assigned to the vertices of voxels in the above disclosure are one non-limiting example of information regarding multiple discrete codes generated for a specified scene. The information regarding the multiple discrete codes may represent at least information (3D information) regarding one of the following: the space in which an object (such as an object) in the specified scene exists, the three-dimensional shape of the object, color information about the object, or density information about the object. The information regarding the discrete code may include at least one of the following: the discrete code, the ID of the discrete code, information about the destination to which the discrete code is assigned, and whether the discrete code is empty or generates a voxel (region). Furthermore, the discrete code may be represented as a tensor rather than a vector, and the output of the encoder and the input to the decoder may also be tensors. Furthermore, features extracted from the multiple discrete codes (first and second features, as one non-limiting example) may also be represented as tensors.

前述の実施形態における訓練済モデルは、例えば、説明したように訓練した上で、さらに、一般的な手法により蒸留されたモデルを含む概念であってもよい。 The trained model in the above-described embodiment may, for example, be a concept that includes a model that has been trained as described and then further distilled using general techniques.

また、前述の実施形態における訓練済みモデルは、例えば、動画像を構成する少なくとも 1 枚の画像であってもよい。すなわち、動画におけるある瞬間のシーンを捉えた3次元空間を再構成するように生成されてもよい。この場合、例えば、動画のフレームごとの画像に対してシーンを再構成することで、任意の瞬間の任意のカメラ情報 C に基づいた画像 I を取得することもできる。 Furthermore, the trained model in the above-described embodiment may be, for example, at least one image constituting a video. In other words, it may be generated to reconstruct a three-dimensional space capturing a scene at a certain moment in the video. In this case, for example, by reconstructing the scene for each frame of the video, it is possible to obtain an image I based on any camera information C at any moment.

上記に示した情報処理装置は、以下のようにまとめることもできる。すなわち、一実施形態によれば、離散符号を割り当てる情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、自己回帰モデルを用いて、3次元情報を表現する複数の離散符号に関する情報を生成する。この情報処理装置は、処理回路により、画像を生成するために必要となる3次元構造の特徴量を求めるための離散符号を訓練済みの自己回帰モデルを用いることで適切に生成し、割り当てることができる。また、3次元情報は、少なくとも、所定のシーンにおける対象 (物体等) が存在する空間、対象の3次元形状、対象の色情報又は対象の密度情報のいずれかに1つに関する情報であってもよい。また、離散符号に関する情報は、少なくとも、離散符号、離散符号の ID 、離散符号の付与先の情報、離散符号が空か否か又はボクセル (領域) を生成するか否かのいずれか1つであってもよい。 The information processing device described above can also be summarized as follows. That is, according to one embodiment, an information processing device for assigning discrete codes includes one or more memories and one or more processors. The one or more processors use an autoregressive model to generate information about multiple discrete codes representing three-dimensional information. This information processing device can appropriately generate and assign discrete codes for determining the features of the three-dimensional structure required to generate an image by using a trained autoregressive model through a processing circuit. The three-dimensional information may also be information about at least one of the space in which an object (such as an object) exists in a specified scene, the three-dimensional shape of the object, color information about the object, or density information about the object. The information about the discrete code may also include at least the discrete code, the ID of the discrete code, information about the destination to which the discrete code is assigned, and whether the discrete code is empty or whether it generates a voxel (region).

前記複数の離散符号に関する情報は、複数の階層を構成してもよい。例えば、上述した D 階層の3次元構造に対応する、離散符号を示すベクトル、又は、離散符号を識別するインデクスにより、離散符号に関する情報が階層的に構成されてもよい。離散符号は、テンソルで表現されてもよい。 The information about the multiple discrete codes may be organized into multiple layers. For example, the information about the discrete codes may be organized hierarchically using vectors indicating the discrete codes or indices identifying the discrete codes, corresponding to the three-dimensional structure of the D layer described above. The discrete codes may be represented by tensors.

前記複数の階層は、8分木で表現されてもよい。例えば、3次元構造がボクセルである場合には、ボクセルの各辺を2等分することで8個の新たなボクセルを生成することができ、この形態を、8分木で表現することができる。任意の形状の3次元構造でも、ほぼ同等の大きさの3次元構造に8分割することで、同様に処理することができる。 The multiple layers may be represented by an octree. For example, if the three-dimensional structure is a voxel, eight new voxels can be generated by bisecting each edge of the voxel, and this form can be represented by an octree. Three-dimensional structures of any shape can also be processed in the same way by dividing them into eight three-dimensional structures of approximately equal size.

前記複数の階層は、3次元空間を階層ごとに異なる領域に分割され、前記複数の離散符号は、各階層の領域に付与されてもよい。 The multiple layers may divide the three-dimensional space into different regions for each layer, and the multiple discrete codes may be assigned to the regions of each layer.

前記領域はボクセルであって、前記複数の離散符号は、前記ボクセルの頂点に付与されてもよい。例えば、上記の D 階層の3次元構造は、ボクセルにより形成されてもよく、離散符号がそれぞれの階層のボクセルの頂点に割り当てられてもよい。離散符号の割り当てについて、例えば、離散符号のインデクスをボクセルの頂点ごとに紐付けて格納することで、メモリ領域を削減することもできる。 The region may be a voxel, and the multiple discrete codes may be assigned to the vertices of the voxels. For example, the three-dimensional structure of the D hierarchy described above may be formed by voxels, and discrete codes may be assigned to the vertices of voxels in each hierarchy. When assigning discrete codes, for example, memory space can be reduced by storing discrete code indices associated with each voxel vertex.

前記自己回帰モデルは、上位の階層から下記の階層の順に、階層ごとに離散符号に関する情報を生成してもよい。上記のように、離散符号に関する情報は、例えば、離散符号を表すベクトル、又は、離散符号を識別するインデクスであってもよいし、その他の離散符号に関する情報であってもよい。前述したように、処理回路は、自己回帰モデルを用いることで、第0ボクセルから深い階層へと逐次的にボクセルの生成及び離散符号に関する情報を割り当てることができる。 The autoregressive model may generate information about the discrete code for each layer, starting from the highest layer and continuing down the hierarchy. As described above, the information about the discrete code may be, for example, a vector representing the discrete code, an index identifying the discrete code, or other information about the discrete code. As described above, the processing circuit can use the autoregressive model to generate voxels and assign information about the discrete code sequentially, starting from the 0th voxel to deeper layers.

前記自己回帰モデルは、上位の階層について生成された離散符号に関する情報に基づいて、下位の階層の離散符号に関する情報を生成してもよい。すなわち、処理回路は、自己回帰モデルを用いることで、着目している階層の上位の階層の離散符号に関する情報に基づいて生成し、この離散符号を着目している階層の離散符号に関する情報として割り当てることができる。 The autoregressive model may generate information about the discrete code of a lower layer based on information about the discrete code generated for the higher layer. In other words, by using the autoregressive model, the processing circuit can generate information about the discrete code of a layer higher than the layer of interest based on information about the discrete code of the layer of interest, and assign this discrete code as information about the discrete code of the layer of interest.

上位の階層が少なくとも第1領域と第2領域とに分割され、下位の階層の第3領域が前記第1領域に含まれる場合、前記自己回帰モデルは、前記第3領域の離散符号に関する情報を、前記第2領域の離散符号に関する情報ではなく前記第1領域の離散符号に関する情報に基づいて生成してもよい。換言すると、処理回路は、自己回帰モデルを用いて、着目している3次元構造に対して、この3次元構造の直接的に先祖となる3次元構造の情報に基づいて離散符号に関する情報を生成してもよい。階層的に形成される下位の3次元構造は、少なくとも1つの上位の階層の3次元構造内に包含される。例えば、ボクセルであれば、上位の階層から8分割して生成され、その生成されたボクセルに対してさらに8分割して下位の階層のボクセルが生成される。そして、直接的に着目しているボクセルを含む上位の階層のボクセルの情報を用いて、当該ボクセルに割り当てられる離散符号を生成する。 When a higher level is divided into at least a first region and a second region, and a third region in a lower level is included in the first region, the autoregressive model may generate information about the discrete code in the third region based on information about the discrete code in the first region, rather than information about the discrete code in the second region. In other words, the processing circuit may use the autoregressive model to generate information about the discrete code for a three-dimensional structure of interest based on information about the three-dimensional structure that is the direct ancestor of the three-dimensional structure. Hierarchically formed lower three-dimensional structures are contained within the three-dimensional structure of at least one higher level. For example, voxels are generated by dividing the upper level into eight, and then these generated voxels are further divided into eight to generate voxels in the lower level. Then, information about voxels in the higher level that directly include the voxel of interest is used to generate the discrete code to be assigned to that voxel.

前記自己回帰モデルは、少なくとも領域を生成するか否かに関する情報又は離散符号の識別情報のいずれかを出力してもよい。前段落では、3次元構造に割り当てられる離散符号に関する情報が当該3次元構造を含む上位の階層の情報から取得できるとしたが、この3次元構造が生成されるか否かを上位の階層の情報から取得してもよい。より具体的には、自己回帰モデルに基づいて着目している3次元構造が生成するか否かを決定してもよい。そして、生成することが決定された後に、自己回帰モデルにより離散符号に関する情報が生成されてもよい。 The autoregressive model may output at least either information regarding whether to generate a region or identification information for the discrete code. In the previous paragraph, it was stated that information regarding the discrete code assigned to the three-dimensional structure can be obtained from information at a higher level that includes the three-dimensional structure in question, but whether or not this three-dimensional structure will be generated may also be obtained from information at a higher level. More specifically, it may be determined based on an autoregressive model whether or not the three-dimensional structure of interest will be generated. Then, after it has been determined that the structure will be generated, information regarding the discrete code may be generated by the autoregressive model.

前記自己回帰モデルは、 Transformer を備えてもよい。 Transformer を用いることで、複雑なゲート等をモデリングすること無く自己回帰モデルを形成することができる。また、上記のいくつかに示したように、3次元構造の情報については、自らの直接的な先祖である3次元構造の情報を用いるが、これは、 Attention にマスキングすることで適切に訓練及び推論に適用することもできる。 The autoregressive model may include a Transformer. Using a Transformer allows an autoregressive model to be formed without the need to model complex gates, etc. Also, as shown in some of the above, information on the three-dimensional structure of the model's direct ancestor is used, but this can also be appropriately applied to training and inference by masking it with Attention.

前記複数の離散符号は、3次元空間の第1座標における特徴量の算出に用いられてもよいし、前記特徴量は、少なくとも前記第1座標における色の情報を有してもよい。処理回路は、階層的に形成される離散符号を用いて、ある座標の色情報を特徴量から取得することができる。また、処理回路は、前記特徴量を用いて当該座標における密度情報を取得することもできる。その他にも、処理回路は、前記特徴量を用いて対象の3次元形状に関する情報を取得してもよい。 The multiple discrete codes may be used to calculate a feature value at a first coordinate in three-dimensional space, and the feature value may include at least color information at the first coordinate. The processing circuit can obtain color information at a certain coordinate from the feature value using the hierarchically formed discrete codes. The processing circuit can also obtain density information at that coordinate using the feature value. Alternatively, the processing circuit may obtain information about the three-dimensional shape of an object using the feature value.

一実施形態によれば、情報生成方法は、上記に記載のいずれかの情報処理装置を用いて、前記複数の離散符号に関する情報を生成する方法である。この情報生成方法の具体的な内容は前述の各実施形態の説明を参酌することで理解されたい。 According to one embodiment, the information generation method is a method of generating information about the plurality of discrete codes using any of the information processing devices described above. Specific details of this information generation method can be understood by taking into consideration the explanations of the above-mentioned embodiments.

一実施形態によれば、上記の装置若しくは方法により、又は、異なる装置若しくは方法により、生成され割り当てられた離散符号から画像を生成する情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、第1シーンを表す複数の離散符号に基づいて、3次元空間の第1座標における第1特徴量を算出し、少なくとも前記第1座標の情報及び前記第1特徴量をニューラルネットワークに入力して取得した出力情報に基づいて、前記第1シーンの画像を生成し、前記複数の離散符号は、自己回帰モデルを用いて生成されたものである。ここで、前記出力情報を用いたレンダリングにより前記第1シーンの画像を生成してもよい。 According to one embodiment, an information processing device that generates an image from discrete codes generated and assigned by the above-described device or method, or by a different device or method, includes one or more memories and one or more processors. The one or more processors calculate a first feature amount at a first coordinate in three-dimensional space based on a plurality of discrete codes representing a first scene, and generate an image of the first scene based on output information obtained by inputting at least the information on the first coordinates and the first feature amount into a neural network, where the plurality of discrete codes are generated using an autoregressive model. Here, the image of the first scene may be generated by rendering using the output information.

前記複数の離散符号は、複数の階層を構成してもよく、前記1又は複数のプロセッサは、各階層における複数の離散符号に基づいて、前記第1座標における第2特徴量を算出し、複数の階層について算出された複数の前記第2特徴量に基づいて、前記第1特徴量を算出してもよい。この第2特徴量は、階層における第1座標の特徴量であり、この階層ごとの特徴量を用いて、階層にわたり混合した当該座標の特徴量である第1特徴量を取得することができる。 The multiple discrete codes may constitute multiple layers, and the one or more processors may calculate a second feature value at the first coordinate based on the multiple discrete codes in each layer, and calculate the first feature value based on the multiple second feature values calculated for the multiple layers. This second feature value is a feature value of the first coordinate in the layer, and the feature value for each layer can be used to obtain a first feature value that is a feature value of the coordinate mixed across layers.

前記1又は複数のプロセッサは、前記第1座標の情報、姿勢の情報及び前記第1特徴量をニューラルネットワークに入力することにより、前記第1座標における色及び密度の情報を取得してもよい。 The one or more processors may obtain color and density information at the first coordinate by inputting the first coordinate information, posture information, and the first feature amount into a neural network.

前記第1座標の情報及び前記姿勢の情報は、前記第1シーンにおけるカメラ情報に基づいて生成されてもよい。例えば、カメラの内部パラメータ、及び、内部パラメータに基づいた画素ごとの焦点から画素への方向に基づいて姿勢の情報が取得され、この姿勢の情報に基づいて、第1座標の情報が取得されてもよい。 The first coordinate information and the pose information may be generated based on camera information for the first scene. For example, pose information may be obtained based on internal parameters of the camera and the direction from the focus to the pixel for each pixel based on the internal parameters, and the first coordinate information may be obtained based on this pose information.

一実施形態によれば、情報生成方法は、上記に記載のいずれかの情報処理装置を用いて、前記第1シーンの画像を生成する方法である。この情報生成方法の具体的な内容は前述の各実施形態の説明を参酌することで理解されたい。また、この情報生成方法を用いるための離散符号は、前述の離散符号を割り当てる情報処理装置又は情報生成方法により割り当てられた離散符号であってもよい。 According to one embodiment, the information generation method is a method of generating an image of the first scene using any of the information processing devices described above. The specific content of this information generation method can be understood by taking into consideration the explanations of the above-mentioned embodiments. Furthermore, the discrete code used in this information generation method may be a discrete code assigned by the information processing device or information generation method that assigns the above-mentioned discrete code.

一実施形態によれば、前述の離散符号を割り当てる情報処理装置若しくは情報生成方法、又は、前述の画像を生成する情報処理装置若しくは情報生成方法において用いられる自己回帰モデルを訓練する情報処理装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、3次元情報を表現する複数の離散符号に関する情報を生成する自己回帰モデルのパラメータを、複数の離散符号に関する情報を含む教師データを用いて更新する。 According to one embodiment, an information processing device or information generation method that assigns the aforementioned discrete codes, or an information processing device that trains an autoregressive model used in the aforementioned information processing device or information generation method that generates the aforementioned image, includes one or more memories and one or more processors. The one or more processors update the parameters of the autoregressive model that generates information about multiple discrete codes that represent three-dimensional information, using training data that includes information about the multiple discrete codes.

前記自己回帰モデルは、離散符号の識別情報を出力し、前記1又は複数のプロセッサは、前記自己回帰モデルが出力した前記離散符号の識別情報と前記教師データとに基づいて、前記パラメータを更新してもよい。 The autoregressive model may output identification information for the discrete code, and the one or more processors may update the parameters based on the identification information for the discrete code output by the autoregressive model and the training data.

前記複数の離散符号に関する情報は、複数の階層を構成してもよく、前記複数の階層は、3次元空間を階層ごとに異なる領域に分割してもよく、前記自己回帰モデルは、前記領域を生成するか否かに関する情報を出力してもよく、前記1又は複数のプロセッサは、前記自己回帰モデルが出力した前記領域を生成するか否かに関する情報と前記教師データとに基づいて、前記パラメータを更新してもよい。 The information relating to the plurality of discrete codes may form a plurality of layers, and the plurality of layers may divide a three-dimensional space into different regions for each layer. The autoregressive model may output information regarding whether or not to generate the region. The one or more processors may update the parameters based on the information regarding whether or not to generate the region output by the autoregressive model and the training data.

前記自己回帰モデルは、 Transformer を備えてもよい。前述したように、 Transformer を用いることで自己回帰的な処理を実現することができる。 The autoregressive model may include a Transformer. As mentioned above, using a Transformer allows for autoregressive processing.

一実施形態によれば、情報生成方法は、上記に記載のいずれかの情報処理装置を用いて、前記自己回帰モデルを生成する方法。この情報生成方法の具体的な内容は前述の各実施形態の説明を参酌することで理解されたい。この情報処理装置又は情報生成方法により生成された自己回帰モデルを用いることで、前述の離散符号の割り当て、及び、離散符号からの画像の生成を実現できる。例えば、対象をいろいろな角度から撮影した画像情報及びカメラ情報に基づいて、離散符号を生成し、この生成した離散符号から、上記のいろいろな角度に含まれない角度から撮影した画像の情報を推論することが可能となる。 According to one embodiment, the information generation method is a method of generating the autoregressive model using any of the information processing devices described above. The specific details of this information generation method can be understood by referring to the explanations of the above-mentioned embodiments. By using the autoregressive model generated by this information processing device or information generation method, it is possible to assign the discrete codes described above and generate images from the discrete codes. For example, it is possible to generate discrete codes based on image information and camera information obtained by photographing an object from various angles, and to infer information about images photographed from angles that are not included in the various angles described above from the generated discrete codes.

前述した実施形態における各装置(推論装置又は訓練装置を含む。以下情報処理装置と記載する)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、CD-ROM(Compact Disc-Read Only Memory)、USB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアの処理の全部又は一部がASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、当該ソフトウェアによる情報処理がハードウェアにより実行されてもよい。 Part or all of the devices (including inference devices and training devices; hereinafter referred to as information processing devices) in the above-described embodiments may be configured as hardware, or may be configured as software (program) information processing executed by a CPU (Central Processing Unit) or GPU (Graphics Processing Unit), etc. If configured as software information processing, software that realizes at least some of the functions of each device in the above-described embodiments may be stored on a non-transitory storage medium (non-transitory computer-readable medium) such as a CD-ROM (Compact Disc-Read Only Memory) or USB (Universal Serial Bus) memory, and the software information processing may be executed by loading it into a computer. The software may also be downloaded via a communications network. Furthermore, all or part of the software processing may be implemented in a circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array), thereby allowing the software information processing to be performed by hardware.

ソフトウェアを収納する記憶媒体は、光ディスク等の着脱可能なものでもよいし、ハードディスク又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし(主記憶装置または補助記憶装置等)、コンピュータ外部に備えられてもよい。 The storage medium that stores the software may be a removable medium such as an optical disk, or a fixed medium such as a hard disk or memory. The storage medium may also be located inside the computer (such as a main memory device or auxiliary memory device) or outside the computer.

図25は、前述した実施形態における各装置(情報処理装置)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。 Figure 25 is a block diagram showing an example of the hardware configuration of each device (information processing device) in the above-mentioned embodiment. Each device may be realized as a computer 7 including, for example, a processor 71, a main storage device 72 (memory), an auxiliary storage device 73 (memory), a network interface 74, and a device interface 75, all of which are connected via a bus 76.

図25のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図25では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(情報処理装置)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。 The computer 7 in Figure 25 includes one of each component, but may include multiple of the same component. Also, while Figure 25 shows one computer 7, the software may be installed on multiple computers, with each of those computers executing the same or different parts of the software. In this case, a form of distributed computing may be used, in which each computer communicates via a network interface 74 or the like to execute processing. In other words, each device (information processing device) in the above-described embodiment may be configured as a system in which one or more computers execute commands stored in one or more storage devices to achieve its functions. Furthermore, the system may be configured so that information sent from a terminal is processed by one or more computers located on the cloud, and the processing results are sent to the terminal.

前述した実施形態における各装置(情報処理装置)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。 The various calculations of each device (information processing device) in the above-described embodiments may be executed in parallel using one or more processors, or using multiple computers via a network. Furthermore, the various calculations may be distributed to multiple processing cores within a processor and executed in parallel. Furthermore, some or all of the processes, means, etc. disclosed herein may be implemented by at least one processor and storage device provided on a cloud that can communicate with computer 7 via a network. In this way, each device in the above-described embodiments may be implemented in the form of parallel computing using one or more computers.

プロセッサ71は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ71は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置等のいずれであってもよい。また、プロセッサ71は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。 Processor 71 may be an electronic circuit (processing circuit, processing circuitry, CPU, GPU, FPGA, ASIC, etc.) that performs at least one of computer control and calculations. Processor 71 may also be a general-purpose processor, a dedicated processing circuit designed to perform a specific calculation, or a semiconductor device that includes both a general-purpose processor and a dedicated processing circuit. Processor 71 may also include an optical circuit, or may include calculation functions based on quantum computing.

プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。 Processor 71 may perform arithmetic processing based on data and software input from each device, etc., within computer 7, and may output arithmetic results and control signals to each device, etc. Processor 71 may control each component that makes up computer 7 by executing computer 7's OS (Operating System), applications, etc.

前述した実施形態における各装置(情報処理装置)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。 Each device (information processing device) in the above-described embodiments may be realized by one or more processors 71. Here, processor 71 may refer to one or more electronic circuits arranged on a single chip, or to one or more electronic circuits arranged on two or more chips or two or more devices. When multiple electronic circuits are used, the electronic circuits may communicate with each other via wires or wirelessly.

主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶してもよく、主記憶装置72に記憶された情報がプロセッサ71により読み出されてもよい。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。前述した実施形態における各装置(情報処理装置)において各種データ等を保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよい。 The main memory device 72 may store instructions executed by the processor 71 and various data, and information stored in the main memory device 72 may be read by the processor 71. The auxiliary memory device 73 is a memory device other than the main memory device 72. Note that these memory devices refer to any electronic component capable of storing electronic information, and may be semiconductor memory. The semiconductor memory may be either volatile memory or non-volatile memory. The memory device for saving various data in each device (information processing device) in the above-described embodiments may be realized by the main memory device 72 or the auxiliary memory device 73, or may be realized by internal memory built into the processor 71. For example, the memory device in the above-described embodiments may be realized by the main memory device 72 or the auxiliary memory device 73.

前述した実施形態における各装置(情報処理装置)が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサで構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサが接続されてもよい。また、プロセッサ1つに対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサのうち少なくとも1つのプロセッサが、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。 When each device (information processing device) in the above-described embodiments is configured with at least one storage device (memory) and at least one processor connected (coupled) to this at least one storage device, at least one processor may be connected to one storage device. Also, at least one storage device may be connected to one processor. Also, a configuration in which at least one processor out of multiple processors is connected to at least one storage device out of multiple storage devices may be included. This configuration may also be realized by storage devices and processors included in multiple computers. Furthermore, a configuration in which a storage device is integrated with a processor (for example, a cache memory including an L1 cache and an L2 cache) may also be included.

ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやりとりが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。 The network interface 74 is an interface for connecting to the communication network 8 wirelessly or via a wired connection. The network interface 74 may be an appropriate interface, such as one that conforms to existing communication standards. Information may be exchanged with an external device 9A connected via the communication network 8 via the network interface 74. The communication network 8 may be a WAN (Wide Area Network), LAN (Local Area Network), PAN (Personal Area Network), or any combination thereof, as long as information is exchanged between the computer 7 and the external device 9A. An example of a WAN is the Internet, an example of a LAN is IEEE802.11 or Ethernet (registered trademark), and an example of a PAN is Bluetooth (registered trademark) or NFC (Near Field Communication), etc.

デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。 The device interface 75 is an interface such as USB that directly connects to the external device 9B.

外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。 External device 9A is a device connected to computer 7 via a network. External device 9B is a device connected directly to computer 7.

外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス又はタッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。 External device 9A or external device 9B may be, for example, an input device. The input device may be a device such as a camera, microphone, motion capture device, various sensors, keyboard, mouse, or touch panel, and provides acquired information to computer 7. It may also be a device equipped with an input unit, memory, and processor, such as a personal computer, tablet terminal, or smartphone.

また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。 Furthermore, external device 9A or external device 9B may be, for example, an output device. The output device may be, for example, a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) panel, or a speaker that outputs sound, etc. Alternatively, it may be a device equipped with an output unit, memory, and a processor, such as a personal computer, tablet terminal, or smartphone.

また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。 Furthermore, external device 9A or external device 9B may be a storage device (memory). For example, external device 9A may be network storage, and external device 9B may be storage such as an HDD.

また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(情報処理装置)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bに処理結果の一部又は全部を送信してもよいし、外部装置9A又は外部装置9Bから処理結果の一部又は全部を受信してもよい。 Furthermore, external device 9A or external device 9B may be a device that has some of the functions of the components of each device (information processing device) in the above-mentioned embodiments. In other words, computer 7 may send some or all of the processing results to external device 9A or external device 9B, or may receive some or all of the processing results from external device 9A or external device 9B.

本明細書(請求項を含む)において、「a 、b 及び c の少なくとも1つ(一方)」又は「a 、b 又は c の少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a - b、a - c、b - c 又は a - b - c のいずれかを含む。また、a - a、a - b - b、a - a - b - b - c - c 等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a - b - c - d のように d を有する等、列挙された要素(a 、b 及び c)以外の他の要素を加えることも含む。 When the expression "at least one of a, b, and c" or "at least one of a, b, or c" (including similar expressions) is used in this specification (including the claims), it includes any of a, b, c, a-b, a-c, b-c, or a-b-c. It may also include multiple instances of any element, such as a-a, a-b-b, a-a-b-b-c-c, etc. It also includes the addition of elements other than the listed elements (a, b, and c), such as having d, as in a-b-c-d.

本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りが無い場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態等にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を出力として用いる場合を含む。 When this specification (including claims) uses expressions such as "using/using data as input/based on/according to/in response to" (including similar expressions), unless otherwise specified, this includes cases where the data itself is used, or where data that has been processed in some way (e.g., data with noise added, normalized data, features extracted from data, intermediate representations of data, etc.). Furthermore, when it is stated that a result is obtained "using data as input/based on/according to/in response to" (including similar expressions), this includes cases where the result is obtained based solely on the data in question, or where the result is influenced by other data, factors, conditions, and/or states. Furthermore, when it is stated that "data is output" (including similar expressions), unless otherwise specified, this includes cases where the data itself is used as output, or where data that has been processed in some way (e.g., data with noise added, normalized data, features extracted from data, intermediate representations of data, etc.) is used as output.

本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。 When the terms "connected" and "coupled" are used in this specification (including the claims), they are intended as open-ended terms that encompass direct connection/coupling, indirect connection/coupling, electrically connection/coupling, communicatively connection/coupling, functionally connection/coupling, and physically connection/coupling. These terms should be interpreted appropriately according to the context in which they are used, but should be interpreted open-endedly to include any form of connection/coupling that is not intentionally or naturally excluded.

本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。 When the expression "A configured to B" is used in this specification (including the claims), it may include the physical structure of element A being configured to perform operation B, and element A's permanent or temporary setting/configuration being configured/set to actually perform operation B. For example, if element A is a general-purpose processor, it is sufficient that the processor has a hardware configuration capable of performing operation B, and that the processor is configured to actually perform operation B through permanent or temporary program (instruction) settings. Furthermore, if element A is a dedicated processor or dedicated arithmetic circuit, it is sufficient that the circuit structure of the processor is implemented to actually perform operation B, regardless of whether control instructions and data are actually attached to it.

本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。 When terms implying containing or possessing (e.g., "comprising," "including," "having," etc.) are used in this specification (including the claims), they are intended to be open-ended terms that include the inclusion or possession of things other than the object designated by the object of the term. When the object of such terms implying containing or possessing does not specify a quantity or suggests a singular number (e.g., expressions using the articles "a" or "an"), the expression should be construed as not being limited to a specific number.

本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。 In this specification (including the claims), even if expressions such as "one or more" or "at least one" are used in some places and expressions that do not specify a quantity or that imply a singular number (expressions using the articles "a" or "an") are used in other places, the latter expressions are not intended to mean "one." In general, expressions that do not specify a quantity or that imply a singular number (expressions using the articles "a" or "an") should be interpreted as not necessarily being limited to a specific number.

本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態等が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。 When this specification states that a particular advantage/result is obtained with respect to a particular configuration of a certain embodiment, it should be understood that the same advantage/result can also be obtained with one or more other embodiments having that configuration, unless otherwise stated. However, it should be understood that the presence or absence of the effect generally depends on various factors, conditions, and/or states, etc., and that the effect is not necessarily obtained with that configuration. The effect is merely obtained with the configuration described in the embodiment when various factors, conditions, and/or states, etc. are satisfied, and the effect does not necessarily occur in claimed inventions that define that configuration or a similar configuration.

本明細書(請求項を含む)において、「最大化する(maximize)/最大化(maximization)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化する(minimize)/最小化(minimization)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化する(optimize)/最適化(optimization)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。 When terms such as "maximize" and "maximization" are used in this specification (including the claims), they include finding a global maximum, finding an approximation of a global maximum, finding a local maximum, and finding an approximation of a local maximum, and should be interpreted appropriately according to the context in which the term is used. They also include probabilistic or heuristic approximations of these maxima. Similarly, when terms such as "minimize" and "minimization" are used, they include finding a global minimum, finding an approximation of a global minimum, finding a local minimum, and finding an approximation of a local minimum, and should be interpreted appropriately according to the context in which the term is used. They also include probabilistic or heuristic approximations of these minima. Similarly, when terms such as "optimize" and "optimization" are used, they include finding a global optimum, finding an approximation of a global optimum, finding a local optimum, and finding an approximation of a local optimum, and should be interpreted appropriately according to the context in which the term is used. It also includes finding approximations to these optimal values probabilistically or heuristically.

本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1処理を行い、前記1又は複数のハードウェアが第2処理を行う」等の表現(同様な表現を含む)が用いられている場合、第1処理を行うハードウェアと第2処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1処理を行うハードウェア及び第2処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。 In this specification (including the claims), when multiple pieces of hardware perform a predetermined process, the pieces of hardware may work together to perform the predetermined process, or some of the hardware may perform all of the predetermined process. Furthermore, some of the hardware may perform part of the predetermined process, and other hardware may perform the rest of the predetermined process. In this specification (including the claims), when expressions such as "one or more pieces of hardware perform a first process, and the one or more pieces of hardware perform a second process" (including similar expressions) are used, the hardware performing the first process and the hardware performing the second process may be the same or different. In other words, it is sufficient that the hardware performing the first process and the hardware performing the second process are included in the one or more pieces of hardware. Note that hardware may also include electronic circuits or devices including electronic circuits.

本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。 In this specification (including the claims), when multiple storage devices (memories) store data, each of the multiple storage devices may store only a portion of the data, or may store the entire data. It may also include a configuration in which only some of the multiple storage devices store data.

以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も、例示的なものであり、本開示の範囲を限定するものではない。 Although the embodiments of the present disclosure have been described in detail above, the present disclosure is not limited to the individual embodiments described above. Various additions, modifications, substitutions, and partial deletions are possible within the scope of the conceptual idea and spirit of the present disclosure, which is derived from the content defined in the claims and their equivalents. For example, when numerical values or formulas are used in the above-described embodiments, these are shown for illustrative purposes and do not limit the scope of the present disclosure. Furthermore, the order of each operation shown in the embodiments is also shown for illustrative purposes and does not limit the scope of the present disclosure.

Claims (15)

1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
自己回帰モデルを用いて、複数の階層を構成し、3次元空間を表現する複数の離散符号に関する情報を生成し、
前記複数の離散符号に関する情報に基づいて、前記3次元空間の座標における特徴量算出
少なくとも前記特徴量をニューラルネットワークに入力することで取得された出力情報に基づいて前記3次元空間の画像生成する
情報処理装置。
one or more memories;
one or more processors;
the one or more processors:
Using an autoregressive model, multiple layers are constructed, and information on multiple discrete codes that represent a three-dimensional space is generated.
calculating a feature amount in the coordinates of the three-dimensional space based on information about the plurality of discrete codes ;
generating an image of the three-dimensional space based on output information obtained by inputting at least the feature amount into a neural network ;
Information processing device.
前記複数の階層は、8分木で表現される、
請求項1に記載の情報処理装置。
The plurality of layers are represented by an octree.
The information processing device according to claim 1 .
前記複数の階層は、前記3次元空間を階層ごとに異なる領域に分割し、
前記複数の離散符号は、各階層の領域に付与される、
請求項1又は請求項2に記載の情報処理装置。
The plurality of layers divide the three-dimensional space into different regions for each layer,
the plurality of discrete codes are assigned to regions of each layer;
3. The information processing device according to claim 1 .
前記領域はボクセルであって、
前記複数の離散符号は、前記ボクセルの頂点に付与される、
請求項3に記載の情報処理装置。
the region is a voxel,
the plurality of discrete codes are assigned to vertices of the voxels;
The information processing device according to claim 3 .
前記自己回帰モデルは、上位の階層から下位の階層の順に、階層ごとに離散符号に関する情報を生成する、
請求項1乃至請求項4のいずれか1項に記載の情報処理装置。
the autoregressive model generates information about discrete codes for each layer in order from a higher layer to a lower layer;
The information processing device according to claim 1 .
前記自己回帰モデルは、上位の階層について生成された離散符号に関する情報に基づいて、下位の階層の離散符号に関する情報を生成する、
請求項5に記載の情報処理装置。
the autoregressive model generates information about the discrete code of a lower layer based on information about the discrete code generated for the higher layer;
The information processing device according to claim 5 .
上位の階層が少なくとも第1領域と第2領域とに分割され、下位の階層の第3領域が前記第1領域に含まれる場合、前記自己回帰モデルは、前記第3領域の離散符号に関する情報を、前記第2領域の離散符号に関する情報ではなく前記第1領域の離散符号に関する情報に基づいて生成する、
請求項6に記載の情報処理装置。
When an upper layer is divided into at least a first region and a second region and a third region of a lower layer is included in the first region, the autoregressive model generates information about the discrete code in the third region based on information about the discrete code in the first region, not information about the discrete code in the second region.
The information processing device according to claim 6 .
前記自己回帰モデルは、少なくとも領域を生成するか否かに関する情報又は離散符号の識別情報のいずれかを出力する、
請求項3乃至請求項7のいずれか1項に記載の情報処理装置。
The autoregressive model outputs at least one of information on whether to generate a region or identification information of a discrete code.
The information processing device according to any one of claims 3 to 7 .
前記自己回帰モデルは、Transformer を備える、
請求項1乃至請求項8のいずれか1項に記載の情報処理装置。
the autoregressive model comprises a Transformer;
The information processing device according to claim 1 .
前記1又は複数のプロセッサは、少なくとも前記座標の情報及び前記特徴量を前記ニューラルネットワークに入力することで取得された前記出力情報に基づいて、前記画像生成する
請求項1乃至請求項9のいずれか1項に記載の情報処理装置。
the one or more processors generate the image based on the output information acquired by inputting at least the coordinate information and the feature amount into the neural network .
The information processing device according to claim 1 .
前記1又は複数のプロセッサは、前記座標の情報、姿勢の情報及び前記特徴量を前記ニューラルネットワークに入力することで取得された前記座標における色及び密度の情報を用いて、前記画像を生成する
請求項10に記載の情報処理装置。
the one or more processors generate the image using color and density information at the coordinates acquired by inputting the coordinate information, posture information, and feature amount into the neural network.
The information processing device according to claim 10 .
前記座標の情報及び前記姿勢の情報は、カメラ情報に基づいて生成される、The coordinate information and the posture information are generated based on camera information.
請求項11に記載の情報処理装置。The information processing device according to claim 11.
記1又は複数のプロセッサは、
各階層における複数の離散符号に基づいて、前記座標における第2特徴量を算出し、
複数の階層について算出された複数の前記第2特徴量に基づいて、前記特徴量を算出する、
請求項1乃至請求項12のいずれか1項に記載の情報処理装置。
the one or more processors:
calculating a second feature amount at the coordinate based on the plurality of discrete codes in each layer;
calculating the feature amount based on the second feature amounts calculated for the plurality of layers;
The information processing device according to any one of claims 1 to 12 .
請求項1乃至請求項13のいずれか1項に記載の情報処理装置を用いて、前記画像を生成する画像生成方法。 An image generating method for generating the image using the information processing device according to any one of claims 1 to 13 . 請求項14に記載の画像生成方法を、少なくとも1台以上の情報処理装置に実行させるためのプログラム。A program for causing at least one information processing device to execute the image generating method according to claim 14.
JP2021192413A 2021-11-26 2021-11-26 Information processing device and information generation method Active JP7819902B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021192413A JP7819902B2 (en) 2021-11-26 2021-11-26 Information processing device and information generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021192413A JP7819902B2 (en) 2021-11-26 2021-11-26 Information processing device and information generation method

Publications (3)

Publication Number Publication Date
JP2023079022A JP2023079022A (en) 2023-06-07
JP2023079022A5 JP2023079022A5 (en) 2024-12-04
JP7819902B2 true JP7819902B2 (en) 2026-02-25

Family

ID=86646162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021192413A Active JP7819902B2 (en) 2021-11-26 2021-11-26 Information processing device and information generation method

Country Status (1)

Country Link
JP (1) JP7819902B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117292040B (en) * 2023-11-27 2024-03-08 北京渲光科技有限公司 Method, apparatus and storage medium for new view synthesis based on neural rendering
CN117539253B (en) * 2023-11-29 2025-03-14 北京百度网讯科技有限公司 Automatic driving method and device capable of achieving autonomous escape following instruction and vehicle
CN117519206B (en) * 2023-12-07 2024-08-27 北京百度网讯科技有限公司 Autonomous driving model, method, device and vehicle based on generative diffusion model
CN119904582B (en) * 2025-03-31 2025-07-04 北京大学 Three-dimensional model generation method and system based on multi-scale autoregressive model

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021156514A1 (en) 2020-02-07 2021-08-12 Deepmind Technologies Limited Autoregressive neural networks for the generation of polygonal meshes of 3d objects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021156514A1 (en) 2020-02-07 2021-08-12 Deepmind Technologies Limited Autoregressive neural networks for the generation of polygonal meshes of 3d objects

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Moritz Ibing; et al.,Octree Transformer: Autoregressive 3D Shape Generation on Hierarchically Structured Sequences,arXiv.org,米国,Cornell University,2021年11月24日,https://arxiv.org/pdf/2111.12480v1

Also Published As

Publication number Publication date
JP2023079022A (en) 2023-06-07

Similar Documents

Publication Publication Date Title
JP7819902B2 (en) Information processing device and information generation method
Rosu et al. Permutosdf: Fast multi-view reconstruction with implicit surfaces using permutohedral lattices
Wynn et al. Diffusionerf: Regularizing neural radiance fields with denoising diffusion models
CN116486038B (en) Three-dimensional construction network training method, three-dimensional model generation method and device
US12106428B2 (en) Radiance fields for three-dimensional reconstruction and novel view synthesis in large-scale environments
CN109410307B (en) Scene point cloud semantic segmentation method
CN114742966B (en) A method and device for reconstructing three-dimensional scene based on image
KR101861313B1 (en) Three-dimensional environment reconstruction
CN116797742A (en) Three-dimensional reconstruction method and system for indoor scenes
CN113689539A (en) Real-time 3D reconstruction method and device for dynamic scene based on implicit optical flow field
JP7789798B2 (en) Multi-view Neural Human Prediction with an Implicit Differentiable Renderer for Facial Expression, Body Pose Shape, and Clothing Performance Capture
Gu et al. Ue4-nerf: Neural radiance field for real-time rendering of large-scale scene
CN113034675B (en) A scene model construction method, intelligent terminal and computer-readable storage medium
WO2023164933A1 (en) Building modeling method and related apparatus
CN103530907A (en) Complicated three-dimensional model drawing method based on images
CN120355848B (en) A method, apparatus, equipment and medium for scene surface reconstruction
CN120689555B (en) A dynamic scene reconstruction method, system, and related equipment
CN119006714A (en) Multi-view three-dimensional reconstruction method based on feature enhancement
CN118644605A (en) 3D Gaussian-based inverse rendering method, device, equipment and storage medium
CN115965765A (en) Human motion capture method in deformable scene based on neural deformation
CN117911609A (en) Three-dimensional hand modeling method based on nerve radiation field
CN117197323A (en) A large scene free viewpoint interpolation method and device based on neural network
US10861174B2 (en) Selective 3D registration
CN117830991A (en) A complex scene perception method and system for quadruped robots based on multi-mode fusion
US12340466B2 (en) Multiresolution neural networks for 3D reconstruction

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20250522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250908

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: 20260106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260204

R150 Certificate of patent or registration of utility model

Ref document number: 7819902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150