Ознака (комп'ютерне бачення)
Виявляння ознак |
---|
Виявляння контурів |
Виявляння кутів |
Виявляння плям |
Виявляння хребтів |
Перетворення Гафа |
Структурний тензор |
Афінноінваріантне виявляння ознак |
Опис ознак |
Простір масштабів |
У комп'ютернім баченні та обробці зображень озна́ка (англ. feature) — це порція інформації про вміст зображення; зазвичай про те, чи має певна область зображення певні властивості. Ознаками можуть бути певні структури зображення, наприклад, точки, контури чи об'єкти. Ознаки також можуть бути результатом загальної окільної операції[en] або виявля́ння озна́к (англ. feature detection), застосованих до зображення. Інші приклади ознак пов'язані з рухом у послідовностях зображень, або з формами, визначеними в термінах кривих або меж між різними областями зображення.
У ширшому сенсі ознака — це будь-яка порція інформація, що має значення для розв'язання обчислювальної задачі, пов'язаної з певним застосуванням. Вона має той самий сенс, що й ознака в машиннім навчанні та розпізнаванні образів загалом, проте обробка зображень володіє дуже мудрованим асортиментом ознак. Поняття ознаки дуже загальне, й вибір ознак у конкретній системі комп'ютерного бачення може сильно залежати від конкретної задачі.
Універсального чи точного визначення того, що є ознакою, не існує, й точне визначення часто залежить від задачі та типу застосування. Тим не менше, ознаку зазвичай визначають як «цікаву» частину зображення, й використовують ознаки як відправну точку для багатьох алгоритмів комп'ютерного бачення.
Оскільки ознаки використовують як відправну точку й основні примітиви для наступних алгоритмів, загальний алгоритм часто буде не кращим за свій виявляч ознак. Як наслідок, бажаною властивістю виявляча ознак є повторюваність (англ. repeatability): чи буде виявлено одну й ту ж ознаку в двох або більше різних зображеннях однієї сцени.
Виявляння ознак — низькорівнева операція обробки зображень. Тобто її зазвичай виконують як першу операцію над зображенням, і перевіряють кожен піксель, щоби побачити, чи присутня ознака в цьому пікселі. Якщо це частина більшого алгоритму, то він зазвичай розглядатиме зображення вже лише в області ознак. Як вбудована передумова для виявляння ознак, вхідне зображення зазвичай згладжують гауссовим ядром у масштабопросторовому поданні, й обчислюють одне або декілька зображень ознак, часто виражених у термінах операцій локальних похідних зображення.
Іноді, коли виявляння ознак обчислювально витратне й присутні часові обмеження, можуть використовувати алгоритм вищого рівня для скеровування етапу виявляння ознак таким чином, що пошук ознак здійснюватиметься лише деякими частинами зображення.
Існує багато алгоритмів комп'ютерного бачення, які використовують виявляння ознак як початковий крок, тож як наслідок було розроблено дуже велику кількість виявлячів ознак. Вони сильно різняться за типами ознак, що вони виявляють, обчислювальною складністю, та повторюваністю.
Коли ознаки визначають у термінах локальних окільних операцій, застосовуваних до зображення, процедури, яку зазвичай називають виділя́нням озна́к (англ. feature extraction), то можливо розрізняти підходи до виявляння ознак, які виробляють локальні рішення про присутність чи відсутність ознаки заданого типу в даній точці зображення, та такі, що створюють в результаті небінарні дані. Це розрізнення стає актуальним, коли отримувані в результаті виявлені ознаки є відносно розрідженими. Незважаючи на те, що ухвалюються локальні рішення, вихід з кроку виявляння ознак не обов'язково має бути бінарним зображенням. Результат часто подають у вигляді наборів (зв'язаних чи незв'язаних) координат точок зображення, де було виявлено ознаки, іноді з субпіксельною точністю.
Коли виділяння ознак здійснюють без локального ухвалювання рішень, результат часто називають ознаковим зображенням (англ. feature image). Тож ознакове зображення можливо розглядати як зображення в тому сенсі, що воно є функцією тих же просторових (або часових) змінних, що й первинне зображення, але значення пікселя замість яскравості чи кольору містять інформацію про ознаки зображення. Це означає, що ознакове зображення можливо обробляти таким же чином, як і звичайне зображення, створене давачем зображення. Ознакові зображення також часто обчислюють як вбудований крок в алгоритмах виявляння ознак.
У деяких застосуваннях для отримання доречної інформації з даних зображення недостатньо виділяти лише один тип ознак. Замість цього виділяють дві або більше різних ознак, що призводить до двох або більше описувачів ознак у кожній точці зображення. Поширеною практикою є впорядковувати інформацію, що надають усі ці описувачі, як елементи одного-єдиного вектора, який зазвичай називають ве́ктором озна́к (англ. feature vector). Множина всіх можливих векторів ознак утворює про́стір озна́к (англ. feature space).[1]
Простий приклад векторів ознак виникає, коли кожну точку зображення треба класифікувати як належну до певного класу. Виходячи з припущення, що кожна точка зображення має відповідний вектор ознак на основі доречного набору ознак, що означає, що кожен клас добре розділено у відповідному просторі ознак, класифікування кожної точки зображення може бути здійснено за допомогою стандартного методу класифікування.
Інший і пов'язаний приклад виникає, коли до зображень застосовують обробку на основі нейронних мереж. Дані, що подають на вхід нейронної мережі, часто задають у термінах векторів ознак з кожної точки зображення, де цей вектор будується з кількох різних ознак, виділених з даних зображення. Під час фази навчання мережа може сама встановити, які поєднання різних ознак корисні для розв'язання поставленої задачі.
Контури (англ. edge) — це точки, де присутня межа (або контур) двох областей зображення. Загалом, контур може мати майже довільну форму, й може містити з'єднання. На практиці контури зазвичай визначають як множини точок на зображенні, які мають значну величину градієнта. Крім того, деякі поширені алгоритми потім з'єднують точки високого градієнта ланцюжком для формування повнішого опису контуру. Ці алгоритми зазвичай накладають деякі обмеження на властивості контуру, такі як форма, плавність та значення градієнта.
Локально контури мають одновимірну структуру.
Терміни «кути» (англ. corner) та «особливі точки» (англ. interest point) використовують часом як взаємозамінні, й застосовують до точкоподібних ознак у зображенні, які мають локальну двовимірну структуру. Назва «кут» виникла через те, що ранні алгоритми спершу виконували виявляння контурів, а потім аналізували контури для знаходження швидких змін у напрямку (кутів). Ці алгоритми згодом було розвинено до того, що явне виявляння контурів стало більше не потрібним, наприклад, через пошук високих рівнів кривини в градієнті зображення[en]. Потім було відмічено, що так звані кути також виявлялися на тих частинах зображення, що не були кутами в традиційному розумінні (наприклад, може виявлятися невелика яскрава пляма на темному тлі). Ці точки часто називають особливими точками, але за традицією можуть використовувати й термін «кут»[джерело?].
Плями (англ. blob) забезпечують додатковий опис структур зображення в термінах областей (англ. region), на противагу до кутів, що є точкоподібнішими. Тим не менше, плямові описувачі часто можуть містити переважну точку (локальний максимум реакції оператора, або центр мас), що означає, що багато виявлячів плям також можна розглядати як оператори особливих точок. Виявлячі плям можуть виявляти ділянки зображення, занадто згладжені для виявляння виявлячем кутів.
Розгляньмо зменшення зображення із наступним виконанням виявляння кутів. Виявляч реагуватиме на точки, що є контрастними на зменшеному зображенні, але можуть бути згладженими в первісному зображенні. Це саме той момент, коли різниця між виявлячами кутів та плям стає дещо невиразною. Значною мірою це розрізнення може бути виправлено включенням відповідного поняття масштабу. Тим не менше, завдяки властивостям реагування на різні типи структур зображення на різних масштабах, виявлячі плям ЛГ (англ. LoG) та РГ (англ. DoH) згадуються також і в статті про виявляння кутів.
Для видовжених об'єктів природним інструментом є поняття хребтів (англ. ridge). Хребтовий описувач, обчислюваний із зображення у відтінках сірого, можливо розглядати як узагальнення серединної осі. З практичної точки зору хребет можливо розглядати як одновимірну криву, що подає вісь симетрії, й на додачу має атрибут локальної ширини хребта, пов'язаний із кожною його точкою. Проте, на жаль, виділяти хребтові ознаки із загальних класів зображень у відтінках сірого алгоритмічно складніше, ніж контурні, кутові та плямові ознаки. Тим не менше, хребтові описувачі часто використовують для виділяння доріг в аерофотознімках та кровоносних судин в медичних зображеннях — див. виявляння хребтів.
До виявля́ння озна́к (англ. feature detection) належать методи обчислювання абстракцій з інформації зображення та ухвалювання локальних рішень у кожній точці зображення про наявність чи відсутність ознаки зображення заданого типу в цій точці. Отримувані ознаки будуть підмножинами області визначення зображення, часто у вигляді ізольованих точок, неперервних кривих, або зв'язних областей.
Виділяння ознак іноді здійснюють на декількох масштабах. Одним із таких методів є масштабоінваріантне ознакове перетворення (англ. scale-invariant feature transform, SIFT).
Виявляч ознак | Контури | Кути | Плями | Хребти |
---|---|---|---|---|
Кенні[2] | Так | Ні | Ні | Ні |
Собель | Так | Ні | Ні | Ні |
Гарріс і Стівенс / Плессі[3] | Так | Так | Ні | Ні |
SUSAN[4] | Так | Так | Ні | Ні |
Сі та Томазі[5] | Ні | Так | Ні | Ні |
Метод кривини ізоліній[6] | Ні | Так | Ні | Ні |
FAST[7] | Ні | Так | Так | Ні |
Лапласіан гауссіана[6] | Ні | Так | Так | Ні |
Різниця гауссіанів[8][9] | Ні | Так | Так | Ні |
Визначник гессіана[6] | Ні | Так | Так | Ні |
Міри вираженості гессіанових ознак[10][11] | Ні | Так | Так | Ні |
МСЕО[12] | Ні | Ні | Так | Ні |
Хребти головної кривини[13][14][15] | Ні | Ні | Ні | Так |
Плями відтінків сірого[16] | Ні | Ні | Так | Ні |
Щойно ознаки було виявлено, стає можливим виділити локальний фрагмент зображення навколо ознаки. Це виділяння може містити досить значний обсяг обробки зображення. Результат відомий як описувач ознаки, або вектор ознаки. Серед підходів, які використовують для опису ознак, можливо згадати N-струмені та локальні гістограми (див. масштабоінваріантне ознакове перетворення як один з прикладів локально-гістограмного описувача). На додачу до такої інформації про атрибути, сам по собі крок виявляння ознак також може забезпечувати додаткові атрибути, такі як напрям контурів та величину градієнту у виявлянні контурів, а також полярність і силу плям у виявлянні плям.
- Виявляння контурів
- Виявляння кутів
- Виявляння плям
- Виявляння хребтів
- Масштабоінваріантне ознакове перетворення
- Напрям контурів, зміна інтенсивності, автокореляція.
- Виявляння руху. Різницевий підхід, на основі площ. Оптичний потік.
- Порогування
- Виділяння плям[en]
- Зіставляння з шаблоном[en]
- Перетворення Гафа
- Лінії
- Кола/еліпси
- Довільні фігури (узагальнене перетворення Гафа)
- Працює з будь-якими параметризовними ознаками (змінні класу, виявляння кластерів тощо)
- Узагальнене перетворення Гафа
- Деформованій, параметризовні фігури
- Активні контури (змійки)
Конкретну ознаку зображення, визначену в термінах певної структури в даних зображення, часто може бути подано різними способами. Наприклад, контур може бути подано як булеву змінну в кожній точці зображення, яка описує, чи присутній контур у цій точці. Іншим чином, ми можемо використовувати подання, яке забезпечує міру визначеності замість булевого твердження про існування контуру, й об'єднувати її з інформацією про спрямування контуру. Аналогічно, колір певної області може бути подано як середній колір (три скаляри), або як колірну гістограму[en] (три функції).
При розробці системи або алгоритму комп'ютерного бачення вибір подання ознак може бути критичною проблемою. У деяких випадках для розв'язання цієї проблеми може знадобитися вищий рівень деталізації опису ознаки, але це пов'язано з необхідністю мати справу з більшою кількістю даних і більш вимогливою обробкою. Нижче обговорюються деякі чинники, що мають значення для вибору відповідного подання. У цьому обговоренні примірник подання ознаки має назву описувач ознаки (англ. feature descriptor) або просто описувач (англ. descriptor).
Двома прикладами ознак зображення є локальне спрямування контуру та локальна швидкість у послідовності зображень. У разі спрямування, значення цієї ознаки може бути більш-менш невизначеним, якщо у відповідному околі присутні понад одного контуру. Локальна швидкість не визначена, якщо відповідна область зображення не містить жодної просторової мінливості. Як наслідок цього спостереження, може бути доречним використовувати подання ознаки, яке містить і міру визначеності або впевненості, пов'язаних із твердженням про значення ознаки. В іншому випадку типовою є ситуація, коли один і той самий описувач використовується для подання значень ознак з низькою визначеністю, та значень ознак, близьких до нуля, що призводить до неоднозначності в інтерпретації цього описувача. Залежно від застосування, така двозначність може бути прийнятною, чи не прийнятною.
Зокрема, якщо зображення з ознаками буде задіяно в подальшій обробці, може бути гарною ідеєю задіяти таке подання ознак, яке містить інформацію про визначеність або впевненість. Це дає змогу обчислювати новий описувач ознак з кількох описувачів, наприклад, обчислювати в одній точці зображення, але в різних масштабах, або з інших, але сусідніх точок, у термінах середньозваженого усереднення, де вагові коефіцієнти виводяться з відповідних визначеностей. У найпростішому випадку відповідне обчислення може бути втілено як низькочастотне фільтрування зображення з ознаками. Отримуване зображення ознак буде назагал стійкішим до шуму.
На додачу до входження до подання показників визначеності, подання відповідних значень ознак може бути придатним для операції усереднювання, а може й ні. Більшість подань ознак можливо усереднювати на практиці, але лише в певних випадках отриманому описувачеві можливо надати правильного тлумачення в термінах значення ознаки. Такі уявлення називають усереднюваними (англ. averageable).
Наприклад, якщо спрямування контуру подано в термінах кута, то це подання мусить мати розрив, де кут перескакує з максимального значення на мінімальне. Тож може статися, що два подібні спрямування подано кутами, середнє значення яких не лежить близько до жодного з первинних кутів, і, отже, це подання не усереднюване. Існують інші подання спрямування контурів, такі як структурний тензор, які усереднювані.
Інший приклад стосується руху, де в деяких випадках можливо виділити лише перпендикулярну до якогось контуру швидкість. Якщо було виділено дві такі ознаки, і можливо припустити, що вони стосуються однієї й тієї ж істинної швидкості, ця швидкість не задається як усереднення векторів перпендикулярних швидкостей. Отже, вектори перпендикулярних швидкостей не є усереднюваними. Натомість існують інші подання руху з використанням матриць або тензорів, які дають істинну швидкість у термінах операції усереднювання описувачів перпендикулярних швидкостей.[джерело?]
Ознаки, виявлені в кожному із зображень, можливо зіставляти в кількох зображеннях, щоби встановлювати відповідні ознаки (англ. corresponding features), такі як відповідні точки (англ. corresponding points).
Цей алгоритм ґрунтується на порівнюванні та аналізі відповідностей точок між еталонним і цільовим зображеннями. Якщо будь-яка частина загромадженої сцени має відповідностей понад певний поріг, то на цю частину зображення сцени із захаращеністю націлюються, і розглядають, чи містить вона вихідний об'єкт.[17]
- Комп'ютерне бачення
- Автоматичне анотування зображень[en]
- Навчання ознак
- Обирання ознак
- Виявляння переднього плану[en]
- Векторизація (обробка зображень)
- ↑ Scott E Umbaugh (27 січня 2005). Computer Imaging: Digital Image Analysis and Processing. CRC Press. ISBN 978-0-8493-2919-7. (англ.)
- ↑ Canny, J. (1986). A Computational Approach To Edge Detection. IEEE Transactions on Pattern Analysis and Machine Intelligence. 8 (6): 679—714. doi:10.1109/TPAMI.1986.4767851. PMID 21869365. (англ.)
- ↑ C. Harris; M. Stephens (1988). A combined corner and edge detector (PDF). Proceedings of the 4th Alvey Vision Conference. с. 147—151. Архів оригіналу (PDF) за 1 квітня 2022. Процитовано 9 січня 2022. (англ.)
- ↑ S. M. Smith; J. M. Brady (May 1997). SUSAN - a new approach to low level image processing. International Journal of Computer Vision. 23 (1): 45—78. doi:10.1023/A:1007963824710. S2CID 15033310. (англ.)
- ↑ J. Shi; C. Tomasi (June 1994). Good Features to Track. 9th IEEE Conference on Computer Vision and Pattern Recognition. Springer. (англ.)
- ↑ а б в T. Lindeberg (1998). Feature detection with automatic scale selection (abstract). International Journal of Computer Vision. 30 (2): 77—116. doi:10.1023/A:1008045108935. S2CID 723210. (англ.)
- ↑ E. Rosten; T. Drummond (2006). Machine learning for high-speed corner detection. European Conference on Computer Vision. Springer. с. 430—443. CiteSeerX 10.1.1.60.3991. doi:10.1007/11744023_34. (англ.)
- ↑ J. L. Crowley and A. C. Parker, "A Representation for Shape Based on Peaks and Ridges in the Difference of Low Pass Transform[недоступне посилання]", IEEE Transactions on PAMI, PAMI 6 (2), pp. 156–170, March 1984. (англ.)
- ↑ D. Lowe (2004). Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision. 60 (2): 91. CiteSeerX 10.1.1.73.2924. doi:10.1023/B:VISI.0000029664.99615.94. S2CID 221242327. (англ.)
- ↑ T. Lindeberg "Scale selection properties of generalized scale-space interest point detectors", Journal of Mathematical Imaging and Vision, Volume 46, Issue 2, pages 177-210, 2013. (англ.)
- ↑ T. Lindeberg ``Image matching using generalized scale-space interest points", Journal of Mathematical Imaging and Vision, volume 52, number 1, pages 3-36, 2015. (англ.)
- ↑ J. Matas; O. Chum; M. Urban; T. Pajdla (2002). Robust wide baseline stereo from maximally stable extremum regions (PDF). British Machine Vision Conference. с. 384—393. (англ.)
- ↑ R. Haralick, "Ridges and Valleys on Digital Images", Computer Vision, Graphics, and Image Processing vol. 22, no. 10, pp. 28–38, Apr. 1983. (англ.)
- ↑ D. Eberly, R. Gardner, B. Morse, S. Pizer, C. Scharlach, Ridges for image analysis [Архівовано 2013-01-08 у Wayback Machine.], Journal of Mathematical Imaging and Vision, v. 4 n. 4, pp. 353–373, Dec. 1994. (англ.)
- ↑ T. Lindeberg (1998). Edge detection and ridge detection with automatic scale selection (abstract). International Journal of Computer Vision. 30 (2): 117—154. doi:10.1023/A:1008097225773. S2CID 207658261. (англ.)
- ↑ T. Lindeberg (1993). Detecting Salient Blob-Like Image Structures and Their Scales with a Scale-Space Primal Sketch: A Method for Focus-of-Attention (abstract). International Journal of Computer Vision. 11 (3): 283—318. doi:10.1007/BF01469346. S2CID 11998035. (англ.)
- ↑ Object Detection in a Cluttered Scene Using Point Feature Matching - MATLAB & Simulink. www.mathworks.com. Процитовано 6 липня 2019. (англ.)
- T. Lindeberg (2009). Scale-space. У Benjamin Wah (ред.). Encyclopedia of Computer Science and Engineering. Т. IV. John Wiley and Sons. с. 2495—2504. doi:10.1002/9780470050118.ecse609. ISBN 978-0470050118. (англ.) (зведення та огляд низки виявлячів ознак, сформульованих на основі масштабопросторових операцій)