欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝做分销有成功的吗 编辑:程序博客网 时间:2024/06/04 00:38

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 &parameters);
+virtual ~TrackerMIL();
}
class TrackerBoosting{
+static Ptr createTracker(const TrackerBoosting::Params &parameters);
+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