Apparatus and method for lightweighting scan-based 3D data

By calculating reference distances and using bounding boxes and voxels, the method addresses the challenge of large-scale 3D scan data processing, ensuring accurate rendering and resource efficiency.

WO2026134369A1PCT designated stage Publication Date: 2026-06-25PARALLEL SPACE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
PARALLEL SPACE CO LTD
Filing Date
2024-12-18
Publication Date
2026-06-25

AI Technical Summary

Technical Problem

Generating mesh data from large-scale 3D scans is challenging due to data size limitations, and conventional decimation methods do not consider the original point cloud data, leading to shape deformation and resource overload.

Method used

A processor-based method that calculates a reference distance from point cloud vertices, performs decimation by comparing edge modifications to adjacent vertices, and uses bounding boxes and voxels to manage data within limited resources, ensuring minimal shape distortion.

Benefits of technology

The method effectively reduces mesh data size while preserving shape accuracy, enabling rendering with limited resources and preventing resource overload.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024020593_25062026_PF_FP_ABST
    Figure KR2024020593_25062026_PF_FP_ABST
Patent Text Reader

Abstract

An apparatus for lightweighting scan-based 3D data according to one embodiment disclosed in the present document comprises a communication circuit, a memory, and a processor electrically connected to the communication circuit and the memory, wherein the processor is configured to: form a three-dimensional mesh including a plurality of polygons on the basis of a point cloud obtained by scanning a target; calculate a reference distance for decimation on the basis of distances between vertices included in the point cloud; perform decimation on a specific edge by generating a vertex that replaces two vertices defining the specific edge included in the mesh; determine whether to apply decimation to the specific edge by comparing a distance between the polygon modified by the decimation on the specific edge and a vertex adjacent to the modified polygon with the reference distance; and cancel the decimation for the specific edge when the distance between the modified polygon and the adjacent vertex is greater than the reference distance.
Need to check novelty before this filing date? Find Prior Art

Description

Device and method for lightweighting scan-based 3D data

[0001] The embodiments disclosed in this document relate to an apparatus and method for lightweighting 3D data scanned from large-scale spaces and facilities, etc.

[0002] A point cloud refers to a collection of numerous points that constitute an object or environment in 3D space. Each point has three-dimensional coordinates, and these points can typically be collected by equipment such as LiDAR or stereo cameras. Technology that implements real-world information into virtual space using point clouds acquired through 3D scanning is utilized in various fields. Mesh data reconstructed based on point clouds can reflect accurate real-world information and can be rendered even with limited resources.

[0003] In the case of point clouds scanned from large-scale spaces and facilities, it can be difficult to generate mesh data of a size suitable for rendering while simultaneously reflecting accurate real-world information. In particular, point clouds that are too large for limited computer resources may not even be able to be uploaded to memory. Furthermore, when performing decimation to lighten mesh data, there is a limitation in that the original point cloud data is not considered during the decimation process, as the mesh data before and after decimation is typically compared to remove parts with smaller shape contributions first.

[0004] Embodiments of the present invention are intended to provide an apparatus and method capable of performing decimation of a three-dimensional mesh in consideration of a point cloud and rendering a large-capacity point cloud using limited resources.

[0005] An apparatus for lightweighting scan-based 3D data according to one embodiment disclosed in this document includes a communication circuit, a memory, and a processor electrically connected to the communication circuit and the memory. The processor forms a three-dimensional mesh composed of a plurality of polygons based on a point cloud obtained by scanning a target, calculates a reference distance for decimation based on the distance between vertices included in the point cloud, performs decimation for a specific edge by creating a vertex that replaces two vertices constituting a specific edge included in the mesh, determines whether to apply decimation for a specific edge by comparing the distance between a polygon modified by decimation for a specific edge and a vertex adjacent to the modified polygon with the reference distance, and if the distance between the modified polygon and the adjacent vertex is greater than the reference distance, can cancel the decimation for the specific edge.

[0006] According to one embodiment, the processor can calculate the average value of the distance between each of all vertices included in the point cloud and the closest vertex for each of all vertices as a reference distance.

[0007] According to one embodiment, when calculating the distance between a modified polygon and an adjacent vertex, the processor may sample the modified polygon into multiple points and substitute the modified polygon to calculate the distance between the multiple points and the adjacent vertex.

[0008] According to one embodiment, the processor may repeatedly perform decimation on each of the remaining edges included in the mesh, determine whether to apply the decimation, terminate the decimation, and provide a compressed mesh.

[0009] According to one embodiment, the processor sets a plurality of bounding boxes that divide the point cloud based on the number of vertices included in the point cloud and the number of vertices renderable in memory, renders the original vertices of the point cloud group included in the bounding box corresponding to the ROI (region of interesting) among the plurality of bounding boxes, and renders the sampled vertices of the point cloud group included in the remaining bounding boxes among the plurality of bounding boxes.

[0010] According to one embodiment, the processor can set a bounding box surrounding a point cloud and set multiple bounding boxes by repeatedly dividing the bounding box in half until the number of vertices included in the bounding box becomes smaller than the number of vertices that can be rendered in memory.

[0011] According to one embodiment, the processor stores a plurality of temporary files in storage that store information for each of the point cloud groups included in each of the plurality of bounding boxes, and can upload a temporary file for a specific bounding box to memory.

[0012] According to one embodiment, the processor calculates the average distance between each of the multiple vertices included in a point cloud group included in a specific bounding box and the nearest point for each of the multiple vertices, sets a voxel included in a specific bounding box based on the average distance and the edge ratio of the specific bounding box, repeatedly divides the voxel in half until the number of vertices included in the voxel is included in a specified range, and samples the multiple vertices included in the point cloud group included in the specific bounding box using the divided voxel.

[0013] A method for lightweighting scan-based 3D data according to one embodiment disclosed in this document may include: forming a three-dimensional mesh composed of a plurality of polygons based on a point cloud obtained by scanning a target; calculating a reference distance for decimation based on the distance between vertices included in the point cloud; performing decimation for a specific edge by creating a vertex that replaces two vertices constituting a specific edge included in the mesh; determining whether to apply decimation for a specific edge by comparing the distance between a polygon modified by decimation for a specific edge and a vertex adjacent to the modified polygon with the reference distance; and canceling decimation for a specific edge if the distance between the modified polygon and the adjacent vertex is greater than the reference distance.

[0014] According to the embodiments disclosed in this document, by determining whether to apply decimation based on the distance between a polygon modified by decimation and a vertex of an adjacent point cloud, deformation of the shape can be reduced by considering the original data, the point cloud, when lightweighting a 3D mesh.

[0015] In addition, by performing sampling based on bounding boxes and voxels composed of the same proportion as the bounding boxes, scan data for a large space can be processed using limited computer resources.

[0016] In addition, various effects that can be identified directly or indirectly through this document may be provided.

[0017] FIG. 1 illustrates the operating environment of a device for lightweighting scan-based 3D data according to one embodiment.

[0018] FIG. 2 is a block diagram illustrating the configuration of a device for lightweighting scan-based 3D data according to one embodiment.

[0019] FIG. 3 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0020] FIG. 4 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0021] FIG. 5 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0022] FIG. 6 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0023] FIG. 7 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0024] FIG. 8 is a flowchart illustrating a method for lightweighting scan-based 3D data according to one embodiment.

[0025] In relation to the description of the drawings, the same or similar reference numerals may be used for identical or similar components.

[0026] Hereinafter, some embodiments of the present invention will be described in detail with reference to the exemplary drawings. However, this is not intended to limit the present invention to specific embodiments, and it should be understood that the invention includes various modifications, equivalents, or substitutions of the embodiments. It should be noted that in assigning reference numerals to the components of each drawing, the same components are given the same reference numeral whenever possible, even if they are shown in different drawings. Furthermore, in describing the embodiments of the present invention, if it is determined that a detailed description of related known components or functions would hinder understanding of the embodiments of the present invention, such detailed description is omitted.

[0027]

[0028] FIG. 1 illustrates the operating environment of a device for lightweighting scan-based 3D data according to one embodiment.

[0029] Referring to FIG. 1, a data lightweighting device according to one embodiment can acquire a point cloud for a target to perform 3D modeling. The target may be a place including a large space and facilities, and in this case, the data size of the point cloud may become large, making it difficult to handle with limited computer resources.

[0030] The data lightweighting device can provide a compressed mesh by performing decimation on a 3D mesh reconstructed from a point cloud. When performing decimation, the data lightweighting device can determine the suitability of the decimation for each edge constituting the 3D mesh by comparing it with the original data, the point cloud.

[0031] Meanwhile, the data lightweighting device can visually render a point cloud composed of coordinate information for multiple vertices using limited resources. The data lightweighting device can provide a sampling method that is effective when applied to the point cloud during rendering, and a large-scale point cloud can be rendered through sampling.

[0032]

[0033] FIG. 2 is a block diagram illustrating the configuration of a device for lightweighting scan-based 3D data according to one embodiment.

[0034] Referring to FIG. 2, a data lightweighting device (200) according to one embodiment may be implemented as a computing device. The data lightweighting device (200) may be implemented as a user terminal such as, for example, a smartphone, a tablet PC, a laptop computer, or a desktop computer, or as a server located in the cloud or on-premises. The data lightweighting device (200) may also be implemented as a computing device in an environment distributed in two or more ways. The data lightweighting device (200) may include a communication circuit (210), a memory (220), a storage (230), and a processor (240).

[0035] The communication circuit (210) may be an interface that communicates wirelessly or wiredly with an external device (e.g., other components included in the simulation providing device (200) and / or an external device (20)). The communication circuit (220) may transmit and receive data to and from the external device.

[0036] The memory (220) is a volatile memory and, for example, may be RAM (random access memory). The memory (220) may temporarily store data for processing various data handled by the data lightweighting device (200).

[0037] Storage (230) is a storage medium capable of storing data non-temporarily, and may be an auxiliary storage device such as an HDD or SSD. Storage (230) can store data non-temporarily for the storage of various data handled by the data lightweighting device (200).

[0038] The processor (240) may be electrically connected to the communication circuit (210), memory (220), and storage (230). The processor (240) may control the communication circuit (210), memory (220), and storage (230), and may perform various data processing and operations. The processor (240) may perform the following operations by executing software or instructions stored in the memory (220).

[0039] A three-dimensional mesh obtained from a point cloud can be composed of a set of multiple polygons. Polygons can be, for example, triangles. Since the data size of the mesh increases in proportion to the number of polygons included in the mesh, decimation can be performed to lighten the mesh. Conventional decimation can be performed by comparing the mesh before modification with the mesh after modification. However, since decimation is performed without considering the point cloud corresponding to the original data, the bias of the data already present in the mesh may gradually increase during the decimation process. Therefore, the processor (240) can reduce the bias of the data by performing decimation while considering the point cloud, which is the original data, as follows.

[0040] According to one embodiment, the processor (240) can form a three-dimensional mesh composed of multiple polygons based on a point cloud obtained by scanning a target. The processor (240) can obtain a point cloud from an external device (20) (e.g., LiDAR or stereo camera, etc.) using a communication circuit (210). The three-dimensional mesh can be restored by forming edges connecting the vertices of the point cloud using an algorithm for mesh restoration. For example, the three-dimensional mesh can be restored by an algorithm such as iPSR (iterative poisson surface reconstruction). Since data bias may appear due to the characteristics of the algorithm that generates a three-dimensional surface, which is continuous information, from points, which is discrete information, there may be a need to compare the point cloud and the mesh when performing decimation.

[0041] According to one embodiment, the processor (240) can calculate a reference distance for decimation based on the distance between vertices included in the point cloud. The processor (240) can determine the suitability of decimation based on the distance between vertices and polygons in the point cloud, and there is a need to calculate a reference distance as a criterion for judgment. For example, the processor (240) can calculate the average value of the distance between each of all vertices included in the point cloud and the closest vertex for each of all vertices as the reference distance. Specifically, the processor (240) can form a tree structure (e.g., kd-tree) using the point cloud and search for the closest vertex of a specific vertex using the tree structure. The kd-tree may be an algorithm used to find the closest point in multiple dimensions. In a tree structure, values ​​smaller than the value existing in the root node (0-th) are sorted to the left and larger values ​​to the right, and values ​​smaller than the value existing in the next node (1-st) are sorted to the left of the 1-st node and larger values ​​to the right, and this sorting can be applied up to the n-th node and leaf nodes. When a specific value is input, in the case of a tree structure, there is no need to search the entire tree to find the node closest to that value; instead, the value of the node can be compared with the value of the next step, and the value to be compared can be reduced by half. The processor (240) can search for the nearest vertex for each vertex, calculate the distance to the nearest vertex for each vertex, and calculate the average value of the calculated distances. The reference distance (2d) can be defined, for example, as twice the average value (d).

[0042] According to one embodiment, the processor (240) can perform decimation on a specific edge by generating a vertex that replaces two vertices constituting a specific edge included in the mesh. The processor (240) can select one edge in the mesh, delete the selected edge, and generate a vertex that replaces the deleted edge. The new vertex can be positioned so as to minimize the distance to adjacent vertices. The processor (240) can form a new edge between the new vertex and the adjacent vertex, thereby modifying the polygon.

[0043] According to one embodiment, the processor (240) can determine whether to apply decimation to a specific edge by comparing the distance between a polygon modified by decimation to a specific edge and a vertex adjacent to the modified polygon with a reference distance. The processor (240) can calculate the distance between a polygon formed by a replaced vertex after two vertices are replaced by one vertex by decimation and a vertex adjacent to that polygon. A vertex adjacent to the modified polygon can be searched using a kd-tree. The processor (240) can determine the suitability of the decimation by comparing the distance between the polygon and the adjacent vertex with the previously calculated reference distance (2d).

[0044] According to one embodiment, when the processor (240) calculates the distance between a modified polygon and an adjacent vertex, it may sample the modified polygon into multiple points and calculate the distance between the multiple points and the adjacent vertex by replacing the modified polygon. Calculating the distance between a face and a point may require an excessive amount of computation compared to calculating the distance between points. The processor (240) may replace the process of calculating the distance between a face and a point by performing point sampling on the modified polygon and calculating the distance between the points replacing the polygon and the vertex adjacent to the polygon.

[0045] According to one embodiment, the processor (240) may apply decimation to a specific edge if the distance between the modified polygon and an adjacent vertex is smaller than the reference distance. If the distance between the polygon affected by the decimation at the specific edge and the vertex adjacent to the polygon is smaller than the reference distance, the processor (240) may determine that the shape distortion caused by the decimation is not significant and may apply decimation to the edge.

[0046] According to one embodiment, the processor (240) may cancel the decimation for a specific edge if the distance between the modified polygon and an adjacent vertex is greater than the reference distance. If the distance between the polygon affected by the decimation at a specific edge and the vertex adjacent to that polygon is greater than the reference distance, the processor (240) may determine that the shape distortion caused by the decimation is large and discard the decimation for that edge.

[0047] According to one embodiment, the processor (240) may repeatedly perform decimation on each of the remaining edges included in the mesh and determine whether to apply the decimation. When processing for all edges is completed, the processor (240) may terminate the decimation and provide the compressed mesh to the user.

[0048] Since point clouds are utilized within limited computer resources, if the data is large compared to the resources, the system may become overloaded. To prevent this, when uploading the point cloud to memory (220), it is necessary to upload only as much data as is available to memory (220) by splitting and compressing the data.

[0049] According to one embodiment, the processor (240) may set a plurality of bounding boxes that divide the point cloud based on the number of vertices included in the point cloud and the number of vertices that can be rendered in memory (220). For example, the processor (240) may set a bounding box that surrounds the point cloud and set a plurality of bounding boxes by repeatedly dividing the bounding box in half until the number of vertices included in the bounding box becomes smaller than the number of vertices that can be rendered in memory (220).

[0050] Specifically, the processor (240) can obtain the minimum and maximum values ​​for each of the three-dimensional coordinates (e.g., x coordinate, y coordinate, and z coordinate) of the point cloud and use them to set a bounding box that encloses the entire point cloud. For example, the processor (240) can determine the total number of vertices (vn) included in the point cloud and set the number of vertices available for rendering (available vn) in memory (220). Based on the total number of vertices and the number of vertices available for rendering, the processor (240) can set the number of bounding boxes (e.g., min {x∈Z : z ≥ (vn / available vn)}) and can divide the bounding boxes according to the set number. As another example, the bounding box may be formed in the shape of a rectangular prism and the lengths of the edges in the horizontal, vertical, and height directions may differ from each other. The processor (240) can divide the bounding box in half along the axis having the longest edge, and can repeat the process of dividing until the number of vertices contained in each divided bounding box becomes smaller than the number of vertices that can be rendered in memory (220).

[0051] According to one embodiment, the processor (240) may store a plurality of temporary files in storage (230) that store information for each point cloud group included in each of the plurality of bounding boxes. The temporary files may include coordinate information of all vertices included in each point cloud group. The processor (240) may store the temporary files in association with the center information (information for identifying the bounding box), storage path, and filename of the corresponding bounding box. The processor (240) may upload the temporary files for a specific bounding box to memory (220) and perform the following processing for each of the plurality of bounding boxes. The point cloud groups included in the divided bounding boxes may be sufficiently uploaded to memory (220) and processed.

[0052] According to one embodiment, the processor (240) can render the original vertices of a point cloud group included in a bounding box corresponding to a region of interest (ROI) among a plurality of bounding boxes. The processor (240) can visually display the original point cloud group corresponding to the ROI as is without sampling.

[0053] According to one embodiment, the processor (240) can render the sampled vertices of a point cloud group included in the remaining bounding box among a plurality of bounding boxes. The processor (240) can perform sampling on the point cloud group corresponding to the area excluding the ROI and visually display the sampled vertices. Sampling of a point cloud group included in a specific bounding box is performed in the following manner.

[0054] According to one embodiment, the processor (240) can calculate the average distance (dd) between each of the multiple vertices included in a point cloud group contained in a specific bounding box and the nearest point for each of the multiple vertices. The processor (240) can search for the nearest point using a kd-tree, calculate the distance between the vertex and the nearest point for each of the vertices in the point cloud group, and calculate the average value of the calculated distances.

[0055] According to one embodiment, the processor (240) can set a voxel included in a specific bounding box based on an average distance and the corner ratio of a specific bounding box. A typical voxel is formed in a cube shape, but a voxel handled by a data lightweighting device according to one embodiment may be formed in a rectangular shape. The size of the voxel may be set, for example, to (dd*ratio_x, dd*ratio_y, dd*ratio_z). For example, if the average distance (dd) between the nearest points of a point cloud group included in a specific bounding box is 0.01 and the three corner lengths of the specific bounding box are 1000, 500, and 300 respectively, the ratio may be 10:5:3 and the size of the voxel may be set to (0.1, 0.05, 0.03).

[0056] According to one embodiment, the processor (240) can determine the number of vertices included in each voxel. The target range for sampling can be set based on the size of available memory (220) and the number of renderable points, etc.

[0057] According to one embodiment, the processor (240) may repeatedly divide the voxel in half until it falls within the specified range when the number of vertices contained in the voxel is greater than the specified range. The division of the voxel may be performed on a principle similar to the division of a bounding box. The processor (240) may ensure that the number of vertices contained in the voxel falls within the specified range by dividing the voxel in half based on the longest edge.

[0058] Meanwhile, the processor (240) may repeatedly combine voxels until the number of vertices contained in the voxels is within the specified range if the number of vertices contained in the voxels is smaller than the specified range. The combination of voxels may be achieved by combining two voxels placed in the direction of the shortest edge. The number of vertices contained in the combined voxels may be within the specified range.

[0059] According to one embodiment, the processor (240) can sample multiple vertices included in a point cloud group contained within a specific bounding box using a divided (or combined) voxel. The processor (240) can complete the sampling by replacing each divided (or combined) voxel with a single point. The point to be replaced may be the center point of each voxel or a selected vertex among the vertices included in the voxel.

[0060] The processor (240) can complete sampling of the entire point cloud by repeating the process described above for each of the multiple bounding boxes, and then render the point cloud group corresponding to the ROI as is, and render the remaining point cloud group in a sampled state.

[0061]

[0062] FIG. 3 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0063] Referring to FIG. 3, a data lightweighting device according to one embodiment can perform decimation on a mesh. The data lightweighting device can select an edge (p1-p2) to be decimated among the edges forming the mesh. The data lightweighting device can replace two vertices (p1, p2) included in the edge with one vertex (p0). The location of the vertex (p0) may be determined, for example, as the point where the distance to the remaining vertices is minimized, or it may be determined in various other ways. The data lightweighting device can perform decimation by creating an edge that connects the replaced vertex (p0) to the remaining vertices that were connected to the two vertices (p1, p2). By performing decimation on a specific edge (p1-p2), the edge (p1-p2) is deleted and a new vertex (p0) is created, and surrounding polygons associated with the two vertices (p1, p2) can be modified.

[0064]

[0065] FIG. 4 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0066] Referring to FIG. 4, a data lightweighting device according to one embodiment can perform decimation on a specific edge as described with reference to FIG. 3 (410). To determine the suitability of the decimation, the data lightweighting device can compare the distance (p) between the polygon modified by the decimation and an adjacent vertex with a reference distance (2d) (420). If the reference distance (2d) is smaller than the distance (p) between the modified polygon and an adjacent vertex, the data lightweighting device can apply the decimation (430), and if the reference distance (2d) is larger than the distance (p) between the modified polygon and an adjacent vertex, the decimation can be canceled (440). After it is determined whether to apply decimation to a specific edge, the data lightweighting device can verify whether inspection has been completed for all edges (450). The data lightweighting device can repeat steps 410 through 450 for all edges included in the 3D mesh. When inspection of all edges is completed, the data lightweighting device can terminate decimation and provide the compressed mesh to the user (460).

[0067]

[0068] FIG. 5 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0069] Referring to FIG. 5, a data lightweighting device according to one embodiment may set a bounding box (520) containing a point cloud (510) inside. The bounding box (520) may be set by the maximum x-coordinate, minimum x-coordinate, maximum y-coordinate, minimum y-coordinate, maximum z-coordinate, and minimum z-coordinate of all vertices included in the point cloud (510). If the number of vertices of the point cloud (510) included in the bounding box (520) is greater than a specified value (maximum number of vertices that can be rendered in memory), the data lightweighting device may repeatedly subdivide the bounding box (520). Since the x-axis direction edge of the bounding box (520) is the longest, the bounding box (520) may be subdivided in a direction perpendicular to the x-axis, and the first subdivided bounding box may be subdivided in a direction perpendicular to the z-axis by a similar principle.

[0070] The secondly divided bounding box (530) may include a first bounding box (531), a second bounding box (532), a third bounding box (533), and a fourth bounding box (534). In this document, the point cloud included in the first bounding box (531) is referred to as the first point cloud group, and the point cloud groups included in the remaining bounding boxes (532, 533, 534) are referred to in a similar manner. If the number of vertices included in each of the first to fourth point cloud groups is less than a specified number, the data lightweighting device may terminate the division of the bounding box (530).

[0071]

[0072] FIG. 6 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0073] Referring to FIG. 6, a data lightweighting device according to one embodiment may generate temporary files corresponding to point cloud groups included in each of the first bounding box (531), the second bounding box (532), the third bounding box (533), and the fourth bounding box (534). The data lightweighting device may generate four temporary files (610) corresponding to each of the four bounding boxes (531, 532, 533, 534). Each of the four temporary files (610) may include coordinate information of the first point cloud group, coordinate information of the second point cloud group, coordinate information of the third point cloud group, and coordinate information of the fourth point cloud group. The four temporary files (610) may be stored in storage (630).

[0074] The data lightweighting device can upload a first temporary file (611) containing coordinate information of a first point cloud group among four temporary files (610) to memory (620). Each temporary file (610) can be stored in storage (630) in a size that can be uploaded to memory (620) by dividing the bounding box. The data lightweighting device can perform processing such as sampling and rendering on the first point cloud group uploaded to memory (620).

[0075]

[0076] FIG. 7 is a diagram illustrating an exemplary operation of a device for lightweighting scan-based 3D data according to one embodiment.

[0077] Referring to FIG. 7, a data lightweighting device according to one embodiment may upload a first point cloud group contained in a first bounding box (531) to memory (620). The data lightweighting device may calculate the average distance between all vertices contained in the first point cloud group and the nearest point of those vertices. The data lightweighting device may set voxels based on the average distance and the corner ratio of the first bounding box (531). If the number of vertices included in the initial voxel is greater than a specified range, the data lightweighting device may repeatedly divide the voxels until they fall within the specified range. Additionally, if the number of vertices included in the initial voxel is smaller than a specified range, the data lightweighting device may repeatedly combine the voxels until they fall within the specified range. The divided or combined voxels (711) may be sampled as a single point. The data lightweighting device may also sequentially upload the remaining bounding boxes to memory (620) to set voxels and perform sampling.

[0078]

[0079] FIG. 8 is a flowchart illustrating a method for lightweighting scan-based 3D data according to one embodiment.

[0080] In the following, it is assumed that the data lightweighting device of FIG. 2 performs the process of FIG. 8. Also, in the description of FIG. 8, the operation described as being performed by the data lightweighting device can be understood as being controlled by the processor (240).

[0081] Referring to FIG. 8, in step 810, the data lightweighting device can form a three-dimensional mesh composed of a plurality of polygons based on a point cloud obtained by scanning a target.

[0082] In step 820, the data lightweighting device can calculate a reference distance for decimation based on the distance between vertices included in the point cloud.

[0083] In step 830, the data lightweighting device can perform decimation for a specific edge by generating a vertex that replaces two vertices constituting a specific edge included in the mesh.

[0084] In step 840, the data lightweighting device can determine whether to apply decimation to a specific edge by comparing the distance between a polygon modified by decimation to a specific edge and a vertex adjacent to the modified polygon with a reference distance.

[0085] In step 850, the data lightweighting device can cancel the decimation for a specific edge if the distance between the modified polygon and an adjacent vertex is greater than the reference distance.

[0086]

[0087] The embodiments of this document and the terms used therein are not intended to limit the technology described in this document to specific embodiments and should be understood to include various modifications, equivalents, and / or substitutions of said embodiments. In relation to the description of the drawings, similar reference numerals may be used for similar components. A singular expression may include a plural expression unless the context clearly indicates otherwise. In this document, expressions such as "A or B," "at least one of A and / or B," "A, B or C," or "at least one of A, B and / or C" may include all possible combinations of items listed together. Expressions such as "first," "second," "first," or "second" may modify said components regardless of order or importance and are used only to distinguish one component from another and do not limit said components. When it is mentioned that a component is "(functionally or telecommunicationally) connected" or "connected" to another component, said component may be directly connected to said other component or connected through said other component.

[0088] In this document, "adapted to or configured to" may be used interchangeably with, depending on the context, for example, hardware- or software-wise, "suitable for," "capable of," "modified to," "made to," "capable of," or "designed to." In some cases, the expression "device configured to" may mean that the device is "capable of" in conjunction with other devices or components. For example, the phrase "processor configured to perform A, B, and C" may mean a dedicated processor for performing those operations (e.g., an embedded processor) or a general-purpose processor (e.g., a CPU) capable of performing those operations by executing one or more programs stored in a memory device.

[0089] As used in this document, the term “module” includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A “module” may be a component formed as a whole or a minimum unit or part thereof that performs one or more functions. A “module” may be implemented mechanically or electronically and may include, for example, an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs), or programmable logic device, known or under development, that performs certain operations.

[0090] At least a portion of a device (e.g., modules or functions thereof) or a method (e.g., operations) according to one embodiment may be implemented as instructions stored in a computer-readable storage medium in the form of program modules. When said instructions are executed by a processor, the processor may perform a function corresponding to said instructions.

[0091] Each component (e.g., module or program module) according to one embodiment may be composed of a single or multiple entities, and some of the aforementioned sub-components may be omitted or additional sub-components may be included. Generally or additionally, some components (e.g., module or program module) may be integrated into a single entity to perform the functions performed by each of the respective components prior to integration in the same or similar manner. The operations performed by the module, program module, or other components according to one embodiment may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations added.

Claims

1. In a device for lightweighting scan-based 3D data, Communication circuit; Memory; and It includes a processor electrically connected to the communication circuit and the memory, and The above processor is, Based on the point cloud obtained by scanning the target, a 3D mesh composed of multiple polygons is formed, and Calculate a reference distance for decimation based on the distance between vertices included in the above point cloud, and Decimation is performed on a specific edge by generating a vertex that replaces two vertices constituting the specific edge included in the mesh, and By comparing the distance between a polygon modified by the decimation for the specific edge and a vertex adjacent to the modified polygon with the reference distance, the application of the decimation for the specific edge is determined, and A device characterized by canceling the decimation for the specific edge if the distance between the modified polygon and the adjacent vertex is greater than the reference distance.

2. In Paragraph 1, The above processor is, A device characterized by calculating the average value of the distance between each of all vertices included in the point cloud and the closest vertex for each of all vertices as the reference distance.

3. In Paragraph 1, The above processor is, When calculating the distance between the modified polygon and the adjacent vertex, the modified polygon is sampled into multiple points, and A device characterized by calculating the distance between the plurality of points and the adjacent vertices by replacing the above modified polygon.

4. In Paragraph 1, The above processor is, A device characterized by repeatedly performing the decimation for each of the remaining edges included in the mesh, determining whether to apply the decimation, terminating the decimation, and providing a compressed mesh.

5. In Paragraph 1, The above processor is, A plurality of bounding boxes are set to divide the point cloud based on the number of vertices included in the point cloud and the number of vertices renderable in the memory, and Render the original vertices of the point cloud group included in the bounding box corresponding to the ROI (region of interesting) among the plurality of bounding boxes above, and A device characterized by rendering a sampled vertex of a point cloud group included in the remaining bounding box among the plurality of bounding boxes.

6. In Paragraph 5, The above processor is, Set a bounding box surrounding the above point cloud, A device characterized by setting a plurality of bounding boxes by repeatedly dividing the bounding box in half until the number of vertices included in the bounding box becomes smaller than the number of vertices renderable in the memory.

7. In Paragraph 5, The above processor is, A plurality of temporary files storing information for each point cloud group included in each of the plurality of bounding boxes are stored in storage, and A device characterized by uploading a temporary file for a specific bounding box to the memory.

8. In Paragraph 7, The above processor is, Calculate the average distance between each of the plurality of vertices included in the point cloud group included in the specific bounding box above and the nearest point for each of the plurality of vertices, and Based on the above average distance and the corner ratio of the above specific bounding box, a voxel included in the above specific bounding box is set, The voxel is repeatedly divided in half until the number of vertices contained in the voxel falls within a specified range, and A device characterized by sampling a plurality of vertices included in a point cloud group included in a specific bounding box using the above-described divided voxels.

9. In a method for lightweighting scan-based 3D data, A step of forming a three-dimensional mesh composed of multiple polygons based on a point cloud obtained by scanning a target; A step of calculating a reference distance for decimation based on the distance between vertices included in the above point cloud; A step of performing decimation on a specific edge by generating a vertex that replaces two vertices constituting the specific edge included in the mesh; A step of determining whether to apply decimation to the specific edge by comparing the distance between the polygon modified by the decimation to the specific edge and the vertex adjacent to the modified polygon with the reference distance; and A method characterized by including the step of canceling the decimation for the specific edge if the distance between the modified polygon and the adjacent vertex is greater than the reference distance.