Data processing apparatus, data processing method, and program

The data processing apparatus efficiently generates simplified point clouds and meshes by simplifying volume data into larger regions and identifying boundaries, addressing speed and shape deterioration issues in existing methods.

JP7710885B2Active Publication Date: 2025-07-22CANON KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021077450
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-30
Publication Date
2025-07-22
Estimated Expiration
2041-04-30

AI Technical Summary

Technical Problem

Existing methods for generating simplified meshes or point clouds from object shapes face challenges in processing speed and shape deterioration, particularly when reducing vertex numbers, whether from three-dimensional volume data or two-dimensional map data.

Method used

A data processing apparatus that acquires and simplifies volume data into larger unit regions, identifies boundaries, and generates point groups or meshes based on these regions and their boundaries, associating them to create a simplified point cloud or mesh with suppressed shape deterioration.

Benefits of technology

Enables high-speed generation of simplified point clouds or meshes with reduced vertex numbers while maintaining shape integrity, applicable to both three-dimensional volume and two-dimensional map data representations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007710885000001
    Figure 0007710885000001
  • Figure 0007710885000002
    Figure 0007710885000002
  • Figure 0007710885000003
    Figure 0007710885000003
Patent Text Reader

Abstract

To generate a simplified point cloud corresponding to a shape of an object, while suppressing deterioration of the shape, at a high speed.SOLUTION: Acquisition means acquires a base volume representing a three-dimensional shape of an object using a plurality of base voxels. First generation means generates a macro volume representing a three-dimensional shape of the object using multiple macro voxels larger in size than the base voxels, on the basis of the base volume. Base specifying means specifies a base voxel corresponding to a surface of the object, based on the base volume, Macro specifying means specifies multiple boundary surfaces which are boundaries of adjacent macro voxels and corresponding to the surface of the object, on the basis of the macro volume. Second generation means generates a point cloud corresponding to the surface of the object, based on the base voxel specified by the base specifying means and the boundary surfaces specified by the macro specifying means.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a data processing technique for generating a point cloud corresponding to the shape of an object from data indicating the shape of the object.

Background Art

[0002] When generating a mesh corresponding to the surface of an object, there is a technique for reducing the number of vertices of the mesh. Patent Document 1 discloses a technique for sequentially reducing the vertices of a mesh while suppressing the shape deterioration of the mesh by reducing the total number of edges so that the amount of deformation of the mesh when the edges of the mesh are removed is reduced. Here, an edge is a combination of two common vertices constituting adjacent polygons. Further, as a technique for simply reducing the number of vertices of a mesh, a technique of generating a low-resolution volume with a reduced volume resolution and generating a mesh from the generated low-resolution volume is generally known.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] The method disclosed in Patent Document 1 can suppress the shape deterioration of the mesh, but since the processing load when evaluating the deformation amount of the mesh is high, there is a problem that a mesh with a reduced number of vertices (hereinafter referred to as "simplified mesh") cannot be generated at high speed. On the other hand, the method of generating a mesh from a low-resolution volume has a problem that, compared with the method disclosed in Patent Document 1, a simplified mesh can be generated at high speed, but the shape of the generated simplified mesh deteriorates. Note that the above problems are not limited to the case of generating a simplified mesh from volume data representing the three-dimensional shape of an object, but are the same even when specifying a polygon representing the contour of an object from two-dimensional map data such as a silhouette image representing the two-dimensional shape of the object.

[0005] The present disclosure is for solving such problems, and enables high-speed generation of a point group corresponding to the shape of an object and simplified to suppress shape deterioration.

Means for Solving the Problems

[0006] The data processing apparatus according to the present disclosure includes an acquisition unit that acquires first information representing the shape of an object by a plurality of first unit regions, a first generation unit that generates second information representing the shape of the object by a plurality of second unit regions having a larger size than the first unit regions based on the first information, a first specification unit that specifies a plurality of first unit regions corresponding to the outer shape of the object based on the first information, a second specification unit that specifies a plurality of boundaries that are boundaries between adjacent second unit regions and correspond to the outer shape of the object based on the second information, and a second generation unit that generates a point group corresponding to the outer shape of the object based on the first unit regions specified by the first specification unit and the boundaries specified by the second specification unit. Then, based on the first information and the second information, the first specifying means associates each of the plurality of first unit regions specified by the first specifying means with the second unit region including the position of the first unit region or the second unit region at the position closest to the position of the first unit region. The second generating means generates, for each second unit region, a point group corresponding to the outer shape of the object based on the first unit regions associated with the second unit region among the first unit regions specified by the first specifying means and the boundary corresponding to the second unit region specified by the second specifying means. When the first specifying means associates the first unit region with the second unit region at the position closest to the position of the first unit region, if there are a plurality of second unit regions at the position closest to the position of the first unit region, the first specifying means associates the first unit region with all of the second unit regions at the position closest to the position of the first unit region It has.

Effects of the Invention

[0007] According to the present disclosure, a point group corresponding to the shape of an object and simplified to suppress shape deterioration can be generated at high speed.

Brief Description of Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Embodiments for Carrying Out the Invention

[0009] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Note that the configurations shown in the following embodiments are merely examples, and the scope of the present disclosure is not limited only to those configurations.

[0010] [First Embodiment] Referring to FIGS. 1 to 7, the data processing apparatus 100 according to the first embodiment will be described. With reference to FIG. 1, the configuration of the data processing apparatus 100 according to the first embodiment will be described. FIG. 1 is a block diagram showing an example of the configuration of the data processing apparatus 100 according to the first embodiment. The data processing apparatus 100 includes an acquisition unit 110, a simplification unit 120, a macro identification unit 130, a base identification unit 140, a generation unit 150, and an output unit 160.

[0011] In the first embodiment, as an example, a case where the data processing apparatus 100 acquires volume data representing the three-dimensional shape of an object and outputs a surface point cloud corresponding to the surface shape of the object will be described. The data processing apparatus 100 may acquire two-dimensional map data representing the two-dimensional shape of an object and output a point cloud corresponding to the contour shape of the object. The form in which the data processing apparatus 100 acquires two-dimensional map data representing the two-dimensional shape of an object and outputs a point cloud corresponding to the contour shape of the object is a reduction from three dimensions to two dimensions, and thus the description thereof will be omitted.

[0012] In the first embodiment, an object, a volume, a voxel, a point, a point cloud, a polygon, and a mesh are defined as follows. An object is a three-dimensional shaped object. A volume is one of the forms for expressing the three-dimensional shape of an object. Specifically, a volume sets an outer circumscribed rectangle (hereinafter also referred to as a "bounding box") in three-dimensional space, divides its interior into a grid-like region (hereinafter referred to as a "grid"), and assigns values to each grid. A voxel is each grid that constitutes a volume. A voxel holds a voxel value of a scalar value or a vector value. The voxel value can take a binary value, a multi-value, or a continuous value. In particular, when the voxel value is binary, in the present disclosure, a voxel with a voxel value of 1 is called an ON voxel, and a voxel with a voxel value of 0 is called an OFF voxel.

[0013] A point can be represented by one coordinate in three-dimensional space. A point group is one of the forms for representing the three-dimensional shape of an object. Specifically, a point group is a set of points composed of one or more points, and is a representation form in which the position of each point is represented by coordinates. A polygon is a polygonal surface defined by three or more points. A mesh is one of the forms for representing the three-dimensional shape of an object. Specifically, a mesh is a representation form of a three-dimensional shape by a polyhedron composed of a set of multiple polygons. In the present disclosure, as an example, it is assumed that the polygon is a triangular polygon having a triangular surface defined by three points, and the mesh is composed of a plurality of triangular polygons.

[0014] The acquisition unit 110 acquires first information representing the shape of the object by a plurality of first unit regions. Specifically, the acquisition unit 110 acquires a volume (hereinafter referred to as "base volume") representing the three-dimensional shape of the object by a plurality of voxels (hereinafter referred to as "base voxels"). That is, in the first embodiment, the first unit region is a base voxel, and the first information representing the shape of the object is a base volume representing the three-dimensional shape of the object. The acquisition unit 110 outputs the acquired base volume to the simplification unit 120 and the base specification unit 140.

[0015] The simplification unit 120 simplifies the first information and generates second information representing the shape of the object by a plurality of second unit regions larger in size than the first unit region. Specifically, upon receiving the base volume output by the acquisition unit 110, the simplification unit 120 simplifies the base volume. By simplifying the base volume, the simplification unit 120 generates a volume (hereinafter referred to as a "macro volume") representing the three-dimensional shape of the object by a plurality of voxels (hereinafter referred to as "macro voxels") larger in size than the base voxels. That is, in the first embodiment, the second unit region is a macro voxel, and the second information representing the shape of the object is a macro volume representing the three-dimensional shape of the object. For example, when generating a macro volume by simplifying the base volume, the simplification unit 120 simplifies it according to a predetermined simplification ratio. The simplification ratio may be pre-held by the simplification unit 120 or acquired by the acquisition unit 110.

[0016] Referring to FIG. 2, the base voxels and macro voxels will be described. FIG. 2(a) is an explanatory diagram showing an example of the configuration of the base volume 201 acquired by the acquisition unit 110. The base volume 201 shown in FIG. 2(a) is, as an example, composed of 64 base voxels arranged in 4 each in the X-axis direction, Y-axis direction, and Z-axis direction. The outer shape of the base volume 201 including the 64 base voxels is the bounding box of the base volume 201. Each base voxel holds a voxel value indicating whether a part or all of the base voxel belongs to an object. Among the base voxels constituting the base volume 201, some are ON voxels where a part or all of the base voxel belongs to an object. The remainder are OFF voxels where none of the parts of the base voxel belong to an object, or the entire base voxel does not belong to an object. FIG. 2(b) is an explanatory diagram showing an example of the configuration of the macro volume 202 obtained by simplifying the base volume 201 by the simplification unit 120. The simplification unit 120 simplifies, for example, 8 base voxels arranged in 2 each in the X-axis direction, Y-axis direction, and Z-axis direction in the base volume 201 into 1 macro voxel. Thereby, the simplification unit 120 generates a macro volume 202 composed of 8 macro voxels arranged in 2 each in the X-axis direction, Y-axis direction, and Z-axis direction. In this case, the simplification ratio in the simplification unit 120 is 2.

[0017] Further, the simplification unit 120 determines, for each macro cell, whether there is an ON cell among the eight base cells corresponding to the macro cell. As a result of the determination, for a macro cell in which there is at least one ON cell among the eight base cells, the simplification unit 120 sets the cell value of the macro cell to 1 to make it an ON cell. Also, as a result of the determination, for a macro cell in which there is no ON cell among the eight base cells, the simplification unit 120 sets the cell value of the macro cell to 0 to make it an OFF cell. The simplification unit 120 may determine whether to make a macro cell an ON cell or an OFF cell by comparing the number or ratio of ON cells among the eight base cells corresponding to the macro cell with a predetermined threshold value. Note that the threshold value may be, for example, one held in advance by the simplification unit 120 or one acquired by the acquisition unit 110.

[0018] Based on the second information, the macro identification unit 130 identifies a plurality of boundaries that are boundaries between adjacent second unit regions and correspond to the outer shape of the object. Specifically, the macro identification unit 130 identifies a plurality of boundary surfaces (hereinafter referred to as "surface boundary surfaces") that are boundary surfaces between adjacent macro cells and correspond to the surface of the object based on the macro volume. Note that the boundary surfaces between adjacent macro cells include, in addition to the contact surfaces between adjacent macro cells, the contact surfaces between the macro cells and the bounding box that is the outer shape of the macro volume. Specifically, for example, the macro identification unit 130 identifies the contact surface between the bounding box or a macro cell of an OFF cell and a macro cell of an ON cell as a surface boundary surface.

[0019] In addition, for each of the surface boundary surfaces, the macro identification unit 130 identifies the positions of points belonging to the surface boundary surface (hereinafter referred to as "surface voxel boundaries"). Specifically, for example, the macro identification unit 130 identifies, as the positions of the surface voxel boundaries, points belonging to the boundary surface that characterizes the surface boundary surface and that are predetermined positions on the surface boundary surface, such as the center point of the surface boundary surface. The macro identification unit 130 may identify the positions of the surface voxel boundaries by the following method. First, the macro identification unit 130 sets, for each position of the vertex of the macro voxel, a virtual voxel having as vertices predetermined points belonging to each of eight macro voxels in which one of the plurality of vertices defining the macro voxel exists at the same position. Next, the macro identification unit 130 identifies a point group or a surface corresponding to the surface of the object inside each virtual voxel based on the voxel values of the eight macro voxels described above. Further, the macro identification unit 130 identifies the positions of the surface voxel boundaries based on the point group or the surface inside the identified virtual voxel. The method of identifying a point group or a surface corresponding to the surface of the object inside the virtual voxel is, for example, the same as part of the processing of the well-known Marching cubes method (hereinafter referred to as the "MC method"), and thus the description thereof is omitted.

[0020] FIG. 2(b) shows, as an example, two adjacent macro voxels 203 and 204 cut out from the macro volume 202. In the combination of the macro voxel 203 and the macro voxel 204, there are 11 boundary surfaces and points corresponding to each boundary surface (hereinafter referred to as "voxel boundaries"). For example, the macro identification unit 130 assigns different indexes (hereinafter referred to as "boundary indexes") to each voxel boundary in order to identify the voxel boundaries corresponding to the respective boundary surfaces. In addition, the macro identification unit 130 generates information (hereinafter referred to as "surface information") in which the boundary index is associated with information indicating whether the boundary surface corresponding to each boundary index is a surface boundary surface or information indicating the position of the surface voxel boundary.

[0021] Based on the first information, the base specifying unit 140 specifies a plurality of first unit regions corresponding to the outer shape of the object. Specifically, the base specifying unit 140 specifies a plurality of base voxels (hereinafter referred to as "surface base voxels") corresponding to the surface of the object based on the base volume. Specifically, for example, the base specifying unit 140 specifies the base voxels of the ON voxels adjacent to the base voxels of the OFF voxels as the surface base voxels.

[0022] Further, for each surface base voxel, the base specifying unit 140 specifies a point belonging to the surface base voxel (hereinafter referred to as "base boundary point"). Specifically, for example, the base specifying unit 140 specifies a predetermined position inside the surface base voxel, such as the center point of the surface base voxel, as the position of the base boundary point. The base specifying unit 140 may specify a predetermined position on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel as the position of the base boundary point. Further, the base specifying unit 140 may specify the position of the base boundary point by the following method. First, the base specifying unit 140 sets a virtual voxel having, as vertices, predetermined points belonging to each of the eight base voxels in which one of the plurality of vertices defining the base voxel exists at the same position, for each position of the vertex of the base voxel. Next, the base specifying unit 140 specifies a point group or a surface corresponding to the surface of the object inside each virtual voxel based on the voxel values of the eight base voxels described above. Further, the base specifying unit 140 specifies the position of the base boundary point based on the point group or the surface inside the specified virtual voxel. The method of specifying a point group or a surface corresponding to the surface of the object inside the virtual voxel is, for example, the same as a part of the processing of a well-known method called the Marching cubes method (hereinafter referred to as "MC method"), and thus the description thereof is omitted. Hereinafter, in the first embodiment, the base specifying unit 140 will be described as specifying the position of the center point of the surface base voxel as the position of the base boundary point. Note that the method in which the base specifying unit 140 specifies a predetermined position on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel as the position of the base boundary point will be described in the second embodiment.

[0023] Furthermore, for each surface boundary surface, the base identification unit 140 identifies a macro voxel (hereinafter referred to as "surface macro voxel") that exists on the object side among the two macro voxels separated by the surface boundary surface, and associates the surface boundary surface with the surface macro voxel. Next, for each surface macro voxel, the base identification unit 140 calculates a feature amount indicating the distribution at the positions of all base boundary points corresponding to one or more surface base voxels among the plurality of base voxels corresponding to the surface macro voxel. Hereinafter, the feature amount indicating the distribution of the positions of the base boundary points calculated by the base identification unit 140 will be described as a base feature amount. Here, the base feature amount is a statistical value at the positions of all base boundary points corresponding to one or more surface base voxels among the plurality of base voxels corresponding to the surface macro voxel. Also, the statistical value at the positions of all base boundary points is at least one of the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness at the positions of all base boundary points.

[0024] Note that the size of the macro voxel may be an integer multiple of the size of the base voxel or a non-integer multiple (hereinafter referred to as "non-integer multiple") of the size of the base voxel. When the size of the macro voxel is an integer multiple of the size of the base voxel, each of the positions of all the base voxels will be included in one of the macro voxels. Therefore, in this case, the base identification unit 140 associates the surface base voxel with the macro voxel including the position of the surface base voxel. On the other hand, when the size of the macro voxel is a non-integer multiple of the size of the base voxel, there may be a base voxel whose position is not included in the macro voxel. In this case, the base identification unit 140 associates the surface base voxel with the macro voxel as follows.

[0025] For example, when the position of the surface base voxel is included in the macro voxel where the surface base voxel is located, the base specifying unit 140 associates the surface base voxel with the macro voxel. Further, when the position of the surface base voxel is not included in any macro voxel, the base specifying unit 140 associates the surface base voxel with the macro voxel that is closest to the position of the surface base voxel. Also, in such a case, when there are a plurality of macro voxels that are closest to the position of the surface base voxel, for example, the base specifying unit 140 associates the surface base voxel with all of the macro voxels that are closest. In such a case, the base specifying unit 140 may associate the surface base voxel with the macro voxel among the plurality of macro voxels that are closest to the position of the surface base voxel and in which the number of surface base voxels to be associated is the smallest. The association between the surface base voxel and the macro voxel in the base specifying unit 140 may be performed according to a predetermined association condition. FIG. 10(a) is an explanatory diagram showing an example of the association between the surface base voxel and the macro voxel when the size of the macro voxel is an integer multiple (2 times) of the size of the base voxel. FIG. 10(b) is an explanatory diagram showing an example of the association between the surface base voxel and the macro voxel when the size of the macro voxel is a non-integer multiple (1.5 times) of the size of the base voxel.

[0026] The generation unit 150 generates a simplified point cloud corresponding to the outer shape of the object based on the first unit region specified by the base specification unit 140 and the boundary specified by the macro specification unit 130. Specifically, the generation unit 150 generates a simplified point cloud (hereinafter referred to as "surface point cloud") corresponding to the surface of the object based on the surface base voxel specified by the base specification unit 140 and the surface boundary surface specified by the macro specification unit 130. For example, the generation unit 150 first associates each of the surface boundary surfaces specified by the macro specification unit 130 with the macro voxel existing on the object side (hereinafter referred to as "surface macro voxel") among the two macro voxels separated by the surface boundary surface. Next, the generation unit 150 generates a simplified surface point cloud by calculating the position of the point corresponding to the surface of the object for each surface macro voxel.

[0027] Specifically, the generation unit 150 generates a simplified surface point cloud based on the positions of the base boundary points specified by the base specification unit 140 and the positions of the surface voxel boundaries specified by the macro specification unit 130. For example, the generation unit 150 generates a simplified surface point cloud by performing the following processes. First, the generation unit 150 specifies the macro voxel (surface macro voxel) existing on the object side among the two macro voxels separated by the surface boundary surface for each surface boundary surface, and associates the surface boundary surface with the surface macro voxel. Next, for each surface macro voxel, the generation unit 150 calculates a feature amount (hereinafter referred to as "voxel boundary feature amount") indicating the distribution at the positions of all surface voxel boundaries corresponding to one or more surface boundary surfaces associated with the surface macro voxel based on the surface information. Here, the voxel boundary feature amount is a statistical value at the positions of all surface voxel boundaries corresponding to one or more surface boundary surfaces associated with the surface macro voxel. Also, the statistical value at the positions of all surface voxel boundaries is at least one of the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness at the positions of all surface voxel boundaries. Further, for each surface macro voxel, the generation unit 150 generates a simplified surface point cloud by calculating the positions of the points corresponding to the surface of the object based on the base feature amount and the voxel boundary feature amount corresponding to the surface macro voxel.

[0028] The output unit 160 outputs information indicating the simplified surface point cloud generated by the generation unit 150. In the description so far, the voxel boundary feature amount has been described as being calculated by the macro specification unit 130, but it may also be calculated by the generation unit 150. Similarly, in the description so far, the base feature amount has been described as being calculated by the base specification unit 140, but it may also be calculated by the generation unit 150.

[0029] The processing of each part included in the data processing device 100 is performed by hardware such as an ASIC (Application Specific Integrated Circuit) built into the data processing device 100. The processing of each part included in the data processing device 100 may be performed by hardware such as an FPGA (Field Programmable Gate Array) built into the data processing device 100. Further, the processing may be performed by software using a CPU (Central Processor Unit) or GPU (Graphic Processor Unit) and a memory.

[0030] Referring to FIG. 3, the hardware configuration of the data processing device 100 when each part included in the data processing device 100 operates as software will be described. FIG. 3 is a block diagram showing an example of the hardware configuration of the data processing device 100 according to the first embodiment. The data processing device 100 is configured by a computer, and the computer has a CPU 311, a ROM 312, a RAM 313, an auxiliary storage device 314, a display unit 315, an operation unit 316, a communication unit 317, and a bus 318 as shown as an example in FIG. 3.

[0031] The CPU 311 controls the computer by using a program or data stored in the ROM 312 or the RAM 313, thereby causing the computer to function as each part included in the data processing device 100 shown in FIG. 1. Note that the data processing device 100 has one or more dedicated hardware different from the CPU 311, and at least a part of the processing by the CPU 311 may be executed by the dedicated hardware. Examples of the dedicated hardware include an ASIC, an FPGA, and a DSP (Digital Signal Processor). The ROM 312 stores programs and the like that do not require modification. The RAM 313 temporarily stores a program or data supplied from the auxiliary storage device 314 or data supplied from the outside via the communication unit 317. The auxiliary storage device 314 is configured by, for example, a hard disk drive and stores various data such as image data or audio data.

[0032] The display unit 315 is composed of, for example, a liquid crystal display or an LED, etc., and displays a GUI (Graphical User Interface) or the like for the user to operate or view the data processing device 100. The operation unit 316 is composed of, for example, a keyboard, a mouse, or a touch panel, etc., and receives the user's operation and inputs various instructions to the CPU 311. The CPU 311 also operates as a display control unit that controls the display unit 315 and an operation control unit that controls the operation unit 316.

[0033] The communication unit 317 is used for communication with a device external to the data processing device 100. For example, when the data processing device 100 is wired-connected to an external device, a communication cable is connected to the communication unit 317. When the data processing device 100 has a function of wireless communication with an external device, the communication unit 317 includes an antenna. The bus 318 connects each part provided in the data processing device 100 and transmits information. In the first embodiment, the display unit 315 and the operation unit 316 are described as existing inside the data processing device 100, but at least one of the display unit 315 and the operation unit 316 may exist outside the data processing device 100 as another device.

[0034] With reference to FIGS. 4 and 5, the operation of the data processing device 100 will be described in detail. FIG. 4 is a flowchart showing an example of the processing flow of the data processing device 100 according to the first embodiment. FIG. 5 is an explanatory diagram for explaining the processing of the flowchart shown in FIG. 4.

[0035] First, in S401, the acquisition unit 110 acquires the base volume. The base volume 501 shown in FIG. 5 shows, as an example, a cross-section when the base volume acquired by the acquisition unit 110 is cut by a plane orthogonal to the X-axis direction, the Y-axis direction, or the Z-axis direction. Next, in S402, the simplification unit 120 simplifies the base volume acquired by the acquisition unit 110 to generate a macro volume. The macro volume 502 shown in FIG. 5 is the result of simplifying the base volume 501 by the acquisition unit 110. Assuming the simplification magnification is n (n is a positive real number), the voxel resolution of the macro volume 502 is 1 / n of the voxel resolution of the base volume 501. Here, by limiting the simplification magnification n to a positive integer, the macro voxels can be arranged such that the vertices of the macro voxels in the macro volume 502 overlap the vertices of the base voxels in the base volume 501. As a result, by limiting the simplification magnification n to a positive integer, the association between the macro voxels and the base voxels can be easily performed. Note that the simplification magnification in FIG. 5 is 2.

[0036] Next, in S411, the macro identification unit 130 identifies all the boundary surfaces in the macro volume generated by the simplification unit 120, and secures an area of a boundary surface array corresponding to a number in the identified boundary surfaces in the RAM 313. Here, the boundary surface array is, for example, an array in which a boundary index that can identify each boundary surface, a surface flag that indicates whether the boundary surface corresponds to the surface of the object by a binary value, and information indicating the position of the voxel boundary corresponding to the boundary surface are associated. When securing the area of the boundary surface array in the RAM 313, the macro identification unit 130 initializes, for example, the values of all the surface flags to 0, indicating that the boundary surface does not correspond to the surface of the object. The macro volume 503 shown in FIG. 5 shows the boundary surface array in a state where the surface flag is initialized to 0.

[0037] Next, at S412, the macro identification unit 130 identifies a plurality of surface boundary surfaces. For example, the macro identification unit 130 changes the value of the surface flag corresponding to each of the identified surface boundary surfaces to 1. In the macro volume 504 shown in FIG. 5, a boundary surface arrangement in a state where the value of the surface flag corresponding to each surface boundary surface is changed to 1 is shown. Next, at S413, the macro identification unit 130 identifies the positions of the surface voxel boundaries corresponding to each of the surface boundary surfaces. For example, the macro identification unit 130 associates information indicating the position of the identified surface voxel boundary with the surface boundary surface corresponding to the surface voxel boundary, that is, associates it with the boundary index corresponding to the surface boundary surface, and writes it to the corresponding location in the boundary surface arrangement. After the macro identification unit 130 finishes writing information indicating the positions of the corresponding surface voxel boundaries for all the surface boundary surfaces to the boundary surface arrangement, the macro identification unit 130 outputs the boundary surface arrangement to the generation unit 150 as surface information. Note that the macro identification unit 130 can execute in parallel for a plurality of boundary surfaces the process of determining whether each boundary surface corresponds to the surface of the object by creating the boundary surface arrangement before performing the process of identifying the surface boundary surfaces by the macro identification unit 130.

[0038] Next, at S421, the base identification unit 140 identifies a plurality of surface base voxels. Next, at S422, the base identification unit 140 identifies the positions of the base boundary points corresponding to each of the surface base voxels. In the base volume 505 shown in FIG. 5, a plurality of surface base voxels identified by the base identification unit 140 and the base boundary points corresponding to each surface base voxel are shown. Note that the base volume 505 shown in FIG. 5 shows, as an example, the case where the base boundary points are set at the centers of the base voxels. Next, at S423, the base identification unit 140 calculates base feature amounts. Next, at S431, the generation unit 150 generates a simplified surface point cloud. Next, at S432, the output unit 160 outputs information indicating the simplified surface point cloud generated by the generation unit 150. After S432, the data processing device 100 ends the process of the flowchart shown in FIG. 4.

[0039] Referring to FIGS. 6 and 7, the operation of the generation unit 150 will be described in detail. FIG. 6 is a flowchart showing an example of the processing flow of the generation unit 150 according to the first embodiment. Specifically, FIG. 6 is a flowchart showing an example of the internal processing flow of S431 shown in FIG. 4. FIG. 7 is an explanatory diagram for explaining the processing of the generation unit 150 according to the first embodiment.

[0040] First, at S601, the generation unit 150 associates the surface boundary surface with the surface macro voxel. In the macro volume 701 shown in FIG. 7, the surface macro voxels associated with the surface boundary surface are indicated by arrows. Next, at S602, the generation unit 150 calculates the voxel boundary feature amount for each surface macro voxel. Next, at S603, the generation unit 150 calculates the vertex coordinates with the position of the surface voxel boundary corrected based on the voxel boundary feature amount and the base feature amount for each surface voxel boundary. Specifically, for example, the generation unit 150 calculates the vertex coordinates with the position of the surface voxel boundary corrected for each surface voxel boundary using the following equation (1). More specifically, for example, the generation unit 150 corrects the position of the surface voxel boundary and calculates the vertex coordinates for each surface voxel boundary and for each of the X-axis, Y-axis, and Z-axis using the following equation (1). p i ´=(p i -μ p )×(σ r / σ p )+μ r ··· Equation (1)

[0041] Here, μ r is the average value at the positions of all base boundary points corresponding to one or more surface base voxels corresponding to a certain surface macro voxel. Also, σ r is the standard deviation at the positions of all base boundary points corresponding to one or more surface base voxels corresponding to the surface macro voxel. Also, p i is the position of the surface voxel boundary associated with the surface macro voxel and is the position of the surface voxel boundary corresponding to the boundary index i. Also, μ pis the average value of the positions of one or more surface voxel boundaries associated with the surface macro-voxel. Also, σ p is the standard deviation of the positions of one or more surface voxel boundaries associated with the surface macro-voxel. Also, p i ´ is the vertex coordinate obtained by correcting the position of the surface voxel boundary corresponding to the boundary index i. In the base volume 702 shown in FIG. 7, the correspondence between the position of the surface voxel boundary before correction and the point cloud obtained by coordinate-correcting the position of the surface voxel boundary is indicated by arrows.

[0042] Next, in S604, the generation unit 150 generates a surface point cloud in which the calculated vertex coordinates are arranged in a list. After S604, the generation unit 150 ends the process of the flowchart shown in FIG. 6. Note that the formula (1) used when the generation unit 150 calculates the vertex coordinates obtained by correcting the position of the surface voxel boundary is merely an example. The generation unit 150 is not limited to using the formula (1) as long as it calculates the vertex coordinates obtained by correcting the position of the surface voxel boundary for each surface voxel boundary based on the voxel boundary feature amount and the base feature amount. As described above, the voxel boundary feature amount may be at least one statistical value among the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness, etc. at the positions of all surface voxel boundaries associated with a certain surface macro-voxel. Also, the base feature amount may be at least one statistical value among the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness, etc. at the positions of all base boundary points corresponding to one or more surface base voxels corresponding to the surface macro-voxel.

[0043] With the configuration as described above, the data processing apparatus 100 can obtain a simplified surface point cloud indicated by black circles in the base volume 506 shown in FIG. 5. The number of vertices in the simplified surface point cloud shown in the base volume 506 is less than the number of base boundary points shown in the base volume 505. On the other hand, the simplified surface point cloud shown in the base volume 506 is equivalent to or substantially equivalent to the surface point cloud obtained based on the base boundary points shown in the base volume 505. Therefore, according to the data processing apparatus 100, it is possible to quickly generate a surface point cloud corresponding to the surface shape of the object and having a simplified surface point cloud with suppressed shape degradation. Here, as described above, the data processing apparatus 100 can also process two-dimensional map data representing the two-dimensional shape of the object. Therefore, it goes without saying that according to the data processing apparatus 100, it is possible to quickly generate a point cloud corresponding to the shape of the object and having a simplified point cloud with suppressed shape degradation.

[0044] Note that in the first embodiment, the data processing apparatus 100 processes volume data composed of voxels with binary voxel values, but may also process volume data composed of voxels with multi-valued or continuous voxel values. When the voxel values of the base volume are multi-valued or continuous, for example, the base specifying unit 140 specifies surface base voxels or specifies the positions of base boundary points by comparing the voxel values with a predetermined threshold value. Further, the threshold value may be one previously held by the base specifying unit 140 or one acquired by the acquisition unit 110 from the auxiliary storage device 314 or the like. Also, in such a case, for example, when simplifying the base volume, the simplifying unit 120 determines the voxel value of the macro voxel by comparing the voxel values of a plurality of base volumes corresponding to the macro voxel with a predetermined threshold value. The simplifying unit 120 may determine the voxel value of the macro voxel by comparing the total value or average value or the like of the voxel values of a plurality of base volumes corresponding to the macro voxel with a predetermined threshold value.

[0045] Further, when the voxel values of the macro volume are multi-valued or continuous values, for example, the macro identification unit 130 identifies the surface boundary surface or the position of the surface voxel boundary by comparing the voxel value with a predetermined threshold value. Note that a macro volume with multi-valued or continuous voxel values is generated, for example, by the simplification unit 120 using the average value of the voxel values of a plurality of base volumes corresponding to the macro voxels as the voxel value of the macro voxel.

[0046] [Second Embodiment] With reference to FIGS. 8 and 9, a data processing apparatus 100 (hereinafter referred to as "data processing apparatus 100a") according to the second embodiment will be described.

[0047] The data processing apparatus 100 according to the first embodiment outputs information indicating a simplified surface point cloud corresponding to the surface of an object from a volume representing the shape of the object by a plurality of voxels. In contrast, the data processing apparatus 100a outputs a simplified mesh (hereinafter referred to as "simplified mesh") corresponding to the surface of the object from the volume, or information capable of generating the simplified mesh.

[0048] The data processing apparatus 100a may acquire two-dimensional map data representing the two-dimensional shape of the object and output information indicating a polygon corresponding to the contour shape of the object. The form in which the data processing apparatus 100a acquires two-dimensional map data representing the two-dimensional shape of the object and outputs information indicating a polygon corresponding to the contour shape of the object is a reduction of three dimensions to two dimensions, and thus the description thereof will be omitted. Note that the definitions of the object, volume, voxel, point, point cloud, polygon, and mesh in the second embodiment are the same as those in the second embodiment, and thus the description thereof will be omitted.

[0049] The data processing device 100a includes an acquisition unit 110, a simplification unit 120, a macro identification unit 130, a base identification unit 140, a generation unit 150, and an output unit 160, which are shown as an example in FIG. 1, similar to the data processing device 100 according to the first embodiment. Note that since the acquisition unit 110 and the simplification unit 120 according to the second embodiment are the same as those of the acquisition unit 110 and the simplification unit 120 according to the first embodiment, the description thereof is omitted.

[0050] The macro identification unit 130 (hereinafter referred to as "macro identification unit 130a") according to the second embodiment, similar to the macro identification unit 130 according to the first embodiment, identifies a plurality of surface boundary faces and the positions of surface voxel boundaries corresponding to each of the surface boundary faces. In addition to identifying the surface boundary faces and the positions of the surface voxel boundaries, the macro identification unit 130a also identifies the connection relationships between the surface voxel boundaries. Specifically, for example, the macro identification unit 130a identifies all the connection relationships between the surface voxel boundaries by identifying a plurality of polygonal faces each having a respective one of the identified surface voxel boundaries as a vertex. The polygonal face is, for example, a polygon. The process of identifying a polygonal face having a surface voxel boundary as a vertex can be realized by a process similar to a part of the MC method that can identify a point group or a face corresponding to the surface of an object inside a virtual voxel. Note that the process of identifying a polygonal face having a surface voxel boundary as a vertex is not limited to a process similar to a part of the MC method as long as it can identify a polygonal face having a surface voxel boundary as a vertex.

[0051] The macro identification unit 130a generates connection information indicating the identified connection relationships and outputs it to the generation unit 150 or the output unit 160. The connection information is, for example, a list of combinations of boundary indices in which the boundary indices corresponding to the surface boundary faces to which a plurality of surface voxel boundaries serving as vertices of a polygonal face identified by the macro identification unit 130a belong are associated with each other. When the polygonal face identified by the macro identification unit 130a is a triangular face, the connection information becomes a triangle list in which the boundary indices corresponding to the surface boundary faces to which three surface voxel boundaries belong are associated with each other.

[0052] The base identification unit 140 according to the second embodiment (hereinafter referred to as "base identification unit 140a") identifies a plurality of surface base voxels, similar to the base identification unit 140 according to the first embodiment. Also, similar to the base identification unit 140 according to the first embodiment, the base identification unit 140a identifies the positions of the base boundary points corresponding to each of the surface base voxels. Further, similar to the base identification unit 140 according to the first embodiment, the base identification unit 140a calculates the base feature amount for each surface macro voxel. However, the base identification unit 140a identifies a predetermined position on the contact surface, such as the center point of the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel, as the position of the base boundary point. Note that the contact surface includes the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel, as well as the contact surface between the surface base voxel and the bounding box.

[0053] The base identification unit 140a may identify the position of the base boundary point on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel by the following method. First, the base identification unit 140 sets a virtual voxel having, as vertices, predetermined points belonging to each of the eight base voxels in which one of the plurality of vertices defining the base voxel exists at the same position, for each position of the vertex of the base voxel. Next, the base identification unit 140 identifies a point group or a surface corresponding to the surface of the object inside each virtual voxel based on the voxel values of the eight base voxels described above. Further, the base identification unit 140 identifies the position of the base boundary point on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel based on the point group or the surface inside the identified virtual voxel. Hereinafter, the base identification unit 140a will be described as identifying the center point of the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel as the position of the base boundary point.

[0054] The generation unit 150 according to the second embodiment (hereinafter referred to as "generation unit 150a") generates a simplified surface point cloud in the same manner as the generation unit 150 according to the first embodiment. In addition to generating a simplified surface point cloud, the generation unit 150a may generate a simplified mesh corresponding to the surface of the object. Specifically, for example, the generation unit 150a generates a simplified mesh corresponding to the surface of the object based on the connection information generated by the macro identification unit 130a and the simplified surface point cloud generated by the generation unit 150a. More specifically, for example, first, the generation unit 150a refers to the combination of boundary indexes indicated by the connection information to identify the combination of surface voxel boundaries. Next, the generation unit 150a generates a polygon composed of the combination of surface voxel boundaries for each combination of boundary indexes indicated by the connection information based on the coordinates of the surface voxel boundaries indicated by the surface point cloud, thereby generating a simplified mesh corresponding to the surface of the object.

[0055] The output unit 160 according to the second embodiment (hereinafter referred to as "output unit 160a") outputs information indicating the simplified mesh generated by the generation unit 150a. For example, the information indicating the simplified mesh output by the output unit 160a is an image signal indicating the simplified mesh, and the output unit 160a outputs the image signal to the display unit 315 to cause the display unit 315 to display it. The output unit 160a may output information indicating the simplified surface point cloud generated by the generation unit 150a and the connection information generated by the macro identification unit 130a. In this case, the user can generate a simplified mesh later using the data processing device 100a or another device capable of generating a mesh based on the information indicating the simplified surface point cloud and the connection information. Hereinafter, the generation unit 150a generates a simplified mesh, and the output unit 160a outputs information indicating the simplified mesh.

[0056] Referring to FIGS. 8 and 9, the operation of the data processing apparatus 100a will be described in detail. FIG. 8 is a flowchart showing an example of the processing flow of the data processing apparatus 100 (data processing apparatus 100a) according to the second embodiment. FIG. 9 is an explanatory diagram for explaining the processing of the flowchart shown in FIG. 8. In FIGS. 8 and 9, for the same configurations or processes as those in FIGS. 4 and 5, the same reference numerals are used and the description thereof is omitted.

[0057] First, the data processing apparatus 100a executes the processing from S401 to S413. After S413, at S814, the macro identification unit 130 identifies a polygonal surface having the surface voxel boundary as a vertex and generates connection information. In the macro volume 904 shown in FIG. 9, a boundary surface arrangement similar to the boundary surface arrangement shown in the macro volume 504 shown in FIG. 5 is shown. In the macro volume 504, the connection relationship between the surface voxel boundaries is indicated by solid lines connecting the boundary surface arrangements.

[0058] After S814, the data processing apparatus 100a executes the processing of S421. After S421, at S822, the base identification unit 140a identifies the position of the base boundary point on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel for each surface base voxel. In the base volume 905 shown in FIG. 9, a plurality of surface base voxels identified by the base identification unit 140a and the base boundary points corresponding to the respective surface base voxels are shown. The base boundary points shown in the base volume 505 shown in FIG. 5 were located at the centers of the surface base voxels. On the other hand, the base boundary points shown in the base volume 905 shown in FIG. 9 are located on the contact surface between the surface base voxel and the base voxel of the OFF voxel adjacent to the surface base voxel.

[0059] After S822, the data processing device 100a sequentially executes the processes of S423 and S431. In the process of S431, for example, the generation unit 150a generates a simplified surface point cloud using the above formula (1). After S431, in S832, the generation unit 150a generates a simplified mesh. In the base volume 906 shown in FIG. 9, the simplified surface point cloud generated by the generation unit 150a is indicated by black circles. Also, in the base volume 906, the generated simplified mesh is indicated by a solid line connecting the black circles. After S832, in S833, the output unit 160a outputs information indicating the simplified mesh generated by the generation unit 150a. After S833, the data processing device 100a ends the process of the flowchart shown in FIG. 8.

[0060] With the above configuration, the data processing device 100a can obtain a simplified surface point cloud indicated by black circles in the base volume 906 shown in FIG. 9. The number of vertices in the simplified surface point cloud shown in the base volume 906 is less than the number of base boundary points shown in the base volume 905. On the other hand, the simplified mesh shown in the base volume 906 is equivalent to or substantially equivalent to the mesh obtained based on the base boundary points shown in the base volume 505. Therefore, according to the data processing device 100a, it is possible to quickly generate a surface point cloud corresponding to the surface shape of the object and having a simplified surface point cloud with suppressed shape degradation. Also, according to the data processing device 100a, it is possible to quickly generate a simplified mesh with suppressed shape degradation from the volume. Here, as described above, the data processing device 100a can also process two-dimensional map data representing the two-dimensional shape of the object. Therefore, it goes without saying that according to the data processing device 100a, it is possible to quickly generate a point cloud corresponding to the shape of the object and having a simplified point cloud with suppressed shape degradation.

[0061] [Other Embodiments] The present disclosure can also be realized by supplying a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and causing one or more processors in a computer of the system or apparatus to read and execute the program. It can also be realized by a circuit (for example, ASIC) that implements one or more functions.

[0062] Note that within the scope of the present disclosure, any combination of each embodiment, any modification of any component of each embodiment, or any omission of any component in each embodiment is possible.

Description of Reference Numerals

[0063] 100 Data processing apparatus, 110 Acquisition unit, 120 Simplification unit, 130 Macro identification unit, 140 Base identification unit, 150 Generation unit, 160 Output unit.

Claims

1. An acquisition means for acquiring first information representing the shape of an object by a plurality of first unit regions; A first generation means for generating second information representing the shape of the object by a plurality of second unit regions larger in size than the first unit regions based on the first information; A first specifying means for specifying a plurality of the first unit regions corresponding to the outer shape of the object based on the first information; A second specifying means for specifying a plurality of boundaries that are boundaries between the second unit regions adjacent to each other and correspond to the outer shape of the object based on the second information; A second generation means for generating a point group corresponding to the outer shape of the object based on the first unit region specified by the first specifying means and the boundary specified by the second specifying means; comprising Based on the first information and the second information, the first specifying means associates each of the plurality of the first unit regions specified by the first specifying means with the second unit region including the position of the first unit region or the second unit region at the position closest to the position of the first unit region; For each of the second unit regions, the second generation means generates the point group corresponding to the outer shape of the object based on the first unit region among the first unit regions specified by the first specifying means that is associated with the second unit region and the boundary corresponding to the second unit region specified by the second specifying means; When the first specifying means associates the first unit region with the second unit region at the position closest to the position of the first unit region, if there are a plurality of second unit regions at the position closest to the position of the first unit region, the first specifying means associates the first unit region with all of the second unit regions at the position closest to the position of the first unit region A data processing apparatus characterized by the above.

2. The data processing apparatus according to claim 1, further comprising an output means for outputting information indicating the point group generated by the second generation means. characterized by the above.

3. The acquisition means acquires, as the first information, a first volume representing the three-dimensional shape of the object by a plurality of first voxels that are the plurality of the first unit regions. Based on the first volume, the first generation means generates, as the second information, a second volume representing the three-dimensional shape of the object by a plurality of second voxels, which are second unit regions larger in size than the first voxel. Based on the first volume, the first identification means identifies a plurality of the first voxels corresponding to the surface of the object as a plurality of the first unit regions corresponding to the outer shape of the object. Based on the second volume, the second identification means identifies, as the boundary, a plurality of boundary surfaces corresponding to the surface of the object, which are boundary surfaces between adjacent second voxels. Based on the first voxels identified by the first identification means and the boundary surfaces identified by the second identification means, the second generation means generates a surface point cloud corresponding to the surface shape of the object as the point cloud. The data processing device according to claim 1, characterized in that.

4. Based on the surface point cloud generated by the second generation means, the second generation means generates a mesh. The data processing device according to claim 3, characterized in that.

5. The data processing device according to claim 4, characterized by having output means for outputting information indicating the mesh generated by the second generation means. The data processing device according to claim 4, characterized in that.

6. For each of the first voxels identified by the first identification means, the first identification means identifies the position of a first point belonging to the first voxel and characterizing the first voxel. For each of the boundary surfaces identified by the second identification means, the second identification means identifies the position of a second point belonging to the boundary surface and characterizing the boundary surface. Based on the position of the first point in the first voxel identified by the first identification means and the position of the second point identified by the second identification means, the second generation means generates the surface point cloud. The data processing device according to claim 3 or claim 4, characterized in that.

7. The second identification means identifies the contact surface between the second voxels of the OFF voxels and the second voxels of the ON voxels as the boundary surface corresponding to the surface of the object. The data processing device according to claim 3 or claim 4, characterized in that.

8. The second specifying means specifies a predetermined position on the boundary surface specified by the second specifying means as the position of the second point. The data processing apparatus according to claim 6, characterized in that.

9. Based on the voxel values of the eight second voxels in which one of the plurality of vertices defining the second voxel exists at the same position, the second specifying means determines a predetermined point belonging to each of the eight second voxels. The position of the second point is specified by specifying a point group or a plane corresponding to the surface of the object inside a virtual voxel having a vertex as a vertex. The data processing apparatus according to claim 6, characterized in that.

10. The first specifying means specifies the first voxel of the ON voxel adjacent to the first voxel of the OFF voxel as the first voxel corresponding to the surface of the object. The data processing apparatus according to claim 3 or claim 4, characterized in that.

11. The first specifying means specifies a predetermined position inside the first voxel specified by the first specifying means as the position of the first point. The data processing apparatus according to claim 6, characterized in that.

12. The first specifying means specifies a predetermined position on the contact surface between the first voxel specified by the first specifying means and the first voxel of the OFF voxel adjacent to the first voxel as the position of the first point. The data processing apparatus according to claim 6, characterized in that.

13. The second generating means associates each of the boundary surfaces specified by the second specifying means with the second voxel existing on the object side among the two second voxels separated by the boundary surface, and for each of the associated second voxels, calculates the position of the point corresponding to the surface of the object, thereby generating the surface point group. The data processing apparatus according to claim 3 or claim 4, characterized in that.

14. The first specifying means calculates, for each of the second voxels existing on the object side among the two second voxels separated by the boundary surface specified by the second specifying means, a first feature amount indicating the distribution of the positions of the first points in the first voxels specified by the first specifying means among the plurality of first voxels corresponding to the second voxels. For each of the second voxels existing on the object side among the two second voxels separated by the boundary surface specified by the second specifying means, the second generation means calculates a second feature amount indicating the distribution of the positions of the second points corresponding to the second voxels, and generates the surface point cloud based on the first feature amount and the second feature amount The data processing device according to claim 6, characterized in that

15. The first specifying means calculates, as the first feature amount, at least one statistical value among the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness of the positions of the first points The second generation means calculates, as the second feature amount, at least one statistical value among the maximum value, minimum value, average, variance, standard deviation, median, mode, kurtosis, and skewness of the positions of the second points The data processing device according to claim 14, characterized in that

16. For each of the first voxels specified by the first specifying means, the first specifying means specifies the position of the first point in the first voxel For each of the boundary surfaces specified by the second specifying means, the second specifying means specifies the position of the second point belonging to the boundary surface, and further specifies the combination of the second points, wherein the polygonal surface defined by the second points in the combination corresponds to the surface of the object The second generation means generates the surface point cloud based on the position of the first point in the first voxel specified by the second specifying means and the position of the second point specified by the second specifying means, and further generates the mesh based on the combination specified by the second specifying means and the surface point cloud generated by the second generation means The data processing device according to claim 4, characterized in that

17. The second specifying means specifies the combination of the second points by specifying a point group or a surface corresponding to the surface of the object inside a virtual voxel having, as vertices, predetermined points belonging to each of the eight second voxels in which one of the plurality of vertices defining the second voxel exists at the same position, based on the voxel values of the eight second voxels The data processing device according to claim 16, characterized in that

18. Acquisition means for acquiring first information representing the shape of an object by a plurality of first unit regions Based on the first information, a first generation means for generating second information representing the shape of the object by a plurality of second unit regions larger in size than the first unit region; A first specifying means for specifying a plurality of the first unit regions corresponding to the outer shape of the object based on the first information; A second specifying means for specifying a plurality of the boundaries corresponding to the outer shape of the object, which are boundaries between the second unit regions adjacent to each other, based on the second information; A second generation means for generating a point group corresponding to the outer shape of the object based on the first unit region specified by the first specifying means and the boundary specified by the second specifying means; comprising; The acquisition means acquires, as the first information, a first volume representing the three-dimensional shape of the object by a plurality of first voxels which are a plurality of the first unit regions; The first generation means generates, based on the first volume, as the second information, a second volume representing the three-dimensional shape of the object by a plurality of second voxels which are second unit regions larger in size than the first voxels; The first specifying means specifies, based on the first volume, a plurality of the first voxels corresponding to the surface of the object as a plurality of the first unit regions corresponding to the outer shape of the object; The second specifying means specifies, based on the second volume, a plurality of the boundary surfaces corresponding to the surface of the object, which are boundary surfaces between the second voxels adjacent to each other, as the boundaries; The second generation means generates, based on the first voxels specified by the first specifying means and the boundary surfaces specified by the second specifying means, a surface point group corresponding to the surface shape of the object as the point group; For each of the first voxels specified by the first specifying means, the first specifying means specifies the position of a first point belonging to the first voxel and characterizing the first voxel; For each of the boundary surfaces specified by the second specifying means, the second specifying means specifies the position of a second point belonging to the boundary surface and characterizing the boundary surface; The second generation means generates the surface point cloud based on the position of the first point in the first voxel specified by the first specifying means and the position of the second point specified by the second specifying means. A data processing apparatus characterized by the above.

19. An acquisition step of acquiring first information representing the shape of an object by a plurality of first unit regions; A first generation step of generating second information representing the shape of the object by a plurality of second unit regions having a size larger than that of the first unit region based on the first information; A first specifying step of specifying a plurality of the first unit regions corresponding to the outer shape of the object based on the first information; A second specifying step of specifying a plurality of boundaries that are boundaries between the second unit regions adjacent to each other and correspond to the outer shape of the object based on the second information; A second generation step of generating a point cloud corresponding to the outer shape of the object based on the first unit region specified by the first specifying step and the boundary specified by the second specifying step; comprising: In the first specifying step, based on the first information and the second information, each of the plurality of first unit regions specified by the first specifying step is associated with the second unit region including the position of the first unit region or the second unit region at the position closest to the position of the first unit region. In the second generation step, for each second unit region, based on the first unit region among the first unit regions specified by the first specifying step that is associated with the second unit region and the boundary corresponding to the second unit region specified by the second specifying step, the point cloud corresponding to the outer shape of the object is generated. In the first specifying step, when associating the first unit region with the second unit region at the position closest to the position of the first unit region, if there are a plurality of second unit regions at the position closest to the position of the first unit region, the first unit region is associated with all of the second unit regions at the position closest to the position of the first unit region. A data processing method characterized by the above.

20. An acquisition step of acquiring first information representing the shape of an object by a plurality of first unit regions; A first generation step of generating second information representing the shape of the object by a plurality of second unit regions having a size larger than that of the first unit region based on the first information; A first specifying step of specifying a plurality of the first unit regions corresponding to the outer shape of the object based on the first information; A second specifying step of specifying a plurality of boundaries corresponding to the outer shape of the object, the boundaries being boundaries between the second unit regions adjacent to each other, based on the second information; A second generating step of generating a point group corresponding to the outer shape of the object based on the first unit region specified in the first specifying step and the boundary specified in the second specifying step; comprising: In the obtaining step, as the first information, a first volume representing a three-dimensional shape of the object by a plurality of first voxels which are the plurality of the first unit regions is obtained; In the first generating step, based on the first volume, as the second information, a second volume representing a three-dimensional shape of the object by a plurality of second voxels which are the second unit regions having a size larger than that of the first voxels is generated; In the first specifying step, based on the first volume, a plurality of the first voxels corresponding to the surface of the object are specified as the plurality of the first unit regions corresponding to the outer shape of the object; In the second specifying step, based on the second volume, a plurality of boundary surfaces corresponding to the surface of the object, which are boundary surfaces between the second voxels adjacent to each other, are specified as the boundaries; In the second generating step, based on the first voxels specified in the first specifying step and the boundary surfaces specified in the second specifying step, a surface point group corresponding to the surface shape of the object is generated as the point group; In the first specifying step, for each of the first voxels specified in the first specifying step, a position of a first point belonging to the first voxel and characterizing the first voxel is specified; In the second specifying step, for each of the boundary surfaces specified in the second specifying step, a position of a second point belonging to the boundary surface and characterizing the boundary surface is specified; In the second generating step, the surface point group is generated based on the position of the first point in the first voxels specified in the first specifying step and the position of the second point specified in the second specifying step; A data processing method characterized by the above.

21. A computer, A program for operating as each means of the data processing apparatus according to any one of claims 1 to 18.

Citation Information

Patent Citations

  • Three-dimensional form generating method and storage medium storing program for performing the same

    JP2002074386A

  • Mesh simplifying device, program and storage medium

    JP2003091742A

  • Caching and updating dense 3D reconstruction data

    JP2021507403A

  • Method of occlusion rendering using raycast and live depth

    US20190197765A1

  • Image processing device and method

    WO2020071114A1