(2) a number of time steps
(3) a detection score for every location and time, which stands for
- log(P(Y = 1 | X)/P(Y = 0 | X)) where Y is the said location
- occupancy and X the available observations.
-From this setting, MTPTracker has methods to compute the best set of
-disjoint trajectories consistent with the topology, which maximizes
-the overall detection score (i.e. the sum of the detection scores of
-the nodes visited by the trajectories). If no trajectory of total
-positive detection score exists, this optimal set of trajectories will
-be empty.
-
-The MTPTracker is a wrapper around the MTPGraph class.
+ log( P(Y(l,t) = 1 | X) / P(Y(l,t) = 0 | X) )
-From the defined spatial topology and number of time steps, it builds
-a graph with one source, one sink, and two nodes per location and
-time. This structure ensures that the trajectories computed by the
-MTPTracker will be node-disjoint, since the trajectories computed by
-the MTPGraph are edge-disjoint.
+ where Y is the occupancy of location l at time t and X is the
+ available observation.
-The edges from the source or to the sink, or between these pairs of
-nodes, are of length zero, and the edges between the two nodes of such
-a pair have negative lengths, equal to the opposite of the
-corresponding detection scores.
+From this setting, MTPTracker has methods to compute the best set of
+disjoint trajectories consistent with the defined topology, which
+maximizes the overall detection score (i.e. the sum of the detection
+scores of the nodes visited by the trajectories). If no trajectory of
+total positive detection score exists, this optimal set of
+trajectories will be empty.
+
+The MTPTracker is a wrapper around the MTPGraph class. From the
+defined spatial topology and number of time steps, it builds a graph
+with one source, one sink, and two nodes per location and time. The
+edges from the source or to the sink, or between these pairs of nodes,
+are of length zero, and the edges between the two nodes of such a pair
+have negative lengths, equal to the opposite of the corresponding
+detection scores. This structure also ensures that the trajectories
+computed by the MTPTracker will be node-disjoint, since the
+trajectories computed by the MTPGraph are edge-disjoint.
The file mtp_example.cc gives a very simple usage example of the
MTPTracker class by setting the tracker parameters dynamically, and
The tracker data file for MTPTracker::read has the following format,
where L is the number of locations and T is the number of time steps:
- ---------------------------- snip snip -------------------------------
+---------------------------- snip snip -------------------------------
int:L int:T
bool:allowed_motion_from_1_to_1 ... bool:allowed_motion_from_1_to_L
float:detection_score_1_1 ... float:detection_score_1_L
...
float:detection_score_T_1 ... float:detection_score_T_L
- ---------------------------- snip snip -------------------------------
+---------------------------- snip snip -------------------------------
The method MTPTracker::write_trajectories writes first the number of
trajectories, followed by one line per trajectory with the following
structure
- ---------------------------- snip snip -------------------------------
+---------------------------- snip snip -------------------------------
int:traj_number int:entrance_time int:duration float:score int:location_1 ... int:location_duration
- ---------------------------- snip snip -------------------------------
+---------------------------- snip snip -------------------------------
--
François Fleuret
-September 2012
+October 2012