Method, device and computer program for processing a point cloud
By employing a machine learning model to preprocess point clouds, the method effectively reduces the number of points to be processed, addressing inefficiencies in existing technologies and enhancing processing speed and accuracy.
Patent Information
- Application Number
- DE102023210940
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-03
- Publication Date
- 2025-05-08
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing point cloud processing methods are inefficient due to the large number of points, which includes noise and redundant data, leading to increased computing effort and reduced processing speed.
A machine learning model, specifically an artificial neuronal network, is used for automatic pre-processing of point clouds to reduce complexity by removing irrelevant points and generating a characteristic vector embedding that represents essential features, thereby reducing the number of points to be processed.
This approach significantly reduces the number of points to be processed, leading to faster data processing, reduced memory requirements, and improved accuracy without affecting the quality of the point cloud data.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical area
[0001] The invention relates to a method, a device and a computer program for processing a point cloud. background
[0002] With the increasing development of 3D sensor technology, point clouds have become a popular tool in robotics and autonomous driving. While many approaches have been proposed in recent years for using deep neural networks to process point clouds, these have mainly focused on surface representation, classification, and segmentation. Such point clouds usually contain more points than are necessary for subsequent processing. This is because they contain noise due to measurement inaccuracies and some objects are represented by a large number of points, not all of which are necessary for subsequent processing. The large number of points increases the computational complexity of subsequent processing of the point clouds.
[0003] There is a need for an improved concept for processing point clouds. Summary
[0004] This need is remedied by the subject matter of the independent claims.
[0005] The present invention is based on the finding that automatic preprocessing of the point cloud by a machine learning model, and in particular an artificial neural network, can be used to reduce the complexity of the point cloud. On the one hand, such a machine learning model can be used to remove points that do not belong to an object of interest. On the other hand, the point cloud can be reduced to its essentials by generating a feature vector embedding that represents only the essential features of the respective objects. The former can be achieved by a classifier, while the latter can be achieved by a machine learning model trained to output a latent feature vector embedding.
[0006] A first aspect of the present invention relates to a method for processing a point cloud. The method comprises obtaining point cloud data, wherein the point cloud data represents a plurality of points of a point cloud. The method comprises processing the point cloud data using a machine learning model. An output of the machine learning model indicates for the points of the point cloud whether the respective point is to be selected for a true subset of points of the point cloud. The method comprises creating the subset of points based on the output of the machine learning model. The method comprises processing the subset of points using an algorithm. By reducing the point cloud data to the subset of points, the number of points to be considered can be reduced, thus reducing the computational effort of subsequent processing.
[0007] For example, the machine learning model can be trained using supervised learning. This allows for comparatively simple training of the machine learning model, provided suitable training data is available.
[0008] For example, the machine learning model can be trained to classify each point as belonging to an object or not. This allows points that do not belong to an object to be omitted.
[0009] For example, to classify a point, the machine learning model can receive the coordinates of the point and the coordinates of a limited number of points in the vicinity of the point as input. The machine learning model can be trained to classify the point based on the coordinates of the point and the points in the vicinity of the point. This allows the number of points considered simultaneously to be limited to an upper limit, making the machine learning model less complex. Furthermore, parallel processing is enabled or supported.
[0010] Processing the point cloud data may involve simultaneously running multiple instances of the machine learning model to perform parallel classification of multiple points. This can reduce preprocessing latency.
[0011] In some examples, the machine learning model can be trained to output a latent feature vector embedding based on the point cloud data. The latent feature vector embedding represents the points of the subset of points. A latent feature vector embedding can help exclude irrelevant points.
[0012] For example, the machine learning model can be an artificial neural network. Artificial neural networks have a wide range of applications, particularly as classifiers or for outputting an embedding.
[0013] For example, the machine learning model can be trained to classify one or more points as outliers and to omit the one or more points classified as outliers from the subset. Alternatively or additionally, the machine learning model can be trained to classify one or more points as noise and to omit the one or more points classified as noise from the subset. Points that do not belong to an object can either be caused by noise or they can be outliers belonging to objects that are not relevant for subsequent processing.
[0014] For example, processing the subset of points may include locating or detecting one or more objects. These processing operations are particularly relevant in robotics and the field of autonomous driving. In particular, processing the subset of points may include locating or detecting one or more objects, such as vehicles, pedestrians, and road infrastructure, for autonomous driving of a vehicle.
[0015] Alternatively or additionally, processing the subset of points can include classifying the point cloud. Point cloud classification is also highly relevant in many applications, such as robotics, plant monitoring, or autonomous driving.
[0016] A further aspect of the present invention relates to a program having a program code for performing the method when the program code is executed on a computer, a processor, a control module or a programmable hardware component.
[0017] Another aspect of the present invention relates to a device comprising a memory, machine-readable instructions, and at least one processor circuit for executing the machine-readable instructions to carry out the method. Short character description
[0018] Some examples of devices and / or methods are explained in more detail below with reference to the accompanying figures. They show: Fig. 1a shows a flowchart of a method for processing a point cloud; Fig. Figure 1b shows a schematic diagram of an apparatus for processing a point cloud; Fig. 2a to 2c show an example of a procedure for creating a sparse point cloud embedding; and Fig. Figures 3a to 3d show examples of an evaluation of the proposed method. Description
[0019] Some examples will now be described in more detail with reference to the accompanying figures. However, other possible examples are not limited to the features of these detailed embodiments. These may include modifications of the features, as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe specific examples is not intended to be limiting of other possible examples.
[0020] Throughout the description of the figures, identical or similar reference numerals refer to identical or similar elements or features, which may be implemented identically or in a modified form while providing the same or a similar function. Furthermore, the thickness of lines, layers, and / or regions in the figures may be exaggerated for clarity.
[0021] When two elements A and B are combined using "or," this is to be understood as disclosing all possible combinations, i.e., only A, only B, and both A and B, unless explicitly defined otherwise in the individual case. Alternative wording for the same combinations may be "at least one of A and B" or "A and / or B." This applies equivalently to combinations of more than two elements.
[0022] If a singular form is used, such as "a," "an," and "the," and the use of only a single element is neither explicitly nor implicitly defined as mandatory, further examples may also use multiple elements to implement the same function. If a function is described below as being implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity.It is further understood that the terms "comprises", "comprising", "has" and / or "having" when used herein describe the presence of the specified features, integers, steps, operations, processes, elements, components and / or a group thereof, but do not preclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and / or a group thereof.
[0023] The present invention relates to sparse point cloud embedding.
[0024] While many approaches to using deep neural networks for point cloud processing have been proposed in recent years, these have primarily focused on surface rendering, classification, and segmentation. In contrast, our approach is to use a neural network to reduce the number of data points in a given point cloud, resulting in increased sparsity and faster data processing (runtime optimization) without compromising accuracy. This contrasts with common modern approaches to point cloud downsampling, which rely on nearest-neighbor algorithms.
[0025] Fig. 1a shows a flowchart of a method for processing a point cloud. The method comprises obtaining 110 point cloud data, wherein the point cloud data represents a plurality of points of a point cloud. The method comprises processing 120 the point cloud data using a machine learning model. An output of the machine learning model indicates for the points of the point cloud whether the respective point is to be selected for a true subset of points of the point cloud. The method comprises creating 130 the subset of points based on the output of the machine learning model. The method comprises processing 140 the subset of points using an algorithm. For example, the method can be executed by a computer system or a control unit, such as the device 10, which in Fig. 1b is shown.
[0026] Fig. 1b shows a schematic diagram of a corresponding device 10 for processing the point cloud. The device 10 comprises an (optional) interface 12, a processor circuit 14, and a memory 16, wherein the processor circuit 14 is coupled to the optional interface 12 and the memory. The device 10 further comprises machine-readable instructions, such as program code or a compiled computer program. These can be stored, for example, in the memory 16. The processor circuit 14 is configured to execute the machine-readable instructions for carrying out the method of Fig. 1a. For example, the device can be used in a robot or in an (autonomous) vehicle. Accordingly, the present invention also relates to an (autonomous) vehicle or a robot with the device 10.
[0027] The present invention relates to a method, a device, and a computer program for processing a point cloud, with a focus on preprocessing the point cloud data. The goal is to reduce the number of points that are subsequently processed by removing outliers, noise, and / or redundant points.
[0028] This method begins with point cloud data. A point cloud is a collection of points in three-dimensional space. These points typically represent the positions or coordinates of object points or features in a so-called scene, which corresponds to the recorded and measured space. A point cloud can be created using various technologies such as 3D scanners, lidar, or photogrammetry. By processing and analyzing point clouds, information about the shape, structure, and geometry of an object or environment can be extracted.
[0029] In this case, the point cloud is obtained as point cloud data. The point cloud data is a representation of the point cloud, such as a collection of coordinates that specify the positions of the points in the point cloud in a coordinate system. As previously stated, the points in the point cloud are collected, for example, by a measurement from a 3D scanner, time-of-flight sensor, lidar scanner, etc., and are subsequently preprocessed and then processed by the algorithm.
[0030] Preprocessing is largely based on the machine learning model. A brief introduction to machine learning is provided below.
[0031] Machine learning refers to algorithms and statistical models that computer systems can use to perform a specific task without using explicit instructions, instead of relying on models and inference. For example, instead of a rule-based transformation of data, machine learning can use a transformation of data that can be derived from an analysis of historical and / or training data. For example, the content of images can be analyzed using a machine learning model or using a machine learning algorithm. In order for the machine learning model to analyze the content of an image, the machine learning model can be trained using training images as input and training content information as output. By training the machine learning model with a large number of training images and / or training sequences (e.g.Using information (e.g., words or sentences) and associated training content information (e.g., labels or annotations), the machine learning model "learns" to recognize the content of the images, so that the content of images not included in the training data can be recognized using the machine learning model. The same principle can be used for other types of sensor data as well: By training a machine learning model using training sensor data and a desired output, the machine learning model "learns" a conversion between the sensor data and the output, which can be used to provide an output based on non-training sensor data provided to the machine learning model. The provided data (e.g., sensor data, metadata, and / or image data) can be preprocessed to obtain a feature vector, which is used as input for the machine learning model.
[0032] Machine learning models can be trained using training input data. The examples above use a training method called "supervised learning." In supervised learning, the machine learning model is trained using a plurality of training samples, where each sample can include a plurality of input data values and a plurality of desired output values, i.e., each training sample is associated with a desired output value. By specifying both training samples and desired output values, the machine learning model "learns" which output value to provide based on an input sample that is similar to the samples provided during training. In addition to supervised learning, semi-supervised learning can also be used.In semi-supervised learning, some of the training samples lack a desired output value.
[0033] Supervised learning is generally based on a supervised learning algorithm (e.g., a classification algorithm, a regression algorithm, or a similarity learning algorithm). Classification algorithms can be used when the outputs are restricted to a limited set of values (categorical variables), meaning the input is classified as one of the limited set of values. Regression algorithms can be used when the outputs indicate any numerical value (within a range). Similarity learning algorithms can be similar to both classification and regression algorithms, but are based on learning from examples using a similarity function that measures how similar or related two objects are.
[0034] In addition to supervised learning or semi-supervised learning, unsupervised learning can be used to train the machine learning model. In unsupervised learning, (only) input data may be provided, and an unsupervised learning algorithm can be used to find structure in the input data (e.g., by grouping or clustering the input data, finding commonalities in the data). Clustering is the assignment of input data, which includes a plurality of input values, into subsets (clusters) such that input values within the same cluster are similar according to one or more (predefined) similarity criteria, while they are dissimilar to input values included in other clusters.
[0035] Reinforcement learning is a third group of machine learning algorithms. In other words, reinforcement learning can be used to train the machine learning model. In reinforcement learning, one or more software agents are trained to perform actions in an environment. A reward is calculated based on the actions performed. Reinforcement learning is based on training the one or more software agents to select actions in such a way that the cumulative reward is increased, resulting in software agents that become better at the task given to them (as evidenced by increasing rewards).
[0036] Machine learning algorithms are typically based on a machine learning model. In other words, the term "machine learning algorithm" may refer to a set of instructions that can be used to create, train, or use a machine learning model. The term "machine learning model" may refer to a data structure and / or a set of rules that represents the learned knowledge (e.g., based on the training performed by the machine learning algorithm). In embodiments, the use of a machine learning algorithm may imply the use of an underlying machine learning model (or a plurality of underlying machine learning models). The use of a machine learning model may imply that the machine learning model and / or the data structure / set of rules that is / are the machine learning model is trained by a machine learning algorithm.
[0037] For example, the machine learning model can be an artificial neural network (ANN). ANNs are systems inspired by biological neural networks, such as those found in a retina or brain. ANNs comprise a plurality of interconnected nodes and a plurality of connections, called edges, between the nodes. There are typically three types of nodes: input nodes that receive input values, hidden nodes that are connected (only) to other nodes, and output nodes that provide output values. Each node can represent an artificial neuron. Each edge can send information from one node to another. The output of a node can be defined as a (nonlinear) function of the inputs (e.g., the sum of its inputs). The inputs of a node can be used in the function based on a "weight" of the edge or the node providing the input.The weight of nodes and / or edges can be adjusted during the learning process. In other words, training an artificial neural network can involve adjusting the weights of the nodes and / or edges of the artificial neural network, i.e., to achieve a desired output for a specific input. If one or more layers of hidden nodes are present, then it is also referred to as a deep neural network. The machine learning model used here can be an artificial neural network, and in particular, a deep neural network.
[0038] In this case, the machine learning model is used to select which points in the point cloud are relevant for subsequent processing. One or both of the approaches proposed below can be used for this purpose.
[0039] In a first approach, the machine learning model is trained as a classifier, i.e. the machine learning model is trained to perform a classification. In particular, the machine learning model is trained to classify each point as to whether the point belongs to an object or not. To do this, the machine learning model can be trained to output an output for each point in a point cloud as to whether the point belongs to an object or not. While it is possible to train a machine learning model to perform this classification for the entire point cloud at once, this requires a corresponding model with a large number of input nodes, a large number of output nodes, and corresponding processing nodes in the middle, which is not very efficient. Therefore, for example, the machine learning model can be trained to perform this classification separately for each point in the point cloud.To provide sufficient context for classification, not only the coordinates of the respective point are taken into account, but also the coordinates of several points in the vicinity of the point. For example, to classify a point, the machine learning model can receive coordinates of the point and coordinates of a limited number of points in the vicinity of the point as input. For example, the coordinates of the point and the coordinates of a fixed number (or a maximum of a fixed number) of points (e.g., up to 10 points, up to 20 points, up to 30 points) in the vicinity of the point can be used as input data for the machine learning model. For example, Euclidean distance can be used to select the points in the vicinity of the point. The machine learning model is then trained to classify the point based on the coordinates of the point and the points in the vicinity of the point.Training can be performed using supervised learning, where, for each training iteration, the coordinates of a point and the points surrounding the point are used as training input values, and the corresponding desired classification is used as the desired output value. The machine learning model can be trained on those objects (e.g., one or more objects) that are of interest for subsequent processing. Training can be repeated iteratively, combined with pruning the point cloud to remove points deemed not to belong to an object.
[0040] It is clear that with this approach, each point is classified individually. While this can be done sequentially, this approach also offers the possibility of parallelizing the classification by using a less complex machine learning model. For example, processing the point cloud data can involve simultaneously running multiple instances of the machine learning model to perform parallel classification of multiple points. Depending on the available hardware resources, the number of instances can be adjusted to the number of points in the point cloud in order to classify all points in the shortest possible time.
[0041] Classification is used in this first approach to select which points are included in the proper subset of points. A proper subset is a subset of a set (i.e., the point cloud) that is missing at least one element (i.e., a point) that is contained in the parent set. In other words, every proper subset is a subset, but not the entire set itself. If the classification indicates that a point belongs to an object, the point is included in the subset; if not, the point is discarded.
[0042] Alternatively or additionally, the technique of latent feature vector embedding can be used. Latent feature vector embedding is a machine learning method in which features are embedded into a latent space using a data-driven approach (creating a so-called embedding). Properties or characteristics of the data are represented by a vector located in a low-dimensional space. Latent feature vector embedding enables complex data structures to be modeled and analyzed effectively. By embedding features into a latent space, patterns and relationships between data points can be better recognized and interpreted.
[0043] In this case, embedding in the low-dimensional space allows the point cloud to be reduced to its essentials – points that are not relevant for subsequent processing are omitted from the low-dimensional space, which automatically means that only a subset of actually relevant points are represented by the feature vector. In other words, the machine learning model is trained to output a latent feature vector embedding based on the point cloud data, with the latent feature vector embedding representing the points of the subset of points. Supervised learning can also be used to train such a model. For example, unsupervised learning or self-supervised learning can first be used to train the machine learning model to generate point cloud embeddings that can be used by the subsequent algorithm.Alternatively, a pre-trained machine learning model can be used for this purpose. The machine learning model can then be trained to generate embeddings from a plurality of point clouds containing only points relevant for subsequent processing. Additional points can then be added to these point clouds (such as noise or outliers), and the modified point clouds can be used as training input data. The embeddings of the point clouds before the addition of the additional points can, however, be used as the desired output values. Using supervised learning, the machine learning model can now be trained to "ignore" the added points and thus arrive at embeddings based on the unmodified point clouds.
[0044] In both cases, the output of the machine learning model for the points in the point cloud indicates whether the respective point should be selected for a true subset of points in the point cloud – in the case of using a classifier, this is specified by the respective classification; in the case of the output of a latent feature vector embedding, the vector represents (only) those points that are relevant for subsequent processing. In both cases, the machine learning models are trained to classify one or more points as outliers or noise, and to omit the one or more points classified as outliers or noise from the subset. The subset of points corresponds, for example, to a point cloud or point cloud data that exclusively contains the points of the subset, or to the generated embedding.
[0045] The subset of points is then processed using an algorithm. For example, processing the subset of points may include locating or detecting one or more objects. In other words, the algorithm may be a localization algorithm or an object detection algorithm. For example, the algorithm may be based on another machine learning model trained to perform object detection or object localization. In particular, processing the subset of points may include locating or detecting one or more objects, such as vehicles, pedestrians, and road infrastructure, for autonomous driving of a vehicle or autonomous operation of a robot. Accordingly, the method may include controlling a vehicle or a robot based on a result of the algorithm.
[0046] Alternatively or additionally, processing the subset of points may include classifying the point cloud, for example with regard to a traffic situation.
[0047] The interface 12 may, for example, correspond to one or more inputs and / or one or more outputs for receiving and / or transmitting information, such as in digital bit values, based on a code, within a module, between modules, or between modules of different entities.
[0048] In exemplary embodiments, the processor circuit 14 can correspond to any controller or processor or a programmable hardware component. For example, the processor circuit 14 can also be implemented as software programmed for a corresponding hardware component. In this respect, the processor circuit 14 can be implemented as programmable hardware with appropriately adapted software. Any processors, such as digital signal processors (DSPs), can be used. Exemplary embodiments are not limited to a specific type of processor. Any processor or even multiple processors are conceivable for implementation.For example, the processor circuit 14 may correspond to at least one of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an accelerator for performing machine learning, and a Field-Programmable Gate Array (FPGA).
[0049] The memory 16 may, for example, comprise at least one member of the group of computer-readable storage medium, magnetic storage medium, optical storage medium, hard disk, flash memory, floppy disk, random access memory (also known as random access memory), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electronically erasable programmable read-only memory (EEPROM), and network storage.
[0050] More details and aspects of the procedure from Fig. 1a, the device 10 of Fig. 1b and the corresponding computer program are mentioned in connection with the concept or examples that are given later (e.g. Fig. 2a to 3d). The method, apparatus, and computer program may comprise one or more additional optional features corresponding to one or more aspects of the proposed concept or the described examples, as described previously or subsequently.
[0051] Some examples of the present disclosure are based on training a binary classifier or a latent feature vector embedding on points with a positive classification (c=1) and points with a negative classification (c=0). Thus, the classifier essentially learns to predict, for a given coordinate point, whether it belongs to an object or not. This prediction can then be used for other (classical) pruning approaches or additional functionalities.
[0052] Fig. Figures 2a to 2c show an example of a procedure for creating a sparse point cloud embedding. Fig. Figure 2a shows a dense point cloud with 3D bounding box object labels c=1, meaning the points are positively classified. These represent the input data. Subsequently, as in Fig. 2b, a binary classifier is trained with the input data x (points in the environment by distance or quantity) and a prediction task (point is part of an object: c=1 or not: c=0). Then, as shown in Fig. As shown in Figure 2c, the point cloud is pruned. The training and pruning can be repeated iteratively.
[0053] This is typically followed by a block with the following operations that guides the approach and its pipeline: (1) binary classification of “object membership”, (2) point cloud clipping and point cloud embedding, and (3) iterative repetition of both operations until convergence.
[0054] For binary classification of object membership, a binary classifier or a latent feature vector embedding can be trained on points with a class (c=1) and points without a class (c=0). The classifier is trained using supervised learning techniques and an iterative training process. The input is the point in question and a concatenated set of (n) neighboring points.
[0055] Subsequently, point cloud clipping and point cloud embedding are performed for outlier removal and implicit runtime optimization. After the classifier is trained, it is applied to each data point to determine whether it belongs to an object or not. Points that are not part of an object can be clipped using various methods. Furthermore, the point-wise predictions can be used to characterize point cloud points and form the basis for a variety of features based on point cloud embeddings. The binary classification of "object membership" can be retrained on the clipped data to infer whether a point belongs to a class or not.
[0056] The presented technique can be used to process point cloud data faster with less memory, to visualize point cloud data faster, and to reduce noise in point cloud data (by detecting outliers and anomalies).
[0057] The proposed approach provides a method for efficiently reducing the number of point cloud data points while maintaining good quality in the sparse point cloud. Unlike other approaches, it uses a neural network capable of generating point cloud embeddings. This approach enables faster processing and visualization of point clouds. It can also be used to improve the data quality of noisy point cloud data and enables characterization of points in a point cloud through feature embedding.
[0058] To demonstrate the concept of intelligent point cloud clipping to achieve point cloud parsimony, an evaluation of the technique is carried out using the publicly available Bunny point cloud network from Open3D. Fig. 3a to 3d show examples of an evaluation of the proposed method. In Fig. 3a shows a visualization of the object. The points of the Fig. 3a are considered as positive classification points in this scenario. In addition, the Fig. 3b, which are considered negative classification points. In the evaluation, a training / validation ratio of 80% / 20% was used to train the object membership classification model.
[0059] After overlaying the object data with the noise (see Fig. 3c) the trained model is able to predict the point membership based on 5 neighboring points. Subsequently, points that do not belong to the object class are removed. The result is shown in Fig. 3d shown.
[0060] The result is an intelligent point cloud sparse embedding that leads to a sparse object point cloud, with a 50% reduction of points in this case, which can be directly translated into runtime optimization and anomaly / denoising. The evaluation resulted in a validation accuracy of the example implementation of 92.5%, with 11 false positives and 5 false negatives—a demonstration of the power of the present invention.
[0061] The aspects and features described in connection with a particular one of the previous examples may also be combined with one or more of the further examples to replace an identical or similar feature of that further example or to additionally introduce the feature into the further example.
[0062] Examples may further be or relate to a (computer) program with program code for carrying out one or more of the above methods when the program is executed on a computer, a processor, or other programmable hardware component. Steps, operations, or processes of various of the methods described above may therefore also be carried out by programmed computers, processors, or other programmable hardware components. Examples may also cover program storage devices, e.g., digital data storage media, that are machine-, processor-, or computer-readable and encode or contain machine-executable, processor-executable, or computer-executable programs and instructions. The program storage devices may, for example,Digital storage, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media. Further examples may also include computers, processors, control units, field-programmable logic arrays ((F)PLAs = (Field) Programmable Logic Arrays), field-programmable gate arrays ((F)PGA = (Field) Programmable Gate Arrays), graphics processor units (GPU = Graphics Processor Unit), application-specific integrated circuits (ASIC = application-specific integrated circuit), integrated circuits (IC = Integrated Circuit), or system-on-a-chip (SoC) programmed to perform the steps of the methods described above.
[0063] It is further understood that the disclosure of multiple steps, processes, operations, or functions disclosed in the description or claims should not be construed as necessarily being in the described order, unless explicitly stated in the individual case or absolutely necessary for technical reasons. Therefore, the foregoing description does not limit the performance of multiple steps or functions to any particular order. Furthermore, in further examples, a single step, function, process, or operation may include and / or be broken down into multiple sub-steps, functions, processes, or operations.
[0064] If some aspects in the preceding sections were described in connection with a device or system, these aspects are also to be understood as a description of the corresponding method. For example, a block, device, or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method. Accordingly, aspects described in connection with a method are also to be understood as a description of a corresponding block, element, property, or functional feature of a corresponding device or system.
[0065] The following claims are hereby incorporated into the Detailed Description, each claim being understood to stand on its own as a separate example. It should also be noted that although a dependent claim in the claims refers to a particular combination with one or more other claims, other examples may include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are hereby explicitly contemplated unless it is specifically stated that a particular combination is not intended. Furthermore, features of a claim for any other independent claim are also intended to be included, even if that claim is not directly defined as dependent on that other independent claim.
Claims
[1] A method for processing a point cloud, the method comprising: Obtaining (110) point cloud data, wherein the point cloud data represents a plurality of points of a point cloud; Processing (120) the point cloud data by means of a machine learning model, wherein an output of the machine learning model for the points of the point cloud indicates whether the respective point is to be selected for a true subset of points of the point cloud; Creating (130) the subset of points based on the output of the machine learning model; and Processing (140) the subset of points using an algorithm. [2] The method according to claim 1, wherein the machine learning model is trained by supervised learning. [3] The method according to one of claims 1 or 2, wherein the machine learning model is trained to classify for the respective points whether the point belongs to an object or not. [4] The method according to claim 3, wherein the machine learning model for classifying a point receives coordinates of the point and coordinates of a limited plurality of points in a vicinity of the point as input and is trained to classify the point based on the coordinates of the point and the points in the vicinity of the point. [5] The method according to any one of claims 1 to 4, wherein processing the point cloud data comprises simultaneously operating a plurality of instances of the machine learning model to perform parallel classification of multiple points. [6] The method according to any one of claims 1 or 2, wherein the machine learning model is trained to output a latent feature vector embedding from the point cloud data, the latent feature vector embedding representing the points of the subset of points. [7] The method according to any one of claims 1 to 6, wherein the machine learning model is trained to classify one or more points as outliers or noise, and to omit the one or more points classified as outliers or noise from the subset. [8] The method according to any one of claims 1 to 7, wherein processing the subset of points comprises locating or detecting one or more objects. [9] A program comprising program code for carrying out the method according to any one of the preceding claims when the program code is executed on a computer, a processor, a control module or a programmable hardware component. [10] A device (10) comprising a memory (16), machine-readable instructions, and at least one processor circuit (14) for executing the machine-readable instructions for carrying out the method according to one of claims 1 to 8.