Exemple #1
0
    # model_path = 'output/psenet_icd2015_new_loss/final.pth'
    image_root = 'Test Set/Image'
    annotation_root = 'Test Set/Annotation'

    Images = os.listdir(image_root)
    Labels = os.listdir(annotation_root)
    image_id = Images[np.random.randint(1, len(Images) + 1)].split('.jpg')[0]

    img_path = image_root + os.sep + '{}.jpg'.format(image_id)
    label_path = annotation_root + os.sep + '{}.txt'.format(image_id)

    print('Predicting for image', img_path)

    label = _get_annotation(label_path)

    # 初始化网络
    net = PSENet(backbone='resnet18', pretrained=False, result_num=config.n)
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    model = Pytorch_model(model_path, net=net, scale=1, device=device)
    # for i in range(100):
    #     models.predict(img_path)
    preds, boxes_list, t = model.predict(img_path)
    print(boxes_list)
    show_img(preds)
    img = draw_bbox(img_path, boxes_list, color=(0, 0, 255))
    cv2.imwrite('result.jpg', img)
    # img = draw_bbox(img, label,color=(0,0,255))
    show_img(img, color=True)

    plt.show()
Exemple #2
0
if __name__ == '__main__':
    import pathlib
    from tqdm import tqdm
    import matplotlib.pyplot as plt
    from utils.utils import show_img, draw_bbox, save_result, get_file_list

    args = init_args()
    print(args)
    # 初始化网络
    model = DetModel(args.model_path, post_p_thre=args.thre, gpu_id=0)
    img_folder = pathlib.Path(args.input_folder)
    for img_path in tqdm(get_file_list(args.input_folder, p_postfix=['.jpg'])):
        preds, boxes_list, score_list, t = model.predict(
            img_path, is_output_polygon=args.polygon)
        img = draw_bbox(cv2.imread(img_path)[:, :, ::-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)
        save_result(output_path.replace('_result.jpg', '.txt'), boxes_list,
                    score_list, args.polygon)
Exemple #3
0
    from utils.utils import show_img
    from tqdm import tqdm
    from torch.utils.data import DataLoader
    import matplotlib.pyplot as plt
    from torchvision import transforms

    train_data = MyDataset(config.trainroot,
                           data_shape=config.data_shape,
                           n=config.n,
                           m=config.m,
                           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)
        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()
Exemple #4
0
if __name__ == '__main__':
    import config
    from model import CTPN_Model
    import matplotlib.pyplot as plt
    from utils.utils import show_img, draw_bbox, draw_anchor

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

    model_path = 'output/PSENet_298_loss0.001575.pth'

    img_id = 1
    img_path = 'D:/zj/dataset/ICD15/train/imgs/img_{}.jpg'.format(img_id)
    # img_path = '0.jpg'
    label_path = 'D:/zj/dataset/ICD15/train/gt/gt_img_{}.txt'.format(img_id)
    label = _get_annotation(label_path)

    # img_path = '/data1/gcz/拍照清单数据集_备份/87436979.jpg'
    # 初始化网络
    net = CTPN_Model(pretrained=False)
    model = Pytorch_model(model_path, net=net, gpu_id=None)
    # for i in range(100):
    #     model.predict(img_path)
    boxes_list, t = model.predict(img_path)
    print(boxes_list)
    img = draw_bbox(img_path, boxes_list, color=(0, 0, 255))
    cv2.imwrite('result.jpg', img)
    # img = draw_bbox(img, label,color=(0,0,255))
    show_img(img[:, :, ::-1], color=True)

    plt.show()
Exemple #5
0
        img = draw_bbox(img_path, label)
        cv2.imwrite(save_path, img)
        return img


if __name__ == '__main__':
    import torch
    import utils.config_synthtext as config
    from utils.utils import show_img
    from tqdm import tqdm
    from torch.utils.data import DataLoader
    import matplotlib.pyplot as plt
    from torchvision import transforms

    train_data = Synthtext(config.trainroot, data_shape=config.data_shape, n=config.n, m=config.m)
    train_loader = DataLoader(dataset=train_data, batch_size=2, shuffle=False, num_workers=0)

    pbar = tqdm(total=len(train_loader))
    for i, (img, label, mask) in enumerate(train_loader):
        print(label.shape)
        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)*[0.229, 0.224, 0.225]+[0.485, 0.456, 0.406], color=True)
        show_img(label[0])
        show_img(mask[0])
        plt.show()
        break
    pbar.close()
                                is_transform=True,
                                img_size=config.data_shape,
                                kernel_num=config.kernel_num,
                                min_scale=config.min_scale)
    for i in range(len(train_data)):
        img, kernel, mask = train_data[9]
        # for i, (img, label, mask) in enumerate(train_data):

        print(i)
        print(kernel.shape)
        print(img.shape)
        print(kernel[0][-1].sum())
        print(mask[0].sum())

        show_img(((img.to(torch.float)).numpy().transpose(1, 2, 0) *
                  [0.229, 0.224, 0.225] + [0.485, 0.456, 0.406]),
                 color=True)
        show_img(kernel)
        show_img(mask)
        plt.show()
        break

    # for i in trange(len(train_data)):
    #     img, kernel, mask = train_data[i]
    #     img = img.permute(1,2,0)
    #     img = img-img.min()
    #     img = img/img.max()*255
    #     img = img.data.cpu().numpy()
    #     img = img.astype('uint8')
    #     i=0
    #     cv2.imwrite('trash/img{}.png'.format(i), img)