Інтуїція до згортання в обробці зображень


9

Я прочитав багато документів про згортання в обробці зображень, і більшість з них говорить про його формулу, деякі додаткові параметри. Ніхто не пояснює інтуїцію та реальний сенс того, як робити згортку на зображенні. Наприклад, інтуїція виведення на графіку робить його, наприклад, більш лінійним.

Я думаю, що короткий підсумок визначення полягає в тому, що: згортка множиться на квадрат перекриття між зображенням і ядром, після цього знову підводять цю суму і кладуть її в якір. І це не має для мене сенсу.

Відповідно до цієї статті про згортність, я не можу уявити, чому згортання може робити якісь "неймовірні" речі. Наприклад, виявлення рядків та ребер на останній сторінці цього посилання. Просто виберіть відповідне згортання ядра може зробити приємні ефекти (виявити лінію або виявити край).

Чи може хтось надати інтуїцію (не потрібно, щоб це було чітким доказом) щодо того, як це зробити?

Відповіді:


13

Я думаю, що найпростіший спосіб подумати про Convolution - це метод зміни значення пікселя на нове значення на основі ваги пікселів, що знаходяться поблизу.

Неважко зрозуміти, чому Box Blur:

_____________
|1/9|1/9|1/9|
|1/9|1/9|1/9|
|1/9|1/9|1/9|
-------------

працює. Об'єднання цього ядра - це те саме, що проходити кожен піксель фотографії та робити нове значення пікселя середнім рівнем себе та восьми оточуючих пікселів.

Якщо ви це отримаєте, ви можете зрозуміти, чому працює розмиття Гаусса:

_____________________
|.01|.04|.07|.04|.01|
|.04|.16|.26|.16|.04|
|.07|.26|.41|.26|.07|
|.04|.16|.26|.16|.04|
|.01|.04|.07|.04|.01|
---------------------

Це в основному те саме, за винятком того, що усереднення зважується сильніше до пікселів, які знаходяться ближче. Функція, яка визначає, як швидко падають ваги, коли ви рухаєтесь далі, - це Гауссова функція , але вам не потрібно знати деталі функції, щоб використовувати її для розмивання.

Ядро виявлення країв у пов'язаній статті має сенс, якщо ви також довго придивляєтесь до нього:

__________
|-1|-1|-1|
|-1|.8|-1|
|-1|-1|-1|
----------

Це в основному говорить про те, що значення будь-якого пікселя починається з 8/9-го від його початкового значення. Потім ви віднімаєте значення кожного пікселя навколо нього, щоб отримати новий піксель.

Тож якщо значення пікселя велике і значення пікселів навколо нього теж високе, вони скасують один одного. Якщо значення пікселя низьке і всі пікселі навколо нього також низькі, вони також скасують один одного. Якщо значення пікселя велике і значення пікселів навколо нього низьке (як у пікселі на краю об'єкта), нове значення пікселя буде високим.


6

Один із способів думати про згортання / перехресну кореляцію - це як би ви шукали якийсь сигнал у своїх даних. Чим більше дані схожі на ядро, тим вище отримане значення буде. Я насправді приймаю зворотне ядро, тобто як в перехресній кореляції, але це в основному те саме.

Наприклад, скажімо, що ви шукаєте спрямований крок у ваших даних 1d.

Ядро могло бути

[-1 1]

і давайте застосуємо це до даних

[2 2 2 2 2 1 1 1 1 1]

Результат буде

[0 0 0 0 0 1 0 0 0 0]

Який визначає розташування кроку. Більш великий крок дав би більше значення.

Це працює, тому що при множенні візерунка на той, що з’являється в ядрі, ви отримуєте високе значення.

Виявлення країв (або будь-яке інше виявлення шаблону) працює аналогічно, наприклад, з ядром

[-1 2 -1]

Розширення на більш високі розміри також можна думати, якщо так.

Це має дати вам інтуїцію хоча б щодо деяких застосувань обробки згортання зображень.


4

Якщо ви вважаєте, що згортання трохи важко зрозуміти, я рекомендую почати шукати математичну морфологію, застосовану для обробки зображень. Основна ідея математичної морфології полягає в тому, що ви будете робити операцію дуже близьку до згортки, щоб "змінити" морфологія зображення, але зберегти інформацію про топологію. Таким чином, ви можете зробити зображення стоячого людини, скелета, який в значній мірі є палицею людини, спробуйте застосувати операцію ерозії, потім розширити операцію, потім перейти до відкритого / закриваючи роботу, ви почнете розуміти, що може зробити маска, застосована до кожного пікселя зображення, і як їх можна використовувати у великому сценарії для досягнення чудових результатів (наприклад, знайти місце, щоб почати щось із використання останньої ерозії), раз ви розумієте математичну морфологію, згортання трохи складніше,тому що його основа на обчисленні та визначений після інтеграції, але все-таки багато згортання легко зрозуміти, як середня розмитість, гауссова розмитість, різкість, виявлення ребер, лаплас, градієнт тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.