예제 #1
0
               post_p_thre=args.thre,
               gpu_id=0,
               imageH=960,
               imageW=480)
 img_folder = pathlib.Path(args.input_folder)
 for img_path in tqdm(get_file_list(args.input_folder, p_postfix=['.jpg'])):
     img = cv2.imread(img_path)
     # if img.shape[0] /img.shape[1] > 2 or img.shape[1]/img.shape[0] > 2:
     #     continue
     preds, boxes_list, score_list, t = model.predict(
         img_path, is_output_polygon=args.polygon, runtime='trt')
     print('time cost: {}s'.format(t))
     crops = crop_bbox(img[:, :, ::-1], boxes_list)
     img = draw_bbox(img[:, :, ::-1], boxes_list)
     if args.show:
         show_img(preds)
         show_img(img, title=os.path.basename(img_path))
         plt.show()
     # 保存结果到路径
     os.makedirs(args.output_folder, exist_ok=True)
     img_path = pathlib.Path(img_path)
     output_path = os.path.join(args.output_folder,
                                img_path.stem + '_result.jpg')
     pred_path = os.path.join(args.output_folder,
                              img_path.stem + '_pred.jpg')
     cv2.imwrite(output_path, img[:, :, ::-1])
     cv2.imwrite(pred_path, preds * 255)
     for i, crop in enumerate(crops):
         cv2.imwrite(
             os.path.join(args.output_folder,
                          img_path.stem + '_text_{:02d}.jpg'.format(i)),
예제 #2
0
        tensor = tensor.unsqueeze_(0)

        tensor = tensor.to(self.device)
        with torch.no_grad():
            start = time.time()
            preds = self.net(tensor)[0]
            preds[:2] = torch.sigmoid(preds[:2])
            preds = preds.cpu().numpy()
            t = time.time() - start
        return preds, t


if __name__ == '__main__':
    import matplotlib.pyplot as plt
    from utils.util import show_img

    os.environ['CUDA_VISIBLE_DEVICES'] = str('2')

    model_path = 'output/PAN_resnet18/checkpoint/model_best.pth'

    # model_path = 'output/psenet_icd2015_new_loss/final.pth'
    img_id = 10
    img_path = '/data1/ocr/icdar2015/test/img/img_{}.jpg'.format(img_id)

    # 初始化网络
    show_img(cv2.imread(img_path)[:, :, ::-1], color=True)
    model = Pytorch_model(model_path, gpu_id=0)
    preds, t = model.predict(img_path)
    show_img(preds)
    plt.show()
예제 #3
0
    import matplotlib.pyplot as plt
    from torchvision import transforms

    train_data = ImageDataset(data_list=[
        (r'E:/zj/dataset/icdar2015/train/img/img_15.jpg',
         'E:/zj/dataset/icdar2015/train/gt/gt_img_15.txt')
    ],
                              input_size=640,
                              img_channel=3,
                              shrink_ratio=0.5,
                              transform=transforms.ToTensor())
    train_loader = DataLoader(dataset=train_data,
                              batch_size=1,
                              shuffle=False,
                              num_workers=0)

    pbar = tqdm(total=len(train_loader))
    for i, (img, shrink_label_map,
            threshold_label_map) in enumerate(train_loader):
        print(shrink_label_map.shape, shrink_label_map[0][0].max())
        print(img.shape)
        print(shrink_label_map[0][-1].sum())
        # pbar.update(1)
        show_img((img[0].to(torch.float)).numpy().transpose(1, 2, 0),
                 color=True)
        show_img((shrink_label_map[0].to(torch.float)).numpy(), color=False)
        show_img((threshold_label_map[0].to(torch.float)).numpy(), color=False)
        plt.show()

    pbar.close()
예제 #4
0
                torch.cuda.synchronize(self.device)
            box_list, score_list = self.post_process(batch, preds)
            box_list, score_list = box_list[0], score_list[0]
            if len(box_list) > 0:
                idx = box_list.reshape(box_list.shape[0], -1).sum(axis=1) > 0
                box_list, score_list = box_list[idx], score_list[idx]
            else:
                box_list, score_list = [], []
            t = time.time() - start
        return preds[0, 0, :, :].detach().cpu().numpy(), box_list, t


if __name__ == '__main__':
    import matplotlib.pyplot as plt
    from utils.util import show_img, draw_bbox

    os.environ['CUDA_VISIBLE_DEVICES'] = str('0')

    model_path = '../output/DBNet_resnet18_FPN_DBHead/checkpoint/DBNet_latest.pth'

    img_id = 10
    img_path = 'E:/zj/dataset/icdar2015/test/img/img_{}.jpg'.format(img_id)

    # 初始化网络
    model = Pytorch_model(model_path, gpu_id=0)
    preds, boxes_list, t = model.predict(img_path)
    show_img(preds)
    img = draw_bbox(cv2.imread(img_path)[:, :, ::-1], boxes_list)
    show_img(img)
    plt.show()
예제 #5
0
if __name__ == '__main__':
    import torch
    from utils.util import show_img
    from tqdm import tqdm
    import matplotlib.pyplot as plt
    from torchvision import transforms

    train_data = ImageDataset(
        data_list=[
            (r'/data1/zj/ocr/icdar2015/train/img/img_713.jpg', '/data1/zj/ocr/icdar2015/train/gt/gt_img_713.txt')],
        input_size=640,
        img_channel=3,
        shrink_ratio=0.5,
        transform=transforms.ToTensor()
    )
    train_loader = DataLoader(dataset=train_data, batch_size=1, shuffle=False, num_workers=0)

    pbar = tqdm(total=len(train_loader))
    for i, (img, label, mask) in enumerate(train_loader):
        print(label.shape, label[0][0].max())
        print(img.shape)
        print(label[0][-1].sum())
        print(mask[0].shape)
        # pbar.update(1)
        show_img((img[0] * mask[0].to(torch.float)).numpy().transpose(1, 2, 0), color=True)
        show_img(label[0])
        show_img(mask[0])
        plt.show()

    pbar.close()
예제 #6
0
        with torch.no_grad():
            start = time.time()
            preds = self.net(tensor)[0]
            print('net time:', time.time() - start)
            preds, boxes_list = decode(preds)
            scale = (preds.shape[1] / w, preds.shape[0] / h)
            if len(boxes_list):
                boxes_list = boxes_list / scale
            t = time.time() - start
        return preds, boxes_list, t


if __name__ == '__main__':
    import matplotlib.pyplot as plt
    from utils.util import show_img, draw_bbox

    os.environ['CUDA_VISIBLE_DEVICES'] = str('0')

    model_path = 'output/PAN_pred_mask_resnet50/checkpoint/model_best.pth'

    img_id = 10
    img_path = 'E:/zj/dataset/icdar2015/test/img/img_{}.jpg'.format(img_id)

    # 初始化网络
    model = Pytorch_model(model_path, gpu_id=None)
    preds, boxes_list, t = model.predict(img_path)
    show_img(preds)
    img = draw_bbox(cv2.imread(img_path)[:, :, ::-1], boxes_list)
    show_img(img, color=True)
    plt.show()
    train_data = ImageDataset(
        data_list=[
            (r'/home1/surfzjy/data/ic13/train_images/100.jpg', '/home1/surfzjy/data/ic13/train_gts/100.txt')],
        input_size=640,
        img_channel=3,
        shrink_ratio=0.4,
        transform=transforms.ToTensor()
    )
    train_loader = DataLoader(dataset=train_data, batch_size=1, shuffle=False, num_workers=0)

    pbar = tqdm(total=len(train_loader))
    for i, (img, label, mask, G_d) in enumerate(train_loader):
        print('==========shape=============')
        print(img.shape)
        print(label.shape)
        print(mask.shape)
        print(G_d.shape)
        print('AAAAAAAAAAAAAAAAAAAAAAAAAAAA')
        print(label.shape, label[0][0].max()) # torch.Size([1, 2, 640, 640]) tensor(1.)
        print(img.shape) # torch.Size([1, 3, 640, 640])
        print(label[0][-1].sum())
        print(mask[0].shape)
        # pbar.update(1)
        show_img(label[0])
        # show_img(mask[0] * 255)
        show_img(G_d[0] * 255)
        plt.show() 

    pbar.close()
예제 #8
0
            start = time.time()
            preds = self.net(tensor)[0]
            if str(self.device).__contains__('cuda'):
                torch.cuda.synchronize(self.device)
            preds, boxes_list = decode(preds)
            scale = (preds.shape[1] / w, preds.shape[0] / h)
            if len(boxes_list):
                boxes_list = boxes_list / scale
            t = time.time() - start
        return preds, boxes_list, t


if __name__ == '__main__':
    import matplotlib.pyplot as plt
    from utils.util import show_img, draw_bbox

    os.environ['CUDA_VISIBLE_DEVICES'] = str('0')

    model_path = 'output/PAN_shufflenetv2_FPEM_FFM.pth'

    img_path = "/big_disk/evjeny/data/perimetry_cut_circles/0.jpg"

    # 初始化网络
    model = Pytorch_model(model_path, gpu_id=0)
    preds, boxes_list, t = model.predict(img_path)
    show_img(preds)
    img = draw_bbox(cv2.imread(img_path)[:, :, ::-1], boxes_list)
    # show_img(img, color=True)
    # plt.show()
    cv2.imwrite("result.jpg", img)