Каковы наиболее важные шаги в построении нейронных сетей для обнаружения объектов? (НЕ КЛАССИФИКАЦИЯ)

Я работаю с машинным обучением уже несколько месяцев. Я использовал кафе и даркнет и теперь начну с теано. В машинном обучении есть две основные задачи: 1. Обнаружение и 2. Классификация. Хотя я понимаю, как создается или проектируется большинство классификационных сетей, я не могу получить четкого представления об основных шагах, связанных с построением нейронной сети для обнаружения изображений. В классификации мы используем соответствующие слои max pooling, relu и conv, чтобы получить лучшие результаты и точно настроить сеть. Какие важные вещи необходимо учитывать при создании нейронной сети для обнаружения объектов?




Ответы (1)


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

X (вход) - просто изображение размером, скажем, 256x256 пикселей, оттенки серого Y (выход) - пара чисел, которые показывают координаты X,Y положения кончика носа на этом изображении.

Затем вы построили DNN для решения задачи регрессии по этой проблеме. Для этой NN применяются те же принципы, что и для классификации. Вы можете использовать слои с максимальным пулом, слои свертки, ReLU, что хотите. Вам просто нужно иметь в виду, что ваш выходной слой должен быть способен выводить числа, которые находятся в требуемом диапазоне, и все.

Хороший учебник по решению этой задачи с помощью ANN: здесь

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

person Maksim Khaitovich    schedule 05.07.2016