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

Function dti

tools/interpolation.py:66–114  ·  view source on GitHub ↗
(txt_path, save_path, n_min=25, n_dti=20)

Source from the content-addressed store, hash-verified

64
65
66def dti(txt_path, save_path, n_min=25, n_dti=20):
67 seq_txts = sorted(glob.glob(os.path.join(txt_path, '*.txt')))
68 for seq_txt in seq_txts:
69 seq_name = seq_txt.split('/')[-1]
70 seq_data = np.loadtxt(seq_txt, dtype=np.float64, delimiter=',')
71 min_id = int(np.min(seq_data[:, 1]))
72 max_id = int(np.max(seq_data[:, 1]))
73 seq_results = np.zeros((1, 10), dtype=np.float64)
74 for track_id in range(min_id, max_id + 1):
75 index = (seq_data[:, 1] == track_id)
76 tracklet = seq_data[index]
77 tracklet_dti = tracklet
78 if tracklet.shape[0] == 0:
79 continue
80 n_frame = tracklet.shape[0]
81 n_conf = np.sum(tracklet[:, 6] > 0.5)
82 if n_frame > n_min:
83 frames = tracklet[:, 0]
84 frames_dti = {}
85 for i in range(0, n_frame):
86 right_frame = frames[i]
87 if i > 0:
88 left_frame = frames[i - 1]
89 else:
90 left_frame = frames[i]
91 # disconnected track interpolation
92 if 1 < right_frame - left_frame < n_dti:
93 num_bi = int(right_frame - left_frame - 1)
94 right_bbox = tracklet[i, 2:6]
95 left_bbox = tracklet[i - 1, 2:6]
96 for j in range(1, num_bi + 1):
97 curr_frame = j + left_frame
98 curr_bbox = (curr_frame - left_frame) * (right_bbox - left_bbox) / \
99 (right_frame - left_frame) + left_bbox
100 frames_dti[curr_frame] = curr_bbox
101 num_dti = len(frames_dti.keys())
102 if num_dti > 0:
103 data_dti = np.zeros((num_dti, 10), dtype=np.float64)
104 for n in range(num_dti):
105 data_dti[n, 0] = list(frames_dti.keys())[n]
106 data_dti[n, 1] = track_id
107 data_dti[n, 2:6] = frames_dti[list(frames_dti.keys())[n]]
108 data_dti[n, 6:] = [1, -1, -1, -1]
109 tracklet_dti = np.vstack((tracklet, data_dti))
110 seq_results = np.vstack((seq_results, tracklet_dti))
111 save_seq_txt = os.path.join(save_path, seq_name)
112 seq_results = seq_results[1:]
113 seq_results = seq_results[seq_results[:, 0].argsort()]
114 write_results_score(save_seq_txt, seq_results)
115
116
117if __name__ == '__main__':

Callers 1

interpolation.pyFile · 0.85

Calls 1

write_results_scoreFunction · 0.85

Tested by

no test coverage detected