TwiddleLab / Искусственный интеллект / Как машины видят и слышат
Фильтры находят края
Что ты узнаешь
- Фильтр (или ядро) это крошечная сетка чисел, например 3 × 3.
- Свёртка двигает фильтр по картинке: умножь, сложи, запиши сумму, сдвинься на шаг.
- Результат это карта признаков: светлая там, где есть узор фильтра. Поменяй числа, и поменяется то, что он находит.
- В коде свёртка это два цикла, один внутри другого.
Как идёт урок
Глаза сначала находят контур зверушки. Могут ли простые числа найти край?
Возьми каждый пиксель минус соседний слева. Где получится самое большое число? Нажми на этот промежуток, потом «Проверить».
Вот это правило в виде крошечного фильтра: -1 и +1. Двигай его вдоль строки.
Теперь в двух измерениях. Двигай окно 3 × 3 по зверушке.
-1 в левом столбце, +1 в правом. Смотри, как заполняется карта на выходе.
Этот трюк работает внутри каждой модели зрения.
Нажми, чтобы открыть его части.
Крошечная сетка чисел это фильтр, его ещё называют ядром.
Умножь, сложи, сдвинься на шаг, повтори. Это свёртка.
Результат это новая сетка, карта признаков. Светлое место значит: мой узор здесь.
Одни и те же 9 чисел работают в каждой точке. Поэтому фильтр маленький и быстрый.
Собери свой фильтр: пусть он находит верх и низ зверушки.
Нажимай на клетки, чтобы поставить +1, -1 или 0. Карта обновляется на ходу. «Проверить» при совпадении 80%.
Фильтр срабатывает там, где картинка совпадает с его узором из минусов и плюсов. -1 сверху и +1 снизу дают большую сумму, только где пиксели сверху темнее или светлее нижних: это горизонтальный край.
Игра: линии ушей. Добейся, чтобы карта совпала с целью, за как можно меньше нажатий.
Начинаешь со своего фильтра. Цель подсвечивает наклонные края.
Четыре фильтра сделали эти четыре карты. Положи каждый фильтр на его карту.
Перетащи фильтр на карту или нажми на фильтр, потом на карту.
У фильтров краёв есть -1 и +1, которые гасят друг друга на ровных местах, поэтому их карты тёмные везде, кроме краёв. Размытие (все 1) усредняет соседей. Резкость (5 в середине, -1 вокруг) усиливает отличие от соседей.
Код: свёртка это два цикла, один внутри другого.
Перед каждым «Шагом» нажми на клетку, куда дальше встанет центр окна.
Какой фильтр находит верхние и нижние края?
Прочитай числа, выбери фильтр, потом «Проверить».
Фильтр A сравнивает лево с правом (вертикальные края). Фильтр B складывает всё поровну (размытие). Фильтр C ставит -1 сверху и +1 снизу, поэтому срабатывает на горизонтальных краях.
До и после: запусти свой фильтр на большом фото.
Переключай фильтры и смотри то «До», то «После».
Предыдущий урок: Картинка это сетка чисел · Следующий урок: Слои фильтров: свёртка · Часть курса: Как машины видят и слышат
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.