A curtain wall-based closed polyline generation method and system

By using techniques such as stereopsis segmentation, principal component analysis, and moving least squares method to generate closed polylines that meet construction accuracy, the problem of inaccurate boundary feature extraction in curtain wall outline generation is solved, thus improving construction accuracy and efficiency.

CN121010721BActive Publication Date: 2026-02-03MINMETALS CONDO SHANGHAI CONSTR
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511132106.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-08-13
Publication Date
2026-02-03
Estimated Expiration
2045-08-13

AI Technical Summary

Technical Problem

Existing methods for generating curtain wall outlines struggle to accurately extract boundary features when dealing with complex building structures, resulting in significant deviations between the generated polylines and the actual outlines, which impacts construction accuracy and efficiency.

Method used

Noise-reducing point cloud data is achieved by using stereo segmentation, local geometric features are extracted through principal component analysis, boundary curves are fitted using moving least squares method, and closed polylines that meet construction accuracy are generated by combining spline interpolation and parametric resampling.

Benefits of technology

It significantly improves the accuracy and smoothness of point cloud boundary extraction, making it suitable for high-precision curtain wall construction and reducing material waste and construction errors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121010721B_ABST
    Figure CN121010721B_ABST
Patent Text Reader

Abstract

The application discloses a curtain wall-based closed polyline generation method and system, obtains an initial point set from point cloud data, adopts a voxel segmentation method to perform grid processing on the initial point set, calculates the point density of each voxel, if the point density is lower than a preset point density threshold value, marks the point as a noise point and removes the noise point, and obtains a denoised point cloud data set; for the denoised point cloud data set, adopts a principal component analysis method to extract the local geometric feature of each point, calculates the normal vector and curvature of each point, if the curvature is greater than a preset curvature threshold value, marks the point as a candidate boundary point, and obtains a candidate boundary point set; according to the candidate boundary point set, adopts a moving least square method to locally fit the candidate boundary points, generates a smooth boundary curve segment, if the included angle between adjacent curve segments is smaller than a preset included angle threshold value, merges the adjacent curve segments into a continuous boundary polyline, and obtains a preliminary boundary polyline. The application improves the accuracy and smoothness of point cloud boundary extraction.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of curtain wall design and construction technology, and discloses a curtain wall-based closed polyline generation method and system. BACKGROUND

[0002] Curtain wall design and construction is an important part of modern architecture, directly affecting the appearance, structural safety and construction efficiency of buildings. With the increasing number of high-rise buildings in cities, accurate modeling and efficient construction of curtain wall systems have become a key requirement, affecting the aesthetics and cost control of buildings. However, existing curtain wall contour generation methods have significant limitations in handling complex building structures. Traditional methods often rely on manual measurement or simple geometric fitting, making it difficult to adapt to diverse curtain wall contours, especially when facing irregular shapes or large-scale point cloud data. This can lead to inaccurate boundary feature extraction and large deviations between the generated poly-lines and the actual contours. Such deviations can cause material waste or installation errors during subsequent construction layout, increasing the cost of rework.

[0003] The core challenge lies in accurately extracting curtain wall boundary features from complex point cloud data and ensuring that the generated closed polylines not only fit the actual contours but also meet the construction precision requirements. Point cloud data often contains a large amount of noise, making it difficult to extract boundary feature points. If not handled properly, the generated polylines may appear jagged or deviate from the actual contours. Furthermore, the smoothness of the boundary feature points and the closure of the first and last points directly affect the usability of the polylines. For example, when dealing with an arc-shaped curtain wall, if the feature points are not accurately extracted, the fitted polylines may have local breaks or the first and last points may not be closed, resulting in inconsistencies between the construction drawings and the actual structure. Construction personnel need to repeatedly adjust the layout data, which is inefficient.

[0004] Therefore, how to accurately extract boundary feature points from noisy point cloud data and generate closed polylines that meet the construction precision requirements through adaptive fitting and closure correction has become a key problem in curtain wall modeling and construction layout. SUMMARY

[0005] The present application provides a curtain wall-based closed poly-line generation method and system, aiming to solve at least one of the defects in the prior art.

[0006] One aspect of the present application relates to a curtain wall-based closed poly-line generation method, comprising the following steps:

[0007] Obtain an initial point set from the point cloud data, perform grid processing on the initial point set using a voxel segmentation method, calculate the point density of each voxel, and if the point density is lower than a preset point density threshold, mark it as a noise point and remove it to obtain a denoised point cloud data set;

[0008] For the denoised point cloud data set, the principal component analysis method is used to extract the local geometric features of each point, the normal vector and curvature of each point are calculated, and if the curvature is greater than the preset curvature threshold, it is marked as a candidate boundary point, and a candidate boundary point set is obtained;

[0009] According to the candidate boundary point set, the moving least squares method is used to locally fit the candidate boundary points, and a smooth boundary curve segment is generated, and if the included angle between adjacent curve segments is less than the preset angle threshold, they are merged into a continuous boundary multi-line, and a preliminary boundary multi-line is obtained;

[0010] According to the preliminary boundary multi-line, the coordinates of the head and tail points of the preliminary boundary multi-line are detected, and if the Euclidean distance between the head and tail points is greater than the preset distance threshold, the spline interpolation method is used to connect the head and tail points to generate a closed boundary multi-line.

[0011] For the closed boundary multi-line, the parametric resampling method is used to adjust the point spacing on the closed boundary multi-line, and if the point spacing deviates from the preset construction precision threshold, points are inserted or deleted to obtain the final closed multi-line that meets the construction precision.

[0012] Further, the initial point set is obtained from the point cloud data, the voxel segmentation method is used for grid processing of the initial point set, the point density of each voxel is calculated, and if the point density is lower than the preset point density threshold, it is marked as a noise point and removed, to obtain the denoised point cloud data set.

[0013] The initial point set is obtained from the point cloud data, and the voxel segmentation method is used for grid processing of the initial point set to generate a voxel grid, which is obtained by the following formula:

[0014]

[0015] Wherein, represents the generated voxel grid structure, represents the voxel unit at position in the grid, , , represent the number of grid divisions in the three coordinate axis directions respectively, represents the size of the voxel, represents the total length of the space, represents the number of divided grids.

[0016] For the voxel grid, the point density of each voxel is calculated to obtain the point density distribution.

[0017] If the point density of the voxel is lower than the preset threshold, it is marked as a noise point, and a noise point set is obtained.

[0018] By removing the set of noisy points, the denoised point cloud dataset is extracted from the stereocell mesh.

[0019] Furthermore, in the step of calculating the point density of each voxel in the voxel grid to obtain the point density distribution, the voxel point density is determined by calculating the ratio of the number of points to the volume within the voxel. The voxel point density is:

[0020]

[0021] in, Indicates the first Dot density of individual visual pixels, Indicates the first The number of points contained within an individual visual pixel. Indicates the first The size of an individual visual pixel;

[0022] The point density distribution is derived using the following formula:

[0023]

[0024] in, Represents coordinates in three-dimensional space Point density distribution function at, This represents the total number of points. Indicates the first The weight of each point Represents the three-dimensional Dirac function. , , Indicates the first The three-dimensional coordinates of each point.

[0025] Furthermore, if the point density of a stereopixel is lower than a preset threshold, it is marked as a noise point. In the step of obtaining the noise point set, the noise point set is derived using the following formula:

[0026]

[0027] in, Represents the set of noise points. Indicates the first Data points, Point density value, This indicates the preset density threshold. This indicates the total number of points.

[0028] Furthermore, in the step of extracting the denoised point cloud dataset from the voxel grid by removing the set of noise points, the denoised point cloud dataset is obtained by the following formula:

[0029]

[0030] in, This represents the clean point cloud dataset after denoising. Represents the first pixel in the stereocell mesh. 1 candidate point Indicates the first The noise variance estimate for each point, The threshold parameter representing the noise variance. Indicates the first Local point density at each point This represents the density threshold parameter.

[0031] Furthermore, for the denoised point cloud dataset, principal component analysis is used to extract the local geometric features of each point, calculate the normal vector and curvature of each point, and if the curvature is greater than a preset curvature threshold, it is marked as a candidate boundary point. The steps to obtain the candidate boundary point set include:

[0032] A point set is obtained from the denoised point cloud data. Principal component analysis is used to perform local neighborhood analysis on each point in the point set, calculate the covariance matrix, obtain eigenvalues ​​and eigenvectors, and determine the local geometric features of the point set.

[0033] Based on local geometric features, the normal vector of each point is calculated using the eigenvector corresponding to the minimum eigenvalue, thus obtaining the direction of the normal vector;

[0034] By using the normal vector direction and the positional relationship of neighboring points, the curvature of each point is calculated using the principal curvature formula, yielding the curvature value. The principal curvature formula is:

[0035]

[0036] in, and These are the largest and second largest eigenvalues, respectively. Indicates local curvature changes;

[0037] If the curvature value is greater than the preset curvature threshold, the corresponding point is marked as a candidate boundary point, and a set of candidate boundary points is obtained.

[0038] Furthermore, based on the candidate boundary point set, the moving least squares method is used to locally fit the candidate boundary points to generate smooth boundary curve segments. If the angle between adjacent curve segments is less than a preset angle threshold, they are merged into continuous boundary polylines. The steps to obtain preliminary boundary polylines include:

[0039] Obtain the neighborhood point set of each point from the candidate boundary point set, use the moving least squares method to locally fit the neighborhood point set, calculate the parameters of the fitted curve, and obtain a smooth boundary curve segment.

[0040] Based on the smooth boundary curve segment, calculate the angle between adjacent curve segments to obtain the angle value, which is then derived using the vector dot product formula:

[0041]

[0042] in, and The tangent vector of adjacent curve segments. The included angle;

[0043] If the included angle value is less than the preset included angle threshold, then the adjacent curve segments are merged into a continuous polyline segment to obtain a continuous polyline.

[0044] By using continuous polylines, the polylines are smoothed using the Bézier curve interpolation method to obtain preliminary boundary polylines.

[0045] Further, based on the preliminary boundary polyline, the coordinates of the first and last points of the preliminary boundary polyline are detected. If the Euclidean distance between the first and last points is greater than a preset distance threshold, spline interpolation is used to connect the first and last points to generate a closed boundary polyline. The steps include:

[0046] The coordinates of the first and last points are obtained from the initial boundary polyline, and the coordinates of the starting point are determined through point set processing. and endpoint coordinates The Euclidean distance between the first and last points is obtained using the Euclidean distance formula.

[0047]

[0048] in, , As the starting coordinates, , The coordinates of the endpoint The Euclidean distance between the first and last points;

[0049] If the Euclidean distance between the first and last points is greater than a preset distance threshold, the direction vector between the first and last points is obtained through vector calculation to determine the connection direction. The direction vector is obtained using the following formula:

[0050]

[0051] in, It is the direction vector;

[0052] Based on the connection direction and the coordinates of the first and last points, the interpolation parameters are calculated using the cubic spline interpolation method to generate a smooth curve segment connecting the first and last points, thus obtaining a closed polyline.

[0053] By closing polylines and adjusting the interpolation parameters using boundary smoothing, closed boundary polylines are generated.

[0054] Furthermore, for closed boundary polylines, a parametric resampling method is used to adjust the point spacing on the closed boundary polyline. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted. The steps to obtain the final closed polyline that meets the construction accuracy include:

[0055] Obtain the set of boundary point coordinates from the closed polyline, calculate the Euclidean distance between adjacent points, and obtain the point spacing sequence. The Euclidean distance between adjacent points is calculated using the following formula:

[0056]

[0057] in , For the first Coordinates of a point, , For the first Coordinates of a point, The Euclidean distance between adjacent points;

[0058] For the point spacing sequence, if there is a point spacing greater than the preset construction accuracy threshold, a parametric resampling method is used to calculate the coordinates of new points through linear interpolation to obtain the first set of points with uniform point distribution;

[0059] If there are points in the point spacing sequence whose point spacing is less than the preset construction accuracy threshold, then by comparing the deviation of adjacent point spacing, the k-nearest neighbor algorithm is used to delete redundant points and obtain the optimized second point set.

[0060] Based on the second point set, the Bézier curve method is used to smooth the boundary point coordinates, and the point coordinates are adjusted to obtain the final closed polyline that meets the requirements of construction accuracy and boundary smoothness.

[0061] Another aspect of the present invention relates to a curtain wall-based closed polyline generation system for performing the above-described curtain wall-based closed polyline generation method. The curtain wall-based closed polyline generation system includes:

[0062] The point cloud dataset acquisition module is used to obtain an initial point set from the point cloud data. The initial point set is meshed using a voxel segmentation method. The point density of each voxel is calculated. If the point density is lower than the preset point density threshold, it is marked as a noise point and removed to obtain a denoised point cloud dataset.

[0063] The candidate boundary point set acquisition module is used to extract the local geometric features of each point from the denoised point cloud dataset using the principal component analysis method, calculate the normal vector and curvature of each point, and mark it as a candidate boundary point if the curvature is greater than the preset curvature threshold, thus obtaining the candidate boundary point set.

[0064] The preliminary boundary polyline acquisition module is used to perform local fitting on the candidate boundary points according to the candidate boundary point set using the moving least squares method to generate smooth boundary curve segments. If the included angle between adjacent curve segments is less than the preset included angle threshold, they are merged into continuous boundary polylines to obtain the preliminary boundary polylines.

[0065] The closed boundary polyline generation module is used to detect the coordinates of the first and last points of the preliminary boundary polyline. If the Euclidean distance between the first and last points is greater than the preset distance threshold, the spline interpolation method is used to connect the first and last points to generate the closed boundary polyline.

[0066] The final closed polyline acquisition module is used to adjust the point spacing on the closed boundary polyline using a parametric resampling method. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted to obtain the final closed polyline that meets the construction accuracy.

[0067] The beneficial effects achieved by this invention are as follows:

[0068] This invention provides a method for generating closed polylines based on curtain walls. Addressing the challenges of noise interference in point cloud data, complex boundary feature extraction, and difficulty in ensuring construction accuracy in business scenarios, it achieves efficient and accurate boundary generation through a series of logically interconnected processing steps. First, the point cloud data is meshed using a volumetric segmentation method, point density is calculated, and noise points are removed to obtain a denoised point cloud dataset, ensuring data quality. Second, principal component analysis is used to extract local geometric features, calculate normal vectors and curvature, and screen candidate boundary points to accurately locate the boundary region. Next, moving least squares is used to locally fit the candidate boundary points, generating smooth boundary curve segments. Preliminary boundary polylines are formed by merging these segments using an angle threshold, and further, spline interpolation is used to connect the start and end points to generate closed boundary polylines. Finally, parametric resampling is used to adjust the point spacing to meet construction accuracy requirements. This invention significantly improves the accuracy and smoothness of point cloud boundary extraction through denoising, feature extraction, curve fitting, and optimization, making it suitable for high-precision construction scenarios. Attached Figure Description

[0069] Figure 1 This is a flowchart illustrating an embodiment of a closed polyline generation method based on a curtain wall according to the present invention.

[0070] Figure 2This is a functional block diagram of an embodiment of a closed polyline generation system based on a curtain wall according to the present invention.

[0071] Explanation of icon numbers:

[0072] 10. Point cloud dataset acquisition module; 20. Candidate boundary point set acquisition module; 30. Preliminary boundary polyline acquisition module; 40. Closed boundary polyline generation module; 50. Final closed polyline acquisition module. Detailed Implementation

[0073] To better understand the above technical solutions, the following will provide a detailed explanation of the technical solutions in conjunction with the accompanying drawings and specific implementation methods.

[0074] like Figure 1 As shown, the first embodiment of the present invention proposes a method for generating closed polylines based on curtain walls, including the following steps:

[0075] Step S100: Obtain an initial point set from the point cloud data, perform gridding on the initial point set using the voxel segmentation method, calculate the point density of each voxel, and if the point density is lower than the preset point density threshold, mark it as a noise point and remove it to obtain the denoised point cloud dataset.

[0076] A denoised point cloud dataset refers to a point cloud set formed by using an initial set of points extracted from point cloud data, performing gridding processing through a voxel segmentation method, calculating the point density within each voxel, and marking voxels with point densities below a preset threshold as noise and removing them. The denoised point cloud dataset, through voxel-level density filtering, eliminates discrete noise points and retains a spatially continuous set of valid points, providing more reliable foundational data for subsequent point cloud processing (such as feature extraction and 3D reconstruction).

[0077] Step S200: For the denoised point cloud dataset, the principal component analysis method is used to extract the local geometric features of each point, calculate the normal vector and curvature of each point, and if the curvature is greater than the preset curvature threshold, it is marked as a candidate boundary point, thus obtaining a set of candidate boundary points.

[0078] A candidate boundary point set refers to a set of points formed by extracting local geometric features of each point from a denoised point cloud dataset using Principal Component Analysis (PCA), calculating the normal vector and curvature of each point, and marking points with curvature values ​​greater than a preset threshold as candidate boundary objects. The candidate boundary point set filters out points in the point cloud data that belong to the boundary of an object's surface or a region of structural abrupt change, providing a preliminary group of target points for subsequent precise boundary extraction (such as edge segmentation and feature matching).

[0079] Step S300: Based on the candidate boundary point set, the moving least squares method is used to locally fit the candidate boundary points to generate smooth boundary curve segments. If the angle between adjacent curve segments is less than the preset angle threshold, they are merged into continuous boundary polylines to obtain preliminary boundary polylines.

[0080] Preliminary boundary polylines refer to a set of broken lines formed by using a set of candidate boundary points as a basis, locally fitting the candidate boundary points using the moving least squares method to generate smooth curve segments, and then merging the portions of adjacent curve segments with an angle less than a preset threshold into continuous line segments. Preliminary boundary polylines transform discrete candidate boundary points into continuous boundary contour lines, initially outlining the boundary morphology of object surfaces in point cloud data, providing a structured line foundation for subsequent accurate boundary extraction.

[0081] Step S400: Based on the preliminary boundary polyline, detect the coordinates of the first and last points of the preliminary boundary polyline. If the Euclidean distance between the first and last points is greater than the preset distance threshold, then use spline interpolation to connect the first and last points to generate a closed boundary polyline.

[0082] Closed boundary polylines are continuous boundary lines with a closed shape, formed by detecting the coordinates of the first and last points and calculating the Euclidean distance based on the initial boundary polyline. When the Euclidean distance between the first and last points is greater than a preset threshold, spline interpolation is used to connect the first and last points. Closed boundary polylines transform the non-closed initial boundary contour into a complete closed curve, ensuring that the boundary lines form a closed loop in space, providing a complete boundary reference for object contour extraction, region division, or 3D modeling.

[0083] Step S500: For closed boundary polylines, the point spacing on the closed boundary polylines is adjusted using a parametric resampling method. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted to obtain the final closed polyline that meets the construction accuracy.

[0084] A final closed polyline that meets construction accuracy requirements refers to a closed boundary polyline as a basis, where the distribution density of points on the line is adjusted through parametric resampling. When the point spacing deviates from a preset construction accuracy threshold, points are inserted or deleted to homogenize the overall point spacing, ultimately forming a closed boundary line that meets the engineering construction accuracy requirements. This final closed polyline that meets construction accuracy requirements achieves precise and controllable spatial distribution of boundary points, ensuring that the polyline can be directly applied in actual construction (such as cutting, modeling, and path planning), eliminating construction errors caused by uneven point spacing.

[0085] Furthermore, the closed polyline generation method based on curtain wall provided in this embodiment includes step S100 as follows:

[0086] Step S110: Obtain an initial point set from the point cloud data, and perform meshing on the initial point set using the voxel segmentation method to generate a voxel mesh. The voxel mesh is obtained using the following formula:

[0087] (1)

[0088] In formula (1), This represents the generated voxel mesh structure. Indicates position in the grid The stereopixel unit, , , These represent the number of grid divisions along the three coordinate axes, respectively. Indicates the size of a stereopixel. Indicates the total length of the space. This indicates the number of grid cells.

[0089] Point cloud data processing has important applications in the field of 3D modeling. Its core lies in extracting effective information from the original point cloud and removing noise to generate a high-quality dataset. The following analysis and examples focus on technical topics such as point cloud data processing, Voxel segmentation, point density calculation, and noise labeling and removal, with a focus on 3D environment modeling in a single scenario such as curtain wall design, ensuring that the content is closely related and logically rigorous.

[0090] For example, in curtain wall design, point cloud data collected by LiDAR is used to construct a 3D model of the surrounding environment. The initial point cloud data contains millions of points, describing information such as roads, vehicles, and pedestrians, but also includes noise points such as dust and birds. When acquiring the initial point set, preprocessing filters out obvious outliers, such as points too far from the LiDAR. Assuming the LiDAR scanning range is 100 meters, a threshold is set to remove points more than 90 meters away to reduce the computational burden. This preprocessing effectively improves data quality and lays the foundation for subsequent meshing. The Voxel segmentation method meshes the point cloud into a 3D voxel grid. A voxel is a cubic unit in 3D space, similar to a pixel in a 2D image. Assuming the point cloud covers an area of ​​100 meters × 100 meters × 10 meters, the space is divided into voxels with a side length of 0.5 meters, forming a 200 × 200 × 20 grid. Each voxel contains several points; meshing transforms the disordered point cloud into an ordered structure, facilitating subsequent analysis. The advantage of Voxel segmentation lies in reducing computational complexity while preserving spatial geometric information, providing a foundation for point density calculation.

[0091] Step S120: For the voxel grid, calculate the point density of each voxel to obtain the point density distribution.

[0092] The dot density of a voxel is determined by calculating the ratio of the number of dots to the volume within the voxel. The dot density of a voxel is:

[0093] (2)

[0094] In formula (2), Indicates the first Dot density of individual visual pixels, Indicates the first The number of points contained within an individual visual pixel. Indicates the first The size of an individual visual pixel.

[0095] The point density distribution is derived using the following formula:

[0096] (3)

[0097] In formula (3), Represents coordinates in three-dimensional space Point density distribution function at, This represents the total number of points. Indicates the first The weight of each point Represents the three-dimensional Dirac function. , , Indicates the first The three-dimensional coordinates of each point.

[0098] When calculating the point density of each volumetric pixel, the number of points within the pixel is counted and divided by the pixel's volume. For example, a volumetric pixel with a side length of 0.5 meters has a volume of 0.125 cubic meters. If a volumetric pixel contains 10 points, its point density is 80 points / cubic meter. By traversing all volumetric pixels, a point density distribution map is generated. This distribution reflects the spatial characteristics of the point cloud, such as higher point density in road areas and lower point density in noise areas. The advantage of point density calculation is that it quantifies the characteristics of the point cloud, providing an objective basis for noise identification.

[0099] Step S130: If the point density of a stereopixel is lower than a preset threshold, it is marked as a noise point, and a noise point set is obtained.

[0100] The set of noise points is obtained using the following formula:

[0101] (4)

[0102] In formula (4), Represents the set of noise points. Indicates the first Data points, Point density value, This indicates the preset density threshold. This indicates the total number of points.

[0103] For noise point labeling, a point density threshold of 50 points / cubic meter is set. Voxels with a density below this threshold are marked as noise regions, and their constituent points are considered noise points. For example, a voxel containing only 2 points has a density of 16 points / cubic meter, far below the threshold, corresponding to birds in flight or floating objects; these points are added to the noise point set. The threshold setting needs to be considered in conjunction with the characteristics of the scene. For instance, in curtain wall design, road areas typically have a higher point density, while noise points are mostly isolated points. The effect of labeling noise points is to effectively distinguish between valid points and interference points, improving data purity.

[0104] Step S140: Extract the denoised point cloud dataset from the stereocell mesh by removing the set of noise points.

[0105] The denoised point cloud dataset is obtained using the following formula:

[0106] (5)

[0107] In formula (5), This represents the clean point cloud dataset after denoising. Represents the first pixel in the stereocell mesh. 1 candidate point Indicates the first The noise variance estimate for each point, The threshold parameter representing the noise variance. Indicates the first Local point density at each point This represents the density threshold parameter.

[0108] The denoised point cloud dataset is generated by removing noisy point sets. Assuming the original point cloud contains 1 million points, with noisy points accounting for 10%, removing these leaves 900,000 points. These points retain key information such as roads and vehicles, resulting in a cleaner point cloud dataset. The denoised dataset can be directly used to build high-precision 3D environment models, supporting the generation and detection of closed polylines in curtain wall design. The benefits of denoising include reducing invalid data interference and improving model accuracy and computational efficiency.

[0109] Furthermore, the closed polyline generation method based on curtain wall provided in this embodiment includes step S200 as follows:

[0110] Step S210: Obtain a point set from the denoised point cloud data, use principal component analysis to perform local neighborhood analysis on each point in the point set, calculate the covariance matrix, obtain eigenvalues ​​and eigenvectors, and determine the local geometric features of the point set.

[0111] The covariance matrix is ​​obtained by the following formula:

[0112] (6)

[0113] In formula (6), Represents the covariance matrix. This represents the number of points in the local neighborhood. Indicates the number of neighbors within the neighborhood. The coordinate vector of a point, The coordinates of the centroids of all points in the neighborhood are represented by the formula (6). Formula (6) is used to calculate the covariance matrix of the local neighborhood of each point in the point cloud, which is the basis of principal component analysis.

[0114] The local geometric features of a point set are derived using the following formula:

[0115] (7)

[0116] In formula (7), The first element of the covariance matrix represents the first element of the covariance matrix. 1 eigenvalue, This represents the corresponding feature vector. Let represent the covariance matrix, with eigenvalues ​​arranged in descending order. Formula (7) describes the eigenvalue decomposition process, which is used to extract the main directions of the local geometric structure of the point cloud.

[0117] In curtain wall design scenarios, after extracting point sets from denoised point cloud data, further analysis of local geometric features is needed to support 3D environment modeling. Principal component analysis (PCA) extracts spatial structure information by analyzing the local neighborhoods of points. Assuming the denoised point cloud contains 800,000 points describing roads and surrounding objects, a neighborhood is defined for each point, for example, a spherical region with a radius of 0.3 meters centered on that point, containing all points within the neighborhood. The covariance matrix of these points is calculated, yielding three eigenvalues ​​and corresponding eigenvectors. The eigenvalues ​​reflect the dispersion of the neighborhood point distribution; the largest eigenvalue represents the primary distribution direction, while the second largest and smallest eigenvalues ​​describe the distribution in secondary and vertical directions. This analysis can reveal the local geometric characteristics of points, such as planar, edge, or corner points.

[0118] Step S220: Based on the local geometric features, calculate the normal vector of each point using the eigenvector corresponding to the minimum eigenvalue, and obtain the direction of the normal vector.

[0119] The normal vector of each point is calculated using the following formula:

[0120] (8)

[0121] In formula (8), Indicates the first The unit normal vector at each point This represents the eigenvector corresponding to the smallest eigenvalue. This represents the magnitude of the eigenvector corresponding to the smallest eigenvalue. Formula (8) normalizes the eigenvector corresponding to the smallest eigenvalue to obtain the direction of the normal vector of the point.

[0122] Normal vector calculation is based on the eigenvector corresponding to the smallest eigenvalue. The normal vector represents the orientation of the surface at a point and is crucial for constructing 3D models. For example, in a road region, points in the point cloud might correspond to a flat road surface, with the normal vector approximately perpendicular to the ground and pointing in the positive z-axis direction. If the neighborhood of a point is planar, and the smallest eigenvalue is close to 0, its eigenvector is the normal vector. After calculation, each point in the point cloud is associated with a normal vector direction for subsequent curvature analysis. This method accurately captures surface orientation, improving the geometric accuracy of the model.

[0123] Step S230: Using the normal vector direction and the positional relationship of neighboring points, calculate the curvature of each point using the principal curvature formula to obtain the curvature value. The principal curvature formula is:

[0124] (9)

[0125] In formula (9), and These are the largest and second largest eigenvalues, respectively. This indicates a local curvature change.

[0126] The principal curvature formula calculates curvature using the largest and second-largest eigenvalues. Curvature reflects the degree of bending of a local surface; points with high curvature may be located at object edges or sharp features. For example, the point cloud curvature at the edge of a road is high, while that of a flat road surface is low. Assuming the largest eigenvalue in the neighborhood of a point is 0.8 and the second-largest eigenvalue is 0.2, the curvature value calculated using the formula is 0.75.

[0127] Step S240: If the curvature value is greater than the preset curvature threshold, the corresponding point is marked as a candidate boundary point, and a set of candidate boundary points is obtained.

[0128] The set of candidate boundary points is obtained by the following formula:

[0129] (10)

[0130] In formula (10), Represents the set of candidate boundary points. Represents the index of a point. Indicates the first The curvature value at each point, The preset curvature threshold is represented by formula (10), which defines the set of candidate boundary points consisting of all points whose curvature values ​​exceed the threshold.

[0131] If the preset curvature threshold is 0.5, the point is marked as a candidate boundary point because its curvature exceeds the threshold. This marking method effectively identifies the boundary line between roads and shoulders, supporting boundary detection in curtain wall design. For example, the generation of the candidate boundary point set depends on the curvature analysis results. Assuming that 5% of the points in the point cloud are marked as candidate boundary points, forming a set of approximately 40,000 points, these points correspond to feature areas such as road edges, vehicle outlines, or road signs. After marking the boundary points, the point cloud data is further used for path planning or obstacle recognition. The boundary point set provides crucial geometric clues for curtain wall design, facilitating the distinction between drivable and non-drivable areas.

[0132] Furthermore, the closed polyline generation method based on curtain wall provided in this embodiment includes step S300 as follows:

[0133] Step S310: Obtain the neighborhood point set of each point from the candidate boundary point set, use the moving least squares method to locally fit the neighborhood point set, calculate the parameters of the fitted curve, and obtain a smooth boundary curve segment.

[0134] The neighborhood point set is obtained by the following formula:

[0135] (11)

[0136] In formula (11), Represents boundary points The set of neighborhood points, Indicates the first Coordinates of candidate boundary points Indicates the first The coordinates of the boundary points This represents the neighborhood search radius, which obtains the set of neighboring points around each boundary point through distance constraints.

[0137] Obtaining the neighborhood point set for each point from the candidate boundary point set is a fundamental step in constructing a smooth boundary curve. The candidate boundary point set typically contains points with high curvature in the point cloud, such as road edges or object outlines. When obtaining the neighborhood point set, a spherical region with a radius of 0.3 meters is defined centered on the candidate point, and all points within this region are collected. In a curtain wall design scenario, the point cloud data describes an urban road, and the candidate boundary points may correspond to the boundary between the road and the sidewalk. Assuming a candidate point is located at a road edge, its neighborhood point set contains 20 points distributed near the geometric outline of the curb. The neighborhood point set provides the data foundation for subsequent local fitting, ensuring that the generated curve reflects the local geometric characteristics.

[0138] Moving least squares (LMS) is used to locally fit a neighborhood point set, generating a smooth boundary curve segment. LMS constructs a local surface on the neighborhood point set and optimizes the fitting parameters to minimize the distance from each point to the surface. Assuming the fitting result for a certain neighborhood point set is a quadratic curve, the parameters of which include the coordinates of the curve's center point and the radius of curvature, a curve segment is obtained after fitting, with the center point coordinates at (10.5, 20.7, 0.2) and a radius of curvature of 1.2 meters. This method can smooth out noise effects and generate continuous boundary curve segments, providing reliable input for subsequent angle calculations.

[0139] Step S320: Based on the smooth boundary curve segment, calculate the angle between adjacent curve segments to obtain the angle value. The angle value is obtained using the vector dot product formula.

[0140] (12)

[0141] In formula (12), and The tangent vector of adjacent curve segments. The included angle.

[0142] Calculating the angle between adjacent curve segments requires using the formulas for tangent vectors and vector dot products. The tangent vector is obtained through the local derivative or fitted parameters of the curve segment. For example, the tangent vectors of two adjacent curve segments are respectively... =(0.8, 0.6, 0) and =(0.9, 0.4, 0), calculate the included angle using the inner product formula. It is approximately 20 degrees Celsius.

[0143] Step S330: If the included angle value is less than the preset included angle threshold, then the adjacent curve segments are merged into a continuous polyline segment to obtain a continuous polyline.

[0144] Continuous polysemous line segments are derived using the following formula:

[0145] (13)

[0146] In formula (13), This represents the merged continuous polysemous line segment. Indicates the first A number of curve segments that meet the conditions. This indicates the total number of curve segments involved in the merging process. This indicates taking the maximum value among the angles between all adjacent curve segments; This indicates the maximum allowed angle limit for merging.

[0147] Continuous polysemous line segments are derived using the following formula:

[0148] (14)

[0149] In formula (14), This represents the set of points that generate continuous polylines. The first line on the polysemous line One control point, Indicates the total number of control points. The threshold representing the maximum angular deviation for continuity judgment.

[0150] Assuming a preset angle threshold of 30 degrees, since 20 degrees is less than the preset angle threshold, the two curve segments are merged into a single continuous polyline segment. In curtain wall design, this merging operation can integrate short curve segments at the road edge into longer segments, such as merging multiple 50-centimeter-long curve segments into a single 2-meter-long polyline, thereby simplifying subsequent processing.

[0151] Step S340: Using the continuous polylines, the polylines are smoothed by the Bézier curve interpolation method to obtain the preliminary boundary polylines.

[0152] The connection control points between consecutive polysemous line segments are obtained using the following formula:

[0153] (15)

[0154] In formula (15), Indicates the first Section and the Connection control points between segments Indicates the first The endpoints of a polysemous line segment Indicates the first The endpoints of a polysemous line segment Indicates the first The length of the segment Indicates the first The length of the segment.

[0155] Smoothing continuous polylines using Bézier curve interpolation can further optimize the smoothness of boundary curves. Bézier curves define the curve's shape using control points, ensuring continuity and smoothness at junctions. For example, for a quadratic Bézier curve defined by three control points with coordinates (10.0, 20.0, 0.2), (10.5, 20.5, 0.2), and (11.0, 21.0, 0.2), interpolation generates a smooth boundary curve. In curtain wall design, this smooth boundary is used to distinguish road and shoulder areas, supporting accurate 3D environment modeling. The smoothed boundary curve reduces jagged irregularities and improves the curve's geometric consistency.

[0156] Furthermore, the closed polyline generation method based on curtain wall provided in this embodiment includes step S400 as follows:

[0157] Step S410: Obtain the coordinates of the first and last points from the preliminary boundary polyline, and determine the coordinates of the starting point through point set processing. and endpoint coordinates The Euclidean distance between the first and last points is obtained using the Euclidean distance formula.

[0158] (16)

[0159] In formula (16), , As the starting coordinates, , The coordinates of the endpoint is the Euclidean distance between the first and last points.

[0160] In curtain wall design, obtaining the coordinates of the start and end points from the initial boundary polyline is a crucial step in constructing a closed boundary. The initial boundary polyline typically consists of road edge points extracted from point cloud data, containing multiple discrete line segments. Obtaining the coordinates of the start and end points involves traversing the polyline's point set to identify the start and end points. For example, suppose a polyline describes the edge of an urban road with start coordinates (5.0, 10.0) and end coordinates (15.0, 12.0). The distance between the two points is calculated using the Euclidean distance formula, and the result reflects the spatial span of the start and end points.

[0161] Step S420: If the Euclidean distance between the first and last points is greater than a preset distance threshold, the direction vector between the first and last points is obtained through vector calculation to determine the connection direction. The direction vector is obtained through the following formula:

[0162] (17)

[0163] In formula (17), It is the direction vector.

[0164] If the distance is greater than a preset threshold, such as 5 meters, it indicates a significant gap between the beginning and end points, requiring further processing to form a closed boundary. This distance calculation provides the basis for subsequent direction vectors and interpolation.

[0165] When calculating the direction vector, the connection direction is determined by the difference in coordinates between the starting and ending points. For example, the direction vector for the starting point coordinates (5.0, 10.0) and the ending point coordinates (15.0, 12.0) is (10.0, 2.0). This direction vector indicates the geometric trend from the starting point to the ending point, providing a directional basis for the interpolation method. The role of the direction vector is to ensure that the interpolated curve is consistent with the overall direction of the polyline, avoiding the generation of curves that do not conform to the trend of the road edge. In curtain wall design, the direction vector helps determine the extension direction of the boundary line between the road and the sidewalk.

[0166] Step S430: Based on the connection direction and the coordinates of the first and last points, the interpolation parameters are calculated using the cubic spline interpolation method to generate a smooth curve segment connecting the first and last points, thus obtaining a closed polyline.

[0167] Solve for the second derivative values ​​at each node in the cubic spline interpolation to construct a smooth curve:

[0168] (18)

[0169] In formula (18), Indicates the first The step size of the segment is , Indicates the first The second derivative values ​​at each node This represents the second-order difference quotient.

[0170] A smooth connection between the beginning and end points is achieved using Bézier curves, generating closed polyline curve segments:

[0171] (19)

[0172] In formula (19), Indicates parameters The coordinates of the corresponding point on the curve This indicates that the parameter variable can take values ​​from 0 to 1. Indicates the coordinates of the starting control point and Indicates the coordinates of the intermediate control points. Indicates the coordinates of the termination control point.

[0173] A smooth curve segment between the start and end points is generated using cubic spline interpolation. Cubic spline interpolation generates a smooth curve by inserting control points between the start and end points. For example, based on the aforementioned start and end points, adding intermediate control points (10.0, 11.0, 0.1) generates a smooth curve connecting the start and end points. This method effectively bridges the gaps between the start and end points, forming closed polylines. The generation of closed polylines ensures the continuity of the road edges, facilitating subsequent modeling.

[0174] Step S440: By using closed polylines, the interpolation parameters are adjusted through boundary smoothing to generate closed boundary polylines.

[0175] Closed boundary polylines are derived using the following formula:

[0176] (20)

[0177] In formula (20), Indicates parameters The coordinates of the interpolation curve points at the location, Indicates the first The coordinates of the control points express Second-rate spline basis functions Indicates the first The weighting coefficients of each control point Represents parameterized variables. This indicates the total number of control points.

[0178] Boundary smoothing further optimizes closed polylines by adjusting interpolation parameters. In curtain wall design, assuming the initial closed polyline exhibits slight irregular jitter, the curve can be smoothed by adjusting the weights of control points or adding additional smoothing constraints. For example, for the cubic spline curve mentioned above, adjusting the weights of the control points (10.0, 11.0, 0.1) generates a boundary line with a more uniform curvature. This smoothed boundary line can be used to accurately describe road edges, improving the geometric consistency of the 3D model.

[0179] Furthermore, the closed polyline generation method based on curtain wall provided in this embodiment includes step S500 as follows:

[0180] Step S510: Obtain the set of boundary point coordinates from the closed polyline, calculate the Euclidean distance between adjacent points, and obtain the point spacing sequence. The Euclidean distance between adjacent points is obtained using the following formula:

[0181] (twenty one)

[0182] In formula (21), , For the first Coordinates of a point, , For the first Coordinates of a point, This represents the Euclidean distance between adjacent points.

[0183] In curtain wall design, obtaining boundary point coordinates from closed polylines and optimizing point distribution are key steps to ensure the geometric accuracy of road edges and construction quality.

[0184] The following sections provide detailed analysis and examples on topics such as obtaining boundary point coordinates, calculating point spacing, parametric resampling, k-nearest neighbor algorithm for redundancy removal, and Bézier curve smoothing, combined with the road edge modeling requirements in curtain wall design.

[0185] For example, when obtaining the set of boundary point coordinates from a closed polyline, an ordered set of points is typically formed from road edge points extracted from point cloud data. Suppose a closed polyline describes the boundary between a city road and a sidewalk, containing point sets P1(2.0, 3.0, 0.1), P2(4.0, 3.5, 0.1), P3(6.0, 4.0, 0.1), etc. By traversing the point set and recording the 3D coordinates of each point, an ordered sequence is formed. This point set provides the basic data for subsequent spacing calculations, ensuring the integrity of the boundary description.

[0186] Precise coordinate extraction helps to accurately reflect the geometric features of the road edge. The Euclidean distance between adjacent points is calculated to generate a sequence of point spacings. For the above point set, the distances from P1 to P2 and from P2 to P3 are calculated, resulting in sequences such as 2.24 meters and 2.06 meters.

[0187] Step S520: For the point spacing sequence, if there is a point spacing greater than the preset construction accuracy threshold, then the parametric resampling method is used to calculate the coordinates of the new points through linear interpolation to obtain the first point set with uniform point distribution.

[0188] The coordinates of the new point obtained by linear interpolation are:

[0189] (twenty two)

[0190] In formula (22), This represents the coordinates of the new point obtained through linear interpolation. and This represents the coordinate vector of two originally adjacent points. Indicates the interpolation parameters. Indicates the index of the interpolation point. This indicates the total number of points that need to be inserted between the two points.

[0191] The spacing between points reflects the density and uniformity of the point distribution, providing a basis for determining whether the construction accuracy requirements are met. If a certain distance is too large, it will lead to discontinuities in the boundary description; if it is too small, there will be redundant points, increasing the complexity of subsequent modeling.

[0192] When performing parametric resampling on a point spacing sequence, if a distance such as 5.5 meters from P1 to P2 is found to be greater than the preset construction accuracy threshold of 3 meters, new points need to be inserted to achieve a uniform distribution. Assuming linear interpolation between P1 and P2, an intermediate point P1.5 (3.0, 3.25, 0.1) is generated, making the point spacing close to 2.75 meters. This resampling method ensures uniform point distribution, improves the continuity of boundary lines and construction feasibility, and especially guarantees the geometric accuracy of road edge models in curtain wall design.

[0193] Step S530: If there are points in the point spacing sequence whose point spacing is less than the preset construction accuracy threshold, then by comparing the deviation of adjacent point spacing, the k-nearest neighbor algorithm is used to delete redundant points to obtain the optimized second point set.

[0194] The deviation between adjacent points is calculated using the following formula:

[0195] (twenty three)

[0196] In formula (23), Indicates the first The deviation in distance between adjacent points at each location Indicates the current point spacing. This represents the distance between the previous point and measures the drastic change in distance by calculating the absolute value of the difference between the distances between adjacent points.

[0197] The optimized second point set is obtained through the following formula:

[0198] (twenty four)

[0199] In formula (24), This represents the set of optimal points selected by the k-nearest neighbor algorithm. It is a candidate. Point of The set of nearest neighbors Indicates the first The weight coefficients of each neighboring point Indicates distance Construction accuracy threshold The evaluation function is used to determine redundant points that need to be deleted.

[0200] If the point spacing is less than the construction accuracy threshold, such as the distance between P2 and P3 being only 0.5 meters, it indicates the existence of redundant points, which can be optimized using the k-nearest neighbor algorithm. Assuming k=3, analyzing the spacing deviation of points near P2 reveals that P2 and P3 are too close, so P3 can be deleted, while P2 is retained and connected to subsequent points. The optimized point set reduces redundancy, improves computational efficiency, and maintains the integrity of boundary geometric features, making it suitable for the efficient modeling requirements in curtain wall design.

[0201] Step S540: Based on the second point set, the Bézier curve method is used to smooth the boundary point coordinates, and the point coordinates are adjusted to obtain the final closed polyline that meets the construction accuracy and boundary smoothness requirements.

[0202] A cubic Bézier curve is generated to smooth the boundary points. The point coordinates are obtained using the following formula:

[0203] (25)

[0204] In formula (25), Indicates the parameter on the Bézier curve. The coordinates of the point, This indicates that the parameter variable can take values ​​from 0 to 1. Indicates the coordinates of the starting control point. and Indicates the coordinates of intermediate control points Indicates the coordinates of the termination control point.

[0205] The construction accuracy error value is used to evaluate whether the smoothed point coordinates meet the construction accuracy requirements. The construction accuracy error value is:

[0206] (26)

[0207] In formula (26), This indicates the construction accuracy error value. This represents the total number of boundary points. and Indicates the first The coordinates of each point after smoothing. and Indicates the first The original coordinates of each point.

[0208] The smoothness of the boundary is quantified by calculating the average curvature. The boundary smoothness is:

[0209] (27)

[0210] In formula (27), An index representing the smoothness of the boundary curve. This indicates the number of discrete sampling points on the curve. Indicates the first The position vector of each sampling point Indicates the arc length parameter. Indicates the curve at the th The curvature vector of a point.

[0211] Based on the optimized second point set, a Bézier curve method is used for smoothing. Assuming the point set contains P1, P2, and P4, a quadratic Bézier curve is generated. Control points are inserted to adjust the curve shape, ensuring a natural transition in the curvature of the boundary lines. Preferably, the positions of the control points are adjusted, such as adding control points (3.5, 3.3, 0.1) between P1 and P2 to generate a smooth curve. This method ensures smooth road edge lines, meeting the requirements for boundary smoothness in curtain wall design and improving the visual and geometric consistency of the 3D model.

[0212] Please see Figure 2 This embodiment provides a curtain wall-based closed polyline generation system for executing the above-described curtain wall-based closed polyline generation method. The curtain wall-based closed polyline generation system includes a point cloud dataset acquisition module 10, a candidate boundary point set acquisition module 20, a preliminary boundary polyline acquisition module 30, a closed boundary polyline generation module 40, and a final closed polyline acquisition module 50. The point cloud dataset acquisition module 10 is used to acquire an initial point set from the point cloud data, perform gridding processing on the initial point set using a volumetric pixel segmentation method, calculate the point density of each volumetric pixel, and if the point density is lower than a preset point density threshold, it is marked as a noise point and removed, resulting in a denoised point cloud dataset. The candidate boundary point set acquisition module 20 is used to extract the local geometric features of each point from the denoised point cloud dataset using principal component analysis, calculate the normal vector and curvature of each point, and if the curvature is greater than a preset curvature... If a threshold is reached, the points are marked as candidate boundary points, resulting in a set of candidate boundary points. The preliminary boundary polyline acquisition module 30 uses the moving least squares method to locally fit the candidate boundary points based on the set, generating smooth boundary curve segments. If the angle between adjacent curve segments is less than a preset angle threshold, they are merged into continuous boundary polylines, resulting in preliminary boundary polylines. The closed boundary polyline generation module 40 detects the coordinates of the first and last points of the preliminary boundary polylines. If the Euclidean distance between the first and last points is greater than a preset distance threshold, spline interpolation is used to connect the first and last points, generating closed boundary polylines. The final closed polyline acquisition module 50 uses a parametric resampling method to adjust the point spacing on the closed boundary polylines. If the point spacing deviates from a preset construction accuracy threshold, points are inserted or deleted to obtain a final closed polyline that meets construction accuracy requirements.

[0213] The closed polyline generation method based on curtain walls provided in this embodiment, compared with existing technologies, addresses the challenges of noise interference in point cloud data, complex boundary feature extraction, and difficulty in ensuring construction accuracy in business scenarios. It achieves efficient and accurate boundary generation through a series of logically interconnected processing steps. First, the point cloud data is meshed using a volumetric segmentation method, the point density is calculated, and noise points are removed to obtain a denoised point cloud dataset, ensuring data quality. Second, principal component analysis is used to extract local geometric features, calculate normal vectors and curvature, and screen candidate boundary points to accurately locate the boundary region. Next, moving least squares is used to locally fit the candidate boundary points, generating smooth boundary curve segments. Preliminary boundary polylines are formed by merging these segments using an angle threshold, and further closed boundary polylines are generated by connecting the start and end points using spline interpolation. Finally, parametric resampling is used to adjust the point spacing to meet construction accuracy requirements. This embodiment significantly improves the accuracy and smoothness of point cloud boundary extraction through denoising, feature extraction, curve fitting, and optimization, making it suitable for high-precision construction scenarios.

[0214] Although preferred embodiments of the invention have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including both the preferred embodiments and all changes and modifications falling within the scope of the invention. Clearly, those skilled in the art can make various alterations and modifications to the invention without departing from its spirit and scope. Thus, if these modifications and modifications of the invention fall within the scope of the claims and their equivalents, the invention is also intended to include these modifications and modifications.

Claims

1. A method for generating closed polylines based on curtain walls, characterized in that, Includes the following steps: An initial point set is obtained from the point cloud data. The initial point set is then meshed using a voxel segmentation method. The point density of each voxel is calculated. If the point density is lower than a preset point density threshold, it is marked as a noise point and removed to obtain a denoised point cloud dataset. For the denoised point cloud dataset, principal component analysis is used to extract the local geometric features of each point, calculate the normal vector and curvature of each point, and mark the curvature as a candidate boundary point if the curvature is greater than the preset curvature threshold, thus obtaining a set of candidate boundary points. Based on the candidate boundary point set, the moving least squares method is used to locally fit the candidate boundary points to generate smooth boundary curve segments. If the angle between adjacent curve segments is less than a preset angle threshold, they are merged into continuous boundary polylines to obtain preliminary boundary polylines. Based on the preliminary boundary polyline, the coordinates of the first and last points of the preliminary boundary polyline are detected. If the Euclidean distance between the first and last points is greater than a preset distance threshold, the first and last points are connected by spline interpolation to generate a closed boundary polyline. For the closed boundary polyline, a parametric resampling method is used to adjust the point spacing on the closed boundary polyline. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted to obtain the final closed polyline that meets the construction accuracy.

2. The method for generating closed polylines based on curtain walls as described in claim 1, characterized in that, The steps of obtaining an initial point set from point cloud data, performing gridding processing on the initial point set using a voxel segmentation method, calculating the point density of each voxel, and marking and removing points that are below a preset point density threshold to obtain a denoised point cloud dataset include: An initial point set is obtained from the point cloud data. This initial point set is then meshed using a voxel segmentation method to generate a voxel mesh. The voxel mesh is derived using the following formula: in, This represents the generated voxel mesh structure. Indicates position in the grid The stereopixel unit, , , These represent the number of grid divisions along the three coordinate axes, respectively. Indicates the size of a stereopixel. Indicates the total length of the space. Indicates the number of grid cells; For the given voxel grid, the point density of each voxel is calculated to obtain the point density distribution; If the point density of a stereo image is lower than a preset threshold, it is marked as a noise point, and a set of noise points is obtained. By removing the set of noise points, a denoised point cloud dataset is extracted from the stereocell mesh.

3. The method for generating closed polylines based on curtain walls as described in claim 2, characterized in that, In the step of calculating the point density of each volumetric pixel in the aforementioned volumetric pixel grid to obtain the point density distribution, the point density of the volumetric pixel is determined by calculating the ratio of the number of points to the volume within the volumetric pixel. The point density of the volumetric pixel is: in, Indicates the first Dot density of individual visual pixels, Indicates the first The number of points contained within an individual visual pixel. Indicates the first The size of an individual visual pixel; The point density distribution is obtained by the following formula: in, Represents coordinates in three-dimensional space Point density distribution function at, This represents the total number of points. Indicates the first The weight of each point Represents the three-dimensional Dirac function. , , Indicates the first The three-dimensional coordinates of each point.

4. The method for generating closed polylines based on curtain walls as described in claim 3, characterized in that, In the step of marking a noise point set as a noise point if the point density of a stereopixel is lower than a preset threshold, the noise point set is obtained by the following formula: in, Represents the set of noise points. Indicates the first Data points, Point density value, This indicates the preset density threshold. This indicates the total number of points.

5. The method for generating closed polylines based on curtain walls as described in claim 4, characterized in that, In the step of extracting the denoised point cloud dataset from the voxel grid by removing the set of noise points, the denoised point cloud dataset is obtained by the following formula: in, This represents the clean point cloud dataset after denoising. Represents the first pixel in the stereocell mesh. 1 candidate point Indicates the first The noise variance estimate for each point, The threshold parameter representing the noise variance. Indicates the first Local point density at each point This represents the density threshold parameter.

6. The method for generating closed polylines based on curtain walls as described in claim 1, characterized in that, The steps for extracting local geometric features of each point using principal component analysis (PCA) on the denoised point cloud dataset, calculating the normal vector and curvature of each point, and marking a point as a candidate boundary point if the curvature is greater than a preset curvature threshold, to obtain the candidate boundary point set include: A point set is obtained from the denoised point cloud data. Principal component analysis is used to perform local neighborhood analysis on each point in the point set, calculate the covariance matrix, obtain eigenvalues ​​and eigenvectors, and determine the local geometric features of the point set. Based on the local geometric features, the normal vector of each point is calculated using the eigenvector corresponding to the minimum eigenvalue, and the direction of the normal vector is obtained. Using the relationship between the normal vector direction and the positions of neighboring points, the curvature of each point is calculated using the principal curvature formula to obtain the curvature value. The principal curvature formula is: in, and These are the largest and second largest eigenvalues, respectively. Indicates local curvature changes; If the curvature value is greater than a preset curvature threshold, the corresponding point is marked as a candidate boundary point, and the candidate boundary point set is obtained.

7. The method for generating closed polylines based on curtain walls as described in claim 1, characterized in that, Based on the candidate boundary point set, the moving least squares method is used to locally fit the candidate boundary points to generate smooth boundary curve segments. If the angle between adjacent curve segments is less than a preset angle threshold, they are merged into continuous boundary polylines. The steps to obtain preliminary boundary polylines include: Obtain the neighborhood point set of each point from the candidate boundary point set, use the moving least squares method to locally fit the neighborhood point set, calculate the parameters of the fitted curve, and obtain a smooth boundary curve segment. Based on the smooth boundary curve segment, the angle between adjacent curve segments is calculated to obtain the angle value, which is derived using the vector dot product formula: in, and The tangent vector between adjacent curve segments. The included angle; If the included angle value is less than the preset included angle threshold, then adjacent curve segments are merged into continuous polyline segments to obtain continuous polylines. By using the continuous polylines, the polylines are smoothed using the Bézier curve interpolation method to obtain preliminary boundary polylines.

8. The method for generating closed polylines based on curtain walls as described in claim 1, characterized in that, Based on the preliminary boundary polyline, the coordinates of the first and last points of the preliminary boundary polyline are detected. If the Euclidean distance between the first and last points is greater than a preset distance threshold, spline interpolation is used to connect the first and last points to generate a closed boundary polyline. The steps include: The coordinates of the first and last points are obtained from the preliminary boundary polyline, and the coordinates of the starting point are determined through point set processing. and endpoint coordinates The Euclidean distance between the first and last points is obtained using the Euclidean distance formula. in, , As the starting coordinates, , The coordinates of the endpoint The Euclidean distance between the first and last points; If the Euclidean distance between the first and last points is greater than a preset distance threshold, the direction vector between the first and last points is obtained through vector calculation to determine the connection direction. The direction vector is obtained through the following formula: in, It is the direction vector; Based on the connection direction and the coordinates of the first and last points, the interpolation parameters are calculated using the cubic spline interpolation method to generate a smooth curve segment connecting the first and last points, thus obtaining a closed polyline. By using the closed polyline, the interpolation parameters are adjusted through boundary smoothing to generate a closed boundary polyline.

9. The method for generating closed polylines based on curtain walls as described in claim 1, characterized in that, For the closed boundary polyline, the parameterized resampling method is used to adjust the point spacing on the closed boundary polyline. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted. The steps to obtain the final closed polyline that meets the construction accuracy include: Obtain the set of boundary point coordinates from the closed polyline, calculate the Euclidean distance between adjacent points, and obtain the point spacing sequence. The Euclidean distance between adjacent points is obtained using the following formula: in , For the first Coordinates of a point, , For the first Coordinates of a point, The Euclidean distance between adjacent points; For the point spacing sequence, if there is a point spacing greater than the preset construction accuracy threshold, a parametric resampling method is used to calculate the coordinates of new points through linear interpolation to obtain the first point set with uniform point distribution. If there is a point spacing in the point spacing sequence that is less than the preset construction accuracy threshold, then by comparing the deviation of adjacent point spacing, the k-nearest neighbor algorithm is used to delete redundant points to obtain the optimized second point set. Based on the second point set, the Bézier curve method is used to smooth the boundary point coordinates, and the point coordinates are adjusted to obtain the final closed polyline that meets the requirements of construction accuracy and boundary smoothness.

10. A curtain wall-based closed polyline generation system, used to execute the curtain wall-based closed polyline generation method as described in any one of claims 1 to 9, characterized in that, The curtain wall-based closed polyline generation system includes: The point cloud dataset acquisition module (10) is used to acquire an initial point set from the point cloud data, perform gridding on the initial point set using the voxel segmentation method, calculate the point density of each voxel, and if the point density is lower than the preset point density threshold, mark it as a noise point and remove it to obtain a denoised point cloud dataset. The candidate boundary point set acquisition module (20) is used to extract the local geometric features of each point using the principal component analysis method for the denoised point cloud dataset, calculate the normal vector and curvature of each point, and mark it as a candidate boundary point if the curvature is greater than the preset curvature threshold, thus obtaining the candidate boundary point set; The preliminary boundary polyline acquisition module (30) is used to perform local fitting on the candidate boundary points according to the candidate boundary point set using the moving least squares method to generate smooth boundary curve segments. If the included angle between adjacent curve segments is less than the preset included angle threshold, they are merged into continuous boundary polylines to obtain preliminary boundary polylines. The closed boundary polyline generation module (40) is used to detect the coordinates of the first and last points of the preliminary boundary polyline based on the preliminary boundary polyline. If the Euclidean distance between the first and last points is greater than a preset distance threshold, the first and last points are connected by spline interpolation to generate a closed boundary polyline. The final closed polyline acquisition module (50) is used to adjust the point spacing on the closed boundary polyline using a parametric resampling method. If the point spacing deviates from the preset construction accuracy threshold, points are inserted or deleted to obtain the final closed polyline that meets the construction accuracy.

Citation Information

Patent Citations

  • Boundary distortion point cloud optimization extraction method for curved surface parts

    CN119600047A

  • Noise removal device, noise removal method, and program

    JP2024166519A