Tracking diagrams
General diagram
@startuml{tracking_uml_general.png}
package “Tracker”
package “TrackerFeature”
package “TrackerSampler”
package “TrackerModel”
Tracker -> TrackerModel: create
Tracker -> TrackerSampler: create
Tracker -> TrackerFeature: create
@enduml
Tracker diagram
@startuml{tracking_uml_tracking.png}
package “Tracker package” #DDDDDD {
class Algorithm
class Tracker{
Ptr featureSet;
Ptr sampler;
Ptr model;
—
+static Ptr create(const string& trackerType);
+bool init(const Mat& image, const Rect& boundingBox);
+bool update(const Mat& image, Rect& boundingBox);
}
class Tracker
note right: Tracker is the general interface for each specialized trackers
class TrackerMIL{
+static Ptr createTracker(const TrackerMIL::Params ¶meters);
+virtual ~TrackerMIL();
}
class TrackerBoosting{
+static Ptr createTracker(const TrackerBoosting::Params ¶meters);
+virtual ~TrackerBoosting();
}
Algorithm <|– Tracker : virtual inheritance
Tracker <|– TrackerMIL
Tracker <|– TrackerBoosting
note “Single instance of the Tracker” as N1
TrackerBoosting .. N1
TrackerMIL .. N1
}
@enduml
TrackerFeatureSet diagram
@startuml{tracking_uml_feature.png}
package “TrackerFeature package” #DDDDDD {
class TrackerFeatureSet{
-vector
TrackerModel diagram
@startuml{tracking_uml_model.png}
package “TrackerModel package” #DDDDDD {
class Typedef << (T,#FF7700) >>{
ConfidenceMap
Trajectory
}
class TrackerModel{
-vector confidenceMaps;
-Trajectory trajectory;
-Ptr stateEstimator;
…
TrackerModel();
~TrackerModel();
+bool setTrackerStateEstimator(Ptr<TrackerStateEstimator> trackerStateEstimator);
+Ptr<TrackerStateEstimator> getTrackerStateEstimator();
+void modelEstimation(const vector<Mat>& responses);
+void modelUpdate();
+void setLastTargetState(const Ptr<TrackerTargetState> lastTargetState);
+void runStateEstimator();
+const vector<ConfidenceMap>& getConfidenceMaps();
+const ConfidenceMap& getLastConfidenceMap();
}
class TrackerTargetState <>{
Point2f targetPosition;
—
Point2f getTargetPosition();
void setTargetPosition(Point2f position);
}
class TrackerTargetState
note bottom: Each tracker can create own state
class TrackerStateEstimator <>{
~TrackerStateEstimator();
static Ptr create(const String& trackeStateEstimatorType);
Ptr estimate(const vector& confidenceMaps)
void update(vector& confidenceMaps)
}
class TrackerStateEstimatorSVM{
TrackerStateEstimatorSVM()
~TrackerStateEstimatorSVM()
Ptr estimate(const vector& confidenceMaps)
void update(vector& confidenceMaps)
}
class TrackerStateEstimatorMILBoosting{
TrackerStateEstimatorMILBoosting()
~TrackerStateEstimatorMILBoosting()
Ptr estimate(const vector& confidenceMaps)
void update(vector& confidenceMaps)
}
TrackerModel -> TrackerStateEstimator: create
TrackerModel *– TrackerTargetState
TrackerStateEstimator <|– TrackerStateEstimatorMILBoosting
TrackerStateEstimator <|– TrackerStateEstimatorSVM
}
@enduml
TrackerSampler diagram
@startuml{tracking_uml_sampler.png}
package “TrackerSampler package” #DDDDDD {
class TrackerSampler{
-vector