Существует общий вопрос по этому вопросу на Классификация и изменение размера изображения
Но настоящий вопрос - , в частности о прогнозировании настраиваемого видения 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.)