Виявляч контурів Деріша

Виявля́ч ко́нтурів Дері́ша (англ. Deriche edge detector) — це оператор виявляння контурів, розроблений Рашидом Дерішем[en] 1987 року. Це багатокроковий алгоритм, який використовують для отримання оптимального результату виявляння контурів на дискретному двовимірному зображенні. Цей алгоритм ґрунтується на праці Джона Ф. Кенні[en], пов'язаній з виявлянням контурів (виявляч контурів Кенні), та його критеріях оптимального виявляння контурів:

  • Якість виявляння — всі наявні контури повинно бути позначено, і не повинно ставатися хибного виявляння.
  • Точність — позначені контури повинні бути якомога ближче до контурів на реальному зображенні.
  • Однозначність — заданий контур на зображенні повинно бути позначено лише один раз. Не повинно ставатися кількох відгуків на один контур на реальному зображенні.

З цієї причини цей алгоритм часто називають виявлячем Кенні — Деріша.

Відмінності між виявлячами контурів Кенні та Деріша ред.

Виявляч контурів Деріша, подібно до виявляча контурів Кенні, складається з таких 4 кроків:

  1. Згладжування
  2. Обчислення величини та напрямку градієнта
  3. Придушування немаксимумів
  4. Гістерезисне порогування (з використанням двох порогових значень)

Істотна відмінність полягає у втіленні перших двох кроків алгоритму. На відміну від виявляча контурів Кенні, виявляч контурів Деріша використовує НІХ-фільтр[en] вигляду

 

Цей фільтр оптимізує критерії Кенні. Як видно з попередньої формули, найефективніший фільтр виходить при наближенні значення   до 0. Тоді такий фільтр використовує формулу

 

Перевага такого фільтра полягає в можливості пристосовування до характеристик оброблюваного зображення за допомогою лише одного параметра. Якщо значення α мале (зазвичай між 0,25 та 0,5), це призводить до кращого виявляння. З іншого боку, кращої локалізації досягають, коли параметр має вище значення (близько 2 або 3). Для більшості звичайних випадків рекомендовано значення параметра близько 1.

Приклад згладжування фільтром Деріша
Зображення
 
 
 
 
α α = 0,25 α = 0,5 α = 1 α = 2

Використання НІХ-фільтра має сенс особливо у тих випадках, коли оброблюване зображення зашумлене або вимагає великого згладжування (що веде до великого ядра згортки для НІХ-фільтра). У цих випадках виявляч Деріша має значну перевагу над виявлячем Кенні, оскільки він здатний оброблювати зображення за короткий сталий час незалежно від бажаної величини згладжування.

Втілення виявляча Деріша ред.

Процес отримання значення двовимірного фільтра Деріша можливо розділити на дві частини. У першій масив зображення проходять у горизонтальному напрямку зліва вправо за такою формулою:

 

і справа вліво за формулою:

 

Результат обчислення відтак зберігають у тимчасовому двовимірному масиві:

 

Другий крок алгоритму дуже схожий на перший. Як вхід використовують двовимірний масив із попереднього кроку. Його відтак проходять у вертикальному напрямку згори вниз і знизу вгору за такими формулами:

 
 
 

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

Коефіцієнти фільтра Деріша
згладжування похідна за x похідна за y
       
    0  
    1  
    -1  
    0  
      0
      1
      -1
      0
       
       
  1   1
  1 1  

Математичні властивості цього алгоритму часто використовують при практичному втілюванні виявляча Деріша. Достатньо втілити лише одну частину алгоритму, яка потім викликають двічі, виконуючи транспонування результатної матриці.

Приклади використання фільтра Деріша на різних вхідних зображеннях
Первинне зображення
 
 
 
 
Профільтроване зображення
 
 
 
 
Параметри фільтра α = 1,5
нижній поріг = 20
верхній поріг = 40
α = 4,0
нижній поріг = 50
верхній поріг = 90
α = 0,8
нижній поріг = 26
верхній поріг = 41
α = 1,0
нижній поріг = 15
верхній поріг = 35

Див. також ред.

Література ред.

  • R. Deriche, Using Canny's criteria to derive a recursively implemented optimal edge detector, Int. J. Computer Vision, Vol. 1, pp. 167–187, April 1987. (англ.)
  • R. Sirdey, A Gentle Introduction to the Deriche Optimal Edge Detector, Éditions des Nik's news, 1998. (англ.)
  • J. Canny, A Computational Approach To Edge Detection, IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(6):679–698, 1986. (англ.)

Посилання ред.