2

Я читал, что CNN (с обоими свертками и максимумом пула) имеют сдвиг-инвариантность, но большинство методов обнаружения объектов использовали детектор скользящего окна с не максимальным подавлением. Нужно ли использовать скользящие окна с CNN при обнаружении объектов?Зачем использовать скользящие окна со сверточными нейронными сетями при обнаружении объектов?

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

ответ

3

внутренне, CNN is делает скользящее окно. Свертка в терминах 2d-изображения представляет собой не что иное, как линейный фильтр, применяемый в скользящем окне. Это просто приятное математическое выражение той же самой операции, которая помогает нам делать аккуратную оптимизацию. С другой стороны, максимальный пул помогает нам быть надежными с точки зрения небольших сдвигов/шумов. Таким образом, эффективное подача изображения в сеть использует (много!) Скользящих окон на нем. Можем ли мы передавать большие изображения вместо маленьких? Конечно, но вы получите чрезвычайно большие тензоры (просто вычислите, сколько цифр вам нужно, это огромно), и вы получите очень сложную проблему оптимизации. В настоящее время мы оптимизируем многомерное пространство. Работа с целыми изображениями может привести к увеличению количества измерений (или даже большего). Сложность оптимизации возрастает экспоненциально с ростом размерности, таким образом, вы окажетесь в чрезвычайно медленном методе (не в терминах самого вычисления, а в конвергенции).

Смежные вопросы