Я переобучил модель обнаружения объекта ssd_inception_v2_cooco
, чтобы обнаружить пользовательский объект, и он отлично работает на тестовых примерах того же размера , что и обучающий набор.
Но когда я либо изменяю размертестовое изображение или переместить объект, который я хочу обнаружить вокруг на изображении (в другое место, чем оно было в тренировочном наборе) - обнаружение не удалось.
В моем учебном наборе я использовал изображения с целевым объектом большеили меньше в той же позиции на каждом изображении (верхняя правая часть).
Я подумал, что, возможно, мне следует добавить больше элементов в тренировочный набор со случайными позициями целевого объекта, но затем я перевернул изображение по горизонтали (целевой объект находился в левом верхнем углу вместо верхнего правого и также был отразил ), используя mspaint, и обнаружение прошло успешно.
Вот где я запутался, и мне бы очень хотелось, если бы кто-нибудь мог сказать мне, что я делаю неправильно, или дать мне несколько советов, чтобы преодолеть это.
Большое спасибо!
РЕДАКТИРОВАТЬ:
просто для облегчения понимания, это иллюстрация, а не фактический целевой объект / фон и т. Д...
Этот пример получает 99% баллов, вы можете думать о нем как о картине из тренировочного набора:
99.jpg
theто же изображение, зеркальное отображение также получает 99%:
99_mirrored.jpg
это где объект немного опущен вниз с помощью mspaint, получает около 94% :
94.jpg
это то же изображение, что и первое (99%) изображение, только что обрезанное снизу вверх.здесь объект НЕ обнаружен вообще:
0.jpg
РЕДАКТИРОВАТЬ 2:
Как отметил Марк в комментариях, более подробная информация:
Код и среда: я следовал этому руководству здесь, https://tensorflow -object-detection-api-tutorial.readthedocs.io / en / latest /training.html ничего не изменило в коде.
Что касается тренировочных наборов, то подавляющее большинство изображений имеют размер 720x480, и в большинстве случаев целевой объект помещается в верхнем правом углу каждого изображения.