以不同的比例创建多个图像

2024-03-29 09:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用PyTorch做一些数字识别。我已经实现了一个卷积版本的滑动窗口大小32x32。这使我能够在图片中识别出这个大小范围的数字。你知道吗

但现在让我们想象一下,我有一个尺寸为300x300的图像,其中一个数字占据了整个图像。我永远也认不出来。。。你知道吗

我看到有人说图像需要重新缩放。这意味着我需要创建我的初始图像的各种缩放版本,然后将这些“新”图像提供给我的网络。你知道吗

有人知道我怎么做吗?你知道吗

这是我代码的一部分,如果可以的话。。你知道吗

# loading dataset
size=200
height=200
width= 300

transformer_svhn_test = transforms.Compose([
    transforms.Grayscale(3),
    transforms.Resize((height, width)),
    transforms.CenterCrop((size, size)),
    transforms.ToTensor(),
    transforms.Normalize([.5,.5,.5], [.5,.5,.5])
])

SVHN_test = SVHN_(train=False, transform=transformer_svhn_test)
SVHN_test_loader = DataLoader(SVHN_test, batch_size=batch_size, shuffle=False, num_workers=3)

#loading network
model = Network()
model.to(device)
model.load_state_dict(torch.load("digit_classifier_gray_scale_weighted.pth"))

# loading one image and feeding the model with it
image = next(iter(SVHN_test_loader))[0]
image_tensor = image.unsqueeze(0) # creating a single-image batch
image_tensor = image_tensor.to(device)

model.eval()
output = model(image_tensor)

Tags: test图像image版本sizemodelbatch数字
1条回答
网友
1楼 · 发布于 2024-03-29 09:21:48

如果我理解错了你的问题,请纠正我:

您的网络以300x300大小的图像作为输入,在您的模型内进行32x32滑动窗口操作,并输出输入图像中任何数字的位置?在此设置中,您将此问题设为对象检测任务。你知道吗

我正在对训练数据中的数字进行成像,这些数字的大小与32x32相似,您希望使用多尺度评估来确保测试图像中的数字也与训练数据中的数字具有相似的大小。至于目标检测网络,网络的输入大小不是固定的。你知道吗

所以你需要的东西实际上叫做多尺度评估/测试,你会发现它在计算机视觉任务中非常常见。你知道吗

一个好的起点是HERE

相关问题 更多 >