Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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)