-
Notifications
You must be signed in to change notification settings - Fork 3
Description
In our spec we should better clarify what we mean by "linear" and, consequently, what exactly differs between a link and a track, since according to the current version the only difference is that the former is linear while the latter isn't.
Object identity is also tightly related to the above, since defining links and tracks essentially amounts to stating which frame regions are actually instances of the same object across different time points.
The current gap closing example is the one that best exposes this ambiguity.
Does "linear collection" mean "a collection of object instances that represent the same object across contiguous frames"? If so, a gap event cannot even be represented by a link. Does it mean "a collection of object instances that represent the same object across different (not necessarily contiguous) frames"? If so, since we allow a link to encompass more than two frames, the links table in our gap closing example should contain only one link with all the objects in it (and there should be only one track consisting of that single link):
| Link_ID | Object_ID |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
Another way to put it is this: since we have defined a track as "a collection of links", but we allow links to span more than two frames, when is a collection of links a link itself, and when is it another entity (track) instead? Following the above, we only have a "real" track in cases containing split and merge events, where different object histories become related.
Another potential problem is that in our split example we are arbitrarily assigning the connection between object instances in frames 1 and 2 to the first link.
This basically amounts to saying that the object described by the second link has been "generated" by the one described by the first link, which maintains its identity throughout the whole frame sequence. If we want the two objects starting from frame 3 to have an equal status, we should use three different links:
| Link_ID | Object_ID |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 2 | 3 |
| 2 | 5 |
| 2 | 7 |
| 3 | 2 |
| 3 | 4 |
| 3 | 6 |
| 3 | 8 |
The same goes for the merge example, with directions reversed.

