Object velocity and / or yaw rate detection and tracking

By aggregating sensor data from multiple types into a multi-channel image and using an ML model to generate accurate object detections, the system addresses the challenge of unstable object representations in autonomous vehicles, enhancing safety and navigation efficiency.

JP7682190B2Active Publication Date: 2025-05-23ZOOX INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022546428
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-05
Filing Date
2021-01-29
Publication Date
2025-05-23
Estimated Expiration
2041-01-29

AI Technical Summary

Technical Problem

Autonomous vehicles face challenges in accurately detecting and tracking object velocity and yaw rate due to discrepancies between sensor data from different types, leading to unstable object representations and increased computing bandwidth.

Method used

The system aggregates data from multiple sensor types into a multi-channel image, which is then input into an ML model to generate a final environment representation with estimated object detections, including velocity and yaw rate. This model associates previous journeys with estimated object detections based on relevance scores, reducing the need for raw object detection comparisons.

Benefits of technology

This approach improves the accuracy and stability of object detection and tracking, reduces computing bandwidth, and enhances the ability to predict object motion and behavior, thereby improving vehicle safety and navigation efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007682190000009
    Figure 0007682190000009
  • Figure 0007682190000010
    Figure 0007682190000010
  • Figure 0007682190000011
    Figure 0007682190000011
Patent Text Reader

Abstract

Tracking the current and / or previous position, velocity, acceleration, or path of an object using sensor data may include determining whether a current object detection generated from recently received (e.g., current) sensor data is associated with a previous object detection generated from previously received sensor data. That is, a process may identify an object detected in the previous sensor data as the same object detected in the current sensor data. However, various types of sensor data may be used to detect objects, and some objects may not be detected or may be detected differently by different sensor types, which may confound attempts to track the object. An ML model may be trained to receive outputs associated with processes associated with different sensor types and / or objects, and to determine a data structure including a region of interest, an object classification, and / or a pose associated with the object.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to object velocity and / or yaw rate detection and tracking. [Background technology]

[0002] (Related Applications) This PCT application claims priority to U.S. Patent Application No. 16 / 866,865, filed May 5, 2020, which is a continuation-in-part of U.S. Patent Application No. 16 / 779,576, filed January 31, 2020, which is incorporated herein in its entirety.

[0003] An autonomous vehicle may use sensors to capture data about the environment it traverses. The autonomous vehicle uses this sensor data to detect objects in the environment and avoid collisions. However, an autonomous vehicle may include two or more different types of sensors, and accordingly, the sensor data may vary widely in its format and content, such that detections produced by two different types of sensors may differ. Small discrepancies between detections determined in association with two different sensor types may cause the object representation created by the vehicle to wiggle (i.e., "jump around") and / or flicker (i.e., turn on and off). Certain sensor types, such as depth cameras, may also be prone to large error variations in depth measurements, which may further complicate tracking of objects. This may hinder the efficiency of safely navigating the vehicle and / or training machine learning (ML) models. Furthermore, techniques for reducing discrepancies and / or smoothing object representations or data associated therewith may consume computing bandwidth and / or memory. [Brief description of the drawings]

[0004] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears, and the same reference numbers in different drawings indicate similar or identical items.

[0005] [Figure 1] FIG. 1 illustrates an example situation in which an autonomous vehicle configured with perception and tracking components can track previous and current positions, speeds, and / or paths of objects in an environment surrounding the autonomous vehicle and can generate a trajectory for controlling the autonomous vehicle based at least in part on the track. [Diagram 2] FIG. 1 is a block diagram illustrating an example system including a perception component and a tracking component. [Diagram 3] FIG. 1 is a block diagram illustrating at least a portion of a perception architecture including components for achieving the improved object tracking techniques described herein. [Figure 4] FIG. 13 is a pictorial flow diagram of an exemplary process for determining estimated object detections that may be generated based at least in part on sensor data based at least in part on an environment representation / object detection of a perception pipeline object. [Diagram 5] FIG. 1 is a pictorial flow diagram illustrating an example process for tracking objects in an environment based at least in part on estimated object detections determined by the ML models described herein. [Figure 6] FIG. 1 is a block diagram illustrating an example architecture of an ML model for generating putative object detections. [Figure 7] FIG. 1 is a pictorial flow diagram of an example process for training an ML model to determine a velocity and / or yaw rate associated with an object and / or for using an ML model to determine a velocity and / or yaw rate at inference time. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] Techniques for tracking the current and / or previous position, velocity, acceleration, or path of an object using sensor data may include determining whether a current object detection generated from recently received (e.g., current) sensor data is associated with a previous object detection generated from previously received sensor data. That is, the journey may identify that an object detected in the previous sensor data is the same object detected in the current sensor data. In certain examples, the journey may additionally or alternatively include various current and / or previous data about the object useful to a planning component of the autonomous vehicle to predict the motion / behavior of the object and determine a trajectory and / or path to control the autonomous vehicle. For example, the journey may additionally or alternatively include a representation of an area of ​​the environment currently and / or previously occupied by the object, an object classification associated with the object (e.g., vehicle, oversized vehicle, pedestrian, cyclist), a current and / or previous path associated with the object, a current and / or previous velocity and / or acceleration of the object, and / or a current position and / or velocity of the object, although any other parameters are contemplated.

[0007] In one example, one or more sensors of a sensor type may be associated with a pipeline (e.g., a series of operations, steps, networks or layers thereof, machine learning models, hardware such as analog-to-digital converters, amplifiers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs, etc.), etc.) used to determine information about objects contained in the associated sensor data. The sensor data may be received from one or more sensors of the type, and the pipeline (which may be referred to herein as a perception pipeline) may generate an environment representation based at least in part on the sensor data. For simplicity, the collective output of the pipeline is referred to herein as an environment representation. The environment representation may include one or more object detections and may include one or more output types. For example, the vision pipeline 302 may output an environment representation 308 based at least in part on the vision data 310 (e.g., sensor data including one or more RGB images, thermal images).

[0008] The environment representation may include object detection, which may include an indication and / or likelihood that a portion of the environment is occupied by an object, a region of interest (ROI) associated with the detected object (e.g., a bounding box, mask, segmentation, or some other identification of which region of the environment is occupied by the object), object classification, the path of the object, the velocity and / or acceleration of the object, the height of the object, etc. The environment representation may additionally or alternatively include a voxelized representation (a discretized three-dimensional representation of such data) of the sensor data and / or a top-down segmentation and / or a top-down representation of the environment, as described in more detail in U.S. Patent Application No. 15 / 963,833, which is incorporated herein in its entirety. It is noted that U.S. Patent Application No. 15 / 963,833 may additionally or alternatively be modified to include the regressions described herein, and may be modified by backpropagating losses associated with these additional or alternative regressions. In some examples, the regions of interest described herein may be three-dimensional ROIs and / or two-dimensional ROIs (e.g., top-down / bird's-eye view of the ROIs). In some examples, further environmental representations may be generated by a perception pipeline associated with different sensor types.

[0009] In one example, multiple object detections can be generated associated with the same object in the environment. These multiple object detections can be generated by different perception pipelines, which may be associated with different sensor types. For example, a lidar perception pipeline can receive lidar data and determine an object detection associated with the object, a hybrid lidar visual perception pipeline can receive lidar and visual data and generate different object detections associated with the same object, a visual perception pipeline can receive images from a camera and generate additional object detections associated with the same object, and so on. Due to differences between the sensors and perception pipelines, the object detections associated with the same object generated by different pipelines may vary between each other. For example, a first object detection may indicate an ROI associated with an object having different dimensions, and the ROI is indicated by a second object detection associated with the same object. In more extreme cases, one pipeline may generate an object detection associated with an object, and another pipeline may not generate a detection at all. For example, a radar or lidar pipeline may detect an object, but the object may be obstructed from the camera's view.

[0010] In one example, the techniques described herein may include aggregating at least a portion of the environment representation associated with different sensor types and providing the aggregated data as input to an ML model trained to output a presumed object detection. In one example, the aggregated data may be represented in a multi-channel image, where different channels may be associated with different types of sensors from which sensory data is generated and / or different types of sensory data. For example, the aggregated data may include lidar, vision, and / or radar occupancy grids (e.g., grids having distinct portions, such as pixels, indicating whether a corresponding location in the environment is occupied or unoccupied according to a perception pipeline associated with the respective sensor data type), top-down representations of ROIs generated in association with lidar, vision, and / or radar, object classifications associated with portions of the environment, probabilities that portions of the environment are occupied, yaw of detected objects, etc. See U.S. Patent Application No. 16 / 591,518 regarding occupancy maps, which is incorporated herein by reference in its entirety. In one example, the occupancy grid may extend to a maximum height, which may correspond to a buffer in addition to the height of the autonomous vehicle. That is, the occupancy grid may indicate portions of occupancy that are below a maximum height of a portion of the environment. For example, a traffic light or sign placed across a street would not indicate that a portion of the environment is occupied because the occupancy grid may be located above the maximum height of such object.

[0011] In certain examples, the aggregated data may additionally or alternatively include data from a remote computing device and / or non-perception-based data, such as, for example, map data (e.g., roadway data, drivable surface locations, destinations), weather data, traffic notifications (e.g., congestion, collisions, lane corrections, construction, speed corrections), safety notifications (e.g., environmental hazard locations, disaster locations, road surface conditions, visibility conditions), etc. In certain examples, the remote computing device may be another autonomous vehicle, a third party service, a distributed computing device, a remote sensor, etc.

[0012] In some examples, the aggregated data from different pipelines may additionally include at least a portion of the environmental representation for one or more previous times. For example, perception pipelines associated with different sensor types may be synchronized to generate environmental representations at the same frequency (e.g., every 100 ms, every 500 ms, every 1 sec). In examples where the perception pipelines are synchronized to output environmental representations at substantially the same time, every 500 ms, the aggregated data may include the above data for 0 ms (i.e., the set of aggregated data corresponding to the most recently received set of environmental representations), -500 ms, 1 sec, etc. In at least one example, the aggregated data may include a multi-channel image including aggregated data for time steps 0 ms, -100 ms, -200 ms, -300 ms, and / or -400 ms, and / or -1 sec, -2 sec, and / or -3 sec, although any suitable time steps may be used. For example, the data to be aggregated may include object detections received from different pipelines for the current and last n time steps, where n is a positive integer (e.g., 1, 2, 3, 4, 5, 10, etc.).

[0013] One or more previously generated runs may be provided as inputs to the ML model in addition to the data to be aggregated (e.g., as channels of the data to be aggregated). For example, a run may be generated associated with every time step or at an interval (e.g., every other time step). The previously generated runs may be included as channels in a multi-channel image. In one example, the run may include a center, range, and / or yaw of a ROI associated with an object, and / or an identifier associated with a ROI having other previous regions of interest generated in association with the object.

[0014] In one example, the ML model may be trained to output a final environment representation, which may include one or more estimated object detections. As noted above, object detections associated with objects may vary in size, location, or even presence between different pipelines. The final environment representation may include one estimated object detection for each object determined based at least in part on object detections received from different pipelines (e.g., received as inputs to the ML model as part of the aggregated data). For example, a putative object detection generated by the ML model may include a ROI identifying a portion of the occupied environment (e.g., a region associated with the object), a predicted ROI associated with a future time, a speed associated with the ROI, an object classification associated with the ROI (e.g., vehicle, pedestrian, large vehicle, cyclist), a classification of the speed of the ROI (e.g., stationary or dynamic), a path (e.g., yaw) associated with the ROI, and / or path bins (e.g., two bins centered at 0 degrees and 180 degrees, four bins centered at 0 degrees, 90 degrees, 180 degrees, and 270 degrees, the output of which may further include a distance from the center of the bins), and / or a height (e.g., a height of the detected object) associated with the ROI. In one example, any region of interest may be generated based at least in part on the output of the confidence layer such as following a non-maximum suppression technique. See, for example, US Patent Application Nos. 16 / 013,764 and 16 / 013,729, which are incorporated herein in their entireties.

[0015] In one example, the output of the ML model may include an image, where each pixel stores the above information. For example, the final environment representation may include a top-down representation of the environment, such as an image. The image may indicate the data described above. The pixels of the image may indicate that a portion of the environment is occupied, the object classification of the object occupying the portion, the velocity of the object, etc. Object detection may be indicated in the final environment as a region of pixels (or other distinct portion of the final environment) that is indicated as occupied and / or associated with the data described above (e.g., object classification, object velocity, object orientation).

[0016] In one example, the technique may further include determining whether to associate a previously generated journey with one of the estimated object detections of the final environment representation and / or generate a new journey. In one example, the technique may include receiving a previous journey and projecting an ROI associated with the previous journey from a previous time frame associated with the previous journey to a current and / or future time frame. For example, this may include modifying the representation of the position and / or path of the ROI. In additional or alternative examples, the projected ROI may include a predicted ROI output by the ML model at a previous time step. The technique may include determining a degree of association between the projected ROI and any of the estimated object detections generated by the ML model. For example, relevance may be overlap (e.g., intersection of regions of unions (IOU)), Munkres matching score, size comparison, feature comparison (e.g., is the projected ROI associated with the same object classification as the putative object detection? Is there a significant discrepancy between the velocity associated with the projected ROI and the predicted velocity associated with the putative object detection), etc. In one example, determining relevance may be encoded in a scoring function, which may be machine learning and / or deterministic. For example, IOU may be determined deterministically and used as input to an ML model that determines a score for relevance, along with a representation of the location and size of the projected ROI relative to the putative object detection ROI.

[0017] If the relevance meets or exceeds the threshold, the technique may include associating the previous journey with the estimated object detection. However, if the relevance does not meet the threshold, the technique may include testing the estimated object detection with any other projected ROIs (e.g., other ROIs that overlap or are within a threshold distance of the estimated object detection) and / or generating a new journey to be associated with the estimated object detection if the projected ROIs do not match. In additional or alternative examples, the previous journey may be associated with the estimated object detection, or a new journey may be generated more simply based on the IOU alone, although additional or alternative data may be used to determine if the estimated object detection corresponds to a previous object detection / journey.

[0018] The techniques described herein can improve vehicle safety by improving the ability to predict object motion and / or behavior in the vehicle's surroundings and / or by continually accounting for objects that may be temporarily occluded. These techniques can also increase the operating range of the perception system (e.g., to 40 meters, 60 meters, or 80 meters from the vehicle). In at least some examples, the techniques can further reduce the computing bandwidth for determining the journey associated with an object when the object is over-segmented and / or under-segmented, particularly when the depth estimate associated with the sensor modality changes in examples where different sensor modalities generate regions of interest of different sizes. The instantaneous technique involves comparing the estimated object detection determined by the ML model to the previous journey, whereas other techniques using various sensor modalities to track objects may require comparing the object detection from each sensor modality to the previous journey. These techniques can increase the accuracy of object detection (e.g., object location, segmentation) and / or tracking. Journeys generated using the techniques described herein have fewer jerks because the underlying object detection is more stable.

[0019] (Example situation) FIG. 1 illustrates an example situation 100 including a vehicle 102. In one example, the vehicle 102 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire journey without expecting a driver (or passenger) to control the vehicle at all times. However, in other examples, the vehicle 102 may be a fully or partially autonomous vehicle having any other level or classification. It is contemplated that the techniques described herein may be applied to more than robotic control, such as to autonomous vehicles. For example, the techniques described herein may be applied to search, manufacturing, augmented reality, and the like. Additionally, the vehicle 102, although depicted as a land vehicle, may be a spacecraft, a water vehicle, and the like. In one example, the vehicle 102 may be represented in a simulation as a simulated vehicle. For simplicity, the description herein does not distinguish between simulated and real-world vehicles. Thus, references to a "vehicle" may refer to a simulated vehicle and / or a real-world vehicle.

[0020] In accordance with the techniques described herein, the vehicle 102 can receive sensor data from sensors 104 of the vehicle 102. For example, the sensors 104 may include position sensors (e.g., Global Positioning System (GPS) sensors), inertial sensors (e.g., acceleration sensors, gyroscope sensors, etc.), magnetic field sensors (e.g., compasses), position / speed / acceleration sensors (e.g., speedometers, drive system sensors), depth position sensors (e.g., lidar sensors, radar sensors, sonar sensors, time-of-flight (ToF) cameras, depth cameras, ultrasonic and / or sonar sensors, and / or other depth-sensing sensors), image sensors (e.g., cameras), audio sensors (e.g., microphones), and / or environmental sensors (e.g., barometers, hygrometers, etc.).

[0021] The sensors 104 may generate sensor data, which may be received by a computing device 106 associated with the vehicle 102. However, in other examples, some or all of the sensors 104 and / or computing devices 106 may be located separately and / or remotely from the vehicle 102, and data capture, processing, command, and / or control may be communicated to and from the vehicle 102 by one or more remote computing devices over wired and / or wireless networks.

[0022] The computing device 106 may include a memory 108 that stores the perception component 110, the planning component 112, the tracking component 114, and / or the system controller 116. While depicted in FIG. 1 for illustrative purposes, it should be understood that the tracking component 114 may reside on a separate computing device (or otherwise) than any one or more of the other components. In general, the perception component 110 may determine what is in the environment surrounding the vehicle 102, and the planning component 112 may determine how to operate the vehicle 102 according to the information received from the perception component 110. For example, the planning component 112 may determine the trajectory 118 based at least in part on the perception data and / or other information such as, for example, one or more maps, localization information (e.g., where the vehicle 102 is in an environment related to features detected by the map and / or perception component 110), etc. The trajectory 118 may include instructions to the controller 116 to operate drive components of the vehicle 102, resulting in a steering angle and / or steering rate, which may lead to a vehicle position, vehicle speed, and / or vehicle acceleration. For example, the trajectory 118 may include a target path, a target steering angle, a target steering rate, a target position, a target speed, and / or a target acceleration to track for the controller 116. The perception component 110, the planning component 112, and / or the tracking component 114 may include one or more machine learning (ML) models and / or other computer-executable instructions.

[0023] In one example, controller 116 may include software and / or hardware for operating drive components of vehicle 102 sufficient to track trajectory 118. For example, controller 116 may include one or more proportional-integral-derivative (PID) controllers.

[0024] In one example, the perception component 110 can receive sensor data from the sensors 104 and can determine data related to objects in the vicinity of the vehicle 102 (e.g., detected objects, instance segmentation, semantic segmentation, two-dimensional and / or three-dimensional bounding boxes, object classifications associated with a journey), route data specifying a destination of the vehicle, global map data identifying features of the roadway (e.g., features detectable with different sensor modalities useful for localizing an autonomous vehicle), local map data identifying features detected in proximity to the vehicle (e.g., locations and / or dimensions of buildings, trees, fences, fire hydrants, stop signs, and any other features detectable with various sensor modalities), journey data (e.g., an environment representation, object detection, and / or a journey as described herein), and the like.

[0025] In one example, the perception component 110 may include a hardware and / or software pipeline, which may include one or more GPUs, ML models, Kalman filters, etc. In one example, the perception component 110 may monitor as much of the environment surrounding the autonomous vehicle as possible, which may be limited by sensor capabilities, object and / or environmental occlusions (e.g., buildings, elevation changes, objects in front of other objects), and / or environmental effects such as fog, snow, etc. For example, sensor data may include lidar and / or radar data, which the perception component 110 may receive as input. The perception component 110 may be configured to detect as much information about objects and the environment as possible to avoid not taking into account events or object behaviors that should be considered by the planning component 112 in determining the trajectory 118.

[0026] The object classification determined by the perception component 110 may distinguish between different object types, such as, for example, a vehicle, a pedestrian, a cyclist, a delivery trip, a semi-trailer trip, a traffic sign, etc. The trip may include the object's previous, current, and / or predicted position, speed, acceleration, and / or path. The data generated by the perception component 110 may be collectively referred to as perception data. Once the perception component 110 generates the perception data, the perception component 110 may provide the perception data to the planning component 112. In one example, the perception data may include the output of a sensor-specific pipeline (e.g., vision, lidar, radar) and / or the output of a hybrid sensor pipeline (e.g., visual lidar, radar lidar). The perception data may additionally or alternatively include the trip, estimated object detections, and / or a final environment representation, as described herein.

[0027] The planning component 112 may use the perception data received from the perception component 110 to determine one or more trajectories, control the movement of the vehicle 102 to traverse a path or route, and / or otherwise control the operation of the vehicle 102, although any such operations may be performed in various other components (e.g., localization may be performed by a localization component, which may be based at least in part on the perception data). For example, the planning component 112 may determine a route for the vehicle 102 from a first location to a second location, generate a plurality of potential trajectories for controlling the movement of the vehicle 102 according to a receding horizon technique (e.g., one microsecond, half a second) substantially simultaneously and based at least in part on the perception data and / or simulated perception data (which may further include predictions regarding objects detected in such data), to control the vehicle to traverse the route (e.g., to avoid any of the detected objects), and select one of the potential trajectories as the trajectory 118 of the vehicle 102, which may be used to generate drive control signals that may be transmitted to drive components of the vehicle 102. FIG. 1 depicts an example of such a trajectory 118 represented as an arrow indicating a course, speed, and / or acceleration, but the trajectory itself may include instructions for the controller 116, which may in turn operate the drive system of the vehicle 102.

[0028] The tracking component 114 can receive one or more environment representations and / or object detections from a respective perception pipeline (e.g., a vision pipeline, a lidar pipeline, a hybrid visual lidar pipeline, a radar pipeline, a hybrid visual lidar radar pipeline, etc.) and can determine whether to associate a previously generated journey with the current object detection or generate a new journey in relation to the current object detection. The tracking component 114 can additionally or alternatively determine a final environment representation and / or estimated object detection that may serve as a summary of the different object detections. In one example, the tracking component 114 described herein can determine an estimated object detection by inputting object detections and / or environment representations generated by one or more sensor types (e.g., separate sensor types such as lidar, RGB camera, thermal imagery, sonar, radar, etc., and / or hybrid sensor types such as visual lidar connection, lidar radar connection, etc.) into an ML model described herein that is trained to output a final environment representation that may include an estimated object detection. In one example, if the relevance of an estimated object detection to a projection of a previous leg (e.g., a score based at least in part on area union intersection (IOU), size and / or feature comparison) meets or exceeds a threshold, the estimated object detection may be associated with the previous leg instead of being based on the determination of the raw object detection. If the IOU does not meet the threshold, the raw object detection may be included in the determination.

[0029] 1 illustrates a top-down representation 120 of an environment that may be part of a final environment representation determined by the ML model of the tracking component 114. In this case, the top-down representation 120 shows object detections illustrated as estimated ROIs 122. The top-down representation 120 and / or estimated ROIs 122 can be determined by the ML model of the tracking component 114 based at least in part on object detections received from one or more perception pipelines. For example, the object detections provided as inputs to the ML model may include three-dimensional ROIs associated with the image 124, one of which is illustrated as ROI 126, and a top-down ROI associated with the lidar data 128 (e.g., which may be two-dimensional and / or three-dimensional), of which ROI 130 is illustrated.

[0030] The estimated ROI 122 may be part of an estimated object detection generated by an ML model associated with an object identified by at least one of the perception pipelines. The estimated ROI 122 is depicted to include a center 132 and an extent (black line). The extent may be defined at least in part based on an anchor box associated with an object classification determined by the ML model in association with the estimated object detection. In additional or alternative examples, the estimated ROI may include another form of boundary shape or any other identification of a part of the top-down representation, such as a mask.

[0031] FIG. 1 also illustrates a previous ROI 134 associated with a trajectory 136 previously generated by the tracking component 114 in association with one or more object detections. In one example, the trajectory 136 may relate to one or more previous object detections and / or indicate data associated therewith, such as speed, acceleration, path, object classification, unique identifier, occlusion status (e.g., whether the object is currently / previously partially or completely occluded from one or more sensors). The previous ROI 134 may be associated with any of the data described herein to be associated therewith (e.g., occupation map, top-down segmentation, object classification, object path, object speed and / or acceleration). For example, the previous ROI 134 may be associated with the object 138 and the object classification 140 "vehicle". For illustrative purposes, the previous ROI 134 may be associated with the most recent object detection associated with the trajectory 136.

[0032] Techniques described herein may include projecting the previous ROI 134 into a time associated with the estimated ROI 122, which may include predicting a position, orientation, velocity, acceleration, etc. of an object associated with the previous ROI 134 based on the itinerary 136 and the co-associated data. FIG. 1 depicts such a projection 142 of the previous ROI 134 with a dashed line. In the depicted example, the IOU between the estimated ROI 122 meets or exceeds an association threshold because the estimated ROI 122 is also associated with a vehicle and / or the IOU between the projection 142 and the estimated ROI 122 meets or exceeds an IOU threshold.

[0033] However, the journey may include at least the previous ROI, which may include center, extent, etc., and the estimated object detection may include the estimated ROI 122. In one example, the techniques described herein may include projecting the previous ROI based at least in part on a speed and / or path associated with the journey. If the IOU, center-to-center distance, embedding distance, or Munkres match of the estimated ROI 130 from the projected ROI 136 meets a threshold, the estimated object detection may be added to the journey 136. If not, the estimated object detection may be associated with a new journey and / or an alternative tracking component may use the raw detection to generate the journey.

[0034] (Example System) FIG. 2 illustrates a block diagram of an example system 200 implementing the techniques described herein. In one example, the example system 200 may include a vehicle 202, which may represent the vehicle 102 of FIG. 1. In one example, the vehicle 202 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire journey, and where a driver (or passenger) is not expected to control the vehicle at any time. However, in other examples, the vehicle 202 may be a fully or partially autonomous vehicle having other levels or classifications. Additionally, in some cases, the techniques described herein may be usable by non-autonomous vehicles.

[0035] Vehicle 202 may include vehicle computing device 204, sensors 206, emitters 208, network interfaces 210, and / or drive components 212. Vehicle computing device 204 may represent computing device 106, and sensor 206 may represent sensor 104. System 200 may additionally or alternatively include computing device 214.

[0036] In one example, the sensors 206 may represent the sensors 104 and may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., global positioning system (GPS), compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), image sensors (e.g., red-green-blue (RGB), infrared (IR), intensity, depth, time-of-flight cameras, etc.), microphones, wheel encoders, environmental sensors (e.g., thermometers, hygrometers, light sensors, pressure sensors, etc.), etc. The sensors 206 may include various instantiations of each of these or other types of sensors. For example, the radar sensors may include individual radar sensors located at corners, front, rear, sides, and / or top of the vehicle 202. As another example, the cameras may include various cameras positioned at various locations about the exterior and / or interior of the vehicle 202. The sensors 206 may provide input to the vehicle computing device 204 and / or the computing device 214.

[0037] The vehicle 202 may also include emitters 208 for emitting light and / or sound, as described above. The emitters 208 in this example may include interior audio and visual emitters for communicating with occupants of the vehicle 202. By way of example and not limitation, the interior emitters may include speakers, lights, cues, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, head rest positioners, etc.), and the like. The emitters 208 in this example may also include exterior emitters. By way of example and not limitation, the exterior emitters in this example may include lights or other indicators of vehicle operation for signaling heading (e.g., indicator lights, cues, light arrays, etc.), and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audibly communicating with pedestrians or other nearby vehicles, one or more of which may include acoustic beam steering technology.

[0038] Vehicle 202 may also include a network interface 210 that enables communication between vehicle 202 and one or more other local or remote computing devices. For example, network interface 210 may facilitate communication of vehicle 202 and / or drive module 212 with other local computing devices. Network interface 210 may also additionally or alternatively enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). Network interface 210 may additionally or alternatively enable vehicle 202 to communicate with computing device 214. In one example, computing device 214 may include one or more nodes of a distributed computing system (e.g., a cloud computing architecture).

[0039] The network interface 210 may include physical and / or logical interfaces for connecting the vehicle computing device 204 to another computing device or network, such as the network 216. For example, the network interface 210 may enable Wi-Fi-based communications, such as frequencies defined by the IEEE 200.11 standard, short-range wireless frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or via an appropriate wired or wireless communication protocol that enables each computing device to interface with other computing devices. In some cases, the vehicle computing device 204 and / or the sensors 206 may transmit sensor data to the computing device 214 over the network 216 at a particular frequency, in near real-time, after a predetermined period of time, or the like.

[0040] In some examples, the vehicle 202 may include one or more drive components 212. In some examples, the vehicle 202 may have one drive component 212. In some examples, the drive component 212 may include one or more sensors to detect the environment surrounding the drive component 212 and / or the vehicle 202. By way of example and not limitation, the sensors of the drive component 212 may include one or more wheel encoders (e.g., rotational encoders) to sense the rotation of the wheels of the drive component, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure the orientation and acceleration of the drive component, cameras or other image sensors, ultrasonic sensors to acoustically detect objects in the environment surrounding the drive component, lidar sensors, radar sensors, etc. Some sensors, such as wheel encoders, may be unique to the drive component 212. In some cases, the sensors of the drive component 212 may overlap or complement corresponding systems (e.g., sensors 206) of the vehicle 202.

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

[0042] The vehicle computing device 204 may include a processor 218 and a memory 220 communicatively coupled to the one or more processors 218. The memory 220 may represent the memory 108. The computing device 214 may also include a processor 222, and / or a memory 224. The processor 218 and / or 222 may be any suitable processor capable of processing data and executing instructions to perform operations as described herein. By way of example and not limitation, the processor 218 and / or 222 may include one or more central processing units (CPUs), graphics processing units (GPUs), integrated circuits (e.g., application specific integrated circuits (ASICs)), gate arrays (e.g., field programmable gate arrays (FPGAs)), and / or other devices or portions of devices that process electronic data and convert the electronic data into other electronic data that may be stored in registers and / or memory.

[0043] Memory 220 and / or memory 224 may be exemplary of a non-transitory computer-readable medium. Memory 220 and / or 224 may store an operating system and methods described herein for implementing one or more software applications, instructions, programs, and / or data whose functionality is attributed to various systems. In various implementations, memory may be implemented using suitable memory technology such as static RAM (SRAM), synchronous DRAM (SDRAM), non-volatile / flash type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which those shown in the accompanying drawings are merely exemplary in connection with the description herein.

[0044] In one example, memory 220 and / or memory 224 may store a localization component 226, a perception component 228, a planning component 230, a tracking component 232, a map 234, and / or a system controller 236. The perception component 228 may represent the perception component 110, the planning component 230 may represent the planning component 112, and / or the tracking component 232 may represent the tracking component 114.

[0045] In at least one example, the localization component 226 may include hardware and / or software to receive data from the sensors 206 to determine a position, velocity, and / or orientation (e.g., one or more of an x ​​position, a y position, a z position, a roll, a pitch, or a yaw) of the vehicle 202. For example, the localization component 226 may include and / or request / receive a map 234 of the environment and can continually determine the position, velocity, and / or orientation of the autonomous vehicle within the map 234. In one example, the component 226 can utilize simultaneous localization and mapping (SLAM), calibration, localization and mapping, simultaneously (CLAMS), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc. to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc., to accurately determine the position, attitude, and / or velocity of the autonomous vehicle. In one example, the localization component 226 may provide data to various components of the vehicle 202 to generate a trajectory and / or determine an initial position of the autonomous vehicle for generating map data, as described herein. In one example, the localization component 226 may provide the tracking component 232 with the position and / or orientation of the vehicle 202 relative to the environment and / or sensor data with which it is associated.

[0046] In one example, the perception component 228 may include a primary perception system and / or prediction system implemented in hardware and / or software. The perception component 228 may detect objects in the environment surrounding the vehicle 202 (e.g., identify an object as present), classify objects (e.g., determine an object type associated with a detected object), segment sensor data and / or other representations of the environment (e.g., identify a portion of the sensor data and / or environmental representation as associated with a detected object and / or object type), determine features associated with the object (e.g., steps to identify a current, predicted, and / or previous position, orientation, velocity, and / or acceleration associated with an object), and the like. Data determined by the perception component 228 is referred to as perception data.

[0047] The planning component 230 can receive the position and / or orientation of the vehicle 202 from the localization component 226 and / or the sensory data from the perception component 228, and can determine instructions for controlling the operation of the vehicle 202 based at least in part on any of this data. In one example, determining the instructions can include determining the instructions based at least in part on a format associated with a system with which the instructions are associated (e.g., a first instruction for controlling movement of the autonomous vehicle can be formatted in a first format of messages and / or signals (e.g., analog, digital, pneumatic, kinematic) that the system controller 236 and / or the drive component 212 can parse / execute, and a second instruction for the emitter 208 can be formatted according to a second format with which they are associated).

[0048] The tracking component 232 may operate on the vehicle 202 and / or the computing device 214. In one example, the tracking component 232 may be upstream (providing input) from the planning component 230 in the pipeline and downstream (receiving input) from at least one of the perception components 228. The tracking component 232 may be configured to pass all, some, or none of the output of the tracking component 232 to the planning component 230. In one example, the tracking component 232 may be part of the perception component 228. In one example, the tracking component 232 may include an ML model described herein that determines a final environment representation, which may include estimated object detections. The tracking component 232 may additionally or alternatively include a first component that receives estimated object detections generated by the ML model, and at least one "raw" object detection generated in association with a sensor type (e.g., one of the inputs to the ML model), and / or a second component that receives one or more object detections associated with the estimated object detection and the journey. In any case, the first and / or second components of the tracking component can determine whether to associate the estimated object detection with a journey or generate a new journey associated with the object detection. The tracking component 232 can additionally or alternatively output the speed, path, and / or other historical or current characteristics of one or more object detections, all or some of which may be at least a portion of the journey.

[0049] Memory 220 and / or 224 may additionally or alternatively store a mapping system (e.g., generating a map based at least in part on the sensor data), a planning system, a ride management system, etc. Although localization component 226, perception component 228, planning component 230, map 234, and / or system controller 236 are illustrated as being stored in memory 220, any of these components may include processor-executable instructions, machine learning models (e.g., neural networks), and / or hardware, and all or a portion of any of these components may be stored in memory 224 or configured as part of computing device 214.

[0050] As described herein, the localization component 226, the perception component 228, the planning component 230, the tracking component 232, and / or other components of the system 200 may include one or more ML models. For example, the localization component 226, the perception component 228, the planning component 230, and / or the tracking component 232 may each include a different ML model pipeline. In one example, the ML model may include a neural network. An example neural network is a biologically inspired algorithm that passes input data through a series of connected layers to produce an output. Each layer in a neural network may also include another neural network, or may include any number of layers (convolutional or not). As can be understood in the context of this disclosure, the neural network may utilize machine learning, which can refer to a broad class of such algorithms in which an output is generated based on learned parameters.

[0051] Although described in the context of neural networks, any type of machine learning can be used consistent with the present disclosure. For example, machine learning algorithms can include regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally estimated scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least-angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomiser 3 (ID3), chi-squared automated interaction detection (CHAID), decision stump, conditional decision tree), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average one-dependence (AODE), etc.), and / or feature-based algorithms (e.g., eigenvalues ​​... estimators), Bayesian belief networks (BNNs), Bayesian networks), clustering algorithms (e.g., k-means, k-medians, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., perceptrons, backpropagation, Hopfield networks, RBFNs (Radial Basis FunctionNetwork), deep learning algorithms (e.g., Deep Boltzmann Machines (DBM), Deep Belief Networks (DBN), Convolutional Neural Networks (CNN), stacked autoencoders), dimensionality reduction algorithms (e.g., Principal Component Analysis (PCA), Principal Component Regression (PCR), Partial Least Squares Regression (PLSR), Sammon Mapping, Multidimensional Scaling (MDS), Projection Pursuit, Linear Discriminant Analysis (LDA), Mixture Discriminant Analysis (MDA), Quadratic Discriminant Analysis (QDA), Flexible Discriminant Analysis (FDA)), ensemble algorithms (e.g., Boosting, Bootstrap Aggregation (Bagging), AdaBoost, Stacked Generalization (Blending), Gradient Boosting Machines (GBM), Gradient Boosted Regression Trees (GBRT), Random Forests), SVM (Support Vector Machines), supervised learning, unsupervised learning, semi-supervised learning, etc., but are not limited to these. Further examples of architectures include neural networks such as ResNet-50, ResNet-101, VGG, DenseNet, PointNet, etc. In some examples, the ML models described herein may include PointPillars, SECOND, top-down feature layers (see, e.g., U.S. Patent Application No. 15 / 963,833, which is incorporated herein in its entirety), and / or VoxelNet. Latency optimization architectures may include MobilenetV2, Shufflenet, Channelnet, Peleenet, etc. The ML models may include residual blocks such as Pixor, in some examples.

[0052] The memory 220 may additionally or alternatively store one or more system controllers 236, which may be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of the vehicle 202. These system controllers 236 may communicate with and / or control corresponding systems of the drive component 212 and / or other components of the vehicle 202. For example, the planning component 230 may generate instructions based at least in part on the sensory data generated by the perception component 228, may validate the sensory data, or may transmit instructions to the system controller 236. The system controller 236 may control operation of the vehicle 202 based at least in part on the instructions received from the planning component 230.

[0053] 2 is illustrated as a distributed system, it should be noted that in alternative illustrations, components of the vehicle 202 may be associated with the computing device 214 and / or components of the computing device 214 may be associated with the vehicle 202. That is, the vehicle 202 may perform one or more functions associated with the computing device 214, and vice versa.

[0054] (Example System) FIG. 3 illustrates a block diagram of an example perception system 300 for determining an estimated object detection from one or more object detections received from different perception pipelines and / or determining an updated or new journey based at least in part on the estimated object detection. The example perception system 300 may include any number of pipelines for determining characteristics of the surroundings of the perception system 300. For example, the pipelines may determine characteristics of what is in the autonomous vehicle's environment and / or sensors and / or objects in the environment. FIG. 3 depicts three pipelines: a vision pipeline 302, a radar pipeline 304, and a lidar pipeline 306, although any number and type of pipelines are contemplated. For example, the pipelines may be associated with the same type of sensor (e.g., one or more cameras, one or more lidar sensors, one or more radar sensors), direction of view (e.g., one or more cameras with overlapping views), diverse types of sensors (e.g., a hybrid vision lidar pipeline), data from other sources (e.g., data from a remote computing device, map data stored in memory), etc.

[0055] In any event, one or more of the pipelines of the pipelines may be configured to receive the sensor data and determine one or more outputs. For simplicity, the collective output of the pipelines is referred to herein as an environment representation. The environment representation may include one or more object detections and may include one or more output types. For example, the vision pipeline 302 may output an environment representation 308 based at least in part on the vision data 310 (e.g., sensor data including one or more RGB images, thermal images). The environment representation 308 generated by the vision pipeline 302 may include one or more object detections, at least one of which is a 2D ROI associated with the object, - a three-dimensional ROI associated with an object such as one of those depicted at 312, as described in further detail in U.S. Patent Application Serial Nos. 15 / 970,838 and 16 / 386,249, which applications are incorporated herein by reference in their entireties; Depth estimates associated with objects and / or ROIs (e.g., estimates of distance from the sensor / vehicle to the object), as described in U.S. patent application Ser. No. 15 / 970,838; - the height of the object as described in US patent application Ser. No. 15 / 970,838; - object classifications and / or likelihoods associated with an object, the likelihood indicating a posterior probability that the sensor data is associated with an object of a type specified by the object classification (e.g., a vehicle, a pedestrian, an articulated vehicle, an animal, a child); in one example, the object classifications and / or likelihoods may be associated with distinct portions of the sensor data, such as pixels; -Indications that objects classified as pedestrians or animals are standing, walking, or running; -Indicating the state (e.g., turn indicator, stop indicator, warning indicator) and / or position of brake or other indicator lights associated with a vehicle, bike, etc. (e.g., headlights, side mirror lights); - the location (e.g., center and / or extent) of the object relative to the environment representation (e.g., a voxelization of the environment, a mesh representation of the environment), the pose of the object, which may include the position and / or path of the object; an occupancy map 314 (e.g., an instance segmentation of whether there are objects occupying a pixel / voxel), which may include the parts that are indicated as being occupied by objects; and / or - may include an occlusion grid (e.g., including the probability that a part of the environment is occluded from the line of sight to one or more visual sensors).

[0056] In one example, the vision pipeline may classify a motorcyclist as a pedestrian or cyclist, but the associated object classification may be modified to indicate that the object is a motorcyclist, based at least in part on the journey associated with the motorcyclist, in accordance with the techniques presented herein. For example, the journey may indicate that the motorcyclist is moving faster than a pedestrian or cyclist can move, and the object classification may be corrected accordingly. Similarly, class information may be associated with the journey. In such an example, previous class information associated with the class (e.g., from one or more previous times) may be used to further increase confidence that the object classification output from the vision pipeline should be changed. Of course, such modifications may be the output of a component, subcomponent, or other algorithmically executed component that receives the perceptual classification as an input or otherwise tracks the information.

[0057] The radar pipeline 304 can determine an environment representation (not shown to conserve drawing space); an occupancy map, which may include portions that are indicated as being occupied by objects; - radar detection (which in some instances may be rasterized into a representation of the environment, such as a three-dimensional or top-down representation); an occlusion grid (e.g., including the probability that a portion of the environment is occluded from the line of sight to one or more radar sensors), as described in more detail in U.S. Patent Application No. 16 / 407,139, which is incorporated herein by reference in its entirety; Yaw rate associated with an object, as described in more detail in U.S. Patent Application No. 16 / 416,686, which is incorporated herein by reference in its entirety; A velocity associated with the object (e.g., a ground range rate associated with the object); Radar Cross Section (RCS), and / or Includes ROI and / or object classification.

[0058] The lidar pipeline 306 can determine an environment representation 316; an occupancy map 318, which may include portions that are shown as being occupied by objects; -Occlusion grid (e.g., including the probability that a part of the environment is occluded from the line of sight to one or more lidar sensors) - an ROI and / or object classification associated with the object, and / or - including top-down segmentation as described in further detail in U.S. Patent Application No. 15 / 963,833, which is incorporated herein in its entirety (e.g., a top-down indication of whether a portion of the environment is occupied and / or a top-down ROI, such as the lidar top-down ROI depicted at 320).

[0059] The pipelines shown and described with respect to FIG. 3 are merely exemplary. The perception system 300 may include more, less, and / or different pipelines than those described herein. Additionally, the pipelines may be intermixed instead of neatly separated as depicted. For example, at least some of the above environment representations may be a product of portions of two different pipelines. Note that in the depicted examples, due to limited space and the expansion of the visual environment representation and the lidar environment representation for clarity, specific details regarding the radar environment representation are not depicted, but radar pipelines and radar environment representations are additionally or alternatively contemplated.

[0060] The various environment representations generated by the different pipelines may be aggregated into a multi-channel data structure 322. For example, the aggregation may include projecting the data into a common representation of the environment, such as a common reference frame and / or a voxel space having identical dimensions, a mesh representation, etc. The aggregation may additionally or alternatively include determining a top-down representation of one or more portions of the environment representation, such as projecting a three-dimensional ROI from a top-down perspective into a two-dimensional ROI, and / or determining a top-down two-dimensional ROI based at least in part on a two-dimensional ROI associated with a sensor perspective, depth, and / or object classification. In one example, the multi-channel data structure 322 may include a multi-channel image, where it may be associated with different pipelines and / or different types of outputs (e.g., occupancy maps, occlusion grids, ROIs, object classifications). For example, a first channel of an image may include pixels that indicate whether each portion of the environment is occupied / unoccupied as determined by a vision pipeline, a second channel of an image may include pixels that indicate whether each portion of the environment is occupied / unoccupied as determined by a lidar pipeline, a third channel may include pixels that indicate whether each portion of the environment is associated with a particular object classification, etc.

[0061] The multi-channel data structure 322 may include the output of data received from one or more perception pipelines and / or other sources (e.g., from a memory of the autonomous vehicle, from a remote computing device). For example, the multi-channel data structure 322 may include a top-down representation of the environment (e.g., which may be two-dimensional, three-dimensional, or higher dimensional), an occupancy map of the environment, a representation of occluded portions of the environment, an ROI associated with the object, an object classification associated with the object, a segmentation of the sensor data, a three-dimensional discretized representation of the sensor data, a yaw and / or yaw rate associated with the object, a velocity and / or acceleration associated with the object, a set of ranges (e.g., dimensions) associated with the object, and / or an estimate of ground clearance, as described in U.S. Patent Application Serial No. 16 / 698,055, filed November 27, 2019, which is incorporated herein in its entirety and described in further detail herein.

[0062] As used herein, an object detection may be part of one or more environment representations that indicate the presence of an object, such as an ROI, a positive occupancy indication, an object classification, etc.

[0063] In one example, the previous journey 324 and / or previous environment representation 326 may be part of the multi-channel data structure 322 or may otherwise be provided as an input to the ML architecture 328. For example, the previous journey 324 and / or previous environment representation 326 may be associated with the last n (n being a positive integer) time steps in which an environment representation was generated by the pipeline and / or the determined journey. For example, the system may be synchronized at or by a time interval (e.g., every 10 ms, every 100 ms, every 500 ms) to determine the environment representation and / or journey. The journey and / or environment representation determined in the previous n time steps. In additional or alternative examples, for example where the perception system is semi-synchronous or asynchronous, the previous journey 324 and / or previous environment representation 326 may be associated with a time window. For example, this data may be accumulated on a rolling basis over 2 seconds, 3 seconds, 5 seconds, and / or any other time window appropriate to the application.

[0064] The multi-channel data structure 322 may be provided as an input to an ML architecture 328, which may be trained to determine a final environment representation including one or more estimated object detections 330. For example, the ML architecture 328 may determine a top-down representation of the environment including an indication that a portion of the environment is occupied, an ROI and / or object classification associated with the occupied portion (e.g., an object), an object orientation (e.g., yaw and / or yaw / path segment), a velocity associated with the object (e.g., stationary / moving indication, lateral and / or longitudinal velocity, yaw rate), a height associated with the object, and / or a predicted ROI associated with a future time step. In one example, the final environment representation may be a multi-channel data structure such as an image, where different image channels indicate different values ​​as described above, although in additional or alternative examples, the estimated object detections 330 may be output in a unique data structure such as a path, tensor, or other data structure with which it is otherwise associated. In one example, the estimated object detection may be associated with one or more portions (e.g., pixels, regions) of the final environment representation, and in at least one example, each of the one or more portions may indicate a velocity associated with the object. In the latter example, the technique may include determining a final velocity and / or yaw rate associated with the object based at least in part on the velocity indicated by the one or more portions.

[0065] The final environment representation and / or estimated object detections 330 may be provided as inputs to a tracking component 332. The tracking component 332 may be trained and / or configured to determine whether to associate the estimated object detections with a previous journey 334, with a new journey, or to advance one or more object detections from the pipeline and / or the estimated object detections 330 to the incidental tracking component. In one example, the tracking component 332 can output an updated or new journey 336 to the planning component based at least in part on the determinations described herein.

[0066] In one example, the incidental tracking component may be a tracking component configured to receive raw environment representations from the pipelines and determine a journey therefrom, where the incidental tracking component may in some cases require more computation and / or memory to use more data across different pipelines to determine whether an object detection is a false positive and / or associate the object detection with a previous journey or a new journey.

[0067] (Example Processing) 4 illustrates a pictorial flow diagram of an example process 400 for determining a final environment representation and / or estimated object detection from the various object detections and / or environment representations generated by one or more perception pipelines. The example process 400 can additionally or alternatively track objects in the environment based at least in part on determining to associate the estimated object detection with a previous journey, determining to generate a new journey associated with the estimated object detection, and / or determining to forward data described herein to an incidental tracking component.

[0068] At operation 402, the example process 400 may include receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type in accordance with any of the techniques described herein. For example, the first object detection 404 may be part of a first environment representation 406 received from a first pipeline 408, and the second object detection 410 may be part of an nth object environment representation 412 received from an nth pipeline 414.

[0069] Although the figure depicts the object detection and environment representation as a top-down ROI, in at least one example, the object detection may include lidar-based object detection, radar-based object detection, and / or vision-based object detection. Lidar-based object detection may include lidar occupancy maps, lidar-based 2D or 3D ROIs, top-down segmentation ROIs, top-down segmentation maps, lidar occlusion grids, and / or object classification. Radar-based object detection may include radar occupancy maps, ground-based range rates, RCS, radar-based ROIs and / or object classification, and / or radar occlusion grids. Vision-based object detection may include visual occlusion grids, instance segmentation, 2D ROIs (e.g., in image space), 3D ROIs, depth, object classification, visual embedding, and / or object pose (e.g., position and / or orientation). Additional or alternative object detection may be used. In certain instances, some of the above object detection components may include hybrid components, such as, for example, radar-based ROI, pose data, or 3D ROI, any of which may be lidar, radar, and / or vision-based.

[0070] At operation 416, the example process 400 may include receiving a trajectory associated with an object in the environment according to any of the techniques described herein. For example, the trajectory 418 may be a trajectory previously determined in relation to a previous time step. In the depicted example, the trajectory 418 is associated with an object detected by the first pipeline 408 and the nth pipeline 414, as shown by object detection 404 and object detection 410. The trajectory 418 may relate any of the object detection data from different pipelines and / or may include estimated object detections generated by the ML model from a previous time step, a statically set time window at least in the past, or a time window set by the speed of the vehicle, a number of objects being tracked (e.g., more objects, a smaller time window to conserve data, or more objects, the same or a larger time window to track objects through occlusions), or a combination thereof. The process ultimately shows that two different object detections produced by two different pipelines are associated with the same object, and / or two different object detections at a time produced by the same or different pipelines are associated with the same object.

[0071] The depicted process 418 relates previous estimated object detections generated by the ML model, which in the depicted example include four two-dimensional (top-down) ROIs (420) associated with the same vehicle in the environment surrounding the autonomous vehicle, the vehicle's pose, and the historical location of the vehicle's center shown as a line through the ROIs. The estimated object detections may additionally or alternatively include an object classification, such as "vehicle" in this case, the vehicle's historical and / or (previously) predicted speed, per-pixel occupancy (e.g., a mask of pixels associated with the vehicle), the vehicle's estimated height, etc.

[0072] In operation 422, exemplary process 400 may include inputting first object detection, second object detection, and / or a trajectory into an ML model according to any of the techniques described herein. In one example, the object detection and / or trajectory may be aggregated into a multi-channel data structure. In one example, some portion of the object detection may be projected into a voxel space and / or rendered in a two-dimensional top-down view prior to operation 422.

[0073] Note that object detection may be provided to the ML model as part of the environmental representation. For example, environmental representation 406, as described above, includes various object detections and object velocities, data not shown such as an estimated height. In one example, the environmental representation may be aggregated and provided to the ML model as input. In one example, the object detection may be separated from the remainder of the environmental representation and provided as input. For example, the environmental representation may be in a common reference frame or may be converted to a common reference frame during aggregation. The pipeline may be configured to output certain object detections along with their coordinates in the common reference frame. For example, these certain object detections may be part of the environmental representation associated with a likelihood that meets or exceeds a threshold confidence. Each and any of the above object detection components may be associated with a regression confidence score. For example, object classification may be associated with a confidence score, ROIs may be determined based at least in part on confidence scores associated with different pixels via non-maximum suppression techniques, occupancy may be determined based at least in part on likelihoods associated with respective pixels, and may be determined by an ML model such as each respective pipeline.

[0074] At operation 424, the example process 400 may include receiving an estimated object detection 426 as an output from an ML model, according to any of the techniques described herein. In one example, the ML model may be trained to output a final environment representation 428 and / or an estimated object detection 426. The estimated object detection 426 may be part of the final environment representation 428 with properties of the final environment representation 428 indicating that a portion of the environment is occupied and / or associated with an object classification. The ML model may be trained to output a ROI (e.g., center and / or extent) associated with the object, an object classification associated with the object, an estimated pose (e.g., position and / or orientation) of the object, an estimated velocity of the object, and / or an estimated height of the object. The ML model may additionally or alternatively determine a confidence score associated with any of these outputs. In one example, the ROI may be generated based at least in part on an anchor box or any other canonical object shape associated with the object classification on which the ML model was trained.

[0075] In one example, the final environment representation may include a multi-channel image of a top-down representation of the environment, which may include separate portions in different channels such as pixels indicating the distance to the center of the closest ROI, the extent of the ROI, the likelihood that the pixel is associated with an object (e.g., used for non-maximum suppression to generate the ROI), the likelihood that the pixel is associated with a specific object classification of multiple object classifications, orientation, velocity, and / or estimated height.

[0076] In one example, the ML model can determine a class associated with the orientation indicating the segment into which the orientation falls (e.g., north, south, east, west, 45° segments, 90° segments, 180° segments, or any other number and type of course segments) and / or a regression associated with the orientation (e.g., the number of degrees of variation from the center of the segment determined in relation to the pixel).

[0077] In one example, the ML model can determine speed using a classification algorithm, resulting in an output such as static or dynamic, or a segment of speed (e.g., 5, 10, 15 increments, or such miles per hour, where the segment may indicate that the object is moving between 1-10 miles per hour in at least one example). Additionally or alternatively, the ML model can determine speed using a regression task, either as an offset from the center of the speed segment (e.g., where the speed value may be determined by adding / subtracting a regression from the value of the segment into which the object was classified), or as a stand-alone regression (e.g., where the regression task directly determines the speed). In one example, the speed binning and / or regression task may be based at least in part on one or more previous object detections and / or journeys that are part of the input multi-channel image. Similarly, the ML model can determine an estimated height using a classification task (e.g., as a height segment) and / or a regression task (e.g., as an offset from the height segment or a direct regression height).

[0078] In one example, training the ML model may include determining a classification loss based at least in part on the difference between the object classification, orientation classification, speed classification, and / or estimated height classification and the respective ground truth (e.g., semantic labels for object classification, ground truth instance segmentation, and / or ground truth ROI, ground truth orientation indication for orientation classification, ground truth speed for speed classification, ground truth height for height classification). In one example, a total classification loss may be determined by summing these losses. In one example, determining the classification loss may include determining a cross-entropy focal loss, as described in more detail in U.S. Patent Application No. 16 / 013,729, which is incorporated herein by reference in its entirety, although other forms of loss are contemplated. In one example, determining the classification loss for the classification may be based at least in part on cross-entropy or Huber loss.

[0079] Training the ML model may additionally or alternatively include determining one or more regression losses based at least in part on the distance to the center of the ROI, which may be shown in logarithmic space, between the estimated orientation or offset from the orientation segment, the estimated velocity or offset from the velocity segment, and / or the estimated height or offset from the height segment, and the respective ground truths associated with each. Determining the regression loss may include determining an L1 (or any other loss) loss for each of one or more of the regression outputs above, and summing the regression losses to determine a total regression loss.

[0080] Training the ML model may additionally or alternatively include determining a total loss by summing the total classification loss and the total regression loss. In one example, the ML model may be trained to output an uncertainty associated with each task. The losses determined for the tasks may be weighted based at least in part on the uncertainty output associated with the output task, such that the greater the uncertainty, the greater the weighting applied to the loss and the greater the combined loss. This weighting may occur prior to determining the total classification loss and / or the total regression loss, but it may occur at another time. In one example, the uncertainty may be based at least in part on covariance and / or may be heteroscedastic.

[0081] In one example, the total loss, whether weighted or not, may be backpropagated through various regression and / or classification components of the ML model, which may include adjusting one or more parameters of one or more components to minimize the total loss. Additionally or alternatively, the total loss may be backpropagated through one or more of the pipelines or parts of the pipeline. For example, the total loss may be used to adjust one or more parameters of a top-down segmentation component, a ROI component, an orientation component, a velocity component, and / or an elevation component of a vision pipeline, a lidar pipeline, etc.

[0082] In some examples, the losses described herein may be determined by object-based detection instead of or in addition to pixel-based losses. Determining the losses on an object-based detection basis may increase the accuracy of the ML model in determining estimated object detections for small objects. In some examples, the losses may be determined at least in part based on ground truth including indications of object contours, instance segmentation that identifies pixels and / or subpixels associated with the object, and the like.

[0083] In some examples, the ML model may additionally or alternatively output an indication of a journey with which the estimated object is associated. In some examples, the ML model may output an embedding associated with the object detection for use in determining whether to generate a new journey or associate the object detection with a previous journey. The embedding may in some examples be based at least in part on other outputs of the ML model. For example, the embedding may be determined by a component of the ML model that receives other outputs of the ML model (e.g., ROI, object classification, estimated orientation, estimated speed, estimated height, estimated direction), but the embedding may additionally or alternatively be determined at least in part based on an output of one or more of the perception pipelines.

[0084] In additional or alternative examples, the ML model may be configured to output object detections as described herein for different height intervals. For example, a first set of channels of a multi-channel output image may include object detections for a first height range (e.g., 0.25 meters to 2 meters), a second set of channels may include object detections for a second height range (e.g., 2 meters to 4 meters), etc. Any other height intervals may be used.

[0085] At operation 432, the example process 400 may include determining an updated (432) or new journey associated with the object based at least in part on the estimated object detection according to any of the techniques described herein. In one example, operation 432 may additionally or alternatively be based at least in part on one or more previous journeys and / or estimated object detections. In one example, the example process 400 may include determining to update for each previous journey currently stored in memory. Updating the journey may include associating one of the estimated object detections with the journey indicating that the journey is associated with an object that may be partially or fully occluded (e.g., an occluded status flag may be changed) and / or deactivating the journey. Deactivating the journey may include indicating that an object associated with the journey has been occluded for at least a threshold time such that the object may no longer be in the field of view and / or deleting the journey. Once all journeys have been updated, any remaining estimated object detections that are not associated with a journey may be passed to an alternative tracking component and / or associated together to generate a new journey.

[0086] 5 is a pictorial flow diagram illustrating an example process 500 for tracking an object in an environment based at least in part on an estimated object detection determined by an ML model described herein. The example process 500 may be at least a portion of operation 432 of the example process 400 or may be an independent process. Operation 432 may include determining an updated or new itinerary associated with the object based at least in part on the estimated object detection 432 according to any of the techniques described herein.

[0087] At operation 502, the example process 500 may include projecting at least a portion of a previous journey associated with a previous time to a current time according to any of the techniques described herein. For example, projecting at least a portion of a previous journey may include determining a projected ROI 504 based at least in part on a previous journey (e.g., journey 418). In one example, the projected ROI may be based at least in part on a latest ROI associated with the previous journey 418. FIG. 5 illustrates the latest ROI of the journey 418 by filling the ROI with black shading. The projected region 504 is depicted with a dotted line and may be based at least in part on a historical speed, orientation, and / or position associated with the journey 418. In additional or alternative examples, the projected ROI may include a predicted ROI output by the ML model at a previous time step.

[0088] It should be noted that while FIG. 5 illustrates a projected ROI 504, any of the other sensitive attributes associated with the estimated object detection may be projected. For example, the object classification should not change between frames, but the speed, orientation, height (e.g., because a pedestrian is sitting or crouching), ROI location, etc. may change and may be predicted / projected based at least in part on the trajectory 418 and / or associated data. For example, the trajectory 418 may be related to any of the previous estimated object detections generated by the ML model and associated data. Thus, while the projected ROI 504 is described herein, it is understood that the object classification, predicted speed, predicted orientation, predicted height, predicted location, predicted orientation, and / or predicted embedding may be associated together. Determining the projected ROI 504 may include determining an updated / predicted embedding based at least in part on the embedding and the predicted speed, predicted orientation, predicted height, predicted location, and predicted orientation associated with the projected ROI 504, depending on which data the embedding is based on. For example, if the embedding is based on malleable data such as speed and location, the embedding may be updated, but if the embedding is based on raw sensor data and / or perception pipeline data, the embedding may be used without updating.

[0089] At operation 506, the example process 500 may include determining a degree of association between the estimated object detection and the projected ROI according to any of the techniques described herein. For example, the estimated object detection may be at least a portion of the estimated object detection 426 determined by an ML model described herein. In one example, operation 506 may include determining a score based at least in part on an IOU between the projected ROI 504 and the estimated object detection 426, a Euclidean distance between a center of the estimated object detection 426 and the projected region of interest 504 (or a previous ROI), a Munkres match between the projected ROI 504 and the estimated object detection 426, or the like. In at least one example, determining the degree of association may include determining a difference (e.g., Euclidean distance) between an embedding associated with the projected region of interest 504 and an embedding associated with the estimated object detection 426. In one example, the embedding may take into account object classification, size, and / or other characteristics of the object detection. The relevance may, in at least one example, include one or a combination of a sum or weighted sum of IOUs, centroid distance, Munkres matching score, and / or inter-embedding distance, and the like.

[0090] In one example, the relevance may include a sum or weighted sum of the IOU and the distance between the embeddings. In such an example, such a sum may include the first IOU, or the (normalized) distance may be inverted after it is calculated, since a high IOU indicates similarity, whereas a high distance between the embeddings indicates dissimilarity. The IOU may be inverted by subtracting the IOU from 1. Since the IOU may range between 0 and 1, and the Euclidean distance between the embeddings may be significantly greater than 1, the Euclidean distance between the embeddings may be normalized based at least in part on the minimum and maximum distance between the embeddings in the learned embedding space. In additional or alternative examples, the logit of the IOU may be determined and scaled based at least in part on the maximum distance between the embeddings in the learned embedding space. In additional or alternative examples, the relevance may include a score determined at least in part on one or more relevance measures. For example, an ML model may be trained to receive the IOU, the distance between the embeddings, at least a portion of the journey, and / or at least a portion of the estimated object detection data, and output a score indicative of the likelihood that the estimated object detection data is associated with the previous journey.

[0091] At operation 508, the example process 500 may include determining whether the relevance meets a threshold relevance according to any of the techniques described herein. A relevance that meets the threshold relevance indicates that the object associated with the putative object detection 426 is / may be the same object, as indicated by act 418. If the relevance meets the threshold relevance, the example process 500 may continue to operation 510. On the other hand, if the relevance determined at operation 506 does not meet the threshold relevance, the example process 5008 may continue to operation 442.

[0092] A relevance may meet the threshold relevance if it includes an IOU, if a Munkres match is found, if the distance between embeddings is less than a threshold distance, if the distance between centers is less than a threshold distance, and / or if the composite score meets a threshold composite score, or if it exceeds a threshold IOU value. In accordance with the latter example, when IOU and distance between embeddings are combined to determine a score, as described above, the combined score may fall below the combined score threshold and satisfaction of the threshold combined score may be achieved if the IOU is inverted, and vice versa if the distance between embeddings is normalized and then inverted. In examples where multiple relevance measures are determined (e.g., ML model generated scores, IOU, distance between embeddings), operation 508 may include a rule set that specifies one or more of the relevance thresholds that must be met to move to operation 510 (e.g., all relevance measures must exceed a threshold associated with each relevance measure, at least one, two out of three, etc.).

[0093] At operation 510, the example process 500 may include associating the estimated object detection 426 with the journey 418 as an updated journey 430 according to any of the techniques described herein.

[0094] At operation 512, the example process 500 may include generating a new run associated with the estimated object detection and / or providing the first object detection, the second object detection, and / or the estimated object detection to an alternative tracking component according to any of the techniques described herein. Generating a new run indicates that the estimated object detection is associated with an object that was not previously detected by any of the perception pipelines and / or was not within the field of view of the co-associated sensors. In additional or alternative examples, the raw object detection from one or more pipelines and / or runs 418 may be provided as input to an alternative tracking component. In one example, the alternative tracking component may be configured to determine a new run or update a previous run based at least in part on comparing object detections from the various perception pipelines.

[0095] (Example Architecture) 6 is a block diagram illustrating an example architecture 600 of an ML model for generating estimated object detections as described herein. In an example, the example architecture 600 may be associated with one object classification or multiple object classifications. That is, the example architecture 600 may be received and / or trained for object detections associated with a specific object classification, or the example architecture 600 may be received and / or trained for object detections of various types of object classifications. In an example where the example architecture 600 is associated with one object classification, the ML model may include multiple instantiations of the example architecture 600 that are trained in association with different object classifications.

[0096] In any event, the example architecture 600 may include a first set of layers 602, a second set of layers 604, and / or a third set of layers 606, although additional or alternative sets of layers may be used. The layers may be part of an ML model, a sub-network, and / or a separate network. In at least one example, at least one of the set of layers 602-606 may include one or more convolutional layers, which may include learning parameters adjusted at least in part based on the loss, and / or a deconvolutional layer (e.g., to upsample their inputs). In an example, the multi-channel image may be provided as an input to any one or more of the first set of layers 602, the second set of layers 604, and / or the third set of layers 606. As noted above, the multi-channel image may include data from a current and / or previous time step. In one example, the outputs of the first set of layers 602 may be provided as inputs to an aggregation layer 608 and a second set of layers 604, the outputs of the second set of layers 604 may be provided as inputs to the aggregation layer 608 and a third set of layers 606, and the outputs of the third set of layers 606 may be provided as inputs to the aggregation layer 608.

[0097] In one example, the aggregation layer 608 may concatenate or upsample the output of each layer and sum element-wise to form a data structure. In one example, the data structure generated by the aggregation layer 608 may be provided as input to the classification layer 610 and / or the regression layer 612. The classification layer 610 may include one or more sets of convolutional layers or other components for the classification task described herein. In one example, the output layer for the classification task may output a tensor of likelihoods (or other data structure) where a distinct portion of a field indicates the likelihood that the associated portion of the environment is associated with a classification (e.g., occupied space, object classification, speed classification, orientation classification, height classification). For example, a first set of layers in the classification layer 610 may determine whether each portion of the environment is occupied or unoccupied and / or associated with a respective object classification, and another set of layers in the classification layer 610 may determine whether the environment is associated with an estimated height classification, etc. In one example, a separate portion of the set of object classification layers may additionally or alternatively include a likelihood associated with each of the object classifications on which the exemplary ML architecture 600 was trained. That is, the classification output head may output a binary indication that a portion of the environment is or is not associated with a class (e.g., height category, object classification, occupancy), or the classification output head may output a regression value to which the NMS algorithm may be applied to determine a classification. The output layer of the regression layer 612 may output a field of values ​​for those tasks being regressed, such as ROI center offset, ROI range, velocity offset, orientation offset, height offset, etc.

[0098] The various outputs of the classification layer 610 and / or regression layer 612 may be aggregated into a putative object detection 614. For example, this may include subtracting an offset from the segment value, determining an ROI based at least in part on a non-maximum suppression technique applied to the classification and / or regression output, determining that two or more ROIs are associated with an articulated object based at least in part on a center offset associated with the two or more ROIs, and grouping the two or more ROIs into one object detection, normalizing the output, and / or formatting the output into a common object detection format, such as a message for transmission in a publish-subscribe network. In one example, where the classification output includes the segment and the regression output includes offsets such as yaw, yaw rate, height, speed, acceleration, object range, etc., the classification may indicate the segment, which may be a range of values ​​(e.g., 0-5 meters, 0-10 miles per hour), and the (regressed) offset may specify a positive or negative value that is subtracted from the segment's reference point. For example, the reference point may be a midpoint of a segment (e.g., 3 meters in a segment specifying a range of 0 to 5 meters) or an end of the segment (e.g., 0 meters or 5 meters in a segment specifying a range between 0 to 5 meters). Note that the pose indicated as part of the data structure output by the ML models described herein may include the location, center, and / or orientation of the object (e.g., orientation may include yaw). In certain instances, the pose may additionally or alternatively include the range of the object.

[0099] (Example Architecture) FIG. 7 illustrates a pictorial flow diagram of an exemplary process for training an ML model to determine velocity and / or yaw rate associated with an object and / or for using an ML model to determine velocity and / or yaw rate at inference time.

[0100] At operation 702, the example process 700 may include receiving a plurality of velocities associated with a portion of the object detection from an ML model according to any of the techniques described herein. In certain examples, such velocities may include an environment velocity (e.g., an estimate of the velocity in the environment), while in other examples, the velocity may represent a pixel velocity (e.g., a velocity in pixel space / coordinates). In those examples where pixel velocities are generated, a conversion to environment velocity may be performed as detailed in U.S. Patent Application No. 16 / 408,195, filed May 9, 2019, entitled "Object Velocity from Images," the entire contents of which are incorporated herein by reference. The object detection 404 may be associated with one or more portions, such as pixel 704 and pixel 706. For example, the ML model may output a velocity 708 associated with pixel 704 and a velocity 710 associated with pixel 706. Although FIG. 7 depicts two pixels, the object detection 404 may be associated with more or fewer pixels (or other separate portions). In the illustrated example, the object associated with object detection 404 is performing a right turn.

[0101] The ML model may be trained such that the velocity output may indicate a velocity associated with a pixel that is indicative of the movement of a corresponding portion of an object. In the depicted example, the object may be a vehicle that is capable of rotating (e.g., by turning) around a center 712 (or other rotation point) of the object. In one example, where such an object is traveling in a straight line, the velocity output associated with a portion of the object detection may be substantially the same, whereas in an example where the object is turning, the velocity may change as depicted in FIG. 7.

[0102] In one example, the separate portion of the final environment representation may output an ROI indicating the center, extent, and / or other dimensions of the portion of the environment occupied by the object, and the confidence associated therewith. In one example, the various ROIs may be associated with the same object. Determining which ROIs may be associated with the same object may include determining a degree of alignment between the ROIs (e.g., determining an intersection of areas of unions (IOU)). The previous or substantially concurrent operation may include determining one ROI of the group of ROIs that meets or exceeds a threshold degree of alignment for outputting in association with the object. In at least one example, such alignment may be performed based on propagating a previously detected object forward in time, for example, based on associated speed, yaw rate, or other state information that may be included in the journey information (which may include kinematic and / or dynamic modeling of the object that takes such turns into account). Determining the ROI to output may include determining which ROI of the group of ROIs is associated with the maximum confidence score, and outputting that ROI in association with the object. This process is at least a part of a non-maximum suppression technique. Additional or alternative techniques may be used to select the ROI and output it in relation to the object.

[0103] Operation 702 may include using the ROI output in relation to the object to determine pixels (or other distinct portions) associated with the output ROI. For example, the pixels may be within the ROI. Operations 702, 714, 720, and / or 722 may be accomplished based at least in part on these pixels.

[0104] At operation 714, the example process 700 may include determining a final velocity 716 and / or a yaw rate 718 based at least in part on the multiple velocities in accordance with any of the techniques described herein. In one example, the final velocity may include longitudinal and lateral components, and the yaw rate may be an angular velocity, with further or alternative representations being contemplated. Determining the final velocity and / or yaw rate associated with the object may include solving a regression (e.g., linear regression or otherwise). As a non-limiting example, the rigid body rotation of the object may be estimated by performing a linear regression using the following equation:

[0105]

number

[0106] Where:

[0107]

number

[0108] expresses the velocity output in relation to a distinct portion p of the environment representation, e.g., pixels 704, as

[0109]

number

[0110] represents the longitudinal and / or lateral velocity of the object (i.e., final velocity 716) (with reference to the center 712 of the object o)

[0111]

number

[0112] is the location of the center 712 of the ROI associated with object detection;

[0113]

number

[0114] represents a vector between the positions of the distinct parts associated with the vector. Of course, any other kinematic or dynamic constraints are contemplated, including but not limited to bicycle models, non-rigid transformations, coupled systems (articulated objects (e.g., buses, trains, etc.)), etc. Furthermore, in at least certain examples, the selection of a corresponding system for regression may be based at least in part on the detected object classification and / or sub-classification.

[0115] In one example,

[0116]

number

[0117] may contain two unknown components, the lateral velocity and the longitudinal velocity, and

[0118]

number

[0119] may be unknowns. In such an example, at least three separate parts may be used to form a system of equations that can be solved for these three unknowns to determine the final velocity 716 and / or the yaw rate 718. More or fewer separate parts may be used. For example, fewer may be used.

[0120]

number

[0121] may be used in examples involving one unknown. In examples where more velocities from additional pixels are used, determining the final velocity may include determining a system of equations according to equation (1) for the different discrete portions and determining a linear regression to determine the final velocity 716 and / or yaw rate 718.

[0122] Although described in the context of performing a regression over a subset of pixels associated with an object, each having an independently unique velocity estimate, the disclosure is not intended to be so limited. In at least some examples, the machine learning model may directly output one or more of the linear and / or angular velocities of the object. In such examples, the equivalent of a regression over the identified kinematic and / or dynamic models may be performed by the model without providing them explicitly.

[0123] In some examples, the ML model can output a covariance associated with the velocity, angular velocity, and / or distinct portions. In such examples, and when more than a minimum number of velocities associated with distinct portions (e.g., two or three when regressing lateral velocity, longitudinal velocity, and yaw rate) are used, one or more velocities associated with a covariance below a covariance threshold (as output by the model, either in terms of position, classification, velocity, angular velocity, and / or otherwise) may be discarded / not used to solve for the estimated velocity. In some examples, the final (or estimated) velocity 716 and / or yaw rate 718 may be associated with the travel distance, and in some examples may replace or complement other velocity detection methods described herein.

[0124] In one example, operations 702 and / or 714 can be accomplished during inference time (e.g., while in use in a vehicle) and operations 720 and / or 722 can be accomplished as part of a training process for a remote computing device and / or vehicle, and the dashed portions of example process 700 in FIG. 7 can be accomplished as part of a training process for a remote computing device and / or vehicle.

[0125] At operation 720, the example process 700 may include determining a per-pixel loss based at least in part on a ground truth representation of per-pixel velocity according to any of the techniques described herein. For example, operation 720 may include receiving a ground truth object detection indicating a group of pixels (or other distinct portions) and / or a group of pixels (or other distinct portions) associated with each of the respective pixels (or other distinct portions). Unlike other techniques, the velocity associated with each of the respective pixels is not a velocity associated with the entire object, but rather a velocity associated with each of the respective portions of the object, which may mean that the velocities are different, such as velocities 708 and 710. In at least some examples, such velocities may not represent environmental velocities, but rather pixel velocities indicative of pixel velocity in pixel space. Such velocities may be derived from logged data previously captured by the vehicle and / or simulations. In these examples using logged data, the next position of the detected object may be used to determine the object velocity (and / or angular velocity), and then a similar algorithm to that described above (which may be inverse) may be used to decompose and determine such linear and angular velocity on a per pixel basis in the image. Operation 720 may include determining a loss based at least in part on determining a difference between the velocity output by the ML model associated with the pixel and the velocity indicated by the ground truth associated with the same or nearby pixel (e.g., the velocity associated with the nearby pixel may be a velocity interpolated between two or more nearest pixels, or the velocity of the nearest pixel if there is no exact match). For example, determining the difference may include determining a magnitude and / or direction difference between the velocities. This difference may be used to determine an L1, L2, Huber, or other loss.In one example, such a loss may be computed with respect to each pixel of the environment representation, the estimated object detection, and / or the ground truth object detection.

[0126] At operation 722, the example process 700 may include modifying one or more parameters of the ML model to reduce the loss determined at operation 720, according to any of the techniques described herein. In one example, this may include reducing a loss associated with a pixel, or reducing a loss associated with the sum of losses associated with the pixels of the estimated object detection.

[0127] (Example clauses) A. The method comprises receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, where the first object detection and the second object detection identify an object in an environment surrounding the autonomous vehicle; receiving a journey associated with the object, where the journey identifies at least one of an estimated previous position of the object, a previous region of interest, or a previous velocity of the object; inputting the first object detection, the second object detection, and at least a portion of the journey into a machine learning (ML) model; receiving from the ML model a data structure including a region of interest, an object classification, and a pose associated with the object, where the pose indicates at least one of a position or yaw associated with the object; determining an updated journey associated with the object based at least in part on the data structure, where the updated journey includes at least a portion of the journey, a current position, and at least one of the region of interest or yaw associated with the object; and controlling the autonomous vehicle based at least in part on the updated journey.

[0128] B. The method described in paragraph A, wherein the data structure further includes at least one of an indication of whether the object is stationary or dynamic, a top-down segmentation of the environment, a yaw rate, a velocity associated with the object, or an acceleration associated with the object.

[0129] C. The method of either paragraph A or paragraph B, wherein determining the updated itinerary includes determining a degree of alignment of the region of interest to a previous region of interest, and determining that the degree of alignment meets or exceeds a threshold degree of alignment.

[0130] D. The method of any one of paragraphs A-C, wherein the first object detection and the second object detection include an initial estimate associated with the object, and the data structure includes one or more refined estimates associated with the object.

[0131] E. The method of any one of paragraphs A-D, further comprising receiving a first prior object detection associated with a time prior to a time at which the first object detection was generated, receiving a second prior object detection associated with a time prior to a time at which the second object detection was generated, and inputting the first prior object detection and the second prior object detection into an ML model in addition to the first object detection, the second object detection, and the process.

[0132] F. The method of any one of paragraphs A-E, wherein inputting the first object detection, the second object detection, and at least a portion of the journey includes generating a multi-channel image based at least in part on the first object detection, the second object detection, and at least a portion of the journey, and inputting the multi-channel image to an ML model.

[0133] G. The system comprises one or more processors and a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations including receiving a first output and a second output; receiving a journey associated with an object in an environment, where the journey identifies at least one of an estimated previous position of the object, a previous region of interest, or a previous velocity of the object; inputting the first output, the second output, and at least a portion of the journey into a machine learning (ML) model; receiving from the ML model a data structure including the region of interest, the object classification, and a pose associated with the object, where the pose indicates at least one of a position or yaw associated with the object; and determining an updated journey associated with the object based at least in part on the data structure, where the updated journey includes at least a portion of the journey, a current position, and at least one of the region of interest of the object or a yaw associated with the object.

[0134] H. The system of paragraph G, wherein the operations further include controlling the autonomous vehicle based at least in part on the updated itinerary.

[0135] I. The system of either paragraph G or H, wherein the first output includes an initial estimate associated with the object and the data structure includes a refined estimate associated with the object.

[0136] J. The system of any one of paragraphs G-I, wherein the data structure further includes at least one of an indication that the object is stationary or dynamic, a top-down segmentation of the environment, a yaw rate, a velocity associated with the object, or an acceleration associated with the object.

[0137] K. The system of any one of paragraphs G-J, wherein the first output is an output of a first perception pipeline, the second output is an output of a second perception pipeline, and a third output indicates that a portion of the environment associated with the first output and the second output is unoccupied, and the third output is provided as an input to the ML model in addition to the first output and the second output.

[0138] L. A system as described in any one of paragraphs G-K, wherein determining the updated journey includes determining an alignment of the region of interest with a previous region of interest, and determining that the alignment meets or exceeds a threshold alignment.

[0139] M. The system of any one of paragraphs G-L, wherein at least one of the first output or the second output includes at least one of a representation of the environment from a top-down perspective, an indication that a portion of the environment is occupied, a representation of an occluded portion of the environment, a region of interest associated with the object, a classification associated with the object, a sensor data segmentation, a three-dimensional discretized representation of the sensor data, a yaw associated with the object, a yaw rate associated with the object, an estimate of ground height, a set of ranges associated with the object, a velocity associated with the object, or an acceleration associated with the object.

[0140] N. The system of any one of paragraphs G-M, wherein the operations further include receiving a first previous environmental representation associated with a time prior to the time the first output was generated, the first previous environmental representation being associated with the first perception pipeline; receiving a second previous environmental representation associated with a time prior to the time the second output was generated, the first previous environmental representation being associated with the first perception pipeline; and inputting the first previous environmental representation and the second previous environmental representation into an ML model in addition to the first output, the second output, and the process.

[0141] O. A system described in any one of paragraphs G-N, wherein inputting the first output, the second output, and at least a portion of the process includes generating a multi-channel image based at least in part on the first output, the second output, and at least a portion of the process.

[0142] P. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving a first output associated with a first process and a second output associated with a second process; receiving a journey associated with an object in an environment, where the journey identifies at least one of an estimated previous position of the object, a previous region of interest, or a previous velocity of the object; inputting the first output, the second output, and at least a portion of the journey into a machine learning (ML) model; receiving from the ML model a data structure including a region of interest, an object classification, and a pose associated with the object, where the pose indicates at least one of a position or yaw associated with the object; and determining an updated journey associated with the object based at least in part on the data structure, where the updated journey includes at least a portion of the journey, a current position, and at least one of the region of interest of the object or a yaw associated with the object.

[0143] Q. The non-transitory computer-readable medium of paragraph P, wherein the first output includes an initial guess associated with the object, and the data structure includes a finalized guess associated with the object.

[0144] R. The non-transitory computer-readable medium of paragraph P or Q, wherein the data structure further includes at least one of an indication that the object is stationary or dynamic, a top-down segmentation of the environment, a yaw rate, a velocity associated with the object, or an acceleration associated with the object.

[0145] S. The non-transitory computer-readable medium of any one of paragraphs P-Q, wherein at least one of the first output or the second output includes at least one of a representation of the environment from a top-down perspective, an indication that a portion of the environment is occupied, a representation of an occluded portion of the environment, a region of interest associated with the object, a classification associated with the object, a sensor data segmentation, a three-dimensional discretized representation of the sensor data, a yaw associated with the object, a yaw rate associated with the object, an estimate of ground height, a set of ranges associated with the object, a velocity associated with the object, or an acceleration associated with the object.

[0146] T. The non-transitory computer-readable medium of any one of paragraphs P-S, wherein inputting the first output, the second output, and at least a portion of the process includes generating a multi-channel image based at least in part on the first output, the second output, and at least a portion of the process.

[0147] U. The method comprises receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, the first object detection and the second object detection identifying an object in an environment surrounding the autonomous vehicle; receiving a journey associated with the object, the journey identifying at least one of an estimated previous position of the object, a previous region of interest, or a previous velocity of the object; inputting the first object detection, the second object detection, and at least a portion of the journey into a machine learning (ML) model; receiving from the ML model a region of interest associated with the object and a plurality of velocities associated with the object, a velocity of the plurality of velocities associated with the portion of the object; determining an estimated velocity and an estimated yaw rate associated with the object based at least in part on the plurality of velocities; determining an updated journey associated with the object based at least in part on the region of interest, the updated journey including at least the portion of the journey and at least one of the estimated velocity or the estimated yaw rate; and controlling the autonomous vehicle based at least in part on the updated journey.

[0148] V. The method described in paragraph U, further comprising receiving from the ML model at least one of an indication that the object is stationary or dynamic, a top-down segmentation of the environment, a current position of the object, or an acceleration associated with the object.

[0149] W. The method of paragraph U or V, wherein determining the estimated velocity and the estimated yaw rate includes performing a regression over the velocities according to simultaneous equations.

[0150] X. The method of any one of paragraphs U-W, further comprising receiving ground truth data indicating a ground truth velocity associated with the pixel, determining a difference between the ground truth velocity and the velocity, and altering one or more parameters of the ML model to reduce the difference.

[0151] Y. The method of any one of paragraphs U-X, wherein inputting the first object detection, the second object detection, and at least a portion of the journey includes generating a multi-channel image based at least in part on the first object detection, the second object detection, and at least a portion of the journey, and inputting the multi-channel image to an ML model.

[0152] Z. The method of any one of paragraphs U-Y, wherein a plurality of speeds are associated with a pixel of the image, the multiple speeds being associated with different pixels of the image.

[0153] AA. The method of any one of paragraphs U-Z, wherein the first object detection is an output of a first perception pipeline and the second object detection is an output of a second perception pipeline.

[0154] AB. The system includes one or more processors, and when executed by the one or more processors, the system includes: receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, the first object detection and the second object detection identifying an object in an environment surrounding the autonomous vehicle; receiving a journey associated with the object, the journey identifying at least one of an estimated previous position of the object, a previous area of ​​interest, or a previous velocity of the object; and converting at least a portion of the first object detection, the second object detection, and the journey into a machine learning (ML) model. The system comprises a memory storing processor-executable instructions to perform operations including inputting, from the ML model, a region of interest associated with the object and a plurality of velocities associated with the object, a plurality of velocities associated with a portion of the object, determining an estimated velocity and an estimated yaw rate associated with the object based at least in part on the plurality of velocities, determining an updated journey associated with the object based at least in part on the region of interest, the updated journey including at least a portion of the journey and at least one of the estimated velocity or the estimated yaw rate, and controlling the autonomous vehicle based at least in part on the updated journey.

[0155] AC. The system of paragraph AB, wherein the operations further include receiving from the ML model at least one of an indication that the object is stationary or dynamic, a top-down segmentation of the environment, a current position of the object, or an acceleration associated with the object.

[0156] AD. The system of any of paragraphs AB or AC, wherein inputting the first object detection, the second object detection, and at least a portion of the journey includes generating a multi-channel image based at least in part on the first object detection, the second object detection, and at least a portion of the journey, and inputting the multi-channel image to an ML model.

[0157] AE. The system of any one of paragraphs AB-AD, wherein the multiple velocities are associated with pixels of the image, the multiple velocities being associated with different pixels of the image.

[0158] AF. The system of any one of paragraphs AB-AE, wherein the first object detection is an output of a first perception pipeline and the second object detection is an output of a second perception pipeline.

[0159] AG. The system of any one of paragraphs AB-AF, wherein at least one of the first object detection or the second object detection includes at least one of an environment representation from a top-down perspective, an indication of an object classification, location, area, occupied area, or state, velocity, acceleration, yaw, or yaw rate associated with the object, sensor data segmentation, or a representation of an occluded portion of the environment.

[0160] AH. The system of any one of paragraphs AB-AG, wherein the plurality of speeds is a subset of a set of speeds output by the ML model, the set of speeds each associated with a covariance, and the method further includes determining to output the plurality of speeds based at least in part on determining that the plurality of speeds are associated with a covariance that meets or exceeds a threshold covariance.

[0161] The AI. non-transitory computer readable medium, when executed by one or more processors, includes a method for causing the one or more processors to receive a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, where the first object detection and the second object detection identify an object in an environment surrounding the autonomous vehicle; receive a journey associated with the object, where the journey identifies at least one of an estimated previous position of the object, a previous region of interest, or a previous velocity of the object; and, perform machine learning (ML) on at least a portion of the first object detection, the second object detection, and the journey. The system stores processor-executable instructions to cause the system to perform operations including inputting into the model; receiving from the ML model a region of interest associated with the object and a plurality of velocities associated with the object, a plurality of velocities associated with a portion of the object; determining an estimated velocity and an estimated yaw rate associated with the object based at least in part on the plurality of velocities; determining an updated journey associated with the object based at least in part on the region of interest, the updated journey including at least a portion of the journey and at least one of the estimated velocity or the estimated yaw rate; and controlling the autonomous vehicle based at least in part on the updated journey.

[0162] AJ. The non-transitory computer-readable medium of paragraph AI, wherein the operations further include receiving from the ML model at least one of an indication that the object is stationary or dynamic, a top-down segmentation of the environment, a current position of the object, or an acceleration associated with the object.

[0163] AK. The non-transitory computer-readable medium of any of paragraphs AI or AJ, wherein inputting the first object detection, the second object detection, and at least a portion of the journey includes generating a multi-channel image based at least in part on the first object detection, the second object detection, and at least a portion of the journey, and inputting the multi-channel image to an ML model.

[0164] AL. The non-transitory computer-readable medium of any of paragraphs AI-AK, wherein the multiple rates of speed are associated with pixels of the image, and the multiple rates are associated with different pixels of the image.

[0165] AM. The non-transitory computer-readable medium of any one of paragraphs AI-AL, wherein at least one of the first object detection or the second object detection includes at least one of an environment representation from a top-down perspective, an indication of an object classification, location, area, occupied area, or state, a velocity, acceleration, yaw, or yaw rate associated with the object, a sensor data segmentation, or a representation of an occluded portion of the environment.

[0166] AN. The non-transitory computer-readable medium of any one of paragraphs AI-AM, wherein the plurality of rates is a subset of a set of rates output by the ML model, the set of rates being each associated with a covariance, and the method further includes determining to output the plurality of rates based at least in part on determining that the plurality of rates are associated with a covariance that meets or exceeds a threshold covariance.

[0167] AO. The method of any one of paragraphs W-AN, wherein solving the system of equations includes determining a linear regression based at least in part on the system of equations.

[0168] AP. The method of paragraph U, wherein the first object detection and the second object detection include an initial estimate associated with the object, and the data structure includes one or more refined estimates associated with the object.

[0169] AQ. The method of any one of paragraphs U-AP, wherein the first object detection is an output of a first perception pipeline, the second object detection is an output of a second perception pipeline, and a third output indicates that a portion of the environment associated with the first output and the second output is unoccupied, and the third output is provided as an input to the ML model in addition to the first output and the second output.

[0170] AR. The method of any one of paragraphs U-AQ, wherein at least one of the first object detection or the second object detection includes at least one of a representation of the environment from a top-down perspective, an indication of at least one of a pedestrian or animal standing, walking, or running, a state or position of a brake or other indicator light, an indication that the object is a motorcyclist, an indication that a portion of the environment is occupied, a representation of an occluded portion of the environment, a region of interest associated with the object, a classification associated with the object, a sensor data segmentation, a three dimensional discretized representation of the sensor data, a yaw rate associated with the object, an estimate of ground clearance, a set of perimeters associated with the object, a velocity associated with the object, or an acceleration associated with the object.

[0171] AS. The method of any one of paragraphs U-AR, further comprising receiving a first previous environmental representation associated with a time prior to a time at which a first object detection was generated, the first previous environmental representation being associated with a first perception pipeline; receiving a second previous environmental representation associated with a time prior to a time at which a second object detection was generated, the first previous environmental representation being associated with the first perception pipeline; and inputting the first previous environmental representation and the second previous environmental representation into an ML model in addition to the first output, the second output, and the process.

[0172] AT. The autonomous vehicle is equipped with a system described in any one of paragraphs G-O or AB-AH.

[0173] The AU. system includes one or more processors and a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations including those described in any one of paragraphs A-F, U-AA, or AO-AS.

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

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

[0176] At least some of the processes described herein are illustrated as logical flow graphs, with each operation representing a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more non-transitory computer-readable storage media that, when executed by one or more processors, cause a computer or autonomous vehicle to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and / or in parallel to implement a process.

[0177] Unless expressly stated to the contrary, conditional terms such as "can," "may," "may," or "may" should be understood within the context of, among other things, providing that an example includes certain features, elements, and / or steps that other examples do not include. Thus, such conditional terms are not intended to imply that a certain feature, element, and / or step is required in any way in one or more examples in general, or that the one or more examples necessarily include logic for determining whether a certain feature, element, and / or step is included in or should be performed in any particular example, with or without user input or prompting.

[0178] Conjunctions such as the phrase "at least one of X, Y, or Z," unless specifically stated otherwise, should be understood to mean that the items, terms, etc. can be either X, Y, or Z, or any combination thereof, including multiples of each element. Unless expressly described as singular, "a" means singular as well as plural.

[0179] Any routine description, element or block in the flow diagrams described herein and / or depicted in the accompanying figures should be understood to potentially represent a module, segment, or portion of code that includes one or more computer executable instructions for implementing a particular logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, in which elements or functions can be omitted and performed out of order from that shown or described, including substantially simultaneously or in reverse order, depending on the functionality involved, as will be understood by those skilled in the art. Note that the term may substantially indicate a range. For example, substantially simultaneously may indicate that two activities occur within a time range of each other, substantially the same dimensions may indicate that two elements have dimensions within a range of each other, etc.

[0180] Numerous variations and modifications can be made to the above examples, and those elements should be understood to be within the scope of other acceptable examples. All such variations and modifications are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims

1. receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, the first object detection and the second object detection identifying an object in an environment surrounding the autonomous vehicle; receiving a previous journey associated with the object, the previous journey identifying an estimated location of the object over time determined based at least in part on sensor data; inputting the first object detection, the second object detection, and at least a portion of the previous journey into a machine learning (ML) model; receiving from the ML model a set of covariances and a region of interest associated with the object, and a plurality of velocities associated with the object, one velocity of the plurality of velocities being associated with a portion of the object; the plurality of rates being a subset of the set of rates output by the ML model; each rate of the set of rates is associated with a covariance of a set of covariances; receiving the plurality of rates is based at least in part on determining that the plurality of rates is associated with a covariance that meets or exceeds a threshold. And, determining an estimated velocity and an estimated yaw rate associated with the object based at least in part on the plurality of velocities; determining a new journey associated with the object based at least in part on the region of interest, the new journey including at least a portion of the previous journey and at least one of the estimated velocity or the estimated yaw rate; controlling the autonomous vehicle based at least in part on the new journey; A method for providing the above.

2. From the ML model, an indication that the object is stationary or dynamic; Top-down segmentation of the environment, the current position of said object, or an acceleration associated with the object; The method of claim 1 , further comprising receiving at least one of:

3. The method of claim 1 , wherein determining the estimated velocity and the estimated yaw rate comprises performing a regression over the velocities according to simultaneous equations.

4. receiving ground truth data indicative of a ground truth velocity associated with the pixel; determining a difference between the ground truth velocity and the velocity; Varying one or more parameters of the ML model to reduce the difference; and The method of claim 1 further comprising:

5. Inputting the first object detection, the second object detection, and at least a portion of the previous journey includes: generating a multi-channel data structure based at least in part on the first object detection, the second object detection, and at least a portion of the previous journey, wherein generating the multi-channel data structure includes encoding different attributes associated with an environment into channels of the multi-channel data structure based at least in part on the first object detection, the second object detection, and at least a portion of the previous journey; inputting the multi-channel data structure into the ML model; The method of claim 1 , comprising:

6. The method of claim 1, wherein one of the multiple velocities is associated with a pixel of an image, and the multiple velocities are associated with different pixels of the image.

7. the first object detection is an output of a second machine learning model; the second object detection is an output of a third machine learning model. The method of claim 1.

8. 1. A system comprising: one or more processors; When executed by one or more of the processors, the one or more processors are receiving a first object detection associated with a first sensor type and a second object detection associated with a second sensor type, the first object detection and the second object detection identifying an object in an environment surrounding the autonomous vehicle; receiving a previous journey associated with the object, the previous journey identifying an estimated location of the object over time determined based at least in part on sensor data; inputting the first object detection, the second object detection, and at least a portion of the previous journey into a machine learning (ML) model; receiving from the ML model a set of covariances and a region of interest associated with the object, and a plurality of velocities associated with the object, one velocity of the plurality of velocities being associated with a portion of the object; the plurality of rates being a subset of the set of rates output by the ML model; each rate of the set of rates is associated with a covariance of a set of covariances; receiving the plurality of rates is based at least in part on determining that the plurality of rates is associated with a covariance that meets or exceeds a threshold. And, determining an estimated velocity and an estimated yaw rate associated with the object based at least in part on the plurality of velocities; determining a new journey associated with the object based at least in part on the region of interest, the new journey including at least a portion of the previous journey and at least one of the estimated velocity or the estimated yaw rate; controlling the autonomous vehicle based at least in part on the new journey; a memory storing processor-executable instructions for performing operations including: A system comprising:

9. The action is derived from the ML model: an indication that the object is stationary or dynamic; Top-down segmentation of the environment, the current position of said object, or an acceleration associated with the object; The system of claim 8 , further comprising receiving at least one of:

10. Inputting the first object detection, the second object detection, and at least a portion of the previous journey includes: generating a multi-channel data structure based at least in part on the first object detection, the second object detection, and at least a portion of the previous journey, wherein generating the multi-channel data structure includes encoding different attributes associated with an environment into channels of the multi-channel data structure based at least in part on the first object detection, the second object detection, and at least a portion of the previous journey; inputting the multi-channel data structure into the ML model; The system of claim 8 , comprising:

11. The system of claim 8 , wherein the one velocity of the multiple velocities is associated with a pixel of an image, and the multiple velocities are associated with different pixels of the image.

12. the first object detection is an output of a second machine learning model; the second object detection is an output of a third machine learning model. The system of claim 8.

13. At least one of the first object detection or the second object detection Representing the environment from a top-down perspective, Indication of the classification, location, occupancy, or state of an object; a velocity, acceleration, yaw, or yaw rate associated with said object; Sensor Data Segmentation, or Representation of occluded parts of the environment, The system of claim 8 , comprising at least one of:

14. The method of claim 13, wherein the previous step identifies a previous region of interest and the step of determining the new step further comprises: determining a degree of alignment between the region of interest and the previous region of interest; determining whether the degree of match meets or exceeds a degree of match threshold; The system of claim 8 , comprising:

15. The method of claim 1, wherein the object is a first object, the plurality of velocities is a first plurality of velocities, and the previous stroke is a first previous stroke; The method comprises: determining a second previous journey associated with a second object based at least in part on previous sensor data, the second previous journey identifying current, previous, and predicted movement and position attributes associated with the second object over time; determining a second plurality of velocities associated with the second object based at least in part on the ML model and on the second previous journey; The method of claim 1 , comprising:

16. The method of claim 15, wherein the previous step identifies a previous region of interest and the step of determining the new step further comprises: determining a degree of alignment between the region of interest and the previous region of interest; determining whether the degree of match meets or exceeds a degree of match threshold; The method of claim 1 , comprising:

Citation Information

Patent Citations

  • Image recognition system and learning method of neural network

    JP2019121225A

  • Controlling an autonomous vehicle based on independent driving decisions

    US20190113918A1

  • Systems and Methods for Object Detection, Tracking, and Motion Prediction

    US20190147372A1