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

Function main

tutorials/jde/track_half.py:121–174  ·  view source on GitHub ↗
(opt, data_root='/data/MOT16/train', det_root=None, seqs=('MOT16-05',), exp_name='demo', 
         save_images=False, save_videos=False, show_image=True)

Source from the content-addressed store, hash-verified

119
120
121def main(opt, data_root='/data/MOT16/train', det_root=None, seqs=('MOT16-05',), exp_name='demo',
122 save_images=False, save_videos=False, show_image=True):
123 logger.setLevel(logging.INFO)
124 result_root = os.path.join(data_root, '..', 'results', exp_name)
125 mkdir_if_missing(result_root)
126 data_type = 'mot'
127
128 # Read config
129 cfg_dict = parse_model_cfg(opt.cfg)
130 opt.img_size = [int(cfg_dict[0]['width']), int(cfg_dict[0]['height'])]
131
132 # run tracking
133 accs = []
134 n_frame = 0
135 timer_avgs, timer_calls = [], []
136 for seq in seqs:
137 output_dir = os.path.join(data_root, '..','outputs', exp_name, seq) if save_images or save_videos else None
138
139 logger.info('start seq: {}'.format(seq))
140 dataloader = datasets.LoadImages(osp.join(data_root, seq, 'img1'), opt.img_size)
141 result_filename = os.path.join(result_root, '{}.txt'.format(seq))
142 meta_info = open(os.path.join(data_root, seq, 'seqinfo.ini')).read()
143 frame_rate = int(meta_info[meta_info.find('frameRate')+10:meta_info.find('\nseqLength')])
144 nf, ta, tc = eval_seq(opt, dataloader, data_type, result_filename,
145 save_dir=output_dir, show_image=show_image, frame_rate=frame_rate)
146 n_frame += nf
147 timer_avgs.append(ta)
148 timer_calls.append(tc)
149
150 # eval
151 logger.info('Evaluate seq: {}'.format(seq))
152 evaluator = Evaluator(data_root, seq, data_type)
153 accs.append(evaluator.eval_file(result_filename))
154 if save_videos:
155 output_video_path = osp.join(output_dir, '{}.mp4'.format(seq))
156 cmd_str = 'ffmpeg -f image2 -i {}/%05d.jpg -c:v copy {}'.format(output_dir, output_video_path)
157 os.system(cmd_str)
158 timer_avgs = np.asarray(timer_avgs)
159 timer_calls = np.asarray(timer_calls)
160 all_time = np.dot(timer_avgs, timer_calls)
161 avg_time = all_time / np.sum(timer_calls)
162 logger.info('Time elapsed: {:.2f} seconds, FPS: {:.2f}'.format(all_time, 1.0 / avg_time))
163
164 # get summary
165 metrics = mm.metrics.motchallenge_metrics
166 mh = mm.metrics.create()
167 summary = Evaluator.get_summary(accs, seqs, metrics)
168 strsummary = mm.io.render_summary(
169 summary,
170 formatters=mh.formatters,
171 namemap=mm.io.motchallenge_metric_names
172 )
173 print(strsummary)
174 Evaluator.save_summary(summary, os.path.join(result_root, 'summary_{}.xlsx'.format(exp_name)))
175
176
177

Callers 1

track_half.pyFile · 0.70

Calls 6

eval_fileMethod · 0.95
EvaluatorClass · 0.90
mkdir_if_missingFunction · 0.85
eval_seqFunction · 0.85
get_summaryMethod · 0.45
save_summaryMethod · 0.45

Tested by

no test coverage detected