separate pytwrpper from predictorWrappery
[trackerpp.git] / src / MultiTracker.cpp
index 547a195..bbfc6f3 100644 (file)
@@ -11,16 +11,15 @@ using namespace std;
 
 static const std::string TAG = "MultiTracker";
 static const cv::Size PREFERRED_SIZE = Size(64, 128);
-
 static const double MaxCost  = 100000;
-static const int MaxPatch  = 5;
 static const double ProbThreshold = 0.05;
 
 MultiTracker::MultiTracker(EngineWPtr e)
 : engine(e)
 {
     LOG_DEBUG(TAG, "init - loading model.pkl");
-    predictor = PredictorWrapper::create("./python", "./python/model.pkl");
+    predictor = PredictorWrapperPtr(new PredictorWrapper());
+    predictor->load("./resources/model.pkl");
     predictor->dump();
     this->descriptor = {Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9};
 }
@@ -75,7 +74,7 @@ double MultiTracker::distance(TrackerPtr tracker, const cv::Mat& image, const De
         ss = similarity(i, patch);
         features.insert(features.end(),  ss.begin(), ss.end());
     }
-    double prob = predictor->predict(MaxPatch - 1, features); // TODO ???
+    double prob = predictor->predict(Tracker::MaxPatch - 1, features); // TODO why is MaxPatch-1
     if (prob > ProbThreshold)
         return -log(prob);
     else 
@@ -94,7 +93,7 @@ void MultiTracker::update(unsigned int total, const Detection* detections, const
         t->predict();
     }
 
-    // match the trackers with the detections
+    // match the trackers with the detections using linear sum assignment (hungarian)
     int row = trackers.size();
     int col = total;
     Eigen::MatrixXi cost_matrix = Eigen::MatrixXi::Zero(row, col);