How it's done now: A point of interest is marked in 5 different frames. Then candidate nodes are selected. In selectcandidates(), which is slow, _approximate_distance_to_positivepatches() is computed for 5 positive patches. Then the path is traced.
How it's done in GraphTrack: A point of interest is only marked in the 1st frame. Then candidate nodes are selected. selectcandidates() will run faster now (5 times faster?) as it only checks one positive patch in each _approximate_distance_to_positivepatches() call. Then the path is traced. If in a certain frame the point was marked incorrectly, we manually mark it (that changes the graph structure), and then we run Djikstra() again (which is inexpensive). No need to call _selectcandidates() again.
How it's done now: A point of interest is marked in 5 different frames. Then candidate nodes are selected. In selectcandidates(), which is slow, _approximate_distance_to_positivepatches() is computed for 5 positive patches. Then the path is traced.
How it's done in GraphTrack: A point of interest is only marked in the 1st frame. Then candidate nodes are selected. selectcandidates() will run faster now (5 times faster?) as it only checks one positive patch in each _approximate_distance_to_positivepatches() call. Then the path is traced. If in a certain frame the point was marked incorrectly, we manually mark it (that changes the graph structure), and then we run Djikstra() again (which is inexpensive). No need to call _selectcandidates() again.