Esempio n. 1
0
    def visualize_box(self, images, targets, h, w, det, img_idx, tb_writer):
        det_ = det.cpu().numpy()
        # det_ = det_[det_[:, 4] > 0.5]
        images = images.permute(0, 2, 3, 1)
        images = images.data.cpu().numpy()
        for idx in range(len(images)):
            img = images[idx].copy()
            img = img[:, :, (2, 1, 0)]
            img += np.array((104., 117., 123.), dtype=np.float32)  # TODO cfg

            det__ = det_[det_[:, 5] == idx]
            w_ = w[idx, :].cpu().numpy()
            h_ = h[idx, :].cpu().numpy()
            w_r = 1000  # resize to 1000, h
            h_r = w_r / w_ * h_

            det__[:, 0:4:2] = det__[:, 0:4:2] / w_ * w_r
            det__[:, 1:4:2] = det__[:, 1:4:2] / h_ * h_r

            t = targets[idx].numpy()  # ground truth
            t[:, 0:4:2] = t[:, 0:4:2] * w_r
            t[:, 1:4:2] = t[:, 1:4:2] * h_r
            t[:, 4] += 1  # TODO because of the traget transformer

            boxes = {'gt': t, 'pred': det__}
            tb_writer.cfg['steps'] = img_idx + idx
            if self.name == 'MS COCO':
                tb_writer.cfg['img_id'] = int(
                    det__[0, 7]) if det__.size != 0 else 'no_detect'
            if self.name == 'VOC0712':
                tb_writer.cfg['img_id'] = int(
                    det__[0, 5]) if det__.size != 0 else 'no_detect'
            tb_writer.cfg['thresh'] = 0.5
            visualize_utils.vis_img_box(img, boxes, (h_r, w_r), tb_writer)
Esempio n. 2
0
 def __call__(self, img, boxes=None, labels=None, tb_writer=None):
     if tb_writer is not None:
         tb_writer.cfg['aug_name'] = '0_input'
         vis_img_box(img, boxes, None, tb_writer)
     for i, t in enumerate(self.transforms):
         img, boxes, labels = t(img, boxes, labels)
         if tb_writer is not None and i + 1 in tb_writer.cfg['vis_list']:
             tb_writer.cfg['aug_name'] = '{}_{}'.format(
                 i + 1,
                 type(t).__name__)
             vis_img_box(img, boxes, None, tb_writer)
     return img, boxes, labels
 def __call__(self, img, boxes=None, labels=None, tb_writer=None):
     if tb_writer is not None:
         tb_writer.cfg['aug_name'] = '0_input'
         target = np.hstack((boxes, np.expand_dims(labels + 1, axis=1)))
         vis_img_box(img, target, None, tb_writer)
     for i, t in enumerate(self.transforms):
         img, boxes, labels = t(img, boxes, labels)
         if boxes is None: continue
         target = np.hstack((boxes, np.expand_dims(labels + 1, axis=1)))
         if tb_writer is not None and i + 1 in tb_writer.cfg['aug_vis_list']:
             tb_writer.cfg['aug_name'] = '{}_{}'.format(
                 i + 1,
                 type(t).__name__)
             vis_img_box(img, target, None, tb_writer)
     return img, boxes, labels
    def visualize_box(self, images, targets, h, w, det, img_idx, tb_writer):
        det_ = det.cpu().numpy()
        # det_ = det_[det_[:, 4] > 0.5]
        images = images.permute(0, 2, 3, 1)  #N H W C
        images = images.data.cpu().numpy()
        #print(det_.shape, 'ssss')
        for idx in range(len(images)):
            img = images[idx].copy()
            img += np.array((104., 117., 123.), dtype=np.float32)

            w_r = 300  # resize to 1000, h
            h_r = 300
            boxes = None
            det__ = np.array([])
            if det_.size != 0:
                det__ = det_[det_[:, 5] == idx]
                w_ = w[idx, :].cpu().numpy()
                h_ = h[idx, :].cpu().numpy()
                # w_r = 1000  # resize to 1000, h
                # h_r = w_r / w_ * h_
                det__[:, 0:4:2] = det__[:, 0:4:2] / w_ * w_r
                det__[:, 1:4:2] = det__[:, 1:4:2] / h_ * h_r

                if tb_writer.cfg['phase'] == 'train':
                    w_ = 1.
                    h_ = 1.
                t = targets[idx].clone().numpy()  # ground truth
                t[:, 0:4:2] = t[:, 0:4:2] / w_ * w_r
                t[:, 1:4:2] = t[:, 1:4:2] / h_ * h_r
                t[:, 4] += 1  # TODO because of the traget transformer  #label

                boxes = {'gt': t, 'pred': det__}  #Shape (*, 5) (*, 7)
            tb_writer.cfg['steps'] = img_idx + idx
            if self.name == 'MS COCO':
                tb_writer.cfg['img_id'] = int(
                    det__[0, 7]) if det__.size != 0 else 'no_detect'
            if self.name == 'VOC0712' or 'TEMP_LP':
                tb_writer.cfg['img_id'] = int(
                    det__[0, 5]) if det__.size != 0 else 'no_detect'
            tb_writer.cfg['thresh'] = 0.3
            visualize_utils.vis_img_box(img, boxes, (h_r, w_r),
                                        tb_writer)  #(h_r, w_r)