【问题标题】:Image classification in PytorchPytorch 中的图像分类
【发布时间】:2020-07-20 21:29:18
【问题描述】:

我正在 Pytorch 中开发 facenet-pytorch 库,我想知道

  1. 数据增强应该在训练数据集还是测试数据集中?

  2. 我应该在测试数据集中至少放多少张图片(我在测试数据集中使用了 2% 的图片)

  3. 我有 21 个班级(21 个人脸)和(vggface2 数据集)和评估模式,它足以训练和测试数据集吗?

  4. 如何可视化测试数据集中的图像以显示人脸是否匹配 我试过了,但它会出现这个错误:

TypeError:图像数据的形状无效(3、160、160)

图像的形状为:(10, 3, 160, 160)

dataiter = iter(test_loader)
images, labels = dataiter.next()
# get predictions
preds = np.squeeze(net(images).data.max(1, keepdim=True)[1].numpy())
images = images.numpy()

# plot the images in the batch, along with predicted and true labels
fig = plt.figure(figsize=(25, 4))
for idx in np.arange(batch_size):
    ax = fig.add_subplot(2, batch_size/2, idx+1, xticks=[], yticks=[])
    ax.imshow(np.squeeze(images[idx]), cmap='gray')
    ax.set_title("{} ({})".format(classes[preds[idx]], classes[labels[idx]]),
             color=("green" if preds[idx]==labels[idx] else "red"))
  1. 检测到人脸后如何从网络摄像头获取输入人脸(预测功能)?
cap = cv.VideoCapture(0)
while True:
    ret, frame = cap.read()
    frame = cv.resize(frame, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
    image = predict_draw_bounding_box(frame)
    cv.imshow('Output', image)
    c = cv.waitKey(1)
    if c == 27:
        break
cap.release()
cv.destroyAllWindows()

但是不知道实现predict_draw_bounding_box函数?

感谢您的建议

【问题讨论】:

    标签: python neural-network pytorch face-recognition


    【解决方案1】:

    这是很多问题;您可能应该将它们分成多个问题。无论如何,我会尝试回答一些。

    1. 数据增强通常应该在训练数据集上完成 只要。典型的增强包括随机旋转、调整大小的作物、 水平翻转、切口等。所有这些都只在火车上进行。

      除此之外,我脑子里只有频道 标准化是您通常应用于两者的唯一增强 训练和测试集。你计算x-x_mean/sigma channelwise 用于数据集中的所有图像。

    2. 测试数据集中的图像百分比完全是凭经验得出的,取决于您实际拥有的图像数量。对于具有一百万张以上图像的非常大的数据集,像 2% 这样的小百分比是可以的。但是,如果您的图像数量在数万、数千甚至更少,最好将 20% 左右作为测试集。

    3. 无法理解您的问题。

    4. 您的图像的形状为 (3, 160, 160)。这是 pytorch 的 nn.Module 系统使用的通道优先语法,但在 matplotlib 中绘制 RGB 图像需要它在最后一维中具有通道,即 (160,160,3)。如果images是一批形状为(10,3,160,160)的图片,那么做:

      ...
      images = images.numpy()
      images = images.swapaxes(1,2).swapaxes(2,3)
      ...
      

      这会将其重塑为 (10,160,160,3),而不会损害轴顺序。

    5. 没有线索。

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多