Object tracking using LiDAR data for autonomous machine applications
In various examples, an obstacle detector is capable of tracking a velocity state of detected objects or obstacles using LiDAR data. For example, using LiDAR data alone, an iterative closest point (ICP) algorithm may be used to determine a current state of detected objects for a current frame and a Kalman filter may be used to maintain a tracked state of the one or more objects detected over time. The obstacle detector may be configured to estimate velocity for one or more detected objects, compare the estimated velocity to one or more previous tracked states for previously detected objects, determine that the detected objects corresponds to a certain previously detected object, and update the tracked state for the previously detected object with the estimated velocity.
1 . A system comprising:
one or more LiDAR sensors; and
one or more processing units to:
determine, based at least on a change in position of an object between at least a current frame of LiDAR data and one or more previous frames of LiDAR data, an estimated velocity of the object;
compare the estimated velocity to one or more tracked object states indicative of, at least, one or more velocities of one or more previously detected objects of a plurality of previously detected objects;
determine, based at least on the comparison, a previously detected object of the plurality of previously detected objects associated with a highest probability of corresponding to the object;
predict, using a Kalman filter, a tracked object state corresponding to the previously detected object that has the highest probability of corresponding to the object;
update, using the estimated velocity, the tracked object state to generate an updated tracked object state; and
cause, based at least on the updated tracked object state, a machine to perform one or more control operations.
2 . The system of claim 1 , the one or more processing units further to:
compare, using an iterative closest point (ICP) algorithm, a first object boundary corresponding to the object and a second object boundary corresponding to the previously detected object,
wherein the determination of the estimated velocity of the object is further based at least on the comparison.
3 . The system of claim 1 , wherein the estimated velocity includes at least one of a magnitude or a direction.
4 . The system of claim 1 , wherein the one or more tracked object states are generated using the Kalman filter.
5 . The system of claim 1 , the one or more processing units further to convert the one or more tracked object states to a coordinate system corresponding to a current detection of the object made using the current LiDAR frame, wherein the estimated velocity is compared to the one or more tracked object states in the coordinate system.
6 . The system of claim 5 , wherein the conversion is based at least on a measured motion of the machine.
7 . The system of claim 1 , the one or more processing units further to filter a plurality of tracked object states using a Mahalanobis distance to determine the one or more tracked object states.
8 . The system of claim 1 , wherein the system is comprised in at least one of:
a control system for an autonomous or semi-autonomous machine;
a perception system for an autonomous or semi-autonomous machine;
a system for performing simulation operations;
a system for performing deep learning operations;
a system implemented using an edge device;
a system implemented using a robot;
a system incorporating one or more virtual machines (VMs);
a system implemented at least partially in a data center; or
a system implemented at least partially using cloud computing resources.
9 . A processor comprising:
processing circuitry to:
maintain, using one or more Kalman filters, tracked states associated with a plurality of objects, the tracked states representative of probability distributions for velocities of the plurality of objects;
determine, based at least on LiDAR data generated using one or more LiDAR sensors of a machine, a current position of a detected obstacle boundary corresponding to an object;
select a subset of the plurality of objects based at least on a similarity between a first geometric shape corresponding to the detected obstacle boundary and one or more second geometric shapes corresponding to one or more tracked obstacle boundaries associated with the subset of the plurality of objects;
compute, based at least on one or more displacements between the current position of the detected obstacle boundary and one or more previous positions of tracked obstacle boundaries corresponding to the subset of the plurality of objects, one or more estimated velocities of the object;
associate, based at least on comparing the one or more estimated velocities with one or more of the probability distributions corresponding to the subset of the objects, the object with a particular object from among the plurality of objects;
update, based at least on the association, a tracked state associated with the particular object; and
cause an ego-machine to perform one or more operations based at least on the updated tracked state.
10 . The processor of claim 9 , the processing circuitry further to convert the one or more previous positions of the tracked obstacle boundaries corresponding to the subset of the objects to a coordinate system corresponding to a current detection to account for ego-motion of the ego-machine.
11 . The processor of claim 9 , the processing circuitry further to execute a gating function using a Mahalanobis distance to filter out a second subset of the plurality of tracked states that is different than the subset of the tracked states.
12 . The processor of claim 9 , wherein the processor is comprised in at least one of:
a control system for an autonomous or semi-autonomous machine;
a perception system for an autonomous or semi-autonomous machine;
a system for performing simulation operations;
a system for performing deep learning operations;
a system implemented using an edge device;
a system implemented using a robot;
a system incorporating one or more virtual machines (VMs);
a system implemented at least partially in a data center; or
a system implemented at least partially using cloud computing resources.
13 . A method comprising:
determining an estimated velocity of an object based at least on a change in position of the object over a period of time, the change in the position of the object determined using at least first LiDAR data indicative of a current position of the object and second LiDAR data indicative of one or more previous positions of the object;
comparing the estimated velocity to tracked object states corresponding to previously detected objects, the tracked object states representing probability distributions corresponding to velocities of the previously detected objects;
determining, based at least on the comparing, a previously detected object having a highest probability of corresponding to the object;
predicting, using a Kalman filter, a tracked object state corresponding to the previously detected object;
updating, using the estimated velocity and based at least on the previously detected object having the highest probability of corresponding to the object, the tracked object state corresponding to the previously detected object; and
causing a machine to perform one or more control operations based at least on the updating of the tracked object state.
14 . The method of claim 13 , wherein the estimated velocity includes at least one of a magnitude or a direction.
15 . The method of claim 13 , wherein one or more of the tracked object states are generated using a Kalman filter.
16 . The method of claim 13 , further comprising converting one or more of the tracked object states to a coordinate system corresponding to the first LiDAR data, wherein the comparing the estimated velocity to the one or more tracked object states is in the coordinate system.
17 . The processor of claim 9 , the processing circuitry further to:
determine the first geometric shape corresponding to the detected obstacle boundary; and
determine, based at least on the selection of the subset of the plurality of object, the one or more displacements between the current position of the detected obstacle boundary and the one or more previous positions of the tracked obstacle boundaries.
18 . The processor of claim 9 , the processing circuitry further to:
compute, based at least on a displacement between the current position of the detected obstacle boundary and a previous position of a tracked obstacle boundary corresponding to the particular tracked object, an estimated velocity of the object; and
compute a cost function based at least on a comparison of the estimated velocity with a probability distribution of velocity corresponding to the particular object,
wherein the association of the object with the particular object is based at least on a value associated with the cost function being lower than a threshold.
19 . The processor of claim 9 , the processing circuitry further to:
predict, using one or more state transition models of the one or more Kalman filters, a next state associated with the particular objects based at least on the tracked state,
wherein the updated tracked state comprises a refined version of the next state predicted using the one or more state transition models of the one or more Kalman filters.
20 . The method of claim 13 , further comprising:
selecting a subset of objects from among the previously detected objects based at least on a similarity between a first geometric shape corresponding to the object and one or more second geometric shapes corresponding to one or more of the previously detected objects being greater than a threshold,
wherein the previously detected object having the highest probability of corresponding to the object is identified from among the subset of objects.