This means that it will iteratively add paths as long as it can find
some with negative length. If there are no such path, it will compute
-no path at all. Note that the solution it finds is globally
-optimal. Note that the procedure is similar to that of KSP, in the
-sense that the family it computes eventually is globally optimal, even
-if the procedure is iterative.
+no path at all. Note that the procedure is similar to that of KSP, in
+the sense that the family it computes eventually is globally optimal,
+even if the computation is iterative.
The Tracker class allows
(2) to define a number of time steps
(3) to set for every location and time a detection score, which
- should be equal to log(P(Y = 1 | X)/P(Y = 0 | X)) where Y stands for
- the location occupancy and X for the observations.
+ should be equal to log(P(Y = 1 | X)/P(Y = 0 | X)) where Y stands
+ for the location occupancy and X for the observations.
From this setting, it computes the best set of disjoint trajectories
consistent with the topology, which maximizes the overall detection
spatial topology, it builds a graph with one source, one sink, and two
nodes per location and time. This structure ensures the trajectories
computed by the tracker to be node-disjoint by forcing the paths
-computed by the MTPGraph to be edge-disjoint. The edges from the
-source or to the sink, or between these pairs, are of length zero, and
-the edge between the two nodes of such a pair has a length equal to
-the opposite of the detection score.
+computed by the MTPGraph to be edge-disjoint.
+
+The edges from the source or to the sink, or between these pairs, are
+of length zero, and the edge between the two nodes of such a pair has
+a length equal to the opposite of the detection score.
The file mtp.cc gives a very simple usage example of the Tracker
class.
+The tracker data file one can read with Tracker::read has the
+following format (with L the number of locations and T the number of
+time steps):
+
+---------------------------- snip snip -------------------------------
+L T
+
+allowed_motion_from_1_to_1 ... allowed_motion_from_1_to_L
+...
+allowed_motion_from_L_to_1 ... allowed_motion_from_L_to_L
+
+is_an_entrance_1 ... is_an_entrance_L
+
+is_an_exit_1 ... is_an_exit_L
+
+detection_score_1_1 ... detection_score_1_L
+...
+detection_score_T_1 ... detection_score_T_L
+---------------------------- snip snip -------------------------------
+
--
François Fleuret
August 2012