【问题标题】:Create multiple images with different ratio PyTorch创建多个不同比例的图像 PyTorch
【发布时间】:2019-06-14 20:49:32
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

    标签: python pytorch object-detection


    【解决方案1】:

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

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

    我正在对您的训练数据中的数字进行成像,其大小类似于 32x32,并且您希望使用多尺度评估来确保您的测试图像上的数字也与您的训练数据中的数字具有相似的大小。至于物体检测网络,你的网络的输入大小是不固定的。

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

    一个好的起点是HERE

    【讨论】:

    • 谢谢,我去看看!! :D 澄清一下,我的网络是在 32x32 大小的图像上训练的。然后我用大小为 300x300 的图像喂食,滑动窗口操作在那里执行。
    • @Jules 感谢您的澄清,那么它是分类模型而不是检测模型。以上提示可能不起作用。同样,关键的见解是您的测试图像越接近您的训练图像,您将获得更好的测试结果。如果将 300x300 图像的大小调整为 32x32 不起作用,那么您可能需要调整训练数据,因为您的所有测试图像都有一个数字占据整个图像,您的训练数据也应该是这样的。
    猜你喜欢
    • 2015-04-05
    • 1970-01-01
    • 2017-02-01
    • 2013-04-03
    • 2011-06-28
    • 1970-01-01
    • 2021-08-01
    • 2014-06-19
    • 1970-01-01
    相关资源
    最近更新 更多