The present disclosure relates to a machine-learning based system for path planning and/or motion planning, and to a method of training a machine-learning based system for path and/or planning.
Autonomous driving systems typically include perception and planning modules that are isolated from each other. The perception module is typically responsible for detecting objects in the environment of a host vehicle. A prediction module receives the output of the perception module and predicts a future trajectory and position of detected objects. The result of both of the perception module and perception modules is output to a planning module that proposes a trajectory for the self-driving vehicle. In such an autonomous driving system, the uncertainty in one of the modules typically does not propagate properly through the system. This may be especially problematic when the different modules are designed by different development teams and the testing of sensitivity of one module to the errors of another module is operationally expensive in many cases, and some modules such as the path planner, may be more sensitive to the error of prediction module. Furthermore, the path planning is typically performed based on predefined costs by the designer which requires a lot of engineering work to become sufficiently robust. On the other hand, a lot of data is available for human drivers but most path planning strategies do not use data gathered from human drivers and instead relying on a simulator to generate training data. Training a simulator to output sensory data as training data and generate control commands or trajectories is complex and difficult to debug. For at least the foregoing reasons, improved system and methods of training autonomous driving systems are desirable.
The present disclosure discloses a machine-learning based system for path planning, and a method of training the machine-learning based system for path and/or motion planning (referred to hereinafter as machine-learning based planning system). The machine-learning based planning system and method of training the machine-learning based planning system of the present disclosure may be utilized by an autonomous device such as an autonomous vehicle. In preferred embodiments, the machine-learning based planning system is trained in an end-to-end manner (e.g. using end-to-end training techniques) to generate a machine-learning based planning system that performs end-to-end planning. End-to-end planning refers to path planning (or motion planning) which takes the input of various sensors, such as a LiDAR sensor, as input to a neural network which outputs a path or a trajectory for use by the vehicle control system of an autonomous vehicle. The machine-learning based planning system of the present disclosure comprises a number of modules (e.g., perception, prediction and planning) which are believed to make debugging of the system easier and the final output more interpretable. This configuration allows each module to be aware of the uncertainty and sensitivity of other modules. The machine-learning based planning system comprises a cost volume generator which generates a cost volume for a proposed path or trajectory, preferably an end-to-end cost volume, which may be trained in modular. Alternatively, the machine-learning based planning system may be trained in end-to-end manner (e.g. using end-to-end training techniques).
The disclosed methods of training a machine-learning based planning system may allow the vast quantity of data that is available from human drivers to be used to generate an end-to-end machine-learning based planning system. The disclosed machine-learning based planning system generates a path or trajectory for an autonomous vehicle which adapts to driving scenarios and deviates from what is experienced by the expert driver. In some embodiments, the machine-learning based planning system is modular in that it includes distinct perception, prediction and planning modules, and is capable of being trained in either module-by-module. In other embodiments, the machine-learning based planning system is an end-to-end machine-learning based planning system that has been trained end-to-end (e.g. using end-to-end training techniques). In still other embodiments, the machine-learning based planning system is coarsely trained module-by-module and fine-tuned with end-to-end training with the result than an error in one module may have a meaningful impact on other modules, and that uncertainty in one module may propagate through the machine-learning based planning system, providing a more comprehensive training and operation of the trained machine-learning based planning system. The machine-learning based planning system generates a cost volume based at least in part on predicted OGMs and optionally features from a reference map used in prediction of OGMs. The previously acquired information such as information from the reference map may be used to improve perception related modules and the cost volume generated. The machine-learning based planning system also may be trained using a training dataset comprising unlabeled training data.
End-to-end autonomous driving systems use the output of sensors (e.g., LiDAR, camera, sonar range finder, radar, among others) and use the sensor data as input to a neural network that outputs control signals (e.g., steering, braking and throttle, etc.) to a vehicle control system. Occupancy Grid Maps (OGMs) are commonly used to represent the environment surrounding an autonomous vehicle. An OGM may be generated from sensor data received from sensors of the autonomous vehicle (also referred to as observations) and represented as a grid of cells. Each cell in the grid represents a physical space in the environment, and each cell contains a value representing a determination as to whether the cell is occupied by an object based on sensor data (e.g., observations) received from the sensors of the autonomous vehicle, typically 0 in response to a determination that the cell is unoccupied or 1 in response to a determination that the cell is occupied.
The observations of the autonomous vehicle may not be fully clear for various reasons (e.g., sensor noise). Accordingly, in other examples the value of each cell in the OGM may represent a probability of each cell being occupied by an object based on sensor data received from the sensors of the autonomous vehicle. In such instances, the value contained in each cell corresponds to how likely the cell is occupied by an object, typically a value between 0 and 1 where 0 is unoccupied and 1 is occupied. The autonomous vehicle may use the OGM (e.g., as input for path planning) to determine a path for the autonomous vehicle to reach to a certain target or sweep a certain area inside the environment, for example. However, a single OGM typically represents the environment at a given time point (specifically, the time at which the observations were obtained by the sensors). Therefore, the path planning performed using the OGM may be valid only if it is assumed that the environment is static. This assumption does not hold for a dynamic environment in which objects are moving and particularly in a dynamic, unstructured environment where the moving objects do not necessarily follow a predefined trajectory.
The environment surrounding an autonomous vehicle is usually dynamic and unstructured. To account for the dynamic nature of the surrounding environment and provide accurate and reliable OGMs that may be used for efficient and safe path planning, the present disclosure uses an OGM prediction network to predict OGMs.
The present disclosure provides an OGM prediction system and related method that generates, at each time step in a defined time period, a predicted OGM for a next future time step based on an input OGM for a current time step. The input OGM may be a historical observed or a previously predicted OGM. The generated predicted OGMs may provide accuracy and reliability that is sufficient for a planning system of an autonomous vehicle to generate an efficient and safe planned path for the autonomous vehicle. For the purposes of the present disclosure, an efficient planned path is a planned path with a minimum amount of steering and change in the state of the autonomous vehicle (e.g., velocity, acceleration) to achieve a certain goal, such as a lane change.
A machine learning-based system (hereinafter “system”) is described in examples below, which includes a neural network that can generate predicted OGMs for an environment surrounding a moving autonomous vehicle (e.g., self-driving car). The system may include an encoder and decoder to handle large OGMs in acceptably short periods of time. The system includes a recurrent neural network (RNN), which may be any suitable RNN. An example RNN may have gated recurrent units (GRUs), long-short-term memory (LSTM) layers, or other suitable neural network architectures. The system may be capable of generating predicted OGMs recursively. The system may generate a corrective term or compensation term for an input OGM and generate a predicted OGM by applying a classifier on the summation of the corrective term and the input OGM. The system uses reference map features and a motion-flow information to generate the corrective term or compensation term for the input OGM in some examples. The generated corrective term may be used to identify patterns useful for classifying dynamic vs. static objects or classic object detection and tracking algorithms in some examples. Generally, the OGM prediction system and related method may be capable of distinguishing between static and dynamic objects in the environment. Advantageously, the system may not require training using a labeled dataset comprising observed OGMs to generate predicted OGMs.
In accordance with a broad aspect, the present disclosure describes a system for generating predicted occupancy grid maps (OGMs) for an environment in which an autonomous vehicle is operating, the system comprising: a first encoder configured to receive, at each time step in a defined time period, an input OGM for a current time step in the defined time period and extract OGM features from the input OGM, the input OGM being one of an observed OGM for the current time step and a previously-predicted OGM for the current time step; a recurrent neural network configured to predict, at each time step in a defined time period, a corrective term based on the OGM features, wherein the corrective term represents predicted change to the input OGM, and wherein the corrective term is applied to the input OGM to generate a corrected OGM for a next time step in the defined time period, the corrected OGM representing features corresponding to occupancy of the environment in a next time step; and a classifier for converting the corrected OGM to a predicted OGM, the predicted OGM representing occupancy of the environment in the next time step.
The system may further comprise a second encoder configured for extracting reference map features from a reference map, the reference map representing a priori information about the sensed environment. The recurrent neural network is configured to predict at each time step in a defined time period, the corrective term based on the OGM features and the reference map features.
The system may further comprise a motion-flow extractor for determining motion-flow between the input OGM and a previous OGM representing occupancy in a previous time step; and a third encoder for extracting motion-flow features from the motion-flow. The recurrent neural network is configured to predict, at each time step in a defined time period, the corrective term from the OGM features and the motion-flow features.
The recurrent neural network may be configured to predict, at each time step in a defined time period, the corrective term from the OGM features, the reference map features, and the motion-flow features.
The first encoder may be configured to reduce dimensionality of the OGM features.
The system may further comprise a decoder configured to increase a dimensionality of the corrective term to match a dimensionality of the input OGM.
The system may further comprise: a difference unit for calculating a difference between the input OGM and a previous input OGM representing occupancy of the sensed environment in a previous time step in the defined time period; and a third encoder for extracting motion-flow features from the difference. The recurrent neural network is configured to predict, at each time step in a defined time period, the corrective term based on the OGM features and the motion-flow features.
The system may further comprise a selector for selecting between the observed OGM and the previously-predicted OGM to use as the input OGM for the current time step, wherein the selector is configured to select the observed OGM during an initialization phase, and to select the previously-predicted OGM during a prediction phase.
The system may further comprise an output buffer for storing a set of OGMs including at least one of the input OGMs and the predicted OGMs, wherein output provided by the system is the set of OGMs.
The system may further comprise a sensor system configured to: receive sensor data about the sensed environment from one or more sensors; and generate the observed OGM based on the sensor data.
In accordance with another broad aspect, the present disclosure describes a method for generating predicted occupancy grid maps (OGMs) for an environment in which an autonomous vehicle is operating, the method comprising: receiving, at each time step in a defined time period, an input OGM for a current time step in the defined time period, the input OGM being one of an observed OGM for the current time step and a previously-predicted OGM for the current time step extracting, at each time step in the defined time period, OGM features from the input OGM; predicting, at each time step in the defined time period using a recurrent neural network, a corrective term based on the OGM features, wherein the corrective term represents a predicted change to the input OGM; applying, at each time step in the defined time period, the corrective term to the input OGM to generate a corrected OGM for a next time step in the defined time period, the corrected OGM representing features corresponding to occupancy of the environment for the next time step; converting, at each time step in the defined time period using a classifier, the correct OGM for the next time step to a predicted OGM for the next time step, the predicted OGM representing occupancy of the environment for the next time step; and outputting the predicted OGM.
Extracting the OGM features may comprise: reducing, at each time step in the defined time period using a first encoder, the extracted OGM features to reduce a dimensionality of the extracted OGM features so that the extracted OGM features have a different dimensionality than the input OGM; and predicting, at each time step in the defined time period using a recurrent neural network, the corrective term comprises increasing, using a decoder, a dimensionality of the corrective term output from the recurrent neural network to match a dimensionality of the input OGM.
The method may further comprise receiving reference map features, representing a priori information about the sensed environment, and predicting comprises predicting, at each time step in the defined time period using the recurrent neural network, the correct term based on the OGM features and the reference map features.
Receiving the reference map features may comprise: receiving a reference map representing the sensed environment; and extracting, using a second encoder, the reference map features from the reference map.
The method may further comprise determining motion-flow between the input OGM and a previous OGM representing occupancy in a previous time step, extracting, using a third encoder, to the motion-flow to extract motion-flow features from the motion-flow, and the predicting comprises predicting, at each time step in a defined time period, the corrective term using the recurrent neural network, based on the OGM features and the motion-flow features.
The method may further comprise calculating a difference between the input OGM and a previous input OGM representing occupancy in a previous time step in the defined time period, extracting, using a third encoder, motion-flow features from the difference, and the predicting comprises predicting, at each time step in the defined time period using the recurrent neural network, the corrective term based on the OGM features and the motion-flow features.
The method may further comprise in an initialization phase, selecting the observed OGM as the input OGM; and in a prediction phase, selecting the previously-predicted OGM as the input OGM.
The method may further comprise outputting at least the predicted OGM comprises outputting a set of OGMs including at least one observed OGM and at least one predicted OGM.
In accordance with another broad aspect, the present disclosure describes a non-transitory computer-readable medium comprising computer readable instructions which, in response to execution by a processor system of a host computing device, cause the computing device to: receive, at each time step in a defined time period, an input OGM for a current time step in the defined time period, the input OGM being one of an observed OGM for the current time step and a previously-predicted OGM for the current time step; extract, at each time step in the defined time period, OGM features from the input OGM; predict, at each time step in the defined time period using a recurrent neural network, a corrective term based on the OGM features, wherein the corrective term represents a predicted change to the input OGM; apply, at each time step in the defined time period, the corrective term to the input OGM to generate a corrected OGM for a next time step in the defined time period, the corrected OGM representing features corresponding to occupancy of the environment for the next time step; convert, at each time step in the defined time period using a classifier, the correct OGM for the next time step to a predicted OGM for the next time step, the predicted OGM representing occupancy of the environment for the next time step; and output the predicted OGM.
In accordance with another broad aspect of the present disclosure, there is provided a system, comprising: an occupancy grid map (OGM) prediction system which generates a sequence a predicted occupancy grid maps (OGMs) for T−T1 time steps based on a sequence of OGMs for 0-T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, and a trajectory. The system further comprises a cost volume generator which generates a cost volume for the sequence of predicted OGMs, the cost volume comprising a plurality of cost maps for T−T1 time steps, each cost map corresponding to a predicted OGM in the sequence of predicted OGMs and having the same dimensions as the corresponding predicted OGM, each cost map comprising a plurality of cells, each cell in the cost map representing a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function.
The system may further comprise a path planning system which generates a set of trajectories.
The system may further comprise a sensor system configured to receive sensor data about the sensed environment from one or more sensors, and generate a sequence of observed OGMs based on the sensor data.
The cost volume generator of the system may output the cost volume, for example, for further processing, to other components of the system, or to devices or other systems external to the system.
In accordance with another broad aspect of the present disclosure, there is provided a processing system comprising a processing device and a memory storing instructions which, when executed by the processing device cause the processing system to generate a sequence of predicted occupancy grid maps (OGMs) for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, and a trajectory. The processor is further configured to generate a cost volume for the sequence of predicted OGMs. The cost volume comprises a plurality of cost maps for T−T1 time steps. Each cost map corresponds to a predicted OGM in the sequence of predicted OGMs and has the same dimensions as the corresponding predicted OGM. Each cost map comprises a plurality of cells. Each cell in the cost map represents a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to: output the cost volume, for example, for further processing.
The cost volume may have a size W×H×Tpath, wherein W×H is the dimension of the predicted OGMs, wherein W is the width and H is the height of the predicted OGMs, wherein Tpath=T−T1.
The policy may be based on one or more predefined rules.
The one or more predefined rules may comprise one or more driving rules and/or one or more environmental rules.
The driving rules may comprise any one of more of vehicle collision avoidance, lane following, speed limit following, maintaining a threshold distance from other vehicles, or traffic law/rule following.
The environmental rules may comprise any one of more of remaining within a drivable area, remaining with lanes, object collision avoidance, maintaining a threshold distance from a perimeter of the drivable area, maintaining a threshold distance from lane markings, or maintaining a threshold distance from environmental objects.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to: generate a set of trajectories; generate a sequence of predicted OGMs and a cost volume for each trajectory in the set of trajectories; determine a cost of each trajectory in the set of the trajectories based on the corresponding cost volume; and select the trajectory with the lowest cost.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to: generate the set of trajectories based on a current position and a current velocity of the autonomous vehicle.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to: determine the cost of each trajectory in the set of the trajectories by determining a cost for each time step in each trajectory in the set of the trajectories in accordance with the corresponding cost map for the time step and summing the cost of each time step for each trajectory in the set of the trajectories.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate control signals in accordance with the selected trajectory. The control signals define one or more of a steering angle for a steering unit, a throttle value for a throttle unit and braking value for a braking unit.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to send the control signals to an electromechanical system, wherein the control signals are configured to cause the electromechanical system to control movement of a host vehicle in accordance with the control signals.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate the sequence of predicted OGMs from a sequence of observed OGMs.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate the sequence of predicted OGMs based on features extracted from the observed OGMs.
The processing system may further comprise: a sensor system configured to: receive sensor data about the sensed environment from one or more sensors; and generate the sequence of observed OGMs based on the sensor data.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate the sequence of predicted OGMs based on features extracted from the reference map.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate the sequence of predicted OGMs based on determined motion-flow between the observed OGMs and previous OGMs.
The memory of the processor system may store further instructions which, when executed by the processing device cause the processing system to generate the sequence of predicted OGMs based on features extracted from the determined motion-flow between the observed OGMs and previous OGMs.
In accordance with another broad aspect of the present disclosure, there is provided a method comprises generating a sequence of predicted occupancy grid maps (OGMs) for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, and a trajectory. The method further comprises generating a cost volume for the sequence of predicted OGMs. The cost volume comprises a plurality of cost maps for T−T1 time steps. Each cost map corresponds to a predicted OGM in the sequence of predicted OGMs and has the same dimensions as the corresponding predicted OGM. Each cost map comprises a plurality of cells. Each cell in the cost map represents a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function. The method may be used for path planning such as end-to-end path and/or motion planning.
In accordance with another broad of the present disclosure, there is provided a non-transitory machine readable medium having tangibly stored thereon executable instructions. The executable instructions, in response to execution by a processing unit, cause the processing unit to generate a sequence of predicted occupancy grid maps (OGMs) for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, and a trajectory. The executable instructions, in response to execution by a processing unit, further cause the processing unit to generate a cost volume for the sequence of predicted OGMs. The cost volume comprises a plurality of cost maps for T−T1 time steps. Each cost map corresponds to a predicted OGM in the sequence of predicted OGMs and has the same dimensions as the corresponding predicted OGM. Each cost map comprises a plurality of cells. Each cell in the cost map represents a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function.
In accordance with another broad aspect of the present disclosure, there is provided a method, comprising: generating a sequence of predicted occupancy grid maps (OGMs) for a set of trajectories and an expert trajectory for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, the set of trajectories and the expert trajectory; generating by a neural network a cost volume for the sequence of predicted OGMs for each trajectory in the set of trajectories and the expert trajectory, each cost volume comprise a plurality of cost maps for T−T1 time steps, each cost map corresponding to a predicted OGM in the sequence of predicted OGMs and having the same dimensions as the corresponding predicted OGM, each cost map comprising a plurality of cells, each cell in the cost map representing a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function; determining an imitation cost for each trajectory in the set of trajectories by summing an imitation cost of each point for each time step; determining an imitation loss for the trajectory with a lowest imitation cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the state of the cells in the predicted OGM for the expert trajectory; determining an environmental cost for each trajectory in the set of trajectories by summing an environmental cost of each point for each time step; determining an environmental loss for the trajectory with a lowest environmental cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the reference map; determining whether a combination of the loss functions for the imitation loss and the environmental loss are below a threshold; and updating parameters of the neural network in response to a determination that the imitation loss and environmental loss is not below a threshold.
In accordance with another broad aspect of the present disclosure, there is provided a computing device comprising a processor configured to: generate a sequence of predicted occupancy grid maps (OGMs) for a set of trajectories and an expert trajectory for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, the set of trajectories and the expert trajectory; generate by a neural network a cost volume for the sequence of predicted OGMs for each trajectory in the set of trajectories and the expert trajectory, each cost volume comprise a plurality of cost maps for T−T1 time steps, each cost map corresponding to a predicted OGM in the sequence of predicted OGMs and having the same dimensions as the corresponding predicted OGM, each cost map comprising a plurality of cells, each cell in the cost map representing a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function; determine an imitation cost for each trajectory in the set of trajectories by summing an imitation cost of each point for each time step; determine an imitation loss for the trajectory with a lowest imitation cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the state of the cells in the predicted OGM for the expert trajectory; determine an environmental cost for each trajectory in the set of trajectories by summing an environmental cost of each point for each time step; determine an environmental loss for the trajectory with a lowest environmental cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the reference map; determine whether a combination of the loss functions for the imitation loss and the environmental loss are below a threshold; and update parameters of the neural network in response to a determination that the imitation loss and environmental loss is not below a threshold.
In accordance with another broad of the present disclosure, there is provided a non-transitory machine readable medium having tangibly stored thereon executable instructions. The executable instructions, in response to execution by a processing unit, cause the processing unit to generate a sequence of predicted occupancy grid maps (OGMs) for a set of trajectories and an expert trajectory for T−T1 time steps based on a sequence of OGMs for 0−T1 time steps, a reference map of an environment in which an autonomous vehicle is operating, the set of trajectories and the expert trajectory; generate by a neural network a cost volume for the sequence of predicted OGMs for each trajectory in the set of trajectories and the expert trajectory, each cost volume comprise a plurality of cost maps for T−T1 time steps, each cost map corresponding to a predicted OGM in the sequence of predicted OGMs and having the same dimensions as the corresponding predicted OGM, each cost map comprising a plurality of cells, each cell in the cost map representing a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function; determine an imitation cost for each trajectory in the set of trajectories by summing an imitation cost of each point for each time step; determine an imitation loss for the trajectory with a lowest imitation cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the state of the cells in the predicted OGM for the expert trajectory; determine an environmental cost for each trajectory in the set of trajectories by summing an environmental cost of each point for each time step; determine an environmental loss for the trajectory with a lowest environmental cost in accordance with a loss function which determines the imitation loss based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the reference map; determine whether a combination of the loss functions for the imitation loss and the environmental loss are below a threshold; and update parameters of the neural network in response to a determination that the imitation loss and environmental loss is not below a threshold.
Other aspects and features of the present disclosure will be apparent to persons skilled in the art having regard to the attached drawings and the following description.
The present disclosure is made with reference to the accompanying drawings, in which embodiments are shown. However, many different embodiments may be used, and thus the description should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same elements, and prime notation is used to indicate similar elements, operations or steps in alternative embodiments. Separate boxes or illustrated separation of functional elements of illustrated systems and devices does not necessarily require physical separation of such functions, as communication between such elements may occur by way of messaging, function calls, shared memory space, and so on, without any such physical separation. As such, functions need not be implemented in physically or logically separated platforms, although they are illustrated separately for ease of explanation herein. Different devices may have different designs, such that although some devices implement some functions in fixed function hardware, other devices may implement such functions in a programmable processor with code obtained from a machine-readable medium. Lastly, elements referred to in the singular may be plural and vice versa, except wherein indicated otherwise either explicitly or inherently by context.
Some examples of the present disclosure are described in the context of autonomous vehicles. However, the methods and systems disclosed herein may also be suitable for implementation outside of autonomous vehicles, for example in non-vehicular autonomous, semi-autonomous devices, and non-autonomous devices (e.g., user-controlled devices). For example, any system or device that senses objects in a surrounding environment may benefit from the examples described here. Although the present disclosure describes uses for path planning, examples disclosed herein may have applications outside of path planning, and may be useful for mobile or non-mobile devices. Further, examples of the present disclosure may be implemented in image processing devices, such as workstations or other computing devices not related to autonomous machines (e.g., image processing systems).
Although examples described herein refer to a car as the autonomous vehicle, the teachings of the present disclosure may be implemented in other forms of autonomous or semi-autonomous vehicles including, for example, trams, subways, trucks, buses, watercraft, aircraft, ships, drones (also called unmanned aerial vehicles (UAVs)), warehouse equipment, construction equipment or farm equipment, and may include vehicles that do not carry passengers as well as vehicles that do carry passengers. The methods and systems disclosed herein may also be suitable for implementation in non-vehicular devices, for example autonomous vacuum cleaners and lawn mowers.
Example Autonomous Vehicle
The vehicle 100 includes a sensor system 110, an OGM generator 121, a processing unit 170, an OGM prediction system 120, a path generator 130, a trajectory generator 132, a vehicle control system 140, a cost volume generator 160, and an electromechanical system 150, for example. The OGM prediction system 120, path generator 130, and trajectory generator 132 and cost volume generator 160 may form a machine-learning based planning system 900. Although the OGM prediction system 120 is shown as part of the machine-learning based planning system 900, in alternatives the OGM prediction system 120 may be a distinct system separate from the machine-learning based planning system 900. The machine-learning based planning system 900 may be used for path planning and/or motion planning. The machine-learning based planning system 900 may be implemented by software modules comprising instructions executable by a processing device 172 of the processing unit 170 of the autonomous vehicle 100. The OGM prediction system 120 may be a machine-learning based system and may be implemented in different ways such as a neural network. Example embodiments 120a, 120b, 120c are described below. The path generator 130, trajectory generator 132 and/or cost volume generator 160 may also be machine-learning based systems such as a neural network. Other systems and components may be included in the vehicle 100 as appropriate. Various systems and components of the vehicle may communicate with each other, for example through wired or wireless communication. For example, the sensor system 110 may communicate with the OGM generator 121 and the OGM generator 121 may communicate with the machine-learning based planning system 900 (which includes the OGM prediction system 120, path generator 130, and trajectory generator 132); the path planning system 130 may communicate with the vehicle control system 140; the vehicle control system 140; and the vehicle control system 140 may communicate with the electromechanical system 150.
The sensor system 110 receives information collected about the internal and/or external environment of the vehicle 100 by various sensing units. In the example shown, the sensor system 110 includes a detection and ranging (DAR) unit 111, a camera 116 and a Global Navigation Satellite System (GNSS) unit such as a global positioning system (GPS) unit 118 for collecting information about the external environment of the vehicle 100. The DAR unit 111 unit comprises one or both of a radar unit 112 and a Light Detection and Ranging (LIDAR) unit 114. The sensor system 110 may include other sensing units, such as a temperature sensor, precipitation sensor or microphone, among other possibilities.
The camera 116 may capture static images and/or a video comprising a set of images, for example, and may generate image data representative of the captured static image and/or the images of the video. The image data may be two-dimensional (2D) image data. Each pixel in the 2D image may encode red, green, blue (RGB) intensity values. The LIDAR unit 114 may include one or more LIDAR sensors configured to capture information in a wide view (e.g., 360° view) about the vehicle 100. The LIDAR sensor(s) of the LIDAR unit 114 may capture three-dimensional (3D) information about the external environment, which may be encoded in the form of a set of data points in 3D space (e.g., a 3D point cloud), where each data point in the set of data points in 3D space represents the 3D coordinates (e.g., x, y and z values in meters) of a sensed object in the 3D space (e.g., the point of origin from which light emitted by the LIDAR sensor is reflected from the object). The data points in a 3D point cloud may be irregularly spaced, depending on the external environment. In some examples, in addition to 3D coordinates, each data point in the set of data points may also contain other information, such as intensity of reflected light or time of detection.
The various sensing units 112, 114, 116, 118 may collect information about the local external environment of the vehicle 100 (e.g., any immediately surrounding obstacles) as well as information from a wider vicinity (e.g., the radar unit 112 and LIDAR unit 114 may collect information from an area of up to 100 m radius or more around the vehicle 100) and provide sensor data indicative of the collected information to an OGM generator 121 which generates an OGM based on received sensor data. The GPS unit 118 of the sensor system 110 may also collect information about the position and orientation of the vehicle 100 relative to a frame of reference and provide sensor data indicative of the collected information about the position and orientation of the vehicle 100 relative to a frame of reference to the OGM generator 121. The sensor system 110 may also include other sensors (not shown) that collect further information about the vehicle 100 itself and provide sensor data indicative of the collected information about the vehicle 100 itself to the OGM generator 121. In such a case, the vehicle 100 may itself be considered part of the sensed environment. For example, the sensor system 110 may receive sensor data indicative of collected information about the vehicle 100 itself from other sensing units (not shown), such as accelerometers, speedometer, odometer and/or inertial measurement unit, which may or may not be part of the sensor system 110. The sensor system 110 may include a processor (not shown) that processes the sensor data indicative of collected information about the external environment of the vehicle 100 and the vehicle 100 itself to determine the state of the vehicle 100, such as linear speed, angular speed, acceleration and tire grip of the vehicle 100. The sensor system 110 may repeatedly (e.g., in regular intervals) receive sensor data from its sensing units 112, 114, 116, 118 and other sensing units in real-time. The sensor system 110 may in turn provide sensor data in real-time or near real-time to other components of the vehicle 100. The sensor system 110 also includes a reference map 119 (also known as a feature map), which may be a reference map that represents known information about the surrounding environment. For example, the reference map 119 may be received from an external reference database (e.g., retrieved based on the vehicle's position, as determined using the GPS unit 118). The reference map 119 is typically an encoded map readable by the sensor system 110, OGM prediction system 120 and other systems of the vehicle 100.
The sensor system 110 communicates with the OGM prediction system 120 to provide observed OGMs. The sensor system 110 receives sensor data (e.g., observations) from the various sensing units, generates an observed OGM from the received sensor data (e.g., observations), and provides the observed OGM to the OGM system 120. In the present disclosure the OGM prediction system 120 is configured to make predictions for one or number OGMs, representing the surrounding environment, from one (or a series of) observed OGM(s) received from the sensor system 110 as described in further detail below. In this example, the OGM prediction system 120 includes a recurrent neural network (RNN) 122, a motion-flow (MF) extractor 124, an occupancy grid map (OGM) classifier 126, an encoder 128 and a decoder 129. In some examples, the encoder 128 and the decoder 129 may be implemented together as an encoder/decoder. The RNN 122, MF extractor 124, OGM classifier 126, encoder 128 and decoder 129 operate together to generate predicted OGMs from observed OGMs, as discussed further below.
Although the OGM generator 121 is shown as part of the sensor system 110. In yet alternative embodiments, the OGM generator 121 may be part of the OGM prediction system 120. In this alternative embodiment, the sensor system 110 provides sensor data (observations) received from the sensing units 112, 114, 116, 118, as well as data from a reference map, including image data and 3D data, to the OGM prediction system 120. The OGM generator 121 included in the OGM prediction system 120 generates observed OGMs from the received sensor data, and provides the observed OGMs to selectors 302a, 302b as described in further detail below.
The OGM prediction system 120 may be implemented using software, which may include any number of independent or interconnected software modules. For example, in
The software modules of the OGM prediction system 120 includes machine readable instructions which may be executed by one or more processing units of a vehicle controller (not shown) of the vehicle 100. The processing unit may be central processing unit (CPU), a graphic processing unit (GPU), a tensor processing unit (TPU), a neural processing unit (NPU), and the like. The OGM prediction system 120 may repeatedly (e.g., in regular intervals) receive observed OGMs from the OGM generator 121 of the sensor system 110 and generate predicted OGMs in real-time or near real-time. Alternatively, the OGM prediction system 120 may receive observed OGMs from storage 178.
Sensor data (e.g., observations) from the sensor system 110 and the predicted OGMs output from the OGM prediction system 120 may be provided to the path generator 130, and trajectory generator 132. The machine-learning based planning system 900 carries out path planning and/or motion planning for the vehicle 100 with the path generator 130 generating and outputting possible (proposed) paths and the trajectory generator 132 generating and outputting proposed trajectories. The machine-learning based planning system 900 may output a path or trajectory depending on a mode of the autonomous vehicle or embodiment of the present disclosure.
In a path planning mode of the autonomous vehicle or embodiment of the present disclosure, the machine-learning based planning system 900 may plan a path for the vehicle 100 to travel from a starting point to a target destination using information from the sensor system 110 such as point cloud data from the DAR unit 111, image data from the camera 116. GPS information from the GPS unit 118, feature information extracted from the reference map 119 and/or OGMs from the OGM generator 121. The machine-learning based planning system 900 may be implemented as one or more software modules or control blocks that include machine readable instructions that are executable by one or more processing units in the vehicle 100. The output from the machine-learning based planning system 900 may include data defining one or more planned paths for the vehicle 100 to travel. The path planning carried out by the machine-learning based planning system 900 is performed in real-time or near real-time, to enable the vehicle 100 to be responsive to real-time changes in the sensed environment. Output from the machine-learning based planning system 900 may be provided to the vehicle control system 140.
In a motion planning mode of the autonomous vehicle or alternative embodiment of the present disclosure, the machine-learning based planning system 900 may plan a trajectory for the vehicle 100. A trajectory is a path and information regarding how to traverse the path with respect to time, such as velocity information which may be defined by a velocity profile. Alternatively, distance (path) and time information which can be used to determined velocity may be output instead of a velocity profile. A trajectory can be used by a vehicle control system 140 to generate control signals which define one or more of a steering angle for a steering unit 142, a throttle value for a throttle unit 146 and braking value for a braking unit 144. The control signals are configured so that in response to the control signals being sent to an electromechanical system 150 and processed thereby, the control signals cause the electromechanical system 150 (e.g., engine 152, transmission 154 and wheels 156) to control the movement of the vehicle 100 in accordance with the control signals.
The cost volume generator 160 generates a cost volume for predicted OGMs which, in combination with a set of proposed trajectories from the trajectory generator 132, may be used to select a trajectory. The selected trajectory may be used by the vehicle control system 140 to generate control signals which may be sent to the electromechanical system 150 to control the vehicle so that the vehicle follows, or attempts to follow, the selected trajectory. The cost volume generator 160 is described in more detail below. Alternatively, the cost volume generator 160 may generate a cost volume for predicted OGMs which, in combination with a set of proposed paths from the path generator 130, may be used to select a path.
The vehicle control system 140 serves to control operation of the vehicle 100. The vehicle control system 140 may be used to provide full, partial or assistive control of the vehicle 100. The vehicle control system 140 may serve to fully or partially control operation of the electromechanical system 150, when the vehicle 100 is operating autonomously or semi-autonomously, based on a planned path or trajectory from the machine-learning based planning system 900. Information from the sensor system 110 and/or the data analysis system 120 may also be used by the vehicle control system 140. In this example, the vehicle control system 140 includes a steering unit 142, a brake unit 144 and a throttle unit 146. Each of these units 142, 144, 146 may be implemented as separate or integrated software modules or control blocks within the vehicle control system 140. The units 142, 144, 146 generate control signals to control the steering, braking and throttle, respectively, of the vehicle 100. The vehicle control system 140 may include additional components to control other aspects of the vehicle 100 including, for example, control of turn signals and brake lights.
The electromechanical system 150 receives control signals from the vehicle control system 140 to operate the mechanical components of the vehicle 100. The electromechanical system 150 effects physical operation of the vehicle 100. In the example shown, the electromechanical system 150 includes an engine 152, a transmission 154 and wheels 156. The engine 152 may be a gasoline-powered engine, an electricity-powered engine, or a gasoline/electricity hybrid engine, for example. Other components may be included in the electromechanical system 150, including, for example, turn signals, brake lights, fans and windows.
The vehicle 100 may include other systems that are not shown, including, for example, a learning-based computer vision system that is trained to detect and identify objects in the external environment, for example to detect and identify a pedestrian or another car, using data received from the radar unit, the LIDAR unit 114, and/or the camera unit 116, a user interface system and a wireless communication system (e.g., including an antenna). These other systems may also provide input to and/or receive output from the above-described systems. The vehicle 100 may communicate with an external system, for example the vehicle 100 may communicate with an external map database to receive the reference map 119. The vehicle 100 may also communicate with a network, for example a vehicle network that enables communication among autonomous, semi-autonomous or non-autonomous vehicles.
The sensor system 110, the OGM prediction system 120, the machine-learning based planning system 900 and the vehicle control system 140 may be individually or in combination be implemented, at least in part, in one or more processing units of the vehicle 100.
The processing device(s) 172 of the processing unit 170 may be a processor, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a dedicated logic circuitry, or any combination thereof. The input/output (I/O) interface(s) 174, which may enable interfacing with one or more appropriate input device(s) 184 and/or output device(s) 186. The network interface(s) 176 is/are configured for wired or wireless communication with a network (e.g., an intranet, the Internet, a P2P network, a WAN and/or a LAN) or other node. The network interface(s) 176 may include wired links (e.g., Ethernet cable) and/or wireless links (e.g., one or more antennas) for intra-network and/or inter-network communications.
The storage unit(s) 178 may include a mass storage unit such as a solid state drive, a hard disk drive, a magnetic disk drive and/or an optical disk drive. The non-transitory memories(s) 180 may include a volatile or non-volatile memory (e.g., a flash memory, a random access memory (RAM), and/or a read-only memory (ROM)). The non-transitory memory(ies) 180 may store instructions for execution by the processing device(s) 172, such as to carry out examples described in the present disclosure. The memory(ies) 180 may store other software instructions, such as for implementing an operating system and other applications/functions. In some examples, one or more data sets and/or modules may be provided by an external memory (e.g., an external drive in wired or wireless communication with the processing unit 170) or may be provided by a transitory or non-transitory computer-readable medium. Examples of non-transitory computer readable media include a RAM, a ROM, an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a CD-ROM, or other portable memory storage.
The processing unit 170 may also include a bus 182 providing communication among components of the processing unit 170, including the processing device(s) 172, I/O interface(s) 174, network interface(s) 176, storage unit(s) 178 and/or memory(ies) 180. The bus 182 may be any suitable bus architecture including, for example, a serial bus architecture or a parallel bus architecture. The processing unit 170 may also include an external or peripheral bus 188 providing communication among I/O interface(s) and the input and output device(s) 186, 188.
In
OGM Prediction System
As mentioned above, OGMs may be used to represent the external environment surrounding an autonomous device such as an autonomous vehicle. An OGM may be generated by the OGM generator 121 using sensor data (e.g. observations) received from one or more of the sensing units 112, 114, 116, 118. In some example embodiments, an OGM may be generated by the OGM generator 121 using sensor data received from the LiDAR unit 114.
An occupied cell 202 may be considered an obstacle to be avoided, during path planning. As will be appreciated, in the case of a moving vehicle 100, the ego motion of the vehicle 100 also affects the information sensed from the environment, and this ego motion should be taken into account. Further, in real-world applications, the environment may be dynamically changing and may be unstructured (that is, containing objects with undefined motion trajectories). For an environment that is dynamically changing and unstructured, the ability to predict future OGMs is useful.
To help appreciate the present disclosure, some approaches to OGM prediction are now discussed. Dequaire, et al. (Deep tracking in the wild: End-to-end tracking using recurrent neral networks, The International Journal of Robotics Research, 2017, Vol 37, pp. 495-512), describe an approach that uses a two stage process. In the first stage, a convolutional recurrent neural network (ConvRNN) receives observed OGMs to initialize its state. In the second stage, which is the prediction phase, the same network receives blank OGMs and uses its state to predict the future OGMs. However, this approach is likely computationally too expensive to be used in real-time when applied to high resolution OGMs, such as for application in an autonomous vehicle. As well, this approach may not sufficiently compensate for the ego motion of the vehicle for multi-step prediction. Also, this approach may have difficulties in extending the prediction of OGMs more than a few frames. Another approach is discussed by Nico, et al. (Deep Object Tracking on Dynamic Occupancy Grid Maps Using RNNs, s.1, arXiv preprint arXiv:1805.08986, 2018), which employs Dynamic OGMs (DOGMa), which are OGMs augmented with Dempster-Shafer masses for free and occupied cells. An automatic label generation method is used to generate bounding boxes as labels for training their RNN. However, this approach uses a neural network architecture which is computationally too expensive to run for a multi-step prediction. Further, this approach is described only for sensing the environment from a stationary platform, such as a stationary vehicle, and does not compensate for the ego motion of the vehicle.
The present disclosure describes a machine learning-based system for OGM prediction (e.g., the OGM prediction system 120) that aims to address one or more of the drawbacks discussed above. The OGM prediction system 120 generates, at each time step in a defined time period, a predicted OGM (e.g., one predicted OGM) for the next time step in the defined time period based on an input OGM for a current time step in the defined time period. The input OGM for the current time step may be a historical observed OGM obtained from a set of historical observed OGMs (e.g., a set comprising about 10 observed OGMs generated by the OGM generator 121 from sensor data received from one or more of the sensing units 112, 114, 116, 118) or a previously-predicted OGM (e.g., a predicted OGM previously generated by the OGM prediction system 120 for the current time step in the defined time period). This approach may be acceptable in situations where large, abrupt changes in the environment are not expected (e.g., a vehicle traveling at a typical speed of 60 km/h is not expected to come to a complete stop within one second).
The OGM prediction system 120 includes encoder/decoder(s) so that large observed OGMs may be processed in a relatively short period of time (e.g., equal to or faster than the frequency for obtaining one frame of sensor data using typical sensors on an autonomous vehicle). In the example discussed below, the OGM prediction system 120 includes a RNN. The RNN may be any suitable RNN, such as a RNN that has a series of gated recurrent units (GRUs) and/or long-short-term memory (LSTM) layers. In some examples, instead of the RNN, the OGM prediction system 120 may include a machine learning module that implements a learned model that generates predicted OGMs from an input OGM. The OGM prediction system 120 receives as input an OGM, and generates a predicted OGM based on the input OGM for each time step in a pre-defined time period. In some examples, the OGM prediction system 120 may also use information about the motion-flow of the OGM and information about the environment, to generate a predicted OGM. In the OGM prediction system 120, a corrective term (also referred to as a compensation term or compensation matrix) is predicted at each time step. A predicted OGM is then the generated by applying a classifier on the sum of the corrective term and the input OGM. Patterns may be determined based on the corrective term, and such patterns may be useful for other tracking algorithms. The OGM prediction system 120 may not require a labeled training dataset for learning the model, and may work with observed OGMs generated directly from sensor data as described above. In various examples, the OGM prediction system 120 has been found to accurately distinguish between static and dynamic objects in the environment.
To assist in understanding the present disclosure, some notations are first discussed. The present disclosure discusses OGMs that are either observed or predicted over time, thus is concerned with a time-series. A time-series is a mathematical sequence. A sequence consists of two or more values where the order of values matters. Sampling a continuous signal at a given frequency results in a discrete time signal that is a time-series. In this disclosure, the index k is used to indicate the discrete time step, that is, the order in the time-series. Note that k does not indicate the absolute or relative time. For instance, consider a signal that is sampled at 10 Hz, then the samples (also referred to as time steps) are partitioned into segments of 20 time steps each. Each segment thus corresponds to 2 seconds of the original signal, and for each segment k=0, 1, 2, . . . , 19.
As discussed above, the OGM prediction system 120 generates, at each time step in a defined time period, a predicted OGM for a next time step in a defined time period based on an input OGM for a current time step in the defined time period. The input OGM is a historical observed OGM for the current time step in an initialization phase of the defined time period and a predicted OGM for current time step in a prediction phase of the defined time period. Thus, a run of the OGM prediction system 120 may be considered to have two phases: the initialization phase and the prediction phase. The initialization phase includes τo time steps and the prediction phase includes τp time steps. For example, in a defined time period having 20 time steps at a frequency of 10 Hz, the initialization phase may be 1 second in length (e.g. the initialization phase may have a time duration of 1 second) with τo=10 (e.g., 10 time steps) and the prediction phase may be 1 second in length (e.g. the observation phase may have a time duration of 1 second) with τp=10 (e.g., 10 time steps). It should be understood that this is an example only. The initialization phase may have a different length of time (e.g., time duration) than the prediction phase, and the initialization phase may have a different number of time steps than the prediction phase. In some examples, the time steps during the initialization phase may have a different frequency than time steps during the prediction phase.
In general, a single run of the OGM prediction system 120 generates, at each time step in the initialization phase of the defined time period, a predicted OGM for the next time step in the defined time period based on a historical observed OGM for the current time step in the defined time period, and generates, at each time step in the prediction phase of the defined time period, a previously-predicted OGM (e.g., a predicted OGM previously generated for the current time step in the defined time period). The historical observed OGM may be obtained from a set of observed OGMs from a defined previous time period (having one or more time steps, and including a current time step). Each run of the OGM prediction system 120 includes historical observed OGMs and predicted OGMs. If the OGM prediction system 120 is used to provide predicted OGMs in real-time (e.g., for real-world implementation in an autonomous vehicle, such as vehicle 100), a single run of the OGM prediction system 120 may be completed at or faster than the frequency at which observed OGMs are generated. The output from a single run of the OGM prediction system 120 is a plurality of OGMs, including the one or more historical observed OGMs and predicted OGMs over a defined time period that includes past and future defined time periods. In the example where the OGM prediction system 120 generates predictions in real-time, the output is a set of OGMs that includes one or more historical observed OGMs (for a defined number of previous time steps up to the current time step) and also includes one or more predicted OGMs (for a defined number of future time steps, starting from the time step immediately after the current time step). The outputted set of OGMs may be used by a path planning system of an autonomous vehicle, such as machine-learning based planning system 900 of vehicle 100. Because the outputted set of OGMs includes both past OGMs (e.g., historical observed OGMs) and future OGMs (e.g. predicted OGMs), the path planning that is performed based on this set of OGMs may thus be better able to take into account the dynamic and unstructured nature of the surrounding environment. In other examples, the OGM prediction system 120 may be used outside of an autonomous vehicle.
During the initialization phase, the OGM prediction system 120 generates, at each time step, a predicted OGM for the next time step based on a historical observed OGM for the current time step. The historical observed OGM may be received from, for example, the sensor system 110, a buffer storing a set of historical observed OGMs, or a database storing the set of historical observed OGMs. A historical observed OGM may be obtained using a variety of methods. For example, an observed OGM may be generated by an OGM generator 121 of the sensor system 110 using sensor data received from one or more of the sensing units 112, 114, 116, 118. Any suitable method of obtaining an OGM may be used. It may be noted that the predicted OGMs generated by the OGM prediction system 120 may be qualitatively dependent on the observed OGMs (e.g., in terms of resolution and frequency). The OGM prediction system 120 generates predicted OGMs that are of the same size as the historical observed OGMs. Further, the predicted OGMs may correspond to the same frequency at which the observed OGMs are obtained (although, as discussed above, the predicted OGMs may be generated faster than this frequency). For example, if the observed OGMs are at 10 Hz (that is, a new observed OGM is obtained every 100 ms), then each predicted OGM generated based on the new observed OGM by the OGM prediction system 120 corresponds to time steps at 100 milliseconds intervals.
To formally and mathematically distinguish between the initialization phase and the prediction phase, a state flag (also referred to as “eyes-state”) may be used. The state flag at each time step is either a 0 (indicating the prediction phase, or an “eyes-closed” state) or a 1 (indicating the observation phase, or an “eyes-opened” state). The state flag is a function of the time step k and in this disclosure is denoted by δ1; where:
For the example of 20 time steps with τo=10 and τp=10, the state flag is defined as:
Each run of the OGM prediction system 120 iterates through all k time steps. In the example of 20 time steps evenly split between the initialization phase and the prediction phase, a single run of the OGM prediction system 120 generates, at each of the first 10 time steps, a predicted OGM for the next time step based on a historical observed OGM for the current time step obtained from the set of observed OGMs, and generates, at the each of the next 10 time steps, a predicted OGM for the next time step based on a previously-predicted OGM for the current time step.
Using the notation introduced above, an example embodiment of the OGM prediction system 120a will now be discussed in detail with respect to
An input to the OGM prediction system 120a is the observed OGM ok*, which may be generated in real-time based on sensor data (e.g., observations) by the OGM generator 121 of the sensor system 110 and/or which may be retrieved from an internal or external database. The observed OGM ok* may be represented as a tensor, having a depth of one or more. The depth represents the number of channels. In the case of the observed OGM ok*, a tensor of depth one may be used to carry information representing the occupancy of each cell. Additional channels may be used to carry further information for each cell, such as the class label assigned for each cell or the velocity of the object in each cell.
Another input to the OGM prediction system 120a is a reference map Mk*, representing known features or a priori knowledge about the surrounding environment. The reference map Mk* may be retrieved from a reference database (e.g., an external map database). Although the reference map Mk* is shown as being indexed to the time step k, the reference map Mk* may be expected to include relatively static information about the environment (e.g., location of known roads in the environment), and the same reference map may be used for all time steps in a single run of the OGM prediction system 120a without having to retrieve or update the reference map for each time step. The reference map Mk* may be represented as a tensor, having a channel depth of one or more. For example, where the reference map Mk* is mainly used to indicate on-road and off-road areas, a tensor depth of one channel may be sufficient. Additional channels may be used to provide further information about the environment, for example to indicate sidewalk areas or cyclist lanes, among other possibilities. Where appropriate, the reference map Mk* may be preprocessed (e.g., scaled, resized and/or cropped) to match the size and resolution of the observed OGM ok* .
In this example OGM prediction system 120a, OGM predictions are generated based on features fkm extracted from the reference map Mk* , features fko extracted from the OGM (observed or predicted) at each time step, and features fkp extracted from a motion-flow μk of the OGM at each time step. Generally, features may be extracted using any suitable neural network, for example a convolution neural network, as discussed further below. The features f extracted from the input OGM may be represented in the form of feature vectors associated with each cell of the OGM, thus the features fko may be represented as a matrix or tensor having a depth equal to the number of extracted features. Similarly, the features fkm and features fkp may also be represented as respective matrices or tensors having depths equal to the number of respective extracted features. The motion-flow μk of the OGM may be determined using the MF extractor 124, as discussed further below. The motion-flow μk may be represented as a tensor, which may have three channels depth (containing information about motion in each of the x, y and z directions) or more channels. The features fkm, fko, fkp are stacked together (e.g., concatenated) using the concatenation operation 306. In order to be stacked together, at least the x and y dimensions of the features fkm, fko, fkp should be equal. The stacked features fkm, fko, fkp should are provided together as input to the RNN 122, which predicts the corrective term. Notably, the RNN 122 predicts the corrective for the next time step.
At each time step, the input OGM ok is either the observed OGM ok* at that time step, or the previously predicted OGM. That is:
ok=δkok*+(1−δk)õk. (2)
where õk is the predicted OGM (which may be represented as a tensor with channel depth of one or more, similar to the observed OGM ok* ). The selectors 302a, 302b may be used to select between the observed OGM ok*, and the predicted OGM õk, so as to implement equation (2), based on the definition of the state flag δk. Generally, the selectors 302a, 302b may be replaced by any component that can implement equation (2). For example, the selectors 302a, 302b may be replaced by a simple switch.
The predictions generated by the RNN 122 are represented by a corrective term Δok. The corrective term Δok may also be referred to as a compensation matrix or a compensation term. The corrective term Δok is summed with the input OGM ok to obtain the corrected OGM ôk (which may be represented as a tensor with channel depth of one or more, similar to the observed OGM ok*), using the equation:
ôk+1=ok+Δok. (3)
The corrected OGM ôk+1 is inputted to the OGM classifier 126, to output the predicted OGM õk+1 (which may be represented as a tensor with channel depth of one or more, similar to the observed OGM ok*). It should be noted that, at each time step k, the OGM prediction system 120a outputs the predicted OGM corresponding to the next time-step, that is õk+1. This is because the predicted OGM is the result of deciphering the corrected OGM, by the OGM classifier 126. A single run of the OGM prediction system 120a generates predicted OGMs over all time steps. The predicted OGM generated at each time step may be stored in an output buffer 308 and provided as output when a single run has been completed. The OGM prediction system 120a is recurrent, meaning that it is equipped with feedback connections. The propagation of input signals toward output, which yields the prediction at each time step is considered one iteration. Detailed description of one iteration is provided below.
Firstly, the input OGM ok is determined using equations (1) and (2) above. That is, the input OGM ok is either the observed OGM ok* or the predicted OGM õk from the previous time step (delayed one time step using a delay block 304b, for example).
The motion-flow μk of the input OGM ok is determined using the MF extractor 124. The MF extractor 124 determines motion-flow by applying a motion-flow algorithm on the input OGM ok and also the immediately previous input OGM ok+1 (obtained using the delay block 304a). Generally, the MF extractor 124 may use any suitable motion-flow or optical-flow algorithm to determine the motion-flow between two consecutive OGMs. In some examples, motion-flow may also be referred to as optical-flow, where optical-flow refers to the pattern of motion of objects in a visual scene. In the simple case where the OGM is represented as a 2D grid, the MF extractor 124 may generate two output matrices of the same dimension as the x and y dimension of the input OGMs ok and ok−1. Each of the output matrices represent the movement of cells between the two OGMs in x and y dimensions.
The values shown in the matrices ΔX and ΔY indicate the amount of movement of the corresponding cell between the two OGMs, measured in number of cells. Assume that the value at location (x,y) of the OGM at time step k, is represented by ok(x,y). In order to understand how ok+1 is obtained using the motion flow represented by the matrices ΔX and ΔY, the first step is to generate a mesh-grid of (x,y) indices, namely Ma and Mb, as follows,
Note that Ma and Mb are simply the x and y indices, respectively, of the OGM cells. That is:
ok(x,=ok(Ma(x,y),Mb(x,y)).
Adding the motion-flow matrices ΔX and ΔY, in the example of
Then, ok+1(x,y)=ok(Na(x,y), Nb(x,y)), as shown in
The above example is a relatively simple case. In general, extracting motion-flow may be more complicated, and may be performed for motion in 3D (i.e., also including motion in the z direction). Any suitable motion-flow extraction method may be used for the MF extractor 124, such as the algorithm described by Farnebäck (Two-frame motion estimation based on polynomial expansion, Scandinavian conference on Image analysis, Berlin, Heidelberg: Springer, 2003). The MF extractor 124 may, for example, be classical extractor, or may implement any suitable machine learning-based algorithm.
Reference is again made to
Reference is again made to
Reducing of the dimensionality of all the features fkm, fko, fkp may be useful to reduce the amount of data that is input to the RNN 122, in order to speed up computations. In some examples, where speed of computation is not a concern (e.g., where real-time predictions are not required) or where processing power is sufficiently high, it may not be necessary to reduce the dimensionality of the features fkm, fko, fkp extracted from the reference map Mk*, the input OGM ok and the motion-flow respectively that are input to the RNN 122 (except to ensure that the features fkm, fkp and fko have the same x and y dimensions).
The features fkm, fkp and fko are then stacked using a concatenation operation 306, to form a stacked feature tensor having depth equal to the sum of the depths of the features fkm, fkp and fko. The stacked feature tensor is inputted to the RNN 122. As mentioned above, the RNN may be any suitable RNN. Examples of suitable RNNs include the RNN described by Kolen et al. (A Field Guide to Dynamical Recurrent Networks, s.1, John Wiley & Songs, 2001), a RNN using LSTM cells (or multi-layers) as described by Hochreiter et al. (“Long short-term memory”, Neural computation, 1997, Vol. 8), or a RNN using gate-recurrent cells as described by Cho et al. (“On the properties of neural machine translation: Encoder-decoder approaches”, arXiv preprint arXiv:1409.1259, 2014), among others.
Because the encoder 128 reduces the dimensionality of the features fkm, fkp and fko input to the RNN 122, the output from the RNN 122 (e.g., the predicted corrective term Δok) also has reduced dimensionality. The decoder 129 is used to increase the dimensionality of the output from the RNN 122 (e.g., the predicted corrective term Δok). In the case where the encoder 128 was not used to reduce dimensionality of the of the features fkm, fkp and fko input to the RNN 122, the decoder 129 may be omitted from the OGM prediction system 10. Generally the decoder 129 performs the opposite of the encoder 128, by increasing the dimensionality and optionally reducing the depth. The decoder 129 may perform such operations using transposed convolution layers (also referred to as deconvolution layers) and max pooling layers. For example the decoder 129 may apply deconvolution layers, transposed from the convolution layers of the encoder 128, in the reverse order as in the encoder 128.
The use of the encoder 128 together with the decoder 129 may be referred to as an encoder/decoder architecture. The encoder 128 may be considered to be performing downsampling of the features. The decoder 129 may be considered as performing upsampling of the output the RNN 122 (e.g., the predicted corrective term Δok), to increase the dimensionality of the output the RNN 122 (e.g., the predicted corrective term Δok) back to the original dimensions of the input OGM ok.
The output of the decoder 129 is the corrective term Δok. During the observation phase, where the input OGM ok is the observed OGM ok*, conceptually speaking the RNN 122 may be initialized or prepared for prediction during the initialization phase. During the initialization phase, the OGM prediction system 120a generates a predicted OGM for the next time step (also referred to as “one-step-ahead” prediction). The RNN 122 of the OGM prediction system 120a generates a predicted corrective term Δok, and the decoder 129 increases the dimensionality of the predicted corrective term Δok. The predicted corrective term Δok is then added to the input OGM ok to provide a corrected OGM ôk+1 for the next time step which is provided to the OGM classifier 126 for performing classification of the corrected OGM ôk+1 to generate a predicted OGM for the next time step. The corrective term Δok is important during the prediction phase. Notably, unlike other approaches to generating predicted OGMs, the OGM prediction system 120a makes a prediction of how the OGM will change (represented by the corrective term Δok), rather than predicting the entire future OGM, which is used to generate a predicted OGM as described below. It has been found that using the OGM prediction system 120a achieves more accurate predicted OGMs and generates predicted OGMs more efficiently (e.g., in less time) than prior art systems.
The corrective term Δok is summed with the input OGM ok to provide the corrected OGM ôk+1 for the next time step, which is the input to the OGM classifier 126. Generally, the corrective term Δok has dimensions that are the same as the input OGM ok. In the case where the input OGM ok is ideal (i.e., it contains entries of 0s and 1s), the elements (also referred to as corrective elements) of the corrective term Δok can be −1, 0 or 1. A 0 corrective element means that the corresponding cell of the predicted OGM (at time step k+1) is the exact same to the input OGM (at time step k). Such a cell may correspond to a free area, or an area occupied by a static object. However, around dynamic objects, the occupancy of the cells change. The pattern of the change depends on how the dynamic object is moving. Therefore, the corrective elements corresponding to a dynamic object, can have −1, 0 or 1 values, where a −1 value means that occupancy has changed from 1 to 0 (i.e., the cell changes from occupied to unoccupied), a 0 value means the occupancy of the cell is unchanged, and a 1 value means that occupancy has changed from 0 to 1 (i.e., the cell changes from unoccupied to occupied).
The predicted OGM ôk represents probabilities of cell occupancy. Assuming that cell occupancy distributions are logistic, then during the prediction phase the input OGM ok has values between 0 and 1. The corrective term Δok is generated by the decoder 129, whose output may employs the tanh( ) activation function to produce values between −1 and 1. Therefore, the resulting corrected OGM ôk+1, which is the sum of the corrective term Δok and the input OGM ok, contains values between −1 and 2. This value range does not represent probability distributions over the cells anymore, but merely features that correspond to the occupancy of the cells.
In order to generate the predicted OGM õk+1 that contains values representing occupancy probability at the next time step, the OGM classifier 126 is used. In some embodiments, the OGM classifier 126 is a machine learning module that includes another neural network (e.g., another RNN) that has been trained to learn to generate a predicted OGM õk+1 that contains values representing occupancy probability at the next time step from a corrected OGM ôk+1. The neural network of the OGM classifier 126 is trained to using training dataset comprising corrected OGMs ôk+1 to learn generate predicted OGMs õk+1. The training of the neural network using the training dataset may involve adjusting the parameters (e.g., the weights and biases) of the neural network until a loss function is optimized. In alternative embodiments, the OGM classifier 126 may be any suitable machine learning module that uses a machine learning algorithm to learn to generate a predicted OGM õk+1 that contains values representing occupancy probability at the next time step from a corrected OGM ôk+1. It may be noted that the OGM classifier 126 is applied to the corrected OGM ôk+1 having the full OGM dimensionality rather than reduced dimensionality. Thus, the neural network include in the OGM classifier 126 is not a deep neural network in order to ensure that the predicted OGM õk+1 is generated sufficiently fast, if real-time output is desired. Where real-time output is not needed, or where processing power is sufficiently high, this may not be a concern. Because most of the complex feature extraction has been carried out by the previous-described parts of the OGM prediction system 120a, a neural network comprising a convolution layer followed by a SoftMax function may suffice to correctly classify the corrected OGM õk+1 to generate the predicted OGM õk+1.
As shown in
For implementation of the OGM prediction system 120 in a moving system (e.g., in an autonomous vehicle), the ego motion of the sensors (generally referred to as ego motion of the vehicle, in the case where the sensors are onboard a moving vehicle) should be considered, since this directly affects the observed OGMs. Various approaches can be used to address ego motion. One approach is to determine a proper state transformation inside the RNN 122, such as described by Dequaire et al., noted above. Another approach is to preprocess the observed OGMs, using motion information, outside of the OGM prediction system 120a. For example, motion information may be obtained from sensors (e.g., accelerometer, GPS sensor or speedometer, among others) and used to adjust the observed OGMs to take into account ego motion. Using this approach, from the perspective of the OGM prediction system 120a, the OGMs are observed (and predicted) for a stationary vehicle. Preprocessing to account for ego motion may be more effective. Also, the preprocessing approach (rather than determining the state transformation inside the RNN) means that the predictions are generated based on the current ego vehicle state. Such prediction may provide more flexibility for a planning algorithm to plan a proper trajectory for the vehicle.
Only the differences will be discussed in detail.
In the example OGM prediction system 120b includes a difference unit 610 rather than the MF extractor 124 (
The use of the difference unit 610 in place of the MF extractor 124 (
The OGM prediction system 120c may be referred to as a difference learning system. Conceptually, the OGM prediction system 120c includes a difference learning module that generates the corrective term (also referred to as a compensation matrix), and a classifier module. The difference learning module includes the RNN 122, and may optionally include the encoder 128b and the decoder 129. The classifier module includes the OGM classifier 126 which receives the summation of the corrective term and the input OGM and generates a predicted OGM as described above.
The difference learning module may implicitly distinguish between static and dynamic objects, which is reflected in the corrective term. As discussed above, the elements of the corrective term are typically real values in the range of −1 to 1. A value equal to or near zero corresponds to a cell whose occupancy should not be altered (a free cell or a cell occupied by a static object). Similarly, a value closer to 1 (or −1) represents adding (or clearing) occupancy to (or from) the corresponding cell, indicating the cell is occupied by (or being freed from) a dynamic object.
The classifier module refines the corrected OGM further to generate the next predicted OGM. As discussed above, the classifier module includes the OGM classifier 126 may be implemented using a neural network, a simple feed-forward network, or an RNN, among other possibilities.
In general, the prediction accuracy of the OGM predication system 120 may benefit from having motion-flow information and/or reference map features, in the situation where the training dataset used to train the RNN includes only a limited number of training samples (e.g., labeled OGMs).
In an example, the OGM prediction system 120 may take into account reference map features, without making use of motion-flow information. In such an embodiment, the OGM prediction system 120 may omit the motion-flow path (including blocks 304a, 124 and 128c) from the system illustrated in
In another example, the OGM prediction system 120 may take into account motion-flow information, without making use of reference map features. In such an embodiment, the OGM prediction system 120 may omit the reference map path (including block 128a) from the system illustrated in
In another example, one or both of the reference map features fkm or the motion-flow features fkp may be provided from an external source. That is, one or both of the reference map path or the motion-flow path may be external to the system. For example, it may be fairly straightforward to implement the reference map path externally, for example by preprocessing the reference map using an external encoder. Because the reference map is expected to be relatively static, the reference map features fkm may be extracted ahead of time and still be valid even for generating real-time predictions.
In the disclosed OGM prediction systems, any machine learning-based algorithm may be used in place of the RNN 122. When an RNN is used to generate the predictions, the RNN may be any suitable RNN architecture, including RNNs with or without state-transformations.
In the OGM prediction systems 120a, 120b, 120c, the OGM classifier 126 may be include a trained neural network, or a support vector machine (SVM) for performing classification of corrected OGMs as described above.
The OGM prediction system 120 has been described as outputting a set of OGMs, including at least one observed OGM and at least one predicted OGM. In other examples, the OGM prediction system 120 may output only predicted OGM(s). For example, the OGM prediction system 120 may only need to output predicted OGM(s) for one or more future time steps, because the observed OGM(s) for the current time step (and possibly one or more previous time steps) may already be stored in memory.
At action 802, an input OGM is received for a current time step. When the OGM prediction system 120 is operating in the initialization phase, the input OGM is an observed OGM for the current time step that may be received from the OGM generator 121 of the sensor system 110 of autonomous vehicle 100. The OGM generator 121 generates the observed OGM for the current time step based on sensor data received from the sensing units 112, 114, 116, 118 of the sensor system 110 of autonomous vehicle 100. Alternatively, an observed OGM may have been previously stored in a buffer or a database and received from the buffer or the database (e.g., for offline predictions, not in real-time). When the OGM prediction system 120 is operating in the prediction phase, the input OGM is a previously-predicted OGM (e.g., a predicted OGM previously generated by the OGM prediction system 120 for the current time step).
At action 804, OGM features are extracted from the input OGM, for example using encoder 128b, as discussed above. The OGM features may be extracted to a desired depth. In some examples, extracting OGM features may also include changing the dimensionality, as discussed above.
At action 806, optionally, motion-flow may be determined between the input OGM at the current time step, and a previous OGM from an immediately previous time step. Motion-flow may be determined using a motion-flow extractor (which may be any suitable classical motion-flow extractor, or a machine learning-module), or an approximation of motion-flow may be determined by calculating a difference between the input OGM and the previous OGM.
At action 808, optionally, motion-flow features are extracted, for example using encoder 128c, as discussed above. The motion-flow features may be extracted to a desired depth, which may be different from the depth of the OGM features. In some examples, extracting motion-flow features may also include changing the dimensionality to match the dimensionality of the OGM features, as discussed above.
Actions 806 and 808 may be dependent on each other, and together may be referred to as the motion-flow path.
At action 810, optionally, a reference map is received. The reference map may be received from the sensor system 110, an external database, or may be previously stored and received from an internal memory, for example.
At action 812, optionally, reference map features are extracted, for example using encoder 128a, as discussed above. The reference map features may be extracted to a desired depth, which may be different from the depth of the OGM and motion-flow features. In some examples, extracting reference map features may also include changing the dimensionality to match the dimensionality of the OGM features, as discussed above.
Actions 810 and 812 may be dependent on each other, and together may be referred to as the reference map path. In some examples, instead of performing optional actions 810 and 812, a single optional step of receiving reference map features (e.g., previously extracted reference map features) may be performed.
If the motion-flow path and/or the reference map path is performed, then at action 814 the OGM features may be stacked (e.g., concatenated) with the optional motion-flow features and/or reference map features.
At action 816, the features are inputted to the RNN 122 and the RNN 122 generates a corrective term based on the features. In some embodiments, the corrective term may require resisting in order to match the dimensionality of the input OGM, as discussed above. The corrective term is used to correct the input OGM (which was received at 802), in order to obtain a corrected OGM for a next future time step in the defined time period.
At action 818, the corrected OGM is input into the OGM classifier which generates a predicted OGM for the next time step in the defined time period.
At action 820, the predicted OGM is outputted. The predicted OGM may be outputted as part of a set of OGMs, including one or more historical observed OGMs and predicted OGMs. The outputted OGM may be outputted to be stored for future use (e.g., for path planning purposes).
In various examples, the present disclosure describes methods and systems for performing predictions which are used to generate predicted OGMs. The disclosed methods and systems may be implemented for performing real-time predictions that are used to generate real-time predicted OGMs, which may be useful for real-time path planning, for example in an autonomous vehicle. The disclosed methods and systems may also be implemented outside of autonomous vehicles, for example, in a processing unit such as processing unit 170, and may be used for generating predictions not in real-time.
In some examples, information from a reference map is used. The reference map information may include information about how likely various objects may appear in the OGM. Incorporating such a priori knowledge may help to improve the accuracy of the predicted OGMs.
In some examples, information about motion-flow in the OGM is used. Motion-flow may be extracted using any suitable motion-flow extractor, or may be approximated (e.g., by calculating a difference between a current and a preceding OGM), Incorporating motion-flow information may also help to improve the accuracy of OGM predictions.
The disclosed OGM prediction system employs prior knowledge about how the environment looks like (from an OGM point of view) by incorporating the input OGM as a basis for generating predicted OGMs, Rather than generating a predicted OGM from features only, the disclosed OGM prediction system generates a prediction of a corrective term for a time step, based on an input OGM. The input OGM may be a current OGM or an observed OGM generated from historical, observed sensor data (e.g., observations), and adds the corrective term to the input OGM to generate corrected OGM, which is then provided to an OGM classifier to generate a predicted OGM for a future time step. This approach helps to improve the accuracy of the predicted OGM with respect to known methods for generating predicted OGMs.
Various conventional approaches for tracking and OGM prediction require prior object detection and classification. In the present disclosure, the OGM prediction system 120 generates predicted OGMs using historical observed OGMs generated from sensor data, without need for prior object detection and classification, Hence, a training dataset comprising labeled OGMs is not necessary for training the OGM prediction system 120. A labeled OGM is an OGM in which different parts of the OGM are labeled as different objects, such as cars, pedestrians, trees, etc.
The use of encoders and decoders, in some examples, may enable high resolution OGMs to be processed in real-time, using currently available processing capabilities.
The OGM prediction system 120 may be implemented using any suitable machine learning-based architecture, including any suitable neural network architectures (including any suitable RNN).
In some example aspects, the present disclosure describes a machine learning-based system for generating a predicted occupancy grid map (OGM) over at least one future time step. The system includes a first encoder for extracting OGM features from an input OGM, the input OGM representing occupancy of a sensed environment, in a current time step. The machine learning-based system also includes a recurrent neural network for generating a corrective term from at least the OGM features, wherein the corrective term represents a predicted change to the input OGM, and wherein the corrective term is applied to the input OGM to generate a corrected OGM, the corrected OGM representing features corresponding to occupancy of the environment in a first future time step. The system also includes a classifier for converting the corrected OGM to the predicted OGM, the predicted OGM representing occupancy of the environment in the first future time step. The predicted OGM is fed back as the input OGM to the first encoder and is used for generating a predicted OGM for a second future time step.
In any of the above aspects, the first encoder may include one or more convolution and pooling layers for extracting the OGM features. The machine learning-based system may also include: a decoder including one or more deconvolution layers corresponding to transpositions of the one or more convolution and pooling layers of the first encoder, wherein the decoder converts output from the recurrent neural network to the corrective term.
In any of the above aspects, the system may also include: a second encoder for extracting reference map features from a reference map, the reference map representing a priori information about the sensed environment, wherein the recurrent neural network is configured to generate the corrective term from at least the OGM features and the reference map features.
In any of the above aspects, the system may also include: a motion-flow extractor for determining motion-flow between the input OGM and a previous OGM representing occupancy in a previous time step; and a third encoder for extracting motion-flow features from the motion-flow; wherein the predictive neural network is configured to generate the corrective term from at least the OGM features and the motion-flow features.
In any of the above aspects, the motion-flow extractor may include a neural network.
In any of the above aspects, the system may also include: a difference unit for calculating a difference between the input OGM and a previous OGM representing occupancy in a previous time step; and a third encoder for extracting motion-flow features from the difference; wherein the recurrent neural network is configured to generate the corrective term from at least the OGM features and the motion-flow features.
In any of the above aspects, the system may also include: a selector for selecting between an observed OGM and a previously-predicted OGM to use as the input OGM, wherein the selector is configured to select the observed OGM during an observation phase of the system, and to select the previously-predicted OGM during a prediction phase of the system.
In any of the above aspects, the system may also include: an output buffer for storing a set of OGMs including at least the input OGM and the predicted OGM, wherein output provided by the system is the set of OGMs.
In any of the above, the system may also include: a sensor system comprising one or more sensors for obtaining data about the sensed environment, the data from the sensor system being used for generating the input OGM for at least one time step; and a path planning system receiving at least the predicted OGM, the path planning system using at least the predicted OGM to determine a planned path.
In any of the above, the system may be implemented in an autonomous vehicle.
In some aspects, the present disclosure describes a method for generating a predicted occupancy grid map (OGM) for at least one future time step. The method includes receiving an input OGM. The method also includes extracting OGM features from the input OGM. The method also includes applying a recurrent neural network to at least the OGM features to generate a corrective term, wherein the corrective term represents a predicted change to the input OGM, and wherein the corrective term is applied to the input OGM to generate a corrected OGM, the corrected OGM representing features corresponding to occupancy of the environment in a first future time step. The method also includes applying a classifier to convert the corrected OGM to the predicted OGM, the predicted OGM representing occupancy of the environment in the first future time step. The method also includes outputting at least the predicted OGM.
In any of the above aspects, the predicted OGM may be fed back as input for performing OGM prediction for a second future time step.
In any of the above, extracting the OGM features may include:
applying a first encoder to the input OGM, the first encoder including one or more convolution and pooling layers, the OGM features having different dimensionality than the input OGM; and applying a decoder to convert output from the recurrent neural network to the corrective term, the decoder including one or more deconvolution layers corresponding to transpositions of the one or more convolution and pooling layers of the first encoder.
In any of the above, the method may also include: receiving reference map features, representing a priori information about the sensed environment; wherein the predictive neural network is applied to at least the OGM features and the reference map features.
In any of the above aspects, receiving the reference map features may include: receiving a reference map representing the sensed environment; and applying a second encoder to the reference map to extract the reference map features from the reference map.
In any of the above aspects, the method may also include: determining motion-flow between the input OGM and a previous OGM representing occupancy in a previous time step; and applying a third encoder to the motion-flow to extract motion-flow features from the motion-flow; wherein the predictive neural network is applied to at least the OGM features and the motion-flow features.
In any of the above aspects, the method may also include: calculating a difference between the input OGM and a previous OGM representing occupancy in a previous time step; and applying a third encoder to the difference to extract motion-flow features from the difference; wherein the predictive neural network is applied to at least the OGM features and the motion-flow features.
In any of the above aspects, the method may also include: in an observation phase, selecting an observed OGM as the input OGM; and in a prediction phase, selecting a previously-predicted OGM as the input OGM.
In any of the above aspects, outputting at least the predicted OGM may include outputting a set of OGMs including at least one observed OGM and at least one predicted OGM.
System and Method for Path and/or Motion Planning
Referring again to
The OGM prediction system 120 may comprise the OGM prediction system 120a, 120b or 120c described above. The OGM prediction system 120 may include an OGM classifier 126 in the form of a neural network or an SVM for performing classification of corrected OGMs as described above. The OGM prediction system 120 receives a sequence of OGMs for 0−T1 time steps, a reference map 119, and a trajectory as input. The sequence of OGMs may be a set of observed OGMs generated by the OGM generator 121 from sensor data received from the sensor system 110 (e.g., from the DAR unit 111) or a set of previously-predicted OGMs generated by the OGM prediction system 120 for the current time step in the defined time period. Briefly, the OGM generator 121 may generate of observed OGMs from a bird's eye view (BEV) image generated from point cloud data output by the DAR unit 111 (such as LiDAR). The OGM prediction system 120 predicts a sequence of OGMs for T−T1 time steps. The reference map 119 represents known information about the environment surrounding the vehicle, and may be received from an external reference database (e.g., retrieved based on the vehicle's position, as determined using the GPS unit 118) as described above. The trajectory may be received from the trajectory generator 132.
The predicted sequence of OGMs are input to the cost volume generator 160 which generates a cost volume for the sequence of predicted OGMs. The cost volume is a three-dimensional (3D) volume with the same dimensions (e.g., width and height) as the predicted OGMs in the sequence of predicted OGMs and a depth of Tpath, wherein Tpath=T−T1. The cost volume generator 160 typically comprises an encoder and decoder, and may comprise one or more neural networks. The encoder may comprise a convolution neural network (CNN) and the decoder 164 may comprise a deconvolution neural network (DNN) in some examples.
The cost volume comprises a plurality of cost maps for T T1 time steps. Each cost map corresponds to a predicted OGM in the sequence of predicted OGMs and has the same dimensions as the corresponding predicted OGM. Each cost map comprises a plurality of cells. The cells of each cost map may be identified by two-coordinate positions using x-y notational (x, y) or the like. Each cell in the cost map represents a cost of the cell in corresponding predicted OGM being occupied in accordance with a policy defined by a policy function. The policy may be based on one or more predefined rules. The one or more predefined rules may comprise one or more driving rules and/or one or more environmental rules as described below.
The trajectory generator 132 generates a set of proposed trajectories based on the current position and velocity of the vehicle. A cost is computed for each of the proposed trajectories using the cost volume, and the trajectory with the lowest cost is selected.
The system 900 may be trained in modular or end-to-end fashion. Referring to
At action 1004, the OGM prediction system 120 predicts a sequence of OGMs for T−T1 time steps based on the sequence of OGMs for 0−T1 time steps, reference map 119, and the expert trajectory received as input.
At action 1006, a sequence of real OGMs is observed over the same time period that the OGM prediction system 120 generates the sequence of predicted OGMs (e.g., −T1).
At action 1008, the sequence of predicted OGMs is compared to the sequence of real OGMs and a loss of the OGM prediction (LOGM_prediction) is computed by the OGM prediction system 120. The loss of the OGM prediction is calculated in accordance with a loss function (an objective function) that measures the similarity (or difference) of the predicted OGMs in the sequence of predicted OGMs to the real OGMs in the sequence of real OGMs. The loss of the OGM prediction may be used to adjust the parameters (e.g., the weights and biases) of a neural network of the OGM prediction system 120 until the loss function is optimized (i.e., losses are minimized, for example, the losses being below a threshold level) to train the OGM prediction system 120 in modular fashion.
At action 1010, it is determined whether the loss has been optimized (e.g., loss minimized). If so, the training ends at action 1012. If not, the parameters of the OGM prediction system 120 are adjusted at action 1014 and processing returns to action 1002.
The loss of the OGM prediction may also be used in end-to-end training as described below in addition to, or instead, of modular training of the OGM prediction system 120.
Referring to
At action 1102, the trajectory generator 132 generates a set of trajectories based on a current position and a current velocity of the vehicle 100 which are received as input along with an expert trajectory. Alternatively, the set of trajectories may be received as input, for example, from an external resource such as remote path planning system. As noted above, the expert directory may be defined by an expert driver, system, or otherwise. The trajectory may be an encoded vector. Each of the proposed trajectories and the expert trajectory are defined using Tpath points. A set of trajectories are generated by the trajectory generator 132. The trajectories are proposals and may be generated based on a current position and a current velocity of the autonomous vehicle. Each trajectory in the set of trajectories and the expert trajectory are defined for T−T1 time steps (Tpath) using a plurality of points.
At action 1104, the OGM prediction system 120 generates a sequence of predicted OGMs for each time step (of T−T1 time steps) for each of the proposed trajectories based on a sequence of observed (or previously predicted) OGMs for 0−T1 time steps and the reference map 119, and generates a sequence of predicted OGMs for the expert trajectory.
At action 1106, a cost volume is generated in accordance with the sequence of predicted OGMs for each of the proposed trajectories. For each time step of each trajectory in the set of the proposed trajectories, a cost map is generated. Each cost map has the same dimensions (e.g., W×H) as the predicted OGMs. The cost maps for each time step of a given proposed trajectory are combined to generate a cost volume having a size W×H×Tpath, wherein W×H is the dimension of the predicted OGMs, wherein W is the and H is the height of the predicted OGMs, wherein Tpath=T−T1. Thus, n cost volumes are generated where n is the number of trajectories in the set of trajectories generated by the trajectory generator 132.
The cost maps for each time step of each trajectory in the set of trajectories are generated in two steps. First, for each cell in a predicted OGM an imitation cost is calculated in accordance with a first cost function (an objective function) which assigns a cost based on the state (or value) of the cell in the predicted OGM (i.e., whether the cell is occupied) and one or more predefined driving rules. The driving rules may comprise any one of more of vehicle collision avoidance, lane following, speed limit following, maintaining a threshold distance from other vehicles, or traffic law/rule following. The imitation cost is comprised of costs for each driving rule that is violated. The expert trajectory is defined to have a zero cost or close to zero cost at each time step. Second, for each cell in a predicted OGM an environmental cost is calculated in accordance with a second cost function (an objective function) which assigns a cost based on the state (or value) of the cell in the predicted OGM (i.e., whether the cell is occupied) and one or more predefined environmental rules. The environmental rules may comprise any one of more of remaining within a drivable area, remaining with lanes, object collision avoidance, maintaining a threshold distance from a perimeter of the drivable area, maintaining a threshold distance from lane markings, or maintaining a threshold distance from environmental objects. The cost is comprised of costs for each environmental rule that is violated.
The two costs calculated for each cell in a given time step may be added together to generate a combined cost to generate a single cost map. Alternatively, two cost maps may be maintained for each time step, and the cost maps may be combined when generating the cost volumes.
The combination of the driving rules and environmental rules define a policy defined by a policy function applied by the cost volume generator 160 in generating a cost volume based on a trajectory.
At action 1108, a cost is calculated for each proposed trajectory by summing the imitation cost of each point in each of the proposed trajectories via the corresponding cost map for each time step. At action 1110, the imitation loss for the trajectory with a lowest imitation cost is calculated based on the difference between the proposed trajectory with the lowest (i.e., minimum) cost and the expert trajectory. Each cell in the predicted OGM for the proposed trajectory for a given time step is compared to the corresponding cell in the predicted OGM for the expert trajectory. The imitation loss is calculated in accordance with a loss function (an objective function) based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the state of the cells in the predicted OGM for the expert trajectory. The loss function may define a regression loss or classification loss.
At action 1112, a cost is calculated for each proposed trajectory by summing the environmental cost of each point in each of the proposed trajectories via the corresponding cost map for each time step. At action 1114, the environmental loss for the trajectory with a lowest environmental cost is calculated based on a comparison of the cells of the proposed trajectory with the lowest (i.e., minimum) cost and the reference map 119 and/or extracted features of the reference map 119. Each cell in the predicted OGM for the proposed trajectory for a given time step is compared to the reference map 119 and/or extracted features of the reference map 119. The comparison may comprise converting the reference map 119 and/or extracted features of the reference map 119 into an OGM. The environmental loss is calculated in accordance with a loss function (an objective function) based on whether the state of the cells in the predicted OGM for the proposed trajectory differs from the reference map 119 and/or extracted features of the reference map 119 or an OGM generated therefrom. The loss function may define a regression loss or classification loss.
At action 1118, it is determined whether one or more loss(es), i.e. one or a combination of the imitation loss and the environmental loss, have been optimized (e.g., minimized). One or both of the imitation loss and environmental loss may be used to adjust the parameters (e.g., the weights and biases) of a neural network of the cost volume generator 160 are optimized (e.g., are below a threshold) to train the cost volume generator 160 in modular fashion. In some examples, a linear or non-linear combination of the imitation loss and the environmental loss (e.g., a linear or non-linear combination of loss functions for the imitation loss and the environmental loss). The parameters of the neural network of the cost volume generator 160 may be updated to minimize a mean square error (MSE) between a value representing a linear or non-linear combination of loss functions and a training target. The MSE may be minimized using a least mean square (LMS) algorithm to minimize the MSE between the value representing the linear or non-linear combination of loss functions and the training target. A gradient descent may be used to minimize the MSE.
If the one or more loss(es) are optimized, the training ends at action 1120. If the one or more loss(es) are not optimized, the parameters of the cost volume generator 160 are adjusted at action 1122 and processing returns to action 1102.
The imitation loss and environmental loss may also be used in end-to-end training as described below in addition to, or instead, of modular training of the cost volume generator 160 as described above.
Ltotal=w1Logm_prediction+w2Limitation+w3Lenvironment
wherein w1, w2 and w3 are weights applied to the OGM prediction loss, imitation loss and environmental loss, respectively.
The system 900 may be trained end-to-end in cascade (e.g., cascade back-propagation) or any other setting that is proper for specific data sets.
Referring to
At action 1210, it is determined whether the total loss has been optimized (e.g., minimized). If so, the training ends at action 1212. If not, the parameters of the OGM prediction system 120 and/or cost generator 160 are adjusted at action 1214 and processing returns to action 1002.
Referring now to
At action 1302, the sensor system 110 generates and outputs sensor data representing the environment surrounding the vehicle 100, for example, using the DAR unit 111 which comprises one or both of a radar unit 112 and LIDAR unit 114.
At action 1304, the OGM generator 121 receives the sensor data as input and generates a sequence of OGMs from the sensor data, for example for O:T1 steps. Alternatively, rather than actions 1302 and 1304, the sequence of OGMs may be generated and output directly from the sensor system 110.
At action 1306, optionally, features are extracted from the OGMs, for example using encoder 128b, as discussed above. The OGM features may be extracted to a desired depth. In some examples, extracting OGM features may also include changing the dimensionality, as discussed above.
At action 1308, optionally, a reference map 119 of the environment surrounding the vehicle is received. The reference map 119 may be received from the sensor system 110, an external database, or may be previously stored and received from an internal memory, for example.
At action 1310, optionally, reference map features are extracted, for example using encoder 128a, as discussed above. The reference map features may be extracted to a desired depth, which may be different from the depth of the OGM and motion-flow features. In some examples, extracting reference map features may also include changing the dimensionality to match the dimensionality of the OGM features, as discussed above.
At action 1312, optionally, motion-flow may be determined between the current OGM at the current time step and a previous OGM from an immediately previous time step. Motion-flow may be determined using a motion-flow extractor (which may be any suitable classical motion-flow extractor, or a machine learning-module), or an approximation of motion-flow may be determined by calculating a difference between the input OGM and the previous OGM.
At action 1314, optionally, motion-flow features are extracted, for example using encoder 128c, as discussed above. The motion-flow features may be extracted to a desired depth, which may be different from the depth of the OGM features. In some examples, extracting motion-flow features may also include changing the dimensionality to match the dimensionality of the OGM features, as discussed above.
At action 1316, a set of proposed trajectories are received, for example, from the trajectory generator 132. The trajectory generator 132 generates a set of proposed (or possible) trajectories based on the position and velocity of the vehicle.
At action 1318, the OGM prediction system 120 generates a sequence of predicted OGMs (for example, for T1:T steps) for each trajectory in the set of proposed trajectories based on the received sequence of observed OGMs (for example, for 0:T1 steps), the reference map 119 and/or optionally features extracted from the reference map 119, and the proposed trajectories from the trajectory generator 132.
At action 1320, the cost volume generator 160 generates a cost volume for each of the predicted sequence of OGMs and optionally features such as features extracted from the reference map and/or OGMs. These features may be learned and extracted while the system is being trained to predict OGMs and generate cost volume.
At action 1324, a cost of each of the proposed trajectories is determined by summing the cost of each point in each of the proposed trajectories via the corresponding cost map for each time step.
At action 1326, the proposed trajectory with the lowest cost is selected.
At action 1328, control signals are generated by the vehicle control system 140 in accordance with the selected trajectory. The control signals may define any combination of steering, braking or throttle in some examples. The control signals may be sent to the electromechanical system 150 to control the vehicle so that the vehicle follows, or attempts to follow, the selected trajectory
At action 1330, the control signals are input to the electromechanical system 150 (
Although the above-described embodiments use trajectories output by the trajectory generator 132, in other embodiments paths output by the path generator 130 may be used by the planning system 900 instead of trajectories.
The disclosed methods of training a machine-learning based planning system may allow the vast quantity of data that is available from human drivers to be used to generate an end-to-end machine-learning based planning system. The disclosed machine-learning based planning system generates a path or trajectory for an autonomous vehicle which adapts to driving scenarios and deviates from what is experienced by the expert driver. In some embodiments, the machine-learning based planning system is modular in that it includes distinct perception, prediction and planning modules, and is capable of being trained in either module-by-module. In other embodiments, the machine-learning based planning system is an end-to-end machine-learning based planning system that has been trained end-to-end (e.g. using end-to-end training techniques). In still other embodiments, the machine-learning based planning system is coarsely trained module-by-module and fine-tuned with end-to-end training with the result than an error in one module may have a meaningful impact on other modules, and that uncertainty in one module may propagate through the machine-learning based planning system, providing a more comprehensive training and operation of the trained machine-learning based planning system. The machine-learning based planning system generates a cost volume based at least in part on predicted OGMs and optionally features from a reference map used in prediction of OGMs. The previously acquired information such as information from the reference map may be used to improve perception related modules and the cost volume generated. The machine-learning based planning system also may be trained using a training dataset comprising unlabeled training data.
General
The steps and/or operations in the flowcharts and drawings described herein are for purposes of example only. There may be many variations to these steps and/or operations without departing from the teachings of the present disclosure. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified, as appropriate.
The coding of software for carrying out the above-described methods described is within the scope of a person of ordinary skill in the art having regard to the present disclosure. Machine-readable code executable by one or more processors of one or more respective devices to perform the above-described method may be stored in a machine-readable medium such as the memory of the data manager. The terms “software” and “firmware” are interchangeable within the present disclosure and comprise any computer program stored in memory for execution by a processor, comprising Random Access Memory (RAM) memory, Read Only Memory (ROM) memory, EPROM memory, electrically EPROM (EEPROM) memory, and non-volatile RAM (NVRAM) memory. The above memory types are examples only, and are thus not limiting as to the types of memory usable for storage of a computer program.
All values and sub-ranges within disclosed ranges are also disclosed. Also, although the systems, devices and processes disclosed and shown herein may comprise a specific plurality of elements, the systems, devices and assemblies may be modified to comprise additional or fewer of such elements. Although several example embodiments are described herein, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the example methods described herein may be modified by substituting, reordering, or adding steps to the disclosed methods.
Features from one or more of the above-described embodiments may be selected to create alternate embodiments comprised of a subcombination of features which may not be explicitly described above. In addition, features from one or more of the above-described embodiments may be selected and combined to create alternate embodiments comprised of a combination of features which may not be explicitly described above. Features suitable for such combinations and subcombinations would be readily apparent to persons skilled in the art upon review of the present application as a whole.
In addition, numerous specific details are set forth to provide a thorough understanding of the example embodiments described herein. It will, however, be understood by those of ordinary skill in the art that the example embodiments described herein may be practiced without these specific details. Furthermore, well-known methods, procedures, and elements have not been described in detail so as not to obscure the example embodiments described herein. The subject matter described herein and in the recited claims intends to cover and embrace all suitable changes in technology.
Although the present disclosure is described at least in part in terms of methods, a person of ordinary skill in the art will understand that the present disclosure is also directed to the various elements for performing at least some of the aspects and features of the described methods, be it by way of hardware, software or a combination thereof. Accordingly, the technical solution of the present disclosure may be embodied in a non-volatile or non-transitory machine-readable medium (e.g., optical disk, flash memory, etc.) having stored thereon executable instructions tangibly stored thereon that enable a processing device to execute examples of the methods disclosed herein.
The term “processor” may comprise any programmable system comprising systems using microprocessors/controllers or nanoprocessors/controllers, digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) reduced instruction set circuits (RISCs), logic circuits, and any other circuit or processor capable of executing the functions described herein. The term “database” may refer to either a body of data, a relational database management system (RDBMS), or to both. As used herein, a database may comprise any collection of data comprising hierarchical databases, relational databases, flat file databases, object-relational databases, object oriented databases, and any other structured collection of records or data that is stored in a computer system. The above examples are example only, and thus are not intended to limit in any way the definition and/or meaning of the terms “processor” or “database”.
The present disclosure may be embodied in other specific forms without departing from the subject matter of the claims. The described example embodiments are to be considered in all respects as being only illustrative and not restrictive. The present disclosure intends to cover and embrace all suitable changes in technology. The scope of the present disclosure is, therefore, described by the appended claims rather than by the foregoing description. The scope of the claims should not be limited by the embodiments set forth in the examples, but should be given the broadest interpretation consistent with the description as a whole.
Number | Name | Date | Kind |
---|---|---|---|
11016491 | Millard | May 2021 | B1 |
20120083947 | Anderson | Apr 2012 | A1 |
20190220020 | Macias et al. | Jul 2019 | A1 |
20200148215 | Mohajerin | May 2020 | A1 |
20200159225 | Zeng | May 2020 | A1 |
20200160268 | Han | May 2020 | A1 |
20200379461 | Singh | Dec 2020 | A1 |
20210064040 | Yadmellat | Mar 2021 | A1 |
20210110484 | Shalev-Shwartz | Apr 2021 | A1 |
Number | Date | Country |
---|---|---|
108089572 | May 2018 | CN |
108399218 | Aug 2018 | CN |
110857085 | Mar 2020 | CN |
Entry |
---|
Lee, Namhoon, et al. “Desire: Distant future prediction in dynamic scenes with interacting agents.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017. |
Pérez-Higueras, Noé, Fernando Caballero, and Luis Merino. “Learning human-aware path planning with fully convolutional networks.” 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE 2018. |
Bansal, Mayank, Alex Krizhevsky, and Abhijit Ogale. “Chauffeurnet: Learning to drive by imitating the best and synthesizing the worst.” arXiv preprint arXiv:1812.03079 2018. |
Wenyuan Zeng, Wenjie Luo, Simon Suo, Abbas Sadat, Bin Yang, Sergio Casas, Raquel Urtasun, “End-to-end Interpretable Neural Motion Planner”, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 8660-8669 2019. |
Number | Date | Country | |
---|---|---|---|
20210276598 A1 | Sep 2021 | US |