A drone route safety data analysis method and system for the Web
By spatially serializing and indexing the point cloud data, the problems of insufficient obstacle recognition accuracy and high computing resources in drone route planning are solved, and lightweight drone route safety assessment and rapid web-side analysis are realized.
Patent Information
- Application Number
- CN202510592751.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-09
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2045-05-09
AI Technical Summary
Traditional UAV route planning methods lack obstacle recognition accuracy in complex terrain, resulting in high collision risk, and point cloud data processing requires high computing resources, making it difficult to achieve rapid security assessment on the web side.
By spatially serializing and sampling the point cloud data, establishing an octree index, combining the separation axis theorem and the KD tree, filtering out the set of route intersection points and performing neighborhood searches, and outputting risk analysis results suitable for web-side visualization.
It significantly reduces computing complexity and resource usage, realizes lightweight drone route safety assessment, and supports fast web analysis and real-time rendering.
Smart Images

Figure CN120108235B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of drone route analysis, and in particular to a drone route safety data analysis method and system for a Web terminal. Background Art
[0002] With the widespread adoption of drones in agriculture and forestry monitoring, power inspections, urban mapping, and other fields, flight path safety analysis technology faces challenges in multi-dimensional environmental perception and real-time decision-making. Traditional methods rely on two-dimensional maps or static three-dimensional models for route planning, which struggles to adapt to dynamic changes in complex terrain. This is particularly true in scenarios like high-voltage transmission corridors and densely populated areas, where insufficient obstacle recognition accuracy can easily lead to collision risks.
[0003] While point cloud data can be used to obtain centimeter-level spatial information through LiDAR, effectively improving the accuracy of environmental modeling, processing this massive amount of data places extremely high demands on computing resources, limiting the ability to quickly analyze data on the web. Therefore, a technical framework combining lightweight point cloud processing algorithms with efficient web-based rendering is urgently needed to enable rapid safety assessment of drone routes.
[0004] This application proposes a feasible method for rapid safety analysis of drone routes on the Web based on point cloud data. The method spatially serializes the input point cloud data and performs spatial point sampling on the drone route data. Then, spatial screening is performed simultaneously based on the drone route data and the serialized point cloud. At the same time, a spatial KD tree is established for the filtered serialized point cloud. The problematic point set in the serialized point cloud within a certain safety distance is calculated based on the filtered route spatial point set and the serialized point cloud spatial KD tree. Finally, the result suitable for visualization on the Web is output based on the problematic point set. Summary of the Invention
[0005] The present invention provides a method for analyzing drone route safety data on a Web-based platform.
[0006] The following steps are involved:
[0007] S1. Perform spatial serialization on the input original point cloud data, and cut the point cloud data into multiple cubic sub-blocks according to preset side lengths and slice levels;
[0008] S2. Create an octree spatial index for each cube sub-block obtained in step S1 and output an independent point cloud data file;
[0009] S3, converting the latitude and longitude endpoints of the drone route into a custom rectangular coordinate system, and performing equally spaced three-dimensional sampling along each route segment to form a route sampling point set;
[0010] S4. Generate a buffer bounding box for the route sampling point set based on the preset safety query distance, use the separating axis theorem to determine the intersection relationship between the bounding box and each cubic sub-block, and filter out the route intersection point set and the corresponding point cloud filter set;
[0011] S5. Establish a KD tree for each point cloud screening set obtained in step S4, perform a neighborhood search on the route intersection point set according to the query radius, and determine the dangerous point set within the query radius;
[0012] S6. Based on the set of dangerous points and the set of route intersection points obtained in step S5, output a route risk analysis result dataset suitable for visualization on the web.
[0013] Preferably, the spatial serialization in step S1 determines the optimal cutting side length and slicing level by iteratively calculating the ratio of the longest side of the point cloud bounding box to the target maximum cutting length.
[0014] Preferably, the leaf node capacity of the octree spatial index in step S2 is a configurable threshold, and when the number of points in a leaf node exceeds the threshold, it is automatically split to maintain retrieval efficiency.
[0015] Preferably, the origin of the custom rectangular coordinate system in step S3 adopts the geocentric coordinates of the area to be analyzed, and the error of earth curvature is reduced by coordinate translation.
[0016] Preferably, the equally spaced sampling intervals in step S3 are dynamically calculated based on the cruising speed of the drone and the safety distance to ensure a balance between risk assessment accuracy and computational complexity.
[0017] Preferably, the neighborhood search result for the dangerous point set in step S5 further includes the minimum distance from the dangerous point to the corresponding route point and its cube sub-block identifier.
[0018] Preferably, if the number of danger points corresponding to a single route point exceeds a preset threshold, the danger point results of the route point are randomly downsampled to control the output data scale.
[0019] Preferably, the route risk analysis result dataset outputted in step S6 adopts a combined data structure of three-dimensional coordinates and risk level labels, and supports real-time rendering in a WebGL environment.
[0020] Preferably, the method can greatly reduce the amount of back-end computing, improve computing efficiency, reduce network bandwidth usage and improve Web-side rendering efficiency.
[0021] A drone route safety data analysis system for a web-based terminal, using the drone route safety data analysis method for a web-based terminal, includes:
[0022] The point cloud spatial serialization module is used to cut the original point cloud data into multiple cubic sub-blocks according to the preset cutting edge length and slicing level, and to establish an octree spatial index for each cubic sub-block;
[0023] The route sampling module is used to convert the latitude and longitude endpoints of the drone route into a custom rectangular coordinate system and perform equally spaced three-dimensional sampling along each route segment to generate a route sampling point set;
[0024] A fast spatial screening module is used to generate a buffer bounding box for the route sampling point set based on the preset safety query distance, and use the separating axis theorem to determine the intersection relationship between the bounding box and each cubic sub-block, thereby screening the route intersection point set and the corresponding point cloud screening set;
[0025] a proximity analysis module, configured to establish a KD-Tree for each of the point cloud screening sets, and perform a neighborhood search on the route intersection point set within a query radius to determine a dangerous point set within the query radius;
[0026] The result processing and downsampling module is used to randomly downsample the dangerous point results of a single route point when the number of dangerous points corresponding to the route point exceeds a preset threshold to control the output data scale;
[0027] A web visualization module is used to generate a result data set including three-dimensional coordinates and risk level labels based on the route intersection point set and the dangerous point set, and perform real-time rendering in a WebGL environment;
[0028] The technical solution provided by the embodiment of the present invention may have the following beneficial effects:
[0029] By adaptively dividing large-scale, centimeter-level point clouds into cubes of uniform side length and combining them with an octree-KDTree dual-layer index, this method breaks down the entire point cloud, which would otherwise require a single load and traversal, into fine-grained units for on-demand retrieval and local computation. Furthermore, coupled with a separating axis determination and radius query mechanism, KD Tree construction and proximity analysis are performed solely within the route buffer. This reduces the overall time complexity of route safety calculations from linear to near-logarithmic, significantly reducing CPU and memory usage.
[0030] Cube cut edge length, slicing level, KD Tree query radius, and random downsampling threshold are all configurable parameters that can be dynamically adjusted based on the drone's operating altitude, point cloud density, and flight speed. The combination of route-bounding box intersection detection and bidirectional radius query allows the same framework to be used for both coarse-grained pre-inspection and fine-grained obstacle avoidance analysis. Similarly, when point cloud data continues to grow or is locally updated, incremental maintenance can be completed by simply re-indexing the relevant sub-blocks, eliminating the need to rebuild the entire index structure. This ensures the system's lightweight and sustainable scalability for long-term operation and maintenance. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 This is a main flow chart of embodiment 1 of the present invention.
[0032] Figure 2 This is a spatial serialization flow chart of embodiment 1 of the present invention.
[0033] Figure 3 This is a three-dimensional sampling flow chart of embodiment 1 of the present invention.
[0034] Figure 4 This is a flowchart of filtering route intersection point sets and corresponding point cloud filtering sets according to the first embodiment of the present invention.
[0035] Figure 5 This is a flowchart of the proximity analysis according to the first embodiment of the present invention. DETAILED DESCRIPTION
[0036] In order to make the objectives, technical solutions and advantages of the present invention more clear, the present invention is described in detail below with reference to the accompanying drawings and specific embodiments.
[0037] Example 1
[0038] like Figure 1 The work of spatial serialization is mainly aimed at large amounts of point cloud data. Through this work, the point cloud data is regularly cut into three dimensions within the spatial range, and the traditional route safety analysis is decomposed from the calculation of a single large point cloud to the calculation of multiple small point clouds.
[0039] like Figure 2 The steps of spatial serialization are as follows:
[0040] A1. Calculate the reasonable cube side length and slice level of the point cloud data based on the preset maximum side length of the serialized cube and the longest side of the bounding box of a single large point cloud data.
[0041] A2. Create a spatial octree object and corresponding coordinate point set for the current single large point cloud data;
[0042] A3, based on the reasonable cube side length and slicing level of A1, performs stereo segmentation on the bounding box of a single large point cloud data to form a serialized cube set;
[0043] A4, using the spatial octree object and the corresponding coordinate point set created in A2, calculates all coordinate points within each bounding box of the serialized cube in A3;
[0044] A5 outputs and forms a series of independent point cloud files based on all cubes containing coordinate point results in A4, forming a point cloud space serialization dataset.
[0045] The three-dimensional cutting method includes:
[0046] B1. Determine the optimal cutting parameters:
[0047] Set the input edge length distance, the maximum cutting length max_seg, the cutting level to number, and the optimal cutting length to seg;
[0048] If distance≤max_seg, directly return to the initial value:
[0049] number=0,seg=distance
[0050] If the input side length distance>max_seg, the side length is cut by cyclic binary division until the condition is met:
[0051] number=n,
[0052] Where n is the value that satisfies seg n The smallest integer ≤ max_seg.
[0053] B2. Cube slices:
[0054] For each dimension (x, y, z), the interval min, max is divided into several subintervals with a fixed step size seg:
[0055] x-axis division:
[0056] x i =x min +i·seg(i∈N,xi≤x max );
[0057] Y-axis division:
[0058] y j =y min +j·seg(j∈N,yj≤y max );
[0059] Z-axis division:
[0060] z k =z min +k·seg(k∈N,zk≤z max );
[0061] The coordinate range of each cube is defined as:
[0062] cube=[x i ,x i +seg]×[y j ,y j+seg]×[z k ,z k +seg]
[0063] The combination of subscripts (i, j, k) corresponds to the grid point number of the cube in the three-dimensional grid and can be used as a cube index.
[0064] x max is the maximum coordinate of the point cloud bounding box on the x-axis, x min is the minimum coordinate of the point cloud bounding box on the x-axis;
[0065] y max is the maximum coordinate of the point cloud bounding box on the y-axis, min is the minimum coordinate of the point cloud bounding box on the y-axis;
[0066] z max is the maximum coordinate of the point cloud bounding box on the z axis, min is the minimum coordinate of the point cloud bounding box on the z-axis;
[0067] And stored as a list [index, coordinate bounds].
[0068] The principle of the above three-dimensional cutting method is:
[0069] Through binary iteration, the longest side of the point cloud bounding box is gradually approached to the preset "maximum cutting length", thereby automatically generating a cutting side length seg that satisfies both display / computation performance and maintains spatial coherence;
[0070] The number of binary divisions is recorded synchronously as the cutting level number. This level naturally matches the depth of the octree index to avoid repeated traversal or reconstruction of the spatial structure.
[0071] With seg as the step size, the sub-intervals are divided simultaneously on the x, y, and z axes, and the combined sub-intervals are combined to obtain a cubic grid;
[0072] The grid and the point cloud bounding box completely cover the same space, so that each cube slice has a fixed, indexable coordinate range, establishing a consistent reference system for subsequent spatial operations.
[0073] The slicing level corresponds one-to-one to the octree depth, and all point cloud coordinates can be directly mapped to the corresponding leaf nodes;
[0074] Set a leaf node capacity threshold. If any block exceeds the capacity, it will be partially subdivided to ensure that query efficiency and memory usage are within a controllable range.
[0075] The beneficial effects are:
[0076] The entire point cloud is split into small-granularity sub-blocks. Each spatial query only processes local data that intersects the route, fundamentally avoiding the computational bottleneck caused by "loading large files all at once." The block side length is adaptive to the octree depth, and the number of points in each leaf node tends to be balanced; therefore, when a KD-Tree or other proximity structure is constructed within a leaf node, the query complexity can be approximately logarithmic. Cube blocks have independent file identifiers and can be loaded on demand. The web client only needs to request those sub-blocks related to the current route, achieving on-demand scheduling of data streams and saving bandwidth. When adding new point cloud data, only the affected blocks need to be re-indexed, without destroying the overall structure, facilitating incremental updates and multi-source point cloud merging. The cube boundary naturally forms a "cropping box," which can be used for frustum culling and block rendering during front-end rendering, reducing GPU load and improving frame rate and interactive fluency.
[0077] The point set search methods in space include:
[0078] C1:
[0079] Let the target cube area be S, and the cube boundary be:
[0080] [x min ,x max ]×[y m in,y max ]×[z min ,z max ]
[0081] C2:
[0082] For the current octree node N, its spatial extent is represented by an axis-aligned bounding box (AABB):
[0083] N AABB =[x N min ,x N max ]×[y N min ,y N max ]×[z N min ,z N max ]
[0084] Judge N AABB Whether it intersects with S: If not, skip the node and its subtree; if intersecting, recursively traverse the child nodes (up to 8 child nodes) until the leaf node.
[0085] C3:
[0086] In the leaf node, for each point p i =(xi ,y i ,z i ), check whether it meets the inclusion condition of region S:
[0087] x min ≤x i ≤x max ∧y m in≤yi≤y max ∧z min ≤z i ≤z max
[0088] Points that meet the conditions are added to the result set.
[0089] The principle of the above point set search method is:
[0090] The 3D point cloud is recursively divided into octree nodes, and each node is described by an axis-aligned bounding box (AABB);
[0091] This hierarchical structure allows any target query area S to quickly locate the subtree that may contain points through "top-down pruning", avoiding point-by-point traversal of the entire point cloud.
[0092] Perform an intersection test on the AABB of the current node N and the target cube S:
[0093] Disjoint: Prune immediately, and the entire subtree does not need to be checked again;
[0094] Intersection: Recursively visit child nodes until a leaf node is reached or an early termination condition is met.
[0095] This "spatial clipping" is based on bounding boxes rather than specific points, so the computational overhead is logarithmic with the number of nodes and does not increase linearly with the point cloud density.
[0096] After entering the leaf node, a one-time "six-sided encirclement" judgment is performed on the point p = (x, y, z):
[0097] Points that meet the conditions are directly added to the result set; since the capacity of leaf nodes is controllable, this operation is completed in constant time.
[0098] After the query is completed, all the points in the target cube S are obtained by merging the point sets output by each leaf node;
[0099] Because the octree naturally has no overlapping nodes, the same point will not be counted repeatedly in the result, eliminating the need for additional deduplication steps.
[0100] The beneficial effects are:
[0101] By pruning the octree layer by layer, only subtrees intersecting the target area are traversed, theoretically significantly reducing the complexity of global linear scans. Nodes are clustered by spatial proximity, and related points are stored centrally. This allows for CPU or GPU queries to leverage cache locality and reduce latency associated with random memory access. Node depth corresponds one-to-one with spatial resolution, allowing recursion to be stopped at different levels as needed: for rough pre-checks, only high-level nodes need to be accessed; for detailed analysis, leaf nodes can be drilled down for precise calculations. Therefore, the same index structure can serve multi-resolution algorithms from global to local. When point cloud data is dynamically added or deleted, only the affected nodes are locally split or merged, eliminating the need to rebuild the entire tree and maintaining index stability. Node AABBs align with the view frustum clipping logic used in visualization, allowing the same spatial culling mechanism to be reused in the rendering pipeline, achieving integrated query-rendering and further improving the smoothness of front-end interactions.
[0102] like Figure 3 , the steps of three-dimensional sampling include:
[0103] D1. To ensure sampling accuracy, a high-precision rectangular coordinate system is defined, and a high-precision conversion method between longitude and latitude and rectangular coordinate system is implemented;
[0104] D2. Based on the conversion method in D1, the latitude and longitude endpoints of the route data are converted into rectangular coordinate point sets, and linear interpolation is used to achieve equally spaced point sampling on the three-dimensional line segment;
[0105] D3. Apply the equally spaced sampling points of D2 to the conversion method of D1 to obtain a set of sampling points in the form of all latitude and longitude.
[0106] The methods for customizing rectangular coordinate systems in D1 include:
[0107] D11. Assume that the origin P0 of the custom rectangular coordinate system corresponds to the geocentric coordinate:
[0108] (X0,Y0,Z0)
[0109] D12, using the WGS84 ellipsoid model, the parameters are:
[0110] Semi-major axis a=6378137m
[0111] minor axis b = 6356752.3142 m
[0112] first eccentricity squared
[0113] Methods for converting longitude and latitude to rectangular coordinate system include:
[0114] D21. Convert longitude and latitude (λ, φ, h) to WGS84 geocentric rectangular coordinates (X, Y, Z):
[0115]
[0116] Where N is the radius of curvature of the yoke:
[0117] D22. Eliminate the origin offset by translation, and the custom rectangular coordinates (x, y, z) are:
[0118]
[0119] The methods for converting rectangular coordinates to longitude and latitude include:
[0120] D31. Restore geocentric coordinates from custom coordinates (x, y, z):
[0121]
[0122] D32. Convert geocentric coordinates to longitude and latitude, and calculate φ and λ by iterative method:
[0123]
[0124] The iteration formula is:
[0125]
[0126] Until |φ n+1 -φ n |<∈(e.g.∈<10 -12 ).
[0127] like Figure 4 ,The method of filtering the route intersection point set and the corresponding point cloud ,filtered set includes:
[0128] E1. Determine the rectangular coordinate system based on the point cloud projection properties and determine the conversion scheme between longitude and latitude and rectangular coordinates;
[0129] E2. Convert the route points into a set of rectangular coordinate points according to the conversion scheme of E1;
[0130] E3, extract bounding box data from the point cloud serialized subset, and buffer the new bounding box data based on the route safety query distance. Combined with the route point coordinate set of E2, the serialized point cloud filter set and the route intersection point set are filtered according to the separating axis theorem to generate spatial intersection phenomena;
[0131] Based on the route intersection point set of E3 and the spatial sampling calculation method, E4 outputs the route sampling point screening set.
[0132] The methods for detecting the intersection of the route and the bounding box include:
[0133] E11. Split the 3D route polyline into a sequence of line segments formed by adjacent points:
[0134] {[p0, p1], [p1, p2], …, [p n-1 , p n}
[0135] E12. For each line segment p0 → p1, calculate its overlapping intervals of projections on the three axes (X / Y / Z) of the bounding box AABB.
[0136] Step 1. Parameterize the route line segment:
[0137] p(t) = p0 + t · (p1 - p0), t ∈ [0, 1]
[0138] Where, P0 is the starting coordinate vector of the route line segment;
[0139] P1 is the ending coordinate vector of the route line segment;
[0140] P1 - P0 is the direction vector from the starting point to the ending point, representing the displacement of the line segment.
[0141] t is a dimensionless parameter, defined in the interval [0, 1];
[0142] When t = 0, p(t) is equal to the starting point P0;
[0143] When t = 1, p(t) is equal to the ending point P1;
[0144] When 0 < t < 1, p(t) represents the coordinates at the corresponding proportional position inside the line segment;
[0145] p(t) is the coordinate of an arbitrary point obtained after parameterization, continuously changing between the starting and ending points with t, and is used for subsequent intersection detection and distance calculation with spatial objects such as the bounding box AABB.
[0146] Step 2. Calculate the projection intervals of each axis:
[0147]
[0148] Step 3. Determine whether there is an intersection:
[0149] If t enter ≤ t exit , and t enter ≤ 1, t exit ≥ 0, then the line segment intersects with the bounding box AABB.
[0150] The parametric calculation of the intersection part includes:
[0151] E21. If the route line segment intersects with the bounding box AABB, its parametric interval is:
[0152] t start =max(t enter ,0),t end =min(t exit ,1)
[0153] E22. Extract the coordinates of the intersection point where the route and the bounding box intersect:
[0154]
[0155] Among them, p0 is the coordinate vector of the starting point of the route segment
[0156] p1 route segment endpoint coordinate vector
[0157] p(t) is the parametric equation of any point on the line segment
[0158] t is the line segment parameter, and its value range is [0,1]
[0159] AABBmin x 、AABBmin γ , AABBminz: The minimum coordinates of the bounding box on the x, y, and z axes
[0160] AABBmax x 、AABBmax γ , AABBmax_z: the maximum coordinate of the bounding box on the x, y, and z axes
[0161] t enter Comprehensive parameter value for the line segment entering the bounding box
[0162] t exit Comprehensive parameter value for the line segment leaving the bounding box
[0163] t start The parameter for actually entering the bounding box (max(t_enter,0))
[0164] t end The parameter for actually leaving the bounding box (min(t_exit,1))
[0165] p start The coordinates of the first intersection of the line segment and the bounding box
[0166] p end The coordinates of the second intersection of the line segment and the bounding box.
[0167] like Figure 5 , the proximity analysis methods include:
[0168] F1. Perform cross-band processing on the serialized point cloud filter set. In the case of cross-band, normalize the spatial rectangular coordinate system of all point cloud filter sets.
[0169] F2. Filter the point cloud using the buffer bounding box according to the query radius, and establish a spatial KD tree for all point cloud filter sets through spatial filtering;
[0170] F3. Based on the query radius, a set of sampling points of intersecting route segments is established through spatial screening, and a reverse KD tree is established;
[0171] F4. Use the KD tree to query the dangerous points within the specified radius in the point cloud data. If the number of dangerous points exceeds the threshold, random sampling is used to reduce the data volume.
[0172] F5. Use reverse KD numbers and point cloud dangerous point set data to query problem points on the route.
[0173] The forward radius query methods include:
[0174] F11. For each route point qi∈Q (shape is n×3) and point cloud set P, use the neighborhood query formula with radius r of the KD tree:
[0175] Neighbors(q i , r)={p j ∈P| / / q i -p j / / ≤r}
[0176] F12. By merging all query results and removing duplicates, we can obtain the set of dangerous points on the point cloud:
[0177]
[0178] Methods for nearest neighbor search include:
[0179] F22. For each route point qi∈Q, calculate its nearest neighbor to the point cloud set P:
[0180]
[0181] F23, the global minimum distance is:
[0182]
[0183] Reverse radius query methods include:
[0184] To verify the bidirectional proximity relationship, a KD tree of the route point set Q is constructed, and a reverse query is performed on the dangerous point set Punsafe:
[0185]
[0186] Among them, ChoosePoints is the set of problem points on the route segment;
[0187] q is the route sampling point;
[0188] Q is the set of sampling points of all routes;
[0189] P is the complete point cloud dataset;
[0190] η is the radius query distance threshold;
[0191] Neighbors(q,η) is the set of neighboring points in P with q as the center and η as the radius;
[0192] unsafe_points is the set of dangerous points obtained by performing Neighbors query on all q in Q and merging and removing duplicates;
[0193] closest_point(q) is the point cloud point closest to the route point q;
[0194] dist_min is the global minimum value among the nearest neighbor distances of all route points;
[0195] P_unsafe is the subset of dangerous points obtained by forward radius query.
Claims
1. A method for analyzing drone route safety data on a Web-based system, characterized in that: The following steps are involved: S1. Performing spatial serialization on the input raw point cloud data to stereoscopically cut the point cloud data into a plurality of cubic sub-blocks according to a preset side length and slicing level; the spatial serialization in step S1 determines the optimal cutting side length and slicing level by iteratively calculating the ratio of the longest side of the point cloud bounding box to the target maximum cutting length; S2. Create an octree spatial index for each cube sub-block obtained in step S1 and output an independent point cloud data file; the leaf node capacity of the octree spatial index in step S2 is a configurable threshold, and when the number of points in a leaf node exceeds the threshold, it is automatically split to maintain retrieval efficiency; S3. Convert the latitude and longitude endpoints of the drone route to a custom rectangular coordinate system, and perform equally spaced three-dimensional sampling along each route segment to form a route sampling point set; the origin of the custom rectangular coordinate system in step S3 uses the geocentric coordinates of the area to be analyzed, and the earth curvature error is reduced by coordinate translation; the equally spaced sampling intervals in step S3 are dynamically calculated based on the drone's cruising speed and safety distance to ensure a balance between risk assessment accuracy and computational complexity; S4. Generate a buffer bounding box for the route sampling point set based on the preset safety query distance, use the separating axis theorem to determine the intersection relationship between the bounding box and each cubic sub-block, and filter out the route intersection point set and the corresponding point cloud filter set; wherein the separating axis theorem is used to determine the intersection relationship between the bounding box and each cubic sub-block; S5. Establish a KD tree for each point cloud screening set obtained in step S4, perform a neighborhood search on the route intersection point set according to the query radius, and determine the dangerous point set within the query radius; the neighborhood search result for the dangerous point set in step S5 also includes the minimum distance between the dangerous point and the corresponding route point and its cubic sub-block identifier; if the number of dangerous points corresponding to a single route point exceeds a preset threshold, randomly downsample the dangerous point results for the route point to control the output data scale; S6. Based on the set of dangerous points and the set of route intersection points obtained in step S5, output a route risk analysis result dataset suitable for Web-based visualization; the route risk analysis result dataset adopts a combined data structure of three-dimensional coordinates and risk level labels, and supports real-time rendering in a WebGL environment.
2. A drone route safety data analysis system for the Web, characterized in that: The method for analyzing drone route safety data on a web-based device as claimed in claim 1 comprises: The point cloud spatial serialization module is used to cut the original point cloud data into multiple cubic sub-blocks according to the preset cutting edge length and slicing level, and to establish an octree spatial index for each cubic sub-block; The route sampling module is used to convert the latitude and longitude endpoints of the drone route into a custom rectangular coordinate system and perform equally spaced three-dimensional sampling along each route segment to generate a route sampling point set; A fast spatial screening module is used to generate a buffer bounding box for the route sampling point set based on the preset safety query distance, and use the separating axis theorem to determine the intersection relationship between the bounding box and each cubic sub-block, thereby screening the route intersection point set and the corresponding point cloud screening set; a proximity analysis module, configured to establish a KD tree for each of the point cloud screening sets, and perform a neighborhood search on the route intersection point set with a query radius to determine a dangerous point set within the query radius; The result processing and downsampling module is used to randomly downsample the dangerous point results of a single route point when the number of dangerous points corresponding to the route point exceeds a preset threshold to control the output data scale; A web visualization module is used to generate a result data set including three-dimensional coordinates and risk level labels based on the route intersection point set and the dangerous point set, and perform real-time rendering in a WebGL environment; The system is configured to render only the problem point set on the browser client to reduce network bandwidth usage and improve Web-side rendering efficiency.
Citation Information
Patent Citations
Method for detecting dangerous points of inspection route of electric power tower
CN112394743A
Method for rendering large-scale point cloud at web end
CN119229007A