question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

What's the definition of num_transfer, num_ascend, num_migrate?

See original GitHub issue

First of all, thank you for the amazing work! Very useful.

I have some confusions about the definition of num_transfer, num_ascend, num_migrate. From previous issues, I found these:

I define two extra matching states: TRANSFER and ASCEND. A TRANSFER means a hypothesis ID is assigned from an old target to a new target (the SWITCH means a target is assigned from an old hypothesis ID to a new hypothesis ID). An ASCEND means a new ID is assigned to a target (this is a sub-state for SWITCH). For instance, a->b, b->a is TRANSFER also SWITCH(not ASCEND), a->b(new) is TRANSFER but not SWITCH, c(new)->a is SWITCH also ASCEND, but not TRANSFER. In the origin metrics, there exists mistake cases cannot be modeled by SWITCH, but can be figured out by TRANSFER. The purpose is to make more detailed analysis.

Based on this, I kind of understand the meaning of TRANSFER, but not so sure about ASCEND and MIGRATE.

And also, I found this information, making me more confused:

# assert ((summary['num_transfer'] - summary['num_migrate']) == (summary['num_switches'] - summary['num_ascend'])).all() # False assertion

Could you kindly explain this with some examples? Thank you!

@Helicopt @cheind

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:6 (1 by maintainers)

github_iconTop GitHub Comments

2reactions
jvlmdrcommented, Jun 1, 2020

I believe these events are most clearly defined in the docstring of MOTAccumulator. Compare the definitions of MATCH, SWITCH, TRANSFER, ASCEND, MIGRATE.

https://github.com/cheind/py-motmetrics/blob/bdc417d92e4c2e15ba2a6e22579f78c2e78c3334/motmetrics/mot.py#L43-L50

1reaction
jvlmdrcommented, Jun 1, 2020

The MOT16 paper defined “identity switches” (num_switches) to be the number of times that the predicted identity of a ground-truth track changed. However, the converse is not counted, i.e. the number of times that the ground-truth identity of a predicted track changes.

Consider the following example. Track 1 is following object A until it leaves the scene. At the same time, object B enters the scene and track 1 jumps (“transfers”) from object A to object B. This would not count as a “SWITCH” event and would not affect num_switches, since the predicted identities of object A and object B did not change.

If I understand correctly, then the “TRANSFER” event and the num_transfer statistic were created to count these types of errors.

Read more comments on GitHub >

github_iconTop Results From Across the Web

No results found

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found