Я тренируюсь с компьютерным зрением в целом и, в частности, с API обнаружения объектов TensorFlow, и есть несколько вещей, которые я пока не совсем понимаю.
Я пытаюсь переобучитьМодель SSD для обнаружения одного класса пользовательских объектов (гитар).
Я использую модели ssd_mobilenet_v1_coco и ssd_mobilenet_v2_coco с набором данных 1000K preизображения, загруженные из набора данных OpenImage. Я использовал стандартный файл конфигурации, изменяя только необходимые детали.
Я получаю слегка неудовлетворительные обнаружения небольших объектов, что должно быть нормальным явлением при использовании моделей SSD. Здесь, на stackoverflow, я видел людей, предлагающих обрезать изображение в меньшие кадры, но у меня возникают проблемы с пониманием нескольких вещей:
Согласно файлу .config и документам SSD, изображенияизменяются до фиксированного размера 300x300 пикселей (я предполагаю, что он сохраняется как при обучении модели, так и при использовании ее для вывода). Итак, я предполагаю, что это означает, что оригинальный размер обучающих и тестовых / оценочных изображений не имеет значения, потому что они все равно всегда уменьшаются до 300x300? Тогда я не понимаю, почему многие люди предлагают использовать изображения того же размера, на которых обучались модели ... это имеет значение или нет?
Это не совсем такМне ясно, что в первую очередь означают «маленькие объекты».
Относится ли это к соотношению размеров между объектом и целым изображением? Итак, маленький объект - это тот, который покрывает ... скажем, менее 5% от общего изображения?
или относится к количеству пикселей, образующих объект ?
В первом случае обрезка изображения вокруг объекта будет иметь смысл. Во втором случае это не должно работать, поскольку число полезных пикселей, идентифицирующих объект, остается неизменным.
Спасибо!