WO2024028988A1 - 画像処理装置、方法およびプログラム - Google Patents

画像処理装置、方法およびプログラム Download PDF

Info

Publication number
WO2024028988A1
WO2024028988A1 PCT/JP2022/029700 JP2022029700W WO2024028988A1 WO 2024028988 A1 WO2024028988 A1 WO 2024028988A1 JP 2022029700 W JP2022029700 W JP 2022029700W WO 2024028988 A1 WO2024028988 A1 WO 2024028988A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
cloud data
data
color information
point
Prior art date
Application number
PCT/JP2022/029700
Other languages
English (en)
French (fr)
Inventor
崇裕 松元
裕 千明
拓也 犬童
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2022/029700 priority Critical patent/WO2024028988A1/ja
Publication of WO2024028988A1 publication Critical patent/WO2024028988A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Definitions

  • Embodiments of the present invention relate to an image processing device, method, and program.
  • One of the methods for expressing the three-dimensional structure of an object or space is a point cloud.
  • This point cloud can be generated by measuring an object or space using LiDAR (Light Detecting And Ranging) or a camera.
  • LiDAR Light Detecting And Ranging
  • the measurement position, or the shape of the object or space the measured point cloud may not reach the laser emitted by the LiDAR, or may be reflected by diffuse reflections on the surface of the object or space.
  • point cloud data is missing because the light cannot be measured with a camera, etc.
  • Point Cloud Completion technology that estimates and complements these missing parts using a machine-learned neural network that directly handles point clouds.
  • Point Cloud Completion technology can be broadly classified into two types depending on the difference in output.
  • the first is, for example, as disclosed in Non-Patent Document 1, when the missing point group to be complemented, that is, the partially missing point group is A and the missing part is B, B is estimated using A as input. This is a neural network that outputs the result B'.
  • the second is, for example, as disclosed in Non-Patent Document 2, a neural network that inputs A and outputs "A'+B'", which is the result of estimating the whole of A+B.
  • Point Cloud Completion methods only deal with geometric completion of point clouds, so the point cloud A above is a point cloud where each point has geometric position information and color information, so-called Even in the case of a color point cloud, the estimation result B' or "A'+B'" becomes a point cloud that does not have color information, a so-called non-color point cloud, and the color information can be restored. Can not do it.
  • Non-Patent Document 3 discloses a learning model generation method using a neural network and a generative adversarial network (GAN) that outputs a color point cloud using a non-color point cloud as input. There is.
  • GAN generative adversarial network
  • the method of outputting a color point group as disclosed in the above-mentioned Non-Patent Document 3 has the following two problems.
  • the first problem is that when only geometric information of a point group without color information is input, there may be a plurality of colors that are plausible in terms of the geometric shape. For example, assume that the geometric shape of the point cloud for which color information is to be estimated is a "car.” At this time, there are multiple plausible colors such as white, red, or black as the color of the point cloud of the car's body that is estimated by the conventional neural network, so there is a possibility that the correct color cannot be determined. increases. In addition, for example, when coloring a point cloud where an outdoor space is measured, even if the space has the same location and shape, the color of the space is completely different in the morning and evening, so the correct color cannot be uniquely determined from the geometric shape alone. do not have.
  • the second problem is that when the geometric shape is insufficient, it is difficult to estimate the color of the part of the geometric shape.
  • An example of this issue is when the point cloud for which color information is to be estimated is part of the roof of a car. If it is not possible to distinguish whether the point cloud is a part of the desk top or a part of the desk top, there is a possibility that the point cloud will be estimated to have a color similar to that of a “car”, and a case where a color similar to the desk top may be estimated. There are two possibilities.
  • the present invention has been made in view of the above-mentioned circumstances, and its purpose is to provide an image processing device that can appropriately estimate missing portions of point cloud data having color information together with correct color information. , to provide methods and programs.
  • An image processing device acquires first point cloud data that does not have color information and second point cloud data that is located near the first point cloud data and has color information.
  • an acquisition unit and inputting the first and second point cloud data acquired by the acquisition unit into a neural network, outputting point cloud data in which color information is estimated for the first point cloud data.
  • An estimation processing section .
  • An image processing device acquires first point cloud data that does not have color information and second point cloud data that is located near the first point cloud data and has color information.
  • an acquisition unit and inputting the first and second point cloud data acquired by the acquisition unit into a neural network to output point cloud data in which color information in the first point cloud data is estimated.
  • the neural network adds a vector of the number of elements to a tensor representing the first point cloud data, compresses the number of point cloud data in the added result, and compresses the number of point cloud data in the added result, and The result of adding a vector of the number of elements to the tensor representing the point cloud data of , compressing the number of point cloud data in the added result, and adding the vector of the number of elements to the tensor representing the first point cloud data.
  • An image processing method is a method performed by an image processing device, wherein an acquisition unit of the image processing device obtains first point cloud data having no color information and the first point cloud data. Second point cloud data located near the data and having color information is acquired, and the estimation processing unit of the image processing device converts the first and second point cloud data acquired by the acquisition unit into a neural network. By inputting the point group data to the network, point group data in which color information is estimated for the first point group data is output.
  • An image processing method is a method performed by an image processing device, wherein an acquisition unit of the image processing device obtains first point cloud data having no color information and the first point cloud data. Second point cloud data located near the data and having color information is acquired, and the estimation processing unit of the image processing device converts the first and second point cloud data acquired by the acquisition unit into a neural network. By inputting it into a network, point cloud data in which color information has been estimated for the first point cloud data is output, and the neural network adds a vector of the number of elements to a tensor representing the first point cloud data.
  • the parameter update unit of the image processing device Based on the result of combining the result of compressing the number of data with the result of adding a vector of the number of elements to the tensor represented by the first point group data of the second number larger than the first number,
  • the point cloud data in which the color information has been estimated for the point cloud data of 1 is output, the parameter update unit of the image processing device acquires the point cloud data having color information, and the color information is calculated based on the point cloud data.
  • Correct answer data that is point cloud data having , point cloud data without color information, and point cloud data from which a part of the point cloud data having color information is removed are generated, and the generated point cloud data does not have the color information.
  • the point cloud data and the point cloud data from which a portion of the point cloud data having the color information has been removed are inputted to the neural network to obtain the data of the portion from which the color information has been estimated, and this A loss function related to the neural network is calculated based on the acquired data and the correct data, and parameters of the neural network are updated based on the calculated loss function.
  • FIG. 1 is a diagram showing a first example of input and output of a neural network used in an embodiment of the present invention.
  • FIG. 2A is a diagram illustrating an example of implementation of an MLP (Multilayer perceptron) layer.
  • FIG. 2B is a diagram illustrating an example of implementation of the MLP layer.
  • FIG. 2C is a diagram illustrating an example of implementation of the MLP layer.
  • FIG. 3 is a diagram showing an example of implementation of the SA layer (Set Abstraction Layer).
  • FIG. 4 is a diagram showing a first example of implementation of the FP layer (Feature Propagation Layer).
  • FIG. 5 is a diagram showing a second example of implementation of the FP layer.
  • FIG. 1 is a diagram showing a first example of input and output of a neural network used in an embodiment of the present invention.
  • FIG. 2A is a diagram illustrating an example of implementation of an MLP (Multilayer perceptron) layer.
  • FIG. 2B is a diagram illustrating an example
  • FIG. 6 is a diagram showing a second example of input/output of a neural network used in an embodiment of the present invention.
  • FIG. 7 is a diagram showing an implementation example of a PTF layer (Point Transformer Layer).
  • FIG. 8A is a diagram illustrating an example implementation of the PTF layer.
  • FIG. 8B is a diagram illustrating an example implementation of the PTF layer.
  • FIG. 9 is a diagram showing an implementation example of the PTF layer.
  • FIG. 10 is a diagram showing a first example of an identification network.
  • FIG. 11 is a diagram showing an example of implementation of the MLP layer.
  • FIG. 12 is a diagram showing a second example of the identification network.
  • FIG. 13 is a diagram illustrating a first example of a process for generating learning data for a neural network.
  • FIG. 13 is a diagram showing a first example of a process for generating learning data for a neural network.
  • FIG. 14 is a diagram illustrating a second example of the process of generating training data for a neural network.
  • FIG. 15 is a block diagram illustrating an example of the overall configuration of an image processing system according to the first embodiment.
  • FIG. 16 is a diagram illustrating an example of a color estimation DNN (Deep Neural Network) used in the first embodiment.
  • FIG. 17 is a diagram showing an example of data retention in the learning point cloud DB.
  • FIG. 18 is a diagram showing an example of data retention in the color estimation DNN parameters DB.
  • FIG. 19 is a flowchart illustrating an example of a processing operation by the learning operation unit of the calculation terminal according to the first embodiment.
  • FIG. 20 is a flowchart illustrating an example of processing operations in the color estimation DNN processing section of the calculation terminal according to the first embodiment.
  • FIG. 21 is a flowchart illustrating an example of the processing operation of the input operation section of the calculation terminal according to the first embodiment.
  • FIG. 22 is a diagram illustrating an example of the overall configuration of an image processing system according to the second embodiment.
  • FIG. 23 is a diagram illustrating an example of a color estimation DNN used in the second embodiment.
  • FIG. 24 is a diagram showing an example of an identification DNN used in the second embodiment.
  • FIG. 25 is a diagram illustrating an example of data retention of identification DNN parameters.
  • FIG. 26 is a flowchart illustrating an example of processing operations by the learning operation section of the calculation terminal according to the second embodiment.
  • FIG. 27 is a flowchart illustrating an example of a processing operation procedure in the identification DNN processing unit according to the second embodiment.
  • FIG. 28 is a block diagram showing an example of the hardware configuration of a calculation terminal of an image processing system according to an embodiment of the present invention.
  • a colored point cloud (also referred to as colored point cloud data) of N points that has geometric information and color information that exist in the vicinity of the point cloud that is the target of color information estimation is It is written as N(x i , y i , z i , r i , g i , b i ).
  • x i , y i , z i are the geometric information of the above point group
  • r i , g i , b i are This is the color information of the above point group.
  • a colorless point group (non-color point group) of N' points which is the target of color estimation, is written as N'(x 'i' , y 'i' , z' i' ),
  • a point cloud with correct color information for each point of a colorless point cloud of N ⁇ points is N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , r ⁇ i ⁇ , g ⁇ i ⁇ , b It is written as ⁇ i ⁇ ).
  • x ′ i′ , y ′ i′ , z ′ i′ are the geometric information of the above colorless point group
  • r ′ i′ , g ′ i′ , b ′ i′ are color information of the colorless point group.
  • N(x i , y i , z i , r i , g i , b i ) is a color point group of N points and N′(x′ i ) is a non-color point group of N ′ points.
  • ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ) is input, and the color information of this non-color point group N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ) is estimated.
  • the missing point group A in the Point Cloud Completion described above is a colored point group N(x i , y i , z i , r i , g i , b i ), and the non-color point group B' or "A'+B'" which is the result of complementing the missing part is the colorless point group N'(x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ).
  • FIG. 1 is a diagram showing a first example of input and output of a neural network used in an embodiment of the present invention.
  • the MLP layer is a multilayer perceptron neural network, and includes a fully connected linear layer (hereinafter referred to as Linear (a, b)) with the number of input elements a and the number of output elements b, and a layer for each element such as ReLU. Consists of activation functions.
  • SA, SA, and MLP2 are connected in series to the output of MLP1, which inputs the colored point cloud N(x i , y i , z i , r i , g i , b i ). Ru. Furthermore, SA, SA, and MLP2 are connected in series to the output of MLP1, which inputs the colorless point group N'(x'i ' , y'i ' , z'i ' ). The outputs of the above two MLP2 are connected to the FP, four stages of FPs are connected in series to the output of this FP, and the MLP3 is connected to the output of the last stage FP.
  • Each layer from MLP1 to MLP2 is also called an encoder.
  • the output of MLP1, which inputs the colored point group N(x i , y i , z i , r i , g i , b i ), is the fourth stage FP seen from the output of the FP connected to the output of each MLP2 above.
  • the output of MLP1, which inputs the colorless point group N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ), is the third stage as seen from the FP connected to the output of each MLP2 above. It is also connected to the FP.
  • the output of SA which is connected to the output of MLP1 that inputs the colored point group N(x i , y i , z i , r i , g i , b i ), is as seen from the FP connected to the output of each MLP2 above.
  • the output of SA which is also connected to the second stage FP and is connected to the output of MLP1 which inputs the colorless point group N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ), is It is also connected to the first stage FP as seen from the FP connected to the output of.
  • FIGS. 2A, 2B, and 2C are diagrams illustrating an example of implementation of the MLP layer.
  • 2A, 2B, and 2C, MLP1, MLP2, and MLP3 are shown as implementation examples of the MLP layer shown in FIG. 1.
  • MLP1 shown in Figure 2A a tensor representing N(x i , y i , z i , r i , g i , b i ) or N′(x ′ i′ , y ′ i′ , z ′ i′ ) (tensor) data is input, and in this embodiment, as a notation to represent the point group of N and N', focusing on the number of elements in each layer of the tensor, (N, 3 + 3), (N', 3 + 0).
  • the first "3" of "3+3” and “3+0” in the second layer of the tensor represents the position information of each point (x, y, z)
  • "3" in the second layer of the tensor represents the position information of each point (x, y, z)
  • "3" and “0" after "+3” and “3+0” represent the color information of each point or the length of the feature amount vector (vector).
  • MLP1 in FIG. 2A assigns each initially input point to Linear(6, D) or Linear(3, D).
  • the first half of the argument to be substituted corresponds to whether or not the input has color information (color). If the input does not have color information, enter "3", and if it does, enter "6". do.
  • the output of Linear (6, D) or Linear (3, D) is (N, D) or (N', D) because a vector with D elements is given to each point.
  • the activation function ReLU is applied to the output (N, D) or (N', D). Furthermore, the output of ReLU (N, D) or (N', D) is multiplied by Linear (D, D) to obtain the output of (N, D) or (N', D).
  • MLP2 shown in Figure 2B corresponds to the final stage of the encoder shown in Figure 1, and is the final stage after compressing the number of input points by applying multiple SA layers to the inputs to two MLP1. Adapted.
  • N points are compressed by a factor of 16 (N/16, 3 + D), or N' points are compressed by a factor of 16.
  • N'/16, 3 + D is input to MLP2.
  • D 128.
  • the number of SA layers is a parameter that is determined depending on the number of N or N' points to be handled.
  • the location information is omitted (N/16, D) out of the above (N/16, 3 + D), or the location information is omitted out of (N/16, 3 + D).
  • the omitted (N ⁇ /16, D) is input to Linear(D, D ⁇ ).
  • MLP3 shown in FIG. 2C corresponds to the output of the final stage of the neural network shown in FIG. 1.
  • the linear layer and ReLU of the activation function are repeatedly applied, and the output of the final linear layer is output as "3" to output color information.
  • the result of applying the activation function Sigmoid to the output of the final linear layer may be applied as the output.
  • the output of the final stage Linear layer and Sigmoid is (N', 3), and this "3" corresponds to each element of color information such as r, g, and b.
  • (N ⁇ , 3) which is the position information of point group N ⁇ among the inputs of MLP3 (N ⁇ , 3 + D), is combined with the output (N ⁇ , 3) of the final Linear layer or Sigmoid layer.
  • the final output (N′, 3 + 3) consisting of N′ position information and color information is obtained.
  • FIG. 3 is a diagram showing an example of implementation of the SA layer.
  • the SA layer has the role of an encoder that extracts the feature amount of each point while compressing the number of points in the input point group N or point group N'.
  • the number of point clouds is compressed to 1/4 with one SA layer, but the compression ratio is an adjustment factor of the hyperparameter, and it may be reduced to 1/2. , it may be reduced to 1/8.
  • the feature amount of each point from which position information is removed before and after the SA layer is doubled from 32 to 64, or from 64 to 128, but the feature amount when passing through each layer is Determination of the number of is also one of the adjustment factors of hyperparameters, and it is possible to adjust by changing the numerical value.
  • the number of points in the input point cloud is N
  • the number of feature elements excluding position information is D
  • the number of points in the output point cloud is Nds
  • the feature values excluding position information are The number of elements in is written as Dds.
  • the first input point group number N is down-sampled to the output Nds, and is output as a second-order tensor (Nds, 3).
  • Nds points from N points may be randomly sampled, or Farthest Point Sampling, which is widely known as a general method, may be used.
  • k points which are the closest neighboring points, are selected from among the input N points. Then, the combination of the k points selected for each point of Nds and the feature D possessed by each of the k points is output as a third-order tensor (Nds, k, D).
  • Nds, k, D the third-order tensor
  • each parameter is collectively expressed as Conv2D(D, Dds, 1)) is performed.
  • the third-order tensor (Nds, k, D) that is input to this two-dimensional convolution can be regarded as data with a number of channels D and a number of pixels whose vertical and horizontal sizes are Nds ⁇ k.
  • batch normalization and activation function ReLU are sequentially applied to the output of Conv2D(D, Dds, 1), and then Conv2D(Dds, Dds, 1), batch normalization, and ReLU are applied in order.
  • the number of times these combinations of Conv2D, batch normalization, and activation functions are applied is a hyperparameter adjustment factor.
  • the number of output channels of the final stage Conv2D is Dds
  • the number of input/output channels of the middle stage Conv2D is a hyperparameter and an adjustment element.
  • This Maxpool layer integrates k feature vectors with the number of elements Dds into a single feature vector with the largest number of elements Dds for each element. Therefore, the third-order tensor (Nds, k, Dds) that is input to the Maxpool layer is output as the second-order tensor (Nds, Dds).
  • the down-sampled Nds points and position information (Nds, 3) are combined with the output of the Maxpool layer (Nds, Dds), and (Nds, 3 + Dds).
  • FIG. 4 is a diagram showing a first example of implementation of the FP layer.
  • the FP layer has two inputs: the N′, N′ combination, which receives the results of applying the MLP layer or SA layer to the point cloud N′, and the MLP layer or SA layer applied to the point cloud N′. It is applied in two patterns: N and N' combinations, which take the applied result as one input.
  • the number of FP layers is "O+1", where O is the number of SA layers. That is, the number of FP layers is an adjustment parameter that is affected by the number of SA layers.
  • the N, N ⁇ combination and the N ⁇ , N ⁇ combination are applied alternately, and the input point cloud is sequentially applied starting from the output of the latter stage where the MLP layer and SA layer are repeatedly applied and the number of point clouds is reduced. Selected as input and applied.
  • the number of point clouds of input A is Nds
  • the number of elements of the feature vector of each point other than position information is Dds
  • the number of point clouds of input B is Nup
  • each point other than position information is Let Dup be the number of elements of the feature vector.
  • N N ⁇ combination
  • input A is the result of applying the MLP layer or SA layer to point cloud N ⁇
  • input B is the result of applying the MLP layer or SA layer to point cloud N ⁇ .
  • N N coupling
  • the output of the MLP layer next to the last SA layer or the output of the previous FP layer is applied to input A
  • the point group N' is applied to the MLP layer or SA layer for input B. The result of applying is applied.
  • each weight w ij from each point p i of Nup to the top k neighboring points of input A is calculated from the distance d ij using the following equation (1) (see symbol b in FIG. 4).
  • the product w ij v ij of the weight w ij corresponding to each point p ij is calculated for the feature vector v ij (number of elements Dds) corresponding to each point p ij selected from Nds from input A. (See symbol c in FIG. 4). Then, (Nup, k, Dds), which is a set of k-point weighted feature vectors w ij v ij selected from each point p i of Nup, is output.
  • a tensor (Nup, Dup) consisting of features excluding the Nup point of input B and the position information at the time of input is combined with the output (Nup, Dds) of the Maxpool layer (Nup, Dds + Dup) is output to the next layer.
  • Conv1D (referred to as Dds + Dup, Dup, 1)) is executed, and (Nup, Dup), which is a combination of features with the number of elements Dup, is output for each point.
  • batch normalization and activation function ReLU are applied to each element output by Conv1D(Dds + Dup, Dup, 1).
  • Conv1D Batch normalization and activation function ReLU
  • These combinations of Conv1D, batch normalization, and activation functions may be applied multiple times, for example twice or three times, and the number of applications is a factor in adjusting the hyperparameters.
  • the input channel of the first-stage Conv1D should be "Dds + Dup" and the output channel of the last-stage Conv1D should be Dup.
  • each point of input B and position information pair (Nup, 3) are combined with (Nup, Dup), which is the output of the last ReLU layer, and the final output of the FP layer is (Nup, 3 + Dup) is output as (Nup, 3 + Dup).
  • FIG. 5 is a diagram showing a second example of implementation of the FP layer.
  • the example shown in FIG. 5 is also conceivable for the FP layer.
  • input A and input B are the same inputs as in the example shown in Figure 4, and Linear (Dds, Dup), batch normalization, and ReLU layers are applied to input A. Linear(Dup, Dup), batch normalization, and ReLU layer are applied to input B.
  • a combination of three layers consisting of a Linear layer, batch normalization, and ReLU layer is first applied to both inputs one by one, but the number of output elements of the last Linear layer is If is Dup, the combination of the three layers described above may be applied twice or three times, and the number of times of application is a factor for adjusting hyperparameters.
  • each weight w ij for the top k points among the neighboring points of input A is calculated using the above equation (1) from the distance d ij (see reference numeral b in FIG. 5).
  • each point p For each point p ij selected from Nds of input A , each point p The product w ij v ij of w ij corresponding to ij is calculated (see symbol c in FIG. 5). Then, (Nup, k, Dup), which is a set of k-point weighted feature vectors w ij v ij selected from each point p i of Nup, is output.
  • the second element of the second-order tensor, that is, the sum of each element of the number of elements Dup, is calculated, and a new second-order tensor (Nup, Dup) is output.
  • the second-order tensor (Nup, 3) consisting of the position information for the input Nup point and the second element of the second-order tensor whose sum was calculated in the previous layer are combined (Nup, 3 + Dup) is finally output.
  • the biggest feature of this neural network is that, in addition to inputting the geometric information of point clouds that do not have color information, the processing of N, N′ connections in the FP layer is a unique application that does not rely on known configurations.
  • FIG. 6 is a diagram showing a second example of input/output of a neural network used in an embodiment of the present invention. This second example of the neural network algorithm improves accuracy by adding improvements to the first example of the neural network described above.
  • the implementation examples of the MLP layer, SA layer, and FP layer are the same as the examples shown in FIGS. 2 to 5 above.
  • the internal processing of the MLP layer, SA layer, and FP layer includes parameters that are adjusted as hyperparameters (k, etc.) or degrees of freedom for expansion (Linear and Conv layers). number of applications, etc.).
  • FIG. 8A, FIG. 8B, and FIG. 9 are diagrams showing implementation examples of the PTF layer.
  • the input to the PTF layer is a second-order tensor of (N, 3 + D) having a number of points N and a feature amount of "position information + number of elements D" for each point.
  • Linear (D, H) is applied to (N, D) from which position information has been removed.
  • kNN (N, k, 3 + D) is for each point p on N points, the k point closest to p "among N points", this position information, and the feature value of the number of elements D (see symbol b in FIG. 7), and the selected k point is a point on the N point.
  • the output (N, H) of Linear(H, H) is a tensor composed of features with H elements for each point p of N points. Therefore, it can be assumed that there are feature quantities with the number of elements H for each of the k points, which are the selected N points.
  • processing is performed to replace the "3 + D" element of each k point in (N, k, 3 + D) with H.
  • the result of this processing is a third-order tensor of (N, k, H).
  • the above difference is composed of three elements like the position information, and the difference elements between all points on the N points and the neighboring k points are calculated and output as (N, k, 3).
  • Linear(3, H), ReLU, and Linear(H, H) are applied sequentially to (N, k, 3) in the previous layer.
  • the number of applied layers is an adjustable hyperparameter
  • the number of input elements of the first Linear layer is 3
  • the output of the last Linear layer is If the number of elements is H, the number of layers may be increased or the number of input/output elements of the intermediate layer may be changed from H.
  • the output (N, k, H) of the last Linear layer is defined as POS_ENC for explanation.
  • Que is a second-order tensor of (N, H)
  • Key is a third-order tensor of (N, k, H)
  • POS_ENC is a third-order tensor of (N, k, H).
  • the shape of the tensor is matched by copying k identical values of the feature vector with H elements at each point of N in Que and expanding it to a third-order tensor of (N, k, H).
  • Linear(H, H), ReLU, and Linear(H, H) are applied to the output of (N, k, H), which is the result of "Que-Key + POS_ENC".
  • the number of applied layers is an adjustable parameter. The number of input elements of the first Linear layer is H, and the output of the last Linear layer is H. If the number of elements is H, the number of layers may be increased or the number of input/output elements of the intermediate layer may be changed from H.
  • v ij (v ij1 , v ij2 ,..., v ijh , ..., v ijH ) with H elements of a certain point p i on N points and k points p ij near p i
  • the value v′ ijh after the Softmax layer of v ijh is applied is calculated by the following equation (2).
  • the third-order tensor (N, k, H) after the Softmax layer is applied to all elements of k is defined as ATTENTION.
  • pairs of v' ' i for all p i are calculated and output as a second-order tensor of (N, H).
  • Linear (H, D) is applied to (N, H), which is the output of the previous layer.
  • One Linear layer is applied in this process, but the number of applied layers is an adjustable hyperparameter, and the number of input elements of the first Linear layer is H, and the number of output elements of the last Linear layer.
  • ReLU is inserted between the first Linear layer and the second Linear layer to increase the number of applied layers or increase the number of input/output elements of the middle layer to H. You may change it from .
  • a general optimization algorithm for neural networks may be used, such as SGD (Stochastic gradient descent) or Adam (Adaptive Moment. Estimation).
  • the first and second examples of the neural network algorithm described above are based on colored point cloud data N(x i , y i , z i , r i , g i , b i ) and uncolored point cloud data N′(x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ ) is input, colored point cloud data N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , r ⁇ i ⁇ , g ⁇ i ⁇ , b ⁇ i ⁇ ).
  • Equation (3) The loss functions in the first and second examples of the neural network algorithm are defined as Equation (3) below.
  • FIG. 10 is a diagram showing a first example of an identification network.
  • the identification network uses the colored point cloud data N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , R ⁇ i ⁇ , G ⁇ i ⁇ , B ⁇ i ⁇ ) which is the correct answer label or the neural network algorithm.
  • the identification network is realized by a combination of the MLP layer, SA layer, and Maxpool layer.
  • the MLP layer is composed of MLP1 shown in FIG. 2 and MLP4 shown in FIG. 10, and the SA layer is realized with the configuration shown in FIG. 3.
  • the number of point clouds is compressed to one-fourth by one SA layer, but the compression ratio is a hyperparameter adjustment factor, and it may be reduced to one-half. However, it may be reduced to 1/8.
  • two SA layers are applied, but the number of times of application is an adjustment factor of the hyperparameter, and the number of times of application may be increased to three or four times.
  • the feature amount of each point from which position information is removed before and after the SA layer is doubled from 32 to 64 and from 64 to 128, but the feature amount when passing through each layer is Determining the number is also one of the adjustment elements of hyperparameters, and it is possible to adjust by changing the numerical value.
  • Maxpool layer can also apply average global pooling, in which case the function average returns the average of the input elements.
  • Maxpool layer returns as output a first-order tensor with number of elements D sa after applying maxpool or average global pooling.
  • FIG. 11 is a diagram showing an example implementation of the MLP layer.
  • MLP4 shown in Fig. 11 for the first-order tensor output of the Maxpool layer, Linear(D, D′), ReLU, Linear(D′, D′′), ReLU, and Linear(D′′, 1) are applied sequentially.
  • the number of Linear layers is one of the hyperparameters that is an adjustment factor, and the Linear output of the final layer is "1". If so, the number of layers may be reduced to two, or may be increased to three or five layers while interposing an activation function such as ReLU.
  • the Sigmoid function which is a common activation function in neural networks, is applied to the first-order tensor with one element, which is the output of the Linear layer, and the tensor is made up of scalar values between 0 and 1. A first-order tensor with one element is obtained as the final output.
  • FIG. 12 is a diagram showing a second example of the identification network.
  • the example shown in FIG. 12 is an example in which a PTF layer is further added in order to improve the accuracy of the identification network shown in FIG.
  • the processing and adjustment parameters of each layer of the network shown in FIG. 12 are the same as the example shown in FIG. This is different from the example shown in FIG.
  • a configuration similar to the configuration shown in FIGS. 7 to 9, which is shown in the second example of the neural network algorithm, can be applied to this PTF layer.
  • the loss functions in the first and second examples of the neural network algorithm when learning using an adversarial network is applied are defined by the following equation (5).
  • Loss main_gan ⁇ Loss main +log(D(R))-log(1-D(F))...Formula (5)
  • is the size of the difference between the colored point group, that is, the colored point group, and the correct data generated by the neural network algorithm, and whether the neural network was able to fool the identification network.
  • the neural network can estimate color information that cannot be complemented by a conventional neural network that complements the shape of a point cloud.
  • the conventional neural network that complements the point cloud shape estimates B using A as input, when the missing point group is A and the missing part is B.
  • the neural network of the first pattern that outputs the result B', or as disclosed in the above-mentioned non-patent document 2 outputs A'+B' that is the result of estimating the entire A+B using A as input. There is a second pattern of neural networks that does this.
  • the neural network in this embodiment is a neural network that uses A+B' or A'+B' as input information and outputs color information of B' or A'+B', and is a neural network that outputs color information of B' or A'+B'. It supports complementation of point cloud shapes.
  • FIG. 13 is a diagram illustrating a first example of the process of generating training data for a neural network.
  • a colored 3D point cloud with a complete shape for learning is defined as Original (number of points O).
  • Down Sampling is performed so that the number of points in the original becomes a constant number N pre .
  • N pre points may be randomly sampled from point O, or Farthest Point Sampling, which is widely known as a general method, may be used.
  • the above score N pre is divided into two parts, one of which is defined as "Data 1" with a score of N pre -N', and the other part is defined as “Data 2" with a score of N'.
  • the division method differs depending on what kind of shape is expected to be complemented. For example, one point in the Down Sampled point group is selected at random, and the N pre points near this one point are set as "Data2". Examples include methods.
  • the estimation result “Data2'” is obtained by using “Data1” and “Data3” as inputs to the neural network. Further, with “Data2" as the correct label, the estimation result "Data2'" by the neural network of this embodiment is substituted into the loss function Loss main for calculation.
  • “Data1+Data2” is used as the point group N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , R ⁇ i ⁇ , G ⁇ i ' , B ' i ' ), and "Data1+Data2'” is the colored point group N'(x 'i' , y' ) estimated by the first or second example of the neural network algorithm according to this embodiment.
  • Loss D or Loss main_gan is calculated.
  • FIG. 14 is a diagram illustrating a second example of the process of generating training data for a neural network.
  • a colored 3D point group with a complete shape for learning is defined as Original (number of points O).
  • Down Sampling is performed so that two patterns of point cloud data "Data1" and "Data2" with a number of points N' are created from the original.
  • any N' points from point O may be randomly sampled, or the Farthest Point Sampling described above may be used.
  • overlapping point groups may exist in the generated "Data1" and "Data2,” Down Sampling is performed so that the point groups are not exactly the same.
  • minute random noise may be added to the position information of each point in "Data2".
  • "Data1" may be created by combining Down Sampling and partial division. For example, first, random sampling is performed to obtain “N' + A” points from the original, then one specific point is randomly selected, and the A point near this selected point is partially divided. Examples include changing to point N'. Next, "Data2" with only the color information removed is generated as “Data3.”
  • Data2 is a point cloud of correct labels N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , R ⁇ i ⁇ , G ⁇ i ⁇ , B ⁇ i ⁇ ), and “Data2 ⁇ ” is the colored point cloud N ⁇ (x ⁇ i ⁇ , y ⁇ i ⁇ , z ⁇ i ⁇ , r ⁇ i ⁇ , g ⁇ i ⁇ , b ⁇ i ⁇ ) Loss D or Loss main_gan is calculated.
  • a neural network based on the configuration shown in FIG. 6 is constructed using the identification network shown in FIG. Learning is performed using the training data generated by the method shown, and a configuration for utilizing this will be described.
  • FIG. 15 is a block diagram showing an example of the overall configuration of the image processing system according to the first embodiment.
  • the image processing system according to the first embodiment includes a computing terminal 100, which is an image processing device composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a memory, etc., and a computer terminal 100 for storing data. It is composed of a recording device 200 that can transmit and receive data to and from the computing terminal 100, and an external input/output device 300 that can transmit and receive data to and from the computing terminal 100.
  • a computing terminal 100 which is an image processing device composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a memory, etc.
  • a computer terminal 100 for storing data. It is composed of a recording device 200 that can transmit and receive data to and from the computing terminal 100, and an external input/output device 300 that can transmit and receive data to and from the computing terminal 100.
  • the inside of the calculation terminal 100 includes a learning operation section 101, a color estimation DNN processing section 102, and an input operation section 104 as processing programs, and a color estimation DNN parameter DB (database) as a variable holding area. ) 103.
  • the recording device 200 also includes a storage device such as a non-volatile memory, and this storage device includes a learning point cloud DB 201.
  • FIG. 16 is a diagram illustrating an example of a color estimation DNN used in the first embodiment.
  • the color estimation DNN used in the first embodiment has the configuration shown in FIG. 16, which is based on the configuration shown in FIG.
  • the DNN shown in FIG. 16 inputs a group of 2048 colored input points and a group of 2048 non-colored input points, and outputs a group of 2048 colored input points.
  • the colored input point group and the colorless input point group are not equivalent, while the colorless input point group and the colored output point group are equivalent point group data.
  • equivalent means that there is a pair of points having exactly the same position information between both point groups for all points.
  • the above-mentioned Farthest Point Sampling is used in Down Sampling of the SA layer.
  • FIG. 17 is a diagram showing an example of data retention in the learning point cloud DB.
  • point cloud data is supplemented as a file, and each point cloud data file has one point as a position element (X, Y, Z) and a color element (R, G). , B), and consists of more than 2560 points. It is also assumed that each element has been normalized to a range of 0 to 1 using the Min-Max method. It is also assumed that the number of point cloud data files is a multiple of 20.
  • FIG. 18 is a diagram showing an example of data retention in the color estimation DNN parameter DB.
  • the color estimation DNN parameter DB 103 holds weight parameters of the color estimation DNN shown in FIG. 16, which are used within the color estimation DNN processing unit 102, and each weight parameter is complemented with a symbol and value pair.
  • FIG. 19 is a flowchart illustrating an example of processing operations by the learning operation section of the calculation terminal according to the first embodiment.
  • the learning operation unit 101 of the calculation terminal 100 first sequentially acquires P point cloud file data from the learning point cloud DB 201 of the recording device 200 as processing in S101-1.
  • the learning operation unit 101 analyzes the 20 point cloud data read in S101-1 based on the method shown in FIG. A point group and a colored correct point group are generated respectively.
  • the colored input point group is "Data 1" shown in FIG. 14, and in this embodiment, the learning operation unit 101 selects 2560 points by random sampling from the read point cloud data, and then selects 1 point from the 2560 points. is selected at random, and the 512 points closest to this one point are removed to use 2048 points.
  • the colored correct point group is "Data2" shown in FIG. 14, and is generated by the learning operation unit 101 selecting 2048 points by random sampling from the read point group data.
  • the colorless input point group is generated by the learning operation unit 101 removing the color information (R, G, B) of the colored correct point group.
  • the learning operation unit 101 sends the 20 color input point groups and the color non-input point group generated in S101-2 to the color estimation DNN processing unit 102.
  • the learning operation unit 101 receives the 20 colored output point groups that are the output of the color estimation DNN processing unit 102.
  • the learning operation unit 101 uses the above ADAM to apply color estimation DNN parameter DB 103 to the color estimation DNN parameter DB 103 based on the result of the loss function obtained by the above equation (6) in S101-5. Update the retained color estimation DNN parameters.
  • the learning rate lr which is a parameter used in ADAM, is set to 0.01.
  • the learning operation unit 101 checks whether all the files in the learning point cloud DB 201 have been acquired using the 20 files acquired using the color estimation DNN parameter S101-1. . If all files have been acquired, the learning operation unit 101 counts the number of times of learning. If the number of main counts in S101-7 is equal to or greater than the specified number, the learning operation unit 101 ends the process. In this embodiment, the specified number of times is 100, and if the number of counts is 100 or more, the learning operation unit 101 ends the process, and if the number of counts is less than 100, or the acquisition of all files has completed one cycle. If not, the learning operation unit 101 returns the process to S101-1.
  • FIG. 20 is a flowchart illustrating an example of processing operations in the color estimation DNN processing section of the calculation terminal according to the first embodiment.
  • the color estimation DNN processing unit 102 of the calculation terminal 100 receives a colored input point group and a colorless input point group, both of which are composed of 2048 points, from the learning operation unit 101 or the input operation unit 104. Receive.
  • the color estimation DNN processing unit 102 of the calculation terminal 100 refers to all the weight parameters of the color estimation DNN shown in FIG. 16 from the color estimation DNN parameter DB 103.
  • the color estimation DNN processing unit 102 substitutes the colored input point group and the non-colored input point group received in S102-1 into the color estimation DNN shown in FIG. 16. Furthermore, the color estimation DNN processing unit 102 substitutes the weight parameter referenced in S102-2 into the color estimation DNN.
  • the color estimation DNN processing unit 102 sequentially performs processing based on the input data and outputs a colored output point group consisting of 2048 points.
  • the color estimation DNN processing unit 102 uses the colored output point group calculated in S102-3 for the corresponding learning operation if the data received in S102-1 is from the learning operation unit 101. If the data received in S102-1 is from the input operation section 104, it is transmitted to the operation section 101.
  • FIG. 21 is a flowchart illustrating an example of the processing operation of the input operation section of the calculation terminal according to the first embodiment.
  • the input operation unit 104 of the calculation terminal 100 receives a colored input point group and a non-colored input point group from the external input/output device 300.
  • the colored input point group is a point group consisting of 2048 points and has position information and color information
  • the colorless input point group is also a point group consisting of 2048 points with only position information.
  • the external input/output device 300 includes a separate program that can input and output data to and from the calculation terminal 100, a file I/O interface, and the like.
  • the input operation unit 104 transmits the colored input point group and the non-colored input point group received in S104-1 to the color estimation DNN processing unit 102.
  • the input operation unit 104 receives the colored output point group as a processing result from the color estimation DNN processing unit 102. Due to the mechanism of the color estimation DNN processing unit 102, this colored output point group has color information added to the 2048 points having the same position information as the non-colored input point group.
  • the input operation unit 104 transmits the colored output point group received in S104-3 to the external input/output device 300, and ends the process.
  • FIG. 22 is a block diagram showing an example of the overall configuration of an image processing system according to the second embodiment.
  • the image processing system according to the second embodiment includes a calculation terminal 100, a recording device 200, and an external input/output device 300, similarly to the first embodiment. Also, inside the calculation terminal 100, as in the first embodiment, there is a learning operation section 101, a color estimation DNN processing section 102, and an input operation section 104 as processing programs, and compared with the first embodiment. Then, an identification DNN processing section 105 is further added.
  • the calculation terminal 100 has a color estimation DNN parameter DB 103 as in the first embodiment, and the calculation terminal 100 further has an identification DNN parameter DB 106 as compared to the first embodiment.
  • the recording device 200 has a learning point cloud DB 201 similarly to the first embodiment.
  • FIG. 23 is a diagram illustrating an example of a color estimation DNN used in the second embodiment.
  • the color estimation DNN used in the second embodiment has the configuration shown in FIG. 23, which is based on the configuration shown in FIG. 6.
  • the color estimation DNN shown in FIG. 23 takes as input a group of 2048 colored input points and a group of 512 uncolored input points, and outputs a group of 512 colored output points.
  • the colored input point group and the colorless input point group are not equivalent, while the colorless input point group and the colored output point group are This becomes equivalent point cloud data.
  • the MLP layers of the neural network namely MLP1, MLP2, and MLP3, have the configuration shown in FIG. 2
  • the SA layer has the configuration shown in FIG. 3
  • the FP layer has the configuration shown in FIG. The same configuration as above is used.
  • MLP1 D 32
  • N and D of the PTF layer are determined by the input, they differ depending on the position of the PTF layer shown in FIG. 23.
  • FIG. 24 is a diagram showing an example of an identification DNN used in the second embodiment.
  • the identification DNN used in the second embodiment has the configuration shown in FIG. 24, which is based on the configuration shown in FIG. 12.
  • the identification DNN shown in FIG. 24 inputs a group of 2560 colored points and outputs an estimation result of 0 or more and 1 or less.
  • the configuration shown in FIG. 2 is used for MLP1 of the MLP layer, and the same configuration as shown in FIG. 11 is used for MLP4.
  • D 32
  • N 2560 or 640
  • Nds 640 or 160
  • D 32 or 64
  • the Farthest Point Sampling described above is used in Down Sampling of the SA layer.
  • the PTF layer uses a configuration similar to the configuration described separately in FIGS. 7 to 9, and since N and D of the PTF layer are determined by input, they differ depending on the position of the PTF layer shown in FIG. 24. .
  • the Maxpool layer the above average global pooling is used.
  • the configuration of data retention in the learning point cloud DB 201 in the second embodiment is similar to the configuration shown in FIG. 17 in the first embodiment. Furthermore, the configuration of data retention in the color estimation DNN parameter DB 103 in the second embodiment is similar to the configuration shown in FIG. 18 in the first embodiment.
  • This DNN parameter DB 103 holds weight parameters of the color estimation DNN shown in FIG. 23, which are used within the color estimation DNN processing unit 102, and each weight parameter is complemented with a pair of Symbol and Value.
  • FIG. 25 is a diagram showing an example of data retention of identification DNN parameters.
  • the identification DNN parameter DB 106 holds the weight parameters of the identification DNN shown in FIG. 24, which are used within the identification DNN processing unit 105, and each weight parameter is complemented with a pair of Symbol and Value.
  • FIG. 26 is a flowchart illustrating an example of processing operations by the learning operation section of the calculation terminal according to the second embodiment.
  • the learning operation unit 101 of the calculation terminal 100 first obtains P point cloud file data from the learning point cloud DB 201 of the recording device 200 as a process in S101-1.
  • the learning operation unit 101 analyzes the 20 point cloud data read in S101-1 based on the method shown in FIG. A point group and a colored correct point group are generated respectively.
  • the colorless input point group is "Data3" shown in FIG. 13, and is generated by the learning operation unit 101 removing the color information (R, G, B) of the colored correct point group.
  • the learning operation unit 101 sends the 20 colored input point groups and non-colored input point groups generated in S101-2 to the color estimation DNN processing unit 102.
  • the learning operation unit 101 receives the 20 colored output point groups that are the output of the color estimation DNN processing unit 102.
  • the learning operation unit 101 sends the 20 colored input point groups, the colored correct point group, and the colored output data to the identification DNN processing unit 105.
  • the identification DNN processing unit 105 outputs the estimation results for 20 correct point groups and the estimation results for 20 fake point groups, each represented by a value of 0 to 1. Receive results.
  • the learning operation unit 101 uses the 20 colored correct point groups generated in S101-2, the 20 colored output point groups received in S101-4, and the 20 colored correct point groups generated in S101-2.
  • the loss functions of the color estimation DNN and the discrimination DNN are calculated from the estimation results for the 20 correct point groups and the estimation results for the 20 fake point groups received in step 5b.
  • the learning operation unit 101 calculates the loss function value for all 20 data pairs. can be calculated by the following equation (7) using the above equation (5).
  • the adjustment parameter variable ⁇ in this equation (7) is defined as 0.5 in this embodiment.
  • the learning operation unit 101 calculates the value of the loss function for all 20 data pairs by the following equation (8) using the above equation (4). I can do it.
  • the learning operation unit 101 uses the above ADAM to apply color estimation DNN parameters to the color estimation DNN parameter DB 103 in S101-5c, based on the result of the loss function obtained by the above equation (7). Update the retained color estimation DNN parameters.
  • the learning rate lr which is a parameter used in ADAM, is set to 0.01.
  • the learning operation unit 101 uses ADAM to calculate the identification DNN parameters stored in the identification DNN parameter DB 106 based on the result of the loss function obtained by the above formula (8). Update identification DNN parameters.
  • the learning rate lr which is a parameter used in ADAM, is set to 0.01.
  • the learning operation unit 101 checks whether all files in the learning point cloud DB 201 have been acquired using the 20 files acquired in S101-1. If all files have been acquired, the learning operation unit 101 counts the number of times of learning. If the number of main counts in S101-7 is equal to or greater than the specified number, the learning operation unit 101 ends the process.
  • the specified number of times is 100, and if the number of counts is 100 or more, the learning operation unit 101 ends the process, and if the number of counts is less than 100, or the acquisition of all files has completed one cycle. If not, the learning operation unit 101 returns the process to S101-1.
  • the procedure of the processing operation in the color estimation DNN processing unit 102 according to the second embodiment is similar to the example shown in FIG. 20 according to the first embodiment. However, there are two differences.
  • the first difference is that the number of points in the colorless input point group input in S102-1 and the colored output point group calculated in S102-3 is different from that in the first implementation. In the embodiment, it is 2048, but in the second embodiment, it is 512.
  • the second difference is that the color estimation DNN processing unit 102 in the first embodiment uses the color estimation DNN shown in FIG. 16, but the color estimation DNN processing unit 102 in the second embodiment uses the color estimation DNN shown in FIG.
  • the method is to use the color estimation DNN shown in 23.
  • the procedure of the processing operation of the input operation unit 104 according to the second embodiment is similar to the example shown in FIG. 21 according to the first embodiment. However, while the number of points in the non-colored input point group input in S104-1 and the colored output point group received in S104-3 is 2048 in the first embodiment, The difference is that the number is 512 in the embodiment.
  • FIG. 27 is a flowchart illustrating an example of a processing operation procedure in the identification DNN processing unit according to the second embodiment.
  • the identification DNN processing unit 105 receives a colored input point group, a colored correct point group, and a colored output point group from the learning operation unit 101.
  • the identified DNN processing unit 105 refers to all weight parameters of the identified DNN shown in FIG. 24 from the identified DNN parameter DB 106.
  • the identified DNN processing unit 105 first assigns the weight parameter referred to in S105-2 to the identified DNN shown in FIG. 24. Then, the identification DNN processing unit 105 inputs the correct point group created in S105-3 and calculates the estimation result of the correct point group indicated by a numerical value between 0 and 1. Next, the identification DNN processing unit 105 inputs the fake point group created in S105-3 and calculates the estimation result of the fake point group indicated by a numerical value between 0 and 1.
  • the identification DNN processing unit 105 transmits the estimation result of the correct point group calculated in S105-4 and the estimation result of the fake point group to the learning operation unit 101. After completing the transmission, the identification DNN processing unit 105 ends the process.
  • FIG. 28 is a block diagram showing an example of the hardware configuration of a calculation terminal of an image processing system according to an embodiment of the present invention.
  • the calculation terminal 100 of the image processing system according to the above embodiment is configured by, for example, a server computer or a personal computer, and includes a hardware processor such as a CPU. processor) 111A.
  • a program memory 111B, a data memory 112, an input/output interface 113, and a communication interface 114 are connected to the hardware processor 111A via a bus 115. The same applies to the recording device 200 and external input/output device 300 of the image processing system.
  • the communication interface 114 includes, for example, one or more wireless communication interface units, and enables transmission and reception of information with a communication network NW.
  • a wireless interface for example, an interface adopting a low power wireless data communication standard such as a wireless LAN (Local Area Network) is used.
  • the input/output interface 113 is connected to an input device 500 and an output device 600 attached to the calculation terminal 100 and used by a user or the like.
  • the input/output interface 113 receives operation data input by a user through an input device 500 such as a keyboard, touch panel, touchpad, mouse, etc., and outputs the output data on a liquid crystal display.
  • processing is performed to output and display the image on an output device 600 including a display device using organic EL (Electro Luminescence) or the like.
  • the input device 500 and the output device 600 may be a device built into the calculation terminal 100, or may be an input device and an input device of another information terminal that can communicate with the calculation terminal 100 via the network NW. Output devices may also be used.
  • the program memory 111B is a non-temporary tangible storage medium that includes, for example, a non-volatile memory that can be written to and read from at any time such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), and a non-volatile memory such as a ROM. are used in combination, and stores programs necessary to execute various control processes and the like according to one embodiment.
  • a non-volatile memory that can be written to and read from at any time
  • an HDD Hard Disk Drive
  • SSD Solid State Drive
  • a non-volatile memory such as a ROM.
  • the data memory 112 is a tangible storage medium that uses a combination of the above-mentioned non-volatile memory and volatile memory such as RAM, and is acquired and created during various processes. It is used to store various types of data.
  • the calculation terminal 100 can be configured as a data processing device having each section shown in FIG. 1 as a processing function section using software.
  • Each information storage unit and each DB used as a working memory by each unit of the calculation terminal 100 may be configured by using the data memory 112 shown in FIG. 28.
  • these configured storage areas are not essential configurations within the computing terminal 100, and may be, for example, external storage media such as a USB (Universal Serial Bus) memory, or a database server located in the cloud. It may also be an area provided in a storage device such as a server.
  • USB Universal Serial Bus
  • the processing function units in each unit of the calculation terminal 100 described above can all be realized by causing the hardware processor 111A to read and execute a program stored in the program memory 111B. Note that some or all of these processing functions may be implemented in a variety of other formats, including integrated circuits such as application specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). May be realized.
  • ASICs application specific integrated circuits
  • FPGAs field-programmable gate arrays
  • each embodiment can be applied to a magnetic disk (floppy (registered trademark) disk, hard disk) as a program (software means) that can be executed by a computer (computer). etc.), optical discs (CD-ROM, DVD, MO, etc.), semiconductor memories (ROM, RAM, Flash memory, etc.), and are stored in recording media, or transmitted and distributed via communication media. can be done.
  • the programs stored on the medium side also include a setting program for configuring software means (including not only execution programs but also tables and data structures) in the computer to be executed by the computer.
  • a computer that realizes this device reads a program recorded on a recording medium, and if necessary, constructs software means using a setting program, and executes the above-described processing by controlling the operation of the software means.
  • the recording medium referred to in this specification is not limited to one for distribution, and includes storage media such as a magnetic disk and a semiconductor memory provided inside a computer or in a device connected via a network.
  • each embodiment may be implemented in combination as appropriate, and in that case, a combined effect can be obtained.
  • the embodiments described above include various inventions, and various inventions can be extracted by combinations selected from the plurality of constituent features disclosed. For example, if a problem can be solved and an effect can be obtained even if some constituent features are deleted from all the constituent features shown in the embodiment, the configuration from which these constituent features are deleted can be extracted as an invention.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

一実施形態に係る画像処理装置は、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得する取得部と、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力する推定処理部と、を有する。

Description

画像処理装置、方法およびプログラム
 本発明の実施形態は、画像処理装置、方法およびプログラムに関する。
 物体または空間の3次元構造を表現する方法の1つに点群(point cloud)がある。この点群は物体または空間をLiDAR(Light Detecting And Ranging)またはカメラ(camera)を用いて計測することで生成が可能である。 
 しかしながら、計測された点群は、LiDARもしくはカメラの性能、または計測位置、物体もしくは空間の形状の問題により、LiDARにより照射されたレーザー(laser)が届かなかったり、物体または空間の表面の拡散反射光をカメラで計測できなかったり、などにより、点群データ(data)が欠損してしまう部分が存在する。
 また、空間の点群計測においては、LiDARまたはカメラで計測されたときに、一時的な駐車車両、または部屋に置かれた段ボール(cardboard)などの、計測時には置かれていたが、最終的な点群データに含まれることが望ましくない障害物が含まれてしまう場合も存在する。
 しかしながら、このような障害物を計測後の処理で削除することを考えると、障害物により隠されていた駐車車両の影にある道路、または段ボールの影にある部屋の床面などの点群は、上記障害物により計測できていなかったため、欠損部分となってしまう。
 これらの欠損部分を、機械学習された、点群を直接扱うニューラルネットワーク(neural network)によって推定して補完するPoint Cloud Completionの技術として様々な手法が提案されている。
 Point Cloud Completionの技術は、出力の違いによって大きく2種類に分類することができる。 
 1つ目は、例えば非特許文献1に開示されるように、補完したい欠損点群、すなわち一部が欠損した点群をAとし欠損部分をBとしたときに、Aを入力としてBが推定された結果であるB´を出力するニューラルネットワークである。
 2つ目は、例えば非特許文献2に開示されるように、Aを入力としてA+Bの全体を推定した結果である「A´+B´」を出力するニューラルネットワークである。
 しかしながら、上記Point Cloud Completionの手法は、いずれも、点群の幾何形状補完のみを扱っているため、上記の点群Aが、各点が幾何的な位置情報と色情報を有する点群、いわゆるカラー(color)点群であった場合にも、推定結果であるB´または「A´+B´」は、色情報を有しない点群、いわゆる非カラー点群となり、色情報の復元を実現することができない。
 また、例えば非特許文献3には、非カラー点群を入力としてカラー点群を出力するニューラルネットワークおよび敵対的生成ネットワーク(GAN(Generative Adversarial Network))による学習モデル(model)生成手法が開示されている。
Huang, Zitian, et al. "Pf-net: Point fractal network for 3d point cloud completion." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020. Yuan, W., Khot, T., Held, D., Mertz, C., & Hebert, M. (2018, September). Pcn: Point completion network. In 2018 International Conference on 3D Vision (3DV) (pp. 728-737). IEEE. Liu, J., Dai, S., & Li, X. (2019, September). Pccn: Point cloud colorization network. In 2019 IEEE International Conference on Image Processing (ICIP) (pp. 3716-3720). IEEE.
 上記の非特許文献3に開示されたようなカラー点群の出力の手法は、以下の2つの課題がある。 
 1つ目は、色情報を有しない点群の幾何情報のみを入力とする場合、幾何形状からみて尤もらしい複数の色が存在する場合があるという課題である。
 例えば、色情報を推定したい点群の幾何形状が「自動車」であるとする。このとき従来技術のニューラルネットワークで推測される自動車のボディ(body)部分の点群の色として、白、赤、または黒などの尤もらしい複数の色が存在するため、正しい色に定まらない可能性が高まる。 
 また、例えば野外空間が計測された点群への着色について、同じ場所および形状の空間であっても、朝と夕方では空間の色は全く異なるため、幾何形状のみからでは正しい色は一意に定まらない。
 この問題は、前述のPoint Cloud Completionにおいて、欠損点群Aから、補完後の非カラー点群「A´+B´」を生成し、この「A´+B´」のカラー、すなわち色情報を推定する場合にも、この推定された「A´+B´」の点群の色が、Aの色と全く異なる状態を生んでしまうことを意味する。
 2つ目は、幾何形状が不十分な場合に当該幾何形状の部分の色推定が難しいという課題である。この課題が生じる例としては、色情報の推定対象である点群が「自動車」の屋根の一部であったときに、この点群の形状だけでは、当該点群が自動車の屋根の一部なのか、机の天板の一部なのかの区別がつかない場合、点群は「自動車」のような色が推定される可能性と、机の天板のような色が推定される場合の2つがあり得ることが挙げられる。
 この課題は、前述のPoint Cloud Completionにおいて、欠損点群Aから、補完部分の非カラー点群B´を生成した場合に、この非カラー点群B´だけを入力とする手法では、非カラー点群B´が、単体で色推定に十分な形状を有しない場合、正しい色推定が困難な状態を生んでしまうことを意味する。
 この発明は、上記事情に着目してなされたもので、その目的とするところは、色情報を有する点群データの欠損部分を正しい色情報とともに適切に推定することができるようにした画像処理装置、方法およびプログラムを提供することにある。
 本発明の一態様に係る画像処理装置は、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得する取得部と、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力する推定処理部と、を備える。
 本発明の一態様に係る画像処理装置は、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得する取得部と、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データにおける色情報が推定された点群データを出力する推定処理部と、を備え、前記ニューラルネットワークは、前記第1の点群データを表すテンソルに要素数のベクトルを追加し、前記追加された結果における点群データの数を圧縮し、前記第2の点群データを表すテンソルに要素数のベクトルを追加し、当該追加された結果における点群データの数を圧縮し、前記第1の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第2の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果を同じ数の点群データ同士で結合し、第1の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第1の数より大きい第2の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果を結合した結果に基づいて、前記第1の点群データについて色情報が推定された点群データを出力し、色情報を有する点群データを取得し、前記点群データに基づいて、色情報を有する点群データである正解データ、色情報を有しない点群データ、および色情報を有する点群データにおける一部分が除かれた点群データを生成し、前記生成した、前記色情報を有しない点群データおよび、前記色情報を有する点群データにおける一部分が除かれた点群データを前記ニューラルネットワークに入力することで出力された、色情報が推定された前記一部分のデータを取得し、この取得されたデータおよび前記正解データに基づいて前記ニューラルネットワークに係る損失関数を計算し、前記計算した損失関数に基づいて、前記ニューラルネットワークのパラメータを更新するパラメータ更新部を備える。
 本発明の一態様に係る画像処理方法は、画像処理装置により行なわれる方法であって、前記画像処理装置の取得部により、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得し、前記画像処理装置の推定処理部により、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力する。
 本発明の一態様に係る画像処理方法は、画像処理装置により行なわれる方法であって、前記画像処理装置の取得部により、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得し、前記画像処理装置の推定処理部により、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力し、前記ニューラルネットワークは、前記第1の点群データを表すテンソルに要素数のベクトルを追加し、前記追加された結果における点群データの数を圧縮し、前記第2の点群データを表すテンソルに要素数のベクトルを追加し、当該追加された結果における点群データの数を圧縮し、前記第1の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第2の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果を同じ数の点群データ同士で結合し、第1の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第1の数より大きい第2の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果を結合した結果に基づいて、前記第1の点群データについて色情報が推定された点群データを出力し、前記画像処理装置のパラメータ更新部により、色情報を有する点群データを取得し、前記点群データに基づいて、色情報を有する点群データである正解データ、色情報を有しない点群データ、および色情報を有する点群データにおける一部分が除かれた点群データを生成し、前記生成した、前記色情報を有しない点群データおよび、前記色情報を有する点群データにおける一部分が除かれた点群データを前記ニューラルネットワークに入力することで出力された、色情報が推定された前記一部分のデータを取得し、この取得されたデータおよび前記正解データに基づいて前記ニューラルネットワークに係る損失関数を計算し、前記計算した損失関数に基づいて、前記ニューラルネットワークのパラメータを更新する。
 本発明によれば、色情報を有する点群データの欠損部分を正しい色情報とともに適切に推定することができる。
図1は、本発明の一実施形態で用いられるニューラルネットワークの入出力の第1の例を示す図である。 図2Aは、MLP(Multilayer perceptron)層の実装の一例を示す図である。 図2Bは、MLP層の実装の一例を示す図である。 図2Cは、MLP層の実装の一例を示す図である。 図3は、SA層(Set Abstraction Layer)の実装の一例を示す図である。 図4は、FP層(Feature Propagation Layer)の実装の第1の例を示す図である。 図5は、FP層の実装の第2の例を示す図である。 図6は、本発明の一実施形態で用いられるニューラルネットワークの入出力の第2の例を示す図である。 図7は、PTF層(Point Transformer Layer)の実装例を示す図である。 図8Aは、PTF層の実装例を示す図である。 図8Bは、PTF層の実装例を示す図である。 図9は、PTF層の実装例を示す図である。 図10は、識別ネットワークの第1の例を示す図である。 図11は、MLP層の実装の例を示す図である。 図12は、識別ネットワークの第2の例を示す図である。 図13は、ニューラルネットワークの学習用データの生成のプロセス(process)の第1の例を説明する図である。 図14は、ニューラルネットワークの学習用データの生成のプロセスの第2の例を説明する図である。 図15は、第1の実施形態に係る画像処理システム(system)の全体構成の一例を示すブロック図(block Diagram)である。 図16は、第1の実施形態で用いられる色推定DNN(Deep Neural Network)の一例を示す図である。 図17は、学習用点群DBのデータ保持例を示す図である。 図18は、色推定DNNパラメータ(parameters)DBのデータ保持例を示す図である。 図19は、第1の実施形態に係る計算端末の学習操作部による処理動作の一例を示すフローチャート(flowchart)である。 図20は、第1の実施形態に係る計算端末の色推定DNN処理部における処理動作の一例を示すフローチャートである。 図21は、第1の実施形態に係る計算端末の入力操作部の処理動作の一例を示すフローチャートである。 図22は、第2の実施形態に係る画像処理システムの全体構成の一例を示す図である。 図23は、第2の実施形態で用いられる色推定DNNの一例を示す図である。 図24は、第2の実施形態で用いられる識別DNNの一例を示す図である。 図25は、識別DNNパラメータのデータ保持の一例を示す図である。 図26は、第2の実施形態に係る計算端末の学習操作部による処理動作の一例を示すフローチャートである。 図27は、第2の実施形態に係る識別DNN処理部における処理動作の手順の一例を示すフローチャートである。 図28は、本発明の一実施形態に係る画像処理システムの計算端末のハードウエア(hardware)構成の一例を示すブロック図である。
 以下、図面を参照しながら、この発明に係わる一実施形態を説明する。 
 本実施形態では、色情報の推定の対象である点群の近傍に存在する幾何情報および色情報を有するN点の色付き点群(カラー点群)(色有り点群データとも称される)はN(xi, yi, zi, ri, gi, bi)と記述される。 
 このときiは、「i=1, 2, 3, …, N」であり、xi, yi, ziは、上記点群の幾何情報であり、ri, gi, biは、上記点群の色情報である。
 また、本実施形態では、色推定の対象であるN´点の色無し点群(非カラー点群)はN´(x´, y´, z´)と記述され、N´点の色無し点群の各点に正しい色情報が付いた点群はN´(x´, y´, z´, r´, g´, b´)と記述される。 
 このときi´は「i´=1, 2, 3, …, N´」であり、x´, y´, z´は、上記色無し点群の幾何情報であり、r´, g´, b´は、上記色無し点群の色情報である。
 本実施形態では、N点のカラー点群であるN(xi, yi, zi, ri, gi, bi)とN´点の非カラー点群であるN´(x´, y´, z´)を入力として、この非カラー点群N´(x´, y´, z´)の色情報が推定されたカラー点群N´(x´, y´, z´, r´, g´, b´)の推定結果を出力するニューラルネットワークと、同ニューラルネットワークの学習モデルの生成手法に関する。 
 本実施形態において、前述のPoint Cloud Completionにおける欠損点群Aは、上記幾何情報および色情報を有するN点の色付き点群N(xi, yi, zi, ri, gi, bi)に該当し、欠損部分の補完結果である非カラー点群B´または「A´+B´」は、上記色推定の対象であるN´点の色無し点群N´(x´, y´, z´)に該当する。
 本実施形態では、従来の上記2つの課題を解決するため、従来のように色情報を有しない点群の幾何情報を入力とすることに加え、色推定の対象である点群の近傍にある色付き点群の幾何情報および色情報も入力できるようにニューラルネットワークアルゴリズムを拡張することについて説明する。また、本実施形態では、同ニューラルネットワークの学習モデルの生成手法についても説明する。
 (ニューラルネットワークアルゴリズム(第1の例))
 ここでは、色情報を有しない点群の幾何情報を入力とすることに加え、色情報の推定対象である点群の近傍に存在する色付き点群の幾何情報および色情報も入力可能なニューラルネットワークアルゴリズム(algorithm)の第1の例について述べる。
 図1は、本発明の一実施形態で用いられるニューラルネットワークの入出力の第1の例を示す図である。 
 図1では、幾何情報および色情報を有して欠損部分が(図1の符号a)存在するN点の色付き点群N(xi, yi, zi, ri, gi, bi)と、色推定の対象であるN´点の色無し点群N´(x´, y´, z´)を入力として、正しい色情報が付いたN´点の色付き点群N´(x´, y´, z´, r´, g´, b´)の推定結果を出力するニューラルネットワークの構成を示す。
 このニューラルネットワークは、MLP層、SA層、およびFP層の3つの層を組み合わせることで実現される。 
 MLP層は多層パーセプトロン(multilayer perceptron)のニューラルネットワークであり、入力要素数a、出力要素数bの全結合の線形層(以下、Linear(a, b)と表す)および、ReLUなどの各要素に対する活性化関数で構成される。
 図1に示された例では、色付き点群N(xi, yi, zi, ri, gi, bi)を入力するMLP1の出力にSA、SA、およびMLP2が直列に接続される。また、色無し点群N´(x´, y´, z´)を入力するMLP1の出力にSA、SA、およびMLP2が直列に接続される。上記2つのMLP2の出力はFPに接続され、このFPの出力に4段のFPが直列に接続され、最後段のFPの出力にMLP3が接続される。MLP1からMLP2までの各層はエンコーダ(encoder)とも称される。 
 色付き点群N(xi, yi, zi, ri, gi, bi)を入力するMLP1の出力は、上記各MLP2の出力に接続されるFPの出力からみた4段目のFPにも接続され、色無し点群N´(x´, y´, z´)を入力するMLP1の出力は、上記各MLP2の出力に接続されるFPからみた3段目のFPにも接続される。
 色付き点群N(xi, yi, zi, ri, gi, bi)を入力するMLP1の出力に接続されるSAの出力は、上記各MLP2の出力に接続されるFPからみた2段目のFPにも接続され、色無し点群N´(x´, y´, z´)を入力するMLP1の出力に接続されるSAの出力は、上記各MLP2の出力に接続されるFPからみた1段目のFPにも接続される。
 図2A、図2B、および図2Cは、MLP層の実装の一例を示す図である。 
 これら図2A、図2B、および図2Cでは、図1で示されたMLP層の実装例としてMLP1、MLP2、およびMLP3が示される。 
 図2Aに示されるMLP1では、N(xi, yi, zi, ri, gi, bi)またはN´(x´, y´, z´)を表すテンソル(tensor)データを入力とし、本実施形態では、NおよびN´の点群を表す表記として、テンソルの各階層の要素数に着目して(N, 3 + 3),(N´, 3 + 0)と表す。 
 このとき、テンソルの第2層の「3+3」および「3+0」の最初の「3」は、各点(x, y, z)の位置情報を表し、当該第2層の「3+3」および「3+0」の後段の「3」および「0」は、各点のカラー情報または特徴量ベクトル(vector)の長さを表す。
 図2A中のMLP1は、最初に入力された各点をLinear(6, D)またはLinear(3, D)に代入する。代入先の引数の前半の数値は、入力が色情報(カラー)付きであるか否かに対応し、色情報付きでない場合は「3」を、色情報付きの場合は「6」を入力とする。 
 上記Linear(6, D)またはLinear(3, D)のDは、点群数などに応じて決められる整数のパラメータであり、図2Aの例ではD=32となる。 
 上記Linear(6, D)またはLinear(3, D)の出力は、各点に対して要素数Dのベクトルが与えられるため、(N, D)または(N´, D)となる。
 次に、活性化関数であるReLUが上記出力(N, D)または(N´, D)に適用される。 
 さらにReLUの出力の(N, D)または(N´, D)は、Linear(D, D)に掛けて(N, D)または(N´, D)の出力が得られる。
 最後に、この出力(N, D)または(N´, D)に対して、入力のNまたはN´の位置情報を有する(N, 3),(N´, 3)が結合されて、(N, 3 + D),(N´, 3 + D)を出力とする。 
 ここで説明した構成は構成形態の1つであり、MLP1の後段のLinear層とReLU層を複数段にわたり適応したり、最後段のLinear層の出力の出力要素数がDであれば、途中の要素数を増減したりする変更は、ハイパーパラメータ(hyperparameters)の調整要素となる。
 図2Bに示されるMLP2は、図1に示されるエンコーダの最終段に該当し,2つのMLP1への入力に対して複数のSA層を適応して入力点の数を圧縮した後ので最後段に適応される。
 図1では、MLP1の出力に2つのSA層を適応した結果として、N点が16分の1まで圧縮された(N/16, 3 + D)、またはN´点が16分の1まで圧縮された(N´/16, 3 + D)がMLP2に入力される例が示される。 
 また、図1に示されるMLP2ではD=128である。
 図1では、各々のMLP1に接続されるSA層は2層であるが、SA層を3層または4層と繰り返し適応させて、点群データの点数が、64分の1または256分の1などに、より圧縮されても良いし、この場合は次元数がD=256またはD=512などに大きくなる。 
 SA層の数は、扱われるNまたはN´の点数に影響されて決定されるパラメータである。
 図2Bのように、MLP2では、上記(N/16, 3 + D)のうち位置情報が省かれた(N/16, D)、または(N/16, 3 + D)のうち位置情報が省かれた(N´/16, D)がLinear(D, D´)に入力される。 
 D´は、Dの値に応じて定められるパラメータであり、D=128の場合はD´=256などに設定される。
 その後、MLP1と同様にReLU、Linear(D´, D´)、ReLU、Linear(D´, D)の入出力を繰り返して、最後段のLinear(D´, D)の出力に対して、N/16の位置情報を有する(N/16, 3)が結合された(N/16, 3 + D)、またはN´/16の位置情報を有する(N´/16, 3)が結合された(N´/16, 3 + D)が出力される。 
 ここで説明したMLP2の構成は、構成形態の1つであり、MLP2内の後段のLinear層とReLU層を複数段にわたり適応したり、最後段のLinear層の出力の出力要素数がDであれば、途中の要素数を増減したりすることは、ハイパーパラメータとしての調整要素となる。
 図2Cに示されるMLP3は、図1に示されるニューラルネットワークの最終段の出力に該当する。MLP2におけるDおよびD´は整数のパラメータであり、図2Cに示される例ではD=32、D´=64である。 
 MLP3も、MLP1およびMLP2と同様に、Linear層と活性化関数のReLUが繰り返し適応され、最後段のLinear層の出力は、色情報の出力のため「3」として出力される。
 色情報が0~1の間で表現される場合は、さらに最終段のLinear層の出力に活性化関数のSigmoidが適応された結果が出力として適用され得る。 
 最終段のLinear層およびSigmoidの出力は(N´, 3)であり、この「3」はr, g, bなどの色情報の各要素と対応する。
 最後に、MLP3の入力の(N´, 3 + D)のうち点群N´の位置情報にあたる(N´, 3)が最終段のLinear層またはSigmoid層の出力(N´, 3)に結合されることで、N´の位置情報と色情報で構成される最終的な出力(N´, 3 + 3)が得られる。
 MLP3においても、Linear層の最終的な出力の要素数が「3」となるように、Linear層の入力または出力要素数の値を変えたり、より多くのLinear層およびReLU層を追加したりすることはハイパーパラメータの調整要素となる。また、色情報が0~1の範囲で表現されない場合には、最終段のLinear層に適応されるSigmoidは省くことも可能である。
 次に、図1のSA層について述べる。図3は、SA層の実装例を示す図である。 
 SA層は、入力となる点群Nまたは点群N´の点数を圧縮しながら各点の特徴量を抽出するエンコーダの役割を有する。 
 図1に示された例では、1つのSA層で点群数を4分の1に圧縮しているが、圧縮の割合はハイパーパラメータの調整要素であり、2分の1にしても良いし、8分の1にしても良い。
 また、図1に示された例では、点群Nおよび点群N´に対して、それぞれ2つのSA層が適用されるが、この適用の回数もハイパーパラメータの調整要素の1つであり、3または4つに適用の回数が増やされしてもよい。
 また、図1に示された例では、SA層の前後で位置情報が除かれた各点の特徴量は32から64、または64から128に倍増させているが、各層の通過時の特徴量の数の決定もハイパーパラメータの調整要素の1つであり、数値を変えて調整することが可能である。
 図3に示された例では、入力となる点群の点数をNとし、位置情報を除く特徴量の要素数をDとし、出力となる点群の点数をNdsとし、位置情報を除く特徴量の要素数をDdsとして記載される。SA層では、最初に入力された点群数Nに対して、出力となるNdsへのDown Samplingが行なわれ、2階テンソル(Nds, 3)として出力される。
 このDown Samplingでは、N点から任意のNds点がランダム(random)にサンプリング(sampling)されても良いし、一般的な手法として広く知られているFarthest Point Samplingが用いられても良い。
 次にSA層では、上記サンプリングされたNdsの各点に対して、入力のN点の中から最も近い近傍点であるk点が選出される。そして、Ndsの各点に対して選出されたk点と、k点の各々が有する特徴量Dの組み合わせが3階テンソル(Nds, k, D)として出力される。kはハイパーパラメータであり、図3においてはk=16である。
 次にSA層では、上記出力された(Nds, k, D)に対して、入力チャンネル(channel)数がD、出力チャンネル数がDds、カーネルサイズ(karnel size)が1×1、スライドサイズ(slide size)が1の2次元畳み込み(以下、各パラメータをあわせてConv2D(D, Dds, 1)と表す)を実施する。
 この2次元畳み込みに入力される、上記3階テンソル(Nds, k, D)は、縦横のサイズがNds×kである画素数を有する、チャンネル数Dのデータとみなすことができる。
 続けて、上記Conv2D(D, Dds, 1)の出力に対して、バッチノーマライゼーション(Batch Normalization)および活性化関数ReLUが順に適用されて、さらにConv2D(Dds, Dds, 1)、バッチノーマライゼーション、およびReLUが順に適用される。 
 これらのConv2D、バッチノーマライゼーション、および活性化関数の組み合わせの適用回数はハイパーパラメータの調整要素である。
 また、最終段のConv2Dの出力チャンネル数がDdsであれば、中段のConv2Dの入出力チャンネル数はハイパーパラメータであり調整要素となる。
 続けてSA層では、最終段のReLUの出力である(Nds, k, Dds)において、Ndsの各点に対応するk個の点の各々が有する要素数Ddsの特徴量ベクトルに対して、k個の点の中で最も大きな特徴量のみを抽出するMaxpool層が適用される。
 このMaxpool層により、k個の要素数Ddsの特徴量ベクトルが、要素ごとに最も大きい1つの要素数Ddsの特徴量ベクトルに統合される。このため、Maxpool層の入力となる3階テンソル(Nds, k, Dds)は2階テンソル(Nds, Dds)として出力される。
 最後に、SA層では、上記Down SamplingされたNds個の点および位置情報である(Nds, 3)と、上記Maxpool層の出力である(Nds, Dds)とが結合され、(Nds, 3 + Dds)として最終的に出力される。
 次に、図1に示されたFP層について述べる。図4は、FP層の実装の第1の例を示す図である。 
 FP層は2つの入力を有し、点群N´にMLP層またはSA層が適用された結果を2つとも入力とするN´, N´結合と、点群NにMLP層またはSA層が適用した結果を1つの入力とするN, N´結合の2パターン(pattern)で適用される。
 また、FP層の数は、SA層の数をOとすると、「O+1」である。すなわちFP層の数は、SA層の数に影響を受ける調整パラメータである。またN, N´結合とN´, N´結合は交互に適用され、入力となる点群は、MLP層およびSA層が繰り返し適用されて、点群数が削減された後段の出力から順番に入力として選択されて適用される。
 FP層の2つの入力について、入力Aの点群数をNdsとし、位置情報以外の各点の特徴ベクトルの要素数をDdsとし、入力Bの点群数をNupとし、位置情報以外の各点の特徴ベクトルの要素数をDupとする。
 N, N´結合において、入力Aには、点群N´にMLP層またはSA層が適用された結果が適用され、入力Bには、点群NにMLP層またはSA層が適用された結果が適応される。 
 また、N, N結合においては、最後段のSA層の次のMLP層の出力、または前段のFP層の出力が入力Aに適用され、入力Bには点群N´にMLP層またはSA層が適用された結果が適用される。
 図4で示されるFP層では、最初に入力Bの各点pi(i=1, 2, …, Nds)に対して入力Aより最も近い上位のk点pij(j=1, 2, …, k)が選出されて、piからpijへのそれぞれの距離dijが計算され、3階テンソル(Nup, k, 1)が出力される(図4の符号a参照)。
 続けて、距離dijよりNupの各点piから入力Aの近傍点の上位k点に対する各々の重みwijが次式(1)で算出される(図4の符号b参照)。
Figure JPOXMLDOC01-appb-M000001
 この重みwijは、距離dijが短い点であるほど大きくなる変数であり、αは、dij=0であるときの不定を防ぐための微小な値をとるハイパーパラメータであり、図1に示された例においてはα=1.0*10-8である。
 続けて、入力AよりNdsから選出された各点pijに対応する特徴量ベクトルvij(要素数Dds)に対して、各点pijに対応する重みwijの積wijvijが計算される(図4の符号c参照)。 
 そして、Nupの各点piから選出されたk点の重み付き特徴量ベクトルwijvijの組である(Nup, k, Dds)が出力される。
 次に、各点piから選出されたk点の重み付き特徴量ベクトルの各要素の総和
Figure JPOXMLDOC01-appb-M000002
(特徴ベクトルviの要素数Dds)が計算される(図4の符号d参照)。 
 そして、各点piと上記抽出された特徴ベクトルviのペア(pair)が2階テンソル(Nup, Dds)として出力される。
 次に、入力BのNup点と入力時の位置情報を除く特徴量で構成されるテンソル(Nup, Dup)と、Maxpool層の出力(Nup, Dds)が結合された(Nup, Dds + Dup)が次の層に出力される。
 続けて、上記(Nup, Dds + Dup)に対して入力チャンネル「Dds + Dup」、 出力チャンネルDup,カーネルサイズ「1」、およびスライドサイズ「1」の1次元の畳み込み(以下、各パラメータを含みConv1D(Dds + Dup, Dup, 1)と称する)が実施されて、各点に対して要素数Dupの特徴量の組み合わせとなる(Nup, Dup)が出力される。
 さらに上記Conv1D(Dds + Dup, Dup, 1)で出力された各要素に対して、バッチノーマライゼーションおよび活性化関数ReLUの適用が行なわれる。これらのConv1D、バッチノーマライゼーション、および活性化関数の組み合わせは例えば2度または3度などの複数回だけ適用されてもよく、適用の回数はハイパーパラメータの調整要素となる。この場合は、最前段のConv1Dの入力チャンネルが「Dds + Dup」となって、最後段のConv1Dの出力チャンネルがDupとなっていれば良い。
 最後に、最後段のReLU層の出力となる(Nup, Dup)に対して、入力Bの各点と位置情報のペアとなる(Nup, 3)が結合されて、FP層の最終的な出力として(Nup, 3 + Dup)が出力される。
 図5は、FP層の実装の第2の例を示す図である。FP層には、図4に示された例以外に、この図5に示された例も考えられる。 
 図5に示されたFP層において、入力Aおよび入力Bは図4に示された例と同じ入力であり、入力Aに対してはLinear(Dds, Dup)、バッチノーマライゼーション、およびReLU層が適用され、入力Bに対してはLinear(Dup, Dup)、バッチノーマライゼーション、およびReLU層が適用される。
 図5に示されるFP層では、両方の入力に対して最初にLinear層、バッチノーマライゼーション、およびReLU層でなる3層の組み合わせが1つずつ適用されるが、最後段のLinear層の出力要素数がDupであれば、上記3層の組み合わせが2度または3度と適用されても良く、適用回数はハイパーパラメータの調整要素となる。
 次に入力Aおよび入力Bに対して、図4に示されたFP層と同様に、入力Aの各点pi(i=1, 2, …, Nds)に対して、入力Aの最も近い上位k点pij(j=1, 2, …, k)が選出されて、piからpijへの夫々の距離dijが計算され、3階テンソル(Nup, k, 1)が出力される(図5の符号a参照)。
 そして、距離dijよりNupの各点piから入力Aの近傍点のうち上位k点に対する各々の重みwijが上記式(1)で算出される(図5の符号b参照)。
 続けて、入力AのNdsから選出された各点pijに対応する、Linear、Batch Normalization、およびReLUが適用された出力としての特徴量ベクトルvij(要素数Dup)に対して、各点pijに対応するwijの積wijvijが計算さる(図5の符号c参照)。 
 そして、Nupの各点piから選出されたk点の重み付き特徴量ベクトルwijvijの組である(Nup, k, Dup)が出力される。
 次に、図4に示されたFP層と同様に、各点piから選出されたk点の重み付き特徴量ベクトルの各要素の総和
Figure JPOXMLDOC01-appb-M000003
(特徴ベクトルviの要素数Dup)が計算される(図5の符号d参照)。 
 そして、各点piと抽出された特徴ベクトルviのペアが2階テンソル(Nup, Dup)として出力される(図5の符号e参照)。
 続いて、入力Bに対してLinear、Batch Normalization、およびReLUが適用された出力である、要素数(Nup, Dup)の2階テンソルTin2と、前段の層で総和がとられた要素数(Nup, Dup)の2階テンソルとで、2階テンソルの第2の要素、すなわち要素数Dupの各要素の和が計算されて、新しい2階テンソル(Nup, Dup)が出力される。
 最後に、入力のNup点に対する位置情報で構成される2階テンソル(Nup, 3)と、前段の層で和が計算された2階テンソルの第2の要素が結合されて(Nup, 3 + Dup)が最終的に出力される。
 最後に、上記図1に示されるニューラルネットワークの構成要点について整理して説明する。 
 このニューラルネットワークにおけるMLP層、SA層、およびFP層については既知の構成が適用できる。
 一方で、このニューラルネットの最大の特徴として「色情報を有しない点群の幾何情報を入力とすることに加え、色情報の推定の対象である点群の近傍に存在する色付き点群の幾何情報および色情報も入力可能にする」、構成を実現するため、FP層のN, N´結合の処理は、既知の構成に依らない独自の適用となる。
 (ニューラルネットワークアルゴリズム(第2の例))
 次に、色情報を有しない点群の幾何情報を入力とすることに加え、色情報の推定対象である点群の近傍に存在する色付き点群の幾何情報および色情報も入力可能なニューラルネットワークアルゴリズムの第2の例について述べる。
 図6は、本発明の一実施形態で用いられるニューラルネットワークの入出力の第2の例を示す図である。 
 このニューラルネットワークアルゴリズムの第2の例では上記のニューラルネットワークの第1の例に改良を加えたことで、精度を向上させたものである。
 図6に示された第2の例では、図1に示された第1の例に対し、最終段のMLP層を除き、他のMLP層、各SA層、および各FP層の後段に新たにPTF層が挟まれていることが異なる。この第2の例ではMLP層、SA層およびFP層の実装例は、上記図2~5に示した例と同じである。また、第1の例と同様に、MLP層、SA層、およびFP層の内部処理には、ハイパーパラメータとして調整されるパラメータ(kなど)または、拡張の自由度(Linear層、およびConv層の適用数など)が存在する。
 また、SA層およびFP層の適用回数は、図6の例では、SA層の適用回数が「2段×2=4回」、FP層の適用回数が「4+1=5回」であるが、SA層の適用回数を例えば「3段×2=6回」とし、FP層の適用回数を「6+1=7回」とするなど、SA層が「X(変数)段×2」、FP層の適用回数が「(X×2)+1」となる範囲で追加していくことも第1の例と同様に可能である。
 続いて、PTF層による処理の詳細について説明する。図7、図8A、図8Bおよび図9は、PTF層の実装例を示す図である。 
 PTF層は、点数Nと、各点に対して「位置情報+要素数D」の特徴量とを有する(N, 3 + D)の2階テンソルが入力となる。
 まず図7に示されるように、PTF層に入力された(N, 3 + D)のテンソルにおいて、N個の点群の各点pに対して、同じN個の点群の中から尤も近いk点が選出される(図7の符号a参照)。そしてN点の中の各点pに対して、近傍のk点の「位置情報+特徴量」で構成される3階テンソル(N, k, 3 + D)が出力される。 
 kは、入力対象とするデータに応じて調整される正の整数であり、図7に示された例ではk=16である。本層の出力(N, k, 3 + D)を説明上kNNと定義する。
 次に、同じくPTF層への入力(N, 3 + D)のうち、位置情報が除かれた(N, D)に対して、Linear(D, H)が適用される。このHは、入力対象とするデータに応じて調整されるハイパーパラメータであり、図7に示された例ではH=512である。
 さらに前段の層のLinear(D, H)の出力となる2階テンソル(N, H)に対して、3つのLinear(H, H)が別々に、すなわち並列に適用される。 
 1つ目のLinear(H, H)の出力となる2階テンソル(N, H)の出力を説明上Queと定義する。 
 2つ目のLinear(H, H)の出力となる2階テンソル(N, H)に対しては、kNNのデータを参照して、次の処理が加えられる。まず、kNNである(N, k, 3 + D)はN点上の各点pに対して「N点の中から」pに最も近いk点と、この位置情報と要素数Dの特徴量で構成されたベクトルであり(図7の符号b参照)、選ばれたk点はN点上の点である。
 そして、Linear(H, H)の出力(N, H)は、N点の各点pに対して要素数Hの特徴量で構成されるテンソルである。そのため、選ばれたN点の点であるk個の点に対して、それぞれの要素数Hの特徴量が存在するとみなすことができる。
 そこで、この例では、上記(N, k, 3 + D)の各k点が有する「3 + D」の要素をHに置き換える処理が行なわれる。ここでの処理の結果は、(N, k, H)の3階テンソルである。
 3つ目のLinear(H, H)の出力に対しても同様の処理が行なわれ、(N, k, H)の3階テンソルが得られる。ここで、図7に示された例では、2つ目のLinear(H, H)の出力から導き出された(N, k, H)をKeyと定義し、3つ目のLinear(H, H)から導き出された(N, k, H)をValueと定義する。
 次に、図8Aに示されるPTF層では、kNNの(N, k, 3 + D)のデータと、入力Aの(N, 3 + D)のうち各点と位置情報のみから構成される(N, k, 3)と(N, 3)を入力として、N点上のある点pi=(xi, yi, zi)(ただしi=1, 2, … ,N)と、piの近傍点pij=(xij, yij, zij)(ただしj=1, 2, …, k)の位置情報の差分(xi - xik, yi - yik, zi - zik)が計算される(図8Aの符号a参照)。 
 上記の差分は、位置情報と同様に3つの要素より構成され、N点上の全ての点と近傍のk点の差分要素が計算されて(N, k, 3)として出力される。
 次に、前段の層の(N, k, 3)に対してLinear(3, H)、ReLU、およびLinear(H, H)が順次適用される。この例では、2つのLinear層が適用されるが、この適用される層の数は調整可能なハイパーパラメータであり、最前段のLinear層の入力要素数が3で、最後段のLinear層の出力要素数がHであれば、層の数を増やしたり、中間層の入出力要素数をHから変更したりしても良い。図8Aに示された例では、最後段のLinear層の出力(N, k, H)を説明上POS_ENCと定義する。
 続いて、図8Bに示されたPTF層では、Que、Key、およびPOS_ENCの3つを入力として、「Que-Key+POS_ENC」の計算が行なわれる。 
 このとき、Queは(N, H)の2階テンソルであり、Keyは(N, k, H)の3階テンソルであり、POS_ENCは(N, k, H)の3階テンソルであるが、QueにおけるNの各点における要素数Hの特徴ベクトルについてk個の同じ値がコピー(copy)されて(N, k, H)の3階テンソルに拡張されることで、テンソルの形状が合わせられる。
 続いて「Que-Key+POS_ENC」の結果である(N, k, H)の出力に対して、Linear(H, H)、ReLU、およびLinear(H, H)が適用される。本処理では、2つのLinear層が適用されているが、この適用される層の数は調整可能なパラメータであり、最前段のLinear層の入力要素数がHで、最後段のLinear層の出力要素数がHであれば、層の数を増やしたり、中間層の入出力要素数をHから変更したりしても良い。
 次に、最後段のLinear層の出力である(N, k, H)の各要素に対して
Figure JPOXMLDOC01-appb-M000004
の値による除算が行なわれる。 
 そして、除算の結果の出力におけるkの要素に対してSoftmax層が適用される。N点上の、ある点piと、piの近傍のk点pijの要素数Hの特徴量ベクトルvij=(vij1, vij2,…, vijh, …, vijH)が存在するときにvijhのSoftmax層が適用された後の値v´ijhは、以下の式(2)により計算される。
Figure JPOXMLDOC01-appb-M000005
 kの全ての要素に対してSoftmax層が適用された後の3階テンソル(N, k, H)を説明上ATTENTIONと定義する。
 続いて、図9に示されたPTF層では、ValueとPOS_ENCの和が計算される。これらのValueとPOS_ENCは(N, k, H)で要素数が揃ったテンソル同士となるので、本処理は全ての要素ペアの単純な加算となる。
 続いて、「Value + POS_ENC」の結果に対して、ATTENSIONとの積が計算される。「Value + POS_ENC」の結果とATTENTIONは(N, k, H)で要素数が揃ったテンソル同士となるので、本処理は全ての要素ペアの単純な積となる。
 ここで、「Value + POS_ENC」とATTENTIONの積算結果である(N, k, H)において、N点上の、ある点piと、piの近傍のk点pijの要素数Hの特徴量ベクトルをv´´ijと定義したときに、piの総和の特徴量v´´i
Figure JPOXMLDOC01-appb-M000006
と定義する。そして、PTF層では、全てのpiに対するv´´iのペアが計算され、(N, H)の2階テンソルとして出力される。
 続けて、前段の層の出力である(N, H)に対してLinear(H, D)が適用される。本処理は1つのLinear層が適用されるが、適用される層の数は調整可能なハイパーパラメータであり、最前段のLinear層の入力要素数がHで、最後段のLinear層の出力要素数がDであれば、1つ目のLinear層と2つ目のLinear層の間にReLUが挿入されるようにして、適用される層の数を増やしたり、中間層の入出力要素数をHから変更したりしても良い。
 続いて、最後段のLinear層の出力である(N, D)に対して、入力Aの(N, 3 + D)のうち位置情報が除かれた(N, D)の要素同士の和が計算される。
 最後に、前段の層の出力である(N, D)に対して、入力Aの(N, 3 + D)のうち位置情報のみが含まれる(N, 3)が結合されて、最終的な出力として(N, 3 + D)が出力される。
 (ニューラルネットワークアルゴリズム(第1および第2の例)の学習手法)
 次に、上記のニューラルネットワークアルゴリズムの学習、すなわちニューラルネットワークのパラメータの学習について説明する。 
 上記のニューラルネットワークアルゴリズムの第1および第2の例について学習させるためには、損失関数の設定、最適化アルゴリズムの設定、および学習用データの生成でなる3つの要素が必要である。 
 本実施形態では、学習の手法として、ニューラルネットワークアルゴリズムの第1および第2の例の損失関数および学習用データの生成の手法について説明する。また、損失関数においては、敵対的生成ネットワーク(GAN)を用いた設定の手法について説明する。
 上記の学習に係る最適化アルゴリズムは、ニューラルネットワークの一般的な最適化アルゴリズムが用いられれば良く、例えばSGD(Stochastic gradientdescent(確率的勾配降下法))またはAdam(Adaptive Moment. Estimation)が挙げられる。
 (ニューラルネットワークの損失関数)
 上記のニューラルネットワークアルゴリズムの第1および第2の例は、色付き点群データN(xi, yi, zi, ri, gi, bi)と、色無し点群データN´(x´, y´, z´)を入力として、色有り点群データN´(x´, y´, z´, r´, g´, b´)を出力するアルゴリズムである。
 このとき後述する学習用データにおける正解ラベル(label)N´(x´, y´, z´, R´, G´, B´)を与えて、ニューラルネットワークアルゴリズムの第1および第2の例での損失関数は以下の式(3)として定義される。
Figure JPOXMLDOC01-appb-M000007
 (敵対的生成ネットワークの識別ネットワーク)
 ニューラルネットワークアルゴリズムの第1および第2の例では、上記式(3)で示される損失関数と、後述する学習用データを用いることで学習させることは出来るが、本実施形態では、学習精度を向上させるため、さらに敵対的生成ネットワーク(GAN)を用いた学習方法について述べる。
 GANを実現させるためには、識別ネットワークと、識別ネットワークも含めた損失関数が必要となるが、まずは識別ネットワークについて述べる。
 図10は、識別ネットワークの第1の例を示す図である。 
 識別ネットワークは、正解ラベルである色付き点群データN´(x´, y´, z´, R´, G´, B´)またはニューラルネットワークアルゴリズムの第1および第2の例での出力結果N´(x´, y´, z´, r´, g´, b´)を入力として、0から1までのスカラー(scalar)値で、入力データがN´(x´, y´, z´, R´, G´, B´)の場合は「1」を出力し、入力データがN´(x´, y´, z´, r´, g´, b´)の場合は「0」を出力するネットワークである。
 図10に示されるように、識別ネットワークは、MLP層、SA層、およびMaxpool層の組み合わせで実現される。MLP層は図2に示されるMLP1と、図10に示されるMLP4で構成され、SA層は図3に示した構成で実現される。図10に示された例では、1つのSA層により点群の数が4分の1に圧縮されているが、圧縮の割合はハイパーパラメータの調整要素であり、2分の1にしても良いし、8分の1にしても良い。また、図10に示された例では、2つのSA層が適用されるが、適用回の数はハイパーパラメータの調整要素であり、3度または4度などに適用回数が増やされても良い。
 また、図10に示された例では、SA層の前後で位置情報が除かれた各点の特徴量は32から64、および64から128へ倍増させているが、各層の通過時の特徴量数の決定もハイパーパラメータの調整要素の1つであり、数値を変化させて調整することが可能である。
 Maxpool層は、SA層の最後段の出力に対して適用される層である。そして、圧縮された点群数Nsa、図10に示された例では、ではN´/16)と位置情報以外の特徴量要素数Dsa (図10に示された例では128)が入力されたとき、Nsa上の各点pi(i=1, 2, 3, …, Nsa)に対応する特徴ベクトル
Figure JPOXMLDOC01-appb-M000008
が存在するときに、全ての特徴ベクトルから1つのベクトル
Figure JPOXMLDOC01-appb-M000009
を返すものであり、maxpoolでは、入力された要素のうち最大である1つの要素を返す関数maxで
Figure JPOXMLDOC01-appb-M000010
として定義される。
 また、Maxpool層ではaverage global poolingを適用することもでき、この場合は入力された要素の平均を返す関数averageにより、
Figure JPOXMLDOC01-appb-M000011
として定義される。 
 Maxpool層では、maxpoolまたはaverage global poolingが適用されたた結果の要素数Dsaの1階テンソルが出力として返される。
 図11は、MLP層の実装例を示す図である。図11に示されるMLP4では、Maxpool層の1階テンソル出力に対して、Linear(D, D´)、ReLU、Linear(D´, D´´)、ReLU、およびLinear(D´´, 1)が順次適用される。 
 Dは、Maxpool層の出力である1階テンソルの要素数であり、図10で示された例では、D=128となる。 
 また、(D´, D´´)は調整要素であるハイパーパラメータであり、図10で示された例では、D´=64であり、D´´=32である。
 図11に示された例では、3層のLinear層が適用されているが、Linear層の数は、調整要素となるハイパーパラメータの1つであり、最終段の層のLinear出力が「1」であれば2層に減らされても良いし、ReLUなどの活性化関数を挟みながら3層、または5層などに増やされても良い。
 最後に、Linear層の出力である、要素数が1である1階テンソルに対して、ニューラルネットワークにおいて一般的な活性化関数であるSigmoid関数が適用されて、0~1のスカラー値で構成される、要素数が1である1階テンソルが最終的な出力として得られる。
 図12は、識別ネットワークの第2の例を示す図である。 
 図12に示された例は、図10に示された識別ネットワークの精度を向上させるため、さらにPTF層が挟んだ例である。図12のに示されたネットワークの各層の処理および調整パラメータについては、図10に示された例と同様であり、最終段を除くMLP層とSA層の後段にPTF層が挟まれることが、図10に示された例と異なる。このPTF層は、ニューラルネットワークアルゴリズムの第2の例で示された、図7乃至9に示した構成と同様の構成が適用され得る。
 (敵対的生成ネットワークを含む損失関数)
 識別ネットワークに、正解ラベルの点群N´(x´, y´, z´, R´, G´, B´)が入力されたときの値がD(R)であって、識別ネットワークに、上記ニューラルネットワークアルゴリズムの第1および第2の例により推定された、色付き点群N´(x´, y´, z´, r´, g´, b´)が入力されたときの値がD(F)であるときに識別ネットワークの損失関数は下記の式(4)により定義される。
 LossD=-log(D(R))-log(1-D(F)) …式(4)
 また、敵対ネットワークによる学習が適用されるときの、ニューラルネットワークアルゴリズムの第1および第2の例での損失関数は下記の式(5)で定義される。
 Lossmain_gan=λLossmain+log(D(R))-log(1-D(F)) …式(5)
 上記の式(5)において、λは、上記ニューラルネットワークアルゴリズムにより生成された、着色点群、すなわち色付き点群と正解データとの差分の大きさと、識別ネットワークを上記ニューラルネットワークが騙すことが出来たか否かの、どちらを重視するかの調整要素となるハイパーパラメータであり、このλは0~1.0の間で設定される。例えばλ=0.5などが当てはまる。
 (学習用データの生成)
 本実施形態では、ニューラルネットワークは点群形状を補完する従来のニューラルネットワークでは補完されない色情報を推定することができる。 
 そして、点群形状を補完する従来のニューラルネットワークは、上記非特許文献1に開示されるように、欠損点群をAとして欠損部分をBとしたときに、Aを入力としてBが推定された結果であるB´を出力する1つ目のパターンのニューラルネットワーク、または上記非特許文献2に開示されるように、Aを入力としてA+Bの全体が推定された結果であるA´+B´を出力する2つ目のパターンのニューラルネットワークが存在する。
 また、本実施形態でのニューラルネットワークは、A+B´またはA´+B´を入力情報として、B´またはA´+B´の色情報を出力するニューラルネットワークであり、上記の両パターンの点群形状の補完に対応している。
 次に、ニューラルネットワークアルゴリズムの第1および第2の例に適用できる学習用データとして、上記の1つ目および2つ目のパターンのニューラルネットワークの各々に対応する学習用データの生成手法について説明する。
 図13は、ニューラルネットワークの学習用データの生成のプロセスの第1の例を説明する図である。 
 まず、学習のための形状が完全な色付き3D点群をOriginal(点数O)と定義する。 
 次に、入力となる点群の点数を揃えるため、上記Originalでの点数が一定の点数NpreとなるようにDown Samplingが行なわれる。 
 このDown Samplingでは、O点から任意のNpre点がランダムにサンプリングされても良いし、一般的な手法として広く知られているFarthest Point Samplingが用いられても良い。
 次に、上記の点数Npreが2つに分割された一方を点数がNpre-N´の「Data1」と定義し、もう一方を点数がN´の「Data2」と定義する。分割の方法は、どのような形状の補完を想定するかによって異なり、例えばDown Samplingされた点群の1点がランダムで選出されて、この1点の近傍のNpre点を「Data2」とする方法などがあげられる。
 そして最後に、「Data2」の色情報が除去された結果が「Data3」として定義される。
 本実施形態に係るニューラルネットワークを学習させる場合は、「Data1」および「Data3」がニューラルネットワークの入力とすることでて推定結果「Data2´」が得られる。 
 また「Data2」を正解ラベルとして、本実施形態のニューラルネットワークによる推定結果「Data2´」が損失関数Lossmainに代入されて計算が行なわれる。 
 さらに、敵対的生成ネットワークを学習させる場合には、「Data1+Data2」を正解ラベルの点群N´(x´, y´, z´, R´, G´, B´)とし、「Data1+Data2´」を本実施形態に係るニューラルネットワークアルゴリズムの第1または第2の例により推定された、色付き点群N´(x´, y´, z´, r´, g´, b´)としてLossDまたはLossmain_ganの計算が行なわれる。
 図14は、ニューラルネットワークの学習用データの生成のプロセスの第2の例を示す図である。 
 この第2の例では、第1の例と同じく、まず、学習のための形状が完全な色付き3D点群をOriginal(点数O)と定義する。 
 次に、入力となる点群の点数を揃えるため、Originalから2パターンの点数N´の点群データ「Data1」および「Data2」が作成されるようにDown Samplingが行なわれる。 
 このDown SamplingではO点から任意のN´点がランダムにサンプリングされても良いし、上記Farthest Point Samplingが用いられても良い。ただし、上記生成された「Data1」および「Data2」には重複する点群が存在しても良いが、全く同じ点群とならないようにDown Samplingが行なわれる。
 また、全く同じ点群とならないようにするために、「Data2」の各点の位置情報に微小なランダムノイズ(noise)が載せられても良い。また、「Data1」はDown Samplingと部分分割が組み合せられて作成されても良い。 
 例えば、最初にOriginalから「N´+A」点となるようにランダムサンプリングがなされ、続けて、特定の1点がランダムで選択されて、この選択された点の近傍のA点が部分分割されてN´点に変更するなどが挙げられる。続けて、「Data2」の色情報のみが取り除かれたものが「Data3」として生成される。
 本実施形態に係るニューラルネットワークを学習させるときは、「Data1」および「Data3」をニューラルネットワークの入力として推定結果「Data2´」が得られるようにする。また、「Data2」を正解ラベルとして、上記推定結果「Data2´」が損失関数Lossmainに代入されて計算が行なわれる。
 さらに、敵対的生成ネットワークを学習させるときは、「Data2」を正解ラベルの点群N´(x´, y´, z´, R´, G´, B´)とし、「Data2´」をニューラルネットワークアルゴリズムの第1または第2の例により推定された色付き点群N´(x´, y´, z´, r´, g´, b´)としてLossDまたはLossmain_ganが計算される。
 (実施形態)
 以下、各実施形態について説明する。 
 第1の実施形態では、図1に示された構成に基づくニューラルネットワークを、上記式(3)で示される損失関数と、図14に示された手法で生成された学習用データを用いて学習させ、これを利用する構成について示す。
 また、第2の実施形態では、図6に示された構成に基づくニューラルネットワークを、図12に示された識別ネットワークと、式(4)または(5)で示される損失関数と、図13に示された手法で生成された学習用データを用いて学習させ、これを利用する構成について示す。
 (第1の実施形態)
 次に、上記第1の実施形態について説明する。この実施形態ではPTF層なし、GANなし、かつ上記非特許文献2に開示されるデータタイプ(type)に対応したDNNの例について説明する。
 図15は、第1の実施形態に係る画像処理システムの全体構成の一例を示すブロック図である。 
 この第1の実施形態に係る画像処理システムは、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、およびメモリ(memory)などから構成される画像処理装置である計算端末100と、データを保存可能である記録装置200と、計算端末100との間でデータを送受信できる外部入出力装置300から構成される。
 また、計算端末100の内部は、処理プログラム(program)として学習操作部101、色推定DNN処理部102、および入力操作部104を有し、変数保持領域として色推定DNNパラメータDB(database(データベース))103をさらに有する。
 また、記録装置200は、例えば不揮発性メモリ(non-volatile memory)などの記憶装置を有し、この記憶装置は、学習用点群DB201を有する。
 図16は、第1の実施形態で用いられる色推定DNNの一例を示す図である。
 第1の実施形態で用いられる色推定DNNは、図1で示される構成に基づく、図16に示される構成をなす。図16に示されるDNNは、2048点の色付き入力点群と、2048点の色無し入力点群を入力として、2048点の色有を出力点群を出力する。
 位置情報だけに着目すると、色付き入力点群と、色無し入力点群は等価ではない一方で、色無し入力点群と色有り出力点群は等価な点群データとなる。ここで、等価とは、両点群の間で位置情報が全く同じ点のペアが、全ての点に対して一対であるという意味である。
 図16に示されるニューラルネットワークのMLP層、すなわちMLP1、MLP2、MLP3は図2に示された構成、SA層は図3に示された構成、FP層は図4に示された構成と同じものが用いられる。MLP1ではD=32であり、MLP2ではD=128でD´=256であり、MLP3ではD=32でD´=64である。 
 SA層では、kを除く変数Nと、Ndsと、Dと、Ddsは、図16に示されるニューラルネットワークにおけるSA層の入力により異なり、N=2048または512で、Nds=512または128で、D=32または64で、Dds=64または128で、k=16である。また、SA層のDown Samplingでは、上記Farthest Point Samplingが用いられる。 
 FP層も、変数Nds、Nup、Dds、およびDupは、入力Aと入力Bにおいて定まるため、図16に示されるFP層の位置により異なり、変数k=16である。
 図17は、の学習用点群DBのデータ保持例を示す図である。 
 記録装置200の学習用点群DB201では、点群データがファイル(file)として補完され、各点群データのファイルは1つの点が位置要素(X, Y, Z)と色要素(R, G, B)でなる6つの要素を有する、2560以上の点から構成される。また、各要素はMin-Max法により0~1の範囲に正規化済みであるとする。また、点群データのファイルの数は20の倍数であるとする。
 図18は、色推定DNNパラメータDBのデータ保持例を示す図である。 
 色推定DNNパラメータDB103には、色推定DNN処理部102内で用いられる、図16に示される色推定DNNの重みパラメータが保持され、各重みパラメータはSymbolとValueのペアで補完される。
 図19は、第1の実施形態に係る計算端末の学習操作部による処理動作の一例を示すフローチャートである。 
 計算端末100の学習操作部101は、まずS101-1の処理として、記録装置200の学習用点群DB201より、P個の点群ファイルデータを順次取得する。PはDNNのミニバッチ(mini batch)学習法において一度に実施される学習の数であり、本実施形態ではP=20とする。
 続いて、学習操作部101は、S101-2の処理では、S101-1で読み込んだ20個の点群データに対して、図14に示される手法に基づき、色有り入力点群、色無し入力点群、および色有り正解点群をそれぞれ生成する。
 色有り入力点群は、図14に示される「Data1」であり、本実施形態では、学習操作部101により、読み込んだ点群データからランダムサンプリングにより2560点が選定され、さらに2560点から1点がランダムに選定され、この1点に最も近い512点が取り除かれた2048点が用いられる。
 次に、色有正解点群は、図14に示される「Data2」であり、学習操作部101により、上記読み込んだ点群データからランダムサンプリングにより2048点が選定されることで生成される。最後に、色無し入力点群は、学習操作部101により、色有り正解点群の色情報(R、G、B)が取り除かれることで生成される。
 続いて、S101-3の処理では、学習操作部101は、S101-2で生成した、20個の色有入力点群、および色無入力点群を色推定DNN処理部102へ送出する。
 次に、S101-4の処理では、学習操作部101は、色推定DNN処理部102の出力となる20個の色有出力点群を受け取る。
 続いて、S101-5の処理では、学習操作部101は、S101-2で生成した、20個の色有り正解点群と、S101-4で受け取った色有り出力点群とから損失関数を計算する。 
 色有り正解点群をYiと定義し、色有り出力点群をXi(i = 1, 2, 3, …, 20)と定義すると、学習操作部101は、20個のデータのペアの全てに対する損失関数の値を、上記式(3)を用いて、以下の式(6)として計算することができる。
Figure JPOXMLDOC01-appb-M000012
 続いて、S101-6の処理では、学習操作部101は、S101-5で、上記式(6)により求めた損失関数の結果に基づいて、上記のADAMを用いて、色推定DNNパラメータDB103に保持される色推定DNNパラメータを更新する。ADAMで用いられるパラメータである学習率lrは0.01とする。
 最後に、S101-7では、学習操作部101は、色推定DNNパラメータS101-1で取得した20個のファイルで、学習用点群DB201にある全ファイルの取得が一巡したか否かを確認する。全ファイルが取得された場合は、学習操作部101は、学習回数をカウント(count)する。 
 S101-7における本カウントの回数が指定回数以上であれば、学習操作部101は、処理を終える。本実施形態における指定回数は100回とし、カウントの回数が100回以上の場合は、学習操作部101は、処理を終了し、カウントの回数が100回未満である、または全ファイルの取得が一巡していない場合には、学習操作部101は、S101-1に処理を戻す。
 図20は、第1の実施形態に係る計算端末の色推定DNN処理部における処理動作の一例を示すフローチャートである。 
 S102-1では、計算端末100の色推定DNN処理部102は、学習操作部101または入力操作部104から、どちらも2048個の点から構成される色有り入力点群および色無し入力点群を受信する。
 続いて、S102-2では、計算端末100の色推定DNN処理部102は、色推定DNNパラメータDB103より、図16で示された色推定DNNの全ての重みパラメータを参照する。
 続いて、S102-3では、色推定DNN処理部102は、S102-1で受信した色有り入力点群および色無し入力点群を、図16で示された色推定DNNに代入する。 
 また、色推定DNNには、色推定DNN処理部102は、S102-2で参照した重みパラメータを代入する。そして、色推定DNN処理部102は、入力データに基づく処理を順次行ない、2048個の点から構成される色有出力点群を出力する。
 最後に、S102-4では、色推定DNN処理部102は、S102-3で計算された色有り出力点群を、S102-1で受信したデータが学習操作部101からのものであれば当該学習操作部101へ、S102-1で受信したデータが入力操作部104からのものであれば当該入力操作部104へ送信する。
 図21は、第1の実施形態に係る計算端末の入力操作部の処理動作の一例を示すフローチャートである。 
 S104-1では、計算端末100の入力操作部104は、外部入出力装置300より、色有り入力点群および色無し入力点群を受信する。このとき、色有入力点群は2048個の点から構成される、位置情報および色情報を有する点群であり、色無し入力点群は、同じく2048個の点から構成される、位置情報のみを有する点群である。 
 外部入出力装置300は、計算端末100に対してデータの入出力が可能な別プログラムおよびファイルI/Oインタフェース(interface)などを備える。
 続いて、S104-2では、入力操作部104は、色推定DNN処理部102へ、S104-1で受信した色有り入力点群および色無し入力点群を送信する。
 次に、S104-3では、入力操作部104は、色推定DNN処理部102より、処理結果としての色有り出力点群を受信する。この色有り出力点群は、色推定DNN処理部102の仕組み上、色無し入力点群と同じ位置情報を有する2048個の点に、さらに色情報が追加されたものとなる。
 最後に、S104-4では、入力操作部104は、S104-3で受信した色有り出力点群を外部入出力装置300に送信して、処理を終了する。
 (第2の実施形態)
 次に、第2の実施形態について説明する。この実施形態ではPTF層あり、GANあり、非特許文献1に開示されるデータタイプに対応したDNNの例について説明する。
 図22は、第2の実施形態に係る画像処理システムの全体構成の一例を示すブロック図である。 
 第2の実施形態に係る画像処理システムは、第1の実施形態と同様に計算端末100、記録装置200、および外部入出力装置300から構成される。 
 また、計算端末100の内部においても、第1の実施形態と同様に、処理プログラムとして学習操作部101、色推定DNN処理部102、および入力操作部104を有し、第1の実施形態と比較して、さらに識別DNN処理部105が追加される。
 また、変数保持領域として、第1の実施形態と同様に、計算端末100は、色推定DNNパラメータDB103を有し、計算端末100は、第1の実施形態と比較して識別DNNパラメータDB106をさらに有する。また、記録装置200は、第1の実施形態と同様に、学習用点群DB201を有する。
 図23は、第2の実施形態で用いられる色推定DNNの一例を示す図である。
 第2の実施形態で用いられる色推定DNNは、図6に示される構成に基づく、図23に示される構成をなす。図23に示される色推定DNNは、2048点の色付き入力点群と、512点の色無し入力点群を入力として、512点の色有り出力点群を出力する。第1の実施形態とと同様に、図23に示された例についても、色付き入力点群と、色無し入力点群は等価ではない一方で、色無し入力点群と色有り出力点群は等価な点群データとなる。
 図23に示された例において、ニューラルネットワークのMLP層、すなわちMLP1、MLP2、およびMLP3は図2に示された構成、SA層は図3に示された構成、FP層は図5に示された構成と同じものが用いられる。MLP1ではD=32であり、MLP2ではD=128かつD´=256であり、MLP3ではD=32かつD´=64である。
 SA層では、kを除く変数Nと、Ndsと、Dと、Ddsは、図23に示されるニューラルネットワークにおけるSA層の入力により異なり、N=2048、512または128で、Nds=512、128または32で、D=32または64で、Dds=64または128で、k=16である。また、SA層のDown Samplingでは、上記Farthest Point Samplingが用いられる。
 同様にFP層も、変数Nds、Nup、Dds、およびDupは、入力Aと入力Bにより定まるため、図23に示されるFP層の位置により異なり、変数k=16である。
 また、PTF層は図7乃至9で分割して記載されたものと同様なものが用いられる。PTF層のNおよびDは、入力により定まるため、図23に示されたPTF層の位置によって異なる。また、第2の実施形態において、PTF層の変数はk=16、H=512とする。
 図24は、第2の実施形態で用いられる識別DNNの一例を示す図である。 
 第2の実施形態で用いられる識別DNNは、図12に示された構成に基づく、図24に示された構成が用いられる。図24に示された識別DNNは、2560点の色付きの点群を入力として、0以上1以下の推定結果を出力する。
 図24に示された例において、MLP層のMLP1は図2に示された構成が、MLP4は図11に示された構成と同じ構成が用いられる。MLP1ではD=32であり、MLP4ではD=128、D´=64、かつD´´=32である。
 SA層は、図3に示された構成と同じ構成が用いられる。このSA層では、kを除く変数N、Nds、D、およびDdsは、図12に示されたSA層の入力により異なり、N=2560または640で、Nds=640または160で、D=32または64で、Dds=64または128で、k=16である。また、SA層のDown Samplingでは、上記Farthest Point Samplingが用いられる。
 また、PTF層は、図7乃至9で分割して記載された構成と同様な構成が用いられ、PTF層のNおよびDは入力により定まるため、図24に示されたPTF層の位置によって異なる。また、第2の実施形態において、PTF層の変数はk=16、かつH=512とする。また、Maxpool層では、上記average global poolingが用いられる。
 第2の実施形態における学習用点群DB201でのデータ保持の構成は、第1の実施形態における図17で示された構成と同様である。 
 また、第2の実施形態における色推定DNNパラメータDB103でのデータ保持の構成は、第1の実施形態における図18で示された構成と同様である。 
 このDNNパラメータDB103では、色推定DNN処理部102内で用いられる、図23に示される色推定DNNの重みパラメータが保持され、各重みパラメータはSymbolとValueのペアで補完される。
 図25は、識別DNNパラメータのデータ保持の一例を示す図である。識別DNNパラメータDB106では、識別DNN処理部105内で用いられる、図24に示される識別DNNの重みパラメータが保持され、各重みパラメータはSymbolとValueのペアで補完される。
 図26は、第2の実施形態に係る計算端末の学習操作部による処理動作の一例を示すフローチャートである。 
 計算端末100の学習操作部101は、まずS101-1の処理として、記録装置200の学習用点群DB201より、P個の点群ファイルデータを取得する。PはDNNのミニバッチ学習法において一度に実施される学習の数であり、本実施形態ではP=20とする。
 続いて、学習操作部101は、S101-2の処理では、S101-1で読み込んだ20個の点群データに対して、図13に示される手法に基づき、色有り入力点群、色無し入力点群、および色有り正解点群をそれぞれ生成する。
 色有り入力点群は図13に示される「Data1」であり、本実施形態では、学習操作部101により、読み込んだ点群データからランダムサンプリングにより2560点が選定され(Npre=2560)、さらに、この2560点から1点がランダムに選定され、この1点に最も近い512点が取り除かれた2048点が用いられる(Npre-N´=2048)。
 次に、色有り正解点群は図13に示される「Data2」であり、前処理で取り除かれた512点が用いられる(N´=512)。最後に、色無し入力点群は図13に示される「Data3」であり、学習操作部101により、色有り正解点群の色情報(R, G, B)が取り除かれることで生成される。
 続いて、S101-3の処理では、学習操作部101は、S101-2で生成した、20個の色有り入力点群および色無し入力点群を色推定DNN処理部102へ送出する。
 次に、S101-4の処理では、学習操作部101は、色推定DNN処理部102の出力となる20個の色有り出力点群を受け取る。
 続いて、S101-5aの処理では、学習操作部101は、識別DNN処理部105へ、20個の色有り入力点群、色有り正解点群、および色有り出力データを送る。
 次に、S101-5bの処理では、識別DNN処理部105より、それぞれ0~1の値で表される、20個の正解点群に対する推定結果と、20個のフェイク(fake)点群に対する推定結果を受け取る。
 続いて、S101-5cの処理では、学習操作部101は、S101-2で生成した20個の色有り正解点群と、S101-4で受け取った20個の色有り出力点群と、S101-5bで受け取った、20個の正解点群に対する推定結果と、20個のフェイク点群に対する推定結果とから色推定DNNと識別DNNの損失関数を計算する。
 色推定DNNについて、色有り正解点群をYiと定義し、色有り出力点群をXiと定義し、正解点群に対する推定結果をTruei(i = 1, 2, 3, …, 20)と定義し、フェイク点群に対する推定結果をFakei(i = 1, 2, 3, …, 20)と定義すると、学習操作部101は、20個のデータのペアの全てに対する損失関数の値を、上記の式(5)を用いて、下記の式(7)により計算することができる。この式(7)における調整パラメータ変数λは、本実施形態では0.5と定義される。
Figure JPOXMLDOC01-appb-M000013
 また、識別DNNについて、正解点群に対する推定結果をTruei(i = 1, 2, 3, …, 20)と定義し、フェイク点群に対する推定結果をFakei(i = 1, 2, 3, …, 20)と定義すると、学習操作部101は、20個のデータのペアの全てに対する損失関数の値を、上記式(4)を用いて、下記の式(8)におより計算することができる。
Figure JPOXMLDOC01-appb-M000014
 続いて、S101-6aの処理では、学習操作部101は、S101-5cで、上記式(7)により求めた損失関数の結果に基づいて、上記のADAMを用いて、色推定DNNパラメータDB103に保持される色推定DNNパラメータを更新する。ADAMで用いられるパラメータである学習率lrは0.01とする。
 続いて、S101-6bの処理では、学習操作部101は、S101-5cで、上記式(8)で求めた損失関数の結果に基づいて、ADAMを用いて、識別DNNパラメータDB106に保持される識別DNNパラメータを更新する。ADAMで用いられるパラメータである学習率lrは0.01とする。
 最後に、S101-7では、学習操作部101は、S101-1で取得した20個のファイルで、学習用点群DB201にある全ファイルの取得が一巡したか否かを確認する。
 全ファイルが取得された場合は、学習操作部101は、学習回数をカウントする。S101-7における本カウントの回数が指定回数以上であれば、学習操作部101は、処理を終える。
 本実施形態における指定回数は100回とし、カウントの回数が100回以上の場合は、学習操作部101は、処理を終了し、カウントの回数が100回未満である、または全ファイルの取得が一巡していない場合には、学習操作部101は、S101-1に処理を戻す。
 第2の実施形態に係る色推定DNN処理部102における処理動作の手順は、第1の実施形態に係る図20で示した例と同様である。 
 ただし差異が2つあり、差異の1つ目は、S102-1で入力される色無し入力点群と、S102-3において計算された色有り出力点群の点の数が、第1の実施形態では2048であるが、第2の実施形態では512となる部分である。差異の2つ目は、第1の実施形態での色推定DNN処理部102は図16で示された色推定DNNを利用するが、第2の実施形態での色推定DNN処理部102は図23で示された色推定DNNを利用することである。
 第2の実施形態に係る入力操作部104の処理動作の手順は、第1の実施形態に係る図21で示された例と同様である。ただし、S104-1で入力される色無し入力点群と、S104-3で受信される色有り出力点群の点の個数が、第1の実施形態では2048個であるのに対し、第2の実施形態では512個であることが異なる。
 図27は、第2の実施形態に係る識別DNN処理部における処理動作の手順の一例を示すフローチャートである。 
 S105-1では、識別DNN処理部105は、学習操作部101より、色有り入力点群、色有り正解点群、および色有り出力点群を受信する。 
 S105-2では、識別DNN処理部105は、識別DNNパラメータDB106より、図24で示された識別DNNの全ての重みパラメータを参照する。
 S105-3では、識別DNN処理部105は、S105-1で受信した色有り入力点群(点数2048、各点の特徴量6)と、色有り正解点群(点数512、各点の特徴量6)とを結合して、正解点群(点数2560=2048+512、各点の特徴量6)を作成する。
 同様に、識別DNN処理部105は、色有り入力点群(点数2048、各点の特徴量6)と色有り出力点群(点数512、各点の特徴量6)とを結合してフェイク点群(点数2560=2048+512、各点の特徴量6)を作成する。
 S105-4では、識別DNN処理部105は、まず図24で示された識別DNNへ、S105-2で参照した重みパラメータを代入する。そして、識別DNN処理部105は、S105-3で作成した正解点群を入力して、0~1の数値で示される正解点群の推定結果を計算する。 
 次に、識別DNN処理部105は、S105-3で作成したフェイク点群を入力して、0~1の数値で示されるフェイク点群の推定結果を計算する。
 最後に、S105-5では、識別DNN処理部105は、S105-4で計算された正解点群の推定結果と、フェイク点群の推定結果の2つを学習操作部101へ送信する。送信を終えたら、識別DNN処理部105は、処理を終了する。
 図28は、本発明の一実施形態に係る画像処理システムの計算端末のハードウエア構成の一例を示すブロック図である。 
 図28に示された例では、上記の実施形態に係る画像処理システムの計算端末100は、例えばサーバコンピュータ(server computer)またはパーソナルコンピュータ(personal computer)により構成され、CPU等のハードウエアプロセッサ(hardware processor)111Aを有する。そして、このハードウエアプロセッサ111Aに対し、プログラムメモリ(program memory)111B、データメモリ(data memory)112、入出力インタフェース113及び通信インタフェース114が、バス(bus)115を介して接続される。上記画像処理システムの記録装置200および外部入出力装置300も同様である。
 通信インタフェース114は、例えば1つ以上の無線の通信インタフェースユニットを含んでおり、通信ネットワーク(network)NWとの間で情報の送受信を可能にする。無線インタフェースとしては、例えば無線LAN(Local Area Network)などの小電力無線データ通信規格が採用されたインタフェースが使用される。
 入出力インタフェース113には、計算端末100に付設される、利用者などにより用いられる入力デバイス(device)500および出力デバイス600が接続される。 
 入出力インタフェース113は、キーボード(keyboard)、タッチパネル(touch panel)、タッチパッド(touchpad)、マウス(mouse)等の入力デバイス500を通じて利用者などにより入力された操作データを取り込むとともに、出力データを液晶または有機EL(Electro Luminescence)等が用いられた表示デバイスを含む出力デバイス600へ出力して表示させる処理を行なう。なお、入力デバイス500および出力デバイス600には、計算端末100に内蔵されたデバイスが使用されてもよく、また、ネットワークNWを介して計算端末100と通信可能である他の情報端末の入力デバイスおよび出力デバイスが使用されてもよい。
 プログラムメモリ111Bは、非一時的な有形の記憶媒体として、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとが組み合わせて使用されたもので、一実施形態に係る各種制御処理等を実行する為に必要なプログラムが格納されている。
 データメモリ112は、有形の記憶媒体として、例えば、上記の不揮発性メモリと、RAM等の揮発性メモリ(volatile memory)とが組み合わせて使用されたもので、各種処理が行なわれる過程で取得および作成された各種データが記憶される為に用いられる。
 本発明の一実施形態に係る計算端末100は、ソフトウエア(software)による処理機能部として、図1に示される各部を有するデータ処理装置として構成され得る。
 計算端末100の各部によるワークメモリ(working memory)などとして用いられる各情報記憶部および各DBは、図28に示されたデータメモリ112が用いられることで構成され得る。ただし、これらの構成される記憶領域は計算端末100内に必須の構成ではなく、例えば、USB(Universal Serial Bus)メモリなどの外付け記憶媒体、又はクラウド(cloud)に配置されたデータベースサーバ(database server)等の記憶装置に設けられた領域であってもよい。
 上記の計算端末100の各部における処理機能部は、いずれも、プログラムメモリ111Bに格納されたプログラムを上記ハードウエアプロセッサ111Aにより読み出させて実行させることにより実現され得る。なお、これらの処理機能部の一部または全部は、特定用途向け集積回路(ASIC(Application Specific Integrated Circuit))またはFPGA(Field-Programmable Gate Array)などの集積回路を含む、他の多様な形式によって実現されてもよい。
 また、各実施形態に記載された手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウエア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク(Floppy disk)、ハードディスク(hard disk)等)、光ディスク(optical disc)(CD-ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ(Flash memory)等)等の記録媒体に格納し、また通信媒体により伝送して頒布され得る。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段(実行プログラムのみならずテーブル(table)、データ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
 なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
  100…計算端末
  101…学習操作部
  102…色推定DNN処理部
  103…色推定DNNパラメータDB
  104…入力操作部
  105…識別DNN処理部
  106…識別DNNパラメータDB
  200…記録装置
  201…学習用点群DB
  300…外部入出力装置

Claims (7)

  1.  色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得する取得部と、
     前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データにおける色情報が推定された点群データを出力する推定処理部と、
     を備える画像処理装置。
  2.  前記ニューラルネットワークは、
      前記第1の点群データを表すテンソルに要素数のベクトルを追加し、前記追加された結果における点群データの数を圧縮し、前記第2の点群データを表すテンソルに要素数のベクトルを追加し、当該追加された結果における点群データの数を圧縮し、前記第1の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第2の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果を同じ数の点群データ同士で結合し、第1の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第1の数より大きい第2の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果を結合した結果に基づいて、前記第1の点群データについて色情報が推定された点群データを出力する、
     請求項1に記載の画像処理装置。
  3.  色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得する取得部と、
     前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力する推定処理部と、
    を備え、
     前記ニューラルネットワークは、
      前記第1の点群データを表すテンソルに要素数のベクトルを追加し、前記追加された結果における点群データの数を圧縮し、前記第2の点群データを表すテンソルに要素数のベクトルを追加し、当該追加された結果における点群データの数を圧縮し、前記第1の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第2の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果を同じ数の点群データ同士で結合し、第1の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第1の数より大きい第2の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果を結合した結果に基づいて、前記第1の点群データについて色情報が推定された点群データを出力し、
     色情報を有する点群データを取得し、前記点群データに基づいて、色情報を有する点群データである正解データ、色情報を有しない点群データ、および色情報を有する点群データにおける一部分が除かれた点群データを生成し、前記生成した、前記色情報を有しない点群データおよび、前記色情報を有する点群データにおける一部分が除かれた点群データを前記ニューラルネットワークに入力することで出力された、色情報が推定された前記一部分のデータを取得し、この取得されたデータおよび前記正解データに基づいて前記ニューラルネットワークに係る損失関数を計算し、前記計算した損失関数に基づいて、前記ニューラルネットワークのパラメータを更新するパラメータ更新部を備える、
     画像処理装置。
  4.  前記パラメータ更新部は、
      前記生成された色情報を有しない点群データ、前記正解データ、および前記一部分が除かれた点群データを、入力されたデータが前記正解データであるときに第1のスカラー値を出力し、前記入力されたデータが、前記色情報が推定された前記一部分のデータであるときに第2のスカラー値を出力する第2のニューラルネットワークに入力することで出力された値に基づいて、前記第2のニューラルネットワークに係る損失関数を計算し、
      前記計算した損失関数に基づいて、前記第2のニューラルネットワークのパラメータを更新する、
     請求項3に記載の画像処理装置。
  5.  画像処理装置により行なわれる方法であって、
     前記画像処理装置の取得部により、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得し、
     前記画像処理装置の推定処理部により、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力する、
     画像処理方法。
  6.  画像処理装置により行なわれる方法であって、
     前記画像処理装置の取得部により、色情報を有しない第1の点群データおよび前記第1の点群データの近傍に位置して色情報を有する第2の点群データを取得し、
     前記画像処理装置の推定処理部により、前記取得部により取得された前記第1および第2の点群データをニューラルネットワークに入力することで、前記第1の点群データについて色情報が推定された点群データを出力し、
     前記ニューラルネットワークは、
      前記第1の点群データを表すテンソルに要素数のベクトルを追加し、前記追加された結果における点群データの数を圧縮し、前記第2の点群データを表すテンソルに要素数のベクトルを追加し、当該追加された結果における点群データの数を圧縮し、前記第1の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第2の点群データを表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果を同じ数の点群データ同士で結合し、第1の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果における点群データの数を圧縮した結果に、前記第1の数より大きい第2の数の前記第1の点群データの表すテンソルに要素数のベクトルを追加した結果を結合した結果に基づいて、前記第1の点群データについて色情報が推定された点群データを出力し、
     前記画像処理装置のパラメータ更新部により、色情報を有する点群データを取得し、前記点群データに基づいて、色情報を有する点群データである正解データ、色情報を有しない点群データ、および色情報を有する点群データにおける一部分が除かれた点群データを生成し、前記生成した、前記色情報を有しない点群データおよび、前記色情報を有する点群データにおける一部分が除かれた点群データを前記ニューラルネットワークに入力することで出力された、色情報が推定された前記一部分のデータを取得し、この取得されたデータおよび前記正解データに基づいて前記ニューラルネットワークに係る損失関数を計算し、前記計算した損失関数に基づいて、前記ニューラルネットワークのパラメータを更新する、
     画像処理方法。
  7.  請求項1乃至4のいずれか1項に記載の画像処理装置の前記各部としてプロセッサを機能させる画像処理プログラム。
PCT/JP2022/029700 2022-08-02 2022-08-02 画像処理装置、方法およびプログラム WO2024028988A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/029700 WO2024028988A1 (ja) 2022-08-02 2022-08-02 画像処理装置、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/029700 WO2024028988A1 (ja) 2022-08-02 2022-08-02 画像処理装置、方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2024028988A1 true WO2024028988A1 (ja) 2024-02-08

Family

ID=89848716

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/029700 WO2024028988A1 (ja) 2022-08-02 2022-08-02 画像処理装置、方法およびプログラム

Country Status (1)

Country Link
WO (1) WO2024028988A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535466A (ja) * 2018-08-23 2021-12-16 株式会社ソニー・インタラクティブエンタテインメント シーンの色及び深度の情報を再構成するための方法及びシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535466A (ja) * 2018-08-23 2021-12-16 株式会社ソニー・インタラクティブエンタテインメント シーンの色及び深度の情報を再構成するための方法及びシステム

Similar Documents

Publication Publication Date Title
CN109118564B (zh) 一种基于融合体素的三维点云标记方法和装置
JP7315748B2 (ja) データ識別器訓練方法、データ識別器訓練装置、プログラム及び訓練方法
JP6441980B2 (ja) 教師画像を生成する方法、コンピュータおよびプログラム
CN113039563B (zh) 学习生成用于训练神经网络的合成数据集
US10467820B2 (en) Image style transfer for three-dimensional models
AU2017248506A1 (en) Implementation of an advanced image formation process as a network layer and its applications
US10818080B2 (en) Piecewise-polynomial coupling layers for warp-predicting neural networks
WO2015062209A1 (zh) 随机森林分类模型的可视化优化处理方法及装置
CN104077303B (zh) 用于呈现数据的方法和装置
CN109712165A (zh) 一种基于卷积神经网络的同类前景图像集分割方法
US20230267686A1 (en) Subdividing a three-dimensional mesh utilizing a neural network
WO2019146189A1 (ja) ニューラルネットワークのランク最適化装置および最適化方法
US20220114289A1 (en) Computer architecture for generating digital asset representing footwear
US20150077417A1 (en) Methods and Software for Volume-Centric Shape Abstraction and Simplification of a 3D Digital Model
JP2007249354A (ja) 指標推計装置、指標推計方法、及び指標推計プログラム
CN116933141B (zh) 一种基于多核图学习的多光谱激光雷达点云分类方法
WO2024028988A1 (ja) 画像処理装置、方法およびプログラム
KR20220004933A (ko) 비단사적 변환을 포함하는 이미지 분류기
JP6773412B2 (ja) コロプレスマップの設計
KR102491025B1 (ko) 학습용 데이터셋을 생성하기 위한 방법
Muñoz et al. Manifold learning for coherent design interpolation based on geometrical and topological descriptors
KR20230062462A (ko) 레퍼런스 이미지의 검증을 통해 자연스러운 3차원 디지털 트윈을 생성하기 위한 방법 및 장치
CN113761797A (zh) 一种基于计算机视觉的无线信道路径损耗模型预测方法
CN114782684B (zh) 点云语义分割方法、装置、电子设备与存储介质
CN111126310A (zh) 一种基于场景迁移的行人性别识别方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22953977

Country of ref document: EP

Kind code of ref document: A1