X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=include%2FMultiTracker.h;h=58ef9226aa91560d9ced9351c06bba8c273758bf;hb=209cfd9fe0ea398b794d1d1995629a826125f035;hp=0fd1d3a8b28d7debf012b6aef8d95d76324b5a2e;hpb=79009fa0674d90e03b7a7bd958f7ee1e20d9b194;p=trackerpp.git diff --git a/include/MultiTracker.h b/include/MultiTracker.h index 0fd1d3a..58ef922 100644 --- a/include/MultiTracker.h +++ b/include/MultiTracker.h @@ -3,30 +3,46 @@ #include "Tracker.h" #include "Detector.h" -#include "Metrics.h" #include "SharedPtr.h" +#include "PredictorWrapper.h" #include +#include namespace suanzi { + TK_DECLARE_PTR(Patch); TK_DECLARE_PTR(MultiTracker); + TK_DECLARE_PTR(Tracker); class MultiTracker { public: - MultiTracker(MetricsPtr m); + MultiTracker(); virtual ~MultiTracker(); void update(unsigned int total, const Detection* d, const cv::Mat& image); private: - MetricsPtr metrics; - std::set trackers; + std::vector trackers; int max_id = 0; - void addTracker(TrackerPtr t); - TrackerPtr createTracker(int id = 0); - void removeTracker(TrackerPtr t); - void correctTrackers(MetricsPtr m, cv::Mat& image); - void initNewTrackers(cv::Mat& iamge); + PatchPtr createPatch(const cv::Mat& image, const Detection& d); + double distance(TrackerPtr t, const cv::Mat& image, const Detection& d); + PredictorWrapperPtr predictor; + cv::HOGDescriptor descriptor; + }; + + class Patch + { + public: + ~Patch(){}; + cv::Mat image_crop; + //std::vector features; + // hog is a hog descriptor of the image (calculated by hog.compute. size is 3780 ) + // hue is a histogram of the image, (calcHist(), is a Mat with (width x height) 64 x 45) + std::pair, cv::Mat> features; + Detection detection; + protected: + friend class MultiTracker; + Patch(){}; };