0

在图像分类和图像大小调整中有一个关于这个的一般问题

但目前的问题具体是关于使用 Python/Tensorflow 导出模型的 Azure 认知服务自定义视觉预测。

以下https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/export-model-python详细介绍了帮助函数,为本地准备任意形状图像的推荐操作/导出的模型预测是:

    # Update orientation based on EXIF tags, if the file has orientation info.
    image = update_orientation(image)

    # Convert to OpenCV format
    image = convert_to_opencv(image)

    # If the image has either w or h greater than 1600 we resize it down respecting
    # aspect ratio such that the largest dimension is 1600
    image = resize_down_to_1600_max_dim(image)

    # We next get the largest center square
    h, w = image.shape[:2]
    min_dim = min(w,h)
    max_square_image = crop_center(image, min_dim, min_dim)

    # Resize that square down to 256x256(*)
    augmented_image = resize_to_256_square(max_square_image)

[(*) 请注意,对于当前导出的模型,这实际上应该是 224*224 或 227*227.... - 引擎盖下的 YOLO?]

这些步骤是有问题的,尤其是因为它们切掉了图像的中心并从边缘丢弃了(在我的情况下有价值的)信息。(最终的解决方案也很糟糕,但我认为这是不可避免的。)

预测:当图像直接发送到在线自定义视觉预测端点时,它不会 - 根据 API 访问的调整大小图像判断 - 似乎被裁剪。这是如何实现的 - 图像是否只是扭曲到必要的正方形?

训练:“调整大小的图像”是否用于训练?还是所有用于训练的图像都被裁剪了?如果是这样,我应该在上传之前将它们调整为正方形吗?如果没有,这个壮举是如何实现的?

谢谢

(根据 Azure 团队的建议在此处发布。)

4

0 回答 0