A real-time point cloud clustering method for track obstacles

By employing a bidirectional index table method in the subway train signaling system, real-time clustering of lidar point cloud data was achieved, solving the problem of insufficient hardware performance, reducing hardware upgrade costs, and preserving data feature details.

CN116664901BActive Publication Date: 2026-05-29SHANGHAI ELECTRIC THALES TRANSPORTATION AUTOMATION SYST CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHANGHAI ELECTRIC THALES TRANSPORTATION AUTOMATION SYST CO LTD
Filing Date
2023-06-13
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

In existing subway train signaling systems, the massive amount of point cloud data generated by lidar is difficult to process in real time on controllers with relatively weak hardware performance, which leads to the need to add additional high-performance processors, increasing the construction and operation costs of subways.

Method used

A bidirectional index table method is adopted, including a point cloud list, a voxel list, and a 3D voxel list. By calculating voxel coordinates and index values, real-time clustering of point cloud data is achieved, reducing the complexity of point cloud clustering algorithms and enabling real-time processing on an embedded train controller.

Benefits of technology

Without adding hardware processors, real-time processing of massive point cloud data was achieved, reducing the train hardware upgrade cost of the active obstacle detection system, while preserving the feature details of the point cloud data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116664901B_ABST
    Figure CN116664901B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of urban rail transit signal control, and discloses a track obstacle real-time point cloud clustering method, a bidirectional index table includes a point cloud list, a voxel list and a voxel three-dimensional list, and the specific steps include: step S1, collecting point cloud data and storing in the point cloud list; step S2, generating the voxel list and the voxel three-dimensional list according to the point cloud list; step S3, obstacle class clustering; and step S4, generating an obstacle point cloud list. The present application can process large point cloud data in the active obstacle detection function in real time, and saves the train hardware upgrade cost of the active obstacle detection system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of urban rail transit signal control technology, specifically a real-time point cloud clustering method for track obstacles. Background Technology

[0002] With the increasing intelligence and fully automated driverless operation of subway train signaling systems, active obstacle detection systems are gradually becoming a standard feature of subway train signaling systems, replacing the human driver's function of looking out for obstacles in the track area.

[0003] The most commonly used sensor in active obstacle detection systems is lidar, but lidar generates a huge amount of point cloud data. Typically, a single lidar can generate hundreds of megabytes (100Mbytes) of data per second, which places high demands on hardware performance.

[0004] The hardware that processes this data needs to meet the safety level requirements of the subway system. The most direct way is to use controllers and their hardware architectures that have already passed safety certification as much as possible. However, the original controller hardware of the subway signaling system has weak performance, which requires innovation in software algorithms to meet the needs of implementing an active obstacle detection system on the subway train controller.

[0005] Current embedded real-time point cloud processing methods mainly focus on adding additional high-performance processors to embedded devices. Chinese patents (CN113920002A, CN113920446A, and CN111860340A) describe a point cloud detection algorithm accelerated by a GPU, respectively, and FPGA-accelerated a point cloud search algorithm. These methods require additional hardware processors, and the newly designed hardware needs to pass the stringent safety certifications required by subway systems, increasing subway construction costs.

[0006] Therefore, a real-time point cloud clustering method for track obstacles is needed. Summary of the Invention

[0007] The purpose of this invention is to overcome the shortcomings of existing methods by providing a real-time point cloud clustering method for track obstacles, which can process the massive amount of point cloud data in the active obstacle detection function in real time, saving the train hardware upgrade cost of the active obstacle detection system.

[0008] The technical solution to achieve the above objectives is:

[0009] A real-time point cloud clustering method for track obstacles, comprising a bidirectional index table including a point cloud list, a voxel list, and a 3D voxel list, and the specific steps include:

[0010] Step S1: Collect point cloud data and store it in the point cloud list;

[0011] Step S2: Generate a voxel list and a 3D voxel list based on the point cloud list;

[0012] Step S3, obstacle clustering;

[0013] Step S4: Generate a list of obstacle point clouds.

[0014] Preferably, in step S1, the point cloud list is typically implemented using a one-dimensional array, and the point cloud list includes point cloud sequence number, point cloud feature data, and point cloud coordinates.

[0015] Preferably, in step S2, the voxel list is typically implemented using a one-dimensional array, and the voxel list includes voxel number, point cloud index, and voxel coordinates; the three-dimensional voxel list is typically implemented using a three-dimensional array, and the three-dimensional voxel list includes voxel number and voxel index.

[0016] Preferably, step S2 includes:

[0017] Step S21: Calculate the voxel coordinates of the point cloud data. The voxel coordinate value is equal to the point cloud coordinate value divided by the voxel size, then rounded down. The formula is as follows:

[0018]

[0019] Among them, (x i y i , z i (X) represents the point cloud coordinates. i Y i Z i (VoxelSize) represents the voxel coordinates. x VoxelSize y VoxelSize z () represents the size of a unit voxel;

[0020] Step S22: Query the voxel index value in the voxel 3D list using the calculated voxel coordinate values;

[0021] Step S23: Convert the remaining point cloud data in the point cloud list into voxels one by one to generate a voxel list and a 3D voxel list.

[0022] Preferably, step S3 includes:

[0023] Step S31: Select the voxel closest to the lidar from the voxel list as the seed voxel. The specific formula is as follows:

[0024]

[0025] Add the selected seed voxel to the obstacle voxel list;

[0026] Step S32: A voxel has 26 neighboring voxels in three-dimensional space. In the three-dimensional voxel list, the voxel index values ​​of these 26 neighboring voxels are queried.

[0027] Preferably, in step S4, the point cloud index in the obstacle object pixel list is used to query the point cloud list, and the queried point cloud feature data and point cloud coordinates are written into the obstacle point cloud list.

[0028] Preferably, step S22 includes:

[0029] Step S221: If the voxel index value is empty, add a row to the voxel list, add the point cloud number to the point cloud index, fill in the voxel coordinate value, and fill in the newly added voxel number to the voxel index of the voxel 3D list.

[0030] Step S222: If the voxel index value is not empty, then in the voxel list, the row containing the voxel index value as the voxel sequence number is added to the point cloud index.

[0031] Preferably, step S32 includes:

[0032] Step S321: If the voxel index value found is empty, do nothing.

[0033] Step S322: If the voxel index value is not empty, then query the voxel list according to the voxel index value, and add the queried point cloud index and voxel coordinates to the obstacle voxel list.

[0034] Preferably, if the voxel coordinate values ​​are known, the corresponding voxel index value can be found in the voxel 3D list based on the voxel coordinate values; the point cloud index value can be found in the voxel list based on the voxel index value; and the point cloud coordinates and point cloud feature data can be found in the point cloud list based on the point cloud index value.

[0035] The beneficial effects of this invention are: by setting a bidirectional indexed data structure and algorithm, this invention reduces the complexity of point cloud clustering algorithms while preserving the feature details of point cloud data; and enables real-time processing of the massive amount of point cloud data in the active obstacle detection function on the embedded train controller, thereby saving the train hardware upgrade cost of the active obstacle detection system. Attached Figure Description

[0036] Figure 1 This is a flowchart of a real-time point cloud clustering method for track obstacles according to the present invention;

[0037] Figure 2This is a flowchart illustrating the specific process of generating a voxel list and a 3D voxel list based on a point cloud list in this invention.

[0038] Figure 3 This is a flowchart illustrating the specific process of obstacle clustering in this invention;

[0039] Figure 4 This is a flowchart illustrating the specific process of querying voxel index values ​​in a voxel 3D list in this invention.

[0040] Figure 5 This is a flowchart illustrating the specific process of querying the voxel index values ​​of 26 neighboring voxels in the three-dimensional voxel list in this invention.

[0041] Figure 6 This is a diagram showing the format of the point cloud list in this invention;

[0042] Figure 7 This is a format diagram of the voxel list in this invention;

[0043] Figure 8 This is a format diagram of the three-dimensional voxel list in this invention;

[0044] Figure 9 This is a three-dimensional coordinate axis diagram of the three-dimensional voxel numbers in this invention;

[0045] Figure 10 This is a diagram illustrating the process of querying a voxel index that is empty in the voxel 3D list in this invention.

[0046] Figure 11 This is a diagram illustrating the process of filling point cloud number 0 into the voxel index of the voxel list in this invention.

[0047] Figure 12 This is a diagram illustrating the process of filling voxel number 0 into the voxel index of the three-dimensional voxel list in this invention.

[0048] Figure 13 This is a diagram illustrating the process of finding a voxel with index 0 in the voxel 3D list in this invention.

[0049] Figure 14 This is a diagram illustrating the process of filling point cloud number 1 into the point cloud index with voxel number 0 in this invention.

[0050] Figure 15 This is a flowchart of the reverse indexing process in this invention;

[0051] Figure 16 This is a pixel list format diagram of the obstacle objects in this invention;

[0052] Figure 17 This is a schematic diagram of a voxel in three-dimensional space in this invention;

[0053] Figure 18This is a diagram illustrating the process of filling the contents of subscripts c and d in the voxel list into the obstacle voxel list in this invention.

[0054] Figure 19 This is a diagram illustrating the process of writing point cloud feature data and point cloud coordinates with serial numbers e and f into the obstacle point cloud list in this invention.

[0055] Figure 20 This is an overview diagram of a real-time point cloud clustering method for track obstacles according to the present invention. Detailed Implementation

[0056] The technical solution of the present invention will now be clearly and completely described in conjunction with the accompanying drawings. In the description of the present invention, it should be noted that the terms "center," "upper," "lower," "left," "right," "vertical," "horizontal," "inner," and "outer," etc., indicating orientations or positional relationships, are based on the orientations or positional relationships shown in the accompanying drawings and are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation, and therefore should not be construed as a limitation of the present invention. Furthermore, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance.

[0057] The invention will now be further described with reference to the accompanying drawings.

[0058] like Figures 1-5 As shown, a real-time point cloud clustering method for track obstacles is presented. The bidirectional index table includes a point cloud list, a voxel list, and a 3D voxel list. The specific steps include:

[0059] Step S1: Collect point cloud data and store it in a point cloud list. The point cloud list is usually implemented using a one-dimensional array. The point cloud list includes the point cloud sequence number (pc_sn), point cloud feature data, and point cloud coordinates, in the following format: Figure 6 As shown.

[0060] Step S2: Based on the point cloud list, generate a voxel list and a 3D voxel list. The voxel list is usually implemented using a one-dimensional array. The voxel list includes the voxel number (voxel_sn), the point cloud index, and the voxel coordinates, in the following format: Figure 7 As shown; a 3D voxel list is usually implemented using a 3D array. A 3D voxel list includes a voxel 3D index and a voxel number, formatted as follows: Figure 8 As shown, the physical property of a voxel's three-dimensional index is the voxel coordinate value of the three coordinate axes in a three-dimensional coordinate system, as follows: Figure 9 As shown; where the concept of voxels in three-dimensional space is similar to the concept of pixels in two-dimensional images, the physical property of a three-dimensional voxel list is the set of the smallest solid structures in a three-dimensional coordinate system.

[0061] Step S21: Calculate the voxel coordinates of the point cloud data. The voxel coordinate value is equal to the point cloud coordinate value divided by the voxel size, then rounded down. The formula is as follows:

[0062]

[0063] Among them, (x i y i , z i (X) represents the point cloud coordinates. i Y i Z i (VoxelSize) represents the voxel coordinates. x VoxelSize y VoxelSize z () represents the size of a unit voxel;

[0064] Step S22: Query the voxel index value in the voxel 3D list using the calculated voxel coordinate values.

[0065] Step S221: If the voxel index value is empty (NA), add a row to the voxel list, add the point cloud number to the point cloud index, and fill the voxel coordinate value into the voxel coordinate; fill the newly added voxel number into the voxel index of the voxel 3D list.

[0066] Taking the point cloud with sequence number 0 as an example, the point cloud coordinates are (x0, y0, z0). Assume the voxel coordinates calculated using the above formula are (X... p ,Y p Z p The query in the 3D voxel list based on voxel coordinates found that the voxel index was empty (NA), as shown below. Figure 10 As shown.

[0067] Then, add an element to the voxel list. The voxel numbers increase sequentially; here, it's the first element, so its voxel number is 0. Enter the point cloud number 0 into the point cloud index of the voxel list. The voxel coordinates entered are (X... p ,Y p Z p ),as follows Figure 11 As shown.

[0068] Then, the voxel number 0 is entered into the voxel index of the 3D voxel list, as follows: Figure 12 As shown.

[0069] Step S222: If the voxel index value is not empty, then in the voxel list, the voxel index value is the row where the voxel sequence number is located, and the point cloud sequence number is added to the point cloud index. The algorithm complexity of the index table building process is O(n), where n is the number of point clouds.

[0070] Taking point cloud with index 1 as an example, the point cloud coordinates are (x1, y1, z1). Assume the voxel coordinates calculated using the above formula are (X...). p ,Y p Z p Based on the voxel coordinates, the voxel index is found to be 0 in the 3D voxel list, as follows: Figure 13 As shown.

[0071] Enter point cloud index 1 into the point cloud index with voxel index 0, as follows: Figure 14 As shown.

[0072] If the voxel coordinates are known, the corresponding voxel index can be found in the 3D voxel list; the point cloud index can be found in the voxel list based on the voxel index; and the point cloud coordinates and point cloud feature data can be found in the point cloud list based on the point cloud index, as follows: Figure 15 As shown.

[0073] Step S23: Convert the remaining point cloud data in the point cloud list into voxels one by one to generate a voxel list and a 3D voxel list.

[0074] Step S3, obstacle clustering.

[0075] Step S31: Select the voxel closest to the lidar from the voxel list as the seed voxel. The specific formula is as follows:

[0076]

[0077] Add the selected seed voxels to the obstacle voxel list. The obstacle voxel list format is as follows: Figure 16 As shown, the algorithm complexity for selecting seed voxels is O(m), where m is the number of voxels.

[0078] Step S32: A voxel has 26 neighboring voxels in three-dimensional space, as follows: Figure 17 As shown, in the three-dimensional voxel list, the voxel index values ​​of the 26 neighboring voxels are queried.

[0079] Step S321: If the voxel index value found is empty, do nothing.

[0080] Step S322: If the voxel index value is not empty, then query the voxel list according to the voxel index value, and add the queried point cloud index and voxel coordinates to the obstacle voxel list.

[0081] With seed morphogenetic acid (X) s Y s Z s For example, the coordinates of its neighboring voxels are (X... s-1 ,Y s-1 Zs-1 ),(X s-1 ,Y s-1 ,Z s ),(X s-1 ,Y s-1 ,Z s+1 ),(X s-1 ,Y s ,Z s-1 ),(X s-1 ,Y s ,Z s ),(X s-1 ,Y s ,Z s+1 ),(X s-1 ,Y s+1 ,Z s-1 ),(X s-1 ,Y s+1 ,Z s ),(X s-1 ,Y s+1 ,Z s+1 ),(X s ,Y s-1 ,Z s ),(X s ,Y s-1 ,Z s+1 ),(X s ,Y s-1 ,Z s-1 ),(X s ,Y s ,Z s-1 ),(X s ,Y s ,Z s+1 ),(X s ,Y s+1 ,Z s-1 ),(X s ,Y s+1 ,Z s ),(X s ,Y s+1 ,Z s+1 ),(X s+1 ,Y s-1 ,Z s-1 ),(X s+1 ,Y s-1 ,Z s ),(X s+1 ,Y s-1 ,Z s+1 ),(X s+1 ,Y s ,Z s-1 ),(X s+1 ,Y s ,Z s),(X s+1 ,Y s Z s+1 ),(X s+1 ,Y s+1 Z s-1 ),(X s+1 ,Y s+1 Z s ),(X s+1 ,Y s+1 Z s+1 Based on the coordinates of the neighboring voxels of the seed voxel, the nearest voxels (X) are found in the 3D voxel list. s-1 ,Y s Z s-1 ) and (X s-1 ,Y s Z s+1 The voxel indices of the obstacles are c and d, and the voxel indices of other adjacent voxels are empty. Then, the contents of rows c and d in the voxel list are filled into the obstacle voxel list. The process is as follows: Figure 18 As shown.

[0082] Then, the search continues to look for neighboring voxels of the newly added obstacle voxels in the voxel list until no new voxels are added to the obstacle voxel list. At this point, obstacle clustering is complete.

[0083] The algorithm complexity of the above-mentioned nearest voxel search process is O(l), where l is the number of voxels contained in the obstacle.

[0084] Step S4: Generate an obstacle point cloud list. Based on the point cloud index in the obstacle object list, query the point cloud list and write the retrieved point cloud feature data and point cloud coordinates into the obstacle point cloud list. The algorithm complexity of the above obstacle point cloud list generation process is O(k), where k is the number of point clouds contained in the obstacle.

[0085] Taking the first voxel in the obstacle voxel list as an example, its point cloud index is (e, f). In the point cloud list, the point cloud feature data and point cloud coordinates of the indices e and f are written into the obstacle point cloud list. The process is as follows: Figure 19 As shown.

[0086] This operation writes the point cloud data corresponding to the obstacle object pixel list into the obstacle point cloud list.

[0087] At this point, the obstacle point cloud list includes details of all obstacle point cloud feature data, which can be used for subsequent obstacle recognition, obstacle feature extraction and other functions.

[0088] In this embodiment, the number of point clouds n >= the number of voxels m >= the number of obstacle voxels l; the number of point clouds n >= the number of obstacle point clouds k. An overview of this method is shown below. Figure 20As shown.

[0089] This invention does not require additional hardware processors, thus not increasing the construction and operation costs of subways. Furthermore, through a bidirectional indexed data structure and algorithm, it reduces the complexity of point cloud clustering algorithms while preserving the feature details of point cloud data.

[0090] The above embodiments are only used to illustrate the technical solutions of the present invention, and are not intended to limit it. Although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A real-time point cloud clustering method for track obstacles, characterized in that, The bidirectional index table includes a point cloud list, a voxel list, and a 3D voxel list. The specific steps include: Step S1: Collect point cloud data and store it in the point cloud list; Step S2: Generate a voxel list and a 3D voxel list based on the point cloud list; Step S3, obstacle clustering; Step S4: Generate a list of obstacle point clouds; In step S2, the voxel list is usually implemented using a one-dimensional array, and the voxel list includes voxel number, point cloud index and voxel coordinates; the three-dimensional voxel list is usually implemented using a three-dimensional array, and the three-dimensional voxel list includes voxel number and voxel index. Step S2 includes: Step S21: Calculate the voxel coordinates of the point cloud data. The voxel coordinate value is equal to the point cloud coordinate value divided by the voxel size, then rounded down. The formula is as follows: ; in, For point cloud coordinates, In voxel coordinates, The size of a unit voxel; Step S22: Query the voxel index value in the voxel 3D list using the calculated voxel coordinate values; Step S23: Convert the remaining point cloud data in the point cloud list into voxels one by one to generate a voxel list and a 3D voxel list. Step S3 includes: Step S31: Select the voxel closest to the lidar from the voxel list as the seed voxel. The specific formula is as follows: ; Add the selected seed voxel to the obstacle voxel list; Step S32: A voxel has 26 neighboring voxels in three-dimensional space. In the three-dimensional voxel list, the voxel index values ​​of these 26 neighboring voxels are queried. Step S22 includes: Step S221: If the voxel index value is empty, add a row to the voxel list, add the point cloud number to the point cloud index, fill in the voxel coordinate value, and fill in the newly added voxel number to the voxel index of the voxel 3D list. Step S222: If the voxel index value is not empty, then in the voxel list, the row containing the voxel index value as the voxel sequence number is added to the point cloud index.

2. The real-time point cloud clustering method for track obstacles according to claim 1, characterized in that, In step S1, the point cloud list is usually implemented using a one-dimensional array. The point cloud list includes point cloud sequence number, point cloud feature data, and point cloud coordinates.

3. The real-time point cloud clustering method for track obstacles according to claim 1, characterized in that, In step S4, the point cloud index in the obstacle object pixel list is used to query the point cloud list, and the queried point cloud feature data and point cloud coordinates are written into the obstacle point cloud list.

4. The real-time point cloud clustering method for track obstacles according to claim 1, characterized in that, Step S32 includes: Step S321: If the voxel index value found is empty, do nothing. Step S322: If the voxel index value is not empty, then query the voxel list according to the voxel index value, and add the queried point cloud index and voxel coordinates to the obstacle voxel list.

5. The real-time point cloud clustering method for track obstacles according to claim 1, characterized in that, If the voxel coordinates are known, the corresponding voxel index can be found in the 3D voxel list based on the voxel coordinates; the point cloud index can be found in the voxel list based on the voxel index; and the point cloud coordinates and point cloud feature data can be found in the point cloud list based on the point cloud index.