Method and system of processing three-dimensional point clouds to determine ground and non-ground points
The method efficiently processes 3D point clouds by organizing them into a 2D array and performing segmented classifications, addressing inefficiencies and inaccuracies in traditional methods, especially in complex terrains.
Patent Information
- Application Number
- PCT/IB2024/058703
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-06
- Filing Date
- 2024-09-06
- Publication Date
- 2025-03-13
AI Technical Summary
Traditional methods for processing three-dimensional point clouds to determine ground and non-ground points are inefficient, particularly in complex terrains, due to high computational costs and potential errors in balancing and sorting point clouds.
A computer-implemented method that organizes 3D point cloud data into a 2D array of cells based on radial distance and azimuth angle values, followed by a first segmentation to identify initial ground and non-ground points, and a second segmentation using window-based model fitting to refine the classification.
This approach significantly improves the efficiency and accuracy of ground segmentation in complex terrains, reducing computational overhead and enhancing performance for real-time applications.
Smart Images

Figure IB2024058703_13032025_PF_FP_ABST
Abstract
Description
[0001]METHOD AND SYSTEM OF PROCESSING THREE-DIMENSIONAL POINT CLOUDS TO DETERMINE GROUND AND NON-GROUND POINTS FIELD OF THE INVENTION The invention relates to methods and systems for processing three- dimensional point clouds, particularly point cloud data indicative / representative of, or associated with, point clouds, to determine ground and non-ground points for purposes of ground segmentation. BACKGROUND TO THE INVENTION Three-dimensional point cloud data, referred to colloquially as 3D point clouds, for example, in the form of 3D LiDAR (Light Detection and Ranging) data / information, obtained from LiDAR systems or other range sensors and systems, for example, radar often contain information about various objects and surfaces in a scene, including ground, buildings, vegetation, and other obstacles. Determining ground and non-ground points plays a crucial role in many applications, such as autonomous navigation, object detection, terrain modelling, 3D localization and mapping. Turning to 3D LiDAR information, to represent drivable and non-drivable areas in the environment from captured 3D LiDAR information (which is sometimes unorganized), point clouds must be first organized by dividing the collected point cloud into a plurality of cells of distinct regions of the environment for easier pre- processing and a technique(s) to properly classify ground (drivable areas) and non- ground (non-drivable areas) points for purposes of ground segmentation. In some implementations, partitioning or tree data structures like the KD-tree or octree are employed for dividing point clouds into a plurality of cells, some employ various 2-dimensional (2D) representations of the x-y coordinates of the 3D point clouds and process the z-coordinates separately. This approach is usually classified as the polar grid mapping technique. Some implementations use deep neural networks (DNN) for the partitioning and classification of points in the point cloud. After partitioning, some implementations determine dynamic or fixed thresholds (usually related to the height of points) indicative of the ground surface to further extract z-coordinate values above this threshold as non-ground points or below this threshold as ground points. Estimated thresholds are usually achieved using various methods. Some of the most common implementations for estimating threshold, for estimating thresholds include supervised machine learning approaches like support vector machine (SVM), model fitting algorithms like the random sample consensus (RANSAC), Markov random field algorithms, and elevation maps. Traditional 3D partitioning and tree data structures have some major drawbacks, such as the time complexity involved in sorting point clouds, the memory overhead for managing large and rapidly changing point clouds, and the potential balancing errors that may occur during point cloud sorting. Moreover, some traditional methods perform admirably on large flat surfaces in outdoor scenes but struggle when faced with complex and uneven ground areas. Prior art approaches attempting to address ground segmentation in complex terrains are often computationally expensive and may not be practical for real-time applications. It is therefore an object of the present invention to address the drawbacks of prior art approaches at least to strike a balance between computational efficiency and ground segmentation accuracy, making it a viable and effective solution for real-time scenarios. SUMMARY OF THE INVENTION According to a first aspect of the invention, there is provided a computer- implemented method for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the method comprises: receiving 3D point cloud data obtained from a suitable 3D detection system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determining at least one, or both, of a radial distance and an azimuth angle value for each data point in the received 3D point cloud; organising each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and laser number of the detection system; performing a first segmentation of the data points of the 2D array into at least initial ground and non-ground data points based on at least relationships between the data point / s of cells of the 2D array and the data point / s of adjacent cells of the 2D array; and performing a second segmentation of the initial ground and non-ground data points in a plurality of windows of cells of the 2D array into at least final ground and non-ground data points based on at least relationships between the initial ground points and / or non-ground points and other initial ground and / or non-ground data points contained in respective windows of the plurality of windows. The step of performing the first segmentation may be based on first elevation threshold values for each cell in the 2D array. The method may therefore comprise: determining a first elevation threshold value for each cell in the 2D array; and using determined first elevation threshold values to determine initial ground and non-ground data points for each cell in the 2D array to provide an initial segmented 2D array. The window may be a small subset of cells of the 2D array. The window may have a predetermined size as described herein. The first segmentation may not account for cells having data points associated with obstacles. The second segmentation described herein seeks to address this. The step of performing the second segmentation may comprise performing a window-based model fitting on the initial segmented 2D array to determine final ground and non-ground data points for each cell in the 2D array. The received 3D point cloud data ( ^^( ^^, ^^)) may pertain to a scene which may be a scan area or in other words an area proximate the detection system which is sensed or scanned by the detection system. The method may comprise segmenting the 3D point cloud data based on the determined final ground and non-ground points. Differently stated, the method may comprise segmenting the 2D array based on the final ground and non-ground points. The method may comprise labelling, or providing a label for, each data point, wherein the label is indicative of the data point being at least a ground or a non- ground point. In this way, data points which were determined to be initial ground data points after the first segmentation are re-evaluated to determine whether they should be ground or non-ground data points to improve the accuracy of determining ground and non-ground data points. The method may comprise labelling the data points as either initial and / or final ground or non-ground data points. The received 3D point cloud data ( ^^( ^^, ^^)), or simply point cloud data or 3D point cloud data as referred to herein, may comprise at least spatial information associated with each data point. The spatial information may comprise information pertaining to first, second, and third axes of each data point in the received 3D point cloud obtained from the suitable detection system. In particular, the spatial information of each data point may comprise a first spatial value ( ^^( ^^, ^^)) associated with an x-axis of the respective data point in the received 3D point cloud, a second spatial value ( ^^( ^^, ^^)) associated with a y-axis of the respective data point in the received 3D point cloud, and a third spatial value ( ^^( ^^, ^^)) associated with a Z-axis of the respective data point in the received 3D point cloud. The first, second and third ( ^^( ^^, ^^)^^( ^^, ^^), and ^^( ^^, ^^)) spatial values may be understood to be spatial co-ordinates of the respective data points. It will be understood that the detection system contemplated herein, always contains spatial information in the form described herein corresponding to the X, Y, and Z axes of every point captured in the scene or environment. To this end, the 3D point cloud data may correspond to a scene / field of view / environment proximate to the detection system. In a preferred example embodiment, the detection system is a 3D RADAR detection system, a Light Detection and Ranging (LiDAR) system, a RGB-D camera, a structured light scanner, or the like which is configured to detect / capture 3D coordinates of their environment and / or a scene and generate suitable 3D point cloud data of said environment and / or scene. It will be understood by those skilled in the art that some detection system may require raw data therefrom to be pre- processed to arrive at the 3D point cloud data of the type described herein. In a preferred example embodiment wherein the detection system is a LiDAR system, the 3D point cloud data also comprises intensity information for each data point, in addition to the spatial information. It follows that, in addition to spatial information, 3D point cloud data from a RADAR detection system may comprise velocity information, and 3D point cloud data from RGB-D camera system may comprise RGB colour information. The radial distance ( ^^( ^^, ^^)) for each data point in the received 3D point cloud may be determined by calculating a square root of the sum of squared first and second spatial values ( ^^( ^^, ^^), ^^( ^^, ^^)). Alternately described, it will be understood that the radial distance ( ^^( ^^, ^^)) may be determined / calculated as follows: The term “radial distance” may include “range” depending on the detection system as will be understood in the art. The azimuth angle value ( ^^) for each data point in the received 3D point cloud may be determined by calculating an arctangent of the first and second spatial values ( ^^( ^^, ^^), ^^( ^^, ^^)). For negative second spatial values ( ^^( ^^, ^^)), the method may comprise adding a radiant of 2π to the determined azimuth angles ( ^^). This step may be done to fit the azimuth angle value into the radial distance of the 2D array described herein because negative second spatial values ( ^^( ^^, ^^)) may be indicative of data points to a rear of the vehicle or object to which the detection system is connected. To this end, it follows that positive second spatial values ( ^^( ^^, ^^)) may be indicative of data points in front of the vehicle / object. It follows that for a data point in the received 3D point cloud having second and first spatial values ( ^^( ^^, ^^), ^^( ^^, ^^)) of 0, the robot / car is stationary and therefore the azimuth angle may be zero. Alternately described, it will be appreciated that the azimuth angle value ( ^^) may be determined / calculated as follows: The 2D array of cells may be a 2D image of pixels, wherein each cell is a pixel. It follows that the terms “2D array” and “2D image” and the terms “cell” and “pixel” may be used interchangeably herein. The 2D array may have predetermined dimensions. In particular, the 2D array may comprise a plurality of cells arranged in a number of rows and columns spanning a predetermined row range and a column range. The number of rows and columns in the 2D array may be selected based on the detection system used to obtain the 3D point cloud data. The rows of the 2D array may correspond to the radial distances ( ^^( ^^, ^^)), wherein increasing rows correspond to increasing radial distances ( ^^( ^^, ^^)). Similarly, the columns of the 2D array may correspond to the azimuth angle values ( ^^), wherein increasing columns correspond to increasing azimuth angle values ( ^^). It will be understood that increasing row and columns means increasing row and column numbers, which for rows, starts at a first row and moves down until a last row, and, for columns, starts at a first column and moves right until a last column. The row range of the 2D array, which spans between first and last rows, may be selected based on a minimum radial distance which avoids radial distances of data points which may be reflected points from and / or of a vehicle to which the detection system may be operatively connected to. The row range may be selected / set to be a minimum of two meters. In other words, the first row may be selected to be 2m. The minimum row range of 2 m may be sufficient to cut out the reflected point / s from the rooftop of the vehicle. The row range of the 2D array may be selected based on a maximum radial distance at which the detection system provides accurate measurements. In an example embodiment, wherein the detection system is a LiDAR system, the row range may be selected / set to be a maximum of seventy meters. In other words, the last row may be selected to be 70m. In some embodiments, the maximum row range of 70m is the approximate range of receiving accurate measurements from the LiDAR system, for example, a LiDAR system in the form of a Velodyne 32E, or 64E LiDAR system. The row range may have a resolution of 1m. The column range may be selected based on an approximation of the rated angular resolution (horizontal / Azimuth) of the LiDAR system. In particular, the column range may be selected / set to be a minimum of 0. In other words, the first column may be selected to be 0. The column range may be approximated by using a rated angular resolution (horizontal / Azimuth) of the LiDAR system, which may be between 0.10 and 0.40. Therefore 360° / 0.4° (the worst case) gives you 900. A value of 2nis used for values greater than 360° / 0.4° to find the most suitable maximum column range. For example, if the number of lasers in the LiDAR system used to obtain the received 3D point cloud is 32, then the column range may be selected / set to be a maximum of 1024. In other words, for a LiDAR system with a 32-beam laser, the last column may be selected to be a maximum of 1024. For a 64-beam laser LiDAR system, the column range may be selected / set to be a maximum of 2048. From the foregoing, it will be appreciated that the dimensions of the 2D array may vary depending on the LiDAR system used to obtain the 3D point cloud data. The step of organising each data point in the received 3D point cloud into the two-dimensional (2D) array of cells described herein may comprise organising / allocating a particular data point of the 3D point could data into / to a particular cell in the 2D array based on the determined radial distance and azimuth angle values ( ^^( ^^, ^^), ^^). Alternately described, the step of organising each data point in the received 3D point cloud may be determined / calculated by: The method may include maintaining or storing a data structure for each point in the cells in a suitable memory device, wherein the data structure comprises features associated with the data point including a cloud index ^^( ^^, ^^), label , elevation value ^̅^( ^^, ^^) ^, distance ^^( ^^, ^^), angle of inclination value ^̅^( ^^, ^^). The data structure may further optionally store normalised intensity values associated with the data points. It will be understood that the data structure for each point is maintained and / or updated accordingly during the method. It will be noted that the 2D array may just be the organized 3D point cloud. The data structure referred to herein links the point cloud and its associated data to each cell. The first elevation threshold value ( ^^^^ℎ) for each cell in the 2D array may be calculated as a sum of a minimum elevation value ( ^^^^ ^^ ^^) of each cell and an elevation tolerance value ( ^^^^). Differently described, the first elevation threshold value (^^^^ℎ) for a cell may be determined / calculated as follows: The minimum elevation value ( ^^^^ ^^ ^^) of each cell may be determined by: determining an elevation value of each data point in the 2D array based on the third spatial value ( ^^( ^^, ^^)) of the respective data point associated with the cell, or the determined elevation value / s ( ^^( ^^, ^^)) of data point / s in adjacent cells; and determining a minimum of an elevation value of a particular cell and an elevation value of a cell in a preceding row and same column as the particular cell. The preceding row may be the immediately preceding row. The step of determining an elevation value of each data point in the 2D array may comprise setting each cell of the first row of the 2D array to have an elevation value equal to the third spatial value ( ^^( ^^, ^^)) of the respective data point associated with the cell. An elevation value of a subsequent cell in the remaining rows of the 2D array may be calculated as a sum of an elevation value of a cell in a preceding row and same column as the subsequent cell, and an elevation tolerance value ( ^^^^). The preceding row may be the immediately preceding row. The elevation tolerance value ( ^^^^) may be zero point two meters (0.2 m). The minimum elevation threshold value ( ^^^^ ^^ ^^) for each cell may thus be a minimum between the elevation value of the cell and elevation value of the cell in a preceding row and same column as the cell. Differently described, the step of determining the minimum elevation threshold value ( ^^^^ ^^ ^^) for each cell may be determined / calculated by: , or It will be appreciated that minimum elevation threshold value ( ^^^^ ^^ ^^) between adjacent cells may be the lowest elevation point for the current cell. In this regard, the first elevation threshold value ( ^^^^ℎ) is meant to set a threshold elevation for each cell. Generally, it is assumed that points below 0.3m are ground points so minimum elevation threshold value ( ^^^^ ^^ ^^) for each cell and the tolerance value Etis assumed to be sufficient to accommodate all ground points for any given cell. It will be understood that elevation values are initialized to be a very high value such as 80m or 100m so that all empty cells would be classified as obstacles. However, since invalid or empty cells do not have any position in the real-world environment (i.e., do not represent any captured area in the environment) they would end up being ignored. For each cell in the 2D array, the method may comprise: comparing the third spatial value ( ^^( ^^, ^^)) of the respective data point associated with the cell with the first elevation threshold ( ^^^^ℎ) associated with the cell; and determining that the respective data point associated with the cell is a ground point if the third spatial value ( ^^( ^^, ^^)) of the data point is less than the first elevation threshold ( ^^^^ℎ) associated with the cell, else the respective data point is determined to be a non-ground point. The window-based model fitting technique described herein may be used to filter out non-ground data points from the determined initial ground points. This step is important as initial segmented points are usually over segmented and so many non-ground points are initially classified as ground points. It will be understood by those skilled in the art that the method may comprise processing the 2D array in a window-by-window basis such that all cells in the 2D array are processed as described herein. It will be understood that by performing the window-based model fitting, the 2D array or image is divided into smaller regions or windows of predetermined dimensions. The dimensions of the windows may be fixed and may be a multiple of the row range and column range of the 2D array. In one example embodiment, the window may have width and height dimensions (w, c) given by: = 0)^^ ^^ ^^(^^ ≤ ^^, ^^% ^^ = 0)(7) The method may comprise re-calculating spatial and geometric features of all data points in a current window based on the spatial and geometric features of the current window as a whole. In particular, the method may comprise selecting best seed data points for each window in the 2D array. The best data seed points may be selected from initial ground data points in the current window. The best seed points may be selected based on a first set number k of initial ground data points with lowest elevation value ^^(^^^^, ^^)in the current window (current window is indicated as superscript i). The first set number k may be a minimum of 5 and maximum of 20 points in the current window. Differently described, the step of selecting the best seed points for each window may be described by: 20. (8) The method may comprise calculating covariance matrices M and normal vectors of the selected seed points for each window. The method may thus comprise determining a degree of variation and / or similarities between the data points in the window. The method may comprise calculating eigenvectors and eigenvalues ( ^^1, ^^2, ^^3) of the covariance matrix M. The covariance matrix M, eigenvectors, and eigenvalues are calculated using standard covariance matrix formula for principal component analysis (PCA). The method may comprise computing a plane model ^^^^. The plane model may be computed using the normal vector to plane equation. The plane model ^^^^may be computed / determined / calculated by the following equation: ^^^^= ^^ ^^ + ^^ ^^ + ^^ ^^ + ^^ = 0. (9) The normal vector of the plane model is a, b, c. The normal vector may be determined as: ^^^^= ( ^^, ^^, ^^) (10) The method may comprise using the normal vector of the plane model to determine / compute unique spatial and geometric feature values for all data points in a current window. In particular, the method may comprise adaptively determining the unique spatial and geometric feature values of each data point which may comprise at least elevation values, angle of inclination, and distance of the data point according to a surface normal of the respective window. Differently stated, the method may comprise recalculating the spatial and geometric features for all data points in the current window to conform to the calculated surface normal of that particular window. The unique spatial and geometric feature values may include distance of the data point from the normal vector (i.e the distance of point in the current window to the plane origin or normal vector distance ^^), elevation of data point to normal vector ( ^^( ^^, ^^)), and an angle of inclination of data point to the normal vector. The normal vector distance ^^ may be a point of origin for the current window. The new values are updated to the data structure of the point cloud therefore the (w, c) coordinates would match the (r, a) coordinate of the data structure for each data point stored in the memory device. The method may comprise determining the distance of the data point from the normal vector by way of the following equations: ^^ = −( ^^ ^^0+ ^^ ^^0+ ^^ ^^0) ^^ ^^ ^^( ^^ × ^^( )+ ^^ × ^^(+ ^^ × ^^ + ^^) ^^ =^^, ^^ ^^, ^^) ( ^^, ^^)( ^^, ^^)22 √( ^^ + ^^ + ^^2) The method may comprise determining / calculating the elevation of the data point to normal vector ( ^^( ^^, ^^)) by way of the following equation: The method may further comprise determining / calculating the angle of inclination of the data point to the normal vector by way of the following equation: ^^( ^^, ^^)= atan (14) The method may then comprise determining whether or not the unique spatial and geometric feature values of each data point in the current window that was initially classified as ground point fall within predetermined set thresholds and / or ranges so as to filter out non-ground points from initially determined ground points / initially segmented ground points. The predetermined set thresholds may be based on estimated values considered to be associated with ground points and they may be as follows: i. ^^^^ℎ: a point of distance less than or equal to 3 meters is a ground point and so threshold is set to 1 meter. i.e., 0 ≤ ^^^^ℎ≤ 3 ^^ ^^ ^^ ^^ ^^ ^^ ii. ^^^^ℎ: a slope or inclination angle close to 00is considered as ground. Threshold is set to 10. i.e., 00≤ ^^^^ℎ≤ 50iii. ^^^^ℎ: usually points less than 0.3 meters are considered as ground points. Threshold is set to 0.2m. i.e., 0 ≤ ^^^^ℎ≤ 0.3 ^^ ^^ ^^ ^^ ^^ ^^ The method may then comprise segmenting final ground points and final non- ground points from each window in the 2D array. The final ground points may be extracted or removed from the 2D array. According to a second aspect of the invention, there is provided a computer- implemented method for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the method comprises: receiving 3D point cloud data obtained from a suitable Light Detection and Ranging (LiDAR) system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determining at least one, or both, of a radial distance and azimuth angle value for each data point in the received 3D point cloud; organising each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and laser number of the detection system; determining a first elevation threshold value for each cell in the 2D array; using the determined first elevation threshold values to determine initial ground and non-ground data points for each cell in the 2D array to provide an initial segmented 2D array; and performing a window-based model fitting on the initial segmented 2D array to determine final ground and non-ground data points for each cell in the 2D array. According to a third aspect of the invention, there is provided a system for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the system comprises: a memory storage device; and one or more processors communicatively coupled to the memory storage device, wherein the one or more processors are configured to perform any of the methods described herein. In particular, it will be appreciated that the one or more processors may be configured to: receive 3D point cloud data obtained from a suitable Light Detection and Ranging (LiDAR) system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determine at least one, or both, of a radial distance and azimuth angle value for each data point in the received 3D point cloud; organise each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and laser number of the detection system; perform a first segmentation of the data points of the 2D array into at least initial ground and non-ground data points based on at least relationships between the data point / s of cells of the 2D array and the data point / s of adjacent cells of the 2D array; and perform a second segmentation of the initial ground and non-ground data points in a plurality of windows of cells of the 2D array into at least final ground and non-ground data points based on at least relationships between the initial ground points and / or non-ground points and other initial ground and / or non-ground data points contained in respective windows of the plurality of windows perform a computer implemented method as described herein. Differently stated, the one or more processors may be configured to: receive 3D point cloud data obtained from a suitable Light Detection and Ranging (LiDAR) system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determine at least one, or both, of radial distance and azimuth angle value for each data point in the received 3D point cloud; organise each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and laser number of the detection system; determine a first elevation threshold value for each cell in the 2D array; use the determined first elevation threshold values to determine initial ground and non-ground data points for each cell in the 2D array to provide an initial segmented 2D array; and perform a window-based model fitting on the initial segmented 2D array to determine final ground and non-ground data points for each cell in the 2D array. The system may comprise a suitable LiDAR system communicatively coupled to the one or more processors. According to a fourth aspect of the invention, there is provided a vehicle comprising a system described herein. The one or more processors may be an onboard computer of a vehicle. According to a fifth aspect of the invention, there is provided a computer- implemented method for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the method comprises: receiving 3D point cloud data obtained from a suitable 3D detection system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determining at least one, or both, of a radial distance and azimuth angle value for each data point in the received 3D point cloud; organising each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and laser number of the detection system; performing a first segmentation of the data points of the 2D array into at least initial ground and non-ground data points based on at least relationships between the data point / s of cells of the 2D array and the data point / s of adjacent cells of the 2D array; and performing a second segmentation or reclassification of the initial ground and non-ground data points by using the initial ground data points to establish region / s of interest, wherein spatial and geometric features of these regions of interest are used to perform the second segmentation or reclassification. It will be appreciated by those skilled in the art that the description provided herein relating to one aspect of the invention may extend / apply, mutatis mutandis, to other aspects of the invention described herein. BRIEF DESCRIPTION OF THE FIGURES Non-limiting embodiments of the invention will now be described by way of example only and with reference to the following Figures: Figure 1 shows a schematic block diagram of a vehicle incorporating a system for processing three-dimensional (3D) point cloud data comprising a plurality of data points in accordance with an example embodiment of the invention; Figure 2 shows an illustration of a field of view of a LiDAR system associated with the vehicle of Figure 1 in accordance with an example embodiment of the invention; Figure 3 shows an illustration of a two-dimensional array or image and window in accordance with an example embodiment of the invention; Figure 4 shows a high-level block flow diagram of a method in accordance with an example embodiment of the invention; Figure 5 shows another block flow diagram of a method in accordance with an example embodiment of the invention; Figure 6 (a - c) shows example images of groups of segmented point clouds using a method in accordance with an example embodiment of the invention, wherein image represents a different scene with a different level of terrain complexity, and wherein Figure 6(b) shows how the method in accordance with an example embodiment efficiently segments a slopy part of a scene; Figure 7 shows a table of the results of a method in accordance with an example embodiment tested on a NuScene dataset which contains LiDAR point clouds for a previously captured test drive for different driving scenarios and conditions; and Figure 8 shows a diagrammatic representation of a machine in the example form of a computer system in which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. DESCRIPTION OF PREFERRED EMBODIMENTS The following description of the invention is provided as an enabling teaching of the invention. Those skilled in the relevant art will recognise that many changes can be made to the embodiments described, while still attaining the beneficial results of the present invention. It will also be apparent that some of the desired benefits of the present invention can be attained by selecting some of the features of the present invention without utilising other features. Accordingly, those skilled in the art will recognise that modifications and adaptations to the present invention are possible, and may even be desirable in certain circumstances, and are a part of the present invention. Thus, the following description is provided as illustrative of the principles of the present invention and not a limitation thereof. It will be appreciated that the phrase “for example,” “such as”, and variants thereof describe non-limiting embodiments of the presently disclosed subject matter. Reference in the specification to “one example embodiment”, “another example embodiment”, “some example embodiment”, or variants thereof means that a particular feature, structure or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the presently disclosed subject matter. Thus, the use of the phrase “one example embodiment”, “another example embodiment”, “some example embodiment”, or variants thereof does not necessarily refer to the same embodiment(s). Unless otherwise stated, some features of the subject matter described herein, which are, described in the context of separate embodiments for purposes of clarity, may also be provided in combination in a single embodiment. Similarly, various features of the subject matter disclosed herein which are described in the context of a single embodiment may also be provided separately or in any suitable sub-combination. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. For brevity, the word “may” is used in a permissive sense (i.e., meaning “having the potential to”), rather than the mandatory sense (i.e., meaning “must”). The words “include,” “including,” and “includes” and the words “comprises”, “comprising”, and “comprises” mean including and comprising, but not limited thereto, respectively. Additionally, as used herein, the term “coupled” may refer to two or more components connected together, direct or indirect (i.e., through an intermediary), mechanical, chemical, optical, or electrical as is the case in a communicatively coupled components which may be in communication with each other wirelessly or in a hardwired fashion. The words “process’, “determine”, “computing”, and “calculating” may be used interchangeably herein. Referring to Figure 1 of the drawings, a vehicle V in accordance with an example embodiment of the invention typically comprises a system 10 for processing three-dimensional (3D) point cloud data ( ^^( ^^, ^^)) comprising a plurality of data points from a suitable detection system 12 which is capable of generating 3D point cloud data of the type, or substantially similar type, of an adjacent environment and / or scene. The detection system 12 may be a radar system but for ease of explanation, reference herein will be made to the detection system being in the form of a Light and Distance Range system (LiDAR) 12 capable of generating 3D point cloud data ( ^^( ^^, ^^)). Those skilled in the art will appreciate that the teachings contained herein may be applied to 3D point cloud data generated by other detection system, optionally with pre-processing steps to enable the methodology described herein to be implemented. For example, to reduce raw data generated by the detection system into the 3D point cloud data of the type described herein. The system 10 may be integrated with, or form part of, an onboard computer system associated with the vehicle V. Instead, the system 10 may be a standalone system which may be interfaced with an onboard computer or processing system associated with the vehicle V to assist the vehicle V in processing 3D point cloud data. For brevity, the vehicle V may be a self-driving or autonomous vehicle but nothing precludes the teachings of the disclosure set forth herein from being applied to conventional vehicles which require driver input. The system 10 is communicatively coupled to the LiDAR system 12 and may receive the 3D point cloud data therefrom. As illustrated in Figure 1, the system 10 may comprise the LiDAR system 12. However, in some example embodiments, the LiDAR system 12 is a standalone system which is merely communicatively coupled to the system 10 to provide the 3D point cloud data thereto. The LiDAR system 12 may be a conventional LiDAR system, for example, a Velodyne 32E LiDAR, a VLD-16 LiDAR, a Velodyne HDL-64E L, or the like, comprising a plurality of lasers and suitable detectors which are configured to detect objects and / or surfaces proximate the vehicle V in a particular field of view as illustrated in Figure 2, and generate 3D point cloud data data ( ^^( ^^, ^^)) comprising at least spatial information or data associated with the field of view sensed thereby. In particular, received 3D point cloud data ( ^^( ^^, ^^)) comprises one or both of spatial information associated with each data point, and intensity information associated with each data point. The spatial information comprises information pertaining to first, second, and third axes of each data point in the received 3D point cloud obtained from the suitable LiDAR system. In particular, the spatial information of each data point may comprise a first spatial value ( ^^( ^^, ^^)) associated with an x- axis of the respective data point in the received 3D point cloud, a second spatial value ( ^^( ^^, ^^)) associated with a y-axis of the respective data point in the received 3D point cloud, and a third spatial value ( ^^( ^^, ^^)) associated with a Z-axis of the respective data point in the received 3D point cloud. The first, second and third ( ^^( ^^, ^^)^^( ^^, ^^), and ^^( ^^, ^^)) spatial values may be understood to be spatial co-ordinates of the respective data points. The system 10 further comprises a processor 14 communicatively coupled to the LiDAR system 12 and a memory storage device 16. The memory storage device 16 may be computer memory (including transitory computer memory and / or non- transitory computer memory). In particular, the memory storage device 16 may be in the form of computer-readable medium including system memory and including random access memory (RAM) devices, cache memories, non-volatile or back-up memories such as programmable or flash memories, read-only memories (ROM), etc. In addition, the memory storage device 16 may be considered to include memory storage physically located elsewhere in the system 10, e.g., any cache memory in the processor 14 as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device. The processor 14 may be one or more processors in the form of programmable processors executing one or more computer programs to perform actions, for example, any of the methods described herein, by operating on input data and generating outputs. The processor 14, as well as any computing device referred to herein, may be any kind of electronic device with data processing capabilities including, by way of non-limiting example, a general processor, a graphics processing unit (GPU), a digital signal processor (DSP), a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other electronic computing device comprising one or more processors of any kind, or any combination thereof. For brevity, steps described as being performed by the system 10 may be steps which are effectively performed by the processor 14 and vice versa unless otherwise indicated. It will be appreciated that the computer programs executable by the processor 14 may be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. The computer program may, but need not, correspond to a file in a file system. The program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a mark-up language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). The computer program can be deployed to be executed by one processor 14 or by multiple processors 14. The computer programs may be stored in the memory storage device 16 or in memory provided in the processor 14 as the case may be. Though not illustrated or discussed herein, it will be appreciated by those skilled in the field of invention that the system 10 may comprise a plurality of logic components, electronics, driver circuits, peripheral devices, etc. not described herein for brevity. Though not illustrated, nothing precludes the system 10 from being remote from the vehicle V, wherein the system 10 receives the 3D point cloud data from an onboard LiDAR associated with the vehicle in a wireless fashion via a suitable wireless communication network and / or protocol, processes the point cloud data in the manner described herein, and transmits information indicative of ground and non-ground points to an onboard computer or controller associated with the vehicle, for example, to control the vehicle. The operation of the system 10, as described herein, will be better explained with reference to Figures 4 and 5 of the drawings which illustrate block flow diagrams corresponding to computer / processor implemented methods in accordance with example embodiments of the invention. Though the operation of the system 10 described herein will be understood with reference to the description herein regarding Figures 4 and 5, it will be understood by those skilled in the art that the methodologies disclosed herein may be applied by other systems, not illustrated as well. Referring to Figure 4 of the drawings where a high-level block flow diagram of a method in accordance with an example embodiment of the invention is generally indicated by reference numeral 30. The method 30 comprises receiving or obtaining, at block 32 by way of the processor 14, 3D point cloud data ( ^^( ^^, ^^)) pertaining to a scene proximate the vehicle V sensed by the LiDAR system 12. The method 30 comprises processing the received 3D point cloud data ( ^^( ^^, ^^)), at block 34 by way of the processor 14, to generate a representation 18 of the 3D point cloud data as illustrated in Figure 3. The representation of the 3D point cloud data may be a two-dimensional (2D) image or array of cells or pixels 18. To this end, the method 30 may comprise determining a radial distance and azimuth angle value for each data point in the received 3D point cloud; and organising each data point in the received 3D point cloud into the two-dimensional (2D) array 18 based on the determined radial distance and azimuth angle value of the respective data point. In some example embodiments, instead of the radial distances, the 2D array is arranged based on laser number of the associated LiDAR system 12 and the determined azimuth angle values. The method 30 further comprises determining a radial distance elevation estimation at block 36 by way of the processor 14. The step of block 36 may be achieved by performing a first segmentation of the data points in the 2D array 18 into initial ground and non-ground points. The first segmentation may be based on at least relationships between the data point / s of cells of the 2D array and the data point / s of adjacent cells of the 2D array. The method 30 may then comprises performing a second segmentation of the data points of the 2D array 18 to determine final ground and non-ground points, in block 38 by way of the processor 14, in a window-based fashion based on at least relationships between the initial ground points and / or non-ground points and other initial ground and / or non-ground data points contained in respective windows of the 2D array 18. In other words, the method 30 may comprise performing a second segmentation of the data points in the 2D array 18 by performing a window-based point cloud analysis on the 2D array of cells or range image 18. Alongside the range image 18, a data structure is created and stored in the memory storage device 16 for points unique features that are not captured on the range image and for easy lookup. The data structure referred to herein stores a cloud Index ^^( ^^, ^^), Point Labels , Elevation Value Distance of point to origin ^^( ^^, ^^), and Inclination angle ^^( ^^, ^^). The label, Elevation Value and cloud index are updated at the method step at block 36, or in other words REE (range elevation estimation) stage. The Elevation value, distance and inclination angle are updated at the method step at block 38, or in other words WBMF (window-based model fitting) stage. Referring now also to Figure 5 of the drawings where a block diagram of another method in accordance with an example embodiment of the invention is generally indicated by reference numeral 40. The method 40 comprises determining, at block 42 by way of the processor 14, conditions / parameters for the 2D array of cells also referred to herein as the range image 18 as illustrated in Figure 3. A typical range image 18 has a row range starting at row 0 (r0) (this represents the range / radial distance of points in point cloud) and a column range starting at column 0 (c0) (this represents the azimuth value of points in pint cloud). The row range is set to a minimum of 2 meters (this is to cut out the reflected point from the rooftop of the vehicle which is approximately 2 meters) to 70 meters (which is the approximate range of receiving accurate measurements from the LiDAR sensor e.g velodyne 32E, and 64E). The column range is between 0 and 1024 for a 32-laser beam LiDAR and between 0 and 2048 for a 64-laser beam LiDAR. This is approximated by using the rated angular resolution (horizontal / Azimuth) of the LiDAR system datasheet, which is between 0.10and 0.40. Therefore 3600 / 0.40(the worst case) gives you 900. In the present example embodiment, the method 40 makes use of a value of 2nfor a value greater than 3600 / 0.40to find the most suitable maximum column range. It will be understood that these values are not arbitrary but are determined using the rotation per minute (RPM) (which is usually between 300 and 1200RPM) and the RPS (Hz) (which is usually between 5 and 20Hz) of the LiDAR system 12. The only changing value is the total points captured per swipe which is dependent on the number of laser beams (16, 32, 64, or 128). Most LiDAR systems (also herein referred to as LiDAR / s for brevity) are set to run at maximum RPM to reduce the number of point clouds captured per minute and achieve real-time capturing of point clouds (i.e., the faster the RPM the less the number of points captured per minute but the better the ability of the LiDAR to make a 360-degree scan of the environment in real-time). So usually, the degree between each trigger of the light beam is closer to the upper range of 0.40. For higher beam numbers the azimuth maximum range is made 2048 to account for higher beams which means more points per cell. So, if the LiDAR is running at a lower RPM, then more points would be present in each cell or pixel. Also, it will be understood that the number of points per cell / pixel may be zero or more (i.e., more than one) with some cases being one. This depends on the number of points that are within the resolution for that cell (range X azimuth). The row is set from 0 to 70m on the range image, but points with range / radial distances between 0 and 2m are filtered out to cut out reflected points from the rooftop of the vehicle. Also, the resolution for the row is set to 1m per pixel. So, the 2D array is (0 - 70) by (0 - 1024) for the 32-LiDAR Sensor. The method 40 comprises obtaining or receiving the 3D point cloud data, at block 44, from the LiDAR system 12 by way of the processor 14 as described herein. The method 40 may comprise preconditioning the 3D point cloud data, at block 46 by way of the processor 14, based on radial distance boundary values. To this end, it will be understood that only points with radial distances and azimuth values within the set boundaries are used in the range image. It will be understood that the method 40 may comprise calculating azimuth values based on the quadrant which a particular data point it falls in. For a point in the point cloud and ^^( ^^, ^^)value of 0, the robot / car is stationary and therefore azimuth is 0. For a point in the point cloud of y value greater than or equal to 0 (i.e., positive), the robot / car is in a 1stor 4thquadrant as illustrated in Figure 2. For a negative ^^( ^^, ^^), the method comprises adding a radiant of 2π to allow azimuth value fit into the range image. The method 40 comprises re-organising point clouds in a 2D plurality of cells, at block 50 by way of the processor 14, by using the radial distance information of the x-y coordinates of the 3D point cloud of the LiDAR sensor and the azimuth value ( ^^) to calculate the equivalent x (i.e. the row i or the image cell) and y (i.e. the column j of the range image cell) values for the 2D representation of the point cloud. The method 40 may thus comprise determining the radial distance ^^( ^^, ^^)and azimuth angle values Ɵ^^ ^^ ^^ ^^ ^^ ^^as follows: The method may comprise re-organising the point clouds in block 50 as follows: The method 40 then comprises performing a first segmentation of the 2D array 18 or in other words determining the range elevation estimation at larger block 52, which corresponds to the block 36 of Figure 4, by estimating the elevation of each point in the 2D plurality of cells. In particular, the method 40 may comprise determining, at block 52 via the processor 14, the first elevation threshold value (^^^^ℎ) for a cell as follows. ^^^^ℎ= ^^^^ ^^ ^^ ( ^^, ^^)+ ^^^^(4) To this end, the method step in block 52 may comprise estimating a minimum elevation value ( ^^^^ ^^ ^^) for each cell according to the elevation values ^^( ^^, ^^)of points in adjacent cells in the range image, at block 54 by way of the processor 14. This may be expressed as follows: , or Elevation values ^^( ^^, ^^)are calculated using the third spatial value or coordinate of each point in the point cloud and an elevation tolerance ^^^^of 0.2 meters along the row (also called adjacent points ^^( ^^, ^^)) of the range image. It will be understood that the first row of the 2D array 18 typically has elevation values which correspond substantially to the associated third spatial values ^^( ^^, ^^)of the data points in said first row r0. The method 40 then comprises comparing, at block 56 by way of the processor 14, the third spatial value ^^( ^^, ^^)of each data point in the plurality of cells to the first elevation threshold value ( ^^^^ℎ) for the respective cell. If the third spatial value ^^( ^^, ^^)of the data point is less than the first elevation threshold value ( ^^^^ℎ) associated therewith, then the point is determined to be an initial non-ground point (and is labelled as such) and the data structure is suitably updated in the device 16, at block 58 by way of the processor 14. Else, the data point is determined to be an initial ground point (and is labelled as such) and the data structure is suitably updated in the device 16, at block 60 by way of the processor 14. Once the data points are determined or labelled as initial non-ground or initial ground points, the 2D array may be an initial segmented 2D array 18. The ground or non-ground point may be extracted from the initial segmented 2D array 18 as the case may be. It will be appreciated by those skilled in the art that the aforementioned method steps of the method 40 may be re-stated by way of pseudocode below: Algorithm 1: Coarse Segmentation (REE) Input: Raw Point Cloud Output: Labelled Point Cloud Params: 1 ^^^^: elevation tolerance 2 for each ^^( ^^, ^^)in Cloud do 8 for each ^^( ^^, ^^)in Cloud do 9 ^^( ^^, ^^)∈ ^^ ^^ ^^ ^^( ^^, ^^); 10 if ^^( ^^, ^^)≥ ^^^^ ^^ ^^ ( ^^, ^^)+ ^^^^11 ^^ ^^ ^^ ^^ ^^( ^^, ^^)= ^^ ^^ ^^_ ^^ ^^ ^^ ^^ ^^ ^^; The method 40 then comprises performing a second segmentation of the initial segmented 2D array by performing a window-based point cloud analysis on the same, at larger block 62, which corresponds to the block 38 of Figure 4. In particular, the method 40 comprises dividing the 2D array of cells 18 into smaller regions by calculating the subset region dimension. This subset is set to a ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ℎ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ℎ ^^ ^^ ^^ℎ ^^ dimension of ( 16 , 5 ). This dimension is depicted as ( ^^, ^^) which means (window row, window column). This is also referred to as the window dimension. This fixed dimension has the condition that w is less than or equals to r and r divides w without a remainder. Same applies for c and a. The foregoing may be re-stated as follows: = 0) ^^ ^^ ^^ ( ^^ ≤ ^^, ^^% ^^ = 0) (7) For each window in the plurality of windows, at block 66, the method 40 comprises using the initial ground points as candidate points i.e ^^^^, in a sliding window manner across the 2D image (this can be sliding across the rows or across the column). In particular, for each region or window, the method 40 comprises determining, at block 68 by way of the processor 14, the best seed points from initial ground points in the current window. This is selected based on the first k set number of initial ground points with the lowest elevation value ^^(^^^^, ^^)in the current window (current window is indicated as superscript i). Where k is a minimum of 5 and maximum of 20 points in the current window, i. This may be re-stated as follows: 20. (8) The method 40 comprises using the best seed points ^^^^to calculate the covariance matrix M, at block 70 by way of the processor 14. The method 40 comprises calculating the eigenvectors and eigenvalues ( ^^1, ^^2, ^^3) of the covariance matrix M using conventional covariance matrix formula for principal component analysis (PCA). The method 40 further comprises computing a plane model ^^^^. It will be understood that the method 40 comprises computing the plane model using the normal vector to plane equation as follows: ^^^^= ^^ ^^ + ^^ ^^ + ^^ ^^ + ^^ = 0. (9) The normal vector of the plane model is a, b, c as shown below: ^^^^= ( ^^, ^^, ^^) (10) The method 40 comprises adaptively computing unique spatial and geometric features of each data point in the current window using the normal vector of the plane model. This features includes distance of point from normal vector (i.e the distance of point in the current window to the plane origin or normal vector distance ^^), elevation of point reference to normal vector ( ^^( ^^, ^^)), and the angle of inclination of point reference to the normal vector. The normal vector distance ^^ is the point of origin for the current window. The new values are updated to the data structure of the point cloud therefore the (w, c) coordinates would match the (r, a) coordinate of the data structure. The features are adaptively computed by way of the following equations: ^^ = −( ^^ ^^0+ ^^ ^^0+ ^^ ^^0) (11) For points labelled initial ground points, at block 74, in the current window, the method 40 may comprise comparing the spatial and geometric features to predetermined threshold values therefor. Points that were not labelled as initial ground points are ignored, at block 76. In particular, the method 40 comprises using set thresholds, at block 80 by way of the processor 14, to filter out non-ground points from initially segmented grounds points if the calculated spatial and geometric features are greater than the set thresholds. Initial segmented points are usually over segmented and so many non-ground points are initially classified as ground points. Thresholds are set based on the common estimated values considered to be associated with ground points and they are as follows: ^^^^ℎ: A point of distance less than or equal to 3 meters is a ground point and so threshold is set to 1 meter. I.e 0 ≤ ^^^^ℎ≤ 3 ^^ ^^ ^^ ^^ ^^ ^^ ^^^^ℎ: A slope or inclination angle close to 00is considered as ground. Threshold is set to 10. I.e 00≤ ^^^^ℎ≤ 50^^^^ℎ: usually points less than 0.3 meters are considered as ground points. Threshold is set to 0.2m. I.e 0 ≤ ^^^^ℎ≤ 0.3 ^^ ^^ ^^ ^^ ^^ ^^ This aforementioned step is skipped, at block 84, if the said features are not greater than the set threshold values. The method 40 then comprises extracting the final ground points from the 2D array 18. It will be appreciated by those skilled in the art that the aforementioned method steps in larger block 62 be re-stated by way of pseudocode below: Algorithm 2: Window-based Model Fitting (WBMF). Input: REE image Output: Labelled Point Cloud Params: NOTE: ^^ ^^ ^^ ^^ ^^( ^^, ^^)0 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, 1 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^ ^^ ^^ 2 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^. 1 W: window size 2 ^^( ^^ ^^ ^^): REE image 3 ^^: Number of points per window 4 ^^^^ℎ: Slope threshold 5 W, C: windows dimension. 6 ^^^^ℎ: Distance threshold 7 ^^^^ℎ: Elevation threshold 8 ^^^^: Candidate ground points, k is the total candidate points for ^^) 15 else 16 add ^^( ^^, ^^)^^ ^^ ^^( ^^+1, ^^)Referring to Figure 6 of the drawings which shows images a group of segmented point clouds using the methodology described herein. Each Figure 6(a) to 6(c) represents a different scene with a different level of terrain complexity, wherein Figure 6(b) shows an example of the methodology described herein efficiently segmenting a slopy part of a scene. Referring to Figure 7 of the drawings, which shows a table of results of the methodology described herein tested on a sample dataset, for example, a NuScene dataset which contains LiDAR point clouds for a previously captured test drive for different driving scenarios and conditions. Those skilled in the art will appreciate that the sample dataset may be representative of 3D point cloud data contemplated herein associate with scenes and / or environments detected by suitable detection systems, which in the present example embodiment is captured by suitable LiDAR detection system. The selected scenes presented are scene numbers 0061, 0103, 0553, 0655, 0757, 0796, 0916, 1077, 1094, and 1100. The table includes segmenting speed in fps (frame per second), recall of ground points (the percentage of ground points correctly detected from the total number of ground points in the scene) and recall of non-ground points, and the mIoU (mean intersect over union) i.e., the sum of the IoU of the ground points and that of non-ground points divided by 2. IoU for ground points simply means the percentage of correct ground point detection from the total number of actual ground points in the scene and the total number of wrongly detected ground points. Referring now to Figure 8 of the drawings which shows a diagrammatic representation of machine in the example of a computer system 100 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In other example embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked example embodiment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated for convenience, the term “machine” shall also be taken to include any collection of machines, including virtual machines, that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. In any event, the example computer system 100 includes a processor 102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 104 and a static memory 106, which communicate with each other via a bus 108. The computer system 100 may further include a video display unit 110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 100 also includes an alphanumeric input device 112 (e.g., a keyboard), a user interface (UI) navigation device 114 (e.g., a mouse, or touchpad), a disk drive unit 116, a signal generation device 118 (e.g., a speaker) and a network interface device 120. The disk drive unit 16 includes a non-transitory machine-readable medium 122 storing one or more sets of instructions and data structures (e.g., software 124) embodying or utilised by any one or more of the methodologies or functions described herein. The software 124 may also reside, completely or at least partially, within the main memory 104 and / or within the processor 102 during execution thereof by the computer system 100, the main memory 104 and the processor 102 also constituting machine-readable media. The software 124 may further be transmitted or received over a network 126 via the network interface device 120 utilising any one of a number of well-known transfer protocols (e.g., HTTP). Although the machine-readable medium 122 is shown in an example embodiment to be a single medium, the term "machine-readable medium" may refer to a single medium or multiple medium (e.g., a centralized or distributed memory store, and / or associated caches and servers) that store the one or more sets of instructions. The term "machine-readable medium" may also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilised by or associated with such a set of instructions. The term "machine-readable medium" may accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals. The present invention seeks to address drawbacks of traditional 3D partitioning and tree data structures, such as the time complexity involved in sorting point clouds, the memory overhead for managing large and rapidly changing point clouds, and the potential balancing errors that may occur during point cloud sorting. This is addresses by the representation of point clouds in a 2D range image, which organizes the data in an efficient manner, making segmentation faster and easier. The present invention provides a number of improvements over traditional ground segmentation techniques. Though some traditional methods perform admirably on large flat surfaces in outdoor scenes, they struggle when faced with complex and uneven ground areas. The window-based mode fitting algorithm tends to address this issue, by adaptively setting features specific to particular regions of the range image. This enables the methodology described herein to deliver accurate ground segmentation results even in highly intricate landscapes.
Claims
Claims 1. A computer-implemented method for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the method comprises: receiving 3D point cloud data obtained from a suitable 3D detection system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determining at least one, or both, of a radial distance and azimuth angle value for each data point; organising each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on: the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and a laser number of the detection system; performing a first segmentation of the data points of the 2D array into at least initial ground and non-ground data points based on at least relationships between the data point / s of cells of the 2D array and the data point / s of adjacent cells of the 2D array; and performing a second segmentation of the initial ground and non-ground data points in a plurality of windows of cells of the 2D array into at least final ground and non-ground data points based on at least relationships between the initial ground points and / or non-ground points and other initial ground and / or non-ground data points contained in respective windows of the plurality of windows.
2. A computer-implemented method as claimed in claim 1, wherein performing the first segmentation is based on first elevation threshold values for each cell in the 2D array.
3. A computer-implemented method as claimed in claim 2, wherein the method comprises: determining a first elevation threshold value for each cell in the 2D array; and using determined first elevation threshold values to determine initial ground and non-ground data points for each cell in the 2D array to provide an initial segmented 2D array.
4. A computer-implemented method as claimed in any one of the preceding claims, wherein the method comprises segmenting the 3D point cloud data based on the determined final ground and non-ground points.
5. A computer-implemented method as claimed in any one of the preceding claims, wherein the received 3D point cloud data comprises at least spatial information associated with each data point, wherein the spatial information comprises information comprising a first spatial value, a second spatial value, and a third spatial value associated with first, second, and third axes, respectively of each data point in the received 3D point cloud.
6. A computer-implemented method as claimed in claim 5, wherein the radial distance for each data point in the received 3D point cloud is determined by calculating a square root of the sum of squared first and second spatial values.
7. A computer-implemented method as claimed in either claim 5 or 6, wherein the azimuth angle value for each data point in the received 3D point cloud is determined by calculating an arctangent of the first and second spatial values.
8. A computer-implemented method as claimed in claim 7, wherein for negative second spatial values, the method comprises adding a radiant of 2π to the determined azimuth angles.
9. A computer-implemented method as claimed in any one of the preceeding claims, wherein the 2D array comprises a plurality of cells arranged in a number of rows and columns spanning a predetermined row range or laser number of the detection system, and a column azimuth value, wherein the number of rows and columns in the 2D array is selected based on the detection system used to obtain the 3D point cloud data.
10. A computer-implemented method as claimed in any one of the preceding claims, wherein the step of organising each data point in the received 3D point cloud into the two-dimensional (2D) array of cells comprises organising / allocating a particular data point of the 3D point could data into / to a particular cell in the 2D array based on the determined radial distance and azimuth angle values, or based on the laser number of the detection system and the determined azimuth angle value.
11. A computer-implemented method as claimed in any one of the preceding claims, wherein the method includes maintaining or storing a data structure for each point in the cells in a suitable memory device, wherein the data structure comprises features associated with the data point.
12. A computer-implemented method as claimed in claim 5 when dependent on claim 3, wherein the first elevation threshold value for each cell in the 2D array iscalculated as a sum of a minimum elevation value of each cell and an elevation tolerance value.
13. A computer-implemented method as claimed in claim 12, wherein the minimum elevation value of each cell is determined by: determining an elevation value of each data point in the 2D array based on the third spatial value of the respective data point associated with the cell, or the determined elevation value / s of data point / s in adjacent cells; and determining a minimum of an elevation value of a particular cell and an elevation value of a cell in a preceding row and same column as the particular cell.
14. A computer-implemented method as claimed in claim 13, wherein determining an elevation value of each data point in the 2D array comprises setting each cell of the first row of the 2D array to have an elevation value equal to the third spatial value of the respective data point associated with the cell.
15. A computer-implemented method as claimed in claim 14, wherein an elevation value of a subsequent cell in the remaining rows of the 2D array is calculated as a sum of an elevation value of a cell in a preceding row and same column as the subsequent cell, and an elevation tolerance value.
16. A computer-implemented method as claimed in any one of claims 12 to 15, wherein for each cell in the 2D array, the method comprises: comparing the third spatial value of the respective data point associated with the cell with the first elevation threshold associated with the cell; anddetermining that the respective data point associated with the cell is a ground point if the third spatial value of the data point is less than the first elevation threshold associated with the cell, else the respective data point is determined to be a non-ground point.
17. A computer-implemented method as claimed in any one of the preceding claims, wherein the method comprises processing the 2D array in a window-by- window basis fashion that all cells in the 2D array are processed, wherein the 2D array or image is divided into smaller regions or windows of predetermined dimensions, and wherein the spatial and geometric features of all data points in a current window are recalculated based on the spatial and geometric features of the current window as a whole.
18. A computer-implemented method as claimed in any one of the preceding claims, wherein the method comprises selecting seed data points for each window in the 2D array, wherein data seed points are selected from initial ground data points in a current window.
19. A computer-implemented method as claimed in claim 5, wherein the method comprises recalculating spatial and geometric features for all data points in a current window to conform to a calculated surface normal of that particular window.
20. A computer-implemented method as claimed in claim 19, wherein the method comprises determining whether or not the recalculated spatial and geometric features / values of each data point in the current window that was initially classified as ground point falls within predetermined set thresholds and / or ranges so as to filter out non-ground points from initially determined ground points / initially segmented ground points.
21. A computer-implemented method as claimed in claim 20, wherein the method comprises segmenting final ground points and final non-ground points from each window in the 2D array.
22. A computer-implemented method as claimed in any one of the preceding claims, wherein the suitable 3D detection system is selected from a group comprising a radar system, and a Light Detection and Ranging (LiDAR) system.
23. A system for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the system comprises: a memory storage device; and one or more processors communicatively coupled to the memory storage device, wherein the one or more processors are configured to perform any one of the method steps 1 to 21.
24. A vehicle comprising a system as claimed in claim 23.
25. A method for processing three-dimensional (3D) point cloud data comprising a plurality of data points, wherein the method comprises: receiving 3D point cloud data obtained from a suitable detection system, wherein the 3D point cloud data comprises a plurality of data points pertaining to a scene; determining at least one, or both, of a radial distance and an azimuth angle value for each data point in the received 3D point cloud; organising each data point in the received 3D point cloud into a two- dimensional (2D) array of cells based on:the determined radial distance and the determined azimuth angle value of the respective data point; or the determined azimuth angle value of the respective data point and a laser number of the detection system; determining a first elevation threshold value for each cell in the 2D array; using the determined first elevation threshold values to determine initial ground and non-ground data points for each cell in the 2D array to provide an initial segmented 2D array; and performing a window-based model fitting on the initial segmented 2D array to determine final ground and non-ground data points for each cell in the 2D array.
Citation Information
Patent Citations
Road surface pit detection method, device and equipment and storage medium
CN115424228A
Method and system for ground segmentation using graphic cutting
CN116710961A
Method and apparatus for detecting ground point cloud points
EP3798974A1
Segmentation of ground-based laser scanning points from urban environment
US20130218472A1
Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US20230049567A1
Cited By
Automatic ground point filtering method for laser radar point cloud
CN120707776A
Karst landform three-dimensional visualization method based on digital country
CN121544466A
Battery weld mark defect detection method and device based on 3D point cloud segmentation and medium
CN121904081A