CN113094463A - Unstructured point cloud storage method, device, equipment and medium - Google Patents

Unstructured point cloud storage method, device, equipment and medium Download PDF

Info

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
Application number
CN202110305877.1A
Other languages
Chinese (zh)
Inventor
梁凡
徐贵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202110305877.1A priority Critical patent/CN113094463A/en
Publication of CN113094463A publication Critical patent/CN113094463A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/328Management 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

Unstructured point cloud storage method, device, equipment and medium
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.
CN202110305877.1A 2021-03-23 2021-03-23 Unstructured point cloud storage method, device, equipment and medium Pending CN113094463A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
廖丽琼 等: "基于八叉树及KD树的混合型点云数据存储结构", 《计算机系统应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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