Division Test Cases
To facilitate testing, we have provided a suite of canonical examples that cover the basic, simple scenarios that can occur in segmentation and tracking. Here we describe them and show visualizations of each case.
Metrics should test all the basic and division error cases. The examples are generated by
functions in the tests/examples/ directory.
plot_matched([ex_graphs.empty_pred_div(1), ex_graphs.empty_gt_div(1)], "Empty Divisions")
plot_matched([ex_graphs.good_div(t) for t in [0, 1, 2]], "Correct Divisions")
plot_matched([ex_graphs.fp_div(t) for t in [0, 1]], "False Positive Division")
plot_matched([ex_graphs.one_child(t) for t in [0, 1]], "Only One Child")
plot_matched([ex_graphs.no_children(t) for t in [0, 1]], "No Children")
plot_matched([ex_graphs.wrong_child(t) for t in [0, 1]], "Incorrect Child")
plot_matched([ex_graphs.wrong_children(t) for t in [0, 1]], "Incorrect Children")
plot_matched([ex_graphs.div_daughter_gap(), ex_graphs.div_daughter_dual_gap()], "Skip edge divisions")
Shifted Division Cases
plot_matched([ex_graphs.div_parent_gap(), ex_graphs.div_parent_daughter_gap(), ex_graphs.div_shifted_one_side_skip()], "Skip edge shifted divisions")
plot_matched([ex_graphs.div_1early_end(), ex_graphs.div_1early_mid()], "1 Frame Early")
plot_matched([ex_graphs.div_2early_end(), ex_graphs.div_2early_mid()], "2 Frames Early")
plot_matched([ex_graphs.div_1late_end(), ex_graphs.div_1late_mid()], "1 Frame Late")
plot_matched([ex_graphs.div_2late_end(), ex_graphs.div_2late_mid()], "2 Frames Late")
plot_matched([ex_graphs.div_shift_min_match()], "Minimal matching for shifted divisions")
plot_matched(
[ex_graphs.div_shift_bad_match_pred(), ex_graphs.div_shift_bad_match_daughter()],
"Insufficient matching for shifted divisions",
)