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

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

Искусственная нейронная сеть - это математическая модель взаимосвязанных единиц, называемых нейронами. Каждый нейрон принимает входные данные от предыдущих нейронов и выполняет операцию над суммой входных данных от предыдущих нейронов. В случае изображения (изображений) каждый пиксель - это функция, которая предоставляется в качестве входных данных для нейронной сети.



Цель любого детектора объектов - извлечь как можно больше функций, чтобы лучше классифицировать и локализовать объект на сцене.

В случае обнаружения объектов простой математический подход с упрощенным обучением приведет нас к революционной статье Далала и Триггса (2004), гистограмме ориентированных градиентов (HOG) для детектора людей.

Детектор HOG вычисляет пиксельную разницу между центральным пикселем и соседними пикселями, а также вычисляет угол градиента с ним и подвергается процессу биннинга, чтобы получить окончательное извлечение признаков. Для подробного объяснения HOG перейдите по следующей ссылке:



С 2004 года было создано множество других вариантов HOG, которые повышают точность с каждой итерацией и улучшают модели. Но у всех моделей была одна большая проблема! - Слишком много ложных срабатываний.

С появлением более совершенных вычислительных устройств разработчики и исследователи пытались создавать модели с использованием нейронных сетей и пытались с их помощью извлекать более качественные и более глубокие функции. Один из таких методов, над которым я работал в своей магистерской диссертации, - это fast-rcnn.

Https://github.com/rbgirshick/py-faster-rcnn

Faster-Rcnn - это революционная разработка с точки зрения более быстрой классификации и локализации. Модель, которую я сделал, имела 5 сверточных слоев и 2 полностью связанных слоя. Эти термины могут быть пока новыми для читателей, но мы просто сравниваем уровень извлечения признаков, а не глубокое понимание теории.

Вот результаты:

Функции уровня 1 - это довольно простые функции, больше похожие на простые детекторы границ. Фигура слева - это исходное изображение.

Как вы можете видеть в процессе, после уровня 1 изучение функций не может быть описано такими методами, как обнаружение краев или градиентная гистограмма и т. Д. Последняя изучаемая функция основана на количестве входных изображений для обучения. Чем больше тем лучше.

В зависимости от близости к объекту входное изображение будет классифицироваться как этот конкретный «объект», а также будет сгенерирован соответствующий индекс достоверности.

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