Вы только посмотрите один раз – быстрое обнаружение объектов


Нейронные сети сделали возможным компьютерное зрение, но есть еще много сложных ситуаций, в которых они не работают так хорошо. Если вы хотите выполнять обнаружение и маркировку объектов, традиционный подход, вероятно, будет слишком медленным, но теперь у нас есть YOLO V2, который может маркировать целые изображения за одну операцию.

YOLO, и да, они много разыгрывают путаницу с фильмом Бонда «Живи только один раз», как вы обнаружите, если посмотрите почти любую из презентаций исследователей, это своего рода прорыв. Я говорю «вроде как», потому что это еще одна демонстрация почти универсального факта, что все, что вам действительно нужно, – это большая нейронная сеть и много данных. Это не умаляет достижения, так как есть много деталей, которые нужно уточнить, чтобы заставить что-то вроде YOLO работать хорошо, но это не должно скрывать тот факт, что он применяет некоторые очень простые общие идеи.
Существует два общих подхода к обнаружению объектов – компьютерное зрение и нейронные сети.
В случае компьютерного зрения вы используете сложные функции, которые очень характерны для объекта, который вы хотите обнаруживать и отслеживать. Эти системы особенно хороши для отслеживания и не очень хороши для обнаружения в целом.
Нейронные сети намного лучше обнаруживают и неплохо отслеживают. Проблема в том, что стандартный способ выполнения работы очень медленный. Проще говоря, вы тренируете сеть распознавать изображение кошки. Вы показываете ему много-много фотографий кошек, а затем, после обучения, у вас есть кошачий детектор. Затем вы просматриваете его по изображению и вычисляете его результат во всех возможных местах, где вы можете найти кошку. Вы также повторяете задачу в разных масштабах, чтобы убедиться, что вы обнаруживаете кошек на разных расстояниях. В конце дня вы рисуете ограничивающие рамки вокруг областей изображения, где ваш детектор кошек выдает высокую вероятность того, что это была кошка.
Что делает YOLO, чтобы вернуться к основной идее использования нейронной сети для изучения связи между входом и выходом, которая вас действительно интересует. Вам не интересно обнаруживать фотографию кошки, вы заинтересованы в том, чтобы ограничивающая рамка вокруг любой области фотографии, которая может содержать кошку. Этот подход часто называют «сквозным обучением нейронной сети», и именно он отличал подход DeepMind к компьютерным играм и игре в го.

В случае YOLO нейронная сеть обучается размещать ограничивающие прямоугольники с вероятностями вокруг областей, которые могут содержать объекты различного типа. Вот почему он называется «Смотришь только один раз». Альтернативный подход ищет кошку во всех возможных местах и, следовательно, «смотрит» неоднократно.
YOLO действительно смотрит на все изображение только один раз. Это причина того, что он такой невероятно быстрый. В одном прямом сетевом вычислении, по-прежнему много умножений, нелинейных функций и сложений, он вычисляет все ограничивающие прямоугольники, которые вы видите в демонстрациях.
Теперь взгляните на демонстрацию – и да, это другой YOLO, который используется в качестве входного материала:

Все происходит так быстро, что я советую ставить видео на паузу через определенные промежутки времени, чтобы получить представление о том, к каким ограничительным рамкам и меткам применяются на самом деле. Обратите внимание, что ошибки понятны, поскольку метки, неправильно примененные сетью, являются ошибками, которые кажутся разумными человеку.

С YOLO все еще есть некоторые проблемы – это не самый точный доступный детектор объектов, но если принять во внимание его скорость, это может не быть проблемой. Если вам нужен детектор объектов для чего-то, что требует принятия решений в реальном времени, это в настоящее время единственный подход, который приближается к тому, чтобы быть достаточно быстрым. Также, вероятно, есть способы использовать его скорость для повышения производительности за счет учета пространственных корреляций – то есть розовый слон, который появляется в одном кадре, вряд ли будет реальным. Розовый слон, который упорствует и движется по вероятной траектории, скорее всего, будет человеком, одетым в костюм, каким бы маловероятным он ни был.
Еще одна действительно впечатляющая демонстрация – недавнее выступление на TED, где были проверены способности YOLO в реальном времени:

Важным моментом является то, что для загрузки доступны различные обученные версии YOLO и проект с открытым исходным кодом. Существует также ряд загрузок демонстрационных версий, в том числе одна, которая будет работать с видеокамерой.
Что важно в YOLO, а также в его производительности, так это то, что он предлагает потенциал для использования в качестве подсистемы в чем-то более продвинутом. Если бы я был исследователем роботов, я бы, конечно, много думал о том, что я могу делать с YOLO как частью моей бортовой системы программного обеспечения. Что касается беспилотных автомобилей, то полезность YOLO очевидна, и она достаточно быстра.
Получив больше данных, YOLO может улучшить свою точность без замедления. Возможно, это будущее ИИ. Больше никаких прорывов, просто непрерывное обучение от одного до другого.


Добавить комментарий