US20160203636A1 - Method and device for extracting skeleton from point cloud - Google Patents
Method and device for extracting skeleton from point cloud Download PDFInfo
- Publication number
- US20160203636A1 US20160203636A1 US14/378,976 US201314378976A US2016203636A1 US 20160203636 A1 US20160203636 A1 US 20160203636A1 US 201314378976 A US201314378976 A US 201314378976A US 2016203636 A1 US2016203636 A1 US 2016203636A1
- Authority
- US
- United States
- Prior art keywords
- point cloud
- skeleton
- neighborhood
- point
- points
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000005070 sampling Methods 0.000 claims abstract description 89
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000000513 principal component analysis Methods 0.000 claims description 12
- 238000009499 grossing Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Definitions
- the present disclosure relates to a field of computer graphic processing, and more particularly relates to a method and a device for extracting a skeleton from a point cloud.
- a point cloud model generally means a point set of three-dimensional coordinate points on a surface of a scanned object calculated by emitting scan light from a three-dimensional scanner to the surface of the scanned object, and receiving reflected light.
- Point cloud three-dimensional rebuilding means rebuilding mesh data that can represent an original model based on certain point cloud model data, so as to make computer rendering and user interaction convenient.
- extracting a skeleton from the point cloud is a very important pre-processing step. Since the skeleton includes topology structure information of the object, the extracting of the point cloud skeleton can be regarded as an understanding process of the shape of the object. Once the point cloud skeleton is obtained, we can use the skeleton to reverse supplement the missing points and increase the point cloud data, laying a foundation for the following point cloud rebuilding process.
- Skeleton information can greatly help us analyzing and operating all kinds of graphics data, such as shape matching based on the skeleton, skeletal animation and so on.
- Extracting a skeleton from a closed three-dimensional grid is quite a mature technique, but extracting a skeleton from a disheveled point cloud is a new problem.
- the technique of extracting a skeleton from a grid cannot be directly apply in extracting a skeleton from a point cloud because there is a lack of grid connecting information in the point cloud, and the present grid skeleton extracting technique cannot solve the problem of noise, exterior points and missing points in the point cloud.
- a present solution that can extract a curve skeleton from a point cloud is a method proposed in 2009, called rotational symmetry axis (ROSA).
- This technique supposes the inputted point cloud data is dense and regular enough, so that a Laplace connecting relation can be built based on the point set, corresponding to building a hidden grid. And then extracts the skeleton with a more mature Laplace grid skeleton extracting technique.
- the ROSA solution in conventional technique deeply depends on point cloud normal vector information and a hypothesis of the basic shape of the object.
- normal vector information is a prerequisite of calculating local rotation symmetry centre points. Supposing the basic shape as a cylinder is a linchpin of well extracting axis even in missing data.
- normal vector information is a value estimated from local neighborhood point information rather than obtained directly from a hardware device. On the situation with a great deal of exterior points and noise, it is easy to estimate wrong normal vector and direction, thus, the accuracy of the ROSA solution for extracting point cloud skeleton in conventional technique is low.
- a method for extracting a skeleton form a point cloud includes:
- J represents a point set of the point cloud sampling data
- q represents the sampling points in the point set J
- I represents a neighborhood point set of the sampling points q
- x represents the neighborhood points in the neighborhood point set I
- R is a regular term
- ⁇ is a weighting coefficient
- h is a neighborhood radius of the neighborhood point set I
- ⁇ is a distribution coefficient
- the method further includes:
- ⁇ 0, ⁇ 1, and ⁇ 2 are three characteristic values of the covariance matrix, and ⁇ 0 ⁇ 1 ⁇ 2.
- the step of contracting the point cloud using an iterative formula includes gradually expanding the neighborhood radius, and contracting the point cloud according to the expanded neighborhood radius and the iterative formula.
- the step of gradually expanding the neighborhood radius includes defining an initial neighborhood radius
- h 0 2 ⁇ ⁇ d bb / ⁇ J ⁇ 3 ,
- the method further includes smoothing and centralizing the point cloud skeleton after connecting the skeleton branches and obtaining a point cloud skeleton.
- a point cloud skeleton extracting device comprises:
- a sampling data obtaining module configured to obtain inputted point cloud sampling data:
- a skeleton branches generating module configured to generate skeleton branches by contracting the point cloud using an iterative formula, the iterative formula is:
- J represents a point set of the point cloud sampling data
- q represents the sampling points in the point set J
- I represents a neighborhood point set of the sampling points q
- x represents the neighborhood points in the neighborhood point set I
- R is a regular term
- ⁇ is a weighting coefficient
- h is a neighborhood radius of the neighborhood point set I
- ⁇ is a distribution coefficient
- a skeleton generating module configured to connect the skeleton branches and obtain a point cloud skeleton.
- the skeleton branches generating module is further configured to build a covariance matrix of sampling points using principal component analysis algorithm
- ⁇ 0, ⁇ 1, and ⁇ 2 are three characteristic values of the covariance matrix, and ⁇ 0 ⁇ 1 ⁇ 2.
- the skeleton branches generating module is further configured to gradually expand the neighborhood radius, and contract the point cloud according to the expanded neighborhood radius and the iterative formula.
- the skeleton branches generating module is further configured to define an initial neighborhood radius
- h 0 2 ⁇ ⁇ d bb / ⁇ J ⁇ 3 ,
- the device further includes a point cloud skeleton adjusting module configured to smooth and centralize the point cloud skeleton.
- the method and device for extracting a point cloud skeleton add a regular term to the conventional point cloud skeleton contracting based on Lagrange intermediate value theorem, so as to make a calculated median point approaches the real median point relying on the regulating effect of the regular term, even if the sampling points are uneven, thereby increasing accuracy.
- FIG. 1 is a flow chart of a method for extracting a point cloud skeleton with an embodiment:
- FIG. 2 is a block diagram of a device for extracting a point cloud skeleton with an embodiment
- FIG. 3 is a block diagram of a device for extracting a point cloud skeleton with another embodiment.
- a method for extracting a point cloud skeleton which completely rely on computer program that could be run on any computer system based on Von Neumann structure, includes the following steps:
- the process of obtaining point cloud sampling data (sampling points of a scattered point set) by sampling the scattered point set collected by a point cloud data collecting device, and generating a point cloud skeleton by contracting the sampling points can greatly reduce calculate complex.
- the amount of sampling points is usually 5% of the amount of the inputted scattered points, and the sampling location is random, in other word, 5% of the scattered points are randomly sampled as sampling points.
- the sampling point set is X.
- a neighborhood of the point set has two meanings. One is a neighborhood I of the point set X itself, which means to every point in X
- neighborhood I of x i is a point set of all neighborhood points with a distance less than h (neighborhood radius) to x i .
- it means a neighborhood I of the point set X in the point set Q, to every x i in the point set, it is a point set of all neighborhood points with a distance less than h to x i
- the size of the point set X depends on the value of h.
- J represents a point set of the point cloud sampling data
- q represents the sampling points in the point set J
- I represents a neighborhood point set of the sampling points q
- x represents the neighborhood points in the neighborhood point set I
- R is a regular term
- ⁇ is a weighting coefficient
- h is a neighborhood radius of the neighborhood point set I
- ⁇ is a distribution coefficient
- the sampling points may be uneven, which makes most of the sampling points superpose to a nearby median point, becoming a sparse distribution, thus obtaining an inaccurate point cloud skeleton after contracting. For example, if the scattering of the sampling points is nearly like a line, the location of skeleton obtained after contracting will be greatly deviated.
- PCA principal component analysis
- a covariance matrix of the sampling points is built using PCA algorithm
- ⁇ 0, ⁇ 1, and ⁇ 2 are three characteristic values of the covariance matrix, and ⁇ 0 ⁇ 1 ⁇ 2.
- PCA algorithm The purpose of PCA algorithm is to reduce noise and redundancy, elements on the main diagonal line of the covariance matrix are variances on different dimension (energy), and the other elements are covariance between two dimensions (relativity).
- energy energy
- reflativity covariance between two dimensions
- the relativity of different dimensions should be small as possible, that is to make the elements out of the diagonal line in covariance matrix become almost 0.
- the value on the diagonal line of the matrix obtained after diagonalizing is the characteristic value of the covariance matrix. This characteristic value is a new variance on different dimensions, and represents the energy of each dimension at the same time.
- a covariance matrix of the sampling points is built using PCA algorithm:
- x i is a mean value of x i .
- covariance matrix C i must has three characteristic values, and we can sequence the three characteristic values by size, in the order of ⁇ 0, ⁇ 1, and ⁇ 2.
- the step of contracting the point cloud using the iterative formula further includes gradually enlarge the neighborhood radius, and contracting the point cloud according to the expanded neighborhood radius and the iterative formula.
- the step of enlarging the neighborhood radius includes:
- h 0 2 ⁇ ⁇ d bb / ⁇ J ⁇ 3 ,
- a neighborhood range is an important global fixed parameter in most point cloud processing algorithm.
- smaller neighborhood size is first used, i.e. using
- h 0 2 ⁇ ⁇ d bb / ⁇ J ⁇ 3
- the step of connecting the skeleton branches and obtaining a point cloud skeleton further includes three sub processes of building, extending, and connecting.
- the skeleton branch can be extended or combined with other skeleton branches according to the distribution of the sampling points at both ends thereof.
- New skeleton branches are built. After certain contracting, we can make a cursory selection to select alternative points that may generate new skeleton branches from the unfixed sampling points, and then make sure if the points can become new skeleton branches using a constraint rule.
- KNN k-Nearest Neighborhood algorithm
- searching range is the size of the present neighborhood, and if a alternative point satisfied angle rule (an angle between two neighborhood branches is smaller than 25°) in the searching range, pick the alternative point into the alternative branch. If there is no satisfied point between the two ends of the alternative branch, stop searching. If the number of sampling points in the alternative branch is greater than 5, we consider the branch believable, and mark the corresponding sampling point as a stationary point. Otherwise delete the sampling point from the alternative points. After a round of searching, if there is no alternative point left, stop building new skeleton branches, or go on searching from the alternative point with the greatest a value.
- bridge contacts can be introduced as auxiliary. Whenever a new skeleton branch generated, two ends of the branch will connect to a bridge contact. The points works as a temporary part of the skeleton branch, but actually points to a recent and not fixed sampling point and participates in further contraction.
- the bridge contact will track the recent sampling point until it is disabled in the following conditions: 1) the tracking distance is beyond a given threshold, 2) the tracking angle (angle between the connection line of the bridge contact and the actual end points of the corresponding branch and the main direction of the branch) is greater than 90°; 3) encounters other bridge contacts, and satisfies the conditions of combining or connecting branches.
- the skeleton branches are extended based on the bridge contacts. Under a greater contracting of neighborhood size, the sampling points at the ends of the existing skeleton may satisfy the angle rules again. Therefore, with the help of the bridge contacts, corresponding sampling points will return the existing skeleton branch, and keep on searching until the last sampling point doesn't satisfy to the angle rule, and renew the location of the bridge contacts at last.
- the skeleton branches are connected based on the bridge contacts.
- the interference sampling points are removed.
- there may be a few sampling points have not formed the skeleton branches and are free around the existing skeleton. Therefore, in order to improve the robustness and efficiency of algorithm, the sampling points close to the branch are deleted.
- the method further includes smoothing and centralizing the point cloud skeleton after connecting the skeleton branches and obtaining a point cloud skeleton.
- each branch is four point interpolatory subdivided until a longest section of the branch smaller than a threshold.
- v0, v1, v2 and v3 are four continuous points on the branch, the rule of interpolating a new point is as below.
- the subdivided branches are sampled, which means from the beginning point, the next point is gradually picked up as a sampling node, the node can satisfy a rule that its distance to a previous point is greater than a threshold. Finally a smooth curve skeleton with sections substantially the same length is obtained.
- Each node of each skeleton branch except the two ends can easily get a tangent plane.
- the plane goes through the node and the vector is perpendicular to the connecting line between the node and the next node. Projecting the points of a neighborhood Q corresponding with the node onto the tangent plane, and then use an elliptical approximation of the two-dimensional point set according to the method of ellipse fitting. If the elliptic fitting error is less than the default threshold, move the node to the corresponding ellipse center. If a plurality of nodes on a branch is is reentered, smooth the branch again.
- the neighborhood radius of the tangent plane here is defined by the neighborhood radius corresponding to the node first fixed during the contracting.
- a device for extracting a point cloud skeleton includes a sampling data obtaining module 102 , a skeleton branches generating module 104 , and a skeleton generating module 106 , wherein:
- the sampling data obtaining module 102 is configured to obtain inputted point cloud sampling data
- the skeleton branches generating module 104 is configured to generate skeleton branches by contracting the point cloud according to an iterative formula, the iterative formula is:
- J represents a point set of the point cloud sampling data
- q represents the sampling points in the point set J
- I represents a neighborhood point set of the sampling points q
- x represents the neighborhood points in the neighborhood point set I
- R is a regular term
- ⁇ is a weighting coefficient
- h is a neighborhood radius of the neighborhood point set L
- ⁇ is a distribution coefficient
- the skeleton generating module 106 is configured to connect the skeleton branches and obtain a point cloud skeleton.
- the skeleton branches generating module 104 is further configured to build a covariance matrix of the sampling points using principal component analysis algorithm;
- ⁇ 0, ⁇ 1, and ⁇ 2 are three characteristic values of the covariance matrix, and ⁇ 0 ⁇ 1 ⁇ 2.
- the skeleton branches generating module 104 is further configured to gradually expand the neighborhood radius, and contract the point cloud according to the expanded neighborhood radius and the iterative formula.
- the skeleton branches generating module 104 is further configured to define an initial neighborhood radius
- h 0 2 ⁇ ⁇ d bb / ⁇ J ⁇ 3 ,
- the device further includes a point cloud skeleton adjusting module 108 configured to smooth and centralize the point cloud skeleton.
- the method and device for extracting a point cloud skeleton add a regular term to the conventional point cloud skeleton contracting based on Lagrange intermediate value theorem, so as to make a calculated median point approaches the real median point relying on the regulating effect of the regular term, even if the sampling points are uneven, thereby increasing accuracy.
- the whole or parts of the process of the method in the above embodiment can be realized by computer program instructing related hardware, the computer program is stored in a computer readable computer memory medium, when the program is executed, it can include such as process of the embodiment of the above each method.
- the computer memory medium can be diskette, compact disc, Read-Only Memory (ROM) or Random Access Memory (RAM), and so on.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
- The present disclosure relates to a field of computer graphic processing, and more particularly relates to a method and a device for extracting a skeleton from a point cloud.
- In current productive application, a main bottleneck of three-dimensional technique such as computer-aided design, reverse engineering, virtual reality, and three-dimensional animation and game is that there is no convenient method for quickly obtaining a three-dimensional model stored in a computer until now. How to start from directly scanning point cloud data to directly obtain a practical point cloud model in a short time is still an unsolved problem. Nowadays, three-dimensional laser scanner is widely used because of its advantage of obtaining three-dimensional surface data of a real object conveniently and flexibly. However, a worldwide difficulty of point cloud data processing is that the point cloud data is generally disheveled with a lot of missing points, noise, and exterior points. After researching for more than 20 years, a technique of rebuilding a three-dimensional model from nearly integrated point cloud data is quite mature. Nevertheless, a linchpin restrains it from becoming a global reverse rebuilding technique is that the point cloud data usually has a large-area missing, and this is a problem that present scan devices cannot solve. Besides, it is difficult to quickly rebuild a satisfied three-dimensional model directly from the point cloud data with missing points using present rebuilding method based on fitting.
- A point cloud model generally means a point set of three-dimensional coordinate points on a surface of a scanned object calculated by emitting scan light from a three-dimensional scanner to the surface of the scanned object, and receiving reflected light. Point cloud three-dimensional rebuilding means rebuilding mesh data that can represent an original model based on certain point cloud model data, so as to make computer rendering and user interaction convenient.
- In order to better processing point cloud date, extracting a skeleton from the point cloud is a very important pre-processing step. Since the skeleton includes topology structure information of the object, the extracting of the point cloud skeleton can be regarded as an understanding process of the shape of the object. Once the point cloud skeleton is obtained, we can use the skeleton to reverse supplement the missing points and increase the point cloud data, laying a foundation for the following point cloud rebuilding process.
- On the other hand, extracting of skeleton information is always an important research subject in computer graphics field. Because, no matter in two-dimensional shapes or in three-dimensional shapes, skeleton is an important describing characteristic to the original data. Skeleton information can greatly help us analyzing and operating all kinds of graphics data, such as shape matching based on the skeleton, skeletal animation and so on.
- Extracting a skeleton from a closed three-dimensional grid is quite a mature technique, but extracting a skeleton from a disheveled point cloud is a new problem. The technique of extracting a skeleton from a grid cannot be directly apply in extracting a skeleton from a point cloud because there is a lack of grid connecting information in the point cloud, and the present grid skeleton extracting technique cannot solve the problem of noise, exterior points and missing points in the point cloud. A present solution that can extract a curve skeleton from a point cloud is a method proposed in 2009, called rotational symmetry axis (ROSA). The solution proposed a concept of rotation symmetry axes, and supposed that a basic shape of an inputted model mainly consists of cylinders. Supposing a two-dimensional point set and the normal vector of each point are known, we can calculate a rotation symmetry centre point that can mostly represent the center of the point set. Based on this two-dimensional concept, ROSA solution first finds a best tangent plane of each point in the three-dimensional point cloud, and then projects the inputted points near the tangent plane onto the plane, and calculates the rotation symmetry centre points of the point set on the plane. After contracting the rotation symmetry centre points, and specially processing the junction region, rotational symmetry axis is finally obtained. In addition, it is worthy to be mentioned that there is another document proposed a point cloud skeleton extracting technique based on Laplace contraction. This technique supposes the inputted point cloud data is dense and regular enough, so that a Laplace connecting relation can be built based on the point set, corresponding to building a hidden grid. And then extracts the skeleton with a more mature Laplace grid skeleton extracting technique.
- However, the ROSA solution in conventional technique deeply depends on point cloud normal vector information and a hypothesis of the basic shape of the object. In ROSA solution, normal vector information is a prerequisite of calculating local rotation symmetry centre points. Supposing the basic shape as a cylinder is a linchpin of well extracting axis even in missing data. But normal vector information is a value estimated from local neighborhood point information rather than obtained directly from a hardware device. On the situation with a great deal of exterior points and noise, it is easy to estimate wrong normal vector and direction, thus, the accuracy of the ROSA solution for extracting point cloud skeleton in conventional technique is low.
- Accordingly, it is necessary to provide a method for extracting a point cloud skeleton that can increase accuracy.
- A method for extracting a skeleton form a point cloud includes:
- obtaining inputted point cloud sampling data;
- contracting the point cloud using an iterative formula and obtaining skeleton branches, the iterative formula is:
-
- wherein J represents a point set of the point cloud sampling data, q represents the sampling points in the point set J, I represents a neighborhood point set of the sampling points q, x represents the neighborhood points in the neighborhood point set I, R is a regular term, γ is a weighting coefficient, h is a neighborhood radius of the neighborhood point set I, and σ is a distribution coefficient; and
- connecting the skeleton branches and obtaining a point cloud skeleton.
- In an embodiment, the method further includes:
- building a covariance matrix of the sampling points using principal component analysis algorithm;
- obtaining the distribution coefficient using the following formula:
-
- wherein λ0, λ1, and λ2 are three characteristic values of the covariance matrix, and λ0≦λ1≦λ2.
- In an embodiment, the step of contracting the point cloud using an iterative formula includes gradually expanding the neighborhood radius, and contracting the point cloud according to the expanded neighborhood radius and the iterative formula.
- In an embodiment, the step of gradually expanding the neighborhood radius includes defining an initial neighborhood radius
-
- and gradually expanding the neighborhood radius as hi=hi-1+h0/2, wherein dbb is a diagonal length of a point cloud bounding box, |J| represents an amount of the sampling points in the point set of the point cloud sampling data.
- In an embodiment, the method further includes smoothing and centralizing the point cloud skeleton after connecting the skeleton branches and obtaining a point cloud skeleton.
- Moreover, it is necessary to provide a device for extracting a point cloud skeleton that can increase accuracy.
- A point cloud skeleton extracting device comprises:
- a sampling data obtaining module configured to obtain inputted point cloud sampling data:
- a skeleton branches generating module configured to generate skeleton branches by contracting the point cloud using an iterative formula, the iterative formula is:
-
- wherein J represents a point set of the point cloud sampling data, q represents the sampling points in the point set J, I represents a neighborhood point set of the sampling points q, x represents the neighborhood points in the neighborhood point set I, R is a regular term, γ is a weighting coefficient, h is a neighborhood radius of the neighborhood point set I, and σ is a distribution coefficient; and
- a skeleton generating module configured to connect the skeleton branches and obtain a point cloud skeleton.
- In an embodiment, the skeleton branches generating module is further configured to build a covariance matrix of sampling points using principal component analysis algorithm;
- the distribution coefficient is obtained using the following formula:
-
- wherein λ0, λ1, and λ2 are three characteristic values of the covariance matrix, and λ0≦λ1≦λ2.
- In an embodiment, the skeleton branches generating module is further configured to gradually expand the neighborhood radius, and contract the point cloud according to the expanded neighborhood radius and the iterative formula.
- In an embodiment, the skeleton branches generating module is further configured to define an initial neighborhood radius
-
- and gradually expand the neighborhood radius as hi=hi-1+h0/2, wherein dbb is a diagonal length of a point cloud bounding box, |J| represents an amount of the sampling points in the point set of the point cloud sampling data.
- In an embodiment, the device further includes a point cloud skeleton adjusting module configured to smooth and centralize the point cloud skeleton.
- The method and device for extracting a point cloud skeleton add a regular term to the conventional point cloud skeleton contracting based on Lagrange intermediate value theorem, so as to make a calculated median point approaches the real median point relying on the regulating effect of the regular term, even if the sampling points are uneven, thereby increasing accuracy.
-
FIG. 1 is a flow chart of a method for extracting a point cloud skeleton with an embodiment: -
FIG. 2 is a block diagram of a device for extracting a point cloud skeleton with an embodiment; and -
FIG. 3 is a block diagram of a device for extracting a point cloud skeleton with another embodiment. - Referring to
FIG. 1 , in an embodiment, a method for extracting a point cloud skeleton, which completely rely on computer program that could be run on any computer system based on Von Neumann structure, includes the following steps: - S102, inputted point cloud sampling data is obtained.
- The process of obtaining point cloud sampling data (sampling points of a scattered point set) by sampling the scattered point set collected by a point cloud data collecting device, and generating a point cloud skeleton by contracting the sampling points can greatly reduce calculate complex.
- In the embodiment, the amount of sampling points is usually 5% of the amount of the inputted scattered points, and the sampling location is random, in other word, 5% of the scattered points are randomly sampled as sampling points. In order to describe it more easily, the following paragraphs uniformly call the inputted scattered points Q, while the sampling point set is X. A neighborhood of the point set has two meanings. One is a neighborhood I of the point set X itself, which means to every point in X
-
- neighborhood I of xi is a point set of all neighborhood points with a distance less than h (neighborhood radius) to xi. On the other hand, it means a neighborhood I of the point set X in the point set Q, to every xi in the point set, it is a point set of all neighborhood points with a distance less than h to xi The size of the point set X depends on the value of h.
- S104, the point cloud is contracted using an iterative formula and skeleton branches are obtained, the iterative formula is:
-
- wherein J represents a point set of the point cloud sampling data, q represents the sampling points in the point set J, I represents a neighborhood point set of the sampling points q, x represents the neighborhood points in the neighborhood point set I, R is a regular term, γ is a weighting coefficient, h is a neighborhood radius of the neighborhood point set I, and σ is a distribution coefficient.
- Lagrange intermediate value theorem used in conventional technique is:
-
- which calculates a median point x as a point with a smallest value of the distance to all the other points. But in the method for calculating contracted point cloud in conventional technique based on Lagrange intermediate value theorem, the sampling points may be uneven, which makes most of the sampling points superpose to a nearby median point, becoming a sparse distribution, thus obtaining an inaccurate point cloud skeleton after contracting. For example, if the scattering of the sampling points is nearly like a line, the location of skeleton obtained after contracting will be greatly deviated.
- While in the embodiment, by adding a regular term R with a distribution coefficient σ, an accurate skeleton location can be obtained from the scattered sampling points owing to the adjusting effect of the regular term.
- In the embodiment, we can calculate the distribution coefficient σ using principal component analysis (PCA) algorithm.
- A covariance matrix of the sampling points is built using PCA algorithm;
- the distribution coefficient is obtained using the following formula:
-
- wherein λ0, λ1, and λ2 are three characteristic values of the covariance matrix, and λ0≦λ1≦λ2.
- The purpose of PCA algorithm is to reduce noise and redundancy, elements on the main diagonal line of the covariance matrix are variances on different dimension (energy), and the other elements are covariance between two dimensions (relativity). In order to achieve the purpose of reducing noise, the relativity of different dimensions should be small as possible, that is to make the elements out of the diagonal line in covariance matrix become almost 0. This can be implemented by matrix diagonalization in linear algebra. The value on the diagonal line of the matrix obtained after diagonalizing is the characteristic value of the covariance matrix. This characteristic value is a new variance on different dimensions, and represents the energy of each dimension at the same time.
- A covariance matrix of the sampling points is built using PCA algorithm:
-
- wherein xi is a mean value of xi.
- From the formula we can see, covariance matrix Ci must has three characteristic values, and we can sequence the three characteristic values by size, in the order of λ0, λ1, and λ2.
- In the embodiment, the step of contracting the point cloud using the iterative formula further includes gradually enlarge the neighborhood radius, and contracting the point cloud according to the expanded neighborhood radius and the iterative formula.
- Furthermore, particularly, the step of enlarging the neighborhood radius includes:
- setting a original neighborhood radius
-
- gradually enlarging the neighborhood radius as hi=hi-1+h0/2, in which dbb is a diagonal length of a point cloud bounding box, |J| represents an amount of the sampling points in the point set of the point cloud sampling data.
- Since there is no connecting relationship between the points in the point cloud, a neighborhood range is an important global fixed parameter in most point cloud processing algorithm. However, in the present problem, it is infeasible to use fixed neighborhood range. In a complex module, it is necessary to consider a smaller neighborhood range for the sampling points at some positions, or it will be influenced by the points in different shapes of positions; while sometimes it is necessary to consider a larger neighborhood range, so as to contract the sampling points into a correct local shape. Thus, in the embodiment, smaller neighborhood size is first used, i.e. using
-
- as an initial neighborhood size to do the contracting. After the sampling points are contracted to a certain size, local sampling points that can obviously build skeleton branches are connected to be a skeleton, and these sampling points are fixed without joining the next contracting. Then, we can gradually increase the neighborhood size according to certain increasing rate, and use the new neighborhood size to contract the sampling points and extract the skeleton. In the embodiment, it is to increase the neighborhood size until all the sampling points are fixed, and a final skeleton is generated.
- S106, the skeleton branches are connected and a point cloud skeleton is obtained.
- In the embodiment, the step of connecting the skeleton branches and obtaining a point cloud skeleton further includes three sub processes of building, extending, and connecting.
- In a certain neighborhood range, after several times of iterative contracting, some local points of the sampling point set X gradually become obvious curve skeleton, and a new skeleton branch can be obtained by simply connecting these points. During the iterative contracting process, the skeleton branch can be extended or combined with other skeleton branches according to the distribution of the sampling points at both ends thereof.
- New skeleton branches are built. After certain contracting, we can make a cursory selection to select alternative points that may generate new skeleton branches from the unfixed sampling points, and then make sure if the points can become new skeleton branches using a constraint rule. The method of cursory selection is to calculate the a value of every sampling point by using PCA algorithm again, and to use k-Nearest Neighborhood algorithm (KNN) of xi to do the smoothing, particularly, K=5. Finally, select the unfixed sampling points with a σ value greater than 0.9 as alternative points for building skeleton branches. Therefore, searching from alternative points with the greatest a value along the both ends of the main distance (feature vector with greatest characteristic value) of PCA, searching range is the size of the present neighborhood, and if a alternative point satisfied angle rule (an angle between two neighborhood branches is smaller than 25°) in the searching range, pick the alternative point into the alternative branch. If there is no satisfied point between the two ends of the alternative branch, stop searching. If the number of sampling points in the alternative branch is greater than 5, we consider the branch believable, and mark the corresponding sampling point as a stationary point. Otherwise delete the sampling point from the alternative points. After a round of searching, if there is no alternative point left, stop building new skeleton branches, or go on searching from the alternative point with the greatest a value.
- Because the neighborhood size is gradually increased, the skeleton branch formed in different neighborhood is likely to lose connection. Therefore, bridge contacts can be introduced as auxiliary. Whenever a new skeleton branch generated, two ends of the branch will connect to a bridge contact. The points works as a temporary part of the skeleton branch, but actually points to a recent and not fixed sampling point and participates in further contraction. The bridge contact will track the recent sampling point until it is disabled in the following conditions: 1) the tracking distance is beyond a given threshold, 2) the tracking angle (angle between the connection line of the bridge contact and the actual end points of the corresponding branch and the main direction of the branch) is greater than 90°; 3) encounters other bridge contacts, and satisfies the conditions of combining or connecting branches.
- The skeleton branches are extended based on the bridge contacts. Under a greater contracting of neighborhood size, the sampling points at the ends of the existing skeleton may satisfy the angle rules again. Therefore, with the help of the bridge contacts, corresponding sampling points will return the existing skeleton branch, and keep on searching until the last sampling point doesn't satisfy to the angle rule, and renew the location of the bridge contacts at last.
- The skeleton branches are connected based on the bridge contacts. In a certain local area, there may be two or more bridge contacts meeting each other. Only deal with this situation before increasing the neighborhood size. If there is only two bridge contacts in the area, and the angle of the two corresponding branches is greater than 145°, the two branches are merged into one branch, the bridge contacts are disabled; or do nothing. If there is more than two bridge contacts in the area, calculate the average point of these bridge contacts and move the end of the corresponding branch to the average point, the bridge contacts are disabled.
- Furthermore, the interference sampling points are removed. During the gradual extending of the neighborhood radius and different stages of contracting, there may be a few sampling points have not formed the skeleton branches and are free around the existing skeleton. Therefore, in order to improve the robustness and efficiency of algorithm, the sampling points close to the branch are deleted.
- In the embodiment, the method further includes smoothing and centralizing the point cloud skeleton after connecting the skeleton branches and obtaining a point cloud skeleton.
- The steps of smoothing are as below:
- First, to each point v1 on each skeleton branch except two ends of the skeleton branches, an angle between v1 and a point v0 before v1 and an angle between v1 and a point v2 after v1 are calculated, if the angles are greater than 500, the point v1 is Laplace smoothed. i.e. v1=v0/4+v½+v 2/4.
- Second, each branch is four point interpolatory subdivided until a longest section of the branch smaller than a threshold. Suppose v0, v1, v2 and v3 are four continuous points on the branch, the rule of interpolating a new point is as below.
- 1. A new interpolatory point v is inserted between v1 and v2, in which v=(−v0+9v1+9v2−v3)/16.
- 2. If v1 is an end point, which means there is no point before v1, then v=(3v1+6v2−v3)/8.
- 3. If v2 is an end point, which means there is no point after v2, then v=(−v0+6v1+3v2)/8.
- Third, the subdivided branches are sampled, which means from the beginning point, the next point is gradually picked up as a sampling node, the node can satisfy a rule that its distance to a previous point is greater than a threshold. Finally a smooth curve skeleton with sections substantially the same length is obtained.
- The steps of centralizing are as below:
- Each node of each skeleton branch except the two ends can easily get a tangent plane. The plane goes through the node and the vector is perpendicular to the connecting line between the node and the next node. Projecting the points of a neighborhood Q corresponding with the node onto the tangent plane, and then use an elliptical approximation of the two-dimensional point set according to the method of ellipse fitting. If the elliptic fitting error is less than the default threshold, move the node to the corresponding ellipse center. If a plurality of nodes on a branch is is reentered, smooth the branch again. Please note that the neighborhood radius of the tangent plane here is defined by the neighborhood radius corresponding to the node first fixed during the contracting.
- Referring to
FIG. 2 , in an embodiment, a device for extracting a point cloud skeleton includes a samplingdata obtaining module 102, a skeletonbranches generating module 104, and askeleton generating module 106, wherein: - the sampling
data obtaining module 102 is configured to obtain inputted point cloud sampling data; - the skeleton
branches generating module 104 is configured to generate skeleton branches by contracting the point cloud according to an iterative formula, the iterative formula is: -
- wherein J represents a point set of the point cloud sampling data, q represents the sampling points in the point set J, I represents a neighborhood point set of the sampling points q, x represents the neighborhood points in the neighborhood point set I, R is a regular term, γ is a weighting coefficient, h is a neighborhood radius of the neighborhood point set L, and σ is a distribution coefficient, and
- the
skeleton generating module 106 is configured to connect the skeleton branches and obtain a point cloud skeleton. - In an embodiment, the skeleton
branches generating module 104 is further configured to build a covariance matrix of the sampling points using principal component analysis algorithm; - the distribution coefficient is obtained using the following formula:
-
- wherein λ0, λ1, and λ2 are three characteristic values of the covariance matrix, and λ0≦λ1≦λ2.
- In an embodiment, the skeleton
branches generating module 104 is further configured to gradually expand the neighborhood radius, and contract the point cloud according to the expanded neighborhood radius and the iterative formula. - In an embodiment, the skeleton
branches generating module 104 is further configured to define an initial neighborhood radius -
- and gradually expand the neighborhood radius as hi=hi-1+h0/2, wherein dbb is a diagonal length of a point cloud bounding box, |J| represents an amount of the sampling points in the point set of the point cloud sampling data.
- Referring to
FIG. 3 , in an embodiment, the device further includes a point cloudskeleton adjusting module 108 configured to smooth and centralize the point cloud skeleton. - The method and device for extracting a point cloud skeleton add a regular term to the conventional point cloud skeleton contracting based on Lagrange intermediate value theorem, so as to make a calculated median point approaches the real median point relying on the regulating effect of the regular term, even if the sampling points are uneven, thereby increasing accuracy.
- It can be understood by those skilled in the art that the whole or parts of the process of the method in the above embodiment can be realized by computer program instructing related hardware, the computer program is stored in a computer readable computer memory medium, when the program is executed, it can include such as process of the embodiment of the above each method. The computer memory medium can be diskette, compact disc, Read-Only Memory (ROM) or Random Access Memory (RAM), and so on.
- The embodiments described above only show a few implement manners of the present invention, the description is specific and detailed, but it cannot be interpreted as a limitation of the range of the present invention. What should be pointed out is that it is apparent to those skilled in the art that a variety of modifications and changes may be made without departing from the scope of the present invention. Thus, the range of the present invention should be defined by the appended claims.
Claims (10)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310196243 | 2013-05-23 | ||
CN201310196243.2A CN103268631B (en) | 2013-05-23 | 2013-05-23 | point cloud framework extraction method and device |
CN201310196243.2 | 2013-05-23 | ||
PCT/CN2013/083441 WO2014187046A1 (en) | 2013-05-23 | 2013-09-13 | Point cloud skeleton extraction method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
US9390552B1 US9390552B1 (en) | 2016-07-12 |
US20160203636A1 true US20160203636A1 (en) | 2016-07-14 |
Family
ID=49012258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/378,976 Active 2034-04-19 US9390552B1 (en) | 2013-05-23 | 2013-09-13 | Method and device for extracting skeleton from point cloud |
Country Status (3)
Country | Link |
---|---|
US (1) | US9390552B1 (en) |
CN (1) | CN103268631B (en) |
WO (1) | WO2014187046A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504331A (en) * | 2016-09-27 | 2017-03-15 | 西安科技大学 | Teeth Modeling Method Based on 3D Model Retrieval |
US20180342076A1 (en) * | 2017-05-24 | 2018-11-29 | Eys3D Microelectronics, Co. | Device capable of correcting wrong normal vectors of an original three-dimensional scan result and related method thereof |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10249036B2 (en) * | 2012-02-22 | 2019-04-02 | Veran Medical Technologies, Inc. | Surgical catheter having side exiting medical instrument and related systems and methods for four dimensional soft tissue navigation |
CN103268631B (en) | 2013-05-23 | 2015-09-30 | 中国科学院深圳先进技术研究院 | point cloud framework extraction method and device |
CN103778654A (en) * | 2013-12-10 | 2014-05-07 | 深圳先进技术研究院 | Three-dimensional geometric body surface smooth vector field calculating method under guidance of typical line |
CN103745497B (en) * | 2013-12-11 | 2017-05-10 | 中国科学院深圳先进技术研究院 | Plant growth modeling method and system |
CN103714555B (en) * | 2013-12-13 | 2017-06-13 | 中国科学院深圳先进技术研究院 | A kind of four-dimensional motion point cloud segmentation and method for reconstructing based on movement locus |
CN104156730B (en) * | 2014-07-25 | 2017-12-01 | 山东大学 | A kind of antinoise Research of Chinese Feature Extraction method based on skeleton |
CN105373814B (en) * | 2014-08-26 | 2019-04-02 | 南京林业大学 | A kind of true broad leaf tree organ classes recognition methods based on laser point cloud data |
CN104408765B (en) * | 2014-11-11 | 2017-01-11 | 中国科学院深圳先进技术研究院 | plant scanning and reconstruction method |
CN104966287B (en) * | 2015-06-08 | 2017-08-08 | 浙江大学 | The multi-disc point cloud Rigid Registration method of stratification |
CN105005995B (en) * | 2015-07-29 | 2017-07-25 | 武汉大学 | A Method for Computing 3D Point Cloud Model Skeleton |
CN105405162B (en) * | 2015-10-16 | 2017-12-05 | 北京师范大学 | Tree point cloud three-dimensional rebuilding method based on partial structurtes and directional perception |
CN106780458B (en) * | 2016-12-09 | 2020-04-28 | 重庆邮电大学 | A method and device for extracting point cloud skeleton |
CN108280833B (en) * | 2018-01-18 | 2021-09-24 | 华南农业大学 | A skeleton extraction method for plant root bifurcation features |
CN109064471B (en) * | 2018-07-18 | 2021-09-03 | 中北大学 | Three-dimensional point cloud model segmentation method based on skeleton |
CN109325993B (en) * | 2018-08-10 | 2023-01-06 | 华北电力大学(保定) | An enhanced sampling method for salient features based on octree-like index |
CN109887009B (en) * | 2019-01-24 | 2022-12-09 | 西北大学 | A Point Cloud Local Matching Method |
CN110827233B (en) * | 2019-08-29 | 2022-06-14 | 杭州电子科技大学 | A method for extracting pit and fissure areas on the surface of tooth three-dimensional point cloud data |
CN113168729B (en) * | 2019-12-09 | 2023-06-30 | 深圳大学 | A 3D shape matching method and device based on a local reference coordinate system |
CN111462202B (en) * | 2020-04-08 | 2022-09-02 | 中国科学技术大学 | Non-rigid registration method and system |
CN111666946A (en) * | 2020-05-26 | 2020-09-15 | 东华大学 | Plant point cloud single-blade segmentation method based on point cloud over-segmentation and surface patch growth |
CN112102178B (en) * | 2020-07-29 | 2024-09-06 | 深圳市菲森科技有限公司 | Point cloud feature denoising method and device, electronic equipment and storage medium |
CN111968089B (en) * | 2020-08-15 | 2024-06-21 | 晋江市博感电子科技有限公司 | L1 median skeleton extraction method based on maximum inscribed sphere mechanism |
CN112465832B (en) * | 2020-11-25 | 2024-04-16 | 重庆大学 | Single-side tree point cloud skeleton line extraction method and system based on binocular vision |
CN112686799B (en) * | 2020-12-25 | 2022-05-10 | 燕山大学 | A method for extracting cross-section profile of annular forgings based on normal vector and L1 median value |
CN112712509B (en) * | 2020-12-31 | 2023-09-01 | 重庆大学 | Tree parameter acquisition method, growth evaluation method, device and system based on point cloud |
CN112967333B (en) * | 2021-02-04 | 2024-02-09 | 重庆大学 | Complex point cloud skeleton extraction method and system based on grading |
CN112802089B (en) * | 2021-02-05 | 2023-09-01 | 重庆大学 | A point cloud skeleton line extraction method and system based on automatic estimation of the number of forks |
CN113298919A (en) * | 2021-04-14 | 2021-08-24 | 江苏大学 | Skeleton extraction method of three-dimensional plant point cloud model |
CN113888623B (en) * | 2021-10-08 | 2025-02-18 | 重庆大学 | A point cloud skeleton extraction method and computer storage medium |
CN114782511B (en) * | 2021-11-15 | 2024-11-29 | 中南大学 | Modeling method based on point cloud data |
CN114419276B (en) * | 2022-01-19 | 2024-05-03 | 厦门大学 | Curve skeleton extraction method based on optimal transmission and clustering |
CN115841581B (en) * | 2023-02-20 | 2023-05-16 | 宜科(天津)电子有限公司 | Characteristic point extraction method of door plate framework |
CN119579669A (en) * | 2025-02-08 | 2025-03-07 | 中国农业大学 | Crop canopy phenotype parameter extraction method, device, medium and product |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8004517B1 (en) * | 2005-06-24 | 2011-08-23 | Geomagic, Inc. | Methods, apparatus and computer program products that model three-dimensional surface structures |
US8064731B2 (en) * | 2006-11-13 | 2011-11-22 | Siemens Audiologische Technik Gmbh | Generalized rigid alignment of 3D ear impression models |
CN101887596B (en) * | 2010-06-01 | 2013-02-13 | 中国科学院自动化研究所 | Three-dimensional model reconstruction method of tree point cloud data based on partition and automatic growth |
CN101866495B (en) | 2010-06-01 | 2012-03-28 | 中国科学院自动化研究所 | Tree Modeling Method Based on Skeleton Point Cloud |
CN102467753B (en) * | 2010-11-04 | 2013-10-09 | 中国科学院深圳先进技术研究院 | Time-varying point cloud reconstruction method and system based on skeleton registration |
CN103098100B (en) * | 2010-12-03 | 2016-01-20 | 中国科学院自动化研究所 | Based on the three-dimensional model shape analysis method of perception information |
EP2674913B1 (en) * | 2012-06-14 | 2014-07-23 | Softkinetic Software | Three-dimensional object modelling fitting & tracking. |
CN103268631B (en) * | 2013-05-23 | 2015-09-30 | 中国科学院深圳先进技术研究院 | point cloud framework extraction method and device |
-
2013
- 2013-05-23 CN CN201310196243.2A patent/CN103268631B/en active Active
- 2013-09-13 US US14/378,976 patent/US9390552B1/en active Active
- 2013-09-13 WO PCT/CN2013/083441 patent/WO2014187046A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504331A (en) * | 2016-09-27 | 2017-03-15 | 西安科技大学 | Teeth Modeling Method Based on 3D Model Retrieval |
US20180342076A1 (en) * | 2017-05-24 | 2018-11-29 | Eys3D Microelectronics, Co. | Device capable of correcting wrong normal vectors of an original three-dimensional scan result and related method thereof |
US10573016B2 (en) * | 2017-05-24 | 2020-02-25 | Eys3D Microelectronics, Co. | Device capable of correcting wrong normal vectors of an original three-dimensional scan result and related method thereof |
Also Published As
Publication number | Publication date |
---|---|
US9390552B1 (en) | 2016-07-12 |
WO2014187046A1 (en) | 2014-11-27 |
CN103268631B (en) | 2015-09-30 |
CN103268631A (en) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9390552B1 (en) | Method and device for extracting skeleton from point cloud | |
Xiong et al. | Flexible building primitives for 3D building modeling | |
Bucksch et al. | SkelTre: Robust skeleton extraction from imperfect point clouds | |
CN102136155B (en) | Object elevation vectorization method and system based on three dimensional laser scanning | |
US20240153123A1 (en) | Isogeometric Analysis Method Based on a Geometric Reconstruction Model | |
Jarząbek-Rychard et al. | 3D building reconstruction from ALS data using unambiguous decomposition into elementary structures | |
Sohn et al. | An implicit regularization for 3D building rooftop modeling using airborne lidar data | |
CN113409332B (en) | Building plane segmentation method based on three-dimensional point cloud | |
CN102024258A (en) | Multi-scale segmentation method for remote sensing image with boundary maintenance characteristics | |
Xiao et al. | Building segmentation and modeling from airborne LiDAR data | |
CN107330901A (en) | A kind of object component decomposition method based on skeleton | |
CN117193278B (en) | Method, device, computer equipment and storage medium for dynamic edge path generation | |
Paiva et al. | Historical building point cloud segmentation combining hierarchical watershed transform and curvature analysis | |
CN101739718B (en) | Parameter template-based corn leaf virtual simulation modeling method | |
Quackenbush et al. | Road extraction: A review of LiDAR-focused studies | |
Thiemann et al. | 3D-symbolization using adaptive templates | |
Zhang et al. | Accurate real-time SLAM based on two-step registration and multimodal loop detection | |
Wang et al. | A hexagon-based method for polygon generalization using morphological operators | |
JP5857821B2 (en) | Program, partition extraction method, and information processing apparatus | |
JP2011210160A (en) | Image processing method, image processor, program and program storage medium | |
Huang | Building reconstruction from airborne laser scanning data | |
Gao et al. | FELC-SLAM: feature extraction and loop closure optimized lidar SLAM system | |
CN111915724A (en) | Point cloud model slice shape calculation method | |
Novacheva | Building roof reconstruction from LiDAR data and aerial images through plane extraction and colour edge detection | |
Lach et al. | Robust extraction of exterior building boundaries from topographic LiDAR data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUANG, HUI;WU, SHIHAO;CHEN, BAOQUAN;AND OTHERS;REEL/FRAME:033541/0434 Effective date: 20140808 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 8 |