Method for three-dimensional scanning and system for the same
The method enhances three-dimensional scanning by refining individual-frame point clouds through two-stage registration, addressing marker inaccuracies and improving data quality with reduced defects.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SCANTECH (HANGZHOU) CO LTD
- Filing Date
- 2026-01-12
- Publication Date
- 2026-07-16
AI Technical Summary
Conventional three-dimensional scanners face issues with inaccurate rotation and translation data due to marker identification errors, leading to poor data fusion quality with phenomena like blade-like marks and low-quality three-dimensional models.
A method involving two-stage registration operations: preliminary stitching to form a global point cloud, followed by registration optimization using algorithms like ICP and least squares to refine individual-frame point clouds, ensuring accurate alignment and reducing defects.
Improves data quality by minimizing defects in the three-dimensional model, reducing blade-like marks and wrinkles, with a defect rate of 5%-13% in the final point cloud.
Smart Images

Figure CN2026071895_16072026_PF_FP_ABST
Abstract
Description
METHOD FOR THREE-DIMENSIONAL SCANNING AND SYSTEM FOR THE SAMETECHNICAL FIELD
[0001] The present disclosure relates to the technical field of three-dimensional scanning, in particular to a three-dimensional (3D) scanning method and system based on a three-dimensional scanner.BACKGROUND
[0002] Three-dimensional scanners, such as handheld scanners or tracking scanners, are widely used in industrial design, cultural relic protection, medicine and other fields.
[0003] In the prior art, handheld scanners typically use marker stitching technology for real-time tracking, followed by point cloud fusion through poses tracked by the markers. However, when the identification accuracy of the markers is reduced, or the markers are overly concentrated, or there are too few markers, rotation and translation data calculated for a individual frame may become inaccurate, thus leading easily to fusion data with blade-like marks or low-quality.
[0004] Additionally, an existing tracking scanner is generally provided with a tracking head, and real-time tracking is performed by tracking markers on a scanning head. However, when the tracking accuracy is reduced or the tracking distance is increased, the quality of the finally fused data will be significantly deteriorated. For example, noticeable blade-like marks may appear.SUMMARY
[0005] A summary of some aspects of the present disclosure is provided below, which will be further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as a means to limit the scope of the claimed subject matter.
[0006] In one aspect, one or more embodiments of the present disclosure address deficiencies of prior art and provide a method for three-dimensional scanning that includes:
[0007] scanning, by a three-dimensional scanner, a surface of a target object to obtain scan data;
[0008] performing a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;
[0009] performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; and
[0010] applying the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the target object.
[0011] In one or more embodiments, performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data includes: searching for matched neighboring points from the preliminary global point cloud for a plurality of points of each of the one or more individual-frame point clouds to obtain matched point pairs; and determining, as the updated individual-frame rotation and translation data, one or more rigid transformation matrices that register the one or more individual-frame point clouds to the preliminary global point cloud based on the matched point pairs.
[0012] In one or more embodiments, the plurality of scan frames include all scan frames obtained upon completion of the scanning of the target object.
[0013] In one or more embodiments, performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data includes: performing the registration optimization operation on one or more individual-frame point clouds subjected to the preliminary stitching operation to obtain the updated individual-frame rotation and translation data of the one or more individual-frame point clouds.
[0014] In one or more embodiments, the method further includes: performing another stitching operation on the set of point clouds with the updated individual-frame rotation and translation data to obtain an updated preliminary global point cloud; performing another registration optimization operation on the one or more individual-frame point clouds of the individual scan frames based on the updated preliminary global point cloud to obtain re-updated individual-frame rotation and translation data of the one or more individual-frame point clouds; and applying the re-updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain the three-dimensional model of the surface of the target object.
[0015] In one or more embodiments, the plurality of scan frames include scan frames obtained in real time during the scanning of the target object.
[0016] In one or more embodiments, the one or more individual scan frames are scan frames obtained in real time subsequent to the plurality of scan frames.
[0017] In one or more embodiments, the plurality of scan frames further include at least one scan frame subjected to the registration optimization operation.
[0018] In one or more embodiments, a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.
[0019] In one or more embodiments, the scan data includes marker data for each scan frame, the marker data being used to enforce constraints in the preliminary stitching operation and the registration optimization operation.
[0020] In another aspect, one or more embodiments provide a system for three-dimensional scanning that includes:
[0021] a scan data acquisition module configured to acquire scan data obtained by scanning a surface of a target object with a three-dimensional scanner;
[0022] a preliminary stitching module configured to perform a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;
[0023] a registration optimization module configured to perform, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; and
[0024] a three-dimensional reconstruction module configured to apply the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the surface of the target object, wherein a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.
[0025] In yet another aspect, one or more embodiments provide an apparatus for three-dimensional scanning that includes:
[0026] a three-dimensional scanner configured to scan a surface of a target object to obtain scan data;
[0027] a processor configured to:
[0028] perform a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;
[0029] perform, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; and
[0030] apply the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the target object, wherein a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.
[0031] In one or more embodiments of the present disclosure, a point cloud registration operation is used for further optimizing one or more individual-frame point clouds after the point cloud stitching, so that the one or more individual-frame point clouds may be fitted more closely to the global point cloud. For this purpose, at least two different registration operations are implemented in one or more embodiments. First, a plurality of individual-frame point clouds are transformed into a global coordinate system by implementing a first registration operation to obtain a global point cloud, thereby achieving preliminary stitching. Then, based on the global point cloud obtained by the first registration operation (preliminary stitching) , a second registration operation is implemented on one or more individual-frame point clouds to optimize spatial poses of the one or more individual-frame point clouds that have been transformed into the global coordinate system, so that the one or more individual-frame point clouds are fitted more closely to the global point cloud. Therefore, based on one or more embodiments of the present disclosure, the quality of the point cloud is effectively improved by creative means, the overall stitching quality may be improved, and particularly, the phenomena such as “blade-like marks” and “wrinkles” in the resulting three-dimensional image are significantly avoided.BRIEF DESCRIPTION OF DRAWINGS
[0032] Other details and advantages of one or more embodiments of the present disclosure will be described in further detail below with reference to the accompanying drawings. For consistency, like elements in the various drawings are designated by like reference numerals. In the figures:
[0033] FIG. 1 is a flowchart of an exemplary three-dimensional scanning method according to one or more embodiments of the present invention;
[0034] FIG. 2 is a flowchart of another exemplary three-dimensional scanning method according to one or more embodiments of the present invention;
[0035] FIG. 3 is a flowchart of yet another exemplary three-dimensional scanning method according to one or more embodiments of the present invention;
[0036] FIG. 4 is a block diagram of an exemplary three-dimensional scanning system according to one or more embodiments of the present invention; and
[0037] FIG. 5 is a schematic block diagram of an exemplary three-dimensional scanning apparatus according to one or more embodiments of the present invention.DETAILED DESCRIPTION
[0038] In the following detailed description of one or more embodiments of the present disclosure, numerous specific details are set forth in order to provide a more thorough understanding of the present disclosure. However, it will be apparent to one of ordinary skill in the art that the present disclosure may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
[0039] Throughout the disclosure, ordinal numbers (e.g., first, second, third, etc. ) may be used as an adjective for an element (i.e., any noun in the application) . The use of ordinal numbers is not to imply or create any particular ordering of the elements nor to limit any element to being only a single element unless expressly disclosed, such as using the terms “before, ” “after, ” “single, ” and other such terminology. Rather, the use of ordinal numbers is to distinguish between the elements. By way of an example, a first element is distinct from a second element, and the first element may encompass more than one element and succeed (or precede) the second element in an ordering of elements.
[0040] It is to be understood that the singular forms (a, an, the) of elements include plural referents unless the context clearly dictates otherwise. Therefore, for example, reference to “a system” may include one or more such systems.
[0041] Terms such as “about” and “substantially” mean that the described characteristic, parameter, or value does not need to be exact, but that deviations or variations (including, for example, tolerances, measurement errors, limitations in measurement precision, and other factors known to one of ordinary skill in the art) may occur in amounts that do not preclude the effect that the characteristic is intended to provide.
[0042] It is to be understood that one or more of the steps shown in the flowcharts may be omitted, repeated, and / or performed in a different order than the order shown. Accordingly, the scope disclosed herein should not be considered limited to the specific arrangement of steps shown in the flowcharts.
[0043] In the following description with reference to the figures, any component described with regard to a figure may be equivalent to one or more like-named components described with regard to any other figure. For brevity, descriptions of these components will not be repeated with regard to each figure. Thus, each and every embodiment of the components of each figure is incorporated by reference and assumed to be optionally present within every other figure having one or more like-named components. Additionally, in accordance with various embodiments disclosed herein, any description of the components of a figure is to be interpreted as an optional embodiment which may be implemented in addition to, in conjunction with, or in place of the embodiments described with regard to a corresponding like-named component in any other figure.
[0044] In the three-dimensional scanning method and system described in the present disclosure, a point cloud registration operation is innovatively used to optimize point cloud data.
[0045] In conventional scenarios, a registration operation is used to stitch a plurality of point clouds acquired from different perspectives or at different time points. For example, in a conventional global stitching operation, the objects processed by the registration algorithm are the reconstructed 3D points of markers on the scanner body observed by a tracker and a theoretical model of these markers. By performing the registration operation on them, a pose relationship (i.e., a stitching RT) of a camera in the current scanner relative to the tracker can be obtained. Using this relationship, individual-frame point clouds acquired from different perspectives may be transformed from a camera coordinate system (i.e., local coordinate system) to a tracker coordinate system (i.e., global coordinate system) . Conventional stitching solutions often suffer from errors in the rotation and translation data (RT) , resulting in insufficient overall stitching quality, so that the resulting three-dimensional image is prone to the phenomena such as “blade-like marks” and “wrinkles. ”
[0046] In one or more embodiments of the present disclosure, the registration operation is used for further optimizing one or more individual-frame point clouds after a plurality of individual-frame point clouds are stitched to form a global point cloud, so that the one or more individual-frame point clouds may be more closely fitted to the global point cloud, thereby effectively improving the data quality of the global point cloud. For this purpose, at least two different registration operations are implemented in one or more embodiments. First, a plurality of individual-frame point clouds are transformed into a global coordinate system by implementing a first registration operation to obtain a global point cloud, thereby achieving preliminary stitching. Then, based on the global point cloud obtained by the first registration operation (preliminary stitching) , a second registration operation is implemented on one or more individual-frame point clouds to optimize spatial poses of the one or more individual-frame point clouds transformed into the global coordinate system, so that the one or more individual-frame point clouds are fitted more closely to the global point cloud.
[0047] For example, assuming that an individual-frame point cloud in the camera (scanner) coordinate system is P and the stitching RT obtained by the first registration is (R1, t1) , the individual-frame point cloud transformed into the global coordinate system based on the stitching RT will be P’ = R1P + t1. A global point cloud Q is obtained based on the fusion of all P’s . Registration is performed between P’ and Q, yielding a pose relationship (R2, t2) of P’ with respect to Q. An updated P” =R2P’ +t2 may be obtained based on (R2, t2) . At this point, the rotation and translation data of the individual-frame point cloud P for stitching is updated as (R1', t1') , where R1’ = R2R1, t1’ = R2t1 + t2, and the corresponding point cloud data is updated as P’ = R2 (R1P + t1) + t2.
[0048] The point cloud data quality can be effectively improved based on the method of the present disclosure. For example, a comparative test is conducted between the conventional scanning method and the current scanning method that implements the registration optimization operation using a standard sphere-plate for calibration. A set of data is acquired when the distance between the scanner and the tracker is nearly 8 meters. It is observed that in the model obtained by using the conventional scanning method, the surface of the sphere is not smooth and has wrinkles, and the surface of the plate presents diagonal lines. In contrast, in the model obtained by using the method of the present disclosure, the sphere becomes smooth, and the diagonal lines on the surface of the plate are significantly reduced. Additionally, by performing spherical fitting on the point cloud of the sphere and then selecting the point cloud corresponding to the sphere to calculate the shortest directed distance from each point to the fitted spherical shell, it can be found from the obtained histogram of deviation values that the maximum deviation in the conventional method is about ± 0.5 mm, with fewer than 4,000 points having deviations of about 0. However, in the global point cloud obtained by the present method, the deviation of the spherical surface becomes more consistent, with the maximum deviation being only about ± 0.1 mm and more than 9,000 points having deviations of about 0. Notably, the proportion of defective parallel lines or intersecting lines in the total point cloud of the resulting three-dimensional model is 5%-13%.
[0049] Various solutions in the prior art may be used to calculate the proportion of defective parallel lines or intersecting lines in the total point cloud of the resulting three-dimensional model. For example, the solution in the prior art such as the software PolyWorks may be used. The analysis procedure generally includes: importing the global point cloud obtained by the registration optimization into the software PolyWorks; and selecting two regions to obtain statistics of blade-like marks respectively. Among them, the first region is an area in which blade-like marks should theoretically not exist and the statistical result is taken as the lower limit of the proportion of the blade-like marks; the second region is an area near the edge of the point cloud in which blade-like marks are more significant, and thus the statistical result is taken as the upper limit of the proportion of the blade-like marks. Using a straight line-anchoring tool, straight lines are fitted in the area visually identified to have blade-like marks. All anchored straight line objects are then selected to set point cloud extraction parameters in the property setting. Then, measurement values are extracted to identify and segment the points near the straight lines. The number of segmented point clouds is used as a numerator and the number of points in the selected area is used as a denominator. The calculated ratio value represents the proportion of the blade-like marks.
[0050] FIG. 1 shows a flowchart of an exemplary three-dimensional scanning method 100 according to one or more embodiments of the present invention, the method including the following steps 101-104.
[0051] In step 101, a surface of a target object is scanned by using a scanner to obtain scan data.
[0052] Different types of scanners may be used to perform the scanning. For example, the scanner may be handheld or stationary, depending on the scanned object and application scenario. The scanner may include two or more cameras that simultaneously capture images of the surface of the target object from different angles respectively. Then, by analyzing the difference (i.e., parallax) between the images captured by the different cameras, the three-dimensional coordinates of each point on the surface of the object may be calculated, thereby forming point cloud data. The point cloud data may be used to represent the shape, size and surface features of the object. For a three-dimensional object, the scanner needs to be continuously moved and rotated to scan different surfaces of the three-dimensional object. The point cloud data of the surface of the object acquired from a specific angle and position, along with the corresponding pose information of the scanner and other scanning information, constitute a scan frame. The point cloud data contained in a plurality of scan frames collectively form a set which is a set of point clouds.
[0053] In addition, during continuous scanning of the three-dimensional object, the scanner also records rotation and translation information of each scan frame. This information, which may be measured by sensors or calculated using algorithms, is used to describe parameters of rotation and translation transformation of the scanner between different scan frames. Using these parameters, the point cloud data of different scan frames may be stitched to obtain a unified global point cloud. During one scanning process, the rotation and translation data of a plurality of scan frames constitute a rotation and translation set.
[0054] The scan data, such as the point cloud data, the rotation and translation information, and the optional marker data, may be stored in the scanner in the form of files, or transmitted through a network and stored in other devices for processing.
[0055] In step 102, a preliminary operation is performed with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud.
[0056] As described above, the point cloud data of the plurality of scan frames collectively form a set of point clouds, and their rotation and translation data collectively form a rotation and translation set. The preliminary stitching operation is a process of stitching the set of point clouds and the rotation and translation set of the plurality of scan frames to obtain a preliminary global point cloud. The plurality of scan frames may be continuously acquired in a time sequence or selected according to a specific scanning strategy. The preliminary stitching operation typically uses certain algorithms, such as iterative closest point (ICP) algorithm, normal distributions transform (NDT) algorithm, marker stitching algorithm, and the like. The basic idea of these algorithms is to find the corresponding points between different scan frames and calculate the rotation and translation transformation between them, so as to realize the point cloud stitching and obtain the preliminary global point cloud.
[0057] For example, the pose relationship (stitching RT) of the current camera with respect to the tracker may be obtained according to the markers on the scanner body observed by the tracker in each scan frame, so that the individual-frame point clouds acquired from different perspectives are unified from the camera coordinate system (local coordinate system) to the tracker coordinate system (global coordinate system) . Then, the preliminary global point cloud is obtained by fusing the point cloud data of each scan frame. This preliminary global point cloud roughly represents the overall surface of the target object but may contain certain errors and inaccuracies. To improve processing efficiency, the preliminary stitching operation may be performed with a resolution greater than 5.0 mm.
[0058] As another example, the ICP algorithm may be used to perform preliminary stitching on each scan frame, with a specific procedure that may include:
[0059] Initialization: selecting two scan frames as the initial reference frame and target frame, and roughly aligning their point cloud data;
[0060] Corresponding point search: searching for the closest corresponding point pairs in the point clouds of the reference frame and the target frame. Euclidean distance or other distance metrics may be used to determine the corresponding points;
[0061] Transformation calculation: calculating the rotation and translation transformation of the target frame relative to the reference frame according to the corresponding point pairs. Methods such as least squares may be used to find the transformation matrix;
[0062] Point cloud update: updating the point cloud of the target frame according to the calculated rotation and translation transformation to bring it closer to the reference frame; and
[0063] Repetition of the steps: repeating the above steps until a certain convergence condition is satisfied, for example, when the distance between the corresponding points is less than a certain threshold or the number of iterations reaches an upper limit.
[0064] Through the preliminary stitching operation, the point clouds of the plurality of scan frames may be stitched into a preliminary global point cloud. Although this global point cloud may have some errors and imperfections, it serves as the basis for subsequent registration optimization operations in one or more embodiments of the present invention.
[0065] In step 103, a registration optimization operation is performed on one or more individual-frame point clouds of individual scan frames in the scan data with the preliminary global point cloud as a reference, to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud.
[0066] The registration optimization operation is a process of further adjusting and optimizing the individual-frame point cloud data and the individual-frame rotation and translation data of one or more individual scan frames based on the preliminary global point cloud to improve the accuracy and completeness of the point clouds. This process typically uses certain optimization algorithms, such as iterative closest point (ICP) algorithm, least square method, genetic algorithm, and the like, to find the optimal individual-frame rotation and translation data, thereby allowing for the highest matching degree between the individual-frame point clouds and the preliminary global point cloud. The rotation and translation data of the individual scan frames obtained after the registration optimization operation more accurately describes the positions and the poses of the scanner during the scan frames, thereby allowing for better fusion of the individual-frame point clouds and the global point cloud. For example, the individual-frame point cloud data and the individual-frame rotation and translation data of an individual scan frame may be extracted from the scan data. This scan frame may be any scan frame that has not been optimized. Then, using the preliminary global point cloud as a reference, a registration optimization algorithm, such as ICP algorithm, least square method or genetic algorithm, and the like, is used to adjust and optimize the individual-frame point cloud data and the individual-frame rotation and translation data.
[0067] In one example, the registration optimization operation is implemented using the ICP algorithm, with a specific procedure that may include the following steps.
[0068] First, a KD tree is constructed for the global point cloud Q to increase the point search speed.
[0069] Next, the closest point in Q for each point in the individual-frame point cloud Pi is searched for by using the KD tree to obtain the index number of the found closest point in Q and the Euclidean distance between the point pair. The Euclidean distance is calculated using the following formula (assuming that the closest point in Q for a point p in Pi is q) :
[0070] In addition, a method is used to calculate the distance from each point in Pi to the tangent plane of its closest point in Q (i.e., a point-to-plane distance) . That is, a tangent equation is established using the coordinates and normal vector of the closest point. The distance from the point in Pi to the tangent plane is then calculated and stored in an array. The point-to-plane distance is calculated using the following formula (assuming that the normal vector of q is nq with a magnitude of 1) :
[0071] distplane [p (x) -q (x) )] ×nq (x) + [p (y) -q (y) ] × nq (y) +[p (z) -q (z) ]× nq (z)
[0072] Due to systematic errors in the scanning, noise may exist in the individual-frame point cloud Pi, and not all points are available for point cloud registration. Based on the Euclidean distance, it is determined point by point whether the current point is noise. A distance threshold (currently set as the voxel size of Q) is set. Points with distances less than this threshold are considered valid, while others are considered noise. If the current point in Pi is deemed valid, its point-to-plane distance is accumulated (the initial value being 0) , and the count of the valid points is also accumulated.
[0073] After traversing all the points in Pi for the above operation, the array storing the point-to-plane distances may be sorted in an ascending order. A valid point ratio is obtained by dividing the number of valid points by the total number of points in Pi. Based on the valid point ratio and a preset ratio threshold (currently set to 0.75) , the threshold dist_plane at the corresponding ratio is taken from the sorted point-to-plane distance array for later use. The error for Pi in this calculation, xyz_err, is represented by the cumulative value of the point-to-surface distances of the total valid points divided by the total number of points in Pi and then multiplied by the ratio.
[0074] Based on dist_plane, all points in Pi whose point-to-plane distance is less than this threshold are identified. Considering that a point in Q may correspond to a plurality of points in Pi, the point pair with the minimum Euclidean distance is selected as the matched pair to ensure that each point in Q corresponds one-to-one with a point in Pi.
[0075] If the currently calculated registration iteration count is 0, it is determined whether the number of the matched pairs is 0. If it is 0, the iteration is completed. Otherwise, the initial error err0 and the valid point ratio are set as the values currently calculated. To match point pairs, an SVD solution method corresponding to the point-to-surface distance is used to find a rigid transformation matrix from Pi to Q, as an updated individual-frame rotation and translation data of Pi.
[0076] Theoretically, if the matrix calculation is correct, after applying the updated individual-frame rotation and translation data to Pi to obtain new point cloud data Pi’ , the distance between the matched points in Pi’ and Q should be smaller than the distance between the corresponding points in Pi and Q. If it is determined that the distance increases after transformation, the transformation matrix found based on SVD is deemed incorrect and needs to be recalculated. During recalculation, the re-projection information of the markers on the scanner body observed by the tracker is considered, ensuring that the output rotation and translation data Rt balances the re-projection error and the point-to-plane distances of the matched point pairs. After obtaining Rt, it is determined whether xyz_err is less than the set threshold and the initial error err0. If yes, the registration is considered valid, and the valid registration count is accumulated. If the valid registration count reaches the set threshold, the iteration is completed. Otherwise, the iteration continues with Pi’ .
[0077] The position of Pi’ is determined based on the state at the end of the registration process. If the iteration is completed when the registration converges or the valid registration count reaches the set threshold, Pi is replaced with the latest Pi’ . If the registration does not converge and the valid registration count does not reach the set threshold, it is determined whether to discard or to not update Pi based on the number of the matched point pairs and the number of the valid points.
[0078] After performing the above operations on all of the individual-frame data, stitching and filtering are performed to obtain a new global point cloud Q’ .
[0079] In another example, the registration optimization operation is implemented using the least square method, with the specific procedure that may include:
[0080] Definition of the objective function: the objective function is typically the sum of the squares of the distances between the individual-frame point cloud and the preliminary global point cloud. Euclidean distances or other distance metrics may be used to calculate the distances between point clouds;
[0081] Differentiation: find the derivative of the objective function with respect to the individual-frame rotation and translation data to obtain a gradient of the objective function;
[0082] Iterative optimization: based on the gradient of the objective function, using an iterative optimization algorithm, such as gradient descent method or Newton method, to continuously update the individual-frame rotation and translation data, thereby gradually reducing the value of the objective function; and
[0083] Convergence determination: determining whether the optimization process converges. This can be determined by verifying whether the value of the objective function is less than a certain threshold or whether the number of iterations reaches an upper limit.
[0084] Through the registration optimization operation, the updated individual-frame rotation and translation data of an individual scan frame may be obtained. This data more accurately describes the position and the pose of the scanner during the scan frame, allowing for better fusion of individual-frame point clouds.
[0085] In step 104, the updated individual-frame rotation and translation data is used to obtain a three-dimensional model of the surface of the object.
[0086] For example, the updated individual-frame rotation and translation data for all scan frames may be applied to the corresponding individual-frame point cloud data, so that all point clouds may be represented in a unified coordinate system. Then, all the point cloud data is fused and processed to obtain a complete point cloud of the surface of the object. Some point cloud fusion algorithms, such as voxel filtering or Poisson reconstruction, may be used to remove noise, fill gaps, and improve the quality of the point cloud. Finally, based on the fused point cloud data, a three-dimensional reconstruction algorithm, such as triangulation, surface fitting, and the like, may be used to construct the three-dimensional model of the surface of the object. The three-dimensional model may be in the form of a polygonal mesh model, a voxel model, and the like, depending on the application requirements. With the three-dimensional mode thus obtained, since its individual-frame point clouds are subjected to the above-mentioned registration optimization operation, the quality of the global point cloud data obtained from the subsequent steps is significantly improved compared with that of the point cloud data obtained without updated pose matrices, thereby allowing for effectively reducing or even eliminating the blade-like marks of the three-dimensional image obtained by fusion. For example, it can be determined by testing that the proportion of defective parallel lines or intersecting lines in the total point cloud of the resulting three-dimensional model is 5%-13%. FIG. 2 is a flowchart of another exemplary three-dimensional scanning method 200 according to one or more embodiments of the present invention. The method is particularly suitable for the situation in which the object is subjected to global stitching after a complete scan. However, parts of the steps in the method may be the same as those in FIG. 1. For this reason, the above description of specific steps will be directly applied where appropriate and will not be repeated. Steps or contents that are different from or additional to the method shown in FIG. 1 will be described mainly below. In addition, the related content below with reference to FIG. 2 may also be applied to the method described in FIG. 1.
[0087] The method 200 shown in FIG. 2 may include the following steps 201-206.
[0088] In step 201, scanning is performed to obtain global scan data.
[0089] Upon start of the method, a surface of a target object may be scanned using a scanner. During the scanning process, the scanner records the point cloud data of each scanning position and the pose matrix (i.e. rotation and translation data) of the scanner that describes the position and orientation of the scanner in three-dimensional space. For example, a scanner may be used to scan a car model. The scanner scans the car at different positions and angles. Each scan results in a set of point cloud data and corresponding rotation and translation data.
[0090] The scan data acquired via the scanning step may be stored or transmitted, with the point cloud data stored in the point cloud set P and the corresponding rotation and translation data stored in the rotation and translation set RT. Each element in the point cloud set P is a set of point cloud data. Each element in the rotation and translation set RT is a pose matrix corresponding to the point cloud data in the point cloud set P. For example, after completing the entire scan of the vehicle, the point cloud data and the rotation and translation data of a plurality of scan frames are obtained. The point cloud set is represented as P = {P1, P2, P3, ..., Pi} , where Pi represents the point cloud data of the ith scan frame. The rotation and translation set is represented as RT = {RT1, RT2, RT3,..., RTi} , where RTi represents the pose matrix of the ith scan frame.
[0091] In step 202, a preliminary stitching is performed by using the point cloud set P and the rotation and translation data set RT to obtain a global point cloud C0.
[0092] The preliminary stitching involves preliminarily combining the point cloud data of a plurality of scan frames to obtain a preliminary global point cloud. This may be done using certain simple stitching algorithms, such as feature point-based stitching or iterative closest point (ICP) -based stitching. During the preliminary stitching process, the point clouds of different scan frames are transformed into the same coordinate system by using the information in the rotation and translation set RT, and then are combined.
[0093] For example, stitching may be performed based on feature points. First, some feature points, such as corner points, edge points, and the like on the surface of the object, are identified in different scan frames. Then, by matching these feature points, the correspondence between different scan frames is determined. Finally, based on the information in the rotation and translation data set RT, the point clouds of different scan frames are transformed into the same coordinate system and combined to obtain the preliminary global point cloud C0.
[0094] In step 203, a registration optimization operation is performed on each individual-frame point cloud data Pi by using the preliminary global point cloud C0 to obtain an updated pose matrix set RT1.
[0095] The registration optimization operation is to further accurately adjust the positional relationship between the point clouds of different scan frames to obtain a more accurate global point cloud. In this step, the individual-frame point cloud data Pi is registered to the preliminary global point cloud C0. During the registration process, the difference between the individual-frame point cloud and the global point cloud is minimized by continuously adjusting the pose matrix of the individual scan frame, ultimately resulting in an updated pose matrix set RT1.
[0096] The registration optimization operation may be performed using any of the methods described above with reference to FIG. 1. As another example, when the ICP algorithm is used for point cloud registration, first, some points are selected from the individual-frame point cloud data Pi as the source point set, and some points are selected from the global point cloud C0 as the target point set. Then, an initial pose matrix is determined by calculating the correspondence between the source point set and the target point set. Then, the source point set is transformed into the coordinate system of the target point set by using this pose matrix, and the distance between the transformed source point set and the target point set is calculated. This distance is minimized by continuously adjusting the pose matrix. After a plurality of iterations, the updated pose matrix set RT1 is finally obtained.
[0097] In step 204, whether the iteration condition is satisfied is determined.
[0098] After the point cloud registration operation, it is necessary to determine whether the iteration condition is satisfied. The iteration condition may involve certain preset thresholds, for example, the distance between the point clouds being less than a certain value, the number of iterations reaching an upper limit, and the like. If the iteration condition is satisfied, the point cloud registration is considered to have converged, and the process proceeds to step 206. If the iteration condition is not satisfied, the preliminary stitching step 205 and the point cloud registration operation step 203 need to repeat.
[0099] For example, it is assumed that the distance between the point clouds being less than 0.1 is set as the iteration condition. After each point cloud registration operation, the distance between the individual-frame point cloud and the global point cloud is calculated. If the distance between all the point clouds is less than 0.1, the iteration condition is considered to be satisfied. Otherwise, the point cloud registration operation is repeated after step 205.
[0100] In step 205, when the iteration condition is not satisfied, performing another preliminary stitching by using the point cloud set P and the updated rotation and translation set RT1 to obtain an updated preliminary global point cloud C0’ . The updated preliminary global point cloud C0’ will be used to perform another registration optimization on the individual-frame point cloud data Pi to obtain a re-updated pose matrix set RT1 until the preset iteration condition is satisfied.
[0101] In step 206, the point cloud set P and the updated pose matrix set RT1 are used to obtain a three-dimensional model of the object.
[0102] When the point cloud registration operation satisfies the iteration condition, the point cloud set P and the updated pose matrix set RT1 are used for the point cloud fusion operation. The point cloud fusion is to combine the point cloud data of all scan frames in the same coordinate system to obtain the final global point cloud C. Certain point cloud fusion algorithms, such as voxel filtering, Poisson reconstruction, and the like may be used.
[0103] For example, when the voxel filtering algorithm is used for point cloud fusion, all the point clouds in the point cloud set P are first transformed into the same coordinate system based on the pose matrix set RT1. Then, the point clouds are divided into small voxels. For each voxel, one representative point is selected, such as the center of gravity of the point clouds in the voxel or the point closest to the center of the voxel. Finally, the representative points of all the voxels are combined to obtain the global point cloud C.
[0104] The data quality of the global point cloud C thus obtained is significantly improved compared with that of the point cloud data obtained without updating the pose matrices, thereby allowing for effectively reducing the blade-like marks of the three-dimensional image obtained by fusion.
[0105] FIG. 3 is a flowchart of yet another specific three-dimensional scanning method 300 according to one or more embodiments of the present invention. The method is suitable for the situation in which real-time stitching is performed during the process of scanning the object. However, parts of the steps in the method may be the same as those in FIGS. 1 and 2. For this reason, the above description of the content of specific steps will be directly applied where appropriate and will not be repeated. Steps or contents that are different from or additional to the method shown in FIGs. 1 and 2 will be described mainly below. Likewise, the related content below with reference to FIG. 3 may also be applied to FIGs. 1 and 2. For example, the method 300 shown in FIG. 3 may include the following steps 301-307.
[0106] In step 301, upon start of the method, the target object is scanned, and real-time scan data Pi is obtained.
[0107] A suitable scanner may be selected to scan the target object in real time to obtain the point cloud data Pi for each frame. During the scanning process, the scanner continuously acquires the point cloud information on the surface of the object. For example, when a scanner is used to scan a sculpture, the scanner scans the sculpture at different positions and angles. Each scan results in a set of point cloud data Pi and the corresponding rotation and translation data (pose matrix) RTi.
[0108] For example, some markers may be provided in the scanned scene, and the positions of these markers in the world coordinate system are known. By identifying the markers in the scan data and matching them with the markers in the world coordinate system, the pose matrix RTi for each frame of scan data relative to the world coordinate system may be calculated. As another example, some markers with a specific pattern may be provided around the scanned sculpture. While scanning the sculpture, the scanner also scans these markers. By identifying the features of the markers and matching them with the positions of the markers in the preset world coordinate system, the pose matrix RTi for the current frame of scan data may be calculated.
[0109] In step 302, preliminary stitching is performed by using a point cloud set P and a rotation and translation set RT related to a plurality of scan frames to obtain a preliminary global point cloud C0.
[0110] As the scanning progresses, the point cloud data Pi and the corresponding rotation and translation data RTi of a plurality of scan frames will constitute a point cloud set P and a rotation and translation set RT. When the number i of the scan frames reaches a preset value N, preliminary stitching is performed on the point cloud set P and the rotation and translation set RT to obtain a preliminary global point cloud C0. The algorithm for the preliminary stitching may be any of those described above, or any point cloud stitching method known in the art.
[0111] In step 303, registration optimization is performed on the point cloud data Pi and the rotation and translation data RTi of the ith frame obtained in real time based on C0 to obtain an updated individual-frame rotation and translation data RTi.
[0112] Here, i is a real-time scan frame after the preset scan frame number N. As described in step 302, the point cloud set P and the rotation and translation set RT are preliminarily fused to obtain the preliminary global point cloud C0. When i is larger than N, registration optimization is performed on the point cloud data Pi and the rotation and translation data RTi of the ith frame obtained in real time based on C0 to obtain an updated individual-frame rotation and translation data RTi, so as to improve the accuracy of each frame of point cloud data in the global coordinate system. The registration optimization operation may be any of the methods described above.
[0113] In step 304, Pi is transformed into the world coordinate system through RTi to obtain Pi_w.
[0114] In the scan data, the rotation and translation data RTi corresponding to the ith frame data Pi is now replaced by the updated rotation and translation data RTi after registration optimization. The point cloud data Pi of the current frame is transformed into the world coordinate system by using the updated pose matrix RTi to obtain Pi_w. This can be achieved, for example, by operations such as matrix multiplication. For example, it is assumed that the updated RTi is a 4 x 4 transformation matrix containing rotation and translation information. By multiplying each point in Pi by the updated RTi, the points in Pi may be transformed into the world coordinate system to obtain Pi_w.
[0115] In step 305, Pi_w is fused in real time.
[0116] Pi_w is fused into the preliminary global point cloud in real time to obtain an updated global point cloud C.
[0117] In the scan data, the rotation and translation data RTi corresponding to the ith frame data Pi is now replaced by the updated rotation and translation data RTi after registration optimization, which is used to transform the point cloud data Pi of the current frame into the world coordinate system to obtain Pi_w, thereby realizing the optimization of the point cloud data. The quality of the point cloud data after such optimization is significantly improved compared with the point cloud data obtained without updating the pose matrices, allowing for effectively reducing the blade-like marks of the three-dimensional image obtained by fusion.
[0118] In step 306, whether the scan is completed is determined.
[0119] The method is directed to a three-dimensional scanning method that implements stitching. After performing stitching on the ith scan frame, it is necessary to determine whether the scanning process has been completed. If it is determined that the scanning process has not been completed, steps 302-305 are repeated to perform registration optimization and stitching on the scan data obtained by the real-time scanning. If it is determined that the scanning of the entire target object has been completed, the process proceeds to step 307.
[0120] In step 307, a three-dimensional model is obtained.
[0121] After the scanning of the entire target object has been completed, a point cloud fusion operation is performed on all the point cloud data, so that a three-dimensional model of the target object is obtained. As each scan frame during the scanning process is registered and optimized, the quality of the point cloud data thus obtained is significantly improved compared with that of the point cloud data obtained without updating the pose matrices, allowing for effectively reducing the blade-like marks of the three-dimensional image obtained by fusion.
[0122] FIG. 4 is a block diagram of a system 400 for three-dimensional scanning according to one or more embodiments of the present invention. One of ordinary skill in the art will understand that all or part of the system may be implemented by instructing relevant hardware through a program, which may be stored in a storage medium and include instructions to enable a device (which may be a microcontroller, a chip, and the like) or a processor to execute all or part of the steps of the method described in the various embodiments of the present application. The storage medium includes various media capable of storing program codes, such as a USB flash drive, portable hard disk, read-only memory, random-access memory, magnetic disk or optical disk.
[0123] The illustrated system 400 for three-dimensional scanning may include a scan data acquisition module 401, a preliminary stitching module 402, a registration optimization module 403, and a three-dimensional reconstruction module 404. The system particularly includes various modules, components, devices, or the like required for implementing the methods for three-dimensional scanning described in the present disclosure.
[0124] The scan data acquisition module 401 is configured to acquire scan data that is obtained by scanning a surface of a target object by a scanner. The scan data may include a data set of information about the spatial position and possible reflection intensity of points on the surface of an object acquired by the scanner during the scanning process, including point cloud data P = {P1, P2, P3, . . ., Pi} , rotation and translation data RT = {RT1, RT2, RT3, . . ., RTi} , attribute information, and the like. The scan data such as the point cloud data, the rotation and translation information, and the optional marker data may be stored in the scanner in the form of files or transmitted through a network and stored in a storage.
[0125] The preliminary stitching module 402 is configured to perform a preliminary stitching operation using a point cloud set and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud C0. The point cloud data of the plurality of scan frames collectively form a point cloud set, and their rotation and translation data collectively form a rotation and translation set. The preliminary stitching operation is a process of combining the point cloud set and the rotation and translation set of the plurality of scan frames to obtain a preliminary global point cloud. In one embodiment, the preliminary stitching operation is a global stitching for all scan frames obtained after scanning of the target object is completed. In another embodiment, the preliminary stitching operation is a real-time partial stitching for a plurality of scan frames acquired in real time during scanning. In yet another embodiment, the preliminary stitching operation is a real-time partial stitching that further includes at least one scan frame subjected to the registration optimization operation.
[0126] The registration optimization module 403 is configured to perform a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data by using the preliminary global point cloud as a reference, to obtain updated individual-frame rotation and translation data RT’ = {RT1’ , RT2’ , RT3’ ,..., RTi’ } that allow the one or more individual-frame point clouds to be closest to the preliminary global point cloud. In one or more embodiments, the registration optimization operation includes: searching for matched neighboring points from the preliminary global point cloud for a plurality of points of each of the one or more individual-frame point clouds to obtain matched point pairs; and determining, as the updated individual-frame rotation and translation data, one or more rigid transformation matrices that register the one or more individual-frame point clouds to the preliminary global point cloud based on the matched point pairs.
[0127] In one or more embodiments for global stitching, the registration optimization module is configured to perform a registration optimization operation on one or more individual-frame point clouds subjected to the preliminary stitching operation to obtain updated individual-frame rotation and translation data of the one or more individual-frame point clouds. In addition, the registration optimization module may further be configured to: perform another stitching operation on the point cloud set using the updated individual-frame rotation and translation data to obtain an updated preliminary global point cloud; perform another registration optimization operation on the individual-frame point clouds of the individual scan frames based on the updated preliminary global point cloud to obtain re-updated individual-frame rotation and translation data of the individual-frame point clouds; and apply the re-updated individual-frame rotation and translation data to the individual-frame point clouds to obtain a three-dimensional model of the surface of the target object.
[0128] In one or more embodiments for real-time stitching, the registration optimization module may be configured to perform registration operation on the scan frame obtained in real time with the preliminary global point cloud obtained through preliminary stitching, to obtain updated individual-frame rotation and translation data that allow the individual-frame point cloud to be closest to the preliminary global point cloud. Particularly, at least one scan frame subjected to the registration optimization operation may be further used as an object of the aforementioned preliminary stitching module to further obtain a preliminary global point cloud.
[0129] The three-dimensional reconstruction module 404 is configured to apply the updated individual-frame rotation and translation data RT’ = {RT1’ , RT2’ , RT3’ , ..., RTi’ } to the individual-frame point clouds to obtain a three-dimensional model of the surface of the object. For example, the updated individual-frame rotation and translation data of all the scan frames may be applied to the corresponding individual-frame point cloud data, so that all the point clouds can be represented in a unified coordinate system to obtain the fused P’ = {P1’ , P2’ , P3’ , . . ., Pi’ } . Then, all the point cloud data is fused and processed to obtain a complete point cloud of the surface of the object C0’ .
[0130] FIG. 5 is a block diagram of an exemplary apparatus 500 for three-dimensional scanning according to one or more embodiments of the present invention. As shown in the figure, the apparatus 500 includes, for example, a scanner 501 for scanning a target object (OBJECT) to obtain a surface of the object, a memory 502 for storing scan data obtained by the scanner and other related algorithms and data, a processor 503 for analyzing and processing the scan data, and a display 504 for visually displaying a processed three-dimensional model of the surface of the object.
[0131] The scanner 501 may be any visual three-dimensional scanner in the art, which typically includes two or more cameras for simultaneously capturing images of a target object from different perspectives, respectively. The scanner may be handheld, stationary, or other suitable types of scanners, depending on the object being scanned and the application scenario. In addition, one of ordinary skill in the art understands that the scanner may also include a suitable light source, such as a projector for projecting a particular light pattern (e.g., stripes, dots, or grid) toward the surface of the target object. The data set of information about the spatial position and possible reflection intensity of points on the surface of the target object acquired by the scanner is the scanning data, which includes, for example, point cloud data, rotation and translation data, attribute information, and the like.
[0132] The memory 502 is used for storing programs, data, information, and the like, and may include a high-speed Random Access Memory (RAM) , a non-volatile memory, or a mechanical hard disk or a solid state drive (SSD) . The memory is particularly used to store scan data acquired by the scanner, including the point cloud data and the rotation and translation data, and the like, as well as algorithms and program instructions required for running, for example, algorithms for point cloud stitching, registration optimization, and three-dimensional model reconstruction.
[0133] The processor 503 may be a general-purpose processor, including a central processing unit (CPU) , a network processor (NP) , and the like. It may also be a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field-programmable gate array (FPGA) , or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. In particular, the processor is configured to read scan data, algorithms, program instructions, and the like from the memory to perform preset calculations and processes, control the operation flow of the entire system, and coordinate data transmission and operation among the scanner, the memory, the display, and the like.
[0134] The display 504 may be a liquid crystal display (LCD) , an organic light-emitting diode display (OLED) , or the like. In a professional three-dimensional scanning workstation, a display with high resolution and high color accuracy may be used. The display may be used for displaying the three-dimensional model of the target object constructed by the processor, so that the user can visually view and analyze the scanning result. The display may also be used to display the system operation interface, which is convenient for the user to perform operations such as scanning parameter setting, operation control, data viewing, and the like.
[0135] Although only a few example embodiments have been described in detail above, one of ordinary skill in the art will appreciate that many modifications are possible in the example embodiments without materially departing from the present invention. Furthermore, a particular embodiment described above may be combined with other embodiments as long as they do not conflict with each other. Accordingly, all such modifications or combinations are included within the scope of the present disclosure.
Claims
1.A method for three-dimensional scanning, comprising:scanning, by a three-dimensional scanner, a surface of a target object to obtain scan data;performing a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; andapplying the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the target object.2.The method of claim 1, wherein performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data comprises:searching for matched neighboring points from the preliminary global point cloud for a plurality of points of each of the one or more individual-frame point clouds to obtain matched point pairs; anddetermining, as the updated individual-frame rotation and translation data, one or more rigid transformation matrices that register the one or more individual-frame point clouds to the preliminary global point cloud based on the matched point pairs.3.The method of claim 1, wherein the plurality of scan frames comprise all scan frames obtained after completing the scanning of the target object.4.The method of claim 3, wherein performing, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data comprises:performing the registration optimization operation on one or more individual-frame point clouds subjected to the preliminary stitching operation to obtain the updated individual-frame rotation and translation data of the one or more individual-frame point clouds.5.The method of claim 3, wherein the method further comprises:performing another stitching operation on the set of point clouds with the updated individual-frame rotation and translation data to obtain an updated preliminary global point cloud;performing another registration optimization operation on the one or more individual-frame point clouds of the individual scan frames based on the updated preliminary global point cloud to obtain re-updated individual-frame rotation and translation data of the one or more individual-frame point clouds; andapplying the re-updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain the three-dimensional model of the surface of the target object.6.The method of claim 1, wherein the plurality of scan frames comprise scan frames obtained in real time during the scanning of the target object.7.The method of claim 6, wherein the one or more individual scan frames are scan frames obtained in real time subsequent to the plurality of scan frames.8.The method of claim 6, wherein the plurality of scan frames further comprise at least one scan frame subjected to the registration optimization operation.9.The method of claim 1, wherein a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.10.The method of claim 1, wherein the scan data comprises marker data for each scan frame, the marker data being used to enforce constraints in the preliminary stitching operation and the registration optimization operation.11.A system for three-dimensional scanning, comprising:a scan data acquisition module configured to acquire scan data obtained by scanning a surface of a target object with a three-dimensional scanner;a preliminary stitching module configured to perform a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;a registration optimization module configured to perform, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; anda three-dimensional reconstruction module configured to apply the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the surface of the target object, wherein a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.12.The system of claim 11, wherein the registration optimization operation comprises:searching for matched neighboring points from the preliminary global point cloud for a plurality of points of each of the one or more individual-frame point clouds to obtain matched point pairs; anddetermining, as the updated individual-frame rotation and translation data, one or more rigid transformation matrices that register the one or more individual-frame point clouds to the preliminary global point cloud based on the matched point pairs.13.The system of claim 11, wherein the plurality of scan frames comprise all scan frames obtained after completing the scanning of the target object.14.The system of claim 13, wherein the registration optimization operation comprises:performing a registration optimization operation on one or more individual-frame point clouds subjected to the preliminary stitching operation to obtain the updated individual-frame rotation and translation data of the one or more individual-frame point clouds.15.The system of claim 13,wherein the preliminary stitching module is further configured to perform another stitching operation on the set of point clouds with the updated individual-frame rotation and translation data to obtain an updated preliminary global point cloud,wherein the registration optimization module is further configured to perform another registration optimization operation on the one or more individual-frame point clouds of the individual scan frames based on the updated preliminary global point cloud to obtain re-updated individual-frame rotation and translation data of the one or more individual-frame point clouds, andwherein the three-dimensional reconstruction module is configured to apply the re-updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain the three-dimensional model of the surface of the target object.16.The system of claim 11, wherein the plurality of scan frames comprise scan frames obtained in real time during the scanning of the target object.17.The system of claim 16, wherein the one or more individual scan frames are scan frames obtained in real time subsequent to the plurality of scan frames.18.The system of claim 16, wherein the plurality of scan frames further comprise at least one scan frame subjected to the registration optimization operation.19.An apparatus for three-dimensional scanning, comprising:a three-dimensional scanner for scanning a surface of a target object to obtain scan data;a processor configure to:perform a preliminary stitching operation with a set of point clouds and a rotation and translation set of a plurality of scan frames in the scan data to obtain a preliminary global point cloud;perform, with the preliminary global point cloud as a reference, a registration optimization operation on one or more individual-frame point clouds of individual scan frames in the scan data to obtain updated individual-frame rotation and translation data that registers the one or more individual-frame point clouds to the preliminary global point cloud; andapply the updated individual-frame rotation and translation data to the one or more individual-frame point clouds to obtain a three-dimensional model of the target object,wherein a proportion of defective parallel lines or intersecting lines in a total point cloud of the resulting three-dimensional model is 5%-13%.20.The apparatus of claim 19, wherein the registration optimization operation comprises:searching for matched neighboring points from the preliminary global point cloud for a plurality of points of each of the one or more individual-frame point clouds to obtain matched point pairs; anddetermining, as the updated individual-frame rotation and translation data, one or more rigid transformation matrices that register the one or more individual-frame point clouds to the preliminary global point cloud based on the matched point pairs.