OpenShot Library | libopenshot
0.7.0
sort_filter
KalmanTracker.h
Go to the documentation of this file.
1
// © OpenShot Studios, LLC
2
//
3
// SPDX-License-Identifier: LGPL-3.0-or-later
4
6
// KalmanTracker.h: KalmanTracker Class Declaration
7
8
#ifndef KALMAN_H
9
#define KALMAN_H 2
10
11
#include "opencv2/video/tracking.hpp"
12
#include "opencv2/highgui/highgui.hpp"
13
14
#include <map>
15
#include <vector>
16
17
18
#define StateType cv::Rect_<float>
19
20
struct
ClassScore
21
{
22
int
classId
= 0;
23
float
score
= 0.0f;
24
ClassScore
() {}
25
ClassScore
(
int
_classId,
float
_score) :
classId
(_classId),
score
(_score) {}
26
};
27
29
class
KalmanTracker
30
{
31
public
:
32
KalmanTracker
()
33
{
34
init_kf(
StateType
());
35
m_time_since_update
= 0;
36
m_hits
= 0;
37
m_hit_streak
= 0;
38
m_age
= 0;
39
m_id
= 0;
40
}
41
KalmanTracker
(
StateType
initRect,
float
confidence
,
int
classId
,
int
objectId,
const
std::vector<ClassScore>& classScores = {}) :
confidence
(
confidence
),
classId
(
classId
)
42
{
43
init_kf(initRect);
44
m_time_since_update
= 0;
45
m_hits
= 0;
46
m_hit_streak
= 0;
47
m_age
= 0;
48
m_id
= objectId;
49
update_class_scores
(classScores,
classId
,
confidence
);
50
}
51
52
~KalmanTracker
()
53
{
54
m_history.clear();
55
}
56
57
StateType
predict
();
58
StateType
predict2
();
59
void
update
(
StateType
stateMat);
60
void
update_class_scores
(
const
std::vector<ClassScore>& classScores,
int
fallbackClassId,
float
fallbackConfidence);
61
62
StateType
get_state
();
63
StateType
get_rect_xysr
(
float
cx,
float
cy,
float
s,
float
r);
64
65
int
m_time_since_update
;
66
int
m_hits
;
67
int
m_hit_streak
;
68
int
m_age
;
69
int
m_id
;
70
float
confidence
;
71
int
classId
;
72
std::map<int, double>
classScoreHistory
;
73
74
private
:
75
void
init_kf(
StateType
stateMat);
76
77
cv::KalmanFilter kf;
78
cv::Mat measurement;
79
80
std::vector<StateType> m_history;
81
};
82
83
#endif
KalmanTracker::classId
int classId
Definition:
KalmanTracker.h:71
ClassScore::score
float score
Definition:
KalmanTracker.h:23
KalmanTracker::KalmanTracker
KalmanTracker()
Definition:
KalmanTracker.h:32
StateType
#define StateType
Definition:
KalmanTracker.h:18
KalmanTracker::~KalmanTracker
~KalmanTracker()
Definition:
KalmanTracker.h:52
KalmanTracker
This class represents the internel state of individual tracked objects observed as bounding box.
Definition:
KalmanTracker.h:29
KalmanTracker::classScoreHistory
std::map< int, double > classScoreHistory
Definition:
KalmanTracker.h:72
ClassScore::ClassScore
ClassScore()
Definition:
KalmanTracker.h:24
ClassScore
Definition:
KalmanTracker.h:20
KalmanTracker::m_age
int m_age
Definition:
KalmanTracker.h:68
ClassScore::classId
int classId
Definition:
KalmanTracker.h:22
KalmanTracker::get_rect_xysr
StateType get_rect_xysr(float cx, float cy, float s, float r)
Definition:
KalmanTracker.cpp:147
KalmanTracker::m_id
int m_id
Definition:
KalmanTracker.h:69
KalmanTracker::predict2
StateType predict2()
Definition:
KalmanTracker.cpp:70
KalmanTracker::update_class_scores
void update_class_scores(const std::vector< ClassScore > &classScores, int fallbackClassId, float fallbackConfidence)
Definition:
KalmanTracker.cpp:103
KalmanTracker::confidence
float confidence
Definition:
KalmanTracker.h:70
KalmanTracker::KalmanTracker
KalmanTracker(StateType initRect, float confidence, int classId, int objectId, const std::vector< ClassScore > &classScores={})
Definition:
KalmanTracker.h:41
KalmanTracker::m_time_since_update
int m_time_since_update
Definition:
KalmanTracker.h:65
KalmanTracker::m_hits
int m_hits
Definition:
KalmanTracker.h:66
KalmanTracker::update
void update(StateType stateMat)
Definition:
KalmanTracker.cpp:81
KalmanTracker::get_state
StateType get_state()
Definition:
KalmanTracker.cpp:140
ClassScore::ClassScore
ClassScore(int _classId, float _score)
Definition:
KalmanTracker.h:25
KalmanTracker::m_hit_streak
int m_hit_streak
Definition:
KalmanTracker.h:67
KalmanTracker::predict
StateType predict()
Definition:
KalmanTracker.cpp:54
Generated by
1.8.17