Це дуже хороші запитання. Давайте вирішимо кожну точку по одному:
Моє питання полягає в тому, що насправді являють собою ці ключові точки?
Ключові точки - це те саме, що процентні пункти. Вони є просторовими місцями або точками на зображенні, які визначають, що цікаво чи що виділяється на зображенні. Виявлення точок інтересу насправді є підмножиною виявлення краплин , яка спрямована на пошук цікавих регіонів або просторових областей на зображенні. Причина, по якій ключові точки є особливими, полягає в тому, що незалежно від того, як змінюється зображення ... чи обертається, стискається / розширюється зображення, перекладається ( до речі, все це було б афінним перетворенням ...) або піддається спотворенням ( тобто проективна трансформація або гомографія ), ви повинні мати можливість знайти те самеключові точки на цьому зміненому зображенні при порівнянні з вихідним зображенням. Ось приклад із допису, який я написав деякий час тому:
Джерело: модуль 'об'єкт не має атрибута' drawMatches 'opencv python
Зображення праворуч є поверненою версією лівого зображення. Я також показав лише 10 найкращих збігів між двома зображеннями. Якщо ви подивитесь на 10 найкращих збігів, це ті моменти, на яких ми, мабуть, хотіли б зосередитися, що дозволило б нам запам’ятати, про що було на зображенні. Ми хотіли б зосередитись на обличчі оператора, а також камері, штативі та деяких цікавих текстурах на будівлях у фоновому режимі. Ви бачите, що ці самі точки були знайдені між двома зображеннями, і вони були успішно зіставлені.
Отже, що у вас слід відняти, це те, що цікаві точки на зображенні, і що їх слід знаходити незалежно від того, як зображення спотворюється.
Я розумію, що вони є свого роду "цікавими місцями" зображення. Я також знаю, що вони мають інваріант масштабу, і я знаю, що вони кругові.
Ви праві. Інваріант масштабу означає, що як би ви не масштабували зображення, ви все одно повинні мати можливість знайти ці точки.
Тепер ми збираємося взяти участь у дескрипторі . Що відрізняє ключові точки між фреймворками, це спосіб опису цих ключових точок. Це те, що називають дескрипторами . Кожна ключова точка, яку ви виявляєте, має пов'язаний з нею дескриптор. Деякі фреймворки виконують лише виявлення ключових точок, тоді як інші фреймворки є просто структурою опису, і вони не виявляють точок. Є також деякі, які роблять і те, і інше - вони виявляють і описують ключові точки. SIFT і SURF - це приклади фреймворків, які одночасно виявляють і описують ключові точки.
Дескриптори в першу чергу стосуються як масштабу, так і орієнтації ключової точки. Ключові точки, якими ми закріпили цю концепцію, але нам потрібна частина дескриптора, якщо наша мета - спробувати зіставити ключові точки на різних зображеннях. Тепер, що ви маєте на увазі під "круговим" ..., що корелює зі шкалою, в якій була виявлена точка. Візьмемо для прикладу це зображення, взяте з підручника VLFeat Toolbox :
Ви бачите, що будь-які жовті точки - це відсоткові точки, але деякі з цих точок мають інший радіус кола. Вони стосуються масштабу . Точки відсотка працюють у загальному розумінні так, що ми розкладаємо зображення на кілька масштабів. Ми перевіряємо відсоткові пункти за кожною шкалою і об’єднуємо всі ці відсоткові пункти разом, щоб створити кінцевий результат. Чим більше було «коло», тим більшим масштабом було те, в якому була виявлена точка. Також є лінія, яка випромінює від центру кола до краю. Це орієнтація ключової точки, яку ми розглянемо далі.
Також я дізнався, що вони мають орієнтацію, але я не міг зрозуміти, що це насправді. Це кут, але між радіусом і чимось?
В основному, якщо ви хочете виявити ключові точки незалежно від масштабу та орієнтації, коли вони говорять про орієнтацію ключових точок, вони насправді мають на увазі те, що вони шукають сусідство пікселів, яке оточує ключову точку, і з’ясовують, як орієнтоване це сусідство пікселів або в якому напрямку цей патч Це залежить від того, на яку структуру дескриптора ви дивитесь, але загальна суть полягає у виявленні найбільш домінуючої орієнтації кутів градієнта в патчі. Це важливо для узгодженнятак що ви можете поєднувати ключові точки разом. Погляньте на першу фігуру у мене з двома операторами - один обертався, а інший ні. Якщо ви подивитесь на деякі з цих моментів, як ми з’ясуємо, як один пункт збігається з іншим? Ми можемо легко визначити, що верхня частина оператора як точка інтересу збігається з обертаною версією, тому що ми розглядаємо точки, які оточують ключову точку, і бачимо, в якій орієнтації знаходяться всі ці точки ... і звідси, ось як орієнтація обчислюється.
Зазвичай, коли ми хочемо виявити ключові точки, ми просто розглядаємо місця розташування. Однак, якщо ви хочете встановити відповідність між ключовими точками між зображеннями, тоді вам точно потрібні масштаб та орієнтація, щоб полегшити це.
Сподіваюся, це допомагає!