def track(self, frame): self._tracker = SiamRPN_track(self._tracker, frame) target_pos = self._tracker['target_pos'] target_sz = self._tracker['target_sz'] bbox = (int(target_pos[0] - target_sz[0] / 2.0), int(target_pos[0] + target_sz[0] / 2.0), int(target_pos[1] - target_sz[1] / 2.0), int(target_pos[1] + target_sz[1] / 2.0)) return bbox
def update(self, next_image): """ Update box position and size on next_image. Returns True beacuse tracking is terminated based on number of frames predicted in OpenLabeling, not based on feedback from tracking algorithm (unlike the opencv tracking algorithms). """ self.state = SiamRPN_track(self.state, next_image) target_pos = self.state["target_pos"] target_sz = self.state["target_sz"] bbox = self.pos_to_bbox(target_pos, target_sz) return True, bbox
def track(self, frame): """ Tracks obstacles in a frame. Args: frame (:py:class:`~pylot.perception.camera_frame.CameraFrame`): Frame to track in. """ self._tracker = SiamRPN_track(self._tracker, frame.frame) target_pos = self._tracker['target_pos'] target_sz = self._tracker['target_sz'] self.obstacle.bounding_box = BoundingBox2D( int(target_pos[0] - target_sz[0] / 2.0), int(target_pos[0] + target_sz[0] / 2.0), int(target_pos[1] - target_sz[1] / 2.0), int(target_pos[1] + target_sz[1] / 2.0)) return Obstacle(self.obstacle.bounding_box, self.obstacle.confidence, self.obstacle.label, self.obstacle.id)