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

Знаете ли вы, что распознавание изображений является одним из основных направлений развития беспилотных автомобилей? Для обнаружения транспортных средств и пешеходов мы используем распознавание изображений в беспилотных автомобилях. В автономном транспортном средстве это двухэтапный процесс: классификация изображений и локализация изображений. Классификация изображений - это определение объектов на изображении, например автомобиля или человека. А локализация изображения - это определение местоположения объектов.

Под капотом повод для нашего обсуждения - распознавание изображений. Распознавание изображений включено в моделях с использованием глубокой нейронной сети. Сверточная нейронная сеть (CNN) составляет основу техники в этом аспекте. Затем эти модели обучаются с использованием набора изображений, помеченных с использованием техники аннотации изображений. Это поможет модели распознать незнакомые визуальные сценарии. Сверточная нейронная сеть выполняет операции с изображениями для их классификации. Но главный вопрос в том, что такое CNN и как он работает?

Что такое CNN?

Сверточная нейронная сеть (CNN) - это тип глубокой нейронной сети, реализованный в приложении визуального анализа. Любая сеть CNN состоит из многослойных перцептронов. Они являются базовой единицей или строительными блоками любой глубокой нейронной сети. Сеть CNN состоит из множества перекрывающихся многослойных перцептронов для покрытия всей визуальной области. Зная, что такое CNN, его работа тоже может оставаться любопытной. Прежде чем перейти к следующему разделу, всегда рекомендуется знать, как работает многослойный перцептрон.

Как CNN позволяет распознавать изображения?

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

Подобно другим нейронным сетям, CNN состоит из нескольких слоев. Входной слой, выходной слой и многие другие дополнительные скрытые слои.

Классификация изображений в CNN будет принимать входное изображение, состоящее из различных параметров, для их идентификации и классификации. Компьютеры обнаруживают изображение как массив пикселей, и значения зависят от разрешения изображения, которое имеет форму h x w x d (h = высота, w = ширина, d = размер).

Слой свертки:

Слой свертки - это первый слой. Назначение этого основного слоя - извлекать элементы, встроенные в изображение, с помощью определенных фильтров.

Как указано выше, каждое изображение состоит из нескольких пикселей. Каждый из этих пикселей имеет числовые значения. Они представлены в виде матрицы, как показано ниже (серая матрица). Здесь он представлен в виде матрицы 5 x 5, где значения пикселей представлены как 0 и 1. Возможным значением пикселя двоичного изображения (черно-белого) будет 0 и 1. Если это шкала серого, значения изображения могут находиться в диапазоне от 0 до 255. Приведенная ниже матрица 3 x 3 (зеленая матрица) является матрицей фильтра. Матрица изображения умножается на заданную матрицу фильтра, чтобы получить выходную матрицу.

Процесс объединения матрицы изображения 5 x 5 с матрицей фильтра 3 x 3 называется картой характеристик. В приведенном выше примере вычисления выполняются поэлементным умножением двух матриц. Эти перемноженные матрицы складываются в единую матрицу, известную как свернутый элемент.

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

Размер карты функций (свернутый элемент) зависит от количества шагов свертки. Это зависит от трех параметров:

Шаги:

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

Глубина:

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

Набивка:

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

Уровень объединения:

Объединение - это слой за сверточным слоем. После завершения слоя свертки обычно передаются выходные значения на следующий уровень, известный как объединение. применяется к выходному слою для уменьшения размера данных и может выполняться разными способами:

  • Максимальный пул: если это максимальная матрица, возьмите самый большой элемент из данной будущей карты.

  • Среднее объединение: в этом процессе вычисляется среднее значение матрицы.
  • Sum Pooling: это процесс добавления всех элементов в матрицу.

Полностью связанный слой:

Полностью связанный слой - это слой после слоя объединения. Основная цель этого слоя - добавить нелинейности нашим данным. Здесь мы сгладили все данные и соединили их в виде обычной нейронной сети. В качестве примера мы возьмем лицо, но оно должно распознавать разные части. Например, рот, глаза, нос и т. Д. Но они не имеют представления о точном положении, в котором его нужно разместить. Полностью связанный слой объединяет все слои вместе и, в соответствии с характеристиками, находит правильное место, к которому он принадлежит. Это может дать ему предсказательную силу и поможет предсказывать как человек. Для классификации вывода у нас есть функции классификации, такие как сигмоид или softmax.

Искусственные нейронные сети - это вычислительные модели, созданные человеческим мозгом. Используя искусственную нейронную сеть, в последнее время появилось много достижений, таких как распознавание голоса, распознавание изображений, робототехника. К сожалению, распознавание объектов является ключевой особенностью классификации изображений, и это имеет огромное коммерческое значение. Да… CNN - это немного сбивающая с толку тема, эти концепции и расчеты довольно сложно понять с первого раза. Но при глубоком понимании вы сможете добиться удовлетворительного результата.

Первоначально опубликовано на https://www.infolks.info 25 июня 2019 г.