Чому ми використовуємо дескриптори ключових точок?


18

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

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


Гей, ви хочете дізнатися конкретно про SURF, або ваше питання більш загальне, "навіщо нам потрібні дескриптори для ключових точок?" (щойно надихнулося
дізнанням

@penelope Моє запитання щодо дескрипторів більш загальне
ARG

3
Сподіваюся, ви не заперечуєте, що я зробив ваше запитання більш загальним, перш ніж відповісти.
пенелопа

Відповіді:


22

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

Залежно від алгоритму, який використовується для вилучення ключових точок (SIFT, Harris corners, MSER), ви будете знати деякі загальні характеристики витягнутих ключових точок (наприклад, вони зосереджені навколо крапок, країв, видатних кутів ...), але ви не знатимете, наскільки різні або схожий один ключовий пункт - інший.

Ось два прості приклади, коли тільки область позиції та ключової точки нам не допоможе:

  • Якщо у вас є зображення A (ведмедя на білому тлі) та інше зображення B, точна копія A, але перекладена на кілька пікселів: вилучені ключові точки будуть однаковими (на тій же частині цього ведмедя). Ці два зображення слід визнати однаковими чи подібними.

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

  • Якщо у вас є зображення A (скажімо, качки цього разу) та інше зображення B, точно така ж качка, як у A, за винятком подвійного розміру: вилучені ключові точки будуть однаковими (однакові частини качки). Це теж однакові (подібні) зображення.

    Але всі їх розміри (області) будуть різними: усі ключові точки зображення B будуть вдвічі більшими за розміри з зображення А.

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

Деякі важливі речі для дескрипторів:

  • вони повинні бути незалежними від позиції ключових точок

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

  • вони повинні бути стійкими до перетворень зображення

    Деякі приклади - це зміни контрасту (наприклад, зображення того самого місця під час сонячного та похмурого дня) та зміни точки зору (зображення будівлі з правого центру та зліва в центрі, ми все одно хотіли б визнати його як однакову будівлю) .

    Звичайно, жоден дескриптор не є надійним проти всіх перетворень (ані проти жодної, якщо вона сильна, наприклад, великі зміни в перспективі).

    Різні дескриптори розроблені таким чином, щоб бути стійкими до різних перетворень, що іноді протиставляється швидкості, необхідній для їх обчислення.

  • вони повинні бути масштабними незалежними

    Дескриптори повинні враховувати масштаб. Якщо "видатною" частиною однієї ключової точки є вертикальна лінія 10 пікселів (всередині кругової області з радіусом 8 пікселів), а видатна частина іншої вертикальної лінії 5 пікс (всередині кругової області з радіусом 4 пікселя) - цим ключовим точкам слід призначити подібні дескриптори.

Тепер, коли ви обчислили дескриптори для всіх ключових точок, у вас є спосіб порівняти ці ключові точки . Для простого прикладу відповідності зображень (коли ви знаєте, що зображення є одним і тим же об'єктом, і ви хочете визначити частини в різних зображеннях, які зображують ту саму частину сцени, або хочете визначити зміну точки зору між двома зображеннями) , ви б порівняли кожен дескриптор ключових точок одного зображення з кожним дескриптором ключових точок іншого зображення. Оскільки дескриптори є векторами чисел, ви можете порівнювати їх з чимось простим, як евклідова відстань, . Є, звичайно, кілька більш складних відстаней, які можна використовувати як міру подібності. Але, врешті-решт, ви б це сказалиключові точки, дескриптори яких мають найменшу відстань між ними, є збігами , наприклад , ті ж «місця» або «частини об'єктів» в різних образах.

Для більш складного використання ключових точок / дескрипторів вам слід поглянути на це питання - особливо "місцевий підхід низького рівня" у моїй відповіді та підхід "Мішок слова" у відповіді @Maurits . Також корисні посилання, надані в цих відповідях.


найкраща відповідь і приємне пояснення, використовуючи функцію терміна те саме, що і дескриптори? обидва однакові чи різні? і що означає термін орієнтація у пошуку?
ARG

1
Термін "особливість" такий самий, як "ключовий пункт" - це чільне місце в зображенні. Дескриптор - це "дескриптор ключових точок" або "дескриптор функції". На жаль, я мало знаю про SURF, тому я поцікавився, чи хочете ви дізнатися про дескриптори взагалі чи конкретно про SURF. Я знаю, що для SIFT орієнтація дуже важлива.
пенелопа

Термін орієнтація не є специфічним для SURF, його також використовують у SIFT, я просто хочу знати про нього, що це
ARG

Ви обчислюєте "основну орієнтацію" ключової точки на основі локального градієнта. Потім цей напрямок стає "вгору" для ключової точки при обчисленні градієнта для досягнення обертальної інваріантності. Для SIFT у вас є приємне пояснення на wikipedia
пенелопа

:) моє запитання - що таке орієнтація? не на просіванні чи прибої
ARG

2

Давайте подумаємо ідеального дескриптора для розуміння ідеї. Ідеальний дескриптор - це функція від піксельного простору до якогось іншого простору, тобто такі самі об'єкти мають однаковий результат , тоді як різні об'єкти мають різний результат.

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

введіть тут опис зображення введіть тут опис зображення

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

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