Abstract:
A method for reconstructing surface from a point cloud includes following steps: (a) extracting skeletal curves from an input point cloud; (b) editing the extracted skeletal curves, and assigning sweeping path; (c) obtaining sliced point clouds along the edited skeletal curves, and fitting a closed NURBS curve according to the sliced point clouds; (d) reconstructing the point cloud to get generalized cylinders along the assigned sweeping path, according to the closed NURBS curves; (e) merging the generalized cylinders into a single surface, and smoothing intersections of the generalized cylinders so as to reconstruct surface from the point cloud. The invention further relates to a system for reconstructing surface from a point cloud. The invention can reconstruct the surface with high accuracy by the minimum interactions, and can deal with point cloud data having missing region caused by occlusion. In addition, the invention can achieve high reconstruction quality and fine controllability.

Description:
TECHNICAL FIELD 
       [0001]    The invention relates to methods and systems for reconstructing surface from a point cloud. 
       DESCRIPTION OF RELATED ART 
       [0002]    3D modeling is one of the main bottlenecks of computer graphics applications such as computer games, movies and CAD. With recent development in 3D scanning technology, 3D point cloud data is becoming widely available. But point cloud data usually has serious noise and missing region caused by occlusion, it is difficult for a conventional surface reconstruction method to produce high-quality result. 
         [0003]    Presently, solutions for reconstructing surface from point cloud are centered on automatic method, including Poisson reconstruction, Radial Basis Function, etc. Approximate algorithm for implicit function is usually utilized to construct the surface. Although the algorithm is applied frequently in various degree, the result for the algorithm is poor when data is occluded and the topology structure is ambiguous. In addition, some scholars try to improve quality of point cloud reconstruction by an interactive method. For example, topology mistakes of point cloud reconstruction are overcome by topology structure defined by users, or constrained by inner and outer orientations of the 0-valued iso surface provided by users in distance function. 
         [0004]    High-quality result is not achieved by present interactive method for reconstructing surface from a point cloud. The reasons are summarized in four aspects. Firstly, the interactive reconstruction methods are still based on automatic reconstruction method, limited amount of interaction is not enough to improve the poor automatic reconstruction result. Secondly, still using surface smoothness assumption makes it difficult to get good result if the data have sharp features. Thirdly, the methods are too complicated for users to interact with. Fourthly, the methods are immature and unreliable to be utilized widely. 
       SUMMARY 
       [0005]    Thus, it is necessary to provide a robust method and a robust system for reconstructing surface from a point cloud. 
         [0006]    Specifically, the invention provides a method for reconstructing surface from a point cloud. The method includes: (a) extracting skeletal curves from an input point cloud; (b) editing the extracted skeletal curves, and assigning sweeping path; (c) obtaining sliced point clouds along the edited skeletal curves, and fitting a closed NURBS curve according to the sliced point clouds; (d) reconstructing the point cloud to get generalized cylinders along the assigned sweeping path; (e) merging the generalized cylinders into a single surface, and smoothing intersections of the generalized cylinders so as to reconstruct surface from the point cloud. 
         [0007]    In an embodiment, the method further includes: making interactive operations on the reconstructed surface, so as to improve quality of the surface. 
         [0008]    In an embodiment, the editing includes: cutting, connecting, pruning, extending and deforming. 
         [0009]    In an embodiment, the step (c) includes: fitting a closed NURBS curve by utilizing squared distance minimization method which is based on curvature, wherein if the fitting result is not satisfied, users are permitted to amend the closed NURBS curve. 
         [0010]    In an embodiment, the step (d) includes: sweeping the sliced point clouds along the assigned sweeping path, wherein it is guaranteed that the new sliced point cloud curve matches the inputted point cloud; interpolating each closed NURBS curve outwards, wherein the NURBS curves encounter each other in the boundary, so as to detect relationship of controlling points on different slice curves; combining all the closed NURBS curves together along the sweeping path, after detecting relationship of controlling points on different slice curves. 
         [0011]    The invention further provides a system for reconstructing surface from a point cloud. The system includes an extracting module, an editing module, a fitting module, a reconstructing module and an interacting module. The extracting module is configured to extract skeletal curves from an input point cloud. The editing module is configured to edit the extracted skeletal curves, and assign sweeping path. The fitting module is configured to obtain sliced point clouds along the edited skeletal curves, and fit a closed NURBS curve according to the sliced point clouds. The reconstructing module is configured to reconstruct the point cloud to get generalized cylinders along the assigned sweeping path, according to the closed NURBS curves. The reconstructing module is also configured to merge the generalized cylinders into a single surface, and smooth intersections of the generalized cylinders so as to reconstruct surface from the point cloud. 
         [0012]    In an embodiment, the system further includes an interacting module. The interacting module is configured to make interactive operations on the reconstructed surface, so as to improve quality of the surface. 
         [0013]    In an embodiment, the editing comprises: cutting, connecting, pruning, extending and deforming. 
         [0014]    In an embodiment, the fitting module is specifically configured to fit a closed NURBS curve by utilizing squared distance minimization method which is based on curvature, wherein if the fitting result is not satisfied, users are permitted to amend the closed NURBS curve. 
         [0015]    In an embodiment, the reconstructing module is specifically configured to: sweep the sliced point clouds along the assigned sweeping path, wherein it is guaranteed that the new sliced point cloud curve matches the inputted point cloud; interpolate each closed NURBS curve outwards, wherein the NURBS curves encounter each other in the boundary, so as to detect relationship of controlling points on different slice curves; combine all the closed NURBS curves together along the sweeping path, after detecting relationship of controlling points on different slice curves. 
         [0016]    All in all, the method and the system for reconstructing surface from a point cloud according to the invention can reconstruct the surface with high accuracy by the minimum interactions. The benefits include: 1) able to deal with point cloud data having missing region caused by occlusion, wherein: skeleton curve and tangential curve are used as intermediate representation, and can achieve high accuracy when data is occluded; 2) high reconstruction quality, wherein: very robust compared with conventional fitting algorithm, and achieve high accuracy; 3) simple interaction, wherein: the invention needs users&#39; interactions only in failure of automatic calculation; 4) fine controllability, wherein: the invention breaks three dimensional interactions into two curve interactions orthogonally each other; 5) perfect reconstruction result in theory, wherein: since users are permitted to control two curves orthogonally each other arbitrarily, accuracy of reconstructing surface from the point cloud can be perfect, as long as users pay enough efforts in theory. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]      FIG. 1  is a flowchart of a method for reconstructing surface from a point cloud according to the invention. 
           [0018]      FIG. 2  is a schematic diagram of five basic operations for editing skeleton of a point cloud. 
           [0019]      FIG. 3  is a block diagram of a system for reconstructing surface from a point cloud according to the invention. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0020]    Specific embodiments will be described in detail with reference to the accompanying drawings as follows to further illustrate the invention. 
         [0021]    Referring to  FIG. 1 ,  FIG. 1  is a method for reconstructing surface from a point cloud according to a preferred embodiment of the invention. 
         [0022]    Step S 401 , extracting skeletal curves from an input point cloud automatically. Specifically, the preferred embodiment utilizes “L1-median” algorithm to extract skeletal curves from the input point cloud. 
         [0023]    Step S 402 , editing the skeletal curves interactively, and assigning sweeping path. It is specific as follows. 
         [0024]    Referring to  FIG. 2 , the preferred embodiment utilizes five basic operations for editing skeleton of the point cloud. The five basic operations are introduced as follows: 
         [0025]    (1) Cutting: deleting a side from skeletal curves of the point cloud, so as to cut a branch from the skeletal curves; or deleting a peak whose degree is greater than 2 from skeletal curves of the point cloud, in order to delete a combination point. 
         [0026]    (2) Connecting: connecting two terminal nodes in the skeletal curves of the point cloud, so as to connect two branches into one branch. 
         [0027]    (3) Pruning: deleting terminal part of a skeleton branch in the skeletal curves. 
         [0028]    (4) Extending: growing forward continuously along tangential terminal from endpoints of the skeleton branch in the skeletal curves of the point cloud. 
         [0029]    (5) Deforming: dragging a point of the skeleton in the skeletal curves of the point cloud to deform the skeleton by a user. The illustrated embodiment utilizes least square method to complete. 
         [0030]    Step S 403 , obtaining high quality sliced point clouds along the edited skeletal curves, and fitting a closed NURBS curve according to the sliced point clouds. Detailed steps are as follows. 
         [0031]    Selecting high quality sliced point clouds along the edited skeletal curves. Fitting a closed NURBS curve according to the sliced point clouds. The illustrated embodiment fits a closed NURBS curve from two-dimensional sliced point clouds, by utilizing squared distance minimization method which is based on curvature. 
         [0032]    If the fitting result is not accurate, users can amend the result by dragging a controlling point of the closed NURBS curve interactively. 
         [0033]    Step S 404 , reconstructing the point cloud to get generalized cylinders along the assigned sweeping path, according to the closed NURBS curves. Concrete steps are as follows: 
         [0034]    The illustrated embodiment sweeps the sliced point clouds along the assigned sweeping path. It is guaranteed that the new sliced point cloud curve matches the inputted point cloud. 
         [0035]    Interpolating each closed NURBS curve outwards based on the two-dimensional sliced point clouds and the closed NURBS curves. The NURBS curves encounter each other in the boundary, so as to detect relationship of controlling points on different slice curves. Interpolating each closed NURBS curve outwards by minimizing following formula (1): 
         [0000]      argmin c     j   (E d (c j )+αE m (c i ,c j ))  (1)
 
         [0036]    c i  is an original NURBS curve. c j  is a NURBS curve obtained by Interpolated. E d (c j ) is the error between c j  and a corresponding two-dimensional sliced point cloud. E m (c i ,c j ) is deforming degree between c i  and c j . α is a constant. 0.1 is the value of α in the illustrated embodiment. Obtaining adjacent sliced curve from c i  to outwards one by one. 
         [0037]    Combining all the closed NURBS curves together along the sweeping path, after detecting relationship of controlling points on different slice curves. Generalized cylinders are solved, which can minimize the deformation of the adjacent sliced curve and can guarantee the fitted point cloud data. 
         [0000]    
       
         
           
             
               argmin 
               
                 { 
                 
                   c 
                   i 
                 
                 } 
               
             
              
             
               
                 ∑ 
                 
                   c 
                   i 
                 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       E 
                       d 
                     
                      
                     
                       ( 
                       
                         c 
                         i 
                       
                       ) 
                     
                   
                   + 
                   
                     α 
                      
                     
                         
                     
                      
                     
                       
                         E 
                         m 
                       
                        
                       
                         ( 
                         
                           
                             c 
                             i 
                           
                           , 
                           
                             c 
                             
                               i 
                               + 
                               1 
                             
                           
                         
                         ) 
                       
                     
                   
                   + 
                   
                     β 
                      
                     
                         
                     
                      
                     
                       
                         E 
                         s 
                       
                        
                       
                         ( 
                         
                           
                             c 
                             
                               i 
                               - 
                               1 
                             
                           
                           , 
                           
                             c 
                             i 
                           
                           , 
                           
                             c 
                             
                               i 
                               + 
                               1 
                             
                           
                         
                         ) 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0038]    In the formula, all of the sliced NURBS curves {c i } along the sweeping path are putted together to be solved. E d  and E m  are consistent in formula (1) respectively. E s  is the smoothing item, which guarantees that the angle connected by the controlling point of three adjacent sliced NURBS curves is as small as possible. β is a constant. 0.1 is the value of β in the illustrated embodiment. 
         [0039]    Step S 405 , merging the generalized cylinders into a single surface, and smoothing intersections of the generalized cylinders so as to reconstruct surface from the point cloud. 
         [0040]    The illustrated embodiment converts the generalized cylinders calculated along the assigned sweeping path to distance fields. The distance fields are combined together by CSG parallel operation. Generating a surface according to the distance fields. Smoothing intersections of the generalized cylinders by Laplace transformation, so as to get an ultimate surface. 
         [0041]    Step S 406 , making interactive operations on the reconstructed surface, so as to improve quality of the surface. 
         [0042]    Appoint sharp features: It is permitted for users to draw a line on a two-dimensional screen; the NURBS curve in the generalized cylinders which intersects the line is solved. Amending the weight of NURBS controlling point, so that the reconstructed surface has sharp features consistent with users&#39; requirement. 
         [0043]    Amending the reconstructed surface: Sometimes the reconstructed point cloud surface can not satisfy users&#39; requirement. In this circumstance, users can select an arbitrary NURBS curve in the generalized cylinders, and amend the ultimate surface by editing the controlling point on the NURBS curve. 
         [0044]    Referring to  FIG. 3 ,  FIG. 3  is a block diagram of a system for reconstructing surface from a point cloud according to the invention. The system includes an extracting module, an editing module, a fitting module, a reconstructing module and an interacting module. All the modules exemplarily are software modules which are stored in a memory and executable by one or more processors. 
         [0045]    The extracting module is configured to extract skeletal curves from an input point cloud automatically. Specifically, the illustrated embodiment utilizes “L1-median” algorithm to extract skeletal curves from the input point cloud. 
         [0046]    The editing module is configured to edit the skeletal curves interactively, and assign sweeping path. It is specific as follows. 
         [0047]    Referring to  FIG. 2 , the preferred embodiment utilizes five basic operations for editing skeleton of the point cloud. The five basic operations are introduced as follows: 
         [0048]    (1) Cutting: deleting a side from skeletal curves of the point cloud, so as to cut a branch from the skeletal curves; or deleting a peak whose degree is greater than 2 from skeletal curves of the point cloud, in order to delete a combination point. 
         [0049]    (2) Connecting: connecting two terminal nodes in the skeletal curves of the point cloud, so as to connect two branches into one branch. 
         [0050]    (3) Pruning: deleting terminal part of a skeleton branch in the skeletal curves. 
         [0051]    (4) Extending: growing forward continuously along tangential terminal from endpoints of the skeleton branch in the skeletal curves of the point cloud. 
         [0052]    (5) Deforming: dragging a point of the skeleton in the skeletal curves of the point cloud to deform the skeleton by a user. The illustrated embodiment utilizes least square method to complete. 
         [0053]    The fitting module is configured to obtain high quality sliced point clouds along the edited skeletal curves, and fit a closed NURBS curve according to the sliced point clouds. Detailed steps are as follows. 
         [0054]    Selecting high quality sliced point clouds along the edited skeletal curves. Fitting a closed NURBS curve according to the sliced point clouds. The illustrated embodiment fits a closed NURBS curve from two-dimensional sliced point clouds, by utilizing squared distance minimization method which is based on curvature. 
         [0055]    If the fitting result is not accurate, users can amend the result by dragging a controlling point of the closed NURBS curve interactively. 
         [0056]    The reconstructing module is configured to reconstruct the point cloud to get generalized cylinders along the assigned sweeping path, according to the closed NURBS curves. Concrete steps are as follows: 
         [0057]    The illustrated embodiment sweeps the sliced point clouds along the assigned sweeping path. It is guaranteed that the new sliced point cloud curve matches the inputted point cloud. 
         [0058]    Interpolating each closed NURBS curve outwards based on the two-dimensional sliced point clouds and the closed NURBS curves. The NURBS curves encounter each other in the boundary, so as to detect relationship of controlling points on different slice curves. Interpolating each closed NURBS curve outwards by minimizing following formula (1): 
         [0000]      argmin c     j   (E d (c j )+αE m (c i ,c j ))  (1)
 
         [0059]    c i  is an original NURBS curve. c j  is a NURBS curve obtained by Interpolated. E d (c j ) is the error between c j  and a corresponding two-dimensional sliced point cloud. E m (c i ,c j ) is deforming degree between c i  and c j . α is a constant. 0.1 is the value of a in the illustrated embodiment. Obtaining adjacent sliced curve from c i  to outwards one by one. 
         [0060]    Combining all the closed NURBS curves together along the sweeping path, after detecting relationship of controlling points on different slice curves. Generalized cylinders are solved, which can minimize the deformation of the adjacent sliced curve and can guarantee the fitted point cloud data. 
         [0000]    
       
         
           
             
               argmin 
               
                 { 
                 
                   c 
                   i 
                 
                 } 
               
             
              
             
               
                 ∑ 
                 
                   c 
                   i 
                 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       E 
                       d 
                     
                      
                     
                       ( 
                       
                         c 
                         i 
                       
                       ) 
                     
                   
                   + 
                   
                     α 
                      
                     
                         
                     
                      
                     
                       
                         E 
                         m 
                       
                        
                       
                         ( 
                         
                           
                             c 
                             i 
                           
                           , 
                           
                             c 
                             
                               i 
                               + 
                               1 
                             
                           
                         
                         ) 
                       
                     
                   
                   + 
                   
                     β 
                      
                     
                         
                     
                      
                     
                       
                         E 
                         s 
                       
                        
                       
                         ( 
                         
                           
                             c 
                             
                               i 
                               - 
                               1 
                             
                           
                           , 
                           
                             c 
                             i 
                           
                           , 
                           
                             c 
                             
                               i 
                               + 
                               1 
                             
                           
                         
                         ) 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0061]    In the formula, all of the sliced NURBS curves {c i } along the sweeping path are putted together to be solved. E d  and E m  are consistent in formula (1) respectively. E s  is the smoothing item, which guarantees that the angle connected by the controlling point of three adjacent sliced NURBS curves is as small as possible. β is a constant. 0.1 is the value of β in the illustrated embodiment. 
         [0062]    The reconstructing module is also configured to merge the generalized cylinders into a single surface, and smooth intersections of the generalized cylinders so as to reconstruct surface from the point cloud. 
         [0063]    The illustrated embodiment converts the generalized cylinders calculated along the assigned sweeping path to distance fields. The distance fields are combined together by CSG parallel operation. Generating a surface according to the distance fields. Smoothing intersections of the generalized cylinders by Laplace transformation, so as to get an ultimate surface. 
         [0064]    The interacting module is configured to make interactive operations on the reconstructed surface, so as to improve quality of the surface. 
         [0065]    Appoint sharp features: It is permitted for users to draw a line on a two-dimensional screen; the NURBS curve in the generalized cylinders which intersects the line is solved. Amending the weight of NURBS controlling point, so that the reconstructed surface has sharp features consistent with users&#39; requirement. 
         [0066]    Amending the reconstructed surface: Sometimes the reconstructed point cloud surface can not satisfy users&#39; requirement. In this circumstance, users can select an arbitrary NURBS curve in the generalized cylinders, and amend the ultimate surface by editing the controlling point on the NURBS curve. 
         [0067]    Through the invention is described referring to preferred embodiments, it can be understood by a person skilled in the art that the preferred embodiments mentioned above are merely for illustrating the invention rather than limiting protection scope of the invention, any modification, equivalent substitution and improvement within the spirit and principle of invention should be included in the protection scope of the invention.