Understanding Sensor Fusion and Tracking, Part 5: How to Track Multiple Objects at Once

MATLAB
29 Oct 201915:27

Summary

TLDRThis video delves into the complexities of multi-object tracking, contrasting it with single-object tracking and highlighting the challenges of data association and track maintenance. The host, Brian, discusses various algorithms, such as the Global Nearest Neighbor (GNN) and Joint Probabilistic Data Association (JPDA), for solving these issues, emphasizing the importance of selecting the right method based on the specific tracking scenario. He also touches on the practical aspects of implementing these algorithms in MATLAB, showcasing their performance through an example.

Takeaways

  • 🚀 The video discusses expanding single object tracking to multiple object tracking, emphasizing the additional complexities involved.
  • 🔍 Multi-object tracking introduces challenges such as data association, where measurements must be correctly matched to the corresponding tracked object.
  • 📊 Tracking algorithms must account for uncertainty in both object observations and predictions of their paths, blending uncertain measurements with uncertain predictions.
  • 🤖 The video introduces the concept of an estimation filter, which is used to correct predictions with actual measurements, highlighting its importance in tracking.
  • 🔄 The number of objects being tracked can change, requiring the creation and deletion of tracks based on observations, introducing the track maintenance problem.
  • 📐 The Global Nearest Neighbor (GNN) is a simple assignment algorithm that matches observations to tracks based on probabilistic distance, not just geometric distance.
  • 🔎 The Joint Probabilistic Data Association (JPDA) algorithm is introduced as an alternative to GNN, which makes weighted combinations of all neighboring observations, better suited for clustered objects.
  • 🛠️ The video suggests that track maintenance involves careful deletion and creation of tracks to avoid premature actions that could clutter the tracking view or decrease effectiveness.
  • 📈 Track deletion can be managed conservatively by setting parameters for the number of times a track must not be assigned to a detection before being removed.
  • 🛑 Tentative tracks can be created for unassigned observations, maintained in the background, and only confirmed as real objects after being detected a certain number of times.
  • 🚫 Gating is a technique to ignore observations outside a defined region for each track, which can speed up the assignment process and save computational resources.

Q & A

  • What is the main focus of the video?

    -The video focuses on expanding the concept of tracking a single object to tracking multiple objects at once, discussing the complexities and solutions involved in multi-object tracking.

  • Why can't we simply apply a single-object tracking algorithm to each object in a multi-object tracking scenario?

    -Applying a single-object tracking algorithm to each object individually doesn't account for the additional complexities in multi-object tracking, such as data association, track creation and deletion, and the handling of uncertainty in observations and predictions.

  • What is the 'data association problem' in multi-object tracking?

    -The data association problem refers to the challenge of correctly matching observations (detections) with the correct tracked objects, especially when objects are close to each other or when observations are uncertain.

  • How does the Global Nearest Neighbor (GNN) algorithm handle assignment in multi-object tracking?

    -The GNN algorithm assigns an observation to the track with the nearest probabilistic distance, such as the Mahalanobis distance, rather than the nearest Euclidean distance.

  • What is the Joint Probabilistic Data Association (JPDA) algorithm, and how does it differ from GNN?

    -The JPDA algorithm makes a weighted combination of all neighboring observations with tracks, giving higher weights to closer observations. Unlike GNN, which makes a hard assignment, JPDA does not fully commit to a single observation, allowing it to handle situations where objects are clustered more effectively.

  • What are the criteria for creating and deleting object tracks in multi-object tracking?

    -Tracks can be created when a detection doesn't match any existing object, and deleted if a track has not been assigned to a detection for a certain number of updates. However, care must be taken to avoid false positives and premature deletions.

  • Why is track maintenance important in multi-object tracking?

    -Track maintenance is important to ensure that the tracking system does not create tracks prematurely, which could clutter the view, or delete tracks too early, which could decrease tracking effectiveness.

  • What is the purpose of gating in the context of multi-object tracking?

    -Gating is a screening mechanism used to determine which detections are valid candidates for assignment and which should be ignored, thus speeding up the assignment process and conserving computational resources.

  • How does the video demonstrate the effectiveness of different multi-object tracking algorithms?

    -The video shows an example in MATLAB where two objects are tracked using different algorithms, illustrating how each algorithm performs under conditions where objects are close to each other and detections overlap.

  • What should one consider when choosing a multi-object tracking algorithm?

    -When choosing a multi-object tracking algorithm, one should consider the specific requirements and conditions of their tracking scenario, such as the number of objects, the accuracy needed, computational resources available, and the expected behavior of the objects.

Outlines

00:00

🚀 Introduction to Multi-Object Tracking Challenges

The video begins by addressing the complexities of transitioning from tracking a single object to multiple objects simultaneously. It highlights that while it may seem straightforward to apply a single-object tracking algorithm to each object, additional considerations are necessary. The speaker, Brian, introduces the video's aim to provide an overview of multi-object tracking, emphasizing the importance of understanding the unique challenges and the art of selecting or developing algorithms tailored to specific tracking scenarios. The discussion sets the stage for exploring the issues stemming from uncertainty in object observations and predictions, which are central to the multi-object tracking problem.

05:03

🔍 Understanding the Data Association Problem

This paragraph delves into the intricacies of the data association problem, where the challenge lies in correctly matching observations to their corresponding tracked objects, especially when objects are close together or observations are uncertain. The paragraph explains that simple nearest neighbor approaches may not suffice in cluttered environments and introduces the concept of probabilistic distance, such as the Mahalanobis distance, for more accurate data association. It also touches on the Joint Probabilistic Data Association (JPDA) algorithm, which provides a weighted combination of observations to improve tracking accuracy in complex scenarios.

10:07

🛰️ Track Maintenance: Creation and Deletion of Tracks

The third paragraph discusses the dynamic nature of multi-object tracking, where the number of objects is not static, and tracks must be created or deleted based on observations. The speaker outlines a conservative approach to track deletion, suggesting that tracks should only be removed after failing to be assigned an observation multiple times. Conversely, creating a track is approached with tentative tracks that are maintained in the background and only confirmed after being detected multiple times. This approach helps in managing false positives and ensures that the tracking system does not prematurely create or delete tracks, thus maintaining the effectiveness of the tracking process.

15:07

📊 Multi-Object Tracking Algorithms Demonstration and Conclusion

The final paragraph wraps up the video with a practical demonstration of multi-object tracking algorithms in MATLAB, showcasing the performance of Global Nearest Neighbor (GNN) and Joint Probabilistic Data Association (JPDA) algorithms in tracking two independently moving objects. The demonstration highlights the challenges faced when objects are in close proximity and the respective strengths and weaknesses of each algorithm. The speaker concludes by emphasizing the importance of understanding the unique requirements of each tracking scenario and selecting the most appropriate algorithm, rather than opting for the most complex solution.

Mindmap

Keywords

💡Multi-Object Tracking

Multi-Object Tracking refers to the process of simultaneously tracking multiple objects using sensors or algorithms. In the context of the video, this is the central theme where the speaker discusses the complexities of tracking more than one object at a time, as opposed to single object tracking. The script mentions the need to expand tracking algorithms to handle multiple objects and the various challenges that arise from this, such as data association and track maintenance.

💡IMM (Interacting Multiple Model)

IMM is a type of estimation filter used in tracking systems that allows for multiple models to represent different motion modes of an object. The video script mentions the IMM in the context of applying a tracking algorithm to multiple objects, suggesting that one could theoretically apply the IMM to each object for tracking. However, the speaker also points out that additional considerations are necessary when tracking multiple objects.

💡Data Association

Data Association is the problem of matching observations (sensor detections) to the correct tracks (ongoing object tracking). The script discusses this as a significant challenge in multi-object tracking, especially when objects are close to each other or when there is a high level of uncertainty. The video describes how data association is critical to avoid using the measurement of one object to update the prediction of another.

💡Track Maintenance

Track Maintenance involves the creation and deletion of tracks based on observations. The script explains that the number of objects being tracked is not fixed and that algorithms must handle the creation of new tracks when objects enter the radar range and deletion when they exit or land, considering the possibility of false positives and sensor failures.

💡Estimation Filter

An Estimation Filter is a statistical tool used to predict the state of a system based on uncertain measurements and predictions. The video script refers to estimation filters like the IMM and the Kalman filter, which are used to blend uncertain predictions with actual measurements to update the state of tracked objects.

💡GNN (Global Nearest Neighbor)

GNN is an assignment algorithm that matches each observation to the track that is closest to it in a probabilistic sense. The video script uses GNN as an example of a simple assignment algorithm that works well when objects are sparsely distributed but may struggle when objects are close together, leading to potential mismatches.

💡JPDA (Joint Probabilistic Data Association)

JPDA is an advanced assignment algorithm that makes a weighted combination of all neighboring observations, giving higher weights to closer observations. The script contrasts JPDA with GNN, showing that JPDA can better handle situations where objects are clustered closely together by not committing to a single observation-to-track match.

💡Mahalanobis Distance

Mahalanobis Distance is a measure of the distance between a point and a distribution, taking into account the covariance of the distribution. The video script explains that this distance is used in GNN to determine the best match between a prediction and a measurement, as it accounts for the uncertainty in the predictions and measurements.

💡Track Creation

Track Creation is the process of initiating a new track for an object that has not been previously tracked. The script discusses the criteria for creating tracks, such as when a detection does not match any existing object, and the caution needed to avoid creating tracks from false positive measurements.

💡Track Deletion

Track Deletion is the process of removing a track when an object is no longer detected or when a track is confirmed to be a false positive. The video script suggests a conservative approach to track deletion, such as only deleting a track if it has not been assigned a detection multiple times over several updates.

💡Gating

Gating is a screening mechanism used to determine which detections are valid candidates for assignment to tracks. The script mentions gating as a way to ignore observations outside a defined region for each track, thus speeding up the assignment process and conserving computational resources.

Highlights

Introduction to expanding single object tracking to multiple objects using algorithms like IMM, with considerations for additional complexities in multi-object scenarios.

The importance of understanding the art of selecting or developing algorithms for multi-object tracking due to the variability in problem specifics.

Challenges in multi-object tracking arising from uncertainty in object observations and predictions of their paths.

The problem of data association in matching observations to tracked objects without unique identifiers.

Situations where objects are close, leading to difficulties in data association due to overlapping measurements.

The dynamic nature of multi-object tracking, including the creation and deletion of tracks based on observations.

Strategies for track maintenance to avoid premature creation or deletion of tracks due to false positives or sensor failures.

Different assignment algorithms for data association, including GNN and JPDA, and their respective advantages and limitations.

The concept of gating to ignore observations outside a defined region for each track, enhancing computational efficiency.

The use of Mahalanobis distance in GNN for matching observations to tracks based on probabilistic distance rather than Euclidean distance.

JPDA's approach to data association by making a weighted combination of all neighboring observations.

Criteria for creating tracks, such as maintaining tentative tracks and confirming them based on detection frequency.

Criteria for deleting tracks, using parameters like P times in R updates to avoid premature deletion.

The process of updating tracked objects with estimation filters after assigning observations to tracks.

MATLAB example demonstrating the performance of GNN and JPDA algorithms in tracking two maneuvering objects.

Comparison of GNN and JPDA algorithms, showing the benefits and drawbacks of each in different tracking scenarios.

The necessity of assessing requirements before implementing complex tracking algorithms to balance accuracy and complexity.

Transcripts

play00:00

in this video we're gonna take what we've learned about tracking a single

play00:04

object and expand it to tracking multiple objects all at once and at

play00:09

first glance it doesn't seem like this problem is that much harder than

play00:12

tracking a single object for example can't we just take the tracking

play00:16

algorithm like the IMM from the last video and apply one to each object and

play00:21

be done well as you might expect based on the way I asked that question the

play00:25

answer is no not really at least there are some additional things we need to

play00:31

consider with multi object tracking and that's what we're gonna talk about in

play00:34

this video so I hope you stick around for it I'm Brian and welcome to a MATLAB

play00:38

Tech Talk now I'm gonna highlight a general outline so that you get an idea

play00:44

of how these problems can be solved but by no means do I want you to think that

play00:48

there's only one way or one algorithm to get the job done every problem is

play00:53

different because you know they have things like different number of objects

play00:56

or you have access to different measured data and information or maybe different

play01:00

expectations on how close the objects will be to each other and you're gonna

play01:04

have different computational resources at your disposal or different

play01:07

requirements on how accurate you need to be and so on there's a bunch and in a

play01:13

way figuring out how to tackle your particular problem is more of an art

play01:16

than a hard science so the thing I hope you take away from this video is to

play01:21

understand the types of things you should be aware of when selecting or

play01:24

developing your own algorithms for multi object tracking and not necessarily how

play01:30

to solve your exact problem ok enough of this disclaimer let's get to it to begin

play01:38

let's talk about what makes multi object tracking difficult and then we'll circle

play01:42

back around and talk about how we can approach solving these issues all of the

play01:47

problems we're gonna have stemmed from our uncertainty this is uncertainty in

play01:51

the observations or detection of the objects and uncertainty in our

play01:56

predictions of the paths that the objects are taking remember from the

play02:00

last video that an estimation filter like a common filter works by blending

play02:04

and uncertain measurement with an uncertain prediction and we looked at

play02:07

tracking an airplane with a radar station we predicted where the airplane

play02:11

would be in the future and then we corrected it with a noisy radar

play02:14

measurement but now instead of a single object we have lots of objects each with

play02:20

their own uncertain prediction that we need to correct with its corresponding

play02:24

uncertain measurement so already we come to our first problem we don't want to

play02:29

correct a prediction of one object using the measurement of another but if

play02:34

there's no identifying information that comes with the detection like an

play02:37

airplane tail number or some other unique signature how do we know which

play02:42

object we've just detected for example of all of the airplanes we're tracking

play02:46

have similar radar cross-sections and this is all the information we have

play02:50

access to how can we match an arbitrary ping with the appropriate tracked object

play02:55

now this isn't too much of a problem if all of the objects are sparsely

play03:00

distributed and the observations are relatively reliable it would be a simple

play03:04

matter to claim that an observation is of the object that it's closest to in

play03:08

this case we would just assign the measurement to the nearest object and

play03:11

run the estimation filter for it like we would when tracking a single object

play03:15

the tricky part however comes when objects are close enough to each other

play03:20

or our uncertainty is great enough that a measurement could be of more than one

play03:24

object now we have some figuring out to do and this is the data Association

play03:30

problem we have to associate the detections with the right objects all

play03:35

right so that's one problem but another thing we need to consider is that the

play03:40

number of objects being tracked is not fixed

play03:43

sometimes tracks need to be created or removed based on what we observe we may

play03:48

add a new track when an airplane flies into the radar range and similarly we

play03:53

may delete a track when one flies out now this creation and deletion doesn't

play03:59

just happen along the edge of the field of view of the sensors we may have to

play04:02

create and delete tracks anywhere for example an airplane may land or takeoff

play04:07

within the radar range so we need to think about the criteria for creating

play04:11

and deleting object tracks and a basic way to approach this is to add a track

play04:16

whenever there is a detection that doesn't match an existing object and

play04:20

then just delete a track if an existing object is not detected

play04:25

the thing that complicates this is that sometimes sensors have false positive

play04:29

measurements they detect something that isn't actually there and sometimes

play04:33

sensors fail a few times in a row to detect an object that is actually there

play04:37

so we need to be careful here so that we aren't creating tracks prematurely which

play04:42

clutters our view of what's actually there and we aren't deleting tracks

play04:46

prematurely which decreases the effectiveness of tracking in the first

play04:50

place this is the track maintenance problem so that's what we're gonna cover

play04:55

for the rest of this video when tracking multiple objects what are some ways that

play04:59

we can approach data Association and what are some ways that we can address

play05:03

track maintenance and this brings us back to the flowchart that I briefly

play05:08

showed at the beginning of this video and while your particular approach might

play05:11

not result in a functional structure that looks exactly like this it's going

play05:15

to provide a convenient way for me to talk about each of these sections so

play05:19

let's just walk through it and we're going to start with observations an

play05:24

observation of an object may contain measured quantities like range range

play05:28

rate or line-of-sight these are quantities that represent the kinematic

play05:32

nature of the object but observations could also contain measured attributes

play05:37

like target type ID number and object shape and this is what I was hinting at

play05:41

earlier when I said that you might get the tail number of an aircraft or some

play05:45

other identifying information with an observation getting a tail number is

play05:49

pretty unambiguous for data Association but other types of attributes might

play05:54

still require some interpretation for example you might collect micro Doppler

play05:58

radar fluctuations and from that be able to determine the type of aircraft you're

play06:02

tracking in the uncertainty in the observation depends on the degree of

play06:06

separation between the two objects a helicopter might look completely

play06:11

different from a jet aircraft because of the large rotating propellers whereas a

play06:15

bird and a quadcopter might have similar Doppler signatures

play06:20

other things to consider with observations is that if the tracked

play06:23

object is a point target then the observation would contain at most one

play06:27

detection so we have to associate one detection with one object but if the

play06:33

target object is large in the sensor has sufficient resolution like with lidar

play06:37

for instance there may be more than one detection per target and we need to

play06:41

consider this when determining how we're going to handle associating this data

play06:45

also if the resolution of the sensor is low then it's possible that two objects

play06:50

may exist within a single detection in this case both objects have been

play06:54

observed so we don't want to stop tracking either of them but they show up

play06:58

as only a single detection so our track deletion algorithm will have to handle

play07:02

these situations going forward in this video we're only going to be talking

play07:07

about the case where we expect one detection for each tracked object and

play07:11

where this is handled is in the assignment step which is next assignment

play07:16

is the process of matching an observation to attract object or if

play07:20

you're into the whole brevity thing it's matching it to a track and possibly the

play07:25

simplest assignment algorithm to think about is the GNN

play07:28

the global nearest neighbor this simply assigns a track to the nearest

play07:32

observation but the interesting thing here is that it's not necessarily the

play07:36

nearest Euclidean or geometric distance but the nearest probabilistic distance

play07:41

like you get with the Mahalanobis distance and here's why with a

play07:46

probability distribution like we have with both our predictions and our

play07:50

measurements the lowest Euclidean distance doesn't always indicate that a

play07:53

prediction and a measurement are the best fit this is because we have more

play07:57

confidence in our predictions measurements in the directions with

play08:00

lower standard deviations for example in this simple image we have a prediction

play08:05

for the location of two different objects and a single detection that lies

play08:08

between them if we used Euclidean distance we'd assume that the detection

play08:13

is of object two since it's closer but if we look at the probability

play08:18

distributions of the two predictions then we can see that it's more probable

play08:22

that the detection is of object one and this is what the Mahalanobis distance

play08:26

does for us it's the distance normalized by the standard deviation now GNN works

play08:33

well for sparsely distributed objects but for

play08:36

cluttered objects another assignment algorithm like the J PDA or joint

play08:40

probabilistic data Association algorithm will be better the J PDA doesn't make a

play08:45

hard assignment between one observation and one track instead it makes a

play08:50

weighted combination of all of the neighboring observations with closer

play08:54

observations being weighted higher than further once and this is an improvement

play08:58

over GNN because if there are two observations that could be the object

play09:03

the J PDA won't fully commit to one possibly the wrong one so if the Trax

play09:08

objects are clustered near each other and the observations are all clustered

play09:12

near them too this algorithm can handle that by blending a few of them together

play09:16

rather than jumping around between right and wrong

play09:19

detection z' now there's many more assignment algorithms and you can create

play09:24

your own based on your tracking situation but the bottom line is that

play09:28

you're just trying to figure out how to associate an observation with a track

play09:33

not all observations get assigned and not all tracks have observations this is

play09:38

where track maintenance comes in in the form of deleting and creating tracks but

play09:44

as I said before we have to be careful so we don't do anything prematurely so

play09:48

let's start with one way to delete tracks in a conservative way rather than

play09:52

saying an object is gone as soon as we miss a single observation we could

play09:57

delete tracks only if a track has not been assigned to a detection at least P

play10:02

times during the last hour updates in this case p and r are parameters that

play10:06

you can tune to your situation so you might say delete a track if it hasn't

play10:10

been detected at least four times in the last six updates now on the other hand

play10:15

creating a track is a little trickier because you don't know if a single

play10:19

unassigned observation is a new object right away but you still have to pay

play10:23

attention to it so that you can figure out overtime if it's worth tracking one

play10:27

way to handle this is to create a tentative track one that you maintain

play10:30

and pretend like it's a real object but you don't actually believe is a real

play10:34

object you just maintain that track in the background once the tentative track

play10:39

has been detected M times in the last in updates then you move that track to

play10:44

confirmed which means that you think it is a real object

play10:47

and we can remove a tentative track with the same logic as removing a confirmed

play10:51

track so in this way you may have dozens of tentative tracks that you are

play10:55

maintaining due to false positive measurements but are deleting before

play10:59

they ever become confirmed so with the tracks created and removed and with the

play11:05

observations assigned we can run a set of estimation filters and this part is

play11:10

identical to single object tracking where we had choices like the

play11:13

interacting multiple model filter or the single model calman filter the predicted

play11:18

state of each tracked object that is assigned in observation and that's both

play11:23

tentative and confirmed objects they get updated with their respective

play11:27

observation and then the whole process starts anew we get more observations and

play11:31

then they're assigned to tracks and tracks are created and deleted and then

play11:35

the filters run again however it would be computationally foolish to look at

play11:39

every single observation and consider how likely it is to be assigned to every

play11:43

single track therefore we may choose to ignore observations outside of a defined

play11:48

region for each track and this is called gating and it's a screening mechanism

play11:53

that determines which detections are valid candidates to look at for

play11:57

assignment and which should just be flat-out ignored for example with JPD a

play12:02

an observation that's really far away from the tracked object would

play12:06

statistically contribute very little to the overall solution

play12:09

so why spin the computational resources to even calculate this miniscule amount

play12:14

and this is especially true if you're tracking dozens or hundreds of objects

play12:18

this can be extremely wasteful but by ignoring observations outside of a

play12:22

specific region outside of this gate we can speed up the assignment process

play12:28

all right this is where I'm gonna leave this video but before I end it I want to

play12:33

quickly show you an example in MATLAB that shows the results of two different

play12:37

multi object tracking algorithms in this example there's two objects that are

play12:41

moving independent of each other and we're observing them through a tracking

play12:45

radar the black triangles are the true positions of the objects and the circles

play12:49

are what are being detected with the radar station notice that when the two

play12:53

objects get close to each other the detections overlap and it becomes

play12:57

difficult to tell where the objects are in this region of ambiguity so this is

play13:04

the data we have to work with and let's try the algorithms and see how they do

play13:08

for the first one I'm using global nearest neighbor for data Association

play13:12

and an IMM for the estimation filter since these objects are maneuvering

play13:17

notice that when the objects are far from each other it's obvious which

play13:21

objects and detections go together and the G&N algorithm does a pretty good job

play13:25

object 1 is assigned to track 1 and object 2 is assigned to track 2 this is

play13:31

what GNN is good at matching data with tracked objects when they are sparse but

play13:36

when the objects are close to each other it doesn't do so well you can see that

play13:40

one track was deleted and a new track was added a few detections later

play13:44

so the algorithm got confused as to how many objects there were at one point in

play13:48

fact it jumped from track number 2 to track number 8 which means there were

play13:53

five other tentative tracks that it was maintaining before confirming the sixth

play13:57

one as track eight all right let's upgrade our assignment algorithm to the

play14:02

joint probabilistic data Association algorithm and see if it fares any better

play14:09

well it's interesting the two tracks are maintained through the whole maneuver

play14:14

but in the region of ambiguity there's still a lot more error than anywhere

play14:18

else but this is to be expected since the data overlaps in this region so much

play14:23

it's amazing that these algorithms can pull anything out from a situation like

play14:27

this now there is additional cost and complexity with J PDA over GNN so it's

play14:34

worth assessing what your requirements are rather than just implementing the

play14:38

most accurate and complex algorithms if the objects always were far away from

play14:42

each other then I'd prefer the simple GNN approach since it works fine in

play14:46

those situations and it's much easier to interpret and implement so that's the

play14:51

overall gist of the types of things that we need to think about and the kinds of

play14:55

problems we have to solve when tracking multiple objects at once and I want to

play14:59

stress again that there's no one way to accomplish this it's completely

play15:02

dependent on each unique situation but hopefully with this general overview

play15:07

you'll be in a better position to understand how to tackle your next multi

play15:11

object tracking problem alright if you don't want to miss the next Tech Talk

play15:16

video don't forget to subscribe to this channel also if you want to check out my

play15:20

channel control system lectures I cover more control theory topics there as well

play15:24

thanks for watching and I'll see you next time

Rate This

5.0 / 5 (0 votes)

Related Tags
Multi-Object TrackingMATLABTech TalkData AssociationEstimation FiltersTrack MaintenanceIMM AlgorithmJPDA AlgorithmRadar TrackingObject DetectionAlgorithm Optimization