Прогноз классификации изображений Azure Custom Vision - (как) размер изображения изменяется на квадрат? - PullRequest
0 голосов
/ 27 июня 2019

Существует общий вопрос по этому вопросу на Классификация и изменение размера изображения

Но настоящий вопрос - , в частности о прогнозировании настраиваемого видения Azure Cognitive Services с использованием экспортированной модели Python / Tensorflow.

После 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 под капотом?]

Эти шаги проблематичны не в последнюю очередь потому, что они вырезают центр изображения и отбрасывают (в моем случае ценную) информацию с краев. (Возможное решение также ужасно, но я предполагаю, что это неизбежно.)

Предсказание. Когда изображение отправляется непосредственно в конечную точку прогнозирования Custom Vision в режиме онлайн, оно, судя по измененному изображению, доступному через API, не обрезается. Как это достигается - искажается ли изображение до нужного квадрата?

Тренировка. Используется ли для обучения «измененный размер» или нет? Или все изображения, используемые для обучения, также были обрезаны? Если это так, я должен изменить их размер на квадрат перед загрузкой? Если нет, то как достигается этот подвиг?

Спасибо

(Публикация здесь в соответствии с рекомендациями группы Azure.)

...