Как предсказать различные данные через нейронную сеть, которая обучается на данных размером 36x60? - PullRequest
5 голосов
/ 17 мая 2019

Я тренировал нейронную сеть с изображениями глаз, которые имеют форму 36x60. Таким образом, я могу только предсказать результат, используя изображение 36x60? Но в моем приложении у меня есть видеопоток, этот поток делится на кадры, для каждого кадра прогнозируется 68 точек ориентиров. В диапазоне глаз я могу выбрать точку глаза, и с помощью функции 'boundingrect' из OpenCV очень легко получить обрезанное изображение. Но это изображение не имеет формы 36х60. Как правильно получить данные 36x60, которые можно использовать для прогнозирования? Или как использовать нейронную сеть для данных другой формы?

1 Ответ

2 голосов
/ 17 мая 2019

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

Есть предостережения, конечно. Входные данные для прогнозирования должны быть максимально похожи на набор данных, на котором они были обучены, насколько это возможно, то есть модель должна применяться к данным, для которых она была разработана. Например, рассмотрим сеть обнаружения объектов, созданную для спутниковых приложений. Если эта же сеть затем применяется к изображениям дронов, относительный размер объектов может быть значительно больше, чем объектов, для которых была разработана сеть (в частности, ее размеры якорных ящиков).

Tl; dr: Предполагая, что вы используете правильную сеть для работы, не бойтесь масштабировать ваши изображения / кадры, чтобы соответствовать входам сети.

...