Время прочтения: 3 мин.

При разработке нейронных сетей приходится выбирать архитектуру, на которой она будет работать. Здесь часто можно запутаться, и я решил сделать наглядное сравнение двух нейросетей, обученных на одинаковом наборе данных Open Images Dataset V4, но построенных на разных архитектурах: SSD Mobilenet V2 и faster R-CNN. Это поможет сделать приоритетный выбор в зависимости от конкретных задач.

Особенность SSD – использование принципов архитектуры YOLO, то есть «смотреть» на картинку только один раз. Эта модель разбивает картинку на несколько участков, в которых ожидает найти признаки объекта.

Из принципов вытекают плюсы и минусы данной архитектуры. К положительным моментам можно отнести скорость работы, которая выше, чем у аналогичных моделей. Минусом же является низкий процент детектирования объектов. К примеру, на фотографии ниже дорожный знак определен с вероятностью всего 22%. При этом нейросеть не смогла разделить два знака и приняла его за один. Если требуется классифицировать каждый знак отдельно, это может стать серьезной проблемой. Время работы представлено на рисунке ниже и составляет 13 секунд.

Вторая сеть, faster R-CNN, является сверточной, то есть по картинке пробегает ядро (квадрат обычно 3х3 или 5х5 пикселей), которое находит общие признаки и объединяет в один пиксель на следующем, уже уменьшенном изображении.

Таким образом достигается высокая точность, но скорость работы сильно падает. Например, на той же фотографии два знака распознаны отдельно друг от друга, нет ложного детектирования, а точность определения составляет 91% процент. Однако обработка заняла больше времени, чем у предыдущей модели SSD, и составила 65 секунд.

Следует отметить, что столь долгое время работы обусловлено использованием не самого мощного железа. Вычисления производились на ноутбуке без дискретной видеокарты, то есть все процессы обрабатывались на CPU. В ноутбуке установлен процессор AMD Ryzen 5 3500U.

Можно подвести итог, что в слабых устройствах без видеокарты и без необходимости в высокой точности следует использовать архитектуру SSD, в более точных проектах и, в особенности, при наличии мощной видеокарты с ядрами CUDA — преимущества архитектуры CNN очевидны.