CN113094463A - Unstructured point cloud storage method, device, equipment and medium - Google Patents
Unstructured point cloud storage method, device, equipment and medium Download PDFInfo
- Publication number
- CN113094463A CN113094463A CN202110305877.1A CN202110305877A CN113094463A CN 113094463 A CN113094463 A CN 113094463A CN 202110305877 A CN202110305877 A CN 202110305877A CN 113094463 A CN113094463 A CN 113094463A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- tree
- octree
- cloud data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000011218 segmentation Effects 0.000 claims abstract description 46
- 230000006835 compression Effects 0.000 claims abstract description 7
- 238000007906 compression Methods 0.000 claims abstract description 7
- 238000010276 construction Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 101100494773 Caenorhabditis elegans ctl-2 gene Proteins 0.000 description 4
- 101100112369 Fasciola hepatica Cat-1 gene Proteins 0.000 description 4
- 101100005271 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cat-1 gene Proteins 0.000 description 4
- 101150019148 Slc7a3 gene Proteins 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 230000005484 gravity Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Image Generation (AREA)
Abstract
The invention discloses a method, a device, equipment and a medium for storing unstructured point clouds, wherein the method comprises the following steps: acquiring a geometric boundary of point cloud data; determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data; constructing an octree according to the segmentation depth and the fine granularity, wherein the octree is used for storing node information of the point cloud data; constructing a k-d tree according to the point cloud data, wherein the k-d tree is used for storing index information and node coordinate information of the point cloud data; storing the address information of the k-d tree into a leaf node of the octree, and determining the unique contact information between the k-d tree and the octree; and storing the point cloud data according to the k-d tree and the octree. The invention improves the searching efficiency and the point cloud compression efficiency, and can be widely applied to the technical field of point cloud data processing.
Description
Technical Field
The invention relates to the technical field of point cloud data processing, in particular to an unstructured point cloud storage method, device, equipment and medium.
Background
The existing three-dimensional point cloud data representation method can be divided into two categories of structured point cloud and unstructured point cloud. The structured point cloud is generally represented by a polygonal Mesh (Mesh), abstracts the surface of a three-dimensional scene into a set of patches, includes a vertex list and connection information between points, represents the geometric information and topological relation of the surface of an object, and can also include attribute information of the three-dimensional object, such as color information of each point, a normal line of the Mesh, a reflection coefficient and the like. An unstructured point cloud consists of a set of independent three-dimensional points. Each point comprises geometric information and texture information, the geometric information represents the position of the point in a three-dimensional space, the texture information comprises a plurality of attributes such as color, reflection coefficient, surface normal vector and the like, and no specific precedence order or spatial connection relation exists among the points.
The tree structure is a point cloud data hierarchical division mode widely used at present. Common tree structures include octrees, k-d trees, and the like.
The algorithm of the octree algorithm is simple to implement, but for a large amount of Cat1 and Cat3 data, it is difficult to determine the minimum granularity (leaf nodes), when the granularity is large, the data amount of some nodes may still be large, the subsequent query efficiency is still low, otherwise, the granularity is small, the depth of the octree is increased, the required memory space is also large (each non-leaf node needs eight pointers), and the efficiency is also reduced. The dividing of the equal parts is based on the principle that under the condition that the gravity center of the data is inclined, the efficiency is not too high due to the limitation of the dividing depth.
The k-d tree is advantageous in neighborhood searching, but for a large amount of Cat1 and Cat3 data, if the division granularity is small, the cost of building the tree is also large, but the tree is more flexible than an octree. In the case of a small data amount, the search efficiency is relatively high, but in the case of an increase in the data amount, the efficiency is somewhat lowered, and generally, the efficiency is a linear rising law.
Disclosure of Invention
In view of this, embodiments of the present invention provide an unstructured point cloud storage method, apparatus, device, and medium to improve the search efficiency and improve the point cloud compression efficiency.
One aspect of the present invention provides an unstructured point cloud storage method, including:
acquiring a geometric boundary of point cloud data;
determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
constructing an octree according to the segmentation depth and the fine granularity, wherein the octree is used for storing node information of the point cloud data;
constructing a k-d tree according to the point cloud data, wherein the k-d tree is used for storing index information and node coordinate information of the point cloud data;
storing the address information of the k-d tree into a leaf node of the octree, and determining the unique contact information between the k-d tree and the octree;
and storing the point cloud data according to the k-d tree and the octree.
Optionally, the constructing an octree according to the segmentation depth and the fine granularity size includes:
determining the scene maximum size of the point cloud data, and constructing a first cube according to the scene maximum size;
storing unit element elements in the point cloud data into the first cube;
and gradually dividing the first cube into eight sub-cubes until the division times reach the division depth, and completing the construction of the octree.
Optionally, the constructing an octree according to the segmentation depth and the fine granularity further includes:
when the number of unit elements allocated to the sub-cube is the same as that of the corresponding parent cube, the splitting operation of the sub-cube is stopped.
Optionally, the constructing a k-d tree from the point cloud data includes:
calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
searching the point cloud data in different dimensions according to the segmentation axis, and determining median data;
putting the median data into a current node of a k-d tree;
dividing the value of the point cloud data which is smaller than the median data into the left branch of a k-d tree, and dividing the value of the point cloud data which is greater than or equal to the median data into the right branch of the k-d tree;
and updating the segmentation axis, and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
Another aspect of the present invention further provides an unstructured point cloud storage device, including:
the acquisition module is used for acquiring a geometric boundary of the point cloud data;
the preprocessing module is used for determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
the first construction module is used for constructing an octree according to the segmentation depth and the fine granularity, and the octree is used for storing node information of the point cloud data;
the second construction module is used for constructing a k-d tree according to the point cloud data, and the k-d tree is used for storing index information and node coordinate information of the point cloud data;
the association module is used for storing the address information of the k-d tree into a leaf node of the octree and determining the unique contact information between the k-d tree and the octree;
and the storage compression module is used for storing the point cloud data according to the k-d tree and the octree.
Optionally, the first building block includes:
the determining unit is used for determining the scene maximum size of the point cloud data and constructing a first cube according to the scene maximum size;
the first storage unit is used for storing unit element in the point cloud data into the first cube;
and the dividing unit is used for successively dividing the first cube into eight sub-cubes until the dividing times reach the dividing depth, and completing the construction of the octree.
Optionally, the second building block comprises:
the calculation unit is used for calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
the retrieval unit is used for retrieving the point cloud data in different dimensions according to the segmentation axis and determining median data;
the second storage unit is used for placing the median data into the current node of the k-d tree;
the dividing unit is used for dividing the value which is smaller than the median data in the point cloud data into the left branch of a k-d tree and dividing the value which is greater than or equal to the median data in the point cloud data into the right branch of the k-d tree;
and the construction unit is used for updating the segmentation axis and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
Another aspect of the embodiments of the present invention further provides an electronic device, including a processor and a memory;
the memory is used for storing programs;
the processor executes the program to implement the method as described above.
Yet another aspect of the embodiments of the present invention provides a computer-readable storage medium, which stores a program, which is executed by a processor to implement the method as described above.
The embodiment of the invention also discloses a computer program product or a computer program, which comprises computer instructions, and the computer instructions are stored in a computer readable storage medium. The computer instructions may be read by a processor of a computer device from a computer-readable storage medium, and the computer instructions executed by the processor cause the computer device to perform the foregoing method.
The method comprises the steps of firstly, acquiring a geometric boundary of point cloud data; then, according to the geometric boundary of the point cloud data, determining the segmentation depth of the octree and the fine granularity of the octree; constructing an octree according to the segmentation depth and the fine granularity, wherein the octree is used for storing node information of the point cloud data; constructing a k-d tree according to the point cloud data, wherein the k-d tree is used for storing index information and node coordinate information of the point cloud data; then storing the address information of the k-d tree into a leaf node of the octree, and determining the unique contact information between the k-d tree and the octree; and finally, storing the point cloud data according to the k-d tree and the octree. The invention improves the searching efficiency and the point cloud compression efficiency.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a flowchart illustrating the overall steps provided by an embodiment of the present invention;
FIG. 2 is a schematic diagram of a two-dimensional k-d tree partition structure according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a three-dimensional k-d tree partition structure according to an embodiment of the present invention;
FIG. 4 is a flowchart illustrating a k-d tree creation process according to an embodiment of the present invention;
FIG. 5 is a diagram illustrating an octree partition structure and encoding according to an embodiment of the present invention;
FIG. 6 is a flow chart of octree construction provided by the embodiment of the present invention;
fig. 7 is a flowchart of building a hybrid memory structure according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
To solve the problems in the prior art, embodiments of the present invention provide an unstructured point cloud storage method, apparatus, device, and medium, where as shown in fig. 1, the method includes the following steps:
acquiring a geometric boundary of point cloud data;
determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
constructing an octree according to the segmentation depth and the fine granularity, wherein the octree is used for storing node information of the point cloud data;
constructing a k-d tree according to the point cloud data, wherein the k-d tree is used for storing index information and node coordinate information of the point cloud data;
storing the address information of the k-d tree into a leaf node of the octree, and determining the unique contact information between the k-d tree and the octree;
and storing the point cloud data according to the k-d tree and the octree.
Optionally, the constructing an octree according to the segmentation depth and the fine granularity size includes:
determining the scene maximum size of the point cloud data, and constructing a first cube according to the scene maximum size;
storing unit element elements in the point cloud data into the first cube;
and gradually dividing the first cube into eight sub-cubes until the division times reach the division depth, and completing the construction of the octree.
Optionally, the constructing an octree according to the segmentation depth and the fine granularity further includes:
when the number of unit elements allocated to the sub-cube is the same as that of the corresponding parent cube, the splitting operation of the sub-cube is stopped.
Optionally, the constructing a k-d tree from the point cloud data includes:
calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
searching the point cloud data in different dimensions according to the segmentation axis, and determining median data;
putting the median data into a current node of a k-d tree;
dividing the value of the point cloud data which is smaller than the median data into the left branch of a k-d tree, and dividing the value of the point cloud data which is greater than or equal to the median data into the right branch of the k-d tree;
and updating the segmentation axis, and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
The following describes the implementation process of the method of the present invention in detail with reference to the attached drawings of the specification:
the invention mainly aims at point cloud data to be discussed, and respectively processes geometric position information and attribute information of point cloud, wherein an octree is constructed for the geometric information, fast neighborhood searching is required to be realized for recoloring in the attribute information processing, and in order to improve the efficiency of subsequent processing of the point cloud data and reduce the distortion degree of point cloud model reconstruction, the most core problem is to carry out reasonable hierarchical division on the point cloud data, establish a spatial topological structure of the point cloud data and realize fast searching based on neighborhood relationship.
The algorithm of the octree algorithm is simple to implement, but for a large amount of Cat1 and Cat3 data, it is difficult to determine the minimum granularity (leaf nodes), when the granularity is large, the data amount of some nodes may still be large, the subsequent query efficiency is still low, otherwise, the granularity is small, the depth of the octree is increased, the required memory space is also large (each non-leaf node needs eight pointers), and the efficiency is also reduced. The dividing of the equal parts is based on the principle that under the condition that the gravity center of the data is inclined, the efficiency is not too high due to the limitation of the dividing depth.
The k-d tree is advantageous in neighborhood searching, but for a large amount of Cat1 and Cat3 data, if the division granularity is small, the cost of building the tree is also large, but the tree is more flexible than an octree. In the case of a small data amount, the search efficiency is relatively high, but in the case of an increase in the data amount, the efficiency is somewhat lowered, and generally, the efficiency is a linear rising law.
Therefore, the octree and the k-d tree are combined to be used as a storage structure of point cloud data input in the G-PCC, the octree is applied to large-granularity division and search, and then the k-d tree is used for subdivision, so that the search efficiency is improved, and the point cloud compression efficiency problem in the G-PCC scheme is improved.
A k-d tree, also known as a k-dimensional tree, is a data structure used in computer science to organize sets of points representing k-dimensional space. It is a binary tree with other constraints. k-d trees are useful for range and neighbor searches. We typically only process in three dimensions for this purpose, so all k-d trees will be three-dimensional k-d trees. Each level of the k-d tree separates all the child nodes in a given dimension. All children nodes at the root of the tree are separated in the first specified dimension (i.e., if the first dimension coordinate is smaller than the point of the root node it will be in the left sub-tree and if it is larger than the point of the root node it will be in the right sub-tree). Each level of the tree is split in the next dimension and all other dimensions are used and then the tree returns to the first dimension, the most efficient way to build a k-d tree is to use the splitting method like fast classification, putting the value of the given dimension on the root, the left sub-tree containing the smaller value in that dimension and the right sub-tree containing the larger value. This process is then repeated on the left and right subtrees, respectively, until the last tree that the user is ready to sort consists of only one element.
For a two-dimensional space, the division space is a strip of dividing lines, as shown in fig. 2. For three-dimensional space, the division plane is called a hyperplane, and is generally referred to herein as a division plane, as shown in fig. 3. Firstly, the vertical plane with red frame divides the whole space into two parts, and the two parts are divided into an upper part and a lower part by the horizontal plane with green frame. Finally, the 4 subspaces are divided into two parts by a blue vertical plane of the frame to become 8 subspaces, and the 8 subspaces are leaf nodes.
The k-d tree involves two important steps of construction and search, and for constructing the k-d tree, the best balance should be achieved, and the more balanced the tree means that the segmentation is more average and the search time is shorter. Two principles need to be satisfied for this:
(1) the variance can measure the data distribution compactness of the dimension, so that the variance of each dimension of the point cloud data needs to be calculated, and the dimension with a large variance value is selected to start recursive division.
(2) When a certain dimension starts to be divided into spaces, the median of all data of the dimension is selected as a dividing line/dividing plane.
The algorithm comprises the following steps:
and inputting a disordered point cloud and a dimension k.
And (3) outputting: and (5) carrying out kd-tree corresponding to the point cloud.
Specifically, as shown in fig. 4, the k-d tree construction process includes the following steps:
(1) initializing a split axis: calculating the variance of the data of each dimension, taking the dimension with the maximum variance as a segmentation axis and marking as r;
(2) determining a node: searching the current data according to the dimension of the segmentation axis, finding median data, and putting the median data on the current node;
(3) dividing the double branches:
dividing a left branch: dividing all values smaller than the median into left branches in the dimension of the current segmentation axis;
dividing a right branch: in the current split axis dimension, all values greater than or equal to the median are split into the right branch.
(4) Updating the segmentation axis: r ═ r + 1)% k;
(5) determining child nodes:
determining a left node: performing (2) in the data of the left branch;
determining a right node: performing (2) in the data of the right branch;
(6) the kd-tree construction is completed.
An octree structure is a data model. The octree structure divides the voxel of the geometric entity of the three-dimensional space, each voxel has the same time and space complexity, and divides the geometric object of the three-dimensional space with the size of (2n x 2n) by a cyclic recursive division method, thereby forming a directional diagram with root nodes. If the divided voxels have the same attribute in the octree structure, the voxel constitutes a leaf node; otherwise, the voxel is further divided into 8 subcubes, and the subdivision is sequentially performed, and the spatial object with the size of (2n × 2n) is divided into n times at most, as shown in fig. 5.
Specifically, the construction process of the octree is shown in FIG. 6:
(1) setting the maximum recursion depth according to the number of data;
(2) finding the maximum size of the scene, i.e. the bounding box, and building a first cube with this size;
(3) sequentially dropping the unit elements into a cube that can be contained and has no child nodes;
(4) if the maximum recursion depth is not reached, subdividing eight equal parts, and sharing all unit element elements contained in the cube to eight sub-cubes;
(5) if the number of unit elements allocated to the sub-cube is found to be not zero and is the same as that of the parent cube, the sub-cube stops subdividing because the subdivided space must be allocated less according to the space division theory, and if the subdivided space is the same in number, how to divide the subdivided space is the same in number, which can cause infinite cutting;
(6) repeat (3) until the maximum recursion depth is reached.
Finally, in the embodiment of the present invention, a hybrid storage structure is constructed according to a k-d tree and an octree, as shown in fig. 7, which specifically includes the following steps:
(1) firstly, acquiring a geometric boundary, namely a minimum bounding box, of a cloud data object of a searched point, and setting the segmentation depth of the octree, so as to further determine the fine granularity of the octree, namely the size of leaf nodes, and the geometric size of the corresponding leaf nodes;
(2) constructing an octree according to octree setting parameters, and storing related node information;
(3) storing index information and node coordinate information for octree leaf nodes in the data storage manner of the k-d tree given by part A, storing the address of each k-d tree into the octree leaf nodes, associating the octree with the k-d tree, and ensuring that the association is unique.
Another aspect of the present invention further provides an unstructured point cloud storage device, including:
the acquisition module is used for acquiring a geometric boundary of the point cloud data;
the preprocessing module is used for determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
the first construction module is used for constructing an octree according to the segmentation depth and the fine granularity, and the octree is used for storing node information of the point cloud data;
the second construction module is used for constructing a k-d tree according to the point cloud data, and the k-d tree is used for storing index information and node coordinate information of the point cloud data;
the association module is used for storing the address information of the k-d tree into a leaf node of the octree and determining the unique contact information between the k-d tree and the octree;
and the storage compression module is used for storing the point cloud data according to the k-d tree and the octree.
Optionally, the first building block includes:
the determining unit is used for determining the scene maximum size of the point cloud data and constructing a first cube according to the scene maximum size;
the first storage unit is used for storing unit element in the point cloud data into the first cube;
and the dividing unit is used for successively dividing the first cube into eight sub-cubes until the dividing times reach the dividing depth, and completing the construction of the octree.
Optionally, the second building block comprises:
the calculation unit is used for calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
the retrieval unit is used for retrieving the point cloud data in different dimensions according to the segmentation axis and determining median data;
the second storage unit is used for placing the median data into the current node of the k-d tree;
the dividing unit is used for dividing the value which is smaller than the median data in the point cloud data into the left branch of a k-d tree and dividing the value which is greater than or equal to the median data in the point cloud data into the right branch of the k-d tree;
and the construction unit is used for updating the segmentation axis and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
Another aspect of the embodiments of the present invention further provides an electronic device, including a processor and a memory;
the memory is used for storing programs;
the processor executes the program to implement the method as described above.
Yet another aspect of the embodiments of the present invention provides a computer-readable storage medium, which stores a program, which is executed by a processor to implement the method as described above.
The embodiment of the invention also discloses a computer program product or a computer program, which comprises computer instructions, and the computer instructions are stored in a computer readable storage medium. The computer instructions may be read by a processor of a computer device from a computer-readable storage medium, and the computer instructions executed by the processor cause the computer device to perform the foregoing method.
In alternative embodiments, the functions/acts noted in the block diagrams may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Furthermore, the embodiments presented and described in the flow charts of the present invention are provided by way of example in order to provide a more thorough understanding of the technology. The disclosed methods are not limited to the operations and logic flows presented herein. Alternative embodiments are contemplated in which the order of various operations is changed and in which sub-operations described as part of larger operations are performed independently.
Furthermore, although the present invention is described in the context of functional modules, it should be understood that, unless otherwise stated to the contrary, one or more of the described functions and/or features may be integrated in a single physical device and/or software module, or one or more functions and/or features may be implemented in a separate physical device or software module. It will also be appreciated that a detailed discussion of the actual implementation of each module is not necessary for an understanding of the present invention. Rather, the actual implementation of the various functional modules in the apparatus disclosed herein will be understood within the ordinary skill of an engineer, given the nature, function, and internal relationship of the modules. Accordingly, those skilled in the art can, using ordinary skill, practice the invention as set forth in the claims without undue experimentation. It is also to be understood that the specific concepts disclosed are merely illustrative of and not intended to limit the scope of the invention, which is defined by the appended claims and their full scope of equivalents.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
The logic and/or steps represented in the flowcharts or otherwise described herein, e.g., an ordered listing of executable instructions that can be considered to implement logical functions, can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. For the purposes of this description, a "computer-readable medium" can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic device) having one or more wires, a portable computer diskette (magnetic device), a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disc read-only memory (CDROM). Additionally, the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.
It should be understood that portions of the present invention may be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, the various steps or methods may be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, any one or combination of the following techniques, which are known in the art, may be used: a discrete logic circuit having a logic gate circuit for implementing a logic function on a data signal, an application specific integrated circuit having an appropriate combinational logic gate circuit, a Programmable Gate Array (PGA), a Field Programmable Gate Array (FPGA), or the like.
In the description herein, references to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, the schematic representations of the terms used above do not necessarily refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples.
While embodiments of the invention have been shown and described, it will be understood by those of ordinary skill in the art that: various changes, modifications, substitutions and alterations can be made to the embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.
While the preferred embodiments of the present invention have been illustrated and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
Claims (9)
1. An unstructured point cloud storage method is characterized by comprising the following steps:
acquiring a geometric boundary of point cloud data;
determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
constructing an octree according to the segmentation depth and the fine granularity, wherein the octree is used for storing node information of the point cloud data;
constructing a k-d tree according to the point cloud data, wherein the k-d tree is used for storing index information and node coordinate information of the point cloud data;
storing the address information of the k-d tree into a leaf node of the octree, and determining the unique contact information between the k-d tree and the octree;
and storing the point cloud data according to the k-d tree and the octree.
2. The unstructured point cloud storage method of claim 1, wherein the constructing an octree according to the segmentation depth and the fine granularity size comprises:
determining the scene maximum size of the point cloud data, and constructing a first cube according to the scene maximum size;
storing unit element elements in the point cloud data into the first cube;
and gradually dividing the first cube into eight sub-cubes until the division times reach the division depth, and completing the construction of the octree.
3. The unstructured point cloud storage method of claim 2, wherein the constructing an octree according to the segmentation depth and the fine granularity size further comprises:
when the number of unit elements allocated to the sub-cube is the same as that of the corresponding parent cube, the splitting operation of the sub-cube is stopped.
4. The unstructured point cloud storage method of claim 1, wherein the constructing a k-d tree from the point cloud data comprises:
calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
searching the point cloud data in different dimensions according to the segmentation axis, and determining median data;
putting the median data into a current node of a k-d tree;
dividing the value of the point cloud data which is smaller than the median data into the left branch of a k-d tree, and dividing the value of the point cloud data which is greater than or equal to the median data into the right branch of the k-d tree;
and updating the segmentation axis, and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
5. An unstructured point cloud storage device, comprising:
the acquisition module is used for acquiring a geometric boundary of the point cloud data;
the preprocessing module is used for determining the segmentation depth of the octree and the fine granularity of the octree according to the geometric boundary of the point cloud data;
the first construction module is used for constructing an octree according to the segmentation depth and the fine granularity, and the octree is used for storing node information of the point cloud data;
the second construction module is used for constructing a k-d tree according to the point cloud data, and the k-d tree is used for storing index information and node coordinate information of the point cloud data;
the association module is used for storing the address information of the k-d tree into a leaf node of the octree and determining the unique contact information between the k-d tree and the octree;
and the storage compression module is used for storing the point cloud data according to the k-d tree and the octree.
6. The unstructured point cloud storage device of claim 5, wherein the first building module comprises:
the determining unit is used for determining the scene maximum size of the point cloud data and constructing a first cube according to the scene maximum size;
the first storage unit is used for storing unit element in the point cloud data into the first cube;
and the dividing unit is used for successively dividing the first cube into eight sub-cubes until the dividing times reach the dividing depth, and completing the construction of the octree.
7. The unstructured point cloud storage device of claim 5, wherein the second building module comprises:
the calculation unit is used for calculating the variance of the data of each dimension in the point cloud data, and taking the dimension with the maximum variance as a segmentation axis;
the retrieval unit is used for retrieving the point cloud data in different dimensions according to the segmentation axis and determining median data;
the second storage unit is used for placing the median data into the current node of the k-d tree;
the dividing unit is used for dividing the value which is smaller than the median data in the point cloud data into the left branch of a k-d tree and dividing the value which is greater than or equal to the median data in the point cloud data into the right branch of the k-d tree;
and the construction unit is used for updating the segmentation axis and continuously performing branch division in the left branch and the right branch respectively until a complete k-d tree is constructed.
8. An electronic device comprising a processor and a memory;
the memory is used for storing programs;
the processor executing the program realizes the method according to any one of claims 1-4.
9. A computer-readable storage medium, characterized in that the storage medium stores a program, which is executed by a processor to implement the method according to any one of claims 1-4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305877.1A CN113094463A (en) | 2021-03-23 | 2021-03-23 | Unstructured point cloud storage method, device, equipment and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305877.1A CN113094463A (en) | 2021-03-23 | 2021-03-23 | Unstructured point cloud storage method, device, equipment and medium |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113094463A true CN113094463A (en) | 2021-07-09 |
Family
ID=76668867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110305877.1A Pending CN113094463A (en) | 2021-03-23 | 2021-03-23 | Unstructured point cloud storage method, device, equipment and medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094463A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434514A (en) * | 2021-07-19 | 2021-09-24 | 中海油能源发展装备技术有限公司 | Voxelization index and output method of offshore oil and gas field point cloud model |
CN116051755A (en) * | 2023-04-03 | 2023-05-02 | 芯知科技(江苏)有限公司 | Three-dimensional data compression transmission method and device |
CN117036621A (en) * | 2023-10-08 | 2023-11-10 | 山东瑞鑫时空信息科技有限公司 | Geographic information plotter data management method based on Internet of things |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682103A (en) * | 2012-04-28 | 2012-09-19 | 北京建筑工程学院 | Three-dimensional space index method aiming at massive laser radar point cloud models |
US20130235050A1 (en) * | 2012-03-09 | 2013-09-12 | Nvidia Corporation | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit |
CN106951643A (en) * | 2017-03-22 | 2017-07-14 | 广东工业大学 | A kind of complicated outside plate three dimensional point cloud compressing method of hull and device |
-
2021
- 2021-03-23 CN CN202110305877.1A patent/CN113094463A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130235050A1 (en) * | 2012-03-09 | 2013-09-12 | Nvidia Corporation | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit |
CN102682103A (en) * | 2012-04-28 | 2012-09-19 | 北京建筑工程学院 | Three-dimensional space index method aiming at massive laser radar point cloud models |
CN106951643A (en) * | 2017-03-22 | 2017-07-14 | 广东工业大学 | A kind of complicated outside plate three dimensional point cloud compressing method of hull and device |
Non-Patent Citations (1)
Title |
---|
廖丽琼 等: "基于八叉树及KD树的混合型点云数据存储结构", 《计算机系统应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434514A (en) * | 2021-07-19 | 2021-09-24 | 中海油能源发展装备技术有限公司 | Voxelization index and output method of offshore oil and gas field point cloud model |
CN113434514B (en) * | 2021-07-19 | 2022-08-19 | 中海油能源发展装备技术有限公司 | Voxelization index and output method of offshore oil and gas field point cloud model |
CN116051755A (en) * | 2023-04-03 | 2023-05-02 | 芯知科技(江苏)有限公司 | Three-dimensional data compression transmission method and device |
CN116051755B (en) * | 2023-04-03 | 2023-06-16 | 芯知科技(江苏)有限公司 | Three-dimensional data compression transmission method and device |
CN117036621A (en) * | 2023-10-08 | 2023-11-10 | 山东瑞鑫时空信息科技有限公司 | Geographic information plotter data management method based on Internet of things |
CN117036621B (en) * | 2023-10-08 | 2024-02-09 | 山东瑞鑫时空信息科技有限公司 | Geographic information plotter data management method based on Internet of things |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Riegler et al. | Octnet: Learning deep 3d representations at high resolutions | |
CN102682103B (en) | Three-dimensional space index method aiming at massive laser radar point cloud models | |
CN113094463A (en) | Unstructured point cloud storage method, device, equipment and medium | |
Westenberg et al. | Volumetric attribute filtering and interactive visualization using the max-tree representation | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
JP4372477B2 (en) | Method and system for traversing a binary tree | |
CN109325993B (en) | Saliency feature enhanced sampling method based on class octree index | |
Lu et al. | Massive point cloud space management method based on octree-like encoding | |
US6075538A (en) | Time and space efficient data structure and method and apparatus for using the same for surface rendering | |
EP1586020A2 (en) | Methods, systems, and data structures for performing searches on three dimensional objects | |
WO2022121525A1 (en) | Method and device for rendering three-dimensional scene data, storage medium, and electronic device | |
Boubekeur et al. | Volume‐surface trees | |
RU2674326C2 (en) | Method of formation of neural network architecture for classification of object taken in cloud of points, method of its application for teaching neural network and searching semantically alike clouds of points | |
CN109118588B (en) | Automatic color LOD model generation method based on block decomposition | |
Oesterling et al. | Visual analysis of high dimensional point clouds using topological landscapes | |
CN108171793B (en) | Method for probing triangular mesh of laminated area | |
CN113868476B (en) | Octree point cloud preprocessing method based on local density | |
CN112102467B (en) | GPU-based parallel octree generation device and electronic equipment | |
Wang et al. | Space filling curve based point clouds index | |
CN107330209B (en) | Modeling wall intelligent template implementation method based on parametric design | |
CN111402422B (en) | Three-dimensional surface reconstruction method and device and electronic equipment | |
CN110738726B (en) | Robot vision-guided three-dimensional object reconstruction method based on octree | |
Hu et al. | Parallel BVH construction using locally density clustering | |
Deng et al. | Multiresolution foliage for forest rendering | |
CN113763529A (en) | Transformer substation modeling method based on three-dimensional scanning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210709 |
|
RJ01 | Rejection of invention patent application after publication |