/*
- * mtp is the ``Multi Tracked Path'', an implementation of the
- * k-shortest path algorithm for multi-target tracking.
+ * mtp is the ``Multi Tracked Paths'', an implementation of the
+ * k-shortest paths algorithm for multi-target tracking.
*
* Copyright (c) 2012 Idiap Research Institute, http://www.idiap.ch/
* Written by Francois Fleuret <francois.fleuret@idiap.ch>
*
*/
-// Multi-Tracked Path
-
#include <iostream>
#include <fstream>
+#include <sys/time.h>
using namespace std;
-#include "tracker.h"
+#include "mtp_tracker.h"
+
+scalar_t diff_in_second(struct timeval *start, struct timeval *end) {
+ return
+ scalar_t(end->tv_sec - start->tv_sec) +
+ scalar_t(end->tv_usec - start->tv_usec)/1000000;
+}
int main(int argc, char **argv) {
+ timeval start_time, end_time;
if(argc < 2) {
cerr << argv[0] << " <tracker file>" << endl;
if(in_tracker->good()) {
- Tracker *tracker = new Tracker();
+ MTPTracker *tracker = new MTPTracker();
+ cout << "Reading " << argv[1] << "." << endl;
tracker->read(in_tracker);
- cout << "Read " << argv[1] << endl;
+ cout << "Building the graph ... "; cout.flush();
+ gettimeofday(&start_time, 0);
tracker->build_graph();
+ gettimeofday(&end_time, 0);
+ cout << "done (" << diff_in_second(&start_time, &end_time) << "s)." << endl;
+
+ cout << "Tracking ... "; cout.flush();
+ gettimeofday(&start_time, 0);
tracker->track();
+ gettimeofday(&end_time, 0);
+ cout << "done (" << diff_in_second(&start_time, &end_time) << "s)." << endl;
ofstream out_traj("result.trj");
tracker->write_trajectories(&out_traj);