MCPcopy Index your code
hub / github.com/FoundationVision/ByteTrack / STrack

Class STrack

tutorials/cstrack/byte_tracker.py:21–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19
20
21class STrack(BaseTrack):
22 shared_kalman = KalmanFilter()
23 def __init__(self, tlwh, score):
24
25 # wait activate
26 self._tlwh = np.asarray(tlwh, dtype=np.float)
27 self.kalman_filter = None
28 self.mean, self.covariance = None, None
29 self.is_activated = False
30
31 self.score = score
32 self.tracklet_len = 0
33
34 def predict(self):
35 mean_state = self.mean.copy()
36 if self.state != TrackState.Tracked:
37 mean_state[7] = 0
38 self.mean, self.covariance = self.kalman_filter.predict(mean_state, self.covariance)
39
40 @staticmethod
41 def multi_predict(stracks):
42 if len(stracks) > 0:
43 multi_mean = np.asarray([st.mean.copy() for st in stracks])
44 multi_covariance = np.asarray([st.covariance for st in stracks])
45 for i, st in enumerate(stracks):
46 if st.state != TrackState.Tracked:
47 multi_mean[i][7] = 0
48 multi_mean, multi_covariance = STrack.shared_kalman.multi_predict(multi_mean, multi_covariance)
49 for i, (mean, cov) in enumerate(zip(multi_mean, multi_covariance)):
50 stracks[i].mean = mean
51 stracks[i].covariance = cov
52
53 def activate(self, kalman_filter, frame_id):
54 """Start a new tracklet"""
55 self.kalman_filter = kalman_filter
56 self.track_id = self.next_id()
57 self.mean, self.covariance = self.kalman_filter.initiate(self.tlwh_to_xyah(self._tlwh))
58
59 self.tracklet_len = 0
60 self.state = TrackState.Tracked
61 #self.is_activated = True
62 self.frame_id = frame_id
63 self.start_frame = frame_id
64
65 def re_activate(self, new_track, frame_id, new_id=False):
66 self.mean, self.covariance = self.kalman_filter.update(
67 self.mean, self.covariance, self.tlwh_to_xyah(new_track.tlwh)
68 )
69
70 self.tracklet_len = 0
71 self.state = TrackState.Tracked
72 self.is_activated = True
73 self.frame_id = frame_id
74 if new_id:
75 self.track_id = self.next_id()
76
77 def update(self, new_track, frame_id):
78 """

Callers 1

updateMethod · 0.70

Calls 1

KalmanFilterClass · 0.90

Tested by

no test coverage detected