Geolocation models for perception, prediction or planning
By dividing maps into regions and training specific models for each area, the system addresses the challenge of overfitting and underfitting in machine learning models, ensuring accurate vehicle operation in diverse environments.
Patent Information
- Application Number
- JP2022537828
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-19
- Filing Date
- 2020-12-18
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2040-12-18
AI Technical Summary
Existing machine learning models for vehicle environments struggle to accurately recognize both typical and abnormal environments due to overfitting or underfitting, leading to reduced efficiency and inaccurate vehicle operation, particularly in unusual conditions such as diagonal crosswalks or varying lighting conditions.
The solution involves dividing a map into regions and training region-specific models for each area, using a combination of generalized and domain-specific models to enhance accuracy in both typical and abnormal environments, with smoothing techniques to minimize abrupt changes during model switching.
This approach improves model performance by ensuring accurate inference-making in localized environments without affecting performance in other regions, reducing sudden changes in vehicle behavior and enhancing overall operational efficiency.
Smart Images

Figure 0007599493000001 
Figure 0007599493000002 
Figure 0007599493000003
Abstract
Description
[Background technology]
[0001] Modern vehicles may be equipped with one or more sensors or sensing systems for monitoring the vehicle and the environment, and data collected from the sensors may be used to make inferences related to the current and future state of the environment. Such inferences may be used in tasks related to detecting and classifying objects in the environment and planning routes for the vehicle. Inferences may be made using statistical models, which may be configured with appropriate parameters, to generate inferences based on a representation of the environment. The parameters of the statistical model may be configured based on training data that specifies a correspondence between certain inputs (e.g., environmental representations) and outputs (e.g., inferences such as classification of objects or routes). The model may then be used to generate inferences based on sensor data collected as the vehicle travels through new, previously unseen environments. The model may identify outputs that correspond to inputs that are approximately the same as those represented by the sensor data, and the identified outputs may be inferences generated for the sensor data.
[0002] For example, a vehicle may use one or more cameras or LiDAR to detect objects in the environment surrounding the vehicle. The vehicle may use one or more computational systems (e.g., on-board computers) to collect and process data from the sensors. The computational systems may use statistical models stored in on-board storage space or downloaded from the cloud using a wireless connection to generate inferences based on the data and use the inferences to operate the vehicle. [Brief description of the drawings]
[0003] [Figure 1A] FIG. 1 illustrates an exemplary vehicular environment including a busy intersection with vehicles and many pedestrians. [Figure 1B] FIG. 1 illustrates an exemplary map divided into regions. [Figure 1C]FIG. 2 illustrates an example map associated with a model and divided into overlapping regions. [Figure 1D] FIG. 1 illustrates an example map divided into regions associated with a single model and with associated performance evaluation. [Figure 1E] FIG. 1 illustrates an example map divided into regions associated with models and performance evaluation. [Figure 1F] FIG. 1 illustrates an example map divided into regions and smaller sub-regions. [Figure 1G] FIG. 1 illustrates an example map divided into regions and smaller sub-regions associated with models and performance evaluations. [Figure 1H] FIG. 1 illustrates an exemplary map divided into regions of various sizes. [Figure 2A] FIG. 2 illustrates an example map associated with a single model and divided into regions corresponding to road segments and intersections. [Figure 2B] FIG. 1 illustrates an example map divided into regions corresponding to road segments and intersections associated with a single model and with associated performance assessments. [Figure 2C] FIG. 1 illustrates an example map divided into regions corresponding to road segments and intersections associated with a model and with associated performance assessments. [Figure 2D] FIG. 2 illustrates an example map divided into regions corresponding to road segments with associated models and associated performance ratings, and smaller sub-regions. [Diagram 3] FIG. 1 illustrates an exemplary module for perception, prediction and planning using a model associated with a map region. [Figure 4] FIG. 1 illustrates an example block diagram of a system for loading and launching a geo-location model. [Diagram 5] FIG. 1 illustrates an example method for pre-loading a predictive model configuration when a vehicle approaches a region boundary configuration and switching to the pre-loaded parameters when the vehicle reaches the boundary. [Figure 6]FIG. 1 illustrates an example method for switching predictive model configurations associated with different map regions at a minimum distance between trajectories predicted using the model configurations. [Figure 7] FIG. 1 illustrates an example method for associating a region-specific set of model parameters to a map region based on model performance. [Figure 8] FIG. 2 illustrates an example situation in which a data collection vehicle system collects vehicle data of nearby vehicles and condition data of the surrounding environment. [Figure 9] FIG. 1 illustrates an example block diagram of a transportation management environment for matching ride requesters with autonomous vehicles. [Figure 10] FIG. 1 illustrates an example block diagram of an algorithm navigation pipeline. [Figure 11] FIG. 1 illustrates an exemplary computer system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0004] In the following description, various embodiments are described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that other embodiments may be practiced without the specific details. Moreover, well-known features may be omitted or simplified so as not to obscure the described embodiments. Moreover, the embodiments disclosed herein are merely exemplary, and the scope of the disclosure is not limited to the examples. Particular embodiments may include all, some, or none of the components, elements, features, functions, operations, or steps of the above-disclosed embodiments. Embodiments in accordance with the present invention are disclosed in the appended claims, which are particularly directed to methods, storage media, systems, and computer program products. Herein, any feature recited in one claim category (e.g., a method) may also be claimed in another claim category (e.g., a system). Dependencies or references back to the appended claims are selected for formality reasons only. However, any subject matter resulting from an intentional reference (especially multiple dependencies) back to a previous claim may also be claimed, and therefore any combination of claims and their features may be disclosed and claimed without regard to the dependencies selected in the appended claims. Claimable subject matter includes not only combinations of features recited in the appended claims, but also any other combination of features in the claims, where each feature recited in a claim may be combined with any other feature or combination of other features in the claims. Furthermore, any of the embodiments and features described or depicted herein may be claimed in a separate claim and / or in any combination with any of the embodiments or features described or depicted herein, or with any of the features of the appended claims.
[0005] FIG. 1A illustrates an example vehicular environment 100 that includes a busy intersection with vehicles 107 and a large number of pedestrians 108. A computing system may use various models, referred to herein as machine learning models, trained to perform tasks related to controlling the operation of the vehicle. The tasks may include, among others, perception-related tasks, prediction-related tasks, and planning-related tasks. Such models are typically trained to predict outcomes in an environment that is sufficiently similar to another environment in which the model is trained, such that the model can identify the correct outcome. The similarity between the two environments may be determined by comparing representations of the two environments using an appropriate metric, such as the location, shape, size, or number of specific features in each environment. It is difficult to train a generalized model to recognize an abnormal environment or know how to respond appropriately to an abnormal situation. An abnormal environment may be, for example, an environment with one or more abnormal features, road conditions, objects, and / or situations. An abnormal environment may have one or more features in common with a typical environment, such as the same type of objects, the same type of roads, the same type of traffic patterns, etc. Thus, an abnormal environment may differ from a typical environment in at least one characteristic, such as having unusual features, road conditions, objects, situations, road types, traffic patterns, etc., while having other characteristics that are the same or nearly the same as the characteristics of a typical environment. For example, the vehicular environment 100 shown in FIG. 1A includes several pedestrians 106 located in a street lane, which is an abnormal location for pedestrians. Additionally, the vehicular environment 100 includes a diagonal crosswalk across an intersection, which may be an abnormal feature. Pedestrians may be located on a diagonal crosswalk, especially if they are allowed to use the crosswalk by a traffic light. Since abnormal environments are relatively rare, it becomes difficult to train a generalized machine learning model to recognize abnormal environments and respond appropriately to abnormal environments. A generalized machine learning model is trained based on many different environments where the majority of the events / training data are not abnormal features or events. Thus, a generalized model tends to be good at recognizing and responding to normal, commonly occurring environments. This may conflict with the goal of recognizing and responding to details of the local environment.It is difficult to train a generalized model to make correct inferences for both typical and unusual environments. Furthermore, machine learning models generalized for different environments are designed to recognize patterns that occur in different environments at different geographic locations. Typical environments or features can be expected to be more likely to occur in multiple geographically different locations than environments or features that would be unusual. Thus, machine learning models may be trained globally, e.g., to perform well in many different locations and / or to perform well in different locations that are geographically distributed over long distances. Training a globalized model on "local" environments or features specific to a particular location can result in overfitting, where the model works well in a particular location but not in other locations.
[0006] For example, a predictive model may predict the future position or movement (e.g., trajectory) of an object detected in the environment. The position of the pedestrian affects the performance of the predictive model. A predictive model that is not necessarily trained in the unusual environment of an intersection with a diagonal crosswalk may make predictions about pedestrian movement or position that differ from predictions that a predictive model trained on a human driver or an intersection with a diagonal crosswalk would make. Furthermore, a predictive model trained on a street or intersection with few pedestrians may make predictions that differ from predictions that a predictive model trained on a street or intersection with human drivers or pedestrians would make. For example, a generalized predictive model may be unable to predict the trajectory of a pedestrian 106 located in a travel lane (e.g., no prediction), or may predict a partially inaccurate trajectory (e.g., the right direction but too fast or too slow) or a completely inaccurate trajectory (e.g., the wrong direction and speed) of the pedestrian 106. Such different predictions may be partially or completely inaccurate and may result in reduced efficiency or inaccurate vehicle operation.
[0007] The perception model may perform perception-related tasks such as identifying the location and type of objects in the environment, such as pedestrians 106 and vehicles 107. The perception tasks may be affected by lighting conditions that may be relevant to the vehicle environment. For example, in the vehicle environment 100, the sun 108 may be very bright. The light of the sun 108 may be blocked at certain times by obstacles in the environment, such as buildings. Thus, the vehicle environment 100 may have unusual lighting characteristics that are not used as a factor by the model when making perception-related inferences. Because image recognition operations may be affected by the bright light from the sun 108, a model not trained in such local lighting conditions may identify or classify objects differently than a human or a model trained in such lighting conditions. Such different object identification or classification may be incorrect, resulting in reduced efficiency or inaccurate vehicle operation.
[0008] The planning model may perform planning-related tasks, such as determining a path for the vehicle to follow. The planning model may identify a set of potential maneuvers or trajectories to perform at an intersection in the vehicle environment 100, as well as a corresponding likelihood that each trajectory should be performed. A planning module (or another module) of the vehicle system may select one of the trajectories to use, e.g., the most likely trajectory. The planning model may identify such potential trajectories and their likelihoods based on the topology of the intersection, including the diagonal crosswalk, and / or the positions of the pedestrians 106 and the vehicles 107. For example, the planning model may be trained or otherwise configured to identify potential trajectories based on an intersection that does not have a diagonal crosswalk. Upon encountering an abnormal environment, such as a diagonal crosswalk, such a planning model may identify a potential trajectory that differs from the trajectory that a human driver or a planning model trained or otherwise configured to handle the abnormal environment (e.g., an intersection with a diagonal crosswalk) would create. Such a different identified trajectory may be inaccurate, resulting in reduced efficiency or inaccurate vehicle operation.
[0009] Such a challenge of training a generalized model to make correct inferences for both typical and abnormal vehicle environments is difficult to solve because, for example, including abnormal vehicle environments in the training data with sufficient weight (e.g., number of example environments) to produce a model that produces correct inferences for abnormal environments may cause overfitting errors that cause the model to produce incorrect inferences for typical environments. Thus, it is difficult to train a generalized perception, prediction, or planning model to make correct inferences for both typical and abnormal environments.
[0010] The performance of a model, e.g., how well it performs its task, may be related to how similar a newly encountered environment is to the environment used to train the model. For this reason, models are typically trained with a significant amount of data that is generally similar to the average (e.g., common) vehicle environment expected to be frequently encountered. If the training data is not specific enough, e.g., contains few pedestrians, the model may generate underfitting errors. If the training data is too specific, e.g., contains many examples that are significantly different from the average vehicle environment, the model may generate overfitting errors. For this reason, to generate models that perform well in commonly encountered environments, the training process uses training data that is nearly identical to the commonly encountered environments and attempts to minimize overfitting and underfitting errors. However, training a generalized model to perform well in rare and unusual environments and commonly encountered environments may be difficult and not feasible.
[0011] FIG. 1B illustrates an exemplary map divided into regions. In certain embodiments, machine learning models performing tasks such as perception, prediction, or planning may be trained or used in map regions where unusual or rare environments may be expected, while other generalized models may be used in other regions. Additionally and / or alternatively, separate localized machine learning models may be trained for each road segment where a vehicle may travel without using a "generalized" model. Dividing the map 104 into regions 111-116, which may be, for example, geographic areas, road segments, etc., training a region-specific model on one or more of the regions 111-116 (rather than the entire map 104), and using the region-specific model to make inferences in its respective region provides a solution to the problem of training a generalized perception, prediction, or planning model to make correct inferences for both typical and unusual environments. In certain embodiments, the map 104 may be divided into any number of regions. One or more of the regions may then be associated with a corresponding region-specific model (see FIG. 1C). The region-specific model may be trained based on data associated with the region. Each domain-specific model may be trained and then used to make inferences when the vehicle is in a domain associated with that model, e.g., to make inferences related to the perception, prediction, and / or planning of a vehicle located in the model's associated domain. The domain with which the generalized model is associated may, for example, be a domain with a relatively large number of typical environments for which the generalized model 121 performs well (e.g., above a threshold performance). A domain associated with a generalized model would not typically be associated with a domain-specific model. The domain-specific model may be associated with a domain or feature that is abnormal compared to other features or domains. Training a model specifically for an abnormal domain may produce a model that performs better than a generalized model for the abnormal domain. The domain-specific model may be associated with a domain with a relatively large number of abnormal environments or features for which the generalized model 121 performs poorly (e.g., below a threshold performance). The vehicle may make inferences using the first model associated with the first domain while located in the first domain.When the vehicle moves into a second region, the vehicle may switch to a second model associated with the second region and make inferences using the second model while the vehicle is located in the second region. In this way, inferences are made using a model trained specifically in a region, allowing the model to deal with unusual environments or features without affecting the performance of the generalized model in other regions.
[0012] Although overfitting is typically a problem, certain embodiments may benefit from the use of overfitting in geographic regions. Thus, a region-specific model is specifically trained in its associated region and may overfit to features and events specific to its associated region compared to other regions of the map. However, because the vehicle uses each model in its associated region but not in other regions, each model produces accurate results in its associated region. Furthermore, because a model in a particular region can be trained to make inferences based on anomalous vehicle environments in its associated region that are rare in other regions, each model may produce more accurate results than a generalized model trained in a larger region. Thus, using a model trained for a particular region when the vehicle is in such region has an advantage over a generalized model trained for a general region because the region-specific model can produce correct results in the anomalous region. The region-specific model advantageously uses localized training that would cause overfitting errors in a generalized model, without the drawbacks of localized training, because each region-specific model is not typically used in other regions.
[0013] In certain embodiments, a model may be trained using data representing a particular input scenario, such as a scene including a particular vehicle environment, e.g., roads, intersections, vehicles, pedestrians, and other objects, and a particular corresponding output, such as the subsequent movement of the objects or actions taken by the vehicle. The trained model may be represented as a set of parameters, e.g., weights, determined during the training process. The trained model may then perform tasks such as perception, prediction, and planning in a newly encountered environment by determining appropriate outputs for the newly encountered environment according to the training of the model. For example, a predictive model may predict the likelihood of a current or future driving behavior of a particular nearby vehicle based on its past behavior. The predictive model may be, for example, a neural network model including several weight factors and parameters that are adjusted during the training process. The predictive model may be trained using, for example, past driving behavior data collected by a fleet of data collection vehicles. During the training process, several weight factors of the predictive model may be adjusted based on a comparison of the known behavior of the observed vehicle (ground truth data) and the predicted behavior of such vehicle generated using the current weight factors of the predictive model.
[0014] In certain embodiments, the model switching introduced above may be performed when the vehicle enters the second region (e.g., by crossing the boundary between the first and second regions). However, because the first and second models may generate substantially different results for the same or nearly the same environment, abruptly switching between models may result in unexpected or undesirable vehicle behavior, such as a sudden change in speed or direction of travel. As such, one or more smoothing techniques may be used to reduce the difference in results when a model switch occurs. For example, the boundaries of the regions may be expanded so that each region overlaps partially with each of the adjacent regions, and the overlapping areas may be included in the training of the models associated with each region. A switch between models may be performed when the vehicle is in the overlap region, thereby reducing or eliminating abrupt changes in the vehicle's behavior. As another exemplary smoothing technique, when the vehicle is in the first region and heading toward the second region and within a threshold distance of the second region, the first and second predictive models associated with the first and second regions, respectively, may be used to generate first and second predicted trajectories for the vehicle. The trajectories may be compared to identify the minimum distance between them, and then a switch between the models may be performed when the vehicle is at the position of minimum distance.
[0015] In certain embodiments, a region-specific model may be associated with a region based on the performance of other models associated with the larger enclosing region. If the performance of the model associated with the larger region falls below a performance threshold, the larger region may be divided into two or more sub-regions, and a new region-specific model may be associated with and trained for each new sub-region. The sub-regions may be of the same size or may have a size or shape based on topological features of the map or other features such as traffic flow. The term sub-region is used for descriptive purposes to refer to the result of dividing the larger region, and the terms region and sub-region may be used interchangeably, as sub-regions may otherwise be understood to be the same as regions.
[0016] In certain embodiments, the computing system may include modules for different types of tasks, such as perception, prediction, and planning. Since different tasks may include different types of models and may be differently trained, the process of creating domain-specific models may generate different domain-specific models (which may be located in different map regions) for each type of task. As a result, each of the computing system modules may be associated with a different set of reasoning models. The perception module may be associated with a set of perception models, the prediction module may be associated with a set of prediction models, and the planning module may be associated with a set of planning models. Each different set of reasoning modules may include one or more domain-specific models trained to perform a task of a type associated with the set of models. The perception models may include, for example, three domain-specific perception models associated with three corresponding regions of the map. The prediction models may include, for example, four domain-specific prediction models associated with four corresponding regions of the map. The planning models may include, for example, three domain-specific planning models associated with three corresponding regions of the map. Such a set of perception, prediction and planning models and their corresponding map regions may be generated by a process of identifying map regions associated with inference models, training the inference models based on the associated map regions, and dividing the map regions into multiple sub-regions with different sub-region-specific inference models, if necessary (e.g., to improve model performance). As a result of using different inference models for each type of task, models for certain types of tasks use different domain-specific models than other tasks. Because the map regions may be generated based on domain-specific models (e.g., based on performance of the domain-specific models), each type of task may include map regions that are different in shape and arrangement than map regions for other types of tasks.
[0017] The map 104 is divided into six regions 111-116 of equal size. The regions are separated by boundaries. Each region 111-116 is shown to be enclosed by a dashed rectangle. The rectangles formed by the dashed lines are shown as slightly smaller than the area of the regions 111-116 for purposes of describing and labeling the regions. However, in this example, the regions 111-116 cover the entire map 104, and the boundaries of the regions are shown with solid lines. The map 104 may be divided into any suitable number of regions of any suitable size or shape according to any suitable criteria or map division (e.g., zoning) technique. Examples of map division techniques that may be used include division into a specified number of equal-sized regions, division into regions of specified sizes, division into regions of random sizes and shapes subject to constraints such as minimum and maximum area limits, number of sides, angles or curves per region, etc., division into regions according to map topology, or division into regions based on other characteristics of the regions. For example, one or more regions may match the shape of a corresponding road, road intersection, lane, or other feature of the map 104. Thus, for example, a different region may be created for each road segment having a length between a minimum length and a maximum length. Each region of a road segment may have the same boundary as the road segment or may have a boundary that is a predetermined distance from the road segment, such that the shape of the region is similar to, but larger than, the shape of the road segment. As another example, a region may be created for each intersection that meets criteria such as being at least a minimum size (e.g., unit square area), having at least a minimum amount of traffic flow, having at least a minimum number of lanes, etc. Each region of an intersection may have the same boundary as the intersection or may enclose an area that is larger or smaller than the intersection (e.g., a rectangle, bounding box, or circle that surrounds the intersection). In other examples, the regions may be created based on the density of roads, intersections, buildings, houses, and / or other features. As an example, an area of at least a threshold size (e.g., unit square area) below a threshold density of roads may form a first region, and an adjacent area above the threshold density of roads and below a threshold maximum region size may form a second region. Although specific examples of dividing a map into regions are described herein, any suitable technique may be used to divide a map into regions.As another example, a map or region of a map may be divided into two or more regions, which may be referred to herein as sub-regions, based on characteristics of the map or region. The characteristics may include map information such as type of feature, e.g., highway, highway on- or off-lanes, main road, city, neighborhood / residential area, roundabout, crosswalk, school, park, strip mall, commercial district, unpaved road, speed limit (on a road), bridge, ferry, parking lot, etc. Alternatively or in addition, the characteristics may include more frequently changing information, such as traffic conditions, average speed of a road, presence of school zones, presence of road construction or closures, accident reports, etc.
[0018] A region may be identified (e.g., delineated) based on the location of one or more characteristics, such that, for example, a boundary of an area or feature having one or more of the characteristics forms a boundary of the region. Alternatively, or in addition, a region may be identified based on the location of one or more characteristics, but the boundary of the area of the region may be larger than the area or feature having the characteristics. For example, park 111a does not have roads within its boundary, but the presence of the park may affect roads near the park (e.g., pedestrians may enter and exit the park via roads near the park). Park region 111b may be identified based on park 111a. The boundary of park region 111b may be generated by extending the boundary of park 111a by a threshold distance from each side of park 111a to include roads near park 111a. Thus, the boundary of park region 111b is shown as a rectangle that encloses roads within a threshold distance of the park.
[0019] In another example, the region 113 may include a parking area 113a. The region 116 may include a road area 116a (including a road), another road area 116b (including another road leading to the parking area), and a parking area 116c (including a parking area). The boundaries of the parking area 113a, 116c and the boundaries of the road areas 116a, 116b may correspond to the boundaries of features enclosed by such regions. Thus, for example, the boundaries of the parking area 113a may be the same as the boundaries of the parking area based on which the parking area 113a is identified. In another example, one or more of the boundaries of the regions may be larger than the features enclosed by the region (e.g., the parking area), for example, by a threshold distance, in the same way as the extension of the boundary of the park 111a to enclose nearby roads, as described above.
[0020] In certain embodiments, each of the regions 111-116 may be associated with a corresponding machine learning model. A generalized model 121 may be associated with regions of the map that are not associated with a region-specific model 121b, 123a. For example, as shown in FIG. 1B, the entire map 104 may first be associated with the generalized model 121 (before associating a region-specific model). The generalized model 121 may be used to make inferences for regions of the map that are associated with it (not associated with other models). A region-specific model 121b may be associated with the park region 111b, for example, if vehicles are generally driven differently in the park region 111b than in other areas of the map 104. Different park regions may be associated with different models if vehicles are generally driven differently in different park regions. As another example, two parking lot regions 113a, 116c may be associated with a single region-specific model 123a because vehicles are generally driven the same way in different parking lots. A road region 116a corresponding to a road is separated from the enclosed region 116 and associated with a road-specific model (not shown) because vehicles generally drive differently on the corresponding road than in other areas of the enclosed region 116. Another road region 116b leading to a parking area 116c is also associated with a road-specific model (not shown) because vehicles generally drive the same way on both road regions 116a, 116b. In certain embodiments, a model of an enclosed map or region, such as model 121 associated with map 104, is not used for smaller regions, such as regions 116, 116a, 111c, that are associated with a different model, because the different model is used for such smaller regions instead of the model associated with the enclosed map or region.
[0021] The generalized model 121 may be trained on the entire map 104 or on one or more of the regions 111-116 that are not associated with the region-specific models 121b, 123a, 126a. The generalized model 121 may be trained on the map 104, and each of the region-specific models may be created by replicating the generalized model 121. The region-specific model may then be trained, for example, on training data associated with the corresponding region, for example, training data received in the region. The training data associated with the region may be, for example, training data captured or detected by a sensor of the vehicle when the vehicle was located in the region. As another example, the training data associated with the region may include training data having one or more associated locations in the region. The training data may include, for example, sensor data and associated driver actions or vehicle operations, etc.
[0022] Although different regions are described herein as being associated with different models, alternatively, the regions may be associated with a single model that may be configured differently for different regions, using different sets of parameters for each region. Thus, the term "model" may refer to a model configured with a particular set of parameters, and different models may refer to the same model configured with different sets of parameters. Thus, for example, the term "region-specific model" may refer to a region-specific set of model parameters that are used in a region-independent model to form the region-specific model. The region-independent model may include program code or instructions for generating inferences based on parameters that may be changed, for example, by loading different parameters into the model. Thus, each model may be configured according to model parameters, such as a set of weights, determined in a training process. A model may be configured for use in a particular region by loading a set of parameters associated with that region into the model. Although the map 104 is shown divided into a particular number of regions 111-116 having a particular shape and size, in other examples, the map 104 may be divided into a different number of regions, each of which may have different sizes and / or shapes. Thus, the boundaries of the regions are not necessarily straight lines.
[0023] FIG. 1C illustrates an example map 104 divided into overlapping regions 161-166 associated with models 121-126. The regions 161-166 are approximately the same as, but partially overlap, the regions 111-116 of FIG. 1B. The overlapping regions may be used to smooth transitions between pairs of models 121-126 that may occur when a vehicle switches to a new (e.g., different) one of the models 121-126 as a result of moving into a new (e.g., different) one of the regions 161-166. For example, a vehicle may make an inference using a first model 121 associated with the first region 161 while the vehicle is located in the first region 161. When the vehicle moves into a second region 162, the vehicle may switch to a second model 122 associated with the second region 162 and make an inference using the second model 122 while the vehicle is located in the second region 162. This model switching may be performed (e.g., by crossing the boundary between the first and second regions) when the vehicle enters the second region. However, because the first model 121 and the second model 122 may produce significantly different results for the same or nearly the same environment, abruptly switching between models may result in unexpected or undesirable vehicle behavior, such as a sudden change in speed or direction of travel. For this reason, one or more smoothing techniques may be used to reduce the difference in results when a model switch occurs. For example, the region boundaries may be expanded such that each of the regions 161-166 overlaps partially with each adjacent region, and the models 121-126 associated with the regions may be trained in the overlapping areas (in addition to the non-overlapping areas of their respective regions), such that each pair of adjacent models adheres closely to each other in the overlapping areas of the pairs of regions associated with the pair of adjacent models. Switching between models may be performed when the vehicle is in the overlapping regions, thereby reducing or eliminating abrupt changes in the vehicle's behavior.
[0024] In FIG. 1C, each of the regions overlaps partially with two or more other regions. For example, region 161 overlaps partially with regions 162, 164, and 165. Thus, a vehicle traveling between any two regions of map 104 passes through an area where the two regions overlap. Each of regions 161-166 is associated with a corresponding model 121-126. Each model 121-126 may be trained on data (e.g., driving events, etc.) associated with locations within the boundaries of a corresponding one of regions 161-166 (but not, in certain embodiments, data not associated with a corresponding one of regions 161-166). Thus, model 121 may be trained based on training data associated with any locations within region 161 (but not based on training data associated with locations not in such areas), which may include, for example, areas of region 161 that do not overlap with any other regions, as well as areas of region 161 that overlap with regions 162, 164, and 165. Similarly, each of the regions 162-166 may be trained with training data associated with a non-overlapping area or an overlapping area of the respective region. When a vehicle moves from one region to another, e.g., from region 161 to region 162, a switch from model 121 (e.g., model parameters associated with region 161) to model 122 (e.g., model parameters associated with region 162) may be performed when the vehicle is in an area where regions 161 and 162 overlap (e.g., the right portion of region 161 and the left portion of region 162 shown in FIG. 1C). In certain embodiments, the overlapping region may include traffic events to provide training data for the first and second models. Thus, the first and second regions may be defined such that there is at least one intersection in their overlapping common area.
[0025] FIG. 1D illustrates an exemplary map divided into regions 111-116 associated with a single model 121 and with associated performance ratings. The performance ratings may be generated for the illustrated region using techniques based on simulation, human driver feedback, or a combination thereof. The performance ratings may generate some measure of the quality or accuracy of the model's output according to various performance metrics, e.g., precision, recall, etc. The exemplary performance ratings illustrated in FIG. 1D are expressed as one number per model. The number is a percentage and may be based on one or more performance metrics, e.g., as an average of multiple performance metrics converted to a percentage. Thus, in this example, the performance of a model may range from 0% (worst performance) to 100% (best performance). In the examples described herein, performance is measured as a percentage value, but there are many ways to measure and express performance, as well as various types and / or values of thresholds that may be used. In other examples, performance may be classified into a particular safety rating (e.g., A, B, C, 1, 2, 3). Additionally, other performance metric thresholds may be used. For example, instead of a particular percentage threshold, the performance metric thresholds may be essentially normalized by the metric itself at each time of the model (or combination of models if multiple models are evaluated together). As another example, performance may be measured based on passenger comfort ratings, abruptness of speed or direction changes, fuel efficiency, etc.
[0026] FIG. 1D shows example performance measurements of the generalized model 121 when the model is used to generate inferences for each of the regions 111-116. The example values are shown for illustration purposes, and other values may be generated in other examples depending on the model's performance in the regions. The performance evaluations shown in FIG. 1D for the generalized model 121 include performance of 90% in region 111, 60% in region 112, 50% in region 113, 65% in region 114, 65% in region 115, and 70% in region 116. The model 121 may perform differently in different regions due to differences in the environments of the different regions. In this example, the model 121 performs well in region 111 (region 111 may be approximately the same as the region in which the model 121 was trained).
[0027] In certain embodiments, a threshold model performance value may be used to determine whether to create a new model and associate it with a particular region. In the example described herein, the performance of the threshold model is 80%. If any example of the model's performance rating is less than 80%, in the example described herein, the model is replaced with one or more domain-specific models. Thus, the generalized model 121 will be replaced with domain-specific models for the regions 112-116, since the performance rating for such regions is less than 80%. In other examples, other thresholds or other model replacement criteria may be used. For example, instead of using an absolute threshold, models whose performance differs from the average performance of the model by more than a threshold percentage may be replaced with domain-specific models. The domain-specific models created for the regions 112-116 are shown in FIG. 1E and described below.
[0028] FIG. 1E shows an example map 104 divided into regions 111-116 associated with models 121-126 and a performance evaluation. According to the performance evaluation shown in FIG. 1D, the performance of the generalized model 121 in the regions 112-116 is low enough to meet the model replacement criterion (performance < 80%), and one or more models localized for each or combination of one or more of the different regions 122-126 may be trained. Thus, in this example, the generalized model 121 is replaced by one or more models localized for the regions 122-126. In other examples, the generalized model 121 may be replaced by a single model (not shown) localized for the regions 122-126 (in which case the regions 122-126 may be represented as a single region instead of five separate regions). If a single localized model is used for the single region at this point in the example, then the single region may then be split into two or more subregions associated with two or more different models if a single region or subregion is identified as meeting the model replacement criteria.
[0029] Further, in the example of FIG. 1E, the generalized model 121 remains associated with the region 111, and its performance was 90%. New models 122-126 are created (e.g., by duplicating the generalized model 121 or other existing models, or as untrained models). Each of the new models 122-126 is associated with a respective region of the regions 112-116. Each of the new models 122-126 may be configured according to a corresponding set of model parameters (e.g., weights) that may have been generated in a previous training process. The new models 122-126 may be trained based on training data associated with locations within their respective regions 112-116. This training process may be performed before using the models 122-126 to make inferences in the vehicle system. After the training process is performed, the performance of each of the models 122-126 is evaluated using a performance measurement technique such as described above with reference to FIG. 1D. The resulting performance estimates are 70% for model 122, 80% for model 123, 85% for model 124, 85% for model 125, and 50% for model 126. Thus, model 122 (for region 112) and model 126 (for region 116) are still below 80% and meet the model replacement criteria. Models 122 and 126 are replaced with new models as shown in FIG. 1F and described below.
[0030] FIG. 1F shows an example map 104 divided into a region and smaller sub-regions. According to the performance evaluation shown in FIG. 1E, the performance of model 122 in region 112 and model 126 in region 116 are low enough to meet the model replacement criteria (performance < 80%), and such models are replaced by dividing the regions (112 and 116) into smaller sub-regions. In this example, region 112 is divided into four equally sized sub-regions 112A-112D. In this example, region 116 is divided into three sub-regions 116A-116C. Sub-region 116B is determined based on the location of roads and matches the shape of roads in region 116. The region division process may have determined that the traffic volume or traffic flow on the road is substantially higher or different than the traffic flow in other regions of region 116, so the road is assigned to sub-region 116B, which is separate from the rest of region 116. Areas with different or unique traffic characteristics may be used as regions (or sub-regions) because region (or sub-region) specific models may perform better in such regions than more generalized models such as model 126. In this example, a particular number and arrangement of sub-regions is shown and described, but any suitable number and / or arrangement of sub-regions may be used. In this example, region 112 is divided into four equally sized sub-regions, but region 112 may be divided into any suitable number of sub-regions of any suitable size based on features or other characteristics in the map (e.g., locations of intersections or other dividing features that may cause the region to be divided into sub-regions). Furthermore, in the examples described herein, a particular region is divided into a particular number of sub-regions of a particular size, but each region may be divided into any suitable number of sub-regions of any suitable size based on features or other characteristics in the map.
[0031] FIG. 1G illustrates an example map 104 divided into smaller sub-regions with regions associated with models and performance evaluation. Region-specific models 122A-122D are associated with sub-regions 112A-112D and trained based on data associated with each sub-region 112A-112D. Similarly, region-specific models 126A-126C are associated with sub-regions 116A-116C and trained based on data associated with each sub-region 116A-116C. The performance of these new models is evaluated as described above with reference to FIG. 1D. For sub-regions 122A-122D, the resulting performance evaluations are 85% for model 122A, 90% for model 122B, 95% for model 122C, and 90% for model 122D. For sub-regions 116A-116C, the resulting performance ratings are 85% for model 126A, 90% for model 126B, and 90% for model 126C. Because the performance ratings exceed the threshold of 80%, the model replacement criteria are not met for any region of map 104, and no additional regions or models are created in this example.
[0032] FIG. 1H illustrates an exemplary map 104 divided into regions 131-139 of various sizes. The map regions may vary in size and / or shape. Regions 131-139 have been determined by identifying regions that have characteristics, such as road segments or intersections, that may be different from other areas based on the topology of map 130, and assigning each potentially different area to a different region. Region 131 includes a housing development area and two road segments that typically have moderate traffic flow (e.g., a moderate number of vehicles per unit time and / or a moderate average vehicle speed). Region 132 includes road segments that typically have low to medium levels of traffic flow. Region 133 includes intersections that typically have medium to high levels of straight and curved traffic flow. Region 134 includes intersections that typically have low levels of traffic flow between intersecting road segments. Region 135 includes road segments that typically have low levels of traffic flow. Region 136 includes road segments that typically have low levels of traffic flow. Region 137 typically includes intersections with medium to high levels of straight traffic flow and medium levels of curved traffic flow. Region 138 typically includes road segments with low to medium levels of traffic flow. Region 139 typically includes road segments with medium to high levels of traffic flow. Each of regions 131-139 is associated with a corresponding one of domain-specific models 141-149. Region 140 may not be associated with a domain-specific model, but rather may be associated with a generalized model (not shown).
[0033] FIG. 2A shows an exemplary map associated with a single model and divided into regions corresponding to road segments and intersections. Regions representing road segments or intersections are shown in the examples of FIGS. 2A-2D. In certain embodiments, instead of associating a region representing a road segment or intersection with a geographic area that includes the road segment or intersection, the region may be associated with the road segment or intersection itself. Alternatively, or in addition, the region representing a road segment or intersection may be associated with a geographic area that includes the road segment or intersection. Map 204 shows the same geographic area as map 104 of FIG. 1D, but with regions 221-234 corresponding to roads or intersections instead of regions 111-116 corresponding to geographic areas.
[0034] Figure 2B illustrates an example map 204 divided into regions 221-234 corresponding to road segments and intersections associated with a single model 221M and having associated performance ratings. The performance ratings illustrated in Figure 2B are for generalized model 221M, which may be generated as described above with reference to Figure 1D, and include performance of 80% in region 221, 60% in region 222, 50% in region 223, 80% in region 224, 60% in region 225, 55% in region 226, 85% in region 227, 85% in region 228, 90% in region 229, 60% in region 230, 80% in region 231, 90% in region 232, 95% in region 233, and 85% in region 234. The model replacement criterion (performance <80%) is met for regions 222, 223, 225, 226 and 230, so the generic model 221M will be replaced with a domain-specific model for such regions, as shown in FIG. 2C and described below.
[0035] 2C shows an example map divided into regions corresponding to road segments and intersections with associated performance evaluations associated with the models. According to the performance evaluation shown in FIG. 2B, the performance of generalized model 221M in regions 222, 223, 225, 226, and 230 is low enough to meet the model replacement criterion (performance < 80%), and generalized model 221M is replaced for such regions. Generalized model 221M remains associated with other regions of map 204.
[0036] As shown in FIG. 2C, new models 222M, 223M, 225M, 226M, and 230M are created (e.g., by duplicating generalized model 221M or other existing models, or as untrained models). Each of the new models is associated with a respective region of regions 222, 223, 225, 226, and 230. Each of the new models may be configured according to a corresponding set of model parameters (e.g., weights) that may have been generated in a previous training process. The new models may be trained based on training data associated with the location of their respective regions. This training process may be performed before using the models 222M, 223M, 225M, 226M, and 230M to make inferences in the vehicle system. After the training process is performed, the performance of each of the models 222M, 223M, 225M, 226M, and 230M is evaluated using a performance measurement technique as described above with reference to FIG. 1D. The resulting performance ratings are 90% for model 222M, 60% for model 223M, 85% for model 225M, 65% for model 226M, and 65% for model 230M. Thus, models 223M, 225M, 226M, and 230M are still below 80% and meet the model replacement criteria. Such models are replaced with new models as shown in FIG. 2D and described below.
[0037] FIG. 2D shows an example map 204 divided into a region corresponding to a road segment with associated models and associated performance evaluations, and smaller sub-regions. According to the performance evaluation shown in FIG. 2C, the performance of model 223M for region 223, model 226M for region 226, and model 230M for region 230 is low enough to meet the model replacement criterion (performance < 80%), and in this example, such models are replaced by dividing the region (223, 226, 230) into smaller sub-regions. The example region 223 is a road segment intersecting with a bike path. Since the bike path intersecting with the road segment is an abnormal vehicular environment, the region 223 is divided into two sub-regions 223A and 223B, one (223B) includes the bike path and the other (223A) does not, so that a region-specific model can be trained for each of the two different regions 223A, 223B of the road segment 223. For this reason, region-specific models 223MA and 223MB are created for regions 223A and 223B, respectively.
[0038] The example region 226 is divided into two sub-regions 226A, 226B. The region division process may have determined that the area of slower traffic roads is assigned to a separate sub-region 226A from the area of faster traffic roads (sub-region 226B), for example, because the volume or flow of traffic on the roads in sub-region 226A is substantially slower than the flow of traffic in region 226B due to upcoming intersection 225 for traffic flowing toward intersection 225. Thus, region-specific models 226MA and 226MB are created for regions 226A and 226B, respectively.
[0039] The exemplary region 230 is split into two sub-regions 230A, 230B because the topology (e.g., terrain) data indicates that the portion of region (road) 230 approximately midway between regions (intersections) 225 and 231 is the crest of a steep hill, with little visibility between the two halves of region (road) 230. This results in faster traffic flow on the downhill side of the hill crest than on the uphill side. Because the hill crest on the uphill road segment is an unusual topological feature, sub-region 230B is created for that road segment. The remaining portion of region (road) 230 is associated with a new sub-region 230A. Region-specific models 230MA and 230MB are created for regions 230A and 230B, respectively.
[0040] The performance of such new models is evaluated as described above with reference to FIG. 1D. For sub-regions 223A and 223B, the resulting performance ratings are 85% for model 223MA and 85% for model 223MB. For sub-regions 226A and 226B, the resulting performance ratings are 85% for model 226MA and 80% for model 226MB. For sub-regions 230A and 230B, the resulting performance ratings are 90% for model 230MA and 80% for model 230MB. Because the performance ratings exceed the threshold of 80%, the model replacement criteria are not met for any region of map 204, and no additional regions or models are created in this example. Although a particular number and arrangement of sub-regions is shown and described in this example, any suitable number and / or arrangement of sub-regions may be used.
[0041] 3 illustrates an exemplary module 300 for perception, prediction, and planning that uses models 304 associated with map regions. A computing system may include modules 300 for different types of tasks, such as perception, prediction, and planning. Because different tasks may include different types of models 304, and the different types of models 304 may be trained in different ways, the process of creating domain-specific models 304 may generate different domain-specific models for each type of task. The domain-specific models may then correspond to different map regions. As a result, each of the computing system modules 300 may be associated with a different set of inference models 304.
[0042] In certain embodiments, the perception module 302 may be associated with a set of perception models 306, the prediction module 322 may be associated with a set of predictive models 326, and the planning module 342 may be associated with a set of planning models 346. Each different set 306, 326, 346 of the inference module 304 may include one or more domain-specific models trained to perform a type of task associated with the set 306, 326, 346 of the inference model 304. As an example, the perception model 306 may include three domain-specific perception models 311, 312, 313, e.g., associated with three corresponding regions R1, R2, R3 of the map. The predictive model 326 may include four domain-specific predictive models 331, 332, 333, 334, e.g., associated with four corresponding regions R11, R12, R13, R14 of the map. The planning models 346 may include, for example, three domain-specific planning models 351, 352, 353 associated with three corresponding regions R21, R22, R23 of the map. Such a set of perception models 306, prediction models 326, and planning models 346 and their corresponding map regions may be generated by a process of identifying a map region associated with an inference model 304, training the inference model 304 based on the associated map region, and, where appropriate (e.g., to improve model performance), dividing the map region into multiple sub-regions with different sub-region-specific inference models. In certain embodiments, as a result of using different inference models 304 with each type of computational task module 300, the models 304 for a particular type of computational task module 300 may use different domain-specific models than other types of computational task modules 300. Because the map regions may be generated based on a domain-specific model 304 (e.g., based on performance of the domain-specific model), each type of computational task module 300 may have a map region that is shaped and arranged differently than the map regions for other types of computational task modules, as can be seen in FIG.
[0043] FIG. 4 illustrates an exemplary block diagram of a system 400 for loading and validating geolocalized models. The system 400 may load and validate models in response to a request from a module 404 for making inferences. Once a model is loaded and validated, the system 400 may send an inference request directly from the computation module 404 to the validation model. A method for improving the smoothness of model changes is illustrated in FIGS. 5 and 6. The system 400 may include a model interface 408 that may interact with one or more computation modules 404, such as a sensor data module 402, a perception module, a prediction module, a planning module, and a control module. The model interface 408 provides an interface between the computation modules 404 and the domain-specific models. In response to receiving a request for inference 406 from one or more of the computation modules 404 (e.g., a request for prediction from a prediction module), the model interface 408 sends a model request 410 to a model switcher 412 for a model of a type corresponding to the computation module 404 that submitted the request for inference 406. For example, when a predictive module submits a request for inference 406, the model interface may send a model request 410 for a predictive model.
[0044] The model switcher 412 may receive the model request 410 and, in response, identify one or more model selection factors 414, such as a current vehicle position, a current time, a current lighting condition, a current weather condition, etc., from the vehicle sensors 402 or other data sources (e.g., a map database, a weather service, a vehicle system clock, etc.). The model switcher 412 may generate a data store query 416 based on the requested type of model and the model selection factors 414 (e.g., the current vehicle position). The model data store 418 may identify entries in the data store 418 having model selection factors (e.g., locations) 420 that match those in the data store query 416. If a match between the query 416 and the stored selection factors 420 is found, a model 422, which may be represented as model parameters (e.g., weights) associated with the matching selection factors, may be retrieved, and the retrieved model parameters 428 may be sent to the GPU 430.
[0045] In certain embodiments, the model parameters 428 may be loaded into memory 432 of the graphics processing unit (GPU) 430. Loading the model parameters 428 may include retrieving the model parameters 428 from the model data store 418, as described above. The model data store 418 may be stored locally, e.g., in a local storage device of the vehicle system, and / or remotely, e.g., in a cloud storage device accessible via network communication. As such, a delay may occur while the model parameters 428 are retrieved and loaded into memory 432. In certain embodiments, the model parameters 438 may be pre-loaded (e.g., pre-cached), for example, by loading the model parameters 438 for an area before entering the area. For example, the model parameters for an area may be pre-loaded when the vehicle is heading for the area and is within a threshold distance of the area or is predicted to arrive at the area within a threshold time, or when the vehicle is at an overlapping boundary of the area before entering the area.
[0046] In certain embodiments, when the new model parameters 438 are loaded, the model loader 412 may send a model switch instruction 440 to the GPU 430 or other components interacting with the GPU 430 to replace the new model parameters 438 with the current model parameters 436. The model switch instruction 440 may cause the current model pointer 434 to reference the new model parameters 438 instead of the current model parameters 436. Upon changing the pointer 434 or executing substantially the same instruction to switch to the new model parameters, subsequent inference requests sent to the model 410 may use the new model parameters 438 instead of the current model parameters 436. After sending the model switch instruction 440, the model loader 412 may send a model prepare response 442 to the model interface 408. The model interface 408 may forward the inference request 406 to the model 410, which may make the requested inference by interacting with the GPU 430 via the computation request / response 442. The GPU 430 may make inferences by performing calculations using the new model parameters 438 and generating calculation results. The model 410 may receive the calculation results from the GPU 430 and generate inference results, which may be based on or include the calculation results. The model 410 may send the inference results to the model interface 408, which may forward the inferences to the computation module 444 as inference responses 444.
[0047] In certain embodiments, if new model parameters 438 for a region have been pre-loaded, system 400 may switch to the new model parameters 438 when the vehicle enters the region (e.g., crosses the boundary of the region). To switch to the new model parameters 438, system 400 (e.g., model loader 412 or other components of system 412 invoked at other times subsequent to loading model parameters 438) may change current model pointer 434 to reference new model parameters 438 instead of current model parameters 436. Thus, switching of the configuration of model 410 from current model parameters 436 to new model parameters 438 may be performed by updating a reference (e.g., model pointer 434) associated with the configuration of model 410 to reference the new model parameters 438 in memory 432.
[0048] FIG. 5 illustrates an exemplary method for preloading a predictive model configuration when a vehicle approaches a range boundary configuration and switching to the preloaded parameters when the vehicle reaches the boundary. Method 500 may begin at step 502, where a vehicle system may determine the vehicle's current position and heading. At step 504, the vehicle system may determine whether the vehicle will cross the range boundary within a threshold distance (or time). If the range boundary is crossed, at step 508, the vehicle system may search the model data store for new predictive model parameters associated with a different range that the vehicle is expected to enter after crossing the range boundary. If the range boundary is not crossed, at step 506, the vehicle system may wait until the vehicle's position changes by at least the threshold distance and then call step 502 again.
[0049] Following step 508, in step 510, the vehicle system may determine whether the search in step 508 has found new predictive model parameters associated with a different region. If not, in step 512, the vehicle system may use the fallback model parameters as the new predictive model parameters. The fallback model parameters may be, for example, parameters of a generalized model associated with a different region or a map that includes a different region. Otherwise, in step 514, the vehicle system may read the new predictive model parameters from the data store into a memory, for example, the memory of a GPU. In step 516, the vehicle system may switch the configuration of the predictive model to the new predictive model parameters when the vehicle reaches a region boundary or enters a different region. In step 518, the vehicle system may use the predictive model to generate one or more inferences based on the new predictive model parameters.
[0050] FIG. 6 illustrates an exemplary method 600 for switching between predictive model configurations associated with different map regions at a minimum distance between trajectories predicted using the model configurations. As an example of smoothing transitions between regions, if a vehicle is in a first region and heading toward a second region and is within a threshold distance of the second region, a first and second predicted trajectory of the vehicle may be generated using a first and second predictive model associated with the first and second regions, respectively. The trajectories may be compared to identify a minimum distance therebetween. The minimum distance may correspond, for example, to a maximum point of agreement between the trajectories. A switch between the models may then be performed at a location corresponding to the location of the minimum distance. The method may begin at step 602, where a vehicle system may use a current predictive model to determine a current position and a first predicted trajectory of the vehicle over a predetermined time period. The predetermined time period may be a period beginning in the present or the future. At step 604, the vehicle system may determine whether the vehicle is predicted to cross a region boundary within the time period based on the first predicted trajectory. If not, then in step 606 the vehicle system may wait until the vehicle's position has changed by at least a threshold distance and call step 602 again. In step 608, the vehicle system may search the model data store for new predictive model parameters associated with a different region that the vehicle is expected to enter after crossing the boundary. In step 610, the vehicle system may determine whether new predictive model parameters associated with the different region have been found. If not, in step 612 the vehicle system may use fallback model parameters as the new predictive model parameters. The fallback model parameters may be, for example, parameters of a generalized model associated with the different region or a map that includes the different region.
[0051] In step 614, the vehicle system may begin loading the new parameters from the data store into memory, e.g., the memory of the GPU. In step 616, the vehicle system may use the new predictive model parameters to determine a second predicted trajectory of the vehicle for a predetermined period of time. In step 618, the vehicle system may identify a location on the first predicted trajectory that is a minimum distance from the second predicted trajectory. In step 620, by which time the new parameters have been loaded into memory, the vehicle system may switch the current predictive model parameters to the new predictive model parameters when the vehicle reaches the identified location, e.g., by instructing the GPU to use the new predictive model parameters.
[0052] FIG. 7 illustrates an exemplary method 700 for associating a region-specific set of model parameters to a map region based on model performance. In certain embodiments, a region-specific model may be associated to a region based on the performance of other models associated with the larger enclosing region. If the performance of the model associated with the larger region is below a performance threshold, optionally if the size of the region (e.g., unit square area) is above a size threshold, the larger region may be split into two or more subregions, and a new region-specific model may be associated and trained for each new subregion. The subregions may be of the same size or may have a size or shape based on topological features of the map or other features such as traffic flow. Thus, for example, if the performance of a region is below a performance threshold and the region contains roads and parking lots, the region may be split into two subregions, one for the roads (having a shape that matches the roads) and the other for the remainder of the region (including the parking lots). Each subregion may be associated with a corresponding model, and each model may be trained based on training data associated with the corresponding subregion.
[0053] Method 700 may begin at step 702, where a vehicle system may divide a geographical map into initial regions. For example, the regions may be identified as described above with reference to FIG. 1B. At step 704, the vehicle system may determine a performance assessment for each region of the first model using one or more first sets of model parameters associated with the regions, where the performance assessment for each region is based on sensor data captured in the region. At step 706, the vehicle system may identify one or more regions whose assessed performance is below a minimum performance threshold. At step 708, the vehicle system may begin a loop performing step 710 (and subsequent steps) for each identified region. At step 710, the vehicle system may determine whether the region is already associated with region-specific model parameters. If not, at step 712, the vehicle system may save the association between the region and the region-specific model with the new parameters to be used to generate an inference within the region. At step 714, the vehicle system may generate an inference using the region-specific model and the specified input parameters. In step 716, the vehicle system may train a new domain-specific model based on training data associated with the corresponding domain of the new domain-specific model, e.g., sensor data received by the vehicle when it was in the corresponding domain. Step 716 may repeat the portion of the method that calls step 704 to identify the domain and associate models and / or model parameters with the domain.
[0054] Referring back to the results of step 710, if the vehicle system determines that the region is already associated with region-specific model parameters, then in step 718 the vehicle system may divide the region into two or more new regions. In step 720, the vehicle system may remove the association between the region and the region-specific model and parameters. In step 722, the vehicle system may save, for each new region, an association between the new region and a new region-specific model with parameters used to generate inferences in that region. In step 716, the vehicle system may train a new region-specific model as described above and call step 704 to repeat the portion of the method beginning with step 704. In certain embodiments, the method may stop iterating based on a condition evaluated in one or more of the steps. For example, in step 706, it may be determined whether each of the identified regions is smaller than a threshold size (in unit area). If so, then in step 706, the process 700 may end. As another example, in step 704, the performance evaluation per region may be reevaluated for the same region to determine whether it has degraded. If none of the performance measures have deteriorated or have deteriorated beyond a threshold, then process 700 may end at step 704 .
[0055] 8 illustrates an exemplary scenario 800 for a data collection vehicle system 810 to collect vehicle data of nearby vehicles 820 and situation data of the surrounding environment. In certain embodiments, the vehicle system 810 (e.g., an autonomous vehicle, a manually driven vehicle, a computer-assisted drive vehicle, a human-machine hybrid drive vehicle, etc.) may have several sensors or sensing systems 812 to monitor the state of the vehicle, other vehicles, and the surrounding environment. The sensors or sensing systems 812 may include, for example, but are not limited to, cameras (e.g., optical cameras, thermal cameras), LiDAR, radar, speed sensors, steering angle sensors, brake pressure sensors, GPS, inertial measurement units (IMUs), acceleration sensors, etc. The vehicle system 810 may include one or more computing systems (e.g., data collection devices, mobile phones, tablets, mobile computers, on-board computers, high performance computers) to collect data about the vehicle, nearby vehicles, the surrounding environment, etc. In certain embodiments, the vehicle system 810 may collect data about the vehicle itself related to, for example, but not limited to, vehicle speed, direction of travel, wheel direction, steering angle, steering wheel steering force, brake pedal pressure, accelerator pedal pressure, acceleration (e.g., based on IMU output), rotational speed (e.g., based on IMU / gyroscope output), vehicle travel path, vehicle trajectory, position (e.g., GPS alignment), signal status (e.g., turn signal, brake light, hazard light on / off status), eye movement, head movement of a human driver, etc.
[0056] In certain embodiments, the vehicle system 810 may collect data of nearby vehicles 820 using one or more sensing signals 822 of the sensing system 812. For example, the vehicle system 810 may collect vehicle data and driving behavior data related to, for example, but not limited to, vehicle images, vehicle speed, acceleration, vehicle travel path, vehicle driving trajectory, position, turn signal status (e.g., turn signal on / off status), brake light status, distance to another vehicle, relative speed to another vehicle, distance to pedestrians, relative speed to pedestrians, distance to traffic signals, distance to intersections, distance to road signs, distance to curves, relative position to road lines, objects in the vehicle's field of view, positions of other vehicles, aggressiveness metrics of other vehicles, etc. Additionally, the sensing system 812 may be used to identify nearby vehicles 820. This could be based on an anonymous vehicle identifier based on license plate numbers, a QR code, or any other suitable identifier that uniquely identifies nearby vehicles.
[0057] In certain embodiments, the vehicle system 810 may collect condition data of the surrounding environment based on one or more sensors associated with the vehicle system 810. In certain embodiments, the vehicle system 810 may collect data related to road conditions or one or more objects in the surrounding environment, such as, but not limited to, road layout, pedestrians, other vehicles (e.g., 820), traffic conditions (e.g., number of nearby vehicles, number of pedestrians, traffic signals), time of day (e.g., morning rush hour, evening rush hour, non-peak hours), traffic type (e.g., fast moving traffic, accident events, slow moving traffic), location (e.g., GPS alignment), road conditions (construction zone, school zone, wet road surface, icy road surface), intersections, road signs (e.g., stop signs 860, road lines 842, crosswalks), nearby objects (e.g., curbs 844, light poles 850, billboards 870), buildings, weather conditions (e.g., rain, fog, sunny, hot weather, cold weather), or objects or actors in the surrounding environment. In certain embodiments, the vehicle situation data may include navigation data for the vehicle, such as a navigation map, a destination location to navigate, a route, an estimated time of arrival, detours, etc. In certain embodiments, the vehicle situation data may include camera-based localization data, such as, but not limited to, point clouds, depth of field, a two-dimensional profile of the environment, a three-dimensional profile environment, a stereo image of the scene, a relative position (e.g., distance, angle) relative to environmental objects, a relative position (e.g., distance, angle) relative to road lines, a relative position in the current environment, traffic conditions (e.g., heavy traffic, light traffic), driving trajectories of other vehicles, movements of other vehicles, speeds of other vehicles, directions of movement of other vehicles, signal conditions of other vehicles, etc. In certain embodiments, the vehicle system 810 may have a perception of the surrounding environment based on situation data collected via one or more sensors in real time and / or based on historical situation data stored in a vehicle model database.
[0058] FIG. 9 illustrates an example block diagram of a transportation management environment for matching ride requesters with autonomous vehicles. In certain embodiments, the environment may include various computing entities, such as a user computing device 930 of a user 901 (e.g., a ride provider or requester), a transportation management system 960, an autonomous vehicle 940, and one or more third party systems 970. The computing entities may be communicatively connected via any suitable network 910. By way of example and not limitation, one or more portions of the network 910 may include an ad-hoc network, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the public switched telephone network (PSTN), a cellular network, or a combination of any of the above. In certain embodiments, any suitable network configuration and protocol that allows the computing entities to communicate with each other may be used. 9 depicts a single user device 930, a single transportation management system 960, a single vehicle 940, multiple third party systems 970, and a single network 910, this disclosure contemplates any suitable number of such entities each. By way of example and not by way of limitation, a network environment may include multiple users 901, user devices 930, transportation management systems 960, autonomous vehicles 940, third party systems 970, and networks 910.
[0059] The user equipment 930, the transportation management system 960, the autonomous vehicle 940, and the third party system 970 may be communicatively connected to each other or co-located in whole or in part. Such computing entities may communicate via various transmission technologies and network types. For example, the user equipment 930 and the vehicle 940 may communicate with each other via cable or short-range wireless communication (e.g., Bluetooth, NFC, WI-FI, etc.), as well as connected to the Internet via a cellular network accessible to any of the devices (e.g., the user equipment 930 may be a smartphone with LTE connectivity). Meanwhile, the transportation management system 960 and the third party system 970 may be connected to the Internet via their respective LAN / WLAN networks and Internet Service Providers (ISPs). FIG. 9 shows a transmission link 950 connecting the user equipment 930, the autonomous vehicle 940, the transportation management system 960, and the third party system 970 to the communication network 910. This disclosure contemplates any suitable transmission links 950, including, for example, wired connections (e.g., USB, Lightning, Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS)), wireless connections (e.g., WI-FI, WiMAX, cellular, satellite, NFC, Bluetooth), optical connections (e.g., Synchronous Optical Network (SONET), Synchronous Digital Hierarchy (SDH)), any other wireless communication technology, and any combination thereof. In particular embodiments, one or more links 950 may be connected to one or more networks 910, which may in part include, for example, ad-hoc networks, intranets, extranets, VPNs, LANs, WLANs, WANs, WWANs, MANs, PSTNs, cellular networks, satellite networks, or any combination thereof. Computing entities need not necessarily use the same type of transmission links 950.For example, user device 930 may communicate with a transportation management system via a cellular network and the Internet, but may communicate with autonomous vehicle 940 via Bluetooth or a physical wired connection.
[0060] In certain embodiments, the transportation management system 960 can fulfill ride requests of one or more users 901 by dispatching an appropriate vehicle. The transportation management system 960 may receive any number of ride requests from any number of ride requesters 901. In certain embodiments, a ride request from a ride requester 901 may include an identifier that identifies the ride requester in the system 960. The transportation management system 960 may use the identifier to access and store information about the ride requester 901 in accordance with the requester's 901 privacy settings. The ride requester 901 information may be stored in one or more data stores (e.g., relational database systems) associated with and accessible to the transportation management system 960. In certain embodiments, the ride requester information may include profile information about a particular ride requester 901. In certain embodiments, a ride requester 901 may be associated with one or more categories or types. This association may associate the ride requester 901 with aggregate information about particular ride requesters of such categories or types. The ride information may include, for example, preferred pick-up and drop-off locations, driving preferences (e.g., safety comfort level, preferred speed, acceleration / deceleration, safe distance from other vehicles when traveling at various speeds, routes, etc.), entertainment preferences and settings (e.g., preferred music genre or playlist, volume, display brightness, etc.), temperature settings, whether conversation with the driver is welcome, frequently visited destinations, past ride patterns (e.g., time of trip, origin and destination, etc.), preferred language, age, gender, or any other suitable information. In certain embodiments, the transportation management system 960 may classify the user 901 based on known information about the user 901 (e.g., using a machine learning classifier) and use the classification to search for relevant aggregate information associated with that class. For example, the system 960 may classify the user 901 as a young adult and search for relevant aggregate information associated with young adults, such as the type of music that young adults generally prefer.
[0061] The transportation management system 960 may also store and access ride information. The ride information may include locations associated with the ride, traffic data, route options, optimal pick-up and drop-off locations for the ride, or any other suitable information associated with the ride. By way of example and not limitation, when the transportation management system 960 receives a request to travel from San Francisco International Airport (SFO) to Palo Alto, California, the system 960 may access or generate any ride information associated with this particular ride request. The ride information may include, for example, a preferred pick-up location at SFO, an alternative pick-up location if the pick-up location is incompatible with the ride requester (e.g., if the ride requester is stuck and unable to access the pick-up location) or if the pick-up location is unavailable due to construction, traffic congestion, changes in pick-up / drop-off rules, or any other reason, one or more routes for traveling from SFO to Palo Alto, exit lanes suitable for a type of user, or any other suitable information associated with the ride. In certain embodiments, some of the ride information may be based on historical data associated with past rides facilitated by the system 960. For example, the historical data may include aggregate information generated based on past ride information. Aggregate information includes any of the ride information described herein, as well as telemetry data collected by sensors in the autonomous vehicle and / or user equipment. Historical data may be associated with a particular user (e.g., preferences of that particular user, general routes, etc.), a category / class of users (e.g., based on demographics), and / or all users of the system 960. For example, historical data specific to a user may include information about the particular user's past rides, including where the particular user boarded and dropped off, the music the user likes to listen to, traffic information associated with rides, the time of day the user most often boards, and any other suitable information specific to the user. As another example, historical data associated with a category / class of user may include general or popular ride preferences of users in that category / class, such as, for example, teenagers who like pop music, ride requesters who frequently commute to the financial district who may like to listen to the news, etc.As yet another example, historical data associated with all users may include general usage trends, such as traffic and riding patterns. The system 960 of certain embodiments may use the historical data to predict and provide ride suggestions in response to a ride request. In certain embodiments, the system 960 may use machine learning, such as neural networks, regression algorithms, example-based algorithms (e.g., k-nearest neighbors), decision tree algorithms, Bayesian algorithms, clustering algorithms, association rule learning algorithms, deep learning algorithms, dimensionality reduction algorithms, ensemble algorithms, and any other suitable machine learning algorithm known to those skilled in the art. The machine learning models may be trained using any suitable training algorithm, such as supervised learning based on labeled training data, unsupervised learning based on unlabeled training data, and / or semi-supervised learning based on a mixture of labeled and unlabeled training data.
[0062] In certain embodiments, the transportation management system 960 may comprise one or more server computers. Each server may be a single server or a distributed server across multiple computers or multiple data centers. The servers may be of various types, such as, for example, without limitation, a web server, a news server, a mail server, a message server, an advertisement server, a file server, an application server, an exchange server, a database server, a proxy server, another server suitable for performing the functions or processes described herein, or any combination thereof. In certain embodiments, each server may include hardware, software, or embedded logic components or a combination of two or more such components to perform the appropriate functions implemented or supported by the server. In certain embodiments, the transportation management system 960 may comprise one or more data stores. The data stores may be used to store various types of information, such as ride information, ride requester information, ride provider information, historical information, third party information, or any other suitable type of information. In certain embodiments, the information stored in the data stores may be organized according to a particular data structure. In certain embodiments, each data store may be a relational, columnar, relational, or any other suitable type of database system. Although this disclosure describes or illustrates particular types of databases, this disclosure contemplates any suitable types of databases. In particular embodiments, interfaces may be provided that enable a user device 930 (which may belong to a ride requester or provider), a transportation management system 960, a vehicle system 940, or a third party system 970 to process, transform, manage, search, modify, add, or delete information stored in the data store.
[0063] In certain embodiments, the transportation management system 960 may include an authorization server (or any other suitable component) that allows a user 901 to opt in or out of having their information and actions logged, registered, sensed, or shared with other systems (e.g., third party system 970) by the transportation management system 960. In certain embodiments, the user 901 may opt in or out by setting appropriate privacy settings. The user's privacy settings may determine which information associated with the user may be logged, how information associated with the user may be logged, when information associated with the user may be logged, who may log information associated with the user, with whom information associated with the user may be shared, and for what purposes information associated with the user may be logged or shared. The authorization server may be used to enforce one or more privacy settings of the user 901 of the transportation management system 960, as necessary, through blocking, data hashing, anonymization, or other suitable techniques.
[0064] In certain embodiments, the third party system 970 may be a network addressable computing system that may provide HD or hosted GPS maps, customer reviews, music or content, weather information, or any other suitable type of information. The third party system 970 may generate, store, receive, and transmit relevant data, such as, for example, map data, customer review data from a customer review website, weather data, or any other suitable type of data. The third party system 970 may be accessed directly or via the network 910 by other computing entities in the network environment. For example, the user device 930 may access the third party system 970 via the network 910 or via the transportation management system 960. In the latter case, if credentials are required to access the third party system 970, the user 901 may provide such information to the transportation management system 960, which may act as a proxy to access the content from the third party system 970.
[0065] In certain embodiments, the user device 930 may be a mobile computing device such as a smartphone, tablet computer, or laptop computer. The user device 930 may include one or more processors (e.g., a CPU and / or GPU), memory, and storage. An operating system and applications may be installed on the user device 930, such as, for example, a transportation application associated with the transportation management system 960, an application associated with a third party system 970, and an application associated with the operating system. The user device 930 may include functionality for determining its location, direction, or orientation based on integrated sensors such as a GPS, a compass, a gyroscope, or an accelerometer. The user device 930 may also include a wireless transceiver for wireless communication and may support wireless communication protocols such as Bluetooth, Near Field Communication (NFC), Infrared (IR) communication, WI-FI, and / or 2G / 3G / 4G / LTE mobile communication standards. The user device 930 may also include one or more cameras, scanners, touch screens, microphones, speakers, and any other suitable input / output devices.
[0066] In certain embodiments, vehicles 940 are autonomous vehicles and may include an array of sensors 944, a navigation system 946, and a ride service computing device 948. In certain embodiments, the fleet of autonomous vehicles 940 may be managed by a transportation management system 960. The fleet of autonomous vehicles 940 may be owned, in whole or in part, by an entity associated with the transportation management system 960 or by a third party entity associated with the transportation management system 960. In either case, the transportation management system 960 may control the operation of the autonomous vehicles 940, including, for example, dispatching selected vehicles 940 to fulfill ride requests, instructing vehicles 940 to perform selected operations (e.g., driving to a service center or charging / fueling station, stopping, making emergency stops, self-diagnostics, locking / unlocking the cabin, changing music stations, changing temperature, and any other suitable operations), and instructing vehicles 940 to enter selected operating modes (e.g., normal operation, operating at reduced speed, operating under the direction of a human operator, and any other suitable operating mode).
[0067] In particular embodiments, autonomous vehicles 940 may send and receive data to and from transportation management system 960 and third party systems 970. Examples of received data may include, for example, instructions, new software or software updates, maps, 3D models, trained or untrained machine learning models, location information (e.g., the location of the ride requester, the autonomous vehicle 940 itself, other autonomous vehicles 940, and target destinations such as service centers), navigation information, traffic information, weather information, ride requester information of entertainment content (e.g., music, videos, and news), ride information, and any other suitable information. Examples of data transmitted from autonomous vehicles 940 may include, for example, telemetry and sensor data, determinations / decisions based on such data, vehicle conditions or status (e.g., battery / fuel levels, tire and brake status, sensor status, speed, odometer, etc.), location, navigation data, passenger input (e.g., via a user interface of vehicle 940, passengers may send and receive data to transportation management system 960 and / or third party systems 970), and any other suitable data.
[0068] In certain embodiments, autonomous vehicles 940 may also communicate with each other and with other conventional human-operated vehicles, including vehicles managed and unmanaged by transportation management system 960. For example, one vehicle 940 may communicate with another vehicle data regarding its respective location, status, condition, sensor readings, or any other suitable information. In certain embodiments, vehicle-to-vehicle communication may be accomplished via a direct short-range wireless connection (e.g., WI-FI, Bluetooth, NFC) and / or a network (e.g., the Internet or a network via transportation management system 960 or third party system 970).
[0069] In certain embodiments, the autonomous vehicle 940 may acquire and process sensor / telemetry data. Such data may be captured by any suitable sensor. For example, the vehicle 940 may have a Light Detection and Ranging (LiDAR) sensor array of multiple LiDAR transceivers configured to rotate 360°, emit pulsed laser light, and measure reflected light from objects surrounding the vehicle 940. In certain embodiments, the LiDAR transmission signal may be directed by using a gated light valve, which may be a MEMs device that uses the principles of optical diffraction to direct a light beam. Such a device may not use a gimbaled mirror to direct a 360° beam of light around the autonomous vehicle. Rather, the gated light valve may direct the light beam to one of several optical fibers, which may be positioned such that the light beam may be directed to many distinct locations around the autonomous vehicle. Thus, data may be captured 360° around the autonomous vehicle, but may not require rotating components. LiDAR is an effective sensor for measuring distance to targets and may therefore be used to generate a three-dimensional (3D) model of the external environment of the autonomous vehicle 940. By way of example and not by way of limitation, the 3D model may represent the external environment including objects such as other cars, curbs, debris, objects and pedestrians up to the maximum range of the sensor placement (e.g., 50, 100 or 200 meters). As another example, the autonomous vehicle 940 may have optical cameras pointing in different directions. The cameras may be used to recognize any visible target object including, for example, roads, lane markings, road signs, traffic lights, police, other vehicles. Infrared cameras may be installed to allow the vehicle 940 to "see" at night. In certain embodiments, the vehicle may be equipped with stereoscopic vision capabilities to spot hazards such as, for example, pedestrians or tree branches on the road. As another example, the vehicle 940 may have radar to detect, for example, other vehicles and / or distant hazards. Additionally, the vehicle 940 may have ultrasonic devices for, for example, parking and obstacle detection.In addition to sensors that enable the vehicle 940 to detect, measure, and understand the external world around it, the vehicle 940 may further be equipped with sensors to detect and self-diagnose the state and condition of the vehicle itself. For example, the vehicle 940 may have wheel sensors, for example, to measure speed, a global positioning system (GPS), for example, to determine the vehicle's current geographic location, and / or an inertial measurement unit, accelerometer, gyroscope, and / or odometer system to detect movement or motion. While the description of such sensors provides specific examples of utility, those skilled in the art will understand that the utility of the sensors is not limited to such examples. Furthermore, while examples of utility may be described with respect to specific types of sensors, it should be understood that utility may be achieved using any combination of sensors. For example, the autonomous vehicle 940 may build a 3D model of its surroundings based on data from its LiDAR, radar, sonar, and cameras, along with pre-generated maps obtained from the transportation management system 960 or third party system 970. 9, sensors 944 may be located in any suitable location within or on autonomous vehicle 940. Examples of sensor locations include the front and rear bumpers, the doors, the windshield, the side panels, or any other suitable locations.
[0070] In certain embodiments, autonomous vehicle 940 may be equipped with processing units (e.g., one or more CPUs and GPUs), memory and storage. Thus, vehicle 940 may be equipped to perform various computational and processing tasks, including processing sensor data, extracting useful information and acting accordingly. For example, based on images captured by its cameras and machine vision models, vehicle 940 may identify certain types of objects captured by the images, such as pedestrians, other vehicles, lanes, curbs, and other target objects.
[0071] In certain embodiments, autonomous vehicle 940 may have a navigation system 946 responsible for safely navigating autonomous vehicle 940. In certain embodiments, navigation system 946 may take as input any type of sensor data from, for example, a global positioning system (GPS) module, an inertial measurement unit (IMU), a LiDAR sensor, an optical camera, a radio frequency (RF) transceiver, or any other suitable telemetry or sensory mechanism. Navigation system 946 may also utilize any suitable information, including, for example, map data, traffic data, accident reports, weather forecasts, directions, target destinations, etc., to determine a navigation route and certain driving maneuvers (e.g., slowing down, accelerating, stopping, turning, etc.). In certain embodiments, navigation system 946 may use its determinations to control vehicle 940 to operate in a predetermined manner to guide autonomous vehicle 940 to its destination without colliding with other objects. 9, the navigation system 946 may be located in any suitable location within or on the autonomous vehicle 940. Example locations for the navigation system 946 include inside the cabin or passenger compartment of the autonomous vehicle 940, near the engine / battery, near the front seats, in the back seats, or any other suitable location.
[0072] In certain embodiments, the autonomous vehicle 940 may be equipped with a ride service computing device 948. This computing device may be a tablet or any other suitable device installed by the transportation management system 960 to allow a user to interact with the autonomous vehicle 940, the transportation management system 960, other users 901, or third party systems 970. In certain embodiments, installation of the ride service computing device 948 may be accomplished by placing the ride service computing device 948 within the autonomous vehicle 940 and configuring it to communicate with the vehicle 940 via a wired or wireless connection (e.g., via Bluetooth). Although FIG. 9 shows a single ride service computing device 948 at a particular location on the autonomous vehicle 940, the autonomous vehicle 940 may include several ride service computing devices 948 at several different locations within the vehicle. By way of example and not by way of limitation, the autonomous vehicle 940 may include four ride service computing devices 948 located at the following locations: One in front of the left front passenger seat (e.g., the driver's seat in a conventional U.S. automobile), one in front of the right front passenger seat, one in front of the left rear passenger seat, and one in front of the right rear passenger seat. In particular embodiments, the ride servicing computing device 948 may be removable from any component of the autonomous vehicle 940. This may allow a user to handle the ride servicing computing device 948 in a manner consistent with other tablet computing devices. By way of example and not by way of limitation, a user may move the ride servicing computing device 948 anywhere in the cabin or passenger compartment of the autonomous vehicle 940, hold the ride servicing computing device 948, or handle the ride servicing computing device 948 in any other suitable manner. Although this disclosure describes providing a particular computing device in a particular manner, this disclosure contemplates providing any suitable computing device in any suitable manner.
[0073] FIG. 10 illustrates an example block diagram of an algorithmic navigation pipeline. In a particular embodiment, the algorithmic navigation pipeline 1000 may include several computational modules, such as a sensor data module 1005, a perception module 1010, a prediction module 1015, a planning module 1020, and a control module 1025. The sensor data module 1005 may acquire and preprocess sensor / telemetry data provided to the perception module 1010. Such data may be captured by any suitable sensor of the vehicle. By way of example and not by way of limitation, the vehicle may have a light detection and ranging (LiDAR) sensor configured to transmit a pulsed laser beam in multiple directions and measure reflected signals from objects around the vehicle. The time of flight of the light signal may be used to measure the distance or depth of the object from the LiDAR. As another example, the vehicle may have an optical camera pointed in different directions to capture images of the vehicle's surroundings. Radar may also be used by the vehicle to detect other vehicles and / or hazards at a distance. As an additional example, a vehicle may be equipped with ultrasonic for close-range object detection, such as parking and obstacle detection, or infrared cameras for object detection in low light conditions or darkness. In certain embodiments, the sensor data module 1005 may suppress noise in the sensor data or normalize the sensor data.
[0074] The perception module 1010 is responsible for correlating and fusing data from different types of sensors in the sensor module 1005 to model the situational environment of the vehicle. The perception module 1010 may use information extracted by multiple independent sensors to provide information that would not be available from a single type of sensor. By combining data from multiple sensor types, the perception module 1010 can leverage the strengths of the different sensors to perceive the environment more accurately and precisely. By way of example and not by way of limitation, image-based object recognition may not perform well in low light conditions. This may be compensated for by sensor data from LiDAR or radar. Such sensors are effective sensors for measuring distance to targets in low light conditions. As another example, image-based object recognition may erroneously determine that an object depicted on a poster is an actual three-dimensional object in the environment. However, if depth information from LiDAR is also available, the perception module 1010 may use that additional information to determine that the object in the poster is not actually a three-dimensional object.
[0075] The perception module 1010 may process available data (e.g., sensor data, data from a high-definition map, etc.) to derive information about the situational environment. For example, the perception module 1010 may include one or more actor modelers (e.g., object detectors, object classifiers, or machine learning models trained to derive information from sensor data) to detect and / or classify actors (e.g., other vehicles, pedestrians, moving objects) present in the vehicle's environment. The perception module 1010 may also determine various characteristics of the actors. For example, the perception module 1010 may track the speed, direction of movement, acceleration, trajectory, relative distance, or relative position of such actors. In certain embodiments, the perception module 1010 may also utilize information from a high-definition map. The high-definition map may include an accurate three-dimensional model of the environment, including buildings, curbs, road signs, traffic lights, and any immovable fixed objects in the environment. Using the vehicle's GPS data and / or image-based localization techniques (e.g., simultaneous localization and mapping, or SLAM), the perception module 1010 can determine the pose (e.g., position and orientation) of the vehicle or the pose of the vehicle's sensors within the high-definition map. The pose information may then be used by the perception module 1010 to query the high-definition map and determine which objects are expected to be in the environment.
[0076] The perception module 1010 may use sensor data from one or more types of sensors and / or information derived therefrom to generate a representation of the situational environment of the vehicle. By way of example and not by way of limitation, the representation of the external environment may include objects such as other vehicles, curbs, debris, objects, and pedestrians. The situational representation may be limited to the maximum range of the sensor array (e.g., 50, 1000, or 200 meters). The situational environment representation may include information about the actors and objects surrounding the vehicle, as well as semantic information about lanes, traffic rules, traffic signs, time of day, weather, and / or any other suitable information. The situational environment may be represented in any suitable manner. By way of example and not by way of limitation, the situational representation may be encoded as a vector or matrix of numerical values, with each value of the vector / matrix corresponding to a given category of information. For example, each actor in the environment may be represented by a set of values starting with the actor's coordinates, classification (e.g., vehicle, pedestrian, etc.), orientation, speed, trajectory, etc. Alternatively, information about the situational environment may be represented by a raster image that visually depicts actors, semantic information, etc. For example, the raster image may be a bird's-eye view of the vehicle and its surroundings up to a certain distance. The raster image may include visual information (e.g., bounding boxes, color-coded shapes, etc.) that represent various data of interest (e.g., vehicles, pedestrians, lanes, buildings, etc.).
[0077] The representation of the situation environment from the perception module 1010 may be consumed by the prediction module 1015 to generate one or more predictions of the future environment. For example, given a representation of the situation environment at time t0, the prediction module 1015 may output another situation representation for time t1. For example, if the t0 situation environment is represented by a raster image, the output of the prediction module 1015 may be another raster image (e.g., a snapshot of the current environment) that shows where the actor is at time t1 (e.g., a snapshot of the future). In certain embodiments, the prediction module 1015 may include a machine learning model (e.g., a convolutional neural network, a neural network, a decision tree, a support vector machine, etc.) that may be trained based on previously recorded situation data and sensor data. For example, one training sample may be generated based on a set of actual sensor data captured by the vehicle at times t0 and t1. The data captured at times t0 and t1 may be used to generate a first situation representation (training data) and a second situation representation (associated ground truth data used for training), respectively. During training, the machine learning model may process a first situation representation using the model's current configuration parameters and output a predicted situation representation. The predicted situation representation may then be compared to a known second situation representation (i.e., ground truth data at time t1). The comparison may be quantified by a loss value calculated using a loss function. The loss value may be used (e.g., via backpropagation techniques) to update the machine learning model's configuration parameters so that the loss is reduced if the prediction is performed again. The machine learning model may be trained iteratively using a large set of training examples until a convergence or termination condition is met. For example, training may be terminated when the loss value falls below a predefined threshold. Once training is complete, the machine learning model may be used to generate predictions of future situation representations based on the current situation representation.
[0078] The planning module 1020 may determine a navigation route and specific driving maneuvers (e.g., decelerate, accelerate, stop, turn, etc.) for the vehicle based on the predicted situation representation generated by the prediction module 1015. In certain embodiments, the planning module 1020 may utilize prediction information encoded within the predicted situation representation (e.g., predicted location or trajectory of an actor, semantic data, etc.) and any available information (e.g., map data, traffic data, accident reports, weather forecasts, destinations, or any suitable information) to determine one or more targets or navigation instructions for the vehicle. By way of example and not by way of limitation, based on predicted behavior of actors surrounding the vehicle and traffic data to a particular destination, the planning module 1020 may determine a specific navigation route and associated driving maneuvers for the vehicle to avoid a possible collision with one or more actors.
[0079] In certain embodiments, the plan module 1020 may generate several different plans (e.g., targets or navigation instructions) for the vehicle based on a given predicted situation representation. For each plan, the plan module 1020 may calculate a score that represents the desirability of the plan. For example, if the plan is likely to result in a collision between the vehicle and the actor at the actor's predicted location, as determined based on the predicted situation representation, the plan's score may be penalized accordingly. Another plan in which the vehicle would violate a traffic rule or require a long detour to avoid a possible collision may also have its score penalized, but the penalty may be less severe than the penalty applied to the previous plan that would have caused the collision. A third plan that simply stops the vehicle or changes lanes to avoid a collision with the actor in the predicted future may receive the highest score. Based on the scores assigned to the plans, the plan module 1020 may select the best plan to implement. While the above examples use collisions as an example, the disclosure herein contemplates the use of any suitable scoring criteria, such as distance or time of travel, fuel efficiency, changes in estimated time of arrival at the destination, passenger comfort, proximity to other vehicles, a confidence score associated with the predicted situation representation, etc.
[0080] Based on the plan generated by the plan module 1020, which may include one or more navigation paths or associated driving maneuvers, the control module 1025 may determine specific commands to be issued to the vehicle's actuators. The vehicle's actuators are the components responsible for the movement and control of the vehicle. The actuators control the vehicle's driving functions, such as steering, turn signals, deceleration (braking), acceleration, gear shifting, etc. As an example and not by way of limitation, the control module 1025 may send a command to a steering actuator to maintain a specific steering angle for a specific time to move the vehicle on a specific trajectory to avoid an actor predicted to enter the vehicle's area. As another example, the control module 1025 may send a command to an accelerator actuator to allow the vehicle to safely avoid an actor predicted to enter the vehicle's area.
[0081] FIG. 11 illustrates an exemplary computer system 1100. In certain embodiments, one or more computer systems 1100 perform one or more steps of one or more methods described or illustrated herein. In certain embodiments, one or more computer systems 1100 provide functionality described or illustrated herein. In certain embodiments, software executing on one or more computer systems 1100 performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Certain embodiments include one or more portions of one or more computer systems 1100. References herein to a computer system may extend to a computing device, and vice versa, where appropriate. Additionally, references to a computer system may extend to one or more computer systems, where appropriate.
[0082] This disclosure contemplates any suitable number of computer systems 1100. This disclosure contemplates computer systems 1100 taking any suitable physical form. By way of example and not limitation, computer system 1100 may be an embedded computer system, a system on a chip (SOC), a single board computer system (SBC) (e.g., a computer on module (COM) or a system on module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile phone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented / virtual reality device, or a combination of two or more of the foregoing. Where appropriate, computer system 1100 may include one or more computer systems 1100, may be single or distributed, may span multiple locations, multiple machines, multiple data centers, or may reside in a cloud that may include one or more cloud components in one or more networks. If desired, one or more computer systems 1100 may perform one or more steps of one or more methods described or illustrated herein without substantial spatial or temporal limitations. By way of example and not by way of limitation, one or more computer systems 1100 may perform one or more steps of one or more methods described or illustrated herein in real-time or batch fashion. One or more computer systems 1100 may perform one or more steps of one or more methods described or illustrated herein at different times or in different locations, if desired.
[0083] In a particular embodiment, computer system 1100 includes a processor 1102, memory 1104, storage 1106, an input / output (I / O) interface 1108, a communications interface 1110, and a bus 1112. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
[0084] In particular embodiments, the processor 1102 includes hardware for executing instructions, such as those that make up a computer program. By way of example and not by way of limitation, to execute an instruction, the processor 1102 may retrieve (or fetch), decode and execute the instruction from an internal register, an internal cache, memory 1104 or storage 1106, and then write one or more results to an internal register, an internal cache, memory 1104 or storage 1106. In particular embodiments, the processor 1102 may include one or more internal caches for data, instructions or addresses. This disclosure contemplates a processor 1102 including any suitable number of any suitable internal caches, as appropriate. By way of example and not by way of limitation, the processor 1102 may include one or more instruction caches, one or more data caches and one or more translation lookaside buffers (TLBs). Instructions in an instruction cache may be copies of instructions in memory 1104 or storage 1106, and the instruction cache may speed up retrieval of such instructions by the processor 1102. Data in the data cache may be a copy of data in memory 1104 or storage 1106 that is operated on by a computer instruction, may be accessible to a subsequent instruction, may be a result of a previous instruction executed by processor 1102 for writing to memory 1104 or storage 1106, or any other suitable data. The data cache may speed up read or write operations by processor 1102. The TLB may speed up virtual address translation for processor 1102. In particular embodiments, processor 1102 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates a processor 1102 that includes any suitable number of any suitable internal registers, as appropriate. Processor 1102 may include one or more arithmetic logic units (ALUs), may be a multi-core processor, or may include one or more processors 1102, as appropriate. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
[0085] In a particular embodiment, the memory 1104 includes a main memory for storing instructions for the processor 1102 to execute or data for the processor 1102 to operate on. By way of example and not by way of limitation, the computer system 1100 may load instructions from the storage 1106 or another source (such as another computer system 1100) into the memory 1104. The processor 1102 may then load the instructions from the memory 1104 into an internal register or cache. To execute an instruction, the processor 1102 may retrieve and decode the instruction from the internal register or cache. During or after execution of an instruction, the processor 1102 may write one or more results (which may be intermediate or final results) to the internal register or cache. The processor 1102 may then write one or more of such results to the memory 1104. In particular embodiments, the processor 1102 executes only instructions in one or more internal registers or caches, or in memory 1104 (as opposed to storage 1106 or elsewhere), and operates only on data in one or more internal registers or caches, or in memory 1104 (as opposed to storage 1106 or elsewhere). One or more memory buses (each of which may include an address bus and a data bus) may couple the processor 1102 to the memory 1104. The bus 1112 may include one or more memory buses, as described in further detail below. In particular embodiments, one or more memory management units (MMUs) reside between the processor 1102 and the memory 1104 to facilitate accesses to the memory 1104 requested by the processor 1102. In particular embodiments, the memory 1104 includes random access memory (RAM). This RAM may be volatile memory, where appropriate. This RAM may be dynamic RAM (DRAM) or static RAM (SRAM), where appropriate. Further, the RAM may be single-ported or multi-ported RAM, where appropriate. Any suitable RAM is contemplated in this disclosure. The memory 1104 may include one or more memories 1104, where appropriate.Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
[0086] In particular embodiments, storage 1106 includes mass storage for data or instructions. By way of example and not limitation, storage 1106 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive, or a combination of two or more of the foregoing. Storage 1106 may include removable or non-removable (or fixed) media, as appropriate. Storage 1106 may be internal or external to computer system 1100, as appropriate. In particular embodiments, storage 1106 is non-volatile solid-state memory. In particular embodiments, storage 1106 includes read-only memory (ROM). As appropriate, this ROM may be a mask programmable ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically erasable re-writeable ROM (EAROM), or a flash memory, or a combination of two or more of the foregoing. This disclosure contemplates mass storage 1106 taking any suitable physical form. Storage 1106 may include one or more storage control units, as appropriate, to facilitate communication between processor 1102 and storage 1106. As appropriate, storage 1106 may include one or more storages 1106. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
[0087] In certain embodiments, I / O interface 1108 includes hardware, software, or both, providing one or more interfaces for communication between computer system 1100 and one or more I / O devices. Computer system 1100 may include one or more of such I / O devices, as appropriate. One or more of such I / O devices may enable communication between a person and computer system 1100. By way of example and not limitation, an I / O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, touch pen, tablet, touch screen, trackball, video camera, another suitable I / O device, or a combination of two or more of the above. An I / O device may include one or more sensors. This disclosure contemplates any suitable I / O device and any suitable I / O interface 1108 for the I / O device. Optionally, I / O interface 1108 may include one or more device or software drivers that enable processor 1102 to drive one or more of such I / O devices. Optionally, I / O interface 1108 may include one or more I / O interfaces 1108. Although this disclosure describes and illustrates a particular I / O interface, this disclosure contemplates any suitable I / O interface.
[0088] In certain embodiments, the communication interface 1110 includes hardware, software, or both that provide one or more interfaces for communication (e.g., packet-based communication, etc.) between the computer system 1100 and one or more other computer systems 1100 or one or more networks. By way of example and not by way of limitation, the communication interface 1110 may include a network interface controller (NIC) for communicating with an Ethernet or any other wire-based network, or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any communication interface 1110 suitable for the network. By way of example and not by way of limitation, the computer system 1100 may communicate with one or more portions of an ad-hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or the Internet, or a combination of two or more of the foregoing. One or more portions of one or more of such networks may be wired or wireless. As an example, computer system 1100 may communicate with a wireless PAN (WPAN) (e.g., a Bluetooth® WPAN, etc.), a WI-FI network, a WI-MAX network, a cellular network (e.g., a Global System for Mobile Communications (GSM®) network), or any other suitable wireless network, or a combination of two or more of those listed herein. Computer system 1100 may include any communication interface 1110 suitable for any such network, as appropriate. Communication interface 1110 may include one or more communication interfaces 1110, as appropriate. Although this disclosure describes and illustrates a particular communication interface, any suitable communication interface is contemplated in this disclosure.
[0089] In particular embodiments, bus 1112 includes components that couple together hardware, software, or both of computer system 1100. By way of example, and not limitation, bus 1112 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a Low Pin Count (LPC) bus, a memory bus, a MicroChannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI Express (PCIe) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local (VLB) bus, or another suitable bus, or a combination of two or more of the foregoing. Bus 1112 may include one or more buses 1112, as appropriate. Although particular buses are described and illustrated in this disclosure, any suitable bus or interconnect is contemplated in this disclosure.
[0090] As used herein, one or more computer-readable non-transitory storage media may include one or more semiconductor-based or other types of integrated circuits (ICs) (e.g., field programmable gate arrays (FPGAs) or application specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical disks, optical disk drives (ODDs), magneto-optical disks, magneto-optical drives, floppy disks, floppy disk drives (FDDs), magnetic tapes, solid state drives (SSDs), RAM drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of those listed herein, as appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, as appropriate.
[0091] As used herein, "or" is inclusive and not exclusive, unless expressly indicated otherwise or the context dictates otherwise. Thus, as used herein, "A or B" means "A, B, or both," unless expressly indicated otherwise or the context dictates otherwise. Furthermore, "and" is both conjunctive and several, unless expressly indicated otherwise or the context dictates otherwise. Thus, as used herein, "A and B" means "both or each of A and B," unless expressly indicated otherwise or the context dictates otherwise.
[0092] The scope of the present disclosure encompasses any changes, substitutions, variations, modifications, and improvements to the exemplary embodiments described and illustrated herein that would be understood by a person skilled in the art. The scope of the present disclosure is not limited to the exemplary embodiments described or illustrated herein. Furthermore, although the present disclosure describes and illustrates each embodiment herein as including certain components, elements, features, functions, operations, or steps, any such embodiment may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that would be understood by a person skilled in the art. Furthermore, any reference in the appended claims to an apparatus or system, or an apparatus or system component, that is adapted, arranged, configured, enabled, operable, or operative to perform a particular function includes the apparatus, system, component, or that particular function is enabled, activated, or unlocked, so long as the apparatus, system, component is so adapted, arranged, operative, configured, enabled, operative, or operative. Moreover, although the present disclosure describes or illustrates particular embodiments as providing certain advantages, a particular embodiment may provide none, some, or all of such advantages. The invention disclosed in this specification includes the following aspects. [Aspect 1] A computing system associated with the vehicle Determining a current location of the vehicle in a first region; identifying one or more first sets of model parameters associated with the first region and one or more second sets of model parameters associated with a second region; generating one or more corresponding first inferences based on first sensor data captured by the vehicle using one or more machine learning models having configurations based on a corresponding first set of model parameters; switching a configuration of one or more models from a corresponding first set of model parameters to a corresponding second set of model parameters associated with the second region; using the one or more models having a configuration based on a corresponding second set of model parameters to generate one or more corresponding second inferences based on second sensor data generated by a sensor of the vehicle when the vehicle is in the second area; causing the vehicle to perform one or more actions based on at least the second inference; and A method comprising: [Aspect 2] The method of aspect 1, wherein the first set of model parameters and the second set of model parameters are generated by training corresponding models based on previously captured sensor data collected in the first and second regions, respectively. [Aspect 3] The method of aspect 1, wherein identifying the first and second sets of model parameters includes retrieving the first and second sets of model parameters from a data store, the first and second sets of model parameters being associated with the first and second regions, respectively, in the data store. Aspect 4 The method of claim 2, wherein the model includes one or more perception models trained to identify the one or more types of objects in the first or second region based on the first or second sensor data, respectively. Aspect 5 5. The method of claim 4, wherein the perceptual model comprises a plurality of perceptual models trained based on a plurality of lighting conditions, a plurality of weather conditions, a plurality of times of day, or a combination thereof. Aspect 6 The method of aspect 5, wherein determining the first and second sets of model parameters further includes identifying, in a data store, the first and second sets of model parameters associated with current lighting conditions in the vehicle's environment, weather conditions in the vehicle's environment, time of day, or a combination thereof. Aspect 7 The method of embodiment 6, wherein the lighting conditions, weather conditions, time of day, or a combination thereof associated with the first and second sets of model parameters are determined when the first and second sets of model parameters are generated by training the corresponding perceptual models. Aspect 8 The method of aspect 2, wherein the model includes one or more predictive models trained to predict one or more trajectories of one or more objects represented by the first or second sensor data. Aspect 9 The method of claim 8, wherein the predictive model associated with the first region and having a configuration based on the corresponding first set of model parameters is trained to predict the trajectory based on observed trajectories of objects previously captured in the first region. Aspect 10 The method of claim 2, wherein the model includes one or more planning models trained to identify one or more vehicle trajectories for maneuvering through an environment of the first or second region, respectively, based on the first or second sensor data. Aspect 11 The method of embodiment 10, wherein the one or more vehicle trajectories include a plurality of vehicle trajectories such that a corresponding plurality of different maneuvers are performed. Aspect 12 the first region is separated from the second region by a region boundary, and switching a configuration of the one or more models from a corresponding first set of model parameters to a corresponding second set of model parameters is in response to the vehicle crossing the region boundary or being less than a first threshold distance from the region boundary; determining that the vehicle is less than a second threshold distance from the region boundary based on a current position and a current heading of the vehicle, the second threshold distance being greater than the first threshold distance; 2. The method of embodiment 1, further comprising loading the second set of model parameters from a data store into a memory device of the vehicle. Aspect 13 The method of claim 1, wherein the first and second sets of model parameters are loaded into a memory device on the vehicle for a predetermined set of first and second regions, the predetermined set being determined based on a route plan for the vehicle. Aspect 14 2. The method of embodiment 1, wherein each of the first and second regions is specified as a geographic area, a road segment, an intersection, or a combination thereof. Aspect 15 identifying a region of the map for evaluating performance of a generalized machine learning model; determining an evaluated performance of the generalized machine learning model for the region of the map using the generalized machine learning model configured according to a set of generalized model parameters associated with the map; determining that the evaluated performance of the generalized machine learning model for the region of the map is below a minimum performance threshold; generating a localized machine learning model having a set of localized model parameters; 2. The method of claim 1, further comprising: associating the localized machine learning model with the region of the map for use in generating one or more subsequent inferences in the region of the map. Aspect 16 identifying a region of the map for which performance of a first localized machine learning model is to be evaluated; determining an evaluated performance of the first localized machine learning model for the region of the map using the first localized machine learning model configured according to a first set of localized model parameters associated with the region; determining that the evaluated performance of the first localized machine learning model for the region of the map is below a minimum performance threshold; Dividing the region of the map into two or more sub-regions; generating a second localized machine learning model having a second set of localized model parameters; 2. The method of claim 1, further comprising: associating the second localized machine learning model with one of the subregions for use in generating one or more subsequent inferences in the subregion. Aspect 17 1. A system comprising one or more processors and one or more computer-readable non-transitory storage media coupled to one or more of the processors, the one or more computer-readable non-transitory storage media comprising instructions operable when executed by one or more of the processors, the instructions providing the system with: determining a current location of the vehicle in a first region; identifying one or more first sets of model parameters associated with the first region and one or more second sets of model parameters associated with a second region; generating one or more corresponding first inferences based on first sensor data captured by the vehicle using one or more machine learning models having configurations based on a corresponding first set of model parameters; switching a configuration of one or more models from a corresponding first set of said model parameters to a corresponding second set of said model parameters associated with said second region; using the one or more models having a configuration based on a corresponding second set of model parameters to generate one or more corresponding second inferences based on second sensor data generated by a sensor of the vehicle when the vehicle is in the second area; The system causes the vehicle to perform one or more operations based on at least the second inference. Aspect 18 The system of aspect 17, wherein the first set of model parameters and the second set of model parameters are generated by training corresponding models based on previously captured sensor data collected in the first and second regions, respectively. Aspect 19 One or more computer-readable non-transitory storage media embodying software that is operable when executed to cause one or more processors to perform operations, the operations including: Determining a current location of the vehicle in a first region; identifying one or more first sets of model parameters associated with the first region and one or more second sets of model parameters associated with a second region; generating one or more corresponding first inferences based on first sensor data captured by the vehicle using one or more machine learning models having configurations based on the corresponding first set of model parameters; switching a configuration of one or more models from a corresponding first set of said model parameters to a corresponding second set of said model parameters associated with said second region; using the one or more models having configurations based on corresponding second sets of model parameters to generate one or more corresponding second inferences based on second sensor data generated by a sensor of the vehicle when the vehicle is in the second area; causing the vehicle to perform one or more actions based on at least the second inference; and A storage medium including Aspect 20 A storage medium as described in aspect 19, wherein the first set of model parameters and the second set of model parameters are generated by training corresponding models based on previously captured sensor data collected in the first and second regions, respectively.
Claims
1. A computing system associated with the vehicle identifying one or more first sets of predefined model parameters from prior training associated with a first region in which the vehicle is currently located, and configuring one or more machine learning models with the one or more first sets of model parameters; upon determining that the current location is in a second region, switching the one or more machine learning models from the first set of model parameters to one or more second sets of model parameters predefined from prior training associated with the second region, wherein the one or more first sets of model parameters and the one or more second sets of model parameters are learned weights of the one or more machine learning models; using the one or more machine learning models configured with the one or more second sets of model parameters to generate inferences based on sensor data generated by sensors of the vehicle when the vehicle is in the second region; causing the vehicle to perform an action in accordance with the inference; and if the machine learning model evaluates the performance of the second set of model parameters below a minimum threshold, dividing the second region into at least two sub-regions having new parameters; A method comprising:
2. 2. The method of claim 1 , wherein the first set of model parameters and the second set of model parameters are generated by training the one or more machine learning models based on previously captured sensor data collected in the first and second regions, respectively, from a back-propagation technique of loss values generated by a loss function during training.
3. 2. The method of claim 1 , wherein identifying the first and second sets of model parameters comprises retrieving the first and second sets of model parameters from a data store, the first and second sets of model parameters being associated with the first and second regions in the data store, respectively, and wherein switching comprises removing a first set of model parameters from the machine learning model and inserting the one or more second sets of model parameters.
4. 3. The method of claim 2, wherein the one or more machine learning models include one or more perception models trained to identify one or more types of objects in the first or second regions, respectively, based on the sensor data.
5. The method of claim 4 , wherein the perceptual models include multiple perceptual models trained based on multiple lighting conditions, multiple weather conditions, multiple times of day, or a combination thereof.
6. 6. The method of claim 5, wherein identifying the first and second sets of model parameters further comprises identifying, in a data store, the first and second sets of model parameters associated with current lighting conditions in an environment of the vehicle, weather conditions in the environment, time of day, or a combination thereof.
7. 7. The method of claim 6, wherein the lighting conditions, weather conditions, time of day, or a combination thereof associated with the first and second sets of model parameters are determined when the first and second sets of model parameters are generated by training the perceptual model.
8. 3. The method of claim 2, wherein the one or more machine learning models comprise one or more predictive models trained to predict one or more trajectories of one or more objects represented in the sensor data.
9. 10. The method of claim 8, wherein the predictive model associated with the first region and having a configuration based on the corresponding first set of model parameters is trained to predict the trajectory based on observed trajectories of objects previously captured in the first region.
10. 3. The method of claim 2, wherein the one or more machine learning models include one or more planning models trained to identify one or more vehicle trajectories for maneuvering through an environment for the vehicle in the first or second regions, respectively, based on the sensor data.
11. The method of claim 10 , wherein the one or more vehicle trajectories include a plurality of vehicle trajectories such that a corresponding plurality of different maneuvers are performed.
12. the first region is separated from the second region by a region boundary, and switching the one or more models from the first set of model parameters to the second set of model parameters is in response to the vehicle being located less than a first threshold distance from the region boundary; determining that the vehicle is less than a second threshold distance from the region boundary based on a current position and a current heading of the vehicle, the second threshold distance being greater than the first threshold distance; The method of claim 1 , further comprising: loading the second set of model parameters from a data store into a memory device of the vehicle.
13. 2. The method of claim 1, wherein the first and second sets of model parameters are loaded into a memory device on the vehicle for a predetermined set of first and second regions, the predetermined set being determined based on a route plan for the vehicle.
14. The method of claim 1 , wherein each of the first and second regions is specified as a geographic area, a road segment, an intersection, or a combination thereof.
15. identifying a region of the map for evaluating performance of a generalized machine learning model; determining an evaluated performance of the generalized machine learning model for the region of the map using the generalized machine learning model configured according to a set of generalized model parameters associated with the map; determining that the evaluated performance of the generalized machine learning model for the region of the map is below a minimum performance threshold; generating a localized machine learning model having a set of localized model parameters; 2. The method of claim 1 , further comprising: associating the localized machine learning model with the region of the map for use in generating one or more subsequent inferences in the region of the map.
16. The method of claim 1, further comprising evaluating performance of the second set of model parameters for the second region according to a performance metric that evaluates at least a characteristic of control of the vehicle within the second region.
17. 1. A system comprising one or more processors and one or more computer-readable non-transitory storage media coupled to one or more of the processors, the one or more computer-readable non-transitory storage media comprising instructions operable when executed by one or more of the processors, the instructions providing the system with: determining whether a current location of the vehicle is in a first region; identifying one or more first sets of predefined model parameters from prior training associated with the first domain; and configuring one or more machine learning models according to the one or more first sets of model parameters; upon determining that the current location is in a second region, causing the one or more machine learning models to switch from the one or more first sets of model parameters to one or more second sets of model parameters predefined from prior training associated with the second region, the one or more first sets of model parameters and the one or more second sets of model parameters being learned weights of the one or more machine learning models; using the one or more machine learning models configured with the one or more second sets of model parameters to generate one or more corresponding inferences based on sensor data generated by sensors of the vehicle when the vehicle is in the second region; causing the vehicle to perform one or more actions based at least on the inference; if the machine learning model evaluates performance of the second set of model parameters below a minimum threshold, splitting the second region into at least two sub-regions having new parameters. system.
18. 20. The system of claim 17, wherein the first set of model parameters and the second set of model parameters are generated by training the one or more machine learning models based on previously captured sensor data collected in the first and second regions, respectively.
19. One or more computer-readable non-transitory storage media embodying software that is operable when executed to cause one or more processors to perform operations, the operations including: Determining whether a current location of the vehicle is in a first region; identifying one or more first sets of pre-defined model parameters from prior training associated with the first domain, and configuring one or more machine learning models according to the one or more first sets of model parameters; when determining that the current location is in a second region, switching the one or more machine learning models from the one or more first sets of model parameters to one or more second sets of model parameters predefined from prior training associated with the second region, wherein the one or more first sets of model parameters and the one or more second sets of model parameters are learned weights of the one or more machine learning models; using the one or more machine learning models configured with the one or more second sets of model parameters to generate one or more corresponding inferences based on sensor data generated by sensors of the vehicle when the vehicle is in the second region; causing the vehicle to perform one or more actions based at least on the inference; and if the evaluation performance of the second set of parameters by the machine learning model indicates performance below a minimum threshold, dividing the second region into at least two sub-regions having new parameters; One or more computer-readable non-transitory storage media,
20. 20. The one or more computer-readable, non-transitory storage media of claim 19, wherein the first set of model parameters and the second set of model parameters are generated by training the one or more machine learning models based on previously captured sensor data collected in the first and second regions, respectively.
Citation Information
Patent Citations
Action selection system, action selection method, predictive machine training system, predictive machine training method, and predictive machine
JP2008508581A
Mobile body behavior prediction device
JP2018205940A
Information processing device and information processing method
JP2019125113A
Vehicle control system and method of use
US20180339709A1
Method, apparatus, and system for dynamic adaptation of an in-vehicle feature detector
US20190294934A1
