Современные СNN (сверточные нейронные сети), DetectNet вращает инвариант?

Как известно NVIDIA DetectNet-CNN (сверточная нейронная сеть) для обнаружения объектов основана на подходе из Yolo / DenseBox: https://devblogs.nvidia.com/parallelforall/deep-learning-object-detection-digits/

DetectNet является расширением популярной сети GoogLeNet. Этот расширения аналогичны подходам, принятым в Йоло и DenseBox документы.

и, как показано здесь, DetectNet может обнаруживать объекты (автомобили) с любыми вращениями: https://devblogs.nvidia.com/parallelforall/detectnet-deep-neural-network-object-detection-digits/

enter image description here

являются ли современные CNN (сверточная нейронная сеть)в качестве инварианта вращения DetectNet?

могу ли я тренировать DetectNet на тысячах разных изображений с одним и тем же углом поворота объекта, чтобы обнаруживать объекты при любом вращении углы?

enter image description here

а как насчет инварианта поворота: Yolo, Yolo v2, DenseBox на основе которого DetectNet?

2 ответов


нет

CNNs не являются инвариантами поворота. Вам нужно включить в свой тренировочный набор изображения с каждым возможным вращением.

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

CNN инвариантен к малым горизонтальным или вертикальным движениям в ваших данных тренировки.


добавляя к ответу Роба, в целом CNN сам инвариант перевода, но не вращение и масштаб. Тем не менее, не обязательно включать все возможные вращения в ваши данные обучения. Максимальный слой объединения будет вводить инвариант вращения.

этот образ опубликовано Franck Dernoncourt здесь может быть то, что вы ищете.

во-вторых, относительно комментария Кершоу к ответу Роба, который говорит:

CNN инвариантен к малым горизонтальным или вертикальным движениям в ваших данных тренировки главным образом из-за максимального объединения.

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

источник: ответ Адитья Кумар Praharaj от этой ссылке.