Driving scenario sampling for training / tuning a machine learning model of a vehicle

By using a random number generator to allocate the initial physical state and the psychological state of the virtual driver in the training and tuning data generation of autonomous vehicles, simulate the driving situation and train the machine learning model, the problem of insufficient data quality in the prior art is solved and higher quality model training and tuning is achieved.

CN114091680BActive Publication Date: 2025-05-30MOTIONAL AD LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011117179.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-08-24
Filing Date
2020-10-19
Publication Date
2025-05-30
Estimated Expiration
2040-10-19

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently generate high-quality training and tuning data for training machine learning models to predict the behavior of autonomous vehicles in complex environments.

Method used

By assigning the initial physical state using a random number generator and combining the psychological state of the virtual driver of the virtual vehicle, various driving scenarios are simulated, samples are selected, and machine learning models are trained.

Benefits of technology

More comprehensive training and tuning data is generated, which can better simulate real-world driving scenarios and improve the accuracy and effectiveness of machine learning models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114091680B_ABST
    Figure CN114091680B_ABST
Patent Text Reader

Abstract

Embodiments for sampling driving scenarios to train a machine learning model are disclosed. In one embodiment, a method includes: using at least one processor to assign a set of initial physical states to a set of objects in a map for a set of simulated driving scenarios, wherein the set of initial physical states is assigned according to one or more outputs of a random number generator; using the at least one processor to generate the set of simulated driving scenarios in the map using the initial physical states of the objects in the set of objects; using the at least one processor to select a sample of the simulated driving scenarios; using the at least one processor to train a machine learning model using the selected sample; and using a control circuit to operate a vehicle in an environment using the trained machine learning model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The following description generally relates to generating training and / or tuning data for a machine learning model. Background Art

[0002] Autonomous vehicles (AVs) typically include machine learning models that need to be trained and tuned using training data. The accuracy of a machine learning model highly depends on the quality of the training and / or tuning data. For example, if a machine learning model is to be used to predict the behavior of an AV in an operating environment with many static and dynamic objects (such as other vehicles, etc.), then in order to ensure the accuracy of the machine learning model, it is important that the training and / or tuning data include a large dataset of different driving scenarios that qualitatively capture the normal behavior of the objects. Summary of the Invention

[0003] Techniques are provided for sampling driving scenarios to provide training and / or tuning data for a machine learning model.

[0004] In an embodiment, a method includes: using at least one processor, assigning a set of initial physical states to a set of objects (such as virtual vehicles, pedestrians, cyclists) in a map for a set of simulated driving scenarios (e.g., passing through an intersection, lane change), wherein the set of initial physical states are assigned according to one or more outputs of a random number generator; using the at least one processor, generating the set of simulated driving scenarios in the map using the initial physical states of the objects; using the at least one processor to select a sample of the simulated driving scenarios; using the at least one processor to train a machine learning model (e.g., a deep neural network) using the selected sample; and using a control circuit to operate a vehicle in an environment using the trained machine learning model.

[0005] In an embodiment, at least one object in the set of objects is a virtual vehicle, and the method further includes: assigning a mental state of a virtual driver of the virtual vehicle (e.g., a tendency to accelerate quickly from a stopped position, a tendency to closely follow); and simulating a driving scenario using the map, the initial physical states of each object in the set of objects, and the mental state of the virtual driver of the virtual vehicle.

[0006] In an embodiment, the mental state of the virtual driver includes a driver's acceleration preference (e.g., a preference to accelerate quickly from a stopped position).

[0007] In an embodiment, the mental state of the virtual driver includes a preference to maintain a gap between another virtual vehicle and other objects (e.g., a preference to closely follow).

[0008] In an embodiment, the mental state of the virtual driver includes a preference for a specific route.

[0009] In an embodiment, the mental state of the virtual driver includes the driver's goal (e.g., reaching the destination quickly).

[0010] In an embodiment, the mental state of the virtual driver includes a courtesy factor (e.g., a weight factor), which is used to determine the extent to which the driver is willing to inconvenience other virtual drivers in the driving scenario.

[0011] In an embodiment, the method further includes: determining one or more failed scenarios in a set of driving scenarios (e.g., a collision between two or more objects); and excluding the one or more failed driving scenarios from training the machine learning model (e.g., the one or more failed driving scenarios are not included in the training data).

[0012] In an embodiment, a failed driving scenario includes a driving scenario in which a collision is predicted between two or more objects.

[0013] In an embodiment, a failed driving scenario includes a driving scenario in which the acceleration value or deceleration value of one or more objects is higher or lower than one or more specified thresholds (e.g., the acceleration will cause the vehicle to lose control).

[0014] In an embodiment, the initial physical state of the objects in the set of objects includes an initial position and an initial acceleration, and the initial position and the initial acceleration are assigned according to different random numbers output by the random number generator.

[0015] In an embodiment, generating the simulated driving scenario further includes: predicting each driving scenario forward in time for a specified period before selecting a sample (e.g., to allow various objects to traverse their respective trajectories without failure).

[0016] In an embodiment, a driving scenario includes traffic lights or traffic signs obeyed by one or more objects.

[0017] In an embodiment, the machine learning model is a deep learning neural network for motion prediction.

[0018] In an embodiment, one or more objects include at least one pedestrian.

[0019] In an embodiment, each sampled driving scenario includes multiple timestamps of each object and associated positions, speeds, or markers.

[0020] In an embodiment, the method further includes: embedding a sampling scenario into a pseudo-image (e.g., a BEV image); and training the machine learning model (e.g., training an image semantic neural network) using the pseudo-image.

[0021] In an embodiment, the method further includes: selecting a unique seed from a statistical distribution (e.g., a normal distribution); and initializing the random number generator using the seed.

[0022] In an embodiment, the statistical distribution is a joint distribution over driving scenarios.

[0023] In an embodiment, a driving scenario is generated based on at least one of a specified density of objects (e.g., urban vs rural), a specified day, and a specified time of day (e.g., simulating rush hour traffic).

[0024] One or more of the disclosed embodiments provide one or more of the following advantages. The disclosed systems and methods allow a user to select, randomly initialize, simulate, and sample the physical and mental states of objects for multiple different driving scenarios via a user interface. Sampled driving scenarios can be used alone as training and / or tuning data for a machine learning model or for augmenting actual driving log data. Simulated driving scenarios can provide more comprehensive training and / or tuning data, which can then be actually collected by vehicles in the real world. Additional improvements to the training and / or tuning data include the ability to assign mental states to objects to better model real-world driving scenarios, where a driver's preferences can significantly affect the driving scenario.

[0025] These and other aspects, features, and implementations can be represented as methods, devices, systems, components, program products, methods or steps for performing functions, and other ways. From the following specification, including the claims, these and other aspects, features, and implementations will become apparent. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Figure 1 Illustrates an example of an autonomous vehicle (AV) having autonomous capabilities according to one or more embodiments.

[0027] Figure 2 Illustrates an example "cloud" computing environment according to one or more embodiments.

[0028] Figure 3 Illustrates an example of a computer system according to one or more embodiments.

[0029] Figure 4 Illustrates an example architecture of an AV according to one or more embodiments.

[0030] Figure 5Illustrates an example system for sampling driving scenarios according to one or more embodiments.

[0031] Figure 6 Illustrates an example system for training and / or tuning a machine learning model using sampled driving scenarios according to one or more embodiments.

[0032] Figure 7 Is a flowchart of an example process for sampling driving scenarios according to one or more embodiments. Detailed Description

[0033] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid unnecessarily obscuring the present invention.

[0034] In the drawings, for ease of description, specific arrangements or orderings of illustrative elements are shown, such as those representing devices, modules, instruction blocks, and data elements. However, those skilled in the art should understand that the specific ordering or arrangement of illustrative elements in the drawings does not imply a requirement for a particular processing order or sequence, or a separation of processing. Additionally, the inclusion of illustrative elements in the drawings does not mean that such elements are required in all embodiments, nor that the features represented by such elements cannot be included in some embodiments or combined with other elements in some embodiments.

[0035] Furthermore, in the drawings, connecting elements, such as solid lines, dashed lines, or arrows, are used to illustrate the connection, relationship, or association between two or more other illustrative elements. The absence of any such connecting element does not mean that a connection, relationship, or association cannot exist. In other words, the connection, relationship, or association between some elements is not shown in the drawings so as not to obscure the present invention. Additionally, for ease of illustration, a single connecting element is used to represent multiple connections, relationships, or associations between elements. For example, if the connecting element represents the communication of signals, data, or instructions, those skilled in the art should understand that the element represents one or more signal paths (e.g., a bus) that may be required to affect the communication.

[0036] Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to those of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other cases, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0037] Several of the features described below can be used independently of each other or in any combination with other features. However, any individual feature may not solve any of the above problems, or may only solve one of the above problems. Some of the problems discussed above may not be fully solved by any one feature described herein. Although headings are provided, information related to a heading but not found in that heading section may also be found elsewhere in this description. Embodiments are described herein according to the following outline:

[0038] 1. General Overview

[0039] 2. System Overview

[0040] 3. Autonomous Vehicle Architecture

[0041] 4. Sampling Driving Scenarios

[0042] General Overview

[0043] Techniques are provided for sampling driving scenarios for use in training and / or tuning machine learning models. In an embodiment, a scenario initializer randomly selects one or more parameters to be initialized that are related to the physical and / or mental state of one or more objects in a simulated driving scenario. The scenario initializer uses the randomly selected one or more parameters to initialize a driving scenario simulator. The driving scenario simulator generates an object track for each of one or more objects in the driving scenario. A scenario sampling module samples the one or more object tracks and stores the samples in a database. These samples are then used to train and / or tune one or more machine learning models.

[0044] System Overview

[0045] Figure 1 An example of an autonomous vehicle 100 with autonomous capabilities is shown.

[0046] As used herein, the term "autonomous capabilities" refers to a function, feature, or facility that enables a vehicle to operate partially or fully without real-time human intervention, including but not limited to fully autonomous vehicles, highly autonomous vehicles, partially autonomous vehicles, and conditionally autonomous vehicles.

[0047] As used herein, an autonomous vehicle (AV) is a vehicle with autonomous capabilities.

[0048] As used herein, "vehicle" includes a means of transporting goods or people. For example, cars, buses, trains, airplanes, drones, trucks, ships, vessels, submersibles, airships, etc. A driverless car is an example of a vehicle.

[0049] As used herein, "trajectory" refers to the path or route by which an AV is operated from a first spatio-temporal location to a second spatio-temporal location. In an embodiment, the first spatio-temporal location is referred to as the initial location or starting location, and the second spatio-temporal location is referred to as the destination, final location, target, target position, or target location. In some examples, a trajectory consists of one or more segments (e.g., several segments of a road), and each segment consists of one or more blocks (e.g., a lane or a portion of an intersection). In an embodiment, the spatio-temporal location corresponds to a real-world location. For example, the spatio-temporal location is a pick-up or drop-off location for a person or cargo to be picked up or dropped off.

[0050] As used herein, "(one or more) sensors" include one or more hardware components for detecting information related to the environment surrounding the sensor. Some hardware components may include sensing components (e.g., image sensors, biometric sensors), transmitting and / or receiving components (e.g., laser or radio wave transmitters and receivers), electronic components (e.g., analog-to-digital converters), data storage devices (e.g., RAM and / or non-volatile memory), software or firmware components, and data processing components (e.g., application-specific integrated circuits), microprocessors, and / or microcontrollers.

[0051] As used herein, "scene description" is a data structure (e.g., a list) or data stream that includes one or more classified or labeled objects detected by one or more sensors on an AV vehicle, or one or more classified or labeled objects provided by a source external to the AV.

[0052] As used herein, "road" is a physical area that can be traversed by a vehicle and can correspond to a named passageway (e.g., a city street, an interstate highway, etc.) or can correspond to an unnamed passageway (e.g., a driveway within a house or office building, a section of a parking lot, a section of an empty parking lot, a dirt road in a rural area, etc.). Since some vehicles (such as four-wheel drive pick-up trucks, sport utility vehicles (SUVs), etc.) are capable of traversing various physical areas that are not particularly suitable for vehicle travel, a "road" can be any physical area that has not been formally defined as a passageway by any municipality or other government or administrative agency.

[0053] As used herein, "lane" is the portion of a road that can be traversed by a vehicle and can correspond to most or all of the space between lane markings, or only to a portion of the space between lane markings (e.g., less than 50%). For example, a road with widely spaced lane markings may accommodate two or more vehicles such that one vehicle can pass another without crossing the lane markings, and thus can be interpreted as having lanes that are narrower than the space between the lane markings, or having two lanes between the lane markings. Lanes can also be interpreted in the absence of lane markings. For example, lanes can be defined based on the physical characteristics of the environment (e.g., rocks in a rural area and trees along an avenue).

[0054] "One or more" includes functions performed by one element, functions performed by multiple elements, e.g., in a distributed manner, several functions performed by one element, several functions performed by several elements, or any combination of the above.

[0055] It will also be understood that although in some instances the terms "first", "second", etc. are used to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described embodiments, a first contact can be referred to as a second contact, and likewise, a second contact can be referred to as a first contact. The first contact and the second contact are both contacts, but the two are not the same contact.

[0056] The terms used in the description of the various embodiments described herein are for the purpose of describing particular embodiments only and are not intended to be limiting. As used in the description of the various embodiments and the appended claims, the singular forms "a", "an", and "the" are also intended to include the plural forms unless the context clearly dictates otherwise. It should also be understood that the phrase "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It should also be understood that the terms "comprises", "comprising", "includes", and / or "having" as used in this specification specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0057] As used herein, the term "if" can optionally be understood as in that case, at that time, or in response to detecting, or in response to determining, depending on the context. Similarly, the phrase "if it has been determined" or "if [the stated condition or event] has been detected" can, depending on the context, be understood as "when determined" or "in response to determining" or "when [the stated condition or event] is detected" or "in response to detecting [the stated condition or event]".

[0058] As used herein, an AV system refers to AV and the hardware, software, stored data, and real-time generated data that support AV operations. In an embodiment, the AV system is incorporated within the AV. In an embodiment, the AV system is distributed across multiple locations. For example, some of the software of the AV system is implemented in a cloud computing environment similar to the cloud computing environment 300 described below in connection with Figure 3 the description of the cloud computing environment.

[0059] Generally, this document describes techniques applicable to any vehicle having one or more autonomous capabilities, including fully autonomous vehicles, highly autonomous vehicles, and conditionally autonomous vehicles, such as so-called level 5, level 4, and level 3 vehicles (see SAE International Standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, the entire content of which is incorporated herein by reference for more details on vehicle autonomy levels). The techniques described in this specification are also applicable to partially autonomous vehicles and driver assistance vehicles, such as so-called level 2 and level 1 vehicles (see SAE International Standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems). In an embodiment, one or more level 1, level 2, level 3, level 4, and level 5 vehicle systems can automatically perform certain vehicle operations (e.g., steering, braking, and using maps) under certain operating conditions based on the processing of sensor inputs. The techniques described in this document can benefit vehicles at all levels from fully autonomous vehicles to human-operated vehicles.

[0060] Referring to Figure 1 FIG. 1, the AV system 120 causes the AV 100 to travel along a trajectory 198 through an environment 190 to a destination 199 (sometimes referred to as a final location), while avoiding objects (e.g., natural obstacles 191, vehicles 193, pedestrians 192, cyclists, and other obstacles) and complying with road rules (e.g., operating rules or driving preferences).

[0061] In an embodiment, the AV system 120 includes means 101 for receiving and operating on operation commands from a computer processor 146. In an embodiment, the computing processor 146 is similar to the processor 304 described below in connection with Figure 3 the description of the processor. Examples of means 101 include a steering controller 102, brakes 103, gear, an accelerator pedal or other acceleration control mechanism, windshield wipers, side door locks, window controllers, and turn indicators.

[0062] In an embodiment, the AV system 120 includes sensors 121 for measuring or inferring attributes of the state or condition of the AV 100, such as the position, linear velocity and acceleration, and angular velocity and acceleration of the AV, and the heading (e.g., the direction of the front end of the AV 100). Examples of sensors 121 are Global Navigation Satellite System (GNSS) receivers, and Inertial Measurement Units (IMUs) that measure the linear acceleration and angular rate of the vehicle, wheel speed sensors for measuring or estimating the wheel slip ratio, wheel brake pressure or brake torque sensors, engine torque or wheel torque sensors, and steering angle and angular rate sensors.

[0063] In an embodiment, the sensors 121 also include sensors for sensing or measuring attributes of the environment of the AV. For example, monocular or stereo cameras 122 in the visible, infrared, or thermal (or both) spectrum, LiDAR 123, RADAR, ultrasonic sensors, Time-of-Flight (TOF) depth sensors, rate sensors, temperature sensors, humidity sensors, and precipitation sensors.

[0064] In an embodiment, the AV system 120 includes a data storage unit 142 and a memory 144 for storing machine instructions related to a computer processor 146 or data collected by the sensors 121. In an embodiment, the data storage unit 142 is combined with Figure 3 the ROM 308 or storage device 310 described below. In an embodiment, the memory 144 is similar to the main memory 306 described below. In an embodiment, the data storage unit 142 and the memory 144 store historical, real-time, and / or predictive information about the environment 190. In an embodiment, the stored information includes maps, driving performance, traffic congestion updates, or weather conditions. In an embodiment, data related to the environment 190 is transmitted to the AV 100 via a communication channel from a remote database 134.

[0065] In an embodiment, the AV system 120 includes a communication device 140 for transmitting measured or inferred attributes of the status and conditions of other vehicles (such as position, linear and angular velocity, linear and angular acceleration, and linear and angular heading, etc.) to the AV 100. These devices include vehicle-to-vehicle (V2V) and vehicle-to-infrastructure (V2I) communication devices and devices for wireless communication via a point-to-point or ad hoc network or both. In an embodiment, the communication device 140 communicates across the electromagnetic spectrum (including radio and optical communication) or other media (e.g., air and acoustic media). The combination of vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I) communication (and in some embodiments one or more other types of communication) is sometimes referred to as vehicle-to-everything (V2X) communication. V2X communication generally conforms to one or more communication standards for communication with and between autonomous vehicles.

[0066] In an embodiment, the communication device 140 includes a communication interface. For example, a wired, wireless, WiMAX, Wi-Fi, Bluetooth, satellite, cellular, optical, near field, infrared, or radio interface. The communication interface transmits data from the remote database 134 to the AV system 120. In an embodiment, the remote database 134 is embedded in the cloud computing environment 200 as Figure 2 described. The communication interface 140 transmits data collected from the sensors 121 or other data related to the operation of the AV 100 to the remote database 134. In an embodiment, the communication interface 140 transmits information related to remote operation to the AV 100. In some embodiments, the AV 100 communicates with other remote (e.g., "cloud") servers 136.

[0067] In an embodiment, the remote database 134 also stores and transmits digital data (e.g., data storing road and street locations, etc.). These data are stored in the memory 144 on the AV 100 or transmitted to the AV 100 from the remote database 134 through a communication channel.

[0068] In an embodiment, the remote database 134 stores and transmits historical information (e.g., speed and acceleration rate distributions) related to the driving attributes of vehicles that previously traveled along the trajectory 198 at similar times of the day. In one implementation, such data can be stored in the memory 144 on the AV 100 or transmitted to the AV 100 from the remote database 134 through a communication channel.

[0069] The computing device 146 located on the AV 100 algorithmically generates control actions based on real-time sensor data and prior information, enabling the AV system 120 to perform its autonomous driving capabilities.

[0070] In an embodiment, the AV system 120 includes computer peripherals 132 connected to a computing device 146 for providing information and alerts to a user of the AV 100 (e.g., an occupant or a remote user) and receiving input from the user. In an embodiment, the peripheral 132 is similar to the display 312, input device 314, and cursor controller 316 discussed below with reference to Figure 3 The connection is wireless or wired. Any two or more of the interface devices may be integrated into a single device.

[0071] Example Cloud Computing Environment

[0072] Figure 2 Illustrative example of a “cloud” computing environment. Cloud computing is a service delivery model for convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services). In a typical cloud computing system, one or more large cloud data centers house the machines for delivering the services provided by the cloud. Now refer to Figure 2 , the cloud computing environment 200 includes cloud data centers 204a, 204b, and 204c interconnected by a cloud 202. The data centers 204a, 204b, and 204c provide cloud computing services to computer systems 206a, 206b, 206c, 206d, 206e, and 206f connected to the cloud 202.

[0073] The cloud computing environment 200 includes one or more cloud data centers. Generally, a cloud data center (e.g., Figure 2 the cloud data center 204a shown in Figure 2 refers to the physical arrangement of servers that make up a cloud (e.g., Figure 3 the cloud 202 shown in

[0074] Cloud 202 includes cloud data centers 204a, 204b, and 204c, as well as a network and network resources (e.g., network devices, nodes, routers, switches, and network cables) for connecting cloud data centers 204a, 204b, and 204c and facilitating access to cloud computing services by computing systems 206a-f. In an embodiment, the network represents any combination of one or more local area networks, wide area networks, or internets connected by wired or wireless links deployed using terrestrial or satellite connections. Data exchanged over the network is transmitted using various network layer protocols such as Internet Protocol (IP), Multiprotocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay, etc. Additionally, in embodiments where the network represents a combination of multiple subnets, different network layer protocols are used on each underlying subnet. In some embodiments, the network represents one or more internets (e.g., the public internet, etc.).

[0075] Computing systems 206a-f or cloud computing service consumers are connected to cloud 202 via network links and network adapters. In an embodiment, computing systems 206a-f are implemented as various computing devices such as servers, desktops, laptops, tablets, smartphones, Internet of Things (IoT) devices, autonomous vehicles (including cars, drones, shuttles, trains, buses, etc.), and consumer electronics. In an embodiment, computing systems 206a-f are implemented in or as part of other systems.

[0076] Computer system

[0077] Figure 3 Illustrative computer system 300. In an implementation, computer system 300 is a specialized computing device. The specialized computing device is hardwired to perform these techniques, or includes digital electronic devices such as one or more application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the above techniques, or may include one or more general purpose hardware processors programmed to perform these techniques according to program instructions in firmware, memory, other memory, or a combination. Such specialized computing devices may also combine custom hardwired logic, ASICs, or FPGAs with custom programming to complete these techniques. In various embodiments, the specialized computing device is a desktop computer system, a portable computer system, a handheld device, a network device, or any other device that includes hardwired and / or program logic to implement these techniques.

[0078] In an embodiment, computer system 300 includes a bus 302 or other communication mechanism for communicating information, and a hardware processor 304 coupled to bus 302 for processing information. The hardware processor 304 is, for example, a general-purpose microprocessor. Computer system 300 also includes a main memory 306, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 302 to store information and instructions for execution by processor 304. In one implementation, main memory 306 is used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 304. When these instructions are stored in a non-transitory storage medium accessible to processor 304, computer system 300 becomes a special-purpose machine customized to perform the operations specified in the instructions.

[0079] In an embodiment, computer system 300 also includes a read only memory (ROM) 308 or other static storage device coupled to bus 302 for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk, optical disk, solid state drive, or three-dimensional cross-point memory, is provided and coupled to bus 302 for storing information and instructions.

[0080] In an embodiment, computer system 300 is coupled via bus 302 to a display 312, such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma display, light emitting diode (LED) display, or organic light emitting diode (OLED) display for displaying information to a computer user. An input device 314, including alphanumeric keys and other keys, is coupled to bus 302 for communicating information and command selections to processor 304. Another type of user input device is a cursor control 316, such as a mouse, trackball, touch display, or cursor direction keys for communicating direction information and command selections to processor 304 and for controlling cursor movement on display 312. Such input devices typically have two degrees of freedom in two axes, a first axis (e.g., the x-axis) and a second axis (e.g., the y-axis), which allow the device to specify a position on a plane.

[0081] According to one embodiment, the techniques here are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. These instructions are read into main memory 306 from another storage medium, such as storage device 310. Execution of the instruction sequence contained in main memory 306 causes processor 304 to perform the processing steps described herein. In alternative embodiments, hardwired circuitry is used in place of, or in combination with, software instructions.

[0082] As used herein, the term "storage medium" refers to any non-transitory medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such storage medium includes non-volatile media and / or volatile media. Non-volatile media includes, for example, optical discs, magnetic disks, solid state drives, or three-dimensional cross-point memories such as storage device 310. Volatile media includes dynamic memories such as main memory 306. Common forms of storage media include, for example, floppy disks, hard disks, solid state drives, magnetic tapes, or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical medium with a hole pattern, RAM, PROM, and EPROM, FLASH-EPROM, NV-RAM, or any other memory chip or cartridge.

[0083] A storage medium is distinct from a transmission medium, but can be used in combination with a transmission medium. A transmission medium participates in the transfer of information between storage media. For example, a transmission medium includes coaxial cables, copper wire, and fiber optics, which includes the wires that make up bus 302. A transmission medium can also take the form of acoustic or light waves, such as acoustic or light waves generated during radio wave and infrared data communications.

[0084] In an embodiment, various forms of media are involved in carrying one or more instruction sequences to processor 304 for execution. For example, the instructions are initially executed on a disk or solid state drive of a remote computer. The remote computer loads the instructions into its dynamic memory and sends the instructions using a modem over a telephone line. The local modem of computer system 300 receives the data on the telephone line and converts the data to an infrared signal using an infrared transmitter. The infrared detector receives the data carried in the infrared signal, and appropriate circuitry places the data on bus 302. Bus 302 carries the data to main memory 306, and processor 304 retrieves and executes the instructions from main memory 306. The instructions received by main memory 306 may optionally be stored on storage device 310 before or after being executed by processor 304.

[0085] Computer system 300 also includes a communication interface 318 coupled to bus 302. Communication interface 318 provides for bi-directional data communication coupling to a network link 320 connected to a local network 322. For example, communication interface 318 is an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem for providing a data communication connection to a corresponding type of telephone line. As another example, communication interface 318 is a local area network (LAN) card for providing a data communication connection to a compatible LAN. In some implementations, a wireless link is also implemented. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various information.

[0086] Network link 320 generally provides data communication to other data devices via one or more networks. For example, network link 320 provides a connection to a host computer 324 or to a cloud data center or device operated by an Internet service provider (ISP) 326 via a local network 322. The ISP 326 in turn provides data communication services via the worldwide packet data communication network now commonly referred to as the "Internet". Both the local network 322 and the Internet 328 use electrical, electromagnetic, or optical signals that carry digital data streams. Signals through the various networks and signals on network link 320 and through communication interface 318 are example forms of transmission media, where communication interface 318 carries digital data into and out of computer system 300. In an embodiment, network 320 includes the aforementioned cloud 202 or a portion of cloud 202.

[0087] Computer system 300 sends messages and receives data including program code via (one or more) networks, network link 320, and communication interface 318. In an embodiment, computer system 300 receives code for processing. The received code is executed by processor 304 upon receipt, and / or stored in storage device 310, or stored in other non-volatile storage devices for later execution.

[0088] Autonomous vehicle architecture

[0089] Figure 4 Illustrates an example architecture 400 for an autonomous vehicle (e.g., Figure 1 the AV 100 shown). Architecture 400 includes a perception module 402 (sometimes referred to as a perception circuit), a planning module 404 (sometimes referred to as a planning circuit), a control module 406 (sometimes referred to as a control circuit), a localization module 408 (sometimes referred to as a localization circuit), and a database module 410 (sometimes referred to as a database circuit). Each module plays a role in the operation of the AV 100. Collectively, modules 402, 404, 406, 408, and 410 can be Figure 1 a part of the AV system 120 shown. In some embodiments, any of the modules 402, 404, 406, 408, and 410 is a combination of computer software (e.g., executable code stored on a computer-readable medium) and computer hardware (e.g., one or more microprocessors, microcontrollers, application-specific integrated circuits [ASICs], hardware memory devices, other types of integrated circuits, other types of computer hardware, or any or all combinations of these hardware).

[0090] In use, the planning module 404 receives data representing a destination 412 and determines data representing a trajectory 414 (sometimes referred to as a route) that the AV 100 can travel to reach (e.g., arrive at) the destination 412. To enable the planning module 404 to determine the data representing the trajectory 414, the planning module 404 receives data from the perception module 402, the positioning module 408, and the database module 410.

[0091] The perception module 402 uses one or more sensors 121 as also shown, for example, Figure 1 to identify nearby physical objects. The objects are classified (e.g., grouped into types such as pedestrians, bicycles, cars, traffic signs, etc.), and a scene description including the classified objects 416 is provided to the planning module 404.

[0092] The planning module 404 also receives data representing the AV position 418 from the positioning module 408. The positioning module 408 determines the AV position by using data from the sensors 121 and data from the database module 410 (e.g., geographic data) to calculate the position. For example, the positioning module 408 uses data from a GNSS receiver and geographic data to calculate the longitude and latitude of the AV. In an embodiment, the data used by the positioning module 408 includes a high-precision map having lane geometric attributes, a map describing road network connection attributes, a map describing lane physical attributes (such as traffic rate, traffic volume, number of vehicle and bicycle lanes, lane width, lane traffic direction, or lane marking type and location, or a combination thereof), and a map describing the spatial location of road features (such as intersections, traffic signs, or other types of driving signals).

[0093] The control module 406 receives data representing the trajectory 414 and data representing the AV position 418 and operates the control functions 420a - 420c (e.g., steering, throttle, brake, ignition) of the AV in a manner that will cause the AV 100 to travel the trajectory 414 to reach the destination 412. For example, if the trajectory 414 includes a left turn, the control module 406 will operate the control functions 420a - 420c in such a way that the steering angle of the steering function will cause the AV 100 to turn left, and the throttle and brake will cause the AV 100 to pause and wait for passing pedestrians or vehicles before making the turn.

[0094] Sample the driving scenario

[0095] Figure 5An example system 500 for sampling driving scenarios according to one or more embodiments. The system 500 includes a seed generator 501, a pseudo-random number generator 502, a scenario database 503, a scenario initializer 504, a simulator 505, a user interface (UI) 506, and a scenario sample database 507.

[0096] In an embodiment, the UI 506 can be a graphical user interface (GUI), text, or voice interface that allows a user to select a driving scenario from a plurality of driving scenarios stored in the scenario database 503. The user can also use the UI 506 to select one or more parameters from the scenario database 503 to randomly initialize the physical and mental states of one or more objects in the selected driving scenario. The user's input is received by the scenario initializer 504, which initializes the physical and mental states of one or more objects to be simulated by the simulator 505. In an embodiment, even if the exact parameters are not stored in the database 503, the UI 506 allows the user to create a scenario by specifying the physical and mental states of one or more objects and the road network (map).

[0097] As used herein, the "physical state" of an object includes, for example, the position, velocity, acceleration, direction or orientation, and object type (e.g., vehicle, pedestrian, cyclist) of the object. The "mental state" of an object refers to the mental state of the virtual driver of a vehicle, motorcycle, bicycle, or any other vehicle, or a pedestrian. Some examples of mental parameters include, but are not limited to: the driver's acceleration preference (e.g., preference for rapid acceleration from a stop position), preference for maintaining a specific distance from other objects (e.g., preference for tailgating), preference for a specific route, the driver's goal (e.g., reaching a destination quickly), tendency to use turn or gesture signals, and a politeness factor (e.g., a weight factor) that determines the extent to which the virtual driver is willing to inconvenience other drivers by adopting, for example, overly aggressive or overly passive driving styles in the driving scenario.

[0098] In an embodiment, the user may use the UI 506 to select a statistical distribution (e.g., normal distribution) to be used by the PRNG 502 to generate pseudo-random numbers according to the selected distribution. In an embodiment, the statistical distribution may be a joint probability distribution over two or more scenario parameters. The random numbers are used to randomly generate or assign the scenario parameters stored in the scenario database 503. For example, the random numbers may be real numbers within a specified range, and the parameters may be the acceleration of an object (e.g., a vehicle). In this example, the random numbers are used to randomly select an initial acceleration from a set of initial accelerations stored within the scenario database 504. In an embodiment, a true random number generator (e.g., a hardware RNG) seeded with a true random seed provided by, for example, hardware or physical phenomena may be used.

[0099] After initialization, the simulator 505 simulates the movement of the object in the map based on the initialized physical state and mental state to generate an object trace. For example, the simulator 505 may implement a dynamic model and equations of motion to generate an object trace during a simulation time period specified by the user, for example, via the UI 506. The user may also select a sample data rate via the UI 506. For example, the user may wish to sample the object trace at 1 Hz. The object trace is output by the simulator 505 and stored in the scenario sample database 507. In an embodiment, each stored sample includes at least a timestamp and the physical state (e.g., position, velocity, and acceleration) of each object in the driving scenario. If the object has a mental state that will also be stored along with the sample, the user may use the UI 506 to view and select samples from the scenario sample database 507.

[0100] In an embodiment, the simulator 505 determines whether a particular driving scenario is a "failed" driving scenario. Examples of "failed" scenarios include, but are not limited to: scenarios where two or more objects collide, or scenarios where the acceleration or deceleration value of one or more of the objects is higher or lower than one or more specified thresholds (e.g., excessive acceleration can cause a vehicle to lose control).

[0101] In an embodiment, before outputting a sample to the scenario sample database 507, each driving scenario is simulated forward in time for a specified number of time units so that one or more objects can traverse their respective trajectories without failure. For example, based on the randomized initial states of two or more objects, these objects may collide within the first few seconds of the simulation, resulting in a failed driving scenario. By allowing the simulation to run for a specified period of time (e.g., 2 - 3 seconds) before sampling, these failed scenarios can be avoided or numerically reduced.

[0102] In an embodiment, the object adheres to a rule book and / or traffic rules (e.g., stop at stop signs and traffic lights, drive within the posted speed limit).

[0103] In an embodiment, simulator 505 simulates any desired driving scenarios, which include but are not limited to sensor failure scenarios, adverse weather conditions, adverse road conditions, low or high object or traffic density, communication failure scenarios. The simulated driving scenarios can be for any desired road characteristics or conditions, which include but are not limited to: intersection scenarios, lane change scenarios, collision avoidance scenarios, etc. In an embodiment, the driving scenarios are generated based on at least one of a specified density of objects (e.g., urban vs rural), a specified day, and a specified time of day (e.g., to simulate rush hour traffic or to compare urban and rural performance).

[0104] In an embodiment, for a given scenario, the “physical state” of one or more objects is fixed, and the “mental state” of the virtual driver is varied, e.g., changing the expected route, courtesy, time headway to the vehicle ahead, etc.

[0105] Figure 6 Example system 600 is for training and tuning a machine learning model using sampled driving scenarios generated by system 500 according to one or more embodiments. System 600 includes scenario sample database 507, data splitter 601, training database 602a, tuning database 602b, machine learning model 603 (e.g., motion prediction model), tuning module 604, and AV log database 605.

[0106] In an embodiment, the scenario samples in scenario sample database 507 are split into training data 602a and tuning data 602b. In the training mode, machine learning model 603 is trained using training data 602a. Supervised, unsupervised, or reinforcement methods can be used to train and / or tune machine learning model 603. Machine learning model 603 includes but is not limited to: artificial neural networks, decision trees, support vector machines, regression analysis, Bayesian networks, and genetic algorithms. In an embodiment, the sampled driving scenarios are embedded in a pseudo-image such as a bird's-eye view (BEV) for training the machine learning model (e.g., training an image-based deep neural network).

[0107] In a tuning mode, the machine learning model 603 is tuned using tuning data 602b and / or AV log data from the database 605. The tuning module 604 tunes the machine learning model 603 through iterative optimization of the predicted loss function output by the machine learning model 603 and the ground truth data. For example, through iterative optimization of the loss function, the machine learning model 603 learns an optimal function that can be used to predict the output associated with a new input. The optimal function allows the machine learning algorithm to correctly determine the output for the tuning data 602b and / or AV log data. In an embodiment, the machine learning model 603 is a deep neural network, and the tuning module 604 uses stochastic gradient descent or an Adam optimizer that calculates the updated weights of the deep neural network to iteratively optimize the mean squared error (MSE) loss function. The trained machine learning model 603 is stored and subsequently used for inference in real-world autonomous driving, such as motion prediction for one or more of localization, planning, perception, and control tasks.

[0108] Example Processing

[0109] Figure 7 is a flowchart of a process 700 for sampling driving scenarios according to one or more embodiments. The process 700 can be implemented, for example, using the computer system described in reference Figure 3 above.

[0110] The process 700 begins by assigning a set of initial physical states to a set of objects in a map for a set of simulated driving scenarios, where the set of initial physical states is assigned according to one or more outputs of a random number generator (701). For example, a random number or pseudo-random number generator can be initialized with a seed and configured to generate random numbers or pseudo-random numbers that can be used to generate or assign initialization parameters for the physical and mental states of one or more objects. In an embodiment, for a given scenario, the "physical state" of one or more objects is fixed, and the "mental state" of the virtual driver varies, e.g., changing the expected route, courtesy, time headway to the front vehicle, etc.

[0111] The process 700 continues by using the initialized physical states and optionally the mental states of one or more objects to generate simulated driving scenarios (702). For example, dynamic models and equations of motion can be used to move the one or more objects in the map starting from the randomly initialized physical states of the one or more objects.

[0112] The process 700 continues by selecting a sample of the simulated driving scenarios (703). For example, a user can select driving scenario samples from the driving sample database 507 as described in reference Figure 6 above, and can also specify the data rate of the simulated data output.

[0113] Processing 700 continues to use the selected samples to train and / or tune a machine learning model (704). For example, as referenced Figure 6 it is possible to use driving scenario samples selected by a user via a user interface to train a deep neural network.

[0114] Processing 700 continues to use the trained and / or tuned machine learning model to operate a vehicle in an environment (705). For example, the trained deep neural network can be used by the perception module of the AV to infer the motion of one or more objects.

[0115] In the foregoing description, embodiments of the present invention have been described with reference to numerous specific details, which may vary depending on the implementation. Accordingly, the specification and drawings are to be regarded as illustrative rather than in a limiting sense. The sole and exclusive indication of the scope of the present invention, and what the applicant desires to be the scope of the present invention, is the literal and equivalent scope of the claims that are granted from this application in the specific form of the granted claims, including any subsequent amendments. Any definitions expressly set forth herein for terms to be included in such claims shall govern the meaning of such terms as used in the claims. Additionally, when the term "further comprises" is used in the foregoing specification or the appended claims, the text following this phrase can be additional steps or entities, or sub-steps / sub-entities of the previously recited steps or entities.

Claims

1. A method, comprising: using at least one processor to assign a set of initial physical states to a set of objects in a map for a set of simulated driving scenarios, wherein the set of initial physical states is assigned according to one or more outputs of a random number generator; using the at least one processor to generate the set of simulated driving scenarios in the map using the initial physical states of the objects in the set of objects; using the at least one processor to select a sample of the simulated driving scenarios; using the at least one processor to train a machine learning model using the selected sample; and using a control circuit to operate a vehicle in an environment using the trained machine learning model.

2. The method according to claim 1, wherein at least one object in the set of objects is a virtual vehicle, and the method further comprises: using the at least one processor to assign a mental state of a virtual driver of the virtual vehicle; and using the map, the initial physical states of the objects, and the mental state of the virtual driver of the virtual vehicle to simulate driving scenarios.

3. The method according to claim 2, wherein the mental state of the virtual driver includes the acceleration preference of the virtual driver.

4. The method according to claim 2, wherein the mental state of the virtual driver includes a preference for maintaining a gap between another virtual vehicle and at least one other object in the set of objects.

5. The method according to claim 2, wherein the mental state of the virtual driver includes a preference for a specific route.

6. The method according to claim 2, wherein the mental state of the virtual driver includes the goal of the virtual driver.

7. The method according to claim 2, wherein the mental state of the virtual driver includes a politeness factor for determining to what extent the virtual driver is willing to inconvenience other virtual drivers of other virtual vehicles in a driving scenario.

8. The method according to claim 1, wherein the initial physical states of the objects in the set of objects include an initial position and an initial acceleration, and the initial position and the initial acceleration are assigned according to different random numbers output by the random number generator.

9. The method according to claim 1, further comprising: using the at least one processor to determine one or more failed driving scenarios in a set of driving scenarios; and using the at least one processor to exclude the one or more failed driving scenarios from training the machine learning model.

10. The method according to claim 9, wherein the one or more failed driving scenarios include driving scenarios in which a collision occurs between two or more objects in the set of objects.

11. The method according to claim 9, wherein the one or more failed driving scenarios include driving scenarios in which the acceleration value or deceleration value of one or more objects in the set of objects is higher than or lower than one or more specified thresholds.

12. The method according to claim 1, wherein Generating the simulated driving scenario further includes: Using the at least one processor to predict each simulated driving scenario forward in time for a specified time period before selecting a driving scenario sample.

13. The method according to claim 1, wherein, The driving scenario includes traffic lights or traffic signs observed by one or more of the group of objects.

14. The method according to claim 1, wherein, The machine learning model is a deep neural network for object motion prediction.

15. The method according to claim 1, wherein, One or more of the group of objects includes at least one pedestrian.

16. The method according to claim 1, wherein, Each sampled driving scenario includes multiple timestamps of each object in the group of objects and associated positions, velocities, or accelerations.

17. The method according to claim 1, further including: Using the at least one processor to embed the sampled driving scenario into a pseudo-image; and Using the at least one processor to train the machine learning model using the pseudo-image.

18. The method according to claim 1, further including: Using the at least one processor to select a unique seed from a statistical distribution; and Using the at least one processor to initialize the random number generator using the unique seed.

19. The method according to claim 18, wherein, The statistical distribution is a joint distribution over driving scenarios.

20. The method according to claim 1, wherein, The driving scenario is generated based on a specified density of the objects in the group of objects.

21. A computer program product comprising a program that causes a computer to perform the method according to any one of claims 1 to 20.

22. A computer-readable storage medium storing a program that causes a computer to perform the method according to any one of claims 1 to 20.

Citation Information

Patent Citations

  • Physical model and machine learning combined method to simulate autonomous vehicle movement

    CN108139884A

  • Simulation driving training system and method

    CN109102734A