CAPTURE AND CLASSIFICATION OF PATH MARKINGS FOR AUTONOMOUS AND SEMI-AUTOMATIC SYSTEMS AND APPLICATIONS
Patent Information
- Application Number
- DE102024123268
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-01
- Filing Date
- 2024-08-14
- Publication Date
- 2025-03-06
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Advanced Driver Assistance Systems (ADAS) are an emerging technology in the automotive industry to provide features such as lane centering, lane departure detection, adaptive lane changing, adaptive cruise control, and others. These ADAS features rely heavily on real-time or near-real-time lane marking detection and recognition techniques to extract lane features and understand the structural features of lane markings that define lane boundaries. Lane marking detection and recognition also plays an important role in the creation of high-resolution (HD) maps of roads and highways. HD maps can be used for navigation and localization applications, for example, by autonomous or semi-autonomous vehicles.However, accurate detection of pavement markings remains challenging due to factors such as poor lighting, poor road conditions, damaged pavement markings, road repairs, and / or obstructions that interfere with the collection of pavement marking data. BRIEF DESCRIPTION OF THE INVENTION
[0002] The invention is defined by the claims. To illustrate the invention, aspects and embodiments are described herein, which may or may not fall within the scope of the claims.
[0003] Embodiments of the present disclosure relate to point cloud-based heat mapping for detecting and classifying pavement markings on paths. Systems and methods are disclosed that detect and classify pavement markings from road surfaces for use in mapping and / or other applications.
[0004] In contrast to these traditional pavement marking detection systems, one or more of the embodiments described herein use multimodal sensor data (e.g., a combination of camera and LIDAR data) to generate a set of top-down tile images and apply this set of top-down tile images to a deep neural network (DNN) generator architecture model to generate lane marking-specific heat map images corresponding to the set of top-down tile images. In various examples, multimodal image data may be used to generate a set of top-down tile images that are applied to a deep neural network (DNN) generator architecture model to generate lane marking-specific heat map images corresponding to the set of top-down tile images.The multimodal sensor data may include LIDAR-collected intensity channel data, LIDAR-collected feature height channel data, and color optical image channel data. The set of top-down tile images may be processed by the generator model to automatically detect lane boundaries and navigation boundaries to generate pixel-level heat map images that can classify lane markings by marker characteristics such as line type and / or color. The generator model may comprise an encoder-decoder architecture, with functional layers for multiscale feature extraction and / or context extraction inserted between the encoder model and the decoder model.
[0005] The disclosure extends to all novel aspects or features described and / or illustrated herein.
[0006] Further features of the disclosure are characterized by the independent and dependent claims.
[0007] Any feature of one aspect of the disclosure may be applied to other aspects of the disclosure in any suitable combination. In particular, method aspects may be applied to device or system aspects, and vice versa.
[0008] Furthermore, features implemented in hardware may be implemented in software, and vice versa. Any reference to software and hardware features herein should be construed accordingly.
[0009] Any system or device feature described herein may also be provided as a method feature, and vice versa. System and / or device aspects described functionally (including means plus functional features) may alternatively be expressed in terms of their corresponding structure, such as a suitably programmed processor and associated memory.
[0010] It is also to be understood that certain combinations of the various features described and defined in each aspect of the disclosure may be implemented and / or provided and / or used independently of one another.
[0011] The disclosure also provides computer programs and computer program products comprising software code configured to, when executed on a data processing device, perform any of the methods described herein and / or embody any of the device and system features described herein, including any or all component steps of a method.
[0012] The disclosure also includes a computer or computer system (including networked or distributed systems) having an operating system that supports a computer program for performing the methods described herein and / or for embodying the device or system features described herein.
[0013] The disclosure also provides a computer-readable medium on which one or more of the aforementioned computer programs are stored.
[0014] The disclosure also provides a signal carrying one or more of the aforementioned computer programs.
[0015] The disclosure extends to methods and / or devices and / or systems as described herein with reference to the accompanying drawings.
[0016] Aspects and embodiments of the disclosure will now be described, by way of example only, with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The present systems and methods for point cloud-based heat map generation for path surface marking detection and classification are described in detail below with reference to the accompanying drawings, wherein: Fig. 1 is a data flow diagram for a system for generating heat maps for path surface markers according to some embodiments of the present disclosure; Fig. 2 is a block diagram illustrating multimodal tiling images, according to some embodiments of the present disclosure; Fig. 3 is a diagram illustrating the generation of a plurality of lane marking heat map images from a tile image, according to some embodiments of the present disclosure; Fig. 4 is a diagram illustrating an encoder-decoder architecture for a heat map generator model, according to some embodiments of the present disclosure; Fig. 5 is a diagram illustrating a generative adversarial network (GAN) training architecture for a heat map generator model, according to some embodiments of the present disclosure; Fig. 6 is a flowchart for a method for detecting path surface markers, according to some embodiments of the present disclosure; Fig. 7A is an illustration of an exemplary autonomous vehicle, according to some embodiments of the present disclosure; Fig. Figure 7B is an example of camera locations and fields of view for the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure; Fig. 7C is a block diagram of an example system architecture for the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure; Fig. 7D is a system diagram for communication between one or more cloud-based servers and the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure. Fig. 8 is a block diagram of an exemplary computing device suitable for use in implementing some embodiments of the present disclosure; and Fig. 9 is a block diagram of an exemplary data center suitable for use in implementing some embodiments of the present disclosure. DETAILED DESCRIPTION
[0018] Systems and methods for generating heat maps based on point clouds for detecting and classifying road markings on paths are disclosed. Although the present disclosure may be described with respect to map development, perception, or other aspects of autonomous or semi-autonomous systems and applications, this is not to be construed as limiting. For example, the systems and methods described herein may be used by and / or in connection with, but are not limited to, non-autonomous vehicles or machines, semi-autonomous vehicles or machines (e.g., in one or more advanced driver assistance systems (ADAS)), autonomous vehicles or machines (such as the autonomous or semi-autonomous vehicle or machine 700—alternatively referred to herein as “vehicle 700” or “ego-machine 700,” an example of which is described in Fig. 7A-7D), guided and unguided robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles coupled to one or more trailers, flying boats, boats, shuttles, emergency vehicles, motorcycles, electric or motorized bicycles, aircraft, construction vehicles, trains, underwater vehicles, remotely operated vehicles such as drones, and / or other vehicle types.Furthermore, although the present disclosure may be described with respect to the detection and classification of path surface markings for autonomous driving, this is not to be construed as limiting, and the systems and methods described herein may also be used in augmented reality, virtual reality, mixed reality, robotics, security and surveillance, autonomous or semi-autonomous machine applications, and / or any other technology areas where character classifications are used.
[0019] The present disclosure relates to the creation of maps (e.g., high-definition (HD) maps, navigation maps, etc.) for roads, highways, and / or other paths. More specifically, the systems and methods presented in this disclosure provide technologies that detect and classify lane markings on road surfaces for use in map creation and other applications—such as live perception, vehicle navigation and control, path planning, and / or the like.
[0020] Conventional pavement marking detection technologies may use image segmentation techniques to perform pixel-by-pixel classifications on an image captured by a camera to detect road surface landmark types, such as solid pavement lines and broken (e.g., dashed) pavement lines. Examples of road markings include, but are not limited to, lane markings and navigation boundaries. In this disclosure, example embodiments and descriptions relating to pavement markings may be expanded and understood to include road markings in general. Due to optical phenomena such as perspective distortion, image data from cameras becomes less accurate for features at increasing distances from the camera.For example, as distance increases in an image, detected features may appear smaller and consequently be represented by a smaller number of pixels. Accordingly, image segmentation for pavement marking classification becomes increasingly less reliable at greater distances from the image sensor. For example, as distance increases, a camera-based pavement marking detection system becomes increasingly less able to accurately identify features such as the exact center of a pavement marking to determine a relative position of that pavement marking with respect to other pavement markings or other features. Camera-based pavement marking detection may also be sensitive to poor ambient lighting conditions, which can create shadows, glare, and / or other optical artifacts in the image data that obscure or distort the appearance of a pavement marking.
[0021] Other existing technologies for detecting pavement markings may utilize LIDAR-based techniques. Unlike optical camera-based techniques, LIDAR-based pavement marking detection is not significantly affected by ambient lighting conditions and can provide accurate measurements of the distance between a LIDAR sensor and a pavement marking. However, LIDAR point cloud data becomes increasingly sparse and therefore less reliable for classifying pavement markings as the distance from the LIDAR sensor increases. LIDAR camera fusion techniques represent another technology for detecting pavement markings.LIDAR-camera fusion captures perspective optical images to detect pavement markings and backprojects these detected pavement markings onto the data acquired by the LIDAR sensor via a transformation matrix, providing more context to the detected pavement markings. However, due to perspective distortion, detections of pavement markings are less accurate for features farther from the LIDAR and camera sensors. Furthermore, backprojection relies on precise calibration and alignment between the camera and LIDAR sensors to correlate the detected pavement markings with the corresponding points in the LIDAR data, which presents another potential source of error.
[0022] In contrast to these traditional pavement marking detection systems, one or more of the embodiments described herein use a combination of camera and lidar data to generate a series of top-down tile images (or other top-down or bird's-eye view (BEV) representations) generated from multimodal sensor data, and apply this set of top-down tile images to a deep neural network (DNN) generator architecture model to generate lane marking-specific heat map images corresponding to the set of top-down tile images. The multimodal sensor data may include lidar-acquired intensity channel data, lidar-acquired feature height channel data, and color optical image channel data.The set of top-down tile images can be processed by the generator model to automatically detect road markings such as lane boundaries and / or navigation boundaries to generate pixel-level heat map images that can classify lane or road boundary markings based on marker features such as line type, line color, and / or other features.
[0023] To generate a set of top-down tile images from multimodal sensor data, raw path surface data can be collected using LIDAR and optical imaging camera sensors attached to a moving platform (e.g., a car or other vehicle) traveling along a path (e.g., a road or highway). The moving platform can travel down the path while the sensors continuously collect LIDAR point cloud data and / or optical imagery of the path surface. The result is an aggregated point cloud for a segment of the path of defined length (e.g., on the order of kilometers) with corresponding overlapping optical image patches. For example, the LIDAR sensor can operate at a frequency of ten Hertz to generate ten scans of LIDAR point cloud data per second as the platform moves along the path.The frames of optical imagery and LIDAR point cloud data can be timestamped so that the imagery can be correlated with the corresponding LIDAR data for the segment of the path. As the LIDAR data aggregates into a composite point cloud as the platform moves (e.g., with the help of ego motion compensation), the point cloud points corresponding to the features of the path surface accumulate and increase in density, both over time and as the surface features move closer to the LIDAR sensor. The resulting composite point cloud thus provides a dense dataset of LIDAR data covering the entire segment of the path. A projection transform can then be used to project the composite point cloud points onto a plane corresponding to a plane of the path surface.For example, the composite point cloud may contain data about the depth of the road surface, which can be used to create a baseline surface representation (e.g., a plane) of the path surface. The projection transform can be used to create an orthogonal projection of the points of the composite point cloud onto this baseline surface representation. A rotation-translation transform can be applied to rotate the composite point cloud with respect to the baseline surface representation to create a top-down view of the baseline surface representation of the path segment when looking down through the composite point cloud. The data provided by the individual points may indicate an intensity and / or a depth of a feature on the path surface onto which the individual points project orthogonally.In some embodiments, a rotation-translation transformation can be used in a similar manner to map pixels of the acquired optical image frames to a baseline surface representation coordinate system, yielding a combination of intensity, depth, and color data for features on the path surface as would be observed by a BEV of the path. The segment of the path covered by the composite point cloud can be divided into parts of the path to define a sequence of top-down view tile images, with the data provided by each tile image corresponding to a particular surface area of the path.Each top-down tile image can be applied to the generator model to generate one or more heat map images indicative of the pavement markings detected in the tile image, as well as one or more classifications based on the features of the pavement markings derived from the generator model. In some embodiments, the heat map images can be generated to have dimensions and a resolution that match those of the tile image, such that individual pixels of a heat map image provide data corresponding to individual pixels of the tile image, and accordingly, the pixels of the heat map image provide data corresponding to a particular location on the path surface. In some embodiments, navigation data, such as satellite navigation data (e.g.Global Positioning System (GPS) data and / or real-time kinematics (RTK) data may be acquired during the acquisition of the LIDAR and / or camera images and used to correlate and map the position of a tile image and / or the heat map images for that tile image to geographic locations. In this way, in some embodiments, the heat map images may be mapped to segments of the real path to depict pavement marking features on the surface of those path segments.
[0024] As previously mentioned, in some embodiments, the input to the generator model may include, for each tile image, lidar-determined intensity data, lidar-determined elevation data, and / or camera image-determined color data (e.g., RGB color data). The intensity data may indicate the reflectance of the road surface at each pixel of the tile image. For example, pavement markings often contain embedded reflective particles or are otherwise more reflective than other, unmarked portions of a road surface to make them easier to see. By rotating the composite point cloud to a top-down view and orthogonally projecting its points onto the baseline surface representation of the path surface, the depth data acquired by the lidar sensor may be interpreted as elevation data indicating the elevation offset of a feature relative to the baseline surface representation.Because pavement markings often comprise paints, thermoplastics, resins, or other materials applied to the top surface of a road surface, the surface of the pavement markings rises above the elevation of other, unmarked portions of the road surface, which can be detected using depth data acquired by LIDAR. Thus, the elevation data can be useful for detecting and classifying navigation boundaries. For example, the elevation data can be used to distinguish foreground pixels (road marking / lane marking) from background pixels (unmarked road surface). Navigation boundaries can include, but are not limited to, features such as curbs and barriers. In some embodiments, pixels representing a navigation boundary that does not belong to a known boundary type can be classified as an "unknown type" road marking.
[0025] The data obtained from the optical image frames can be used to detect the color of pavement markings. In some embodiments, the camera and the LIDAR sensor can be integrated together as a single device that produces a combined output including the intensity, depth, and / or color data. In some embodiments, the camera and the LIDAR sensor can be implemented separately. One or more sensor calibration parameters (e.g., a rotation-translation transform) used to correlate the orthogonal projection of point cloud points with pixels of a camera image frame to associate color data with individual pixels of a tile image (e.g., in addition to the intensity and elevation data). In some embodiments, color data (e.g.,RGB color data) are assigned to the points of the LIDAR point cloud based on matching timestamps, instead of or in addition to using (intrinsic and / or extrinsic) calibration parameters of the sensor. Because the resulting set of intensity, elevation, and / or color data is obtained from a collection of overlapping data collected on a moving platform and orthogonally projected onto a baseline surface representation of the path surface, errors that might otherwise be caused by perspective distortions, lighting conditions, and / or occlusions are substantially avoided and / or at least reduced.
[0026] In some embodiments, the tile images may be preprocessed into a standardized framework with respect to pixel dimensions and data channels before being applied to the generator model. For example, in some embodiments, the elevation data from the LIDAR sensor may include color components (e.g., determined as a function of range and reflectance data) that may be processed into a single channel of elevation data. For 8-bit RGB colors, for example, a channel of elevation data for a point in the LIDAR point cloud may be calculated based on the following expression: HeightPoint=256×HeightRed+HeightGreen+HeightBlue256−32768 where the LIDAR data Height Red the recorded height component of the red channel, Height Green the recorded height component of the green channel and Height Blueis the detected elevation component of the red channel. In some embodiments, the elevation data may be normalized over a tile image, for example, based on the following expression: Height−normalized=Height−Height−minHeight−max−Height−min where for this tile image height Punkt-m i n the minimum measured height and height Punkt-maxis the maximum measured altitude. Intensity data and color data may be normalized in a similar manner for a tile image. For example, in some embodiments, each of the three channels of 8-bit RGB intensity data from LIDAR may be normalized by dividing each channel's data value by 256 (e.g., such that each intensity channel is scaled to a value from 0 to 1), and each of the three channels of 8-bit RGB color data from camera images may be normalized by dividing each channel's data value by 256 (e.g., such that each color channel is scaled to a value from 0 to 1). Thus, in one or more such embodiments, three intensity, one altitude, and three color channels may be concatenated into an array of seven channels corresponding to an associated pixel of the tile image.
[0027] In one or more embodiments where intensity, height, and color data channels are defined for each pixel of the tile image, the tile image with these channels can be applied to a generator model to generate one or more heatmap images. In some embodiments, the generator model can output a heatmap image for each classification of the road marking features for which the generator model was trained.As non-limiting examples, the generator model may output: a first heat map image where the intensity of a pixel indicates confidence in a prediction of a line feature that the pixel is associated with a detected single solid pavement marking, a second heat map image where the intensity of a pixel indicates confidence in a prediction of the line properties that the pixel is associated with a detected single broken pavement marking, a third heat map image where the intensity of a pixel indicates confidence in a prediction of the line properties that the pixel is associated with a detected yellow pavement marking, and a fourth heat map image where the intensity of a pixel indicates confidence in a prediction of the line properties that the pixel is associated with a detected yellow pavement marking.In some embodiments, pixels with predicted confidence values that meet at least a threshold are defined as lane marking pixels. In some embodiments, for each pixel predicted to be a lane marking pixel, the generator model may also generate an angle value indicating a predicted angle of the lane marking (e.g., relative to the pixel coordinate frame of the tile image). The heat map images generated by the generator model may have dimensions that match those of the input tile images, such that there is a one-to-one correspondence between the values for a pixel at a particular column and row coordinate of a heat map image and a pixel with the corresponding column and row coordinate of the tile image.In some embodiments, heat map images generated for different classifications of pavement marking features may be combined into a composite heat map image that provides a comprehensive indication of the different line types of pavement markings detected on the path surface covered by the input tile image.
[0028] In some embodiments, the generator model comprises a deep neural network (DNN)-based semantic segmentation model trained with a generative adversarial network (GAN). As explained in more detail below, the generator model and a discriminator model may participate in a two-game zero-sum task, where the generator model iteratively learns to generate more accurate heatmap images, and the discriminator model iteratively learns to better distinguish the heatmap images generated by the generator model from the ground-truth labeled heatmap images.For example, training may continue until the generator model reaches an optimal quality threshold for generating heatmap images and / or until the discriminator model can no longer distinguish between a heatmap image generated by the generator model and a heatmap image labeled with the ground truth. A set of one or more loss functions may be computed at each training iteration (e.g., a cross-entropy loss, a perceptual loss, an L1 loss, and / or a generative adversarial (GAN) loss), which are computed by a loss optimizer. Over the course of training iterations, the generator model may adapt based on the one or more loss functions to attempt to minimize the one or more loss functions, while the discriminator model adapts to attempt to maximize the one or more loss functions.
[0029] With respect to the generator model, the machine learning model may comprise an encoder-decoder architecture, with functional layers for multi-scale feature extraction and context extraction inserted between the encoder model and the decoder model. The encoder model and the decoder model may be implemented using one or more machine learning models, such as a recurrent neural network (RNN) or another form of neural network. The encoder model may operate to compress one or more of the data channels of an input tile image into a fixed-length encoded representation in the form of an encoding vector (which may, for example, represent a set of stochastic latent embeddings for the tile image). In some embodiments, the encoder model comprises a downsampling machine learning encoder, and the decoder model comprises an upsampling machine learning decoder for semantic segmentation.
[0030] For example, the encoder model may receive the input tile image with the intensity, height, and / or color data channels and downsample the tile image into layers with different resolutions to extract image features at different resolutions. The multiscale feature extraction function layer of the generator model receives the coding vector representing the multiscale image layers from the encoder model and performs multiscale feature extraction and feature fusion to estimate segmentations of road marking landmarks from the plurality of resolution layers. For example, the multiscale feature extraction function may be implemented based on the High-Resolution Network (e.g., HRNetV2 network), which may comprise a general-purpose convolutional neural network and is commonly used for human pose estimation applications.
[0031] In some embodiments, the context extraction feature layer of the generator model operates to encode extensive context information as contextual features. For example, the context extraction feature layer may extract a context feature indicating an association of non-adjacent pixels across the tile image, such as an association between pixels belonging to separate strokes of a dashed pavement marking, pixels of different rows of a two-row pavement marking, or pixels of a pavement marking at opposite ends of a tile image that are too far apart to be matched by standard convolutional techniques. In some embodiments, the context extraction feature layer may incorporate attention mechanisms (e.g.,Self-attention-based techniques) that determine contextual interactions between non-neighboring pixels based on attention maps. In some embodiments, the context detection mechanism is implemented using lambda layers of a lambda network, which capture long-range interactions in data. Further details on lambda layers can be found in Bello, Irwan, "LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION," International Conference in Learning Representations 2021, the contents of which are incorporated herein by reference in their entirety. In some embodiments, the context extraction functional layer may apply attention mechanisms and / or lambda layers to dynamically distribute contextual features and generate an output of contextual features to the decoder model.
[0032] Based on the pavement marking landmark segmentation estimates from the multiscale feature extraction and the pixel contextual features extracted by the functional context extraction layer, the decoder model can generate an initial prediction comprising a plurality of heatmap images, with each heatmap image corresponding to a different pavement marking feature. For individual pixels, the prediction can include, for example, a binary classifier for the entire foreground (e.g., pavement marking foreground pixels versus unmarked surface background pixels), a multiclass classifier on foreground pixels for pavement type classifications (e.g.,solid line, dashed line, single-line and / or double-line pavement markings), a multi-class classifier on foreground pixels for classifying pavement colors, and / or a classifier for indicating the direction of a pavement marking (e.g., angle). In some embodiments, the marker direction angle may be predicted by an additional regression layer within the decoder model. In some embodiments, the initial prediction of heat map images by the decoder model may be upsampled to the dimensional size of the input tile image using bilinear upsampling operations in combination with convolutional layers.
[0033] With regard to training the generator model, in some embodiments, the discriminator model may include a convolutional classifier, such as a PatchGAN classifier. A PatchGAN classifier is a type of discriminator that considers an input as a collection of local image patches and penalizes structure at the scale of those local image patches. For example, when implemented with a PatchGAN classifier, the discriminator model may attempt to classify each N × N pixel local image patch in a heatmap image as a real image (e.g., a ground-truth heatmap image) or as a predicted heatmap image generated by the generator model.
[0034] In some embodiments, data augmentation may be used to augment the training data, including random scaling, random rotation, random color shifting, and / or random cropping. The dimensions of the training data input to the generator model during training may differ from the dimensions of the tile images input to the generator model for predicting heat map images. For example, cropped training data fields of 768 x 768 pixels may be used for training to produce a generator model capable of making predictions from 1024 x 1024, 2048 x 2048, and / or rectangular (e.g., 2816 x 2304) tile images. In some embodiments, the discriminator model may include one or more downsampling blocks (e.g.,a discriminator model with four downsampling blocks), where a single downsampling block may include a convolutional layer followed by a spectral normalization layer, an instance normalization layer, a leaky rectified linear unit (ReLU) layer, and / or an average pooling layer. In some embodiments, the first downsampling block may not include the spectral normalization layer. In some embodiments, the last downsampling block may not include an average pooling layer. The output of the one or more downsampling blocks may be processed by a convolutional layer (e.g., a 1 x 1 convolutional layer) to produce an output with predetermined dimensions.
[0035] For example, in some embodiments, a first input to the discriminator model may comprise a 768 x 768 x 1 heatmap image generated by the generator model, where the third dimension of size "1" is a data channel that may convey confidence that a pixel is a lane marking of the line feature for that heatmap image (e.g., an indication of whether the pixel is likely to be a foreground pixel). A second input to the discriminator model may comprise a 768 x 768 x 1 ground truth heatmap image corresponding to the line feature of the input heatmap image of the first input. These inputs may be processed by the one or more downsampling blocks of the discriminator model and applied to the convolutional layer to generate an output data array of dimensions 96 x 96 x 1.The discriminator model may evaluate the output data array to predict which of the two inputs was generated by the generator model. A loss optimization function may compute one or more loss functions to generate one or more losses based on whether the discriminator model's prediction is correct. Using the one or more losses as feedback, the generator model iteratively learns to generate more accurate heatmap images, and the discriminator model iteratively learns to better distinguish the heatmap images generated by the generator model from the ground-truth labeled heatmap images. In some embodiments, the one or more loss functions may compute one or more of a cross-entropy loss, a perceptual loss, an L1 loss, and / or a generative adversary (GAN) loss.For example, the loss functions may quantify a representation of the distance and / or difference between the feature embeddings of a generator-generated heat map and the feature embeddings of a ground-truth heat map image. In some embodiments, the L1 loss may be used to adjust the predictions for the pavement marking angle. In one or more embodiments, the perceptual loss may be applied to penalize an L1 loss norm between predicted and ground-truth feature extractions. Regarding the cross-entropy loss, a small weight (e.g., 0.01) may be assigned to background pixels (e.g., unmarked road surface pixels) to compensate for data imbalances.The GAN loss may include losses for training the generator model or the discriminator model, and in some embodiments may be implemented as a least-squares GAN loss. In some embodiments, one or more of these losses may be computed independently and fed back as a composite loss to train the generator model and / or the discriminator model.
[0036] In one or more embodiments, the training data may be preprocessed to address the problem of missing ground truth labels, which can negatively impact re-acquisition. For example, occasionally, the training data may include a valid image where one or more pavement markings are unlabeled. When such training images are input to the generator model, a generator model may learn incorrect inferences due to the ambiguity of two substantially similar pavement marking features that are not similarly labeled.Accordingly, in some embodiments, a training mask may be created for each training image, including within the mask the labeled lane marking features on which the generator model should train, and excluding from the mask unlabeled lane marking features that the generator model should ignore during training. For example, a training mask for cross-entropy loss may be created using ground truth markers and LIDAR-derived elevation images. A training data preprocessor may apply a binary dilation method to dilate a labeled ground truth heat map and create a first mask. Based on defining pixels with zero elevation as not belonging to the path, the preprocessor uses this information to create a second mask with pixels belonging to the path.The first and second masks are added together to generate the final training mask. During training for the cross-entropy loss, backpropagation is restricted to pixels within this training mask.
[0037] In some embodiments, the heat map images generated by the generator model can be used to create high-resolution (HD) maps of roads and highways that can be used for navigation and localization applications of autonomous or semi-autonomous vehicles and machines. For example, a set of heat map images generated from a tile image can be used to define a traffic control map indicating the position and properties of pavement markings for a segment of a path corresponding to the tile image. A series of traffic control maps derived in this way can be sequentially linked to create a comprehensive HD map of the path, which can be used, for example, to plan vehicle routes and / or to control real-time or near-real-time navigation (e.g., localization) of vehicles traveling on the path represented by the HD map.In some embodiments, vector-based lane lines for an HD map may be generated based on the lane marking predictions of the heat map images. For example, vector-based lane lines may be generated that combine lane marking predictions for one tile image with lane marking predictions of the same line type for a neighboring tile image. In some embodiments, vectorization based on the heat map images may be used to generate a graphical skeleton of lane markings, where the lines of the graphical skeleton may be projected onto pixel positions of the tile image to align the lane marking for the tile images and / or generate the HD map. In various embodiments, the HD map may be used to generate simulation environments, such asfor gaming, vehicle traffic simulations, and / or autonomous or semi-autonomous vehicle training. In one or more embodiments, the heat map images generated from a tile image can be used as ground-truth training data for training other machine learning models.
[0038] As further described herein, one or more aspects of the generator model and / or the discriminator model may be executed at least in part on one or more graphics processing units, which may operate in conjunction with software executing on a central processing unit coupled to memory. The graphics processing units are programmed to execute kernels to implement one or more of the features and functions of the generator model and / or the discriminator model. In some embodiments, aspects of the generator model and / or the discriminator model may be executed in parallel on various GPUs and / or other parallel processing units (PPUs).In some embodiments, some features and functions of the generator model and / or the discriminator model may be distributed and executed by a combination of processors and cloud computing resources. For example, in some embodiments, the generator model and / or the discriminator model may be implemented at least partially as a virtual function in a cloud computing environment and / or as a component of a virtualized machine learning model.
[0039] Referring to Fig. 1 is Fig. 1 is a dataflow diagram for an exemplary path surface lane marker detection system 100 according to some embodiments of the present disclosure. It should be understood that these and other arrangements described herein are set forth as examples only. Other arrangements and elements (e.g., machines, interfaces, functions, arrangements, groupings of functions, etc.) may be used in addition to or in place of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that may be implemented as individual or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions performed by entities described herein may be performed by hardware, firmware, and / or software.For example, various functions may be performed by a processor executing instructions stored in memory. In some embodiments, the systems, methods, and processes described herein may be implemented using similar components, features, and / or functionality as those of the autonomous vehicle 700 of FIG. Fig. 7A-7D, the computer device 800 of Fig. 8 and / or the data center 900 Fig. 9.
[0040] As in Fig. 1, the path surface lane marker detection system 100 may include a path surface feature processor 105 that receives composite surface point cloud data 107 collected from the surface of a path by one or more point cloud sensors 106 and / or surface color data 111 collected from the path surface by one or more optical image sensors 110. The one or more point cloud sensors 106 may include a radar sensor, a lidar sensor, and / or another sensor that generates depth data in a point cloud and / or other form. Although referred to as one or more point cloud sensors 106, this is not intended to be limiting, and the one or more point cloud sensors 106 may generate output representations that differ from point clouds in some embodiments.The surface color data 111 may be derived from optical image data acquired by one or more optical image sensors 110 that may be positioned on a movable platform (e.g., vehicle 700). For example, an optical image sensor 110 may include a camera or other optical sensor that captures, as non-limiting examples, RGB, IR, and / or RGB-IR image frames. In some embodiments, a point cloud sensor 106 and / or optical image sensor 110 may include a sensor and / or a camera, as described with respect to FIG. Fig. 7A and / or 7B. In some embodiments, composite surface point cloud data 107 may include point cloud data containing a fusion of images from multiple point cloud sensors 106. In some embodiments, surface color data 111 may include image data containing a fusion of images from multiple optical image sensors 110. Based on the composite surface point cloud data 107 and the surface color data 111, the path surface feature processor 105 uses a heat map generator model 120 to generate one or more pavement marking heat map images 122.
[0041] In one or more embodiments, the path surface feature processor 105 generates a set of tile images 116 in the top-down view from the composite surface point cloud data 107 and the surface color data 111. As described above, a moving platform may travel along a path while the one or more point cloud sensors 106 and the one or more optical image sensors 110 collect point cloud data and / or optical image frames of the path surface. The points of the composite point cloud data 107 may include depth data 108 and / or surface intensity data 109. The depth data 108 may include depth information for areas of the path surface where pavement markings have been applied, as well as for the unmarked areas of the path surface.Because pavement markings often include paints, thermoplastics, resins, or other materials applied to the surface of a road, the surface of the pavement markings may extend beyond the unmarked portions of the path surface. Elevation data for the pavement markings may be acquired based on relative differences between the depth data for the marked and unmarked portions of the path surface. The elevation data may be used by the heat map generator model 120 to detect and classify navigation boundaries and may be used to easily distinguish foreground pixels (pavement markings) from background pixels (unmarked road surface). The surface intensity data 109 may indicate the reflectance of different regions of the path.For example, pavement markings often contain embedded reflective particles or are otherwise more reflective than other, unmarked sections of a road surface to make them more visible.
[0042] In some embodiments, image frames of the surface color data 111 and the composite point cloud data 107 may be timestamped or otherwise marked so that the color data can be correlated with the corresponding point cloud data for the portion of the path. The data collected by LIDAR condenses into a composite point cloud as the one or more point cloud sensors 106 move, such that the points of the composite point cloud data 107 corresponding to features of the path surface accumulate and condense both over time and as the surface features approach the one or more point cloud sensors 106.The resulting composite point cloud data 107 thus provides a dense dataset of depth and intensity data that can be combined with the surface color data 111 to generate the aggregated path surface data 112 covering the path segment.
[0043] One or more projection transformations 114 may then be applied by the path surface feature processor 105 to project the generated aggregated path surface data 112 onto a plane corresponding to the path surface. In some embodiments, the composite point cloud data 107 may include, for example, data about the depth of the road surface, which may be used by the path surface feature processor 105 to define a baseline surface representation 113 (e.g., a plane) of the path surface. The projection transformation 114 may generate an orthogonal projection of the points and / or color data of the composite path surface data 112 onto this baseline surface representation 113.In some embodiments, the projection transform 114 may apply a rotation-translation transformation to rotate the composite point cloud data 107 and / or the surface color data 111 with respect to the baseline surface representation to generate a top-down view of the baseline surface representation 113 of the segment of the path when looking down through the composite point cloud data 107. The aggregated path surface data 112 may be divided into sections of the path to define the sequence of tile images 116 in the top-down view, with the data channel provided by each tile image corresponding to a particular surface area of the path.
[0044] For example, referring to Fig. 2 illustrates Fig. 2 illustrates a segment 214 of a path 210. The path 210 may, for example, comprise a section of a road or highway that is, for example, one or more kilometers long. The path 210 includes a surface 212 that includes pavement markings 208 and unmarked surface areas 209. In some embodiments, the aggregated path surface data 112 may be collected by the one or more point cloud sensors 106 and / or the one or more optical image sensors 110 while moving along the segment 214 of the path 210. The one or more point cloud sensors 106 and / or the one or more optical image sensors 110 may sample the surface 212 at a frequency such that multiple overlapping samples are obtained across the segment as the platform with the sensors moves.The points of aggregated path surface data 112 corresponding to features of path surface 212 accumulate and become more dense both over time and as the surface features move closer to the sensors. The collected data may then be rotated and / or orthogonally projected onto baseline surface representation 113, which represents a baseline plane of surface 212 of path 210. In some embodiments, tile images 116 may be generated by path surface feature processor 105 by dividing segment 214 into subdivisions 216, each corresponding to a length of path 210. That is, a tile image 116 may include data channels containing the point cloud and color data projected by projection transform 114 onto baseline surface representation 113 within the boundaries of a subdivision 216 of segment 214. As shown in FIG. Fig. 2, each tile image 116 may include one or more of surface intensity channels 220, surface height channels 222, and surface color channels 224. Thus, the data provided by the individual pixel channels of a tile image 116 may indicate an intensity, height, and / or color of a feature on the path surface onto which the individual points of the aggregated path surface data 112 orthogonally project. Thus, each tile image 116 may include a combination of intensity, depth, and / or color data features on the path surface 210, as seen from a top-down, bird's-eye view of the path 210.
[0045] Each top-down tile image 116 can be applied to the heat map generator model 120 to generate one or more lane marking heat map images 122 indicative of the lane markings captured in that tile image 116. The lane marking heat map images 122 can display one or more classifications based on the lane marking features derived from the heat map generator model 120. As shown in Fig. 3, for example, a tile image 116 including one or more surface intensity channels 220 (which may be represented as intensity image 310), one or more surface elevation channels 222 (which may be represented by elevation image 320), and one or more surface color channels 224 (which may be represented by color image 330) may be provided as input to heat map generator model 120. Based on tile image 116, heat map generator model 120 may infer lane marking features from tile image 116 and generate a prediction including one or more lane marking heat map images 122.In some embodiments, the lane marking heat map images 122 may be generated to have dimensions and resolution corresponding to those of the tile image 116, such that individual pixels of a lane marking heat map image 122 provide data corresponding to individual pixels of the tile image 116, and accordingly, a pixel of each heat map image provides data corresponding to a particular location on the surface 212 of the path 210.
[0046] In some embodiments, the generator model may output a prediction comprising a set of heat map images, where each heat map image corresponds to a classification of pavement marking features that the heat map generator model 120 is trained to predict. For example, the prediction may include a binary classifier for an overall foreground heat map 342 (e.g., pavement marking foreground pixels versus unmarked surface background pixels). The prediction may include multi-class classifiers for the foreground pixels (e.g., as identified by the overall foreground heat map 342) for lane type classifications, such as, but not limited to, a double solid line heat map to lane marking 344, a long dash (dashed line) heat map to lane marking 346, and a single solid line heat map to lane marking 348.The prediction may include multi-class classifiers for the foreground pixels to classify the color of the lane marking, such as, but not limited to, a white lane marking heat map 350 and a yellow lane marking heat map 352. In some cases, the heat map generator model 120 may detect a feature extracted from a tile image 116 as a lane marking feature, but that feature does not match a learned classification of the lane features. In such cases, the prediction of the heat map generator model 120 may include an undefined lane marking heat map 354 indicating pixels where undefined lane markings are located.
[0047] In some embodiments, the heat map generator model 120 may calculate confidence values indicating the confidence in the predicted classification of a pixel. Those pixels whose confidence values meet at least a threshold are defined as lane marker pixels within the particular classification associated with a heat map image. In some embodiments, the generator model may also generate an angle value indicating a predicted angle of the lane marker (e.g., relative to the pixel coordinate frame of the tile image) for one or more pixels of a lane marker heat map image 122 that were predicted as lane marker pixels.
[0048] The lane marking heat map images 122 generated by the heat map generator model 120 may have dimensions that match those of the input tile image 116, such that there is a one-to-one correspondence between the values for a pixel at a particular column and row coordinate of a heat map image 122 and a pixel with the corresponding column and row coordinate of the tile image 116. In some embodiments, heat map images 122 generated for different pavement marking feature classifications may be combined into a composite heat map image that provides a more comprehensive indication of the various line features (e.g., type and / or color) of pavement markings detected on the path surface covered by the input tile image.For example, the position of yellow dashed pavement markings within a tile image 116 may be determined based on the identification of pavement marking pixels that appear in both the long dashed pavement marking heat map 346 and the yellow pavement marking heat map 352.
[0049] In some embodiments, navigation data, such as satellite navigation data (e.g., Global Positioning System (GPS) data) and / or real-time kinematics (RTK) data, may be acquired during the acquisition of the point cloud and / or camera image frames and used to correlate and map the position of a tile image 116 and / or the heat map images 122 for that tile image 116 with the geographic position of the corresponding subdivision 216 of the path segment 214. In this way, in some embodiments, the heat map images 122 of the pavement marking may be mapped to segments of the real path 210 to depict features of the pavement marking on the surface 212 of that path segment 214.
[0050] With regard to the architecture of the heat map generator model 120, the heat map generator model 120 may include a machine learning model with an encoder-decoder architecture. As in Fig. As shown in Figure 4, the heat map generator model 120 may include a downsampling encoder model 410 and an upsampling decoder model 450, with a multiscale feature extraction functional layer 420 and a context extraction functional layer 430 sandwiched between the encoder model 410 and the decoder model 450. The encoder model 410 and the decoder model 450 may be implemented with one or more machine learning models, such as a recurrent neural network (RNN) or another form of neural network. The encoder model 410 may operate to compress one or more of the data channels of an input tile image 116 (e.g., the one or more surface intensity channels 220, the one or more surface height channels 222, and / or the one or more surface color channels 224) into a fixed-length encoded representation in the form of an encoding vector (e.g.,may represent a set of stochastic latent embeddings for the tile image 116). In some embodiments, the encoder model 410 includes a downsampling machine learning encoder and the decoder model 450 includes an upsampling machine learning decoder for semantic segmentation.
[0051] In some embodiments, the encoder model 410 may receive an input tile image 116 and downsample the tile image into layers with different resolutions to extract image features at different resolutions. The multiscale feature extraction functional layer 420 receives the encoding vector representing the multiscale image layers from the encoder model 410 and performs multiscale feature extraction and feature fusion to estimate segmentations of road marking landmarks from the plurality of resolution layers. For example, the multiscale feature extraction functional layer 420 may be implemented based on the High-Resolution Network (e.g., HRNetV2 network), which may include a general-purpose convolutional neural network commonly used for human pose estimation applications.
[0052] In some embodiments, the context extraction functional layer 430 encodes extensive context information as contextual features. For example, the context extraction functional layer 430 may extract a contextual feature indicating an association of non-adjacent pixels across the tile image 116, such as an association between pixels belonging to separate strokes of a dashed pavement marking, pixels of different rows of a two-row pavement marking, or pixels of a pavement marking at opposite ends of a tile image 116. Such features may be too far apart to be associated with standard convolutional techniques. In some embodiments, the context extraction functional layer may implement attention mechanisms (e.g.,Self-attention-based techniques) that determine contextual interactions between non-neighboring pixels based on attention maps. In some embodiments, the context detection mechanism is implemented using lambda layers of a lambda network, which capture long-range interactions in data. Further details on lambda layers can be found in Bello, Irwan, "LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION," International Conference in Learning Representations 2021, the contents of which are incorporated herein by reference in their entirety. In some embodiments, the context extraction functional layer may apply attention mechanisms and / or lambda layers to dynamically distribute contextual features and generate an output of contextual features to the decoder model.
[0053] The decoder model 450 may generate a downsampled prediction based on the lane marking landmark segmentation estimates from the multiscale feature extraction functional layer 420 and the contextual features of pixels extracted by the context extraction functional layer 430. The prediction 460 may include the plurality of pavement marking heatmap images 122 with individual heatmap images corresponding to one or more of the various pavement marking features as discussed herein. For individual pixels, the prediction 460 may include heatmap images 122, such as, but not limited to, a binary classifier for the entire foreground (e.g., pavement marking foreground pixels versus unmarked surface background pixels), a multiclass classifier on foreground pixels for classifying pavement types (e.g.,solid line, dashed line, single line, and / or two-line pavement markings), a multi-class classifier for classifying foreground pavement colors, and / or a classifier for indicating pavement marking direction (e.g., angle). In some embodiments, the marker direction angle may be predicted by an additional regression layer within the decoder model 450. In some embodiments, the downsampled prediction of heatmap images 122 by the decoder model 450 may be upsampled to produce a prediction 460 of lane marking heatmap images 122 corresponding to the dimensional size of the input tile image 116, e.g., using bilinear upsampling operations in combination with convolutional layers.
[0054] Referring to Fig. 5 is Fig. 5 is a diagram illustrating the training architecture 500 of a generative adverse network (GAN) for the heat map generator model 120, as used in some embodiments of the present disclosure. As shown in Fig. 5, the heat map generator model 120 and a discriminator model 540 may participate in a two-game zero-sum task where the heat map generator model 120 iteratively learns to generate more accurate heat map image predictions 530 (e.g., using an input training data tile image 518), and the discriminator model 540 iteratively learns to better discriminate the heat map images 530 generated by the generator model from the ground truth labeled training data images 510. Training of the heat map generator model 120 may continue, for example, until the heat map generator model 120 reaches an optimal quality threshold for generating heat maps and / or the discriminator model 540 can no longer distinguish between a heat map image generated by the generator model 120 and a ground truth labeled heat map image.
[0055] As in Fig. 5, during training, the heat map generator model 120 inputs a training data time image 505 (e.g., from the ground truth labeled training data 510). As previously described with respect to a tile image 116, the training data time image 505 may include one or more surface intensity channels 506 (as described with respect to the surface intensity channels 220), one or more surface intensity channels 507 (as described with respect to the surface height channels 222), and / or one or more surface intensity channels 508 (as described with respect to the surface color channels 224). A training iteration of the heat map generator model 120 may include processing the training data time image 505 to generate one or more predicted heat maps 520 (e.g., as described with respect to the pavement marking heat map images 122).The discriminator model 540 evaluates the one or more predicted heat maps 520 against the training data 510 labeled as ground truth and attempts to predict which one was generated by the heat map generator model 120. The accuracy of the prediction by the discriminator model 540 may be represented by a prediction value 542, which is used by the loss optimizer 500 to adjust the heat map generator model 120 and / or the discriminator model.
[0056] In some embodiments, the discriminator model 540 may include a convolutional classifier, such as a PatchGAN classifier. A PatchGAN classifier is a type of discriminator that considers an input as a collection of local image patches and penalizes structure at the scale of those local image patches. For example, the discriminator model 540 implemented with a PatchGAN classifier may attempt to classify one or more N × N pixel local image patches of a heatmap image as either a ground truth image (e.g., an image derived from ground truth-labeled training data 510) or a predicted heatmap image 530 generated by the heatmap image generator model 120.
[0057] At each training iteration performed with the GAN training architecture 500, a set of one or more loss functions may be calculated by the loss optimizer 550, for example, based on the prediction result 542. The loss optimizer 550 may calculate one or more loss functions, such as, but not limited to, a cross-entropy loss, a perceptual loss, an L1 loss, and / or a generative adverse (GAN) loss. One or more loss feedback signals based on the one or more loss functions may be generated by the loss optimizer 550 to adjust the heat map generator model 120 and / or the discriminator model 540.Over the course of the training iterations performed by the GAN training architecture 500, the heat map generator model 120 may be adjusted based on the one or more loss feedback signals to attempt to minimize the one or more loss functions. The discriminator model 540 may be adjusted based on the one or more loss feedback signals to attempt to maximize the one or more loss functions.
[0058] In some embodiments, data augmentation may be used to augment the ground truth labeled training data 510, including random scaling, random rotation, random color shift, and / or random cropping. As previously mentioned, the dimensions of the training data image input to the heat map generator model 120 during training with the GAN training architecture 500 may differ from the dimensions of the tile images input to the heat map generator model 120 during runtime to predict pavement marking heat map images 122. In some embodiments, the discriminator model 540 may include one or more downsampling blocks (e.g.,a discriminator model with four downsampling blocks), where a single downsampling block may include a convolutional layer followed by a spectral normalization layer, an instance normalization layer, a leaky rectified linear unit (ReLU) layer, and / or an average pooling layer. In some embodiments, the first downsampling block may not include the spectral normalization layer. In some embodiments, the last downsampling block may not include an average pooling layer. The output of the one or more downsampling blocks may be processed by a convolutional layer (e.g., a 1 x 1 convolutional layer) to produce an output with predetermined dimensions.
[0059] For example, in some embodiments, a first input to the discriminator model 540 may include a 768 x 768 x 1 predicted heatmap 530 generated by the generator model 120. The third dimension of size "1" may include a data channel to convey the confidence that a pixel is a lane marking of the line feature for that heatmap image (e.g., an indication of whether the pixel is predicted to be a foreground pixel). A second input to the discriminator model 540 may include a 768 x 768 x 1 ground truth heatmap image corresponding to the line feature of the input heatmap image of the first input. These inputs may be processed by the one or more downsampling blocks of the discriminator model and applied to the convolutional layer to generate an output data array of dimensions 96 x 96 x 1.The discriminator model 540 may evaluate the output data array to predict which of the two inputs was generated by the generator model 120. The loss optimizer 550 may calculate the one or more loss functions based on whether the prediction of the discriminator model 540 is correct. Using the one or more losses as feedback, the heat map generator model 120 iteratively learns to generate more accurate heat map images, and the discriminator model 540 iteratively learns to better distinguish the heat map images generated by the generator model 120 from the ground truth labeled heat map images.
[0060] In one or more embodiments, the training data may be preprocessed by a training data preprocessor 520. For example, occasionally the training data may include a valid image that is missing one or more ground truth lane markings. Accordingly, in some embodiments, the training data preprocessor 520 may generate and apply a training mask 522 to be used with a training image used to train the heat map generator model 120. The training mask 522 may include in the mask the labeled lane marking features on which the generator model 120 is to be trained and exclude from the mask the unlabeled lane marking features that the generator model 120 is to ignore during training.As an example, in some embodiments, a first mask for the cross-entropy loss may be created using ground truth labels and LIDAR-derived elevation images. The training data preprocessor 520 may apply a binary dilation method to dilate a labeled ground truth heat map and create the first mask. Based on the definition of zero-elevation pixels as not belonging to the path, the preprocessor 520 uses this information to create a second mask with pixels belonging to the path. The first and second masks are added to generate the final training mask 522. During training for the cross-entropy loss, backpropagation is limited to pixels located within this training mask 522.
[0061] Referring to Fig. 6 is Fig. 6 is a flowchart illustrating a method 600 for detecting path surface markings according to some embodiments of the present disclosure. It should be understood that the features and elements described herein with respect to the method 600 of Fig. 6 may be used in conjunction with, in combination with, or instead of elements of any of the other embodiments discussed herein, and vice versa. Furthermore, it is noted that the functions, structures, and other descriptions of elements for embodiments discussed in Fig. 6 may apply to identical or similarly named or described elements in all figures and / or embodiments described here and vice versa.
[0062] Each block of the method 600 described herein comprises a computational process that may be performed using any combination of hardware, firmware, and / or software. Various functions may be performed, for example, by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name a few. Furthermore, the method 600 is exemplified with respect to the path surface lane marker detection system 100 of Fig. 1. However, these methods may additionally or alternatively be performed by any system or combination of systems, including, but not limited to, the systems described herein.
[0063] As discussed in more detail herein, the method may include generating at least one heat map image for at least one pavement marking feature (e.g., a pavement marking line feature) based on applying at least one tile image of a path surface to a generator model to perform semantic segmentation to classify pixels of the at least one tile image representing pavement markings, wherein the at least one tile image of the path surface is based on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, and path surface color data.
[0064] The method 600 includes, at block B602, generating at least one tile image of a path surface based at least on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data is obtained based at least on sensor data associated with the path surface. In some embodiments, the path surface feature processor 105 may use the one or more projection transforms 114 to project the points of the composite point cloud onto a plane corresponding to a level of the path surface. For example, the composite point cloud may include road surface depth data that may be used to create a baseline surface representation (e.g., a level) of the path surface.Projection transformation 114 may be used to generate an orthogonal projection of the composite point cloud points onto this baseline surface representation. Projection transformation 114 may include a rotation-translation transformation to rotate the composite point cloud with respect to the baseline surface representation to generate the top-down view of the baseline surface representation of the path segment when looking down through the composite point cloud. The data provided by the individual points may indicate an intensity and / or a depth of a feature on the path surface onto which the individual points project orthogonally.In some embodiments, a projection transform 114 may similarly be used to map pixels of the acquired optical image frames to a coordinate system of the baseline surface representation, yielding a combination of intensity, depth, and color data for features on the path surface as would be observed from a top-down, bird's-eye view of the path. The segment of the path covered by the composite point cloud may be divided into parts of the path to define a sequence of top-down tile images, with the data provided by each tile image corresponding to a particular surface area of the path.
[0065] Aggregated path surface data for at least one segment of a path surface may be received based at least on sensor data representing the path surface. As described herein, a moving platform may travel a path while one or more point cloud sensors and / or one or more optical image sensors collect point cloud data and / or optical image frames of the path surface. The point cloud data may include depth data and / or surface intensity data. The depth data may include depth information for areas of the path surface where pavement markings have been applied, as well as for the unmarked areas of the path surface. The elevation data for the pavement markings may be collected based on relative differences between the depth data for the marked and unmarked portions of the path surface.The elevation data can be used by a heat map generator model to detect and classify navigation boundaries and can be used to easily distinguish foreground pixels (pavement and / or road markings) from background pixels (unmarked road surface). Surface intensity data can indicate the reflectivity of different regions of the path. For example, road markings often contain embedded reflective particles or are otherwise more reflective than other, unmarked sections of a road surface to make them easier to see.
[0066] In some embodiments, image frames of the surface color data and the composite point cloud data can be timestamped or otherwise marked so that the color data can be correlated with the corresponding point cloud data for the portion of the path. The data collected by LIDAR aggregates into a composite point cloud as the one or more point cloud sensors move, such that the points of the composite point cloud data corresponding to features of the path surface accumulate and condense both over time and as the surface features approach the one or more point cloud sensors. The resulting composite point cloud data provides a dense dataset of depth and intensity data that can be combined with the surface color data to produce the aggregated path surface data covering the path segment.As such, the aggregated path surface data may include at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, and path surface color data. The aggregated path surface data may include at least one composite point cloud of LIDAR data acquired by at least one sensor on a movable platform positioned at a plurality of locations along the path surface segment. In some embodiments, the aggregated path surface data further includes location data (e.g., navigation data) indicating a position at which the sensor data was acquired. Navigation data, such as satellite navigation data (e.g.,Global Positioning System (GPS) data and / or real-time kinematics (RTK) data may be acquired during the acquisition of the LIDAR and / or camera image frames and used to correlate and map the position of a tile image and / or the heat map images for that tile image to geographic locations. In this way, in some embodiments, the heat map images may be mapped to segments of the real path to depict the road marking features on the surface of those path segments.
[0067] The method 600 includes, in block B604, applying the at least one tile image to a generator model to perform a semantic segmentation of the at least one tile image that classifies one or more pixels of the at least one tile image based at least on one or more features of the road marking. In some embodiments, the generator model may include an encoder model and a decoder model, as in Fig. 4. The encoder model of the generator model can be used to downsample the at least one tile image into a multiscale image representation comprising a plurality of resolution levels. In some embodiments, a multiscale feature extraction functional layer of the generator model can perform one or more multiscale feature extractions to estimate one or more segmentations of road marking landmarks from the plurality of resolution layers. The decoder model of the generator model can be used to upsample the one or more segmentations of road marking landmarks to generate the at least one heat map image.In some embodiments, the generator model may include a context extraction feature layer that may be used to extract one or more contextual features indicating at least one contextual association between the one or more segmentations of road marker points. The context extraction feature layer may determine the at least one contextual association using at least one attention mechanism based on one or more attention maps and / or determine the at least one contextual association using one or more lambda layers of a lambda network. In some embodiments, the generator model may be trained using feedback comprising at least one loss determined by a discriminator model based on a generative adverse network (GAN) training architecture.The at least one loss may be calculated based on a first input comprising at least one heatmap image and a second input comprising at least one heatmap image labeled with a ground truth. In some embodiments, the method may include generating at least one training mask based at least on the at least one heatmap image labeled with the ground truth, and training the generator model based at least on road marking features of a training data image located within the at least one training mask.
[0068] The method 600 includes, at block B606, generating at least one heat map image based at least on one or more pixels of the at least one tile image classified as representing the one or more road marking features. One or more pixels of the at least one heat map image may represent road marking locations for the road marking feature comprising at least one of, but not limited to, a solid line pavement marking, a dashed line pavement marking, a white line pavement marking, or a yellow line pavement marking. In some embodiments, the at least one heat map image may include an indication of the angle of the line marking for at least one pavement marking. The method may include creating a map of the path surface based at least on the at least one heat map image.
[0069] The systems and methods described herein may be used, without limitation, by and / or in connection with: non-autonomous vehicles, semi-autonomous vehicles (e.g., in one or more adaptive driver assistance systems (ADAS)), guided and unguided robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles coupled to one or more trailers, flying vessels, boats, shuttles, emergency vehicles, motorcycles, electric or motorized bicycles, aircraft, construction vehicles, trains, underwater vehicles, remotely operated vehicles such as drones, and / or other types of vehicles.Furthermore, the systems and methods described herein may be used for a variety of purposes, including, but not limited to, machine control, machine locomotion, machine propulsion, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and surveillance, simulation and digital partnerships, autonomous or semi-autonomous machine applications, deep learning, environmental simulation, object or actor simulation and / or digital twinning, data center processing, conversational AI, light transport simulation (e.g., ray tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing, and / or other suitable applications.
[0070] The embodiments presented here may include a variety of different systems, such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine), systems implemented with a robot, aviation systems, media systems, boat systems, intelligent area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems for performing digital twinning operations, systems implemented using an edge device, systems containing one or more virtual machines (VMs), systems for performing generative AI operations using a language model - such asa large language model (LLM); systems for performing synthetic data generation operations, systems implemented at least partially in a data center, systems for performing conversational AI operations, systems for performing light transport simulations, systems for performing collaborative content creation for 3D assets, systems implemented at least partially using cloud computing resources, and / or other types of systems. EXAMPLE OF AN AUTONOMOUS VEHICLE
[0071] Fig. 7A is an illustration of an example autonomous vehicle 700, according to some embodiments of the present disclosure. The autonomous vehicle 700 (alternatively referred to herein as "vehicle 700") may include, without limitation, a passenger vehicle, such as a car, a truck, a bus, an emergency service vehicle, a shuttle, an electric or motorized bicycle, a motorcycle, a fire engine, a police vehicle, an ambulance, a boat, a construction vehicle, an underwater vehicle, a robotic vehicle, a drone, an aircraft, a vehicle coupled to a trailer (e.g., a semi-trailer used to transport cargo), and / or another type of vehicle (e.g., that is unmanned and / or accommodates one or more passengers).Autonomous vehicles are generally described in terms of levels of automation defined by the National Highway Traffic Safety Administration (NHTSA), a division of the U.S. Department of Transportation, and the Society of Automotive Engineers (SAE) "Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles" (Standard No. J3016-201806, published June 15, 2018, Standard No. J3016-201609, published September 30, 2016, and prior and future versions of this standard). The vehicle 700 may exhibit functionality according to one or more of the Level 3 - Level 5 autonomous driving levels. The vehicle 700 may exhibit functionality according to one or more of the Level 1 - Level 5 autonomous driving levels.For example, depending on the embodiment, the vehicle 700 may be capable of driver assistance (Level 1), partial automation (Level 2), conditional automation (Level 3), high automation (Level 4), and / or full automation (Level 5). The term "autonomous" as used herein may include any and / or all types of autonomy for the vehicle 700 or other machine, such as fully autonomous, highly autonomous, conditionally autonomous, partially autonomous, assisted autonomy, semi-autonomous, primarily autonomous, or another designation.
[0072] The vehicle 700 may include components such as a chassis, a vehicle body, wheels (e.g., 2, 4, 6, 8, 18, etc.), tires, axles, and other components of a vehicle. The vehicle 700 may include a propulsion system 750, such as an internal combustion engine, a hybrid electric power plant, a pure electric motor, and / or another type of propulsion system. The propulsion system 750 may be connected to a drivetrain of the vehicle 700, which may include a transmission to enable propulsion of the vehicle 700. The propulsion system 750 may be controlled in response to receiving signals from the throttle or accelerator 752.
[0073] A steering system 754, which may include a steering wheel, may be used to steer the vehicle 700 (e.g., along a desired path or route) when the propulsion system 750 is operating (e.g., when the vehicle is moving). The steering system 754 may receive signals from a steering actuator 756. The steering wheel may be optional for full automation (Level 5).
[0074] The brake sensor system 746 may be used to apply the vehicle brakes in response to receiving signals from the brake actuators 748 and / or the brake sensors.
[0075] The one or more controllers 736 that control one or more systems on chips (SoCs) 704 ( Fig. 7C) and / or GPUs may provide signals (e.g., representative of instructions) to one or more components and / or systems of the vehicle 700. For example, the one or more controllers may send signals to apply the vehicle brakes via one or more brake actuators 748, to apply the steering system 754 via one or more steering actuators 756, to apply the propulsion system 750 via one or more throttle / accelerator devices 752. The one or more controllers 736 may include one or more built-in (e.g., integrated) computing devices (e.g., supercomputers) that process sensor signals and issue operational commands (e.g., signals representing commands) to enable autonomous driving and / or to assist a human driver in driving the vehicle 700.The one or more controllers 736 may include a first controller 736 for autonomous driving functions, a second controller 736 for functional safety functions, a third controller 736 for artificial intelligence functions (e.g., computer vision), a fourth controller 736 for infotainment functions, a fifth controller 736 for emergency redundancy, and / or other controllers. In some examples, a single controller 736 may perform two or more of the above functionalities, two or more controllers 736 may perform a single functionality, and / or any combination thereof.
[0076] The one or more controllers 736 may provide the signals to control one or more components and / or systems of the vehicle 700 in response to sensor data received from one or more sensors (e.g., sensor inputs). The sensor data may be received, for example and without limitation, from one or more of the following: global navigation satellite systems (“GNSS”) sensor(s) 758 (e.g., global positioning system sensor(s)), RADAR sensor(s) 760, ultrasonic sensor(s) 762, LIDAR sensor(s) 764, inertial measurement unit (IMU) sensor(s) 766 (e.g., accelerometer(s), gyroscope(s), magnetic compass(es), magnetometer(s), etc.), microphone(s) 796, stereo camera(s) 768, wide-angle camera(s) 770 (e.g., fisheye cameras), infrared camera(s) 772, ambient camera(s) 774 (e.g.,360-degree cameras), long-range and / or medium-range camera(s) 798, speed sensor(s) 744 (e.g., for measuring the speed of the vehicle 700), vibration sensor(s) 742, steering sensor(s) 740, brake sensor(s) (e.g., as part of the brake sensor system 746), one or more sensors of the occupant monitoring system (OMS) 801 (e.g., one or more interior cameras), and / or other types of sensors. In some embodiments, the one or more controllers 736 may provide the signals for controlling one or more components and / or systems of the vehicle 700 based on heat map images of the pavement marking 122 generated by the heat map generator model 120 and / or other maps derived at least in part from heat map images of the pavement marking 122.
[0077] One or more of the controllers 736 may receive inputs (e.g., in the form of input data) from an instrument cluster 732 of the vehicle 700 and provide outputs (e.g., in the form of output data, display data, etc.) via a human-machine interface (HMI) display 734, an audible annunciator, a speaker, and / or via other components of the vehicle 700. The outputs may include information such as vehicle speed, rpm, time, map data (e.g., the high-definition (“HD”) map 722 of Fig. 7C), location data (e.g., the location of the vehicle 700, e.g., on a map), direction, location of other vehicles (e.g., an occupancy grid), information about objects and status of objects as perceived by the one or more controllers 736, etc. For example, information about the presence of one or more objects (e.g., a road sign, a warning sign, a changing traffic light, etc.) and / or information about maneuvers that the vehicle has performed, is currently performing, or will perform (e.g., change lanes now, take exit 34B in two miles, etc.) may be displayed on the HMI display 734.
[0078] The vehicle 700 further includes a network interface 724 that may utilize one or more wireless antennas 726 and / or modems for communication over one or more networks. The network interface 724 may, for example, be capable of communication via Long-Term Evolution (LTE), Wideband Code Division Multiple Access (WCDMA), Universal Mobile Telecommunications System (UMTS), Global System for Mobile Communications (GSM), IMT-CDMA Multi-Carrier (CDMA2000), etc. The one or more wireless antennas 726 may also enable communication between objects in the environment (e.g., vehicles, mobile devices, etc.) using local area networks such as Bluetooth, Bluetooth Low Energy (LE), Z-Wave, ZigBee, etc.and / or Low Power Wide Area Networks (“LPWANs”) such as LoRaWAN, SigFox, etc.
[0079] Fig. 7B is an example of camera locations and fields of view for the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure; The cameras and the respective fields of view are an example of an embodiment and are not intended to be limiting. For example, additional and / or alternative cameras may be included and / or the cameras may be located at various locations on the vehicle 700. In some embodiments, one or more point cloud sensors 106 and / or optical image sensors 110 may be configured using one or more of the sensors and / or one or more of the cameras of Fig. 7A and Fig. 7B should be implemented.
[0080] The camera types for the cameras may include, but are not limited to, digital cameras that may be configured for use with the components and / or systems of the vehicle 700. The one or more cameras may operate at Automotive Safety Integrity Level (ASIL) B and / or another ASIL. The camera types may have any image capture rate, such as 60 frames per second (fps), 120 fps, 240 fps, etc., depending on the embodiment. The cameras may use rolling shutters, global shutters, another type of shutter, or a combination thereof.In some examples, the color filter array may include a red clear clear clear (RCCC) color filter array, a red clear clear blue (RCCB) color filter array, a red blue green clear (RBGC) color filter array, a Foveon X3 color filter array, a Bayer sensor color filter array (RGGB), a monochrome sensor color filter array, and / or another type of color filter array. In some embodiments, clear-pixel cameras, such as cameras with an RCCC, an RCCB, and / or an RBGC color filter array, may be used to increase light sensitivity.
[0081] In some examples, one or more of the cameras can be used to run advanced driver assistance systems (ADAS) (e.g., as part of a redundant or fail-safe design). For example, a multifunction mono camera can be installed to provide features such as lane departure warning, traffic sign assist, and intelligent headlight control. One or more of the cameras (e.g., all cameras) can simultaneously record and provide image data (e.g., video).
[0082] One or more of the cameras may be mounted in a bracket, e.g., a specially designed (three-dimensional (“3D”) printed) bracket, to eliminate stray light and reflections from inside the vehicle (e.g., reflections from the dashboard reflected in the windshield mirrors) that could interfere with the camera's image data acquisition. With reference to the mounting of exterior mirrors, the exterior mirrors may be custom 3D printed so that the camera mounting plate is adapted to the shape of the exterior mirror. In some examples, the one or more cameras may be integrated into the exterior mirror. For side-facing cameras, the one or more cameras may also be integrated into the four pillars at each corner of the cabin.
[0083] Cameras with a field of view that includes portions of the environment in front of the vehicle 700 (e.g., forward-facing cameras) can be used for surround visibility to help identify forward paths and obstacles, and, with the assistance of one or more controllers 736 and / or control SoCs, to provide information critical for establishing an occupancy grid and / or determining preferred vehicle paths. Forward-facing cameras can be used to perform many of the same ADAS functions as LIDAR, including emergency braking, pedestrian detection, and collision avoidance. Forward-facing cameras can also be used for ADAS features and systems that include lane departure warnings (LDW), autonomous cruise control (ACC), and / or other features such as traffic sign detection.
[0084] A variety of cameras can be used in a forward-facing configuration, including, for example, a monocular camera platform that includes a complementary metal oxide semiconductor (CMOS) color imager. Another example is the wide-angle cameras 770, which can be used to capture objects that enter the field of view from the periphery (e.g., pedestrians, crossing vehicles, or bicycles). Although Fig. 7B illustrates only one wide-angle camera, the vehicle 700 may include any number (including zero) of wide-angle cameras 770. Furthermore, any number of long-range cameras 798 (e.g., a long-range stereo camera pair) may be used for depth-based object detection, particularly for objects for which a neural network has not yet been trained. The one or more long-range cameras 798 may also be used for object detection and classification, as well as basic object tracking.
[0085] Any number of stereo cameras 768 may also be included in a forward-facing configuration. In at least one embodiment, one or more of the stereo cameras 768 may include an integrated control unit comprising a scalable processing unit that can provide programmable logic ("FPGA") and a multi-core microprocessor with an integrated controller area network ("CAN") or Ethernet interface on a single chip. Such a unit can be used to create a 3D map of the vehicle's surroundings that includes a distance estimate for all points in the image. An alternative stereo camera 768 may include a compact stereo vision sensor that may include two camera lenses (one each on the left and right) and an image processing chip that can measure the distance between the vehicle and the target object and process the generated information (e.g.,metadata) to activate the autonomous emergency braking and lane departure warning functions. Other types of stereo cameras 768 may be used in addition to or alternatively to those described here.
[0086] Cameras with a field of view that includes portions of the environment to the side of the vehicle 700 (e.g., side cameras) may be used for the environment view and provide information used to create and update the occupancy grid and to generate collision warnings in the event of a side impact. For example, the one or more environment cameras 774 (e.g., four environment cameras 774, as in Fig. 7B) may be positioned on the vehicle 700. The one or more surround-view cameras 774 may include one or more wide-angle cameras 770, one or more fisheye cameras, one or more 360-degree cameras, and / or the like. For example, four fisheye cameras may be mounted on the front, rear, and sides of the vehicle. In an alternative arrangement, the vehicle may utilize three surround-view cameras 774 (e.g., left, right, and rear) and utilize one or more other cameras (e.g., a forward-facing camera) as a fourth surround-view camera.
[0087] Cameras with a field of view that includes portions of the environment behind the vehicle 700 (e.g., rearview cameras) may be used for parking assistance, surround view, rear collision warnings, and occupancy grid creation and updating. A variety of cameras may be used, including, but not limited to, cameras that are also suitable as one or more forward-facing cameras (e.g., one or more long-range and / or medium-range cameras 798, one or more stereo cameras 768, one or more infrared cameras 772, etc.), as described herein.
[0088] Cameras with a field of view including portions of the interior environment within the cabin of the vehicle 700 (e.g., one or more OMS sensors 701) may be used as part of an occupant monitoring system (OMS), such as, but not limited to, a driver monitoring system (DMS). For example, OMS sensors (e.g., the one or more OMS sensors 701) may be used (e.g., by the one or more controllers 736) to track an occupant's and / or driver's gaze direction, head posture, and / or blinking. This gaze information may be used to determine the occupant's or driver's level of attention (e.g., to detect drowsiness, fatigue, and / or distraction) and / or to take appropriate action to prevent harm to the occupant or driver.In some embodiments, data from OMS sensors may be used to enable gaze-controlled operations initiated by the driver and / or other occupants, such as, but not limited to, adjusting cabin temperature and / or airflow, opening and closing windows, controlling cabin lighting, controlling entertainment systems, adjusting mirrors, adjusting seat positions, and / or other operations. In some embodiments, an OMS may be used for applications such as determining whether items and / or occupants have been left behind in a vehicle cabin (e.g., by detecting the presence of occupants after the driver has exited the vehicle).
[0089] Fig. 7C is a block diagram of an example system architecture for the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure. It should be understood that these and other arrangements described herein are set forth as examples only. Other arrangements and elements (e.g., engines, interfaces, functions, arrangements, groupings of functions, etc.) may be used in addition to or in place of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that may be implemented as individual or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions performed by entities described herein may be performed by hardware, firmware, and / or software. Various functions may be performed, for example, by a processor executing instructions stored in memory.
[0090] Each of the components, features and systems of the vehicle 700 in Fig. 7C is illustrated as being connected via bus 702. Bus 702 may include a controller area network (CAN) data interface (alternatively referred to herein as a "CAN bus"). A CAN may be a network within vehicle 700 that serves to support the control of various features and functions of vehicle 700, such as the application of brakes, acceleration, braking, steering, windshield wipers, etc. A CAN bus may be configured to have dozens or even hundreds of nodes, each with its own unique identifier (e.g., a CAN ID). The CAN bus may be read to determine steering wheel angle, vehicle speed, engine speed (RPM), button positions, and / or other vehicle status indicators. The CAN bus may be ASIL B compliant.
[0091] Although bus 702 is described herein as a CAN bus, this is not intended to be a limitation. For example, FlexRay and / or Ethernet may be used in addition to or alternatively to the CAN bus. Furthermore, while a single wire is used to represent bus 702, this is not intended to be a limitation. For example, there may be any number of buses 702, which may include one or more CAN buses, one or more FlexRay buses, one or more Ethernet buses, and / or one or more other types of buses that use a different protocol. In some examples, two or more buses 702 may be used to perform different functions and / or may be used for redundancy. For example, a first bus 702 may be used for collision avoidance functionality and a second bus 702 may be used for actuation control.In each example, each bus 702 may communicate with one of the components of the vehicle 700, and two or more buses 702 may communicate with the same components. In some examples, each SoC 704, each controller 736, and / or each computer within the vehicle may have access to the same input data (e.g., inputs from sensors of the vehicle 700) and may be connected to a common bus, such as the CAN bus.
[0092] The vehicle 700 may include one or more controllers 736 as described herein with respect to Fig. 7A. The one or more controllers 736 may be used for a variety of functions. The one or more controllers 736 may be coupled to any of the various other components and systems of the vehicle 700 and may be used for control of the vehicle 700, artificial intelligence of the vehicle 700, infotainment for the vehicle 700, and / or the like.
[0093] The vehicle 700 may include a system (or more systems) on a chip (SoC) 704. The SoC 704 may include one or more CPUs 706, one or more GPUs 708, one or more processors 710, one or more caches 712, one or more accelerators 714, one or more data memories 716, and / or other unillustrated components and features. The one or more SoCs 704 may be used to control the vehicle 700 in a variety of platforms and systems. For example, the one or more SoCs 704 in a system (e.g., the system of the vehicle 700) may be combined with an HD card 722 that may be accessed via a network interface 724 from one or more servers (e.g., the one or more servers 778 of Fig. 7D) may receive map refreshes and / or updates. In some embodiments, one or more components of an SoC 704 may execute one or more elements of the path surface feature processor 105 described herein. For example, a heat map generator model 120 may be executed by at least one GPU 708 to generate one or more pavement marking heat map images 122.
[0094] The one or more CPUs 706 may include a CPU cluster or CPU complex (alternatively referred to herein as a "CCPLEX"). The one or more CPUs 706 may include multiple cores and / or L2 caches. For example, in some embodiments, the one or more CPUs 706 may include eight cores in a coherent multiprocessor configuration. In some embodiments, the one or more CPUs 706 may include four dual-core clusters, each cluster having a dedicated L2 cache (e.g., a 2 MB L2 cache). The one or more CPUs 706 (e.g., the CCPLEX) may be configured to support concurrent operation of clusters such that any combination of the clusters of the one or more CPUs 706 may be active at any given time.
[0095] The one or more CPUs 706 may implement power management features that include one or more of the following: individual hardware blocks may be automatically clocked when idle to conserve dynamic power; each core clock may be gated when the core is not actively executing instructions due to the execution of WFI / WFE instructions; each core may be independently power-locked; each core cluster may be independently clocked if all cores are clock-locked or power-locked; and / or each core cluster may be independently power-locked if all cores are power-locked. The one or more CPUs 706 may further implement an enhanced power state management algorithm in which allowable power states and expected wake-up times are established, and the hardware / microcode determines the best power state to enter for the core, cluster, and CCPLEX.The processing cores can support simplified sequences for entering the power state into software, offloading the work to the microcode.
[0096] The one or more GPUs 708 may include an integrated GPU (alternatively referred to herein as an "iGPU"). The one or more GPUs 708 may be programmable and may be efficient for parallel workloads. The one or more GPUs 708 may, in some examples, use an extended Tensor instruction set. The one or more GPUs 708 may include one or more streaming microprocessors, where each streaming microprocessor may include an L1 cache (e.g., an L1 cache with at least 96 KB of memory capacity), and two or more of the streaming microprocessors may share an L2 cache (e.g., an L2 cache with 512 KB of memory capacity). In some embodiments, the one or more GPUs 708 may include at least eight streaming microprocessors. The one or more GPUs 708 may use one or more application programming interfaces (APIs) for computations.In addition, the one or more GPUs 708 may use one or more parallel computing platforms and / or programming models (e.g., CUDA from NVIDIA).
[0097] The one or more GPUs 708 may be power-optimized for best performance in automotive and embedded use cases. For example, the one or more GPUs 708 may be fabricated on a fin field-effect transistor (FinFET). However, this is not a limitation, and the one or more GPUs 708 may also be fabricated using other semiconductor manufacturing processes. Each streaming microprocessor may include a number of mixed-precision processing cores divided into multiple blocks. For example, and without limitation, 64 PF32 cores and 32 PF64 cores may be divided into four processing blocks. In such an example, each processing block can be assigned 16 FP32 cores, 8 FP64 cores, 16 INT32 cores, two mixed-precision NVIDIA TENSOR COREs for deep learning matrix arithmetic, an L0 instruction cache, a warp scheduler, a dispatch unit, and / or a 64 KB register file.In addition, the streaming microprocessors can include independent parallel integer and floating-point datapaths to enable efficient execution of workloads with a mix of computations and addressing calculations. The streaming microprocessors can include independent thread scheduling to enable fine-grained synchronization and cooperation between parallel threads. The streaming microprocessors can include a combined L1 data cache and a shared memory unit to improve performance while simplifying programming.
[0098] The one or more GPUs 708 may include high-bandwidth memory (HBM) and / or a 16 GB HBM2 memory subsystem to provide, in some examples, a peak memory bandwidth of approximately 900 GB / second. In some examples, synchronous graphics random-access memory (SGRAM), such as double data rate type five (GDDR5), may be used in addition to or alternatively to the HBM memory.
[0099] The one or more GPUs 708 may include unified memory technology that includes access counters to enable more accurate migration of memory pages to the processor that accesses them most frequently, thereby improving efficiency for processor-shared memory areas. In some examples, Address Translation Services (ATS) support may be used to allow the one or more GPUs 708 to directly access the page tables of the one or more CPUs 706. In such examples, if the memory management unit (MMU) of the one or more GPUs 708 experiences a failure, an address translation request may be sent to the one or more CPUs 706.In response, the one or more CPUs 706 may look up the virtual-to-physical mapping for the address in their page tables and send the translation back to the one or more GPUs 708. Thus, the unified memory technology may enable a single unified virtual address space for the memory of both the one or more CPUs 706 and the one or more GPUs 708, thereby simplifying the programming of the one or more GPUs 708 and the porting of applications to the one or more GPUs 708.
[0100] Additionally, the one or more GPUs 708 may include an access counter that can track the frequency of access by the one or more GPUs 708 to memory of other processors. The access counter can help move memory pages to the physical memory of the processor that accesses the pages most frequently.
[0101] The one or more SoCs 704 may include any number of caches 712, including those described herein. For example, the one or more caches 712 may include an L3 cache available to both the one or more CPUs 706 and the one or more GPUs 708 (e.g., connected to both the one or more CPUs 706 and the one or more GPUs 708). The one or more caches 712 may include a write-back cache that may track line states, e.g., by using a cache coherence protocol (e.g., MEI, MESI, MSI, etc.). The L3 cache may include 4 MB or more, depending on the embodiment, although smaller cache sizes may be used.
[0102] The one or more SoCs 704 may include one or more arithmetic logic units (ALUs) that may be utilized in performing processing related to any of the various tasks or operations of the vehicle 700, such as processing DNNs. Additionally, the one or more SoCs 704 may include one or more floating-point units (FPUs)—or other mathematical co-processors or numerical co-processors—for performing mathematical operations within the system. For example, the one or more SoCs 704 may include one or more FPUs integrated as execution units within one or more CPUs 706 and / or one or more GPUs 708.
[0103] The one or more SoCs 704 may include one or more accelerators 714 (e.g., hardware accelerators, software accelerators, or a combination thereof). The one or more SoCs 704 may, for example, include a hardware acceleration cluster, which may include optimized hardware accelerators and / or large on-chip memory. The large on-chip memory (e.g., 4MB SRAM) may enable the hardware acceleration cluster to accelerate neural networks and other computations. The hardware acceleration cluster may be used to complement the one or more GPUs 708 and offload some of the tasks of the one or more GPUs 708 (e.g., to free up more cycles of the one or more GPUs 708 to perform other tasks). The one or more accelerators 714 may, for example, be used for targeted workloads (e.g.,Perception, convolutional neural networks (CNNs), etc.) that are robust enough to be suitable for acceleration can be used. The term "CNN" as used here can include all types of CNNs, including region-based or regional convolutional neural networks (RCNNs) and fast RCNNs (e.g., for object detection).
[0104] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include a deep learning accelerator (DLA). The one or more DLAs may include one or more tensor processing units (TPUs) configured to provide an additional tens of trillion operations per second for deep learning applications and inferencing. The TPUs may be accelerators configured and optimized to perform image processing functions (e.g., for CNNs, RCNNs, etc.). The one or more DLAs may also be optimized for a specific set of neural network types and floating-point operations, as well as for inferencing. The design of the one or more DLAs may provide more performance per millimeter than a general-purpose GPU, far exceeding the performance of a CPU.The one or more TPUs can perform multiple functions, including a single-instance convolution function that supports, for example, INT8, INT16, and FP16 data types for both features and weights, as well as post-processing functions.
[0105] The one or more DLAs can quickly and efficiently execute neural networks, particularly CNNs, on processed or unprocessed data for a variety of functions, including, for example and without limitation: a CNN for object identification and detection using data from camera sensors; a CNN for distance estimation using data from camera sensors; a CNN for emergency vehicle detection and identification using data from microphones; a CNN for facial recognition and vehicle owner identification using data from camera sensors; and / or a CNN for safety and / or security events.
[0106] The one or more DLAs can perform any function of the one or more GPUs 708, and by using an inference accelerator, for example, a developer can dedicate either the one or more DLAs or the one or more GPUs 708 to each function. For example, the developer can focus the processing of CNNs and floating-point operations on the one or more DLAs and leave other functions to the one or more GPUs 708 and / or other accelerators 714.
[0107] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include a programmable vision accelerator (PVA), which may also be referred to herein as a computer vision accelerator. The one or more PVAs may be designed and configured to accelerate computer vision algorithms for advanced driver assistance systems (ADAS), autonomous driving, and / or augmented reality (AR) and / or virtual reality (VR) applications. The one or more PVAs may provide a balance between performance and flexibility. Each PVA may include, for example and without limitation, any number of reduced instruction set computer (RISC) cores, direct memory access (DMA) cores, and / or any number of vector processors.
[0108] The RISC cores may interact with image sensors (e.g., the image sensors of one of the cameras described herein), image signal processors, and / or the like. Each of the RISC cores may include any amount of memory. The RISC cores may use any number of protocols, depending on the embodiment. In some examples, the RISC cores may execute a real-time operating system (RTOS). The RISC cores may be implemented with one or more integrated circuits, application-specific integrated circuits (ASICs), and / or memory devices. The RISC cores may include, for example, an instruction cache and / or tightly coupled RAM.
[0109] The DMA may enable components of the PVA(s) to access the system's memory independently of the one or more CPUs 706. The DMA may support any number of features designed to optimize the PVA, including, but not limited to, support for multi-dimensional addressing and / or circular addressing. In some examples, the DMA may support up to six or more dimensions of addressing, which may include block width, block height, block depth, horizontal block stepping, vertical block stepping, and / or depth stepping.
[0110] The vector processors may be programmable processors that can be designed to efficiently and flexibly execute programming for computer vision algorithms and provide signal processing functions. In some examples, the PVA may include a PVA core and two vector processing subsystem partitions. The PVA core may include a processor subsystem, one or more DMA engines (e.g., two DMA engines), and / or other peripheral devices. The vector processing subsystem may operate as the primary processing engine of the PVA and may include a vector processing unit (VPU), an instruction cache, and / or a memory (e.g., VMEM). A VPU core may include a digital signal processor, such asA digital signal processor with single instruction multiple data (SIMD) and very long instruction words (VLIW). Combining SIMD and VLIW can increase throughput and speed.
[0111] Each of the vector processors may include an instruction cache and may be coupled to dedicated memory. Therefore, in some examples, each of the vector processors may be configured to operate independently of the other vector processors. In other examples, the vector processors included in a particular PVA may be configured to use data parallelism. For example, in some embodiments, the plurality of vector processors included in a single PVA may execute the same computer vision algorithm, but on different regions of an image. In other examples, the vector processors included in a particular PVA may concurrently execute different computer vision algorithms on the same image, or even execute different algorithms on consecutive images or portions of an image.Among other things, any number of PVAs can be included in the hardware acceleration cluster, and any number of vector processors can be included in each of the PVAs. Furthermore, the one or more PVAs can contain additional memory for error correcting code (ECC) to increase the overall security of the system.
[0112] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include an on-chip computer vision network and SRAM to provide high-bandwidth, low-latency SRAM to the one or more accelerators 714. In some examples, the on-chip memory may include at least 4 MB of SRAM, consisting of, for example, and without limitation, eight field-configurable memory blocks accessible by both the PVA and the DLA. Each pair of memory blocks may include an Advanced Peripheral Bus (APB) interface, configuration circuitry, a controller, and a multiplexer. Any type of memory may be used. The PVA and the DLA may access the memory through a backbone that provides high-speed access to the memory to the PVA and the DLA.The backbone may include an on-chip computer vision network connecting the PVA and DLA to the memory (e.g., using the APB).
[0113] The on-chip computer vision network can include an interface that determines that both the PVA and the DLA are delivering ready and valid signals before transmitting control signals / addresses / data. Such an interface can provide separate phases and channels for transmitting control signals / addresses / data, as well as bursty communication for continuous data transmission. This type of interface can conform to ISO 26262 or IEC 61508, although other standards and protocols can also be used.
[0114] In some examples, the one or more SoCs 704 may include a real-time ray tracing hardware accelerator, as described in U.S. Patent Application No. 16 / 101,232, filed August 10, 2018. The real-time ray tracing hardware accelerator may be used to quickly and efficiently determine the positions and extents of objects (e.g., within a world model) to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and / or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison with LIDAR data for localization, and / or for other functions, and / or for other purposes. In some embodiments, one or more tree traversal units (TTUs) may be used to perform one or more operations related to ray tracing.
[0115] The one or more accelerators 714 (e.g., the hardware accelerator cluster) have a wide range of uses for autonomous driving. The PVA can be a programmable image processing accelerator that can be used for critical processing steps in ADAS and autonomous vehicles. The capabilities of the PVA are well suited to algorithmic areas that require predictable processing with low power and low latency. In other words, the PVA is well suited for semi-dense or dense regular computations, even on small datasets, that require predictable runtimes with low latency and low power. In the context of autonomous vehicle platforms, the PVAs are therefore designed to execute classical computer vision algorithms because they are efficient at object detection and operate on integer mathematics.
[0116] According to one embodiment of the technology, the PVA is used, for example, to perform computer stereo vision. In some examples, an algorithm based on semi-global matching may be used, although this is not intended as a limitation. Many applications for Level 3-5 autonomous driving require on-the-fly motion estimation or stereo matching (e.g., structure from motion, pedestrian detection, lane detection, etc.). The PVA can perform a computer stereo vision function on inputs from two monocular cameras.
[0117] In some examples, the PVA can be used to perform dense optical flow processing on raw radar data (e.g., using a 4D Fast Fourier Transform) to provide processed radar. In other examples, the PVA is used for time-of-flight depth processing, e.g., by processing raw flight data to provide processed time-of-flight data.
[0118] The DLA can be used to power any type of network to improve control and driving safety; for example, this includes a neural network that outputs a confidence measure for each object detection. Such a confidence value can be interpreted as a probability or as a relative "weight" of each detection compared to other detections. This confidence value allows the system to make further decisions about which detections should be considered true positives rather than false positives. For example, the system can set a confidence threshold and consider only those detections that exceed the threshold as true positives.In an automatic emergency braking (AEB) system, false positive detections would cause the vehicle to automatically perform emergency braking, which is obviously undesirable. Therefore, only the most certain detections should be considered as triggers for AEB. The DLA may employ a neural network to regress the confidence value. The neural network may take as input at least a subset of parameters, such as the dimensions of the boundary housing, the ground plane estimate obtained (e.g., from another subsystem), output of the momentum measurement unit (IMU) sensor 766 correlated with the orientation of the vehicle 700, distance, 3D position estimates of the object obtained by the neural network and / or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.
[0119] The one or more SoCs 704 may include one or more data stores 716 (e.g., memory). The one or more data stores 716 may be on-chip memory on the one or more SoCs 704 in which neural networks to be executed on the GPU and / or the DLA may be stored. In some examples, the one or more data stores 716 may be large enough to store multiple instances of neural networks for redundancy and security. The one or more data stores 716 may include L2 or L3 cache(s) 712. The reference to the one or more data stores 716 may include a reference to memory associated with the PVA, the DLA, and / or one or more other accelerators 714, as described herein.
[0120] The one or more SoCs 704 may include one or more processors 710 (e.g., embedded processors). The one or more processors 710 may include a boot and power management processor, which may be a dedicated processor and subsystem to handle boot power and management functions and associated security enforcement. The boot and power management processor may be part of the boot sequence of the one or more SoCs 704 and may provide runtime power management services. The boot and power management processor may provide clock and voltage programming, assistance with system transitions to a low-power state, management of the thermals and temperature sensors of the one or more SoCs 704, and / or management of the one or more SoCs 704 power states.Each temperature sensor may be implemented as a ring oscillator whose output frequency is proportional to temperature, and the one or more SoCs 704 may use the ring oscillators to sense the temperatures of the one or more CPUs 706, the one or more GPUs 708, and / or the one or more accelerators 714. If it is determined that the temperatures exceed a threshold, the boot and power management processor may enter a temperature fault routine and place the one or more SoCs 704 into a lower power state and / or place the vehicle 700 into a chauffeur-to-safe-stop mode (e.g., bring the vehicle 700 to a safe stop).
[0121] The one or more processors 710 may also include a set of embedded processors that can serve as an audio processing engine. The audio processing engine may be an audio subsystem that enables full hardware support for multi-channel audio across multiple interfaces and a wide and flexible range of audio I / O interfaces. In some examples, the audio processing engine is a dedicated processor core with a digital signal processor with dedicated RAM.
[0122] The one or more processors 710 may also include an always-on processor engine that may provide the necessary hardware functions to support low-power sensor management and wake-up use cases. The always-on processor engine may include a processor core, tightly coupled RAM, supporting peripherals (e.g., timers and interrupt controllers), various I / O controller peripherals, and routing logic.
[0123] The one or more processors 710 may also include a safety cluster engine containing a dedicated processor subsystem for safety management of automotive applications. The safety cluster engine may include two or more processor cores, tightly coupled RAM, supporting peripherals (e.g., timers, an interrupt controller, etc.), and / or routing logic. In a safety mode, the two or more cores may operate in a lockstep mode, functioning as a single core with comparison logic that captures any differences between their operations.
[0124] The one or more processors 710 may also include a real-time camera engine, which may include a dedicated processor subsystem for managing the real-time camera.
[0125] The one or more processors 710 may further include a high dynamic range signal processor, which may include an image signal processor, which is a hardware engine that is part of the camera processing pipeline.
[0126] The one or more processors 710 may include a video image compositor, which may be a processing block (e.g., implemented on a microprocessor) that implements video post-processing functions required by a video playback application to generate the final image for the player window. The video image compositor may perform lens distortion correction on the one or more wide-angle cameras 770, the one or more surround cameras 774, and / or the in-cabin surveillance camera sensors. The in-cabin surveillance camera sensor is preferably monitored by a neural network running on another instance of the enhanced SoC and configured to detect events in the cabin and respond accordingly.An in-cabin system can perform lip reading to activate cellular service and make a call, dictate emails, change the destination, activate or change the vehicle's infotainment system and settings, or enable voice-activated web browsing. Certain functions are available to the driver only when the vehicle is operating in autonomous mode and are disabled otherwise.
[0127] The video image compositor can incorporate enhanced temporal noise reduction for both spatial and temporal noise reduction. For example, when motion occurs in a video, the noise reduction weights the spatial information accordingly, reducing the weight of information provided by neighboring frames. If a frame or section of a frame contains no motion, the temporal noise reduction performed by the video image compositor can use information from the previous frame to reduce noise in the current frame.
[0128] The video image compositor may also be configured to perform stereo distortion correction on the input stereo lens images. The video image compositor may also be used for user interface design when the operating system desktop is in use and the one or more GPUs 708 do not need to constantly render new surfaces. Even when the one or more GPUs 708 are powered on and actively performing 3D rendering, the video image compositor may be used to offload the one or more GPUs 708, thereby improving performance and responsiveness.
[0129] The one or more SoCs 704 may also include a Mobile Industry Processor Interface (MIPI) serial camera interface for receiving video and input from cameras, a high-speed interface, and / or a video input block that may be used for camera and related pixel input functions. The one or more SoCs 704 may also include one or more input / output controllers, one or more of which may be software-controlled and used to receive I / O signals that are not associated with a specific role.
[0130] The one or more SoCs 704 may further include a wide range of peripheral interfaces to enable communication with peripheral devices, audio codecs, power management, and / or other devices. The one or more SoCs 704 may be used to process data from cameras (e.g., via Gigabit Multimedia Serial Link and Ethernet), sensors (e.g., one or more LIDAR sensors 764, one or more RADAR sensors 760, etc., which may be connected via Ethernet), data from bus 702 (e.g., speed of vehicle 700, steering wheel position, etc.), and data from one or more GNSS sensors 758 (e.g., connected via Ethernet or CAN bus).The one or more SoCs 704 may further include dedicated high-performance mass storage controllers, which may include their own DMA engines and which may be used to offload routine data management tasks from the one or more CPUs 706.
[0131] The one or more SoCs 704 may be an end-to-end platform with a flexible architecture spanning automation levels 3-5, thereby providing a comprehensive functional safety architecture that supports and efficiently utilizes computer vision and ADAS techniques for diversity and redundancy, and provides a platform for a flexible, reliable driving software stack along with deep learning tools. The one or more SoCs 704 may be faster, more reliable, and even more power and space efficient than conventional systems. For example, the one or more accelerators 714, in combination with the one or more CPUs 706, the one or more GPUs 708, and the one or more data memories 716, may form a fast, efficient platform for Level 3-5 autonomous vehicles.
[0132] The technology thus offers capabilities and functions that cannot be achieved by conventional systems. For example, computer vision algorithms can be executed on CPUs, which can be configured using a high-level programming language, such as the C programming language, to execute a variety of processing algorithms on a wide variety of visual data. However, CPUs are often unable to meet the performance requirements of many computer vision applications, such as execution time and power consumption requirements. In particular, many CPUs are unable to execute complex object detection algorithms in real time, which is a prerequisite for in-vehicle ADAS applications and a requirement for practical Level 3-5 autonomous vehicles.
[0133] In contrast to conventional systems, the technology described here enables the simultaneous and / or sequential execution of multiple neural networks and the combination of the results to enable Level 3-5 autonomous driving functionality by providing a CPU complex, a GPU complex, and a hardware acceleration cluster. For example, a CNN running on the DLA or dGPU (e.g., the one or more GPUs 720) may include text and word recognition, allowing the supercomputer to read and understand traffic signs, including signs for which the neural network has not been specifically trained. The DLA may further include a neural network capable of identifying, interpreting, and providing semantic understanding of the sign, and passing this semantic understanding to the path planning modules running on the CPU complex.
[0134] Another example is that multiple neural networks can run simultaneously, as required for Level 3, 4, or 5 driving. For example, a warning sign reading "Caution: Flashing lights indicate black ice," along with an electric light, can be interpreted independently or jointly by multiple neural networks. The sign itself can be identified as a traffic sign by a first deployed neural network (e.g., a trained neural network), and the text "Flashing lights indicate black ice" can be interpreted by a second deployed neural network, which informs the vehicle's path-planning software (preferably running on the CPU complex) that, if flashing lights are detected, black ice is present.The turn signal can be identified across multiple images by a third neural network, which informs the vehicle's path planning software about the presence (or absence) of turn signals. All three neural networks can run simultaneously, e.g., within the DLA and / or on one or more GPUs 708.
[0135] In some examples, a facial recognition and vehicle owner identification CNN may use data from camera sensors to identify the presence of an authorized driver and / or owner of the vehicle 700. The always-on sensor processing engine may be used to unlock the vehicle and turn on the lights when the owner approaches the driver's door, and to disable the vehicle in security mode when the owner exits the vehicle. In this way, the one or more SoCs 704 provide security against theft and / or carjacking.
[0136] In another example, a CNN for detecting and identifying emergency vehicles may use data from microphones 796 to detect and identify emergency vehicle sirens. Unlike conventional systems that use general classifiers to detect sirens and manually extract features, the one or more SoCs 704 use the CNN to classify environmental and urban sounds, as well as visual data. In a preferred embodiment, the CNN running on the DLA is trained to detect the relative approach speed of the emergency vehicle (e.g., by using the Doppler effect). The CNN may also be trained to identify emergency vehicles specific to the local area in which the vehicle operates, as identified by one or more GNSS sensors 758.For example, if the CNN is operating in Europe, it will attempt to detect European sirens, and if it is operating in the United States, the CNN will attempt to identify only North American sirens. Once an emergency vehicle is detected, a controller can be used to execute an emergency vehicle safety routine, slow the vehicle, pull over to the side of the road, park the vehicle, and / or idle the vehicle, using ultrasonic sensors 762, until the one or more emergency vehicles pass by.
[0137] The vehicle may include one or more CPUs 718 (e.g., one or more discrete CPUs or one or more dCPUs) that may be coupled to the one or more SoCs 704 via a high-speed connection (e.g., PCIe). The CPUs 718 may, for example, include an x86 processor. The CPUs 718 may, for example, be used to perform a variety of functions, including reconciling potentially inconsistent results between ADAS sensors and the one or more SoCs 704 and / or monitoring the status and health of the one or more controllers 736 and / or the infotainment SoC 730.
[0138] The vehicle 700 may include one or more GPUs 720 (e.g., one or more discrete GPUs or one or more dGPUs) that may be coupled to the one or more SoCs 704 via a high-speed interconnect (e.g., NVIDIA's NVLINK). The one or more GPUs 720 may provide additional artificial intelligence capabilities, e.g., by executing redundant and / or distinct neural networks, and may be used to train and / or update neural networks based on inputs (e.g., sensor data) from sensors of the vehicle 700.
[0139] The vehicle 700 may further include the network interface 724, which may include one or more wireless antennas 726 (e.g., one or more wireless antennas for various communication protocols, such as a cellular antenna, a Bluetooth antenna, etc.). The network interface 724 may be used to enable a wireless connection via the Internet to the cloud (e.g., to the one or more servers 778 and / or other network devices), to other vehicles, and / or to computing devices (e.g., passenger client devices). To communicate with other vehicles, a direct connection between the two vehicles and / or an indirect connection may be established (e.g., via networks and the Internet). Direct connections may be established via vehicle-to-vehicle communication.Vehicle-to-vehicle communication may provide vehicle 700 with information about vehicles in the vicinity of vehicle 700 (e.g., vehicles in front of, beside, and / or behind vehicle 700). This functionality may be part of a cooperative adaptive cruise control function of vehicle 700.
[0140] The network interface 724 may include an SoC that provides modulation and demodulation functions and enables the controller(s) 736 to communicate over wireless networks. The network interface 724 may include a radio frequency front end for upconversion from baseband to radio frequency and downconversion from radio frequency to baseband. The frequency conversions may be performed using known methods and / or super-heterodyne methods. In some examples, the radio frequency front end functionality may be provided by a separate chip. The network interface may include wireless functionality for communicating over LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN, and / or other wireless protocols.
[0141] The vehicle 700 may further include one or more data stores 828, which may be located off-chip (e.g., outside the SoCs 804). The one or more data stores 728 may include one or more memory elements, including RAM, SRAM, DRAM, VRAM, flash, hard drives, and / or other components and / or devices capable of storing at least one bit of data.
[0142] The vehicle 700 may further include one or more GNSS sensors 758. The one or more GNSS sensors 758 (e.g., GPS, assisted GPS sensors, differential GPS (DGPS) sensors, etc.) assist in mapping, sensing, occupancy grid creation, and / or path planning. Any number of GNSS sensors 758 may be used, including, for example and without limitation, a GPS using a USB port with an Ethernet-to-serial (RS-232) bridge.
[0143] The vehicle 700 may also include one or more RADAR sensors 760. The one or more RADAR sensors 760 may be used by the vehicle 700 for long-range vehicle detection, even in darkness and / or poor weather conditions. The functional safety level of the RADAR may be ASIL B. The one or more RADAR sensors 760 may utilize the CAN and / or bus 702 (e.g., to transmit the data generated by the one or more RADAR sensors 760) for control and access to object tracking data, with access to the raw data via Ethernet in some examples. A variety of RADAR sensor types may be used. The one or more RADAR sensors 760 may be suitable for, for example, front-, rear-, and side-facing RADAR, without limitation. In some examples, one or more Pulse Doppler RADAR sensors are used.
[0144] The one or more RADAR sensors 760 may include various configurations, such as long range with a narrow field of view, short range with a wide field of view, short range side coverage, etc. In some examples, long range RADAR may be used for the adaptive cruise control function. Long range RADAR systems may provide a wide field of view realized by two or more independent scans, e.g., within a range of 250 m. The one or more RADAR sensors 760 may assist in distinguishing between static and moving objects and may be used by ADAS systems for emergency braking and forward collision warning. Long range RADAR sensors may include a monostatic multi-modal RADAR with multiple (e.g., six or more) fixed RADAR antennas and a high-speed CAN and FlexRay interface.In a six-antenna example, the middle four antennas can create a focused beam pattern designed to detect the surroundings of vehicle 700 at higher speeds with minimal interference from traffic in adjacent lanes. The other two antennas can expand the field of view so that vehicles entering or exiting the lane of vehicle 700 can be quickly detected.
[0145] Medium-range radar systems, for example, can have a range of up to 760 m (front) or 80 m (rear) and a field of view of up to 42 degrees (front) or 750 degrees (rear). Short-range radar systems can include, among other features, radar sensors designed for installation at both ends of the rear bumper. When installed at both ends of the rear bumper, such a radar sensor system can generate two beams that continuously monitor the blind spot area to the rear and side of the vehicle.
[0146] Short-range radar systems can be used in an ADAS system to detect blind spots and / or as lane change assistants.
[0147] The vehicle 700 may also include one or more ultrasonic sensors 762. The one or more ultrasonic sensors 762, which may be mounted on the front, rear, and / or sides of the vehicle 700, may be used for parking assistance and / or for creating and updating an occupancy grid. A plurality of ultrasonic sensors 762 may be used, and different ultrasonic sensors 762 may be used for different detection ranges (e.g., 2.5 m, 4 m). The one or more ultrasonic sensors 762 may operate at functional safety levels of ASIL B.
[0148] The vehicle 700 may include one or more LIDAR sensors 764. The one or more LIDAR sensors 764 may be used for object and pedestrian detection, emergency braking, collision avoidance, and / or other functions. The one or more LIDAR sensors 764 may conform to ASIL B functional safety level. In some examples, the vehicle 700 may include multiple LIDAR sensors 764 (e.g., two, four, six, etc.) that may use Ethernet (e.g., to deliver data to a Gigabit Ethernet switch).
[0149] In some examples, the one or more LIDAR sensors 764 may be capable of providing a list of objects and their distances for a 360-degree field of view. For example, commercially available LIDAR sensors 764 may have an advertised range of approximately 700 m, with an accuracy of 2 cm - 3 cm, and support for a 700 Mbps Ethernet connection. In some examples, one or more non-prominent LIDAR sensors 764 may be used. In such examples, the one or more LIDAR sensors 764 may be implemented as a small device that may be embedded in the front, rear, sides, and / or corners of the vehicle 700. In such examples, the one or more LIDAR sensors 764 may provide a horizontal field of view of up to 120 degrees and a vertical field of view of up to 35 degrees, with a range of 200 m, even for objects with low reflectivity.The one or more front-mounted LIDAR sensors 764 may be configured for a horizontal field of view between 45 degrees and 135 degrees.
[0150] In some examples, LIDAR technologies, such as 3D flash LIDAR, may also be used. 3D flash LIDAR uses a laser flash as the transmitting source to illuminate the vehicle's surroundings up to approximately 200 m. A flash LIDAR unit contains a receptor that records the time of flight of the laser pulse and the reflected light on each pixel, which in turn corresponds to the distance between the vehicle and the objects. Flash LIDAR can enable highly accurate and distortion-free images of the environment to be created with each laser flash. In some examples, four flash LIDAR sensors may be deployed, one on each side of the vehicle 700. Available 3D flash LIDAR systems include a solid-state 3D star array LIDAR camera that contains no moving parts other than a fan (e.g., a non-scanning LIDAR device).The flash lidar device can use a 5-nanosecond Class I (eye-safe) laser pulse per image and collect the reflected laser light as 3D range point clouds and co-registered intensity data. By using flash lidar, and because flash lidar is a solid-state device with no moving parts, the one or more lidar sensors 764 can be less susceptible to motion blur, vibration, and / or shock.
[0151] The vehicle may also include one or more IMU sensors 766. The one or more IMU sensors 766 may, in some examples, be located at the center of the rear axle of the vehicle 700. The one or more IMU sensors 766 may, for example and without limitation, include one or more accelerometers, one or more magnetometers, one or more gyroscopes, one or more magnetic compasses, and / or other types of sensors. In some examples, such as in six-axis applications, the one or more IMU sensors 766 may include accelerometers and gyroscopes, while in nine-axis applications, the one or more IMU sensors 766 may include accelerometers, gyroscopes, and magnetometers.
[0152] In some embodiments, the one or more IMU sensors 766 may be implemented as a miniaturized, high-performance GPS-aided inertial navigation system (GPS / INS) that combines micro-electro-mechanical systems (MEMS) inertial sensors, a high-sensitivity GPS receiver, and advanced Kalman filter algorithms to provide estimates of position, velocity, and attitude. Thus, in some examples, the one or more IMU sensors 766 may enable the vehicle 700 to estimate heading without requiring input from a magnetic sensor by directly observing and correlating GPS velocity changes with the one or more IMU sensors 766.In some examples, the one or more IMU sensors 766 and the one or more GNSS sensors 758 may be combined into a single integrated unit.
[0153] The vehicle may include one or more microphones 796 mounted in and / or around the vehicle 700. The one or more microphones 796 may be used, among other things, to detect and identify emergency vehicles.
[0154] The vehicle may further include any number of camera types, including one or more stereo cameras 768, one or more wide-angle cameras 770, one or more infrared cameras 772, one or more surround cameras 774, one or more long-range and / or medium-range cameras 798, and / or other camera types. The cameras may be used to capture image data around the entire perimeter of the vehicle 700. The types of cameras used depend on the embodiments and requirements for the vehicle 700, and any combination of camera types may be used to provide the necessary coverage around the vehicle 700. Furthermore, the number of cameras may vary depending on the embodiment. For example, the vehicle may include six cameras, seven cameras, ten cameras, twelve cameras, and / or another number of cameras.The cameras may support, by way of example and without limitation, Gigabit Multimedia Serial Link (GMSL) and / or Gigabit Ethernet. Each of the one or more cameras is referred to herein with reference to . Fig. 7A and Fig. 7B is described in more detail.
[0155] The vehicle 700 may further include one or more vibration sensors 742. The one or more vibration sensors 742 may measure vibrations from components of the vehicle, such as the one or more axles. For example, changes in vibrations may indicate a change in the road surface. In another example, when two or more vibration sensors 742 are used, the differences between the vibrations may be used to determine the friction or slippage of the road surface (e.g., when the difference in vibration is between a driven axle and a free-spinning axle).
[0156] The vehicle 700 may include an ADAS system 738. The ADAS system 738 may include an SoC in some examples. The ADAS system 738 may include autonomous / adaptive / automatic cruise control (ACC), cooperative adaptive cruise control (CACC), forward crash warning (FCW), automatic emergency braking (AEB), lane departure warning (LDW), lane keep assist (LKA), blind spot warning (BSW), rear cross-traffic warning (RCTW), collision warning systems (CWS), lane centering (LC), and / or other features and functions.
[0157] The ACC systems may use one or more radar sensors 760, one or more lidar sensors 764, and / or one or more cameras. The ACC systems may include longitudinal ACC and / or lateral ACC. Longitudinal ACC monitors and controls the distance to the vehicle immediately in front of the vehicle 700 and automatically adjusts the vehicle speed to maintain a safe distance from preceding vehicles. Lateral ACC performs follow-through and advises the vehicle 700 to change lanes if necessary. Lateral ACC is related to other ADAS applications such as LCA and CWS.
[0158] CACC utilizes information from other vehicles that may be received via the network interface 724 and / or the one or more wireless antennas 726 from other vehicles over a wireless connection or indirectly via a network connection (e.g., over the Internet). Direct connections may be provided via a vehicle-to-vehicle (V2V) communication link, while indirect connections may be an infrastructure-to-vehicle (I2V) communication link. In general, the V2V communication concept provides information about the immediately preceding vehicles (e.g., vehicles immediately in front of and in the same lane as vehicle 700), while the I2V communication concept provides information about traffic further ahead. CACC systems may include both I2V and V2V information sources.Given the information about the vehicles ahead of vehicle 700, CACC can be more reliable and has the potential to improve traffic flow and reduce congestion on the road.
[0159] FCW systems are designed to warn the driver of a hazard so they can take corrective action. FCW systems utilize a forward-facing camera and / or one or more radar sensors 760 coupled with a dedicated processor, DSP, FPGA, and / or ASIC, which is electrically coupled to feedback to the driver, e.g., a display, speaker, and / or vibrating component. FCW systems can provide a warning, e.g., in the form of a sound, a visual warning, a vibration, and / or a rapid braking pulse.
[0160] AEB systems detect an impending forward collision with another vehicle or object and can automatically apply the brakes if the driver does not take corrective action within a specified time or distance parameter. AEB systems may utilize one or more forward-facing cameras and / or one or more radar sensors 760 coupled with a dedicated processor, DSP, FPGA, and / or ASIC. When the AEB system detects a hazard, it typically first alerts the driver to take corrective action to avoid the collision; if the driver does not take corrective action, the AEB system can automatically apply the brakes to prevent or at least mitigate the effects of the predicted collision. AEB systems may incorporate techniques such as dynamic brake support and / or imminent crash braking.
[0161] LDW systems provide visual, audible, and / or tactile warnings, such as steering wheel or seat vibrations, to alert the driver when the vehicle 700 crosses lane markings. An LDW system will not activate if the driver indicates an intentional lane departure by activating a turn signal. LDW systems may utilize forward-facing cameras coupled with a dedicated processor, DSP, FPGA, and / or ASIC that is electrically coupled to provide feedback to the driver, e.g., a display, speaker, and / or vibrating component.
[0162] LKA systems are a variant of LDW systems. LKA systems provide steering inputs or braking to correct the vehicle 700 when the vehicle 700 begins to drift out of its lane.
[0163] BSW systems detect and warn the driver of vehicles in the car's blind spot. BSW systems may provide a visual, audible, and / or tactile warning signal to indicate that merging or changing lanes is unsafe. The system may provide an additional warning when the driver activates a turn signal. BSW systems may utilize one or more rear-facing cameras and / or radar sensors 760 coupled with a dedicated processor, DSP, FPGA, and / or ASIC electrically coupled to feedback to the driver, such as a display, speaker, and / or vibrating component.
[0164] RCTW systems can provide visual, audible, and / or tactile notification when an object outside the range of the rearview camera is detected when the vehicle 700 is reversing. Some RCTW systems include AEB to ensure the vehicle brakes are applied to avoid a crash. RCTW systems can utilize one or more rear-facing RADAR sensors 760 coupled to a dedicated processor, DSP, FPGA, and / or ASIC that is electrically coupled to feedback to the driver, e.g., a display, speaker, and / or vibrating component.
[0165] Conventional ADAS systems can experience false positives, which can be annoying and distracting for the driver, but are generally not catastrophic because ADAS systems warn the driver and give them the opportunity to decide whether a safety condition truly exists and act accordingly. However, in an autonomous vehicle 700, in the event of conflicting results, the vehicle 700 must decide for itself whether to consider the result of a primary computer or a secondary computer (e.g., a first controller 736 or a second controller 736). In some embodiments, the ADAS system 738 may, for example, be a backup and / or secondary computer that provides perception information to a rationality module of the backup computer.The backup computer rationality monitor can run redundant, diverse software on hardware components to detect errors in perception and dynamic driving tasks. The outputs of the ADAS system 738 can be provided to a supervising MCU. If the outputs of the primary computer and the secondary computer conflict, the supervising MCU must determine how to resolve the conflict to ensure safe operation.
[0166] In some examples, the primary computer may be configured to provide the monitoring MCU with a confidence value indicating the primary computer's confidence in the chosen outcome. If the confidence value exceeds a threshold, the monitoring MCU may follow the primary computer's instruction regardless of whether the secondary computer provides a conflicting or inconsistent result. If the confidence value does not meet the threshold and the primary and secondary computers indicate different results (e.g., a conflict), the monitoring MCU may arbitrate between the computers to determine the appropriate outcome.
[0167] The monitoring MCU may be configured to run one or more neural networks trained and configured to determine the conditions under which the secondary computer triggers false alarms based on the output from the primary and secondary computers. This allows the one or more neural networks in the monitoring MCU to learn when the output of the secondary computer can be trusted and when it cannot. For example, if the secondary computer is a RADAR-based FCW system, a neural network in the monitoring MCU can learn when the FCW system identifies metallic objects that are not actually hazardous, such as a drain grate or manhole cover, which triggers an alarm.Similarly, if the secondary computer is a camera-based LDW system, a neural network in the monitoring MCU can learn to override the LDW system when cyclists or pedestrians are present and lane departure is indeed the safest maneuver. In embodiments including one or more neural networks running on the monitoring MCU, the monitoring MCU can include at least one DLA or GPU suitable for executing the one or more neural networks with associated memory. In preferred embodiments, the monitoring MCU can comprise and / or be included as a component of the one or more SoCs 704.
[0168] In other examples, the ADAS system 738 may include a secondary computer that executes the ADAS functionality according to traditional computer vision rules. Thus, the secondary computer may use classic computer vision rules (if-then), and the presence of one or more neural networks in the supervising MCU may improve reliability, safety, and performance. For example, the diverse implementation and intentional non-identity makes the overall system more fault-tolerant, especially against errors caused by software (or software-hardware interfaces).For example, if a software bug or error occurs in the software on the primary computer and the non-identical software code on the secondary computer produces the same overall result, the monitoring MCU can have greater confidence that the overall result is correct and the bug in the software or hardware on the primary computer does not cause a significant error.
[0169] In some examples, the output of the ADAS system 738 may be fed into the perception block of the primary computer and / or the dynamic driving task block of the primary computer. For example, if the ADAS system 738 displays a forward collision warning due to an object immediately ahead, the perception block may use this information in identifying objects. In other examples, the secondary computer may have its own neural network trained to reduce the risk of false positives, as described herein.
[0170] The vehicle 700 may further include the infotainment SoC 730 (e.g., an in-vehicle infotainment (IVI) system). Although illustrated and described as an SoC, the infotainment system may not be an SoC and may include two or more discrete components. The infotainment SoC 730 may include a combination of hardware and software that can be used to provide audio (e.g., music, a personal digital assistant, navigation directions, news, radio, etc.), video (e.g., TV, movies, streaming, etc.), phone (e.g., hands-free calling), network connectivity (e.g., LTE, Wi-Fi, etc.), and / or information services (e.g., navigation systems, rear parking assist, a radio data system, vehicle-related information such as fuel level, total distance traveled, brake fuel level, oil level, door open / close, air filter information, etc.) to the vehicle 700.The infotainment SoC 730 may, for example, include radios, record players, navigation systems, video players, USB and Bluetooth connectivity, car computers, in-car entertainment, Wi-Fi, steering wheel audio controls, hands-free calling, a heads-up display (HUD), an HMI display 734, a telematics device, a control panel (e.g., for controlling and / or interacting with various components, functions, and / or systems), and / or other components. The infotainment SoC 730 may further be used to provide information (e.g., visual and / or audible) to one or more users of the vehicle, such as information from the ADAS system 738, autonomous driving information such as planned vehicle maneuvers, road layouts, environmental information (e.g., intersection information, vehicle information, road information, etc.), and / or other information.
[0171] The infotainment SoC 730 may include GPU functionality. The infotainment SoC 730 may communicate with other devices, systems, and / or components of the vehicle 700 via the bus 702 (e.g., CAN bus, Ethernet, etc.). In some examples, the infotainment SoC 730 may be coupled to a supervisory MCU so that the GPU of the infotainment system may perform some self-driving functions if the one or more primary controllers 736 (e.g., the primary and / or backup computers of the vehicle 700) fail. In such an example, the infotainment SoC 730 may place the vehicle 700 into a chauffeur-to-safe-stop mode, as described herein.
[0172] The vehicle 700 may further include an instrument cluster 732 (e.g., a digital instrument panel, an electronic instrument cluster, a digital instrument panel, etc.). The instrument cluster 732 may include a controller and / or supercomputer (e.g., a discrete controller or supercomputer). The instrument cluster 732 may include a number of instruments, such as a speedometer, fuel level, oil pressure, tachometer, odometer, turn signals, shift position indicator, seat belt warning light(s), parking brake warning light(s), engine malfunction light(s), airbag system (SRS) information, lighting controls, safety system controls, navigation information, etc. In some examples, information from the infotainment SoC 730 and the instrument cluster 732 may be displayed and / or shared. In other words, the instrument cluster 732 may be included as part of the infotainment SoC 730, or vice versa.
[0173] Fig. 7D is a system diagram for communication between the one or more cloud-based servers and the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure. The system 776 may include the one or more servers 778, the one or more networks 790, and the vehicles, including the vehicle 700. The server(s) 778 may include a plurality of GPUs 784(A)-784(H) (collectively referred to herein as GPUs 784), PCIe switches 782(A)-782(H) (collectively referred to herein as PCIe switches 782), and / or CPUs 780(A)-780(B) (collectively referred to herein as CPUs 780). The GPUs 784, the CPUs 780, and the PCIe switches may be interconnected with high-speed interconnects such as, without limitation, the NVLink interfaces 788 and / or PCIe interconnects 786 developed by NVIDIA. In some examples, the GPUs 784 are connected via NVLink and / or NVSwitch SoC, and the GPUs 784 and the PCIe switches 782 are connected via PCIe links.Although eight GPUs 784, two CPUs 780, and two PCIe switches are illustrated, this is not intended to be limiting. Depending on the embodiment, each of the servers 778 may include any number of GPUs 784, CPUs 780, and / or PCIe switches. For example, the one or more servers 778 may each include eight, sixteen, thirty-two, and / or more GPUs 784.
[0174] The one or more servers 778 may receive, via the one or more networks 790 and from the vehicles, image data representative of images depicting unexpected or changed road conditions, such as recently commenced roadwork. The one or more servers 778 may transmit, via the one or more networks 790 and to the vehicles, neural networks 792, updated neural networks 792, and / or map information 794 containing information about traffic and road conditions. The updates to the map information 794 may include updates to the HD map 722, such as information about construction, potholes, detours, flooding, and / or other obstacles.In some examples, the neural networks 792, the updated neural networks 792, and / or the map information 794 may result from new training and / or experience represented in the data received from any number of vehicles in the environment and / or may be based on training performed in a data center (e.g., using the one or more servers 778 and / or other servers).
[0175] The one or more servers 778 may be used to train machine learning models (e.g., neural networks) based on training data. The training data may be generated by the vehicles and / or in a simulation (e.g., with a game machine). In some examples, the training data is tagged (e.g., when the neural network benefits from supervised learning) and / or undergoes other preprocessing, while in other examples, the training data is not tagged and / or preprocessed (e.g., when the neural network does not require supervised learning).Training may be performed using one or more classes of machine learning techniques, including, without limitation, supervised training, semi-supervised training, unsupervised training, self-learning, reinforcement learning, federated learning, transfer learning, feature learning (including principal component and cluster analysis), multilinear subspace learning, manifold learning, representation learning (including replacement dictionary learning), rule-based machine learning, anomaly detection, and any variations or combinations thereof. Once the machine learning models are trained, the machine learning models may be used by the vehicles (e.g., transmitted to the vehicles via the one or more networks 790) and / or the machine learning models may be used by the one or more servers 778 to remotely monitor the vehicles.
[0176] In some examples, the server(s) 778 may receive data from the vehicles and apply the data to real-time neural networks to perform intelligent inference in real time. The one or more servers 778 may include deep learning supercomputers and / or dedicated AI computers powered by GPUs 784, such as the DGX and DGX Station machines developed by NVIDIA. However, in some examples, the one or more servers 778 may include a deep learning infrastructure using only CPU-powered data centers.
[0177] The deep learning infrastructure of the one or more servers 778 may be capable of performing rapid inferencing in real time and may utilize this capability to evaluate and verify the state of the processors, software, and / or associated hardware in the vehicle 700. For example, the deep learning infrastructure may receive periodic updates from the vehicle 700, such as a sequence of images and / or objects that the vehicle 700 has located in that sequence of images (e.g., via computer vision and / or other machine learning object classification techniques).The deep learning infrastructure may run its own neural network to identify the objects and compare them to the objects identified by the vehicle 700, and if the results do not match and the infrastructure concludes that the AI in the vehicle 700 is not functioning properly, the one or more servers 778 may send a signal to the vehicle 700 instructing a fail-safe computer of the vehicle 700 to take control, notify the passengers, and perform a safe parking maneuver.
[0178] For inferencing, the one or more servers 778 may include GPUs 784 and one or more programmable inference accelerators (e.g., NVIDIA's TensorRT). The combination of GPU-driven servers and inference accelerators may enable real-time responsiveness. In other examples, e.g., where performance is less critical, servers powered by CPUs, FPGAs, and other processors may be used for inferencing. EXAMPLE COMPUTER DEVICE
[0179] Fig. 8 is a block diagram of an exemplary computing device 800 suitable for use in implementing some embodiments of the present disclosure. Computing device 800 may include an interconnection system 802 that directly or indirectly couples the following devices: memory 804, one or more central processing units (CPUs) 806, one or more graphics processing units (GPUs) 808, a communications interface 810, input / output (I / O) ports 812, input / output components 814, a power supply 816, one or more presentation components 818 (e.g., display(s)), and one or more logic units 820. In at least one embodiment, the one or more computing devices 800 may include one or more virtual machines (VMs), and / or each of the components thereof may include virtual components (e.g., virtual hardware components).As non-limiting examples, one or more of the GPUs 808 may include one or more vGPUs, one or more of the CPUs 806 may include one or more vCPUs, and / or one or more of the logic units 820 may include one or more virtual logic units. Thus, a computing device 800 may include discrete components (e.g., a full GPU associated with the computing device 800), virtual components (e.g., a portion of a GPU associated with the computing device 800), or a combination thereof. In some embodiments, CPUs 806 and / or GPUs 808 may execute one or more elements of the path surface feature processor 105 described herein, such as, but not limited to, the heat map generator model 120.
[0180] Although the different blocks of Fig. 8 are shown as being connected to wires via the interconnect system 802, this is not intended as a limitation and is for clarity only. For example, in some embodiments, a presentation component 818, such as a display device, may be considered an I / O component 814 (e.g., if the display is a touchscreen). As another example, the CPUs 806 and / or GPUs 808 may include memory (e.g., memory 804 may represent a storage device in addition to the memory of the GPUs 808, the CPUs 806, and / or other components). In other words, the computing device of Fig. Figure 8 is merely illustrative. It does not distinguish between categories such as “workstation,” “server,” “laptop,” “desktop,” “tablet,” “client device,” “mobile device,” “handheld device,” “game console,” “electronic control unit (ECU),” “virtual reality system,” and / or other device or system types, since all devices within the scope of the computing device are Fig. 8 may be considered.
[0181] The interconnect system 802 may represent one or more connections or buses, such as an address bus, a data bus, a control bus, or a combination thereof. The interconnect system 802 may include one or more types of buses or connections, such as an Industry Standard Architecture (ISA) bus, an Extended ISA bus, a Video Electronics Standards Association (VESA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI Express (PCIe) bus, and / or another type of bus or connection. In some embodiments, there are direct connections between components. For example, the CPU 806 may be directly connected to the memory 804. Further, the CPU 806 may be directly connected to the GPU 808.For a direct or point-to-point connection between components, the interconnect system 802 may include a PCIe link to establish the connection. In these examples, a PCI bus need not be included in the computing device 800.
[0182] Memory 804 may include a variety of computer-readable media. The computer-readable media may be any available media accessible by the computing device 800. The computer-readable media may include both volatile and non-volatile media, as well as removable and non-removable media. By way of example and without limitation, the computer-readable media may include computer storage media and communication media.
[0183] The computer storage media may include both volatile and non-volatile media and / or removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, and / or other data types. For example, the memory 804 may store computer-readable instructions (e.g., representing one or more programs and / or one or more program elements, such as an operating system).Computer storage media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other storage technologies, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by the computing device 800. As used herein, computer storage media does not per se include signals.
[0184] The computer storage media may embody computer-readable instructions, data structures, program modules, and / or other data types in a modulated data signal such as a carrier wave or other transport mechanism, and includes any media for conveying information. The term "modulated data signal" may refer to a signal having one or more of its characteristics adjusted or altered to encode information in the signal. The computer storage media may include, for example, and is not limited to, wired media, such as a wired network or a direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of the above should also be included within the scope of computer-readable media.
[0185] The CPUs 806 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. The CPUs 806 may each include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of concurrently executing a plurality of software threads. The CPUs 806 may include any type of processor and may include different types of processors depending on the type of computing device 800 implemented (e.g., processors with fewer cores for mobile devices and processors with more cores for servers).Depending on the type of computing device 800, the processor may be, for example, an Advanced RISC Machines (ARM) processor implemented with Reduced Instruction Set Computing (RISC) or an x86 processor implemented with Complex Instruction Set Computing (CISC). Computing device 800 may include one or more CPUs 906, in addition to one or more microprocessors or additional coprocessors, such as math coprocessors.
[0186] In addition to or alternatively to the one or more CPUs 806, the one or more GPUs 808 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. One or more of the GPUs 808 may be an integrated GPU (e.g., with one or more of the CPUs 806 and / or one or more of the GPUs 808 may be a discrete GPU). In embodiments, one or more of the GPUs 808 may be a co-processor of one or more of the CPUs 806. The one or more GPUs 808 may be used by the computing device 800 to render graphics (e.g., 3D graphics) or to perform general-purpose computations. The GPUs 808 may be used, for example, for general-purpose computing on GPUs (GPGPU).The one or more GPUs 808 may include hundreds or thousands of cores capable of processing hundreds or thousands of software threads simultaneously. The one or more GPUs 808 may generate pixel data for output images in response to rendering commands (e.g., rendering commands from the one or more CPUs 806 received via a host interface). The GPUs 808 may include graphics memory, such as display memory, for storing pixel data or other suitable data, such as GPGPU data. The display memory may be included as part of the memory 804. The GPUs 808 may include two or more GPUs operating in parallel (e.g., via a link). The link may connect the GPUs directly (e.g., using NVLINK) or connect the GPUs via a switch (e.g., using NVSwitch).When combined, each GPU can generate 808 pixel data or GPGPU data for different sections of an output or for different outputs (e.g., a first GPU for a first image and a second GPU for a second image). Each GPU can contain its own memory or share memory with other GPUs.
[0187] In addition to or alternatively to the one or more CPUs 806 and / or the one or more GPUs 808, the one or more logic units 820 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. In embodiments, the CPUs 806, the GPUs 808, and / or the one or more logic units 820 may discretely or jointly execute any combination of the methods, processes, and / or portions thereof. One or more of the logic units 820 may be part of and / or integrated with one or more of the CPUs 806 and / or one or more of the GPUs 808, and / or one or more of the logic units 820 may be discrete components or otherwise external to the CPUs 806 and / or the GPUs 808.In embodiments, one or more of the logic units 820 may be a co-processor of one or more of the CPUs 806 and / or one or more of the GPUs 808.
[0188] Examples of the one or more logic units 820 include one or more processing cores and / or components thereof, such as data processing units (DPUs), tensor cores (TCs), tensor processing units (TPUs), pixel visual cores (PVCs), vision processing units (VPUs), graphics processing clusters (GPCs), texture processing clusters (TPCs), streaming multiprocessors (SMs), tree traversal units (TTUs), artificial intelligence accelerators (AIAs), deep learning accelerators (DLAs), arithmetic logic units (ALUs), application-specific integrated circuits (Application-Specific Integrated Circuits, ASICs), floating point units (FPUs),Input / Output (I / O) elements, Peripheral Component Interconnect (PCI) or PCI Express (PCIe) elements, and / or similar.
[0189] The communication interface 810 may include one or more receivers, transmitters, and / or transceivers that enable the computing device 800 to communicate with other computers over an electronic network, including wired and / or wireless communication. The communication interface 810 may include components and functions that enable communication over a variety of networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communication over Ethernet or InfiniBand), low-power wide-area networks (e.g., LoRaWAN, SigFox, etc.), and / or the Internet.In one or more embodiments, the one or more logic units 820 and / or the communication interface 810 may include one or more data processing units (DPUs) to transfer data received over a network and / or via the interconnect system 802 directly to one or more GPUs 808 (e.g., a memory thereof).
[0190] The I / O ports 812 may enable the computing device 800 to be logically coupled to other devices, including the I / O components 814, the one or more presentation components 818, and / or other components, some of which may be built into (e.g., integrated) the computing device 800. Illustrative I / O components 814 include a microphone, a mouse, a keyboard, a joystick, a gamepad, a game controller, a satellite dish, a scanner, a printer, a wireless device, etc. The I / O components 814 may provide a natural user interface (NUI) that processes air gestures, speech, or other physiological inputs generated by a user. In some cases, the inputs may be communicated to a suitable network element for further processing.An NUI may implement any combination of speech sensing, pen sensing, facial sensing, biometric sensing, both on-screen and off-screen gesture sensing, air gestures, head and eye tracking, and touch sensing (as further described below) associated with a display of computing device 800. Computing device 800 may include depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof, for gesture sensing and recognition. Additionally, computing device 800 may include accelerometers or gyroscopes (e.g., as part of an inertia measurement unit (IMU)) that enable the sensing of motion. In some examples, the output of the accelerometers or gyroscopes from computing device 800 may be used to present immersive augmented reality or virtual reality.
[0191] The power supply 816 may include a hardwired power supply, a battery power supply, or a combination thereof. The power supply 816 may supply power to the computing device 800 to enable operation of the components of the computing device 800.
[0192] The one or more presentation components 818 may include a display (e.g., a monitor, a touchscreen, a television monitor, a heads-up display (HUD), other display types, or a combination thereof), speakers, and / or other presentation components. The one or more presentation components 818 may receive data from other components (e.g., the one or more GPUs 808, the one or more CPUs 806, DPUs, etc.) and output the data (e.g., as an image, video, audio, etc.). EXEMPLARY DATA CENTER
[0193] Fig. Figure 9 illustrates an example data center 900 that may be used in at least one embodiment of the present disclosure. Data center 900 may include a data center infrastructure layer 910, a framework layer 920, a software layer 930, and / or an application layer 940.
[0194] As in Fig. 9, the data center infrastructure layer 910 may include a resource orchestrator 912, clustered computing resources 914, and node computing resources (“node CRs”) 916(1)-916(N), where “N” represents any positive integer. In at least one embodiment, the node CRs 916(1)-916(N) may include, but are not limited to, any number of central processing units (CPUs) or other processors (including DPUs, accelerators, field programmable gate arrays (FPGAs), graphics processors or graphics processing units (GPUs), etc.), memory devices (e.g., dynamic read-only memory), storage devices (e.g., solid-state or disk drives), network input / output (NW I / O) devices, network switches, virtual machines (VMs), power modules and / or cooling modules, etc. In some embodiments, one or more node CRsOne or more of the node CRs 916(1)-916(N) may correspond to a server having one or more of the computing resources mentioned above. Furthermore, in some embodiments, the node CRs 916(1)-916(N) may include one or more virtual components, such as vGPUs, vCPUs, and / or the like, and / or one or more of the node CRs 916(1)-916(N) may correspond to a virtual machine (VM). In some embodiments, one or more of the CRs 916(1)-916(N) may execute one or more elements of the path surface feature processor 105 described herein, such as, but not limited to, the heat map generator model 120.
[0195] In at least one embodiment, the grouped computing resources 914 may include separate groupings of node CRs 916 housed in one or more racks (not shown) or in many racks in data centers in different geographic locations (also not shown). Separate groupings of node CRs 916 within grouped computing resources 914 may include grouped computing, network, memory, or storage resources that may be configured or allocated to support one or more workloads. In at least one embodiment, multiple node CRs 916, including the CPUs, GPUs, DPUs, and / or other processors, may be grouped in one or more racks to provide computing resources to support one or more workloads.The one or more racks may also contain any number of power modules, cooling modules, and / or network switches in any combination.
[0196] Resource orchestrator 912 may configure or otherwise control one or more node CRs 916(1)-916(N) and / or clustered computing resources 914. In at least one embodiment, resource orchestrator 912 may include an entity for managing the software design infrastructure (SDI) for data center 900. Resource orchestrator 912 may include hardware, software, or a combination thereof.
[0197] In at least one embodiment, as in Fig. 9, the framework layer 920 may include a job scheduler 933, a configuration manager 934, a resource manager 936, and / or a distributed file system 938. The framework layer 920 may include a framework that supports the software 932 of the software layer 930 and / or one or more applications 942 of the application layer 940. The software 932 or the one or more applications 942 may each include web-based service software or applications such as those provided by Amazon Web Services, Google Cloud, and Microsoft Azure. The framework layer 920 may be some type of free and open source software web application framework such as, but not limited to, Apache Spark™ (hereinafter "Spark"), which may utilize a distributed file system 938 for processing large amounts of data (e.g., "Big Data").In at least one embodiment, the job scheduler 933 may include a Spark driver to facilitate the scheduling of workloads supported by various layers of the data center 900. The configuration manager 934 may be capable of configuring various layers, such as the software layer 930 and the framework layer 920, which includes Spark and the distributed file system 938, to support the processing of large amounts of data. The resource manager 936 may be capable of managing clustered or grouped computing resources allocated or assigned to support the distributed file system 938 and the job scheduler 933. In at least one embodiment, the clustered or grouped computing resources may include the clustered computing resource 914 at the infrastructure layer 910 of the data center.The resource manager 936 may coordinate with the resource orchestrator 912 to manage these allocated or assigned computing resources.
[0198] In at least one embodiment, the software 932 included in software layer 930 may include software used by at least portions of node C.Rs 916(1)-916(N), clustered computing resources 914, and / or distributed file system 938 of framework layer 920. One or more types of software may include, among others, web page searching software, email virus scanning software, database software, and streaming video content software.
[0199] In at least one embodiment, the applications 942 included in the application layer 940 may include one or more types of applications used by at least portions of the node CRs 916(1)-916(N), the clustered computing resources 914, and / or the distributed file system 938 of the framework layer 920. One or more types of applications may include, but are not limited to, any number of genomic applications, cognitive computation, and machine learning applications, including training or inference software, machine learning framework software (e.g., Py Torch, TensorFlow, Caffe, etc.), and / or other machine learning applications used in connection with one or more embodiments.
[0200] In at least one embodiment, the configuration manager 934, the resource manager 936, and / or the resource orchestrator 912 may implement any number and type of self-modifying actions based on any amount and type of data collected in any technically feasible manner. Self-modifying actions may relieve a data center operator of the data center 900 from potentially making poor configuration decisions and potentially avoiding underutilized and / or poorly performing portions of a data center.
[0201] Data center 900 may include tools, services, software, or other resources to train one or more machine learning models or to predict or infer information using one or more machine learning models according to one or more embodiments described herein. For example, one or more machine learning models may be trained by calculating weighting parameters according to a neural network architecture using software and / or computing resources described above with respect to data center 900.In at least one embodiment, trained or deployed machine learning models corresponding to one or more neural networks may be used to derive or predict information using the resources described above with respect to data center 900 by using weighting parameters calculated by one or more training techniques, such as, but not limited to, those described herein.
[0202] In at least one embodiment, the data center 900 may utilize CPUs, application-specific integrated circuits (ASICs), GPUs, FPGAs, and / or other hardware (or corresponding virtual computing resources) to perform training and / or inferencing using the resources described above. Furthermore, one or more of the software and / or hardware resources described above may be configured as a service to enable users to train or infer information, such as image capture, speech capture, or other artificial intelligence services. EXAMPLE NETWORK ENVIRONMENTS
[0203] Network environments suitable for implementing embodiments of the disclosure may include one or more client devices, servers, network attached storage (NAS), other backend devices, and / or other device types. The client devices, servers, and / or other device types (e.g., each device) may be running on one or more instances of the one or more computing devices 800 of Fig. 8 - e.g., each device may include similar components, features, and / or functionality of the one or more computing devices 800. If backend devices (e.g., servers, NAS, etc.) are implemented, the backend devices may also be included as part of a data center 900, an example of which is described herein with reference to Fig. 9 is described in more detail.
[0204] The components of a network environment can communicate with each other over one or more networks, which can be wired, wireless, or both. The network can contain multiple networks or a network of networks. For example, the network can contain one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the Internet and / or a public switched telephone network (PSTN), and / or one or more private networks. If the network contains a wireless telecommunications network, components such as a baseline station, a communications tower, or even access points (as well as other components) can provide wireless connectivity.
[0205] Compatible network environments may include one or more peer-to-peer network environments—in which case, a server cannot be included in a network environment—and one or more client-server network environments—in which case, one or more servers can be included in a network environment. In peer-to-peer network environments, the functionality described herein may be implemented with respect to one or more servers on any number of client devices.
[0206] In at least one embodiment, a network environment may include one or more cloud-based network environments, a distributed computing environment, a combination thereof, etc. A cloud-based network environment may include a framework layer, a job scheduler, a resource manager, and a distributed file system implemented on one or more servers, which may include one or more core network servers and / or edge servers. A framework layer may include a framework for supporting software of a software layer and / or one or more applications of an application layer. The software or the one or more applications may each include web-based service software or applications. In embodiments, one or more of the client devices may utilize the web-based service software or applications (e.g.,by accessing the service software and / or applications through one or more application programming interfaces (APIs). The framework layer may be, but is not limited to, some type of free and open-source software web application framework that uses, for example, a distributed file system for processing large amounts of data (e.g., "Big Data").
[0207] A cloud-based network environment may provide cloud computing and / or cloud storage that performs any combination of the computing and / or data storage functions (or one or more portions thereof) described herein. Each of these various functions may be distributed from central or core servers (e.g., from one or more data centers that may be located across a state, region, country, globe, etc.) across multiple locations. When a connection to a user (e.g., a client device) is relatively close to one or more edge servers, one or more core servers may offload at least a portion of the functionality to the one or more edge servers. A cloud-based network environment may be private (e.g., limited to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment).
[0208] The one or more client devices may include at least some of the components, features, and functions of the one or more described herein with respect to Fig.8. By way of example, and not limitation, a client device may be embodied as a personal computer (PC), a laptop, a mobile device, a smartphone, a tablet computer, a smart watch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a virtual reality headset, a global positioning system (GPS) or a global positioning device, a video player, a video camera, a surveillance device or system, a vehicle, a boat, a flying boat, a virtual machine, a drone, a robot, a handheld communication device, a hospital device, a gaming device or system, an entertainment system, a vehicle computing system, an embedded system controller, a remote control, an appliance, a consumer electronics device, a workstation, an edge device,any combination of these described devices or any other suitable device.
[0209] The disclosure of this application also includes the following numbered clauses: Clause 1. System comprising: one or more processing units for the following: Generating at least one tile image of a path surface based at least on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data is obtained at least based on sensor data associated with the path surface; Applying the at least one tile image to a generator model to perform a semantic segmentation of the at least one tile image that classifies one or more pixels of the at least one tile image based at least on one or more road marking properties; and Generating at least one heat map image based at least on the one or more pixels of the at least one tile image classified as representing the one or more road marking features. Clause 2. The system of Clause 1, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data. Clause 3. The system of Clause 1 or Clause 2, wherein the aggregated path surface data comprises at least one composite point cloud of LIDAR data acquired by at least one sensor on a movable platform positioned at a plurality of locations along the path surface segment. Clause 4. The system of any preceding clause, wherein the aggregated path surface data further comprises location data indicating a position at which the sensor data was collected. Clause 5. A system according to any preceding clause, wherein the one or more processing units are further configured to: with an encoder model of the generator model, downsampling the at least one tile image into a multi-scale image representation comprising a plurality of resolution levels; with a multi-scale feature extraction functional layer of the generator model, performing one or more multi-scale feature extractions to estimate one or more segmentations of road marking landmarks from the plurality of resolution layers; and with a decoder model of the generator model, upsampling the one or more segmentations of road marking landmarks to generate at least one heat map image. Clause 6. A system as claimed in Clause 5, wherein the one or more processing units are further configured to: with a context extraction functional layer of the generator model, extracting one or more contextual features indicating at least one contextual association between the one or more segmentations of road marking landmarks. Clause 7. The system of clause 6, wherein the context extraction functional layer determines the at least one contextual association using at least one attention mechanism based on one or more attention maps. Clause 8. The system of Clause 6 or Clause 7, wherein the context extraction functional layer determines the at least one contextual association using one or more Lambda layers of a LambdaNetwork. Clause 9. A system according to any preceding clause, wherein the one or more processing units are further configured to: Training the generator model using feedback comprising at least one loss determined using a discriminator model based on a generative adverse network (GAN) training architecture; and Calculating the at least one loss based on a first input comprising at least one training heatmap image and a second input comprising at least one heatmap image labeled as ground truth. Clause 10. A system as defined in Clause 9, wherein the one or more processing units are further configured to: Generating at least one training mask based on at least one ground truth labeled heat map image; and Training the generator model based at least on road marking features of a training data image located within the at least one training mask. Clause 11. The system of any preceding clause, wherein one or more pixels of the at least one heat map image represent one or more road marking locations for the one or more road marking line features comprising at least one of the following: a solid line road marking, a dashed line road marking, a white line road marking or a yellow line road marking. Clause 12. A system according to any preceding clause, wherein the at least one heat map image includes an indication of a line marking angle for at least one pavement marking. Clause 13. A system according to any preceding clause, wherein the one or more processing units are further configured to: Generating a map of the path surface based at least on the at least one heat map image. Clause 14. A system according to any preceding clause, wherein the one or more processing units comprise at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for three-dimensional assets; a system for generating or presenting at least one of virtual reality content, augmented reality content, or mixed reality content; a system for performing deep learning operations; a system for performing real-time streaming; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system for performing generative AI operations; a system that is implemented at least in part using a language model; or a system implemented at least in part using cloud computing resources. Clause 15. Processor, which includes: one or more processing units for the following: Generating at least one tile image of a path surface based on at least one orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data; Applying the at least one tile image to a generator model to perform semantic segmentation of the at least one tile image to classify pixels of the at least one tile image based on at least one road marking feature; and Generating at least one heat map image for at least one road marking feature based on at least the pixels of the at least one tile image that were classified as road markings. Clause 16. A processor as defined in Clause 15, wherein the one or more processing units are further configured to: with an encoder model of the generator model, downsampling the at least one tile image into a multi-scale image representation comprising a plurality of resolution levels; with a multi-scale feature extraction functional layer of the generator model, performing one or more multi-scale feature extractions to estimate one or more segmentations of road marking landmarks from the plurality of resolution layers; with a context extraction functional layer of the generator model, extracting one or more contextual features indicating at least one contextual association between the one or more segmentations of road marking landmarks; and with a decoder model of the generator model, upsampling the one or more segmentations of road marking landmarks to generate at least one heat map image. Clause 17. The processor of Clause 15 or Clause 16, wherein the aggregated path surface data comprises at least one composite point cloud of LIDAR data collected by at least one sensor on a movable platform positioned at a plurality of locations along at least one segment of the path surface. Clause 18. The processor of any of Clauses 15-17, wherein one or more pixels of the at least one heat map image represent road marking locations for the road marking feature comprising at least one of the following: a solid line pavement marking, a dashed line pavement marking, a white line pavement marking, a yellow line pavement marking; and wherein the at least one heat map image includes an indication of a road marking angle for at least one road marking. Clause 19. A processor according to any of Clauses 15-18, wherein the one or more processing units comprise at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for three-dimensional assets; a system for generating or presenting at least one of virtual reality content, augmented reality content, or mixed reality content; a system for performing deep learning operations; a system for performing real-time streaming; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system for performing conversational AI operations; a system that is implemented at least in part using a language model; or a system implemented at least in part using cloud computing resources. Clause 20. Procedure which includes: Generating at least one heat map image for at least one pavement marking line feature based at least on applying at least one tile image of a path surface to a generator model to perform semantic segmentation to classify pixels of the at least one tile image, wherein the at least one tile image of the path surface is based on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data.
[0210] The disclosure may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions, such as program modules, executed by a computer or other machine, such as a personal data assistant or other portable device. Generally, program modules include routines, programs, objects, components, data structures, etc., and refer to code that performs specific tasks or implements specific abstract data types. The disclosure may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The disclosure may also be practiced in distributed computing environments where tasks are performed by remotely controlled devices interconnected for communication via a network.
[0211] As used herein, any reference to "and / or" in reference to two or more elements should be interpreted to mean only one element or a combination of elements. For example, "Element A, Element B, and / or Element C" may include only Element A, only Element B, only Element C, Element A and Element B, Element A and Element C, Element B and Element C, or Elements A, B, and C. Furthermore, "at least one of Element A or Element B" may include at least one of Element A, at least one of Element B, or at least one of Element A and at least one of Element B. Further, "at least one of Element A and Element B" may include at least one of Element A, at least one of Element B, or at least one of Element A and at least one of Element B.
[0212] The subject matter of the present disclosure is specifically described herein to satisfy legal requirements. However, the description itself is not intended to limit the scope of the present disclosure. Rather, the inventors have contemplated that the claimed subject matter may be embodied in other ways to include various steps or combinations of steps similar to those described herein, in conjunction with other present or future technologies. Although the terms "step" and / or "block" may be used herein to refer to various elements of the methods employed, the terms should not be interpreted to imply any particular ordering among or between the various steps disclosed herein, unless and except that the order of each step is expressly described.
[0213] It is to be understood that the aspects and embodiments described above are purely exemplary and that changes in detail may be made within the scope of the claims.
[0214] Each device, method, and feature disclosed in the description and (optionally) in the claims and drawings may be presented independently or in any suitable combination.
[0215] Reference signs in the claims are for illustrative purposes only and do not limit the scope of the claims. QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] US 16 / 101,232
[0114] Cited non-patent literature
[0000] Bello, Irwan, “LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION,” International Conference in Learning Representations 2021
[0031] Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles (Standard No. J3016-201806, published on 15 June 2018, Standard No. J3016-201609, published on 30 September 2016
[0071]
Claims
[1] System comprising: one or more processing units for the following: Generating at least one tile image of a path surface based at least on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data is obtained at least based on sensor data associated with the path surface; Applying the at least one tile image to a generator model to perform a semantic segmentation of the at least one tile image that classifies one or more pixels of the at least one tile image based at least on one or more road marking properties; and Generating at least one heat map image based at least on the one or more pixels of the at least one tile image classified as representing the one or more road marking features. [2] The system of claim 1, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data. [3] The system of claim 1 or claim 2, wherein the aggregated path surface data comprises at least one composite point cloud of LIDAR data acquired by at least one sensor on a movable platform positioned at a plurality of locations along the segment of the path surface. [4] The system of any preceding claim, wherein the aggregated path surface data further comprises location data indicating a position at which the sensor data was acquired. [5] A system according to any one of the preceding claims, wherein the one or more processing units further serve to: with an encoder model of the generator model, downsampling the at least one tile image into a multi-scale image representation comprising a plurality of resolution levels; with a multi-scale feature extraction functional layer of the generator model, performing one or more multi-scale feature extractions to estimate one or more segmentations of road marking landmarks from the plurality of resolution layers; and with a decoder model of the generator model, upsampling the one or more segmentations of road marking landmarks to generate at least one heat map image. [6] The system of claim 5, wherein the one or more processing units are further configured to: with a context extraction functional layer of the generator model, extracting one or more contextual features indicating at least one contextual association between the one or more segmentations of road marking landmarks. [7] The system of claim 6, wherein the context extraction functional layer determines the at least one contextual association using at least one attention mechanism based on one or more attention maps. [8] The system of claim 6 or claim 7, wherein the context extraction functional layer determines the at least one contextual association using one or more lambda layers of a LambdaNetwork. [9] A system according to any preceding claim, wherein the one or more processing units further serve to: Training the generator model using feedback comprising at least one loss determined using a discriminator model based on a generative adverse network (GAN) training architecture; and Calculating the at least one loss based on a first input comprising at least one training heatmap image and a second input comprising at least one heatmap image labeled as ground truth. [10] The system of claim 9, wherein the one or more processing units are further configured to: Generating at least one training mask based on at least one ground truth labeled heat map image; and Training the generator model based at least on road marking features of a training data image located within the at least one training mask. [11] The system of any preceding claim, wherein one or more pixels of the at least one heat map image represent one or more road marking locations for the one or more road marking line features comprising at least one of the following: a solid line road marking, a dashed line road marking, a white line road marking or a yellow line road marking. [12] System according to one of the preceding claims, wherein the at least one heat map image contains an indication of a line marking angle for at least one road marking. [13] A system according to any preceding claim, wherein the one or more processing units further serve to: Generating a map of the path surface based at least on the at least one heat map image. [14] A system according to any preceding claim, wherein the one or more processing units comprise at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for three-dimensional assets; a system for generating or presenting at least one of virtual reality content, augmented reality content, or mixed reality content; a system for performing deep learning operations; a system for performing real-time streaming; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system for performing conversational AI operations; a system that is implemented at least in part using a language model; or a system implemented at least in part using cloud computing resources. [15] Processor comprising: one or more processing units for the following: Generating at least one tile image of a path surface based on at least one orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data; Applying the at least one tile image to a generator model to perform semantic segmentation of the at least one tile image to classify pixels of the at least one tile image based on at least one road marking feature; and Generating at least one heat map image for at least one road marking feature based on at least the pixels of the at least one tile image that were classified as road markings. [16] The processor of claim 15, wherein the one or more processing units are further configured to: with an encoder model of the generator model, downsampling the at least one tile image into a multi-scale image representation comprising a plurality of resolution levels; with a multi-scale feature extraction functional layer of the generator model, performing one or more multi-scale feature extractions to estimate one or more segmentations of road marking landmarks from the plurality of resolution layers; with a context extraction functional layer of the generator model, extracting one or more contextual features indicating at least one contextual association between the one or more segmentations of road marking landmarks; and with a decoder model of the generator model, upsampling the one or more segmentations of road marking landmarks to generate at least one heat map image. [17] The processor of claim 15 or claim 16, wherein the aggregated path surface data comprises at least one composite point cloud of LIDAR data acquired by at least one sensor on a movable platform positioned at a plurality of locations along at least one segment of the path surface. [18] The processor of any of claims 15-17, wherein one or more pixels of the at least one heat map image represent road marking locations for the road marking feature comprising at least one of the following: a solid line pavement marking, a dashed line pavement marking, a white line pavement marking, a yellow line pavement marking; and wherein the at least one heat map image includes an indication of a road marking angle for at least one road marking. [19] A processor according to any one of claims 15-18, wherein the one or more processing units comprise at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for three-dimensional assets; a system for generating or presenting at least one of virtual reality content, augmented reality content, or mixed reality content; a system for performing deep learning operations; a system for performing real-time streaming; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system for performing conversational AI operations; a system that is implemented at least in part using a language model; or a system implemented at least in part using cloud computing resources. [20] Procedure comprising: Generating at least one heat map image for at least one pavement marking line feature based at least on applying at least one tile image of a path surface to a generator model to perform semantic segmentation to classify pixels of the at least one tile image, wherein the at least one tile image of the path surface is based on an orthogonal projection of aggregated path surface data onto a baseline surface representation of the path surface, wherein the aggregated path surface data comprises at least one of LIDAR intensity point cloud data, LIDAR depth point cloud data, or path surface color data.
Citation Information
Patent Citations
US16101232B2
US-PATENTANMELDUNGNR.16/101,232
Cited By
Assigning a target class to an object
EP4604071B1