ЙОЛО!!! Так мы живем только один раз? Я точно не знаю. Что я знаю, так это то, что нам нужно ПОСМОТРЕТЬ только один раз. Чего ждать?
Это верно. Если вы хотите обнаруживать и локализовать объекты на изображении, нет необходимости проходить весь процесс предложения областей интереса, классифицировать их и исправлять их ограничивающие рамки. Если вы помните из моей предыдущей статьи, это именно то, что делают такие модели, как RCNN и Faster RCNN.
Нужны ли нам на самом деле все эти сложности и вычисления? Что ж, если нам нужна первоклассная точность, мы, безусловно, этого добиваемся. К счастью, есть еще один более простой способ выполнить такую задачу, обработав изображение только один раз и немедленно выведя прогноз. Эти типы моделей называются однократными детекторами.
https://github.com/karolmajek/darknet-pjreddie
Детекторы одиночного выстрела
Вместо специальной системы для предложения областей интересов у нас есть набор предопределенных полей для поиска объектов, которые перенаправляются в набор сверточных слоев для прогнозирования оценок классов и смещений ограничивающих рамок. Затем для каждого прямоугольника мы прогнозируем количество ограничивающих прямоугольников с присвоенной каждому из них оценкой достоверности, мы обнаруживаем один объект в центре этого прямоугольника и выводим набор вероятностей для каждого возможного класса.. Когда у нас есть все это, мы просто и, возможно, наивно оставляем только коробку с высоким показателем достоверности. И это работает. На самом деле с очень впечатляющими результатами. Чтобы еще лучше проработать общий поток, давайте воспользуемся одним из самых популярных однократных детекторов под названием YOLO.
Вы смотрите только один раз (YOLO)
На данный момент существует 3 версии модели, каждая новая улучшает предыдущую с точки зрения как скорости, так и точности. Количество предопределенных ячеек и количество предполагаемых ограничивающих рамок для каждой ячейки определяется на основе размера входных данных и классов. В нашем случае мы собираемся использовать фактические числа, используемые для оценки ПАСКАЛЬ ЛОС
набор данных.
Сначала мы делим изображение на сетку 13×13, в результате чего всего получается 169 ячеек.
Для каждой из ячеек он предсказывает 5 ограничивающих рамок (x, y, w, h) с показателем достоверности, он обнаруживает один объект независимо от количества рамок и 20 вероятностей для 20 классов.
Всего у нас 169*5=845 ограничивающих рамок, а форма выходного тензора моды будет (13,13,5*5+20)= (13,13,45). Вся суть моделей YOLO заключается в построении этого (13,13,45) тензора. Для этого он использует сеть CNN и 2 полностью связанных слоя для выполнения фактической регрессии.
Окончательный прогноз извлекается после сохранения только ограничивающих рамок с высокой оценкой достоверности (выше порогового значения, такого как 0,3).
https://pjreddie.com/darknet/yolo/
Поскольку модель может выводить повторяющиеся обнаружения для одного и того же объекта, мы используем метод, называемый Немаксимальное подавление для удаления дубликатов. В простой реализации мы сортируем прогнозы по показателю достоверности, и по мере их повторения мы сохраняем только первые появления каждого класса.
Что касается реальной модели, то архитектура довольно тривиальна, так как состоит только из сверточных слоев и слоев пула, без каких-либо замысловатых ухищрений. Мы обучаем модель, используя функцию множественных потерь, которая включает в себя потерю классификации, потерю локализации и потерю достоверности.
Обнаружение объектов с помощью глубокого обучения: обзор
В самых последних версиях YOLO были представлены некоторые специальные приемы для повышения точности и сокращения времени обучения и вывода. Некоторыми примерами являются нормализация партии, поля привязки, кластеры измерений и другие. Если вы хотите получить более подробную информацию, вам обязательно следует проверить оригинал
документы.
Кроме того, чтобы погрузиться в код и попробовать модели YOLO на практике, загляните в эти два замечательных репозитория на Github (репо1
и репо2).
Сила YOLO не в его впечатляющей точности или очень умных идеях, а в его превосходной скорости, которая делает его идеальным для встраиваемых систем и приложений с низким энергопотреблением. Вот почему беспилотные автомобили и камеры наблюдения являются его наиболее распространенными вариантами использования в реальном мире.
Поскольку глубокое обучение продолжает играть вместе с компьютерным зрением (а так и будет), мы можем ожидать, что многие другие модели будут адаптированы для систем с низким энергопотреблением, даже если они иногда жертвуют точностью. И не забывайте про Интернет вещей. Вот где эти модели действительно блестят.
* Раскрытие информации: Обратите внимание, что некоторые из приведенных выше ссылок могут быть партнерскими ссылками, и без дополнительной оплаты для вас мы будем получать комиссию, если вы решите совершить покупку после перехода по ссылке.