Hierarchical Machine Learning Network Architecture

JP7633165B2Active Publication Date: 2025-02-19ZOOX INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021538780
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-01-02
Filing Date
2019-12-19
Publication Date
2025-02-19
Estimated Expiration
2039-12-19

Smart Images

  • Figure 0007633165000001
    Figure 0007633165000001
  • Figure 0007633165000002
    Figure 0007633165000002
  • Figure 0007633165000003
    Figure 0007633165000003
Patent Text Reader

Abstract

The techniques described herein may include refining a classification of an object detected as represented in the sensor data. For example, refining the classification may include determining a sub-classification of the object.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a hierarchical machine learning network architecture. [Background technology]

[0002] Computer vision is used in a variety of applications, such as operating autonomous vehicles, identifying individuals for security purposes, etc. Computer vision techniques may include building software components that identify salient portions of an image, representing the salient portions of the image to a computer in a format that the computer can use to perform further operations, and / or tracking objects. However, relatively rare objects and / or actions may confuse a computer vision system, causing the computer vision system to misclassify and / or fail to detect objects. For example, rare objects may include pedestrians pushing or carrying large objects, skateboarders, pedestrians using stilts, individuals using wheelchairs, etc. [Brief description of the drawings]

[0003] The detailed description will now be described with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. The same reference numbers in different figures indicate similar or equivalent items.

[0004] [Figure 1] FIG. 1 illustrates an example scenario showing an autonomous vehicle detecting multiple objects in an environment represented by sensor data. [Diagram 2] FIG. 2 illustrates a block diagram of an example architecture for a first machine learning model. [Diagram 3] FIG. 3 illustrates a block diagram of an example machine learning model architecture for improving computer vision accuracy and / or improving trainability of a perception system. [Figure 4]FIG. 4 illustrates a flow diagram of an exemplary process for determining a sub-classification of an object represented by sensor data. [Diagram 5] FIG. 5 illustrates a block diagram of an example system for training and / or using a subclass of machine learning (ML) models. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] The techniques described herein may improve computer vision, for example, by increasing the accuracy of object detection and / or increasing the trainability of machine learning (ML) models. Trainability indicates how confident an ML model can be in modeling the real world (e.g., a probability, determined by the ML model, indicating the likelihood that the output of the ML model accurately models the real world and / or matches ground truth) and / or how difficult it is to train an ML model to model the real world accurately and confidently.

[0006] Techniques described herein may include ML model structures that increase the accuracy of ML models and increase the trainability of ML models (e.g., reduce the complexity of training methods to achieve accuracy and / or reliability that meet or exceed a threshold, e.g., 98%, 99%, 99.999%). The techniques may include detecting an object from sensor data (e.g., imagery, light detection and ranging (LIDAR) sensor data, RADAR sensor data) using a first ML model. The first ML model may receive the sensor data and output a classification associated with the object and / or a region of interest (ROI) associated with a portion of the sensor data occupied by a representation of the object. The classification may indicate a general classification of the object, such as, for example, "pedestrian," "vehicle," "bicycle," "sign," "animal," "traffic obstruction" (e.g., cone, barrier), etc. The ROI may be any method of identifying a portion of the sensor data that the ML model indicates as corresponding to the presence of an object. For example, the ROI may include coordinates indicating pixels identified as associated with a detected object (e.g., a "bounding box"), a mask identifying pixels corresponding to the detected object, a point of a LIDAR point cloud, etc.

[0007] The technique may include receiving a classification and selecting a subclass ML model from among a plurality of subclass ML models based at least in part on the classification. Selecting the subclass ML model may include determining a subset of one or more feature maps to provide as input to the subclass ML model. It will be appreciated that in some examples, each subclass ML model may be associated with a different classification, although in additional or alternative examples, two subclass ML models may share a common classification. For example, a first subclass ML model may be associated with a "pedestrian" classification and a second subclass ML model may be associated with a "vehicle" classification. Thus, if the first ML model outputs a "pedestrian" classification, the technique may include selecting the first subclass ML model. In some examples, the selection component may provide a first subset to the first subclass ML model based at least in part on the first classification and provide a second subset to the second subclass ML model based at least in part on the second classification. Such a selection may be by logic statements (eg, switch, if-then, etc.), as part of a pooling calculation within the model, as a separate sub-network, or otherwise.

[0008] In some examples, the first ML model may additionally or alternatively output one or more feature maps. For example, the one or more feature maps may include an instance segmentation feature map, a semantic segmentation feature map, a detection feature map, etc. The instance segmentation feature map may identify distinct representations of different objects in the image, and / or the semantic segmentation may identify semantic labels associated with representations of objects in the image and provide unique identifiers to distinguish between two objects of the same semantic classification. "Segmentation" may include masking and / or other identification of discrete portions of the sensor data. For example, if the sensor data includes an image, the segmentation may identify pixels of the image associated with detections, labels, etc., and if the sensor data includes a LIDAR point cloud, the segmentation may include identifiers of at least a subset of the points of the point cloud.

[0009] Based at least in part on selecting the subclass ML model, the technique may additionally or alternatively include providing at least a portion of the output of the first ML model as an input to the selected subclass ML model. For example, the technique may include cropping one or more feature maps and / or inputs to the first model based at least in part on the ROI generated by the first model, and providing the cropped feature map and / or ROI to the selected subclass ML model. The selected subclass ML model may then evaluate the subclass ML model based at least in part on the cropped feature map and / or ROI, thereby generating a subclassification and / or probability associated with the object detected in the sensor data.

[0010] For example, if a first ML model generates a general classification "pedestrian" associated with an object detected in the sensor data, the technique may include selecting a first subclass ML model associated with the classification "pedestrian." This subclass ML model may be configured to attempt to identify a subclassification of "pedestrian" associated with the object. For example, potential subclasses of "pedestrian" may include subclasses such as "pedestrian pushing / pulling object," "pedestrian holding object," "wheeled pedestrian," "individual in wheelchair," etc.

[0011] In some examples, the classification and the first probability may be received from a first ML model, and the second probability and / or the sub-classification may be received from a selected sub-class ML model. The technique may include determining whether the second probability meets or exceeds a probability threshold. If the second probability meets or exceeds a probability threshold, the technique may include outputting the sub-classification along with an output associated with the object (e.g., the output may indicate that the perception system detected the object from the sensor data received at the perception system). In some examples, the output may include at least a portion of one or more feature maps, ROIs, etc.

[0012] If the second probability is less than the probability threshold, the technique may include determining whether the first probability meets or exceeds the probability threshold, and outputting a classification upon detection of the object upon determining that the first probability meets or exceeds the probability threshold. In some examples, if the first probability is less than the probability threshold, the subclass ML model may not be selected at all, eliminating the need to determine whether the first probability meets or exceeds the probability threshold. In such examples, the technique may include determining that the second probability is less than the probability threshold, and outputting a classification upon detection of the object.

[0013] In additional or alternative examples, the techniques may include a first probability threshold associated with the first ML model and a second probability threshold associated with the subclass ML model. In some examples, the first probability threshold may be greater than the second probability threshold, while in additional or alternative examples, the first probability threshold may be equal to or less than the second probability threshold.

[0014] In some examples, the techniques may additionally or alternatively include training the selected subclass ML model and / or the first ML model (e.g., for the classification associated with the subclass ML model) by backpropagating the loss through the subclass ML model and / or the first ML model. In some examples, the loss may be backpropagated to the subclassifications and / or probabilities generated by the subclass ML model and / or the classification, the probabilities, one or more feature maps, and / or the ROIs generated by the first ML model. In some examples, the first loss may be calculated for the first ML model (e.g., based at least in part on ground truth specifying the ROIs and / or classification), and the second loss may be calculated for the subclass ML model (e.g., based at least in part on ground truth specifying the classification and / or subclassification). In examples in which multiple models are used, the subclass ML model may be trained using the second loss, and / or the first ML model may be trained based at least in part on the backpropagation of the first loss and / or the second loss (i.e., training the models end-to-end). Training the first ML model with backpropagating the second loss may further refine the accuracy of the first ML model. In other examples where a single model (such as a neural network) is used, the model may use one or more losses and backpropagate the losses for refinement.

[0015] The techniques described herein may improve the accuracy of object detection by increasing the specificity with which an object may be classified and / or by increasing the confidence score generated by the first ML model and / or the subclass ML model in conjunction with object detection. Additionally, the techniques described herein fine-tune the training of the first ML model in a way that may not be achievable without the techniques described herein. For example, backpropagating the loss from the subclass ML model through the first ML model may further improve the reliability and / or accuracy of the classification determined by the first ML model (while simultaneously improving the reliability and / or accuracy of the subclass ML mode). Additionally, the techniques described herein may achieve sufficient accuracy (e.g., greater than 95% or 98% accuracy) for "rare" types of objects, even when sparse training data is available. For example, the amount of training data available for passenger vehicles may far exceed the amount of training data available for individuals in wheelchairs, individuals using stilts, etc.

[0016] The techniques described herein may improve the safety of a system integrating the techniques described herein. For example, by implementing the techniques described herein as a subsystem of an autonomous vehicle, the autonomous vehicle may operate more safely and / or efficiently. The techniques may include controlling operation of the autonomous vehicle by reverting to control of the autonomous vehicle based at least in part on the subclass and / or based at least in part on the general classification if the probability associated with the subclass is less than a probability threshold.

[0017] [Example scenario] FIG. 1 illustrates an example scenario 100 including an autonomous vehicle 102 that detects multiple objects in an environment surrounding the autonomous vehicle from sensor data collected by one or more sensors. In some examples, the autonomous vehicle 102 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions of the entire journey without the expectation that a driver (or passenger) is in control of the vehicle at all times. However, in other examples, the autonomous vehicle 102 may be a fully or partially autonomous vehicle having other levels or classifications. It is contemplated that the techniques described herein may be applied to other than robotic control, such as for autonomous vehicles. For example, the techniques described herein may be applied to video games, manufacturing, augmented reality, and the like.

[0018] In accordance with the techniques described herein, the autonomous vehicle 102 may receive sensor data from sensors 104 of the autonomous vehicle 102. For example, the sensor data may include position signals (e.g., GPS signals), inertial signals (e.g., accelerometer signals, gyroscope signals, etc.), magnetometer signals, wheel encoder signals, speedometer signals, point clouds of accumulated LIDAR and / or RADAR points, an image (or images), audio signals, and / or variac or other environmental signals, etc. For example, the autonomous vehicle 102 may receive images 106 from the sensors 104. While the description herein primarily discusses images for simplicity, it is contemplated that the techniques may apply to any sensor data that individually represents objects (e.g., LIDAR and / or RADAR point clouds that include points that represent objects).

[0019] In some examples, the autonomous vehicle may include a computing device 108 that may include a perception engine 110 and / or a planner 112. The perception engine 110 may include one or more ML models and / or other computer-executable instructions for detecting, identifying, segmenting, classifying, and / or tracking objects from sensor data collected from the environment of the autonomous vehicle 102. In some examples, the perception engine 110 may receive sensor data from the sensors 104 of the autonomous vehicle 102, determine perception data from the sensor data, and transmit the perception data to the planner 112 for use by the planner 112 to estimate a position of the autonomous vehicle 102 on a global map and / or a local map, determine one or more trajectories, control the movement of the autonomous vehicle 102 traveling a path or route, and / or otherwise control the operation of the autonomous vehicle 102, although such operations may be performed in various other components (e.g., localization may be performed by a localization engine, not shown). In some examples, the perception data may include an ROI and / or a general classification associated with an object detected from the sensor data.

[0020] In the illustrated example, the autonomous vehicle 102 may receive an image 106 (and / or other sensor data) that includes representations of a vehicle 116, a number of bicycles, a number of pedestrians, a number of sign objects, and a variety of different environmental objects (e.g., a roadway, a sidewalk, a tree, a building). The perception engine 110 may generate an ROI 118 based at least in part on detecting the vehicle 116 as represented in the image 106. In the illustrated example, the ROI 118 is a bounding box, although other techniques for identifying the ROI are contemplated. FIG. 1 further illustrates various other ROIs that may be generated by the perception engine 110 for different objects that may be detected by the perception engine 110, although for simplicity and clarity, they have not all been labeled. For example, the other ROIs identify a bicycle, another vehicle, and a traffic sign, although it will be understood that additional or alternative portions of the image (and / or other sensor data) may be detected by the perception engine 110.

[0021] In some examples, the perception engine 110 may additionally or alternatively determine a general classification of the object by a first ML model. For example, the first ML model may be trained to output an indication of one classification from among multiple general classifications that corresponds to the highest probability determined by the ML model. In some examples, the general classification may include a label associated with the top of the hierarchy. The general classification may include classifications such as "bicycle", "vehicle", "pedestrian", "animal", "environmental object", etc. In the illustrated example, these general classifications include general classification 120 "bicycle", general classification 122 "vehicle", general classification 124 "pedestrian", and general classification 126 "sign". Although only a sampling of general classifications is shown in FIG. 1 for clarity, it will be understood that the first ML model of the perception engine 110 may determine a general classification for one or more ROIs and / or objects detected from the sensor data.

[0022] The techniques described herein may additionally or alternatively include a structure including a first ML model and one or more subclass ML models. The structure may be configured such that an output of the first ML model may correspond to at least one of the one or more subclass ML models. In some examples, the first ML model may output a general classification from among multiple candidate classifications, which may be used to select at least one of the subclass ML models. For example, the first ML model is trained to output a general classification 122 "vehicle" in response to pixels associated with the ROI 118, while the candidate classifications may include "bicycle," "pedestrian," "sign," etc. In at least some examples, although described as a first ML model and additional subclass ML models, a single ML model may include the first ML model and the subclass ML models. That is, the output from one layer of the model may include a general classification, and other layers of such model may output subclassifications.

[0023] The subclass ML model may be associated with a particular classification of the multiple candidate classifications of the first model. For example, the first subclass ML model may be associated with "pedestrian" and the second subclass ML model may be associated with "vehicle". Based at least in part on the output of the first ML model, the structure may select a subclass ML and provide one or more outputs of the first ML model as inputs to the subclass ML model. The subclass ML model may determine a subclassification associated with the object from among the multiple candidate classifications.

[0024] In some examples, the planner 112 may use the sensory data, including the ROI, general classification, sub-classification, and / or feature map, to generate instructions for controlling the operation of the autonomous vehicle 102. For example, the planner 112 may determine a route for the autonomous vehicle 102 from a first location to a second location, generate multiple potential trajectories for controlling the movement of the autonomous vehicle 102 substantially simultaneously according to a receding horizon technique (e.g., 1 microsecond, 0.5 seconds, several seconds, etc.) and based at least in part on the ROI, general classification, sub-classification, and / or feature map, and select one of the potential trajectories as a trajectory for the autonomous vehicle 102 that may be used to control the vehicle to travel the route and generate drive control signals that may be transmitted to drive components of the autonomous vehicle 102.

[0025] [Exemplary First ML Model Architecture] FIG. 2 illustrates additional details regarding an example architecture 200 of the first ML model 202. In some examples, the first ML model 202 may receive sensor data 204 from one or more sensors. In some examples, the sensor data 204 may include, for example, an image 206 and / or an image such as LIDAR data, RADAR data, biometric data, environmental data, etc. The image 206 may include, for example, an image projected in two-dimensional space, such as a grayscale image, a red-green-blue (RGB) image, a time of flight image, a depth image, an infrared image, an image of LIDAR points (and / or other three-dimensional sensor data points), and / or any combination thereof. It is understood that the first ML model 202 may additionally or alternatively include receiving other types of sensor data from one or more sensors (e.g., a point cloud from a LIDAR sensor and / or a RADAR sensor).

[0026] The first ML model 202 may include a neural network, such as, for example, a convolutional neural network (CNN). In some examples, the first ML model 202 may include multiple layers, one or more of which may generate an output. In some examples, the first ML model may include a component for aggregating outputs of one or more layers, a component for pooling portions of feature maps that correspond to the same detection, etc.

[0027] The first ML model 202, at least in examples where the first ML model is comprised of a neural network, may output one or more feature maps ("feature map 208"), one or more ROIs ("ROI 210"), and / or one or more classifications and / or probabilities ("classifications and / or probabilities 212") based at least in part on the sensor data 204 and in accordance with weights associated with various layers of the first ML model 202 and learned during training. For example, the first ML model 202 may generate an instance segmentation feature map, a semantic segmentation feature map, a dense depth feature map, an object orientation feature map (e.g., a feature map identifying an estimated orientation of a detected object), and / or a detection feature map based at least in part on the sensor data 204 and weights associated with the layers of the first ML model 202. The instance segmentation feature map may include a mask that identifies pixels associated with the object (and / or other discrete portions of the sensor data) and / or additional data associated therewith as determined by the model. While the description herein attempts to describe the contents of some of the feature maps, it is understood that one or more of the feature maps 208 may not be described in human understandable terms because the feature maps 208 may include the output of the first ML model 202, which may be a computational and / or neural network transformation of the sensor data 204. In at least some examples, such feature maps 208 need not be from the same model, but from any number of models that provide additional information about the object (e.g., segmentation, classification, detection, etc., performed on the sensor data and associated with the object).

[0028] In some examples, the ROI (of ROI 210) associated with an object may identify a portion of the image 206 (and / or other sensor data) and / or a portion of the feature map 208 as corresponding to an object, such as, for example, a pedestrian 214. For example, the ROI may include a center and dimensions of a shape, such as a rectangle (i.e., a bounding box), and / or any other identification of the portion of the image attributable to the object, and / or an uncertainty associated therewith. In some examples, in contrast to instance segmentation, which may identify a discrete portion of the sensor data 204 associated with an object and / or provide a unique identifier for the object to distinguish between multiple detected objects, the ROI may be a more "rough" identification of the portion of the sensor data 204 associated with the object (e.g., the ROI may include the same shape for each detected object and may be sized such that the object fits within the ROI; in other words, the ROI may identify something other than the object, in some examples).

[0029] In additional or alternative examples, the first ML model 202 may generate the classifications and / or probabilities 212. The first ML model 202 may generate the classifications and / or probabilities based at least in part on the portion of the sensor data 204 associated with the ROI and / or instance segmentation. This may cause the first ML model 202 to identify the portion of the sensor data 204 as being associated with a classification and, in some examples, identify a likelihood (probability) that the classification is correctly associated with the portion of the sensor data 204. In some examples, the first ML model 202 may generate a probability distribution associated with an object, such as a pedestrian 214, as the classification and / or probability. The illustrated example shows a probability distribution 216 associated with the pedestrian 214. For example, the first ML model 202 may generate the probability distribution 216 based at least in part on the ROI and / or instance segmentation generated by the layers of the first ML model 202 and associated with the representation of the pedestrian 214. In some examples, the first ML model 202 may generate the probability distribution 216 based at least in part on the sensor data 204 itself, a subset of the feature map 208, and / or the ROI 210, etc.

[0030] The probability distribution 216 may identify probabilities associated with general classifications, where the probabilities indicate the likelihood that a portion of the sensor data corresponds to an object of the type identified by the classification. FIG. 2 illustrates the probability distribution 216 as a bar graph plotting candidate classifications (218) on the x-axis and the corresponding probability (220) determined for each candidate classification on the y-axis. For example, in the illustrated example, the candidate classification "pedestrian" 222 is associated with a much higher probability than the candidate classification "vehicle" 224 (in the illustrated example, the probability distribution 216 was generated by the first ML model 202 based at least in part on the portion of the sensor data 204 and / or feature map 208 associated with pedestrian 214).

[0031] In some examples, the first ML model 202 outputs the feature maps 208, the ROIs 210, and / or the classifications and / or probabilities 212 to the refinement ML model 226 (e.g., by concatenation or otherwise). 2 6 may include one or more subclass ML models, as discussed in more detail in FIG. 3. Although shown as different ML models, refinement ML model 2 2 6 and the first ML model 202 may be part of a single ML model (e.g., a set of different layers of a neural network in an example in which the first ML model 202 and / or the refinement ML model 226 include a neural network).

[0032] [Example Architecture] 3 illustrates a block diagram of an example architecture 300 for improving computer vision accuracy and / or improving trainability of a perception system. In some examples, the example architecture 300 may represent a portion of a perception engine, such as perception engine 110.

[0033] In the illustrated example, the exemplary architecture 300 may include a first ML model 202, a selection component 302, and / or one or more subclass ML models 304(1)-304(p) (collectively, “subclass ML models 304”). In some examples, the selection component 302 and / or the subclass ML models 304 may be part of the refinement ML model 226. 02 may receive the sensor data 204 and generate the feature map 208, the ROI 210, and / or the classification and / or probability 212, collectively represented as feature data 306, based at least in part on the sensor data 204. In some examples, the feature data 306 may include sets of data associated with objects detected from the sensor data 204. For example, the feature data 306 may include a first feature map, a first ROI, and / or a first classification and / or a first probability associated with a first object, and a second feature map, a second ROI, and / or a second classification and / or a second probability associated with a second object.

[0034] In some examples, the feature data 306 may be received by the selection component 302. The selection component 302 may select at least one of the subclass ML models 304 based at least in part on the classification received from the first ML model 202. In some examples, the selection may be performed by a logical statement (switch, if-then, etc.), a pooling operation associated with the classification output, a submodel within the subclass ML model, the first ML model, or a learned different model, etc. In some examples, an individual subclass ML model, e.g., subclass ML model 304(p), may be associated with one or more of the candidate classifications associated with the first ML model 202 (e.g., classifications that may be output from the first ML model 202). In at least one example, p may be an integer equal to the number of candidate classifications associated with the first ML model, although in additional or alternative examples, p may be an integer less than or greater than the number of candidate classifications.

[0035] For example, if the selection component receives feature data 306 including a first dataset including a first classification from a first ML model (e.g., “vehicle”), the selection component 302 may select a first subclass ML model associated with the first classification, and if the feature data 306 further includes a second dataset including a second classification (e.g., “pedestrian”), the selection component 302 may select a second subclass ML model associated with the second classification. In some examples, the selection component 302 may determine which subclass ML model of the subclass ML model 304 to send each set included in the feature data 306 to. In other words, the feature data 306 may include a set of feature data for each object detected by the first ML model 202, and the selection component 302 may include a hardware and / or software switch for routing sets of feature data associated with different objects to an appropriate subclass ML model based at least in part on a classification associated with the set of feature data.

[0036] In the illustrated example, the subclass ML model 304(p) may be associated with the classification “pedestrian.” Based at least in part on receiving a set of feature data 306 including the classification “pedestrian” from the first ML model 202, the selection component 302 may select a subclass ML model 304(p) to determine a subclass and / or further process the set. The selection component 302 may select any of the sets of feature data 306 associated with the classification “pedestrian” to be a subclass ML model 304(p) including the classification “pedestrian.” FeaturesThe “pedestrian” feature set 308 may then be sent to the subclass ML model 304(p) as a feature set 308. For example, the “pedestrian” feature set 308 may include at least a portion of one or more feature maps (such as classification feature maps, segmentation feature maps, detection feature maps, other feature maps, etc.) generated by the first ML model 202 associated with the pedestrian 214. In additional or alternative examples, the “pedestrian” feature set 308 may additionally or alternatively include an ROI, a classification, and / or a probability, although in some examples the ROI may be used to determine the portion of the feature map associated with the detected object, and the classification may be used to determine the subclass ML model to send that portion to.

[0037] In additional or alternative examples, the selection component 302 may determine and provide a portion of the feature map as an input to a selected subclass ML model, such as subclass ML model 304(p) in the illustrated example. For example, the selection component 302 may crop and / or otherwise identify and provide a portion of one or more feature maps to the selected subclass ML model based at least in part on the ROI received from the first ML model 202.

[0038] In some examples, each subclass ML model 304(p) may be trained to output 310 a subclassification and / or probability from among one or more candidate subclassifications associated with the general classification to which the subclass ML model 304(p) is associated. For example, if the subclass ML model 304(p) is associated with the classification "pedestrian," the candidate subclassifications associated with the subclass ML model 304(p) may be "pedestrian holding object" 312, "wheeled pedestrian" 314 (e.g., skateboard, scooter, Segway, etc.), TM, other personal transportation), “pedestrian pushing / pulling object” 316, “individual in wheelchair”, “individual using stilts”, “child”, “construction worker”, “public safety officer”, etc. In some examples, the output 310 may include a probability distribution 318 over the candidate subclassifications associated with the subclass ML model 304(p). The probability distribution 318 is illustrated in FIG. 3 as a bar graph with example candidate subclassifications 320 on the x-axis and probabilities 322 on the y-axis.

[0039] To further illustrate, another subclass ML model associated with the classification "sign" may be associated with candidate subclassifications "traffic sign", "billboard", "poster", "other advertisement", etc. Furthermore, subclass models may be parents of additional (and / or lower) levels of subclass ML models. For example, a first ML model may be associated with the general classifications "vehicle", "pedestrian", "sign", etc., and a first subclass ML model may be associated with the classification "sign" and associated as a parent with a second subclass ML model associated with the subclassification "traffic sign". "Traffic sign" may be a candidate class for the first subclass ML model, and its child, the second subclass ML model, may be associated with the candidate subclassifications "stop sign", "yield sign", "speed sign", "lane merge sign", etc.

[0040] In other words, the example architecture 300 may include a hierarchical structure of parent and child ML models related by classification, where the child ML models are trained to output subclassifications associated with the classifications generated by the parent ML models. The classifications and / or subclassifications generated by the ML models described herein may reflect the hierarchical structure of the ML models. For example, a "yield sign" may be represented by a second subclass ML model as "sign:traffic sign:yield sign."

[0041] Returning to the illustrated example, based at least in part on the set of feature data received from the selection component 302 (e.g., which may include at least a portion of the object, and in some examples, additionally or alternatively, the ROI, and / or one or more feature maps associated with the classifications and / or probabilities), the subclass ML model 304(p) may generate a probability distribution 316. In some examples, the subclass ML model 304(p) outputs the subclassifications and / or probabilities as part of the output 310. For example, the subclass ML model 304(p) may determine a candidate subclassification that is associated with a probability that meets or exceeds a probability threshold 324 and / or is the largest probability that exceeds the probability distribution 318.

[0042] In some examples, based at least in part on determining one of the sub-classifications to output, the sub-class ML model 304(p) may determine whether the output sub-classification meets or exceeds a probability threshold 324. For example, if the sub-classification falls within a probability distribution 3 18 Even if the probability associated with the output subclassification is less than the probability threshold 324, the probability may be too low to be reliable (e.g., less than 95%, less than 90%, less than 80%, less than 70%). If the probability associated with the output subclassification is less than the probability threshold 324, the subclass ML model 304(p) may output the classification received from the first ML model 202 instead of the subclassification. However, if the probability meets or exceeds the probability threshold, the subclass ML model 304(p) may output the subclassification. In additional or alternative examples, the subclass ML model 304(p) may output a subclassification in addition to the general classification even if the subclassification is associated with a probability below the probability threshold, although in some examples the subclass ML model 304(p) may additionally or alternatively output an indication that the subclassification is associated with a probability less than the probability threshold 324.

[0043] In the illustrated example, the subclass ML model 304(p) is a subclassification “pedestrian holding object” 31 2the sub-classification “pedestrian holding object” 31 based at least in part on determining that the probability is associated with a probability that meets or exceeds a probability threshold 326 and / or that the probability is a maximum probability of a plurality of probabilities in the probability distribution 318. 2 and / or the probability associated therewith. However, the subclass “pedestrian holding object” 31 2 If the subclass ML model 304(p) were to determine that, even if the probability of the object being held by the pedestrian is associated with a probability below the probability threshold 326, the subclass ML model 304(p) would not be able to determine that the object is being held by the pedestrian. 2 Instead of "pedestrian",

[0044] In an example where subclass ML model 304(p) is a parent to additional subclass ML models (not shown) (e.g., a subclass model associated with the general classification "sign," an additional subclass model associated with the subclassification "traffic sign"), based at least in part on a determination that the subclassification determined by subclass ML model 304(p) meets or exceeds the probability threshold 326, the subclass ML model 304(p) may send the subclassification to the additional child subclass ML model, which may determine the subclassification (of the subclassification) and / or probability. However, if the subclass ML model 304(p) determines that the subclassification is less than the probability threshold 324, then the subclass ML model 304(p) may bypass the additional subclass ML models and output the general classification instead.

[0045] In some examples, the classifications and subclassifications may include semantic labels and / or data structures to distinguish between hierarchically related classifications. For example, the semantic label generated by a subclass ML model of an ML model two levels down in structure from the general classification determined by the first ML model 202 may be represented as "signs:traffic:stop signs."

[0046] In some examples, the training data for the different ML models may vary depending on the general classification (i.e., the parent candidate classification with which the subclass ML models are associated) and / or the candidate classification with which they are associated. For example, a first subclass ML model associated with the general classification "sign" may be trained on training data including a variety of signs. In some examples, the training data for the first subclass ML model may only include training data including at least one sign, while in additional or alternative examples, the training data may include data that does not include signs (e.g., not signs) that would negatively train the subclass ML model. Meanwhile, a second subclass ML model associated with the general classification "pedestrian" may be trained on training data that may or may not include signs, but includes objects associated with rare classifications such as "individual in wheelchair". The first ML model may be trained more broadly to distinguish between general classes, but in some examples does not distinguish between subclasses. For example, a first ML model may be trained using ground truth that indicates "pedestrians," "vehicles," "signs," etc., but not "pedestrians holding objects," "individuals in wheelchairs," "four-wheeled vehicles," "stop signs," "yield signs," "speed signs," etc.

[0047] In additional or alternative examples, a first loss may be calculated for the first ML model 202 based at least in part on the output of the first ML model 202 compared to the first training data (which may include, for example, ground truth), and a second loss may be calculated for a subclass ML model associated with the candidate classification of the first ML model 202. The second loss may be based at least in part on the difference between the output of the subclass ML model and the ground truth indicated by the first training data and / or the second training data. Parameters associated with the subclass ML model may be altered to minimize the second loss. Parameters associated with the first ML model 202 may be altered to minimize the first loss and / or the second loss. In some examples, the ground truth indicated by the training data may include tags indicating a correct hierarchy of classifications. For example, the ground truth may include tags such as "vehicle: four-wheeled vehicle: sedan" or "sign: traffic sign: yield sign". In some examples, losses calculated for the first ML model 202 and / or one or more subclass ML models may be based at least in part on such hierarchical tags. Such first and second losses may be in addition to or in lieu of a third loss associated with the classification, detection, and / or segmentation (which may be instance segmentation) performed by the first ML model 202.

[0048] Training may include modifying parameters of neural networks from the top of the hierarchy (e.g., the first ML model 202) to the lowest neural network that received the feature data. For example, if the classification "sign:traffic sign:yield sign" is ultimately output, the first ML model 202 and at least two subclass ML models may be trained based at least in part on the losses calculated for the ML models. In an additional or alternative example, if the classification "sign:traffic sign" is ultimately output, the first ML model 202, the first subclass ML model (associated with "traffic sign"), and / or further subclass ML models may be trained. For example, the further subclass ML models may have received feature data from the first subclass ML model but may not have produced a classification associated with a probability that meets or exceeds a probability threshold.

[0049] In some examples, the first ML model 202 may be trained first, and the subclass ML model may be trained after the first ML model 202 reaches sufficient accuracy. For example, the first ML model 202 may be trained until the first ML model 202 outputs classifications that meet or exceed a probability threshold. In additional or alternative examples, the first ML model 202 may be trained simultaneously with one or more layers of the subclass ML model.

[0050] In some examples, the loss calculated for the sub-classification ML model may be backpropagated through any parent ML models up to and including the sub-classification and / or first ML model. For example, if one or more models are used, the models may be said to be trained "end-to-end."

[0051] Although the description herein describes a somewhat sequential architecture and process, the example architecture 300 may include a parallel pipeline. Any of the components described herein may accomplish operations sequentially and / or in parallel. For example, different ROIs, classifications, and / or probabilities may be processed in parallel by different subclass ML model and / or selection components.

[0052] In some examples, one or more of the components described herein may be implemented in whole or in part as a neural network. As described herein, an exemplary neural network is a biologically inspired algorithm that passes input data through a series of connected layers to generate an output. Each layer of a neural network may include another neural network, or may include any number of layers (convolutional or not). As may be understood in the context of the present disclosure, a neural network may utilize machine learning, which may refer to a broad class of algorithms in which an output is generated based on learned parameters.

[0053] Although discussed in the context of neural networks, any type of machine learning may be used consistent with the present disclosure. For example, machine learning algorithms may include, but are not limited to, regression algorithms, instance-based algorithms, Bayesian algorithms, association rule learning algorithms, deep learning algorithms, etc. Additional or alternative examples of neural network architectures may include neural networks such as ResNet50, ResNet101, VGG, DenseNet, PointNet, etc.

[0054] [Example Process] 4 illustrates an example process 400 for determining a sub-classification of an object represented by sensor data. In some examples, the example process 400 may be accomplished by components of the example architecture 300.

[0055] At operation 402, the example process 400 may include receiving sensor data according to any of the techniques described herein.

[0056] At operation 404, the example process 400 may include generating, by the first ML model, a classification associated with the ROI, the object, and / or one or more feature maps according to any of the techniques described herein. In some examples, according to the architecture described herein, the first ML model may be a parent (and / or sub-network) of one or more child ML models (which may be different ML models and / or additional sub-networks of the same ML model as the first ML model), each child ML model (i.e., sub-class ML models) corresponding to a different candidate classification for which the first ML model was trained to generate probability distributions. In additional or alternative examples, the classifications with which the child ML models are associated may overlap, such that two or more sub-class models may generate sub-classes and / or classification probabilities based at least in part on the classifications output by the first ML model. In some examples, the classifications may be associated with the ROI and / or otherwise associated with a representation of the object in the sensor data.

[0057] At operation 406, the example process 400 may include selecting a subclass ML model from among the plurality of subclass ML models according to any of the techniques described herein based at least in part on the classification generated by the first ML model. In some examples, operation 406 may further include identifying which subclass ML model is associated as a child of the first ML model. However, in additional or alternative examples, the subclass ML model may be communicatively coupled (e.g., by a hardware and / or software switch) to the first ML model such that the output of the first ML model is sent directly to the subclass ML model corresponding to the classification indicated by the output of the first ML model. Nevertheless, selecting the subclass ML model may include determining that the subclass ML model is associated with the classification generated by the first ML model. In additional or alternative examples, the first ML model and the subclass ML model may be subparts of the same neural network. In such examples, operation 406 may be omitted.

[0058] In some examples, operation 406 may additionally or alternatively include determining and providing a portion of the data generated by the first ML model to the selected subclass ML model. For example, in addition to or instead of the first ML model generating an ROI and / or a classification, the first ML model may generate one or more feature maps, such as, for example, an instance segmentation, a semantic segmentation, a dense depth feature map, an object-oriented feature map, a detection feature map, etc. At operation 406, the example process 400 may include determining and providing a portion of the one or more feature maps to the selected subclass ML model that corresponds to the object represented in the sensor data. This may include cropping and / or otherwise selecting a portion of the feature map that corresponds to the ROI and / or other representation of the discrete portion of the sensor data that corresponds to the object. Once the portion is determined, the portion, the ROI determined by the first ML model, and / or the classification determined by the first ML model may be provided to the subclass ML model. In some examples, this may be repeated for one or more objects detected from the sensor data (e.g., for each detected object, a subclass ML model may be selected, at least a portion of one or more feature maps may be determined, and the portion may be provided to the selected subclass ML model).

[0059] In some examples, the first ML model may include q channels, where q may be an integer selected to correspond to a dimensionality of the sensor data received by the ML model. In some examples, the subclass ML model may include r channels, where r may be an integer corresponding to a dimensionality of an output layer of the first ML model that generates the ROIs and / or feature maps.

[0060] At operation 408, the example process 400 may include generating, by the selected subclass ML model, a subclassification and / or a subclassification probability associated with the object according to any of the techniques described herein. For example, generating the subclassification and / or probability may be based at least in part on the portion of the feature map determined above and / or the input to the first ML model, the ROI determined by the first ML model, and / or the classification determined by the first ML model. However, since the subclass ML model may be trained to generate the subclassification and / or probability based at least in part on the portion of the feature map determined to correspond to the object, in some examples, the subclass ML model may not receive the classification and / or ROI determined by the first ML model once training is complete. In some examples, the selection component may ensure that the portion is routed to the correct subclass ML model corresponding to the classification generated by the first ML model. For example, the selection component may include layers of a neural network designed to send data from an output node of a parent ML model to an input node of a child ML model and / or a hardware and / or software switch.

[0061] In some examples, the subclass ML model may determine a probability distribution across the candidate subclassifications on which the subclass ML model was trained. In some examples, the subclass ML model may determine one of the candidate subclassifications that is associated with a higher probability than the other candidate classifications. This subclassification may be associated with a local maximum, a maximum value, a probability greater than the upper quartile, etc.

[0062] In operation 410, the exemplary process 400 may include determining whether the probability associated with the sub-classification generated by the subclass ML model meets a probability threshold (e.g., whether the probability meets or exceeds a probability threshold) by any of the techniques described herein. The probability threshold may include values ​​such as, for example, 99%, 98%, 95%, 90%, 80%, 75%, etc. Operation 410 may additionally or alternatively include determining whether there is a difference between the probability that is greater than the other probabilities in the probability distribution to the second-largest probability, and determining whether the difference meets or exceeds a discrimination threshold. For example, if the first probability is 95%, the second probability is 92%, and the discrimination threshold is 5%, the difference between the first probability and the second probability does not meet or exceed the discrimination threshold because the difference is 3%. This may indicate that the model has not sufficiently discriminated the classification and is highly confident that the object is two different classifications at the same time. In some examples, a particular classification may be output simultaneously and / or other classifications may be associated with the discrimination threshold. For example, the sub-classification "Individual pulling / pushing object" may be co-outputted with the sub-classification "Children," but "Individual pulling / pushing object" may be associated with a discrimination threshold associated with the sub-classification "Wheeled pedestrian."

[0063] If the probability associated with the subclassification is less than the probability threshold, the example process 400 may proceed to operation 412. In some examples, the output of the first ML model and / or the subclass ML model may additionally or alternatively be output through a last layer of the first ML model and / or the subclass ML model, respectively. In operation 412, the example process 400 may include associating the classification with the object according to any of the techniques described herein. For example, this may include associating the classification generated by the first ML model with the object instead of associating the subclassification generated by the subclass ML model with the object. In examples where subclass ML models are associated with parent to child subclass ML models, these subclass ML models may be skipped and the classification may be output. In additional or alternative examples, the portion, ROI, and / or classification may be provided to an alternative subclass ML model based at least in part on determining that the probability does not meet the probability threshold. For example, an alternative subclass ML model may additionally be associated with a classification, or in an additional or alternative example, a subclass ML model may be associated with a second classification determined by a first ML model that is associated with a lower probability than the probability associated with the classification. For example, the second classification may be associated with the second highest probability. To illustrate, a first subclass ML model may be associated with a parent candidate classification "traffic sign" and a second subclass ML model may be associated with a parent candidate classification "billboard."

[0064] If the probability associated with the sub-classification meets or exceeds a probability threshold, the example process 400 may proceed to operation 414. At operation 414, the example process 400 may include associating the sub-classification with the object according to any of the techniques described herein. Associating the sub-classification with the object may include outputting the sub-classification as part of a detection message published by the perception engine over a channel to components (e.g., planner, localization and mapping components) that subscribe to the channel (e.g., via a publish / subscribe architecture).

[0065] In additional or alternative examples, if the subclass ML model is parentally related to other subclass ML models, the subclass ML model may send the subclassification and / or portion of the feature map to the child subclass ML model corresponding to the subclassification. The process at operations 408-414 described above may be repeated with the child subclass ML model. However, if the subclassification generated by the child subclass ML model is less than a second probability threshold (e.g., may be equal to, exceed, or less than the probability threshold), instead of associating the classification with the object, the example process 400 may include associating the subclassification of the subclass ML model with the object. In some examples, the ROI, classification, and / or probability may be output by the first ML model, and the subclassification and / or probability may additionally or alternatively be output by any subclass ML model to which the feature data reaches (e.g., by selection / forwarding).

[0066] [Example System] FIG. 5 illustrates a block diagram of an example system implementing the techniques described herein. In some examples, the system 500 may include a vehicle 502 that may correspond to the autonomous vehicle 102 of FIG. 1. In some examples, the vehicle 502 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions of the entire journey without the expectation that a driver (or passenger) is in control of the vehicle at all times. However, in other examples, the vehicle 502 may be a fully or partially autonomous vehicle having other levels or classifications. Additionally, in some examples, the techniques described herein may be used by non-autonomous vehicles. It is contemplated that the techniques described herein may be applied to more than just robotic control, such as autonomous vehicles. For example, the techniques described herein may be applied to video games, manufacturing, augmented reality, and the like.

[0067] The vehicle 502 may include a vehicle computing device 504 , one or more sensors 506 , one or more emitters 508 , one or more network interfaces 510 , and / or one or more drive components 512 .

[0068] In some examples, the sensors 506 may include LIDAR sensors, RADAR sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., Global Positioning System (GPS), compass, etc.), inertial sensors (e.g., Inertial Measurement Units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), image sensors (e.g., Red-Green-Blue (RGB), Infrared (IR), intensity, depth, time of flight cameras, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc. The sensors 506 may include multiple instances of each of these or other types of sensors. For example, the LIDAR sensors may include individual LIDAR sensors installed at the corners, front, back, sides, and / or top of the vehicle 502. As another example, the cameras may include multiple cameras positioned at various locations around the exterior and / or interior of the vehicle 502. The sensors 506 may provide input to the vehicle computing device 504.

[0069] The vehicle 502 may also include emitters 508 that emit light and / or sound, as described above. The emitters 508 in this example may include interior audio and visual emitters for communicating with passengers of the vehicle 502. By way of example and not limitation, the interior emitters may include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, head rest positioners, etc.), and the like. The emitters 508 in this example may also include exterior emitters. By way of example and not limitation, the exterior emitters in this example include lights for signaling a direction of travel or other indicators of the vehicle's actions (e.g., indicator lights, signs, light arrays, etc.), and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audibly communicating with one or more pedestrians or other nearby vehicles with acoustic beam steering technology.

[0070] The vehicle 502 may also include a network interface 510 that enables communication between the vehicle 502 and one or more other local or remote computing devices. For example, the network interface 510 may facilitate communication with other local computing devices on the vehicle 502 and / or the drive components 512. The network interface 510 may also additionally or alternatively enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signs, etc.). The network interface 510 may additionally or alternatively enable the vehicle 502 to communicate with a computing device 514. In some examples, the computing device 514 may include one or more nodes of a distributed computing system (e.g., a cloud computing architecture).

[0071] The network interface 510 may include physical and / or logical interfaces for connecting the vehicle computing device 504 to another computing device or network, such as the network 516. For example, the network interface 510 may enable Wi-Fi-based communications, such as over frequencies defined by the IEEE 500.11 standard, short-range wireless frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that allows each computing device to interface with other computing devices. In some examples, the vehicle computing device 504 and / or the sensor 506 may transmit sensor data over the network 516 to the computing device 514 at a particular frequency, after a predetermined period of time, in near real-time, etc.

[0072] In some examples, the vehicle 502 may include one or more drive components 512. In some examples, the vehicle 502 may have a single drive component 512. In some examples, the drive component 512 may include one or more sensors that detect conditions surrounding the drive component 512 and / or the vehicle 502. By way of example and not limitation, the sensors of the drive component 512 may include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive component, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive component, cameras or other image sensors, ultrasonic sensors for acoustically detecting objects surrounding the drive component, LIDAR sensors, RADAR sensors, etc. Some sensors, such as wheel encoders, may be unique to the drive component 512. In some cases, the sensors on the drive component 512 may overlap or supplement corresponding systems (e.g., sensors 506) of the vehicle 502.

[0073] The drive components 512 may include many vehicle systems including a high voltage battery, a motor to propel the vehicle, an inverter to convert direct current from the battery to alternating current for use by other vehicle systems, a steering system including a steering motor and a steering rack (which may be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system for braking force distribution to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights that illuminate the vehicle's exterior environment), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical components such as DC / DC converters, high voltage junctions, high voltage cables, charging systems, charging ports, etc.). Additionally, the drive components 512 may include a drive components controller that may receive and pre-process data from sensors and control the operation of various vehicle systems. In some examples, the drive components controller may include one or more processors and a memory communicatively coupled to the one or more processors. The memory may store one or more components and perform various functions of the drive components 512. Additionally, drive components 512 may also include one or more communication connections that enable each drive component to communicate with one or more other local or remote computing devices.

[0074] The vehicle computing device 504 may include one or more processors 518 and a memory 520 communicatively coupled to the one or more processors 518. The computing device 514 may additionally or alternatively include a processor 522, and / or a memory 524. The processors 518 and / or 522 may be any suitable processor capable of processing data and executing instructions to perform operations as described herein. By way of example and not limitation, the processors 518 and 522 may comprise one or more central processing units (CPUs), graphics processing units (GPUs), integrated circuits (e.g., application specific integrated circuits (ASICs), etc.), gate arrays (e.g., field programmable gate arrays (FPGAs), etc.), and / or any other device or portion of a device that processes electronic data and converts it into other electronic data that may be stored in a register or memory.

[0075] Memory 520 and / or 524 may be examples of non-transitory computer-readable media. Memory 520 and / or 524 may store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods and functions attributed to the various systems described herein. In various implementations, memory may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, the ones shown in the accompanying drawings of which are merely examples relevant to the description herein.

[0076] In some examples, memory 520 and / or memory 524 may store a perception engine 526, which may include an ML architecture 528, a planner 530, and / or a system controller 532. The perception engine 526 may represent the perception engine 110, the ML architecture 528 may include and / or represent the example architecture 300, and the planner 530 may represent the planner 112. In some examples, the perception engine 526 may include a primary perception system, a secondary perception system, a prediction system, and / or a position measurement system. Memory 520 and / or 524 may additionally or alternatively store a mapping system, a planning system, a ride management system, and / or the like. Although the perception engine 526 and the ML architecture 528 are shown stored in memory 520, the perception engine 526 and / or ML architecture 528 may be stored in memory 524 and / or may include processor-executable instructions, machine learning models, and / or hardware.

[0077] As described herein, an exemplary neural network is a biologically inspired algorithm that passes input data through a series of connected layers to generate an output. Each layer of a neural network can also include another neural network, or can include any number of layers (convolutional or not). As can be understood in the context of this disclosure, a neural network can utilize machine learning, which can refer to a broad class of algorithms in which an output is generated based on learned parameters.

[0078] Although discussed in the context of neural networks, any type of machine learning may be used consistent with this disclosure. Machine learning algorithms include, for example, but are not limited to, regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally estimated scarplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automated interaction detection (CHAID), decision stump, conditional decision tree)), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average-one dependent estimator (AODE), Bayesian belief network (BNN), Bayesian network), clustering algorithms (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., perceptron, batch, etc.), and / or hierarchical clustering algorithms (e.g., hierarchical clustering algorithms). These algorithms may include: deep learning algorithms (e.g., deep Boltzmann machines (DBM), deep brain networks (DBN), convolutional neural networks (CNN), stacked autoencoders), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixed discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., boosting, bootstrap aggregation (bagging), AdaBoost, stacked generalization (blending), gradient boosting machines (GBM), gradient boosting regression trees (GBRT), random forests), support vector machines (SVM), supervised learning, unsupervised learning, semi-supervised learning, etc. Additional examples of architectures include neural networks such as ResNet60, ResNet101, VGG, DenseNet, and PointNet.

[0079] The memory 520 may additionally or alternatively store one or more system controllers 532 (which may additionally or alternatively be implemented as hardware), which may be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of the vehicle 502. These system controllers 532 may communicate with and / or control corresponding systems of the drive components 512 and / or other components of the vehicle 502. For example, the planner 530 may generate instructions based at least in part on the classifications, sub-classifications, and / or ROIs generated by the perception engine 526, and send the instructions to the system controllers 532, which may control operation of the vehicle 502 based at least in part on the instructions.

[0080] 5 is shown as a distributed system, it should be noted that in alternative examples, components of the vehicle 502 may be associated with the computing device 514 and / or components of the computing device 514 may be associated with the vehicle 502. That is, the vehicle 502 may perform one or more of the functions associated with the computing device 514, and vice versa.

[0081] [Example of claims] A. A method comprising: receiving an image from a sensor of an autonomous vehicle; providing the image as an input to a first neural network; receiving a feature map, a region of interest, a classification, and a first probability associated with an object represented in the image from the first neural network; providing at least a portion of the feature map corresponding to the region of interest as an input to a second neural network; receiving a sub-classification and a second probability associated therewith from the second neural network; and controlling operation of the autonomous vehicle based at least in part on at least one of the classification or the sub-classification.

[0082] B. The method of paragraph A, further comprising: outputting the classification associated with the region of interest based at least in part on determining that the first probability meets or exceeds a first probability threshold; and outputting at least one of the classification or sub-classification associated with the region of interest based at least in part on determining that the second probability meets or exceeds a second probability threshold.

[0083] C. The method of either paragraph A or paragraph B, wherein the method further includes providing at least additional feature maps received from the first neural network as additional inputs to the second portion of the neural network, the first neural network being trained to output at least one of an instance segmentation or a semantic segmentation.

[0084] D. The method of any one of paragraphs A to C, further including: transmitting the portion of the feature map to the second neural network based at least in part on receiving the classification, the classification being associated with the second neural network; and transmitting a second portion of the second feature map to a third neural network based at least in part on receiving the second classification, the second classification being associated with the third neural network.

[0085] E. The method of any one of paragraphs A to D, wherein the candidate classifications include at least two of a pedestrian classification, a vehicle classification, a bicycle classification, a sign classification, an animal classification, and a traffic obstruction classification.

[0086] F. A system comprising one or more processors and a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations including receiving sensor data; providing the sensor data as an input to a first machine learning (ML) model; receiving from the first ML model a classification associated with a representation of an object in the sensor data, a first probability associated with the classification, a feature map, a region of interest for the sensor data associated with the representation of the object; and receiving from a subclassification and a second probability associated with the subclassification from a subclass ML model.

[0087] G. The system of paragraph F, wherein the operation further comprises inputting at least a first portion of a first feature map received from a first portion of the first ML model and at least a second portion of a second feature map received from a second portion of the first ML model into the subclass ML model.

[0088] H. The system of any of paragraphs F or G, wherein the first portion and the second portion are based at least in part on the region of interest.

[0089] I. The system of any one of paragraphs F to H, wherein the second feature map includes at least one of a semantic segmentation feature map, an instance segmentation feature map, a dense depth feature map, or an object orientation feature map.

[0090] J. the operations include outputting the classification associated with the object based at least in part on determining that the first probability meets or exceeds a first probability threshold, outputting the sub-classification associated with the object based at least in part on determining that the second probability meets or exceeds a second probability threshold, and controlling an autonomous vehicle based at least in part on at least one of the classification or the sub-classification. The system of any one of paragraphs F to I, further comprising:

[0091] K. The system of any one of paragraphs F-J, wherein the operations further comprise: providing ground truth sensor data to at least one of the first ML model or the subclass ML model, the ground truth sensor data being associated with a ground truth classification label and a ground truth sub-classification label; determining a first loss based at least in part on a difference between a first output of the first ML model and the ground truth classification label; determining a second loss based at least in part on a difference between a second output of the subclass ML model and the ground truth sub-classification label; and modifying at least one of one or more first parameters of the first ML model or one or more second parameters of the subclass ML model to minimize at least one of the first loss or the second loss.

[0092] L. The system of any one of paragraphs F to K, wherein the second portion of the ML model is associated with a first classification and the third portion of the ML model is associated with a second classification, and the first classification and the second classification are candidate classifications associated with the first portion of the ML model.

[0093] M. The system of any one of paragraphs F to L, wherein the first classification and the second classification are two of a plurality of classifications, the plurality of classifications including at least two of a pedestrian classification, a vehicle classification, a bicycle classification, a sign classification, an animal classification, and a traffic obstruction classification.

[0094] N. The system of any one of paragraphs F to M, wherein the first ML model includes a first neural network including a plurality of first layers and the subclass ML model includes a second neural network including a plurality of second layers.

[0095] O. The system of any one of paragraphs F to N, wherein the first ML model includes a first portion of a neural network including a plurality of first layers, and the subclass ML model includes a second portion of the neural network including a plurality of second layers.

[0096] P. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving sensor data; providing the sensor data as an input to a first machine learning (ML) model; receiving a first output from the first ML model including a classification associated with a representation of an object in the sensor data and a first probability associated with the classification; and receiving a sub-classification and a second probability associated with the sub-classification from a subclass ML model.

[0097] Q. The non-transitory computer-readable medium of paragraph P, wherein the operations further comprise receiving a first feature map from a first portion of the first ML model, receiving a second feature map from a second portion of the first ML model, and inputting at least a portion of the first feature map and at least a portion of the second feature map into the subclass ML model, wherein at least one of the first feature map or the second feature map is associated with a region of interest associated with the representation of the object in the sensor data.

[0098] the non-transitory computer-readable medium of any of paragraphs P or Q, wherein the R.ML model includes at least the first ML model and the subclass ML model, and wherein a neural network is trained based at least in part on providing ground truth sensor data to at least one of the first ML model or the subclass ML model, the ground truth sensor data being associated with ground truth classification labels and ground truth sub-classification labels; determining a first loss based at least in part on a difference between a first output of the first ML model and the ground truth classification labels; determining a second loss based at least in part on a difference between a second output of the subclass ML model and the ground truth sub-classification labels; and modifying at least one of one or more first parameters of the first ML model or one or more second parameters of the subclass ML model to minimize at least one of the first loss or the second loss.

[0099] S. The non-transitory computer-readable medium of any one of paragraphs P-R, wherein the operations further comprise at least one of: outputting the classification associated with the object based at least in part on determining that the first probability is greater than or equal to a first probability threshold, outputting the sub-classification based at least in part on determining that the second probability is greater than or equal to a second probability threshold, or controlling an autonomous vehicle based at least in part on the classification and the sub-classification.

[0100] T. The non-transitory computer-readable medium of any one of paragraphs P-S, wherein the subclass ML model is a first subclass ML model and the classification is a first classification, and the operations further comprise receiving from the first ML model a first feature map associated with the first classification; receiving from the first ML model a second feature map associated with a second classification; providing a first portion of the first feature map as an input to the first subclass ML model based at least in part on the first classification associated with the first subclass ML model; and providing a second portion of the second feature map as an input to the second subclass ML model based at least in part on the second classification associated with a second subclass ML model.

[0101] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.

[0102] The components described herein represent instructions that may be stored on any type of computer-readable medium and that may be implemented in software and / or hardware. All of the methods and processes described above may be embodied in and fully automated through software code components and / or computer-executable instructions executed by one or more computers or processors, hardware, or some combination thereof. Alternatively, some or all of the methods may be embodied in dedicated computer hardware.

[0103] Unless otherwise indicated, conditional language such as "may," "could," "may," or "might" is understood in context to indicate that a particular example includes a particular feature, element, and / or step, while other examples do not. Thus, such conditional language is not intended to imply that a particular feature, element, and / or step is required in any way for one or more examples, or that one or more examples necessarily include logic for determining whether a particular feature, element, step is included or performed in any particular example, with or without user input or prompting.

[0104] Conjunctions such as the phrase "at least one of X, Y, or Z" should be understood to indicate that the item, term, etc. is either X, Y, or Z, or any combination thereof, including multiples of each element, unless expressly stated otherwise. "a" refers to the singular as well as the plural.

[0105] The descriptions, elements, or blocks of any of the routines described herein and / or in the flow diagrams illustrated in the accompanying figures should be understood as potentially representing modules, segments, or portions of code that include one or more computer-executable instructions for implementing a particular logical function or element in the routine. Alternative implementations are within the scope of the examples described herein that may be performed substantially simultaneously, in reverse order, include additional operations or omit operations, depend on the functionality involved, remove elements or functions, or in an order different from that shown or described, as will be appreciated by those skilled in the art.

[0106] It should be understood that many variations and modifications may be made to the above examples, elements of which are among the other acceptable examples, and all such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims

1. one or more processors; When executed by the one or more processors, Receiving sensor data; providing the sensor data as input to a first machine learning (ML) model; receiving from the first ML model a classification associated with a representation of an object in the sensor data, a first probability associated with the classification, a feature map, and a region of interest in the sensor data associated with the representation of the object; determining a subclass ML model based on the classification, the subclass ML model being determined from among a plurality of subclass ML models by a selection component of the system; receiving a subclassification and a second probability associated with the subclassification from the determined subclass ML model; a memory storing processor-executable instructions for causing the system to perform operations including: A system comprising:

2. 2. The system of claim 1, wherein the operations further comprise inputting at least a first portion of a first feature map received from a first portion of the first ML model and at least a second portion of a second feature map received from a second portion of the first ML model into the subclass ML model.

3. The system of claim 2 , wherein the first portion and the second portion are based at least in part on the region of interest.

4. The system of claim 2 , wherein the second feature map comprises at least one of a semantic segmentation feature map, an instance segmentation feature map, a dense depth feature map, or an object orientation feature map.

5. The operation is providing ground truth sensor data to at least one of the first ML model or the subclass ML model, the ground truth sensor data being associated with ground truth classification labels and ground truth sub-classification labels; determining a first loss based at least in part on a difference between a first output of the first ML model and a ground truth classification label; determining a second loss based at least in part on a difference between a second output of the sub-class ML model and the ground truth sub-classification label; Varying at least one of one or more first parameters of the first ML model or one or more second parameters of the subclass ML model to minimize at least one of the first loss or the second loss; The system of claim 1 further comprising:

6. a second portion of the first ML model associated with a first classification; a third portion of the first ML model associated with a second classification; the first classification and the second classification are candidate classifications associated with a first portion of the first ML model; A system according to any one of claims 1 to 5.

7. The first classification and the second classification are two of a plurality of classifications, the plurality of classifications being Pedestrian classification, Vehicle classification, Bicycle classification, label classification, animal classification, Traffic obstruction classification, The system of claim 6 , comprising at least two of:

8. the first ML model includes a first neural network including a plurality of first layers; the subclass ML model includes a second neural network including a plurality of second layers; A system according to any one of claims 1 to 7.

9. the first ML model includes a first portion of a neural network including a plurality of first layers; the subclass ML model includes a second portion of the neural network including a plurality of second layers; A system according to any one of claims 1 to 8.

10. The operation is outputting the classification associated with the object based at least in part on determining that the first probability meets or exceeds a first probability threshold; outputting the sub-classification associated with the object based at least in part on determining that the second probability meets or exceeds a second probability threshold; controlling an autonomous vehicle based at least in part on at least one of the classifications or sub-classifications; The system of claim 1 , further comprising:

11. The system of claim 10 , wherein the autonomous vehicle comprises the system.

12. When executed by one or more processors, receiving sensor data; providing the sensor data as an input to a first machine learning (ML) model; receiving a first output from the first ML model, the first output including a classification associated with a representation of an object in the sensor data and a first probability associated with the classification; determining a subclass ML model based on the classification, the subclass ML model being determined from among a plurality of subclass ML models by a selection component of the processor; receiving a subclassification and a second probability associated with the subclassification from the determined subclass ML model; 23. A non-transitory computer-readable medium storing processor-executable instructions that cause the one or more processors to perform operations comprising:

13. The operation is receiving a first feature map from a first portion of the first ML model; receiving a second feature map from a second portion of the first ML model; inputting at least a portion of the first feature map and at least a portion of the second feature map into the subclass ML model; Further preparation, 13. The non-transitory computer-readable medium of claim 12, wherein at least one of the first feature map or the second feature map is associated with a region of interest associated with the representation of the object in the sensor data.

14. the ML model includes at least the first ML model and the subclass ML model; Neural networks are providing ground truth sensor data to at least one of the first ML model or the subclass ML model, the ground truth sensor data being associated with ground truth classification labels and ground truth sub-classification labels; determining a first loss based at least in part on a difference between a first output of the first ML model and a ground truth classification label; determining a second loss based at least in part on a difference between a second output of the sub-class ML model and the ground truth sub-classification label; Varying at least one of one or more first parameters of the first ML model or one or more second parameters of the subclass ML model to minimize at least one of the first loss or the second loss; trained at least in part based on 14. The non-transitory computer readable medium of claim 12 or claim 13.

15. the subclass ML model is a first subclass ML model, The classification is a first classification, The operation is receiving a first feature map associated with the first classification from the first ML model; receiving a second feature map from the first ML model, the second feature map being associated with a second classification; and providing a first portion of the first feature map as an input to the first sub-class ML model based at least in part on the first classification associated with the first sub-class ML model; providing a second portion of the second feature map as an input to the second subclass ML model based at least in part on the second classification associated with a second subclass ML model; 15. The non-transitory computer-readable medium of claim 12, further comprising:

Citation Information

Patent Citations

  • A method and apparatus for processing an image

    CN109101956A

  • Information processing device, method and program

    JP2007041988A

  • Recognition system, common feature amount extracting unit, and recognition system configuring method

    JP2018195097A

  • Context-Based Priors for Object Detection in Images

    JP2018526723A