Изменения

Перейти к: навигация, поиск

Ядра

480 байт добавлено, 15:29, 22 января 2021
Правки раздела Сверточные Ядра
== Сверточные ядра ==
[[Файл:vgg-16_block1_conv1_6_filters.png|upright=1.0|thumb|Рисунок 1. Визуализация первых 6 фильтров VGG-16 слоя block1_conv1, объединенные в триплеты. Некоторые из них имеют разные веса для разных каналов.[https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2019/02/Plot-of-the-First-6-Filters-from-VGG16-with-One-Subplot-Per-Channel-1024x768.png Источник]]]'''Сверточные ядра''' (англ. ''convolutional kernel'') — матрицы небольших размеров, с помощью которых производится [[Сверточные нейронные сети#Свертка|свертка]]. Используются для извлечения определенного признака, веса являются обучаемыми параметрами, например, с помощью [[Стохастический градиентный спуск|градиентного спуска]]. Для разноцветных(с количеством каналов больше единицы) изображений используются фильтры, которые являются тензором ядер. Веса у таких ядер внутри тензора могут быть разного значения. Напримердля пространства RGB, если мы можем искать границы только в красной компоненте какой-то из признаков определяется сильнееканале красного цвета и ядро будет применять оператор Собеля, то веса а ядра для синего и зеленого каналов будут больше чем в синей или зеленой компонентахиметь вид нулевой матрицы.
=== Примеры сверточных ядер ===
 
==== Сглаживающие фильтры ====
 
'''Средний фильтр''' (англ. mean filter) — это простой способ сглаживания и уменьшения шума в изображениях. Идея фильтра заключается в замене значения пикселя на среднюю сумму его соседей, включая сам пиксель. Обычно используется матрица размера $3 \times 3$, но для получения большего размытия можно брать матрицы большей размерности:
 
$\frac{1}{9}\begin{bmatrix}1&1&1\\1&1&1\\1&1&1\end{bmatrix}$ — средний фильтр размера $3 \times 3$
 
{|align="center"
|-valign="top"
|[[Файл:smoothing.jpg|400px|thumb|Рисунок 2. Оригинал и примененные к нему средние фильтры размеров $3 \times 3$ и $7 \times 7$ [https://homepages.inf.ed.ac.uk/rbf/HIPR2/mean.htm Источник]]]
|}
==== Определение границ ====
'''Оператор Собеля''' (англ. ''Sobel operator'') — ядро размерности $3 \times 3$, которое вычисляет приближенное значение производной изображения.
* $G_x = \begin{bmatrix}1&0&-1\\2&0&2\\1&0&-1\end{bmatrix}$ горизонтальная компонента* $G_y = \begin{bmatrix}1&2&1\\0&0&0\\-1&2&-1\end{bmatrix}$ вертикальная компонента
Горизонтальная и вертикальная компоненты могут быть скомбинированы для нахождения значения градиента в точке $G=\sqrt{G^2_x + G^2_y}$
{|align="center"
|-valign="top"
|[[Файл:edge_detection_grayscaleedge_detection.jpgpng|200px400px|thumb|Рисунок 23. Оригинальное изображение a) Оригинал, б) Горизонтальная компонента оригинала, в оттенках серого [https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Bikesgray.jpg/200px-Bikesgray.jpg Источник]]] |[[Файл:edge_detection_x.jpg|200px|thumb|Рисунок 3. Нормализованный градиент по координате х ) Вертикальная компонента оригинала, г) Градиент оригинала [https://en.wikipedia.org/wiki/File:Bikesgraygv.jpg Источник]]] |[[Файл:edge_detection_y.jpg|200px|thumb|Рисунок 4. Нормализованный градиент по координате у [https://en.wikipedia.org/wiki/File:Bikesgraygh.jpg Источник]]] |[[Файл:edge_detection_magnitude.jpg|200px|thumb|Рисунок 5. Нормализованный градиент исходного изображения [https://en.wikipedia.org/wiki/File:Bikesgraysobel.jpg Sobel_operator Источник]]]
|}
==== Определение линий ====
Оператор определения линий с помощью сверточных ядер состоит из 4 матриц $3 \times 3$: горизонтальной, вертикальной, и двух наклонных($+45^{\circ}$ и $-45^{\circ}$) соответственно:
$\begin{bmatrix}-1&-1&-1\\2&2&2\\-1&-1&-1\end{bmatrix}$, $\begin{bmatrix}-1&2&-1\\-1&2&-1\\-1&2&-1\end{bmatrix}$, $\begin{bmatrix}-1&-1&2\\-1&2&-1\\2&-1&-1\end{bmatrix}$, $\begin{bmatrix}2&-1&-1\\-1&2&-1\\-1&-1&2\end{bmatrix}$
{|align="center"
|-valign="top"
|[[Файл:line_detection_grayscaleline_detection.gifpng|200px400px|thumb|Рисунок 64. Оригинальное изображение в оттенках серого [https://homepages.inf.ed.ac.uk/rbf/HIPR2/images/brg3.gif Источник]]] |[[Файл:line_detection_after.gif|200px|thumb|Рисунок 7. изображение после применения оператора Оригинал и примененный к нему оператор нахождения линий с нормализацией [https://homepages.inf.ed.ac.uk/rbf/HIPR2/images/brg3add2linedet.gif htm Источник]]]
|}
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%BE%D0%BF%D0%BE%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2 machinelearning.ru — Машина опорных векторов]
* [https://www.youtube.com/watch?v=Adi67_94_gc&list=PLJOzdkh8T5kp99tGTEFjH_b9zqEQiiBtC&index=5 Лекция "Линейные методы классификации: метод опорных векторов"] — К.В. Воронцов, курс "Машинное обучение" 2014
* [https://homepages.inf.ed.ac.uk/rbf/HIPR2/linedet.htm HIPR Line Detection]
* [https://homepages.inf.ed.ac.uk/rbf/HIPR2/sobel.htm HIPR Sobel Edge Detector]
14
правок

Навигация