Понимание концепции фильтров в компьютерном зрении - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь понять концепцию фильтров в компьютерном зрении. Я понимаю, что они делают, например, они могут быть использованы для уменьшения размерности входного изображения и так далее .... Я застрял в том, откуда берутся эти фильтры?

Например, я смотрел учебник, который показывает, что для определения вертикальной линии / края мы можем использовать фильтр 3x3 формы [ [-1, 0 , 1], [-1, 0 , 1], [-1, 0 , 1] ] ... как мы получили эту матрицу? Даже используя Keras, мне нужно было только передать количество фильтров, которые я хочу использовать

model.add(Conv2D(64, (3, 3), padding='same', input_shape=x_train.shape[1:]))

где 64 - количество фильтров, которые я хочу применить к входным данным ... но как Keras или любая другая библиотека решают, какие числа будет содержать матрица фильтров? Я в замешательстве.

Скажем, у вас есть пространство ввода 1000 изображений каждое 36x36x3, где 3 - канал (один для R, G и B) ... это означает, что у нас есть 3 матрицы, представляющие каждое изображение ... в общей сложности это будет 1000 x 3 = 3000 матриц.

Теперь, если я хочу обнаружить края по всему изображению, под краем я подразумеваю контуры объектов, чтобы определить, является ли изображение ноутбуком или телефоном, как это действительно происходит в сети? Является ли концепция нахождения ребер просто абстрактной, и все, что означает нахождение ребер, означает одинаковые числа / активации в схожих позициях в матрице, которую вы оцениваете, и тех, которые были помечены в пространстве ввода?

Итак, в заключение, как любая библиотека машинного обучения решает инициализировать эти фильтры? скажем для нашего примера, я хочу применить фильтры 18x18x3, как будут выглядеть эти матрицы фильтров? как они применяются в начальных слоях и как они заполняются при использовании в глубокой сети?

Может кто-нибудь помочь мне понять?

Спасибо.

1 Ответ

1 голос
/ 02 апреля 2019

Короче говоря, фильтры инициализируются случайным образом.Затем сверточная сеть обучается на огромном количестве изображений с метками.

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

Края очень важны для целей классификации изображений, поэтомуМодель «учится» на ранних этапах, чтобы определить края, если она хочет правильно классифицировать изображения.Таким образом, хотя этот процесс может показаться случайным, фильтры CNN обычно идентифицируют края и цвета в более ранних слоях, поскольку они приводят к лучшей классификации.

В более глубоких слоях фильтры изучают более сложные объекты из этих простых краев и цветов,Это сила «распределенного обучения», как это делают CNN и ANN в целом, функции обучения простых функций для создания более сложных функций.

...