Semantic segmentation of point clouds using confidence-based adaptive feature aggregation and 3D neighborhood feature augmentation
Patent Information
- Application Number
- PCT/CN2023/096477
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-05-26
- Publication Date
- 2024-12-05
Smart Images

Figure CN2023096477_05122024_PF_FP_ABST
Abstract
Description
SEMANTIC SEGMENTATION OF POINT CLOUDS USING CONFIDENCE-BASED ADAPTIVE FEATURE AGGREGATION AND 3D NEIGHBORHOOD FEATURE AUGMENTATION
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This is the first application filed for the present technology.FIELD
[0003] The present technology relates to semantic segmentation, and more particularly to computer-implemented methods for performing three-dimensional and two-dimensional semantic segmentations.BACKGROUND
[0004] LiDAR sensors receive information from the surrounding 3D scene in the form of 3D point clouds, where each point has respective coordinates (e.g., “xyz” coordinates) with respect to the sensor, and a remission value (e.g., return strength of a laser beam) . Existing LiDAR 3D point cloud semantic segmentation methods, receive 3D point cloud information as input and output their corresponding predicted semantic labels. Semantic segmentation methods can be categorized based on the form of the input data that fed to models.
[0005] Point-based methods process the unstructured 3D point clouds. For example, a “PointNet” architecture is a Multi-Layered Perceptron (MLP) used to approximate a permutation-invariant set function. In another example, a “PointNet++” architecture is an improved PointNet architecture that exploits local and global sampling at different scales for extraction of relevant features. In another example, a “KPConv” architecture proposes point-wise convolution to extract local features of point clouds. It should be noted that these methods are ill-suited for processing 3D point clouds representative of outdoor scenes, as they require considerable memory resources and are computationally expensive especially when local neighborhood searching process is involved.
[0006] Voxel-based methods divide the 3D scene into volumetric grids known as “voxels” , extract features from the points sampled inside each cell and process the quantized 3D scene. It should be noted that 3D voxelization with uniform cubic voxel grids neglects the varying point density and sparsity of 3D point clouds representative of outdoor scenes. In order to address the varying point density and sparsity, some methods can partition the scene using cylinders and employ an asymmetrical 3D Convolutional Neural Network (CNN) to process the voxels. In voxel-based segmentation methods, high-resolution voxel grids result in comparatively accurate segmentation results, while reduction in resolution considerably reduces the segmentation accuracy due to lossy cell-label encoding. However, the voxel-based methods with high-resolution voxel-grids are computationally expensive and consume significant amount of memory. It should be noted that voxel-based methods are therefore ill-suited for real-time applications.
[0007] Projection-based methods project the 3D point clouds onto 2D planes through either Range View (RV) projections, Bird’s Eye View (BEV) projections, or both. In RV-based (spherical) projection methods, every point’s zenith and azimuth are calculated and used to find the correct coordinate on the RV image that is being mapped. In BEV-based projection methods, the ground plane is converted to a 2D grid (top view) using either cartesian coordinate or polar coordinate systems. As the methods in projection-based approach have a more compact data representation and can leverage 2D CNN or other light models to process the 2D projected data (e.g., RV image or BEV image) , projection-based methods are usually more efficient and appropriate for real-time purposes than the point-based and voxel-based methods, for example.
[0008] There is therefore a desire to ameliorate conventional RV-based projection-based methods.SUMMARY
[0009] Developers have devised methods and devices for overcoming at least some drawbacks present in prior art solutions.
[0010] In one aspect, the present technology aims at improving performances of perception systems. More specifically, the present technology aims to improve projection-based LiDAR 3D point cloud semantic segmentation. It should be noted that one of the common ways to estimate performances of semantic segmentation is to calculate a corresponding mean Intersection over Union (mIOU) value, which is calculated as follows:
[0011] where TPc, FPc, FNc are the number of true positive, false positive and false negative points for a given semantic class c, respectively.
[0012] Developers of the present technology have realized that conventional point refinement modules do not extract 3D neighborhood-aware information for each point feature and / or are computationally expensive. Some conventional LiDAR 3D point cloud semantic segmentation methods adopt projection-based methods for computational and memory efficiency, . These methods project 3D point cloud into a 2D image (either RV or BEV) . Then, these images are processed using a 2D model, such as fully-convolutional network (FCN) , for example. As a total number of 3D points is very large and the image resolution is limited, the number of projected points in each pixel can be considerably high. During the training, these models are trained in a supervised manner on a 2D image that includes only projected points. However, it should be noted that the semantic labels of every single 3D point is required (not only semantic labels of the projected points) . The image resolution of the 2D image to which the 3D points get projected can be increased to incorporate a larger number of points. However. incorporating all the points is not practical in terms of memory requirements and computation complexity.
[0013] In the context of the present technology, developers have devised a computer-implemented module that can be coupled to a projection-based (RV-or BEV-based) LiDAR 3D point cloud semantic segmentation model for improving segmentation accuracy and reducing a gap between the 2D and 3D mIOU. It is contemplated that this module leverages the 2D estimated semantics, features and raw point clouds geometries for 2D feature aggregation and 3D point feature augmentation.
[0014] In at least some embodiments, there is provided a Semantic-Range-Remission Feature Aggregation (SR2FA) module. It should be noted that a feature aggregation step may help obtaining richer features by considering the surrounding semantic and geometrical information for each projected location on the 2D image before re-projection of features to 3D space. Developers have realized that the feature aggregation step addresses the fixed grid structure of the 2D convolutional layer in which the filter is static. In some embodiments, a dynamic kernel is used around each target pixel and considers estimated information (semantics) and sensed information from the LiDAR sensor (Range-Remission) for neighbor selection.
[0015] In at least some other embodiments, there is provided a 3D Neighborhood-aware Feature Augmentation (3D-NAFA) module. It should be noted that re-projection of features calculated on the 2D image plane to 3D lacks 3D neighborhood information, as 2D projection changes and abandons the 3D topology and geometric relations. The 3D-NAFA module may be used for employing a coarse-to-fine 3D neighborhood-aware feature augmentation strategy to improve the quality of the point features.
[0016] In a first broad aspect of the present technology, there is provided a computer-implemented method for performing a two-dimensional semantic segmentation. The method includes accessing a set of 3D points and projecting the 3D points onto a projection plane to define a set of 2D points. For each of one or more target points of the set of 2D points, the method includes defining a neighborhood of the target 2D point on the projection plane, determining a first group of 2D points in the neighborhood based on a first distance between each 2D point of the first group and the target 2D point, the first distance being a geometric distance based on geometric data, the first group being the N 2D points having the shortest first distance to the target 2D point where N is an integer, determining a second group of 2D points in the neighborhood based on a second distance between each 2D point of the second group and the target 2D point, the second distance being a semantic distance determined from the feature data, the second group being the M 2D points having the shortest second distance to the target 2D point where M is an integer, determining a first weight for each 2D point of the first group and a second weight for each 2D point of the second group, aggregating feature data of the first group of 2D points based on the first weights to form a first aggregated feature data, at least one of the 2D points being associated with corresponding feature data, semantic data and geometric data, aggregating the feature data of the second group of 2D points based on the second weights to form a second aggregated feature data, determining a semantic confidence score based on the semantic data of the 2D points included in the neighborhood and combining, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.
[0017] In some non-limiting embodiments, the neighborhood is k by k kernel with target point in center pixel of the kernel.
[0018] In some non-limiting embodiments, each 2D point is a projection of a three-dimensional (3D) point on a projection plane, the geometric data of a given 2D point comprising 3D geometric information about the corresponding 3D point, the geometric distance being based on the 3D geometric information.
[0019] In some non-limiting embodiments, the semantic confidence score is defined as:
[0020] where Φm, n is the semantic confidence score of the target 2D point in location (m, n) , ψm, nis the local neighborhood of pixel (m, n) and is the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j) .
[0021] In some non-limiting embodiments, combining, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data comprises adding the feature data of the target 2D point to the following value:
[0022] where λ is a hyper-parameter, is the first aggregated feature data and FS is the second aggregated feature data.
[0023] In a second broad aspect of the present technology, there is provided a system for performing a two-dimensional semantic segmentation. The system includes a controller and a memory storing a plurality of executable instructions which, when executed by the controller, cause the system to access a set of 3D points, project the 3D points onto a projection plane to define a set of 2D points and, for each of one or more target points of the set of 2D points, define a neighborhood of the target 2D point on the projection plane, determine a first group of 2D points in the neighborhood based on a first distance between each 2D point of the first group and the target 2D point, the first distance being a geometric distance based on geometric data, the first group being the N 2D points having the shortest first distance to the target 2D point where N is an integer, determine a second group of 2D points in the neighborhood based on a second distance between each 2D point of the second group and the target 2D point, the second distance being a semantic distance determined from the feature data, the second group being the M 2D points having the shortest second distance to the target 2D point where M is an integer, determine a first weight for each 2D point of the first group and a second weight for each 2D point of the second group, aggregate feature data of the first group of 2D points based on the first weights to form a first aggregated feature data, at least one of the 2D points being associated with corresponding feature data, semantic data and geometric data, aggregate the feature data of the second group of 2D points based on the second weights to form a second aggregated feature data, determine a semantic confidence score based on the semantic data of the 2D points included in the neighborhood and combine, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.
[0024] In some non-limiting embodiments, the neighborhood is k by k kernel with target point in center pixel of the kernel.
[0025] In some non-limiting embodiments, each 2D point is a projection of a three-dimensional (3D) point on a projection plane, the geometric data of a given 2D point comprising 3D geometric information about the corresponding 3D point, the geometric distance being based on the 3D geometric information.
[0026] In some non-limiting embodiments, the semantic confidence score is defined as:
[0027] where Φm, n is the semantic confidence score of the target 2D point in location (m, n) , ψm, n is the local neighborhood of pixel (m, n) and is the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j).
[0028] In some non-limiting embodiments, the controller is further configured to add the feature data of the target 2D point to the following value:
[0029] where λ is a hyper-parameter, is the first aggregated feature data and FS is the second aggregated feature data to combine the feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.
[0030] In a third broad aspect of the present technology, there is provided a computer-implemented method for assigning a semantic data to three-dimensional (3D) points of a 3D point cloud, at least one of the 3D point being associated with a feature vector including initial semantic data, feature data and geometric data of the at least one 3D point. The method includes voxelizing a 3D space including the 3D point cloud to form a plurality of voxels. For each 3D point of one or more of the 3D points, the method includes determining a corresponding 2D point being a projection of the 3D point onto a projection plane, defining a neighborhood of the 2D point on the projection plane, determining a group of k 2D points located in the neighborhood, where k is an integer, encoding a set of up to k feature vectors based on the feature vectors of the 3D points having their corresponding projected 2D points belonging to the group of k 2D points, average-pooling the feature vectors of the 3D points belonging to a voxel including the 3D point to obtain an average-pooled feature vector and combining the encoded set with the average-pooled feature vector to obtain a combined feature vector for the 3D point, the combined feature vector of the 3D point including the semantic data for the 3D point cloud.
[0031] In some non-limiting embodiments, the computer-implemented method further includes, subsequent to combining the encoded set with the average-pooled feature vector, applying an objective function to the semantic data of the 3D point cloud to determine a semantic probability vector for the 3D point.
[0032] In some non-limiting embodiments, the objective function is a Softmax function.
[0033] In some non-limiting embodiments, the plurality of voxels have a first 3D size, the method further including, subsequent to combining the encoded set with the average-pooled feature vector, defining a plurality of second voxels having a second 3D size smaller than the first 3D size, average-pooling the feature vectors of the 3D points belonging to a second voxel including the 3D point to obtain a second average-pooled feature vector, and combining the combined feature vector with the second average-pooled feature vector to obtain an updated combined feature vector for the 3D point.
[0034] In some non-limiting embodiments, combining the encoded set with the average-pooled feature vector comprises fusing the encoded set with the average-pooled feature vector.
[0035] In some non-limiting embodiments, combining the encoded set with the average-pooled feature vector comprises adding the encoded set to the average-pooled feature vector.
[0036] In a fourth broad aspect of the present technology, there is provided a system for assigning a semantic data to three-dimensional (3D) points of a 3D point cloud, at least one of the 3D point being associated with a feature vector including initial semantic data, feature data and geometric data of the at least one 3D point. The system includes a controller and a memory storing a plurality of executable instructions which, when executed by the controller, cause the system to voxelize a 3D space including the 3D point cloud to form a plurality of voxels, and, for each 3D point of one or more of the 3D points, determine a corresponding 2D point being a projection of the 3D point onto a projection plane, define a neighborhood of the 2D point on the projection plane, determine a group of k 2D points located in the neighborhood, where k is an integer, encode a set of up to k feature vectors based on the feature vectors of the 3D points having their corresponding projected 2D points belonging to the group of k 2D points, average-pool the feature vectors of the 3D points belonging to a voxel including the 3D point to obtain an average-pooled feature vector and combine the encoded set with the average-pooled feature vector to obtain a combined feature vector for the 3D point, the combined feature vector of the 3D point including the semantic data for the 3D point cloud.
[0037] In some non-limiting embodiments, the system is further configured to, subsequent to combining the encoded set with the average-pooled feature vector, apply an objective function to the semantic data of the 3D point cloud to determine a semantic probability vector for the 3D point.
[0038] In some non-limiting embodiments, the objective function is a Softmax function.
[0039] In some non-limiting embodiments, the plurality of voxels have a first 3D size, the system is further configured to, subsequent to combining the encoded set with the average-pooled feature vector, define a plurality of second voxels having a second 3D size smaller than the first 3D size, average-pool the feature vectors of the 3D points belonging to a second voxel including the 3D point to obtain a second average-pooled feature vector, and combine the combined feature vector with the second average-pooled feature vector to obtain an updated combined feature vector for the 3D point.
[0040] In some non-limiting embodiments, the system fuses the encoded set with the average-pooled feature vector to combine the encoded set with the average-pooled feature vector.
[0041] In some non-limiting embodiments, the system adds the encoded set to the average-pooled feature vector to combine the encoded set with the average-pooled feature vector.
[0042] In the context of the present specification, a “server” is a computer program that is running on appropriate hardware and is capable of receiving requests (e.g., from devices) over a network, and carrying out those requests, or causing those requests to be carried out. The hardware may be one physical computer or one physical computer system, but neither is required to be the case with respect to the present technology. In the present context, the use of the expression a “server” is not intended to mean that every task (e.g., received instructions or requests) or any particular task will have been received, carried out, or caused to be carried out, by the same server (i.e., the same software and / or hardware) ; it is intended to mean that any number of software elements or hardware devices may be involved in receiving / sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request; and all of this software and hardware may be one server or multiple servers, both of which are included within the expression “at least one server” .
[0043] In the context of the present specification, “device” is any computer hardware that is capable of running software appropriate to the relevant task at hand. Thus, some (non-limiting) examples of devices include personal computers (desktops, laptops, netbooks, etc. ) , smartphones, and tablets, as well as network equipment such as routers, switches, and gateways. It should be noted that a device acting as a device in the present context is not precluded from acting as a server to other devices. The use of the expression “adevice” does not preclude multiple devices being used in receiving / sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.
[0044] In the context of the present specification, a “database” is any structured collection of data, irrespective of its particular structure, the database management software, or the computer hardware on which the data is stored, implemented or otherwise rendered available for use. A database may reside on the same hardware as the process that stores or makes use of the information stored in the database or it may reside on separate hardware, such as a dedicated server or plurality of servers. It can be said that a database is a logically ordered collection of structured data kept electronically in a computer system
[0045] In the context of the present specification, the expression “information” includes information of any nature or kind whatsoever capable of being stored in a database. Thus information includes, but is not limited to audiovisual works (images, movies, sound records, presentations etc. ) , data (location data, numerical data, etc. ) , text (opinions, comments, questions, messages, etc. ) , documents, spreadsheets, lists of words, etc.
[0046] In the context of the present specification, the expression “component” is meant to include software (appropriate to a particular hardware context) that is both necessary and sufficient to achieve the specific function (s) being referenced.
[0047] In the context of the present specification, the expression “computer usable information storage medium” is intended to include media of any nature and kind whatsoever, including RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard drivers, etc. ) , USB keys, solid state-drives, tape drives, etc.
[0048] In the context of the present specification, the words “first” , “second” , “third” , etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns. Thus, for example, it should be understood that, the use of the terms “first server” and “third server” is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of / between the server, nor is their use (by itself) intended imply that any “second server” must necessarily exist in any given situation. Further, as is discussed herein in other contexts, reference to a “first” element and a “second” element does not preclude the two elements from being the same actual real-world element. Thus, for example, in some instances, a “first” server and a “second” server may be the same software and / or hardware, in other cases they may be different software and / or hardware.
[0049] Implementations of the present technology each have at least one of the above-mentioned object and / or aspects, but do not necessarily have all of them. It should be understood that some aspects of the present technology that have resulted from attempting to attain the above-mentioned object may not satisfy this object and / or may satisfy other objects not specifically recited herein.
[0050] Additional and / or alternative features, aspects and advantages of implementations of the present technology will become apparent from the following description, the accompanying drawings and the appended claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0051] For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:
[0052] FIG. 1 illustrates an example of a computing device that may be used to implement any of the methods described herein.
[0053] FIG. 2 illustrates a single-sensor-based system architecture for LiDAR 3D point cloud semantic segmentation in accordance with at least some embodiments of the present technology.
[0054] FIG. 3 illustrates a multi-sensor-based system architecture for LiDAR 3D point cloud semantic segmentation in accordance with at least some embodiments of the present technology.
[0055] FIG. 4A illustrates a 3 by 3 kernel used by the computing device of FIG. 1 for neighbor selection based on estimated semantic differences in accordance with at least some embodiments of the present technology.
[0056] FIG. 4B illustrates a 3 by 3 kernel used by the computing device of FIG. 1 for neighbor selection based on range-remission in accordance with at least some embodiments of the present technology.
[0057] FIG. 4C is illustrates a 3 by 3 kernel used by the computing device of FIG. 1 that combines the neighbor selections of FIGS. 4A and 4B.
[0058] FIG. 5 illustrates an example of a distance-based neighbor weighting procedure executed by the computer device of FIG. 1 in accordance with at least some embodiments of the present technology.
[0059] FIG. 6 is a schematic representation of a Semantic-Range-Remission Feature Aggregation procedure executed by the computing device of FIG. 1 in accordance with at least some embodiments of the present technology.
[0060] FIG. 7 is a schematic representation of a 3D Neighborhood-Aware Feature Augmentation procedure executed by the computing device of FIG. 1 in accordance with at least some embodiments of the present technology.
[0061] FIGS. 8A and 8B are scheme-block representations of a method executable by the computing device of FIG. 1 in accordance with at least some embodiments of the present technology.
[0062] FIG. 9 is a scheme-block representation of an other method executable by the computing device of FIG. 1 in accordance with at least some embodiments of the present technology.DETAILED DESCRIPTION
[0063] The examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the present technology and not to limit its scope to such specifically recited examples and conditions. It will be appreciated that those skilled in the art may devise various arrangements which, although not explicitly described or shown herein, nonetheless embody the principles of the present technology and are included within its spirit and scope.
[0064] Furthermore, as an aid to understanding, the following description may describe relatively simplified implementations of the present technology. As persons skilled in the art would understand, various implementations of the present technology may be of a greater complexity.
[0065] In some cases, what are believed to be helpful examples of modifications to the present technology may also be set forth. This is done merely as an aid to understanding, and, again, not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and a person skilled in the art may make other modifications while nonetheless remaining within the scope of the present technology. Further, where no examples of modifications have been set forth, it should not be interpreted that no modifications are possible and / or that what is described is the sole manner of implementing that element of the present technology.
[0066] Moreover, all statements herein reciting principles, aspects, and implementations of the present technology, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof, whether they are currently known or developed in the future. Thus, for example, it will be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the present technology. Similarly, it will be appreciated that any flowcharts, flow diagrams, state transition diagrams, pseudo-code, and the like represent various processes which may be substantially represented in computer-readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
[0067] The functions of the various elements shown in the figures, including any functional block labeled as a "processor" , may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. In some embodiments of the present technology, the processor may be a general purpose processor, such as a central processing unit (CPU) or a processor dedicated to a specific purpose, such as a digital signal processor (DSP) . Moreover, explicit use of the term a "processor" should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, application specific integrated circuit (ASIC) , field programmable gate array (FPGA) , read-only memory (ROM) for storing software, random access memory (RAM) , and non-volatile storage. Other hardware, conventional and / or custom, may also be included.
[0068] Software modules, or simply modules which are implied to be software, may be represented herein as any combination of flowchart elements or other elements indicating performance of process steps and / or textual description. Such modules may be executed by hardware that is expressly or implicitly shown. Moreover, it should be understood that module may include for example, but without being limitative, computer program logic, computer program instructions, software, stack, firmware, hardware circuitry or a combination thereof which provides the required capabilities.
[0069] With these fundamentals in place, we will now consider some non-limiting examples to illustrate various implementations of aspects of the present technology.
[0070] Computing environment
[0071] FIG. 1 illustrates a diagram of a computing environment 100 in accordance with an embodiment of the present technology is shown. In some embodiments, the computing environment 100 may be implemented by any of a conventional personal computer, a computer dedicated to operating and / or monitoring systems relating to a data center, a controller and / or an electronic device (such as, but not limited to, a mobile device, a tablet device, a server, a controller unit, a control device, a monitoring device etc. ) and / or any combination thereof appropriate to the relevant task at hand. In some embodiments, the computing environment 100 comprises various hardware components including one or more single or multi-core processors collectively represented by a processor 110, a solid-state drive 120, a random access memory 130 and an input / output interface 150.
[0072] In some embodiments, the computing environment 100 may also be a sub-system of one of the above-listed systems. In some other embodiments, the computing environment 100 may be an “off the shelf” generic computer system. In some embodiments, the computing environment 100 may also be distributed amongst multiple systems. The computing environment 100 may also be specifically dedicated to the implementation of the present technology. As a person in the art of the present technology may appreciate, multiple variations as to how the computing environment 100 is implemented may be envisioned without departing from the scope of the present technology.
[0073] Communication between the various components of the computing environment 100 may be enabled by one or more internal and / or external buses 160 (e.g. a PCI bus, universal serial bus, IEEE 1394 “Firewire” bus, SCSI bus, Serial-ATA bus, ARINC bus, etc. ) , to which the various hardware components are electronically coupled.
[0074] The input / output interface 150 may allow enabling networking capabilities such as wire or wireless access. As an example, the input / output interface 150 may comprise a networking interface such as, but not limited to, a network port, a network socket, a network interface controller and the like. Multiple examples of how the networking interface may be implemented will become apparent to the person skilled in the art of the present technology. For example, but without being limitative, the networking interface may implement specific physical layer and data link layer standard such as Ethernet, Fibre Channel, Wi-Fi or Token Ring. The specific physical layer and the data link layer may provide a base for a full network protocol stack, allowing communication among small groups of computers on the same local area network (LAN) and large-scale network communications through routable protocols, such as Internet Protocol (IP) .
[0075] According to implementations of the present technology, the solid-state drive 120 stores program instructions suitable for being loaded into the random access memory 130 and executed by the processor 110 for executing operating data centers based on a generated machine learning pipeline. For example, the program instructions may be part of a library or an application.
[0076] In some embodiments of the present technology, the computing environment 100 may be implemented as part of a cloud computing environment. Broadly, a cloud computing environment is a type of computing that relies on a network of remote servers hosted on the internet, for example, to store, manage, and process data, rather than a local server or personal computer. This type of computing allows users to access data and applications from remote locations, and provides a scalable, flexible, and cost-effective solution for data storage and computing. Cloud computing environments can be divided into three main categories: Infrastructure as a Service (IaaS) , Platform as a Service (PaaS) , and Software as a Service (SaaS) . In an IaaS environment, users can rent virtual servers, storage, and other computing resources from a third-party provider, for example. In a PaaS environment, users have access to a platform for developing, running, and managing applications without having to manage the underlying infrastructure. In a SaaS environment, users can access pre-built software applications that are hosted by a third-party provider, for example. In summary, cloud computing environments offer a range of benefits, including cost savings, scalability, increased agility, and the ability to quickly deploy and manage applications.
[0077] Sematic segmentation systems
[0078] With reference to FIG. 2, there is depicted a single-sensor sematic segmentation system 200 with a point refinement module 250 comprising a SR2FA module 270 and a 3D-NAFA module 260. In the single-sensor sematic segmentation system 250, the input is a 3D point cloud 202 and the output is a semantically classified 3D point cloud 280.
[0079] In one embodiment, the single-sensor sematic segmentation system 200 is configured to project the cloud 202 to a 2D space via a RV projection operation 204. Additionally or alternatively, the system 200 may be configured to perform a BEV projection operation for projecting the cloud 202 to the 2D space. Projected data 206 is then fed to a segmentation model 208, which comprises an encoder 210 and a decoder 212. The encoder 210 is configured to process the projected data 206 (input 2D data) , compress the projected data, and extract features for semantic segmentation. These extracted features are used by the decoder 212 to build a 2D semantic map. In the context of the present technology, the computing device 100 is configured to inter alia use the point refinement module 250 to predict labels of 3D points. The refinement module 250 receives 2D estimated semantics 216 from the decoder 212, low-level features 220 and high-level features 218 concatenated via operation 222, geometry features 224 (information recorded by LiDAR such as range remission, xyz coordinates, for example) and geometric features and voxelization grid indices 226 generated via a voxelization operation 214. The geometry features 224 may include range-remission data, where the range value may be calculated based on the x, y, z coordinate of the perceived 3D point from the sensor (i.e. ) , and remission is sensed by the LiDAR sensor and is recorded as the return strength of a laser beam. The values of remission may vary with the composition of a surface from which the laser beam is being reflected.
[0080] It can be said that the refinement module 250 may be employed as a “plug-and-play” solution for projection-based LiDAR 3D point cloud semantic segmentation systems executable by the computing device 100.
[0081] With reference to FIG. 3, there is depicted a multi-sensor sematic segmentation system 300 with a point refinement module 250’ comprising a SR2FA module 270’ and a 3D-NAFA module 260’ . In the multi-sensor sematic segmentation system 300, a LiDAR sensor and a camera sensor are used for providing input data. Several camera sensors can be included in the multi-sensor semantic segmentation system, depending on inter alia a Field of View (FOV) size of the scene to be captured. Similar to the single-sensor semantic segmentation system 200, a 3D point cloud 202’ is projected to 2D via a 2D projection 204’ . Additionally, the camera image (s) 203’ are also projected to 2D via the 2D projection 204. Projected data are fed to a 2D semantic segmentation model 308 for estimating labels on the 2D images. The 2D semantic segmentation model 308 comprises a camera-dedicated encoder 311, a fusion encoder 310, and a decoder 312.
[0082] In addition to, or instead of, the multi-sensor sematic segmentation system 300 may receive data from other types of sensors such as RADAR sensors, for example. The systems 200 and 300 in FIGS. 2 and 3 can be implemented as part of different types of perception systems for robots, autonomous vehicles, traffic monitoring and / or surveillance systems. The perception system can be used for performing a plurality of computer vision tasks such as inter alia semantic segmentation, object detection, and the like.
[0083] In some embodiments, there is provided a software solution that can be easily deployed in combination with an existing semantic segmentation system where estimated semantic labels can be used as a specific output of the perception system and / or used in one or more downstream computer vision tasks such as 3D object detection, for example. For example, the point refinement modules 250 and 250’ may be deployed in combination with the segmentation models 208 and 308, respectively. Developers of the present technology have realized that using a given semantic segmentation model with a given point refinement module may improve segmentation accuracy, reduce the gap between the 2D mIOU and the point-level (3D) mIOU which is achieved via learnable post-processing in the segmentation pipeline.
[0084] It should be noted that at least some embodiments of the present technology will be described in the context of projecting a 3D point cloud to RV. However, other embodiments may be used in the context of projecting the 3D point cloud to BEV, without departing from the scope of the present technology.
[0085] As mentioned above, the 2D segmentation model 208 can be implemented as an encoder-decoder model. The encoder 210 extracts low-level features and high-level features when processing the input and can incrementally down-sample the features. The decoder 212 uses the low-level features and high-level features to build the 2D semantic map. It should be noted that since the projection-based semantic segmentation output is in 2D (projected data 206) , a post-processing stage may be employed to further assign a label to each 3D point. Developers have realized that by directly re-projecting the 2D labels into 3D space, “occluded” points would otherwise receive labels of respective “occluding” points. Such label prediction for occluded points may reduce performance of a segmentation model because.
[0086] Developers of the present technology have devised a trainable point refinement system that allows increasing point-level mIOU metric, and reduce the gap between the mIOU in 2D and 3D data present in current technologies. The developers have also devised a trainable point refinement system that can be employed in combination with a 2D encoder-decoder model which benefits from fast inference speed and low memory usage.
[0087] How the point refinement modules 250 and 250’ can be implemented in some embodiments of the present technology will now be described. As mentioned above, the point refinement module 250 comprises the Semantic-Range-Remission Feature Aggregation (SR2FA) module 270, which performs feature aggregation in 2D. Broadly, the SR2FA module 270 is configured to locally aggregate information for respective pixels. Developers have realized that this local aggregation for respective pixels may not be achievable by a simple convolution layer due to its static kernel shape and treating all nearby neighbors equally. It should be noted that, since the projected data 206 is distant-dependent data, the surrounding geometry-related information of a given pixel should be considered during feature aggregation. The SR2FA module 270 may perform feature aggregation based on estimated 2D semantics data 216 and range-remission data 224 acquired from different sources in the system 200. The estimated 2D semantics data 216 comprises knowledge obtained through 2D segmentation model 208. The range-remission data 224 comprises information acquired by the LiDAR sensor.
[0088] As mentioned above, the point refinement module 250 comprises the 3D Neighborhood-Aware Feature Augmentation (3D-NAFA) module 260. The 3D-NAFA module 260 is configured to re-project features from 2D to 3D space that are to be augmented. Developers have realized that since these features are computed in 2D space, they may lack information indicative of 3D topology and geometry relations. In some embodiments, the 3D-NAFA module 260 may be configured to execute an iterative “coarse-to-fine” feature augmentation on the 3D point-level.
[0089] SR2FA module
[0090] Developers of the present technology have realized that static kernels used in conventional systems are ill-suited for feature aggregation and may introduce “incorrect” information from neighboring pixels. Said information may be said to be “incorrect” given that 3D points are projected on a 2D space. Therefore, two distinct neighboring locations on the 2D image may not represent a same object in the 3D space. For instance, near an edge of an object, two neighboring pixels can belong to two different semantic classes.
[0091] Due to down-sampling operations in the encoder 210, the 2D output 216 of the decoder 212 tends to be “blurry” , where boundaries of two objects belonging to different semantic classes are sub-optimally defined. Also, since the 2D segmentation model 208 is an encoder-decoder model, information loss may occur during down-sampling operation in the encoder 210 during feature extraction. It should be noted that some of the lost information may not be retrieved during up-sampling operations in the decoder 212, despite including “skip connections” between the encoder 210 and the decoder 212. In an encoder-decoder model, a skip connection is a connection that directly connects the input of an encoder layer to the output of a decoder layer, or vice versa. This connection is "skipping" one or more layers in between, hence the name "skip connection. " The purpose of skip connections is to help the model overcome the vanishing gradient problem, which can occur in deep neural networks. The vanishing gradient problem arises when the gradients used for training become very small as they are backpropagated through the layers, making it difficult for the model to learn effectively. Skip connections can help alleviate this problem by providing a direct path for information to flow from the input to the output, bypassing some of the intermediate layers. In an encoder-decoder model, skip connections typically connect corresponding encoder and decoder layers. For example, a skip connection might connect the output of the first encoder layer to the input of the first decoder layer, or it might connect the output of the second encoder layer to the input of the second decoder layer. This helps the decoder layer access information from the corresponding encoder layer, which can improve the quality of the output. In summary, skip connections can refer to an architectural feature of encoder-decoder models for improving their performance, particularly for tasks such as image segmentation or machine translation where the input and output have a spatial or temporal structure.
[0092] In some embodiments, the low-level features 220 may be retrieved by the processor from a beginning of the encoder 210 and the high-level features 218 may be retrieved by the processor from an end of the decoder 212, and then concatenated via the operations 222. In the context of the present disclosure, the beginning of an encoder refers to an early layer of the encoder which usually extracts and encodes low-level features such as edges and preliminary textures. The end of an encoder refers to last layers of the decoder which usually includes high-level semantically strong features. The processor may use the output of the operation 222 as input features to the SR2FA module 270.
[0093] Neighbor Selection
[0094] Developers have realized that, for reducing the computation burden and improve processing time, a RV projection mask can be used to aggregate features based on locations of only the projected points, rather than all RV image pixels. Then, for every remaining point (referred to target point) , a k×k neighborhood is considered by applying by the processor a kernel of a corresponding k×k size. In this neighborhood, the processor is configured to select the N most similar neighbors to the target pixel.
[0095] The processor may be configured to employ different similarity metrics for measuring similarity between pixels. Developers have realized that increasing both k and N values can cause an increase in memory and computation requirements, however, it also provides a larger receptive field capturing of additional information.
[0096] With respect to FIG. 4A, a target point 401 is depicted with a corresponding kernel 400. In this illustrative embodiment, the kernel 400 is a 3x3 kernel defining a neighborhood of the target point 401. The SR2FA module 270 parses through the 2D estimated semantics 216 of the 2D points belonging to the kernel 400 and determines the absolute semantic differences between the target point 401 and the pixels in the k×k neighborhood. It should be noted that despite having a k×k neighborhood, there might be less number of neighbors as some of the pixels can be filtered due to not having a projected point in them. Then, the N most similar neighboring pixels are selected.
[0097] In FIG. 4A, three 2D points 411, 412 and 413 are selected. It can be said that the respective semantic distances between the three 2D points 411, 412 and 413 and the target point 401 are the N (with N=3) shortest semantic distances from the target point 401 to any of the 2D points located in the kernel 400.
[0098] In addition, the SR2FA module 270 parses through the geometry features 224 of the 2D points belonging to the kernel 400 and determines the geometry differences between the target point 401 and the pixels in the k×k neighborhood based on the geometry features thereof. In FIG. 4B, three 2D points 421, 422 and 423 are selected. It can be said that the respective geometric distances between the three 2D points 421, 422 and 423 and the target point 401 are the N (with N=3) shortest geometric distances from the target point 401 to any of the 2D points located in the kernel 400.
[0099] Broadly speaking, it can be said that the SR2FA module 270 determines a first group of 2D points in the neighborhood defined by the kernel 400 based on a first distance between each 2D point of the first group and the target 2D point 401, and a second group of 2D points in the neighborhood defined by the kernel 400 based on a second distance between each 2D point of the second group and the target 2D point 401. The first distance is a semantic distance and the second distance is a geometric distance.
[0100] Some of the neighbors selected by these two different metrics may be overlapping in some instances, as shown in FIG. 4C, in which in one of the locations the selected neighbor is considered twice. The two sets of neighbors can be fully overlapped as well depending on the context and estimated semantic probabilities. For instance, on the body of an object where the model is accurately estimating the semantic labels, most likely the neighbors selected based on the above-mentioned metrics are the same, however, on the border of objects, this can be different.
[0101] Other metrics are contemplated in alternative embodiments, in addition or in replacement of the semantic and geometric distances. In some embodiment, once the two sets of neighbors are selected, the SR2FA module 270 associates a weight to each one of them. FIG. 5 is a block diagram of a distance-based weighting pipeline 500. The distance-based weighting pipeline 500 receives an input 501 including information about a group of 2D points (e.g. the 2D points 412, 413 and 413, or the group 421, 422 and 423) . The input 501 may thus be represented as a N×L matrix, where N is the number of selected neighbors of the group, and L is a length of a distance vector including information about features of the corresponding 2D point with respect to the target point 401. More specifically, if a given selected neighbor has been selected based on its semantic distance to the target point 401, the distance vector includes information about said semantic distance and semantic features. If a given selected neighbor has been selected based on its geometric distance to the target point 401, the distance vector includes information about said geometric distance and geometric features (e.g. [x, y, z, range, remission] ) . For the neighbors selected based on the range-remission geometric distance, their absolute x, y, z coordinates and range and remission information are considered. If the framework is multi-sensor (LiDAR &Camera) , the absolute difference in terms of color channels (e.g. Red-Green-Blue, RGB, coordinates) may be included as well.
[0102] Broadly speaking, the distance-based weighting pipeline 500 is based on Multi-Layered Perceptron (MLP) and Point Feature Encoding (PFE) layers. A given PFE layer may be composed of an MLP layer followed by max-and average-pool layers and outputs the concatenation of processed features with the average-and max-pooled features along neighbors.
[0103] More specifically, the input 501 is transposed at operation 510 and two MLP layers are further consecutively applied thereto at operations 512 and 514. The result is further transposed at operation 516 and added to the input 501 at operation 518. By doing so, each neighbor’s feature is updated based on relations that exist between the selected neighbors. Then, the resulting features are passed through a PFE layer at operation 520 and an MLP layer at operation 522 for further processing. In this embodiment, these last PFE and MLP layers process each neighbors individually. Finally, the features go through a Softmax layer at operation 524 for assigning a weight to each of the selected neighbors.
[0104] As will be described in greater details herein after, the computed weights are used to compute the weighted summation of the features of those selected neighbors. All the MLP and PFE layers used in the distance-based weighting pipeline 500 can be adjusted based on custom computing complexity requirements.
[0105] FIG. 6 is a schematic representation of a Semantic-Range-Remission Feature Aggregation procedure 600 executed by the SR2FA module 270. At operation 602, the SR2FA module 270 executes the distance-based weighting pipeline 500 onto the group of 2D points 421, 422 and 423, thereby associating each 2D point 421, 422 and 423 to a corresponding weight. Likewise at operation 604, the SR2FA module 270 executes the distance-based weighting pipeline 500 onto the group of 2D points 412, 412 and 413, thereby associating each 2D point 412, 412 and 413 to a corresponding weight.
[0106] At operation 608, features 606 of the 2D points 421, 422 and 423 (i.e. the combination of low-level features 220 and the high-level features 218 thereof) are weighted by the corresponding weights determined at operation 602 and summed together. In this embodiment, a linear layer followed by an activation function and batch normalization are applied to the weighted-sum at operation 614 to obtain a first aggregated feature
[0107] Likewise at operation 612, features 610 of the 2D points 411, 412 and 413 (i.e. the combination of low-level features 220 and the high-level features 218 thereof) are weighted by the corresponding weights determined at operation 604 and summed together. In this embodiment, a linear layer followed by an activation function and batch normalization are applied to the weighted-sum at operation 616 to obtain a second aggregated feature FS.
[0108] At operation 618, the SR2FA module 270 determines a semantic confidence score based on the semantic data of the 2D points included in the neighborhood (i.e. the kernel 400) as:
[0109] where Φm, n is the semantic confidence score of the target 2D point in location (m, n) ,φm, nis the local neighborhood of pixel (m, n) and is the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j).
[0110] The SR2FA module 270 further determines, based on the semantic confidence score, the following value:
[0111] where λ is a pre-determined hyper-parameter.
[0112] It can be said that Δ is a combined semantic-and range-remission-based aggregated feature and λ is a hyper-parameter that controls to what extent Δ relies more on range-remission. Based on the above equation, the higher the λ, the lower reliance on semantic-based aggregated features. In other words, if the λ is set to a high value, the semantic-based aggregated features will contribute in the combined features Δ , only if the mean semantic confidence is very high. If it is set to a lower value, then the semantic-based aggregated features will contribute to the combined features, even if the mean semantic confidence is low.
[0113] Relatively high value of the hyper-parameter λ is indicative of less meaningful semantic probabilities and representative of the features in these locations. Only when the semantic confidence is higher do they become representative enough as feature characteristics.
[0114] With reference to FIG. 6, the SR2FA module 270 further combines, at operation 620 the original features 622 (i.e. the low-level features 220 and the high-level features 218) of the target point 401 to the combined features Δ. For example, said combination may be a fusion or an addition.
[0115] The SR2FA module 270 further feeds, at operation 624, the combination to a linear layer followed by an activation function and a batch normalization to obtain final aggregated features 272 for the 2D target point 401.
[0116] 3D-NAFA module
[0117] FIG. 7 is a schematic representation of execution of a 3D semantic segmentation by the 3D Neighborhood-Aware Feature Augmentation (3D-NAFA) 260. Broadly speaking, the 3D-NAFA 260 performs 3D semantic segmentation by assigning a label to each 3D point of the 3D point cloud 202.
[0118] In opposition to the SR2FA module 270 that rely on 2D data, the 3D-NAFA 260 computes 3D data. In addition, the 3D-NAFA 260 projects back 2D information to the 3D space and may adjust features and information that have already been extracted by the SR2FA module 270.
[0119] With reference to FIG. 7, there is depicted a 3D target point 701 that corresponds to a projection of the 2D target point 401 back into the 3D space. 3D points corresponding to 2D points that have been considered by the SR2FA module 270 in the first and second groups of 2D points are also identified by the 3D-NAFA 260. In the illustrative example of FIG. 7, 3D point 701 is the 3D point of the 3D point cloud 202 that corresponds to the 2D point 401. In other words, a projection of the 3D point 701 onto the projection plane is the 2D point 401. 3D points 711, 712, 713, 721, 722 and 723 are the 3D points of the 3D point cloud 202 that respectively correspond to the 2D points 411, 412, 413, 421, 422 and 423 in this illustrative example.
[0120] It should be noted that depending on the size of the kernel 400 and the number of 2D points selected therein, the 3D points 711, 712, 713, 721, 722 and 723 do not necessarily correspond to the 2D points 411, 412, 413, 421, 422 and 423 respectively. Indeed, in some implementations, the 3D point 701 might not be the exact 3D point for the 2D point 401. In other words, the 2D point 401 may not be the 2D projection of the 3D point 701 onto the projection plane. Although, the 3D-NAFA 260 projects the 3D point 701 on the 2D projection plane to determine the 2D neighbors 411, 412, 413, 421, 422 and 423, but the 2D point 401 might be a 2D projection of another 3D point that is occluding the 3D point 701 for said projection.
[0121] In cases where the 2D point 401 is the exact 2D projection corresponding to the 3D point 701 (i.e. no occlusion happened during the projection of 3D point 701) , it can be said that the selection of 3D neighbor point 711, 712, 713, 721, 722 and 723 is based on the “Range” metric. However, the selection of 411, 412, 413, 421, 422 and 423 2D points is based on the two metrics “Range-Remission” and “Semantics” as described herein above.
[0122] From each of these identified 3D points, the 3D-NAFA 260 collects their estimated 2D semantics data 216, their geometric features and voxelization grid indices 226 and their final aggregated features 272 obtained by the SR2FA module 270. In this illustrative example, these three data are the probability vector, the aggregated feature vector and the respective xyz distance from the target point of each identified 3D point.
[0123] These three data may be concatenated in information vectors 725. The information vectors 725 may be represented as a k×P matrix for each 3D point, where k is the number of selected neighbors and P the length of the information vector which includes the semantic probability vector, aggregated feature vector and the xyz distance. More information or features may be collected and added to the information vectors 725 in alternative embodiments, for example based on the computation power and memory requirements.
[0124] In some embodiments, the 3D-NAFA 260 further applies, at operation 730, a PFE layer that processes each point’s selected neighbor separately and then uses max-and average-pool operations to pass global information that exist in the neighborhood between the selected neighbors. It should be noted that so far, only the features calculated on the 2D space have been considered, while 3D neighborhood has more information for refinement and augmentation of the point features. For instance, the 3D topology and geometric relations between the 3D points may be leveraged for this refinement step in alternative embodiments.
[0125] In some embodiments, the 3D-NAFA 260 further voxelizes the 3D space including the 3D point cloud 202 to form a plurality of voxels such as voxels 732. In this example, the voxel 732 includes the 3D target point 701 and has a first 3D size (e.g. the voxel 732 has a pre-determined shape and volume) . The voxel 732 may include some of the identified 3D points 711, 712, 713, 721, 722 and 723.
[0126] The 3D-NAFA 260 further average pools, at operation 734, the feature data of the 3D points inside the voxel 732. The type of the pooling is optional and different kinds of pooling are contemplated in different embodiments. Moreover, the neighboring voxels of the voxel 732 in the 3D space may also be taken into consideration by the 3D-NAFA 260 to pass information in a local neighborhood as well. This may depend on the computation power and can be considered accordingly.
[0127] The 3D-NAFA 260 further applies, at operations 736 and 738, a respective MLP layer and broadcast an output to every 3D point of the voxel 732. The obtained features are added to the original features of the 3D points in that voxel 732 at operation 740. In some alternative embodiments, the features are combined then process them with MLP layers for fusion instead of being added together. The augmented points’ features are then passed through a MLP layer at operation 742 so that the added two sets of feature data get combined (e.g. fused) . In some embodiments, the features of the 3D points of the voxel 732 are average-pooled to determine a final feature vector for each of said 3D point, such that each of them may be assigned with a semantic label based on said final feature vector.
[0128] As illustrated in FIG. 7, the developers of the present technology have devised an iterative process to increase the accuracy of the attribution of semantic labels for the 3D points of the 3D point cloud 202. Indeed, the process of voxelizing is repeated by defining, by the 3D-NAFA 260 a plurality of second voxels having a second 3D size smaller than the first 3D size of the voxel 732. In this example, the 3D-NAFA 260 defines a second voxel 744 including the 3D target point 701.
[0129] The 3D-NAFA 260 further average pools the features data of the 3D points inside the voxel 744 at operation 746, and applies MLP layers at operations 748 and 750 and broadcasts an output to every 3D point of the voxel 744. The obtained features are added, at operation 752, to the features determined by the 3D-NAFA 260 at operation 742. In some alternative embodiments, the features are combined then process them with MLP layers for fusion instead of being added together. The augmented points’ features are then passed through a MLP layer at operation 754 so that the added two sets of feature data get combined (e.g. fused) . Finally, the 3D-NAFA 260 average pools the k sets of feature vectors to generate the final feature vector at operation 756. This feature is then passed through a Softmax function for estimating the semantic probability vector and determining semantic class for the 3D target point 701.
[0130] It can be said that the process is repeated with a finer voxel grid size in which the points get augmented with a smaller 3D neighborhood. More specifically, in the finer voxel grid size, each 3D target point in a voxel gets augmented by its immediate or very close 3D points information which will bring more local information. Additional refinement of the voxel grid size and thus iterations of the process of augmentation of 3D points are contemplated in alternative embodiments (e.g. three iterations) .
[0131] The developers of the present invention have tested the application of the SR2FA module 270 onto a given dataset. In this example, the pipeline for the segmentation is a multi-sensor (LiDAR and Camera) method using SemanticKITTI dataset ( “SemanticKITTI: A dataset for semantic scene understanding of lidar sequences” published in 2019 in IEEE / CVF international conference on computer vision) . The measured mIOU on colored point cloud without the SR2FA is 63.95 while the measured mIOU on colored point cloud with the SR2FA is 64.10.
[0132] In another example using nuScenes dataset ( “nuscenes: A multimodal dataset for autonomous driving” , published in 2020 in IEEE / CVF conference on computer vision and pattern recognition) , the measured mIOU is without the SR2FA is 74.79 without the SR2FA module 270, and 75.27 with the SR2FA module 270.
[0133] The benefits of the 3D-NAFA have also been measured with experimental measurements. The following table shows the measured mIOU values for different methods using the SemanticKITTI dataset. Single scale refers to using only one size of voxels (i.e. using only one voxelization of the 3D space) . Multi-scale refers to the iterative process of refining the size of the voxels as depicted on FIG. 7 with voxels 732 and 744.
[0134] FIGS. 8A and 8B are flow diagrams of a method 900 for performing a two-dimensional semantic segmentation according to some embodiments of the present technology. In one or more aspects, the method 900 or one or more steps thereof may be performed by a processor or a computer system, such as the computer environment 100. The method 900 or one or more steps thereof may be embodied in computer-executable instructions that are stored in a computer-readable medium, such as a non-transitory mass storage device, loaded into memory and executed by a CPU. Some steps or portions of steps in the flow diagram may be omitted or changed in order.
[0135] The method 900 starts with accessing, at operation 910, a set of 3D points.
[0136] The method 900 continues with projecting, at operation 920, the 3D points onto a projection plane to define a set of 2D points.
[0137] The method 900 continues with defining, at operation 930 and for each of one or more target points of the set of 2D points, a neighborhood of the target 2D point on the projection plane. For example, the neighborhood may be k by k kernel (e.g. 3x3) with target point in center pixel of the kernel.
[0138] The method 900 continues with determining, at operation 940, a first group of 2D points (e.g. 2D points 421, 422 and 423) in the neighborhood based on a first distance between each 2D point of the first group and the target 2D point, the first distance being a geometric distance based on geometric data, the first group being the N 2D points having the shortest first distance to the target 2D point where N is an integer. Each 2D point may be a projection of a three-dimensional (3D) point on a projection plane, the geometric data of a given 2D point comprising 3D geometric information about the corresponding 3D point, the geometric distance being based on the 3D geometric information.
[0139] The method 900 continues with determining, at operation 950, a second group of 2D points (e.g. 2D points 411, 412 and 413) in the neighborhood based on a second distance between each 2D point of the second group and the target 2D point, the second distance being a semantic distance determined from the feature data, the second group being the M 2D points having the shortest second distance to the target 2D point where M is an integer.
[0140] The method 900 continues with determining, at operation 960, a first weight for each 2D point of the first group and a second weight for each 2D point of the second group.
[0141] The method 900 continues with aggregating, at operation 970, feature data of the first group of 2D points based on the first weights to form a first aggregated feature data, at least one of the 2D points being associated with corresponding feature data, semantic data and geometric data.
[0142] The method 900 continues with aggregating, at operation 980, the feature data of the second group of 2D points based on the second weights to form a second aggregated feature data.
[0143] The method 900 continues with determining, at operation 990, a semantic confidence score based on the semantic data of the 2D points included in the neighborhood. In some embodiments, the semantic confidence score is defined as:
[0144] where Φm, n is the semantic confidence score of the target 2D point in location (m, n), ψm, n is the local neighborhood of pixel (m, n) and is the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j) .
[0145] In some embodiments, combining the feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data includes adding the feature data of the target 2D point to the following value:
[0146] where λ is a hyper-parameter, is the first aggregated feature data and FS is the second aggregated feature data.
[0147] The method 900 may end with combining, at operation 995, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.
[0148] FIG. 9 is flow diagrams of a method 1000 for assigning a semantic data to three-dimensional (3D) points of a 3D point cloud, at least one of the 3D point being associated with a feature vector including initial semantic data, feature data and geometric data of the at least one 3D point according to some embodiments of the present technology. In one or more aspects, the method 900 or one or more steps thereof may be performed by a processor or a computer system, such as the computer environment 100. The method 900 or one or more steps thereof may be embodied in computer-executable instructions that are stored in a computer-readable medium, such as a non-transitory mass storage device, loaded into memory and executed by a CPU. Some steps or portions of steps in the flow diagram may be omitted or changed in order.
[0149] The method 1000 starts with voxelizing, at operation 1010, a 3D space including the 3D point cloud to form a plurality of voxels.
[0150] The method 1000 continues with determining, at operation 1020 and for each 3D point of one or more of the 3D points, a corresponding 2D point being a projection of the 3D point onto a projection plane.
[0151] The method 1000 continues with defining, at operation 1030, a neighborhood of the 2D point on the projection plane.
[0152] The method 1000 continues with determining, at operation 1040, a group of k 2D points located in the neighborhood, where k is an integer.
[0153] The method 1000 continues with encoding, at operation 1050, a set of up to k feature vectors based on the feature vectors of the 3D points having their corresponding projected 2D points belonging to the group of k 2D points.
[0154] The method 1000 continues with average-pooling, at operation 1060, the feature vectors of the 3D points belonging to a voxel including the 3D point to obtain an average-pooled feature vector.
[0155] The method 1000 may end with combining, at operation 1070, the encoded set with the average-pooled feature vector to obtain a combined feature vector for the 3D point, the combined feature vector of the 3D point including the semantic data for the 3D point cloud. In some embodiments, combining the encoded set with the average-pooled feature vector includes fusing the encoded set with the average-pooled feature vector. In the same or other embodiments, combining the encoded set with the average-pooled feature vector includes adding the encoded set to the average-pooled feature vector.
[0156] In some embodiments, the method 1000 further includes, subsequent to combining the encoded set with the average-pooled feature vector, applying an objective function to the semantic data of the 3D point cloud to determine a semantic probability vector for the 3D point. For example and without limitation, the objective function may be a Softmax function.
[0157] In some embodiments, the plurality of voxels have a first 3D size, and the method 1000 further includes, subsequent to combining the encoded set with the average-pooled feature vector, defining a plurality of second voxels having a second 3D size smaller than the first 3D size, average-pooling the feature vectors of the 3D points belonging to a second voxel including the 3D point to obtain a second average-pooled feature vector and combining the combined feature vector with the second average-pooled feature vector to obtain an updated combined feature vector for the 3D point.
[0158] It will be appreciated that at least some of the operations of the methods 900 and 1000 may also be performed by computer programs, which may exist in a variety of forms, both active and inactive. Such as, the computer programs may exist as software program (s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable medium, which include storage devices and signals, in compressed or uncompressed form. Representative computer readable storage devices include conventional computer system RAM (random access memory) , ROM (read only memory) , EPROM (erasable, programmable ROM) , EEPROM (electrically erasable, programmable ROM) , and magnetic or optical disks or tapes. Representative computer readable signals, whether modulated using a carrier or not, are signals that a computer system hosting or running the computer program may be configured to access, including signals downloaded through the Internet or other networks. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. In a sense, the Internet itself, as an abstract entity, is a computer readable medium. The same is true of computer networks in general.
[0159] Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be exemplary rather than limiting. The scope of the present technology is therefore intended to be limited solely by the scope of the appended claims.
Claims
1.A computer-implemented method for performing a two-dimensional semantic segmentation, the method comprising:accessing a set of 3D points;projecting the 3D points onto a projection plane to define a set of 2D points;for each of one or more target points of the set of 2D points:defining a neighborhood of the target 2D point on the projection plane;determining a first group of 2D points in the neighborhood based on a first distance between each 2D point of the first group and the target 2D point, the first distance being a geometric distance based on geometric data, the first group being the N 2D points having the shortest first distance to the target 2D point where N is an integer;determining a second group of 2D points in the neighborhood based on a second distance between each 2D point of the second group and the target 2D point, the second distance being a semantic distance determined from the feature data, the second group being the M 2D points having the shortest second distance to the target 2D point where M is an integer;determining a first weight for each 2D point of the first group and a second weight for each 2D point of the second group;aggregating feature data of the first group of 2D points based on the first weights to form a first aggregated feature data, at least one of the 2D points being associated with corresponding feature data, semantic data and geometric data;aggregating the feature data of the second group of 2D points based on the second weights to form a second aggregated feature data;determining a semantic confidence score based on the semantic data of the 2D points included in the neighborhood; andcombining, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.2.The computer-implemented method of claim 1, wherein the neighborhood is k by k kernel with target point in center pixel of the kernel.3.The computer-implemented method of claim 1, wherein each 2D point is a projection of a three-dimensional (3D) point on a projection plane, the geometric data of a given 2D point comprising 3D geometric information about the corresponding 3D point, the geometric distance being based on the 3D geometric information.4.The computer-implemented method of claim 1, wherein the semantic confidence score is defined as: where Фm, n is the semantic confidence score of the target 2D point in location (m, m) , ψm, n is the local neighborhood of pixel (m, n) andis the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j) .5.The computer-implemented method of claim 4, wherein combining, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data comprises adding the feature data of the target 2D point to the following value: where λ is a hyper-parameter, is the first aggregated feature data and FS is the second aggregated feature data.6.A system for performing a two-dimensional semantic segmentation, the system comprising a controller and a memory storing a plurality of executable instructions which, when executed by the controller, cause the system to:access a set of 3D points;project the 3D points onto a projection plane to define a set of 2D points;for each of one or more target points of the set of 2D points:define a neighborhood of the target 2D point on the projection plane;determine a first group of 2D points in the neighborhood based on a first distance between each 2D point of the first group and the target 2D point, the first distance being a geometric distance based on geometric data, the first group being the N 2D points having the shortest first distance to the target 2D point where N is an integer;determine a second group of 2D points in the neighborhood based on a second distance between each 2D point of the second group and the target 2D point, the second distance being a semantic distance determined from the feature data, the second group being the M 2D points having the shortest second distance to the target 2D point where M is an integer;determine a first weight for each 2D point of the first group and a second weight for each 2D point of the second group;aggregate feature data of the first group of 2D points based on the first weights to form a first aggregated feature data, at least one of the 2D points being associated with corresponding feature data, semantic data and geometric data;aggregate the feature data of the second group of 2D points based on the second weights to form a second aggregated feature data;determine a semantic confidence score based on the semantic data of the 2D points included in the neighborhood; andcombine, based on the semantic confidence score, feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.7.The system of claim 6, wherein the neighborhood is k by k kernel with target point in center pixel of the kernel.8.The system of claim 6, wherein each 2D point is a projection of a three-dimensional (3D) point on a projection plane, the geometric data of a given 2D point comprising 3D geometric information about the corresponding 3D point, the geometric distance being based on the 3D geometric information.9.The system of claim 6, wherein the semantic confidence score is defined as: where Фm, n is the semantic confidence score of the target 2D point in location (m, n) , ψm, m is the local neighborhood of pixel (m, n) andis the number of pixels in this neighborhood, C is the number of semantic classes and Si, j, c is a predicted semantic probability for class c in pixel (i, j) .10.The system of claim 6, wherein the controller is further configured to add the feature data of the target 2D point to the following value: where λ is a hyper-parameter, is the first aggregated feature data and FS is the second aggregated feature data to combine the feature data of the target 2D point with the first aggregated feature data and the second aggregated feature data.11.A computer-implemented method for assigning a semantic data to three-dimensional (3D) points of a 3D point cloud, the method comprising:voxelizing a 3D space including the 3D point cloud to form a plurality of voxels, at least one of the 3D point being associated with a feature vector including initial semantic data, feature data and geometric data of the at least one 3D point;for each 3D point of one or more of the 3D points:determining a corresponding 2D point being a projection of the 3D point onto a projection plane;defining a neighborhood of the 2D point on the projection plane;determining a group of k 2D points located in the neighborhood, where k is an integer;encoding a set of up to k feature vectors based on the feature vectors of the 3D points having their corresponding projected 2D points belonging to the group of k 2D points;average-pooling the feature vectors of the 3D points belonging to a voxel including the 3D point to obtain an average-pooled feature vector; andcombining the encoded set with the average-pooled feature vector to obtain a combined feature vector for the 3D point, the combined feature vector of the 3D point including the semantic data for the 3D point cloud.12.The computer-implemented method of claim 11, further comprising subsequent to combining the encoded set with the average-pooled feature vector:applying an objective function to the semantic data of the 3D point cloud to determine a semantic probability vector for the 3D point.13.The computer-implemented method of claim 12, wherein the objective function is a Softmax function.14.The computer-implemented method of claim 11, wherein the plurality of voxels have a first 3D size, the method further comprising:subsequent to combining the encoded set with the average-pooled feature vector, defining a plurality of second voxels having a second 3D size smaller than the first 3D size;average-pooling the feature vectors of the 3D points belonging to a second voxel including the 3D point to obtain a second average-pooled feature vector;combining the combined feature vector with the second average-pooled feature vector to obtain an updated combined feature vector for the 3D point.15.The computer-implemented method of claim 11, wherein combining the encoded set with the average-pooled feature vector comprises fusing the encoded set with the average-pooled feature vector.16.The computer-implemented method of claim 11, wherein combining the encoded set with the average-pooled feature vector comprises adding the encoded set to the average-pooled feature vector.17.A system for assigning a semantic data to three-dimensional (3D) points of a 3D point cloud, at least one of the 3D point being associated with a feature vector including initial semantic data, feature data and geometric data of the at least one 3D point, the system comprising a controller and a memory storing a plurality of executable instructions which, when executed by the controller, cause the system to:voxelize a 3D space including the 3D point cloud to form a plurality of voxels; for each 3D point of one or more of the 3D points:determine a corresponding 2D point being a projection of the 3D point onto a projection plane;define a neighborhood of the 2D point on the projection plane;determine a group of k 2D points located in the neighborhood, where k is an integer;encode a set of up to k feature vectors based on the feature vectors of the 3D points having their corresponding projected 2D points belonging to the group of k 2D points;average-pool the feature vectors of the 3D points belonging to a voxel including the 3D point to obtain an average-pooled feature vector; andcombine the encoded set with the average-pooled feature vector to obtain a combined feature vector for the 3D point, the combined feature vector of the 3D point including the semantic data for the 3D point cloud.18.The system of claim 17, further configured to, subsequent to combining the encoded set with the average-pooled feature vector:apply an objective function to the semantic data of the 3D point cloud to determine a semantic probability vector for the 3D point.19.The system of claim 18, wherein the objective function is a Softmax function.20.The system of claim 17, wherein the plurality of voxels have a first 3D size, the system is further configured to:subsequent to combining the encoded set with the average-pooled feature vector, define a plurality of second voxels having a second 3D size smaller than the first 3D size;average-pool the feature vectors of the 3D points belonging to a second voxel including the 3D point to obtain a second average-pooled feature vector; andcombine the combined feature vector with the second average-pooled feature vector to obtain an updated combined feature vector for the 3D point.21.The system of claim 17, wherein combining the encoded set with the average-pooled feature vector comprises fusing the encoded set with the average-pooled feature vector.22.The system of claim 17, wherein combining the encoded set with the average-pooled feature vector comprises adding the encoded set to the average-pooled feature vector.
Citation Information
Patent Citations
Visual positioning method and system based on dense semantic three-dimensional map and mixed features
CN111768498A
Indoor visual navigation method and system
CN112465907A
Laser radar target detection method and system fusing semantic information
CN113128348A
Systems and methods for providing and using confidence estimations for semantic labeling
US20230072966A1
Cited By
Point cloud semantic segmentation model and method for object and indoor scene
CN119963834A
Point cloud semantic scene completion system
CN120070902A
ALS point cloud semantic segmentation-oriented cross-layer feature interaction fusion method
CN122049605A
Visual image processing method and system based on spatial neighborhood aggregation
CN122176476A
Method for semantic segmentation of an environment of a motor vehicle
EP4765049A1
