X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=include%2FMultiTracker.h;h=2a9d0bc18829a83698d5dbb70b81b5b5a8d4ad58;hb=97b147e9106cb549dd7dd62829b9d29b326738c7;hp=0fd1d3a8b28d7debf012b6aef8d95d76324b5a2e;hpb=79009fa0674d90e03b7a7bd958f7ee1e20d9b194;p=trackerpp.git diff --git a/include/MultiTracker.h b/include/MultiTracker.h index 0fd1d3a..2a9d0bc 100644 --- a/include/MultiTracker.h +++ b/include/MultiTracker.h @@ -3,30 +3,49 @@ #include "Tracker.h" #include "Detector.h" -#include "Metrics.h" #include "SharedPtr.h" +#include "PredictorWrapper.h" #include +#include +#include "Engine.h" namespace suanzi { + TK_DECLARE_PTR(Patch); TK_DECLARE_PTR(MultiTracker); + TK_DECLARE_PTR(Tracker); + TK_DECLARE_PTR(Engine); class MultiTracker { public: - MultiTracker(MetricsPtr m); + MultiTracker(EngineWPtr e); 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; + PatchPtr createPatch(const cv::Mat& image, const Detection& d); + double distance(TrackerPtr t, const cv::Mat& image, const Detection& d); 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); + PredictorWrapperPtr predictor; + cv::HOGDescriptor descriptor; + EngineWPtr engine; + }; + + class Patch + { + public: + ~Patch(){}; + cv::Mat image_crop; + // 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(){}; };