Division Errors

Note: These flags are annotated on the parent nodes.

True Positive

A true positive division is a division event in which the parent and both daughters match between the ground truth and predicted graphs. True positive divisions are annotated on the parent node on both the ground truth and predicted graphs.

../_images/076525e5c3d35d85a71b700c1a11477c792bdb074b1c0475bb5113db9faf8f62.png

The frame_buffer parameter allows for divisions to be classified as true positives if they occur within the specified number of frames of tolerance. This feature is useful in cases where the exact frame that a division event occurs is somewhat arbitrary due to a high frame rate or variable segmentation or detection.

For the given ground truth graph, the subsequent predicted graphs show examples of true positive divisions events with different frame_buffer specifications.

../_images/114dc33fe921f759ddfee801d093b500025a16b40f8192be94544ca184eb2c64.png
../_images/58472003b9b1437dbfea215437ad38de3094d62817db70bb9b3cd3e46fe744e1.png

After classifying basic division errors, we consider all false positive and false negative divisions. If a pair of errors occurs within the specified frame buffer, the pair is considered a true positive division if the parent nodes and daughter nodes match. We determine the “parent node” of the late division by traversing back along the graph until we find the node in the same frame as the parent node of the early division. We repeat the process for finding daughters of the early division, by advancing along the graph to find nodes in the same frame as the late division daughters. Note that if a division is corrected by a given frame buffer value, it will also be considered correct for larger frame buffer values. For example, if a frame buffer of 1 corrects a division, that division will also be considered correct for frame buffer values of 2+.

False Negative

A false negative division is any division event in the ground truth that is not matched to a division in the predicted graph. False negative divisions are annotated on the ground truth graph.

Given the ground truth graph below, each of the subsequent prediction graphs would be classified as a false negative division.

../_images/e1523c1207cc1b40a3d9c68dec78f04b5af26d49356929a1fce1fce3f546121d.png

False Positive

A false positive division is any division event in the predicted graph that does not correspond to a division in the ground truth graph. False positive divisions are annotated on the predicted graph.

../_images/00de0e912c3cffe4c95bb685d0396d20b1e43579ca2f5579d5717ac989ab7246.png

Wrong Child

A wrong child division is one where the parent node is correctly matched and identified as a division, but either one or both daughters do not match. This error is annotated on both the ground truth and the predicted graph.

../_images/38e1e56d5486158bc6c193855568c21d242ea3d1a8deb75a608a5f56037f2bb5.png

Skip Edges

traccuracy considers an edge to be a skip edge if the source and target nodes are more than one frame apart.

In default division evaluation, skip edges must be identical in the ground truth and predicted graphs to be considered a true positive.

If the parent node with outgoing skip edges is not matched to the parent node in the ground truth graph, this will be a False Positive/False Negative division pair, even if the daughter nodes are correctly identified.

If the parent node with outgoing skip edges is correctly matched to the parent node in the ground truth graph, but the children are not matched because there is a skip edge, this will be a Wrong Child division, unless you relax skip edges.

../_images/cff5c418d3a534805711148dc3c95a2e83c876d2091d4181eece1e2df028fec9.png

Alternatively, if the relax_skips_gt or relax_skips_pred parameters are set to True, skip edges will be allowed on the ground truth and prediction respectively. In this case, a division can include a skip edge and still be considered correct. For a standard division (no frame shift), the parent nodes must directly match, but the daughters can be covered by a skip edge.

The following examples are correct without a frame buffer:

../_images/01f24a9dc35c4a66e9b82521bb7e0a64e5e7df924f72a287d69a15dac41043ad.png

The following examples need a frame buffer of 1 to be correct:

../_images/b6a686475fe0385962eeb9b35971121d87f86cba66544517374b0032ff6733e4.png