def track_vot(self): """Run tracker on VOT.""" def _convert_anno_to_list(vot_anno): vot_anno = [ vot_anno[0][0][0], vot_anno[0][0][1], vot_anno[0][1][0], vot_anno[0][1][1], vot_anno[0][2][0], vot_anno[0][2][1], vot_anno[0][3][0], vot_anno[0][3][1] ] return vot_anno def _convert_image_path(image_path): image_path_new = image_path[20:-2] return "".join(image_path_new) handle = vot.VOT("polygon") vot_anno_polygon = handle.region() vot_anno_polygon = _convert_anno_to_list(vot_anno_polygon) init_state = convert_vot_anno_to_rect( vot_anno_polygon, self.params.vot_anno_conversion_type) image_path = handle.frame() if not image_path: return image_path = _convert_image_path(image_path) image = self._read_image(image_path) self.initialize(image, {'init_bbox': init_state}) if self.visdom is not None: self.visdom.register((image, init_state), 'Tracking', 1, 'Tracking') # Track while True: while True: if not self.pause_mode: break elif self.step: self.step = False break else: time.sleep(0.1) image_path = handle.frame() if not image_path: break image_path = _convert_image_path(image_path) image = self._read_image(image_path) out = self.track(image) state = out['target_bbox'] if self.visdom is not None: self.visdom.register((image, state), 'Tracking', 1, 'Tracking') handle.report(vot.Rectangle(state[0], state[1], state[2], state[3]))
def run_vot(self, debug=None, visdom_info=None): params = self.get_parameters() params.tracker_name = self.name params.param_name = self.parameter_name params.run_id = self.run_id debug_ = debug if debug is None: debug_ = getattr(params, 'debug', 0) if debug is None: visualization_ = getattr(params, 'visualization', False) else: visualization_ = True if debug else False params.visualization = visualization_ params.debug = debug_ self._init_visdom(visdom_info, debug_) tracker = self.create_tracker(params) tracker.initialize_features() import pytracking.evaluation.vot as vot def _convert_anno_to_list(vot_anno): vot_anno = [vot_anno[0][0][0], vot_anno[0][0][1], vot_anno[0][1][0], vot_anno[0][1][1], vot_anno[0][2][0], vot_anno[0][2][1], vot_anno[0][3][0], vot_anno[0][3][1]] return vot_anno def _convert_image_path(image_path): image_path_new = image_path[20:- 2] return "".join(image_path_new) """Run tracker on VOT.""" handle = vot.VOT("polygon") vot_anno_polygon = handle.region() vot_anno_polygon = _convert_anno_to_list(vot_anno_polygon) init_state = convert_vot_anno_to_rect(vot_anno_polygon, tracker.params.vot_anno_conversion_type) image_path = handle.frame() if not image_path: return image_path = _convert_image_path(image_path) image = self._read_image(image_path) tracker.initialize(image, {'init_bbox': init_state}) # Track while True: image_path = handle.frame() if not image_path: break image_path = _convert_image_path(image_path) image = self._read_image(image_path) out = tracker.track(image) state = out['target_bbox'] handle.report(vot.Rectangle(state[0], state[1], state[2], state[3])) segmentation = out['segmentation'] if 'segmentation' in out else None if self.visdom is not None: tracker.visdom_draw_tracking(image, out['target_bbox'], segmentation) elif tracker.params.visualization: self.visualize(image, out['target_bbox'], segmentation)