Обнаружение объектов с помощью глубоких нейронных сетей обучения может предоставить быстрое и точное средство для предсказания местоположения и размера объекта в изображении. В идеале сеть возвращает действительные объекты в своевременном случае, независимо от шкалы объектов. Использование якорных коробок улучшает скорость и эффективность для фрагмента обнаружения среды глубокой нейронной сети обучения.
Anchor boxes набор предопределенных ограничивающих рамок определенной высоты и ширины. Эти поля заданы для захвата шкалы и соотношения сторон определенных классов объектов, которые вы хотите обнаружить, и обычно выбираются на основе размеров объектов в ваших обучающих наборах данных. Во время обнаружения предопределенные якорные коробки запечатываются поперек изображения. Сеть предсказывает вероятность и другие атрибуты, такие как фон, пересечение над объединением (IoU) и смещения для каждого мозаичного якорного ящика. Предсказания используются для уточнения каждого отдельного якорного ящика. Можно задать несколько анкерных полей, каждый для другого размера объекта. Анкерные коробки являются фиксированными начальными краевыми прямоугольниками.
Сеть не предсказывает непосредственно ограничительные рамки, а скорее предсказывает вероятности и уточнения, которые соответствуют мозаичным анкерным блокам. Сеть возвращает уникальный набор предсказаний для каждого заданного якорного ящика. Итоговая карта функций представляет обнаружения объектов для каждого класса. Использование якорей позволяет сети обнаруживать несколько объектов, объекты разных шкал и перекрывающиеся объекты.
При использовании якорей можно вычислить все предсказания объектов сразу. Якорные коробки устраняют необходимость сканирования изображения скользящим окном, которое вычисляет отдельное предсказание в каждом потенциальном положении. Примерами детекторов, которые используют скользящее окно, являются те, которые основаны на совокупных функциях канала (ACF) или гистограмме функций градиентов (HOG). Детектор объектов, который использует якорные коробки, может обрабатывать целое изображение сразу, делая возможными системы обнаружения объектов в реальном времени.
Поскольку сверточная нейронная сеть (CNN) может обрабатывать входное изображение сверточным способом, пространственное местоположение во входе может быть связано с пространственным местоположением в выходе. Это сверточное соответствие означает, что CNN может извлечь функции изображения для всего изображения сразу. Извлечённые функции могут затем быть связаны обратно с их местоположением в этом изображении. Использование анкерных коробок заменяет и резко снижает стоимость подхода раздвижного окна для извлечения функций из изображения. Используя якорные коробки, можно разработать эффективные детекторы объектов глубокого обучения, чтобы охватить все три этапа (обнаружение, кодирование и классификация функций) детектора объектов на основе скользящего окна.
Положение якорного ящика определяется путем отображения местоположения выхода сети назад на входное изображение. Процесс реплицируется для каждого выходного сигнала сети. Результат создает набор мозаичных якорей-привязок по всему изображению. Каждый якорный блок представляет определенное предсказание класса. Для примера существует две анкерные коробки, чтобы сделать два предсказаний на каждое местоположение на изображении ниже.
Каждый якорный ящик запечатан по всему изображению. Количество выходов сети равняется количеству мозаичных якорей. Сеть создает предсказания для всех выходов.
Расстояние, или stride, между плиточными якорными коробками является функцией от величины понижающей дискретизации, присутствующей в CNN. Коэффициенты понижающей дискретизации между 4 и 16 являются общими. Эти коэффициенты понижающей дискретизации производят грубые мозаичные анкерные коробки, что может привести к ошибкам локализации.
Чтобы исправить ошибки локализации, детекторы объектов глубокого обучения учатся смещениям, чтобы применить к каждому плиточному якорному ящику, уточняющему положение и размер якорного ящика.
Понижающую дискретизацию можно уменьшить путем удаления слоев понижающей дискретизации. Чтобы уменьшить понижающую дискретизацию, опустите "Stride
"свойство свертки или максимальное объединение слоев (таких как convolution2dLayer
(Deep Learning Toolbox) и maxPooling2dLayer
(Deep Learning Toolbox).) Можно также выбрать слой редукции данных ранее в сети. Слои редукции данных из более ранних в сети имеют более высокое пространственное разрешение, но могут извлечь меньше семантической информации по сравнению со слоями далее по сети
Чтобы сгенерировать окончательные обнаружения объектов, мозаичные якорные коробки, которые относятся к фоновому классу, удаляются, а остальные таковые фильтруются по их оценке достоверности. Якорные коробки с наибольшей оценкой достоверности выбирают с помощью немаксимального подавления (NMS). Для получения дополнительной информации о NMS смотрите selectStrongestBboxMulticlass
функция.
Многомасштабная обработка позволяет сети обнаруживать объекты различного размера. Для достижения многомасштабного обнаружения необходимо задать якорные коробки различного размера, такие как 64 на 64, 128 на 128 и 256 на 256. Задайте размеры, которые тесно представляют шкалу и соотношение сторон объектов в ваших обучающих данных. Для примера оценки размеров смотрите Estimate Anchor Boxes From Training Data.