предисловие
В этой статье представлены основные концепции анкеров, фактический процесс применения на основе анкеров, а также настроек анкеров.
Эта статья очень поверхностна и используется только для того, чтобы помочь Сяобаю понять основные понятия. В будущем будет несколько статей, посвященных более глубокому пониманию анкоров.Пожалуйста, продолжайте обращать внимание на техническое руководство по общедоступному аккаунту CV.
Обратите внимание, сосредоточьтесь на техническом обзоре компьютерного зрения, новейших технологий отслеживания и интерпретации классических статей.
Одна из самых сложных концепций для понимания при изучении сверточных нейронных сетей для обнаружения объектов — это концепция якорей. Это также один из наиболее важных параметров, который можно настроить для повышения производительности набора данных. На самом деле, если якорные блоки не настроены правильно, нейронная сеть никогда не узнает о существовании определенных очень больших, очень маленьких или неправильных объектов и никогда не сможет их обнаружить. К счастью, есть несколько простых шагов, которые вы можете предпринять, чтобы не попасть в эту ловушку.
Что такое якорная коробка?
При использовании нейронной сети, такой как YOLO или SDD, для прогнозирования нескольких объектов на изображении сеть фактически делает тысячи прогнозов и показывает только те, которые она определяет как объекты. Множественные прогнозы выводятся в следующих форматах:
Прогноз 1: (X, Y, высота, ширина), категория
...
Предсказать ~80 000: (X, Y, высота, ширина), категория
где (X, Y, высота, ширина) называется «ограничивающей рамкой» или рамкой, окружающей цель. Блок и целевой класс помечаются вручную аннотаторами-людьми.
В чрезвычайно упрощенном примере допустим, что у нас есть модель, которая имеет два прогноза и получает следующие изображения:
Нам нужно сообщить нашей сети, верен ли каждый из ее прогнозов, чтобы она могла учиться. Но мы говорим нейросети, какими должны быть ее прогнозы? Прогнозируемый класс должен быть:
-
Предсказание 1: Груши
-
Прогноз 2: яблоко
или должно быть:
-
Предсказание 1: яблоко
-
Предсказание 2: груши
Если сеть предсказывает:
-
Предсказание 1: яблоко
-
Прогноз 2: яблоко
Нам нужны два предсказателя сети, чтобы решить, будет ли их работа предсказывать груши или яблоки. Для этого есть несколько инструментов. Предсказатель может специализироваться на объектах определенного размера, объектах с определенным соотношением сторон (высота и ширина) или объектах в разных частях изображения.
Большинство сетей используют все три стандарта. В нашем примере с изображением груши/яблока мы можем использовать предсказание 1 для объекта в левой части изображения и предсказание 2 для объекта в правой части изображения. Затем мы получаем ответ, что должна предсказать сеть:
-
Предсказание 1: Груши
-
Прогноз 2: яблоко
Якорная коробка на практике
Модели обнаружения объектов на основе привязки обычно делают следующее:
1. Создайте тысячи «якорных рамок» или «априорных рамок» для каждого предиктора, представляющих идеальное местоположение, форму и размер цели, которую он специально предсказывает.
2. Для каждой рамки привязки вычислите, какая ограничивающая рамка цели имеет наибольшее перекрытие, деленное на неперекрытие. Это называется IOU (Intersection Over Union).
3. Если самая высокая долговая расписка больше 50%, сообщите якорному блоку, что он должен обнаружить цель, дающую самую высокую долговую расписку.
4. В противном случае, если IOU больше 40%, сообщите нейронной сети, что истинное обнаружение неоднозначно, и не учитесь на этом примере.
5. Если самая высокая долговая расписка составляет менее 40%, блок привязки не должен предсказывать цель.
Это хорошо работает на практике, когда тысячи предикторов действительно хорошо решают, присутствует ли их целевой тип на изображении.
Визуализируйте поля привязки в RetinaNet, как показано ниже, здесь показан только 1% из них:
Использование конфигурации поля привязки по умолчанию может создать чрезмерно специализированный предиктор, и объекты, появляющиеся на изображении, могут не достигать 50% IOU с любым полем привязки. В этом случае нейросеть никогда не узнает, что эти объекты существуют, и никогда не научится их предсказывать. Мы можем уменьшить поле привязки, например, как в этом примере 1%:
В конфигурации RetinaNet наименьший размер поля привязки — 32x32. Это означает, что многие объекты меньшего размера не будут обнаружены. Вот пример из набора данных WiderFace, где мы сопоставляем ограничивающие рамки с соответствующими якорными рамками, но некоторые из них отсутствуют:
В этом случае только четыре наземных ограничивающих прямоугольника перекрываются с якорными прямоугольниками. Нейронные сети никогда не научатся предсказывать другие лица. Мы можем исправить это, изменив конфигурацию поля привязки по умолчанию. Уменьшите минимальный размер поля привязки, все лица будут выровнены по крайней мере с одним из наших полей привязки, и наша нейронная сеть сможет научиться их обнаруживать!
Улучшенная конфигурация якорной коробки
Как правило, прежде чем погрузиться в обучение модели, вы должны ответить на следующие вопросы о своем наборе данных:
-
Каков наименьший размер коробки, которую вы хотите обнаружить?
-
Коробку какого самого большого размера вы хотите обнаружить?
Какой формы можно сделать коробку? Например, автомобильный детектор может иметь короткие широкие опорные рамки, если автомобиль или камера не могут поворачиваться боком.
Их можно приблизительно оценить, вычислив самые экстремальные размеры и соотношения сторон в наборе данных. YOLO v3 — еще один детектор объектов, который использует K-средние для оценки идеальных ограничивающих рамок. Другой вариант — изучить конфигурацию блока привязки.
Как только вы разберетесь с этим, вы можете приступить к разработке своего якорного ящика.
Если центр ограничивающей рамки и рамка привязки различны, результирующая долговая расписка будет небольшой. Даже с небольшими якорными ячейками некоторые наземные якорные ячейки могут быть пропущены, если шаг между якорными ячейками большой. Один из способов улучшить эту ситуацию — снизить порог IOU с 50% до 40%.
В недавней статье Дэвида Пакасси Торрико сравниваются текущие реализации API для распознавания лиц, подчеркивая важность правильного указания полей привязки.
Название статьи: Обнаружение лиц — обзор и сравнение различных решений
Ссылка на статью:Woohoo. Lee IP. Eat/en/blog/ issue…
Видно, что алгоритм работает хорошо, за исключением маленького лица. Вот несколько изображений, на которых API вообще не смог определить ни одного лица, но наша новая модель обнаружила довольно много:
Эта статья — просто статья о понимании анкоров, и в будущем будет несколько статей о более глубоком понимании анкоров.Пожалуйста, продолжайте обращать внимание на техническое руководство по общедоступному аккаунту CV.
Автор: Андерс Кристиансен
Составление: Техническое руководство по резюме
Оригинальная ссылка:к data science.com/anchor-sewing evil…
Добро пожаловать в техническое руководство CV для общедоступной учетной записи, в котором основное внимание уделяется техническому обзору компьютерного зрения, отслеживанию новейших технологий и интерпретации классических статей.
Ответьте на ключевое слово «техническое резюме» в официальном аккаунте, чтобы получить краткий PDF-файл исходной технической сводной статьи официального аккаунта.
Другие статьи
Инкрементальное обучение глубоких нейронных сетей
Обзор оценки позы человека в глубоком обучении
Краткое изложение распространенных методов обнаружения малых целей
Техническое руководство по CV - Резюме и классификация основных статей
Резюме методов нормализации | Краткое изложение методов недообучения и переобучения
Сводка NMS | Краткое изложение методов функции потерь
Техническое резюме механизма внимания | Краткое изложение технологии пирамиды функций
Краткое изложение технологии объединения | Краткое изложение методов увеличения данных
Краткое изложение общих идей бумажных инноваций | Сводка параллельного обучения GPU с несколькими картами
Резюме эволюции структуры CNN (1) Классическая модель
Резюме эволюции структуры CNN (2) Облегченная модель
Резюме эволюции структуры CNN (3) Принципы проектирования
Краткое изложение технологии визуализации CNN (1) Визуализация карты объектов
Краткое описание технологии визуализации CNN (2) Визуализация ядра свертки
Краткое изложение технологии визуализации CNN (три) визуализации
Краткое описание технологии визуализации CNN (4) инструменты и проекты визуализации
Резюме инструментов аннотирования изображений в компьютерном зрении
Обзор и сводка различных алгоритмов оптимизации градиентного спуска Optimizer
Резюме | Классические наборы данных с открытым исходным кодом в стране и за рубежом
Функция Softmax и ее недоразумения
Общие стратегии повышения производительности моделей машинного обучения
Резюме инструментов аннотирования изображений в компьютерном зрении
Влияние размера партии на обучение нейронной сети
Резюме методов настройки параметров для гиперпараметров нейронной сети
Загружайте модели PyTorch в 340 раз быстрее с помощью Ray
Резюме инструментов аннотирования изображений в компьютерном зрении
Обзор последних исследований по обнаружению малоразмерных целей в 2021 году
Серия Classic Paper — Капсульные сети: новая сеть глубокого обучения
Обзор непродолжительного обучения компьютерному зрению