Convolutional Neural Network. Object Landmarks

Автор: | 10.02.2022

Tags: сверточные сети распознавание лиц Python

Введение

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

Те, кто занимался классикой распознавания изображений, знает, что предварительная обработка изображений строится на основе двумерных фильтров.

Фильтр представляет собой матрицу коэффициентов, обычно заданную вручную. Эта матрица применяется к изображению с помощью математической операции, называемой сверткой. Суть этой операции в том, что каждый фрагмент изображения умножается на матрицу (ядро) свертки поэлементно и результат суммируется и записывается в аналогичную позицию выходного изображения. Основное свойство таких фильтров заключается в том, что значение их выхода тем больше чем больше фрагмент изображения похож на сам фильтр. Таким образом, изображение свернутое с неким ядром даст нам другое изображение, каждый пиксел которого будет означать степень похожести фрагмента изображения на фильтр. Иными словами это будет карта признаков.

В реальных сверточных сетях (Convolutional Neural Network, CNN) операция свертки изображения (Convolution) сочетается с операцией подвыборки (Subsampling) и другими.

Идея сверточных нейронных сетей заключается в чередовании сверточных слоев (C-layers), субдискретизирующих слоев (S-layers) и наличии полносвязных (F-layers) слоев на выходе. Такая архитектура стала фундаментальной для глубокого обучения, особенно с точки зрения распределения свойств изображения по всей картинке. Свёртки с обучаемыми параметрами позволяли с помощью нескольких параметров эффективно извлекать одинаковые свойства из разных мест.

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

Для различных нейронов одного слоя используются одна и та же матрица весов, которая представляет собой ядро свёртки. Его «двигают» по всему обрабатываемому слою (в самом начале — непосредственно по входному изображению), формируя после каждого сдвига сигнал активации для нейрона следующего слоя с аналогичной позицией.

Subsampling реализует локальное усреднение откликов либо выбирает среди них максимальное значение.

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

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

Классические задачи CNN:

  • Определение границ — это самая низкоуровневая задача, для которой уже классически применяются сверточные нейронные сети.
  • Определение вектора к нормали позволяет нам реконструировать трёхмерное изображение из двухмерного.
  • Saliency, определение объектов внимания — это то, на что обратил бы внимание человек при рассмотрении этой картинки.
  • Семантическая сегментация позволяет разделить объекты на классы по их структуре, ничего не зная об этих объектах, то есть еще до их распознавания.
  • Семантическое выделение границ — это выделение границ, разбитых на классы.
  • Выделение частей тела человека.
  • И самая высокоуровневая задача — распознавание самих объектов, например, распознавание лиц.

 

Полезные ссылки: