Exemple #1
0
    def visualize(self, image, state, segmentation=None):
        self.ax.cla()
        self.ax.imshow(image)
        if segmentation is not None:
            self.ax.imshow(segmentation, alpha=0.5)

        if isinstance(state, (OrderedDict, dict)):
            boxes = [v for k, v in state.items()]
        else:
            boxes = (state,)

        for i, box in enumerate(boxes, start=1):
            col = _tracker_disp_colors[i]
            col = [float(c) / 255.0 for c in col]
            rect = patches.Rectangle((box[0], box[1]), box[2], box[3], linewidth=1, edgecolor=col, facecolor='none')
            self.ax.add_patch(rect)

        if getattr(self, 'gt_state', None) is not None:
            gt_state = self.gt_state
            rect = patches.Rectangle((gt_state[0], gt_state[1]), gt_state[2], gt_state[3], linewidth=1, edgecolor='g', facecolor='none')
            self.ax.add_patch(rect)
        self.ax.set_axis_off()
        self.ax.axis('equal')
        draw_figure(self.fig)

        if self.pause_mode:
            keypress = False
            while not keypress:
                keypress = plt.waitforbuttonpress()
Exemple #2
0
    def show_image(self, im, plot_name=None, ax=None):
        if isinstance(im, torch.Tensor):
            im = torch_to_numpy(im)
        # plot_id = sum([ord(x) for x in list(plot_name)])

        if ax is None:
            plot_fig_name = 'debug_fig_' + plot_name
            plot_ax_name = 'debug_ax_' + plot_name
            if not hasattr(self, plot_fig_name):
                fig, ax = plt.subplots(1)
                setattr(self, plot_fig_name, fig)
                setattr(self, plot_ax_name, ax)
                plt.tight_layout()
                ax.set_title(plot_name)
            else:
                fig = getattr(self, plot_fig_name, None)
                ax = getattr(self, plot_ax_name, None)

        ax.cla()
        ax.imshow(im)

        ax.set_axis_off()
        ax.axis('equal')
        ax.set_title(plot_name)
        draw_figure(fig)
Exemple #3
0
    def visualize(self, image, state):
        self.ax.cla()
        self.ax.imshow(image)
        rect = patches.Rectangle((state[0], state[1]),
                                 state[2],
                                 state[3],
                                 linewidth=1,
                                 edgecolor='r',
                                 facecolor='none')
        self.ax.add_patch(rect)

        if hasattr(self, 'gt_state') and False:
            gt_state = self.gt_state
            rect = patches.Rectangle((gt_state[0], gt_state[1]),
                                     gt_state[2],
                                     gt_state[3],
                                     linewidth=1,
                                     edgecolor='g',
                                     facecolor='none')
            self.ax.add_patch(rect)
        self.ax.set_axis_off()
        self.ax.axis('equal')
        draw_figure(self.fig)

        if self.pause_mode:
            keypress = False
            while not keypress:
                keypress = plt.waitforbuttonpress()
Exemple #4
0
    def show(self, image, bb_list, trackers, gt=None):
        self.ax.cla()
        self.ax.imshow(image)

        # Draw rects
        rect_handles = []
        for i, bb in enumerate(bb_list):
            rect = patches.Rectangle(
                (bb[0], bb[1]),
                bb[2],
                bb[3],
                linewidth=1,
                edgecolor=self.plot_draw_styles[i]['color'],
                facecolor='none')
            self.ax.add_patch(rect)

            rect_handles.append(
                patches.Rectangle((bb[0], bb[1]),
                                  bb[2],
                                  bb[3],
                                  linewidth=1,
                                  edgecolor=self.plot_draw_styles[i]['color'],
                                  facecolor=self.plot_draw_styles[i]['color'],
                                  label=trackers[i]))

        if gt is not None:
            rect = patches.Rectangle((gt[0], gt[1]),
                                     gt[2],
                                     gt[3],
                                     linewidth=2,
                                     edgecolor='g',
                                     facecolor='none')
            self.ax.add_patch(rect)
            rect_handles.append(rect)

        self.ax.set_axis_off()
        self.ax.axis('equal')
        plt.legend(handles=rect_handles, loc=4, borderaxespad=0.)
        mode = 'manual' if self.pause_mode else 'auto     '
        speed = self._get_speed()
        self.fig.suptitle('Sequence: {}    Mode: {}    Speed: {:d}x'.format(
            self.sequence_name, mode, speed),
                          fontsize=14)
        draw_figure(self.fig)
Exemple #5
0
    def visualize(self, image, state, *var):
        self.ax.cla()
        self.ax.imshow(image)

        if (state[2] != 0 and state[3] != 0):
            self.ax.text(10,
                         30,
                         'FOUND',
                         fontsize=14,
                         bbox=dict(facecolor='green', alpha=0.2))
        else:
            self.ax.text(10,
                         30,
                         'NOT FOUND',
                         fontsize=14,
                         bbox=dict(facecolor='red', alpha=0.2))
            pass
        if len(var) == 0:
            rect = patches.Rectangle((state[0], state[1]),
                                     state[2],
                                     state[3],
                                     linewidth=1,
                                     edgecolor='r',
                                     facecolor='none')
            self.ax.add_patch(rect)

        if len(var) > 0:  #state_rgb, state_depth, provided
            state_rgb = var[0]
            state_depth = var[1]
            #draw one dot for the center of state_rgb

            # self.ax.plot(state_rgb[0]+state_rgb[2]/2, state_rgb[1]+state_rgb[3]/2,'ro')
            # self.ax.plot(state_depth[0]+state_depth[2]/2, state_depth[1]+state_depth[3]/2, 'bo')
            # self.ax.plot(state[0]+state[2]/2, state[1]+state[3]/2,'wo')

            #another dot for the center of state_depth
            # rect_rgb= patches.Rectangle((state_rgb[0], state_rgb[1]), state_rgb[2], state_rgb[3], linewidth=2, edgecolor='r', facecolor='none')
            # self.ax.add_patch(rect_rgb)
            rect_depth = patches.Rectangle((state_depth[0], state_depth[1]),
                                           state_depth[2],
                                           state_depth[3],
                                           linewidth=2,
                                           edgecolor='b',
                                           facecolor='none')
            self.ax.add_patch(rect_depth)
            rect = patches.Rectangle((state[0], state[1]),
                                     state[2],
                                     state[3],
                                     linewidth=1,
                                     edgecolor='w',
                                     facecolor='none')
            self.ax.add_patch(rect)
        #print(['var', var])
        #['var', (tensor([263.5000, 266.5000]), tensor([263.5000, 266.5000]), tensor([263.6045, 271.1568]))]

        if hasattr(self, 'gt_state') and True:
            gt_state = self.gt_state
            self.ax.plot(gt_state[0] + gt_state[2] / 2,
                         gt_state[1] + gt_state[3] / 2, 'go')
            rect = patches.Rectangle((gt_state[0], gt_state[1]),
                                     gt_state[2],
                                     gt_state[3],
                                     linewidth=2,
                                     edgecolor='g',
                                     facecolor='none')
            self.ax.add_patch(rect)

        self.ax.set_axis_off()
        self.ax.axis('equal')
        draw_figure(self.fig)

        if hasattr(self, 'ind_frame'):
            if os.path.exists('./tracking_results/imgs'):
                self.fig.savefig('./tracking_results/imgs/img_%d.png' %
                                 self.ind_frame)

        if self.pause_mode:
            keypress = False
            while not keypress:
                keypress = plt.waitforbuttonpress()