MCPcopy Create free account
hub / github.com/PeizeSun/TransTrack / Tracker

Class Tracker

models/tracker.py:11–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9import copy
10
11class Tracker(object):
12 def __init__(self, score_thresh, max_age=32):
13 self.score_thresh = score_thresh
14 self.max_age = max_age
15 self.id_count = 0
16 self.tracks_dict = dict()
17 self.tracks = list()
18 self.unmatched_tracks = list()
19 self.reset_all()
20
21 def reset_all(self):
22 self.id_count = 0
23 self.tracks_dict = dict()
24 self.tracks = list()
25 self.unmatched_tracks = list()
26
27 def init_track(self, results):
28
29 scores = results["scores"]
30 classes = results["labels"]
31 bboxes = results["boxes"] # x1y1x2y2
32
33 ret = list()
34 ret_dict = dict()
35 for idx in range(scores.shape[0]):
36 if scores[idx] >= self.score_thresh:
37 self.id_count += 1
38 obj = dict()
39 obj["score"] = float(scores[idx])
40 obj["bbox"] = bboxes[idx, :].cpu().numpy().tolist()
41 obj["tracking_id"] = self.id_count
42# obj['vxvy'] = [0.0, 0.0]
43 obj['active'] = 1
44 obj['age'] = 1
45 ret.append(obj)
46 ret_dict[idx] = obj
47
48 self.tracks = ret
49 self.tracks_dict = ret_dict
50 return copy.deepcopy(ret)
51
52
53 def step(self, output_results):
54 scores = output_results["scores"]
55 classes = output_results["labels"]
56 bboxes = output_results["boxes"] # x1y1x2y2
57 track_bboxes = output_results["track_boxes"] if "track_boxes" in output_results else None # x1y1x2y2
58
59 results = list()
60 results_dict = dict()
61
62 tracks = list()
63
64 for idx in range(scores.shape[0]):
65 if idx in self.tracks_dict and track_bboxes is not None:
66 self.tracks_dict[idx]["bbox"] = track_bboxes[idx, :].cpu().numpy().tolist()
67
68 if scores[idx] >= self.score_thresh:

Callers 2

mainFunction · 0.90
mainFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected