Как научить нейросеть рисовать Bounding Box: руководство от DeepLearning.AI

DeepLearning.AI 175 тыс. 11 мин 3 мин 07.11.2017
Главное

Сфера компьютерного зрения в последние годы переживает настоящий бум, демонстрируя результаты, которые казались недостижимыми еще несколько лет назад. Основатель DeepLearning.AI Эндрю Ын подробно разбирает переход от простой классификации изображений к более сложным задачам — локализации и детекции объектов, которые лежат в основе современных систем автономного вождения.

🎯 От классификации к локализации: иерархия задач 0:00

Эндрю Ын выделяет три ключевых этапа в развитии алгоритмов распознавания образов . По его словам, понимание локализации является необходимым фундаментом для перехода к полноценному обнаружению (detection) нескольких объектов на одном кадре.

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

📦 Анатомия ограничивающей рамки (Bounding Box) 2:11

Стандартный конвейер классификации включает в себя сверточную нейросеть (ConvNet), на выходе которой вектор признаков подается в Softmax-слой для определения класса объекта . Чтобы добавить функцию локализации, структуру сети необходимо расширить.

Для выделения объекта нейросеть должна предсказывать четыре дополнительных числа, характеризующих Bounding Box :

  1. $B_x$ — координата X центра объекта.
  2. $B_y$ — координата Y центра объекта.
  3. $B_h$ — высота ограничивающей рамки (height).
  4. $B_w$ — ширина ограничивающей рамки (width).

В рамках курса Эндрю Ын использует систему координат, где верхний левый угол изображения имеет координаты (0, 0), а нижний правый — (1, 1) . Таким образом, все параметры рамки являются относительными величинами от 0 до 1. Например, если $B_h$ равно 0.3, это означает, что высота рамки составляет 30% от общей высоты изображения .

📑 Структура целевого вектора Y 5:18

Для обучения нейросети методом «обучения с учителем» (supervised learning) необходимо сформировать расширенный вектор меток $Y$ . В примере с беспилотным автомобилем Эндрю Ын использует три основных класса (пешеход, автомобиль, мотоцикл) и категорию «фон» .

Вектор $Y$ состоит из 8 компонентов:

Эндрю Ын подчеркивает важный нюанс: если на изображении нет объекта ($P_c = 0$), то все остальные параметры вектора становятся «безразличными» (don’t cares), что обозначается вопросительными знаками в обучающей выборке . Алгоритму в этом случае неважно, какие координаты или классы он предскажет, так как объекта в реальности не существует .

📉 Оптимизация и функция потерь 8:46

Выбор функции потерь (loss function) зависит от того, содержит ли изображение объект. В качестве базового варианта Эндрю Ын рассматривает среднеквадратичную ошибку (squared error) .

Расчет потерь происходит по двум сценариям:

  1. Если объект есть ($P_c = 1$): Потеря вычисляется как сумма квадратов разностей всех 8 компонентов вектора $Y$ и предсказанного вектора $\hat{Y}$ .
  2. Если объекта нет ($P_c = 0$): Нас интересует только точность предсказания параметра $P_c$. В этом случае потеря — это просто квадрат разности между предсказанным и реальным $P_c$ .

Хотя использование среднеквадратичной ошибки упрощает понимание, Эндрю Ын отмечает, что на практике часто применяются комбинированные подходы . По его мнению, для классификации ($c_1, c_2, c_3$) эффективнее использовать логистическую регрессию или Softmax (log-likelihood loss), в то время как для координат рамок лучше оставить среднеквадратичную ошибку или её аналоги .

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

💬 Цитаты

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

«Идея заставить нейросеть выдавать набор вещественных чисел для определения местоположения оказывается очень мощной.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Bounding Box
Прямоугольная рамка, описывающая положение и границы объекта на изображении.
Softmax
Функция активации в нейронных сетях, используемая для задач многоклассовой классификации.
ConvNet
Сверточная нейронная сеть, оптимизированная для работы с визуальными данными.
Don’t cares
Состояния в обучающей выборке, значения которых не влияют на расчет функции потерь в определенных условиях.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Эндрю Ын DeepLearning.AI Bounding Box Object Localization Компьютерное зрение